From 9700bac810676dae84573d55cc69b47629487650 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Mon, 11 May 2020 11:19:37 -0400 Subject: [PATCH] Removed Unused Code --- .hgignore | 20 - AppKit/AppKit.xcodeproj/project.pbxproj | 4877 ---- .../contents.xcworkspacedata | 7 - .../xcshareddata/AppKit.xccheckout | 41 - .../xcschemes/AppKit-Windows-i386.xcscheme | 77 - AppKit/NSTextView.subproj/NSLayoutManager.m | 2 +- .../NSTextStorage_concrete.h | 2 +- AppKit/O2Context_builtin_FT.h | 1 - CFNetwork/CFHost.h | 36 - CFNetwork/CFHost.m | 591 - CFNetwork/CFNetServices.h | 3 - CFNetwork/CFNetServices.m | 0 CFNetwork/CFNetwork.h | 3 - CFNetwork/CFNetwork.xcodeproj/project.pbxproj | 303 - CFNetwork/CFNetworkExport.h | 34 - CFNetwork/CFSocketStream.h | 84 - CFNetwork/CFSocketStream.m | 63 - CFNetwork/English.lproj/InfoPlist.strings | 2 - CFNetwork/Info.plist | 28 - CFSSLHandler_openssl/CFSSLHandler_openssl.h | 41 - CFSSLHandler_openssl/CFSSLHandler_openssl.m | 325 - .../project.pbxproj | 417 - .../English.lproj/InfoPlist.strings | 2 - CFSSLHandler_openssl/Info.plist | 46 - CMakeLists.txt | 9 + Cocoa/Cocoa.xcodeproj/project.pbxproj | 731 - Cocotron/Cocotron.xcodeproj/project.pbxproj | 359 - .../CommonCrypto.xcodeproj/project.pbxproj | 305 - CommonCrypto/CommonCryptoExport.h | 33 - CommonCrypto/CommonCryptor.h | 55 - CommonCrypto/CommonCryptor.m | 128 - CommonCrypto/CommonDigest.h | 1 - CommonCrypto/CommonDigest.m | 0 CommonCrypto/CommonHMAC.h | 20 - CommonCrypto/CommonHMAC.m | 34 - CommonCrypto/English.lproj/InfoPlist.strings | 2 - CommonCrypto/Info.plist | 28 - CommonCrypto/dllmain.m | 34 - CoreData/CoreData.xcodeproj/project.pbxproj | 536 - .../CoreGraphics.xcodeproj/project.pbxproj | 1138 - CoreServices/CoreServices.h | 1 - .../CoreServices.xcodeproj/project.pbxproj | 352 - CoreServices/English.lproj/InfoPlist.strings | 2 - CoreServices/Info.plist | 28 - CoreText/CoreText.xcodeproj/project.pbxproj | 421 - .../CGShadingCreate.xcodeproj/project.pbxproj | 445 - .../xcschemes/CGShadingCreate-Mac.xcscheme | 84 - .../CGShadingCreate-Windows.xcscheme | 84 - .../English.lproj/MainMenu.nib/info.nib | 24 - .../MainMenu.nib/keyedobjects.nib | 9592 ------- Examples/CGShadingCreate/Info.plist | 28 - .../contents.xcworkspacedata | 100 - .../NSOpenGLView.xcodeproj/project.pbxproj | 484 - .../xcschemes/NSOpenGLView-Mac.xcscheme | 84 - .../xcschemes/NSOpenGLView-Windows.xcscheme | 84 - .../TextEditor.xcodeproj/project.pbxproj | 533 - .../xcschemes/TextEditor-Mac.xcscheme | 84 - .../xcschemes/TextEditor-Windows.xcscheme | 85 - Examples/TextEditor/main.m | 24 - Foundation/English.lproj/NSUserDefaults.plist | 12 - Foundation/Foundation.h | 158 - .../Foundation.xcodeproj/project.pbxproj | 4243 --- .../contents.xcworkspacedata | 7 - .../xcschemes/Foundation-Darwin-i386.xcscheme | 77 - .../Foundation-Darwin-x86_64.xcscheme | 77 - .../Foundation-FreeBSD-i386.xcscheme | 77 - .../xcschemes/Foundation-Linux-i386.xcscheme | 68 - .../Foundation-Windows-i386.xcscheme | 77 - Foundation/FoundationErrors.h | 14 - Foundation/Info.plist | 24 - Foundation/NSAffineTransform.h | 58 - Foundation/NSAffineTransform.m | 200 - Foundation/NSArchiver.h | 61 - Foundation/NSArchiver.m | 437 - Foundation/NSArray/NSArray.h | 95 - Foundation/NSArray/NSArray.m | 563 - Foundation/NSArray/NSArray_concrete.h | 33 - Foundation/NSArray/NSArray_concrete.m | 141 - Foundation/NSArray/NSArray_placeholder.h | 24 - Foundation/NSArray/NSArray_placeholder.m | 35 - Foundation/NSArray/NSEnumerator_array.h | 31 - Foundation/NSArray/NSEnumerator_array.m | 50 - .../NSArray/NSEnumerator_arrayReverse.h | 31 - .../NSArray/NSEnumerator_arrayReverse.m | 51 - Foundation/NSArray/NSMutableArray.h | 65 - Foundation/NSArray/NSMutableArray.m | 547 - Foundation/NSArray/NSMutableArray_concrete.h | 33 - Foundation/NSArray/NSMutableArray_concrete.m | 405 - Foundation/NSAssertionHandler.h | 106 - Foundation/NSAssertionHandler.m | 76 - Foundation/NSAtomicCompareAndSwap.h | 6 - .../NSAttributedString/NSAttributedString.h | 51 - .../NSAttributedString/NSAttributedString.m | 215 - .../NSAttributedString_manyAttributes.h | 28 - .../NSAttributedString_manyAttributes.m | 77 - .../NSAttributedString_nilAttributes.h | 26 - .../NSAttributedString_nilAttributes.m | 55 - .../NSAttributedString_oneAttribute.h | 27 - .../NSAttributedString_oneAttribute.m | 58 - .../NSAttributedString_placeholder.h | 24 - .../NSAttributedString_placeholder.m | 70 - .../NSMutableAttributedString.h | 51 - .../NSMutableAttributedString.m | 180 - .../NSMutableAttributedString_concrete.h | 28 - .../NSMutableAttributedString_concrete.m | 229 - ...bleString_proxyToMutableAttributedString.h | 30 - ...bleString_proxyToMutableAttributedString.m | 50 - .../NSAttributedString/NSRangeEntries.h | 63 - .../NSAttributedString/NSRangeEntries.m | 447 - .../NSAutoreleasePool-private.h | 9 - .../NSAutoreleasePool/NSAutoreleasePool.h | 31 - .../NSAutoreleasePool/NSAutoreleasePool.m | 64 - Foundation/NSBlocks.m | 59 - Foundation/NSBundle.h | 121 - Foundation/NSBundle.m | 1101 - Foundation/NSByteOrder.h | 74 - Foundation/NSByteOrder.m | 326 - Foundation/NSCFTypeID.h | 57 - Foundation/NSCharacterSet/NSCharacterSet.h | 54 - Foundation/NSCharacterSet/NSCharacterSet.m | 242 - .../NSCharacterSet/NSCharacterSet_bitmap.h | 30 - .../NSCharacterSet/NSCharacterSet_bitmap.m | 74 - .../NSCharacterSet/NSCharacterSet_range.h | 29 - .../NSCharacterSet/NSCharacterSet_range.m | 43 - .../NSCharacterSet_rangeInverted.h | 24 - .../NSCharacterSet_rangeInverted.m | 36 - .../NSCharacterSet/NSCharacterSet_string.h | 30 - .../NSCharacterSet/NSCharacterSet_string.m | 68 - .../NSCharacterSet/NSMutableCharacterSet.h | 34 - .../NSCharacterSet/NSMutableCharacterSet.m | 76 - .../NSMutableCharacterSet_bitmap.h | 32 - .../NSMutableCharacterSet_bitmap.m | 155 - .../alphanumericCharacterSet.bitmap | Bin 8192 -> 0 bytes .../NSCharacterSet/bitmapRepresentation.h | 59 - .../NSCharacterSet/controlCharacterSet.bitmap | Bin 8192 -> 0 bytes .../decimalDigitCharacterSet.bitmap | Bin 8192 -> 0 bytes .../NSCharacterSet/illegalCharacterSet.bitmap | Bin 8192 -> 0 bytes .../NSCharacterSet/letterCharacterSet.bitmap | Bin 8192 -> 0 bytes .../lowercaseLetterCharacterSet.bitmap | Bin 8192 -> 0 bytes .../punctuationCharacterSet.bitmap | Bin 8192 -> 0 bytes .../uppercaseLetterCharacterSet.bitmap | Bin 8192 -> 0 bytes .../whitespaceAndNewlineCharacterSet.bitmap | Bin 8192 -> 0 bytes .../whitespaceCharacterSet.bitmap | Bin 8192 -> 0 bytes Foundation/NSClassDescription.h | 48 - Foundation/NSClassDescription.m | 111 - Foundation/NSCoder.h | 107 - Foundation/NSCoder.m | 349 - Foundation/NSConcreteDirectoryEnumerator.h | 35 - Foundation/NSConcreteDirectoryEnumerator.m | 133 - Foundation/NSConnection/NSConnection.h | 113 - Foundation/NSConnection/NSConnection.m | 223 - Foundation/NSConnection/NSDistantObject.h | 42 - Foundation/NSConnection/NSDistantObject.m | 64 - Foundation/NSConnection/NSMessagePort.h | 24 - Foundation/NSConnection/NSMessagePort.m | 24 - Foundation/NSConnection/NSPort.h | 65 - Foundation/NSConnection/NSPort.m | 104 - Foundation/NSConnection/NSPortCoder.h | 51 - Foundation/NSConnection/NSPortCoder.m | 71 - Foundation/NSConnection/NSPortMessage.h | 43 - Foundation/NSConnection/NSPortMessage.m | 72 - Foundation/NSConnection/NSProtocolChecker.h | 34 - Foundation/NSConnection/NSProtocolChecker.m | 50 - Foundation/NSConnection/NSSocketPort.h | 54 - Foundation/NSConnection/NSSocketPort.m | 106 - Foundation/NSData/NSData.h | 109 - Foundation/NSData/NSData.m | 412 - Foundation/NSData/NSData_concrete.h | 70 - Foundation/NSData/NSData_concrete.m | 108 - Foundation/NSData/NSData_mapped.h | 29 - Foundation/NSData/NSData_mapped.m | 44 - Foundation/NSData/NSMutableData.h | 46 - Foundation/NSData/NSMutableData.m | 191 - Foundation/NSData/NSMutableData_concrete.h | 28 - Foundation/NSData/NSMutableData_concrete.m | 106 - Foundation/NSDate/NSCalendar.h | 86 - Foundation/NSDate/NSCalendar.m | 211 - Foundation/NSDate/NSCalendarDate.h | 94 - Foundation/NSDate/NSCalendarDate.m | 450 - Foundation/NSDate/NSDate.h | 79 - Foundation/NSDate/NSDate.m | 269 - Foundation/NSDate/NSDateComponents.h | 62 - Foundation/NSDate/NSDateComponents.m | 127 - Foundation/NSDate/NSDateFormatter.h | 120 - Foundation/NSDate/NSDateFormatter.m | 1069 - Foundation/NSDate/NSDate_timeInterval.h | 26 - Foundation/NSDate/NSDate_timeInterval.m | 41 - Foundation/NSDebug.h | 36 - Foundation/NSDebug.m | 162 - Foundation/NSDecimal/NSDecimal.h | 22 - Foundation/NSDecimal/NSDecimal.m | 18 - Foundation/NSDecimal/NSDecimalNumber.h | 97 - Foundation/NSDecimal/NSDecimalNumber.m | 222 - .../NSDecimal/NSDecimalNumberPlaceholder.h | 5 - .../NSDecimal/NSDecimalNumberPlaceholder.m | 28 - Foundation/NSDictionary/NSDictionary.h | 75 - Foundation/NSDictionary/NSDictionary.m | 485 - .../NSDictionary/NSDictionary_mapTable.h | 31 - .../NSDictionary/NSDictionary_mapTable.m | 82 - .../NSEnumerator_dictionaryKeys.h | 32 - .../NSEnumerator_dictionaryKeys.m | 46 - .../NSEnumerator_dictionaryObjects.h | 32 - .../NSEnumerator_dictionaryObjects.m | 43 - Foundation/NSDictionary/NSMutableDictionary.h | 36 - Foundation/NSDictionary/NSMutableDictionary.m | 102 - .../NSMutableDictionary_mapTable.h | 45 - .../NSMutableDictionary_mapTable.m | 438 - Foundation/NSDirectoryEnumerator.h | 28 - Foundation/NSDirectoryEnumerator.m | 42 - Foundation/NSDistributedLock.h | 35 - Foundation/NSDistributedLock.m | 18 - Foundation/NSDistributedNotificationCenter.h | 65 - Foundation/NSDistributedNotificationCenter.m | 98 - Foundation/NSEnumerator.h | 42 - Foundation/NSEnumerator.m | 56 - Foundation/NSError.h | 80 - Foundation/NSError.m | 142 - Foundation/NSException/NSException.h | 109 - Foundation/NSException/NSException.m | 136 - Foundation/NSException/NSRaise.h | 55 - Foundation/NSException/NSRaise.m | 84 - Foundation/NSException/NSRaiseException.h | 36 - Foundation/NSException/debugHelpers.h | 2 - Foundation/NSException/debugHelpers.m | 132 - Foundation/NSFileManager.h | 214 - Foundation/NSFileManager.m | 434 - Foundation/NSFormatter.h | 48 - Foundation/NSFormatter.m | 77 - Foundation/NSGarbageCollector.h | 0 Foundation/NSGarbageCollector.m | 0 Foundation/NSGeometry.h | 136 - Foundation/NSGeometry.m | 224 - Foundation/NSHTTPCookie/NSHTTPCookie.h | 67 - Foundation/NSHTTPCookie/NSHTTPCookie.m | 114 - Foundation/NSHTTPCookie/NSHTTPCookieStorage.h | 48 - Foundation/NSHTTPCookie/NSHTTPCookieStorage.m | 63 - Foundation/NSHashTable.h | 72 - Foundation/NSHashTable.m | 389 - Foundation/NSHost.h | 46 - Foundation/NSHost.m | 111 - Foundation/NSIndexPath.h | 50 - Foundation/NSIndexPath.m | 153 - Foundation/NSIndexSet/NSIndexSet.h | 61 - Foundation/NSIndexSet/NSIndexSet.m | 357 - Foundation/NSIndexSet/NSMutableIndexSet.h | 39 - Foundation/NSIndexSet/NSMutableIndexSet.m | 298 - Foundation/NSInvocation.h | 61 - Foundation/NSInvocation.m | 503 - Foundation/NSKeyValueCoding/NSArray+KVC.m | 266 - .../NSKeyValueCoding/NSDictionary+KVC.m | 42 - .../NSKeyValueCoding/NSKVCMutableArray.h | 49 - .../NSKeyValueCoding/NSKVCMutableArray.m | 150 - .../NSKeyValueCoding/NSKVOInfoPerObject.h | 22 - .../NSKeyValueCoding/NSKVOInfoPerObject.m | 64 - Foundation/NSKeyValueCoding/NSKeyObserver.h | 35 - Foundation/NSKeyValueCoding/NSKeyObserver.m | 79 - .../NSKeyValueCoding/NSKeyPathObserver.h | 36 - .../NSKeyValueCoding/NSKeyPathObserver.m | 84 - .../NSKeyValueCoding/NSKeyValueCoding.h | 53 - .../NSKeyValueCoding/NSKeyValueCoding.m | 503 - .../NSKeyValueObserving-Private.h | 29 - .../NSKeyValueCoding/NSKeyValueObserving.h | 122 - .../NSKeyValueCoding/NSKeyValueObserving.m | 1422 - .../NSKeyValueCoding/NSString+KVCAdditions.h | 28 - .../NSKeyValueCoding/NSString+KVCAdditions.m | 84 - Foundation/NSKeyedArchiving/NSKeyedArchiver.h | 87 - Foundation/NSKeyedArchiving/NSKeyedArchiver.m | 352 - .../NSKeyedArchiving/NSKeyedUnarchiver.h | 78 - .../NSKeyedArchiving/NSKeyedUnarchiver.m | 679 - Foundation/NSLocale.h | 72 - Foundation/NSLocale.m | 231 - Foundation/NSLock/NSCondition.m | 86 - Foundation/NSLock/NSConditionLock.h | 43 - Foundation/NSLock/NSConditionLock.m | 95 - Foundation/NSLock/NSLock.h | 57 - Foundation/NSLock/NSLock.m | 74 - Foundation/NSLock/NSRecursiveLock.h | 33 - Foundation/NSLock/NSRecursiveLock.m | 75 - Foundation/NSLock/NSSynchronization.h | 13 - Foundation/NSLock/NSSynchronization.m | 147 - Foundation/NSMapTable.h | 127 - Foundation/NSMapTable.m | 517 - Foundation/NSMetadata/NSMetadataItem.h | 7 - Foundation/NSMetadata/NSMetadataItem.m | 18 - Foundation/NSMetadata/NSMetadataQuery.h | 7 - Foundation/NSMetadata/NSMetadataQuery.m | 18 - .../NSMetadataQueryAttributeValueTuple.h | 7 - .../NSMetadataQueryAttributeValueTuple.m | 18 - .../NSMetadata/NSMetadataQueryResultGroup.h | 7 - .../NSMetadata/NSMetadataQueryResultGroup.m | 18 - Foundation/NSMethodSignature.h | 46 - Foundation/NSMethodSignature.m | 176 - Foundation/NSNetService/NSNetServices.h | 195 - Foundation/NSNetService/NSNetServices.m | 1268 - Foundation/NSNetService/bonjour.h | 227 - Foundation/NSNetService/bonjour.m | 440 - Foundation/NSNotification/NSNotification.h | 38 - Foundation/NSNotification/NSNotification.m | 94 - .../NSNotification/NSNotification_concrete.h | 36 - .../NSNotification/NSNotification_concrete.m | 78 - .../NSNotificationCenter.h | 47 - .../NSNotificationCenter.m | 188 - .../NSNotificationObserver.h | 35 - .../NSNotificationObserver.m | 45 - .../NSObjectToObservers.h | 37 - .../NSObjectToObservers.m | 138 - .../NSNotificationAndModes.h | 34 - .../NSNotificationAndModes.m | 52 - .../NSNotificationQueue-Private.h | 26 - .../NSNotificationQueue/NSNotificationQueue.h | 53 - .../NSNotificationQueue/NSNotificationQueue.m | 211 - Foundation/NSNull.h | 26 - Foundation/NSNull.m | 79 - Foundation/NSNumber/NSConstObject.h | 57 - Foundation/NSNumber/NSNumber.h | 86 - Foundation/NSNumber/NSNumber.m | 532 - Foundation/NSNumber/NSNumber_BOOL.h | 27 - Foundation/NSNumber/NSNumber_BOOL.m | 148 - Foundation/NSNumber/NSNumber_BOOL_const.h | 26 - Foundation/NSNumber/NSNumber_BOOL_const.m | 23 - .../NSNumber/NSNumber_BOOL_const_impl.h | 34 - Foundation/NSNumber/NSNumber_CF.h | 9 - Foundation/NSNumber/NSNumber_CF.m | 5 - Foundation/NSNumber/NSNumber_char.h | 27 - Foundation/NSNumber/NSNumber_char.m | 105 - Foundation/NSNumber/NSNumber_double.h | 34 - Foundation/NSNumber/NSNumber_double.m | 220 - Foundation/NSNumber/NSNumber_double_const.h | 32 - Foundation/NSNumber/NSNumber_float.h | 27 - Foundation/NSNumber/NSNumber_float.m | 111 - Foundation/NSNumber/NSNumber_int.h | 27 - Foundation/NSNumber/NSNumber_int.m | 105 - Foundation/NSNumber/NSNumber_long.h | 27 - Foundation/NSNumber/NSNumber_long.m | 105 - Foundation/NSNumber/NSNumber_longLong.h | 27 - Foundation/NSNumber/NSNumber_longLong.m | 106 - Foundation/NSNumber/NSNumber_placeholder.h | 26 - Foundation/NSNumber/NSNumber_placeholder.m | 152 - Foundation/NSNumber/NSNumber_short.h | 27 - Foundation/NSNumber/NSNumber_short.m | 105 - Foundation/NSNumber/NSNumber_unsignedChar.h | 27 - Foundation/NSNumber/NSNumber_unsignedChar.m | 106 - Foundation/NSNumber/NSNumber_unsignedInt.h | 27 - Foundation/NSNumber/NSNumber_unsignedInt.m | 106 - Foundation/NSNumber/NSNumber_unsignedLong.h | 27 - Foundation/NSNumber/NSNumber_unsignedLong.m | 106 - .../NSNumber/NSNumber_unsignedLongLong.h | 27 - .../NSNumber/NSNumber_unsignedLongLong.m | 106 - Foundation/NSNumber/NSNumber_unsignedShort.h | 27 - Foundation/NSNumber/NSNumber_unsignedShort.m | 106 - Foundation/NSNumberFormatter.h | 297 - Foundation/NSNumberFormatter.m | 1768 -- Foundation/NSObjCRuntime.h | 182 - Foundation/NSObjCRuntime.m | 179 - Foundation/NSObject/NSObject.h | 128 - Foundation/NSObject/NSObject.m | 407 - Foundation/NSObject/NSZombieObject.h | 28 - Foundation/NSObject/NSZombieObject.m | 76 - Foundation/NSObject/forwarding.h | 3 - Foundation/NSObject/forwarding.m | 189 - Foundation/NSObject/objc_forward_ffi.h | 15 - Foundation/NSObject/objc_forward_ffi.m | 416 - Foundation/NSObject/objc_msg_sendv-Disabled.m | 13 - Foundation/NSObject/objc_size_alignment.h | 16 - Foundation/NSObject/objc_size_alignment.m | 516 - .../NSObject/platform_linux/msgSendv-linux.s | 25 - .../platform_linux/msgSendv-linux_x86_64.s | 25 - .../NSObject/platform_linux/msgSendv-x64.m | 8 - .../NSObject/platform_linux/msgSendv-x64.s | 122 - .../platform_solaris/msgSendv-solaris.m | 59 - .../platform_windows/msgSendv-windows.s | 52 - Foundation/NSOperation/NSAtomicList.h | 38 - Foundation/NSOperation/NSAtomicList.m | 97 - Foundation/NSOperation/NSOperation.h | 81 - Foundation/NSOperation/NSOperation.m | 233 - Foundation/NSOperation/NSOperationQueue.h | 81 - Foundation/NSOperation/NSOperationQueue.m | 242 - Foundation/NSOrthography.h | 25 - Foundation/NSOrthography.m | 66 - Foundation/NSPipe.h | 32 - Foundation/NSPipe.m | 53 - Foundation/NSPlatform.h | 96 - Foundation/NSPlatform.m | 176 - Foundation/NSPointerArray.h | 0 Foundation/NSPointerArray.m | 0 Foundation/NSPointerFunctions.h | 0 Foundation/NSPointerFunctions.m | 0 .../NSMessagePortNameServer.h | 29 - .../NSMessagePortNameServer.m | 40 - .../NSPortNameServer/NSPortNameServer.h | 35 - .../NSPortNameServer/NSPortNameServer.m | 50 - .../NSPortNameServer/NSSocketPortNameServer.h | 44 - .../NSPortNameServer/NSSocketPortNameServer.m | 75 - .../NSPredicate/NSComparisonPredicate.h | 87 - .../NSPredicate/NSComparisonPredicate.m | 364 - Foundation/NSPredicate/NSCompoundPredicate.h | 42 - Foundation/NSPredicate/NSCompoundPredicate.m | 125 - Foundation/NSPredicate/NSExpression.h | 59 - Foundation/NSPredicate/NSExpression.m | 140 - Foundation/NSPredicate/NSExpression_array.h | 27 - Foundation/NSPredicate/NSExpression_array.m | 61 - .../NSPredicate/NSExpression_assignment.h | 29 - .../NSPredicate/NSExpression_assignment.m | 63 - .../NSPredicate/NSExpression_constant.h | 27 - .../NSPredicate/NSExpression_constant.m | 51 - .../NSPredicate/NSExpression_function.h | 28 - .../NSPredicate/NSExpression_function.m | 78 - Foundation/NSPredicate/NSExpression_keypath.h | 27 - Foundation/NSPredicate/NSExpression_keypath.m | 48 - .../NSPredicate/NSExpression_operator.h | 46 - .../NSPredicate/NSExpression_operator.m | 135 - Foundation/NSPredicate/NSExpression_self.h | 23 - Foundation/NSPredicate/NSExpression_self.m | 37 - .../NSPredicate/NSExpression_variable.h | 27 - .../NSPredicate/NSExpression_variable.m | 60 - Foundation/NSPredicate/NSPredicate.h | 42 - Foundation/NSPredicate/NSPredicate.m | 1716 -- Foundation/NSPredicate/NSPredicate_BOOL.h | 27 - Foundation/NSPredicate/NSPredicate_BOOL.m | 36 - Foundation/NSProcessInfo.h | 65 - Foundation/NSProcessInfo.m | 249 - Foundation/NSPropertyList/CFUID.h | 12 - Foundation/NSPropertyList/CFUID.m | 18 - Foundation/NSPropertyList/NSOldXMLAttribute.h | 38 - Foundation/NSPropertyList/NSOldXMLAttribute.m | 65 - Foundation/NSPropertyList/NSOldXMLDocument.h | 32 - Foundation/NSPropertyList/NSOldXMLDocument.m | 41 - Foundation/NSPropertyList/NSOldXMLElement.h | 56 - Foundation/NSPropertyList/NSOldXMLElement.m | 160 - Foundation/NSPropertyList/NSOldXMLReader.h | 50 - Foundation/NSPropertyList/NSOldXMLReader.m | 559 - Foundation/NSPropertyList/NSPropertyList.h | 49 - Foundation/NSPropertyList/NSPropertyList.m | 90 - .../NSPropertyList/NSPropertyListReader.h | 33 - .../NSPropertyList/NSPropertyListReader.m | 91 - .../NSPropertyListReader_binary1.h | 42 - .../NSPropertyListReader_binary1.m | 361 - .../NSPropertyListReader_vintage.h | 52 - .../NSPropertyListReader_vintage.m | 579 - .../NSPropertyListReader_xml1.h | 31 - .../NSPropertyListReader_xml1.m | 267 - .../NSPropertyListWriter_vintage.h | 43 - .../NSPropertyListWriter_vintage.m | 273 - .../NSPropertyListWriter_xml1.h | 36 - .../NSPropertyListWriter_xml1.m | 290 - Foundation/NSProxy.h | 42 - Foundation/NSProxy.m | 241 - Foundation/NSRange.h | 38 - Foundation/NSRange.m | 94 - Foundation/NSRunLoop/NSDelayedPerform.h | 36 - Foundation/NSRunLoop/NSDelayedPerform.m | 69 - Foundation/NSRunLoop/NSInputSource.h | 31 - Foundation/NSRunLoop/NSInputSource.m | 36 - Foundation/NSRunLoop/NSInputSourceSet.h | 45 - Foundation/NSRunLoop/NSInputSourceSet.m | 102 - Foundation/NSRunLoop/NSOrderedPerform.h | 45 - Foundation/NSRunLoop/NSOrderedPerform.m | 87 - Foundation/NSRunLoop/NSRunLoop-InputSource.h | 28 - Foundation/NSRunLoop/NSRunLoop.h | 86 - Foundation/NSRunLoop/NSRunLoop.m | 431 - Foundation/NSRunLoop/NSRunLoopState.h | 50 - Foundation/NSRunLoop/NSRunLoopState.m | 204 - Foundation/NSScanner/NSScanner.h | 63 - Foundation/NSScanner/NSScanner.m | 174 - Foundation/NSScanner/NSScanner_concrete.h | 30 - Foundation/NSScanner/NSScanner_concrete.m | 741 - Foundation/NSScript/NSScriptWhoseTests.h | 5 - Foundation/NSScript/NSScriptWhoseTests.m | 9 - Foundation/NSSet/NSCountedSet.h | 28 - Foundation/NSSet/NSCountedSet.m | 94 - Foundation/NSSet/NSEnumerator_set.h | 33 - Foundation/NSSet/NSEnumerator_set.m | 82 - Foundation/NSSet/NSInlineSetTable.h | 53 - Foundation/NSSet/NSInlineSetTable.m | 181 - Foundation/NSSet/NSMutableSet.h | 39 - Foundation/NSSet/NSMutableSet.m | 189 - Foundation/NSSet/NSMutableSet_concrete.h | 31 - Foundation/NSSet/NSMutableSet_concrete.m | 130 - Foundation/NSSet/NSSet.h | 69 - Foundation/NSSet/NSSet.m | 405 - Foundation/NSSet/NSSet_concrete.h | 29 - Foundation/NSSet/NSSet_concrete.m | 60 - Foundation/NSSet/NSSet_placeholder.h | 24 - Foundation/NSSet/NSSet_placeholder.m | 78 - Foundation/NSSortDescriptor.h | 45 - Foundation/NSSortDescriptor.m | 137 - Foundation/NSSpellEngine.h | 50 - Foundation/NSSpellEngine.m | 176 - Foundation/NSSpellServer.h | 66 - Foundation/NSSpellServer.m | 6 - Foundation/NSStream/CFSSLHandler.h | 30 - Foundation/NSStream/CFSSLHandler.m | 61 - Foundation/NSStream/NSFileHandle.h | 81 - Foundation/NSStream/NSFileHandle.m | 191 - Foundation/NSStream/NSFileHandle_stream.h | 16 - Foundation/NSStream/NSFileHandle_stream.m | 254 - Foundation/NSStream/NSInputStream.h | 36 - Foundation/NSStream/NSInputStream.m | 61 - Foundation/NSStream/NSInputStream_data.h | 30 - Foundation/NSStream/NSInputStream_data.m | 112 - Foundation/NSStream/NSInputStream_file.h | 31 - Foundation/NSStream/NSInputStream_file.m | 90 - Foundation/NSStream/NSInputStream_socket.h | 46 - Foundation/NSStream/NSInputStream_socket.m | 247 - Foundation/NSStream/NSOutputStream.h | 35 - Foundation/NSStream/NSOutputStream.m | 65 - Foundation/NSStream/NSOutputStream_buffer.h | 31 - Foundation/NSStream/NSOutputStream_buffer.m | 91 - Foundation/NSStream/NSOutputStream_data.h | 31 - Foundation/NSStream/NSOutputStream_data.m | 92 - Foundation/NSStream/NSOutputStream_file.h | 32 - Foundation/NSStream/NSOutputStream_file.m | 98 - Foundation/NSStream/NSOutputStream_socket.h | 42 - Foundation/NSStream/NSOutputStream_socket.m | 246 - Foundation/NSStream/NSSelectInputSource.h | 56 - Foundation/NSStream/NSSelectInputSource.m | 82 - Foundation/NSStream/NSSelectInputSourceSet.h | 28 - Foundation/NSStream/NSSelectInputSourceSet.m | 155 - Foundation/NSStream/NSSelectSet.h | 55 - Foundation/NSStream/NSSelectSet.m | 111 - Foundation/NSStream/NSSocket.h | 55 - Foundation/NSStream/NSSocket.m | 88 - Foundation/NSStream/NSStream.h | 86 - Foundation/NSStream/NSStream.m | 122 - Foundation/NSString/Encoding/8859-1.h | 263 - Foundation/NSString/Encoding/8859-10.h | 263 - Foundation/NSString/Encoding/8859-11.h | 255 - Foundation/NSString/Encoding/8859-13.h | 263 - Foundation/NSString/Encoding/8859-14.h | 263 - Foundation/NSString/Encoding/8859-15.h | 263 - Foundation/NSString/Encoding/8859-16.h | 263 - Foundation/NSString/Encoding/8859-2.h | 263 - Foundation/NSString/Encoding/8859-3.h | 256 - Foundation/NSString/Encoding/8859-4.h | 263 - Foundation/NSString/Encoding/8859-5.h | 263 - Foundation/NSString/Encoding/8859-6.h | 218 - Foundation/NSString/Encoding/8859-7.h | 260 - Foundation/NSString/Encoding/8859-8.h | 227 - Foundation/NSString/Encoding/8859-9.h | 263 - Foundation/NSString/Encoding/CP1250.h | 261 - Foundation/NSString/Encoding/CP1251.h | 265 - Foundation/NSString/Encoding/CP1252.h | 261 - Foundation/NSString/Encoding/CP1253.h | 249 - Foundation/NSString/Encoding/CP1254.h | 259 - Foundation/NSString/Encoding/CP1255.h | 243 - Foundation/NSString/Encoding/CP1256.h | 266 - Foundation/NSString/Encoding/CP1257.h | 254 - Foundation/NSString/Encoding/CP1258.h | 257 - Foundation/NSString/Encoding/CP874.h | 235 - Foundation/NSString/Encoding/CP932.h | 7986 ------ Foundation/NSString/Encoding/CP936.h | 22056 ---------------- Foundation/NSString/Encoding/CP949.h | 17312 ------------ Foundation/NSString/Encoding/CP950.h | 13767 ---------- .../English.lproj/NSStringEncodingNames.plist | 25 - Foundation/NSString/NSConstantString-Impl.m | 189 - Foundation/NSString/NSDarwinString.h | 32 - Foundation/NSString/NSDarwinString.m | 102 - Foundation/NSString/NSMutableString.h | 45 - Foundation/NSString/NSMutableString.m | 214 - .../NSString/NSMutableString_unicodePtr.h | 39 - .../NSString/NSMutableString_unicodePtr.m | 401 - Foundation/NSString/NSPathUtilities.h | 85 - Foundation/NSString/NSPathUtilities.m | 390 - Foundation/NSString/NSString.h | 324 - Foundation/NSString/NSString.m | 2127 -- Foundation/NSString/NSStringEncoder.h | 36 - Foundation/NSString/NSStringEncoder.m | 284 - Foundation/NSString/NSStringFileIO.h | 23 - Foundation/NSString/NSStringFileIO.m | 47 - Foundation/NSString/NSStringFormatter.h | 38 - Foundation/NSString/NSStringFormatter.m | 818 - Foundation/NSString/NSStringHashing.h | 57 - Foundation/NSString/NSStringSymbol.h | 28 - Foundation/NSString/NSStringSymbol.m | 98 - Foundation/NSString/NSStringUTF8.h | 39 - Foundation/NSString/NSStringUTF8.m | 220 - Foundation/NSString/NSString_cString.h | 71 - Foundation/NSString/NSString_cString.m | 317 - .../NSString/NSString_defaultEncoding.h | 23 - Foundation/NSString/NSString_isoLatin1.h | 48 - Foundation/NSString/NSString_isoLatin1.m | 168 - Foundation/NSString/NSString_isoLatin2.h | 48 - Foundation/NSString/NSString_isoLatin2.m | 393 - Foundation/NSString/NSString_macOSRoman.h | 46 - Foundation/NSString/NSString_macOSRoman.m | 336 - Foundation/NSString/NSString_nextstep.h | 42 - Foundation/NSString/NSString_nextstep.m | 200 - .../NSString/NSString_nextstepCString.h | 34 - .../NSString/NSString_nextstepCString.m | 117 - Foundation/NSString/NSString_placeholder.h | 35 - Foundation/NSString/NSString_placeholder.m | 153 - Foundation/NSString/NSString_unicode.h | 39 - Foundation/NSString/NSString_unicode.m | 109 - Foundation/NSString/NSString_unicodePtr.h | 33 - Foundation/NSString/NSString_unicodePtr.m | 112 - Foundation/NSString/NSString_win1252.h | 47 - Foundation/NSString/NSString_win1252.m | 249 - Foundation/NSString/NSUnicodeCaseMapping.h | 33 - Foundation/NSString/NSUnicodeCaseMapping.m | 858 - Foundation/NSString/unibuffer.h | 39 - Foundation/NSString/unibuffer.m | 18 - .../NSStringsFileFormat/NSStringsFileParser.h | 25 - .../NSStringsFileFormat/NSStringsFileParser.m | 385 - Foundation/NSTask.h | 75 - Foundation/NSTask.m | 183 - Foundation/NSTextCheckingResult.h | 87 - Foundation/NSTextCheckingResult.m | 167 - Foundation/NSThread/NSThread-Private.h | 37 - Foundation/NSThread/NSThread.h | 114 - Foundation/NSThread/NSThread.m | 501 - Foundation/NSTimeZone/NSTimeZone.h | 78 - Foundation/NSTimeZone/NSTimeZone.m | 252 - .../NSTimeZone/NSTimeZoneAbbreviations.plist | 4 - Foundation/NSTimeZone/NSTimeZoneRegions.plist | 553 - Foundation/NSTimeZone/NSTimeZoneTransition.h | 39 - Foundation/NSTimeZone/NSTimeZoneTransition.m | 75 - Foundation/NSTimeZone/NSTimeZoneType.h | 42 - Foundation/NSTimeZone/NSTimeZoneType.m | 94 - .../NSTimeZone/NSTimeZoneWindowsZones.plist | 29 - Foundation/NSTimeZone/NSTimeZone_absolute.h | 29 - Foundation/NSTimeZone/NSTimeZone_absolute.m | 92 - Foundation/NSTimer/NSTimer.h | 64 - Foundation/NSTimer/NSTimer.m | 135 - Foundation/NSTimer/NSTimer_concrete.h | 34 - Foundation/NSTimer/NSTimer_concrete.m | 90 - Foundation/NSTimer/NSTimer_invocation.h | 30 - Foundation/NSTimer/NSTimer_invocation.m | 54 - Foundation/NSTimer/NSTimer_targetAction.h | 41 - Foundation/NSTimer/NSTimer_targetAction.m | 89 - Foundation/NSURL/NSCachedURLResponse.h | 42 - Foundation/NSURL/NSCachedURLResponse.m | 65 - Foundation/NSURL/NSHTTPURLResponse.h | 33 - Foundation/NSURL/NSHTTPURLResponse.m | 83 - Foundation/NSURL/NSMutableURLRequest.h | 40 - Foundation/NSURL/NSMutableURLRequest.m | 108 - Foundation/NSURL/NSURL.h | 101 - Foundation/NSURL/NSURL.m | 967 - .../NSURL/NSURLAuthenticationChallenge.h | 53 - .../NSURL/NSURLAuthenticationChallenge.m | 88 - Foundation/NSURL/NSURLCache.h | 66 - Foundation/NSURL/NSURLCache.m | 330 - Foundation/NSURL/NSURLConnection.h | 77 - Foundation/NSURL/NSURLConnection.m | 300 - Foundation/NSURL/NSURLConnectionState.h | 34 - Foundation/NSURL/NSURLConnectionState.m | 71 - Foundation/NSURL/NSURLCredential.h | 44 - Foundation/NSURL/NSURLCredential.m | 71 - Foundation/NSURL/NSURLCredentialStorage.h | 44 - Foundation/NSURL/NSURLCredentialStorage.m | 75 - Foundation/NSURL/NSURLDownload.h | 88 - Foundation/NSURL/NSURLDownload.m | 180 - Foundation/NSURL/NSURLError.h | 46 - Foundation/NSURL/NSURLError.m | 4 - Foundation/NSURL/NSURLHandle.h | 26 - Foundation/NSURL/NSURLHandle.m | 23 - Foundation/NSURL/NSURLProtectionSpace.h | 52 - Foundation/NSURL/NSURLProtectionSpace.m | 100 - Foundation/NSURL/NSURLProtocol.h | 79 - Foundation/NSURL/NSURLProtocol.m | 135 - Foundation/NSURL/NSURLProtocol_http.h | 53 - Foundation/NSURL/NSURLProtocol_http.m | 755 - Foundation/NSURL/NSURLRequest.h | 67 - Foundation/NSURL/NSURLRequest.m | 153 - Foundation/NSURL/NSURLResponse.h | 42 - Foundation/NSURL/NSURLResponse.m | 78 - Foundation/NSUnarchiver.h | 62 - Foundation/NSUnarchiver.m | 496 - Foundation/NSUndoManager/NSUndoGroup.h | 42 - Foundation/NSUndoManager/NSUndoGroup.m | 85 - Foundation/NSUndoManager/NSUndoManager.h | 99 - Foundation/NSUndoManager/NSUndoManager.m | 477 - .../NSUserDefaults/NSPersistantDomain.h | 34 - .../NSUserDefaults/NSPersistantDomain.m | 54 - Foundation/NSUserDefaults/NSUserDefaults.h | 103 - Foundation/NSUserDefaults/NSUserDefaults.m | 457 - Foundation/NSValue/NSValue.h | 54 - Foundation/NSValue/NSValue.m | 201 - Foundation/NSValue/NSValue_concrete.h | 28 - Foundation/NSValue/NSValue_concrete.m | 54 - .../NSValue/NSValue_nonRetainedObject.h | 28 - .../NSValue/NSValue_nonRetainedObject.m | 53 - Foundation/NSValue/NSValue_placeholder.h | 24 - Foundation/NSValue/NSValue_placeholder.m | 31 - Foundation/NSValue/NSValue_pointer.h | 28 - Foundation/NSValue/NSValue_pointer.m | 55 - .../NSValueTransformer/NSValueTransformer.h | 44 - .../NSValueTransformer/NSValueTransformer.m | 97 - .../NSValueTransformer_IsNil.h | 23 - .../NSValueTransformer_IsNil.m | 34 - .../NSValueTransformer_IsNotNil.h | 23 - .../NSValueTransformer_IsNotNil.m | 34 - ...SValueTransformer_KeyedUnarchiveFromData.h | 23 - ...SValueTransformer_KeyedUnarchiveFromData.m | 45 - .../NSValueTransformer_NegateBoolean.h | 23 - .../NSValueTransformer_NegateBoolean.m | 38 - .../NSValueTransformer_UnarchiveFromData.h | 23 - .../NSValueTransformer_UnarchiveFromData.m | 40 - Foundation/NSZone/NSVirtualMemory.m | 48 - Foundation/NSZone/NSZone.h | 65 - Foundation/NSZone/NSZone.m | 139 - .../platform_bsd/NSMemoryFunctions_bsd.m | 39 - Foundation/platform_bsd/NSPlatform_bsd.h | 29 - Foundation/platform_bsd/NSPlatform_bsd.m | 73 - Foundation/platform_bsd/libmain.m | 70 - .../platform_darwin/DarwinMemoryFunctions.m | 34 - .../platform_darwin/NSPlatform_darwin.h | 26 - .../platform_darwin/NSPlatform_darwin.m | 158 - .../NSString_defaultEncoding_darwin.m | 106 - Foundation/platform_darwin/libmain.m | 30 - .../platform_linux/NSMemoryFunctions_linux.m | 37 - Foundation/platform_linux/NSPlatform_linux.h | 26 - Foundation/platform_linux/NSPlatform_linux.m | 81 - Foundation/platform_linux/libmain.m | 70 - .../NSCancelInputSource_posix.h | 31 - .../NSCancelInputSource_posix.m | 63 - .../platform_posix/NSConditionLock_posix.h | 33 - .../platform_posix/NSConditionLock_posix.m | 246 - Foundation/platform_posix/NSCondition_posix.h | 17 - Foundation/platform_posix/NSCondition_posix.m | 51 - Foundation/platform_posix/NSConstantString.m | 45 - .../platform_posix/NSFileHandle_posix.h | 37 - .../platform_posix/NSFileHandle_posix.m | 466 - .../platform_posix/NSFileManager_posix.h | 24 - .../platform_posix/NSFileManager_posix.m | 519 - Foundation/platform_posix/NSLock_posix.h | 28 - Foundation/platform_posix/NSLock_posix.m | 56 - .../platform_posix/NSMemoryFunctions_posix.m | 169 - .../platform_posix/NSPersistantDomain_posix.h | 42 - .../platform_posix/NSPersistantDomain_posix.m | 109 - Foundation/platform_posix/NSPipe_posix.h | 27 - Foundation/platform_posix/NSPipe_posix.m | 71 - Foundation/platform_posix/NSPlatform_posix.h | 31 - Foundation/platform_posix/NSPlatform_posix.m | 405 - .../platform_posix/NSRecursiveLock_posix.h | 38 - .../platform_posix/NSRecursiveLock_posix.m | 101 - .../platform_posix/NSRunLoopState_posix.h | 5 - .../platform_posix/NSRunLoopState_posix.m | 35 - Foundation/platform_posix/NSSelectSet_bsd.h | 25 - Foundation/platform_posix/NSSelectSet_bsd.m | 245 - .../platform_posix/NSSocketPort_posix.h | 30 - .../platform_posix/NSSocketPort_posix.m | 55 - Foundation/platform_posix/NSSocket_bsd.h | 32 - Foundation/platform_posix/NSSocket_bsd.m | 277 - .../NSString_defaultEncoding_posix.m | 98 - Foundation/platform_posix/NSTask_posix.h | 36 - Foundation/platform_posix/NSTask_posix.m | 277 - Foundation/platform_posix/NSTimeZone_posix.h | 35 - Foundation/platform_posix/NSTimeZone_posix.m | 387 - .../NSBacktraceFunctions_solaris.m | 80 - .../platform_solaris/NSPlatform_solaris.h | 26 - .../platform_solaris/NSPlatform_solaris.m | 79 - .../platform_solaris/SolarisMemoryFunctions.m | 31 - Foundation/platform_solaris/libmain.m | 64 - .../NSBacktraceFunctions_win32.m | 151 - .../NSCancelInputSource_win32.h | 27 - .../NSCancelInputSource_win32.m | 48 - .../platform_windows/NSConditionLock_win32.h | 34 - .../platform_windows/NSConditionLock_win32.m | 179 - .../platform_windows/NSCondition_win32.h | 32 - .../platform_windows/NSCondition_win32.m | 94 - .../platform_windows/NSFileHandle_win32.h | 34 - .../platform_windows/NSFileHandle_win32.m | 309 - .../platform_windows/NSFileManager_win32.h | 26 - .../platform_windows/NSFileManager_win32.m | 940 - .../NSHandleMonitorSet_win32.h | 37 - .../NSHandleMonitorSet_win32.m | 183 - .../platform_windows/NSHandleMonitor_win32.h | 51 - .../platform_windows/NSHandleMonitor_win32.m | 68 - .../platform_windows/NSLocale+windows.h | 4 - .../platform_windows/NSLocale+windows.m | 102 - Foundation/platform_windows/NSLock_win32.h | 27 - Foundation/platform_windows/NSLock_win32.m | 52 - .../NSMemoryFunctions_win32.m | 208 - .../NSParentDeathMonitor_win32.h | 32 - .../NSParentDeathMonitor_win32.m | 63 - .../NSPersistantDomain_win32.h | 40 - .../NSPersistantDomain_win32.m | 189 - Foundation/platform_windows/NSPipe_win32.h | 29 - Foundation/platform_windows/NSPipe_win32.m | 64 - .../platform_windows/NSPlatform_win32.h | 40 - .../platform_windows/NSPlatform_win32.m | 627 - .../NSReadInBackground_win32.h | 42 - .../NSReadInBackground_win32.m | 114 - .../platform_windows/NSRecursiveLock_win32.h | 28 - .../platform_windows/NSRecursiveLock_win32.m | 58 - .../platform_windows/NSRunLoopState_windows.h | 5 - .../platform_windows/NSRunLoopState_windows.m | 31 - .../platform_windows/NSSelectSet_windows.h | 24 - .../platform_windows/NSSelectSet_windows.m | 490 - .../platform_windows/NSSocket_windows.h | 35 - .../platform_windows/NSSocket_windows.m | 452 - .../NSString_defaultEncoding_windows.m | 115 - Foundation/platform_windows/NSString_win32.h | 26 - Foundation/platform_windows/NSString_win32.m | 75 - Foundation/platform_windows/NSTask_win32.h | 37 - Foundation/platform_windows/NSTask_win32.m | 269 - .../platform_windows/NSTimeZone_win32.h | 42 - .../platform_windows/NSTimeZone_win32.m | 457 - Foundation/platform_windows/dllmain.m | 37 - Foundation/xml/NSXMLDTD.h | 58 - Foundation/xml/NSXMLDTD.m | 117 - Foundation/xml/NSXMLDTDNode.h | 44 - Foundation/xml/NSXMLDTDNode.m | 71 - Foundation/xml/NSXMLDocument.h | 102 - Foundation/xml/NSXMLDocument.m | 302 - Foundation/xml/NSXMLElement.h | 67 - Foundation/xml/NSXMLElement.m | 261 - Foundation/xml/NSXMLNode.h | 136 - Foundation/xml/NSXMLNode.m | 389 - Foundation/xml/NSXMLNodeOptions.h | 4 - Foundation/xml/NSXMLParser.h | 140 - Foundation/xml/NSXMLParser.m | 588 - IOKit/English.lproj/InfoPlist.strings | 2 - IOKit/IOKit.xcodeproj/project.pbxproj | 326 - IOKit/IOKitLib.h | 21 - IOKit/IOKitLib.m | 183 - IOKit/IOTypes.h | 35 - IOKit/Info.plist | 28 - IOKit/network/IOEthernetController.h | 3 - IOKit/network/IOEthernetInterface.h | 2 - IOKit/network/IONetworkController.h | 1 - IOKit/network/IONetworkInterface.h | 2 - ImageKit/English.lproj/InfoPlist.strings | 2 - ImageKit/IKImageBrowserCell.h | 0 ImageKit/IKImageBrowserCell.m | 0 ImageKit/IKImageBrowserView.h | 198 - ImageKit/IKImageBrowserView.m | 282 - ImageKit/ImageKit.h | 1 - ImageKit/ImageKit.xcodeproj/project.pbxproj | 295 - .../xcschemes/ImageKit-Windows-i386.xcscheme | 57 - ImageKit/ImageKitExport.h | 25 - ImageKit/ImageKit_Framework.m | 12 - ImageKit/Info.plist | 28 - ImageKit/dllmain.m | 30 - .../Specifications/Windows.pbfilespec | 10 - .../Specifications/gcc-4.3.1.pbcompspec | 147 - .../Specifications/gcc-default.pbcompspec | 7 - .../llvm-clang-default.pbcompspec | 7 - .../llvm-clang-trunk.pbcompspec | 53 - .../Resources/scripts/createSpecifications.sh | 66 - .../scripts/downloadFilesIfNeeded.sh | 36 - .../Resources/scripts/unarchiveFiles.sh | 45 - InstallCDT/Resources/tools/retargetBundle.m | 441 - InstallCDT/install.sh | 376 - InstallCDT/install_AntiGrain.sh | 60 - InstallCDT/install_FreeType.sh | 17 - InstallCDT/install_GLUT.sh | 26 - InstallCDT/install_OpenSSL.sh | 34 - InstallCDT/install_hunspell.sh | 29 - InstallCDT/install_libjpeg-turbo.sh | 53 - InstallCDT/install_libjpeg.sh | 50 - InstallCDT/install_libtiff.sh | 64 - InstallCDT/install_plibc.sh | 28 - InstallCDT/install_png.sh | 69 - InstallCDT/install_pthread.sh | 29 - InstallCDT/install_sqlite.sh | 23 - InstallCDT/install_xml2.sh | 19 - InstallCDT/install_zlib.sh | 24 - InstallCDT/install_zlib_src.sh | 56 - LICENSE.txt => LICENSE | 0 .../English.lproj/InfoPlist.strings | 2 - NSSpellEngine_hunspell/Info.plist | 28 - .../NSSpellEngine_hunspell.h | 24 - .../NSSpellEngine_hunspell.mm | 217 - .../project.pbxproj | 337 - .../NSSpellEngine_hunspellDictionary.h | 30 - .../NSSpellEngine_hunspellDictionary.mm | 134 - .../English.lproj/InfoPlist.strings | 2 - O2Context_AntiGrain/Info.plist | 46 - O2Context_AntiGrain/O2Context_AntiGrain.h | 107 - O2Context_AntiGrain/O2Context_AntiGrain.mm | 2417 -- .../project.pbxproj | 455 - O2Context_AntiGrain/agg_font_cache_manager.h | 369 - O2Context_AntiGrain/agg_font_win32_tt.h | 263 - O2Context_AntiGrain/agg_font_win32_tt.mm | 745 - O2Context_AntiGrain/o2agg_pixfmt_rgba.h | 2995 --- .../o2agg_span_image_filter_rgba.h | 608 - O2Context_AntiGrain/partial_stack_blur.h | 265 - Onyx2D/Onyx2D.xcodeproj/project.pbxproj | 993 - OpenGL/CMakeLists.txt | 44 - OpenGL/Info.plist | 26 - OpenGL/OpenGL.m | 2 - OpenGL/OpenGL.xcodeproj/project.pbxproj | 334 - OpenGL/include/GL | 1 - OpenGL/include/OpenGL/CGLCurrent.h | 4 - OpenGL/include/OpenGL/CGLTypes.h | 121 - OpenGL/include/OpenGL/OpenGL.h | 42 - OpenGL/include/OpenGL/gl.h | 2982 --- OpenGL/include/OpenGL/glext.h | 11486 -------- OpenGL/include/OpenGL/gltypes.h | 23 - OpenGL/include/OpenGL/glu.h | 3 - OpenGL/include/OpenGL/glweak.h | 16 - OpenGL/include/OpenGL/wglext.h | 899 - PDFKit/English.lproj/InfoPlist.strings | 2 - PDFKit/Info.plist | 28 - PDFKit/PDFDocument.h | 58 - PDFKit/PDFDocument.m | 292 - PDFKit/PDFDocumentView.h | 22 - PDFKit/PDFDocumentView.m | 143 - PDFKit/PDFKit.h | 3 - PDFKit/PDFKit.xcodeproj/project.pbxproj | 432 - .../xcschemes/PDFKit-Windows-i386.xcscheme | 57 - PDFKit/PDFKitExport.h | 25 - PDFKit/PDFKit_Framework.m | 12 - PDFKit/PDFPage.h | 47 - PDFKit/PDFPage.m | 139 - PDFKit/PDFPageView.h | 21 - PDFKit/PDFPageView.m | 71 - PDFKit/PDFSelectedRange.h | 16 - PDFKit/PDFSelectedRange.m | 28 - PDFKit/PDFSelection.h | 43 - PDFKit/PDFSelection.m | 190 - PDFKit/PDFView.h | 34 - PDFKit/PDFView.m | 97 - .../QuartzCore.xcodeproj/project.pbxproj | 630 - .../English.lproj/InfoPlist.strings | 2 - ScriptingBridge/Info.plist | 28 - ScriptingBridge/SBApplication.h | 10 - ScriptingBridge/SBApplication.m | 20 - ScriptingBridge/SBElementArray.h | 5 - ScriptingBridge/SBElementArray.m | 5 - ScriptingBridge/SBObject.h | 9 - ScriptingBridge/SBObject.m | 16 - ScriptingBridge/ScriptingBridge.h | 3 - .../ScriptingBridge.xcodeproj/project.pbxproj | 313 - ScriptingBridge/dllmain.m | 30 - Security/English.lproj/InfoPlist.strings | 2 - Security/Info.plist | 28 - Security/SecAccess.h | 19 - Security/SecAccess.m | 27 - Security/SecBase.h | 126 - Security/SecBase.m | 228 - Security/SecKeychain.h | 32 - Security/SecKeychain.m | 512 - Security/SecKeychainCursor.h | 24 - Security/SecKeychainCursor.m | 42 - Security/SecKeychainItem.h | 52 - Security/SecKeychainItem.m | 160 - Security/SecKeychainSearch.h | 29 - Security/SecKeychainSearch.m | 69 - Security/SecTrustedApplication.h | 14 - Security/SecTrustedApplication.m | 13 - Security/Security.h | 1 - Security/Security.xcodeproj/project.pbxproj | 557 - Security/version.plist | 16 - examples/CGShadingCreate/CMakeLists.txt | 17 + .../CGShadingCreate/GradientView.h | 0 .../CGShadingCreate/GradientView.m | 8 +- .../CGShadingCreate/Info.plist | 4 +- .../English.lproj/InfoPlist.strings | Bin .../English.lproj/MainMenu.nib/classes.nib | 0 .../English.lproj/MainMenu.nib/info.nib | 2 - .../MainMenu.nib/keyedobjects.nib | Bin 0 -> 30226 bytes {Examples => examples}/CGShadingCreate/main.m | 0 examples/CMakeLists.txt | 7 + examples/NSOpenGLView/CMakeLists.txt | 17 + .../NSOpenGLView/Info.plist | 4 +- .../NSOpenGLView/MyOpenGLView.h | 0 .../NSOpenGLView/MyOpenGLView.m | 3 +- .../English.lproj/InfoPlist.strings | Bin .../English.lproj/Localizable-windows.strings | 0 .../English.lproj/Localizable.strings | 0 .../English.lproj/MainMenu.nib/classes.nib | 0 .../English.lproj/MainMenu.nib/info.nib | 0 .../MainMenu.nib/keyedobjects.nib | Bin {Examples => examples}/NSOpenGLView/main.m | 0 examples/TextEditor/CMakeLists.txt | 17 + {Examples => examples}/TextEditor/Info.plist | 4 +- .../TextEditor/MyDocument.h | 0 .../TextEditor/MyDocument.m | 29 +- .../Resources}/English.lproj/Credits.rtf | 0 .../English.lproj/MainMenu.nib/designable.nib | 0 .../MainMenu.nib/keyedobjects.nib | Bin .../MyDocument.nib/designable.nib | 0 .../MyDocument.nib/keyedobjects.nib | Bin examples/TextEditor/main.m | 25 + makefiles/Foundation/Makefile | 53 - .../rsc/NSTimeZoneAbbreviations.plist | 1 - makefiles/Foundation/rsc/NSUserDefaults.plist | 1 - makefiles/Makefile | 16 - makefiles/Makefiles/Makefile.app | 31 - makefiles/Makefiles/Makefile.common | 105 - makefiles/Makefiles/Makefile.framework | 37 - makefiles/README.txt | 27 - makefiles/test/Makefile | 4 - makefiles/test/src/test.m | 136 - objc/Info.plist | 26 - objc/ObjCArray.c | 67 - objc/ObjCArray.h | 26 - objc/ObjCDynamicModule.c | 10 - objc/ObjCDynamicModule.h | 9 - objc/ObjCHashTable.c | 112 - objc/ObjCHashTable.h | 65 - objc/ObjCModule.c | 514 - objc/ObjCModule.h | 38 - objc/Object.h | 37 - objc/Object.m | 37 - objc/Protocol.h | 31 - objc/Protocol.m | 149 - objc/deprecated.h | 7 - objc/dyld.c | 112 - objc/dyld.h | 4 - objc/message.h | 19 - objc/objc-auto.h | 0 objc/objc-class.h | 136 - objc/objc-export.h | 48 - objc/objc-runtime.h | 11 - objc/objc.h | 26 - objc/objc.m | 18 - objc/objc.xcodeproj/project.pbxproj | 477 - objc/objc_arc.c | 278 - objc/objc_arc.h | 10 - objc/objc_association.m | 363 - objc/objc_cache.h | 14 - objc/objc_class.c | 951 - objc/objc_class.h | 42 - objc/objc_debugHelpers.h | 10 - objc/objc_debugHelpers.m | 72 - objc/objc_exception.m | 132 - objc/objc_functions.c | 29 - objc/objc_ivar.c | 13 - objc/objc_lock.h | 22 - objc/objc_log.c | 83 - objc/objc_log.h | 16 - objc/objc_malloc.c | 17 - objc/objc_malloc.h | 6 - objc/objc_method.c | 56 - objc/objc_msg_lookup.c | 55 - objc/objc_object.c | 126 - objc/objc_object.h | 0 objc/objc_property.c | 68 - objc/objc_protocol.c | 62 - objc/objc_protocol.h | 11 - objc/objc_sel.c | 117 - objc/objc_sel.h | 58 - objc/objc_tls.c | 24 - objc/objc_tls.h | 26 - .../OBJCRegisterModule_Darwin.h | 9 - .../OBJCRegisterModule_Darwin.m | 165 - .../objc_msgSend-darwin-i386.s | 110 - .../platform_darwin/objc_msgSend-darwin-ppc.s | 147 - objc/platform_linux/objc-msgsend-x86_64.s | 129 - objc/platform_linux/objc-msgsend.s | 129 - objc/platform_windows/objc-msgsend.s | 139 - objc/runtime.h | 127 - pthread/pthread.h | 120 - pthread/pthread.m | 423 - pthread/pthread.xcodeproj/project.pbxproj | 176 - pthread/sched.h | 8 - .../CGShadingCreate.xcodeproj/project.pbxproj | 414 - .../English.lproj/InfoPlist.strings | Bin 202 -> 0 bytes .../English.lproj/MainMenu.nib/classes.nib | 39 - .../MainMenu.nib/keyedobjects.nib | 9592 ------- .../Examples/CGShadingCreate/GradientView.h | 49 - .../Examples/CGShadingCreate/GradientView.m | 167 - testing/Examples/CGShadingCreate/main.m | 5 - .../project.pbxproj | 414 - .../English.lproj/InfoPlist.strings | Bin 202 -> 0 bytes .../English.lproj/MainMenu.nib/classes.nib | 17 - .../English.lproj/MainMenu.nib/info.nib | 24 - .../MainMenu.nib/keyedobjects.nib | 6659 ----- .../CGShadingCreateAxial/GradientView.h | 21 - .../CGShadingCreateAxial/GradientView.m | 100 - .../Examples/CGShadingCreateAxial/Info.plist | 28 - testing/Examples/CGShadingCreateAxial/main.m | 13 - .../English.lproj/InfoPlist.strings | Bin 202 -> 0 bytes .../English.lproj/Localizable-windows.strings | 1 - .../English.lproj/Localizable.strings | 3 - .../English.lproj/MainMenu.nib/classes.nib | 12 - .../English.lproj/MainMenu.nib/info.nib | 22 - .../MainMenu.nib/keyedobjects.nib | Bin 14114 -> 0 bytes testing/Examples/NSOpenGLView/Info.plist | 28 - testing/Examples/NSOpenGLView/MyOpenGLView.h | 10 - testing/Examples/NSOpenGLView/MyOpenGLView.m | 146 - .../NSOpenGLView.xcodeproj/project.pbxproj | 455 - testing/Examples/NSOpenGLView/main.m | 13 - testing/Examples/Quartz2D/Demo.h | 22 - testing/Examples/Quartz2D/Demo.m | 38 - testing/Examples/Quartz2D/DemoAffineImages.h | 15 - testing/Examples/Quartz2D/DemoAffineImages.m | 53 - testing/Examples/Quartz2D/DemoAntialias.h | 14 - testing/Examples/Quartz2D/DemoAntialias.m | 34 - testing/Examples/Quartz2D/DemoGradient.h | 14 - testing/Examples/Quartz2D/DemoGradient.m | 65 - testing/Examples/Quartz2D/DemoJoinCapDash.h | 14 - testing/Examples/Quartz2D/DemoJoinCapDash.m | 64 - testing/Examples/Quartz2D/DemoPaths.h | 14 - testing/Examples/Quartz2D/DemoPaths.m | 13 - testing/Examples/Quartz2D/DemoPattern.h | 15 - testing/Examples/Quartz2D/DemoPattern.m | 62 - testing/Examples/Quartz2D/DemoPorterDuff.h | 14 - testing/Examples/Quartz2D/DemoPorterDuff.m | 63 - testing/Examples/Quartz2D/DemoSoftMask.h | 17 - testing/Examples/Quartz2D/DemoSoftMask.m | 37 - testing/Examples/Quartz2D/DemoView.h | 19 - testing/Examples/Quartz2D/DemoView.m | 43 - testing/Examples/Quartz2D/DemoWindingRules.h | 14 - testing/Examples/Quartz2D/DemoWindingRules.m | 42 - .../Quartz2D/English.lproj/InfoPlist.strings | 2 - .../Quartz2D/English.lproj/MainMenu.xib | 4480 ---- testing/Examples/Quartz2D/Quartz2D-Info.plist | 32 - .../Quartz2D.xcodeproj/project.pbxproj | 450 - .../Examples/Quartz2D/Quartz2DAppDelegate.h | 24 - .../Examples/Quartz2D/Quartz2DAppDelegate.m | 74 - testing/Examples/Quartz2D/Quartz2D_Prefix.pch | 7 - testing/Examples/Quartz2D/main.m | 13 - testing/Examples/Quartz2D/pattern.png | Bin 652274 -> 0 bytes testing/Examples/Quartz2D/stankard.png | Bin 79299 -> 0 bytes .../TextEditor/English.lproj/Credits.rtf | 29 - .../English.lproj/MainMenu.nib/classes.nib | 4 - .../English.lproj/MainMenu.nib/info.nib | 23 - .../MainMenu.nib/keyedobjects.nib | 9686 ------- .../English.lproj/MyDocument.nib/classes.nib | 12 - .../English.lproj/MyDocument.nib/info.nib | 18 - .../MyDocument.nib/keyedobjects.nib | 1379 - testing/Examples/TextEditor/Info.plist | 71 - testing/Examples/TextEditor/MyDocument.h | 26 - testing/Examples/TextEditor/MyDocument.m | 63 - .../TextEditor.xcodeproj/project.pbxproj | 431 - testing/Examples/TextEditor/main.m | 24 - .../FoundationTest.xcodeproj/project.pbxproj | 417 - testing/FoundationTest/FoundationTest/main.m | 19 - testing/OnyxPDFRasterizer/OnyxPDFRasterizer.m | 61 - .../project.pbxproj | 587 - testing/SWRender/CoreGraphics_KG.h | 323 - testing/SWRender/DemoCGContext.m | 3 - testing/SWRender/DemoContext.h | 41 - testing/SWRender/DemoContext.m | 4 - testing/SWRender/DemoKGContext.m | 3 - testing/SWRender/DemosTemplate.m | 760 - .../SWRender/English.lproj/InfoPlist.strings | Bin 202 -> 0 bytes .../English.lproj/MainMenu.nib/classes.nib | 93 - .../English.lproj/MainMenu.nib/designable.nib | 5764 ---- .../English.lproj/MainMenu.nib/info.nib | 21 - .../MainMenu.nib/keyedobjects.nib | Bin 72732 -> 0 bytes testing/SWRender/Info.plist | 28 - testing/SWRender/KGImageView.h | 29 - testing/SWRender/KGImageView.m | 49 - testing/SWRender/KGRender.h | 56 - testing/SWRender/KGRender.m | 110 - testing/SWRender/KGRenderController.h | 73 - testing/SWRender/KGRenderController.m | 396 - testing/SWRender/O2Font_CG.h | 16 - testing/SWRender/O2Font_CG.m | 33 - testing/SWRender/README.txt | 3 - .../SWRender.xcodeproj/project.pbxproj | 775 - testing/SWRender/main.m | 13 - testing/SWRender/overlay.jpg | Bin 11283 -> 0 bytes testing/SWRender/overlay.png | Bin 37005 -> 0 bytes testing/SWRender/pattern.jpg | Bin 165362 -> 0 bytes testing/SWRender/redLZWSquare.tif | Bin 3588 -> 0 bytes testing/UnitTests/Apple.bplist.keyedArchive | Bin 278 -> 0 bytes testing/UnitTests/Array.h | 26 - testing/UnitTests/Array.m | 72 - testing/UnitTests/Bindings/NibBasedTest.h | 28 - testing/UnitTests/Bindings/NibBasedTest.m | 47 - testing/UnitTests/Bindings/ObjectController.h | 29 - testing/UnitTests/Bindings/ObjectController.m | 37 - .../UnitTests/Bindings/ObjectController.xib | 313 - testing/UnitTests/Bindings/ObservableArray.h | 32 - testing/UnitTests/Bindings/ObservableArray.m | 234 - testing/UnitTests/Bindings/TableViewTest.h | 31 - testing/UnitTests/Bindings/TableViewTest.m | 89 - testing/UnitTests/Bindings/TableViewTest.xib | 608 - .../UnitTests/Bindings/TextFieldBindings.h | 30 - .../UnitTests/Bindings/TextFieldBindings.m | 53 - .../UnitTests/Bindings/TextFieldBindings.xib | 280 - testing/UnitTests/Cocotron.keyedArchive | Bin 1306 -> 0 bytes testing/UnitTests/CrashCatcher.m | 46 - .../UnitTests/English.lproj/InfoPlist.strings | Bin 92 -> 0 bytes testing/UnitTests/FileHandle.h | 27 - testing/UnitTests/FileHandle.m | 81 - testing/UnitTests/ForEach.h | 14 - testing/UnitTests/ForEach.m | 111 - testing/UnitTests/Forwarding.h | 44 - testing/UnitTests/Forwarding.m | 197 - testing/UnitTests/Info.plist | 26 - testing/UnitTests/KVC.h | 34 - testing/UnitTests/KVC.m | 135 - testing/UnitTests/KVO.h | 38 - testing/UnitTests/KVO.m | 212 - testing/UnitTests/KeyedArchiving.h | 26 - testing/UnitTests/KeyedArchiving.m | 89 - testing/UnitTests/MessageBenchmark.h | 29 - testing/UnitTests/MessageBenchmark.m | 44 - testing/UnitTests/MessageSend.m | 91 - testing/UnitTests/MessageSendTorture.h | 16 - testing/UnitTests/MessageSendTorture.m | 115 - testing/UnitTests/NewStyleExceptions.h | 26 - testing/UnitTests/NewStyleExceptions.m | 149 - testing/UnitTests/ObjCXXExceptions.h | 26 - testing/UnitTests/ObjCXXExceptions.mm | 66 - testing/UnitTests/OperationQueueTests.h | 19 - testing/UnitTests/OperationQueueTests.m | 221 - testing/UnitTests/Predicate.h | 26 - testing/UnitTests/Predicate.m | 98 - testing/UnitTests/Properties.h | 32 - testing/UnitTests/Properties.m | 75 - testing/UnitTests/PropertyListUnarchiving.h | 26 - testing/UnitTests/PropertyListUnarchiving.m | 102 - testing/UnitTests/README | 1 - testing/UnitTests/Resources/Binary.plist | Bin 149 -> 0 bytes testing/UnitTests/Resources/XML.plist | 22 - testing/UnitTests/RetainRelease.h | 29 - testing/UnitTests/RetainRelease.m | 65 - testing/UnitTests/Runloop.h | 30 - testing/UnitTests/Runloop.m | 163 - .../SenTestingKit.xcodeproj/project.pbxproj | 1280 - .../otest.xcodeproj/project.pbxproj | 227 - testing/UnitTests/SizeAndAlignment.h | 26 - testing/UnitTests/SizeAndAlignment.m | 66 - .../TestingHarness.xcodeproj/project.pbxproj | 123 - testing/UnitTests/URLTest.h | 17 - testing/UnitTests/URLTest.m | 87 - .../UnitTests-i386-Darwin-Info.plist | 24 - .../UnitTests.xcodeproj/project.pbxproj | 975 - testing/UnitTests/UnitTests_Prefix.pch | 8 - .../UnitTests/local_server_config_example.sh | 10 - testing/UnitTests/main.m | 31 - xcconfig/darwin-i386-Foundation.xcconfig | 5 - xcconfig/darwin-i386-framework.xcconfig | 2 - xcconfig/darwin-i386.xcconfig | 8 - xcconfig/darwin-ppc-framework.xcconfig | 2 - xcconfig/darwin-ppc.xcconfig | 8 - xcconfig/darwin-x86_64-Foundation.xcconfig | 5 - xcconfig/darwin-x86_64-framework.xcconfig | 3 - xcconfig/darwin-x86_64.xcconfig | 8 - xcconfig/darwin.xcconfig | 2 - xcconfig/freebsd-i386-Foundation.xcconfig | 7 - xcconfig/freebsd-i386-framework.xcconfig | 6 - xcconfig/freebsd-i386.xcconfig | 9 - xcconfig/freebsd.xcconfig | 1 - xcconfig/linux-arm-Foundation.xcconfig | 0 xcconfig/linux-arm-framework.xcconfig | 5 - xcconfig/linux-arm.xcconfig | 8 - xcconfig/linux-i386-Foundation.xcconfig | 8 - xcconfig/linux-i386-framework.xcconfig | 6 - xcconfig/linux-i386.xcconfig | 10 - xcconfig/linux-ppc-framework.xcconfig | 5 - xcconfig/linux-ppc.xcconfig | 9 - xcconfig/linux.xcconfig | 1 - xcconfig/platform-framework.xcconfig | 3 - xcconfig/platform.xcconfig | 25 - xcconfig/solaris-sparc-Foundation.xcconfig | 8 - xcconfig/solaris-sparc-framework.xcconfig | 6 - xcconfig/solaris-sparc.xcconfig | 9 - xcconfig/solaris.xcconfig | 2 - xcconfig/windows-i386-AppKit.xcconfig | 11 - xcconfig/windows-i386-Foundation.xcconfig | 6 - xcconfig/windows-i386-bundle.xcconfig | 7 - xcconfig/windows-i386-clang.xcconfig | 20 - xcconfig/windows-i386-framework.xcconfig | 9 - xcconfig/windows-i386.xcconfig | 22 - xcconfig/windows.xcconfig | 3 - 1254 files changed, 122 insertions(+), 276069 deletions(-) delete mode 100644 .hgignore delete mode 100644 AppKit/AppKit.xcodeproj/project.pbxproj delete mode 100644 AppKit/AppKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 AppKit/AppKit.xcodeproj/project.xcworkspace/xcshareddata/AppKit.xccheckout delete mode 100644 AppKit/AppKit.xcodeproj/xcshareddata/xcschemes/AppKit-Windows-i386.xcscheme delete mode 120000 AppKit/O2Context_builtin_FT.h delete mode 100644 CFNetwork/CFHost.h delete mode 100644 CFNetwork/CFHost.m delete mode 100644 CFNetwork/CFNetServices.h delete mode 100644 CFNetwork/CFNetServices.m delete mode 100644 CFNetwork/CFNetwork.h delete mode 100644 CFNetwork/CFNetwork.xcodeproj/project.pbxproj delete mode 100644 CFNetwork/CFNetworkExport.h delete mode 100644 CFNetwork/CFSocketStream.h delete mode 100644 CFNetwork/CFSocketStream.m delete mode 100644 CFNetwork/English.lproj/InfoPlist.strings delete mode 100644 CFNetwork/Info.plist delete mode 100644 CFSSLHandler_openssl/CFSSLHandler_openssl.h delete mode 100644 CFSSLHandler_openssl/CFSSLHandler_openssl.m delete mode 100644 CFSSLHandler_openssl/CFSSLHandler_openssl.xcodeproj/project.pbxproj delete mode 100644 CFSSLHandler_openssl/English.lproj/InfoPlist.strings delete mode 100644 CFSSLHandler_openssl/Info.plist create mode 100644 CMakeLists.txt delete mode 100644 Cocoa/Cocoa.xcodeproj/project.pbxproj delete mode 100644 Cocotron/Cocotron.xcodeproj/project.pbxproj delete mode 100644 CommonCrypto/CommonCrypto.xcodeproj/project.pbxproj delete mode 100644 CommonCrypto/CommonCryptoExport.h delete mode 100644 CommonCrypto/CommonCryptor.h delete mode 100644 CommonCrypto/CommonCryptor.m delete mode 100644 CommonCrypto/CommonDigest.h delete mode 100644 CommonCrypto/CommonDigest.m delete mode 100644 CommonCrypto/CommonHMAC.h delete mode 100644 CommonCrypto/CommonHMAC.m delete mode 100644 CommonCrypto/English.lproj/InfoPlist.strings delete mode 100644 CommonCrypto/Info.plist delete mode 100644 CommonCrypto/dllmain.m delete mode 100644 CoreData/CoreData.xcodeproj/project.pbxproj delete mode 100644 CoreGraphics/CoreGraphics.xcodeproj/project.pbxproj delete mode 100644 CoreServices/CoreServices.h delete mode 100644 CoreServices/CoreServices.xcodeproj/project.pbxproj delete mode 100644 CoreServices/English.lproj/InfoPlist.strings delete mode 100644 CoreServices/Info.plist delete mode 100644 CoreText/CoreText.xcodeproj/project.pbxproj delete mode 100644 Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj delete mode 100644 Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Mac.xcscheme delete mode 100644 Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Windows.xcscheme delete mode 100644 Examples/CGShadingCreate/English.lproj/MainMenu.nib/info.nib delete mode 100644 Examples/CGShadingCreate/English.lproj/MainMenu.nib/keyedobjects.nib delete mode 100644 Examples/CGShadingCreate/Info.plist delete mode 100644 Examples/Examples.xcworkspace/contents.xcworkspacedata delete mode 100644 Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj delete mode 100644 Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Mac.xcscheme delete mode 100644 Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Windows.xcscheme delete mode 100644 Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj delete mode 100644 Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Mac.xcscheme delete mode 100644 Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Windows.xcscheme delete mode 100644 Examples/TextEditor/main.m delete mode 100755 Foundation/English.lproj/NSUserDefaults.plist delete mode 100644 Foundation/Foundation.h delete mode 100644 Foundation/Foundation.xcodeproj/project.pbxproj delete mode 100644 Foundation/Foundation.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-i386.xcscheme delete mode 100644 Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-x86_64.xcscheme delete mode 100644 Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-FreeBSD-i386.xcscheme delete mode 100644 Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Linux-i386.xcscheme delete mode 100644 Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Windows-i386.xcscheme delete mode 100644 Foundation/FoundationErrors.h delete mode 100644 Foundation/Info.plist delete mode 100644 Foundation/NSAffineTransform.h delete mode 100644 Foundation/NSAffineTransform.m delete mode 100644 Foundation/NSArchiver.h delete mode 100644 Foundation/NSArchiver.m delete mode 100644 Foundation/NSArray/NSArray.h delete mode 100644 Foundation/NSArray/NSArray.m delete mode 100644 Foundation/NSArray/NSArray_concrete.h delete mode 100644 Foundation/NSArray/NSArray_concrete.m delete mode 100644 Foundation/NSArray/NSArray_placeholder.h delete mode 100644 Foundation/NSArray/NSArray_placeholder.m delete mode 100644 Foundation/NSArray/NSEnumerator_array.h delete mode 100644 Foundation/NSArray/NSEnumerator_array.m delete mode 100644 Foundation/NSArray/NSEnumerator_arrayReverse.h delete mode 100644 Foundation/NSArray/NSEnumerator_arrayReverse.m delete mode 100644 Foundation/NSArray/NSMutableArray.h delete mode 100644 Foundation/NSArray/NSMutableArray.m delete mode 100644 Foundation/NSArray/NSMutableArray_concrete.h delete mode 100644 Foundation/NSArray/NSMutableArray_concrete.m delete mode 100644 Foundation/NSAssertionHandler.h delete mode 100644 Foundation/NSAssertionHandler.m delete mode 100644 Foundation/NSAtomicCompareAndSwap.h delete mode 100644 Foundation/NSAttributedString/NSAttributedString.h delete mode 100644 Foundation/NSAttributedString/NSAttributedString.m delete mode 100644 Foundation/NSAttributedString/NSAttributedString_manyAttributes.h delete mode 100644 Foundation/NSAttributedString/NSAttributedString_manyAttributes.m delete mode 100644 Foundation/NSAttributedString/NSAttributedString_nilAttributes.h delete mode 100644 Foundation/NSAttributedString/NSAttributedString_nilAttributes.m delete mode 100644 Foundation/NSAttributedString/NSAttributedString_oneAttribute.h delete mode 100644 Foundation/NSAttributedString/NSAttributedString_oneAttribute.m delete mode 100644 Foundation/NSAttributedString/NSAttributedString_placeholder.h delete mode 100644 Foundation/NSAttributedString/NSAttributedString_placeholder.m delete mode 100644 Foundation/NSAttributedString/NSMutableAttributedString.h delete mode 100644 Foundation/NSAttributedString/NSMutableAttributedString.m delete mode 100644 Foundation/NSAttributedString/NSMutableAttributedString_concrete.h delete mode 100644 Foundation/NSAttributedString/NSMutableAttributedString_concrete.m delete mode 100644 Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.h delete mode 100644 Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.m delete mode 100644 Foundation/NSAttributedString/NSRangeEntries.h delete mode 100644 Foundation/NSAttributedString/NSRangeEntries.m delete mode 100755 Foundation/NSAutoreleasePool/NSAutoreleasePool-private.h delete mode 100644 Foundation/NSAutoreleasePool/NSAutoreleasePool.h delete mode 100644 Foundation/NSAutoreleasePool/NSAutoreleasePool.m delete mode 100644 Foundation/NSBlocks.m delete mode 100644 Foundation/NSBundle.h delete mode 100644 Foundation/NSBundle.m delete mode 100644 Foundation/NSByteOrder.h delete mode 100644 Foundation/NSByteOrder.m delete mode 100644 Foundation/NSCFTypeID.h delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet.h delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet.m delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_bitmap.h delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_bitmap.m delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_range.h delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_range.m delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.h delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.m delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_string.h delete mode 100644 Foundation/NSCharacterSet/NSCharacterSet_string.m delete mode 100644 Foundation/NSCharacterSet/NSMutableCharacterSet.h delete mode 100644 Foundation/NSCharacterSet/NSMutableCharacterSet.m delete mode 100644 Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.h delete mode 100644 Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.m delete mode 100644 Foundation/NSCharacterSet/alphanumericCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/bitmapRepresentation.h delete mode 100644 Foundation/NSCharacterSet/controlCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/decimalDigitCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/illegalCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/letterCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/lowercaseLetterCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/punctuationCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/uppercaseLetterCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/whitespaceAndNewlineCharacterSet.bitmap delete mode 100644 Foundation/NSCharacterSet/whitespaceCharacterSet.bitmap delete mode 100644 Foundation/NSClassDescription.h delete mode 100644 Foundation/NSClassDescription.m delete mode 100644 Foundation/NSCoder.h delete mode 100644 Foundation/NSCoder.m delete mode 100644 Foundation/NSConcreteDirectoryEnumerator.h delete mode 100644 Foundation/NSConcreteDirectoryEnumerator.m delete mode 100644 Foundation/NSConnection/NSConnection.h delete mode 100644 Foundation/NSConnection/NSConnection.m delete mode 100644 Foundation/NSConnection/NSDistantObject.h delete mode 100644 Foundation/NSConnection/NSDistantObject.m delete mode 100644 Foundation/NSConnection/NSMessagePort.h delete mode 100644 Foundation/NSConnection/NSMessagePort.m delete mode 100644 Foundation/NSConnection/NSPort.h delete mode 100644 Foundation/NSConnection/NSPort.m delete mode 100644 Foundation/NSConnection/NSPortCoder.h delete mode 100644 Foundation/NSConnection/NSPortCoder.m delete mode 100644 Foundation/NSConnection/NSPortMessage.h delete mode 100644 Foundation/NSConnection/NSPortMessage.m delete mode 100644 Foundation/NSConnection/NSProtocolChecker.h delete mode 100644 Foundation/NSConnection/NSProtocolChecker.m delete mode 100644 Foundation/NSConnection/NSSocketPort.h delete mode 100644 Foundation/NSConnection/NSSocketPort.m delete mode 100644 Foundation/NSData/NSData.h delete mode 100644 Foundation/NSData/NSData.m delete mode 100644 Foundation/NSData/NSData_concrete.h delete mode 100644 Foundation/NSData/NSData_concrete.m delete mode 100644 Foundation/NSData/NSData_mapped.h delete mode 100644 Foundation/NSData/NSData_mapped.m delete mode 100644 Foundation/NSData/NSMutableData.h delete mode 100644 Foundation/NSData/NSMutableData.m delete mode 100644 Foundation/NSData/NSMutableData_concrete.h delete mode 100644 Foundation/NSData/NSMutableData_concrete.m delete mode 100644 Foundation/NSDate/NSCalendar.h delete mode 100644 Foundation/NSDate/NSCalendar.m delete mode 100644 Foundation/NSDate/NSCalendarDate.h delete mode 100644 Foundation/NSDate/NSCalendarDate.m delete mode 100644 Foundation/NSDate/NSDate.h delete mode 100644 Foundation/NSDate/NSDate.m delete mode 100644 Foundation/NSDate/NSDateComponents.h delete mode 100644 Foundation/NSDate/NSDateComponents.m delete mode 100644 Foundation/NSDate/NSDateFormatter.h delete mode 100644 Foundation/NSDate/NSDateFormatter.m delete mode 100644 Foundation/NSDate/NSDate_timeInterval.h delete mode 100644 Foundation/NSDate/NSDate_timeInterval.m delete mode 100644 Foundation/NSDebug.h delete mode 100644 Foundation/NSDebug.m delete mode 100644 Foundation/NSDecimal/NSDecimal.h delete mode 100644 Foundation/NSDecimal/NSDecimal.m delete mode 100644 Foundation/NSDecimal/NSDecimalNumber.h delete mode 100644 Foundation/NSDecimal/NSDecimalNumber.m delete mode 100644 Foundation/NSDecimal/NSDecimalNumberPlaceholder.h delete mode 100644 Foundation/NSDecimal/NSDecimalNumberPlaceholder.m delete mode 100644 Foundation/NSDictionary/NSDictionary.h delete mode 100644 Foundation/NSDictionary/NSDictionary.m delete mode 100644 Foundation/NSDictionary/NSDictionary_mapTable.h delete mode 100644 Foundation/NSDictionary/NSDictionary_mapTable.m delete mode 100644 Foundation/NSDictionary/NSEnumerator_dictionaryKeys.h delete mode 100644 Foundation/NSDictionary/NSEnumerator_dictionaryKeys.m delete mode 100644 Foundation/NSDictionary/NSEnumerator_dictionaryObjects.h delete mode 100644 Foundation/NSDictionary/NSEnumerator_dictionaryObjects.m delete mode 100644 Foundation/NSDictionary/NSMutableDictionary.h delete mode 100644 Foundation/NSDictionary/NSMutableDictionary.m delete mode 100644 Foundation/NSDictionary/NSMutableDictionary_mapTable.h delete mode 100644 Foundation/NSDictionary/NSMutableDictionary_mapTable.m delete mode 100644 Foundation/NSDirectoryEnumerator.h delete mode 100644 Foundation/NSDirectoryEnumerator.m delete mode 100644 Foundation/NSDistributedLock.h delete mode 100644 Foundation/NSDistributedLock.m delete mode 100644 Foundation/NSDistributedNotificationCenter.h delete mode 100644 Foundation/NSDistributedNotificationCenter.m delete mode 100644 Foundation/NSEnumerator.h delete mode 100644 Foundation/NSEnumerator.m delete mode 100644 Foundation/NSError.h delete mode 100644 Foundation/NSError.m delete mode 100644 Foundation/NSException/NSException.h delete mode 100644 Foundation/NSException/NSException.m delete mode 100644 Foundation/NSException/NSRaise.h delete mode 100644 Foundation/NSException/NSRaise.m delete mode 100644 Foundation/NSException/NSRaiseException.h delete mode 100644 Foundation/NSException/debugHelpers.h delete mode 100644 Foundation/NSException/debugHelpers.m delete mode 100644 Foundation/NSFileManager.h delete mode 100644 Foundation/NSFileManager.m delete mode 100644 Foundation/NSFormatter.h delete mode 100644 Foundation/NSFormatter.m delete mode 100644 Foundation/NSGarbageCollector.h delete mode 100644 Foundation/NSGarbageCollector.m delete mode 100644 Foundation/NSGeometry.h delete mode 100644 Foundation/NSGeometry.m delete mode 100644 Foundation/NSHTTPCookie/NSHTTPCookie.h delete mode 100644 Foundation/NSHTTPCookie/NSHTTPCookie.m delete mode 100644 Foundation/NSHTTPCookie/NSHTTPCookieStorage.h delete mode 100644 Foundation/NSHTTPCookie/NSHTTPCookieStorage.m delete mode 100644 Foundation/NSHashTable.h delete mode 100644 Foundation/NSHashTable.m delete mode 100644 Foundation/NSHost.h delete mode 100644 Foundation/NSHost.m delete mode 100644 Foundation/NSIndexPath.h delete mode 100644 Foundation/NSIndexPath.m delete mode 100644 Foundation/NSIndexSet/NSIndexSet.h delete mode 100644 Foundation/NSIndexSet/NSIndexSet.m delete mode 100644 Foundation/NSIndexSet/NSMutableIndexSet.h delete mode 100644 Foundation/NSIndexSet/NSMutableIndexSet.m delete mode 100644 Foundation/NSInvocation.h delete mode 100644 Foundation/NSInvocation.m delete mode 100644 Foundation/NSKeyValueCoding/NSArray+KVC.m delete mode 100644 Foundation/NSKeyValueCoding/NSDictionary+KVC.m delete mode 100644 Foundation/NSKeyValueCoding/NSKVCMutableArray.h delete mode 100644 Foundation/NSKeyValueCoding/NSKVCMutableArray.m delete mode 100644 Foundation/NSKeyValueCoding/NSKVOInfoPerObject.h delete mode 100644 Foundation/NSKeyValueCoding/NSKVOInfoPerObject.m delete mode 100644 Foundation/NSKeyValueCoding/NSKeyObserver.h delete mode 100644 Foundation/NSKeyValueCoding/NSKeyObserver.m delete mode 100644 Foundation/NSKeyValueCoding/NSKeyPathObserver.h delete mode 100644 Foundation/NSKeyValueCoding/NSKeyPathObserver.m delete mode 100644 Foundation/NSKeyValueCoding/NSKeyValueCoding.h delete mode 100644 Foundation/NSKeyValueCoding/NSKeyValueCoding.m delete mode 100644 Foundation/NSKeyValueCoding/NSKeyValueObserving-Private.h delete mode 100644 Foundation/NSKeyValueCoding/NSKeyValueObserving.h delete mode 100644 Foundation/NSKeyValueCoding/NSKeyValueObserving.m delete mode 100644 Foundation/NSKeyValueCoding/NSString+KVCAdditions.h delete mode 100644 Foundation/NSKeyValueCoding/NSString+KVCAdditions.m delete mode 100644 Foundation/NSKeyedArchiving/NSKeyedArchiver.h delete mode 100644 Foundation/NSKeyedArchiving/NSKeyedArchiver.m delete mode 100644 Foundation/NSKeyedArchiving/NSKeyedUnarchiver.h delete mode 100644 Foundation/NSKeyedArchiving/NSKeyedUnarchiver.m delete mode 100644 Foundation/NSLocale.h delete mode 100644 Foundation/NSLocale.m delete mode 100644 Foundation/NSLock/NSCondition.m delete mode 100644 Foundation/NSLock/NSConditionLock.h delete mode 100644 Foundation/NSLock/NSConditionLock.m delete mode 100644 Foundation/NSLock/NSLock.h delete mode 100644 Foundation/NSLock/NSLock.m delete mode 100644 Foundation/NSLock/NSRecursiveLock.h delete mode 100644 Foundation/NSLock/NSRecursiveLock.m delete mode 100644 Foundation/NSLock/NSSynchronization.h delete mode 100644 Foundation/NSLock/NSSynchronization.m delete mode 100644 Foundation/NSMapTable.h delete mode 100644 Foundation/NSMapTable.m delete mode 100644 Foundation/NSMetadata/NSMetadataItem.h delete mode 100644 Foundation/NSMetadata/NSMetadataItem.m delete mode 100644 Foundation/NSMetadata/NSMetadataQuery.h delete mode 100644 Foundation/NSMetadata/NSMetadataQuery.m delete mode 100644 Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.h delete mode 100644 Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.m delete mode 100644 Foundation/NSMetadata/NSMetadataQueryResultGroup.h delete mode 100644 Foundation/NSMetadata/NSMetadataQueryResultGroup.m delete mode 100644 Foundation/NSMethodSignature.h delete mode 100644 Foundation/NSMethodSignature.m delete mode 100644 Foundation/NSNetService/NSNetServices.h delete mode 100644 Foundation/NSNetService/NSNetServices.m delete mode 100644 Foundation/NSNetService/bonjour.h delete mode 100644 Foundation/NSNetService/bonjour.m delete mode 100644 Foundation/NSNotification/NSNotification.h delete mode 100644 Foundation/NSNotification/NSNotification.m delete mode 100644 Foundation/NSNotification/NSNotification_concrete.h delete mode 100644 Foundation/NSNotification/NSNotification_concrete.m delete mode 100644 Foundation/NSNotificationCenter/NSNotificationCenter.h delete mode 100644 Foundation/NSNotificationCenter/NSNotificationCenter.m delete mode 100644 Foundation/NSNotificationCenter/NSNotificationObserver.h delete mode 100644 Foundation/NSNotificationCenter/NSNotificationObserver.m delete mode 100644 Foundation/NSNotificationCenter/NSObjectToObservers.h delete mode 100644 Foundation/NSNotificationCenter/NSObjectToObservers.m delete mode 100644 Foundation/NSNotificationQueue/NSNotificationAndModes.h delete mode 100644 Foundation/NSNotificationQueue/NSNotificationAndModes.m delete mode 100644 Foundation/NSNotificationQueue/NSNotificationQueue-Private.h delete mode 100644 Foundation/NSNotificationQueue/NSNotificationQueue.h delete mode 100644 Foundation/NSNotificationQueue/NSNotificationQueue.m delete mode 100644 Foundation/NSNull.h delete mode 100644 Foundation/NSNull.m delete mode 100644 Foundation/NSNumber/NSConstObject.h delete mode 100644 Foundation/NSNumber/NSNumber.h delete mode 100644 Foundation/NSNumber/NSNumber.m delete mode 100644 Foundation/NSNumber/NSNumber_BOOL.h delete mode 100644 Foundation/NSNumber/NSNumber_BOOL.m delete mode 100644 Foundation/NSNumber/NSNumber_BOOL_const.h delete mode 100644 Foundation/NSNumber/NSNumber_BOOL_const.m delete mode 100644 Foundation/NSNumber/NSNumber_BOOL_const_impl.h delete mode 100644 Foundation/NSNumber/NSNumber_CF.h delete mode 100644 Foundation/NSNumber/NSNumber_CF.m delete mode 100644 Foundation/NSNumber/NSNumber_char.h delete mode 100644 Foundation/NSNumber/NSNumber_char.m delete mode 100644 Foundation/NSNumber/NSNumber_double.h delete mode 100644 Foundation/NSNumber/NSNumber_double.m delete mode 100644 Foundation/NSNumber/NSNumber_double_const.h delete mode 100644 Foundation/NSNumber/NSNumber_float.h delete mode 100644 Foundation/NSNumber/NSNumber_float.m delete mode 100644 Foundation/NSNumber/NSNumber_int.h delete mode 100644 Foundation/NSNumber/NSNumber_int.m delete mode 100644 Foundation/NSNumber/NSNumber_long.h delete mode 100644 Foundation/NSNumber/NSNumber_long.m delete mode 100644 Foundation/NSNumber/NSNumber_longLong.h delete mode 100644 Foundation/NSNumber/NSNumber_longLong.m delete mode 100644 Foundation/NSNumber/NSNumber_placeholder.h delete mode 100644 Foundation/NSNumber/NSNumber_placeholder.m delete mode 100644 Foundation/NSNumber/NSNumber_short.h delete mode 100644 Foundation/NSNumber/NSNumber_short.m delete mode 100644 Foundation/NSNumber/NSNumber_unsignedChar.h delete mode 100644 Foundation/NSNumber/NSNumber_unsignedChar.m delete mode 100644 Foundation/NSNumber/NSNumber_unsignedInt.h delete mode 100644 Foundation/NSNumber/NSNumber_unsignedInt.m delete mode 100644 Foundation/NSNumber/NSNumber_unsignedLong.h delete mode 100644 Foundation/NSNumber/NSNumber_unsignedLong.m delete mode 100644 Foundation/NSNumber/NSNumber_unsignedLongLong.h delete mode 100644 Foundation/NSNumber/NSNumber_unsignedLongLong.m delete mode 100644 Foundation/NSNumber/NSNumber_unsignedShort.h delete mode 100644 Foundation/NSNumber/NSNumber_unsignedShort.m delete mode 100644 Foundation/NSNumberFormatter.h delete mode 100644 Foundation/NSNumberFormatter.m delete mode 100644 Foundation/NSObjCRuntime.h delete mode 100644 Foundation/NSObjCRuntime.m delete mode 100644 Foundation/NSObject/NSObject.h delete mode 100644 Foundation/NSObject/NSObject.m delete mode 100644 Foundation/NSObject/NSZombieObject.h delete mode 100644 Foundation/NSObject/NSZombieObject.m delete mode 100644 Foundation/NSObject/forwarding.h delete mode 100644 Foundation/NSObject/forwarding.m delete mode 100644 Foundation/NSObject/objc_forward_ffi.h delete mode 100644 Foundation/NSObject/objc_forward_ffi.m delete mode 100644 Foundation/NSObject/objc_msg_sendv-Disabled.m delete mode 100644 Foundation/NSObject/objc_size_alignment.h delete mode 100644 Foundation/NSObject/objc_size_alignment.m delete mode 100755 Foundation/NSObject/platform_linux/msgSendv-linux.s delete mode 100644 Foundation/NSObject/platform_linux/msgSendv-linux_x86_64.s delete mode 100644 Foundation/NSObject/platform_linux/msgSendv-x64.m delete mode 100644 Foundation/NSObject/platform_linux/msgSendv-x64.s delete mode 100644 Foundation/NSObject/platform_solaris/msgSendv-solaris.m delete mode 100755 Foundation/NSObject/platform_windows/msgSendv-windows.s delete mode 100644 Foundation/NSOperation/NSAtomicList.h delete mode 100644 Foundation/NSOperation/NSAtomicList.m delete mode 100644 Foundation/NSOperation/NSOperation.h delete mode 100644 Foundation/NSOperation/NSOperation.m delete mode 100644 Foundation/NSOperation/NSOperationQueue.h delete mode 100644 Foundation/NSOperation/NSOperationQueue.m delete mode 100644 Foundation/NSOrthography.h delete mode 100644 Foundation/NSOrthography.m delete mode 100644 Foundation/NSPipe.h delete mode 100644 Foundation/NSPipe.m delete mode 100644 Foundation/NSPlatform.h delete mode 100644 Foundation/NSPlatform.m delete mode 100644 Foundation/NSPointerArray.h delete mode 100644 Foundation/NSPointerArray.m delete mode 100644 Foundation/NSPointerFunctions.h delete mode 100644 Foundation/NSPointerFunctions.m delete mode 100644 Foundation/NSPortNameServer/NSMessagePortNameServer.h delete mode 100644 Foundation/NSPortNameServer/NSMessagePortNameServer.m delete mode 100644 Foundation/NSPortNameServer/NSPortNameServer.h delete mode 100644 Foundation/NSPortNameServer/NSPortNameServer.m delete mode 100644 Foundation/NSPortNameServer/NSSocketPortNameServer.h delete mode 100644 Foundation/NSPortNameServer/NSSocketPortNameServer.m delete mode 100644 Foundation/NSPredicate/NSComparisonPredicate.h delete mode 100644 Foundation/NSPredicate/NSComparisonPredicate.m delete mode 100644 Foundation/NSPredicate/NSCompoundPredicate.h delete mode 100644 Foundation/NSPredicate/NSCompoundPredicate.m delete mode 100644 Foundation/NSPredicate/NSExpression.h delete mode 100644 Foundation/NSPredicate/NSExpression.m delete mode 100644 Foundation/NSPredicate/NSExpression_array.h delete mode 100644 Foundation/NSPredicate/NSExpression_array.m delete mode 100644 Foundation/NSPredicate/NSExpression_assignment.h delete mode 100644 Foundation/NSPredicate/NSExpression_assignment.m delete mode 100644 Foundation/NSPredicate/NSExpression_constant.h delete mode 100644 Foundation/NSPredicate/NSExpression_constant.m delete mode 100644 Foundation/NSPredicate/NSExpression_function.h delete mode 100644 Foundation/NSPredicate/NSExpression_function.m delete mode 100644 Foundation/NSPredicate/NSExpression_keypath.h delete mode 100644 Foundation/NSPredicate/NSExpression_keypath.m delete mode 100644 Foundation/NSPredicate/NSExpression_operator.h delete mode 100644 Foundation/NSPredicate/NSExpression_operator.m delete mode 100644 Foundation/NSPredicate/NSExpression_self.h delete mode 100644 Foundation/NSPredicate/NSExpression_self.m delete mode 100644 Foundation/NSPredicate/NSExpression_variable.h delete mode 100644 Foundation/NSPredicate/NSExpression_variable.m delete mode 100644 Foundation/NSPredicate/NSPredicate.h delete mode 100644 Foundation/NSPredicate/NSPredicate.m delete mode 100644 Foundation/NSPredicate/NSPredicate_BOOL.h delete mode 100644 Foundation/NSPredicate/NSPredicate_BOOL.m delete mode 100644 Foundation/NSProcessInfo.h delete mode 100644 Foundation/NSProcessInfo.m delete mode 100644 Foundation/NSPropertyList/CFUID.h delete mode 100644 Foundation/NSPropertyList/CFUID.m delete mode 100644 Foundation/NSPropertyList/NSOldXMLAttribute.h delete mode 100644 Foundation/NSPropertyList/NSOldXMLAttribute.m delete mode 100644 Foundation/NSPropertyList/NSOldXMLDocument.h delete mode 100644 Foundation/NSPropertyList/NSOldXMLDocument.m delete mode 100644 Foundation/NSPropertyList/NSOldXMLElement.h delete mode 100644 Foundation/NSPropertyList/NSOldXMLElement.m delete mode 100644 Foundation/NSPropertyList/NSOldXMLReader.h delete mode 100644 Foundation/NSPropertyList/NSOldXMLReader.m delete mode 100644 Foundation/NSPropertyList/NSPropertyList.h delete mode 100644 Foundation/NSPropertyList/NSPropertyList.m delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader.h delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader.m delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader_binary1.h delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader_binary1.m delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader_vintage.h delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader_vintage.m delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader_xml1.h delete mode 100644 Foundation/NSPropertyList/NSPropertyListReader_xml1.m delete mode 100644 Foundation/NSPropertyList/NSPropertyListWriter_vintage.h delete mode 100644 Foundation/NSPropertyList/NSPropertyListWriter_vintage.m delete mode 100644 Foundation/NSPropertyList/NSPropertyListWriter_xml1.h delete mode 100644 Foundation/NSPropertyList/NSPropertyListWriter_xml1.m delete mode 100644 Foundation/NSProxy.h delete mode 100644 Foundation/NSProxy.m delete mode 100644 Foundation/NSRange.h delete mode 100644 Foundation/NSRange.m delete mode 100644 Foundation/NSRunLoop/NSDelayedPerform.h delete mode 100644 Foundation/NSRunLoop/NSDelayedPerform.m delete mode 100644 Foundation/NSRunLoop/NSInputSource.h delete mode 100644 Foundation/NSRunLoop/NSInputSource.m delete mode 100644 Foundation/NSRunLoop/NSInputSourceSet.h delete mode 100644 Foundation/NSRunLoop/NSInputSourceSet.m delete mode 100644 Foundation/NSRunLoop/NSOrderedPerform.h delete mode 100644 Foundation/NSRunLoop/NSOrderedPerform.m delete mode 100644 Foundation/NSRunLoop/NSRunLoop-InputSource.h delete mode 100644 Foundation/NSRunLoop/NSRunLoop.h delete mode 100644 Foundation/NSRunLoop/NSRunLoop.m delete mode 100644 Foundation/NSRunLoop/NSRunLoopState.h delete mode 100644 Foundation/NSRunLoop/NSRunLoopState.m delete mode 100644 Foundation/NSScanner/NSScanner.h delete mode 100644 Foundation/NSScanner/NSScanner.m delete mode 100644 Foundation/NSScanner/NSScanner_concrete.h delete mode 100644 Foundation/NSScanner/NSScanner_concrete.m delete mode 100644 Foundation/NSScript/NSScriptWhoseTests.h delete mode 100644 Foundation/NSScript/NSScriptWhoseTests.m delete mode 100644 Foundation/NSSet/NSCountedSet.h delete mode 100644 Foundation/NSSet/NSCountedSet.m delete mode 100644 Foundation/NSSet/NSEnumerator_set.h delete mode 100644 Foundation/NSSet/NSEnumerator_set.m delete mode 100644 Foundation/NSSet/NSInlineSetTable.h delete mode 100644 Foundation/NSSet/NSInlineSetTable.m delete mode 100644 Foundation/NSSet/NSMutableSet.h delete mode 100644 Foundation/NSSet/NSMutableSet.m delete mode 100644 Foundation/NSSet/NSMutableSet_concrete.h delete mode 100644 Foundation/NSSet/NSMutableSet_concrete.m delete mode 100644 Foundation/NSSet/NSSet.h delete mode 100644 Foundation/NSSet/NSSet.m delete mode 100644 Foundation/NSSet/NSSet_concrete.h delete mode 100644 Foundation/NSSet/NSSet_concrete.m delete mode 100644 Foundation/NSSet/NSSet_placeholder.h delete mode 100644 Foundation/NSSet/NSSet_placeholder.m delete mode 100644 Foundation/NSSortDescriptor.h delete mode 100644 Foundation/NSSortDescriptor.m delete mode 100644 Foundation/NSSpellEngine.h delete mode 100644 Foundation/NSSpellEngine.m delete mode 100644 Foundation/NSSpellServer.h delete mode 100644 Foundation/NSSpellServer.m delete mode 100644 Foundation/NSStream/CFSSLHandler.h delete mode 100644 Foundation/NSStream/CFSSLHandler.m delete mode 100644 Foundation/NSStream/NSFileHandle.h delete mode 100644 Foundation/NSStream/NSFileHandle.m delete mode 100644 Foundation/NSStream/NSFileHandle_stream.h delete mode 100644 Foundation/NSStream/NSFileHandle_stream.m delete mode 100644 Foundation/NSStream/NSInputStream.h delete mode 100644 Foundation/NSStream/NSInputStream.m delete mode 100644 Foundation/NSStream/NSInputStream_data.h delete mode 100644 Foundation/NSStream/NSInputStream_data.m delete mode 100644 Foundation/NSStream/NSInputStream_file.h delete mode 100644 Foundation/NSStream/NSInputStream_file.m delete mode 100644 Foundation/NSStream/NSInputStream_socket.h delete mode 100644 Foundation/NSStream/NSInputStream_socket.m delete mode 100644 Foundation/NSStream/NSOutputStream.h delete mode 100644 Foundation/NSStream/NSOutputStream.m delete mode 100644 Foundation/NSStream/NSOutputStream_buffer.h delete mode 100644 Foundation/NSStream/NSOutputStream_buffer.m delete mode 100644 Foundation/NSStream/NSOutputStream_data.h delete mode 100644 Foundation/NSStream/NSOutputStream_data.m delete mode 100644 Foundation/NSStream/NSOutputStream_file.h delete mode 100644 Foundation/NSStream/NSOutputStream_file.m delete mode 100644 Foundation/NSStream/NSOutputStream_socket.h delete mode 100644 Foundation/NSStream/NSOutputStream_socket.m delete mode 100644 Foundation/NSStream/NSSelectInputSource.h delete mode 100644 Foundation/NSStream/NSSelectInputSource.m delete mode 100644 Foundation/NSStream/NSSelectInputSourceSet.h delete mode 100644 Foundation/NSStream/NSSelectInputSourceSet.m delete mode 100644 Foundation/NSStream/NSSelectSet.h delete mode 100644 Foundation/NSStream/NSSelectSet.m delete mode 100644 Foundation/NSStream/NSSocket.h delete mode 100644 Foundation/NSStream/NSSocket.m delete mode 100644 Foundation/NSStream/NSStream.h delete mode 100644 Foundation/NSStream/NSStream.m delete mode 100644 Foundation/NSString/Encoding/8859-1.h delete mode 100644 Foundation/NSString/Encoding/8859-10.h delete mode 100644 Foundation/NSString/Encoding/8859-11.h delete mode 100644 Foundation/NSString/Encoding/8859-13.h delete mode 100644 Foundation/NSString/Encoding/8859-14.h delete mode 100644 Foundation/NSString/Encoding/8859-15.h delete mode 100644 Foundation/NSString/Encoding/8859-16.h delete mode 100644 Foundation/NSString/Encoding/8859-2.h delete mode 100644 Foundation/NSString/Encoding/8859-3.h delete mode 100644 Foundation/NSString/Encoding/8859-4.h delete mode 100644 Foundation/NSString/Encoding/8859-5.h delete mode 100644 Foundation/NSString/Encoding/8859-6.h delete mode 100644 Foundation/NSString/Encoding/8859-7.h delete mode 100644 Foundation/NSString/Encoding/8859-8.h delete mode 100644 Foundation/NSString/Encoding/8859-9.h delete mode 100644 Foundation/NSString/Encoding/CP1250.h delete mode 100644 Foundation/NSString/Encoding/CP1251.h delete mode 100644 Foundation/NSString/Encoding/CP1252.h delete mode 100644 Foundation/NSString/Encoding/CP1253.h delete mode 100644 Foundation/NSString/Encoding/CP1254.h delete mode 100644 Foundation/NSString/Encoding/CP1255.h delete mode 100644 Foundation/NSString/Encoding/CP1256.h delete mode 100644 Foundation/NSString/Encoding/CP1257.h delete mode 100644 Foundation/NSString/Encoding/CP1258.h delete mode 100644 Foundation/NSString/Encoding/CP874.h delete mode 100644 Foundation/NSString/Encoding/CP932.h delete mode 100644 Foundation/NSString/Encoding/CP936.h delete mode 100644 Foundation/NSString/Encoding/CP949.h delete mode 100644 Foundation/NSString/Encoding/CP950.h delete mode 100644 Foundation/NSString/English.lproj/NSStringEncodingNames.plist delete mode 100644 Foundation/NSString/NSConstantString-Impl.m delete mode 100644 Foundation/NSString/NSDarwinString.h delete mode 100644 Foundation/NSString/NSDarwinString.m delete mode 100644 Foundation/NSString/NSMutableString.h delete mode 100644 Foundation/NSString/NSMutableString.m delete mode 100644 Foundation/NSString/NSMutableString_unicodePtr.h delete mode 100644 Foundation/NSString/NSMutableString_unicodePtr.m delete mode 100644 Foundation/NSString/NSPathUtilities.h delete mode 100644 Foundation/NSString/NSPathUtilities.m delete mode 100644 Foundation/NSString/NSString.h delete mode 100644 Foundation/NSString/NSString.m delete mode 100644 Foundation/NSString/NSStringEncoder.h delete mode 100644 Foundation/NSString/NSStringEncoder.m delete mode 100644 Foundation/NSString/NSStringFileIO.h delete mode 100644 Foundation/NSString/NSStringFileIO.m delete mode 100644 Foundation/NSString/NSStringFormatter.h delete mode 100644 Foundation/NSString/NSStringFormatter.m delete mode 100644 Foundation/NSString/NSStringHashing.h delete mode 100644 Foundation/NSString/NSStringSymbol.h delete mode 100644 Foundation/NSString/NSStringSymbol.m delete mode 100644 Foundation/NSString/NSStringUTF8.h delete mode 100644 Foundation/NSString/NSStringUTF8.m delete mode 100644 Foundation/NSString/NSString_cString.h delete mode 100644 Foundation/NSString/NSString_cString.m delete mode 100644 Foundation/NSString/NSString_defaultEncoding.h delete mode 100644 Foundation/NSString/NSString_isoLatin1.h delete mode 100644 Foundation/NSString/NSString_isoLatin1.m delete mode 100644 Foundation/NSString/NSString_isoLatin2.h delete mode 100644 Foundation/NSString/NSString_isoLatin2.m delete mode 100644 Foundation/NSString/NSString_macOSRoman.h delete mode 100644 Foundation/NSString/NSString_macOSRoman.m delete mode 100644 Foundation/NSString/NSString_nextstep.h delete mode 100644 Foundation/NSString/NSString_nextstep.m delete mode 100644 Foundation/NSString/NSString_nextstepCString.h delete mode 100644 Foundation/NSString/NSString_nextstepCString.m delete mode 100644 Foundation/NSString/NSString_placeholder.h delete mode 100644 Foundation/NSString/NSString_placeholder.m delete mode 100644 Foundation/NSString/NSString_unicode.h delete mode 100644 Foundation/NSString/NSString_unicode.m delete mode 100644 Foundation/NSString/NSString_unicodePtr.h delete mode 100644 Foundation/NSString/NSString_unicodePtr.m delete mode 100644 Foundation/NSString/NSString_win1252.h delete mode 100644 Foundation/NSString/NSString_win1252.m delete mode 100644 Foundation/NSString/NSUnicodeCaseMapping.h delete mode 100644 Foundation/NSString/NSUnicodeCaseMapping.m delete mode 100644 Foundation/NSString/unibuffer.h delete mode 100644 Foundation/NSString/unibuffer.m delete mode 100644 Foundation/NSStringsFileFormat/NSStringsFileParser.h delete mode 100644 Foundation/NSStringsFileFormat/NSStringsFileParser.m delete mode 100644 Foundation/NSTask.h delete mode 100644 Foundation/NSTask.m delete mode 100644 Foundation/NSTextCheckingResult.h delete mode 100644 Foundation/NSTextCheckingResult.m delete mode 100644 Foundation/NSThread/NSThread-Private.h delete mode 100644 Foundation/NSThread/NSThread.h delete mode 100644 Foundation/NSThread/NSThread.m delete mode 100644 Foundation/NSTimeZone/NSTimeZone.h delete mode 100644 Foundation/NSTimeZone/NSTimeZone.m delete mode 100755 Foundation/NSTimeZone/NSTimeZoneAbbreviations.plist delete mode 100755 Foundation/NSTimeZone/NSTimeZoneRegions.plist delete mode 100644 Foundation/NSTimeZone/NSTimeZoneTransition.h delete mode 100644 Foundation/NSTimeZone/NSTimeZoneTransition.m delete mode 100644 Foundation/NSTimeZone/NSTimeZoneType.h delete mode 100644 Foundation/NSTimeZone/NSTimeZoneType.m delete mode 100644 Foundation/NSTimeZone/NSTimeZoneWindowsZones.plist delete mode 100644 Foundation/NSTimeZone/NSTimeZone_absolute.h delete mode 100644 Foundation/NSTimeZone/NSTimeZone_absolute.m delete mode 100644 Foundation/NSTimer/NSTimer.h delete mode 100644 Foundation/NSTimer/NSTimer.m delete mode 100644 Foundation/NSTimer/NSTimer_concrete.h delete mode 100644 Foundation/NSTimer/NSTimer_concrete.m delete mode 100644 Foundation/NSTimer/NSTimer_invocation.h delete mode 100644 Foundation/NSTimer/NSTimer_invocation.m delete mode 100644 Foundation/NSTimer/NSTimer_targetAction.h delete mode 100644 Foundation/NSTimer/NSTimer_targetAction.m delete mode 100644 Foundation/NSURL/NSCachedURLResponse.h delete mode 100644 Foundation/NSURL/NSCachedURLResponse.m delete mode 100644 Foundation/NSURL/NSHTTPURLResponse.h delete mode 100644 Foundation/NSURL/NSHTTPURLResponse.m delete mode 100644 Foundation/NSURL/NSMutableURLRequest.h delete mode 100644 Foundation/NSURL/NSMutableURLRequest.m delete mode 100644 Foundation/NSURL/NSURL.h delete mode 100644 Foundation/NSURL/NSURL.m delete mode 100644 Foundation/NSURL/NSURLAuthenticationChallenge.h delete mode 100644 Foundation/NSURL/NSURLAuthenticationChallenge.m delete mode 100644 Foundation/NSURL/NSURLCache.h delete mode 100644 Foundation/NSURL/NSURLCache.m delete mode 100644 Foundation/NSURL/NSURLConnection.h delete mode 100644 Foundation/NSURL/NSURLConnection.m delete mode 100644 Foundation/NSURL/NSURLConnectionState.h delete mode 100644 Foundation/NSURL/NSURLConnectionState.m delete mode 100644 Foundation/NSURL/NSURLCredential.h delete mode 100644 Foundation/NSURL/NSURLCredential.m delete mode 100644 Foundation/NSURL/NSURLCredentialStorage.h delete mode 100644 Foundation/NSURL/NSURLCredentialStorage.m delete mode 100644 Foundation/NSURL/NSURLDownload.h delete mode 100644 Foundation/NSURL/NSURLDownload.m delete mode 100644 Foundation/NSURL/NSURLError.h delete mode 100644 Foundation/NSURL/NSURLError.m delete mode 100644 Foundation/NSURL/NSURLHandle.h delete mode 100644 Foundation/NSURL/NSURLHandle.m delete mode 100644 Foundation/NSURL/NSURLProtectionSpace.h delete mode 100644 Foundation/NSURL/NSURLProtectionSpace.m delete mode 100644 Foundation/NSURL/NSURLProtocol.h delete mode 100644 Foundation/NSURL/NSURLProtocol.m delete mode 100644 Foundation/NSURL/NSURLProtocol_http.h delete mode 100644 Foundation/NSURL/NSURLProtocol_http.m delete mode 100644 Foundation/NSURL/NSURLRequest.h delete mode 100644 Foundation/NSURL/NSURLRequest.m delete mode 100644 Foundation/NSURL/NSURLResponse.h delete mode 100644 Foundation/NSURL/NSURLResponse.m delete mode 100644 Foundation/NSUnarchiver.h delete mode 100644 Foundation/NSUnarchiver.m delete mode 100644 Foundation/NSUndoManager/NSUndoGroup.h delete mode 100644 Foundation/NSUndoManager/NSUndoGroup.m delete mode 100644 Foundation/NSUndoManager/NSUndoManager.h delete mode 100644 Foundation/NSUndoManager/NSUndoManager.m delete mode 100644 Foundation/NSUserDefaults/NSPersistantDomain.h delete mode 100644 Foundation/NSUserDefaults/NSPersistantDomain.m delete mode 100644 Foundation/NSUserDefaults/NSUserDefaults.h delete mode 100644 Foundation/NSUserDefaults/NSUserDefaults.m delete mode 100644 Foundation/NSValue/NSValue.h delete mode 100644 Foundation/NSValue/NSValue.m delete mode 100644 Foundation/NSValue/NSValue_concrete.h delete mode 100644 Foundation/NSValue/NSValue_concrete.m delete mode 100644 Foundation/NSValue/NSValue_nonRetainedObject.h delete mode 100644 Foundation/NSValue/NSValue_nonRetainedObject.m delete mode 100644 Foundation/NSValue/NSValue_placeholder.h delete mode 100644 Foundation/NSValue/NSValue_placeholder.m delete mode 100644 Foundation/NSValue/NSValue_pointer.h delete mode 100644 Foundation/NSValue/NSValue_pointer.m delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer.h delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer.m delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_IsNil.h delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_IsNil.m delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.h delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.m delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.h delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.m delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.h delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.m delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.h delete mode 100644 Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.m delete mode 100644 Foundation/NSZone/NSVirtualMemory.m delete mode 100644 Foundation/NSZone/NSZone.h delete mode 100644 Foundation/NSZone/NSZone.m delete mode 100644 Foundation/platform_bsd/NSMemoryFunctions_bsd.m delete mode 100644 Foundation/platform_bsd/NSPlatform_bsd.h delete mode 100644 Foundation/platform_bsd/NSPlatform_bsd.m delete mode 100644 Foundation/platform_bsd/libmain.m delete mode 100644 Foundation/platform_darwin/DarwinMemoryFunctions.m delete mode 100644 Foundation/platform_darwin/NSPlatform_darwin.h delete mode 100644 Foundation/platform_darwin/NSPlatform_darwin.m delete mode 100644 Foundation/platform_darwin/NSString_defaultEncoding_darwin.m delete mode 100644 Foundation/platform_darwin/libmain.m delete mode 100644 Foundation/platform_linux/NSMemoryFunctions_linux.m delete mode 100644 Foundation/platform_linux/NSPlatform_linux.h delete mode 100644 Foundation/platform_linux/NSPlatform_linux.m delete mode 100644 Foundation/platform_linux/libmain.m delete mode 100644 Foundation/platform_posix/NSCancelInputSource_posix.h delete mode 100644 Foundation/platform_posix/NSCancelInputSource_posix.m delete mode 100644 Foundation/platform_posix/NSConditionLock_posix.h delete mode 100644 Foundation/platform_posix/NSConditionLock_posix.m delete mode 100644 Foundation/platform_posix/NSCondition_posix.h delete mode 100644 Foundation/platform_posix/NSCondition_posix.m delete mode 100644 Foundation/platform_posix/NSConstantString.m delete mode 100644 Foundation/platform_posix/NSFileHandle_posix.h delete mode 100644 Foundation/platform_posix/NSFileHandle_posix.m delete mode 100644 Foundation/platform_posix/NSFileManager_posix.h delete mode 100644 Foundation/platform_posix/NSFileManager_posix.m delete mode 100644 Foundation/platform_posix/NSLock_posix.h delete mode 100644 Foundation/platform_posix/NSLock_posix.m delete mode 100644 Foundation/platform_posix/NSMemoryFunctions_posix.m delete mode 100644 Foundation/platform_posix/NSPersistantDomain_posix.h delete mode 100644 Foundation/platform_posix/NSPersistantDomain_posix.m delete mode 100644 Foundation/platform_posix/NSPipe_posix.h delete mode 100644 Foundation/platform_posix/NSPipe_posix.m delete mode 100644 Foundation/platform_posix/NSPlatform_posix.h delete mode 100644 Foundation/platform_posix/NSPlatform_posix.m delete mode 100644 Foundation/platform_posix/NSRecursiveLock_posix.h delete mode 100644 Foundation/platform_posix/NSRecursiveLock_posix.m delete mode 100644 Foundation/platform_posix/NSRunLoopState_posix.h delete mode 100644 Foundation/platform_posix/NSRunLoopState_posix.m delete mode 100644 Foundation/platform_posix/NSSelectSet_bsd.h delete mode 100644 Foundation/platform_posix/NSSelectSet_bsd.m delete mode 100644 Foundation/platform_posix/NSSocketPort_posix.h delete mode 100644 Foundation/platform_posix/NSSocketPort_posix.m delete mode 100644 Foundation/platform_posix/NSSocket_bsd.h delete mode 100644 Foundation/platform_posix/NSSocket_bsd.m delete mode 100644 Foundation/platform_posix/NSString_defaultEncoding_posix.m delete mode 100644 Foundation/platform_posix/NSTask_posix.h delete mode 100644 Foundation/platform_posix/NSTask_posix.m delete mode 100644 Foundation/platform_posix/NSTimeZone_posix.h delete mode 100644 Foundation/platform_posix/NSTimeZone_posix.m delete mode 100644 Foundation/platform_solaris/NSBacktraceFunctions_solaris.m delete mode 100644 Foundation/platform_solaris/NSPlatform_solaris.h delete mode 100644 Foundation/platform_solaris/NSPlatform_solaris.m delete mode 100644 Foundation/platform_solaris/SolarisMemoryFunctions.m delete mode 100644 Foundation/platform_solaris/libmain.m delete mode 100644 Foundation/platform_windows/NSBacktraceFunctions_win32.m delete mode 100644 Foundation/platform_windows/NSCancelInputSource_win32.h delete mode 100644 Foundation/platform_windows/NSCancelInputSource_win32.m delete mode 100644 Foundation/platform_windows/NSConditionLock_win32.h delete mode 100644 Foundation/platform_windows/NSConditionLock_win32.m delete mode 100644 Foundation/platform_windows/NSCondition_win32.h delete mode 100644 Foundation/platform_windows/NSCondition_win32.m delete mode 100644 Foundation/platform_windows/NSFileHandle_win32.h delete mode 100644 Foundation/platform_windows/NSFileHandle_win32.m delete mode 100644 Foundation/platform_windows/NSFileManager_win32.h delete mode 100644 Foundation/platform_windows/NSFileManager_win32.m delete mode 100644 Foundation/platform_windows/NSHandleMonitorSet_win32.h delete mode 100644 Foundation/platform_windows/NSHandleMonitorSet_win32.m delete mode 100644 Foundation/platform_windows/NSHandleMonitor_win32.h delete mode 100644 Foundation/platform_windows/NSHandleMonitor_win32.m delete mode 100644 Foundation/platform_windows/NSLocale+windows.h delete mode 100644 Foundation/platform_windows/NSLocale+windows.m delete mode 100644 Foundation/platform_windows/NSLock_win32.h delete mode 100644 Foundation/platform_windows/NSLock_win32.m delete mode 100644 Foundation/platform_windows/NSMemoryFunctions_win32.m delete mode 100644 Foundation/platform_windows/NSParentDeathMonitor_win32.h delete mode 100644 Foundation/platform_windows/NSParentDeathMonitor_win32.m delete mode 100644 Foundation/platform_windows/NSPersistantDomain_win32.h delete mode 100644 Foundation/platform_windows/NSPersistantDomain_win32.m delete mode 100644 Foundation/platform_windows/NSPipe_win32.h delete mode 100644 Foundation/platform_windows/NSPipe_win32.m delete mode 100644 Foundation/platform_windows/NSPlatform_win32.h delete mode 100644 Foundation/platform_windows/NSPlatform_win32.m delete mode 100644 Foundation/platform_windows/NSReadInBackground_win32.h delete mode 100644 Foundation/platform_windows/NSReadInBackground_win32.m delete mode 100644 Foundation/platform_windows/NSRecursiveLock_win32.h delete mode 100644 Foundation/platform_windows/NSRecursiveLock_win32.m delete mode 100644 Foundation/platform_windows/NSRunLoopState_windows.h delete mode 100644 Foundation/platform_windows/NSRunLoopState_windows.m delete mode 100644 Foundation/platform_windows/NSSelectSet_windows.h delete mode 100644 Foundation/platform_windows/NSSelectSet_windows.m delete mode 100644 Foundation/platform_windows/NSSocket_windows.h delete mode 100644 Foundation/platform_windows/NSSocket_windows.m delete mode 100644 Foundation/platform_windows/NSString_defaultEncoding_windows.m delete mode 100644 Foundation/platform_windows/NSString_win32.h delete mode 100644 Foundation/platform_windows/NSString_win32.m delete mode 100644 Foundation/platform_windows/NSTask_win32.h delete mode 100644 Foundation/platform_windows/NSTask_win32.m delete mode 100644 Foundation/platform_windows/NSTimeZone_win32.h delete mode 100644 Foundation/platform_windows/NSTimeZone_win32.m delete mode 100644 Foundation/platform_windows/dllmain.m delete mode 100644 Foundation/xml/NSXMLDTD.h delete mode 100644 Foundation/xml/NSXMLDTD.m delete mode 100644 Foundation/xml/NSXMLDTDNode.h delete mode 100644 Foundation/xml/NSXMLDTDNode.m delete mode 100644 Foundation/xml/NSXMLDocument.h delete mode 100644 Foundation/xml/NSXMLDocument.m delete mode 100644 Foundation/xml/NSXMLElement.h delete mode 100644 Foundation/xml/NSXMLElement.m delete mode 100644 Foundation/xml/NSXMLNode.h delete mode 100644 Foundation/xml/NSXMLNode.m delete mode 100644 Foundation/xml/NSXMLNodeOptions.h delete mode 100644 Foundation/xml/NSXMLParser.h delete mode 100644 Foundation/xml/NSXMLParser.m delete mode 100644 IOKit/English.lproj/InfoPlist.strings delete mode 100644 IOKit/IOKit.xcodeproj/project.pbxproj delete mode 100644 IOKit/IOKitLib.h delete mode 100644 IOKit/IOKitLib.m delete mode 100644 IOKit/IOTypes.h delete mode 100644 IOKit/Info.plist delete mode 100644 IOKit/network/IOEthernetController.h delete mode 100644 IOKit/network/IOEthernetInterface.h delete mode 100644 IOKit/network/IONetworkController.h delete mode 100644 IOKit/network/IONetworkInterface.h delete mode 100644 ImageKit/English.lproj/InfoPlist.strings delete mode 100644 ImageKit/IKImageBrowserCell.h delete mode 100644 ImageKit/IKImageBrowserCell.m delete mode 100644 ImageKit/IKImageBrowserView.h delete mode 100644 ImageKit/IKImageBrowserView.m delete mode 100644 ImageKit/ImageKit.h delete mode 100644 ImageKit/ImageKit.xcodeproj/project.pbxproj delete mode 100644 ImageKit/ImageKit.xcodeproj/xcshareddata/xcschemes/ImageKit-Windows-i386.xcscheme delete mode 100644 ImageKit/ImageKitExport.h delete mode 100644 ImageKit/ImageKit_Framework.m delete mode 100644 ImageKit/Info.plist delete mode 100644 ImageKit/dllmain.m delete mode 100644 InstallCDT/Resources/Specifications/Windows.pbfilespec delete mode 100644 InstallCDT/Resources/Specifications/gcc-4.3.1.pbcompspec delete mode 100644 InstallCDT/Resources/Specifications/gcc-default.pbcompspec delete mode 100644 InstallCDT/Resources/Specifications/llvm-clang-default.pbcompspec delete mode 100644 InstallCDT/Resources/Specifications/llvm-clang-trunk.pbcompspec delete mode 100755 InstallCDT/Resources/scripts/createSpecifications.sh delete mode 100755 InstallCDT/Resources/scripts/downloadFilesIfNeeded.sh delete mode 100755 InstallCDT/Resources/scripts/unarchiveFiles.sh delete mode 100644 InstallCDT/Resources/tools/retargetBundle.m delete mode 100755 InstallCDT/install.sh delete mode 100755 InstallCDT/install_AntiGrain.sh delete mode 100755 InstallCDT/install_FreeType.sh delete mode 100755 InstallCDT/install_GLUT.sh delete mode 100755 InstallCDT/install_OpenSSL.sh delete mode 100755 InstallCDT/install_hunspell.sh delete mode 100755 InstallCDT/install_libjpeg-turbo.sh delete mode 100755 InstallCDT/install_libjpeg.sh delete mode 100755 InstallCDT/install_libtiff.sh delete mode 100755 InstallCDT/install_plibc.sh delete mode 100755 InstallCDT/install_png.sh delete mode 100755 InstallCDT/install_pthread.sh delete mode 100755 InstallCDT/install_sqlite.sh delete mode 100755 InstallCDT/install_xml2.sh delete mode 100755 InstallCDT/install_zlib.sh delete mode 100755 InstallCDT/install_zlib_src.sh rename LICENSE.txt => LICENSE (100%) delete mode 100644 NSSpellEngine_hunspell/English.lproj/InfoPlist.strings delete mode 100644 NSSpellEngine_hunspell/Info.plist delete mode 100644 NSSpellEngine_hunspell/NSSpellEngine_hunspell.h delete mode 100644 NSSpellEngine_hunspell/NSSpellEngine_hunspell.mm delete mode 100644 NSSpellEngine_hunspell/NSSpellEngine_hunspell.xcodeproj/project.pbxproj delete mode 100644 NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.h delete mode 100644 NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.mm delete mode 100644 O2Context_AntiGrain/English.lproj/InfoPlist.strings delete mode 100644 O2Context_AntiGrain/Info.plist delete mode 100644 O2Context_AntiGrain/O2Context_AntiGrain.h delete mode 100644 O2Context_AntiGrain/O2Context_AntiGrain.mm delete mode 100644 O2Context_AntiGrain/O2Context_AntiGrain.xcodeproj/project.pbxproj delete mode 100644 O2Context_AntiGrain/agg_font_cache_manager.h delete mode 100644 O2Context_AntiGrain/agg_font_win32_tt.h delete mode 100644 O2Context_AntiGrain/agg_font_win32_tt.mm delete mode 100644 O2Context_AntiGrain/o2agg_pixfmt_rgba.h delete mode 100644 O2Context_AntiGrain/o2agg_span_image_filter_rgba.h delete mode 100644 O2Context_AntiGrain/partial_stack_blur.h delete mode 100644 Onyx2D/Onyx2D.xcodeproj/project.pbxproj delete mode 100644 OpenGL/CMakeLists.txt delete mode 100644 OpenGL/Info.plist delete mode 100644 OpenGL/OpenGL.m delete mode 100644 OpenGL/OpenGL.xcodeproj/project.pbxproj delete mode 120000 OpenGL/include/GL delete mode 100644 OpenGL/include/OpenGL/CGLCurrent.h delete mode 100644 OpenGL/include/OpenGL/CGLTypes.h delete mode 100644 OpenGL/include/OpenGL/OpenGL.h delete mode 100644 OpenGL/include/OpenGL/gl.h delete mode 100644 OpenGL/include/OpenGL/glext.h delete mode 100644 OpenGL/include/OpenGL/gltypes.h delete mode 100644 OpenGL/include/OpenGL/glu.h delete mode 100644 OpenGL/include/OpenGL/glweak.h delete mode 100644 OpenGL/include/OpenGL/wglext.h delete mode 100644 PDFKit/English.lproj/InfoPlist.strings delete mode 100644 PDFKit/Info.plist delete mode 100644 PDFKit/PDFDocument.h delete mode 100644 PDFKit/PDFDocument.m delete mode 100644 PDFKit/PDFDocumentView.h delete mode 100644 PDFKit/PDFDocumentView.m delete mode 100644 PDFKit/PDFKit.h delete mode 100644 PDFKit/PDFKit.xcodeproj/project.pbxproj delete mode 100644 PDFKit/PDFKit.xcodeproj/xcshareddata/xcschemes/PDFKit-Windows-i386.xcscheme delete mode 100644 PDFKit/PDFKitExport.h delete mode 100644 PDFKit/PDFKit_Framework.m delete mode 100644 PDFKit/PDFPage.h delete mode 100644 PDFKit/PDFPage.m delete mode 100644 PDFKit/PDFPageView.h delete mode 100644 PDFKit/PDFPageView.m delete mode 100644 PDFKit/PDFSelectedRange.h delete mode 100644 PDFKit/PDFSelectedRange.m delete mode 100644 PDFKit/PDFSelection.h delete mode 100644 PDFKit/PDFSelection.m delete mode 100644 PDFKit/PDFView.h delete mode 100644 PDFKit/PDFView.m delete mode 100644 QuartzCore/QuartzCore.xcodeproj/project.pbxproj delete mode 100644 ScriptingBridge/English.lproj/InfoPlist.strings delete mode 100644 ScriptingBridge/Info.plist delete mode 100644 ScriptingBridge/SBApplication.h delete mode 100644 ScriptingBridge/SBApplication.m delete mode 100644 ScriptingBridge/SBElementArray.h delete mode 100644 ScriptingBridge/SBElementArray.m delete mode 100644 ScriptingBridge/SBObject.h delete mode 100644 ScriptingBridge/SBObject.m delete mode 100644 ScriptingBridge/ScriptingBridge.h delete mode 100644 ScriptingBridge/ScriptingBridge.xcodeproj/project.pbxproj delete mode 100644 ScriptingBridge/dllmain.m delete mode 100644 Security/English.lproj/InfoPlist.strings delete mode 100644 Security/Info.plist delete mode 100644 Security/SecAccess.h delete mode 100644 Security/SecAccess.m delete mode 100644 Security/SecBase.h delete mode 100644 Security/SecBase.m delete mode 100644 Security/SecKeychain.h delete mode 100644 Security/SecKeychain.m delete mode 100644 Security/SecKeychainCursor.h delete mode 100644 Security/SecKeychainCursor.m delete mode 100644 Security/SecKeychainItem.h delete mode 100644 Security/SecKeychainItem.m delete mode 100644 Security/SecKeychainSearch.h delete mode 100644 Security/SecKeychainSearch.m delete mode 100644 Security/SecTrustedApplication.h delete mode 100644 Security/SecTrustedApplication.m delete mode 100644 Security/Security.h delete mode 100644 Security/Security.xcodeproj/project.pbxproj delete mode 100644 Security/version.plist create mode 100644 examples/CGShadingCreate/CMakeLists.txt rename {Examples => examples}/CGShadingCreate/GradientView.h (100%) rename {Examples => examples}/CGShadingCreate/GradientView.m (97%) rename {testing/Examples => examples}/CGShadingCreate/Info.plist (88%) rename {Examples/CGShadingCreate => examples/CGShadingCreate/Resources}/English.lproj/InfoPlist.strings (100%) rename {Examples/CGShadingCreate => examples/CGShadingCreate/Resources}/English.lproj/MainMenu.nib/classes.nib (100%) rename {testing/Examples/CGShadingCreate => examples/CGShadingCreate/Resources}/English.lproj/MainMenu.nib/info.nib (93%) create mode 100644 examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/keyedobjects.nib rename {Examples => examples}/CGShadingCreate/main.m (100%) create mode 100644 examples/CMakeLists.txt create mode 100644 examples/NSOpenGLView/CMakeLists.txt rename {Examples => examples}/NSOpenGLView/Info.plist (88%) rename {Examples => examples}/NSOpenGLView/MyOpenGLView.h (100%) rename {Examples => examples}/NSOpenGLView/MyOpenGLView.m (99%) rename {Examples/NSOpenGLView => examples/NSOpenGLView/Resources}/English.lproj/InfoPlist.strings (100%) rename {Examples/NSOpenGLView => examples/NSOpenGLView/Resources}/English.lproj/Localizable-windows.strings (100%) rename {Examples/NSOpenGLView => examples/NSOpenGLView/Resources}/English.lproj/Localizable.strings (100%) rename {Examples/NSOpenGLView => examples/NSOpenGLView/Resources}/English.lproj/MainMenu.nib/classes.nib (100%) rename {Examples/NSOpenGLView => examples/NSOpenGLView/Resources}/English.lproj/MainMenu.nib/info.nib (100%) rename {Examples/NSOpenGLView => examples/NSOpenGLView/Resources}/English.lproj/MainMenu.nib/keyedobjects.nib (100%) rename {Examples => examples}/NSOpenGLView/main.m (100%) create mode 100644 examples/TextEditor/CMakeLists.txt rename {Examples => examples}/TextEditor/Info.plist (94%) rename {Examples => examples}/TextEditor/MyDocument.h (100%) rename {Examples => examples}/TextEditor/MyDocument.m (51%) rename {Examples/TextEditor => examples/TextEditor/Resources}/English.lproj/Credits.rtf (100%) rename {Examples/TextEditor => examples/TextEditor/Resources}/English.lproj/MainMenu.nib/designable.nib (100%) rename {Examples/TextEditor => examples/TextEditor/Resources}/English.lproj/MainMenu.nib/keyedobjects.nib (100%) rename {Examples/TextEditor => examples/TextEditor/Resources}/English.lproj/MyDocument.nib/designable.nib (100%) rename {Examples/TextEditor => examples/TextEditor/Resources}/English.lproj/MyDocument.nib/keyedobjects.nib (100%) create mode 100644 examples/TextEditor/main.m delete mode 100644 makefiles/Foundation/Makefile delete mode 120000 makefiles/Foundation/rsc/NSTimeZoneAbbreviations.plist delete mode 120000 makefiles/Foundation/rsc/NSUserDefaults.plist delete mode 100644 makefiles/Makefile delete mode 100644 makefiles/Makefiles/Makefile.app delete mode 100644 makefiles/Makefiles/Makefile.common delete mode 100644 makefiles/Makefiles/Makefile.framework delete mode 100644 makefiles/README.txt delete mode 100644 makefiles/test/Makefile delete mode 100644 makefiles/test/src/test.m delete mode 100644 objc/Info.plist delete mode 100644 objc/ObjCArray.c delete mode 100755 objc/ObjCArray.h delete mode 100755 objc/ObjCDynamicModule.c delete mode 100755 objc/ObjCDynamicModule.h delete mode 100644 objc/ObjCHashTable.c delete mode 100644 objc/ObjCHashTable.h delete mode 100644 objc/ObjCModule.c delete mode 100755 objc/ObjCModule.h delete mode 100644 objc/Object.h delete mode 100644 objc/Object.m delete mode 100644 objc/Protocol.h delete mode 100644 objc/Protocol.m delete mode 100644 objc/deprecated.h delete mode 100644 objc/dyld.c delete mode 100644 objc/dyld.h delete mode 100644 objc/message.h delete mode 100644 objc/objc-auto.h delete mode 100644 objc/objc-class.h delete mode 100644 objc/objc-export.h delete mode 100644 objc/objc-runtime.h delete mode 100644 objc/objc.h delete mode 100644 objc/objc.m delete mode 100644 objc/objc.xcodeproj/project.pbxproj delete mode 100644 objc/objc_arc.c delete mode 100644 objc/objc_arc.h delete mode 100644 objc/objc_association.m delete mode 100644 objc/objc_cache.h delete mode 100644 objc/objc_class.c delete mode 100644 objc/objc_class.h delete mode 100644 objc/objc_debugHelpers.h delete mode 100644 objc/objc_debugHelpers.m delete mode 100644 objc/objc_exception.m delete mode 100644 objc/objc_functions.c delete mode 100644 objc/objc_ivar.c delete mode 100644 objc/objc_lock.h delete mode 100644 objc/objc_log.c delete mode 100755 objc/objc_log.h delete mode 100644 objc/objc_malloc.c delete mode 100644 objc/objc_malloc.h delete mode 100644 objc/objc_method.c delete mode 100644 objc/objc_msg_lookup.c delete mode 100644 objc/objc_object.c delete mode 100644 objc/objc_object.h delete mode 100644 objc/objc_property.c delete mode 100644 objc/objc_protocol.c delete mode 100644 objc/objc_protocol.h delete mode 100644 objc/objc_sel.c delete mode 100644 objc/objc_sel.h delete mode 100644 objc/objc_tls.c delete mode 100644 objc/objc_tls.h delete mode 100644 objc/platform_darwin/OBJCRegisterModule_Darwin.h delete mode 100644 objc/platform_darwin/OBJCRegisterModule_Darwin.m delete mode 100644 objc/platform_darwin/objc_msgSend-darwin-i386.s delete mode 100644 objc/platform_darwin/objc_msgSend-darwin-ppc.s delete mode 100755 objc/platform_linux/objc-msgsend-x86_64.s delete mode 100755 objc/platform_linux/objc-msgsend.s delete mode 100755 objc/platform_windows/objc-msgsend.s delete mode 100644 objc/runtime.h delete mode 100644 pthread/pthread.h delete mode 100644 pthread/pthread.m delete mode 100644 pthread/pthread.xcodeproj/project.pbxproj delete mode 100644 pthread/sched.h delete mode 100644 testing/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj delete mode 100644 testing/Examples/CGShadingCreate/English.lproj/InfoPlist.strings delete mode 100644 testing/Examples/CGShadingCreate/English.lproj/MainMenu.nib/classes.nib delete mode 100644 testing/Examples/CGShadingCreate/English.lproj/MainMenu.nib/keyedobjects.nib delete mode 100644 testing/Examples/CGShadingCreate/GradientView.h delete mode 100644 testing/Examples/CGShadingCreate/GradientView.m delete mode 100644 testing/Examples/CGShadingCreate/main.m delete mode 100644 testing/Examples/CGShadingCreateAxial/CGShadingCreateAxial.xcodeproj/project.pbxproj delete mode 100644 testing/Examples/CGShadingCreateAxial/English.lproj/InfoPlist.strings delete mode 100644 testing/Examples/CGShadingCreateAxial/English.lproj/MainMenu.nib/classes.nib delete mode 100644 testing/Examples/CGShadingCreateAxial/English.lproj/MainMenu.nib/info.nib delete mode 100644 testing/Examples/CGShadingCreateAxial/English.lproj/MainMenu.nib/keyedobjects.nib delete mode 100644 testing/Examples/CGShadingCreateAxial/GradientView.h delete mode 100644 testing/Examples/CGShadingCreateAxial/GradientView.m delete mode 100644 testing/Examples/CGShadingCreateAxial/Info.plist delete mode 100644 testing/Examples/CGShadingCreateAxial/main.m delete mode 100644 testing/Examples/NSOpenGLView/English.lproj/InfoPlist.strings delete mode 100644 testing/Examples/NSOpenGLView/English.lproj/Localizable-windows.strings delete mode 100644 testing/Examples/NSOpenGLView/English.lproj/Localizable.strings delete mode 100644 testing/Examples/NSOpenGLView/English.lproj/MainMenu.nib/classes.nib delete mode 100644 testing/Examples/NSOpenGLView/English.lproj/MainMenu.nib/info.nib delete mode 100644 testing/Examples/NSOpenGLView/English.lproj/MainMenu.nib/keyedobjects.nib delete mode 100644 testing/Examples/NSOpenGLView/Info.plist delete mode 100644 testing/Examples/NSOpenGLView/MyOpenGLView.h delete mode 100644 testing/Examples/NSOpenGLView/MyOpenGLView.m delete mode 100644 testing/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj delete mode 100644 testing/Examples/NSOpenGLView/main.m delete mode 100644 testing/Examples/Quartz2D/Demo.h delete mode 100644 testing/Examples/Quartz2D/Demo.m delete mode 100644 testing/Examples/Quartz2D/DemoAffineImages.h delete mode 100644 testing/Examples/Quartz2D/DemoAffineImages.m delete mode 100644 testing/Examples/Quartz2D/DemoAntialias.h delete mode 100644 testing/Examples/Quartz2D/DemoAntialias.m delete mode 100644 testing/Examples/Quartz2D/DemoGradient.h delete mode 100644 testing/Examples/Quartz2D/DemoGradient.m delete mode 100644 testing/Examples/Quartz2D/DemoJoinCapDash.h delete mode 100644 testing/Examples/Quartz2D/DemoJoinCapDash.m delete mode 100644 testing/Examples/Quartz2D/DemoPaths.h delete mode 100644 testing/Examples/Quartz2D/DemoPaths.m delete mode 100644 testing/Examples/Quartz2D/DemoPattern.h delete mode 100644 testing/Examples/Quartz2D/DemoPattern.m delete mode 100644 testing/Examples/Quartz2D/DemoPorterDuff.h delete mode 100644 testing/Examples/Quartz2D/DemoPorterDuff.m delete mode 100644 testing/Examples/Quartz2D/DemoSoftMask.h delete mode 100644 testing/Examples/Quartz2D/DemoSoftMask.m delete mode 100644 testing/Examples/Quartz2D/DemoView.h delete mode 100644 testing/Examples/Quartz2D/DemoView.m delete mode 100644 testing/Examples/Quartz2D/DemoWindingRules.h delete mode 100644 testing/Examples/Quartz2D/DemoWindingRules.m delete mode 100644 testing/Examples/Quartz2D/English.lproj/InfoPlist.strings delete mode 100644 testing/Examples/Quartz2D/English.lproj/MainMenu.xib delete mode 100644 testing/Examples/Quartz2D/Quartz2D-Info.plist delete mode 100644 testing/Examples/Quartz2D/Quartz2D.xcodeproj/project.pbxproj delete mode 100644 testing/Examples/Quartz2D/Quartz2DAppDelegate.h delete mode 100644 testing/Examples/Quartz2D/Quartz2DAppDelegate.m delete mode 100644 testing/Examples/Quartz2D/Quartz2D_Prefix.pch delete mode 100644 testing/Examples/Quartz2D/main.m delete mode 100644 testing/Examples/Quartz2D/pattern.png delete mode 100644 testing/Examples/Quartz2D/stankard.png delete mode 100644 testing/Examples/TextEditor/English.lproj/Credits.rtf delete mode 100644 testing/Examples/TextEditor/English.lproj/MainMenu.nib/classes.nib delete mode 100644 testing/Examples/TextEditor/English.lproj/MainMenu.nib/info.nib delete mode 100644 testing/Examples/TextEditor/English.lproj/MainMenu.nib/keyedobjects.nib delete mode 100644 testing/Examples/TextEditor/English.lproj/MyDocument.nib/classes.nib delete mode 100644 testing/Examples/TextEditor/English.lproj/MyDocument.nib/info.nib delete mode 100644 testing/Examples/TextEditor/English.lproj/MyDocument.nib/keyedobjects.nib delete mode 100644 testing/Examples/TextEditor/Info.plist delete mode 100644 testing/Examples/TextEditor/MyDocument.h delete mode 100644 testing/Examples/TextEditor/MyDocument.m delete mode 100644 testing/Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj delete mode 100644 testing/Examples/TextEditor/main.m delete mode 100644 testing/FoundationTest/FoundationTest.xcodeproj/project.pbxproj delete mode 100644 testing/FoundationTest/FoundationTest/main.m delete mode 100644 testing/OnyxPDFRasterizer/OnyxPDFRasterizer.m delete mode 100644 testing/OnyxPDFRasterizer/OnyxPDFRasterizer.xcodeproj/project.pbxproj delete mode 100644 testing/SWRender/CoreGraphics_KG.h delete mode 100644 testing/SWRender/DemoCGContext.m delete mode 100644 testing/SWRender/DemoContext.h delete mode 100644 testing/SWRender/DemoContext.m delete mode 100644 testing/SWRender/DemoKGContext.m delete mode 100644 testing/SWRender/DemosTemplate.m delete mode 100644 testing/SWRender/English.lproj/InfoPlist.strings delete mode 100644 testing/SWRender/English.lproj/MainMenu.nib/classes.nib delete mode 100644 testing/SWRender/English.lproj/MainMenu.nib/designable.nib delete mode 100644 testing/SWRender/English.lproj/MainMenu.nib/info.nib delete mode 100644 testing/SWRender/English.lproj/MainMenu.nib/keyedobjects.nib delete mode 100644 testing/SWRender/Info.plist delete mode 100644 testing/SWRender/KGImageView.h delete mode 100644 testing/SWRender/KGImageView.m delete mode 100644 testing/SWRender/KGRender.h delete mode 100644 testing/SWRender/KGRender.m delete mode 100644 testing/SWRender/KGRenderController.h delete mode 100644 testing/SWRender/KGRenderController.m delete mode 100644 testing/SWRender/O2Font_CG.h delete mode 100644 testing/SWRender/O2Font_CG.m delete mode 100644 testing/SWRender/README.txt delete mode 100644 testing/SWRender/SWRender.xcodeproj/project.pbxproj delete mode 100644 testing/SWRender/main.m delete mode 100644 testing/SWRender/overlay.jpg delete mode 100644 testing/SWRender/overlay.png delete mode 100644 testing/SWRender/pattern.jpg delete mode 100644 testing/SWRender/redLZWSquare.tif delete mode 100644 testing/UnitTests/Apple.bplist.keyedArchive delete mode 100644 testing/UnitTests/Array.h delete mode 100644 testing/UnitTests/Array.m delete mode 100644 testing/UnitTests/Bindings/NibBasedTest.h delete mode 100644 testing/UnitTests/Bindings/NibBasedTest.m delete mode 100644 testing/UnitTests/Bindings/ObjectController.h delete mode 100644 testing/UnitTests/Bindings/ObjectController.m delete mode 100644 testing/UnitTests/Bindings/ObjectController.xib delete mode 100644 testing/UnitTests/Bindings/ObservableArray.h delete mode 100644 testing/UnitTests/Bindings/ObservableArray.m delete mode 100644 testing/UnitTests/Bindings/TableViewTest.h delete mode 100644 testing/UnitTests/Bindings/TableViewTest.m delete mode 100644 testing/UnitTests/Bindings/TableViewTest.xib delete mode 100644 testing/UnitTests/Bindings/TextFieldBindings.h delete mode 100644 testing/UnitTests/Bindings/TextFieldBindings.m delete mode 100644 testing/UnitTests/Bindings/TextFieldBindings.xib delete mode 100644 testing/UnitTests/Cocotron.keyedArchive delete mode 100644 testing/UnitTests/CrashCatcher.m delete mode 100644 testing/UnitTests/English.lproj/InfoPlist.strings delete mode 100644 testing/UnitTests/FileHandle.h delete mode 100644 testing/UnitTests/FileHandle.m delete mode 100644 testing/UnitTests/ForEach.h delete mode 100644 testing/UnitTests/ForEach.m delete mode 100644 testing/UnitTests/Forwarding.h delete mode 100644 testing/UnitTests/Forwarding.m delete mode 100644 testing/UnitTests/Info.plist delete mode 100644 testing/UnitTests/KVC.h delete mode 100644 testing/UnitTests/KVC.m delete mode 100644 testing/UnitTests/KVO.h delete mode 100644 testing/UnitTests/KVO.m delete mode 100644 testing/UnitTests/KeyedArchiving.h delete mode 100644 testing/UnitTests/KeyedArchiving.m delete mode 100644 testing/UnitTests/MessageBenchmark.h delete mode 100644 testing/UnitTests/MessageBenchmark.m delete mode 100644 testing/UnitTests/MessageSend.m delete mode 100644 testing/UnitTests/MessageSendTorture.h delete mode 100644 testing/UnitTests/MessageSendTorture.m delete mode 100644 testing/UnitTests/NewStyleExceptions.h delete mode 100644 testing/UnitTests/NewStyleExceptions.m delete mode 100644 testing/UnitTests/ObjCXXExceptions.h delete mode 100644 testing/UnitTests/ObjCXXExceptions.mm delete mode 100644 testing/UnitTests/OperationQueueTests.h delete mode 100644 testing/UnitTests/OperationQueueTests.m delete mode 100644 testing/UnitTests/Predicate.h delete mode 100644 testing/UnitTests/Predicate.m delete mode 100644 testing/UnitTests/Properties.h delete mode 100644 testing/UnitTests/Properties.m delete mode 100644 testing/UnitTests/PropertyListUnarchiving.h delete mode 100644 testing/UnitTests/PropertyListUnarchiving.m delete mode 100644 testing/UnitTests/README delete mode 100644 testing/UnitTests/Resources/Binary.plist delete mode 100644 testing/UnitTests/Resources/XML.plist delete mode 100644 testing/UnitTests/RetainRelease.h delete mode 100644 testing/UnitTests/RetainRelease.m delete mode 100644 testing/UnitTests/Runloop.h delete mode 100644 testing/UnitTests/Runloop.m delete mode 100644 testing/UnitTests/SenTestingKit-Projects/SenTestingKit.xcodeproj/project.pbxproj delete mode 100644 testing/UnitTests/SenTestingKit-Projects/otest.xcodeproj/project.pbxproj delete mode 100644 testing/UnitTests/SizeAndAlignment.h delete mode 100644 testing/UnitTests/SizeAndAlignment.m delete mode 100644 testing/UnitTests/TestingHarness.xcodeproj/project.pbxproj delete mode 100644 testing/UnitTests/URLTest.h delete mode 100644 testing/UnitTests/URLTest.m delete mode 100644 testing/UnitTests/UnitTests-i386-Darwin-Info.plist delete mode 100644 testing/UnitTests/UnitTests.xcodeproj/project.pbxproj delete mode 100644 testing/UnitTests/UnitTests_Prefix.pch delete mode 100644 testing/UnitTests/local_server_config_example.sh delete mode 100644 testing/UnitTests/main.m delete mode 100644 xcconfig/darwin-i386-Foundation.xcconfig delete mode 100644 xcconfig/darwin-i386-framework.xcconfig delete mode 100644 xcconfig/darwin-i386.xcconfig delete mode 100644 xcconfig/darwin-ppc-framework.xcconfig delete mode 100644 xcconfig/darwin-ppc.xcconfig delete mode 100644 xcconfig/darwin-x86_64-Foundation.xcconfig delete mode 100644 xcconfig/darwin-x86_64-framework.xcconfig delete mode 100644 xcconfig/darwin-x86_64.xcconfig delete mode 100644 xcconfig/darwin.xcconfig delete mode 100644 xcconfig/freebsd-i386-Foundation.xcconfig delete mode 100644 xcconfig/freebsd-i386-framework.xcconfig delete mode 100644 xcconfig/freebsd-i386.xcconfig delete mode 100644 xcconfig/freebsd.xcconfig delete mode 100644 xcconfig/linux-arm-Foundation.xcconfig delete mode 100644 xcconfig/linux-arm-framework.xcconfig delete mode 100644 xcconfig/linux-arm.xcconfig delete mode 100644 xcconfig/linux-i386-Foundation.xcconfig delete mode 100644 xcconfig/linux-i386-framework.xcconfig delete mode 100644 xcconfig/linux-i386.xcconfig delete mode 100644 xcconfig/linux-ppc-framework.xcconfig delete mode 100644 xcconfig/linux-ppc.xcconfig delete mode 100644 xcconfig/linux.xcconfig delete mode 100644 xcconfig/platform-framework.xcconfig delete mode 100644 xcconfig/platform.xcconfig delete mode 100644 xcconfig/solaris-sparc-Foundation.xcconfig delete mode 100644 xcconfig/solaris-sparc-framework.xcconfig delete mode 100644 xcconfig/solaris-sparc.xcconfig delete mode 100644 xcconfig/solaris.xcconfig delete mode 100644 xcconfig/windows-i386-AppKit.xcconfig delete mode 100644 xcconfig/windows-i386-Foundation.xcconfig delete mode 100644 xcconfig/windows-i386-bundle.xcconfig delete mode 100644 xcconfig/windows-i386-clang.xcconfig delete mode 100644 xcconfig/windows-i386-framework.xcconfig delete mode 100644 xcconfig/windows-i386.xcconfig delete mode 100644 xcconfig/windows.xcconfig diff --git a/.hgignore b/.hgignore deleted file mode 100644 index b4cb8f20..00000000 --- a/.hgignore +++ /dev/null @@ -1,20 +0,0 @@ -syntax: glob -*.mode1 -*.mode1v3 -*.pbxuser -*.perspectivev3 -*.mode2v3 -build -build - -.svn -.DS_Store -*.pyc -*.swp -*~.nib - -*.orig - -xcuserdata -project.xcworkspace -system diff --git a/AppKit/AppKit.xcodeproj/project.pbxproj b/AppKit/AppKit.xcodeproj/project.pbxproj deleted file mode 100644 index a2ae0da1..00000000 --- a/AppKit/AppKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,4877 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 36570F9B0E818CD5008FE1BE /* NSGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = 36570F990E818CD5008FE1BE /* NSGradient.m */; }; - 365710650E81A10E008FE1BE /* NSGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 36570F980E818CD5008FE1BE /* NSGradient.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 496555CB17A02FAD0015D3B3 /* NSPoof.png in Resources */ = {isa = PBXBuildFile; fileRef = 496555CA17A02FAD0015D3B3 /* NSPoof.png */; }; - 496555DE17A02FB90015D3B3 /* NSPoofAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 496555D817A02FB90015D3B3 /* NSPoofAnimation.m */; }; - 49A7975314224021001CE4C2 /* O2Encoder_JPG.h in Headers */ = {isa = PBXBuildFile; fileRef = 49A7975114224021001CE4C2 /* O2Encoder_JPG.h */; }; - 49A7975414224021001CE4C2 /* O2Encoder_JPG.m in Sources */ = {isa = PBXBuildFile; fileRef = 49A7975214224021001CE4C2 /* O2Encoder_JPG.m */; }; - 49B85E89166FB2D300507E8C /* NSBidiHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 49B85E88166FB2D200507E8C /* NSBidiHelper.m */; }; - 49B85E96166FBC9A00507E8C /* UNIDATA in Resources */ = {isa = PBXBuildFile; fileRef = 49B85E95166FBC9A00507E8C /* UNIDATA */; }; - 49C12B4E16FCAF270018CB21 /* O2EXIFDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 49C12B4C16FCAF270018CB21 /* O2EXIFDecoder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 49C12B5316FCAF270018CB21 /* O2EXIFDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 49C12B4D16FCAF270018CB21 /* O2EXIFDecoder.m */; }; - 49D5D245165F9D0000D6A8EE /* NSUndoTextOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 49D5D243165F9D0000D6A8EE /* NSUndoTextOperation.h */; }; - 49D5D24A165F9D0000D6A8EE /* NSUndoTextOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 49D5D244165F9D0000D6A8EE /* NSUndoTextOperation.m */; }; - 49EB338E171C8A8F00BD2535 /* NSToolbarOverflowArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 49EB338D171C8A8F00BD2535 /* NSToolbarOverflowArrow.tiff */; }; - 6311B10A14C7396A007AD8C0 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6311B10814C7396A007AD8C0 /* Localizable.strings */; }; - 6311B16314C74B00007AD8C0 /* NSColorPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6311B15E14C74B00007AD8C0 /* NSColorPanel.nib */; }; - 6311B16414C74B00007AD8C0 /* NSFontPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6311B16014C74B00007AD8C0 /* NSFontPanel.nib */; }; - 6311B17F14C74EED007AD8C0 /* NSColorPickerColorList.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6311B17914C74EED007AD8C0 /* NSColorPickerColorList.nib */; }; - 6311B18014C74EED007AD8C0 /* NSColorPickerSliders.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6311B17B14C74EED007AD8C0 /* NSColorPickerSliders.nib */; }; - 6311B18114C74EED007AD8C0 /* NSColorPickerWheel.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6311B17D14C74EED007AD8C0 /* NSColorPickerWheel.nib */; }; - 6311B19514C750BE007AD8C0 /* NSSystemInfoPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6311B19314C750BE007AD8C0 /* NSSystemInfoPanel.nib */; }; - 6311B19D14C7515B007AD8C0 /* NSSpellingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6311B19B14C7515B007AD8C0 /* NSSpellingViewController.xib */; }; - 631381D3145F2FFA00765AA7 /* NSColorPickerListIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 631381D0145F2FFA00765AA7 /* NSColorPickerListIcon.png */; }; - 631381D4145F2FFA00765AA7 /* NSColorPickerSlidersIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 631381D1145F2FFA00765AA7 /* NSColorPickerSlidersIcon.png */; }; - 631381D5145F2FFA00765AA7 /* NSColorPickerWheelIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 631381D2145F2FFA00765AA7 /* NSColorPickerWheelIcon.png */; }; - 63138202145F3A5F00765AA7 /* NSColorPickerWheel.h in Headers */ = {isa = PBXBuildFile; fileRef = 63138200145F3A5F00765AA7 /* NSColorPickerWheel.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 63138203145F3A5F00765AA7 /* NSColorPickerWheel.m in Sources */ = {isa = PBXBuildFile; fileRef = 63138201145F3A5F00765AA7 /* NSColorPickerWheel.m */; }; - 6313829A145F6ED300765AA7 /* NSColorPickerWheelView.h in Headers */ = {isa = PBXBuildFile; fileRef = 63138298145F6ED300765AA7 /* NSColorPickerWheelView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 6313829B145F6ED300765AA7 /* NSColorPickerWheelView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63138299145F6ED300765AA7 /* NSColorPickerWheelView.m */; }; - 631382B4145F734100765AA7 /* NSColorWheel.png in Resources */ = {isa = PBXBuildFile; fileRef = 631382B3145F734100765AA7 /* NSColorWheel.png */; }; - 63848FE217A189E70019E4DC /* NSPrintProgressPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63848FE017A189E70019E4DC /* NSPrintProgressPanel.xib */; }; - 63848FEC17A18C050019E4DC /* NSPrintProgressPanelController.h in Headers */ = {isa = PBXBuildFile; fileRef = 63848FEA17A18C050019E4DC /* NSPrintProgressPanelController.h */; }; - 63848FED17A18C050019E4DC /* NSPrintProgressPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = 63848FEB17A18C050019E4DC /* NSPrintProgressPanelController.m */; }; - 98214B8F14EE566B006DB3BD /* NSStatusItem+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 98214B8D14EE566B006DB3BD /* NSStatusItem+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 9824ACBB14EDE5A100245AEF /* NSStatusBar_(Private).h in Headers */ = {isa = PBXBuildFile; fileRef = 9824ACB914EDE5A000245AEF /* NSStatusBar_(Private).h */; settings = {ATTRIBUTES = (Private, ); }; }; - A1CC7019100534AB00DB9974 /* NSCachingBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CC7017100534AB00DB9974 /* NSCachingBinder.h */; }; - A1CC701A100534AB00DB9974 /* NSCachingBinder.m in Sources */ = {isa = PBXBuildFile; fileRef = A1CC7018100534AB00DB9974 /* NSCachingBinder.m */; }; - A1CC70481005371100DB9974 /* NSTextFieldBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = A1CC70401005371100DB9974 /* NSTextFieldBinder.h */; }; - A1CC70491005371100DB9974 /* NSTextFieldBinder.m in Sources */ = {isa = PBXBuildFile; fileRef = A1CC70411005371100DB9974 /* NSTextFieldBinder.m */; }; - C829A6A310FF911400A2306E /* NSGoLeftTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C829A6A210FF911400A2306E /* NSGoLeftTemplate.pdf */; }; - C829A6B310FFA2D100A2306E /* NSGoRightTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C829A6B210FFA2D100A2306E /* NSGoRightTemplate.pdf */; }; - C84909370E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = C84909350E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C84909380E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = C84909360E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.m */; }; - C85D91970EE6A806004EBAEA /* NSDictionaryController.h in Headers */ = {isa = PBXBuildFile; fileRef = C85D91930EE6A806004EBAEA /* NSDictionaryController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C85D91980EE6A806004EBAEA /* NSDictionaryController.m in Sources */ = {isa = PBXBuildFile; fileRef = C85D91940EE6A806004EBAEA /* NSDictionaryController.m */; }; - C8AB730E0F40C21A00D93B96 /* NSControllerMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = C8AB73080F40C21A00D93B96 /* NSControllerMarker.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C8AB730F0F40C21A00D93B96 /* NSControllerMarker.m in Sources */ = {isa = PBXBuildFile; fileRef = C8AB73090F40C21A00D93B96 /* NSControllerMarker.m */; }; - C8C52C8F0E7ED1FF003F03B5 /* NSObservationProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = C8C52C8D0E7ED1FF003F03B5 /* NSObservationProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C8C52C900E7ED1FF003F03B5 /* NSObservationProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = C8C52C8E0E7ED1FF003F03B5 /* NSObservationProxy.m */; }; - CFA3CC3D1AD37BB300E8F830 /* NSRuleEditorButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4A25C61222C4E9009058C1 /* NSRuleEditorButtonCell.m */; }; - CFBAE5191AFC56A900F2BB97 /* windows-i386-AppKit.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFBAE5181AFC56A900F2BB97 /* windows-i386-AppKit.xcconfig */; }; - FE01A80B0C5D9BCB00AEA51A /* AppKitExport.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B53FA0976075200DA0954 /* AppKitExport.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A80C0C5D9BCB00AEA51A /* AppKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B53FC0976075200DA0954 /* AppKit.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A80D0C5D9BCB00AEA51A /* NSActionCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B53FE0976075200DA0954 /* NSActionCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A80E0C5D9BCB00AEA51A /* NSAlertPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54020976075200DA0954 /* NSAlertPanel.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A80F0C5D9BCB00AEA51A /* NSApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54040976075200DA0954 /* NSApplication.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8100C5D9BCB00AEA51A /* NSAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54060976075200DA0954 /* NSAttributedString.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8110C5D9BCB00AEA51A /* NSBitmapImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54080976075200DA0954 /* NSBitmapImageRep.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8120C5D9BCB00AEA51A /* NSBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B540A0976075200DA0954 /* NSBox.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8130C5D9BCB00AEA51A /* NSBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B540C0976075200DA0954 /* NSBrowser.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8140C5D9BCB00AEA51A /* NSBrowserCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B540E0976075200DA0954 /* NSBrowserCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8150C5D9BCB00AEA51A /* NSButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54100976075200DA0954 /* NSButton.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8160C5D9BCB00AEA51A /* NSButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54120976075200DA0954 /* NSButtonCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8170C5D9BCB00AEA51A /* NSCachedImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54140976075200DA0954 /* NSCachedImageRep.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8180C5D9BCB00AEA51A /* NSCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54160976075200DA0954 /* NSCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8190C5D9BCB00AEA51A /* NSClipView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54180976075200DA0954 /* NSClipView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A81A0C5D9BCB00AEA51A /* NSColorList.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B541A0976075200DA0954 /* NSColorList.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A81B0C5D9BCB00AEA51A /* NSColorPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B541E0976075200DA0954 /* NSColorPanel.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A81C0C5D9BCB00AEA51A /* NSColorWell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54200976075200DA0954 /* NSColorWell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A81D0C5D9BCB00AEA51A /* NSComboBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54220976075200DA0954 /* NSComboBox.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A81E0C5D9BCB00AEA51A /* NSComboBoxCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54240976075200DA0954 /* NSComboBoxCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A81F0C5D9BCB00AEA51A /* NSComboBoxView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54260976075200DA0954 /* NSComboBoxView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8200C5D9BCB00AEA51A /* NSComboBoxWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54280976075200DA0954 /* NSComboBoxWindow.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8210C5D9BCB00AEA51A /* NSControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B542A0976075200DA0954 /* NSControl.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8220C5D9BCB00AEA51A /* NSCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B542C0976075200DA0954 /* NSCursor.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8230C5D9BCB00AEA51A /* NSCursorRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B542E0976075200DA0954 /* NSCursorRect.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8240C5D9BCB00AEA51A /* NSCustomImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54300976075200DA0954 /* NSCustomImageRep.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8250C5D9BCB00AEA51A /* NSDisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54320976075200DA0954 /* NSDisplay.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8260C5D9BCB00AEA51A /* NSDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54340976075200DA0954 /* NSDocument.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8270C5D9BCB00AEA51A /* NSDocumentController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54360976075200DA0954 /* NSDocumentController.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8280C5D9BCB00AEA51A /* NSDragging.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54380976075200DA0954 /* NSDragging.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8290C5D9BCB00AEA51A /* NSDraggingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B543A0976075200DA0954 /* NSDraggingManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A82A0C5D9BCB00AEA51A /* NSEPSImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B543C0976075200DA0954 /* NSEPSImageRep.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A82B0C5D9BCB00AEA51A /* NSFileWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B543E0976075200DA0954 /* NSFileWrapper.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A82C0C5D9BCB00AEA51A /* NSFont.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54400976075200DA0954 /* NSFont.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A82D0C5D9BCB00AEA51A /* NSFontFamily.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54420976075200DA0954 /* NSFontFamily.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A82E0C5D9BCB00AEA51A /* NSFontManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54440976075200DA0954 /* NSFontManager.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A82F0C5D9BCB00AEA51A /* NSFontMetric.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54460976075200DA0954 /* NSFontMetric.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8300C5D9BCB00AEA51A /* NSFontPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54480976075200DA0954 /* NSFontPanel.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8310C5D9BCB00AEA51A /* NSFontPanelCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B544A0976075200DA0954 /* NSFontPanelCell.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8320C5D9BCB00AEA51A /* NSFontTypeface.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B544C0976075200DA0954 /* NSFontTypeface.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8330C5D9BCB00AEA51A /* NSForm.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B544E0976075200DA0954 /* NSForm.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8340C5D9BCB00AEA51A /* NSFormCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54500976075200DA0954 /* NSFormCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8350C5D9BCB00AEA51A /* NSGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54520976075200DA0954 /* NSGraphics.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8360C5D9BCB00AEA51A /* NSGraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54540976075200DA0954 /* NSGraphicsContext.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8370C5D9BCB00AEA51A /* NSGraphicsContextFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54560976075200DA0954 /* NSGraphicsContextFunctions.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8380C5D9BCB00AEA51A /* NSImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54580976075200DA0954 /* NSImage.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8390C5D9BCB00AEA51A /* NSImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B545A0976075200DA0954 /* NSImageCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A83A0C5D9BCB00AEA51A /* NSImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B545C0976075200DA0954 /* NSImageRep.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A83B0C5D9BCB00AEA51A /* NSImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B545E0976075200DA0954 /* NSImageView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A83C0C5D9BCB00AEA51A /* NSInterfaceGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54600976075200DA0954 /* NSInterfaceGraphics.h */; settings = {ATTRIBUTES = (); }; }; - FE01A83D0C5D9BCB00AEA51A /* NSInterfacePart.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54620976075200DA0954 /* NSInterfacePart.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A83E0C5D9BCB00AEA51A /* NSInterfacePartAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54640976075200DA0954 /* NSInterfacePartAttributedString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A83F0C5D9BCB00AEA51A /* NSInterfacePartDisabledAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54660976075200DA0954 /* NSInterfacePartDisabledAttributedString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8400C5D9BCB00AEA51A /* NSInterfaceStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54680976075200DA0954 /* NSInterfaceStyle.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8410C5D9BCB00AEA51A /* NSMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B546A0976075200DA0954 /* NSMatrix.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8420C5D9BCB00AEA51A /* NSModalSessionX.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B546C0976075200DA0954 /* NSModalSessionX.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8430C5D9BCB00AEA51A /* NSOpenPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B546E0976075200DA0954 /* NSOpenPanel.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8440C5D9BCB00AEA51A /* NSPageLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54700976075200DA0954 /* NSPageLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8450C5D9BCB00AEA51A /* NSPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54720976075200DA0954 /* NSPanel.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8460C5D9BCB00AEA51A /* NSPasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54740976075200DA0954 /* NSPasteboard.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8480C5D9BCB00AEA51A /* NSPopUpButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54780976075200DA0954 /* NSPopUpButton.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8490C5D9BCB00AEA51A /* NSPopUpButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B547A0976075200DA0954 /* NSPopUpButtonCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A84A0C5D9BCB00AEA51A /* NSPopUpView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B547C0976075200DA0954 /* NSPopUpView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A84B0C5D9BCB00AEA51A /* NSPopUpWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B547E0976075200DA0954 /* NSPopUpWindow.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A84C0C5D9BCB00AEA51A /* NSParagraphStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54800976075200DA0954 /* NSParagraphStyle.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A84D0C5D9BCB00AEA51A /* NSPrintInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54820976075200DA0954 /* NSPrintInfo.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A84E0C5D9BCB00AEA51A /* NSPrintOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54840976075200DA0954 /* NSPrintOperation.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A84F0C5D9BCB00AEA51A /* NSProgressIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54860976075200DA0954 /* NSProgressIndicator.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8500C5D9BCB00AEA51A /* NSResponder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54880976075200DA0954 /* NSResponder.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8510C5D9BCB00AEA51A /* NSSavePanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B548A0976075200DA0954 /* NSSavePanel.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8520C5D9BCB00AEA51A /* NSScreen.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B548C0976075200DA0954 /* NSScreen.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8530C5D9BCB00AEA51A /* NSScroller.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B548E0976075200DA0954 /* NSScroller.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8540C5D9BCB00AEA51A /* NSScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54900976075200DA0954 /* NSScrollView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8550C5D9BCB00AEA51A /* NSSheetContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54920976075200DA0954 /* NSSheetContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8560C5D9BCB00AEA51A /* NSSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54940976075200DA0954 /* NSSlider.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8570C5D9BCB00AEA51A /* NSSliderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54960976075200DA0954 /* NSSliderCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8580C5D9BCB00AEA51A /* NSSplitView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54980976075200DA0954 /* NSSplitView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8590C5D9BCB00AEA51A /* NSStringDrawer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B549A0976075200DA0954 /* NSStringDrawer.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A85A0C5D9BCB00AEA51A /* NSStringDrawing.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B549C0976075200DA0954 /* NSStringDrawing.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A85B0C5D9BCB00AEA51A /* NSSecureTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B549E0976075200DA0954 /* NSSecureTextField.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A85C0C5D9BCB00AEA51A /* NSSecureTextFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54A00976075200DA0954 /* NSSecureTextFieldCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A85D0C5D9BCB00AEA51A /* NSStepper.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54A20976075200DA0954 /* NSStepper.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A85E0C5D9BCB00AEA51A /* NSStepperCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54A40976075200DA0954 /* NSStepperCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A85F0C5D9BCB00AEA51A /* NSTableColumn.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54A60976075200DA0954 /* NSTableColumn.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8600C5D9BCB00AEA51A /* NSTableCornerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54A80976075200DA0954 /* NSTableCornerView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8610C5D9BCB00AEA51A /* NSTableHeaderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54AA0976075300DA0954 /* NSTableHeaderCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8620C5D9BCB00AEA51A /* NSTableHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54AC0976075300DA0954 /* NSTableHeaderView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8630C5D9BCB00AEA51A /* NSTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54AE0976075300DA0954 /* NSTableView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8640C5D9BCB00AEA51A /* NSTabView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54B00976075300DA0954 /* NSTabView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8650C5D9BCB00AEA51A /* NSTabViewItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54B20976075300DA0954 /* NSTabViewItem.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8660C5D9BCB00AEA51A /* NSText.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54B40976075300DA0954 /* NSText.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8670C5D9BCB00AEA51A /* NSTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54B60976075300DA0954 /* NSTextAttachment.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8680C5D9BCB00AEA51A /* NSTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54B80976075300DA0954 /* NSTextField.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8690C5D9BCB00AEA51A /* NSTextFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54BA0976075300DA0954 /* NSTextFieldCell.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A86A0C5D9BCB00AEA51A /* NSTrackingArea.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54BC0976075300DA0954 /* NSTrackingArea.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A86B0C5D9BCB00AEA51A /* NSView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54BE0976075300DA0954 /* NSView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A86C0C5D9BCB00AEA51A /* NSWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54C00976075300DA0954 /* NSWindow.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A86D0C5D9BCB00AEA51A /* NSWindow-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54C20976075300DA0954 /* NSWindow-Private.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A86E0C5D9BCB00AEA51A /* NSThemeFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54C40976075300DA0954 /* NSThemeFrame.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A86F0C5D9BCB00AEA51A /* NSWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54C60976075300DA0954 /* NSWindowController.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8700C5D9BCB00AEA51A /* NSWorkspace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54C80976075300DA0954 /* NSWorkspace.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8720C5D9BCB00AEA51A /* NSOutlineView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54D00976075300DA0954 /* NSOutlineView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8730C5D9BCB00AEA51A /* NSRulerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54D20976075300DA0954 /* NSRulerView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8740C5D9BCB00AEA51A /* NSRulerMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54D40976075300DA0954 /* NSRulerMarker.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8750C5D9BCB00AEA51A /* NSToolTipWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54D60976075300DA0954 /* NSToolTipWindow.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8760C5D9BCB00AEA51A /* NSWindowAnimationContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54D80976075300DA0954 /* NSWindowAnimationContext.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8770C5D9BCB00AEA51A /* NSMeasurementUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54DA0976075300DA0954 /* NSMeasurementUnit.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8780C5D9BCB00AEA51A /* NSWindow-Drag.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B54DC0976075300DA0954 /* NSWindow-Drag.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8790C5D9BCB00AEA51A /* NSNibOutletConnector.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B552F0976075300DA0954 /* NSNibOutletConnector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A87A0C5D9BCB00AEA51A /* NSNibControlConnector.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55310976075300DA0954 /* NSNibControlConnector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A87B0C5D9BCB00AEA51A /* NSNibConnector.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55330976075300DA0954 /* NSNibConnector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A87C0C5D9BCB00AEA51A /* NSNibLoading.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55350976075300DA0954 /* NSNibLoading.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A87D0C5D9BCB00AEA51A /* NSNibHelpConnector.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B553D0976075300DA0954 /* NSNibHelpConnector.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A87E0C5D9BCB00AEA51A /* NSColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55540976075300DA0954 /* NSColor.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8840C5D9BCB00AEA51A /* NSColor_catalog.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55600976075300DA0954 /* NSColor_catalog.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8850C5D9BCB00AEA51A /* conversions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55620976075300DA0954 /* conversions.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8860C5D9BCB00AEA51A /* NSTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B557F0976075300DA0954 /* NSTextView.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8870C5D9BCB00AEA51A /* NSTextContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55810976075300DA0954 /* NSTextContainer.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8880C5D9BCB00AEA51A /* NSTextStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55830976075300DA0954 /* NSTextStorage.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8890C5D9BCB00AEA51A /* NSTextStorage_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55850976075300DA0954 /* NSTextStorage_concrete.h */; settings = {ATTRIBUTES = (); }; }; - FE01A88A0C5D9BCB00AEA51A /* NSLayoutManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55870976075300DA0954 /* NSLayoutManager.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A88B0C5D9BCB00AEA51A /* NSTypesetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55890976075300DA0954 /* NSTypesetter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A88C0C5D9BCB00AEA51A /* NSRangeArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B558B0976075300DA0954 /* NSRangeArray.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A88D0C5D9BCB00AEA51A /* NSSecureTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B558D0976075300DA0954 /* NSSecureTextView.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A88E0C5D9BCB00AEA51A /* NSSecureLayoutManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B558F0976075300DA0954 /* NSSecureLayoutManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A88F0C5D9BCB00AEA51A /* NSTextTab.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55910976075300DA0954 /* NSTextTab.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8900C5D9BCB00AEA51A /* NSEvent_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55A40976075300DA0954 /* NSEvent_mouse.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8910C5D9BCB00AEA51A /* NSEvent_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55A60976075300DA0954 /* NSEvent_keyboard.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8920C5D9BCB00AEA51A /* NSEvent_periodic.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55A80976075300DA0954 /* NSEvent_periodic.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8930C5D9BCB00AEA51A /* NSEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55AA0976075300DA0954 /* NSEvent.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8940C5D9BCB00AEA51A /* NSEvent_CoreGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55AC0976075300DA0954 /* NSEvent_CoreGraphics.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A89A0C5D9BCB00AEA51A /* O2GraphicsState.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55D10976075300DA0954 /* O2GraphicsState.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A89C0C5D9BCB00AEA51A /* CGWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55D70976075300DA0954 /* CGWindow.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A89D0C5D9BCB00AEA51A /* CGEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55D90976075300DA0954 /* CGEvent.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A89E0C5D9BCB00AEA51A /* NSColorPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55EA0976075300DA0954 /* NSColorPicker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A89F0C5D9BCB00AEA51A /* NSColorPickerColorList.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55EC0976075300DA0954 /* NSColorPickerColorList.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8A00C5D9BCB00AEA51A /* NSBrowserCellColorList.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55EE0976075300DA0954 /* NSBrowserCellColorList.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8A10C5D9BCB00AEA51A /* NSColorPickerSliders.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B55F00976075300DA0954 /* NSColorPickerSliders.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8A20C5D9BCB00AEA51A /* Win32Cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56370976075400DA0954 /* Win32Cursor.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8A50C5D9BCB00AEA51A /* Win32DeviceContextPrinter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B563D0976075400DA0954 /* Win32DeviceContextPrinter.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8A60C5D9BCB00AEA51A /* Win32DeviceContextWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B563F0976075400DA0954 /* Win32DeviceContextWindow.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8A70C5D9BCB00AEA51A /* Win32Display.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56410976075400DA0954 /* Win32Display.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8A80C5D9BCB00AEA51A /* Win32Event.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56430976075400DA0954 /* Win32Event.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8A90C5D9BCB00AEA51A /* Win32Font.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56450976075400DA0954 /* Win32Font.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8AB0C5D9BCB00AEA51A /* Win32Window.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B564D0976075400DA0954 /* Win32Window.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8AE0C5D9BCB00AEA51A /* Win32RunningCopyPipe.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56530976075400DA0954 /* Win32RunningCopyPipe.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8AF0C5D9BCB00AEA51A /* Win32EventInputSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56550976075400DA0954 /* Win32EventInputSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B00C5D9BCB00AEA51A /* Win32Workspace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56590976075400DA0954 /* Win32Workspace.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B10C5D9BCB00AEA51A /* NSSavePanel-Win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B565B0976075400DA0954 /* NSSavePanel-Win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B20C5D9BCB00AEA51A /* NSOpenPanel-Win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B565D0976075400DA0954 /* NSOpenPanel-Win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B40C5D9BCB00AEA51A /* Win32DraggingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B568C0976075400DA0954 /* Win32DraggingManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B50C5D9BCB00AEA51A /* Win32DragSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B568E0976075400DA0954 /* Win32DragSession.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B60C5D9BCB00AEA51A /* Win32DropPasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56900976075400DA0954 /* Win32DropPasteboard.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B70C5D9BCB00AEA51A /* Win32FORMATETC.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56920976075400DA0954 /* Win32FORMATETC.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8B80C5D9BCB00AEA51A /* Win32GeneralPasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56940976075400DA0954 /* Win32GeneralPasteboard.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8B90C5D9BCB00AEA51A /* Win32IDataObjectClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56960976075400DA0954 /* Win32IDataObjectClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8BA0C5D9BCB00AEA51A /* Win32IDataObjectServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56980976075400DA0954 /* Win32IDataObjectServer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8BB0C5D9BCB00AEA51A /* Win32IDropSourceServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B569A0976075400DA0954 /* Win32IDropSourceServer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8BC0C5D9BCB00AEA51A /* Win32IDropTargetServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B569C0976075400DA0954 /* Win32IDropTargetServer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8BD0C5D9BCB00AEA51A /* Win32IEnumFORMATETCServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B569E0976075400DA0954 /* Win32IEnumFORMATETCServer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8BE0C5D9BCB00AEA51A /* Win32IStreamClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56A00976075400DA0954 /* Win32IStreamClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8BF0C5D9BCB00AEA51A /* Win32IUnknownServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56A20976075400DA0954 /* Win32IUnknownServer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8C00C5D9BCB00AEA51A /* Win32Pasteboard.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56A40976075400DA0954 /* Win32Pasteboard.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8C10C5D9BCB00AEA51A /* Win32TypesAndOwner.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56A60976075400DA0954 /* Win32TypesAndOwner.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8C20C5D9BCB00AEA51A /* Win32Window-Drag.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56A80976075400DA0954 /* Win32Window-Drag.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8C30C5D9BCB00AEA51A /* NSDragView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56AA0976075400DA0954 /* NSDragView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8C40C5D9BCB00AEA51A /* NSOpenGLContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56B90976075400DA0954 /* NSOpenGLContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8C50C5D9BCB00AEA51A /* NSOpenGLPixelFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56BB0976075400DA0954 /* NSOpenGLPixelFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8C60C5D9BCB00AEA51A /* NSOpenGLView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56BD0976075400DA0954 /* NSOpenGLView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8C70C5D9BCB00AEA51A /* NSRichTextReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56CA0976075400DA0954 /* NSRichTextReader.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8C80C5D9BCB00AEA51A /* NSRichTextWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56CC0976075400DA0954 /* NSRichTextWriter.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8C90C5D9BCB00AEA51A /* NSMainMenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56E30976075400DA0954 /* NSMainMenuView.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8CA0C5D9BCB00AEA51A /* NSMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56E50976075400DA0954 /* NSMenu.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8CB0C5D9BCB00AEA51A /* NSMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56E70976075400DA0954 /* NSMenuItem.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8CC0C5D9BCB00AEA51A /* NSMenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56E90976075400DA0954 /* NSMenuView.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8CD0C5D9BCB00AEA51A /* NSMenuWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56EB0976075400DA0954 /* NSMenuWindow.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8CE0C5D9BCB00AEA51A /* NSOverflowMenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56ED0976075400DA0954 /* NSOverflowMenuView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8CF0C5D9BCB00AEA51A /* NSSubmenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B56EF0976075400DA0954 /* NSSubmenuView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8D00C5D9BCB00AEA51A /* NSKeyboardBindingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B57030976075400DA0954 /* NSKeyboardBindingManager.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8D10C5D9BCB00AEA51A /* NSKeyboardBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B57050976075400DA0954 /* NSKeyboardBinding.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8D30C5D9BCB00AEA51A /* NSToolbar.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B57270976075400DA0954 /* NSToolbar.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8D50C5D9BCB00AEA51A /* NSToolbarItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B572B0976075400DA0954 /* NSToolbarItem.h */; settings = {ATTRIBUTES = (Public, Project, ); }; }; - FE01A8D60C5D9BCB00AEA51A /* NSToolbarView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B572D0976075500DA0954 /* NSToolbarView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8D80C5D9BCB00AEA51A /* NSToolbarCustomizationPalette.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B57310976075500DA0954 /* NSToolbarCustomizationPalette.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8D90C5D9BCB00AEA51A /* NSToolbarCustomizationView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B57330976075500DA0954 /* NSToolbarCustomizationView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8DC0C5D9BCB00AEA51A /* NSDrawer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B574D0976075500DA0954 /* NSDrawer.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8DD0C5D9BCB00AEA51A /* NSDrawerWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2B574F0976075500DA0954 /* NSDrawerWindow.h */; settings = {ATTRIBUTES = (Private, Project, ); }; }; - FE01A8DE0C5D9BCB00AEA51A /* O2TIFFImageDirectory.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E14EC6509A3C40F009C8693 /* O2TIFFImageDirectory.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8DF0C5D9BCB00AEA51A /* O2Decoder_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E14EC6709A3C40F009C8693 /* O2Decoder_TIFF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8E00C5D9BCB00AEA51A /* NSIBObjectData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EC4AC350A35D0C200E8D6CA /* NSIBObjectData.h */; }; - FE01A8E10C5D9BCB00AEA51A /* NSCustomObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EC4AC670A35D47800E8D6CA /* NSCustomObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8E20C5D9BCB00AEA51A /* NSWindowTemplate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EC4ACFB0A36613800E8D6CA /* NSWindowTemplate.h */; }; - FE01A8E30C5D9BCB00AEA51A /* NSButtonImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EC4ADE40A37294300E8D6CA /* NSButtonImageSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8E40C5D9BCB00AEA51A /* NSClassSwapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E81CA740A3883660089C666 /* NSClassSwapper.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8E50C5D9BCB00AEA51A /* NSCustomResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E81CCCE0A39CBE00089C666 /* NSCustomResource.h */; }; - FE01A8E60C5D9BCB00AEA51A /* NSCustomView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ECABDF70A3FA2B700AD7F7B /* NSCustomView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A8E80C5D9BCB00AEA51A /* NSTextViewSharedData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E404FE50A52FEA900FA9AE5 /* NSTextViewSharedData.h */; }; - FE01A8E90C5D9BCB00AEA51A /* NSMutableAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = FE56BA020B1221330046B7D9 /* NSMutableAttributedString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8EA0C5D9BCB00AEA51A /* NSMutableParagraphStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6466E10B2C611D00B302B0 /* NSMutableParagraphStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8EB0C5D9BCB00AEA51A /* NSAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A101D0B44A201006C03DE /* NSAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8EC0C5D9BCB00AEA51A /* NSArrayController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10280B44A26B006C03DE /* NSArrayController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8ED0C5D9BCB00AEA51A /* NSBezierPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10320B44A27C006C03DE /* NSBezierPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8EE0C5D9BCB00AEA51A /* NSColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10440B44A2E5006C03DE /* NSColorSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8EF0C5D9BCB00AEA51A /* NSController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10580B459984006C03DE /* NSController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F00C5D9BCB00AEA51A /* NSObjectController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10600B459992006C03DE /* NSObjectController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F10C5D9BCB00AEA51A /* NSTreeController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10680B4599A3006C03DE /* NSTreeController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F20C5D9BCB00AEA51A /* NSUserDefaultsController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10700B4599BD006C03DE /* NSUserDefaultsController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F30C5D9BCB00AEA51A /* NSGlyphGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10C50B45BAC8006C03DE /* NSGlyphGenerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F40C5D9BCB00AEA51A /* NSGlyphInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10CD0B45BAE2006C03DE /* NSGlyphInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F50C5D9BCB00AEA51A /* NSHelpManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10D30B45BB0A006C03DE /* NSHelpManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F60C5D9BCB00AEA51A /* NSLevelIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10D90B45BB28006C03DE /* NSLevelIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F70C5D9BCB00AEA51A /* NSLevelIndicatorCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10E10B45BB37006C03DE /* NSLevelIndicatorCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F80C5D9BCB00AEA51A /* NSNib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10E90B45BB69006C03DE /* NSNib.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8F90C5D9BCB00AEA51A /* NSPDFImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10EF0B45BC4F006C03DE /* NSPDFImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8FA0C5D9BCB00AEA51A /* NSPrinter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10F50B45BC75006C03DE /* NSPrinter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8FB0C5D9BCB00AEA51A /* NSSearchField.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A10FF0B45BCA6006C03DE /* NSSearchField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8FC0C5D9BCB00AEA51A /* NSSearchFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A11050B45BCB5006C03DE /* NSSearchFieldCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8FD0C5D9BCB00AEA51A /* NSSegmentedCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A110B0B45BCCB006C03DE /* NSSegmentedCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8FE0C5D9BCB00AEA51A /* NSSegmentedControl.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A11130B45BCD8006C03DE /* NSSegmentedControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A8FF0C5D9BCB00AEA51A /* NSShadow.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A11190B45BD0A006C03DE /* NSShadow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9000C5D9BCB00AEA51A /* NSSound.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A11210B45C52C006C03DE /* NSSound.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9010C5D9BCB00AEA51A /* NSSpellChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A112D0B45C55D006C03DE /* NSSpellChecker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9020C5D9BCB00AEA51A /* NSStatusBar.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A113D0B45C58D006C03DE /* NSStatusBar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9030C5D9BCB00AEA51A /* NSStatusItem.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A11450B45C59A006C03DE /* NSStatusItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9040C5D9BCB00AEA51A /* NSTokenField.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A11520B45C65E006C03DE /* NSTokenField.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9050C5D9BCB00AEA51A /* NSTokenFieldCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A115A0B45C66A006C03DE /* NSTokenFieldCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9060C5D9BCB00AEA51A /* O2ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8A70B81239D007EE513 /* O2ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9070C5D9BCB00AEA51A /* O2Context.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8A90B81239D007EE513 /* O2Context.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9080C5D9BCB00AEA51A /* O2DataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8AB0B81239D007EE513 /* O2DataProvider.h */; }; - FE01A9090C5D9BCB00AEA51A /* O2Function.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8AD0B81239D007EE513 /* O2Function.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A90A0C5D9BCB00AEA51A /* O2Image.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8AF0B81239D007EE513 /* O2Image.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A90B0C5D9BCB00AEA51A /* O2PDFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8B10B81239D007EE513 /* O2PDFArray.h */; }; - FE01A90C0C5D9BCB00AEA51A /* O2PDFContentStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8B30B81239D007EE513 /* O2PDFContentStream.h */; }; - FE01A90D0C5D9BCB00AEA51A /* O2PDFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8B50B81239D007EE513 /* O2PDFDictionary.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A90E0C5D9BCB00AEA51A /* O2PDFDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8B70B81239D007EE513 /* O2PDFDocument.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A90F0C5D9BCB00AEA51A /* O2PDFFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8B90B81239D007EE513 /* O2PDFFilter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9100C5D9BCB00AEA51A /* O2PDFFunction_Type2.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8BB0B81239D007EE513 /* O2PDFFunction_Type2.h */; }; - FE01A9110C5D9BCB00AEA51A /* O2PDFFunction_Type3.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8BD0B81239D007EE513 /* O2PDFFunction_Type3.h */; }; - FE01A9120C5D9BCB00AEA51A /* O2PDFObject_Boolean.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8BF0B81239D007EE513 /* O2PDFObject_Boolean.h */; }; - FE01A9130C5D9BCB00AEA51A /* O2PDFObject_const.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8C10B81239D007EE513 /* O2PDFObject_const.h */; }; - FE01A9140C5D9BCB00AEA51A /* O2PDFObject_identifier.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8C30B81239D007EE513 /* O2PDFObject_identifier.h */; }; - FE01A9150C5D9BCB00AEA51A /* O2PDFObject_Integer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8C50B81239D007EE513 /* O2PDFObject_Integer.h */; }; - FE01A9160C5D9BCB00AEA51A /* O2PDFObject_Name.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8C70B81239D007EE513 /* O2PDFObject_Name.h */; }; - FE01A9170C5D9BCB00AEA51A /* O2PDFObject_R.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8C90B81239D007EE513 /* O2PDFObject_R.h */; }; - FE01A9180C5D9BCB00AEA51A /* O2PDFObject_Real.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8CB0B81239D007EE513 /* O2PDFObject_Real.h */; }; - FE01A9190C5D9BCB00AEA51A /* O2PDFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8CD0B81239D007EE513 /* O2PDFObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A91A0C5D9BCB00AEA51A /* O2PDFOperators.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8CF0B81239D007EE513 /* O2PDFOperators.h */; }; - FE01A91B0C5D9BCB00AEA51A /* O2PDFOperatorTable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8D10B81239D007EE513 /* O2PDFOperatorTable.h */; }; - FE01A91C0C5D9BCB00AEA51A /* O2PDFPage.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8D30B81239D007EE513 /* O2PDFPage.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A91D0C5D9BCB00AEA51A /* O2PDFScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8D50B81239D007EE513 /* O2PDFScanner.h */; }; - FE01A91E0C5D9BCB00AEA51A /* O2PDFStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8D70B81239D007EE513 /* O2PDFStream.h */; }; - FE01A91F0C5D9BCB00AEA51A /* O2PDFString.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8D90B81239D007EE513 /* O2PDFString.h */; }; - FE01A9200C5D9BCB00AEA51A /* O2PDFxref.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8DB0B81239D007EE513 /* O2PDFxref.h */; }; - FE01A9210C5D9BCB00AEA51A /* O2PDFxrefEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8DD0B81239D007EE513 /* O2PDFxrefEntry.h */; }; - FE01A9220C5D9BCB00AEA51A /* O2Shading.h in Headers */ = {isa = PBXBuildFile; fileRef = FE64B8DF0B81239D007EE513 /* O2Shading.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A92C0C5D9BCB00AEA51A /* O2Color.h in Headers */ = {isa = PBXBuildFile; fileRef = FE064ABB0B8B805000853FBB /* O2Color.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A92D0C5D9BCB00AEA51A /* O2Layer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE064AC10B8B805000853FBB /* O2Layer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A92E0C5D9BCB00AEA51A /* O2Path.h in Headers */ = {isa = PBXBuildFile; fileRef = FE064AC30B8B805000853FBB /* O2Path.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A92F0C5D9BCB00AEA51A /* O2Pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = FE064AC50B8B805000853FBB /* O2Pattern.h */; }; - FE01A9310C5D9BCB00AEA51A /* O2ImageSource_PNG.h in Headers */ = {isa = PBXBuildFile; fileRef = FE267E850B8BCC3C0000DDC0 /* O2ImageSource_PNG.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9320C5D9BCB00AEA51A /* O2ImageSource_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE267E870B8BCC3C0000DDC0 /* O2ImageSource_TIFF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9330C5D9BCB00AEA51A /* O2ImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = FE267E890B8BCC3C0000DDC0 /* O2ImageSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9350C5D9BCB00AEA51A /* O2BitmapContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE267EB50B8BD2690000DDC0 /* O2BitmapContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9360C5D9BCB00AEA51A /* O2MutablePath.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF33BFF0B93543C00DC0B6F /* O2MutablePath.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9380C5D9BCB00AEA51A /* NSOpenGLPixelBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6DC16A0BA85BEC0082AC66 /* NSOpenGLPixelBuffer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9390C5D9BCB00AEA51A /* NSDatePicker.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6DC3DC0BA9A6EB0082AC66 /* NSDatePicker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A93A0C5D9BCB00AEA51A /* NSDatePickerCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6DC3EE0BA9A7100082AC66 /* NSDatePickerCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A93B0C5D9BCB00AEA51A /* NSGraphicsStyle_uxtheme.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4434020BB9833B00411464 /* NSGraphicsStyle_uxtheme.h */; }; - FE01A93C0C5D9BCB00AEA51A /* NSGraphicsStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1E86BF0BBCA62D0013B968 /* NSGraphicsStyle.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A93D0C5D9BCB00AEA51A /* NSNibBindingConnector.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8BAEC50BC9EA8D0007FACA /* NSNibBindingConnector.h */; }; - FE01A93E0C5D9BCB00AEA51A /* NSBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8BAF1D0BC9EC680007FACA /* NSBinder.h */; }; - FE01A93F0C5D9BCB00AEA51A /* NSKVOBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8BAF1F0BC9EC680007FACA /* NSKVOBinder.h */; }; - FE01A9400C5D9BCB00AEA51A /* NSObject+BindingSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8BAF210BC9EC680007FACA /* NSObject+BindingSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9410C5D9BCB00AEA51A /* NSAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = FED310DD0BCC027200552615 /* NSAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9420C5D9BCB00AEA51A /* NSViewAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = FED310DF0BCC027200552615 /* NSViewAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9430C5D9BCB00AEA51A /* NSFontDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4BDC090BCD40C600E19685 /* NSFontDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9440C5D9BCB00AEA51A /* NSSegmentItem.h in Headers */ = {isa = PBXBuildFile; fileRef = FED166D40BE502AD00BF9889 /* NSSegmentItem.h */; }; - FE01A9450C5D9BCB00AEA51A /* NSTextBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = FED167A40BE57EB300BF9889 /* NSTextBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9460C5D9BCB00AEA51A /* NSTextTable.h in Headers */ = {isa = PBXBuildFile; fileRef = FED167A60BE57EB300BF9889 /* NSTextTable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9470C5D9BCB00AEA51A /* NSTextTableBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = FED167A80BE57EB300BF9889 /* NSTextTableBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9480C5D9BCB00AEA51A /* NSTextInput.h in Headers */ = {isa = PBXBuildFile; fileRef = FE27AC140BE9038000136B43 /* NSTextInput.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A94B0C5D9BCB00AEA51A /* NSAffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = C8E4F57F0BFF7A8A0076D5E6 /* NSAffineTransform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A94C0C5D9BCB00AEA51A /* NSTextList.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7247670C06202B007CBC51 /* NSTextList.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A94D0C5D9BCB00AEA51A /* NSTextAttachmentCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7247A40C0622F2007CBC51 /* NSTextAttachmentCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A94E0C5D9BCB00AEA51A /* NSTypesetter_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = FE72484F0C0676AA007CBC51 /* NSTypesetter_concrete.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A94F0C5D9BCB00AEA51A /* KTFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FE89AF470C33679100CD21FB /* KTFont.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9510C5D9BCB00AEA51A /* O2DeviceContext_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FE57F8D00C46B68C0078FFC1 /* O2DeviceContext_gdi.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A9520C5D9BCB00AEA51A /* NSPrintPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = FE57FAB50C47F2010078FFC1 /* NSPrintPanel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A9540C5D9BCB00AEA51A /* NSActionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53250976075200DA0954 /* NSActionCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9550C5D9BCB00AEA51A /* NSAlertPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53290976075200DA0954 /* NSAlertPanel.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9560C5D9BCB00AEA51A /* NSApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B532B0976075200DA0954 /* NSApplication.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9570C5D9BCB00AEA51A /* NSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B532D0976075200DA0954 /* NSAttributedString.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9580C5D9BCB00AEA51A /* NSBitmapImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B532F0976075200DA0954 /* NSBitmapImageRep.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9590C5D9BCB00AEA51A /* NSBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53310976075200DA0954 /* NSBox.m */; settings = {ATTRIBUTES = (); }; }; - FE01A95A0C5D9BCB00AEA51A /* NSBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53330976075200DA0954 /* NSBrowser.m */; settings = {ATTRIBUTES = (); }; }; - FE01A95B0C5D9BCB00AEA51A /* NSBrowserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53350976075200DA0954 /* NSBrowserCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A95C0C5D9BCB00AEA51A /* NSButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53370976075200DA0954 /* NSButton.m */; settings = {ATTRIBUTES = (); }; }; - FE01A95D0C5D9BCB00AEA51A /* NSButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53390976075200DA0954 /* NSButtonCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A95E0C5D9BCB00AEA51A /* NSCachedImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B533B0976075200DA0954 /* NSCachedImageRep.m */; settings = {ATTRIBUTES = (); }; }; - FE01A95F0C5D9BCB00AEA51A /* NSCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B533D0976075200DA0954 /* NSCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9600C5D9BCB00AEA51A /* NSClipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B533F0976075200DA0954 /* NSClipView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9610C5D9BCB00AEA51A /* NSColorList.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53410976075200DA0954 /* NSColorList.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9620C5D9BCB00AEA51A /* NSColorPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53450976075200DA0954 /* NSColorPanel.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9630C5D9BCB00AEA51A /* NSColorWell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53470976075200DA0954 /* NSColorWell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9640C5D9BCB00AEA51A /* NSComboBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53490976075200DA0954 /* NSComboBox.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9650C5D9BCB00AEA51A /* NSComboBoxCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B534B0976075200DA0954 /* NSComboBoxCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9660C5D9BCB00AEA51A /* NSComboBoxView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B534D0976075200DA0954 /* NSComboBoxView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9670C5D9BCB00AEA51A /* NSComboBoxWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B534F0976075200DA0954 /* NSComboBoxWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9680C5D9BCB00AEA51A /* NSControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53510976075200DA0954 /* NSControl.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9690C5D9BCB00AEA51A /* NSCursor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53530976075200DA0954 /* NSCursor.m */; settings = {ATTRIBUTES = (); }; }; - FE01A96A0C5D9BCB00AEA51A /* NSCursorRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53550976075200DA0954 /* NSCursorRect.m */; settings = {ATTRIBUTES = (); }; }; - FE01A96B0C5D9BCB00AEA51A /* NSCustomImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53570976075200DA0954 /* NSCustomImageRep.m */; settings = {ATTRIBUTES = (); }; }; - FE01A96C0C5D9BCB00AEA51A /* NSDisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53590976075200DA0954 /* NSDisplay.m */; settings = {ATTRIBUTES = (); }; }; - FE01A96D0C5D9BCB00AEA51A /* NSDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B535B0976075200DA0954 /* NSDocument.m */; settings = {ATTRIBUTES = (); }; }; - FE01A96E0C5D9BCB00AEA51A /* NSDocumentController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B535D0976075200DA0954 /* NSDocumentController.m */; settings = {ATTRIBUTES = (); }; }; - FE01A96F0C5D9BCB00AEA51A /* NSDraggingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B535F0976075200DA0954 /* NSDraggingManager.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9700C5D9BCB00AEA51A /* NSEPSImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53610976075200DA0954 /* NSEPSImageRep.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9710C5D9BCB00AEA51A /* NSFileWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53630976075200DA0954 /* NSFileWrapper.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9720C5D9BCB00AEA51A /* NSFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53650976075200DA0954 /* NSFont.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9730C5D9BCB00AEA51A /* NSForm.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53670976075200DA0954 /* NSForm.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9740C5D9BCB00AEA51A /* NSFormCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53690976075200DA0954 /* NSFormCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9750C5D9BCB00AEA51A /* NSFontFamily.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B536B0976075200DA0954 /* NSFontFamily.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9760C5D9BCB00AEA51A /* NSFontManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B536D0976075200DA0954 /* NSFontManager.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9770C5D9BCB00AEA51A /* NSFontMetric.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B536F0976075200DA0954 /* NSFontMetric.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9780C5D9BCB00AEA51A /* NSFontPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53710976075200DA0954 /* NSFontPanel.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9790C5D9BCB00AEA51A /* NSFontPanelCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53730976075200DA0954 /* NSFontPanelCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A97A0C5D9BCB00AEA51A /* NSFontTypeface.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53750976075200DA0954 /* NSFontTypeface.m */; settings = {ATTRIBUTES = (); }; }; - FE01A97B0C5D9BCB00AEA51A /* NSGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53770976075200DA0954 /* NSGraphics.m */; settings = {ATTRIBUTES = (); }; }; - FE01A97C0C5D9BCB00AEA51A /* NSGraphicsContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53790976075200DA0954 /* NSGraphicsContext.m */; settings = {ATTRIBUTES = (); }; }; - FE01A97D0C5D9BCB00AEA51A /* NSImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B537B0976075200DA0954 /* NSImage.m */; settings = {ATTRIBUTES = (); }; }; - FE01A97E0C5D9BCB00AEA51A /* NSImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B537D0976075200DA0954 /* NSImageCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A97F0C5D9BCB00AEA51A /* NSImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B537F0976075200DA0954 /* NSImageRep.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9800C5D9BCB00AEA51A /* NSImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53810976075200DA0954 /* NSImageView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9810C5D9BCB00AEA51A /* NSInterfaceGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53830976075200DA0954 /* NSInterfaceGraphics.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9820C5D9BCB00AEA51A /* NSInterfacePart.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53850976075200DA0954 /* NSInterfacePart.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9830C5D9BCB00AEA51A /* NSInterfacePartAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53870976075200DA0954 /* NSInterfacePartAttributedString.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9840C5D9BCB00AEA51A /* NSInterfacePartDisabledAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53890976075200DA0954 /* NSInterfacePartDisabledAttributedString.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9850C5D9BCB00AEA51A /* NSInterfaceStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B538B0976075200DA0954 /* NSInterfaceStyle.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9860C5D9BCB00AEA51A /* NSMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B538D0976075200DA0954 /* NSMatrix.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9870C5D9BCB00AEA51A /* NSModalSessionX.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B538F0976075200DA0954 /* NSModalSessionX.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9880C5D9BCB00AEA51A /* NSOpenPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53910976075200DA0954 /* NSOpenPanel.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9890C5D9BCB00AEA51A /* NSPageLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53930976075200DA0954 /* NSPageLayout.m */; settings = {ATTRIBUTES = (); }; }; - FE01A98A0C5D9BCB00AEA51A /* NSPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53950976075200DA0954 /* NSPanel.m */; settings = {ATTRIBUTES = (); }; }; - FE01A98B0C5D9BCB00AEA51A /* NSParagraphStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53970976075200DA0954 /* NSParagraphStyle.m */; settings = {ATTRIBUTES = (); }; }; - FE01A98C0C5D9BCB00AEA51A /* NSPasteboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53990976075200DA0954 /* NSPasteboard.m */; settings = {ATTRIBUTES = (); }; }; - FE01A98D0C5D9BCB00AEA51A /* NSPopUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B539B0976075200DA0954 /* NSPopUpButton.m */; settings = {ATTRIBUTES = (); }; }; - FE01A98E0C5D9BCB00AEA51A /* NSPopUpButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B539D0976075200DA0954 /* NSPopUpButtonCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A98F0C5D9BCB00AEA51A /* NSPopUpView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B539F0976075200DA0954 /* NSPopUpView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9900C5D9BCB00AEA51A /* NSPopUpWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53A10976075200DA0954 /* NSPopUpWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9910C5D9BCB00AEA51A /* NSPrintInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53A30976075200DA0954 /* NSPrintInfo.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9920C5D9BCB00AEA51A /* NSPrintOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53A50976075200DA0954 /* NSPrintOperation.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9930C5D9BCB00AEA51A /* NSProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53A70976075200DA0954 /* NSProgressIndicator.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9940C5D9BCB00AEA51A /* NSResponder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53A90976075200DA0954 /* NSResponder.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9950C5D9BCB00AEA51A /* NSSavePanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53AB0976075200DA0954 /* NSSavePanel.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9960C5D9BCB00AEA51A /* NSScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53AD0976075200DA0954 /* NSScreen.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9970C5D9BCB00AEA51A /* NSScroller.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53AF0976075200DA0954 /* NSScroller.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9980C5D9BCB00AEA51A /* NSScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53B10976075200DA0954 /* NSScrollView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9990C5D9BCB00AEA51A /* NSSecureTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53B30976075200DA0954 /* NSSecureTextField.m */; settings = {ATTRIBUTES = (); }; }; - FE01A99A0C5D9BCB00AEA51A /* NSSecureTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53B50976075200DA0954 /* NSSecureTextFieldCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A99B0C5D9BCB00AEA51A /* NSSheetContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53B70976075200DA0954 /* NSSheetContext.m */; settings = {ATTRIBUTES = (); }; }; - FE01A99C0C5D9BCB00AEA51A /* NSSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53B90976075200DA0954 /* NSSlider.m */; settings = {ATTRIBUTES = (); }; }; - FE01A99D0C5D9BCB00AEA51A /* NSSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53BB0976075200DA0954 /* NSSliderCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A99E0C5D9BCB00AEA51A /* NSSplitView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53BD0976075200DA0954 /* NSSplitView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A99F0C5D9BCB00AEA51A /* NSStepper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53BF0976075200DA0954 /* NSStepper.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A00C5D9BCB00AEA51A /* NSStepperCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53C10976075200DA0954 /* NSStepperCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A10C5D9BCB00AEA51A /* NSStringDrawer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53C30976075200DA0954 /* NSStringDrawer.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A20C5D9BCB00AEA51A /* NSStringDrawing.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53C50976075200DA0954 /* NSStringDrawing.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A30C5D9BCB00AEA51A /* NSTableColumn.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53C70976075200DA0954 /* NSTableColumn.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A40C5D9BCB00AEA51A /* NSTableCornerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53C90976075200DA0954 /* NSTableCornerView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A50C5D9BCB00AEA51A /* NSTableHeaderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53CB0976075200DA0954 /* NSTableHeaderCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A60C5D9BCB00AEA51A /* NSTableHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53CD0976075200DA0954 /* NSTableHeaderView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A70C5D9BCB00AEA51A /* NSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53CF0976075200DA0954 /* NSTableView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A80C5D9BCB00AEA51A /* NSTabView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53D10976075200DA0954 /* NSTabView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9A90C5D9BCB00AEA51A /* NSTabViewItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53D30976075200DA0954 /* NSTabViewItem.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9AA0C5D9BCB00AEA51A /* NSText.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53D50976075200DA0954 /* NSText.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9AB0C5D9BCB00AEA51A /* NSTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53D70976075200DA0954 /* NSTextAttachment.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9AC0C5D9BCB00AEA51A /* NSTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53D90976075200DA0954 /* NSTextField.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9AD0C5D9BCB00AEA51A /* NSTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53DB0976075200DA0954 /* NSTextFieldCell.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9AE0C5D9BCB00AEA51A /* NSTrackingArea.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53DD0976075200DA0954 /* NSTrackingArea.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9AF0C5D9BCB00AEA51A /* NSView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53DF0976075200DA0954 /* NSView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B00C5D9BCB00AEA51A /* NSWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53E10976075200DA0954 /* NSWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B10C5D9BCB00AEA51A /* NSThemeFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53E30976075200DA0954 /* NSThemeFrame.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B20C5D9BCB00AEA51A /* NSWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53E50976075200DA0954 /* NSWindowController.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B30C5D9BCB00AEA51A /* NSWorkspace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53E70976075200DA0954 /* NSWorkspace.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B50C5D9BCB00AEA51A /* NSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53EB0976075200DA0954 /* NSOutlineView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B60C5D9BCB00AEA51A /* NSRulerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53ED0976075200DA0954 /* NSRulerView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B70C5D9BCB00AEA51A /* NSRulerMarker.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53EF0976075200DA0954 /* NSRulerMarker.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B80C5D9BCB00AEA51A /* NSToolTipWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53F10976075200DA0954 /* NSToolTipWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9B90C5D9BCB00AEA51A /* NSWindowAnimationContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53F30976075200DA0954 /* NSWindowAnimationContext.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9BA0C5D9BCB00AEA51A /* NSMeasurementUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53F50976075200DA0954 /* NSMeasurementUnit.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9BB0C5D9BCB00AEA51A /* NSWindow-Drag.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B53F70976075200DA0954 /* NSWindow-Drag.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9BC0C5D9BCB00AEA51A /* NSNibOutletConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55180976075300DA0954 /* NSNibOutletConnector.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9BD0C5D9BCB00AEA51A /* NSNibControlConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B551A0976075300DA0954 /* NSNibControlConnector.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9BE0C5D9BCB00AEA51A /* NSNibConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B551C0976075300DA0954 /* NSNibConnector.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9BF0C5D9BCB00AEA51A /* NSNibLoading.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B551E0976075300DA0954 /* NSNibLoading.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9C00C5D9BCB00AEA51A /* NSNibHelpConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55260976075300DA0954 /* NSNibHelpConnector.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9C10C5D9BCB00AEA51A /* NSColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55450976075300DA0954 /* NSColor.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9C70C5D9BCB00AEA51A /* NSColor_catalog.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55510976075300DA0954 /* NSColor_catalog.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9C80C5D9BCB00AEA51A /* NSTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B556A0976075300DA0954 /* NSTextView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9C90C5D9BCB00AEA51A /* NSTextContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B556C0976075300DA0954 /* NSTextContainer.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9CA0C5D9BCB00AEA51A /* NSTextStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B556E0976075300DA0954 /* NSTextStorage.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9CB0C5D9BCB00AEA51A /* NSTextStorage_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55700976075300DA0954 /* NSTextStorage_concrete.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9CC0C5D9BCB00AEA51A /* NSLayoutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55720976075300DA0954 /* NSLayoutManager.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9CD0C5D9BCB00AEA51A /* NSTypesetter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55740976075300DA0954 /* NSTypesetter.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9CE0C5D9BCB00AEA51A /* NSRangeArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55760976075300DA0954 /* NSRangeArray.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9CF0C5D9BCB00AEA51A /* NSSecureTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55780976075300DA0954 /* NSSecureTextView.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D00C5D9BCB00AEA51A /* NSSecureLayoutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B557A0976075300DA0954 /* NSSecureLayoutManager.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D10C5D9BCB00AEA51A /* NSTextTab.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B557C0976075300DA0954 /* NSTextTab.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D20C5D9BCB00AEA51A /* NSEvent_mouse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55990976075300DA0954 /* NSEvent_mouse.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D30C5D9BCB00AEA51A /* NSEvent_keyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B559B0976075300DA0954 /* NSEvent_keyboard.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D40C5D9BCB00AEA51A /* NSEvent_periodic.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B559D0976075300DA0954 /* NSEvent_periodic.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D50C5D9BCB00AEA51A /* NSEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B559F0976075300DA0954 /* NSEvent.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D60C5D9BCB00AEA51A /* NSEvent_CoreGraphics.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55A10976075300DA0954 /* NSEvent_CoreGraphics.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D70C5D9BCB00AEA51A /* CGContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55B40976075300DA0954 /* CGContext.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D80C5D9BCB00AEA51A /* CGGeometry.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55B60976075300DA0954 /* CGGeometry.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9D90C5D9BCB00AEA51A /* CGAffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55B80976075300DA0954 /* CGAffineTransform.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9DA0C5D9BCB00AEA51A /* CGFont.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55BA0976075300DA0954 /* CGFont.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9DB0C5D9BCB00AEA51A /* O2GraphicsState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55BC0976075300DA0954 /* O2GraphicsState.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9DD0C5D9BCB00AEA51A /* CGWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55C20976075300DA0954 /* CGWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9DE0C5D9BCB00AEA51A /* CGEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55C40976075300DA0954 /* CGEvent.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9DF0C5D9BCB00AEA51A /* NSColorPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55E10976075300DA0954 /* NSColorPicker.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E00C5D9BCB00AEA51A /* NSColorPickerColorList.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55E30976075300DA0954 /* NSColorPickerColorList.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E10C5D9BCB00AEA51A /* NSBrowserCellColorList.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55E50976075300DA0954 /* NSBrowserCellColorList.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E20C5D9BCB00AEA51A /* NSColorPickerSliders.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B55E70976075300DA0954 /* NSColorPickerSliders.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E30C5D9BCB00AEA51A /* Win32Cursor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B560A0976075300DA0954 /* Win32Cursor.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E60C5D9BCB00AEA51A /* Win32DeviceContextPrinter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56100976075300DA0954 /* Win32DeviceContextPrinter.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E70C5D9BCB00AEA51A /* Win32DeviceContextWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56120976075300DA0954 /* Win32DeviceContextWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E80C5D9BCB00AEA51A /* Win32Display.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56140976075300DA0954 /* Win32Display.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9E90C5D9BCB00AEA51A /* Win32Event.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56160976075300DA0954 /* Win32Event.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9EA0C5D9BCB00AEA51A /* Win32Font.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56180976075400DA0954 /* Win32Font.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9EC0C5D9BCB00AEA51A /* Win32Window.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56200976075400DA0954 /* Win32Window.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9EF0C5D9BCB00AEA51A /* Win32RunningCopyPipe.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56260976075400DA0954 /* Win32RunningCopyPipe.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F00C5D9BCB00AEA51A /* Win32EventInputSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56280976075400DA0954 /* Win32EventInputSource.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F10C5D9BCB00AEA51A /* Win32Workspace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B562C0976075400DA0954 /* Win32Workspace.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F20C5D9BCB00AEA51A /* NSSavePanel-Win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B562E0976075400DA0954 /* NSSavePanel-Win32.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F30C5D9BCB00AEA51A /* NSOpenPanel-Win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56300976075400DA0954 /* NSOpenPanel-Win32.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F50C5D9BCB00AEA51A /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56620976075400DA0954 /* dllmain.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F60C5D9BCB00AEA51A /* Win32DraggingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B566B0976075400DA0954 /* Win32DraggingManager.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F70C5D9BCB00AEA51A /* Win32DragSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B566D0976075400DA0954 /* Win32DragSession.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F80C5D9BCB00AEA51A /* Win32DropPasteboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B566F0976075400DA0954 /* Win32DropPasteboard.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9F90C5D9BCB00AEA51A /* Win32FORMATETC.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56710976075400DA0954 /* Win32FORMATETC.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9FA0C5D9BCB00AEA51A /* Win32GeneralPasteboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56730976075400DA0954 /* Win32GeneralPasteboard.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9FB0C5D9BCB00AEA51A /* Win32IDataObjectClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56750976075400DA0954 /* Win32IDataObjectClient.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9FC0C5D9BCB00AEA51A /* Win32IDataObjectServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56770976075400DA0954 /* Win32IDataObjectServer.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9FD0C5D9BCB00AEA51A /* Win32IDropSourceServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56790976075400DA0954 /* Win32IDropSourceServer.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9FE0C5D9BCB00AEA51A /* Win32IDropTargetServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B567B0976075400DA0954 /* Win32IDropTargetServer.m */; settings = {ATTRIBUTES = (); }; }; - FE01A9FF0C5D9BCB00AEA51A /* Win32IEnumFORMATETCServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B567D0976075400DA0954 /* Win32IEnumFORMATETCServer.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA000C5D9BCB00AEA51A /* Win32IStreamClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B567F0976075400DA0954 /* Win32IStreamClient.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA010C5D9BCB00AEA51A /* Win32IUnknownServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56810976075400DA0954 /* Win32IUnknownServer.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA020C5D9BCB00AEA51A /* Win32Pasteboard.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56830976075400DA0954 /* Win32Pasteboard.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA030C5D9BCB00AEA51A /* Win32TypesAndOwner.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56850976075400DA0954 /* Win32TypesAndOwner.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA040C5D9BCB00AEA51A /* Win32Window-Drag.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56870976075400DA0954 /* Win32Window-Drag.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA050C5D9BCB00AEA51A /* NSDragView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56890976075400DA0954 /* NSDragView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA060C5D9BCB00AEA51A /* NSOpenGLContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56B20976075400DA0954 /* NSOpenGLContext.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA070C5D9BCB00AEA51A /* NSOpenGLPixelFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56B40976075400DA0954 /* NSOpenGLPixelFormat.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA080C5D9BCB00AEA51A /* NSOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56B60976075400DA0954 /* NSOpenGLView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA090C5D9BCB00AEA51A /* NSRichTextReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56C50976075400DA0954 /* NSRichTextReader.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA0A0C5D9BCB00AEA51A /* NSRichTextWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56C70976075400DA0954 /* NSRichTextWriter.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA0B0C5D9BCB00AEA51A /* NSMainMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56D40976075400DA0954 /* NSMainMenuView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA0C0C5D9BCB00AEA51A /* NSMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56D60976075400DA0954 /* NSMenu.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA0D0C5D9BCB00AEA51A /* NSMenuItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56D80976075400DA0954 /* NSMenuItem.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA0E0C5D9BCB00AEA51A /* NSMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56DA0976075400DA0954 /* NSMenuView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA0F0C5D9BCB00AEA51A /* NSMenuWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56DC0976075400DA0954 /* NSMenuWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA100C5D9BCB00AEA51A /* NSOverflowMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56DE0976075400DA0954 /* NSOverflowMenuView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA110C5D9BCB00AEA51A /* NSSubmenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56E00976075400DA0954 /* NSSubmenuView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA120C5D9BCB00AEA51A /* NSKeyboardBindingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B56FE0976075400DA0954 /* NSKeyboardBindingManager.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA130C5D9BCB00AEA51A /* NSKeyboardBinding.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B57000976075400DA0954 /* NSKeyboardBinding.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA150C5D9BCB00AEA51A /* NSToolbar.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B57120976075400DA0954 /* NSToolbar.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA170C5D9BCB00AEA51A /* NSToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B57160976075400DA0954 /* NSToolbarItem.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA180C5D9BCB00AEA51A /* NSToolbarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B57180976075400DA0954 /* NSToolbarView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA1A0C5D9BCB00AEA51A /* NSToolbarCustomizationPalette.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B571C0976075400DA0954 /* NSToolbarCustomizationPalette.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA1B0C5D9BCB00AEA51A /* NSToolbarCustomizationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B571E0976075400DA0954 /* NSToolbarCustomizationView.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA1E0C5D9BCB00AEA51A /* NSDrawer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B57480976075500DA0954 /* NSDrawer.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA1F0C5D9BCB00AEA51A /* NSDrawerWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B574A0976075500DA0954 /* NSDrawerWindow.m */; settings = {ATTRIBUTES = (); }; }; - FE01AA200C5D9BCB00AEA51A /* O2TIFFImageDirectory.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E14EC6609A3C40F009C8693 /* O2TIFFImageDirectory.m */; }; - FE01AA210C5D9BCB00AEA51A /* O2Decoder_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E14EC6809A3C40F009C8693 /* O2Decoder_TIFF.m */; }; - FE01AA220C5D9BCB00AEA51A /* NSIBObjectData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EC4AC360A35D0C200E8D6CA /* NSIBObjectData.m */; }; - FE01AA230C5D9BCB00AEA51A /* NSCustomObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EC4AC680A35D47800E8D6CA /* NSCustomObject.m */; }; - FE01AA240C5D9BCB00AEA51A /* NSWindowTemplate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EC4ACFC0A36613800E8D6CA /* NSWindowTemplate.m */; }; - FE01AA250C5D9BCB00AEA51A /* NSButtonImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EC4ADE50A37294300E8D6CA /* NSButtonImageSource.m */; }; - FE01AA260C5D9BCB00AEA51A /* NSClassSwapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E81CA750A3883660089C666 /* NSClassSwapper.m */; }; - FE01AA270C5D9BCB00AEA51A /* NSCustomResource.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E81CCCF0A39CBE00089C666 /* NSCustomResource.m */; }; - FE01AA280C5D9BCB00AEA51A /* NSCustomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECABDF80A3FA2B700AD7F7B /* NSCustomView.m */; }; - FE01AA2A0C5D9BCB00AEA51A /* NSTextViewSharedData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E404FE60A52FEA900FA9AE5 /* NSTextViewSharedData.m */; }; - FE01AA2B0C5D9BCB00AEA51A /* NSMutableAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = FE56BA030B1221330046B7D9 /* NSMutableAttributedString.m */; }; - FE01AA2C0C5D9BCB00AEA51A /* NSMutableParagraphStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6466E20B2C611D00B302B0 /* NSMutableParagraphStyle.m */; }; - FE01AA2D0C5D9BCB00AEA51A /* NSAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A101E0B44A201006C03DE /* NSAlert.m */; }; - FE01AA2E0C5D9BCB00AEA51A /* NSArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10290B44A26B006C03DE /* NSArrayController.m */; }; - FE01AA2F0C5D9BCB00AEA51A /* NSBezierPath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10330B44A27C006C03DE /* NSBezierPath.m */; }; - FE01AA300C5D9BCB00AEA51A /* NSColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10450B44A2E5006C03DE /* NSColorSpace.m */; }; - FE01AA310C5D9BCB00AEA51A /* NSController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10590B459984006C03DE /* NSController.m */; }; - FE01AA320C5D9BCB00AEA51A /* NSObjectController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10610B459992006C03DE /* NSObjectController.m */; }; - FE01AA330C5D9BCB00AEA51A /* NSTreeController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10690B4599A3006C03DE /* NSTreeController.m */; }; - FE01AA340C5D9BCB00AEA51A /* NSUserDefaultsController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10710B4599BD006C03DE /* NSUserDefaultsController.m */; }; - FE01AA350C5D9BCB00AEA51A /* NSGlyphGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10C60B45BAC8006C03DE /* NSGlyphGenerator.m */; }; - FE01AA360C5D9BCB00AEA51A /* NSGlyphInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10CE0B45BAE2006C03DE /* NSGlyphInfo.m */; }; - FE01AA370C5D9BCB00AEA51A /* NSHelpManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10D40B45BB0A006C03DE /* NSHelpManager.m */; }; - FE01AA380C5D9BCB00AEA51A /* NSLevelIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10DA0B45BB28006C03DE /* NSLevelIndicator.m */; }; - FE01AA390C5D9BCB00AEA51A /* NSLevelIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10E20B45BB37006C03DE /* NSLevelIndicatorCell.m */; }; - FE01AA3A0C5D9BCB00AEA51A /* NSNib.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10EA0B45BB69006C03DE /* NSNib.m */; }; - FE01AA3B0C5D9BCB00AEA51A /* NSPDFImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10F00B45BC4F006C03DE /* NSPDFImageRep.m */; }; - FE01AA3C0C5D9BCB00AEA51A /* NSPrinter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A10F60B45BC75006C03DE /* NSPrinter.m */; }; - FE01AA3D0C5D9BCB00AEA51A /* NSSearchField.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A11000B45BCA7006C03DE /* NSSearchField.m */; }; - FE01AA3E0C5D9BCB00AEA51A /* NSSearchFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A11060B45BCB5006C03DE /* NSSearchFieldCell.m */; }; - FE01AA3F0C5D9BCB00AEA51A /* NSSegmentedCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A110C0B45BCCB006C03DE /* NSSegmentedCell.m */; }; - FE01AA400C5D9BCB00AEA51A /* NSSegmentedControl.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A11140B45BCD8006C03DE /* NSSegmentedControl.m */; }; - FE01AA410C5D9BCB00AEA51A /* NSShadow.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A111A0B45BD0A006C03DE /* NSShadow.m */; }; - FE01AA420C5D9BCB00AEA51A /* NSSound.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A11220B45C52C006C03DE /* NSSound.m */; }; - FE01AA430C5D9BCB00AEA51A /* NSSpellChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A112E0B45C55D006C03DE /* NSSpellChecker.m */; }; - FE01AA440C5D9BCB00AEA51A /* NSStatusBar.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A113E0B45C58D006C03DE /* NSStatusBar.m */; }; - FE01AA450C5D9BCB00AEA51A /* NSStatusItem.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A11460B45C59A006C03DE /* NSStatusItem.m */; }; - FE01AA460C5D9BCB00AEA51A /* NSTokenField.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A11530B45C65E006C03DE /* NSTokenField.m */; }; - FE01AA470C5D9BCB00AEA51A /* NSTokenFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2A115B0B45C66A006C03DE /* NSTokenFieldCell.m */; }; - FE01AA480C5D9BCB00AEA51A /* O2ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8A80B81239D007EE513 /* O2ColorSpace.m */; }; - FE01AA490C5D9BCB00AEA51A /* O2Context.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8AA0B81239D007EE513 /* O2Context.m */; }; - FE01AA4A0C5D9BCB00AEA51A /* O2DataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8AC0B81239D007EE513 /* O2DataProvider.m */; }; - FE01AA4B0C5D9BCB00AEA51A /* O2Function.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8AE0B81239D007EE513 /* O2Function.m */; }; - FE01AA4C0C5D9BCB00AEA51A /* O2Image.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8B00B81239D007EE513 /* O2Image.m */; }; - FE01AA4D0C5D9BCB00AEA51A /* O2PDFArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8B20B81239D007EE513 /* O2PDFArray.m */; }; - FE01AA4E0C5D9BCB00AEA51A /* O2PDFContentStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8B40B81239D007EE513 /* O2PDFContentStream.m */; }; - FE01AA4F0C5D9BCB00AEA51A /* O2PDFDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8B60B81239D007EE513 /* O2PDFDictionary.m */; }; - FE01AA500C5D9BCB00AEA51A /* O2PDFDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8B80B81239D007EE513 /* O2PDFDocument.m */; }; - FE01AA510C5D9BCB00AEA51A /* O2PDFFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8BA0B81239D007EE513 /* O2PDFFilter.m */; }; - FE01AA520C5D9BCB00AEA51A /* O2PDFFunction_Type2.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8BC0B81239D007EE513 /* O2PDFFunction_Type2.m */; }; - FE01AA530C5D9BCB00AEA51A /* O2PDFFunction_Type3.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8BE0B81239D007EE513 /* O2PDFFunction_Type3.m */; }; - FE01AA540C5D9BCB00AEA51A /* O2PDFObject_Boolean.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8C00B81239D007EE513 /* O2PDFObject_Boolean.m */; }; - FE01AA550C5D9BCB00AEA51A /* O2PDFObject_const.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8C20B81239D007EE513 /* O2PDFObject_const.m */; }; - FE01AA560C5D9BCB00AEA51A /* O2PDFObject_identifier.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8C40B81239D007EE513 /* O2PDFObject_identifier.m */; }; - FE01AA570C5D9BCB00AEA51A /* O2PDFObject_Integer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8C60B81239D007EE513 /* O2PDFObject_Integer.m */; }; - FE01AA580C5D9BCB00AEA51A /* O2PDFObject_Name.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8C80B81239D007EE513 /* O2PDFObject_Name.m */; }; - FE01AA590C5D9BCB00AEA51A /* O2PDFObject_R.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8CA0B81239D007EE513 /* O2PDFObject_R.m */; }; - FE01AA5A0C5D9BCB00AEA51A /* O2PDFObject_Real.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8CC0B81239D007EE513 /* O2PDFObject_Real.m */; }; - FE01AA5B0C5D9BCB00AEA51A /* O2PDFObject.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8CE0B81239D007EE513 /* O2PDFObject.m */; }; - FE01AA5C0C5D9BCB00AEA51A /* O2PDFOperators.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8D00B81239D007EE513 /* O2PDFOperators.m */; }; - FE01AA5D0C5D9BCB00AEA51A /* O2PDFOperatorTable.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8D20B81239D007EE513 /* O2PDFOperatorTable.m */; }; - FE01AA5E0C5D9BCB00AEA51A /* O2PDFPage.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8D40B81239D007EE513 /* O2PDFPage.m */; }; - FE01AA5F0C5D9BCB00AEA51A /* O2PDFScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8D60B81239D007EE513 /* O2PDFScanner.m */; }; - FE01AA600C5D9BCB00AEA51A /* O2PDFStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8D80B81239D007EE513 /* O2PDFStream.m */; }; - FE01AA610C5D9BCB00AEA51A /* O2PDFString.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8DA0B81239D007EE513 /* O2PDFString.m */; }; - FE01AA620C5D9BCB00AEA51A /* O2PDFxref.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8DC0B81239D007EE513 /* O2PDFxref.m */; }; - FE01AA630C5D9BCB00AEA51A /* O2PDFxrefEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8DE0B81239D007EE513 /* O2PDFxrefEntry.m */; }; - FE01AA640C5D9BCB00AEA51A /* O2Shading.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B8E00B81239D007EE513 /* O2Shading.m */; }; - FE01AA650C5D9BCB00AEA51A /* CGImage.m in Sources */ = {isa = PBXBuildFile; fileRef = FE64B9210B8123F1007EE513 /* CGImage.m */; }; - FE01AA660C5D9BCB00AEA51A /* CGColor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AAA0B8B805000853FBB /* CGColor.m */; }; - FE01AA670C5D9BCB00AEA51A /* CGColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AAC0B8B805000853FBB /* CGColorSpace.m */; }; - FE01AA680C5D9BCB00AEA51A /* CGDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AAE0B8B805000853FBB /* CGDataProvider.m */; }; - FE01AA690C5D9BCB00AEA51A /* CGFunction.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AB00B8B805000853FBB /* CGFunction.m */; }; - FE01AA6A0C5D9BCB00AEA51A /* CGLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AB40B8B805000853FBB /* CGLayer.m */; }; - FE01AA6B0C5D9BCB00AEA51A /* CGPath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AB60B8B805000853FBB /* CGPath.m */; }; - FE01AA6C0C5D9BCB00AEA51A /* CGPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AB80B8B805000853FBB /* CGPattern.m */; }; - FE01AA6D0C5D9BCB00AEA51A /* CGShading.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064ABA0B8B805000853FBB /* CGShading.m */; }; - FE01AA6E0C5D9BCB00AEA51A /* O2Color.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064ABC0B8B805000853FBB /* O2Color.m */; }; - FE01AA6F0C5D9BCB00AEA51A /* O2Layer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AC20B8B805000853FBB /* O2Layer.m */; }; - FE01AA700C5D9BCB00AEA51A /* O2Path.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AC40B8B805000853FBB /* O2Path.m */; }; - FE01AA710C5D9BCB00AEA51A /* O2Pattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064AC60B8B805000853FBB /* O2Pattern.m */; }; - FE01AA720C5D9BCB00AEA51A /* O2ImageSource_JPEG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE267E840B8BCC3C0000DDC0 /* O2ImageSource_JPEG.m */; }; - FE01AA730C5D9BCB00AEA51A /* O2ImageSource_PNG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE267E860B8BCC3C0000DDC0 /* O2ImageSource_PNG.m */; }; - FE01AA740C5D9BCB00AEA51A /* O2ImageSource_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE267E880B8BCC3C0000DDC0 /* O2ImageSource_TIFF.m */; }; - FE01AA750C5D9BCB00AEA51A /* O2ImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = FE267E8A0B8BCC3C0000DDC0 /* O2ImageSource.m */; }; - FE01AA760C5D9BCB00AEA51A /* CGBitmapContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE267EB40B8BD2690000DDC0 /* CGBitmapContext.m */; }; - FE01AA770C5D9BCB00AEA51A /* O2BitmapContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE267EB60B8BD2690000DDC0 /* O2BitmapContext.m */; }; - FE01AA780C5D9BCB00AEA51A /* O2MutablePath.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF33C000B93543C00DC0B6F /* O2MutablePath.m */; }; - FE01AA790C5D9BCB00AEA51A /* CGPDFPage.m in Sources */ = {isa = PBXBuildFile; fileRef = FEEF00580B96441800069FD1 /* CGPDFPage.m */; }; - FE01AA7A0C5D9BCB00AEA51A /* NSOpenGLPixelBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6DC16B0BA85BEC0082AC66 /* NSOpenGLPixelBuffer.m */; }; - FE01AA7B0C5D9BCB00AEA51A /* NSDatePicker.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6DC3DD0BA9A6EB0082AC66 /* NSDatePicker.m */; }; - FE01AA7C0C5D9BCB00AEA51A /* NSDatePickerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6DC3EF0BA9A7100082AC66 /* NSDatePickerCell.m */; }; - FE01AA7D0C5D9BCB00AEA51A /* NSGraphicsStyle_uxtheme.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4434030BB9833B00411464 /* NSGraphicsStyle_uxtheme.m */; }; - FE01AA7E0C5D9BCB00AEA51A /* NSGraphicsStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1E86C00BBCA62D0013B968 /* NSGraphicsStyle.m */; }; - FE01AA7F0C5D9BCB00AEA51A /* NSNibBindingConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8BAEC60BC9EA8D0007FACA /* NSNibBindingConnector.m */; }; - FE01AA800C5D9BCB00AEA51A /* NSBinder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8BAF1E0BC9EC680007FACA /* NSBinder.m */; }; - FE01AA810C5D9BCB00AEA51A /* NSKVOBinder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8BAF200BC9EC680007FACA /* NSKVOBinder.m */; }; - FE01AA820C5D9BCB00AEA51A /* NSObject+BindingSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8BAF220BC9EC680007FACA /* NSObject+BindingSupport.m */; }; - FE01AA830C5D9BCB00AEA51A /* NSAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = FED310DE0BCC027200552615 /* NSAnimation.m */; }; - FE01AA840C5D9BCB00AEA51A /* NSViewAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = FED310E00BCC027200552615 /* NSViewAnimation.m */; }; - FE01AA850C5D9BCB00AEA51A /* NSFontDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4BDC0A0BCD40C600E19685 /* NSFontDescriptor.m */; }; - FE01AA860C5D9BCB00AEA51A /* NSSegmentItem.m in Sources */ = {isa = PBXBuildFile; fileRef = FED166D50BE502AD00BF9889 /* NSSegmentItem.m */; }; - FE01AA870C5D9BCB00AEA51A /* NSTextBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = FED167A50BE57EB300BF9889 /* NSTextBlock.m */; }; - FE01AA880C5D9BCB00AEA51A /* NSTextTable.m in Sources */ = {isa = PBXBuildFile; fileRef = FED167A70BE57EB300BF9889 /* NSTextTable.m */; }; - FE01AA890C5D9BCB00AEA51A /* NSTextTableBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = FED167A90BE57EB300BF9889 /* NSTextTableBlock.m */; }; - FE01AA8C0C5D9BCB00AEA51A /* NSAffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = C8E4F5800BFF7A8A0076D5E6 /* NSAffineTransform.m */; }; - FE01AA8D0C5D9BCB00AEA51A /* NSTextList.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7247680C06202B007CBC51 /* NSTextList.m */; }; - FE01AA8E0C5D9BCB00AEA51A /* NSTextAttachmentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7247A50C0622F2007CBC51 /* NSTextAttachmentCell.m */; }; - FE01AA8F0C5D9BCB00AEA51A /* NSTypesetter_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7248500C0676AA007CBC51 /* NSTypesetter_concrete.m */; }; - FE01AA900C5D9BCB00AEA51A /* KTFont.m in Sources */ = {isa = PBXBuildFile; fileRef = FE89AF480C33679100CD21FB /* KTFont.m */; }; - FE01AA920C5D9BCB00AEA51A /* O2DeviceContext_gdi.m in Sources */ = {isa = PBXBuildFile; fileRef = FE57F8D10C46B68C0078FFC1 /* O2DeviceContext_gdi.m */; }; - FE01AA930C5D9BCB00AEA51A /* NSPrintPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = FE57FAB60C47F2010078FFC1 /* NSPrintPanel.m */; }; - FE01AA970C5D9BCB00AEA51A /* NSToolbarCustomizationPalette.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54E30976075300DA0954 /* NSToolbarCustomizationPalette.nib */; }; - FE01AA980C5D9BCB00AEA51A /* NSSplitViewVDimple.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54E70976075300DA0954 /* NSSplitViewVDimple.tiff */; }; - FE01AA990C5D9BCB00AEA51A /* NSHighlightedBrowserCellArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54E90976075300DA0954 /* NSHighlightedBrowserCellArrow.tiff */; }; - FE01AA9A0C5D9BCB00AEA51A /* NSRulerMarkerTab.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54EB0976075300DA0954 /* NSRulerMarkerTab.tiff */; }; - FE01AA9B0C5D9BCB00AEA51A /* NSAlertPanelExclamation.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54ED0976075300DA0954 /* NSAlertPanelExclamation.tiff */; }; - FE01AA9C0C5D9BCB00AEA51A /* NSComboBoxCellDown.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54EF0976075300DA0954 /* NSComboBoxCellDown.tiff */; }; - FE01AA9D0C5D9BCB00AEA51A /* NSRadioButton.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54F10976075300DA0954 /* NSRadioButton.tiff */; }; - FE01AA9E0C5D9BCB00AEA51A /* NSSwitch.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54F30976075300DA0954 /* NSSwitch.tiff */; }; - FE01AA9F0C5D9BCB00AEA51A /* NSHighlightedSwitch.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54F50976075300DA0954 /* NSHighlightedSwitch.tiff */; }; - FE01AAA00C5D9BCB00AEA51A /* NSPopUpButtonCellPopUp.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54F70976075300DA0954 /* NSPopUpButtonCellPopUp.tiff */; }; - FE01AAA10C5D9BCB00AEA51A /* NSPopUpButtonCellPullDown.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54F90976075300DA0954 /* NSPopUpButtonCellPullDown.tiff */; }; - FE01AAA20C5D9BCB00AEA51A /* NSHighlightedRadioButton.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54FB0976075300DA0954 /* NSHighlightedRadioButton.tiff */; }; - FE01AAA40C5D9BCB00AEA51A /* NSSplitViewHDimple.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B54FF0976075300DA0954 /* NSSplitViewHDimple.tiff */; }; - FE01AAA50C5D9BCB00AEA51A /* NSBrowserCellArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B55010976075300DA0954 /* NSBrowserCellArrow.tiff */; }; - FE01AAA70C5D9BCB00AEA51A /* NSMenu.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B55060976075300DA0954 /* NSMenu.plist */; }; - FE01AAAA0C5D9BCB00AEA51A /* NSColorPickerSlidersCMYK.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B55F80976075300DA0954 /* NSColorPickerSlidersCMYK.tiff */; }; - FE01AAAB0C5D9BCB00AEA51A /* NSColorPickerColorList.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B55FA0976075300DA0954 /* NSColorPickerColorList.tiff */; }; - FE01AAAC0C5D9BCB00AEA51A /* NSColorPickerSlidersHSB.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B55FC0976075300DA0954 /* NSColorPickerSlidersHSB.tiff */; }; - FE01AAAD0C5D9BCB00AEA51A /* NSColorPickerSlidersRGB.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B55FE0976075300DA0954 /* NSColorPickerSlidersRGB.tiff */; }; - FE01AAAE0C5D9BCB00AEA51A /* NSColorPickerSlidersGray.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B56000976075300DA0954 /* NSColorPickerSlidersGray.tiff */; }; - FE01AAAF0C5D9BCB00AEA51A /* NSMenuArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B56F20976075400DA0954 /* NSMenuArrow.tiff */; }; - FE01AAB00C5D9BCB00AEA51A /* NSMenuViewDoubleRightArrow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B56F40976075400DA0954 /* NSMenuViewDoubleRightArrow.tiff */; }; - FE01AAB10C5D9BCB00AEA51A /* NSMenuViewDoubleRightArrowGray.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B56F60976075400DA0954 /* NSMenuViewDoubleRightArrowGray.tiff */; }; - FE01AAB20C5D9BCB00AEA51A /* StandardKeyBindings.keybindings in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B57080976075400DA0954 /* StandardKeyBindings.keybindings */; }; - FE01AAB30C5D9BCB00AEA51A /* NSToolbarShowFontsItem.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B573A0976075500DA0954 /* NSToolbarShowFontsItem.tiff */; }; - FE01AAB40C5D9BCB00AEA51A /* NSToolbarCustomizeToolbarItem.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B573C0976075500DA0954 /* NSToolbarCustomizeToolbarItem.tiff */; }; - FE01AAB50C5D9BCB00AEA51A /* NSToolbarShowColorsItem.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B573E0976075500DA0954 /* NSToolbarShowColorsItem.tiff */; }; - FE01AAB60C5D9BCB00AEA51A /* NSToolbarPrintItem.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 6E2B57400976075500DA0954 /* NSToolbarPrintItem.tiff */; }; - FE01AAB70C5D9BCB00AEA51A /* NSButtonCell_disclosure_highlighted.tif in Resources */ = {isa = PBXBuildFile; fileRef = FE86887C0BC3FFA4009F515C /* NSButtonCell_disclosure_highlighted.tif */; }; - FE01AAB80C5D9BCB00AEA51A /* NSButtonCell_disclosure_normal.tif in Resources */ = {isa = PBXBuildFile; fileRef = FE86887D0BC3FFA4009F515C /* NSButtonCell_disclosure_normal.tif */; }; - FE01AAB90C5D9BCB00AEA51A /* NSButtonCell_disclosure_selected.tif in Resources */ = {isa = PBXBuildFile; fileRef = FE86887E0BC3FFA4009F515C /* NSButtonCell_disclosure_selected.tif */; }; - FE01AABA0C5D9BCB00AEA51A /* defaultBindingOptions.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8B239A20BF8EEB500CA33AF /* defaultBindingOptions.plist */; }; - FE01AABC0C5D9BCB00AEA51A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6E2B575B0976075500DA0954 /* Foundation.framework */; }; - FE051BDB1221A2F40097BA92 /* O2Font_freetype.h in Headers */ = {isa = PBXBuildFile; fileRef = FE051BD91221A2F40097BA92 /* O2Font_freetype.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE069E231245A4B80040F165 /* O2GlyphStencil.h in Headers */ = {isa = PBXBuildFile; fileRef = FE069E211245A4B80040F165 /* O2GlyphStencil.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE069E241245A4B90040F165 /* O2GlyphStencil.m in Sources */ = {isa = PBXBuildFile; fileRef = FE069E221245A4B80040F165 /* O2GlyphStencil.m */; }; - FE08C3230DDF299800B3169A /* NSColor_CGColor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08C3210DDF299800B3169A /* NSColor_CGColor.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE08C3240DDF299800B3169A /* NSColor_CGColor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE08C3220DDF299800B3169A /* NSColor_CGColor.m */; }; - FE09AF3513FCC56600B53D10 /* NSSpellProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FE09AF3413FCC56600B53D10 /* NSSpellProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE14436A1256D43D007FE685 /* _NSControllerArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1443681256D43D007FE685 /* _NSControllerArray.h */; }; - FE14436B1256D43D007FE685 /* _NSControllerArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1443691256D43D007FE685 /* _NSControllerArray.m */; }; - FE1707FE1260A1E000D18E9E /* NSEnterFullScreenTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE1707FC1260A1E000D18E9E /* NSEnterFullScreenTemplate.pdf */; }; - FE1CEA6F0C8F12F800184630 /* opengl_dll.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1CEA6B0C8F12F800184630 /* opengl_dll.h */; }; - FE1CEA700C8F12F800184630 /* opengl_dll.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1CEA6C0C8F12F800184630 /* opengl_dll.m */; }; - FE20C20E11892436006F01BA /* CAAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C20711892436006F01BA /* CAAnimation.m */; }; - FE20C20F11892436006F01BA /* CIAffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C20811892436006F01BA /* CIAffineTransform.m */; }; - FE20C21011892436006F01BA /* CIColor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C20911892436006F01BA /* CIColor.m */; }; - FE20C21111892436006F01BA /* CIContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C20A11892436006F01BA /* CIContext.m */; }; - FE20C21211892436006F01BA /* CIFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C20B11892436006F01BA /* CIFilter.m */; }; - FE20C21311892436006F01BA /* CIImage.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C20C11892436006F01BA /* CIImage.m */; }; - FE20C21411892436006F01BA /* CIVector.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C20D11892436006F01BA /* CIVector.m */; }; - FE20C245118924A4006F01BA /* NSAccessibility.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20C240118924A4006F01BA /* NSAccessibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE20C246118924A4006F01BA /* NSAccessibility.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C241118924A4006F01BA /* NSAccessibility.m */; }; - FE20C247118924A4006F01BA /* NSCIImageRep.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20C242118924A4006F01BA /* NSCIImageRep.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE20C248118924A4006F01BA /* NSCIImageRep.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C243118924A4006F01BA /* NSCIImageRep.m */; }; - FE20C249118924A4006F01BA /* NSErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20C244118924A4006F01BA /* NSErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE20C26711892517006F01BA /* NSNibAXRelationshipConnector.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20C26511892517006F01BA /* NSNibAXRelationshipConnector.h */; }; - FE20C26811892517006F01BA /* NSNibAXRelationshipConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = FE20C26611892517006F01BA /* NSNibAXRelationshipConnector.m */; }; - FE25FF620EE58712009C91B1 /* O2Font.h in Headers */ = {isa = PBXBuildFile; fileRef = FE25FF600EE58712009C91B1 /* O2Font.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE25FF630EE58712009C91B1 /* O2Font.m in Sources */ = {isa = PBXBuildFile; fileRef = FE25FF610EE58712009C91B1 /* O2Font.m */; }; - FE2752F11230201B00BD6643 /* CGLPixelSurface.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2752F01230201B00BD6643 /* CGLPixelSurface.m */; }; - FE2759A412341F3A00BD6643 /* O2Context_distill.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2759A312341F3A00BD6643 /* O2Context_distill.m */; }; - FE2C93D414035649002E0CB4 /* NSSpellingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2C93D214035649002E0CB4 /* NSSpellingViewController.h */; }; - FE2C93D514035649002E0CB4 /* NSSpellingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2C93D314035649002E0CB4 /* NSSpellingViewController.m */; }; - FE311FA80CCC430200EBD696 /* KTFont_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FE311FA40CCC430200EBD696 /* KTFont_gdi.h */; }; - FE311FA90CCC430200EBD696 /* KTFont_gdi.m in Sources */ = {isa = PBXBuildFile; fileRef = FE311FA50CCC430200EBD696 /* KTFont_gdi.m */; }; - FE337FCA0EE77A6C00D4A751 /* CTFont.m in Sources */ = {isa = PBXBuildFile; fileRef = FE337FC90EE77A6C00D4A751 /* CTFont.m */; }; - FE33952D0DB92D25009AB3E0 /* O2Blending.h in Headers */ = {isa = PBXBuildFile; fileRef = FE33952C0DB92D25009AB3E0 /* O2Blending.h */; }; - FE3395590DB930F4009AB3E0 /* O2Context_builtin.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3395570DB930F4009AB3E0 /* O2Context_builtin.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE33955A0DB930F4009AB3E0 /* O2Context_builtin.m in Sources */ = {isa = PBXBuildFile; fileRef = FE3395580DB930F4009AB3E0 /* O2Context_builtin.m */; }; - FE34FBC80D6F24A5008D2C1A /* O2ClipPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = FE34FBC60D6F24A5008D2C1A /* O2ClipPhase.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE34FBC90D6F24A5008D2C1A /* O2ClipPhase.m in Sources */ = {isa = PBXBuildFile; fileRef = FE34FBC70D6F24A5008D2C1A /* O2ClipPhase.m */; }; - FE38749C0F4333D600EC9F00 /* NSToolbarItemView.h in Headers */ = {isa = PBXBuildFile; fileRef = FE38749A0F4333D600EC9F00 /* NSToolbarItemView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE38749D0F4333D600EC9F00 /* NSToolbarItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE38749B0F4333D600EC9F00 /* NSToolbarItemView.m */; }; - FE39BE5F12013CFD00A80A71 /* NSSearchGlass.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE39BE5D12013CFD00A80A71 /* NSSearchGlass.pdf */; }; - FE39BECC1201DD3A00A80A71 /* NSStopProgressFreestandingTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE39BECA1201DD3A00A80A71 /* NSStopProgressFreestandingTemplate.pdf */; }; - FE39C32A1203304700A80A71 /* O2ClipState.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C3291203304700A80A71 /* O2ClipState.m */; }; - FE39C3311203305900A80A71 /* O2ClipState.h in Headers */ = {isa = PBXBuildFile; fileRef = FE39C3301203305900A80A71 /* O2ClipState.h */; }; - FE39C69C1203D72000A80A71 /* _NSManagedProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = FE39C6981203D72000A80A71 /* _NSManagedProxy.h */; }; - FE39C69E1203D72000A80A71 /* NSPersistentDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FE39C69A1203D72000A80A71 /* NSPersistentDocument.h */; }; - FE3C8551108779540018252A /* O2AffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3C854D108779540018252A /* O2AffineTransform.h */; }; - FE3C8552108779540018252A /* O2AffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = FE3C854E108779540018252A /* O2AffineTransform.m */; }; - FE3C8553108779540018252A /* O2Geometry.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3C854F108779540018252A /* O2Geometry.h */; }; - FE3C8554108779540018252A /* O2Geometry.m in Sources */ = {isa = PBXBuildFile; fileRef = FE3C8550108779540018252A /* O2Geometry.m */; }; - FE41B85912BEA2C800ED6C10 /* CATransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = FE41B85812BEA2C800ED6C10 /* CATransaction.m */; }; - FE43BE2111FFBAAD00119833 /* O2PDFBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43BE1F11FFBAAC00119833 /* O2PDFBlock.h */; }; - FE43BE2211FFBAAD00119833 /* O2PDFBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43BE2011FFBAAC00119833 /* O2PDFBlock.m */; }; - FE4478081039F64E00ECD6A6 /* NSOpenGL.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4478071039F64E00ECD6A6 /* NSOpenGL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE44BA0C11E9807C00762BF1 /* NSActionTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BA0611E9807C00762BF1 /* NSActionTemplate.pdf */; }; - FE44BA0E11E9807C00762BF1 /* NSAddTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BA0811E9807C00762BF1 /* NSAddTemplate.pdf */; }; - FE44BA1011E9807C00762BF1 /* NSRemoveTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BA0A11E9807C00762BF1 /* NSRemoveTemplate.pdf */; }; - FE44BA3411E982B500762BF1 /* NSUser.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BA3211E982B500762BF1 /* NSUser.pdf */; }; - FE44BB2811EA2C9100762BF1 /* NSLockLockedTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BB2611EA2C9100762BF1 /* NSLockLockedTemplate.pdf */; }; - FE44BB3411EA30F500762BF1 /* NSLockUnlockedTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BB3211EA30F500762BF1 /* NSLockUnlockedTemplate.pdf */; }; - FE44BCFE11EB928700762BF1 /* NSAdvanced.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BCFC11EB928700762BF1 /* NSAdvanced.pdf */; }; - FE44BDD311EBA07A00762BF1 /* O2ImageSource_ICNS.h in Headers */ = {isa = PBXBuildFile; fileRef = FE44BDD111EBA07A00762BF1 /* O2ImageSource_ICNS.h */; }; - FE44BDD411EBA07A00762BF1 /* O2ImageSource_ICNS.m in Sources */ = {isa = PBXBuildFile; fileRef = FE44BDD211EBA07A00762BF1 /* O2ImageSource_ICNS.m */; }; - FE44BF2911EC0A8F00762BF1 /* NSPreferencesGeneral.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE44BF2711EC0A8F00762BF1 /* NSPreferencesGeneral.pdf */; }; - FE45EDCC0DC2407E00F49290 /* CGImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = FE45EDCB0DC2407E00F49290 /* CGImageSource.m */; }; - FE463D65102CAE3500B265D6 /* NSAnimationContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463D63102CAE3500B265D6 /* NSAnimationContext.h */; }; - FE463D66102CAE3500B265D6 /* NSAnimationContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463D64102CAE3500B265D6 /* NSAnimationContext.m */; }; - FE463D6F102CAEF500B265D6 /* NSCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463D6D102CAEF500B265D6 /* NSCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463D70102CAEF500B265D6 /* NSCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463D6E102CAEF500B265D6 /* NSCollectionView.m */; }; - FE463D85102CAF4A00B265D6 /* NSDockTile.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463D83102CAF4A00B265D6 /* NSDockTile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463D86102CAF4A00B265D6 /* NSDockTile.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463D84102CAF4A00B265D6 /* NSDockTile.m */; }; - FE463ED4102D0F9D00B265D6 /* NSPathCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463EC4102D0F9C00B265D6 /* NSPathCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463ED5102D0F9D00B265D6 /* NSPathCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463EC5102D0F9C00B265D6 /* NSPathCell.m */; }; - FE463ED6102D0F9D00B265D6 /* NSPathComponentCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463EC6102D0F9C00B265D6 /* NSPathComponentCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463ED7102D0F9D00B265D6 /* NSPathComponentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463EC7102D0F9C00B265D6 /* NSPathComponentCell.m */; }; - FE463ED8102D0F9D00B265D6 /* NSPathControl.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463EC8102D0F9C00B265D6 /* NSPathControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463ED9102D0F9D00B265D6 /* NSPathControl.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463EC9102D0F9D00B265D6 /* NSPathControl.m */; }; - FE463EDA102D0F9D00B265D6 /* NSPredicateEditor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463ECA102D0F9D00B265D6 /* NSPredicateEditor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463EDB102D0F9D00B265D6 /* NSPredicateEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463ECB102D0F9D00B265D6 /* NSPredicateEditor.m */; }; - FE463EDC102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463ECC102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463EDD102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463ECD102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.m */; }; - FE463EDE102D0F9D00B265D6 /* NSRuleEditor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463ECE102D0F9D00B265D6 /* NSRuleEditor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463EDF102D0F9D00B265D6 /* NSRuleEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463ECF102D0F9D00B265D6 /* NSRuleEditor.m */; }; - FE463EE0102D0F9D00B265D6 /* NSTreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463ED0102D0F9D00B265D6 /* NSTreeNode.h */; }; - FE463EE1102D0F9D00B265D6 /* NSTreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463ED1102D0F9D00B265D6 /* NSTreeNode.m */; }; - FE463EE2102D0F9D00B265D6 /* NSViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463ED2102D0F9D00B265D6 /* NSViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463EE3102D0F9D00B265D6 /* NSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463ED3102D0F9D00B265D6 /* NSViewController.m */; }; - FE49B9A71030C49300ADCC6C /* NSCollectionViewItem.h in Headers */ = {isa = PBXBuildFile; fileRef = FE49B9A51030C49300ADCC6C /* NSCollectionViewItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE49B9A81030C49300ADCC6C /* NSCollectionViewItem.m in Sources */ = {isa = PBXBuildFile; fileRef = FE49B9A61030C49300ADCC6C /* NSCollectionViewItem.m */; }; - FE4A25BB1222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4A25B91222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.h */; }; - FE4A25BC1222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4A25BA1222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.m */; }; - FE4A25C91222C4E9009058C1 /* NSRuleEditorButtonCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4A25C51222C4E9009058C1 /* NSRuleEditorButtonCell.h */; }; - FE4A25CB1222C4E9009058C1 /* NSRuleEditorViewSliceRow.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4A25C71222C4E9009058C1 /* NSRuleEditorViewSliceRow.h */; }; - FE4A25CC1222C4E9009058C1 /* NSRuleEditorViewSliceRow.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4A25C81222C4E9009058C1 /* NSRuleEditorViewSliceRow.m */; }; - FE572D8F0CA0809500FB3E79 /* O2ImageSource_BMP.h in Headers */ = {isa = PBXBuildFile; fileRef = FE572D8B0CA0809500FB3E79 /* O2ImageSource_BMP.h */; }; - FE572D900CA0809500FB3E79 /* O2ImageSource_BMP.m in Sources */ = {isa = PBXBuildFile; fileRef = FE572D8C0CA0809500FB3E79 /* O2ImageSource_BMP.m */; }; - FE58787112694A2D009B9EDF /* O2argb8u.h in Headers */ = {isa = PBXBuildFile; fileRef = FE58787012694A2D009B9EDF /* O2argb8u.h */; }; - FE58788112694AD2009B9EDF /* O2argb32f.h in Headers */ = {isa = PBXBuildFile; fileRef = FE58788012694AD2009B9EDF /* O2argb32f.h */; }; - FE58790C12695C95009B9EDF /* O2argb8u.m in Sources */ = {isa = PBXBuildFile; fileRef = FE58790B12695C95009B9EDF /* O2argb8u.m */; }; - FE58791512695E21009B9EDF /* O2argb32f.m in Sources */ = {isa = PBXBuildFile; fileRef = FE58791412695E21009B9EDF /* O2argb32f.m */; }; - FE587954126961BD009B9EDF /* O2ClipMask.h in Headers */ = {isa = PBXBuildFile; fileRef = FE587952126961BC009B9EDF /* O2ClipMask.h */; }; - FE587955126961BD009B9EDF /* O2ClipMask.m in Sources */ = {isa = PBXBuildFile; fileRef = FE587953126961BC009B9EDF /* O2ClipMask.m */; }; - FE5C69A10D76039F00098551 /* O2DeviceContext_gdiDIBSection.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C699F0D76039F00098551 /* O2DeviceContext_gdiDIBSection.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C69A20D76039F00098551 /* O2DeviceContext_gdiDIBSection.m in Sources */ = {isa = PBXBuildFile; fileRef = FE5C69A00D76039F00098551 /* O2DeviceContext_gdiDIBSection.m */; }; - FE5F4CA812A860BA00F5F334 /* O2Context_gdi+AppKit.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4CA612A860BA00F5F334 /* O2Context_gdi+AppKit.h */; }; - FE5F4CA912A860BA00F5F334 /* O2Context_gdi+AppKit.m in Sources */ = {isa = PBXBuildFile; fileRef = FE5F4CA712A860BA00F5F334 /* O2Context_gdi+AppKit.m */; }; - FE669C920F12B1A600534F46 /* gif_lib.m in Sources */ = {isa = PBXBuildFile; fileRef = FE669C840F12B1A600534F46 /* gif_lib.m */; }; - FE669C9A0F12B1A600534F46 /* gif_lib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE669C8C0F12B1A600534F46 /* gif_lib.h */; }; - FE66F0060E513AE8006C5796 /* CGImageProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = FE66F0050E513AE8006C5796 /* CGImageProperties.m */; }; - FE6BE4460F446B92007D7F3F /* NSToolbarItemGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6BE4440F446B92007D7F3F /* NSToolbarItemGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE6BE4470F446B92007D7F3F /* NSToolbarItemGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6BE4450F446B92007D7F3F /* NSToolbarItemGroup.m */; }; - FE6D918C101381F600BA6BAD /* NSCellUndoManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6D918A101381F600BA6BAD /* NSCellUndoManager.h */; }; - FE6D918D101381F600BA6BAD /* NSCellUndoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6D918B101381F600BA6BAD /* NSCellUndoManager.m */; }; - FE6EDE340DB797D9005503A1 /* O2Exceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6EDE330DB797D9005503A1 /* O2Exceptions.h */; }; - FE6EE27E0DB91EA8005503A1 /* VGmath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6EE27C0DB91EA8005503A1 /* VGmath.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE6EE28E0DB91FDF005503A1 /* O2Surface.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6EE28C0DB91FDF005503A1 /* O2Surface.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE6EE28F0DB91FDF005503A1 /* O2Surface.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6EE28D0DB91FDF005503A1 /* O2Surface.m */; }; - FE6EE2E50DB92B11005503A1 /* VGPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6EE2E30DB92B11005503A1 /* VGPath.h */; }; - FE6EE2E60DB92B11005503A1 /* VGPath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6EE2E40DB92B11005503A1 /* VGPath.m */; }; - FE71DA7111F7403200E6F801 /* CIBloom.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71DA7011F7403200E6F801 /* CIBloom.m */; }; - FE71DA9311F7433000E6F801 /* CIBoxBlur.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71DA9111F7433000E6F801 /* CIBoxBlur.m */; }; - FE71DA9411F7433000E6F801 /* CILinearGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71DA9211F7433000E6F801 /* CILinearGradient.m */; }; - FE71E94011FA88BF00E6F801 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = FE71E83711FA88BE00E6F801 /* InfoPlist.strings */; }; - FE71E94111FA88BF00E6F801 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = FE71E83911FA88BF00E6F801 /* Info.plist */; }; - FE71E94411FA88BF00E6F801 /* O2Font+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71E83C11FA88BF00E6F801 /* O2Font+PDF.h */; }; - FE71E94511FA88BF00E6F801 /* O2PDFFunction_Type4.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71E83D11FA88BF00E6F801 /* O2PDFFunction_Type4.h */; }; - FE71E94611FA88BF00E6F801 /* O2PDFFunction_Type4.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71E83E11FA88BF00E6F801 /* O2PDFFunction_Type4.m */; }; - FE71EF5311FBCABE00E6F801 /* O2Encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71EF5111FBCABE00E6F801 /* O2Encoding.h */; }; - FE71EF5411FBCABE00E6F801 /* O2Encoding.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71EF5211FBCABE00E6F801 /* O2Encoding.m */; }; - FE71F07C11FC72A500E6F801 /* O2PDFCharWidths.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F07A11FC72A500E6F801 /* O2PDFCharWidths.h */; }; - FE71F07D11FC72A500E6F801 /* O2PDFCharWidths.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71F07B11FC72A500E6F801 /* O2PDFCharWidths.m */; }; - FE71F1CE11FCB9B900E6F801 /* O2PDFFunction_Type0.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F1CC11FCB9B900E6F801 /* O2PDFFunction_Type0.h */; }; - FE71F1CF11FCB9B900E6F801 /* O2PDFFunction_Type0.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71F1CD11FCB9B900E6F801 /* O2PDFFunction_Type0.m */; }; - FE71F25611FD21EE00E6F801 /* O2PDFFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F25411FD21EE00E6F801 /* O2PDFFont.h */; }; - FE71F25711FD21EE00E6F801 /* O2PDFFont.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71F25511FD21EE00E6F801 /* O2PDFFont.m */; }; - FE71F3C511FD40B800E6F801 /* O2TTFDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F3C311FD40B800E6F801 /* O2TTFDecoder.h */; }; - FE71F3C611FD40B800E6F801 /* O2TTFDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71F3C411FD40B800E6F801 /* O2TTFDecoder.m */; }; - FE74968812BB1D4F008DBFCB /* NSViewBackingLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74968612BB1D4F008DBFCB /* NSViewBackingLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE74968912BB1D4F008DBFCB /* NSViewBackingLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE74968712BB1D4F008DBFCB /* NSViewBackingLayer.m */; }; - FE7ABEBE0DC2C9BA0060D15B /* CGPDFDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7ABEBD0DC2C9BA0060D15B /* CGPDFDocument.m */; }; - FE7EF28B1211095500B2B398 /* NSTokenAttachmentCell.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7EF2891211095500B2B398 /* NSTokenAttachmentCell.h */; }; - FE7EF28C1211095500B2B398 /* NSTokenAttachmentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7EF28A1211095500B2B398 /* NSTokenAttachmentCell.m */; }; - FE7EFA89121335CB00B2B398 /* NSInvalidDataFreestandingTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FE7EFA87121335CB00B2B398 /* NSInvalidDataFreestandingTemplate.pdf */; }; - FE82867F0D34727900F7489F /* NSApplicationIcon.tiff in Resources */ = {isa = PBXBuildFile; fileRef = FE8286770D34727900F7489F /* NSApplicationIcon.tiff */; }; - FE8286800D34727900F7489F /* NSSystemInfoPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8286780D34727900F7489F /* NSSystemInfoPanel.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE8286810D34727900F7489F /* NSSystemInfoPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8286790D34727900F7489F /* NSSystemInfoPanel.m */; }; - FE8C01CE10C59ADA00FE4072 /* O2ImageDestination.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8C01CC10C59ADA00FE4072 /* O2ImageDestination.h */; }; - FE8C01CF10C59ADA00FE4072 /* O2ImageDestination.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8C01CD10C59ADA00FE4072 /* O2ImageDestination.m */; }; - FE8C01D810C59B0600FE4072 /* O2Encoder_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8C01D610C59B0600FE4072 /* O2Encoder_TIFF.h */; }; - FE8C01D910C59B0600FE4072 /* O2Encoder_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8C01D710C59B0600FE4072 /* O2Encoder_TIFF.m */; }; - FE8D94AB0CE3A6C700AFB060 /* NSControllerSelectionProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8D94A90CE3A6C700AFB060 /* NSControllerSelectionProxy.h */; }; - FE8D94AC0CE3A6C700AFB060 /* NSControllerSelectionProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8D94AA0CE3A6C700AFB060 /* NSControllerSelectionProxy.m */; }; - FE8D95200CE4057300AFB060 /* NSMultipleValueBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8D951E0CE4057300AFB060 /* NSMultipleValueBinder.h */; }; - FE8D95210CE4057300AFB060 /* NSMultipleValueBinder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8D951F0CE4057300AFB060 /* NSMultipleValueBinder.m */; }; - FE8F9F2A0C9C5D0000270AEE /* O2zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8F9F260C9C5D0000270AEE /* O2zlib.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE8F9F2B0C9C5D0000270AEE /* O2zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8F9F270C9C5D0000270AEE /* O2zlib.m */; }; - FE953DDA103B0EA0008A71F0 /* NSEvent_other.h in Headers */ = {isa = PBXBuildFile; fileRef = FE953DD8103B0EA0008A71F0 /* NSEvent_other.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE953DDB103B0EA0008A71F0 /* NSEvent_other.m in Sources */ = {isa = PBXBuildFile; fileRef = FE953DD9103B0EA0008A71F0 /* NSEvent_other.m */; }; - FE99DA74128396B6006D789F /* O2Encoder_PNG.h in Headers */ = {isa = PBXBuildFile; fileRef = FE99DA72128396B6006D789F /* O2Encoder_PNG.h */; }; - FE99DA75128396B6006D789F /* O2Encoder_PNG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE99DA73128396B6006D789F /* O2Encoder_PNG.m */; }; - FE9ACF13155EF59D002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9ACF10155EF59D002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m */; }; - FE9ACF14155EF59D002AFCA9 /* O2ImageDecoder_JPEG_stb.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9ACF11155EF59D002AFCA9 /* O2ImageDecoder_JPEG_stb.m */; }; - FE9ACF15155EF59D002AFCA9 /* O2ImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9ACF12155EF59D002AFCA9 /* O2ImageDecoder.m */; }; - FE9DB3D50FD6BD5A00A1CE17 /* NSRangeEntries.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA318290FD5961100F480D4 /* NSRangeEntries.h */; }; - FEA25F980EECCE4D008750D0 /* NSSound_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA25F960EECCE4D008750D0 /* NSSound_win32.h */; }; - FEA25F990EECCE4D008750D0 /* NSSound_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = FEA25F970EECCE4D008750D0 /* NSSound_win32.m */; }; - FEA317C20FD5893300F480D4 /* NSRaise.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA317C10FD5893300F480D4 /* NSRaise.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEA661230FF5C6F200E2C03B /* O2Font_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA661210FF5C6F200E2C03B /* O2Font_gdi.h */; }; - FEA661240FF5C6F300E2C03B /* O2Font_gdi.m in Sources */ = {isa = PBXBuildFile; fileRef = FEA661220FF5C6F200E2C03B /* O2Font_gdi.m */; }; - FEA8A98D0CD2CBC000E1E936 /* NSUserInterfaceValidation.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA8A98B0CD2CBC000E1E936 /* NSUserInterfaceValidation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEA965B40E7EA97500413F40 /* NSBitmapImageRep-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA965B30E7EA97500413F40 /* NSBitmapImageRep-Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEABD6070CB9D0C90035F828 /* O2Context_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FEABD6030CB9D0C90035F828 /* O2Context_gdi.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEABD6080CB9D0C90035F828 /* O2Context_gdi.m in Sources */ = {isa = PBXBuildFile; fileRef = FEABD6040CB9D0C90035F828 /* O2Context_gdi.m */; }; - FEAE000C11E4E45600CA0912 /* CVDisplayLink.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAE000B11E4E45600CA0912 /* CVDisplayLink.m */; }; - FEAED79B0FD6C95D0043F915 /* CGDataConsumer.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAED7980FD6C95D0043F915 /* CGDataConsumer.m */; }; - FEAED7A20FD6C96E0043F915 /* O2DataConsumer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAED79C0FD6C96E0043F915 /* O2DataConsumer.h */; }; - FEAED7A30FD6C96E0043F915 /* O2DataConsumer.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAED79D0FD6C96E0043F915 /* O2DataConsumer.m */; }; - FEAED7A70FD6C9820043F915 /* CGPDFContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAED7A40FD6C9820043F915 /* CGPDFContext.m */; }; - FEAEFF7A11E4D1B600CA0912 /* glweak.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAEFF7911E4D1B600CA0912 /* glweak.m */; }; - FEB07FA00FF9B37C00C27509 /* O2Font+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB07F9F0FF9B37C00C27509 /* O2Font+PDF.m */; }; - FEB3F1EB14049CC400059C8F /* NSSpellCheckerTagData.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB3F1E714049CC400059C8F /* NSSpellCheckerTagData.h */; }; - FEB3F1EC14049CC400059C8F /* NSSpellCheckerTagData.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB3F1E814049CC400059C8F /* NSSpellCheckerTagData.m */; }; - FEBE636D17D44C5E00EFA1F2 /* NSSound_DirectShow.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBE636B17D44C5E00EFA1F2 /* NSSound_DirectShow.h */; }; - FEBE636E17D44C5E00EFA1F2 /* NSSound_DirectShow.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBE636C17D44C5E00EFA1F2 /* NSSound_DirectShow.m */; }; - FEBF55E50DCA112900CE5A1C /* O2ImageSource_JPEG.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF55E20DCA112900CE5A1C /* O2ImageSource_JPEG.h */; }; - FEBF55E60DCA112900CE5A1C /* O2Paint.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF55E30DCA112900CE5A1C /* O2Paint.h */; }; - FEBF55E70DCA112900CE5A1C /* O2Paint.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF55E40DCA112900CE5A1C /* O2Paint.m */; }; - FEBF5A0D0DCD450700CE5A1C /* O2Paint_axialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5A010DCD450700CE5A1C /* O2Paint_axialGradient.h */; }; - FEBF5A0E0DCD450700CE5A1C /* O2Paint_axialGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF5A020DCD450700CE5A1C /* O2Paint_axialGradient.m */; }; - FEBF5A0F0DCD450700CE5A1C /* O2Paint_color.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5A030DCD450700CE5A1C /* O2Paint_color.h */; }; - FEBF5A100DCD450700CE5A1C /* O2Paint_color.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF5A040DCD450700CE5A1C /* O2Paint_color.m */; }; - FEBF5A110DCD450700CE5A1C /* O2Paint_image.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5A050DCD450700CE5A1C /* O2Paint_image.h */; }; - FEBF5A120DCD450700CE5A1C /* O2Paint_image.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF5A060DCD450700CE5A1C /* O2Paint_image.m */; }; - FEBF5A130DCD450700CE5A1C /* O2Paint_pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5A070DCD450700CE5A1C /* O2Paint_pattern.h */; }; - FEBF5A140DCD450700CE5A1C /* O2Paint_pattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF5A080DCD450700CE5A1C /* O2Paint_pattern.m */; }; - FEBF5A150DCD450700CE5A1C /* O2Paint_radialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5A090DCD450700CE5A1C /* O2Paint_radialGradient.h */; }; - FEBF5A160DCD450700CE5A1C /* O2Paint_radialGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF5A0A0DCD450700CE5A1C /* O2Paint_radialGradient.m */; }; - FEBF5A170DCD450700CE5A1C /* O2Paint_ramp.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5A0B0DCD450700CE5A1C /* O2Paint_ramp.h */; }; - FEBF5A180DCD450700CE5A1C /* O2Paint_ramp.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF5A0C0DCD450700CE5A1C /* O2Paint_ramp.m */; }; - FEBF5B77100D851500F64C71 /* O2LZW.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5B75100D851500F64C71 /* O2LZW.h */; }; - FEBF5B78100D851500F64C71 /* O2LZW.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBF5B76100D851500F64C71 /* O2LZW.m */; }; - FEC0C7810F146AF800903F6D /* O2ImageSource_GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC0C77F0F146AF800903F6D /* O2ImageSource_GIF.h */; }; - FEC0C7820F146AF800903F6D /* O2ImageSource_GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = FEC0C7800F146AF800903F6D /* O2ImageSource_GIF.m */; }; - FED35B6F104DF8C10038ED7C /* CGLContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FED35B6E104DF8C10038ED7C /* CGLContext.m */; }; - FED56E6511A2D87200D6D09B /* CGGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FED56E6411A2D87100D6D09B /* CGGradient.m */; }; - FED56E6A11A2D89400D6D09B /* CALayer.m in Sources */ = {isa = PBXBuildFile; fileRef = FED38C3110E13DCA00A2A651 /* CALayer.m */; }; - FED56E6B11A2D89900D6D09B /* CARenderer.m in Sources */ = {isa = PBXBuildFile; fileRef = FED38C3210E13DCA00A2A651 /* CARenderer.m */; }; - FED56E6C11A2D89E00D6D09B /* CATransform3D.m in Sources */ = {isa = PBXBuildFile; fileRef = FED38C3310E13DCA00A2A651 /* CATransform3D.m */; }; - FED56E6D11A2D8A200D6D09B /* CAWindowOpenGLContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7AA0CB10F9788100FEDD9C /* CAWindowOpenGLContext.h */; }; - FEDEA8AD12C112E5008E5A59 /* CATransactionGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDEA8AC12C112E5008E5A59 /* CATransactionGroup.m */; }; - FEDEA8B312C112EE008E5A59 /* CATransactionGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDEA8B212C112EE008E5A59 /* CATransactionGroup.h */; }; - FEDEA95412C13368008E5A59 /* CABase.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDEA95312C13368008E5A59 /* CABase.m */; }; - FEDEAA9912C2639B008E5A59 /* CAValueFunction.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDEAA9812C2639B008E5A59 /* CAValueFunction.m */; }; - FEDEABAE12C98F4C008E5A59 /* CALayerContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDEABAD12C98F4C008E5A59 /* CALayerContext.m */; }; - FEDF951F0CAF43E7009DC96F /* O2PDFContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDF951B0CAF43E7009DC96F /* O2PDFContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEDF95200CAF43E7009DC96F /* O2PDFContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDF951C0CAF43E7009DC96F /* O2PDFContext.m */; }; - FEE36B800F4B20C6005AEBBF /* NSToolbarOverflowArrow.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FEE36B7F0F4B20C5005AEBBF /* NSToolbarOverflowArrow.pdf */; }; - FEE4B2FA133BB8770095E656 /* NSWindowScripting.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE4B2F8133BB8770095E656 /* NSWindowScripting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEE4B2FB133BB8770095E656 /* NSWindowScripting.m in Sources */ = {isa = PBXBuildFile; fileRef = FEE4B2F9133BB8770095E656 /* NSWindowScripting.m */; }; - FEED247A0EC9E8F200A5B07E /* NSRefreshTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FEED24790EC9E8F200A5B07E /* NSRefreshTemplate.pdf */; }; - FEED42CE1224B82B0059B0DF /* NSExitFullScreenTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FEED42C81224B82B0059B0DF /* NSExitFullScreenTemplate.pdf */; }; - FEED42D01224B82B0059B0DF /* NSInfo.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FEED42CA1224B82B0059B0DF /* NSInfo.pdf */; }; - FEED42D21224B82B0059B0DF /* NSStopProgressTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = FEED42CC1224B82B0059B0DF /* NSStopProgressTemplate.pdf */; }; - FEF0889F10C5B06400D38A2F /* CGImageDestination.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF0889E10C5B06400D38A2F /* CGImageDestination.m */; }; - FEF4684310895C9800B45195 /* CGConversions.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF4684210895C9800B45195 /* CGConversions.h */; }; - FEF5A75E11E4E82F009B0041 /* CGDirectDisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5A75D11E4E82F009B0041 /* CGDirectDisplay.m */; }; - FEF5A7CC11E4EB0A009B0041 /* CAAnimationGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5A7C711E4EB0A009B0041 /* CAAnimationGroup.m */; }; - FEF5A7CD11E4EB0A009B0041 /* CABasicAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5A7C811E4EB0A009B0041 /* CABasicAnimation.m */; }; - FEF5A7CE11E4EB0A009B0041 /* CAMediaTimingFunction.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5A7C911E4EB0A009B0041 /* CAMediaTimingFunction.m */; }; - FEF5A7CF11E4EB0A009B0041 /* CAPropertyAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5A7CA11E4EB0A009B0041 /* CAPropertyAnimation.m */; }; - FEF5A7D011E4EB0A009B0041 /* CATransition.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5A7CB11E4EB0A009B0041 /* CATransition.m */; }; - FEF9CAE90E133FF2003502ED /* O2Surface_DIBSection.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF9CAE70E133FF2003502ED /* O2Surface_DIBSection.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEF9CAEA0E133FF2003502ED /* O2Surface_DIBSection.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF9CAE80E133FF2003502ED /* O2Surface_DIBSection.m */; }; - FEF9CB9F0E13EB8E003502ED /* O2ColorSpace+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF9CB780E13EB8E003502ED /* O2ColorSpace+PDF.h */; }; - FEF9CBA00E13EB8E003502ED /* O2ColorSpace+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF9CB790E13EB8E003502ED /* O2ColorSpace+PDF.m */; }; - FEF9CBC00E13EB8E003502ED /* O2Function+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF9CB990E13EB8E003502ED /* O2Function+PDF.h */; }; - FEF9CBC10E13EB8E003502ED /* O2Function+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF9CB9A0E13EB8E003502ED /* O2Function+PDF.m */; }; - FEF9CBC20E13EB8E003502ED /* O2Image+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF9CB9B0E13EB8E003502ED /* O2Image+PDF.h */; }; - FEF9CBC30E13EB8E003502ED /* O2Image+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF9CB9C0E13EB8E003502ED /* O2Image+PDF.m */; }; - FEF9CBC40E13EB8E003502ED /* O2Shading+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF9CB9D0E13EB8E003502ED /* O2Shading+PDF.h */; }; - FEF9CBC50E13EB8E003502ED /* O2Shading+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF9CB9E0E13EB8E003502ED /* O2Shading+PDF.m */; }; - FEF9CCC30E1416C4003502ED /* O2Context_builtin_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF9CCC10E1416C4003502ED /* O2Context_builtin_gdi.h */; }; - FEF9CCC40E1416C4003502ED /* O2Context_builtin_gdi.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF9CCC20E1416C4003502ED /* O2Context_builtin_gdi.m */; }; - FEFD32061434A4F400C14B08 /* O2Font_freetype.m in Sources */ = {isa = PBXBuildFile; fileRef = FE051BDA1221A2F40097BA92 /* O2Font_freetype.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE01AAC90C5D9BCC00AEA51A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6E46FEBE0A2D2DCF004CD27E /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A7EC0C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE01AACB0C5D9BE700AEA51A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6E46FEBE0A2D2DCF004CD27E /* Foundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A5970C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE0C4EC01041CF2100D8C100 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0C4EB81041CF2100D8C100 /* OpenGL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "OpenGL-Windows-i386"; - }; - FE0C4EC41041CF3200D8C100 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0C4EB81041CF2100D8C100 /* OpenGL.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "OpenGL-Windows-i386"; - }; - FE0DDFBA12BFF7DD008EC2E6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FED38C3B10E13DDF00A2A651 /* QuartzCore.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FECA819410EBB231003472F1; - remoteInfo = "QuartzCore-Windows-i386"; - }; - FE39C6821203D5E200A80A71 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE39C67E1203D5E200A80A71 /* CoreData.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreData-Windows-i386"; - }; - FE41B87912BEA2D900ED6C10 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FED38C3B10E13DDF00A2A651 /* QuartzCore.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FECA81A110EBB231003472F1; - remoteInfo = "QuartzCore-Windows-i386"; - }; - FE6EDEBC0DB7AF94005503A1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FECAF4C80DB710EE00BA2A8E /* ApplicationServices.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01AAE20C5D9BF900AEA51A; - remoteInfo = "ApplicationServices-Windows-i386"; - }; - FECAF4D00DB710EE00BA2A8E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FECAF4C80DB710EE00BA2A8E /* ApplicationServices.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AAED0C5D9BF900AEA51A; - remoteInfo = "ApplicationServices-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 36570F980E818CD5008FE1BE /* NSGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSGradient.h; sourceTree = ""; }; - 36570F990E818CD5008FE1BE /* NSGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSGradient.m; sourceTree = ""; }; - 496555CA17A02FAD0015D3B3 /* NSPoof.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = NSPoof.png; sourceTree = ""; }; - 496555D717A02FB90015D3B3 /* NSPoofAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPoofAnimation.h; sourceTree = ""; }; - 496555D817A02FB90015D3B3 /* NSPoofAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPoofAnimation.m; sourceTree = ""; }; - 49A7975114224021001CE4C2 /* O2Encoder_JPG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoder_JPG.h; sourceTree = ""; }; - 49A7975214224021001CE4C2 /* O2Encoder_JPG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoder_JPG.m; sourceTree = ""; }; - 49B85E88166FB2D200507E8C /* NSBidiHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSBidiHelper.m; sourceTree = ""; }; - 49B85E8E166FB2FC00507E8C /* NSBidiHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSBidiHelper.h; sourceTree = ""; }; - 49B85E95166FBC9A00507E8C /* UNIDATA */ = {isa = PBXFileReference; lastKnownFileType = folder; path = UNIDATA; sourceTree = ""; }; - 49C12B4C16FCAF270018CB21 /* O2EXIFDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2EXIFDecoder.h; sourceTree = ""; }; - 49C12B4D16FCAF270018CB21 /* O2EXIFDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2EXIFDecoder.m; sourceTree = ""; }; - 49D5D243165F9D0000D6A8EE /* NSUndoTextOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSUndoTextOperation.h; sourceTree = ""; }; - 49D5D244165F9D0000D6A8EE /* NSUndoTextOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSUndoTextOperation.m; sourceTree = ""; }; - 49EB338D171C8A8F00BD2535 /* NSToolbarOverflowArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSToolbarOverflowArrow.tiff; sourceTree = ""; }; - 630DC9D914CE3F2D0009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = de.lproj/NSColorPanel.nib; sourceTree = ""; }; - 630DC9E014CE3F6A0009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = NSColorPicker.subproj/de.lproj/NSColorPickerColorList.nib; sourceTree = ""; }; - 630DC9E714CE40B80009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = NSColorPicker.subproj/de.lproj/NSColorPickerSliders.nib; sourceTree = ""; }; - 630DC9EE14CE41290009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = NSColorPicker.subproj/de.lproj/NSColorPickerWheel.nib; sourceTree = ""; }; - 630DC9F714CE459A0009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = de.lproj/NSFontPanel.nib; sourceTree = ""; }; - 630DCA0014CE45E60009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = NSSystemInfoPanel/de.lproj/NSSystemInfoPanel.nib; sourceTree = ""; }; - 630DCA0714CE475C0009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = de.lproj/NSToolbarCustomizationPalette.nib; sourceTree = ""; }; - 630DCA1114CE48210009A039 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/NSSpellingViewController.xib; sourceTree = ""; }; - 630DCA1C14CE48790009A039 /* de */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 630DCA1D14CE48860009A039 /* fr */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 6311B10914C7396A007AD8C0 /* en */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 6311B13B14C7430F007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = fr; path = fr.lproj/NSMenu.plist; sourceTree = ""; }; - 6311B15F14C74B00007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/NSColorPanel.nib; sourceTree = ""; }; - 6311B16114C74B00007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/NSFontPanel.nib; sourceTree = ""; }; - 6311B16214C74B00007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/NSToolbarCustomizationPalette.nib; sourceTree = ""; }; - 6311B16814C74B57007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/NSColorPanel.nib; sourceTree = ""; }; - 6311B16914C74B57007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/NSFontPanel.nib; sourceTree = ""; }; - 6311B16A14C74B57007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/NSToolbarCustomizationPalette.nib; sourceTree = ""; }; - 6311B17A14C74EED007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/NSColorPickerColorList.nib; sourceTree = ""; }; - 6311B17C14C74EED007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/NSColorPickerSliders.nib; sourceTree = ""; }; - 6311B17E14C74EED007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/NSColorPickerWheel.nib; sourceTree = ""; }; - 6311B18E14C74EFC007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/NSColorPickerColorList.nib; sourceTree = ""; }; - 6311B18F14C74EFC007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/NSColorPickerSliders.nib; sourceTree = ""; }; - 6311B19014C74EFC007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/NSColorPickerWheel.nib; sourceTree = ""; }; - 6311B19414C750BE007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/NSSystemInfoPanel.nib; sourceTree = ""; }; - 6311B19A14C750E0007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/NSSystemInfoPanel.nib; sourceTree = ""; }; - 6311B19C14C7515B007AD8C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/NSSpellingViewController.xib; sourceTree = ""; }; - 6311B1A214C75168007AD8C0 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/NSSpellingViewController.xib; sourceTree = ""; }; - 631381D0145F2FFA00765AA7 /* NSColorPickerListIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = NSColorPickerListIcon.png; path = NSColorPicker.subproj/NSColorPickerListIcon.png; sourceTree = ""; }; - 631381D1145F2FFA00765AA7 /* NSColorPickerSlidersIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = NSColorPickerSlidersIcon.png; path = NSColorPicker.subproj/NSColorPickerSlidersIcon.png; sourceTree = ""; }; - 631381D2145F2FFA00765AA7 /* NSColorPickerWheelIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = NSColorPickerWheelIcon.png; path = NSColorPicker.subproj/NSColorPickerWheelIcon.png; sourceTree = ""; }; - 63138200145F3A5F00765AA7 /* NSColorPickerWheel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSColorPickerWheel.h; sourceTree = ""; }; - 63138201145F3A5F00765AA7 /* NSColorPickerWheel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSColorPickerWheel.m; sourceTree = ""; }; - 63138298145F6ED300765AA7 /* NSColorPickerWheelView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSColorPickerWheelView.h; sourceTree = ""; }; - 63138299145F6ED300765AA7 /* NSColorPickerWheelView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSColorPickerWheelView.m; sourceTree = ""; }; - 631382B3145F734100765AA7 /* NSColorWheel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = NSColorWheel.png; path = NSColorPicker.subproj/NSColorWheel.png; sourceTree = ""; }; - 63848FE117A189E70019E4DC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/NSPrintProgressPanel.xib; sourceTree = ""; }; - 63848FEA17A18C050019E4DC /* NSPrintProgressPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPrintProgressPanelController.h; sourceTree = ""; }; - 63848FEB17A18C050019E4DC /* NSPrintProgressPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPrintProgressPanelController.m; sourceTree = ""; }; - 6E14EC6509A3C40F009C8693 /* O2TIFFImageDirectory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2TIFFImageDirectory.h; sourceTree = ""; }; - 6E14EC6609A3C40F009C8693 /* O2TIFFImageDirectory.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2TIFFImageDirectory.m; sourceTree = ""; }; - 6E14EC6709A3C40F009C8693 /* O2Decoder_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Decoder_TIFF.h; sourceTree = ""; }; - 6E14EC6809A3C40F009C8693 /* O2Decoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Decoder_TIFF.m; sourceTree = ""; }; - 6E2B53250976075200DA0954 /* NSActionCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSActionCell.m; sourceTree = ""; }; - 6E2B53290976075200DA0954 /* NSAlertPanel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSAlertPanel.m; sourceTree = ""; }; - 6E2B532B0976075200DA0954 /* NSApplication.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSApplication.m; sourceTree = ""; }; - 6E2B532D0976075200DA0954 /* NSAttributedString.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSAttributedString.m; sourceTree = ""; }; - 6E2B532F0976075200DA0954 /* NSBitmapImageRep.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSBitmapImageRep.m; sourceTree = ""; }; - 6E2B53310976075200DA0954 /* NSBox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSBox.m; sourceTree = ""; }; - 6E2B53330976075200DA0954 /* NSBrowser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSBrowser.m; sourceTree = ""; }; - 6E2B53350976075200DA0954 /* NSBrowserCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSBrowserCell.m; sourceTree = ""; }; - 6E2B53370976075200DA0954 /* NSButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSButton.m; sourceTree = ""; }; - 6E2B53390976075200DA0954 /* NSButtonCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSButtonCell.m; sourceTree = ""; }; - 6E2B533B0976075200DA0954 /* NSCachedImageRep.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSCachedImageRep.m; sourceTree = ""; }; - 6E2B533D0976075200DA0954 /* NSCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSCell.m; sourceTree = ""; }; - 6E2B533F0976075200DA0954 /* NSClipView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSClipView.m; sourceTree = ""; }; - 6E2B53410976075200DA0954 /* NSColorList.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColorList.m; sourceTree = ""; }; - 6E2B53450976075200DA0954 /* NSColorPanel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColorPanel.m; sourceTree = ""; }; - 6E2B53470976075200DA0954 /* NSColorWell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColorWell.m; sourceTree = ""; }; - 6E2B53490976075200DA0954 /* NSComboBox.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSComboBox.m; sourceTree = ""; }; - 6E2B534B0976075200DA0954 /* NSComboBoxCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSComboBoxCell.m; sourceTree = ""; }; - 6E2B534D0976075200DA0954 /* NSComboBoxView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSComboBoxView.m; sourceTree = ""; }; - 6E2B534F0976075200DA0954 /* NSComboBoxWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSComboBoxWindow.m; sourceTree = ""; }; - 6E2B53510976075200DA0954 /* NSControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSControl.m; sourceTree = ""; }; - 6E2B53530976075200DA0954 /* NSCursor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSCursor.m; sourceTree = ""; }; - 6E2B53550976075200DA0954 /* NSCursorRect.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSCursorRect.m; sourceTree = ""; }; - 6E2B53570976075200DA0954 /* NSCustomImageRep.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSCustomImageRep.m; sourceTree = ""; }; - 6E2B53590976075200DA0954 /* NSDisplay.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSDisplay.m; sourceTree = ""; }; - 6E2B535B0976075200DA0954 /* NSDocument.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSDocument.m; sourceTree = ""; }; - 6E2B535D0976075200DA0954 /* NSDocumentController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSDocumentController.m; sourceTree = ""; }; - 6E2B535F0976075200DA0954 /* NSDraggingManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSDraggingManager.m; sourceTree = ""; }; - 6E2B53610976075200DA0954 /* NSEPSImageRep.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSEPSImageRep.m; sourceTree = ""; }; - 6E2B53630976075200DA0954 /* NSFileWrapper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFileWrapper.m; sourceTree = ""; }; - 6E2B53650976075200DA0954 /* NSFont.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFont.m; sourceTree = ""; }; - 6E2B53670976075200DA0954 /* NSForm.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSForm.m; sourceTree = ""; }; - 6E2B53690976075200DA0954 /* NSFormCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFormCell.m; sourceTree = ""; }; - 6E2B536B0976075200DA0954 /* NSFontFamily.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFontFamily.m; sourceTree = ""; }; - 6E2B536D0976075200DA0954 /* NSFontManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFontManager.m; sourceTree = ""; }; - 6E2B536F0976075200DA0954 /* NSFontMetric.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFontMetric.m; sourceTree = ""; }; - 6E2B53710976075200DA0954 /* NSFontPanel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFontPanel.m; sourceTree = ""; }; - 6E2B53730976075200DA0954 /* NSFontPanelCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFontPanelCell.m; sourceTree = ""; }; - 6E2B53750976075200DA0954 /* NSFontTypeface.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSFontTypeface.m; sourceTree = ""; }; - 6E2B53770976075200DA0954 /* NSGraphics.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSGraphics.m; sourceTree = ""; }; - 6E2B53790976075200DA0954 /* NSGraphicsContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSGraphicsContext.m; sourceTree = ""; }; - 6E2B537B0976075200DA0954 /* NSImage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSImage.m; sourceTree = ""; }; - 6E2B537D0976075200DA0954 /* NSImageCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSImageCell.m; sourceTree = ""; }; - 6E2B537F0976075200DA0954 /* NSImageRep.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSImageRep.m; sourceTree = ""; }; - 6E2B53810976075200DA0954 /* NSImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSImageView.m; sourceTree = ""; }; - 6E2B53830976075200DA0954 /* NSInterfaceGraphics.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSInterfaceGraphics.m; sourceTree = ""; }; - 6E2B53850976075200DA0954 /* NSInterfacePart.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSInterfacePart.m; sourceTree = ""; }; - 6E2B53870976075200DA0954 /* NSInterfacePartAttributedString.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSInterfacePartAttributedString.m; sourceTree = ""; }; - 6E2B53890976075200DA0954 /* NSInterfacePartDisabledAttributedString.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSInterfacePartDisabledAttributedString.m; sourceTree = ""; }; - 6E2B538B0976075200DA0954 /* NSInterfaceStyle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSInterfaceStyle.m; sourceTree = ""; }; - 6E2B538D0976075200DA0954 /* NSMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSMatrix.m; sourceTree = ""; }; - 6E2B538F0976075200DA0954 /* NSModalSessionX.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSModalSessionX.m; sourceTree = ""; }; - 6E2B53910976075200DA0954 /* NSOpenPanel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSOpenPanel.m; sourceTree = ""; }; - 6E2B53930976075200DA0954 /* NSPageLayout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPageLayout.m; sourceTree = ""; }; - 6E2B53950976075200DA0954 /* NSPanel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPanel.m; sourceTree = ""; }; - 6E2B53970976075200DA0954 /* NSParagraphStyle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSParagraphStyle.m; sourceTree = ""; }; - 6E2B53990976075200DA0954 /* NSPasteboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPasteboard.m; sourceTree = ""; }; - 6E2B539B0976075200DA0954 /* NSPopUpButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPopUpButton.m; sourceTree = ""; }; - 6E2B539D0976075200DA0954 /* NSPopUpButtonCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPopUpButtonCell.m; sourceTree = ""; }; - 6E2B539F0976075200DA0954 /* NSPopUpView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPopUpView.m; sourceTree = ""; }; - 6E2B53A10976075200DA0954 /* NSPopUpWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPopUpWindow.m; sourceTree = ""; }; - 6E2B53A30976075200DA0954 /* NSPrintInfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPrintInfo.m; sourceTree = ""; }; - 6E2B53A50976075200DA0954 /* NSPrintOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSPrintOperation.m; sourceTree = ""; }; - 6E2B53A70976075200DA0954 /* NSProgressIndicator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSProgressIndicator.m; sourceTree = ""; }; - 6E2B53A90976075200DA0954 /* NSResponder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSResponder.m; sourceTree = ""; }; - 6E2B53AB0976075200DA0954 /* NSSavePanel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSavePanel.m; sourceTree = ""; }; - 6E2B53AD0976075200DA0954 /* NSScreen.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSScreen.m; sourceTree = ""; }; - 6E2B53AF0976075200DA0954 /* NSScroller.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSScroller.m; sourceTree = ""; }; - 6E2B53B10976075200DA0954 /* NSScrollView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSScrollView.m; sourceTree = ""; }; - 6E2B53B30976075200DA0954 /* NSSecureTextField.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSecureTextField.m; sourceTree = ""; }; - 6E2B53B50976075200DA0954 /* NSSecureTextFieldCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSecureTextFieldCell.m; sourceTree = ""; }; - 6E2B53B70976075200DA0954 /* NSSheetContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSheetContext.m; sourceTree = ""; }; - 6E2B53B90976075200DA0954 /* NSSlider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSlider.m; sourceTree = ""; }; - 6E2B53BB0976075200DA0954 /* NSSliderCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSliderCell.m; sourceTree = ""; }; - 6E2B53BD0976075200DA0954 /* NSSplitView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSplitView.m; sourceTree = ""; }; - 6E2B53BF0976075200DA0954 /* NSStepper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSStepper.m; sourceTree = ""; }; - 6E2B53C10976075200DA0954 /* NSStepperCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSStepperCell.m; sourceTree = ""; }; - 6E2B53C30976075200DA0954 /* NSStringDrawer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSStringDrawer.m; sourceTree = ""; }; - 6E2B53C50976075200DA0954 /* NSStringDrawing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSStringDrawing.m; sourceTree = ""; }; - 6E2B53C70976075200DA0954 /* NSTableColumn.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTableColumn.m; sourceTree = ""; }; - 6E2B53C90976075200DA0954 /* NSTableCornerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTableCornerView.m; sourceTree = ""; }; - 6E2B53CB0976075200DA0954 /* NSTableHeaderCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTableHeaderCell.m; sourceTree = ""; }; - 6E2B53CD0976075200DA0954 /* NSTableHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTableHeaderView.m; sourceTree = ""; }; - 6E2B53CF0976075200DA0954 /* NSTableView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTableView.m; sourceTree = ""; }; - 6E2B53D10976075200DA0954 /* NSTabView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTabView.m; sourceTree = ""; }; - 6E2B53D30976075200DA0954 /* NSTabViewItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTabViewItem.m; sourceTree = ""; }; - 6E2B53D50976075200DA0954 /* NSText.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSText.m; sourceTree = ""; }; - 6E2B53D70976075200DA0954 /* NSTextAttachment.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextAttachment.m; sourceTree = ""; }; - 6E2B53D90976075200DA0954 /* NSTextField.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextField.m; sourceTree = ""; }; - 6E2B53DB0976075200DA0954 /* NSTextFieldCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextFieldCell.m; sourceTree = ""; }; - 6E2B53DD0976075200DA0954 /* NSTrackingArea.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTrackingArea.m; sourceTree = ""; }; - 6E2B53DF0976075200DA0954 /* NSView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSView.m; sourceTree = ""; }; - 6E2B53E10976075200DA0954 /* NSWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSWindow.m; sourceTree = ""; }; - 6E2B53E30976075200DA0954 /* NSThemeFrame.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSThemeFrame.m; sourceTree = ""; }; - 6E2B53E50976075200DA0954 /* NSWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSWindowController.m; sourceTree = ""; }; - 6E2B53E70976075200DA0954 /* NSWorkspace.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSWorkspace.m; sourceTree = ""; }; - 6E2B53EB0976075200DA0954 /* NSOutlineView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSOutlineView.m; sourceTree = ""; }; - 6E2B53ED0976075200DA0954 /* NSRulerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSRulerView.m; sourceTree = ""; }; - 6E2B53EF0976075200DA0954 /* NSRulerMarker.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSRulerMarker.m; sourceTree = ""; }; - 6E2B53F10976075200DA0954 /* NSToolTipWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSToolTipWindow.m; sourceTree = ""; }; - 6E2B53F30976075200DA0954 /* NSWindowAnimationContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSWindowAnimationContext.m; sourceTree = ""; }; - 6E2B53F50976075200DA0954 /* NSMeasurementUnit.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSMeasurementUnit.m; sourceTree = ""; }; - 6E2B53F70976075200DA0954 /* NSWindow-Drag.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSWindow-Drag.m"; sourceTree = ""; }; - 6E2B53FA0976075200DA0954 /* AppKitExport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppKitExport.h; sourceTree = ""; }; - 6E2B53FC0976075200DA0954 /* AppKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppKit.h; sourceTree = ""; }; - 6E2B53FE0976075200DA0954 /* NSActionCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSActionCell.h; sourceTree = ""; }; - 6E2B54020976075200DA0954 /* NSAlertPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSAlertPanel.h; sourceTree = ""; }; - 6E2B54040976075200DA0954 /* NSApplication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSApplication.h; sourceTree = ""; }; - 6E2B54060976075200DA0954 /* NSAttributedString.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSAttributedString.h; sourceTree = ""; }; - 6E2B54080976075200DA0954 /* NSBitmapImageRep.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSBitmapImageRep.h; sourceTree = ""; }; - 6E2B540A0976075200DA0954 /* NSBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSBox.h; sourceTree = ""; }; - 6E2B540C0976075200DA0954 /* NSBrowser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSBrowser.h; sourceTree = ""; }; - 6E2B540E0976075200DA0954 /* NSBrowserCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSBrowserCell.h; sourceTree = ""; }; - 6E2B54100976075200DA0954 /* NSButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSButton.h; sourceTree = ""; }; - 6E2B54120976075200DA0954 /* NSButtonCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSButtonCell.h; sourceTree = ""; }; - 6E2B54140976075200DA0954 /* NSCachedImageRep.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSCachedImageRep.h; sourceTree = ""; }; - 6E2B54160976075200DA0954 /* NSCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSCell.h; sourceTree = ""; }; - 6E2B54180976075200DA0954 /* NSClipView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSClipView.h; sourceTree = ""; }; - 6E2B541A0976075200DA0954 /* NSColorList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColorList.h; sourceTree = ""; }; - 6E2B541E0976075200DA0954 /* NSColorPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColorPanel.h; sourceTree = ""; }; - 6E2B54200976075200DA0954 /* NSColorWell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColorWell.h; sourceTree = ""; }; - 6E2B54220976075200DA0954 /* NSComboBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSComboBox.h; sourceTree = ""; }; - 6E2B54240976075200DA0954 /* NSComboBoxCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSComboBoxCell.h; sourceTree = ""; }; - 6E2B54260976075200DA0954 /* NSComboBoxView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSComboBoxView.h; sourceTree = ""; }; - 6E2B54280976075200DA0954 /* NSComboBoxWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSComboBoxWindow.h; sourceTree = ""; }; - 6E2B542A0976075200DA0954 /* NSControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSControl.h; sourceTree = ""; }; - 6E2B542C0976075200DA0954 /* NSCursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSCursor.h; sourceTree = ""; }; - 6E2B542E0976075200DA0954 /* NSCursorRect.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSCursorRect.h; sourceTree = ""; }; - 6E2B54300976075200DA0954 /* NSCustomImageRep.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSCustomImageRep.h; sourceTree = ""; }; - 6E2B54320976075200DA0954 /* NSDisplay.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDisplay.h; sourceTree = ""; }; - 6E2B54340976075200DA0954 /* NSDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDocument.h; sourceTree = ""; }; - 6E2B54360976075200DA0954 /* NSDocumentController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDocumentController.h; sourceTree = ""; }; - 6E2B54380976075200DA0954 /* NSDragging.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDragging.h; sourceTree = ""; }; - 6E2B543A0976075200DA0954 /* NSDraggingManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDraggingManager.h; sourceTree = ""; }; - 6E2B543C0976075200DA0954 /* NSEPSImageRep.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSEPSImageRep.h; sourceTree = ""; }; - 6E2B543E0976075200DA0954 /* NSFileWrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFileWrapper.h; sourceTree = ""; }; - 6E2B54400976075200DA0954 /* NSFont.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFont.h; sourceTree = ""; }; - 6E2B54420976075200DA0954 /* NSFontFamily.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFontFamily.h; sourceTree = ""; }; - 6E2B54440976075200DA0954 /* NSFontManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFontManager.h; sourceTree = ""; }; - 6E2B54460976075200DA0954 /* NSFontMetric.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFontMetric.h; sourceTree = ""; }; - 6E2B54480976075200DA0954 /* NSFontPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFontPanel.h; sourceTree = ""; }; - 6E2B544A0976075200DA0954 /* NSFontPanelCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFontPanelCell.h; sourceTree = ""; }; - 6E2B544C0976075200DA0954 /* NSFontTypeface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFontTypeface.h; sourceTree = ""; }; - 6E2B544E0976075200DA0954 /* NSForm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSForm.h; sourceTree = ""; }; - 6E2B54500976075200DA0954 /* NSFormCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSFormCell.h; sourceTree = ""; }; - 6E2B54520976075200DA0954 /* NSGraphics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSGraphics.h; sourceTree = ""; }; - 6E2B54540976075200DA0954 /* NSGraphicsContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSGraphicsContext.h; sourceTree = ""; }; - 6E2B54560976075200DA0954 /* NSGraphicsContextFunctions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSGraphicsContextFunctions.h; sourceTree = ""; }; - 6E2B54580976075200DA0954 /* NSImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSImage.h; sourceTree = ""; }; - 6E2B545A0976075200DA0954 /* NSImageCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSImageCell.h; sourceTree = ""; }; - 6E2B545C0976075200DA0954 /* NSImageRep.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSImageRep.h; sourceTree = ""; }; - 6E2B545E0976075200DA0954 /* NSImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSImageView.h; sourceTree = ""; }; - 6E2B54600976075200DA0954 /* NSInterfaceGraphics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSInterfaceGraphics.h; sourceTree = ""; }; - 6E2B54620976075200DA0954 /* NSInterfacePart.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSInterfacePart.h; sourceTree = ""; }; - 6E2B54640976075200DA0954 /* NSInterfacePartAttributedString.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSInterfacePartAttributedString.h; sourceTree = ""; }; - 6E2B54660976075200DA0954 /* NSInterfacePartDisabledAttributedString.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSInterfacePartDisabledAttributedString.h; sourceTree = ""; }; - 6E2B54680976075200DA0954 /* NSInterfaceStyle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSInterfaceStyle.h; sourceTree = ""; }; - 6E2B546A0976075200DA0954 /* NSMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSMatrix.h; sourceTree = ""; }; - 6E2B546C0976075200DA0954 /* NSModalSessionX.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSModalSessionX.h; sourceTree = ""; }; - 6E2B546E0976075200DA0954 /* NSOpenPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSOpenPanel.h; sourceTree = ""; }; - 6E2B54700976075200DA0954 /* NSPageLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPageLayout.h; sourceTree = ""; }; - 6E2B54720976075200DA0954 /* NSPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPanel.h; sourceTree = ""; }; - 6E2B54740976075200DA0954 /* NSPasteboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPasteboard.h; sourceTree = ""; }; - 6E2B54780976075200DA0954 /* NSPopUpButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPopUpButton.h; sourceTree = ""; }; - 6E2B547A0976075200DA0954 /* NSPopUpButtonCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPopUpButtonCell.h; sourceTree = ""; }; - 6E2B547C0976075200DA0954 /* NSPopUpView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPopUpView.h; sourceTree = ""; }; - 6E2B547E0976075200DA0954 /* NSPopUpWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPopUpWindow.h; sourceTree = ""; }; - 6E2B54800976075200DA0954 /* NSParagraphStyle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSParagraphStyle.h; sourceTree = ""; }; - 6E2B54820976075200DA0954 /* NSPrintInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPrintInfo.h; sourceTree = ""; }; - 6E2B54840976075200DA0954 /* NSPrintOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSPrintOperation.h; sourceTree = ""; }; - 6E2B54860976075200DA0954 /* NSProgressIndicator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSProgressIndicator.h; sourceTree = ""; }; - 6E2B54880976075200DA0954 /* NSResponder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSResponder.h; sourceTree = ""; }; - 6E2B548A0976075200DA0954 /* NSSavePanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSavePanel.h; sourceTree = ""; }; - 6E2B548C0976075200DA0954 /* NSScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSScreen.h; sourceTree = ""; }; - 6E2B548E0976075200DA0954 /* NSScroller.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSScroller.h; sourceTree = ""; }; - 6E2B54900976075200DA0954 /* NSScrollView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSScrollView.h; sourceTree = ""; }; - 6E2B54920976075200DA0954 /* NSSheetContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSheetContext.h; sourceTree = ""; }; - 6E2B54940976075200DA0954 /* NSSlider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSlider.h; sourceTree = ""; }; - 6E2B54960976075200DA0954 /* NSSliderCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSliderCell.h; sourceTree = ""; }; - 6E2B54980976075200DA0954 /* NSSplitView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSplitView.h; sourceTree = ""; }; - 6E2B549A0976075200DA0954 /* NSStringDrawer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSStringDrawer.h; sourceTree = ""; }; - 6E2B549C0976075200DA0954 /* NSStringDrawing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSStringDrawing.h; sourceTree = ""; }; - 6E2B549E0976075200DA0954 /* NSSecureTextField.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSecureTextField.h; sourceTree = ""; }; - 6E2B54A00976075200DA0954 /* NSSecureTextFieldCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSecureTextFieldCell.h; sourceTree = ""; }; - 6E2B54A20976075200DA0954 /* NSStepper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSStepper.h; sourceTree = ""; }; - 6E2B54A40976075200DA0954 /* NSStepperCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSStepperCell.h; sourceTree = ""; }; - 6E2B54A60976075200DA0954 /* NSTableColumn.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTableColumn.h; sourceTree = ""; }; - 6E2B54A80976075200DA0954 /* NSTableCornerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTableCornerView.h; sourceTree = ""; }; - 6E2B54AA0976075300DA0954 /* NSTableHeaderCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTableHeaderCell.h; sourceTree = ""; }; - 6E2B54AC0976075300DA0954 /* NSTableHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTableHeaderView.h; sourceTree = ""; }; - 6E2B54AE0976075300DA0954 /* NSTableView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTableView.h; sourceTree = ""; }; - 6E2B54B00976075300DA0954 /* NSTabView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTabView.h; sourceTree = ""; }; - 6E2B54B20976075300DA0954 /* NSTabViewItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTabViewItem.h; sourceTree = ""; }; - 6E2B54B40976075300DA0954 /* NSText.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSText.h; sourceTree = ""; }; - 6E2B54B60976075300DA0954 /* NSTextAttachment.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextAttachment.h; sourceTree = ""; }; - 6E2B54B80976075300DA0954 /* NSTextField.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextField.h; sourceTree = ""; }; - 6E2B54BA0976075300DA0954 /* NSTextFieldCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextFieldCell.h; sourceTree = ""; }; - 6E2B54BC0976075300DA0954 /* NSTrackingArea.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTrackingArea.h; sourceTree = ""; }; - 6E2B54BE0976075300DA0954 /* NSView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSView.h; sourceTree = ""; }; - 6E2B54C00976075300DA0954 /* NSWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSWindow.h; sourceTree = ""; }; - 6E2B54C20976075300DA0954 /* NSWindow-Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSWindow-Private.h"; sourceTree = ""; }; - 6E2B54C40976075300DA0954 /* NSThemeFrame.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSThemeFrame.h; sourceTree = ""; }; - 6E2B54C60976075300DA0954 /* NSWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSWindowController.h; sourceTree = ""; }; - 6E2B54C80976075300DA0954 /* NSWorkspace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSWorkspace.h; sourceTree = ""; }; - 6E2B54D00976075300DA0954 /* NSOutlineView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSOutlineView.h; sourceTree = ""; }; - 6E2B54D20976075300DA0954 /* NSRulerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSRulerView.h; sourceTree = ""; }; - 6E2B54D40976075300DA0954 /* NSRulerMarker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSRulerMarker.h; sourceTree = ""; }; - 6E2B54D60976075300DA0954 /* NSToolTipWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSToolTipWindow.h; sourceTree = ""; }; - 6E2B54D80976075300DA0954 /* NSWindowAnimationContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSWindowAnimationContext.h; sourceTree = ""; }; - 6E2B54DA0976075300DA0954 /* NSMeasurementUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSMeasurementUnit.h; sourceTree = ""; }; - 6E2B54DC0976075300DA0954 /* NSWindow-Drag.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSWindow-Drag.h"; sourceTree = ""; }; - 6E2B54E70976075300DA0954 /* NSSplitViewVDimple.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSSplitViewVDimple.tiff; sourceTree = ""; }; - 6E2B54E90976075300DA0954 /* NSHighlightedBrowserCellArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSHighlightedBrowserCellArrow.tiff; sourceTree = ""; }; - 6E2B54EB0976075300DA0954 /* NSRulerMarkerTab.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSRulerMarkerTab.tiff; sourceTree = ""; }; - 6E2B54ED0976075300DA0954 /* NSAlertPanelExclamation.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSAlertPanelExclamation.tiff; sourceTree = ""; }; - 6E2B54EF0976075300DA0954 /* NSComboBoxCellDown.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSComboBoxCellDown.tiff; sourceTree = ""; }; - 6E2B54F10976075300DA0954 /* NSRadioButton.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSRadioButton.tiff; sourceTree = ""; }; - 6E2B54F30976075300DA0954 /* NSSwitch.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSSwitch.tiff; sourceTree = ""; }; - 6E2B54F50976075300DA0954 /* NSHighlightedSwitch.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSHighlightedSwitch.tiff; sourceTree = ""; }; - 6E2B54F70976075300DA0954 /* NSPopUpButtonCellPopUp.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSPopUpButtonCellPopUp.tiff; sourceTree = ""; }; - 6E2B54F90976075300DA0954 /* NSPopUpButtonCellPullDown.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSPopUpButtonCellPullDown.tiff; sourceTree = ""; }; - 6E2B54FB0976075300DA0954 /* NSHighlightedRadioButton.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSHighlightedRadioButton.tiff; sourceTree = ""; }; - 6E2B54FF0976075300DA0954 /* NSSplitViewHDimple.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSSplitViewHDimple.tiff; sourceTree = ""; }; - 6E2B55010976075300DA0954 /* NSBrowserCellArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSBrowserCellArrow.tiff; sourceTree = ""; }; - 6E2B55080976075300DA0954 /* NSMenu.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = NSMenu.plist; path = en.lproj/NSMenu.plist; sourceTree = ""; }; - 6E2B55180976075300DA0954 /* NSNibOutletConnector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSNibOutletConnector.m; sourceTree = ""; }; - 6E2B551A0976075300DA0954 /* NSNibControlConnector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSNibControlConnector.m; sourceTree = ""; }; - 6E2B551C0976075300DA0954 /* NSNibConnector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSNibConnector.m; sourceTree = ""; }; - 6E2B551E0976075300DA0954 /* NSNibLoading.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSNibLoading.m; sourceTree = ""; }; - 6E2B55260976075300DA0954 /* NSNibHelpConnector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSNibHelpConnector.m; sourceTree = ""; }; - 6E2B552F0976075300DA0954 /* NSNibOutletConnector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSNibOutletConnector.h; sourceTree = ""; }; - 6E2B55310976075300DA0954 /* NSNibControlConnector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSNibControlConnector.h; sourceTree = ""; }; - 6E2B55330976075300DA0954 /* NSNibConnector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSNibConnector.h; sourceTree = ""; }; - 6E2B55350976075300DA0954 /* NSNibLoading.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSNibLoading.h; sourceTree = ""; }; - 6E2B553D0976075300DA0954 /* NSNibHelpConnector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSNibHelpConnector.h; sourceTree = ""; }; - 6E2B55450976075300DA0954 /* NSColor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColor.m; sourceTree = ""; }; - 6E2B55510976075300DA0954 /* NSColor_catalog.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColor_catalog.m; sourceTree = ""; }; - 6E2B55540976075300DA0954 /* NSColor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColor.h; sourceTree = ""; }; - 6E2B55600976075300DA0954 /* NSColor_catalog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColor_catalog.h; sourceTree = ""; }; - 6E2B55620976075300DA0954 /* conversions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = conversions.h; sourceTree = ""; }; - 6E2B556A0976075300DA0954 /* NSTextView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextView.m; sourceTree = ""; }; - 6E2B556C0976075300DA0954 /* NSTextContainer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextContainer.m; sourceTree = ""; }; - 6E2B556E0976075300DA0954 /* NSTextStorage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextStorage.m; sourceTree = ""; }; - 6E2B55700976075300DA0954 /* NSTextStorage_concrete.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextStorage_concrete.m; sourceTree = ""; }; - 6E2B55720976075300DA0954 /* NSLayoutManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSLayoutManager.m; sourceTree = ""; }; - 6E2B55740976075300DA0954 /* NSTypesetter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTypesetter.m; sourceTree = ""; }; - 6E2B55760976075300DA0954 /* NSRangeArray.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSRangeArray.m; sourceTree = ""; }; - 6E2B55780976075300DA0954 /* NSSecureTextView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSecureTextView.m; sourceTree = ""; }; - 6E2B557A0976075300DA0954 /* NSSecureLayoutManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSecureLayoutManager.m; sourceTree = ""; }; - 6E2B557C0976075300DA0954 /* NSTextTab.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSTextTab.m; sourceTree = ""; }; - 6E2B557F0976075300DA0954 /* NSTextView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextView.h; sourceTree = ""; }; - 6E2B55810976075300DA0954 /* NSTextContainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextContainer.h; sourceTree = ""; }; - 6E2B55830976075300DA0954 /* NSTextStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextStorage.h; sourceTree = ""; }; - 6E2B55850976075300DA0954 /* NSTextStorage_concrete.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextStorage_concrete.h; sourceTree = ""; }; - 6E2B55870976075300DA0954 /* NSLayoutManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSLayoutManager.h; sourceTree = ""; }; - 6E2B55890976075300DA0954 /* NSTypesetter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTypesetter.h; sourceTree = ""; }; - 6E2B558B0976075300DA0954 /* NSRangeArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSRangeArray.h; sourceTree = ""; }; - 6E2B558D0976075300DA0954 /* NSSecureTextView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSecureTextView.h; sourceTree = ""; }; - 6E2B558F0976075300DA0954 /* NSSecureLayoutManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSecureLayoutManager.h; sourceTree = ""; }; - 6E2B55910976075300DA0954 /* NSTextTab.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSTextTab.h; sourceTree = ""; }; - 6E2B55990976075300DA0954 /* NSEvent_mouse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSEvent_mouse.m; sourceTree = ""; }; - 6E2B559B0976075300DA0954 /* NSEvent_keyboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSEvent_keyboard.m; sourceTree = ""; }; - 6E2B559D0976075300DA0954 /* NSEvent_periodic.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSEvent_periodic.m; sourceTree = ""; }; - 6E2B559F0976075300DA0954 /* NSEvent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSEvent.m; sourceTree = ""; }; - 6E2B55A10976075300DA0954 /* NSEvent_CoreGraphics.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSEvent_CoreGraphics.m; sourceTree = ""; }; - 6E2B55A40976075300DA0954 /* NSEvent_mouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSEvent_mouse.h; sourceTree = ""; }; - 6E2B55A60976075300DA0954 /* NSEvent_keyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSEvent_keyboard.h; sourceTree = ""; }; - 6E2B55A80976075300DA0954 /* NSEvent_periodic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSEvent_periodic.h; sourceTree = ""; }; - 6E2B55AA0976075300DA0954 /* NSEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSEvent.h; sourceTree = ""; }; - 6E2B55AC0976075300DA0954 /* NSEvent_CoreGraphics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSEvent_CoreGraphics.h; sourceTree = ""; }; - 6E2B55B40976075300DA0954 /* CGContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CGContext.m; sourceTree = ""; }; - 6E2B55B60976075300DA0954 /* CGGeometry.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CGGeometry.m; sourceTree = ""; }; - 6E2B55B80976075300DA0954 /* CGAffineTransform.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CGAffineTransform.m; sourceTree = ""; }; - 6E2B55BA0976075300DA0954 /* CGFont.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CGFont.m; sourceTree = ""; }; - 6E2B55BC0976075300DA0954 /* O2GraphicsState.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = O2GraphicsState.m; sourceTree = ""; }; - 6E2B55C20976075300DA0954 /* CGWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CGWindow.m; sourceTree = ""; }; - 6E2B55C40976075300DA0954 /* CGEvent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CGEvent.m; sourceTree = ""; }; - 6E2B55D10976075300DA0954 /* O2GraphicsState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = O2GraphicsState.h; sourceTree = ""; }; - 6E2B55D70976075300DA0954 /* CGWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CGWindow.h; sourceTree = ""; }; - 6E2B55D90976075300DA0954 /* CGEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CGEvent.h; sourceTree = ""; }; - 6E2B55E10976075300DA0954 /* NSColorPicker.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColorPicker.m; sourceTree = ""; }; - 6E2B55E30976075300DA0954 /* NSColorPickerColorList.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColorPickerColorList.m; sourceTree = ""; }; - 6E2B55E50976075300DA0954 /* NSBrowserCellColorList.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSBrowserCellColorList.m; sourceTree = ""; }; - 6E2B55E70976075300DA0954 /* NSColorPickerSliders.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSColorPickerSliders.m; sourceTree = ""; }; - 6E2B55EA0976075300DA0954 /* NSColorPicker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColorPicker.h; sourceTree = ""; }; - 6E2B55EC0976075300DA0954 /* NSColorPickerColorList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColorPickerColorList.h; sourceTree = ""; }; - 6E2B55EE0976075300DA0954 /* NSBrowserCellColorList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSBrowserCellColorList.h; sourceTree = ""; }; - 6E2B55F00976075300DA0954 /* NSColorPickerSliders.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSColorPickerSliders.h; sourceTree = ""; }; - 6E2B55F80976075300DA0954 /* NSColorPickerSlidersCMYK.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSColorPickerSlidersCMYK.tiff; sourceTree = ""; }; - 6E2B55FA0976075300DA0954 /* NSColorPickerColorList.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSColorPickerColorList.tiff; sourceTree = ""; }; - 6E2B55FC0976075300DA0954 /* NSColorPickerSlidersHSB.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSColorPickerSlidersHSB.tiff; sourceTree = ""; }; - 6E2B55FE0976075300DA0954 /* NSColorPickerSlidersRGB.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSColorPickerSlidersRGB.tiff; sourceTree = ""; }; - 6E2B56000976075300DA0954 /* NSColorPickerSlidersGray.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSColorPickerSlidersGray.tiff; sourceTree = ""; }; - 6E2B560A0976075300DA0954 /* Win32Cursor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32Cursor.m; sourceTree = ""; }; - 6E2B56100976075300DA0954 /* Win32DeviceContextPrinter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32DeviceContextPrinter.m; sourceTree = ""; }; - 6E2B56120976075300DA0954 /* Win32DeviceContextWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32DeviceContextWindow.m; sourceTree = ""; }; - 6E2B56140976075300DA0954 /* Win32Display.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32Display.m; sourceTree = ""; }; - 6E2B56160976075300DA0954 /* Win32Event.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32Event.m; sourceTree = ""; }; - 6E2B56180976075400DA0954 /* Win32Font.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32Font.m; sourceTree = ""; }; - 6E2B56200976075400DA0954 /* Win32Window.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32Window.m; sourceTree = ""; }; - 6E2B56260976075400DA0954 /* Win32RunningCopyPipe.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32RunningCopyPipe.m; sourceTree = ""; }; - 6E2B56280976075400DA0954 /* Win32EventInputSource.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32EventInputSource.m; sourceTree = ""; }; - 6E2B562C0976075400DA0954 /* Win32Workspace.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32Workspace.m; sourceTree = ""; }; - 6E2B562E0976075400DA0954 /* NSSavePanel-Win32.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSSavePanel-Win32.m"; sourceTree = ""; }; - 6E2B56300976075400DA0954 /* NSOpenPanel-Win32.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSOpenPanel-Win32.m"; sourceTree = ""; }; - 6E2B56370976075400DA0954 /* Win32Cursor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32Cursor.h; sourceTree = ""; }; - 6E2B563D0976075400DA0954 /* Win32DeviceContextPrinter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32DeviceContextPrinter.h; sourceTree = ""; }; - 6E2B563F0976075400DA0954 /* Win32DeviceContextWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32DeviceContextWindow.h; sourceTree = ""; }; - 6E2B56410976075400DA0954 /* Win32Display.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32Display.h; sourceTree = ""; }; - 6E2B56430976075400DA0954 /* Win32Event.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32Event.h; sourceTree = ""; }; - 6E2B56450976075400DA0954 /* Win32Font.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32Font.h; sourceTree = ""; }; - 6E2B564D0976075400DA0954 /* Win32Window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32Window.h; sourceTree = ""; }; - 6E2B56530976075400DA0954 /* Win32RunningCopyPipe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32RunningCopyPipe.h; sourceTree = ""; }; - 6E2B56550976075400DA0954 /* Win32EventInputSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32EventInputSource.h; sourceTree = ""; }; - 6E2B56590976075400DA0954 /* Win32Workspace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32Workspace.h; sourceTree = ""; }; - 6E2B565B0976075400DA0954 /* NSSavePanel-Win32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSSavePanel-Win32.h"; sourceTree = ""; }; - 6E2B565D0976075400DA0954 /* NSOpenPanel-Win32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSOpenPanel-Win32.h"; sourceTree = ""; }; - 6E2B56620976075400DA0954 /* dllmain.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = dllmain.m; sourceTree = ""; }; - 6E2B566B0976075400DA0954 /* Win32DraggingManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32DraggingManager.m; sourceTree = ""; }; - 6E2B566D0976075400DA0954 /* Win32DragSession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32DragSession.m; sourceTree = ""; }; - 6E2B566F0976075400DA0954 /* Win32DropPasteboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32DropPasteboard.m; sourceTree = ""; }; - 6E2B56710976075400DA0954 /* Win32FORMATETC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32FORMATETC.m; sourceTree = ""; }; - 6E2B56730976075400DA0954 /* Win32GeneralPasteboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32GeneralPasteboard.m; sourceTree = ""; }; - 6E2B56750976075400DA0954 /* Win32IDataObjectClient.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32IDataObjectClient.m; sourceTree = ""; }; - 6E2B56770976075400DA0954 /* Win32IDataObjectServer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32IDataObjectServer.m; sourceTree = ""; }; - 6E2B56790976075400DA0954 /* Win32IDropSourceServer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32IDropSourceServer.m; sourceTree = ""; }; - 6E2B567B0976075400DA0954 /* Win32IDropTargetServer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32IDropTargetServer.m; sourceTree = ""; }; - 6E2B567D0976075400DA0954 /* Win32IEnumFORMATETCServer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32IEnumFORMATETCServer.m; sourceTree = ""; }; - 6E2B567F0976075400DA0954 /* Win32IStreamClient.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32IStreamClient.m; sourceTree = ""; }; - 6E2B56810976075400DA0954 /* Win32IUnknownServer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32IUnknownServer.m; sourceTree = ""; }; - 6E2B56830976075400DA0954 /* Win32Pasteboard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32Pasteboard.m; sourceTree = ""; }; - 6E2B56850976075400DA0954 /* Win32TypesAndOwner.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Win32TypesAndOwner.m; sourceTree = ""; }; - 6E2B56870976075400DA0954 /* Win32Window-Drag.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Win32Window-Drag.m"; sourceTree = ""; }; - 6E2B56890976075400DA0954 /* NSDragView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSDragView.m; sourceTree = ""; }; - 6E2B568C0976075400DA0954 /* Win32DraggingManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32DraggingManager.h; sourceTree = ""; }; - 6E2B568E0976075400DA0954 /* Win32DragSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32DragSession.h; sourceTree = ""; }; - 6E2B56900976075400DA0954 /* Win32DropPasteboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32DropPasteboard.h; sourceTree = ""; }; - 6E2B56920976075400DA0954 /* Win32FORMATETC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32FORMATETC.h; sourceTree = ""; }; - 6E2B56940976075400DA0954 /* Win32GeneralPasteboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32GeneralPasteboard.h; sourceTree = ""; }; - 6E2B56960976075400DA0954 /* Win32IDataObjectClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32IDataObjectClient.h; sourceTree = ""; }; - 6E2B56980976075400DA0954 /* Win32IDataObjectServer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32IDataObjectServer.h; sourceTree = ""; }; - 6E2B569A0976075400DA0954 /* Win32IDropSourceServer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32IDropSourceServer.h; sourceTree = ""; }; - 6E2B569C0976075400DA0954 /* Win32IDropTargetServer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32IDropTargetServer.h; sourceTree = ""; }; - 6E2B569E0976075400DA0954 /* Win32IEnumFORMATETCServer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32IEnumFORMATETCServer.h; sourceTree = ""; }; - 6E2B56A00976075400DA0954 /* Win32IStreamClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32IStreamClient.h; sourceTree = ""; }; - 6E2B56A20976075400DA0954 /* Win32IUnknownServer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32IUnknownServer.h; sourceTree = ""; }; - 6E2B56A40976075400DA0954 /* Win32Pasteboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32Pasteboard.h; sourceTree = ""; }; - 6E2B56A60976075400DA0954 /* Win32TypesAndOwner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Win32TypesAndOwner.h; sourceTree = ""; }; - 6E2B56A80976075400DA0954 /* Win32Window-Drag.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Win32Window-Drag.h"; sourceTree = ""; }; - 6E2B56AA0976075400DA0954 /* NSDragView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDragView.h; sourceTree = ""; }; - 6E2B56B20976075400DA0954 /* NSOpenGLContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSOpenGLContext.m; sourceTree = ""; }; - 6E2B56B40976075400DA0954 /* NSOpenGLPixelFormat.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSOpenGLPixelFormat.m; sourceTree = ""; }; - 6E2B56B60976075400DA0954 /* NSOpenGLView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSOpenGLView.m; sourceTree = ""; }; - 6E2B56B90976075400DA0954 /* NSOpenGLContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSOpenGLContext.h; sourceTree = ""; }; - 6E2B56BB0976075400DA0954 /* NSOpenGLPixelFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSOpenGLPixelFormat.h; sourceTree = ""; }; - 6E2B56BD0976075400DA0954 /* NSOpenGLView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSOpenGLView.h; sourceTree = ""; }; - 6E2B56C50976075400DA0954 /* NSRichTextReader.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSRichTextReader.m; sourceTree = ""; }; - 6E2B56C70976075400DA0954 /* NSRichTextWriter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSRichTextWriter.m; sourceTree = ""; }; - 6E2B56CA0976075400DA0954 /* NSRichTextReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSRichTextReader.h; sourceTree = ""; }; - 6E2B56CC0976075400DA0954 /* NSRichTextWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSRichTextWriter.h; sourceTree = ""; }; - 6E2B56D40976075400DA0954 /* NSMainMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSMainMenuView.m; sourceTree = ""; }; - 6E2B56D60976075400DA0954 /* NSMenu.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSMenu.m; sourceTree = ""; }; - 6E2B56D80976075400DA0954 /* NSMenuItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSMenuItem.m; sourceTree = ""; }; - 6E2B56DA0976075400DA0954 /* NSMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSMenuView.m; sourceTree = ""; }; - 6E2B56DC0976075400DA0954 /* NSMenuWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSMenuWindow.m; sourceTree = ""; }; - 6E2B56DE0976075400DA0954 /* NSOverflowMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSOverflowMenuView.m; sourceTree = ""; }; - 6E2B56E00976075400DA0954 /* NSSubmenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSSubmenuView.m; sourceTree = ""; }; - 6E2B56E30976075400DA0954 /* NSMainMenuView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSMainMenuView.h; sourceTree = ""; }; - 6E2B56E50976075400DA0954 /* NSMenu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSMenu.h; sourceTree = ""; }; - 6E2B56E70976075400DA0954 /* NSMenuItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSMenuItem.h; sourceTree = ""; }; - 6E2B56E90976075400DA0954 /* NSMenuView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSMenuView.h; sourceTree = ""; }; - 6E2B56EB0976075400DA0954 /* NSMenuWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSMenuWindow.h; sourceTree = ""; }; - 6E2B56ED0976075400DA0954 /* NSOverflowMenuView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSOverflowMenuView.h; sourceTree = ""; }; - 6E2B56EF0976075400DA0954 /* NSSubmenuView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSSubmenuView.h; sourceTree = ""; }; - 6E2B56F20976075400DA0954 /* NSMenuArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSMenuArrow.tiff; sourceTree = ""; }; - 6E2B56F40976075400DA0954 /* NSMenuViewDoubleRightArrow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSMenuViewDoubleRightArrow.tiff; sourceTree = ""; }; - 6E2B56F60976075400DA0954 /* NSMenuViewDoubleRightArrowGray.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSMenuViewDoubleRightArrowGray.tiff; sourceTree = ""; }; - 6E2B56FE0976075400DA0954 /* NSKeyboardBindingManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSKeyboardBindingManager.m; sourceTree = ""; }; - 6E2B57000976075400DA0954 /* NSKeyboardBinding.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSKeyboardBinding.m; sourceTree = ""; }; - 6E2B57030976075400DA0954 /* NSKeyboardBindingManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSKeyboardBindingManager.h; sourceTree = ""; }; - 6E2B57050976075400DA0954 /* NSKeyboardBinding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSKeyboardBinding.h; sourceTree = ""; }; - 6E2B57080976075400DA0954 /* StandardKeyBindings.keybindings */ = {isa = PBXFileReference; lastKnownFileType = text; path = StandardKeyBindings.keybindings; sourceTree = ""; }; - 6E2B57120976075400DA0954 /* NSToolbar.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSToolbar.m; sourceTree = ""; }; - 6E2B57160976075400DA0954 /* NSToolbarItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSToolbarItem.m; sourceTree = ""; }; - 6E2B57180976075400DA0954 /* NSToolbarView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSToolbarView.m; sourceTree = ""; }; - 6E2B571C0976075400DA0954 /* NSToolbarCustomizationPalette.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSToolbarCustomizationPalette.m; sourceTree = ""; }; - 6E2B571E0976075400DA0954 /* NSToolbarCustomizationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSToolbarCustomizationView.m; sourceTree = ""; }; - 6E2B57270976075400DA0954 /* NSToolbar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSToolbar.h; sourceTree = ""; }; - 6E2B572B0976075400DA0954 /* NSToolbarItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSToolbarItem.h; sourceTree = ""; }; - 6E2B572D0976075500DA0954 /* NSToolbarView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSToolbarView.h; sourceTree = ""; }; - 6E2B57310976075500DA0954 /* NSToolbarCustomizationPalette.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSToolbarCustomizationPalette.h; sourceTree = ""; }; - 6E2B57330976075500DA0954 /* NSToolbarCustomizationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSToolbarCustomizationView.h; sourceTree = ""; }; - 6E2B573A0976075500DA0954 /* NSToolbarShowFontsItem.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSToolbarShowFontsItem.tiff; sourceTree = ""; }; - 6E2B573C0976075500DA0954 /* NSToolbarCustomizeToolbarItem.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSToolbarCustomizeToolbarItem.tiff; sourceTree = ""; }; - 6E2B573E0976075500DA0954 /* NSToolbarShowColorsItem.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSToolbarShowColorsItem.tiff; sourceTree = ""; }; - 6E2B57400976075500DA0954 /* NSToolbarPrintItem.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSToolbarPrintItem.tiff; sourceTree = ""; }; - 6E2B57480976075500DA0954 /* NSDrawer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSDrawer.m; sourceTree = ""; }; - 6E2B574A0976075500DA0954 /* NSDrawerWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSDrawerWindow.m; sourceTree = ""; }; - 6E2B574D0976075500DA0954 /* NSDrawer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDrawer.h; sourceTree = ""; }; - 6E2B574F0976075500DA0954 /* NSDrawerWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDrawerWindow.h; sourceTree = ""; }; - 6E2B575B0976075500DA0954 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 6E404FE50A52FEA900FA9AE5 /* NSTextViewSharedData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTextViewSharedData.h; sourceTree = ""; }; - 6E404FE60A52FEA900FA9AE5 /* NSTextViewSharedData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTextViewSharedData.m; sourceTree = ""; }; - 6E46FEBE0A2D2DCF004CD27E /* Foundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Foundation.xcodeproj; path = ../Foundation/Foundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - 6E81CA740A3883660089C666 /* NSClassSwapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSClassSwapper.h; sourceTree = ""; }; - 6E81CA750A3883660089C666 /* NSClassSwapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSClassSwapper.m; sourceTree = ""; }; - 6E81CCCE0A39CBE00089C666 /* NSCustomResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCustomResource.h; sourceTree = ""; }; - 6E81CCCF0A39CBE00089C666 /* NSCustomResource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCustomResource.m; sourceTree = ""; }; - 6EC4AC350A35D0C200E8D6CA /* NSIBObjectData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIBObjectData.h; sourceTree = ""; }; - 6EC4AC360A35D0C200E8D6CA /* NSIBObjectData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIBObjectData.m; sourceTree = ""; }; - 6EC4AC670A35D47800E8D6CA /* NSCustomObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCustomObject.h; sourceTree = ""; }; - 6EC4AC680A35D47800E8D6CA /* NSCustomObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCustomObject.m; sourceTree = ""; }; - 6EC4ACFB0A36613800E8D6CA /* NSWindowTemplate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSWindowTemplate.h; sourceTree = ""; }; - 6EC4ACFC0A36613800E8D6CA /* NSWindowTemplate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSWindowTemplate.m; sourceTree = ""; }; - 6EC4ADE40A37294300E8D6CA /* NSButtonImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSButtonImageSource.h; sourceTree = ""; }; - 6EC4ADE50A37294300E8D6CA /* NSButtonImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSButtonImageSource.m; sourceTree = ""; }; - 6ECABDF70A3FA2B700AD7F7B /* NSCustomView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCustomView.h; sourceTree = ""; }; - 6ECABDF80A3FA2B700AD7F7B /* NSCustomView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCustomView.m; sourceTree = ""; }; - 98214B8D14EE566B006DB3BD /* NSStatusItem+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSStatusItem+Private.h"; sourceTree = ""; }; - 9824ACB914EDE5A000245AEF /* NSStatusBar_(Private).h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSStatusBar_(Private).h"; sourceTree = ""; }; - A149E81710069B5B00616E2D /* NSCellUndoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCellUndoManager.h; sourceTree = ""; }; - A149E81810069B5B00616E2D /* NSCellUndoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCellUndoManager.m; sourceTree = ""; }; - A1CC7017100534AB00DB9974 /* NSCachingBinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCachingBinder.h; sourceTree = ""; }; - A1CC7018100534AB00DB9974 /* NSCachingBinder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCachingBinder.m; sourceTree = ""; }; - A1CC70401005371100DB9974 /* NSTextFieldBinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTextFieldBinder.h; sourceTree = ""; }; - A1CC70411005371100DB9974 /* NSTextFieldBinder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTextFieldBinder.m; sourceTree = ""; }; - C81BEA0D0EA6038800478D50 /* O2Context_cairo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_cairo.h; sourceTree = ""; }; - C81BEA0E0EA6038800478D50 /* O2Context_cairo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_cairo.m; sourceTree = ""; }; - C829A6A210FF911400A2306E /* NSGoLeftTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSGoLeftTemplate.pdf; sourceTree = ""; }; - C829A6B210FFA2D100A2306E /* NSGoRightTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSGoRightTemplate.pdf; sourceTree = ""; }; - C84909350E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSUserDefaultsControllerProxy.h; sourceTree = ""; }; - C84909360E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSUserDefaultsControllerProxy.m; sourceTree = ""; }; - C85D91930EE6A806004EBAEA /* NSDictionaryController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDictionaryController.h; sourceTree = ""; }; - C85D91940EE6A806004EBAEA /* NSDictionaryController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDictionaryController.m; sourceTree = ""; }; - C8746B2C0EA379DE007A6BE2 /* X11Display.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X11Display.h; sourceTree = ""; }; - C8746B2D0EA379DE007A6BE2 /* X11Display.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = X11Display.m; sourceTree = ""; }; - C8746B3F0EA396D0007A6BE2 /* X11Window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X11Window.h; sourceTree = ""; }; - C8746B400EA396D0007A6BE2 /* X11Window.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = X11Window.m; sourceTree = ""; }; - C8746BAB0EA3EE11007A6BE2 /* KTFont_FT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KTFont_FT.h; sourceTree = ""; }; - C8746BAC0EA3EE11007A6BE2 /* KTFont_FT.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KTFont_FT.m; sourceTree = ""; }; - C8AB73080F40C21A00D93B96 /* NSControllerMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSControllerMarker.h; sourceTree = ""; }; - C8AB73090F40C21A00D93B96 /* NSControllerMarker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSControllerMarker.m; sourceTree = ""; }; - C8B239A20BF8EEB500CA33AF /* defaultBindingOptions.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = defaultBindingOptions.plist; sourceTree = ""; }; - C8C52C8D0E7ED1FF003F03B5 /* NSObservationProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSObservationProxy.h; sourceTree = ""; }; - C8C52C8E0E7ED1FF003F03B5 /* NSObservationProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSObservationProxy.m; sourceTree = ""; }; - C8E4F57F0BFF7A8A0076D5E6 /* NSAffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAffineTransform.h; sourceTree = ""; }; - C8E4F5800BFF7A8A0076D5E6 /* NSAffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSAffineTransform.m; sourceTree = ""; }; - CFBAE5181AFC56A900F2BB97 /* windows-i386-AppKit.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-AppKit.xcconfig"; sourceTree = ""; }; - FE01AAC10C5D9BCB00AEA51A /* AppKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AppKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE051BD91221A2F40097BA92 /* O2Font_freetype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font_freetype.h; sourceTree = ""; }; - FE051BDA1221A2F40097BA92 /* O2Font_freetype.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font_freetype.m; sourceTree = ""; }; - FE064AAA0B8B805000853FBB /* CGColor.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGColor.m; sourceTree = ""; }; - FE064AAC0B8B805000853FBB /* CGColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGColorSpace.m; sourceTree = ""; }; - FE064AAE0B8B805000853FBB /* CGDataProvider.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGDataProvider.m; sourceTree = ""; }; - FE064AB00B8B805000853FBB /* CGFunction.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGFunction.m; sourceTree = ""; }; - FE064AB40B8B805000853FBB /* CGLayer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGLayer.m; sourceTree = ""; }; - FE064AB60B8B805000853FBB /* CGPath.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGPath.m; sourceTree = ""; }; - FE064AB80B8B805000853FBB /* CGPattern.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGPattern.m; sourceTree = ""; }; - FE064ABA0B8B805000853FBB /* CGShading.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGShading.m; sourceTree = ""; }; - FE064ABB0B8B805000853FBB /* O2Color.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Color.h; sourceTree = ""; }; - FE064ABC0B8B805000853FBB /* O2Color.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Color.m; sourceTree = ""; }; - FE064AC10B8B805000853FBB /* O2Layer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Layer.h; sourceTree = ""; }; - FE064AC20B8B805000853FBB /* O2Layer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Layer.m; sourceTree = ""; }; - FE064AC30B8B805000853FBB /* O2Path.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Path.h; sourceTree = ""; }; - FE064AC40B8B805000853FBB /* O2Path.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Path.m; sourceTree = ""; }; - FE064AC50B8B805000853FBB /* O2Pattern.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Pattern.h; sourceTree = ""; }; - FE064AC60B8B805000853FBB /* O2Pattern.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Pattern.m; sourceTree = ""; }; - FE069E211245A4B80040F165 /* O2GlyphStencil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2GlyphStencil.h; sourceTree = ""; }; - FE069E221245A4B80040F165 /* O2GlyphStencil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2GlyphStencil.m; sourceTree = ""; }; - FE08C3210DDF299800B3169A /* NSColor_CGColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSColor_CGColor.h; sourceTree = ""; }; - FE08C3220DDF299800B3169A /* NSColor_CGColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSColor_CGColor.m; sourceTree = ""; }; - FE09AF3413FCC56600B53D10 /* NSSpellProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellProtocol.h; sourceTree = ""; }; - FE0C4EB81041CF2100D8C100 /* OpenGL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OpenGL.xcodeproj; path = ../OpenGL/OpenGL.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE1443681256D43D007FE685 /* _NSControllerArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _NSControllerArray.h; sourceTree = ""; }; - FE1443691256D43D007FE685 /* _NSControllerArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = _NSControllerArray.m; sourceTree = ""; }; - FE1707FC1260A1E000D18E9E /* NSEnterFullScreenTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSEnterFullScreenTemplate.pdf; sourceTree = ""; }; - FE1CEA6B0C8F12F800184630 /* opengl_dll.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = opengl_dll.h; sourceTree = ""; }; - FE1CEA6C0C8F12F800184630 /* opengl_dll.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = opengl_dll.m; sourceTree = ""; }; - FE1E54DF1430303F000D60A1 /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE1E54E01430303F000D60A1 /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE1E54E11430303F000D60A1 /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE1E54E21430303F000D60A1 /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE1E54E31430303F000D60A1 /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE1E54E41430303F000D60A1 /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE1E54E51430303F000D60A1 /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE1E54E61430303F000D60A1 /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE1E54E71430303F000D60A1 /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE1E54E81430303F000D60A1 /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE1E54E91430303F000D60A1 /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE1E54EA1430303F000D60A1 /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE1E54EB1430303F000D60A1 /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE1E54EC1430303F000D60A1 /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE1E54ED1430303F000D60A1 /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE1E86BF0BBCA62D0013B968 /* NSGraphicsStyle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSGraphicsStyle.h; sourceTree = ""; }; - FE1E86C00BBCA62D0013B968 /* NSGraphicsStyle.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSGraphicsStyle.m; sourceTree = ""; }; - FE1F65061508164F00C24624 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FE1F65071508165000C24624 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FE1F65081508165000C24624 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FE1F65091508165000C24624 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FE1F650A1508165000C24624 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FE1F650B1508165000C24624 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FE1F650C1508165000C24624 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FE1F650D1508165100C24624 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FE20C20711892436006F01BA /* CAAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CAAnimation.m; path = ../QuartzCore/CAAnimation.m; sourceTree = SOURCE_ROOT; }; - FE20C20811892436006F01BA /* CIAffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CIAffineTransform.m; path = ../QuartzCore/CIAffineTransform.m; sourceTree = SOURCE_ROOT; }; - FE20C20911892436006F01BA /* CIColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CIColor.m; path = ../QuartzCore/CIColor.m; sourceTree = SOURCE_ROOT; }; - FE20C20A11892436006F01BA /* CIContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CIContext.m; path = ../QuartzCore/CIContext.m; sourceTree = SOURCE_ROOT; }; - FE20C20B11892436006F01BA /* CIFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CIFilter.m; path = ../QuartzCore/CIFilter.m; sourceTree = SOURCE_ROOT; }; - FE20C20C11892436006F01BA /* CIImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CIImage.m; path = ../QuartzCore/CIImage.m; sourceTree = SOURCE_ROOT; }; - FE20C20D11892436006F01BA /* CIVector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CIVector.m; path = ../QuartzCore/CIVector.m; sourceTree = SOURCE_ROOT; }; - FE20C240118924A4006F01BA /* NSAccessibility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAccessibility.h; sourceTree = ""; }; - FE20C241118924A4006F01BA /* NSAccessibility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSAccessibility.m; sourceTree = ""; }; - FE20C242118924A4006F01BA /* NSCIImageRep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCIImageRep.h; sourceTree = ""; }; - FE20C243118924A4006F01BA /* NSCIImageRep.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCIImageRep.m; sourceTree = ""; }; - FE20C244118924A4006F01BA /* NSErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSErrors.h; sourceTree = ""; }; - FE20C26511892517006F01BA /* NSNibAXRelationshipConnector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSNibAXRelationshipConnector.h; sourceTree = ""; }; - FE20C26611892517006F01BA /* NSNibAXRelationshipConnector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSNibAXRelationshipConnector.m; sourceTree = ""; }; - FE25FF600EE58712009C91B1 /* O2Font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font.h; sourceTree = ""; }; - FE25FF610EE58712009C91B1 /* O2Font.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font.m; sourceTree = ""; }; - FE267E840B8BCC3C0000DDC0 /* O2ImageSource_JPEG.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_JPEG.m; sourceTree = ""; }; - FE267E850B8BCC3C0000DDC0 /* O2ImageSource_PNG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_PNG.h; sourceTree = ""; }; - FE267E860B8BCC3C0000DDC0 /* O2ImageSource_PNG.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_PNG.m; sourceTree = ""; }; - FE267E870B8BCC3C0000DDC0 /* O2ImageSource_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_TIFF.h; sourceTree = ""; }; - FE267E880B8BCC3C0000DDC0 /* O2ImageSource_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_TIFF.m; sourceTree = ""; }; - FE267E890B8BCC3C0000DDC0 /* O2ImageSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2ImageSource.h; sourceTree = ""; }; - FE267E8A0B8BCC3C0000DDC0 /* O2ImageSource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource.m; sourceTree = ""; }; - FE267EB40B8BD2690000DDC0 /* CGBitmapContext.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGBitmapContext.m; sourceTree = ""; }; - FE267EB50B8BD2690000DDC0 /* O2BitmapContext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2BitmapContext.h; sourceTree = ""; }; - FE267EB60B8BD2690000DDC0 /* O2BitmapContext.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2BitmapContext.m; sourceTree = ""; }; - FE2752F01230201B00BD6643 /* CGLPixelSurface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGLPixelSurface.m; sourceTree = ""; }; - FE2759A312341F3A00BD6643 /* O2Context_distill.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_distill.m; sourceTree = ""; }; - FE27AC140BE9038000136B43 /* NSTextInput.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTextInput.h; sourceTree = ""; }; - FE2A101D0B44A201006C03DE /* NSAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAlert.h; sourceTree = ""; }; - FE2A101E0B44A201006C03DE /* NSAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSAlert.m; sourceTree = ""; }; - FE2A10280B44A26B006C03DE /* NSArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSArrayController.h; sourceTree = ""; }; - FE2A10290B44A26B006C03DE /* NSArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSArrayController.m; sourceTree = ""; }; - FE2A10320B44A27C006C03DE /* NSBezierPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSBezierPath.h; sourceTree = ""; }; - FE2A10330B44A27C006C03DE /* NSBezierPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSBezierPath.m; sourceTree = ""; }; - FE2A10440B44A2E5006C03DE /* NSColorSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSColorSpace.h; sourceTree = ""; }; - FE2A10450B44A2E5006C03DE /* NSColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSColorSpace.m; sourceTree = ""; }; - FE2A10580B459984006C03DE /* NSController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSController.h; sourceTree = ""; }; - FE2A10590B459984006C03DE /* NSController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSController.m; sourceTree = ""; }; - FE2A10600B459992006C03DE /* NSObjectController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSObjectController.h; sourceTree = ""; }; - FE2A10610B459992006C03DE /* NSObjectController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSObjectController.m; sourceTree = ""; }; - FE2A10680B4599A3006C03DE /* NSTreeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTreeController.h; sourceTree = ""; }; - FE2A10690B4599A3006C03DE /* NSTreeController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTreeController.m; sourceTree = ""; }; - FE2A10700B4599BD006C03DE /* NSUserDefaultsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSUserDefaultsController.h; sourceTree = ""; }; - FE2A10710B4599BD006C03DE /* NSUserDefaultsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSUserDefaultsController.m; sourceTree = ""; }; - FE2A10C50B45BAC8006C03DE /* NSGlyphGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSGlyphGenerator.h; sourceTree = ""; }; - FE2A10C60B45BAC8006C03DE /* NSGlyphGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSGlyphGenerator.m; sourceTree = ""; }; - FE2A10CD0B45BAE2006C03DE /* NSGlyphInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSGlyphInfo.h; sourceTree = ""; }; - FE2A10CE0B45BAE2006C03DE /* NSGlyphInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSGlyphInfo.m; sourceTree = ""; }; - FE2A10D30B45BB0A006C03DE /* NSHelpManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSHelpManager.h; sourceTree = ""; }; - FE2A10D40B45BB0A006C03DE /* NSHelpManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSHelpManager.m; sourceTree = ""; }; - FE2A10D90B45BB28006C03DE /* NSLevelIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSLevelIndicator.h; sourceTree = ""; }; - FE2A10DA0B45BB28006C03DE /* NSLevelIndicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSLevelIndicator.m; sourceTree = ""; }; - FE2A10E10B45BB37006C03DE /* NSLevelIndicatorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSLevelIndicatorCell.h; sourceTree = ""; }; - FE2A10E20B45BB37006C03DE /* NSLevelIndicatorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSLevelIndicatorCell.m; sourceTree = ""; }; - FE2A10E90B45BB69006C03DE /* NSNib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSNib.h; sourceTree = ""; }; - FE2A10EA0B45BB69006C03DE /* NSNib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSNib.m; sourceTree = ""; }; - FE2A10EF0B45BC4F006C03DE /* NSPDFImageRep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPDFImageRep.h; sourceTree = ""; }; - FE2A10F00B45BC4F006C03DE /* NSPDFImageRep.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPDFImageRep.m; sourceTree = ""; }; - FE2A10F50B45BC75006C03DE /* NSPrinter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPrinter.h; sourceTree = ""; }; - FE2A10F60B45BC75006C03DE /* NSPrinter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPrinter.m; sourceTree = ""; }; - FE2A10FF0B45BCA6006C03DE /* NSSearchField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSearchField.h; sourceTree = ""; }; - FE2A11000B45BCA7006C03DE /* NSSearchField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSearchField.m; sourceTree = ""; }; - FE2A11050B45BCB5006C03DE /* NSSearchFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSearchFieldCell.h; sourceTree = ""; }; - FE2A11060B45BCB5006C03DE /* NSSearchFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSearchFieldCell.m; sourceTree = ""; }; - FE2A110B0B45BCCB006C03DE /* NSSegmentedCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSegmentedCell.h; sourceTree = ""; }; - FE2A110C0B45BCCB006C03DE /* NSSegmentedCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSegmentedCell.m; sourceTree = ""; }; - FE2A11130B45BCD8006C03DE /* NSSegmentedControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSegmentedControl.h; sourceTree = ""; }; - FE2A11140B45BCD8006C03DE /* NSSegmentedControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSegmentedControl.m; sourceTree = ""; }; - FE2A11190B45BD0A006C03DE /* NSShadow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSShadow.h; sourceTree = ""; }; - FE2A111A0B45BD0A006C03DE /* NSShadow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSShadow.m; sourceTree = ""; }; - FE2A11210B45C52C006C03DE /* NSSound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSound.h; sourceTree = ""; }; - FE2A11220B45C52C006C03DE /* NSSound.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSound.m; sourceTree = ""; }; - FE2A112D0B45C55D006C03DE /* NSSpellChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellChecker.h; sourceTree = ""; }; - FE2A112E0B45C55D006C03DE /* NSSpellChecker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSpellChecker.m; sourceTree = ""; }; - FE2A113D0B45C58D006C03DE /* NSStatusBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSStatusBar.h; sourceTree = ""; }; - FE2A113E0B45C58D006C03DE /* NSStatusBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStatusBar.m; sourceTree = ""; }; - FE2A11450B45C59A006C03DE /* NSStatusItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSStatusItem.h; sourceTree = ""; }; - FE2A11460B45C59A006C03DE /* NSStatusItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStatusItem.m; sourceTree = ""; }; - FE2A11520B45C65E006C03DE /* NSTokenField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTokenField.h; sourceTree = ""; }; - FE2A11530B45C65E006C03DE /* NSTokenField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTokenField.m; sourceTree = ""; }; - FE2A115A0B45C66A006C03DE /* NSTokenFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTokenFieldCell.h; sourceTree = ""; }; - FE2A115B0B45C66A006C03DE /* NSTokenFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTokenFieldCell.m; sourceTree = ""; }; - FE2C93D214035649002E0CB4 /* NSSpellingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellingViewController.h; sourceTree = ""; }; - FE2C93D314035649002E0CB4 /* NSSpellingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSpellingViewController.m; sourceTree = ""; }; - FE311FA40CCC430200EBD696 /* KTFont_gdi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = KTFont_gdi.h; sourceTree = ""; }; - FE311FA50CCC430200EBD696 /* KTFont_gdi.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = KTFont_gdi.m; sourceTree = ""; }; - FE337FC90EE77A6C00D4A751 /* CTFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTFont.m; sourceTree = ""; }; - FE33952C0DB92D25009AB3E0 /* O2Blending.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Blending.h; sourceTree = ""; }; - FE3395570DB930F4009AB3E0 /* O2Context_builtin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_builtin.h; sourceTree = ""; }; - FE3395580DB930F4009AB3E0 /* O2Context_builtin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_builtin.m; sourceTree = ""; }; - FE34054810CAB38F00A989F0 /* O2Font_FT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font_FT.h; sourceTree = ""; }; - FE34054910CAB38F00A989F0 /* O2Font_FT.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font_FT.m; sourceTree = ""; }; - FE34FBC60D6F24A5008D2C1A /* O2ClipPhase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2ClipPhase.h; sourceTree = ""; }; - FE34FBC70D6F24A5008D2C1A /* O2ClipPhase.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2ClipPhase.m; sourceTree = ""; }; - FE38749A0F4333D600EC9F00 /* NSToolbarItemView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSToolbarItemView.h; sourceTree = ""; }; - FE38749B0F4333D600EC9F00 /* NSToolbarItemView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSToolbarItemView.m; sourceTree = ""; }; - FE39BE5D12013CFD00A80A71 /* NSSearchGlass.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSSearchGlass.pdf; sourceTree = ""; }; - FE39BECA1201DD3A00A80A71 /* NSStopProgressFreestandingTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSStopProgressFreestandingTemplate.pdf; sourceTree = ""; }; - FE39C3291203304700A80A71 /* O2ClipState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ClipState.m; sourceTree = ""; }; - FE39C3301203305900A80A71 /* O2ClipState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ClipState.h; sourceTree = ""; }; - FE39C67E1203D5E200A80A71 /* CoreData.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreData.xcodeproj; path = ../CoreData/CoreData.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE39C6981203D72000A80A71 /* _NSManagedProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _NSManagedProxy.h; sourceTree = ""; }; - FE39C6991203D72000A80A71 /* _NSManagedProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = _NSManagedProxy.m; sourceTree = ""; }; - FE39C69A1203D72000A80A71 /* NSPersistentDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPersistentDocument.h; sourceTree = ""; }; - FE39C69B1203D72000A80A71 /* NSPersistentDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPersistentDocument.m; sourceTree = ""; }; - FE3C854D108779540018252A /* O2AffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2AffineTransform.h; sourceTree = ""; }; - FE3C854E108779540018252A /* O2AffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2AffineTransform.m; sourceTree = ""; }; - FE3C854F108779540018252A /* O2Geometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Geometry.h; sourceTree = ""; }; - FE3C8550108779540018252A /* O2Geometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Geometry.m; sourceTree = ""; }; - FE41B85812BEA2C800ED6C10 /* CATransaction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CATransaction.m; sourceTree = ""; }; - FE43BE1F11FFBAAC00119833 /* O2PDFBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFBlock.h; sourceTree = ""; }; - FE43BE2011FFBAAC00119833 /* O2PDFBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFBlock.m; sourceTree = ""; }; - FE4434020BB9833B00411464 /* NSGraphicsStyle_uxtheme.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSGraphicsStyle_uxtheme.h; sourceTree = ""; }; - FE4434030BB9833B00411464 /* NSGraphicsStyle_uxtheme.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSGraphicsStyle_uxtheme.m; sourceTree = ""; }; - FE4478071039F64E00ECD6A6 /* NSOpenGL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOpenGL.h; sourceTree = ""; }; - FE44BA0611E9807C00762BF1 /* NSActionTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSActionTemplate.pdf; sourceTree = ""; }; - FE44BA0811E9807C00762BF1 /* NSAddTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSAddTemplate.pdf; sourceTree = ""; }; - FE44BA0A11E9807C00762BF1 /* NSRemoveTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSRemoveTemplate.pdf; sourceTree = ""; }; - FE44BA3211E982B500762BF1 /* NSUser.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSUser.pdf; sourceTree = ""; }; - FE44BB2611EA2C9100762BF1 /* NSLockLockedTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSLockLockedTemplate.pdf; sourceTree = ""; }; - FE44BB3211EA30F500762BF1 /* NSLockUnlockedTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSLockUnlockedTemplate.pdf; sourceTree = ""; }; - FE44BCFC11EB928700762BF1 /* NSAdvanced.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSAdvanced.pdf; sourceTree = ""; }; - FE44BDD111EBA07A00762BF1 /* O2ImageSource_ICNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_ICNS.h; sourceTree = ""; }; - FE44BDD211EBA07A00762BF1 /* O2ImageSource_ICNS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_ICNS.m; sourceTree = ""; }; - FE44BF2711EC0A8F00762BF1 /* NSPreferencesGeneral.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSPreferencesGeneral.pdf; sourceTree = ""; }; - FE45EDCB0DC2407E00F49290 /* CGImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGImageSource.m; sourceTree = ""; }; - FE463D63102CAE3500B265D6 /* NSAnimationContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAnimationContext.h; sourceTree = ""; }; - FE463D64102CAE3500B265D6 /* NSAnimationContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSAnimationContext.m; sourceTree = ""; }; - FE463D6D102CAEF500B265D6 /* NSCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSCollectionView.h; path = NSCollectionView/NSCollectionView.h; sourceTree = ""; }; - FE463D6E102CAEF500B265D6 /* NSCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSCollectionView.m; path = NSCollectionView/NSCollectionView.m; sourceTree = ""; }; - FE463D83102CAF4A00B265D6 /* NSDockTile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDockTile.h; sourceTree = ""; }; - FE463D84102CAF4A00B265D6 /* NSDockTile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDockTile.m; sourceTree = ""; }; - FE463EC4102D0F9C00B265D6 /* NSPathCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPathCell.h; sourceTree = ""; }; - FE463EC5102D0F9C00B265D6 /* NSPathCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPathCell.m; sourceTree = ""; }; - FE463EC6102D0F9C00B265D6 /* NSPathComponentCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPathComponentCell.h; sourceTree = ""; }; - FE463EC7102D0F9C00B265D6 /* NSPathComponentCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPathComponentCell.m; sourceTree = ""; }; - FE463EC8102D0F9C00B265D6 /* NSPathControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPathControl.h; sourceTree = ""; }; - FE463EC9102D0F9D00B265D6 /* NSPathControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPathControl.m; sourceTree = ""; }; - FE463ECA102D0F9D00B265D6 /* NSPredicateEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPredicateEditor.h; sourceTree = ""; }; - FE463ECB102D0F9D00B265D6 /* NSPredicateEditor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPredicateEditor.m; sourceTree = ""; }; - FE463ECC102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPredicateEditorRowTemplate.h; sourceTree = ""; }; - FE463ECD102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPredicateEditorRowTemplate.m; sourceTree = ""; }; - FE463ECE102D0F9D00B265D6 /* NSRuleEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSRuleEditor.h; sourceTree = ""; }; - FE463ECF102D0F9D00B265D6 /* NSRuleEditor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSRuleEditor.m; sourceTree = ""; }; - FE463ED0102D0F9D00B265D6 /* NSTreeNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTreeNode.h; sourceTree = ""; }; - FE463ED1102D0F9D00B265D6 /* NSTreeNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTreeNode.m; sourceTree = ""; }; - FE463ED2102D0F9D00B265D6 /* NSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSViewController.h; sourceTree = ""; }; - FE463ED3102D0F9D00B265D6 /* NSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSViewController.m; sourceTree = ""; }; - FE49B9A51030C49300ADCC6C /* NSCollectionViewItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSCollectionViewItem.h; path = NSCollectionView/NSCollectionViewItem.h; sourceTree = ""; }; - FE49B9A61030C49300ADCC6C /* NSCollectionViewItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSCollectionViewItem.m; path = NSCollectionView/NSCollectionViewItem.m; sourceTree = ""; }; - FE4A25B91222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _NSRuleEditorViewSliceHolder.h; sourceTree = ""; }; - FE4A25BA1222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = _NSRuleEditorViewSliceHolder.m; sourceTree = ""; }; - FE4A25C51222C4E9009058C1 /* NSRuleEditorButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSRuleEditorButtonCell.h; sourceTree = ""; }; - FE4A25C61222C4E9009058C1 /* NSRuleEditorButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSRuleEditorButtonCell.m; sourceTree = ""; }; - FE4A25C71222C4E9009058C1 /* NSRuleEditorViewSliceRow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSRuleEditorViewSliceRow.h; sourceTree = ""; }; - FE4A25C81222C4E9009058C1 /* NSRuleEditorViewSliceRow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSRuleEditorViewSliceRow.m; sourceTree = ""; }; - FE4BDC090BCD40C600E19685 /* NSFontDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFontDescriptor.h; sourceTree = ""; }; - FE4BDC0A0BCD40C600E19685 /* NSFontDescriptor.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFontDescriptor.m; sourceTree = ""; }; - FE56BA020B1221330046B7D9 /* NSMutableAttributedString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableAttributedString.h; sourceTree = ""; }; - FE56BA030B1221330046B7D9 /* NSMutableAttributedString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableAttributedString.m; sourceTree = ""; }; - FE572D8B0CA0809500FB3E79 /* O2ImageSource_BMP.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_BMP.h; sourceTree = ""; }; - FE572D8C0CA0809500FB3E79 /* O2ImageSource_BMP.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_BMP.m; sourceTree = ""; }; - FE57F8D00C46B68C0078FFC1 /* O2DeviceContext_gdi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2DeviceContext_gdi.h; sourceTree = ""; }; - FE57F8D10C46B68C0078FFC1 /* O2DeviceContext_gdi.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2DeviceContext_gdi.m; sourceTree = ""; }; - FE57FAB50C47F2010078FFC1 /* NSPrintPanel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPrintPanel.h; sourceTree = ""; }; - FE57FAB60C47F2010078FFC1 /* NSPrintPanel.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPrintPanel.m; sourceTree = ""; }; - FE58787012694A2D009B9EDF /* O2argb8u.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2argb8u.h; sourceTree = ""; }; - FE58788012694AD2009B9EDF /* O2argb32f.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2argb32f.h; sourceTree = ""; }; - FE58790B12695C95009B9EDF /* O2argb8u.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2argb8u.m; sourceTree = ""; }; - FE58791412695E21009B9EDF /* O2argb32f.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2argb32f.m; sourceTree = ""; }; - FE587952126961BC009B9EDF /* O2ClipMask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ClipMask.h; sourceTree = ""; }; - FE587953126961BC009B9EDF /* O2ClipMask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ClipMask.m; sourceTree = ""; }; - FE5C699F0D76039F00098551 /* O2DeviceContext_gdiDIBSection.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2DeviceContext_gdiDIBSection.h; sourceTree = ""; }; - FE5C69A00D76039F00098551 /* O2DeviceContext_gdiDIBSection.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2DeviceContext_gdiDIBSection.m; sourceTree = ""; }; - FE5F4CA612A860BA00F5F334 /* O2Context_gdi+AppKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Context_gdi+AppKit.h"; sourceTree = ""; }; - FE5F4CA712A860BA00F5F334 /* O2Context_gdi+AppKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Context_gdi+AppKit.m"; sourceTree = ""; }; - FE642EF0170E6C3D00DFF7FF /* platform-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "platform-framework.xcconfig"; sourceTree = ""; }; - FE6466E10B2C611D00B302B0 /* NSMutableParagraphStyle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableParagraphStyle.h; sourceTree = ""; }; - FE6466E20B2C611D00B302B0 /* NSMutableParagraphStyle.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableParagraphStyle.m; sourceTree = ""; }; - FE64B8A70B81239D007EE513 /* O2ColorSpace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2ColorSpace.h; sourceTree = ""; }; - FE64B8A80B81239D007EE513 /* O2ColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2ColorSpace.m; sourceTree = ""; }; - FE64B8A90B81239D007EE513 /* O2Context.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Context.h; sourceTree = ""; }; - FE64B8AA0B81239D007EE513 /* O2Context.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Context.m; sourceTree = ""; }; - FE64B8AB0B81239D007EE513 /* O2DataProvider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2DataProvider.h; sourceTree = ""; }; - FE64B8AC0B81239D007EE513 /* O2DataProvider.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2DataProvider.m; sourceTree = ""; }; - FE64B8AD0B81239D007EE513 /* O2Function.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Function.h; sourceTree = ""; }; - FE64B8AE0B81239D007EE513 /* O2Function.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Function.m; sourceTree = ""; }; - FE64B8AF0B81239D007EE513 /* O2Image.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Image.h; sourceTree = ""; }; - FE64B8B00B81239D007EE513 /* O2Image.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Image.m; sourceTree = ""; }; - FE64B8B10B81239D007EE513 /* O2PDFArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFArray.h; sourceTree = ""; }; - FE64B8B20B81239D007EE513 /* O2PDFArray.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFArray.m; sourceTree = ""; }; - FE64B8B30B81239D007EE513 /* O2PDFContentStream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFContentStream.h; sourceTree = ""; }; - FE64B8B40B81239D007EE513 /* O2PDFContentStream.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFContentStream.m; sourceTree = ""; }; - FE64B8B50B81239D007EE513 /* O2PDFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFDictionary.h; sourceTree = ""; }; - FE64B8B60B81239D007EE513 /* O2PDFDictionary.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFDictionary.m; sourceTree = ""; }; - FE64B8B70B81239D007EE513 /* O2PDFDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFDocument.h; sourceTree = ""; }; - FE64B8B80B81239D007EE513 /* O2PDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFDocument.m; sourceTree = ""; }; - FE64B8B90B81239D007EE513 /* O2PDFFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFFilter.h; sourceTree = ""; }; - FE64B8BA0B81239D007EE513 /* O2PDFFilter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFFilter.m; sourceTree = ""; }; - FE64B8BB0B81239D007EE513 /* O2PDFFunction_Type2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type2.h; sourceTree = ""; }; - FE64B8BC0B81239D007EE513 /* O2PDFFunction_Type2.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type2.m; sourceTree = ""; }; - FE64B8BD0B81239D007EE513 /* O2PDFFunction_Type3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type3.h; sourceTree = ""; }; - FE64B8BE0B81239D007EE513 /* O2PDFFunction_Type3.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type3.m; sourceTree = ""; }; - FE64B8BF0B81239D007EE513 /* O2PDFObject_Boolean.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Boolean.h; sourceTree = ""; }; - FE64B8C00B81239D007EE513 /* O2PDFObject_Boolean.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Boolean.m; sourceTree = ""; }; - FE64B8C10B81239D007EE513 /* O2PDFObject_const.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_const.h; sourceTree = ""; }; - FE64B8C20B81239D007EE513 /* O2PDFObject_const.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_const.m; sourceTree = ""; }; - FE64B8C30B81239D007EE513 /* O2PDFObject_identifier.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_identifier.h; sourceTree = ""; }; - FE64B8C40B81239D007EE513 /* O2PDFObject_identifier.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_identifier.m; sourceTree = ""; }; - FE64B8C50B81239D007EE513 /* O2PDFObject_Integer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Integer.h; sourceTree = ""; }; - FE64B8C60B81239D007EE513 /* O2PDFObject_Integer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Integer.m; sourceTree = ""; }; - FE64B8C70B81239D007EE513 /* O2PDFObject_Name.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Name.h; sourceTree = ""; }; - FE64B8C80B81239D007EE513 /* O2PDFObject_Name.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Name.m; sourceTree = ""; }; - FE64B8C90B81239D007EE513 /* O2PDFObject_R.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_R.h; sourceTree = ""; }; - FE64B8CA0B81239D007EE513 /* O2PDFObject_R.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_R.m; sourceTree = ""; }; - FE64B8CB0B81239D007EE513 /* O2PDFObject_Real.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Real.h; sourceTree = ""; }; - FE64B8CC0B81239D007EE513 /* O2PDFObject_Real.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Real.m; sourceTree = ""; }; - FE64B8CD0B81239D007EE513 /* O2PDFObject.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFObject.h; sourceTree = ""; }; - FE64B8CE0B81239D007EE513 /* O2PDFObject.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject.m; sourceTree = ""; }; - FE64B8CF0B81239D007EE513 /* O2PDFOperators.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFOperators.h; sourceTree = ""; }; - FE64B8D00B81239D007EE513 /* O2PDFOperators.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFOperators.m; sourceTree = ""; }; - FE64B8D10B81239D007EE513 /* O2PDFOperatorTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFOperatorTable.h; sourceTree = ""; }; - FE64B8D20B81239D007EE513 /* O2PDFOperatorTable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFOperatorTable.m; sourceTree = ""; }; - FE64B8D30B81239D007EE513 /* O2PDFPage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFPage.h; sourceTree = ""; }; - FE64B8D40B81239D007EE513 /* O2PDFPage.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFPage.m; sourceTree = ""; }; - FE64B8D50B81239D007EE513 /* O2PDFScanner.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFScanner.h; sourceTree = ""; }; - FE64B8D60B81239D007EE513 /* O2PDFScanner.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFScanner.m; sourceTree = ""; }; - FE64B8D70B81239D007EE513 /* O2PDFStream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFStream.h; sourceTree = ""; }; - FE64B8D80B81239D007EE513 /* O2PDFStream.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFStream.m; sourceTree = ""; }; - FE64B8D90B81239D007EE513 /* O2PDFString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFString.h; sourceTree = ""; }; - FE64B8DA0B81239D007EE513 /* O2PDFString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFString.m; sourceTree = ""; }; - FE64B8DB0B81239D007EE513 /* O2PDFxref.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFxref.h; sourceTree = ""; }; - FE64B8DC0B81239D007EE513 /* O2PDFxref.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFxref.m; sourceTree = ""; }; - FE64B8DD0B81239D007EE513 /* O2PDFxrefEntry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFxrefEntry.h; sourceTree = ""; }; - FE64B8DE0B81239D007EE513 /* O2PDFxrefEntry.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFxrefEntry.m; sourceTree = ""; }; - FE64B8DF0B81239D007EE513 /* O2Shading.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Shading.h; sourceTree = ""; }; - FE64B8E00B81239D007EE513 /* O2Shading.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Shading.m; sourceTree = ""; }; - FE64B9210B8123F1007EE513 /* CGImage.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CGImage.m; sourceTree = ""; }; - FE669C840F12B1A600534F46 /* gif_lib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = gif_lib.m; sourceTree = ""; }; - FE669C8C0F12B1A600534F46 /* gif_lib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gif_lib.h; sourceTree = ""; }; - FE66F0050E513AE8006C5796 /* CGImageProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGImageProperties.m; sourceTree = ""; }; - FE6BE4440F446B92007D7F3F /* NSToolbarItemGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSToolbarItemGroup.h; sourceTree = ""; }; - FE6BE4450F446B92007D7F3F /* NSToolbarItemGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSToolbarItemGroup.m; sourceTree = ""; }; - FE6D918A101381F600BA6BAD /* NSCellUndoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCellUndoManager.h; sourceTree = ""; }; - FE6D918B101381F600BA6BAD /* NSCellUndoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCellUndoManager.m; sourceTree = ""; }; - FE6DC16A0BA85BEC0082AC66 /* NSOpenGLPixelBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOpenGLPixelBuffer.h; sourceTree = ""; }; - FE6DC16B0BA85BEC0082AC66 /* NSOpenGLPixelBuffer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOpenGLPixelBuffer.m; sourceTree = ""; }; - FE6DC3DC0BA9A6EB0082AC66 /* NSDatePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDatePicker.h; sourceTree = ""; }; - FE6DC3DD0BA9A6EB0082AC66 /* NSDatePicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDatePicker.m; sourceTree = ""; }; - FE6DC3EE0BA9A7100082AC66 /* NSDatePickerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDatePickerCell.h; sourceTree = ""; }; - FE6DC3EF0BA9A7100082AC66 /* NSDatePickerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDatePickerCell.m; sourceTree = ""; }; - FE6EDE330DB797D9005503A1 /* O2Exceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Exceptions.h; sourceTree = ""; }; - FE6EE27C0DB91EA8005503A1 /* VGmath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VGmath.h; sourceTree = ""; }; - FE6EE28C0DB91FDF005503A1 /* O2Surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Surface.h; sourceTree = ""; }; - FE6EE28D0DB91FDF005503A1 /* O2Surface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Surface.m; sourceTree = ""; }; - FE6EE2E30DB92B11005503A1 /* VGPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VGPath.h; sourceTree = ""; }; - FE6EE2E40DB92B11005503A1 /* VGPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VGPath.m; sourceTree = ""; }; - FE70846E1431168800B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE71DA7011F7403200E6F801 /* CIBloom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIBloom.m; sourceTree = ""; }; - FE71DA9111F7433000E6F801 /* CIBoxBlur.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIBoxBlur.m; sourceTree = ""; }; - FE71DA9211F7433000E6F801 /* CILinearGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CILinearGradient.m; sourceTree = ""; }; - FE71E83811FA88BE00E6F801 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = InfoPlist.strings; sourceTree = ""; }; - FE71E83911FA88BF00E6F801 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FE71E83C11FA88BF00E6F801 /* O2Font+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Font+PDF.h"; sourceTree = ""; }; - FE71E83D11FA88BF00E6F801 /* O2PDFFunction_Type4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type4.h; sourceTree = ""; }; - FE71E83E11FA88BF00E6F801 /* O2PDFFunction_Type4.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type4.m; sourceTree = ""; }; - FE71EF5111FBCABE00E6F801 /* O2Encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoding.h; sourceTree = ""; }; - FE71EF5211FBCABE00E6F801 /* O2Encoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoding.m; sourceTree = ""; }; - FE71F07A11FC72A500E6F801 /* O2PDFCharWidths.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFCharWidths.h; sourceTree = ""; }; - FE71F07B11FC72A500E6F801 /* O2PDFCharWidths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFCharWidths.m; sourceTree = ""; }; - FE71F1CC11FCB9B900E6F801 /* O2PDFFunction_Type0.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type0.h; sourceTree = ""; }; - FE71F1CD11FCB9B900E6F801 /* O2PDFFunction_Type0.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type0.m; sourceTree = ""; }; - FE71F25411FD21EE00E6F801 /* O2PDFFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFont.h; sourceTree = ""; }; - FE71F25511FD21EE00E6F801 /* O2PDFFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFont.m; sourceTree = ""; }; - FE71F3C311FD40B800E6F801 /* O2TTFDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2TTFDecoder.h; sourceTree = ""; }; - FE71F3C411FD40B800E6F801 /* O2TTFDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2TTFDecoder.m; sourceTree = ""; }; - FE7247670C06202B007CBC51 /* NSTextList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTextList.h; sourceTree = ""; }; - FE7247680C06202B007CBC51 /* NSTextList.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTextList.m; sourceTree = ""; }; - FE7247A40C0622F2007CBC51 /* NSTextAttachmentCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTextAttachmentCell.h; sourceTree = ""; }; - FE7247A50C0622F2007CBC51 /* NSTextAttachmentCell.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTextAttachmentCell.m; sourceTree = ""; }; - FE72484F0C0676AA007CBC51 /* NSTypesetter_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTypesetter_concrete.h; sourceTree = ""; }; - FE7248500C0676AA007CBC51 /* NSTypesetter_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTypesetter_concrete.m; sourceTree = ""; }; - FE74968612BB1D4F008DBFCB /* NSViewBackingLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSViewBackingLayer.h; sourceTree = ""; }; - FE74968712BB1D4F008DBFCB /* NSViewBackingLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSViewBackingLayer.m; sourceTree = ""; }; - FE7AA0CB10F9788100FEDD9C /* CAWindowOpenGLContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CAWindowOpenGLContext.h; path = ../QuartzCore/CAWindowOpenGLContext.h; sourceTree = SOURCE_ROOT; }; - FE7AA0CC10F9788100FEDD9C /* CAWindowOpenGLContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CAWindowOpenGLContext.m; path = ../QuartzCore/CAWindowOpenGLContext.m; sourceTree = SOURCE_ROOT; }; - FE7ABEBD0DC2C9BA0060D15B /* CGPDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPDFDocument.m; sourceTree = ""; }; - FE7EF2891211095500B2B398 /* NSTokenAttachmentCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTokenAttachmentCell.h; sourceTree = ""; }; - FE7EF28A1211095500B2B398 /* NSTokenAttachmentCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTokenAttachmentCell.m; sourceTree = ""; }; - FE7EFA87121335CB00B2B398 /* NSInvalidDataFreestandingTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSInvalidDataFreestandingTemplate.pdf; sourceTree = ""; }; - FE8286770D34727900F7489F /* NSApplicationIcon.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSApplicationIcon.tiff; sourceTree = ""; }; - FE8286780D34727900F7489F /* NSSystemInfoPanel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSSystemInfoPanel.h; sourceTree = ""; }; - FE8286790D34727900F7489F /* NSSystemInfoPanel.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSSystemInfoPanel.m; sourceTree = ""; }; - FE86887C0BC3FFA4009F515C /* NSButtonCell_disclosure_highlighted.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSButtonCell_disclosure_highlighted.tif; sourceTree = ""; }; - FE86887D0BC3FFA4009F515C /* NSButtonCell_disclosure_normal.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSButtonCell_disclosure_normal.tif; sourceTree = ""; }; - FE86887E0BC3FFA4009F515C /* NSButtonCell_disclosure_selected.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = NSButtonCell_disclosure_selected.tif; sourceTree = ""; }; - FE881E7E10D57CFD00C73204 /* O2FontState_cairo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2FontState_cairo.h; sourceTree = ""; }; - FE881E7F10D57CFD00C73204 /* O2FontState_cairo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2FontState_cairo.m; sourceTree = ""; }; - FE89AF470C33679100CD21FB /* KTFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = KTFont.h; sourceTree = ""; }; - FE89AF480C33679100CD21FB /* KTFont.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = KTFont.m; sourceTree = ""; }; - FE8BAEC50BC9EA8D0007FACA /* NSNibBindingConnector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSNibBindingConnector.h; sourceTree = ""; }; - FE8BAEC60BC9EA8D0007FACA /* NSNibBindingConnector.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSNibBindingConnector.m; sourceTree = ""; }; - FE8BAF1D0BC9EC680007FACA /* NSBinder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSBinder.h; sourceTree = ""; }; - FE8BAF1E0BC9EC680007FACA /* NSBinder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSBinder.m; sourceTree = ""; }; - FE8BAF1F0BC9EC680007FACA /* NSKVOBinder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSKVOBinder.h; sourceTree = ""; }; - FE8BAF200BC9EC680007FACA /* NSKVOBinder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSKVOBinder.m; sourceTree = ""; }; - FE8BAF210BC9EC680007FACA /* NSObject+BindingSupport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSObject+BindingSupport.h"; sourceTree = ""; }; - FE8BAF220BC9EC680007FACA /* NSObject+BindingSupport.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSObject+BindingSupport.m"; sourceTree = ""; }; - FE8C01CC10C59ADA00FE4072 /* O2ImageDestination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageDestination.h; sourceTree = ""; }; - FE8C01CD10C59ADA00FE4072 /* O2ImageDestination.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDestination.m; sourceTree = ""; }; - FE8C01D610C59B0600FE4072 /* O2Encoder_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoder_TIFF.h; sourceTree = ""; }; - FE8C01D710C59B0600FE4072 /* O2Encoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoder_TIFF.m; sourceTree = ""; }; - FE8D94A90CE3A6C700AFB060 /* NSControllerSelectionProxy.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSControllerSelectionProxy.h; sourceTree = ""; }; - FE8D94AA0CE3A6C700AFB060 /* NSControllerSelectionProxy.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSControllerSelectionProxy.m; sourceTree = ""; }; - FE8D951E0CE4057300AFB060 /* NSMultipleValueBinder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMultipleValueBinder.h; sourceTree = ""; }; - FE8D951F0CE4057300AFB060 /* NSMultipleValueBinder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMultipleValueBinder.m; sourceTree = ""; }; - FE8F9F260C9C5D0000270AEE /* O2zlib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2zlib.h; sourceTree = ""; }; - FE8F9F270C9C5D0000270AEE /* O2zlib.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2zlib.m; sourceTree = ""; }; - FE9131D610E93C0500FFF5D7 /* X11Event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X11Event.h; sourceTree = ""; }; - FE9131D710E93C0500FFF5D7 /* X11Event.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = X11Event.m; sourceTree = ""; }; - FE953DD8103B0EA0008A71F0 /* NSEvent_other.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSEvent_other.h; sourceTree = ""; }; - FE953DD9103B0EA0008A71F0 /* NSEvent_other.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSEvent_other.m; sourceTree = ""; }; - FE99DA72128396B6006D789F /* O2Encoder_PNG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoder_PNG.h; sourceTree = ""; }; - FE99DA73128396B6006D789F /* O2Encoder_PNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoder_PNG.m; sourceTree = ""; }; - FE9ACF10155EF59D002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder_JPEG_libjpeg.m; sourceTree = ""; }; - FE9ACF11155EF59D002AFCA9 /* O2ImageDecoder_JPEG_stb.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder_JPEG_stb.m; sourceTree = ""; }; - FE9ACF12155EF59D002AFCA9 /* O2ImageDecoder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder.m; sourceTree = ""; }; - FEA25F960EECCE4D008750D0 /* NSSound_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSound_win32.h; sourceTree = ""; }; - FEA25F970EECCE4D008750D0 /* NSSound_win32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSound_win32.m; sourceTree = ""; }; - FEA2CD1C10D6C1C0003C8FF5 /* O2Surface_cairo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Surface_cairo.h; sourceTree = ""; }; - FEA2CD1D10D6C1C0003C8FF5 /* O2Surface_cairo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Surface_cairo.m; sourceTree = ""; }; - FEA2CD4410D6D870003C8FF5 /* O2Context_builtin_FT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_builtin_FT.h; sourceTree = ""; }; - FEA2CD4510D6D870003C8FF5 /* O2Context_builtin_FT.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_builtin_FT.m; sourceTree = ""; }; - FEA317C10FD5893300F480D4 /* NSRaise.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSRaise.h; path = ../Foundation/NSException/NSRaise.h; sourceTree = SOURCE_ROOT; }; - FEA318290FD5961100F480D4 /* NSRangeEntries.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSRangeEntries.h; path = ../../Foundation/NSAttributedString/NSRangeEntries.h; sourceTree = ""; }; - FEA3182A0FD5961100F480D4 /* NSRangeEntries.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSRangeEntries.m; path = ../Foundation/NSAttributedString/NSRangeEntries.m; sourceTree = SOURCE_ROOT; }; - FEA661210FF5C6F200E2C03B /* O2Font_gdi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font_gdi.h; sourceTree = ""; }; - FEA661220FF5C6F200E2C03B /* O2Font_gdi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font_gdi.m; sourceTree = ""; }; - FEA8A98B0CD2CBC000E1E936 /* NSUserInterfaceValidation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSUserInterfaceValidation.h; sourceTree = ""; }; - FEA965B30E7EA97500413F40 /* NSBitmapImageRep-Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBitmapImageRep-Private.h"; sourceTree = ""; }; - FEABD6030CB9D0C90035F828 /* O2Context_gdi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2Context_gdi.h; sourceTree = ""; }; - FEABD6040CB9D0C90035F828 /* O2Context_gdi.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2Context_gdi.m; sourceTree = ""; }; - FEAE000B11E4E45600CA0912 /* CVDisplayLink.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CVDisplayLink.m; path = ../CoreVideo/CVDisplayLink.m; sourceTree = SOURCE_ROOT; }; - FEAED7980FD6C95D0043F915 /* CGDataConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGDataConsumer.m; sourceTree = ""; }; - FEAED79C0FD6C96E0043F915 /* O2DataConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2DataConsumer.h; sourceTree = ""; }; - FEAED79D0FD6C96E0043F915 /* O2DataConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2DataConsumer.m; sourceTree = ""; }; - FEAED7A40FD6C9820043F915 /* CGPDFContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPDFContext.m; sourceTree = ""; }; - FEAEFF7911E4D1B600CA0912 /* glweak.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = glweak.m; sourceTree = ""; }; - FEB07F9F0FF9B37C00C27509 /* O2Font+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Font+PDF.m"; sourceTree = ""; }; - FEB3F1E714049CC400059C8F /* NSSpellCheckerTagData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellCheckerTagData.h; sourceTree = ""; }; - FEB3F1E814049CC400059C8F /* NSSpellCheckerTagData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSpellCheckerTagData.m; sourceTree = ""; }; - FEBE636B17D44C5E00EFA1F2 /* NSSound_DirectShow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSound_DirectShow.h; sourceTree = ""; }; - FEBE636C17D44C5E00EFA1F2 /* NSSound_DirectShow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSound_DirectShow.m; sourceTree = ""; }; - FEBF55E20DCA112900CE5A1C /* O2ImageSource_JPEG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_JPEG.h; sourceTree = ""; }; - FEBF55E30DCA112900CE5A1C /* O2Paint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint.h; sourceTree = ""; }; - FEBF55E40DCA112900CE5A1C /* O2Paint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint.m; sourceTree = ""; }; - FEBF5A010DCD450700CE5A1C /* O2Paint_axialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_axialGradient.h; sourceTree = ""; }; - FEBF5A020DCD450700CE5A1C /* O2Paint_axialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_axialGradient.m; sourceTree = ""; }; - FEBF5A030DCD450700CE5A1C /* O2Paint_color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_color.h; sourceTree = ""; }; - FEBF5A040DCD450700CE5A1C /* O2Paint_color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_color.m; sourceTree = ""; }; - FEBF5A050DCD450700CE5A1C /* O2Paint_image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_image.h; sourceTree = ""; }; - FEBF5A060DCD450700CE5A1C /* O2Paint_image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_image.m; sourceTree = ""; }; - FEBF5A070DCD450700CE5A1C /* O2Paint_pattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_pattern.h; sourceTree = ""; }; - FEBF5A080DCD450700CE5A1C /* O2Paint_pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_pattern.m; sourceTree = ""; }; - FEBF5A090DCD450700CE5A1C /* O2Paint_radialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_radialGradient.h; sourceTree = ""; }; - FEBF5A0A0DCD450700CE5A1C /* O2Paint_radialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_radialGradient.m; sourceTree = ""; }; - FEBF5A0B0DCD450700CE5A1C /* O2Paint_ramp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_ramp.h; sourceTree = ""; }; - FEBF5A0C0DCD450700CE5A1C /* O2Paint_ramp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_ramp.m; sourceTree = ""; }; - FEBF5B75100D851500F64C71 /* O2LZW.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2LZW.h; sourceTree = ""; }; - FEBF5B76100D851500F64C71 /* O2LZW.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2LZW.m; sourceTree = ""; }; - FEC0C77F0F146AF800903F6D /* O2ImageSource_GIF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_GIF.h; sourceTree = ""; }; - FEC0C7800F146AF800903F6D /* O2ImageSource_GIF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_GIF.m; sourceTree = ""; }; - FECAF4C80DB710EE00BA2A8E /* ApplicationServices.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ApplicationServices.xcodeproj; path = ../ApplicationServices/ApplicationServices.xcodeproj; sourceTree = SOURCE_ROOT; }; - FED166D40BE502AD00BF9889 /* NSSegmentItem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSSegmentItem.h; sourceTree = ""; }; - FED166D50BE502AD00BF9889 /* NSSegmentItem.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSSegmentItem.m; sourceTree = ""; }; - FED167A40BE57EB300BF9889 /* NSTextBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTextBlock.h; sourceTree = ""; }; - FED167A50BE57EB300BF9889 /* NSTextBlock.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTextBlock.m; sourceTree = ""; }; - FED167A60BE57EB300BF9889 /* NSTextTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTextTable.h; sourceTree = ""; }; - FED167A70BE57EB300BF9889 /* NSTextTable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTextTable.m; sourceTree = ""; }; - FED167A80BE57EB300BF9889 /* NSTextTableBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTextTableBlock.h; sourceTree = ""; }; - FED167A90BE57EB300BF9889 /* NSTextTableBlock.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTextTableBlock.m; sourceTree = ""; }; - FED310DD0BCC027200552615 /* NSAnimation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAnimation.h; sourceTree = ""; }; - FED310DE0BCC027200552615 /* NSAnimation.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAnimation.m; sourceTree = ""; }; - FED310DF0BCC027200552615 /* NSViewAnimation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSViewAnimation.h; sourceTree = ""; }; - FED310E00BCC027200552615 /* NSViewAnimation.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSViewAnimation.m; sourceTree = ""; }; - FED35B6E104DF8C10038ED7C /* CGLContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGLContext.m; sourceTree = ""; }; - FED38C3110E13DCA00A2A651 /* CALayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CALayer.m; path = ../QuartzCore/CALayer.m; sourceTree = SOURCE_ROOT; }; - FED38C3210E13DCA00A2A651 /* CARenderer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CARenderer.m; path = ../QuartzCore/CARenderer.m; sourceTree = SOURCE_ROOT; }; - FED38C3310E13DCA00A2A651 /* CATransform3D.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CATransform3D.m; path = ../QuartzCore/CATransform3D.m; sourceTree = SOURCE_ROOT; }; - FED38C3B10E13DDF00A2A651 /* QuartzCore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = QuartzCore.xcodeproj; sourceTree = ""; }; - FED56E6411A2D87100D6D09B /* CGGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGGradient.m; sourceTree = ""; }; - FEDE655E1210A294003D3EF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = "/System/Library/Frameworks//CoreData.framework"; sourceTree = ""; }; - FEDEA8AC12C112E5008E5A59 /* CATransactionGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CATransactionGroup.m; sourceTree = ""; }; - FEDEA8B212C112EE008E5A59 /* CATransactionGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATransactionGroup.h; sourceTree = ""; }; - FEDEA95312C13368008E5A59 /* CABase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CABase.m; sourceTree = ""; }; - FEDEAA9812C2639B008E5A59 /* CAValueFunction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAValueFunction.m; sourceTree = ""; }; - FEDEABAD12C98F4C008E5A59 /* CALayerContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CALayerContext.m; sourceTree = ""; }; - FEDF951B0CAF43E7009DC96F /* O2PDFContext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = O2PDFContext.h; sourceTree = ""; }; - FEDF951C0CAF43E7009DC96F /* O2PDFContext.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = O2PDFContext.m; sourceTree = ""; }; - FEE36B7F0F4B20C5005AEBBF /* NSToolbarOverflowArrow.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSToolbarOverflowArrow.pdf; sourceTree = ""; }; - FEE4B2F8133BB8770095E656 /* NSWindowScripting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSWindowScripting.h; sourceTree = ""; }; - FEE4B2F9133BB8770095E656 /* NSWindowScripting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSWindowScripting.m; sourceTree = ""; }; - FEE7E0B610E26487004A50F8 /* CGLContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGLContext.m; sourceTree = ""; }; - FEED24790EC9E8F200A5B07E /* NSRefreshTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSRefreshTemplate.pdf; sourceTree = ""; }; - FEED42C81224B82B0059B0DF /* NSExitFullScreenTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSExitFullScreenTemplate.pdf; sourceTree = ""; }; - FEED42CA1224B82B0059B0DF /* NSInfo.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSInfo.pdf; sourceTree = ""; }; - FEED42CC1224B82B0059B0DF /* NSStopProgressTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = NSStopProgressTemplate.pdf; sourceTree = ""; }; - FEEF00580B96441800069FD1 /* CGPDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPDFPage.m; sourceTree = ""; }; - FEF0889E10C5B06400D38A2F /* CGImageDestination.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGImageDestination.m; sourceTree = ""; }; - FEF33BFF0B93543C00DC0B6F /* O2MutablePath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2MutablePath.h; sourceTree = ""; }; - FEF33C000B93543C00DC0B6F /* O2MutablePath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2MutablePath.m; sourceTree = ""; }; - FEF4684210895C9800B45195 /* CGConversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGConversions.h; sourceTree = ""; }; - FEF5A75D11E4E82F009B0041 /* CGDirectDisplay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGDirectDisplay.m; sourceTree = ""; }; - FEF5A7C711E4EB0A009B0041 /* CAAnimationGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAAnimationGroup.m; sourceTree = ""; }; - FEF5A7C811E4EB0A009B0041 /* CABasicAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CABasicAnimation.m; sourceTree = ""; }; - FEF5A7C911E4EB0A009B0041 /* CAMediaTimingFunction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAMediaTimingFunction.m; sourceTree = ""; }; - FEF5A7CA11E4EB0A009B0041 /* CAPropertyAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAPropertyAnimation.m; sourceTree = ""; }; - FEF5A7CB11E4EB0A009B0041 /* CATransition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CATransition.m; sourceTree = ""; }; - FEF9CAE70E133FF2003502ED /* O2Surface_DIBSection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Surface_DIBSection.h; sourceTree = ""; }; - FEF9CAE80E133FF2003502ED /* O2Surface_DIBSection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Surface_DIBSection.m; sourceTree = ""; }; - FEF9CB780E13EB8E003502ED /* O2ColorSpace+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2ColorSpace+PDF.h"; sourceTree = ""; }; - FEF9CB790E13EB8E003502ED /* O2ColorSpace+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2ColorSpace+PDF.m"; sourceTree = ""; }; - FEF9CB990E13EB8E003502ED /* O2Function+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Function+PDF.h"; sourceTree = ""; }; - FEF9CB9A0E13EB8E003502ED /* O2Function+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Function+PDF.m"; sourceTree = ""; }; - FEF9CB9B0E13EB8E003502ED /* O2Image+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Image+PDF.h"; sourceTree = ""; }; - FEF9CB9C0E13EB8E003502ED /* O2Image+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Image+PDF.m"; sourceTree = ""; }; - FEF9CB9D0E13EB8E003502ED /* O2Shading+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Shading+PDF.h"; sourceTree = ""; }; - FEF9CB9E0E13EB8E003502ED /* O2Shading+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Shading+PDF.m"; sourceTree = ""; }; - FEF9CCC10E1416C4003502ED /* O2Context_builtin_gdi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_builtin_gdi.h; sourceTree = ""; }; - FEF9CCC20E1416C4003502ED /* O2Context_builtin_gdi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_builtin_gdi.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - FE01AABB0C5D9BCB00AEA51A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01AABC0C5D9BCB00AEA51A /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 63EADBFB14BC9C73005B38BB /* NSSpellChecker */ = { - isa = PBXGroup; - children = ( - 63EADBFE14BC9C9F005B38BB /* Interface */, - FEB3F1E714049CC400059C8F /* NSSpellCheckerTagData.h */, - FEB3F1E814049CC400059C8F /* NSSpellCheckerTagData.m */, - FE2C93D214035649002E0CB4 /* NSSpellingViewController.h */, - FE2C93D314035649002E0CB4 /* NSSpellingViewController.m */, - FE09AF3413FCC56600B53D10 /* NSSpellProtocol.h */, - FE2A112D0B45C55D006C03DE /* NSSpellChecker.h */, - FE2A112E0B45C55D006C03DE /* NSSpellChecker.m */, - ); - name = NSSpellChecker; - sourceTree = ""; - }; - 63EADBFE14BC9C9F005B38BB /* Interface */ = { - isa = PBXGroup; - children = ( - 6311B19B14C7515B007AD8C0 /* NSSpellingViewController.xib */, - ); - name = Interface; - sourceTree = ""; - }; - 6E2B531A0976074C00DA0954 /* AppKit */ = { - isa = PBXGroup; - children = ( - FE1E54DE1430303F000D60A1 /* xcconfig */, - FE4A25C51222C4E9009058C1 /* NSRuleEditorButtonCell.h */, - FE4A25C61222C4E9009058C1 /* NSRuleEditorButtonCell.m */, - FE4A25C71222C4E9009058C1 /* NSRuleEditorViewSliceRow.h */, - FE4A25C81222C4E9009058C1 /* NSRuleEditorViewSliceRow.m */, - FE4A25B91222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.h */, - FE4A25BA1222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.m */, - FE7EF2891211095500B2B398 /* NSTokenAttachmentCell.h */, - FE7EF28A1211095500B2B398 /* NSTokenAttachmentCell.m */, - FE39C6921203D65200A80A71 /* CoreData_ */, - FE39C67E1203D5E200A80A71 /* CoreData.xcodeproj */, - FE0C4EB81041CF2100D8C100 /* OpenGL.xcodeproj */, - 6E46FEBE0A2D2DCF004CD27E /* Foundation.xcodeproj */, - FECAF4C80DB710EE00BA2A8E /* ApplicationServices.xcodeproj */, - FED38C2610E1305700A2A651 /* QuartzCore */, - 6E2B53240976075200DA0954 /* Classes */, - 6E2B54DE0976075300DA0954 /* Interfaces */, - 6E2B54E60976075300DA0954 /* Images */, - 6E2B55050976075300DA0954 /* Resources */, - 6E2B575A0976075500DA0954 /* External Frameworks and Libraries */, - 6E2B53230976074C00DA0954 /* Products */, - ); - indentWidth = 4; - name = AppKit; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 6E2B53230976074C00DA0954 /* Products */ = { - isa = PBXGroup; - children = ( - FE01AAC10C5D9BCB00AEA51A /* AppKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - 6E2B53240976075200DA0954 /* Classes */ = { - isa = PBXGroup; - children = ( - FE20C240118924A4006F01BA /* NSAccessibility.h */, - FE20C241118924A4006F01BA /* NSAccessibility.m */, - FE20C242118924A4006F01BA /* NSCIImageRep.h */, - FE20C243118924A4006F01BA /* NSCIImageRep.m */, - FE20C244118924A4006F01BA /* NSErrors.h */, - FE463EC4102D0F9C00B265D6 /* NSPathCell.h */, - FE463EC5102D0F9C00B265D6 /* NSPathCell.m */, - FE463EC6102D0F9C00B265D6 /* NSPathComponentCell.h */, - FE463EC7102D0F9C00B265D6 /* NSPathComponentCell.m */, - FE463EC8102D0F9C00B265D6 /* NSPathControl.h */, - FE463EC9102D0F9D00B265D6 /* NSPathControl.m */, - 496555D717A02FB90015D3B3 /* NSPoofAnimation.h */, - 496555D817A02FB90015D3B3 /* NSPoofAnimation.m */, - FE463ECA102D0F9D00B265D6 /* NSPredicateEditor.h */, - FE463ECB102D0F9D00B265D6 /* NSPredicateEditor.m */, - FE463ECC102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.h */, - FE463ECD102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.m */, - FE463ECE102D0F9D00B265D6 /* NSRuleEditor.h */, - FE463ECF102D0F9D00B265D6 /* NSRuleEditor.m */, - FE463ED0102D0F9D00B265D6 /* NSTreeNode.h */, - FE463ED1102D0F9D00B265D6 /* NSTreeNode.m */, - FE463ED2102D0F9D00B265D6 /* NSViewController.h */, - FE463ED3102D0F9D00B265D6 /* NSViewController.m */, - FEB0822A0FFB1F2800C27509 /* CoreText */, - FEA317C10FD5893300F480D4 /* NSRaise.h */, - 6E2B53FC0976075200DA0954 /* AppKit.h */, - 6E2B53FA0976075200DA0954 /* AppKitExport.h */, - FE5C0EE511638FC600065D1C /* Onyx2D */, - 6E2B55B20976075300DA0954 /* CoreGraphics */, - FE267E7F0B8BCB660000DDC0 /* ImageIO */, - 6E2B55100976075300DA0954 /* nib */, - 6E2B53FE0976075200DA0954 /* NSActionCell.h */, - 6E2B53250976075200DA0954 /* NSActionCell.m */, - C8E4F57F0BFF7A8A0076D5E6 /* NSAffineTransform.h */, - C8E4F5800BFF7A8A0076D5E6 /* NSAffineTransform.m */, - FE2A101D0B44A201006C03DE /* NSAlert.h */, - FE2A101E0B44A201006C03DE /* NSAlert.m */, - 6E2B54020976075200DA0954 /* NSAlertPanel.h */, - 6E2B53290976075200DA0954 /* NSAlertPanel.m */, - FED310D70BCC022300552615 /* NSAnimation */, - 6E2B54040976075200DA0954 /* NSApplication.h */, - 6E2B532B0976075200DA0954 /* NSApplication.m */, - 6E2B54060976075200DA0954 /* NSAttributedString.h */, - 6E2B532D0976075200DA0954 /* NSAttributedString.m */, - FE2A10320B44A27C006C03DE /* NSBezierPath.h */, - FE2A10330B44A27C006C03DE /* NSBezierPath.m */, - 6E2B54080976075200DA0954 /* NSBitmapImageRep.h */, - FEA965B30E7EA97500413F40 /* NSBitmapImageRep-Private.h */, - 6E2B532F0976075200DA0954 /* NSBitmapImageRep.m */, - 6E2B540A0976075200DA0954 /* NSBox.h */, - 6E2B53310976075200DA0954 /* NSBox.m */, - 6E2B540C0976075200DA0954 /* NSBrowser.h */, - 6E2B53330976075200DA0954 /* NSBrowser.m */, - 6E2B540E0976075200DA0954 /* NSBrowserCell.h */, - 6E2B53350976075200DA0954 /* NSBrowserCell.m */, - 6E2B54100976075200DA0954 /* NSButton.h */, - 6E2B53370976075200DA0954 /* NSButton.m */, - 6E2B54120976075200DA0954 /* NSButtonCell.h */, - 6E2B53390976075200DA0954 /* NSButtonCell.m */, - 6E2B54140976075200DA0954 /* NSCachedImageRep.h */, - 6E2B533B0976075200DA0954 /* NSCachedImageRep.m */, - 6E2B54160976075200DA0954 /* NSCell.h */, - 6E2B533D0976075200DA0954 /* NSCell.m */, - FE6D918A101381F600BA6BAD /* NSCellUndoManager.h */, - FE6D918B101381F600BA6BAD /* NSCellUndoManager.m */, - FE49B9A41030C46700ADCC6C /* NSCollectionView */, - 6E2B54180976075200DA0954 /* NSClipView.h */, - 6E2B533F0976075200DA0954 /* NSClipView.m */, - 6E2B55430976075300DA0954 /* NSColor */, - 6E2B541A0976075200DA0954 /* NSColorList.h */, - 6E2B53410976075200DA0954 /* NSColorList.m */, - 6E2B541E0976075200DA0954 /* NSColorPanel.h */, - 6E2B53450976075200DA0954 /* NSColorPanel.m */, - 6E2B55DF0976075300DA0954 /* NSColorPicker */, - FE2A10440B44A2E5006C03DE /* NSColorSpace.h */, - FE2A10450B44A2E5006C03DE /* NSColorSpace.m */, - 6E2B54200976075200DA0954 /* NSColorWell.h */, - 6E2B53470976075200DA0954 /* NSColorWell.m */, - 6E2B54220976075200DA0954 /* NSComboBox.h */, - 6E2B53490976075200DA0954 /* NSComboBox.m */, - 6E2B54240976075200DA0954 /* NSComboBoxCell.h */, - 6E2B534B0976075200DA0954 /* NSComboBoxCell.m */, - 6E2B54260976075200DA0954 /* NSComboBoxView.h */, - 6E2B534D0976075200DA0954 /* NSComboBoxView.m */, - 6E2B54280976075200DA0954 /* NSComboBoxWindow.h */, - 6E2B534F0976075200DA0954 /* NSComboBoxWindow.m */, - 6E2B542A0976075200DA0954 /* NSControl.h */, - 6E2B53510976075200DA0954 /* NSControl.m */, - FE2A10250B44A239006C03DE /* NSController */, - 6E2B542C0976075200DA0954 /* NSCursor.h */, - 6E2B53530976075200DA0954 /* NSCursor.m */, - 6E2B542E0976075200DA0954 /* NSCursorRect.h */, - 6E2B53550976075200DA0954 /* NSCursorRect.m */, - 6E2B54300976075200DA0954 /* NSCustomImageRep.h */, - 6E2B53570976075200DA0954 /* NSCustomImageRep.m */, - FE6DC3DC0BA9A6EB0082AC66 /* NSDatePicker.h */, - FE6DC3DD0BA9A6EB0082AC66 /* NSDatePicker.m */, - FE6DC3EE0BA9A7100082AC66 /* NSDatePickerCell.h */, - FE6DC3EF0BA9A7100082AC66 /* NSDatePickerCell.m */, - 6E2B54320976075200DA0954 /* NSDisplay.h */, - 6E2B53590976075200DA0954 /* NSDisplay.m */, - FE463D83102CAF4A00B265D6 /* NSDockTile.h */, - FE463D84102CAF4A00B265D6 /* NSDockTile.m */, - 6E2B54340976075200DA0954 /* NSDocument.h */, - 6E2B535B0976075200DA0954 /* NSDocument.m */, - 6E2B54360976075200DA0954 /* NSDocumentController.h */, - 6E2B535D0976075200DA0954 /* NSDocumentController.m */, - 6E2B54380976075200DA0954 /* NSDragging.h */, - 6E2B543A0976075200DA0954 /* NSDraggingManager.h */, - 6E2B535F0976075200DA0954 /* NSDraggingManager.m */, - 6E2B57460976075500DA0954 /* NSDrawer */, - 6E2B543C0976075200DA0954 /* NSEPSImageRep.h */, - 6E2B53610976075200DA0954 /* NSEPSImageRep.m */, - 6E2B55970976075300DA0954 /* NSEvent */, - 6E2B543E0976075200DA0954 /* NSFileWrapper.h */, - 6E2B53630976075200DA0954 /* NSFileWrapper.m */, - 6E2B54400976075200DA0954 /* NSFont.h */, - 6E2B53650976075200DA0954 /* NSFont.m */, - FE4BDC090BCD40C600E19685 /* NSFontDescriptor.h */, - FE4BDC0A0BCD40C600E19685 /* NSFontDescriptor.m */, - 6E2B54420976075200DA0954 /* NSFontFamily.h */, - 6E2B536B0976075200DA0954 /* NSFontFamily.m */, - 6E2B54440976075200DA0954 /* NSFontManager.h */, - 6E2B536D0976075200DA0954 /* NSFontManager.m */, - 6E2B54460976075200DA0954 /* NSFontMetric.h */, - 6E2B536F0976075200DA0954 /* NSFontMetric.m */, - 6E2B54480976075200DA0954 /* NSFontPanel.h */, - 6E2B53710976075200DA0954 /* NSFontPanel.m */, - 6E2B544A0976075200DA0954 /* NSFontPanelCell.h */, - 6E2B53730976075200DA0954 /* NSFontPanelCell.m */, - 6E2B544C0976075200DA0954 /* NSFontTypeface.h */, - 6E2B53750976075200DA0954 /* NSFontTypeface.m */, - 6E2B544E0976075200DA0954 /* NSForm.h */, - 6E2B53670976075200DA0954 /* NSForm.m */, - 6E2B54500976075200DA0954 /* NSFormCell.h */, - 6E2B53690976075200DA0954 /* NSFormCell.m */, - FE2A10C50B45BAC8006C03DE /* NSGlyphGenerator.h */, - FE2A10C60B45BAC8006C03DE /* NSGlyphGenerator.m */, - FE2A10CD0B45BAE2006C03DE /* NSGlyphInfo.h */, - FE2A10CE0B45BAE2006C03DE /* NSGlyphInfo.m */, - 36570F980E818CD5008FE1BE /* NSGradient.h */, - 36570F990E818CD5008FE1BE /* NSGradient.m */, - 6E2B54520976075200DA0954 /* NSGraphics.h */, - 6E2B53770976075200DA0954 /* NSGraphics.m */, - 6E2B54540976075200DA0954 /* NSGraphicsContext.h */, - 6E2B53790976075200DA0954 /* NSGraphicsContext.m */, - 6E2B54560976075200DA0954 /* NSGraphicsContextFunctions.h */, - FE2A10D30B45BB0A006C03DE /* NSHelpManager.h */, - FE2A10D40B45BB0A006C03DE /* NSHelpManager.m */, - 6E2B54580976075200DA0954 /* NSImage.h */, - 6E2B537B0976075200DA0954 /* NSImage.m */, - 6E2B545A0976075200DA0954 /* NSImageCell.h */, - 6E2B537D0976075200DA0954 /* NSImageCell.m */, - 6E2B545C0976075200DA0954 /* NSImageRep.h */, - 6E2B537F0976075200DA0954 /* NSImageRep.m */, - 6E2B545E0976075200DA0954 /* NSImageView.h */, - 6E2B53810976075200DA0954 /* NSImageView.m */, - FE44327B0BB95F4300411464 /* NSInterfacePart */, - 6E2B54680976075200DA0954 /* NSInterfaceStyle.h */, - 6E2B538B0976075200DA0954 /* NSInterfaceStyle.m */, - 6E2B56FC0976075400DA0954 /* NSKeyboardBinding */, - FE8BAF1A0BC9EC0B0007FACA /* NSKeyValueBinding */, - FE2A10D90B45BB28006C03DE /* NSLevelIndicator.h */, - FE2A10DA0B45BB28006C03DE /* NSLevelIndicator.m */, - FE2A10E10B45BB37006C03DE /* NSLevelIndicatorCell.h */, - FE2A10E20B45BB37006C03DE /* NSLevelIndicatorCell.m */, - 6E2B546A0976075200DA0954 /* NSMatrix.h */, - 6E2B538D0976075200DA0954 /* NSMatrix.m */, - 6E2B54DA0976075300DA0954 /* NSMeasurementUnit.h */, - 6E2B53F50976075200DA0954 /* NSMeasurementUnit.m */, - 6E2B56D20976075400DA0954 /* NSMenu */, - 6E2B546C0976075200DA0954 /* NSModalSessionX.h */, - 6E2B538F0976075200DA0954 /* NSModalSessionX.m */, - FE56BA020B1221330046B7D9 /* NSMutableAttributedString.h */, - FE56BA030B1221330046B7D9 /* NSMutableAttributedString.m */, - FE6466E10B2C611D00B302B0 /* NSMutableParagraphStyle.h */, - FE6466E20B2C611D00B302B0 /* NSMutableParagraphStyle.m */, - 6E2B546E0976075200DA0954 /* NSOpenPanel.h */, - 6E2B53910976075200DA0954 /* NSOpenPanel.m */, - 6E2B54D00976075300DA0954 /* NSOutlineView.h */, - 6E2B53EB0976075200DA0954 /* NSOutlineView.m */, - 6E2B54700976075200DA0954 /* NSPageLayout.h */, - 6E2B53930976075200DA0954 /* NSPageLayout.m */, - 6E2B54720976075200DA0954 /* NSPanel.h */, - 6E2B53950976075200DA0954 /* NSPanel.m */, - 6E2B54800976075200DA0954 /* NSParagraphStyle.h */, - 6E2B53970976075200DA0954 /* NSParagraphStyle.m */, - 6E2B54740976075200DA0954 /* NSPasteboard.h */, - 6E2B53990976075200DA0954 /* NSPasteboard.m */, - FE2A10EF0B45BC4F006C03DE /* NSPDFImageRep.h */, - FE2A10F00B45BC4F006C03DE /* NSPDFImageRep.m */, - 6E2B54780976075200DA0954 /* NSPopUpButton.h */, - 6E2B539B0976075200DA0954 /* NSPopUpButton.m */, - 6E2B547A0976075200DA0954 /* NSPopUpButtonCell.h */, - 6E2B539D0976075200DA0954 /* NSPopUpButtonCell.m */, - 6E2B547C0976075200DA0954 /* NSPopUpView.h */, - 6E2B539F0976075200DA0954 /* NSPopUpView.m */, - 6E2B547E0976075200DA0954 /* NSPopUpWindow.h */, - 6E2B53A10976075200DA0954 /* NSPopUpWindow.m */, - FE2A10F50B45BC75006C03DE /* NSPrinter.h */, - FE2A10F60B45BC75006C03DE /* NSPrinter.m */, - 6E2B54820976075200DA0954 /* NSPrintInfo.h */, - 6E2B53A30976075200DA0954 /* NSPrintInfo.m */, - 6E2B54840976075200DA0954 /* NSPrintOperation.h */, - 6E2B53A50976075200DA0954 /* NSPrintOperation.m */, - FE57FAB50C47F2010078FFC1 /* NSPrintPanel.h */, - FE57FAB60C47F2010078FFC1 /* NSPrintPanel.m */, - 63848FEA17A18C050019E4DC /* NSPrintProgressPanelController.h */, - 63848FEB17A18C050019E4DC /* NSPrintProgressPanelController.m */, - 6E2B54860976075200DA0954 /* NSProgressIndicator.h */, - 6E2B53A70976075200DA0954 /* NSProgressIndicator.m */, - 6E2B54880976075200DA0954 /* NSResponder.h */, - 6E2B53A90976075200DA0954 /* NSResponder.m */, - 6E2B54D40976075300DA0954 /* NSRulerMarker.h */, - 6E2B53EF0976075200DA0954 /* NSRulerMarker.m */, - 6E2B54D20976075300DA0954 /* NSRulerView.h */, - 6E2B53ED0976075200DA0954 /* NSRulerView.m */, - 6E2B548A0976075200DA0954 /* NSSavePanel.h */, - 6E2B53AB0976075200DA0954 /* NSSavePanel.m */, - 6E2B548C0976075200DA0954 /* NSScreen.h */, - 6E2B53AD0976075200DA0954 /* NSScreen.m */, - 6E2B548E0976075200DA0954 /* NSScroller.h */, - 6E2B53AF0976075200DA0954 /* NSScroller.m */, - 6E2B54900976075200DA0954 /* NSScrollView.h */, - 6E2B53B10976075200DA0954 /* NSScrollView.m */, - FE2A10FF0B45BCA6006C03DE /* NSSearchField.h */, - FE2A11000B45BCA7006C03DE /* NSSearchField.m */, - FE2A11050B45BCB5006C03DE /* NSSearchFieldCell.h */, - FE2A11060B45BCB5006C03DE /* NSSearchFieldCell.m */, - 6E2B549E0976075200DA0954 /* NSSecureTextField.h */, - 6E2B53B30976075200DA0954 /* NSSecureTextField.m */, - 6E2B54A00976075200DA0954 /* NSSecureTextFieldCell.h */, - 6E2B53B50976075200DA0954 /* NSSecureTextFieldCell.m */, - FED166CC0BE5022A00BF9889 /* NSSegmentedControl */, - FE2A11190B45BD0A006C03DE /* NSShadow.h */, - FE2A111A0B45BD0A006C03DE /* NSShadow.m */, - 6E2B54920976075200DA0954 /* NSSheetContext.h */, - 6E2B53B70976075200DA0954 /* NSSheetContext.m */, - 6E2B54940976075200DA0954 /* NSSlider.h */, - 6E2B53B90976075200DA0954 /* NSSlider.m */, - 6E2B54960976075200DA0954 /* NSSliderCell.h */, - 6E2B53BB0976075200DA0954 /* NSSliderCell.m */, - FE2A11210B45C52C006C03DE /* NSSound.h */, - FE2A11220B45C52C006C03DE /* NSSound.m */, - 63EADBFB14BC9C73005B38BB /* NSSpellChecker */, - 6E2B54980976075200DA0954 /* NSSplitView.h */, - 6E2B53BD0976075200DA0954 /* NSSplitView.m */, - 9824ACB914EDE5A000245AEF /* NSStatusBar_(Private).h */, - FE2A113D0B45C58D006C03DE /* NSStatusBar.h */, - FE2A113E0B45C58D006C03DE /* NSStatusBar.m */, - 98214B8D14EE566B006DB3BD /* NSStatusItem+Private.h */, - FE2A11450B45C59A006C03DE /* NSStatusItem.h */, - FE2A11460B45C59A006C03DE /* NSStatusItem.m */, - 6E2B54A20976075200DA0954 /* NSStepper.h */, - 6E2B53BF0976075200DA0954 /* NSStepper.m */, - 6E2B54A40976075200DA0954 /* NSStepperCell.h */, - 6E2B53C10976075200DA0954 /* NSStepperCell.m */, - 6E2B549A0976075200DA0954 /* NSStringDrawer.h */, - 6E2B53C30976075200DA0954 /* NSStringDrawer.m */, - 6E2B549C0976075200DA0954 /* NSStringDrawing.h */, - 6E2B53C50976075200DA0954 /* NSStringDrawing.m */, - FE8286760D34725900F7489F /* NSSystemInfoPanel */, - 6E2B54A60976075200DA0954 /* NSTableColumn.h */, - 6E2B53C70976075200DA0954 /* NSTableColumn.m */, - 6E2B54A80976075200DA0954 /* NSTableCornerView.h */, - 6E2B53C90976075200DA0954 /* NSTableCornerView.m */, - 6E2B54AA0976075300DA0954 /* NSTableHeaderCell.h */, - 6E2B53CB0976075200DA0954 /* NSTableHeaderCell.m */, - 6E2B54AC0976075300DA0954 /* NSTableHeaderView.h */, - 6E2B53CD0976075200DA0954 /* NSTableHeaderView.m */, - 6E2B54AE0976075300DA0954 /* NSTableView.h */, - 6E2B53CF0976075200DA0954 /* NSTableView.m */, - 6E2B54B00976075300DA0954 /* NSTabView.h */, - 6E2B53D10976075200DA0954 /* NSTabView.m */, - 6E2B54B20976075300DA0954 /* NSTabViewItem.h */, - 6E2B53D30976075200DA0954 /* NSTabViewItem.m */, - 6E2B54B40976075300DA0954 /* NSText.h */, - 6E2B53D50976075200DA0954 /* NSText.m */, - 6E2B54B60976075300DA0954 /* NSTextAttachment.h */, - 6E2B53D70976075200DA0954 /* NSTextAttachment.m */, - FE7247A40C0622F2007CBC51 /* NSTextAttachmentCell.h */, - FE7247A50C0622F2007CBC51 /* NSTextAttachmentCell.m */, - 6E2B54B80976075300DA0954 /* NSTextField.h */, - 6E2B53D90976075200DA0954 /* NSTextField.m */, - 6E2B54BA0976075300DA0954 /* NSTextFieldCell.h */, - 6E2B53DB0976075200DA0954 /* NSTextFieldCell.m */, - FE7247670C06202B007CBC51 /* NSTextList.h */, - FE7247680C06202B007CBC51 /* NSTextList.m */, - FE2A114D0B45C608006C03DE /* NSTextTable */, - 6E2B55680976075300DA0954 /* NSTextView */, - FE2A11520B45C65E006C03DE /* NSTokenField.h */, - FE2A11530B45C65E006C03DE /* NSTokenField.m */, - FE2A115A0B45C66A006C03DE /* NSTokenFieldCell.h */, - FE2A115B0B45C66A006C03DE /* NSTokenFieldCell.m */, - 6E2B570E0976075400DA0954 /* NSToolbar */, - 6E2B54D60976075300DA0954 /* NSToolTipWindow.h */, - 6E2B53F10976075200DA0954 /* NSToolTipWindow.m */, - 6E2B54BC0976075300DA0954 /* NSTrackingArea.h */, - 6E2B53DD0976075200DA0954 /* NSTrackingArea.m */, - FEA8A98B0CD2CBC000E1E936 /* NSUserInterfaceValidation.h */, - 6E2B54BE0976075300DA0954 /* NSView.h */, - 6E2B53DF0976075200DA0954 /* NSView.m */, - FE74968612BB1D4F008DBFCB /* NSViewBackingLayer.h */, - FE74968712BB1D4F008DBFCB /* NSViewBackingLayer.m */, - 6E2B54DC0976075300DA0954 /* NSWindow-Drag.h */, - 6E2B53F70976075200DA0954 /* NSWindow-Drag.m */, - 6E2B54C20976075300DA0954 /* NSWindow-Private.h */, - 6E2B54C00976075300DA0954 /* NSWindow.h */, - 6E2B54C40976075300DA0954 /* NSThemeFrame.h */, - 6E2B53E30976075200DA0954 /* NSThemeFrame.m */, - 6E2B53E10976075200DA0954 /* NSWindow.m */, - FEE4B2F8133BB8770095E656 /* NSWindowScripting.h */, - FEE4B2F9133BB8770095E656 /* NSWindowScripting.m */, - 6E2B54D80976075300DA0954 /* NSWindowAnimationContext.h */, - 6E2B53F30976075200DA0954 /* NSWindowAnimationContext.m */, - 6E2B54C60976075300DA0954 /* NSWindowController.h */, - 6E2B53E50976075200DA0954 /* NSWindowController.m */, - 6E2B54C80976075300DA0954 /* NSWorkspace.h */, - 6E2B53E70976075200DA0954 /* NSWorkspace.m */, - 6E2B56B00976075400DA0954 /* NSOpenGL */, - 6E2B56C30976075400DA0954 /* RTF */, - 6E2B56060976075300DA0954 /* Win32 */, - 6E2B57550976075500DA0954 /* X11 */, - A149E81710069B5B00616E2D /* NSCellUndoManager.h */, - A149E81810069B5B00616E2D /* NSCellUndoManager.m */, - ); - name = Classes; - sourceTree = ""; - }; - 6E2B54DE0976075300DA0954 /* Interfaces */ = { - isa = PBXGroup; - children = ( - 630DC9DF14CE3F6A0009A039 /* NSColorPickerColorList.nib */, - 630DC9E614CE40B80009A039 /* NSColorPickerSliders.nib */, - 630DC9ED14CE41290009A039 /* NSColorPickerWheel.nib */, - 630DC9F614CE459A0009A039 /* NSFontPanel.nib */, - 630DC9FF14CE45E60009A039 /* NSSystemInfoPanel.nib */, - 630DCA0614CE475C0009A039 /* NSToolbarCustomizationPalette.nib */, - 630DCA1014CE48210009A039 /* NSSpellingViewController.xib */, - 630DC9D814CE3F2D0009A039 /* NSColorPanel.nib */, - 6311B15E14C74B00007AD8C0 /* NSColorPanel.nib */, - 6311B16014C74B00007AD8C0 /* NSFontPanel.nib */, - 6E2B54E30976075300DA0954 /* NSToolbarCustomizationPalette.nib */, - 63848FE017A189E70019E4DC /* NSPrintProgressPanel.xib */, - ); - name = Interfaces; - sourceTree = ""; - }; - 6E2B54E60976075300DA0954 /* Images */ = { - isa = PBXGroup; - children = ( - 496555CA17A02FAD0015D3B3 /* NSPoof.png */, - 631382B3145F734100765AA7 /* NSColorWheel.png */, - 631381D0145F2FFA00765AA7 /* NSColorPickerListIcon.png */, - 631381D1145F2FFA00765AA7 /* NSColorPickerSlidersIcon.png */, - 631381D2145F2FFA00765AA7 /* NSColorPickerWheelIcon.png */, - FE1707FC1260A1E000D18E9E /* NSEnterFullScreenTemplate.pdf */, - FEED42C81224B82B0059B0DF /* NSExitFullScreenTemplate.pdf */, - FEED42CA1224B82B0059B0DF /* NSInfo.pdf */, - FEED42CC1224B82B0059B0DF /* NSStopProgressTemplate.pdf */, - FE7EFA87121335CB00B2B398 /* NSInvalidDataFreestandingTemplate.pdf */, - FE39BECA1201DD3A00A80A71 /* NSStopProgressFreestandingTemplate.pdf */, - FE39BE5D12013CFD00A80A71 /* NSSearchGlass.pdf */, - FE44BF2711EC0A8F00762BF1 /* NSPreferencesGeneral.pdf */, - FE44BCFC11EB928700762BF1 /* NSAdvanced.pdf */, - FE44BB3211EA30F500762BF1 /* NSLockUnlockedTemplate.pdf */, - FE44BB2611EA2C9100762BF1 /* NSLockLockedTemplate.pdf */, - FE44BA3211E982B500762BF1 /* NSUser.pdf */, - FE44BA0611E9807C00762BF1 /* NSActionTemplate.pdf */, - FE44BA0811E9807C00762BF1 /* NSAddTemplate.pdf */, - FE44BA0A11E9807C00762BF1 /* NSRemoveTemplate.pdf */, - C829A6B210FFA2D100A2306E /* NSGoRightTemplate.pdf */, - C829A6A210FF911400A2306E /* NSGoLeftTemplate.pdf */, - FEED24790EC9E8F200A5B07E /* NSRefreshTemplate.pdf */, - FE86887C0BC3FFA4009F515C /* NSButtonCell_disclosure_highlighted.tif */, - FE86887D0BC3FFA4009F515C /* NSButtonCell_disclosure_normal.tif */, - FE86887E0BC3FFA4009F515C /* NSButtonCell_disclosure_selected.tif */, - 6E2B54E70976075300DA0954 /* NSSplitViewVDimple.tiff */, - 6E2B54E90976075300DA0954 /* NSHighlightedBrowserCellArrow.tiff */, - 6E2B54EB0976075300DA0954 /* NSRulerMarkerTab.tiff */, - 6E2B54ED0976075300DA0954 /* NSAlertPanelExclamation.tiff */, - 6E2B54EF0976075300DA0954 /* NSComboBoxCellDown.tiff */, - 6E2B54F10976075300DA0954 /* NSRadioButton.tiff */, - 6E2B54F30976075300DA0954 /* NSSwitch.tiff */, - 6E2B54F50976075300DA0954 /* NSHighlightedSwitch.tiff */, - 6E2B54F70976075300DA0954 /* NSPopUpButtonCellPopUp.tiff */, - 6E2B54F90976075300DA0954 /* NSPopUpButtonCellPullDown.tiff */, - 6E2B54FB0976075300DA0954 /* NSHighlightedRadioButton.tiff */, - 6E2B54FF0976075300DA0954 /* NSSplitViewHDimple.tiff */, - 6E2B55010976075300DA0954 /* NSBrowserCellArrow.tiff */, - ); - name = Images; - sourceTree = ""; - }; - 6E2B55050976075300DA0954 /* Resources */ = { - isa = PBXGroup; - children = ( - 49B85E95166FBC9A00507E8C /* UNIDATA */, - 6311B10814C7396A007AD8C0 /* Localizable.strings */, - 6E2B55060976075300DA0954 /* NSMenu.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 6E2B55100976075300DA0954 /* nib */ = { - isa = PBXGroup; - children = ( - FE20C26511892517006F01BA /* NSNibAXRelationshipConnector.h */, - FE20C26611892517006F01BA /* NSNibAXRelationshipConnector.m */, - FE8BAEC50BC9EA8D0007FACA /* NSNibBindingConnector.h */, - FE8BAEC60BC9EA8D0007FACA /* NSNibBindingConnector.m */, - 6EC4AC670A35D47800E8D6CA /* NSCustomObject.h */, - 6EC4AC680A35D47800E8D6CA /* NSCustomObject.m */, - 6EC4ACFB0A36613800E8D6CA /* NSWindowTemplate.h */, - 6EC4ACFC0A36613800E8D6CA /* NSWindowTemplate.m */, - 6EC4AC350A35D0C200E8D6CA /* NSIBObjectData.h */, - 6EC4AC360A35D0C200E8D6CA /* NSIBObjectData.m */, - 6E2B55330976075300DA0954 /* NSNibConnector.h */, - 6E2B551C0976075300DA0954 /* NSNibConnector.m */, - 6E2B55310976075300DA0954 /* NSNibControlConnector.h */, - 6E2B551A0976075300DA0954 /* NSNibControlConnector.m */, - 6E2B553D0976075300DA0954 /* NSNibHelpConnector.h */, - 6E2B55260976075300DA0954 /* NSNibHelpConnector.m */, - 6E2B55350976075300DA0954 /* NSNibLoading.h */, - 6E2B551E0976075300DA0954 /* NSNibLoading.m */, - 6E2B552F0976075300DA0954 /* NSNibOutletConnector.h */, - 6E2B55180976075300DA0954 /* NSNibOutletConnector.m */, - 6EC4ADE40A37294300E8D6CA /* NSButtonImageSource.h */, - 6EC4ADE50A37294300E8D6CA /* NSButtonImageSource.m */, - 6E81CA740A3883660089C666 /* NSClassSwapper.h */, - 6E81CA750A3883660089C666 /* NSClassSwapper.m */, - 6E81CCCE0A39CBE00089C666 /* NSCustomResource.h */, - 6E81CCCF0A39CBE00089C666 /* NSCustomResource.m */, - 6ECABDF70A3FA2B700AD7F7B /* NSCustomView.h */, - 6ECABDF80A3FA2B700AD7F7B /* NSCustomView.m */, - FE2A10E90B45BB69006C03DE /* NSNib.h */, - FE2A10EA0B45BB69006C03DE /* NSNib.m */, - ); - name = nib; - path = nib.subproj; - sourceTree = ""; - }; - 6E2B55430976075300DA0954 /* NSColor */ = { - isa = PBXGroup; - children = ( - FE08C3210DDF299800B3169A /* NSColor_CGColor.h */, - FE08C3220DDF299800B3169A /* NSColor_CGColor.m */, - 6E2B55620976075300DA0954 /* conversions.h */, - 6E2B55540976075300DA0954 /* NSColor.h */, - 6E2B55450976075300DA0954 /* NSColor.m */, - 6E2B55600976075300DA0954 /* NSColor_catalog.h */, - 6E2B55510976075300DA0954 /* NSColor_catalog.m */, - ); - name = NSColor; - path = NSColor.subproj; - sourceTree = ""; - }; - 6E2B55680976075300DA0954 /* NSTextView */ = { - isa = PBXGroup; - children = ( - FEA318290FD5961100F480D4 /* NSRangeEntries.h */, - FEA3182A0FD5961100F480D4 /* NSRangeEntries.m */, - FE72484F0C0676AA007CBC51 /* NSTypesetter_concrete.h */, - FE7248500C0676AA007CBC51 /* NSTypesetter_concrete.m */, - FE27AC140BE9038000136B43 /* NSTextInput.h */, - 6E2B55870976075300DA0954 /* NSLayoutManager.h */, - 6E2B55720976075300DA0954 /* NSLayoutManager.m */, - 6E2B558B0976075300DA0954 /* NSRangeArray.h */, - 6E2B55760976075300DA0954 /* NSRangeArray.m */, - 6E2B558F0976075300DA0954 /* NSSecureLayoutManager.h */, - 6E2B557A0976075300DA0954 /* NSSecureLayoutManager.m */, - 6E2B558D0976075300DA0954 /* NSSecureTextView.h */, - 6E2B55780976075300DA0954 /* NSSecureTextView.m */, - 6E2B55810976075300DA0954 /* NSTextContainer.h */, - 6E2B556C0976075300DA0954 /* NSTextContainer.m */, - 6E2B55830976075300DA0954 /* NSTextStorage.h */, - 6E2B556E0976075300DA0954 /* NSTextStorage.m */, - 6E2B55850976075300DA0954 /* NSTextStorage_concrete.h */, - 6E2B55700976075300DA0954 /* NSTextStorage_concrete.m */, - 6E2B55910976075300DA0954 /* NSTextTab.h */, - 6E2B557C0976075300DA0954 /* NSTextTab.m */, - 6E2B557F0976075300DA0954 /* NSTextView.h */, - 6E2B556A0976075300DA0954 /* NSTextView.m */, - 6E404FE50A52FEA900FA9AE5 /* NSTextViewSharedData.h */, - 6E404FE60A52FEA900FA9AE5 /* NSTextViewSharedData.m */, - 6E2B55890976075300DA0954 /* NSTypesetter.h */, - 6E2B55740976075300DA0954 /* NSTypesetter.m */, - 49D5D243165F9D0000D6A8EE /* NSUndoTextOperation.h */, - 49D5D244165F9D0000D6A8EE /* NSUndoTextOperation.m */, - 49B85E88166FB2D200507E8C /* NSBidiHelper.m */, - 49B85E8E166FB2FC00507E8C /* NSBidiHelper.h */, - ); - name = NSTextView; - path = NSTextView.subproj; - sourceTree = ""; - }; - 6E2B55970976075300DA0954 /* NSEvent */ = { - isa = PBXGroup; - children = ( - FE953DD8103B0EA0008A71F0 /* NSEvent_other.h */, - FE953DD9103B0EA0008A71F0 /* NSEvent_other.m */, - 6E2B55AA0976075300DA0954 /* NSEvent.h */, - 6E2B559F0976075300DA0954 /* NSEvent.m */, - 6E2B55AC0976075300DA0954 /* NSEvent_CoreGraphics.h */, - 6E2B55A10976075300DA0954 /* NSEvent_CoreGraphics.m */, - 6E2B55A60976075300DA0954 /* NSEvent_keyboard.h */, - 6E2B559B0976075300DA0954 /* NSEvent_keyboard.m */, - 6E2B55A40976075300DA0954 /* NSEvent_mouse.h */, - 6E2B55990976075300DA0954 /* NSEvent_mouse.m */, - 6E2B55A80976075300DA0954 /* NSEvent_periodic.h */, - 6E2B559D0976075300DA0954 /* NSEvent_periodic.m */, - ); - name = NSEvent; - path = NSEvent.subproj; - sourceTree = ""; - }; - 6E2B55B20976075300DA0954 /* CoreGraphics */ = { - isa = PBXGroup; - children = ( - FE2752F01230201B00BD6643 /* CGLPixelSurface.m */, - FEF5A75D11E4E82F009B0041 /* CGDirectDisplay.m */, - FED56E6411A2D87100D6D09B /* CGGradient.m */, - FEF0889E10C5B06400D38A2F /* CGImageDestination.m */, - FEF4684210895C9800B45195 /* CGConversions.h */, - FEAED7A40FD6C9820043F915 /* CGPDFContext.m */, - FEAED7980FD6C95D0043F915 /* CGDataConsumer.m */, - FE7ABEBD0DC2C9BA0060D15B /* CGPDFDocument.m */, - FE45EDCB0DC2407E00F49290 /* CGImageSource.m */, - 6E2B55B80976075300DA0954 /* CGAffineTransform.m */, - FE267EB40B8BD2690000DDC0 /* CGBitmapContext.m */, - FE064AAA0B8B805000853FBB /* CGColor.m */, - FE064AAC0B8B805000853FBB /* CGColorSpace.m */, - 6E2B55B40976075300DA0954 /* CGContext.m */, - FE064AAE0B8B805000853FBB /* CGDataProvider.m */, - 6E2B55D90976075300DA0954 /* CGEvent.h */, - 6E2B55C40976075300DA0954 /* CGEvent.m */, - 6E2B55BA0976075300DA0954 /* CGFont.m */, - FE064AB00B8B805000853FBB /* CGFunction.m */, - 6E2B55B60976075300DA0954 /* CGGeometry.m */, - FE64B9210B8123F1007EE513 /* CGImage.m */, - FE064AB40B8B805000853FBB /* CGLayer.m */, - FE064AB60B8B805000853FBB /* CGPath.m */, - FE064AB80B8B805000853FBB /* CGPattern.m */, - FEEF00580B96441800069FD1 /* CGPDFPage.m */, - FE064ABA0B8B805000853FBB /* CGShading.m */, - 6E2B55D70976075300DA0954 /* CGWindow.h */, - 6E2B55C20976075300DA0954 /* CGWindow.m */, - ); - name = CoreGraphics; - path = ../CoreGraphics; - sourceTree = ""; - }; - 6E2B55DF0976075300DA0954 /* NSColorPicker */ = { - isa = PBXGroup; - children = ( - 6E2B55F70976075300DA0954 /* Images */, - 6E2B55F20976075300DA0954 /* Interfaces */, - 6E2B55EE0976075300DA0954 /* NSBrowserCellColorList.h */, - 6E2B55E50976075300DA0954 /* NSBrowserCellColorList.m */, - 6E2B55EA0976075300DA0954 /* NSColorPicker.h */, - 6E2B55E10976075300DA0954 /* NSColorPicker.m */, - 6E2B55EC0976075300DA0954 /* NSColorPickerColorList.h */, - 6E2B55E30976075300DA0954 /* NSColorPickerColorList.m */, - 6E2B55F00976075300DA0954 /* NSColorPickerSliders.h */, - 6E2B55E70976075300DA0954 /* NSColorPickerSliders.m */, - 63138200145F3A5F00765AA7 /* NSColorPickerWheel.h */, - 63138201145F3A5F00765AA7 /* NSColorPickerWheel.m */, - 63138298145F6ED300765AA7 /* NSColorPickerWheelView.h */, - 63138299145F6ED300765AA7 /* NSColorPickerWheelView.m */, - ); - name = NSColorPicker; - path = NSColorPicker.subproj; - sourceTree = ""; - }; - 6E2B55F20976075300DA0954 /* Interfaces */ = { - isa = PBXGroup; - children = ( - 6311B17914C74EED007AD8C0 /* NSColorPickerColorList.nib */, - 6311B17B14C74EED007AD8C0 /* NSColorPickerSliders.nib */, - 6311B17D14C74EED007AD8C0 /* NSColorPickerWheel.nib */, - ); - name = Interfaces; - sourceTree = ""; - }; - 6E2B55F70976075300DA0954 /* Images */ = { - isa = PBXGroup; - children = ( - 6E2B55F80976075300DA0954 /* NSColorPickerSlidersCMYK.tiff */, - 6E2B55FA0976075300DA0954 /* NSColorPickerColorList.tiff */, - 6E2B55FC0976075300DA0954 /* NSColorPickerSlidersHSB.tiff */, - 6E2B55FE0976075300DA0954 /* NSColorPickerSlidersRGB.tiff */, - 6E2B56000976075300DA0954 /* NSColorPickerSlidersGray.tiff */, - ); - name = Images; - sourceTree = ""; - }; - 6E2B56060976075300DA0954 /* Win32 */ = { - isa = PBXGroup; - children = ( - FE5F4CA612A860BA00F5F334 /* O2Context_gdi+AppKit.h */, - FE5F4CA712A860BA00F5F334 /* O2Context_gdi+AppKit.m */, - FEAEFF7911E4D1B600CA0912 /* glweak.m */, - FED35B6E104DF8C10038ED7C /* CGLContext.m */, - 6E2B56620976075400DA0954 /* dllmain.m */, - FE311FA40CCC430200EBD696 /* KTFont_gdi.h */, - FE311FA50CCC430200EBD696 /* KTFont_gdi.m */, - FE4434020BB9833B00411464 /* NSGraphicsStyle_uxtheme.h */, - FE4434030BB9833B00411464 /* NSGraphicsStyle_uxtheme.m */, - 6E2B565D0976075400DA0954 /* NSOpenPanel-Win32.h */, - 6E2B56300976075400DA0954 /* NSOpenPanel-Win32.m */, - 6E2B565B0976075400DA0954 /* NSSavePanel-Win32.h */, - 6E2B562E0976075400DA0954 /* NSSavePanel-Win32.m */, - FEBE636B17D44C5E00EFA1F2 /* NSSound_DirectShow.h */, - FEBE636C17D44C5E00EFA1F2 /* NSSound_DirectShow.m */, - FEA25F960EECCE4D008750D0 /* NSSound_win32.h */, - FEA25F970EECCE4D008750D0 /* NSSound_win32.m */, - FE1CEA6B0C8F12F800184630 /* opengl_dll.h */, - FE1CEA6C0C8F12F800184630 /* opengl_dll.m */, - 6E2B56370976075400DA0954 /* Win32Cursor.h */, - 6E2B560A0976075300DA0954 /* Win32Cursor.m */, - 6E2B563D0976075400DA0954 /* Win32DeviceContextPrinter.h */, - 6E2B56100976075300DA0954 /* Win32DeviceContextPrinter.m */, - 6E2B563F0976075400DA0954 /* Win32DeviceContextWindow.h */, - 6E2B56120976075300DA0954 /* Win32DeviceContextWindow.m */, - 6E2B56410976075400DA0954 /* Win32Display.h */, - 6E2B56140976075300DA0954 /* Win32Display.m */, - 6E2B56690976075400DA0954 /* Win32DraggingManager */, - 6E2B56430976075400DA0954 /* Win32Event.h */, - 6E2B56160976075300DA0954 /* Win32Event.m */, - 6E2B56550976075400DA0954 /* Win32EventInputSource.h */, - 6E2B56280976075400DA0954 /* Win32EventInputSource.m */, - 6E2B56530976075400DA0954 /* Win32RunningCopyPipe.h */, - 6E2B56260976075400DA0954 /* Win32RunningCopyPipe.m */, - 6E2B564D0976075400DA0954 /* Win32Window.h */, - 6E2B56200976075400DA0954 /* Win32Window.m */, - 6E2B56590976075400DA0954 /* Win32Workspace.h */, - 6E2B562C0976075400DA0954 /* Win32Workspace.m */, - ); - name = Win32; - path = Win32.subproj; - sourceTree = ""; - }; - 6E2B56690976075400DA0954 /* Win32DraggingManager */ = { - isa = PBXGroup; - children = ( - 6E2B56AA0976075400DA0954 /* NSDragView.h */, - 6E2B56890976075400DA0954 /* NSDragView.m */, - 6E2B568C0976075400DA0954 /* Win32DraggingManager.h */, - 6E2B566B0976075400DA0954 /* Win32DraggingManager.m */, - 6E2B568E0976075400DA0954 /* Win32DragSession.h */, - 6E2B566D0976075400DA0954 /* Win32DragSession.m */, - 6E2B56900976075400DA0954 /* Win32DropPasteboard.h */, - 6E2B566F0976075400DA0954 /* Win32DropPasteboard.m */, - 6E2B56920976075400DA0954 /* Win32FORMATETC.h */, - 6E2B56710976075400DA0954 /* Win32FORMATETC.m */, - 6E2B56940976075400DA0954 /* Win32GeneralPasteboard.h */, - 6E2B56730976075400DA0954 /* Win32GeneralPasteboard.m */, - 6E2B56960976075400DA0954 /* Win32IDataObjectClient.h */, - 6E2B56750976075400DA0954 /* Win32IDataObjectClient.m */, - 6E2B56980976075400DA0954 /* Win32IDataObjectServer.h */, - 6E2B56770976075400DA0954 /* Win32IDataObjectServer.m */, - 6E2B569A0976075400DA0954 /* Win32IDropSourceServer.h */, - 6E2B56790976075400DA0954 /* Win32IDropSourceServer.m */, - 6E2B569C0976075400DA0954 /* Win32IDropTargetServer.h */, - 6E2B567B0976075400DA0954 /* Win32IDropTargetServer.m */, - 6E2B569E0976075400DA0954 /* Win32IEnumFORMATETCServer.h */, - 6E2B567D0976075400DA0954 /* Win32IEnumFORMATETCServer.m */, - 6E2B56A00976075400DA0954 /* Win32IStreamClient.h */, - 6E2B567F0976075400DA0954 /* Win32IStreamClient.m */, - 6E2B56A20976075400DA0954 /* Win32IUnknownServer.h */, - 6E2B56810976075400DA0954 /* Win32IUnknownServer.m */, - 6E2B56A40976075400DA0954 /* Win32Pasteboard.h */, - 6E2B56830976075400DA0954 /* Win32Pasteboard.m */, - 6E2B56A60976075400DA0954 /* Win32TypesAndOwner.h */, - 6E2B56850976075400DA0954 /* Win32TypesAndOwner.m */, - 6E2B56A80976075400DA0954 /* Win32Window-Drag.h */, - 6E2B56870976075400DA0954 /* Win32Window-Drag.m */, - ); - name = Win32DraggingManager; - path = Win32DraggingManager.subproj; - sourceTree = ""; - }; - 6E2B56B00976075400DA0954 /* NSOpenGL */ = { - isa = PBXGroup; - children = ( - FE4478071039F64E00ECD6A6 /* NSOpenGL.h */, - 6E2B56B90976075400DA0954 /* NSOpenGLContext.h */, - 6E2B56B20976075400DA0954 /* NSOpenGLContext.m */, - FE6DC16A0BA85BEC0082AC66 /* NSOpenGLPixelBuffer.h */, - FE6DC16B0BA85BEC0082AC66 /* NSOpenGLPixelBuffer.m */, - 6E2B56BB0976075400DA0954 /* NSOpenGLPixelFormat.h */, - 6E2B56B40976075400DA0954 /* NSOpenGLPixelFormat.m */, - 6E2B56BD0976075400DA0954 /* NSOpenGLView.h */, - 6E2B56B60976075400DA0954 /* NSOpenGLView.m */, - ); - path = NSOpenGL; - sourceTree = ""; - }; - 6E2B56C30976075400DA0954 /* RTF */ = { - isa = PBXGroup; - children = ( - 6E2B56CA0976075400DA0954 /* NSRichTextReader.h */, - 6E2B56C50976075400DA0954 /* NSRichTextReader.m */, - 6E2B56CC0976075400DA0954 /* NSRichTextWriter.h */, - 6E2B56C70976075400DA0954 /* NSRichTextWriter.m */, - ); - name = RTF; - path = RTF.subproj; - sourceTree = ""; - }; - 6E2B56D20976075400DA0954 /* NSMenu */ = { - isa = PBXGroup; - children = ( - 6E2B56F10976075400DA0954 /* Images */, - 6E2B56E30976075400DA0954 /* NSMainMenuView.h */, - 6E2B56D40976075400DA0954 /* NSMainMenuView.m */, - 6E2B56E50976075400DA0954 /* NSMenu.h */, - 6E2B56D60976075400DA0954 /* NSMenu.m */, - 6E2B56E70976075400DA0954 /* NSMenuItem.h */, - 6E2B56D80976075400DA0954 /* NSMenuItem.m */, - 6E2B56E90976075400DA0954 /* NSMenuView.h */, - 6E2B56DA0976075400DA0954 /* NSMenuView.m */, - 6E2B56EB0976075400DA0954 /* NSMenuWindow.h */, - 6E2B56DC0976075400DA0954 /* NSMenuWindow.m */, - 6E2B56ED0976075400DA0954 /* NSOverflowMenuView.h */, - 6E2B56DE0976075400DA0954 /* NSOverflowMenuView.m */, - 6E2B56EF0976075400DA0954 /* NSSubmenuView.h */, - 6E2B56E00976075400DA0954 /* NSSubmenuView.m */, - ); - name = NSMenu; - path = NSMenu.subproj; - sourceTree = ""; - }; - 6E2B56F10976075400DA0954 /* Images */ = { - isa = PBXGroup; - children = ( - 6E2B56F20976075400DA0954 /* NSMenuArrow.tiff */, - 6E2B56F40976075400DA0954 /* NSMenuViewDoubleRightArrow.tiff */, - 6E2B56F60976075400DA0954 /* NSMenuViewDoubleRightArrowGray.tiff */, - ); - name = Images; - sourceTree = ""; - }; - 6E2B56FC0976075400DA0954 /* NSKeyboardBinding */ = { - isa = PBXGroup; - children = ( - 6E2B57050976075400DA0954 /* NSKeyboardBinding.h */, - 6E2B57000976075400DA0954 /* NSKeyboardBinding.m */, - 6E2B57030976075400DA0954 /* NSKeyboardBindingManager.h */, - 6E2B56FE0976075400DA0954 /* NSKeyboardBindingManager.m */, - 6E2B57070976075400DA0954 /* Resources */, - ); - path = NSKeyboardBinding; - sourceTree = ""; - }; - 6E2B57070976075400DA0954 /* Resources */ = { - isa = PBXGroup; - children = ( - 6E2B57080976075400DA0954 /* StandardKeyBindings.keybindings */, - ); - name = Resources; - sourceTree = ""; - }; - 6E2B570E0976075400DA0954 /* NSToolbar */ = { - isa = PBXGroup; - children = ( - 6E2B57390976075500DA0954 /* Images */, - 6E2B57270976075400DA0954 /* NSToolbar.h */, - 6E2B57120976075400DA0954 /* NSToolbar.m */, - 6E2B57310976075500DA0954 /* NSToolbarCustomizationPalette.h */, - 6E2B571C0976075400DA0954 /* NSToolbarCustomizationPalette.m */, - 6E2B57330976075500DA0954 /* NSToolbarCustomizationView.h */, - 6E2B571E0976075400DA0954 /* NSToolbarCustomizationView.m */, - 6E2B572B0976075400DA0954 /* NSToolbarItem.h */, - 6E2B57160976075400DA0954 /* NSToolbarItem.m */, - FE6BE4440F446B92007D7F3F /* NSToolbarItemGroup.h */, - FE6BE4450F446B92007D7F3F /* NSToolbarItemGroup.m */, - FE38749A0F4333D600EC9F00 /* NSToolbarItemView.h */, - FE38749B0F4333D600EC9F00 /* NSToolbarItemView.m */, - 6E2B572D0976075500DA0954 /* NSToolbarView.h */, - 6E2B57180976075400DA0954 /* NSToolbarView.m */, - ); - name = NSToolbar; - path = NSToolbar.subproj; - sourceTree = ""; - }; - 6E2B57390976075500DA0954 /* Images */ = { - isa = PBXGroup; - children = ( - 49EB338D171C8A8F00BD2535 /* NSToolbarOverflowArrow.tiff */, - FEE36B7F0F4B20C5005AEBBF /* NSToolbarOverflowArrow.pdf */, - 6E2B573A0976075500DA0954 /* NSToolbarShowFontsItem.tiff */, - 6E2B573C0976075500DA0954 /* NSToolbarCustomizeToolbarItem.tiff */, - 6E2B573E0976075500DA0954 /* NSToolbarShowColorsItem.tiff */, - 6E2B57400976075500DA0954 /* NSToolbarPrintItem.tiff */, - ); - name = Images; - sourceTree = ""; - }; - 6E2B57460976075500DA0954 /* NSDrawer */ = { - isa = PBXGroup; - children = ( - 6E2B574D0976075500DA0954 /* NSDrawer.h */, - 6E2B57480976075500DA0954 /* NSDrawer.m */, - 6E2B574F0976075500DA0954 /* NSDrawerWindow.h */, - 6E2B574A0976075500DA0954 /* NSDrawerWindow.m */, - ); - name = NSDrawer; - path = NSDrawer.subproj; - sourceTree = ""; - }; - 6E2B57550976075500DA0954 /* X11 */ = { - isa = PBXGroup; - children = ( - FE9131D610E93C0500FFF5D7 /* X11Event.h */, - FE9131D710E93C0500FFF5D7 /* X11Event.m */, - FEE7E0B610E26487004A50F8 /* CGLContext.m */, - FEA2CD4410D6D870003C8FF5 /* O2Context_builtin_FT.h */, - FEA2CD4510D6D870003C8FF5 /* O2Context_builtin_FT.m */, - C81BEA0D0EA6038800478D50 /* O2Context_cairo.h */, - C81BEA0E0EA6038800478D50 /* O2Context_cairo.m */, - FE34054810CAB38F00A989F0 /* O2Font_FT.h */, - FE34054910CAB38F00A989F0 /* O2Font_FT.m */, - FE881E7E10D57CFD00C73204 /* O2FontState_cairo.h */, - FE881E7F10D57CFD00C73204 /* O2FontState_cairo.m */, - FEA2CD1C10D6C1C0003C8FF5 /* O2Surface_cairo.h */, - FEA2CD1D10D6C1C0003C8FF5 /* O2Surface_cairo.m */, - C8746BAB0EA3EE11007A6BE2 /* KTFont_FT.h */, - C8746BAC0EA3EE11007A6BE2 /* KTFont_FT.m */, - C8746B2C0EA379DE007A6BE2 /* X11Display.h */, - C8746B2D0EA379DE007A6BE2 /* X11Display.m */, - C8746B3F0EA396D0007A6BE2 /* X11Window.h */, - C8746B400EA396D0007A6BE2 /* X11Window.m */, - ); - name = X11; - path = X11.subproj; - sourceTree = ""; - }; - 6E2B575A0976075500DA0954 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 6E2B575B0976075500DA0954 /* Foundation.framework */, - FEDE655E1210A294003D3EF1 /* CoreData.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 6E46FEBF0A2D2DCF004CD27E /* Products */ = { - isa = PBXGroup; - children = ( - FE01AACA0C5D9BCC00AEA51A /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE0C4EB91041CF2100D8C100 /* Products */ = { - isa = PBXGroup; - children = ( - FE0C4EC11041CF2100D8C100 /* OpenGL.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE1E54DE1430303F000D60A1 /* xcconfig */ = { - isa = PBXGroup; - children = ( - CFBAE5181AFC56A900F2BB97 /* windows-i386-AppKit.xcconfig */, - FE642EF0170E6C3D00DFF7FF /* platform-framework.xcconfig */, - FE1F65061508164F00C24624 /* darwin-i386-framework.xcconfig */, - FE1E54DF1430303F000D60A1 /* darwin-i386.xcconfig */, - FE1F65071508165000C24624 /* darwin-ppc-framework.xcconfig */, - FE1E54E01430303F000D60A1 /* darwin-ppc.xcconfig */, - FE1F65081508165000C24624 /* darwin-x86_64-framework.xcconfig */, - FE1E54E11430303F000D60A1 /* darwin-x86_64.xcconfig */, - FE1E54E21430303F000D60A1 /* darwin.xcconfig */, - FE1F65091508165000C24624 /* freebsd-i386-framework.xcconfig */, - FE1E54E31430303F000D60A1 /* freebsd-i386.xcconfig */, - FE1E54E41430303F000D60A1 /* freebsd.xcconfig */, - FE1F650A1508165000C24624 /* linux-arm-framework.xcconfig */, - FE1E54E51430303F000D60A1 /* linux-arm.xcconfig */, - FE1F650B1508165000C24624 /* linux-i386-framework.xcconfig */, - FE1E54E61430303F000D60A1 /* linux-i386.xcconfig */, - FE1F650C1508165000C24624 /* linux-ppc-framework.xcconfig */, - FE1E54E71430303F000D60A1 /* linux-ppc.xcconfig */, - FE1E54E81430303F000D60A1 /* linux.xcconfig */, - FE1E54E91430303F000D60A1 /* platform.xcconfig */, - FE1F650D1508165100C24624 /* solaris-sparc-framework.xcconfig */, - FE1E54EA1430303F000D60A1 /* solaris-sparc.xcconfig */, - FE1E54EB1430303F000D60A1 /* solaris.xcconfig */, - FE70846E1431168800B99A95 /* windows-i386-framework.xcconfig */, - FE1E54EC1430303F000D60A1 /* windows-i386.xcconfig */, - FE1E54ED1430303F000D60A1 /* windows.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE267E7F0B8BCB660000DDC0 /* ImageIO */ = { - isa = PBXGroup; - children = ( - FE66F0050E513AE8006C5796 /* CGImageProperties.m */, - ); - name = ImageIO; - path = ../CoreGraphics; - sourceTree = ""; - }; - FE2A10250B44A239006C03DE /* NSController */ = { - isa = PBXGroup; - children = ( - FE1443681256D43D007FE685 /* _NSControllerArray.h */, - FE1443691256D43D007FE685 /* _NSControllerArray.m */, - C85D91930EE6A806004EBAEA /* NSDictionaryController.h */, - C85D91940EE6A806004EBAEA /* NSDictionaryController.m */, - C8C52C8D0E7ED1FF003F03B5 /* NSObservationProxy.h */, - C8C52C8E0E7ED1FF003F03B5 /* NSObservationProxy.m */, - FE8D94A90CE3A6C700AFB060 /* NSControllerSelectionProxy.h */, - FE8D94AA0CE3A6C700AFB060 /* NSControllerSelectionProxy.m */, - FE2A10280B44A26B006C03DE /* NSArrayController.h */, - FE2A10290B44A26B006C03DE /* NSArrayController.m */, - FE2A10580B459984006C03DE /* NSController.h */, - FE2A10590B459984006C03DE /* NSController.m */, - FE2A10600B459992006C03DE /* NSObjectController.h */, - FE2A10610B459992006C03DE /* NSObjectController.m */, - FE2A10680B4599A3006C03DE /* NSTreeController.h */, - FE2A10690B4599A3006C03DE /* NSTreeController.m */, - FE2A10700B4599BD006C03DE /* NSUserDefaultsController.h */, - FE2A10710B4599BD006C03DE /* NSUserDefaultsController.m */, - C84909350E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.h */, - C84909360E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.m */, - C8AB73080F40C21A00D93B96 /* NSControllerMarker.h */, - C8AB73090F40C21A00D93B96 /* NSControllerMarker.m */, - ); - path = NSController; - sourceTree = ""; - }; - FE2A114D0B45C608006C03DE /* NSTextTable */ = { - isa = PBXGroup; - children = ( - FED167A40BE57EB300BF9889 /* NSTextBlock.h */, - FED167A50BE57EB300BF9889 /* NSTextBlock.m */, - FED167A60BE57EB300BF9889 /* NSTextTable.h */, - FED167A70BE57EB300BF9889 /* NSTextTable.m */, - FED167A80BE57EB300BF9889 /* NSTextTableBlock.h */, - FED167A90BE57EB300BF9889 /* NSTextTableBlock.m */, - ); - path = NSTextTable; - sourceTree = ""; - }; - FE39C67F1203D5E200A80A71 /* Products */ = { - isa = PBXGroup; - children = ( - FE39C6831203D5E200A80A71 /* CoreData.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE39C6921203D65200A80A71 /* CoreData_ */ = { - isa = PBXGroup; - children = ( - FE39C6981203D72000A80A71 /* _NSManagedProxy.h */, - FE39C6991203D72000A80A71 /* _NSManagedProxy.m */, - FE39C69A1203D72000A80A71 /* NSPersistentDocument.h */, - FE39C69B1203D72000A80A71 /* NSPersistentDocument.m */, - ); - path = CoreData_; - sourceTree = ""; - }; - FE41B87012BEA2D900ED6C10 /* Products */ = { - isa = PBXGroup; - children = ( - FE41B87A12BEA2D900ED6C10 /* QuartzCore.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE44327B0BB95F4300411464 /* NSInterfacePart */ = { - isa = PBXGroup; - children = ( - FE1E86BF0BBCA62D0013B968 /* NSGraphicsStyle.h */, - FE1E86C00BBCA62D0013B968 /* NSGraphicsStyle.m */, - 6E2B54600976075200DA0954 /* NSInterfaceGraphics.h */, - 6E2B53830976075200DA0954 /* NSInterfaceGraphics.m */, - 6E2B54620976075200DA0954 /* NSInterfacePart.h */, - 6E2B53850976075200DA0954 /* NSInterfacePart.m */, - 6E2B54640976075200DA0954 /* NSInterfacePartAttributedString.h */, - 6E2B53870976075200DA0954 /* NSInterfacePartAttributedString.m */, - 6E2B54660976075200DA0954 /* NSInterfacePartDisabledAttributedString.h */, - 6E2B53890976075200DA0954 /* NSInterfacePartDisabledAttributedString.m */, - ); - path = NSInterfacePart; - sourceTree = ""; - }; - FE49B9A41030C46700ADCC6C /* NSCollectionView */ = { - isa = PBXGroup; - children = ( - FE49B9A51030C49300ADCC6C /* NSCollectionViewItem.h */, - FE49B9A61030C49300ADCC6C /* NSCollectionViewItem.m */, - FE463D6D102CAEF500B265D6 /* NSCollectionView.h */, - FE463D6E102CAEF500B265D6 /* NSCollectionView.m */, - ); - name = NSCollectionView; - sourceTree = ""; - }; - FE5C0EE511638FC600065D1C /* Onyx2D */ = { - isa = PBXGroup; - children = ( - FE9ACF10155EF59D002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m */, - FE9ACF11155EF59D002AFCA9 /* O2ImageDecoder_JPEG_stb.m */, - FE9ACF12155EF59D002AFCA9 /* O2ImageDecoder.m */, - FE5F4BF712A83CA600F5F334 /* platform_Windows */, - 49A7975114224021001CE4C2 /* O2Encoder_JPG.h */, - 49A7975214224021001CE4C2 /* O2Encoder_JPG.m */, - FE99DA72128396B6006D789F /* O2Encoder_PNG.h */, - FE99DA73128396B6006D789F /* O2Encoder_PNG.m */, - FE587952126961BC009B9EDF /* O2ClipMask.h */, - FE587953126961BC009B9EDF /* O2ClipMask.m */, - FE58791412695E21009B9EDF /* O2argb32f.m */, - FE58790B12695C95009B9EDF /* O2argb8u.m */, - FE58788012694AD2009B9EDF /* O2argb32f.h */, - FE58787012694A2D009B9EDF /* O2argb8u.h */, - FE069E211245A4B80040F165 /* O2GlyphStencil.h */, - FE069E221245A4B80040F165 /* O2GlyphStencil.m */, - FE2759A312341F3A00BD6643 /* O2Context_distill.m */, - FE051BD91221A2F40097BA92 /* O2Font_freetype.h */, - FE051BDA1221A2F40097BA92 /* O2Font_freetype.m */, - FE39C3301203305900A80A71 /* O2ClipState.h */, - FE39C3291203304700A80A71 /* O2ClipState.m */, - FE43BE1F11FFBAAC00119833 /* O2PDFBlock.h */, - FE43BE2011FFBAAC00119833 /* O2PDFBlock.m */, - FE71F3C311FD40B800E6F801 /* O2TTFDecoder.h */, - FE71F3C411FD40B800E6F801 /* O2TTFDecoder.m */, - FE71F25411FD21EE00E6F801 /* O2PDFFont.h */, - FE71F25511FD21EE00E6F801 /* O2PDFFont.m */, - FE71F1CC11FCB9B900E6F801 /* O2PDFFunction_Type0.h */, - FE71F1CD11FCB9B900E6F801 /* O2PDFFunction_Type0.m */, - FE71F07A11FC72A500E6F801 /* O2PDFCharWidths.h */, - FE71F07B11FC72A500E6F801 /* O2PDFCharWidths.m */, - FE71EF5111FBCABE00E6F801 /* O2Encoding.h */, - FE71EF5211FBCABE00E6F801 /* O2Encoding.m */, - FE71E83611FA88BE00E6F801 /* English.lproj */, - FE71E83911FA88BF00E6F801 /* Info.plist */, - FE71E83C11FA88BF00E6F801 /* O2Font+PDF.h */, - FE71E83D11FA88BF00E6F801 /* O2PDFFunction_Type4.h */, - FE71E83E11FA88BF00E6F801 /* O2PDFFunction_Type4.m */, - FE44BDD111EBA07A00762BF1 /* O2ImageSource_ICNS.h */, - FE44BDD211EBA07A00762BF1 /* O2ImageSource_ICNS.m */, - FE3C854D108779540018252A /* O2AffineTransform.h */, - FE3C854E108779540018252A /* O2AffineTransform.m */, - FE267EB50B8BD2690000DDC0 /* O2BitmapContext.h */, - FE267EB60B8BD2690000DDC0 /* O2BitmapContext.m */, - FE33952C0DB92D25009AB3E0 /* O2Blending.h */, - FE669C8C0F12B1A600534F46 /* gif_lib.h */, - FE669C840F12B1A600534F46 /* gif_lib.m */, - 6E14EC6509A3C40F009C8693 /* O2TIFFImageDirectory.h */, - 6E14EC6609A3C40F009C8693 /* O2TIFFImageDirectory.m */, - 6E14EC6709A3C40F009C8693 /* O2Decoder_TIFF.h */, - 6E14EC6809A3C40F009C8693 /* O2Decoder_TIFF.m */, - FE8C01D610C59B0600FE4072 /* O2Encoder_TIFF.h */, - FE8C01D710C59B0600FE4072 /* O2Encoder_TIFF.m */, - FE8C01CC10C59ADA00FE4072 /* O2ImageDestination.h */, - FE8C01CD10C59ADA00FE4072 /* O2ImageDestination.m */, - FE267E890B8BCC3C0000DDC0 /* O2ImageSource.h */, - FE267E8A0B8BCC3C0000DDC0 /* O2ImageSource.m */, - FE572D8B0CA0809500FB3E79 /* O2ImageSource_BMP.h */, - FE572D8C0CA0809500FB3E79 /* O2ImageSource_BMP.m */, - FEC0C77F0F146AF800903F6D /* O2ImageSource_GIF.h */, - FEC0C7800F146AF800903F6D /* O2ImageSource_GIF.m */, - FEBF55E20DCA112900CE5A1C /* O2ImageSource_JPEG.h */, - FE267E840B8BCC3C0000DDC0 /* O2ImageSource_JPEG.m */, - FE267E850B8BCC3C0000DDC0 /* O2ImageSource_PNG.h */, - FE267E860B8BCC3C0000DDC0 /* O2ImageSource_PNG.m */, - FE267E870B8BCC3C0000DDC0 /* O2ImageSource_TIFF.h */, - FE267E880B8BCC3C0000DDC0 /* O2ImageSource_TIFF.m */, - FEBF5B75100D851500F64C71 /* O2LZW.h */, - FEBF5B76100D851500F64C71 /* O2LZW.m */, - FE34FBC60D6F24A5008D2C1A /* O2ClipPhase.h */, - FE34FBC70D6F24A5008D2C1A /* O2ClipPhase.m */, - FE064ABB0B8B805000853FBB /* O2Color.h */, - FE064ABC0B8B805000853FBB /* O2Color.m */, - FEF9CB780E13EB8E003502ED /* O2ColorSpace+PDF.h */, - FEF9CB790E13EB8E003502ED /* O2ColorSpace+PDF.m */, - FE64B8A70B81239D007EE513 /* O2ColorSpace.h */, - FE64B8A80B81239D007EE513 /* O2ColorSpace.m */, - FE64B8A90B81239D007EE513 /* O2Context.h */, - FE64B8AA0B81239D007EE513 /* O2Context.m */, - FE3395570DB930F4009AB3E0 /* O2Context_builtin.h */, - FE3395580DB930F4009AB3E0 /* O2Context_builtin.m */, - FEAED79C0FD6C96E0043F915 /* O2DataConsumer.h */, - FEAED79D0FD6C96E0043F915 /* O2DataConsumer.m */, - FE64B8AB0B81239D007EE513 /* O2DataProvider.h */, - FE64B8AC0B81239D007EE513 /* O2DataProvider.m */, - FE6EDE330DB797D9005503A1 /* O2Exceptions.h */, - FEB07F9F0FF9B37C00C27509 /* O2Font+PDF.m */, - FE25FF600EE58712009C91B1 /* O2Font.h */, - FE25FF610EE58712009C91B1 /* O2Font.m */, - FEF9CB990E13EB8E003502ED /* O2Function+PDF.h */, - FEF9CB9A0E13EB8E003502ED /* O2Function+PDF.m */, - FE64B8AD0B81239D007EE513 /* O2Function.h */, - FE64B8AE0B81239D007EE513 /* O2Function.m */, - FE3C854F108779540018252A /* O2Geometry.h */, - FE3C8550108779540018252A /* O2Geometry.m */, - 6E2B55D10976075300DA0954 /* O2GraphicsState.h */, - 6E2B55BC0976075300DA0954 /* O2GraphicsState.m */, - FEF9CB9B0E13EB8E003502ED /* O2Image+PDF.h */, - FEF9CB9C0E13EB8E003502ED /* O2Image+PDF.m */, - FE64B8AF0B81239D007EE513 /* O2Image.h */, - FE64B8B00B81239D007EE513 /* O2Image.m */, - FE064AC10B8B805000853FBB /* O2Layer.h */, - FE064AC20B8B805000853FBB /* O2Layer.m */, - FEF33BFF0B93543C00DC0B6F /* O2MutablePath.h */, - FEF33C000B93543C00DC0B6F /* O2MutablePath.m */, - FEBF55E30DCA112900CE5A1C /* O2Paint.h */, - FEBF55E40DCA112900CE5A1C /* O2Paint.m */, - FEBF5A010DCD450700CE5A1C /* O2Paint_axialGradient.h */, - FEBF5A020DCD450700CE5A1C /* O2Paint_axialGradient.m */, - FEBF5A030DCD450700CE5A1C /* O2Paint_color.h */, - FEBF5A040DCD450700CE5A1C /* O2Paint_color.m */, - FEBF5A050DCD450700CE5A1C /* O2Paint_image.h */, - FEBF5A060DCD450700CE5A1C /* O2Paint_image.m */, - FEBF5A070DCD450700CE5A1C /* O2Paint_pattern.h */, - FEBF5A080DCD450700CE5A1C /* O2Paint_pattern.m */, - FEBF5A090DCD450700CE5A1C /* O2Paint_radialGradient.h */, - FEBF5A0A0DCD450700CE5A1C /* O2Paint_radialGradient.m */, - FEBF5A0B0DCD450700CE5A1C /* O2Paint_ramp.h */, - FEBF5A0C0DCD450700CE5A1C /* O2Paint_ramp.m */, - FE064AC30B8B805000853FBB /* O2Path.h */, - FE064AC40B8B805000853FBB /* O2Path.m */, - FE064AC50B8B805000853FBB /* O2Pattern.h */, - FE064AC60B8B805000853FBB /* O2Pattern.m */, - FE64B8B10B81239D007EE513 /* O2PDFArray.h */, - FE64B8B20B81239D007EE513 /* O2PDFArray.m */, - FE64B8B30B81239D007EE513 /* O2PDFContentStream.h */, - FE64B8B40B81239D007EE513 /* O2PDFContentStream.m */, - FEDF951B0CAF43E7009DC96F /* O2PDFContext.h */, - FEDF951C0CAF43E7009DC96F /* O2PDFContext.m */, - FE64B8B50B81239D007EE513 /* O2PDFDictionary.h */, - FE64B8B60B81239D007EE513 /* O2PDFDictionary.m */, - FE64B8B70B81239D007EE513 /* O2PDFDocument.h */, - FE64B8B80B81239D007EE513 /* O2PDFDocument.m */, - FE64B8B90B81239D007EE513 /* O2PDFFilter.h */, - FE64B8BA0B81239D007EE513 /* O2PDFFilter.m */, - FE64B8BB0B81239D007EE513 /* O2PDFFunction_Type2.h */, - FE64B8BC0B81239D007EE513 /* O2PDFFunction_Type2.m */, - FE64B8BD0B81239D007EE513 /* O2PDFFunction_Type3.h */, - FE64B8BE0B81239D007EE513 /* O2PDFFunction_Type3.m */, - FE64B8CD0B81239D007EE513 /* O2PDFObject.h */, - FE64B8CE0B81239D007EE513 /* O2PDFObject.m */, - FE64B8BF0B81239D007EE513 /* O2PDFObject_Boolean.h */, - FE64B8C00B81239D007EE513 /* O2PDFObject_Boolean.m */, - FE64B8C10B81239D007EE513 /* O2PDFObject_const.h */, - FE64B8C20B81239D007EE513 /* O2PDFObject_const.m */, - FE64B8C30B81239D007EE513 /* O2PDFObject_identifier.h */, - FE64B8C40B81239D007EE513 /* O2PDFObject_identifier.m */, - FE64B8C50B81239D007EE513 /* O2PDFObject_Integer.h */, - FE64B8C60B81239D007EE513 /* O2PDFObject_Integer.m */, - FE64B8C70B81239D007EE513 /* O2PDFObject_Name.h */, - FE64B8C80B81239D007EE513 /* O2PDFObject_Name.m */, - FE64B8C90B81239D007EE513 /* O2PDFObject_R.h */, - FE64B8CA0B81239D007EE513 /* O2PDFObject_R.m */, - FE64B8CB0B81239D007EE513 /* O2PDFObject_Real.h */, - FE64B8CC0B81239D007EE513 /* O2PDFObject_Real.m */, - FE64B8CF0B81239D007EE513 /* O2PDFOperators.h */, - FE64B8D00B81239D007EE513 /* O2PDFOperators.m */, - FE64B8D10B81239D007EE513 /* O2PDFOperatorTable.h */, - FE64B8D20B81239D007EE513 /* O2PDFOperatorTable.m */, - FE64B8D30B81239D007EE513 /* O2PDFPage.h */, - FE64B8D40B81239D007EE513 /* O2PDFPage.m */, - FE64B8D50B81239D007EE513 /* O2PDFScanner.h */, - FE64B8D60B81239D007EE513 /* O2PDFScanner.m */, - FE64B8D70B81239D007EE513 /* O2PDFStream.h */, - FE64B8D80B81239D007EE513 /* O2PDFStream.m */, - FE64B8D90B81239D007EE513 /* O2PDFString.h */, - FE64B8DA0B81239D007EE513 /* O2PDFString.m */, - FE64B8DB0B81239D007EE513 /* O2PDFxref.h */, - FE64B8DC0B81239D007EE513 /* O2PDFxref.m */, - FE64B8DD0B81239D007EE513 /* O2PDFxrefEntry.h */, - FE64B8DE0B81239D007EE513 /* O2PDFxrefEntry.m */, - FEF9CB9D0E13EB8E003502ED /* O2Shading+PDF.h */, - FEF9CB9E0E13EB8E003502ED /* O2Shading+PDF.m */, - FE64B8DF0B81239D007EE513 /* O2Shading.h */, - FE64B8E00B81239D007EE513 /* O2Shading.m */, - FE6EE28C0DB91FDF005503A1 /* O2Surface.h */, - FE6EE28D0DB91FDF005503A1 /* O2Surface.m */, - FE8F9F260C9C5D0000270AEE /* O2zlib.h */, - FE8F9F270C9C5D0000270AEE /* O2zlib.m */, - FE6EE27C0DB91EA8005503A1 /* VGmath.h */, - FE6EE2E30DB92B11005503A1 /* VGPath.h */, - FE6EE2E40DB92B11005503A1 /* VGPath.m */, - 49C12B4C16FCAF270018CB21 /* O2EXIFDecoder.h */, - 49C12B4D16FCAF270018CB21 /* O2EXIFDecoder.m */, - ); - name = Onyx2D; - path = ../Onyx2D; - sourceTree = ""; - }; - FE5F4BF712A83CA600F5F334 /* platform_Windows */ = { - isa = PBXGroup; - children = ( - FEF9CCC10E1416C4003502ED /* O2Context_builtin_gdi.h */, - FEF9CCC20E1416C4003502ED /* O2Context_builtin_gdi.m */, - FEABD6030CB9D0C90035F828 /* O2Context_gdi.h */, - FEABD6040CB9D0C90035F828 /* O2Context_gdi.m */, - FE57F8D00C46B68C0078FFC1 /* O2DeviceContext_gdi.h */, - FE57F8D10C46B68C0078FFC1 /* O2DeviceContext_gdi.m */, - FE5C699F0D76039F00098551 /* O2DeviceContext_gdiDIBSection.h */, - FE5C69A00D76039F00098551 /* O2DeviceContext_gdiDIBSection.m */, - FEA661210FF5C6F200E2C03B /* O2Font_gdi.h */, - FEA661220FF5C6F200E2C03B /* O2Font_gdi.m */, - FEF9CAE70E133FF2003502ED /* O2Surface_DIBSection.h */, - FEF9CAE80E133FF2003502ED /* O2Surface_DIBSection.m */, - 6E2B56450976075400DA0954 /* Win32Font.h */, - 6E2B56180976075400DA0954 /* Win32Font.m */, - ); - path = platform_Windows; - sourceTree = ""; - }; - FE71E83611FA88BE00E6F801 /* English.lproj */ = { - isa = PBXGroup; - children = ( - FE71E83711FA88BE00E6F801 /* InfoPlist.strings */, - ); - path = English.lproj; - sourceTree = ""; - }; - FE8286760D34725900F7489F /* NSSystemInfoPanel */ = { - isa = PBXGroup; - children = ( - 6311B19314C750BE007AD8C0 /* NSSystemInfoPanel.nib */, - FE8286770D34727900F7489F /* NSApplicationIcon.tiff */, - FE8286780D34727900F7489F /* NSSystemInfoPanel.h */, - FE8286790D34727900F7489F /* NSSystemInfoPanel.m */, - ); - path = NSSystemInfoPanel; - sourceTree = ""; - }; - FE8BAF1A0BC9EC0B0007FACA /* NSKeyValueBinding */ = { - isa = PBXGroup; - children = ( - A1CC70401005371100DB9974 /* NSTextFieldBinder.h */, - A1CC70411005371100DB9974 /* NSTextFieldBinder.m */, - A1CC7017100534AB00DB9974 /* NSCachingBinder.h */, - A1CC7018100534AB00DB9974 /* NSCachingBinder.m */, - FE8D951E0CE4057300AFB060 /* NSMultipleValueBinder.h */, - FE8D951F0CE4057300AFB060 /* NSMultipleValueBinder.m */, - C8B239A20BF8EEB500CA33AF /* defaultBindingOptions.plist */, - FE8BAF1D0BC9EC680007FACA /* NSBinder.h */, - FE8BAF1E0BC9EC680007FACA /* NSBinder.m */, - FE8BAF1F0BC9EC680007FACA /* NSKVOBinder.h */, - FE8BAF200BC9EC680007FACA /* NSKVOBinder.m */, - FE8BAF210BC9EC680007FACA /* NSObject+BindingSupport.h */, - FE8BAF220BC9EC680007FACA /* NSObject+BindingSupport.m */, - ); - path = NSKeyValueBinding; - sourceTree = ""; - }; - FEAE000911E4E43B00CA0912 /* CoreVideo */ = { - isa = PBXGroup; - children = ( - FEAE000B11E4E45600CA0912 /* CVDisplayLink.m */, - ); - name = CoreVideo; - path = ../CoreVideo; - sourceTree = ""; - }; - FEB0822A0FFB1F2800C27509 /* CoreText */ = { - isa = PBXGroup; - children = ( - FE89AF470C33679100CD21FB /* KTFont.h */, - FE89AF480C33679100CD21FB /* KTFont.m */, - FE337FC90EE77A6C00D4A751 /* CTFont.m */, - ); - name = CoreText; - path = ../CoreText; - sourceTree = ""; - }; - FECAF4C90DB710EE00BA2A8E /* Products */ = { - isa = PBXGroup; - children = ( - FECAF4D10DB710EE00BA2A8E /* ApplicationServices.framework */, - ); - name = Products; - sourceTree = ""; - }; - FED166CC0BE5022A00BF9889 /* NSSegmentedControl */ = { - isa = PBXGroup; - children = ( - FED166D40BE502AD00BF9889 /* NSSegmentItem.h */, - FED166D50BE502AD00BF9889 /* NSSegmentItem.m */, - FE2A110B0B45BCCB006C03DE /* NSSegmentedCell.h */, - FE2A110C0B45BCCB006C03DE /* NSSegmentedCell.m */, - FE2A11130B45BCD8006C03DE /* NSSegmentedControl.h */, - FE2A11140B45BCD8006C03DE /* NSSegmentedControl.m */, - ); - path = NSSegmentedControl; - sourceTree = ""; - }; - FED310D70BCC022300552615 /* NSAnimation */ = { - isa = PBXGroup; - children = ( - FE463D63102CAE3500B265D6 /* NSAnimationContext.h */, - FE463D64102CAE3500B265D6 /* NSAnimationContext.m */, - FED310DD0BCC027200552615 /* NSAnimation.h */, - FED310DE0BCC027200552615 /* NSAnimation.m */, - FED310DF0BCC027200552615 /* NSViewAnimation.h */, - FED310E00BCC027200552615 /* NSViewAnimation.m */, - ); - path = NSAnimation; - sourceTree = ""; - }; - FED38C2610E1305700A2A651 /* QuartzCore */ = { - isa = PBXGroup; - children = ( - FEDEABAD12C98F4C008E5A59 /* CALayerContext.m */, - FEDEAA9812C2639B008E5A59 /* CAValueFunction.m */, - FEDEA95312C13368008E5A59 /* CABase.m */, - FEDEA8B212C112EE008E5A59 /* CATransactionGroup.h */, - FEDEA8AC12C112E5008E5A59 /* CATransactionGroup.m */, - FE41B85812BEA2C800ED6C10 /* CATransaction.m */, - FE20C20711892436006F01BA /* CAAnimation.m */, - FEF5A7C711E4EB0A009B0041 /* CAAnimationGroup.m */, - FEF5A7C811E4EB0A009B0041 /* CABasicAnimation.m */, - FED38C3110E13DCA00A2A651 /* CALayer.m */, - FEF5A7C911E4EB0A009B0041 /* CAMediaTimingFunction.m */, - FEF5A7CA11E4EB0A009B0041 /* CAPropertyAnimation.m */, - FED38C3210E13DCA00A2A651 /* CARenderer.m */, - FED38C3310E13DCA00A2A651 /* CATransform3D.m */, - FEF5A7CB11E4EB0A009B0041 /* CATransition.m */, - FE7AA0CB10F9788100FEDD9C /* CAWindowOpenGLContext.h */, - FE7AA0CC10F9788100FEDD9C /* CAWindowOpenGLContext.m */, - FE20C20811892436006F01BA /* CIAffineTransform.m */, - FE71DA9111F7433000E6F801 /* CIBoxBlur.m */, - FE71DA7011F7403200E6F801 /* CIBloom.m */, - FE20C20911892436006F01BA /* CIColor.m */, - FE20C20A11892436006F01BA /* CIContext.m */, - FE20C20B11892436006F01BA /* CIFilter.m */, - FE20C20C11892436006F01BA /* CIImage.m */, - FE71DA9211F7433000E6F801 /* CILinearGradient.m */, - FE20C20D11892436006F01BA /* CIVector.m */, - FED38C3B10E13DDF00A2A651 /* QuartzCore.xcodeproj */, - FEAE000911E4E43B00CA0912 /* CoreVideo */, - ); - name = QuartzCore; - path = ../QuartzCore; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - FE01A80A0C5D9BCB00AEA51A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01A80B0C5D9BCB00AEA51A /* AppKitExport.h in Headers */, - FE01A80C0C5D9BCB00AEA51A /* AppKit.h in Headers */, - FE01A80D0C5D9BCB00AEA51A /* NSActionCell.h in Headers */, - FE01A80E0C5D9BCB00AEA51A /* NSAlertPanel.h in Headers */, - FE01A80F0C5D9BCB00AEA51A /* NSApplication.h in Headers */, - FE01A8100C5D9BCB00AEA51A /* NSAttributedString.h in Headers */, - FE01A8110C5D9BCB00AEA51A /* NSBitmapImageRep.h in Headers */, - FE01A8120C5D9BCB00AEA51A /* NSBox.h in Headers */, - FE01A8130C5D9BCB00AEA51A /* NSBrowser.h in Headers */, - FE01A8140C5D9BCB00AEA51A /* NSBrowserCell.h in Headers */, - FE01A8150C5D9BCB00AEA51A /* NSButton.h in Headers */, - FE01A8160C5D9BCB00AEA51A /* NSButtonCell.h in Headers */, - FE01A8170C5D9BCB00AEA51A /* NSCachedImageRep.h in Headers */, - FE01A8180C5D9BCB00AEA51A /* NSCell.h in Headers */, - FE01A8190C5D9BCB00AEA51A /* NSClipView.h in Headers */, - FE01A81A0C5D9BCB00AEA51A /* NSColorList.h in Headers */, - FE01A81B0C5D9BCB00AEA51A /* NSColorPanel.h in Headers */, - FE01A81C0C5D9BCB00AEA51A /* NSColorWell.h in Headers */, - FE01A81D0C5D9BCB00AEA51A /* NSComboBox.h in Headers */, - FE01A81E0C5D9BCB00AEA51A /* NSComboBoxCell.h in Headers */, - FE01A81F0C5D9BCB00AEA51A /* NSComboBoxView.h in Headers */, - FE01A8200C5D9BCB00AEA51A /* NSComboBoxWindow.h in Headers */, - FE01A8210C5D9BCB00AEA51A /* NSControl.h in Headers */, - FE01A8220C5D9BCB00AEA51A /* NSCursor.h in Headers */, - FE01A8230C5D9BCB00AEA51A /* NSCursorRect.h in Headers */, - FE01A8240C5D9BCB00AEA51A /* NSCustomImageRep.h in Headers */, - FE01A8250C5D9BCB00AEA51A /* NSDisplay.h in Headers */, - FE01A8260C5D9BCB00AEA51A /* NSDocument.h in Headers */, - FE01A8270C5D9BCB00AEA51A /* NSDocumentController.h in Headers */, - FE01A8280C5D9BCB00AEA51A /* NSDragging.h in Headers */, - FE01A8290C5D9BCB00AEA51A /* NSDraggingManager.h in Headers */, - FE01A82A0C5D9BCB00AEA51A /* NSEPSImageRep.h in Headers */, - FE01A82B0C5D9BCB00AEA51A /* NSFileWrapper.h in Headers */, - FE01A82C0C5D9BCB00AEA51A /* NSFont.h in Headers */, - FE01A82D0C5D9BCB00AEA51A /* NSFontFamily.h in Headers */, - FE01A82E0C5D9BCB00AEA51A /* NSFontManager.h in Headers */, - FE01A82F0C5D9BCB00AEA51A /* NSFontMetric.h in Headers */, - FE01A8300C5D9BCB00AEA51A /* NSFontPanel.h in Headers */, - FE01A8310C5D9BCB00AEA51A /* NSFontPanelCell.h in Headers */, - FE01A8320C5D9BCB00AEA51A /* NSFontTypeface.h in Headers */, - FE01A8330C5D9BCB00AEA51A /* NSForm.h in Headers */, - FE01A8340C5D9BCB00AEA51A /* NSFormCell.h in Headers */, - FE01A8350C5D9BCB00AEA51A /* NSGraphics.h in Headers */, - FE01A8360C5D9BCB00AEA51A /* NSGraphicsContext.h in Headers */, - FE01A8370C5D9BCB00AEA51A /* NSGraphicsContextFunctions.h in Headers */, - FE01A8380C5D9BCB00AEA51A /* NSImage.h in Headers */, - FE01A8390C5D9BCB00AEA51A /* NSImageCell.h in Headers */, - FE01A83A0C5D9BCB00AEA51A /* NSImageRep.h in Headers */, - FE01A83B0C5D9BCB00AEA51A /* NSImageView.h in Headers */, - FE01A83C0C5D9BCB00AEA51A /* NSInterfaceGraphics.h in Headers */, - FE01A83D0C5D9BCB00AEA51A /* NSInterfacePart.h in Headers */, - FE01A83E0C5D9BCB00AEA51A /* NSInterfacePartAttributedString.h in Headers */, - FE01A83F0C5D9BCB00AEA51A /* NSInterfacePartDisabledAttributedString.h in Headers */, - FE01A8400C5D9BCB00AEA51A /* NSInterfaceStyle.h in Headers */, - FE01A8410C5D9BCB00AEA51A /* NSMatrix.h in Headers */, - FE01A8420C5D9BCB00AEA51A /* NSModalSessionX.h in Headers */, - FE01A8430C5D9BCB00AEA51A /* NSOpenPanel.h in Headers */, - FE01A8440C5D9BCB00AEA51A /* NSPageLayout.h in Headers */, - FE01A8450C5D9BCB00AEA51A /* NSPanel.h in Headers */, - FE01A8460C5D9BCB00AEA51A /* NSPasteboard.h in Headers */, - FE01A8480C5D9BCB00AEA51A /* NSPopUpButton.h in Headers */, - FE01A8490C5D9BCB00AEA51A /* NSPopUpButtonCell.h in Headers */, - FE01A84A0C5D9BCB00AEA51A /* NSPopUpView.h in Headers */, - FE01A84B0C5D9BCB00AEA51A /* NSPopUpWindow.h in Headers */, - FE01A84C0C5D9BCB00AEA51A /* NSParagraphStyle.h in Headers */, - FE01A84D0C5D9BCB00AEA51A /* NSPrintInfo.h in Headers */, - FE01A84E0C5D9BCB00AEA51A /* NSPrintOperation.h in Headers */, - FE01A84F0C5D9BCB00AEA51A /* NSProgressIndicator.h in Headers */, - FE01A8500C5D9BCB00AEA51A /* NSResponder.h in Headers */, - FE01A8510C5D9BCB00AEA51A /* NSSavePanel.h in Headers */, - FE01A8520C5D9BCB00AEA51A /* NSScreen.h in Headers */, - FE01A8530C5D9BCB00AEA51A /* NSScroller.h in Headers */, - FE01A8540C5D9BCB00AEA51A /* NSScrollView.h in Headers */, - FE01A8550C5D9BCB00AEA51A /* NSSheetContext.h in Headers */, - FE01A8560C5D9BCB00AEA51A /* NSSlider.h in Headers */, - FE01A8570C5D9BCB00AEA51A /* NSSliderCell.h in Headers */, - FE01A8580C5D9BCB00AEA51A /* NSSplitView.h in Headers */, - FE01A8590C5D9BCB00AEA51A /* NSStringDrawer.h in Headers */, - FE01A85A0C5D9BCB00AEA51A /* NSStringDrawing.h in Headers */, - FE01A85B0C5D9BCB00AEA51A /* NSSecureTextField.h in Headers */, - FE01A85C0C5D9BCB00AEA51A /* NSSecureTextFieldCell.h in Headers */, - FE01A85D0C5D9BCB00AEA51A /* NSStepper.h in Headers */, - FE01A85E0C5D9BCB00AEA51A /* NSStepperCell.h in Headers */, - FE01A85F0C5D9BCB00AEA51A /* NSTableColumn.h in Headers */, - FE01A8600C5D9BCB00AEA51A /* NSTableCornerView.h in Headers */, - FE01A8610C5D9BCB00AEA51A /* NSTableHeaderCell.h in Headers */, - FE01A8620C5D9BCB00AEA51A /* NSTableHeaderView.h in Headers */, - FE01A8630C5D9BCB00AEA51A /* NSTableView.h in Headers */, - FE01A8640C5D9BCB00AEA51A /* NSTabView.h in Headers */, - FE01A8650C5D9BCB00AEA51A /* NSTabViewItem.h in Headers */, - FE01A8660C5D9BCB00AEA51A /* NSText.h in Headers */, - FE01A8670C5D9BCB00AEA51A /* NSTextAttachment.h in Headers */, - FE01A8680C5D9BCB00AEA51A /* NSTextField.h in Headers */, - FE01A8690C5D9BCB00AEA51A /* NSTextFieldCell.h in Headers */, - FE01A86A0C5D9BCB00AEA51A /* NSTrackingArea.h in Headers */, - FE01A86B0C5D9BCB00AEA51A /* NSView.h in Headers */, - FE01A86C0C5D9BCB00AEA51A /* NSWindow.h in Headers */, - FE01A86D0C5D9BCB00AEA51A /* NSWindow-Private.h in Headers */, - FE01A86E0C5D9BCB00AEA51A /* NSThemeFrame.h in Headers */, - FE01A86F0C5D9BCB00AEA51A /* NSWindowController.h in Headers */, - FE01A8700C5D9BCB00AEA51A /* NSWorkspace.h in Headers */, - FE01A8720C5D9BCB00AEA51A /* NSOutlineView.h in Headers */, - FE01A8730C5D9BCB00AEA51A /* NSRulerView.h in Headers */, - FE01A8740C5D9BCB00AEA51A /* NSRulerMarker.h in Headers */, - FE01A8750C5D9BCB00AEA51A /* NSToolTipWindow.h in Headers */, - FE01A8760C5D9BCB00AEA51A /* NSWindowAnimationContext.h in Headers */, - FE01A8770C5D9BCB00AEA51A /* NSMeasurementUnit.h in Headers */, - FE01A8780C5D9BCB00AEA51A /* NSWindow-Drag.h in Headers */, - FE01A8790C5D9BCB00AEA51A /* NSNibOutletConnector.h in Headers */, - FE01A87A0C5D9BCB00AEA51A /* NSNibControlConnector.h in Headers */, - FE01A87B0C5D9BCB00AEA51A /* NSNibConnector.h in Headers */, - FE01A87C0C5D9BCB00AEA51A /* NSNibLoading.h in Headers */, - FE01A87D0C5D9BCB00AEA51A /* NSNibHelpConnector.h in Headers */, - FE01A87E0C5D9BCB00AEA51A /* NSColor.h in Headers */, - FE01A8840C5D9BCB00AEA51A /* NSColor_catalog.h in Headers */, - FE01A8850C5D9BCB00AEA51A /* conversions.h in Headers */, - FE01A8860C5D9BCB00AEA51A /* NSTextView.h in Headers */, - FE01A8870C5D9BCB00AEA51A /* NSTextContainer.h in Headers */, - FE01A8880C5D9BCB00AEA51A /* NSTextStorage.h in Headers */, - FE01A8890C5D9BCB00AEA51A /* NSTextStorage_concrete.h in Headers */, - FE01A88A0C5D9BCB00AEA51A /* NSLayoutManager.h in Headers */, - FE01A88B0C5D9BCB00AEA51A /* NSTypesetter.h in Headers */, - FE01A88C0C5D9BCB00AEA51A /* NSRangeArray.h in Headers */, - FE01A88D0C5D9BCB00AEA51A /* NSSecureTextView.h in Headers */, - FE01A88E0C5D9BCB00AEA51A /* NSSecureLayoutManager.h in Headers */, - FE01A88F0C5D9BCB00AEA51A /* NSTextTab.h in Headers */, - FE01A8900C5D9BCB00AEA51A /* NSEvent_mouse.h in Headers */, - FE01A8910C5D9BCB00AEA51A /* NSEvent_keyboard.h in Headers */, - FE01A8920C5D9BCB00AEA51A /* NSEvent_periodic.h in Headers */, - FE01A8930C5D9BCB00AEA51A /* NSEvent.h in Headers */, - FE01A8940C5D9BCB00AEA51A /* NSEvent_CoreGraphics.h in Headers */, - FE01A89A0C5D9BCB00AEA51A /* O2GraphicsState.h in Headers */, - FE01A89C0C5D9BCB00AEA51A /* CGWindow.h in Headers */, - FE01A89D0C5D9BCB00AEA51A /* CGEvent.h in Headers */, - FE01A89E0C5D9BCB00AEA51A /* NSColorPicker.h in Headers */, - FE01A89F0C5D9BCB00AEA51A /* NSColorPickerColorList.h in Headers */, - FE01A8A00C5D9BCB00AEA51A /* NSBrowserCellColorList.h in Headers */, - FE01A8A10C5D9BCB00AEA51A /* NSColorPickerSliders.h in Headers */, - FE01A8A20C5D9BCB00AEA51A /* Win32Cursor.h in Headers */, - FE01A8A50C5D9BCB00AEA51A /* Win32DeviceContextPrinter.h in Headers */, - FE01A8A60C5D9BCB00AEA51A /* Win32DeviceContextWindow.h in Headers */, - FE01A8A70C5D9BCB00AEA51A /* Win32Display.h in Headers */, - FE01A8A80C5D9BCB00AEA51A /* Win32Event.h in Headers */, - FE01A8A90C5D9BCB00AEA51A /* Win32Font.h in Headers */, - FE01A8AB0C5D9BCB00AEA51A /* Win32Window.h in Headers */, - FE01A8AE0C5D9BCB00AEA51A /* Win32RunningCopyPipe.h in Headers */, - FE01A8AF0C5D9BCB00AEA51A /* Win32EventInputSource.h in Headers */, - FE01A8B00C5D9BCB00AEA51A /* Win32Workspace.h in Headers */, - FE01A8B10C5D9BCB00AEA51A /* NSSavePanel-Win32.h in Headers */, - FE01A8B20C5D9BCB00AEA51A /* NSOpenPanel-Win32.h in Headers */, - FE01A8B40C5D9BCB00AEA51A /* Win32DraggingManager.h in Headers */, - FE01A8B50C5D9BCB00AEA51A /* Win32DragSession.h in Headers */, - FE01A8B60C5D9BCB00AEA51A /* Win32DropPasteboard.h in Headers */, - FE01A8B70C5D9BCB00AEA51A /* Win32FORMATETC.h in Headers */, - FE01A8B80C5D9BCB00AEA51A /* Win32GeneralPasteboard.h in Headers */, - FE01A8B90C5D9BCB00AEA51A /* Win32IDataObjectClient.h in Headers */, - FE01A8BA0C5D9BCB00AEA51A /* Win32IDataObjectServer.h in Headers */, - FE01A8BB0C5D9BCB00AEA51A /* Win32IDropSourceServer.h in Headers */, - FE01A8BC0C5D9BCB00AEA51A /* Win32IDropTargetServer.h in Headers */, - FE01A8BD0C5D9BCB00AEA51A /* Win32IEnumFORMATETCServer.h in Headers */, - FE01A8BE0C5D9BCB00AEA51A /* Win32IStreamClient.h in Headers */, - FE01A8BF0C5D9BCB00AEA51A /* Win32IUnknownServer.h in Headers */, - FE01A8C00C5D9BCB00AEA51A /* Win32Pasteboard.h in Headers */, - FE01A8C10C5D9BCB00AEA51A /* Win32TypesAndOwner.h in Headers */, - FE01A8C20C5D9BCB00AEA51A /* Win32Window-Drag.h in Headers */, - FE01A8C30C5D9BCB00AEA51A /* NSDragView.h in Headers */, - FE01A8C40C5D9BCB00AEA51A /* NSOpenGLContext.h in Headers */, - FE01A8C50C5D9BCB00AEA51A /* NSOpenGLPixelFormat.h in Headers */, - FE01A8C60C5D9BCB00AEA51A /* NSOpenGLView.h in Headers */, - FE01A8C70C5D9BCB00AEA51A /* NSRichTextReader.h in Headers */, - FE01A8C80C5D9BCB00AEA51A /* NSRichTextWriter.h in Headers */, - FE01A8C90C5D9BCB00AEA51A /* NSMainMenuView.h in Headers */, - FE01A8CA0C5D9BCB00AEA51A /* NSMenu.h in Headers */, - FE01A8CB0C5D9BCB00AEA51A /* NSMenuItem.h in Headers */, - FE01A8CC0C5D9BCB00AEA51A /* NSMenuView.h in Headers */, - FE01A8CD0C5D9BCB00AEA51A /* NSMenuWindow.h in Headers */, - FE01A8CE0C5D9BCB00AEA51A /* NSOverflowMenuView.h in Headers */, - FE01A8CF0C5D9BCB00AEA51A /* NSSubmenuView.h in Headers */, - FE01A8D00C5D9BCB00AEA51A /* NSKeyboardBindingManager.h in Headers */, - FE01A8D10C5D9BCB00AEA51A /* NSKeyboardBinding.h in Headers */, - FE01A8D30C5D9BCB00AEA51A /* NSToolbar.h in Headers */, - FE01A8D50C5D9BCB00AEA51A /* NSToolbarItem.h in Headers */, - FE01A8D60C5D9BCB00AEA51A /* NSToolbarView.h in Headers */, - FE01A8D80C5D9BCB00AEA51A /* NSToolbarCustomizationPalette.h in Headers */, - FE01A8D90C5D9BCB00AEA51A /* NSToolbarCustomizationView.h in Headers */, - FE01A8DC0C5D9BCB00AEA51A /* NSDrawer.h in Headers */, - FE01A8DD0C5D9BCB00AEA51A /* NSDrawerWindow.h in Headers */, - FE01A8DE0C5D9BCB00AEA51A /* O2TIFFImageDirectory.h in Headers */, - FE01A8DF0C5D9BCB00AEA51A /* O2Decoder_TIFF.h in Headers */, - FE01A8E00C5D9BCB00AEA51A /* NSIBObjectData.h in Headers */, - FE01A8E10C5D9BCB00AEA51A /* NSCustomObject.h in Headers */, - FE01A8E20C5D9BCB00AEA51A /* NSWindowTemplate.h in Headers */, - FE01A8E30C5D9BCB00AEA51A /* NSButtonImageSource.h in Headers */, - FE01A8E40C5D9BCB00AEA51A /* NSClassSwapper.h in Headers */, - FE01A8E50C5D9BCB00AEA51A /* NSCustomResource.h in Headers */, - FE01A8E60C5D9BCB00AEA51A /* NSCustomView.h in Headers */, - FE01A8E80C5D9BCB00AEA51A /* NSTextViewSharedData.h in Headers */, - FE01A8E90C5D9BCB00AEA51A /* NSMutableAttributedString.h in Headers */, - FE01A8EA0C5D9BCB00AEA51A /* NSMutableParagraphStyle.h in Headers */, - FE01A8EB0C5D9BCB00AEA51A /* NSAlert.h in Headers */, - FE01A8EC0C5D9BCB00AEA51A /* NSArrayController.h in Headers */, - FE01A8ED0C5D9BCB00AEA51A /* NSBezierPath.h in Headers */, - FE01A8EE0C5D9BCB00AEA51A /* NSColorSpace.h in Headers */, - FE01A8EF0C5D9BCB00AEA51A /* NSController.h in Headers */, - FE01A8F00C5D9BCB00AEA51A /* NSObjectController.h in Headers */, - FE01A8F10C5D9BCB00AEA51A /* NSTreeController.h in Headers */, - FE01A8F20C5D9BCB00AEA51A /* NSUserDefaultsController.h in Headers */, - FE01A8F30C5D9BCB00AEA51A /* NSGlyphGenerator.h in Headers */, - FE01A8F40C5D9BCB00AEA51A /* NSGlyphInfo.h in Headers */, - FE01A8F50C5D9BCB00AEA51A /* NSHelpManager.h in Headers */, - FE01A8F60C5D9BCB00AEA51A /* NSLevelIndicator.h in Headers */, - FE01A8F70C5D9BCB00AEA51A /* NSLevelIndicatorCell.h in Headers */, - FE01A8F80C5D9BCB00AEA51A /* NSNib.h in Headers */, - FE01A8F90C5D9BCB00AEA51A /* NSPDFImageRep.h in Headers */, - FE01A8FA0C5D9BCB00AEA51A /* NSPrinter.h in Headers */, - FE01A8FB0C5D9BCB00AEA51A /* NSSearchField.h in Headers */, - FE01A8FC0C5D9BCB00AEA51A /* NSSearchFieldCell.h in Headers */, - FE01A8FD0C5D9BCB00AEA51A /* NSSegmentedCell.h in Headers */, - FE01A8FE0C5D9BCB00AEA51A /* NSSegmentedControl.h in Headers */, - FE01A8FF0C5D9BCB00AEA51A /* NSShadow.h in Headers */, - FE01A9000C5D9BCB00AEA51A /* NSSound.h in Headers */, - FE01A9010C5D9BCB00AEA51A /* NSSpellChecker.h in Headers */, - FE01A9020C5D9BCB00AEA51A /* NSStatusBar.h in Headers */, - FE01A9030C5D9BCB00AEA51A /* NSStatusItem.h in Headers */, - FE01A9040C5D9BCB00AEA51A /* NSTokenField.h in Headers */, - FE01A9050C5D9BCB00AEA51A /* NSTokenFieldCell.h in Headers */, - FE01A9060C5D9BCB00AEA51A /* O2ColorSpace.h in Headers */, - FE01A9070C5D9BCB00AEA51A /* O2Context.h in Headers */, - FE01A9080C5D9BCB00AEA51A /* O2DataProvider.h in Headers */, - FE01A9090C5D9BCB00AEA51A /* O2Function.h in Headers */, - FE01A90A0C5D9BCB00AEA51A /* O2Image.h in Headers */, - FE01A90B0C5D9BCB00AEA51A /* O2PDFArray.h in Headers */, - FE01A90C0C5D9BCB00AEA51A /* O2PDFContentStream.h in Headers */, - FE01A90D0C5D9BCB00AEA51A /* O2PDFDictionary.h in Headers */, - FE01A90E0C5D9BCB00AEA51A /* O2PDFDocument.h in Headers */, - FE01A90F0C5D9BCB00AEA51A /* O2PDFFilter.h in Headers */, - FE01A9100C5D9BCB00AEA51A /* O2PDFFunction_Type2.h in Headers */, - FE01A9110C5D9BCB00AEA51A /* O2PDFFunction_Type3.h in Headers */, - FE01A9120C5D9BCB00AEA51A /* O2PDFObject_Boolean.h in Headers */, - FE01A9130C5D9BCB00AEA51A /* O2PDFObject_const.h in Headers */, - FE01A9140C5D9BCB00AEA51A /* O2PDFObject_identifier.h in Headers */, - FE01A9150C5D9BCB00AEA51A /* O2PDFObject_Integer.h in Headers */, - FE01A9160C5D9BCB00AEA51A /* O2PDFObject_Name.h in Headers */, - FE01A9170C5D9BCB00AEA51A /* O2PDFObject_R.h in Headers */, - FE01A9180C5D9BCB00AEA51A /* O2PDFObject_Real.h in Headers */, - FE01A9190C5D9BCB00AEA51A /* O2PDFObject.h in Headers */, - FE01A91A0C5D9BCB00AEA51A /* O2PDFOperators.h in Headers */, - FE01A91B0C5D9BCB00AEA51A /* O2PDFOperatorTable.h in Headers */, - FE01A91C0C5D9BCB00AEA51A /* O2PDFPage.h in Headers */, - FE01A91D0C5D9BCB00AEA51A /* O2PDFScanner.h in Headers */, - FE01A91E0C5D9BCB00AEA51A /* O2PDFStream.h in Headers */, - FE01A91F0C5D9BCB00AEA51A /* O2PDFString.h in Headers */, - FE01A9200C5D9BCB00AEA51A /* O2PDFxref.h in Headers */, - FE01A9210C5D9BCB00AEA51A /* O2PDFxrefEntry.h in Headers */, - FE01A9220C5D9BCB00AEA51A /* O2Shading.h in Headers */, - FE01A92C0C5D9BCB00AEA51A /* O2Color.h in Headers */, - FE01A92D0C5D9BCB00AEA51A /* O2Layer.h in Headers */, - FE01A92E0C5D9BCB00AEA51A /* O2Path.h in Headers */, - FE01A92F0C5D9BCB00AEA51A /* O2Pattern.h in Headers */, - FE01A9310C5D9BCB00AEA51A /* O2ImageSource_PNG.h in Headers */, - FE01A9320C5D9BCB00AEA51A /* O2ImageSource_TIFF.h in Headers */, - FE01A9330C5D9BCB00AEA51A /* O2ImageSource.h in Headers */, - FE01A9350C5D9BCB00AEA51A /* O2BitmapContext.h in Headers */, - FE01A9360C5D9BCB00AEA51A /* O2MutablePath.h in Headers */, - FE01A9380C5D9BCB00AEA51A /* NSOpenGLPixelBuffer.h in Headers */, - FE01A9390C5D9BCB00AEA51A /* NSDatePicker.h in Headers */, - FE01A93A0C5D9BCB00AEA51A /* NSDatePickerCell.h in Headers */, - FE01A93B0C5D9BCB00AEA51A /* NSGraphicsStyle_uxtheme.h in Headers */, - FE01A93C0C5D9BCB00AEA51A /* NSGraphicsStyle.h in Headers */, - FE01A93D0C5D9BCB00AEA51A /* NSNibBindingConnector.h in Headers */, - FE01A93E0C5D9BCB00AEA51A /* NSBinder.h in Headers */, - FE01A93F0C5D9BCB00AEA51A /* NSKVOBinder.h in Headers */, - FE01A9400C5D9BCB00AEA51A /* NSObject+BindingSupport.h in Headers */, - FE01A9410C5D9BCB00AEA51A /* NSAnimation.h in Headers */, - FE01A9420C5D9BCB00AEA51A /* NSViewAnimation.h in Headers */, - FE01A9430C5D9BCB00AEA51A /* NSFontDescriptor.h in Headers */, - FE01A9440C5D9BCB00AEA51A /* NSSegmentItem.h in Headers */, - FE01A9450C5D9BCB00AEA51A /* NSTextBlock.h in Headers */, - FE01A9460C5D9BCB00AEA51A /* NSTextTable.h in Headers */, - FE01A9470C5D9BCB00AEA51A /* NSTextTableBlock.h in Headers */, - FE01A9480C5D9BCB00AEA51A /* NSTextInput.h in Headers */, - FE01A94B0C5D9BCB00AEA51A /* NSAffineTransform.h in Headers */, - FE01A94C0C5D9BCB00AEA51A /* NSTextList.h in Headers */, - FE01A94D0C5D9BCB00AEA51A /* NSTextAttachmentCell.h in Headers */, - FE01A94E0C5D9BCB00AEA51A /* NSTypesetter_concrete.h in Headers */, - FE01A94F0C5D9BCB00AEA51A /* KTFont.h in Headers */, - FE01A9510C5D9BCB00AEA51A /* O2DeviceContext_gdi.h in Headers */, - FE01A9520C5D9BCB00AEA51A /* NSPrintPanel.h in Headers */, - FE1CEA6F0C8F12F800184630 /* opengl_dll.h in Headers */, - FE8F9F2A0C9C5D0000270AEE /* O2zlib.h in Headers */, - FE572D8F0CA0809500FB3E79 /* O2ImageSource_BMP.h in Headers */, - FEDF951F0CAF43E7009DC96F /* O2PDFContext.h in Headers */, - FEABD6070CB9D0C90035F828 /* O2Context_gdi.h in Headers */, - FE311FA80CCC430200EBD696 /* KTFont_gdi.h in Headers */, - FEA8A98D0CD2CBC000E1E936 /* NSUserInterfaceValidation.h in Headers */, - FE8D94AB0CE3A6C700AFB060 /* NSControllerSelectionProxy.h in Headers */, - FE8D95200CE4057300AFB060 /* NSMultipleValueBinder.h in Headers */, - FE8286800D34727900F7489F /* NSSystemInfoPanel.h in Headers */, - FE34FBC80D6F24A5008D2C1A /* O2ClipPhase.h in Headers */, - FE5C69A10D76039F00098551 /* O2DeviceContext_gdiDIBSection.h in Headers */, - FE6EDE340DB797D9005503A1 /* O2Exceptions.h in Headers */, - FE6EE27E0DB91EA8005503A1 /* VGmath.h in Headers */, - FE6EE28E0DB91FDF005503A1 /* O2Surface.h in Headers */, - FE6EE2E50DB92B11005503A1 /* VGPath.h in Headers */, - FE33952D0DB92D25009AB3E0 /* O2Blending.h in Headers */, - FE3395590DB930F4009AB3E0 /* O2Context_builtin.h in Headers */, - FEBF55E50DCA112900CE5A1C /* O2ImageSource_JPEG.h in Headers */, - FEBF55E60DCA112900CE5A1C /* O2Paint.h in Headers */, - FEBF5A0D0DCD450700CE5A1C /* O2Paint_axialGradient.h in Headers */, - FEBF5A0F0DCD450700CE5A1C /* O2Paint_color.h in Headers */, - FEBF5A110DCD450700CE5A1C /* O2Paint_image.h in Headers */, - FEBF5A130DCD450700CE5A1C /* O2Paint_pattern.h in Headers */, - FEBF5A150DCD450700CE5A1C /* O2Paint_radialGradient.h in Headers */, - FEBF5A170DCD450700CE5A1C /* O2Paint_ramp.h in Headers */, - FE08C3230DDF299800B3169A /* NSColor_CGColor.h in Headers */, - FEF9CAE90E133FF2003502ED /* O2Surface_DIBSection.h in Headers */, - FEF9CB9F0E13EB8E003502ED /* O2ColorSpace+PDF.h in Headers */, - FEF9CBC00E13EB8E003502ED /* O2Function+PDF.h in Headers */, - FEF9CBC20E13EB8E003502ED /* O2Image+PDF.h in Headers */, - FEF9CBC40E13EB8E003502ED /* O2Shading+PDF.h in Headers */, - FEF9CCC30E1416C4003502ED /* O2Context_builtin_gdi.h in Headers */, - FEA965B40E7EA97500413F40 /* NSBitmapImageRep-Private.h in Headers */, - C8C52C8F0E7ED1FF003F03B5 /* NSObservationProxy.h in Headers */, - 365710650E81A10E008FE1BE /* NSGradient.h in Headers */, - C84909370E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.h in Headers */, - FE25FF620EE58712009C91B1 /* O2Font.h in Headers */, - C85D91970EE6A806004EBAEA /* NSDictionaryController.h in Headers */, - FEA25F980EECCE4D008750D0 /* NSSound_win32.h in Headers */, - FE669C9A0F12B1A600534F46 /* gif_lib.h in Headers */, - FEC0C7810F146AF800903F6D /* O2ImageSource_GIF.h in Headers */, - FE38749C0F4333D600EC9F00 /* NSToolbarItemView.h in Headers */, - FE6BE4460F446B92007D7F3F /* NSToolbarItemGroup.h in Headers */, - C8AB730E0F40C21A00D93B96 /* NSControllerMarker.h in Headers */, - FEA317C20FD5893300F480D4 /* NSRaise.h in Headers */, - FE9DB3D50FD6BD5A00A1CE17 /* NSRangeEntries.h in Headers */, - FEAED7A20FD6C96E0043F915 /* O2DataConsumer.h in Headers */, - FEA661230FF5C6F200E2C03B /* O2Font_gdi.h in Headers */, - FEBF5B77100D851500F64C71 /* O2LZW.h in Headers */, - A1CC7019100534AB00DB9974 /* NSCachingBinder.h in Headers */, - A1CC70481005371100DB9974 /* NSTextFieldBinder.h in Headers */, - FE6D918C101381F600BA6BAD /* NSCellUndoManager.h in Headers */, - FE463D65102CAE3500B265D6 /* NSAnimationContext.h in Headers */, - FE463D6F102CAEF500B265D6 /* NSCollectionView.h in Headers */, - FE463D85102CAF4A00B265D6 /* NSDockTile.h in Headers */, - FE463ED4102D0F9D00B265D6 /* NSPathCell.h in Headers */, - FE463ED6102D0F9D00B265D6 /* NSPathComponentCell.h in Headers */, - FE463ED8102D0F9D00B265D6 /* NSPathControl.h in Headers */, - FE463EDA102D0F9D00B265D6 /* NSPredicateEditor.h in Headers */, - FE463EDC102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.h in Headers */, - FE463EDE102D0F9D00B265D6 /* NSRuleEditor.h in Headers */, - FE463EE0102D0F9D00B265D6 /* NSTreeNode.h in Headers */, - FE463EE2102D0F9D00B265D6 /* NSViewController.h in Headers */, - FE49B9A71030C49300ADCC6C /* NSCollectionViewItem.h in Headers */, - FE4478081039F64E00ECD6A6 /* NSOpenGL.h in Headers */, - FE953DDA103B0EA0008A71F0 /* NSEvent_other.h in Headers */, - FE3C8551108779540018252A /* O2AffineTransform.h in Headers */, - FE3C8553108779540018252A /* O2Geometry.h in Headers */, - FEF4684310895C9800B45195 /* CGConversions.h in Headers */, - FE8C01CE10C59ADA00FE4072 /* O2ImageDestination.h in Headers */, - FE8C01D810C59B0600FE4072 /* O2Encoder_TIFF.h in Headers */, - FE20C245118924A4006F01BA /* NSAccessibility.h in Headers */, - FE20C247118924A4006F01BA /* NSCIImageRep.h in Headers */, - FE20C249118924A4006F01BA /* NSErrors.h in Headers */, - FE20C26711892517006F01BA /* NSNibAXRelationshipConnector.h in Headers */, - FED56E6D11A2D8A200D6D09B /* CAWindowOpenGLContext.h in Headers */, - FE44BDD311EBA07A00762BF1 /* O2ImageSource_ICNS.h in Headers */, - FE71E94411FA88BF00E6F801 /* O2Font+PDF.h in Headers */, - FE71E94511FA88BF00E6F801 /* O2PDFFunction_Type4.h in Headers */, - FE71EF5311FBCABE00E6F801 /* O2Encoding.h in Headers */, - FE71F07C11FC72A500E6F801 /* O2PDFCharWidths.h in Headers */, - FE71F1CE11FCB9B900E6F801 /* O2PDFFunction_Type0.h in Headers */, - FE71F25611FD21EE00E6F801 /* O2PDFFont.h in Headers */, - FE71F3C511FD40B800E6F801 /* O2TTFDecoder.h in Headers */, - FE43BE2111FFBAAD00119833 /* O2PDFBlock.h in Headers */, - FE39C3311203305900A80A71 /* O2ClipState.h in Headers */, - FE39C69C1203D72000A80A71 /* _NSManagedProxy.h in Headers */, - FE39C69E1203D72000A80A71 /* NSPersistentDocument.h in Headers */, - FE7EF28B1211095500B2B398 /* NSTokenAttachmentCell.h in Headers */, - FE051BDB1221A2F40097BA92 /* O2Font_freetype.h in Headers */, - FE4A25BB1222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.h in Headers */, - FE4A25C91222C4E9009058C1 /* NSRuleEditorButtonCell.h in Headers */, - FE4A25CB1222C4E9009058C1 /* NSRuleEditorViewSliceRow.h in Headers */, - FE069E231245A4B80040F165 /* O2GlyphStencil.h in Headers */, - FE14436A1256D43D007FE685 /* _NSControllerArray.h in Headers */, - FE58787112694A2D009B9EDF /* O2argb8u.h in Headers */, - FE58788112694AD2009B9EDF /* O2argb32f.h in Headers */, - FE587954126961BD009B9EDF /* O2ClipMask.h in Headers */, - FE99DA74128396B6006D789F /* O2Encoder_PNG.h in Headers */, - FE5F4CA812A860BA00F5F334 /* O2Context_gdi+AppKit.h in Headers */, - FE74968812BB1D4F008DBFCB /* NSViewBackingLayer.h in Headers */, - FEDEA8B312C112EE008E5A59 /* CATransactionGroup.h in Headers */, - FEE4B2FA133BB8770095E656 /* NSWindowScripting.h in Headers */, - 49A7975314224021001CE4C2 /* O2Encoder_JPG.h in Headers */, - FE09AF3513FCC56600B53D10 /* NSSpellProtocol.h in Headers */, - FE2C93D414035649002E0CB4 /* NSSpellingViewController.h in Headers */, - FEB3F1EB14049CC400059C8F /* NSSpellCheckerTagData.h in Headers */, - 63138202145F3A5F00765AA7 /* NSColorPickerWheel.h in Headers */, - 6313829A145F6ED300765AA7 /* NSColorPickerWheelView.h in Headers */, - 49D5D245165F9D0000D6A8EE /* NSUndoTextOperation.h in Headers */, - 49C12B4E16FCAF270018CB21 /* O2EXIFDecoder.h in Headers */, - 63848FEC17A18C050019E4DC /* NSPrintProgressPanelController.h in Headers */, - 9824ACBB14EDE5A100245AEF /* NSStatusBar_(Private).h in Headers */, - 98214B8F14EE566B006DB3BD /* NSStatusItem+Private.h in Headers */, - FEBE636D17D44C5E00EFA1F2 /* NSSound_DirectShow.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - FE01A8070C5D9BCB00AEA51A /* AppKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE01AABF0C5D9BCB00AEA51A /* Build configuration list for PBXNativeTarget "AppKit" */; - buildPhases = ( - FE4C081E1434A30A0034EE26 /* Detect Libraries */, - 6311B0C214C6583E007AD8C0 /* Generate Strings */, - FE01A80A0C5D9BCB00AEA51A /* Headers */, - FE01A9530C5D9BCB00AEA51A /* Sources */, - FE01AA940C5D9BCB00AEA51A /* Resources */, - FE01AABB0C5D9BCB00AEA51A /* Frameworks */, - FE01AABD0C5D9BCB00AEA51A /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - FE01AACC0C5D9BE700AEA51A /* PBXTargetDependency */, - FE6EDEBD0DB7AF94005503A1 /* PBXTargetDependency */, - FE0C4EC51041CF3200D8C100 /* PBXTargetDependency */, - FE0DDFBB12BFF7DD008EC2E6 /* PBXTargetDependency */, - ); - name = AppKit; - productInstallPath = /Library/Frameworks; - productName = AppKit; - productReference = FE01AAC10C5D9BCB00AEA51A /* AppKit.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 6E2B57700976075500DA0954 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 6E2B57740976075500DA0954 /* Build configuration list for PBXProject "AppKit" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - Japanese, - French, - German, - en, - fr, - de, - ); - mainGroup = 6E2B531A0976074C00DA0954 /* AppKit */; - productRefGroup = 6E2B53230976074C00DA0954 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FECAF4C90DB710EE00BA2A8E /* Products */; - ProjectRef = FECAF4C80DB710EE00BA2A8E /* ApplicationServices.xcodeproj */; - }, - { - ProductGroup = FE39C67F1203D5E200A80A71 /* Products */; - ProjectRef = FE39C67E1203D5E200A80A71 /* CoreData.xcodeproj */; - }, - { - ProductGroup = 6E46FEBF0A2D2DCF004CD27E /* Products */; - ProjectRef = 6E46FEBE0A2D2DCF004CD27E /* Foundation.xcodeproj */; - }, - { - ProductGroup = FE0C4EB91041CF2100D8C100 /* Products */; - ProjectRef = FE0C4EB81041CF2100D8C100 /* OpenGL.xcodeproj */; - }, - { - ProductGroup = FE41B87012BEA2D900ED6C10 /* Products */; - ProjectRef = FED38C3B10E13DDF00A2A651 /* QuartzCore.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - FE01A8070C5D9BCB00AEA51A /* AppKit */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE01AACA0C5D9BCC00AEA51A /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE01AAC90C5D9BCC00AEA51A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0C4EC11041CF2100D8C100 /* OpenGL.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = OpenGL.framework; - remoteRef = FE0C4EC01041CF2100D8C100 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE39C6831203D5E200A80A71 /* CoreData.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreData.framework; - remoteRef = FE39C6821203D5E200A80A71 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE41B87A12BEA2D900ED6C10 /* QuartzCore.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = QuartzCore.framework; - remoteRef = FE41B87912BEA2D900ED6C10 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FECAF4D10DB710EE00BA2A8E /* ApplicationServices.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = ApplicationServices.framework; - remoteRef = FECAF4D00DB710EE00BA2A8E /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - FE01AA940C5D9BCB00AEA51A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01AA970C5D9BCB00AEA51A /* NSToolbarCustomizationPalette.nib in Resources */, - FE01AA980C5D9BCB00AEA51A /* NSSplitViewVDimple.tiff in Resources */, - FE01AA990C5D9BCB00AEA51A /* NSHighlightedBrowserCellArrow.tiff in Resources */, - FE01AA9A0C5D9BCB00AEA51A /* NSRulerMarkerTab.tiff in Resources */, - FE01AA9B0C5D9BCB00AEA51A /* NSAlertPanelExclamation.tiff in Resources */, - FE01AA9C0C5D9BCB00AEA51A /* NSComboBoxCellDown.tiff in Resources */, - FE01AA9D0C5D9BCB00AEA51A /* NSRadioButton.tiff in Resources */, - FE01AA9E0C5D9BCB00AEA51A /* NSSwitch.tiff in Resources */, - FE01AA9F0C5D9BCB00AEA51A /* NSHighlightedSwitch.tiff in Resources */, - FE01AAA00C5D9BCB00AEA51A /* NSPopUpButtonCellPopUp.tiff in Resources */, - FE01AAA10C5D9BCB00AEA51A /* NSPopUpButtonCellPullDown.tiff in Resources */, - FE01AAA20C5D9BCB00AEA51A /* NSHighlightedRadioButton.tiff in Resources */, - FE01AAA40C5D9BCB00AEA51A /* NSSplitViewHDimple.tiff in Resources */, - FE01AAA50C5D9BCB00AEA51A /* NSBrowserCellArrow.tiff in Resources */, - FE01AAA70C5D9BCB00AEA51A /* NSMenu.plist in Resources */, - FE01AAAA0C5D9BCB00AEA51A /* NSColorPickerSlidersCMYK.tiff in Resources */, - FE01AAAB0C5D9BCB00AEA51A /* NSColorPickerColorList.tiff in Resources */, - FE01AAAC0C5D9BCB00AEA51A /* NSColorPickerSlidersHSB.tiff in Resources */, - FE01AAAD0C5D9BCB00AEA51A /* NSColorPickerSlidersRGB.tiff in Resources */, - FE01AAAE0C5D9BCB00AEA51A /* NSColorPickerSlidersGray.tiff in Resources */, - FE01AAAF0C5D9BCB00AEA51A /* NSMenuArrow.tiff in Resources */, - FE01AAB00C5D9BCB00AEA51A /* NSMenuViewDoubleRightArrow.tiff in Resources */, - FE01AAB10C5D9BCB00AEA51A /* NSMenuViewDoubleRightArrowGray.tiff in Resources */, - FE01AAB20C5D9BCB00AEA51A /* StandardKeyBindings.keybindings in Resources */, - FE01AAB30C5D9BCB00AEA51A /* NSToolbarShowFontsItem.tiff in Resources */, - FE01AAB40C5D9BCB00AEA51A /* NSToolbarCustomizeToolbarItem.tiff in Resources */, - FE01AAB50C5D9BCB00AEA51A /* NSToolbarShowColorsItem.tiff in Resources */, - FE01AAB60C5D9BCB00AEA51A /* NSToolbarPrintItem.tiff in Resources */, - FE01AAB70C5D9BCB00AEA51A /* NSButtonCell_disclosure_highlighted.tif in Resources */, - FE01AAB80C5D9BCB00AEA51A /* NSButtonCell_disclosure_normal.tif in Resources */, - FE01AAB90C5D9BCB00AEA51A /* NSButtonCell_disclosure_selected.tif in Resources */, - FE01AABA0C5D9BCB00AEA51A /* defaultBindingOptions.plist in Resources */, - FE82867F0D34727900F7489F /* NSApplicationIcon.tiff in Resources */, - FEED247A0EC9E8F200A5B07E /* NSRefreshTemplate.pdf in Resources */, - FEE36B800F4B20C6005AEBBF /* NSToolbarOverflowArrow.pdf in Resources */, - C829A6A310FF911400A2306E /* NSGoLeftTemplate.pdf in Resources */, - C829A6B310FFA2D100A2306E /* NSGoRightTemplate.pdf in Resources */, - FE44BA0C11E9807C00762BF1 /* NSActionTemplate.pdf in Resources */, - FE44BA0E11E9807C00762BF1 /* NSAddTemplate.pdf in Resources */, - FE44BA1011E9807C00762BF1 /* NSRemoveTemplate.pdf in Resources */, - FE44BA3411E982B500762BF1 /* NSUser.pdf in Resources */, - FE44BB2811EA2C9100762BF1 /* NSLockLockedTemplate.pdf in Resources */, - FE44BB3411EA30F500762BF1 /* NSLockUnlockedTemplate.pdf in Resources */, - FE44BCFE11EB928700762BF1 /* NSAdvanced.pdf in Resources */, - FE44BF2911EC0A8F00762BF1 /* NSPreferencesGeneral.pdf in Resources */, - CFBAE5191AFC56A900F2BB97 /* windows-i386-AppKit.xcconfig in Resources */, - FE71E94011FA88BF00E6F801 /* InfoPlist.strings in Resources */, - FE71E94111FA88BF00E6F801 /* Info.plist in Resources */, - FE39BE5F12013CFD00A80A71 /* NSSearchGlass.pdf in Resources */, - FE39BECC1201DD3A00A80A71 /* NSStopProgressFreestandingTemplate.pdf in Resources */, - FE7EFA89121335CB00B2B398 /* NSInvalidDataFreestandingTemplate.pdf in Resources */, - FEED42CE1224B82B0059B0DF /* NSExitFullScreenTemplate.pdf in Resources */, - FEED42D01224B82B0059B0DF /* NSInfo.pdf in Resources */, - FEED42D21224B82B0059B0DF /* NSStopProgressTemplate.pdf in Resources */, - FE1707FE1260A1E000D18E9E /* NSEnterFullScreenTemplate.pdf in Resources */, - 631381D3145F2FFA00765AA7 /* NSColorPickerListIcon.png in Resources */, - 631381D4145F2FFA00765AA7 /* NSColorPickerSlidersIcon.png in Resources */, - 631381D5145F2FFA00765AA7 /* NSColorPickerWheelIcon.png in Resources */, - 631382B4145F734100765AA7 /* NSColorWheel.png in Resources */, - 6311B10A14C7396A007AD8C0 /* Localizable.strings in Resources */, - 6311B16314C74B00007AD8C0 /* NSColorPanel.nib in Resources */, - 6311B16414C74B00007AD8C0 /* NSFontPanel.nib in Resources */, - 6311B17F14C74EED007AD8C0 /* NSColorPickerColorList.nib in Resources */, - 6311B18014C74EED007AD8C0 /* NSColorPickerSliders.nib in Resources */, - 6311B18114C74EED007AD8C0 /* NSColorPickerWheel.nib in Resources */, - 6311B19514C750BE007AD8C0 /* NSSystemInfoPanel.nib in Resources */, - 6311B19D14C7515B007AD8C0 /* NSSpellingViewController.xib in Resources */, - 49B85E96166FBC9A00507E8C /* UNIDATA in Resources */, - 49EB338E171C8A8F00BD2535 /* NSToolbarOverflowArrow.tiff in Resources */, - 496555CB17A02FAD0015D3B3 /* NSPoof.png in Resources */, - 63848FE217A189E70019E4DC /* NSPrintProgressPanel.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXRezBuildPhase section */ - FE01AABD0C5D9BCB00AEA51A /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 6311B0C214C6583E007AD8C0 /* Generate Strings */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Generate Strings"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "rm -f \"${SRCROOT}/en.lproj/Localizable.strings\"\n# Then append the one from the code\ngenstrings -a -q -o \"${SRCROOT}/en.lproj\" \"${SRCROOT}\"/*m \"${SRCROOT}\"/NSColor.subproj/*m \"${SRCROOT}\"/NSColorPicker.subproj/*m \"${SRCROOT}\"/NSDrawer.subproj/*m \"\"${SRCROOT}\"/NSEvent.subproj/*m ${SRCROOT}\"/NSMenu.subproj/*m \"${SRCROOT}\"/NSTextView.subproj/*m \"${SRCROOT}\"/NSToolbar.subproj/*m \"${SRCROOT}\"/RTF.subproj/*m \"${SRCROOT}\"/Win32.subproj/*m"; - }; - FE4C081E1434A30A0034EE26 /* Detect Libraries */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Detect Libraries"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/O2Defines_FreeType.h", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "#!/bin/sh\nmkdir -p $DERIVED_FILE_DIR\necho \"\" > $DERIVED_FILE_DIR/O2Defines_FreeType.h\n\nif [ -d ../system/i386-mingw32msvc/freetype-2.3.5 ]; then\n\techo \"FreeType 2.3.5 present.\"\n\techo \"#define FREETYPE_PRESENT 1\" >> $DERIVED_FILE_DIR/O2Defines_FreeType.h\nelse\n# Create empty libfreetype for link phase\n echo \"FreeType 2.3.5 not found\"\n touch $DERIVED_FILE_DIR/libfreetype.c\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-gcc $DERIVED_FILE_DIR/libfreetype.c -c -o $DERIVED_FILE_DIR/libfreetype.o\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-ar cr $DERIVED_FILE_DIR/libfreetype.a $DERIVED_FILE_DIR/libfreetype.o\nfi\n\necho \"\" > $DERIVED_FILE_DIR/O2Defines_libjpeg.h\nif [ -d ../system/i386-mingw32msvc/libjpeg ]; then\n\techo \"libjpeg present.\"\n\techo \"#define LIBJPEG_PRESENT 1\" >> $DERIVED_FILE_DIR/O2Defines_libjpeg.h\nelse\n# Create empty libjpeg for link phase\n echo \"libjpeg not found\"\n touch $DERIVED_FILE_DIR/libjpeg.c\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-gcc $DERIVED_FILE_DIR/libjpeg.c -c -o $DERIVED_FILE_DIR/libjpeg.o\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-ar cr $DERIVED_FILE_DIR/libjpeg.a $DERIVED_FILE_DIR/libjpeg.o\nfi\n\necho \"\" > $DERIVED_FILE_DIR/O2Defines_zlib.h\nif [ -d ../system/i386-mingw32msvc/zlib-1.2.5 ]; then\n\techo \"zlib present.\"\n\techo \"#define ZLIB_PRESENT 1\" >> $DERIVED_FILE_DIR/O2Defines_zlib.h\nelse\n# Create empty zlib for link phase\n echo \"zlib not found\"\n touch $DERIVED_FILE_DIR/zlib.c\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-gcc $DERIVED_FILE_DIR/zlib.c -c -o $DERIVED_FILE_DIR/zlib.o\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-ar cr $DERIVED_FILE_DIR/libz.a $DERIVED_FILE_DIR/zlib.o\nfi\n\necho \"\" > $DERIVED_FILE_DIR/O2Defines_libtiff.h\nif [ -d ../system/i386-mingw32msvc/libtiff ]; then\n\techo \"libitff present.\"\n\techo \"#define LIBTIFF_PRESENT 1\" >> $DERIVED_FILE_DIR/O2Defines_libtiff.h\nelse\n# Create empty libtiff for link phase\n echo \"libtiff not found\"\n touch $DERIVED_FILE_DIR/libtiff.c\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-gcc $DERIVED_FILE_DIR/libtiff.c -c -o $DERIVED_FILE_DIR/libtiff.o\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-ar cr $DERIVED_FILE_DIR/libtiff.a $DERIVED_FILE_DIR/libtiff.o\nfi\n\necho \"\" > $DERIVED_FILE_DIR/O2Defines_libpng.h\nif [ -d ../system/i386-mingw32msvc/libpng ]; then\n\techo \"libpng present.\"\n\techo \"#define LIBPNG_PRESENT 1\" >> $DERIVED_FILE_DIR/O2Defines_libpng.h\nelse\n# Create empty libpng for link phase\n echo \"libpng not found\"\n touch $DERIVED_FILE_DIR/libpng.c\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-gcc $DERIVED_FILE_DIR/libpng.c -c -o $DERIVED_FILE_DIR/libpng.o\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-ar cr $DERIVED_FILE_DIR/libpng.a $DERIVED_FILE_DIR/libpng.o\nfi\n\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - FE01A9530C5D9BCB00AEA51A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE9ACF13155EF59D002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m in Sources */, - FE9ACF14155EF59D002AFCA9 /* O2ImageDecoder_JPEG_stb.m in Sources */, - FE9ACF15155EF59D002AFCA9 /* O2ImageDecoder.m in Sources */, - FE01A9540C5D9BCB00AEA51A /* NSActionCell.m in Sources */, - FE01A9550C5D9BCB00AEA51A /* NSAlertPanel.m in Sources */, - FE01A9560C5D9BCB00AEA51A /* NSApplication.m in Sources */, - FE01A9570C5D9BCB00AEA51A /* NSAttributedString.m in Sources */, - FE01A9580C5D9BCB00AEA51A /* NSBitmapImageRep.m in Sources */, - CFA3CC3D1AD37BB300E8F830 /* NSRuleEditorButtonCell.m in Sources */, - FE01A9590C5D9BCB00AEA51A /* NSBox.m in Sources */, - FE01A95A0C5D9BCB00AEA51A /* NSBrowser.m in Sources */, - FE01A95B0C5D9BCB00AEA51A /* NSBrowserCell.m in Sources */, - FE01A95C0C5D9BCB00AEA51A /* NSButton.m in Sources */, - FE01A95D0C5D9BCB00AEA51A /* NSButtonCell.m in Sources */, - FE01A95E0C5D9BCB00AEA51A /* NSCachedImageRep.m in Sources */, - FE01A95F0C5D9BCB00AEA51A /* NSCell.m in Sources */, - FE01A9600C5D9BCB00AEA51A /* NSClipView.m in Sources */, - FE01A9610C5D9BCB00AEA51A /* NSColorList.m in Sources */, - FE01A9620C5D9BCB00AEA51A /* NSColorPanel.m in Sources */, - FE01A9630C5D9BCB00AEA51A /* NSColorWell.m in Sources */, - FE01A9640C5D9BCB00AEA51A /* NSComboBox.m in Sources */, - FE01A9650C5D9BCB00AEA51A /* NSComboBoxCell.m in Sources */, - FE01A9660C5D9BCB00AEA51A /* NSComboBoxView.m in Sources */, - FE01A9670C5D9BCB00AEA51A /* NSComboBoxWindow.m in Sources */, - FE01A9680C5D9BCB00AEA51A /* NSControl.m in Sources */, - FE01A9690C5D9BCB00AEA51A /* NSCursor.m in Sources */, - FE01A96A0C5D9BCB00AEA51A /* NSCursorRect.m in Sources */, - FE01A96B0C5D9BCB00AEA51A /* NSCustomImageRep.m in Sources */, - FE01A96C0C5D9BCB00AEA51A /* NSDisplay.m in Sources */, - FE01A96D0C5D9BCB00AEA51A /* NSDocument.m in Sources */, - FE01A96E0C5D9BCB00AEA51A /* NSDocumentController.m in Sources */, - FE01A96F0C5D9BCB00AEA51A /* NSDraggingManager.m in Sources */, - FE01A9700C5D9BCB00AEA51A /* NSEPSImageRep.m in Sources */, - FE01A9710C5D9BCB00AEA51A /* NSFileWrapper.m in Sources */, - FE01A9720C5D9BCB00AEA51A /* NSFont.m in Sources */, - FE01A9730C5D9BCB00AEA51A /* NSForm.m in Sources */, - FE01A9740C5D9BCB00AEA51A /* NSFormCell.m in Sources */, - FE01A9750C5D9BCB00AEA51A /* NSFontFamily.m in Sources */, - FE01A9760C5D9BCB00AEA51A /* NSFontManager.m in Sources */, - FE01A9770C5D9BCB00AEA51A /* NSFontMetric.m in Sources */, - FE01A9780C5D9BCB00AEA51A /* NSFontPanel.m in Sources */, - FE01A9790C5D9BCB00AEA51A /* NSFontPanelCell.m in Sources */, - FE01A97A0C5D9BCB00AEA51A /* NSFontTypeface.m in Sources */, - FE01A97B0C5D9BCB00AEA51A /* NSGraphics.m in Sources */, - FE01A97C0C5D9BCB00AEA51A /* NSGraphicsContext.m in Sources */, - FE01A97D0C5D9BCB00AEA51A /* NSImage.m in Sources */, - FE01A97E0C5D9BCB00AEA51A /* NSImageCell.m in Sources */, - FE01A97F0C5D9BCB00AEA51A /* NSImageRep.m in Sources */, - FE01A9800C5D9BCB00AEA51A /* NSImageView.m in Sources */, - FE01A9810C5D9BCB00AEA51A /* NSInterfaceGraphics.m in Sources */, - FE01A9820C5D9BCB00AEA51A /* NSInterfacePart.m in Sources */, - FE01A9830C5D9BCB00AEA51A /* NSInterfacePartAttributedString.m in Sources */, - FE01A9840C5D9BCB00AEA51A /* NSInterfacePartDisabledAttributedString.m in Sources */, - FE01A9850C5D9BCB00AEA51A /* NSInterfaceStyle.m in Sources */, - FE01A9860C5D9BCB00AEA51A /* NSMatrix.m in Sources */, - FE01A9870C5D9BCB00AEA51A /* NSModalSessionX.m in Sources */, - FE01A9880C5D9BCB00AEA51A /* NSOpenPanel.m in Sources */, - FE01A9890C5D9BCB00AEA51A /* NSPageLayout.m in Sources */, - FE01A98A0C5D9BCB00AEA51A /* NSPanel.m in Sources */, - FE01A98B0C5D9BCB00AEA51A /* NSParagraphStyle.m in Sources */, - FE01A98C0C5D9BCB00AEA51A /* NSPasteboard.m in Sources */, - FE01A98D0C5D9BCB00AEA51A /* NSPopUpButton.m in Sources */, - FE01A98E0C5D9BCB00AEA51A /* NSPopUpButtonCell.m in Sources */, - FE01A98F0C5D9BCB00AEA51A /* NSPopUpView.m in Sources */, - FE01A9900C5D9BCB00AEA51A /* NSPopUpWindow.m in Sources */, - FE01A9910C5D9BCB00AEA51A /* NSPrintInfo.m in Sources */, - FE01A9920C5D9BCB00AEA51A /* NSPrintOperation.m in Sources */, - FE01A9930C5D9BCB00AEA51A /* NSProgressIndicator.m in Sources */, - FE01A9940C5D9BCB00AEA51A /* NSResponder.m in Sources */, - FE01A9950C5D9BCB00AEA51A /* NSSavePanel.m in Sources */, - FE01A9960C5D9BCB00AEA51A /* NSScreen.m in Sources */, - FE01A9970C5D9BCB00AEA51A /* NSScroller.m in Sources */, - FE01A9980C5D9BCB00AEA51A /* NSScrollView.m in Sources */, - FE01A9990C5D9BCB00AEA51A /* NSSecureTextField.m in Sources */, - FE01A99A0C5D9BCB00AEA51A /* NSSecureTextFieldCell.m in Sources */, - FE01A99B0C5D9BCB00AEA51A /* NSSheetContext.m in Sources */, - FE01A99C0C5D9BCB00AEA51A /* NSSlider.m in Sources */, - FE01A99D0C5D9BCB00AEA51A /* NSSliderCell.m in Sources */, - FE01A99E0C5D9BCB00AEA51A /* NSSplitView.m in Sources */, - FE01A99F0C5D9BCB00AEA51A /* NSStepper.m in Sources */, - FE01A9A00C5D9BCB00AEA51A /* NSStepperCell.m in Sources */, - FE01A9A10C5D9BCB00AEA51A /* NSStringDrawer.m in Sources */, - FE01A9A20C5D9BCB00AEA51A /* NSStringDrawing.m in Sources */, - FE01A9A30C5D9BCB00AEA51A /* NSTableColumn.m in Sources */, - FE01A9A40C5D9BCB00AEA51A /* NSTableCornerView.m in Sources */, - FE01A9A50C5D9BCB00AEA51A /* NSTableHeaderCell.m in Sources */, - FE01A9A60C5D9BCB00AEA51A /* NSTableHeaderView.m in Sources */, - FE01A9A70C5D9BCB00AEA51A /* NSTableView.m in Sources */, - FE01A9A80C5D9BCB00AEA51A /* NSTabView.m in Sources */, - FE01A9A90C5D9BCB00AEA51A /* NSTabViewItem.m in Sources */, - FE01A9AA0C5D9BCB00AEA51A /* NSText.m in Sources */, - FE01A9AB0C5D9BCB00AEA51A /* NSTextAttachment.m in Sources */, - FE01A9AC0C5D9BCB00AEA51A /* NSTextField.m in Sources */, - FE01A9AD0C5D9BCB00AEA51A /* NSTextFieldCell.m in Sources */, - FE01A9AE0C5D9BCB00AEA51A /* NSTrackingArea.m in Sources */, - FE01A9AF0C5D9BCB00AEA51A /* NSView.m in Sources */, - FE01A9B00C5D9BCB00AEA51A /* NSWindow.m in Sources */, - FE01A9B10C5D9BCB00AEA51A /* NSThemeFrame.m in Sources */, - FE01A9B20C5D9BCB00AEA51A /* NSWindowController.m in Sources */, - FE01A9B30C5D9BCB00AEA51A /* NSWorkspace.m in Sources */, - FE01A9B50C5D9BCB00AEA51A /* NSOutlineView.m in Sources */, - FE01A9B60C5D9BCB00AEA51A /* NSRulerView.m in Sources */, - FE01A9B70C5D9BCB00AEA51A /* NSRulerMarker.m in Sources */, - FE01A9B80C5D9BCB00AEA51A /* NSToolTipWindow.m in Sources */, - FE01A9B90C5D9BCB00AEA51A /* NSWindowAnimationContext.m in Sources */, - FE01A9BA0C5D9BCB00AEA51A /* NSMeasurementUnit.m in Sources */, - FE01A9BB0C5D9BCB00AEA51A /* NSWindow-Drag.m in Sources */, - FE01A9BC0C5D9BCB00AEA51A /* NSNibOutletConnector.m in Sources */, - FE01A9BD0C5D9BCB00AEA51A /* NSNibControlConnector.m in Sources */, - FE01A9BE0C5D9BCB00AEA51A /* NSNibConnector.m in Sources */, - FE01A9BF0C5D9BCB00AEA51A /* NSNibLoading.m in Sources */, - FE01A9C00C5D9BCB00AEA51A /* NSNibHelpConnector.m in Sources */, - FE01A9C10C5D9BCB00AEA51A /* NSColor.m in Sources */, - FE01A9C70C5D9BCB00AEA51A /* NSColor_catalog.m in Sources */, - FE01A9C80C5D9BCB00AEA51A /* NSTextView.m in Sources */, - FE01A9C90C5D9BCB00AEA51A /* NSTextContainer.m in Sources */, - FE01A9CA0C5D9BCB00AEA51A /* NSTextStorage.m in Sources */, - FE01A9CB0C5D9BCB00AEA51A /* NSTextStorage_concrete.m in Sources */, - FE01A9CC0C5D9BCB00AEA51A /* NSLayoutManager.m in Sources */, - FE01A9CD0C5D9BCB00AEA51A /* NSTypesetter.m in Sources */, - FE01A9CE0C5D9BCB00AEA51A /* NSRangeArray.m in Sources */, - FE01A9CF0C5D9BCB00AEA51A /* NSSecureTextView.m in Sources */, - FE01A9D00C5D9BCB00AEA51A /* NSSecureLayoutManager.m in Sources */, - FE01A9D10C5D9BCB00AEA51A /* NSTextTab.m in Sources */, - FE01A9D20C5D9BCB00AEA51A /* NSEvent_mouse.m in Sources */, - FE01A9D30C5D9BCB00AEA51A /* NSEvent_keyboard.m in Sources */, - FE01A9D40C5D9BCB00AEA51A /* NSEvent_periodic.m in Sources */, - FE01A9D50C5D9BCB00AEA51A /* NSEvent.m in Sources */, - FE01A9D60C5D9BCB00AEA51A /* NSEvent_CoreGraphics.m in Sources */, - FE01A9D70C5D9BCB00AEA51A /* CGContext.m in Sources */, - FE01A9D80C5D9BCB00AEA51A /* CGGeometry.m in Sources */, - FE01A9D90C5D9BCB00AEA51A /* CGAffineTransform.m in Sources */, - FE01A9DA0C5D9BCB00AEA51A /* CGFont.m in Sources */, - FE01A9DB0C5D9BCB00AEA51A /* O2GraphicsState.m in Sources */, - FE01A9DD0C5D9BCB00AEA51A /* CGWindow.m in Sources */, - FE01A9DE0C5D9BCB00AEA51A /* CGEvent.m in Sources */, - FE01A9DF0C5D9BCB00AEA51A /* NSColorPicker.m in Sources */, - FE01A9E00C5D9BCB00AEA51A /* NSColorPickerColorList.m in Sources */, - FE01A9E10C5D9BCB00AEA51A /* NSBrowserCellColorList.m in Sources */, - FE01A9E20C5D9BCB00AEA51A /* NSColorPickerSliders.m in Sources */, - FE01A9E30C5D9BCB00AEA51A /* Win32Cursor.m in Sources */, - FE01A9E60C5D9BCB00AEA51A /* Win32DeviceContextPrinter.m in Sources */, - FE01A9E70C5D9BCB00AEA51A /* Win32DeviceContextWindow.m in Sources */, - FE01A9E80C5D9BCB00AEA51A /* Win32Display.m in Sources */, - FE01A9E90C5D9BCB00AEA51A /* Win32Event.m in Sources */, - FE01A9EA0C5D9BCB00AEA51A /* Win32Font.m in Sources */, - FE01A9EC0C5D9BCB00AEA51A /* Win32Window.m in Sources */, - FE01A9EF0C5D9BCB00AEA51A /* Win32RunningCopyPipe.m in Sources */, - FE01A9F00C5D9BCB00AEA51A /* Win32EventInputSource.m in Sources */, - FE01A9F10C5D9BCB00AEA51A /* Win32Workspace.m in Sources */, - FE01A9F20C5D9BCB00AEA51A /* NSSavePanel-Win32.m in Sources */, - FE01A9F30C5D9BCB00AEA51A /* NSOpenPanel-Win32.m in Sources */, - FE01A9F50C5D9BCB00AEA51A /* dllmain.m in Sources */, - FE01A9F60C5D9BCB00AEA51A /* Win32DraggingManager.m in Sources */, - FE01A9F70C5D9BCB00AEA51A /* Win32DragSession.m in Sources */, - FE01A9F80C5D9BCB00AEA51A /* Win32DropPasteboard.m in Sources */, - FE01A9F90C5D9BCB00AEA51A /* Win32FORMATETC.m in Sources */, - FE01A9FA0C5D9BCB00AEA51A /* Win32GeneralPasteboard.m in Sources */, - FE01A9FB0C5D9BCB00AEA51A /* Win32IDataObjectClient.m in Sources */, - FE01A9FC0C5D9BCB00AEA51A /* Win32IDataObjectServer.m in Sources */, - FE01A9FD0C5D9BCB00AEA51A /* Win32IDropSourceServer.m in Sources */, - FE01A9FE0C5D9BCB00AEA51A /* Win32IDropTargetServer.m in Sources */, - FE01A9FF0C5D9BCB00AEA51A /* Win32IEnumFORMATETCServer.m in Sources */, - FE01AA000C5D9BCB00AEA51A /* Win32IStreamClient.m in Sources */, - FE01AA010C5D9BCB00AEA51A /* Win32IUnknownServer.m in Sources */, - FE01AA020C5D9BCB00AEA51A /* Win32Pasteboard.m in Sources */, - FE01AA030C5D9BCB00AEA51A /* Win32TypesAndOwner.m in Sources */, - FE01AA040C5D9BCB00AEA51A /* Win32Window-Drag.m in Sources */, - FE01AA050C5D9BCB00AEA51A /* NSDragView.m in Sources */, - FE01AA060C5D9BCB00AEA51A /* NSOpenGLContext.m in Sources */, - FE01AA070C5D9BCB00AEA51A /* NSOpenGLPixelFormat.m in Sources */, - FE01AA080C5D9BCB00AEA51A /* NSOpenGLView.m in Sources */, - FE01AA090C5D9BCB00AEA51A /* NSRichTextReader.m in Sources */, - FE01AA0A0C5D9BCB00AEA51A /* NSRichTextWriter.m in Sources */, - FE01AA0B0C5D9BCB00AEA51A /* NSMainMenuView.m in Sources */, - FE01AA0C0C5D9BCB00AEA51A /* NSMenu.m in Sources */, - FE01AA0D0C5D9BCB00AEA51A /* NSMenuItem.m in Sources */, - FE01AA0E0C5D9BCB00AEA51A /* NSMenuView.m in Sources */, - FE01AA0F0C5D9BCB00AEA51A /* NSMenuWindow.m in Sources */, - FE01AA100C5D9BCB00AEA51A /* NSOverflowMenuView.m in Sources */, - FE01AA110C5D9BCB00AEA51A /* NSSubmenuView.m in Sources */, - FE01AA120C5D9BCB00AEA51A /* NSKeyboardBindingManager.m in Sources */, - FE01AA130C5D9BCB00AEA51A /* NSKeyboardBinding.m in Sources */, - FE01AA150C5D9BCB00AEA51A /* NSToolbar.m in Sources */, - FE01AA170C5D9BCB00AEA51A /* NSToolbarItem.m in Sources */, - FE01AA180C5D9BCB00AEA51A /* NSToolbarView.m in Sources */, - FE01AA1A0C5D9BCB00AEA51A /* NSToolbarCustomizationPalette.m in Sources */, - FE01AA1B0C5D9BCB00AEA51A /* NSToolbarCustomizationView.m in Sources */, - FE01AA1E0C5D9BCB00AEA51A /* NSDrawer.m in Sources */, - FE01AA1F0C5D9BCB00AEA51A /* NSDrawerWindow.m in Sources */, - FE01AA200C5D9BCB00AEA51A /* O2TIFFImageDirectory.m in Sources */, - FE01AA210C5D9BCB00AEA51A /* O2Decoder_TIFF.m in Sources */, - FE01AA220C5D9BCB00AEA51A /* NSIBObjectData.m in Sources */, - FE01AA230C5D9BCB00AEA51A /* NSCustomObject.m in Sources */, - FE01AA240C5D9BCB00AEA51A /* NSWindowTemplate.m in Sources */, - FE01AA250C5D9BCB00AEA51A /* NSButtonImageSource.m in Sources */, - FE01AA260C5D9BCB00AEA51A /* NSClassSwapper.m in Sources */, - FE01AA270C5D9BCB00AEA51A /* NSCustomResource.m in Sources */, - FE01AA280C5D9BCB00AEA51A /* NSCustomView.m in Sources */, - FE01AA2A0C5D9BCB00AEA51A /* NSTextViewSharedData.m in Sources */, - FE01AA2B0C5D9BCB00AEA51A /* NSMutableAttributedString.m in Sources */, - FE01AA2C0C5D9BCB00AEA51A /* NSMutableParagraphStyle.m in Sources */, - FE01AA2D0C5D9BCB00AEA51A /* NSAlert.m in Sources */, - FE01AA2E0C5D9BCB00AEA51A /* NSArrayController.m in Sources */, - FE01AA2F0C5D9BCB00AEA51A /* NSBezierPath.m in Sources */, - FE01AA300C5D9BCB00AEA51A /* NSColorSpace.m in Sources */, - FE01AA310C5D9BCB00AEA51A /* NSController.m in Sources */, - FE01AA320C5D9BCB00AEA51A /* NSObjectController.m in Sources */, - FE01AA330C5D9BCB00AEA51A /* NSTreeController.m in Sources */, - FE01AA340C5D9BCB00AEA51A /* NSUserDefaultsController.m in Sources */, - FE01AA350C5D9BCB00AEA51A /* NSGlyphGenerator.m in Sources */, - FE01AA360C5D9BCB00AEA51A /* NSGlyphInfo.m in Sources */, - FE01AA370C5D9BCB00AEA51A /* NSHelpManager.m in Sources */, - FE01AA380C5D9BCB00AEA51A /* NSLevelIndicator.m in Sources */, - FE01AA390C5D9BCB00AEA51A /* NSLevelIndicatorCell.m in Sources */, - FE01AA3A0C5D9BCB00AEA51A /* NSNib.m in Sources */, - FE01AA3B0C5D9BCB00AEA51A /* NSPDFImageRep.m in Sources */, - FE01AA3C0C5D9BCB00AEA51A /* NSPrinter.m in Sources */, - FE01AA3D0C5D9BCB00AEA51A /* NSSearchField.m in Sources */, - FE01AA3E0C5D9BCB00AEA51A /* NSSearchFieldCell.m in Sources */, - FE01AA3F0C5D9BCB00AEA51A /* NSSegmentedCell.m in Sources */, - FE01AA400C5D9BCB00AEA51A /* NSSegmentedControl.m in Sources */, - FE01AA410C5D9BCB00AEA51A /* NSShadow.m in Sources */, - FE01AA420C5D9BCB00AEA51A /* NSSound.m in Sources */, - FE01AA430C5D9BCB00AEA51A /* NSSpellChecker.m in Sources */, - FE01AA440C5D9BCB00AEA51A /* NSStatusBar.m in Sources */, - FE01AA450C5D9BCB00AEA51A /* NSStatusItem.m in Sources */, - FE01AA460C5D9BCB00AEA51A /* NSTokenField.m in Sources */, - FE01AA470C5D9BCB00AEA51A /* NSTokenFieldCell.m in Sources */, - FE01AA480C5D9BCB00AEA51A /* O2ColorSpace.m in Sources */, - FE01AA490C5D9BCB00AEA51A /* O2Context.m in Sources */, - FE01AA4A0C5D9BCB00AEA51A /* O2DataProvider.m in Sources */, - FE01AA4B0C5D9BCB00AEA51A /* O2Function.m in Sources */, - FE01AA4C0C5D9BCB00AEA51A /* O2Image.m in Sources */, - FE01AA4D0C5D9BCB00AEA51A /* O2PDFArray.m in Sources */, - FE01AA4E0C5D9BCB00AEA51A /* O2PDFContentStream.m in Sources */, - FE01AA4F0C5D9BCB00AEA51A /* O2PDFDictionary.m in Sources */, - FE01AA500C5D9BCB00AEA51A /* O2PDFDocument.m in Sources */, - FE01AA510C5D9BCB00AEA51A /* O2PDFFilter.m in Sources */, - FE01AA520C5D9BCB00AEA51A /* O2PDFFunction_Type2.m in Sources */, - FE01AA530C5D9BCB00AEA51A /* O2PDFFunction_Type3.m in Sources */, - FE01AA540C5D9BCB00AEA51A /* O2PDFObject_Boolean.m in Sources */, - FE01AA550C5D9BCB00AEA51A /* O2PDFObject_const.m in Sources */, - FE01AA560C5D9BCB00AEA51A /* O2PDFObject_identifier.m in Sources */, - FE01AA570C5D9BCB00AEA51A /* O2PDFObject_Integer.m in Sources */, - FE01AA580C5D9BCB00AEA51A /* O2PDFObject_Name.m in Sources */, - FE01AA590C5D9BCB00AEA51A /* O2PDFObject_R.m in Sources */, - FE01AA5A0C5D9BCB00AEA51A /* O2PDFObject_Real.m in Sources */, - FE01AA5B0C5D9BCB00AEA51A /* O2PDFObject.m in Sources */, - FE01AA5C0C5D9BCB00AEA51A /* O2PDFOperators.m in Sources */, - FE01AA5D0C5D9BCB00AEA51A /* O2PDFOperatorTable.m in Sources */, - FE01AA5E0C5D9BCB00AEA51A /* O2PDFPage.m in Sources */, - FE01AA5F0C5D9BCB00AEA51A /* O2PDFScanner.m in Sources */, - FE01AA600C5D9BCB00AEA51A /* O2PDFStream.m in Sources */, - FE01AA610C5D9BCB00AEA51A /* O2PDFString.m in Sources */, - FE01AA620C5D9BCB00AEA51A /* O2PDFxref.m in Sources */, - FE01AA630C5D9BCB00AEA51A /* O2PDFxrefEntry.m in Sources */, - FE01AA640C5D9BCB00AEA51A /* O2Shading.m in Sources */, - FE01AA650C5D9BCB00AEA51A /* CGImage.m in Sources */, - FE01AA660C5D9BCB00AEA51A /* CGColor.m in Sources */, - FE01AA670C5D9BCB00AEA51A /* CGColorSpace.m in Sources */, - FE01AA680C5D9BCB00AEA51A /* CGDataProvider.m in Sources */, - FE01AA690C5D9BCB00AEA51A /* CGFunction.m in Sources */, - FE01AA6A0C5D9BCB00AEA51A /* CGLayer.m in Sources */, - FE01AA6B0C5D9BCB00AEA51A /* CGPath.m in Sources */, - FE01AA6C0C5D9BCB00AEA51A /* CGPattern.m in Sources */, - FE01AA6D0C5D9BCB00AEA51A /* CGShading.m in Sources */, - FE01AA6E0C5D9BCB00AEA51A /* O2Color.m in Sources */, - FE01AA6F0C5D9BCB00AEA51A /* O2Layer.m in Sources */, - FE01AA700C5D9BCB00AEA51A /* O2Path.m in Sources */, - FE01AA710C5D9BCB00AEA51A /* O2Pattern.m in Sources */, - FE01AA720C5D9BCB00AEA51A /* O2ImageSource_JPEG.m in Sources */, - FE01AA730C5D9BCB00AEA51A /* O2ImageSource_PNG.m in Sources */, - FE01AA740C5D9BCB00AEA51A /* O2ImageSource_TIFF.m in Sources */, - FE01AA750C5D9BCB00AEA51A /* O2ImageSource.m in Sources */, - FE01AA760C5D9BCB00AEA51A /* CGBitmapContext.m in Sources */, - FE01AA770C5D9BCB00AEA51A /* O2BitmapContext.m in Sources */, - FE01AA780C5D9BCB00AEA51A /* O2MutablePath.m in Sources */, - FE01AA790C5D9BCB00AEA51A /* CGPDFPage.m in Sources */, - FE01AA7A0C5D9BCB00AEA51A /* NSOpenGLPixelBuffer.m in Sources */, - FE01AA7B0C5D9BCB00AEA51A /* NSDatePicker.m in Sources */, - FE01AA7C0C5D9BCB00AEA51A /* NSDatePickerCell.m in Sources */, - FE01AA7D0C5D9BCB00AEA51A /* NSGraphicsStyle_uxtheme.m in Sources */, - FE01AA7E0C5D9BCB00AEA51A /* NSGraphicsStyle.m in Sources */, - FE01AA7F0C5D9BCB00AEA51A /* NSNibBindingConnector.m in Sources */, - FE01AA800C5D9BCB00AEA51A /* NSBinder.m in Sources */, - FE01AA810C5D9BCB00AEA51A /* NSKVOBinder.m in Sources */, - FE01AA820C5D9BCB00AEA51A /* NSObject+BindingSupport.m in Sources */, - FE01AA830C5D9BCB00AEA51A /* NSAnimation.m in Sources */, - FE01AA840C5D9BCB00AEA51A /* NSViewAnimation.m in Sources */, - FE01AA850C5D9BCB00AEA51A /* NSFontDescriptor.m in Sources */, - FE01AA860C5D9BCB00AEA51A /* NSSegmentItem.m in Sources */, - FE01AA870C5D9BCB00AEA51A /* NSTextBlock.m in Sources */, - FE01AA880C5D9BCB00AEA51A /* NSTextTable.m in Sources */, - FE01AA890C5D9BCB00AEA51A /* NSTextTableBlock.m in Sources */, - FE01AA8C0C5D9BCB00AEA51A /* NSAffineTransform.m in Sources */, - FE01AA8D0C5D9BCB00AEA51A /* NSTextList.m in Sources */, - FE01AA8E0C5D9BCB00AEA51A /* NSTextAttachmentCell.m in Sources */, - FE01AA8F0C5D9BCB00AEA51A /* NSTypesetter_concrete.m in Sources */, - FE01AA900C5D9BCB00AEA51A /* KTFont.m in Sources */, - FE01AA920C5D9BCB00AEA51A /* O2DeviceContext_gdi.m in Sources */, - FE01AA930C5D9BCB00AEA51A /* NSPrintPanel.m in Sources */, - FE1CEA700C8F12F800184630 /* opengl_dll.m in Sources */, - FE8F9F2B0C9C5D0000270AEE /* O2zlib.m in Sources */, - FE572D900CA0809500FB3E79 /* O2ImageSource_BMP.m in Sources */, - FEDF95200CAF43E7009DC96F /* O2PDFContext.m in Sources */, - FEABD6080CB9D0C90035F828 /* O2Context_gdi.m in Sources */, - FE311FA90CCC430200EBD696 /* KTFont_gdi.m in Sources */, - FE8D94AC0CE3A6C700AFB060 /* NSControllerSelectionProxy.m in Sources */, - FE8D95210CE4057300AFB060 /* NSMultipleValueBinder.m in Sources */, - FE8286810D34727900F7489F /* NSSystemInfoPanel.m in Sources */, - FE34FBC90D6F24A5008D2C1A /* O2ClipPhase.m in Sources */, - FE5C69A20D76039F00098551 /* O2DeviceContext_gdiDIBSection.m in Sources */, - FE6EE28F0DB91FDF005503A1 /* O2Surface.m in Sources */, - FE6EE2E60DB92B11005503A1 /* VGPath.m in Sources */, - FE33955A0DB930F4009AB3E0 /* O2Context_builtin.m in Sources */, - FE45EDCC0DC2407E00F49290 /* CGImageSource.m in Sources */, - FE7ABEBE0DC2C9BA0060D15B /* CGPDFDocument.m in Sources */, - FEBF55E70DCA112900CE5A1C /* O2Paint.m in Sources */, - FEBF5A0E0DCD450700CE5A1C /* O2Paint_axialGradient.m in Sources */, - FEBF5A100DCD450700CE5A1C /* O2Paint_color.m in Sources */, - FEBF5A120DCD450700CE5A1C /* O2Paint_image.m in Sources */, - FEBF5A140DCD450700CE5A1C /* O2Paint_pattern.m in Sources */, - FEBF5A160DCD450700CE5A1C /* O2Paint_radialGradient.m in Sources */, - FEBF5A180DCD450700CE5A1C /* O2Paint_ramp.m in Sources */, - FE08C3240DDF299800B3169A /* NSColor_CGColor.m in Sources */, - FEF9CAEA0E133FF2003502ED /* O2Surface_DIBSection.m in Sources */, - FEF9CBA00E13EB8E003502ED /* O2ColorSpace+PDF.m in Sources */, - FEF9CBC10E13EB8E003502ED /* O2Function+PDF.m in Sources */, - FEF9CBC30E13EB8E003502ED /* O2Image+PDF.m in Sources */, - FEF9CBC50E13EB8E003502ED /* O2Shading+PDF.m in Sources */, - FEF9CCC40E1416C4003502ED /* O2Context_builtin_gdi.m in Sources */, - FE66F0060E513AE8006C5796 /* CGImageProperties.m in Sources */, - C8C52C900E7ED1FF003F03B5 /* NSObservationProxy.m in Sources */, - 36570F9B0E818CD5008FE1BE /* NSGradient.m in Sources */, - C84909380E8D1FB900BA6D3A /* NSUserDefaultsControllerProxy.m in Sources */, - FE25FF630EE58712009C91B1 /* O2Font.m in Sources */, - C85D91980EE6A806004EBAEA /* NSDictionaryController.m in Sources */, - FE337FCA0EE77A6C00D4A751 /* CTFont.m in Sources */, - FEA25F990EECCE4D008750D0 /* NSSound_win32.m in Sources */, - FE669C920F12B1A600534F46 /* gif_lib.m in Sources */, - FEC0C7820F146AF800903F6D /* O2ImageSource_GIF.m in Sources */, - FE38749D0F4333D600EC9F00 /* NSToolbarItemView.m in Sources */, - FE6BE4470F446B92007D7F3F /* NSToolbarItemGroup.m in Sources */, - C8AB730F0F40C21A00D93B96 /* NSControllerMarker.m in Sources */, - FEAED79B0FD6C95D0043F915 /* CGDataConsumer.m in Sources */, - FEAED7A30FD6C96E0043F915 /* O2DataConsumer.m in Sources */, - FEAED7A70FD6C9820043F915 /* CGPDFContext.m in Sources */, - FEA661240FF5C6F300E2C03B /* O2Font_gdi.m in Sources */, - FEB07FA00FF9B37C00C27509 /* O2Font+PDF.m in Sources */, - FEBF5B78100D851500F64C71 /* O2LZW.m in Sources */, - A1CC701A100534AB00DB9974 /* NSCachingBinder.m in Sources */, - A1CC70491005371100DB9974 /* NSTextFieldBinder.m in Sources */, - FE6D918D101381F600BA6BAD /* NSCellUndoManager.m in Sources */, - FE463D66102CAE3500B265D6 /* NSAnimationContext.m in Sources */, - FE463D70102CAEF500B265D6 /* NSCollectionView.m in Sources */, - FE463D86102CAF4A00B265D6 /* NSDockTile.m in Sources */, - FE463ED5102D0F9D00B265D6 /* NSPathCell.m in Sources */, - FE463ED7102D0F9D00B265D6 /* NSPathComponentCell.m in Sources */, - FE463ED9102D0F9D00B265D6 /* NSPathControl.m in Sources */, - FE463EDB102D0F9D00B265D6 /* NSPredicateEditor.m in Sources */, - FE463EDD102D0F9D00B265D6 /* NSPredicateEditorRowTemplate.m in Sources */, - FE463EDF102D0F9D00B265D6 /* NSRuleEditor.m in Sources */, - FE463EE1102D0F9D00B265D6 /* NSTreeNode.m in Sources */, - FE463EE3102D0F9D00B265D6 /* NSViewController.m in Sources */, - FE49B9A81030C49300ADCC6C /* NSCollectionViewItem.m in Sources */, - FE953DDB103B0EA0008A71F0 /* NSEvent_other.m in Sources */, - FED35B6F104DF8C10038ED7C /* CGLContext.m in Sources */, - FE3C8552108779540018252A /* O2AffineTransform.m in Sources */, - FE3C8554108779540018252A /* O2Geometry.m in Sources */, - FE8C01CF10C59ADA00FE4072 /* O2ImageDestination.m in Sources */, - FE8C01D910C59B0600FE4072 /* O2Encoder_TIFF.m in Sources */, - FEF0889F10C5B06400D38A2F /* CGImageDestination.m in Sources */, - FE20C20E11892436006F01BA /* CAAnimation.m in Sources */, - FE20C20F11892436006F01BA /* CIAffineTransform.m in Sources */, - FE20C21011892436006F01BA /* CIColor.m in Sources */, - FE20C21111892436006F01BA /* CIContext.m in Sources */, - FE20C21211892436006F01BA /* CIFilter.m in Sources */, - FE20C21311892436006F01BA /* CIImage.m in Sources */, - FE20C21411892436006F01BA /* CIVector.m in Sources */, - FE20C246118924A4006F01BA /* NSAccessibility.m in Sources */, - FE20C248118924A4006F01BA /* NSCIImageRep.m in Sources */, - FE20C26811892517006F01BA /* NSNibAXRelationshipConnector.m in Sources */, - FED56E6511A2D87200D6D09B /* CGGradient.m in Sources */, - FED56E6A11A2D89400D6D09B /* CALayer.m in Sources */, - FED56E6B11A2D89900D6D09B /* CARenderer.m in Sources */, - FED56E6C11A2D89E00D6D09B /* CATransform3D.m in Sources */, - FEAEFF7A11E4D1B600CA0912 /* glweak.m in Sources */, - FEAE000C11E4E45600CA0912 /* CVDisplayLink.m in Sources */, - FEF5A75E11E4E82F009B0041 /* CGDirectDisplay.m in Sources */, - FEF5A7CC11E4EB0A009B0041 /* CAAnimationGroup.m in Sources */, - FEF5A7CD11E4EB0A009B0041 /* CABasicAnimation.m in Sources */, - FEF5A7CE11E4EB0A009B0041 /* CAMediaTimingFunction.m in Sources */, - FEF5A7CF11E4EB0A009B0041 /* CAPropertyAnimation.m in Sources */, - FEF5A7D011E4EB0A009B0041 /* CATransition.m in Sources */, - FE44BDD411EBA07A00762BF1 /* O2ImageSource_ICNS.m in Sources */, - FE71DA7111F7403200E6F801 /* CIBloom.m in Sources */, - FE71DA9311F7433000E6F801 /* CIBoxBlur.m in Sources */, - FE71DA9411F7433000E6F801 /* CILinearGradient.m in Sources */, - FE71E94611FA88BF00E6F801 /* O2PDFFunction_Type4.m in Sources */, - FE71EF5411FBCABE00E6F801 /* O2Encoding.m in Sources */, - FE71F07D11FC72A500E6F801 /* O2PDFCharWidths.m in Sources */, - FE71F1CF11FCB9B900E6F801 /* O2PDFFunction_Type0.m in Sources */, - FE71F25711FD21EE00E6F801 /* O2PDFFont.m in Sources */, - FE71F3C611FD40B800E6F801 /* O2TTFDecoder.m in Sources */, - FE43BE2211FFBAAD00119833 /* O2PDFBlock.m in Sources */, - FE39C32A1203304700A80A71 /* O2ClipState.m in Sources */, - FE7EF28C1211095500B2B398 /* NSTokenAttachmentCell.m in Sources */, - FE4A25BC1222C4D8009058C1 /* _NSRuleEditorViewSliceHolder.m in Sources */, - FE4A25CC1222C4E9009058C1 /* NSRuleEditorViewSliceRow.m in Sources */, - FE2752F11230201B00BD6643 /* CGLPixelSurface.m in Sources */, - FE2759A412341F3A00BD6643 /* O2Context_distill.m in Sources */, - FE069E241245A4B90040F165 /* O2GlyphStencil.m in Sources */, - FE14436B1256D43D007FE685 /* _NSControllerArray.m in Sources */, - FE58790C12695C95009B9EDF /* O2argb8u.m in Sources */, - FE58791512695E21009B9EDF /* O2argb32f.m in Sources */, - FE587955126961BD009B9EDF /* O2ClipMask.m in Sources */, - FE99DA75128396B6006D789F /* O2Encoder_PNG.m in Sources */, - FE5F4CA912A860BA00F5F334 /* O2Context_gdi+AppKit.m in Sources */, - FE74968912BB1D4F008DBFCB /* NSViewBackingLayer.m in Sources */, - FE41B85912BEA2C800ED6C10 /* CATransaction.m in Sources */, - FEDEA8AD12C112E5008E5A59 /* CATransactionGroup.m in Sources */, - FEDEA95412C13368008E5A59 /* CABase.m in Sources */, - FEDEAA9912C2639B008E5A59 /* CAValueFunction.m in Sources */, - FEDEABAE12C98F4C008E5A59 /* CALayerContext.m in Sources */, - FEE4B2FB133BB8770095E656 /* NSWindowScripting.m in Sources */, - 49A7975414224021001CE4C2 /* O2Encoder_JPG.m in Sources */, - FE2C93D514035649002E0CB4 /* NSSpellingViewController.m in Sources */, - FEB3F1EC14049CC400059C8F /* NSSpellCheckerTagData.m in Sources */, - FEFD32061434A4F400C14B08 /* O2Font_freetype.m in Sources */, - 63138203145F3A5F00765AA7 /* NSColorPickerWheel.m in Sources */, - 6313829B145F6ED300765AA7 /* NSColorPickerWheelView.m in Sources */, - 49D5D24A165F9D0000D6A8EE /* NSUndoTextOperation.m in Sources */, - 49B85E89166FB2D300507E8C /* NSBidiHelper.m in Sources */, - 49C12B5316FCAF270018CB21 /* O2EXIFDecoder.m in Sources */, - 496555DE17A02FB90015D3B3 /* NSPoofAnimation.m in Sources */, - 63848FED17A18C050019E4DC /* NSPrintProgressPanelController.m in Sources */, - FEBE636E17D44C5E00EFA1F2 /* NSSound_DirectShow.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE01AACC0C5D9BE700AEA51A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Foundation-Windows-i386"; - targetProxy = FE01AACB0C5D9BE700AEA51A /* PBXContainerItemProxy */; - }; - FE0C4EC51041CF3200D8C100 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "OpenGL-Windows-i386"; - targetProxy = FE0C4EC41041CF3200D8C100 /* PBXContainerItemProxy */; - }; - FE0DDFBB12BFF7DD008EC2E6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "QuartzCore-Windows-i386"; - targetProxy = FE0DDFBA12BFF7DD008EC2E6 /* PBXContainerItemProxy */; - }; - FE6EDEBD0DB7AF94005503A1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "ApplicationServices-Windows-i386"; - targetProxy = FE6EDEBC0DB7AF94005503A1 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 630DC9D814CE3F2D0009A039 /* NSColorPanel.nib */ = { - isa = PBXVariantGroup; - children = ( - 630DC9D914CE3F2D0009A039 /* de */, - ); - name = NSColorPanel.nib; - sourceTree = ""; - }; - 630DC9DF14CE3F6A0009A039 /* NSColorPickerColorList.nib */ = { - isa = PBXVariantGroup; - children = ( - 630DC9E014CE3F6A0009A039 /* de */, - ); - name = NSColorPickerColorList.nib; - sourceTree = ""; - }; - 630DC9E614CE40B80009A039 /* NSColorPickerSliders.nib */ = { - isa = PBXVariantGroup; - children = ( - 630DC9E714CE40B80009A039 /* de */, - ); - name = NSColorPickerSliders.nib; - sourceTree = ""; - }; - 630DC9ED14CE41290009A039 /* NSColorPickerWheel.nib */ = { - isa = PBXVariantGroup; - children = ( - 630DC9EE14CE41290009A039 /* de */, - ); - name = NSColorPickerWheel.nib; - sourceTree = ""; - }; - 630DC9F614CE459A0009A039 /* NSFontPanel.nib */ = { - isa = PBXVariantGroup; - children = ( - 630DC9F714CE459A0009A039 /* de */, - ); - name = NSFontPanel.nib; - sourceTree = ""; - }; - 630DC9FF14CE45E60009A039 /* NSSystemInfoPanel.nib */ = { - isa = PBXVariantGroup; - children = ( - 630DCA0014CE45E60009A039 /* de */, - ); - name = NSSystemInfoPanel.nib; - sourceTree = ""; - }; - 630DCA0614CE475C0009A039 /* NSToolbarCustomizationPalette.nib */ = { - isa = PBXVariantGroup; - children = ( - 630DCA0714CE475C0009A039 /* de */, - ); - name = NSToolbarCustomizationPalette.nib; - sourceTree = ""; - }; - 630DCA1014CE48210009A039 /* NSSpellingViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - 630DCA1114CE48210009A039 /* de */, - ); - name = NSSpellingViewController.xib; - sourceTree = ""; - }; - 6311B10814C7396A007AD8C0 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 6311B10914C7396A007AD8C0 /* en */, - 630DCA1C14CE48790009A039 /* de */, - 630DCA1D14CE48860009A039 /* fr */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 6311B15E14C74B00007AD8C0 /* NSColorPanel.nib */ = { - isa = PBXVariantGroup; - children = ( - 6311B15F14C74B00007AD8C0 /* fr */, - 6311B16814C74B57007AD8C0 /* en */, - ); - name = NSColorPanel.nib; - sourceTree = ""; - }; - 6311B16014C74B00007AD8C0 /* NSFontPanel.nib */ = { - isa = PBXVariantGroup; - children = ( - 6311B16114C74B00007AD8C0 /* fr */, - 6311B16914C74B57007AD8C0 /* en */, - ); - name = NSFontPanel.nib; - sourceTree = ""; - }; - 6311B17914C74EED007AD8C0 /* NSColorPickerColorList.nib */ = { - isa = PBXVariantGroup; - children = ( - 6311B17A14C74EED007AD8C0 /* en */, - 6311B18E14C74EFC007AD8C0 /* fr */, - ); - name = NSColorPickerColorList.nib; - sourceTree = ""; - }; - 6311B17B14C74EED007AD8C0 /* NSColorPickerSliders.nib */ = { - isa = PBXVariantGroup; - children = ( - 6311B17C14C74EED007AD8C0 /* en */, - 6311B18F14C74EFC007AD8C0 /* fr */, - ); - name = NSColorPickerSliders.nib; - sourceTree = ""; - }; - 6311B17D14C74EED007AD8C0 /* NSColorPickerWheel.nib */ = { - isa = PBXVariantGroup; - children = ( - 6311B17E14C74EED007AD8C0 /* en */, - 6311B19014C74EFC007AD8C0 /* fr */, - ); - name = NSColorPickerWheel.nib; - sourceTree = ""; - }; - 6311B19314C750BE007AD8C0 /* NSSystemInfoPanel.nib */ = { - isa = PBXVariantGroup; - children = ( - 6311B19414C750BE007AD8C0 /* en */, - 6311B19A14C750E0007AD8C0 /* fr */, - ); - name = NSSystemInfoPanel.nib; - sourceTree = ""; - }; - 6311B19B14C7515B007AD8C0 /* NSSpellingViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - 6311B19C14C7515B007AD8C0 /* en */, - 6311B1A214C75168007AD8C0 /* fr */, - ); - name = NSSpellingViewController.xib; - sourceTree = ""; - }; - 63848FE017A189E70019E4DC /* NSPrintProgressPanel.xib */ = { - isa = PBXVariantGroup; - children = ( - 63848FE117A189E70019E4DC /* en */, - ); - name = NSPrintProgressPanel.xib; - sourceTree = ""; - }; - 6E2B54E30976075300DA0954 /* NSToolbarCustomizationPalette.nib */ = { - isa = PBXVariantGroup; - children = ( - 6311B16214C74B00007AD8C0 /* fr */, - 6311B16A14C74B57007AD8C0 /* en */, - ); - name = NSToolbarCustomizationPalette.nib; - sourceTree = ""; - }; - 6E2B55060976075300DA0954 /* NSMenu.plist */ = { - isa = PBXVariantGroup; - children = ( - 6E2B55080976075300DA0954 /* NSMenu.plist */, - 6311B13B14C7430F007AD8C0 /* fr */, - ); - name = NSMenu.plist; - sourceTree = ""; - }; - FE71E83711FA88BE00E6F801 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - FE71E83811FA88BE00E6F801 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 6E2B57760976075500DA0954 /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - 7E891F4D0D4967B6008150D3 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1F650B1508165000C24624 /* linux-i386-framework.xcconfig */; - buildSettings = { - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = AppKit; - }; - name = "Linux-i386"; - }; - 7E891F4E0D4967B6008150D3 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFC5B4971AF46BF300FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFC5B4981AF46BF300FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1F65061508164F00C24624 /* darwin-i386-framework.xcconfig */; - buildSettings = { - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_SHADOW = NO; - GCC_WARN_SIGN_COMPARE = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = AppKit; - }; - name = "Darwin-i386"; - }; - CFC5B49C1AF46BF900FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFC5B49D1AF46BF900FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1F65091508165000C24624 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_SHADOW = NO; - GCC_WARN_SIGN_COMPARE = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = AppKit; - }; - name = "FreeBSD-i386"; - }; - FE01AAC00C5D9BCB00AEA51A /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFBAE5181AFC56A900F2BB97 /* windows-i386-AppKit.xcconfig */; - buildSettings = { - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = YES; - GCC_WARN_SHADOW = NO; - GCC_WARN_SIGN_COMPARE = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - HEADER_SEARCH_PATHS = ( - "$(DSTROOT)", - "$(DSTROOT)/usr/include", - "$(DSTROOT)/freetype-2.3.5/include/freetype2/", - "$(DSTROOT)/freetype-2.3.5/include", - ); - INFOPLIST_FILE = Info.plist; - LIBRARY_SEARCH_PATHS = ( - "$(DSTROOT)/libtiff/lib", - "$(DSTROOT)/libpng/lib", - "$(DSTROOT)/libjpeg/lib", - "$(DSTROOT)/freetype-2.3.5/lib", - "$(DSTROOT)/zlib-1.2.5/lib", - "$(WINDOWS_i386_LIBRARY_SEARCH_PATHS)", - ); - OTHER_LDFLAGS = ( - "-lfreetype", - "-ltiff", - "-lpng", - "-ljpeg", - "-lz", - "-lmsimg32", - "-lole32", - "-lgdi32", - "-luser32", - "-lcomdlg32", - "-lcomctl32", - "-lopengl32", - "-lwinmm", - "$(WINDOWS_i386_FRAMEWORK_LDFLAGS)", - ); - PRODUCT_NAME = AppKit; - WINDOWS_i386_FRAMEWORK_LDFLAGS = "-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--out-implib,$TARGET_BUILD_DIR/$(PRODUCT_NAME).framework/lib$(PRODUCT_NAME).a $(WINDOWS_i386_COMPILER_LDFLAGS)"; - }; - name = "Windows-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 6E2B57740976075500DA0954 /* Build configuration list for PBXProject "AppKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6E2B57760976075500DA0954 /* Windows-i386 */, - CFC5B49C1AF46BF900FBB52A /* FreeBSD-i386 */, - CFC5B4971AF46BF300FBB52A /* Darwin-i386 */, - 7E891F4E0D4967B6008150D3 /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - FE01AABF0C5D9BCB00AEA51A /* Build configuration list for PBXNativeTarget "AppKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE01AAC00C5D9BCB00AEA51A /* Windows-i386 */, - CFC5B49D1AF46BF900FBB52A /* FreeBSD-i386 */, - CFC5B4981AF46BF300FBB52A /* Darwin-i386 */, - 7E891F4D0D4967B6008150D3 /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 6E2B57700976075500DA0954 /* Project object */; -} diff --git a/AppKit/AppKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AppKit/AppKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 52191828..00000000 --- a/AppKit/AppKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/AppKit/AppKit.xcodeproj/project.xcworkspace/xcshareddata/AppKit.xccheckout b/AppKit/AppKit.xcodeproj/project.xcworkspace/xcshareddata/AppKit.xccheckout deleted file mode 100644 index 0326e529..00000000 --- a/AppKit/AppKit.xcodeproj/project.xcworkspace/xcshareddata/AppKit.xccheckout +++ /dev/null @@ -1,41 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - 4F517AC8-2BD1-4488-98B9-C0D3A46F531D - IDESourceControlProjectName - AppKit - IDESourceControlProjectOriginsDictionary - - D23006023D8263B18CE7E4572DE5FF530EDE0D45 - https://github.com/cjwl/cocotron.git - - IDESourceControlProjectPath - AppKit/AppKit.xcodeproj - IDESourceControlProjectRelativeInstallPathDictionary - - D23006023D8263B18CE7E4572DE5FF530EDE0D45 - ../../.. - - IDESourceControlProjectURL - https://github.com/cjwl/cocotron.git - IDESourceControlProjectVersion - 111 - IDESourceControlProjectWCCIdentifier - D23006023D8263B18CE7E4572DE5FF530EDE0D45 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.git - IDESourceControlWCCIdentifierKey - D23006023D8263B18CE7E4572DE5FF530EDE0D45 - IDESourceControlWCCName - cocotron-git - - - - diff --git a/AppKit/AppKit.xcodeproj/xcshareddata/xcschemes/AppKit-Windows-i386.xcscheme b/AppKit/AppKit.xcodeproj/xcshareddata/xcschemes/AppKit-Windows-i386.xcscheme deleted file mode 100644 index 0185360d..00000000 --- a/AppKit/AppKit.xcodeproj/xcshareddata/xcschemes/AppKit-Windows-i386.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AppKit/NSTextView.subproj/NSLayoutManager.m b/AppKit/NSTextView.subproj/NSLayoutManager.m index a5b282ca..a7cd5859 100644 --- a/AppKit/NSTextView.subproj/NSLayoutManager.m +++ b/AppKit/NSTextView.subproj/NSLayoutManager.m @@ -30,7 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #import #import -#import "../../Foundation/NSAttributedString/NSRangeEntries.h" +#import #import #import #import diff --git a/AppKit/NSTextView.subproj/NSTextStorage_concrete.h b/AppKit/NSTextView.subproj/NSTextStorage_concrete.h index 781596d9..abc98de7 100644 --- a/AppKit/NSTextView.subproj/NSTextStorage_concrete.h +++ b/AppKit/NSTextView.subproj/NSTextStorage_concrete.h @@ -17,7 +17,7 @@ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "../../Foundation/NSAttributedString/NSRangeEntries.h" +#import #import @interface NSTextStorage_concrete : NSTextStorage { diff --git a/AppKit/O2Context_builtin_FT.h b/AppKit/O2Context_builtin_FT.h deleted file mode 120000 index dfea6ad3..00000000 --- a/AppKit/O2Context_builtin_FT.h +++ /dev/null @@ -1 +0,0 @@ -Linux.subproj/O2Context_builtin_FT.h \ No newline at end of file diff --git a/CFNetwork/CFHost.h b/CFNetwork/CFHost.h deleted file mode 100644 index 99249fb6..00000000 --- a/CFNetwork/CFHost.h +++ /dev/null @@ -1,36 +0,0 @@ -#import -#import - -typedef struct __CFHost *CFHostRef; - -enum CFHostInfoType { - kCFHostAddresses = 0, - kCFHostNames = 1, - kCFHostReachability = 2, -}; -typedef enum CFHostInfoType CFHostInfoType; - -typedef void (*CFHostClientCallBack)(CFHostRef host, CFHostInfoType infoType, const CFStreamError *streamError, void *info); - -typedef struct CFHostClientContext { - CFIndex version; - void *info; - CFAllocatorRetainCallBack retain; - CFAllocatorReleaseCallBack release; - CFAllocatorCopyDescriptionCallBack copyDescription; -} CFHostClientContext; - -CFNETWORK_EXPORT CFTypeID CFHostGetTypeID(); -CFNETWORK_EXPORT CFHostRef CFHostCreateCopy(CFAllocatorRef alloc, CFHostRef self); -CFNETWORK_EXPORT CFHostRef CFHostCreateWithAddress(CFAllocatorRef allocator, CFDataRef address); -CFNETWORK_EXPORT CFHostRef CFHostCreateWithName(CFAllocatorRef allocator, CFStringRef name); -CFNETWORK_EXPORT CFArrayRef CFHostGetAddressing(CFHostRef self, Boolean *hasBeenResolved); -CFNETWORK_EXPORT CFArrayRef CFHostGetNames(CFHostRef self, Boolean *hasBeenResolved); -CFNETWORK_EXPORT CFDataRef CFHostGetReachability(CFHostRef self, Boolean *hasBeenResolved); -CFNETWORK_EXPORT Boolean CFHostSetClient(CFHostRef self, CFHostClientCallBack callback, CFHostClientContext *context); - -CFNETWORK_EXPORT Boolean CFHostStartInfoResolution(CFHostRef self, CFHostInfoType infoType, CFStreamError *streamError); -CFNETWORK_EXPORT void CFHostCancelInfoResolution(CFHostRef theHost, CFHostInfoType infoType); - -CFNETWORK_EXPORT void CFHostScheduleWithRunLoop(CFHostRef self, CFRunLoopRef runLoop, CFStringRef mode); -CFNETWORK_EXPORT void CFHostUnscheduleFromRunLoop(CFHostRef self, CFRunLoopRef runLoop, CFStringRef mode); diff --git a/CFNetwork/CFHost.m b/CFNetwork/CFHost.m deleted file mode 100644 index 00412489..00000000 --- a/CFNetwork/CFHost.m +++ /dev/null @@ -1,591 +0,0 @@ -#import -#import -#import -#import -#ifdef WINDOWS -#import -#undef WINVER -#define WINVER 0x501 -#include -#include -#include -#include -#else -#include -#endif - -#include - -#if defined(WIN32) || defined(LINUX) -#define MAXHOSTNAMELEN 512 -#endif - -typedef enum { - CFHostRequestInQueue, - CFHostRequestInProgress, - CFHostRequestDone, - CFHostRequestDeallocate, -} CFHostRequestState; - -typedef struct { - CFHostRequestState _state; - char *_name; - struct addrinfo *_addressList; -#ifdef WINDOWS - HANDLE _event; -#endif -} CFHostRequest; - -@interface __CFHost : NSObject { - CFStringRef _name; - CFHostClientCallBack _callback; - CFHostClientContext _context; - Boolean _hasResolvedAddressing; - CFArrayRef _addressing; - CFHostRequest *_request; -#ifdef WINDOWS - HANDLE _event; - NSHandleMonitor_win32 *_monitor; -#endif -} - -@end -#ifdef __clang__ -// has to be in sync with the __CFHost interface -struct __CFHost { - CFStringRef _name; - CFHostClientCallBack _callback; - CFHostClientContext _context; - Boolean _hasResolvedAddressing; - CFArrayRef _addressing; - CFHostRequest *_request; -#ifdef WINDOWS - HANDLE _event; - NSHandleMonitor_win32 *_monitor; -#endif -}; -#endif - -@implementation __CFHost - -#ifdef WINDOWS - -typedef struct { - CRITICAL_SECTION queueLock; - HANDLE queueEvent; - int queueCapacity, queueCount; - CFHostRequest **queue; -} CFAddressResolverThreadInfo; - -static int preXP_getaddrinfo(const char *host, const char *service, - const struct addrinfo *hints, - struct addrinfo **result) -{ - struct addrinfo *list = NULL; - struct addrinfo *current = NULL; - struct hostent *hp; - - if ((hp = gethostbyname(host)) == NULL) - return EAI_FAIL; - - switch (hp->h_addrtype) { - - case AF_INET:; - uint32_t **addr_list; - - addr_list = (uint32_t **) hp->h_addr_list; - for (; *addr_list != NULL; addr_list++) { - struct addrinfo *node = - NSZoneCalloc(NULL, 1, sizeof(struct addrinfo)); - struct sockaddr_in *ipv4 = - NSZoneCalloc(NULL, 1, sizeof(struct sockaddr_in)); - - node->ai_family = AF_INET; - node->ai_addrlen = sizeof(struct sockaddr_in); - node->ai_addr = (struct sockaddr *) ipv4; - ipv4->sin_family = AF_INET; - ipv4->sin_addr.s_addr = **addr_list; - - if (list == NULL) - list = current = node; - else { - current->ai_next = node; - current = node; - } - } - break; - } - - *result = list; - return 0; -} - -static void preXP_freeaddrinfo(struct addrinfo *info) { - struct addrinfo *next; - - for (; info != NULL; info = next) { - next = info->ai_next; - NSZoneFree(NULL, info->ai_addr); - NSZoneFree(NULL, info); - } -} - -static int any_getaddrinfo(const char *host, const char *service, - const struct addrinfo *hints, - struct addrinfo **result) -{ - HANDLE library = LoadLibrary("WS2_32"); - typeof(getaddrinfo) *function = - (typeof(getaddrinfo) *) GetProcAddress(library, "getaddrinfo"); - - if (function == NULL) { - return preXP_getaddrinfo(host, service, hints, result); - } else { - return function(host, service, hints, result); - } -} - -static void any_freeaddrinfo(struct addrinfo *info) { - HANDLE library = LoadLibrary("WS2_32"); - typeof(freeaddrinfo) *function = - (typeof(freeaddrinfo) *) GetProcAddress(library, "freeaddrinfo"); - - if (function == NULL) { - return preXP_freeaddrinfo(info); - } else { - return function(info); - } -} - -static struct addrinfo *blockingRequest(CFHostRequest *request) { - struct addrinfo *result; - - if (any_getaddrinfo(request->_name, NULL, NULL, &result) != 0) - return NULL; - - return result; -} - -static __stdcall unsigned addressResolverThread(void *arg) { - CFAddressResolverThreadInfo *info = (CFAddressResolverThreadInfo *) arg; - - while (YES) { - Boolean queueEmpty; - - EnterCriticalSection(&(info->queueLock)); - queueEmpty = (info->queueCount == 0) ? TRUE : FALSE; - LeaveCriticalSection(&(info->queueLock)); - - if (queueEmpty) { - NSCooperativeThreadBlocking(); - WaitForSingleObject(info->queueEvent, INFINITE); - NSCooperativeThreadWaiting(); - } - - CFHostRequest *request = NULL; - - EnterCriticalSection(&(info->queueLock)); - - while (info->queueCount > 0 && request == NULL) { - request = info->queue[0]; - - info->queueCount--; - - int i; - for (i = 0; i < info->queueCount; i++) - info->queue[i] = info->queue[i + 1]; - } - if (request != NULL) - request->_state = CFHostRequestInProgress; - - LeaveCriticalSection(&(info->queueLock)); - - if (request != NULL) { - struct addrinfo *addressList = blockingRequest(request); - - HANDLE event = NULL; - - EnterCriticalSection(&(info->queueLock)); - request->_addressList = addressList; - - if (request->_state == CFHostRequestInProgress) { - request->_state = CFHostRequestDone; - event = request->_event; - request = NULL; - } - LeaveCriticalSection(&(info->queueLock)); - - if (request != NULL) { - if (request->_addressList != NULL) - any_freeaddrinfo(request->_addressList); - NSZoneFree(NULL, request->_name); - NSZoneFree(NULL, request); - } - - if (event != NULL) { - SetEvent(event); - } - } - } - return 0; -} - -- (void) handleMonitorIndicatesSignaled: (NSHandleMonitor_win32 *) monitor { - - if (_request == NULL) { - // cancelled - return; - } - - CloseHandle(_request->_event); - _request->_event = NULL; - [_monitor invalidate]; - [_monitor setDelegate: nil]; - [_monitor autorelease]; - _monitor = nil; - - if (_addressing != NULL) { - CFRelease(_addressing); - _addressing = NULL; - } - if (_request->_addressList == NULL) { - if (NSDebugEnabled) - NSLog(@"Host %@ did not resolve", _name); - } else { - int i; - - _addressing = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks); - - struct addrinfo *check = _request->_addressList, *next; - for (; check != NULL; check = next) { - next = check->ai_next; - - CFDataRef data = CFDataCreate(NULL, (void *) check->ai_addr, - check->ai_addrlen); - - CFArrayAppendValue(_addressing, data); - CFRelease(data); - } - } - if (_request->_addressList != NULL) - any_freeaddrinfo(_request->_addressList); - NSZoneFree(NULL, _request->_name); - NSZoneFree(NULL, _request); - _request = NULL; - - if (_callback != NULL) - _callback(self, kCFHostAddresses, NULL, _context.info); -} - -- (void) handleMonitorIndicatesAbandoned: (NSHandleMonitor_win32 *) monitor { -} - -static pthread_mutex_t asyncCreationLock = PTHREAD_MUTEX_INITIALIZER; -static CFAddressResolverThreadInfo *asyncInfo; - -static CFAddressResolverThreadInfo *startResolverThreadIfNeeded() { - pthread_mutex_lock(&asyncCreationLock); - - if (asyncInfo == NULL) { - asyncInfo = NSZoneMalloc(NULL, sizeof(CFAddressResolverThreadInfo)); - - InitializeCriticalSection(&(asyncInfo->queueLock)); - asyncInfo->queueEvent = CreateEvent(NULL, FALSE, FALSE, NULL); - - asyncInfo->queueCapacity = 1; - asyncInfo->queueCount = 0; - asyncInfo->queue = NSZoneMalloc(NULL, sizeof(CFHostRequest *) * - asyncInfo->queueCapacity); - - unsigned threadAddr; - _beginthreadex(NULL, 0, addressResolverThread, asyncInfo, 0, - &threadAddr); - } - pthread_mutex_unlock(&asyncCreationLock); - - return asyncInfo; -} - -#if 1 -#define SYNCHRONOUS 0 -#else -#warning disable -#define SYNCHRONOUS 1 -#endif - -static void queueHostToAddressResolver(CFHostRef host) { - if (SYNCHRONOUS) { - int addressCount = 0; - struct addrinfo *addressList = blockingRequest(host->_request); - - host->_request->_state = CFHostRequestDone; - host->_request->_addressList = addressList; - - SetEvent(host->_request->_event); - } else { - CFAddressResolverThreadInfo *info = startResolverThreadIfNeeded(); - - EnterCriticalSection(&(info->queueLock)); - if (info->queueCount + 1 >= info->queueCapacity) { - info->queueCapacity *= 2; - info->queue = NSZoneRealloc(NULL, info->queue, - sizeof(CFHostRequest *) * - info->queueCapacity); - } - info->queue[info->queueCount++] = host->_request; - LeaveCriticalSection(&(info->queueLock)); - - SetEvent(info->queueEvent); - } -} - -static void cancelHostInAddressResolverIfNeeded(CFHostRef self) { - - if (self->_request == NULL) - return; - - if (SYNCHRONOUS) { - } else { - CFAddressResolverThreadInfo *info; - - if ((info = asyncInfo) == NULL) - return; - - EnterCriticalSection(&(info->queueLock)); - - if (self->_request->_state == CFHostRequestInProgress) { - self->_request->_state = CFHostRequestDeallocate; - self->_request = NULL; - } else { - int i; - - for (i = 0; i < info->queueCount; i++) - if (info->queue[i] == self->_request) { - info->queueCount--; - for (; i < info->queueCount; i++) - info->queue[i] = info->queue[i + 1]; - break; - } - } - - LeaveCriticalSection(&(info->queueLock)); - - if (self->_request != NULL) { - NSZoneFree(NULL, self->_request->_name); - NSZoneFree(NULL, self->_request); - self->_request = NULL; - } - } -} - -#else -static void queueHostToAddressResolver(CFHostRef host) { -} -static void cancelHostInAddressResolverIfNeeded(CFHostRef host) { -} -#endif - -CFTypeID CFHostGetTypeID() { - NSUnimplementedFunction(); - return 0; -} - -CFHostRef CFHostCreateCopy(CFAllocatorRef alloc, CFHostRef self) { - NSUnimplementedFunction(); - return 0; -} - -CFHostRef CFHostCreateWithAddress(CFAllocatorRef allocator, CFDataRef address) { - NSUnimplementedFunction(); - return 0; -} - -CFHostRef CFHostCreateWithName(CFAllocatorRef allocator, CFStringRef name) { - CFHostRef result = (CFHostRef) [__CFHost allocWithZone: NULL]; - - result->_name = CFStringCreateCopy(allocator, name); - - return result; -} - -- (void) dealloc { - CFRelease(_name); - if (self->_context.info != NULL && self->_context.release != NULL) - self->_context.release(self->_context.info); - CFRelease(_addressing); -#ifdef WINDOWS - if (self->_event != NULL) - CloseHandle(self->_event); - - [self->_monitor setDelegate: nil]; - [self->_monitor invalidate]; - [self->_monitor release]; -#endif - [super dealloc]; -} - -CFArrayRef CFHostGetAddressing(CFHostRef self, Boolean *hasBeenResolved) { - if (hasBeenResolved != NULL) - *hasBeenResolved = self->_hasResolvedAddressing; - - return self->_addressing; -} - -CFArrayRef CFHostGetNames(CFHostRef self, Boolean *hasBeenResolved) { - NSUnimplementedFunction(); - return 0; -} - -CFDataRef CFHostGetReachability(CFHostRef self, Boolean *hasBeenResolved) { - NSUnimplementedFunction(); - return 0; -} - -Boolean CFHostSetClient(CFHostRef self, CFHostClientCallBack callback, - CFHostClientContext *context) -{ - if (self->_context.info != NULL && self->_context.release != NULL) - self->_context.release(self->_context.info); - - self->_callback = callback; - if (context != NULL) - self->_context = *context; - else { - self->_context.version = 0; - self->_context.info = NULL; - self->_context.retain = NULL; - self->_context.release = NULL; - self->_context.copyDescription = NULL; - } - - if (self->_callback != NULL) { - if (self->_context.info != NULL && self->_context.retain != NULL) - self->_context.info = - (void *) self->_context.retain(self->_context.info); - } - - return TRUE; -} - -static void CFHostCreateEventIfNeeded(CFHostRef self) { -#ifdef WINDOWS - if (self->_event == NULL) { - self->_event = CreateEvent(NULL, FALSE, FALSE, NULL); - self->_monitor = [[NSHandleMonitor_win32 - handleMonitorWithHandle: self->_event] retain]; - [self->_monitor setDelegate: self]; - [self->_monitor setCurrentActivity: Win32HandleSignaled]; - } -#endif -} - -Boolean CFHostStartInfoResolution(CFHostRef self, CFHostInfoType infoType, - CFStreamError *streamError) -{ - - switch (infoType) { - - case kCFHostAddresses: - if (self->_hasResolvedAddressing) { - NSLog(@"CFHostStartInfoResolution, addressing already resolved"); - return TRUE; - } - if (self->_callback != NULL) { - if (self->_request != NULL) { - NSLog(@"CFHostStartInfoResolution already started"); - return FALSE; - } - char *cStringName = NSZoneMalloc(NULL, MAXHOSTNAMELEN + 1); - - // this encoding is probably wrong but CFStringGetCString can do it - if (!CFStringGetCString(self->_name, cStringName, MAXHOSTNAMELEN, - kCFStringEncodingISOLatin1)) { - NSLog(@"CFStringGetCString failed for CFHostRef name %@", - self->_name); - NSZoneFree(NULL, cStringName); - return FALSE; - } - - self->_request = NSZoneMalloc(NULL, sizeof(CFHostRequest)); - self->_request->_state = CFHostRequestInQueue; - self->_request->_name = cStringName; - self->_request->_addressList = NULL; - CFHostCreateEventIfNeeded(self); -#ifdef WINDOWS - self->_request->_event = self->_event; -#endif - - queueHostToAddressResolver(self); - return TRUE; - } else { - NSUnimplementedFunction(); - return FALSE; - } - - case kCFHostNames: - NSUnimplementedFunction(); - return FALSE; - - case kCFHostReachability: - NSUnimplementedFunction(); - return FALSE; - - default: - [NSException raise: NSInvalidArgumentException - format: @"CFHostStartInfoResolution CFHostInfoType is not " - @"valid (%d)", - infoType]; - return FALSE; - } -} - -void CFHostCancelInfoResolution(CFHostRef self, CFHostInfoType infoType) { - switch (infoType) { - - case kCFHostAddresses: - cancelHostInAddressResolverIfNeeded(self); - break; - - case kCFHostNames: - NSUnimplementedFunction(); - break; - - case kCFHostReachability: - NSUnimplementedFunction(); - break; - - default: - [NSException raise: NSInvalidArgumentException - format: @"CFHostCancelInfoResolution CFHostInfoType is not " - @"valid (%d)", - infoType]; - break; - } -} - -void CFHostScheduleWithRunLoop(CFHostRef self, CFRunLoopRef runLoop, - CFStringRef mode) -{ - if (runLoop != CFRunLoopGetCurrent()) - NSUnimplementedFunction(); - - CFHostCreateEventIfNeeded(self); -#ifdef WINDOWS - [(NSRunLoop *) runLoop addInputSource: self->_monitor - forMode: (NSString *) mode]; -#endif -} - -void CFHostUnscheduleFromRunLoop(CFHostRef self, CFRunLoopRef runLoop, - CFStringRef mode) -{ - if (runLoop != CFRunLoopGetCurrent()) - NSUnimplementedFunction(); - -#ifdef WINDOWS - [(NSRunLoop *) runLoop removeInputSource: self->_monitor - forMode: (NSString *) mode]; -#endif -} - -@end diff --git a/CFNetwork/CFNetServices.h b/CFNetwork/CFNetServices.h deleted file mode 100644 index d064838c..00000000 --- a/CFNetwork/CFNetServices.h +++ /dev/null @@ -1,3 +0,0 @@ -#import - -typedef struct __CFNetService *CFNetServiceRef; diff --git a/CFNetwork/CFNetServices.m b/CFNetwork/CFNetServices.m deleted file mode 100644 index e69de29b..00000000 diff --git a/CFNetwork/CFNetwork.h b/CFNetwork/CFNetwork.h deleted file mode 100644 index 6208c6f6..00000000 --- a/CFNetwork/CFNetwork.h +++ /dev/null @@ -1,3 +0,0 @@ -#import -#import -#import diff --git a/CFNetwork/CFNetwork.xcodeproj/project.pbxproj b/CFNetwork/CFNetwork.xcodeproj/project.pbxproj deleted file mode 100644 index d845e8ba..00000000 --- a/CFNetwork/CFNetwork.xcodeproj/project.pbxproj +++ /dev/null @@ -1,303 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - FE74338610A89A9D004CDF00 /* CFNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74338510A89A9D004CDF00 /* CFNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC121A910EFC6C000FD1B47 /* CFSocketStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121A810EFC6C000FD1B47 /* CFSocketStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC121CD10EFC89500FD1B47 /* CFNetServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121CC10EFC89500FD1B47 /* CFNetServices.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC121D710EFC92800FD1B47 /* CFHost.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC121D610EFC92800FD1B47 /* CFHost.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC1221910EFCB9A00FD1B47 /* CFNetworkExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC1221810EFCB9A00FD1B47 /* CFNetworkExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* CFNetwork.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CFNetwork.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE7084D21431172900B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE74338510A89A9D004CDF00 /* CFNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFNetwork.h; sourceTree = ""; }; - FEC0A3A117093576002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3A217093576002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3A317093576002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A3A417093576002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3A517093576002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A3A617093576002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3A717093576002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3A817093576002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEC121A810EFC6C000FD1B47 /* CFSocketStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFSocketStream.h; sourceTree = ""; }; - FEC121CC10EFC89500FD1B47 /* CFNetServices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFNetServices.h; sourceTree = ""; }; - FEC121D610EFC92800FD1B47 /* CFHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFHost.h; sourceTree = ""; }; - FEC1221810EFCB9A00FD1B47 /* CFNetworkExport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFNetworkExport.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* CFNetwork.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* CFNetwork */ = { - isa = PBXGroup; - children = ( - FE1E55BD143030B7000D60A1 /* xcconfig */, - FEC1221810EFCB9A00FD1B47 /* CFNetworkExport.h */, - FEC121D610EFC92800FD1B47 /* CFHost.h */, - FEC121A810EFC6C000FD1B47 /* CFSocketStream.h */, - FE74338510A89A9D004CDF00 /* CFNetwork.h */, - FEC121CC10EFC89500FD1B47 /* CFNetServices.h */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = CFNetwork; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE1E55BD143030B7000D60A1 /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A3A117093576002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A3A217093576002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A3A317093576002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A3A417093576002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A3A517093576002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A3A617093576002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A3A717093576002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A3A817093576002A60B7 /* solaris-sparc-framework.xcconfig */, - FE7084D21431172900B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE74338610A89A9D004CDF00 /* CFNetwork.h in Headers */, - FEC121A910EFC6C000FD1B47 /* CFSocketStream.h in Headers */, - FEC121CD10EFC89500FD1B47 /* CFNetServices.h in Headers */, - FEC121D710EFC92800FD1B47 /* CFHost.h in Headers */, - FEC1221910EFCB9A00FD1B47 /* CFNetworkExport.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* CFNetwork */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CFNetwork" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CFNetwork; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = CFNetwork; - productReference = 8DC2EF5B0486A6940098B216 /* CFNetwork.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CFNetwork" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* CFNetwork */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* CFNetwork */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AE08733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7084D21431172900B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CFNetwork; - }; - name = "Windows-i386"; - }; - 1DEB91AF08733DA50010E9CD /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3A617093576002A60B7 /* linux-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CFNetwork; - }; - name = "Linux-i386"; - }; - 1DEB91B208733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - 1DEB91B308733DA50010E9CD /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFC5B4651AF4687600FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFC5B4661AF4687600FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3A117093576002A60B7 /* darwin-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CFNetwork; - }; - name = "Darwin-i386"; - }; - CFC5B46B1AF4687C00FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFC5B46C1AF4687C00FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3A417093576002A60B7 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CFNetwork; - }; - name = "FreeBSD-i386"; - }; - CFC5B4711AF468AB00FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-x86_64"; - }; - CFC5B4721AF468AB00FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3A317093576002A60B7 /* darwin-x86_64-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CFNetwork; - }; - name = "Darwin-x86_64"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CFNetwork" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AE08733DA50010E9CD /* Windows-i386 */, - CFC5B46C1AF4687C00FBB52A /* FreeBSD-i386 */, - CFC5B4661AF4687600FBB52A /* Darwin-i386 */, - CFC5B4721AF468AB00FBB52A /* Darwin-x86_64 */, - 1DEB91AF08733DA50010E9CD /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Linux-i386"; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CFNetwork" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B208733DA50010E9CD /* Windows-i386 */, - CFC5B46B1AF4687C00FBB52A /* FreeBSD-i386 */, - CFC5B4651AF4687600FBB52A /* Darwin-i386 */, - CFC5B4711AF468AB00FBB52A /* Darwin-x86_64 */, - 1DEB91B308733DA50010E9CD /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Linux-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/CFNetwork/CFNetworkExport.h b/CFNetwork/CFNetworkExport.h deleted file mode 100644 index a9a399f3..00000000 --- a/CFNetwork/CFNetworkExport.h +++ /dev/null @@ -1,34 +0,0 @@ - -#ifdef __clang__ -#define CFNETWORK_DLLEXPORT -#define CFNETWORK_DLLIMPORT -#else -#define CFNETWORK_DLLEXPORT __declspec(dllexport) -#define CFNETWORK_DLLIMPORT __declspec(dllimport) -#endif - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(CFNETWORK_INSIDE_BUILD) -#define CFNETWORK_EXPORT extern "C" CFNETWORK_DLLEXPORT -#else -#define CFNETWORK_EXPORT extern "C" CFNETWORK_DLLIMPORT -#endif -#else -#define CFNETWORK_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(CFNETWORK_INSIDE_BUILD) -#define CFNETWORK_EXPORT CFNETWORK_DLLEXPORT extern -#else -#define CFNETWORK_EXPORT CFNETWORK_DLLIMPORT extern -#endif -#else -#define CFNETWORK_EXPORT extern -#endif - -#endif // __cplusplus diff --git a/CFNetwork/CFSocketStream.h b/CFNetwork/CFSocketStream.h deleted file mode 100644 index e6352847..00000000 --- a/CFNetwork/CFSocketStream.h +++ /dev/null @@ -1,84 +0,0 @@ -#import -#import -#import - -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertyShouldCloseNativeSocket; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySocketSecurityLevel; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySOCKSProxy; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySSLPeerCertificates; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySSLPeerTrust; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySSLSettings; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertyProxyLocalByPass; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySocketRemoteHost; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySocketRemoteNetService; - -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLLevel; -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLAllowsExpiredCertificates; -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLAllowsExpiredRoots; -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLAllowsAnyRoot; -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLValidatesCertificateChain; -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLPeerName; -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLCertificates; -CFNETWORK_EXPORT const CFStringRef kCFStreamSSLIsServer; - -typedef enum { - kCFStreamSocketSecurityNone = 0, - kCFStreamSocketSecuritySSLv2, - kCFStreamSocketSecuritySSLv3, - kCFStreamSocketSecuritySSLv23, - kCFStreamSocketSecurityTLSv1 -} CFStreamSocketSecurityProtocol; - -CFNETWORK_EXPORT const CFStringRef kCFStreamSocketSecurityLevelNone; -CFNETWORK_EXPORT const CFStringRef kCFStreamSocketSecurityLevelSSLv2; -CFNETWORK_EXPORT const CFStringRef kCFStreamSocketSecurityLevelSSLv3; -CFNETWORK_EXPORT const CFStringRef kCFStreamSocketSecurityLevelTLSv1; -CFNETWORK_EXPORT const CFStringRef kCFStreamSocketSecurityLevelNegotiatedSSL; - -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySOCKSProxyHost; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySOCKSProxyPort; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySOCKSVersion; -CFNETWORK_EXPORT const CFStringRef kCFStreamSocketSOCKSVersion4; -CFNETWORK_EXPORT const CFStringRef kCFStreamSocketSOCKSVersion5; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySOCKSUser; -CFNETWORK_EXPORT const CFStringRef kCFStreamPropertySOCKSPassword; - -CFNETWORK_EXPORT const CFIndex kCFStreamErrorDomainWinSock; - -enum { - kCFStreamErrorSOCKSSubDomainNone = 0, - kCFStreamErrorSOCKSSubDomainVersionCode = 1, - kCFStreamErrorSOCKS4SubDomainResponse = 2, - kCFStreamErrorSOCKS5SubDomainUserPass = 3, - kCFStreamErrorSOCKS5SubDomainMethod = 4, - kCFStreamErrorSOCKS5SubDomainResponse = 5 -}; - -/* kCFStreamErrorSOCKSSubDomainNone*/ -enum { - kCFStreamErrorSOCKS5BadResponseAddr = 1, - kCFStreamErrorSOCKS5BadState = 2, - kCFStreamErrorSOCKSUnknownClientVersion = 3 -}; - -/* kCFStreamErrorSOCKS4SubDomainResponse*/ -enum { - kCFStreamErrorSOCKS4RequestFailed = 91, - kCFStreamErrorSOCKS4IdentdFailed = 92, - kCFStreamErrorSOCKS4IdConflict = 93 -}; - -/* kCFStreamErrorSOCKS5SubDomainMethod*/ -enum { - kSOCKS5NoAcceptableMethod = 0xFF -}; - -CFNETWORK_EXPORT Boolean CFSocketStreamPairSetSecurityProtocol(CFReadStreamRef socketReadStream, CFWriteStreamRef socketWriteStream, CFStreamSocketSecurityProtocol securityProtocol); - -CFNETWORK_EXPORT SInt32 CFSocketStreamSOCKSGetError(CFStreamError *error); - -CFNETWORK_EXPORT SInt32 CFSocketStreamSOCKSGetErrorSubdomain(CFStreamError *error); - -CFNETWORK_EXPORT void CFStreamCreatePairWithSocketToCFHost(CFAllocatorRef alloc, CFHostRef host, SInt32 port, CFReadStreamRef *readStream, CFWriteStreamRef *writeStream); - -CFNETWORK_EXPORT void CFStreamCreatePairWithSocketToNetService(CFAllocatorRef alloc, CFNetServiceRef service, CFReadStreamRef *readStream, CFWriteStreamRef *writeStream); diff --git a/CFNetwork/CFSocketStream.m b/CFNetwork/CFSocketStream.m deleted file mode 100644 index c50cca88..00000000 --- a/CFNetwork/CFSocketStream.m +++ /dev/null @@ -1,63 +0,0 @@ -#import -#import - -/************* These values are also in NSStream, keep in sync */ - -const CFStringRef kCFStreamPropertyShouldCloseNativeSocket = - (CFStringRef) @"kCFStreamPropertyShouldCloseNativeSocket"; -const CFStringRef kCFStreamPropertySocketSecurityLevel = - (CFStringRef) @"kCFStreamPropertySocketSecurityLevel"; -const CFStringRef kCFStreamPropertySOCKSProxy = - (CFStringRef) @"kCFStreamPropertySOCKSProxy"; -const CFStringRef kCFStreamPropertySSLPeerCertificates = - (CFStringRef) @"kCFStreamPropertySSLPeerCertificates"; -const CFStringRef kCFStreamPropertySSLPeerTrust = - (CFStringRef) @"kCFStreamPropertySSLPeerTrust"; -const CFStringRef kCFStreamPropertySSLSettings = - (CFStringRef) @"kCFStreamPropertySSLSettings"; -const CFStringRef kCFStreamPropertyProxyLocalByPass = - (CFStringRef) @"kCFStreamPropertyProxyLocalByPass"; -const CFStringRef kCFStreamPropertySocketRemoteHost = - (CFStringRef) @"kCFStreamPropertySocketRemoteHost"; -const CFStringRef kCFStreamPropertySocketRemoteNetService = - (CFStringRef) @"kCFStreamPropertySocketRemoteNetService"; - -const CFStringRef kCFStreamSSLLevel = (CFStringRef) @"kCFStreamSSLLevel"; -const CFStringRef kCFStreamSSLAllowsExpiredCertificates = - (CFStringRef) @"kCFStreamSSLAllowsExpiredCertificates"; -const CFStringRef kCFStreamSSLAllowsExpiredRoots = - (CFStringRef) @"kCFStreamSSLAllowsExpiredRoots"; -const CFStringRef kCFStreamSSLAllowsAnyRoot = - (CFStringRef) @"kCFStreamSSLAllowsAnyRoot"; -const CFStringRef kCFStreamSSLValidatesCertificateChain = - (CFStringRef) @"kCFStreamSSLValidatesCertificateChain"; -const CFStringRef kCFStreamSSLPeerName = (CFStringRef) @"kCFStreamSSLPeerName"; -const CFStringRef kCFStreamSSLCertificates = - (CFStringRef) @"kCFStreamSSLCertificates"; -const CFStringRef kCFStreamSSLIsServer = (CFStringRef) @"kCFStreamSSLIsServer"; - -const CFStringRef kCFStreamSocketSecurityLevelNone = - (CFStringRef) @"kCFStreamSocketSecurityLevelNone"; -const CFStringRef kCFStreamSocketSecurityLevelSSLv2 = - (CFStringRef) @"kCFStreamSocketSecurityLevelSSLv2"; -const CFStringRef kCFStreamSocketSecurityLevelSSLv3 = - (CFStringRef) @"kCFStreamSocketSecurityLevelSSLv3"; -const CFStringRef kCFStreamSocketSecurityLevelTLSv1 = - (CFStringRef) @"kCFStreamSocketSecurityLevelTLSv1"; -const CFStringRef kCFStreamSocketSecurityLevelNegotiatedSSL = - (CFStringRef) @"kCFStreamSocketSecurityLevelNegotiatedSSL"; - -const CFStringRef kCFStreamPropertySOCKSProxyHost = - (CFStringRef) @"kCFStreamPropertySOCKSProxyHost"; -const CFStringRef kCFStreamPropertySOCKSProxyPort = - (CFStringRef) @"kCFStreamPropertySOCKSProxyPort"; -const CFStringRef kCFStreamPropertySOCKSVersion = - (CFStringRef) @"kCFStreamPropertySOCKSVersion"; -const CFStringRef kCFStreamSocketSOCKSVersion4 = - (CFStringRef) @"kCFStreamSocketSOCKSVersion4"; -const CFStringRef kCFStreamSocketSOCKSVersion5 = - (CFStringRef) @"kCFStreamSocketSOCKSVersion5"; -const CFStringRef kCFStreamPropertySOCKSUser = - (CFStringRef) @"kCFStreamPropertySOCKSUser"; -const CFStringRef kCFStreamPropertySOCKSPassword = - (CFStringRef) @"kCFStreamPropertySOCKSPassword"; diff --git a/CFNetwork/English.lproj/InfoPlist.strings b/CFNetwork/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/CFNetwork/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/CFNetwork/Info.plist b/CFNetwork/Info.plist deleted file mode 100644 index 77d11afe..00000000 --- a/CFNetwork/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.CFNetwork - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - OBJC - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/CFSSLHandler_openssl/CFSSLHandler_openssl.h b/CFSSLHandler_openssl/CFSSLHandler_openssl.h deleted file mode 100644 index 54deb47f..00000000 --- a/CFSSLHandler_openssl/CFSSLHandler_openssl.h +++ /dev/null @@ -1,41 +0,0 @@ -#import -#import -#import - -#import - -@class NSSocket, NSMutableData; - -@interface CFSSLHandler_openssl : CFSSLHandler { - CFDictionaryRef _properties; - SSL_METHOD *_method; - SSL_CTX *_context; - SSL *_connection; - BIO *_incoming; - BIO *_outgoing; - NSInteger _stableBufferCapacity; - uint8_t *_stableBuffer; - NSMutableData *_readBuffer; -} - -- initWithProperties: (CFDictionaryRef) properties; - -- (BOOL) isHandshaking; - -- (NSInteger) writePlaintext: (const uint8_t *) buffer - maxLength: (NSUInteger) length; -- (NSInteger) writeBytesAvailable; -- (BOOL) wantsMoreIncoming; -- (NSInteger) readEncrypted: (uint8_t *) buffer maxLength: (NSUInteger) length; - -- (NSInteger) writeEncrypted: (const uint8_t *) buffer - maxLength: (NSUInteger) length; -- (NSInteger) readBytesAvailable; -- (NSInteger) readPlaintext: (uint8_t *) buffer maxLength: (NSUInteger) length; - -- (NSInteger) transferOneBufferFromSSLToSocket: (NSSocket *) socket; -- (NSInteger) transferOneBufferFromSocketToSSL: (NSSocket *) socket; - -- (void) runWithSocket: (NSSocket *) socket; - -@end diff --git a/CFSSLHandler_openssl/CFSSLHandler_openssl.m b/CFSSLHandler_openssl/CFSSLHandler_openssl.m deleted file mode 100644 index 6974e87b..00000000 --- a/CFSSLHandler_openssl/CFSSLHandler_openssl.m +++ /dev/null @@ -1,325 +0,0 @@ -#import "CFSSLHandler_openssl.h" -#import -#import -#import - -#import -#include - -@implementation CFSSLHandler (openssl) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([CFSSLHandler_openssl class], 0, zone); -} - -@end - -@implementation CFSSLHandler_openssl - -static pthread_mutex_t initLock = PTHREAD_MUTEX_INITIALIZER; -static pthread_mutex_t *lockTable; - -static void locking_function(int mode, int idx, const char *file, int line) { - if (mode & CRYPTO_LOCK) { - pthread_mutex_lock(&(lockTable[idx])); - } else { - pthread_mutex_unlock(&(lockTable[idx])); - } -} - -#if 0 -// We don't need this on Windows but it should be implemented generally -static threadid_func(CRYPTO_THREADID *id){ -} -#endif - -+ (void) initialize { - if (self == [CFSSLHandler_openssl class]) { - pthread_mutex_lock(&initLock); - CRYPTO_malloc_init(); - SSL_load_error_strings(); - ERR_load_BIO_strings(); - SSL_library_init(); - - int i, numberOfLocks = CRYPTO_num_locks(); - lockTable = OPENSSL_malloc(numberOfLocks * sizeof(pthread_mutex_t)); - for (i = 0; i < numberOfLocks; i++) - pthread_mutex_init(&(lockTable[i]), NULL); - - CRYPTO_set_locking_callback(locking_function); - pthread_mutex_unlock(&initLock); - } -} - -- initWithProperties: (CFDictionaryRef) properties { - _properties = CFRetain(properties); - - CFStringRef level = CFDictionaryGetValue(_properties, kCFStreamSSLLevel); - - if (level == NULL) - _method = SSLv23_client_method(); - else if (CFStringCompare(level, kCFStreamSocketSecurityLevelSSLv3, 0) == - kCFCompareEqualTo) - _method = SSLv3_client_method(); - else if (CFStringCompare(level, kCFStreamSocketSecurityLevelSSLv2, 0) == - kCFCompareEqualTo) - _method = SSLv2_client_method(); - else if (CFStringCompare(level, kCFStreamSocketSecurityLevelTLSv1, 0) == - kCFCompareEqualTo) - _method = TLSv1_client_method(); - else - _method = SSLv23_client_method(); - - CFNumberRef validatesCertChain = CFDictionaryGetValue( - _properties, kCFStreamSSLValidatesCertificateChain); - - if (validatesCertChain != NULL) { - } - - _context = SSL_CTX_new(_method); - _connection = SSL_new(_context); - _incoming = BIO_new(BIO_s_mem()); - _outgoing = BIO_new(BIO_s_mem()); - - SSL_set_bio(_connection, _incoming, _outgoing); - - SSL_set_connect_state(_connection); - - /* The SSL_read doc.s say that when SSL_read returns Wants More you should - use the same arguments the next call. It is a little ambiguous whether - the same exact pointer should be used, so we don't chance it and just - maintain a buffer for this purpose. */ - - _stableBufferCapacity = 8192; - _stableBuffer = NSZoneMalloc(NULL, _stableBufferCapacity); - _readBuffer = [[NSMutableData alloc] init]; - - return self; -} - -- (void) dealloc { - CFRelease(_properties); - SSL_free(_connection); - NSZoneFree(NULL, _stableBuffer); - [super dealloc]; -} - -- (void) close { - SSL_shutdown(_connection); -} - -- (BOOL) isHandshaking { - return SSL_in_init(_connection) ? YES : NO; -} - -- (NSInteger) writePlaintext: (const uint8_t *) buffer - maxLength: (NSUInteger) length -{ - int result = SSL_write(_connection, buffer, length); - - if (result < 0) { - int error = SSL_get_error(_connection, result); - - switch (error) { - case SSL_ERROR_ZERO_RETURN: - break; - - case SSL_ERROR_NONE: - break; - - case SSL_ERROR_WANT_READ: - break; - - default:; - char errorCString[256]; - - while (error != 0) { - ERR_error_string_n(error, errorCString, sizeof(errorCString)); - - NSCLog("SSL_write(%d) returned error %d - %s", length, error, - errorCString); - - error = ERR_get_error(); - } - break; - } - } - - return result; -} - -- (NSInteger) writeBytesAvailable { - return BIO_ctrl_pending(_outgoing); -} - -- (BOOL) wantsMoreIncoming { - return SSL_want_read(_connection); -} - -- (NSInteger) readEncrypted: (uint8_t *) buffer maxLength: (NSUInteger) length { - int check = BIO_read(_outgoing, buffer, length); - - if (check <= 0) { - // This shouldn't happen unless we read when not ready - NSCLog("BIO_read(_outgoing,buffer,%d) returned %d ", length, check); - } - - return check; -} - -- (NSInteger) writeEncrypted: (const uint8_t *) buffer - maxLength: (NSUInteger) length -{ - size_t check = BIO_write(_incoming, buffer, length); - - if (check <= 0) { - // This shouldn't happen unless we are out of memory? - NSCLog("BIO_write(_incoming,buffer,%d) returned %d ", length, check); - } - - return check; -} - -- (NSInteger) _readPostSSL: (uint8_t *) buffer maxLength: (NSUInteger) length { - int check = SSL_read(_connection, buffer, length); - - if (check <= 0) { - int error = SSL_get_error(_connection, check); - - switch (error) { - case SSL_ERROR_ZERO_RETURN: - return 0; - - case SSL_ERROR_NONE: - return 0; - - case SSL_ERROR_WANT_READ: - return 0; - - default:; - char errorCString[256]; - - while (error != 0) { - ERR_error_string_n(error, errorCString, sizeof(errorCString)); - - NSCLog("SSL_read(%d) returned error %d - %s", length, error, - errorCString); - - error = ERR_get_error(); - } - break; - } - } - - return check; -} - -- (NSInteger) readBytesAvailable { - /* SSL_pending() is useless here because it doesn't actually process - anything, it will return 0 when there are bytes available - post-processing. - */ - if ([_readBuffer length] > 0) - return [_readBuffer length]; - else { - NSInteger result = [self _readPostSSL: _stableBuffer - maxLength: _stableBufferCapacity]; - - if (result <= 0) - return 0; - - [_readBuffer appendBytes: _stableBuffer length: result]; - return result; - } -} - -- (NSInteger) readPlaintext: (uint8_t *) buffer maxLength: (NSUInteger) length { - if ([_readBuffer length] > 0) { - NSInteger qty = MIN([_readBuffer length], length); - - [_readBuffer getBytes: buffer length: qty]; - [_readBuffer replaceBytesInRange: NSMakeRange(0, qty) - withBytes: NULL - length: 0]; - return qty; - } - - return [self _readPostSSL: buffer maxLength: length]; -} - -- (NSInteger) transferOneBufferFromSSLToSocket: (NSSocket *) socket { - NSInteger available = [self readEncrypted: _stableBuffer - maxLength: _stableBufferCapacity]; - - if (available <= 0) - return available; - else { - NSInteger check = [socket write: _stableBuffer maxLength: available]; - - if (check != available) - NSCLog("failure socket write:%d=%d", available, check); - - return check; - } -} - -- (NSInteger) transferOneBufferFromSocketToSSL: (NSSocket *) socket { - NSInteger result = [socket read: _stableBuffer - maxLength: _stableBufferCapacity]; - - if (result <= 0) - return result; - - NSInteger check; - - if ((check = [self writeEncrypted: _stableBuffer - maxLength: result]) != result) { - NSCLog("[sslHandler writeEncrypted:socketBuffer maxLength:%d] failed " - "%d", - result, check); - } - - return result; -} - -- (void) runHandshakeIfNeeded: (NSSocket *) socket { - while ([self isHandshaking]) { - int check = SSL_do_handshake(_connection); - - if (check == 1) { - break; - } - - if (check == 0) { - break; - } - - if ([self writeBytesAvailable]) { - if ((check = [self transferOneBufferFromSSLToSocket: socket]) <= 0) - break; - } - - if ([self wantsMoreIncoming]) { - if ((check = [self transferOneBufferFromSocketToSSL: socket]) <= 0) - break; - } - } -} - -- (void) runWithSocket: (NSSocket *) socket { - while ([self writeBytesAvailable] || [self wantsMoreIncoming]) { - NSInteger check; - - if ([self writeBytesAvailable]) { - if ((check = [self transferOneBufferFromSSLToSocket: socket]) <= 0) - break; - } - - if ([self wantsMoreIncoming]) { - if ((check = [self transferOneBufferFromSocketToSSL: socket]) <= 0) - break; - } - } -} - -@end diff --git a/CFSSLHandler_openssl/CFSSLHandler_openssl.xcodeproj/project.pbxproj b/CFSSLHandler_openssl/CFSSLHandler_openssl.xcodeproj/project.pbxproj deleted file mode 100644 index dc260545..00000000 --- a/CFSSLHandler_openssl/CFSSLHandler_openssl.xcodeproj/project.pbxproj +++ /dev/null @@ -1,417 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8D576314048677EA00EA77CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* Foundation.framework */; }; - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; }; - FE1DDDEC1711253B003B3AF8 /* windows-i386-bundle.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = FE1DDDEB1711253B003B3AF8 /* windows-i386-bundle.xcconfig */; }; - FE5C8314121D81470063E96F /* CFSSLHandler_openssl.m in Sources */ = {isa = PBXBuildFile; fileRef = FE5C8313121D81470063E96F /* CFSSLHandler_openssl.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE0513B6121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A7EC0C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE0513B8121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 6EA04A7709E57D5F0067589C; - remoteInfo = "Foundation-Linux-i386"; - }; - FE0513BA121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 6E4D932B0A2642BD003D335C; - remoteInfo = "Foundation-Solaris-sparc"; - }; - FE0513BC121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FED70A6B0C3B3D2C000CBE5B; - remoteInfo = "Foundation-Darwin-i386"; - }; - FE0513BE121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FED70FB70C3C09C7000CBE5B; - remoteInfo = "Foundation-Darwin-ppc"; - }; - FE0513C0121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE651A870FBC844C00464BFD; - remoteInfo = "Foundation-Darwin-x86_64"; - }; - FE0513C2121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 28D487A90FE04E7100DC03EF; - remoteInfo = "Foundation-Linux-ppc"; - }; - FE0513C4121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 15D921C0105E918000171406; - remoteInfo = "Foundation-Linux-arm"; - }; - FE0513C6121E05F70097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE30A2FF10C6ED6F00A1BF7F; - remoteInfo = "Foundation-FreeBSD-i386"; - }; - FE0513C8121E05FD0097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A5970C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 0AA1909FFE8422F4C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D576316048677EA00EA77CD /* CFSSLHandler_openssl.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CFSSLHandler_openssl.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Foundation.xcodeproj; path = ../Foundation/Foundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE1DDDEB1711253B003B3AF8 /* windows-i386-bundle.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "windows-i386-bundle.xcconfig"; path = "../xcconfig/windows-i386-bundle.xcconfig"; sourceTree = ""; }; - FE5C8312121D81470063E96F /* CFSSLHandler_openssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFSSLHandler_openssl.h; sourceTree = ""; }; - FE5C8313121D81470063E96F /* CFSSLHandler_openssl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFSSLHandler_openssl.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D576313048677EA00EA77CD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D576314048677EA00EA77CD /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* CFSSLHandler_openssl */ = { - isa = PBXGroup; - children = ( - FE1DDDEB1711253B003B3AF8 /* windows-i386-bundle.xcconfig */, - FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */, - FE5C8312121D81470063E96F /* CFSSLHandler_openssl.h */, - FE5C8313121D81470063E96F /* CFSSLHandler_openssl.m */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - ); - indentWidth = 4; - name = CFSSLHandler_openssl; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 0AA1909FFE8422F4C02AAC07 /* Foundation.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8D576317048677EA00EA77CD /* Info.plist */, - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* CFSSLHandler_openssl.bundle */, - ); - name = Products; - sourceTree = ""; - }; - FE0513AA121E05F70097BA92 /* Products */ = { - isa = PBXGroup; - children = ( - FE0513B7121E05F70097BA92 /* Foundation.framework */, - FE0513B9121E05F70097BA92 /* Foundation.framework */, - FE0513BB121E05F70097BA92 /* Foundation.framework */, - FE0513BD121E05F70097BA92 /* Foundation.framework */, - FE0513BF121E05F70097BA92 /* Foundation.framework */, - FE0513C1121E05F70097BA92 /* Foundation.framework */, - FE0513C3121E05F70097BA92 /* Foundation.framework */, - FE0513C5121E05F70097BA92 /* Foundation.framework */, - FE0513C7121E05F70097BA92 /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* CFSSLHandler_openssl-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB911A08733D790010E9CD /* Build configuration list for PBXNativeTarget "CFSSLHandler_openssl-Windows-i386" */; - buildPhases = ( - 8D57630F048677EA00EA77CD /* Resources */, - 8D576311048677EA00EA77CD /* Sources */, - 8D576313048677EA00EA77CD /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - FE0513C9121E05FD0097BA92 /* PBXTargetDependency */, - ); - name = "CFSSLHandler_openssl-Windows-i386"; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = CFSSLHandler_openssl; - productReference = 8D576316048677EA00EA77CD /* CFSSLHandler_openssl.bundle */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB911E08733D790010E9CD /* Build configuration list for PBXProject "CFSSLHandler_openssl" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 089C166AFE841209C02AAC07 /* CFSSLHandler_openssl */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE0513AA121E05F70097BA92 /* Products */; - ProjectRef = FE0513A9121E05F70097BA92 /* Foundation.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D57630D048677EA00EA77CD /* CFSSLHandler_openssl-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE0513B7121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513B6121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513B9121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513B8121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513BB121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513BA121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513BD121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513BC121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513BF121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513BE121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513C1121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513C0121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513C3121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513C2121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513C5121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513C4121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0513C7121E05F70097BA92 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE0513C6121E05F70097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D57630F048677EA00EA77CD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */, - FE1DDDEC1711253B003B3AF8 /* windows-i386-bundle.xcconfig in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D576311048677EA00EA77CD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE5C8314121D81470063E96F /* CFSSLHandler_openssl.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE0513C9121E05FD0097BA92 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Foundation-Windows-i386"; - targetProxy = FE0513C8121E05FD0097BA92 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C167EFE841241C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB911B08733D790010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1DDDEB1711253B003B3AF8 /* windows-i386-bundle.xcconfig */; - buildSettings = { - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .1.0.dll; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = "$DSTROOT/openssl-0.9.8h-1/include"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Frameworks/Foundation.framework/Resources; - LIBRARY_SEARCH_PATHS = "$DSTROOT/openssl-0.9.8h-1/lib"; - OTHER_LDFLAGS = ( - "-shared", - "-lssl", - "-lcrypto", - "-lgdi32", - "-lws2_32", - "-Wl,--enable-auto-import", - ); - PRODUCT_NAME = CFSSLHandler_openssl; - }; - name = Debug; - }; - 1DEB911C08733D790010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1DDDEB1711253B003B3AF8 /* windows-i386-bundle.xcconfig */; - buildSettings = { - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .1.0.dll; - HEADER_SEARCH_PATHS = "$DSTROOT/openssl-0.9.8h-1/include"; - GCC_MODEL_TUNING = G5; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Frameworks/Foundation.framework/Resources; - LIBRARY_SEARCH_PATHS = "$DSTROOT/openssl-0.9.8h-1/lib"; - OTHER_LDFLAGS = ( - "-shared", - "-lssl", - "-lcrypto", - "-lgdi32", - "-lws2_32", - "-Wl,--enable-auto-import", - ); - PRODUCT_NAME = CFSSLHandler_openssl; - }; - name = Release; - }; - 1DEB911F08733D790010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - 1DEB912008733D790010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB911A08733D790010E9CD /* Build configuration list for PBXNativeTarget "CFSSLHandler_openssl-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB911B08733D790010E9CD /* Debug */, - 1DEB911C08733D790010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB911E08733D790010E9CD /* Build configuration list for PBXProject "CFSSLHandler_openssl" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB911F08733D790010E9CD /* Debug */, - 1DEB912008733D790010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/CFSSLHandler_openssl/English.lproj/InfoPlist.strings b/CFSSLHandler_openssl/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/CFSSLHandler_openssl/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/CFSSLHandler_openssl/Info.plist b/CFSSLHandler_openssl/Info.plist deleted file mode 100644 index 7c6b1556..00000000 --- a/CFSSLHandler_openssl/Info.plist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - CFPlugInDynamicRegisterFunction - - CFPlugInDynamicRegistration - NO - CFPlugInFactories - - 00000000-0000-0000-0000-000000000000 - MyFactoryFunction - - CFPlugInTypes - - 00000000-0000-0000-0000-000000000000 - - 00000000-0000-0000-0000-000000000000 - - - CFPlugInUnloadFunction - - NSPrincipalClass - CFSSHandler_openssl - - diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..06b2209b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,9 @@ +project(cocotron) + +add_subdirectory(CoreGraphics) +add_subdirectory(Onyx2D) +add_subdirectory(AppKit) +add_subdirectory(CoreText) +add_subdirectory(Cocoa) +add_subdirectory(CoreData) +add_subdirectory(QuartzCore) diff --git a/Cocoa/Cocoa.xcodeproj/project.pbxproj b/Cocoa/Cocoa.xcodeproj/project.pbxproj deleted file mode 100644 index 9d68c6f5..00000000 --- a/Cocoa/Cocoa.xcodeproj/project.pbxproj +++ /dev/null @@ -1,731 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - C8E0BF9F0F0E6B0E00677729 /* Cocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF3B23A0B35C74700A76FD1 /* Cocoa.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8E0BFA20F0E6B0E00677729 /* Cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF3B2780B35CB9D00A76FD1 /* Cocoa.m */; }; - C8E0BFA40F0E6B0E00677729 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - C8E0BFA50F0E6B0E00677729 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; }; - FE01AB170C5D9C3400AEA51A /* Cocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF3B23A0B35C74700A76FD1 /* Cocoa.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01AB1A0C5D9C3400AEA51A /* Cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF3B2780B35CB9D00A76FD1 /* Cocoa.m */; }; - FE01AB1C0C5D9C3400AEA51A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - FE01AB1D0C5D9C3400AEA51A /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; }; - FE5A873410C6F1E8005E348A /* Cocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF3B23A0B35C74700A76FD1 /* Cocoa.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5A873710C6F1E8005E348A /* Cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF3B2780B35CB9D00A76FD1 /* Cocoa.m */; }; - FE5A873910C6F1E8005E348A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - FE5A873A10C6F1E8005E348A /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; }; - FECC1DCC108D025D00BD4A91 /* Cocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF3B23A0B35C74700A76FD1 /* Cocoa.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECC1DCF108D025D00BD4A91 /* Cocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF3B2780B35CB9D00A76FD1 /* Cocoa.m */; }; - FECC1DD1108D025D00BD4A91 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - FECC1DD2108D025D00BD4A91 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D6A5FE840307C02AAC07 /* AppKit.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE01AB240C5D9C3500AEA51A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE7135460B36427F006C9493 /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AAC10C5D9BCB00AEA51A; - remoteInfo = "AppKit-Windows-i386"; - }; - FE01AB270C5D9C3500AEA51A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE3217D10BB41D16004F000A /* ApplicationServices.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AAED0C5D9BF900AEA51A; - remoteInfo = "ApplicationServices-Windows-i386"; - }; - FE78D107126F4CF500CC39CF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE78D0FF126F4CF500CC39CF /* CoreData.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreData-Windows-i386"; - }; - FE78D109126F4D0700CC39CF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE78D0FF126F4CF500CC39CF /* CoreData.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CoreData-Windows-i386"; - }; - FEF80ABD0C5D9F3000FF7CA5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE7135460B36427F006C9493 /* AppKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A8070C5D9BCB00AEA51A; - remoteInfo = "AppKit-Windows-i386"; - }; - FEF80ABF0C5D9F3400FF7CA5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE3217D10BB41D16004F000A /* ApplicationServices.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01AAE20C5D9BF900AEA51A; - remoteInfo = "ApplicationServices-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - C8E0BFAA0F0E6B0E00677729 /* Cocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Cocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE01AB210C5D9C3400AEA51A /* Cocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Cocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B0371430E6B30071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B0381430E6B30071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B0391430E6B30071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B03A1430E6B30071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B03B1430E6B30071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B03C1430E6B30071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B03D1430E6B30071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B03E1430E6B30071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B03F1430E6B30071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B0401430E6B30071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B0411430E6B30071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B0421430E6B30071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B0431430E6B30071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B0441430E6B30071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B0451430E6B30071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE3217D10BB41D16004F000A /* ApplicationServices.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ApplicationServices.xcodeproj; path = ../ApplicationServices/ApplicationServices.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE5A873F10C6F1E8005E348A /* Cocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Cocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE7085281431174600B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE7135460B36427F006C9493 /* AppKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AppKit.xcodeproj; path = ../AppKit/AppKit.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE78D0FF126F4CF500CC39CF /* CoreData.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreData.xcodeproj; path = ../CoreData/CoreData.xcodeproj; sourceTree = SOURCE_ROOT; }; - FEAC294B17AE072400EF2B9D /* windows-i386-clang.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-clang.xcconfig"; sourceTree = ""; }; - FECC1DD6108D025D00BD4A91 /* Cocoa.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Cocoa.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FED0C496170BCF700033C8E6 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FED0C497170BCF700033C8E6 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FED0C498170BCF700033C8E6 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FED0C499170BCF700033C8E6 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FED0C49A170BCF700033C8E6 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FED0C49B170BCF700033C8E6 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FED0C49C170BCF700033C8E6 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FED0C49D170BCF700033C8E6 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEF3B23A0B35C74700A76FD1 /* Cocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cocoa.h; sourceTree = ""; }; - FEF3B2780B35CB9D00A76FD1 /* Cocoa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Cocoa.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - C8E0BFA30F0E6B0E00677729 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C8E0BFA40F0E6B0E00677729 /* Foundation.framework in Frameworks */, - C8E0BFA50F0E6B0E00677729 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE01AB1B0C5D9C3400AEA51A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01AB1C0C5D9C3400AEA51A /* Foundation.framework in Frameworks */, - FE01AB1D0C5D9C3400AEA51A /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE5A873810C6F1E8005E348A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE5A873910C6F1E8005E348A /* Foundation.framework in Frameworks */, - FE5A873A10C6F1E8005E348A /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FECC1DD0108D025D00BD4A91 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FECC1DD1108D025D00BD4A91 /* Foundation.framework in Frameworks */, - FECC1DD2108D025D00BD4A91 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - FE01AB210C5D9C3400AEA51A /* Cocoa.framework */, - C8E0BFAA0F0E6B0E00677729 /* Cocoa.framework */, - FECC1DD6108D025D00BD4A91 /* Cocoa.framework */, - FE5A873F10C6F1E8005E348A /* Cocoa.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* Cocoa */ = { - isa = PBXGroup; - children = ( - FE06B0361430E6B30071169B /* xcconfig */, - FE78D0FF126F4CF500CC39CF /* CoreData.xcodeproj */, - FE3217D10BB41D16004F000A /* ApplicationServices.xcodeproj */, - FE7135460B36427F006C9493 /* AppKit.xcodeproj */, - 08FB77AEFE84172EC02AAC07 /* Classes */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - FEF3B23A0B35C74700A76FD1 /* Cocoa.h */, - FEF3B2780B35CB9D00A76FD1 /* Cocoa.m */, - ); - indentWidth = 4; - name = Cocoa; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AEFE84172EC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D6A5FE840307C02AAC07 /* AppKit.framework */, - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B0361430E6B30071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEAC294B17AE072400EF2B9D /* windows-i386-clang.xcconfig */, - FED0C496170BCF700033C8E6 /* darwin-i386-framework.xcconfig */, - FED0C497170BCF700033C8E6 /* darwin-ppc-framework.xcconfig */, - FED0C498170BCF700033C8E6 /* darwin-x86_64-framework.xcconfig */, - FED0C499170BCF700033C8E6 /* freebsd-i386-framework.xcconfig */, - FED0C49A170BCF700033C8E6 /* linux-arm-framework.xcconfig */, - FED0C49B170BCF700033C8E6 /* linux-i386-framework.xcconfig */, - FED0C49C170BCF700033C8E6 /* linux-ppc-framework.xcconfig */, - FED0C49D170BCF700033C8E6 /* solaris-sparc-framework.xcconfig */, - FE06B0371430E6B30071169B /* darwin-i386.xcconfig */, - FE06B0381430E6B30071169B /* darwin-ppc.xcconfig */, - FE06B0391430E6B30071169B /* darwin-x86_64.xcconfig */, - FE06B03A1430E6B30071169B /* darwin.xcconfig */, - FE06B03B1430E6B30071169B /* freebsd-i386.xcconfig */, - FE06B03C1430E6B30071169B /* freebsd.xcconfig */, - FE06B03D1430E6B30071169B /* linux-arm.xcconfig */, - FE06B03E1430E6B30071169B /* linux-i386.xcconfig */, - FE06B03F1430E6B30071169B /* linux-ppc.xcconfig */, - FE06B0401430E6B30071169B /* linux.xcconfig */, - FE06B0411430E6B30071169B /* platform.xcconfig */, - FE06B0421430E6B30071169B /* solaris-sparc.xcconfig */, - FE06B0431430E6B30071169B /* solaris.xcconfig */, - FE06B0441430E6B30071169B /* windows-i386.xcconfig */, - FE06B0451430E6B30071169B /* windows.xcconfig */, - FE7085281431174600B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE3217D20BB41D16004F000A /* Products */ = { - isa = PBXGroup; - children = ( - FE01AB280C5D9C3500AEA51A /* ApplicationServices.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE7135470B36427F006C9493 /* Products */ = { - isa = PBXGroup; - children = ( - FE01AB250C5D9C3500AEA51A /* AppKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE78D100126F4CF500CC39CF /* Products */ = { - isa = PBXGroup; - children = ( - FE78D108126F4CF500CC39CF /* CoreData.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - C8E0BF9E0F0E6B0E00677729 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C8E0BF9F0F0E6B0E00677729 /* Cocoa.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE01AB160C5D9C3400AEA51A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01AB170C5D9C3400AEA51A /* Cocoa.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE5A873310C6F1E8005E348A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE5A873410C6F1E8005E348A /* Cocoa.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FECC1DCB108D025D00BD4A91 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FECC1DCC108D025D00BD4A91 /* Cocoa.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - C8E0BF990F0E6B0E00677729 /* Cocoa-Darwin-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = C8E0BFA70F0E6B0E00677729 /* Build configuration list for PBXNativeTarget "Cocoa-Darwin-i386" */; - buildPhases = ( - C8E0BF9E0F0E6B0E00677729 /* Headers */, - C8E0BFA00F0E6B0E00677729 /* Resources */, - C8E0BFA10F0E6B0E00677729 /* Sources */, - C8E0BFA30F0E6B0E00677729 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Cocoa-Darwin-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = Cocoa; - productReference = C8E0BFAA0F0E6B0E00677729 /* Cocoa.framework */; - productType = "com.apple.product-type.framework"; - }; - FE01AB110C5D9C3400AEA51A /* Cocoa-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE01AB1F0C5D9C3400AEA51A /* Build configuration list for PBXNativeTarget "Cocoa-Windows-i386" */; - buildPhases = ( - FE01AB160C5D9C3400AEA51A /* Headers */, - FE01AB180C5D9C3400AEA51A /* Resources */, - FE01AB190C5D9C3400AEA51A /* Sources */, - FE01AB1B0C5D9C3400AEA51A /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - FEF80ABE0C5D9F3000FF7CA5 /* PBXTargetDependency */, - FEF80AC00C5D9F3400FF7CA5 /* PBXTargetDependency */, - FE78D10A126F4D0700CC39CF /* PBXTargetDependency */, - ); - name = "Cocoa-Windows-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = Cocoa; - productReference = FE01AB210C5D9C3400AEA51A /* Cocoa.framework */; - productType = "com.apple.product-type.framework"; - }; - FE5A873010C6F1E8005E348A /* Cocoa-FreeBSD-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE5A873C10C6F1E8005E348A /* Build configuration list for PBXNativeTarget "Cocoa-FreeBSD-i386" */; - buildPhases = ( - FE5A873310C6F1E8005E348A /* Headers */, - FE5A873510C6F1E8005E348A /* Resources */, - FE5A873610C6F1E8005E348A /* Sources */, - FE5A873810C6F1E8005E348A /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Cocoa-FreeBSD-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = Cocoa; - productReference = FE5A873F10C6F1E8005E348A /* Cocoa.framework */; - productType = "com.apple.product-type.framework"; - }; - FECC1DC6108D025D00BD4A91 /* Cocoa-Linux-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = FECC1DD3108D025D00BD4A91 /* Build configuration list for PBXNativeTarget "Cocoa-Linux-i386" */; - buildPhases = ( - FECC1DCB108D025D00BD4A91 /* Headers */, - FECC1DCD108D025D00BD4A91 /* Resources */, - FECC1DCE108D025D00BD4A91 /* Sources */, - FECC1DD0108D025D00BD4A91 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Cocoa-Linux-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = Cocoa; - productReference = FECC1DD6108D025D00BD4A91 /* Cocoa.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0420; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Cocoa" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* Cocoa */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE7135470B36427F006C9493 /* Products */; - ProjectRef = FE7135460B36427F006C9493 /* AppKit.xcodeproj */; - }, - { - ProductGroup = FE3217D20BB41D16004F000A /* Products */; - ProjectRef = FE3217D10BB41D16004F000A /* ApplicationServices.xcodeproj */; - }, - { - ProductGroup = FE78D100126F4CF500CC39CF /* Products */; - ProjectRef = FE78D0FF126F4CF500CC39CF /* CoreData.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - FE01AB110C5D9C3400AEA51A /* Cocoa-Windows-i386 */, - C8E0BF990F0E6B0E00677729 /* Cocoa-Darwin-i386 */, - FECC1DC6108D025D00BD4A91 /* Cocoa-Linux-i386 */, - FE5A873010C6F1E8005E348A /* Cocoa-FreeBSD-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE01AB250C5D9C3500AEA51A /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = FE01AB240C5D9C3500AEA51A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE01AB280C5D9C3500AEA51A /* ApplicationServices.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = ApplicationServices.framework; - remoteRef = FE01AB270C5D9C3500AEA51A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE78D108126F4CF500CC39CF /* CoreData.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreData.framework; - remoteRef = FE78D107126F4CF500CC39CF /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - C8E0BFA00F0E6B0E00677729 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE01AB180C5D9C3400AEA51A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE5A873510C6F1E8005E348A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FECC1DCD108D025D00BD4A91 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - C8E0BFA10F0E6B0E00677729 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C8E0BFA20F0E6B0E00677729 /* Cocoa.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE01AB190C5D9C3400AEA51A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01AB1A0C5D9C3400AEA51A /* Cocoa.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE5A873610C6F1E8005E348A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE5A873710C6F1E8005E348A /* Cocoa.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FECC1DCE108D025D00BD4A91 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FECC1DCF108D025D00BD4A91 /* Cocoa.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE78D10A126F4D0700CC39CF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CoreData-Windows-i386"; - targetProxy = FE78D109126F4D0700CC39CF /* PBXContainerItemProxy */; - }; - FEF80ABE0C5D9F3000FF7CA5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AppKit-Windows-i386"; - targetProxy = FEF80ABD0C5D9F3000FF7CA5 /* PBXContainerItemProxy */; - }; - FEF80AC00C5D9F3400FF7CA5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "ApplicationServices-Windows-i386"; - targetProxy = FEF80ABF0C5D9F3400FF7CA5 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91B208733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; - 7E2EFA4E0DF995A500A40193 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - 7E2EFA4F0DF995A500A40193 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7085281431174600B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "$(OTHER_CFLAGS)", - ); - PRODUCT_NAME = Cocoa; - }; - name = Debug; - }; - C8E0BFA80F0E6B0E00677729 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FED0C496170BCF700033C8E6 /* darwin-i386-framework.xcconfig */; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - ); - PRODUCT_NAME = Cocoa; - }; - name = Release; - }; - C8E0BFA90F0E6B0E00677729 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FED0C496170BCF700033C8E6 /* darwin-i386-framework.xcconfig */; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - ); - PRODUCT_NAME = Cocoa; - }; - name = Debug; - }; - FE01AB200C5D9C3400AEA51A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7085281431174600B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "$(OTHER_CFLAGS)", - ); - PRODUCT_NAME = Cocoa; - }; - name = Release; - }; - FE5A873D10C6F1E8005E348A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FED0C499170BCF700033C8E6 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - ); - PRODUCT_NAME = Cocoa; - }; - name = Release; - }; - FE5A873E10C6F1E8005E348A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FED0C499170BCF700033C8E6 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - ); - PRODUCT_NAME = Cocoa; - }; - name = Debug; - }; - FECC1DD4108D025D00BD4A91 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FED0C49B170BCF700033C8E6 /* linux-i386-framework.xcconfig */; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - ); - PRODUCT_NAME = Cocoa; - }; - name = Release; - }; - FECC1DD5108D025D00BD4A91 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FED0C49B170BCF700033C8E6 /* linux-i386-framework.xcconfig */; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOCOA_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - ); - PRODUCT_NAME = Cocoa; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Cocoa" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B208733DA50010E9CD /* Release */, - 7E2EFA4E0DF995A500A40193 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C8E0BFA70F0E6B0E00677729 /* Build configuration list for PBXNativeTarget "Cocoa-Darwin-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8E0BFA80F0E6B0E00677729 /* Release */, - C8E0BFA90F0E6B0E00677729 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FE01AB1F0C5D9C3400AEA51A /* Build configuration list for PBXNativeTarget "Cocoa-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE01AB200C5D9C3400AEA51A /* Release */, - 7E2EFA4F0DF995A500A40193 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FE5A873C10C6F1E8005E348A /* Build configuration list for PBXNativeTarget "Cocoa-FreeBSD-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE5A873D10C6F1E8005E348A /* Release */, - FE5A873E10C6F1E8005E348A /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FECC1DD3108D025D00BD4A91 /* Build configuration list for PBXNativeTarget "Cocoa-Linux-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FECC1DD4108D025D00BD4A91 /* Release */, - FECC1DD5108D025D00BD4A91 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/Cocotron/Cocotron.xcodeproj/project.pbxproj b/Cocotron/Cocotron.xcodeproj/project.pbxproj deleted file mode 100644 index 911edd57..00000000 --- a/Cocotron/Cocotron.xcodeproj/project.pbxproj +++ /dev/null @@ -1,359 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAggregateTarget section */ - FE1FC01211E7807100A9A87A /* Cocotron-Windows-i386 */ = { - isa = PBXAggregateTarget; - buildConfigurationList = FE1FC01711E7808000A9A87A /* Build configuration list for PBXAggregateTarget "Cocotron-Windows-i386" */; - buildPhases = ( - ); - dependencies = ( - FE1FC01611E7807A00A9A87A /* PBXTargetDependency */, - FE5C83A0121D89CD0063E96F /* PBXTargetDependency */, - FE081AA214107EF900A3DE85 /* PBXTargetDependency */, - FE0513EF121E06DF0097BA92 /* PBXTargetDependency */, - FE0819131386F95800C06956 /* PBXTargetDependency */, - ); - name = "Cocotron-Windows-i386"; - productName = "Cocotron-Windows-i386"; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXContainerItemProxy section */ - FE0513EC121E06DA0097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513E4121E06D90097BA92 /* Security.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "Security-Windows-i386"; - }; - FE0513EE121E06DF0097BA92 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0513E4121E06D90097BA92 /* Security.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "Security-Windows-i386"; - }; - FE0818F91386F93F00C06956 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0818F11386F93F00C06956 /* O2Context_AntiGrain.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8D576316048677EA00EA77CD; - remoteInfo = "O2Context_AntiGrain-Windows-i386"; - }; - FE0819121386F95800C06956 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE0818F11386F93F00C06956 /* O2Context_AntiGrain.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8D57630D048677EA00EA77CD; - remoteInfo = "O2Context_AntiGrain-Windows-i386"; - }; - FE081A9F14107EF000A3DE85 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE081A9B14107EF000A3DE85 /* NSSpellEngine_hunspell.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8D5B49B6048680CD000E48DA; - remoteInfo = NSSpellEngine_hunspell; - }; - FE081AA114107EF900A3DE85 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE081A9B14107EF000A3DE85 /* NSSpellEngine_hunspell.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8D5B49AC048680CD000E48DA; - remoteInfo = NSSpellEngine_hunspell; - }; - FE1FC00911E7806100A9A87A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AB210C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; - FE1FC00B11E7806100A9A87A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C8E0BFAA0F0E6B0E00677729; - remoteInfo = "Cocoa-Darwin-i386"; - }; - FE1FC00D11E7806100A9A87A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FECC1DD6108D025D00BD4A91; - remoteInfo = "Cocoa-Linux-i386"; - }; - FE1FC00F11E7806100A9A87A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5A873F10C6F1E8005E348A; - remoteInfo = "Cocoa-FreeBSD-i386"; - }; - FE1FC01511E7807A00A9A87A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01AB110C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; - FE5C839D121D89BF0063E96F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C8396121D89BF0063E96F /* CFSSLHandler_openssl.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8D576316048677EA00EA77CD; - remoteInfo = "CFSSLHandler_openssl-Windows-i386"; - }; - FE5C839F121D89CD0063E96F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C8396121D89BF0063E96F /* CFSSLHandler_openssl.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8D57630D048677EA00EA77CD; - remoteInfo = "CFSSLHandler_openssl-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - FE0513E4121E06D90097BA92 /* Security.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Security.xcodeproj; path = ../Security/Security.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE0818F11386F93F00C06956 /* O2Context_AntiGrain.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = O2Context_AntiGrain.xcodeproj; path = ../O2Context_AntiGrain/O2Context_AntiGrain.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE081A9B14107EF000A3DE85 /* NSSpellEngine_hunspell.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = NSSpellEngine_hunspell.xcodeproj; path = ../NSSpellEngine_hunspell/NSSpellEngine_hunspell.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Cocoa.xcodeproj; path = ../Cocoa/Cocoa.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE5C8396121D89BF0063E96F /* CFSSLHandler_openssl.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CFSSLHandler_openssl.xcodeproj; path = ../CFSSLHandler_openssl/CFSSLHandler_openssl.xcodeproj; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - FE0513E5121E06D90097BA92 /* Products */ = { - isa = PBXGroup; - children = ( - FE0513ED121E06DA0097BA92 /* Security.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE0818F21386F93F00C06956 /* Products */ = { - isa = PBXGroup; - children = ( - FE0818FA1386F93F00C06956 /* O2Context_AntiGrain.cgContext */, - ); - name = Products; - sourceTree = ""; - }; - FE081A9C14107EF000A3DE85 /* Products */ = { - isa = PBXGroup; - children = ( - FE081AA014107EF000A3DE85 /* NSSpellEngine_hunspell.spellEngine */, - ); - name = Products; - sourceTree = ""; - }; - FE1FBFF011E7804C00A9A87A = { - isa = PBXGroup; - children = ( - FE081A9B14107EF000A3DE85 /* NSSpellEngine_hunspell.xcodeproj */, - FE0818F11386F93F00C06956 /* O2Context_AntiGrain.xcodeproj */, - FE0513E4121E06D90097BA92 /* Security.xcodeproj */, - FE5C8396121D89BF0063E96F /* CFSSLHandler_openssl.xcodeproj */, - FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */, - ); - indentWidth = 4; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - FE1FBFFD11E7806100A9A87A /* Products */ = { - isa = PBXGroup; - children = ( - FE1FC00A11E7806100A9A87A /* Cocoa.framework */, - FE1FC00C11E7806100A9A87A /* Cocoa.framework */, - FE1FC00E11E7806100A9A87A /* Cocoa.framework */, - FE1FC01011E7806100A9A87A /* Cocoa.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE5C8397121D89BF0063E96F /* Products */ = { - isa = PBXGroup; - children = ( - FE5C839E121D89BF0063E96F /* CFSSLHandler_openssl.bundle */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXProject section */ - FE1FBFF211E7804C00A9A87A /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = FE1FBFF511E7804C00A9A87A /* Build configuration list for PBXProject "Cocotron" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = FE1FBFF011E7804C00A9A87A; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE5C8397121D89BF0063E96F /* Products */; - ProjectRef = FE5C8396121D89BF0063E96F /* CFSSLHandler_openssl.xcodeproj */; - }, - { - ProductGroup = FE1FBFFD11E7806100A9A87A /* Products */; - ProjectRef = FE1FBFFC11E7806100A9A87A /* Cocoa.xcodeproj */; - }, - { - ProductGroup = FE081A9C14107EF000A3DE85 /* Products */; - ProjectRef = FE081A9B14107EF000A3DE85 /* NSSpellEngine_hunspell.xcodeproj */; - }, - { - ProductGroup = FE0818F21386F93F00C06956 /* Products */; - ProjectRef = FE0818F11386F93F00C06956 /* O2Context_AntiGrain.xcodeproj */; - }, - { - ProductGroup = FE0513E5121E06D90097BA92 /* Products */; - ProjectRef = FE0513E4121E06D90097BA92 /* Security.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - FE1FC01211E7807100A9A87A /* Cocotron-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE0513ED121E06DA0097BA92 /* Security.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Security.framework; - remoteRef = FE0513EC121E06DA0097BA92 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE0818FA1386F93F00C06956 /* O2Context_AntiGrain.cgContext */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = O2Context_AntiGrain.cgContext; - remoteRef = FE0818F91386F93F00C06956 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE081AA014107EF000A3DE85 /* NSSpellEngine_hunspell.spellEngine */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = NSSpellEngine_hunspell.spellEngine; - remoteRef = FE081A9F14107EF000A3DE85 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE1FC00A11E7806100A9A87A /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE1FC00911E7806100A9A87A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE1FC00C11E7806100A9A87A /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE1FC00B11E7806100A9A87A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE1FC00E11E7806100A9A87A /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE1FC00D11E7806100A9A87A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE1FC01011E7806100A9A87A /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE1FC00F11E7806100A9A87A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE5C839E121D89BF0063E96F /* CFSSLHandler_openssl.bundle */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = CFSSLHandler_openssl.bundle; - remoteRef = FE5C839D121D89BF0063E96F /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXTargetDependency section */ - FE0513EF121E06DF0097BA92 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Security-Windows-i386"; - targetProxy = FE0513EE121E06DF0097BA92 /* PBXContainerItemProxy */; - }; - FE0819131386F95800C06956 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "O2Context_AntiGrain-Windows-i386"; - targetProxy = FE0819121386F95800C06956 /* PBXContainerItemProxy */; - }; - FE081AA214107EF900A3DE85 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = NSSpellEngine_hunspell; - targetProxy = FE081AA114107EF900A3DE85 /* PBXContainerItemProxy */; - }; - FE1FC01611E7807A00A9A87A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Cocoa-Windows-i386"; - targetProxy = FE1FC01511E7807A00A9A87A /* PBXContainerItemProxy */; - }; - FE5C83A0121D89CD0063E96F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CFSSLHandler_openssl-Windows-i386"; - targetProxy = FE5C839F121D89CD0063E96F /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - FE1FBFF411E7804C00A9A87A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; - FE1FC01411E7807200A9A87A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = "Cocotron-Windows-i386"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - FE1FBFF511E7804C00A9A87A /* Build configuration list for PBXProject "Cocotron" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE1FBFF411E7804C00A9A87A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FE1FC01711E7808000A9A87A /* Build configuration list for PBXAggregateTarget "Cocotron-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE1FC01411E7807200A9A87A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = FE1FBFF211E7804C00A9A87A /* Project object */; -} diff --git a/CommonCrypto/CommonCrypto.xcodeproj/project.pbxproj b/CommonCrypto/CommonCrypto.xcodeproj/project.pbxproj deleted file mode 100644 index 8c6bfbc3..00000000 --- a/CommonCrypto/CommonCrypto.xcodeproj/project.pbxproj +++ /dev/null @@ -1,305 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - FE4301E611E2580E00EBDD56 /* CommonCryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4301E011E2580E00EBDD56 /* CommonCryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4301E811E2580E00EBDD56 /* CommonDigest.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4301E211E2580E00EBDD56 /* CommonDigest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4301EA11E2580E00EBDD56 /* CommonHMAC.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4301E411E2580E00EBDD56 /* CommonHMAC.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEF5A81D11E4F37E009B0041 /* CommonCryptoExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF5A81C11E4F37E009B0041 /* CommonCryptoExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEFD323A1434B0FB00C14B08 /* CommonCryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4301E111E2580E00EBDD56 /* CommonCryptor.m */; }; - FEFD323B1434B10000C14B08 /* CommonDigest.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4301E311E2580E00EBDD56 /* CommonDigest.m */; }; - FEFD323C1434B10200C14B08 /* CommonHMAC.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4301E511E2580E00EBDD56 /* CommonHMAC.m */; }; - FEFD32531434B1F000C14B08 /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFD32521434B1F000C14B08 /* dllmain.m */; }; - FEFD325B1434B22F00C14B08 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* CommonCrypto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CommonCrypto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B0D51430E70B0071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B0D61430E70B0071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B0D71430E70B0071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B0D81430E70B0071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B0D91430E70B0071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B0DA1430E70B0071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B0DB1430E70B0071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B0DC1430E70B0071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B0DD1430E70B0071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B0DE1430E70B0071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B0DF1430E70B0071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B0E01430E70B0071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B0E11430E70B0071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B0E21430E70B0071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B0E31430E70B0071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE4301E011E2580E00EBDD56 /* CommonCryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonCryptor.h; sourceTree = ""; }; - FE4301E111E2580E00EBDD56 /* CommonCryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommonCryptor.m; sourceTree = ""; }; - FE4301E211E2580E00EBDD56 /* CommonDigest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonDigest.h; sourceTree = ""; }; - FE4301E311E2580E00EBDD56 /* CommonDigest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommonDigest.m; sourceTree = ""; }; - FE4301E411E2580E00EBDD56 /* CommonHMAC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonHMAC.h; sourceTree = ""; }; - FE4301E511E2580E00EBDD56 /* CommonHMAC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommonHMAC.m; sourceTree = ""; }; - FE7085A21431175E00B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FEF5A81C11E4F37E009B0041 /* CommonCryptoExport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonCryptoExport.h; sourceTree = ""; }; - FEFD32521434B1F000C14B08 /* dllmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = dllmain.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFD325B1434B22F00C14B08 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* CommonCrypto.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* CommonCrypto */ = { - isa = PBXGroup; - children = ( - FEFD32521434B1F000C14B08 /* dllmain.m */, - FE06B0D41430E70B0071169B /* xcconfig */, - FEF5A81C11E4F37E009B0041 /* CommonCryptoExport.h */, - FE4301E011E2580E00EBDD56 /* CommonCryptor.h */, - FE4301E111E2580E00EBDD56 /* CommonCryptor.m */, - FE4301E211E2580E00EBDD56 /* CommonDigest.h */, - FE4301E311E2580E00EBDD56 /* CommonDigest.m */, - FE4301E411E2580E00EBDD56 /* CommonHMAC.h */, - FE4301E511E2580E00EBDD56 /* CommonHMAC.m */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = CommonCrypto; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B0D41430E70B0071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE06B0D51430E70B0071169B /* darwin-i386.xcconfig */, - FE06B0D61430E70B0071169B /* darwin-ppc.xcconfig */, - FE06B0D71430E70B0071169B /* darwin-x86_64.xcconfig */, - FE06B0D81430E70B0071169B /* darwin.xcconfig */, - FE06B0D91430E70B0071169B /* freebsd-i386.xcconfig */, - FE06B0DA1430E70B0071169B /* freebsd.xcconfig */, - FE06B0DB1430E70B0071169B /* linux-arm.xcconfig */, - FE06B0DC1430E70B0071169B /* linux-i386.xcconfig */, - FE06B0DD1430E70B0071169B /* linux-ppc.xcconfig */, - FE06B0DE1430E70B0071169B /* linux.xcconfig */, - FE06B0DF1430E70B0071169B /* platform.xcconfig */, - FE06B0E01430E70B0071169B /* solaris-sparc.xcconfig */, - FE06B0E11430E70B0071169B /* solaris.xcconfig */, - FE06B0E21430E70B0071169B /* windows-i386.xcconfig */, - FE06B0E31430E70B0071169B /* windows.xcconfig */, - FE7085A21431175E00B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4301E611E2580E00EBDD56 /* CommonCryptor.h in Headers */, - FE4301E811E2580E00EBDD56 /* CommonDigest.h in Headers */, - FE4301EA11E2580E00EBDD56 /* CommonHMAC.h in Headers */, - FEF5A81D11E4F37E009B0041 /* CommonCryptoExport.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* CommonCrypto-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CommonCrypto-Windows-i386" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "CommonCrypto-Windows-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = CommonCrypto; - productReference = 8DC2EF5B0486A6940098B216 /* CommonCrypto.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CommonCrypto" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* CommonCrypto */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* CommonCrypto-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFD323A1434B0FB00C14B08 /* CommonCryptor.m in Sources */, - FEFD323B1434B10000C14B08 /* CommonDigest.m in Sources */, - FEFD323C1434B10200C14B08 /* CommonHMAC.m in Sources */, - FEFD32531434B1F000C14B08 /* dllmain.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7085A21431175E00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOMMONCRYPTO_INSIDE_BUILD=1", - "$(OTHER_CFLAGS)", - ); - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS)", - "-lssl", - "-lcrypto", - "-lgdi32", - ); - PRODUCT_NAME = CommonCrypto; - }; - name = Release; - }; - 1DEB91B308733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CommonCrypto-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CommonCrypto" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/CommonCrypto/CommonCryptoExport.h b/CommonCrypto/CommonCryptoExport.h deleted file mode 100644 index 109fe1f4..00000000 --- a/CommonCrypto/CommonCryptoExport.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2010 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(COMMONCRYPTO_INSIDE_BUILD) -#define COMMONCRYPTO_EXPORT extern "C" __declspec(dllexport) -#else -#define COMMONCRYPTO_EXPORT extern "C" __declspec(dllimport) -#endif -#else -#define COMMONCRYPTO_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(COMMONCRYPTO_INSIDE_BUILD) -#define COMMONCRYPTO_EXPORT __declspec(dllexport) extern -#else -#define COMMONCRYPTO_EXPORT __declspec(dllimport) extern -#endif -#else -#define COMMONCRYPTO_EXPORT extern -#endif - -#endif // __cplusplus diff --git a/CommonCrypto/CommonCryptor.h b/CommonCrypto/CommonCryptor.h deleted file mode 100644 index 49a0f280..00000000 --- a/CommonCrypto/CommonCryptor.h +++ /dev/null @@ -1,55 +0,0 @@ -#import -#import -#import -#import - -enum { - kCCKeySizeAES128 = 16, - kCCKeySizeAES256 = 32, -}; - -enum { - kCCBlockSizeAES128 = 16, -}; - -enum { - kCCSuccess = 0, - kCCParamError = -4300, - kCCBufferTooSmall = -4301, - kCCMemoryFailure = -4302, - kCCAlignmentError = -4303, - kCCDecodeError = -4304, - kCCUnimplemented = -4305, -}; -typedef int32_t CCCryptorStatus; - -enum { - kCCEncrypt = 0, - kCCDecrypt, -}; -typedef uint32_t CCOperation; - -enum { - kCCAlgorithmAES128 = 0, -}; -typedef uint32_t CCAlgorithm; - -enum { - kCCOptionPKCS7Padding = 0x0001, - kCCOptionECBMode = 0x0002, -}; -typedef uint32_t CCOptions; - -typedef struct CCCryptor *CCCryptorRef; - -COMMONCRYPTO_EXPORT CCCryptorStatus CCCryptorCreate(CCOperation operation, CCAlgorithm algorithm, CCOptions options, const void *key, size_t keyLength, const void *initVector, CCCryptorRef *result); - -COMMONCRYPTO_EXPORT CCCryptorStatus CCCryptorRelease(CCCryptorRef cryptor); - -COMMONCRYPTO_EXPORT size_t CCCryptorGetOutputLength(CCCryptorRef cryptor, size_t inputLength, bool final); - -COMMONCRYPTO_EXPORT CCCryptorStatus CCCryptorUpdate(CCCryptorRef cryptor, const void *dataIn, size_t dataInLength, void *dataOut, size_t dataOutAvailable, size_t *dataOutMoved); - -COMMONCRYPTO_EXPORT CCCryptorStatus CCCryptorFinal(CCCryptorRef cryptor, void *dataOut, size_t dataOutAvailable, size_t *dataOutMoved); - -COMMONCRYPTO_EXPORT CCCryptorStatus CCCrypt(CCOperation operation, CCAlgorithm algorithm, CCOptions options, const void *key, size_t keyLength, const void *initVector, const void *dataIn, size_t dataInLength, void *dataOut, size_t dataOutAvailable, size_t *dataOutMoved); diff --git a/CommonCrypto/CommonCryptor.m b/CommonCrypto/CommonCryptor.m deleted file mode 100644 index c373c7fc..00000000 --- a/CommonCrypto/CommonCryptor.m +++ /dev/null @@ -1,128 +0,0 @@ -#import -#import -#import - -struct CCCryptor { - CCOperation operation; - EVP_CIPHER_CTX *context; - const EVP_CIPHER *cipher; -}; - -CCCryptorStatus CCCryptorCreate(CCOperation operation, CCAlgorithm algorithm, - CCOptions options, const void *key, - size_t keyLength, const void *initVector, - CCCryptorRef *result) -{ - CCCryptorRef self = malloc(sizeof(struct CCCryptor)); - - self->operation = operation; - self->context = malloc(sizeof(EVP_CIPHER_CTX)); - EVP_CIPHER_CTX_init(self->context); - - self->cipher = NULL; - - switch (algorithm) { - - case kCCAlgorithmAES128: - if (options & kCCOptionECBMode) { - if (keyLength == kCCKeySizeAES128) - self->cipher = EVP_aes_128_ecb(); - else if (keyLength == kCCKeySizeAES256) - self->cipher = EVP_aes_256_ecb(); - } else { - if (keyLength == kCCKeySizeAES128) - self->cipher = EVP_aes_128_cbc(); - else if (keyLength == kCCKeySizeAES256) - self->cipher = EVP_aes_256_cbc(); - } - break; - } - - if (self->cipher == NULL) { - NSLog(@"%s %d cipher==NULL", __FILE__, __LINE__); - return kCCUnimplemented; - } - - if (operation == kCCEncrypt) { - EVP_EncryptInit_ex(self->context, self->cipher, NULL, key, initVector); - } else { - EVP_DecryptInit_ex(self->context, self->cipher, NULL, key, initVector); - } - - *result = self; - - return kCCSuccess; -} - -CCCryptorStatus CCCryptorRelease(CCCryptorRef self) { - EVP_CIPHER_CTX_cleanup(self->context); - free(self->context); - free(self); - return kCCSuccess; -} - -size_t CCCryptorGetOutputLength(CCCryptorRef self, size_t inputLength, - bool final) -{ - int blockSize = EVP_CIPHER_block_size(self->cipher); - - return inputLength + blockSize - 1; -} - -CCCryptorStatus CCCryptorUpdate(CCCryptorRef self, const void *dataIn, - size_t dataInLength, void *dataOut, - size_t dataOutAvailable, size_t *dataOutMoved) -{ - - if (self->operation == kCCEncrypt) { - int outSize; - EVP_EncryptUpdate(self->context, dataOut, &outSize, dataIn, - dataInLength); - *dataOutMoved = outSize; - } else { - int outSize; - EVP_DecryptUpdate(self->context, dataOut, &outSize, dataIn, - dataInLength); - *dataOutMoved = outSize; - } - - return kCCSuccess; -} - -CCCryptorStatus CCCryptorFinal(CCCryptorRef self, void *dataOut, - size_t dataOutAvailable, size_t *dataOutMoved) -{ - if (self->operation == kCCEncrypt) { - int outSize; - EVP_EncryptFinal_ex(self->context, dataOut, &outSize); - *dataOutMoved = outSize; - } else { - int outSize; - EVP_DecryptFinal_ex(self->context, dataOut, &outSize); - *dataOutMoved = outSize; - } - - return kCCSuccess; -} - -CCCryptorStatus CCCrypt(CCOperation operation, CCAlgorithm algorithm, - CCOptions options, const void *key, size_t keyLength, - const void *initVector, const void *dataIn, - size_t dataInLength, void *dataOut, - size_t dataOutAvailable, size_t *dataOutMoved) -{ - CCCryptorRef cryptor; - - CCCryptorCreate(operation, algorithm, options, key, keyLength, initVector, - &cryptor); - CCCryptorUpdate(cryptor, dataIn, dataInLength, dataOut, dataOutAvailable, - dataOutMoved); - size_t dataOutChunk = 0; - if (options & kCCOptionPKCS7Padding) { - CCCryptorFinal(cryptor, dataOut + *dataOutMoved, - dataOutAvailable - *dataOutMoved, &dataOutChunk); - *dataOutMoved += dataOutChunk; - } - - return kCCSuccess; -} diff --git a/CommonCrypto/CommonDigest.h b/CommonCrypto/CommonDigest.h deleted file mode 100644 index f9bae44f..00000000 --- a/CommonCrypto/CommonDigest.h +++ /dev/null @@ -1 +0,0 @@ -#import diff --git a/CommonCrypto/CommonDigest.m b/CommonCrypto/CommonDigest.m deleted file mode 100644 index e69de29b..00000000 diff --git a/CommonCrypto/CommonHMAC.h b/CommonCrypto/CommonHMAC.h deleted file mode 100644 index ea0b49dd..00000000 --- a/CommonCrypto/CommonHMAC.h +++ /dev/null @@ -1,20 +0,0 @@ -#import - -#import - -#define CC_SHA1_DIGEST_LENGTH 20 - -typedef enum { - kCCHmacAlgSHA1, -} CCHmacAlgorithm; - -typedef struct { - void *sslContext; -} CCHmacContext; - -COMMONCRYPTO_EXPORT void CCHmacInit(CCHmacContext *context, CCHmacAlgorithm algorithm, const void *key, size_t keyLength); - -COMMONCRYPTO_EXPORT void CCHmacUpdate(CCHmacContext *context, const void *data, size_t dataLength); -COMMONCRYPTO_EXPORT void CCHmacFinal(CCHmacContext *context, void *macOut); - -COMMONCRYPTO_EXPORT void CCHmac(CCHmacAlgorithm algorithm, const void *key, size_t keyLength, const void *data, size_t dataLength, void *macOut); diff --git a/CommonCrypto/CommonHMAC.m b/CommonCrypto/CommonHMAC.m deleted file mode 100644 index 3c45c6fe..00000000 --- a/CommonCrypto/CommonHMAC.m +++ /dev/null @@ -1,34 +0,0 @@ -#import -#import -#import -#import - -void CCHmacInit(CCHmacContext *context, CCHmacAlgorithm algorithm, - const void *key, size_t keyLength) -{ - context->sslContext = malloc(sizeof(HMAC_CTX)); - HMAC_CTX_init(context->sslContext); - HMAC_Init(context->sslContext, key, keyLength, EVP_sha1()); -} - -void CCHmacUpdate(CCHmacContext *context, const void *bytes, size_t len) { - HMAC_Update(context->sslContext, bytes, len); -} - -void CCHmacFinal(CCHmacContext *context, void *macOut) { - unsigned len = 0; - - HMAC_Final(context->sslContext, macOut, &len); - HMAC_CTX_cleanup(context->sslContext); - free(context->sslContext); -} - -void CCHmac(CCHmacAlgorithm algorithm, const void *key, size_t keyLength, - const void *data, size_t dataLength, void *macOut) -{ - CCHmacContext context; - - CCHmacInit(&context, algorithm, key, keyLength); - CCHmacUpdate(&context, data, dataLength); - CCHmacFinal(&context, macOut); -} diff --git a/CommonCrypto/English.lproj/InfoPlist.strings b/CommonCrypto/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/CommonCrypto/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/CommonCrypto/Info.plist b/CommonCrypto/Info.plist deleted file mode 100644 index 49168a1f..00000000 --- a/CommonCrypto/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleName - ${PRODUCT_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1 - CFBundleShortVersionString - 1.0 - NSPrincipalClass - - - diff --git a/CommonCrypto/dllmain.m b/CommonCrypto/dllmain.m deleted file mode 100644 index 12c0a2a8..00000000 --- a/CommonCrypto/dllmain.m +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -int OBJCRegisterDLL(HINSTANCE handle); - -int APIENTRY DllMain(HINSTANCE handle, DWORD reason, LPVOID _reserved) { - - if (reason == DLL_PROCESS_ATTACH) - return OBJCRegisterDLL(handle); - - if (reason == DLL_THREAD_DETACH) { - return TRUE; - } - return TRUE; -} diff --git a/CoreData/CoreData.xcodeproj/project.pbxproj b/CoreData/CoreData.xcodeproj/project.pbxproj deleted file mode 100644 index 47e6165b..00000000 --- a/CoreData/CoreData.xcodeproj/project.pbxproj +++ /dev/null @@ -1,536 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - FE06432B121AD56400373F23 /* NSManagedObjectSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FE064327121AD56400373F23 /* NSManagedObjectSet.h */; }; - FE06432C121AD56400373F23 /* NSManagedObjectSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FE064328121AD56400373F23 /* NSManagedObjectSet.m */; }; - FE06432D121AD56400373F23 /* NSManagedObjectSetEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = FE064329121AD56400373F23 /* NSManagedObjectSetEnumerator.h */; }; - FE06432E121AD56400373F23 /* NSManagedObjectSetEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = FE06432A121AD56400373F23 /* NSManagedObjectSetEnumerator.m */; }; - FE06433F121AD7C200373F23 /* NSManagedObjectMutableSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FE06433D121AD7C200373F23 /* NSManagedObjectMutableSet.h */; }; - FE064340121AD7C200373F23 /* NSManagedObjectMutableSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FE06433E121AD7C200373F23 /* NSManagedObjectMutableSet.m */; }; - FE1FBEF311E6692400A9A87A /* NSAtomicStore.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1FBEED11E6692400A9A87A /* NSAtomicStore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE1FBEF411E6692400A9A87A /* NSAtomicStore.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1FBEEE11E6692400A9A87A /* NSAtomicStore.m */; }; - FE1FBEF511E6692400A9A87A /* NSAtomicStoreCacheNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1FBEEF11E6692400A9A87A /* NSAtomicStoreCacheNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE1FBEF611E6692400A9A87A /* NSAtomicStoreCacheNode.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1FBEF011E6692400A9A87A /* NSAtomicStoreCacheNode.m */; }; - FE1FBEF711E6692400A9A87A /* NSPersistentStore.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1FBEF111E6692400A9A87A /* NSPersistentStore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE1FBEF811E6692400A9A87A /* NSPersistentStore.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1FBEF211E6692400A9A87A /* NSPersistentStore.m */; }; - FE1FC22911E8116200A9A87A /* NSInMemoryPersistentStore.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1FC22511E8116200A9A87A /* NSInMemoryPersistentStore.h */; }; - FE1FC22A11E8116200A9A87A /* NSInMemoryPersistentStore.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1FC22611E8116200A9A87A /* NSInMemoryPersistentStore.m */; }; - FE1FC22B11E8116200A9A87A /* NSXMLPersistentStore.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1FC22711E8116200A9A87A /* NSXMLPersistentStore.h */; }; - FE1FC22C11E8116200A9A87A /* NSXMLPersistentStore.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1FC22811E8116200A9A87A /* NSXMLPersistentStore.m */; }; - FE21313A0DBFC72700CEDC65 /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2131390DBFC72700CEDC65 /* dllmain.m */; }; - FE2131420DBFC74200CEDC65 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - FE2132900DBFD21900CEDC65 /* CoreDataExports.h in Headers */ = {isa = PBXBuildFile; fileRef = FE21328F0DBFD21900CEDC65 /* CoreDataExports.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE2132920DBFD22000CEDC65 /* CoreData.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2132910DBFD22000CEDC65 /* CoreData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3D40BF1042F00B18B54 /* NSAttributeDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3BE0BF1042F00B18B54 /* NSAttributeDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3D50BF1042F00B18B54 /* NSAttributeDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3BF0BF1042F00B18B54 /* NSAttributeDescription.m */; }; - FE82F3D60BF1042F00B18B54 /* NSEntityDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3C00BF1042F00B18B54 /* NSEntityDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3D70BF1042F00B18B54 /* NSEntityDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3C10BF1042F00B18B54 /* NSEntityDescription.m */; }; - FE82F3D80BF1042F00B18B54 /* NSFetchedPropertyDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3C20BF1042F00B18B54 /* NSFetchedPropertyDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3D90BF1042F00B18B54 /* NSFetchedPropertyDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3C30BF1042F00B18B54 /* NSFetchedPropertyDescription.m */; }; - FE82F3DA0BF1042F00B18B54 /* NSFetchRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3C40BF1042F00B18B54 /* NSFetchRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3DB0BF1042F00B18B54 /* NSFetchRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3C50BF1042F00B18B54 /* NSFetchRequest.m */; }; - FE82F3DC0BF1042F00B18B54 /* NSManagedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3C60BF1042F00B18B54 /* NSManagedObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3DD0BF1042F00B18B54 /* NSManagedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3C70BF1042F00B18B54 /* NSManagedObject.m */; }; - FE82F3DE0BF1042F00B18B54 /* NSManagedObjectContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3C80BF1042F00B18B54 /* NSManagedObjectContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3DF0BF1042F00B18B54 /* NSManagedObjectContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3C90BF1042F00B18B54 /* NSManagedObjectContext.m */; }; - FE82F3E00BF1042F00B18B54 /* NSManagedObjectID.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3CA0BF1042F00B18B54 /* NSManagedObjectID.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3E10BF1042F00B18B54 /* NSManagedObjectID.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3CB0BF1042F00B18B54 /* NSManagedObjectID.m */; }; - FE82F3E20BF1042F00B18B54 /* NSManagedObjectModel.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3CC0BF1042F00B18B54 /* NSManagedObjectModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3E30BF1042F00B18B54 /* NSManagedObjectModel.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3CD0BF1042F00B18B54 /* NSManagedObjectModel.m */; }; - FE82F3E40BF1042F00B18B54 /* NSPersistentStoreCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3CE0BF1042F00B18B54 /* NSPersistentStoreCoordinator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3E50BF1042F00B18B54 /* NSPersistentStoreCoordinator.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3CF0BF1042F00B18B54 /* NSPersistentStoreCoordinator.m */; }; - FE82F3E60BF1042F00B18B54 /* NSPropertyDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3D00BF1042F00B18B54 /* NSPropertyDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3E70BF1042F00B18B54 /* NSPropertyDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3D10BF1042F00B18B54 /* NSPropertyDescription.m */; }; - FE82F3E80BF1042F00B18B54 /* NSRelationshipDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FE82F3D20BF1042F00B18B54 /* NSRelationshipDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE82F3E90BF1042F00B18B54 /* NSRelationshipDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = FE82F3D30BF1042F00B18B54 /* NSRelationshipDescription.m */; }; - FEA2C93012077436003B1BB9 /* NSManagedObject-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA2C92E12077436003B1BB9 /* NSManagedObject-Private.h */; }; - FEA2C93112077436003B1BB9 /* NSManagedObjectID-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA2C92F12077436003B1BB9 /* NSManagedObjectID-Private.h */; }; - FEDE4B951208545A003D3EF1 /* NSPersistentStoreCoordinator-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDE4B941208545A003D3EF1 /* NSPersistentStoreCoordinator-Private.h */; }; - FEDE4E5112089EDC003D3EF1 /* CoreDataErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDE4E4F12089EDC003D3EF1 /* CoreDataErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDE4E5212089EDC003D3EF1 /* CoreDataErrors.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDE4E5012089EDC003D3EF1 /* CoreDataErrors.m */; }; - FEDE51FE1209B1A0003D3EF1 /* NSManagedObjectContext-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDE51FD1209B1A0003D3EF1 /* NSManagedObjectContext-Private.h */; }; - FEDE52F61209C3AE003D3EF1 /* NSEntityDescription-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDE52F51209C3AE003D3EF1 /* NSEntityDescription-Private.h */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE39C6841203D5F800A80A71 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE59F2FF0D54301C00D54A25 /* Foundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A5970C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE59F30F0D54301D00D54A25 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE59F2FF0D54301C00D54A25 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A7EC0C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* CoreData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE064327121AD56400373F23 /* NSManagedObjectSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSManagedObjectSet.h; sourceTree = ""; }; - FE064328121AD56400373F23 /* NSManagedObjectSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectSet.m; sourceTree = ""; }; - FE064329121AD56400373F23 /* NSManagedObjectSetEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSManagedObjectSetEnumerator.h; sourceTree = ""; }; - FE06432A121AD56400373F23 /* NSManagedObjectSetEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectSetEnumerator.m; sourceTree = ""; }; - FE06433D121AD7C200373F23 /* NSManagedObjectMutableSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSManagedObjectMutableSet.h; sourceTree = ""; }; - FE06433E121AD7C200373F23 /* NSManagedObjectMutableSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectMutableSet.m; sourceTree = ""; }; - FE06B1221430E7390071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B1231430E7390071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B1241430E7390071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B1251430E7390071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B1261430E7390071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B1271430E7390071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B1281430E7390071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B1291430E7390071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B12A1430E7390071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B12B1430E7390071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B12C1430E7390071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B12D1430E7390071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B12E1430E7390071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B12F1430E7390071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B1301430E7390071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE1FBEED11E6692400A9A87A /* NSAtomicStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAtomicStore.h; sourceTree = ""; }; - FE1FBEEE11E6692400A9A87A /* NSAtomicStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSAtomicStore.m; sourceTree = ""; }; - FE1FBEEF11E6692400A9A87A /* NSAtomicStoreCacheNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAtomicStoreCacheNode.h; sourceTree = ""; }; - FE1FBEF011E6692400A9A87A /* NSAtomicStoreCacheNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSAtomicStoreCacheNode.m; sourceTree = ""; }; - FE1FBEF111E6692400A9A87A /* NSPersistentStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPersistentStore.h; sourceTree = ""; }; - FE1FBEF211E6692400A9A87A /* NSPersistentStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPersistentStore.m; sourceTree = ""; }; - FE1FC22511E8116200A9A87A /* NSInMemoryPersistentStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSInMemoryPersistentStore.h; sourceTree = ""; }; - FE1FC22611E8116200A9A87A /* NSInMemoryPersistentStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSInMemoryPersistentStore.m; sourceTree = ""; }; - FE1FC22711E8116200A9A87A /* NSXMLPersistentStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSXMLPersistentStore.h; sourceTree = ""; }; - FE1FC22811E8116200A9A87A /* NSXMLPersistentStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSXMLPersistentStore.m; sourceTree = ""; }; - FE2131390DBFC72700CEDC65 /* dllmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = dllmain.m; sourceTree = ""; }; - FE21328F0DBFD21900CEDC65 /* CoreDataExports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreDataExports.h; sourceTree = ""; }; - FE2132910DBFD22000CEDC65 /* CoreData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreData.h; sourceTree = ""; }; - FE59F2FF0D54301C00D54A25 /* Foundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Foundation.xcodeproj; path = ../Foundation/Foundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE7085CF1431178000B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE82F3BE0BF1042F00B18B54 /* NSAttributeDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAttributeDescription.h; sourceTree = ""; }; - FE82F3BF0BF1042F00B18B54 /* NSAttributeDescription.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAttributeDescription.m; sourceTree = ""; }; - FE82F3C00BF1042F00B18B54 /* NSEntityDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSEntityDescription.h; sourceTree = ""; }; - FE82F3C10BF1042F00B18B54 /* NSEntityDescription.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSEntityDescription.m; sourceTree = ""; }; - FE82F3C20BF1042F00B18B54 /* NSFetchedPropertyDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFetchedPropertyDescription.h; sourceTree = ""; }; - FE82F3C30BF1042F00B18B54 /* NSFetchedPropertyDescription.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFetchedPropertyDescription.m; sourceTree = ""; }; - FE82F3C40BF1042F00B18B54 /* NSFetchRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFetchRequest.h; sourceTree = ""; }; - FE82F3C50BF1042F00B18B54 /* NSFetchRequest.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFetchRequest.m; sourceTree = ""; }; - FE82F3C60BF1042F00B18B54 /* NSManagedObject.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSManagedObject.h; sourceTree = ""; }; - FE82F3C70BF1042F00B18B54 /* NSManagedObject.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSManagedObject.m; sourceTree = ""; }; - FE82F3C80BF1042F00B18B54 /* NSManagedObjectContext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSManagedObjectContext.h; sourceTree = ""; }; - FE82F3C90BF1042F00B18B54 /* NSManagedObjectContext.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectContext.m; sourceTree = ""; }; - FE82F3CA0BF1042F00B18B54 /* NSManagedObjectID.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSManagedObjectID.h; sourceTree = ""; }; - FE82F3CB0BF1042F00B18B54 /* NSManagedObjectID.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectID.m; sourceTree = ""; }; - FE82F3CC0BF1042F00B18B54 /* NSManagedObjectModel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSManagedObjectModel.h; sourceTree = ""; }; - FE82F3CD0BF1042F00B18B54 /* NSManagedObjectModel.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSManagedObjectModel.m; sourceTree = ""; }; - FE82F3CE0BF1042F00B18B54 /* NSPersistentStoreCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPersistentStoreCoordinator.h; sourceTree = ""; }; - FE82F3CF0BF1042F00B18B54 /* NSPersistentStoreCoordinator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPersistentStoreCoordinator.m; sourceTree = ""; }; - FE82F3D00BF1042F00B18B54 /* NSPropertyDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPropertyDescription.h; sourceTree = ""; }; - FE82F3D10BF1042F00B18B54 /* NSPropertyDescription.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPropertyDescription.m; sourceTree = ""; }; - FE82F3D20BF1042F00B18B54 /* NSRelationshipDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSRelationshipDescription.h; sourceTree = ""; }; - FE82F3D30BF1042F00B18B54 /* NSRelationshipDescription.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSRelationshipDescription.m; sourceTree = ""; }; - FEA2C92E12077436003B1BB9 /* NSManagedObject-Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObject-Private.h"; sourceTree = ""; }; - FEA2C92F12077436003B1BB9 /* NSManagedObjectID-Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObjectID-Private.h"; sourceTree = ""; }; - FEC0A3681709354A002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3691709354A002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A36A1709354A002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A36B1709354A002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A36C1709354A002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A36D1709354A002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A36E1709354A002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A36F1709354A002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEDE4B941208545A003D3EF1 /* NSPersistentStoreCoordinator-Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSPersistentStoreCoordinator-Private.h"; sourceTree = ""; }; - FEDE4E4F12089EDC003D3EF1 /* CoreDataErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreDataErrors.h; sourceTree = ""; }; - FEDE4E5012089EDC003D3EF1 /* CoreDataErrors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CoreDataErrors.m; sourceTree = ""; }; - FEDE51FD1209B1A0003D3EF1 /* NSManagedObjectContext-Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObjectContext-Private.h"; sourceTree = ""; }; - FEDE52F51209C3AE003D3EF1 /* NSEntityDescription-Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSEntityDescription-Private.h"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE2131420DBFC74200CEDC65 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* CoreData.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* CoreData */ = { - isa = PBXGroup; - children = ( - FE06B1211430E7390071169B /* xcconfig */, - FE06433D121AD7C200373F23 /* NSManagedObjectMutableSet.h */, - FE06433E121AD7C200373F23 /* NSManagedObjectMutableSet.m */, - FE064327121AD56400373F23 /* NSManagedObjectSet.h */, - FE064328121AD56400373F23 /* NSManagedObjectSet.m */, - FE064329121AD56400373F23 /* NSManagedObjectSetEnumerator.h */, - FE06432A121AD56400373F23 /* NSManagedObjectSetEnumerator.m */, - FEDE52F51209C3AE003D3EF1 /* NSEntityDescription-Private.h */, - FEDE51FD1209B1A0003D3EF1 /* NSManagedObjectContext-Private.h */, - FEDE4E4F12089EDC003D3EF1 /* CoreDataErrors.h */, - FEDE4E5012089EDC003D3EF1 /* CoreDataErrors.m */, - FEDE4B941208545A003D3EF1 /* NSPersistentStoreCoordinator-Private.h */, - FEA2C92E12077436003B1BB9 /* NSManagedObject-Private.h */, - FEA2C92F12077436003B1BB9 /* NSManagedObjectID-Private.h */, - 08FB77AEFE84172EC02AAC07 /* Classes */, - FE2132910DBFD22000CEDC65 /* CoreData.h */, - FE21328F0DBFD21900CEDC65 /* CoreDataExports.h */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - FE59F2FF0D54301C00D54A25 /* Foundation.xcodeproj */, - FE1FBEED11E6692400A9A87A /* NSAtomicStore.h */, - FE1FBEEE11E6692400A9A87A /* NSAtomicStore.m */, - FE1FBEEF11E6692400A9A87A /* NSAtomicStoreCacheNode.h */, - FE1FBEF011E6692400A9A87A /* NSAtomicStoreCacheNode.m */, - FE82F3BE0BF1042F00B18B54 /* NSAttributeDescription.h */, - FE82F3BF0BF1042F00B18B54 /* NSAttributeDescription.m */, - FE82F3C00BF1042F00B18B54 /* NSEntityDescription.h */, - FE82F3C10BF1042F00B18B54 /* NSEntityDescription.m */, - FE82F3C20BF1042F00B18B54 /* NSFetchedPropertyDescription.h */, - FE82F3C30BF1042F00B18B54 /* NSFetchedPropertyDescription.m */, - FE82F3C40BF1042F00B18B54 /* NSFetchRequest.h */, - FE82F3C50BF1042F00B18B54 /* NSFetchRequest.m */, - FE1FC22511E8116200A9A87A /* NSInMemoryPersistentStore.h */, - FE1FC22611E8116200A9A87A /* NSInMemoryPersistentStore.m */, - FE82F3C60BF1042F00B18B54 /* NSManagedObject.h */, - FE82F3C70BF1042F00B18B54 /* NSManagedObject.m */, - FE82F3C80BF1042F00B18B54 /* NSManagedObjectContext.h */, - FE82F3C90BF1042F00B18B54 /* NSManagedObjectContext.m */, - FE82F3CA0BF1042F00B18B54 /* NSManagedObjectID.h */, - FE82F3CB0BF1042F00B18B54 /* NSManagedObjectID.m */, - FE82F3CC0BF1042F00B18B54 /* NSManagedObjectModel.h */, - FE82F3CD0BF1042F00B18B54 /* NSManagedObjectModel.m */, - FE1FBEF111E6692400A9A87A /* NSPersistentStore.h */, - FE1FBEF211E6692400A9A87A /* NSPersistentStore.m */, - FE82F3CE0BF1042F00B18B54 /* NSPersistentStoreCoordinator.h */, - FE82F3CF0BF1042F00B18B54 /* NSPersistentStoreCoordinator.m */, - FE82F3D00BF1042F00B18B54 /* NSPropertyDescription.h */, - FE82F3D10BF1042F00B18B54 /* NSPropertyDescription.m */, - FE82F3D20BF1042F00B18B54 /* NSRelationshipDescription.h */, - FE82F3D30BF1042F00B18B54 /* NSRelationshipDescription.m */, - FE1FC22711E8116200A9A87A /* NSXMLPersistentStore.h */, - FE1FC22811E8116200A9A87A /* NSXMLPersistentStore.m */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 034768DFFF38A50411DB9C8B /* Products */, - 089C1665FE841158C02AAC07 /* Resources */, - ); - indentWidth = 4; - name = CoreData; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AEFE84172EC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - FE2131390DBFC72700CEDC65 /* dllmain.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B1211430E7390071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A3681709354A002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A3691709354A002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A36A1709354A002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A36B1709354A002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A36C1709354A002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A36D1709354A002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A36E1709354A002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A36F1709354A002A60B7 /* solaris-sparc-framework.xcconfig */, - FE06B1221430E7390071169B /* darwin-i386.xcconfig */, - FE06B1231430E7390071169B /* darwin-ppc.xcconfig */, - FE06B1241430E7390071169B /* darwin-x86_64.xcconfig */, - FE06B1251430E7390071169B /* darwin.xcconfig */, - FE06B1261430E7390071169B /* freebsd-i386.xcconfig */, - FE06B1271430E7390071169B /* freebsd.xcconfig */, - FE06B1281430E7390071169B /* linux-arm.xcconfig */, - FE06B1291430E7390071169B /* linux-i386.xcconfig */, - FE06B12A1430E7390071169B /* linux-ppc.xcconfig */, - FE06B12B1430E7390071169B /* linux.xcconfig */, - FE06B12C1430E7390071169B /* platform.xcconfig */, - FE06B12D1430E7390071169B /* solaris-sparc.xcconfig */, - FE06B12E1430E7390071169B /* solaris.xcconfig */, - FE06B12F1430E7390071169B /* windows-i386.xcconfig */, - FE06B1301430E7390071169B /* windows.xcconfig */, - FE7085CF1431178000B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE59F3000D54301C00D54A25 /* Products */ = { - isa = PBXGroup; - children = ( - FE59F3100D54301D00D54A25 /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE82F3D40BF1042F00B18B54 /* NSAttributeDescription.h in Headers */, - FE82F3D60BF1042F00B18B54 /* NSEntityDescription.h in Headers */, - FE82F3D80BF1042F00B18B54 /* NSFetchedPropertyDescription.h in Headers */, - FE82F3DA0BF1042F00B18B54 /* NSFetchRequest.h in Headers */, - FE82F3DC0BF1042F00B18B54 /* NSManagedObject.h in Headers */, - FE82F3DE0BF1042F00B18B54 /* NSManagedObjectContext.h in Headers */, - FE82F3E00BF1042F00B18B54 /* NSManagedObjectID.h in Headers */, - FE82F3E20BF1042F00B18B54 /* NSManagedObjectModel.h in Headers */, - FE82F3E40BF1042F00B18B54 /* NSPersistentStoreCoordinator.h in Headers */, - FE82F3E60BF1042F00B18B54 /* NSPropertyDescription.h in Headers */, - FE82F3E80BF1042F00B18B54 /* NSRelationshipDescription.h in Headers */, - FE2132900DBFD21900CEDC65 /* CoreDataExports.h in Headers */, - FE2132920DBFD22000CEDC65 /* CoreData.h in Headers */, - FE1FBEF311E6692400A9A87A /* NSAtomicStore.h in Headers */, - FE1FBEF511E6692400A9A87A /* NSAtomicStoreCacheNode.h in Headers */, - FE1FBEF711E6692400A9A87A /* NSPersistentStore.h in Headers */, - FE1FC22911E8116200A9A87A /* NSInMemoryPersistentStore.h in Headers */, - FE1FC22B11E8116200A9A87A /* NSXMLPersistentStore.h in Headers */, - FEA2C93012077436003B1BB9 /* NSManagedObject-Private.h in Headers */, - FEA2C93112077436003B1BB9 /* NSManagedObjectID-Private.h in Headers */, - FEDE4B951208545A003D3EF1 /* NSPersistentStoreCoordinator-Private.h in Headers */, - FEDE4E5112089EDC003D3EF1 /* CoreDataErrors.h in Headers */, - FEDE51FE1209B1A0003D3EF1 /* NSManagedObjectContext-Private.h in Headers */, - FEDE52F61209C3AE003D3EF1 /* NSEntityDescription-Private.h in Headers */, - FE06432B121AD56400373F23 /* NSManagedObjectSet.h in Headers */, - FE06432D121AD56400373F23 /* NSManagedObjectSetEnumerator.h in Headers */, - FE06433F121AD7C200373F23 /* NSManagedObjectMutableSet.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* CoreData */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreData" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - FE39C6851203D5F800A80A71 /* PBXTargetDependency */, - ); - name = CoreData; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = CoreData; - productReference = 8DC2EF5B0486A6940098B216 /* CoreData.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreData" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* CoreData */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE59F3000D54301C00D54A25 /* Products */; - ProjectRef = FE59F2FF0D54301C00D54A25 /* Foundation.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* CoreData */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE59F3100D54301D00D54A25 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE59F30F0D54301D00D54A25 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE82F3D50BF1042F00B18B54 /* NSAttributeDescription.m in Sources */, - FE82F3D70BF1042F00B18B54 /* NSEntityDescription.m in Sources */, - FE82F3D90BF1042F00B18B54 /* NSFetchedPropertyDescription.m in Sources */, - FE82F3DB0BF1042F00B18B54 /* NSFetchRequest.m in Sources */, - FE82F3DD0BF1042F00B18B54 /* NSManagedObject.m in Sources */, - FE82F3DF0BF1042F00B18B54 /* NSManagedObjectContext.m in Sources */, - FE82F3E10BF1042F00B18B54 /* NSManagedObjectID.m in Sources */, - FE82F3E30BF1042F00B18B54 /* NSManagedObjectModel.m in Sources */, - FE82F3E50BF1042F00B18B54 /* NSPersistentStoreCoordinator.m in Sources */, - FE82F3E70BF1042F00B18B54 /* NSPropertyDescription.m in Sources */, - FE82F3E90BF1042F00B18B54 /* NSRelationshipDescription.m in Sources */, - FE21313A0DBFC72700CEDC65 /* dllmain.m in Sources */, - FE1FBEF411E6692400A9A87A /* NSAtomicStore.m in Sources */, - FE1FBEF611E6692400A9A87A /* NSAtomicStoreCacheNode.m in Sources */, - FE1FBEF811E6692400A9A87A /* NSPersistentStore.m in Sources */, - FE1FC22A11E8116200A9A87A /* NSInMemoryPersistentStore.m in Sources */, - FE1FC22C11E8116200A9A87A /* NSXMLPersistentStore.m in Sources */, - FEDE4E5212089EDC003D3EF1 /* CoreDataErrors.m in Sources */, - FE06432C121AD56400373F23 /* NSManagedObjectSet.m in Sources */, - FE06432E121AD56400373F23 /* NSManagedObjectSetEnumerator.m in Sources */, - FE064340121AD7C200373F23 /* NSManagedObjectMutableSet.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE39C6851203D5F800A80A71 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Foundation-Windows-i386"; - targetProxy = FE39C6841203D5F800A80A71 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AE08733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7085CF1431178000B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DCOREDATA_INSIDE_BUILD", - "$(OTHER_CFLAGS)", - ); - PRODUCT_NAME = CoreData; - }; - name = "Windows-i386"; - }; - 1DEB91B208733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreData" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AE08733DA50010E9CD /* Windows-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreData" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B208733DA50010E9CD /* Windows-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/CoreGraphics/CoreGraphics.xcodeproj/project.pbxproj b/CoreGraphics/CoreGraphics.xcodeproj/project.pbxproj deleted file mode 100644 index 80626631..00000000 --- a/CoreGraphics/CoreGraphics.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1138 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - FE2752DC12301F4500BD6643 /* CGLPixelSurface.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2752DA12301F4500BD6643 /* CGLPixelSurface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE39C40E120357EA00A80A71 /* O2ClipState.h in Headers */ = {isa = PBXBuildFile; fileRef = FE39C40C120357EA00A80A71 /* O2ClipState.h */; }; - FE3C853D108779410018252A /* O2AffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3C8539108779410018252A /* O2AffineTransform.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE3C853F108779410018252A /* O2Geometry.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3C853B108779410018252A /* O2Geometry.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE3C85961087928D0018252A /* CGConversions.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3C85951087928D0018252A /* CGConversions.h */; }; - FE43BE4711FFBAC100119833 /* O2PDFBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43BE4511FFBAC100119833 /* O2PDFBlock.h */; }; - FE44BDE511EBA0D400762BF1 /* O2ImageSource_ICNS.h in Headers */ = {isa = PBXBuildFile; fileRef = FE44BDE311EBA0D400762BF1 /* O2ImageSource_ICNS.h */; }; - FE5ADA6C12BBFF8500A922A2 /* CGWindowLevel.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5ADA6B12BBFF8500A922A2 /* CGWindowLevel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE71ED8911FA88E700E6F801 /* O2PDFFunction_Type4.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71ED8711FA88E700E6F801 /* O2PDFFunction_Type4.h */; }; - FE71EF3A11FBCAA000E6F801 /* O2Encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71EF3811FBCAA000E6F801 /* O2Encoding.h */; }; - FE71F0DA11FC7CEC00E6F801 /* O2PDFCharWidths.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F0D811FC7CEC00E6F801 /* O2PDFCharWidths.h */; }; - FE71F26D11FD220400E6F801 /* O2PDFFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F26911FD220400E6F801 /* O2PDFFont.h */; }; - FE71F26F11FD220400E6F801 /* O2PDFFunction_Type0.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F26B11FD220400E6F801 /* O2PDFFunction_Type0.h */; }; - FE71F41311FDD43700E6F801 /* O2TTFDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F41111FDD43700E6F801 /* O2TTFDecoder.h */; }; - FE8C021010C59BB300FE4072 /* CGImageDestination.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8C020A10C59BB300FE4072 /* CGImageDestination.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE8C021210C59BB300FE4072 /* O2Encoder_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8C020C10C59BB300FE4072 /* O2Encoder_TIFF.h */; }; - FE8C021410C59BB300FE4072 /* O2ImageDestination.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8C020E10C59BB300FE4072 /* O2ImageDestination.h */; }; - FE9DB4610FD6C38300A1CE17 /* CGDataConsumer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9DB45F0FD6C38300A1CE17 /* CGDataConsumer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAE004411E4E6AD00CA0912 /* CGDirectDisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAE004211E4E6AD00CA0912 /* CGDirectDisplay.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAED7100FD6C40E0043F915 /* O2DataConsumer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAED70E0FD6C40E0043F915 /* O2DataConsumer.h */; }; - FEAED71C0FD6C4460043F915 /* CGPDFContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAED71A0FD6C4460043F915 /* CGPDFContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEBF5BCF100D8B2C00F64C71 /* O2LZW.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF5BCD100D8B2C00F64C71 /* O2LZW.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11AE80FD4B4D600082282 /* CGAffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A380FD4B4D600082282 /* CGAffineTransform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AEA0FD4B4D600082282 /* CGBitmapContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A3A0FD4B4D600082282 /* CGBitmapContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AEC0FD4B4D600082282 /* CGColor.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A3C0FD4B4D600082282 /* CGColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AEE0FD4B4D600082282 /* CGColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A3E0FD4B4D600082282 /* CGColorSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AF00FD4B4D600082282 /* CGContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A400FD4B4D600082282 /* CGContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AF20FD4B4D600082282 /* CGDataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A420FD4B4D600082282 /* CGDataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AF40FD4B4D600082282 /* CGEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A440FD4B4D600082282 /* CGEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AF60FD4B4D600082282 /* CGFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A460FD4B4D600082282 /* CGFont.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AF80FD4B4D600082282 /* CGFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A480FD4B4D600082282 /* CGFunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AFA0FD4B4D600082282 /* CGGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A4A0FD4B4D600082282 /* CGGeometry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AFC0FD4B4D600082282 /* CGImage.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A4C0FD4B4D600082282 /* CGImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11AFE0FD4B4D600082282 /* CGImageProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A4E0FD4B4D600082282 /* CGImageProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B000FD4B4D600082282 /* CGImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A500FD4B4D600082282 /* CGImageSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B020FD4B4D600082282 /* CGLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A520FD4B4D600082282 /* CGLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B040FD4B4D600082282 /* CGPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A540FD4B4D600082282 /* CGPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B060FD4B4D600082282 /* CGPattern.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A560FD4B4D600082282 /* CGPattern.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B080FD4B4D600082282 /* CGPDFDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A580FD4B4D600082282 /* CGPDFDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B0A0FD4B4D600082282 /* CGPDFPage.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A5A0FD4B4D600082282 /* CGPDFPage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B0C0FD4B4D600082282 /* CGShading.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A5C0FD4B4D600082282 /* CGShading.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B0E0FD4B4D600082282 /* CGWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A5E0FD4B4D600082282 /* CGWindow.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B100FD4B4D600082282 /* CoreGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A600FD4B4D600082282 /* CoreGraphics.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B110FD4B4D600082282 /* CoreGraphicsExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A610FD4B4D600082282 /* CoreGraphicsExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC11B130FD4B4D600082282 /* gif_lib.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A630FD4B4D600082282 /* gif_lib.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B150FD4B4D600082282 /* O2BitmapContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A650FD4B4D600082282 /* O2BitmapContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B170FD4B4D600082282 /* O2Blending.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A670FD4B4D600082282 /* O2Blending.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B180FD4B4D600082282 /* O2ClipPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A680FD4B4D600082282 /* O2ClipPhase.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B1A0FD4B4D600082282 /* O2Color.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A6A0FD4B4D600082282 /* O2Color.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B1C0FD4B4D600082282 /* O2ColorSpace+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A6C0FD4B4D600082282 /* O2ColorSpace+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B1E0FD4B4D600082282 /* O2ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A6E0FD4B4D600082282 /* O2ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B200FD4B4D600082282 /* O2Context.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A700FD4B4D600082282 /* O2Context.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B220FD4B4D600082282 /* O2Context_builtin.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A720FD4B4D600082282 /* O2Context_builtin.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B240FD4B4D600082282 /* O2DataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A740FD4B4D600082282 /* O2DataProvider.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B260FD4B4D600082282 /* O2Exceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A760FD4B4D600082282 /* O2Exceptions.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B270FD4B4D600082282 /* O2Font.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A770FD4B4D600082282 /* O2Font.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B290FD4B4D600082282 /* O2Function+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A790FD4B4D600082282 /* O2Function+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B2B0FD4B4D600082282 /* O2Function.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A7B0FD4B4D600082282 /* O2Function.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B2D0FD4B4D600082282 /* O2GraphicsState.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A7D0FD4B4D600082282 /* O2GraphicsState.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B2F0FD4B4D600082282 /* O2Image+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A7F0FD4B4D600082282 /* O2Image+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B310FD4B4D600082282 /* O2Image.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A810FD4B4D600082282 /* O2Image.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B330FD4B4D600082282 /* O2ImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A830FD4B4D600082282 /* O2ImageSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B350FD4B4D600082282 /* O2ImageSource_BMP.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A850FD4B4D600082282 /* O2ImageSource_BMP.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B370FD4B4D600082282 /* O2ImageSource_GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A870FD4B4D600082282 /* O2ImageSource_GIF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B390FD4B4D600082282 /* O2ImageSource_JPEG.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A890FD4B4D600082282 /* O2ImageSource_JPEG.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B3B0FD4B4D600082282 /* O2ImageSource_PNG.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A8B0FD4B4D600082282 /* O2ImageSource_PNG.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B3D0FD4B4D600082282 /* O2ImageSource_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A8D0FD4B4D600082282 /* O2ImageSource_TIFF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B3F0FD4B4D600082282 /* O2Layer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A8F0FD4B4D600082282 /* O2Layer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B410FD4B4D600082282 /* O2MutablePath.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A910FD4B4D600082282 /* O2MutablePath.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B430FD4B4D600082282 /* O2Paint.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A930FD4B4D600082282 /* O2Paint.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B450FD4B4D600082282 /* O2Paint_axialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A950FD4B4D600082282 /* O2Paint_axialGradient.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B470FD4B4D600082282 /* O2Paint_color.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A970FD4B4D600082282 /* O2Paint_color.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B490FD4B4D600082282 /* O2Paint_image.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A990FD4B4D600082282 /* O2Paint_image.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B4B0FD4B4D600082282 /* O2Paint_pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A9B0FD4B4D600082282 /* O2Paint_pattern.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B4D0FD4B4D600082282 /* O2Paint_radialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A9D0FD4B4D600082282 /* O2Paint_radialGradient.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B4F0FD4B4D600082282 /* O2Paint_ramp.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11A9F0FD4B4D600082282 /* O2Paint_ramp.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B510FD4B4D600082282 /* O2Path.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AA10FD4B4D600082282 /* O2Path.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B530FD4B4D600082282 /* O2Pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AA30FD4B4D600082282 /* O2Pattern.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B550FD4B4D600082282 /* O2PDFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AA50FD4B4D600082282 /* O2PDFArray.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B570FD4B4D600082282 /* O2PDFContentStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AA70FD4B4D600082282 /* O2PDFContentStream.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B590FD4B4D600082282 /* O2PDFContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AA90FD4B4D600082282 /* O2PDFContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B5B0FD4B4D600082282 /* O2PDFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AAB0FD4B4D600082282 /* O2PDFDictionary.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B5D0FD4B4D600082282 /* O2PDFDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AAD0FD4B4D600082282 /* O2PDFDocument.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B5F0FD4B4D600082282 /* O2PDFFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AAF0FD4B4D600082282 /* O2PDFFilter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B610FD4B4D600082282 /* O2PDFFunction_Type2.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AB10FD4B4D600082282 /* O2PDFFunction_Type2.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B630FD4B4D600082282 /* O2PDFFunction_Type3.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AB30FD4B4D600082282 /* O2PDFFunction_Type3.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B650FD4B4D600082282 /* O2PDFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AB50FD4B4D600082282 /* O2PDFObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B670FD4B4D600082282 /* O2PDFObject_Boolean.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AB70FD4B4D600082282 /* O2PDFObject_Boolean.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B690FD4B4D600082282 /* O2PDFObject_const.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AB90FD4B4D600082282 /* O2PDFObject_const.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B6B0FD4B4D600082282 /* O2PDFObject_identifier.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11ABB0FD4B4D600082282 /* O2PDFObject_identifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B6D0FD4B4D600082282 /* O2PDFObject_Integer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11ABD0FD4B4D600082282 /* O2PDFObject_Integer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B6F0FD4B4D600082282 /* O2PDFObject_Name.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11ABF0FD4B4D600082282 /* O2PDFObject_Name.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B710FD4B4D600082282 /* O2PDFObject_R.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AC10FD4B4D600082282 /* O2PDFObject_R.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B730FD4B4D600082282 /* O2PDFObject_Real.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AC30FD4B4D600082282 /* O2PDFObject_Real.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B750FD4B4D600082282 /* O2PDFOperators.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AC50FD4B4D600082282 /* O2PDFOperators.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B770FD4B4D600082282 /* O2PDFOperatorTable.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AC70FD4B4D600082282 /* O2PDFOperatorTable.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B790FD4B4D600082282 /* O2PDFPage.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AC90FD4B4D600082282 /* O2PDFPage.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B7B0FD4B4D600082282 /* O2PDFScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11ACB0FD4B4D600082282 /* O2PDFScanner.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B7D0FD4B4D600082282 /* O2PDFStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11ACD0FD4B4D600082282 /* O2PDFStream.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B7F0FD4B4D600082282 /* O2PDFString.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11ACF0FD4B4D600082282 /* O2PDFString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B810FD4B4D600082282 /* O2PDFxref.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AD10FD4B4D600082282 /* O2PDFxref.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B830FD4B4D600082282 /* O2PDFxrefEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AD30FD4B4D600082282 /* O2PDFxrefEntry.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B850FD4B4D600082282 /* O2Shading+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AD50FD4B4D600082282 /* O2Shading+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B870FD4B4D600082282 /* O2Shading.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AD70FD4B4D600082282 /* O2Shading.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B890FD4B4D600082282 /* O2Surface.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AD90FD4B4D600082282 /* O2Surface.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B8B0FD4B4D600082282 /* O2zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11ADB0FD4B4D600082282 /* O2zlib.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B910FD4B4D600082282 /* O2TIFFImageDirectory.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AE10FD4B4D600082282 /* O2TIFFImageDirectory.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B930FD4B4D600082282 /* O2Decoder_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AE30FD4B4D600082282 /* O2Decoder_TIFF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B950FD4B4D600082282 /* VGmath.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AE50FD4B4D600082282 /* VGmath.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEC11B960FD4B4D600082282 /* VGPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC11AE60FD4B4D600082282 /* VGPath.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FED56E8411A2D8E200D6D09B /* CGGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FED56E8211A2D8E200D6D09B /* CGGradient.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEF5A70811E4E782009B0041 /* CGError.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF5A70611E4E782009B0041 /* CGError.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE5C0BEB11629FD900065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "Onyx2D-Windows-i386"; - }; - FE5C0BED11629FE700065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "Onyx2D-Windows-i386"; - }; - FE5C0D4B1162A9B800065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0CA61162A99A00065D1C; - remoteInfo = "Onyx2D-Linux-i386"; - }; - FE5C0D4D1162A9B800065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0D461162A9AB00065D1C; - remoteInfo = "Onyx2D-FreeBSD-i386"; - }; - FE5C0D5E1162A9E400065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0D571162A9D600065D1C; - remoteInfo = "Onyx2D-MacOS"; - }; - FE6F7BCA0FD5572F00C3244F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE6F7BC00FD5572F00C3244F /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A7EC0C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE6F7BD60FD5573B00C3244F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE6F7BC00FD5572F00C3244F /* Foundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A5970C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE74350310A8BE84004CDF00 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE7434FB10A8BE84004CDF00 /* CoreFoundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreFoundation-Windows-i386"; - }; - FE74350D10A8BE94004CDF00 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE7434FB10A8BE84004CDF00 /* CoreFoundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CoreFoundation-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* CoreGraphics.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreGraphics.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B18D1430E7790071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B18E1430E7790071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B18F1430E7790071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B1901430E7790071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B1911430E7790071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B1921430E7790071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B1931430E7790071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B1941430E7790071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B1951430E7790071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B1961430E7790071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B1971430E7790071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B1981430E7790071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B1991430E7790071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B19A1430E7790071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B19B1430E7790071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE2752DA12301F4500BD6643 /* CGLPixelSurface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGLPixelSurface.h; sourceTree = ""; }; - FE2752DB12301F4500BD6643 /* CGLPixelSurface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGLPixelSurface.m; sourceTree = ""; }; - FE39C40C120357EA00A80A71 /* O2ClipState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ClipState.h; sourceTree = ""; }; - FE39C40D120357EA00A80A71 /* O2ClipState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ClipState.m; sourceTree = ""; }; - FE3C8539108779410018252A /* O2AffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2AffineTransform.h; path = ../Onyx2D/O2AffineTransform.h; sourceTree = ""; }; - FE3C853A108779410018252A /* O2AffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2AffineTransform.m; path = ../Onyx2D/O2AffineTransform.m; sourceTree = ""; }; - FE3C853B108779410018252A /* O2Geometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Geometry.h; path = ../Onyx2D/O2Geometry.h; sourceTree = ""; }; - FE3C853C108779410018252A /* O2Geometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Geometry.m; path = ../Onyx2D/O2Geometry.m; sourceTree = ""; }; - FE3C85951087928D0018252A /* CGConversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGConversions.h; sourceTree = ""; }; - FE43BE4511FFBAC100119833 /* O2PDFBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFBlock.h; sourceTree = ""; }; - FE43BE4611FFBAC100119833 /* O2PDFBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFBlock.m; sourceTree = ""; }; - FE44BDE311EBA0D400762BF1 /* O2ImageSource_ICNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_ICNS.h; sourceTree = ""; }; - FE44BDE411EBA0D400762BF1 /* O2ImageSource_ICNS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_ICNS.m; sourceTree = ""; }; - FE5ADA6B12BBFF8500A922A2 /* CGWindowLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGWindowLevel.h; sourceTree = ""; }; - FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Onyx2D.xcodeproj; path = ../Onyx2D/Onyx2D.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE6F7BC00FD5572F00C3244F /* Foundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Foundation.xcodeproj; path = ../Foundation/Foundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE70860C143117A500B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE71ED8711FA88E700E6F801 /* O2PDFFunction_Type4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type4.h; sourceTree = ""; }; - FE71ED8811FA88E700E6F801 /* O2PDFFunction_Type4.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type4.m; sourceTree = ""; }; - FE71EF3811FBCAA000E6F801 /* O2Encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoding.h; sourceTree = ""; }; - FE71EF3911FBCAA000E6F801 /* O2Encoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoding.m; sourceTree = ""; }; - FE71F0D811FC7CEC00E6F801 /* O2PDFCharWidths.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFCharWidths.h; sourceTree = ""; }; - FE71F0D911FC7CEC00E6F801 /* O2PDFCharWidths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFCharWidths.m; sourceTree = ""; }; - FE71F26911FD220400E6F801 /* O2PDFFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFont.h; sourceTree = ""; }; - FE71F26A11FD220400E6F801 /* O2PDFFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFont.m; sourceTree = ""; }; - FE71F26B11FD220400E6F801 /* O2PDFFunction_Type0.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type0.h; sourceTree = ""; }; - FE71F26C11FD220400E6F801 /* O2PDFFunction_Type0.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type0.m; sourceTree = ""; }; - FE71F41111FDD43700E6F801 /* O2TTFDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2TTFDecoder.h; sourceTree = ""; }; - FE71F41211FDD43700E6F801 /* O2TTFDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2TTFDecoder.m; sourceTree = ""; }; - FE7434FB10A8BE84004CDF00 /* CoreFoundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreFoundation.xcodeproj; path = ../CoreFoundation/CoreFoundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE8C020A10C59BB300FE4072 /* CGImageDestination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGImageDestination.h; sourceTree = ""; }; - FE8C020B10C59BB300FE4072 /* CGImageDestination.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGImageDestination.m; sourceTree = ""; }; - FE8C020C10C59BB300FE4072 /* O2Encoder_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Encoder_TIFF.h; path = ../Onyx2D/O2Encoder_TIFF.h; sourceTree = ""; }; - FE8C020D10C59BB300FE4072 /* O2Encoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Encoder_TIFF.m; path = ../Onyx2D/O2Encoder_TIFF.m; sourceTree = ""; }; - FE8C020E10C59BB300FE4072 /* O2ImageDestination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ImageDestination.h; path = ../Onyx2D/O2ImageDestination.h; sourceTree = ""; }; - FE8C020F10C59BB300FE4072 /* O2ImageDestination.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageDestination.m; path = ../Onyx2D/O2ImageDestination.m; sourceTree = ""; }; - FE9ACFE715614CE4002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder_JPEG_libjpeg.m; sourceTree = ""; }; - FE9ACFE815614CE4002AFCA9 /* O2ImageDecoder_JPEG_stb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder_JPEG_stb.m; sourceTree = ""; }; - FE9ACFE915614CE4002AFCA9 /* O2ImageDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder.m; sourceTree = ""; }; - FE9DB45F0FD6C38300A1CE17 /* CGDataConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGDataConsumer.h; sourceTree = ""; }; - FE9DB4600FD6C38300A1CE17 /* CGDataConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGDataConsumer.m; sourceTree = ""; }; - FEA313490FD5642000F480D4 /* Foundation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Foundation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FEAE004211E4E6AD00CA0912 /* CGDirectDisplay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGDirectDisplay.h; sourceTree = ""; }; - FEAE004311E4E6AD00CA0912 /* CGDirectDisplay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGDirectDisplay.m; sourceTree = ""; }; - FEAED70E0FD6C40E0043F915 /* O2DataConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2DataConsumer.h; path = ../Onyx2D/O2DataConsumer.h; sourceTree = ""; }; - FEAED70F0FD6C40E0043F915 /* O2DataConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2DataConsumer.m; path = ../Onyx2D/O2DataConsumer.m; sourceTree = ""; }; - FEAED71A0FD6C4460043F915 /* CGPDFContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPDFContext.h; sourceTree = ""; }; - FEAED71B0FD6C4460043F915 /* CGPDFContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPDFContext.m; sourceTree = ""; }; - FEBF5BCD100D8B2C00F64C71 /* O2LZW.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2LZW.h; path = ../Onyx2D/O2LZW.h; sourceTree = ""; }; - FEBF5BCE100D8B2C00F64C71 /* O2LZW.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2LZW.m; path = ../Onyx2D/O2LZW.m; sourceTree = ""; }; - FEC0A40E170935D3002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A40F170935D3002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A410170935D3002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A411170935D3002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A412170935D3002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A413170935D3002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A414170935D3002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A415170935D3002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEC11A380FD4B4D600082282 /* CGAffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGAffineTransform.h; sourceTree = ""; }; - FEC11A390FD4B4D600082282 /* CGAffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGAffineTransform.m; sourceTree = ""; }; - FEC11A3A0FD4B4D600082282 /* CGBitmapContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGBitmapContext.h; sourceTree = ""; }; - FEC11A3B0FD4B4D600082282 /* CGBitmapContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGBitmapContext.m; sourceTree = ""; }; - FEC11A3C0FD4B4D600082282 /* CGColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGColor.h; sourceTree = ""; }; - FEC11A3D0FD4B4D600082282 /* CGColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGColor.m; sourceTree = ""; }; - FEC11A3E0FD4B4D600082282 /* CGColorSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGColorSpace.h; sourceTree = ""; }; - FEC11A3F0FD4B4D600082282 /* CGColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGColorSpace.m; sourceTree = ""; }; - FEC11A400FD4B4D600082282 /* CGContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGContext.h; sourceTree = ""; }; - FEC11A410FD4B4D600082282 /* CGContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGContext.m; sourceTree = ""; }; - FEC11A420FD4B4D600082282 /* CGDataProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGDataProvider.h; sourceTree = ""; }; - FEC11A430FD4B4D600082282 /* CGDataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGDataProvider.m; sourceTree = ""; }; - FEC11A440FD4B4D600082282 /* CGEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGEvent.h; sourceTree = ""; }; - FEC11A450FD4B4D600082282 /* CGEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGEvent.m; sourceTree = ""; }; - FEC11A460FD4B4D600082282 /* CGFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGFont.h; sourceTree = ""; }; - FEC11A470FD4B4D600082282 /* CGFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGFont.m; sourceTree = ""; }; - FEC11A480FD4B4D600082282 /* CGFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGFunction.h; sourceTree = ""; }; - FEC11A490FD4B4D600082282 /* CGFunction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGFunction.m; sourceTree = ""; }; - FEC11A4A0FD4B4D600082282 /* CGGeometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGGeometry.h; sourceTree = ""; }; - FEC11A4B0FD4B4D600082282 /* CGGeometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGGeometry.m; sourceTree = ""; }; - FEC11A4C0FD4B4D600082282 /* CGImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGImage.h; sourceTree = ""; }; - FEC11A4D0FD4B4D600082282 /* CGImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGImage.m; sourceTree = ""; }; - FEC11A4E0FD4B4D600082282 /* CGImageProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGImageProperties.h; sourceTree = ""; }; - FEC11A4F0FD4B4D600082282 /* CGImageProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGImageProperties.m; sourceTree = ""; }; - FEC11A500FD4B4D600082282 /* CGImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGImageSource.h; sourceTree = ""; }; - FEC11A510FD4B4D600082282 /* CGImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGImageSource.m; sourceTree = ""; }; - FEC11A520FD4B4D600082282 /* CGLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGLayer.h; sourceTree = ""; }; - FEC11A530FD4B4D600082282 /* CGLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGLayer.m; sourceTree = ""; }; - FEC11A540FD4B4D600082282 /* CGPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPath.h; sourceTree = ""; }; - FEC11A550FD4B4D600082282 /* CGPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPath.m; sourceTree = ""; }; - FEC11A560FD4B4D600082282 /* CGPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPattern.h; sourceTree = ""; }; - FEC11A570FD4B4D600082282 /* CGPattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPattern.m; sourceTree = ""; }; - FEC11A580FD4B4D600082282 /* CGPDFDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPDFDocument.h; sourceTree = ""; }; - FEC11A590FD4B4D600082282 /* CGPDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPDFDocument.m; sourceTree = ""; }; - FEC11A5A0FD4B4D600082282 /* CGPDFPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPDFPage.h; sourceTree = ""; }; - FEC11A5B0FD4B4D600082282 /* CGPDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGPDFPage.m; sourceTree = ""; }; - FEC11A5C0FD4B4D600082282 /* CGShading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGShading.h; sourceTree = ""; }; - FEC11A5D0FD4B4D600082282 /* CGShading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGShading.m; sourceTree = ""; }; - FEC11A5E0FD4B4D600082282 /* CGWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGWindow.h; sourceTree = ""; }; - FEC11A5F0FD4B4D600082282 /* CGWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGWindow.m; sourceTree = ""; }; - FEC11A600FD4B4D600082282 /* CoreGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreGraphics.h; sourceTree = ""; }; - FEC11A610FD4B4D600082282 /* CoreGraphicsExport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreGraphicsExport.h; sourceTree = ""; }; - FEC11A630FD4B4D600082282 /* gif_lib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gif_lib.h; path = ../Onyx2D/gif_lib.h; sourceTree = ""; }; - FEC11A640FD4B4D600082282 /* gif_lib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = gif_lib.m; path = ../Onyx2D/gif_lib.m; sourceTree = ""; }; - FEC11A650FD4B4D600082282 /* O2BitmapContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2BitmapContext.h; path = ../Onyx2D/O2BitmapContext.h; sourceTree = ""; }; - FEC11A660FD4B4D600082282 /* O2BitmapContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2BitmapContext.m; path = ../Onyx2D/O2BitmapContext.m; sourceTree = ""; }; - FEC11A670FD4B4D600082282 /* O2Blending.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Blending.h; path = ../Onyx2D/O2Blending.h; sourceTree = ""; }; - FEC11A680FD4B4D600082282 /* O2ClipPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ClipPhase.h; path = ../Onyx2D/O2ClipPhase.h; sourceTree = ""; }; - FEC11A690FD4B4D600082282 /* O2ClipPhase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ClipPhase.m; path = ../Onyx2D/O2ClipPhase.m; sourceTree = ""; }; - FEC11A6A0FD4B4D600082282 /* O2Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Color.h; path = ../Onyx2D/O2Color.h; sourceTree = ""; }; - FEC11A6B0FD4B4D600082282 /* O2Color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Color.m; path = ../Onyx2D/O2Color.m; sourceTree = ""; }; - FEC11A6C0FD4B4D600082282 /* O2ColorSpace+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "O2ColorSpace+PDF.h"; path = "../Onyx2D/O2ColorSpace+PDF.h"; sourceTree = ""; }; - FEC11A6D0FD4B4D600082282 /* O2ColorSpace+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2ColorSpace+PDF.m"; path = "../Onyx2D/O2ColorSpace+PDF.m"; sourceTree = ""; }; - FEC11A6E0FD4B4D600082282 /* O2ColorSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ColorSpace.h; path = ../Onyx2D/O2ColorSpace.h; sourceTree = ""; }; - FEC11A6F0FD4B4D600082282 /* O2ColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ColorSpace.m; path = ../Onyx2D/O2ColorSpace.m; sourceTree = ""; }; - FEC11A700FD4B4D600082282 /* O2Context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Context.h; path = ../Onyx2D/O2Context.h; sourceTree = ""; }; - FEC11A710FD4B4D600082282 /* O2Context.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Context.m; path = ../Onyx2D/O2Context.m; sourceTree = ""; }; - FEC11A720FD4B4D600082282 /* O2Context_builtin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Context_builtin.h; path = ../Onyx2D/O2Context_builtin.h; sourceTree = ""; }; - FEC11A730FD4B4D600082282 /* O2Context_builtin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Context_builtin.m; path = ../Onyx2D/O2Context_builtin.m; sourceTree = ""; }; - FEC11A740FD4B4D600082282 /* O2DataProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2DataProvider.h; path = ../Onyx2D/O2DataProvider.h; sourceTree = ""; }; - FEC11A750FD4B4D600082282 /* O2DataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2DataProvider.m; path = ../Onyx2D/O2DataProvider.m; sourceTree = ""; }; - FEC11A760FD4B4D600082282 /* O2Exceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Exceptions.h; path = ../Onyx2D/O2Exceptions.h; sourceTree = ""; }; - FEC11A770FD4B4D600082282 /* O2Font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Font.h; path = ../Onyx2D/O2Font.h; sourceTree = ""; }; - FEC11A780FD4B4D600082282 /* O2Font.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Font.m; path = ../Onyx2D/O2Font.m; sourceTree = ""; }; - FEC11A790FD4B4D600082282 /* O2Function+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "O2Function+PDF.h"; path = "../Onyx2D/O2Function+PDF.h"; sourceTree = ""; }; - FEC11A7A0FD4B4D600082282 /* O2Function+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Function+PDF.m"; path = "../Onyx2D/O2Function+PDF.m"; sourceTree = ""; }; - FEC11A7B0FD4B4D600082282 /* O2Function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Function.h; path = ../Onyx2D/O2Function.h; sourceTree = ""; }; - FEC11A7C0FD4B4D600082282 /* O2Function.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Function.m; path = ../Onyx2D/O2Function.m; sourceTree = ""; }; - FEC11A7D0FD4B4D600082282 /* O2GraphicsState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2GraphicsState.h; path = ../Onyx2D/O2GraphicsState.h; sourceTree = ""; }; - FEC11A7E0FD4B4D600082282 /* O2GraphicsState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2GraphicsState.m; path = ../Onyx2D/O2GraphicsState.m; sourceTree = ""; }; - FEC11A7F0FD4B4D600082282 /* O2Image+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "O2Image+PDF.h"; path = "../Onyx2D/O2Image+PDF.h"; sourceTree = ""; }; - FEC11A800FD4B4D600082282 /* O2Image+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Image+PDF.m"; path = "../Onyx2D/O2Image+PDF.m"; sourceTree = ""; }; - FEC11A810FD4B4D600082282 /* O2Image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Image.h; path = ../Onyx2D/O2Image.h; sourceTree = ""; }; - FEC11A820FD4B4D600082282 /* O2Image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Image.m; path = ../Onyx2D/O2Image.m; sourceTree = ""; }; - FEC11A830FD4B4D600082282 /* O2ImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ImageSource.h; path = ../Onyx2D/O2ImageSource.h; sourceTree = ""; }; - FEC11A840FD4B4D600082282 /* O2ImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource.m; path = ../Onyx2D/O2ImageSource.m; sourceTree = ""; }; - FEC11A850FD4B4D600082282 /* O2ImageSource_BMP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ImageSource_BMP.h; path = ../Onyx2D/O2ImageSource_BMP.h; sourceTree = ""; }; - FEC11A860FD4B4D600082282 /* O2ImageSource_BMP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_BMP.m; path = ../Onyx2D/O2ImageSource_BMP.m; sourceTree = ""; }; - FEC11A870FD4B4D600082282 /* O2ImageSource_GIF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ImageSource_GIF.h; path = ../Onyx2D/O2ImageSource_GIF.h; sourceTree = ""; }; - FEC11A880FD4B4D600082282 /* O2ImageSource_GIF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_GIF.m; path = ../Onyx2D/O2ImageSource_GIF.m; sourceTree = ""; }; - FEC11A890FD4B4D600082282 /* O2ImageSource_JPEG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ImageSource_JPEG.h; path = ../Onyx2D/O2ImageSource_JPEG.h; sourceTree = ""; }; - FEC11A8A0FD4B4D600082282 /* O2ImageSource_JPEG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_JPEG.m; path = ../Onyx2D/O2ImageSource_JPEG.m; sourceTree = ""; }; - FEC11A8B0FD4B4D600082282 /* O2ImageSource_PNG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ImageSource_PNG.h; path = ../Onyx2D/O2ImageSource_PNG.h; sourceTree = ""; }; - FEC11A8C0FD4B4D600082282 /* O2ImageSource_PNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_PNG.m; path = ../Onyx2D/O2ImageSource_PNG.m; sourceTree = ""; }; - FEC11A8D0FD4B4D600082282 /* O2ImageSource_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2ImageSource_TIFF.h; path = ../Onyx2D/O2ImageSource_TIFF.h; sourceTree = ""; }; - FEC11A8E0FD4B4D600082282 /* O2ImageSource_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_TIFF.m; path = ../Onyx2D/O2ImageSource_TIFF.m; sourceTree = ""; }; - FEC11A8F0FD4B4D600082282 /* O2Layer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Layer.h; path = ../Onyx2D/O2Layer.h; sourceTree = ""; }; - FEC11A900FD4B4D600082282 /* O2Layer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Layer.m; path = ../Onyx2D/O2Layer.m; sourceTree = ""; }; - FEC11A910FD4B4D600082282 /* O2MutablePath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2MutablePath.h; path = ../Onyx2D/O2MutablePath.h; sourceTree = ""; }; - FEC11A920FD4B4D600082282 /* O2MutablePath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2MutablePath.m; path = ../Onyx2D/O2MutablePath.m; sourceTree = ""; }; - FEC11A930FD4B4D600082282 /* O2Paint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Paint.h; path = ../Onyx2D/O2Paint.h; sourceTree = ""; }; - FEC11A940FD4B4D600082282 /* O2Paint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint.m; path = ../Onyx2D/O2Paint.m; sourceTree = ""; }; - FEC11A950FD4B4D600082282 /* O2Paint_axialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Paint_axialGradient.h; path = ../Onyx2D/O2Paint_axialGradient.h; sourceTree = ""; }; - FEC11A960FD4B4D600082282 /* O2Paint_axialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_axialGradient.m; path = ../Onyx2D/O2Paint_axialGradient.m; sourceTree = ""; }; - FEC11A970FD4B4D600082282 /* O2Paint_color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Paint_color.h; path = ../Onyx2D/O2Paint_color.h; sourceTree = ""; }; - FEC11A980FD4B4D600082282 /* O2Paint_color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_color.m; path = ../Onyx2D/O2Paint_color.m; sourceTree = ""; }; - FEC11A990FD4B4D600082282 /* O2Paint_image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Paint_image.h; path = ../Onyx2D/O2Paint_image.h; sourceTree = ""; }; - FEC11A9A0FD4B4D600082282 /* O2Paint_image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_image.m; path = ../Onyx2D/O2Paint_image.m; sourceTree = ""; }; - FEC11A9B0FD4B4D600082282 /* O2Paint_pattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Paint_pattern.h; path = ../Onyx2D/O2Paint_pattern.h; sourceTree = ""; }; - FEC11A9C0FD4B4D600082282 /* O2Paint_pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_pattern.m; path = ../Onyx2D/O2Paint_pattern.m; sourceTree = ""; }; - FEC11A9D0FD4B4D600082282 /* O2Paint_radialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Paint_radialGradient.h; path = ../Onyx2D/O2Paint_radialGradient.h; sourceTree = ""; }; - FEC11A9E0FD4B4D600082282 /* O2Paint_radialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_radialGradient.m; path = ../Onyx2D/O2Paint_radialGradient.m; sourceTree = ""; }; - FEC11A9F0FD4B4D600082282 /* O2Paint_ramp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Paint_ramp.h; path = ../Onyx2D/O2Paint_ramp.h; sourceTree = ""; }; - FEC11AA00FD4B4D600082282 /* O2Paint_ramp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_ramp.m; path = ../Onyx2D/O2Paint_ramp.m; sourceTree = ""; }; - FEC11AA10FD4B4D600082282 /* O2Path.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Path.h; path = ../Onyx2D/O2Path.h; sourceTree = ""; }; - FEC11AA20FD4B4D600082282 /* O2Path.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Path.m; path = ../Onyx2D/O2Path.m; sourceTree = ""; }; - FEC11AA30FD4B4D600082282 /* O2Pattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Pattern.h; path = ../Onyx2D/O2Pattern.h; sourceTree = ""; }; - FEC11AA40FD4B4D600082282 /* O2Pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Pattern.m; path = ../Onyx2D/O2Pattern.m; sourceTree = ""; }; - FEC11AA50FD4B4D600082282 /* O2PDFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFArray.h; path = ../Onyx2D/O2PDFArray.h; sourceTree = ""; }; - FEC11AA60FD4B4D600082282 /* O2PDFArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFArray.m; path = ../Onyx2D/O2PDFArray.m; sourceTree = ""; }; - FEC11AA70FD4B4D600082282 /* O2PDFContentStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFContentStream.h; path = ../Onyx2D/O2PDFContentStream.h; sourceTree = ""; }; - FEC11AA80FD4B4D600082282 /* O2PDFContentStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFContentStream.m; path = ../Onyx2D/O2PDFContentStream.m; sourceTree = ""; }; - FEC11AA90FD4B4D600082282 /* O2PDFContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFContext.h; path = ../Onyx2D/O2PDFContext.h; sourceTree = ""; }; - FEC11AAA0FD4B4D600082282 /* O2PDFContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFContext.m; path = ../Onyx2D/O2PDFContext.m; sourceTree = ""; }; - FEC11AAB0FD4B4D600082282 /* O2PDFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFDictionary.h; path = ../Onyx2D/O2PDFDictionary.h; sourceTree = ""; }; - FEC11AAC0FD4B4D600082282 /* O2PDFDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFDictionary.m; path = ../Onyx2D/O2PDFDictionary.m; sourceTree = ""; }; - FEC11AAD0FD4B4D600082282 /* O2PDFDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFDocument.h; path = ../Onyx2D/O2PDFDocument.h; sourceTree = ""; }; - FEC11AAE0FD4B4D600082282 /* O2PDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFDocument.m; path = ../Onyx2D/O2PDFDocument.m; sourceTree = ""; }; - FEC11AAF0FD4B4D600082282 /* O2PDFFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFFilter.h; path = ../Onyx2D/O2PDFFilter.h; sourceTree = ""; }; - FEC11AB00FD4B4D600082282 /* O2PDFFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFilter.m; path = ../Onyx2D/O2PDFFilter.m; sourceTree = ""; }; - FEC11AB10FD4B4D600082282 /* O2PDFFunction_Type2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFFunction_Type2.h; path = ../Onyx2D/O2PDFFunction_Type2.h; sourceTree = ""; }; - FEC11AB20FD4B4D600082282 /* O2PDFFunction_Type2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type2.m; path = ../Onyx2D/O2PDFFunction_Type2.m; sourceTree = ""; }; - FEC11AB30FD4B4D600082282 /* O2PDFFunction_Type3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFFunction_Type3.h; path = ../Onyx2D/O2PDFFunction_Type3.h; sourceTree = ""; }; - FEC11AB40FD4B4D600082282 /* O2PDFFunction_Type3.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type3.m; path = ../Onyx2D/O2PDFFunction_Type3.m; sourceTree = ""; }; - FEC11AB50FD4B4D600082282 /* O2PDFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject.h; path = ../Onyx2D/O2PDFObject.h; sourceTree = ""; }; - FEC11AB60FD4B4D600082282 /* O2PDFObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject.m; path = ../Onyx2D/O2PDFObject.m; sourceTree = ""; }; - FEC11AB70FD4B4D600082282 /* O2PDFObject_Boolean.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject_Boolean.h; path = ../Onyx2D/O2PDFObject_Boolean.h; sourceTree = ""; }; - FEC11AB80FD4B4D600082282 /* O2PDFObject_Boolean.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Boolean.m; path = ../Onyx2D/O2PDFObject_Boolean.m; sourceTree = ""; }; - FEC11AB90FD4B4D600082282 /* O2PDFObject_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject_const.h; path = ../Onyx2D/O2PDFObject_const.h; sourceTree = ""; }; - FEC11ABA0FD4B4D600082282 /* O2PDFObject_const.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_const.m; path = ../Onyx2D/O2PDFObject_const.m; sourceTree = ""; }; - FEC11ABB0FD4B4D600082282 /* O2PDFObject_identifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject_identifier.h; path = ../Onyx2D/O2PDFObject_identifier.h; sourceTree = ""; }; - FEC11ABC0FD4B4D600082282 /* O2PDFObject_identifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_identifier.m; path = ../Onyx2D/O2PDFObject_identifier.m; sourceTree = ""; }; - FEC11ABD0FD4B4D600082282 /* O2PDFObject_Integer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject_Integer.h; path = ../Onyx2D/O2PDFObject_Integer.h; sourceTree = ""; }; - FEC11ABE0FD4B4D600082282 /* O2PDFObject_Integer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Integer.m; path = ../Onyx2D/O2PDFObject_Integer.m; sourceTree = ""; }; - FEC11ABF0FD4B4D600082282 /* O2PDFObject_Name.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject_Name.h; path = ../Onyx2D/O2PDFObject_Name.h; sourceTree = ""; }; - FEC11AC00FD4B4D600082282 /* O2PDFObject_Name.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Name.m; path = ../Onyx2D/O2PDFObject_Name.m; sourceTree = ""; }; - FEC11AC10FD4B4D600082282 /* O2PDFObject_R.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject_R.h; path = ../Onyx2D/O2PDFObject_R.h; sourceTree = ""; }; - FEC11AC20FD4B4D600082282 /* O2PDFObject_R.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_R.m; path = ../Onyx2D/O2PDFObject_R.m; sourceTree = ""; }; - FEC11AC30FD4B4D600082282 /* O2PDFObject_Real.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFObject_Real.h; path = ../Onyx2D/O2PDFObject_Real.h; sourceTree = ""; }; - FEC11AC40FD4B4D600082282 /* O2PDFObject_Real.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Real.m; path = ../Onyx2D/O2PDFObject_Real.m; sourceTree = ""; }; - FEC11AC50FD4B4D600082282 /* O2PDFOperators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFOperators.h; path = ../Onyx2D/O2PDFOperators.h; sourceTree = ""; }; - FEC11AC60FD4B4D600082282 /* O2PDFOperators.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFOperators.m; path = ../Onyx2D/O2PDFOperators.m; sourceTree = ""; }; - FEC11AC70FD4B4D600082282 /* O2PDFOperatorTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFOperatorTable.h; path = ../Onyx2D/O2PDFOperatorTable.h; sourceTree = ""; }; - FEC11AC80FD4B4D600082282 /* O2PDFOperatorTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFOperatorTable.m; path = ../Onyx2D/O2PDFOperatorTable.m; sourceTree = ""; }; - FEC11AC90FD4B4D600082282 /* O2PDFPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFPage.h; path = ../Onyx2D/O2PDFPage.h; sourceTree = ""; }; - FEC11ACA0FD4B4D600082282 /* O2PDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFPage.m; path = ../Onyx2D/O2PDFPage.m; sourceTree = ""; }; - FEC11ACB0FD4B4D600082282 /* O2PDFScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFScanner.h; path = ../Onyx2D/O2PDFScanner.h; sourceTree = ""; }; - FEC11ACC0FD4B4D600082282 /* O2PDFScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFScanner.m; path = ../Onyx2D/O2PDFScanner.m; sourceTree = ""; }; - FEC11ACD0FD4B4D600082282 /* O2PDFStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFStream.h; path = ../Onyx2D/O2PDFStream.h; sourceTree = ""; }; - FEC11ACE0FD4B4D600082282 /* O2PDFStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFStream.m; path = ../Onyx2D/O2PDFStream.m; sourceTree = ""; }; - FEC11ACF0FD4B4D600082282 /* O2PDFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFString.h; path = ../Onyx2D/O2PDFString.h; sourceTree = ""; }; - FEC11AD00FD4B4D600082282 /* O2PDFString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFString.m; path = ../Onyx2D/O2PDFString.m; sourceTree = ""; }; - FEC11AD10FD4B4D600082282 /* O2PDFxref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFxref.h; path = ../Onyx2D/O2PDFxref.h; sourceTree = ""; }; - FEC11AD20FD4B4D600082282 /* O2PDFxref.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFxref.m; path = ../Onyx2D/O2PDFxref.m; sourceTree = ""; }; - FEC11AD30FD4B4D600082282 /* O2PDFxrefEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2PDFxrefEntry.h; path = ../Onyx2D/O2PDFxrefEntry.h; sourceTree = ""; }; - FEC11AD40FD4B4D600082282 /* O2PDFxrefEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFxrefEntry.m; path = ../Onyx2D/O2PDFxrefEntry.m; sourceTree = ""; }; - FEC11AD50FD4B4D600082282 /* O2Shading+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "O2Shading+PDF.h"; path = "../Onyx2D/O2Shading+PDF.h"; sourceTree = ""; }; - FEC11AD60FD4B4D600082282 /* O2Shading+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Shading+PDF.m"; path = "../Onyx2D/O2Shading+PDF.m"; sourceTree = ""; }; - FEC11AD70FD4B4D600082282 /* O2Shading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Shading.h; path = ../Onyx2D/O2Shading.h; sourceTree = ""; }; - FEC11AD80FD4B4D600082282 /* O2Shading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Shading.m; path = ../Onyx2D/O2Shading.m; sourceTree = ""; }; - FEC11AD90FD4B4D600082282 /* O2Surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Surface.h; path = ../Onyx2D/O2Surface.h; sourceTree = ""; }; - FEC11ADA0FD4B4D600082282 /* O2Surface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Surface.m; path = ../Onyx2D/O2Surface.m; sourceTree = ""; }; - FEC11ADB0FD4B4D600082282 /* O2zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2zlib.h; path = ../Onyx2D/O2zlib.h; sourceTree = ""; }; - FEC11ADC0FD4B4D600082282 /* O2zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2zlib.m; path = ../Onyx2D/O2zlib.m; sourceTree = ""; }; - FEC11AE10FD4B4D600082282 /* O2TIFFImageDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2TIFFImageDirectory.h; path = ../Onyx2D/O2TIFFImageDirectory.h; sourceTree = ""; }; - FEC11AE20FD4B4D600082282 /* O2TIFFImageDirectory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2TIFFImageDirectory.m; path = ../Onyx2D/O2TIFFImageDirectory.m; sourceTree = ""; }; - FEC11AE30FD4B4D600082282 /* O2Decoder_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = O2Decoder_TIFF.h; path = ../Onyx2D/O2Decoder_TIFF.h; sourceTree = ""; }; - FEC11AE40FD4B4D600082282 /* O2Decoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Decoder_TIFF.m; path = ../Onyx2D/O2Decoder_TIFF.m; sourceTree = ""; }; - FEC11AE50FD4B4D600082282 /* VGmath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VGmath.h; path = ../Onyx2D/VGmath.h; sourceTree = ""; }; - FEC11AE60FD4B4D600082282 /* VGPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VGPath.h; path = ../Onyx2D/VGPath.h; sourceTree = ""; }; - FEC11AE70FD4B4D600082282 /* VGPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VGPath.m; path = ../Onyx2D/VGPath.m; sourceTree = ""; }; - FED56E8211A2D8E200D6D09B /* CGGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGGradient.h; sourceTree = ""; }; - FED56E8311A2D8E200D6D09B /* CGGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CGGradient.m; sourceTree = ""; }; - FEF5A70611E4E782009B0041 /* CGError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGError.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* CoreGraphics.framework */, - FEA313490FD5642000F480D4 /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* CoreGraphics */ = { - isa = PBXGroup; - children = ( - FE06B18C1430E7790071169B /* xcconfig */, - FE5ADA6B12BBFF8500A922A2 /* CGWindowLevel.h */, - FE2752DA12301F4500BD6643 /* CGLPixelSurface.h */, - FE2752DB12301F4500BD6643 /* CGLPixelSurface.m */, - FEF5A70611E4E782009B0041 /* CGError.h */, - FEAE004211E4E6AD00CA0912 /* CGDirectDisplay.h */, - FEAE004311E4E6AD00CA0912 /* CGDirectDisplay.m */, - FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */, - FE5C0A1D1162953300065D1C /* Onyx2D */, - FE8C020A10C59BB300FE4072 /* CGImageDestination.h */, - FE8C020B10C59BB300FE4072 /* CGImageDestination.m */, - FEC11A380FD4B4D600082282 /* CGAffineTransform.h */, - FED56E8211A2D8E200D6D09B /* CGGradient.h */, - FED56E8311A2D8E200D6D09B /* CGGradient.m */, - FEC11A390FD4B4D600082282 /* CGAffineTransform.m */, - FEC11A3A0FD4B4D600082282 /* CGBitmapContext.h */, - FEC11A3B0FD4B4D600082282 /* CGBitmapContext.m */, - FEC11A3C0FD4B4D600082282 /* CGColor.h */, - FEC11A3D0FD4B4D600082282 /* CGColor.m */, - FEC11A3E0FD4B4D600082282 /* CGColorSpace.h */, - FEC11A3F0FD4B4D600082282 /* CGColorSpace.m */, - FEC11A400FD4B4D600082282 /* CGContext.h */, - FEC11A410FD4B4D600082282 /* CGContext.m */, - FE3C85951087928D0018252A /* CGConversions.h */, - FE9DB45F0FD6C38300A1CE17 /* CGDataConsumer.h */, - FE9DB4600FD6C38300A1CE17 /* CGDataConsumer.m */, - FEC11A420FD4B4D600082282 /* CGDataProvider.h */, - FEC11A430FD4B4D600082282 /* CGDataProvider.m */, - FEC11A440FD4B4D600082282 /* CGEvent.h */, - FEC11A450FD4B4D600082282 /* CGEvent.m */, - FEC11A460FD4B4D600082282 /* CGFont.h */, - FEC11A470FD4B4D600082282 /* CGFont.m */, - FEC11A480FD4B4D600082282 /* CGFunction.h */, - FEC11A490FD4B4D600082282 /* CGFunction.m */, - FEC11A4A0FD4B4D600082282 /* CGGeometry.h */, - FEC11A4B0FD4B4D600082282 /* CGGeometry.m */, - FEC11A4C0FD4B4D600082282 /* CGImage.h */, - FEC11A4D0FD4B4D600082282 /* CGImage.m */, - FEC11A4E0FD4B4D600082282 /* CGImageProperties.h */, - FEC11A4F0FD4B4D600082282 /* CGImageProperties.m */, - FEC11A500FD4B4D600082282 /* CGImageSource.h */, - FEC11A510FD4B4D600082282 /* CGImageSource.m */, - FEC11A520FD4B4D600082282 /* CGLayer.h */, - FEC11A530FD4B4D600082282 /* CGLayer.m */, - FEC11A540FD4B4D600082282 /* CGPath.h */, - FEC11A550FD4B4D600082282 /* CGPath.m */, - FEC11A560FD4B4D600082282 /* CGPattern.h */, - FEC11A570FD4B4D600082282 /* CGPattern.m */, - FEAED71A0FD6C4460043F915 /* CGPDFContext.h */, - FEAED71B0FD6C4460043F915 /* CGPDFContext.m */, - FEC11A580FD4B4D600082282 /* CGPDFDocument.h */, - FEC11A590FD4B4D600082282 /* CGPDFDocument.m */, - FEC11A5A0FD4B4D600082282 /* CGPDFPage.h */, - FEC11A5B0FD4B4D600082282 /* CGPDFPage.m */, - FEC11A5C0FD4B4D600082282 /* CGShading.h */, - FEC11A5D0FD4B4D600082282 /* CGShading.m */, - FEC11A5E0FD4B4D600082282 /* CGWindow.h */, - FEC11A5F0FD4B4D600082282 /* CGWindow.m */, - FE7434FB10A8BE84004CDF00 /* CoreFoundation.xcodeproj */, - FEC11A600FD4B4D600082282 /* CoreGraphics.h */, - FEC11A610FD4B4D600082282 /* CoreGraphicsExport.h */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - FE6F7BC00FD5572F00C3244F /* Foundation.xcodeproj */, - 034768DFFF38A50411DB9C8B /* Products */, - 089C1665FE841158C02AAC07 /* Resources */, - ); - indentWidth = 4; - name = CoreGraphics; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - FE06B18C1430E7790071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A40E170935D3002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A40F170935D3002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A410170935D3002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A411170935D3002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A412170935D3002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A413170935D3002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A414170935D3002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A415170935D3002A60B7 /* solaris-sparc-framework.xcconfig */, - FE06B18D1430E7790071169B /* darwin-i386.xcconfig */, - FE06B18E1430E7790071169B /* darwin-ppc.xcconfig */, - FE06B18F1430E7790071169B /* darwin-x86_64.xcconfig */, - FE06B1901430E7790071169B /* darwin.xcconfig */, - FE06B1911430E7790071169B /* freebsd-i386.xcconfig */, - FE06B1921430E7790071169B /* freebsd.xcconfig */, - FE06B1931430E7790071169B /* linux-arm.xcconfig */, - FE06B1941430E7790071169B /* linux-i386.xcconfig */, - FE06B1951430E7790071169B /* linux-ppc.xcconfig */, - FE06B1961430E7790071169B /* linux.xcconfig */, - FE06B1971430E7790071169B /* platform.xcconfig */, - FE06B1981430E7790071169B /* solaris-sparc.xcconfig */, - FE06B1991430E7790071169B /* solaris.xcconfig */, - FE06B19A1430E7790071169B /* windows-i386.xcconfig */, - FE06B19B1430E7790071169B /* windows.xcconfig */, - FE70860C143117A500B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE5C0A1D1162953300065D1C /* Onyx2D */ = { - isa = PBXGroup; - children = ( - FE9ACFE715614CE4002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m */, - FE9ACFE815614CE4002AFCA9 /* O2ImageDecoder_JPEG_stb.m */, - FE9ACFE915614CE4002AFCA9 /* O2ImageDecoder.m */, - FE39C40C120357EA00A80A71 /* O2ClipState.h */, - FE39C40D120357EA00A80A71 /* O2ClipState.m */, - FE43BE4511FFBAC100119833 /* O2PDFBlock.h */, - FE43BE4611FFBAC100119833 /* O2PDFBlock.m */, - FE71F41111FDD43700E6F801 /* O2TTFDecoder.h */, - FE71F41211FDD43700E6F801 /* O2TTFDecoder.m */, - FE71F26911FD220400E6F801 /* O2PDFFont.h */, - FE71F26A11FD220400E6F801 /* O2PDFFont.m */, - FE71F26B11FD220400E6F801 /* O2PDFFunction_Type0.h */, - FE71F26C11FD220400E6F801 /* O2PDFFunction_Type0.m */, - FE71F0D811FC7CEC00E6F801 /* O2PDFCharWidths.h */, - FE71F0D911FC7CEC00E6F801 /* O2PDFCharWidths.m */, - FE71EF3811FBCAA000E6F801 /* O2Encoding.h */, - FE71EF3911FBCAA000E6F801 /* O2Encoding.m */, - FEC11A630FD4B4D600082282 /* gif_lib.h */, - FEC11A640FD4B4D600082282 /* gif_lib.m */, - FE3C8539108779410018252A /* O2AffineTransform.h */, - FE3C853A108779410018252A /* O2AffineTransform.m */, - FEC11A650FD4B4D600082282 /* O2BitmapContext.h */, - FEC11A660FD4B4D600082282 /* O2BitmapContext.m */, - FEC11A670FD4B4D600082282 /* O2Blending.h */, - FEC11A680FD4B4D600082282 /* O2ClipPhase.h */, - FEC11A690FD4B4D600082282 /* O2ClipPhase.m */, - FEC11A6A0FD4B4D600082282 /* O2Color.h */, - FEC11A6B0FD4B4D600082282 /* O2Color.m */, - FEC11A6C0FD4B4D600082282 /* O2ColorSpace+PDF.h */, - FEC11A6D0FD4B4D600082282 /* O2ColorSpace+PDF.m */, - FEC11A6E0FD4B4D600082282 /* O2ColorSpace.h */, - FEC11A6F0FD4B4D600082282 /* O2ColorSpace.m */, - FEC11A700FD4B4D600082282 /* O2Context.h */, - FEC11A710FD4B4D600082282 /* O2Context.m */, - FEC11A720FD4B4D600082282 /* O2Context_builtin.h */, - FEC11A730FD4B4D600082282 /* O2Context_builtin.m */, - FEAED70E0FD6C40E0043F915 /* O2DataConsumer.h */, - FEAED70F0FD6C40E0043F915 /* O2DataConsumer.m */, - FEC11A740FD4B4D600082282 /* O2DataProvider.h */, - FEC11A750FD4B4D600082282 /* O2DataProvider.m */, - FEC11AE30FD4B4D600082282 /* O2Decoder_TIFF.h */, - FEC11AE40FD4B4D600082282 /* O2Decoder_TIFF.m */, - FE8C020C10C59BB300FE4072 /* O2Encoder_TIFF.h */, - FE8C020D10C59BB300FE4072 /* O2Encoder_TIFF.m */, - FEC11A760FD4B4D600082282 /* O2Exceptions.h */, - FEC11A770FD4B4D600082282 /* O2Font.h */, - FEC11A780FD4B4D600082282 /* O2Font.m */, - FEC11A790FD4B4D600082282 /* O2Function+PDF.h */, - FEC11A7A0FD4B4D600082282 /* O2Function+PDF.m */, - FEC11A7B0FD4B4D600082282 /* O2Function.h */, - FEC11A7C0FD4B4D600082282 /* O2Function.m */, - FE3C853B108779410018252A /* O2Geometry.h */, - FE3C853C108779410018252A /* O2Geometry.m */, - FEC11A7D0FD4B4D600082282 /* O2GraphicsState.h */, - FEC11A7E0FD4B4D600082282 /* O2GraphicsState.m */, - FEC11A7F0FD4B4D600082282 /* O2Image+PDF.h */, - FEC11A800FD4B4D600082282 /* O2Image+PDF.m */, - FEC11A810FD4B4D600082282 /* O2Image.h */, - FEC11A820FD4B4D600082282 /* O2Image.m */, - FE8C020E10C59BB300FE4072 /* O2ImageDestination.h */, - FE8C020F10C59BB300FE4072 /* O2ImageDestination.m */, - FEC11A830FD4B4D600082282 /* O2ImageSource.h */, - FEC11A840FD4B4D600082282 /* O2ImageSource.m */, - FEC11A850FD4B4D600082282 /* O2ImageSource_BMP.h */, - FEC11A860FD4B4D600082282 /* O2ImageSource_BMP.m */, - FEC11A870FD4B4D600082282 /* O2ImageSource_GIF.h */, - FEC11A880FD4B4D600082282 /* O2ImageSource_GIF.m */, - FE44BDE311EBA0D400762BF1 /* O2ImageSource_ICNS.h */, - FE44BDE411EBA0D400762BF1 /* O2ImageSource_ICNS.m */, - FEC11A890FD4B4D600082282 /* O2ImageSource_JPEG.h */, - FEC11A8A0FD4B4D600082282 /* O2ImageSource_JPEG.m */, - FEC11A8B0FD4B4D600082282 /* O2ImageSource_PNG.h */, - FEC11A8C0FD4B4D600082282 /* O2ImageSource_PNG.m */, - FEC11A8D0FD4B4D600082282 /* O2ImageSource_TIFF.h */, - FEC11A8E0FD4B4D600082282 /* O2ImageSource_TIFF.m */, - FEC11A8F0FD4B4D600082282 /* O2Layer.h */, - FEC11A900FD4B4D600082282 /* O2Layer.m */, - FEBF5BCD100D8B2C00F64C71 /* O2LZW.h */, - FEBF5BCE100D8B2C00F64C71 /* O2LZW.m */, - FEC11A910FD4B4D600082282 /* O2MutablePath.h */, - FEC11A920FD4B4D600082282 /* O2MutablePath.m */, - FEC11A930FD4B4D600082282 /* O2Paint.h */, - FEC11A940FD4B4D600082282 /* O2Paint.m */, - FEC11A950FD4B4D600082282 /* O2Paint_axialGradient.h */, - FEC11A960FD4B4D600082282 /* O2Paint_axialGradient.m */, - FEC11A970FD4B4D600082282 /* O2Paint_color.h */, - FEC11A980FD4B4D600082282 /* O2Paint_color.m */, - FEC11A990FD4B4D600082282 /* O2Paint_image.h */, - FEC11A9A0FD4B4D600082282 /* O2Paint_image.m */, - FEC11A9B0FD4B4D600082282 /* O2Paint_pattern.h */, - FEC11A9C0FD4B4D600082282 /* O2Paint_pattern.m */, - FEC11A9D0FD4B4D600082282 /* O2Paint_radialGradient.h */, - FEC11A9E0FD4B4D600082282 /* O2Paint_radialGradient.m */, - FEC11A9F0FD4B4D600082282 /* O2Paint_ramp.h */, - FEC11AA00FD4B4D600082282 /* O2Paint_ramp.m */, - FEC11AA10FD4B4D600082282 /* O2Path.h */, - FEC11AA20FD4B4D600082282 /* O2Path.m */, - FEC11AA30FD4B4D600082282 /* O2Pattern.h */, - FEC11AA40FD4B4D600082282 /* O2Pattern.m */, - FEC11AA50FD4B4D600082282 /* O2PDFArray.h */, - FEC11AA60FD4B4D600082282 /* O2PDFArray.m */, - FEC11AA70FD4B4D600082282 /* O2PDFContentStream.h */, - FEC11AA80FD4B4D600082282 /* O2PDFContentStream.m */, - FEC11AA90FD4B4D600082282 /* O2PDFContext.h */, - FEC11AAA0FD4B4D600082282 /* O2PDFContext.m */, - FEC11AAB0FD4B4D600082282 /* O2PDFDictionary.h */, - FEC11AAC0FD4B4D600082282 /* O2PDFDictionary.m */, - FEC11AAD0FD4B4D600082282 /* O2PDFDocument.h */, - FEC11AAE0FD4B4D600082282 /* O2PDFDocument.m */, - FEC11AAF0FD4B4D600082282 /* O2PDFFilter.h */, - FEC11AB00FD4B4D600082282 /* O2PDFFilter.m */, - FEC11AB10FD4B4D600082282 /* O2PDFFunction_Type2.h */, - FEC11AB20FD4B4D600082282 /* O2PDFFunction_Type2.m */, - FEC11AB30FD4B4D600082282 /* O2PDFFunction_Type3.h */, - FEC11AB40FD4B4D600082282 /* O2PDFFunction_Type3.m */, - FE71ED8711FA88E700E6F801 /* O2PDFFunction_Type4.h */, - FE71ED8811FA88E700E6F801 /* O2PDFFunction_Type4.m */, - FEC11AB50FD4B4D600082282 /* O2PDFObject.h */, - FEC11AB60FD4B4D600082282 /* O2PDFObject.m */, - FEC11AB70FD4B4D600082282 /* O2PDFObject_Boolean.h */, - FEC11AB80FD4B4D600082282 /* O2PDFObject_Boolean.m */, - FEC11AB90FD4B4D600082282 /* O2PDFObject_const.h */, - FEC11ABA0FD4B4D600082282 /* O2PDFObject_const.m */, - FEC11ABB0FD4B4D600082282 /* O2PDFObject_identifier.h */, - FEC11ABC0FD4B4D600082282 /* O2PDFObject_identifier.m */, - FEC11ABD0FD4B4D600082282 /* O2PDFObject_Integer.h */, - FEC11ABE0FD4B4D600082282 /* O2PDFObject_Integer.m */, - FEC11ABF0FD4B4D600082282 /* O2PDFObject_Name.h */, - FEC11AC00FD4B4D600082282 /* O2PDFObject_Name.m */, - FEC11AC10FD4B4D600082282 /* O2PDFObject_R.h */, - FEC11AC20FD4B4D600082282 /* O2PDFObject_R.m */, - FEC11AC30FD4B4D600082282 /* O2PDFObject_Real.h */, - FEC11AC40FD4B4D600082282 /* O2PDFObject_Real.m */, - FEC11AC50FD4B4D600082282 /* O2PDFOperators.h */, - FEC11AC60FD4B4D600082282 /* O2PDFOperators.m */, - FEC11AC70FD4B4D600082282 /* O2PDFOperatorTable.h */, - FEC11AC80FD4B4D600082282 /* O2PDFOperatorTable.m */, - FEC11AC90FD4B4D600082282 /* O2PDFPage.h */, - FEC11ACA0FD4B4D600082282 /* O2PDFPage.m */, - FEC11ACB0FD4B4D600082282 /* O2PDFScanner.h */, - FEC11ACC0FD4B4D600082282 /* O2PDFScanner.m */, - FEC11ACD0FD4B4D600082282 /* O2PDFStream.h */, - FEC11ACE0FD4B4D600082282 /* O2PDFStream.m */, - FEC11ACF0FD4B4D600082282 /* O2PDFString.h */, - FEC11AD00FD4B4D600082282 /* O2PDFString.m */, - FEC11AD10FD4B4D600082282 /* O2PDFxref.h */, - FEC11AD20FD4B4D600082282 /* O2PDFxref.m */, - FEC11AD30FD4B4D600082282 /* O2PDFxrefEntry.h */, - FEC11AD40FD4B4D600082282 /* O2PDFxrefEntry.m */, - FEC11AD50FD4B4D600082282 /* O2Shading+PDF.h */, - FEC11AD60FD4B4D600082282 /* O2Shading+PDF.m */, - FEC11AD70FD4B4D600082282 /* O2Shading.h */, - FEC11AD80FD4B4D600082282 /* O2Shading.m */, - FEC11AD90FD4B4D600082282 /* O2Surface.h */, - FEC11ADA0FD4B4D600082282 /* O2Surface.m */, - FEC11AE10FD4B4D600082282 /* O2TIFFImageDirectory.h */, - FEC11AE20FD4B4D600082282 /* O2TIFFImageDirectory.m */, - FEC11ADB0FD4B4D600082282 /* O2zlib.h */, - FEC11ADC0FD4B4D600082282 /* O2zlib.m */, - FEC11AE50FD4B4D600082282 /* VGmath.h */, - FEC11AE60FD4B4D600082282 /* VGPath.h */, - FEC11AE70FD4B4D600082282 /* VGPath.m */, - ); - name = Onyx2D; - path = ../Onyx2D; - sourceTree = ""; - }; - FE5C0BE811629FD900065D1C /* Products */ = { - isa = PBXGroup; - children = ( - FE5C0BEC11629FD900065D1C /* Onyx2D.framework */, - FE5C0D4C1162A9B800065D1C /* Onyx2D.framework */, - FE5C0D4E1162A9B800065D1C /* Onyx2D.framework */, - FE5C0D5F1162A9E400065D1C /* Onyx2D.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE6F7BC10FD5572F00C3244F /* Products */ = { - isa = PBXGroup; - children = ( - FE6F7BCB0FD5572F00C3244F /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE7434FC10A8BE84004CDF00 /* Products */ = { - isa = PBXGroup; - children = ( - FE74350410A8BE84004CDF00 /* CoreFoundation.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FEC11AE80FD4B4D600082282 /* CGAffineTransform.h in Headers */, - FEC11AEA0FD4B4D600082282 /* CGBitmapContext.h in Headers */, - FEC11AEC0FD4B4D600082282 /* CGColor.h in Headers */, - FEC11AEE0FD4B4D600082282 /* CGColorSpace.h in Headers */, - FEC11AF00FD4B4D600082282 /* CGContext.h in Headers */, - FEC11AF20FD4B4D600082282 /* CGDataProvider.h in Headers */, - FEC11AF40FD4B4D600082282 /* CGEvent.h in Headers */, - FEC11AF60FD4B4D600082282 /* CGFont.h in Headers */, - FEC11AF80FD4B4D600082282 /* CGFunction.h in Headers */, - FEC11AFA0FD4B4D600082282 /* CGGeometry.h in Headers */, - FEC11AFC0FD4B4D600082282 /* CGImage.h in Headers */, - FEC11AFE0FD4B4D600082282 /* CGImageProperties.h in Headers */, - FEC11B000FD4B4D600082282 /* CGImageSource.h in Headers */, - FEC11B020FD4B4D600082282 /* CGLayer.h in Headers */, - FEC11B040FD4B4D600082282 /* CGPath.h in Headers */, - FEC11B060FD4B4D600082282 /* CGPattern.h in Headers */, - FEC11B080FD4B4D600082282 /* CGPDFDocument.h in Headers */, - FEC11B0A0FD4B4D600082282 /* CGPDFPage.h in Headers */, - FEC11B0C0FD4B4D600082282 /* CGShading.h in Headers */, - FEC11B0E0FD4B4D600082282 /* CGWindow.h in Headers */, - FEC11B100FD4B4D600082282 /* CoreGraphics.h in Headers */, - FEC11B110FD4B4D600082282 /* CoreGraphicsExport.h in Headers */, - FEC11B130FD4B4D600082282 /* gif_lib.h in Headers */, - FEC11B150FD4B4D600082282 /* O2BitmapContext.h in Headers */, - FEC11B170FD4B4D600082282 /* O2Blending.h in Headers */, - FEC11B180FD4B4D600082282 /* O2ClipPhase.h in Headers */, - FEC11B1A0FD4B4D600082282 /* O2Color.h in Headers */, - FEC11B1C0FD4B4D600082282 /* O2ColorSpace+PDF.h in Headers */, - FEC11B1E0FD4B4D600082282 /* O2ColorSpace.h in Headers */, - FEC11B200FD4B4D600082282 /* O2Context.h in Headers */, - FEC11B220FD4B4D600082282 /* O2Context_builtin.h in Headers */, - FEC11B240FD4B4D600082282 /* O2DataProvider.h in Headers */, - FEC11B260FD4B4D600082282 /* O2Exceptions.h in Headers */, - FEC11B270FD4B4D600082282 /* O2Font.h in Headers */, - FEC11B290FD4B4D600082282 /* O2Function+PDF.h in Headers */, - FEC11B2B0FD4B4D600082282 /* O2Function.h in Headers */, - FEC11B2D0FD4B4D600082282 /* O2GraphicsState.h in Headers */, - FEC11B2F0FD4B4D600082282 /* O2Image+PDF.h in Headers */, - FEC11B310FD4B4D600082282 /* O2Image.h in Headers */, - FEC11B330FD4B4D600082282 /* O2ImageSource.h in Headers */, - FEC11B350FD4B4D600082282 /* O2ImageSource_BMP.h in Headers */, - FEC11B370FD4B4D600082282 /* O2ImageSource_GIF.h in Headers */, - FEC11B390FD4B4D600082282 /* O2ImageSource_JPEG.h in Headers */, - FEC11B3B0FD4B4D600082282 /* O2ImageSource_PNG.h in Headers */, - FEC11B3D0FD4B4D600082282 /* O2ImageSource_TIFF.h in Headers */, - FEC11B3F0FD4B4D600082282 /* O2Layer.h in Headers */, - FEC11B410FD4B4D600082282 /* O2MutablePath.h in Headers */, - FEC11B430FD4B4D600082282 /* O2Paint.h in Headers */, - FEC11B450FD4B4D600082282 /* O2Paint_axialGradient.h in Headers */, - FEC11B470FD4B4D600082282 /* O2Paint_color.h in Headers */, - FEC11B490FD4B4D600082282 /* O2Paint_image.h in Headers */, - FEC11B4B0FD4B4D600082282 /* O2Paint_pattern.h in Headers */, - FEC11B4D0FD4B4D600082282 /* O2Paint_radialGradient.h in Headers */, - FEC11B4F0FD4B4D600082282 /* O2Paint_ramp.h in Headers */, - FEC11B510FD4B4D600082282 /* O2Path.h in Headers */, - FEC11B530FD4B4D600082282 /* O2Pattern.h in Headers */, - FEC11B550FD4B4D600082282 /* O2PDFArray.h in Headers */, - FEC11B570FD4B4D600082282 /* O2PDFContentStream.h in Headers */, - FEC11B590FD4B4D600082282 /* O2PDFContext.h in Headers */, - FEC11B5B0FD4B4D600082282 /* O2PDFDictionary.h in Headers */, - FEC11B5D0FD4B4D600082282 /* O2PDFDocument.h in Headers */, - FEC11B5F0FD4B4D600082282 /* O2PDFFilter.h in Headers */, - FEC11B610FD4B4D600082282 /* O2PDFFunction_Type2.h in Headers */, - FEC11B630FD4B4D600082282 /* O2PDFFunction_Type3.h in Headers */, - FEC11B650FD4B4D600082282 /* O2PDFObject.h in Headers */, - FEC11B670FD4B4D600082282 /* O2PDFObject_Boolean.h in Headers */, - FEC11B690FD4B4D600082282 /* O2PDFObject_const.h in Headers */, - FEC11B6B0FD4B4D600082282 /* O2PDFObject_identifier.h in Headers */, - FEC11B6D0FD4B4D600082282 /* O2PDFObject_Integer.h in Headers */, - FEC11B6F0FD4B4D600082282 /* O2PDFObject_Name.h in Headers */, - FEC11B710FD4B4D600082282 /* O2PDFObject_R.h in Headers */, - FEC11B730FD4B4D600082282 /* O2PDFObject_Real.h in Headers */, - FEC11B750FD4B4D600082282 /* O2PDFOperators.h in Headers */, - FEC11B770FD4B4D600082282 /* O2PDFOperatorTable.h in Headers */, - FEC11B790FD4B4D600082282 /* O2PDFPage.h in Headers */, - FEC11B7B0FD4B4D600082282 /* O2PDFScanner.h in Headers */, - FEC11B7D0FD4B4D600082282 /* O2PDFStream.h in Headers */, - FEC11B7F0FD4B4D600082282 /* O2PDFString.h in Headers */, - FEC11B810FD4B4D600082282 /* O2PDFxref.h in Headers */, - FEC11B830FD4B4D600082282 /* O2PDFxrefEntry.h in Headers */, - FEC11B850FD4B4D600082282 /* O2Shading+PDF.h in Headers */, - FEC11B870FD4B4D600082282 /* O2Shading.h in Headers */, - FEC11B890FD4B4D600082282 /* O2Surface.h in Headers */, - FEC11B8B0FD4B4D600082282 /* O2zlib.h in Headers */, - FEC11B910FD4B4D600082282 /* O2TIFFImageDirectory.h in Headers */, - FEC11B930FD4B4D600082282 /* O2Decoder_TIFF.h in Headers */, - FEC11B950FD4B4D600082282 /* VGmath.h in Headers */, - FEC11B960FD4B4D600082282 /* VGPath.h in Headers */, - FE9DB4610FD6C38300A1CE17 /* CGDataConsumer.h in Headers */, - FEAED7100FD6C40E0043F915 /* O2DataConsumer.h in Headers */, - FEAED71C0FD6C4460043F915 /* CGPDFContext.h in Headers */, - FEBF5BCF100D8B2C00F64C71 /* O2LZW.h in Headers */, - FE3C853D108779410018252A /* O2AffineTransform.h in Headers */, - FE3C853F108779410018252A /* O2Geometry.h in Headers */, - FE3C85961087928D0018252A /* CGConversions.h in Headers */, - FE8C021010C59BB300FE4072 /* CGImageDestination.h in Headers */, - FE8C021210C59BB300FE4072 /* O2Encoder_TIFF.h in Headers */, - FE8C021410C59BB300FE4072 /* O2ImageDestination.h in Headers */, - FED56E8411A2D8E200D6D09B /* CGGradient.h in Headers */, - FEAE004411E4E6AD00CA0912 /* CGDirectDisplay.h in Headers */, - FEF5A70811E4E782009B0041 /* CGError.h in Headers */, - FE44BDE511EBA0D400762BF1 /* O2ImageSource_ICNS.h in Headers */, - FE71ED8911FA88E700E6F801 /* O2PDFFunction_Type4.h in Headers */, - FE71EF3A11FBCAA000E6F801 /* O2Encoding.h in Headers */, - FE71F0DA11FC7CEC00E6F801 /* O2PDFCharWidths.h in Headers */, - FE71F26D11FD220400E6F801 /* O2PDFFont.h in Headers */, - FE71F26F11FD220400E6F801 /* O2PDFFunction_Type0.h in Headers */, - FE71F41311FDD43700E6F801 /* O2TTFDecoder.h in Headers */, - FE43BE4711FFBAC100119833 /* O2PDFBlock.h in Headers */, - FE39C40E120357EA00A80A71 /* O2ClipState.h in Headers */, - FE2752DC12301F4500BD6643 /* CGLPixelSurface.h in Headers */, - FE5ADA6C12BBFF8500A922A2 /* CGWindowLevel.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* CoreGraphics */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreGraphics" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - FE6F7BD70FD5573B00C3244F /* PBXTargetDependency */, - FE74350E10A8BE94004CDF00 /* PBXTargetDependency */, - FE5C0BEE11629FE700065D1C /* PBXTargetDependency */, - ); - name = CoreGraphics; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = CoreGraphics; - productReference = 8DC2EF5B0486A6940098B216 /* CoreGraphics.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreGraphics" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* CoreGraphics */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE7434FC10A8BE84004CDF00 /* Products */; - ProjectRef = FE7434FB10A8BE84004CDF00 /* CoreFoundation.xcodeproj */; - }, - { - ProductGroup = FE6F7BC10FD5572F00C3244F /* Products */; - ProjectRef = FE6F7BC00FD5572F00C3244F /* Foundation.xcodeproj */; - }, - { - ProductGroup = FE5C0BE811629FD900065D1C /* Products */; - ProjectRef = FE5C0BE711629FD900065D1C /* Onyx2D.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* CoreGraphics */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE5C0BEC11629FD900065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0BEB11629FD900065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE5C0D4C1162A9B800065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0D4B1162A9B800065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE5C0D4E1162A9B800065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0D4D1162A9B800065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE5C0D5F1162A9E400065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0D5E1162A9E400065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE6F7BCB0FD5572F00C3244F /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE6F7BCA0FD5572F00C3244F /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE74350410A8BE84004CDF00 /* CoreFoundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreFoundation.framework; - remoteRef = FE74350310A8BE84004CDF00 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE5C0BEE11629FE700065D1C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Onyx2D-Windows-i386"; - targetProxy = FE5C0BED11629FE700065D1C /* PBXContainerItemProxy */; - }; - FE6F7BD70FD5573B00C3244F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Foundation-Windows-i386"; - targetProxy = FE6F7BD60FD5573B00C3244F /* PBXContainerItemProxy */; - }; - FE74350E10A8BE94004CDF00 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CoreFoundation-Windows-i386"; - targetProxy = FE74350D10A8BE94004CDF00 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE70860C143117A500B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreGraphics; - }; - name = "Windows-i386"; - }; - 1DEB91B308733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - CFF0A15D1AF473C600160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFF0A15E1AF473C600160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A40E170935D3002A60B7 /* darwin-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreGraphics; - }; - name = "Darwin-i386"; - }; - CFF0A1621AF473CC00160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFF0A1631AF473CC00160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A411170935D3002A60B7 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreGraphics; - }; - name = "FreeBSD-i386"; - }; - FECC1D61108CEC9900BD4A91 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - FECC1D62108CEC9900BD4A91 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A413170935D3002A60B7 /* linux-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreGraphics; - }; - name = "Linux-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreGraphics" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Windows-i386 */, - CFF0A1631AF473CC00160EAA /* FreeBSD-i386 */, - CFF0A15E1AF473C600160EAA /* Darwin-i386 */, - FECC1D62108CEC9900BD4A91 /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreGraphics" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Windows-i386 */, - CFF0A1621AF473CC00160EAA /* FreeBSD-i386 */, - CFF0A15D1AF473C600160EAA /* Darwin-i386 */, - FECC1D61108CEC9900BD4A91 /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/CoreServices/CoreServices.h b/CoreServices/CoreServices.h deleted file mode 100644 index 48a51ac8..00000000 --- a/CoreServices/CoreServices.h +++ /dev/null @@ -1 +0,0 @@ -#import diff --git a/CoreServices/CoreServices.xcodeproj/project.pbxproj b/CoreServices/CoreServices.xcodeproj/project.pbxproj deleted file mode 100644 index 90d4c781..00000000 --- a/CoreServices/CoreServices.xcodeproj/project.pbxproj +++ /dev/null @@ -1,352 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - FE7433A910A89ED7004CDF00 /* CoreServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7433A810A89ED7004CDF00 /* CoreServices.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE7433B210A89F5D004CDF00 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CFNetwork-Windows-i386"; - }; - FE7433B410A89F63004CDF00 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CFNetwork-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* CoreServices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreServices.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE708626143117B300B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE7433A810A89ED7004CDF00 /* CoreServices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreServices.h; sourceTree = ""; }; - FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CFNetwork.xcodeproj; path = ../CFNetwork/CFNetwork.xcodeproj; sourceTree = SOURCE_ROOT; }; - FEC0A3911709356B002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3921709356B002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3931709356B002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A3941709356B002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3951709356B002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A3961709356B002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3971709356B002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3981709356B002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* CoreServices.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* CoreServices */ = { - isa = PBXGroup; - children = ( - FE06B1BD1430E7AF0071169B /* xcconfig */, - FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */, - FE7433A810A89ED7004CDF00 /* CoreServices.h */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = CoreServices; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B1BD1430E7AF0071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A3911709356B002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A3921709356B002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A3931709356B002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A3941709356B002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A3951709356B002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A3961709356B002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A3971709356B002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A3981709356B002A60B7 /* solaris-sparc-framework.xcconfig */, - FE708626143117B300B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE7433AF10A89F5D004CDF00 /* Products */ = { - isa = PBXGroup; - children = ( - FE7433B310A89F5D004CDF00 /* CFNetwork.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE7433A910A89ED7004CDF00 /* CoreServices.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* CoreServices */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreServices" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - FE7433B510A89F63004CDF00 /* PBXTargetDependency */, - ); - name = CoreServices; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = CoreServices; - productReference = 8DC2EF5B0486A6940098B216 /* CoreServices.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreServices" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* CoreServices */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE7433AF10A89F5D004CDF00 /* Products */; - ProjectRef = FE7433AE10A89F5D004CDF00 /* CFNetwork.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* CoreServices */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE7433B310A89F5D004CDF00 /* CFNetwork.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CFNetwork.framework; - remoteRef = FE7433B210A89F5D004CDF00 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE7433B510A89F63004CDF00 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CFNetwork-Windows-i386"; - targetProxy = FE7433B410A89F63004CDF00 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AE08733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE708626143117B300B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreServices; - }; - name = "Windows-i386"; - }; - 1DEB91AF08733DA50010E9CD /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3911709356B002A60B7 /* darwin-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreServices; - }; - name = "Darwin-i386"; - }; - 1DEB91B208733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - 1DEB91B308733DA50010E9CD /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFC5B4771AF468F100FBB52A /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFC5B4781AF468F100FBB52A /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3961709356B002A60B7 /* linux-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreServices; - }; - name = "Linux-i386"; - }; - CFC5B47D1AF468F800FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFC5B47E1AF468F800FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3941709356B002A60B7 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreServices; - }; - name = "FreeBSD-i386"; - }; - CFC5B4831AF4690000FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-x86_64"; - }; - CFC5B4841AF4690000FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3931709356B002A60B7 /* darwin-x86_64-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreServices; - }; - name = "Darwin-x86_64"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreServices" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AE08733DA50010E9CD /* Windows-i386 */, - CFC5B4841AF4690000FBB52A /* Darwin-x86_64 */, - CFC5B47E1AF468F800FBB52A /* FreeBSD-i386 */, - 1DEB91AF08733DA50010E9CD /* Darwin-i386 */, - CFC5B4781AF468F100FBB52A /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Darwin-i386"; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreServices" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B208733DA50010E9CD /* Windows-i386 */, - CFC5B4831AF4690000FBB52A /* Darwin-x86_64 */, - CFC5B47D1AF468F800FBB52A /* FreeBSD-i386 */, - 1DEB91B308733DA50010E9CD /* Darwin-i386 */, - CFC5B4771AF468F100FBB52A /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Darwin-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/CoreServices/English.lproj/InfoPlist.strings b/CoreServices/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/CoreServices/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/CoreServices/Info.plist b/CoreServices/Info.plist deleted file mode 100644 index d58b9ca5..00000000 --- a/CoreServices/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.CoreServices - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - OBJC - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/CoreText/CoreText.xcodeproj/project.pbxproj b/CoreText/CoreText.xcodeproj/project.pbxproj deleted file mode 100644 index abd492c0..00000000 --- a/CoreText/CoreText.xcodeproj/project.pbxproj +++ /dev/null @@ -1,421 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - FECF92110FFB217F007AECF1 /* CoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = FECF920B0FFB217F007AECF1 /* CoreText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECF92120FFB217F007AECF1 /* CoreTextExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FECF920C0FFB217F007AECF1 /* CoreTextExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECF92130FFB217F007AECF1 /* CTFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FECF920D0FFB217F007AECF1 /* CTFont.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECF92150FFB217F007AECF1 /* KTFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FECF920F0FFB217F007AECF1 /* KTFont.h */; settings = {ATTRIBUTES = (Private, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE5A884810C6F286005E348A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5A884510C6F286005E348A; - remoteInfo = "CoreGraphics-Darwin-i386 copy"; - }; - FECF92710FFB2BA7007AECF1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreGraphics-Windows-i386"; - }; - FECF92730FFB2BA7007AECF1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE6F7BB30FD554A800C3244F; - remoteInfo = "CoreGraphics-Linux-i386"; - }; - FECF92750FFB2BA7007AECF1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE6F7C980FD55FA300C3244F; - remoteInfo = "CoreGraphics-Darwin-i386"; - }; - FECF92770FFB2BB0007AECF1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CoreGraphics-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* CoreText.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreText.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B2161430E7D90071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B2171430E7D90071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B2181430E7D90071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B2191430E7D90071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B21A1430E7D90071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B21B1430E7D90071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B21C1430E7D90071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B21D1430E7D90071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B21E1430E7D90071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B21F1430E7D90071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B2201430E7D90071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B2211430E7D90071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B2221430E7D90071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B2231430E7D90071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B2241430E7D90071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE708651143117C400B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3FE170935CA002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3FF170935CA002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A400170935CA002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A401170935CA002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A402170935CA002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A403170935CA002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A404170935CA002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A405170935CA002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FECF920B0FFB217F007AECF1 /* CoreText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreText.h; sourceTree = ""; }; - FECF920C0FFB217F007AECF1 /* CoreTextExport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreTextExport.h; sourceTree = ""; }; - FECF920D0FFB217F007AECF1 /* CTFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CTFont.h; sourceTree = ""; }; - FECF920E0FFB217F007AECF1 /* CTFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CTFont.m; sourceTree = ""; }; - FECF920F0FFB217F007AECF1 /* KTFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KTFont.h; sourceTree = ""; }; - FECF92100FFB217F007AECF1 /* KTFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KTFont.m; sourceTree = ""; }; - FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreGraphics.xcodeproj; path = ../CoreGraphics/CoreGraphics.xcodeproj; sourceTree = SOURCE_ROOT; }; - FECF928B0FFB2C5C007AECF1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Cocotron/1.0/Windows/i386/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* CoreText.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* CoreText */ = { - isa = PBXGroup; - children = ( - FE06B2151430E7D90071169B /* xcconfig */, - FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */, - 08FB77AEFE84172EC02AAC07 /* Classes */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = CoreText; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - FECF928B0FFB2C5C007AECF1 /* CoreGraphics.framework */, - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AEFE84172EC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - FECF920B0FFB217F007AECF1 /* CoreText.h */, - FECF920C0FFB217F007AECF1 /* CoreTextExport.h */, - FECF920D0FFB217F007AECF1 /* CTFont.h */, - FECF920E0FFB217F007AECF1 /* CTFont.m */, - FECF920F0FFB217F007AECF1 /* KTFont.h */, - FECF92100FFB217F007AECF1 /* KTFont.m */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B2151430E7D90071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A3FE170935CA002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A3FF170935CA002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A400170935CA002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A401170935CA002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A402170935CA002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A403170935CA002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A404170935CA002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A405170935CA002A60B7 /* solaris-sparc-framework.xcconfig */, - FE06B2161430E7D90071169B /* darwin-i386.xcconfig */, - FE06B2171430E7D90071169B /* darwin-ppc.xcconfig */, - FE06B2181430E7D90071169B /* darwin-x86_64.xcconfig */, - FE06B2191430E7D90071169B /* darwin.xcconfig */, - FE06B21A1430E7D90071169B /* freebsd-i386.xcconfig */, - FE06B21B1430E7D90071169B /* freebsd.xcconfig */, - FE06B21C1430E7D90071169B /* linux-arm.xcconfig */, - FE06B21D1430E7D90071169B /* linux-i386.xcconfig */, - FE06B21E1430E7D90071169B /* linux-ppc.xcconfig */, - FE06B21F1430E7D90071169B /* linux.xcconfig */, - FE06B2201430E7D90071169B /* platform.xcconfig */, - FE06B2211430E7D90071169B /* solaris-sparc.xcconfig */, - FE06B2221430E7D90071169B /* solaris.xcconfig */, - FE06B2231430E7D90071169B /* windows-i386.xcconfig */, - FE06B2241430E7D90071169B /* windows.xcconfig */, - FE708651143117C400B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FECF926C0FFB2BA7007AECF1 /* Products */ = { - isa = PBXGroup; - children = ( - FECF92720FFB2BA7007AECF1 /* CoreGraphics.framework */, - FECF92740FFB2BA7007AECF1 /* CoreGraphics.framework */, - FECF92760FFB2BA7007AECF1 /* CoreGraphics.framework */, - FE5A884910C6F286005E348A /* CoreGraphics.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FECF92110FFB217F007AECF1 /* CoreText.h in Headers */, - FECF92120FFB217F007AECF1 /* CoreTextExport.h in Headers */, - FECF92130FFB217F007AECF1 /* CTFont.h in Headers */, - FECF92150FFB217F007AECF1 /* KTFont.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* CoreText */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreText" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - FECF92780FFB2BB0007AECF1 /* PBXTargetDependency */, - ); - name = CoreText; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = CoreText; - productReference = 8DC2EF5B0486A6940098B216 /* CoreText.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreText" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* CoreText */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FECF926C0FFB2BA7007AECF1 /* Products */; - ProjectRef = FECF926B0FFB2BA7007AECF1 /* CoreGraphics.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* CoreText */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE5A884910C6F286005E348A /* CoreGraphics.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreGraphics.framework; - remoteRef = FE5A884810C6F286005E348A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FECF92720FFB2BA7007AECF1 /* CoreGraphics.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreGraphics.framework; - remoteRef = FECF92710FFB2BA7007AECF1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FECF92740FFB2BA7007AECF1 /* CoreGraphics.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreGraphics.framework; - remoteRef = FECF92730FFB2BA7007AECF1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FECF92760FFB2BA7007AECF1 /* CoreGraphics.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreGraphics.framework; - remoteRef = FECF92750FFB2BA7007AECF1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FECF92780FFB2BB0007AECF1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CoreGraphics-Windows-i386"; - targetProxy = FECF92770FFB2BB0007AECF1 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE708651143117C400B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreText; - }; - name = "Windows-i386"; - }; - 1DEB91B308733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - CFF0A1521AF472C000160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFF0A1531AF472C000160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3FE170935CA002A60B7 /* darwin-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreText; - }; - name = "Darwin-i386"; - }; - CFF0A1571AF472C600160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFF0A1581AF472C600160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A401170935CA002A60B7 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreText; - }; - name = "FreeBSD-i386"; - }; - FEDE64B8118A7266009C3494 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - FEDE64B9118A7266009C3494 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A403170935CA002A60B7 /* linux-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CoreText; - }; - name = "Linux-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "CoreText" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Windows-i386 */, - CFF0A1581AF472C600160EAA /* FreeBSD-i386 */, - CFF0A1531AF472C000160EAA /* Darwin-i386 */, - FEDE64B9118A7266009C3494 /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "CoreText" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Windows-i386 */, - CFF0A1571AF472C600160EAA /* FreeBSD-i386 */, - CFF0A1521AF472C000160EAA /* Darwin-i386 */, - FEDE64B8118A7266009C3494 /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj b/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj deleted file mode 100644 index 68455bcd..00000000 --- a/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj +++ /dev/null @@ -1,445 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FEFC48F00BB21906006628BF /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - FEFC48F10BB21906006628BF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - FEFC48F30BB21906006628BF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - FEFC48F50BB21906006628BF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FEFC49240BB21A07006628BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; - FEFC49250BB21A08006628BF /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; - FEFC492A0BB21B1D006628BF /* GradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFC49290BB21B1D006628BF /* GradientView.m */; }; - FEFC492B0BB21B1D006628BF /* GradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFC49290BB21B1D006628BF /* GradientView.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE386AF615268155007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AB210C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; - FE386AF815268155007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C8E0BFAA0F0E6B0E00677729; - remoteInfo = "Cocoa-Darwin-i386"; - }; - FE386AFA15268155007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FECC1DD6108D025D00BD4A91; - remoteInfo = "Cocoa-Linux-i386"; - }; - FE386AFC15268155007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5A873F10C6F1E8005E348A; - remoteInfo = "Cocoa-FreeBSD-i386"; - }; - FE386B0315268162007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01AB110C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* CGShadingCreate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CGShadingCreate.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Cocoa.xcodeproj; path = ../../Cocoa/Cocoa.xcodeproj; sourceTree = ""; }; - FEFC48F90BB21906006628BF /* CGShadingCreate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CGShadingCreate.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEFC49280BB21B1D006628BF /* GradientView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GradientView.h; sourceTree = ""; }; - FEFC49290BB21B1D006628BF /* GradientView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = GradientView.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48F40BB21906006628BF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F50BB21906006628BF /* Cocoa.framework in Frameworks */, - FEFC49240BB21A07006628BF /* Foundation.framework in Frameworks */, - FEFC49250BB21A08006628BF /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* CGShadingCreate.app */, - FEFC48F90BB21906006628BF /* CGShadingCreate.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* CGShadingCreate */ = { - isa = PBXGroup; - children = ( - FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */, - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = CGShadingCreate; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 29B97316FDCFA39411CA2CEA /* main.m */, - FEFC49280BB21B1D006628BF /* GradientView.h */, - FEFC49290BB21B1D006628BF /* GradientView.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - FE386AA515268151007CC8C7 /* Products */ = { - isa = PBXGroup; - children = ( - FE386AF715268155007CC8C7 /* Cocoa.framework */, - FE386AF915268155007CC8C7 /* Cocoa.framework */, - FE386AFB15268155007CC8C7 /* Cocoa.framework */, - FE386AFD15268155007CC8C7 /* Cocoa.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* CGShadingCreate-Mac */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "CGShadingCreate-Mac" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "CGShadingCreate-Mac"; - productInstallPath = "$(HOME)/Applications"; - productName = CGShadingCreate; - productReference = 8D1107320486CEB800E47090 /* CGShadingCreate.app */; - productType = "com.apple.product-type.application"; - }; - FEFC48EE0BB21906006628BF /* CGShadingCreate-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = FEFC48F60BB21906006628BF /* Build configuration list for PBXNativeTarget "CGShadingCreate-Windows" */; - buildPhases = ( - FEFC48EF0BB21906006628BF /* Resources */, - FEFC48F20BB21906006628BF /* Sources */, - FEFC48F40BB21906006628BF /* Frameworks */, - FEB8F1150D3DB75D00754380 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - FE386B0415268162007CC8C7 /* PBXTargetDependency */, - ); - name = "CGShadingCreate-Windows"; - productInstallPath = "$(HOME)/Applications"; - productName = CGShadingCreate; - productReference = FEFC48F90BB21906006628BF /* CGShadingCreate.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CGShadingCreate" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CGShadingCreate */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE386AA515268151007CC8C7 /* Products */; - ProjectRef = FE386AA415268151007CC8C7 /* Cocoa.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* CGShadingCreate-Mac */, - FEFC48EE0BB21906006628BF /* CGShadingCreate-Windows */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE386AF715268155007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386AF615268155007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386AF915268155007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386AF815268155007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386AFB15268155007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386AFA15268155007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386AFD15268155007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386AFC15268155007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */, - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48EF0BB21906006628BF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F00BB21906006628BF /* MainMenu.nib in Resources */, - FEFC48F10BB21906006628BF /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FEB8F1150D3DB75D00754380 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - FEFC492A0BB21B1D006628BF /* GradientView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48F20BB21906006628BF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F30BB21906006628BF /* main.m in Sources */, - FEFC492B0BB21B1D006628BF /* GradientView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE386B0415268162007CC8C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Cocoa-Windows-i386"; - targetProxy = FE386B0315268162007CC8C7 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 29B97319FDCFA39411CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CGShadingCreate; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - }; - name = Release; - }; - FEFC48F80BB21906006628BF /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - EFFECTIVE_PLATFORM_NAME = "-windows"; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_VERSION = org.cocotron.1.0.windows.i386.gcc.4.3.1; - INFOPLIST_FILE = Info.plist; - OTHER_LDFLAGS = ( - "-Wl,--enable-auto-import", - "-mwindows", - ); - PRODUCT_NAME = CGShadingCreate; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "CGShadingCreate-Mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CGShadingCreate" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FEFC48F60BB21906006628BF /* Build configuration list for PBXNativeTarget "CGShadingCreate-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEFC48F80BB21906006628BF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Mac.xcscheme b/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Mac.xcscheme deleted file mode 100644 index b2303d9a..00000000 --- a/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Mac.xcscheme +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Windows.xcscheme b/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Windows.xcscheme deleted file mode 100644 index 70c24c89..00000000 --- a/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/xcshareddata/xcschemes/CGShadingCreate-Windows.xcscheme +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/CGShadingCreate/English.lproj/MainMenu.nib/info.nib b/Examples/CGShadingCreate/English.lproj/MainMenu.nib/info.nib deleted file mode 100644 index 83fee3e3..00000000 --- a/Examples/CGShadingCreate/English.lproj/MainMenu.nib/info.nib +++ /dev/null @@ -1,24 +0,0 @@ - - - - - IBDocumentLocation - 76 78 356 240 0 0 1680 1028 - IBEditorPositions - - 29 - 80 352 350 44 0 0 1680 1028 - - IBFramework Version - 446.1 - IBOpenObjects - - 29 - 21 - - IBSystem Version - 8L2127 - IBUsesTextArchiving - - - diff --git a/Examples/CGShadingCreate/English.lproj/MainMenu.nib/keyedobjects.nib b/Examples/CGShadingCreate/English.lproj/MainMenu.nib/keyedobjects.nib deleted file mode 100644 index 3a87e65f..00000000 --- a/Examples/CGShadingCreate/English.lproj/MainMenu.nib/keyedobjects.nib +++ /dev/null @@ -1,9592 +0,0 @@ - - - - - $archiver - NSKeyedArchiver - $objects - - $null - - $class - - CF$UID - 642 - - NSAccessibilityConnectors - - CF$UID - 639 - - NSAccessibilityOidsKeys - - CF$UID - 640 - - NSAccessibilityOidsValues - - CF$UID - 641 - - NSClassesKeys - - CF$UID - 491 - - NSClassesValues - - CF$UID - 492 - - NSConnections - - CF$UID - 152 - - NSFontManager - - CF$UID - 0 - - NSFramework - - CF$UID - 6 - - NSNamesKeys - - CF$UID - 436 - - NSNamesValues - - CF$UID - 437 - - NSNextOid - 295 - NSObjectsKeys - - CF$UID - 356 - - NSObjectsValues - - CF$UID - 435 - - NSOidsKeys - - CF$UID - 493 - - NSOidsValues - - CF$UID - 494 - - NSRoot - - CF$UID - 2 - - NSVisibleWindows - - CF$UID - 7 - - - - $class - - CF$UID - 5 - - NSClassName - - CF$UID - 3 - - - - $class - - CF$UID - 4 - - NS.string - NSApplication - - - $classes - - NSMutableString - NSString - NSObject - - $classname - NSMutableString - - - $classes - - NSCustomObject - NSObject - - $classname - NSCustomObject - - - $class - - CF$UID - 4 - - NS.string - IBCocoaFramework - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 8 - - - - - $class - - CF$UID - 151 - - NSMaxSize - - CF$UID - 150 - - NSMinSize - - CF$UID - 149 - - NSScreenRect - - CF$UID - 148 - - NSViewClass - - CF$UID - 12 - - NSWTFlags - 1886912512 - NSWindowBacking - 2 - NSWindowClass - - CF$UID - 11 - - NSWindowRect - - CF$UID - 9 - - NSWindowStyleMask - 14 - NSWindowTitle - - CF$UID - 10 - - NSWindowView - - CF$UID - 13 - - - {{415, 268}, {600, 573}} - Window - NSWindow - - $class - - CF$UID - 4 - - NS.string - View - - - $class - - CF$UID - 147 - - NSFrame - - CF$UID - 146 - - NSNextResponder - - CF$UID - 0 - - NSSubviews - - CF$UID - 14 - - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 15 - - - CF$UID - 20 - - - CF$UID - 28 - - - CF$UID - 41 - - - CF$UID - 68 - - - CF$UID - 76 - - - CF$UID - 83 - - - CF$UID - 87 - - - CF$UID - 90 - - - CF$UID - 94 - - - CF$UID - 99 - - - CF$UID - 102 - - - CF$UID - 106 - - - CF$UID - 109 - - - CF$UID - 112 - - - CF$UID - 115 - - - CF$UID - 118 - - - CF$UID - 126 - - - CF$UID - 130 - - - - - $class - - CF$UID - 19 - - NSClassName - - CF$UID - 17 - - NSExtension - - CF$UID - 18 - - NSFrameSize - - CF$UID - 16 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 18 - - {600, 480} - GradientView - NSView - - $classes - - NSCustomView - NSView - NSResponder - NSObject - - $classname - NSCustomView - - - $class - - CF$UID - 27 - - NSColor - - CF$UID - 25 - - NSDragTypes - - CF$UID - 21 - - NSEnabled - - NSFrame - - CF$UID - 24 - - NSIsBordered - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 22 - - - - - $class - - CF$UID - 4 - - NS.string - NSColor pasteboard type - - - $classes - - NSMutableSet - NSSet - NSObject - - $classname - NSMutableSet - - {{229, 505}, {52, 20}} - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSWhite - - MAA= - - - - $classes - - NSColor - NSObject - - $classname - NSColor - - - $classes - - NSColorWell - NSControl - NSView - NSResponder - NSObject - - $classname - NSColorWell - - - $class - - CF$UID - 40 - - NSCell - - CF$UID - 30 - - NSEnabled - - NSFrame - - CF$UID - 29 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{285, 507}, {58, 18}} - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 38 - - NSAlternateImage - - CF$UID - 35 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 2 - NSCellFlags - 67239424 - NSCellFlags2 - 262144 - NSContents - - CF$UID - 31 - - NSControlView - - CF$UID - 28 - - NSKeyEquivalent - - CF$UID - 38 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 32 - - - Extend - - $class - - CF$UID - 34 - - NSName - - CF$UID - 33 - - NSSize - 9 - NSfFlags - 3614 - - LucidaGrande - - $classes - - NSFont - NSObject - - $classname - NSFont - - - $class - - CF$UID - 37 - - NSImageName - - CF$UID - 36 - - - NSSwitch - - $classes - - NSButtonImageSource - NSObject - - $classname - NSButtonImageSource - - - - $classes - - NSButtonCell - %NSButtonCell - NSActionCell - NSCell - NSObject - - $classname - NSButtonCell - - - $classes - - NSButton - NSControl - NSView - NSResponder - NSObject - - $classname - NSButton - - - $class - - CF$UID - 67 - - NSBackgroundColor - - CF$UID - 61 - - NSCellBackgroundColor - - CF$UID - 65 - - NSCellClass - - CF$UID - 57 - - NSCellSize - - CF$UID - 55 - - NSCells - - CF$UID - 43 - - NSEnabled - - NSFont - - CF$UID - 66 - - NSFrame - - CF$UID - 42 - - NSIntercellSpacing - - CF$UID - 56 - - NSMatrixFlags - 67633152 - NSNextResponder - - CF$UID - 13 - - NSNumCols - 1 - NSNumRows - 2 - NSProtoCell - - CF$UID - 58 - - NSSelectedCol - -1 - NSSelectedRow - -1 - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{349, 484}, {138, 40}} - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 44 - - - CF$UID - 50 - - - - - $class - - CF$UID - 49 - - NSCellFlags - 343014977 - NSCellFlags2 - 205521920 - NSContents - - CF$UID - 45 - - NSControlView - - CF$UID - 41 - - NSSupport - - CF$UID - 32 - - NSTitleCell - - CF$UID - 46 - - NSTitleWidth - 64 - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 48 - - NSCellFlags - 67239424 - NSCellFlags2 - 67108864 - NSContents - - CF$UID - 47 - - NSSupport - - CF$UID - 32 - - - Inner Radius: - - $classes - - NSCell - NSObject - - $classname - NSCell - - - $classes - - NSFormCell - NSActionCell - NSCell - NSObject - - $classname - NSFormCell - - - $class - - CF$UID - 49 - - NSCellFlags - 343014977 - NSCellFlags2 - 205521920 - NSContents - - CF$UID - 51 - - NSControlView - - CF$UID - 41 - - NSSupport - - CF$UID - 32 - - NSTag - 1 - NSTitleCell - - CF$UID - 52 - - NSTitleWidth - 64 - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 48 - - NSCellFlags - 67239424 - NSCellFlags2 - 67108864 - NSContents - - CF$UID - 53 - - NSSupport - - CF$UID - 32 - - - Outer Radius: - - $classes - - NSMutableArray - NSArray - NSObject - - $classname - NSMutableArray - - {138, 16} - {0, 6} - NSActionCell - - $class - - CF$UID - 49 - - NSCellFlags - 343014976 - NSCellFlags2 - 205521920 - NSContents - - CF$UID - 38 - - NSSupport - - CF$UID - 32 - - NSTitleCell - - CF$UID - 59 - - NSTitleWidth - 64 - - - $class - - CF$UID - 48 - - NSCellFlags - 67239424 - NSCellFlags2 - 67108864 - NSContents - - CF$UID - 60 - - NSSupport - - CF$UID - 32 - - - Field: - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 64 - - NSColorName - - CF$UID - 63 - - NSColorSpace - 6 - - System - controlColor - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSWhite - - MC42NjY2NjY2OQA= - - - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSWhite - - MQA= - - - - $class - - CF$UID - 34 - - NSName - - CF$UID - 33 - - NSSize - 13 - NSfFlags - 1044 - - - $classes - - NSForm - NSMatrix - %NSMatrix - NSControl - NSView - NSResponder - NSObject - - $classname - NSForm - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 70 - - NSEnabled - - NSFrame - - CF$UID - 69 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{17, 511}, {31, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 272629760 - NSContents - - CF$UID - 71 - - NSControlView - - CF$UID - 68 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - Start - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 25 - - NSColorName - - CF$UID - 73 - - NSColorSpace - 6 - - controlTextColor - - $classes - - NSTextFieldCell - NSActionCell - NSCell - NSObject - - $classname - NSTextFieldCell - - - $classes - - NSTextField - %NSTextField - NSControl - NSView - NSResponder - NSObject - - $classname - NSTextField - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 78 - - NSEnabled - - NSFrame - - CF$UID - 77 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{65, 507}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 76 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 65 - - NSColorName - - CF$UID - 80 - - NSColorSpace - 6 - - textBackgroundColor - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 25 - - NSColorName - - CF$UID - 82 - - NSColorSpace - 6 - - textColor - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 85 - - NSEnabled - - NSFrame - - CF$UID - 84 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{40, 511}, {20, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 86 - - NSControlView - - CF$UID - 83 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - X: - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 89 - - NSEnabled - - NSFrame - - CF$UID - 88 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{154, 507}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 87 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 92 - - NSEnabled - - NSFrame - - CF$UID - 91 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{131, 511}, {18, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 93 - - NSControlView - - CF$UID - 90 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - Y: - - $class - - CF$UID - 27 - - NSColor - - CF$UID - 98 - - NSDragTypes - - CF$UID - 95 - - NSEnabled - - NSFrame - - CF$UID - 97 - - NSIsBordered - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 96 - - - - - $class - - CF$UID - 4 - - NS.string - NSColor pasteboard type - - {{229, 483}, {52, 20}} - - $class - - CF$UID - 26 - - NSColorSpace - 1 - NSRGB - - MSAwIDAA - - - - $class - - CF$UID - 40 - - NSCell - - CF$UID - 101 - - NSEnabled - - NSFrame - - CF$UID - 100 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{285, 485}, {58, 18}} - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 38 - - NSAlternateImage - - CF$UID - 35 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 2 - NSCellFlags - 67239424 - NSCellFlags2 - 262144 - NSContents - - CF$UID - 31 - - NSControlView - - CF$UID - 99 - - NSKeyEquivalent - - CF$UID - 38 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 32 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 104 - - NSEnabled - - NSFrame - - CF$UID - 103 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{17, 489}, {31, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 272629760 - NSContents - - CF$UID - 105 - - NSControlView - - CF$UID - 102 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - End - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 108 - - NSEnabled - - NSFrame - - CF$UID - 107 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{65, 485}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 106 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 111 - - NSEnabled - - NSFrame - - CF$UID - 110 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{40, 489}, {20, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 86 - - NSControlView - - CF$UID - 109 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 114 - - NSEnabled - - NSFrame - - CF$UID - 113 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{154, 485}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 112 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 117 - - NSEnabled - - NSFrame - - CF$UID - 116 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{131, 489}, {18, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 93 - - NSControlView - - CF$UID - 115 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - - $class - - CF$UID - 125 - - NSCell - - CF$UID - 120 - - NSEnabled - - NSFrame - - CF$UID - 119 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 266 - - {{493, 507}, {98, 21}} - - $class - - CF$UID - 124 - - NSAllowsTickMarkValuesOnly - - NSAltIncValue - 0.0 - NSCellFlags - 67501824 - NSCellFlags2 - 0 - NSContents - - CF$UID - 121 - - NSControlView - - CF$UID - 118 - - NSMaxValue - 500 - NSMinValue - 0.0 - NSNumberOfTickMarks - 0 - NSSupport - - CF$UID - 122 - - NSTickMarkPosition - 1 - NSValue - 50 - NSVertical - - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 34 - - NSName - - CF$UID - 123 - - NSSize - 12 - NSfFlags - 16 - - Helvetica - - $classes - - NSSliderCell - NSActionCell - NSCell - NSObject - - $classname - NSSliderCell - - - $classes - - NSSlider - NSControl - NSView - NSResponder - NSObject - - $classname - NSSlider - - - $class - - CF$UID - 125 - - NSCell - - CF$UID - 128 - - NSEnabled - - NSFrame - - CF$UID - 127 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 266 - - {{493, 484}, {98, 21}} - - $class - - CF$UID - 124 - - NSAllowsTickMarkValuesOnly - - NSAltIncValue - 0.0 - NSCellFlags - 67501824 - NSCellFlags2 - 0 - NSContents - - CF$UID - 129 - - NSControlView - - CF$UID - 126 - - NSMaxValue - 500 - NSMinValue - 0.0 - NSNumberOfTickMarks - 0 - NSSupport - - CF$UID - 122 - - NSTickMarkPosition - 1 - NSValue - 50 - NSVertical - - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 145 - - NSBackgroundColor - - CF$UID - 61 - - NSCellBackgroundColor - - CF$UID - 65 - - NSCellClass - - CF$UID - 142 - - NSCellSize - - CF$UID - 140 - - NSCells - - CF$UID - 132 - - NSEnabled - - NSFont - - CF$UID - 66 - - NSFrame - - CF$UID - 131 - - NSIntercellSpacing - - CF$UID - 141 - - NSMatrixFlags - 1143472128 - NSNextResponder - - CF$UID - 13 - - NSNumCols - 2 - NSNumRows - 1 - NSProtoCell - - CF$UID - 143 - - NSSelectedCell - - CF$UID - 133 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{18, 536}, {130, 18}} - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 133 - - - CF$UID - 138 - - - - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 137 - - NSAlternateImage - - CF$UID - 135 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 0 - NSCellFlags - -2080244224 - NSCellFlags2 - 0 - NSContents - - CF$UID - 134 - - NSControlView - - CF$UID - 130 - - NSKeyEquivalent - - CF$UID - 137 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 66 - - - Axial - - $class - - CF$UID - 37 - - NSImageName - - CF$UID - 136 - - - NSRadioButton - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 38 - - NSAlternateImage - - CF$UID - 135 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 0 - NSCellFlags - 67239424 - NSCellFlags2 - 0 - NSContents - - CF$UID - 139 - - NSControlView - - CF$UID - 130 - - NSKeyEquivalent - - CF$UID - 38 - - NSPeriodicDelay - 400 - NSPeriodicInterval - 75 - NSSupport - - CF$UID - 66 - - NSTag - 1 - - Radial - {63, 18} - {4, 2} - NSActionCell - - $class - - CF$UID - 39 - - NSAlternateImage - - CF$UID - 135 - - NSButtonFlags - 1211650559 - NSButtonFlags2 - 0 - NSCellFlags - 67239424 - NSCellFlags2 - 0 - NSContents - - CF$UID - 144 - - NSPeriodicDelay - 400 - NSPeriodicInterval - 75 - NSSupport - - CF$UID - 66 - - - Radio - - $classes - - NSMatrix - %NSMatrix - NSControl - NSView - NSResponder - NSObject - - $classname - NSMatrix - - {{1, 9}, {600, 573}} - - $classes - - NSView - NSResponder - NSObject - - $classname - NSView - - {{0, 0}, {1680, 1028}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - $classes - - NSWindowTemplate - NSObject - - $classname - NSWindowTemplate - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 153 - - - CF$UID - 167 - - - CF$UID - 171 - - - CF$UID - 177 - - - CF$UID - 182 - - - CF$UID - 188 - - - CF$UID - 193 - - - CF$UID - 199 - - - CF$UID - 203 - - - CF$UID - 208 - - - CF$UID - 212 - - - CF$UID - 216 - - - CF$UID - 222 - - - CF$UID - 227 - - - CF$UID - 232 - - - CF$UID - 237 - - - CF$UID - 242 - - - CF$UID - 247 - - - CF$UID - 253 - - - CF$UID - 258 - - - CF$UID - 262 - - - CF$UID - 267 - - - CF$UID - 271 - - - CF$UID - 275 - - - CF$UID - 281 - - - CF$UID - 285 - - - CF$UID - 289 - - - CF$UID - 293 - - - CF$UID - 298 - - - CF$UID - 303 - - - CF$UID - 305 - - - CF$UID - 307 - - - CF$UID - 309 - - - CF$UID - 311 - - - CF$UID - 314 - - - CF$UID - 316 - - - CF$UID - 318 - - - CF$UID - 320 - - - CF$UID - 322 - - - CF$UID - 324 - - - CF$UID - 326 - - - CF$UID - 328 - - - CF$UID - 330 - - - CF$UID - 332 - - - CF$UID - 334 - - - CF$UID - 336 - - - CF$UID - 338 - - - CF$UID - 340 - - - CF$UID - 342 - - - CF$UID - 344 - - - CF$UID - 346 - - - CF$UID - 348 - - - CF$UID - 350 - - - CF$UID - 352 - - - CF$UID - 354 - - - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 165 - - NSSource - - CF$UID - 154 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 157 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 156 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 426 - - NSName - - CF$UID - 428 - - NSTitle - - CF$UID - 425 - - - Minimize - m - - $class - - CF$UID - 161 - - NSClassName - - CF$UID - 159 - - NSResourceName - - CF$UID - 160 - - - NSImage - NSMenuCheckmark - - $classes - - NSCustomResource - %NSCustomResource - NSObject - - $classname - NSCustomResource - - - $class - - CF$UID - 161 - - NSClassName - - CF$UID - 159 - - NSResourceName - - CF$UID - 163 - - - NSMenuMixedState - - $classes - - NSMenuItem - NSObject - - $classname - NSMenuItem - - - $class - - CF$UID - 4 - - NS.string - performMiniaturize: - - - $classes - - NSNibControlConnector - NSNibConnector - NSObject - - $classname - NSNibControlConnector - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 170 - - NSSource - - CF$UID - 168 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 169 - - - Bring All to Front - - $class - - CF$UID - 4 - - NS.string - arrangeInFront: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 176 - - NSSource - - CF$UID - 172 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 175 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 174 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 384 - - NSTitle - - CF$UID - 383 - - - Print… - p - - $class - - CF$UID - 4 - - NS.string - print: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 181 - - NSSource - - CF$UID - 178 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 180 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 179 - - - Page Setup… - P - - $class - - CF$UID - 4 - - NS.string - runPageLayout: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 187 - - NSSource - - CF$UID - 183 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 186 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 184 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 185 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 432 - - NSTitle - - CF$UID - 430 - - - NewApplication Help - ? - - $class - - CF$UID - 4 - - NS.string - showHelp: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 192 - - NSSource - - CF$UID - 189 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 190 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 191 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 395 - - NSName - - CF$UID - 396 - - NSTitle - - CF$UID - 394 - - - Clear Menu - - $class - - CF$UID - 4 - - NS.string - clearRecentDocuments: - - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 198 - - NSSource - - CF$UID - 194 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 197 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 196 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 363 - - NSName - - CF$UID - 379 - - NSTitle - - CF$UID - 361 - - - Quit CGShadingCreate - q - - $class - - CF$UID - 4 - - NS.string - terminate: - - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 202 - - NSSource - - CF$UID - 200 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 201 - - - About CGShadingCreate - - $class - - CF$UID - 4 - - NS.string - orderFrontStandardAboutPanel: - - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 207 - - NSSource - - CF$UID - 204 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 206 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 205 - - - Hide Others - h - hideOtherApplications: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 211 - - NSSource - - CF$UID - 209 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 206 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 210 - - - Hide CGShadingCreate - hide: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 215 - - NSSource - - CF$UID - 213 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 214 - - - Show All - unhideAllApplications: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 221 - - NSSource - - CF$UID - 217 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 220 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 219 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 411 - - NSTitle - - CF$UID - 410 - - - Cut - x - - $class - - CF$UID - 4 - - NS.string - cut: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 226 - - NSSource - - CF$UID - 223 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 225 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 224 - - - Paste - v - - $class - - CF$UID - 4 - - NS.string - paste: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 231 - - NSSource - - CF$UID - 228 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 230 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 229 - - - Redo - Z - - $class - - CF$UID - 4 - - NS.string - redo: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 236 - - NSSource - - CF$UID - 233 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 235 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 234 - - - Select All - a - - $class - - CF$UID - 4 - - NS.string - selectAll: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 241 - - NSSource - - CF$UID - 238 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 240 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 239 - - - Undo - z - - $class - - CF$UID - 4 - - NS.string - undo: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 246 - - NSSource - - CF$UID - 243 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 245 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 244 - - - Copy - c - - $class - - CF$UID - 4 - - NS.string - copy: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 252 - - NSSource - - CF$UID - 248 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 251 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 249 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 250 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 422 - - NSTitle - - CF$UID - 420 - - - Spelling… - : - - $class - - CF$UID - 4 - - NS.string - showGuessPanel: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 257 - - NSSource - - CF$UID - 254 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 256 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 249 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 255 - - - Check Spelling - ; - - $class - - CF$UID - 4 - - NS.string - checkSpelling: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 261 - - NSSource - - CF$UID - 259 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 249 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 260 - - - Check Spelling as You Type - toggleContinuousSpellChecking: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 266 - - NSSource - - CF$UID - 263 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 265 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 264 - - - Close - w - performClose: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 270 - - NSSource - - CF$UID - 268 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 269 - - - Delete - delete: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 274 - - NSSource - - CF$UID - 272 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 273 - - - Zoom - performZoom: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 276 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 279 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 1 - NSTitle - - CF$UID - 278 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 418 - - NSTitle - - CF$UID - 417 - - - Find… - f - performFindPanelAction: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 282 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 284 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 2 - NSTitle - - CF$UID - 283 - - - Find Next - g - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 286 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 288 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 3 - NSTitle - - CF$UID - 287 - - - Find Previous - G - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 290 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 292 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 7 - NSTitle - - CF$UID - 291 - - - Use Selection for Find - e - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 297 - - NSSource - - CF$UID - 294 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 296 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 295 - - - Jump to Selection - j - centerSelectionInVisibleArea: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 302 - - NSSource - - CF$UID - 299 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 301 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 300 - - - Paste and Match Style - V - pasteAsPlainText: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 304 - - NSSource - - CF$UID - 20 - - - takeStartColorFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 306 - - NSSource - - CF$UID - 28 - - - takeExtendStartFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 308 - - NSSource - - CF$UID - 94 - - - takeEndColorFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 310 - - NSSource - - CF$UID - 99 - - - takeExtendEndFromSender: - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 76 - - NSLabel - - CF$UID - 312 - - NSSource - - CF$UID - 15 - - - _startXTextField - - $classes - - NSNibOutletConnector - NSNibConnector - NSObject - - $classname - NSNibOutletConnector - - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 94 - - NSLabel - - CF$UID - 315 - - NSSource - - CF$UID - 15 - - - _endColor - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 99 - - NSLabel - - CF$UID - 317 - - NSSource - - CF$UID - 15 - - - _endExtend - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 50 - - NSLabel - - CF$UID - 319 - - NSSource - - CF$UID - 15 - - - _outerRadius - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 44 - - NSLabel - - CF$UID - 321 - - NSSource - - CF$UID - 15 - - - _innerRadius - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 112 - - NSLabel - - CF$UID - 323 - - NSSource - - CF$UID - 15 - - - _endYTextField - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 106 - - NSLabel - - CF$UID - 325 - - NSSource - - CF$UID - 15 - - - _endXTextField - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 20 - - NSLabel - - CF$UID - 327 - - NSSource - - CF$UID - 15 - - - _startColor - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 28 - - NSLabel - - CF$UID - 329 - - NSSource - - CF$UID - 15 - - - _startExtend - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 87 - - NSLabel - - CF$UID - 331 - - NSSource - - CF$UID - 15 - - - _startYTextField - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 333 - - NSSource - - CF$UID - 130 - - - selectType: - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 130 - - NSLabel - - CF$UID - 335 - - NSSource - - CF$UID - 15 - - - _shadingType - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 337 - - NSSource - - CF$UID - 44 - - - takeInnerRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 339 - - NSSource - - CF$UID - 50 - - - takeOuterRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 341 - - NSSource - - CF$UID - 118 - - - takeInnerRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 343 - - NSSource - - CF$UID - 126 - - - takeOuterRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 345 - - NSSource - - CF$UID - 76 - - - takeStartXFromSender - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 347 - - NSSource - - CF$UID - 87 - - - takeStartYFromSender - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 349 - - NSSource - - CF$UID - 106 - - - takeEndXFromSender - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 351 - - NSSource - - CF$UID - 112 - - - takeEndYFromSender - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 118 - - NSLabel - - CF$UID - 353 - - NSSource - - CF$UID - 15 - - - _innerRadiusSlider - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 126 - - NSLabel - - CF$UID - 355 - - NSSource - - CF$UID - 15 - - - _outerRadiusSlider - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 299 - - - CF$UID - 357 - - - CF$UID - 213 - - - CF$UID - 388 - - - CF$UID - 115 - - - CF$UID - 290 - - - CF$UID - 419 - - - CF$UID - 372 - - - CF$UID - 8 - - - CF$UID - 228 - - - CF$UID - 106 - - - CF$UID - 249 - - - CF$UID - 83 - - - CF$UID - 126 - - - CF$UID - 385 - - - CF$UID - 272 - - - CF$UID - 248 - - - CF$UID - 406 - - - CF$UID - 243 - - - CF$UID - 44 - - - CF$UID - 209 - - - CF$UID - 204 - - - CF$UID - 401 - - - CF$UID - 282 - - - CF$UID - 133 - - - CF$UID - 238 - - - CF$UID - 168 - - - CF$UID - 360 - - - CF$UID - 397 - - - CF$UID - 87 - - - CF$UID - 413 - - - CF$UID - 41 - - - CF$UID - 429 - - - CF$UID - 368 - - - CF$UID - 50 - - - CF$UID - 276 - - - CF$UID - 414 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 189 - - - CF$UID - 195 - - - CF$UID - 90 - - - CF$UID - 263 - - - CF$UID - 190 - - - CF$UID - 294 - - - CF$UID - 138 - - - CF$UID - 112 - - - CF$UID - 15 - - - CF$UID - 217 - - - CF$UID - 99 - - - CF$UID - 391 - - - CF$UID - 277 - - - CF$UID - 20 - - - CF$UID - 109 - - - CF$UID - 173 - - - CF$UID - 178 - - - CF$UID - 412 - - - CF$UID - 118 - - - CF$UID - 102 - - - CF$UID - 218 - - - CF$UID - 268 - - - CF$UID - 378 - - - CF$UID - 404 - - - CF$UID - 94 - - - CF$UID - 377 - - - CF$UID - 183 - - - CF$UID - 13 - - - CF$UID - 380 - - - CF$UID - 223 - - - CF$UID - 233 - - - CF$UID - 398 - - - CF$UID - 427 - - - CF$UID - 172 - - - CF$UID - 254 - - - CF$UID - 365 - - - CF$UID - 76 - - - CF$UID - 184 - - - CF$UID - 200 - - - CF$UID - 423 - - - CF$UID - 68 - - - CF$UID - 259 - - - CF$UID - 28 - - - CF$UID - 286 - - - CF$UID - 364 - - - CF$UID - 130 - - - CF$UID - 194 - - - CF$UID - 407 - - - CF$UID - 369 - - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 359 - - NSName - - CF$UID - 433 - - NSTitle - - CF$UID - 358 - - - MainMenu - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 360 - - - CF$UID - 380 - - - CF$UID - 407 - - - CF$UID - 423 - - - CF$UID - 429 - - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 362 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 195 - - NSTitle - - CF$UID - 361 - - - CGShadingCreate - submenuAction: - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 200 - - - CF$UID - 364 - - - CF$UID - 365 - - - CF$UID - 368 - - - CF$UID - 369 - - - CF$UID - 377 - - - CF$UID - 209 - - - CF$UID - 204 - - - CF$UID - 213 - - - CF$UID - 378 - - - CF$UID - 194 - - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 367 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 366 - - - Preferences… - , - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 371 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 372 - - NSTitle - - CF$UID - 370 - - - Services - submenuAction: - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 374 - - NSName - - CF$UID - 375 - - NSTitle - - CF$UID - 373 - - - - $class - - CF$UID - 4 - - NS.string - Services - - - $class - - CF$UID - 54 - - NS.objects - - - _NSServicesMenu - - $classes - - NSMenu - NSObject - - $classname - NSMenu - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - _NSAppleMenu - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 382 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 173 - - NSTitle - - CF$UID - 381 - - - File - submenuAction: - - $class - - CF$UID - 4 - - NS.string - File - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 385 - - - CF$UID - 388 - - - CF$UID - 391 - - - CF$UID - 397 - - - CF$UID - 263 - - - CF$UID - 398 - - - CF$UID - 401 - - - CF$UID - 404 - - - CF$UID - 406 - - - CF$UID - 178 - - - CF$UID - 172 - - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 387 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 386 - - - New - n - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 390 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 389 - - - Open... - o - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 393 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 190 - - NSTitle - - CF$UID - 392 - - - Open Recent - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Open Recent - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 189 - - - - _NSRecentDocumentsMenu - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 400 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 399 - - - Save - s - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 403 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 402 - - - Save As… - S - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 405 - - - Revert - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 409 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 218 - - NSTitle - - CF$UID - 408 - - - Edit - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Edit - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 238 - - - CF$UID - 228 - - - CF$UID - 412 - - - CF$UID - 217 - - - CF$UID - 243 - - - CF$UID - 223 - - - CF$UID - 299 - - - CF$UID - 268 - - - CF$UID - 233 - - - CF$UID - 413 - - - CF$UID - 414 - - - CF$UID - 419 - - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 416 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 277 - - NSTitle - - CF$UID - 415 - - - Find - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Find - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 276 - - - CF$UID - 282 - - - CF$UID - 286 - - - CF$UID - 290 - - - CF$UID - 294 - - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 421 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 249 - - NSTitle - - CF$UID - 420 - - - Spelling - submenuAction: - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 248 - - - CF$UID - 254 - - - CF$UID - 259 - - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 424 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 155 - - NSTitle - - CF$UID - 10 - - - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Window - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 154 - - - CF$UID - 272 - - - CF$UID - 427 - - - CF$UID - 168 - - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - _NSWindowsMenu - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 431 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 184 - - NSTitle - - CF$UID - 430 - - - Help - submenuAction: - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 183 - - - - _NSMainMenu - - $classes - - NSArray - NSObject - - $classname - NSArray - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 218 - - - CF$UID - 2 - - - CF$UID - 195 - - - CF$UID - 173 - - - CF$UID - 13 - - - CF$UID - 277 - - - CF$UID - 218 - - - CF$UID - 369 - - - CF$UID - 2 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 419 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 173 - - - CF$UID - 155 - - - CF$UID - 249 - - - CF$UID - 173 - - - CF$UID - 218 - - - CF$UID - 41 - - - CF$UID - 195 - - - CF$UID - 195 - - - CF$UID - 173 - - - CF$UID - 277 - - - CF$UID - 130 - - - CF$UID - 218 - - - CF$UID - 155 - - - CF$UID - 357 - - - CF$UID - 173 - - - CF$UID - 13 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 357 - - - CF$UID - 195 - - - CF$UID - 41 - - - CF$UID - 277 - - - CF$UID - 218 - - - CF$UID - 155 - - - CF$UID - 423 - - - CF$UID - 190 - - - CF$UID - 360 - - - CF$UID - 13 - - - CF$UID - 173 - - - CF$UID - 391 - - - CF$UID - 277 - - - CF$UID - 130 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 173 - - - CF$UID - 414 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 380 - - - CF$UID - 173 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 407 - - - CF$UID - 218 - - - CF$UID - 195 - - - CF$UID - 173 - - - CF$UID - 13 - - - CF$UID - 195 - - - CF$UID - 184 - - - CF$UID - 8 - - - CF$UID - 357 - - - CF$UID - 218 - - - CF$UID - 218 - - - CF$UID - 173 - - - CF$UID - 155 - - - CF$UID - 173 - - - CF$UID - 249 - - - CF$UID - 195 - - - CF$UID - 13 - - - CF$UID - 429 - - - CF$UID - 195 - - - CF$UID - 357 - - - CF$UID - 13 - - - CF$UID - 249 - - - CF$UID - 13 - - - CF$UID - 277 - - - CF$UID - 195 - - - CF$UID - 13 - - - CF$UID - 195 - - - CF$UID - 357 - - - CF$UID - 195 - - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 268 - - - CF$UID - 15 - - - CF$UID - 94 - - - CF$UID - 76 - - - CF$UID - 50 - - - CF$UID - 83 - - - CF$UID - 183 - - - CF$UID - 109 - - - CF$UID - 427 - - - CF$UID - 238 - - - CF$UID - 126 - - - CF$UID - 217 - - - CF$UID - 115 - - - CF$UID - 20 - - - CF$UID - 276 - - - CF$UID - 184 - - - CF$UID - 41 - - - CF$UID - 248 - - - CF$UID - 412 - - - CF$UID - 290 - - - CF$UID - 28 - - - CF$UID - 218 - - - CF$UID - 8 - - - CF$UID - 112 - - - CF$UID - 90 - - - CF$UID - 233 - - - CF$UID - 401 - - - CF$UID - 44 - - - CF$UID - 357 - - - CF$UID - 254 - - - CF$UID - 429 - - - CF$UID - 380 - - - CF$UID - 2 - - - CF$UID - 406 - - - CF$UID - 419 - - - CF$UID - 178 - - - CF$UID - 263 - - - CF$UID - 194 - - - CF$UID - 102 - - - CF$UID - 259 - - - CF$UID - 172 - - - CF$UID - 404 - - - CF$UID - 414 - - - CF$UID - 223 - - - CF$UID - 228 - - - CF$UID - 99 - - - CF$UID - 282 - - - CF$UID - 249 - - - CF$UID - 385 - - - CF$UID - 388 - - - CF$UID - 155 - - - CF$UID - 294 - - - CF$UID - 68 - - - CF$UID - 407 - - - CF$UID - 365 - - - CF$UID - 106 - - - CF$UID - 243 - - - CF$UID - 286 - - - CF$UID - 398 - - - CF$UID - 277 - - - CF$UID - 173 - - - CF$UID - 413 - - - CF$UID - 397 - - - CF$UID - 130 - - - CF$UID - 118 - - - CF$UID - 87 - - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 438 - - - CF$UID - 439 - - - CF$UID - 440 - - - CF$UID - 441 - - - CF$UID - 442 - - - CF$UID - 443 - - - CF$UID - 444 - - - CF$UID - 445 - - - CF$UID - 444 - - - CF$UID - 446 - - - CF$UID - 447 - - - CF$UID - 448 - - - CF$UID - 449 - - - CF$UID - 450 - - - CF$UID - 451 - - - CF$UID - 452 - - - CF$UID - 453 - - - CF$UID - 454 - - - CF$UID - 451 - - - CF$UID - 446 - - - CF$UID - 455 - - - CF$UID - 456 - - - CF$UID - 10 - - - CF$UID - 457 - - - CF$UID - 458 - - - CF$UID - 459 - - - CF$UID - 460 - - - CF$UID - 461 - - - CF$UID - 462 - - - CF$UID - 463 - - - CF$UID - 464 - - - CF$UID - 444 - - - CF$UID - 465 - - - CF$UID - 466 - - - CF$UID - 467 - - - CF$UID - 468 - - - CF$UID - 469 - - - CF$UID - 470 - - - CF$UID - 471 - - - CF$UID - 451 - - - CF$UID - 472 - - - CF$UID - 473 - - - CF$UID - 474 - - - CF$UID - 475 - - - CF$UID - 476 - - - CF$UID - 477 - - - CF$UID - 438 - - - CF$UID - 456 - - - CF$UID - 478 - - - CF$UID - 444 - - - CF$UID - 479 - - - CF$UID - 481 - - - CF$UID - 482 - - - CF$UID - 451 - - - CF$UID - 483 - - - CF$UID - 484 - - - CF$UID - 481 - - - CF$UID - 448 - - - CF$UID - 485 - - - CF$UID - 456 - - - CF$UID - 444 - - - CF$UID - 486 - - - CF$UID - 487 - - - CF$UID - 488 - - - CF$UID - 489 - - - CF$UID - 490 - - - - NSMenuItem4 - View - 22 - NSTextField - NSFormCell1 - NSTextField1111 - - $class - - CF$UID - 4 - - NS.string - - - NSTextField11112 - NSMenuItem2 - NSSlider21 - NSMenuItem3 - NSTextField111111 - 2 - NSMenuItem - - $class - - CF$UID - 4 - - NS.string - 2 - - NSForm12 - NSMenuItem6 - NSButton41 - NSMenu - NSTextField11 - NSTextField11111 - NSMenuItem10 - - $class - - CF$UID - 4 - - NS.string - 8 - - NSFormCell - - $class - - CF$UID - 4 - - NS.string - MainMenu - - NSMenuItem8 - - $class - - CF$UID - 4 - - NS.string - 1 - - - $class - - CF$UID - 4 - - NS.string - File's Owner - - - $class - - CF$UID - 4 - - NS.string - 2 - - NSMenuItem13 - - $class - - CF$UID - 4 - - NS.string - 5 - - - $class - - CF$UID - 4 - - NS.string - 1 - - 1111 - NSTextField1112 - - $class - - CF$UID - 4 - - NS.string - 6 - - - $class - - CF$UID - 4 - - NS.string - 10 - - NSMenuItem7 - NSMenuItem9 - NSMenuItem11 - NSButton411 - - $class - - CF$UID - 4 - - NS.string - 9 - - - $class - - CF$UID - 480 - - - - $classes - - NSNull - %NSNull - NSObject - - $classname - NSNull - - NSMenuItem1 - NSTextField111 - 121 - NSTextField2 - - $class - - CF$UID - 4 - - NS.string - 3 - - NSMenuItem12 - - $class - - CF$UID - 4 - - NS.string - 7 - - NSMatrix11 - NSSlider2 - NSTextField1 - - $class - - CF$UID - 434 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 328 - - - CF$UID - 213 - - - CF$UID - 309 - - - CF$UID - 153 - - - CF$UID - 218 - - - CF$UID - 130 - - - CF$UID - 378 - - - CF$UID - 330 - - - CF$UID - 354 - - - CF$UID - 414 - - - CF$UID - 263 - - - CF$UID - 259 - - - CF$UID - 178 - - - CF$UID - 364 - - - CF$UID - 332 - - - CF$UID - 90 - - - CF$UID - 171 - - - CF$UID - 423 - - - CF$UID - 272 - - - CF$UID - 177 - - - CF$UID - 13 - - - CF$UID - 172 - - - CF$UID - 380 - - - CF$UID - 190 - - - CF$UID - 368 - - - CF$UID - 293 - - - CF$UID - 99 - - - CF$UID - 28 - - - CF$UID - 188 - - - CF$UID - 112 - - - CF$UID - 109 - - - CF$UID - 298 - - - CF$UID - 289 - - - CF$UID - 155 - - - CF$UID - 133 - - - CF$UID - 365 - - - CF$UID - 267 - - - CF$UID - 237 - - - CF$UID - 271 - - - CF$UID - 303 - - - CF$UID - 350 - - - CF$UID - 83 - - - CF$UID - 223 - - - CF$UID - 338 - - - CF$UID - 334 - - - CF$UID - 282 - - - CF$UID - 346 - - - CF$UID - 68 - - - CF$UID - 299 - - - CF$UID - 203 - - - CF$UID - 427 - - - CF$UID - 126 - - - CF$UID - 286 - - - CF$UID - 336 - - - CF$UID - 406 - - - CF$UID - 194 - - - CF$UID - 344 - - - CF$UID - 247 - - - CF$UID - 168 - - - CF$UID - 391 - - - CF$UID - 102 - - - CF$UID - 248 - - - CF$UID - 277 - - - CF$UID - 311 - - - CF$UID - 253 - - - CF$UID - 419 - - - CF$UID - 385 - - - CF$UID - 15 - - - CF$UID - 193 - - - CF$UID - 281 - - - CF$UID - 87 - - - CF$UID - 2 - - - CF$UID - 20 - - - CF$UID - 314 - - - CF$UID - 106 - - - CF$UID - 118 - - - CF$UID - 262 - - - CF$UID - 238 - - - CF$UID - 316 - - - CF$UID - 232 - - - CF$UID - 285 - - - CF$UID - 183 - - - CF$UID - 222 - - - CF$UID - 412 - - - CF$UID - 115 - - - CF$UID - 404 - - - CF$UID - 318 - - - CF$UID - 357 - - - CF$UID - 320 - - - CF$UID - 249 - - - CF$UID - 388 - - - CF$UID - 209 - - - CF$UID - 217 - - - CF$UID - 348 - - - CF$UID - 228 - - - CF$UID - 276 - - - CF$UID - 243 - - - CF$UID - 138 - - - CF$UID - 322 - - - CF$UID - 290 - - - CF$UID - 305 - - - CF$UID - 377 - - - CF$UID - 167 - - - CF$UID - 195 - - - CF$UID - 352 - - - CF$UID - 369 - - - CF$UID - 340 - - - CF$UID - 324 - - - CF$UID - 307 - - - CF$UID - 189 - - - CF$UID - 184 - - - CF$UID - 173 - - - CF$UID - 199 - - - CF$UID - 8 - - - CF$UID - 182 - - - CF$UID - 242 - - - CF$UID - 275 - - - CF$UID - 413 - - - CF$UID - 208 - - - CF$UID - 258 - - - CF$UID - 233 - - - CF$UID - 397 - - - CF$UID - 227 - - - CF$UID - 50 - - - CF$UID - 429 - - - CF$UID - 398 - - - CF$UID - 360 - - - CF$UID - 294 - - - CF$UID - 212 - - - CF$UID - 216 - - - CF$UID - 254 - - - CF$UID - 200 - - - CF$UID - 407 - - - CF$UID - 154 - - - CF$UID - 268 - - - CF$UID - 94 - - - CF$UID - 204 - - - CF$UID - 372 - - - CF$UID - 326 - - - CF$UID - 401 - - - CF$UID - 41 - - - CF$UID - 44 - - - CF$UID - 342 - - - CF$UID - 76 - - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 495 - - - CF$UID - 496 - - - CF$UID - 497 - - - CF$UID - 498 - - - CF$UID - 499 - - - CF$UID - 500 - - - CF$UID - 501 - - - CF$UID - 502 - - - CF$UID - 503 - - - CF$UID - 504 - - - CF$UID - 505 - - - CF$UID - 506 - - - CF$UID - 507 - - - CF$UID - 508 - - - CF$UID - 509 - - - CF$UID - 510 - - - CF$UID - 511 - - - CF$UID - 512 - - - CF$UID - 513 - - - CF$UID - 514 - - - CF$UID - 515 - - - CF$UID - 516 - - - CF$UID - 517 - - - CF$UID - 518 - - - CF$UID - 519 - - - CF$UID - 520 - - - CF$UID - 521 - - - CF$UID - 522 - - - CF$UID - 523 - - - CF$UID - 524 - - - CF$UID - 525 - - - CF$UID - 526 - - - CF$UID - 527 - - - CF$UID - 528 - - - CF$UID - 529 - - - CF$UID - 530 - - - CF$UID - 531 - - - CF$UID - 532 - - - CF$UID - 533 - - - CF$UID - 534 - - - CF$UID - 535 - - - CF$UID - 536 - - - CF$UID - 537 - - - CF$UID - 538 - - - CF$UID - 539 - - - CF$UID - 540 - - - CF$UID - 541 - - - CF$UID - 542 - - - CF$UID - 543 - - - CF$UID - 544 - - - CF$UID - 545 - - - CF$UID - 546 - - - CF$UID - 547 - - - CF$UID - 548 - - - CF$UID - 549 - - - CF$UID - 550 - - - CF$UID - 551 - - - CF$UID - 552 - - - CF$UID - 553 - - - CF$UID - 554 - - - CF$UID - 555 - - - CF$UID - 556 - - - CF$UID - 557 - - - CF$UID - 558 - - - CF$UID - 559 - - - CF$UID - 560 - - - CF$UID - 561 - - - CF$UID - 562 - - - CF$UID - 563 - - - CF$UID - 564 - - - CF$UID - 565 - - - CF$UID - 566 - - - CF$UID - 567 - - - CF$UID - 568 - - - CF$UID - 569 - - - CF$UID - 570 - - - CF$UID - 571 - - - CF$UID - 572 - - - CF$UID - 573 - - - CF$UID - 574 - - - CF$UID - 575 - - - CF$UID - 576 - - - CF$UID - 577 - - - CF$UID - 578 - - - CF$UID - 579 - - - CF$UID - 580 - - - CF$UID - 581 - - - CF$UID - 582 - - - CF$UID - 583 - - - CF$UID - 584 - - - CF$UID - 585 - - - CF$UID - 586 - - - CF$UID - 587 - - - CF$UID - 588 - - - CF$UID - 589 - - - CF$UID - 590 - - - CF$UID - 591 - - - CF$UID - 592 - - - CF$UID - 593 - - - CF$UID - 594 - - - CF$UID - 595 - - - CF$UID - 596 - - - CF$UID - 597 - - - CF$UID - 598 - - - CF$UID - 599 - - - CF$UID - 600 - - - CF$UID - 601 - - - CF$UID - 602 - - - CF$UID - 603 - - - CF$UID - 604 - - - CF$UID - 605 - - - CF$UID - 606 - - - CF$UID - 607 - - - CF$UID - 608 - - - CF$UID - 609 - - - CF$UID - 610 - - - CF$UID - 611 - - - CF$UID - 612 - - - CF$UID - 613 - - - CF$UID - 614 - - - CF$UID - 615 - - - CF$UID - 616 - - - CF$UID - 617 - - - CF$UID - 618 - - - CF$UID - 619 - - - CF$UID - 620 - - - CF$UID - 621 - - - CF$UID - 622 - - - CF$UID - 623 - - - CF$UID - 624 - - - CF$UID - 625 - - - CF$UID - 626 - - - CF$UID - 627 - - - CF$UID - 628 - - - CF$UID - 629 - - - CF$UID - 630 - - - CF$UID - 631 - - - CF$UID - 632 - - - CF$UID - 633 - - - CF$UID - 634 - - - CF$UID - 635 - - - CF$UID - 636 - - - CF$UID - 637 - - - CF$UID - 638 - - - - 264 - 150 - 251 - 37 - 169 - 274 - 149 - 265 - 294 - 168 - 73 - 191 - 77 - 196 - 283 - 242 - 86 - 19 - 197 - 87 - 2 - 78 - 83 - 125 - 143 - 203 - 244 - 218 - 127 - 248 - 247 - 205 - 202 - 24 - 281 - 129 - 195 - 180 - 198 - 210 - 292 - 240 - 171 - 286 - 284 - 167 - 290 - 238 - 204 - 146 - 92 - 254 - 162 - 285 - 74 - 136 - 289 - 188 - 5 - 124 - 245 - 187 - 159 - 252 - 190 - 184 - 82 - 206 - 139 - 200 - 241 - 1 - 207 - 257 - 246 - 253 - 193 - 158 - 258 - 179 - 201 - 111 - 176 - 156 - 249 - 112 - 259 - 29 - 260 - 185 - 72 - 134 - 160 - 291 - 173 - 154 - 157 - 282 - 261 - 161 - 219 - 144 - 39 - 57 - 293 - 131 - 287 - 262 - 250 - 126 - 106 - 81 - 142 - 21 - 122 - 181 - 199 - 174 - 152 - 192 - 172 - 79 - 178 - 236 - 103 - 75 - 56 - 155 - 153 - 175 - 189 - 58 - 163 - 23 - 164 - 243 - 145 - 130 - 263 - 80 - 235 - 237 - 288 - 239 - - $class - - CF$UID - 54 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - - $classes - - NSIBObjectData - NSObject - - $classname - NSIBObjectData - - - $top - - IB.objectdata - - CF$UID - 1 - - - $version - 100000 - - diff --git a/Examples/CGShadingCreate/Info.plist b/Examples/CGShadingCreate/Info.plist deleted file mode 100644 index 982fb096..00000000 --- a/Examples/CGShadingCreate/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.CGShadingCreateAxial - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - OBJC - CFBundleVersion - 1.0 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/Examples/Examples.xcworkspace/contents.xcworkspacedata b/Examples/Examples.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 25d54951..00000000 --- a/Examples/Examples.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj b/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj deleted file mode 100644 index 75dc08c1..00000000 --- a/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj +++ /dev/null @@ -1,484 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FE472DAE0C85A959002B72EF /* MyOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE472DAD0C85A959002B72EF /* MyOpenGLView.m */; }; - FE472DC90C85AAA1002B72EF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE472DC80C85AAA1002B72EF /* OpenGL.framework */; }; - FE4733530C876FA1002B72EF /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - FE4733540C876FA1002B72EF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - FE4733560C876FA1002B72EF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - FE4733570C876FA1002B72EF /* MyOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE472DAD0C85A959002B72EF /* MyOpenGLView.m */; }; - FEBEB04E0C96D3EE002C9F50 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */; }; - FEBEB04F0C96D3EE002C9F50 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */; }; - FEBEB0520C96D3FD002C9F50 /* Localizable-windows.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */; }; - FEBEB0530C96D3FD002C9F50 /* Localizable-windows.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */; }; - FEF2EB7D0C87B952001FC5A8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; - FEF2EB7E0C87B959001FC5A8 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE386A3C15267FB1007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AB210C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; - FE386A3E15267FB1007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C8E0BFAA0F0E6B0E00677729; - remoteInfo = "Cocoa-Darwin-i386"; - }; - FE386A4015267FB1007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FECC1DD6108D025D00BD4A91; - remoteInfo = "Cocoa-Linux-i386"; - }; - FE386A4215267FB1007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5A873F10C6F1E8005E348A; - remoteInfo = "Cocoa-FreeBSD-i386"; - }; - FE386A4815267FC9007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01AB110C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* NSOpenGLView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NSOpenGLView.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Cocoa.xcodeproj; path = ../../Cocoa/Cocoa.xcodeproj; sourceTree = ""; }; - FE472DAC0C85A959002B72EF /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MyOpenGLView.h; sourceTree = ""; }; - FE472DAD0C85A959002B72EF /* MyOpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MyOpenGLView.m; sourceTree = ""; }; - FE472DC80C85AAA1002B72EF /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; - FE47335D0C876FA1002B72EF /* NSOpenGLView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NSOpenGLView.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEBEB00E0C96D208002C9F50 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; - FEBEB0160C96D228002C9F50 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = English; path = "English.lproj/Localizable-windows.strings"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - FE472DC90C85AAA1002B72EF /* OpenGL.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE4733580C876FA1002B72EF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF2EB7D0C87B952001FC5A8 /* Foundation.framework in Frameworks */, - FEF2EB7E0C87B959001FC5A8 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* NSOpenGLView.app */, - FE47335D0C876FA1002B72EF /* NSOpenGLView.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* NSOpenGLView */ = { - isa = PBXGroup; - children = ( - FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */, - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */, - FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */, - ); - name = NSOpenGLView; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 29B97316FDCFA39411CA2CEA /* main.m */, - FE472DAC0C85A959002B72EF /* MyOpenGLView.h */, - FE472DAD0C85A959002B72EF /* MyOpenGLView.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - FE472DC80C85AAA1002B72EF /* OpenGL.framework */, - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - FE3869EB15267FAD007CC8C7 /* Products */ = { - isa = PBXGroup; - children = ( - FE386A3D15267FB1007CC8C7 /* Cocoa.framework */, - FE386A3F15267FB1007CC8C7 /* Cocoa.framework */, - FE386A4115267FB1007CC8C7 /* Cocoa.framework */, - FE386A4315267FB1007CC8C7 /* Cocoa.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* NSOpenGLView-MacOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "NSOpenGLView-MacOS" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "NSOpenGLView-MacOS"; - productInstallPath = "$(HOME)/Applications"; - productName = NSOpenGLView; - productReference = 8D1107320486CEB800E47090 /* NSOpenGLView.app */; - productType = "com.apple.product-type.application"; - }; - FE4733510C876FA1002B72EF /* NSOpenGLView-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE47335B0C876FA1002B72EF /* Build configuration list for PBXNativeTarget "NSOpenGLView-Windows" */; - buildPhases = ( - FE4733520C876FA1002B72EF /* Resources */, - FE4733550C876FA1002B72EF /* Sources */, - FE4733580C876FA1002B72EF /* Frameworks */, - FE2D932D0D491258005B7813 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - FE386A4915267FC9007CC8C7 /* PBXTargetDependency */, - ); - name = "NSOpenGLView-Windows"; - productInstallPath = "$(HOME)/Applications"; - productName = NSOpenGLView; - productReference = FE47335D0C876FA1002B72EF /* NSOpenGLView.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "NSOpenGLView" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* NSOpenGLView */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE3869EB15267FAD007CC8C7 /* Products */; - ProjectRef = FE3869EA15267FAD007CC8C7 /* Cocoa.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* NSOpenGLView-MacOS */, - FE4733510C876FA1002B72EF /* NSOpenGLView-Windows */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE386A3D15267FB1007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386A3C15267FB1007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386A3F15267FB1007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386A3E15267FB1007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386A4115267FB1007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386A4015267FB1007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386A4315267FB1007CC8C7 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FE386A4215267FB1007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */, - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - FEBEB04E0C96D3EE002C9F50 /* Localizable.strings in Resources */, - FEBEB0520C96D3FD002C9F50 /* Localizable-windows.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE4733520C876FA1002B72EF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4733530C876FA1002B72EF /* MainMenu.nib in Resources */, - FE4733540C876FA1002B72EF /* InfoPlist.strings in Resources */, - FEBEB04F0C96D3EE002C9F50 /* Localizable.strings in Resources */, - FEBEB0530C96D3FD002C9F50 /* Localizable-windows.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FE2D932D0D491258005B7813 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - FE472DAE0C85A959002B72EF /* MyOpenGLView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE4733550C876FA1002B72EF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4733560C876FA1002B72EF /* main.m in Sources */, - FE4733570C876FA1002B72EF /* MyOpenGLView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE386A4915267FC9007CC8C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Cocoa-Windows-i386"; - targetProxy = FE386A4815267FC9007CC8C7 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 29B97319FDCFA39411CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; - FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - FEBEB00E0C96D208002C9F50 /* English */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */ = { - isa = PBXVariantGroup; - children = ( - FEBEB0160C96D228002C9F50 /* English */, - ); - name = "Localizable-windows.strings"; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 1; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - PRODUCT_NAME = NSOpenGLView; - SDKROOT = ""; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; - }; - name = Release; - }; - FE47335C0C876FA1002B72EF /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - EFFECTIVE_PLATFORM_NAME = "-windows"; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_VERSION = org.cocotron.1.0.windows.i386.gcc.4.3.1; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-Wl,--enable-auto-import", - "-mwindows", - "-lopengl32", - ); - PREBINDING = NO; - PRODUCT_NAME = NSOpenGLView; - SDKROOT = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "NSOpenGLView-MacOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "NSOpenGLView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FE47335B0C876FA1002B72EF /* Build configuration list for PBXNativeTarget "NSOpenGLView-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE47335C0C876FA1002B72EF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Mac.xcscheme b/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Mac.xcscheme deleted file mode 100644 index 07d94e2a..00000000 --- a/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Mac.xcscheme +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Windows.xcscheme b/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Windows.xcscheme deleted file mode 100644 index d83b046f..00000000 --- a/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/xcshareddata/xcschemes/NSOpenGLView-Windows.xcscheme +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj b/Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj deleted file mode 100644 index f2dfe5e1..00000000 --- a/Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj +++ /dev/null @@ -1,533 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; }; - 8D15AC2E0486D014006FF6A4 /* MyDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */; }; - 8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */; settings = {ATTRIBUTES = (); }; }; - 8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; }; - FE2021971751B01F002A9EDC /* MyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */; }; - FEBCB9391750326300056F54 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEBCB9381750326300056F54 /* AppKit.framework */; }; - FEBCB93B1750326E00056F54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEBCB93A1750326E00056F54 /* Foundation.framework */; }; - FEF2CA110B35153A005449C7 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; - FEF2CA120B35153A005449C7 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; }; - FEF2CA130B35153A005449C7 /* MyDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */; }; - FEF2CA170B35153A005449C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FEB4EF3A15267D2100EC3CA1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AB210C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; - FEB4EF3C15267D2100EC3CA1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C8E0BFAA0F0E6B0E00677729; - remoteInfo = "Cocoa-Darwin-i386"; - }; - FEB4EF3E15267D2100EC3CA1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FECC1DD6108D025D00BD4A91; - remoteInfo = "Cocoa-Linux-i386"; - }; - FEB4EF4015267D2100EC3CA1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5A873F10C6F1E8005E348A; - remoteInfo = "Cocoa-FreeBSD-i386"; - }; - FEB4EF4215267D3400EC3CA1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01AB110C5D9C3400AEA51A; - remoteInfo = "Cocoa-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyDocument.m; sourceTree = ""; }; - 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyDocument.h; sourceTree = ""; }; - 2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 2A37F4B5FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MyDocument.nib; sourceTree = ""; }; - 2A37F4B7FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = ""; }; - 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D15AC360486D014006FF6A4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D15AC370486D014006FF6A4 /* TextEditor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TextEditor.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Cocoa.xcodeproj; path = ../../Cocoa/Cocoa.xcodeproj; sourceTree = ""; }; - FEBCB9381750326300056F54 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = "../../AppKit/build/sym/Release-i386-mingw32msvc/AppKit.framework"; sourceTree = ""; }; - FEBCB93A1750326E00056F54 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = "../../Foundation/build/sym/Release-i386-pc-linux/Foundation.framework"; sourceTree = ""; }; - FEF2CA1C0B35153A005449C7 /* TextEditor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TextEditor.app; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D15AC330486D014006FF6A4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEF2CA180B35153A005449C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEBCB9391750326300056F54 /* AppKit.framework in Frameworks */, - FEBCB93B1750326E00056F54 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */, - 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FB0FE9D524F11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D15AC370486D014006FF6A4 /* TextEditor.app */, - FEF2CA1C0B35153A005449C7 /* TextEditor.app */, - ); - name = Products; - sourceTree = ""; - }; - 2A37F4AAFDCFA73011CA2CEA /* TextEditor */ = { - isa = PBXGroup; - children = ( - FEBCB93A1750326E00056F54 /* Foundation.framework */, - FEBCB9381750326300056F54 /* AppKit.framework */, - FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */, - 2A37F4ABFDCFA73011CA2CEA /* Classes */, - 2A37F4C3FDCFA73011CA2CEA /* Frameworks */, - 2A37F4AFFDCFA73011CA2CEA /* Other Sources */, - 19C28FB0FE9D524F11CA2CBB /* Products */, - 2A37F4B8FDCFA73011CA2CEA /* Resources */, - ); - name = TextEditor; - sourceTree = ""; - }; - 2A37F4ABFDCFA73011CA2CEA /* Classes */ = { - isa = PBXGroup; - children = ( - 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */, - 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */, - ); - name = Classes; - sourceTree = ""; - }; - 2A37F4AFFDCFA73011CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 2A37F4B0FDCFA73011CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 2A37F4B8FDCFA73011CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */, - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */, - 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */, - 8D15AC360486D014006FF6A4 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 2A37F4C3FDCFA73011CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */, - 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - FEB4EF2E15267D2000EC3CA1 /* Products */ = { - isa = PBXGroup; - children = ( - FEB4EF3B15267D2100EC3CA1 /* Cocoa.framework */, - FEB4EF3D15267D2100EC3CA1 /* Cocoa.framework */, - FEB4EF3F15267D2100EC3CA1 /* Cocoa.framework */, - FEB4EF4115267D2100EC3CA1 /* Cocoa.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D15AC270486D014006FF6A4 /* TextEditor-Mac */ = { - isa = PBXNativeTarget; - buildConfigurationList = C05733C708A9546B00998B17 /* Build configuration list for PBXNativeTarget "TextEditor-Mac" */; - buildPhases = ( - 8D15AC2B0486D014006FF6A4 /* Resources */, - 8D15AC300486D014006FF6A4 /* Sources */, - 8D15AC330486D014006FF6A4 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "TextEditor-Mac"; - productInstallPath = "$(HOME)/Applications"; - productName = TextEditor; - productReference = 8D15AC370486D014006FF6A4 /* TextEditor.app */; - productType = "com.apple.product-type.application"; - }; - FEF2CA0F0B35153A005449C7 /* TextEditor-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = FEF2CA1A0B35153A005449C7 /* Build configuration list for PBXNativeTarget "TextEditor-Windows" */; - buildPhases = ( - FEF2CA100B35153A005449C7 /* Resources */, - FEF2CA150B35153A005449C7 /* Sources */, - FEF2CA180B35153A005449C7 /* Frameworks */, - FEB6746C0D2F2909006EE835 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - FEB4EF4315267D3400EC3CA1 /* PBXTargetDependency */, - ); - name = "TextEditor-Windows"; - productInstallPath = "$(HOME)/Applications"; - productName = TextEditor; - productReference = FEF2CA1C0B35153A005449C7 /* TextEditor.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 2A37F4A9FDCFA73011CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0420; - }; - buildConfigurationList = C05733CB08A9546B00998B17 /* Build configuration list for PBXProject "TextEditor" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 2A37F4AAFDCFA73011CA2CEA /* TextEditor */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FEB4EF2E15267D2000EC3CA1 /* Products */; - ProjectRef = FEB4EF2D15267D2000EC3CA1 /* Cocoa.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D15AC270486D014006FF6A4 /* TextEditor-Mac */, - FEF2CA0F0B35153A005449C7 /* TextEditor-Windows */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FEB4EF3B15267D2100EC3CA1 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FEB4EF3A15267D2100EC3CA1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FEB4EF3D15267D2100EC3CA1 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FEB4EF3C15267D2100EC3CA1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FEB4EF3F15267D2100EC3CA1 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FEB4EF3E15267D2100EC3CA1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FEB4EF4115267D2100EC3CA1 /* Cocoa.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Cocoa.framework; - remoteRef = FEB4EF4015267D2100EC3CA1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D15AC2B0486D014006FF6A4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */, - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */, - 8D15AC2E0486D014006FF6A4 /* MyDocument.nib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEF2CA100B35153A005449C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF2CA110B35153A005449C7 /* Credits.rtf in Resources */, - FEF2CA120B35153A005449C7 /* MainMenu.nib in Resources */, - FEF2CA130B35153A005449C7 /* MyDocument.nib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FEB6746C0D2F2909006EE835 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D15AC300486D014006FF6A4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */, - 8D15AC320486D014006FF6A4 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEF2CA150B35153A005449C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF2CA170B35153A005449C7 /* main.m in Sources */, - FE2021971751B01F002A9EDC /* MyDocument.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FEB4EF4315267D3400EC3CA1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Cocoa-Windows-i386"; - targetProxy = FEB4EF4215267D3400EC3CA1 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4B5FDCFA73011CA2CEA /* English */, - ); - name = MyDocument.nib; - sourceTree = ""; - }; - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4B7FDCFA73011CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; - 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4BAFDCFA73011CA2CEA /* English */, - ); - name = Credits.rtf; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C05733C808A9546B00998B17 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = TextEditor; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Release; - }; - C05733CC08A9546B00998B17 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; - FEBCB9291750249800056F54 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - FEBCB92A1750249800056F54 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = TextEditor; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Debug; - }; - FEBCB92B1750249800056F54 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - DEPLOYMENT_LOCATION = YES; - DSTROOT = build; - EFFECTIVE_PLATFORM_NAME = "-windows"; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = "../../system/i386-mingw32msvc/Frameworks"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_VERSION = org.cocotron.1.0.windows.i386.gcc.4.3.1; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "$(WINDOWS_i386_COMPILER_CFLAGS)", - "-isystem", - /Developer/Cocotron/1.0/Windows/i386/sysroot/mingw/include/, - "-mwindows", - "-mconsole", - ); - OTHER_LDFLAGS = ( - "-mwindows", - "-mconsole", - "$(WINDOWS_i386_COMPILER_LDFLAGS)", - ); - PRODUCT_NAME = TextEditor; - XWINDOWS_i386_COMPILER_CFLAGS = "-ccc-host-triple i386-pc-mingw32msvc -ccc-gcc-name i386-mingw32msvc-gcc"; - XWINDOWS_i386_COMPILER_LDFLAGS = "-ccc-host-triple i386-pc-mingw32msvc -ccc-gcc-name i386-mingw32msvc-gcc"; - }; - name = Debug; - }; - FEF2CA1B0B35153A005449C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - DEPLOYMENT_LOCATION = YES; - DSTROOT = build; - EFFECTIVE_PLATFORM_NAME = "-windows"; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = "../../system/i386-mingw32msvc/Frameworks"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_VERSION = org.cocotron.1.0.windows.i386.gcc.4.3.1; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "$(WINDOWS_i386_COMPILER_CFLAGS)", - "-isystem", - /Developer/Cocotron/1.0/Windows/i386/sysroot/mingw/include/, - "-mwindows", - "-mconsole", - ); - OTHER_LDFLAGS = ( - "-mwindows", - "-mconsole", - "$(WINDOWS_i386_COMPILER_LDFLAGS)", - ); - PRODUCT_NAME = TextEditor; - XWINDOWS_i386_COMPILER_CFLAGS = "-ccc-host-triple i386-pc-mingw32msvc -ccc-gcc-name i386-mingw32msvc-gcc"; - XWINDOWS_i386_COMPILER_LDFLAGS = "-ccc-host-triple i386-pc-mingw32msvc -ccc-gcc-name i386-mingw32msvc-gcc"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C05733C708A9546B00998B17 /* Build configuration list for PBXNativeTarget "TextEditor-Mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C05733C808A9546B00998B17 /* Release */, - FEBCB92A1750249800056F54 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C05733CB08A9546B00998B17 /* Build configuration list for PBXProject "TextEditor" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C05733CC08A9546B00998B17 /* Release */, - FEBCB9291750249800056F54 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FEF2CA1A0B35153A005449C7 /* Build configuration list for PBXNativeTarget "TextEditor-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEF2CA1B0B35153A005449C7 /* Release */, - FEBCB92B1750249800056F54 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 2A37F4A9FDCFA73011CA2CEA /* Project object */; -} diff --git a/Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Mac.xcscheme b/Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Mac.xcscheme deleted file mode 100644 index 30b98cc4..00000000 --- a/Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Mac.xcscheme +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Windows.xcscheme b/Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Windows.xcscheme deleted file mode 100644 index eafe23a8..00000000 --- a/Examples/TextEditor/TextEditor.xcodeproj/xcshareddata/xcschemes/TextEditor-Windows.xcscheme +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Examples/TextEditor/main.m b/Examples/TextEditor/main.m deleted file mode 100644 index c2b25b4b..00000000 --- a/Examples/TextEditor/main.m +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -int main(int argc, char *argv[]) { - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/Foundation/English.lproj/NSUserDefaults.plist b/Foundation/English.lproj/NSUserDefaults.plist deleted file mode 100755 index 701ea143..00000000 --- a/Foundation/English.lproj/NSUserDefaults.plist +++ /dev/null @@ -1,12 +0,0 @@ -{ - NSAMPMDesignation = (AM, PM); - NSDateFormatString = "%A, %B %d, %Y"; - NSMonthNameArray = ( January, February, March, April, May, June, July, August, September, October, November, December ); - NSShortMonthNameArray = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); - NSShortWeekDayNameArray = (Sun, Mon, Tue, Wed, Thu, Fri, Sat); - NSTimeDateFormatString = "%A, %B %d, %Y %H:%M:%S %Z"; - NSTimeFormatString = "%H:%M:%S"; - NSWeekDayNameArray = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); - - NSUserDefaultsUserDirectory = "~/Library/NSUserDefaults"; -} diff --git a/Foundation/Foundation.h b/Foundation/Foundation.h deleted file mode 100644 index c384b7ea..00000000 --- a/Foundation/Foundation.h +++ /dev/null @@ -1,158 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#if !defined(__STDC_VERSION__) -#define __STDC_VERSION__ 198900L -#elif (__STDC_VERSION__ < 199400L) -#define __STDC_VERSION__ 199000L -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if (__STDC_VERSION__ >= 199901L) -#include -#include -#include -#endif - -#import -#import // This is actually imported by NSURLError.h - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import diff --git a/Foundation/Foundation.xcodeproj/project.pbxproj b/Foundation/Foundation.xcodeproj/project.pbxproj deleted file mode 100644 index 257a0766..00000000 --- a/Foundation/Foundation.xcodeproj/project.pbxproj +++ /dev/null @@ -1,4243 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 151B5D22105EA94F009092D5 /* NSAtomicCompareAndSwap.h in Headers */ = {isa = PBXBuildFile; fileRef = 151B5D1A105EA94F009092D5 /* NSAtomicCompareAndSwap.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1A27BFFC1090CBCD00C44FD7 /* NSNumber_BOOL_const_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A27BFF01090CBCD00C44FD7 /* NSNumber_BOOL_const_impl.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1A28B5B8109096950019EFC6 /* NSConstObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A28B5B2109096950019EFC6 /* NSConstObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1A8A69541091EF0200DC5A01 /* NSCFTypeID.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8A694E1091EF0200DC5A01 /* NSCFTypeID.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1ACAB287108C5B010057A542 /* NSNumber_BOOL_const.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACAB27B108C5B010057A542 /* NSNumber_BOOL_const.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 1ACAB288108C5B010057A542 /* NSNumber_double_const.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACAB27C108C5B010057A542 /* NSNumber_double_const.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 2692499F1157AC7B00A96CEB /* NSCondition.m in Sources */ = {isa = PBXBuildFile; fileRef = 2692499E1157AC7B00A96CEB /* NSCondition.m */; }; - 269249CC1157AD6500A96CEB /* NSCondition_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 269249CA1157AD6500A96CEB /* NSCondition_win32.m */; }; - 269249CD1157AD6500A96CEB /* NSCondition_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 269249CB1157AD6500A96CEB /* NSCondition_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 492B5DAB17468F0C0013F119 /* objc_association.m in Sources */ = {isa = PBXBuildFile; fileRef = 492B5DAA17468F0C0013F119 /* objc_association.m */; }; - 499120D4178EA58D009310D4 /* NSStringEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 499120D2178EA58D009310D4 /* NSStringEncoder.h */; }; - 499120DD178EA58D009310D4 /* NSStringEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 499120D3178EA58D009310D4 /* NSStringEncoder.m */; }; - C6BC3CB11162303400DFC16C /* NSTimeZone_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = C6BC3CAF1162303400DFC16C /* NSTimeZone_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C6BC3CB21162303400DFC16C /* NSTimeZone_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = C6BC3CB01162303400DFC16C /* NSTimeZone_win32.m */; }; - C6BC3CC61162308E00DFC16C /* NSTimeZoneWindowsZones.plist in Resources */ = {isa = PBXBuildFile; fileRef = C6BC3CC51162308E00DFC16C /* NSTimeZoneWindowsZones.plist */; }; - C80F9AE10E58BD5400ECD487 /* objc-msgsend.s in Sources */ = {isa = PBXBuildFile; fileRef = C80F9AE00E58BD5400ECD487 /* objc-msgsend.s */; settings = {COMPILER_FLAGS = "-g0"; }; }; - C844CF9D0DA7EBE500A8F3A2 /* NSRecursiveLock.h in Headers */ = {isa = PBXBuildFile; fileRef = C844CF930DA7EBE500A8F3A2 /* NSRecursiveLock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C844CF9E0DA7EBE500A8F3A2 /* NSRecursiveLock.m in Sources */ = {isa = PBXBuildFile; fileRef = C844CF940DA7EBE500A8F3A2 /* NSRecursiveLock.m */; }; - C844CFD80DA7F21400A8F3A2 /* NSSynchronization.h in Headers */ = {isa = PBXBuildFile; fileRef = C844CFCE0DA7F21400A8F3A2 /* NSSynchronization.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C844CFD90DA7F21400A8F3A2 /* NSSynchronization.m in Sources */ = {isa = PBXBuildFile; fileRef = C844CFCF0DA7F21400A8F3A2 /* NSSynchronization.m */; }; - C851D8730E40E0D3001DAB69 /* NSPropertyListWriter_xml1.m in Sources */ = {isa = PBXBuildFile; fileRef = C851D86B0E40E0D3001DAB69 /* NSPropertyListWriter_xml1.m */; }; - C851D8740E40E0D3001DAB69 /* NSPropertyListWriter_xml1.h in Headers */ = {isa = PBXBuildFile; fileRef = C851D86C0E40E0D3001DAB69 /* NSPropertyListWriter_xml1.h */; }; - C89B47370F5C6A4B0070120D /* NSCancelInputSource_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = C89B47350F5C6A4B0070120D /* NSCancelInputSource_win32.h */; }; - C89B47380F5C6A4B0070120D /* NSCancelInputSource_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = C89B47360F5C6A4B0070120D /* NSCancelInputSource_win32.m */; }; - C8B53BDD0E6AC7C500E4467E /* objc_debugHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = C8B53BD50E6AC7C500E4467E /* objc_debugHelpers.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C8B53BDE0E6AC7C500E4467E /* objc_debugHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = C8B53BD60E6AC7C500E4467E /* objc_debugHelpers.m */; }; - C8BAA5750DDEFC6C005C4769 /* objc_size_alignment.h in Headers */ = {isa = PBXBuildFile; fileRef = C8BAA5710DDEFC6C005C4769 /* objc_size_alignment.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C8BAA5760DDEFC6C005C4769 /* objc_size_alignment.m in Sources */ = {isa = PBXBuildFile; fileRef = C8BAA5720DDEFC6C005C4769 /* objc_size_alignment.m */; }; - C8C970100EBDBC63009CE9BC /* NSConditionLock_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = C8C9700E0EBDBC63009CE9BC /* NSConditionLock_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - C8C970110EBDBC63009CE9BC /* NSConditionLock_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = C8C9700F0EBDBC63009CE9BC /* NSConditionLock_win32.m */; }; - CF0F7AC11AE9E7C1003EA762 /* NSString_isoLatin2.h in Headers */ = {isa = PBXBuildFile; fileRef = CF0F7ABF1AE9E7C1003EA762 /* NSString_isoLatin2.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CF0F7AC21AE9E7C1003EA762 /* NSString_isoLatin2.m in Sources */ = {isa = PBXBuildFile; fileRef = CF0F7AC01AE9E7C1003EA762 /* NSString_isoLatin2.m */; }; - CF0F7AC71AE9EB23003EA762 /* NSBacktraceFunctions_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = CF0F7AC61AE9EB23003EA762 /* NSBacktraceFunctions_win32.m */; }; - CF2A01FF1B078C89005D322F /* OBJCRegisterModule_Darwin.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2705C50C5EF3D60004AB37 /* OBJCRegisterModule_Darwin.m */; }; - CF2A02001B079314005D322F /* objc_msg_sendv-Disabled.m in Sources */ = {isa = PBXBuildFile; fileRef = 151B5CC3105EA25E009092D5 /* objc_msg_sendv-Disabled.m */; }; - CF595A8C1B1ABFB600F7BE40 /* objc_lock.h in Headers */ = {isa = PBXBuildFile; fileRef = CF595A8B1B1ABFB600F7BE40 /* objc_lock.h */; }; - CF652CF21B116C5D0090D2FE /* objc_log.c in Sources */ = {isa = PBXBuildFile; fileRef = CF652CEE1B116C5D0090D2FE /* objc_log.c */; }; - CF652CF31B116C5D0090D2FE /* objc_log.h in Headers */ = {isa = PBXBuildFile; fileRef = CF652CEF1B116C5D0090D2FE /* objc_log.h */; }; - CF652CF41B116C5D0090D2FE /* objc_tls.c in Sources */ = {isa = PBXBuildFile; fileRef = CF652CF01B116C5D0090D2FE /* objc_tls.c */; }; - CF652CF51B116C5D0090D2FE /* objc_tls.h in Headers */ = {isa = PBXBuildFile; fileRef = CF652CF11B116C5D0090D2FE /* objc_tls.h */; }; - CF652CF71B116D180090D2FE /* objc_exception.m in Sources */ = {isa = PBXBuildFile; fileRef = CF652CF61B116D180090D2FE /* objc_exception.m */; }; - CF652CF91B116D4E0090D2FE /* objc_arc.c in Sources */ = {isa = PBXBuildFile; fileRef = CF652CF81B116D4E0090D2FE /* objc_arc.c */; }; - CF7FA2001B18006E00840DB1 /* dyld.c in Sources */ = {isa = PBXBuildFile; fileRef = CF7FA1FF1B18006E00840DB1 /* dyld.c */; }; - CFCEA46A1B04318B00B3B087 /* NSPlatform_linux.h in Headers */ = {isa = PBXBuildFile; fileRef = CFCEA4681B04318B00B3B087 /* NSPlatform_linux.h */; }; - CFCEA46B1B04318B00B3B087 /* NSPlatform_linux.m in Sources */ = {isa = PBXBuildFile; fileRef = CFCEA4691B04318B00B3B087 /* NSPlatform_linux.m */; }; - CFDCC89A1B04149700A5721C /* NSMemoryFunctions_linux.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28056B09747CE100EC542B /* NSMemoryFunctions_linux.m */; }; - CFDCC89B1B0414D000A5721C /* libmain.m in Sources */ = {isa = PBXBuildFile; fileRef = C64663DF15590EAF00A162B8 /* libmain.m */; }; - CFDCC89D1B0415A300A5721C /* NSTimeZone_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = C6BC3CB41162305000DFC16C /* NSTimeZone_posix.m */; }; - CFDCC89E1B0415A300A5721C /* NSCondition_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 26924AB41157BF7600A96CEB /* NSCondition_posix.m */; }; - CFDCC89F1B0415A300A5721C /* NSString_defaultEncoding_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6014221042FD49008A7357 /* NSString_defaultEncoding_posix.m */; }; - CFDCC8A01B0415A300A5721C /* NSRunLoopState_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = FEA9D30A0F5D9C5A00772064 /* NSRunLoopState_posix.m */; }; - CFDCC8A11B0415A300A5721C /* NSFileHandle_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28057709747CEE00EC542B /* NSFileHandle_posix.m */; }; - CFDCC8A21B0415A300A5721C /* NSFileManager_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28057909747CEE00EC542B /* NSFileManager_posix.m */; settings = {COMPILER_FLAGS = "$(LINUX_i386_FOUNDATION_GNU89_INDIVIDUAL_FILE_CFLAGS)"; }; }; - CFDCC8A31B0415A300A5721C /* NSLock_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28057B09747CEE00EC542B /* NSLock_posix.m */; }; - CFDCC8A41B0415A300A5721C /* NSMemoryFunctions_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28057C09747CEE00EC542B /* NSMemoryFunctions_posix.m */; }; - CFDCC8A51B0415A300A5721C /* NSPersistantDomain_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28057E09747CEE00EC542B /* NSPersistantDomain_posix.m */; }; - CFDCC8A61B0415A300A5721C /* NSPipe_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28058009747CEE00EC542B /* NSPipe_posix.m */; }; - CFDCC8A71B0415A300A5721C /* NSPlatform_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28058209747CEE00EC542B /* NSPlatform_posix.m */; settings = {COMPILER_FLAGS = "$(LINUX_i386_FOUNDATION_GNU89_INDIVIDUAL_FILE_CFLAGS)"; }; }; - CFDCC8A81B0415A300A5721C /* NSSelectSet_bsd.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35D6480B52A3E400FE7AB3 /* NSSelectSet_bsd.m */; }; - CFDCC8A91B0415A300A5721C /* NSSocket_bsd.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35D66D0B52AFBC00FE7AB3 /* NSSocket_bsd.m */; }; - CFDCC8AA1B0415A300A5721C /* NSTask_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28058409747CEE00EC542B /* NSTask_posix.m */; }; - CFDCC8AB1B0415A300A5721C /* NSConditionLock_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = C8C39E010EAB6646002568A3 /* NSConditionLock_posix.m */; }; - CFDCC8AC1B0415A300A5721C /* NSRecursiveLock_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DE1C158151665AB003781E1 /* NSRecursiveLock_posix.m */; }; - CFDCC8AD1B0415A300A5721C /* NSCancelInputSource_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = C89B473E0F5C6AB50070120D /* NSCancelInputSource_posix.m */; }; - CFDCC8AE1B0415A600A5721C /* NSSocketPort_posix.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D94DD61153E859E0048B351 /* NSSocketPort_posix.m */; }; - CFDCC8AF1B0415D600A5721C /* NSTimeZone_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = C6BC3CB31162305000DFC16C /* NSTimeZone_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B01B0415D600A5721C /* NSCondition_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 26924AB51157BF7600A96CEB /* NSCondition_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B11B0415D600A5721C /* NSRunLoopState_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA9D3090F5D9C5A00772064 /* NSRunLoopState_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B21B0415D600A5721C /* NSFileHandle_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28057609747CEE00EC542B /* NSFileHandle_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B31B0415D600A5721C /* NSFileManager_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28057809747CEE00EC542B /* NSFileManager_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B41B0415D600A5721C /* NSLock_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28057A09747CEE00EC542B /* NSLock_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B51B0415D600A5721C /* NSPersistantDomain_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28057D09747CEE00EC542B /* NSPersistantDomain_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B61B0415D600A5721C /* NSPipe_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28057F09747CEE00EC542B /* NSPipe_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B71B0415D600A5721C /* NSPlatform_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28058109747CEE00EC542B /* NSPlatform_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B81B0415D600A5721C /* NSSelectSet_bsd.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35D6470B52A3E400FE7AB3 /* NSSelectSet_bsd.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8B91B0415D600A5721C /* NSSocket_bsd.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35D66C0B52AFBC00FE7AB3 /* NSSocket_bsd.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8BA1B0415D600A5721C /* NSTask_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28058309747CEE00EC542B /* NSTask_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8BB1B0415D600A5721C /* NSConditionLock_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = C8C39E000EAB6646002568A3 /* NSConditionLock_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8BC1B0415D600A5721C /* NSRecursiveLock_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DE1C157151665AB003781E1 /* NSRecursiveLock_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8BD1B0415D600A5721C /* NSCancelInputSource_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = C89B473D0F5C6AB50070120D /* NSCancelInputSource_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFDCC8BE1B0415D600A5721C /* NSSocketPort_posix.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D94DD60153E859E0048B351 /* NSSocketPort_posix.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CFE3093B1B06E39E008442BF /* OBJCRegisterModule_Darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = CFE3093A1B06E39E008442BF /* OBJCRegisterModule_Darwin.h */; }; - CFE3093C1B06E63C008442BF /* NSPlatform_darwin.m in Sources */ = {isa = PBXBuildFile; fileRef = FED70B010C3B4255000CBE5B /* NSPlatform_darwin.m */; }; - CFE3093D1B06E699008442BF /* NSPlatform_darwin.h in Headers */ = {isa = PBXBuildFile; fileRef = FED70B000C3B4255000CBE5B /* NSPlatform_darwin.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A59B0C5D9B6900AEA51A /* NSArray_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E280311097478CC00EC542B /* NSArray_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A59C0C5D9B6900AEA51A /* NSArray_placeholder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E280313097478CC00EC542B /* NSArray_placeholder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A59D0C5D9B6900AEA51A /* NSArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E280315097478CC00EC542B /* NSArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A59E0C5D9B6900AEA51A /* NSEnumerator_array.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E280317097478CC00EC542B /* NSEnumerator_array.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A59F0C5D9B6900AEA51A /* NSEnumerator_arrayReverse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E280319097478CC00EC542B /* NSEnumerator_arrayReverse.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5A00C5D9B6900AEA51A /* NSMutableArray_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28031B097478CC00EC542B /* NSMutableArray_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5A10C5D9B6900AEA51A /* NSMutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28031D097478CC00EC542B /* NSMutableArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5A20C5D9B6900AEA51A /* NSAttributedString_manyAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28034C09747ABE00EC542B /* NSAttributedString_manyAttributes.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5A30C5D9B6900AEA51A /* NSAttributedString_nilAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28034E09747ABE00EC542B /* NSAttributedString_nilAttributes.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5A40C5D9B6900AEA51A /* NSAttributedString_oneAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28035009747ABE00EC542B /* NSAttributedString_oneAttribute.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5A50C5D9B6900AEA51A /* NSAttributedString_placeholder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28035209747ABE00EC542B /* NSAttributedString_placeholder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5A60C5D9B6900AEA51A /* NSAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28035409747ABE00EC542B /* NSAttributedString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5A70C5D9B6900AEA51A /* NSMutableAttributedString_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28035609747ABE00EC542B /* NSMutableAttributedString_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5A80C5D9B6900AEA51A /* NSMutableAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28035809747ABE00EC542B /* NSMutableAttributedString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5A90C5D9B6900AEA51A /* NSMutableString_proxyToMutableAttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28035A09747ABE00EC542B /* NSMutableString_proxyToMutableAttributedString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5AA0C5D9B6900AEA51A /* NSRangeEntries.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28035C09747ABE00EC542B /* NSRangeEntries.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5AB0C5D9B6900AEA51A /* NSAutoreleasePool-private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28037009747ADF00EC542B /* NSAutoreleasePool-private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5AC0C5D9B6900AEA51A /* NSAutoreleasePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28037109747ADF00EC542B /* NSAutoreleasePool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5AD0C5D9B6900AEA51A /* NSData_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28037609747AFA00EC542B /* NSData_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5AE0C5D9B6900AEA51A /* NSData_mapped.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28037809747AFA00EC542B /* NSData_mapped.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5AF0C5D9B6900AEA51A /* NSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28037A09747AFA00EC542B /* NSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5B00C5D9B6900AEA51A /* NSMutableData_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28037C09747AFA00EC542B /* NSMutableData_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5B10C5D9B6900AEA51A /* NSMutableData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28037E09747AFA00EC542B /* NSMutableData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5B20C5D9B6900AEA51A /* NSDictionary_mapTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28038A09747B1500EC542B /* NSDictionary_mapTable.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5B30C5D9B6900AEA51A /* NSDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28038C09747B1500EC542B /* NSDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5B40C5D9B6900AEA51A /* NSEnumerator_dictionaryKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28038E09747B1500EC542B /* NSEnumerator_dictionaryKeys.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5B50C5D9B6900AEA51A /* NSEnumerator_dictionaryObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28039009747B1500EC542B /* NSEnumerator_dictionaryObjects.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5B60C5D9B6900AEA51A /* NSMutableDictionary_mapTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28039209747B1500EC542B /* NSMutableDictionary_mapTable.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5B70C5D9B6900AEA51A /* NSMutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28039409747B1500EC542B /* NSMutableDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5B80C5D9B6900AEA51A /* NSException.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803BA09747B6200EC542B /* NSException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5B90C5D9B6900AEA51A /* NSRaise.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803BE09747B6200EC542B /* NSRaise.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5BA0C5D9B6900AEA51A /* NSLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803C609747B7100EC542B /* NSLock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5BB0C5D9B6900AEA51A /* NSNotification_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803DE09747B8600EC542B /* NSNotification_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5BC0C5D9B6900AEA51A /* NSNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803E009747B8600EC542B /* NSNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5BD0C5D9B6900AEA51A /* NSNotificationCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803E609747B9100EC542B /* NSNotificationCenter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5BE0C5D9B6900AEA51A /* NSNotificationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803E809747B9100EC542B /* NSNotificationObserver.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5BF0C5D9B6900AEA51A /* NSObjectToObservers.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803EA09747B9100EC542B /* NSObjectToObservers.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C00C5D9B6900AEA51A /* NSNotificationAndModes.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803F209747BAA00EC542B /* NSNotificationAndModes.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C10C5D9B6900AEA51A /* NSNotificationQueue-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803F409747BAA00EC542B /* NSNotificationQueue-Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C20C5D9B6900AEA51A /* NSNotificationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803F509747BAA00EC542B /* NSNotificationQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5C30C5D9B6900AEA51A /* NSNumber_BOOL.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803FC09747BB300EC542B /* NSNumber_BOOL.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C40C5D9B6900AEA51A /* NSNumber_char.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2803FE09747BB300EC542B /* NSNumber_char.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C50C5D9B6900AEA51A /* NSNumber_double.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040009747BB300EC542B /* NSNumber_double.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C60C5D9B6900AEA51A /* NSNumber_float.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040209747BB300EC542B /* NSNumber_float.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C70C5D9B6900AEA51A /* NSNumber_int.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040409747BB300EC542B /* NSNumber_int.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C80C5D9B6900AEA51A /* NSNumber_long.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040609747BB300EC542B /* NSNumber_long.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5C90C5D9B6900AEA51A /* NSNumber_longLong.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040809747BB300EC542B /* NSNumber_longLong.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5CA0C5D9B6900AEA51A /* NSNumber_placeholder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040A09747BB300EC542B /* NSNumber_placeholder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5CB0C5D9B6900AEA51A /* NSNumber_short.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040C09747BB300EC542B /* NSNumber_short.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5CC0C5D9B6900AEA51A /* NSNumber_unsignedChar.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28040E09747BB300EC542B /* NSNumber_unsignedChar.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5CD0C5D9B6900AEA51A /* NSNumber_unsignedInt.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28041009747BB300EC542B /* NSNumber_unsignedInt.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5CE0C5D9B6900AEA51A /* NSNumber_unsignedLong.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28041209747BB300EC542B /* NSNumber_unsignedLong.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5CF0C5D9B6900AEA51A /* NSNumber_unsignedLongLong.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28041409747BB300EC542B /* NSNumber_unsignedLongLong.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D00C5D9B6900AEA51A /* NSNumber_unsignedShort.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28041609747BB300EC542B /* NSNumber_unsignedShort.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D10C5D9B6900AEA51A /* NSNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28041809747BB300EC542B /* NSNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5D20C5D9B6900AEA51A /* NSObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28043809747BBE00EC542B /* NSObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5D30C5D9B6900AEA51A /* NSZombieObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28043B09747BBE00EC542B /* NSZombieObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D40C5D9B6900AEA51A /* NSPropertyListReader_vintage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28044209747BCB00EC542B /* NSPropertyListReader_vintage.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D50C5D9B6900AEA51A /* NSPropertyListWriter_vintage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28044409747BCB00EC542B /* NSPropertyListWriter_vintage.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D60C5D9B6900AEA51A /* NSDelayedPerform.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28044A09747BD100EC542B /* NSDelayedPerform.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D70C5D9B6900AEA51A /* NSOrderedPerform.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28044C09747BD100EC542B /* NSOrderedPerform.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D80C5D9B6900AEA51A /* NSRunLoop-InputSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28044E09747BD100EC542B /* NSRunLoop-InputSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5D90C5D9B6900AEA51A /* NSRunLoop.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28044F09747BD100EC542B /* NSRunLoop.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5DA0C5D9B6900AEA51A /* NSRunLoopState.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28045109747BD100EC542B /* NSRunLoopState.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5DB0C5D9B6900AEA51A /* NSScanner_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28045C09747BD900EC542B /* NSScanner_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5DC0C5D9B6900AEA51A /* NSScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28045E09747BD900EC542B /* NSScanner.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5DD0C5D9B6900AEA51A /* NSCountedSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28046409747BE200EC542B /* NSCountedSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5DE0C5D9B6900AEA51A /* NSEnumerator_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28046609747BE200EC542B /* NSEnumerator_set.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5DF0C5D9B6900AEA51A /* NSInlineSetTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28046809747BE200EC542B /* NSInlineSetTable.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5E00C5D9B6900AEA51A /* NSMutableSet_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28046A09747BE200EC542B /* NSMutableSet_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5E10C5D9B6900AEA51A /* NSMutableSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28046C09747BE200EC542B /* NSMutableSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5E20C5D9B6900AEA51A /* NSSet_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28046E09747BE200EC542B /* NSSet_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5E30C5D9B6900AEA51A /* NSSet_placeholder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28047009747BE200EC542B /* NSSet_placeholder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5E40C5D9B6900AEA51A /* NSSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28047209747BE200EC542B /* NSSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5E50C5D9B6900AEA51A /* NSInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28048409747BED00EC542B /* NSInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5E60C5D9B6900AEA51A /* NSOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28048609747BED00EC542B /* NSOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5E70C5D9B6900AEA51A /* NSStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28048809747BED00EC542B /* NSStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5E80C5D9B6900AEA51A /* NSString_cString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28049309747BF800EC542B /* NSString_cString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5E90C5D9B6900AEA51A /* NSString_isoLatin1.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28049509747BF800EC542B /* NSString_isoLatin1.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5EA0C5D9B6900AEA51A /* NSMutableString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28049909747BF800EC542B /* NSMutableString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5EB0C5D9B6900AEA51A /* NSMutableString_unicodePtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28049C09747BF800EC542B /* NSMutableString_unicodePtr.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5EC0C5D9B6900AEA51A /* NSString_nextstepCString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28049E09747BF800EC542B /* NSString_nextstepCString.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5ED0C5D9B6900AEA51A /* NSString_nextstep.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804A009747BF800EC542B /* NSString_nextstep.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5EE0C5D9B6900AEA51A /* NSPathUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804A209747BF800EC542B /* NSPathUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5EF0C5D9B6900AEA51A /* NSString_placeholder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804A409747BF800EC542B /* NSString_placeholder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F00C5D9B6900AEA51A /* NSString.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804A609747BF800EC542B /* NSString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5F10C5D9B6900AEA51A /* NSStringFileIO.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804A809747BF800EC542B /* NSStringFileIO.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F20C5D9B6900AEA51A /* NSStringFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804AA09747BF800EC542B /* NSStringFormatter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F30C5D9B6900AEA51A /* NSStringHashing.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804AC09747BF800EC542B /* NSStringHashing.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F40C5D9B6900AEA51A /* NSString_unicode.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804AD09747BF800EC542B /* NSString_unicode.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F50C5D9B6900AEA51A /* NSString_unicodePtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804AF09747BF800EC542B /* NSString_unicodePtr.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F60C5D9B6900AEA51A /* NSStringUTF8.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804B109747BF800EC542B /* NSStringUTF8.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F70C5D9B6900AEA51A /* NSStringSymbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804B309747BF800EC542B /* NSStringSymbol.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F80C5D9B6900AEA51A /* NSUnicodeCaseMapping.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804B509747BF800EC542B /* NSUnicodeCaseMapping.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5F90C5D9B6900AEA51A /* unibuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804B709747BF800EC542B /* unibuffer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5FA0C5D9B6900AEA51A /* NSStringsFileParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804E209747C0500EC542B /* NSStringsFileParser.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5FB0C5D9B6900AEA51A /* NSThread-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804E609747C1A00EC542B /* NSThread-Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5FC0C5D9B6900AEA51A /* NSThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804E709747C1A00EC542B /* NSThread.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5FD0C5D9B6900AEA51A /* NSTimer_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804EC09747C4800EC542B /* NSTimer_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5FE0C5D9B6900AEA51A /* NSTimer_invocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804EE09747C4800EC542B /* NSTimer_invocation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5FF0C5D9B6900AEA51A /* NSTimer_targetAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804F009747C4800EC542B /* NSTimer_targetAction.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6000C5D9B6900AEA51A /* NSTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804F209747C4800EC542B /* NSTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6010C5D9B6900AEA51A /* NSUndoGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804FC09747C5B00EC542B /* NSUndoGroup.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6020C5D9B6900AEA51A /* NSUndoManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2804FE09747C5B00EC542B /* NSUndoManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6030C5D9B6900AEA51A /* NSPersistantDomain.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28050409747C6800EC542B /* NSPersistantDomain.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6040C5D9B6900AEA51A /* NSUserDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28050609747C6800EC542B /* NSUserDefaults.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6050C5D9B6900AEA51A /* NSValue_concrete.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28050C09747C7300EC542B /* NSValue_concrete.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6060C5D9B6900AEA51A /* NSValue_nonRetainedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28050E09747C7300EC542B /* NSValue_nonRetainedObject.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6070C5D9B6900AEA51A /* NSValue_placeholder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28051009747C7300EC542B /* NSValue_placeholder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6080C5D9B6900AEA51A /* NSValue_pointer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28051209747C7300EC542B /* NSValue_pointer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6090C5D9B6900AEA51A /* NSValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28051409747C7300EC542B /* NSValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A60A0C5D9B6900AEA51A /* NSZone.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28052109747C7E00EC542B /* NSZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A60B0C5D9B6900AEA51A /* ObjCArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28052709747C8900EC542B /* ObjCArray.h */; settings = {ATTRIBUTES = (); }; }; - FE01A60C0C5D9B6900AEA51A /* objc_class.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28052909747C8900EC542B /* objc_class.h */; settings = {ATTRIBUTES = (); }; }; - FE01A60D0C5D9B6900AEA51A /* ObjCDynamicModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28052B09747C8900EC542B /* ObjCDynamicModule.h */; settings = {ATTRIBUTES = (); }; }; - FE01A60F0C5D9B6900AEA51A /* ObjCHashTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28052F09747C8900EC542B /* ObjCHashTable.h */; settings = {ATTRIBUTES = (); }; }; - FE01A6100C5D9B6900AEA51A /* ObjCModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28053309747C8900EC542B /* ObjCModule.h */; settings = {ATTRIBUTES = (); }; }; - FE01A6110C5D9B6900AEA51A /* objc_sel.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28053509747C8900EC542B /* objc_sel.h */; settings = {ATTRIBUTES = (); }; }; - FE01A6160C5D9B6900AEA51A /* NSFileHandle_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805A309747D0400EC542B /* NSFileHandle_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6170C5D9B6900AEA51A /* NSFileManager_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805A509747D0400EC542B /* NSFileManager_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6180C5D9B6900AEA51A /* NSHandleMonitor_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805A709747D0400EC542B /* NSHandleMonitor_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6190C5D9B6900AEA51A /* NSHandleMonitorSet_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805A909747D0400EC542B /* NSHandleMonitorSet_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A61A0C5D9B6900AEA51A /* NSLock_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805AB09747D0400EC542B /* NSLock_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A61B0C5D9B6900AEA51A /* NSParentDeathMonitor_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805AF09747D0400EC542B /* NSParentDeathMonitor_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A61C0C5D9B6900AEA51A /* NSPersistantDomain_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805B109747D0400EC542B /* NSPersistantDomain_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A61D0C5D9B6900AEA51A /* NSPipe_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805B309747D0400EC542B /* NSPipe_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A61E0C5D9B6900AEA51A /* NSPlatform_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805B509747D0400EC542B /* NSPlatform_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A61F0C5D9B6900AEA51A /* NSReadInBackground_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805B709747D0400EC542B /* NSReadInBackground_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6200C5D9B6900AEA51A /* NSString_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805BB09747D0400EC542B /* NSString_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6210C5D9B6900AEA51A /* NSTask_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805BD09747D0400EC542B /* NSTask_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6220C5D9B6900AEA51A /* NSBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805F309747D5800EC542B /* NSBundle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6230C5D9B6900AEA51A /* NSByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805F509747D5800EC542B /* NSByteOrder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6240C5D9B6900AEA51A /* NSCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805F709747D5800EC542B /* NSCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6250C5D9B6900AEA51A /* NSDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805F909747D5800EC542B /* NSDebug.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6260C5D9B6900AEA51A /* NSDirectoryEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805FB09747D5800EC542B /* NSDirectoryEnumerator.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6270C5D9B6900AEA51A /* NSEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805FD09747D5800EC542B /* NSEnumerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6280C5D9B6900AEA51A /* NSFileHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2805FF09747D5800EC542B /* NSFileHandle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6290C5D9B6900AEA51A /* NSFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060109747D5800EC542B /* NSFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A62A0C5D9B6900AEA51A /* NSFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060309747D5800EC542B /* NSFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A62B0C5D9B6900AEA51A /* NSGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060509747D5800EC542B /* NSGeometry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A62C0C5D9B6900AEA51A /* NSHashTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060709747D5800EC542B /* NSHashTable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A62D0C5D9B6900AEA51A /* NSHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060909747D5800EC542B /* NSHost.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A62E0C5D9B6900AEA51A /* NSInputSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060B09747D5800EC542B /* NSInputSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A62F0C5D9B6900AEA51A /* NSInputSourceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060D09747D5800EC542B /* NSInputSourceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6300C5D9B6900AEA51A /* NSInvocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28060F09747D5800EC542B /* NSInvocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6310C5D9B6900AEA51A /* NSMapTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061109747D5800EC542B /* NSMapTable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6320C5D9B6900AEA51A /* NSMethodSignature.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061309747D5800EC542B /* NSMethodSignature.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6330C5D9B6900AEA51A /* NSNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061509747D5800EC542B /* NSNull.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6340C5D9B6900AEA51A /* NSNumberFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061709747D5800EC542B /* NSNumberFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6350C5D9B6900AEA51A /* NSObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061909747D5800EC542B /* NSObjCRuntime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6360C5D9B6900AEA51A /* NSPipe.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061B09747D5800EC542B /* NSPipe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6370C5D9B6900AEA51A /* NSPlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061D09747D5800EC542B /* NSPlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6380C5D9B6900AEA51A /* NSPortCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28061F09747D5800EC542B /* NSPortCoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6390C5D9B6900AEA51A /* NSProcessInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28062109747D5800EC542B /* NSProcessInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A63A0C5D9B6900AEA51A /* NSProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28062309747D5800EC542B /* NSProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A63B0C5D9B6900AEA51A /* NSRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28062509747D5800EC542B /* NSRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A63C0C5D9B6900AEA51A /* NSTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28062709747D5800EC542B /* NSTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A63D0C5D9B6900AEA51A /* NSUnarchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28062909747D5800EC542B /* NSUnarchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A63E0C5D9B6900AEA51A /* NSCharacterSet_bitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28066409747DF800EC542B /* NSCharacterSet_bitmap.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A63F0C5D9B6900AEA51A /* NSCharacterSet_range.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28066609747DF800EC542B /* NSCharacterSet_range.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6400C5D9B6900AEA51A /* NSCharacterSet_rangeInverted.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28066809747DF900EC542B /* NSCharacterSet_rangeInverted.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6410C5D9B6900AEA51A /* NSCharacterSet_string.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28066A09747DF900EC542B /* NSCharacterSet_string.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6420C5D9B6900AEA51A /* NSCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28066C09747DF900EC542B /* NSCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6430C5D9B6900AEA51A /* NSMutableCharacterSet_bitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28066E09747DF900EC542B /* NSMutableCharacterSet_bitmap.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6440C5D9B6900AEA51A /* NSMutableCharacterSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28067009747DF900EC542B /* NSMutableCharacterSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6450C5D9B6900AEA51A /* bitmapRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28068909747E2300EC542B /* bitmapRepresentation.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6460C5D9B6900AEA51A /* NSCalendarDate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28069509747E7B00EC542B /* NSCalendarDate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6470C5D9B6900AEA51A /* NSDate_timeInterval.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28069709747E7B00EC542B /* NSDate_timeInterval.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6480C5D9B6900AEA51A /* NSDate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28069909747E7B00EC542B /* NSDate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6490C5D9B6900AEA51A /* NSDateFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28069B09747E7B00EC542B /* NSDateFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A64A0C5D9B6900AEA51A /* NSTimeZone_absolute.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2806A609747EA400EC542B /* NSTimeZone_absolute.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A64C0C5D9B6900AEA51A /* NSTimeZoneTransition.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2806AA09747EA400EC542B /* NSTimeZoneTransition.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A64D0C5D9B6900AEA51A /* NSTimeZoneType.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2806AC09747EA400EC542B /* NSTimeZoneType.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A64E0C5D9B6900AEA51A /* NSTimeZone.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2806B009747EA400EC542B /* NSTimeZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A64F0C5D9B6900AEA51A /* Foundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E280B2909747F1F00EC542B /* Foundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6500C5D9B6900AEA51A /* NSArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E28030D0974787200EC542B /* NSArchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6510C5D9B6900AEA51A /* NSPropertyListReader_xml1.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E0084A20A19363F00F78605 /* NSPropertyListReader_xml1.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6520C5D9B6900AEA51A /* NSPropertyListReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E0084CD0A19371600F78605 /* NSPropertyListReader.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6530C5D9B6900AEA51A /* NSKeyedUnarchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EC4AAE70A34D9B200E8D6CA /* NSKeyedUnarchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6540C5D9B6900AEA51A /* NSInputStream_socket.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EAD772F0AAF1283004BCCC9 /* NSInputStream_socket.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6550C5D9B6900AEA51A /* NSOutputStream_socket.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EAD77390AAF1293004BCCC9 /* NSOutputStream_socket.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6560C5D9B6900AEA51A /* NSInputStream_data.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D30C0B4374F700C239BB /* NSInputStream_data.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6570C5D9B6900AEA51A /* NSOutputStream_data.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D31A0B43781500C239BB /* NSOutputStream_data.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6580C5D9B6900AEA51A /* NSOutputStream_file.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D3250B43783C00C239BB /* NSOutputStream_file.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6590C5D9B6900AEA51A /* NSInputStream_file.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D3320B43786400C239BB /* NSInputStream_file.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A65A0C5D9B6900AEA51A /* NSOutputStream_buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D3670B437C9600C239BB /* NSOutputStream_buffer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A65B0C5D9B6900AEA51A /* NSConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D3E40B4412D800C239BB /* NSConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A65C0C5D9B6900AEA51A /* NSPort.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D40F0B4415F900C239BB /* NSPort.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A65D0C5D9B6900AEA51A /* NSSocketPort.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4320B44164500C239BB /* NSSocketPort.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A65E0C5D9B6900AEA51A /* NSMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4540B4416C400C239BB /* NSMessagePort.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A65F0C5D9B6900AEA51A /* NSDistantObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D46B0B44323C00C239BB /* NSDistantObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6600C5D9B6900AEA51A /* NSComparisonPredicate.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4820B44331400C239BB /* NSComparisonPredicate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6610C5D9B6900AEA51A /* NSPredicate.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D48E0B4433F500C239BB /* NSPredicate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6620C5D9B6900AEA51A /* NSCompoundPredicate.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4980B44340800C239BB /* NSCompoundPredicate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6630C5D9B6900AEA51A /* NSExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4A20B44349600C239BB /* NSExpression.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6640C5D9B6900AEA51A /* NSError.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4AC0B4434C800C239BB /* NSError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6650C5D9B6900AEA51A /* NSIndexSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4B90B44359400C239BB /* NSIndexSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6660C5D9B6900AEA51A /* NSMutableIndexSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4C50B4435A700C239BB /* NSMutableIndexSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6670C5D9B6900AEA51A /* NSLocale.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4D10B4435D000C239BB /* NSLocale.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6680C5D9B6900AEA51A /* NSPropertyList.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D4ED0B4436FD00C239BB /* NSPropertyList.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6690C5D9B6900AEA51A /* NSURL.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D55D0B4438E500C239BB /* NSURL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A66A0C5D9B6900AEA51A /* NSURLAuthenticationChallenge.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5690B4438FD00C239BB /* NSURLAuthenticationChallenge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A66B0C5D9B6900AEA51A /* NSURLCache.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5750B44390D00C239BB /* NSURLCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A66C0C5D9B6900AEA51A /* NSURLConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5810B44391E00C239BB /* NSURLConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A66D0C5D9B6900AEA51A /* NSURLCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D58D0B44393400C239BB /* NSURLCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A66E0C5D9B6900AEA51A /* NSURLCredentialStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5990B44394000C239BB /* NSURLCredentialStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A66F0C5D9B6900AEA51A /* NSURLDownload.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5A50B44395100C239BB /* NSURLDownload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6700C5D9B6900AEA51A /* NSURLHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5BD0B44397900C239BB /* NSURLHandle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6710C5D9B6900AEA51A /* NSURLProtectionSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5C90B44399000C239BB /* NSURLProtectionSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6720C5D9B6900AEA51A /* NSURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5D50B4439A200C239BB /* NSURLProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6730C5D9B6900AEA51A /* NSURLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5E10B4439BA00C239BB /* NSURLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6740C5D9B6900AEA51A /* NSURLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5ED0B443A9600C239BB /* NSURLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6750C5D9B6900AEA51A /* NSProtocolChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D5F90B443B8200C239BB /* NSProtocolChecker.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6760C5D9B6900AEA51A /* NSHTTPCookie.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D60A0B443C2800C239BB /* NSHTTPCookie.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6770C5D9B6900AEA51A /* NSHTTPCookieStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D6140B443C3F00C239BB /* NSHTTPCookieStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6780C5D9B6900AEA51A /* NSPortMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D6AE0B443F1200C239BB /* NSPortMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6790C5D9B6900AEA51A /* NSClassDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D6CD0B44405700C239BB /* NSClassDescription.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A67A0C5D9B6900AEA51A /* NSPortNameServer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D6DB0B4440DA00C239BB /* NSPortNameServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A67B0C5D9B6900AEA51A /* NSMessagePortNameServer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D6E70B4440F200C239BB /* NSMessagePortNameServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A67C0C5D9B6900AEA51A /* NSSocketPortNameServer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB9D7000B44414000C239BB /* NSSocketPortNameServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A67D0C5D9B6900AEA51A /* NSHTTPURLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FE405A6A0B4450FD001B183D /* NSHTTPURLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A67E0C5D9B6900AEA51A /* NSKeyValueCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB6CBAE0B4A139F004FADF2 /* NSKeyValueCoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A67F0C5D9B6900AEA51A /* NSKVCMutableArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB6CC890B4A1D4D004FADF2 /* NSKVCMutableArray.h */; }; - FE01A6800C5D9B6900AEA51A /* NSSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35CBD70B4AD47400FE7AB3 /* NSSocket.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6810C5D9B6900AEA51A /* NSSelectInputSource.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35CBD90B4AD47400FE7AB3 /* NSSelectInputSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6820C5D9B6900AEA51A /* NSSocket_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35CC0F0B4AD8A400FE7AB3 /* NSSocket_windows.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6830C5D9B6900AEA51A /* NSSelectSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35D2D90B4ECDBD00FE7AB3 /* NSSelectSet.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6840C5D9B6900AEA51A /* NSSelectSet_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35D34F0B4EEDBB00FE7AB3 /* NSSelectSet_windows.h */; }; - FE01A6850C5D9B6900AEA51A /* NSSelectInputSourceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FE35D3AA0B4F369C00FE7AB3 /* NSSelectInputSourceSet.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6860C5D9B6900AEA51A /* NSAssertionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1935150B5D449E00FB74CC /* NSAssertionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6870C5D9B6900AEA51A /* NSAffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6DC2550BA902710082AC66 /* NSAffineTransform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6880C5D9B6900AEA51A /* NSOldXMLAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE170BA9EBBE0050277F /* NSOldXMLAttribute.h */; }; - FE01A6890C5D9B6900AEA51A /* NSOldXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE190BA9EBBE0050277F /* NSOldXMLDocument.h */; }; - FE01A68A0C5D9B6900AEA51A /* NSOldXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE1B0BA9EBBE0050277F /* NSOldXMLElement.h */; }; - FE01A68B0C5D9B6900AEA51A /* NSOldXMLReader.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE1D0BA9EBBE0050277F /* NSOldXMLReader.h */; }; - FE01A68C0C5D9B6900AEA51A /* NSXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE490BA9ED490050277F /* NSXMLDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A68D0C5D9B6900AEA51A /* NSXMLDTD.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE4B0BA9ED490050277F /* NSXMLDTD.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A68E0C5D9B6900AEA51A /* NSXMLDTDNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE4D0BA9ED490050277F /* NSXMLDTDNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A68F0C5D9B6900AEA51A /* NSXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE4F0BA9ED490050277F /* NSXMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6900C5D9B6900AEA51A /* NSXMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE510BA9ED490050277F /* NSXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6910C5D9B6900AEA51A /* NSXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FE53BE550BA9ED490050277F /* NSXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6920C5D9B6900AEA51A /* NSDecimal.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74776D0BAC4E9000829F4F /* NSDecimal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6930C5D9B6900AEA51A /* NSDecimalNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74776F0BAC4E9000829F4F /* NSDecimalNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6940C5D9B6900AEA51A /* NSDistributedLock.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7477990BAC4F5200829F4F /* NSDistributedLock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6950C5D9B6900AEA51A /* NSDistributedNotificationCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74779B0BAC4F5200829F4F /* NSDistributedNotificationCenter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6960C5D9B6900AEA51A /* NSIndexPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7477BE0BAC507F00829F4F /* NSIndexPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6970C5D9B6900AEA51A /* NSMetadataItem.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7477CD0BAC519800829F4F /* NSMetadataItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6980C5D9B6900AEA51A /* NSMetadataQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7477CF0BAC519800829F4F /* NSMetadataQuery.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6990C5D9B6900AEA51A /* NSMetadataQueryAttributeValueTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7477D10BAC519800829F4F /* NSMetadataQueryAttributeValueTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A69A0C5D9B6900AEA51A /* NSMetadataQueryResultGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7477D30BAC519800829F4F /* NSMetadataQueryResultGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A69D0C5D9B6900AEA51A /* NSSortDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7478410BAC5A8700829F4F /* NSSortDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A69E0C5D9B6900AEA51A /* NSValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7478700BAC5EB600829F4F /* NSValueTransformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A69F0C5D9B6900AEA51A /* NSConcreteDirectoryEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE97EB40BBEDE3000DBAFF9 /* NSConcreteDirectoryEnumerator.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6A00C5D9B6900AEA51A /* NSKeyValueObserving-Private.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF5B4C80BBEFDBA00A8FF26 /* NSKeyValueObserving-Private.h */; }; - FE01A6A10C5D9B6900AEA51A /* NSKeyValueObserving.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF5B4C90BBEFDBA00A8FF26 /* NSKeyValueObserving.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6A20C5D9B6900AEA51A /* NSString+KVCAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF5B4CB0BBEFDBA00A8FF26 /* NSString+KVCAdditions.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A6A30C5D9B6900AEA51A /* NSConditionLock.h in Headers */ = {isa = PBXBuildFile; fileRef = FED311CA0BCC0E1D00552615 /* NSConditionLock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6AB0C5D9B6900AEA51A /* NSPredicate_BOOL.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDDE2520BD2A9E500DDD110 /* NSPredicate_BOOL.h */; }; - FE01A6AC0C5D9B6900AEA51A /* NSKeyedArchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4EC68C0BD9B47B0015F9E9 /* NSKeyedArchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6AD0C5D9B6900AEA51A /* NSCalendar.h in Headers */ = {isa = PBXBuildFile; fileRef = FEFF238D0BDCF136005357B8 /* NSCalendar.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6AE0C5D9B6900AEA51A /* NSExpression_operator.h in Headers */ = {isa = PBXBuildFile; fileRef = FED160AC0BE26DF700BF9889 /* NSExpression_operator.h */; }; - FE01A6AF0C5D9B6900AEA51A /* NSExpression_array.h in Headers */ = {isa = PBXBuildFile; fileRef = FED162960BE2E44600BF9889 /* NSExpression_array.h */; }; - FE01A6B00C5D9B6900AEA51A /* NSExpression_assignment.h in Headers */ = {isa = PBXBuildFile; fileRef = FED162F20BE2EAB200BF9889 /* NSExpression_assignment.h */; }; - FE01A6B10C5D9B6900AEA51A /* NSExpression_constant.h in Headers */ = {isa = PBXBuildFile; fileRef = FED1635E0BE4093700BF9889 /* NSExpression_constant.h */; }; - FE01A6B20C5D9B6900AEA51A /* NSExpression_function.h in Headers */ = {isa = PBXBuildFile; fileRef = FED163600BE4093700BF9889 /* NSExpression_function.h */; }; - FE01A6B30C5D9B6900AEA51A /* NSExpression_keypath.h in Headers */ = {isa = PBXBuildFile; fileRef = FED163620BE4093700BF9889 /* NSExpression_keypath.h */; }; - FE01A6B40C5D9B6900AEA51A /* NSExpression_self.h in Headers */ = {isa = PBXBuildFile; fileRef = FED163640BE4093700BF9889 /* NSExpression_self.h */; }; - FE01A6B50C5D9B6900AEA51A /* NSExpression_variable.h in Headers */ = {isa = PBXBuildFile; fileRef = FED163660BE4093700BF9889 /* NSExpression_variable.h */; }; - FE01A6B60C5D9B6900AEA51A /* NSDateComponents.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3F7D980BE63BBD007E9363 /* NSDateComponents.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A6B80C5D9B6900AEA51A /* NSValueTransformer_IsNil.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9D95340C0387D5006DB214 /* NSValueTransformer_IsNil.h */; }; - FE01A6B90C5D9B6900AEA51A /* NSValueTransformer_IsNotNil.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9D95360C0387D5006DB214 /* NSValueTransformer_IsNotNil.h */; }; - FE01A6BA0C5D9B6900AEA51A /* NSValueTransformer_NegateBoolean.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9D95380C0387D5006DB214 /* NSValueTransformer_NegateBoolean.h */; }; - FE01A6BB0C5D9B6900AEA51A /* NSValueTransformer_UnarchiveFromData.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9D953A0C0387D5006DB214 /* NSValueTransformer_UnarchiveFromData.h */; }; - FE01A6BC0C5D9B6900AEA51A /* objc_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA36F250C24C57000025A9C /* objc_cache.h */; }; - FE01A6BE0C5D9B6900AEA51A /* NSArray_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E280312097478CC00EC542B /* NSArray_concrete.m */; }; - FE01A6BF0C5D9B6900AEA51A /* NSArray_placeholder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E280314097478CC00EC542B /* NSArray_placeholder.m */; }; - FE01A6C00C5D9B6900AEA51A /* NSArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E280316097478CC00EC542B /* NSArray.m */; }; - FE01A6C10C5D9B6900AEA51A /* NSEnumerator_array.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E280318097478CC00EC542B /* NSEnumerator_array.m */; }; - FE01A6C20C5D9B6900AEA51A /* NSEnumerator_arrayReverse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28031A097478CC00EC542B /* NSEnumerator_arrayReverse.m */; }; - FE01A6C30C5D9B6900AEA51A /* NSMutableArray_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28031C097478CC00EC542B /* NSMutableArray_concrete.m */; }; - FE01A6C40C5D9B6900AEA51A /* NSMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28031E097478CC00EC542B /* NSMutableArray.m */; }; - FE01A6C50C5D9B6900AEA51A /* NSAttributedString_manyAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28034D09747ABE00EC542B /* NSAttributedString_manyAttributes.m */; }; - FE01A6C60C5D9B6900AEA51A /* NSAttributedString_nilAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28034F09747ABE00EC542B /* NSAttributedString_nilAttributes.m */; }; - FE01A6C70C5D9B6900AEA51A /* NSAttributedString_oneAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28035109747ABE00EC542B /* NSAttributedString_oneAttribute.m */; }; - FE01A6C80C5D9B6900AEA51A /* NSAttributedString_placeholder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28035309747ABE00EC542B /* NSAttributedString_placeholder.m */; }; - FE01A6C90C5D9B6900AEA51A /* NSAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28035509747ABE00EC542B /* NSAttributedString.m */; }; - FE01A6CA0C5D9B6900AEA51A /* NSMutableAttributedString_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28035709747ABE00EC542B /* NSMutableAttributedString_concrete.m */; }; - FE01A6CB0C5D9B6900AEA51A /* NSMutableAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28035909747ABE00EC542B /* NSMutableAttributedString.m */; }; - FE01A6CC0C5D9B6900AEA51A /* NSMutableString_proxyToMutableAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28035B09747ABE00EC542B /* NSMutableString_proxyToMutableAttributedString.m */; }; - FE01A6CD0C5D9B6900AEA51A /* NSRangeEntries.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28035D09747ABE00EC542B /* NSRangeEntries.m */; }; - FE01A6CE0C5D9B6900AEA51A /* NSAutoreleasePool.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28037209747ADF00EC542B /* NSAutoreleasePool.m */; }; - FE01A6CF0C5D9B6900AEA51A /* NSData_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28037709747AFA00EC542B /* NSData_concrete.m */; }; - FE01A6D00C5D9B6900AEA51A /* NSData_mapped.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28037909747AFA00EC542B /* NSData_mapped.m */; }; - FE01A6D10C5D9B6900AEA51A /* NSData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28037B09747AFA00EC542B /* NSData.m */; }; - FE01A6D20C5D9B6900AEA51A /* NSMutableData_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28037D09747AFA00EC542B /* NSMutableData_concrete.m */; }; - FE01A6D30C5D9B6900AEA51A /* NSMutableData.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28037F09747AFA00EC542B /* NSMutableData.m */; }; - FE01A6D40C5D9B6900AEA51A /* NSDictionary_mapTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28038B09747B1500EC542B /* NSDictionary_mapTable.m */; }; - FE01A6D50C5D9B6900AEA51A /* NSDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28038D09747B1500EC542B /* NSDictionary.m */; }; - FE01A6D60C5D9B6900AEA51A /* NSEnumerator_dictionaryKeys.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28038F09747B1500EC542B /* NSEnumerator_dictionaryKeys.m */; }; - FE01A6D70C5D9B6900AEA51A /* NSEnumerator_dictionaryObjects.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28039109747B1500EC542B /* NSEnumerator_dictionaryObjects.m */; }; - FE01A6D80C5D9B6900AEA51A /* NSMutableDictionary_mapTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28039309747B1500EC542B /* NSMutableDictionary_mapTable.m */; }; - FE01A6D90C5D9B6900AEA51A /* NSMutableDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28039509747B1500EC542B /* NSMutableDictionary.m */; }; - FE01A6DA0C5D9B6900AEA51A /* NSException.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803BB09747B6200EC542B /* NSException.m */; }; - FE01A6DB0C5D9B6900AEA51A /* NSRaise.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803BF09747B6200EC542B /* NSRaise.m */; }; - FE01A6DC0C5D9B6900AEA51A /* NSLock.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803C709747B7100EC542B /* NSLock.m */; }; - FE01A6DD0C5D9B6900AEA51A /* NSNotification_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803DF09747B8600EC542B /* NSNotification_concrete.m */; }; - FE01A6DE0C5D9B6900AEA51A /* NSNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803E109747B8600EC542B /* NSNotification.m */; }; - FE01A6DF0C5D9B6900AEA51A /* NSNotificationCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803E709747B9100EC542B /* NSNotificationCenter.m */; }; - FE01A6E00C5D9B6900AEA51A /* NSNotificationObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803E909747B9100EC542B /* NSNotificationObserver.m */; }; - FE01A6E10C5D9B6900AEA51A /* NSObjectToObservers.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803EB09747B9100EC542B /* NSObjectToObservers.m */; }; - FE01A6E20C5D9B6900AEA51A /* NSNotificationAndModes.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803F309747BAA00EC542B /* NSNotificationAndModes.m */; }; - FE01A6E30C5D9B6900AEA51A /* NSNotificationQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803F609747BAA00EC542B /* NSNotificationQueue.m */; }; - FE01A6E40C5D9B6900AEA51A /* NSNumber_BOOL.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803FD09747BB300EC542B /* NSNumber_BOOL.m */; }; - FE01A6E50C5D9B6900AEA51A /* NSNumber_char.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2803FF09747BB300EC542B /* NSNumber_char.m */; }; - FE01A6E60C5D9B6900AEA51A /* NSNumber_double.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040109747BB300EC542B /* NSNumber_double.m */; }; - FE01A6E70C5D9B6900AEA51A /* NSNumber_float.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040309747BB300EC542B /* NSNumber_float.m */; }; - FE01A6E80C5D9B6900AEA51A /* NSNumber_int.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040509747BB300EC542B /* NSNumber_int.m */; }; - FE01A6E90C5D9B6900AEA51A /* NSNumber_long.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040709747BB300EC542B /* NSNumber_long.m */; }; - FE01A6EA0C5D9B6900AEA51A /* NSNumber_longLong.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040909747BB300EC542B /* NSNumber_longLong.m */; }; - FE01A6EB0C5D9B6900AEA51A /* NSNumber_placeholder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040B09747BB300EC542B /* NSNumber_placeholder.m */; }; - FE01A6EC0C5D9B6900AEA51A /* NSNumber_short.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040D09747BB300EC542B /* NSNumber_short.m */; }; - FE01A6ED0C5D9B6900AEA51A /* NSNumber_unsignedChar.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28040F09747BB300EC542B /* NSNumber_unsignedChar.m */; }; - FE01A6EE0C5D9B6900AEA51A /* NSNumber_unsignedInt.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28041109747BB300EC542B /* NSNumber_unsignedInt.m */; }; - FE01A6EF0C5D9B6900AEA51A /* NSNumber_unsignedLong.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28041309747BB300EC542B /* NSNumber_unsignedLong.m */; }; - FE01A6F00C5D9B6900AEA51A /* NSNumber_unsignedLongLong.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28041509747BB300EC542B /* NSNumber_unsignedLongLong.m */; }; - FE01A6F10C5D9B6900AEA51A /* NSNumber_unsignedShort.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28041709747BB300EC542B /* NSNumber_unsignedShort.m */; }; - FE01A6F20C5D9B6900AEA51A /* NSNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28041909747BB300EC542B /* NSNumber.m */; }; - FE01A6F30C5D9B6900AEA51A /* NSObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28043909747BBE00EC542B /* NSObject.m */; }; - FE01A6F40C5D9B6900AEA51A /* NSZombieObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28043C09747BBE00EC542B /* NSZombieObject.m */; }; - FE01A6F50C5D9B6900AEA51A /* NSPropertyListReader_vintage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28044309747BCB00EC542B /* NSPropertyListReader_vintage.m */; }; - FE01A6F60C5D9B6900AEA51A /* NSPropertyListWriter_vintage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28044509747BCB00EC542B /* NSPropertyListWriter_vintage.m */; }; - FE01A6F70C5D9B6900AEA51A /* NSDelayedPerform.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28044B09747BD100EC542B /* NSDelayedPerform.m */; }; - FE01A6F80C5D9B6900AEA51A /* NSOrderedPerform.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28044D09747BD100EC542B /* NSOrderedPerform.m */; }; - FE01A6F90C5D9B6900AEA51A /* NSRunLoop.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28045009747BD100EC542B /* NSRunLoop.m */; }; - FE01A6FA0C5D9B6900AEA51A /* NSRunLoopState.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28045209747BD100EC542B /* NSRunLoopState.m */; }; - FE01A6FB0C5D9B6900AEA51A /* NSScanner_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28045D09747BD900EC542B /* NSScanner_concrete.m */; }; - FE01A6FC0C5D9B6900AEA51A /* NSScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28045F09747BD900EC542B /* NSScanner.m */; }; - FE01A6FD0C5D9B6900AEA51A /* NSCountedSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28046509747BE200EC542B /* NSCountedSet.m */; }; - FE01A6FE0C5D9B6900AEA51A /* NSEnumerator_set.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28046709747BE200EC542B /* NSEnumerator_set.m */; }; - FE01A6FF0C5D9B6900AEA51A /* NSInlineSetTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28046909747BE200EC542B /* NSInlineSetTable.m */; }; - FE01A7000C5D9B6900AEA51A /* NSMutableSet_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28046B09747BE200EC542B /* NSMutableSet_concrete.m */; }; - FE01A7010C5D9B6900AEA51A /* NSMutableSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28046D09747BE200EC542B /* NSMutableSet.m */; }; - FE01A7020C5D9B6900AEA51A /* NSSet_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28046F09747BE200EC542B /* NSSet_concrete.m */; }; - FE01A7030C5D9B6900AEA51A /* NSSet_placeholder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28047109747BE200EC542B /* NSSet_placeholder.m */; }; - FE01A7040C5D9B6900AEA51A /* NSSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28047309747BE200EC542B /* NSSet.m */; }; - FE01A7050C5D9B6900AEA51A /* NSInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28048509747BED00EC542B /* NSInputStream.m */; }; - FE01A7060C5D9B6900AEA51A /* NSOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28048709747BED00EC542B /* NSOutputStream.m */; }; - FE01A7070C5D9B6900AEA51A /* NSStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28048909747BED00EC542B /* NSStream.m */; }; - FE01A7080C5D9B6900AEA51A /* NSConstantString-Impl.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28049209747BF800EC542B /* NSConstantString-Impl.m */; }; - FE01A7090C5D9B6900AEA51A /* NSString_cString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28049409747BF800EC542B /* NSString_cString.m */; }; - FE01A70A0C5D9B6900AEA51A /* NSString_isoLatin1.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28049609747BF800EC542B /* NSString_isoLatin1.m */; }; - FE01A70B0C5D9B6900AEA51A /* NSMutableString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28049A09747BF800EC542B /* NSMutableString.m */; }; - FE01A70C0C5D9B6900AEA51A /* NSMutableString_unicodePtr.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28049D09747BF800EC542B /* NSMutableString_unicodePtr.m */; }; - FE01A70D0C5D9B6900AEA51A /* NSString_nextstepCString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28049F09747BF800EC542B /* NSString_nextstepCString.m */; }; - FE01A70E0C5D9B6900AEA51A /* NSString_nextstep.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804A109747BF800EC542B /* NSString_nextstep.m */; }; - FE01A70F0C5D9B6900AEA51A /* NSPathUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804A309747BF800EC542B /* NSPathUtilities.m */; }; - FE01A7100C5D9B6900AEA51A /* NSString_placeholder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804A509747BF800EC542B /* NSString_placeholder.m */; }; - FE01A7110C5D9B6900AEA51A /* NSString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804A709747BF800EC542B /* NSString.m */; }; - FE01A7120C5D9B6900AEA51A /* NSStringFileIO.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804A909747BF800EC542B /* NSStringFileIO.m */; }; - FE01A7130C5D9B6900AEA51A /* NSStringFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804AB09747BF800EC542B /* NSStringFormatter.m */; }; - FE01A7140C5D9B6900AEA51A /* NSString_unicode.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804AE09747BF800EC542B /* NSString_unicode.m */; }; - FE01A7150C5D9B6900AEA51A /* NSString_unicodePtr.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804B009747BF800EC542B /* NSString_unicodePtr.m */; }; - FE01A7160C5D9B6900AEA51A /* NSStringUTF8.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804B209747BF800EC542B /* NSStringUTF8.m */; }; - FE01A7170C5D9B6900AEA51A /* NSStringSymbol.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804B409747BF800EC542B /* NSStringSymbol.m */; }; - FE01A7180C5D9B6900AEA51A /* NSUnicodeCaseMapping.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804B609747BF800EC542B /* NSUnicodeCaseMapping.m */; }; - FE01A7190C5D9B6900AEA51A /* unibuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804B809747BF800EC542B /* unibuffer.m */; }; - FE01A71A0C5D9B6900AEA51A /* NSStringsFileParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804E309747C0500EC542B /* NSStringsFileParser.m */; }; - FE01A71B0C5D9B6900AEA51A /* NSThread.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804E809747C1A00EC542B /* NSThread.m */; }; - FE01A71C0C5D9B6900AEA51A /* NSTimer_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804ED09747C4800EC542B /* NSTimer_concrete.m */; }; - FE01A71D0C5D9B6900AEA51A /* NSTimer_invocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804EF09747C4800EC542B /* NSTimer_invocation.m */; }; - FE01A71E0C5D9B6900AEA51A /* NSTimer_targetAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804F109747C4800EC542B /* NSTimer_targetAction.m */; }; - FE01A71F0C5D9B6900AEA51A /* NSTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804F309747C4800EC542B /* NSTimer.m */; }; - FE01A7200C5D9B6900AEA51A /* NSUndoGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804FD09747C5B00EC542B /* NSUndoGroup.m */; }; - FE01A7210C5D9B6900AEA51A /* NSUndoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2804FF09747C5B00EC542B /* NSUndoManager.m */; }; - FE01A7220C5D9B6900AEA51A /* NSPersistantDomain.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28050509747C6800EC542B /* NSPersistantDomain.m */; }; - FE01A7230C5D9B6900AEA51A /* NSUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28050709747C6800EC542B /* NSUserDefaults.m */; }; - FE01A7240C5D9B6900AEA51A /* NSValue_concrete.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28050D09747C7300EC542B /* NSValue_concrete.m */; }; - FE01A7250C5D9B6900AEA51A /* NSValue_nonRetainedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28050F09747C7300EC542B /* NSValue_nonRetainedObject.m */; }; - FE01A7260C5D9B6900AEA51A /* NSValue_placeholder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28051109747C7300EC542B /* NSValue_placeholder.m */; }; - FE01A7270C5D9B6900AEA51A /* NSValue_pointer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28051309747C7300EC542B /* NSValue_pointer.m */; }; - FE01A7280C5D9B6900AEA51A /* NSValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28051509747C7300EC542B /* NSValue.m */; }; - FE01A7290C5D9B6900AEA51A /* NSVirtualMemory.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28052009747C7E00EC542B /* NSVirtualMemory.m */; }; - FE01A72A0C5D9B6900AEA51A /* NSZone.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28052209747C7E00EC542B /* NSZone.m */; }; - FE01A72B0C5D9B6900AEA51A /* objc_functions.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E28052609747C8900EC542B /* objc_functions.c */; settings = {COMPILER_FLAGS = "-g0"; }; }; - FE01A72C0C5D9B6900AEA51A /* ObjCArray.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E28052809747C8900EC542B /* ObjCArray.c */; }; - FE01A72D0C5D9B6900AEA51A /* objc_class.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E28052A09747C8900EC542B /* objc_class.c */; }; - FE01A72E0C5D9B6900AEA51A /* ObjCDynamicModule.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E28052C09747C8900EC542B /* ObjCDynamicModule.c */; }; - FE01A7300C5D9B6900AEA51A /* ObjCHashTable.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E28053009747C8900EC542B /* ObjCHashTable.c */; }; - FE01A7310C5D9B6900AEA51A /* ObjCModule.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E28053409747C8900EC542B /* ObjCModule.c */; }; - FE01A7320C5D9B6900AEA51A /* objc_sel.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E28053609747C8900EC542B /* objc_sel.c */; }; - FE01A7350C5D9B6900AEA51A /* Protocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28053F09747C8900EC542B /* Protocol.m */; }; - FE01A7360C5D9B6900AEA51A /* NSBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805F409747D5800EC542B /* NSBundle.m */; }; - FE01A7370C5D9B6900AEA51A /* NSByteOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805F609747D5800EC542B /* NSByteOrder.m */; }; - FE01A7380C5D9B6900AEA51A /* NSCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805F809747D5800EC542B /* NSCoder.m */; }; - FE01A7390C5D9B6900AEA51A /* NSDebug.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805FA09747D5800EC542B /* NSDebug.m */; }; - FE01A73A0C5D9B6900AEA51A /* NSDirectoryEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805FC09747D5800EC542B /* NSDirectoryEnumerator.m */; }; - FE01A73B0C5D9B6900AEA51A /* NSEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805FE09747D5800EC542B /* NSEnumerator.m */; }; - FE01A73C0C5D9B6900AEA51A /* NSFileHandle.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060009747D5800EC542B /* NSFileHandle.m */; }; - FE01A73D0C5D9B6900AEA51A /* NSFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060209747D5800EC542B /* NSFileManager.m */; }; - FE01A73E0C5D9B6900AEA51A /* NSFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060409747D5800EC542B /* NSFormatter.m */; }; - FE01A73F0C5D9B6900AEA51A /* NSGeometry.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060609747D5800EC542B /* NSGeometry.m */; }; - FE01A7400C5D9B6900AEA51A /* NSHashTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060809747D5800EC542B /* NSHashTable.m */; }; - FE01A7410C5D9B6900AEA51A /* NSHost.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060A09747D5800EC542B /* NSHost.m */; }; - FE01A7420C5D9B6900AEA51A /* NSInputSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060C09747D5800EC542B /* NSInputSource.m */; }; - FE01A7430C5D9B6900AEA51A /* NSInputSourceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28060E09747D5800EC542B /* NSInputSourceSet.m */; }; - FE01A7440C5D9B6900AEA51A /* NSInvocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061009747D5800EC542B /* NSInvocation.m */; }; - FE01A7450C5D9B6900AEA51A /* NSMapTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061209747D5800EC542B /* NSMapTable.m */; }; - FE01A7460C5D9B6900AEA51A /* NSMethodSignature.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061409747D5800EC542B /* NSMethodSignature.m */; }; - FE01A7470C5D9B6900AEA51A /* NSNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061609747D5800EC542B /* NSNull.m */; }; - FE01A7480C5D9B6900AEA51A /* NSNumberFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061809747D5800EC542B /* NSNumberFormatter.m */; }; - FE01A7490C5D9B6900AEA51A /* NSObjCRuntime.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061A09747D5800EC542B /* NSObjCRuntime.m */; }; - FE01A74A0C5D9B6900AEA51A /* NSPipe.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061C09747D5800EC542B /* NSPipe.m */; }; - FE01A74B0C5D9B6900AEA51A /* NSPlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28061E09747D5800EC542B /* NSPlatform.m */; }; - FE01A74C0C5D9B6900AEA51A /* NSPortCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28062009747D5800EC542B /* NSPortCoder.m */; }; - FE01A74D0C5D9B6900AEA51A /* NSProcessInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28062209747D5800EC542B /* NSProcessInfo.m */; }; - FE01A74E0C5D9B6900AEA51A /* NSProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28062409747D5800EC542B /* NSProxy.m */; }; - FE01A74F0C5D9B6900AEA51A /* NSRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28062609747D5800EC542B /* NSRange.m */; }; - FE01A7500C5D9B6900AEA51A /* NSTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28062809747D5800EC542B /* NSTask.m */; }; - FE01A7510C5D9B6900AEA51A /* NSUnarchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28062A09747D5800EC542B /* NSUnarchiver.m */; }; - FE01A7520C5D9B6900AEA51A /* NSCharacterSet_bitmap.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28066509747DF800EC542B /* NSCharacterSet_bitmap.m */; }; - FE01A7530C5D9B6900AEA51A /* NSCharacterSet_range.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28066709747DF900EC542B /* NSCharacterSet_range.m */; }; - FE01A7540C5D9B6900AEA51A /* NSCharacterSet_rangeInverted.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28066909747DF900EC542B /* NSCharacterSet_rangeInverted.m */; }; - FE01A7550C5D9B6900AEA51A /* NSCharacterSet_string.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28066B09747DF900EC542B /* NSCharacterSet_string.m */; }; - FE01A7560C5D9B6900AEA51A /* NSCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28066D09747DF900EC542B /* NSCharacterSet.m */; }; - FE01A7570C5D9B6900AEA51A /* NSMutableCharacterSet_bitmap.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28066F09747DF900EC542B /* NSMutableCharacterSet_bitmap.m */; }; - FE01A7580C5D9B6900AEA51A /* NSMutableCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28067109747DF900EC542B /* NSMutableCharacterSet.m */; }; - FE01A7590C5D9B6900AEA51A /* NSCalendarDate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28069609747E7B00EC542B /* NSCalendarDate.m */; }; - FE01A75A0C5D9B6900AEA51A /* NSDate_timeInterval.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28069809747E7B00EC542B /* NSDate_timeInterval.m */; }; - FE01A75B0C5D9B6900AEA51A /* NSDate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28069A09747E7B00EC542B /* NSDate.m */; }; - FE01A75C0C5D9B6900AEA51A /* NSDateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28069C09747E7B00EC542B /* NSDateFormatter.m */; }; - FE01A75D0C5D9B6900AEA51A /* NSTimeZone_absolute.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2806A709747EA400EC542B /* NSTimeZone_absolute.m */; }; - FE01A75F0C5D9B6900AEA51A /* NSTimeZoneTransition.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2806AB09747EA400EC542B /* NSTimeZoneTransition.m */; }; - FE01A7600C5D9B6900AEA51A /* NSTimeZoneType.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2806AD09747EA400EC542B /* NSTimeZoneType.m */; }; - FE01A7610C5D9B6900AEA51A /* NSTimeZone.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2806B109747EA400EC542B /* NSTimeZone.m */; }; - FE01A7620C5D9B6900AEA51A /* NSArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28030E0974787200EC542B /* NSArchiver.m */; }; - FE01A7630C5D9B6900AEA51A /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28059F09747D0400EC542B /* dllmain.m */; }; - FE01A7640C5D9B6900AEA51A /* NSFileHandle_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805A409747D0400EC542B /* NSFileHandle_win32.m */; }; - FE01A7650C5D9B6900AEA51A /* NSFileManager_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805A609747D0400EC542B /* NSFileManager_win32.m */; }; - FE01A7660C5D9B6900AEA51A /* NSHandleMonitor_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805A809747D0400EC542B /* NSHandleMonitor_win32.m */; }; - FE01A7670C5D9B6900AEA51A /* NSHandleMonitorSet_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805AA09747D0400EC542B /* NSHandleMonitorSet_win32.m */; }; - FE01A7680C5D9B6900AEA51A /* NSLock_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805AC09747D0400EC542B /* NSLock_win32.m */; }; - FE01A7690C5D9B6900AEA51A /* NSMemoryFunctions_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805AE09747D0400EC542B /* NSMemoryFunctions_win32.m */; }; - FE01A76A0C5D9B6900AEA51A /* NSParentDeathMonitor_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805B009747D0400EC542B /* NSParentDeathMonitor_win32.m */; }; - FE01A76B0C5D9B6900AEA51A /* NSPersistantDomain_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805B209747D0400EC542B /* NSPersistantDomain_win32.m */; }; - FE01A76C0C5D9B6900AEA51A /* NSPipe_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805B409747D0400EC542B /* NSPipe_win32.m */; }; - FE01A76D0C5D9B6900AEA51A /* NSPlatform_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805B609747D0400EC542B /* NSPlatform_win32.m */; }; - FE01A76E0C5D9B6900AEA51A /* NSReadInBackground_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805B809747D0400EC542B /* NSReadInBackground_win32.m */; }; - FE01A76F0C5D9B6900AEA51A /* NSString_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805BC09747D0400EC542B /* NSString_win32.m */; }; - FE01A7700C5D9B6900AEA51A /* NSTask_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2805BE09747D0400EC542B /* NSTask_win32.m */; }; - FE01A7710C5D9B6900AEA51A /* NSConstantString.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E28057509747CEE00EC542B /* NSConstantString.m */; }; - FE01A7720C5D9B6900AEA51A /* NSPropertyListReader_xml1.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E0084A30A19363F00F78605 /* NSPropertyListReader_xml1.m */; }; - FE01A7730C5D9B6900AEA51A /* NSPropertyListReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E0084CE0A19371600F78605 /* NSPropertyListReader.m */; }; - FE01A7740C5D9B6900AEA51A /* NSKeyedUnarchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EC4AAE80A34D9B200E8D6CA /* NSKeyedUnarchiver.m */; }; - FE01A7750C5D9B6900AEA51A /* msgSendv-windows.s in Sources */ = {isa = PBXBuildFile; fileRef = 6E28055D09747CC300EC542B /* msgSendv-windows.s */; }; - FE01A7760C5D9B6900AEA51A /* objc_msg_lookup.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E8115B20A55CB99000DE3F1 /* objc_msg_lookup.c */; settings = {COMPILER_FLAGS = "-g0"; }; }; - FE01A7770C5D9B6900AEA51A /* NSInputStream_socket.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EAD77300AAF1283004BCCC9 /* NSInputStream_socket.m */; }; - FE01A7780C5D9B6900AEA51A /* NSOutputStream_socket.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EAD773A0AAF1293004BCCC9 /* NSOutputStream_socket.m */; }; - FE01A7790C5D9B6900AEA51A /* NSInputStream_data.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D30D0B4374F700C239BB /* NSInputStream_data.m */; }; - FE01A77A0C5D9B6900AEA51A /* NSOutputStream_data.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D31B0B43781500C239BB /* NSOutputStream_data.m */; }; - FE01A77B0C5D9B6900AEA51A /* NSOutputStream_file.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D3260B43783C00C239BB /* NSOutputStream_file.m */; }; - FE01A77C0C5D9B6900AEA51A /* NSInputStream_file.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D3330B43786400C239BB /* NSInputStream_file.m */; }; - FE01A77D0C5D9B6900AEA51A /* NSOutputStream_buffer.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D3680B437C9600C239BB /* NSOutputStream_buffer.m */; }; - FE01A77E0C5D9B6900AEA51A /* NSConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D3E50B4412D800C239BB /* NSConnection.m */; }; - FE01A77F0C5D9B6900AEA51A /* NSPort.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4100B4415F900C239BB /* NSPort.m */; }; - FE01A7800C5D9B6900AEA51A /* NSSocketPort.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4330B44164500C239BB /* NSSocketPort.m */; }; - FE01A7810C5D9B6900AEA51A /* NSMessagePort.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4550B4416C400C239BB /* NSMessagePort.m */; }; - FE01A7820C5D9B6900AEA51A /* NSDistantObject.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D46C0B44323C00C239BB /* NSDistantObject.m */; }; - FE01A7830C5D9B6900AEA51A /* NSComparisonPredicate.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4830B44331400C239BB /* NSComparisonPredicate.m */; }; - FE01A7840C5D9B6900AEA51A /* NSPredicate.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D48F0B4433F500C239BB /* NSPredicate.m */; }; - FE01A7850C5D9B6900AEA51A /* NSCompoundPredicate.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4990B44340800C239BB /* NSCompoundPredicate.m */; }; - FE01A7860C5D9B6900AEA51A /* NSExpression.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4A30B44349600C239BB /* NSExpression.m */; }; - FE01A7870C5D9B6900AEA51A /* NSError.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4AD0B4434C800C239BB /* NSError.m */; }; - FE01A7880C5D9B6900AEA51A /* NSIndexSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4BA0B44359400C239BB /* NSIndexSet.m */; }; - FE01A7890C5D9B6900AEA51A /* NSMutableIndexSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4C60B4435A700C239BB /* NSMutableIndexSet.m */; }; - FE01A78A0C5D9B6900AEA51A /* NSLocale.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4D20B4435D000C239BB /* NSLocale.m */; }; - FE01A78B0C5D9B6900AEA51A /* NSPropertyList.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D4EE0B4436FD00C239BB /* NSPropertyList.m */; }; - FE01A78C0C5D9B6900AEA51A /* NSURL.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D55E0B4438E500C239BB /* NSURL.m */; }; - FE01A78D0C5D9B6900AEA51A /* NSURLAuthenticationChallenge.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D56A0B4438FD00C239BB /* NSURLAuthenticationChallenge.m */; }; - FE01A78E0C5D9B6900AEA51A /* NSURLCache.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5760B44390D00C239BB /* NSURLCache.m */; }; - FE01A78F0C5D9B6900AEA51A /* NSURLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5820B44391E00C239BB /* NSURLConnection.m */; }; - FE01A7900C5D9B6900AEA51A /* NSURLCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D58E0B44393400C239BB /* NSURLCredential.m */; }; - FE01A7910C5D9B6900AEA51A /* NSURLCredentialStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D59A0B44394000C239BB /* NSURLCredentialStorage.m */; }; - FE01A7920C5D9B6900AEA51A /* NSURLDownload.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5A60B44395100C239BB /* NSURLDownload.m */; }; - FE01A7930C5D9B6900AEA51A /* NSURLHandle.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5BE0B44397900C239BB /* NSURLHandle.m */; }; - FE01A7940C5D9B6900AEA51A /* NSURLProtectionSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5CA0B44399000C239BB /* NSURLProtectionSpace.m */; }; - FE01A7950C5D9B6900AEA51A /* NSURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5D60B4439A200C239BB /* NSURLProtocol.m */; }; - FE01A7960C5D9B6900AEA51A /* NSURLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5E20B4439BA00C239BB /* NSURLRequest.m */; }; - FE01A7970C5D9B6900AEA51A /* NSURLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5EE0B443A9600C239BB /* NSURLResponse.m */; }; - FE01A7980C5D9B6900AEA51A /* NSProtocolChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D5FA0B443B8200C239BB /* NSProtocolChecker.m */; }; - FE01A7990C5D9B6900AEA51A /* NSHTTPCookie.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D60B0B443C2800C239BB /* NSHTTPCookie.m */; }; - FE01A79A0C5D9B6900AEA51A /* NSHTTPCookieStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D6150B443C3F00C239BB /* NSHTTPCookieStorage.m */; }; - FE01A79B0C5D9B6900AEA51A /* NSPortMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D6AF0B443F1200C239BB /* NSPortMessage.m */; }; - FE01A79C0C5D9B6900AEA51A /* NSClassDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D6CE0B44405700C239BB /* NSClassDescription.m */; }; - FE01A79D0C5D9B6900AEA51A /* NSPortNameServer.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D6DC0B4440DA00C239BB /* NSPortNameServer.m */; }; - FE01A79E0C5D9B6900AEA51A /* NSMessagePortNameServer.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D6E80B4440F200C239BB /* NSMessagePortNameServer.m */; }; - FE01A79F0C5D9B6900AEA51A /* NSSocketPortNameServer.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB9D7010B44414000C239BB /* NSSocketPortNameServer.m */; }; - FE01A7A00C5D9B6900AEA51A /* NSHTTPURLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FE405A6B0B4450FD001B183D /* NSHTTPURLResponse.m */; }; - FE01A7A10C5D9B6900AEA51A /* NSKeyValueCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB6CBAF0B4A139F004FADF2 /* NSKeyValueCoding.m */; }; - FE01A7A30C5D9B6900AEA51A /* NSKVCMutableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB6CC8A0B4A1D4D004FADF2 /* NSKVCMutableArray.m */; }; - FE01A7A40C5D9B6900AEA51A /* objc.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35CAEC0B4AB85800FE7AB3 /* objc.m */; settings = {COMPILER_FLAGS = "-g0"; }; }; - FE01A7A50C5D9B6900AEA51A /* NSSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35CBD80B4AD47400FE7AB3 /* NSSocket.m */; }; - FE01A7A60C5D9B6900AEA51A /* NSSelectInputSource.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35CBDA0B4AD47400FE7AB3 /* NSSelectInputSource.m */; }; - FE01A7A70C5D9B6900AEA51A /* NSSocket_windows.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35CC100B4AD8A400FE7AB3 /* NSSocket_windows.m */; }; - FE01A7A80C5D9B6900AEA51A /* NSSelectSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35D2DA0B4ECDBD00FE7AB3 /* NSSelectSet.m */; }; - FE01A7A90C5D9B6900AEA51A /* NSSelectSet_windows.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35D3500B4EEDBB00FE7AB3 /* NSSelectSet_windows.m */; }; - FE01A7AA0C5D9B6900AEA51A /* NSSelectInputSourceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35D3AB0B4F369C00FE7AB3 /* NSSelectInputSourceSet.m */; }; - FE01A7AB0C5D9B6900AEA51A /* NSAssertionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1935160B5D449E00FB74CC /* NSAssertionHandler.m */; }; - FE01A7AC0C5D9B6900AEA51A /* NSAffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6DC2560BA902710082AC66 /* NSAffineTransform.m */; }; - FE01A7AD0C5D9B6900AEA51A /* NSOldXMLAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE180BA9EBBE0050277F /* NSOldXMLAttribute.m */; }; - FE01A7AE0C5D9B6900AEA51A /* NSOldXMLDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE1A0BA9EBBE0050277F /* NSOldXMLDocument.m */; }; - FE01A7AF0C5D9B6900AEA51A /* NSOldXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE1C0BA9EBBE0050277F /* NSOldXMLElement.m */; }; - FE01A7B00C5D9B6900AEA51A /* NSOldXMLReader.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE1E0BA9EBBE0050277F /* NSOldXMLReader.m */; }; - FE01A7B10C5D9B6900AEA51A /* NSXMLDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE4A0BA9ED490050277F /* NSXMLDocument.m */; }; - FE01A7B20C5D9B6900AEA51A /* NSXMLDTD.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE4C0BA9ED490050277F /* NSXMLDTD.m */; }; - FE01A7B30C5D9B6900AEA51A /* NSXMLDTDNode.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE4E0BA9ED490050277F /* NSXMLDTDNode.m */; }; - FE01A7B40C5D9B6900AEA51A /* NSXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE500BA9ED490050277F /* NSXMLElement.m */; }; - FE01A7B50C5D9B6900AEA51A /* NSXMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE520BA9ED490050277F /* NSXMLNode.m */; }; - FE01A7B60C5D9B6900AEA51A /* NSXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = FE53BE560BA9ED490050277F /* NSXMLParser.m */; }; - FE01A7B70C5D9B6900AEA51A /* NSDecimal.m in Sources */ = {isa = PBXBuildFile; fileRef = FE74776E0BAC4E9000829F4F /* NSDecimal.m */; }; - FE01A7B80C5D9B6900AEA51A /* NSDecimalNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7477700BAC4E9000829F4F /* NSDecimalNumber.m */; }; - FE01A7B90C5D9B6900AEA51A /* NSDistributedNotificationCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE74779C0BAC4F5200829F4F /* NSDistributedNotificationCenter.m */; }; - FE01A7BA0C5D9B6900AEA51A /* NSIndexPath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7477BF0BAC507F00829F4F /* NSIndexPath.m */; }; - FE01A7BB0C5D9B6900AEA51A /* NSMetadataItem.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7477CE0BAC519800829F4F /* NSMetadataItem.m */; }; - FE01A7BC0C5D9B6900AEA51A /* NSMetadataQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7477D00BAC519800829F4F /* NSMetadataQuery.m */; }; - FE01A7BD0C5D9B6900AEA51A /* NSMetadataQueryAttributeValueTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7477D20BAC519800829F4F /* NSMetadataQueryAttributeValueTuple.m */; }; - FE01A7BE0C5D9B6900AEA51A /* NSMetadataQueryResultGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7477D40BAC519800829F4F /* NSMetadataQueryResultGroup.m */; }; - FE01A7C10C5D9B6900AEA51A /* NSSortDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7478420BAC5A8700829F4F /* NSSortDescriptor.m */; }; - FE01A7C20C5D9B6900AEA51A /* NSValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7478710BAC5EB600829F4F /* NSValueTransformer.m */; }; - FE01A7C30C5D9B6900AEA51A /* NSDistributedLock.m in Sources */ = {isa = PBXBuildFile; fileRef = FEE17BA20BB43998006B4510 /* NSDistributedLock.m */; }; - FE01A7C40C5D9B6900AEA51A /* NSConcreteDirectoryEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = FEE97EB50BBEDE3000DBAFF9 /* NSConcreteDirectoryEnumerator.m */; }; - FE01A7C50C5D9B6900AEA51A /* NSArray+KVC.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5B4C60BBEFDBA00A8FF26 /* NSArray+KVC.m */; }; - FE01A7C60C5D9B6900AEA51A /* NSDictionary+KVC.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5B4C70BBEFDBA00A8FF26 /* NSDictionary+KVC.m */; }; - FE01A7C70C5D9B6900AEA51A /* NSKeyValueObserving.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5B4CA0BBEFDBA00A8FF26 /* NSKeyValueObserving.m */; }; - FE01A7C80C5D9B6900AEA51A /* NSString+KVCAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = FEF5B4CC0BBEFDBA00A8FF26 /* NSString+KVCAdditions.m */; }; - FE01A7C90C5D9B6900AEA51A /* NSConditionLock.m in Sources */ = {isa = PBXBuildFile; fileRef = FED311CB0BCC0E1D00552615 /* NSConditionLock.m */; }; - FE01A7CA0C5D9B6900AEA51A /* NSPredicate_BOOL.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDDE2530BD2A9E500DDD110 /* NSPredicate_BOOL.m */; }; - FE01A7CB0C5D9B6900AEA51A /* NSKeyedArchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4EC68D0BD9B47B0015F9E9 /* NSKeyedArchiver.m */; }; - FE01A7CC0C5D9B6900AEA51A /* NSCalendar.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFF238E0BDCF136005357B8 /* NSCalendar.m */; }; - FE01A7CD0C5D9B6900AEA51A /* NSExpression_operator.m in Sources */ = {isa = PBXBuildFile; fileRef = FED160AD0BE26DF700BF9889 /* NSExpression_operator.m */; }; - FE01A7CE0C5D9B6900AEA51A /* NSExpression_array.m in Sources */ = {isa = PBXBuildFile; fileRef = FED162970BE2E44600BF9889 /* NSExpression_array.m */; }; - FE01A7CF0C5D9B6900AEA51A /* NSExpression_assignment.m in Sources */ = {isa = PBXBuildFile; fileRef = FED162F30BE2EAB200BF9889 /* NSExpression_assignment.m */; }; - FE01A7D00C5D9B6900AEA51A /* NSExpression_constant.m in Sources */ = {isa = PBXBuildFile; fileRef = FED1635F0BE4093700BF9889 /* NSExpression_constant.m */; }; - FE01A7D10C5D9B6900AEA51A /* NSExpression_function.m in Sources */ = {isa = PBXBuildFile; fileRef = FED163610BE4093700BF9889 /* NSExpression_function.m */; }; - FE01A7D20C5D9B6900AEA51A /* NSExpression_keypath.m in Sources */ = {isa = PBXBuildFile; fileRef = FED163630BE4093700BF9889 /* NSExpression_keypath.m */; }; - FE01A7D30C5D9B6900AEA51A /* NSExpression_self.m in Sources */ = {isa = PBXBuildFile; fileRef = FED163650BE4093700BF9889 /* NSExpression_self.m */; }; - FE01A7D40C5D9B6900AEA51A /* NSExpression_variable.m in Sources */ = {isa = PBXBuildFile; fileRef = FED163670BE4093700BF9889 /* NSExpression_variable.m */; }; - FE01A7D50C5D9B6900AEA51A /* NSDateComponents.m in Sources */ = {isa = PBXBuildFile; fileRef = FE3F7D990BE63BBD007E9363 /* NSDateComponents.m */; }; - FE01A7D60C5D9B6900AEA51A /* NSValueTransformer_IsNil.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9D95350C0387D5006DB214 /* NSValueTransformer_IsNil.m */; }; - FE01A7D70C5D9B6900AEA51A /* NSValueTransformer_IsNotNil.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9D95370C0387D5006DB214 /* NSValueTransformer_IsNotNil.m */; }; - FE01A7D80C5D9B6900AEA51A /* NSValueTransformer_NegateBoolean.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9D95390C0387D5006DB214 /* NSValueTransformer_NegateBoolean.m */; }; - FE01A7D90C5D9B6900AEA51A /* NSValueTransformer_UnarchiveFromData.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9D953B0C0387D5006DB214 /* NSValueTransformer_UnarchiveFromData.m */; }; - FE01A7DC0C5D9B6900AEA51A /* punctuationCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = 6E28068009747E0A00EC542B /* punctuationCharacterSet.bitmap */; }; - FE01A7DD0C5D9B6900AEA51A /* uppercaseLetterCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = 6E28068109747E0A00EC542B /* uppercaseLetterCharacterSet.bitmap */; }; - FE01A7E00C5D9B6900AEA51A /* alphanumericCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = 6E28068809747E2300EC542B /* alphanumericCharacterSet.bitmap */; }; - FE01A7E10C5D9B6900AEA51A /* controlCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = 6E28068A09747E2300EC542B /* controlCharacterSet.bitmap */; }; - FE01A7E20C5D9B6900AEA51A /* decimalDigitCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = 6E28068B09747E2300EC542B /* decimalDigitCharacterSet.bitmap */; }; - FE01A7E30C5D9B6900AEA51A /* letterCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = 6E28068C09747E2300EC542B /* letterCharacterSet.bitmap */; }; - FE01A7E40C5D9B6900AEA51A /* lowercaseLetterCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = 6E28068D09747E2300EC542B /* lowercaseLetterCharacterSet.bitmap */; }; - FE01A7E50C5D9B6900AEA51A /* NSTimeZoneAbbreviations.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E2806B209747EA400EC542B /* NSTimeZoneAbbreviations.plist */; }; - FE01A7E60C5D9B6900AEA51A /* NSTimeZoneRegions.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E2806B309747EA400EC542B /* NSTimeZoneRegions.plist */; }; - FE01A7E70C5D9B6900AEA51A /* NSUserDefaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6E280B2B09747F4900EC542B /* NSUserDefaults.plist */; }; - FE09AF7013FCC68100B53D10 /* NSOrthography.h in Headers */ = {isa = PBXBuildFile; fileRef = FE09AF6E13FCC68100B53D10 /* NSOrthography.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE09AF7113FCC68100B53D10 /* NSOrthography.m in Sources */ = {isa = PBXBuildFile; fileRef = FE09AF6F13FCC68100B53D10 /* NSOrthography.m */; }; - FE09AF8413FCC69200B53D10 /* NSTextCheckingResult.h in Headers */ = {isa = PBXBuildFile; fileRef = FE09AF8213FCC69200B53D10 /* NSTextCheckingResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE09AF8513FCC69200B53D10 /* NSTextCheckingResult.m in Sources */ = {isa = PBXBuildFile; fileRef = FE09AF8313FCC69200B53D10 /* NSTextCheckingResult.m */; }; - FE1365E00F154B3A000F2657 /* NSAtomicList.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1365D80F154B3A000F2657 /* NSAtomicList.h */; }; - FE1365E10F154B3A000F2657 /* NSAtomicList.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1365D90F154B3A000F2657 /* NSAtomicList.m */; }; - FE1365E40F154B3A000F2657 /* NSOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1365DC0F154B3A000F2657 /* NSOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE1365E50F154B3A000F2657 /* NSOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1365DD0F154B3A000F2657 /* NSOperation.m */; }; - FE1365E60F154B3A000F2657 /* NSOperationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1365DE0F154B3A000F2657 /* NSOperationQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE1365E70F154B3A000F2657 /* NSOperationQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1365DF0F154B3A000F2657 /* NSOperationQueue.m */; }; - FE1A0D290F8BADBA00FC4CC7 /* forwarding.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1A0D1F0F8BADBA00FC4CC7 /* forwarding.h */; }; - FE1A0D2A0F8BADBA00FC4CC7 /* forwarding.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1A0D200F8BADBA00FC4CC7 /* forwarding.m */; }; - FE1CF95710233D94001414D4 /* illegalCharacterSet.bitmap in Resources */ = {isa = PBXBuildFile; fileRef = FE1CF95610233D94001414D4 /* illegalCharacterSet.bitmap */; }; - FE2569E910F2F9C7005CE23E /* CFHost.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2569E610F2F9C7005CE23E /* CFHost.m */; }; - FE2569EA10F2F9C7005CE23E /* CFNetServices.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2569E710F2F9C7005CE23E /* CFNetServices.m */; }; - FE2569EB10F2F9C7005CE23E /* CFSocketStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2569E810F2F9C7005CE23E /* CFSocketStream.m */; }; - FE256A8310F387DA005CE23E /* CFDate.m in Sources */ = {isa = PBXBuildFile; fileRef = FE256A8210F387DA005CE23E /* CFDate.m */; }; - FE3C473E112AF7FC0099DAB8 /* CFUID.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3C473C112AF7FC0099DAB8 /* CFUID.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE3C473F112AF7FC0099DAB8 /* CFUID.m in Sources */ = {isa = PBXBuildFile; fileRef = FE3C473D112AF7FC0099DAB8 /* CFUID.m */; }; - FE452E82102097EF00585DFE /* NSString_macOSRoman.h in Headers */ = {isa = PBXBuildFile; fileRef = FE452E80102097EF00585DFE /* NSString_macOSRoman.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE452E83102097EF00585DFE /* NSString_macOSRoman.m in Sources */ = {isa = PBXBuildFile; fileRef = FE452E81102097EF00585DFE /* NSString_macOSRoman.m */; }; - FE463E1B102CD59500B265D6 /* NSSpellServer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463E19102CD59500B265D6 /* NSSpellServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463E1C102CD59500B265D6 /* NSSpellServer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463E1A102CD59500B265D6 /* NSSpellServer.m */; }; - FE463E2B102CD5A600B265D6 /* NSURLError.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463E29102CD5A600B265D6 /* NSURLError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE463E2C102CD5A600B265D6 /* NSURLError.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463E2A102CD5A600B265D6 /* NSURLError.m */; }; - FE463E46102CD5B800B265D6 /* NSGarbageCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463E44102CD5B700B265D6 /* NSGarbageCollector.h */; }; - FE463E47102CD5B800B265D6 /* NSGarbageCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463E45102CD5B800B265D6 /* NSGarbageCollector.m */; }; - FE463E58102CD5C700B265D6 /* NSPointerArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463E54102CD5C700B265D6 /* NSPointerArray.h */; }; - FE463E59102CD5C700B265D6 /* NSPointerArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463E55102CD5C700B265D6 /* NSPointerArray.m */; }; - FE463E5A102CD5C700B265D6 /* NSPointerFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463E56102CD5C700B265D6 /* NSPointerFunctions.h */; }; - FE463E5B102CD5C700B265D6 /* NSPointerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = FE463E57102CD5C700B265D6 /* NSPointerFunctions.m */; }; - FE463E75102CD5D200B265D6 /* NSXMLNodeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = FE463E74102CD5D200B265D6 /* NSXMLNodeOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4C074A1434A0330034EE26 /* NSDecimalNumberPlaceholder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4C07481434A0330034EE26 /* NSDecimalNumberPlaceholder.h */; }; - FE4C074B1434A0330034EE26 /* NSDecimalNumberPlaceholder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4C07491434A0330034EE26 /* NSDecimalNumberPlaceholder.m */; }; - FE55AD1A1119D86900A777AB /* CFByteOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE55AD191119D86900A777AB /* CFByteOrder.m */; }; - FE60142A1042FD6B008A7357 /* NSString_defaultEncoding_windows.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6014291042FD6B008A7357 /* NSString_defaultEncoding_windows.m */; }; - FE60143B1042FDD2008A7357 /* NSString_defaultEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = FE60143A1042FDD2008A7357 /* NSString_defaultEncoding.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE6CF8A01152743100B6D893 /* objc_malloc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6CF89E1152743100B6D893 /* objc_malloc.h */; }; - FE6CF8A11152743100B6D893 /* objc_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = FE6CF89F1152743100B6D893 /* objc_malloc.c */; }; - FE720FD6124C56FA009B690D /* NSKeyPathObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = FE720FD4124C56FA009B690D /* NSKeyPathObserver.h */; }; - FE720FD7124C56FA009B690D /* NSKeyPathObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = FE720FD5124C56FA009B690D /* NSKeyPathObserver.m */; }; - FE721027124CE420009B690D /* NSKeyObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = FE721025124CE420009B690D /* NSKeyObserver.h */; }; - FE721028124CE420009B690D /* NSKeyObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = FE721026124CE420009B690D /* NSKeyObserver.m */; }; - FE75E2E810F6442F000419C4 /* bonjour.m in Sources */ = {isa = PBXBuildFile; fileRef = FE75E2E710F6442F000419C4 /* bonjour.m */; }; - FE7FE5C10D7CF08B006CCA28 /* NSFileHandle_stream.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7FE5BF0D7CF08B006CCA28 /* NSFileHandle_stream.h */; }; - FE7FE5C20D7CF08B006CCA28 /* NSFileHandle_stream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7FE5C00D7CF08B006CCA28 /* NSFileHandle_stream.m */; }; - FE828F0B110DEB540008AFA2 /* pthread.m in Sources */ = {isa = PBXBuildFile; fileRef = FE828F0A110DEB540008AFA2 /* pthread.m */; }; - FE828F39110DFA1C0008AFA2 /* NSKVOInfoPerObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FE828F37110DFA1C0008AFA2 /* NSKVOInfoPerObject.h */; }; - FE828F3A110DFA1C0008AFA2 /* NSKVOInfoPerObject.m in Sources */ = {isa = PBXBuildFile; fileRef = FE828F38110DFA1C0008AFA2 /* NSKVOInfoPerObject.m */; }; - FE8694AA0FE0108E00F89733 /* CFArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D20FE0108E00F89733 /* CFArray.m */; }; - FE8694AB0FE0108E00F89733 /* CFAttributedString.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D30FE0108E00F89733 /* CFAttributedString.m */; }; - FE8694AC0FE0108E00F89733 /* CFBag.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D40FE0108E00F89733 /* CFBag.m */; }; - FE8694AD0FE0108E00F89733 /* CFBase.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D50FE0108E00F89733 /* CFBase.m */; }; - FE8694AE0FE0108E00F89733 /* CFBinaryHeap.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D60FE0108E00F89733 /* CFBinaryHeap.m */; }; - FE8694AF0FE0108E00F89733 /* CFBitVector.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D70FE0108E00F89733 /* CFBitVector.m */; }; - FE8694B00FE0108E00F89733 /* CFBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D80FE0108E00F89733 /* CFBundle.m */; }; - FE8694B10FE0108E00F89733 /* CFCalendar.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693D90FE0108E00F89733 /* CFCalendar.m */; }; - FE8694B20FE0108E00F89733 /* CFCharacterSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693DA0FE0108E00F89733 /* CFCharacterSet.m */; }; - FE8694B30FE0108E00F89733 /* CFData.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693DB0FE0108E00F89733 /* CFData.m */; }; - FE8694B40FE0108E00F89733 /* CFDateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693DC0FE0108E00F89733 /* CFDateFormatter.m */; }; - FE8694B50FE0108E00F89733 /* CFDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693DD0FE0108E00F89733 /* CFDictionary.m */; }; - FE8694B60FE0108E00F89733 /* CFError.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693DE0FE0108E00F89733 /* CFError.m */; }; - FE8694B70FE0108E00F89733 /* CFFileDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693DF0FE0108E00F89733 /* CFFileDescriptor.m */; }; - FE8694B80FE0108E00F89733 /* CFLocale.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E00FE0108E00F89733 /* CFLocale.m */; }; - FE8694B90FE0108E00F89733 /* CFMachPort.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E10FE0108E00F89733 /* CFMachPort.m */; }; - FE8694BA0FE0108E00F89733 /* CFMessagePort.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E20FE0108E00F89733 /* CFMessagePort.m */; }; - FE8694BB0FE0108E00F89733 /* CFNotificationCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E30FE0108E00F89733 /* CFNotificationCenter.m */; }; - FE8694BC0FE0108E00F89733 /* CFNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E40FE0108E00F89733 /* CFNumber.m */; }; - FE8694BD0FE0108E00F89733 /* CFNumberFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E50FE0108E00F89733 /* CFNumberFormatter.m */; }; - FE8694BE0FE0108E00F89733 /* CFPlugIn.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E60FE0108E00F89733 /* CFPlugIn.m */; }; - FE8694BF0FE0108E00F89733 /* CFPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E70FE0108E00F89733 /* CFPreferences.m */; }; - FE8694C00FE0108E00F89733 /* CFPropertyList.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E80FE0108E00F89733 /* CFPropertyList.m */; }; - FE8694C10FE0108E00F89733 /* CFRunLoop.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693E90FE0108E00F89733 /* CFRunLoop.m */; }; - FE8694C20FE0108E00F89733 /* CFSet.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693EA0FE0108E00F89733 /* CFSet.m */; }; - FE8694C30FE0108E00F89733 /* CFSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693EB0FE0108E00F89733 /* CFSocket.m */; }; - FE8694C40FE0108E00F89733 /* CFStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693EC0FE0108E00F89733 /* CFStream.m */; }; - FE8694C50FE0108E00F89733 /* CFString.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693ED0FE0108E00F89733 /* CFString.m */; }; - FE8694C60FE0108E00F89733 /* CFStringTokenizer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693EE0FE0108E00F89733 /* CFStringTokenizer.m */; }; - FE8694C70FE0108E00F89733 /* CFTimeZone.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693EF0FE0108E00F89733 /* CFTimeZone.m */; }; - FE8694C80FE0108E00F89733 /* CFTree.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693F00FE0108E00F89733 /* CFTree.m */; }; - FE8694C90FE0108E00F89733 /* CFURL.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693F10FE0108E00F89733 /* CFURL.m */; }; - FE8694CA0FE0108E00F89733 /* CFUserNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693F20FE0108E00F89733 /* CFUserNotification.m */; }; - FE8694CB0FE0108E00F89733 /* CFUUID.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693F30FE0108E00F89733 /* CFUUID.m */; }; - FE8694CC0FE0108E00F89733 /* CFXMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693F40FE0108E00F89733 /* CFXMLNode.m */; }; - FE8694CD0FE0108E00F89733 /* CFXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8693F50FE0108E00F89733 /* CFXMLParser.m */; }; - FE86D408114743AC0010FE05 /* NSStringEncodingNames.plist in Resources */ = {isa = PBXBuildFile; fileRef = FE86D406114743AC0010FE05 /* NSStringEncodingNames.plist */; }; - FE88A4990F8A7E050081CFC1 /* objc_ivar.c in Sources */ = {isa = PBXBuildFile; fileRef = FE88A4940F8A7E050081CFC1 /* objc_ivar.c */; }; - FE88A4A30F8A7E9A0081CFC1 /* objc_method.c in Sources */ = {isa = PBXBuildFile; fileRef = FE88A49E0F8A7E9A0081CFC1 /* objc_method.c */; }; - FE88A4DA0F8A9DE00081CFC1 /* Object.m in Sources */ = {isa = PBXBuildFile; fileRef = FE88A4D50F8A9DE00081CFC1 /* Object.m */; }; - FE8C91400FFD1E430027C889 /* NSString_win1252.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8C913E0FFD1E430027C889 /* NSString_win1252.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE8C91410FFD1E430027C889 /* NSString_win1252.m in Sources */ = {isa = PBXBuildFile; fileRef = FE8C913F0FFD1E430027C889 /* NSString_win1252.m */; }; - FE937F401358DC8000C93531 /* NSNumber_CF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE937F3E1358DC8000C93531 /* NSNumber_CF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE937F411358DC8000C93531 /* NSNumber_CF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE937F3F1358DC8000C93531 /* NSNumber_CF.m */; }; - FE9C1B8E1125A649002DA20B /* CFSSLHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1B8A1125A649002DA20B /* CFSSLHandler.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE9C1B8F1125A649002DA20B /* CFSSLHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1B8B1125A649002DA20B /* CFSSLHandler.m */; }; - FE9E1A310D5C0676004AE7BA /* NSLocale+windows.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9E1A2F0D5C0676004AE7BA /* NSLocale+windows.h */; }; - FE9E1A320D5C0676004AE7BA /* NSLocale+windows.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9E1A300D5C0676004AE7BA /* NSLocale+windows.m */; }; - FEA3178B0FD5843900F480D4 /* NSRaiseException.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA317850FD5843900F480D4 /* NSRaiseException.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEA9D08A0D16C55E00123D51 /* NSPropertyListReader_binary1.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA9D0880D16C55E00123D51 /* NSPropertyListReader_binary1.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEA9D08B0D16C55E00123D51 /* NSPropertyListReader_binary1.m in Sources */ = {isa = PBXBuildFile; fileRef = FEA9D0890D16C55E00123D51 /* NSPropertyListReader_binary1.m */; }; - FEA9D3070F5D9C2100772064 /* NSRunLoopState_windows.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA9D3050F5D9C2100772064 /* NSRunLoopState_windows.h */; }; - FEA9D3080F5D9C2100772064 /* NSRunLoopState_windows.m in Sources */ = {isa = PBXBuildFile; fileRef = FEA9D3060F5D9C2100772064 /* NSRunLoopState_windows.m */; }; - FEADE5C012FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.h in Headers */ = {isa = PBXBuildFile; fileRef = FEADE5BE12FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.h */; }; - FEADE5C112FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.m in Sources */ = {isa = PBXBuildFile; fileRef = FEADE5BF12FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.m */; }; - FEB3F2C01404A92400059C8F /* NSSpellEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB3F2B81404A92400059C8F /* NSSpellEngine.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEB3F2C11404A92400059C8F /* NSSpellEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB3F2B91404A92400059C8F /* NSSpellEngine.m */; }; - FEBF53600F925FA3005DC684 /* objc_protocol.c in Sources */ = {isa = PBXBuildFile; fileRef = FEBF535B0F925FA3005DC684 /* objc_protocol.c */; }; - FEBF536C0F926025005DC684 /* objc_protocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FEBF53670F926025005DC684 /* objc_protocol.h */; }; - FEBF545F0F93AE8A005DC684 /* objc_property.c in Sources */ = {isa = PBXBuildFile; fileRef = FEBF545A0F93AE8A005DC684 /* objc_property.c */; }; - FEC1CFE40F7AAB7900619DD5 /* FoundationErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC1CFDF0F7AAB7900619DD5 /* FoundationErrors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEC9F6AE0E2F98EA0034932A /* NSURLProtocol_http.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC9F6AC0E2F98EA0034932A /* NSURLProtocol_http.h */; }; - FEC9F6AF0E2F98EA0034932A /* NSURLProtocol_http.m in Sources */ = {isa = PBXBuildFile; fileRef = FEC9F6AD0E2F98EA0034932A /* NSURLProtocol_http.m */; }; - FEC9F6BD0E2F9BEA0034932A /* NSURLConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = FEC9F6BB0E2F9BEA0034932A /* NSURLConnectionState.h */; }; - FEC9F6BE0E2F9BEA0034932A /* NSURLConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = FEC9F6BC0E2F9BEA0034932A /* NSURLConnectionState.m */; }; - FEDB76390F8AD40700AC545D /* objc_object.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDB762F0F8AD40700AC545D /* objc_object.h */; }; - FEDB763A0F8AD40700AC545D /* objc_object.c in Sources */ = {isa = PBXBuildFile; fileRef = FEDB76300F8AD40700AC545D /* objc_object.c */; }; - FEDF9FF50CF6123F00F21F87 /* NSMutableURLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDF9FEF0CF6123F00F21F87 /* NSMutableURLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDF9FF60CF6123F00F21F87 /* NSMutableURLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDF9FF00CF6123F00F21F87 /* NSMutableURLRequest.m */; }; - FEDFA1060CF7D41F00F21F87 /* NSCachedURLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDFA1000CF7D41F00F21F87 /* NSCachedURLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDFA1070CF7D41F00F21F87 /* NSCachedURLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FEDFA1010CF7D41F00F21F87 /* NSCachedURLResponse.m */; }; - FEE7D3130ED1D2DE0032DCE0 /* NSNetServices.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE7D3090ED1D2DE0032DCE0 /* NSNetServices.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEE7D3140ED1D2DE0032DCE0 /* NSNetServices.m in Sources */ = {isa = PBXBuildFile; fileRef = FEE7D30A0ED1D2DE0032DCE0 /* NSNetServices.m */; }; - FEE7D3400ED1D4E10032DCE0 /* bonjour.h in Headers */ = {isa = PBXBuildFile; fileRef = FEE7D33B0ED1D4E10032DCE0 /* bonjour.h */; }; - FEEA64B512B674A200E6E2C8 /* NSRecursiveLock_win32.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEA64B312B674A200E6E2C8 /* NSRecursiveLock_win32.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEEA64B612B674A200E6E2C8 /* NSRecursiveLock_win32.m in Sources */ = {isa = PBXBuildFile; fileRef = FEEA64B412B674A200E6E2C8 /* NSRecursiveLock_win32.m */; }; - FEFAA5411429098A00CEE177 /* NSScriptWhoseTests.h in Headers */ = {isa = PBXBuildFile; fileRef = FEFAA5391429098A00CEE177 /* NSScriptWhoseTests.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEFAA5421429098A00CEE177 /* NSScriptWhoseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFAA53A1429098A00CEE177 /* NSScriptWhoseTests.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - CFC5B42C1AF466EB00FBB52A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEB6CC400B4A1922004FADF2 /* objc.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A5890C5D9B3100AEA51A; - remoteInfo = objc; - }; - FE01A7F20C5D9B9100AEA51A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEB6CC400B4A1922004FADF2 /* objc.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A57F0C5D9B3100AEA51A; - remoteInfo = "objc-Windows-i386"; - }; - FE1342C81151842200404745 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE1342BD1151842200404745 /* CoreServices.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreServices-Windows-i386"; - }; - FE1342D41151843C00404745 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE1342BD1151842200404745 /* CoreServices.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CoreServices-Windows-i386"; - }; - FEA828AA109B74B200C7A732 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEA828A3109B74B200C7A732 /* CoreFoundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreFoundation-Windows-i386"; - }; - FEA828AC109B752F00C7A732 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEA828A3109B74B200C7A732 /* CoreFoundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CoreFoundation-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0D94DD60153E859E0048B351 /* NSSocketPort_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSSocketPort_posix.h; path = platform_posix/NSSocketPort_posix.h; sourceTree = ""; }; - 0D94DD61153E859E0048B351 /* NSSocketPort_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSSocketPort_posix.m; path = platform_posix/NSSocketPort_posix.m; sourceTree = ""; }; - 0DE1C157151665AB003781E1 /* NSRecursiveLock_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSRecursiveLock_posix.h; path = platform_posix/NSRecursiveLock_posix.h; sourceTree = ""; }; - 0DE1C158151665AB003781E1 /* NSRecursiveLock_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSRecursiveLock_posix.m; path = platform_posix/NSRecursiveLock_posix.m; sourceTree = ""; }; - 151B5CC3105EA25E009092D5 /* objc_msg_sendv-Disabled.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "objc_msg_sendv-Disabled.m"; sourceTree = ""; }; - 151B5D1A105EA94F009092D5 /* NSAtomicCompareAndSwap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAtomicCompareAndSwap.h; sourceTree = ""; }; - 1A27BFF01090CBCD00C44FD7 /* NSNumber_BOOL_const_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSNumber_BOOL_const_impl.h; path = NSNumber/NSNumber_BOOL_const_impl.h; sourceTree = ""; }; - 1A27C0601090D1BE00C44FD7 /* NSNumber_BOOL_const.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSNumber_BOOL_const.m; path = NSNumber/NSNumber_BOOL_const.m; sourceTree = ""; }; - 1A28B5B2109096950019EFC6 /* NSConstObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSConstObject.h; path = NSNumber/NSConstObject.h; sourceTree = ""; }; - 1A8A694E1091EF0200DC5A01 /* NSCFTypeID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCFTypeID.h; sourceTree = SOURCE_ROOT; }; - 1ACAB27B108C5B010057A542 /* NSNumber_BOOL_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSNumber_BOOL_const.h; path = NSNumber/NSNumber_BOOL_const.h; sourceTree = ""; }; - 1ACAB27C108C5B010057A542 /* NSNumber_double_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSNumber_double_const.h; path = NSNumber/NSNumber_double_const.h; sourceTree = ""; }; - 2692499E1157AC7B00A96CEB /* NSCondition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCondition.m; sourceTree = ""; }; - 269249CA1157AD6500A96CEB /* NSCondition_win32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCondition_win32.m; sourceTree = ""; }; - 269249CB1157AD6500A96CEB /* NSCondition_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCondition_win32.h; sourceTree = ""; }; - 26924AB41157BF7600A96CEB /* NSCondition_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSCondition_posix.m; path = platform_posix/NSCondition_posix.m; sourceTree = ""; }; - 26924AB51157BF7600A96CEB /* NSCondition_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSCondition_posix.h; path = platform_posix/NSCondition_posix.h; sourceTree = ""; }; - 492B5DAA17468F0C0013F119 /* objc_association.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc_association.m; sourceTree = ""; }; - 499120D2178EA58D009310D4 /* NSStringEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSStringEncoder.h; sourceTree = ""; }; - 499120D3178EA58D009310D4 /* NSStringEncoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStringEncoder.m; sourceTree = ""; }; - 499120E7178EA67F009310D4 /* CP1250.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1250.h; sourceTree = ""; }; - 499120E8178EA67F009310D4 /* CP1251.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1251.h; sourceTree = ""; }; - 499120E9178EA67F009310D4 /* CP1252.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1252.h; sourceTree = ""; }; - 499120EA178EA67F009310D4 /* CP1253.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1253.h; sourceTree = ""; }; - 499120EB178EA67F009310D4 /* CP1254.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1254.h; sourceTree = ""; }; - 499120EC178EA67F009310D4 /* CP1255.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1255.h; sourceTree = ""; }; - 499120ED178EA67F009310D4 /* CP1256.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1256.h; sourceTree = ""; }; - 499120EE178EA67F009310D4 /* CP1257.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1257.h; sourceTree = ""; }; - 499120EF178EA67F009310D4 /* CP1258.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP1258.h; sourceTree = ""; }; - 499120F0178EA67F009310D4 /* CP874.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP874.h; sourceTree = ""; }; - 499120F1178EA67F009310D4 /* CP932.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP932.h; sourceTree = ""; }; - 499120F2178EA67F009310D4 /* CP936.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP936.h; sourceTree = ""; }; - 499120F3178EA67F009310D4 /* CP949.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP949.h; sourceTree = ""; }; - 499120F4178EA67F009310D4 /* CP950.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CP950.h; sourceTree = ""; }; - 6E0084A20A19363F00F78605 /* NSPropertyListReader_xml1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPropertyListReader_xml1.h; sourceTree = ""; }; - 6E0084A30A19363F00F78605 /* NSPropertyListReader_xml1.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPropertyListReader_xml1.m; sourceTree = ""; }; - 6E0084CD0A19371600F78605 /* NSPropertyListReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPropertyListReader.h; sourceTree = ""; }; - 6E0084CE0A19371600F78605 /* NSPropertyListReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPropertyListReader.m; sourceTree = ""; }; - 6E28030D0974787200EC542B /* NSArchiver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSArchiver.h; sourceTree = ""; }; - 6E28030E0974787200EC542B /* NSArchiver.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSArchiver.m; sourceTree = ""; }; - 6E280311097478CC00EC542B /* NSArray_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSArray_concrete.h; sourceTree = ""; }; - 6E280312097478CC00EC542B /* NSArray_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSArray_concrete.m; sourceTree = ""; }; - 6E280313097478CC00EC542B /* NSArray_placeholder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSArray_placeholder.h; sourceTree = ""; }; - 6E280314097478CC00EC542B /* NSArray_placeholder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSArray_placeholder.m; sourceTree = ""; }; - 6E280315097478CC00EC542B /* NSArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSArray.h; sourceTree = ""; }; - 6E280316097478CC00EC542B /* NSArray.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSArray.m; sourceTree = ""; }; - 6E280317097478CC00EC542B /* NSEnumerator_array.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSEnumerator_array.h; sourceTree = ""; }; - 6E280318097478CC00EC542B /* NSEnumerator_array.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSEnumerator_array.m; sourceTree = ""; }; - 6E280319097478CC00EC542B /* NSEnumerator_arrayReverse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSEnumerator_arrayReverse.h; sourceTree = ""; }; - 6E28031A097478CC00EC542B /* NSEnumerator_arrayReverse.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSEnumerator_arrayReverse.m; sourceTree = ""; }; - 6E28031B097478CC00EC542B /* NSMutableArray_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableArray_concrete.h; sourceTree = ""; }; - 6E28031C097478CC00EC542B /* NSMutableArray_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableArray_concrete.m; sourceTree = ""; }; - 6E28031D097478CC00EC542B /* NSMutableArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableArray.h; sourceTree = ""; }; - 6E28031E097478CC00EC542B /* NSMutableArray.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableArray.m; sourceTree = ""; }; - 6E28034C09747ABE00EC542B /* NSAttributedString_manyAttributes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAttributedString_manyAttributes.h; sourceTree = ""; }; - 6E28034D09747ABE00EC542B /* NSAttributedString_manyAttributes.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAttributedString_manyAttributes.m; sourceTree = ""; }; - 6E28034E09747ABE00EC542B /* NSAttributedString_nilAttributes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAttributedString_nilAttributes.h; sourceTree = ""; }; - 6E28034F09747ABE00EC542B /* NSAttributedString_nilAttributes.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAttributedString_nilAttributes.m; sourceTree = ""; }; - 6E28035009747ABE00EC542B /* NSAttributedString_oneAttribute.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAttributedString_oneAttribute.h; sourceTree = ""; }; - 6E28035109747ABE00EC542B /* NSAttributedString_oneAttribute.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAttributedString_oneAttribute.m; sourceTree = ""; }; - 6E28035209747ABE00EC542B /* NSAttributedString_placeholder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAttributedString_placeholder.h; sourceTree = ""; }; - 6E28035309747ABE00EC542B /* NSAttributedString_placeholder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAttributedString_placeholder.m; sourceTree = ""; }; - 6E28035409747ABE00EC542B /* NSAttributedString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAttributedString.h; sourceTree = ""; }; - 6E28035509747ABE00EC542B /* NSAttributedString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAttributedString.m; sourceTree = ""; }; - 6E28035609747ABE00EC542B /* NSMutableAttributedString_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableAttributedString_concrete.h; sourceTree = ""; }; - 6E28035709747ABE00EC542B /* NSMutableAttributedString_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableAttributedString_concrete.m; sourceTree = ""; }; - 6E28035809747ABE00EC542B /* NSMutableAttributedString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableAttributedString.h; sourceTree = ""; }; - 6E28035909747ABE00EC542B /* NSMutableAttributedString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableAttributedString.m; sourceTree = ""; }; - 6E28035A09747ABE00EC542B /* NSMutableString_proxyToMutableAttributedString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableString_proxyToMutableAttributedString.h; sourceTree = ""; }; - 6E28035B09747ABE00EC542B /* NSMutableString_proxyToMutableAttributedString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableString_proxyToMutableAttributedString.m; sourceTree = ""; }; - 6E28035C09747ABE00EC542B /* NSRangeEntries.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSRangeEntries.h; sourceTree = ""; }; - 6E28035D09747ABE00EC542B /* NSRangeEntries.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSRangeEntries.m; sourceTree = ""; }; - 6E28037009747ADF00EC542B /* NSAutoreleasePool-private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSAutoreleasePool-private.h"; sourceTree = ""; }; - 6E28037109747ADF00EC542B /* NSAutoreleasePool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAutoreleasePool.h; sourceTree = ""; }; - 6E28037209747ADF00EC542B /* NSAutoreleasePool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAutoreleasePool.m; sourceTree = ""; }; - 6E28037609747AFA00EC542B /* NSData_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSData_concrete.h; sourceTree = ""; }; - 6E28037709747AFA00EC542B /* NSData_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSData_concrete.m; sourceTree = ""; }; - 6E28037809747AFA00EC542B /* NSData_mapped.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSData_mapped.h; sourceTree = ""; }; - 6E28037909747AFA00EC542B /* NSData_mapped.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSData_mapped.m; sourceTree = ""; }; - 6E28037A09747AFA00EC542B /* NSData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSData.h; sourceTree = ""; }; - 6E28037B09747AFA00EC542B /* NSData.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSData.m; sourceTree = ""; }; - 6E28037C09747AFA00EC542B /* NSMutableData_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableData_concrete.h; sourceTree = ""; }; - 6E28037D09747AFA00EC542B /* NSMutableData_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableData_concrete.m; sourceTree = ""; }; - 6E28037E09747AFA00EC542B /* NSMutableData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableData.h; sourceTree = ""; }; - 6E28037F09747AFA00EC542B /* NSMutableData.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableData.m; sourceTree = ""; }; - 6E28038A09747B1500EC542B /* NSDictionary_mapTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDictionary_mapTable.h; sourceTree = ""; }; - 6E28038B09747B1500EC542B /* NSDictionary_mapTable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDictionary_mapTable.m; sourceTree = ""; }; - 6E28038C09747B1500EC542B /* NSDictionary.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDictionary.h; sourceTree = ""; }; - 6E28038D09747B1500EC542B /* NSDictionary.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDictionary.m; sourceTree = ""; }; - 6E28038E09747B1500EC542B /* NSEnumerator_dictionaryKeys.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSEnumerator_dictionaryKeys.h; sourceTree = ""; }; - 6E28038F09747B1500EC542B /* NSEnumerator_dictionaryKeys.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSEnumerator_dictionaryKeys.m; sourceTree = ""; }; - 6E28039009747B1500EC542B /* NSEnumerator_dictionaryObjects.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSEnumerator_dictionaryObjects.h; sourceTree = ""; }; - 6E28039109747B1500EC542B /* NSEnumerator_dictionaryObjects.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSEnumerator_dictionaryObjects.m; sourceTree = ""; }; - 6E28039209747B1500EC542B /* NSMutableDictionary_mapTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableDictionary_mapTable.h; sourceTree = ""; }; - 6E28039309747B1500EC542B /* NSMutableDictionary_mapTable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableDictionary_mapTable.m; sourceTree = ""; }; - 6E28039409747B1500EC542B /* NSMutableDictionary.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableDictionary.h; sourceTree = ""; }; - 6E28039509747B1500EC542B /* NSMutableDictionary.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableDictionary.m; sourceTree = ""; }; - 6E2803BA09747B6200EC542B /* NSException.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSException.h; sourceTree = ""; }; - 6E2803BB09747B6200EC542B /* NSException.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSException.m; sourceTree = ""; }; - 6E2803BE09747B6200EC542B /* NSRaise.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSRaise.h; sourceTree = ""; }; - 6E2803BF09747B6200EC542B /* NSRaise.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSRaise.m; sourceTree = ""; }; - 6E2803C609747B7100EC542B /* NSLock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSLock.h; sourceTree = ""; }; - 6E2803C709747B7100EC542B /* NSLock.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSLock.m; sourceTree = ""; }; - 6E2803DE09747B8600EC542B /* NSNotification_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNotification_concrete.h; path = NSNotification/NSNotification_concrete.h; sourceTree = ""; }; - 6E2803DF09747B8600EC542B /* NSNotification_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNotification_concrete.m; path = NSNotification/NSNotification_concrete.m; sourceTree = ""; }; - 6E2803E009747B8600EC542B /* NSNotification.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNotification.h; path = NSNotification/NSNotification.h; sourceTree = ""; }; - 6E2803E109747B8600EC542B /* NSNotification.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNotification.m; path = NSNotification/NSNotification.m; sourceTree = ""; }; - 6E2803E609747B9100EC542B /* NSNotificationCenter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNotificationCenter.h; path = NSNotificationCenter/NSNotificationCenter.h; sourceTree = ""; }; - 6E2803E709747B9100EC542B /* NSNotificationCenter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNotificationCenter.m; path = NSNotificationCenter/NSNotificationCenter.m; sourceTree = ""; }; - 6E2803E809747B9100EC542B /* NSNotificationObserver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNotificationObserver.h; path = NSNotificationCenter/NSNotificationObserver.h; sourceTree = ""; }; - 6E2803E909747B9100EC542B /* NSNotificationObserver.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNotificationObserver.m; path = NSNotificationCenter/NSNotificationObserver.m; sourceTree = ""; }; - 6E2803EA09747B9100EC542B /* NSObjectToObservers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSObjectToObservers.h; path = NSNotificationCenter/NSObjectToObservers.h; sourceTree = ""; }; - 6E2803EB09747B9100EC542B /* NSObjectToObservers.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSObjectToObservers.m; path = NSNotificationCenter/NSObjectToObservers.m; sourceTree = ""; }; - 6E2803F209747BAA00EC542B /* NSNotificationAndModes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNotificationAndModes.h; path = NSNotificationQueue/NSNotificationAndModes.h; sourceTree = ""; }; - 6E2803F309747BAA00EC542B /* NSNotificationAndModes.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNotificationAndModes.m; path = NSNotificationQueue/NSNotificationAndModes.m; sourceTree = ""; }; - 6E2803F409747BAA00EC542B /* NSNotificationQueue-Private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "NSNotificationQueue-Private.h"; path = "NSNotificationQueue/NSNotificationQueue-Private.h"; sourceTree = ""; }; - 6E2803F509747BAA00EC542B /* NSNotificationQueue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNotificationQueue.h; path = NSNotificationQueue/NSNotificationQueue.h; sourceTree = ""; }; - 6E2803F609747BAA00EC542B /* NSNotificationQueue.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNotificationQueue.m; path = NSNotificationQueue/NSNotificationQueue.m; sourceTree = ""; }; - 6E2803FC09747BB300EC542B /* NSNumber_BOOL.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_BOOL.h; path = NSNumber/NSNumber_BOOL.h; sourceTree = ""; }; - 6E2803FD09747BB300EC542B /* NSNumber_BOOL.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_BOOL.m; path = NSNumber/NSNumber_BOOL.m; sourceTree = ""; }; - 6E2803FE09747BB300EC542B /* NSNumber_char.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_char.h; path = NSNumber/NSNumber_char.h; sourceTree = ""; }; - 6E2803FF09747BB300EC542B /* NSNumber_char.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_char.m; path = NSNumber/NSNumber_char.m; sourceTree = ""; }; - 6E28040009747BB300EC542B /* NSNumber_double.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_double.h; path = NSNumber/NSNumber_double.h; sourceTree = ""; }; - 6E28040109747BB300EC542B /* NSNumber_double.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_double.m; path = NSNumber/NSNumber_double.m; sourceTree = ""; }; - 6E28040209747BB300EC542B /* NSNumber_float.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_float.h; path = NSNumber/NSNumber_float.h; sourceTree = ""; }; - 6E28040309747BB300EC542B /* NSNumber_float.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_float.m; path = NSNumber/NSNumber_float.m; sourceTree = ""; }; - 6E28040409747BB300EC542B /* NSNumber_int.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_int.h; path = NSNumber/NSNumber_int.h; sourceTree = ""; }; - 6E28040509747BB300EC542B /* NSNumber_int.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_int.m; path = NSNumber/NSNumber_int.m; sourceTree = ""; }; - 6E28040609747BB300EC542B /* NSNumber_long.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_long.h; path = NSNumber/NSNumber_long.h; sourceTree = ""; }; - 6E28040709747BB300EC542B /* NSNumber_long.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_long.m; path = NSNumber/NSNumber_long.m; sourceTree = ""; }; - 6E28040809747BB300EC542B /* NSNumber_longLong.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_longLong.h; path = NSNumber/NSNumber_longLong.h; sourceTree = ""; }; - 6E28040909747BB300EC542B /* NSNumber_longLong.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_longLong.m; path = NSNumber/NSNumber_longLong.m; sourceTree = ""; }; - 6E28040A09747BB300EC542B /* NSNumber_placeholder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_placeholder.h; path = NSNumber/NSNumber_placeholder.h; sourceTree = ""; }; - 6E28040B09747BB300EC542B /* NSNumber_placeholder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_placeholder.m; path = NSNumber/NSNumber_placeholder.m; sourceTree = ""; }; - 6E28040C09747BB300EC542B /* NSNumber_short.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_short.h; path = NSNumber/NSNumber_short.h; sourceTree = ""; }; - 6E28040D09747BB300EC542B /* NSNumber_short.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_short.m; path = NSNumber/NSNumber_short.m; sourceTree = ""; }; - 6E28040E09747BB300EC542B /* NSNumber_unsignedChar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_unsignedChar.h; path = NSNumber/NSNumber_unsignedChar.h; sourceTree = ""; }; - 6E28040F09747BB300EC542B /* NSNumber_unsignedChar.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_unsignedChar.m; path = NSNumber/NSNumber_unsignedChar.m; sourceTree = ""; }; - 6E28041009747BB300EC542B /* NSNumber_unsignedInt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_unsignedInt.h; path = NSNumber/NSNumber_unsignedInt.h; sourceTree = ""; }; - 6E28041109747BB300EC542B /* NSNumber_unsignedInt.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_unsignedInt.m; path = NSNumber/NSNumber_unsignedInt.m; sourceTree = ""; }; - 6E28041209747BB300EC542B /* NSNumber_unsignedLong.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_unsignedLong.h; path = NSNumber/NSNumber_unsignedLong.h; sourceTree = ""; }; - 6E28041309747BB300EC542B /* NSNumber_unsignedLong.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_unsignedLong.m; path = NSNumber/NSNumber_unsignedLong.m; sourceTree = ""; }; - 6E28041409747BB300EC542B /* NSNumber_unsignedLongLong.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_unsignedLongLong.h; path = NSNumber/NSNumber_unsignedLongLong.h; sourceTree = ""; }; - 6E28041509747BB300EC542B /* NSNumber_unsignedLongLong.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_unsignedLongLong.m; path = NSNumber/NSNumber_unsignedLongLong.m; sourceTree = ""; }; - 6E28041609747BB300EC542B /* NSNumber_unsignedShort.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber_unsignedShort.h; path = NSNumber/NSNumber_unsignedShort.h; sourceTree = ""; }; - 6E28041709747BB300EC542B /* NSNumber_unsignedShort.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber_unsignedShort.m; path = NSNumber/NSNumber_unsignedShort.m; sourceTree = ""; }; - 6E28041809747BB300EC542B /* NSNumber.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSNumber.h; path = NSNumber/NSNumber.h; sourceTree = ""; }; - 6E28041909747BB300EC542B /* NSNumber.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSNumber.m; path = NSNumber/NSNumber.m; sourceTree = ""; }; - 6E28043809747BBE00EC542B /* NSObject.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSObject.h; sourceTree = ""; }; - 6E28043909747BBE00EC542B /* NSObject.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSObject.m; sourceTree = ""; }; - 6E28043B09747BBE00EC542B /* NSZombieObject.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSZombieObject.h; sourceTree = ""; }; - 6E28043C09747BBE00EC542B /* NSZombieObject.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSZombieObject.m; sourceTree = ""; }; - 6E28044209747BCB00EC542B /* NSPropertyListReader_vintage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPropertyListReader_vintage.h; sourceTree = ""; }; - 6E28044309747BCB00EC542B /* NSPropertyListReader_vintage.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPropertyListReader_vintage.m; sourceTree = ""; }; - 6E28044409747BCB00EC542B /* NSPropertyListWriter_vintage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPropertyListWriter_vintage.h; sourceTree = ""; }; - 6E28044509747BCB00EC542B /* NSPropertyListWriter_vintage.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPropertyListWriter_vintage.m; sourceTree = ""; }; - 6E28044A09747BD100EC542B /* NSDelayedPerform.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSDelayedPerform.h; path = NSRunLoop/NSDelayedPerform.h; sourceTree = ""; }; - 6E28044B09747BD100EC542B /* NSDelayedPerform.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSDelayedPerform.m; path = NSRunLoop/NSDelayedPerform.m; sourceTree = ""; }; - 6E28044C09747BD100EC542B /* NSOrderedPerform.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSOrderedPerform.h; path = NSRunLoop/NSOrderedPerform.h; sourceTree = ""; }; - 6E28044D09747BD100EC542B /* NSOrderedPerform.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSOrderedPerform.m; path = NSRunLoop/NSOrderedPerform.m; sourceTree = ""; }; - 6E28044E09747BD100EC542B /* NSRunLoop-InputSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "NSRunLoop-InputSource.h"; path = "NSRunLoop/NSRunLoop-InputSource.h"; sourceTree = ""; }; - 6E28044F09747BD100EC542B /* NSRunLoop.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSRunLoop.h; path = NSRunLoop/NSRunLoop.h; sourceTree = ""; }; - 6E28045009747BD100EC542B /* NSRunLoop.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSRunLoop.m; path = NSRunLoop/NSRunLoop.m; sourceTree = ""; }; - 6E28045109747BD100EC542B /* NSRunLoopState.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSRunLoopState.h; path = NSRunLoop/NSRunLoopState.h; sourceTree = ""; }; - 6E28045209747BD100EC542B /* NSRunLoopState.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSRunLoopState.m; path = NSRunLoop/NSRunLoopState.m; sourceTree = ""; }; - 6E28045C09747BD900EC542B /* NSScanner_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSScanner_concrete.h; path = NSScanner/NSScanner_concrete.h; sourceTree = ""; }; - 6E28045D09747BD900EC542B /* NSScanner_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSScanner_concrete.m; path = NSScanner/NSScanner_concrete.m; sourceTree = ""; }; - 6E28045E09747BD900EC542B /* NSScanner.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSScanner.h; path = NSScanner/NSScanner.h; sourceTree = ""; }; - 6E28045F09747BD900EC542B /* NSScanner.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSScanner.m; path = NSScanner/NSScanner.m; sourceTree = ""; }; - 6E28046409747BE200EC542B /* NSCountedSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSCountedSet.h; path = NSSet/NSCountedSet.h; sourceTree = ""; }; - 6E28046509747BE200EC542B /* NSCountedSet.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSCountedSet.m; path = NSSet/NSCountedSet.m; sourceTree = ""; }; - 6E28046609747BE200EC542B /* NSEnumerator_set.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSEnumerator_set.h; path = NSSet/NSEnumerator_set.h; sourceTree = ""; }; - 6E28046709747BE200EC542B /* NSEnumerator_set.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSEnumerator_set.m; path = NSSet/NSEnumerator_set.m; sourceTree = ""; }; - 6E28046809747BE200EC542B /* NSInlineSetTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSInlineSetTable.h; path = NSSet/NSInlineSetTable.h; sourceTree = ""; }; - 6E28046909747BE200EC542B /* NSInlineSetTable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSInlineSetTable.m; path = NSSet/NSInlineSetTable.m; sourceTree = ""; }; - 6E28046A09747BE200EC542B /* NSMutableSet_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSMutableSet_concrete.h; path = NSSet/NSMutableSet_concrete.h; sourceTree = ""; }; - 6E28046B09747BE200EC542B /* NSMutableSet_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSMutableSet_concrete.m; path = NSSet/NSMutableSet_concrete.m; sourceTree = ""; }; - 6E28046C09747BE200EC542B /* NSMutableSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSMutableSet.h; path = NSSet/NSMutableSet.h; sourceTree = ""; }; - 6E28046D09747BE200EC542B /* NSMutableSet.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSMutableSet.m; path = NSSet/NSMutableSet.m; sourceTree = ""; }; - 6E28046E09747BE200EC542B /* NSSet_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSSet_concrete.h; path = NSSet/NSSet_concrete.h; sourceTree = ""; }; - 6E28046F09747BE200EC542B /* NSSet_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSSet_concrete.m; path = NSSet/NSSet_concrete.m; sourceTree = ""; }; - 6E28047009747BE200EC542B /* NSSet_placeholder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSSet_placeholder.h; path = NSSet/NSSet_placeholder.h; sourceTree = ""; }; - 6E28047109747BE200EC542B /* NSSet_placeholder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSSet_placeholder.m; path = NSSet/NSSet_placeholder.m; sourceTree = ""; }; - 6E28047209747BE200EC542B /* NSSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSSet.h; path = NSSet/NSSet.h; sourceTree = ""; }; - 6E28047309747BE200EC542B /* NSSet.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSSet.m; path = NSSet/NSSet.m; sourceTree = ""; }; - 6E28048409747BED00EC542B /* NSInputStream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSInputStream.h; sourceTree = ""; }; - 6E28048509747BED00EC542B /* NSInputStream.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSInputStream.m; sourceTree = ""; }; - 6E28048609747BED00EC542B /* NSOutputStream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSOutputStream.h; sourceTree = ""; }; - 6E28048709747BED00EC542B /* NSOutputStream.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSOutputStream.m; sourceTree = ""; }; - 6E28048809747BED00EC542B /* NSStream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSStream.h; sourceTree = ""; }; - 6E28048909747BED00EC542B /* NSStream.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSStream.m; sourceTree = ""; }; - 6E28049209747BF800EC542B /* NSConstantString-Impl.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSConstantString-Impl.m"; sourceTree = ""; }; - 6E28049309747BF800EC542B /* NSString_cString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_cString.h; sourceTree = ""; }; - 6E28049409747BF800EC542B /* NSString_cString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_cString.m; sourceTree = ""; }; - 6E28049509747BF800EC542B /* NSString_isoLatin1.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_isoLatin1.h; sourceTree = ""; }; - 6E28049609747BF800EC542B /* NSString_isoLatin1.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_isoLatin1.m; sourceTree = ""; }; - 6E28049909747BF800EC542B /* NSMutableString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableString.h; sourceTree = ""; }; - 6E28049A09747BF800EC542B /* NSMutableString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableString.m; sourceTree = ""; }; - 6E28049C09747BF800EC542B /* NSMutableString_unicodePtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableString_unicodePtr.h; sourceTree = ""; }; - 6E28049D09747BF800EC542B /* NSMutableString_unicodePtr.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableString_unicodePtr.m; sourceTree = ""; }; - 6E28049E09747BF800EC542B /* NSString_nextstepCString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_nextstepCString.h; sourceTree = ""; }; - 6E28049F09747BF800EC542B /* NSString_nextstepCString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_nextstepCString.m; sourceTree = ""; }; - 6E2804A009747BF800EC542B /* NSString_nextstep.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_nextstep.h; sourceTree = ""; }; - 6E2804A109747BF800EC542B /* NSString_nextstep.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_nextstep.m; sourceTree = ""; }; - 6E2804A209747BF800EC542B /* NSPathUtilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPathUtilities.h; sourceTree = ""; }; - 6E2804A309747BF800EC542B /* NSPathUtilities.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPathUtilities.m; sourceTree = ""; }; - 6E2804A409747BF800EC542B /* NSString_placeholder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_placeholder.h; sourceTree = ""; }; - 6E2804A509747BF800EC542B /* NSString_placeholder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_placeholder.m; sourceTree = ""; }; - 6E2804A609747BF800EC542B /* NSString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString.h; sourceTree = ""; }; - 6E2804A709747BF800EC542B /* NSString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString.m; sourceTree = ""; }; - 6E2804A809747BF800EC542B /* NSStringFileIO.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSStringFileIO.h; sourceTree = ""; }; - 6E2804A909747BF800EC542B /* NSStringFileIO.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSStringFileIO.m; sourceTree = ""; }; - 6E2804AA09747BF800EC542B /* NSStringFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSStringFormatter.h; sourceTree = ""; }; - 6E2804AB09747BF800EC542B /* NSStringFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSStringFormatter.m; sourceTree = ""; }; - 6E2804AC09747BF800EC542B /* NSStringHashing.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSStringHashing.h; sourceTree = ""; }; - 6E2804AD09747BF800EC542B /* NSString_unicode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_unicode.h; sourceTree = ""; }; - 6E2804AE09747BF800EC542B /* NSString_unicode.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_unicode.m; sourceTree = ""; }; - 6E2804AF09747BF800EC542B /* NSString_unicodePtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_unicodePtr.h; sourceTree = ""; }; - 6E2804B009747BF800EC542B /* NSString_unicodePtr.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_unicodePtr.m; sourceTree = ""; }; - 6E2804B109747BF800EC542B /* NSStringUTF8.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSStringUTF8.h; sourceTree = ""; }; - 6E2804B209747BF800EC542B /* NSStringUTF8.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSStringUTF8.m; sourceTree = ""; }; - 6E2804B309747BF800EC542B /* NSStringSymbol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSStringSymbol.h; sourceTree = ""; }; - 6E2804B409747BF800EC542B /* NSStringSymbol.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSStringSymbol.m; sourceTree = ""; }; - 6E2804B509747BF800EC542B /* NSUnicodeCaseMapping.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSUnicodeCaseMapping.h; sourceTree = ""; }; - 6E2804B609747BF800EC542B /* NSUnicodeCaseMapping.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSUnicodeCaseMapping.m; sourceTree = ""; }; - 6E2804B709747BF800EC542B /* unibuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = unibuffer.h; sourceTree = ""; }; - 6E2804B809747BF800EC542B /* unibuffer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = unibuffer.m; sourceTree = ""; }; - 6E2804E209747C0500EC542B /* NSStringsFileParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSStringsFileParser.h; path = NSStringsFileFormat/NSStringsFileParser.h; sourceTree = ""; }; - 6E2804E309747C0500EC542B /* NSStringsFileParser.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSStringsFileParser.m; path = NSStringsFileFormat/NSStringsFileParser.m; sourceTree = ""; }; - 6E2804E609747C1A00EC542B /* NSThread-Private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = "NSThread-Private.h"; path = "NSThread/NSThread-Private.h"; sourceTree = ""; }; - 6E2804E709747C1A00EC542B /* NSThread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSThread.h; path = NSThread/NSThread.h; sourceTree = ""; }; - 6E2804E809747C1A00EC542B /* NSThread.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSThread.m; path = NSThread/NSThread.m; sourceTree = ""; }; - 6E2804EC09747C4800EC542B /* NSTimer_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSTimer_concrete.h; path = NSTimer/NSTimer_concrete.h; sourceTree = ""; }; - 6E2804ED09747C4800EC542B /* NSTimer_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSTimer_concrete.m; path = NSTimer/NSTimer_concrete.m; sourceTree = ""; }; - 6E2804EE09747C4800EC542B /* NSTimer_invocation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSTimer_invocation.h; path = NSTimer/NSTimer_invocation.h; sourceTree = ""; }; - 6E2804EF09747C4800EC542B /* NSTimer_invocation.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSTimer_invocation.m; path = NSTimer/NSTimer_invocation.m; sourceTree = ""; }; - 6E2804F009747C4800EC542B /* NSTimer_targetAction.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSTimer_targetAction.h; path = NSTimer/NSTimer_targetAction.h; sourceTree = ""; }; - 6E2804F109747C4800EC542B /* NSTimer_targetAction.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSTimer_targetAction.m; path = NSTimer/NSTimer_targetAction.m; sourceTree = ""; }; - 6E2804F209747C4800EC542B /* NSTimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSTimer.h; path = NSTimer/NSTimer.h; sourceTree = ""; }; - 6E2804F309747C4800EC542B /* NSTimer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSTimer.m; path = NSTimer/NSTimer.m; sourceTree = ""; }; - 6E2804FC09747C5B00EC542B /* NSUndoGroup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSUndoGroup.h; path = NSUndoManager/NSUndoGroup.h; sourceTree = ""; }; - 6E2804FD09747C5B00EC542B /* NSUndoGroup.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSUndoGroup.m; path = NSUndoManager/NSUndoGroup.m; sourceTree = ""; }; - 6E2804FE09747C5B00EC542B /* NSUndoManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSUndoManager.h; path = NSUndoManager/NSUndoManager.h; sourceTree = ""; }; - 6E2804FF09747C5B00EC542B /* NSUndoManager.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSUndoManager.m; path = NSUndoManager/NSUndoManager.m; sourceTree = ""; }; - 6E28050409747C6800EC542B /* NSPersistantDomain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSPersistantDomain.h; path = NSUserDefaults/NSPersistantDomain.h; sourceTree = ""; }; - 6E28050509747C6800EC542B /* NSPersistantDomain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSPersistantDomain.m; path = NSUserDefaults/NSPersistantDomain.m; sourceTree = ""; }; - 6E28050609747C6800EC542B /* NSUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSUserDefaults.h; path = NSUserDefaults/NSUserDefaults.h; sourceTree = ""; }; - 6E28050709747C6800EC542B /* NSUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSUserDefaults.m; path = NSUserDefaults/NSUserDefaults.m; sourceTree = ""; }; - 6E28050C09747C7300EC542B /* NSValue_concrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSValue_concrete.h; path = NSValue/NSValue_concrete.h; sourceTree = ""; }; - 6E28050D09747C7300EC542B /* NSValue_concrete.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSValue_concrete.m; path = NSValue/NSValue_concrete.m; sourceTree = ""; }; - 6E28050E09747C7300EC542B /* NSValue_nonRetainedObject.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSValue_nonRetainedObject.h; path = NSValue/NSValue_nonRetainedObject.h; sourceTree = ""; }; - 6E28050F09747C7300EC542B /* NSValue_nonRetainedObject.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSValue_nonRetainedObject.m; path = NSValue/NSValue_nonRetainedObject.m; sourceTree = ""; }; - 6E28051009747C7300EC542B /* NSValue_placeholder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSValue_placeholder.h; path = NSValue/NSValue_placeholder.h; sourceTree = ""; }; - 6E28051109747C7300EC542B /* NSValue_placeholder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSValue_placeholder.m; path = NSValue/NSValue_placeholder.m; sourceTree = ""; }; - 6E28051209747C7300EC542B /* NSValue_pointer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSValue_pointer.h; path = NSValue/NSValue_pointer.h; sourceTree = ""; }; - 6E28051309747C7300EC542B /* NSValue_pointer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSValue_pointer.m; path = NSValue/NSValue_pointer.m; sourceTree = ""; }; - 6E28051409747C7300EC542B /* NSValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSValue.h; path = NSValue/NSValue.h; sourceTree = ""; }; - 6E28051509747C7300EC542B /* NSValue.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSValue.m; path = NSValue/NSValue.m; sourceTree = ""; }; - 6E28052009747C7E00EC542B /* NSVirtualMemory.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSVirtualMemory.m; path = NSZone/NSVirtualMemory.m; sourceTree = ""; }; - 6E28052109747C7E00EC542B /* NSZone.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSZone.h; path = NSZone/NSZone.h; sourceTree = ""; }; - 6E28052209747C7E00EC542B /* NSZone.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSZone.m; path = NSZone/NSZone.m; sourceTree = ""; }; - 6E28052609747C8900EC542B /* objc_functions.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = objc_functions.c; sourceTree = ""; }; - 6E28052709747C8900EC542B /* ObjCArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ObjCArray.h; sourceTree = ""; }; - 6E28052809747C8900EC542B /* ObjCArray.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ObjCArray.c; sourceTree = ""; }; - 6E28052909747C8900EC542B /* objc_class.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = objc_class.h; sourceTree = ""; }; - 6E28052A09747C8900EC542B /* objc_class.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = objc_class.c; sourceTree = ""; }; - 6E28052B09747C8900EC542B /* ObjCDynamicModule.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ObjCDynamicModule.h; sourceTree = ""; }; - 6E28052C09747C8900EC542B /* ObjCDynamicModule.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ObjCDynamicModule.c; sourceTree = ""; }; - 6E28052F09747C8900EC542B /* ObjCHashTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ObjCHashTable.h; sourceTree = ""; }; - 6E28053009747C8900EC542B /* ObjCHashTable.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ObjCHashTable.c; sourceTree = ""; }; - 6E28053309747C8900EC542B /* ObjCModule.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ObjCModule.h; sourceTree = ""; }; - 6E28053409747C8900EC542B /* ObjCModule.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = ObjCModule.c; sourceTree = ""; }; - 6E28053509747C8900EC542B /* objc_sel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = objc_sel.h; sourceTree = ""; }; - 6E28053609747C8900EC542B /* objc_sel.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = objc_sel.c; sourceTree = ""; }; - 6E28053F09747C8900EC542B /* Protocol.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Protocol.m; sourceTree = ""; }; - 6E28055D09747CC300EC542B /* msgSendv-windows.s */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.asm; path = "msgSendv-windows.s"; sourceTree = ""; }; - 6E28055F09747CCA00EC542B /* msgSendv-solaris.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 30; path = "msgSendv-solaris.m"; sourceTree = ""; }; - 6E28056B09747CE100EC542B /* NSMemoryFunctions_linux.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSMemoryFunctions_linux.m; path = platform_linux/NSMemoryFunctions_linux.m; sourceTree = ""; }; - 6E28057509747CEE00EC542B /* NSConstantString.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSConstantString.m; path = ../platform_posix/NSConstantString.m; sourceTree = ""; }; - 6E28057609747CEE00EC542B /* NSFileHandle_posix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSFileHandle_posix.h; path = platform_posix/NSFileHandle_posix.h; sourceTree = ""; }; - 6E28057709747CEE00EC542B /* NSFileHandle_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSFileHandle_posix.m; path = platform_posix/NSFileHandle_posix.m; sourceTree = ""; }; - 6E28057809747CEE00EC542B /* NSFileManager_posix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSFileManager_posix.h; path = platform_posix/NSFileManager_posix.h; sourceTree = ""; }; - 6E28057909747CEE00EC542B /* NSFileManager_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSFileManager_posix.m; path = platform_posix/NSFileManager_posix.m; sourceTree = ""; }; - 6E28057A09747CEE00EC542B /* NSLock_posix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSLock_posix.h; path = platform_posix/NSLock_posix.h; sourceTree = ""; }; - 6E28057B09747CEE00EC542B /* NSLock_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSLock_posix.m; path = platform_posix/NSLock_posix.m; sourceTree = ""; }; - 6E28057C09747CEE00EC542B /* NSMemoryFunctions_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSMemoryFunctions_posix.m; path = platform_posix/NSMemoryFunctions_posix.m; sourceTree = ""; }; - 6E28057D09747CEE00EC542B /* NSPersistantDomain_posix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSPersistantDomain_posix.h; path = platform_posix/NSPersistantDomain_posix.h; sourceTree = ""; }; - 6E28057E09747CEE00EC542B /* NSPersistantDomain_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSPersistantDomain_posix.m; path = platform_posix/NSPersistantDomain_posix.m; sourceTree = ""; }; - 6E28057F09747CEE00EC542B /* NSPipe_posix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSPipe_posix.h; path = platform_posix/NSPipe_posix.h; sourceTree = ""; }; - 6E28058009747CEE00EC542B /* NSPipe_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSPipe_posix.m; path = platform_posix/NSPipe_posix.m; sourceTree = ""; }; - 6E28058109747CEE00EC542B /* NSPlatform_posix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSPlatform_posix.h; path = platform_posix/NSPlatform_posix.h; sourceTree = ""; }; - 6E28058209747CEE00EC542B /* NSPlatform_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSPlatform_posix.m; path = platform_posix/NSPlatform_posix.m; sourceTree = ""; }; - 6E28058309747CEE00EC542B /* NSTask_posix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSTask_posix.h; path = platform_posix/NSTask_posix.h; sourceTree = ""; }; - 6E28058409747CEE00EC542B /* NSTask_posix.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSTask_posix.m; path = platform_posix/NSTask_posix.m; sourceTree = ""; }; - 6E28059509747CF900EC542B /* NSPlatform_solaris.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSPlatform_solaris.h; path = platform_solaris/NSPlatform_solaris.h; sourceTree = ""; }; - 6E28059609747CF900EC542B /* NSPlatform_solaris.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSPlatform_solaris.m; path = platform_solaris/NSPlatform_solaris.m; sourceTree = ""; }; - 6E28059909747CF900EC542B /* SolarisMemoryFunctions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SolarisMemoryFunctions.m; path = platform_solaris/SolarisMemoryFunctions.m; sourceTree = ""; }; - 6E28059F09747D0400EC542B /* dllmain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = dllmain.m; sourceTree = ""; }; - 6E2805A309747D0400EC542B /* NSFileHandle_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFileHandle_win32.h; sourceTree = ""; }; - 6E2805A409747D0400EC542B /* NSFileHandle_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFileHandle_win32.m; sourceTree = ""; }; - 6E2805A509747D0400EC542B /* NSFileManager_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFileManager_win32.h; sourceTree = ""; }; - 6E2805A609747D0400EC542B /* NSFileManager_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFileManager_win32.m; sourceTree = ""; }; - 6E2805A709747D0400EC542B /* NSHandleMonitor_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSHandleMonitor_win32.h; sourceTree = ""; }; - 6E2805A809747D0400EC542B /* NSHandleMonitor_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSHandleMonitor_win32.m; sourceTree = ""; }; - 6E2805A909747D0400EC542B /* NSHandleMonitorSet_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSHandleMonitorSet_win32.h; sourceTree = ""; }; - 6E2805AA09747D0400EC542B /* NSHandleMonitorSet_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSHandleMonitorSet_win32.m; sourceTree = ""; }; - 6E2805AB09747D0400EC542B /* NSLock_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSLock_win32.h; sourceTree = ""; }; - 6E2805AC09747D0400EC542B /* NSLock_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSLock_win32.m; sourceTree = ""; }; - 6E2805AE09747D0400EC542B /* NSMemoryFunctions_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMemoryFunctions_win32.m; sourceTree = ""; }; - 6E2805AF09747D0400EC542B /* NSParentDeathMonitor_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSParentDeathMonitor_win32.h; sourceTree = ""; }; - 6E2805B009747D0400EC542B /* NSParentDeathMonitor_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSParentDeathMonitor_win32.m; sourceTree = ""; }; - 6E2805B109747D0400EC542B /* NSPersistantDomain_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPersistantDomain_win32.h; sourceTree = ""; }; - 6E2805B209747D0400EC542B /* NSPersistantDomain_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPersistantDomain_win32.m; sourceTree = ""; }; - 6E2805B309747D0400EC542B /* NSPipe_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPipe_win32.h; sourceTree = ""; }; - 6E2805B409747D0400EC542B /* NSPipe_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPipe_win32.m; sourceTree = ""; }; - 6E2805B509747D0400EC542B /* NSPlatform_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPlatform_win32.h; sourceTree = ""; }; - 6E2805B609747D0400EC542B /* NSPlatform_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPlatform_win32.m; sourceTree = ""; }; - 6E2805B709747D0400EC542B /* NSReadInBackground_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSReadInBackground_win32.h; sourceTree = ""; }; - 6E2805B809747D0400EC542B /* NSReadInBackground_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSReadInBackground_win32.m; sourceTree = ""; }; - 6E2805BB09747D0400EC542B /* NSString_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSString_win32.h; sourceTree = ""; }; - 6E2805BC09747D0400EC542B /* NSString_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSString_win32.m; sourceTree = ""; }; - 6E2805BD09747D0400EC542B /* NSTask_win32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTask_win32.h; sourceTree = ""; }; - 6E2805BE09747D0400EC542B /* NSTask_win32.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTask_win32.m; sourceTree = ""; }; - 6E2805F309747D5800EC542B /* NSBundle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSBundle.h; sourceTree = ""; }; - 6E2805F409747D5800EC542B /* NSBundle.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSBundle.m; sourceTree = ""; }; - 6E2805F509747D5800EC542B /* NSByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSByteOrder.h; sourceTree = ""; }; - 6E2805F609747D5800EC542B /* NSByteOrder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSByteOrder.m; sourceTree = ""; }; - 6E2805F709747D5800EC542B /* NSCoder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSCoder.h; sourceTree = ""; }; - 6E2805F809747D5800EC542B /* NSCoder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSCoder.m; sourceTree = ""; }; - 6E2805F909747D5800EC542B /* NSDebug.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDebug.h; sourceTree = ""; }; - 6E2805FA09747D5800EC542B /* NSDebug.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDebug.m; sourceTree = ""; }; - 6E2805FB09747D5800EC542B /* NSDirectoryEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDirectoryEnumerator.h; sourceTree = ""; }; - 6E2805FC09747D5800EC542B /* NSDirectoryEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDirectoryEnumerator.m; sourceTree = ""; }; - 6E2805FD09747D5800EC542B /* NSEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSEnumerator.h; sourceTree = ""; }; - 6E2805FE09747D5800EC542B /* NSEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSEnumerator.m; sourceTree = ""; }; - 6E2805FF09747D5800EC542B /* NSFileHandle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFileHandle.h; sourceTree = ""; }; - 6E28060009747D5800EC542B /* NSFileHandle.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFileHandle.m; sourceTree = ""; }; - 6E28060109747D5800EC542B /* NSFileManager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFileManager.h; sourceTree = ""; }; - 6E28060209747D5800EC542B /* NSFileManager.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFileManager.m; sourceTree = ""; }; - 6E28060309747D5800EC542B /* NSFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFormatter.h; sourceTree = ""; }; - 6E28060409747D5800EC542B /* NSFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFormatter.m; sourceTree = ""; }; - 6E28060509747D5800EC542B /* NSGeometry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSGeometry.h; sourceTree = ""; }; - 6E28060609747D5800EC542B /* NSGeometry.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSGeometry.m; sourceTree = ""; }; - 6E28060709747D5800EC542B /* NSHashTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSHashTable.h; sourceTree = ""; }; - 6E28060809747D5800EC542B /* NSHashTable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSHashTable.m; sourceTree = ""; }; - 6E28060909747D5800EC542B /* NSHost.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSHost.h; sourceTree = ""; }; - 6E28060A09747D5800EC542B /* NSHost.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSHost.m; sourceTree = ""; }; - 6E28060B09747D5800EC542B /* NSInputSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSInputSource.h; path = NSRunLoop/NSInputSource.h; sourceTree = ""; }; - 6E28060C09747D5800EC542B /* NSInputSource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSInputSource.m; path = NSRunLoop/NSInputSource.m; sourceTree = ""; }; - 6E28060D09747D5800EC542B /* NSInputSourceSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSInputSourceSet.h; path = NSRunLoop/NSInputSourceSet.h; sourceTree = ""; }; - 6E28060E09747D5800EC542B /* NSInputSourceSet.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSInputSourceSet.m; path = NSRunLoop/NSInputSourceSet.m; sourceTree = ""; }; - 6E28060F09747D5800EC542B /* NSInvocation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSInvocation.h; sourceTree = ""; }; - 6E28061009747D5800EC542B /* NSInvocation.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSInvocation.m; sourceTree = ""; }; - 6E28061109747D5800EC542B /* NSMapTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMapTable.h; sourceTree = ""; }; - 6E28061209747D5800EC542B /* NSMapTable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMapTable.m; sourceTree = ""; }; - 6E28061309747D5800EC542B /* NSMethodSignature.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMethodSignature.h; sourceTree = ""; }; - 6E28061409747D5800EC542B /* NSMethodSignature.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMethodSignature.m; sourceTree = ""; }; - 6E28061509747D5800EC542B /* NSNull.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSNull.h; sourceTree = ""; }; - 6E28061609747D5800EC542B /* NSNull.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSNull.m; sourceTree = ""; }; - 6E28061709747D5800EC542B /* NSNumberFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSNumberFormatter.h; sourceTree = ""; }; - 6E28061809747D5800EC542B /* NSNumberFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSNumberFormatter.m; sourceTree = ""; }; - 6E28061909747D5800EC542B /* NSObjCRuntime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSObjCRuntime.h; sourceTree = ""; }; - 6E28061A09747D5800EC542B /* NSObjCRuntime.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSObjCRuntime.m; sourceTree = ""; }; - 6E28061B09747D5800EC542B /* NSPipe.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPipe.h; sourceTree = ""; }; - 6E28061C09747D5800EC542B /* NSPipe.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPipe.m; sourceTree = ""; }; - 6E28061D09747D5800EC542B /* NSPlatform.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPlatform.h; sourceTree = ""; }; - 6E28061E09747D5800EC542B /* NSPlatform.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPlatform.m; sourceTree = ""; }; - 6E28061F09747D5800EC542B /* NSPortCoder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPortCoder.h; sourceTree = ""; }; - 6E28062009747D5800EC542B /* NSPortCoder.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPortCoder.m; sourceTree = ""; }; - 6E28062109747D5800EC542B /* NSProcessInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSProcessInfo.h; sourceTree = ""; }; - 6E28062209747D5800EC542B /* NSProcessInfo.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSProcessInfo.m; sourceTree = ""; }; - 6E28062309747D5800EC542B /* NSProxy.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSProxy.h; sourceTree = ""; }; - 6E28062409747D5800EC542B /* NSProxy.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSProxy.m; sourceTree = ""; }; - 6E28062509747D5800EC542B /* NSRange.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSRange.h; sourceTree = ""; }; - 6E28062609747D5800EC542B /* NSRange.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSRange.m; sourceTree = ""; }; - 6E28062709747D5800EC542B /* NSTask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTask.h; sourceTree = ""; }; - 6E28062809747D5800EC542B /* NSTask.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTask.m; sourceTree = ""; }; - 6E28062909747D5800EC542B /* NSUnarchiver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSUnarchiver.h; sourceTree = ""; }; - 6E28062A09747D5800EC542B /* NSUnarchiver.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSUnarchiver.m; sourceTree = ""; }; - 6E28066409747DF800EC542B /* NSCharacterSet_bitmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet_bitmap.h; sourceTree = ""; }; - 6E28066509747DF800EC542B /* NSCharacterSet_bitmap.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet_bitmap.m; sourceTree = ""; }; - 6E28066609747DF800EC542B /* NSCharacterSet_range.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet_range.h; sourceTree = ""; }; - 6E28066709747DF900EC542B /* NSCharacterSet_range.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet_range.m; sourceTree = ""; }; - 6E28066809747DF900EC542B /* NSCharacterSet_rangeInverted.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet_rangeInverted.h; sourceTree = ""; }; - 6E28066909747DF900EC542B /* NSCharacterSet_rangeInverted.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet_rangeInverted.m; sourceTree = ""; }; - 6E28066A09747DF900EC542B /* NSCharacterSet_string.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet_string.h; sourceTree = ""; }; - 6E28066B09747DF900EC542B /* NSCharacterSet_string.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet_string.m; sourceTree = ""; }; - 6E28066C09747DF900EC542B /* NSCharacterSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSCharacterSet.h; sourceTree = ""; }; - 6E28066D09747DF900EC542B /* NSCharacterSet.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSCharacterSet.m; sourceTree = ""; }; - 6E28066E09747DF900EC542B /* NSMutableCharacterSet_bitmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableCharacterSet_bitmap.h; sourceTree = ""; }; - 6E28066F09747DF900EC542B /* NSMutableCharacterSet_bitmap.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableCharacterSet_bitmap.m; sourceTree = ""; }; - 6E28067009747DF900EC542B /* NSMutableCharacterSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableCharacterSet.h; sourceTree = ""; }; - 6E28067109747DF900EC542B /* NSMutableCharacterSet.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableCharacterSet.m; sourceTree = ""; }; - 6E28068009747E0A00EC542B /* punctuationCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = punctuationCharacterSet.bitmap; path = NSCharacterSet/punctuationCharacterSet.bitmap; sourceTree = ""; }; - 6E28068109747E0A00EC542B /* uppercaseLetterCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = uppercaseLetterCharacterSet.bitmap; path = NSCharacterSet/uppercaseLetterCharacterSet.bitmap; sourceTree = ""; }; - 6E28068809747E2300EC542B /* alphanumericCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = alphanumericCharacterSet.bitmap; path = NSCharacterSet/alphanumericCharacterSet.bitmap; sourceTree = ""; }; - 6E28068909747E2300EC542B /* bitmapRepresentation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = bitmapRepresentation.h; sourceTree = ""; }; - 6E28068A09747E2300EC542B /* controlCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = controlCharacterSet.bitmap; path = NSCharacterSet/controlCharacterSet.bitmap; sourceTree = ""; }; - 6E28068B09747E2300EC542B /* decimalDigitCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = decimalDigitCharacterSet.bitmap; path = NSCharacterSet/decimalDigitCharacterSet.bitmap; sourceTree = ""; }; - 6E28068C09747E2300EC542B /* letterCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = letterCharacterSet.bitmap; path = NSCharacterSet/letterCharacterSet.bitmap; sourceTree = ""; }; - 6E28068D09747E2300EC542B /* lowercaseLetterCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = lowercaseLetterCharacterSet.bitmap; path = NSCharacterSet/lowercaseLetterCharacterSet.bitmap; sourceTree = ""; }; - 6E28069509747E7B00EC542B /* NSCalendarDate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSCalendarDate.h; path = NSDate/NSCalendarDate.h; sourceTree = ""; }; - 6E28069609747E7B00EC542B /* NSCalendarDate.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSCalendarDate.m; path = NSDate/NSCalendarDate.m; sourceTree = ""; }; - 6E28069709747E7B00EC542B /* NSDate_timeInterval.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSDate_timeInterval.h; path = NSDate/NSDate_timeInterval.h; sourceTree = ""; }; - 6E28069809747E7B00EC542B /* NSDate_timeInterval.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSDate_timeInterval.m; path = NSDate/NSDate_timeInterval.m; sourceTree = ""; }; - 6E28069909747E7B00EC542B /* NSDate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSDate.h; path = NSDate/NSDate.h; sourceTree = ""; }; - 6E28069A09747E7B00EC542B /* NSDate.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSDate.m; path = NSDate/NSDate.m; sourceTree = ""; }; - 6E28069B09747E7B00EC542B /* NSDateFormatter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSDateFormatter.h; path = NSDate/NSDateFormatter.h; sourceTree = ""; }; - 6E28069C09747E7B00EC542B /* NSDateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSDateFormatter.m; path = NSDate/NSDateFormatter.m; sourceTree = ""; }; - 6E2806A609747EA400EC542B /* NSTimeZone_absolute.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTimeZone_absolute.h; sourceTree = ""; }; - 6E2806A709747EA400EC542B /* NSTimeZone_absolute.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTimeZone_absolute.m; sourceTree = ""; }; - 6E2806AA09747EA400EC542B /* NSTimeZoneTransition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTimeZoneTransition.h; sourceTree = ""; }; - 6E2806AB09747EA400EC542B /* NSTimeZoneTransition.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTimeZoneTransition.m; sourceTree = ""; }; - 6E2806AC09747EA400EC542B /* NSTimeZoneType.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTimeZoneType.h; sourceTree = ""; }; - 6E2806AD09747EA400EC542B /* NSTimeZoneType.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTimeZoneType.m; sourceTree = ""; }; - 6E2806B009747EA400EC542B /* NSTimeZone.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTimeZone.h; sourceTree = ""; }; - 6E2806B109747EA400EC542B /* NSTimeZone.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTimeZone.m; sourceTree = ""; }; - 6E2806B209747EA400EC542B /* NSTimeZoneAbbreviations.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist; name = NSTimeZoneAbbreviations.plist; path = NSTimeZone/NSTimeZoneAbbreviations.plist; sourceTree = ""; }; - 6E2806B309747EA400EC542B /* NSTimeZoneRegions.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist; name = NSTimeZoneRegions.plist; path = NSTimeZone/NSTimeZoneRegions.plist; sourceTree = ""; }; - 6E280B2909747F1F00EC542B /* Foundation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Foundation.h; sourceTree = ""; }; - 6E280B2C09747F4900EC542B /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist; name = English; path = English.lproj/NSUserDefaults.plist; sourceTree = ""; }; - 6E8113970A54BBAC000DE3F1 /* msgSendv-linux.s */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.asm; path = "msgSendv-linux.s"; sourceTree = ""; }; - 6E8115B20A55CB99000DE3F1 /* objc_msg_lookup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_msg_lookup.c; sourceTree = ""; }; - 6EAD772F0AAF1283004BCCC9 /* NSInputStream_socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSInputStream_socket.h; sourceTree = ""; }; - 6EAD77300AAF1283004BCCC9 /* NSInputStream_socket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSInputStream_socket.m; sourceTree = ""; }; - 6EAD77390AAF1293004BCCC9 /* NSOutputStream_socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOutputStream_socket.h; sourceTree = ""; }; - 6EAD773A0AAF1293004BCCC9 /* NSOutputStream_socket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOutputStream_socket.m; sourceTree = ""; }; - 6EC4AAE70A34D9B200E8D6CA /* NSKeyedUnarchiver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSKeyedUnarchiver.h; sourceTree = ""; }; - 6EC4AAE80A34D9B200E8D6CA /* NSKeyedUnarchiver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSKeyedUnarchiver.m; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - C64663DB15590E7B00A162B8 /* libmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = libmain.m; sourceTree = ""; }; - C64663DD15590E9400A162B8 /* libmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = libmain.m; sourceTree = ""; }; - C64663DF15590EAF00A162B8 /* libmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = libmain.m; path = platform_linux/libmain.m; sourceTree = ""; }; - C64663E315590EC600A162B8 /* libmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = libmain.m; path = platform_solaris/libmain.m; sourceTree = ""; }; - C6BC3CAF1162303400DFC16C /* NSTimeZone_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTimeZone_win32.h; sourceTree = ""; }; - C6BC3CB01162303400DFC16C /* NSTimeZone_win32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTimeZone_win32.m; sourceTree = ""; }; - C6BC3CB31162305000DFC16C /* NSTimeZone_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSTimeZone_posix.h; path = platform_posix/NSTimeZone_posix.h; sourceTree = ""; }; - C6BC3CB41162305000DFC16C /* NSTimeZone_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSTimeZone_posix.m; path = platform_posix/NSTimeZone_posix.m; sourceTree = ""; }; - C6BC3CC51162308E00DFC16C /* NSTimeZoneWindowsZones.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; name = NSTimeZoneWindowsZones.plist; path = NSTimeZone/NSTimeZoneWindowsZones.plist; sourceTree = ""; }; - C80F9AE00E58BD5400ECD487 /* objc-msgsend.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "objc-msgsend.s"; sourceTree = ""; }; - C816EBED0F0A763500EDC3EB /* NSDarwinString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDarwinString.h; sourceTree = ""; }; - C816EBEE0F0A763500EDC3EB /* NSDarwinString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDarwinString.m; sourceTree = ""; }; - C844CF930DA7EBE500A8F3A2 /* NSRecursiveLock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSRecursiveLock.h; sourceTree = ""; }; - C844CF940DA7EBE500A8F3A2 /* NSRecursiveLock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSRecursiveLock.m; sourceTree = ""; }; - C844CFCE0DA7F21400A8F3A2 /* NSSynchronization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSynchronization.h; sourceTree = ""; }; - C844CFCF0DA7F21400A8F3A2 /* NSSynchronization.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSynchronization.m; sourceTree = ""; }; - C851D86B0E40E0D3001DAB69 /* NSPropertyListWriter_xml1.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPropertyListWriter_xml1.m; sourceTree = ""; }; - C851D86C0E40E0D3001DAB69 /* NSPropertyListWriter_xml1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPropertyListWriter_xml1.h; sourceTree = ""; }; - C89B47350F5C6A4B0070120D /* NSCancelInputSource_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCancelInputSource_win32.h; sourceTree = ""; }; - C89B47360F5C6A4B0070120D /* NSCancelInputSource_win32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCancelInputSource_win32.m; sourceTree = ""; }; - C89B473D0F5C6AB50070120D /* NSCancelInputSource_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSCancelInputSource_posix.h; path = platform_posix/NSCancelInputSource_posix.h; sourceTree = ""; }; - C89B473E0F5C6AB50070120D /* NSCancelInputSource_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSCancelInputSource_posix.m; path = platform_posix/NSCancelInputSource_posix.m; sourceTree = ""; }; - C8B53BD50E6AC7C500E4467E /* objc_debugHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_debugHelpers.h; sourceTree = ""; }; - C8B53BD60E6AC7C500E4467E /* objc_debugHelpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc_debugHelpers.m; sourceTree = ""; }; - C8BAA5710DDEFC6C005C4769 /* objc_size_alignment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_size_alignment.h; sourceTree = ""; }; - C8BAA5720DDEFC6C005C4769 /* objc_size_alignment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc_size_alignment.m; sourceTree = ""; }; - C8C39E000EAB6646002568A3 /* NSConditionLock_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSConditionLock_posix.h; path = platform_posix/NSConditionLock_posix.h; sourceTree = ""; }; - C8C39E010EAB6646002568A3 /* NSConditionLock_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSConditionLock_posix.m; path = platform_posix/NSConditionLock_posix.m; sourceTree = ""; }; - C8C9700E0EBDBC63009CE9BC /* NSConditionLock_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSConditionLock_win32.h; sourceTree = ""; }; - C8C9700F0EBDBC63009CE9BC /* NSConditionLock_win32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSConditionLock_win32.m; sourceTree = ""; }; - CF0F7ABF1AE9E7C1003EA762 /* NSString_isoLatin2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSString_isoLatin2.h; sourceTree = ""; }; - CF0F7AC01AE9E7C1003EA762 /* NSString_isoLatin2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSString_isoLatin2.m; sourceTree = ""; }; - CF0F7AC41AE9EB16003EA762 /* NSBacktraceFunctions_solaris.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSBacktraceFunctions_solaris.m; path = platform_solaris/NSBacktraceFunctions_solaris.m; sourceTree = ""; }; - CF0F7AC61AE9EB23003EA762 /* NSBacktraceFunctions_win32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSBacktraceFunctions_win32.m; sourceTree = ""; }; - CF2819791AF9A5BF00E93CEE /* windows-i386-Foundation.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "windows-i386-Foundation.xcconfig"; path = "../xcconfig/windows-i386-Foundation.xcconfig"; sourceTree = SOURCE_ROOT; }; - CF595A8B1B1ABFB600F7BE40 /* objc_lock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_lock.h; sourceTree = ""; }; - CF652CEE1B116C5D0090D2FE /* objc_log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_log.c; sourceTree = ""; }; - CF652CEF1B116C5D0090D2FE /* objc_log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_log.h; sourceTree = ""; }; - CF652CF01B116C5D0090D2FE /* objc_tls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_tls.c; sourceTree = ""; }; - CF652CF11B116C5D0090D2FE /* objc_tls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_tls.h; sourceTree = ""; }; - CF652CF61B116D180090D2FE /* objc_exception.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc_exception.m; sourceTree = ""; }; - CF652CF81B116D4E0090D2FE /* objc_arc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_arc.c; sourceTree = ""; }; - CF7FA1FF1B18006E00840DB1 /* dyld.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dyld.c; sourceTree = ""; }; - CFB9BAFF1B058BF1001EE95E /* freebsd-i386-Foundation.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-Foundation.xcconfig"; sourceTree = ""; }; - CFB9BB011B058F52001EE95E /* darwin-x86_64-Foundation.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-Foundation.xcconfig"; sourceTree = ""; }; - CFB9BB031B058F84001EE95E /* linux-arm-Foundation.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-Foundation.xcconfig"; sourceTree = ""; }; - CFCEA4681B04318B00B3B087 /* NSPlatform_linux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSPlatform_linux.h; path = platform_linux/NSPlatform_linux.h; sourceTree = ""; }; - CFCEA4691B04318B00B3B087 /* NSPlatform_linux.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSPlatform_linux.m; path = platform_linux/NSPlatform_linux.m; sourceTree = ""; }; - CFCEA46C1B043F4E00B3B087 /* darwin-i386-Foundation.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-Foundation.xcconfig"; sourceTree = ""; }; - CFCEA46D1B043F4E00B3B087 /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - CFCEA46E1B043F4E00B3B087 /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - CFCEA46F1B043F4E00B3B087 /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - CFCEA4701B043F4E00B3B087 /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - CFCEA4711B043F4E00B3B087 /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - CFCEA4721B043F4E00B3B087 /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - CFCEA4731B043F4E00B3B087 /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - CFCEA4741B043F4E00B3B087 /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - CFCEA4751B043F4E00B3B087 /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - CFCEA4761B043F4E00B3B087 /* platform-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "platform-framework.xcconfig"; sourceTree = ""; }; - CFCEA4771B043F4E00B3B087 /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - CFCEA4781B043F4E00B3B087 /* solaris-sparc-Foundation.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-Foundation.xcconfig"; sourceTree = ""; }; - CFCEA4791B043F4E00B3B087 /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - CFCEA47A1B043F4E00B3B087 /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - CFCEA47B1B043F4E00B3B087 /* windows-i386-AppKit.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-AppKit.xcconfig"; sourceTree = ""; }; - CFCEA47C1B043F4E00B3B087 /* windows-i386-bundle.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-bundle.xcconfig"; sourceTree = ""; }; - CFCEA47D1B043F4E00B3B087 /* windows-i386-clang.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-clang.xcconfig"; sourceTree = ""; }; - CFCEA47E1B043F4E00B3B087 /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - CFE3093A1B06E39E008442BF /* OBJCRegisterModule_Darwin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OBJCRegisterModule_Darwin.h; sourceTree = ""; }; - CFECC8501AFF0F2000D34AE4 /* linux-i386-Foundation.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-Foundation.xcconfig"; sourceTree = ""; }; - CFECC8521AFF0F4000D34AE4 /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE01A7EC0C5D9B6900AEA51A /* Foundation.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Foundation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE09AF6E13FCC68100B53D10 /* NSOrthography.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOrthography.h; sourceTree = ""; }; - FE09AF6F13FCC68100B53D10 /* NSOrthography.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOrthography.m; sourceTree = ""; }; - FE09AF8213FCC69200B53D10 /* NSTextCheckingResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTextCheckingResult.h; sourceTree = ""; }; - FE09AF8313FCC69200B53D10 /* NSTextCheckingResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTextCheckingResult.m; sourceTree = ""; }; - FE1342BD1151842200404745 /* CoreServices.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreServices.xcodeproj; path = ../CoreServices/CoreServices.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE1365D80F154B3A000F2657 /* NSAtomicList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSAtomicList.h; sourceTree = ""; }; - FE1365D90F154B3A000F2657 /* NSAtomicList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSAtomicList.m; sourceTree = ""; }; - FE1365DC0F154B3A000F2657 /* NSOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOperation.h; sourceTree = ""; }; - FE1365DD0F154B3A000F2657 /* NSOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOperation.m; sourceTree = ""; }; - FE1365DE0F154B3A000F2657 /* NSOperationQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOperationQueue.h; sourceTree = ""; }; - FE1365DF0F154B3A000F2657 /* NSOperationQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOperationQueue.m; sourceTree = ""; }; - FE1935150B5D449E00FB74CC /* NSAssertionHandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAssertionHandler.h; sourceTree = ""; }; - FE1935160B5D449E00FB74CC /* NSAssertionHandler.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAssertionHandler.m; sourceTree = ""; }; - FE1A0D1F0F8BADBA00FC4CC7 /* forwarding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = forwarding.h; sourceTree = ""; }; - FE1A0D200F8BADBA00FC4CC7 /* forwarding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = forwarding.m; sourceTree = ""; }; - FE1CF95610233D94001414D4 /* illegalCharacterSet.bitmap */ = {isa = PBXFileReference; lastKnownFileType = file; name = illegalCharacterSet.bitmap; path = NSCharacterSet/illegalCharacterSet.bitmap; sourceTree = ""; }; - FE2569E610F2F9C7005CE23E /* CFHost.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFHost.m; sourceTree = ""; }; - FE2569E710F2F9C7005CE23E /* CFNetServices.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFNetServices.m; sourceTree = ""; }; - FE2569E810F2F9C7005CE23E /* CFSocketStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFSocketStream.m; sourceTree = ""; }; - FE256A8210F387DA005CE23E /* CFDate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFDate.m; sourceTree = ""; }; - FE2705C50C5EF3D60004AB37 /* OBJCRegisterModule_Darwin.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = OBJCRegisterModule_Darwin.m; sourceTree = ""; }; - FE35CAEC0B4AB85800FE7AB3 /* objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc.m; sourceTree = ""; }; - FE35CBD70B4AD47400FE7AB3 /* NSSocket.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSSocket.h; sourceTree = ""; }; - FE35CBD80B4AD47400FE7AB3 /* NSSocket.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSSocket.m; sourceTree = ""; }; - FE35CBD90B4AD47400FE7AB3 /* NSSelectInputSource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSSelectInputSource.h; sourceTree = ""; }; - FE35CBDA0B4AD47400FE7AB3 /* NSSelectInputSource.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSSelectInputSource.m; sourceTree = ""; }; - FE35CC0F0B4AD8A400FE7AB3 /* NSSocket_windows.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSSocket_windows.h; sourceTree = ""; }; - FE35CC100B4AD8A400FE7AB3 /* NSSocket_windows.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSSocket_windows.m; sourceTree = ""; }; - FE35D2D90B4ECDBD00FE7AB3 /* NSSelectSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSelectSet.h; sourceTree = ""; }; - FE35D2DA0B4ECDBD00FE7AB3 /* NSSelectSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSelectSet.m; sourceTree = ""; }; - FE35D34F0B4EEDBB00FE7AB3 /* NSSelectSet_windows.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSelectSet_windows.h; sourceTree = ""; }; - FE35D3500B4EEDBB00FE7AB3 /* NSSelectSet_windows.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSelectSet_windows.m; sourceTree = ""; }; - FE35D3AA0B4F369C00FE7AB3 /* NSSelectInputSourceSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSelectInputSourceSet.h; sourceTree = ""; }; - FE35D3AB0B4F369C00FE7AB3 /* NSSelectInputSourceSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSelectInputSourceSet.m; sourceTree = ""; }; - FE35D6470B52A3E400FE7AB3 /* NSSelectSet_bsd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSSelectSet_bsd.h; path = platform_posix/NSSelectSet_bsd.h; sourceTree = ""; }; - FE35D6480B52A3E400FE7AB3 /* NSSelectSet_bsd.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSSelectSet_bsd.m; path = platform_posix/NSSelectSet_bsd.m; sourceTree = ""; }; - FE35D66C0B52AFBC00FE7AB3 /* NSSocket_bsd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSSocket_bsd.h; path = platform_posix/NSSocket_bsd.h; sourceTree = ""; }; - FE35D66D0B52AFBC00FE7AB3 /* NSSocket_bsd.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSSocket_bsd.m; path = platform_posix/NSSocket_bsd.m; sourceTree = ""; }; - FE3C473C112AF7FC0099DAB8 /* CFUID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFUID.h; sourceTree = ""; }; - FE3C473D112AF7FC0099DAB8 /* CFUID.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFUID.m; sourceTree = ""; }; - FE3F7D980BE63BBD007E9363 /* NSDateComponents.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSDateComponents.h; path = NSDate/NSDateComponents.h; sourceTree = ""; }; - FE3F7D990BE63BBD007E9363 /* NSDateComponents.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSDateComponents.m; path = NSDate/NSDateComponents.m; sourceTree = ""; }; - FE405A6A0B4450FD001B183D /* NSHTTPURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSHTTPURLResponse.h; sourceTree = ""; }; - FE405A6B0B4450FD001B183D /* NSHTTPURLResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSHTTPURLResponse.m; sourceTree = ""; }; - FE452E80102097EF00585DFE /* NSString_macOSRoman.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSString_macOSRoman.h; sourceTree = ""; }; - FE452E81102097EF00585DFE /* NSString_macOSRoman.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSString_macOSRoman.m; sourceTree = ""; }; - FE463E19102CD59500B265D6 /* NSSpellServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellServer.h; sourceTree = ""; }; - FE463E1A102CD59500B265D6 /* NSSpellServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSpellServer.m; sourceTree = ""; }; - FE463E29102CD5A600B265D6 /* NSURLError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLError.h; sourceTree = ""; }; - FE463E2A102CD5A600B265D6 /* NSURLError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLError.m; sourceTree = ""; }; - FE463E44102CD5B700B265D6 /* NSGarbageCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSGarbageCollector.h; sourceTree = ""; }; - FE463E45102CD5B800B265D6 /* NSGarbageCollector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSGarbageCollector.m; sourceTree = ""; }; - FE463E54102CD5C700B265D6 /* NSPointerArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPointerArray.h; sourceTree = ""; }; - FE463E55102CD5C700B265D6 /* NSPointerArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPointerArray.m; sourceTree = ""; }; - FE463E56102CD5C700B265D6 /* NSPointerFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPointerFunctions.h; sourceTree = ""; }; - FE463E57102CD5C700B265D6 /* NSPointerFunctions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPointerFunctions.m; sourceTree = ""; }; - FE463E74102CD5D200B265D6 /* NSXMLNodeOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSXMLNodeOptions.h; sourceTree = ""; }; - FE4C07481434A0330034EE26 /* NSDecimalNumberPlaceholder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDecimalNumberPlaceholder.h; sourceTree = ""; }; - FE4C07491434A0330034EE26 /* NSDecimalNumberPlaceholder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDecimalNumberPlaceholder.m; sourceTree = ""; }; - FE4EC68C0BD9B47B0015F9E9 /* NSKeyedArchiver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSKeyedArchiver.h; sourceTree = ""; }; - FE4EC68D0BD9B47B0015F9E9 /* NSKeyedArchiver.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSKeyedArchiver.m; sourceTree = ""; }; - FE53BE170BA9EBBE0050277F /* NSOldXMLAttribute.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSOldXMLAttribute.h; sourceTree = ""; }; - FE53BE180BA9EBBE0050277F /* NSOldXMLAttribute.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSOldXMLAttribute.m; sourceTree = ""; }; - FE53BE190BA9EBBE0050277F /* NSOldXMLDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSOldXMLDocument.h; sourceTree = ""; }; - FE53BE1A0BA9EBBE0050277F /* NSOldXMLDocument.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSOldXMLDocument.m; sourceTree = ""; }; - FE53BE1B0BA9EBBE0050277F /* NSOldXMLElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSOldXMLElement.h; sourceTree = ""; }; - FE53BE1C0BA9EBBE0050277F /* NSOldXMLElement.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSOldXMLElement.m; sourceTree = ""; }; - FE53BE1D0BA9EBBE0050277F /* NSOldXMLReader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSOldXMLReader.h; sourceTree = ""; }; - FE53BE1E0BA9EBBE0050277F /* NSOldXMLReader.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSOldXMLReader.m; sourceTree = ""; }; - FE53BE490BA9ED490050277F /* NSXMLDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSXMLDocument.h; sourceTree = ""; }; - FE53BE4A0BA9ED490050277F /* NSXMLDocument.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSXMLDocument.m; sourceTree = ""; }; - FE53BE4B0BA9ED490050277F /* NSXMLDTD.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSXMLDTD.h; sourceTree = ""; }; - FE53BE4C0BA9ED490050277F /* NSXMLDTD.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSXMLDTD.m; sourceTree = ""; }; - FE53BE4D0BA9ED490050277F /* NSXMLDTDNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSXMLDTDNode.h; sourceTree = ""; }; - FE53BE4E0BA9ED490050277F /* NSXMLDTDNode.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSXMLDTDNode.m; sourceTree = ""; }; - FE53BE4F0BA9ED490050277F /* NSXMLElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSXMLElement.h; sourceTree = ""; }; - FE53BE500BA9ED490050277F /* NSXMLElement.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSXMLElement.m; sourceTree = ""; }; - FE53BE510BA9ED490050277F /* NSXMLNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSXMLNode.h; sourceTree = ""; }; - FE53BE520BA9ED490050277F /* NSXMLNode.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSXMLNode.m; sourceTree = ""; }; - FE53BE550BA9ED490050277F /* NSXMLParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSXMLParser.h; sourceTree = ""; }; - FE53BE560BA9ED490050277F /* NSXMLParser.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSXMLParser.m; sourceTree = ""; }; - FE55AD191119D86900A777AB /* CFByteOrder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFByteOrder.m; sourceTree = ""; }; - FE5EA8010FA3896500536850 /* NSMemoryFunctions_bsd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSMemoryFunctions_bsd.m; sourceTree = ""; }; - FE5EA8020FA3896500536850 /* NSPlatform_bsd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPlatform_bsd.h; sourceTree = ""; }; - FE5EA8030FA3896500536850 /* NSPlatform_bsd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPlatform_bsd.m; sourceTree = ""; }; - FE6014221042FD49008A7357 /* NSString_defaultEncoding_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSString_defaultEncoding_posix.m; path = platform_posix/NSString_defaultEncoding_posix.m; sourceTree = ""; }; - FE6014251042FD5A008A7357 /* NSString_defaultEncoding_darwin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSString_defaultEncoding_darwin.m; sourceTree = ""; }; - FE6014291042FD6B008A7357 /* NSString_defaultEncoding_windows.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSString_defaultEncoding_windows.m; sourceTree = ""; }; - FE60143A1042FDD2008A7357 /* NSString_defaultEncoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSString_defaultEncoding.h; sourceTree = ""; }; - FE6CF89E1152743100B6D893 /* objc_malloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_malloc.h; sourceTree = ""; }; - FE6CF89F1152743100B6D893 /* objc_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_malloc.c; sourceTree = ""; }; - FE6DC2550BA902710082AC66 /* NSAffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSAffineTransform.h; sourceTree = ""; }; - FE6DC2560BA902710082AC66 /* NSAffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSAffineTransform.m; sourceTree = ""; }; - FE70869F143117F100B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE720FD4124C56FA009B690D /* NSKeyPathObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSKeyPathObserver.h; sourceTree = ""; }; - FE720FD5124C56FA009B690D /* NSKeyPathObserver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSKeyPathObserver.m; sourceTree = ""; }; - FE721025124CE420009B690D /* NSKeyObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSKeyObserver.h; sourceTree = ""; }; - FE721026124CE420009B690D /* NSKeyObserver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSKeyObserver.m; sourceTree = ""; }; - FE74776D0BAC4E9000829F4F /* NSDecimal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDecimal.h; sourceTree = ""; }; - FE74776E0BAC4E9000829F4F /* NSDecimal.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDecimal.m; sourceTree = ""; }; - FE74776F0BAC4E9000829F4F /* NSDecimalNumber.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDecimalNumber.h; sourceTree = ""; }; - FE7477700BAC4E9000829F4F /* NSDecimalNumber.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDecimalNumber.m; sourceTree = ""; }; - FE7477990BAC4F5200829F4F /* NSDistributedLock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDistributedLock.h; sourceTree = ""; }; - FE74779B0BAC4F5200829F4F /* NSDistributedNotificationCenter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSDistributedNotificationCenter.h; sourceTree = ""; }; - FE74779C0BAC4F5200829F4F /* NSDistributedNotificationCenter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDistributedNotificationCenter.m; sourceTree = ""; }; - FE7477BE0BAC507F00829F4F /* NSIndexPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSIndexPath.h; sourceTree = ""; }; - FE7477BF0BAC507F00829F4F /* NSIndexPath.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSIndexPath.m; sourceTree = ""; }; - FE7477CD0BAC519800829F4F /* NSMetadataItem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMetadataItem.h; sourceTree = ""; }; - FE7477CE0BAC519800829F4F /* NSMetadataItem.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMetadataItem.m; sourceTree = ""; }; - FE7477CF0BAC519800829F4F /* NSMetadataQuery.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMetadataQuery.h; sourceTree = ""; }; - FE7477D00BAC519800829F4F /* NSMetadataQuery.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMetadataQuery.m; sourceTree = ""; }; - FE7477D10BAC519800829F4F /* NSMetadataQueryAttributeValueTuple.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMetadataQueryAttributeValueTuple.h; sourceTree = ""; }; - FE7477D20BAC519800829F4F /* NSMetadataQueryAttributeValueTuple.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMetadataQueryAttributeValueTuple.m; sourceTree = ""; }; - FE7477D30BAC519800829F4F /* NSMetadataQueryResultGroup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMetadataQueryResultGroup.h; sourceTree = ""; }; - FE7477D40BAC519800829F4F /* NSMetadataQueryResultGroup.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMetadataQueryResultGroup.m; sourceTree = ""; }; - FE7478410BAC5A8700829F4F /* NSSortDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSSortDescriptor.h; sourceTree = ""; }; - FE7478420BAC5A8700829F4F /* NSSortDescriptor.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSSortDescriptor.m; sourceTree = ""; }; - FE7478700BAC5EB600829F4F /* NSValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSValueTransformer.h; sourceTree = ""; }; - FE7478710BAC5EB600829F4F /* NSValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSValueTransformer.m; sourceTree = ""; }; - FE75E2E710F6442F000419C4 /* bonjour.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = bonjour.m; sourceTree = ""; }; - FE7FE5BF0D7CF08B006CCA28 /* NSFileHandle_stream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSFileHandle_stream.h; sourceTree = ""; }; - FE7FE5C00D7CF08B006CCA28 /* NSFileHandle_stream.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSFileHandle_stream.m; sourceTree = ""; }; - FE828F0A110DEB540008AFA2 /* pthread.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = pthread.m; path = ../pthread/pthread.m; sourceTree = ""; }; - FE828F37110DFA1C0008AFA2 /* NSKVOInfoPerObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSKVOInfoPerObject.h; sourceTree = ""; }; - FE828F38110DFA1C0008AFA2 /* NSKVOInfoPerObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSKVOInfoPerObject.m; sourceTree = ""; }; - FE8693D20FE0108E00F89733 /* CFArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFArray.m; sourceTree = ""; }; - FE8693D30FE0108E00F89733 /* CFAttributedString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFAttributedString.m; sourceTree = ""; }; - FE8693D40FE0108E00F89733 /* CFBag.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFBag.m; sourceTree = ""; }; - FE8693D50FE0108E00F89733 /* CFBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFBase.m; sourceTree = ""; }; - FE8693D60FE0108E00F89733 /* CFBinaryHeap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFBinaryHeap.m; sourceTree = ""; }; - FE8693D70FE0108E00F89733 /* CFBitVector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFBitVector.m; sourceTree = ""; }; - FE8693D80FE0108E00F89733 /* CFBundle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFBundle.m; sourceTree = ""; }; - FE8693D90FE0108E00F89733 /* CFCalendar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFCalendar.m; sourceTree = ""; }; - FE8693DA0FE0108E00F89733 /* CFCharacterSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFCharacterSet.m; sourceTree = ""; }; - FE8693DB0FE0108E00F89733 /* CFData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFData.m; sourceTree = ""; }; - FE8693DC0FE0108E00F89733 /* CFDateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFDateFormatter.m; sourceTree = ""; }; - FE8693DD0FE0108E00F89733 /* CFDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFDictionary.m; sourceTree = ""; }; - FE8693DE0FE0108E00F89733 /* CFError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFError.m; sourceTree = ""; }; - FE8693DF0FE0108E00F89733 /* CFFileDescriptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFFileDescriptor.m; sourceTree = ""; }; - FE8693E00FE0108E00F89733 /* CFLocale.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFLocale.m; sourceTree = ""; }; - FE8693E10FE0108E00F89733 /* CFMachPort.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFMachPort.m; sourceTree = ""; }; - FE8693E20FE0108E00F89733 /* CFMessagePort.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFMessagePort.m; sourceTree = ""; }; - FE8693E30FE0108E00F89733 /* CFNotificationCenter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFNotificationCenter.m; sourceTree = ""; }; - FE8693E40FE0108E00F89733 /* CFNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFNumber.m; sourceTree = ""; }; - FE8693E50FE0108E00F89733 /* CFNumberFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFNumberFormatter.m; sourceTree = ""; }; - FE8693E60FE0108E00F89733 /* CFPlugIn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFPlugIn.m; sourceTree = ""; }; - FE8693E70FE0108E00F89733 /* CFPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFPreferences.m; sourceTree = ""; }; - FE8693E80FE0108E00F89733 /* CFPropertyList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFPropertyList.m; sourceTree = ""; }; - FE8693E90FE0108E00F89733 /* CFRunLoop.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFRunLoop.m; sourceTree = ""; }; - FE8693EA0FE0108E00F89733 /* CFSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFSet.m; sourceTree = ""; }; - FE8693EB0FE0108E00F89733 /* CFSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFSocket.m; sourceTree = ""; }; - FE8693EC0FE0108E00F89733 /* CFStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFStream.m; sourceTree = ""; }; - FE8693ED0FE0108E00F89733 /* CFString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFString.m; sourceTree = ""; }; - FE8693EE0FE0108E00F89733 /* CFStringTokenizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFStringTokenizer.m; sourceTree = ""; }; - FE8693EF0FE0108E00F89733 /* CFTimeZone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFTimeZone.m; sourceTree = ""; }; - FE8693F00FE0108E00F89733 /* CFTree.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFTree.m; sourceTree = ""; }; - FE8693F10FE0108E00F89733 /* CFURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFURL.m; sourceTree = ""; }; - FE8693F20FE0108E00F89733 /* CFUserNotification.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFUserNotification.m; sourceTree = ""; }; - FE8693F30FE0108E00F89733 /* CFUUID.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFUUID.m; sourceTree = ""; }; - FE8693F40FE0108E00F89733 /* CFXMLNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFXMLNode.m; sourceTree = ""; }; - FE8693F50FE0108E00F89733 /* CFXMLParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFXMLParser.m; sourceTree = ""; }; - FE86D407114743AC0010FE05 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; name = English; path = English.lproj/NSStringEncodingNames.plist; sourceTree = ""; }; - FE88A4940F8A7E050081CFC1 /* objc_ivar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_ivar.c; sourceTree = ""; }; - FE88A49E0F8A7E9A0081CFC1 /* objc_method.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_method.c; sourceTree = ""; }; - FE88A4D50F8A9DE00081CFC1 /* Object.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Object.m; sourceTree = ""; }; - FE8C913E0FFD1E430027C889 /* NSString_win1252.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSString_win1252.h; sourceTree = ""; }; - FE8C913F0FFD1E430027C889 /* NSString_win1252.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSString_win1252.m; sourceTree = ""; }; - FE937F3E1358DC8000C93531 /* NSNumber_CF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSNumber_CF.h; path = NSNumber/NSNumber_CF.h; sourceTree = ""; }; - FE937F3F1358DC8000C93531 /* NSNumber_CF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSNumber_CF.m; path = NSNumber/NSNumber_CF.m; sourceTree = ""; }; - FE9C1B8A1125A649002DA20B /* CFSSLHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFSSLHandler.h; sourceTree = ""; }; - FE9C1B8B1125A649002DA20B /* CFSSLHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFSSLHandler.m; sourceTree = ""; }; - FE9D95340C0387D5006DB214 /* NSValueTransformer_IsNil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSValueTransformer_IsNil.h; sourceTree = ""; }; - FE9D95350C0387D5006DB214 /* NSValueTransformer_IsNil.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSValueTransformer_IsNil.m; sourceTree = ""; }; - FE9D95360C0387D5006DB214 /* NSValueTransformer_IsNotNil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSValueTransformer_IsNotNil.h; sourceTree = ""; }; - FE9D95370C0387D5006DB214 /* NSValueTransformer_IsNotNil.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSValueTransformer_IsNotNil.m; sourceTree = ""; }; - FE9D95380C0387D5006DB214 /* NSValueTransformer_NegateBoolean.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSValueTransformer_NegateBoolean.h; sourceTree = ""; }; - FE9D95390C0387D5006DB214 /* NSValueTransformer_NegateBoolean.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSValueTransformer_NegateBoolean.m; sourceTree = ""; }; - FE9D953A0C0387D5006DB214 /* NSValueTransformer_UnarchiveFromData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSValueTransformer_UnarchiveFromData.h; sourceTree = ""; }; - FE9D953B0C0387D5006DB214 /* NSValueTransformer_UnarchiveFromData.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSValueTransformer_UnarchiveFromData.m; sourceTree = ""; }; - FE9E1A2F0D5C0676004AE7BA /* NSLocale+windows.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSLocale+windows.h"; sourceTree = ""; }; - FE9E1A300D5C0676004AE7BA /* NSLocale+windows.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSLocale+windows.m"; sourceTree = ""; }; - FEA317850FD5843900F480D4 /* NSRaiseException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSRaiseException.h; sourceTree = ""; }; - FEA36F250C24C57000025A9C /* objc_cache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = objc_cache.h; sourceTree = ""; }; - FEA828A3109B74B200C7A732 /* CoreFoundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreFoundation.xcodeproj; path = ../CoreFoundation/CoreFoundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - FEA9D0880D16C55E00123D51 /* NSPropertyListReader_binary1.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPropertyListReader_binary1.h; sourceTree = ""; }; - FEA9D0890D16C55E00123D51 /* NSPropertyListReader_binary1.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPropertyListReader_binary1.m; sourceTree = ""; }; - FEA9D3050F5D9C2100772064 /* NSRunLoopState_windows.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSRunLoopState_windows.h; sourceTree = ""; }; - FEA9D3060F5D9C2100772064 /* NSRunLoopState_windows.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSRunLoopState_windows.m; sourceTree = ""; }; - FEA9D3090F5D9C5A00772064 /* NSRunLoopState_posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSRunLoopState_posix.h; path = platform_posix/NSRunLoopState_posix.h; sourceTree = ""; }; - FEA9D30A0F5D9C5A00772064 /* NSRunLoopState_posix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSRunLoopState_posix.m; path = platform_posix/NSRunLoopState_posix.m; sourceTree = ""; }; - FEADE5BE12FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSValueTransformer_KeyedUnarchiveFromData.h; sourceTree = ""; }; - FEADE5BF12FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSValueTransformer_KeyedUnarchiveFromData.m; sourceTree = ""; }; - FEB3F2B81404A92400059C8F /* NSSpellEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellEngine.h; sourceTree = ""; }; - FEB3F2B91404A92400059C8F /* NSSpellEngine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSpellEngine.m; sourceTree = ""; }; - FEB6CBAE0B4A139F004FADF2 /* NSKeyValueCoding.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSKeyValueCoding.h; sourceTree = ""; }; - FEB6CBAF0B4A139F004FADF2 /* NSKeyValueCoding.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSKeyValueCoding.m; sourceTree = ""; }; - FEB6CC400B4A1922004FADF2 /* objc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = objc.xcodeproj; path = ../objc/objc.xcodeproj; sourceTree = SOURCE_ROOT; }; - FEB6CC890B4A1D4D004FADF2 /* NSKVCMutableArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSKVCMutableArray.h; sourceTree = ""; }; - FEB6CC8A0B4A1D4D004FADF2 /* NSKVCMutableArray.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSKVCMutableArray.m; sourceTree = ""; }; - FEB9D30C0B4374F700C239BB /* NSInputStream_data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSInputStream_data.h; sourceTree = ""; }; - FEB9D30D0B4374F700C239BB /* NSInputStream_data.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSInputStream_data.m; sourceTree = ""; }; - FEB9D31A0B43781500C239BB /* NSOutputStream_data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOutputStream_data.h; sourceTree = ""; }; - FEB9D31B0B43781500C239BB /* NSOutputStream_data.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOutputStream_data.m; sourceTree = ""; }; - FEB9D3250B43783C00C239BB /* NSOutputStream_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOutputStream_file.h; sourceTree = ""; }; - FEB9D3260B43783C00C239BB /* NSOutputStream_file.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOutputStream_file.m; sourceTree = ""; }; - FEB9D3320B43786400C239BB /* NSInputStream_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSInputStream_file.h; sourceTree = ""; }; - FEB9D3330B43786400C239BB /* NSInputStream_file.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSInputStream_file.m; sourceTree = ""; }; - FEB9D3670B437C9600C239BB /* NSOutputStream_buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSOutputStream_buffer.h; sourceTree = ""; }; - FEB9D3680B437C9600C239BB /* NSOutputStream_buffer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSOutputStream_buffer.m; sourceTree = ""; }; - FEB9D3E40B4412D800C239BB /* NSConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSConnection.h; sourceTree = ""; }; - FEB9D3E50B4412D800C239BB /* NSConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSConnection.m; sourceTree = ""; }; - FEB9D40F0B4415F900C239BB /* NSPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPort.h; sourceTree = ""; }; - FEB9D4100B4415F900C239BB /* NSPort.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPort.m; sourceTree = ""; }; - FEB9D4320B44164500C239BB /* NSSocketPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSocketPort.h; sourceTree = ""; }; - FEB9D4330B44164500C239BB /* NSSocketPort.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSocketPort.m; sourceTree = ""; }; - FEB9D4540B4416C400C239BB /* NSMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSMessagePort.h; sourceTree = ""; }; - FEB9D4550B4416C400C239BB /* NSMessagePort.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSMessagePort.m; sourceTree = ""; }; - FEB9D46B0B44323C00C239BB /* NSDistantObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDistantObject.h; sourceTree = ""; }; - FEB9D46C0B44323C00C239BB /* NSDistantObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDistantObject.m; sourceTree = ""; }; - FEB9D4820B44331400C239BB /* NSComparisonPredicate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSComparisonPredicate.h; sourceTree = ""; }; - FEB9D4830B44331400C239BB /* NSComparisonPredicate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSComparisonPredicate.m; sourceTree = ""; }; - FEB9D48E0B4433F500C239BB /* NSPredicate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPredicate.h; sourceTree = ""; }; - FEB9D48F0B4433F500C239BB /* NSPredicate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPredicate.m; sourceTree = ""; }; - FEB9D4980B44340800C239BB /* NSCompoundPredicate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSCompoundPredicate.h; sourceTree = ""; }; - FEB9D4990B44340800C239BB /* NSCompoundPredicate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSCompoundPredicate.m; sourceTree = ""; }; - FEB9D4A20B44349600C239BB /* NSExpression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSExpression.h; sourceTree = ""; }; - FEB9D4A30B44349600C239BB /* NSExpression.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSExpression.m; sourceTree = ""; }; - FEB9D4AC0B4434C800C239BB /* NSError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSError.h; sourceTree = ""; }; - FEB9D4AD0B4434C800C239BB /* NSError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSError.m; sourceTree = ""; }; - FEB9D4B90B44359400C239BB /* NSIndexSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexSet.h; sourceTree = ""; }; - FEB9D4BA0B44359400C239BB /* NSIndexSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIndexSet.m; sourceTree = ""; }; - FEB9D4C50B4435A700C239BB /* NSMutableIndexSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSMutableIndexSet.h; sourceTree = ""; }; - FEB9D4C60B4435A700C239BB /* NSMutableIndexSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSMutableIndexSet.m; sourceTree = ""; }; - FEB9D4D10B4435D000C239BB /* NSLocale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSLocale.h; sourceTree = ""; }; - FEB9D4D20B4435D000C239BB /* NSLocale.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSLocale.m; sourceTree = ""; }; - FEB9D4ED0B4436FD00C239BB /* NSPropertyList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPropertyList.h; sourceTree = ""; }; - FEB9D4EE0B4436FD00C239BB /* NSPropertyList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPropertyList.m; sourceTree = ""; }; - FEB9D55D0B4438E500C239BB /* NSURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURL.h; sourceTree = ""; }; - FEB9D55E0B4438E500C239BB /* NSURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURL.m; sourceTree = ""; }; - FEB9D5690B4438FD00C239BB /* NSURLAuthenticationChallenge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLAuthenticationChallenge.h; sourceTree = ""; }; - FEB9D56A0B4438FD00C239BB /* NSURLAuthenticationChallenge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLAuthenticationChallenge.m; sourceTree = ""; }; - FEB9D5750B44390D00C239BB /* NSURLCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLCache.h; sourceTree = ""; }; - FEB9D5760B44390D00C239BB /* NSURLCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLCache.m; sourceTree = ""; }; - FEB9D5810B44391E00C239BB /* NSURLConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLConnection.h; sourceTree = ""; }; - FEB9D5820B44391E00C239BB /* NSURLConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLConnection.m; sourceTree = ""; }; - FEB9D58D0B44393400C239BB /* NSURLCredential.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLCredential.h; sourceTree = ""; }; - FEB9D58E0B44393400C239BB /* NSURLCredential.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLCredential.m; sourceTree = ""; }; - FEB9D5990B44394000C239BB /* NSURLCredentialStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLCredentialStorage.h; sourceTree = ""; }; - FEB9D59A0B44394000C239BB /* NSURLCredentialStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLCredentialStorage.m; sourceTree = ""; }; - FEB9D5A50B44395100C239BB /* NSURLDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLDownload.h; sourceTree = ""; }; - FEB9D5A60B44395100C239BB /* NSURLDownload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLDownload.m; sourceTree = ""; }; - FEB9D5BD0B44397900C239BB /* NSURLHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLHandle.h; sourceTree = ""; }; - FEB9D5BE0B44397900C239BB /* NSURLHandle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLHandle.m; sourceTree = ""; }; - FEB9D5C90B44399000C239BB /* NSURLProtectionSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLProtectionSpace.h; sourceTree = ""; }; - FEB9D5CA0B44399000C239BB /* NSURLProtectionSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLProtectionSpace.m; sourceTree = ""; }; - FEB9D5D50B4439A200C239BB /* NSURLProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLProtocol.h; sourceTree = ""; }; - FEB9D5D60B4439A200C239BB /* NSURLProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLProtocol.m; sourceTree = ""; }; - FEB9D5E10B4439BA00C239BB /* NSURLRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLRequest.h; sourceTree = ""; }; - FEB9D5E20B4439BA00C239BB /* NSURLRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLRequest.m; sourceTree = ""; }; - FEB9D5ED0B443A9600C239BB /* NSURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLResponse.h; sourceTree = ""; }; - FEB9D5EE0B443A9600C239BB /* NSURLResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLResponse.m; sourceTree = ""; }; - FEB9D5F90B443B8200C239BB /* NSProtocolChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSProtocolChecker.h; sourceTree = ""; }; - FEB9D5FA0B443B8200C239BB /* NSProtocolChecker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSProtocolChecker.m; sourceTree = ""; }; - FEB9D60A0B443C2800C239BB /* NSHTTPCookie.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSHTTPCookie.h; sourceTree = ""; }; - FEB9D60B0B443C2800C239BB /* NSHTTPCookie.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSHTTPCookie.m; sourceTree = ""; }; - FEB9D6140B443C3F00C239BB /* NSHTTPCookieStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSHTTPCookieStorage.h; sourceTree = ""; }; - FEB9D6150B443C3F00C239BB /* NSHTTPCookieStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSHTTPCookieStorage.m; sourceTree = ""; }; - FEB9D6AE0B443F1200C239BB /* NSPortMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPortMessage.h; sourceTree = ""; }; - FEB9D6AF0B443F1200C239BB /* NSPortMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPortMessage.m; sourceTree = ""; }; - FEB9D6CD0B44405700C239BB /* NSClassDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSClassDescription.h; sourceTree = ""; }; - FEB9D6CE0B44405700C239BB /* NSClassDescription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSClassDescription.m; sourceTree = ""; }; - FEB9D6DB0B4440DA00C239BB /* NSPortNameServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSPortNameServer.h; sourceTree = ""; }; - FEB9D6DC0B4440DA00C239BB /* NSPortNameServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSPortNameServer.m; sourceTree = ""; }; - FEB9D6E70B4440F200C239BB /* NSMessagePortNameServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSMessagePortNameServer.h; sourceTree = ""; }; - FEB9D6E80B4440F200C239BB /* NSMessagePortNameServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSMessagePortNameServer.m; sourceTree = ""; }; - FEB9D7000B44414000C239BB /* NSSocketPortNameServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSocketPortNameServer.h; sourceTree = ""; }; - FEB9D7010B44414000C239BB /* NSSocketPortNameServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSocketPortNameServer.m; sourceTree = ""; }; - FEBF535B0F925FA3005DC684 /* objc_protocol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_protocol.c; sourceTree = ""; }; - FEBF53670F926025005DC684 /* objc_protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_protocol.h; sourceTree = ""; }; - FEBF545A0F93AE8A005DC684 /* objc_property.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_property.c; sourceTree = ""; }; - FEC0A3801709355C002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3811709355C002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3821709355C002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A3831709355C002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3841709355C002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A3851709355C002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3861709355C002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3871709355C002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEC1CFDF0F7AAB7900619DD5 /* FoundationErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FoundationErrors.h; sourceTree = ""; }; - FEC9F6AC0E2F98EA0034932A /* NSURLProtocol_http.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLProtocol_http.h; sourceTree = ""; }; - FEC9F6AD0E2F98EA0034932A /* NSURLProtocol_http.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLProtocol_http.m; sourceTree = ""; }; - FEC9F6BB0E2F9BEA0034932A /* NSURLConnectionState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSURLConnectionState.h; sourceTree = ""; }; - FEC9F6BC0E2F9BEA0034932A /* NSURLConnectionState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSURLConnectionState.m; sourceTree = ""; }; - FED160AC0BE26DF700BF9889 /* NSExpression_operator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_operator.h; sourceTree = ""; }; - FED160AD0BE26DF700BF9889 /* NSExpression_operator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_operator.m; sourceTree = ""; }; - FED162960BE2E44600BF9889 /* NSExpression_array.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_array.h; sourceTree = ""; }; - FED162970BE2E44600BF9889 /* NSExpression_array.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_array.m; sourceTree = ""; }; - FED162F20BE2EAB200BF9889 /* NSExpression_assignment.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_assignment.h; sourceTree = ""; }; - FED162F30BE2EAB200BF9889 /* NSExpression_assignment.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_assignment.m; sourceTree = ""; }; - FED1635E0BE4093700BF9889 /* NSExpression_constant.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_constant.h; sourceTree = ""; }; - FED1635F0BE4093700BF9889 /* NSExpression_constant.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_constant.m; sourceTree = ""; }; - FED163600BE4093700BF9889 /* NSExpression_function.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_function.h; sourceTree = ""; }; - FED163610BE4093700BF9889 /* NSExpression_function.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_function.m; sourceTree = ""; }; - FED163620BE4093700BF9889 /* NSExpression_keypath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_keypath.h; sourceTree = ""; }; - FED163630BE4093700BF9889 /* NSExpression_keypath.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_keypath.m; sourceTree = ""; }; - FED163640BE4093700BF9889 /* NSExpression_self.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_self.h; sourceTree = ""; }; - FED163650BE4093700BF9889 /* NSExpression_self.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_self.m; sourceTree = ""; }; - FED163660BE4093700BF9889 /* NSExpression_variable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSExpression_variable.h; sourceTree = ""; }; - FED163670BE4093700BF9889 /* NSExpression_variable.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSExpression_variable.m; sourceTree = ""; }; - FED216020FA14BAA00B74EFE /* objc-msgsend.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "objc-msgsend.s"; sourceTree = ""; }; - FED311CA0BCC0E1D00552615 /* NSConditionLock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSConditionLock.h; sourceTree = ""; }; - FED311CB0BCC0E1D00552615 /* NSConditionLock.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSConditionLock.m; sourceTree = ""; }; - FED70AFF0C3B4255000CBE5B /* DarwinMemoryFunctions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = DarwinMemoryFunctions.m; sourceTree = ""; }; - FED70B000C3B4255000CBE5B /* NSPlatform_darwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPlatform_darwin.h; sourceTree = ""; }; - FED70B010C3B4255000CBE5B /* NSPlatform_darwin.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPlatform_darwin.m; sourceTree = ""; }; - FED70C8E0C3BFFBE000CBE5B /* objc_msgSend-darwin-i386.s */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.asm; path = "objc_msgSend-darwin-i386.s"; sourceTree = ""; }; - FED70D610C3C0973000CBE5B /* objc_msgSend-darwin-ppc.s */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.asm; path = "objc_msgSend-darwin-ppc.s"; sourceTree = ""; }; - FEDB762F0F8AD40700AC545D /* objc_object.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_object.h; sourceTree = ""; }; - FEDB76300F8AD40700AC545D /* objc_object.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_object.c; sourceTree = ""; }; - FEDDE2520BD2A9E500DDD110 /* NSPredicate_BOOL.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSPredicate_BOOL.h; sourceTree = ""; }; - FEDDE2530BD2A9E500DDD110 /* NSPredicate_BOOL.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSPredicate_BOOL.m; sourceTree = ""; }; - FEDF9FEF0CF6123F00F21F87 /* NSMutableURLRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSMutableURLRequest.h; sourceTree = ""; }; - FEDF9FF00CF6123F00F21F87 /* NSMutableURLRequest.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSMutableURLRequest.m; sourceTree = ""; }; - FEDFA1000CF7D41F00F21F87 /* NSCachedURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSCachedURLResponse.h; sourceTree = ""; }; - FEDFA1010CF7D41F00F21F87 /* NSCachedURLResponse.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSCachedURLResponse.m; sourceTree = ""; }; - FEE17BA20BB43998006B4510 /* NSDistributedLock.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSDistributedLock.m; sourceTree = ""; }; - FEE7D3090ED1D2DE0032DCE0 /* NSNetServices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSNetServices.h; sourceTree = ""; }; - FEE7D30A0ED1D2DE0032DCE0 /* NSNetServices.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSNetServices.m; sourceTree = ""; }; - FEE7D33B0ED1D4E10032DCE0 /* bonjour.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bonjour.h; sourceTree = ""; }; - FEE97EB40BBEDE3000DBAFF9 /* NSConcreteDirectoryEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSConcreteDirectoryEnumerator.h; sourceTree = ""; }; - FEE97EB50BBEDE3000DBAFF9 /* NSConcreteDirectoryEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSConcreteDirectoryEnumerator.m; sourceTree = ""; }; - FEEA64B312B674A200E6E2C8 /* NSRecursiveLock_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSRecursiveLock_win32.h; sourceTree = ""; }; - FEEA64B412B674A200E6E2C8 /* NSRecursiveLock_win32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSRecursiveLock_win32.m; sourceTree = ""; }; - FEF5B4C60BBEFDBA00A8FF26 /* NSArray+KVC.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSArray+KVC.m"; sourceTree = ""; }; - FEF5B4C70BBEFDBA00A8FF26 /* NSDictionary+KVC.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+KVC.m"; sourceTree = ""; }; - FEF5B4C80BBEFDBA00A8FF26 /* NSKeyValueObserving-Private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSKeyValueObserving-Private.h"; sourceTree = ""; }; - FEF5B4C90BBEFDBA00A8FF26 /* NSKeyValueObserving.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSKeyValueObserving.h; sourceTree = ""; }; - FEF5B4CA0BBEFDBA00A8FF26 /* NSKeyValueObserving.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSKeyValueObserving.m; sourceTree = ""; }; - FEF5B4CB0BBEFDBA00A8FF26 /* NSString+KVCAdditions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSString+KVCAdditions.h"; sourceTree = ""; }; - FEF5B4CC0BBEFDBA00A8FF26 /* NSString+KVCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSString+KVCAdditions.m"; sourceTree = ""; }; - FEFAA5391429098A00CEE177 /* NSScriptWhoseTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSScriptWhoseTests.h; sourceTree = ""; }; - FEFAA53A1429098A00CEE177 /* NSScriptWhoseTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSScriptWhoseTests.m; sourceTree = ""; }; - FEFDFBF3174F283800CB0EBD /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FEFF238D0BDCF136005357B8 /* NSCalendar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NSCalendar.h; path = NSDate/NSCalendar.h; sourceTree = ""; }; - FEFF238E0BDCF136005357B8 /* NSCalendar.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NSCalendar.m; path = NSDate/NSCalendar.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - FE01A7DA0C5D9B6900AEA51A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - FE01A7EC0C5D9B6900AEA51A /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* Foundation */ = { - isa = PBXGroup; - children = ( - FE1E546214303009000D60A1 /* xcconfig */, - FE09AF8213FCC69200B53D10 /* NSTextCheckingResult.h */, - FE09AF8313FCC69200B53D10 /* NSTextCheckingResult.m */, - FE09AF6E13FCC68100B53D10 /* NSOrthography.h */, - FE09AF6F13FCC68100B53D10 /* NSOrthography.m */, - FE1342BD1151842200404745 /* CoreServices.xcodeproj */, - FE2569E410F2F936005CE23E /* CFNetwork */, - FEA828A3109B74B200C7A732 /* CoreFoundation.xcodeproj */, - 151B5D1A105EA94F009092D5 /* NSAtomicCompareAndSwap.h */, - FE463E54102CD5C700B265D6 /* NSPointerArray.h */, - FE463E55102CD5C700B265D6 /* NSPointerArray.m */, - FE463E56102CD5C700B265D6 /* NSPointerFunctions.h */, - FE463E57102CD5C700B265D6 /* NSPointerFunctions.m */, - FE463E44102CD5B700B265D6 /* NSGarbageCollector.h */, - FE463E45102CD5B800B265D6 /* NSGarbageCollector.m */, - FE4BDD2A0BCD65EB00E19685 /* CoreFoundation */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 6E280B2909747F1F00EC542B /* Foundation.h */, - FEC1CFDF0F7AAB7900619DD5 /* FoundationErrors.h */, - FE6DC2550BA902710082AC66 /* NSAffineTransform.h */, - FE6DC2560BA902710082AC66 /* NSAffineTransform.m */, - 6E28030E0974787200EC542B /* NSArchiver.m */, - 6E28030D0974787200EC542B /* NSArchiver.h */, - 6E280310097478A700EC542B /* NSArray */, - FE1935150B5D449E00FB74CC /* NSAssertionHandler.h */, - FE1935160B5D449E00FB74CC /* NSAssertionHandler.m */, - 6E28032D097478E900EC542B /* NSAttributedString */, - 6E28032E097478F200EC542B /* NSAutoreleasePool */, - 6E2805F309747D5800EC542B /* NSBundle.h */, - 6E2805F409747D5800EC542B /* NSBundle.m */, - 6E2805F509747D5800EC542B /* NSByteOrder.h */, - 6E2805F609747D5800EC542B /* NSByteOrder.m */, - 6E28066309747DE300EC542B /* NSCharacterSet */, - FEB9D6CD0B44405700C239BB /* NSClassDescription.h */, - FEB9D6CE0B44405700C239BB /* NSClassDescription.m */, - 6E2805F709747D5800EC542B /* NSCoder.h */, - 6E2805F809747D5800EC542B /* NSCoder.m */, - FEE97EB40BBEDE3000DBAFF9 /* NSConcreteDirectoryEnumerator.h */, - FEE97EB50BBEDE3000DBAFF9 /* NSConcreteDirectoryEnumerator.m */, - FEB9D2F00B42F85100C239BB /* NSConnection */, - 6E28032F097478FA00EC542B /* NSData */, - 6E28069409747E6B00EC542B /* NSDate */, - 6E2805F909747D5800EC542B /* NSDebug.h */, - 6E2805FA09747D5800EC542B /* NSDebug.m */, - FE74776A0BAC4E0D00829F4F /* NSDecimal */, - 6E2803300974790300EC542B /* NSDictionary */, - 6E2805FB09747D5800EC542B /* NSDirectoryEnumerator.h */, - 6E2805FC09747D5800EC542B /* NSDirectoryEnumerator.m */, - FE7477990BAC4F5200829F4F /* NSDistributedLock.h */, - FEE17BA20BB43998006B4510 /* NSDistributedLock.m */, - FE74779B0BAC4F5200829F4F /* NSDistributedNotificationCenter.h */, - FE74779C0BAC4F5200829F4F /* NSDistributedNotificationCenter.m */, - 6E2805FD09747D5800EC542B /* NSEnumerator.h */, - 6E2805FE09747D5800EC542B /* NSEnumerator.m */, - FEB9D4AC0B4434C800C239BB /* NSError.h */, - FEB9D4AD0B4434C800C239BB /* NSError.m */, - 6E2803310974790A00EC542B /* NSException */, - 6E28060109747D5800EC542B /* NSFileManager.h */, - 6E28060209747D5800EC542B /* NSFileManager.m */, - 6E28060309747D5800EC542B /* NSFormatter.h */, - 6E28060409747D5800EC542B /* NSFormatter.m */, - 6E28060509747D5800EC542B /* NSGeometry.h */, - 6E28060609747D5800EC542B /* NSGeometry.m */, - 6E28060709747D5800EC542B /* NSHashTable.h */, - 6E28060809747D5800EC542B /* NSHashTable.m */, - 6E28060909747D5800EC542B /* NSHost.h */, - 6E28060A09747D5800EC542B /* NSHost.m */, - FEB9D6070B443BC500C239BB /* NSHTTPCookie */, - FE7477BE0BAC507F00829F4F /* NSIndexPath.h */, - FE7477BF0BAC507F00829F4F /* NSIndexPath.m */, - FEB9D4B60B44355900C239BB /* NSIndexSet */, - 6E28060F09747D5800EC542B /* NSInvocation.h */, - 6E28061009747D5800EC542B /* NSInvocation.m */, - FE4EC68B0BD9B41E0015F9E9 /* NSKeyedArchiving */, - FEB6CC800B4A1C7A004FADF2 /* NSKeyValueCoding */, - FEB9D4D10B4435D000C239BB /* NSLocale.h */, - FEB9D4D20B4435D000C239BB /* NSLocale.m */, - 6E2803320974791700EC542B /* NSLock */, - 6E28061109747D5800EC542B /* NSMapTable.h */, - 6E28061209747D5800EC542B /* NSMapTable.m */, - FE7477CC0BAC511600829F4F /* NSMetadata */, - 6E28061309747D5800EC542B /* NSMethodSignature.h */, - 6E28061409747D5800EC542B /* NSMethodSignature.m */, - FE74780A0BAC591800829F4F /* NSNetService */, - 6E2803340974793100EC542B /* NSNotification */, - 6E2803350974793800EC542B /* NSNotificationCenter */, - 6E2803360974794100EC542B /* NSNotificationQueue */, - 6E28061509747D5800EC542B /* NSNull.h */, - 6E28061609747D5800EC542B /* NSNull.m */, - 6E2803370974794A00EC542B /* NSNumber */, - 6E28061809747D5800EC542B /* NSNumberFormatter.m */, - 6E28061909747D5800EC542B /* NSObjCRuntime.h */, - 6E28061709747D5800EC542B /* NSNumberFormatter.h */, - 6E28061A09747D5800EC542B /* NSObjCRuntime.m */, - 6E2803380974795100EC542B /* NSObject */, - 6E28061B09747D5800EC542B /* NSPipe.h */, - 6E28061C09747D5800EC542B /* NSPipe.m */, - FE1365D70F154B3A000F2657 /* NSOperation */, - 6E28061D09747D5800EC542B /* NSPlatform.h */, - 6E28061E09747D5800EC542B /* NSPlatform.m */, - FEB9D6A90B443EA600C239BB /* NSPortNameServer */, - FEB9D47D0B4432C400C239BB /* NSPredicate */, - 6E28062109747D5800EC542B /* NSProcessInfo.h */, - 6E28062209747D5800EC542B /* NSProcessInfo.m */, - 6E2803390974795700EC542B /* NSPropertyList */, - 6E28062309747D5800EC542B /* NSProxy.h */, - 6E28062409747D5800EC542B /* NSProxy.m */, - 6E28062509747D5800EC542B /* NSRange.h */, - 6E28062609747D5800EC542B /* NSRange.m */, - 6E28033A0974796000EC542B /* NSRunLoop */, - 6E28033B0974796500EC542B /* NSScanner */, - FEFAA5341429095500CEE177 /* NSScript */, - 6E28033C0974796E00EC542B /* NSSet */, - FE7478410BAC5A8700829F4F /* NSSortDescriptor.h */, - FE7478420BAC5A8700829F4F /* NSSortDescriptor.m */, - FEB3F2B81404A92400059C8F /* NSSpellEngine.h */, - FEB3F2B91404A92400059C8F /* NSSpellEngine.m */, - FE463E19102CD59500B265D6 /* NSSpellServer.h */, - FE463E1A102CD59500B265D6 /* NSSpellServer.m */, - 6E28033D0974797500EC542B /* NSStream */, - 6E28033E0974799000EC542B /* NSString */, - 6E28033F0974799800EC542B /* NSStringsFileFormat */, - 6E28062709747D5800EC542B /* NSTask.h */, - 6E28062809747D5800EC542B /* NSTask.m */, - 6E280340097479A800EC542B /* NSThread */, - 6E280341097479AF00EC542B /* NSTimer */, - 6E2806A509747E9500EC542B /* NSTimeZone */, - 6E28062909747D5800EC542B /* NSUnarchiver.h */, - 6E28062A09747D5800EC542B /* NSUnarchiver.m */, - 6E280342097479EF00EC542B /* NSUndoManager */, - FEB9D5580B44389200C239BB /* NSURL */, - 6E280343097479F900EC542B /* NSUserDefaults */, - 6E28034409747A0100EC542B /* NSValue */, - FE9D95260C0386BD006DB214 /* NSValueTransformer */, - 6E28034509747A1A00EC542B /* NSZone */, - 6E28034609747A2500EC542B /* objc */, - FEB6CC400B4A1922004FADF2 /* objc.xcodeproj */, - FE5EA8000FA3896500536850 /* platform_bsd */, - FED70AF80C3B41F7000CBE5B /* platform_darwin */, - 6E28034709747A4900EC542B /* platform_linux */, - 6E28034809747A5F00EC542B /* platform_posix */, - 6E28034909747A6B00EC542B /* platform_solaris */, - 6E28034A09747A7700EC542B /* platform_windows */, - 034768DFFF38A50411DB9C8B /* Products */, - 089C1665FE841158C02AAC07 /* Resources */, - 6E28034B09747A8200EC542B /* xml */, - ); - indentWidth = 4; - name = Foundation; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - FE1CF95610233D94001414D4 /* illegalCharacterSet.bitmap */, - 6E280B2809747EF500EC542B /* NSCharacterSet */, - 6E280B2709747EC800EC542B /* NSTimeZone */, - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 6E280B2B09747F4900EC542B /* NSUserDefaults.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 499120E6178EA67F009310D4 /* Encoding */ = { - isa = PBXGroup; - children = ( - 499120E7178EA67F009310D4 /* CP1250.h */, - 499120E8178EA67F009310D4 /* CP1251.h */, - 499120E9178EA67F009310D4 /* CP1252.h */, - 499120EA178EA67F009310D4 /* CP1253.h */, - 499120EB178EA67F009310D4 /* CP1254.h */, - 499120EC178EA67F009310D4 /* CP1255.h */, - 499120ED178EA67F009310D4 /* CP1256.h */, - 499120EE178EA67F009310D4 /* CP1257.h */, - 499120EF178EA67F009310D4 /* CP1258.h */, - 499120F0178EA67F009310D4 /* CP874.h */, - 499120F1178EA67F009310D4 /* CP932.h */, - 499120F2178EA67F009310D4 /* CP936.h */, - 499120F3178EA67F009310D4 /* CP949.h */, - 499120F4178EA67F009310D4 /* CP950.h */, - ); - path = Encoding; - sourceTree = ""; - }; - 6E280310097478A700EC542B /* NSArray */ = { - isa = PBXGroup; - children = ( - 6E280311097478CC00EC542B /* NSArray_concrete.h */, - 6E280312097478CC00EC542B /* NSArray_concrete.m */, - 6E280313097478CC00EC542B /* NSArray_placeholder.h */, - 6E280314097478CC00EC542B /* NSArray_placeholder.m */, - 6E280315097478CC00EC542B /* NSArray.h */, - 6E280316097478CC00EC542B /* NSArray.m */, - 6E280317097478CC00EC542B /* NSEnumerator_array.h */, - 6E280318097478CC00EC542B /* NSEnumerator_array.m */, - 6E280319097478CC00EC542B /* NSEnumerator_arrayReverse.h */, - 6E28031A097478CC00EC542B /* NSEnumerator_arrayReverse.m */, - 6E28031B097478CC00EC542B /* NSMutableArray_concrete.h */, - 6E28031C097478CC00EC542B /* NSMutableArray_concrete.m */, - 6E28031D097478CC00EC542B /* NSMutableArray.h */, - 6E28031E097478CC00EC542B /* NSMutableArray.m */, - ); - path = NSArray; - sourceTree = ""; - }; - 6E28032D097478E900EC542B /* NSAttributedString */ = { - isa = PBXGroup; - children = ( - 6E28034C09747ABE00EC542B /* NSAttributedString_manyAttributes.h */, - 6E28034D09747ABE00EC542B /* NSAttributedString_manyAttributes.m */, - 6E28034E09747ABE00EC542B /* NSAttributedString_nilAttributes.h */, - 6E28034F09747ABE00EC542B /* NSAttributedString_nilAttributes.m */, - 6E28035009747ABE00EC542B /* NSAttributedString_oneAttribute.h */, - 6E28035109747ABE00EC542B /* NSAttributedString_oneAttribute.m */, - 6E28035209747ABE00EC542B /* NSAttributedString_placeholder.h */, - 6E28035309747ABE00EC542B /* NSAttributedString_placeholder.m */, - 6E28035409747ABE00EC542B /* NSAttributedString.h */, - 6E28035509747ABE00EC542B /* NSAttributedString.m */, - 6E28035609747ABE00EC542B /* NSMutableAttributedString_concrete.h */, - 6E28035709747ABE00EC542B /* NSMutableAttributedString_concrete.m */, - 6E28035809747ABE00EC542B /* NSMutableAttributedString.h */, - 6E28035909747ABE00EC542B /* NSMutableAttributedString.m */, - 6E28035A09747ABE00EC542B /* NSMutableString_proxyToMutableAttributedString.h */, - 6E28035B09747ABE00EC542B /* NSMutableString_proxyToMutableAttributedString.m */, - 6E28035C09747ABE00EC542B /* NSRangeEntries.h */, - 6E28035D09747ABE00EC542B /* NSRangeEntries.m */, - ); - path = NSAttributedString; - sourceTree = ""; - }; - 6E28032E097478F200EC542B /* NSAutoreleasePool */ = { - isa = PBXGroup; - children = ( - 6E28037009747ADF00EC542B /* NSAutoreleasePool-private.h */, - 6E28037109747ADF00EC542B /* NSAutoreleasePool.h */, - 6E28037209747ADF00EC542B /* NSAutoreleasePool.m */, - ); - path = NSAutoreleasePool; - sourceTree = ""; - }; - 6E28032F097478FA00EC542B /* NSData */ = { - isa = PBXGroup; - children = ( - 6E28037609747AFA00EC542B /* NSData_concrete.h */, - 6E28037709747AFA00EC542B /* NSData_concrete.m */, - 6E28037809747AFA00EC542B /* NSData_mapped.h */, - 6E28037909747AFA00EC542B /* NSData_mapped.m */, - 6E28037A09747AFA00EC542B /* NSData.h */, - 6E28037B09747AFA00EC542B /* NSData.m */, - 6E28037C09747AFA00EC542B /* NSMutableData_concrete.h */, - 6E28037D09747AFA00EC542B /* NSMutableData_concrete.m */, - 6E28037E09747AFA00EC542B /* NSMutableData.h */, - 6E28037F09747AFA00EC542B /* NSMutableData.m */, - ); - path = NSData; - sourceTree = ""; - }; - 6E2803300974790300EC542B /* NSDictionary */ = { - isa = PBXGroup; - children = ( - 6E28038A09747B1500EC542B /* NSDictionary_mapTable.h */, - 6E28038B09747B1500EC542B /* NSDictionary_mapTable.m */, - 6E28038C09747B1500EC542B /* NSDictionary.h */, - 6E28038D09747B1500EC542B /* NSDictionary.m */, - 6E28038E09747B1500EC542B /* NSEnumerator_dictionaryKeys.h */, - 6E28038F09747B1500EC542B /* NSEnumerator_dictionaryKeys.m */, - 6E28039009747B1500EC542B /* NSEnumerator_dictionaryObjects.h */, - 6E28039109747B1500EC542B /* NSEnumerator_dictionaryObjects.m */, - 6E28039209747B1500EC542B /* NSMutableDictionary_mapTable.h */, - 6E28039309747B1500EC542B /* NSMutableDictionary_mapTable.m */, - 6E28039409747B1500EC542B /* NSMutableDictionary.h */, - 6E28039509747B1500EC542B /* NSMutableDictionary.m */, - ); - path = NSDictionary; - sourceTree = ""; - }; - 6E2803310974790A00EC542B /* NSException */ = { - isa = PBXGroup; - children = ( - FEA317850FD5843900F480D4 /* NSRaiseException.h */, - 6E2803BA09747B6200EC542B /* NSException.h */, - 6E2803BB09747B6200EC542B /* NSException.m */, - 6E2803BE09747B6200EC542B /* NSRaise.h */, - 6E2803BF09747B6200EC542B /* NSRaise.m */, - ); - path = NSException; - sourceTree = ""; - }; - 6E2803320974791700EC542B /* NSLock */ = { - isa = PBXGroup; - children = ( - 2692499E1157AC7B00A96CEB /* NSCondition.m */, - FED311CA0BCC0E1D00552615 /* NSConditionLock.h */, - FED311CB0BCC0E1D00552615 /* NSConditionLock.m */, - 6E2803C609747B7100EC542B /* NSLock.h */, - 6E2803C709747B7100EC542B /* NSLock.m */, - C844CF930DA7EBE500A8F3A2 /* NSRecursiveLock.h */, - C844CF940DA7EBE500A8F3A2 /* NSRecursiveLock.m */, - C844CFCE0DA7F21400A8F3A2 /* NSSynchronization.h */, - C844CFCF0DA7F21400A8F3A2 /* NSSynchronization.m */, - ); - path = NSLock; - sourceTree = ""; - }; - 6E2803340974793100EC542B /* NSNotification */ = { - isa = PBXGroup; - children = ( - 6E2803DE09747B8600EC542B /* NSNotification_concrete.h */, - 6E2803DF09747B8600EC542B /* NSNotification_concrete.m */, - 6E2803E009747B8600EC542B /* NSNotification.h */, - 6E2803E109747B8600EC542B /* NSNotification.m */, - ); - name = NSNotification; - sourceTree = ""; - }; - 6E2803350974793800EC542B /* NSNotificationCenter */ = { - isa = PBXGroup; - children = ( - 6E2803E609747B9100EC542B /* NSNotificationCenter.h */, - 6E2803E709747B9100EC542B /* NSNotificationCenter.m */, - 6E2803E809747B9100EC542B /* NSNotificationObserver.h */, - 6E2803E909747B9100EC542B /* NSNotificationObserver.m */, - 6E2803EA09747B9100EC542B /* NSObjectToObservers.h */, - 6E2803EB09747B9100EC542B /* NSObjectToObservers.m */, - ); - name = NSNotificationCenter; - sourceTree = ""; - }; - 6E2803360974794100EC542B /* NSNotificationQueue */ = { - isa = PBXGroup; - children = ( - 6E2803F209747BAA00EC542B /* NSNotificationAndModes.h */, - 6E2803F309747BAA00EC542B /* NSNotificationAndModes.m */, - 6E2803F409747BAA00EC542B /* NSNotificationQueue-Private.h */, - 6E2803F509747BAA00EC542B /* NSNotificationQueue.h */, - 6E2803F609747BAA00EC542B /* NSNotificationQueue.m */, - ); - name = NSNotificationQueue; - sourceTree = ""; - }; - 6E2803370974794A00EC542B /* NSNumber */ = { - isa = PBXGroup; - children = ( - FE937F3E1358DC8000C93531 /* NSNumber_CF.h */, - FE937F3F1358DC8000C93531 /* NSNumber_CF.m */, - 1A28B5B2109096950019EFC6 /* NSConstObject.h */, - 6E2803FC09747BB300EC542B /* NSNumber_BOOL.h */, - 6E2803FD09747BB300EC542B /* NSNumber_BOOL.m */, - 1A27BFF01090CBCD00C44FD7 /* NSNumber_BOOL_const_impl.h */, - 1ACAB27B108C5B010057A542 /* NSNumber_BOOL_const.h */, - 1A27C0601090D1BE00C44FD7 /* NSNumber_BOOL_const.m */, - 6E2803FE09747BB300EC542B /* NSNumber_char.h */, - 6E2803FF09747BB300EC542B /* NSNumber_char.m */, - 6E28040009747BB300EC542B /* NSNumber_double.h */, - 6E28040109747BB300EC542B /* NSNumber_double.m */, - 1ACAB27C108C5B010057A542 /* NSNumber_double_const.h */, - 6E28040209747BB300EC542B /* NSNumber_float.h */, - 6E28040309747BB300EC542B /* NSNumber_float.m */, - 6E28040409747BB300EC542B /* NSNumber_int.h */, - 6E28040509747BB300EC542B /* NSNumber_int.m */, - 6E28040609747BB300EC542B /* NSNumber_long.h */, - 6E28040709747BB300EC542B /* NSNumber_long.m */, - 6E28040809747BB300EC542B /* NSNumber_longLong.h */, - 6E28040909747BB300EC542B /* NSNumber_longLong.m */, - 6E28040A09747BB300EC542B /* NSNumber_placeholder.h */, - 6E28040B09747BB300EC542B /* NSNumber_placeholder.m */, - 6E28040C09747BB300EC542B /* NSNumber_short.h */, - 6E28040D09747BB300EC542B /* NSNumber_short.m */, - 6E28040E09747BB300EC542B /* NSNumber_unsignedChar.h */, - 6E28040F09747BB300EC542B /* NSNumber_unsignedChar.m */, - 6E28041009747BB300EC542B /* NSNumber_unsignedInt.h */, - 6E28041109747BB300EC542B /* NSNumber_unsignedInt.m */, - 6E28041209747BB300EC542B /* NSNumber_unsignedLong.h */, - 6E28041309747BB300EC542B /* NSNumber_unsignedLong.m */, - 6E28041409747BB300EC542B /* NSNumber_unsignedLongLong.h */, - 6E28041509747BB300EC542B /* NSNumber_unsignedLongLong.m */, - 6E28041609747BB300EC542B /* NSNumber_unsignedShort.h */, - 6E28041709747BB300EC542B /* NSNumber_unsignedShort.m */, - 6E28041809747BB300EC542B /* NSNumber.h */, - 6E28041909747BB300EC542B /* NSNumber.m */, - ); - name = NSNumber; - sourceTree = ""; - }; - 6E2803380974795100EC542B /* NSObject */ = { - isa = PBXGroup; - children = ( - 151B5CC3105EA25E009092D5 /* objc_msg_sendv-Disabled.m */, - FE3B5D390FF3A6E6005E7605 /* platform_linux */, - FE3B5D380FF3A6DA005E7605 /* platform_windows */, - FE3B5D350FF3A6CF005E7605 /* platform_solaris */, - FE1A0D1F0F8BADBA00FC4CC7 /* forwarding.h */, - FE1A0D200F8BADBA00FC4CC7 /* forwarding.m */, - 6E28043809747BBE00EC542B /* NSObject.h */, - 6E28043909747BBE00EC542B /* NSObject.m */, - 6E28043B09747BBE00EC542B /* NSZombieObject.h */, - 6E28043C09747BBE00EC542B /* NSZombieObject.m */, - C8BAA5710DDEFC6C005C4769 /* objc_size_alignment.h */, - C8BAA5720DDEFC6C005C4769 /* objc_size_alignment.m */, - ); - path = NSObject; - sourceTree = ""; - }; - 6E2803390974795700EC542B /* NSPropertyList */ = { - isa = PBXGroup; - children = ( - FE3C473C112AF7FC0099DAB8 /* CFUID.h */, - FE3C473D112AF7FC0099DAB8 /* CFUID.m */, - FEA9D0880D16C55E00123D51 /* NSPropertyListReader_binary1.h */, - FEA9D0890D16C55E00123D51 /* NSPropertyListReader_binary1.m */, - FE53BE170BA9EBBE0050277F /* NSOldXMLAttribute.h */, - FE53BE180BA9EBBE0050277F /* NSOldXMLAttribute.m */, - FE53BE190BA9EBBE0050277F /* NSOldXMLDocument.h */, - FE53BE1A0BA9EBBE0050277F /* NSOldXMLDocument.m */, - FE53BE1B0BA9EBBE0050277F /* NSOldXMLElement.h */, - FE53BE1C0BA9EBBE0050277F /* NSOldXMLElement.m */, - FE53BE1D0BA9EBBE0050277F /* NSOldXMLReader.h */, - FE53BE1E0BA9EBBE0050277F /* NSOldXMLReader.m */, - 6E28044209747BCB00EC542B /* NSPropertyListReader_vintage.h */, - 6E28044309747BCB00EC542B /* NSPropertyListReader_vintage.m */, - 6E28044409747BCB00EC542B /* NSPropertyListWriter_vintage.h */, - 6E28044509747BCB00EC542B /* NSPropertyListWriter_vintage.m */, - 6E0084A20A19363F00F78605 /* NSPropertyListReader_xml1.h */, - 6E0084A30A19363F00F78605 /* NSPropertyListReader_xml1.m */, - C851D86B0E40E0D3001DAB69 /* NSPropertyListWriter_xml1.m */, - C851D86C0E40E0D3001DAB69 /* NSPropertyListWriter_xml1.h */, - 6E0084CD0A19371600F78605 /* NSPropertyListReader.h */, - 6E0084CE0A19371600F78605 /* NSPropertyListReader.m */, - FEB9D4ED0B4436FD00C239BB /* NSPropertyList.h */, - FEB9D4EE0B4436FD00C239BB /* NSPropertyList.m */, - ); - path = NSPropertyList; - sourceTree = ""; - }; - 6E28033A0974796000EC542B /* NSRunLoop */ = { - isa = PBXGroup; - children = ( - 6E28060B09747D5800EC542B /* NSInputSource.h */, - 6E28060C09747D5800EC542B /* NSInputSource.m */, - 6E28060D09747D5800EC542B /* NSInputSourceSet.h */, - 6E28060E09747D5800EC542B /* NSInputSourceSet.m */, - 6E28044A09747BD100EC542B /* NSDelayedPerform.h */, - 6E28044B09747BD100EC542B /* NSDelayedPerform.m */, - 6E28044C09747BD100EC542B /* NSOrderedPerform.h */, - 6E28044D09747BD100EC542B /* NSOrderedPerform.m */, - 6E28044E09747BD100EC542B /* NSRunLoop-InputSource.h */, - 6E28044F09747BD100EC542B /* NSRunLoop.h */, - 6E28045009747BD100EC542B /* NSRunLoop.m */, - 6E28045109747BD100EC542B /* NSRunLoopState.h */, - 6E28045209747BD100EC542B /* NSRunLoopState.m */, - ); - name = NSRunLoop; - sourceTree = ""; - }; - 6E28033B0974796500EC542B /* NSScanner */ = { - isa = PBXGroup; - children = ( - 6E28045C09747BD900EC542B /* NSScanner_concrete.h */, - 6E28045D09747BD900EC542B /* NSScanner_concrete.m */, - 6E28045E09747BD900EC542B /* NSScanner.h */, - 6E28045F09747BD900EC542B /* NSScanner.m */, - ); - name = NSScanner; - sourceTree = ""; - }; - 6E28033C0974796E00EC542B /* NSSet */ = { - isa = PBXGroup; - children = ( - 6E28046409747BE200EC542B /* NSCountedSet.h */, - 6E28046509747BE200EC542B /* NSCountedSet.m */, - 6E28046609747BE200EC542B /* NSEnumerator_set.h */, - 6E28046709747BE200EC542B /* NSEnumerator_set.m */, - 6E28046809747BE200EC542B /* NSInlineSetTable.h */, - 6E28046909747BE200EC542B /* NSInlineSetTable.m */, - 6E28046A09747BE200EC542B /* NSMutableSet_concrete.h */, - 6E28046B09747BE200EC542B /* NSMutableSet_concrete.m */, - 6E28046C09747BE200EC542B /* NSMutableSet.h */, - 6E28046D09747BE200EC542B /* NSMutableSet.m */, - 6E28046E09747BE200EC542B /* NSSet_concrete.h */, - 6E28046F09747BE200EC542B /* NSSet_concrete.m */, - 6E28047009747BE200EC542B /* NSSet_placeholder.h */, - 6E28047109747BE200EC542B /* NSSet_placeholder.m */, - 6E28047209747BE200EC542B /* NSSet.h */, - 6E28047309747BE200EC542B /* NSSet.m */, - ); - name = NSSet; - sourceTree = ""; - }; - 6E28033D0974797500EC542B /* NSStream */ = { - isa = PBXGroup; - children = ( - FE9C1B8A1125A649002DA20B /* CFSSLHandler.h */, - FE9C1B8B1125A649002DA20B /* CFSSLHandler.m */, - FE7FE5BF0D7CF08B006CCA28 /* NSFileHandle_stream.h */, - FE7FE5C00D7CF08B006CCA28 /* NSFileHandle_stream.m */, - 6E2805FF09747D5800EC542B /* NSFileHandle.h */, - 6E28060009747D5800EC542B /* NSFileHandle.m */, - 6E28048409747BED00EC542B /* NSInputStream.h */, - 6E28048509747BED00EC542B /* NSInputStream.m */, - FEB9D30C0B4374F700C239BB /* NSInputStream_data.h */, - FEB9D30D0B4374F700C239BB /* NSInputStream_data.m */, - FEB9D3320B43786400C239BB /* NSInputStream_file.h */, - FEB9D3330B43786400C239BB /* NSInputStream_file.m */, - 6EAD772F0AAF1283004BCCC9 /* NSInputStream_socket.h */, - 6EAD77300AAF1283004BCCC9 /* NSInputStream_socket.m */, - 6E28048609747BED00EC542B /* NSOutputStream.h */, - 6E28048709747BED00EC542B /* NSOutputStream.m */, - FEB9D3670B437C9600C239BB /* NSOutputStream_buffer.h */, - FEB9D3680B437C9600C239BB /* NSOutputStream_buffer.m */, - FEB9D31A0B43781500C239BB /* NSOutputStream_data.h */, - FEB9D31B0B43781500C239BB /* NSOutputStream_data.m */, - FEB9D3250B43783C00C239BB /* NSOutputStream_file.h */, - FEB9D3260B43783C00C239BB /* NSOutputStream_file.m */, - 6EAD77390AAF1293004BCCC9 /* NSOutputStream_socket.h */, - 6EAD773A0AAF1293004BCCC9 /* NSOutputStream_socket.m */, - FE35CBD90B4AD47400FE7AB3 /* NSSelectInputSource.h */, - FE35CBDA0B4AD47400FE7AB3 /* NSSelectInputSource.m */, - FE35D3AA0B4F369C00FE7AB3 /* NSSelectInputSourceSet.h */, - FE35D3AB0B4F369C00FE7AB3 /* NSSelectInputSourceSet.m */, - FE35D2D90B4ECDBD00FE7AB3 /* NSSelectSet.h */, - FE35D2DA0B4ECDBD00FE7AB3 /* NSSelectSet.m */, - FE35CBD70B4AD47400FE7AB3 /* NSSocket.h */, - FE35CBD80B4AD47400FE7AB3 /* NSSocket.m */, - 6E28048809747BED00EC542B /* NSStream.h */, - 6E28048909747BED00EC542B /* NSStream.m */, - ); - path = NSStream; - sourceTree = ""; - }; - 6E28033E0974799000EC542B /* NSString */ = { - isa = PBXGroup; - children = ( - CF0F7ABF1AE9E7C1003EA762 /* NSString_isoLatin2.h */, - CF0F7AC01AE9E7C1003EA762 /* NSString_isoLatin2.m */, - 499120E6178EA67F009310D4 /* Encoding */, - 499120D2178EA58D009310D4 /* NSStringEncoder.h */, - 499120D3178EA58D009310D4 /* NSStringEncoder.m */, - FE86D406114743AC0010FE05 /* NSStringEncodingNames.plist */, - FE60143A1042FDD2008A7357 /* NSString_defaultEncoding.h */, - FE452E80102097EF00585DFE /* NSString_macOSRoman.h */, - FE452E81102097EF00585DFE /* NSString_macOSRoman.m */, - FE8C913E0FFD1E430027C889 /* NSString_win1252.h */, - FE8C913F0FFD1E430027C889 /* NSString_win1252.m */, - 6E28049209747BF800EC542B /* NSConstantString-Impl.m */, - 6E28049309747BF800EC542B /* NSString_cString.h */, - 6E28049409747BF800EC542B /* NSString_cString.m */, - 6E28049509747BF800EC542B /* NSString_isoLatin1.h */, - 6E28049609747BF800EC542B /* NSString_isoLatin1.m */, - 6E28049909747BF800EC542B /* NSMutableString.h */, - 6E28049A09747BF800EC542B /* NSMutableString.m */, - 6E28049C09747BF800EC542B /* NSMutableString_unicodePtr.h */, - 6E28049D09747BF800EC542B /* NSMutableString_unicodePtr.m */, - 6E28049E09747BF800EC542B /* NSString_nextstepCString.h */, - 6E28049F09747BF800EC542B /* NSString_nextstepCString.m */, - 6E2804A009747BF800EC542B /* NSString_nextstep.h */, - 6E2804A109747BF800EC542B /* NSString_nextstep.m */, - 6E2804A209747BF800EC542B /* NSPathUtilities.h */, - 6E2804A309747BF800EC542B /* NSPathUtilities.m */, - 6E2804A409747BF800EC542B /* NSString_placeholder.h */, - 6E2804A509747BF800EC542B /* NSString_placeholder.m */, - 6E2804A609747BF800EC542B /* NSString.h */, - 6E2804A709747BF800EC542B /* NSString.m */, - 6E2804A809747BF800EC542B /* NSStringFileIO.h */, - 6E2804A909747BF800EC542B /* NSStringFileIO.m */, - 6E2804AA09747BF800EC542B /* NSStringFormatter.h */, - 6E2804AB09747BF800EC542B /* NSStringFormatter.m */, - 6E2804AC09747BF800EC542B /* NSStringHashing.h */, - 6E2804AD09747BF800EC542B /* NSString_unicode.h */, - 6E2804AE09747BF800EC542B /* NSString_unicode.m */, - 6E2804AF09747BF800EC542B /* NSString_unicodePtr.h */, - 6E2804B009747BF800EC542B /* NSString_unicodePtr.m */, - 6E2804B109747BF800EC542B /* NSStringUTF8.h */, - 6E2804B209747BF800EC542B /* NSStringUTF8.m */, - 6E2804B309747BF800EC542B /* NSStringSymbol.h */, - 6E2804B409747BF800EC542B /* NSStringSymbol.m */, - 6E2804B509747BF800EC542B /* NSUnicodeCaseMapping.h */, - 6E2804B609747BF800EC542B /* NSUnicodeCaseMapping.m */, - 6E2804B709747BF800EC542B /* unibuffer.h */, - 6E2804B809747BF800EC542B /* unibuffer.m */, - C816EBED0F0A763500EDC3EB /* NSDarwinString.h */, - C816EBEE0F0A763500EDC3EB /* NSDarwinString.m */, - ); - path = NSString; - sourceTree = ""; - }; - 6E28033F0974799800EC542B /* NSStringsFileFormat */ = { - isa = PBXGroup; - children = ( - 6E2804E209747C0500EC542B /* NSStringsFileParser.h */, - 6E2804E309747C0500EC542B /* NSStringsFileParser.m */, - ); - name = NSStringsFileFormat; - sourceTree = ""; - }; - 6E280340097479A800EC542B /* NSThread */ = { - isa = PBXGroup; - children = ( - 6E2804E609747C1A00EC542B /* NSThread-Private.h */, - 6E2804E709747C1A00EC542B /* NSThread.h */, - 6E2804E809747C1A00EC542B /* NSThread.m */, - ); - name = NSThread; - sourceTree = ""; - }; - 6E280341097479AF00EC542B /* NSTimer */ = { - isa = PBXGroup; - children = ( - 6E2804EC09747C4800EC542B /* NSTimer_concrete.h */, - 6E2804ED09747C4800EC542B /* NSTimer_concrete.m */, - 6E2804EE09747C4800EC542B /* NSTimer_invocation.h */, - 6E2804EF09747C4800EC542B /* NSTimer_invocation.m */, - 6E2804F009747C4800EC542B /* NSTimer_targetAction.h */, - 6E2804F109747C4800EC542B /* NSTimer_targetAction.m */, - 6E2804F209747C4800EC542B /* NSTimer.h */, - 6E2804F309747C4800EC542B /* NSTimer.m */, - ); - name = NSTimer; - sourceTree = ""; - }; - 6E280342097479EF00EC542B /* NSUndoManager */ = { - isa = PBXGroup; - children = ( - 6E2804FC09747C5B00EC542B /* NSUndoGroup.h */, - 6E2804FD09747C5B00EC542B /* NSUndoGroup.m */, - 6E2804FE09747C5B00EC542B /* NSUndoManager.h */, - 6E2804FF09747C5B00EC542B /* NSUndoManager.m */, - ); - name = NSUndoManager; - sourceTree = ""; - }; - 6E280343097479F900EC542B /* NSUserDefaults */ = { - isa = PBXGroup; - children = ( - 6E28050409747C6800EC542B /* NSPersistantDomain.h */, - 6E28050509747C6800EC542B /* NSPersistantDomain.m */, - 6E28050609747C6800EC542B /* NSUserDefaults.h */, - 6E28050709747C6800EC542B /* NSUserDefaults.m */, - ); - name = NSUserDefaults; - sourceTree = ""; - }; - 6E28034409747A0100EC542B /* NSValue */ = { - isa = PBXGroup; - children = ( - 6E28050C09747C7300EC542B /* NSValue_concrete.h */, - 6E28050D09747C7300EC542B /* NSValue_concrete.m */, - 6E28050E09747C7300EC542B /* NSValue_nonRetainedObject.h */, - 6E28050F09747C7300EC542B /* NSValue_nonRetainedObject.m */, - 6E28051009747C7300EC542B /* NSValue_placeholder.h */, - 6E28051109747C7300EC542B /* NSValue_placeholder.m */, - 6E28051209747C7300EC542B /* NSValue_pointer.h */, - 6E28051309747C7300EC542B /* NSValue_pointer.m */, - 6E28051409747C7300EC542B /* NSValue.h */, - 6E28051509747C7300EC542B /* NSValue.m */, - ); - name = NSValue; - sourceTree = ""; - }; - 6E28034509747A1A00EC542B /* NSZone */ = { - isa = PBXGroup; - children = ( - 6E28052009747C7E00EC542B /* NSVirtualMemory.m */, - 6E28052109747C7E00EC542B /* NSZone.h */, - 6E28052209747C7E00EC542B /* NSZone.m */, - ); - name = NSZone; - sourceTree = ""; - }; - 6E28034609747A2500EC542B /* objc */ = { - isa = PBXGroup; - children = ( - CF595A8B1B1ABFB600F7BE40 /* objc_lock.h */, - CF7FA1FF1B18006E00840DB1 /* dyld.c */, - CF652CF81B116D4E0090D2FE /* objc_arc.c */, - CF652CF61B116D180090D2FE /* objc_exception.m */, - CF652CEE1B116C5D0090D2FE /* objc_log.c */, - CF652CEF1B116C5D0090D2FE /* objc_log.h */, - CF652CF01B116C5D0090D2FE /* objc_tls.c */, - CF652CF11B116C5D0090D2FE /* objc_tls.h */, - 492B5DAA17468F0C0013F119 /* objc_association.m */, - FE6CF89E1152743100B6D893 /* objc_malloc.h */, - FE6CF89F1152743100B6D893 /* objc_malloc.c */, - FE35CAEC0B4AB85800FE7AB3 /* objc.m */, - FEA36F250C24C57000025A9C /* objc_cache.h */, - 6E28052909747C8900EC542B /* objc_class.h */, - 6E28052A09747C8900EC542B /* objc_class.c */, - C8B53BD50E6AC7C500E4467E /* objc_debugHelpers.h */, - C8B53BD60E6AC7C500E4467E /* objc_debugHelpers.m */, - 6E28052609747C8900EC542B /* objc_functions.c */, - FE88A4940F8A7E050081CFC1 /* objc_ivar.c */, - FE88A49E0F8A7E9A0081CFC1 /* objc_method.c */, - 6E8115B20A55CB99000DE3F1 /* objc_msg_lookup.c */, - FEDB762F0F8AD40700AC545D /* objc_object.h */, - FEDB76300F8AD40700AC545D /* objc_object.c */, - FEBF545A0F93AE8A005DC684 /* objc_property.c */, - FEBF53670F926025005DC684 /* objc_protocol.h */, - FEBF535B0F925FA3005DC684 /* objc_protocol.c */, - 6E28053509747C8900EC542B /* objc_sel.h */, - 6E28053609747C8900EC542B /* objc_sel.c */, - 6E28052709747C8900EC542B /* ObjCArray.h */, - 6E28052809747C8900EC542B /* ObjCArray.c */, - 6E28052B09747C8900EC542B /* ObjCDynamicModule.h */, - 6E28052C09747C8900EC542B /* ObjCDynamicModule.c */, - 6E28052F09747C8900EC542B /* ObjCHashTable.h */, - 6E28053009747C8900EC542B /* ObjCHashTable.c */, - 6E28053309747C8900EC542B /* ObjCModule.h */, - 6E28053409747C8900EC542B /* ObjCModule.c */, - FE88A4D50F8A9DE00081CFC1 /* Object.m */, - FE1A0E360F8D508500FC4CC7 /* platform_darwin */, - 6E28055A09747C8F00EC542B /* platform_linux */, - 6E28055B09747C9900EC542B /* platform_solaris */, - 6E28055C09747CAC00EC542B /* platform_windows */, - 6E28053F09747C8900EC542B /* Protocol.m */, - ); - name = objc; - path = ../objc; - sourceTree = ""; - }; - 6E28034709747A4900EC542B /* platform_linux */ = { - isa = PBXGroup; - children = ( - CFCEA4681B04318B00B3B087 /* NSPlatform_linux.h */, - CFCEA4691B04318B00B3B087 /* NSPlatform_linux.m */, - C64663DF15590EAF00A162B8 /* libmain.m */, - 6E28056B09747CE100EC542B /* NSMemoryFunctions_linux.m */, - ); - name = platform_linux; - sourceTree = ""; - }; - 6E28034809747A5F00EC542B /* platform_posix */ = { - isa = PBXGroup; - children = ( - C6BC3CB31162305000DFC16C /* NSTimeZone_posix.h */, - C6BC3CB41162305000DFC16C /* NSTimeZone_posix.m */, - 26924AB41157BF7600A96CEB /* NSCondition_posix.m */, - 26924AB51157BF7600A96CEB /* NSCondition_posix.h */, - FE6014221042FD49008A7357 /* NSString_defaultEncoding_posix.m */, - FEA9D3090F5D9C5A00772064 /* NSRunLoopState_posix.h */, - FEA9D30A0F5D9C5A00772064 /* NSRunLoopState_posix.m */, - 6E28057609747CEE00EC542B /* NSFileHandle_posix.h */, - 6E28057709747CEE00EC542B /* NSFileHandle_posix.m */, - 6E28057809747CEE00EC542B /* NSFileManager_posix.h */, - 6E28057909747CEE00EC542B /* NSFileManager_posix.m */, - 6E28057A09747CEE00EC542B /* NSLock_posix.h */, - 6E28057B09747CEE00EC542B /* NSLock_posix.m */, - 6E28057C09747CEE00EC542B /* NSMemoryFunctions_posix.m */, - 6E28057D09747CEE00EC542B /* NSPersistantDomain_posix.h */, - 6E28057E09747CEE00EC542B /* NSPersistantDomain_posix.m */, - 6E28057F09747CEE00EC542B /* NSPipe_posix.h */, - 6E28058009747CEE00EC542B /* NSPipe_posix.m */, - 6E28058109747CEE00EC542B /* NSPlatform_posix.h */, - 6E28058209747CEE00EC542B /* NSPlatform_posix.m */, - FE35D6470B52A3E400FE7AB3 /* NSSelectSet_bsd.h */, - FE35D6480B52A3E400FE7AB3 /* NSSelectSet_bsd.m */, - FE35D66C0B52AFBC00FE7AB3 /* NSSocket_bsd.h */, - FE35D66D0B52AFBC00FE7AB3 /* NSSocket_bsd.m */, - 6E28058309747CEE00EC542B /* NSTask_posix.h */, - 6E28058409747CEE00EC542B /* NSTask_posix.m */, - C8C39E000EAB6646002568A3 /* NSConditionLock_posix.h */, - C8C39E010EAB6646002568A3 /* NSConditionLock_posix.m */, - 0DE1C157151665AB003781E1 /* NSRecursiveLock_posix.h */, - 0DE1C158151665AB003781E1 /* NSRecursiveLock_posix.m */, - C89B473D0F5C6AB50070120D /* NSCancelInputSource_posix.h */, - C89B473E0F5C6AB50070120D /* NSCancelInputSource_posix.m */, - 0D94DD60153E859E0048B351 /* NSSocketPort_posix.h */, - 0D94DD61153E859E0048B351 /* NSSocketPort_posix.m */, - ); - name = platform_posix; - sourceTree = ""; - }; - 6E28034909747A6B00EC542B /* platform_solaris */ = { - isa = PBXGroup; - children = ( - CF0F7AC41AE9EB16003EA762 /* NSBacktraceFunctions_solaris.m */, - C64663E315590EC600A162B8 /* libmain.m */, - 6E28059509747CF900EC542B /* NSPlatform_solaris.h */, - 6E28059609747CF900EC542B /* NSPlatform_solaris.m */, - 6E28059909747CF900EC542B /* SolarisMemoryFunctions.m */, - ); - name = platform_solaris; - sourceTree = ""; - }; - 6E28034A09747A7700EC542B /* platform_windows */ = { - isa = PBXGroup; - children = ( - CF0F7AC61AE9EB23003EA762 /* NSBacktraceFunctions_win32.m */, - FEEA64B312B674A200E6E2C8 /* NSRecursiveLock_win32.h */, - FEEA64B412B674A200E6E2C8 /* NSRecursiveLock_win32.m */, - C6BC3CAF1162303400DFC16C /* NSTimeZone_win32.h */, - C6BC3CB01162303400DFC16C /* NSTimeZone_win32.m */, - 269249CA1157AD6500A96CEB /* NSCondition_win32.m */, - 269249CB1157AD6500A96CEB /* NSCondition_win32.h */, - FE6014291042FD6B008A7357 /* NSString_defaultEncoding_windows.m */, - 6E28059F09747D0400EC542B /* dllmain.m */, - C89B47350F5C6A4B0070120D /* NSCancelInputSource_win32.h */, - C89B47360F5C6A4B0070120D /* NSCancelInputSource_win32.m */, - C8C9700E0EBDBC63009CE9BC /* NSConditionLock_win32.h */, - C8C9700F0EBDBC63009CE9BC /* NSConditionLock_win32.m */, - 6E28057509747CEE00EC542B /* NSConstantString.m */, - 6E2805A309747D0400EC542B /* NSFileHandle_win32.h */, - 6E2805A409747D0400EC542B /* NSFileHandle_win32.m */, - 6E2805A509747D0400EC542B /* NSFileManager_win32.h */, - 6E2805A609747D0400EC542B /* NSFileManager_win32.m */, - 6E2805A709747D0400EC542B /* NSHandleMonitor_win32.h */, - 6E2805A809747D0400EC542B /* NSHandleMonitor_win32.m */, - 6E2805A909747D0400EC542B /* NSHandleMonitorSet_win32.h */, - 6E2805AA09747D0400EC542B /* NSHandleMonitorSet_win32.m */, - FE9E1A2F0D5C0676004AE7BA /* NSLocale+windows.h */, - FE9E1A300D5C0676004AE7BA /* NSLocale+windows.m */, - 6E2805AB09747D0400EC542B /* NSLock_win32.h */, - 6E2805AC09747D0400EC542B /* NSLock_win32.m */, - 6E2805AE09747D0400EC542B /* NSMemoryFunctions_win32.m */, - 6E2805AF09747D0400EC542B /* NSParentDeathMonitor_win32.h */, - 6E2805B009747D0400EC542B /* NSParentDeathMonitor_win32.m */, - 6E2805B109747D0400EC542B /* NSPersistantDomain_win32.h */, - 6E2805B209747D0400EC542B /* NSPersistantDomain_win32.m */, - 6E2805B309747D0400EC542B /* NSPipe_win32.h */, - 6E2805B409747D0400EC542B /* NSPipe_win32.m */, - 6E2805B509747D0400EC542B /* NSPlatform_win32.h */, - 6E2805B609747D0400EC542B /* NSPlatform_win32.m */, - 6E2805B709747D0400EC542B /* NSReadInBackground_win32.h */, - 6E2805B809747D0400EC542B /* NSReadInBackground_win32.m */, - FEA9D3050F5D9C2100772064 /* NSRunLoopState_windows.h */, - FEA9D3060F5D9C2100772064 /* NSRunLoopState_windows.m */, - FE35D34F0B4EEDBB00FE7AB3 /* NSSelectSet_windows.h */, - FE35D3500B4EEDBB00FE7AB3 /* NSSelectSet_windows.m */, - FE35CC0F0B4AD8A400FE7AB3 /* NSSocket_windows.h */, - FE35CC100B4AD8A400FE7AB3 /* NSSocket_windows.m */, - 6E2805BB09747D0400EC542B /* NSString_win32.h */, - 6E2805BC09747D0400EC542B /* NSString_win32.m */, - 6E2805BD09747D0400EC542B /* NSTask_win32.h */, - 6E2805BE09747D0400EC542B /* NSTask_win32.m */, - ); - path = platform_windows; - sourceTree = ""; - }; - 6E28034B09747A8200EC542B /* xml */ = { - isa = PBXGroup; - children = ( - FE463E74102CD5D200B265D6 /* NSXMLNodeOptions.h */, - FE53BE490BA9ED490050277F /* NSXMLDocument.h */, - FE53BE4A0BA9ED490050277F /* NSXMLDocument.m */, - FE53BE4B0BA9ED490050277F /* NSXMLDTD.h */, - FE53BE4C0BA9ED490050277F /* NSXMLDTD.m */, - FE53BE4D0BA9ED490050277F /* NSXMLDTDNode.h */, - FE53BE4E0BA9ED490050277F /* NSXMLDTDNode.m */, - FE53BE4F0BA9ED490050277F /* NSXMLElement.h */, - FE53BE500BA9ED490050277F /* NSXMLElement.m */, - FE53BE510BA9ED490050277F /* NSXMLNode.h */, - FE53BE520BA9ED490050277F /* NSXMLNode.m */, - FE53BE550BA9ED490050277F /* NSXMLParser.h */, - FE53BE560BA9ED490050277F /* NSXMLParser.m */, - ); - path = xml; - sourceTree = ""; - }; - 6E28055A09747C8F00EC542B /* platform_linux */ = { - isa = PBXGroup; - children = ( - FED216020FA14BAA00B74EFE /* objc-msgsend.s */, - ); - path = platform_linux; - sourceTree = ""; - }; - 6E28055B09747C9900EC542B /* platform_solaris */ = { - isa = PBXGroup; - children = ( - ); - name = platform_solaris; - sourceTree = ""; - }; - 6E28055C09747CAC00EC542B /* platform_windows */ = { - isa = PBXGroup; - children = ( - C80F9AE00E58BD5400ECD487 /* objc-msgsend.s */, - ); - path = platform_windows; - sourceTree = ""; - }; - 6E28066309747DE300EC542B /* NSCharacterSet */ = { - isa = PBXGroup; - children = ( - 6E28068909747E2300EC542B /* bitmapRepresentation.h */, - 6E28066409747DF800EC542B /* NSCharacterSet_bitmap.h */, - 6E28066509747DF800EC542B /* NSCharacterSet_bitmap.m */, - 6E28066609747DF800EC542B /* NSCharacterSet_range.h */, - 6E28066709747DF900EC542B /* NSCharacterSet_range.m */, - 6E28066809747DF900EC542B /* NSCharacterSet_rangeInverted.h */, - 6E28066909747DF900EC542B /* NSCharacterSet_rangeInverted.m */, - 6E28066A09747DF900EC542B /* NSCharacterSet_string.h */, - 6E28066B09747DF900EC542B /* NSCharacterSet_string.m */, - 6E28066C09747DF900EC542B /* NSCharacterSet.h */, - 6E28066D09747DF900EC542B /* NSCharacterSet.m */, - 6E28066E09747DF900EC542B /* NSMutableCharacterSet_bitmap.h */, - 6E28066F09747DF900EC542B /* NSMutableCharacterSet_bitmap.m */, - 6E28067009747DF900EC542B /* NSMutableCharacterSet.h */, - 6E28067109747DF900EC542B /* NSMutableCharacterSet.m */, - ); - path = NSCharacterSet; - sourceTree = ""; - }; - 6E28069409747E6B00EC542B /* NSDate */ = { - isa = PBXGroup; - children = ( - FE3F7D980BE63BBD007E9363 /* NSDateComponents.h */, - FE3F7D990BE63BBD007E9363 /* NSDateComponents.m */, - FEFF238D0BDCF136005357B8 /* NSCalendar.h */, - FEFF238E0BDCF136005357B8 /* NSCalendar.m */, - 6E28069509747E7B00EC542B /* NSCalendarDate.h */, - 6E28069609747E7B00EC542B /* NSCalendarDate.m */, - 6E28069709747E7B00EC542B /* NSDate_timeInterval.h */, - 6E28069809747E7B00EC542B /* NSDate_timeInterval.m */, - 6E28069909747E7B00EC542B /* NSDate.h */, - 6E28069A09747E7B00EC542B /* NSDate.m */, - 6E28069B09747E7B00EC542B /* NSDateFormatter.h */, - 6E28069C09747E7B00EC542B /* NSDateFormatter.m */, - ); - name = NSDate; - sourceTree = ""; - }; - 6E2806A509747E9500EC542B /* NSTimeZone */ = { - isa = PBXGroup; - children = ( - 6E2806A609747EA400EC542B /* NSTimeZone_absolute.h */, - 6E2806A709747EA400EC542B /* NSTimeZone_absolute.m */, - 6E2806AA09747EA400EC542B /* NSTimeZoneTransition.h */, - 6E2806AB09747EA400EC542B /* NSTimeZoneTransition.m */, - 6E2806AC09747EA400EC542B /* NSTimeZoneType.h */, - 6E2806AD09747EA400EC542B /* NSTimeZoneType.m */, - 6E2806B009747EA400EC542B /* NSTimeZone.h */, - 6E2806B109747EA400EC542B /* NSTimeZone.m */, - ); - path = NSTimeZone; - sourceTree = ""; - }; - 6E280B2709747EC800EC542B /* NSTimeZone */ = { - isa = PBXGroup; - children = ( - C6BC3CC51162308E00DFC16C /* NSTimeZoneWindowsZones.plist */, - 6E2806B209747EA400EC542B /* NSTimeZoneAbbreviations.plist */, - 6E2806B309747EA400EC542B /* NSTimeZoneRegions.plist */, - ); - name = NSTimeZone; - sourceTree = ""; - }; - 6E280B2809747EF500EC542B /* NSCharacterSet */ = { - isa = PBXGroup; - children = ( - 6E28068809747E2300EC542B /* alphanumericCharacterSet.bitmap */, - 6E28068A09747E2300EC542B /* controlCharacterSet.bitmap */, - 6E28068B09747E2300EC542B /* decimalDigitCharacterSet.bitmap */, - 6E28068C09747E2300EC542B /* letterCharacterSet.bitmap */, - 6E28068D09747E2300EC542B /* lowercaseLetterCharacterSet.bitmap */, - 6E28068009747E0A00EC542B /* punctuationCharacterSet.bitmap */, - 6E28068109747E0A00EC542B /* uppercaseLetterCharacterSet.bitmap */, - ); - name = NSCharacterSet; - sourceTree = ""; - }; - FE1342BE1151842200404745 /* Products */ = { - isa = PBXGroup; - children = ( - FE1342C91151842200404745 /* CoreServices.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE1365D70F154B3A000F2657 /* NSOperation */ = { - isa = PBXGroup; - children = ( - FE1365D80F154B3A000F2657 /* NSAtomicList.h */, - FE1365D90F154B3A000F2657 /* NSAtomicList.m */, - FE1365DC0F154B3A000F2657 /* NSOperation.h */, - FE1365DD0F154B3A000F2657 /* NSOperation.m */, - FE1365DE0F154B3A000F2657 /* NSOperationQueue.h */, - FE1365DF0F154B3A000F2657 /* NSOperationQueue.m */, - ); - path = NSOperation; - sourceTree = ""; - }; - FE1A0E360F8D508500FC4CC7 /* platform_darwin */ = { - isa = PBXGroup; - children = ( - CFE3093A1B06E39E008442BF /* OBJCRegisterModule_Darwin.h */, - FE2705C50C5EF3D60004AB37 /* OBJCRegisterModule_Darwin.m */, - FED70C8E0C3BFFBE000CBE5B /* objc_msgSend-darwin-i386.s */, - FED70D610C3C0973000CBE5B /* objc_msgSend-darwin-ppc.s */, - ); - path = platform_darwin; - sourceTree = ""; - }; - FE1E546214303009000D60A1 /* xcconfig */ = { - isa = PBXGroup; - children = ( - CFCEA46C1B043F4E00B3B087 /* darwin-i386-Foundation.xcconfig */, - FEC0A3801709355C002A60B7 /* darwin-i386-framework.xcconfig */, - CFCEA46D1B043F4E00B3B087 /* darwin-i386.xcconfig */, - FEC0A3811709355C002A60B7 /* darwin-ppc-framework.xcconfig */, - CFCEA46E1B043F4E00B3B087 /* darwin-ppc.xcconfig */, - CFB9BB011B058F52001EE95E /* darwin-x86_64-Foundation.xcconfig */, - FEC0A3821709355C002A60B7 /* darwin-x86_64-framework.xcconfig */, - CFCEA46F1B043F4E00B3B087 /* darwin-x86_64.xcconfig */, - CFCEA4701B043F4E00B3B087 /* darwin.xcconfig */, - CFB9BAFF1B058BF1001EE95E /* freebsd-i386-Foundation.xcconfig */, - FEC0A3831709355C002A60B7 /* freebsd-i386-framework.xcconfig */, - CFCEA4711B043F4E00B3B087 /* freebsd-i386.xcconfig */, - CFCEA4721B043F4E00B3B087 /* freebsd.xcconfig */, - CFB9BB031B058F84001EE95E /* linux-arm-Foundation.xcconfig */, - FEC0A3841709355C002A60B7 /* linux-arm-framework.xcconfig */, - CFCEA4731B043F4E00B3B087 /* linux-arm.xcconfig */, - CFECC8501AFF0F2000D34AE4 /* linux-i386-Foundation.xcconfig */, - FEC0A3851709355C002A60B7 /* linux-i386-framework.xcconfig */, - CFECC8521AFF0F4000D34AE4 /* linux-i386.xcconfig */, - FEC0A3861709355C002A60B7 /* linux-ppc-framework.xcconfig */, - CFCEA4741B043F4E00B3B087 /* linux-ppc.xcconfig */, - CFCEA4751B043F4E00B3B087 /* linux.xcconfig */, - CFCEA4761B043F4E00B3B087 /* platform-framework.xcconfig */, - CFCEA4771B043F4E00B3B087 /* platform.xcconfig */, - CFCEA4781B043F4E00B3B087 /* solaris-sparc-Foundation.xcconfig */, - FEC0A3871709355C002A60B7 /* solaris-sparc-framework.xcconfig */, - CFCEA4791B043F4E00B3B087 /* solaris-sparc.xcconfig */, - CFCEA47A1B043F4E00B3B087 /* solaris.xcconfig */, - CFCEA47B1B043F4E00B3B087 /* windows-i386-AppKit.xcconfig */, - CFCEA47C1B043F4E00B3B087 /* windows-i386-bundle.xcconfig */, - CFCEA47D1B043F4E00B3B087 /* windows-i386-clang.xcconfig */, - CF2819791AF9A5BF00E93CEE /* windows-i386-Foundation.xcconfig */, - FE70869F143117F100B99A95 /* windows-i386-framework.xcconfig */, - FEFDFBF3174F283800CB0EBD /* windows-i386.xcconfig */, - CFCEA47E1B043F4E00B3B087 /* windows.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE2569E410F2F936005CE23E /* CFNetwork */ = { - isa = PBXGroup; - children = ( - FE2569E610F2F9C7005CE23E /* CFHost.m */, - FE2569E710F2F9C7005CE23E /* CFNetServices.m */, - FE2569E810F2F9C7005CE23E /* CFSocketStream.m */, - ); - name = CFNetwork; - path = ../CFNetwork; - sourceTree = ""; - }; - FE3B5D350FF3A6CF005E7605 /* platform_solaris */ = { - isa = PBXGroup; - children = ( - 6E28055F09747CCA00EC542B /* msgSendv-solaris.m */, - ); - path = platform_solaris; - sourceTree = ""; - }; - FE3B5D380FF3A6DA005E7605 /* platform_windows */ = { - isa = PBXGroup; - children = ( - 6E28055D09747CC300EC542B /* msgSendv-windows.s */, - ); - path = platform_windows; - sourceTree = ""; - }; - FE3B5D390FF3A6E6005E7605 /* platform_linux */ = { - isa = PBXGroup; - children = ( - 6E8113970A54BBAC000DE3F1 /* msgSendv-linux.s */, - ); - path = platform_linux; - sourceTree = ""; - }; - FE4BDD2A0BCD65EB00E19685 /* CoreFoundation */ = { - isa = PBXGroup; - children = ( - FE55AD191119D86900A777AB /* CFByteOrder.m */, - FE828F0A110DEB540008AFA2 /* pthread.m */, - FE256A8210F387DA005CE23E /* CFDate.m */, - 1A8A694E1091EF0200DC5A01 /* NSCFTypeID.h */, - FE8693D20FE0108E00F89733 /* CFArray.m */, - FE8693D30FE0108E00F89733 /* CFAttributedString.m */, - FE8693D40FE0108E00F89733 /* CFBag.m */, - FE8693D50FE0108E00F89733 /* CFBase.m */, - FE8693D60FE0108E00F89733 /* CFBinaryHeap.m */, - FE8693D70FE0108E00F89733 /* CFBitVector.m */, - FE8693D80FE0108E00F89733 /* CFBundle.m */, - FE8693D90FE0108E00F89733 /* CFCalendar.m */, - FE8693DA0FE0108E00F89733 /* CFCharacterSet.m */, - FE8693DB0FE0108E00F89733 /* CFData.m */, - FE8693DC0FE0108E00F89733 /* CFDateFormatter.m */, - FE8693DD0FE0108E00F89733 /* CFDictionary.m */, - FE8693DE0FE0108E00F89733 /* CFError.m */, - FE8693DF0FE0108E00F89733 /* CFFileDescriptor.m */, - FE8693E00FE0108E00F89733 /* CFLocale.m */, - FE8693E10FE0108E00F89733 /* CFMachPort.m */, - FE8693E20FE0108E00F89733 /* CFMessagePort.m */, - FE8693E30FE0108E00F89733 /* CFNotificationCenter.m */, - FE8693E40FE0108E00F89733 /* CFNumber.m */, - FE8693E50FE0108E00F89733 /* CFNumberFormatter.m */, - FE8693E60FE0108E00F89733 /* CFPlugIn.m */, - FE8693E70FE0108E00F89733 /* CFPreferences.m */, - FE8693E80FE0108E00F89733 /* CFPropertyList.m */, - FE8693E90FE0108E00F89733 /* CFRunLoop.m */, - FE8693EA0FE0108E00F89733 /* CFSet.m */, - FE8693EB0FE0108E00F89733 /* CFSocket.m */, - FE8693EC0FE0108E00F89733 /* CFStream.m */, - FE8693ED0FE0108E00F89733 /* CFString.m */, - FE8693EE0FE0108E00F89733 /* CFStringTokenizer.m */, - FE8693EF0FE0108E00F89733 /* CFTimeZone.m */, - FE8693F00FE0108E00F89733 /* CFTree.m */, - FE8693F10FE0108E00F89733 /* CFURL.m */, - FE8693F20FE0108E00F89733 /* CFUserNotification.m */, - FE8693F30FE0108E00F89733 /* CFUUID.m */, - FE8693F40FE0108E00F89733 /* CFXMLNode.m */, - FE8693F50FE0108E00F89733 /* CFXMLParser.m */, - ); - name = CoreFoundation; - path = ../CoreFoundation; - sourceTree = ""; - }; - FE4EC68B0BD9B41E0015F9E9 /* NSKeyedArchiving */ = { - isa = PBXGroup; - children = ( - FE4EC68C0BD9B47B0015F9E9 /* NSKeyedArchiver.h */, - FE4EC68D0BD9B47B0015F9E9 /* NSKeyedArchiver.m */, - 6EC4AAE70A34D9B200E8D6CA /* NSKeyedUnarchiver.h */, - 6EC4AAE80A34D9B200E8D6CA /* NSKeyedUnarchiver.m */, - ); - path = NSKeyedArchiving; - sourceTree = ""; - }; - FE5EA8000FA3896500536850 /* platform_bsd */ = { - isa = PBXGroup; - children = ( - C64663DD15590E9400A162B8 /* libmain.m */, - FE5EA8010FA3896500536850 /* NSMemoryFunctions_bsd.m */, - FE5EA8020FA3896500536850 /* NSPlatform_bsd.h */, - FE5EA8030FA3896500536850 /* NSPlatform_bsd.m */, - ); - path = platform_bsd; - sourceTree = ""; - }; - FE74776A0BAC4E0D00829F4F /* NSDecimal */ = { - isa = PBXGroup; - children = ( - FE4C07481434A0330034EE26 /* NSDecimalNumberPlaceholder.h */, - FE4C07491434A0330034EE26 /* NSDecimalNumberPlaceholder.m */, - FE74776D0BAC4E9000829F4F /* NSDecimal.h */, - FE74776E0BAC4E9000829F4F /* NSDecimal.m */, - FE74776F0BAC4E9000829F4F /* NSDecimalNumber.h */, - FE7477700BAC4E9000829F4F /* NSDecimalNumber.m */, - ); - path = NSDecimal; - sourceTree = ""; - }; - FE7477CC0BAC511600829F4F /* NSMetadata */ = { - isa = PBXGroup; - children = ( - FE7477CD0BAC519800829F4F /* NSMetadataItem.h */, - FE7477CE0BAC519800829F4F /* NSMetadataItem.m */, - FE7477CF0BAC519800829F4F /* NSMetadataQuery.h */, - FE7477D00BAC519800829F4F /* NSMetadataQuery.m */, - FE7477D10BAC519800829F4F /* NSMetadataQueryAttributeValueTuple.h */, - FE7477D20BAC519800829F4F /* NSMetadataQueryAttributeValueTuple.m */, - FE7477D30BAC519800829F4F /* NSMetadataQueryResultGroup.h */, - FE7477D40BAC519800829F4F /* NSMetadataQueryResultGroup.m */, - ); - path = NSMetadata; - sourceTree = ""; - }; - FE74780A0BAC591800829F4F /* NSNetService */ = { - isa = PBXGroup; - children = ( - FE75E2E710F6442F000419C4 /* bonjour.m */, - FEE7D33B0ED1D4E10032DCE0 /* bonjour.h */, - FEE7D3090ED1D2DE0032DCE0 /* NSNetServices.h */, - FEE7D30A0ED1D2DE0032DCE0 /* NSNetServices.m */, - ); - path = NSNetService; - sourceTree = ""; - }; - FE9D95260C0386BD006DB214 /* NSValueTransformer */ = { - isa = PBXGroup; - children = ( - FEADE5BE12FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.h */, - FEADE5BF12FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.m */, - FE7478700BAC5EB600829F4F /* NSValueTransformer.h */, - FE7478710BAC5EB600829F4F /* NSValueTransformer.m */, - FE9D95340C0387D5006DB214 /* NSValueTransformer_IsNil.h */, - FE9D95350C0387D5006DB214 /* NSValueTransformer_IsNil.m */, - FE9D95360C0387D5006DB214 /* NSValueTransformer_IsNotNil.h */, - FE9D95370C0387D5006DB214 /* NSValueTransformer_IsNotNil.m */, - FE9D95380C0387D5006DB214 /* NSValueTransformer_NegateBoolean.h */, - FE9D95390C0387D5006DB214 /* NSValueTransformer_NegateBoolean.m */, - FE9D953A0C0387D5006DB214 /* NSValueTransformer_UnarchiveFromData.h */, - FE9D953B0C0387D5006DB214 /* NSValueTransformer_UnarchiveFromData.m */, - ); - path = NSValueTransformer; - sourceTree = ""; - }; - FEA828A4109B74B200C7A732 /* Products */ = { - isa = PBXGroup; - children = ( - FEA828AB109B74B200C7A732 /* CoreFoundation.framework */, - ); - name = Products; - sourceTree = ""; - }; - FEB6CC410B4A1922004FADF2 /* Products */ = { - isa = PBXGroup; - children = ( - CFC5B42D1AF466EB00FBB52A /* objc.framework */, - ); - name = Products; - sourceTree = ""; - }; - FEB6CC800B4A1C7A004FADF2 /* NSKeyValueCoding */ = { - isa = PBXGroup; - children = ( - FE721025124CE420009B690D /* NSKeyObserver.h */, - FE721026124CE420009B690D /* NSKeyObserver.m */, - FE720FD4124C56FA009B690D /* NSKeyPathObserver.h */, - FE720FD5124C56FA009B690D /* NSKeyPathObserver.m */, - FE828F37110DFA1C0008AFA2 /* NSKVOInfoPerObject.h */, - FE828F38110DFA1C0008AFA2 /* NSKVOInfoPerObject.m */, - FEF5B4C60BBEFDBA00A8FF26 /* NSArray+KVC.m */, - FEF5B4C70BBEFDBA00A8FF26 /* NSDictionary+KVC.m */, - FEF5B4C80BBEFDBA00A8FF26 /* NSKeyValueObserving-Private.h */, - FEF5B4C90BBEFDBA00A8FF26 /* NSKeyValueObserving.h */, - FEF5B4CA0BBEFDBA00A8FF26 /* NSKeyValueObserving.m */, - FEF5B4CB0BBEFDBA00A8FF26 /* NSString+KVCAdditions.h */, - FEF5B4CC0BBEFDBA00A8FF26 /* NSString+KVCAdditions.m */, - FEB6CC890B4A1D4D004FADF2 /* NSKVCMutableArray.h */, - FEB6CC8A0B4A1D4D004FADF2 /* NSKVCMutableArray.m */, - FEB6CBAE0B4A139F004FADF2 /* NSKeyValueCoding.h */, - FEB6CBAF0B4A139F004FADF2 /* NSKeyValueCoding.m */, - ); - path = NSKeyValueCoding; - sourceTree = ""; - }; - FEB9D2F00B42F85100C239BB /* NSConnection */ = { - isa = PBXGroup; - children = ( - FEB9D3E40B4412D800C239BB /* NSConnection.h */, - FEB9D3E50B4412D800C239BB /* NSConnection.m */, - FEB9D4540B4416C400C239BB /* NSMessagePort.h */, - FEB9D4550B4416C400C239BB /* NSMessagePort.m */, - FEB9D40F0B4415F900C239BB /* NSPort.h */, - FEB9D4100B4415F900C239BB /* NSPort.m */, - 6E28061F09747D5800EC542B /* NSPortCoder.h */, - 6E28062009747D5800EC542B /* NSPortCoder.m */, - FEB9D4320B44164500C239BB /* NSSocketPort.h */, - FEB9D4330B44164500C239BB /* NSSocketPort.m */, - FEB9D46B0B44323C00C239BB /* NSDistantObject.h */, - FEB9D46C0B44323C00C239BB /* NSDistantObject.m */, - FEB9D5F90B443B8200C239BB /* NSProtocolChecker.h */, - FEB9D5FA0B443B8200C239BB /* NSProtocolChecker.m */, - FEB9D6AE0B443F1200C239BB /* NSPortMessage.h */, - FEB9D6AF0B443F1200C239BB /* NSPortMessage.m */, - ); - path = NSConnection; - sourceTree = ""; - }; - FEB9D47D0B4432C400C239BB /* NSPredicate */ = { - isa = PBXGroup; - children = ( - FED1635E0BE4093700BF9889 /* NSExpression_constant.h */, - FED1635F0BE4093700BF9889 /* NSExpression_constant.m */, - FED163600BE4093700BF9889 /* NSExpression_function.h */, - FED163610BE4093700BF9889 /* NSExpression_function.m */, - FED163620BE4093700BF9889 /* NSExpression_keypath.h */, - FED163630BE4093700BF9889 /* NSExpression_keypath.m */, - FED163640BE4093700BF9889 /* NSExpression_self.h */, - FED163650BE4093700BF9889 /* NSExpression_self.m */, - FED163660BE4093700BF9889 /* NSExpression_variable.h */, - FED163670BE4093700BF9889 /* NSExpression_variable.m */, - FED162F20BE2EAB200BF9889 /* NSExpression_assignment.h */, - FED162F30BE2EAB200BF9889 /* NSExpression_assignment.m */, - FED162960BE2E44600BF9889 /* NSExpression_array.h */, - FED162970BE2E44600BF9889 /* NSExpression_array.m */, - FED160AC0BE26DF700BF9889 /* NSExpression_operator.h */, - FED160AD0BE26DF700BF9889 /* NSExpression_operator.m */, - FEDDE2520BD2A9E500DDD110 /* NSPredicate_BOOL.h */, - FEDDE2530BD2A9E500DDD110 /* NSPredicate_BOOL.m */, - FEB9D4820B44331400C239BB /* NSComparisonPredicate.h */, - FEB9D4830B44331400C239BB /* NSComparisonPredicate.m */, - FEB9D4980B44340800C239BB /* NSCompoundPredicate.h */, - FEB9D4990B44340800C239BB /* NSCompoundPredicate.m */, - FEB9D4A20B44349600C239BB /* NSExpression.h */, - FEB9D4A30B44349600C239BB /* NSExpression.m */, - FEB9D48E0B4433F500C239BB /* NSPredicate.h */, - FEB9D48F0B4433F500C239BB /* NSPredicate.m */, - ); - path = NSPredicate; - sourceTree = ""; - }; - FEB9D4B60B44355900C239BB /* NSIndexSet */ = { - isa = PBXGroup; - children = ( - FEB9D4B90B44359400C239BB /* NSIndexSet.h */, - FEB9D4BA0B44359400C239BB /* NSIndexSet.m */, - FEB9D4C50B4435A700C239BB /* NSMutableIndexSet.h */, - FEB9D4C60B4435A700C239BB /* NSMutableIndexSet.m */, - ); - path = NSIndexSet; - sourceTree = ""; - }; - FEB9D5580B44389200C239BB /* NSURL */ = { - isa = PBXGroup; - children = ( - FE463E29102CD5A600B265D6 /* NSURLError.h */, - FE463E2A102CD5A600B265D6 /* NSURLError.m */, - FEC9F6BB0E2F9BEA0034932A /* NSURLConnectionState.h */, - FEC9F6BC0E2F9BEA0034932A /* NSURLConnectionState.m */, - FEC9F6AC0E2F98EA0034932A /* NSURLProtocol_http.h */, - FEC9F6AD0E2F98EA0034932A /* NSURLProtocol_http.m */, - FEDFA1000CF7D41F00F21F87 /* NSCachedURLResponse.h */, - FEDFA1010CF7D41F00F21F87 /* NSCachedURLResponse.m */, - FE405A6A0B4450FD001B183D /* NSHTTPURLResponse.h */, - FE405A6B0B4450FD001B183D /* NSHTTPURLResponse.m */, - FEDF9FEF0CF6123F00F21F87 /* NSMutableURLRequest.h */, - FEDF9FF00CF6123F00F21F87 /* NSMutableURLRequest.m */, - FEB9D55D0B4438E500C239BB /* NSURL.h */, - FEB9D55E0B4438E500C239BB /* NSURL.m */, - FEB9D5690B4438FD00C239BB /* NSURLAuthenticationChallenge.h */, - FEB9D56A0B4438FD00C239BB /* NSURLAuthenticationChallenge.m */, - FEB9D5750B44390D00C239BB /* NSURLCache.h */, - FEB9D5760B44390D00C239BB /* NSURLCache.m */, - FEB9D5810B44391E00C239BB /* NSURLConnection.h */, - FEB9D5820B44391E00C239BB /* NSURLConnection.m */, - FEB9D58D0B44393400C239BB /* NSURLCredential.h */, - FEB9D58E0B44393400C239BB /* NSURLCredential.m */, - FEB9D5990B44394000C239BB /* NSURLCredentialStorage.h */, - FEB9D59A0B44394000C239BB /* NSURLCredentialStorage.m */, - FEB9D5A50B44395100C239BB /* NSURLDownload.h */, - FEB9D5A60B44395100C239BB /* NSURLDownload.m */, - FEB9D5BD0B44397900C239BB /* NSURLHandle.h */, - FEB9D5BE0B44397900C239BB /* NSURLHandle.m */, - FEB9D5C90B44399000C239BB /* NSURLProtectionSpace.h */, - FEB9D5CA0B44399000C239BB /* NSURLProtectionSpace.m */, - FEB9D5D50B4439A200C239BB /* NSURLProtocol.h */, - FEB9D5D60B4439A200C239BB /* NSURLProtocol.m */, - FEB9D5E10B4439BA00C239BB /* NSURLRequest.h */, - FEB9D5E20B4439BA00C239BB /* NSURLRequest.m */, - FEB9D5ED0B443A9600C239BB /* NSURLResponse.h */, - FEB9D5EE0B443A9600C239BB /* NSURLResponse.m */, - ); - path = NSURL; - sourceTree = ""; - }; - FEB9D6070B443BC500C239BB /* NSHTTPCookie */ = { - isa = PBXGroup; - children = ( - FEB9D60A0B443C2800C239BB /* NSHTTPCookie.h */, - FEB9D60B0B443C2800C239BB /* NSHTTPCookie.m */, - FEB9D6140B443C3F00C239BB /* NSHTTPCookieStorage.h */, - FEB9D6150B443C3F00C239BB /* NSHTTPCookieStorage.m */, - ); - path = NSHTTPCookie; - sourceTree = ""; - }; - FEB9D6A90B443EA600C239BB /* NSPortNameServer */ = { - isa = PBXGroup; - children = ( - FEB9D6E70B4440F200C239BB /* NSMessagePortNameServer.h */, - FEB9D6E80B4440F200C239BB /* NSMessagePortNameServer.m */, - FEB9D6DB0B4440DA00C239BB /* NSPortNameServer.h */, - FEB9D6DC0B4440DA00C239BB /* NSPortNameServer.m */, - FEB9D7000B44414000C239BB /* NSSocketPortNameServer.h */, - FEB9D7010B44414000C239BB /* NSSocketPortNameServer.m */, - ); - path = NSPortNameServer; - sourceTree = ""; - }; - FED70AF80C3B41F7000CBE5B /* platform_darwin */ = { - isa = PBXGroup; - children = ( - C64663DB15590E7B00A162B8 /* libmain.m */, - FE6014251042FD5A008A7357 /* NSString_defaultEncoding_darwin.m */, - FED70AFF0C3B4255000CBE5B /* DarwinMemoryFunctions.m */, - FED70B000C3B4255000CBE5B /* NSPlatform_darwin.h */, - FED70B010C3B4255000CBE5B /* NSPlatform_darwin.m */, - ); - path = platform_darwin; - sourceTree = ""; - }; - FEFAA5341429095500CEE177 /* NSScript */ = { - isa = PBXGroup; - children = ( - FEFAA5391429098A00CEE177 /* NSScriptWhoseTests.h */, - FEFAA53A1429098A00CEE177 /* NSScriptWhoseTests.m */, - ); - path = NSScript; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - FE01A59A0C5D9B6900AEA51A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01A6200C5D9B6900AEA51A /* NSString_win32.h in Headers */, - C6BC3CB11162303400DFC16C /* NSTimeZone_win32.h in Headers */, - FE01A59B0C5D9B6900AEA51A /* NSArray_concrete.h in Headers */, - FE01A59C0C5D9B6900AEA51A /* NSArray_placeholder.h in Headers */, - FE01A59D0C5D9B6900AEA51A /* NSArray.h in Headers */, - FE01A59E0C5D9B6900AEA51A /* NSEnumerator_array.h in Headers */, - FE01A59F0C5D9B6900AEA51A /* NSEnumerator_arrayReverse.h in Headers */, - FE01A5A00C5D9B6900AEA51A /* NSMutableArray_concrete.h in Headers */, - FE01A5A10C5D9B6900AEA51A /* NSMutableArray.h in Headers */, - FE01A5A20C5D9B6900AEA51A /* NSAttributedString_manyAttributes.h in Headers */, - FE01A5A30C5D9B6900AEA51A /* NSAttributedString_nilAttributes.h in Headers */, - FE01A5A40C5D9B6900AEA51A /* NSAttributedString_oneAttribute.h in Headers */, - FE01A5A50C5D9B6900AEA51A /* NSAttributedString_placeholder.h in Headers */, - FE01A5A60C5D9B6900AEA51A /* NSAttributedString.h in Headers */, - FE01A5A70C5D9B6900AEA51A /* NSMutableAttributedString_concrete.h in Headers */, - FE01A5A80C5D9B6900AEA51A /* NSMutableAttributedString.h in Headers */, - FE01A5A90C5D9B6900AEA51A /* NSMutableString_proxyToMutableAttributedString.h in Headers */, - FE01A5AA0C5D9B6900AEA51A /* NSRangeEntries.h in Headers */, - FE01A5AB0C5D9B6900AEA51A /* NSAutoreleasePool-private.h in Headers */, - CFE3093D1B06E699008442BF /* NSPlatform_darwin.h in Headers */, - FE01A5AC0C5D9B6900AEA51A /* NSAutoreleasePool.h in Headers */, - FE01A5AD0C5D9B6900AEA51A /* NSData_concrete.h in Headers */, - FE01A5AE0C5D9B6900AEA51A /* NSData_mapped.h in Headers */, - FE01A5AF0C5D9B6900AEA51A /* NSData.h in Headers */, - FE01A5B00C5D9B6900AEA51A /* NSMutableData_concrete.h in Headers */, - FE01A5B10C5D9B6900AEA51A /* NSMutableData.h in Headers */, - FE01A5B20C5D9B6900AEA51A /* NSDictionary_mapTable.h in Headers */, - FE01A5B30C5D9B6900AEA51A /* NSDictionary.h in Headers */, - FE01A5B40C5D9B6900AEA51A /* NSEnumerator_dictionaryKeys.h in Headers */, - 499120D4178EA58D009310D4 /* NSStringEncoder.h in Headers */, - FE01A5B50C5D9B6900AEA51A /* NSEnumerator_dictionaryObjects.h in Headers */, - FE01A5B60C5D9B6900AEA51A /* NSMutableDictionary_mapTable.h in Headers */, - FE01A5B70C5D9B6900AEA51A /* NSMutableDictionary.h in Headers */, - FE01A5B80C5D9B6900AEA51A /* NSException.h in Headers */, - FE01A5B90C5D9B6900AEA51A /* NSRaise.h in Headers */, - FE01A5BA0C5D9B6900AEA51A /* NSLock.h in Headers */, - FE01A5BB0C5D9B6900AEA51A /* NSNotification_concrete.h in Headers */, - FE01A5BC0C5D9B6900AEA51A /* NSNotification.h in Headers */, - FE01A5BD0C5D9B6900AEA51A /* NSNotificationCenter.h in Headers */, - FE01A5BE0C5D9B6900AEA51A /* NSNotificationObserver.h in Headers */, - FE01A5BF0C5D9B6900AEA51A /* NSObjectToObservers.h in Headers */, - FE01A5C00C5D9B6900AEA51A /* NSNotificationAndModes.h in Headers */, - FE01A5C10C5D9B6900AEA51A /* NSNotificationQueue-Private.h in Headers */, - FE01A5C20C5D9B6900AEA51A /* NSNotificationQueue.h in Headers */, - FE01A5C30C5D9B6900AEA51A /* NSNumber_BOOL.h in Headers */, - FE01A5C40C5D9B6900AEA51A /* NSNumber_char.h in Headers */, - FE01A5C50C5D9B6900AEA51A /* NSNumber_double.h in Headers */, - FE01A5C60C5D9B6900AEA51A /* NSNumber_float.h in Headers */, - FE01A5C70C5D9B6900AEA51A /* NSNumber_int.h in Headers */, - FE01A5C80C5D9B6900AEA51A /* NSNumber_long.h in Headers */, - FE01A5C90C5D9B6900AEA51A /* NSNumber_longLong.h in Headers */, - FE01A5CA0C5D9B6900AEA51A /* NSNumber_placeholder.h in Headers */, - FE01A5CB0C5D9B6900AEA51A /* NSNumber_short.h in Headers */, - FE01A5CC0C5D9B6900AEA51A /* NSNumber_unsignedChar.h in Headers */, - FE01A5CD0C5D9B6900AEA51A /* NSNumber_unsignedInt.h in Headers */, - FE01A5CE0C5D9B6900AEA51A /* NSNumber_unsignedLong.h in Headers */, - FE01A5CF0C5D9B6900AEA51A /* NSNumber_unsignedLongLong.h in Headers */, - FE01A5D00C5D9B6900AEA51A /* NSNumber_unsignedShort.h in Headers */, - FE01A5D10C5D9B6900AEA51A /* NSNumber.h in Headers */, - FE01A5D20C5D9B6900AEA51A /* NSObject.h in Headers */, - FE01A5D30C5D9B6900AEA51A /* NSZombieObject.h in Headers */, - FE01A5D40C5D9B6900AEA51A /* NSPropertyListReader_vintage.h in Headers */, - FE01A5D50C5D9B6900AEA51A /* NSPropertyListWriter_vintage.h in Headers */, - FE01A5D60C5D9B6900AEA51A /* NSDelayedPerform.h in Headers */, - FE01A5D70C5D9B6900AEA51A /* NSOrderedPerform.h in Headers */, - FE01A5D80C5D9B6900AEA51A /* NSRunLoop-InputSource.h in Headers */, - FE01A5D90C5D9B6900AEA51A /* NSRunLoop.h in Headers */, - CFDCC8BA1B0415D600A5721C /* NSTask_posix.h in Headers */, - FE01A5DA0C5D9B6900AEA51A /* NSRunLoopState.h in Headers */, - FE01A5DB0C5D9B6900AEA51A /* NSScanner_concrete.h in Headers */, - FE01A5DC0C5D9B6900AEA51A /* NSScanner.h in Headers */, - FE01A5DD0C5D9B6900AEA51A /* NSCountedSet.h in Headers */, - FE01A5DE0C5D9B6900AEA51A /* NSEnumerator_set.h in Headers */, - FE01A5DF0C5D9B6900AEA51A /* NSInlineSetTable.h in Headers */, - FE01A5E00C5D9B6900AEA51A /* NSMutableSet_concrete.h in Headers */, - FE01A5E10C5D9B6900AEA51A /* NSMutableSet.h in Headers */, - FE01A5E20C5D9B6900AEA51A /* NSSet_concrete.h in Headers */, - FE01A5E30C5D9B6900AEA51A /* NSSet_placeholder.h in Headers */, - FE01A5E40C5D9B6900AEA51A /* NSSet.h in Headers */, - FE01A5E50C5D9B6900AEA51A /* NSInputStream.h in Headers */, - FE01A5E60C5D9B6900AEA51A /* NSOutputStream.h in Headers */, - CFDCC8B41B0415D600A5721C /* NSLock_posix.h in Headers */, - FE01A5E70C5D9B6900AEA51A /* NSStream.h in Headers */, - FE01A5E80C5D9B6900AEA51A /* NSString_cString.h in Headers */, - FE01A5E90C5D9B6900AEA51A /* NSString_isoLatin1.h in Headers */, - FE01A5EA0C5D9B6900AEA51A /* NSMutableString.h in Headers */, - FE01A5EB0C5D9B6900AEA51A /* NSMutableString_unicodePtr.h in Headers */, - FE01A5EC0C5D9B6900AEA51A /* NSString_nextstepCString.h in Headers */, - FE01A5ED0C5D9B6900AEA51A /* NSString_nextstep.h in Headers */, - FE01A5EE0C5D9B6900AEA51A /* NSPathUtilities.h in Headers */, - FE01A5EF0C5D9B6900AEA51A /* NSString_placeholder.h in Headers */, - CFDCC8BE1B0415D600A5721C /* NSSocketPort_posix.h in Headers */, - FE01A5F00C5D9B6900AEA51A /* NSString.h in Headers */, - FE01A5F10C5D9B6900AEA51A /* NSStringFileIO.h in Headers */, - FE01A5F20C5D9B6900AEA51A /* NSStringFormatter.h in Headers */, - CFDCC8B71B0415D600A5721C /* NSPlatform_posix.h in Headers */, - FE01A5F30C5D9B6900AEA51A /* NSStringHashing.h in Headers */, - FE01A5F40C5D9B6900AEA51A /* NSString_unicode.h in Headers */, - FE01A5F50C5D9B6900AEA51A /* NSString_unicodePtr.h in Headers */, - FE01A5F60C5D9B6900AEA51A /* NSStringUTF8.h in Headers */, - FE01A5F70C5D9B6900AEA51A /* NSStringSymbol.h in Headers */, - FE01A5F80C5D9B6900AEA51A /* NSUnicodeCaseMapping.h in Headers */, - FE01A5F90C5D9B6900AEA51A /* unibuffer.h in Headers */, - FE01A5FA0C5D9B6900AEA51A /* NSStringsFileParser.h in Headers */, - FE01A5FB0C5D9B6900AEA51A /* NSThread-Private.h in Headers */, - FE01A5FC0C5D9B6900AEA51A /* NSThread.h in Headers */, - FE01A5FD0C5D9B6900AEA51A /* NSTimer_concrete.h in Headers */, - FE01A5FE0C5D9B6900AEA51A /* NSTimer_invocation.h in Headers */, - FE01A5FF0C5D9B6900AEA51A /* NSTimer_targetAction.h in Headers */, - FE01A6000C5D9B6900AEA51A /* NSTimer.h in Headers */, - FE01A6010C5D9B6900AEA51A /* NSUndoGroup.h in Headers */, - FE01A6020C5D9B6900AEA51A /* NSUndoManager.h in Headers */, - FE01A6030C5D9B6900AEA51A /* NSPersistantDomain.h in Headers */, - FE01A6040C5D9B6900AEA51A /* NSUserDefaults.h in Headers */, - FE01A6050C5D9B6900AEA51A /* NSValue_concrete.h in Headers */, - FE01A6060C5D9B6900AEA51A /* NSValue_nonRetainedObject.h in Headers */, - FE01A6070C5D9B6900AEA51A /* NSValue_placeholder.h in Headers */, - FE01A6080C5D9B6900AEA51A /* NSValue_pointer.h in Headers */, - FE01A6090C5D9B6900AEA51A /* NSValue.h in Headers */, - FE01A60A0C5D9B6900AEA51A /* NSZone.h in Headers */, - FE01A60B0C5D9B6900AEA51A /* ObjCArray.h in Headers */, - FE01A60C0C5D9B6900AEA51A /* objc_class.h in Headers */, - FE01A60D0C5D9B6900AEA51A /* ObjCDynamicModule.h in Headers */, - FE01A60F0C5D9B6900AEA51A /* ObjCHashTable.h in Headers */, - FE01A6100C5D9B6900AEA51A /* ObjCModule.h in Headers */, - FE01A6110C5D9B6900AEA51A /* objc_sel.h in Headers */, - FE01A6160C5D9B6900AEA51A /* NSFileHandle_win32.h in Headers */, - FE01A6170C5D9B6900AEA51A /* NSFileManager_win32.h in Headers */, - FE01A6180C5D9B6900AEA51A /* NSHandleMonitor_win32.h in Headers */, - FE01A6190C5D9B6900AEA51A /* NSHandleMonitorSet_win32.h in Headers */, - FE01A61A0C5D9B6900AEA51A /* NSLock_win32.h in Headers */, - FE01A61B0C5D9B6900AEA51A /* NSParentDeathMonitor_win32.h in Headers */, - FE01A61C0C5D9B6900AEA51A /* NSPersistantDomain_win32.h in Headers */, - FE01A61D0C5D9B6900AEA51A /* NSPipe_win32.h in Headers */, - FE01A61E0C5D9B6900AEA51A /* NSPlatform_win32.h in Headers */, - FE01A61F0C5D9B6900AEA51A /* NSReadInBackground_win32.h in Headers */, - FE01A6210C5D9B6900AEA51A /* NSTask_win32.h in Headers */, - FE01A6220C5D9B6900AEA51A /* NSBundle.h in Headers */, - FE01A6230C5D9B6900AEA51A /* NSByteOrder.h in Headers */, - FE01A6240C5D9B6900AEA51A /* NSCoder.h in Headers */, - FE01A6250C5D9B6900AEA51A /* NSDebug.h in Headers */, - FE01A6260C5D9B6900AEA51A /* NSDirectoryEnumerator.h in Headers */, - FE01A6270C5D9B6900AEA51A /* NSEnumerator.h in Headers */, - CFDCC8B51B0415D600A5721C /* NSPersistantDomain_posix.h in Headers */, - FE01A6280C5D9B6900AEA51A /* NSFileHandle.h in Headers */, - FE01A6290C5D9B6900AEA51A /* NSFileManager.h in Headers */, - FE01A62A0C5D9B6900AEA51A /* NSFormatter.h in Headers */, - FE01A62B0C5D9B6900AEA51A /* NSGeometry.h in Headers */, - CFE3093B1B06E39E008442BF /* OBJCRegisterModule_Darwin.h in Headers */, - FE01A62C0C5D9B6900AEA51A /* NSHashTable.h in Headers */, - FE01A62D0C5D9B6900AEA51A /* NSHost.h in Headers */, - FE01A62E0C5D9B6900AEA51A /* NSInputSource.h in Headers */, - FEEA64B512B674A200E6E2C8 /* NSRecursiveLock_win32.h in Headers */, - FE01A62F0C5D9B6900AEA51A /* NSInputSourceSet.h in Headers */, - FE01A6300C5D9B6900AEA51A /* NSInvocation.h in Headers */, - FE01A6310C5D9B6900AEA51A /* NSMapTable.h in Headers */, - FE01A6320C5D9B6900AEA51A /* NSMethodSignature.h in Headers */, - FE01A6330C5D9B6900AEA51A /* NSNull.h in Headers */, - FE01A6340C5D9B6900AEA51A /* NSNumberFormatter.h in Headers */, - FE01A6350C5D9B6900AEA51A /* NSObjCRuntime.h in Headers */, - FE01A6360C5D9B6900AEA51A /* NSPipe.h in Headers */, - FE01A6370C5D9B6900AEA51A /* NSPlatform.h in Headers */, - FE01A6380C5D9B6900AEA51A /* NSPortCoder.h in Headers */, - CF595A8C1B1ABFB600F7BE40 /* objc_lock.h in Headers */, - FE01A6390C5D9B6900AEA51A /* NSProcessInfo.h in Headers */, - CFCEA46A1B04318B00B3B087 /* NSPlatform_linux.h in Headers */, - CF0F7AC11AE9E7C1003EA762 /* NSString_isoLatin2.h in Headers */, - FE01A63A0C5D9B6900AEA51A /* NSProxy.h in Headers */, - FE01A63B0C5D9B6900AEA51A /* NSRange.h in Headers */, - FE01A63C0C5D9B6900AEA51A /* NSTask.h in Headers */, - FE01A63D0C5D9B6900AEA51A /* NSUnarchiver.h in Headers */, - CFDCC8B91B0415D600A5721C /* NSSocket_bsd.h in Headers */, - FE01A63E0C5D9B6900AEA51A /* NSCharacterSet_bitmap.h in Headers */, - FE01A63F0C5D9B6900AEA51A /* NSCharacterSet_range.h in Headers */, - FE01A6400C5D9B6900AEA51A /* NSCharacterSet_rangeInverted.h in Headers */, - CFDCC8BD1B0415D600A5721C /* NSCancelInputSource_posix.h in Headers */, - FE01A6410C5D9B6900AEA51A /* NSCharacterSet_string.h in Headers */, - FE01A6420C5D9B6900AEA51A /* NSCharacterSet.h in Headers */, - FE01A6430C5D9B6900AEA51A /* NSMutableCharacterSet_bitmap.h in Headers */, - FE01A6440C5D9B6900AEA51A /* NSMutableCharacterSet.h in Headers */, - FE01A6450C5D9B6900AEA51A /* bitmapRepresentation.h in Headers */, - FE01A6460C5D9B6900AEA51A /* NSCalendarDate.h in Headers */, - FE01A6470C5D9B6900AEA51A /* NSDate_timeInterval.h in Headers */, - FE01A6480C5D9B6900AEA51A /* NSDate.h in Headers */, - FE01A6490C5D9B6900AEA51A /* NSDateFormatter.h in Headers */, - FE01A64A0C5D9B6900AEA51A /* NSTimeZone_absolute.h in Headers */, - FE01A64C0C5D9B6900AEA51A /* NSTimeZoneTransition.h in Headers */, - FE01A64D0C5D9B6900AEA51A /* NSTimeZoneType.h in Headers */, - FE01A64E0C5D9B6900AEA51A /* NSTimeZone.h in Headers */, - FE01A64F0C5D9B6900AEA51A /* Foundation.h in Headers */, - FE01A6500C5D9B6900AEA51A /* NSArchiver.h in Headers */, - FE01A6510C5D9B6900AEA51A /* NSPropertyListReader_xml1.h in Headers */, - FE01A6520C5D9B6900AEA51A /* NSPropertyListReader.h in Headers */, - CFDCC8BB1B0415D600A5721C /* NSConditionLock_posix.h in Headers */, - FE01A6530C5D9B6900AEA51A /* NSKeyedUnarchiver.h in Headers */, - FE01A6540C5D9B6900AEA51A /* NSInputStream_socket.h in Headers */, - FE01A6550C5D9B6900AEA51A /* NSOutputStream_socket.h in Headers */, - FE01A6560C5D9B6900AEA51A /* NSInputStream_data.h in Headers */, - FE01A6570C5D9B6900AEA51A /* NSOutputStream_data.h in Headers */, - FE01A6580C5D9B6900AEA51A /* NSOutputStream_file.h in Headers */, - FE01A6590C5D9B6900AEA51A /* NSInputStream_file.h in Headers */, - FE01A65A0C5D9B6900AEA51A /* NSOutputStream_buffer.h in Headers */, - FE01A65B0C5D9B6900AEA51A /* NSConnection.h in Headers */, - FE01A65C0C5D9B6900AEA51A /* NSPort.h in Headers */, - FE01A65D0C5D9B6900AEA51A /* NSSocketPort.h in Headers */, - FE01A65E0C5D9B6900AEA51A /* NSMessagePort.h in Headers */, - FE01A65F0C5D9B6900AEA51A /* NSDistantObject.h in Headers */, - FE01A6600C5D9B6900AEA51A /* NSComparisonPredicate.h in Headers */, - FE01A6610C5D9B6900AEA51A /* NSPredicate.h in Headers */, - FE01A6620C5D9B6900AEA51A /* NSCompoundPredicate.h in Headers */, - FE01A6630C5D9B6900AEA51A /* NSExpression.h in Headers */, - FE01A6640C5D9B6900AEA51A /* NSError.h in Headers */, - FE01A6650C5D9B6900AEA51A /* NSIndexSet.h in Headers */, - FE01A6660C5D9B6900AEA51A /* NSMutableIndexSet.h in Headers */, - FE01A6670C5D9B6900AEA51A /* NSLocale.h in Headers */, - FE01A6680C5D9B6900AEA51A /* NSPropertyList.h in Headers */, - FE01A6690C5D9B6900AEA51A /* NSURL.h in Headers */, - CFDCC8B21B0415D600A5721C /* NSFileHandle_posix.h in Headers */, - FE01A66A0C5D9B6900AEA51A /* NSURLAuthenticationChallenge.h in Headers */, - FE01A66B0C5D9B6900AEA51A /* NSURLCache.h in Headers */, - FE01A66C0C5D9B6900AEA51A /* NSURLConnection.h in Headers */, - FE01A66D0C5D9B6900AEA51A /* NSURLCredential.h in Headers */, - FE01A66E0C5D9B6900AEA51A /* NSURLCredentialStorage.h in Headers */, - FE01A66F0C5D9B6900AEA51A /* NSURLDownload.h in Headers */, - FE01A6700C5D9B6900AEA51A /* NSURLHandle.h in Headers */, - FE01A6710C5D9B6900AEA51A /* NSURLProtectionSpace.h in Headers */, - FE01A6720C5D9B6900AEA51A /* NSURLProtocol.h in Headers */, - FE01A6730C5D9B6900AEA51A /* NSURLRequest.h in Headers */, - FE01A6740C5D9B6900AEA51A /* NSURLResponse.h in Headers */, - FE01A6750C5D9B6900AEA51A /* NSProtocolChecker.h in Headers */, - FE01A6760C5D9B6900AEA51A /* NSHTTPCookie.h in Headers */, - FE01A6770C5D9B6900AEA51A /* NSHTTPCookieStorage.h in Headers */, - FE01A6780C5D9B6900AEA51A /* NSPortMessage.h in Headers */, - FE01A6790C5D9B6900AEA51A /* NSClassDescription.h in Headers */, - FE01A67A0C5D9B6900AEA51A /* NSPortNameServer.h in Headers */, - FE01A67B0C5D9B6900AEA51A /* NSMessagePortNameServer.h in Headers */, - FE01A67C0C5D9B6900AEA51A /* NSSocketPortNameServer.h in Headers */, - FE01A67D0C5D9B6900AEA51A /* NSHTTPURLResponse.h in Headers */, - FE01A67E0C5D9B6900AEA51A /* NSKeyValueCoding.h in Headers */, - FE01A67F0C5D9B6900AEA51A /* NSKVCMutableArray.h in Headers */, - FE01A6800C5D9B6900AEA51A /* NSSocket.h in Headers */, - FE01A6810C5D9B6900AEA51A /* NSSelectInputSource.h in Headers */, - FE01A6820C5D9B6900AEA51A /* NSSocket_windows.h in Headers */, - FE01A6830C5D9B6900AEA51A /* NSSelectSet.h in Headers */, - FE01A6840C5D9B6900AEA51A /* NSSelectSet_windows.h in Headers */, - FE01A6850C5D9B6900AEA51A /* NSSelectInputSourceSet.h in Headers */, - FE01A6860C5D9B6900AEA51A /* NSAssertionHandler.h in Headers */, - FE01A6870C5D9B6900AEA51A /* NSAffineTransform.h in Headers */, - CFDCC8B81B0415D600A5721C /* NSSelectSet_bsd.h in Headers */, - FE01A6880C5D9B6900AEA51A /* NSOldXMLAttribute.h in Headers */, - FE01A6890C5D9B6900AEA51A /* NSOldXMLDocument.h in Headers */, - FE01A68A0C5D9B6900AEA51A /* NSOldXMLElement.h in Headers */, - FE01A68B0C5D9B6900AEA51A /* NSOldXMLReader.h in Headers */, - FE01A68C0C5D9B6900AEA51A /* NSXMLDocument.h in Headers */, - FE01A68D0C5D9B6900AEA51A /* NSXMLDTD.h in Headers */, - FE01A68E0C5D9B6900AEA51A /* NSXMLDTDNode.h in Headers */, - FE01A68F0C5D9B6900AEA51A /* NSXMLElement.h in Headers */, - FE01A6900C5D9B6900AEA51A /* NSXMLNode.h in Headers */, - FE01A6910C5D9B6900AEA51A /* NSXMLParser.h in Headers */, - FE01A6920C5D9B6900AEA51A /* NSDecimal.h in Headers */, - FE01A6930C5D9B6900AEA51A /* NSDecimalNumber.h in Headers */, - FE01A6940C5D9B6900AEA51A /* NSDistributedLock.h in Headers */, - CF652CF31B116C5D0090D2FE /* objc_log.h in Headers */, - FE01A6950C5D9B6900AEA51A /* NSDistributedNotificationCenter.h in Headers */, - FE01A6960C5D9B6900AEA51A /* NSIndexPath.h in Headers */, - FE01A6970C5D9B6900AEA51A /* NSMetadataItem.h in Headers */, - FE01A6980C5D9B6900AEA51A /* NSMetadataQuery.h in Headers */, - FE01A6990C5D9B6900AEA51A /* NSMetadataQueryAttributeValueTuple.h in Headers */, - FE01A69A0C5D9B6900AEA51A /* NSMetadataQueryResultGroup.h in Headers */, - FE01A69D0C5D9B6900AEA51A /* NSSortDescriptor.h in Headers */, - FE01A69E0C5D9B6900AEA51A /* NSValueTransformer.h in Headers */, - FE01A69F0C5D9B6900AEA51A /* NSConcreteDirectoryEnumerator.h in Headers */, - FE01A6A00C5D9B6900AEA51A /* NSKeyValueObserving-Private.h in Headers */, - FE01A6A10C5D9B6900AEA51A /* NSKeyValueObserving.h in Headers */, - FE01A6A20C5D9B6900AEA51A /* NSString+KVCAdditions.h in Headers */, - FE01A6A30C5D9B6900AEA51A /* NSConditionLock.h in Headers */, - CFDCC8B01B0415D600A5721C /* NSCondition_posix.h in Headers */, - FE01A6AB0C5D9B6900AEA51A /* NSPredicate_BOOL.h in Headers */, - FE01A6AC0C5D9B6900AEA51A /* NSKeyedArchiver.h in Headers */, - FE01A6AD0C5D9B6900AEA51A /* NSCalendar.h in Headers */, - CFDCC8BC1B0415D600A5721C /* NSRecursiveLock_posix.h in Headers */, - FE01A6AE0C5D9B6900AEA51A /* NSExpression_operator.h in Headers */, - FE01A6AF0C5D9B6900AEA51A /* NSExpression_array.h in Headers */, - FE01A6B00C5D9B6900AEA51A /* NSExpression_assignment.h in Headers */, - FE01A6B10C5D9B6900AEA51A /* NSExpression_constant.h in Headers */, - FE01A6B20C5D9B6900AEA51A /* NSExpression_function.h in Headers */, - FE01A6B30C5D9B6900AEA51A /* NSExpression_keypath.h in Headers */, - FE01A6B40C5D9B6900AEA51A /* NSExpression_self.h in Headers */, - FE01A6B50C5D9B6900AEA51A /* NSExpression_variable.h in Headers */, - FE01A6B60C5D9B6900AEA51A /* NSDateComponents.h in Headers */, - FE01A6B80C5D9B6900AEA51A /* NSValueTransformer_IsNil.h in Headers */, - FE01A6B90C5D9B6900AEA51A /* NSValueTransformer_IsNotNil.h in Headers */, - FE01A6BA0C5D9B6900AEA51A /* NSValueTransformer_NegateBoolean.h in Headers */, - FE01A6BB0C5D9B6900AEA51A /* NSValueTransformer_UnarchiveFromData.h in Headers */, - FE01A6BC0C5D9B6900AEA51A /* objc_cache.h in Headers */, - FEDF9FF50CF6123F00F21F87 /* NSMutableURLRequest.h in Headers */, - FEDFA1060CF7D41F00F21F87 /* NSCachedURLResponse.h in Headers */, - FEA9D08A0D16C55E00123D51 /* NSPropertyListReader_binary1.h in Headers */, - FE9E1A310D5C0676004AE7BA /* NSLocale+windows.h in Headers */, - FE7FE5C10D7CF08B006CCA28 /* NSFileHandle_stream.h in Headers */, - CFDCC8AF1B0415D600A5721C /* NSTimeZone_posix.h in Headers */, - C844CF9D0DA7EBE500A8F3A2 /* NSRecursiveLock.h in Headers */, - CFDCC8B11B0415D600A5721C /* NSRunLoopState_posix.h in Headers */, - C844CFD80DA7F21400A8F3A2 /* NSSynchronization.h in Headers */, - C8BAA5750DDEFC6C005C4769 /* objc_size_alignment.h in Headers */, - FEC9F6AE0E2F98EA0034932A /* NSURLProtocol_http.h in Headers */, - FEC9F6BD0E2F9BEA0034932A /* NSURLConnectionState.h in Headers */, - C851D8740E40E0D3001DAB69 /* NSPropertyListWriter_xml1.h in Headers */, - C8B53BDD0E6AC7C500E4467E /* objc_debugHelpers.h in Headers */, - C8C970100EBDBC63009CE9BC /* NSConditionLock_win32.h in Headers */, - FEE7D3130ED1D2DE0032DCE0 /* NSNetServices.h in Headers */, - FEE7D3400ED1D4E10032DCE0 /* bonjour.h in Headers */, - FE1365E00F154B3A000F2657 /* NSAtomicList.h in Headers */, - FE1365E40F154B3A000F2657 /* NSOperation.h in Headers */, - FE1365E60F154B3A000F2657 /* NSOperationQueue.h in Headers */, - C89B47370F5C6A4B0070120D /* NSCancelInputSource_win32.h in Headers */, - FEA9D3070F5D9C2100772064 /* NSRunLoopState_windows.h in Headers */, - FEC1CFE40F7AAB7900619DD5 /* FoundationErrors.h in Headers */, - FEDB76390F8AD40700AC545D /* objc_object.h in Headers */, - FE1A0D290F8BADBA00FC4CC7 /* forwarding.h in Headers */, - FEBF536C0F926025005DC684 /* objc_protocol.h in Headers */, - FEA3178B0FD5843900F480D4 /* NSRaiseException.h in Headers */, - FE8C91400FFD1E430027C889 /* NSString_win1252.h in Headers */, - FE452E82102097EF00585DFE /* NSString_macOSRoman.h in Headers */, - CF652CF51B116C5D0090D2FE /* objc_tls.h in Headers */, - FE463E1B102CD59500B265D6 /* NSSpellServer.h in Headers */, - FE463E2B102CD5A600B265D6 /* NSURLError.h in Headers */, - FE463E46102CD5B800B265D6 /* NSGarbageCollector.h in Headers */, - CFDCC8B61B0415D600A5721C /* NSPipe_posix.h in Headers */, - FE463E58102CD5C700B265D6 /* NSPointerArray.h in Headers */, - FE463E5A102CD5C700B265D6 /* NSPointerFunctions.h in Headers */, - FE463E75102CD5D200B265D6 /* NSXMLNodeOptions.h in Headers */, - FE60143B1042FDD2008A7357 /* NSString_defaultEncoding.h in Headers */, - 151B5D22105EA94F009092D5 /* NSAtomicCompareAndSwap.h in Headers */, - 1ACAB287108C5B010057A542 /* NSNumber_BOOL_const.h in Headers */, - 1ACAB288108C5B010057A542 /* NSNumber_double_const.h in Headers */, - 1A28B5B8109096950019EFC6 /* NSConstObject.h in Headers */, - 1A27BFFC1090CBCD00C44FD7 /* NSNumber_BOOL_const_impl.h in Headers */, - 1A8A69541091EF0200DC5A01 /* NSCFTypeID.h in Headers */, - CFDCC8B31B0415D600A5721C /* NSFileManager_posix.h in Headers */, - FE828F39110DFA1C0008AFA2 /* NSKVOInfoPerObject.h in Headers */, - FE9C1B8E1125A649002DA20B /* CFSSLHandler.h in Headers */, - FE3C473E112AF7FC0099DAB8 /* CFUID.h in Headers */, - FE6CF8A01152743100B6D893 /* objc_malloc.h in Headers */, - 269249CD1157AD6500A96CEB /* NSCondition_win32.h in Headers */, - FE720FD6124C56FA009B690D /* NSKeyPathObserver.h in Headers */, - FE721027124CE420009B690D /* NSKeyObserver.h in Headers */, - FEADE5C012FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.h in Headers */, - FE937F401358DC8000C93531 /* NSNumber_CF.h in Headers */, - FE09AF7013FCC68100B53D10 /* NSOrthography.h in Headers */, - FE09AF8413FCC69200B53D10 /* NSTextCheckingResult.h in Headers */, - FEB3F2C01404A92400059C8F /* NSSpellEngine.h in Headers */, - FEFAA5411429098A00CEE177 /* NSScriptWhoseTests.h in Headers */, - FE4C074A1434A0330034EE26 /* NSDecimalNumberPlaceholder.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - FE01A5970C5D9B6900AEA51A /* Foundation */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE01A7EA0C5D9B6900AEA51A /* Build configuration list for PBXNativeTarget "Foundation" */; - buildPhases = ( - FE01A59A0C5D9B6900AEA51A /* Headers */, - FE01A6BD0C5D9B6900AEA51A /* Sources */, - FE01A7DA0C5D9B6900AEA51A /* Frameworks */, - FE01A7DB0C5D9B6900AEA51A /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - FE01A7F30C5D9B9100AEA51A /* PBXTargetDependency */, - FEA828AD109B752F00C7A732 /* PBXTargetDependency */, - FE1342D51151843C00404745 /* PBXTargetDependency */, - ); - name = Foundation; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = Foundation; - productReference = FE01A7EC0C5D9B6900AEA51A /* Foundation.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 6E2801B909746B8900EC542B /* Build configuration list for PBXProject "Foundation" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* Foundation */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FEA828A4109B74B200C7A732 /* Products */; - ProjectRef = FEA828A3109B74B200C7A732 /* CoreFoundation.xcodeproj */; - }, - { - ProductGroup = FE1342BE1151842200404745 /* Products */; - ProjectRef = FE1342BD1151842200404745 /* CoreServices.xcodeproj */; - }, - { - ProductGroup = FEB6CC410B4A1922004FADF2 /* Products */; - ProjectRef = FEB6CC400B4A1922004FADF2 /* objc.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - FE01A5970C5D9B6900AEA51A /* Foundation */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - CFC5B42D1AF466EB00FBB52A /* objc.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = objc.framework; - remoteRef = CFC5B42C1AF466EB00FBB52A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE1342C91151842200404745 /* CoreServices.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreServices.framework; - remoteRef = FE1342C81151842200404745 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FEA828AB109B74B200C7A732 /* CoreFoundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreFoundation.framework; - remoteRef = FEA828AA109B74B200C7A732 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - FE01A7DB0C5D9B6900AEA51A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01A7DC0C5D9B6900AEA51A /* punctuationCharacterSet.bitmap in Resources */, - FE01A7DD0C5D9B6900AEA51A /* uppercaseLetterCharacterSet.bitmap in Resources */, - FE01A7E00C5D9B6900AEA51A /* alphanumericCharacterSet.bitmap in Resources */, - FE01A7E10C5D9B6900AEA51A /* controlCharacterSet.bitmap in Resources */, - FE01A7E20C5D9B6900AEA51A /* decimalDigitCharacterSet.bitmap in Resources */, - FE01A7E30C5D9B6900AEA51A /* letterCharacterSet.bitmap in Resources */, - FE01A7E40C5D9B6900AEA51A /* lowercaseLetterCharacterSet.bitmap in Resources */, - FE01A7E50C5D9B6900AEA51A /* NSTimeZoneAbbreviations.plist in Resources */, - FE01A7E60C5D9B6900AEA51A /* NSTimeZoneRegions.plist in Resources */, - FE01A7E70C5D9B6900AEA51A /* NSUserDefaults.plist in Resources */, - FE1CF95710233D94001414D4 /* illegalCharacterSet.bitmap in Resources */, - FE86D408114743AC0010FE05 /* NSStringEncodingNames.plist in Resources */, - C6BC3CC61162308E00DFC16C /* NSTimeZoneWindowsZones.plist in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - FE01A6BD0C5D9B6900AEA51A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01A6BE0C5D9B6900AEA51A /* NSArray_concrete.m in Sources */, - FE01A6BF0C5D9B6900AEA51A /* NSArray_placeholder.m in Sources */, - FE01A6C00C5D9B6900AEA51A /* NSArray.m in Sources */, - FE01A6C10C5D9B6900AEA51A /* NSEnumerator_array.m in Sources */, - FE01A6C20C5D9B6900AEA51A /* NSEnumerator_arrayReverse.m in Sources */, - CF652CF71B116D180090D2FE /* objc_exception.m in Sources */, - CFDCC8A31B0415A300A5721C /* NSLock_posix.m in Sources */, - FE01A6C30C5D9B6900AEA51A /* NSMutableArray_concrete.m in Sources */, - FE01A6C40C5D9B6900AEA51A /* NSMutableArray.m in Sources */, - FE01A6C50C5D9B6900AEA51A /* NSAttributedString_manyAttributes.m in Sources */, - FE01A6C60C5D9B6900AEA51A /* NSAttributedString_nilAttributes.m in Sources */, - FE01A6C70C5D9B6900AEA51A /* NSAttributedString_oneAttribute.m in Sources */, - FE01A6C80C5D9B6900AEA51A /* NSAttributedString_placeholder.m in Sources */, - FE01A6C90C5D9B6900AEA51A /* NSAttributedString.m in Sources */, - FE01A6CA0C5D9B6900AEA51A /* NSMutableAttributedString_concrete.m in Sources */, - FE01A6CB0C5D9B6900AEA51A /* NSMutableAttributedString.m in Sources */, - FE01A6CC0C5D9B6900AEA51A /* NSMutableString_proxyToMutableAttributedString.m in Sources */, - FE01A6CD0C5D9B6900AEA51A /* NSRangeEntries.m in Sources */, - FE01A6CE0C5D9B6900AEA51A /* NSAutoreleasePool.m in Sources */, - FE01A6CF0C5D9B6900AEA51A /* NSData_concrete.m in Sources */, - FE01A6D00C5D9B6900AEA51A /* NSData_mapped.m in Sources */, - FE01A6D10C5D9B6900AEA51A /* NSData.m in Sources */, - FE01A6D20C5D9B6900AEA51A /* NSMutableData_concrete.m in Sources */, - FE01A6D30C5D9B6900AEA51A /* NSMutableData.m in Sources */, - FE01A6D40C5D9B6900AEA51A /* NSDictionary_mapTable.m in Sources */, - FE01A6D50C5D9B6900AEA51A /* NSDictionary.m in Sources */, - FE01A6D60C5D9B6900AEA51A /* NSEnumerator_dictionaryKeys.m in Sources */, - FE01A6D70C5D9B6900AEA51A /* NSEnumerator_dictionaryObjects.m in Sources */, - FE01A6D80C5D9B6900AEA51A /* NSMutableDictionary_mapTable.m in Sources */, - FE01A6D90C5D9B6900AEA51A /* NSMutableDictionary.m in Sources */, - FE01A6DA0C5D9B6900AEA51A /* NSException.m in Sources */, - FE01A6DB0C5D9B6900AEA51A /* NSRaise.m in Sources */, - FE01A6DC0C5D9B6900AEA51A /* NSLock.m in Sources */, - FE01A6DD0C5D9B6900AEA51A /* NSNotification_concrete.m in Sources */, - FE01A6DE0C5D9B6900AEA51A /* NSNotification.m in Sources */, - CFDCC8AC1B0415A300A5721C /* NSRecursiveLock_posix.m in Sources */, - FE01A6DF0C5D9B6900AEA51A /* NSNotificationCenter.m in Sources */, - FE01A6E00C5D9B6900AEA51A /* NSNotificationObserver.m in Sources */, - FE01A6E10C5D9B6900AEA51A /* NSObjectToObservers.m in Sources */, - FE01A6E20C5D9B6900AEA51A /* NSNotificationAndModes.m in Sources */, - CF0F7AC71AE9EB23003EA762 /* NSBacktraceFunctions_win32.m in Sources */, - FE01A6E30C5D9B6900AEA51A /* NSNotificationQueue.m in Sources */, - FE01A6E40C5D9B6900AEA51A /* NSNumber_BOOL.m in Sources */, - FE01A6E50C5D9B6900AEA51A /* NSNumber_char.m in Sources */, - FE01A6E60C5D9B6900AEA51A /* NSNumber_double.m in Sources */, - FE01A6E70C5D9B6900AEA51A /* NSNumber_float.m in Sources */, - CFDCC8A71B0415A300A5721C /* NSPlatform_posix.m in Sources */, - FE01A6E80C5D9B6900AEA51A /* NSNumber_int.m in Sources */, - FE01A6E90C5D9B6900AEA51A /* NSNumber_long.m in Sources */, - FE01A6EA0C5D9B6900AEA51A /* NSNumber_longLong.m in Sources */, - FE01A6EB0C5D9B6900AEA51A /* NSNumber_placeholder.m in Sources */, - CF652CF41B116C5D0090D2FE /* objc_tls.c in Sources */, - FE01A6EC0C5D9B6900AEA51A /* NSNumber_short.m in Sources */, - CF2A01FF1B078C89005D322F /* OBJCRegisterModule_Darwin.m in Sources */, - FE01A6ED0C5D9B6900AEA51A /* NSNumber_unsignedChar.m in Sources */, - FE01A6EE0C5D9B6900AEA51A /* NSNumber_unsignedInt.m in Sources */, - FE01A6EF0C5D9B6900AEA51A /* NSNumber_unsignedLong.m in Sources */, - FE01A6F00C5D9B6900AEA51A /* NSNumber_unsignedLongLong.m in Sources */, - FE01A6F10C5D9B6900AEA51A /* NSNumber_unsignedShort.m in Sources */, - 499120DD178EA58D009310D4 /* NSStringEncoder.m in Sources */, - FE01A6F20C5D9B6900AEA51A /* NSNumber.m in Sources */, - FE01A6F30C5D9B6900AEA51A /* NSObject.m in Sources */, - FE01A6F40C5D9B6900AEA51A /* NSZombieObject.m in Sources */, - FE01A6F50C5D9B6900AEA51A /* NSPropertyListReader_vintage.m in Sources */, - FE01A6F60C5D9B6900AEA51A /* NSPropertyListWriter_vintage.m in Sources */, - FE01A6F70C5D9B6900AEA51A /* NSDelayedPerform.m in Sources */, - FE01A6F80C5D9B6900AEA51A /* NSOrderedPerform.m in Sources */, - FE01A6F90C5D9B6900AEA51A /* NSRunLoop.m in Sources */, - FE01A6FA0C5D9B6900AEA51A /* NSRunLoopState.m in Sources */, - FE01A6FB0C5D9B6900AEA51A /* NSScanner_concrete.m in Sources */, - FE01A6FC0C5D9B6900AEA51A /* NSScanner.m in Sources */, - FE01A6FD0C5D9B6900AEA51A /* NSCountedSet.m in Sources */, - FE01A6FE0C5D9B6900AEA51A /* NSEnumerator_set.m in Sources */, - FE01A6FF0C5D9B6900AEA51A /* NSInlineSetTable.m in Sources */, - FE01A7000C5D9B6900AEA51A /* NSMutableSet_concrete.m in Sources */, - FE01A7010C5D9B6900AEA51A /* NSMutableSet.m in Sources */, - FE01A7020C5D9B6900AEA51A /* NSSet_concrete.m in Sources */, - FE01A7030C5D9B6900AEA51A /* NSSet_placeholder.m in Sources */, - FE01A7040C5D9B6900AEA51A /* NSSet.m in Sources */, - FE01A7050C5D9B6900AEA51A /* NSInputStream.m in Sources */, - FE01A7060C5D9B6900AEA51A /* NSOutputStream.m in Sources */, - FE01A7070C5D9B6900AEA51A /* NSStream.m in Sources */, - FE01A7080C5D9B6900AEA51A /* NSConstantString-Impl.m in Sources */, - FE01A7090C5D9B6900AEA51A /* NSString_cString.m in Sources */, - FE01A70A0C5D9B6900AEA51A /* NSString_isoLatin1.m in Sources */, - FE01A70B0C5D9B6900AEA51A /* NSMutableString.m in Sources */, - FE01A70C0C5D9B6900AEA51A /* NSMutableString_unicodePtr.m in Sources */, - FE01A70D0C5D9B6900AEA51A /* NSString_nextstepCString.m in Sources */, - FE01A70E0C5D9B6900AEA51A /* NSString_nextstep.m in Sources */, - FE01A70F0C5D9B6900AEA51A /* NSPathUtilities.m in Sources */, - FE01A7100C5D9B6900AEA51A /* NSString_placeholder.m in Sources */, - FE01A7110C5D9B6900AEA51A /* NSString.m in Sources */, - FE01A7120C5D9B6900AEA51A /* NSStringFileIO.m in Sources */, - FE01A7130C5D9B6900AEA51A /* NSStringFormatter.m in Sources */, - FE01A7140C5D9B6900AEA51A /* NSString_unicode.m in Sources */, - FE01A7150C5D9B6900AEA51A /* NSString_unicodePtr.m in Sources */, - FE01A7160C5D9B6900AEA51A /* NSStringUTF8.m in Sources */, - FE01A7170C5D9B6900AEA51A /* NSStringSymbol.m in Sources */, - FE01A7180C5D9B6900AEA51A /* NSUnicodeCaseMapping.m in Sources */, - FE01A7190C5D9B6900AEA51A /* unibuffer.m in Sources */, - FE01A71A0C5D9B6900AEA51A /* NSStringsFileParser.m in Sources */, - FE01A71B0C5D9B6900AEA51A /* NSThread.m in Sources */, - CFDCC89F1B0415A300A5721C /* NSString_defaultEncoding_posix.m in Sources */, - FE01A71C0C5D9B6900AEA51A /* NSTimer_concrete.m in Sources */, - FE01A71D0C5D9B6900AEA51A /* NSTimer_invocation.m in Sources */, - FE01A71E0C5D9B6900AEA51A /* NSTimer_targetAction.m in Sources */, - FE01A71F0C5D9B6900AEA51A /* NSTimer.m in Sources */, - FE01A7200C5D9B6900AEA51A /* NSUndoGroup.m in Sources */, - FE01A7210C5D9B6900AEA51A /* NSUndoManager.m in Sources */, - FE01A7220C5D9B6900AEA51A /* NSPersistantDomain.m in Sources */, - FE01A7230C5D9B6900AEA51A /* NSUserDefaults.m in Sources */, - FE01A7240C5D9B6900AEA51A /* NSValue_concrete.m in Sources */, - CFDCC8A11B0415A300A5721C /* NSFileHandle_posix.m in Sources */, - FE01A7250C5D9B6900AEA51A /* NSValue_nonRetainedObject.m in Sources */, - FE01A7260C5D9B6900AEA51A /* NSValue_placeholder.m in Sources */, - FE01A7270C5D9B6900AEA51A /* NSValue_pointer.m in Sources */, - CF0F7AC21AE9E7C1003EA762 /* NSString_isoLatin2.m in Sources */, - CFDCC8AA1B0415A300A5721C /* NSTask_posix.m in Sources */, - FE01A7280C5D9B6900AEA51A /* NSValue.m in Sources */, - FE01A7290C5D9B6900AEA51A /* NSVirtualMemory.m in Sources */, - FE01A72A0C5D9B6900AEA51A /* NSZone.m in Sources */, - FE01A72B0C5D9B6900AEA51A /* objc_functions.c in Sources */, - FE01A72C0C5D9B6900AEA51A /* ObjCArray.c in Sources */, - FE01A72D0C5D9B6900AEA51A /* objc_class.c in Sources */, - FE01A72E0C5D9B6900AEA51A /* ObjCDynamicModule.c in Sources */, - FE01A7300C5D9B6900AEA51A /* ObjCHashTable.c in Sources */, - FE01A7310C5D9B6900AEA51A /* ObjCModule.c in Sources */, - FE01A7320C5D9B6900AEA51A /* objc_sel.c in Sources */, - FE01A7350C5D9B6900AEA51A /* Protocol.m in Sources */, - FE01A7360C5D9B6900AEA51A /* NSBundle.m in Sources */, - FE01A7370C5D9B6900AEA51A /* NSByteOrder.m in Sources */, - FE01A7380C5D9B6900AEA51A /* NSCoder.m in Sources */, - CFDCC89E1B0415A300A5721C /* NSCondition_posix.m in Sources */, - FE01A7390C5D9B6900AEA51A /* NSDebug.m in Sources */, - FE01A73A0C5D9B6900AEA51A /* NSDirectoryEnumerator.m in Sources */, - FE01A73B0C5D9B6900AEA51A /* NSEnumerator.m in Sources */, - FE01A73C0C5D9B6900AEA51A /* NSFileHandle.m in Sources */, - FE01A73D0C5D9B6900AEA51A /* NSFileManager.m in Sources */, - FE01A73E0C5D9B6900AEA51A /* NSFormatter.m in Sources */, - FE01A73F0C5D9B6900AEA51A /* NSGeometry.m in Sources */, - FE01A7400C5D9B6900AEA51A /* NSHashTable.m in Sources */, - FE01A7410C5D9B6900AEA51A /* NSHost.m in Sources */, - FE01A7420C5D9B6900AEA51A /* NSInputSource.m in Sources */, - CFDCC8A21B0415A300A5721C /* NSFileManager_posix.m in Sources */, - FE01A7430C5D9B6900AEA51A /* NSInputSourceSet.m in Sources */, - FE01A7440C5D9B6900AEA51A /* NSInvocation.m in Sources */, - FE01A7450C5D9B6900AEA51A /* NSMapTable.m in Sources */, - FE01A7460C5D9B6900AEA51A /* NSMethodSignature.m in Sources */, - FE01A7470C5D9B6900AEA51A /* NSNull.m in Sources */, - FE01A7480C5D9B6900AEA51A /* NSNumberFormatter.m in Sources */, - FE01A7490C5D9B6900AEA51A /* NSObjCRuntime.m in Sources */, - FE01A74A0C5D9B6900AEA51A /* NSPipe.m in Sources */, - FE01A74B0C5D9B6900AEA51A /* NSPlatform.m in Sources */, - FE01A74C0C5D9B6900AEA51A /* NSPortCoder.m in Sources */, - CFDCC8AE1B0415A600A5721C /* NSSocketPort_posix.m in Sources */, - FE01A74D0C5D9B6900AEA51A /* NSProcessInfo.m in Sources */, - FE01A74E0C5D9B6900AEA51A /* NSProxy.m in Sources */, - FE01A74F0C5D9B6900AEA51A /* NSRange.m in Sources */, - FE01A7500C5D9B6900AEA51A /* NSTask.m in Sources */, - FE01A7510C5D9B6900AEA51A /* NSUnarchiver.m in Sources */, - FE01A7520C5D9B6900AEA51A /* NSCharacterSet_bitmap.m in Sources */, - FE01A7530C5D9B6900AEA51A /* NSCharacterSet_range.m in Sources */, - FE01A7540C5D9B6900AEA51A /* NSCharacterSet_rangeInverted.m in Sources */, - FE01A7550C5D9B6900AEA51A /* NSCharacterSet_string.m in Sources */, - CFDCC8AB1B0415A300A5721C /* NSConditionLock_posix.m in Sources */, - FE01A7560C5D9B6900AEA51A /* NSCharacterSet.m in Sources */, - FE01A7570C5D9B6900AEA51A /* NSMutableCharacterSet_bitmap.m in Sources */, - FE01A7580C5D9B6900AEA51A /* NSMutableCharacterSet.m in Sources */, - FE01A7590C5D9B6900AEA51A /* NSCalendarDate.m in Sources */, - FE01A75A0C5D9B6900AEA51A /* NSDate_timeInterval.m in Sources */, - FE01A75B0C5D9B6900AEA51A /* NSDate.m in Sources */, - FE01A75C0C5D9B6900AEA51A /* NSDateFormatter.m in Sources */, - FE01A75D0C5D9B6900AEA51A /* NSTimeZone_absolute.m in Sources */, - FE01A75F0C5D9B6900AEA51A /* NSTimeZoneTransition.m in Sources */, - FE01A7600C5D9B6900AEA51A /* NSTimeZoneType.m in Sources */, - CFE3093C1B06E63C008442BF /* NSPlatform_darwin.m in Sources */, - CFDCC8A51B0415A300A5721C /* NSPersistantDomain_posix.m in Sources */, - FE01A7610C5D9B6900AEA51A /* NSTimeZone.m in Sources */, - FE01A7620C5D9B6900AEA51A /* NSArchiver.m in Sources */, - FE01A7630C5D9B6900AEA51A /* dllmain.m in Sources */, - FE01A7640C5D9B6900AEA51A /* NSFileHandle_win32.m in Sources */, - FE01A7650C5D9B6900AEA51A /* NSFileManager_win32.m in Sources */, - FE01A7660C5D9B6900AEA51A /* NSHandleMonitor_win32.m in Sources */, - FE01A7670C5D9B6900AEA51A /* NSHandleMonitorSet_win32.m in Sources */, - FE01A7680C5D9B6900AEA51A /* NSLock_win32.m in Sources */, - FE01A7690C5D9B6900AEA51A /* NSMemoryFunctions_win32.m in Sources */, - FE01A76A0C5D9B6900AEA51A /* NSParentDeathMonitor_win32.m in Sources */, - FE01A76B0C5D9B6900AEA51A /* NSPersistantDomain_win32.m in Sources */, - FE01A76C0C5D9B6900AEA51A /* NSPipe_win32.m in Sources */, - FE01A76D0C5D9B6900AEA51A /* NSPlatform_win32.m in Sources */, - CFDCC89D1B0415A300A5721C /* NSTimeZone_posix.m in Sources */, - CFDCC8A01B0415A300A5721C /* NSRunLoopState_posix.m in Sources */, - FE01A76E0C5D9B6900AEA51A /* NSReadInBackground_win32.m in Sources */, - FE01A76F0C5D9B6900AEA51A /* NSString_win32.m in Sources */, - FE01A7700C5D9B6900AEA51A /* NSTask_win32.m in Sources */, - FE01A7710C5D9B6900AEA51A /* NSConstantString.m in Sources */, - FE01A7720C5D9B6900AEA51A /* NSPropertyListReader_xml1.m in Sources */, - FE01A7730C5D9B6900AEA51A /* NSPropertyListReader.m in Sources */, - FE01A7740C5D9B6900AEA51A /* NSKeyedUnarchiver.m in Sources */, - FE01A7750C5D9B6900AEA51A /* msgSendv-windows.s in Sources */, - FE01A7760C5D9B6900AEA51A /* objc_msg_lookup.c in Sources */, - FE01A7770C5D9B6900AEA51A /* NSInputStream_socket.m in Sources */, - FE01A7780C5D9B6900AEA51A /* NSOutputStream_socket.m in Sources */, - FE01A7790C5D9B6900AEA51A /* NSInputStream_data.m in Sources */, - CFDCC89A1B04149700A5721C /* NSMemoryFunctions_linux.m in Sources */, - FE01A77A0C5D9B6900AEA51A /* NSOutputStream_data.m in Sources */, - FE01A77B0C5D9B6900AEA51A /* NSOutputStream_file.m in Sources */, - FE01A77C0C5D9B6900AEA51A /* NSInputStream_file.m in Sources */, - FE01A77D0C5D9B6900AEA51A /* NSOutputStream_buffer.m in Sources */, - FE01A77E0C5D9B6900AEA51A /* NSConnection.m in Sources */, - FE01A77F0C5D9B6900AEA51A /* NSPort.m in Sources */, - FE01A7800C5D9B6900AEA51A /* NSSocketPort.m in Sources */, - FE01A7810C5D9B6900AEA51A /* NSMessagePort.m in Sources */, - CF7FA2001B18006E00840DB1 /* dyld.c in Sources */, - FE01A7820C5D9B6900AEA51A /* NSDistantObject.m in Sources */, - FE01A7830C5D9B6900AEA51A /* NSComparisonPredicate.m in Sources */, - FE01A7840C5D9B6900AEA51A /* NSPredicate.m in Sources */, - FE01A7850C5D9B6900AEA51A /* NSCompoundPredicate.m in Sources */, - FE01A7860C5D9B6900AEA51A /* NSExpression.m in Sources */, - FE01A7870C5D9B6900AEA51A /* NSError.m in Sources */, - FE01A7880C5D9B6900AEA51A /* NSIndexSet.m in Sources */, - FE01A7890C5D9B6900AEA51A /* NSMutableIndexSet.m in Sources */, - FE01A78A0C5D9B6900AEA51A /* NSLocale.m in Sources */, - FE01A78B0C5D9B6900AEA51A /* NSPropertyList.m in Sources */, - FE01A78C0C5D9B6900AEA51A /* NSURL.m in Sources */, - FE01A78D0C5D9B6900AEA51A /* NSURLAuthenticationChallenge.m in Sources */, - FE01A78E0C5D9B6900AEA51A /* NSURLCache.m in Sources */, - FE01A78F0C5D9B6900AEA51A /* NSURLConnection.m in Sources */, - FE01A7900C5D9B6900AEA51A /* NSURLCredential.m in Sources */, - FE01A7910C5D9B6900AEA51A /* NSURLCredentialStorage.m in Sources */, - FE01A7920C5D9B6900AEA51A /* NSURLDownload.m in Sources */, - FE01A7930C5D9B6900AEA51A /* NSURLHandle.m in Sources */, - FE01A7940C5D9B6900AEA51A /* NSURLProtectionSpace.m in Sources */, - FE01A7950C5D9B6900AEA51A /* NSURLProtocol.m in Sources */, - FE01A7960C5D9B6900AEA51A /* NSURLRequest.m in Sources */, - FE01A7970C5D9B6900AEA51A /* NSURLResponse.m in Sources */, - FE01A7980C5D9B6900AEA51A /* NSProtocolChecker.m in Sources */, - FE01A7990C5D9B6900AEA51A /* NSHTTPCookie.m in Sources */, - FE01A79A0C5D9B6900AEA51A /* NSHTTPCookieStorage.m in Sources */, - FE01A79B0C5D9B6900AEA51A /* NSPortMessage.m in Sources */, - FE01A79C0C5D9B6900AEA51A /* NSClassDescription.m in Sources */, - FE01A79D0C5D9B6900AEA51A /* NSPortNameServer.m in Sources */, - FE01A79E0C5D9B6900AEA51A /* NSMessagePortNameServer.m in Sources */, - FE01A79F0C5D9B6900AEA51A /* NSSocketPortNameServer.m in Sources */, - CFCEA46B1B04318B00B3B087 /* NSPlatform_linux.m in Sources */, - FE01A7A00C5D9B6900AEA51A /* NSHTTPURLResponse.m in Sources */, - FE01A7A10C5D9B6900AEA51A /* NSKeyValueCoding.m in Sources */, - FE01A7A30C5D9B6900AEA51A /* NSKVCMutableArray.m in Sources */, - FE01A7A40C5D9B6900AEA51A /* objc.m in Sources */, - FE01A7A50C5D9B6900AEA51A /* NSSocket.m in Sources */, - FE01A7A60C5D9B6900AEA51A /* NSSelectInputSource.m in Sources */, - CFDCC8A41B0415A300A5721C /* NSMemoryFunctions_posix.m in Sources */, - FE01A7A70C5D9B6900AEA51A /* NSSocket_windows.m in Sources */, - FE01A7A80C5D9B6900AEA51A /* NSSelectSet.m in Sources */, - FE01A7A90C5D9B6900AEA51A /* NSSelectSet_windows.m in Sources */, - FE01A7AA0C5D9B6900AEA51A /* NSSelectInputSourceSet.m in Sources */, - FE01A7AB0C5D9B6900AEA51A /* NSAssertionHandler.m in Sources */, - FE01A7AC0C5D9B6900AEA51A /* NSAffineTransform.m in Sources */, - FE01A7AD0C5D9B6900AEA51A /* NSOldXMLAttribute.m in Sources */, - FE01A7AE0C5D9B6900AEA51A /* NSOldXMLDocument.m in Sources */, - FE01A7AF0C5D9B6900AEA51A /* NSOldXMLElement.m in Sources */, - FE01A7B00C5D9B6900AEA51A /* NSOldXMLReader.m in Sources */, - FE01A7B10C5D9B6900AEA51A /* NSXMLDocument.m in Sources */, - FE01A7B20C5D9B6900AEA51A /* NSXMLDTD.m in Sources */, - FE01A7B30C5D9B6900AEA51A /* NSXMLDTDNode.m in Sources */, - FE01A7B40C5D9B6900AEA51A /* NSXMLElement.m in Sources */, - FE01A7B50C5D9B6900AEA51A /* NSXMLNode.m in Sources */, - FE01A7B60C5D9B6900AEA51A /* NSXMLParser.m in Sources */, - FE01A7B70C5D9B6900AEA51A /* NSDecimal.m in Sources */, - FE01A7B80C5D9B6900AEA51A /* NSDecimalNumber.m in Sources */, - FE01A7B90C5D9B6900AEA51A /* NSDistributedNotificationCenter.m in Sources */, - FE01A7BA0C5D9B6900AEA51A /* NSIndexPath.m in Sources */, - FE01A7BB0C5D9B6900AEA51A /* NSMetadataItem.m in Sources */, - FE01A7BC0C5D9B6900AEA51A /* NSMetadataQuery.m in Sources */, - FE01A7BD0C5D9B6900AEA51A /* NSMetadataQueryAttributeValueTuple.m in Sources */, - FE01A7BE0C5D9B6900AEA51A /* NSMetadataQueryResultGroup.m in Sources */, - FE01A7C10C5D9B6900AEA51A /* NSSortDescriptor.m in Sources */, - FE01A7C20C5D9B6900AEA51A /* NSValueTransformer.m in Sources */, - FE01A7C30C5D9B6900AEA51A /* NSDistributedLock.m in Sources */, - FE01A7C40C5D9B6900AEA51A /* NSConcreteDirectoryEnumerator.m in Sources */, - FE01A7C50C5D9B6900AEA51A /* NSArray+KVC.m in Sources */, - FE01A7C60C5D9B6900AEA51A /* NSDictionary+KVC.m in Sources */, - CFDCC8A91B0415A300A5721C /* NSSocket_bsd.m in Sources */, - FE01A7C70C5D9B6900AEA51A /* NSKeyValueObserving.m in Sources */, - FE01A7C80C5D9B6900AEA51A /* NSString+KVCAdditions.m in Sources */, - FE01A7C90C5D9B6900AEA51A /* NSConditionLock.m in Sources */, - FE01A7CA0C5D9B6900AEA51A /* NSPredicate_BOOL.m in Sources */, - FE01A7CB0C5D9B6900AEA51A /* NSKeyedArchiver.m in Sources */, - FE01A7CC0C5D9B6900AEA51A /* NSCalendar.m in Sources */, - CF652CF91B116D4E0090D2FE /* objc_arc.c in Sources */, - FE01A7CD0C5D9B6900AEA51A /* NSExpression_operator.m in Sources */, - FE01A7CE0C5D9B6900AEA51A /* NSExpression_array.m in Sources */, - FE01A7CF0C5D9B6900AEA51A /* NSExpression_assignment.m in Sources */, - FE01A7D00C5D9B6900AEA51A /* NSExpression_constant.m in Sources */, - FE01A7D10C5D9B6900AEA51A /* NSExpression_function.m in Sources */, - FE01A7D20C5D9B6900AEA51A /* NSExpression_keypath.m in Sources */, - FE01A7D30C5D9B6900AEA51A /* NSExpression_self.m in Sources */, - FE01A7D40C5D9B6900AEA51A /* NSExpression_variable.m in Sources */, - FE01A7D50C5D9B6900AEA51A /* NSDateComponents.m in Sources */, - FE01A7D60C5D9B6900AEA51A /* NSValueTransformer_IsNil.m in Sources */, - FE01A7D70C5D9B6900AEA51A /* NSValueTransformer_IsNotNil.m in Sources */, - FE01A7D80C5D9B6900AEA51A /* NSValueTransformer_NegateBoolean.m in Sources */, - FE01A7D90C5D9B6900AEA51A /* NSValueTransformer_UnarchiveFromData.m in Sources */, - FEDF9FF60CF6123F00F21F87 /* NSMutableURLRequest.m in Sources */, - FEDFA1070CF7D41F00F21F87 /* NSCachedURLResponse.m in Sources */, - FEA9D08B0D16C55E00123D51 /* NSPropertyListReader_binary1.m in Sources */, - FE9E1A320D5C0676004AE7BA /* NSLocale+windows.m in Sources */, - FE7FE5C20D7CF08B006CCA28 /* NSFileHandle_stream.m in Sources */, - C844CF9E0DA7EBE500A8F3A2 /* NSRecursiveLock.m in Sources */, - C844CFD90DA7F21400A8F3A2 /* NSSynchronization.m in Sources */, - C8BAA5760DDEFC6C005C4769 /* objc_size_alignment.m in Sources */, - FEC9F6AF0E2F98EA0034932A /* NSURLProtocol_http.m in Sources */, - CFDCC8AD1B0415A300A5721C /* NSCancelInputSource_posix.m in Sources */, - FEC9F6BE0E2F9BEA0034932A /* NSURLConnectionState.m in Sources */, - C851D8730E40E0D3001DAB69 /* NSPropertyListWriter_xml1.m in Sources */, - C80F9AE10E58BD5400ECD487 /* objc-msgsend.s in Sources */, - C8B53BDE0E6AC7C500E4467E /* objc_debugHelpers.m in Sources */, - C8C970110EBDBC63009CE9BC /* NSConditionLock_win32.m in Sources */, - FEE7D3140ED1D2DE0032DCE0 /* NSNetServices.m in Sources */, - FE1365E10F154B3A000F2657 /* NSAtomicList.m in Sources */, - FE1365E50F154B3A000F2657 /* NSOperation.m in Sources */, - FE1365E70F154B3A000F2657 /* NSOperationQueue.m in Sources */, - C89B47380F5C6A4B0070120D /* NSCancelInputSource_win32.m in Sources */, - FEA9D3080F5D9C2100772064 /* NSRunLoopState_windows.m in Sources */, - FE88A4990F8A7E050081CFC1 /* objc_ivar.c in Sources */, - FE88A4A30F8A7E9A0081CFC1 /* objc_method.c in Sources */, - FE88A4DA0F8A9DE00081CFC1 /* Object.m in Sources */, - FEDB763A0F8AD40700AC545D /* objc_object.c in Sources */, - FE1A0D2A0F8BADBA00FC4CC7 /* forwarding.m in Sources */, - FEBF53600F925FA3005DC684 /* objc_protocol.c in Sources */, - FEBF545F0F93AE8A005DC684 /* objc_property.c in Sources */, - FE8694AA0FE0108E00F89733 /* CFArray.m in Sources */, - FE8694AB0FE0108E00F89733 /* CFAttributedString.m in Sources */, - FE8694AC0FE0108E00F89733 /* CFBag.m in Sources */, - FE8694AD0FE0108E00F89733 /* CFBase.m in Sources */, - FE8694AE0FE0108E00F89733 /* CFBinaryHeap.m in Sources */, - FE8694AF0FE0108E00F89733 /* CFBitVector.m in Sources */, - FE8694B00FE0108E00F89733 /* CFBundle.m in Sources */, - FE8694B10FE0108E00F89733 /* CFCalendar.m in Sources */, - FE8694B20FE0108E00F89733 /* CFCharacterSet.m in Sources */, - FE8694B30FE0108E00F89733 /* CFData.m in Sources */, - FE8694B40FE0108E00F89733 /* CFDateFormatter.m in Sources */, - FE8694B50FE0108E00F89733 /* CFDictionary.m in Sources */, - FE8694B60FE0108E00F89733 /* CFError.m in Sources */, - FE8694B70FE0108E00F89733 /* CFFileDescriptor.m in Sources */, - FE8694B80FE0108E00F89733 /* CFLocale.m in Sources */, - FE8694B90FE0108E00F89733 /* CFMachPort.m in Sources */, - FE8694BA0FE0108E00F89733 /* CFMessagePort.m in Sources */, - FE8694BB0FE0108E00F89733 /* CFNotificationCenter.m in Sources */, - FE8694BC0FE0108E00F89733 /* CFNumber.m in Sources */, - FE8694BD0FE0108E00F89733 /* CFNumberFormatter.m in Sources */, - FE8694BE0FE0108E00F89733 /* CFPlugIn.m in Sources */, - CFDCC8A61B0415A300A5721C /* NSPipe_posix.m in Sources */, - FE8694BF0FE0108E00F89733 /* CFPreferences.m in Sources */, - FE8694C00FE0108E00F89733 /* CFPropertyList.m in Sources */, - FE8694C10FE0108E00F89733 /* CFRunLoop.m in Sources */, - FE8694C20FE0108E00F89733 /* CFSet.m in Sources */, - FE8694C30FE0108E00F89733 /* CFSocket.m in Sources */, - CFDCC89B1B0414D000A5721C /* libmain.m in Sources */, - FE8694C40FE0108E00F89733 /* CFStream.m in Sources */, - CF2A02001B079314005D322F /* objc_msg_sendv-Disabled.m in Sources */, - FE8694C50FE0108E00F89733 /* CFString.m in Sources */, - FE8694C60FE0108E00F89733 /* CFStringTokenizer.m in Sources */, - FE8694C70FE0108E00F89733 /* CFTimeZone.m in Sources */, - FE8694C80FE0108E00F89733 /* CFTree.m in Sources */, - FE8694C90FE0108E00F89733 /* CFURL.m in Sources */, - FE8694CA0FE0108E00F89733 /* CFUserNotification.m in Sources */, - FE8694CB0FE0108E00F89733 /* CFUUID.m in Sources */, - FE8694CC0FE0108E00F89733 /* CFXMLNode.m in Sources */, - FE8694CD0FE0108E00F89733 /* CFXMLParser.m in Sources */, - FE8C91410FFD1E430027C889 /* NSString_win1252.m in Sources */, - FE452E83102097EF00585DFE /* NSString_macOSRoman.m in Sources */, - FE463E1C102CD59500B265D6 /* NSSpellServer.m in Sources */, - CF652CF21B116C5D0090D2FE /* objc_log.c in Sources */, - FE463E2C102CD5A600B265D6 /* NSURLError.m in Sources */, - FE463E47102CD5B800B265D6 /* NSGarbageCollector.m in Sources */, - FE463E59102CD5C700B265D6 /* NSPointerArray.m in Sources */, - FE463E5B102CD5C700B265D6 /* NSPointerFunctions.m in Sources */, - FE60142A1042FD6B008A7357 /* NSString_defaultEncoding_windows.m in Sources */, - FE2569E910F2F9C7005CE23E /* CFHost.m in Sources */, - FE2569EA10F2F9C7005CE23E /* CFNetServices.m in Sources */, - FE2569EB10F2F9C7005CE23E /* CFSocketStream.m in Sources */, - FE256A8310F387DA005CE23E /* CFDate.m in Sources */, - FE75E2E810F6442F000419C4 /* bonjour.m in Sources */, - FE828F0B110DEB540008AFA2 /* pthread.m in Sources */, - FE828F3A110DFA1C0008AFA2 /* NSKVOInfoPerObject.m in Sources */, - FE55AD1A1119D86900A777AB /* CFByteOrder.m in Sources */, - FE9C1B8F1125A649002DA20B /* CFSSLHandler.m in Sources */, - FE3C473F112AF7FC0099DAB8 /* CFUID.m in Sources */, - FE6CF8A11152743100B6D893 /* objc_malloc.c in Sources */, - CFDCC8A81B0415A300A5721C /* NSSelectSet_bsd.m in Sources */, - C6BC3CB21162303400DFC16C /* NSTimeZone_win32.m in Sources */, - 2692499F1157AC7B00A96CEB /* NSCondition.m in Sources */, - 269249CC1157AD6500A96CEB /* NSCondition_win32.m in Sources */, - FE720FD7124C56FA009B690D /* NSKeyPathObserver.m in Sources */, - FE721028124CE420009B690D /* NSKeyObserver.m in Sources */, - FEEA64B612B674A200E6E2C8 /* NSRecursiveLock_win32.m in Sources */, - FEADE5C112FEF1120048F5DE /* NSValueTransformer_KeyedUnarchiveFromData.m in Sources */, - FE937F411358DC8000C93531 /* NSNumber_CF.m in Sources */, - FE09AF7113FCC68100B53D10 /* NSOrthography.m in Sources */, - FE09AF8513FCC69200B53D10 /* NSTextCheckingResult.m in Sources */, - FEB3F2C11404A92400059C8F /* NSSpellEngine.m in Sources */, - FEFAA5421429098A00CEE177 /* NSScriptWhoseTests.m in Sources */, - FE4C074B1434A0330034EE26 /* NSDecimalNumberPlaceholder.m in Sources */, - 492B5DAB17468F0C0013F119 /* objc_association.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE01A7F30C5D9B9100AEA51A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "objc-Windows-i386"; - targetProxy = FE01A7F20C5D9B9100AEA51A /* PBXContainerItemProxy */; - }; - FE1342D51151843C00404745 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CoreServices-Windows-i386"; - targetProxy = FE1342D41151843C00404745 /* PBXContainerItemProxy */; - }; - FEA828AD109B752F00C7A732 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CoreFoundation-Windows-i386"; - targetProxy = FEA828AC109B752F00C7A732 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 6E280B2B09747F4900EC542B /* NSUserDefaults.plist */ = { - isa = PBXVariantGroup; - children = ( - 6E280B2C09747F4900EC542B /* English */, - ); - name = NSUserDefaults.plist; - sourceTree = ""; - }; - FE86D406114743AC0010FE05 /* NSStringEncodingNames.plist */ = { - isa = PBXVariantGroup; - children = ( - FE86D407114743AC0010FE05 /* English */, - ); - name = NSStringEncodingNames.plist; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 6E2801BB09746B8900EC542B /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - 7E891F160D4964FF008150D3 /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFB9BAFF1B058BF1001EE95E /* freebsd-i386-Foundation.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Foundation; - }; - name = "FreeBSD-i386"; - }; - 7E891F1C0D4964FF008150D3 /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFC5B42E1AF4671C00FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFC5B42F1AF4671C00FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFCEA46C1B043F4E00B3B087 /* darwin-i386-Foundation.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Foundation; - }; - name = "Darwin-i386"; - }; - CFC5B4391AF4672500FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-x86_64"; - }; - CFC5B43A1AF4672500FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFB9BB011B058F52001EE95E /* darwin-x86_64-Foundation.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Foundation; - }; - name = "Darwin-x86_64"; - }; - CFC5B4441AF4672F00FBB52A /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFC5B4451AF4672F00FBB52A /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFECC8501AFF0F2000D34AE4 /* linux-i386-Foundation.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Foundation; - }; - name = "Linux-i386"; - }; - CFC5B44F1AF4673900FBB52A /* Linux-arm */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-arm"; - }; - CFC5B4501AF4673900FBB52A /* Linux-arm */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFB9BB031B058F84001EE95E /* linux-arm-Foundation.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Foundation; - }; - name = "Linux-arm"; - }; - CFC5B45A1AF4673F00FBB52A /* Solaris-sparc */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Solaris-sparc"; - }; - CFC5B45B1AF4673F00FBB52A /* Solaris-sparc */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFCEA4781B043F4E00B3B087 /* solaris-sparc-Foundation.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Foundation; - }; - name = "Solaris-sparc"; - }; - FE01A7EB0C5D9B6900AEA51A /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CF2819791AF9A5BF00E93CEE /* windows-i386-Foundation.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; - GCC_WARN_MISSING_PARENTHESES = NO; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Foundation; - }; - name = "Windows-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 6E2801B909746B8900EC542B /* Build configuration list for PBXProject "Foundation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6E2801BB09746B8900EC542B /* Windows-i386 */, - 7E891F1C0D4964FF008150D3 /* FreeBSD-i386 */, - CFC5B45A1AF4673F00FBB52A /* Solaris-sparc */, - CFC5B42E1AF4671C00FBB52A /* Darwin-i386 */, - CFC5B4441AF4672F00FBB52A /* Linux-i386 */, - CFC5B4391AF4672500FBB52A /* Darwin-x86_64 */, - CFC5B44F1AF4673900FBB52A /* Linux-arm */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - FE01A7EA0C5D9B6900AEA51A /* Build configuration list for PBXNativeTarget "Foundation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE01A7EB0C5D9B6900AEA51A /* Windows-i386 */, - 7E891F160D4964FF008150D3 /* FreeBSD-i386 */, - CFC5B45B1AF4673F00FBB52A /* Solaris-sparc */, - CFC5B42F1AF4671C00FBB52A /* Darwin-i386 */, - CFC5B4451AF4672F00FBB52A /* Linux-i386 */, - CFC5B43A1AF4672500FBB52A /* Darwin-x86_64 */, - CFC5B4501AF4673900FBB52A /* Linux-arm */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/Foundation/Foundation.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Foundation/Foundation.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 78b06a46..00000000 --- a/Foundation/Foundation.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-i386.xcscheme b/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-i386.xcscheme deleted file mode 100644 index 1c90f0f7..00000000 --- a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-i386.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-x86_64.xcscheme b/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-x86_64.xcscheme deleted file mode 100644 index b364759b..00000000 --- a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Darwin-x86_64.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-FreeBSD-i386.xcscheme b/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-FreeBSD-i386.xcscheme deleted file mode 100644 index a13a9835..00000000 --- a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-FreeBSD-i386.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Linux-i386.xcscheme b/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Linux-i386.xcscheme deleted file mode 100644 index 2e3aa91b..00000000 --- a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Linux-i386.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Windows-i386.xcscheme b/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Windows-i386.xcscheme deleted file mode 100644 index 8c41dcad..00000000 --- a/Foundation/Foundation.xcodeproj/xcshareddata/xcschemes/Foundation-Windows-i386.xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/FoundationErrors.h b/Foundation/FoundationErrors.h deleted file mode 100644 index 26088b48..00000000 --- a/Foundation/FoundationErrors.h +++ /dev/null @@ -1,14 +0,0 @@ -/* Copyright (c) 2009 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -enum { - NSFileReadCorruptFileError = 259, - NSFileReadNoSuchFileError = 260, - - NSFileWriteUnknownError = 512, -}; diff --git a/Foundation/Info.plist b/Foundation/Info.plist deleted file mode 100644 index fa2c87e4..00000000 --- a/Foundation/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - Foundation - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.Foundation - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - OBJC - CFBundleVersion - 1.0 - NSPrincipalClass - - - diff --git a/Foundation/NSAffineTransform.h b/Foundation/NSAffineTransform.h deleted file mode 100644 index 23d1da51..00000000 --- a/Foundation/NSAffineTransform.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef struct { - CGFloat m11; - CGFloat m12; - CGFloat m21; - CGFloat m22; - CGFloat tX; - CGFloat tY; -} NSAffineTransformStruct; - -@interface NSAffineTransform : NSObject { - NSAffineTransformStruct _matrix; -} - -- initWithTransform: (NSAffineTransform *) other; - -+ (NSAffineTransform *) transform; - -- (NSAffineTransformStruct) transformStruct; -- (void) setTransformStruct: (NSAffineTransformStruct) matrix; - -- (void) invert; - -- (void) appendTransform: (NSAffineTransform *) other; -- (void) prependTransform: (NSAffineTransform *) other; - -- (void) translateXBy: (CGFloat) xby yBy: (CGFloat) yby; - -- (NSPoint) transformPoint: (NSPoint) point; -- (NSSize) transformSize: (NSSize) value; - -- (void) rotateByDegrees: (CGFloat) angle; -- (void) rotateByRadians: (CGFloat) radians; - -- (void) scaleBy: (CGFloat) value; -- (void) scaleXBy: (CGFloat) xvalue yBy: (CGFloat) yvalue; - -@end diff --git a/Foundation/NSAffineTransform.m b/Foundation/NSAffineTransform.m deleted file mode 100644 index 966ae5c5..00000000 --- a/Foundation/NSAffineTransform.m +++ /dev/null @@ -1,200 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#include - -@implementation NSAffineTransform - -static NSAffineTransformStruct identity = {1, 0, 0, 1, 0, 0}; - -// Instead of doing start * append - this imp is doing append * start - which is -// quite different in matrix multiplication -static inline NSAffineTransformStruct -multiplyStruct(NSAffineTransformStruct start, NSAffineTransformStruct append) -{ - NSAffineTransformStruct result; - - result.m11 = append.m11 * start.m11 + append.m12 * start.m21; - result.m12 = append.m11 * start.m12 + append.m12 * start.m22; - result.m21 = append.m21 * start.m11 + append.m22 * start.m21; - result.m22 = append.m21 * start.m12 + append.m22 * start.m22; - result.tX = append.tX * start.m11 + append.tY * start.m21 + start.tX; - result.tY = append.tX * start.m12 + append.tY * start.m22 + start.tY; - - return result; -} - -static inline NSAffineTransformStruct -invertStruct(NSAffineTransformStruct matrix) -{ - NSAffineTransformStruct result; - CGFloat determinant; - - determinant = matrix.m11 * matrix.m22 - matrix.m21 * matrix.m12; - if (determinant == 0.) - [NSException raise: NSGenericException - format: @"NSAffineTransform: Transform has no inverse"]; - - result.m11 = matrix.m22 / determinant; - result.m12 = -matrix.m12 / determinant; - result.m21 = -matrix.m21 / determinant; - result.m22 = matrix.m11 / determinant; - result.tX = - (-matrix.m22 * matrix.tX + matrix.m21 * matrix.tY) / determinant; - result.tY = (matrix.m12 * matrix.tX - matrix.m11 * matrix.tY) / determinant; - - return result; -} - -- init { - _matrix = identity; - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - CFSwappedFloat32 *words = alloca(sizeof(CFSwappedFloat32) * 6); - words[0] = CFConvertFloat32HostToSwapped(_matrix.m11); - words[1] = CFConvertFloat32HostToSwapped(_matrix.m12); - words[2] = CFConvertFloat32HostToSwapped(_matrix.m21); - words[3] = CFConvertFloat32HostToSwapped(_matrix.m22); - words[4] = CFConvertFloat32HostToSwapped(_matrix.tX); - words[5] = CFConvertFloat32HostToSwapped(_matrix.tY); - [keyed encodeBytes: (void *) words - length: (sizeof(CFSwappedFloat32) * 6) - forKey: @"NSTransformStruct"]; - } -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - - NSUInteger length; - const uint8_t *bytes = [keyed decodeBytesForKey: @"NSTransformStruct" - returnedLength: &length]; - - if (length != 24) - _matrix = identity; - else { - CFSwappedFloat32 *words = (CFSwappedFloat32 *) bytes; - - _matrix.m11 = CFConvertFloat32SwappedToHost(words[0]); - _matrix.m12 = CFConvertFloat32SwappedToHost(words[1]); - _matrix.m21 = CFConvertFloat32SwappedToHost(words[2]); - _matrix.m22 = CFConvertFloat32SwappedToHost(words[3]); - _matrix.tX = CFConvertFloat32SwappedToHost(words[4]); - _matrix.tY = CFConvertFloat32SwappedToHost(words[5]); - } - } - return self; -} - -- initWithTransform: (NSAffineTransform *) other { - // Cocoa doesn't raise when 'other' is nil - _matrix = [other transformStruct]; - return self; -} - -- copyWithZone: (NSZone *) zone { - return [[[self class] allocWithZone: zone] initWithTransform: self]; -} - -+ (NSAffineTransform *) transform { - return [[self new] autorelease]; -} - -- (NSAffineTransformStruct) transformStruct { - return _matrix; -} - -- (void) setTransformStruct: (NSAffineTransformStruct) matrix { - _matrix = matrix; -} - -- (void) invert { - _matrix = invertStruct(_matrix); -} - -- (void) appendTransform: (NSAffineTransform *) other { - // Cocoa doesn't raise when 'other' is nil - _matrix = multiplyStruct([other transformStruct], _matrix); -} - -- (void) prependTransform: (NSAffineTransform *) other { - // Cocoa doesn't raise when 'other' is nil - _matrix = multiplyStruct(_matrix, [other transformStruct]); -} - -- (void) translateXBy: (CGFloat) xby yBy: (CGFloat) yby { - NSAffineTransformStruct translate = {1, 0, 0, 1, xby, yby}; - _matrix = multiplyStruct(_matrix, translate); -} - -- (NSPoint) transformPoint: (NSPoint) point { - NSPoint result; - - result.x = _matrix.m11 * point.x + _matrix.m21 * point.y + _matrix.tX; - result.y = _matrix.m12 * point.x + _matrix.m22 * point.y + _matrix.tY; - - return result; -} - -- (NSSize) transformSize: (NSSize) value { - NSSize result; - - result.width = _matrix.m11 * value.width + _matrix.m21 * value.height; - result.height = _matrix.m12 * value.width + _matrix.m22 * value.height; - - return result; -} - -- (void) rotateByDegrees: (CGFloat) angle { - [self rotateByRadians: M_PI * angle / 180.0]; -} - -- (void) rotateByRadians: (CGFloat) radians { - NSAffineTransformStruct rotate = { - cos(radians), sin(radians), -sin(radians), cos(radians), 0, 0}; - _matrix = multiplyStruct(_matrix, rotate); -} - -- (void) scaleBy: (CGFloat) value { - NSAffineTransformStruct scale = {value, 0, 0, value, 0, 0}; - _matrix = multiplyStruct(_matrix, scale); -} - -- (void) scaleXBy: (CGFloat) xvalue yBy: (CGFloat) yvalue { - NSAffineTransformStruct scale = {xvalue, 0, 0, yvalue, 0, 0}; - _matrix = multiplyStruct(_matrix, scale); -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@ 0x%p> {%g, %g, %g, %g, %g, %g}", - NSStringFromClass([self class]), self, - _matrix.m11, _matrix.m12, _matrix.m21, - _matrix.m22, _matrix.tX, _matrix.tY]; -} - -@end diff --git a/Foundation/NSArchiver.h b/Foundation/NSArchiver.h deleted file mode 100644 index c60f3037..00000000 --- a/Foundation/NSArchiver.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSMutableData, NSMutableDictionary; - -@interface NSArchiver : NSCoder { - NSMutableData *_data; - uint8_t *_bytes; - NSUInteger _position; - - NSUInteger _pass; - NSHashTable *_conditionals; - NSHashTable *_objects; - NSHashTable *_classes; - NSHashTable *_cStrings; -} - -- init; - -+ (NSData *) archivedDataWithRootObject: rootObject; -+ (BOOL) archiveRootObject: rootObject toFile: (NSString *) path; - -- (NSMutableData *) archiverData; - -- (void) encodeValueOfObjCType: (const char *) type at: (const void *) addr; -- (void) encodeDataObject: (NSData *) data; - -- (void) encodeRootObject: rootObject; -- (void) encodeConditionalObject: object; - -- (void) encodeClassName: (NSString *) runtime - intoClassName: (NSString *) archive; - -- (void) replaceObject: original withObject: replacement; - -@end - -@interface NSObject (NSArchiver) -- replacementObjectForArchiver: (NSArchiver *) archiver; -@end - -#import diff --git a/Foundation/NSArchiver.m b/Foundation/NSArchiver.m deleted file mode 100644 index 017f9236..00000000 --- a/Foundation/NSArchiver.m +++ /dev/null @@ -1,437 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#include - -@implementation NSArchiver - -- init { - _data = [NSMutableData new]; - _bytes = [_data mutableBytes]; - _position = 0; - _pass = 0; - - _conditionals = NSCreateHashTable(NSNonOwnedPointerHashCallBacks, 0); - _objects = NSCreateHashTable(NSNonOwnedPointerHashCallBacks, 0); - _classes = NSCreateHashTable(NSNonOwnedPointerHashCallBacks, 0); - _cStrings = NSCreateHashTable(NSObjectHashCallBacks, 0); - - return self; -} - -- (void) dealloc { - [_data release]; - NSFreeHashTable(_conditionals); - NSFreeHashTable(_objects); - NSFreeHashTable(_classes); - NSFreeHashTable(_cStrings); - [super dealloc]; -} - -- (NSData *) data { - return [[_data copy] autorelease]; -} - -+ (NSData *) archivedDataWithRootObject: (id) rootObject { - NSArchiver *archiver = [[[self allocWithZone: NULL] init] autorelease]; - - [archiver encodeRootObject: rootObject]; - return [archiver data]; -} - -+ (BOOL) archiveRootObject: rootObject toFile: (NSString *) path { - NSData *data = [self archivedDataWithRootObject: rootObject]; - - return [data writeToFile: path atomically: YES]; -} - -- (NSMutableData *) archiverData { - return _data; -} - -- (void) cannotEncodeType: (const char *) type { - [NSException raise: @"NSArchiverCannotEncodeException" - format: @"NSArchiver cannot encode type=%s", type]; -} - -- (void) _ensureLength: (NSUInteger) length { - [_data setLength: [_data length] + length]; - _bytes = [_data mutableBytes]; -} - -- (void) _appendData: (NSData *) data { - if (_pass == 0) - return; - - [_data appendData: data]; - _bytes = [_data mutableBytes]; - _position = [_data length]; -} - -- (void) _appendWordOne: (uint8_t) value { - if (_pass == 0) - return; - - [self _ensureLength: 1]; - _bytes[_position++] = value; -} - -- (void) _appendWordTwo: (uint16_t) value { - if (_pass == 0) - return; - - [self _ensureLength: 2]; - _bytes[_position++] = (value >> 8) & 0xFF; - _bytes[_position++] = value & 0xFF; -} - -- (void) _appendWordFour: (uint32_t) value { - if (_pass == 0) - return; - - [self _ensureLength: 4]; - _bytes[_position++] = (value >> 24) & 0xFF; - _bytes[_position++] = (value >> 16) & 0xFF; - _bytes[_position++] = (value >> 8) & 0xFF; - _bytes[_position++] = value & 0xFF; -} - -- (void) _appendFloat: (float) value { - [self _appendWordFour: NSConvertHostFloatToSwapped(value).floatWord]; -} - -- (void) _appendWordEight: (uint64_t) value { - if (_pass == 0) - return; - - [self _ensureLength: 8]; - _bytes[_position++] = (value >> 56) & 0xFF; - _bytes[_position++] = (value >> 48) & 0xFF; - _bytes[_position++] = (value >> 40) & 0xFF; - _bytes[_position++] = (value >> 32) & 0xFF; - _bytes[_position++] = (value >> 24) & 0xFF; - _bytes[_position++] = (value >> 16) & 0xFF; - _bytes[_position++] = (value >> 8) & 0xFF; - _bytes[_position++] = value & 0xFF; -} - -- (void) _appendReference: (void *) value { -#ifdef __LP64__ - [self _appendWordEight: (uint64_t) value]; -#else - [self _appendWordFour: (uint32_t) value]; -#endif -} - -- (void) _appendBytes: (const uint8_t *) bytes length: (NSUInteger) length { - int i; - - if (_pass == 0) - return; - - [self _ensureLength: length]; - for (i = 0; i < length; i++) - _bytes[_position++] = bytes[i]; -} - -- (void) _appendCStringBytes: (const char *) cString { - [self _ensureLength: strlen(cString) + 1]; - - for (; *cString != '\0'; cString++) - _bytes[_position++] = *cString; - - _bytes[_position++] = '\0'; -} - -- (void) _appendCString: (const char *) cString { - NSString *string, *lookup; - - if (_pass == 0) { - return; - } - - // NSLog(@"cString=%s", cString); - string = [NSString stringWithCString: cString]; - // NSLog(@"string=%@", string); - - if ((lookup = NSHashGet(_cStrings, string)) != nil) { - [self _appendReference: lookup]; - } else { - NSHashInsert(_cStrings, string); - - [self _appendReference: string]; - [self _appendCStringBytes: [string cString]]; - } -} - -- (void) _appendClassVersion: (Class) class { - if (class == [NSObject class]) { - [self _appendWordFour: 0]; - return; - } - - [self _appendReference: class]; - - if (NSHashGet(_classes, class) == NULL) { - NSHashInsert(_classes, class); - [self _appendCString: [NSStringFromClass(class) cString]]; - [self _appendWordFour: [class version]]; - [self _appendClassVersion: [class superclass]]; - } -} - -- (void) _appendObject: (id) object conditional: (BOOL) conditional { - if (_pass == 0) { - if (object != nil) { - // NSLog(@"%@ conditional=%s", NSStringFromClass([object class]), - // conditional ? "YES" : "NO"); - - if (!conditional) { - if (NSHashGet(_conditionals, object) == NULL) { - NSHashInsert(_conditionals, object); - [object encodeWithCoder: self]; - } - } - } - } else { - if (conditional && (NSHashGet(_conditionals, object) == NULL)) { - object = nil; - } - - if (object == nil) { - [self _appendWordFour: 0]; - } else if (NSHashGet(_objects, object) != NULL) { - [self _appendReference: object]; - } else { // FIX do replacementForCoder ? - Class class = [object classForArchiver]; - - NSHashInsert(_objects, object); - - [self _appendReference: object]; - [self _appendClassVersion: class]; - - [object encodeWithCoder: self]; - } - } -} - -- (void) _appendArrayOfObjCType: (const char *) type - length: (NSUInteger) length - at: (const void *) addr -{ - - if (_pass == 0) - return; - - switch (*type) { - case 'c': - case 'C': { - const unsigned char *values = addr; - NSInteger i; - - for (i = 0; i < length; i++) - [self _appendWordOne: values[i]]; - } break; - - case 's': - case 'S': { - const unsigned short *values = addr; - NSInteger i; - - for (i = 0; i < length; i++) - [self _appendWordTwo: values[i]]; - } break; - - default: - [self cannotEncodeType: type]; - break; - } -} - -- (void) encodeValueOfObjCType: (const char *) type at: (const void *) addr { - // NSLog(@"type=%s",type); - - [self _appendCString: type]; - - switch (*type) { - case 'c': - case 'C': { - unsigned char value = *(const unsigned char *) addr; - [self _appendWordOne: value]; - } break; - - case 's': - case 'S': { - unsigned short value = *(const unsigned short *) addr; - [self _appendWordTwo: value]; - } break; - - case 'i': - case 'I': { - unsigned int value = *(const unsigned int *) addr; - [self _appendWordFour: value]; - } break; - - case 'l': - case 'L': { - unsigned long value = *(const unsigned long *) addr; - [self _appendWordFour: value]; - } break; - - case 'q': - case 'Q': { - unsigned long long value = *(const unsigned long long *) addr; - [self _appendWordEight: value]; - } break; - - case 'f': { - float value = *(const float *) addr; - [self _appendFloat: value]; - } break; - - case 'd': { - double value = *(const double *) addr; - [self _appendWordEight: NSConvertHostDoubleToSwapped(value).doubleWord]; - } break; - - case '*': { - const char *const *cString = addr; - - [self _appendCString: *cString]; - } break; - - case '@': { - id object = *(const id *) addr; - - [self _appendObject: object conditional: NO]; - } break; - - case '#': - [self cannotEncodeType: type]; - break; - - case ':': { - SEL selector = *(const SEL *) addr; - - [self _appendCString: sel_getName(selector)]; - } break; - - case '[': { - const char *tmp = type; - unsigned length = 0; - - tmp++; // skip [ - for (; *tmp >= '0' && *tmp <= '9'; tmp++) - length = (length * 10) + (*tmp - '0'); - - [self _appendArrayOfObjCType: tmp length: length at: addr]; - } break; - - case '{': // this is extremely lame - if (strcmp(type, @encode(NSRange)) == 0) { - NSRange value = *(const NSRange *) addr; - - [self _appendWordFour: value.location]; - [self _appendWordFour: value.length]; - break; - } - if (strcmp(type, @encode(NSPoint)) == 0) { - NSPoint value = *(const NSPoint *) addr; - - [self _appendFloat: value.x]; - [self _appendFloat: value.y]; - break; - } - if (strcmp(type, @encode(NSSize)) == 0) { - NSSize value = *(const NSSize *) addr; - - [self _appendFloat: value.width]; - [self _appendFloat: value.height]; - break; - } - if (strcmp(type, @encode(NSRect)) == 0) { - NSRect value = *(const NSRect *) addr; - - [self _appendFloat: value.origin.x]; - [self _appendFloat: value.origin.y]; - [self _appendFloat: value.size.width]; - [self _appendFloat: value.size.height]; - break; - } - [self cannotEncodeType: type]; - break; - - case '(': - case 'b': - case '^': - case '?': - default: - [self cannotEncodeType: type]; - break; - } -} - -- (void) encodeBytes: (const void *) byteaddr length: (NSUInteger) length { - [self _appendWordFour: length]; - [self _appendBytes: byteaddr length: length]; -} - -- (void) encodeDataObject: (NSData *) data { - [self cannotEncodeType: "encodeDataObject"]; -} - -- (void) encodeRootObject: (id) rootObject { - _position = 0; - _pass = 0; - [self _appendObject: rootObject conditional: NO]; - if (_position != 0) - NSLog(@"_position=%d", _position); - - if (NSHashGet(_conditionals, rootObject) == NULL) - NSLog(@"rootObject not in conditionals"); - - _position = 0; - _pass = 1; - [self _appendCStringBytes: "~V1~"]; - [self _appendWordFour: 0]; // archive version - - [self _appendCString: "@"]; - [self _appendObject: rootObject conditional: NO]; -} - -- (void) encodeConditionalObject: (id) object { - [self _appendCString: "@"]; - [self _appendObject: object conditional: YES]; -} - -- (void) encodeClassName: (NSString *) runtime - intoClassName: (NSString *) archive -{ - NSUnimplementedMethod(); -} - -- (void) replaceObject: original withObject: replacement { - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSArray/NSArray.h b/Foundation/NSArray/NSArray.h deleted file mode 100644 index ae742513..00000000 --- a/Foundation/NSArray/NSArray.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSString, NSDictionary, NSPredicate, NSIndexSet, NSURL; - -@interface NSArray - : NSObject - -- initWithArray: (NSArray *) array; -- initWithArray: (NSArray *) array copyItems: (BOOL) copyItems; -- initWithContentsOfFile: (NSString *) path; -- initWithContentsOfURL: (NSURL *) url; -- initWithObjects: (id *) objects count: (NSUInteger) count; -- initWithObjects: object, ...; - -+ array; -+ arrayWithContentsOfFile: (NSString *) path; -+ arrayWithContentsOfURL: (NSURL *) url; -+ arrayWithObject: object; -+ arrayWithObjects: object, ...; - -+ arrayWithArray: (NSArray *) array; -+ arrayWithObjects: (id *) objects count: (NSUInteger) count; - -- (NSUInteger) count; -- objectAtIndex: (NSUInteger) index; - -- (void) getObjects: (id *) objects; -- (void) getObjects: (id *) objects range: (NSRange) range; - -- (NSArray *) objectsAtIndexes: (NSIndexSet *) indexes; - -- (NSArray *) subarrayWithRange: (NSRange) range; - -- (BOOL) isEqualToArray: (NSArray *) array; - -- (NSUInteger) indexOfObject: object; -- (NSUInteger) indexOfObject: object inRange: (NSRange) range; - -- (NSUInteger) indexOfObjectIdenticalTo: object; -- (NSUInteger) indexOfObjectIdenticalTo: object inRange: (NSRange) range; - -- (NSEnumerator *) objectEnumerator; -- (NSEnumerator *) reverseObjectEnumerator; - -- (NSArray *) arrayByAddingObject: object; -- (NSArray *) arrayByAddingObjectsFromArray: (NSArray *) array; -- (NSString *) componentsJoinedByString: (NSString *) string; - -- (BOOL) containsObject: object; - -- firstObjectCommonWithArray: (NSArray *) array; - -- firstObject; -- lastObject; - -- (NSArray *) sortedArrayUsingSelector: (SEL) selector; -- (NSArray *) sortedArrayUsingFunction: (NSInteger (*)(id, id, void *)) function - context: (void *) context; - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically; -- (BOOL) writeToURL: (NSURL *) aURL atomically: (BOOL) atomically; - -- (void) makeObjectsPerformSelector: (SEL) selector; -- (void) makeObjectsPerformSelector: (SEL) selector withObject: object; - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale; -- (NSString *) descriptionWithLocale: (NSDictionary *) locale - indent: (NSUInteger) indent; - -- (NSArray *) sortedArrayUsingDescriptors: (NSArray *) descriptors; -- (NSArray *) filteredArrayUsingPredicate: (NSPredicate *) predicate; -@end - -#import diff --git a/Foundation/NSArray/NSArray.m b/Foundation/NSArray/NSArray.m deleted file mode 100644 index 759af53e..00000000 --- a/Foundation/NSArray/NSArray.m +++ /dev/null @@ -1,563 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@interface NSKeyedArchiver (PrivateToContainers) -- (void) encodeArray: (NSArray *) array forKey: (NSString *) key; -@end - -@implementation NSArray - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSArray")) - return NSAllocateObject([NSArray_placeholder class], 0, NULL); - - return NSAllocateObject(self, 0, zone); -} - -- initWithArray: (NSArray *) array { - NSUInteger count = [array count]; - id *objects = __builtin_alloca(sizeof(id) * count); - - [array getObjects: objects]; - - return [self initWithObjects: objects count: count]; -} - -- initWithArray: (NSArray *) array copyItems: (BOOL) copyItems { - if (copyItems == NO) { - return [self initWithArray: array]; - } - - const NSUInteger count = [array count]; - id *oldObjects = __builtin_alloca(sizeof(id) * count); - id *newObjects = __builtin_alloca(sizeof(id) * count); - - [array getObjects: oldObjects]; - - NSUInteger i; - for (i = 0; i < count; i++) { - newObjects[i] = [oldObjects[i] copyWithZone: NULL]; - } - - self = [self initWithObjects: newObjects count: count]; - - for (i = 0; i < count; i++) { - [newObjects[i] release]; - } - return self; -} - -- initWithContentsOfFile: (NSString *) path { - id contents = [NSPropertyListReader arrayWithContentsOfFile: path]; - - if (contents == nil) { - [self dealloc]; - return nil; - } - - return [self initWithArray: contents]; -} - -- initWithContentsOfURL: (NSURL *) url { - if (![url isFileURL]) { - [self dealloc]; - return nil; - } - return [self initWithContentsOfFile: [url path]]; -} - -- initWithObjects: (id *) objects count: (NSUInteger) count { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithObjects: object, ... { - va_list arguments; - NSUInteger i, count; - id *objects; - - va_start(arguments, object); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, object); - objects[0] = object; - for (i = 1; i < count; i++) - objects[i] = va_arg(arguments, id); - va_end(arguments); - - return [self initWithObjects: objects count: count]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableArray allocWithZone: zone] initWithArray: self]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSArray"); -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - NSArray *array = [keyed decodeObjectForKey: @"NS.objects"]; - - return [self initWithArray: array]; - } else { - unsigned i, count; - id *objects; - - [coder decodeValueOfObjCType: @encode(int) at: &count]; - - objects = __builtin_alloca(count * sizeof(id)); - - for (i = 0; i < count; i++) - objects[i] = [coder decodeObject]; - - return [self initWithObjects: objects count: count]; - } -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedArchiver class]]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - - [keyed encodeArray: self forKey: @"NS.objects"]; - } else { - int i, count = [self count]; - - [coder encodeValueOfObjCType: @encode(int) at: &count]; - for (i = 0; i < count; i++) - [coder encodeObject: [self objectAtIndex: i]]; - } -} - -+ array { - return [[[self allocWithZone: NULL] init] autorelease]; -} - -+ arrayWithContentsOfFile: (NSString *) path { - return [[[self allocWithZone: NULL] initWithContentsOfFile: path] - autorelease]; -} - -+ arrayWithContentsOfURL: (NSURL *) url { - return [[[self allocWithZone: NULL] initWithContentsOfURL: url] - autorelease]; -} - -+ arrayWithObject: object { - return [[[self allocWithZone: NULL] initWithObjects: &object - count: 1] autorelease]; -} - -+ arrayWithObjects: object, ... { - NSUInteger i, count = 0; - id *objects = NULL; - - if (object != nil) { - va_list arguments; - - va_start(arguments, object); - count = 1; // include object - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, object); - objects[0] = object; - for (i = 1; i < count; i++) - objects[i] = va_arg(arguments, id); - va_end(arguments); - } - - return [[[self allocWithZone: NULL] initWithObjects: objects - count: count] autorelease]; -} - -+ arrayWithArray: (NSArray *) array { - return [[[self allocWithZone: NULL] initWithArray: array] autorelease]; -} - -+ arrayWithObjects: (id *) objects count: (NSUInteger) count { - return [[[self allocWithZone: NULL] initWithObjects: objects - count: count] autorelease]; -} - -- (NSUInteger) count { - NSInvalidAbstractInvocation(); - return 0; -} - -- objectAtIndex: (NSUInteger) index { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) getObjects: (id *) objects { - NSUInteger i, count = [self count]; - - for (i = 0; i < count; i++) - objects[i] = [self objectAtIndex: i]; -} - -- (void) getObjects: (id *) objects range: (NSRange) range { - NSUInteger i, count = [self count], loc = range.location; - - if (NSMaxRange(range) > count) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond count %d", NSStringFromRange(range), - [self count]); - - for (i = 0; i < range.length; i++) - objects[i] = [self objectAtIndex: loc + i]; -} - -- (NSArray *) subarrayWithRange: (NSRange) range { - if (NSMaxRange(range) > [self count]) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond count %d", NSStringFromRange(range), - [self count]); - - return NSAutorelease(NSArray_concreteWithArrayRange(self, range)); -} - -- (NSUInteger) hash { - return [self count]; -} - -- (BOOL) isEqual: array { - if (self == array) - return YES; - - if (![array isKindOfClass: objc_lookUpClass("NSArray")]) - return NO; - - return [self isEqualToArray: array]; -} - -- (BOOL) isEqualToArray: (NSArray *) array { - NSInteger i, count; - - if (self == array) - return YES; - - count = [self count]; - if (count != [array count]) - return NO; - - for (i = 0; i < count; i++) - if (![[self objectAtIndex: i] isEqual: [array objectAtIndex: i]]) - return NO; - - return YES; -} - -- (NSUInteger) indexOfObject: object { - NSInteger i, count = [self count]; - - for (i = 0; i < count; i++) - if ([[self objectAtIndex: i] isEqual: object]) - return i; - - return NSNotFound; -} - -- (NSUInteger) indexOfObject: object inRange: (NSRange) range { - NSInteger i, count = [self count], loc = range.location; - - if (NSMaxRange(range) > count) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond count %d", NSStringFromRange(range), - [self count]); - - for (i = 0; i < range.length; i++) - if ([[self objectAtIndex: loc + i] isEqual: object]) - return loc + i; - - return NSNotFound; -} - -- (NSUInteger) indexOfObjectIdenticalTo: object { - NSInteger i, count = [self count]; - - for (i = 0; i < count; i++) - if ([self objectAtIndex: i] == object) - return i; - - return NSNotFound; -} - -- (NSUInteger) indexOfObjectIdenticalTo: object inRange: (NSRange) range { - NSInteger i, count = [self count], loc = range.location; - - if (NSMaxRange(range) > count) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond count %d", NSStringFromRange(range), - [self count]); - - for (i = 0; i < range.length; i++) - if ([self objectAtIndex: loc + i] == object) - return loc + i; - - return NSNotFound; -} - -- (NSEnumerator *) objectEnumerator { - return NSAutorelease(NSEnumerator_arrayNew(self)); -} - -- (NSEnumerator *) reverseObjectEnumerator { - return NSAutorelease(NSEnumerator_arrayReverseNew(self)); -} - -- (NSArray *) arrayByAddingObject: object { - return NSAutorelease(NSArray_concreteWithArrayAndObject(self, object)); -} - -- (NSArray *) arrayByAddingObjectsFromArray: (NSArray *) array { - return NSAutorelease(NSArray_concreteWithArrayAndArray(self, array)); -} - -- (NSString *) componentsJoinedByString: (NSString *) separator { - NSMutableString *string = [NSMutableString stringWithCapacity: 256]; - NSInteger i, count = [self count]; - - for (i = 0; i < count; i++) { - [string appendString: [[self objectAtIndex: i] description]]; - if (i + 1 < count) - [string appendString: separator]; - } - return string; -} - -- (BOOL) containsObject: object { - return ([self indexOfObject: object] != NSNotFound) ? YES : NO; -} - -- firstObjectCommonWithArray: (NSArray *) array { - if ([array count]) { - NSInteger i, count = [self count]; - - for (i = 0; i < count; i++) { - id object = [self objectAtIndex: i]; - - if ([array indexOfObject: object] != NSNotFound) - return object; - } - } - return nil; -} - -- lastObject { - NSInteger count = [self count]; - - if (count == 0) - return nil; - - return [self objectAtIndex: count - 1]; -} - -- firstObject { - NSInteger count = [self count]; - - if (count == 0) - return nil; - - return [self objectAtIndex: 0]; -} - -- (NSArray *) sortedArrayUsingSelector: (SEL) selector { - NSMutableArray *array = [NSMutableArray arrayWithArray: self]; - - [array sortUsingSelector: selector]; - - return array; -} - -- (NSArray *) sortedArrayUsingFunction: (NSInteger (*)(id, id, void *)) function - context: (void *) context -{ - NSMutableArray *array = [NSMutableArray arrayWithArray: self]; - - [array sortUsingFunction: function context: context]; - - return array; -} - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically { - return [NSPropertyListWriter_vintage writePropertyList: self - toFile: path - atomically: atomically]; -} - -- (BOOL) writeToURL: (NSURL *) aURL atomically: (BOOL) atomically { - if ([aURL isFileURL]) { - return [self writeToFile: [aURL path] atomically: atomically]; - } else { - return NO; - } -} - -- (void) makeObjectsPerformSelector: (SEL) selector { - NSInteger i, count = [self count]; - - for (i = 0; i < count; i++) - [[self objectAtIndex: i] performSelector: selector]; -} - -- (void) makeObjectsPerformSelector: (SEL) selector withObject: object { - NSInteger i, count = [self count]; - - for (i = 0; i < count; i++) - [[self objectAtIndex: i] performSelector: selector withObject: object]; -} - -- (NSString *) description { - return [NSPropertyListWriter_vintage stringWithPropertyList: self]; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale - indent: (NSUInteger) indent -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) filteredArrayUsingPredicate: (NSPredicate *) predicate { - NSInteger i, count = [self count]; - NSMutableArray *result = [NSMutableArray arrayWithCapacity: count]; - - for (i = 0; i < count; i++) { - id check = [self objectAtIndex: i]; - - if ([predicate evaluateWithObject: check]) - [result addObject: check]; - } - - return result; -} - -- (NSArray *) sortedArrayUsingDescriptors: (NSArray *) descriptors { - NSMutableArray *result = [NSMutableArray arrayWithArray: self]; - - [result sortUsingDescriptors: descriptors]; - - return result; -} - -#if 0 -// untested --(NSArray *)objectsAtIndexes:(NSIndexSet *)indexes { - NSUInteger i,count=[indexes count]; - NSUInteger buffer[count]; - id objects[count]; - - count=[indexes getIndexes:buffer maxCount:count inIndexRange:NULL]; -// getObjects:range: would make more sense - for(i=0;iextra[0], length); - NSInteger i = state->extra[0]; - NSInteger j = 0; - state->itemsPtr = stackbuf; - - for (j = 0; j < numObjects; j++, i++) { - state->itemsPtr[j] = [self objectAtIndex: i]; - } - - state->extra[0] += numObjects; - - state->mutationsPtr = (unsigned long *) self; - - return numObjects; -} - -@end - -void objc_enumerationMutation(id collection) { - [NSException raise: NSInternalInconsistencyException - format: @"Collection %p of class %@ was mutated during " - @"enumeration. " - @"Break on objc_enumerationMutation to debug.", - collection, [collection className]]; -} - -#import - -@implementation NSArray (CFTypeID) - -- (unsigned) _cfTypeID { - return kNSCFTypeArray; -} - -@end diff --git a/Foundation/NSArray/NSArray_concrete.h b/Foundation/NSArray/NSArray_concrete.h deleted file mode 100644 index b8dfc9c1..00000000 --- a/Foundation/NSArray/NSArray_concrete.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSArray_concrete : NSArray { - NSUInteger _count; - id _objects[0]; -} -@end - -NSArray *NSArray_concreteNew(NSZone *zone, id *objects, NSUInteger count); -NSArray *NSArray_concreteNewWithCount(NSZone *zone, id **objects, - NSUInteger count); -NSArray *NSArray_concreteWithArrayAndObject(NSArray *array, id object); -NSArray *NSArray_concreteWithArrayAndArray(NSArray *array1, NSArray *array2); -NSArray *NSArray_concreteWithArrayRange(NSArray *array1, NSRange range); diff --git a/Foundation/NSArray/NSArray_concrete.m b/Foundation/NSArray/NSArray_concrete.m deleted file mode 100644 index 49b5f1c8..00000000 --- a/Foundation/NSArray/NSArray_concrete.m +++ /dev/null @@ -1,141 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSArray_concrete.h" -#import -#import - -@implementation NSArray_concrete - -static inline NSArray_concrete *newWithCount(NSZone *zone, NSUInteger count) { - return NSAllocateObject([NSArray_concrete class], sizeof(id) * count, zone); -} - -NSArray *NSArray_concreteNewWithCount(NSZone *zone, id **objects, - NSUInteger count) -{ - NSArray_concrete *self = newWithCount(zone, count); - - self->_count = count; - *objects = self->_objects; - - return self; -} - -NSArray *NSArray_concreteNew(NSZone *zone, id *objects, NSUInteger count) { - NSArray_concrete *self = newWithCount(zone, count); - NSUInteger i; - - self->_count = count; - for (i = 0; i < count; i++) - self->_objects[i] = [objects[i] retain]; - - return self; -} - -NSArray *NSArray_concreteWithArrayAndObject(NSArray *array, id object) { - NSUInteger i, count = [array count]; - NSArray_concrete *self = newWithCount(NULL, count + 1); - - self->_count = count + 1; - - [array getObjects: self->_objects]; - for (i = 0; i < count; i++) - [self->_objects[i] retain]; - - self->_objects[count] = [object retain]; - - return self; -} - -NSArray *NSArray_concreteWithArrayAndArray(NSArray *array1, NSArray *array2) { - NSUInteger i, count1 = [array1 count], total = count1 + [array2 count]; - NSArray_concrete *self = newWithCount(NULL, total); - - self->_count = total; - - [array1 getObjects: self->_objects]; - [array2 getObjects: self->_objects + count1]; - for (i = 0; i < total; i++) - [self->_objects[i] retain]; - - return self; -} - -NSArray *NSArray_concreteWithArrayRange(NSArray *array, NSRange range) { - NSArray_concrete *self = newWithCount(NULL, range.length); - NSUInteger i; - - self->_count = range.length; - - [array getObjects: self->_objects range: range]; - - for (i = 0; i < range.length; i++) - [self->_objects[i] retain]; - - return self; -} - -- (void) dealloc { - NSInteger count = _count; - - while (--count >= 0) - [_objects[count] release]; - - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSUInteger) count { - return _count; -} - -- objectAtIndex: (NSUInteger) index { - if (index >= _count) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond count %d", index, _count); - return nil; - } - - return _objects[index]; -} - -- lastObject { - if (_count == 0) - return nil; - - return _objects[_count - 1]; -} - -- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *) state - objects: (id *) stackbuf - count: (NSUInteger) length; -{ - if (state->state >= _count) - return 0; - - state->itemsPtr = _objects; - state->state = _count; - - state->mutationsPtr = (unsigned long *) self; - - return _count; -} - -@end diff --git a/Foundation/NSArray/NSArray_placeholder.h b/Foundation/NSArray/NSArray_placeholder.h deleted file mode 100644 index a05e1379..00000000 --- a/Foundation/NSArray/NSArray_placeholder.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSArray_placeholder : NSArray - -@end diff --git a/Foundation/NSArray/NSArray_placeholder.m b/Foundation/NSArray/NSArray_placeholder.m deleted file mode 100644 index 1ab6137f..00000000 --- a/Foundation/NSArray/NSArray_placeholder.m +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "NSArray_placeholder.h" -#import "NSArray_concrete.h" -#import - -@implementation NSArray_placeholder - -- initWithObjects: (id *) objects count: (NSUInteger) count { - NSDeallocateObject(self); - return (NSArray_placeholder *) NSArray_concreteNew(NULL, objects, count); -} - -- init { - return [self initWithObjects: NULL count: 0]; -} - -@end diff --git a/Foundation/NSArray/NSEnumerator_array.h b/Foundation/NSArray/NSEnumerator_array.h deleted file mode 100644 index be49245d..00000000 --- a/Foundation/NSArray/NSEnumerator_array.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray; - -@interface NSEnumerator_array : NSEnumerator { - NSUInteger _index; - NSArray *_array; -} - -@end - -NSEnumerator *NSEnumerator_arrayNew(NSArray *array); diff --git a/Foundation/NSArray/NSEnumerator_array.m b/Foundation/NSArray/NSEnumerator_array.m deleted file mode 100644 index ebf22973..00000000 --- a/Foundation/NSArray/NSEnumerator_array.m +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSEnumerator_array - -NSEnumerator *NSEnumerator_arrayNew(NSArray *array) { - NSEnumerator_array *self = - NSAllocateObject([NSEnumerator_array class], 0, NULL); - if (self) { - self->_index = 0; - self->_array = [array retain]; - } - return self; -} - -- (void) dealloc { - [_array release]; - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- nextObject { - if (_index >= [_array count]) - return nil; - - return [_array objectAtIndex: _index++]; -} - -@end diff --git a/Foundation/NSArray/NSEnumerator_arrayReverse.h b/Foundation/NSArray/NSEnumerator_arrayReverse.h deleted file mode 100644 index 6b64af26..00000000 --- a/Foundation/NSArray/NSEnumerator_arrayReverse.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray; - -@interface NSEnumerator_arrayReverse : NSEnumerator { - NSInteger _index; - NSArray *_array; -} - -@end - -NSEnumerator *NSEnumerator_arrayReverseNew(NSArray *array); diff --git a/Foundation/NSArray/NSEnumerator_arrayReverse.m b/Foundation/NSArray/NSEnumerator_arrayReverse.m deleted file mode 100644 index 7724e345..00000000 --- a/Foundation/NSArray/NSEnumerator_arrayReverse.m +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@implementation NSEnumerator_arrayReverse - -NSEnumerator *NSEnumerator_arrayReverseNew(NSArray *array) { - NSEnumerator_arrayReverse *self = - NSAllocateObject([NSEnumerator_arrayReverse class], 0, NULL); - if (self) { - self->_index = [array count]; - self->_array = [array retain]; - } - return self; -} - -- (void) dealloc { - [_array release]; - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- nextObject { - _index--; - - if (_index < 0) - return nil; - - return [_array objectAtIndex: _index]; -} - -@end diff --git a/Foundation/NSArray/NSMutableArray.h b/Foundation/NSArray/NSMutableArray.h deleted file mode 100644 index ddbb7a6d..00000000 --- a/Foundation/NSArray/NSMutableArray.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableArray : NSArray - -- initWithCapacity: (NSUInteger) capacity; -+ arrayWithCapacity: (NSUInteger) capacity; - -- (void) addObject: object; -- (void) addObjectsFromArray: (NSArray *) array; - -- (void) removeObjectAtIndex: (NSUInteger) index; -- (void) removeAllObjects; -- (void) removeLastObject; -- (void) removeObject: object; -- (void) removeObject: object inRange: (NSRange) range; -- (void) removeObjectIdenticalTo: object; -- (void) removeObjectIdenticalTo: object inRange: (NSRange) range; -- (void) removeObjectsInRange: (NSRange) range; -- (void) removeObjectsFromIndices: (NSUInteger *) indices - numIndices: (NSUInteger) count; -- (void) removeObjectsInArray: (NSArray *) array; -- (void) removeObjectsAtIndexes: (NSIndexSet *) indexes; - -- (void) insertObject: object atIndex: (NSUInteger) index; -- (void) insertObjects: (NSArray *) objects atIndexes: (NSIndexSet *) indexes; - -- (void) setArray: (NSArray *) array; -- (void) replaceObjectAtIndex: (NSUInteger) index withObject: object; -- (void) replaceObjectsInRange: (NSRange) range - withObjectsFromArray: (NSArray *) array; -- (void) replaceObjectsInRange: (NSRange) range - withObjectsFromArray: (NSArray *) array - range: (NSRange) otherRange; -- (void) replaceObjectsAtIndexes: (NSIndexSet *) indexes - withObjects: (NSArray *) objects; -- (void) exchangeObjectAtIndex: (NSUInteger) index - withObjectAtIndex: (NSUInteger) other; - -- (void) sortUsingSelector: (SEL) selector; -- (void) sortUsingFunction: (NSInteger (*)(id, id, void *)) compare - context: (void *) context; - -- (void) sortUsingDescriptors: (NSArray *) descriptors; -- (void) filterUsingPredicate: (NSPredicate *) predicate; - -@end diff --git a/Foundation/NSArray/NSMutableArray.m b/Foundation/NSArray/NSMutableArray.m deleted file mode 100644 index a73d25e5..00000000 --- a/Foundation/NSArray/NSMutableArray.m +++ /dev/null @@ -1,547 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include -#include - -@implementation NSMutableArray - -+ allocWithZone: (NSZone *) zone { - if (self == [NSMutableArray class]) - return NSAllocateObject([NSMutableArray_concrete class], 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -- initWithObjects: (id *) objects count: (NSUInteger) count { - NSUInteger i; - - if ((self = [self initWithCapacity: count]) == nil) - return nil; - - for (i = 0; i < count; i++) - [self addObject: objects[i]]; - - return self; -} - -- initWithCapacity: (NSUInteger) capacity { - NSInvalidAbstractInvocation(); - return nil; -} - -- copy { - return [[NSArray allocWithZone: NULL] initWithArray: self]; -} - -- copyWithZone: (NSZone *) zone { - return [[NSArray allocWithZone: zone] initWithArray: self]; -} - -- (Class) classForCoder { - return [NSMutableArray class]; -} - -+ array { - if (self == [NSMutableArray class]) - return NSAutorelease(NSMutableArray_concreteNewWithCapacity(NULL, 0)); - - return [[[self allocWithZone: NULL] init] autorelease]; -} - -+ arrayWithContentsOfFile: (NSString *) path { - return [NSPropertyListReader arrayWithContentsOfFile: path]; -} - -+ arrayWithObject: object { - if (self == [NSMutableArray class]) - return NSAutorelease(NSMutableArray_concreteNew(NULL, &object, 1)); - - return [[[self allocWithZone: NULL] initWithObjects: &object - count: 1] autorelease]; -} - -+ arrayWithCapacity: (NSUInteger) capacity { - if (self == [NSMutableArray class]) - return NSAutorelease( - NSMutableArray_concreteNewWithCapacity(NULL, capacity)); - - return [[[self allocWithZone: NULL] initWithCapacity: capacity] - autorelease]; -} - -+ arrayWithObjects: first, ... { - NSUInteger i, count = 0; - id *objects = NULL; - - if (first != nil) { - va_list arguments; - - va_start(arguments, first); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, first); - objects[0] = first; - for (i = 1; i < count; i++) - objects[i] = va_arg(arguments, id); - va_end(arguments); - } - - if (self == [NSMutableArray class]) - return NSAutorelease(NSMutableArray_concreteNew(NULL, objects, count)); - - return [[[self allocWithZone: NULL] initWithObjects: objects - count: count] autorelease]; -} - -- (void) addObject: object { - NSInvalidAbstractInvocation(); -} - -- (void) addObjectsFromArray: (NSArray *) other { - NSUInteger i, count = [other count]; - - for (i = 0; i < count; i++) - [self addObject: [other objectAtIndex: i]]; -} - -- (void) removeObjectAtIndex: (NSUInteger) index { - NSInvalidAbstractInvocation(); -} - -- (void) removeAllObjects { - NSInteger count = [self count]; - - while (--count >= 0) - [self removeObjectAtIndex: count]; -} - -- (void) removeLastObject { - [self removeObjectAtIndex: [self count] - 1]; -} - -- (void) removeObject: object { - - NSInteger count = [self count]; - - // Make sure it doesn't disappear on us during this operation - [object retain]; - - while (--count >= 0) { - id check = [self objectAtIndex: count]; - - if ([check isEqual: object]) { - if (check == object && [object retainCount] == 1) { - [[object retain] autorelease]; - } - [self removeObjectAtIndex: count]; - } - } - - [object release]; -} - -- (void) removeObject: object inRange: (NSRange) range { - NSInteger pos = NSMaxRange(range); - - if (pos > [self count]) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond count %d", NSStringFromRange(range), - [self count]); - - // Make sure it doesn't disappear on us during this operation - [object retain]; - - while (--pos >= range.location) { - id check = [self objectAtIndex: pos]; - - if ([check isEqual: object]) { - if (check == object && [object retainCount] == 1) { - [[object retain] autorelease]; - } - [self removeObjectAtIndex: pos]; - } - } - - [object release]; -} - -- (void) removeObjectIdenticalTo: object { - NSInteger count = [self count]; - - while (--count >= 0) { - id check = [self objectAtIndex: count]; - - if (check == object) { - if ([object retainCount] == 1) { - [[object retain] autorelease]; - } - [self removeObjectAtIndex: count]; - } - } -} - -- (void) removeObjectIdenticalTo: object inRange: (NSRange) range { - NSInteger pos = NSMaxRange(range); - - if (pos > [self count]) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond count %d", NSStringFromRange(range), - [self count]); - - while (--pos >= range.location) { - id check = [self objectAtIndex: pos]; - - if (check == object) { - if ([object retainCount] == 1) { - [[object retain] autorelease]; - } - [self removeObjectAtIndex: pos]; - } - } -} - -- (void) removeObjectsInRange: (NSRange) range { - NSInteger pos = NSMaxRange(range); - - if (range.length == 0) - return; - - if (pos > [self count]) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond count %d", NSStringFromRange(range), - [self count]); - - while (--pos >= range.location && pos >= 0) - [self removeObjectAtIndex: pos]; -} - -static inline void memswp(void *a, void *b, size_t width) { - if (width == sizeof(void *)) { - // Optimization for pointer sized swap: - void *tmp; - tmp = *(void **) a; - *(void **) a = *(void **) b; - *(void **) b = tmp; - return; - } - // default uses memcpy: - char tmp[width]; - memcpy(tmp, a, width); - memcpy(a, b, width); - memcpy(b, tmp, width); -} - -// iterative mergesort based on -// http://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/merge/mergiter.htm - -static int mergesortL(void *base, size_t nel, size_t width, - int (*compar)(const void *, const void *)) -{ - NSInteger h, i, j, k, l, m, n = nel; - void *A; // points to an element - void *B = NSZoneMalloc(NULL, (n / 2 + 1) * width); // points to a temp array - - for (h = 1; h < n; h += h) { - for (m = n - 1 - h; m >= 0; m -= h + h) { - l = m - h + 1; - if (l < 0) - l = 0; - - // Copy first half of the array into helper B: - j = m + 1; - memcpy(B, base + (l * width), (j - l) * width); - - for (i = 0, k = l; k < j && j <= m + h; k++) { - A = base + (width * j); // A = [self objectAtIndex:j]; - if (compar(A, B + (i * width)) > 0) { - memswp(base + (k * width), B + (i * width), width); - i += 1; - } else { - memswp(base + (k * width), A, width); - j += 1; - } - } - - while (k < j) // This loop could be optimized - memswp(base + (k++ * width), B + (i++ * width), width); - } - } - - free(B); - return 0; -} - -static int _nsmutablearraycompareindices(const void *v1, const void *v2) { - int i1 = (*(int *) v1); - int i2 = (*(int *) v2); - int result = i1 == i2 ? 0 : (i1 < i2 ? -1 : 1); - return result; -} - -- (void) removeObjectsFromIndices: (NSUInteger *) indices - numIndices: (NSUInteger) count -{ - if (count) { - NSUInteger lastIndex = NSNotFound; - NSUInteger sortedIndices[count]; - NSInteger i; - memcpy(sortedIndices, indices, sizeof(NSUInteger) * count); - mergesortL(sortedIndices, sizeof(NSUInteger), count, - &_nsmutablearraycompareindices); - for (i = count - 1; i >= 0; i--) { - NSUInteger index = sortedIndices[i]; - if (index != lastIndex) { - [self removeObjectAtIndex: index]; - } - lastIndex = index; - } - } -} - -- (void) removeObjectsInArray: (NSArray *) other { - NSInteger count = [other count]; - - while (--count >= 0) { - id object = [other objectAtIndex: count]; - [self removeObject: object]; - } -} - -- (void) removeObjectsAtIndexes: (NSIndexSet *) indexes { - NSUInteger index = [indexes lastIndex]; - - while (index != NSNotFound) { - [self removeObjectAtIndex: index]; - index = [indexes indexLessThanIndex: index]; - } -} - -- (void) insertObject: object atIndex: (NSUInteger) index { - NSInvalidAbstractInvocation(); -} - -- (void) insertObjects: (NSArray *) objects atIndexes: (NSIndexSet *) indexes { - NSInteger i; - NSInteger index = [indexes firstIndex]; - for (i = 0; i < [objects count]; i++) { - [self insertObject: [objects objectAtIndex: i] atIndex: index]; - index = [indexes indexGreaterThanIndex: index]; - } -} - -- (void) setArray: (NSArray *) other { - [self removeAllObjects]; - [self addObjectsFromArray: other]; -} - -- (void) replaceObjectAtIndex: (NSUInteger) index withObject: object { - NSInvalidAbstractInvocation(); -} - -- (void) replaceObjectsInRange: (NSRange) range - withObjectsFromArray: (NSArray *) array -{ - [self replaceObjectsInRange: range - withObjectsFromArray: array - range: NSMakeRange(0, [array count])]; -} - -- (void) replaceObjectsInRange: (NSRange) range - withObjectsFromArray: (NSArray *) array - range: (NSRange) arrayRange -{ - NSInteger i; - - for (i = 0; i < range.length && i < arrayRange.length; i++) - [self replaceObjectAtIndex: range.location + i - withObject: [array objectAtIndex: arrayRange.location + - i]]; - - if (i < range.length) - [self removeObjectsInRange: NSMakeRange(range.location + i, - range.length - i)]; - - if (i < arrayRange.length) { - for (; i < arrayRange.length; i++) - [self insertObject: [array objectAtIndex: arrayRange.location + i] - atIndex: range.location + i]; - } -} - -- (void) replaceObjectsAtIndexes: (NSIndexSet *) indexes - withObjects: (NSArray *) objects -{ - NSUInteger index = [indexes firstIndex]; - for (id object in objects) { - [self replaceObjectAtIndex: index withObject: object]; - index = [indexes indexGreaterThanIndex: index]; - } -} - -- (void) exchangeObjectAtIndex: (NSUInteger) index - withObjectAtIndex: (NSUInteger) other -{ - id object = [[self objectAtIndex: index] retain]; - id otherObject = [self objectAtIndex: other]; - - [self replaceObjectAtIndex: index withObject: otherObject]; - [self replaceObjectAtIndex: other withObject: object]; - [object release]; -} - -static NSInteger selectorCompare(id object1, id object2, void *userData) { - SEL selector = userData; - - return (NSComparisonResult) [object1 performSelector: selector - withObject: object2]; -} - -- (void) sortUsingSelector: (SEL) selector { - [self sortUsingFunction: selectorCompare context: (void *) selector]; -} - -// iterative mergesort based on -// http://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/merge/mergiter.htm -// ... - -// ... using a comparison function -- (void) sortUsingFunction: (NSInteger (*)(id, id, void *)) compare - context: (void *) context -{ - NSInteger h, i, j, k, l, m, n = [self count]; - id A, *B = NSZoneMalloc(NULL, (n / 2 + 1) * sizeof(id)); - - // to prevent retain counts from temporarily hitting zero. - for (i = 0; i < n; i++) - [[self objectAtIndex: i] retain]; - - for (h = 1; h < n; h += h) { - for (m = n - 1 - h; m >= 0; m -= h + h) { - l = m - h + 1; - if (l < 0) - l = 0; - - for (i = 0, j = l; j <= m; i++, j++) - B[i] = [self objectAtIndex: j]; - - for (i = 0, k = l; k < j && j <= m + h; k++) { - A = [self objectAtIndex: j]; - if (compare(A, B[i], context) == NSOrderedDescending) - [self replaceObjectAtIndex: k withObject: B[i++]]; - else { - [self replaceObjectAtIndex: k withObject: A]; - j++; - } - } - - while (k < j) - [self replaceObjectAtIndex: k++ withObject: B[i++]]; - } - } - - for (i = 0; i < n; i++) - [[self objectAtIndex: i] release]; - - free(B); -} - -static NSComparisonResult compareObjectsUsingDescriptors(id A, id B, - void *descriptorsX) -{ - NSArray *descriptors = (id) descriptorsX; - NSComparisonResult result = NSOrderedSame; - - NSInteger i, count = [descriptors count]; - - for (i = 0; i < count; i++) { - if ((result = [[descriptors objectAtIndex: i] compareObject: A - toObject: B]) != - NSOrderedSame) - break; - } - - return result; -} - -- (void) sortUsingDescriptors: (NSArray *) descriptors { - [self sortUsingFunction: compareObjectsUsingDescriptors - context: descriptors]; -} - -- (NSUInteger) _insertObject: (id) obj - inArraySortedByDescriptors: (NSArray *) descriptors -{ - NSUInteger start = 0; - NSUInteger end = [self count]; - NSUInteger mid = 0; - - // do a binary search to find an object NSOrderedSame - while (mid = (start + end) / 2, start < end) { - id other = [self objectAtIndex: mid]; - NSComparisonResult res = - compareObjectsUsingDescriptors(obj, other, descriptors); - - if (res == NSOrderedAscending) { - end = mid; - } else if (res == NSOrderedDescending) { - start = mid + 1; - } else { - [self insertObject: obj atIndex: mid]; - return mid; - } - } - // none found; current position must be where we should be at - [self insertObject: obj atIndex: mid]; - return mid; -} - -- (void) filterUsingPredicate: (NSPredicate *) predicate { - if (predicate == nil) { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] predicate is nil", [self class], _cmd]; - return; - } - - NSInteger count = [self count]; - - while (--count >= 0) { - id check = [self objectAtIndex: count]; - - if (![predicate evaluateWithObject: check]) - [self removeObjectAtIndex: count]; - } -} - -@end diff --git a/Foundation/NSArray/NSMutableArray_concrete.h b/Foundation/NSArray/NSMutableArray_concrete.h deleted file mode 100644 index bbe0f409..00000000 --- a/Foundation/NSArray/NSMutableArray_concrete.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableArray_concrete : NSMutableArray { - NSUInteger _count; - NSUInteger _capacity; - id *_objects; -} - -@end - -NSArray *NSMutableArray_concreteNew(NSZone *zone, id *objects, - NSUInteger count); -NSArray *NSMutableArray_concreteNewWithCapacity(NSZone *zone, - NSUInteger capacity); diff --git a/Foundation/NSArray/NSMutableArray_concrete.m b/Foundation/NSArray/NSMutableArray_concrete.m deleted file mode 100644 index a0c34642..00000000 --- a/Foundation/NSArray/NSMutableArray_concrete.m +++ /dev/null @@ -1,405 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -@implementation NSMutableArray_concrete - -static inline NSUInteger roundCapacityUp(NSUInteger capacity) { - return (capacity < 1) ? 1 : capacity; -} - -NSMutableArray_concrete * -NSMutableArray_concreteInit(NSMutableArray_concrete *self, id *objects, - NSUInteger count, NSZone *zone) -{ - NSUInteger i; - - self->_count = count; - self->_capacity = roundCapacityUp(count); - self->_objects = NSZoneMalloc(zone, sizeof(id) * self->_capacity); - for (i = 0; i < count; i++) { - self->_objects[i] = [objects[i] retain]; - } - - return self; -} - -NSMutableArray_concrete * -NSMutableArray_concreteInitWithCapacity(NSMutableArray_concrete *self, - NSUInteger capacity, NSZone *zone) -{ - self->_count = 0; - self->_capacity = roundCapacityUp(capacity); - self->_objects = NSZoneMalloc(zone, sizeof(id) * self->_capacity); - - return self; -} - -NSArray *NSMutableArray_concreteNew(NSZone *zone, id *objects, NSUInteger count) -{ - NSMutableArray_concrete *self = - NSAllocateObject([NSMutableArray_concrete class], 0, zone); - if (self) { - self = NSMutableArray_concreteInit(self, objects, count, zone); - } - return self; -} - -NSArray *NSMutableArray_concreteNewWithCapacity(NSZone *zone, - NSUInteger capacity) -{ - NSMutableArray_concrete *self = - NSAllocateObject([NSMutableArray_concrete class], 0, zone); - if (self) { - self = NSMutableArray_concreteInitWithCapacity(self, capacity, zone); - } - return self; -} - -- init { - return NSMutableArray_concreteInitWithCapacity(self, 0, - NSZoneFromPointer(self)); -} - -- initWithArray: (NSArray *) array { - NSUInteger i, count = [array count]; - - NSMutableArray_concreteInitWithCapacity(self, count, - NSZoneFromPointer(self)); - self->_count = count; - [array getObjects: _objects]; - for (i = 0; i < count; i++) - [_objects[i] retain]; - - return self; -} - -- initWithContentsOfFile: (NSString *) path { - NSUnimplementedMethod(); - return self; -} - -- initWithObjects: (id *) objects count: (NSUInteger) count { - return NSMutableArray_concreteInit(self, objects, count, - NSZoneFromPointer(self)); -} - -- initWithObjects: object, ... { - va_list arguments; - NSUInteger i, count; - id *objects; - - va_start(arguments, object); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, object); - objects[0] = object; - for (i = 1; i < count; i++) - objects[i] = va_arg(arguments, id); - va_end(arguments); - - return NSMutableArray_concreteInit(self, objects, count, - NSZoneFromPointer(self)); -} - -- initWithCapacity: (NSUInteger) capacity { - return NSMutableArray_concreteInitWithCapacity(self, capacity, - NSZoneFromPointer(self)); -} - -- (void) dealloc { - NSInteger count = _count; - - while (--count >= 0) - [_objects[count] release]; - - NSZoneFree(NSZoneFromPointer(_objects), _objects); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSUInteger) count { - return _count; -} - -- objectAtIndex: (NSUInteger) index { - if (index >= _count) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond count %d", index, [self count]); - return nil; - } - - return _objects[index]; -} - -- (void) addObject: object { - if (object == nil) { - NSRaiseException(NSInvalidArgumentException, self, _cmd, @"nil object"); - return; - } - - [object retain]; - - _count++; - if (_count > _capacity) { - _capacity = _count * 2; - _objects = NSZoneRealloc(NSZoneFromPointer(_objects), _objects, - sizeof(id) * _capacity); - } - _objects[_count - 1] = object; -} - -- (void) replaceObjectAtIndex: (NSUInteger) index withObject: object { - if (object == nil) { - NSRaiseException(NSInvalidArgumentException, self, _cmd, @"nil object"); - return; - } - - if (index >= _count) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond count %d", index, [self count]); - return; - } - - [object retain]; - [_objects[index] release]; - _objects[index] = object; -} - -- lastObject { - if (_count == 0) - return nil; - - return _objects[_count - 1]; -} - -- (void) insertObject: object atIndex: (NSUInteger) index { - NSInteger c; - - if (object == nil) { - NSRaiseException(NSInvalidArgumentException, self, _cmd, @"nil object"); - return; - } - - if (index > _count) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond count %d", index, [self count]); - return; - } - - _count++; - if (_count > _capacity) { - _capacity = _count * 2; - _objects = NSZoneRealloc(NSZoneFromPointer(_objects), _objects, - sizeof(id) * _capacity); - } - - if (_count > 1) - for (c = _count - 1; c > index && c > 0; c--) - _objects[c] = _objects[c - 1]; - - _objects[index] = [object retain]; -} - -static void removeObjectAtIndex(NSMutableArray_concrete *self, NSUInteger index) -{ - NSUInteger i; - id object; - - object = self->_objects[index]; - self->_count--; - for (i = index; i < self->_count; i++) - self->_objects[i] = self->_objects[i + 1]; - - [object release]; - - if (self->_capacity > self->_count * 2) { - self->_capacity = self->_count; - self->_objects = - NSZoneRealloc(NSZoneFromPointer(self->_objects), self->_objects, - sizeof(id) * self->_capacity); - } -} - -- (void) removeObjectAtIndex: (NSUInteger) index { - if (index >= _count) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond count %d", index, [self count]); - } - - removeObjectAtIndex(self, index); -} - -- (void) removeLastObject { - if (_count == 0) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond count %d", 1, [self count]); - return; - } - - removeObjectAtIndex(self, _count - 1); -} - -- (void) removeAllObjects { - NSUInteger i; - - for (i = 0; i < _count; i++) - [_objects[i] release]; - - _count = 0; - if (self->_capacity > 8) { - self->_capacity = 8; - self->_objects = - NSZoneRealloc(NSZoneFromPointer(self->_objects), self->_objects, - sizeof(id) * self->_capacity); - } -} - -- (void) getObjects: (id *) objects { - NSUInteger i; - - for (i = 0; i < _count; i++) - objects[i] = _objects[i]; -} - -- (NSUInteger) indexOfObjectIdenticalTo: object { - NSInteger i; - - for (i = 0; i < self->_count; i++) - if (self->_objects[i] == object) - return i; - - return NSNotFound; -} - -static inline NSUInteger indexOfObject(NSMutableArray_concrete *self, id object) -{ - NSUInteger i; - - for (i = 0; i < self->_count; i++) - if ([self->_objects[i] isEqual: object]) - return i; - - return NSNotFound; -} - -- (NSUInteger) indexOfObject: object { - return indexOfObject(self, object); -} - -- (BOOL) containsObject: object { - return (indexOfObject(self, object) != NSNotFound) ? YES : NO; -} - -- (void) makeObjectsPerformSelector: (SEL) selector { - NSInteger i, count = [self count]; - - for (i = 0; i < count; i++) - [_objects[i] performSelector: selector]; -} - -// Bottom up merge - -- (void) mergeUsingFunction: (NSInteger (*)(id, id, void *)) compare - context: (void *) context - A: (id *) A - left: (NSInteger) iLeft - right: (NSInteger) iRight - end: (NSInteger) iEnd - B: (id *) B -{ - NSInteger i0 = iLeft; - NSInteger i1 = iRight; - NSInteger j; - - /* While there are elements in the left or right lists */ - for (j = iLeft; j < iEnd; j++) { - /* If left list head exists and is <= existing right list head */ - if (i0 < iRight && (i1 >= iEnd || compare(A[i0], A[i1], context) != - NSOrderedDescending)) { - B[j] = A[i0++]; - } else { - B[j] = A[i1++]; - } - } -} - -// iterative bottom up mergesort based on -// http://en.wikipedia.org/wiki/Merge_sort -- (void) sortUsingFunction: (NSInteger (*)(id, id, void *)) compare - context: (void *) context -{ - NSInteger n = _count; - - /* array A[] has the items to sort; array B[] is a work array */ - id *A = _objects; - id *B = NSZoneMalloc(NULL, (n + 1) * sizeof(id)); - - /* Each 1-element run in A is already "sorted". */ - - /* Make successively longer sorted runs of length 2, 4, 8, 16... until whole - * array is sorted. */ - for (int width = 1; width < n; width = 2 * width) { - /* Array A is full of runs of length width. */ - for (int i = 0; i < n; i = i + 2 * width) { - /* Merge two runs: A[i:i+width-1] and A[i+width:i+2*width-1] to B[] - */ - /* or copy A[i:n-1] to B[] ( if(i+width >= n) ) */ - [self mergeUsingFunction: compare - context: context - A: A - left: i - right: MIN(i + width, n) - end: MIN(i + 2 * width, n) - B: B]; - } - /* Now work array B is full of runs of length 2*width. */ - /* Copy array B to array A for next iteration. */ - memcpy(A, B, n * sizeof(id)); - } - - free(B); -} - -- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *) state - objects: (id *) stackbuf - count: (NSUInteger) length; -{ - if (state->state >= _count) - return 0; - - state->itemsPtr = _objects; - state->state = _count; - - state->mutationsPtr = (unsigned long *) self; - - return _count; -} - -@end diff --git a/Foundation/NSAssertionHandler.h b/Foundation/NSAssertionHandler.h deleted file mode 100644 index c6a1d194..00000000 --- a/Foundation/NSAssertionHandler.h +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2008 John Engelhart - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#ifdef NS_BLOCK_ASSERTIONS -#define _NSAssertBody(condition, desc, ...) -#define _NSCAssertBody(condition, desc, ...) -#else // NS_BLOCK_ASSERTIONS not defined -#define _NSAssertBody(condition, desc, ...) \ - do { \ - if (!(condition)) { \ - [[NSAssertionHandler currentHandler] \ - handleFailureInMethod: _cmd \ - object: self \ - file: [NSString stringWithUTF8String: \ - __FILE__] \ - lineNumber: __LINE__ \ - description: (desc), ##__VA_ARGS__]; \ - } \ - } while (0) -#define _NSCAssertBody(condition, desc, ...) \ - do { \ - if (!(condition)) { \ - [[NSAssertionHandler currentHandler] \ - handleFailureInFunction: \ - [NSString \ - stringWithUTF8String: __PRETTY_FUNCTION__] \ - file: [NSString stringWithUTF8String: \ - __FILE__] \ - lineNumber: __LINE__ \ - description: (desc), ##__VA_ARGS__]; \ - } \ - } while (0) -#endif // NS_BLOCK_ASSERTIONS - -/* - * Asserts to use in Objective-C methods: - */ - -#define NSAssert(condition, desc, ...) \ - _NSAssertBody((condition), (desc), ##__VA_ARGS__) -#define NSAssert1(condition, desc, val1) NSAssert(condition, desc, val1) -#define NSAssert2(condition, desc, val1, val2) \ - NSAssert(condition, desc, val1, val2) -#define NSAssert3(condition, desc, val1, val2, val3) \ - NSAssert(condition, desc, val1, val2, val3) -#define NSAssert4(condition, desc, val1, val2, val3, val4) \ - NSAssert(condition, desc, val1, val2, val3, val4) -#define NSAssert5(condition, desc, val1, val2, val3, val4, val5) \ - NSAssert(condition, desc, val1, val2, val3, val4, val5) - -#define NSParameterAssert(condition) \ - _NSAssertBody((condition), @"Invalid parameter not satisfying: %s", \ - #condition) - -/* - * Asserts to use in C function calls: - */ - -#define NSCAssert(condition, desc, ...) \ - _NSCAssertBody((condition), (desc), ##__VA_ARGS__) -#define NSCAssert1(condition, desc, val1) NSCAssert(condition, desc, val1) -#define NSCAssert2(condition, desc, val1, val2) \ - NSCAssert(condition, desc, val1, val2) -#define NSCAssert3(condition, desc, val1, val2, val3) \ - NSCAssert(condition, desc, val1, val2, val3) -#define NSCAssert4(condition, desc, val1, val2, val3, val4) \ - NSCAssert(condition, desc, val1, val2, val3, val4) -#define NSCAssert5(condition, desc, val1, val2, val3, val4, val5) \ - NSCAssert(condition, desc, val1, val2, val3, val4, val5) - -#define NSCParameterAssert(condition) \ - _NSCAssertBody((condition), @"Invalid parameter not satisfying: %s", \ - #condition) - -@interface NSAssertionHandler : NSObject - -+ (NSAssertionHandler *) currentHandler; -- (void) handleFailureInMethod: (SEL) selector - object: (id) object - file: (NSString *) fileName - lineNumber: (NSInteger) line - description: (NSString *) format, ...; -- (void) handleFailureInFunction: (NSString *) functionName - file: (NSString *) fileName - lineNumber: (NSInteger) line - description: (NSString *) format, ...; - -@end diff --git a/Foundation/NSAssertionHandler.m b/Foundation/NSAssertionHandler.m deleted file mode 100644 index 71f65cec..00000000 --- a/Foundation/NSAssertionHandler.m +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright (c) 2008 John Engelhart - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import - -@implementation NSAssertionHandler - -+ (NSAssertionHandler *) currentHandler { - id currentHandlerForThread = [[[NSThread currentThread] threadDictionary] - objectForKey: [self className]]; - - if ((currentHandlerForThread == NULL) && - ((currentHandlerForThread = [[self alloc] init]) != NULL)) { - [[[NSThread currentThread] threadDictionary] - setObject: currentHandlerForThread - forKey: [self className]]; - } - - return (currentHandlerForThread); -} - -- (void) handleFailureInMethod: (SEL) selector - object: (id) object - file: (NSString *) fileName - lineNumber: (NSInteger) line - description: (NSString *) format, ... -{ - NSLog(@"*** Assertion failure in %c[%@ %@], %@:%ld", - (object == [object class]) ? '+' : '-', [object className], - NSStringFromSelector(selector), fileName, (long) line); - - va_list arguments; - va_start(arguments, format); - [NSException raise: NSInternalInconsistencyException - format: format - arguments: arguments]; - va_end(arguments); -} - -- (void) handleFailureInFunction: (NSString *) functionName - file: (NSString *) fileName - lineNumber: (NSInteger) line - description: (NSString *) format, ... -{ - NSLog(@"*** Assertion failure in %@, %@:%ld", functionName, fileName, - (long) line); - - va_list arguments; - va_start(arguments, format); - [NSException raise: NSInternalInconsistencyException - format: format - arguments: arguments]; - va_end(arguments); -} - -@end diff --git a/Foundation/NSAtomicCompareAndSwap.h b/Foundation/NSAtomicCompareAndSwap.h deleted file mode 100644 index 169db089..00000000 --- a/Foundation/NSAtomicCompareAndSwap.h +++ /dev/null @@ -1,6 +0,0 @@ - -#if COCOTRON_USE_NONATOMIC_COMPARE_AND_SWAP -#warning __sync_bool_compare_and_swap is nonatomic. Do not use more than one thread! -#define __sync_bool_compare_and_swap(pointer, a, b, ...) \ - ((*pointer == a) ? (*pointer = b), 1 : 0) -#endif diff --git a/Foundation/NSAttributedString/NSAttributedString.h b/Foundation/NSAttributedString/NSAttributedString.h deleted file mode 100644 index c458d167..00000000 --- a/Foundation/NSAttributedString/NSAttributedString.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDictionary; - -@interface NSAttributedString : NSObject - -- initWithString: (NSString *) string; -- initWithString: (NSString *) string attributes: (NSDictionary *) attributes; -- initWithAttributedString: (NSAttributedString *) other; - -- (BOOL) isEqualToAttributedString: (NSAttributedString *) other; - -- (NSUInteger) length; -- (NSString *) string; - -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - effectiveRange: (NSRange *) range; -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - longestEffectiveRange: (NSRange *) range - inRange: (NSRange) inRange; - -- attribute: (NSString *) name - atIndex: (NSUInteger) location - effectiveRange: (NSRange *) range; -- attribute: (NSString *) name - atIndex: (NSUInteger) location - longestEffectiveRange: (NSRange *) range - inRange: (NSRange) inRange; - -- (NSAttributedString *) attributedSubstringFromRange: (NSRange) range; - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString.m b/Foundation/NSAttributedString/NSAttributedString.m deleted file mode 100644 index 8c2abae1..00000000 --- a/Foundation/NSAttributedString/NSAttributedString.m +++ /dev/null @@ -1,215 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import -#import - -@implementation NSAttributedString - -+ allocWithZone: (NSZone *) zone { - if (self == [NSAttributedString class]) - return NSAllocateObject([NSAttributedString_placeholder class], 0, - NULL); - - return NSAllocateObject(self, 0, zone); -} - -- init { - return [self initWithString: @""]; -} - -- initWithString: (NSString *) string { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithString: (NSString *) string attributes: (NSDictionary *) attributes { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithAttributedString: (NSAttributedString *) other { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- copy { - return [self retain]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopy { - return [[NSMutableAttributedString allocWithZone: NULL] - initWithAttributedString: self]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableAttributedString allocWithZone: zone] - initWithAttributedString: self]; -} - -- (BOOL) isEqualToAttributedString: (NSAttributedString *) other { - if ([self length] != [other length]) { - return NO; - } - unsigned i = 0; - NSString *string = [self string]; - NSString *otherString = [other string]; - if (![string isEqualToString: otherString]) { - return NO; - } - unsigned length = [self length]; - NSRange range; - while (i < length) { - NSDictionary *attributes = [self attributesAtIndex: i - effectiveRange: &range]; - NSRange otherRange; - NSDictionary *otherAttributes = [other attributesAtIndex: i - effectiveRange: &otherRange]; - if (![attributes isEqualToDictionary: otherAttributes]) { - return NO; - } - i = MIN(NSMaxRange(range), NSMaxRange(otherRange)); - } - return YES; -} - -- (NSUInteger) hash { - return [[self string] hash]; -} - -- (BOOL) isEqual: (id) other { - if (self == other) { - return YES; - } - if ([other isKindOfClass: [NSAttributedString class]]) { - return [self isEqualToAttributedString: other]; - } - return NO; -} - -- (NSUInteger) length { - return [[self string] length]; -} - -- (NSString *) string { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - effectiveRange: (NSRange *) range -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - longestEffectiveRange: (NSRange *) range - inRange: (NSRange) inRange -{ - NSUnimplementedMethod(); - return nil; -} - -- attribute: (NSString *) name - atIndex: (NSUInteger) location - effectiveRange: (NSRange *) range -{ - return [[self attributesAtIndex: location - effectiveRange: range] objectForKey: name]; -} - -- attribute: (NSString *) name - atIndex: (NSUInteger) location - longestEffectiveRange: (NSRange *) range - inRange: (NSRange) inRange -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSAttributedString *) attributedSubstringFromRange: (NSRange) range { - NSMutableAttributedString *result = - [[[NSMutableAttributedString allocWithZone: NULL] init] - autorelease]; - NSUInteger location = range.location; - NSUInteger limit = MIN(NSMaxRange(range), [self length]); - - while (location < limit) { - NSRange effectiveRange, appendedRange; - NSDictionary *attributes = [self attributesAtIndex: location - effectiveRange: &effectiveRange]; - - if (effectiveRange.location < location) { - effectiveRange.length = NSMaxRange(effectiveRange) - location; - effectiveRange.location = location; - } - if (NSMaxRange(effectiveRange) > limit) - effectiveRange.length = limit - effectiveRange.location; - - appendedRange.location = [result length]; - appendedRange.length = effectiveRange.length; - [[result mutableString] - appendString: [[self string] - substringWithRange: effectiveRange]]; - [result setAttributes: attributes range: appendedRange]; - - location = NSMaxRange(effectiveRange); - } - return result; -} - -- (NSString *) description { - if ([self length] > 0) { - NSMutableString *result = [NSMutableString string]; - unsigned length = [self length]; - int i = 0; - while (i < length) { - NSRange range; - NSDictionary *attributes = [self attributesAtIndex: i - effectiveRange: &range]; - NSString *string = [[self string] substringWithRange: range]; - [result appendFormat: @"%@ {\n%@\n}\n", string, attributes]; - i = NSMaxRange(range); - } - return result; - } else { - return [NSString stringWithFormat: @"%@ {}", [self string]]; - } -} - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_manyAttributes.h b/Foundation/NSAttributedString/NSAttributedString_manyAttributes.h deleted file mode 100644 index 20301643..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_manyAttributes.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSAttributedString_manyAttributes : NSAttributedString { - NSString *_string; - NSRangeEntries *_rangeToAttributes; -} - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_manyAttributes.m b/Foundation/NSAttributedString/NSAttributedString_manyAttributes.m deleted file mode 100644 index 49a840ae..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_manyAttributes.m +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "NSAttributedString_manyAttributes.h" -#import -#import -#import -#import - -@implementation NSAttributedString_manyAttributes - -- initWithAttributedString: (NSAttributedString *) other { - NSUInteger location = 0; - NSUInteger limit = [other length]; - - _string = [[other string] copy]; - _rangeToAttributes = NSCreateRangeToCopiedObjectEntries(0); - - while (location < limit) { - NSRange effectiveRange; - NSDictionary *attributes = [other attributesAtIndex: location - effectiveRange: &effectiveRange]; - - NSRangeEntryInsert(_rangeToAttributes, effectiveRange, attributes); - - location = NSMaxRange(effectiveRange); - } - - return self; -} - -- (void) dealloc { - [_string release]; - NSFreeRangeEntries(_rangeToAttributes); - [super dealloc]; -} - -- (NSString *) string { - return _string; -} - -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - effectiveRange: (NSRange *) effectiveRangep -{ - NSDictionary *result; - - if (location >= [self length]) - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - - if ((result = NSRangeEntryAtIndex(_rangeToAttributes, location, - effectiveRangep)) == nil) - result = [NSDictionary dictionary]; - - if (effectiveRangep != NULL && effectiveRangep->length == NSNotFound) - effectiveRangep->length = [self length] - effectiveRangep->location; - - return [[result retain] autorelease]; -} - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_nilAttributes.h b/Foundation/NSAttributedString/NSAttributedString_nilAttributes.h deleted file mode 100644 index de36ca4d..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_nilAttributes.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSAttributedString_nilAttributes : NSAttributedString { - NSString *_string; -} - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_nilAttributes.m b/Foundation/NSAttributedString/NSAttributedString_nilAttributes.m deleted file mode 100644 index a4881b3d..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_nilAttributes.m +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import - -@implementation NSAttributedString_nilAttributes - -- (NSString *) string { - return _string; -} - -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - effectiveRange: (NSRange *) effectiveRangep -{ - if (location >= [self length]) - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - - if (effectiveRangep != NULL) - *effectiveRangep = NSMakeRange(0, [_string length]); - - return [NSDictionary dictionary]; -} - -- initWithString: (NSString *) string { - _string = [string copy]; - return self; -} - -- (void) dealloc { - [_string release]; - [super dealloc]; -} - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_oneAttribute.h b/Foundation/NSAttributedString/NSAttributedString_oneAttribute.h deleted file mode 100644 index 61851569..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_oneAttribute.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSAttributedString_oneAttribute : NSAttributedString { - NSString *_string; - NSDictionary *_attributes; -} - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_oneAttribute.m b/Foundation/NSAttributedString/NSAttributedString_oneAttribute.m deleted file mode 100644 index 3a1d745c..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_oneAttribute.m +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import - -@implementation NSAttributedString_oneAttribute - -- (NSString *) string { - return _string; -} - -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - effectiveRange: (NSRange *) range -{ - if (location >= [self length]) - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - - if (range != NULL) - *range = NSMakeRange(0, [_string length]); - - return [[_attributes retain] autorelease]; -} - -- initWithString: (NSString *) string attributes: (NSDictionary *) attributes { - _string = [string copy]; - _attributes = [attributes copy]; - return self; -} - -- (void) dealloc { - [_string release]; - [_attributes release]; - [super dealloc]; -} - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_placeholder.h b/Foundation/NSAttributedString/NSAttributedString_placeholder.h deleted file mode 100644 index de8c2825..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_placeholder.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSAttributedString_placeholder : NSAttributedString - -@end diff --git a/Foundation/NSAttributedString/NSAttributedString_placeholder.m b/Foundation/NSAttributedString/NSAttributedString_placeholder.m deleted file mode 100644 index af6455c7..00000000 --- a/Foundation/NSAttributedString/NSAttributedString_placeholder.m +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -#import "NSAttributedString_manyAttributes.h" -#import "NSAttributedString_nilAttributes.h" -#import "NSAttributedString_oneAttribute.h" -#import - -@implementation NSAttributedString_placeholder - -- initWithString: (NSString *) string { - NSDeallocateObject(self); - - return [NSAllocateObject([NSAttributedString_nilAttributes class], 0, NULL) - initWithString: string]; -} - -- initWithString: (NSString *) string attributes: (NSDictionary *) attributes { - NSDeallocateObject(self); - - return [NSAllocateObject([NSAttributedString_oneAttribute class], 0, NULL) - initWithString: string - attributes: attributes]; -} - -- initWithAttributedString: (NSAttributedString *) other { - NSDeallocateObject(self); - - return [NSAllocateObject([NSAttributedString_manyAttributes class], 0, NULL) - initWithAttributedString: other]; -} - -- initWithCoder: (NSCoder *) coder { - - // A very basic implementation that handles AttributedString encoding in nib - // files - NSDeallocateObject(self); - - NSString *string = [coder decodeObjectForKey: @"NSString"]; - if ([coder containsValueForKey: @"NSAttributes"]) { - NSDictionary *attributes = [coder decodeObjectForKey: @"NSAttributes"]; - return [NSAllocateObject([NSAttributedString_oneAttribute class], 0, - NULL) initWithString: string - attributes: attributes]; - } - return [NSAllocateObject([NSAttributedString_nilAttributes class], 0, NULL) - initWithString: string]; -} - -@end diff --git a/Foundation/NSAttributedString/NSMutableAttributedString.h b/Foundation/NSAttributedString/NSMutableAttributedString.h deleted file mode 100644 index 00611cfd..00000000 --- a/Foundation/NSAttributedString/NSMutableAttributedString.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMutableString; - -@interface NSMutableAttributedString : NSAttributedString - -- (NSMutableString *) mutableString; - -- (void) addAttribute: (NSString *) name - value: (id) value - range: (NSRange) range; -- (void) addAttributes: (NSDictionary *) attributes range: (NSRange) range; -- (void) appendAttributedString: (NSAttributedString *) attributedString; - -- (void) deleteCharactersInRange: (NSRange) range; - -- (void) removeAttribute: (NSString *) name range: (NSRange) range; - -- (void) insertAttributedString: (NSAttributedString *) attributedString - atIndex: (NSUInteger) index; - -- (void) replaceCharactersInRange: (NSRange) range - withString: (NSString *) string; -- (void) replaceCharactersInRange: (NSRange) range - withAttributedString: (NSAttributedString *) attributedString; -- (void) setAttributes: (NSDictionary *) attributes range: (NSRange) range; -- (void) setAttributedString: (NSAttributedString *) attributedString; - -- (void) beginEditing; -- (void) endEditing; - -@end diff --git a/Foundation/NSAttributedString/NSMutableAttributedString.m b/Foundation/NSAttributedString/NSMutableAttributedString.m deleted file mode 100644 index f1c3370d..00000000 --- a/Foundation/NSAttributedString/NSMutableAttributedString.m +++ /dev/null @@ -1,180 +0,0 @@ -/* Copyright (c) 2006-2009 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "NSMutableAttributedString_concrete.h" -#import -#import -#import - -@implementation NSMutableAttributedString - -+ allocWithZone: (NSZone *) zone { - if (self == [NSMutableAttributedString class]) - return NSAllocateObject([NSMutableAttributedString_concrete class], 0, - NULL); - - return NSAllocateObject(self, 0, zone); -} - -- initWithString: (NSString *) string attributes: (NSDictionary *) attributes { - self = [self initWithString: string]; - [self setAttributes: attributes range: NSMakeRange(0, [string length])]; - return self; -} - -- initWithAttributedString: (NSAttributedString *) other { - self = [self init]; - [self setAttributedString: other]; - return self; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSMutableAttributedString"); -} - -- (id) copyWithZone: (NSZone *) zone { - return [[NSAttributedString allocWithZone: NULL] - initWithAttributedString: self]; -} - -- (NSMutableString *) mutableString { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) addAttribute: (NSString *) name - value: (id) value - range: (NSRange) range -{ - [self addAttributes: [NSDictionary dictionaryWithObject: value forKey: name] - range: range]; -} - -- (void) addAttributes: (NSDictionary *) attributes range: (NSRange) range { - NSUInteger location = range.location; - NSUInteger limit = NSMaxRange(range); - - while (location < limit) { - NSRange effectiveRange; - NSMutableDictionary *modify = [[[self - attributesAtIndex: location - effectiveRange: &effectiveRange] mutableCopy] autorelease]; - NSRange replace; - - [modify addEntriesFromDictionary: attributes]; - - replace.location = MAX(location, effectiveRange.location); - replace.length = MIN(NSMaxRange(range), NSMaxRange(effectiveRange)) - - replace.location; - - [self setAttributes: modify range: replace]; - - location = NSMaxRange(replace); - } -} - -- (void) appendAttributedString: (NSAttributedString *) attributedString { - [self replaceCharactersInRange: NSMakeRange([self length], 0) - withAttributedString: attributedString]; -} - -- (void) deleteCharactersInRange: (NSRange) range { - [self replaceCharactersInRange: range withString: @""]; -} - -- (void) removeAttribute: (NSString *) name range: (NSRange) range { - NSUInteger location = range.location; - // TODO, raise exception if beyond length - NSUInteger limit = MIN(NSMaxRange(range), [self length]); - - while (location < limit) { - NSRange effectiveRange; - NSDictionary *check = [self attributesAtIndex: location - effectiveRange: &effectiveRange]; - NSRange replace; - - replace.location = location; - replace.length = - MIN(NSMaxRange(range), NSMaxRange(effectiveRange)) - location; - - if ([check objectForKey: name] != nil) { - NSMutableDictionary *modify = [[check mutableCopy] autorelease]; - - [modify removeObjectForKey: name]; - - [self setAttributes: modify range: replace]; - } - - location = NSMaxRange(replace); - } -} - -- (void) insertAttributedString: (NSAttributedString *) attributedString - atIndex: (NSUInteger) index -{ - [self replaceCharactersInRange: NSMakeRange(index, 0) - withAttributedString: attributedString]; -} - -- (void) replaceCharactersInRange: (NSRange) range - withString: (NSString *) string -{ - NSInvalidAbstractInvocation(); -} - -- (void) replaceCharactersInRange: (NSRange) replaced - withAttributedString: (NSAttributedString *) other -{ - NSString *string = [other string]; - NSUInteger location = 0; - NSUInteger limit = [string length]; - - [self replaceCharactersInRange: replaced withString: string]; - - while (location < limit) { - NSRange effectiveRange; - NSDictionary *attributes = [other attributesAtIndex: location - effectiveRange: &effectiveRange]; - - [self setAttributes: attributes - range: NSMakeRange(replaced.location + location, - effectiveRange.length)]; - - location = NSMaxRange(effectiveRange); - } -} - -- (void) setAttributes: (NSDictionary *) attributes range: (NSRange) range { - NSInvalidAbstractInvocation(); -} - -- (void) setAttributedString: (NSAttributedString *) attributedString { - [self replaceCharactersInRange: NSMakeRange(0, [self length]) - withAttributedString: attributedString]; -} - -- (void) beginEditing { - // do nothing -} - -- (void) endEditing { - // do nothing -} - -@end diff --git a/Foundation/NSAttributedString/NSMutableAttributedString_concrete.h b/Foundation/NSAttributedString/NSMutableAttributedString_concrete.h deleted file mode 100644 index 1a72f6bc..00000000 --- a/Foundation/NSAttributedString/NSMutableAttributedString_concrete.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSMutableAttributedString_concrete : NSMutableAttributedString { - NSMutableString *_string; - NSRangeEntries *_rangeToAttributes; -} - -@end diff --git a/Foundation/NSAttributedString/NSMutableAttributedString_concrete.m b/Foundation/NSAttributedString/NSMutableAttributedString_concrete.m deleted file mode 100644 index 7a260e74..00000000 --- a/Foundation/NSAttributedString/NSMutableAttributedString_concrete.m +++ /dev/null @@ -1,229 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "NSMutableAttributedString_concrete.h" -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSMutableAttributedString_concrete - -- initWithString: (NSString *) string { - _string = [string mutableCopy]; - _rangeToAttributes = NSCreateRangeToCopiedObjectEntries(0); - NSRangeEntryInsert(_rangeToAttributes, NSMakeRange(0, [_string length]), - [NSDictionary dictionary]); - return self; -} - -/* - * NOTE: Cocoa encodes the attribute ranges in an unconventional way. They - * compress the data down to a byte encoding with the following format: - * - * where runlength is the length that the attribute set applies and attribute - * set is an index or id pointing to an attribute dictionary. Things get - * trickier when the runlength exceeds 127 - in that case a multi-byte encoding - * is used where the first byte has the top bit set to indicate the following - * byte is a multiplier - this is extended for runs greater than 127*127 - but - * this implementation doesn't go that far. - * - * Decoding simply reverses the process. - */ -static void encodeIntoData(NSMutableData *data, NSUInteger value) { - char c = value / 127; - char v = value % 127; - if (c > 0) { - v |= 0x80; - } - [data appendBytes: &v length: 1]; - if (c > 0) { - [data appendBytes: &c length: 1]; - } -} - -static NSUInteger decodeFromData(NSData *data, NSUInteger offset, - NSUInteger *value) -{ - *value = 0; - const char *bytes = [data bytes]; - - char v = bytes[offset++]; - if (v & 0x80) { - char c = bytes[offset++]; - v ^= 0x80; - *value = v * c; - } else { - *value = v; - } - return offset; -} - -- (id) initWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedUnarchiver class]]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - NSString *string = [keyed decodeObjectForKey: @"NSString"]; - id attributes = [keyed decodeObjectForKey: @"NSAttributes"]; - if (attributes == nil) { - return [self initWithString: string]; - } else if ([attributes isKindOfClass: [NSDictionary class]]) { - return [self initWithString: string attributes: attributes]; - } else { - // we've got an array to work through - NSMutableAttributedString *attrStr = - [[[NSMutableAttributedString alloc] initWithString: string] - autorelease]; - NSData *data = [keyed decodeObjectForKey: @"NSAttributeInfo"]; - NSArray *attributesArray = attributes; - NSUInteger offset = 0; - NSUInteger location = 0; - for (NSUInteger i = 0; i < [attributesArray count]; i++) { - NSUInteger length = 0; - NSUInteger index = 0; - // See note above on encoding and decoding - offset = decodeFromData(data, offset, &length); - offset = decodeFromData(data, offset, &index); - - NSDictionary *dict = [attributesArray objectAtIndex: index]; - NSRange range = NSMakeRange(location, length); - [attrStr addAttributes: dict range: range]; - location += length; - } - return [self initWithAttributedString: attrStr]; - } - } else { - NSUnimplementedMethod(); - } - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedArchiver class]]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - - [keyed encodeObject: [self string] forKey: @"NSString"]; - NSRange range; - NSDictionary *dict = [self attributesAtIndex: 0 effectiveRange: &range]; - if (dict == nil || range.length == [self length]) { - [keyed encodeObject: dict forKey: @"NSAttributes"]; - } else { - NSMutableArray *attributesArray = - [NSMutableArray arrayWithCapacity: 10]; - // we've got more than one set of attributes so we have to encode - // more data - NSUInteger count = NSCountRangeEntries(_rangeToAttributes); - NSMutableData *data = [NSMutableData dataWithCapacity: count * 4]; - NSRangeEnumerator enumerator = - NSRangeEntryEnumerator(_rangeToAttributes); - NSDictionary *attributes = nil; - int i = 0; - while (NSNextRangeEnumeratorEntry(&enumerator, &range, - (void **) &attributes)) { - [attributesArray addObject: attributes]; - // See note above on encoding and decoding - encodeIntoData(data, range.length); - encodeIntoData(data, i++); - } - [keyed encodeObject: attributesArray forKey: @"NSAttributes"]; - [keyed encodeObject: data forKey: @"NSAttributeInfo"]; - } - } else { - NSUnimplementedMethod(); - } -} - -- (void) dealloc { - [_string release]; - NSFreeRangeEntries(_rangeToAttributes); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSString *) string { - // This string is mutable - so be kind to unwary callers - return [[_string retain] autorelease]; -} - -- (NSDictionary *) attributesAtIndex: (NSUInteger) location - effectiveRange: (NSRange *) effectiveRangep -{ - NSDictionary *result; - - if (location >= [self length]) - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - - if ((result = NSRangeEntryAtIndex(_rangeToAttributes, location, - effectiveRangep)) == nil) - result = [NSDictionary dictionary]; - - if (effectiveRangep != NULL && effectiveRangep->length == NSNotFound) - effectiveRangep->length = [self length] - effectiveRangep->location; - - // The string could be being mutated so these attributes could disappear on - // an unwary caller - return [[result retain] autorelease]; -} - -- (void) replaceCharactersInRange: (NSRange) range - withString: (NSString *) string -{ - NSInteger delta = [string length] - range.length; - - [_string replaceCharactersInRange: range withString: string]; - NSRangeEntriesExpandAndWipe(_rangeToAttributes, range, delta); - if (NSCountRangeEntries(_rangeToAttributes) == 0) - NSRangeEntryInsert(_rangeToAttributes, NSMakeRange(0, [_string length]), - [NSDictionary dictionary]); - - NSRangeEntriesVerify(_rangeToAttributes, [self length]); -} - -- (void) setAttributes: (NSDictionary *) attributes range: (NSRange) range { - if (attributes == nil) - attributes = [NSDictionary dictionary]; - else - attributes = [[attributes copy] autorelease]; - - if ([_string length] == 0) { - NSResetRangeEntries(_rangeToAttributes); - NSRangeEntryInsert(_rangeToAttributes, range, attributes); - } else if (range.length > 0) { - NSRangeEntriesDivideAndConquer(_rangeToAttributes, range); - NSRangeEntryInsert(_rangeToAttributes, range, attributes); - } - - NSRangeEntriesVerify(_rangeToAttributes, [self length]); -} - -- (NSMutableString *) mutableString { - return [[[NSMutableString_proxyToMutableAttributedString - allocWithZone: NULL] initWithMutableAttributedString: self] - autorelease]; -} - -- (void) fixAttributesAfterEditingRange: (NSRange) range { -} - -@end diff --git a/Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.h b/Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.h deleted file mode 100644 index 20e10b8a..00000000 --- a/Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSMutableString_proxyToMutableAttributedString : NSMutableString { - NSMutableAttributedString *_attributedString; -} - -- initWithMutableAttributedString: - (NSMutableAttributedString *) attributedString; - -@end diff --git a/Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.m b/Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.m deleted file mode 100644 index 350b5b43..00000000 --- a/Foundation/NSAttributedString/NSMutableString_proxyToMutableAttributedString.m +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@implementation NSMutableString_proxyToMutableAttributedString - -- initWithMutableAttributedString: - (NSMutableAttributedString *) attributedString -{ - _attributedString = [attributedString retain]; - return self; -} - -- (void) dealloc { - [_attributedString release]; - [super dealloc]; -} - -- (NSUInteger) length { - return [_attributedString length]; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - return [[_attributedString string] characterAtIndex: location]; -} - -- (void) replaceCharactersInRange: (NSRange) range - withString: (NSString *) string -{ - [_attributedString replaceCharactersInRange: range withString: string]; -} - -@end diff --git a/Foundation/NSAttributedString/NSRangeEntries.h b/Foundation/NSAttributedString/NSRangeEntries.h deleted file mode 100644 index 66e03c9f..00000000 --- a/Foundation/NSAttributedString/NSRangeEntries.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -// an ordered, nonoverlapping set of NSRanges and related value -typedef struct NSRangeEntries NSRangeEntries; - -typedef struct { - NSRangeEntries *self; - NSUInteger index; -} NSRangeEnumerator; - -FOUNDATION_EXPORT NSRangeEntries * -NSCreateRangeToOwnedPointerEntries(NSUInteger capacity); -FOUNDATION_EXPORT NSRangeEntries * -NSCreateRangeToCopiedObjectEntries(NSUInteger capacity); - -FOUNDATION_EXPORT void NSFreeRangeEntries(NSRangeEntries *self); -FOUNDATION_EXPORT void NSResetRangeEntries(NSRangeEntries *self); -FOUNDATION_EXPORT NSUInteger NSCountRangeEntries(NSRangeEntries *self); -FOUNDATION_EXPORT void NSRangeEntriesRemoveEntryAtIndex(NSRangeEntries *self, - NSUInteger index); - -FOUNDATION_EXPORT void NSRangeEntryInsert(NSRangeEntries *self, NSRange range, - void *value); -FOUNDATION_EXPORT void *NSRangeEntryAtIndex(NSRangeEntries *self, - NSUInteger index, - NSRange *effectiveRange); -FOUNDATION_EXPORT void *NSRangeEntryAtRange(NSRangeEntries *self, - NSRange range); - -FOUNDATION_EXPORT NSRangeEnumerator -NSRangeEntryEnumerator(NSRangeEntries *self); -FOUNDATION_EXPORT BOOL NSNextRangeEnumeratorEntry(NSRangeEnumerator *state, - NSRange *rangep, - void **value); - -FOUNDATION_EXPORT void NSRangeEntriesExpandAndWipe(NSRangeEntries *self, - NSRange range, - NSInteger delta); -FOUNDATION_EXPORT void NSRangeEntriesDivideAndConquer(NSRangeEntries *self, - NSRange range); -FOUNDATION_EXPORT void NSRangeEntriesDump(NSRangeEntries *self); -FOUNDATION_EXPORT void NSRangeEntriesVerify(NSRangeEntries *self, - NSUInteger length); diff --git a/Foundation/NSAttributedString/NSRangeEntries.m b/Foundation/NSAttributedString/NSRangeEntries.m deleted file mode 100644 index b8532fc5..00000000 --- a/Foundation/NSAttributedString/NSRangeEntries.m +++ /dev/null @@ -1,447 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -/* this could be improved with more merging of adjacent entries after - * insert/remove */ - -typedef struct NSRangeEntry { - NSRange range; - void *value; -} NSRangeEntry; - -struct NSRangeEntries { - NSUInteger capacity; - NSUInteger count; - struct NSRangeEntry *entries; - BOOL objects; -}; - -NSRangeEntries *NSCreateRangeToOwnedPointerEntries(NSUInteger capacity) { - NSRangeEntries *result = NSZoneMalloc(NULL, sizeof(NSRangeEntries)); - - result->capacity = (capacity < 4) ? 4 : capacity; - result->count = 0; - result->entries = - NSZoneMalloc(NULL, sizeof(NSRangeEntry) * result->capacity); - result->objects = NO; - - return result; -} - -NSRangeEntries *NSCreateRangeToCopiedObjectEntries(NSUInteger capacity) { - NSRangeEntries *result = NSCreateRangeToOwnedPointerEntries(capacity); - - result->objects = YES; - - return result; -} - -void NSFreeRangeEntries(NSRangeEntries *self) { - if (self == NULL) { - return; - } - NSResetRangeEntries(self); - NSZoneFree(NULL, self->entries); - NSZoneFree(NULL, self); -} - -void NSResetRangeEntries(NSRangeEntries *self) { - NSInteger i; - - for (i = 0; i < self->count; i++) - if (self->objects) - [(id) self->entries[i].value release]; - else - NSZoneFree(NULL, self->entries[i].value); - - self->count = 0; -} - -NSUInteger NSCountRangeEntries(NSRangeEntries *self) { - return self->count; -} - -static inline void removeEntryAtIndex(NSRangeEntries *self, NSUInteger index) { - if (self->objects) - [(id) self->entries[index].value release]; - else - NSZoneFree(NULL, self->entries[index].value); - - self->count--; - for (; index < self->count; index++) - self->entries[index] = self->entries[index + 1]; -} - -static inline void insertEntryAtIndex(NSRangeEntries *self, NSUInteger index, - NSRange range, void *value) -{ - NSInteger i; - - self->count++; - if (self->count > self->capacity) { - self->capacity *= 2; - self->entries = NSZoneRealloc(NULL, self->entries, - sizeof(NSRangeEntry) * self->capacity); - } - - for (i = self->count; --i > index;) - self->entries[i] = self->entries[i - 1]; - - if (self->objects) - value = [(id) value copy]; - - self->entries[index].range = range; - self->entries[index].value = value; -} - -void NSRangeEntryInsert(NSRangeEntries *self, NSRange range, void *value) { - NSInteger count = self->count; - NSInteger bottom = 0, top = count; - NSInteger insertAt = 0; - - if (count > 0) { - while (top >= bottom) { - NSInteger mid = (bottom + top) / 2; - NSRange check = self->entries[mid].range; - - if (range.location >= NSMaxRange(check)) { - NSInteger next = mid + 1; - - if (next >= count || - NSMaxRange(range) <= self->entries[next].range.location) { - insertAt = next; - break; - } - bottom = mid + 1; - } else { - NSInteger prev = mid - 1; - - if (prev < 0 || - range.location >= NSMaxRange(self->entries[prev].range)) { - insertAt = mid; - break; - } - top = mid - 1; - } - } - } - BOOL merged = NO; - if (range.length == 0) { - // We'll just try to merge entries around the location - if (self->objects && insertAt > 0 && insertAt < self->count) { - id prev = self->entries[insertAt - 1].value; - id next = self->entries[insertAt].value; - if ([prev isEqual: next]) { - range = NSUnionRange(self->entries[insertAt].range, - self->entries[insertAt - 1].range); - self->entries[insertAt - 1].range = range; - removeEntryAtIndex(self, insertAt); - } - } - // We don't really want to insert a 0 length entry - return; - } else { - if (self->objects) { - if (insertAt > 0) { - // Check if we can just merge the new entry with the previous - // one - if (range.length == 0 || - [(id)(self->entries[insertAt - 1].value) isEqual: value]) { - range = NSUnionRange(self->entries[insertAt - 1].range, - range); - self->entries[insertAt - 1].range = range; - merged = YES; - } - } - if (insertAt < self->count) { - // Check if we can just merge the new entry with the next one - if (range.length == 0 || - [(id)(self->entries[insertAt].value) isEqual: value]) { - range = NSUnionRange(self->entries[insertAt].range, range); - if (merged) { - // We merged with both the previous entry and the next - // one - the next one isn't needed anymore so just merge - // it with the previous one - self->entries[insertAt - 1].range = range; - removeEntryAtIndex(self, insertAt); - } else { - self->entries[insertAt].range = range; - } - merged = YES; - ; - } - } - } - } - if (merged == NO) { - insertEntryAtIndex(self, insertAt, range, value); - } -} - -void *NSRangeEntryAtIndex(NSRangeEntries *self, NSUInteger location, - NSRange *effectiveRangep) -{ - NSInteger count = self->count; - NSInteger bottom = 0, top = count; - - if (top == 0) { - if (effectiveRangep != NULL) - *effectiveRangep = NSMakeRange(0, NSNotFound); - return NULL; - } - - while (top >= bottom) { - NSInteger mid = (bottom + top) / 2; - NSRange check = self->entries[mid].range; - - if (NSLocationInRange(location, check)) { - if (effectiveRangep != NULL) - *effectiveRangep = check; - return self->entries[mid].value; - } else if (location >= NSMaxRange(check)) { - NSInteger next = mid + 1; - - if (next >= count) { - if (effectiveRangep != NULL) { - effectiveRangep->location = NSMaxRange(check); - effectiveRangep->length = NSNotFound; - } - return NULL; - } else if (location < self->entries[next].range.location) { - if (effectiveRangep != NULL) { - effectiveRangep->location = NSMaxRange(check); - effectiveRangep->length = - self->entries[next].range.location - - NSMaxRange(check); - } - return NULL; - } - bottom = mid + 1; - } else { - NSInteger prev = mid - 1; - - if (prev < 0) { - if (effectiveRangep != NULL) { - effectiveRangep->location = 0; - effectiveRangep->length = check.location; - } - return NULL; - } else if (location >= NSMaxRange(self->entries[prev].range)) { - if (effectiveRangep != NULL) { - effectiveRangep->location = - NSMaxRange(self->entries[prev].range); - effectiveRangep->length = - check.location - effectiveRangep->location; - } - return NULL; - } - top = mid - 1; - } - } - - NSLog(@"not supposed to get here %d", __LINE__); - return NULL; -} - -void *NSRangeEntryAtRange(NSRangeEntries *self, NSRange range) { - NSInteger bottom = 0, top = self->count; - - if (top > 0) { - while (top >= bottom) { - NSInteger mid = (bottom + top) / 2; - NSRange check = self->entries[mid].range; - - if (NSEqualRanges(range, check)) - return self->entries[mid].value; - else if (range.location >= NSMaxRange(check)) - bottom = mid + 1; - else - top = mid - 1; - } - } - - return NULL; -} - -NSRangeEnumerator NSRangeEntryEnumerator(NSRangeEntries *self) { - NSRangeEnumerator result; - - result.self = self; - result.index = 0; - - return result; -} - -BOOL NSNextRangeEnumeratorEntry(NSRangeEnumerator *state, NSRange *rangep, - void **valuep) -{ - NSRangeEntries *self = state->self; - - if (state->index >= self->count) - return NO; - - *rangep = self->entries[state->index].range; - *valuep = self->entries[state->index].value; - state->index++; - - return YES; -} - -void NSRangeEntriesRemoveEntryAtIndex(NSRangeEntries *self, NSUInteger index) { - removeEntryAtIndex(self, index); -} - -void NSRangeEntriesExpandAndWipe(NSRangeEntries *self, NSRange range, - NSInteger delta) -{ - NSInteger count = self->count; - NSUInteger max = NSMaxRange(range); - enum { useBefore, useFirst, useAfter, useNone } useAttributes; - - // NSLog(@"expand wipe %d %d by %d",range.location,range.length,delta); - - if (range.length > 0) - useAttributes = useFirst; - else if (range.location > 0) - useAttributes = useBefore; - else - useAttributes = useAfter; - - while (--count >= 0) { - NSRange check = self->entries[count].range; - - if (check.location > max) - self->entries[count].range.location += delta; - else if (check.location == max) { - if (useAttributes == useAfter) - self->entries[count].range.length += delta; - else - self->entries[count].range.location += delta; - } else if (check.location > range.location) { - if (NSMaxRange(check) <= max) - removeEntryAtIndex(self, count); - else - self->entries[count].range = - NSMakeRange(max + delta, NSMaxRange(check) - max); - } else if (check.location == range.location) { - if (delta < 0 && -delta >= check.length) - removeEntryAtIndex(self, count); - else if (useAttributes == useFirst) { - self->entries[count].range.length = - MAX(max + delta, NSMaxRange(check) + delta) - - check.location; - useAttributes = useNone; - } - } else if (check.location < range.location) { - if (NSMaxRange(check) < range.location) - break; - if (NSMaxRange(check) >= max) - self->entries[count].range.length += delta; - else if (useAttributes == useBefore || useAttributes == useFirst) - self->entries[count].range.length = - (max + delta) - check.location; - else - self->entries[count].range.length = - range.location - check.location; - } - } -} - -void NSRangeEntriesDivideAndConquer(NSRangeEntries *self, NSRange range) { - NSInteger count = self->count; - NSUInteger max = NSMaxRange(range); - - while (--count >= 0) { - NSRange check = self->entries[count].range; - - if (check.location < max) { - NSUInteger maxCheck = NSMaxRange(check); - - if (check.location >= range.location) { - if (maxCheck <= max) { - // The entry is completely covered by the added range - it's - // not needed anymore - removeEntryAtIndex(self, count); - } else { - // Remove the part of the entry covered by the added range - self->entries[count].range.length = maxCheck - max; - self->entries[count].range.location = max; - } - } else if (maxCheck <= range.location) { - // The entry is completely before the new range - we're done - break; - } else { - // The end of the entry is covered by the added one - if (maxCheck > max) { - insertEntryAtIndex(self, count + 1, - NSMakeRange(max, maxCheck - max), - self->entries[count].value); - } - // Shorten the entry to make room for the added one - self->entries[count].range.length = - range.location - check.location; - } - } - } -} - -void NSRangeEntriesDump(NSRangeEntries *self) { - NSInteger i; - - NSLog(@"DUMP BEGIN"); - for (i = 0; i < self->count; i++) - NSLog(@"**** %d %d %p", self->entries[i].range.location, - self->entries[i].range.length, self->entries[i].value); - NSLog(@"DUMP END"); -} - -void NSRangeEntriesDumpAndAbort(NSRangeEntries *self) { - NSRangeEntriesDump(self); - __builtin_trap(); -} - -void NSRangeEntriesVerify(NSRangeEntries *self, NSUInteger length) { -#if 0 - NSUInteger last=0; - NSInteger i; - - for(i=0;icount;i++){ - NSRange range=self->entries[i].range; - - if(range.length==0 && length>0){ - NSLog(@"ZERO RANGE"); - NSRangeEntriesDumpAndAbort (self); - } - if(range.location!=last){ - NSLog(@"RANGE GAP"); - NSRangeEntriesDumpAndAbort (self); - } - last=NSMaxRange(range); - } - if(last!=length){ - NSLog(@"SHORT RANGES %d",length); - NSRangeEntriesDumpAndAbort (self); - } - if(self->count==0) - NSLog(@"EMPTY"); -#endif -} diff --git a/Foundation/NSAutoreleasePool/NSAutoreleasePool-private.h b/Foundation/NSAutoreleasePool/NSAutoreleasePool-private.h deleted file mode 100755 index 6e14e6e5..00000000 --- a/Foundation/NSAutoreleasePool/NSAutoreleasePool-private.h +++ /dev/null @@ -1,9 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -id NSAutorelease(id object); diff --git a/Foundation/NSAutoreleasePool/NSAutoreleasePool.h b/Foundation/NSAutoreleasePool/NSAutoreleasePool.h deleted file mode 100644 index 1f530dbf..00000000 --- a/Foundation/NSAutoreleasePool/NSAutoreleasePool.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSAutoreleasePool : NSObject { - struct objc_autoreleasepool *_pool; -} - -+ (void) addObject: object; - -- (void) addObject: object; - -- (void) drain; -@end diff --git a/Foundation/NSAutoreleasePool/NSAutoreleasePool.m b/Foundation/NSAutoreleasePool/NSAutoreleasePool.m deleted file mode 100644 index 5b90bcce..00000000 --- a/Foundation/NSAutoreleasePool/NSAutoreleasePool.m +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import - -#import - -@implementation NSAutoreleasePool - -+ (void) addObject: object { - objc_autorelease(object); -} - -- init { - _pool = objc_autoreleasePoolPush(); - return self; -} - -- (void) dealloc { - objc_autoreleasePoolPop(_pool); - - [super dealloc]; -} - -- (void) addObject: object { - objc_autoreleasePoolAdd(_pool, object); -} - -id NSAutorelease(id object) { - return objc_autorelease(object); -} - -- (void) drain { - [self release]; -} - -- retain { - [NSException raise: NSInvalidArgumentException - format: @"-[NSAutoreleasePool retain] not allowed"]; - return nil; -} - -@end diff --git a/Foundation/NSBlocks.m b/Foundation/NSBlocks.m deleted file mode 100644 index 0bab0fdd..00000000 --- a/Foundation/NSBlocks.m +++ /dev/null @@ -1,59 +0,0 @@ -#import -#include -#include -#import -#import - -/* Copyright (c) 2011 Tobias Platen - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -static void init_block_class(void *nsblock, char *class) { - memcpy(nsblock, objc_getClass(class), sizeof(struct objc_class)); - // TODO support objective_c garbage collection -} - -@interface NSBlock : NSObject -@end -@implementation NSBlock -- (void) invoke { - void (^blk)() = (void (^)()) self; - blk(); -} -- (id) copyWithZone: (NSZone *) zone { - return (id) _Block_copy(self); -} -- (void) release { - _Block_release(self); -} - -+ (void) load { - // object_setClass(self, (Class) &_NSConcreteStackBlock); - init_block_class((Class) &_NSConcreteStackBlock, "NSBlock"); - init_block_class((Class) &_NSConcreteMallocBlock, "NSBlock"); - init_block_class((Class) &_NSConcreteAutoBlock, "NSBlock"); - init_block_class((Class) &_NSConcreteFinalizingBlock, "NSBlock"); - init_block_class((Class) &_NSConcreteGlobalBlock, "NSBlock"); - init_block_class((Class) &_NSConcreteWeakBlockVariable, "NSBlock"); - // TODO support objective-c gc - [^() { - printf("cocotron blocks runtime selftest\n"); - } invoke]; -} -@end diff --git a/Foundation/NSBundle.h b/Foundation/NSBundle.h deleted file mode 100644 index c61b8dfd..00000000 --- a/Foundation/NSBundle.h +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSDictionary, NSString, NSError, NSMutableDictionary, NSURL; - -FOUNDATION_EXPORT NSString *const NSBundleDidLoadNotification; -FOUNDATION_EXPORT NSString *const NSLoadedClasses; - -@interface NSBundle : NSObject { - NSString *_path; - NSString *_resourcePath; - NSString *_pluginPath; - NSDictionary *_infoDictionary; - NSString *_executablePath; - NSArray *_lookInDirectories; - NSMutableDictionary *_localizedTables; - BOOL _isLoaded; -} - -+ (NSArray *) allBundles; -+ (NSArray *) allFrameworks; - -+ (NSBundle *) mainBundle; - -+ (NSBundle *) bundleForClass: (Class) aClass; -+ (NSBundle *) bundleWithIdentifier: (NSString *) identifier; -+ (NSBundle *) bundleWithPath: (NSString *) path; - -+ (NSString *) pathForResource: (NSString *) name - ofType: (NSString *) type - inDirectory: (NSString *) path; -+ (NSArray *) pathsForResourcesOfType: (NSString *) type - inDirectory: (NSString *) path; -+ (NSArray *) preferredLocalizationsFromArray: (NSArray *) localizations; -+ (NSArray *) preferredLocalizationsFromArray: (NSArray *) localizations - forPreferences: (NSArray *) preferences; - -- initWithPath: (NSString *) path; - -- (NSString *) bundlePath; -- (NSString *) resourcePath; -- (NSString *) builtInPlugInsPath; -- (NSDictionary *) infoDictionary; -- (NSDictionary *) localizedInfoDictionary; -- objectForInfoDictionaryKey: (NSString *) key; -- (NSString *) bundleIdentifier; -- (NSString *) developmentLocalization; -- (NSArray *) executableArchitectures; -- (NSString *) executablePath; -- (NSArray *) localizations; -- (NSArray *) preferredLocalizations; -- (NSString *) privateFrameworksPath; -- (NSString *) sharedFrameworksPath; -- (NSString *) sharedSupportPath; - -- (NSString *) pathForAuxiliaryExecutable: (NSString *) executable; - -- (Class) principalClass; -- (Class) classNamed: (NSString *) className; - -- (BOOL) isLoaded; -- (BOOL) preflightAndReturnError: (NSError **) error; - -- (BOOL) load; -- (BOOL) loadAndReturnError: (NSError **) error; -- (BOOL) unload; - -- (NSURL *) URLForResource: (NSString *) name withExtension: (NSString *) ext; -- (NSURL *) URLForResource: (NSString *) name - withExtension: (NSString *) ext - subdirectory: (NSString *) subpath; -- (NSURL *) URLForResource: (NSString *) name - withExtension: (NSString *) ext - subdirectory: (NSString *) subpath - localization: (NSString *) localizationName; - -- (NSString *) pathForResource: (NSString *) name ofType: (NSString *) type; -- (NSString *) pathForResource: (NSString *) name - ofType: (NSString *) type - inDirectory: (NSString *) path; -- (NSString *) pathForResource: (NSString *) name - ofType: (NSString *) type - inDirectory: (NSString *) path - forLocalization: (NSString *) localization; - -- (NSArray *) pathsForResourcesOfType: (NSString *) type - inDirectory: (NSString *) path; -- (NSArray *) pathsForResourcesOfType: (NSString *) type - inDirectory: (NSString *) path - forLocalization: (NSString *) localization; - -- (NSString *) localizedStringForKey: (NSString *) key - value: (NSString *) value - table: (NSString *) table; - -@end - -FOUNDATION_EXPORT NSString *NSLocalizedString(NSString *key, NSString *comment); -FOUNDATION_EXPORT NSString * -NSLocalizedStringFromTable(NSString *key, NSString *table, NSString *comment); -FOUNDATION_EXPORT NSString * -NSLocalizedStringFromTableInBundle(NSString *key, NSString *table, - NSBundle *bundle, NSString *comment); diff --git a/Foundation/NSBundle.m b/Foundation/NSBundle.m deleted file mode 100644 index ac00d72b..00000000 --- a/Foundation/NSBundle.m +++ /dev/null @@ -1,1101 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - 2009 Markus Hitter (mah@jump-ing.de) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#if defined(__APPLE__) -#import "OBJCRegisterModule_Darwin.h" -#endif - -#import -#include - -typedef void *NSModuleHandle; - -OBJC_EXPORT NSModuleHandle NSLoadModule(const char *path, NSError **error); -OBJC_EXPORT BOOL NSUnloadModule(NSModuleHandle handle); -OBJC_EXPORT const char *NSLastModuleError(void); -OBJC_EXPORT void *NSSymbolInModule(NSModuleHandle handle, const char *symbol); - -#ifdef WIN32 -#include -#else -#include -#include -#include -#include -#include -#endif - -#import - -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - -#if defined(LINUX) - -#include - -static inline unsigned int processMaps(char *maps, const char **soNames) { - unsigned int count = 0; - char *cur = maps; - char *eod = maps + strlen(maps); - char *lastName = NULL; - size_t lastNameLength = 0; - do { - char *eol = strchr(cur, '\n'); - if (!eol) { - eol = eod; - } - *eol = 0; - char *name = strrchr(cur, ' '); - if (name) { - name++; - } else { - name = cur; - } - int nameLength = eol - name; - if (name && nameLength > 2 && - (strcmp(eol - 3, ".so") == 0 || strstr(name, ".so.")) && - (lastName == NULL || lastNameLength != nameLength || - strncmp(lastName, name, lastNameLength) != 0)) { - lastName = name; - lastNameLength = nameLength; - if (soNames) { - soNames[count] = name; - } - count++; - } - if (!soNames) { - *eol = '\n'; - } - cur = eol + 1; - } while (cur < eod); - return count; -} - -static const char **objc_copyImageNames(unsigned int *count) { - *count = 0; - FILE *f = fopen("/proc/self/maps", "r"); - if (f) { -#define SLICE_LENGTH 0xFFFE - long length = 0; - long pos = 0; - long lastSlice = 0; - char *maps = NULL; - - do { - pos = length; - length += SLICE_LENGTH; - maps = realloc(maps, length + 1); - } while ((lastSlice = fread(maps + pos, 1, SLICE_LENGTH, f)) == - SLICE_LENGTH); - maps[pos + lastSlice] = 0; - fclose(f); - - *count = processMaps(maps, NULL); - if (*count > 0) { - int namesSize = (*count + 1) * sizeof(char *); - void *mem = calloc(1, namesSize + length + 1); - const char **names = mem; - char *newMaps = mem + namesSize; - memcpy(newMaps, maps, length + 1); - if (names != NULL) { - processMaps(newMaps, names); - return names; - } else { - *count = 0; - } - } - free(maps); - } - return NULL; -} - -#endif // LINUX -#endif // GCC_RUNTIME_3 || APPLE_RUNTIME_4 - -#ifdef WIN32 - -static char *lastErrorString(DWORD error) { - LPVOID lpMsgBuf; - - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, error, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - (LPTSTR) &lpMsgBuf, 0, NULL); - - return lpMsgBuf; -} - -void OBJCRaiseWin32Failure(const char *name, const char *format, ...) { - DWORD lastError = GetLastError(); - va_list arguments; - - va_start(arguments, format); - - fprintf(stderr, "ObjC:Win32:%ld,%s:", lastError, name); - vfprintf(stderr, format, arguments); - fprintf(stderr, "...\n"); - fflush(stderr); - - fprintf(stderr, "ObjC:Win32: ... %s\n", lastErrorString(lastError)); - fflush(stderr); - va_end(arguments); -} - -// only frameworks need to call this from DllMain, NSLoadModule will do it for -// loaded object files (i.e. bundles) -int OBJCRegisterDLL(HINSTANCE handle) { - int i, bufferCapacity = 32767; - uint16_t buffer[bufferCapacity + 1]; - DWORD bufferSize = GetModuleFileNameW(handle, buffer, bufferCapacity); - - if (bufferSize == 0) { - OBJCRaiseWin32Failure("OBJCModuleFailed", - "OBJCInitializeModule, GetModuleFileName failed"); - return 1; - } - - for (i = 0; i < bufferSize; i++) - if (buffer[i] == '\\') - buffer[i] = '/'; - - int size = WideCharToMultiByte(CP_UTF8, 0, buffer, bufferSize, NULL, 0, - NULL, NULL); - char path[size + 1]; - - size = WideCharToMultiByte(CP_UTF8, 0, buffer, bufferSize, path, size, NULL, - NULL); - path[size] = '\0'; - - OBJCLinkQueuedModulesToObjectFileWithPath(path); - - return 1; -} - -NSModuleHandle NSLoadModule(const char *path, NSError **error) { - NSModuleHandle handle; - - OBJCResetModuleQueue(); - - handle = LoadLibrary(path); - - if (handle != NULL) { - OBJCRegisterDLL(handle); - } else { - if (error != NULL) { - *error = [NSError errorWithDomain: NSWin32ErrorDomain - code: GetLastError() - userInfo: nil]; - } - } - - return handle; -} -#else - -NSModuleHandle NSLoadModule(const char *path, NSError **error) { - NSModuleHandle handle; - - // dlopen doesn't accept partial paths. - if (path[0] != '/' && path[0] != '.') { - char buf[MAXPATHLEN]; - - if (getcwd(buf, MAXPATHLEN) != NULL) { - if (strlen(buf) < MAXPATHLEN - (1 + strlen(path))) { - strncat(buf, "/", 1); - strncat(buf, path, MAXPATHLEN - (1 + strlen(buf))); - path = buf; - } else { - NSCLog("NSLoadModule: resulting path '%s/%s' exceeds " - "MAXPATHLEN (%d)", - buf, path, MAXPATHLEN); - return NULL; - } - } else { - if (error != NULL) { - *error = [NSError - errorWithDomain: NSPOSIXErrorDomain - code: 0 - userInfo: - [NSDictionary - dictionaryWithObject: - @"NSLoadModule: cannot " - @"find cwd and " - @"relative path " - @"specified" - forKey: NSLocalizedDescriptionKey]]; - } - return NULL; - } - } - - handle = dlopen(path, RTLD_NOW | RTLD_GLOBAL); - if (handle == NULL) { - if (error != NULL) { - *error = [NSError - errorWithDomain: NSPOSIXErrorDomain - code: 0 - userInfo: - [NSDictionary - dictionaryWithObject: - [NSString - stringWithFormat: - @"%s", - NSLastModuleError()] - forKey: NSLocalizedDescriptionKey]]; - } - } - -#ifdef __APPLE__ - OBJCRegisterModule_Darwin(path); -#endif - - return handle; -} -#endif - -BOOL NSUnloadModule(NSModuleHandle handle) { -#ifdef WIN32 - return NO; -#else - if (dlclose(handle)) - return NO; - - return YES; -#endif -} - -const char *NSLastModuleError(void) { -#ifdef WIN32 - return NULL; -#else - return dlerror(); -#endif -} - -void *NSSymbolInModule(NSModuleHandle handle, const char *symbol) { -#ifdef WIN32 - return NULL; -#else - return dlsym(handle, symbol); -#endif -} - -NSString *const NSBundleDidLoadNotification = @"NSBundleDidLoadNotification"; -NSString *const NSLoadedClasses = @"NSLoadedClasses"; - -@implementation NSBundle - -static NSMutableArray *_allBundles = nil; -static NSMutableArray *_allFrameworks = nil; - -static NSBundle *mainBundle = nil; -static NSMapTable *nameToBundle = NULL; -static NSMapTable *pathToObject = NULL; - -- (void) _setLoaded: (BOOL) loaded { - _isLoaded = loaded; -} - -/* - Executables support: - MyProgram.app/Contents//MyProgram[.exe] - or - MyProgram[.exe] - MyProgram.app/Contents/ - or - MyProgram.app/MyProgram[.exe] - [MyProgram.app/Resources] - - */ -+ (NSString *) bundlePathFromModulePath: (NSString *) path { - path = [path stringByStandardizingPath]; - - NSString *result = nil; - NSString *directory = [path stringByDeletingLastPathComponent]; - NSString *extension = [[path pathExtension] lowercaseString]; - NSString *name = [[path lastPathComponent] stringByDeletingPathExtension]; - NSRange version = [name rangeOfString: @"."]; - - if (version.location != NSNotFound) { - name = [name substringToIndex: version.location]; - } - - if (![extension isEqualToString: NSPlatformLoadableObjectFileExtension]) { - // Support for MyProgram.app/MyProgram[.exe] - if ([[directory lastPathComponent] - isEqualToString: [NSString stringWithFormat: @"%@.app", - name]] == - YES) { - return directory; - } else { - NSString *check = [[directory stringByAppendingPathComponent: name] - stringByAppendingPathExtension: @"app"]; - - if ([[NSFileManager defaultManager] fileExistsAtPath: check]) { - result = check; - } else { - result = [[directory stringByDeletingLastPathComponent] - stringByDeletingLastPathComponent]; - } - } - } else { - NSString *loadablePrefix = NSPlatformLoadableObjectFilePrefix; - NSString *check; - - if ([loadablePrefix length] > 0 && [name hasPrefix: loadablePrefix]) { - name = [name substringFromIndex: [loadablePrefix length]]; - } - - if ([[directory lastPathComponent] - isEqualToString: [NSString stringWithFormat: @"%@.bundle", - name]] == - YES) { - return directory; - } else { - check = [[directory stringByAppendingPathComponent: name] - stringByAppendingPathExtension: @"framework"]; - - if ([[NSFileManager defaultManager] fileExistsAtPath: check]) { - result = check; - } else { - check = [[[directory stringByDeletingLastPathComponent] - stringByAppendingPathComponent: @"Frameworks"] - stringByAppendingPathComponent: - [name stringByAppendingPathExtension: - @"framework"]]; - if ([[NSFileManager defaultManager] fileExistsAtPath: check]) { - result = check; - } else { - result = [[directory stringByDeletingLastPathComponent] - stringByDeletingLastPathComponent]; - } - } - } - } - return result; -} - -+ (NSBundle *) bundleWithModulePath: (NSString *) path { - NSBundle *result; - - path = [self bundlePathFromModulePath: path]; - - result = [NSBundle bundleWithPath: path]; - - [result _setLoaded: YES]; - - return result; -} - -+ (void) registerFrameworks { - unsigned i, count; - const char **array = objc_copyImageNames(&count); - - for (i = 0; i < count; i++) { - NSString *path = [NSString stringWithUTF8String: array[i]]; - NSBundle *bundle = [NSBundle bundleWithModulePath: path]; - - [_allFrameworks addObject: bundle]; - } - free(array); -} - -+ (void) initialize { - if (self == [NSBundle class]) { - const char *module = getenv("CFProcessPath"); - if (!module) { -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - ssize_t bufSize = MAXPATHLEN; - char *executablePath = alloca(bufSize + 1); - if (_NSGetExecutablePath(executablePath, &bufSize) < 0) { - executablePath = alloca(bufSize + 1); - _NSGetExecutablePath(executablePath, &bufSize); - } - executablePath[bufSize] = 0; - module = executablePath; -#else - module = objc_mainImageName(); -#endif - } - NSString *path = [NSString stringWithUTF8String: module]; - - if (module == NULL) { - NSCLog("+[NSBundle initialize]: module path for process is NULL"); - } - - _allBundles = [NSMutableArray new]; - _allFrameworks = [NSMutableArray new]; - pathToObject = NSCreateMapTable(NSObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, 0); - nameToBundle = NSCreateMapTable(NSObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, 0); - - mainBundle = [NSBundle bundleWithModulePath: path]; - - [self registerFrameworks]; - } -} - -+ (NSArray *) allBundles { - return _allBundles; -} - -+ (NSArray *) allFrameworks { - return _allFrameworks; -} - -+ (NSBundle *) mainBundle { - return mainBundle; -} - -+ (NSBundle *) bundleForClass: (Class) class { - NSBundle *bundle = NSMapGet(nameToBundle, NSStringFromClass(class)); - - if (bundle == nil) { -#ifdef GCC_RUNTIME_3 - const char *module = NULL; - Dl_info info; - if (dladdr(class, &info)) { - module = info.dli_fname; - } -#else - const char *module = class_getImageName(class); -#endif - - if (module == NULL) { - return [self mainBundle]; // this is correct behaviour for Nil class - } else { - NSString *path = [NSString stringWithUTF8String: module]; - - bundle = [NSBundle bundleWithModulePath: path]; - NSMapInsert(nameToBundle, NSStringFromClass(class), bundle); - } - } - - return bundle; -} - -+ (NSBundle *) bundleWithIdentifier: (NSString *) identifier { - NSUnimplementedMethod(); - return 0; -} - -- initWithPath: (NSString *) path { - NSBundle *realBundle = NSMapGet(pathToObject, path); - - if (realBundle != nil) { - [self dealloc]; - return [realBundle retain]; - } - - _path = [[path stringByStandardizingPath] retain]; - _resourcePath = [_path stringByAppendingPathComponent: @"Resources"]; - if (![[NSFileManager defaultManager] fileExistsAtPath: _resourcePath]) { - _resourcePath = [[_path stringByAppendingPathComponent: @"Contents"] - stringByAppendingPathComponent: @"Resources"]; - } - [_resourcePath retain]; - - _pluginPath = [_path stringByAppendingPathComponent: @"PlugIns"]; - if (![[NSFileManager defaultManager] fileExistsAtPath: _pluginPath]) { - _pluginPath = [[_path stringByAppendingPathComponent: @"Contents"] - stringByAppendingPathComponent: @"PlugIns"]; - } - [_pluginPath retain]; - - _infoDictionary = nil; - _localizedTables = nil; - _isLoaded = NO; - - NSMapInsert(pathToObject, path, self); -#ifndef WIN32 - // Need to verify this on Win32 - [_allBundles addObject: self]; -#endif - return self; -} - -- (void) dealloc { - [_path release]; - [_resourcePath release]; - [_pluginPath release]; - [_infoDictionary release]; - [_localizedTables release]; - [super dealloc]; -} - -+ (NSBundle *) bundleWithPath: (NSString *) path { - return [[[self allocWithZone: NULL] initWithPath: path] autorelease]; -} - -+ (NSString *) pathForResource: (NSString *) name - ofType: (NSString *) type - inDirectory: (NSString *) path -{ - return [[NSBundle bundleWithPath: path] pathForResource: name ofType: type]; -} -+ (NSArray *) pathsForResourcesOfType: (NSString *) type - inDirectory: (NSString *) path -{ - return [[NSBundle bundleWithPath: path] pathsForResourcesOfType: type - inDirectory: nil]; -} -+ (NSArray *) preferredLocalizationsFromArray: (NSArray *) localizations { - NSUnimplementedMethod(); - return 0; -} -+ (NSArray *) preferredLocalizationsFromArray: (NSArray *) localizations - forPreferences: (NSArray *) preferences -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) bundlePath { - return _path; -} - -- (NSString *) resourcePath { - return _resourcePath; -} - -- (NSString *) builtInPlugInsPath { - return _pluginPath; -} - -- (NSDictionary *) infoDictionary { - if (_infoDictionary == nil) { - - NSString *path = [[[_path stringByAppendingPathComponent: @"Contents"] - stringByAppendingPathComponent: @"Info"] - stringByAppendingPathExtension: @"plist"]; - - if (![[NSFileManager defaultManager] fileExistsAtPath: path]) - path = nil; - - if (path == nil) - path = [self pathForResource: @"Info" - ofType: @"plist" - inDirectory: @"Resources"]; - - if (![[NSFileManager defaultManager] fileExistsAtPath: path]) - path = [[_path stringByAppendingPathComponent: @"Info"] - stringByAppendingPathExtension: @"plist"]; - - _infoDictionary = [[NSDictionary allocWithZone: NULL] - initWithContentsOfFile: path]; - - if (_infoDictionary == nil) - _infoDictionary = [NSDictionary new]; - } - - return _infoDictionary; -} - -- (NSDictionary *) localizedInfoDictionary { - // FIXME: implement, dont uncomment NSUnimplementedMethod. - // NSUnimplementedMethod(); - return [self infoDictionary]; -} - -- objectForInfoDictionaryKey: (NSString *) key { - return [[self infoDictionary] objectForKey: key]; -} - -- (NSString *) bundleIdentifier { - return [[self infoDictionary] objectForKey: @"CFBundleIdentifier"]; -} - -- (NSString *) developmentLocalization { - NSUnimplementedMethod(); - return 0; -} -- (NSArray *) executableArchitectures { - NSUnimplementedMethod(); - return 0; -} - -- (NSArray *) localizations { - NSUnimplementedMethod(); - return 0; -} -- (NSArray *) preferredLocalizations { - NSUnimplementedMethod(); - return 0; -} -- (NSString *) privateFrameworksPath { - NSUnimplementedMethod(); - return 0; -} -- (NSString *) sharedFrameworksPath { - NSUnimplementedMethod(); - return 0; -} -- (NSString *) sharedSupportPath { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) pathForAuxiliaryExecutable: (NSString *) executable { - NSFileManager *fm = [NSFileManager defaultManager]; - NSString *path = [[self executablePath] stringByDeletingLastPathComponent]; - - path = [path stringByAppendingPathComponent: executable]; - if ([fm isExecutableFileAtPath: path]) - return path; - - // Try to enhance compatibility with Unix-ish code. - if ([NSPlatformExecutableFileExtension length]) { - path = [path stringByAppendingPathExtension: - NSPlatformExecutableFileExtension]; - if ([fm isExecutableFileAtPath: path]) - return path; - } - - return nil; -} - -- (Class) principalClass { - NSString *name = [[self infoDictionary] objectForKey: @"NSPrincipalClass"]; - - [self load]; - - return (name == nil) ? Nil : NSClassFromString(name); -} - -- (Class) classNamed: (NSString *) className { - [self load]; - - return NSClassFromString(className); -} - -- (BOOL) isLoaded { - return _isLoaded; -} -- (BOOL) preflightAndReturnError: (NSError **) error { - NSUnimplementedMethod(); - return 0; -} - -/* - Frameworks are organized as: - Executables/ - Frameworks/MyFramework.framework/ - Bundles are organized like OS X with Contents/ - */ - -- (NSString *) _findExecutable { - NSString *type = [_path pathExtension]; - NSString *name = [[[self infoDictionary] - objectForKey: @"CFBundleExecutable"] stringByDeletingPathExtension]; - NSString *checkDir; - NSArray *contents; - NSInteger i, count; - - if (name == nil) - name = [[_path lastPathComponent] stringByDeletingPathExtension]; - - if ([type isEqualToString: @"framework"]) - checkDir = [[[_path stringByDeletingLastPathComponent] - stringByDeletingLastPathComponent] - stringByAppendingPathComponent: @"Executables"]; - else - checkDir = [[_path stringByAppendingPathComponent: @"Contents"] - stringByAppendingPathComponent: NSPlatformExecutableDirectory]; - - contents = - [[NSFileManager defaultManager] directoryContentsAtPath: checkDir]; - count = [contents count]; - - // Need to check for * versioning - for (i = 0; i < count; i++) { - NSString *check = [contents objectAtIndex: i]; - - if ([check hasPrefix: name]) { - NSString *ext = [check pathExtension]; - - if ([ext isEqualToString: NSPlatformLoadableObjectFileExtension] || - [ext isEqualToString: NSPlatformExecutableFileExtension]) - return [checkDir stringByAppendingPathComponent: check]; - } - } - if ([type isEqualToString: @"app"] == YES) { - return [[_path stringByAppendingPathComponent: name] - stringByAppendingPathExtension: - NSPlatformExecutableFileExtension]; - } else { - return [[_path stringByAppendingPathComponent: name] - stringByAppendingPathExtension: - NSPlatformLoadableObjectFileExtension]; - } -} - -- (NSString *) executablePath { - if (!_executablePath) { - _executablePath = [[self _findExecutable] retain]; - } - return _executablePath; -} - -- (BOOL) load { - NSError *error = nil; - BOOL result = [self loadAndReturnError: &error]; - - if (result == NO) { - NSLog(@"load of %@ FAILED [%@]", [self executablePath], - [error localizedDescription]); - } - - return result; -} - -- (BOOL) loadAndReturnError: (NSError **) error { - if (!_isLoaded) { - NSString *load = [self executablePath]; - - if (NSLoadModule([load fileSystemRepresentation], error) == NULL) { - return NO; - } - } - _isLoaded = YES; - return YES; -} - -- (BOOL) unload { - NSUnimplementedMethod(); - return 0; -} - -- (NSArray *) lookInDirectories { - - if (_lookInDirectories == nil) { - NSLocale *cl = [NSLocale currentLocale]; - NSFileManager *fm = [NSFileManager defaultManager]; - NSMutableArray *validDirectories = [NSMutableArray array]; - - BOOL isDirectory = NO; - if (_resourcePath && - [fm fileExistsAtPath: _resourcePath isDirectory: &isDirectory] && - isDirectory) { - // Check if there's an override on the language preference. - NSString *localeid = nil; - NSString *language = nil; - NSString *longlang = nil; - - // NSUserDefaults uses the NSBundle system during initialization so - // to avoid a recursion of doom we'll only check the preferred - // language once the defaults are available. - if ([NSUserDefaults standardUserDefaultsAvailable]) - language = [[NSUserDefaults standardUserDefaults] - objectForKey: @"PreferredLanguage"]; - - if (language == nil || [language isEqualToString: @""]) { - // FIXME: This should be based on language preference order, and - // tested for presence in bundle before adding - localeid = [[cl objectForKey: NSLocaleIdentifier] - stringByAppendingPathExtension: @"lproj"]; - language = [cl objectForKey: NSLocaleLanguageCode]; - if ([language isEqualToString: @"de"]) - longlang = @"German.lproj"; - else if ([language isEqualToString: @"fr"]) - longlang = @"French.lproj"; - else if ([language isEqualToString: @"jp"]) - longlang = @"Japanese.lproj"; - // anything else, including 'en', would default to en.lproj or - // English.lproj anyway. - } - - NSArray *lookInDirectories = nil; - if (localeid) - if (longlang) - lookInDirectories = [NSArray - arrayWithObjects: - localeid, - [language stringByAppendingPathExtension: - @"lproj"], - longlang, @"en.lproj", @"English.lproj", - @"", nil]; - else - lookInDirectories = [NSArray - arrayWithObjects: - localeid, - [language stringByAppendingPathExtension: - @"lproj"], - @"en.lproj", @"English.lproj", @"", nil]; - else if ([language isEqualToString: @"English"]) - lookInDirectories = - [NSArray arrayWithObjects: @"English.lproj", - @"en.lproj", @"", nil]; - else - lookInDirectories = [NSArray - arrayWithObjects: - [language stringByAppendingPathExtension: - @"lproj"], - @"en.lproj", @"English.lproj", @"", nil]; - - for (NSString *proj in lookInDirectories) { - NSString *path = - [_resourcePath stringByAppendingPathComponent: proj]; - BOOL isDirectory = NO; - if ([fm fileExistsAtPath: path isDirectory: &isDirectory] && - isDirectory) { - [validDirectories addObject: proj]; - } - } - - if ([NSUserDefaults standardUserDefaultsAvailable] == YES) { - // Now it's safe to cache - _lookInDirectories = [validDirectories retain]; - } - } - return validDirectories; - } else { - return _lookInDirectories; - } -} - -- (NSURL *) URLForResource: (NSString *) name withExtension: (NSString *) ext { - NSString *path = [self pathForResource: name ofType: ext inDirectory: nil]; - - // attention: fileURLWithPath returns a non-nil object for nil input, we - // don't want that - return path ? [NSURL fileURLWithPath: path] : nil; -} - -- (NSURL *) URLForResource: (NSString *) name - withExtension: (NSString *) ext - subdirectory: (NSString *) subpath -{ - NSString *path = [self pathForResource: name - ofType: ext - inDirectory: subpath]; - return [NSURL fileURLWithPath: path]; -} - -- (NSURL *) URLForResource: (NSString *) name - withExtension: (NSString *) ext - subdirectory: (NSString *) subpath - localization: (NSString *) localizationName -{ - NSString *path = [self pathForResource: name - ofType: ext - inDirectory: subpath - forLocalization: localizationName]; - return [NSURL fileURLWithPath: path]; -} - -- (NSString *) pathForResourceFile: (NSString *) file - inDirectory: (NSString *) directory -{ - NSArray *lookIn = [self lookInDirectories]; - NSInteger i, count = [lookIn count]; - - for (i = 0; i < count; i++) { - NSString *path = [_resourcePath - stringByAppendingPathComponent: [lookIn objectAtIndex: i]]; - if (directory != nil) - path = [path stringByAppendingPathComponent: directory]; - - path = [path stringByAppendingPathComponent: file]; - - BOOL value = [[NSFileManager defaultManager] fileExistsAtPath: path]; - - if (value) { - return path; - } - } - - return nil; -} - -- (NSString *) pathForResource: (NSString *) name - ofType: (NSString *) type - inDirectory: (NSString *) directory -{ - NSString *file, *path; - - if ([type length] && [[name pathExtension] isEqualToString: type]) { - // Kill the type form the extension part if it's already there - name = [name stringByDeletingPathExtension]; - } - -#if 0 // Disabled - we don't use that and it's increasing the number of files to \ - // check for the resource - if(type && [type length]!=0) - file=[[name stringByAppendingFormat:@"-%@",NSPlatformResourceNameSuffix] stringByAppendingPathExtension:type]; - else - file=[name stringByAppendingFormat:@"-%@",NSPlatformResourceNameSuffix]; - - if((path=[self pathForResourceFile:file inDirectory:directory])!=nil) - return path; -#endif - - if (type && [type length] != 0) - file = [name stringByAppendingPathExtension: type]; - else - file = name; - - path = [self pathForResourceFile: file inDirectory: directory]; - - return path; -} - -- (NSString *) pathForResource: (NSString *) name - ofType: (NSString *) type - inDirectory: (NSString *) path - forLocalization: (NSString *) localization -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) pathForResource: (NSString *) name ofType: (NSString *) type { - NSString *result = [self pathForResource: name - ofType: type - inDirectory: nil]; - - return result; -} - -- (NSArray *) pathsForResourcesOfType: (NSString *) type - inDirectory: (NSString *) path -{ - NSMutableArray *result = [NSMutableArray array]; - NSString *fullPath = [self resourcePath]; - - if (path != nil) - fullPath = [fullPath stringByAppendingPathComponent: path]; - - NSArray *allFiles = - [[NSFileManager defaultManager] directoryContentsAtPath: fullPath]; - NSInteger i, count = [allFiles count]; - - for (i = 0; i < count; i++) { - NSString *check = [allFiles objectAtIndex: i]; - - if ([type length] == 0 || [[check pathExtension] isEqualToString: type]) - [result addObject: [fullPath - stringByAppendingPathComponent: check]]; - } - - return result; -} - -- (NSArray *) pathsForResourcesOfType: (NSString *) type - inDirectory: (NSString *) path - forLocalization: (NSString *) localization -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) localizedStringForKey: (NSString *) key - value: (NSString *) value - table: (NSString *) table -{ - NSString *result; - NSDictionary *dictionary; - - if ([table length] == 0) - table = @"Localizable"; - - // NSLocalizedString needs to be thread safe. - - @synchronized(self) { - dictionary = [_localizedTables objectForKey: table]; - - if (dictionary == nil) { - NSString *path; - NSString *contents = nil; - - if (_localizedTables == nil) - _localizedTables = [[NSMutableDictionary alloc] init]; - - if ((path = [self pathForResource: table - ofType: @"strings"]) != nil) - if ((contents = [NSString stringWithContentsOfFile: path]) != - nil) { - NS_DURING - dictionary = [contents propertyListFromStringsFileFormat]; - NS_HANDLER - dictionary = nil; - NS_ENDHANDLER - } - - if (dictionary == nil) - dictionary = [NSDictionary dictionary]; - - [_localizedTables setObject: dictionary forKey: table]; - } - } - - if ((result = [dictionary objectForKey: key]) == nil) - result = (value != nil && [value isEqual: @""] == NO) ? value : key; - - return result; -} - -- (NSString *) description { - return [NSString - stringWithFormat: - @"<%@[0x%lx] path: %@ resourcePath: %@ isLoaded: %@>", - [self class], self, _path, _resourcePath, - (_isLoaded ? @"YES" : @"NO")]; -} - -@end - -NSString *NSLocalizedString(NSString *key, NSString *comment) { - return [[NSBundle mainBundle] localizedStringForKey: key - value: nil - table: nil]; -} - -NSString *NSLocalizedStringFromTable(NSString *key, NSString *table, - NSString *comment) -{ - return [[NSBundle mainBundle] localizedStringForKey: key - value: nil - table: table]; -} - -NSString *NSLocalizedStringFromTableInBundle(NSString *key, NSString *table, - NSBundle *bundle, - NSString *comment) -{ - return [bundle localizedStringForKey: key value: nil table: table]; -} diff --git a/Foundation/NSByteOrder.h b/Foundation/NSByteOrder.h deleted file mode 100644 index 0d2f87e9..00000000 --- a/Foundation/NSByteOrder.h +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef enum { NS_UnknownByteOrder, NS_LittleEndian, NS_BigEndian } NSByteOrder; - -typedef struct { - uint32_t floatWord; -} NSSwappedFloat; - -typedef struct { - uint64_t doubleWord; -} NSSwappedDouble; - -FOUNDATION_EXPORT NSByteOrder NSHostByteOrder(void); - -FOUNDATION_EXPORT unsigned short NSSwapHostShortToLittle(unsigned short value); -FOUNDATION_EXPORT unsigned short NSSwapLittleShortToHost(unsigned short value); -FOUNDATION_EXPORT unsigned int NSSwapHostIntToLittle(unsigned int value); -FOUNDATION_EXPORT unsigned int NSSwapLittleIntToHost(unsigned int value); -FOUNDATION_EXPORT unsigned long NSSwapHostLongToLittle(unsigned long value); -FOUNDATION_EXPORT unsigned long NSSwapLittleLongToHost(unsigned long value); -FOUNDATION_EXPORT unsigned long long -NSSwapHostLongLongToLittle(unsigned long long value); -FOUNDATION_EXPORT unsigned long long -NSSwapLittleLongLongToHost(unsigned long long value); -FOUNDATION_EXPORT NSSwappedFloat NSSwapHostFloatToLittle(float value); -FOUNDATION_EXPORT float NSSwapLittleFloatToHost(NSSwappedFloat value); -FOUNDATION_EXPORT NSSwappedDouble NSSwapHostDoubleToLittle(double value); -FOUNDATION_EXPORT double NSSwapLittleDoubleToHost(NSSwappedDouble value); - -FOUNDATION_EXPORT unsigned short NSSwapHostShortToBig(unsigned short value); -FOUNDATION_EXPORT unsigned short NSSwapBigShortToHost(unsigned short value); -FOUNDATION_EXPORT unsigned int NSSwapHostIntToBig(unsigned int value); -FOUNDATION_EXPORT unsigned int NSSwapBigIntToHost(unsigned int value); -FOUNDATION_EXPORT unsigned long NSSwapHostLongToBig(unsigned long value); -FOUNDATION_EXPORT unsigned long NSSwapBigLongToHost(unsigned long value); -FOUNDATION_EXPORT unsigned long long -NSSwapHostLongLongToBig(unsigned long long value); -FOUNDATION_EXPORT unsigned long long -NSSwapBigLongLongToHost(unsigned long long value); -FOUNDATION_EXPORT NSSwappedFloat NSSwapHostFloatToBig(float value); -FOUNDATION_EXPORT float NSSwapBigFloatToHost(NSSwappedFloat value); -FOUNDATION_EXPORT NSSwappedDouble NSSwapHostDoubleToBig(double value); -FOUNDATION_EXPORT double NSSwapBigDoubleToHost(NSSwappedDouble value); - -FOUNDATION_EXPORT unsigned short NSSwapShort(unsigned short value); -FOUNDATION_EXPORT unsigned int NSSwapInt(unsigned int value); -FOUNDATION_EXPORT unsigned long NSSwapLong(unsigned long value); -FOUNDATION_EXPORT unsigned long long NSSwapLongLong(unsigned long long valueX); -FOUNDATION_EXPORT NSSwappedFloat NSSwapFloat(NSSwappedFloat value); -FOUNDATION_EXPORT NSSwappedDouble NSSwapDouble(NSSwappedDouble value); - -FOUNDATION_EXPORT NSSwappedFloat NSConvertHostFloatToSwapped(float value); -FOUNDATION_EXPORT float NSConvertSwappedFloatToHost(NSSwappedFloat swapped); -FOUNDATION_EXPORT NSSwappedDouble NSConvertHostDoubleToSwapped(double value); -FOUNDATION_EXPORT double NSConvertSwappedDoubleToHost(NSSwappedDouble swapped); diff --git a/Foundation/NSByteOrder.m b/Foundation/NSByteOrder.m deleted file mode 100644 index e3ad9e42..00000000 --- a/Foundation/NSByteOrder.m +++ /dev/null @@ -1,326 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -#ifdef __LITTLE_ENDIAN__ - -NSByteOrder NSHostByteOrder(void) { - return NS_LittleEndian; -} - -unsigned short NSSwapHostShortToLittle(unsigned short value) { - return value; -} - -unsigned short NSSwapLittleShortToHost(unsigned short value) { - return value; -} - -unsigned int NSSwapHostIntToLittle(unsigned int value) { - return value; -} - -unsigned int NSSwapLittleIntToHost(unsigned int value) { - return value; -} - -unsigned long NSSwapHostLongToLittle(unsigned long value) { - return value; -} - -unsigned long NSSwapLittleLongToHost(unsigned long value) { - return value; -} - -unsigned long long NSSwapHostLongLongToLittle(unsigned long long value) { - return value; -} - -unsigned long long NSSwapLittleLongLongToHost(unsigned long long value) { - return value; -} - -NSSwappedFloat NSSwapHostFloatToLittle(float value) { - return NSConvertHostFloatToSwapped(value); -} - -float NSSwapLittleFloatToHost(NSSwappedFloat value) { - return NSConvertSwappedFloatToHost(value); -} - -NSSwappedDouble NSSwapHostDoubleToLittle(double value) { - return NSConvertHostDoubleToSwapped(value); -} - -double NSSwapLittleDoubleToHost(NSSwappedDouble value) { - return NSConvertSwappedDoubleToHost(value); -} - -unsigned short NSSwapHostShortToBig(unsigned short value) { - return NSSwapShort(value); -} - -unsigned short NSSwapBigShortToHost(unsigned short value) { - return NSSwapShort(value); -} - -unsigned int NSSwapHostIntToBig(unsigned int value) { - return NSSwapInt(value); -} - -unsigned int NSSwapBigIntToHost(unsigned int value) { - return NSSwapInt(value); -} - -unsigned long NSSwapHostLongToBig(unsigned long value) { - return NSSwapLong(value); -} - -unsigned long NSSwapBigLongToHost(unsigned long value) { - return NSSwapLong(value); -} - -unsigned long long NSSwapHostLongLongToBig(unsigned long long value) { - return NSSwapLongLong(value); -} - -unsigned long long NSSwapBigLongLongToHost(unsigned long long value) { - return NSSwapLongLong(value); -} - -NSSwappedFloat NSSwapHostFloatToBig(float value) { - return NSSwapFloat(NSConvertHostFloatToSwapped(value)); -} - -float NSSwapBigFloatToHost(NSSwappedFloat value) { - return NSConvertSwappedFloatToHost(NSSwapFloat(value)); -} - -NSSwappedDouble NSSwapHostDoubleToBig(double value) { - return NSSwapDouble(NSConvertHostDoubleToSwapped(value)); -} - -double NSSwapBigDoubleToHost(NSSwappedDouble value) { - return NSConvertSwappedDoubleToHost(NSSwapDouble(value)); -} - -#elif defined(__BIG_ENDIAN__) - -NSByteOrder NSHostByteOrder(void) { - return NS_BigEndian; -} - -unsigned short NSSwapHostShortToLittle(unsigned short value) { - return NSSwapShort(value); -} - -unsigned short NSSwapLittleShortToHost(unsigned short value) { - return NSSwapShort(value); -} - -unsigned int NSSwapHostIntToLittle(unsigned int value) { - return NSSwapInt(value); -} - -unsigned int NSSwapLittleIntToHost(unsigned int value) { - return NSSwapInt(value); -} - -unsigned long NSSwapHostLongToLittle(unsigned long value) { - return NSSwapLong(value); -} - -unsigned long NSSwapLittleLongToHost(unsigned long value) { - return NSSwapLong(value); -} - -unsigned long long NSSwapHostLongLongToLittle(unsigned long long value) { - return NSSwapLongLong(value); -} - -unsigned long long NSSwapLittleLongLongToHost(unsigned long long value) { - return NSSwapLongLong(value); -} - -NSSwappedFloat NSSwapHostFloatToLittle(float value) { - return NSSwapFloat(NSConvertHostFloatToSwapped(value)); -} - -float NSSwapLittleFloatToHost(NSSwappedFloat value) { - return NSConvertSwappedFloatToHost(NSSwapFloat(value)); -} - -NSSwappedDouble NSSwapHostDoubleToLittle(double value) { - return NSSwapDouble(NSConvertHostDoubleToSwapped(value)); -} - -double NSSwapLittleDoubleToHost(NSSwappedDouble value) { - return NSConvertSwappedDoubleToHost(NSSwapDouble(value)); -} - -unsigned short NSSwapHostShortToBig(unsigned short value) { - return value; -} - -unsigned short NSSwapBigShortToHost(unsigned short value) { - return value; -} - -unsigned int NSSwapHostIntToBig(unsigned int value) { - return value; -} - -unsigned int NSSwapBigIntToHost(unsigned int value) { - return value; -} - -unsigned long NSSwapHostLongToBig(unsigned long value) { - return value; -} - -unsigned long NSSwapBigLongToHost(unsigned long value) { - return value; -} - -unsigned long long NSSwapHostLongLongToBig(unsigned long long value) { - return value; -} - -unsigned long long NSSwapBigLongLongToHost(unsigned long long value) { - return value; -} - -NSSwappedFloat NSSwapHostFloatToBig(float value) { - return NSConvertHostFloatToSwapped(value); -} - -float NSSwapBigFloatToHost(NSSwappedFloat value) { - return NSConvertSwappedFloatToHost(value); -} - -NSSwappedDouble NSSwapHostDoubleToBig(double value) { - return NSConvertHostDoubleToSwapped(value); -} - -double NSSwapBigDoubleToHost(NSSwappedDouble value) { - return NSConvertSwappedDoubleToHost(value); -} - -#endif - -unsigned short NSSwapShort(unsigned short value) { - unsigned short result; - - result = (value << 8) | (value >> 8); - - return result; -} - -unsigned int NSSwapInt(unsigned int value) { - unsigned int result; - - result = value << 24; - result |= (value << 8) & 0x00FF0000; - result |= (value >> 8) & 0x0000FF00; - result |= value >> 24; - - return result; -} - -unsigned long NSSwapLong(unsigned long value) { -#ifdef __LP64__ - return NSSwapLongLong(value); -#else - return NSSwapInt(value); -#endif -} - -unsigned long long NSSwapLongLong(unsigned long long valueX) { - union { - unsigned long long word; - uint8_t bytes[8]; - } value, result; - - value.word = valueX; - - result.bytes[0] = value.bytes[7]; - result.bytes[1] = value.bytes[6]; - result.bytes[2] = value.bytes[5]; - result.bytes[3] = value.bytes[4]; - result.bytes[4] = value.bytes[3]; - result.bytes[5] = value.bytes[2]; - result.bytes[6] = value.bytes[1]; - result.bytes[7] = value.bytes[0]; - - return result.word; -} - -NSSwappedFloat NSSwapFloat(NSSwappedFloat value) { - value.floatWord = NSSwapInt(value.floatWord); - return value; -} - -NSSwappedDouble NSSwapDouble(NSSwappedDouble value) { - value.doubleWord = NSSwapLongLong(value.doubleWord); - return value; -} - -NSSwappedFloat NSConvertHostFloatToSwapped(float value) { - union { - float value; - NSSwappedFloat swapped; - } result; - - result.value = value; - - return result.swapped; -} - -float NSConvertSwappedFloatToHost(NSSwappedFloat swapped) { - union { - float value; - NSSwappedFloat swapped; - } result; - - result.swapped = swapped; - - return result.value; -} - -NSSwappedDouble NSConvertHostDoubleToSwapped(double value) { - union { - double value; - NSSwappedDouble swapped; - } result; - - result.value = value; - - return result.swapped; -} - -double NSConvertSwappedDoubleToHost(NSSwappedDouble swapped) { - union { - double value; - NSSwappedDouble swapped; - } result; - - result.swapped = swapped; - - return result.value; -} diff --git a/Foundation/NSCFTypeID.h b/Foundation/NSCFTypeID.h deleted file mode 100644 index ffd13595..00000000 --- a/Foundation/NSCFTypeID.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (c) 2009 Jens Ayton - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -/* IMPORTANT: these are for internal use only. They are subject to chage - without notice. Use the appropriate functions (e.g. CFStringGetTypeID()) - rather than assuming specific values. -*/ - -enum { - kNSCFTypeObject = 1, - - kNSCFTypeAllocator, - kNSCFTypeArray, - kNSCFTypeAttributedString, - kNSCFTypeBag, - kNSCFTypeBinaryHeap, - kNSCFTypeBitVector, - kNSCFTypeBoolean, - kNSCFTypeCharacterSet, - kNSCFTypeData, - kNSCFTypeDate, - kNSCFTypeError, - kNSCFTypeDictionary, - kNSCFTypeNotificationCenter, - kNSCFTypeNumber, - kNSCFTypeSet, - kNSCFTypeSocket, - kNSCFTypeString, - kNSCFTypeUUID -}; - -#if __OBJC__ - -@interface NSObject (CFTypeID) - -- (unsigned) _cfTypeID; - -@end - -#endif diff --git a/Foundation/NSCharacterSet/NSCharacterSet.h b/Foundation/NSCharacterSet/NSCharacterSet.h deleted file mode 100644 index ec10853c..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSData; - -@interface NSCharacterSet : NSObject - -+ characterSetWithBitmapRepresentation: (NSData *) data; -+ characterSetWithCharactersInString: (NSString *) string; -+ characterSetWithContentsOfFile: (NSString *) path; -+ characterSetWithRange: (NSRange) range; - -+ alphanumericCharacterSet; -+ controlCharacterSet; -+ decimalDigitCharacterSet; -+ decomposableCharacterSet; -+ illegalCharacterSet; -+ letterCharacterSet; -+ lowercaseLetterCharacterSet; -+ newlineCharacterSet; -+ nonBaseCharacterSet; -+ punctuationCharacterSet; -+ uppercaseLetterCharacterSet; -+ whitespaceAndNewlineCharacterSet; -+ whitespaceCharacterSet; - -- (BOOL) characterIsMember: (unichar) character; -- (NSCharacterSet *) invertedSet; - -- (NSData *) bitmapRepresentation; - -- (BOOL) isSupersetOfSet: (NSCharacterSet *) other; - -@end - -#import diff --git a/Foundation/NSCharacterSet/NSCharacterSet.m b/Foundation/NSCharacterSet/NSCharacterSet.m deleted file mode 100644 index 486ade6a..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet.m +++ /dev/null @@ -1,242 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSCharacterSet - -static NSMapTable *nameToSet = NULL; - -+ (void) initialize { - if (self == [NSCharacterSet class]) { - nameToSet = NSCreateMapTable(NSObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, 0); - } -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableCharacterSet_bitmap allocWithZone: NULL] - initWithCharacterSet: self]; -} - -- (Class) classForCoder { - NSUnimplementedMethod(); - return Nil; -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -+ characterSetWithBitmapRepresentation: (NSData *) data { - return NSAutorelease(NSCharacterSet_bitmapNewWithBitmap(NULL, data)); -} - -+ characterSetWithCharactersInString: (NSString *) string { - return NSAutorelease([[NSCharacterSet_string allocWithZone: NULL] - initWithString: string - inverted: NO]); -} - -+ characterSetWithContentsOfFile: (NSString *) path { - NSData *data = [NSData dataWithContentsOfFile: path]; - - if (data == nil) - return nil; - - return [self characterSetWithBitmapRepresentation: data]; -} - -+ characterSetWithRange: (NSRange) range { - return NSAutorelease( - [[NSCharacterSet_range allocWithZone: NULL] initWithRange: range]); -} - -static NSString *pathForCharacterSet(NSString *name) { - NSBundle *bundle = [NSBundle bundleForClass: [NSCharacterSet class]]; - NSString *path = [bundle pathForResource: name ofType: @"bitmap"]; - - if (path == nil) - [NSException - raise: @"NSCharacterSetFailedException" - format: @"NSCharacterSet unable to find bitmap for %@", name]; - - return path; -} - -static NSCharacterSet *sharedSetWithName(Class cls, NSString *name) { - NSCharacterSet *result; - - if (cls != [NSCharacterSet class]) - result = - [cls characterSetWithContentsOfFile: pathForCharacterSet(name)]; - else { - if ((result = NSMapGet(nameToSet, name)) == nil) { - if ((result = [NSCharacterSet - characterSetWithContentsOfFile: pathForCharacterSet( - name)]) != nil) - NSMapInsert(nameToSet, name, result); - } - } - - return result; -} - -+ alphanumericCharacterSet { - return sharedSetWithName(self, @"alphanumericCharacterSet"); -} - -+ controlCharacterSet { - return sharedSetWithName(self, @"controlCharacterSet"); -} - -+ decimalDigitCharacterSet { - return sharedSetWithName(self, @"decimalDigitCharacterSet"); -} - -+ decomposableCharacterSet { - return sharedSetWithName(self, @"decomposableCharacterSet"); -} - -+ illegalCharacterSet { - return sharedSetWithName(self, @"illegalCharacterSet"); -} - -+ letterCharacterSet { - return sharedSetWithName(self, @"letterCharacterSet"); -} - -+ lowercaseLetterCharacterSet { - return sharedSetWithName(self, @"lowercaseLetterCharacterSet"); -} - -+ nonBaseCharacterSet { - return sharedSetWithName(self, @"nonBaseCharacterSet"); -} - -+ punctuationCharacterSet { - return sharedSetWithName(self, @"punctuationCharacterSet"); -} - -+ uppercaseLetterCharacterSet { - return sharedSetWithName(self, @"uppercaseLetterCharacterSet"); -} - -+ newlineCharacterSet { - static NSString *setName = @"newlineCharacterSet"; - id set; - if (!(set = NSMapGet(nameToSet, setName)) || - self != [NSCharacterSet class]) { - unichar chars[] = {0x0A, 0x0B, 0x0C, 0x0D, 0x85, 0x2028, 0x2029}; - set = [self characterSetWithCharactersInString: - [NSString stringWithCharacters: chars - length: sizeof(chars) / - sizeof(unichar)]]; - if (self == [NSCharacterSet class]) - NSMapInsert(nameToSet, setName, set); - } - return set; -} - -+ whitespaceAndNewlineCharacterSet { - static NSString *setName = @"whitespaceAndNewlineCharacterSet"; - id set; - if (!(set = NSMapGet(nameToSet, setName)) || - self != [NSCharacterSet class]) { - // Doc.s do not mention 0xA0 but it is implemented as a member - unichar chars[] = {0x20, 0x09, 0x0A, 0x0B, 0x0C, - 0x0D, 0x85, 0xA0, 0x2028, 0x2029}; - set = [self characterSetWithCharactersInString: - [NSString stringWithCharacters: chars - length: sizeof(chars) / - sizeof(unichar)]]; - if (self == [NSCharacterSet class]) - NSMapInsert(nameToSet, setName, set); - } - return set; -} - -+ whitespaceCharacterSet { - static NSString *setName = @"whitespaceCharacterSet"; - id set; - if (!(set = NSMapGet(nameToSet, setName)) || - self != [NSCharacterSet class]) { - // Doc.s do not mention 0xA0 but it is implemented as a member - unichar chars[3] = {0x20, 0x09, 0xA0}; - set = [self characterSetWithCharactersInString: - [NSString stringWithCharacters: chars length: 3]]; - if (self == [NSCharacterSet class]) - NSMapInsert(nameToSet, setName, set); - } - return set; -} - -- (BOOL) characterIsMember: (unichar) character { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSCharacterSet *) invertedSet { - uint8_t *bitmap = bitmapBytes(self); - NSUInteger i; - - for (i = 0; i < NSBitmapCharacterSetSize; i++) - bitmap[i] = ~bitmap[i]; - - return NSAutorelease(NSCharacterSet_bitmapNewWithBitmap( - NULL, [NSData dataWithBytesNoCopy: bitmap - length: NSBitmapCharacterSetSize])); -} - -- (NSData *) bitmapRepresentation { - return [NSData dataWithBytesNoCopy: bitmapBytes(self) - length: NSBitmapCharacterSetSize]; -} - -// yea this is terrible -- (BOOL) isSupersetOfSet: (NSCharacterSet *) other { - NSUInteger i; - - for (i = 0; i <= 0xFFFF; i++) { - if ([other characterIsMember: i] && ![self characterIsMember: i]) - return NO; - } - - return YES; -} - -@end diff --git a/Foundation/NSCharacterSet/NSCharacterSet_bitmap.h b/Foundation/NSCharacterSet/NSCharacterSet_bitmap.h deleted file mode 100644 index d5aa5568..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_bitmap.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSCharacterSet_bitmap : NSCharacterSet { - uint8_t _bitmap[NSBitmapCharacterSetSize]; -} - -@end - -NSCharacterSet *NSCharacterSet_bitmapNewWithPath(NSZone *zone, NSString *path); -NSCharacterSet *NSCharacterSet_bitmapNewWithBitmap(NSZone *zone, NSData *data); diff --git a/Foundation/NSCharacterSet/NSCharacterSet_bitmap.m b/Foundation/NSCharacterSet/NSCharacterSet_bitmap.m deleted file mode 100644 index 91a35950..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_bitmap.m +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright (c) 2006-2009 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -/* - I had an implementation in mind long ago but didn't finish it and now forget -what it was exactly { uint8_t _stageOne[256]; uint8_t _stageTwo[8]; - } - --(BOOL)characterIsMember:(unichar)character { - unsigned char indexOne=character>>8; - unsigned chunkTwo=_stageOne[indexOne]; - - if(indexOne==0 || chunkTwo!=0){ - unsigned offset=chunkTwo*8+(character>>3)&0x0F; - - return (_stageTwo[offset]>>(character&0x0F))&0x01; - } - - return NO; -} - - */ - -@implementation NSCharacterSet_bitmap - -- initWithData: (NSData *) data { - const uint8_t *bytes = [data bytes]; - NSUInteger i; - - if ([data length] != NSBitmapCharacterSetSize) - [NSException raise: @"NSCharacterSetFailedException" - format: @"NSCharacterSet bitmap short %d in init", - [data length]]; - - for (i = 0; i < NSBitmapCharacterSetSize; i++) - _bitmap[i] = bytes[i]; - - return self; -} - -NSCharacterSet *NSCharacterSet_bitmapNewWithPath(NSZone *zone, NSString *path) { - NSUnimplementedFunction(); - return nil; -} - -NSCharacterSet *NSCharacterSet_bitmapNewWithBitmap(NSZone *zone, NSData *data) { - return [[NSCharacterSet_bitmap allocWithZone: NULL] initWithData: data]; -} - -- (BOOL) characterIsMember: (unichar) character { - return bitmapIsSet(_bitmap, character); -} - -@end diff --git a/Foundation/NSCharacterSet/NSCharacterSet_range.h b/Foundation/NSCharacterSet/NSCharacterSet_range.h deleted file mode 100644 index 8378a2b3..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_range.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSCharacterSet_range : NSCharacterSet { - NSUInteger _location; - NSUInteger _locationPlusLength; -} - -- initWithRange: (NSRange) range; - -@end diff --git a/Foundation/NSCharacterSet/NSCharacterSet_range.m b/Foundation/NSCharacterSet/NSCharacterSet_range.m deleted file mode 100644 index 0c168f0b..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_range.m +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSCharacterSet_range - -- initWithRange: (NSRange) range { - _location = range.location; - _locationPlusLength = NSMaxRange(range); - return self; -} - -- (BOOL) characterIsMember: (unichar) character { - return (character >= _location && character < _locationPlusLength); -} - -- (NSCharacterSet *) invertedSet { - return [[[NSCharacterSet_rangeInverted allocWithZone: NULL] - initWithRange: NSMakeRange(_location, - _locationPlusLength - _location)] - autorelease]; -} - -@end diff --git a/Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.h b/Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.h deleted file mode 100644 index a109417a..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSCharacterSet_rangeInverted : NSCharacterSet_range - -@end diff --git a/Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.m b/Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.m deleted file mode 100644 index 12227744..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_rangeInverted.m +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import - -@implementation NSCharacterSet_rangeInverted - -- (BOOL) characterIsMember: (unichar) character { - return (character >= _location && character < _locationPlusLength); -} - -- (NSCharacterSet *) invertedSet { - return [[[NSCharacterSet_range allocWithZone: NULL] - initWithRange: NSMakeRange(_location, - _locationPlusLength - _location)] - autorelease]; -} - -@end diff --git a/Foundation/NSCharacterSet/NSCharacterSet_string.h b/Foundation/NSCharacterSet/NSCharacterSet_string.h deleted file mode 100644 index c03fe54f..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_string.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSCharacterSet_string : NSCharacterSet { - NSUInteger _length; - unichar *_buffer; - BOOL _inverted; -} - -- initWithString: (NSString *) string inverted: (BOOL) inverted; - -@end diff --git a/Foundation/NSCharacterSet/NSCharacterSet_string.m b/Foundation/NSCharacterSet/NSCharacterSet_string.m deleted file mode 100644 index 7ec257f8..00000000 --- a/Foundation/NSCharacterSet/NSCharacterSet_string.m +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@implementation NSCharacterSet_string - -- initWithCharacters: (unichar *) characters - length: (NSUInteger) length - inverted: (BOOL) inverted -{ - NSUInteger i; - - _length = length; - _buffer = NSZoneMalloc([self zone], _length * sizeof(unichar)); - for (i = 0; i < _length; i++) - _buffer[i] = characters[i]; - _inverted = inverted; - return self; -} - -- initWithString: (NSString *) string inverted: (BOOL) inverted { - _length = [string length]; - _buffer = NSZoneMalloc([self zone], _length * sizeof(unichar)); - [string getCharacters: _buffer]; - _inverted = inverted; - return self; -} - -- (void) dealloc { - NSZoneFree([self zone], _buffer); - [super dealloc]; -} - -- (BOOL) characterIsMember: (unichar) character { - BOOL result = _inverted ? NO : YES; - NSUInteger i; - - for (i = 0; i < _length; i++) - if (_buffer[i] == character) - return result; - - return !result; -} - -- (NSCharacterSet *) invertedSet { - return [[[NSCharacterSet_string alloc] initWithCharacters: _buffer - length: _length - inverted: !_inverted] - autorelease]; -} - -@end diff --git a/Foundation/NSCharacterSet/NSMutableCharacterSet.h b/Foundation/NSCharacterSet/NSMutableCharacterSet.h deleted file mode 100644 index 4a78cc14..00000000 --- a/Foundation/NSCharacterSet/NSMutableCharacterSet.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableCharacterSet : NSCharacterSet - -- (void) addCharactersInString: (NSString *) string; -- (void) addCharactersInRange: (NSRange) range; -- (void) formUnionWithCharacterSet: (NSCharacterSet *) set; - -- (void) removeCharactersInString: (NSString *) string; -- (void) removeCharactersInRange: (NSRange) range; -- (void) formIntersectionWithCharacterSet: (NSCharacterSet *) set; - -- (void) invert; - -@end diff --git a/Foundation/NSCharacterSet/NSMutableCharacterSet.m b/Foundation/NSCharacterSet/NSMutableCharacterSet.m deleted file mode 100644 index 9cf2598b..00000000 --- a/Foundation/NSCharacterSet/NSMutableCharacterSet.m +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSMutableCharacterSet_bitmap.h" -#import -#import - -@implementation NSMutableCharacterSet - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSMutableCharacterSet")) - return NSAllocateObject( - objc_lookUpClass("NSMutableCharacterSet_bitmap"), 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -+ characterSetWithBitmapRepresentation: (NSData *) data { - return [[[NSMutableCharacterSet_bitmap alloc] initWithData: data] - autorelease]; -} - -+ characterSetWithCharactersInString: (NSString *) string { - return [[[NSMutableCharacterSet_bitmap alloc] initWithString: string] - autorelease]; -} - -+ characterSetWithRange: (NSRange) range { - return [[[NSMutableCharacterSet_bitmap alloc] initWithRange: range] - autorelease]; -} - -- (void) addCharactersInString: (NSString *) string { - NSInvalidAbstractInvocation(); -} - -- (void) addCharactersInRange: (NSRange) range { - NSInvalidAbstractInvocation(); -} - -- (void) formUnionWithCharacterSet: (NSCharacterSet *) set { - NSInvalidAbstractInvocation(); -} - -- (void) removeCharactersInString: (NSString *) string { - NSInvalidAbstractInvocation(); -} - -- (void) removeCharactersInRange: (NSRange) range { - NSInvalidAbstractInvocation(); -} - -- (void) formIntersectionWithCharacterSet: (NSCharacterSet *) set { - NSInvalidAbstractInvocation(); -} - -- (void) invert { - NSInvalidAbstractInvocation(); -} - -@end diff --git a/Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.h b/Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.h deleted file mode 100644 index 7c7ab103..00000000 --- a/Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSMutableCharacterSet_bitmap : NSMutableCharacterSet { - uint8_t _bitmap[NSBitmapCharacterSetSize]; -} - -- initWithCharacterSet: (NSCharacterSet *) set; -- initWithData: (NSData *) data; -- initWithString: (NSString *) string; -- initWithRange: (NSRange) range; - -@end diff --git a/Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.m b/Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.m deleted file mode 100644 index e5754a9c..00000000 --- a/Foundation/NSCharacterSet/NSMutableCharacterSet_bitmap.m +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@implementation NSMutableCharacterSet_bitmap - -- init { - NSUInteger i; - - for (i = 0; i < NSBitmapCharacterSetSize; i++) - _bitmap[i] = 0x00; - - return self; -} - -- initWithCharacterSet: (NSCharacterSet *) set { - NSUInteger i; - - for (i = 0; i < NSBitmapCharacterSetSize; i++) - _bitmap[i] = 0x00; - - for (i = 0; i < 0xFFFF; i++) - if ([set characterIsMember: i]) - bitmapSet(_bitmap, i); - - return self; -} - -- initWithData: (NSData *) data { - const uint8_t *bytes = [data bytes]; - NSUInteger i; - - if ([data length] != NSBitmapCharacterSetSize) - [NSException raise: @"NSCharacterSetFailedException" - format: @"NSCharacterSet bitmap short %d in init", - [data length]]; - - for (i = 0; i < NSBitmapCharacterSetSize; i++) - _bitmap[i] = bytes[i]; - - return self; -} - -- initWithString: (NSString *) string { - NSUInteger i, length = [string length]; - unichar buffer[length]; - - [string getCharacters: buffer]; - - for (i = 0; i < length; i++) - bitmapSet(_bitmap, buffer[i]); - - return self; -} - -- initWithRange: (NSRange) range { - NSUInteger i; - - for (i = range.location; i < NSMaxRange(range); i++) - bitmapSet(_bitmap, i); - - return self; -} - -- (void) addCharactersInString: (NSString *) string { - NSUInteger i, length = [string length]; - unichar unicode[length]; - - [string getCharacters: unicode]; - - for (i = 0; i < length; i++) - bitmapSet(_bitmap, unicode[i]); -} - -- (void) addCharactersInRange: (NSRange) range { - NSUInteger i, limit = NSMaxRange(range); - - if (limit > 0xFFFF) - limit = 0xFFFF + 1; - - for (i = range.location; i < limit; i++) - bitmapSet(_bitmap, i); -} - -- (void) formUnionWithCharacterSet: (NSCharacterSet *) other { - BOOL(*method) - () = (void *) [other methodForSelector: @selector(characterIsMember:)]; - NSUInteger code; - - for (code = 0; code <= 0xFFFF; code++) - if (method(other, @selector(characterIsMember:), (unichar) code)) - bitmapSet(_bitmap, code); -} - -- (void) removeCharactersInString: (NSString *) string { - NSUInteger i, length = [string length]; - unichar unicode[length]; - - [string getCharacters: unicode]; - - for (i = 0; i < length; i++) - bitmapClear(_bitmap, unicode[i]); -} - -- (void) removeCharactersInRange: (NSRange) range { - NSUInteger i, limit = NSMaxRange(range); - - if (limit > 0xFFFF) - limit = 0xFFFF + 1; - - for (i = range.location; i < limit; i++) - bitmapClear(_bitmap, i); -} - -- (void) formIntersectionWithCharacterSet: (NSCharacterSet *) other { - BOOL(*method) - () = (void *) [other methodForSelector: @selector(characterIsMember:)]; - NSUInteger code; - - for (code = 0; code <= 0xFFFF; code++) - if (!method(other, @selector(characterIsMember:), (unichar) code)) - bitmapClear(_bitmap, code); -} - -- (void) invert { - int i; - - for (i = 0; i < NSBitmapCharacterSetSize; i++) - _bitmap[i] = ~_bitmap[i]; -} - -- (BOOL) characterIsMember: (unichar) character { - return bitmapIsSet(_bitmap, character); -} - -@end diff --git a/Foundation/NSCharacterSet/alphanumericCharacterSet.bitmap b/Foundation/NSCharacterSet/alphanumericCharacterSet.bitmap deleted file mode 100644 index 3e9bdd60278fe5cd60f12ea57eec65c592ac8955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeHMPiqrF6rXepy(oLsgD_sa2^G9p+H?bc0Y8E93wRa8!vtE$u{W=|d(fV|NrH>y zn1i4P3!9T((zLLkktX^1-kaIYuA0)+REo|E`{w2_4X6M zz+TjxgJJ|q*C=y|)K={yaKbjjtj(-M&q^9AA(cdx!K^Tc$Y{Uj%xhe3#FjM`|r#uC8cR=6ed0F@Y43Mh|K-w%=sSi8Cidhgw(1LBJ6NX#CeFghr^2`UZ8V{!-Yb^ zcXVp#Z*yebe`)QLDrNoT3ky0`8bz!Vf58pQKvF-@y%739mj_LE5M(BfQ)+j-zWv}0 z(*FGs8wkmZBN?EGC$045j>d2;eh-#gLphtw**LC`?fMc`u)fKndlnHjcs&|r9F;Sj zPwP{+DYmuS=V&zZc_!mqp9?5>VYawNH<%Ud&M_5ZQ9esWoZgd1z$35-0#W{GEz--! zdIUTI9s!SlN5CWC5%387w+Q4vf-fBcI)AlYlF+dKl+4K{^CzFhA%|s7^zzM@4u4;e zN5CWC5%`A@`1`y3^1nBHMvs6;;NlTD(>55nsKUW0S>zPas8JsiQ~y*-#4dZDRx;05 m=nvn_Nrz%gGIctcBw@CnCE_YDdYhh|?RRDlGaip`aEc$Q8%YiT diff --git a/Foundation/NSCharacterSet/bitmapRepresentation.h b/Foundation/NSCharacterSet/bitmapRepresentation.h deleted file mode 100644 index 19a3f9b3..00000000 --- a/Foundation/NSCharacterSet/bitmapRepresentation.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -enum { NSBitmapCharacterSetSize = 8192 }; - -static inline BOOL bitmapIsSet(uint8_t bitmap[8192], unichar character) { - return bitmap[character >> 3] & (1 << (character & 0x07)); -} - -static inline void bitmapSet(uint8_t bitmap[8192], unichar character) { - bitmap[character >> 3] |= 1 << (character & 0x07); -} - -static inline void bitmapClear(uint8_t bitmap[8192], unichar character) { - bitmap[character >> 3] &= ~(1 << (character & 0x07)); -} - -static inline void bitmapEnable(uint8_t bitmap[8192], unichar character, - BOOL yorn) -{ - - if (yorn) - bitmap[character >> 3] |= 1 << (character & 0x07); - else - bitmap[character >> 3] &= ~(1 << (character & 0x07)); -} - -static inline uint8_t *bitmapBytes(NSCharacterSet *self) { - BOOL(*method) - () = (void *) [self methodForSelector: @selector(characterIsMember:)]; - uint8_t *bitmap = - NSZoneMalloc(NULL, sizeof(uint8_t) * NSBitmapCharacterSetSize); - uint32_t code; - - for (code = 0; code <= 0xFFFF; code++) - bitmapEnable( - bitmap, code, - method(self, @selector(characterIsMember:), (unichar) code)); - - return bitmap; -} diff --git a/Foundation/NSCharacterSet/controlCharacterSet.bitmap b/Foundation/NSCharacterSet/controlCharacterSet.bitmap deleted file mode 100644 index 8f7d4b3e0b152cc0ff8028455f008182b2f4d371..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeIuu?fH+5Cu>th%01-44A^PQv@!8g@s63!DpraEbhOEh}2K1&q!wvR=?%>f~`fF ze=ylq;M%qL*!!u`-QxU?V+jEQ1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009Ea2$Y{q Fjt_oQ421vy diff --git a/Foundation/NSCharacterSet/decimalDigitCharacterSet.bitmap b/Foundation/NSCharacterSet/decimalDigitCharacterSet.bitmap deleted file mode 100644 index b64f0d62f9c08a8dfe98094a5cb354fb66c613c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeI%OA3G>6a`SB{qL!r85QD>!Uhq^X^=j9QTIe6L)eeF9K+8~eTsf1MZCU}I{I;q z_1f2U{Wfi)T<2MRM_G;Zl>IZz&&*@V+i(5+pBa1346ZT|AV7cs0RjXF5FkK+009C7 W2oNAZfB*pk1PBly@Rq>+zT*Z(&>oQh diff --git a/Foundation/NSCharacterSet/illegalCharacterSet.bitmap b/Foundation/NSCharacterSet/illegalCharacterSet.bitmap deleted file mode 100644 index e3199f6121dd4acd82b78cd8b82286e6677ba0fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeHMKZ_GV6n{w$qp+CErMb=(Efg%aGsr^n4bCg<)7n`E6fz+A0sI2SZ(-*cj;n;T zwi>v?cCp%nHRJESne1*Z?iEKa$T1Hx^Zvg#zszj@4ACy>?0xSE(H@sn|E{~K&aAa9 z4ruX67cvrA@VT*BS3id)X9v7CY3x;pn6>37P~m6Fk^D;X)gsacam#Lha)+q>BAR@d z9VMvSpR)Y%+4R(Y9+9#AF;>?;h{h*No6sNY{12ixr=z13bqB-6(_ceMhl`mVaeUl{ z|9%=TKG~G49XL6H{57EqFH@SpU+knhK=6lpJBRnVAcMxHcrj4+_0L}Gct9s}P2X9D z-VrY($B+?oF-;0Ki+%6juz=1fyiU7F1O1BLtr!N|6URAPsD&^xvY=K5KTD4WLKOqN zxS8#d;;v1VZ)qtu(6K%P|J$v~IcRiJpv_u8&R#PcDRBs>1)7v=UE%+yly#Hb?$?F~^b2ea&G zospW#kEXYdLGF%+_F6q-jFeTLI1?hz>KP&90kk6Q`9_lWxI~~jhaM&$_kd?pS^cp_ zUSAyzu}ecGv9Uc+Kp-HnEd*9igl**uc>)3ffq+0jARrJB2nYlOZaD(wPtyNxoyK*< z{|Rh^kS(wMowJcrssRmGRescN_}rwz*9}uZARrJB2ng%|f%3x-5B43D3nc;q0fF0$ zfcA^4U5r8_UptlU;tEC0AFr*SP3}HzO?`z>J*ja0%Oqb)1gh5T4kU+<;u-0_kX|LrD~zwZseX1UN6i10agEL?oB#sE|xefl|>STUf}Y z3nVCrbgoF_IFU{QBcC(OH@jzi3Jw-AD1sg7cIR(rXTROMvu}tToiUejsZ_dEVz%rq z>3)NHT%@Q@lpjj>>K~b>P+Bw{G&y>blOR+iCCQ9!0WB-fo!5w5M!E)?G90K2hm1~Q zp3(Dp21lYdnN%c7;b%&^-U}L?lR04%A(P3t{f&9{E@?k*9#p7E;}+yc?^|2+kSL;Y zM^-mGPCDBggv_1)ak9VFJt$IvM*Z4{YM*=kT2p5o$20Li>BY5OiAFSXaw2jaW^2l83&DDmQ;X0-c-cS~S*=l)zxTal*S6VNaDn7_ za2&~exGKV5_j3=#zOVSu-Nk&^+2=^8O*S4|FGCFC2w~OUM>uTLQi8h@ye1dA{xn85 z{9Nzu)b2UG%Nx z=+=V(Q1-Wq<>=I%FID2yy0dA#)-)kovYytF!7hTNJ5~RjLo%O#@cea%T%rYy)tvm) zI3brKztqqL1OfspBVgt?-O59PV?ZDv5D*9m1Ox&C0fB(P|BS%=L&TK>0e^beN=^5r zWJye2zt|iOb6A#muU~!T@DB+E1Ofs9fqxi*zyFk9|9c}u3>m#i*J0#-FDeLvuv{Y}jw%^UPQsha~ I^d`o92Py^zd;kCd diff --git a/Foundation/NSCharacterSet/lowercaseLetterCharacterSet.bitmap b/Foundation/NSCharacterSet/lowercaseLetterCharacterSet.bitmap deleted file mode 100644 index 03efc248b2d83107371069a7c622e6991eec823a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeI1F>At55XY|}(Bfhi2c0^&L?}fkw*=e;OY;T%B60B(_$B0Zc6V^ML)`)nf`f~W zBGT(67ZXXLOEQ)J1#*{n_x{QIJ?5gHmPyF>{UM!|Apn7Y zLm=slx-RF+9Jhe>Xu85%m*oCX&tqdTdBk$*oxM0_+WHZ##YY8B)}$~%w0e@0!09aq znsI&=V4ysKWS7HnR8 zLquqzGJK8_e|OHE?Vp`227tE}o<_in$}7EbFwP!}dVn&^{+@Jgp-1+d-C1=BB$)e@ zH(sf@Fhg!bU#zpk*wbbwP)h%*lykHpWjJXX+Cq*CwH5}6jAO?x_Sew( zQX8FaimF^Ykvb97_XeiK6S#kn$+kbQT&~`JqwZM`J^gxjzqLdJBJc9~pb@EF{g?8a z?LTkVjKR+!)!6*JYXaay#4TeH-LNgX=WL01ZE3S6UA>*ga3)IuMpH{xJ=_G`g#x}6arSQ3IQ{;ubsQS@#>{@f*aPZ@(K;T29;*bsR~8b zjhpRo{onuJ{2+N5pxz13{(}KTJ;*Rdh&`dJwV+0avH~T6uKN#m4n*N7Nz)JjMTtF4 zZ5TD2S|I?-B?wv+mS;gij12!7?130Wt^$$_VD^6oc_8EmlLQ>nVxevqV9S3%0jiFJ zfcjBs(n0`S{6UMhxm*g!aR)B>NHc9z^=Jr;hQMeDjE2By2#kinXb6mkz-S1JhQMeD ujE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz(@!I^tpXxKLY^%&sUuQ diff --git a/Foundation/NSCharacterSet/whitespaceAndNewlineCharacterSet.bitmap b/Foundation/NSCharacterSet/whitespaceAndNewlineCharacterSet.bitmap deleted file mode 100644 index f88e987ef6c48b9a0d5e4da1998399f7969296f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeIxI|{%c3;@tL^%|Z;dbC0hUZoW5>L6rzPLV)94~-U4VxBs}|9xge1o8_kzuhzc zPCF-jj#2%7J6t>asGU<_`M=~`!&C$a5FkK+009C72oNAZfB*pk1PBlyK!5-N0-rz! DjQ9eq diff --git a/Foundation/NSCharacterSet/whitespaceCharacterSet.bitmap b/Foundation/NSCharacterSet/whitespaceCharacterSet.bitmap deleted file mode 100644 index c7170a3f26fa70575931c8d43d5c6c8a1a166bd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 zcmeIxF%G~W2mnCr;E_aCJO?6i04^9;M2h~5dH*USu&%)L?v{0D`J=NZ xe^u^Usl|E~P7#>?FQ>qmlK=q%1PBlyK!5-N0t5&UAV7cs0RjXF5FoIrzze#M0!;t_ diff --git a/Foundation/NSClassDescription.h b/Foundation/NSClassDescription.h deleted file mode 100644 index 79d588af..00000000 --- a/Foundation/NSClassDescription.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSArray; - -FOUNDATION_EXPORT NSString *const NSClassDescriptionNeededForClassNotification; - -@interface NSClassDescription : NSObject { -} - -+ (NSClassDescription *) classDescriptionForClass: (Class) aClass; -+ (void) invalidateClassDescriptionCache; -+ (void) registerClassDescription: (NSClassDescription *) description - forClass: (Class) aClass; - -- (NSArray *) attributeKeys; -- (NSString *) inverseForRelationshipKey: (NSString *) key; -- (NSArray *) toManyRelationshipKeys; -- (NSArray *) toOneRelationshipKeys; - -@end - -@interface NSObject (NSClassDescription) - -- (NSClassDescription *) classDescription; - -- (NSArray *) attributeKeys; -- (NSString *) inverseForRelationshipKey: (NSString *) key; -- (NSArray *) toOneRelationshipKeys; -- (NSArray *) toManyRelationshipKeys; -@end diff --git a/Foundation/NSClassDescription.m b/Foundation/NSClassDescription.m deleted file mode 100644 index 3eac7868..00000000 --- a/Foundation/NSClassDescription.m +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -NSString *const NSClassDescriptionNeededForClassNotification = - @"NSClassDescriptionNeededForClassNotification"; - -@implementation NSClassDescription - -static NSMutableDictionary *classDescriptionCache = nil; - -+ (NSClassDescription *) classDescriptionForClass: (Class) class { - id result; - - @synchronized(self) { - result = [classDescriptionCache objectForKey: NSStringFromClass(class)]; - if (!result) { - [[NSNotificationCenter defaultCenter] - postNotificationName: - NSClassDescriptionNeededForClassNotification - object: class]; - } - result = [classDescriptionCache objectForKey: NSStringFromClass(class)]; - } - return result; -} - -+ (void) invalidateClassDescriptionCache { - @synchronized(self) { - [classDescriptionCache release]; - classDescriptionCache = nil; - } -} - -+ (void) registerClassDescription: (NSClassDescription *) description - forClass: (Class) class -{ - @synchronized(self) { - if (!classDescriptionCache) { - classDescriptionCache = [[NSMutableDictionary alloc] init]; - } - [classDescriptionCache setObject: description - forKey: NSStringFromClass(class)]; - } -} - -- (NSArray *) attributeKeys { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) inverseForRelationshipKey: (NSString *) key { - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) toManyRelationshipKeys { - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) toOneRelationshipKeys { - NSUnimplementedMethod(); - return nil; -} - -@end - -@implementation NSObject (NSClassDescription) - -- (NSClassDescription *) classDescription { - return [NSClassDescription classDescriptionForClass: [self class]]; -} - -- (NSArray *) attributeKeys { - return [[self classDescription] attributeKeys]; -} - -- (NSString *) inverseForRelationshipKey: (NSString *) key { - return [[self classDescription] inverseForRelationshipKey: key]; -} - -- (NSArray *) toOneRelationshipKeys { - return [[self classDescription] toOneRelationshipKeys]; -} - -- (NSArray *) toManyRelationshipKeys { - return [[self classDescription] toManyRelationshipKeys]; -} - -@end diff --git a/Foundation/NSCoder.h b/Foundation/NSCoder.h deleted file mode 100644 index 993311be..00000000 --- a/Foundation/NSCoder.h +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSString, NSData; - -@interface NSCoder : NSObject - -- (unsigned) systemVersion; - -- (void) setObjectZone: (NSZone *) zone; -- (NSZone *) objectZone; - -- (BOOL) allowsKeyedCoding; - -- (void) encodeValueOfObjCType: (const char *) type at: (const void *) ptr; -- (void) encodeDataObject: (NSData *) data; - -- (void) encodeObject: object; -- (void) encodePropertyList: propertyList; -- (void) encodeRootObject: rootObject; -- (void) encodeBycopyObject: object; -- (void) encodeByrefObject: object; - -- (void) encodeConditionalObject: object; -- (void) encodeValuesOfObjCTypes: (const char *) types, ...; -- (void) encodeArrayOfObjCType: (const char *) type - count: (NSUInteger) count - at: (const void *) ptr; -- (void) encodeBytes: (const void *) ptr length: (NSUInteger) length; - -- (void) encodePoint: (NSPoint) point; -- (void) encodeSize: (NSSize) size; -- (void) encodeRect: (NSRect) rect; - -- (void) encodePoint: (NSPoint) value forKey: (NSString *) key; -- (void) encodeRect: (NSRect) value forKey: (NSString *) key; -- (void) encodeSize: (NSSize) value forKey: (NSString *) key; - -- (void) encodeBool: (BOOL) value forKey: (NSString *) key; -- (void) encodeConditionalObject: object forKey: (NSString *) key; -- (void) encodeDouble: (double) value forKey: (NSString *) key; -- (void) encodeFloat: (float) value forKey: (NSString *) key; -- (void) encodeInt: (int) value forKey: (NSString *) key; -- (void) encodeObject: object forKey: (NSString *) key; - -- (void) encodeInt32: (int32_t) value forKey: (NSString *) key; -- (void) encodeInt64: (int64_t) value forKey: (NSString *) key; -- (void) encodeInteger: (NSInteger) value forKey: (NSString *) key; - -- (void) encodeBytes: (const uint8_t *) bytes - length: (NSUInteger) length - forKey: (NSString *) key; - -- (void) decodeValueOfObjCType: (const char *) type at: (void *) ptr; -- (NSData *) decodeDataObject; -- (NSInteger) versionForClassName: (NSString *) className; - -- decodeObject; -- decodePropertyList; -- (void) decodeValuesOfObjCTypes: (const char *) types, ...; -- (void) decodeArrayOfObjCType: (const char *) type - count: (NSUInteger) count - at: (void *) array; -- (void *) decodeBytesWithReturnedLength: (NSUInteger *) lengthp; - -- (NSPoint) decodePoint; -- (NSSize) decodeSize; -- (NSRect) decodeRect; - -- (BOOL) containsValueForKey: (NSString *) key; - -- (const uint8_t *) decodeBytesForKey: (NSString *) key - returnedLength: (NSUInteger *) lengthp; -- (NSPoint) decodePointForKey: (NSString *) key; -- (NSRect) decodeRectForKey: (NSString *) key; -- (NSSize) decodeSizeForKey: (NSString *) key; - -- (BOOL) decodeBoolForKey: (NSString *) key; -- (double) decodeDoubleForKey: (NSString *) key; -- (float) decodeFloatForKey: (NSString *) key; -- (int) decodeIntForKey: (NSString *) key; -- decodeObjectForKey: (NSString *) key; - -- (int32_t) decodeInt32ForKey: (NSString *) key; -- (int64_t) decodeInt64ForKey: (NSString *) key; -- (NSInteger) decodeIntegerForKey: (NSString *) key; - -@end diff --git a/Foundation/NSCoder.m b/Foundation/NSCoder.m deleted file mode 100644 index f17c8bf9..00000000 --- a/Foundation/NSCoder.m +++ /dev/null @@ -1,349 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#include -#include - -@implementation NSCoder - -- (unsigned) systemVersion { - return 0; -} - -- (void) setObjectZone: (NSZone *) zone { - // do nothing -} - -- (NSZone *) objectZone { - return NSDefaultMallocZone(); -} - -- (BOOL) allowsKeyedCoding { - return NO; -} - -- (void) encodeValueOfObjCType: (const char *) type at: (const void *) ptr { - NSInvalidAbstractInvocation(); -} - -- (void) encodeDataObject: (NSData *) data { - NSInvalidAbstractInvocation(); -} - -- (void) encodeObject: object { - [self encodeValueOfObjCType: @encode(id) at: &object]; -} - -- (void) encodePropertyList: propertyList { - [self encodeValueOfObjCType: @encode(id) at: &propertyList]; -} - -- (void) encodeRootObject: rootObject { - [self encodeObject: rootObject]; -} - -- (void) encodeBycopyObject: object { - [self encodeObject: object]; -} - -- (void) encodeByrefObject: object { - [self encodeObject: object]; -} - -- (void) encodeConditionalObject: object { - [self encodeObject: object]; -} - -- (void) encodeValuesOfObjCTypes: (const char *) types, ... { - const char *restTypes; - char typeBuf[strlen(types) + 1]; - va_list arguments; - - va_start(arguments, types); - - for (; *types != '\0'; types = restTypes) { - NSUInteger tmp; - void *ptr; - - restTypes = NSGetSizeAndAlignment(types, &tmp, &tmp); - strncpy(typeBuf, types, restTypes - types); - typeBuf[restTypes - types] = '\0'; - - ptr = va_arg(arguments, void *); - [self encodeValueOfObjCType: types at: ptr]; - } - - va_end(arguments); -} - -- (void) encodeArrayOfObjCType: (const char *) itemType - count: (NSUInteger) count - at: (const void *) ptr -{ - char typeBuf[1 + sizeof(NSUInteger) * 3 + strlen(itemType) + 2]; - - sprintf(typeBuf, "[" NSUIntegerFormat "%s]", count, itemType); - [self encodeValueOfObjCType: typeBuf at: ptr]; -} - -- (void) encodeBytes: (const void *) byteaddr length: (NSUInteger) length { - char typeBuf[1 + sizeof(NSUInteger) * 3 + 1 + 1 + 1]; - - sprintf(typeBuf, "[" NSUIntegerFormat "c]", length); - - [self encodeValueOfObjCType: @encode(NSUInteger) at: &length]; - [self encodeValueOfObjCType: typeBuf at: byteaddr]; -} - -- (void) encodePoint: (NSPoint) point { - [self encodeValueOfObjCType: @encode(NSPoint) at: &point]; -} - -- (void) encodeSize: (NSSize) size { - [self encodeValueOfObjCType: @encode(NSSize) at: &size]; -} - -- (void) encodeRect: (NSRect) rect { - [self encodeValueOfObjCType: @encode(NSRect) at: &rect]; -} - -- (void) encodeBool: (BOOL) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(BOOL) at: &value]; -} - -- (void) encodeConditionalObject: object forKey: (NSString *) key { - [self encodeConditionalObject: object]; -} - -- (void) encodeDouble: (double) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(double) at: &value]; -} - -- (void) encodeFloat: (float) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(float) at: &value]; -} - -- (void) encodeInt: (int) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(int) at: &value]; -} - -- (void) encodeObject: object forKey: (NSString *) key { - [self encodeObject: object]; -} - -- (void) encodeInt32: (int32_t) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(int32_t) at: &value]; -} - -- (void) encodeInt64: (int64_t) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(int64_t) at: &value]; -} - -- (void) encodeInteger: (NSInteger) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(NSInteger) at: &value]; -} - -- (void) encodeBytes: (const uint8_t *) bytes - length: (NSUInteger) length - forKey: (NSString *) key -{ - [self encodeBytes: bytes length: length]; -} - -- (void) encodePoint: (NSPoint) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(NSPoint) at: &value]; -} - -- (void) encodeRect: (NSRect) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(NSRect) at: &value]; -} - -- (void) encodeSize: (NSSize) value forKey: (NSString *) key { - [self encodeValueOfObjCType: @encode(NSSize) at: &value]; -} - -- (void) decodeValueOfObjCType: (const char *) type at: (void *) data { - NSInvalidAbstractInvocation(); -} - -- (NSData *) decodeDataObject { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSInteger) versionForClassName: (NSString *) className { - NSInvalidAbstractInvocation(); - return 0; -} - -- decodeObject { - id object = nil; - [self decodeValueOfObjCType: @encode(id) at: &object]; - return [object autorelease]; -} - -- decodePropertyList { - id object = nil; - [self decodeValueOfObjCType: @encode(id) at: &object]; - return [object autorelease]; -} - -- (void) decodeValuesOfObjCTypes: (const char *) types, ... { - const char *restTypes; - char typeBuf[strlen(types) + 1]; - va_list arguments; - - va_start(arguments, types); - - for (; *types != '\0'; types = restTypes) { - NSUInteger tmp; - void *ptr; - - restTypes = NSGetSizeAndAlignment(types, &tmp, &tmp); - strncpy(typeBuf, types, restTypes - types); - typeBuf[restTypes - types] = '\0'; - - ptr = va_arg(arguments, void *); - [self decodeValueOfObjCType: types at: ptr]; - } - - va_end(arguments); -} - -- (void) decodeArrayOfObjCType: (const char *) itemType - count: (NSUInteger) count - at: (void *) ptr -{ - char typeBuf[1 + sizeof(NSUInteger) * 3 + strlen(itemType) + 1 + 1]; - - sprintf(typeBuf, "[" NSUIntegerFormat "%s]", count, itemType); - [self decodeValueOfObjCType: typeBuf at: ptr]; -} - -- (void *) decodeBytesWithReturnedLength: (NSUInteger *) lengthp { - char typeBuf[1 + sizeof(NSUInteger) * 3 + 3]; - void *byteaddr; - - [self decodeValueOfObjCType: @encode(NSUInteger) at: lengthp]; - - byteaddr = NSZoneCalloc(NULL, *lengthp, sizeof(char)); - sprintf(typeBuf, "[" NSUIntegerFormat "c]", *lengthp); - [self decodeValueOfObjCType: typeBuf at: byteaddr]; - return byteaddr; -} - -- (NSPoint) decodePoint { - NSPoint point; - [self decodeValueOfObjCType: @encode(NSPoint) at: &point]; - return point; -} - -- (NSSize) decodeSize { - NSSize size; - [self decodeValueOfObjCType: @encode(NSSize) at: &size]; - return size; -} - -- (NSRect) decodeRect { - NSRect rect; - [self decodeValueOfObjCType: @encode(NSRect) at: &rect]; - return rect; -} - -- (BOOL) containsValueForKey: (NSString *) key { - NSInvalidAbstractInvocation(); - return NO; -} - -- (const uint8_t *) decodeBytesForKey: (NSString *) key - returnedLength: (NSUInteger *) lengthp -{ - *lengthp = 0; - return NULL; -} - -- (BOOL) decodeBoolForKey: (NSString *) key { - BOOL result; - [self decodeValueOfObjCType: @encode(BOOL) at: &result]; - return result; -} - -- (double) decodeDoubleForKey: (NSString *) key { - double result; - [self decodeValueOfObjCType: @encode(double) at: &result]; - return result; -} - -- (float) decodeFloatForKey: (NSString *) key { - float result; - [self decodeValueOfObjCType: @encode(float) at: &result]; - return result; -} - -- (int) decodeIntForKey: (NSString *) key { - int result; - [self decodeValueOfObjCType: @encode(int) at: &result]; - return result; -} - -- decodeObjectForKey: (NSString *) key { - return [self decodeObject]; -} - -- (NSPoint) decodePointForKey: (NSString *) key { - NSPoint result; - [self decodeValueOfObjCType: @encode(NSPoint) at: &result]; - return result; -} - -- (NSRect) decodeRectForKey: (NSString *) key { - NSRect result; - [self decodeValueOfObjCType: @encode(NSRect) at: &result]; - return result; -} - -- (NSSize) decodeSizeForKey: (NSString *) key { - NSSize result; - [self decodeValueOfObjCType: @encode(NSSize) at: &result]; - return result; -} - -- (int32_t) decodeInt32ForKey: (NSString *) key { - int32_t result; - [self decodeValueOfObjCType: @encode(int32_t) at: &result]; - return result; -} - -- (int64_t) decodeInt64ForKey: (NSString *) key { - int64_t result; - [self decodeValueOfObjCType: @encode(int64_t) at: &result]; - return result; -} - -- (NSInteger) decodeIntegerForKey: (NSString *) key { - NSInteger result; - [self decodeValueOfObjCType: @encode(NSInteger) at: &result]; - return result; -} - -@end diff --git a/Foundation/NSConcreteDirectoryEnumerator.h b/Foundation/NSConcreteDirectoryEnumerator.h deleted file mode 100644 index a4b37894..00000000 --- a/Foundation/NSConcreteDirectoryEnumerator.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2007 Dirk Theisen - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -@class NSFileManager, NSMutableArray; - -@interface NSConcreteDirectoryEnumerator : NSDirectoryEnumerator { - @private - NSString *startPath; - BOOL skipDescendents; - NSString *lastFilePath; - NSDictionary *lastFileAttributes; - NSFileManager *fm; - NSMutableArray *list; -} - -- initWithPath: (NSString *) path; - -@end diff --git a/Foundation/NSConcreteDirectoryEnumerator.m b/Foundation/NSConcreteDirectoryEnumerator.m deleted file mode 100644 index 4dcb688a..00000000 --- a/Foundation/NSConcreteDirectoryEnumerator.m +++ /dev/null @@ -1,133 +0,0 @@ -/* Copyright (c) 2007 Dirk Theisen - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -@implementation NSConcreteDirectoryEnumerator - -- (void) skipDescendents { - skipDescendents = YES; -} - -- (void) dealloc { - [startPath release]; - [list release]; - [lastFileAttributes release]; - [fm release]; - [super dealloc]; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"%@, to enumerate: %@", - [super description], list]; -} - -- (id) initWithPath: (NSString *) aPath { - if ((self = [super init])) { - startPath = [aPath copy]; - fm = [[NSFileManager defaultManager] retain]; - list = [[fm directoryContentsAtPath: aPath] mutableCopy]; - lastFilePath = @""; - } - return self; -} - -- (void) setLastFilePath: (NSString *) aPath -/*" Sets the lastFilePath (relative) to aPath and its file attributes. "*/ { - NSString *fullPath = [startPath stringByAppendingPathComponent: aPath]; - NSDictionary *attrs = [fm fileAttributesAtPath: fullPath traverseLink: NO]; - - // NSLog(@"Found '%@' to have attributes %@", fullPath, attrs); - [lastFilePath release]; - lastFilePath = [aPath retain]; - - [lastFileAttributes release]; - lastFileAttributes = [attrs retain]; -} - -- (id) nextObject { - NSString *result = nil; - if ([[lastFileAttributes fileType] isEqualToString: NSFileTypeDirectory]) { - // last enumerated file was a directory - if (!skipDescendents) { - // Add all files in the directory to the list, - // after making them relative to the lastFilePath: - NSString *lastFilePathAbs = - [startPath stringByAppendingPathComponent: lastFilePath]; - NSArray *dirContent = [fm directoryContentsAtPath: lastFilePathAbs]; - - if ([dirContent count]) { - NSEnumerator *dirContentEnumerator = - [dirContent reverseObjectEnumerator]; - NSString *filename; - - // NSLog(@"Found dir content of '%@' to be %@", lastFilePathAbs, - // dirContent); - - while ((filename = [dirContentEnumerator nextObject])) { - NSString *filePath = [lastFilePath - stringByAppendingPathComponent: filename]; - [list insertObject: filePath atIndex: 0]; - } - } - } - } - - if ([list count] > 0) { - result = [[[list objectAtIndex: 0] retain] autorelease]; - [list removeObjectAtIndex: 0]; - } - - if (result) - [self setLastFilePath: result]; - skipDescendents = NO; - - // NSLog(@"Enumerating %@", result); - - return result; -} - -- (NSDictionary *) directoryAttributes { - return [fm fileAttributesAtPath: startPath traverseLink: NO]; -} - -- (NSDictionary *) fileAttributes { - return lastFileAttributes; -} - -- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *) state - objects: (id *) stackbuf - count: (NSUInteger) len -{ - ++state->state; - state->itemsPtr = stackbuf; - state->mutationsPtr = (unsigned long *) self; - - id next = [self nextObject]; - if (nil == next) - return 0; - - stackbuf[0] = next; - return 1; -} - -@end diff --git a/Foundation/NSConnection/NSConnection.h b/Foundation/NSConnection/NSConnection.h deleted file mode 100644 index 68959d05..00000000 --- a/Foundation/NSConnection/NSConnection.h +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSPortNameServer, NSPort, NSRunLoop, NSDistantObject, NSMutableArray, - NSMutableDictionary; - -FOUNDATION_EXPORT NSString *const NSConnectionReplyMode; - -@interface NSConnection : NSObject { - NSPort *_receivePort; - NSPort *_sendPort; - id _delegate; - BOOL _isValid; - BOOL _independentConversationQueueing; - BOOL _multipleThreadsEnabled; - NSTimeInterval _replyTimeout; - NSTimeInterval _requestTimeout; - NSMutableArray *_requestModes; - NSMutableDictionary *_statistics; -} - -+ (NSArray *) allConnections; - -+ (NSConnection *) defaultConnection; - -- initWithReceivePort: (NSPort *) receivePort sendPort: (NSPort *) sendPort; - -+ (NSConnection *) connectionWithReceivePort: (NSPort *) receivePort - sendPort: (NSPort *) sendPort; - -+ (NSConnection *) connectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName - usingNameServer: - (NSPortNameServer *) nameServer; -+ (NSConnection *) connectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName; - -+ (NSDistantObject *) - rootProxyForConnectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName - usingNameServer: - (NSPortNameServer *) nameServer; -+ (NSDistantObject *) - rootProxyForConnectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName; - -+ currentConversation; - -- delegate; -- (BOOL) isValid; -- (BOOL) independentConversationQueueing; -- (BOOL) multipleThreadsEnabled; - -- (NSTimeInterval) replyTimeout; -- (NSTimeInterval) requestTimeout; - -- (NSPort *) sendPort; -- (NSPort *) receivePort; - -- (NSArray *) requestModes; - -- rootObject; -- (NSDistantObject *) rootProxy; - -- (NSArray *) localObjects; -- (NSArray *) remoteObjects; - -- (void) setDelegate: delegate; - -- (void) invalidate; - -- (void) setIndependentConversationQueueing: (BOOL) flag; -- (void) enableMultipleThreads; -- (void) setReplyTimeout: (NSTimeInterval) seconds; - -- (void) setRequestTimeout: (NSTimeInterval) seconds; - -- (void) addRequestMode: (NSString *) mode; -- (void) removeRequestMode: (NSString *) mode; - -- (void) setRootObject: rootObject; - -- (void) runInNewThread; - -- (void) addRunLoop: (NSRunLoop *) runLoop; -- (void) removeRunLoop: (NSRunLoop *) runLoop; - -- (BOOL) registerName: (NSString *) name - withNameServer: (NSPortNameServer *) nameServer; -- (BOOL) registerName: (NSString *) name; - -- (NSDictionary *) statistics; - -@end diff --git a/Foundation/NSConnection/NSConnection.m b/Foundation/NSConnection/NSConnection.m deleted file mode 100644 index 04daf8b4..00000000 --- a/Foundation/NSConnection/NSConnection.m +++ /dev/null @@ -1,223 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import - -NSString *const NSConnectionReplyMode = @"NSConnectionReplyMode"; - -@implementation NSConnection - -+ (NSArray *) allConnections { - NSUnimplementedMethod(); - return nil; -} - -+ (NSConnection *) defaultConnection { - NSUnimplementedMethod(); - return nil; -} - -- initWithReceivePort: (NSPort *) receivePort sendPort: (NSPort *) sendPort { - _receivePort = [receivePort retain]; - _sendPort = [sendPort retain]; - return self; -} - -- (void) dealloc { - [_receivePort release]; - [_sendPort release]; - [super dealloc]; -} - -+ (NSConnection *) connectionWithReceivePort: (NSPort *) receivePort - sendPort: (NSPort *) sendPort -{ - return [[[self alloc] initWithReceivePort: receivePort - sendPort: sendPort] autorelease]; -} - -+ (NSConnection *) connectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName - usingNameServer: (NSPortNameServer *) nameServer -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSConnection *) connectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName -{ - return [self - connectionWithRegisteredName: name - host: hostName - usingNameServer: [NSPortNameServer - systemDefaultPortNameServer]]; -} - -+ (NSDistantObject *) - rootProxyForConnectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName - usingNameServer: - (NSPortNameServer *) nameServer -{ - return [[self connectionWithRegisteredName: name - host: hostName - usingNameServer: nameServer] rootProxy]; -} - -+ (NSDistantObject *) - rootProxyForConnectionWithRegisteredName: (NSString *) name - host: (NSString *) hostName -{ - return [[self connectionWithRegisteredName: name host: hostName] rootProxy]; -} - -+ currentConversation { - NSUnimplementedMethod(); - return nil; -} - -- delegate { - return _delegate; -} - -- (BOOL) isValid { - return _isValid; -} - -- (BOOL) independentConversationQueueing { - return _independentConversationQueueing; -} - -- (BOOL) multipleThreadsEnabled { - return _multipleThreadsEnabled; -} - -- (NSTimeInterval) replyTimeout { - return _replyTimeout; -} - -- (NSTimeInterval) requestTimeout { - return _requestTimeout; -} - -- (NSPort *) sendPort { - return _sendPort; -} - -- (NSPort *) receivePort { - return _receivePort; -} - -- (NSArray *) requestModes { - return _requestModes; -} - -- rootObject { - NSUnimplementedMethod(); - return nil; -} - -- (NSDistantObject *) rootProxy { - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) localObjects { - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) remoteObjects { - NSUnimplementedMethod(); - return nil; -} - -- (void) setDelegate: delegate { - _delegate = delegate; -} - -- (void) invalidate { - NSUnimplementedMethod(); -} - -- (void) setIndependentConversationQueueing: (BOOL) flag { - NSUnimplementedMethod(); -} - -- (void) enableMultipleThreads { - NSUnimplementedMethod(); -} - -- (void) setReplyTimeout: (NSTimeInterval) seconds { - _replyTimeout = seconds; - NSUnimplementedMethod(); -} - -- (void) setRequestTimeout: (NSTimeInterval) seconds { - _requestTimeout = seconds; - NSUnimplementedMethod(); -} - -- (void) addRequestMode: (NSString *) mode { - NSUnimplementedMethod(); -} - -- (void) removeRequestMode: (NSString *) mode { - NSUnimplementedMethod(); -} - -- (void) setRootObject: rootObject { - NSUnimplementedMethod(); -} - -- (void) runInNewThread { - NSUnimplementedMethod(); -} - -- (void) addRunLoop: (NSRunLoop *) runLoop { - NSUnimplementedMethod(); -} - -- (void) removeRunLoop: (NSRunLoop *) runLoop { - NSUnimplementedMethod(); -} - -- (BOOL) registerName: (NSString *) name - withNameServer: (NSPortNameServer *) nameServer -{ - NSUnimplementedMethod(); - return NO; -} - -- (BOOL) registerName: (NSString *) name { - NSUnimplementedMethod(); - return NO; -} - -- (NSDictionary *) statistics { - return _statistics; -} - -@end diff --git a/Foundation/NSConnection/NSDistantObject.h b/Foundation/NSConnection/NSDistantObject.h deleted file mode 100644 index 1cee0968..00000000 --- a/Foundation/NSConnection/NSDistantObject.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSConnection, Protocol; - -@interface NSDistantObject : NSProxy { - NSConnection *_connection; - Protocol *_protocol; - id _localOrRemote; -} - -- initWithLocal: local connection: (NSConnection *) connection; -- initWithTarget: remote connection: (NSConnection *) connection; - -+ (NSDistantObject *) proxyWithLocal: local - connection: (NSConnection *) connection; -+ (NSDistantObject *) proxyWithTarget: remote - connection: (NSConnection *) connection; - -- (NSConnection *) connectionForProxy; - -- (void) setProtocolForProxy: (Protocol *) protocol; - -@end diff --git a/Foundation/NSConnection/NSDistantObject.m b/Foundation/NSConnection/NSDistantObject.m deleted file mode 100644 index a298b257..00000000 --- a/Foundation/NSConnection/NSDistantObject.m +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@implementation NSDistantObject - -- initWithLocal: local connection: (NSConnection *) connection { - _connection = [connection retain]; - _protocol = nil; - _localOrRemote = local; - return self; -} - -- initWithTarget: remote connection: (NSConnection *) connection { - _connection = [connection retain]; - _protocol = nil; - _localOrRemote = remote; - return self; -} - -+ (NSDistantObject *) proxyWithLocal: local - connection: (NSConnection *) connection -{ - return [[[self alloc] initWithLocal: local - connection: connection] autorelease]; -} - -+ (NSDistantObject *) proxyWithTarget: remote - connection: (NSConnection *) connection -{ - return [[[self alloc] initWithTarget: remote - connection: connection] autorelease]; -} - -- (NSConnection *) connectionForProxy { - return _connection; -} - -- (void) setProtocolForProxy: (Protocol *) protocol { - protocol = [protocol retain]; - [_protocol release]; - _protocol = protocol; -} - -@end diff --git a/Foundation/NSConnection/NSMessagePort.h b/Foundation/NSConnection/NSMessagePort.h deleted file mode 100644 index a2e74ada..00000000 --- a/Foundation/NSConnection/NSMessagePort.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMessagePort : NSPort - -@end diff --git a/Foundation/NSConnection/NSMessagePort.m b/Foundation/NSConnection/NSMessagePort.m deleted file mode 100644 index 590ede9c..00000000 --- a/Foundation/NSConnection/NSMessagePort.m +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@implementation NSMessagePort - -@end diff --git a/Foundation/NSConnection/NSPort.h b/Foundation/NSConnection/NSPort.h deleted file mode 100644 index a017a953..00000000 --- a/Foundation/NSConnection/NSPort.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSPortMessage, NSRunLoop, NSConnection, NSDate, NSMutableArray, NSData; - -FOUNDATION_EXPORT NSString *const NSPortDidBecomeInvalidNotification; - -@interface NSPort : NSObject - -+ (NSPort *) port; - -- (id) delegate; -- (void) setDelegate: delegate; - -- (void) invalidate; -- (BOOL) isValid; - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; - -- (void) addConnection: (NSConnection *) connection - toRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode; -- (void) removeConnection: (NSConnection *) connection - fromRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode; - -- (NSUInteger) reservedSpaceLength; - -- (BOOL) sendBeforeDate: (NSDate *) beforeDate - components: (NSMutableArray *) components - from: (NSPort *) fromPort - reserved: (NSUInteger) reservedSpace; - -- (BOOL) sendBeforeDate: (NSDate *) beforeData - msgid: (NSUInteger) msgid - components: (NSMutableArray *) components - from: (NSPort *) fromPort - reserved: (NSUInteger) reservedSpace; - -@end - -@interface NSObject (NSPortDelegate) -- (void) handlePortMessage: (NSPortMessage *) portMessage; -@end - -#import diff --git a/Foundation/NSConnection/NSPort.m b/Foundation/NSConnection/NSPort.m deleted file mode 100644 index aa6d1918..00000000 --- a/Foundation/NSConnection/NSPort.m +++ /dev/null @@ -1,104 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -NSString *const NSPortDidBecomeInvalidNotification = - @"NSPortDidBecomeInvalidNotification"; - -@implementation NSPort - -+ allocWithZone: (NSZone *) zone { - if (self == [NSPort class]) - return NSAllocateObject([NSPort class], 0, - zone); // replace with NSMachPort - else - return NSAllocateObject(self, 0, zone); -} - -+ (NSPort *) port { - return [[[self alloc] init] autorelease]; -} - -- (id) delegate { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) setDelegate: delegate { - NSInvalidAbstractInvocation(); -} - -- (void) invalidate { - NSInvalidAbstractInvocation(); -} - -- (BOOL) isValid { - NSInvalidAbstractInvocation(); - return NO; -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - NSInvalidAbstractInvocation(); -} - -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - NSInvalidAbstractInvocation(); -} - -- (void) addConnection: (NSConnection *) connection - toRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode -{ - NSInvalidAbstractInvocation(); -} - -- (void) removeConnection: (NSConnection *) connection - fromRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode -{ - NSInvalidAbstractInvocation(); -} - -- (NSUInteger) reservedSpaceLength { - NSInvalidAbstractInvocation(); - return 0; -} - -- (BOOL) sendBeforeDate: (NSDate *) beforeDate - components: (NSMutableArray *) components - from: (NSPort *) fromPort - reserved: (NSUInteger) reservedSpace -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) sendBeforeDate: (NSDate *) beforeData - msgid: (NSUInteger) msgid - components: (NSMutableArray *) components - from: (NSPort *) fromPort - reserved: (NSUInteger) reservedSpace -{ - NSInvalidAbstractInvocation(); - return NO; -} - -@end diff --git a/Foundation/NSConnection/NSPortCoder.h b/Foundation/NSConnection/NSPortCoder.h deleted file mode 100644 index 651c10ff..00000000 --- a/Foundation/NSConnection/NSPortCoder.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSPort, NSConnection, NSArray; - -@interface NSPortCoder : NSCoder - -- initWithReceivePort: (NSPort *) receivePort - sendPort: (NSPort *) sendPort - components: (NSArray *) components; - -+ portCoderWithReceivePort: (NSPort *) receivePort - sendPort: (NSPort *) sendPort - components: (NSArray *) components; - -- (NSConnection *) connection; - -- (void) encodePortObject: (NSPort *) port; - -- (NSPort *) decodePortObject; - -- (BOOL) isBycopy; - -- (BOOL) isByref; - -- (void) dispatch; - -@end - -@interface NSObject (NSPortCoder) -- (Class) classForPortCoder; -- replacementObjectForPortCoder: (NSPortCoder *) coder; -@end diff --git a/Foundation/NSConnection/NSPortCoder.m b/Foundation/NSConnection/NSPortCoder.m deleted file mode 100644 index 0e45cff9..00000000 --- a/Foundation/NSConnection/NSPortCoder.m +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSPortCoder - -- initWithReceivePort: (NSPort *) receivePort - sendPort: (NSPort *) sendPort - components: (NSArray *) components -{ - NSUnimplementedMethod(); - return nil; -} - -+ portCoderWithReceivePort: (NSPort *) receivePort - sendPort: (NSPort *) sendPort - components: (NSArray *) components -{ - return [[[self alloc] initWithReceivePort: receivePort - sendPort: sendPort - components: components] autorelease]; -} - -- (NSConnection *) connection { - NSUnimplementedMethod(); - return nil; -} - -- (void) encodePortObject: (NSPort *) port { - NSUnimplementedMethod(); -} - -- (NSPort *) decodePortObject { - NSUnimplementedMethod(); - return nil; -} - -- (BOOL) isBycopy { - NSUnimplementedMethod(); - return NO; -} - -- (BOOL) isByref { - NSUnimplementedMethod(); - return NO; -} - -- (void) dispatch { - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSConnection/NSPortMessage.h b/Foundation/NSConnection/NSPortMessage.h deleted file mode 100644 index faa47491..00000000 --- a/Foundation/NSConnection/NSPortMessage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSPort, NSArray, NSMutableArray, NSDate; - -@interface NSPortMessage : NSObject { - NSPort *_sendPort; - NSPort *_receivePort; - NSMutableArray *_components; - uint32_t _msgid; -} - -- initWithSendPort: (NSPort *) sendPort - receivePort: (NSPort *) receivePort - components: (NSArray *) components; - -- (uint32_t) msgid; -- (NSArray *) components; -- (NSPort *) sendPort; -- (NSPort *) receivePort; - -- (void) setMsgid: (uint32_t) msgid; - -- (BOOL) sendBeforeDate: (NSDate *) date; - -@end diff --git a/Foundation/NSConnection/NSPortMessage.m b/Foundation/NSConnection/NSPortMessage.m deleted file mode 100644 index 06ecda28..00000000 --- a/Foundation/NSConnection/NSPortMessage.m +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -@implementation NSPortMessage - -- initWithSendPort: (NSPort *) sendPort - receivePort: (NSPort *) receivePort - components: (NSArray *) components -{ - _sendPort = [sendPort retain]; - _receivePort = [receivePort retain]; - _components = [[NSMutableArray alloc] initWithArray: components]; - _msgid = 0; - return self; -} - -- (void) dealloc { - [_sendPort release]; - [_receivePort release]; - [_components release]; - [super dealloc]; -} - -- (uint32_t) msgid { - return _msgid; -} - -- (NSArray *) components { - return _components; -} - -- (NSPort *) sendPort { - return _sendPort; -} - -- (NSPort *) receivePort { - return _receivePort; -} - -- (void) setMsgid: (uint32_t) msgid { - _msgid = msgid; -} - -- (BOOL) sendBeforeDate: (NSDate *) date { - return [_sendPort sendBeforeDate: date - msgid: _msgid - components: _components - from: _receivePort - reserved: 0]; -} - -@end diff --git a/Foundation/NSConnection/NSProtocolChecker.h b/Foundation/NSConnection/NSProtocolChecker.h deleted file mode 100644 index 5f2fafa7..00000000 --- a/Foundation/NSConnection/NSProtocolChecker.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSProtocolChecker : NSProxy { - NSObject *_target; - Protocol *_protocol; -} - -+ protocolCheckerWithTarget: (NSObject *) target - protocol: (Protocol *) protocol; - -- initWithTarget: (NSObject *) target protocol: (Protocol *) protocol; - -- (NSObject *) target; -- (Protocol *) protocol; - -@end diff --git a/Foundation/NSConnection/NSProtocolChecker.m b/Foundation/NSConnection/NSProtocolChecker.m deleted file mode 100644 index 27f65c07..00000000 --- a/Foundation/NSConnection/NSProtocolChecker.m +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@implementation NSProtocolChecker - -+ protocolCheckerWithTarget: (NSObject *) target - protocol: (Protocol *) protocol -{ - return [[[self alloc] initWithTarget: target - protocol: protocol] autorelease]; -} - -- initWithTarget: (NSObject *) target protocol: (Protocol *) protocol { - _target = [target retain]; - _protocol = [protocol retain]; - return self; -} - -- (void) dealloc { - [_target release]; - [_protocol release]; - [super dealloc]; -} - -- (NSObject *) target { - return _target; -} - -- (Protocol *) protocol { - return _protocol; -} - -@end diff --git a/Foundation/NSConnection/NSSocketPort.h b/Foundation/NSConnection/NSSocketPort.h deleted file mode 100644 index c02e36d4..00000000 --- a/Foundation/NSConnection/NSSocketPort.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -@class NSInputStream, NSOutputStream; - -typedef int NSSocketNativeHandle; - -@interface NSSocketPort : NSPort { - id _delegate; - BOOL _isValid; - NSInputStream *_inputStream; - NSOutputStream *_outputStream; -} - -- init; -- initRemoteWithProtocolFamily: (int) family - socketType: (int) type - protocol: (int) protocol - address: (NSData *) address; -- initRemoteWithTCPPort: (uint16_t) port host: (NSString *) hostName; -- initWithTCPPort: (unsigned short) port; -- initWithProtocolFamily: (int) family - socketType: (int) type - protocol: (int) protocol - address: (NSData *) address; -- initWithProtocolFamily: (int) family - socketType: (int) type - protocol: (int) protocol - socket: (NSSocketNativeHandle) nativeSocket; - -- (NSData *) address; -- (int) protocol; -- (int) protocolFamily; -- (NSSocketNativeHandle) socket; -- (int) socketType; - -@end diff --git a/Foundation/NSConnection/NSSocketPort.m b/Foundation/NSConnection/NSSocketPort.m deleted file mode 100644 index feae3357..00000000 --- a/Foundation/NSConnection/NSSocketPort.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -@implementation NSSocketPort - -+ allocWithZone: (NSZone *) zone { - if (self == [NSSocketPort class]) - return NSAllocateObject([[NSPlatform currentPlatform] socketPortClass], - 0, zone); - else - return NSAllocateObject(self, 0, zone); -} - -- init { - NSUnimplementedMethod(); - return nil; -} - -- initRemoteWithProtocolFamily: (int) family - socketType: (int) type - protocol: (int) protocol - address: (NSData *) address -{ - NSUnimplementedMethod(); - return nil; -} - -- initRemoteWithTCPPort: (uint16_t) port host: (NSString *) hostName { - NSUnimplementedMethod(); - return nil; -} - -- initWithTCPPort: (unsigned short) port { - NSUnimplementedMethod(); - return nil; -} - -- initWithProtocolFamily: (int) family - socketType: (int) type - protocol: (int) protocol - address: (NSData *) address -{ - NSUnimplementedMethod(); - return nil; -} - -- initWithProtocolFamily: (int) family - socketType: (int) type - protocol: (int) protocol - socket: (NSSocketNativeHandle) nativeSocket -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSData *) address { - NSUnimplementedMethod(); - return nil; -} - -- (int) protocol { - NSUnimplementedMethod(); - return 0; -} - -- (int) protocolFamily { - NSUnimplementedMethod(); - return 0; -} - -- (NSSocketNativeHandle) socket { - NSUnimplementedMethod(); - return 0; -} - -- (int) socketType { - NSUnimplementedMethod(); - return 0; -} - -- (void) stream: (NSStream *) stream handleEvent: (NSStreamEvent) streamEvent { - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSData/NSData.h b/Foundation/NSData/NSData.h deleted file mode 100644 index 84f34af4..00000000 --- a/Foundation/NSData/NSData.h +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSURL, NSError; - -enum { - NSDataReadingMapped = 0x01, - NSDataReadingUncached = 0x02, - - // deprecated - NSMappedRead = NSDataReadingMapped, - NSUncachedRead = NSDataReadingUncached, -}; -typedef NSUInteger NSDataReadingOptions; - -enum { - NSDataWritingAtomic = 0x01, - - // deprecated - NSAtomicWrite = NSDataWritingAtomic, -}; - -typedef NSUInteger NSDataWritingOptions; - -enum { - NSDataSearchBackwards = 0x01, - NSDataSearchAnchored = 0x02, -}; -typedef NSUInteger NSDataSearchOptions; - -@interface NSData : NSObject - -- initWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone; -- initWithBytesNoCopy: (void *) bytes length: (NSUInteger) length; -- initWithBytes: (const void *) bytes length: (NSUInteger) length; -- initWithData: (NSData *) data; -- initWithContentsOfFile: (NSString *) path; -- initWithContentsOfMappedFile: (NSString *) path; -- initWithContentsOfURL: (NSURL *) url; -- initWithContentsOfFile: (NSString *) path - options: (NSUInteger) options - error: (NSError **) errorp; -- initWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) errorp; - -+ data; -+ dataWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone; -+ dataWithBytesNoCopy: (void *) bytes length: (NSUInteger) length; -+ dataWithBytes: (const void *) bytes length: (NSUInteger) length; -+ dataWithData: (NSData *) data; -+ dataWithContentsOfFile: (NSString *) path; -+ dataWithContentsOfMappedFile: (NSString *) path; -+ dataWithContentsOfURL: (NSURL *) url; -+ dataWithContentsOfFile: (NSString *) path - options: (NSUInteger) options - error: (NSError **) errorp; -+ dataWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) errorp; - -- (const void *) bytes; -- (NSUInteger) length; - -- (BOOL) isEqualToData: (NSData *) data; - -- (void) getBytes: (void *) result range: (NSRange) range; -- (void) getBytes: (void *) result length: (NSUInteger) length; -- (void) getBytes: (void *) result; - -- (NSData *) subdataWithRange: (NSRange) range; - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically; -- (BOOL) writeToURL: (NSURL *) url atomically: (BOOL) atomically; -- (BOOL) writeToFile: (NSString *) path - options: (NSUInteger) options - error: (NSError **) errorp; -- (BOOL) writeToURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) errorp; - -- (NSString *) description; - -@end - -#import diff --git a/Foundation/NSData/NSData.m b/Foundation/NSData/NSData.m deleted file mode 100644 index 71c592ce..00000000 --- a/Foundation/NSData/NSData.m +++ /dev/null @@ -1,412 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - 2009 Markus Hitter - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSData - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSData")) - return NSAllocateObject([NSData_concrete class], 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -- initWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithBytesNoCopy: (void *) bytes length: (NSUInteger) length { - return [self initWithBytesNoCopy: bytes length: length freeWhenDone: YES]; -} - -- initWithBytes: (const void *) bytes length: (NSUInteger) length { - return [self initWithBytesNoCopy: NSBytesReplicate(bytes, length, - NSZoneFromPointer(self)) - length: length]; -} - -- initWithData: (NSData *) data { - return [self initWithBytes: [data bytes] length: [data length]]; -} - -- initWithContentsOfFile: (NSString *) path { - return [self initWithContentsOfFile: path options: 0 error: NULL]; -} - -- initWithContentsOfMappedFile: (NSString *) path { - return [self initWithContentsOfFile: path - options: NSMappedRead - error: NULL]; -} - -- initWithContentsOfURL: (NSURL *) url { - return [self initWithContentsOfURL: url options: 0 error: NULL]; -} - -- initWithContentsOfFile: (NSString *) path - options: (NSUInteger) options - error: (NSError **) errorp -{ - NSUInteger length; - void *bytes = NULL; - - if (options & NSUncachedRead) - NSLog(@"-[%@ %s] option NSUncachedRead currently ignored.", - [self class], sel_getName(_cmd)); - - if (options & NSMappedRead) - bytes = [[NSPlatform currentPlatform] mapContentsOfFile: path - length: &length]; - else - bytes = NSPlatformContentsOfFile(path, &length); - - if (bytes == NULL) { - - if (errorp != NULL) { - NSDictionary *userInfo = [NSDictionary - dictionaryWithObject: - [NSString - stringWithFormat: @"Could not open file %@", - path] - forKey: NSLocalizedDescriptionKey]; - - *errorp = [NSError errorWithDomain: NSURLErrorDomain - code: NSURLErrorCannotOpenFile - userInfo: userInfo]; - } - - [self dealloc]; - return nil; - } - - return [self initWithBytesNoCopy: bytes length: length]; -} - -- initWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) errorp -{ - - if (![url isFileURL]) { - - if ([[url scheme] isEqual: @"http"] || - [[url scheme] isEqual: @"https"]) { - NSError *error = nil; - NSURLResponse *response = nil; - - NSData *data = [NSURLConnection - sendSynchronousRequest: [NSURLRequest requestWithURL: url] - returningResponse: &response - error: &error]; - if (data == nil) { - if (errorp != NULL) { - *errorp = error; - } - [self dealloc]; - return nil; - } - return [self initWithData: data]; - } else { - [self dealloc]; - - if (errorp != NULL) { - NSDictionary *userInfo = [NSDictionary - dictionaryWithObject: - [NSString stringWithFormat: - @"Could not open url %@", url] - forKey: NSLocalizedDescriptionKey]; - - *errorp = [NSError errorWithDomain: NSURLErrorDomain - code: NSURLErrorBadURL - userInfo: userInfo]; - } - return nil; - } - } - - return [self initWithContentsOfFile: [url path] - options: options - error: errorp]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableData allocWithZone: zone] initWithData: self]; -} - -- (Class) classForCoder { - return [NSData class]; -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - NSData *data = [keyed decodeObjectForKey: @"NS.data"]; - - return [self initWithData: data]; - } else { - [self dealloc]; - return [[coder decodeDataObject] retain]; - } -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedArchiver class]]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - - [keyed encodeObject: self forKey: @"NS.data"]; - } else { - [coder encodeDataObject: self]; - } -} - -+ data { - return [[[self allocWithZone: NULL] init] autorelease]; -} - -+ dataWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - return [[[self allocWithZone: NULL] initWithBytesNoCopy: bytes - length: length - freeWhenDone: freeWhenDone] - autorelease]; -} - -+ dataWithBytesNoCopy: (void *) bytes length: (NSUInteger) length { - return [[[self allocWithZone: NULL] initWithBytesNoCopy: bytes - length: length] - autorelease]; -} - -+ dataWithBytes: (const void *) bytes length: (NSUInteger) length { - return [[[self allocWithZone: NULL] initWithBytes: bytes - length: length] autorelease]; -} - -+ dataWithData: (NSData *) data { - return [[[self allocWithZone: NULL] initWithBytes: [data bytes] - length: [data length]] - autorelease]; -} - -+ dataWithContentsOfFile: (NSString *) path { - return [[[self allocWithZone: NULL] initWithContentsOfFile: path] - autorelease]; -} - -+ dataWithContentsOfMappedFile: (NSString *) path { - return [[[self allocWithZone: NULL] initWithContentsOfMappedFile: path] - autorelease]; -} - -+ dataWithContentsOfURL: (NSURL *) url { - return [[[self allocWithZone: NULL] initWithContentsOfURL: url] - autorelease]; -} - -+ dataWithContentsOfFile: (NSString *) path - options: (NSUInteger) options - error: (NSError **) errorp -{ - return [[[self alloc] initWithContentsOfFile: path - options: options - error: errorp] autorelease]; -} - -+ dataWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) errorp -{ - return [[[self alloc] initWithContentsOfURL: url - options: options - error: errorp] autorelease]; -} - -- (const void *) bytes { - NSInvalidAbstractInvocation(); - return NULL; -} - -- (NSUInteger) length { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSUInteger) hash { - return [self length]; -} - -- (BOOL) isEqual: other { - if (self == other) - return YES; - - if (![other isKindOfClass: objc_lookUpClass("NSData")]) - return NO; - - return [self isEqualToData: other]; -} - -- (BOOL) isEqualToData: (NSData *) other { - NSUInteger length; - - if (self == other) - return YES; - - length = [self length]; - if (length != [other length]) - return NO; - - return NSBytesEqual([self bytes], [other bytes], length); -} - -- (void) getBytes: (void *) result range: (NSRange) range { - const char *bytes = [self bytes]; - NSUInteger i; - - if (NSMaxRange(range) > [self length]) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < range.length; i++) - ((char *) result)[i] = bytes[range.location + i]; -} - -- (void) getBytes: (void *) result { - NSRange range = {0, [self length]}; - [self getBytes: result range: range]; -} - -- (void) getBytes: (void *) result length: (NSUInteger) length { - NSRange range = {0, length}; - [self getBytes: result range: range]; -} - -- (NSData *) subdataWithRange: (NSRange) range { - void *buffer; - - if (NSMaxRange(range) > [self length]) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - buffer = NSZoneCalloc(NSZoneFromPointer(self), range.length, sizeof(char)); - - [self getBytes: buffer range: range]; - - return NSAutorelease(NSData_concreteNewNoCopy(NULL, buffer, range.length)); -} - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically { - NSUInteger options = 0; - if (atomically) - options = NSAtomicWrite; - return [self writeToFile: path options: options error: (NSError **) 0]; -} - -- (BOOL) writeToURL: (NSURL *) url atomically: (BOOL) atomically { - NSUInteger options = 0; - if (atomically) - options = NSAtomicWrite; - return [self writeToURL: url options: options error: (NSError **) 0]; -} - -- (BOOL) writeToFile: (NSString *) path - options: (NSUInteger) options - error: (NSError **) errorp -{ - return [[NSPlatform currentPlatform] writeContentsOfFile: path - bytes: [self bytes] - length: [self length] - options: options - error: errorp]; -} - -- (BOOL) writeToURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) errorp -{ - if (![url isFileURL]) { - NSLog(@"-[%@ %s]: Only file: URLs are supported so far.", [self class], - sel_getName(_cmd)); - return NO; - } - return [self writeToFile: [url path] options: options error: errorp]; -} - -- (NSString *) description { - const char *hex = "0123456789ABCDEF"; - const char *bytes = [self bytes]; - NSUInteger length = [self length]; - NSUInteger pos = 0, i; - char *cString; - NSString *string = NSAutorelease(NSString_cStringNewWithCapacity( - NULL, 1 + length * 2 + (length / 4) + 1, &cString)); - - cString[pos++] = '<'; - for (i = 0; i < length;) { - uint8_t byte = bytes[i]; - - cString[pos++] = hex[byte >> 4]; - cString[pos++] = hex[byte & 0x0F]; - i++; - - if ((i % 4) == 0 && i < length) - cString[pos++] = ' '; - } - cString[pos++] = '>'; - - return string; -} - -- (unsigned) _cfTypeID { - return kNSCFTypeData; -} - -@end diff --git a/Foundation/NSData/NSData_concrete.h b/Foundation/NSData/NSData_concrete.h deleted file mode 100644 index 8292d397..00000000 --- a/Foundation/NSData/NSData_concrete.h +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSData_concrete : NSData { - NSUInteger _length; - char *_bytes; - BOOL _freeWhenDone; -} -@end - -static inline void NSByteCopy(const void *src, void *dst, NSUInteger count) { - const char *srcBytes = src; - char *dstBytes = dst; - NSUInteger i; - - for (i = 0; i < count; i++) - dstBytes[i] = srcBytes[i]; -} - -static inline void NSByteZero(void *bytes, NSUInteger count) { - char *zeroBytes = bytes; - NSUInteger i; - - for (i = 0; i < count; i++) - zeroBytes[i] = 0; -} - -static inline void NSByteZeroRange(void *bytes, NSRange range) { - char *zeroBytes = bytes; - NSUInteger i; - - for (i = 0; i < range.length; i++) - zeroBytes[i + range.location] = 0; -} - -static inline BOOL NSBytesEqual(const void *src1, const void *src2, - NSUInteger count) -{ - const char *bytes1 = src1, *bytes2 = src2; - NSUInteger i; - - for (i = 0; i < count; i++) - if (bytes1[i] != bytes2[i]) - return NO; - - return YES; -} - -void *NSBytesReplicate(const void *src, NSUInteger count, NSZone *zone); - -NSData *NSData_concreteNew(NSZone *zone, const char *bytes, NSUInteger length); -NSData *NSData_concreteNewNoCopy(NSZone *zone, void *bytes, NSUInteger length); diff --git a/Foundation/NSData/NSData_concrete.m b/Foundation/NSData/NSData_concrete.m deleted file mode 100644 index 15dbd752..00000000 --- a/Foundation/NSData/NSData_concrete.m +++ /dev/null @@ -1,108 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSData_concrete - -void *NSBytesReplicate(const void *src, NSUInteger count, NSZone *zone) { - void *dst = NSZoneMalloc(zone, count); - - if (dst != NULL) { - NSByteCopy(src, dst, count); - } - - return dst; -} - -NSData *NSData_concreteNew(NSZone *zone, const char *bytes, NSUInteger length) { - NSData_concrete *self = NSAllocateObject([NSData_concrete class], 0, zone); - if (self) { - self->_length = length; - self->_bytes = NSBytesReplicate(bytes, length, zone); - self->_freeWhenDone = YES; - } - - return self; -} - -NSData *NSData_concreteNewNoCopy(NSZone *zone, void *bytes, NSUInteger length) { - NSData_concrete *self = NSAllocateObject([NSData_concrete class], 0, zone); - - if (self) { - self->_length = length; - self->_bytes = bytes; - self->_freeWhenDone = YES; - } - return self; -} - -- init { - _length = 0; - _bytes = NULL; - _freeWhenDone = YES; - return self; -} - -- initWithBytes: (const void *) bytes length: (NSUInteger) length { - _length = length; - _bytes = NSBytesReplicate(bytes, length, NSZoneFromPointer(self)); - _freeWhenDone = YES; - return self; -} - -- initWithBytesNoCopy: (void *) bytes length: (NSUInteger) length { - _length = length; - _bytes = bytes; - _freeWhenDone = YES; - return self; -} - -- initWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - _length = length; - _bytes = bytes; - _freeWhenDone = freeWhenDone; - return self; -} - -- initWithContentsOfMappedFile: (NSString *) path { - [self dealloc]; - return (NSData_concrete *) [[NSData_mapped alloc] - initWithContentsOfMappedFile: path]; -} - -- (void) dealloc { - if (_bytes != NULL && _freeWhenDone) - NSZoneFree(NSZoneFromPointer(_bytes), _bytes); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSUInteger) length { - return _length; -} -- (const void *) bytes { - return _bytes; -} - -@end diff --git a/Foundation/NSData/NSData_mapped.h b/Foundation/NSData/NSData_mapped.h deleted file mode 100644 index 674f91fa..00000000 --- a/Foundation/NSData/NSData_mapped.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSData_mapped : NSData { - NSUInteger _length; - char *_bytes; -} - -- initWithContentsOfMappedFile: (NSString *) path; - -@end diff --git a/Foundation/NSData/NSData_mapped.m b/Foundation/NSData/NSData_mapped.m deleted file mode 100644 index 95ce597c..00000000 --- a/Foundation/NSData/NSData_mapped.m +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSData_mapped - -- initWithContentsOfMappedFile: (NSString *) path { - _bytes = [[NSPlatform currentPlatform] mapContentsOfFile: path - length: &_length]; - return self; -} - -- (void) dealloc { - if (_bytes != NULL) - [[NSPlatform currentPlatform] unmapAddress: _bytes length: _length]; - [super dealloc]; -} - -- (NSUInteger) length { - return _length; -} - -- (const void *) bytes { - return _bytes; -} - -@end diff --git a/Foundation/NSData/NSMutableData.h b/Foundation/NSData/NSMutableData.h deleted file mode 100644 index 19fb5245..00000000 --- a/Foundation/NSData/NSMutableData.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableData : NSData - -- initWithCapacity: (NSUInteger) capacity; -- initWithLength: (NSUInteger) length; - -+ dataWithCapacity: (NSUInteger) capacity; -+ dataWithLength: (NSUInteger) length; - -- (void *) mutableBytes; - -- (void) setLength: (NSUInteger) length; -- (void) increaseLengthBy: (NSUInteger) delta; - -- (void) appendBytes: (const void *) bytes length: (NSUInteger) length; -- (void) appendData: (NSData *) data; - -- (void) replaceBytesInRange: (NSRange) range withBytes: (const void *) bytes; -- (void) replaceBytesInRange: (NSRange) range - withBytes: (const void *) bytes - length: (NSUInteger) bytesLength; -- (void) setData: (NSData *) data; - -- (void) resetBytesInRange: (NSRange) range; - -@end diff --git a/Foundation/NSData/NSMutableData.m b/Foundation/NSData/NSMutableData.m deleted file mode 100644 index f531b7b7..00000000 --- a/Foundation/NSData/NSMutableData.m +++ /dev/null @@ -1,191 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSMutableData - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSMutableData")) - return NSAllocateObject(objc_lookUpClass("NSMutableData_concrete"), 0, - zone); - - return NSAllocateObject(self, 0, zone); -} - -- initWithCapacity: (NSUInteger) capacity { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithLength: (NSUInteger) length { - self = [self initWithCapacity: length]; - [self setLength: length]; - return self; -} - -- initWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - self = [self initWithCapacity: length]; - - [self appendBytes: bytes length: length]; - - if (freeWhenDone) - NSZoneFree(NSZoneFromPointer(bytes), bytes); - - return self; -} - -- initWithContentsOfMappedFile: (NSString *) path { - NSUnimplementedMethod(); - return nil; -} - -+ dataWithCapacity: (NSUInteger) capacity { - return [[[self allocWithZone: NULL] initWithCapacity: capacity] - autorelease]; -} - -+ dataWithLength: (NSUInteger) length { - return [[[self allocWithZone: NULL] initWithLength: length] autorelease]; -} - -- copyWithZone: (NSZone *) zone { - return [[NSData allocWithZone: zone] initWithBytes: [self bytes] - length: [self length]]; -} - -- (Class) classForKeyedArchiver { - // Keyed archiver doesn't like mutable data - return [NSData class]; -} - -- (Class) classForCoder { - return [NSMutableData class]; -} - -- (void *) mutableBytes { - NSInvalidAbstractInvocation(); - return NULL; -} - -- (void) setLength: (NSUInteger) length { - NSInvalidAbstractInvocation(); -} - -- (void) increaseLengthBy: (NSUInteger) delta { - [self setLength: [self length] + delta]; -} - -- (void) appendBytes: (const void *) bytes length: (NSUInteger) length { - NSUInteger selfLength = [self length]; - NSRange range = NSMakeRange(selfLength, length); - - [self setLength: selfLength + length]; - [self replaceBytesInRange: range withBytes: bytes]; -} - -- (void) appendData: (NSData *) data { - [self appendBytes: [data bytes] length: [data length]]; -} - -- (void) replaceBytesInRange: (NSRange) range withBytes: (const void *) bytes { - NSInteger i, length = [self length]; - void *mutableBytes; - - if (range.location > length) - NSRaiseException(NSRangeException, self, _cmd, - @"location %d beyond length %d", range.location, - [self length]); - - if (range.location + range.length > length) - [self setLength: range.location + range.length]; - - mutableBytes = [self mutableBytes]; - - for (i = 0; i < range.length; i++) - ((char *) mutableBytes)[range.location + i] = ((char *) bytes)[i]; -} - -- (void) replaceBytesInRange: (NSRange) range - withBytes: (const void *) bytes - length: (NSUInteger) bytesLength -{ - NSUInteger i, delta, length = [self length]; - char *mutableBytes; - - if (range.location > length) - NSRaiseException(NSRangeException, self, _cmd, - @"location %d beyond length %d", range.location, - length); - - if (bytesLength > range.length) { - delta = bytesLength - range.length; - - length += delta; - [self setLength: length]; - - mutableBytes = [self mutableBytes]; - - for (i = 0; i < length - (NSMaxRange(range) + delta); i++) - mutableBytes[length - 1 - i] = mutableBytes[length - 1 - i - delta]; - } else if (bytesLength < range.length) { - delta = range.length - bytesLength; - - mutableBytes = [self mutableBytes]; - - for (i = range.location + bytesLength; i < length - delta; i++) - mutableBytes[i] = mutableBytes[i + delta]; - - length -= delta; - [self setLength: length]; - - mutableBytes = [self mutableBytes]; - } else { - mutableBytes = [self mutableBytes]; - } - - for (i = 0; i < bytesLength; i++) - mutableBytes[range.location + i] = ((char *) bytes)[i]; -} - -- (void) setData: (NSData *) data { - [self setLength: [data length]]; - [self replaceBytesInRange: NSMakeRange(0, [data length]) - withBytes: [data bytes]]; -} - -- (void) resetBytesInRange: (NSRange) range { - if (NSMaxRange(range) > [self length]) - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - - NSByteZeroRange([self mutableBytes], range); -} - -@end diff --git a/Foundation/NSData/NSMutableData_concrete.h b/Foundation/NSData/NSMutableData_concrete.h deleted file mode 100644 index 30ece9e9..00000000 --- a/Foundation/NSData/NSMutableData_concrete.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableData_concrete : NSMutableData { - NSUInteger _length; - NSUInteger _capacity; - void *_bytes; -} - -@end diff --git a/Foundation/NSData/NSMutableData_concrete.m b/Foundation/NSData/NSMutableData_concrete.m deleted file mode 100644 index bf4bc649..00000000 --- a/Foundation/NSData/NSMutableData_concrete.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import - -@implementation NSMutableData_concrete - -- (const void *) bytes { - return _bytes; -} - -- (NSUInteger) length { - return _length; -} - -- (void *) mutableBytes { - return _bytes; -} - -static inline void setLength(NSMutableData_concrete *self, NSUInteger length) { - if (length > self->_length) { - if (length > self->_capacity) { - self->_capacity = length * 2; - self->_bytes = NSZoneRealloc(NSZoneFromPointer(self->_bytes), - self->_bytes, self->_capacity); - } - - NSByteZeroRange(self->_bytes, - NSMakeRange(self->_length, length - self->_length)); - } - - self->_length = length; -} - -static inline void replaceBytesInRange(NSMutableData_concrete *self, - NSRange range, const void *bytes) -{ - NSInteger i, loc = range.location, len = range.length; - - if (loc > self->_length) - NSRaiseException(NSRangeException, self, - @selector(replaceBytesInRange:withBytes:), - @"location %d beyond length %d", loc, self->_length); - - if (loc + len > self->_length) - setLength(self, loc + len); - - for (i = 0; i < len; i++) - ((char *) self->_bytes)[i + loc] = ((char *) bytes)[i]; -} - -- (void) setLength: (NSUInteger) length { - setLength(self, length); -} - -- init { - return [self initWithCapacity: 0]; -} - -- initWithCapacity: (NSUInteger) capacity { - _length = 0; - _capacity = (capacity < 4) ? 4 : capacity; - _bytes = NSZoneMalloc(NSZoneFromPointer(self), _capacity); - return self; -} - -- (void) dealloc { - NSZoneFree(NSZoneFromPointer(_bytes), _bytes); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (void) appendBytes: (const void *) bytes length: (NSUInteger) length { - NSRange range = NSMakeRange(_length, length); - - setLength(self, _length + length); - - replaceBytesInRange(self, range, bytes); -} - -- (void) replaceBytesInRange: (NSRange) range withBytes: (const void *) bytes { - replaceBytesInRange(self, range, bytes); -} - -@end diff --git a/Foundation/NSDate/NSCalendar.h b/Foundation/NSDate/NSCalendar.h deleted file mode 100644 index 6cb426d7..00000000 --- a/Foundation/NSDate/NSCalendar.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSDateComponents, NSTimeZone, NSLocale, NSDate; - -enum { - NSEraCalendarUnit = kCFCalendarUnitEra, - NSYearCalendarUnit = kCFCalendarUnitYear, - NSMonthCalendarUnit = kCFCalendarUnitMonth, - NSDayCalendarUnit = kCFCalendarUnitDay, - NSHourCalendarUnit = kCFCalendarUnitHour, - NSMinuteCalendarUnit = kCFCalendarUnitMinute, - NSSecondCalendarUnit = kCFCalendarUnitSecond, - NSWeekCalendarUnit = kCFCalendarUnitWeek, - NSWeekdayCalendarUnit = kCFCalendarUnitWeekday, - NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal, - // NSQuarterCalendarUnit = kCFCalendarUnitQuarter, -}; -typedef NSUInteger NSCalendarUnit; - -FOUNDATION_EXPORT NSString *const NSGregorianCalendar; - -@interface NSCalendar : NSObject { - NSString *_identifier; - NSUInteger _firstWeekday; - NSUInteger _minimumDaysInFirstWeek; - NSTimeZone *_timeZone; - NSLocale *_locale; -} - -+ currentCalendar; - -- initWithCalendarIdentifier: (NSString *) identifier; - -- (NSString *) calendarIdentifier; -- (NSUInteger) firstWeekday; -- (NSUInteger) minimumDaysInFirstWeek; -- (NSTimeZone *) timeZone; -- (NSLocale *) locale; - -- (void) setFirstWeekday: (NSUInteger) weekday; -- (void) setMinimumDaysInFirstWeek: (NSUInteger) days; -- (void) setTimeZone: (NSTimeZone *) timeZone; -- (void) setLocale: (NSLocale *) locale; - -- (NSRange) minimumRangeOfUnit: (NSCalendarUnit) unit; -- (NSRange) maximumRangeOfUnit: (NSCalendarUnit) unit; -- (NSRange) rangeOfUnit: (NSCalendarUnit) unit - inUnit: (NSCalendarUnit) inUnit - forDate: (NSDate *) date; -- (NSUInteger) ordinalityOfUnit: (NSCalendarUnit) unit - inUnit: (NSCalendarUnit) inUnit - forDate: (NSDate *) date; - -- (NSDateComponents *) components: (NSUInteger) flags fromDate: (NSDate *) date; -- (NSDateComponents *) components: (NSUInteger) flags - fromDate: (NSDate *) fromDate - toDate: (NSDate *) toDate - options: (NSUInteger) options; - -- (NSDate *) dateByAddingComponents: (NSDateComponents *) components - toDate: (NSDate *) date - options: (NSUInteger) options; -- (NSDate *) dateFromComponents: (NSDateComponents *) components; - -@end diff --git a/Foundation/NSDate/NSCalendar.m b/Foundation/NSDate/NSCalendar.m deleted file mode 100644 index 779c8231..00000000 --- a/Foundation/NSDate/NSCalendar.m +++ /dev/null @@ -1,211 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import - -NSString *const NSGregorianCalendar = @"NSGregorianCalendar"; - -@implementation NSCalendar - -- copyWithZone: (NSZone *) zone { - NSCalendar *result = NSCopyObject(self, 0, zone); - - result->_identifier = [_identifier copy]; - result->_timeZone = [_timeZone copy]; - result->_locale = [_locale copy]; - - return result; -} - -+ currentCalendar { - return [[[self alloc] initWithCalendarIdentifier: NSGregorianCalendar] - autorelease]; -} - -- initWithCalendarIdentifier: (NSString *) identifier { - _identifier = [identifier copy]; - _timeZone = [[NSTimeZone defaultTimeZone] copy]; - return self; -} - -- (void) dealloc { - [_identifier release]; - [_timeZone release]; - [super dealloc]; -} - -- (NSString *) calendarIdentifier { - return _identifier; -} - -- (NSUInteger) firstWeekday { - return _firstWeekday; -} - -- (NSUInteger) minimumDaysInFirstWeek { - return _minimumDaysInFirstWeek; -} - -- (NSTimeZone *) timeZone { - return _timeZone; -} - -- (NSLocale *) locale { - return _locale; -} - -- (void) setFirstWeekday: (NSUInteger) weekday { - _firstWeekday = weekday; -} - -- (void) setMinimumDaysInFirstWeek: (NSUInteger) days { - _minimumDaysInFirstWeek = days; -} - -- (void) setTimeZone: (NSTimeZone *) timeZone { - timeZone = [timeZone retain]; - [_timeZone release]; - _timeZone = timeZone; -} - -- (void) setLocale: (NSLocale *) locale { - locale = [locale retain]; - [_locale release]; - _locale = locale; -} - -- (NSRange) minimumRangeOfUnit: (NSCalendarUnit) unit { - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSRange) maximumRangeOfUnit: (NSCalendarUnit) unit { - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSRange) rangeOfUnit: (NSCalendarUnit) unit - inUnit: (NSCalendarUnit) inUnit - forDate: (NSDate *) date -{ - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSUInteger) ordinalityOfUnit: (NSCalendarUnit) unit - inUnit: (NSCalendarUnit) inUnit - forDate: (NSDate *) date -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSDateComponents *) components: (NSUInteger) flags - fromDate: (NSDate *) date -{ - NSDateComponents *result = [[[NSDateComponents alloc] init] autorelease]; - NSTimeInterval interval = [date timeIntervalSinceReferenceDate]; - - interval = NSMoveIntervalFromTimeZoneToGMT(interval, - [NSTimeZone localTimeZone]); - - if (flags & NSEraCalendarUnit) - NSUnimplementedMethod(); - if (flags & NSYearCalendarUnit) - [result setYear: NSYearFromTimeInterval(interval)]; - if (flags & NSMonthCalendarUnit) - [result setMonth: NSMonthFromTimeInterval(interval)]; - if (flags & NSDayCalendarUnit) - [result setDay: NSDayOfMonthFromTimeInterval(interval)]; - if (flags & NSHourCalendarUnit) - [result setHour: NS24HourFromTimeInterval(interval)]; - if (flags & NSMinuteCalendarUnit) - [result setMinute: NSMinuteFromTimeInterval(interval)]; - if (flags & NSSecondCalendarUnit) - [result setSecond: NSSecondFromTimeInterval(interval)]; - if (flags & NSWeekCalendarUnit) - NSUnimplementedMethod(); - if (flags & NSWeekdayCalendarUnit) - [result setWeekday: NSWeekdayFromTimeInterval(interval)]; - if (flags & NSWeekdayOrdinalCalendarUnit) - NSUnimplementedMethod(); -#if 0 - if(flags&NSQuarterCalendarUnit) - NSUnimplementedMethod(); -#endif - - return result; -} - -- (NSDateComponents *) components: (NSUInteger) flags - fromDate: (NSDate *) fromDate - toDate: (NSDate *) toDate - options: (NSUInteger) options -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDate *) dateByAddingComponents: (NSDateComponents *) components - toDate: (NSDate *) date - options: (NSUInteger) options -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDate *) dateFromComponents: (NSDateComponents *) components { - NSInteger year = 0; - NSInteger month = 0; - NSInteger day = 0; - NSInteger hour = 0; - NSInteger minute = 0; - NSInteger second = 0; - NSInteger milliseconds = 0; - NSInteger check; - - // FIXME: doesn't handle all components - - if ((check = [components year]) != NSUndefinedDateComponent) - year = check; - if ((check = [components month]) != NSUndefinedDateComponent) - month = check; - if ((check = [components day]) != NSUndefinedDateComponent) - day = check; - if ((check = [components hour]) != NSUndefinedDateComponent) - hour = check; - if ((check = [components minute]) != NSUndefinedDateComponent) - minute = check; - if ((check = [components second]) != NSUndefinedDateComponent) - second = check; - - NSTimeInterval interval = NSTimeIntervalWithComponents( - year, month, day, hour, minute, second, milliseconds); - - interval = NSMoveIntervalFromGMTToTimeZone(interval, - [NSTimeZone localTimeZone]); - - return [NSDate dateWithTimeIntervalSinceReferenceDate: interval]; -} - -@end diff --git a/Foundation/NSDate/NSCalendarDate.h b/Foundation/NSDate/NSCalendarDate.h deleted file mode 100644 index 2f6a59e8..00000000 --- a/Foundation/NSDate/NSCalendarDate.h +++ /dev/null @@ -1,94 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSCalendarDate : NSDate { - NSTimeInterval _timeInterval; - NSString *_format; - NSTimeZone *_timeZone; -} - -+ calendarDate; - -- initWithYear: (NSInteger) year - month: (NSUInteger) month - day: (NSUInteger) day - hour: (NSUInteger) hour - minute: (NSUInteger) minute - second: (NSUInteger) second - timeZone: (NSTimeZone *) timeZone; - -- initWithString: (NSString *) string - calendarFormat: (NSString *) format - locale: (NSDictionary *) locale; -- initWithString: (NSString *) string calendarFormat: (NSString *) format; -- initWithString: (NSString *) string; - -+ dateWithYear: (NSInteger) year - month: (NSUInteger) month - day: (NSUInteger) day - hour: (NSUInteger) hour - minute: (NSUInteger) minute - second: (NSUInteger) second - timeZone: (NSTimeZone *) timeZone; - -+ dateWithString: (NSString *) string - calendarFormat: (NSString *) format - locale: (NSDictionary *) locale; - -+ dateWithString: (NSString *) string calendarFormat: (NSString *) format; - -- (NSString *) calendarFormat; -- (NSTimeZone *) timeZone; - -- (void) setCalendarFormat: (NSString *) format; -- (void) setTimeZone: (NSTimeZone *) timeZone; - -- (NSInteger) secondOfMinute; // 0-59 -- (NSInteger) minuteOfHour; // 0-59 -- (NSInteger) hourOfDay; // 0-23 -- (NSInteger) dayOfWeek; // 0 through 6. how consistent -- (NSInteger) dayOfMonth; // 1 through 31 -- (NSInteger) dayOfYear; // 1 through 366. also consistent -- (NSInteger) monthOfYear; // 1 through 12 says spec -- (NSInteger) yearOfCommonEra; // 1 through armageddon -- (NSInteger) dayOfCommonEra; - -- (void) years: (NSInteger *) yearsp - months: (NSInteger *) monthsp - days: (NSInteger *) daysp - hours: (NSInteger *) hoursp - minutes: (NSInteger *) minutesp - seconds: (NSInteger *) secondsp - sinceDate: (NSCalendarDate *) date; - -- (NSCalendarDate *) dateByAddingYears: (NSInteger) years - months: (NSInteger) months - days: (NSInteger) days - hours: (NSInteger) hours - minutes: (NSInteger) minutes - seconds: (NSInteger) seconds; - -- (NSString *) descriptionWithCalendarFormat: (NSString *) format - locale: (NSDictionary *) locale; -- (NSString *) descriptionWithCalendarFormat: (NSString *) format; -- (NSString *) descriptionWithLocale: (NSDictionary *) locale; - -@end diff --git a/Foundation/NSDate/NSCalendarDate.m b/Foundation/NSDate/NSCalendarDate.m deleted file mode 100644 index 902405e9..00000000 --- a/Foundation/NSDate/NSCalendarDate.m +++ /dev/null @@ -1,450 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - David Young -#import -#import -#import -#import -#import - -// given in spec. is this a default someplace? -static NSString *const defaultCalendarDate = @"%Y-%m-%d %H:%M:%S %z"; - -@implementation NSCalendarDate - -+ calendarDate { - return [[[self allocWithZone: NULL] init] autorelease]; -} - -- initWithTimeIntervalSinceReferenceDate: (NSTimeInterval) seconds { - _timeInterval = seconds; - _format = [defaultCalendarDate retain]; - _timeZone = [[NSTimeZone defaultTimeZone] retain]; - - return self; -} - -- (NSTimeInterval) timeIntervalSinceReferenceDate { - return _timeInterval; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- initWithYear: (NSInteger) year - month: (NSUInteger) month - day: (NSUInteger) day - hour: (NSUInteger) hour - minute: (NSUInteger) minute - second: (NSUInteger) second - timeZone: (NSTimeZone *) aTimeZone; -{ - NSTimeInterval interval = NSTimeIntervalWithComponents( - year, month, day, hour, minute, second, 0); - NSTimeZone *tz = - (aTimeZone == nil ? [NSTimeZone localTimeZone] : aTimeZone); - interval = interval - - [tz secondsFromGMTForDate: - [NSDate dateWithTimeIntervalSinceReferenceDate: - interval]]; - - [self initWithTimeIntervalSinceReferenceDate: interval]; - [_timeZone release]; - _timeZone = [tz retain]; - - return self; -} - -- initWithString: (NSString *) string - calendarFormat: (NSString *) format - locale: (NSDictionary *) locale -{ - NSMutableString *mu = [[string mutableCopy] autorelease]; - - if ([mu rangeOfString: @"T"].location != NSNotFound) - [mu replaceCharactersInRange: [mu rangeOfString: @"T"] - withString: @" "]; - - NSDateFormatter *dateFormatter = [[[NSDateFormatter allocWithZone: NULL] - initWithDateFormat: format - allowNaturalLanguage: YES - locale: locale] autorelease]; - NSString *error; - - [self autorelease]; - if ([dateFormatter getObjectValue: &self - forString: mu - errorDescription: &error]) { - [self retain]; // getObjectValues are autoreleased - return self; - } - - return nil; -} - -- initWithString: (NSString *) string calendarFormat: (NSString *) format { - return [self initWithString: string calendarFormat: format locale: nil]; -} - -- initWithString: (NSString *) string { - return [self initWithString: string calendarFormat: defaultCalendarDate]; -} - -- (void) dealloc { - [_format release]; - [_timeZone release]; - - [super dealloc]; -} - -+ dateWithYear: (NSInteger) year - month: (NSUInteger) month - day: (NSUInteger) day - hour: (NSUInteger) hour - minute: (NSUInteger) minute - second: (NSUInteger) second - timeZone: (NSTimeZone *) timeZone -{ - return [[[self allocWithZone: NULL] initWithYear: year - month: month - day: day - hour: hour - minute: minute - second: second - timeZone: timeZone] autorelease]; - ; -} - -+ dateWithString: (NSString *) string - calendarFormat: (NSString *) format - locale: (NSDictionary *) locale -{ - return [[[self allocWithZone: NULL] initWithString: string - calendarFormat: format - locale: locale] autorelease]; -} - -+ dateWithString: (NSString *) string calendarFormat: (NSString *) format { - return [[[self allocWithZone: NULL] initWithString: string - calendarFormat: format] autorelease]; -} - -- (Class) classForCoder { - return [NSCalendarDate class]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - [coder encodeDouble: _timeInterval forKey: @"NS.time"]; - [coder encodeObject: _timeZone forKey: @"NS.timezone"]; - [coder encodeObject: _format forKey: @"NS.format"]; - } else { - [coder encodeValueOfObjCType: @encode(double) at: &_timeInterval]; - [coder encodeObject: _timeZone]; - [coder encodeObject: _format]; - } -} - -- initWithCoder: (NSCoder *) coder { - - if ([coder allowsKeyedCoding]) { - _timeInterval = [coder decodeDoubleForKey: @"NS.time"]; - _timeZone = [[coder decodeObjectForKey: @"NS.timezone"] copy]; - _format = [[coder decodeObjectForKey: @"NS.format"] copy]; - } else { - [coder decodeValueOfObjCType: @encode(double) at: &_timeInterval]; - _timeZone = [[coder decodeObject] retain]; - _format = [[coder decodeObject] retain]; - } - - return self; -} - -- (NSString *) calendarFormat { - return _format; -} - -- (NSTimeZone *) timeZone { - return _timeZone; -} - -- (void) setCalendarFormat: (NSString *) format { - if (format != nil) { - format = [format copy]; - [_format release]; - _format = format; - } else { - [_format release]; - _format = [defaultCalendarDate copy]; - } -} - -- (void) setTimeZone: (NSTimeZone *) timeZone { - [timeZone retain]; - [_timeZone release]; - _timeZone = timeZone; -} - -- (NSTimeInterval) timeZoneAdjustedInterval { - return NSMoveIntervalFromTimeZoneToGMT(_timeInterval, _timeZone); -} - -- (NSInteger) secondOfMinute { - return NSSecondFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) minuteOfHour { - return NSMinuteFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) hourOfDay { - return NS24HourFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) dayOfWeek { - return NSWeekdayFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) dayOfMonth { - return NSDayOfMonthFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) dayOfYear { - return NSDayOfYearFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) monthOfYear { - return NSMonthFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) yearOfCommonEra { - return NSYearFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (NSInteger) dayOfCommonEra { - return NSDayOfCommonEraFromTimeInterval([self timeZoneAdjustedInterval]); -} - -- (void) years: (NSInteger *) yearsp - months: (NSInteger *) monthsp - days: (NSInteger *) daysp - hours: (NSInteger *) hoursp - minutes: (NSInteger *) minutesp - seconds: (NSInteger *) secondsp - sinceDate: (NSCalendarDate *) since -{ - NSTimeInterval delta; - BOOL inverted = NO; - NSInteger carry = 0; - - if ([self timeIntervalSinceReferenceDate] > - [since timeIntervalSinceReferenceDate]) { - delta = [self timeIntervalSinceReferenceDate] - - [since timeIntervalSinceReferenceDate]; - } else { - delta = [since timeIntervalSinceReferenceDate] - - [self timeIntervalSinceReferenceDate]; - inverted = YES; - } - carry = NSYearFromTimeInterval(delta); - (carry) -= 2001; - if (inverted) - carry *= -1; - if (yearsp != NULL) { - *yearsp = carry; - carry = 0; - } - - carry = (NSMonthFromTimeInterval(delta) - 1) * (inverted ? -1 : 1) + - carry * 12; - if (monthsp != NULL) { - *monthsp = carry; - } - if (inverted) { - carry = (NSDayOfCommonEraFromTimeInterval([[since - dateByAddingYears: yearsp != NULL ? *yearsp : 0 - months: monthsp != NULL ? *monthsp : 0 - days: 0 - hours: 0 - minutes: 0 - seconds: 0] - timeIntervalSinceReferenceDate]) - - NSDayOfCommonEraFromTimeInterval( - [self timeIntervalSinceReferenceDate]) - - 1) * - -1; - } else { - carry = NSDayOfCommonEraFromTimeInterval([[self - dateByAddingYears: yearsp != NULL ? *yearsp * -1 : 0 - months: monthsp != NULL ? *monthsp * -1 : 0 - days: 0 - hours: 0 - minutes: 0 - seconds: 0] timeIntervalSinceReferenceDate]) - - NSDayOfCommonEraFromTimeInterval( - [since timeIntervalSinceReferenceDate]) - - 1; - } - - if (daysp != NULL) { - *daysp = carry; - carry = 0; - } - - if (inverted) { - carry = carry * 24 - NS24HourFromTimeInterval(delta); - } else { - carry = carry * 24 + NS24HourFromTimeInterval(delta); - } - - if (hoursp != NULL) { - *hoursp = carry; - carry = 0; - } - - if (inverted) { - carry = carry * 60 - NSMinuteFromTimeInterval(delta); - } else { - carry = carry * 60 + NSMinuteFromTimeInterval(delta); - } - if (minutesp != NULL) { - *minutesp = carry; - carry = 0; - } - - if (secondsp != NULL) { - if (inverted) { - *secondsp = carry * 60 - NSSecondFromTimeInterval(delta); - } else { - *secondsp = carry * 60 + NSSecondFromTimeInterval(delta); - } - } -} - -// Might be a little off with daylight savings, etc., needs to be verified -- (NSCalendarDate *) dateByAddingYears: (NSInteger) yearDelta - months: (NSInteger) monthDelta - days: (NSInteger) dayDelta - hours: (NSInteger) hourDelta - minutes: (NSInteger) minuteDelta - seconds: (NSInteger) secondDelta -{ - NSInteger year = NSYearFromTimeInterval(_timeInterval); - NSInteger month = NSMonthFromTimeInterval(_timeInterval); - NSInteger day = NSDayOfMonthFromTimeInterval(_timeInterval); - NSInteger hour = NS24HourFromTimeInterval(_timeInterval); - NSInteger minute = NSMinuteFromTimeInterval(_timeInterval); - NSInteger second = NSSecondFromTimeInterval(_timeInterval); - - second += secondDelta; - minute += second / 60; - second %= 60; - if (second < 0) { - second += 60; - minute--; - } - - minute += minuteDelta; - hour += minute / 60; - minute %= 60; - if (minute < 0) { - minute += 60; - hour--; - } - - hour += hourDelta; - day += hour / 24; - hour %= 24; - if (hour < 0) { - day--; - hour += 24; - } - - day += dayDelta; - if (day > 28) { - int i = NSNumberOfDaysInMonthOfYear(month, year); - while (day > i) { - day -= i; - if (month < 12) { - month++; - } else { - year++; - month = 1; - } - i = NSNumberOfDaysInMonthOfYear(month, year); - } - } else { - while (day <= 0) { - if (month == 1) { - month = 12; - year--; - } else { - month--; - } - day += NSNumberOfDaysInMonthOfYear(month, year); - } - } - - month += monthDelta; - - while (month > 12) { - month -= 12; - year++; - } - - while (month < 1) { - month += 12; - year--; - } - - year += yearDelta; - - NSCalendarDate *resultDate = [NSCalendarDate - dateWithTimeIntervalSinceReferenceDate: - NSTimeIntervalWithComponents(year, month, day, hour, minute, - second, 0)]; - - [resultDate setTimeZone: _timeZone]; - - return resultDate; -} - -- (NSString *) descriptionWithCalendarFormat: (NSString *) format - locale: (NSDictionary *) locale -{ - return NSStringWithDateFormatLocale(_timeInterval, format, locale, - _timeZone); -} - -- (NSString *) descriptionWithCalendarFormat: (NSString *) format { - return NSStringWithDateFormatLocale(_timeInterval, format, nil, _timeZone); -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithDateFormatLocale(_timeInterval, _format, locale, - _timeZone); -} - -- (NSString *) description { - return NSStringWithDateFormatLocale(_timeInterval, _format, nil, _timeZone); -} - -@end diff --git a/Foundation/NSDate/NSDate.h b/Foundation/NSDate/NSDate.h deleted file mode 100644 index 6bf441f2..00000000 --- a/Foundation/NSDate/NSDate.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSString, NSArray, NSDictionary, NSCalendarDate, NSTimeZone; - -typedef double NSTimeInterval; - -FOUNDATION_EXPORT const NSTimeInterval NSTimeIntervalSince1970; - -@interface NSDate : NSObject - -+ (NSTimeInterval) timeIntervalSinceReferenceDate; - -+ distantPast; -+ distantFuture; - -- init; -- initWithString: (NSString *) string; -- initWithTimeIntervalSinceReferenceDate: (NSTimeInterval) seconds; -- initWithTimeIntervalSinceNow: (NSTimeInterval) seconds; -- initWithTimeIntervalSince1970: (NSTimeInterval) seconds; -- initWithTimeInterval: (NSTimeInterval) seconds sinceDate: (NSDate *) date; - -+ date; -+ dateWithString: (NSString *) string; -+ dateWithTimeIntervalSinceReferenceDate: (NSTimeInterval) seconds; -+ dateWithTimeIntervalSinceNow: (NSTimeInterval) seconds; -+ dateWithTimeIntervalSince1970: (NSTimeInterval) seconds; - -- (NSTimeInterval) timeIntervalSinceReferenceDate; - -- (NSTimeInterval) timeIntervalSinceDate: (NSDate *) date; -- (NSTimeInterval) timeIntervalSinceNow; -- (NSTimeInterval) timeIntervalSince1970; - -- (BOOL) isEqualToDate: (NSDate *) date; - -- (NSComparisonResult) compare: (NSDate *) date; -- (NSDate *) earlierDate: (NSDate *) date; -- (NSDate *) laterDate: (NSDate *) date; - -- addTimeInterval: (NSTimeInterval) seconds; -- dateByAddingTimeInterval: (NSTimeInterval) seconds; - -- (NSCalendarDate *) dateWithCalendarFormat: (NSString *) format - timeZone: (NSTimeZone *) timeZone; - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale; -- (NSString *) descriptionWithCalendarFormat: (NSString *) format - timeZone: (NSTimeZone *) timeZone - locale: (NSDictionary *) locale; - -@end - -#import -#import - -@interface NSDate (NSCalendarDateExtras) -+ (id) dateWithNaturalLanguageString: (NSString *) string; -@end diff --git a/Foundation/NSDate/NSDate.m b/Foundation/NSDate/NSDate.m deleted file mode 100644 index 116dce55..00000000 --- a/Foundation/NSDate/NSDate.m +++ /dev/null @@ -1,269 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import - -const NSTimeInterval NSTimeIntervalSince1970 = (NSTimeInterval) 978307200.0; - -#define DEFAULT_CALENDAR_FORMAT @"%Y-%m-%d %H:%M:%S %z" - -@implementation NSDate - -+ allocWithZone: (NSZone *) zone { - if (self == [NSDate class]) - return NSAllocateObject([NSDate_timeInterval class], 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -+ (NSTimeInterval) timeIntervalSinceReferenceDate { - return NSPlatformTimeIntervalSinceReferenceDate(); -} - -+ distantPast { - static NSDate *staticInstance = nil; - if (!staticInstance) - staticInstance = [[self allocWithZone: NULL] - initWithTimeIntervalSinceReferenceDate: -(2010.0L * 365.0 * - 24.0 * 60.0 * 60.0)]; - return staticInstance; -} - -+ distantFuture { - static NSDate *staticInstance = nil; - if (!staticInstance) - staticInstance = [[self allocWithZone: NULL] - initWithTimeIntervalSinceReferenceDate: 2010.0L * 365.0 * 24.0 * - 60.0 * 60.0]; - return staticInstance; -} - -- init { - return [self initWithTimeIntervalSinceReferenceDate: - NSPlatformTimeIntervalSinceReferenceDate()]; -} - -- initWithString: (NSString *) string { - [self dealloc]; - return [[NSCalendarDate allocWithZone: NULL] initWithString: string]; -} - -- initWithTimeIntervalSinceReferenceDate: (NSTimeInterval) seconds { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithTimeIntervalSinceNow: (NSTimeInterval) seconds { - return [self initWithTimeIntervalSinceReferenceDate: - NSPlatformTimeIntervalSinceReferenceDate() + seconds]; -} - -- initWithTimeIntervalSince1970: (NSTimeInterval) seconds { - return [self - initWithTimeIntervalSinceReferenceDate: -NSTimeIntervalSince1970 + - seconds]; -} - -- initWithTimeInterval: (NSTimeInterval) seconds sinceDate: (NSDate *) other { - return [self initWithTimeIntervalSinceReferenceDate: - [other timeIntervalSinceReferenceDate] + seconds]; -} - -+ date { - return [[[self allocWithZone: NULL] - initWithTimeIntervalSinceReferenceDate: - NSPlatformTimeIntervalSinceReferenceDate()] autorelease]; -} - -+ dateWithString: (NSString *) string { - return [[[NSCalendarDate allocWithZone: NULL] initWithString: string] - autorelease]; -} - -+ dateWithTimeIntervalSinceReferenceDate: (NSTimeInterval) seconds { - return [[[self allocWithZone: NULL] - initWithTimeIntervalSinceReferenceDate: seconds] autorelease]; -} - -+ dateWithTimeIntervalSinceNow: (NSTimeInterval) seconds { - return [[[self allocWithZone: NULL] initWithTimeIntervalSinceNow: seconds] - autorelease]; -} - -+ dateWithTimeIntervalSince1970: (NSTimeInterval) seconds { - return [[[self allocWithZone: NULL] initWithTimeIntervalSince1970: seconds] - autorelease]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSDate"); -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSTimeInterval interval = [self timeIntervalSinceReferenceDate]; - - [coder encodeValueOfObjCType: @encode(NSTimeInterval) at: &interval]; -} - -- initWithCoder: (NSCoder *) coder { - NSTimeInterval interval = 0; - - if (![coder allowsKeyedCoding]) { - [coder decodeValueOfObjCType: @encode(NSTimeInterval) at: &interval]; - } else { - interval = [coder decodeDoubleForKey: @"NS.time"]; - } - return [self initWithTimeIntervalSinceReferenceDate: interval]; -} - -- (NSTimeInterval) timeIntervalSinceReferenceDate { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSTimeInterval) timeIntervalSinceDate: (NSDate *) other { - return [self timeIntervalSinceReferenceDate] - - [other timeIntervalSinceReferenceDate]; -} - -- (NSTimeInterval) timeIntervalSinceNow { - return [self timeIntervalSinceReferenceDate] - - [NSDate timeIntervalSinceReferenceDate]; -} - -- (NSTimeInterval) timeIntervalSince1970 { - return [self timeIntervalSinceReferenceDate] + NSTimeIntervalSince1970; -} - -- (NSUInteger) hash { - return (NSUInteger)[self timeIntervalSinceReferenceDate]; -} - -- (BOOL) isEqual: other { - if (self == other) - return YES; - - if (![other isKindOfClass: [NSDate class]]) - return NO; - - return [self isEqualToDate: other]; -} - -- (BOOL) isEqualToDate: (NSDate *) other { - if (self == other) - return YES; - - return [self timeIntervalSinceReferenceDate] == - [other timeIntervalSinceReferenceDate]; -} - -- (NSComparisonResult) compare: (NSDate *) other { - NSTimeInterval interval = [self timeIntervalSinceDate: other]; - - if (interval < 0) - return NSOrderedAscending; - - if (interval > 0) - return NSOrderedDescending; - - return NSOrderedSame; -} - -- (NSDate *) earlierDate: (NSDate *) other { - NSTimeInterval interval = [self timeIntervalSinceDate: other]; - return (interval < 0) ? self : other; -} - -- (NSDate *) laterDate: (NSDate *) other { - NSTimeInterval interval = [self timeIntervalSinceDate: other]; - return (interval > 0) ? self : other; -} - -- addTimeInterval: (NSTimeInterval) seconds { - return [[self class] - dateWithTimeIntervalSinceReferenceDate: - [self timeIntervalSinceReferenceDate] + seconds]; -} - -- dateByAddingTimeInterval: (NSTimeInterval) seconds { - return [[self class] - dateWithTimeIntervalSinceReferenceDate: - [self timeIntervalSinceReferenceDate] + seconds]; -} - -- (NSCalendarDate *) dateWithCalendarFormat: (NSString *) format - timeZone: (NSTimeZone *) timeZone -{ - NSCalendarDate *date = - [NSCalendarDate dateWithTimeIntervalSinceReferenceDate: - [self timeIntervalSinceReferenceDate]]; - - if (format == nil) - format = DEFAULT_CALENDAR_FORMAT; - if (timeZone == nil) - timeZone = [NSTimeZone defaultTimeZone]; - - [date setCalendarFormat: format]; - [date setTimeZone: timeZone]; - - return date; -} - -- (NSString *) description { - return [self descriptionWithLocale: nil]; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithDateFormatLocale([self timeIntervalSinceReferenceDate], - DEFAULT_CALENDAR_FORMAT, locale, - [NSTimeZone defaultTimeZone]); -} - -- (NSString *) descriptionWithCalendarFormat: (NSString *) format - timeZone: (NSTimeZone *) timeZone - locale: (NSDictionary *) locale -{ - if (format == nil) - format = DEFAULT_CALENDAR_FORMAT; - if (timeZone == nil) - timeZone = [NSTimeZone defaultTimeZone]; - - // nil locale is handled within this function - return NSStringWithDateFormatLocale([self timeIntervalSinceReferenceDate], - format, locale, timeZone); -} - -@end - -@implementation NSDate (NSCalendarDateExtras) - -+ (id) dateWithNaturalLanguageString: (NSString *) string { - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSDate/NSDateComponents.h b/Foundation/NSDate/NSDateComponents.h deleted file mode 100644 index 5442cfcb..00000000 --- a/Foundation/NSDate/NSDateComponents.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -enum { NSUndefinedDateComponent = 0x7fffffff }; - -@interface NSDateComponents : NSObject { - NSInteger _era; - NSInteger _year; - NSInteger _quarter; - NSInteger _month; - NSInteger _week; - NSInteger _weekday; - NSInteger _weekdayOrdinal; - NSInteger _day; - NSInteger _hour; - NSInteger _minute; - NSInteger _second; -} - -- (NSInteger) era; -- (NSInteger) year; -- (NSInteger) quarter; -- (NSInteger) month; -- (NSInteger) week; -- (NSInteger) weekday; -- (NSInteger) weekdayOrdinal; -- (NSInteger) day; -- (NSInteger) hour; -- (NSInteger) minute; -- (NSInteger) second; - -- (void) setEra: (NSInteger) value; -- (void) setYear: (NSInteger) value; -- (void) setQuarter: (NSInteger) value; -- (void) setMonth: (NSInteger) value; -- (void) setWeek: (NSInteger) value; -- (void) setWeekday: (NSInteger) value; -- (void) setWeekdayOrdinal: (NSInteger) value; -- (void) setDay: (NSInteger) value; -- (void) setHour: (NSInteger) value; -- (void) setMinute: (NSInteger) value; -- (void) setSecond: (NSInteger) value; - -@end diff --git a/Foundation/NSDate/NSDateComponents.m b/Foundation/NSDate/NSDateComponents.m deleted file mode 100644 index d122bc5b..00000000 --- a/Foundation/NSDate/NSDateComponents.m +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@implementation NSDateComponents - -- init { - _era = NSUndefinedDateComponent; - _year = NSUndefinedDateComponent; - _quarter = NSUndefinedDateComponent; - _month = NSUndefinedDateComponent; - _week = NSUndefinedDateComponent; - _weekday = NSUndefinedDateComponent; - _weekdayOrdinal = NSUndefinedDateComponent; - _day = NSUndefinedDateComponent; - _hour = NSUndefinedDateComponent; - _minute = NSUndefinedDateComponent; - _second = NSUndefinedDateComponent; - return self; -} - -- (NSInteger) era { - return _era; -} - -- (NSInteger) year { - return _year; -} - -- (NSInteger) quarter { - return _quarter; -} - -- (NSInteger) month { - return _month; -} - -- (NSInteger) week { - return _week; -} - -- (NSInteger) weekday { - return _weekday; -} - -- (NSInteger) weekdayOrdinal { - return _weekdayOrdinal; -} - -- (NSInteger) day { - return _day; -} - -- (NSInteger) hour { - return _hour; -} - -- (NSInteger) minute { - return _minute; -} - -- (NSInteger) second { - return _second; -} - -- (void) setEra: (NSInteger) value { - _era = value; -} - -- (void) setYear: (NSInteger) value { - _year = value; -} - -- (void) setQuarter: (NSInteger) value { - _quarter = value; -} - -- (void) setMonth: (NSInteger) value { - _month = value; -} - -- (void) setWeek: (NSInteger) value { - _week = value; -} - -- (void) setWeekday: (NSInteger) value { - _weekday = value; -} - -- (void) setWeekdayOrdinal: (NSInteger) value { - _weekdayOrdinal = value; -} - -- (void) setDay: (NSInteger) value { - _day = value; -} - -- (void) setHour: (NSInteger) value { - _hour = value; -} - -- (void) setMinute: (NSInteger) value { - _minute = value; -} - -- (void) setSecond: (NSInteger) value { - _second = value; -} - -@end diff --git a/Foundation/NSDate/NSDateFormatter.h b/Foundation/NSDate/NSDateFormatter.h deleted file mode 100644 index 5cc1bf2a..00000000 --- a/Foundation/NSDate/NSDateFormatter.h +++ /dev/null @@ -1,120 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -typedef enum { - NSDateFormatterBehaviorDefault = 0, - NSDateFormatterBehavior10_0 = 1000, - NSDateFormatterBehavior10_4 = 1040, -} NSDateFormatterBehavior; - -typedef enum { - NSDateFormatterNoStyle = kCFDateFormatterNoStyle, - NSDateFormatterShortStyle = kCFDateFormatterShortStyle, - NSDateFormatterMediumStyle = kCFDateFormatterMediumStyle, - NSDateFormatterLongStyle = kCFDateFormatterLongStyle, - NSDateFormatterFullStyle = kCFDateFormatterFullStyle -} NSDateFormatterStyle; - -@interface NSDateFormatter : NSFormatter { - NSDateFormatterBehavior _behavior; - NSDateFormatterStyle _dateStyle; - NSDateFormatterStyle _timeStyle; - NSString *_dateFormat10_0; - NSString *_dateFormat; - BOOL _allowsNaturalLanguage; - NSDictionary *_locale; - NSTimeZone *_tz; -} - -- initWithDateFormat: (NSString *) format - allowNaturalLanguage: (BOOL) flag; // shouldn't this be "allows" ? - -// added because NSDateFormatter is the backend for -// initWithString:calendarFormat:locale shouldn't this really exist anyway? -- initWithDateFormat: (NSString *) format - allowNaturalLanguage: (BOOL) flag - locale: (NSDictionary *) locale; - -- (NSString *) dateFormat; -- (BOOL) allowsNaturalLanguage; -- (NSDateFormatterBehavior) formatterBehavior; - -- (NSDictionary *) locale; - -- (void) setDateFormat: (NSString *) format; - -- (NSString *) stringFromDate: (NSDate *) date; -- (NSDate *) dateFromString: (NSString *) string; -- (NSArray *) shortStandaloneWeekdaySymbols; -- (NSArray *) standaloneWeekdaySymbols; - -- (void) setLenient: (BOOL) value; -- (void) setFormatterBehavior: (NSDateFormatterBehavior) value; -- (void) setTimeZone: (NSTimeZone *) tz; -- (NSTimeZone *) timeZone; - -@end - -// internal use - -NSTimeInterval NSMoveIntervalFromTimeZoneToGMT(NSTimeInterval interval, - NSTimeZone *timeZone); -NSTimeInterval NSMoveIntervalFromGMTToTimeZone(NSTimeInterval interval, - NSTimeZone *timeZone); - -NSInteger NSNumberOfDaysInMonthOfYear(NSInteger month, NSInteger year); -// interval is not time zone adjusteed -NSTimeInterval NSTimeIntervalWithComponents(NSInteger year, NSInteger month, - NSInteger day, NSInteger hour, - NSInteger minute, NSInteger second, - NSInteger milliseconds); - -// interval has already been time zone adjusted -NSInteger NSDayOfCommonEraFromTimeInterval(NSTimeInterval interval); - -NSInteger NSYearFromTimeInterval(NSTimeInterval interval); -NSInteger NSDayOfYearFromTimeInterval(NSTimeInterval interval); // 1-366 - -NSInteger NSMonthFromTimeInterval(NSTimeInterval interval); // 1-12 -NSInteger NSDayOfMonthFromTimeInterval(NSTimeInterval interval); // 0-31 - -NSInteger NSWeekdayFromTimeInterval(NSTimeInterval interval); // 1-7 - -NSInteger NS24HourFromTimeInterval(NSTimeInterval interval); // 0-23 -NSInteger NS12HourFromTimeInterval(NSTimeInterval interval); // 1-12 -NSInteger NSAMPMFromTimeInterval(NSTimeInterval interval); // 0-1 - -NSInteger NSMinuteFromTimeInterval(NSTimeInterval interval); // 0-59 - -NSInteger NSSecondFromTimeInterval(NSTimeInterval interval); // 0-59 - -NSInteger NSMillisecondsFromTimeInterval(NSTimeInterval interval); // 0-999 - -// interval will be time-zone adjusted -NSString *NSStringWithDateFormatLocale(NSTimeInterval interval, - NSString *format, NSDictionary *locale, - NSTimeZone *timeZone); - -NSDate *NSDateWithStringDateFormatLocale(NSString *string, NSString *format, - NSDictionary *locale, - NSTimeZone *timeZone); diff --git a/Foundation/NSDate/NSDateFormatter.m b/Foundation/NSDate/NSDateFormatter.m deleted file mode 100644 index fa06f281..00000000 --- a/Foundation/NSDate/NSDateFormatter.m +++ /dev/null @@ -1,1069 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -@implementation NSDateFormatter - -- initWithDateFormat: (NSString *) format allowNaturalLanguage: (BOOL) flag { - return [self initWithDateFormat: format - allowNaturalLanguage: flag - locale: [[NSUserDefaults standardUserDefaults] - dictionaryRepresentation]]; -} - -- initWithDateFormat: (NSString *) format - allowNaturalLanguage: (BOOL) flag - locale: (NSDictionary *) locale -{ - [super init]; - _behavior = NSDateFormatterBehavior10_0; - _dateFormat10_0 = [format copy]; - _dateFormat = [format copy]; - _allowsNaturalLanguage = flag; - _locale = [locale retain]; - _tz = [[NSTimeZone defaultTimeZone] retain]; - - return self; -} - -- init { - return [self initWithDateFormat: @"" allowNaturalLanguage: NO]; -} - -- (void) dealloc { - [_dateFormat10_0 release]; - [_dateFormat release]; - [_locale release]; - [_tz release]; - - [super dealloc]; -} - -- initWithCoder: (NSCoder *) coder { - [super initWithCoder: coder]; - - if ([coder allowsKeyedCoding]) { - NSDictionary *attributes = [coder decodeObjectForKey: @"NS.attributes"]; - - _dateFormat10_0 = [[attributes objectForKey: @"dateFormat_10_0"] copy]; - _behavior = [[attributes objectForKey: @"formatterBehavior"] intValue]; - _dateStyle = [[attributes objectForKey: @"dateStyle"] intValue]; - _timeStyle = [[attributes objectForKey: @"timeStyle"] intValue]; - _dateFormat = [[coder decodeObjectForKey: @"NS.format"] retain]; - _allowsNaturalLanguage = [coder decodeBoolForKey: @"NS.natural"]; - _tz = [[coder decodeObjectForKey: @"timeZone"] retain]; - } - - return self; -} - -- (NSString *) dateFormat { - return _dateFormat; -} - -- (BOOL) allowsNaturalLanguage { - return _allowsNaturalLanguage; -} - -- (NSDateFormatterBehavior) formatterBehavior { - return _behavior; -} - -- (NSDictionary *) locale { - return _locale; -} - -- (void) setDateFormat: (NSString *) format { - format = [format copy]; - [_dateFormat10_0 release]; - _dateFormat10_0 = format; - - format = [format copy]; - [_dateFormat release]; - _dateFormat = format; -} - -- (void) setTimeZone: (NSTimeZone *) tz { - NSParameterAssert(tz); - [_tz autorelease]; - _tz = [tz retain]; -} - -- (NSTimeZone *) timeZone { - return _tz; -} - -- (NSString *) stringFromDate: (NSDate *) date { - return NSStringWithDateFormatLocale([date timeIntervalSinceReferenceDate], - [self dateFormat], nil, _tz); -} - -- (NSDate *) dateFromString: (NSString *) string { - return NSDateWithStringDateFormatLocale(string, [self dateFormat], nil, - _tz); -} - -- (NSArray *) shortStandaloneWeekdaySymbols { - - return [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] - objectForKey: NSShortWeekDayNameArray]; -} -- (NSArray *) standaloneWeekdaySymbols { - return [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] - objectForKey: NSWeekDayNameArray]; -} - -- (void) setLenient: (BOOL) value { -} - -- (void) setFormatterBehavior: (NSDateFormatterBehavior) value { - _behavior = value; -} - -- (NSString *) stringForObjectValue: (id) object { - - if ([object isKindOfClass: [NSDate class]]) - return NSStringWithDateFormatLocale( - [object timeIntervalSinceReferenceDate], _dateFormat10_0, - _locale, _tz); - if ([object isKindOfClass: [NSCalendarDate class]]) - return NSStringWithDateFormatLocale( - [object timeIntervalSinceReferenceDate], _dateFormat10_0, - _locale, [object timeZone]); - - return nil; -} - -- (NSAttributedString *) attributedStringForObjectValue: (id) object - withDefaultAttributes: - (NSDictionary *) attributes -{ - return [[[NSAttributedString allocWithZone: NULL] - initWithString: [self stringForObjectValue: object] - attributes: attributes] autorelease]; -} - -- (NSString *) editingStringForObjectValue: (id) object { - return [self stringForObjectValue: object]; -} - -- (BOOL) getObjectValue: (id *) object - forString: (NSString *) string - errorDescription: (NSString **) error -{ - *object = NSDateWithStringDateFormatLocale(string, _dateFormat10_0, _locale, - _tz); - if (*object == nil) { - // FIX localization - if (error != NULL) - *error = @"Couldn't convert string to a valid NSCalendarDate " - @"object."; - return NO; - } - - return YES; -} - -- (BOOL) isPartialStringValid: (NSString *) partialString - newEditingString: (NSString **) newString - errorDescription: (NSString **) error -{ - NSUnimplementedMethod(); - return NO; -} - -@end - -@interface NSMutableString (NSDateFormatterExtensions) - -- (void) __appendCharacter: (unichar) character; - -- (void) __appendLocale: (NSDictionary *) locale - key: (NSString *) key - index: (NSInteger) index; - -@end - -@implementation NSMutableString (NSDateFormatterExtensions) - -// blek, get rid of these -- (void) __appendCharacter: (unichar) character { - [self appendString: [NSString stringWithCharacters: &character length: 1]]; -} - -- (void) __appendLocale: (NSDictionary *) locale - key: (NSString *) key - index: (NSInteger) index -{ - NSArray *array = [locale objectForKey: key]; - - if (array != nil) - [self appendString: [array objectAtIndex: index]]; -} - -@end - -NSTimeInterval NSMoveIntervalFromTimeZoneToGMT(NSTimeInterval interval, - NSTimeZone *timeZone) -{ - return interval + - [timeZone secondsFromGMTForDate: - [NSDate dateWithTimeIntervalSinceReferenceDate: - interval]]; -} - -NSTimeInterval NSMoveIntervalFromGMTToTimeZone(NSTimeInterval interval, - NSTimeZone *timeZone) -{ - return interval - - [timeZone secondsFromGMTForDate: - [NSDate dateWithTimeIntervalSinceReferenceDate: - interval]]; -} - -#define NSDaysOfCommonEraOfReferenceDate 730486 - -// thirty days hath september, april, june, and november. -// all the rest have thirty-one, except February, which is borked. -NSInteger NSNumberOfDaysInMonthOfYear(NSInteger month, NSInteger year) { - switch (month) { - case 2: - if (((year % 4) == 0 && (year % 100) != 0) || (year % 400) == 0) - return 29; - else - return 28; - case 4: - case 6: - case 9: - case 11: - return 30; - default: - return 31; - } -} - -static inline NSInteger -numberOfDaysInCommonEraOfDayMonthAndYear(NSInteger day, NSInteger month, - NSInteger year) -{ - NSInteger result = 0; - - for (month--; month > 0; month--) - result += NSNumberOfDaysInMonthOfYear(month, year); - - result += 365 * (year - 1); - result += (year - 1) / 4; - result -= (year - 1) / 100; - result += (year - 1) / 400; - - // wtf, i tried this using day as the result variable and it started from - // zero - result += day; - - return result; -} - -NSTimeInterval NSTimeIntervalWithComponents(NSInteger year, NSInteger month, - NSInteger day, NSInteger hour, - NSInteger minute, NSInteger second, - NSInteger milliseconds) -{ - NSInteger daysOfCommonEra; - NSTimeInterval interval; - - daysOfCommonEra = - numberOfDaysInCommonEraOfDayMonthAndYear(day, month, year); - daysOfCommonEra -= NSDaysOfCommonEraOfReferenceDate; - - interval = (daysOfCommonEra * 86400.0) + (hour * 3600) + (minute * 60) + - second; - - if (milliseconds) { - interval += milliseconds / 1000.0 + 0.0001; - } - - return interval; -} - -NSInteger NSDayOfCommonEraFromTimeInterval(NSTimeInterval interval) { - return (interval / 86400.0) + NSDaysOfCommonEraOfReferenceDate; -} - -NSInteger NSYearFromTimeInterval(NSTimeInterval interval) { - NSInteger days = NSDayOfCommonEraFromTimeInterval(interval); - NSInteger year = days / 366; - - while (days >= numberOfDaysInCommonEraOfDayMonthAndYear(1, 1, year + 1)) - year++; - - return year; -} - -NSInteger NSDayOfYearFromTimeInterval(NSTimeInterval interval) { // 1-366 - NSInteger year = NSYearFromTimeInterval(interval); - NSInteger result; - - result = NSDayOfCommonEraFromTimeInterval(interval) - - numberOfDaysInCommonEraOfDayMonthAndYear(1, 1, year) + 1; - if (result == 0) { - result = 366; - }; - - return result; -} - -NSInteger NSMonthFromTimeInterval(NSTimeInterval interval) { // 1-12 - NSInteger year = NSYearFromTimeInterval(interval); - NSInteger days = NSDayOfCommonEraFromTimeInterval(interval); - NSInteger month = 1; - - while (days > - numberOfDaysInCommonEraOfDayMonthAndYear( - NSNumberOfDaysInMonthOfYear(month, year), month, year)) - month++; - - return month; -} - -NSInteger NSDayOfMonthFromTimeInterval(NSTimeInterval interval) { // 1-31 - NSInteger dayOfCommonEra = NSDayOfCommonEraFromTimeInterval(interval); - NSInteger year = NSYearFromTimeInterval(interval); - NSInteger month = NSMonthFromTimeInterval(interval); - - dayOfCommonEra -= - numberOfDaysInCommonEraOfDayMonthAndYear(1, month, year) - 1; - - return dayOfCommonEra; -} - -NSInteger NSWeekdayFromTimeInterval(NSTimeInterval interval) { // 1-7 - NSInteger weekday = NSDayOfCommonEraFromTimeInterval(interval); - - weekday = weekday % 7; - if (weekday < 0) - weekday += 7; - - return weekday; -} - -NSInteger NS24HourFromTimeInterval(NSTimeInterval interval) { // 0-23 - NSTimeInterval hour = NSDayOfCommonEraFromTimeInterval(interval); - - hour -= NSDaysOfCommonEraOfReferenceDate; - hour *= 86400.0; - hour -= interval; - hour /= 3600; - hour = fabs(hour); - - if (hour == 24) - hour = 0; - - return hour; -} - -NSInteger NS12HourFromTimeInterval(NSTimeInterval interval) { // 1-12 - NSInteger hour = NS24HourFromTimeInterval(interval) % 12; - if (hour == 0) - hour = 12; - return hour; -} - -NSInteger NSAMPMFromTimeInterval(NSTimeInterval interval) { // 0-1 - NSInteger hour = NS24HourFromTimeInterval(interval); - - return (hour < 11) ? 0 : 1; -} - -NSInteger NSMinuteFromTimeInterval(NSTimeInterval interval) { // 0-59 - NSTimeInterval startOfHour = NSTimeIntervalWithComponents( - NSYearFromTimeInterval(interval), NSMonthFromTimeInterval(interval), - NSDayOfMonthFromTimeInterval(interval), - NS24HourFromTimeInterval(interval), 0, 0, 0); - - return (NSInteger)(interval - startOfHour) / 60; -} - -NSInteger NSSecondFromTimeInterval(NSTimeInterval interval) { // 0-59 - NSInteger seconds = fmod(floor(interval), 60); - if (seconds < 0) - seconds = (60 + seconds); - - return seconds; -} - -NSInteger NSMillisecondsFromTimeInterval(NSTimeInterval interval) { // 0-999 - NSInteger milli = fmod(interval * 1000, 1000); - if (milli < 0) { - milli = (1000 + milli); - } - return milli; -} - -NSString *NSStringWithDateFormatLocale(NSTimeInterval interval, - NSString *format, NSDictionary *locale, - NSTimeZone *timeZone) -{ - NSUInteger pos, fmtLength = [format length]; - unichar fmtBuffer[fmtLength], unicode; - NSMutableString *result = [NSMutableString stringWithCapacity: fmtLength]; - - unichar fillChar = '0'; - BOOL suppressZero = NO; - - enum { - STATE_SCANNING, - STATE_PERCENT, - STATE_CONVERSION - } state = STATE_SCANNING; - - interval = NSMoveIntervalFromTimeZoneToGMT(interval, timeZone); - if (locale == nil) - locale = [[NSUserDefaults standardUserDefaults] - dictionaryRepresentation]; - - [format getCharacters: fmtBuffer]; - - for (pos = 0; pos < fmtLength; pos++) { - unicode = fmtBuffer[pos]; - - switch (state) { - - case STATE_SCANNING: - if (unicode != '%') - [result __appendCharacter: unicode]; - else { - fillChar = '0'; - suppressZero = NO; - state = STATE_PERCENT; - } - break; - - case STATE_PERCENT: - switch (unicode) { - - case '.': - suppressZero = YES; - break; - case ' ': - fillChar = ' '; - break; - - default: - pos--; - state = STATE_CONVERSION; - break; - } - break; - - case STATE_CONVERSION: - switch (unicode) { - - case '%': - [result __appendCharacter: '%']; - break; - - case 'a': - [result __appendLocale: locale - key: NSShortWeekDayNameArray - index: NSWeekdayFromTimeInterval(interval)]; - break; - - case 'A': - [result __appendLocale: locale - key: NSWeekDayNameArray - index: NSWeekdayFromTimeInterval(interval)]; - break; - - case 'b': - [result __appendLocale: locale - key: NSShortMonthNameArray - index: NSMonthFromTimeInterval(interval) - 1]; - break; - - case 'B': - [result __appendLocale: locale - key: NSMonthNameArray - index: NSMonthFromTimeInterval(interval) - 1]; - break; - - case 'c': - [result appendFormat: - @"%@", - NSStringWithDateFormatLocale( - interval, - [locale objectForKey: - NSTimeDateFormatString], - locale, timeZone)]; - break; - - case 'd': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%2d" : @"%02d"); - - [result appendFormat: fmt, - NSDayOfMonthFromTimeInterval(interval)]; - } break; - - case 'e': { - id fmt = @"%d"; - [result appendFormat: fmt, - NSDayOfMonthFromTimeInterval(interval)]; - } break; - - case 'F': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%3d" : @"%03d"); - - [result appendFormat: fmt, - NSMillisecondsFromTimeInterval(interval)]; - } break; - - case 'H': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%2d" : @"%02d"); - - [result appendFormat: fmt, NS24HourFromTimeInterval(interval)]; - } break; - - case 'I': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%2d" : @"%02d"); - - [result appendFormat: fmt, NS12HourFromTimeInterval(interval)]; - } break; - - case 'j': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%3d" : @"%03d"); - - [result appendFormat: fmt, - NSDayOfYearFromTimeInterval(interval)]; - } break; - - case 'm': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%2d" : @"%02d"); - - [result appendFormat: fmt, NSMonthFromTimeInterval(interval)]; - } break; - - case 'M': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%2d" : @"%02d"); - - [result appendFormat: fmt, NSMinuteFromTimeInterval(interval)]; - } break; - - case 'p': - [result __appendLocale: locale - key: NSAMPMDesignation - index: NSAMPMFromTimeInterval(interval)]; - break; - - case 'S': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%2d" : @"%02d"); - - [result appendFormat: fmt, NSSecondFromTimeInterval(interval)]; - } break; - - case 'w': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%1d" : @"%01d"); - - [result appendFormat: fmt, NSWeekdayFromTimeInterval(interval)]; - } break; - - case 'x': - [result appendFormat: - @"%@", - NSStringWithDateFormatLocale( - interval, - [locale objectForKey: - NSDateFormatString], - locale, timeZone)]; - break; - - case 'X': - [result appendFormat: - @"%@", - NSStringWithDateFormatLocale( - interval, - [locale objectForKey: - NSTimeFormatString], - locale, timeZone)]; - break; - - case 'y': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%2d" : @"%02d"); - - [result appendFormat: fmt, - NSYearFromTimeInterval(interval) % 100]; - } break; - - case 'Y': { - id fmt = (suppressZero) - ? @"%d" - : ((fillChar == ' ') ? @"%4d" : @"%04d"); - - [result appendFormat: fmt, NSYearFromTimeInterval(interval)]; - } break; - - case 'Z': - [result appendString: [timeZone name]]; - break; - - case 'z': { - NSInteger secondsFromGMT = [timeZone - secondsFromGMTForDate: - [NSDate dateWithTimeIntervalSinceReferenceDate: - interval]]; - [result appendString: [[[NSString allocWithZone: NULL] - initWithFormat: @"%@%02d%02d", - (secondsFromGMT >= - 0 - ? @"+" - : @""), - secondsFromGMT / - 3600, - (secondsFromGMT % - 3600) / 60] - autorelease]]; - } break; - } - state = STATE_SCANNING; - break; - } - } - - return result; -} - -NSString *NSReadStringInString(NSString *aString, NSCharacterSet *characterSet, - NSUInteger position, NSUInteger maxLength, - NSUInteger *endPosition) -{ - NSMutableString *resultString = - [NSMutableString stringWithCapacity: maxLength]; - - for (NSUInteger i = 0; i < maxLength; i++) { - if (position + i >= [aString length]) { - break; - } - - unichar c = [aString characterAtIndex: position + i]; - if ([characterSet characterIsMember: c] == NO) { - break; - } - [resultString appendFormat: @"%c", c]; - } - *endPosition = position + [resultString length]; - return resultString; -} - -NSInteger NSReadIntegerInString(NSString *aString, NSCharacterSet *characterSet, - NSUInteger position, NSUInteger maxLength, - NSUInteger *endPosition) -{ - NSString *str; - unichar firstChar = [aString characterAtIndex: position]; - BOOL negate = NO; - NSInteger i; - - if (firstChar == '+') { - position++; - } else if (firstChar == '-') { - position++; - negate = YES; - } - - str = NSReadStringInString(aString, characterSet, position, maxLength, - endPosition); - i = [str integerValue]; - - if (negate == YES) { - i *= -1; - } - - return i; -} - -// might as well use the same code since they're the exact same formatting -// specifiers ok. we need at minimum the year. everything else is optional. -// weekday information is useless. -NSDate *NSDateWithStringDateFormatLocale(NSString *string, NSString *format, - NSDictionary *locale, - NSTimeZone *timeZone) -{ - NSScanner *scanner = [NSScanner scannerWithString: string]; - NSUInteger currentPosition, fmtLength = [format length]; - unichar fmtBuffer[fmtLength], unicode; - NSInteger years = NSNotFound, months = NSNotFound, days = NSNotFound, - hours = NSNotFound, minutes = NSNotFound, seconds = NSNotFound, - milliseconds = NSNotFound; - NSInteger AMPMMultiplier = 0; - NSTimeInterval adjustment = 0; - NSArray *monthNames, *shortMonthNames, *AMPMDesignations; - NSTimeInterval timeInterval; - NSDate *date; - - [scanner setCharactersToBeSkipped: nil]; - - enum { - STATE_SCANNING, - STATE_PERCENT, - STATE_CONVERSION - } state = STATE_SCANNING; - - if ([string length] == 0) { - return nil; - } - - if (locale == nil) { - locale = [[NSUserDefaults standardUserDefaults] - dictionaryRepresentation]; - } - - monthNames = [locale objectForKey: NSMonthNameArray]; - shortMonthNames = [locale objectForKey: NSShortMonthNameArray]; - AMPMDesignations = [locale objectForKey: NSAMPMDesignation]; - - // although we don't use the weekday arrays for anything, the spec - // says to check them anyway. - if ([monthNames count] > 12 || [shortMonthNames count] > 12 || - [[locale objectForKey: NSShortWeekDayNameArray] count] > 7 || - [[locale objectForKey: NSWeekDayNameArray] count] > 7) { - return nil; - } - - [format getCharacters: fmtBuffer]; - - for (currentPosition = 0; currentPosition < fmtLength; currentPosition++) { - unicode = fmtBuffer[currentPosition]; - - switch (state) { - case STATE_SCANNING: - if (unicode == '%') { - state = STATE_PERCENT; - } else { - currentPosition++; - } - break; - - case STATE_PERCENT: - switch (unicode) { - case '.': - case ' ': - default: - currentPosition--; - state = STATE_CONVERSION; - break; - } - break; - - case STATE_CONVERSION: - switch (unicode) { - case '%': - currentPosition++; - break; - - // can't really do anything with the day of the week, but we - // have to skip it. - case 'a': - NSReadStringInString(string, - [NSCharacterSet letterCharacterSet], - currentPosition, 255, ¤tPosition); - break; - case 'A': - NSReadStringInString(string, - [NSCharacterSet letterCharacterSet], - currentPosition, 255, ¤tPosition); - break; - - // month or its abbreviation. look it up in the arrays.. - case 'b': { - NSString *temp; - NSEnumerator *enumerator = [shortMonthNames objectEnumerator]; - NSString *shortMonthName; - months = NSNotFound; - int month = 1; - - temp = NSReadStringInString( - string, [NSCharacterSet letterCharacterSet], - currentPosition, 255, ¤tPosition); - - while ((shortMonthName = [enumerator nextObject]) != nil) { - if ([shortMonthName caseInsensitiveCompare: temp] == - NSOrderedSame) { - months = month; - break; - } else { - month++; - } - } - - // month not found - if (months == NSNotFound) { - return nil; - } - break; - } - - case 'B': { - NSString *temp; - NSEnumerator *enumerator = [monthNames objectEnumerator]; - NSString *monthName; - months = NSNotFound; - int month = 1; - - temp = NSReadStringInString( - string, [NSCharacterSet letterCharacterSet], - currentPosition, 255, ¤tPosition); - - while ((monthName = [enumerator nextObject]) != nil) { - if ([monthName caseInsensitiveCompare: temp] == - NSOrderedSame) { - months = month; - break; - } else { - month++; - } - } - - // month not found - if (months == NSNotFound) { - return nil; - } - break; - } - - case 'c': - return NSDateWithStringDateFormatLocale( - string, [locale objectForKey: NSTimeDateFormatString], - locale, timeZone); - - case 'd': - days = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 2, ¤tPosition); - break; - - case 'F': - milliseconds = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 3, ¤tPosition); - break; - - case 'H': - hours = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 2, ¤tPosition); - break; - - case 'I': - hours = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 2, ¤tPosition); - - AMPMMultiplier = 1; - break; - - // grr - case 'j': { - NSInteger numberOfDays = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 3, ¤tPosition); - - adjustment += numberOfDays * 86400.0; - break; - } - - case 'm': - months = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 2, ¤tPosition); - - break; - - case 'M': - minutes = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 2, ¤tPosition); - break; - - case 'p': { - NSString *temp; - - temp = NSReadStringInString( - string, [NSCharacterSet letterCharacterSet], - currentPosition, 255, ¤tPosition); - - AMPMMultiplier = [AMPMDesignations indexOfObject: temp]; - if (AMPMMultiplier == NSNotFound) { - return nil; - } - AMPMMultiplier++; // e.g. 0 = 1, 1 = 2... - break; - } - - case 'S': - seconds = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 2, ¤tPosition); - break; - - // again, weekdays are useless - case 'w': { - NSReadIntegerInString(string, - [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 1, ¤tPosition); - break; - } - - case 'x': - return NSDateWithStringDateFormatLocale( - string, [locale objectForKey: NSDateFormatString], - locale, timeZone); - - case 'X': - return NSDateWithStringDateFormatLocale( - string, [locale objectForKey: NSTimeFormatString], - locale, timeZone); - - case 'y': - years = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 2, ¤tPosition); - - // FIX QUESTIONABLE - // 1900 or 2000??, YB does 2000, for some? all? - years += 2000; - break; - - case 'Y': - years = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 4, ¤tPosition); - /*if (![scanner scanInteger:&years]) - return nil;*/ - break; - - case 'Z': { - NSString *temp; - - temp = NSReadStringInString( - string, [NSCharacterSet letterCharacterSet], - currentPosition, 255, ¤tPosition); - - timeZone = [NSTimeZone timeZoneWithName: temp]; - break; - } - - case 'z': { - NSInteger hoursMinutes, tzHours, tzMinutes; - hoursMinutes = NSReadIntegerInString( - string, [NSCharacterSet decimalDigitCharacterSet], - currentPosition, 4, ¤tPosition); - - tzHours = hoursMinutes / 100; - tzMinutes = hoursMinutes % 100; - timeZone = [NSTimeZone - timeZoneForSecondsFromGMT: (tzHours * 3600) + - (tzMinutes * 60)]; - break; - } - } - state = STATE_SCANNING; - break; - } - } - - // now that we've got whatever information we can get from the string, - // try to make an NSCalendarDate of it. - if (AMPMMultiplier != 0 && hours != NSNotFound) { - hours *= AMPMMultiplier; - } - - // maybe we've been given the number of days in the year but not the - // month/day - if (months == NSNotFound && days == NSNotFound) { - months = 1; - days = 1; - } - - // if no year, then this year - if (years == NSNotFound) { - years = [[NSCalendarDate date] yearOfCommonEra]; - } - - if (hours == NSNotFound) { - hours = 0; - } - if (minutes == NSNotFound) { - minutes = 0; - } - if (seconds == NSNotFound) { - seconds = 0; - } - if (milliseconds == NSNotFound) { - milliseconds = 0; - } - - if (timeZone == nil) { - timeZone = [NSTimeZone defaultTimeZone]; - } - - timeInterval = NSTimeIntervalWithComponents(years, months, days, hours, - minutes, seconds, milliseconds); - timeInterval += adjustment; - - timeInterval = - timeInterval - - [timeZone secondsFromGMTForDate: - [NSDate dateWithTimeIntervalSinceReferenceDate: - timeInterval]]; - - date = [[[NSDate allocWithZone: NULL] - initWithTimeIntervalSinceReferenceDate: timeInterval] autorelease]; - return date; -} diff --git a/Foundation/NSDate/NSDate_timeInterval.h b/Foundation/NSDate/NSDate_timeInterval.h deleted file mode 100644 index a67dbaf3..00000000 --- a/Foundation/NSDate/NSDate_timeInterval.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSDate_timeInterval : NSDate { - NSTimeInterval _timeIntervalSinceReferenceDate; -} - -@end diff --git a/Foundation/NSDate/NSDate_timeInterval.m b/Foundation/NSDate/NSDate_timeInterval.m deleted file mode 100644 index f6e57f06..00000000 --- a/Foundation/NSDate/NSDate_timeInterval.m +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - David Young -#import -#import -#import -#import - -@implementation NSDate_timeInterval - -- initWithTimeIntervalSinceReferenceDate: (NSTimeInterval) seconds { - _timeIntervalSinceReferenceDate = seconds; - return self; -} - -- (NSTimeInterval) timeIntervalSinceReferenceDate { - return _timeIntervalSinceReferenceDate; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -@end diff --git a/Foundation/NSDebug.h b/Foundation/NSDebug.h deleted file mode 100644 index 701ed35d..00000000 --- a/Foundation/NSDebug.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -FOUNDATION_EXPORT BOOL NSZombieEnabled; -FOUNDATION_EXPORT BOOL NSDebugEnabled; -FOUNDATION_EXPORT BOOL NSCooperativeThreadsEnabled; - -void NSCooperativeThreadBlocking(); -void NSCooperativeThreadWaiting(); - -FOUNDATION_EXPORT void *NSFrameAddress(NSUInteger level); -FOUNDATION_EXPORT unsigned NSCountFrames(void); -FOUNDATION_EXPORT void *NSReturnAddress(int level); - -#if defined(__WIN32__) || defined(SOLARIS) -int backtrace(void **array, int size); -char **backtrace_symbols(void *const *array, int size); -#endif \ No newline at end of file diff --git a/Foundation/NSDebug.m b/Foundation/NSDebug.m deleted file mode 100644 index 6df7646d..00000000 --- a/Foundation/NSDebug.m +++ /dev/null @@ -1,162 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#ifdef WINDOWS -#include -#endif - -#if defined(LINUX) || defined(__APPLE__) || defined(FREEBSD) -#include -#endif - -BOOL NSZombieEnabled = NO; -BOOL NSDebugEnabled = NO; -BOOL NSCooperativeThreadsEnabled = NO; - -#ifndef DARLING -// Under Darling, this file is symlinked from external/foundation -// But _NSPrintForDebugger is already implemented in NSLog.m -const char *_NSPrintForDebugger(id object) { - if (object && [object respondsToSelector: @selector(description)]) { - return [[object description] UTF8String]; - } - return NULL; -} -#endif - -#ifndef WINDOWS -void NSCooperativeThreadBlocking() { -} - -void NSCooperativeThreadWaiting() { -} -#else - -static HANDLE NSCooperativeEvent() { - static HANDLE handle = NULL; - - if (handle == NULL) - handle = CreateEvent(NULL, FALSE, FALSE, NULL); - - return handle; -} - -void NSCooperativeThreadBlocking() { - if (NSCooperativeThreadsEnabled) { - SetEvent(NSCooperativeEvent()); - } -} - -void NSCooperativeThreadWaiting() { - if (NSCooperativeThreadsEnabled) { - WaitForSingleObject(NSCooperativeEvent(), 0); - } -} -#endif - -#define _NS_RETURN_ADDRESS(x) \ - case x: \ - return __builtin_return_address(x + 1) - -void *NSFrameAddress(NSUInteger level) { - void *callstack[128]; - - if (level > 128) { - return NULL; - } - - int i, frameCount = backtrace(callstack, level + 1); - if (frameCount < level + 1) { - return NULL; - } - - return callstack[level + 1]; -} - -unsigned NSCountFrames(void) { - unsigned x = 0; - - while (NSFrameAddress(x + 1) != NULL) { - x++; - } - - return x; -} - -void *NSReturnAddress(int level) { - switch (level) { - _NS_RETURN_ADDRESS(0); - _NS_RETURN_ADDRESS(1); - _NS_RETURN_ADDRESS(2); - _NS_RETURN_ADDRESS(3); - _NS_RETURN_ADDRESS(4); - _NS_RETURN_ADDRESS(5); - _NS_RETURN_ADDRESS(6); - _NS_RETURN_ADDRESS(7); - _NS_RETURN_ADDRESS(8); - _NS_RETURN_ADDRESS(9); - _NS_RETURN_ADDRESS(10); - _NS_RETURN_ADDRESS(11); - _NS_RETURN_ADDRESS(12); - _NS_RETURN_ADDRESS(13); - _NS_RETURN_ADDRESS(14); - _NS_RETURN_ADDRESS(15); - _NS_RETURN_ADDRESS(16); - _NS_RETURN_ADDRESS(17); - _NS_RETURN_ADDRESS(18); - _NS_RETURN_ADDRESS(19); - _NS_RETURN_ADDRESS(20); - _NS_RETURN_ADDRESS(21); - _NS_RETURN_ADDRESS(22); - _NS_RETURN_ADDRESS(23); - _NS_RETURN_ADDRESS(24); - _NS_RETURN_ADDRESS(25); - _NS_RETURN_ADDRESS(26); - _NS_RETURN_ADDRESS(27); - _NS_RETURN_ADDRESS(28); - _NS_RETURN_ADDRESS(29); - _NS_RETURN_ADDRESS(30); - _NS_RETURN_ADDRESS(31); - _NS_RETURN_ADDRESS(32); - _NS_RETURN_ADDRESS(33); - _NS_RETURN_ADDRESS(34); - _NS_RETURN_ADDRESS(35); - _NS_RETURN_ADDRESS(36); - _NS_RETURN_ADDRESS(37); - _NS_RETURN_ADDRESS(38); - _NS_RETURN_ADDRESS(39); - _NS_RETURN_ADDRESS(40); - _NS_RETURN_ADDRESS(41); - _NS_RETURN_ADDRESS(42); - _NS_RETURN_ADDRESS(43); - _NS_RETURN_ADDRESS(44); - _NS_RETURN_ADDRESS(45); - _NS_RETURN_ADDRESS(46); - _NS_RETURN_ADDRESS(47); - _NS_RETURN_ADDRESS(48); - _NS_RETURN_ADDRESS(49); - _NS_RETURN_ADDRESS(50); - default: - return NULL; - } - - return NULL; -} diff --git a/Foundation/NSDecimal/NSDecimal.h b/Foundation/NSDecimal/NSDecimal.h deleted file mode 100644 index 3123e771..00000000 --- a/Foundation/NSDecimal/NSDecimal.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -typedef struct { - int notImplemented; -} NSDecimal; diff --git a/Foundation/NSDecimal/NSDecimal.m b/Foundation/NSDecimal/NSDecimal.m deleted file mode 100644 index ee0b9df1..00000000 --- a/Foundation/NSDecimal/NSDecimal.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSDecimal/NSDecimalNumber.h b/Foundation/NSDecimal/NSDecimalNumber.h deleted file mode 100644 index dc0de236..00000000 --- a/Foundation/NSDecimal/NSDecimalNumber.h +++ /dev/null @@ -1,97 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -FOUNDATION_EXPORT NSString *const NSDecimalNumberDivideByZeroException; -FOUNDATION_EXPORT NSString *const NSDecimalNumberUnderflowException; -FOUNDATION_EXPORT NSString *const NSDecimalNumberOverflowException; -FOUNDATION_EXPORT NSString *const NSDecimalNumberExactnessException; - -@protocol NSDecimalNumberBehaviors -@end - -@interface NSDecimalNumber : NSNumber { -} - -- initWithDecimal: (NSDecimal) decimal; -- initWithMantissa: (uint64_t) mantissa - exponent: (int16_t) exponent - isNegative: (BOOL) flag; -- initWithString: (NSString *) string; -- initWithString: (NSString *) string locale: (NSDictionary *) locale; - -+ (NSDecimalNumber *) decimalNumberWithDecimal: (NSDecimal) decimal; -+ (NSDecimalNumber *) decimalNumberWithMantissa: (uint64_t) mantissa - exponent: (int16_t) exponent - isNegative: (BOOL) negative; -+ (NSDecimalNumber *) decimalNumberWithString: (NSString *) string; -+ (NSDecimalNumber *) decimalNumberWithString: (NSString *) string - locale: (NSDictionary *) locale; - -+ (NSDecimalNumber *) zero; -+ (NSDecimalNumber *) one; -+ (NSDecimalNumber *) minimumDecimalNumber; -+ (NSDecimalNumber *) maximumDecimalNumber; -+ (NSDecimalNumber *) notANumber; - -+ (id) defaultBehavior; -+ (void) setDefaultBehavior: (id) behavior; - -- (NSComparisonResult) compare: (NSNumber *) other; - -- (double) doubleValue; -- (const char *) objCType; - -- (NSDecimalNumber *) decimalNumberByRoundingAccordingToBehavior: - (id) behavior; - -- (NSDecimalNumber *) decimalNumberByAdding: (NSDecimalNumber *) other; -- (NSDecimalNumber *) decimalNumberByAdding: (NSDecimalNumber *) other - withBehavior: - (id) behavior; -- (NSDecimalNumber *) decimalNumberBySubtracting: (NSDecimalNumber *) other; -- (NSDecimalNumber *) decimalNumberBySubtracting: (NSDecimalNumber *) other - withBehavior: (id) - behavior; - -- (NSDecimalNumber *) decimalNumberByMultiplyingBy: (NSDecimalNumber *) other; -- (NSDecimalNumber *) - decimalNumberByMultiplyingBy: (NSDecimalNumber *) other - withBehavior: (id) behavior; -- (NSDecimalNumber *) decimalNumberByDividingBy: (NSDecimalNumber *) other; -- (NSDecimalNumber *) decimalNumberByDividingBy: (NSDecimalNumber *) other - withBehavior: (id) - behavior; - -- (NSDecimalNumber *) decimalNumberByMultiplyingByPowerOf10: (int16_t) power; -- (NSDecimalNumber *) - decimalNumberByMultiplyingByPowerOf10: (int16_t) power - withBehavior: (id) - behavior; - -- (NSDecimalNumber *) decimalNumberByRaisingToPower: (NSUInteger) power; -- (NSDecimalNumber *) - decimalNumberByRaisingToPower: (NSUInteger) power - withBehavior: (id) behavior; - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale; - -@end diff --git a/Foundation/NSDecimal/NSDecimalNumber.m b/Foundation/NSDecimal/NSDecimalNumber.m deleted file mode 100644 index bfdcaa71..00000000 --- a/Foundation/NSDecimal/NSDecimalNumber.m +++ /dev/null @@ -1,222 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -NSString *const NSDecimalNumberDivideByZeroException = - @"NSDecimalNumberDivideByZeroException"; -NSString *const NSDecimalNumberUnderflowException = - @"NSDecimalNumberUnderflowException"; -NSString *const NSDecimalNumberOverflowException = - @"NSDecimalNumberOverflowException"; -NSString *const NSDecimalNumberExactnessException = - @"NSDecimalNumberExactnessException"; - -@implementation NSDecimalNumber - -- initWithDecimal: (NSDecimal) decimal { - NSUnimplementedMethod(); - return nil; -} - -- initWithMantissa: (uint64_t) mantissa - exponent: (int16_t) exponent - isNegative: (BOOL) flag -{ - NSUnimplementedMethod(); - return nil; -} - -- initWithString: (NSString *) string { - NSUnimplementedMethod(); - return nil; -} - -- initWithString: (NSString *) string locale: (NSDictionary *) locale { - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) decimalNumberWithDecimal: (NSDecimal) decimal { - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) decimalNumberWithMantissa: (uint64_t) mantissa - exponent: (int16_t) exponent - isNegative: (BOOL) negative -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) decimalNumberWithString: (NSString *) string { - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) decimalNumberWithString: (NSString *) string - locale: (NSDictionary *) locale -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) zero { - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) one { - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) minimumDecimalNumber { - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) maximumDecimalNumber { - NSUnimplementedMethod(); - return nil; -} - -+ (NSDecimalNumber *) notANumber { - NSUnimplementedMethod(); - return nil; -} - -+ (id) defaultBehavior { - NSUnimplementedMethod(); - return nil; -} - -+ (void) setDefaultBehavior: (id) behavior { - NSUnimplementedMethod(); -} - -- (NSComparisonResult) compare: (NSNumber *) other { - NSUnimplementedMethod(); - return 0; -} - -- (double) doubleValue { - NSUnimplementedMethod(); - return 0; -} - -- (const char *) objCType { - return @encode(double); -} - -- (NSDecimalNumber *) decimalNumberByRoundingAccordingToBehavior: - (id) behavior -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberByAdding: (NSDecimalNumber *) other { - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberByAdding: (NSDecimalNumber *) other - withBehavior: - (id) behavior -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberBySubtracting: (NSDecimalNumber *) other { - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberBySubtracting: (NSDecimalNumber *) other - withBehavior: (id) - behavior -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberByMultiplyingBy: (NSDecimalNumber *) other { - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) - decimalNumberByMultiplyingBy: (NSDecimalNumber *) other - withBehavior: (id) behavior -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberByDividingBy: (NSDecimalNumber *) other { - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberByDividingBy: (NSDecimalNumber *) other - withBehavior: (id) - behavior -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberByMultiplyingByPowerOf10: (int16_t) power { - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) - decimalNumberByMultiplyingByPowerOf10: (int16_t) power - withBehavior: - (id) behavior -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) decimalNumberByRaisingToPower: (NSUInteger) power { - NSUnimplementedMethod(); - return nil; -} - -- (NSDecimalNumber *) - decimalNumberByRaisingToPower: (NSUInteger) power - withBehavior: (id) behavior -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - NSUnimplementedMethod(); - return nil; -} - -@end diff --git a/Foundation/NSDecimal/NSDecimalNumberPlaceholder.h b/Foundation/NSDecimal/NSDecimalNumberPlaceholder.h deleted file mode 100644 index c6062666..00000000 --- a/Foundation/NSDecimal/NSDecimalNumberPlaceholder.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface NSDecimalNumberPlaceholder : NSDecimalNumber - -@end diff --git a/Foundation/NSDecimal/NSDecimalNumberPlaceholder.m b/Foundation/NSDecimal/NSDecimalNumberPlaceholder.m deleted file mode 100644 index 518d0eae..00000000 --- a/Foundation/NSDecimal/NSDecimalNumberPlaceholder.m +++ /dev/null @@ -1,28 +0,0 @@ -#import "NSDecimalNumberPlaceholder.h" -#import -#import - -@implementation NSDecimalNumberPlaceholder - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - // unused - // NSInteger exponent=[coder decodeIntegerForKey:@"NS.exponent"]; - // NSInteger length=[coder decodeIntegerForKey:@"NS.length"]; - // BOOL negative=[coder decodeBoolForKey:@"NS.negative"]; - // BOOL compact=[coder decodeBoolForKey:@"NS.compact"]; - // NSInteger mantissaByteOrder=[coder - // decodeIntegerForKey:@"NS.mantissa.bo"]; // byte order?? NSUInteger - // byteLength=0; const uint8_t *mantissa=[coder - // decodeBytesForKey:@"NS.mantissa" returnedLength:&byteLength]; - } - - // We should warn here, but this needs to be ignored for an app, maybe at - // least construct a float? - // NSUnimplementedMethod(); - [self dealloc]; - return (NSDecimalNumberPlaceholder *) [[NSNumber alloc] - initWithInteger: 0]; // NSNumber is implemented -} - -@end diff --git a/Foundation/NSDictionary/NSDictionary.h b/Foundation/NSDictionary/NSDictionary.h deleted file mode 100644 index 373c1d19..00000000 --- a/Foundation/NSDictionary/NSDictionary.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSArray, NSURL; - -@interface NSDictionary - : NSObject - -- initWithObjects: (id *) objects - forKeys: (id *) keys - count: (NSUInteger) count; -- initWithObjects: (NSArray *) objects forKeys: (NSArray *) keys; -- initWithDictionary: (NSDictionary *) dictionary; -- initWithDictionary: (NSDictionary *) dictionary copyItems: (BOOL) copyItems; -- initWithObjectsAndKeys: object, ...; -- initWithContentsOfFile: (NSString *) path; -- initWithContentsOfURL: (NSURL *) url; - -+ dictionary; -+ dictionaryWithObjects: (id *) objects - forKeys: (id *) keys - count: (NSUInteger) count; -+ dictionaryWithObjects: (NSArray *) objects forKeys: (NSArray *) keys; -+ dictionaryWithDictionary: (NSDictionary *) other; -+ dictionaryWithObjectsAndKeys: first, ...; -+ dictionaryWithObject: object forKey: key; -+ dictionaryWithContentsOfFile: (NSString *) path; -+ dictionaryWithContentsOfURL: (NSURL *) url; - -- objectForKey: key; -- (NSUInteger) count; -- (NSEnumerator *) keyEnumerator; -- (NSEnumerator *) objectEnumerator; - -- (void) getObjects: (id *) objects andKeys: (id *) keys; - -- (BOOL) isEqualToDictionary: (NSDictionary *) dictionary; - -- (NSArray *) allKeys; -- (NSArray *) allKeysForObject: object; -- (NSArray *) keysSortedByValueUsingSelector: (SEL) selector; - -- (NSArray *) allValues; -- (NSArray *) objectsForKeys: (NSArray *) keys notFoundMarker: marker; - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically; -- (BOOL) writeToURL: (NSURL *) url atomically: (BOOL) atomically; - -- (NSString *) description; -- (NSString *) descriptionInStringsFileFormat; -- (NSString *) descriptionWithLocale: locale; -- (NSString *) descriptionWithLocale: locale indent: (NSUInteger) indent; - -@end - -#import diff --git a/Foundation/NSDictionary/NSDictionary.m b/Foundation/NSDictionary/NSDictionary.m deleted file mode 100644 index 30d926b4..00000000 --- a/Foundation/NSDictionary/NSDictionary.m +++ /dev/null @@ -1,485 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@interface NSKeyedArchiver (PrivateToContainers) -- (void) encodeArray: (NSArray *) array forKey: (NSString *) key; -@end - -@implementation NSDictionary - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSDictionary")) - return NSAllocateObject([NSDictionary_mapTable class], 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -- initWithObjects: (id *) objects - forKeys: (id *) keys - count: (NSUInteger) count -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithObjects: (NSArray *) objectArray forKeys: (NSArray *) keyArray { - NSUInteger count = [objectArray count]; - id objects[count], keys[count]; - - [objectArray getObjects: objects]; - [keyArray getObjects: keys]; - - return [self initWithObjects: objects forKeys: keys count: count]; -} - -- initWithDictionary: (NSDictionary *) dictionary { - NSUInteger count = [dictionary count]; - id keys[count], objects[count]; - - [dictionary getObjects: objects andKeys: keys]; - - return [self initWithObjects: objects forKeys: keys count: count]; -} - -- initWithDictionary: (NSDictionary *) dictionary copyItems: (BOOL) copyItems { - NSUInteger i, count = [dictionary count]; - id keys[count], objects[count]; - - [dictionary getObjects: objects andKeys: keys]; - - if (copyItems) { - for (i = 0; i < count; i++) { - keys[i] = [keys[i] copyWithZone: NULL]; - objects[i] = [objects[i] copyWithZone: NULL]; - } - } - - [self initWithObjects: objects forKeys: keys count: count]; - - if (copyItems) { - for (i = 0; i < count; i++) { - [keys[i] release]; - [objects[i] release]; - } - } - - return self; -} - -- initWithObjectsAndKeys: first, ... { - va_list arguments; - NSUInteger i, count; - id *objects, *keys; - - va_start(arguments, first); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count / 2); - keys = __builtin_alloca(sizeof(id) * count / 2); - - va_start(arguments, first); - objects[0] = first; - keys[0] = va_arg(arguments, id); - - for (i = 1; i < count / 2; i++) { - objects[i] = va_arg(arguments, id); - keys[i] = va_arg(arguments, id); - } - - va_end(arguments); - - return [self initWithObjects: objects forKeys: keys count: count / 2]; -} - -- initWithContentsOfFile: (NSString *) path { - NSDictionary *contents = - [NSPropertyListReader dictionaryWithContentsOfFile: path]; - - if (contents == nil) { - [self dealloc]; - return nil; - } - - return [self initWithDictionary: contents]; -} - -- initWithContentsOfURL: (NSURL *) url { - if ([url isFileURL]) { - return [self initWithContentsOfFile: [url path]]; - } else { - NSError *error = nil; - NSData *data = [NSData dataWithContentsOfURL: url - options: 0 - error: &error]; - NSDictionary *dict = nil; - if (data && [data length] > 0) { - dict = [NSPropertyListReader propertyListFromData: data]; - } - if (dict) { - return [self initWithDictionary: dict]; - } else { - [self dealloc]; - return nil; - } - } -} - -+ dictionary { - return [[[self allocWithZone: NULL] init] autorelease]; -} - -+ dictionaryWithObjects: (NSArray *) objects forKeys: (NSArray *) keys { - return [[[self allocWithZone: NULL] initWithObjects: objects - forKeys: keys] autorelease]; -} - -+ dictionaryWithObjects: (id *) objects - forKeys: (id *) keys - count: (NSUInteger) count -{ - return [[[self allocWithZone: NULL] initWithObjects: objects - forKeys: keys - count: count] autorelease]; -} - -+ dictionaryWithDictionary: (NSDictionary *) other { - return [[[self allocWithZone: NULL] initWithDictionary: other] autorelease]; -} - -+ dictionaryWithObjectsAndKeys: first, ... { - va_list arguments; - NSUInteger i, count; - id *objects, *keys; - - va_start(arguments, first); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count / 2); - keys = __builtin_alloca(sizeof(id) * count / 2); - - va_start(arguments, first); - objects[0] = first; - keys[0] = va_arg(arguments, id); - - for (i = 1; i < count / 2; i++) { - objects[i] = va_arg(arguments, id); - keys[i] = va_arg(arguments, id); - } - - va_end(arguments); - - return [[[self allocWithZone: NULL] initWithObjects: objects - forKeys: keys - count: count / 2] - autorelease]; -} - -+ dictionaryWithObject: object forKey: key { - return [[[self allocWithZone: NULL] initWithObjects: &object - forKeys: &key - count: 1] autorelease]; -} - -+ dictionaryWithContentsOfFile: (NSString *) path { - return [[[self allocWithZone: NULL] initWithContentsOfFile: path] - autorelease]; -} - -+ dictionaryWithContentsOfURL: (NSURL *) url { - return [[[self allocWithZone: NULL] initWithContentsOfURL: url] - autorelease]; -} - -- copy { - return [self retain]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopy { - return [[NSMutableDictionary allocWithZone: NULL] initWithDictionary: self]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableDictionary allocWithZone: zone] initWithDictionary: self]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSDictionary"); -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - NSArray *keys = [keyed decodeObjectForKey: @"NS.keys"]; - NSArray *objects = [keyed decodeObjectForKey: @"NS.objects"]; - - return [self initWithObjects: objects forKeys: keys]; - } else { - unsigned i, count; - id *keys, *values; - - [coder decodeValueOfObjCType: @encode(int) at: &count]; - keys = __builtin_alloca(count * sizeof(id)); - values = __builtin_alloca(count * sizeof(id)); - - for (i = 0; i < count; i++) { - keys[i] = [coder decodeObject]; - values[i] = [coder decodeObject]; - } - - return [self initWithObjects: values forKeys: keys count: count]; - } -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedArchiver class]]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - - [keyed encodeArray: [self allKeys] forKey: @"NS.keys"]; - [keyed encodeArray: [self allValues] forKey: @"NS.objects"]; - } else { - NSEnumerator *state = [self keyEnumerator]; - int count = [self count]; - id key; - - [coder encodeValueOfObjCType: @encode(int) at: &count]; - - while ((key = [state nextObject]) != nil) { - id value = [self objectForKey: key]; - - [coder encodeObject: key]; - [coder encodeObject: value]; - } - } -} - -- objectForKey: key { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSUInteger) count { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSEnumerator *) keyEnumerator { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSEnumerator *) objectEnumerator { - return [[[NSEnumerator_dictionaryObjects allocWithZone: NULL] - initWithDictionary: self] autorelease]; -} - -- (void) getObjects: (id *) objects andKeys: (id *) keys { - NSEnumerator *state = [self keyEnumerator]; - id key; - NSInteger i; - - for (i = 0; (key = [state nextObject]) != nil; i++) { - id value = [self objectForKey: key]; - - objects[i] = value; - keys[i] = key; - } -} - -- (NSUInteger) hash { - return [self count]; -} - -- (BOOL) isEqual: other { - if (self == other) - return YES; - - if (![other isKindOfClass: objc_lookUpClass("NSDictionary")]) - return NO; - - return [self isEqualToDictionary: other]; -} - -- (BOOL) isEqualToDictionary: (NSDictionary *) dictionary { - NSEnumerator *keys; - id key; - - if (self == dictionary) - return YES; - - if ([self count] != [dictionary count]) - return NO; - - keys = [self keyEnumerator]; - while ((key = [keys nextObject]) != nil) { - id value = [self objectForKey: key]; - id otherValue = [dictionary objectForKey: key]; - - if (otherValue == nil) - return NO; - if (![value isEqual: otherValue]) - return NO; - } - - return YES; -} - -- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *) state - objects: (id *) stackbuf - count: (NSUInteger) len -{ - return [[self allKeys] countByEnumeratingWithState: state - objects: stackbuf - count: len]; -} - -- (NSArray *) allKeys { - NSInteger count = [self count]; - id keys[count], objects[count]; - - [self getObjects: objects andKeys: keys]; - - return [[[NSArray allocWithZone: NULL] initWithObjects: keys - count: count] autorelease]; -} - -- (NSArray *) allKeysForObject: object { - NSMutableArray *result = [NSMutableArray array]; - NSEnumerator *state = [self keyEnumerator]; - id key; - - while ((key = [state nextObject]) != nil) { - id check = [self objectForKey: key]; - - if (check == object) - [result addObject: key]; - } - - return result; -} - -- (NSArray *) keysSortedByValueUsingSelector: (SEL) selector -{ // there is probably a faster implementation, but at least - // this is easy to understand. - NSMutableArray *result = nil; - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - NSArray *values = [[self allValues] sortedArrayUsingSelector: selector]; - id value; - NSEnumerator *de = [values objectEnumerator]; - result = [NSMutableArray array]; - while ((value = [de nextObject])) { - [result addObjectsFromArray: [self allKeysForObject: value]]; - } - result = [result copy]; - [pool release]; - return [result autorelease]; -} - -- (NSArray *) allValues { - NSInteger count = [self count]; - id objects[count], keys[count]; - - [self getObjects: objects andKeys: keys]; - - return [[[NSArray allocWithZone: NULL] initWithObjects: objects - count: count] autorelease]; -} - -- (NSArray *) objectsForKeys: (NSArray *) keys notFoundMarker: marker { - NSMutableArray *result = [NSMutableArray arrayWithCapacity: [keys count]]; - NSInteger i, count = [keys count]; - - for (i = 0; i < count; i++) { - id object = [self objectForKey: [keys objectAtIndex: i]]; - - if (object == nil) - object = marker; - - [result addObject: object]; - } - - return result; -} - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically { - return [NSPropertyListWriter_vintage writePropertyList: self - toFile: path - atomically: atomically]; -} - -- (BOOL) writeToURL: (NSURL *) url atomically: (BOOL) atomically { - if ([url isFileURL]) - return [self writeToFile: [url path] atomically: atomically]; - - return NO; -} - -- (NSString *) description { - return [NSPropertyListWriter_vintage stringWithPropertyList: self]; -} - -- (NSString *) descriptionInStringsFileFormat { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) descriptionWithLocale: locale { - return [self descriptionWithLocale: locale indent: 0]; -} - -- (NSString *) descriptionWithLocale: locale indent: (NSUInteger) indent { - NSUnimplementedMethod(); - return [self description]; -} - -@end - -#import - -@implementation NSDictionary (CFTypeID) - -- (unsigned) _cfTypeID { - return kNSCFTypeDictionary; -} - -@end diff --git a/Foundation/NSDictionary/NSDictionary_mapTable.h b/Foundation/NSDictionary/NSDictionary_mapTable.h deleted file mode 100644 index 59493b39..00000000 --- a/Foundation/NSDictionary/NSDictionary_mapTable.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSDictionary_mapTable : NSDictionary { - NSMapTable *_table; -} - -- (NSUInteger) count; -- objectForKey: aKey; -- (NSEnumerator *) keyEnumerator; - -@end diff --git a/Foundation/NSDictionary/NSDictionary_mapTable.m b/Foundation/NSDictionary/NSDictionary_mapTable.m deleted file mode 100644 index 4cb3df43..00000000 --- a/Foundation/NSDictionary/NSDictionary_mapTable.m +++ /dev/null @@ -1,82 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import -#import - -@implementation NSDictionary_mapTable - -- (NSUInteger) count { - return NSCountMapTable(_table); -} - -- objectForKey: key { - return NSMapGet(_table, key); -} - -- (NSEnumerator *) keyEnumerator { - return NSAutorelease(NSEnumerator_dictionaryKeysNew(_table)); -} - -- init { - return [self initWithObjects: NULL forKeys: NULL count: 0]; -} - -- initWithObjects: (id *) objects - forKeys: (id *) keys - count: (NSUInteger) count -{ - NSInteger i; - - _table = NSCreateMapTableWithZone(NSObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, count, NULL); - - for (i = 0; i < count; i++) { - if (keys[i] == nil) { - [self autorelease]; - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"Attempt to insert object with nil key"); - } else if (objects[i] == nil) { - [self autorelease]; - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"Attempt to insert nil object for key %@", - keys[i]); - } - - id key = [keys[i] copy]; - NSMapInsert(_table, key, objects[i]); - [key release]; - } - return self; -} - -- (void) dealloc { - if (_table != NULL) - NSFreeMapTable(_table); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -@end diff --git a/Foundation/NSDictionary/NSEnumerator_dictionaryKeys.h b/Foundation/NSDictionary/NSEnumerator_dictionaryKeys.h deleted file mode 100644 index 18c196ea..00000000 --- a/Foundation/NSDictionary/NSEnumerator_dictionaryKeys.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSEnumerator_dictionaryKeys : NSEnumerator { - NSMapEnumerator state; -} - -- initWithMapTable: (NSMapTable *) aTable; -- nextObject; - -@end - -NSEnumerator *NSEnumerator_dictionaryKeysNew(NSMapTable *table); diff --git a/Foundation/NSDictionary/NSEnumerator_dictionaryKeys.m b/Foundation/NSDictionary/NSEnumerator_dictionaryKeys.m deleted file mode 100644 index 1a10500d..00000000 --- a/Foundation/NSDictionary/NSEnumerator_dictionaryKeys.m +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSEnumerator_dictionaryKeys - -- initWithMapTable: (NSMapTable *) aTable { - state = NSEnumerateMapTable(aTable); - return self; -} - -- nextObject { - void *key, *val; - return NSNextMapEnumeratorPair(&state, &key, &val) ? key : nil; -} - -NSEnumerator *NSEnumerator_dictionaryKeysNew(NSMapTable *table) { - NSEnumerator_dictionaryKeys *self = - NSAllocateObject([NSEnumerator_dictionaryKeys class], 0, NULL); - if (self) { - self->state = NSEnumerateMapTable(table); - } - - return self; -} - -@end diff --git a/Foundation/NSDictionary/NSEnumerator_dictionaryObjects.h b/Foundation/NSDictionary/NSEnumerator_dictionaryObjects.h deleted file mode 100644 index 6c85bdf9..00000000 --- a/Foundation/NSDictionary/NSEnumerator_dictionaryObjects.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDictionary; - -@interface NSEnumerator_dictionaryObjects : NSEnumerator { - NSEnumerator *_keyEnumerator; - NSDictionary *_dictionary; -} - -- initWithDictionary: (NSDictionary *) dictionary; -- nextObject; - -@end diff --git a/Foundation/NSDictionary/NSEnumerator_dictionaryObjects.m b/Foundation/NSDictionary/NSEnumerator_dictionaryObjects.m deleted file mode 100644 index 49fe11d0..00000000 --- a/Foundation/NSDictionary/NSEnumerator_dictionaryObjects.m +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSEnumerator_dictionaryObjects - -- initWithDictionary: (NSDictionary *) dictionary { - _keyEnumerator = [[dictionary keyEnumerator] retain]; - _dictionary = [dictionary retain]; - return self; -} - -- (void) dealloc { - [_keyEnumerator release]; - [_dictionary release]; - [super dealloc]; -} - -- nextObject { - id nextKey = [_keyEnumerator nextObject]; - return (nextKey != nil) ? [_dictionary objectForKey: nextKey] : nil; -} - -@end diff --git a/Foundation/NSDictionary/NSMutableDictionary.h b/Foundation/NSDictionary/NSMutableDictionary.h deleted file mode 100644 index 1ec97b2b..00000000 --- a/Foundation/NSDictionary/NSMutableDictionary.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableDictionary : NSDictionary - -- initWithCapacity: (NSUInteger) capacity; - -+ dictionaryWithCapacity: (NSUInteger) capacity; - -- (void) setObject: object forKey: key; -- (void) addEntriesFromDictionary: (NSDictionary *) dictionary; -- (void) setDictionary: (NSDictionary *) dictionary; - -- (void) removeObjectForKey: key; -- (void) removeAllObjects; -- (void) removeObjectsForKeys: (NSArray *) keys; - -@end diff --git a/Foundation/NSDictionary/NSMutableDictionary.m b/Foundation/NSDictionary/NSMutableDictionary.m deleted file mode 100644 index d44c0cc0..00000000 --- a/Foundation/NSDictionary/NSMutableDictionary.m +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -@implementation NSMutableDictionary - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSMutableDictionary_CF class], 0, zone); -} - -- initWithCapacity: (NSUInteger) capacity { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithObjects: (id *) objects - forKeys: (id *) keys - count: (NSUInteger) count -{ - int i; - - self = [self initWithCapacity: count]; - - for (i = 0; i < count; i++) - [self setObject: objects[i] forKey: keys[i]]; - - return self; -} - -- copy { - return [[NSDictionary allocWithZone: NULL] initWithDictionary: self]; -} - -- copyWithZone: (NSZone *) zone { - return [[NSDictionary allocWithZone: zone] initWithDictionary: self]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSMutableDictionary"); -} - -+ dictionaryWithCapacity: (NSUInteger) capacity { - return [[[self allocWithZone: NULL] initWithCapacity: capacity] - autorelease]; -} - -- (void) setObject: object forKey: aKey { - NSInvalidAbstractInvocation(); -} - -- (void) addEntriesFromDictionary: (NSDictionary *) dictionary { - NSEnumerator *keyEnum = [dictionary keyEnumerator]; - id key; - - while ((key = [keyEnum nextObject]) != nil) - [self setObject: [dictionary objectForKey: key] forKey: key]; -} - -- (void) setDictionary: (NSDictionary *) dictionary { - [self removeAllObjects]; - [self addEntriesFromDictionary: dictionary]; -} - -- (void) removeObjectForKey: aKey { - NSInvalidAbstractInvocation(); -} - -- (void) removeAllObjects { - NSArray *allKeys = [self allKeys]; - NSInteger count = [allKeys count]; - - while (--count >= 0) - [self removeObjectForKey: [allKeys objectAtIndex: count]]; -} - -- (void) removeObjectsForKeys: (NSArray *) keys { - NSInteger count = [keys count]; - - while (--count >= 0) - [self removeObjectForKey: [keys objectAtIndex: count]]; -} - -@end diff --git a/Foundation/NSDictionary/NSMutableDictionary_mapTable.h b/Foundation/NSDictionary/NSMutableDictionary_mapTable.h deleted file mode 100644 index 6a21e4a8..00000000 --- a/Foundation/NSDictionary/NSMutableDictionary_mapTable.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSMutableDictionary_CF : NSMutableDictionary { - CFDictionaryKeyCallBacks _keyCallBacks; - CFDictionaryValueCallBacks _valueCallBacks; - NSUInteger _count; - NSUInteger _nBuckets; - struct _NSDictNode **_buckets; -} - -- initWithKeys: (const void **) keys - values: (const void **) values - count: (NSUInteger) count - keyCallBacks: (const CFDictionaryKeyCallBacks *) keyCallBacks - valueCallBacks: (const CFDictionaryValueCallBacks *) valueCallBacks; - -- (NSUInteger) count; -- objectForKey: key; -- (NSEnumerator *) keyEnumerator; - -@end - -@interface NSDictionary_CF : NSMutableDictionary_CF - -@end diff --git a/Foundation/NSDictionary/NSMutableDictionary_mapTable.m b/Foundation/NSDictionary/NSMutableDictionary_mapTable.m deleted file mode 100644 index e83f3503..00000000 --- a/Foundation/NSDictionary/NSMutableDictionary_mapTable.m +++ /dev/null @@ -1,438 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#import -#import -#import -#import -#import -#import - -typedef struct _NSDictNode { - struct _NSDictNode *next; - void *key; - void *value; -} NSDictNode; - -typedef struct { - NSUInteger _nBuckets; - struct _NSDictNode **_buckets; - NSInteger _i; - struct _NSDictNode *_j; -} CFDictionaryEnumerator; - -@interface NSEnumerator_CFDictionaryKeys : NSEnumerator { - @public - CFDictionaryEnumerator _state; -} - -- initWithState: (CFDictionaryEnumerator) state; -- nextObject; - -@end - -@implementation NSEnumerator_CFDictionaryKeys - -- initWithState: (CFDictionaryEnumerator) state { - _state = state; - return self; -} - -BOOL NSNextDictionaryEnumeratorPair(CFDictionaryEnumerator *state, void **key, - void **value) -{ - - if (state->_j == NULL) - return NO; - - *key = state->_j->key; - *value = state->_j->value; - - if ((state->_j = state->_j->next) != NULL) - return YES; - - for (state->_i++; state->_i < state->_nBuckets; state->_i++) - if ((state->_j = state->_buckets[state->_i]) != NULL) - return YES; - - state->_j = NULL; - - return YES; -} - -- nextObject { - void *key, *val; - return NSNextDictionaryEnumeratorPair(&_state, &key, &val) ? key : nil; -} - -@end - -@implementation NSMutableDictionary_CF - -const void *objectRetainCallBack(CFAllocatorRef allocator, const void *value) { - return CFRetain(value); -} - -const void *objectCopyCallBack(CFAllocatorRef allocator, const void *value) { - return [(id) value copyWithZone: NULL]; -} - -static void objectReleaseCallBack(CFAllocatorRef allocator, const void *value) { - CFRelease(value); -} - -static CFDictionaryKeyCallBacks objectKeyCallBacks = { - 0, - objectCopyCallBack, - objectReleaseCallBack, - CFCopyDescription, - CFEqual, - CFHash, -}; - -static CFDictionaryValueCallBacks objectValueCallbacks = { - 0, objectRetainCallBack, objectReleaseCallBack, CFCopyDescription, - CFEqual}; - -const void *defaultRetainCallBack(CFAllocatorRef allocator, const void *value) { - return value; -} - -static void defaultReleaseCallBack(CFAllocatorRef allocator, const void *value) -{ -} - -static CFHashCode defaultHashCallBack(const void *value) { - return (CFHashCode) value >> 4; -} - -static Boolean defaultEqualCallBack(const void *value, const void *other) { - return (value == other) ? TRUE : FALSE; -} - -static CFStringRef defaultCopyDescription(const void *value) { - return (CFStringRef) @"[ UNIMPLEMENTED dictionary value ]"; -} - -- (NSUInteger) count { - return _count; -} - -- objectForKey: key { - NSUInteger i = _keyCallBacks.hash(key) % _nBuckets; - NSDictNode *j; - - for (j = _buckets[i]; j != NULL; j = j->next) - if (j->key == key || _keyCallBacks.equal(j->key, key)) - return j->value; - - return NULL; -} - -static CFDictionaryEnumerator keyEnumeratorState(NSMutableDictionary_CF *self) { - CFDictionaryEnumerator state; - - state._nBuckets = self->_nBuckets; - state._buckets = self->_buckets; - for (state._i = 0; state._i < state._nBuckets; state._i++) - if (state._buckets[state._i] != NULL) - break; - state._j = (state._i < state._nBuckets) ? state._buckets[state._i] : NULL; - return state; -} - -- (NSEnumerator *) keyEnumerator { - return [[[NSEnumerator_CFDictionaryKeys allocWithZone: NULL] - initWithState: keyEnumeratorState(self)] autorelease]; -} - -static void NSDictInsert(NSMutableDictionary_CF *self, const void *key, - const void *value) -{ - NSZone *zone; - NSUInteger hash = self->_keyCallBacks.hash(key); - NSUInteger i = hash % self->_nBuckets; - NSDictNode *j; - - for (j = self->_buckets[i]; j != NULL; j = j->next) - if (self->_keyCallBacks.equal(j->key, key)) { - void *oldKey = j->key; - void *oldValue = j->value; - - key = self->_keyCallBacks.retain(NULL, key); - value = self->_valueCallBacks.retain(NULL, value); - j->key = (void *) key; - j->value = (void *) value; - self->_keyCallBacks.release(NULL, oldKey); - self->_valueCallBacks.release(NULL, oldValue); - - return; - } - - zone = NSZoneFromPointer(self); - - if (self->_count >= self->_nBuckets) { - NSUInteger nBuckets = self->_nBuckets; - NSDictNode **buckets = self->_buckets, *next; - - self->_nBuckets = nBuckets * 2; - self->_buckets = - NSZoneCalloc(zone, self->_nBuckets, sizeof(NSDictNode *)); - - for (i = 0; i < nBuckets; i++) - for (j = buckets[i]; j != NULL; j = next) { - NSUInteger newi = - self->_keyCallBacks.hash(j->key) % self->_nBuckets; - - next = j->next; - j->next = self->_buckets[newi]; - self->_buckets[newi] = j; - } - NSZoneFree(zone, buckets); - i = hash % self->_nBuckets; - } - - key = self->_keyCallBacks.retain(NULL, key); - value = self->_valueCallBacks.retain(NULL, value); - j = NSZoneMalloc(zone, sizeof(NSDictNode)); - j->key = (void *) key; - j->value = (void *) value; - j->next = self->_buckets[i]; - self->_buckets[i] = j; - self->_count++; -} - -static inline void setValueForKey(NSMutableDictionary_CF *self, - const void *value, const void *key) -{ - NSDictInsert(self, key, value); -} - -static inline void setObjectForKey(NSMutableDictionary_CF *self, id object, - id key) -{ - if (key == nil) { - NSRaiseException(NSInvalidArgumentException, self, - @selector(setObject:forKey:), - @"Attempt to insert object with nil key"); - return; - } else if (object == nil) { - NSRaiseException(NSInvalidArgumentException, self, - @selector(setObject:forKey:), - @"Attempt to insert nil object for key %@", key); - return; - } - - setValueForKey(self, object, key); -} - -- (void) setObject: object forKey: key { - setObjectForKey(self, object, key); -} - -static void NSDictRemove(NSMutableDictionary_CF *self, const void *key) { - NSUInteger i = self->_keyCallBacks.hash(key) % self->_nBuckets; - NSDictNode *j = self->_buckets[i], *prev = j; - - for (; j != NULL; j = j->next) { - if (self->_keyCallBacks.equal(j->key, key)) { - if (prev == j) - self->_buckets[i] = j->next; - else - prev->next = j->next; - self->_keyCallBacks.release(NULL, j->key); - self->_valueCallBacks.release(NULL, j->value); - NSZoneFree(NSZoneFromPointer(j), j); - self->_count--; - return; - } - prev = j; - } -} - -- (void) removeObjectForKey: key { - NSDictRemove(self, key); -} - -- init { - return [self initWithObjects: NULL forKeys: NULL count: 0]; -} - -- initWithKeys: (const void **) keys - values: (const void **) values - count: (NSUInteger) count - keyCallBacks: (const CFDictionaryKeyCallBacks *) keyCallBacks - valueCallBacks: (const CFDictionaryValueCallBacks *) valueCallBacks -{ - - _keyCallBacks.hash = (keyCallBacks->hash != NULL) ? keyCallBacks->hash - : defaultHashCallBack; - _keyCallBacks.equal = (keyCallBacks->equal != NULL) ? keyCallBacks->equal - : defaultEqualCallBack; - _keyCallBacks.retain = (keyCallBacks->retain != NULL) - ? keyCallBacks->retain - : defaultRetainCallBack; - _keyCallBacks.release = (keyCallBacks->release != NULL) - ? keyCallBacks->release - : defaultReleaseCallBack; - _keyCallBacks.copyDescription = (keyCallBacks->copyDescription != NULL) - ? keyCallBacks->copyDescription - : defaultCopyDescription; - - _valueCallBacks.retain = (valueCallBacks->retain != NULL) - ? valueCallBacks->retain - : defaultRetainCallBack; - _valueCallBacks.release = (valueCallBacks->release != NULL) - ? valueCallBacks->release - : defaultReleaseCallBack; - _valueCallBacks.copyDescription = (valueCallBacks->copyDescription != NULL) - ? valueCallBacks->copyDescription - : defaultCopyDescription; - - _count = 0; - _nBuckets = 4; - _buckets = NSZoneCalloc(NULL, _nBuckets, sizeof(NSDictNode *)); - - NSInteger i; - - for (i = 0; i < count; i++) { - if (keys[i] == nil) { - [self autorelease]; - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"Attempt to insert object with nil key"); - } else if (values[i] == nil) { - [self autorelease]; - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"Attempt to insert nil object for key %@", - keys[i]); - } - setValueForKey(self, values[i], keys[i]); - } - - return self; -} - -- initWithObjects: (id *) objects - forKeys: (id *) keys - count: (NSUInteger) count -{ - return [self initWithKeys: (const void **) keys - values: (const void **) objects - count: count - keyCallBacks: &objectKeyCallBacks - valueCallBacks: &objectValueCallbacks]; -} - -- initWithCapacity: (NSUInteger) capacity { - return [self initWithKeys: NULL - values: NULL - count: 0 - keyCallBacks: &objectKeyCallBacks - valueCallBacks: &objectValueCallbacks]; -} - -- (void) dealloc { - NSZone *zone = NSZoneFromPointer(self); - NSUInteger i; - NSDictNode *j, *next; - - for (i = 0; i < _nBuckets; i++) { - for (j = self->_buckets[i]; j != NULL; j = next) { - _keyCallBacks.release(NULL, j->key); - _valueCallBacks.release(NULL, j->value); - next = j->next; - NSZoneFree(zone, j); - } - } - NSZoneFree(zone, self->_buckets); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (void) addEntriesFromDictionary: (NSDictionary *) dictionary { - NSUInteger i, otherCount = [dictionary count]; - id keys[otherCount], objects[otherCount]; - - [dictionary getObjects: objects andKeys: keys]; - - for (i = 0; i < otherCount; i++) - setObjectForKey(self, objects[i], keys[i]); -} - -- (void) getObjects: (id *) objects andKeys: (id *) keys { - NSInteger i; - - CFDictionaryEnumerator state = keyEnumeratorState(self); - - for (i = 0; i < self->_count; i++) - NSNextDictionaryEnumeratorPair(&state, (void **) &(keys[i]), - (void **) &(objects[i])); -} - -static NSDictionary *copyWithClassAndZone(NSMutableDictionary_CF *self, - Class cls, NSZone *zone) -{ - void **keys = __builtin_alloca(sizeof(void *) * self->_count); - void **values = __builtin_alloca(sizeof(void *) * self->_count); - - [self getObjects: (id *) values andKeys: (id *) keys]; - - return [[cls alloc] initWithKeys: (const void **) keys - values: (const void **) values - count: self->_count - keyCallBacks: &(self->_keyCallBacks) valueCallBacks - :&(self->_valueCallBacks)]; -} - -- copy { - return copyWithClassAndZone(self, [NSDictionary_CF class], NULL); -} - -- copyWithZone: (NSZone *) zone { - return copyWithClassAndZone(self, [NSDictionary_CF class], NULL); -} - -- mutableCopy { - return copyWithClassAndZone(self, [NSMutableDictionary_CF class], NULL); -} - -- mutableCopyWithZone: (NSZone *) zone { - return copyWithClassAndZone(self, [NSMutableDictionary_CF class], NULL); -} - -@end - -@implementation NSDictionary_CF - -- (void) setObject: object forKey: key { - [self doesNotRecognizeSelector: _cmd]; -} - -- (void) addEntriesFromDictionary: (NSDictionary *) dictionary { - [self doesNotRecognizeSelector: _cmd]; -} - -- (void) removeObjectForKey: key { - [self doesNotRecognizeSelector: _cmd]; -} - -@end diff --git a/Foundation/NSDirectoryEnumerator.h b/Foundation/NSDirectoryEnumerator.h deleted file mode 100644 index 05adc73c..00000000 --- a/Foundation/NSDirectoryEnumerator.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -@class NSDictionary; - -@interface NSDirectoryEnumerator : NSEnumerator -- (void) skipDescendents; -- (void) skipDescendants; -- (NSDictionary *) directoryAttributes; -- (NSDictionary *) fileAttributes; -@end diff --git a/Foundation/NSDirectoryEnumerator.m b/Foundation/NSDirectoryEnumerator.m deleted file mode 100644 index 1567b1a5..00000000 --- a/Foundation/NSDirectoryEnumerator.m +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - David Young -#import -#import - -@implementation NSDirectoryEnumerator - -- (void) skipDescendents { - NSUnimplementedMethod(); -} - -- (void) skipDescendants; { - [self skipDescendents]; -} - -- (NSDictionary *) directoryAttributes { - return nil; -} - -- (NSDictionary *) fileAttributes { - return nil; -} - -@end diff --git a/Foundation/NSDistributedLock.h b/Foundation/NSDistributedLock.h deleted file mode 100644 index a685cb4a..00000000 --- a/Foundation/NSDistributedLock.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSDistributedLock : NSObject { -} - -+ (NSDistributedLock *) lockWithPath: (NSString *) path; - -- initWithPath: (NSString *) path; - -- (NSDate *) lockDate; - -- (BOOL) tryLock; -- (void) unlock; - -- (void) breakLock; - -@end diff --git a/Foundation/NSDistributedLock.m b/Foundation/NSDistributedLock.m deleted file mode 100644 index ee0b9df1..00000000 --- a/Foundation/NSDistributedLock.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSDistributedNotificationCenter.h b/Foundation/NSDistributedNotificationCenter.h deleted file mode 100644 index c5940dcb..00000000 --- a/Foundation/NSDistributedNotificationCenter.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -// FIXME: cleanup - -typedef int NSNotificationSuspensionBehavior; - -FOUNDATION_EXPORT NSString *const NSLocalNotificationCenterType; - -@interface NSDistributedNotificationCenter : NSNotificationCenter - -+ (NSDistributedNotificationCenter *) defaultCenter; - -+ (NSDistributedNotificationCenter *) notificationCenterForType: - (NSString *) type; - -- (BOOL) suspended; - -- (void) setSuspended: (BOOL) value; - -- (void) addObserver: observer - selector: (SEL) selector - name: (NSString *) name - object: (NSString *) object; -- (void) addObserver: observer - selector: (SEL) selector - name: (NSString *) name - object: (NSString *) object - suspensionBehavior: (NSNotificationSuspensionBehavior) behavior; - -- (void) removeObserver: observer - name: (NSString *) name - object: (NSString *) object; - -- (void) postNotificationName: (NSString *) name object: (NSString *) object; -- (void) postNotificationName: (NSString *) name - object: (NSString *) object - userInfo: (NSDictionary *) userInfo; -- (void) postNotificationName: (NSString *) name - object: (NSString *) object - userInfo: (NSDictionary *) userInfo - deliverImmediately: (BOOL) immediately; -- (void) postNotificationName: (NSString *) name - object: (NSString *) object - userInfo: (NSDictionary *) userInfo - options: (NSUInteger) options; - -@end diff --git a/Foundation/NSDistributedNotificationCenter.m b/Foundation/NSDistributedNotificationCenter.m deleted file mode 100644 index ce2f9a78..00000000 --- a/Foundation/NSDistributedNotificationCenter.m +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -NSString *const NSLocalNotificationCenterType = - @"NSLocalNotificationCenterType"; - -@implementation NSDistributedNotificationCenter - -+ (NSDistributedNotificationCenter *) defaultCenter { - return [self notificationCenterForType: NSLocalNotificationCenterType]; -} - -+ (NSDistributedNotificationCenter *) notificationCenterForType: - (NSString *) type -{ - NSUnimplementedMethod(); - return nil; -} - -- (BOOL) suspended { - NSUnimplementedMethod(); - return NO; -} - -- (void) setSuspended: (BOOL) value { - NSUnimplementedMethod(); -} - -- (void) addObserver: observer - selector: (SEL) selector - name: (NSString *) name - object: (NSString *) object -{ - NSUnimplementedMethod(); -} - -- (void) addObserver: observer - selector: (SEL) selector - name: (NSString *) name - object: (NSString *) object - suspensionBehavior: (NSNotificationSuspensionBehavior) behavior -{ - NSUnimplementedMethod(); -} - -- (void) removeObserver: observer - name: (NSString *) name - object: (NSString *) object -{ - NSUnimplementedMethod(); -} - -- (void) postNotificationName: (NSString *) name object: (NSString *) object { - NSUnimplementedMethod(); -} - -- (void) postNotificationName: (NSString *) name - object: (NSString *) object - userInfo: (NSDictionary *) userInfo -{ - NSUnimplementedMethod(); -} - -- (void) postNotificationName: (NSString *) name - object: (NSString *) object - userInfo: (NSDictionary *) userInfo - deliverImmediately: (BOOL) immediately -{ - NSUnimplementedMethod(); -} - -- (void) postNotificationName: (NSString *) name - object: (NSString *) object - userInfo: (NSDictionary *) userInfo - options: (NSUInteger) options -{ - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSEnumerator.h b/Foundation/NSEnumerator.h deleted file mode 100644 index 6f33e5fe..00000000 --- a/Foundation/NSEnumerator.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray; - -typedef struct { - unsigned long state; - id *itemsPtr; - unsigned long *mutationsPtr; - unsigned long extra[5]; -} NSFastEnumerationState; - -@protocol NSFastEnumeration -- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *) state - objects: (id *) stackbuf - count: (NSUInteger) length; -@end - -@interface NSEnumerator : NSObject - -- nextObject; -- (NSArray *) allObjects; - -@end diff --git a/Foundation/NSEnumerator.m b/Foundation/NSEnumerator.m deleted file mode 100644 index 03455f12..00000000 --- a/Foundation/NSEnumerator.m +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSEnumerator - -- nextObject { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSArray *) allObjects { - NSMutableArray *array = [NSMutableArray array]; - id object; - - while ((object = [self nextObject]) != nil) - [array addObject: object]; - - return array; -} - -- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *) state - objects: (id *) stackbuf - count: (NSUInteger) length; -{ - NSInteger i; - state->itemsPtr = stackbuf; - state->mutationsPtr = (unsigned long *) self; - - for (i = 0; i < length; i++) { - state->itemsPtr[i] = [self nextObject]; - if (!state->itemsPtr[i]) - return i; - } - return i; -} - -@end diff --git a/Foundation/NSError.h b/Foundation/NSError.h deleted file mode 100644 index a367417b..00000000 --- a/Foundation/NSError.h +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSDictionary, NSArray; - -FOUNDATION_EXPORT NSString *const NSPOSIXErrorDomain; -FOUNDATION_EXPORT NSString *const NSOSStatusErrorDomain; -// temporary until we can map it -FOUNDATION_EXPORT NSString *const NSWINSOCKErrorDomain; -FOUNDATION_EXPORT NSString *const NSWin32ErrorDomain; - -FOUNDATION_EXPORT NSString *const NSCocoaErrorDomain; - -FOUNDATION_EXPORT NSString *const NSUnderlyingErrorKey; -FOUNDATION_EXPORT NSString *const NSLocalizedDescriptionKey; -FOUNDATION_EXPORT NSString *const NSLocalizedFailureReasonErrorKey; -FOUNDATION_EXPORT NSString *const NSLocalizedRecoveryOptionsErrorKey; -FOUNDATION_EXPORT NSString *const NSLocalizedRecoverySuggestionErrorKey; -FOUNDATION_EXPORT NSString *const NSRecoveryAttempterErrorKey; - -FOUNDATION_EXPORT NSString *const NSStringEncodingErrorKey; -FOUNDATION_EXPORT NSString *const NSFilePathErrorKey; -FOUNDATION_EXPORT NSString *const NSErrorFailingURLStringKey; -FOUNDATION_EXPORT NSString *const NSURLErrorKey; - -@interface NSError : NSObject { - NSString *_domain; - NSInteger _code; - NSDictionary *_userInfo; -} - -- initWithDomain: (NSString *) domain - code: (NSInteger) code - userInfo: (NSDictionary *) userInfo; - -+ errorWithDomain: (NSString *) domain - code: (NSInteger) code - userInfo: (NSDictionary *) userInfo; - -- (NSString *) domain; -- (NSInteger) code; -- (NSDictionary *) userInfo; - -- (NSString *) localizedDescription; -- (NSString *) localizedFailureReason; -- (NSArray *) localizedRecoveryOptions; -- (NSString *) localizedRecoverySuggestion; - -- recoveryAttempter; - -@end - -@interface NSObject (NSErrorRecoveryAttempting) - -- (void) attemptRecoveryFromError: (NSError *) error - optionIndex: (NSUInteger) recoveryOptionIndex - delegate: (id) delegate - didRecoverSelector: (SEL) didRecoverSelector - contextInfo: (void *) info; -- (BOOL) attemptRecoveryFromError: (NSError *) error - optionIndex: (NSUInteger) recoveryOptionIndex; - -@end \ No newline at end of file diff --git a/Foundation/NSError.m b/Foundation/NSError.m deleted file mode 100644 index 00493a06..00000000 --- a/Foundation/NSError.m +++ /dev/null @@ -1,142 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -NSString *const NSPOSIXErrorDomain = @"NSPOSIXErrorDomain"; -NSString *const NSOSStatusErrorDomain = @"NSOSStatusErrorDomain"; -NSString *const NSWINSOCKErrorDomain = @"NSWINSOCKErrorDomain"; -NSString *const NSWin32ErrorDomain = @"NSWin32ErrorDomain"; -NSString *const NSCocoaErrorDomain = @"NSCocoaErrorDomain"; - -NSString *const NSUnderlyingErrorKey = @"NSUnderlyingErrorKey"; -NSString *const NSLocalizedDescriptionKey = @"NSLocalizedDescriptionKey"; -NSString *const NSLocalizedFailureReasonErrorKey = - @"NSLocalizedFailureReasonErrorKey"; -NSString *const NSLocalizedRecoveryOptionsErrorKey = - @"NSLocalizedRecoveryOptionsErrorKey"; -NSString *const NSLocalizedRecoverySuggestionErrorKey = - @"NSLocalizedRecoverySuggestionErrorKey"; -NSString *const NSRecoveryAttempterErrorKey = @"NSRecoveryAttempterErrorKey"; - -@implementation NSError - -- initWithDomain: (NSString *) domain - code: (NSInteger) code - userInfo: (NSDictionary *) userInfo -{ - _domain = [domain copy]; - _code = code; - _userInfo = [userInfo retain]; - return self; -} - -- (void) dealloc { - [_domain release]; - [_userInfo release]; - [super dealloc]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -+ errorWithDomain: (NSString *) domain - code: (NSInteger) code - userInfo: (NSDictionary *) userInfo -{ - return [[[self alloc] initWithDomain: domain code: code - userInfo: userInfo] autorelease]; -} - -- (NSString *) domain { - return _domain; -} - -- (NSInteger) code { - return _code; -} - -- (NSDictionary *) userInfo { - return _userInfo; -} - -- (NSString *) localizedDescription { - NSString *localizedDescription; - - localizedDescription = [_userInfo objectForKey: NSLocalizedDescriptionKey]; - if (localizedDescription != nil) - return localizedDescription; - - localizedDescription = [self localizedFailureReason]; - if (localizedDescription) { - return [NSString - stringWithFormat: - @"%@ %@", - NSLocalizedString( - @"The operation could not be completed.", - @"Default NSError description"), - localizedDescription]; - } else { - return [NSString - stringWithFormat: - @"%@ (%@ error %d)", - NSLocalizedString( - @"The operation could not be completed.", - @"Default NSError description"), - _domain, _code]; - } -} - -- (NSString *) localizedFailureReason { - return [_userInfo objectForKey: NSLocalizedFailureReasonErrorKey]; -} - -- (NSArray *) localizedRecoveryOptions { - return [_userInfo objectForKey: NSLocalizedRecoveryOptionsErrorKey]; -} - -- (NSString *) localizedRecoverySuggestion { - return [_userInfo objectForKey: NSLocalizedRecoverySuggestionErrorKey]; -} - -- (id) recoveryAttempter { - return [_userInfo objectForKey: NSRecoveryAttempterErrorKey]; -} - -- (id) description { - return [NSString - stringWithFormat: @"Error Domain=%@ Code=%d UserInfo=%p %@", - _domain, _code, _userInfo, - [self localizedDescription]]; -} - -@end diff --git a/Foundation/NSException/NSException.h b/Foundation/NSException/NSException.h deleted file mode 100644 index 3e20d775..00000000 --- a/Foundation/NSException/NSException.h +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#include - -@class NSDictionary, NSArray; - -FOUNDATION_EXPORT NSString *const NSGenericException; -FOUNDATION_EXPORT NSString *const NSInvalidArgumentException; -FOUNDATION_EXPORT NSString *const NSRangeException; - -FOUNDATION_EXPORT NSString *const NSInternalInconsistencyException; -FOUNDATION_EXPORT NSString *const NSMallocException; - -FOUNDATION_EXPORT NSString *const NSParseErrorException; -FOUNDATION_EXPORT NSString *const NSInconsistentArchiveException; - -@interface NSException : NSObject { - NSString *_name; - NSString *_reason; - NSDictionary *_userInfo; - NSArray *_callStack; -} - -+ (void) raise: (NSString *) name format: (NSString *) format, ...; -+ (void) raise: (NSString *) name - format: (NSString *) format - arguments: (va_list) arguments; - -- initWithName: (NSString *) name - reason: (NSString *) reason - userInfo: (NSDictionary *) userInfo; - -+ (NSException *) exceptionWithName: (NSString *) name - reason: (NSString *) reason - userInfo: (NSDictionary *) userInfo; - -- (void) raise; - -- (NSString *) name; -- (NSString *) reason; -- (NSDictionary *) userInfo; - -- (NSArray *) callStackReturnAddresses; - -@end - -typedef void NSUncaughtExceptionHandler(NSException *exception); - -FOUNDATION_EXPORT NSUncaughtExceptionHandler * -NSGetUncaughtExceptionHandler(void); -FOUNDATION_EXPORT void -NSSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *); - -typedef struct NSExceptionFrame { - jmp_buf state; - struct NSExceptionFrame *parent; - NSException *exception; -} NSExceptionFrame; - -FOUNDATION_EXPORT void __NSPushExceptionFrame(NSExceptionFrame *frame); -FOUNDATION_EXPORT void __NSPopExceptionFrame(NSExceptionFrame *frame); - -#define NS_DURING { \ - NSExceptionFrame __exceptionFrame; \ - __NSPushExceptionFrame(&__exceptionFrame); \ - if (setjmp(__exceptionFrame.state) == 0) { - -#define NS_HANDLER \ - __NSPopExceptionFrame(&__exceptionFrame); \ - } \ - else { \ - NSException *localException = __exceptionFrame.exception; \ - if (localException) { /* caller does not have to read localException \ - */ \ - } - -#define NS_ENDHANDLER \ - } \ - } - -#define NS_VALUERETURN(val, type) { \ - __NSPopExceptionFrame(&__exceptionFrame); \ - return val; \ - } - -#define NS_VOIDRETURN { \ - __NSPopExceptionFrame(&__exceptionFrame); \ - return; \ - } - -#import diff --git a/Foundation/NSException/NSException.m b/Foundation/NSException/NSException.m deleted file mode 100644 index 96469e10..00000000 --- a/Foundation/NSException/NSException.m +++ /dev/null @@ -1,136 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -NSString *const NSGenericException = @"NSGenericException"; -NSString *const NSInvalidArgumentException = @"NSInvalidArgumentException"; -NSString *const NSRangeException = @"NSRangeException"; - -NSString *const NSInternalInconsistencyException = - @"NSInternalInconsistencyException"; -NSString *const NSMallocException = @"NSMallocException"; - -NSString *const NSParseErrorException = @"NSParseErrorException"; -NSString *const NSInconsistentArchiveException = - @"NSInconsistentArchiveException"; - -@implementation NSException - -+ (void) raise: (NSString *) name format: (NSString *) format, ... { - va_list arguments; - - va_start(arguments, format); - - return [self raise: name format: format arguments: arguments]; -} - -+ (void) raise: (NSString *) name - format: (NSString *) format - arguments: (va_list) arguments -{ - [[self exceptionWithName: name - reason: NSStringWithFormatArguments(format, arguments) - userInfo: nil] raise]; -} - -- initWithName: (NSString *) name - reason: (NSString *) reason - userInfo: (NSDictionary *) userInfo -{ - _name = [name copy]; - _reason = [reason copy]; - _userInfo = [userInfo retain]; - _callStack = nil; - return self; -} - -- (void) dealloc { - [_name release]; - [_reason release]; - [_userInfo release]; - [_callStack release]; - NSDeallocateObject(self); - return; - [super dealloc]; -} - -+ (NSException *) exceptionWithName: (NSString *) name - reason: (NSString *) reason - userInfo: (NSDictionary *) userInfo -{ - return [[[self allocWithZone: NULL] initWithName: name - reason: reason - userInfo: userInfo] autorelease]; -} - -- (NSString *) description { - return _reason; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- (void) raise { - if (NSDebugEnabled) { - NSCLog("RAISE %s", [[self description] UTF8String]); - return; - } - [_callStack release]; - _callStack = [[NSThread callStackReturnAddresses] retain]; - objc_exception_throw(self); -} - -- (NSString *) name { - return _name; -} - -- (NSString *) reason { - return _reason; -} - -- (NSDictionary *) userInfo { - return _userInfo; -} - -- (NSArray *) callStackReturnAddresses { - return _callStack; -} - -@end diff --git a/Foundation/NSException/NSRaise.h b/Foundation/NSException/NSRaise.h deleted file mode 100644 index a8b83042..00000000 --- a/Foundation/NSException/NSRaise.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// *** FOR INTERNAL COCOTRON USE ONLY - -#import -#import - -static inline void _NSInvalidAbstractInvocation(SEL selector, id object, - const char *file, int line) -{ - [NSException raise: NSInvalidArgumentException - format: @"-%s only defined for abstract class. Define -[%@ %s] " - @"in %s:%d!", - sel_getName(selector), [object class], - sel_getName(selector), file, line]; -} - -static inline void _NSUnimplementedMethod(SEL selector, id object, - const char *file, int line) -{ - NSLog(@"-[%@ %s] unimplemented in %s at %d", [object class], - sel_getName(selector), file, line); -} - -static inline void _NSUnimplementedFunction(const char *function, - const char *file, int line) -{ - NSLog(@"%s() unimplemented in %s at %d", function, file, line); -} - -#define NSInvalidAbstractInvocation() \ - _NSInvalidAbstractInvocation(_cmd, self, __FILE__, __LINE__) - -#define NSUnimplementedMethod() \ - _NSUnimplementedMethod(_cmd, self, __FILE__, __LINE__) - -#define NSUnimplementedFunction() \ - _NSUnimplementedFunction(__PRETTY_FUNCTION__, __FILE__, __LINE__) diff --git a/Foundation/NSException/NSRaise.m b/Foundation/NSException/NSRaise.m deleted file mode 100644 index 076deddd..00000000 --- a/Foundation/NSException/NSRaise.m +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#include -#ifdef WINDOWS -#include -#endif - -// DO NOT USE IN NEW CODE AND REPLACE USAGE. Use NSAssert(). -void NSRaiseException(NSString *name, id self, SEL cmd, NSString *fmt, ...) { - NSString *where = [NSString - stringWithFormat: @"-[%@ %s]", [self class], sel_getName(cmd)]; - NSString *why; - va_list args; - - va_start(args, fmt); - - why = [[[NSString allocWithZone: NULL] initWithFormat: fmt - arguments: args] autorelease]; - - va_end(args); - [NSException raise: name format: @"%@ %@", where, why]; -} - -void NSCLogThreadId() { -#ifdef WINDOWS - fprintf(stderr, "threadId=%p:tick=%d:", GetCurrentThreadId(), - GetTickCount()); -#endif -} - -void NSCLogNewline() { -#ifdef WINDOWS - fprintf(stderr, "\n", GetCurrentThreadId()); -#else - fprintf(stderr, "\n"); -#endif - fflush(stderr); -} - -void NSCLogFormatWithArguments(const char *format, va_list arguments) { - vfprintf(stderr, format, arguments); - fflush(stderr); -} - -void NSCLogFormat(const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - NSCLogFormatWithArguments(format, arguments); - va_end(arguments); -} - -void NSCLogv(const char *format, va_list arguments) { - NSCLogThreadId(); - NSCLogFormatWithArguments(format, arguments); - NSCLogNewline(); -} - -void NSCLog(const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - NSCLogv(format, arguments); - va_end(arguments); -} diff --git a/Foundation/NSException/NSRaiseException.h b/Foundation/NSException/NSRaiseException.h deleted file mode 100644 index 2665d0fa..00000000 --- a/Foundation/NSException/NSRaiseException.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// *** FOR INTERNAL COCOTRON USE ONLY - -#import -#import - -// DO NOT USE IN NEW CODE AND REPLACE USAGE. Use NSAssert(). -FOUNDATION_EXPORT void NSRaiseException(NSString *name, id self, SEL cmd, - NSString *fmt, ...); - -// This is just a wrapper for fprintf, it doesn't handle %@ -// There are situations (such as localization inside NSLog) where you don't want -// to use NSLog -FOUNDATION_EXPORT void NSCLogv(const char *format, va_list arguments); -FOUNDATION_EXPORT void NSCLog(const char *format, ...); -FOUNDATION_EXPORT void NSCLogThreadId(); -FOUNDATION_EXPORT void NSCLogNewline(); -FOUNDATION_EXPORT void NSCLogFormat(const char *format, ...); diff --git a/Foundation/NSException/debugHelpers.h b/Foundation/NSException/debugHelpers.h deleted file mode 100644 index 21c2d1a8..00000000 --- a/Foundation/NSException/debugHelpers.h +++ /dev/null @@ -1,2 +0,0 @@ -// returns an NSArray with the addresses of the calling functions. Guarded against segfaults. For debugging only. -id _NSStackTrace(); diff --git a/Foundation/NSException/debugHelpers.m b/Foundation/NSException/debugHelpers.m deleted file mode 100644 index 4cef1340..00000000 --- a/Foundation/NSException/debugHelpers.m +++ /dev/null @@ -1,132 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#import - -#include - -#ifdef DEBUG -static void *_objc_returnAddress(unsigned frame) { - void *ret = 0; -#define ADDR(x) \ - case x: \ - ret = __builtin_return_address(x); \ - break; - switch (frame) { - ADDR(0) - ADDR(1) - ADDR(2) - ADDR(3) - ADDR(4) - ADDR(5) - ADDR(6) - ADDR(7) - ADDR(8) - ADDR(9) - ADDR(10) - ADDR(11) - ADDR(12) - ADDR(13) - ADDR(14) - ADDR(15) - ADDR(16) - ADDR(17) - ADDR(18) - ADDR(19) - ADDR(20) - ADDR(21) - ADDR(22) - ADDR(23) - ADDR(24) - ADDR(25) - ADDR(26) - ADDR(27) - ADDR(28) - ADDR(29) - ADDR(30) - ADDR(31) - ADDR(32) - ADDR(33) - ADDR(34) - ADDR(35) - ADDR(36) - ADDR(37) - ADDR(38) - ADDR(39) - default:; - } -#undef ADDR - - return ret; -} - -static jmp_buf handleBadAccess; - -static void _objc_badAccessHandler() { - longjmp(handleBadAccess, 1); -} -#endif - -id _NSStackTrace() { -#ifdef DEBUG - NSMutableArray *ret = [NSMutableArray array]; - -#ifdef SIGSEGV - void *oldSegv = signal(SIGSEGV, _objc_badAccessHandler); -#endif -#ifdef SIGBUS - void *oldBus = signal(SIGBUS, _objc_badAccessHandler); -#endif - - // only _objc_guardedReturnAddress may fail in the below code (because of a - // corrupted/unexpected stack) since we're not in a library function at that - // time, we can longjmp to the following error handling routine - if (setjmp(handleBadAccess)) { - NSLog(@"Protection fault during creation of stack trace."); - [ret addObject: @""]; - goto restore; - } - - int frame = 2; // Skip _objc_returnAddress and _NSStackTrace - they are - // always there - void *addr = _objc_returnAddress(frame); - - while (addr) { - [ret addObject: [NSValue valueWithPointer: addr]]; - frame++; - addr = _objc_returnAddress(frame); - } - -restore: -#ifdef SIGSEGV - signal(SIGSEGV, oldSegv); -#endif -#ifdef SIGBUS - signal(SIGBUS, oldBus); -#endif - - return ret; -#else - return [NSArray - arrayWithObject: @"Stack trace unavailable in Release builds"]; -#endif -} diff --git a/Foundation/NSFileManager.h b/Foundation/NSFileManager.h deleted file mode 100644 index a9635c7c..00000000 --- a/Foundation/NSFileManager.h +++ /dev/null @@ -1,214 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSData, NSDate, NSError; - -FOUNDATION_EXPORT NSString *const NSFileType; -FOUNDATION_EXPORT NSString *const NSFileTypeRegular; -FOUNDATION_EXPORT NSString *const NSFileTypeDirectory; -FOUNDATION_EXPORT NSString *const NSFileTypeSymbolicLink; - -FOUNDATION_EXPORT NSString *const NSFileTypeCharacterSpecial; -FOUNDATION_EXPORT NSString *const NSFileTypeBlockSpecial; -FOUNDATION_EXPORT NSString *const NSFileTypeFIFO; - -FOUNDATION_EXPORT NSString *const NSFileTypeSocket; - -FOUNDATION_EXPORT NSString *const NSFileTypeUnknown; - -FOUNDATION_EXPORT NSString *const NSFileSize; -FOUNDATION_EXPORT NSString *const NSFileModificationDate; -FOUNDATION_EXPORT NSString *const NSFileCreationDate; -FOUNDATION_EXPORT NSString *const NSFileOwnerAccountName; -FOUNDATION_EXPORT NSString *const NSFileGroupOwnerAccountName; - -FOUNDATION_EXPORT NSString *const NSFilePosixPermissions; -FOUNDATION_EXPORT NSString *const NSFileReferenceCount; -FOUNDATION_EXPORT NSString *const NSFileIdentifier; -FOUNDATION_EXPORT NSString *const NSFileDeviceIdentifier; - -FOUNDATION_EXPORT NSString *const NSFileSystemNumber; -FOUNDATION_EXPORT NSString *const NSFileSystemSize; -FOUNDATION_EXPORT NSString *const NSFileSystemFreeSize; - -@interface NSFileManager : NSObject - -+ (NSFileManager *) defaultManager; - -- delegate; -- (void) setDelegate: delegate; - -- (NSDictionary *) attributesOfFileSystemForPath: (NSString *) path - error: (NSError **) errorp; -- (NSDictionary *) attributesOfItemAtPath: (NSString *) path - error: (NSError **) error; -- (BOOL) changeCurrentDirectoryPath: (NSString *) path; -- (NSArray *) componentsToDisplayForPath: (NSString *) path; -- (BOOL) contentsEqualAtPath: (NSString *) path1 andPath: (NSString *) path2; -- (NSArray *) contentsOfDirectoryAtPath: (NSString *) path - error: (NSError **) error; -- (BOOL) copyItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error; -- (NSString *) destinationOfSymbolicLinkAtPath: (NSString *) path - error: (NSError **) error; - -- (NSString *) displayNameAtPath: (NSString *) path; - -- (NSDictionary *) fileSystemAttributesAtPath: (NSString *) path; - -- (BOOL) isDeletableFileAtPath: (NSString *) path; - -- (BOOL) linkItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error; -- (BOOL) linkPath: (NSString *) source - toPath: (NSString *) destination - handler: handler; -- (BOOL) moveItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error; -- (BOOL) removeItemAtPath: (NSString *) path error: (NSError **) error; - -- (BOOL) copyItemAtURL: (NSURL *) srcURL - toURL: (NSURL *) dstURL - error: (NSError **) error; -- (BOOL) moveItemAtURL: (NSURL *) srcURL - toURL: (NSURL *) dstURL - error: (NSError **) error; -- (BOOL) linkItemAtURL: (NSURL *) srcURL - toURL: (NSURL *) dstURL - error: (NSError **) error; -- (BOOL) removeItemAtURL: (NSURL *) URL error: (NSError **) error; - -- (BOOL) setAttributes: (NSDictionary *) attributes - ofItemAtPath: (NSString *) path - error: (NSError **) error; - -- (NSString *) stringWithFileSystemRepresentation: (const char *) string - length: (NSUInteger) length; - -- (NSArray *) subpathsAtPath: (NSString *) path; -- (NSArray *) subpathsOfDirectoryAtPath: (NSString *) path - error: (NSError **) error; - -- (NSData *) contentsAtPath: (NSString *) path; - -- (BOOL) createFileAtPath: (NSString *) path - contents: (NSData *) data - attributes: (NSDictionary *) attributes; - -- (NSArray *) directoryContentsAtPath: (NSString *) path; -- (NSDirectoryEnumerator *) enumeratorAtPath: (NSString *) path; - -- (BOOL) createDirectoryAtPath: (NSString *) path - attributes: (NSDictionary *) attributes; -- (BOOL) createDirectoryAtPath: (NSString *) path - withIntermediateDirectories: (BOOL) intermediates - attributes: (NSDictionary *) attributes - error: (NSError **) error; - -- (BOOL) createDirectoryAtURL: (NSURL *) url - withIntermediateDirectories: (BOOL) intermediates - attributes: (NSDictionary *) attributes - error: (NSError **) error; - -- (BOOL) createSymbolicLinkAtPath: (NSString *) path - pathContent: (NSString *) destination; -- (BOOL) createSymbolicLinkAtPath: (NSString *) path - withDestinationPath: (NSString *) toPath - error: (NSError **) error; - -- (NSString *) pathContentOfSymbolicLinkAtPath: (NSString *) path; - -- (BOOL) fileExistsAtPath: (NSString *) path; -- (BOOL) fileExistsAtPath: (NSString *) path isDirectory: (BOOL *) isDirectory; - -- (BOOL) removeFileAtPath: (NSString *) path handler: handler; - -- (BOOL) movePath: (NSString *) src toPath: (NSString *) dest handler: handler; -- (BOOL) copyPath: (NSString *) src toPath: (NSString *) dest handler: handler; - -- (NSString *) currentDirectoryPath; - -- (NSDictionary *) fileAttributesAtPath: (NSString *) path - traverseLink: (BOOL) traverse; - -- (BOOL) isReadableFileAtPath: (NSString *) path; -- (BOOL) isWritableFileAtPath: (NSString *) path; -- (BOOL) isExecutableFileAtPath: (NSString *) path; - -- (BOOL) changeFileAttributes: (NSDictionary *) attributes - atPath: (NSString *) path; - -- (const char *) fileSystemRepresentationWithPath: (NSString *) path; -- (const uint16_t *) fileSystemRepresentationWithPathW: (NSString *) path; - -@end - -@interface NSObject (NSFileManager_handler) -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldProceedAfterError: (NSDictionary *) dictionary; -- (void) fileManager: (NSFileManager *) fileManager - willProcessPath: (NSString *) path; -@end - -@interface NSObject (NSFileManagerDelegate) -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldCopyItemAtPath: (NSString *) path - toPath: (NSString *) toPath; -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldLinkItemAtPath: (NSString *) path - toPath: (NSString *) toPath; -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldMoveItemAtPath: (NSString *) path - toPath: (NSString *) toPath; -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldProceedAfterError: (NSError *) error - copyingItemAtPath: (NSString *) path - toPath: (NSString *) toPath; -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldProceedAfterError: (NSError *) error - linkingItemAtPath: (NSString *) path - toPath: (NSString *) toPath; -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldProceedAfterError: (NSError *) error - movingItemAtPath: (NSString *) path - toPath: (NSString *) toPath; -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldProceedAfterError: (NSError *) error - removingItemAtPath: (NSString *) path; - -- (BOOL) fileManager: (NSFileManager *) fileManager - shouldRemoveItemAtPath: (NSString *) path; - -@end - -@interface NSDictionary (NSFileManager_fileAttributes) -- (NSDate *) fileModificationDate; -- (NSUInteger) filePosixPermissions; -- (NSString *) fileOwnerAccountName; -- (NSString *) fileGroupOwnerAccountName; -- (NSString *) fileType; -- (uint64_t) fileSize; -@end diff --git a/Foundation/NSFileManager.m b/Foundation/NSFileManager.m deleted file mode 100644 index e083d113..00000000 --- a/Foundation/NSFileManager.m +++ /dev/null @@ -1,434 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -NSString *const NSFileType = @"NSFileType"; -NSString *const NSFileTypeRegular = @"NSFileTypeRegular"; -NSString *const NSFileTypeDirectory = @"NSFileTypeDirectory"; -NSString *const NSFileTypeSymbolicLink = @"NSFileTypeSymbolicLink"; -NSString *const NSFileTypeCharacterSpecial = @"NSFileTypeCharacterSpecial"; -NSString *const NSFileTypeBlockSpecial = @"NSFileTypeBlockSpecial"; -NSString *const NSFileTypeFIFO = @"NSFileTypeFIFO"; -NSString *const NSFileTypeSocket = @"NSFileTypeSocket"; -NSString *const NSFileTypeUnknown = @"NSFileTypeUnknown"; - -NSString *const NSFileSize = @"NSFileSize"; -NSString *const NSFileCreationDate = @"NSFileCreationDate"; -NSString *const NSFileModificationDate = @"NSFileModificationDate"; -NSString *const NSFileOwnerAccountName = @"NSFileOwnerAccountName"; -NSString *const NSFileGroupOwnerAccountName = @"NSFileGroupOwnerAccountName"; - -NSString *const NSFileReferenceCount = @"NSFileReferenceCount"; -NSString *const NSFileIdentifier = @"NSFileIdentifier"; -NSString *const NSFileDeviceIdentifier = @"NSFileDeviceIdentifier"; -NSString *const NSFilePosixPermissions = @"NSFilePosixPermissions"; -NSString *const NSFileHFSCreatorCode = @"NSFileHFSCreatorCode"; -NSString *const NSFileHFSTypeCode = @"NSFileHFSTypeCode"; - -NSString *const NSFileSystemNumber = @"NSFileSystemNumber"; -NSString *const NSFileSystemSize = @"NSFileSystemSize"; -NSString *const NSFileSystemFreeSize = @"NSFileSystemFreeSize"; - -@implementation NSFileManager - -+ (NSFileManager *) defaultManager { - return NSThreadSharedInstance(@"NSFileManager"); -} - -- delegate { - NSUnimplementedMethod(); - return 0; -} -- (void) setDelegate: delegate { - NSUnimplementedMethod(); -} - -- (NSDictionary *) attributesOfFileSystemForPath: (NSString *) path - error: (NSError **) errorp -{ - NSUnimplementedMethod(); - return 0; -} -- (NSDictionary *) attributesOfItemAtPath: (NSString *) path - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} -- (BOOL) changeCurrentDirectoryPath: (NSString *) path { - NSUnimplementedMethod(); - return 0; -} -- (NSArray *) componentsToDisplayForPath: (NSString *) path { - NSUnimplementedMethod(); - return 0; -} -- (BOOL) contentsEqualAtPath: (NSString *) path1 andPath: (NSString *) path2 { - NSUnimplementedMethod(); - return 0; -} -- (NSArray *) contentsOfDirectoryAtPath: (NSString *) path - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} -- (BOOL) copyItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} -- (NSString *) destinationOfSymbolicLinkAtPath: (NSString *) path - error: (NSError **) error -{ - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSString *) displayNameAtPath: (NSString *) path { - NSBundle *bundle = [NSBundle bundleWithPath: path]; - NSString *name = nil; - if (bundle) { - NSDictionary *localizedInfo = [bundle localizedInfoDictionary]; - name = [localizedInfo objectForKey: @"CFBundleDisplayName"]; - if (!name) - name = [localizedInfo objectForKey: @"CFBundleName"]; - } - if (!name) - name = [path lastPathComponent]; - return name; -} - -- (NSDictionary *) fileSystemAttributesAtPath: (NSString *) path { - return [self attributesOfFileSystemForPath: path error: NULL]; -} - -- (BOOL) isDeletableFileAtPath: (NSString *) path { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) linkItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} -- (BOOL) linkPath: (NSString *) source - toPath: (NSString *) destination - handler: handler -{ - NSUnimplementedMethod(); - return 0; -} -- (BOOL) moveItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} -- (BOOL) removeItemAtPath: (NSString *) path error: (NSError **) error { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) removeItemAtURL: (NSURL *) url error: (NSError **) error { - // Default to the AtPath implementation - return [self removeItemAtPath: [url path] error: error]; -} - -- (BOOL) moveItemAtURL: (NSURL *) url - toURL: (NSURL *) dstURL - error: (NSError **) error -{ - // Default to the AtPath implementation - return [self moveItemAtPath: [url path] toPath: [dstURL path] error: error]; -} - -- (BOOL) linkItemAtURL: (NSURL *) url - toURL: (NSURL *) dstURL - error: (NSError **) error -{ - // Default to the AtPath implementation - return [self linkItemAtPath: [url path] toPath: [dstURL path] error: error]; -} - -- (BOOL) copyItemAtURL: (NSURL *) url - toURL: (NSURL *) dstURL - error: (NSError **) error -{ - // Default to the AtPath implementation - return [self copyItemAtPath: [url path] toPath: [dstURL path] error: error]; -} - -- (BOOL) setAttributes: (NSDictionary *) attributes - ofItemAtPath: (NSString *) path - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) stringWithFileSystemRepresentation: (const char *) string - length: (NSUInteger) length -{ - NSUnimplementedMethod(); - return 0; -} - -- (void) _subpathsAtPath: (NSString *) path - basePath: (NSString *) basePath - paths: (NSMutableArray *) paths -{ - NSArray *files = [self directoryContentsAtPath: path]; - - int x; - for (x = 0; x < [files count]; x++) { - [paths addObject: [basePath stringByAppendingPathComponent: - [files objectAtIndex: x]]]; - } - - for (x = 0; x < [files count]; x++) { - BOOL isDir = NO; - NSString *newPath = - [path stringByAppendingPathComponent: [files objectAtIndex: x]]; - [self fileExistsAtPath: newPath isDirectory: &isDir]; - if (isDir) - [self _subpathsAtPath: newPath - basePath: [basePath stringByAppendingPathComponent: - [files objectAtIndex: x]] - paths: paths]; - } -} - -- (NSArray *) subpathsAtPath: (NSString *) path { - NSMutableArray *result = [NSMutableArray array]; - - [self _subpathsAtPath: path basePath: @"" paths: result]; - return result; -} - -- (NSArray *) subpathsOfDirectoryAtPath: (NSString *) path - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSData *) contentsAtPath: (NSString *) path { - return [NSData dataWithContentsOfFile: path]; -} - -- (BOOL) createFileAtPath: (NSString *) path - contents: (NSData *) data - attributes: (NSDictionary *) attributes -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSArray *) directoryContentsAtPath: (NSString *) path { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSDirectoryEnumerator *) enumeratorAtPath: (NSString *) path { - return [[[NSConcreteDirectoryEnumerator alloc] initWithPath: path] - autorelease]; -} - -- (BOOL) createDirectoryAtPath: (NSString *) path - attributes: (NSDictionary *) attributes -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) createDirectoryAtPath: (NSString *) path - withIntermediateDirectories: (BOOL) intermediates - attributes: (NSDictionary *) attributes - error: (NSError **) error -{ - BOOL result = YES; - BOOL isDirectory = NO; - if (intermediates) { - NSArray *components = [path pathComponents]; - int i, count = [components count]; - for (i = 1; i <= count && result; i++) { - NSString *makePath = [NSString - pathWithComponents: [components - subarrayWithRange: NSMakeRange( - 0, - i)]]; - if (![self fileExistsAtPath: makePath isDirectory: &isDirectory]) { - result = [self createDirectoryAtPath: makePath - attributes: attributes]; - } - } - } else { - result = [self createDirectoryAtPath: path attributes: attributes]; - } - // TODO: fill error - return result; -} - -- (BOOL) createDirectoryAtURL: (NSURL *) url - withIntermediateDirectories: (BOOL) intermediates - attributes: (NSDictionary *) attributes - error: (NSError **) error -{ - return [self createDirectoryAtPath: [url path] - withIntermediateDirectories: intermediates - attributes: attributes - error: error]; -} - -- (BOOL) createSymbolicLinkAtPath: (NSString *) path - pathContent: (NSString *) destination -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) createSymbolicLinkAtPath: (NSString *) path - withDestinationPath: (NSString *) destPath - error: (NSError **) error -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) pathContentOfSymbolicLinkAtPath: (NSString *) path { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) fileExistsAtPath: (NSString *) path { - BOOL foo; - return [self fileExistsAtPath: path isDirectory: &foo]; -} - -- (BOOL) fileExistsAtPath: (NSString *) path isDirectory: (BOOL *) isDirectory { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) removeFileAtPath: (NSString *) path handler: handler { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) movePath: (NSString *) src toPath: (NSString *) dest handler: handler { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) copyPath: (NSString *) src toPath: (NSString *) dest handler: handler { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSString *) currentDirectoryPath { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSDictionary *) fileAttributesAtPath: (NSString *) path - traverseLink: (BOOL) traverse -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- (BOOL) isReadableFileAtPath: (NSString *) path { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) isWritableFileAtPath: (NSString *) path { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) isExecutableFileAtPath: (NSString *) path { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) changeFileAttributes: (NSDictionary *) attributes - atPath: (NSString *) path -{ - return [self setAttributes: (NSDictionary *) attributes - ofItemAtPath: (NSString *) path - error: NULL]; -} - -- (const char *) fileSystemRepresentationWithPath: (NSString *) path { - NSInvalidAbstractInvocation(); - return NULL; -} - -- (const uint16_t *) fileSystemRepresentationWithPathW: (NSString *) path { - NSInvalidAbstractInvocation(); - return NULL; -} - -@end - -@implementation NSDictionary (NSFileAttributes) - -- (NSDate *) fileModificationDate { - return [self objectForKey: NSFileModificationDate]; -} - -- (NSUInteger) filePosixPermissions { - return [[self objectForKey: NSFilePosixPermissions] unsignedIntegerValue]; -} - -- (NSString *) fileOwnerAccountName { - return [self objectForKey: NSFileOwnerAccountName]; -} - -- (NSString *) fileGroupOwnerAccountName { - return [self objectForKey: NSFileGroupOwnerAccountName]; -} - -- (NSString *) fileType { - return [self objectForKey: NSFileType]; -} - -- (uint64_t) fileSize { - return [[self objectForKey: NSFileSize] unsignedLongLongValue]; -} - -@end diff --git a/Foundation/NSFormatter.h b/Foundation/NSFormatter.h deleted file mode 100644 index b5280c01..00000000 --- a/Foundation/NSFormatter.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@class NSAttributedString, NSDictionary; - -@interface NSFormatter : NSObject - -- (BOOL) isPartialStringValid: (NSString *) partial - newEditingString: (NSString **) editing - errorDescription: (NSString **) error; - -- (BOOL) getObjectValue: (id *) object - forString: (NSString *) string - errorDescription: (NSString **) error; - -- (NSString *) stringForObjectValue: object; - -- (NSString *) editingStringForObjectValue: object; - -- (NSAttributedString *) attributedStringForObjectValue: object - withDefaultAttributes: - (NSDictionary *) attributes; - -- (BOOL) isPartialStringValid: (NSString **) partialStringp - proposedSelectedRange: (NSRange *) proposedRangep - originalString: (NSString *) originalString - originalSelectedRange: (NSRange) originalRange - errorDescription: (NSString **) errorStringp; - -@end diff --git a/Foundation/NSFormatter.m b/Foundation/NSFormatter.m deleted file mode 100644 index 7725722c..00000000 --- a/Foundation/NSFormatter.m +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSFormatter - -- (BOOL) isPartialStringValid: (NSString *) partial - newEditingString: (NSString **) editing - errorDescription: (NSString **) error -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) getObjectValue: (id *) object - forString: (NSString *) string - errorDescription: (NSString **) error -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSString *) stringForObjectValue: (id) object { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) editingStringForObjectValue: (id) object { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSAttributedString *) attributedStringForObjectValue: (id) object - withDefaultAttributes: - (NSDictionary *) attributes -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- (BOOL) isPartialStringValid: (NSString **) partialStringp - proposedSelectedRange: (NSRange *) proposedRangep - originalString: (NSString *) originalString - originalSelectedRange: (NSRange) originalRange - errorDescription: (NSString **) errorStringp -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- initWithCoder: (NSCoder *) coder { - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { -} - -@end diff --git a/Foundation/NSGarbageCollector.h b/Foundation/NSGarbageCollector.h deleted file mode 100644 index e69de29b..00000000 diff --git a/Foundation/NSGarbageCollector.m b/Foundation/NSGarbageCollector.m deleted file mode 100644 index e69de29b..00000000 diff --git a/Foundation/NSGeometry.h b/Foundation/NSGeometry.h deleted file mode 100644 index 6501a685..00000000 --- a/Foundation/NSGeometry.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -typedef CGPoint NSPoint; -typedef CGSize NSSize; -typedef CGRect NSRect; - -typedef NSPoint *NSPointArray; -typedef NSPoint *NSPointPointer; - -typedef NSSize *NSSizeArray; -typedef NSSize *NSSizePointer; - -typedef enum { NSMinXEdge, NSMinYEdge, NSMaxXEdge, NSMaxYEdge } NSRectEdge; - -typedef NSRect *NSRectArray; -typedef NSRect *NSRectPointer; - -// -FOUNDATION_EXPORT const NSPoint NSZeroPoint; - -static inline NSPoint NSMakePoint(CGFloat x, CGFloat y) { - NSPoint point = {x, y}; - return point; -} - -FOUNDATION_EXPORT BOOL NSEqualPoints(NSPoint point0, NSPoint point1); -FOUNDATION_EXPORT NSString *NSStringFromPoint(NSPoint point); -FOUNDATION_EXPORT NSPoint NSPointFromString(NSString *string); - -// -FOUNDATION_EXPORT const NSSize NSZeroSize; - -static inline NSSize NSMakeSize(CGFloat w, CGFloat h) { - NSSize size = {w, h}; - return size; -} - -FOUNDATION_EXPORT BOOL NSEqualSizes(NSSize size0, NSSize size1); -FOUNDATION_EXPORT NSString *NSStringFromSize(NSSize size); -FOUNDATION_EXPORT NSSize NSSizeFromString(NSString *string); - -// -FOUNDATION_EXPORT const NSRect NSZeroRect; - -static inline NSRect NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h) { - NSRect rect = {{x, y}, {w, h}}; - return rect; -} - -static inline CGFloat NSMinX(NSRect rect) { - return rect.origin.x; -} - -static inline CGFloat NSMinY(NSRect rect) { - return rect.origin.y; -} - -static inline CGFloat NSWidth(NSRect rect) { - return rect.size.width; -} - -static inline CGFloat NSHeight(NSRect rect) { - return rect.size.height; -} - -static inline CGFloat NSMaxX(NSRect rect) { - return rect.origin.x + rect.size.width; -} - -static inline CGFloat NSMaxY(NSRect rect) { - return rect.origin.y + rect.size.height; -} - -static inline CGFloat NSMidX(NSRect rect) { - return rect.origin.x + rect.size.width / 2; -} - -static inline CGFloat NSMidY(NSRect rect) { - return rect.origin.y + rect.size.height / 2; -} - -FOUNDATION_EXPORT BOOL NSEqualRects(NSRect rect0, NSRect rect1); -FOUNDATION_EXPORT BOOL NSIsEmptyRect(NSRect rect); - -FOUNDATION_EXPORT NSRect NSInsetRect(NSRect rect, CGFloat dx, CGFloat dy); -FOUNDATION_EXPORT NSRect NSOffsetRect(NSRect rect, CGFloat dx, CGFloat dy); - -FOUNDATION_EXPORT NSRect NSIntegralRect(NSRect rect); -FOUNDATION_EXPORT NSRect NSUnionRect(NSRect rect0, NSRect rect1); -FOUNDATION_EXPORT NSRect NSIntersectionRect(NSRect rect0, NSRect rect1); - -FOUNDATION_EXPORT void NSDivideRect(NSRect rect, NSRect *parts, - NSRect *remainder, CGFloat amount, - NSRectEdge edge); - -FOUNDATION_EXPORT BOOL NSContainsRect(NSRect rect0, NSRect rect1); -FOUNDATION_EXPORT BOOL NSIntersectsRect(NSRect rect0, NSRect rect1); - -FOUNDATION_EXPORT NSString *NSStringFromRect(NSRect rect); -FOUNDATION_EXPORT NSRect NSRectFromString(NSString *string); - -// -FOUNDATION_EXPORT BOOL NSPointInRect(NSPoint point, NSRect rect); -FOUNDATION_EXPORT BOOL NSMouseInRect(NSPoint point, NSRect rect, BOOL flipped); - -static inline CGRect NSRectToCGRect(NSRect rect) { - return rect; -} - -static inline CGSize NSSizeToCGSize(NSSize size) { - return size; -} - -static inline CGPoint NSPointToCGPoint(NSPoint point) { - return point; -} diff --git a/Foundation/NSGeometry.m b/Foundation/NSGeometry.m deleted file mode 100644 index 4eb19cf9..00000000 --- a/Foundation/NSGeometry.m +++ /dev/null @@ -1,224 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#include -#include - -const NSPoint NSZeroPoint = {0, 0}; - -BOOL NSEqualPoints(NSPoint point0, NSPoint point1) { - return ((point0.x == point1.x) && (point0.y == point1.y)) ? YES : NO; -} - -NSString *NSStringFromPoint(NSPoint point) { - return [NSString stringWithFormat: @"{%g, %g}", point.x, point.y]; -} - -NSPoint NSPointFromString(NSString *string) { - NSPoint result = NSZeroPoint; - - if (string != nil) { - sscanf([string UTF8String], "{" CGFLOAT_SCAN ", " CGFLOAT_SCAN "}", - &result.x, &result.y); - } - return result; -} - -// -const NSSize NSZeroSize = {0, 0}; - -BOOL NSEqualSizes(NSSize size0, NSSize size1) { - return (size0.width == size1.width) && (size0.height == size1.height); -} - -NSString *NSStringFromSize(NSSize size) { - return [NSString stringWithFormat: @"{%g, %g}", size.width, size.height]; -} - -NSSize NSSizeFromString(NSString *string) { - NSSize result = NSZeroSize; - - if (string != nil) { - sscanf([string UTF8String], "{" CGFLOAT_SCAN ", " CGFLOAT_SCAN "}", - &result.width, &result.height); - } - return result; -} - -// -const NSRect NSZeroRect = {{0, 0}, {0, 0}}; - -BOOL NSEqualRects(NSRect rect0, NSRect rect1) { - return NSEqualPoints(rect0.origin, rect1.origin) && - NSEqualSizes(rect0.size, rect1.size); -} - -BOOL NSIsEmptyRect(NSRect rect) { - if (rect.size.width > 0 && rect.size.height > 0) - return NO; - - return YES; -} - -NSRect NSInsetRect(NSRect rect, CGFloat dx, CGFloat dy) { - rect.origin.x += dx; - rect.origin.y += dy; - rect.size.width -= dx * 2; - rect.size.height -= dy * 2; - return rect; -} - -NSRect NSOffsetRect(NSRect rect, CGFloat dx, CGFloat dy) { - rect.origin.x += dx; - rect.origin.y += dy; - return rect; -} - -NSRect NSIntegralRect(NSRect rect) { - if (!NSIsEmptyRect(rect)) { - rect.origin.x = floor(rect.origin.x); - rect.origin.y = floor(rect.origin.y); - rect.size.width = ceil(rect.size.width); - rect.size.height = ceil(rect.size.height); - } - return rect; -} - -NSRect NSUnionRect(NSRect rect0, NSRect rect1) { - if (NSIsEmptyRect(rect0)) - if (NSIsEmptyRect(rect1)) - return NSZeroRect; - else - return rect1; - else if (NSIsEmptyRect(rect1)) - return rect0; - else { - NSRect result; - - result.origin.x = MIN(rect0.origin.x, rect1.origin.x); - result.origin.y = MIN(rect0.origin.y, rect1.origin.y); - result.size.width = MAX(NSMaxX(rect0), NSMaxX(rect1)) - result.origin.x; - result.size.height = - MAX(NSMaxY(rect0), NSMaxY(rect1)) - result.origin.y; - - return result; - } -} - -NSRect NSIntersectionRect(NSRect rect0, NSRect rect1) { - NSRect result; - - if (NSMaxX(rect0) <= NSMinX(rect1) || NSMinX(rect0) >= NSMaxX(rect1) || - NSMaxY(rect0) <= NSMinY(rect1) || NSMinY(rect0) >= NSMaxY(rect1)) - return NSZeroRect; - - result.origin.x = MAX(NSMinX(rect0), NSMinX(rect1)); - result.origin.y = MAX(NSMinY(rect0), NSMinY(rect1)); - result.size.width = MIN(NSMaxX(rect0), NSMaxX(rect1)) - result.origin.x; - result.size.height = MIN(NSMaxY(rect0), NSMaxY(rect1)) - result.origin.y; - - return result; -} - -void NSDivideRect(NSRect rect, NSRect *slicep, NSRect *remainderp, - CGFloat amount, NSRectEdge edge) -{ - *slicep = rect; - *remainderp = rect; - CGFloat temp; - - switch (edge) { - case NSMinXEdge: - slicep->size.width = amount; - remainderp->size.width -= amount; - remainderp->origin.x += amount; - break; - case NSMinYEdge: - slicep->size.height = amount; - remainderp->size.height -= amount; - remainderp->origin.y += amount; - break; - case NSMaxXEdge: - temp = slicep->size.width - amount; - remainderp->size.width = temp; - slicep->size.width = amount; - slicep->origin.x += temp; - break; - case NSMaxYEdge: - temp = slicep->size.height - amount; - remainderp->size.height = temp; - slicep->size.height = amount; - slicep->origin.y += temp; - break; - } -} - -BOOL NSContainsRect(NSRect rect0, NSRect rect1) { - return ((NSMinX(rect0) <= NSMinX(rect1)) && - (NSMinY(rect0) <= NSMinY(rect1)) && - (NSMaxX(rect0) >= NSMaxX(rect1)) && - (NSMaxY(rect0) >= NSMaxY(rect1))) - ? YES - : NO; -} - -BOOL NSIntersectsRect(NSRect rect0, NSRect rect1) { - if (NSMaxX(rect0) <= NSMinX(rect1) || NSMinX(rect0) >= NSMaxX(rect1) || - NSMaxY(rect0) <= NSMinY(rect1) || NSMinY(rect0) >= NSMaxY(rect1)) - return NO; - - return YES; -} - -NSString *NSStringFromRect(NSRect rect) { - return [NSString stringWithFormat: @"{{%g, %g}, {%g, %g}}", rect.origin.x, - rect.origin.y, rect.size.width, - rect.size.height]; -} - -NSRect NSRectFromString(NSString *string) { - NSRect result = NSZeroRect; - - if (string != nil) { - sscanf([string UTF8String], - "{{" CGFLOAT_SCAN ", " CGFLOAT_SCAN "}, {" CGFLOAT_SCAN - ", " CGFLOAT_SCAN "}}", - &result.origin.x, &result.origin.y, &result.size.width, - &result.size.height); - } - return result; -} - -BOOL NSPointInRect(NSPoint point, NSRect rect) { - return (point.x >= NSMinX(rect) && point.x <= NSMaxX(rect)) && - (point.y >= NSMinY(rect) && point.y <= NSMaxY(rect)); -} - -BOOL NSMouseInRect(NSPoint point, NSRect rect, BOOL flipped) { - if (flipped) - return (point.x >= NSMinX(rect) && point.x < NSMaxX(rect) && - point.y >= NSMinY(rect) && point.y < NSMaxY(rect)); - else - return (point.x >= NSMinX(rect) && point.x < NSMaxX(rect) && - point.y > NSMinY(rect) && point.y <= NSMaxY(rect)); -} diff --git a/Foundation/NSHTTPCookie/NSHTTPCookie.h b/Foundation/NSHTTPCookie/NSHTTPCookie.h deleted file mode 100644 index e1a9973a..00000000 --- a/Foundation/NSHTTPCookie/NSHTTPCookie.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSArray, NSDictionary, NSURL, NSDate; - -FOUNDATION_EXPORT NSString *const NSHTTPCookieSecure; -FOUNDATION_EXPORT NSString *const NSHTTPCookieDiscard; -FOUNDATION_EXPORT NSString *const NSHTTPCookieExpires; -FOUNDATION_EXPORT NSString *const NSHTTPCookieMaximumAge; -FOUNDATION_EXPORT NSString *const NSHTTPCookieOriginURL; - -FOUNDATION_EXPORT NSString *const NSHTTPCookieVersion; -FOUNDATION_EXPORT NSString *const NSHTTPCookieDomain; -FOUNDATION_EXPORT NSString *const NSHTTPCookiePath; -FOUNDATION_EXPORT NSString *const NSHTTPCookieName; -FOUNDATION_EXPORT NSString *const NSHTTPCookiePort; -FOUNDATION_EXPORT NSString *const NSHTTPCookieValue; - -FOUNDATION_EXPORT NSString *const NSHTTPCookieComment; -FOUNDATION_EXPORT NSString *const NSHTTPCookieCommentURL; - -@interface NSHTTPCookie : NSObject { - NSDictionary *_properties; -} - -+ (NSArray *) cookiesWithResponseHeaderFields: (NSDictionary *) headerFields - forURL: (NSURL *) url; -+ (NSDictionary *) requestHeaderFieldsWithCookies: (NSArray *) cookies; - -+ cookieWithProperties: (NSDictionary *) properties; - -- initWithProperties: (NSDictionary *) properties; - -- (NSDictionary *) properties; - -- (BOOL) isSecure; -- (BOOL) isSessionOnly; -- (NSDate *) expiresDate; - -- (NSUInteger) version; -- (NSString *) domain; -- (NSString *) path; -- (NSString *) name; -- (NSArray *) portList; -- (NSString *) value; - -- (NSString *) comment; -- (NSURL *) commentURL; - -@end diff --git a/Foundation/NSHTTPCookie/NSHTTPCookie.m b/Foundation/NSHTTPCookie/NSHTTPCookie.m deleted file mode 100644 index 234a5f0f..00000000 --- a/Foundation/NSHTTPCookie/NSHTTPCookie.m +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSHTTPCookie - -+ (NSArray *) cookiesWithResponseHeaderFields: (NSDictionary *) headerFields - forURL: (NSURL *) url -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSDictionary *) requestHeaderFieldsWithCookies: (NSArray *) cookies { - NSUnimplementedMethod(); - return 0; -} - -+ cookieWithProperties: (NSDictionary *) properties { - return [[[self alloc] initWithProperties: properties] autorelease]; -} - -- initWithProperties: (NSDictionary *) properties { - _properties = [properties copy]; - return self; -} - -- (void) dealloc { - [_properties release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (NSDictionary *) properties { - return _properties; -} - -- (BOOL) isSecure { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) isSessionOnly { - NSUnimplementedMethod(); - return 0; -} - -- (NSDate *) expiresDate { - NSUnimplementedMethod(); - return 0; -} - -- (NSUInteger) version { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) domain { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) path { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -- (NSArray *) portList { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) value { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) comment { - NSUnimplementedMethod(); - return 0; -} - -- (NSURL *) commentURL { - NSUnimplementedMethod(); - return 0; -} - -@end diff --git a/Foundation/NSHTTPCookie/NSHTTPCookieStorage.h b/Foundation/NSHTTPCookie/NSHTTPCookieStorage.h deleted file mode 100644 index 0682e2cb..00000000 --- a/Foundation/NSHTTPCookie/NSHTTPCookieStorage.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSArray, NSHTTPCookie, NSURL; - -typedef enum { - NSHTTPCookieAcceptPolicyAlways, - NSHTTPCookieAcceptPolicyNever, - NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain, -} NSHTTPCookieAcceptPolicy; - -@interface NSHTTPCookieStorage : NSObject { -} - -+ (NSHTTPCookieStorage *) sharedHTTPCookieStorage; - -- (NSHTTPCookieAcceptPolicy) cookieAcceptPolicy; - -- (void) setCookieAcceptPolicy: (NSHTTPCookieAcceptPolicy) value; - -- (NSArray *) cookies; -- (NSArray *) cookiesForURL: (NSURL *) url; - -- (void) setCookie: (NSHTTPCookie *) value; -- (void) setCookies: (NSArray *) cookies - forURL: (NSURL *) url - mainDocumentURL: (NSURL *) mainDocumentURL; - -- (void) deleteCookie: (NSHTTPCookie *) value; - -@end diff --git a/Foundation/NSHTTPCookie/NSHTTPCookieStorage.m b/Foundation/NSHTTPCookie/NSHTTPCookieStorage.m deleted file mode 100644 index 646807df..00000000 --- a/Foundation/NSHTTPCookie/NSHTTPCookieStorage.m +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSHTTPCookieStorage - -+ (NSHTTPCookieStorage *) sharedHTTPCookieStorage { - NSUnimplementedMethod(); - return nil; -} - -- (NSHTTPCookieAcceptPolicy) cookieAcceptPolicy { - NSUnimplementedMethod(); - return 0; -} - -- (void) setCookieAcceptPolicy: (NSHTTPCookieAcceptPolicy) value { - NSUnimplementedMethod(); -} - -- (NSArray *) cookies { - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) cookiesForURL: (NSURL *) url { - NSUnimplementedMethod(); - return nil; -} - -- (void) setCookie: (NSHTTPCookie *) value { - NSUnimplementedMethod(); -} - -- (void) setCookies: (NSArray *) cookies - forURL: (NSURL *) url - mainDocumentURL: (NSURL *) mainDocumentURL -{ - NSUnimplementedMethod(); -} - -- (void) deleteCookie: (NSHTTPCookie *) value { - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSHashTable.h b/Foundation/NSHashTable.h deleted file mode 100644 index 3c5f0a5b..00000000 --- a/Foundation/NSHashTable.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSArray; - -typedef struct NSHashTable NSHashTable; - -typedef struct { - NSHashTable *table; - NSUInteger i; - struct NSHashBucket *j; -} NSHashEnumerator; - -typedef struct { - NSUInteger (*hash)(NSHashTable *table, const void *); - BOOL(*isEqual) - (NSHashTable *table, const void *, const void *); - void (*retain)(NSHashTable *table, const void *); - void (*release)(NSHashTable *table, void *); - NSString *(*describe)(NSHashTable *table, const void *); -} NSHashTableCallBacks; - -FOUNDATION_EXPORT const NSHashTableCallBacks NSIntHashCallBacks; -FOUNDATION_EXPORT const NSHashTableCallBacks NSNonOwnedPointerHashCallBacks; -FOUNDATION_EXPORT const NSHashTableCallBacks NSNonRetainedObjectHashCallBacks; -FOUNDATION_EXPORT const NSHashTableCallBacks NSObjectHashCallBacks; -FOUNDATION_EXPORT const NSHashTableCallBacks NSOwnedObjectIdentityHashCallBacks; -FOUNDATION_EXPORT const NSHashTableCallBacks NSOwnedPointerHashCallBacks; -FOUNDATION_EXPORT const NSHashTableCallBacks NSPointerToStructHashCallBacks; - -FOUNDATION_EXPORT NSHashTable *NSCreateHashTable(NSHashTableCallBacks callBacks, - NSUInteger capacity); -FOUNDATION_EXPORT NSHashTable * -NSCreateHashTableWithZone(NSHashTableCallBacks callBacks, NSUInteger capacity, - NSZone *zone); -FOUNDATION_EXPORT NSHashTable *NSCopyHashTableWithZone(NSHashTable *table, - NSZone *zone); -FOUNDATION_EXPORT void NSFreeHashTable(NSHashTable *table); -FOUNDATION_EXPORT void NSResetHashTable(NSHashTable *table); -FOUNDATION_EXPORT BOOL NSCompareHashTables(NSHashTable *table1, - NSHashTable *table2); -FOUNDATION_EXPORT NSUInteger NSCountHashTable(NSHashTable *table); -FOUNDATION_EXPORT void *NSHashGet(NSHashTable *table, const void *pointer); -FOUNDATION_EXPORT NSArray *NSAllHashTableObjects(NSHashTable *table); -FOUNDATION_EXPORT NSHashEnumerator NSEnumerateHashTable(NSHashTable *table); -FOUNDATION_EXPORT void *NSNextHashEnumeratorItem(NSHashEnumerator *enumerator); -FOUNDATION_EXPORT void NSHashInsert(NSHashTable *table, const void *pointer); -FOUNDATION_EXPORT void NSHashInsertKnownAbsent(NSHashTable *table, - const void *pointer); -FOUNDATION_EXPORT void *NSHashInsertIfAbsent(NSHashTable *table, - const void *pointer); -FOUNDATION_EXPORT void NSHashRemove(NSHashTable *table, const void *pointer); -FOUNDATION_EXPORT NSString *NSStringFromHashTable(NSHashTable *table); diff --git a/Foundation/NSHashTable.m b/Foundation/NSHashTable.m deleted file mode 100644 index 7ce17439..00000000 --- a/Foundation/NSHashTable.m +++ /dev/null @@ -1,389 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -typedef struct NSHashBucket { - struct NSHashBucket *next; - void *key; -} NSHashBucket; - -struct NSHashTable { - NSHashTableCallBacks *callBacks; - NSUInteger count; - NSUInteger nBuckets; - NSHashBucket **buckets; -}; - -NSHashTableCallBacks _NSHashTableFixCallbacks(NSHashTableCallBacks callBacks); - -NSHashTable *NSCreateHashTable(NSHashTableCallBacks callBacks, - NSUInteger capacity) -{ - return NSCreateHashTableWithZone(callBacks, capacity, NULL); -} - -NSHashTable *NSCreateHashTableWithZone(NSHashTableCallBacks callBacks, - NSUInteger capacity, NSZone *zone) -{ - NSHashTable *table; - - if (zone == NULL) - zone = NSDefaultMallocZone(); - - table = NSZoneMalloc(zone, sizeof(NSHashTable)); - - table->callBacks = NSZoneMalloc(zone, sizeof(NSHashTableCallBacks)); - *(table->callBacks) = _NSHashTableFixCallbacks(callBacks); - - table->count = 0; - table->nBuckets = (capacity < 4) ? 4 : capacity; - table->buckets = - NSZoneCalloc(zone, table->nBuckets, sizeof(NSHashBucket *)); - - return table; -} - -NSHashTable *NSCopyHashTableWithZone(NSHashTable *table, NSZone *zone) { - NSHashTable *newTable = - NSCreateHashTableWithZone(*(table->callBacks), table->count, zone); - NSHashEnumerator state = NSEnumerateHashTable(table); - void *entry; - - while ((entry = NSNextHashEnumeratorItem(&state)) != NULL) - NSHashInsert(newTable, entry); - - return newTable; -} - -void NSFreeHashTable(NSHashTable *table) { - NSZone *zone = NSZoneFromPointer(table); - NSUInteger i; - NSHashBucket *j, *next; - - for (i = 0; i < table->nBuckets; i++) { - for (j = table->buckets[i]; j != NULL; j = next) { - table->callBacks->release(table, j->key); - next = j->next; - NSZoneFree(zone, j); - } - } - NSZoneFree(zone, table->buckets); - NSZoneFree(zone, table->callBacks); - NSZoneFree(zone, table); -} - -void NSResetHashTable(NSHashTable *table) { - NSZone *zone = NSZoneFromPointer(table); - NSUInteger i; - NSHashBucket *j, *next; - - for (i = 0; i < table->nBuckets; i++) { - for (j = table->buckets[i]; j != NULL; j = next) { - table->callBacks->release(table, j->key); - next = j->next; - NSZoneFree(zone, j); - } - table->buckets[i] = NULL; - } - table->count = 0; -} - -BOOL NSCompareHashTables(NSHashTable *table1, NSHashTable *table2) { - NSUInteger i; - NSHashBucket *j; - - if (table1->count != table2->count) - return NO; - - for (i = 0; i < table1->nBuckets; i++) - for (j = table1->buckets[i]; j != NULL; j = j->next) - if (NSHashGet(table2, j->key) != j->key) - return NO; - - return YES; -} - -NSUInteger NSCountHashTable(NSHashTable *table) { - return table->count; -} - -void *NSHashGet(NSHashTable *table, const void *pointer) { - NSUInteger i = table->callBacks->hash(table, pointer) % table->nBuckets; - NSHashBucket *j; - - for (j = table->buckets[i]; j != NULL; j = j->next) - if (table->callBacks->isEqual(table, j->key, pointer)) - return j->key; - - return NULL; -} - -NSArray *NSAllHashTableObjects(NSHashTable *table) { - NSMutableArray *array; - NSUInteger i; - NSHashBucket *j; - - array = [[[NSMutableArray allocWithZone: NULL] - initWithCapacity: table->count] autorelease]; - - for (i = 0; i < table->nBuckets; i++) - for (j = table->buckets[i]; j != NULL; j = j->next) - [array addObject: j->key]; - - return array; -} - -NSHashEnumerator NSEnumerateHashTable(NSHashTable *table) { - NSHashEnumerator state; - - state.table = table; - for (state.i = 0; state.i < table->nBuckets; state.i++) - if (table->buckets[state.i] != NULL) - break; - state.j = (state.i < table->nBuckets) ? table->buckets[state.i] : NULL; - - return state; -} - -void *NSNextHashEnumeratorItem(NSHashEnumerator *state) { - void *key; - - if (state->j == NULL) - return NULL; - - key = state->j->key; - - if ((state->j = state->j->next) != NULL) - return key; - - for (state->i++; state->i < state->table->nBuckets; state->i++) - if ((state->j = state->table->buckets[state->i]) != NULL) - return key; - - state->j = NULL; - - return key; -} - -void NSHashInsert(NSHashTable *table, const void *pointer) { - NSZone *zone; - NSUInteger hash = table->callBacks->hash(table, pointer); - NSUInteger i = hash % table->nBuckets; - NSHashBucket *j; - - for (j = table->buckets[i]; j != NULL; j = j->next) - if (table->callBacks->isEqual(table, j->key, pointer)) { - void *old = j->key; - table->callBacks->retain(table, pointer); - j->key = (void *) pointer; - table->callBacks->release(table, old); - return; - } - - zone = NSZoneFromPointer(table); - - if (table->count >= table->nBuckets) { - NSUInteger nBuckets = table->nBuckets; - NSHashBucket **buckets = table->buckets, *next; - - table->nBuckets = nBuckets * 2; - table->buckets = - NSZoneCalloc(zone, table->nBuckets, sizeof(NSHashBucket *)); - for (i = 0; i < nBuckets; i++) - for (j = buckets[i]; j != NULL; j = next) { - NSUInteger newi = - table->callBacks->hash(table, j->key) % table->nBuckets; - next = j->next; - j->next = table->buckets[newi]; - table->buckets[newi] = j; - } - NSZoneFree(zone, buckets); - i = hash % table->nBuckets; - } - - table->callBacks->retain(table, pointer); - j = NSZoneMalloc(zone, sizeof(NSHashBucket)); - j->key = (void *) pointer; - j->next = table->buckets[i]; - table->buckets[i] = j; - table->count++; -} - -void NSHashInsertKnownAbsent(NSHashTable *table, const void *pointer) { - if (NSHashGet(table, pointer) != NULL) { - // FIX - // [NSException raise:NSInvalidArgumentException format:@"NSHashGet - // returned non-nil in NSHashInsertKnownAbsent"]; - } - NSHashInsert(table, pointer); -} - -void *NSHashInsertIfAbsent(NSHashTable *table, const void *pointer) { - void *old = NSHashGet(table, pointer); - - if (old != NULL) - return old; - NSHashInsert(table, pointer); - return NULL; -} - -void NSHashRemove(NSHashTable *table, const void *pointer) { - NSUInteger i = table->callBacks->hash(table, pointer) % table->nBuckets; - NSHashBucket *j = table->buckets[i], *prev = j; - - for (; j != NULL; j = j->next) { - if (table->callBacks->isEqual(table, j->key, pointer)) { - if (prev == j) - table->buckets[i] = j->next; - else - prev->next = j->next; - table->callBacks->release(table, j->key); - NSZoneFree(NSZoneFromPointer(j), j); - table->count--; - return; - } - prev = j; - } -} - -NSString *NSStringFromHashTable(NSHashTable *table) { - NSMutableString *string = [NSMutableString string]; - NSString *fmt = @"%p"; - NSUInteger i; - NSHashBucket *j; - - for (i = 0; i < table->nBuckets; i++) { - for (j = table->buckets[i]; j != NULL; j = j->next) { - NSString *desc; - - if ((desc = table->callBacks->describe(table, j->key)) != nil) - [string appendString: desc]; - else - [string appendFormat: fmt, j->key]; - } - } - - return string; -} - -static NSUInteger _NSHashPointerHash(NSHashTable *table, const void *object) { - return (NSUInteger) object >> 5; -} - -static NSUInteger _NSHashObjectHash(NSHashTable *table, const void *object) { - return [(id) object hash]; -} - -static BOOL _NSHashPointerIsEqual(NSHashTable *table, const void *object1, - const void *object2) -{ - return (object1 == object2) ? YES : NO; -} - -static BOOL _NSHashObjectIsEqual(NSHashTable *table, const void *object1, - const void *object2) -{ - return [(id) object1 isEqual: (id) object2]; -} - -static void _NSHashEmptyRetain(NSHashTable *table, const void *object) { -} - -static void _NSHashObjectRetain(NSHashTable *table, const void *object) { - [(id) object retain]; -} - -static void _NSHashEmptyRelease(NSHashTable *table, void *object) { -} - -static void _NSHashObjectRelease(NSHashTable *table, void *object) { - [(id) object release]; -} - -static void _NSHashPointerRelease(NSHashTable *table, void *object) { - NSZoneFree(NSZoneFromPointer(object), object); -} - -static NSString *_NSHashEmptyDescribe(NSHashTable *table, const void *object) { - return nil; -} - -static NSString *_NSHashObjectDescribe(NSHashTable *table, const void *object) { - return [(id) object description]; -} - -static NSUInteger _NSHashPointerToStructHash(NSHashTable *table, - const void *object) -{ - const struct { - NSInteger i; - } *ptr = object; - return (NSUInteger) ptr->i; -} - -static BOOL _NSHashPointerToStructIsEqual(NSHashTable *table, - const void *object1, - const void *object2) -{ - const struct { - NSInteger i; - } *ptr1 = object1, *ptr2 = object2; - return (ptr1->i == ptr2->i) ? YES : NO; -} - -const NSHashTableCallBacks NSIntHashCallBacks = {NULL, NULL, NULL, NULL, NULL}; - -const NSHashTableCallBacks NSNonOwnedPointerHashCallBacks = {NULL, NULL, NULL, - NULL, NULL}; - -const NSHashTableCallBacks NSNonRetainedObjectHashCallBacks = { - _NSHashObjectHash, _NSHashObjectIsEqual, NULL, NULL, - _NSHashObjectDescribe}; - -const NSHashTableCallBacks NSObjectHashCallBacks = { - _NSHashObjectHash, _NSHashObjectIsEqual, _NSHashObjectRetain, - _NSHashObjectRelease, _NSHashObjectDescribe}; - -const NSHashTableCallBacks NSOwnedObjectIdentityHashCallBacks = { - _NSHashPointerHash, _NSHashPointerIsEqual, _NSHashObjectRetain, - _NSHashObjectRelease, _NSHashObjectDescribe}; - -const NSHashTableCallBacks NSOwnedPointerHashCallBacks = { - NULL, NULL, NULL, _NSHashPointerRelease, NULL}; - -const NSHashTableCallBacks NSPointerToStructHashCallBacks = { - _NSHashPointerToStructHash, _NSHashPointerToStructIsEqual, NULL, - _NSHashPointerRelease, NULL}; - -NSHashTableCallBacks _NSHashTableFixCallbacks(NSHashTableCallBacks callBacks) { - if (callBacks.hash == NULL) - callBacks.hash = _NSHashPointerHash; - if (callBacks.isEqual == NULL) - callBacks.isEqual = _NSHashPointerIsEqual; - if (callBacks.retain == NULL) - callBacks.retain = _NSHashEmptyRetain; - if (callBacks.release == NULL) - callBacks.release = _NSHashEmptyRelease; - if (callBacks.describe == NULL) - callBacks.describe = _NSHashEmptyDescribe; - - return callBacks; -} diff --git a/Foundation/NSHost.h b/Foundation/NSHost.h deleted file mode 100644 index 943d9371..00000000 --- a/Foundation/NSHost.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray; - -@interface NSHost : NSObject { - NSString *_name; - NSArray *_addresses; -} - -+ (BOOL) isHostCacheEnabled; -+ (void) setHostCacheEnabled: (BOOL) value; -+ (void) flushHostCache; - -+ (NSHost *) currentHost; - -+ (NSHost *) hostWithName: (NSString *) name; -+ (NSHost *) hostWithAddress: (NSString *) address; - -- (BOOL) isEqualToHost: (NSHost *) host; - -- (NSArray *) names; -- (NSString *) name; - -- (NSArray *) addresses; -- (NSString *) address; - -@end diff --git a/Foundation/NSHost.m b/Foundation/NSHost.m deleted file mode 100644 index 5166026b..00000000 --- a/Foundation/NSHost.m +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import - -@implementation NSHost - -+ (BOOL) isHostCacheEnabled { - NSUnimplementedMethod(); - return NO; -} - -+ (void) setHostCacheEnabled: (BOOL) value { - NSUnimplementedMethod(); -} - -+ (void) flushHostCache { - NSUnimplementedMethod(); -} - -- initWithName: (NSString *) name { - _name = [name copy]; - _addresses = nil; - return self; -} - -- (void) dealloc { - [_name release]; - [_addresses release]; - [super dealloc]; -} - -+ (NSHost *) currentHost { - return [NSHost hostWithName: [[NSPlatform currentPlatform] DNSHostName]]; -} - -+ (NSHost *) hostWithName: (NSString *) name { - return [[[self allocWithZone: NULL] initWithName: name] autorelease]; -} - -+ (NSHost *) hostWithAddress: (NSString *) address { - NSString *hostName = - [[NSPlatform currentPlatform] hostNameByAddress: address]; - - if (hostName == nil) { - return nil; - } - - return [NSHost hostWithName: hostName]; -} - -- (BOOL) isEqualToHost: (NSHost *) host { - for (NSString *address in [self addresses]) { - if ([[host addresses] containsObject: address] == YES) { - return YES; - } - } - return NO; -} - -- (void) _resolveAddressesIfNeeded { - if ([_addresses count] == 0) { - _addresses = [[[NSPlatform currentPlatform] - addressesForDNSHostName: _name] retain]; - } -} - -- (NSArray *) names { - return [NSArray arrayWithObject: _name]; -} - -- (NSString *) name { - return _name; -} - -- (NSArray *) addresses { - [self _resolveAddressesIfNeeded]; - return _addresses; -} - -- (NSString *) address { - return [[self addresses] lastObject]; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@[0x%lx] name: %@ addresses: %@>", - [[self class] description], self, _name, - [self addresses]]; -} - -@end diff --git a/Foundation/NSIndexPath.h b/Foundation/NSIndexPath.h deleted file mode 100644 index 6db12a00..00000000 --- a/Foundation/NSIndexPath.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2007 Dirk Theisen - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSIndexPath : NSObject { - NSUInteger _length; - NSUInteger *_indexes; -} - -+ (NSIndexPath *) indexPathWithIndex: (NSUInteger) index; -+ (NSIndexPath *) indexPathWithIndexes: (NSUInteger *) indexes - length: (NSUInteger) length; - -- (id) initWithIndex: (NSUInteger) index; -- (id) initWithIndexes: (NSUInteger *) indexes - length: (NSUInteger) length; // designated initializer - -- (NSIndexPath *) indexPathByAddingIndex: (NSUInteger) index; -- (NSIndexPath *) indexPathByRemovingLastIndex; - -- (NSUInteger) indexAtPosition: (NSUInteger) position; -- (NSUInteger) length; - -- (void) getIndexes: (NSUInteger *) indexes; - -// comparison support -- (NSComparisonResult) compare: - (NSIndexPath *) - otherObject; // sorting an array of indexPaths using this - // comparison results in an array representing - // nodes in depth-first traversal order - -@end diff --git a/Foundation/NSIndexPath.m b/Foundation/NSIndexPath.m deleted file mode 100644 index b52465de..00000000 --- a/Foundation/NSIndexPath.m +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright (c) 2007 Dirk Theisen - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#include -#include - -@implementation NSIndexPath - -+ (NSIndexPath *) indexPathWithIndex: (NSUInteger) index { - return [[[self alloc] initWithIndexes: &index length: 1] autorelease]; -} - -+ (NSIndexPath *) indexPathWithIndexes: (NSUInteger *) indexes - length: (NSUInteger) length -{ - return [[[self alloc] initWithIndexes: indexes length: length] autorelease]; -} - -- initWithIndex: (NSUInteger) index { - return [self initWithIndexes: &index length: 1]; -} - -- initWithIndexes: (NSUInteger *) indexes length: (NSUInteger) length { - int i; - - _length = length; - _indexes = NSZoneMalloc(NULL, length * sizeof(NSUInteger)); - - for (i = 0; i < length; i++) - _indexes[i] = indexes[i]; - - return self; -} - -- (BOOL) isEqual: other { - if ([other isKindOfClass: [NSIndexPath class]]) { - NSIndexPath *otherPath = other; - return _length == otherPath->_length && - memcmp(_indexes, otherPath->_indexes, _length); - } - return NO; -} - -- (void) dealloc { - if (_indexes) - free(_indexes); - [super dealloc]; -} - -- (NSIndexPath *) indexPathByAddingIndex: (NSUInteger) index { - NSUInteger length = [self length]; - NSUInteger buffer[length + 1]; - - [self getIndexes: buffer]; - buffer[length] = index; - length++; - - return [[[NSIndexPath alloc] initWithIndexes: buffer - length: length] autorelease]; -} - -- (NSIndexPath *) indexPathByRemovingLastIndex { - if (_length == 0) { - [NSException raise: NSInvalidArgumentException - format: @"Unable to remove index from zero length path."]; - return nil; - } - - return [[[NSIndexPath alloc] initWithIndexes: _indexes - length: _length - 1] autorelease]; -} - -- (NSUInteger) indexAtPosition: (NSUInteger) position { - if (position >= _length) { - [NSException raise: NSInvalidArgumentException - format: @"Unable to remove index from zero length path."]; - return 0; - } - return _indexes[position]; -} - -- (NSUInteger) length { - return _length; -} - -- (void) getIndexes: (NSUInteger *) indexes { - memcpy(indexes, _indexes, _length * sizeof(NSUInteger)); -} - -/** Note: Sorting an array of indexPaths using this comparison method results in - * an array representing nodes in depth-first traversal order. */ -- (NSComparisonResult) compare: (NSIndexPath *) otherObject { - int i; - for (i = 0; i < _length; i++) { - if (_indexes[i] != otherObject->_indexes[i]) { - return _indexes[i] < otherObject->_indexes[i] ? NSOrderedAscending - : NSOrderedDescending; - } - } - return NSOrderedSame; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- copy { - return [self retain]; -} - -- (NSUInteger) hash { - NSUInteger result = 0; - int i; - - for (i = 0; i < _length; i++) { - result = result * 2 + _indexes[i]; - } - result = 2 * result + _length; - - return result; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return nil; -} - -@end diff --git a/Foundation/NSIndexSet/NSIndexSet.h b/Foundation/NSIndexSet/NSIndexSet.h deleted file mode 100644 index 09112d07..00000000 --- a/Foundation/NSIndexSet/NSIndexSet.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@interface NSIndexSet : NSObject { - NSUInteger _length; - NSRange *_ranges; -} - -+ indexSetWithIndexesInRange: (NSRange) range; -+ indexSetWithIndex: (NSUInteger) index; -+ indexSet; - -- initWithIndexSet: (NSIndexSet *) other; -- initWithIndexesInRange: (NSRange) range; -- initWithIndex: (NSUInteger) index; -- init; - -- (BOOL) isEqualToIndexSet: (NSIndexSet *) other; - -- (NSUInteger) count; -- (NSUInteger) firstIndex; -- (NSUInteger) lastIndex; -- (NSUInteger) getIndexes: (NSUInteger *) buffer - maxCount: (NSUInteger) capacity - inIndexRange: (NSRange *) range; - -- (BOOL) containsIndexesInRange: (NSRange) range; -- (BOOL) containsIndexes: (NSIndexSet *) other; -- (BOOL) containsIndex: (NSUInteger) index; - -- (NSUInteger) indexGreaterThanIndex: (NSUInteger) index; -- (NSUInteger) indexGreaterThanOrEqualToIndex: (NSUInteger) index; -- (NSUInteger) indexLessThanIndex: (NSUInteger) index; -- (NSUInteger) indexLessThanOrEqualToIndex: (NSUInteger) index; - -- (BOOL) intersectsIndexesInRange: (NSRange) range; - -- (void) encodeWithCoder: (NSCoder *) encoder; -- (id) initWithCoder: (NSCoder *) decoder; - -@end - -#import diff --git a/Foundation/NSIndexSet/NSIndexSet.m b/Foundation/NSIndexSet/NSIndexSet.m deleted file mode 100644 index b14af371..00000000 --- a/Foundation/NSIndexSet/NSIndexSet.m +++ /dev/null @@ -1,357 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import - -@implementation NSIndexSet - -+ indexSetWithIndexesInRange: (NSRange) range { - return [[[self allocWithZone: NULL] initWithIndexesInRange: range] - autorelease]; -} - -+ indexSetWithIndex: (NSUInteger) index { - return [[[self allocWithZone: NULL] initWithIndex: index] autorelease]; -} - -+ indexSet { - return [[[self allocWithZone: NULL] init] autorelease]; -} - -- initWithIndexSet: (NSIndexSet *) other { - NSInteger i; - - _length = other->_length; - _ranges = NSZoneMalloc([self zone], - sizeof(NSRange) * ((_length == 0) ? 1 : _length)); - for (i = 0; i < _length; i++) - _ranges[i] = other->_ranges[i]; - - return self; -} - -- initWithIndexesInRange: (NSRange) range { - _length = (range.length == 0) ? 0 : 1; - _ranges = NSZoneMalloc([self zone], sizeof(NSRange)); - _ranges[0] = range; - return self; -} - -- initWithIndex: (NSUInteger) index { - return [self initWithIndexesInRange: NSMakeRange(index, 1)]; -} - -- init { - return [self initWithIndexesInRange: NSMakeRange(0, 0)]; -} - -- (void) dealloc { - NSZoneFree([self zone], _ranges); - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableIndexSet allocWithZone: zone] initWithIndexSet: self]; -} - -- (BOOL) isEqualToIndexSet: (NSIndexSet *) other { - NSInteger i; - - if (_length != other->_length) - return NO; - - for (i = 0; i < _length; i++) - if (!NSEqualRanges(_ranges[i], other->_ranges[i])) - return NO; - - return YES; -} - -- (NSUInteger) count { - NSUInteger result = 0; - NSInteger i; - - for (i = 0; i < _length; i++) - result += _ranges[i].length; - - return result; -} - -- (NSUInteger) firstIndex { - if (_length > 0) - return _ranges[0].location; - - return NSNotFound; -} - -- (NSUInteger) lastIndex { - if (_length > 0) - return NSMaxRange(_ranges[_length - 1]) - 1; - - return NSNotFound; -} - -// these two functions are the lynchpin of performance, should be improved for -// large sets -static NSUInteger -positionOfRangeGreaterThanOrEqualToLocation(NSRange *ranges, NSUInteger length, - NSUInteger location) -{ - NSUInteger i; - - for (i = 0; i < length; i++) - if (location < NSMaxRange(ranges[i])) - return i; - - return NSNotFound; -} - -static NSUInteger positionOfRangeLessThanOrEqualToLocation(NSRange *ranges, - NSUInteger length, - NSUInteger location) -{ - NSInteger i = length; - - while (--i >= 0) - if (ranges[i].location <= location) - return i; - - return NSNotFound; -} - -- (NSUInteger) getIndexes: (NSUInteger *) buffer - maxCount: (NSUInteger) capacity - inIndexRange: (NSRange *) rangePtr -{ - NSRange range; - NSUInteger first; - NSUInteger result = 0; - NSUInteger location = 0; - - if (rangePtr != NULL) - range = *rangePtr; - else { - range.location = _ranges[0].location; - range.length = NSMaxRange(_ranges[_length - 1]) - range.location; - } - - first = positionOfRangeGreaterThanOrEqualToLocation(_ranges, _length, - range.location); - - for (; first < _length && result < capacity; first++) { - NSUInteger max = NSMaxRange(_ranges[first]); - - for (location = _ranges[first].location; - location < max && result < capacity; location++) - buffer[result++] = location; - } - - if (rangePtr != NULL) { - NSUInteger max = NSMaxRange(*rangePtr); - - rangePtr->location = location; - rangePtr->length = max - rangePtr->location; - } - - return result; -} - -- (BOOL) containsIndexesInRange: (NSRange) range { - NSInteger first = positionOfRangeLessThanOrEqualToLocation(_ranges, _length, - range.location); - - if (first == NSNotFound) - return NO; - - for (; first < _length && _ranges[first].location < NSMaxRange(range); - first++) - if (NSMaxRange(range) <= NSMaxRange(_ranges[first])) - return YES; - - return NO; -} - -- (BOOL) containsIndexes: (NSIndexSet *) other { - NSInteger i; - - for (i = 0; i < other->_length; i++) - if (![self containsIndexesInRange: other->_ranges[i]]) - return NO; - - return YES; -} - -- (BOOL) containsIndex: (NSUInteger) index { - return [self containsIndexesInRange: NSMakeRange(index, 1)]; -} - -- (NSUInteger) indexGreaterThanIndex: (NSUInteger) index { - NSUInteger first = positionOfRangeGreaterThanOrEqualToLocation( - _ranges, _length, index); - - if (first == NSNotFound) - return NSNotFound; - - if (index < _ranges[first].location) - return _ranges[first].location; - - if (index + 1 < NSMaxRange(_ranges[first])) - return index + 1; - - first++; - if (first < _length) - return _ranges[first].location; - - return NSNotFound; -} - -- (NSUInteger) indexGreaterThanOrEqualToIndex: (NSUInteger) index { - NSUInteger first = positionOfRangeGreaterThanOrEqualToLocation( - _ranges, _length, index); - - if (first == NSNotFound) - return NSNotFound; - - if (index < _ranges[first].location) - return _ranges[first].location; - - if (index < NSMaxRange(_ranges[first])) - return index; - - first++; - if (first < _length) - return _ranges[first].location; - - return NSNotFound; -} - -- (NSUInteger) indexLessThanIndex: (NSUInteger) index { - NSInteger first = - positionOfRangeLessThanOrEqualToLocation(_ranges, _length, index); - - if (index == 0) - return NSNotFound; - - if (first == NSNotFound) - return NSNotFound; - - if (NSLocationInRange(index - 1, _ranges[first])) - return index - 1; - - if (index == _ranges[first].location) - first--; - - if (first >= 0) - return NSMaxRange(_ranges[first]) - 1; - - return NSNotFound; -} - -- (NSUInteger) indexLessThanOrEqualToIndex: (NSUInteger) index { - NSInteger first = - positionOfRangeLessThanOrEqualToLocation(_ranges, _length, index); - - if (first == NSNotFound) - return NSNotFound; - - if (NSLocationInRange(index, _ranges[first])) - return index; - - return NSMaxRange(_ranges[first]) - 1; -} - -- (BOOL) intersectsIndexesInRange: (NSRange) range { - NSUInteger first = positionOfRangeGreaterThanOrEqualToLocation( - _ranges, _length, range.location); - - if (first == NSNotFound) - return NO; - - return (_ranges[first].location < NSMaxRange(range)) ? YES : NO; -} - -- (NSString *) description { - NSMutableString *result = [NSMutableString string]; - NSInteger i; - - [result appendString: [super description]]; - [result appendFormat: @"[number of indexes: %d (in %d ranges), indexes: (", - [self count], _length]; - for (i = 0; i < _length; i++) - [result appendFormat: @"%d-%d%@", _ranges[i].location, - NSMaxRange(_ranges[i]) - 1, - (i + 1 < _length) ? @" " : @""]; - [result appendString: @")]"]; - return result; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - // Structure of this method is based on what I saw in NSSortDescriptor r662 - if ([coder allowsKeyedCoding]) { - [coder encodeObject: [NSNumber numberWithInt: _length] - forKey: @"length"]; - [coder encodeBytes: (uint8_t *) _ranges - length: _length * sizeof(NSRange) - forKey: @"ranges"]; - } else { - [coder encodeValueOfObjCType: @encode(NSUInteger) at: &_length]; - [coder encodeBytes: (uint8_t *) _ranges - length: _length * sizeof(NSRange)]; - } -} - -- (id) initWithCoder: (NSCoder *) coder { - // Structure of this method is based on what I saw in NSSortDescriptor r662 - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - _length = [[keyed decodeObjectForKey: @"length"] intValue]; - NSUInteger length; - int i; - const uint8_t *rangebytes = [keyed decodeBytesForKey: @"ranges" - returnedLength: &length]; - NSRange *ranges = (NSRange *) rangebytes; - _ranges = NSZoneMalloc( - [self zone], sizeof(NSRange) * ((_length == 0) ? 1 : _length)); - for (i = 0; i < _length; i++) - _ranges[i] = ranges[i]; - } else { - [coder decodeValueOfObjCType: @encode(NSUInteger) at: &_length]; - NSUInteger length; - int i; - const uint8_t *rangebytes = - [coder decodeBytesWithReturnedLength: &length]; - NSRange *ranges = (NSRange *) rangebytes; - _ranges = NSZoneMalloc( - [self zone], sizeof(NSRange) * ((_length == 0) ? 1 : _length)); - for (i = 0; i < _length; i++) - _ranges[i] = ranges[i]; - } - return self; -} - -@end diff --git a/Foundation/NSIndexSet/NSMutableIndexSet.h b/Foundation/NSIndexSet/NSMutableIndexSet.h deleted file mode 100644 index d013f7ef..00000000 --- a/Foundation/NSIndexSet/NSMutableIndexSet.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSMutableIndexSet : NSIndexSet { - NSUInteger _capacity; -} - -- (void) addIndexesInRange: (NSRange) range; -- (void) addIndexes: (NSIndexSet *) other; -- (void) addIndex: (NSUInteger) index; - -- (void) removeAllIndexes; -- (void) removeIndexesInRange: (NSRange) range; -- (void) removeIndexes: (NSIndexSet *) other; -- (void) removeIndex: (NSUInteger) index; - -- (void) shiftIndexesStartingAtIndex: (NSUInteger) index by: (NSInteger) delta; - -- (void) encodeWithCoder: (NSCoder *) coder; -- (id) initWithCoder: (NSCoder *) coder; - -@end diff --git a/Foundation/NSIndexSet/NSMutableIndexSet.m b/Foundation/NSIndexSet/NSMutableIndexSet.m deleted file mode 100644 index 1e079f86..00000000 --- a/Foundation/NSIndexSet/NSMutableIndexSet.m +++ /dev/null @@ -1,298 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#include - -// FIX: assert range values on init/insert/remove - -@implementation NSMutableIndexSet - -- initWithIndexSet: (NSIndexSet *) other { - [super initWithIndexSet: other]; - _capacity = (_length == 0) ? 1 : _length; - return self; -} - -- initWithIndexesInRange: (NSRange) range { - [super initWithIndexesInRange: range]; - _capacity = (_length == 0) ? 1 : _length; - return self; -} - -- copyWithZone: (NSZone *) zone { - return [[NSIndexSet allocWithZone: zone] initWithIndexSet: self]; -} - -static NSUInteger positionOfRangeLessThanOrEqualToLocation(NSRange *ranges, - NSUInteger length, - NSUInteger location) -{ - NSInteger i = length; - - while (--i >= 0) - if (ranges[i].location <= location) - return i; - - return NSNotFound; -} - -static void removeRangeAtPosition(NSRange *ranges, NSUInteger length, - NSUInteger position) -{ - NSUInteger i; - - for (i = position; i + 1 < length; i++) - ranges[i] = ranges[i + 1]; -} - -- (void) _insertRange: (NSRange) range position: (NSUInteger) position { - NSInteger i; - - _length++; - if (_capacity < _length) { - _capacity *= 2; - _ranges = NSZoneRealloc([self zone], _ranges, - sizeof(NSRange) * _capacity); - } - for (i = _length; --i >= position + 1;) - _ranges[i] = _ranges[i - 1]; - - _ranges[position] = range; -} - -- (void) addIndexesInRange: (NSRange) range { - NSUInteger pos = positionOfRangeLessThanOrEqualToLocation(_ranges, _length, - range.location); - BOOL insert = NO; - - if (pos == NSNotFound) { - pos = 0; - insert = YES; - } else { - if (NSMaxRange(range) <= NSMaxRange(_ranges[pos])) - return; // present - - if (range.location <= - NSMaxRange(_ranges[pos])) // intersects or adjacent - _ranges[pos].length = NSMaxRange(range) - _ranges[pos].location; - else { - pos++; - insert = YES; - } - } - - if (insert) - [self _insertRange: range position: pos]; - - while (pos + 1 < _length) { - NSUInteger max = NSMaxRange(_ranges[pos]); - NSUInteger nextMax; - - if (max < _ranges[pos + 1].location) - break; - - nextMax = NSMaxRange(_ranges[pos + 1]); - if (nextMax > max) - _ranges[pos].length = nextMax - _ranges[pos].location; - - removeRangeAtPosition(_ranges, _length, pos + 1); - _length--; - } -} - -- (void) addIndexes: (NSIndexSet *) other { - NSInteger i; - - for (i = 0; i < ((NSMutableIndexSet *) other)->_length; i++) - [self addIndexesInRange: ((NSMutableIndexSet *) other)->_ranges[i]]; -} - -- (void) addIndex: (NSUInteger) index { - [self addIndexesInRange: NSMakeRange(index, 1)]; -} - -- (void) removeAllIndexes { - _length = 0; -} - -- (void) removeIndexesInRange: (NSRange) range { - NSUInteger pos = positionOfRangeLessThanOrEqualToLocation(_ranges, _length, - range.location); - - if (pos == NSNotFound) - pos = 0; - - while (range.length > 0 && pos < _length) { - if (_ranges[pos].location >= NSMaxRange(range)) - break; - - if (NSMaxRange(_ranges[pos]) == NSMaxRange(range)) { - - if (_ranges[pos].location == range.location) { - removeRangeAtPosition(_ranges, _length, pos); - _length--; - } else - _ranges[pos].length = range.location - _ranges[pos].location; - - break; - } - - if (NSMaxRange(_ranges[pos]) > NSMaxRange(range)) { - - if (_ranges[pos].location == range.location) { - NSUInteger max = NSMaxRange(_ranges[pos]); - - _ranges[pos].location = NSMaxRange(range); - _ranges[pos].length = max - _ranges[pos].location; - } else { - NSRange iceberg; - - iceberg.location = NSMaxRange(range); - iceberg.length = NSMaxRange(_ranges[pos]) - iceberg.location; - - _ranges[pos].length = range.location - _ranges[pos].location; - - [self _insertRange: iceberg position: pos + 1]; - } - break; - } - - if (range.location >= NSMaxRange(_ranges[pos])) - pos++; - else { - NSUInteger max = NSMaxRange(range); - NSRange temp = _ranges[pos]; - - if (_ranges[pos].location >= range.location) { - removeRangeAtPosition(_ranges, _length, pos); - _length--; - } else { - _ranges[pos].length = range.location - _ranges[pos].location; - pos++; - } - range.location = NSMaxRange(temp); - range.length = max - range.location; - } - } -} - -- (void) removeIndexes: (NSIndexSet *) other { - NSInteger i; - - for (i = 0; i < ((NSMutableIndexSet *) other)->_length; i++) - [self removeIndexesInRange: ((NSMutableIndexSet *) other)->_ranges[i]]; -} - -- (void) removeIndex: (NSUInteger) index { - [self removeIndexesInRange: NSMakeRange(index, 1)]; -} - -- (void) shiftIndexesStartingAtIndex: (NSUInteger) index by: (NSInteger) delta { - - if (delta < 0) { - delta = -delta; - NSInteger pos = positionOfRangeLessThanOrEqualToLocation( - _ranges, _length, index - delta); - - if (pos == NSNotFound) - return; // raise? - - NSInteger count = _length; - - while (--count >= pos) { - if (_ranges[count].location >= - index) // if above index just move it down - _ranges[count].location -= delta; - else if (NSMaxRange(_ranges[count]) <= - index - delta) // below area, ignore - ; - else if (_ranges[count].length > delta) { // if below, shorten - if (NSMaxRange(_ranges[count]) - index >= - delta) // if deletion entirely inside - _ranges[count].length -= delta; - else - _ranges[count].length = - NSMaxRange(_ranges[count]) - (index - delta); - } else { // if below and shorter than the delta, remove - NSInteger i; - - _length--; - for (i = count; i < _length; i++) - _ranges[i] = _ranges[i + 1]; - } - } - - } else { - NSInteger pos = positionOfRangeLessThanOrEqualToLocation( - _ranges, _length, index); - - if (pos == NSNotFound) - return; // raise? - - // if index is inside a range, split it - if (_ranges[pos].location < index && index < NSMaxRange(_ranges[pos])) { - NSRange below = _ranges[pos]; - - below.length = index - below.location; - _ranges[pos].length = NSMaxRange(_ranges[pos]) - index; - _ranges[pos].location = index; - - [self _insertRange: below position: pos]; - } - - // move all ranges at or above index by delta - NSInteger count = _length; - - while (--count >= pos) { - if (_ranges[count].location >= index) - _ranges[count].location += delta; - } - } -} - -- (void) encodeWithCoder: (NSCoder *) coder { - // Structure of this method is based on NSSortDescriptor r662 - [super encodeWithCoder: coder]; - if ([coder allowsKeyedCoding]) { - [coder encodeObject: [NSNumber numberWithInt: _capacity] - forKey: @"capacity"]; - } else { - [coder encodeValueOfObjCType: @encode(NSUInteger) at: &_capacity]; - } -} - -- (id) initWithCoder: (NSCoder *) coder { - // Structure of this method is based on NSSortDescriptor r662 - [super initWithCoder: coder]; - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - _capacity = [[keyed decodeObjectForKey: @"capacity"] intValue]; - } else { - [coder decodeValueOfObjCType: @encode(NSUInteger) at: &_capacity]; - } - return self; -} - -@end diff --git a/Foundation/NSInvocation.h b/Foundation/NSInvocation.h deleted file mode 100644 index 9771a6c9..00000000 --- a/Foundation/NSInvocation.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMethodSignature; - -@interface NSInvocation : NSObject { - NSMethodSignature *_signature; - - NSUInteger _returnSize; - uint8_t *_returnValue; - - NSUInteger _argumentFrameSize; - NSUInteger *_argumentSizes; - NSUInteger *_argumentOffsets; - uint8_t *_argumentFrame; - - BOOL _retainArguments; -} - -+ (NSInvocation *) invocationWithMethodSignature: - (NSMethodSignature *) signature; - -- (NSMethodSignature *) methodSignature; - -- (void) getReturnValue: (void *) pointerToValue; -- (void) setReturnValue: (void *) pointerToValue; - -- (void) getArgument: (void *) pointerToValue atIndex: (NSInteger) index; -- (void) setArgument: (void *) pointerToValue atIndex: (NSInteger) index; - -- (void) retainArguments; -- (BOOL) argumentsRetained; - -- (SEL) selector; -- (void) setSelector: (SEL) selector; - -- target; -- (void) setTarget: target; - -- (void) invoke; -- (void) invokeWithTarget: target; - -@end diff --git a/Foundation/NSInvocation.m b/Foundation/NSInvocation.m deleted file mode 100644 index 40324bd0..00000000 --- a/Foundation/NSInvocation.m +++ /dev/null @@ -1,503 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -#import -#include -#import - -id objc_msgSendv(id self, SEL selector, unsigned arg_size, void *arg_frame); - -@implementation NSInvocation - -- (void) buildFrame { - NSInteger i, count = [_signature numberOfArguments]; - NSUInteger align; - - NSGetSizeAndAlignment([_signature methodReturnType], &_returnSize, &align); - _returnValue = NSZoneCalloc(NULL, MAX(_returnSize, sizeof(long)), 1); - - _argumentFrameSize = 0; - _argumentSizes = NSZoneCalloc(NULL, count, sizeof(NSUInteger)); - _argumentOffsets = NSZoneCalloc(NULL, count, sizeof(NSUInteger)); - - for (i = 0; i < count; i++) { - NSUInteger naturalSize; - NSUInteger promotedSize; - - _argumentOffsets[i] = _argumentFrameSize; - - NSGetSizeAndAlignment([_signature getArgumentTypeAtIndex: i], - &naturalSize, &align); - promotedSize = ((naturalSize + sizeof(long) - 1) / sizeof(long)) * - sizeof(long); - - _argumentSizes[i] = naturalSize; - _argumentFrameSize += promotedSize; - } -} - -- initWithMethodSignature: (NSMethodSignature *) signature { - if (signature == nil) { - [self dealloc]; - [NSException raise: NSInvalidArgumentException - format: @"nil signature in NSInvocation creation"]; - return nil; - } - - _signature = [signature retain]; - - [self buildFrame]; - - _argumentFrame = NSZoneCalloc(NULL, _argumentFrameSize, 1); - - return self; -} - -- initWithMethodSignature: (NSMethodSignature *) signature - arguments: (void *) arguments -{ - unsigned i; - uint8_t *stackFrame = arguments; - - [self initWithMethodSignature: signature]; - - for (i = 0; i < _argumentFrameSize; i++) - _argumentFrame[i] = stackFrame[i]; - - return self; -} - -- (void) dealloc { - if (_retainArguments) { - NSInteger i, count = [_signature numberOfArguments]; - - for (i = 0; i < count; ++i) { - const char *type = [_signature getArgumentTypeAtIndex: i]; - - switch (type[0]) { - case '@': { - id object; - - [self getArgument: &object atIndex: i]; - [object release]; - break; - } - - case '*': { - char *ptr; - - [self getArgument: &ptr atIndex: i]; - NSZoneFree(NULL, ptr); - break; - } - - default: - break; - } - } - } - - NSZoneFree(NULL, _returnValue); - NSZoneFree(NULL, _argumentSizes); - NSZoneFree(NULL, _argumentOffsets); - NSZoneFree(NULL, _argumentFrame); - [_signature release]; - NSDeallocateObject(self); - return; - [super dealloc]; -} - -static void *bufferForType(void *buffer, const char *type) { - NSUInteger size, align; - - NSGetSizeAndAlignment(type, &size, &align); - if (buffer != NULL) - NSZoneFree(NULL, buffer); - - return NSZoneMalloc(NULL, size); -} - -- initWithCoder: (NSCoder *) coder { - const char *type; - NSInteger i, count; - void *buffer = NULL; - - _signature = [[coder decodeObject] retain]; - - [self buildFrame]; - - _argumentFrame = NSZoneCalloc(NULL, _argumentFrameSize, 1); - - if ([_signature methodReturnLength] > 0) { - type = [_signature methodReturnType]; - buffer = bufferForType(buffer, type); - [coder decodeValueOfObjCType: type at: buffer]; - [self setReturnValue: buffer]; - } - - count = [_signature numberOfArguments]; - for (i = 0; i < count; i++) { - type = [_signature getArgumentTypeAtIndex: i]; - buffer = bufferForType(buffer, type); - [coder decodeValueOfObjCType: type at: buffer]; - [self setArgument: buffer atIndex: i]; - } - NSZoneFree(NULL, buffer); - - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - const char *type; - NSInteger i, count; - void *buffer = NULL; - - [coder encodeObject: _signature]; - - if ([_signature methodReturnLength] > 0) { - type = [_signature methodReturnType]; - buffer = bufferForType(buffer, type); - [self getReturnValue: buffer]; - [coder encodeValueOfObjCType: type at: buffer]; - } - - count = [_signature numberOfArguments]; - for (i = 0; i < count; i++) { - type = [_signature getArgumentTypeAtIndex: i]; - buffer = bufferForType(buffer, type); - [self getArgument: buffer atIndex: i]; - [coder encodeValueOfObjCType: type at: buffer]; - } -} - -+ (NSInvocation *) invocationWithMethodSignature: - (NSMethodSignature *) signature -{ - return [[[self allocWithZone: NULL] initWithMethodSignature: signature] - autorelease]; -} - -+ (NSInvocation *) invocationWithMethodSignature: - (NSMethodSignature *) signature - arguments: (void *) arguments -{ - return [[[self allocWithZone: NULL] initWithMethodSignature: signature - arguments: arguments] - autorelease]; -} - -- (NSMethodSignature *) methodSignature { - return _signature; -} - -static void byteCopy(void *src, void *dst, NSUInteger length) { - NSInteger i; - - for (i = 0; i < length; i++) - ((char *) dst)[i] = ((char *) src)[i]; -} - -- (void) getReturnValue: (void *) pointerToValue { - byteCopy(_returnValue, pointerToValue, _returnSize); -} - -- (void) setReturnValue: (void *) pointerToValue { - byteCopy(pointerToValue, _returnValue, _returnSize); -} - -- (void) getArgument: (void *) pointerToValue atIndex: (NSInteger) index { - NSUInteger naturalSize = _argumentSizes[index]; - NSUInteger promotedSize = - ((naturalSize + sizeof(long) - 1) / sizeof(long)) * sizeof(long); - - if (naturalSize == promotedSize) { - byteCopy(_argumentFrame + _argumentOffsets[index], pointerToValue, - naturalSize); - } else if (promotedSize == sizeof(long)) { - long promoted; - - byteCopy(_argumentFrame + _argumentOffsets[index], &promoted, - promotedSize); - if (naturalSize == 1) { - *((char *) pointerToValue) = (char) promoted; - } else if (naturalSize == 2) { - *((short *) pointerToValue) = (short) promoted; - } else if (naturalSize == 4) { - *((int32_t *) pointerToValue) = (int32_t) promoted; - } - } else { - [NSException - raise: NSInvalidArgumentException - format: @"Unable to convert naturalSize=%d to promotedSize=%d", - naturalSize, promotedSize]; - } -} - -- (void) setArgument: (void *) pointerToValue atIndex: (NSInteger) index { - NSUInteger naturalSize = _argumentSizes[index]; - NSUInteger promotedSize = - ((naturalSize + sizeof(long) - 1) / sizeof(long)) * sizeof(long); - - if (naturalSize == promotedSize) { - byteCopy(pointerToValue, _argumentFrame + _argumentOffsets[index], - naturalSize); - } else if (promotedSize == sizeof(long)) { - long promoted; - - if (naturalSize == 1) { - promoted = *((char *) pointerToValue); - } else if (naturalSize == 2) { - promoted = *((short *) pointerToValue); - } else if (naturalSize == 4) { - promoted = *((int32_t *) pointerToValue); - } - - byteCopy(&promoted, _argumentFrame + _argumentOffsets[index], - promotedSize); - } else { - [NSException raise: NSInvalidArgumentException - format: @"Unable to convert naturalSize=" NSUIntegerFormat - " to promotedSize=" NSUIntegerFormat, - naturalSize, promotedSize]; - } -} - -- (void) retainArguments { - if (!_retainArguments) { - NSInteger i, count = [_signature numberOfArguments]; - - _retainArguments = YES; - for (i = 0; i < count; ++i) { - const char *type = [_signature getArgumentTypeAtIndex: i]; - - switch (type[0]) { - case '@': { - id object; - - [self getArgument: &object atIndex: i]; - [object retain]; - break; - } - - case '*': { - char *ptr, *copy, length; - - [self getArgument: &ptr atIndex: i]; - length = strlen(ptr); - copy = NSZoneCalloc(NULL, length + 1, 1); - byteCopy(ptr, copy, length); - [self setArgument: © atIndex: i]; - break; - } - - default: - break; - } - } - } -} - -- (BOOL) argumentsRetained { - return _retainArguments; -} - -- (SEL) selector { - SEL result; - - [self getArgument: &result atIndex: 1]; - - return result; -} - -- (void) setSelector: (SEL) selector { - [self setArgument: &selector atIndex: 1]; -} - -- target { - id result; - - [self getArgument: &result atIndex: 0]; - - return result; -} - -- (void) setTarget: target { - [self setArgument: &target atIndex: 0]; -} - -- (void) invokeWithTarget: target { - [self setTarget: target]; - [self invoke]; -} - -- (void) invoke { - const char *returnType = [_signature methodReturnType]; - void *msgSendv = objc_msgSendv; - - switch (returnType[0]) { - case 'r': - case 'n': - case 'N': - case 'o': - case 'O': - case 'R': - case 'V': - returnType++; - break; - } - - switch (returnType[0]) { - case _C_CHR: - case _C_UCHR: { - char (*function)() = msgSendv; - char value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } break; - - case _C_SHT: - case _C_USHT: { - short (*function)() = msgSendv; - short value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } break; - - case _C_INT: - case _C_UINT: { - int (*function)() = msgSendv; - int value = function([self target], [self selector], _argumentFrameSize, - _argumentFrame); - - [self setReturnValue: &value]; - } break; - - case _C_LNG: - case _C_ULNG: { - long (*function)() = msgSendv; - long value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } break; - - case _C_LNG_LNG: - case _C_ULNG_LNG: { - long long (*function)() = msgSendv; - long long value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } break; - - case _C_FLT: { - float (*function)() = msgSendv; - float value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } break; - - case _C_DBL: { - double (*function)() = msgSendv; - double value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } break; - - case _C_VOID: { - void (*function)() = msgSendv; - - function([self target], [self selector], _argumentFrameSize, - _argumentFrame); - } break; - - case _C_CHARPTR: - case _C_ID: - case _C_CLASS: - case _C_SEL: { - void *(*function)() = msgSendv; - void *value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } break; - - default: { - NSUInteger size, alignment; - - NSGetSizeAndAlignment(returnType, &size, &alignment); - if (size <= sizeof(long)) { - long (*function)() = msgSendv; - long value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } else if (size <= sizeof(long long)) { - long long (*function)() = msgSendv; - long long value = function([self target], [self selector], - _argumentFrameSize, _argumentFrame); - - [self setReturnValue: &value]; - } else { -#ifdef __clang__ - // see http://llvm.org/bugs/show_bug.cgi?id=9254 - @throw @"NSInvocation: current implementation of struct returning " - @"invocation is not supported by Clang."; -#else - struct structReturn { - char *result; - ; - } (*function)() = (struct structReturn(*)()) - msgSendv; // should be msgSend_stret - struct structReturn value; - - value.result = calloc(size, sizeof(char)); - -// FIX internal compiler error on windows/linux/bsd -#if !defined(WIN32) && !defined(BSD) && !defined(LINUX) - value = function([self target], [self selector], _argumentFrameSize, - _argumentFrame); -#else - if (function) { /*avoid compiler warning*/ - } -#endif - - [self setReturnValue: &value]; - free(value.result); -#endif - } - } break; - } -} - -- (id) description { - return [NSString stringWithFormat: @"<%@ with signature %@>", - [super description], - [_signature description]]; -} - -@end diff --git a/Foundation/NSKeyValueCoding/NSArray+KVC.m b/Foundation/NSKeyValueCoding/NSArray+KVC.m deleted file mode 100644 index e35f8ec9..00000000 --- a/Foundation/NSKeyValueCoding/NSArray+KVC.m +++ /dev/null @@ -1,266 +0,0 @@ -/* Copyright (c) 2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSString+KVCAdditions.h" -#import -#import - -@implementation NSArray (NSKeyValueCoding) -- (id) valueForKey: (NSString *) key { - if ([key hasPrefix: @"@"]) // operator - { - /* - "If key indicates an operation that doesn't require an argument, - valueForKey performs the operation and returns the result. key indicates - an operation if its first character is "@". For example, if key is - "@count", valueForKey invokes compute on the "count" operator. This has - the effect of computing and returning the number of elements in the - receiver. - Don't use valueForKey for operations that take arguments; instead use - valueForKeyPath." - from the standard - */ - if ([key rangeOfString: @"."].location != NSNotFound) - [NSException raise: @"NSKeyValueCodingException" - format: @"valueForKey called for operator with " - @"parameters %@. Use valueForKeyPath: instead", - key]; - - id operator= [key substringFromIndex: 1]; - // find operator selector (e.g. _kvo_operator_count for @count) - SEL operatorSelector=NSSelectorFromString([NSString stringWithFormat:@"_kvo_operator_%@", operator]); - if (![self respondsToSelector: operatorSelector]) - [NSException raise: @"NSKeyValueCodingException" - format: @"operator %@: NSArray selector %@ not " - @"implemented", - operator, - NSStringFromSelector(operatorSelector)]; - - return [self performSelector: operatorSelector]; - } - /* - For keys which do not begin with "@", valueForKey creates a new array with - the same number of elements as this array. For each element, the - corresponding element in the new array is the result of invoking - valueForKeyPath with key as the key path on the element. For example, if - key is "firstName", this method returns an array containing the firstName - values for each of the array's elements. The key argument can be a key path - of the form relationship.property. For example, "department.name". - valueForKey replaces null values with an instance of NSKeyValueCoding.Null - */ - NSMutableArray *array = [NSMutableArray array]; - id en = [self objectEnumerator]; - id obj; - while ((obj = [en nextObject])) { - id val = [obj valueForKey: key]; - if (!val) { - val = [NSNull null]; - } - [array addObject: val]; - } - return array; -} - -- (id) valueForKeyPath: (NSString *) keyPath { - if ([keyPath hasPrefix: @"@"]) // operator - { - /* - If keyPath indicates an operation takes an argument (such as computing - an average), valueForKeyPath performs the operation and returns the - result. key indicates an aggregate operation if its first character - is "@". For example, if key is "@avg.salary", valueForKey invokes - compute on the "avg" operator specifying the array and "salary" as - arguments. This has the effect of computing and returning the average - salary of the array's elements. - */ - NSString *operator, * parameter; - [[keyPath substringFromIndex:1] _KVC_partBeforeDot:&operator afterDot:¶meter]; - - // find operator selector (e.g. _kvo_operator_avg: for @avg) - SEL operatorSelector=NSSelectorFromString([NSString stringWithFormat:@"_kvo_operator_%@:", operator]); - if (![self respondsToSelector: operatorSelector]) - [NSException raise: @"NSKeyValueCodingException" - format: @"operator %@: NSArray selector %@ not " - @"implemented (parameter was %@)", - operator, - NSStringFromSelector(operatorSelector), - parameter]; - - return [self performSelector: operatorSelector - withObject: parameter]; - } - - /* - Otherwise, valueForKeyPath behaves similarly to valueForKey and produces a - new NSArray whose elements correspond to the results of invoking - valueForKeyPath on each element of this array. - */ - NSMutableArray *array = [NSMutableArray array]; - - id en = [self objectEnumerator]; - id obj; - while ((obj = [en nextObject])) { - id val = [obj valueForKeyPath: keyPath]; - if (val == nil) - val = [NSNull null]; - - [array addObject: val]; - } - - return array; -} - -- (id) _kvo_operator_avg: (NSString *) parameter { - NSArray *objects = [self valueForKeyPath: parameter]; - NSInteger count = [objects count]; - NSInteger i; - double average = 0; - for (i = 0; i < count; i++) { - average += [[objects objectAtIndex: i] doubleValue] / (double) count; - } - return [NSNumber numberWithDouble: average]; -} - -- (id) _kvo_operator_max: (NSString *) parameter { - NSArray *objects = [self valueForKeyPath: parameter]; - NSInteger count = [objects count]; - NSInteger i; - - id currentMaximum = [objects lastObject]; - for (i = 0; i < count; i++) { - id obj = [objects objectAtIndex: i]; - if ([(NSString * /* to avoid warnings */) currentMaximum compare: obj] < - 0) - currentMaximum = obj; - } - return currentMaximum; -} - -- (id) _kvo_operator_min: (NSString *) parameter { - NSArray *objects = [self valueForKeyPath: parameter]; - NSInteger count = [objects count]; - NSInteger i; - - id currentMinimum = [objects lastObject]; - for (i = 0; i < count; i++) { - id obj = [objects objectAtIndex: i]; - if ([(NSString * /* to avoid warnings */) currentMinimum compare: obj] > - 0) - currentMinimum = obj; - } - return currentMinimum; -} - -- (id) _kvo_operator_count { - return [NSNumber numberWithUnsignedInteger: [self count]]; -} - -- (id) _kvo_operator_count: (NSString *) parameter { - if ([parameter length] > 0) - [NSException raise: NSInvalidArgumentException - format: @"array operator @count called with argument (%@)", - parameter]; - return [self _kvo_operator_count]; -} - -- (id) _kvo_operator_sum: (NSString *) parameter { - NSArray *objects = [self valueForKeyPath: parameter]; - NSInteger count = [objects count]; - NSInteger i; - - double sum = 0.0; - for (i = 0; i < count; i++) { - id obj = [objects objectAtIndex: i]; - sum += [obj doubleValue]; - } - return [NSNumber numberWithDouble: sum]; -} - -- (void) setValue: (id) value forKey: (NSString *) key { - id en = [self objectEnumerator]; - id obj; - while ((obj = [en nextObject])) { - [obj setValue: value forKey: key]; - } -} - -- (void) setValue: (id) value forKeyPath: (NSString *) keyPath { - id en = [self objectEnumerator]; - id obj; - while ((obj = [en nextObject])) { - [obj setValue: value forKeyPath: keyPath]; - } -} -@end - -@implementation NSArray (KVO) - -- (void) addObserver: (NSObject *) observer - toObjectsAtIndexes: (NSIndexSet *) indexes - forKeyPath: (NSString *) keyPath - options: (NSKeyValueObservingOptions) options - context: (void *) context -{ - NSUInteger idx = [indexes firstIndex]; - while (idx != NSNotFound) { - [[self objectAtIndex: idx] addObserver: observer - forKeyPath: keyPath - options: options - context: context]; - idx = [indexes indexGreaterThanIndex: idx]; - } -} - -- (void) removeObserver: (NSObject *) observer - fromObjectsAtIndexes: (NSIndexSet *) indexes - forKeyPath: (NSString *) keyPath -{ - NSUInteger idx = [indexes firstIndex]; - while (idx != NSNotFound) { - [[self objectAtIndex: idx] removeObserver: observer - forKeyPath: keyPath]; - idx = [indexes indexGreaterThanIndex: idx]; - } -} - -- (void) addObserver: (id) observer - forKeyPath: (NSString *) keyPath - options: (NSKeyValueObservingOptions) options - context: (void *) context; -{ - if ([[self class] instanceMethodForSelector: _cmd] == - [NSArray instanceMethodForSelector: _cmd]) - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"not supported for key path %@ (observer was %@)", - keyPath, observer); - else - [super addObserver: observer - forKeyPath: keyPath - options: options - context: context]; -} - -- (void) removeObserver: (id) observer forKeyPath: (NSString *) keyPath; { - if ([[self class] instanceMethodForSelector: _cmd] == - [NSArray instanceMethodForSelector: _cmd]) - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"not supported for key path %@ (observer was %@)", - keyPath, observer); - else - [super removeObserver: observer forKeyPath: keyPath]; -} -@end diff --git a/Foundation/NSKeyValueCoding/NSDictionary+KVC.m b/Foundation/NSKeyValueCoding/NSDictionary+KVC.m deleted file mode 100644 index 806c0745..00000000 --- a/Foundation/NSKeyValueCoding/NSDictionary+KVC.m +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@implementation NSDictionary (NSKeyValueCoding) -- (id) valueForKey: (NSString *) key; { - if ([key hasPrefix: @"@"]) - return [super valueForKey: [key substringFromIndex: 1]]; - return [self objectForKey: key]; -} - -- (void) setValue: (id) value forKey: (NSString *) key { - [NSException raise: NSInvalidArgumentException - format: @"%@ called on immutable dictionary %@", - NSStringFromSelector(_cmd), self]; -} -@end - -@implementation NSMutableDictionary (NSKeyValueCoding) -- (void) setValue: (id) value forKey: (NSString *) key { - if (value) - [self setObject: value forKey: key]; - else - [self removeObjectForKey: key]; -} -@end diff --git a/Foundation/NSKeyValueCoding/NSKVCMutableArray.h b/Foundation/NSKeyValueCoding/NSKVCMutableArray.h deleted file mode 100644 index b645d6e6..00000000 --- a/Foundation/NSKeyValueCoding/NSKVCMutableArray.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright (c) 2006-2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSKVCMutableArray : NSMutableArray { - id proxyObject; - id key; - IMP insert; - IMP remove; - IMP replace; - IMP objectAtIndex; - IMP count; - IMP accessor; - IMP setter; - SEL insertSel; - SEL removeSel; - SEL replaceSel; - SEL objectAtIndexSel; - SEL countSel; - SEL accessorSel; - SEL setterSel; -} -- (id) initWithKey: (id) theKey forProxyObject: (id) object; - -- (NSUInteger) count; -- (id) objectAtIndex: (NSUInteger) index; - -- (void) addObject: (id) anObject; -- (void) insertObject: (id) anObject atIndex: (NSUInteger) index; -- (void) removeLastObject; -- (void) removeObjectAtIndex: (NSUInteger) index; -- (void) replaceObjectAtIndex: (NSUInteger) index withObject: (id) anObject; -@end diff --git a/Foundation/NSKeyValueCoding/NSKVCMutableArray.m b/Foundation/NSKeyValueCoding/NSKVCMutableArray.m deleted file mode 100644 index 96a7fba6..00000000 --- a/Foundation/NSKeyValueCoding/NSKVCMutableArray.m +++ /dev/null @@ -1,150 +0,0 @@ -/* Copyright (c) 2006-2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSKVCMutableArray.h" -#import -#import - -@implementation NSKVCMutableArray -- (id) initWithKey: (id) theKey forProxyObject: (id) object { - [super init]; - - proxyObject = [object retain]; - key = [theKey retain]; - id ukey = [key capitalizedString]; - - insertSel = NSSelectorFromString( - [NSString stringWithFormat: @"insertObject:in%@AtIndex:", ukey]); - removeSel = NSSelectorFromString( - [NSString stringWithFormat: @"removeObjectFrom%@AtIndex:", ukey]); - replaceSel = NSSelectorFromString([NSString - stringWithFormat: @"replaceObjectIn%@AtIndex:withObject:", ukey]); - accessorSel = NSSelectorFromString(key); - objectAtIndexSel = NSSelectorFromString( - [NSString stringWithFormat: @"objectIn%@AtIndex:", ukey]); - setterSel = - NSSelectorFromString([NSString stringWithFormat: @"set%@:", ukey]); - countSel = NSSelectorFromString( - [NSString stringWithFormat: @"countOf%@", ukey]); - - if ([proxyObject respondsToSelector: insertSel]) - insert = [proxyObject methodForSelector: insertSel]; - if ([proxyObject respondsToSelector: replaceSel]) - replace = [proxyObject methodForSelector: replaceSel]; - if ([proxyObject respondsToSelector: removeSel]) - remove = [proxyObject methodForSelector: removeSel]; - if ([proxyObject respondsToSelector: accessorSel]) - accessor = [proxyObject methodForSelector: accessorSel]; - if ([proxyObject respondsToSelector: setterSel]) - setter = [proxyObject methodForSelector: setterSel]; - if ([proxyObject respondsToSelector: objectAtIndexSel]) - objectAtIndex = [proxyObject methodForSelector: objectAtIndexSel]; - if ([proxyObject respondsToSelector: countSel]) - count = [proxyObject methodForSelector: countSel]; - - return self; -} - -- (id) _representedObject { - if (accessor) { - return accessor(proxyObject, accessorSel); - } - return [proxyObject valueForKey: key]; -} - -- (void) _setRepresentedObject: (id) object { - if (setter) - setter(proxyObject, setterSel, object); - else - [proxyObject setValue: object forKey: key]; -} - -- (void) dealloc { - [key release]; - [proxyObject release]; - [super dealloc]; -} - -- (NSUInteger) count; { - if (count) - return (NSUInteger) count(proxyObject, countSel); - return [[self _representedObject] count]; -} - -- (id) objectAtIndex: (NSUInteger) index; { - if (objectAtIndex) - return objectAtIndex(proxyObject, objectAtIndexSel, index); - return [[self _representedObject] objectAtIndex: index]; -} - -- (void) addObject: (id) anObject; { - if (insert) - insert(proxyObject, insertSel, anObject, [self count]); - else { - id target = [[self _representedObject] mutableCopy]; - [target addObject: anObject]; - [self _setRepresentedObject: target]; - [target release]; - } -} - -- (void) insertObject: (id) anObject atIndex: (NSUInteger) index; { - if (insert) { - insert(proxyObject, insertSel, anObject, index); - } else { - id target = [[self _representedObject] mutableCopy]; - [target insertObject: anObject atIndex: index]; - [self _setRepresentedObject: target]; - [target release]; - } -} - -- (void) removeLastObject; { - if (remove) - remove(proxyObject, removeSel, [self count] - 1); - else { - id target = [[self _representedObject] mutableCopy]; - [target removeLastObject]; - [self _setRepresentedObject: target]; - [target release]; - } -} - -- (void) removeObjectAtIndex: (NSUInteger) index; { - if (remove) - remove(proxyObject, removeSel, index); - else { - id target = [[self _representedObject] mutableCopy]; - [target removeObjectAtIndex: index]; - [self _setRepresentedObject: target]; - [target release]; - } -} - -- (void) replaceObjectAtIndex: (NSUInteger) index withObject: (id) anObject; { - if (replace) - replace(proxyObject, replaceSel, index, anObject); - else { - id target = [[self _representedObject] mutableCopy]; - [target replaceObjectAtIndex: index withObject: anObject]; - [self _setRepresentedObject: target]; - [target release]; - } -} - -@end diff --git a/Foundation/NSKeyValueCoding/NSKVOInfoPerObject.h b/Foundation/NSKeyValueCoding/NSKVOInfoPerObject.h deleted file mode 100644 index af7ba3c7..00000000 --- a/Foundation/NSKeyValueCoding/NSKVOInfoPerObject.h +++ /dev/null @@ -1,22 +0,0 @@ -#import -#include - -@class NSMutableDictionary, NSMutableArray, NSArray, NSKeyObserver; - -@interface NSKVOInfoPerObject : NSObject { - pthread_mutex_t _lock; - NSMutableDictionary *_dictionary; -} - -- init; - -- (BOOL) isEmpty; - -- objectForKey: key; -- (void) setObject: object forKey: key; - -- (NSArray *) keyObserversForKey: (NSString *) key; -- (void) addKeyObserver: (NSKeyObserver *) keyObserver; -- (void) removeKeyObserver: (NSKeyObserver *) keyObserver; - -@end diff --git a/Foundation/NSKeyValueCoding/NSKVOInfoPerObject.m b/Foundation/NSKeyValueCoding/NSKVOInfoPerObject.m deleted file mode 100644 index 48765d7a..00000000 --- a/Foundation/NSKeyValueCoding/NSKVOInfoPerObject.m +++ /dev/null @@ -1,64 +0,0 @@ -#import "NSKVOInfoPerObject.h" -#import "NSKeyObserver.h" -#import "NSKeyPathObserver.h" -#import -#import - -@implementation NSKVOInfoPerObject - -- init { - _lock = (pthread_mutex_t) PTHREAD_MUTEX_INITIALIZER; - _dictionary = [[NSMutableDictionary allocWithZone: NULL] init]; - return self; -} - -- (void) dealloc { - [_dictionary release]; - [super dealloc]; -} - -- (BOOL) isEmpty { - return ([_dictionary count] == 0) ? YES : NO; -} - -- objectForKey: key { - return [_dictionary objectForKey: key]; -} - -- (void) setObject: object forKey: key { - [_dictionary setObject: object forKey: key]; -} - -- (NSArray *) keyObserversForKey: (NSString *) key { - return [_dictionary objectForKey: key]; -} - -- (void) addKeyObserver: (NSKeyObserver *) keyObserver { - NSString *key = [keyObserver key]; - NSMutableArray *observers = [_dictionary objectForKey: key]; - - if (observers == nil) { - observers = [NSMutableArray array]; - [_dictionary setObject: observers forKey: key]; - } - - [observers addObject: keyObserver]; -} - -- (void) removeKeyObserver: (NSKeyObserver *) keyObserver { - NSString *key = [[[keyObserver key] retain] - autorelease]; // do the retain/autorelease dance, because we just - // might release the key out from under us when the - // keyObserver is deallocated. - NSMutableArray *observers = [_dictionary objectForKey: key]; - - [observers removeObjectIdenticalTo: keyObserver]; - if ([observers count] == 0) - [_dictionary removeObjectForKey: key]; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"%@:%p %@", [self class], self, _dictionary]; -} -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyObserver.h b/Foundation/NSKeyValueCoding/NSKeyObserver.h deleted file mode 100644 index 30ab8310..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyObserver.h +++ /dev/null @@ -1,35 +0,0 @@ -#import - -@class NSKeyPathObserver, NSArray; - -@interface NSKeyObserver : NSObject { - id _object; - NSString *_key; - NSKeyPathObserver *_keyPathObserver; - NSString *_branchPath; - NSKeyObserver *_branchObserver; - NSArray *_dependantKeyObservers; - BOOL _isValid; -} - -- initWithObject: object - key: (NSString *) key - keyPathObserver: (NSKeyPathObserver *) keyPathObserver - restOfPath: (NSString *) restOfPath; - -- (BOOL) isValid; -- (void) invalidate; - -- object; -- (NSString *) key; -- (NSKeyPathObserver *) keyPathObserver; - -- (NSString *) restOfPath; - -- (NSKeyObserver *) restOfPathObserver; -- (void) setRestOfPathObserver: (NSKeyObserver *) keyObserver; - -- (NSArray *) dependantKeyObservers; -- (void) setDependantKeyObservers: (NSArray *) keyObservers; - -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyObserver.m b/Foundation/NSKeyValueCoding/NSKeyObserver.m deleted file mode 100644 index dfd1866c..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyObserver.m +++ /dev/null @@ -1,79 +0,0 @@ -#import "NSKeyObserver.h" -#import - -@implementation NSKeyObserver - -- initWithObject: object - key: (NSString *) key - keyPathObserver: (NSKeyPathObserver *) keyPathObserver - restOfPath: (NSString *) restOfPath -{ - _object = object; - _key = [key copy]; - _keyPathObserver = [keyPathObserver retain]; - _branchPath = [restOfPath copy]; - _isValid = YES; - return self; -} - -- (void) dealloc { - [_key release]; - [_keyPathObserver release]; - [_branchPath release]; - [_branchObserver release]; - [_dependantKeyObservers release]; - [super dealloc]; -} - -- (BOOL) isValid { - return _isValid; -} - -- (void) invalidate { - _isValid = NO; -} - -- object { - return _object; -} - -- (NSString *) key { - return _key; -} - -- (NSKeyPathObserver *) keyPathObserver { - return _keyPathObserver; -} - -- (NSString *) restOfPath { - return _branchPath; -} - -- (NSKeyObserver *) restOfPathObserver { - return _branchObserver; -} - -- (void) setRestOfPathObserver: (NSKeyObserver *) keyObserver { - keyObserver = [keyObserver retain]; - [_branchObserver release]; - _branchObserver = keyObserver; -} - -- (NSArray *) dependantKeyObservers { - return _dependantKeyObservers; -} - -- (void) setDependantKeyObservers: (NSArray *) keyObservers { - keyObservers = [keyObservers retain]; - - [_dependantKeyObservers release]; - _dependantKeyObservers = keyObservers; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@ %x _object: %@ _key: %@ _branchPath: %@>", - [self class], self, _object, _key, _branchPath]; -} - -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyPathObserver.h b/Foundation/NSKeyValueCoding/NSKeyPathObserver.h deleted file mode 100644 index d11df1dd..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyPathObserver.h +++ /dev/null @@ -1,36 +0,0 @@ -#import -#import - -@class NSMutableDictionary; - -@interface NSKeyPathObserver : NSObject { - id _object; - id _observer; - NSString *_keyPath; - NSKeyValueObservingOptions _options; - void *_context; - - NSInteger _willChangeCount; - NSMutableDictionary *_changeDictionary; -} - -- initWithObject: object - observer: observer - keyPath: (NSString *) keyPath - options: (NSKeyValueObservingOptions) options - context: (void *) context; - -- object; -- observer; -- (NSString *) keyPath; -- (NSKeyValueObservingOptions) options; -- (void *) context; - -- (BOOL) willChangeAlreadyChanging; -- (BOOL) didChangeAlreadyChanging; - -- (NSMutableDictionary *) changeDictionaryWithInfo: (NSDictionary *) info; -- (NSMutableDictionary *) changeDictionary; -- (void) clearChangeDictionary; - -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyPathObserver.m b/Foundation/NSKeyValueCoding/NSKeyPathObserver.m deleted file mode 100644 index 4d7aab15..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyPathObserver.m +++ /dev/null @@ -1,84 +0,0 @@ -#import "NSKeyPathObserver.h" -#import -#import - -@implementation NSKeyPathObserver - -- initWithObject: object - observer: observer - keyPath: (NSString *) keyPath - options: (NSKeyValueObservingOptions) options - context: (void *) context -{ - _object = object; - _observer = observer; - _keyPath = [keyPath copy]; - _options = options; - _context = context; - return self; -} - -- (void) dealloc { - [_keyPath release]; - [_changeDictionary release]; - [super dealloc]; -} - -- object { - return _object; -} - -- observer { - return _observer; -} - -- (NSString *) keyPath { - return _keyPath; -} - -- (NSKeyValueObservingOptions) options { - return _options; -} - -- (void *) context { - return _context; -} - -- (BOOL) willChangeAlreadyChanging { - _willChangeCount++; - - return (_willChangeCount > 1) ? YES : NO; -} - -- (BOOL) didChangeAlreadyChanging { - _willChangeCount--; - - return (_willChangeCount > 0) ? YES : NO; -} - -- (NSMutableDictionary *) changeDictionaryWithInfo: (NSDictionary *) info { - if (_changeDictionary == nil) - _changeDictionary = [[NSMutableDictionary alloc] init]; - else - [_changeDictionary removeAllObjects]; - - [_changeDictionary addEntriesFromDictionary: info]; - - return _changeDictionary; -} - -- (NSMutableDictionary *) changeDictionary { - return _changeDictionary; -} - -- (void) clearChangeDictionary { - [_changeDictionary release]; - _changeDictionary = nil; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@ %x _object: %@ _keypath: %@>", - [self class], self, _object, _keyPath]; -} - -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyValueCoding.h b/Foundation/NSKeyValueCoding/NSKeyValueCoding.h deleted file mode 100644 index 62c542ad..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyValueCoding.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2006-2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSDictionary, NSArray, NSError; - -FOUNDATION_EXPORT NSString *const NSUndefinedKeyException; - -@interface NSObject (KeyValueCoding) -+ (BOOL) accessInstanceVariablesDirectly; - -// primitive methods -- (id) valueForKey: (NSString *) key; -- (void) setValue: (id) value forKey: (NSString *) key; -- (BOOL) validateValue: (id *) ioValue - forKey: (NSString *) key - error: (NSError **) outError; - -// key path methods -- (id) valueForKeyPath: (NSString *) keyPath; -- (void) setValue: (id) value forKeyPath: (NSString *) keyPath; -- (BOOL) validateValue: (id *) ioValue - forKeyPath: (NSString *) keyPath - error: (NSError **) outError; - -// dictionary methods -- (NSDictionary *) dictionaryWithValuesForKeys: (NSArray *) keys; -- (void) setValuesForKeysWithDictionary: (NSDictionary *) keyedValues; - -// undefined keys etc. -- (id) valueForUndefinedKey: (NSString *) key; -- (void) setValue: (id) value forUndefinedKey: (NSString *) key; -- (void) setNilValueForKey: (id) key; - -- (id) mutableArrayValueForKey: (id) key; -- (id) mutableArrayValueForKeyPath: (id) keyPath; -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyValueCoding.m b/Foundation/NSKeyValueCoding/NSKeyValueCoding.m deleted file mode 100644 index dd9b4cd3..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyValueCoding.m +++ /dev/null @@ -1,503 +0,0 @@ -/* Copyright (c) 2006-2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include -#include -#include -#include -#include -#include - -#import "NSKVCMutableArray.h" -#import "NSKeyValueObserving-Private.h" -#import "NSString+KVCAdditions.h" - -NSString *const NSUndefinedKeyException = @"NSUnknownKeyException"; - -@implementation NSObject (KeyValueCoding) - -- (void) _demangleTypeEncoding: (const char *) type to: (char *) cleanType { - while (*type) { - if (*type == '"') { - type++; - while (*type && *type != '"') - type++; - type++; - } - while (isdigit(*type)) - type++; - *cleanType = *type; - type++; - cleanType++; - *cleanType = 0; - } -} - -- (id) _wrapValue: (void *) value ofType: (const char *) type { - char *cleanType = __builtin_alloca(strlen(type) + 1); - // strip offsets & quotes from type - [self _demangleTypeEncoding: type to: cleanType]; - - if (type[0] != '@' && strlen(cleanType) > 1) { - return [NSValue valueWithBytes: value objCType: cleanType]; - } - - switch (type[0]) { - case '@': - case '#': - return *(id *) value; - case 'i': - return [NSNumber numberWithInt: *(int *) value]; - case 'I': - return [NSNumber numberWithUnsignedInt: *(int *) value]; - case 'f': - return [NSNumber numberWithFloat: *(float *) value]; - case 'd': - return [NSNumber numberWithDouble: *(double *) value]; - case 's': - return [NSNumber numberWithShort: *(short *) value]; - case 'S': - return [NSNumber numberWithUnsignedShort: *(unsigned short *) value]; - case 'c': - return [NSNumber numberWithChar: *(char *) value]; - case 'C': - return [NSNumber numberWithUnsignedChar: *(unsigned char *) value]; - case 'q': - return [NSNumber numberWithLongLong: *(long long *) value]; - case 'Q': - return [NSNumber - numberWithUnsignedLongLong: *(unsigned long long *) value]; - default: - // FIX #warning some wrapping types unimplemented - [NSException - raise: NSInvalidArgumentException - format: @"FIXME: wrap value of type %s unimplemented for get", - type]; - return nil; - } -} - -- (BOOL) _setValue: (id) value - toBuffer: (void *) buffer - ofType: (const char *) type - shouldRetain: (BOOL) shouldRetain -{ - char *cleanType = __builtin_alloca(strlen(type) + 1); - [self _demangleTypeEncoding: type to: cleanType]; - - if (cleanType[0] != '@' && cleanType[0] != '#' && strlen(cleanType) > 1) { - if (strcmp([value objCType], cleanType)) { - NSLog(@"trying to set value of type %s for type %@", cleanType, - [value objCType]); - return NO; - } - [value getValue: buffer]; - return YES; - } - - switch (cleanType[0]) { - case '#': - shouldRetain = NO; // no need to retain classes - case '@': - if (shouldRetain) { - if ((*(id *) buffer) != value) { - [(*(id *) buffer) release]; - *(id *) buffer = [value retain]; - } - } else { - *(id *) buffer = value; - } - - return YES; - case 'i': - *(int *) buffer = [value intValue]; - return YES; - case 'I': - *(unsigned int *) buffer = [value unsignedIntValue]; - return YES; - case 'f': - *(float *) buffer = [value floatValue]; - return YES; - case 'd': - *(double *) buffer = [value doubleValue]; - return YES; - - case 'c': - *(char *) buffer = [value charValue]; - return YES; - case 'C': - *(unsigned char *) buffer = [value unsignedCharValue]; - return YES; - - case 'q': - *(long long *) buffer = [value longLongValue]; - return YES; - - case 'Q': - *(unsigned long long *) buffer = [value unsignedLongLongValue]; - return YES; - default: - // FIX #warning some wrapping types unimplemented - [NSException - raise: NSInvalidArgumentException - format: @"FIXME: wrap value of type %s unimplemented for set", - type]; - return NO; - } -} - -- (id) _wrapReturnValueForSelector: (SEL) sel { - id sig = [self methodSignatureForSelector: sel]; - const char *type = [sig methodReturnType]; - if (strcmp(type, "@") && strcmp(type, "#")) // neither object or class - { - id inv = [NSInvocation invocationWithMethodSignature: sig]; - [inv setSelector: sel]; - [inv setTarget: self]; - [inv invoke]; - - NSUInteger returnLength = [sig methodReturnLength]; - void *returnValue = __builtin_alloca(returnLength); - [inv getReturnValue: returnValue]; - - return [self _wrapValue: returnValue ofType: type]; - } - return [self performSelector: sel]; -} - -- (void) _setValue: (id) value withSelector: (SEL) sel fromKey: (id) key { - id sig = [self methodSignatureForSelector: sel]; - const char *type = [sig getArgumentTypeAtIndex: 2]; - if (strcmp(type, "@") && strcmp(type, "#")) // neither object or class - { - if (!value) { - // value is nil and accessor doesn't take object type - return [self setNilValueForKey: key]; - } - NSUInteger size, align; - NSInvocation *inv = [NSInvocation invocationWithMethodSignature: sig]; - [inv setSelector: sel]; - [inv setTarget: self]; - - NSGetSizeAndAlignment(type, &size, &align); - void *buffer = __builtin_alloca(size); - memset(buffer, 0, size); - [self _setValue: value toBuffer: buffer ofType: type shouldRetain: NO]; - - [inv setArgument: buffer atIndex: 2]; - - [inv invoke]; - return; - } - [self performSelector: sel withObject: value]; -} - -#pragma mark - -#pragma mark Primary methods - -- (id) valueForKey: (NSString *) key { - if (!key) { - id value = [self valueForUndefinedKey: nil]; - return value; - } - - const char *keyCString = [key UTF8String]; - SEL sel = sel_getUid(keyCString); - - // FIXME: getKey, _getKey, isKey, _isKey are missing - - if ([self respondsToSelector: sel]) { - id value = [self _wrapReturnValueForSelector: sel]; - return value; - } - - size_t keyCStringLength = strlen(keyCString); - char *selBuffer = __builtin_alloca(keyCStringLength + 5); - - char *keyname = __builtin_alloca(keyCStringLength + 1); - strcpy(keyname, keyCString); - -#define TRY_FORMAT(format) \ - sprintf(selBuffer, format, keyname); \ - sel = sel_getUid(selBuffer); \ - if ([self respondsToSelector: sel]) { \ - id value = [self _wrapReturnValueForSelector: sel]; \ - return value; \ - } - TRY_FORMAT("_%s"); - keyname[0] = toupper(keyname[0]); - TRY_FORMAT("is%s"); - TRY_FORMAT("_is%s"); - // TRY_FORMAT("get%s"); - // TRY_FORMAT("_get%s"); -#undef TRY_FORMAT - - if ([[self class] accessInstanceVariablesDirectly]) { - sprintf(selBuffer, "_%s", keyCString); - sel = sel_getUid(selBuffer); - - if ([self respondsToSelector: sel]) { - id value = [self _wrapReturnValueForSelector: sel]; - return value; - } - - Ivar ivar = class_getInstanceVariable([self class], selBuffer); - if (!ivar) { - ivar = class_getInstanceVariable([self class], keyCString); - } - - if (ivar) { - id value = [self _wrapValue: (void *) self + ivar_getOffset(ivar) - ofType: ivar_getTypeEncoding(ivar)]; - return value; - } - } - - id value = [self valueForUndefinedKey: key]; - return value; -} - -- (void) setValue: (id) value forKey: (NSString *) key { - NSUInteger cStringLength = [key length]; - char keyCString[cStringLength + 1]; - char uppercaseKeyCString[cStringLength + 1]; - char check[cStringLength + - 10]; // needs to accomodate key and set/_set: stuff - - [key getCString: keyCString]; - strcpy(uppercaseKeyCString, keyCString); - uppercaseKeyCString[0] = toupper(uppercaseKeyCString[0]); - - strcpy(check, "set"); - strcat(check, uppercaseKeyCString); - strcat(check, ":"); - - SEL sel = sel_getUid(check); - if ([self respondsToSelector: sel]) { - return [self _setValue: value withSelector: sel fromKey: key]; - } - - BOOL shouldNotify = - [[self class] automaticallyNotifiesObserversForKey: key] && - [self _hasObserverForKey: key]; - if (shouldNotify == YES) { - } - if ([[self class] accessInstanceVariablesDirectly]) { - // Check the _setXXX: method - strcpy(check, "_set"); - strcat(check, uppercaseKeyCString); - strcat(check, ":"); - sel = sel_getUid(check); - - if ([self respondsToSelector: sel]) { - return [self _setValue: value withSelector: sel fromKey: key]; - } - - strcpy(check, "_"); - strcat(check, keyCString); - Ivar ivar = class_getInstanceVariable([self class], check); - if (!ivar) { - strcpy(check, "_is"); - strcat(check, uppercaseKeyCString); - ivar = class_getInstanceVariable([self class], check); - } - if (!ivar) { - ivar = class_getInstanceVariable([self class], keyCString); - } - if (!ivar) { - strcpy(check, "is"); - strcat(check, uppercaseKeyCString); - ivar = class_getInstanceVariable([self class], check); - } - - if (ivar) { - if (shouldNotify) { - [self willChangeValueForKey: key]; - } - // if value is nil and ivar is not an object type - if (!value && ivar_getTypeEncoding(ivar)[0] != '@') { - [self setNilValueForKey: key]; - } else { - [self _setValue: value - toBuffer: (void *) self + ivar_getOffset(ivar) - ofType: ivar_getTypeEncoding(ivar) - shouldRetain: YES]; - } - if (shouldNotify) { - [self didChangeValueForKey: key]; - } - return; - } - } - - // Path of last resort - but still assume we're letting people know about - // changes - if (shouldNotify) { - [self willChangeValueForKey: key]; - } - [self setValue: value forUndefinedKey: key]; - if (shouldNotify) { - [self didChangeValueForKey: key]; - } -} - -- (BOOL) validateValue: (id *) ioValue - forKey: (NSString *) key - error: (NSError **) outError -{ - SEL sel = NSSelectorFromString([NSString - stringWithFormat: @"validate%@:error:", [key capitalizedString]]); - if ([self respondsToSelector: sel]) { - id inv = [NSInvocation invocationWithMethodSignature: - [self methodSignatureForSelector: sel]]; - [inv setSelector: sel]; - [inv setTarget: self]; - [inv setArgument: ioValue atIndex: 2]; - [inv setArgument: outError atIndex: 3]; - [inv invoke]; - BOOL ret; - [inv getReturnValue: &ret]; - return ret; - } - return YES; -} - -+ (BOOL) accessInstanceVariablesDirectly { - return YES; -} - -- valueForUndefinedKey: (NSString *) key { - [NSException raise: NSUndefinedKeyException - format: @"%@: trying to get undefined key '%@'", - [self className], key]; - return nil; -} - -- (void) setValue: (id) value forUndefinedKey: (NSString *) key { - [NSException raise: NSUndefinedKeyException - format: @"%@: trying to set undefined key '%@'", - [self className], key]; -} - -- (void) setNilValueForKey: key { - [NSException raise: @"NSInvalidArgumentException" - format: @"%@: trying to set nil value for key '%@'", - [self className], key]; -} - -- (id) valueForKeyPath: (NSString *) keyPath { - - NSString *firstPart, *rest; - [keyPath _KVC_partBeforeDot: &firstPart afterDot: &rest]; - - if (rest) { - return [[self valueForKeyPath: firstPart] valueForKeyPath: rest]; - } else { - return [self valueForKey: firstPart]; - } -} - -- (void) setValue: (id) value forKeyPath: (NSString *) keyPath { - - NSString *firstPart, *rest; - [keyPath _KVC_partBeforeDot: &firstPart afterDot: &rest]; - - if (rest) { - id firstPartObj = [self valueForKey: firstPart]; - [firstPartObj setValue: value forKeyPath: rest]; - } else { - [self setValue: value forKey: firstPart]; - } -} - -- (BOOL) validateValue: (id *) ioValue - forKeyPath: (NSString *) keyPath - error: (NSError **) outError -{ - id array = [[[keyPath componentsSeparatedByString: @"."] mutableCopy] - autorelease]; - id lastPathComponent = [array lastObject]; - [array removeObject: lastPathComponent]; - id en = [array objectEnumerator]; - id pathComponent; - id ret = self; - while ((pathComponent = [en nextObject]) && ret) { - ret = [ret valueForKey: pathComponent]; - } - - BOOL valid = [self validateValue: ioValue - forKey: lastPathComponent - error: outError]; - - return valid; -} - -- (NSDictionary *) dictionaryWithValuesForKeys: (NSArray *) keys { - id en = [keys objectEnumerator]; - id ret = [NSMutableDictionary dictionary]; - id key; - while ((key = [en nextObject])) { - id value = [self valueForKey: key]; - [ret setObject: value ? value : (id)[NSNull null] forKey: key]; - } - return ret; -} - -- (void) setValuesForKeysWithDictionary: (NSDictionary *) keyedValues { - id en = [keyedValues keyEnumerator]; - NSString *key; - NSNull *null = [NSNull null]; - while ((key = [en nextObject])) { - id value = [keyedValues objectForKey: key]; - [self setValue: value == null ? nil : value forKey: key]; - } -} - -- (void) takeValuesFromDictionary: (NSDictionary *) aDictionary { - for (id key in aDictionary) { - [self setValue: [aDictionary objectForKey: key] forKey: key]; - } -} - -- (id) mutableArrayValueForKey: (id) key { - return [[[NSKVCMutableArray alloc] initWithKey: key - forProxyObject: self] autorelease]; -} - -- (id) mutableArrayValueForKeyPath: (id) keyPath { - NSString *firstPart, *rest; - [keyPath _KVC_partBeforeDot: &firstPart afterDot: &rest]; - if (rest) - return [[self valueForKeyPath: firstPart] valueForKeyPath: rest]; - else - return [[[NSKVCMutableArray alloc] initWithKey: firstPart - forProxyObject: self] autorelease]; -} -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyValueObserving-Private.h b/Foundation/NSKeyValueCoding/NSKeyValueObserving-Private.h deleted file mode 100644 index aebe56a6..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyValueObserving-Private.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSObject (KVOSwizzeling) -- (void) _KVO_swizzle; -- (Class) _KVO_swizzledClass; -- (void) _willChangeValueForKey: (NSString *) key - changeOptions: (NSDictionary *) changeOptions; -- (void) _didChangeValueForKey: (NSString *) key - changeOptions: (NSDictionary *) ignored; -- (BOOL) _hasObserverForKey: (NSString *) key; -@end diff --git a/Foundation/NSKeyValueCoding/NSKeyValueObserving.h b/Foundation/NSKeyValueCoding/NSKeyValueObserving.h deleted file mode 100644 index 0807f971..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyValueObserving.h +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright (c) 2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -@class NSDictionary, NSSet; - -FOUNDATION_EXPORT NSString *const NSKeyValueChangeKindKey; -FOUNDATION_EXPORT NSString *const NSKeyValueChangeNewKey; -FOUNDATION_EXPORT NSString *const NSKeyValueChangeOldKey; -FOUNDATION_EXPORT NSString *const NSKeyValueChangeIndexesKey; -FOUNDATION_EXPORT NSString *const NSKeyValueChangeNotificationIsPriorKey; - -enum { - NSKeyValueObservingOptionNew = 0x01, - NSKeyValueObservingOptionOld = 0x02, - NSKeyValueObservingOptionInitial = 0x04, - NSKeyValueObservingOptionPrior = 0x08 -}; -typedef NSUInteger NSKeyValueObservingOptions; - -enum { - NSKeyValueChangeSetting = 1, - NSKeyValueChangeInsertion = 2, - NSKeyValueChangeRemoval = 3, - NSKeyValueChangeReplacement = 4, -}; -typedef NSUInteger NSKeyValueChange; - -enum { - NSKeyValueUnionSetMutation = 1, - NSKeyValueMinusSetMutation = 2, - NSKeyValueIntersectSetMutation = 3, - NSKeyValueSetSetMutation = 4 - -}; -typedef NSUInteger NSKeyValueSetMutationKind; - -@interface NSObject (NSKeyValueObserving) -+ (BOOL) automaticallyNotifiesObserversForKey: (NSString *) key; -+ (NSSet *) keyPathsForValuesAffectingValueForKey: (NSString *) key; -+ (void) setKeys: (NSArray *) keys - triggerChangeNotificationsForDependentKey: (NSString *) dependentKey; - -- (void) observeValueForKeyPath: (NSString *) keyPath - ofObject: (id) object - change: (NSDictionary *) changeDict - context: (void *) context; -- (void) addObserver: (id) observer - forKeyPath: (NSString *) keyPath - options: (NSKeyValueObservingOptions) options - context: (void *) context; -- (void) removeObserver: (id) observer forKeyPath: (NSString *) keyPath; - -- (void) willChangeValueForKey: (NSString *) key; -- (void) didChangeValueForKey: (NSString *) key; -- (void) willChange: (NSKeyValueChange) change - valuesAtIndexes: (NSIndexSet *) indexes - forKey: (NSString *) key; -- (void) didChange: (NSKeyValueChange) change - valuesAtIndexes: (NSIndexSet *) indexes - forKey: (NSString *) key; -- (void) willChangeValueForKey: (NSString *) key - withSetMutation: (NSKeyValueSetMutationKind) mutation - usingObjects: (NSSet *) objects; -- (void) didChangeValueForKey: (NSString *) key - withSetMutation: (NSKeyValueSetMutationKind) mutation - usingObjects: (NSSet *) objects; - -- (void) setObservationInfo: (void *) newInfo; -- (void *) observationInfo; -@end - -@interface NSArray (KeyValueObserving) -- (void) addObserver: (NSObject *) observer - toObjectsAtIndexes: (NSIndexSet *) indexes - forKeyPath: (NSString *) keyPath - options: (NSKeyValueObservingOptions) options - context: (void *) context; -- (void) removeObserver: (NSObject *) observer - fromObjectsAtIndexes: (NSIndexSet *) indexes - forKeyPath: (NSString *) keyPath; -@end - -@protocol NSKeyValueObserver -- (void) observeValueForKeyPath: (NSString *) keyPath - ofObject: (id) object - change: (NSDictionary *) change - context: (void *) context; -@end - -enum { - kNSKeyValueDebugLevel1 = 1, // public method calls - kNSKeyValueDebugLevel2, // some clarifying logging - kNSKeyValueDebugLevel3, // Most intimate function calls -}; - -FOUNDATION_EXPORT void NSDetermineKeyValueDebugLoggingLevel(); - -FOUNDATION_EXPORT int NSKeyValueDebugLogLevel; - -#define NSKeyValueDebugLog(level, format, args...) \ - NSDetermineKeyValueDebugLoggingLevel(); \ - if (level <= NSKeyValueDebugLogLevel) \ - NSLog(@"%d: %s line: %d | %@", level, __PRETTY_FUNCTION__, __LINE__, \ - [NSString stringWithFormat: format, ##args]) diff --git a/Foundation/NSKeyValueCoding/NSKeyValueObserving.m b/Foundation/NSKeyValueCoding/NSKeyValueObserving.m deleted file mode 100644 index 5d28f1ef..00000000 --- a/Foundation/NSKeyValueCoding/NSKeyValueObserving.m +++ /dev/null @@ -1,1422 +0,0 @@ -/* Copyright (c) 2007-2008 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#include -#import -#include -#include - -#import "NSKVOInfoPerObject.h" -#import "NSKeyObserver.h" -#import "NSKeyPathObserver.h" -#import "NSKeyValueObserving-Private.h" -#import "NSString+KVCAdditions.h" - -NSString *const NSKeyValueChangeKindKey = @"kind"; // do not change value -NSString *const NSKeyValueChangeNewKey = @"NSKeyValueChangeNewKey"; -NSString *const NSKeyValueChangeOldKey = @"NSKeyValueChangeOldKey"; -NSString *const NSKeyValueChangeIndexesKey = @"NSKeyValueChangeIndexesKey"; -NSString *const NSKeyValueChangeNotificationIsPriorKey = - @"NSKeyValueChangeNotificationIsPriorKey"; - -NSString *const _KVO_DependentKeysTriggeringChangeNotification = - @"_KVO_DependentKeysTriggeringChangeNotification"; -NSString *const _KVO_KeyPathsForValuesAffectingValueForKey = - @"_KVO_KeyPathsForValuesAffectingValueForKey"; - -static pthread_mutex_t kvoLock = PTHREAD_MUTEX_INITIALIZER; - -int NSKeyValueDebugLogLevel = 0; - -void NSDetermineKeyValueDebugLoggingLevel() { - static BOOL loggingLevelDetermined = NO; - if (loggingLevelDetermined == NO) { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - NSKeyValueDebugLogLevel = - [defaults integerForKey: @"NSKeyValueDebugLogLevel"]; - if (NSKeyValueDebugLogLevel > 0) { - NSLog(@"set NSKeyValueDebugLevel to: '%d'", - NSKeyValueDebugLogLevel); - } - [pool drain]; - loggingLevelDetermined = YES; - } -} - -@interface NSObject (KVOSettersForwardReferencs) -+ (NSDictionary *) _KVO_buildDependencyUnion; -@end - -@interface NSObject (KVCPrivateMethod) -- (void) _demangleTypeEncoding: (const char *) type to: (char *) cleanType; -@end - -@implementation NSObject (KeyValueObserving) - -static pthread_mutex_t masterObservationLock = PTHREAD_MUTEX_INITIALIZER; - -static inline NSMapTable *masterObservationInfo() { - static NSMapTable *observationInfos = NULL; - - if (observationInfos == NULL) - observationInfos = - NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, - NSNonOwnedPointerMapValueCallBacks, 0); - - return observationInfos; -} - -- (void *) observationInfo { - void *result; - - pthread_mutex_lock(&masterObservationLock); - - result = NSMapGet(masterObservationInfo(), self); - - pthread_mutex_unlock(&masterObservationLock); - - return result; -} - -- (void) setObservationInfo: (void *) info { - pthread_mutex_lock(&masterObservationLock); - - if (info == NULL) - NSMapRemove(masterObservationInfo(), self); - else - NSMapInsert(masterObservationInfo(), self, info); - - pthread_mutex_unlock(&masterObservationLock); -} - -+ (void *) observationInfo { - void *result; - - pthread_mutex_lock(&masterObservationLock); - - result = NSMapGet(masterObservationInfo(), self); - - pthread_mutex_unlock(&masterObservationLock); - - return result; -} - -+ (void) setObservationInfo: (void *) info { - pthread_mutex_lock(&masterObservationLock); - - if (info == NULL) - NSMapRemove(masterObservationInfo(), self); - else - NSMapInsert(masterObservationInfo(), self, info); - - pthread_mutex_unlock(&masterObservationLock); -} - -static void addKeyObserver(NSKeyObserver *keyObserver) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, @"addKeyObserver: %@", - keyObserver); - - id object = [keyObserver object]; - - [object _KVO_swizzle]; - - NSKVOInfoPerObject *observationInfo = [object observationInfo]; - - if (observationInfo == nil) { - observationInfo = [[NSKVOInfoPerObject allocWithZone: NULL] init]; - [object setObservationInfo: observationInfo]; - } - - [observationInfo addKeyObserver: keyObserver]; -} - -static void removeKeyObserver(NSKeyObserver *keyObserver) { - // NSKeyValueDebugLog(kNSKeyValueDebugLevel3,@"removeKeyObserver:%@",keyObserver); - - if (keyObserver == nil) - return; - - [keyObserver invalidate]; - - id object = [keyObserver object]; - NSKVOInfoPerObject *observationInfo = [object observationInfo]; - - [observationInfo removeKeyObserver: keyObserver]; - - if ([observationInfo isEmpty]) { - [object setObservationInfo: NULL]; - [observationInfo release]; - } -} - -static NSKeyObserver *keyObserverForObserverAndKeyPath(id object, id observer, - NSString *path) -{ - NSKVOInfoPerObject *observationInfo = [object observationInfo]; - NSString *restOfPath; - NSString *key = _NSKVOSplitKeyPath(path, &restOfPath); - - NSArray *observers = [observationInfo keyObserversForKey: key]; - - for (NSKeyObserver *check in observers) { - NSKeyPathObserver *keyPathObserver = [check keyPathObserver]; - - if ([keyPathObserver observer] == observer && - [[keyPathObserver keyPath] isEqualToString: path]) - return check; - } - - return nil; -} - -static NSKeyObserver * -addKeyPathObserverToObject(id object, NSString *path, - NSKeyPathObserver *keyPathObserver); - -static NSArray * -addKeyPathObserverToDependantPaths(id object, NSSet *dependentPaths, - NSKeyPathObserver *keyPathObserver) -{ - NSMutableArray *result = [NSMutableArray array]; - - for (NSString *path in dependentPaths) { - // Recursively walk the keypath setting up key/keyPath observer pairs - // for each dependentPath. - NSKeyObserver *check = - addKeyPathObserverToObject(object, path, keyPathObserver); - - if (check != nil) - [result addObject: check]; - } - - return result; -} - -static void addKeyObserverDependantsAndRestOfPath(NSKeyObserver *keyObserver) { - id object = [keyObserver object]; - NSString *key = [keyObserver key]; - NSString *restOfPath = [keyObserver restOfPath]; - NSKeyPathObserver *keyPathObserver = [keyObserver keyPathObserver]; - - NSArray *dependantObservers = addKeyPathObserverToDependantPaths( - object, [[object class] keyPathsForValuesAffectingValueForKey: key], - keyPathObserver); - - [keyObserver setDependantKeyObservers: dependantObservers]; - - if (restOfPath != nil) { - // Recursively walk the keypath setting up key/keyPath observer pairs - // for each link in the chain. [object valueForKey: key] makes sure the - // observer pair is associated with the correct object. - NSKeyObserver *restOfPathObserver = addKeyPathObserverToObject( - [object valueForKey: key], restOfPath, keyPathObserver); - - [keyObserver setRestOfPathObserver: restOfPathObserver]; - } -} - -static NSKeyObserver * -addKeyPathObserverToObject(id object, NSString *path, - NSKeyPathObserver *keyPathObserver) -{ - if (object == nil) - return nil; - - NSString *restOfPath; - NSString *key = _NSKVOSplitKeyPath(path, &restOfPath); - - if ([key hasPrefix: @"@"]) { - NSUnimplementedFunction(); - // FIXME: operator, ignore? - } - - NSKeyObserver *keyObserver = - [[[NSKeyObserver alloc] initWithObject: object - key: key - keyPathObserver: keyPathObserver - restOfPath: restOfPath] autorelease]; - - addKeyObserverDependantsAndRestOfPath(keyObserver); - - addKeyObserver(keyObserver); - - /* FIXME: unwind logic if an exception is encountered - */ - - return keyObserver; -} - -/* - * addObserver:forKeyPath:options:context: - * 1. Creates a keyPathObserver to track the designated keypath for self - * 2. Creates a keyObserver for the first key in the path and connects it to the - * freshly created keyPathObserver - * 3. Creates keyObserver and keyPathObservers for all dependent keys and the - * rest of the key path (which for the keyPath recursively calls this set of - * operations - but using the current value of the key in the keypath as - * the root object) - * 4. Adds the keyObserver to the object - which means - * 4.1 Swizzles object into a KVO capable class (if it's not already) - * 4.2 Creates and sets a NSKVOInfoPerObject (if one is not available already) - * onto the object 4.3 Adds the keyObserver to the info - */ - -- (void) addObserver: observer - forKeyPath: (NSString *) keyPath - options: (NSKeyValueObservingOptions) options - context: (void *) context -{ - - NSKeyValueDebugLog(kNSKeyValueDebugLevel1, - @"self: %@ observer: %@, keyPath: %@", self, observer, - keyPath); - - NSKeyPathObserver *keyPathObserver = - [[[NSKeyPathObserver alloc] initWithObject: self - observer: observer - keyPath: keyPath - options: options - context: context] autorelease]; - - addKeyPathObserverToObject(self, keyPath, keyPathObserver); - - if (options & NSKeyValueObservingOptionInitial) { - NSUnimplementedMethod(); -#if 0 -// this is wrong, should generate a clean notification - [self willChangeValueForKey:key]; - [self didChangeValueForKey:key]; -#endif - } - NSKeyValueDebugLog( - kNSKeyValueDebugLevel2, - @"self: %@ added keyPathObserver: %@ for observer: %@ keyPath: %@", - self, keyPathObserver, observer, keyPath); -} - -static void pruneKeyObserver(NSKeyObserver *keyObserver); - -static void pruneRestOfPathAndDependantObservers(NSKeyObserver *keyObserver) { - // NSLog(@"pruneRestOfPathAndDependantObservers %@",keyObserver); - pruneKeyObserver([keyObserver restOfPathObserver]); - - [keyObserver setRestOfPathObserver: nil]; - - for (NSKeyObserver *dep in [keyObserver dependantKeyObservers]) - pruneKeyObserver(dep); - - [keyObserver setDependantKeyObservers: nil]; -} - -static void pruneKeyObserver(NSKeyObserver *keyObserver) { - if (keyObserver == nil) { - return; - } - - pruneRestOfPathAndDependantObservers(keyObserver); - removeKeyObserver(keyObserver); -} - -- (void) removeObserver: observer forKeyPath: (NSString *) keyPath { - NSKeyObserver *keyObserver = - keyObserverForObserverAndKeyPath(self, observer, keyPath); - - pruneKeyObserver(keyObserver); -} - -static void willChangeValueForKey(id object, NSString *key, - NSDictionary *changeInfo) -{ - - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, @"object: %@, key: %@", object, - key); - - NSKVOInfoPerObject *observationInfo = [object observationInfo]; - - if (observationInfo == nil) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, - @"observationInfo is nil - so bailing"); - return; - } - - NSArray *keyObserversArray = - [NSArray arrayWithArray: [observationInfo keyObserversForKey: key]]; - NSInteger count = [keyObserversArray count]; - if (count > 0) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel2, - @"notifying %d observers of change to keyPath: %@ " - @"which are: %@", - count, key, keyObserversArray); - } - // Cocoa does notifications in this order, last to first - while (--count >= 0) { - NSKeyObserver *keyObserver = [keyObserversArray objectAtIndex: count]; - - if (![keyObserver isValid]) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, - @"skipping invalid keyObserver: %@", - keyObserver); - continue; - } - - NSKeyPathObserver *keyPathObserver = [keyObserver keyPathObserver]; - NSKeyValueObservingOptions observingOptions = [keyPathObserver options]; - - if ([keyPathObserver willChangeAlreadyChanging]) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, - @"skipping keyObserver: %@ as already changing", - keyObserver); - continue; - } - - id rootObject = [keyPathObserver object]; - id rootObserver = [keyPathObserver observer]; - NSString *rootKeyPath = [keyPathObserver keyPath]; - // unused - // void *rootContext=[keyPathObserver context]; - NSMutableDictionary *changeDictionary = - [keyPathObserver changeDictionaryWithInfo: changeInfo]; - - if (observingOptions & NSKeyValueObservingOptionOld && - ![changeDictionary objectForKey: NSKeyValueChangeOldKey]) { - NSIndexSet *idxs = - [changeInfo objectForKey: NSKeyValueChangeIndexesKey]; - - if (idxs == nil) - [changeDictionary - setValue: [rootObject valueForKeyPath: rootKeyPath] - forKey: NSKeyValueChangeOldKey]; - else { - // FIXME: this is wrong, the type of change will depend on the - // position in the key path - int type = [[changeDictionary - objectForKey: NSKeyValueChangeKindKey] intValue]; - - // for to-many relationships, oldvalue is only sensible for - // replace and remove - if (type == NSKeyValueChangeReplacement || - type == NSKeyValueChangeRemoval) - [changeDictionary - setValue: [[object mutableArrayValueForKeyPath: - rootKeyPath] - objectsAtIndexes: idxs] - forKey: NSKeyValueChangeOldKey]; - } - } - - if (observingOptions & NSKeyValueObservingOptionPrior) { - [changeDictionary - setObject: [NSNumber numberWithBool: YES] - forKey: NSKeyValueChangeNotificationIsPriorKey]; - - NSKeyValueDebugLog( - kNSKeyValueDebugLevel2, - @"informing observer: %@ prior to change: %@ inKeyPath: %@", - rootObserver, changeDictionary, rootKeyPath); - [rootObserver observeValueForKeyPath: rootKeyPath - ofObject: rootObject - change: changeDictionary - context: [keyPathObserver context]]; - - [changeDictionary - removeObjectForKey: NSKeyValueChangeNotificationIsPriorKey]; - } - - pruneRestOfPathAndDependantObservers(keyObserver); - } -} - -- (BOOL) _hasObserverForKey: (NSString *) key { - NSKVOInfoPerObject *observationInfo = [self observationInfo]; - if (observationInfo == nil) { - return NO; - } - NSArray *keyObserversArray = [observationInfo keyObserversForKey: key]; - NSInteger count = [keyObserversArray count]; - return count > 0; -} - -- (void) willChangeValueForKey: (NSString *) key { - NSMutableDictionary *changeInfo = - [[NSMutableDictionary allocWithZone: NULL] init]; - [changeInfo setObject: [NSNumber numberWithInt: NSKeyValueChangeSetting] - forKey: NSKeyValueChangeKindKey]; - willChangeValueForKey(self, key, changeInfo); - [changeInfo release]; -} - -- (void) willChange: (NSKeyValueChange) change - valuesAtIndexes: (NSIndexSet *) indexes - forKey: (NSString *) key -{ - NSMutableDictionary *changeInfo = - [[NSMutableDictionary allocWithZone: NULL] init]; - - [changeInfo setObject: [NSNumber numberWithUnsignedInteger: change] - forKey: NSKeyValueChangeKindKey]; - [changeInfo setObject: indexes forKey: NSKeyValueChangeIndexesKey]; - - willChangeValueForKey(self, key, changeInfo); - - [changeInfo release]; -} - -- (void) willChangeValueForKey: (NSString *) key - withSetMutation: (NSKeyValueSetMutationKind) mutation - usingObjects: (NSSet *) objects -{ - NSMutableSet *changeSet; - NSMutableDictionary *changeInfo = - [[NSMutableDictionary allocWithZone: NULL] init]; - - switch (mutation) { - case NSKeyValueUnionSetMutation: - changeSet = [objects mutableCopy]; - [changeSet minusSet: [self valueForKey: key]]; - [changeInfo setValue: changeSet forKey: NSKeyValueChangeNewKey]; - [changeInfo setValue: [NSSet set] forKey: NSKeyValueChangeOldKey]; - [changeSet release]; - break; - case NSKeyValueMinusSetMutation: - changeSet = [objects mutableCopy]; - [changeSet intersectSet: [self valueForKey: key]]; - [changeInfo setValue: changeSet forKey: NSKeyValueChangeOldKey]; - [changeInfo setValue: [NSSet set] forKey: NSKeyValueChangeNewKey]; - [changeSet release]; - break; - case NSKeyValueIntersectSetMutation: - changeSet = [[self valueForKey: key] mutableCopy]; - [changeSet minusSet: objects]; - [changeInfo setValue: changeSet forKey: NSKeyValueChangeOldKey]; - [changeInfo setValue: [NSSet set] forKey: NSKeyValueChangeNewKey]; - [changeSet release]; - break; - case NSKeyValueSetSetMutation: - [changeInfo setValue: [self valueForKey: key] - forKey: NSKeyValueChangeOldKey]; - [changeInfo setValue: objects forKey: NSKeyValueChangeNewKey]; - break; - } - - willChangeValueForKey(self, key, changeInfo); - - [changeInfo release]; -} - -static void didChangeValueForKey(id object, NSString *key) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, @"object: %@, key: %@", object, - key); - - NSKVOInfoPerObject *observationInfo = [object observationInfo]; - - if (observationInfo == nil) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, - @"observationInfo is nil - so bailing"); - return; - } - - NSArray *keyObserversArray = - [NSArray arrayWithArray: [observationInfo keyObserversForKey: key]]; - NSInteger count = [keyObserversArray count]; - if (count > 0) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel2, - @"notifying %d observers of change to keyPath: %@ " - @"which are: %@", - count, key, keyObserversArray); - } - - // Cocoa does notifications in this order, last to first - while (--count >= 0) { - NSKeyObserver *keyObserver = [keyObserversArray objectAtIndex: count]; - - if (![keyObserver isValid]) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, - @"skipping invalid keyObserver: %@", - keyObserver); - continue; - } - - NSKeyPathObserver *keyPathObserver = [keyObserver keyPathObserver]; - NSKeyValueObservingOptions observerOptions = [keyPathObserver options]; - - if ([keyPathObserver didChangeAlreadyChanging]) { - NSKeyValueDebugLog(kNSKeyValueDebugLevel3, - @"skipping keyObserver: %@ as already changing", - keyObserver); - continue; - } - - id rootObject = [keyPathObserver object]; - id rootObserver = [keyPathObserver observer]; - NSString *rootKeyPath = [keyPathObserver keyPath]; - // unused - // void *rootContext=[keyPathObserver context]; - NSMutableDictionary *changeDictionary = - [keyPathObserver changeDictionary]; - - if (observerOptions & NSKeyValueObservingOptionNew && - ![changeDictionary objectForKey: NSKeyValueChangeNewKey]) { - NSIndexSet *idxs = - [changeDictionary objectForKey: NSKeyValueChangeIndexesKey]; - - if (idxs == nil) - [changeDictionary - setValue: [rootObject valueForKeyPath: rootKeyPath] - forKey: NSKeyValueChangeNewKey]; - else { - int type = [[changeDictionary - objectForKey: NSKeyValueChangeKindKey] intValue]; - // for to-many relationships, newvalue is only sensible for - // replace and insert - - if (type == NSKeyValueChangeReplacement || - type == NSKeyValueChangeInsertion) - [changeDictionary - setValue: [[rootObject mutableArrayValueForKeyPath: - rootKeyPath] - objectsAtIndexes: idxs] - forKey: NSKeyValueChangeNewKey]; - } - } - - addKeyObserverDependantsAndRestOfPath(keyObserver); - - NSKeyValueDebugLog( - kNSKeyValueDebugLevel2, - @"informing observer: %@ after change: %@ inKeyPath: %@", - rootObserver, changeDictionary, rootKeyPath); - [rootObserver observeValueForKeyPath: rootKeyPath - ofObject: rootObject - change: changeDictionary - context: [keyPathObserver context]]; - [keyPathObserver clearChangeDictionary]; - } -} - -- (void) didChangeValueForKey: (NSString *) key { - didChangeValueForKey(self, key); -} - -- (void) didChange: (NSKeyValueChange) change - valuesAtIndexes: (NSIndexSet *) indexes - forKey: (NSString *) key -{ - didChangeValueForKey(self, key); -} - -- (void) didChangeValueForKey: (NSString *) key - withSetMutation: (NSKeyValueSetMutationKind) mutation - usingObjects: (NSSet *) objects -{ - didChangeValueForKey(self, key); -} - -+ (void) setKeys: (NSArray *) keys - triggerChangeNotificationsForDependentKey: (NSString *) dependentKey -{ - NSKVOInfoPerObject *observationInfo = [self observationInfo]; - - if (!observationInfo) { - observationInfo = [[NSKVOInfoPerObject allocWithZone: NULL] init]; - [self setObservationInfo: observationInfo]; - } - - NSMutableDictionary *dependencies = [observationInfo - objectForKey: _KVO_DependentKeysTriggeringChangeNotification]; - if (!dependencies) { - dependencies = [NSMutableDictionary dictionary]; - [observationInfo - setObject: dependencies - forKey: _KVO_DependentKeysTriggeringChangeNotification]; - } - - for (id key in keys) { - NSMutableSet *allDependencies = [dependencies objectForKey: key]; - - if (!allDependencies) { - allDependencies = [NSMutableSet new]; - [dependencies setObject: allDependencies forKey: key]; - [allDependencies release]; - } - [allDependencies addObject: dependentKey]; - } -} - -static SEL selectorForKeyPathsForValuesAffecting(NSString *key) { - const char *prefix = "keyPathsForValuesAffecting"; - char keyCString[[key length] + 1]; - char buffer[strlen(prefix) + strlen(keyCString) + 1]; - - [key getCString: keyCString]; - keyCString[0] = toupper(keyCString[0]); - strcpy(buffer, prefix); - strcat(buffer, keyCString); - - SEL result = sel_getUid(buffer); - - return result; -} - -+ (NSSet *) keyPathsForValuesAffectingValueForKey: (NSString *) key { - SEL sel = selectorForKeyPathsForValuesAffecting(key); - NSSet *result = nil; - - if ([self respondsToSelector: sel]) - result = [self performSelector: sel]; - else { - NSKVOInfoPerObject *observationInfo = [self observationInfo]; - NSDictionary *keyPathsByKey = [observationInfo - objectForKey: _KVO_KeyPathsForValuesAffectingValueForKey]; - - if (keyPathsByKey == nil) { - keyPathsByKey = [self _KVO_buildDependencyUnion]; - } - - result = [keyPathsByKey objectForKey: key]; - } - - return result; -} -@end - -/* The following functions define suitable setters and getters which - call willChangeValueForKey: and didChangeValueForKey: on their superclass - _KVO_swizzle changes the class of its object to a subclass which overrides - each setter with a suitable KVO-Notifying one. -*/ - -// selector for change type -#define CHANGE_SELECTOR(type) KVO_notifying_change_##type: - -// definition for change type -#define CHANGE_DEFINE(type) -(void) KVO_notifying_change_##type : (type) value - -// original selector called by swizzled selector -#define ORIGINAL_SELECTOR(name) \ - NSSelectorFromString([NSString stringWithFormat: @"_original_%@", name]) - -// declaration of change function: -// extracts key from selector called, calls original function -#define CHANGE_DECLARATION(type) \ - CHANGE_DEFINE(type) { \ - const char *origName = sel_getName(_cmd); \ - size_t selLen = strlen(origName); \ - char *sel = __builtin_alloca(selLen + 1); \ - strcpy(sel, origName); \ - sel[selLen - 1] = '\0'; \ - if (sel[0] == '_') \ - sel += 4; \ - else \ - sel += 3; \ - sel[0] = tolower(sel[0]); \ - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; \ - BOOL shouldNotify = [self _hasObserverForKey: key]; \ - if (shouldNotify) \ - [self willChangeValueForKey: key]; \ - typedef id (*sender)(id obj, SEL selector, type value); \ - sender implementation = \ - (sender) [[self superclass] instanceMethodForSelector: _cmd]; \ - (void) *implementation(self, _cmd, value); \ - if (shouldNotify) \ - [self didChangeValueForKey: key]; \ - [key release]; \ - } - -// FIX: add more types -@interface NSObject (KVOSetters) -CHANGE_DEFINE(float); -CHANGE_DEFINE(double); -CHANGE_DEFINE(id); -CHANGE_DEFINE(int); -CHANGE_DEFINE(NSSize); -CHANGE_DEFINE(NSPoint); -CHANGE_DEFINE(NSRect); -CHANGE_DEFINE(NSRange); -CHANGE_DEFINE(char); -CHANGE_DEFINE(long); -CHANGE_DEFINE(SEL); -@end - -@implementation NSObject (KVOSetters) -CHANGE_DECLARATION(float) -CHANGE_DECLARATION(double) -CHANGE_DECLARATION(id) -CHANGE_DECLARATION(int) -CHANGE_DECLARATION(NSSize) -CHANGE_DECLARATION(NSPoint) -CHANGE_DECLARATION(NSRect) -CHANGE_DECLARATION(NSRange) -CHANGE_DECLARATION(char) -CHANGE_DECLARATION(long) -CHANGE_DECLARATION(SEL) - -- (void) KVO_notifying_change_setObject: (id) object forKey: (NSString *) key { - BOOL shouldNotify = [self _hasObserverForKey: key]; - if (shouldNotify) { - [self willChangeValueForKey: key]; - } - typedef id (*sender)(id obj, SEL selector, id object, id key); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - implementation(self, _cmd, object, key); - if (shouldNotify) { - [self didChangeValueForKey: key]; - } -} - -- (void) KVO_notifying_change_removeObjectForKey: (NSString *) key { - BOOL shouldNotify = [self _hasObserverForKey: key]; - if (shouldNotify) { - [self willChangeValueForKey: key]; - } - typedef id (*sender)(id obj, SEL selector, id key); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - implementation(self, _cmd, key); - if (shouldNotify) { - [self didChangeValueForKey: key]; - } -} - -- (void) KVO_notifying_change_insertObject: (id) object - inKeyAtIndex: (NSInteger) index -{ - const char *origName = sel_getName(_cmd); - - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("insertObject:in"); - sel[strlen(sel) - strlen("AtIndex:") + 1] = '\0'; - - sel[0] = tolower(sel[0]); - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - - [self willChange: NSKeyValueChangeInsertion - valuesAtIndexes: [NSIndexSet indexSetWithIndex: index] - forKey: key]; - typedef id (*sender)(id obj, SEL selector, id value, NSInteger index); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, object, index); - [self didChange: NSKeyValueChangeInsertion - valuesAtIndexes: [NSIndexSet indexSetWithIndex: index] - forKey: key]; - [key release]; -} - -- (void) KVO_notifying_change_insertKey: (NSArray *) objects - atIndexes: (NSIndexSet *) indexes -{ - const char *origName = sel_getName(_cmd); - - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("insert"); - sel[strlen(sel) - strlen(":atIndexes:") + 1] = '\0'; - - sel[0] = tolower(sel[0]); - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - - [self willChange: NSKeyValueChangeInsertion - valuesAtIndexes: indexes - forKey: key]; - typedef id (*sender)(id obj, SEL selector, NSArray * value, - NSIndexSet * indexes); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, objects, indexes); - [self didChange: NSKeyValueChangeInsertion - valuesAtIndexes: indexes - forKey: key]; - [key release]; -} - -- (void) KVO_notifying_change_addKeyObject: (id) object { - const char *origName = sel_getName(_cmd); - - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("add"); - sel[strlen(sel) - strlen("Object:") + 1] = '\0'; - - char *countSelName = __builtin_alloca(strlen(sel) + strlen("countOf") + 1); - strcpy(countSelName, "countOf"); - strcat(countSelName, sel); - - NSUInteger idx = - (NSUInteger) [self performSelector: sel_getUid(countSelName)]; - - sel[0] = tolower(sel[0]); - - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - [self willChange: NSKeyValueChangeInsertion - valuesAtIndexes: [NSIndexSet indexSetWithIndex: idx] - forKey: key]; - typedef id (*sender)(id obj, SEL selector, id value); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, object); - [self didChange: NSKeyValueChangeInsertion - valuesAtIndexes: [NSIndexSet indexSetWithIndex: idx] - forKey: key]; - [key release]; -} - -- (void) KVO_notifying_change_addKey: (NSSet *) objects { - const char *origName = sel_getName(_cmd); - - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("add"); - sel[strlen(sel) - strlen(":") + 1] = '\0'; - - sel[0] = tolower(sel[0]); - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - - [self willChangeValueForKey: key - withSetMutation: NSKeyValueUnionSetMutation - usingObjects: objects]; - typedef id (*sender)(id obj, SEL selector, NSSet * objects); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, objects); - [self didChangeValueForKey: key - withSetMutation: NSKeyValueUnionSetMutation - usingObjects: objects]; - [key release]; -} - -- (void) KVO_notifying_change_removeKeyObject: (id) object { - const char *origName = sel_getName(_cmd); - - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("remove"); - sel[strlen(sel) - strlen("Object:") + 1] = '\0'; - - char *countSelName = __builtin_alloca(strlen(sel) + strlen("countOf") + 1); - strcpy(countSelName, "countOf"); - strcat(countSelName, sel); - - NSUInteger idx = - (NSUInteger) [self performSelector: sel_getUid(countSelName)]; - - sel[0] = tolower(sel[0]); - - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - [self willChange: NSKeyValueChangeRemoval - valuesAtIndexes: [NSIndexSet indexSetWithIndex: idx] - forKey: key]; - typedef id (*sender)(id obj, SEL selector, id value); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, object); - [self didChange: NSKeyValueChangeRemoval - valuesAtIndexes: [NSIndexSet indexSetWithIndex: idx] - forKey: key]; - [key release]; -} - -- (void) KVO_notifying_change_removeKey: (NSSet *) objects { - const char *origName = sel_getName(_cmd); - - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("remove"); - sel[strlen(sel) - strlen(":") + 1] = '\0'; - - sel[0] = tolower(sel[0]); - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - - [self willChangeValueForKey: key - withSetMutation: NSKeyValueMinusSetMutation - usingObjects: objects]; - typedef id (*sender)(id obj, SEL selector, NSSet * objects); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, objects); - [self didChangeValueForKey: key - withSetMutation: NSKeyValueMinusSetMutation - usingObjects: objects]; - [key release]; -} - -- (void) KVO_notifying_change_removeObjectFromKeyAtIndex: (int) index { - const char *origName = sel_getName(_cmd); - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("removeObjectFrom"); - sel[strlen(sel) - strlen("AtIndex:") + 1] = '\0'; - - sel[0] = tolower(sel[0]); - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - [self willChange: NSKeyValueChangeRemoval - valuesAtIndexes: [NSIndexSet indexSetWithIndex: index] - forKey: key]; - typedef id (*sender)(id obj, SEL selector, int index); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, index); - [self didChange: NSKeyValueChangeRemoval - valuesAtIndexes: [NSIndexSet indexSetWithIndex: index] - forKey: key]; - [key release]; -} - -- (void) KVO_notifying_change_removeKeyAtIndexes: (NSIndexSet *) indexes { - const char *origName = sel_getName(_cmd); - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("remove"); - sel[strlen(sel) - strlen("AtIndexes:") + 1] = '\0'; - - sel[0] = tolower(sel[0]); - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - [self willChange: NSKeyValueChangeRemoval - valuesAtIndexes: indexes - forKey: key]; - typedef id (*sender)(id obj, SEL selector, NSIndexSet * indexes); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, indexes); - [self didChange: NSKeyValueChangeRemoval - valuesAtIndexes: indexes - forKey: key]; - [key release]; -} - -- (void) KVO_notifying_change_replaceObjectInKeyAtIndex: (int) index - withObject: (id) object -{ - const char *origName = sel_getName(_cmd); - size_t selLen = strlen(origName); - char *sel = __builtin_alloca(selLen + 1); - strcpy(sel, origName); - sel[selLen - 1] = '\0'; - sel += strlen("replaceObjectIn"); - sel[strlen(sel) - strlen("AtIndex:WithObject:") + 1] = '\0'; - sel[0] = tolower(sel[0]); - - NSString *key = [[NSString allocWithZone: NULL] initWithCString: sel]; - [self willChange: NSKeyValueChangeReplacement - valuesAtIndexes: [NSIndexSet indexSetWithIndex: index] - forKey: key]; - typedef id (*sender)(id obj, SEL selector, int index, id object); - sender implementation = - (sender) [[self superclass] instanceMethodForSelector: _cmd]; - (void) *implementation(self, _cmd, index, object); - [self didChange: NSKeyValueChangeReplacement - valuesAtIndexes: [NSIndexSet indexSetWithIndex: index] - forKey: key]; - [key release]; -} - -- (id) _KVO_className { - return [NSString stringWithCString: class_getName([self class]) + - strlen("KVONotifying_")]; -} - -- (Class) _KVO_class { - return class_getSuperclass([self class]); -} - -- (Class) _KVO_classForCoder { - return class_getSuperclass([self class]); -} - -// This method gathers dependent keys from all superclasses and merges them -// together -+ (NSDictionary *) _KVO_buildDependencyUnion { - NSKVOInfoPerObject *observationInfo = [self observationInfo]; - - if (!observationInfo) { - observationInfo = [[NSKVOInfoPerObject allocWithZone: NULL] init]; - [self setObservationInfo: observationInfo]; - } - - NSMutableDictionary *keyPathsByKey = [[NSMutableDictionary alloc] init]; - - id class = self; - while (class != [NSObject class]) { - NSDictionary *classDependents = [( - NSDictionary *) [class observationInfo] - objectForKey: _KVO_DependentKeysTriggeringChangeNotification]; - - for (id key in [classDependents allKeys]) { - for (id value in [classDependents objectForKey: key]) { - NSMutableSet *pathSet = [keyPathsByKey objectForKey: value]; - if (!pathSet) { - pathSet = [NSMutableSet set]; - [keyPathsByKey setObject: pathSet forKey: value]; - } - [pathSet addObject: key]; - } - } - - class = [class superclass]; - } - [observationInfo setObject: keyPathsByKey - forKey: _KVO_KeyPathsForValuesAffectingValueForKey]; - [keyPathsByKey release]; - - return keyPathsByKey; -} - -- (void) _KVO_swizzle { - NSString *className = [self className]; - if ([className hasPrefix: @"KVONotifying_"]) - return; // this class is already swizzled - pthread_mutex_lock(&kvoLock); - [self class] = [self _KVO_swizzledClass]; - pthread_mutex_unlock(&kvoLock); -} - -static BOOL methodIsAutoNotifyingSetter(Class class, const char *methodCString) -{ - size_t cStringLength = strlen(methodCString), keyCStringLength = 0; - char keyCString[cStringLength + 1]; - enum { - STATE_START, - STATE_UNDERSCORE, - STATE_S, - STATE_E, - STATE_T, - STATE_UNTILCOLON, - } state = STATE_START; - - for (; *methodCString != '\0'; methodCString++) { - - switch (state) { - - case STATE_START: - if (*methodCString == 's') - state = STATE_S; - else if (*methodCString == '_') - state = STATE_UNDERSCORE; - else - return NO; - break; - - case STATE_UNDERSCORE: - if (*methodCString == 's') - state = STATE_S; - else - return NO; - break; - - case STATE_S: - if (*methodCString == 'e') - state = STATE_E; - else - return NO; - break; - - case STATE_E: - if (*methodCString == 't') - state = STATE_T; - else - return NO; - break; - - case STATE_T: - if (*methodCString == ':') - return NO; - keyCString[keyCStringLength++] = tolower(*methodCString); - state = STATE_UNTILCOLON; - break; - - case STATE_UNTILCOLON: - if (*methodCString != ':') - keyCString[keyCStringLength++] = *methodCString; - break; - } - } - if (keyCStringLength == 0) - return NO; - - NSString *keyName = [[NSString alloc] initWithCString: keyCString - length: keyCStringLength]; - - BOOL result = [class automaticallyNotifiesObserversForKey: keyName]; - [keyName release]; - - return result; -} - -- (Class) _KVO_swizzledClass { - // find swizzled class - const char *swizzledName = [[NSString - stringWithFormat: @"KVONotifying_%@", [self className]] UTF8String]; - Class swizzledClass = objc_lookUpClass(swizzledName); - - if (swizzledClass) { - return swizzledClass; - } - - // swizzled class doesn't exist; create - swizzledClass = objc_allocateClassPair([self class], swizzledName, 0); - if (!swizzledClass) { - [NSException - raise: @"NSClassCreationException" - format: @"couldn't swizzle class %@ for KVO", [self className]]; - } - - // add KVO-Observing methods - // override className so it returns the original class name - Method className = - class_getInstanceMethod([self class], @selector(_KVO_className)); - Method class = class_getInstanceMethod([self class], @selector(_KVO_class)); - Method classForCoder = class_getInstanceMethod([self class], @selector - (_KVO_classForCoder)); - IMP classNameImp = method_getImplementation(className); - IMP classImp = method_getImplementation(class); - IMP classForCoderImp = method_getImplementation(classForCoder); - const char *classNameTypes = method_getTypeEncoding(className); - const char *classTypes = method_getTypeEncoding(class); - const char *classForCoderTypes = method_getTypeEncoding(classForCoder); - - class_addMethod(swizzledClass, @selector(className), classNameImp, - classNameTypes); - class_addMethod(swizzledClass, @selector(class), classImp, classTypes); - class_addMethod(swizzledClass, @selector(classForCoder), classForCoderImp, - classForCoderTypes); - - Class currentClass = [self class]; - - for (; currentClass && class_getSuperclass(currentClass) != currentClass; - currentClass = class_getSuperclass(currentClass)) { - unsigned int count; - Method *methods = class_copyMethodList(currentClass, &count); - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - for (int i = 0; i < count; ++i) { - Method method = methods[i]; - SEL sel = method_getName(method); - const char *methodCString = sel_getName(sel); - NSUInteger numberOfArguments = method_getNumberOfArguments(method); - SEL kvoSelector = 0; - - // current method is a setter? - if (numberOfArguments == 3 && - methodIsAutoNotifyingSetter([self class], methodCString)) { - NSMethodSignature *signature = - [self methodSignatureForSelector: sel]; - const char *firstParameterType = - [signature getArgumentTypeAtIndex: 2]; - const char *returnType = [signature methodReturnType]; - - char *cleanFirstParameterType = - __builtin_alloca(strlen(firstParameterType) + 1); - [self _demangleTypeEncoding: firstParameterType - to: cleanFirstParameterType]; - -/* check for correct type: either perfect match -or primitive signed type matching unsigned type -(i.e. tolower(@encode(unsigned long)[0])==@encode(long)[0]) -*/ -#define CHECK_AND_ASSIGN(a) \ - if (!strcmp(cleanFirstParameterType, @encode(a)) || \ - (strlen(@encode(a)) == 1 && strlen(cleanFirstParameterType) == 1 && \ - tolower(cleanFirstParameterType[0]) == @encode(a)[0])) { \ - kvoSelector = @selector(CHANGE_SELECTOR(a)); \ - } - // FIX: add more types - CHECK_AND_ASSIGN(id); - CHECK_AND_ASSIGN(float); - CHECK_AND_ASSIGN(double); - CHECK_AND_ASSIGN(int); - CHECK_AND_ASSIGN(NSSize); - CHECK_AND_ASSIGN(NSPoint); - CHECK_AND_ASSIGN(NSRect); - CHECK_AND_ASSIGN(NSRange); - CHECK_AND_ASSIGN(char); - CHECK_AND_ASSIGN(long); - CHECK_AND_ASSIGN(SEL); -#undef CHECK_AND_ASSIGN - - if (kvoSelector == 0 && NSDebugEnabled) { - NSLog(@"NSDebugEnabled type %s not defined in %s:%i " - @"(selector %s on class %@)", - cleanFirstParameterType, __FILE__, __LINE__, - methodCString, [self className]); - } - if (returnType[0] != _C_VOID) { - kvoSelector = 0; - } - } - - // long selectors - if (kvoSelector == 0) { - NSString *methodName = NSStringFromSelector(sel); - if (numberOfArguments == 4 && - [methodName - _KVC_isSetterForSelectorNameStartingWith: - @"insertObject:in" - endingWith: @"AtIndex" - @":"]) { - kvoSelector = @selector(KVO_notifying_change_insertObject: - inKeyAtIndex:); - } else if ( - numberOfArguments == 3 && - [methodName - _KVC_isSetterForSelectorNameStartingWith: - @"removeObjectFrom" - endingWith: - @"AtIndex" - @":"]) { - kvoSelector = @selector - (KVO_notifying_change_removeObjectFromKeyAtIndex:); - } else if ( - numberOfArguments == 4 && - [methodName - _KVC_isSetterForSelectorNameStartingWith: - @"replaceObjectIn" - endingWith: - @"AtIndex" - @":" - @"withObj" - @"ect" - @":"]) { - kvoSelector = @selector - (KVO_notifying_change_replaceObjectInKeyAtIndex: - withObject:); - } else if ( - numberOfArguments == 4 && - [methodName - _KVC_isSetterForSelectorNameStartingWith: - @"insert" - endingWith: - @":atInde" - @"xes" - @":"]) { - kvoSelector = @selector(KVO_notifying_change_insertKey: - atIndexes:); - } else if ( - numberOfArguments == 3 && - [methodName - _KVC_isSetterForSelectorNameStartingWith: - @"remove" - endingWith: - @"AtIndex" - @"es:"]) { - kvoSelector = - @selector(KVO_notifying_change_removeKeyAtIndexes:); - } else if ( - numberOfArguments == 3 && - [methodName - _KVC_isSetterForSelectorNameStartingWith: - @"remove" - endingWith: - @"Object" - @":"]) { - kvoSelector = - @selector(KVO_notifying_change_removeKeyObject:); - } else if ( - numberOfArguments == 3 && - [methodName - _KVC_isSetterForSelectorNameStartingWith: @"add" - endingWith: - @"Object" - @":"]) { - kvoSelector = @selector(KVO_notifying_change_addKeyObject:); -#if 0 -// Disabled - this is wrong - this is expecting any addXXX: removeXXX: methods to play with NSSet - } else if (numberOfArguments == 3 && [methodName _KVC_isSetterForSelectorNameStartingWith:@"remove" endingWith:@":"]) { - kvoSelector = @selector(KVO_notifying_change_removeKey:); - } else if (numberOfArguments == 3 && [methodName _KVC_isSetterForSelectorNameStartingWith:@"add" endingWith:@":"]) { - kvoSelector = @selector(KVO_notifying_change_addKey:); -#endif - } - } - - // these are swizzled so e.g. subclasses of NSMutableDictionary get - // change notifications in setObject:forKey: - if (strcmp(methodCString, "setObject:forKey:") == 0) { - kvoSelector = @selector(KVO_notifying_change_setObject:forKey:); - } else if (strcmp(methodCString, "removeObjectForKey:") == 0) { - kvoSelector = - @selector(KVO_notifying_change_removeObjectForKey:); - } - - // there's a suitable selector for us - if (kvoSelector != 0) { - const char *types = method_getTypeEncoding(method); - - class_addMethod(swizzledClass, sel, - [self methodForSelector: kvoSelector], types); - // NSLog(@"replaced method %s by %@ in class %@", - // methodNameCString, - // NSStringFromSelector(newMethod->method_name), [self - // className]); - } - } - [pool release]; - if (methods != NULL) { - free(methods); - } - } - - objc_registerClassPair(swizzledClass); - - // done - return swizzledClass; -} - -+ (BOOL) automaticallyNotifiesObserversForKey: (NSString *) key; { - if ([key isEqualToString: @"observationInfo"]) { - return NO; - } - - return YES; -} -@end diff --git a/Foundation/NSKeyValueCoding/NSString+KVCAdditions.h b/Foundation/NSKeyValueCoding/NSString+KVCAdditions.h deleted file mode 100644 index 3fe18649..00000000 --- a/Foundation/NSKeyValueCoding/NSString+KVCAdditions.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString (KVCAdditions) -- (void) _KVC_partBeforeDot: (NSString **) before afterDot: (NSString **) after; -- (BOOL) _KVC_isSetterForSelectorNameStartingWith: (NSString *) start - endingWith: (NSString *) end; -@end - -NSString *_NSKVOSplitKeyPath(NSString *path, NSString **restOfPath); diff --git a/Foundation/NSKeyValueCoding/NSString+KVCAdditions.m b/Foundation/NSKeyValueCoding/NSString+KVCAdditions.m deleted file mode 100644 index 65160070..00000000 --- a/Foundation/NSKeyValueCoding/NSString+KVCAdditions.m +++ /dev/null @@ -1,84 +0,0 @@ -/* Copyright (c) 2007 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "NSString+KVCAdditions.h" -#include - -@implementation NSString (KVCPrivateAdditions) - -- (BOOL) _KVC_isSetterForSelectorNameStartingWith: (NSString *) start - endingWith: (NSString *) end; -{ - if ([self hasPrefix: start] && [self hasSuffix: end]) { - NSString *keyName = [self - substringWithRange: NSMakeRange([start length], - [self length] - [end length] - - [start length])]; - if (![keyName length]) - return NO; - - return YES; - } - return NO; -} - -// KVO and KVC can not share the path splitting code: -// Strangely, KVO will observe a key when specified capitalized -// Even stranger, KVC will treat such a key or path as undefined -NSString *_NSKVOSplitKeyPath(NSString *path, NSString **restOfPath) { - NSInteger dot, length = [path length]; - unichar buffer[length]; - - [path getCharacters: buffer]; - - for (dot = 0; dot < length; dot++) - if (buffer[dot] == '.') - break; - - if (dot < length) - *restOfPath = [NSString stringWithCharacters: buffer + dot + 1 - length: length - (dot + 1)]; - else - *restOfPath = nil; - -// Disabling this code - see the function comment for why it could be needed -// It doesn't seem to be the case anymore in recent OS X versions and it's -// killing the observing of properties that really have an uppercase char (which -// is quite common if you try to observe NSDefaults properties) -#if 0 -// we must always lowercase - buffer[0]=tolower(buffer[0]); -#endif - - return [NSString stringWithCharacters: buffer length: dot]; -} - -- (void) _KVC_partBeforeDot: (NSString **) before afterDot: (NSString **) after; -{ - NSRange range = [self rangeOfString: @"."]; - if (range.location != NSNotFound) { - *before = [self substringToIndex: range.location]; - *after = [self substringFromIndex: range.location + 1]; - } else { - *before = self; - *after = nil; - } -} - -@end diff --git a/Foundation/NSKeyedArchiving/NSKeyedArchiver.h b/Foundation/NSKeyedArchiving/NSKeyedArchiver.h deleted file mode 100644 index 280b97b1..00000000 --- a/Foundation/NSKeyedArchiving/NSKeyedArchiver.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@class NSMutableArray, NSMutableData, NSMutableDictionary; - -FOUNDATION_EXPORT NSString *const NSInvalidArchiveOperationException; - -@interface NSKeyedArchiver : NSCoder { - NSMutableData *_data; - NSMutableArray *_plistStack; - NSMutableArray *_objects; - NSMutableDictionary *_top; - id _delegate; - NSPropertyListFormat _outputFormat; - NSMapTable *_nameToClass; - NSUInteger _pass; - NSMapTable *_objectToUid; -} - -+ (NSData *) archivedDataWithRootObject: rootObject; -+ (BOOL) archiveRootObject: rootObject toFile: (NSString *) path; - -- initForWritingWithMutableData: (NSMutableData *) data; - -+ (NSString *) classNameForClass: (Class) aClass; -+ (void) setClassName: (NSString *) className forClass: (Class) aClass; - -- delegate; -- (NSString *) classNameForClass: (Class) aClass; -- (NSPropertyListFormat) outputFormat; - -- (void) setDelegate: delegate; -- (void) setClassName: (NSString *) className forClass: (Class) aClass; -- (void) setOutputFormat: (NSPropertyListFormat) format; - -- (void) encodeBool: (BOOL) value forKey: (NSString *) key; -- (void) encodeInt: (int) value forKey: (NSString *) key; -- (void) encodeInt32: (int32_t) value forKey: (NSString *) key; -- (void) encodeInt64: (int64_t) value forKey: (NSString *) key; -- (void) encodeFloat: (float) value forKey: (NSString *) key; -- (void) encodeDouble: (double) value forKey: (NSString *) key; -- (void) encodeBytes: (const void *) ptr - length: (NSUInteger) length - forKey: (NSString *) key; -- (void) encodeObject: object forKey: (NSString *) key; -- (void) encodeConditionalObject: object forKey: (NSString *) key; - -- (void) finishEncoding; - -@end - -@interface NSObject (NSKeyedArchiverDelegate) -- (void) archiver: (NSKeyedArchiver *) archiver - willReplaceObject: object - withObject: other; -- (void) archiver: (NSKeyedArchiver *) archiver willEncodeObject: object; -- (void) archiver: (NSKeyedArchiver *) archiver didEncodeObject: object; -- (void) archiverWllFinish: (NSKeyedArchiver *) archiver; -- (void) archiverDidFinish: (NSKeyedArchiver *) archiver; -@end - -@interface NSObject (NSKeyedArchiver) -+ (Class) classForKeyedUnarchiver; -+ (NSArray *) classFallbacksForKeyedArchiver; -- replacementObjectForKeyedArchiver: (NSKeyedArchiver *) archiver; -@end - -#import diff --git a/Foundation/NSKeyedArchiving/NSKeyedArchiver.m b/Foundation/NSKeyedArchiving/NSKeyedArchiver.m deleted file mode 100644 index 258747ce..00000000 --- a/Foundation/NSKeyedArchiving/NSKeyedArchiver.m +++ /dev/null @@ -1,352 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSKeyedArchiver - -static NSMapTable *_globalNameToClass = NULL; - -+ (void) initialize { - if (self == [NSKeyedArchiver class]) { - _globalNameToClass = - NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, 0); - } -} - -+ (NSData *) archivedDataWithRootObject: rootObject { - NSMutableData *data = [NSMutableData data]; - NSKeyedArchiver *archiver = - [[[self class] alloc] initForWritingWithMutableData: data]; - - [archiver encodeObject: rootObject forKey: @"root"]; - [archiver finishEncoding]; - [archiver release]; - return data; -} - -+ (BOOL) archiveRootObject: rootObject toFile: (NSString *) path { - NSData *data = [self archivedDataWithRootObject: rootObject]; - - return [data writeToFile: path atomically: YES]; -} - -- initForWritingWithMutableData: (NSMutableData *) data { - _data = [data retain]; - _plistStack = [NSMutableArray new]; - [_plistStack addObject: [NSMutableDictionary dictionary]]; - - _objects = [NSMutableArray new]; - [[_plistStack lastObject] setObject: _objects forKey: @"$objects"]; - [[_plistStack lastObject] setObject: [self className] forKey: @"$archiver"]; - [[_plistStack lastObject] setObject: [NSNumber numberWithInt: 100000] - forKey: @"$version"]; - - // Cocoa puts this default object here so that CF$UID==0 acts as nil - [_objects addObject: @"$null"]; - - _top = [NSMutableDictionary dictionary]; - [[_plistStack lastObject] setObject: _top forKey: @"$top"]; - - _nameToClass = NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, 0); - _pass = 0; - - NSMapTableKeyCallBacks objectToUidKeyCb = - NSNonRetainedObjectMapKeyCallBacks; - objectToUidKeyCb.isEqual = NULL; - // setting the equality callback to NULL means that the maptable will use - // pointer comparison. this is necessary to properly archive classes like - // NSMutableString which encodes an internal immutable object that returns - // YES to -isEqual with the mutable parent (and thus wouldn't get encoded at - // all without this change) - - _objectToUid = - NSCreateMapTable(objectToUidKeyCb, NSObjectMapValueCallBacks, 0); - - _outputFormat = NSPropertyListXMLFormat_v1_0; - return self; -} - -- init { - return [self initForWritingWithMutableData: [NSMutableData data]]; -} - -- (void) dealloc { - [_data release]; - [_plistStack release]; - NSFreeMapTable(_nameToClass); - NSFreeMapTable(_objectToUid); - [super dealloc]; -} - -- (BOOL) allowsKeyedCoding { - return YES; -} - -+ (NSString *) classNameForClass: (Class) class { - return NSMapGet(_globalNameToClass, (void *) class); -} - -+ (void) setClassName: (NSString *) className forClass: (Class) class { - NSMapInsert(_globalNameToClass, class, className); -} - -- delegate { - return _delegate; -} - -- (NSString *) classNameForClass: (Class) class { - return NSMapGet(_nameToClass, (void *) class); -} - -- (NSPropertyListFormat) outputFormat { - return _outputFormat; -} - -- (void) setDelegate: delegate { - _delegate = delegate; -} - -- (void) setClassName: (NSString *) className forClass: (Class) class { - NSMapInsert(_nameToClass, class, className); -} - -- (void) setOutputFormat: (NSPropertyListFormat) format { - _outputFormat = format; -} - -- (void) encodeBool: (BOOL) value forKey: (NSString *) key { - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSNumber numberWithBool: value] - forKey: key]; -} - -- (void) encodeInt: (int) value forKey: (NSString *) key { - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSNumber numberWithInt: value] - forKey: key]; -} - -- (void) encodeInteger: (NSInteger) value forKey: (NSString *) key { - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSNumber numberWithInteger: value] - forKey: key]; -} - -- (void) encodeInt32: (int32_t) value forKey: (NSString *) key { - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSNumber numberWithInt: value] - forKey: key]; -} - -- (void) encodeInt64: (int64_t) value forKey: (NSString *) key { - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSNumber numberWithLongLong: value] - forKey: key]; -} - -- (void) encodeFloat: (float) value forKey: (NSString *) key { - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSNumber numberWithFloat: value] - forKey: key]; -} - -- (void) encodeDouble: (double) value forKey: (NSString *) key { - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSNumber numberWithDouble: value] - forKey: key]; -} - -- (void) encodeBytes: (const void *) ptr - length: (NSUInteger) length - forKey: (NSString *) key -{ - if (_pass == 0) - return; - - [[_plistStack lastObject] setObject: [NSData dataWithBytes: ptr - length: length] - forKey: key]; -} - -- (void) encodeArrayOfDoubles: (double *) array - count: (NSUInteger) count - forKey: (NSString *) key -{ - if (_pass == 0 || count < 1) - return; - - NSMutableString *str = [NSMutableString stringWithString: @"{"]; - NSUInteger i; - for (i = 0; i < count; i++) { - [str appendFormat: @"%.12f%@", array[i], - (i < count - 1) ? @", " : @"}"]; - } - - [self encodeObject: [NSString stringWithString: str] forKey: key]; -} - -- (void) encodePoint: (NSPoint) value forKey: (NSString *) key { - double array[2] = {value.x, value.y}; - - [self encodeArrayOfDoubles: array count: 2 forKey: key]; -} - -- (void) encodeRect: (NSRect) value forKey: (NSString *) key { - double array[4] = {value.origin.x, value.origin.y, value.size.width, - value.size.height}; - - [self encodeArrayOfDoubles: array count: 4 forKey: key]; -} - -- (void) encodeSize: (NSSize) value forKey: (NSString *) key { - double array[2] = {value.width, value.height}; - - [self encodeArrayOfDoubles: array count: 2 forKey: key]; -} - -- plistForObject: object flag: (BOOL) flag { - NSNumber *uid = NSMapGet(_objectToUid, object); - - if (uid == nil) { - uid = [NSNumber numberWithUnsignedInteger: [_objects count]]; - NSMapInsert(_objectToUid, object, uid); - - NSString *archClass = NSStringFromClass([object classForKeyedArchiver]); - - // NSLog(@"uid %@: encoding class %@ as '%@'", uid, [object class], - // archClass); - - if ([archClass isEqualToString: @"NSString"]) { - [_objects - addObject: [NSString - stringWithString: [object description]]]; - } else if ([archClass isEqualToString: @"NSNumber"]) { - [_objects addObject: object]; - } else if ([archClass isEqualToString: @"NSData"]) { - [_objects addObject: object]; - } else if ([archClass isEqualToString: @"NSDictionary"] && flag) { - [_objects addObject: object]; - } else if (object == nil || [object isKindOfClass: [NSNull class]]) { - [_objects addObject: @"$null"]; - } else { - [_objects addObject: [NSMutableDictionary dictionary]]; - [_plistStack addObject: [_objects lastObject]]; - - [object encodeWithCoder: self]; - - NSMutableArray *supers = [[NSMutableArray alloc] init]; - [supers addObject: archClass]; - Class sup = class_getSuperclass([object classForKeyedArchiver]); - while (sup != nil) { - [supers addObject: NSStringFromClass(sup)]; - sup = class_getSuperclass(sup); - } - - NSDictionary *classMap = [NSDictionary - dictionaryWithObjectsAndKeys: supers, @"$classes", - archClass, @"$classname", - nil]; - - [supers release]; - - [[_plistStack lastObject] setObject: [self plistForObject: classMap - flag: YES] - forKey: @"$class"]; - [_plistStack removeLastObject]; - } - } - - return [NSDictionary dictionaryWithObject: uid forKey: @"CF$UID"]; -} - -- (void) encodeObject: object forKey: (NSString *) key { - if (_pass == 0) { - [_plistStack addObject: _top]; - } - - _pass++; - [[_plistStack lastObject] setObject: [self plistForObject: object flag: NO] - forKey: key]; - _pass--; - - if (_pass == 0) { - [_plistStack removeLastObject]; - } -} - -- (void) encodeConditionalObject: object forKey: (NSString *) key { - if (_pass == 0) - return; - - // Only encode the object if it's already somewhere - if (NSMapGet(_objectToUid, object)) { - [self encodeObject: object forKey: key]; - } -} - -// private, only called by the -encodeWithCoder methods of NSArray and NSSet -- (void) encodeArray: (NSArray *) array forKey: (NSString *) key { - if (_pass == 0) - return; - - NSInteger count = [array count]; - NSMutableArray *plistArr = [NSMutableArray arrayWithCapacity: count]; - int i; - for (i = 0; i < count; i++) { - id obj = [array objectAtIndex: i]; - id plist = [self plistForObject: obj flag: NO]; - [plistArr addObject: plist]; - } - - [[_plistStack lastObject] setObject: plistArr forKey: key]; -} - -- (void) finishEncoding { - NSData *newData = [NSPropertyListSerialization - dataFromPropertyList: [_plistStack lastObject] - format: _outputFormat - errorDescription: NULL]; - - [_data appendData: newData]; -} - -@end diff --git a/Foundation/NSKeyedArchiving/NSKeyedUnarchiver.h b/Foundation/NSKeyedArchiving/NSKeyedUnarchiver.h deleted file mode 100644 index 84461d0b..00000000 --- a/Foundation/NSKeyedArchiving/NSKeyedUnarchiver.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSDictionary, NSMutableArray, NSMutableDictionary; - -FOUNDATION_EXPORT NSString *NSInvalidUnarchiveOperationException; - -@interface NSKeyedUnarchiver : NSCoder { - id _delegate; - NSMutableDictionary *_nameToReplacementClass; - NSDictionary *_propertyList; - NSArray *_objects; - NSMutableArray *_plistStack; - NSMapTable *_uidToObject; - NSMapTable *_objectToUid; - NSMapTable *_classVersions; - - int _unnamedKeyIndex; -} - -- initForReadingWithData: (NSData *) data; - -+ unarchiveObjectWithData: (NSData *) data; -+ unarchiveObjectWithFile: (NSString *) path; - -- (BOOL) containsValueForKey: (NSString *) key; - -- (const uint8_t *) decodeBytesForKey: (NSString *) key - returnedLength: (NSUInteger *) lengthp; -- (BOOL) decodeBoolForKey: (NSString *) key; -- (double) decodeDoubleForKey: (NSString *) key; -- (float) decodeFloatForKey: (NSString *) key; -- (int) decodeIntForKey: (NSString *) key; -- (int32_t) decodeInt32ForKey: (NSString *) key; -- (int64_t) decodeInt64ForKey: (NSString *) key; -- decodeObjectForKey: (NSString *) key; - -- (void) finishDecoding; - -- delegate; -- (void) setDelegate: delegate; - -+ (void) setClass: (Class) aClass forClassName: (NSString *) className; -+ (Class) classForClassName: (NSString *) className; - -- (void) setClass: (Class) aClass forClassName: (NSString *) className; -- (Class) classForClassName: (NSString *) className; - -@end - -@interface NSObject (NSKeyedUnarchiverDelegate) -- unarchiver: (NSKeyedUnarchiver *) unarchiver didDecodeObject: object; -- (void) unarchiver: (NSKeyedUnarchiver *) unarchiver - willReplaceObject: object - withObject: replacement; -- (Class) unarchiver: (NSKeyedUnarchiver *) unarchiver - cannotDecodeObjectOfClassName: (NSString *) className - originalClasses: (NSArray *) classHierarchy; -@end diff --git a/Foundation/NSKeyedArchiving/NSKeyedUnarchiver.m b/Foundation/NSKeyedArchiving/NSKeyedUnarchiver.m deleted file mode 100644 index 0f8a29c9..00000000 --- a/Foundation/NSKeyedArchiving/NSKeyedUnarchiver.m +++ /dev/null @@ -1,679 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import - -NSString *NSInvalidUnarchiveOperationException = - @"NSInvalidUnarchiveOperationException"; - -@interface NSObject (NSKeyedUnarchiverPrivate) -+ (id) allocWithKeyedUnarchiver: (NSKeyedUnarchiver *) keyed; -@end - -@implementation NSObject (NSKeyedUnarchiverPrivate) - -+ (id) allocWithKeyedUnarchiver: (NSKeyedUnarchiver *) keyed { - return [self allocWithZone: NULL]; -} - -@end - -@implementation NSKeyedUnarchiver - -- initForReadingWithData: (NSData *) data { - _nameToReplacementClass = [NSMutableDictionary new]; - _propertyList = [[NSPropertyListReader propertyListFromData: data] retain]; - _objects = [[_propertyList objectForKey: @"$objects"] retain]; - _plistStack = [NSMutableArray new]; - [_plistStack addObject: [_propertyList objectForKey: @"$top"]]; - _uidToObject = NSCreateMapTable(NSIntMapKeyCallBacks, - NSNonOwnedPointerMapValueCallBacks, 0); - _objectToUid = NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, - NSIntMapValueCallBacks, 0); - _classVersions = NSCreateMapTable(NSObjectMapKeyCallBacks, - NSIntMapValueCallBacks, 0); - return self; -} - -- (void) dealloc { - [_nameToReplacementClass release]; - [_propertyList release]; - [_objects release]; - [_plistStack release]; - if (_uidToObject != NULL) - NSFreeMapTable(_uidToObject); - if (_objectToUid != NULL) - NSFreeMapTable(_objectToUid); - if (_classVersions != NULL) - NSFreeMapTable(_classVersions); - [super dealloc]; -} - -- (BOOL) allowsKeyedCoding { - return YES; -} - -static inline int integerFromCFUID(id object) { - // We can deal with CFUID's and dictionaries - unsigned typeID = [object _cfTypeID]; - - if (typeID == kNSCFTypeDictionary) { - NSNumber *uid = [object objectForKey: @"CF$UID"]; - return [uid integerValue]; - } - - return [object integerValue]; -} - -- (Class) decodeClassFromDictionary: (NSDictionary *) classReference { - Class result; - NSDictionary *plist = [classReference objectForKey: @"$class"]; - NSDictionary *profile = [_objects objectAtIndex: integerFromCFUID(plist)]; - // unused - NSDictionary *classes = [profile objectForKey: @"$classes"]; - NSString *className = [profile objectForKey: @"$classname"]; - - // TODO: decode class version - - if ((result = [_nameToReplacementClass objectForKey: className]) == Nil) - if ((result = NSClassFromString(className)) == Nil) - [NSException raise: NSInvalidArgumentException - format: @"Unable to find class named %@", className]; - - return result; -} - -- decodeObjectForUID: (NSInteger) uidIntValue { - id result = NSMapGet(_uidToObject, (void *) uidIntValue); - - if (result == nil) { - id plist = [_objects objectAtIndex: uidIntValue]; - unsigned typeID = [plist _cfTypeID]; - - if (typeID == kNSCFTypeString) { - if ([plist isEqualToString: @"$null"]) - result = nil; - else { - result = plist; - NSMapInsert(_uidToObject, (void *) uidIntValue, result); - NSMapInsert(_objectToUid, result, (void *) uidIntValue); - } - } else if (typeID == kNSCFTypeDictionary) { - Class class = [self decodeClassFromDictionary: plist]; - - [_plistStack addObject: plist]; - result = [class allocWithKeyedUnarchiver: self]; - NSMapInsert(_uidToObject, (void *) uidIntValue, result); - NSMapInsert(_objectToUid, result, (void *) uidIntValue); - result = [result initWithCoder: self]; - NSMapInsert(_uidToObject, (void *) uidIntValue, result); - NSMapInsert(_objectToUid, result, (void *) uidIntValue); - result = [result awakeAfterUsingCoder: self]; - [result autorelease]; - if ([_delegate respondsToSelector: @selector(unarchiver: - didDecodeObject:)]) - result = [_delegate unarchiver: self didDecodeObject: result]; - NSMapInsert(_uidToObject, (void *) uidIntValue, result); - NSMapInsert(_objectToUid, result, (void *) uidIntValue); - [_plistStack removeLastObject]; - } else if (typeID == kNSCFTypeNumber || typeID == kNSCFTypeBoolean) { - result = plist; - NSMapInsert(_uidToObject, (void *) uidIntValue, result); - NSMapInsert(_objectToUid, result, (void *) uidIntValue); - } else if (typeID == kNSCFTypeData) { - result = plist; - NSMapInsert(_uidToObject, (void *) uidIntValue, result); - NSMapInsert(_objectToUid, result, (void *) uidIntValue); - } else - NSLog(@"plist of class %@", [plist class]); - } - - return result; -} - -- decodeRootObject { - NSDictionary *top = [_propertyList objectForKey: @"$top"]; - NSArray *values = [top allValues]; - - if ([values count] != 1) { - NSLog(@"multiple values=%@", values); - return nil; - } else { - NSDictionary *object = [values objectAtIndex: 0]; - - return [self decodeObjectForUID: integerFromCFUID(object)]; - } -} - -+ unarchiveObjectWithData: (NSData *) data { - NSKeyedUnarchiver *unarchiver = - [[[self alloc] initForReadingWithData: data] autorelease]; - - return [unarchiver decodeRootObject]; -} - -+ unarchiveObjectWithFile: (NSString *) path { - NSData *data = [NSData dataWithContentsOfFile: path]; - - return [self unarchiveObjectWithData: data]; -} - -- (BOOL) containsValueForKey: (NSString *) key { - return ([[_plistStack lastObject] objectForKey: key] != nil) ? YES : NO; -} - -- (const uint8_t *) decodeBytesForKey: (NSString *) key - returnedLength: (NSUInteger *) lengthp -{ - NSData *data = [[_plistStack lastObject] objectForKey: key]; - - *lengthp = [data length]; - - return [data bytes]; -} - -static inline NSNumber *_numberForKey(NSKeyedUnarchiver *self, NSString *key) { - NSNumber *result = [[self->_plistStack lastObject] objectForKey: key]; - - if (result == nil) - return result; - - unsigned typeID = [result _cfTypeID]; - - if (typeID == kNSCFTypeNumber || typeID == kNSCFTypeBoolean) - return result; - - [NSException raise: @"NSKeyedUnarchiverException" - format: @"Expecting number, got %@, for key=%@", result, key]; - return [NSNumber numberWithInt: 0]; -} - -- (BOOL) decodeBoolForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return NO; - - return [number boolValue]; -} - -- (char) decodeCharForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return NO; - - return [number charValue]; -} -- (unsigned char) decodeUnsignedCharForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return NO; - - return [number unsignedCharValue]; -} - -- (double) decodeDoubleForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return 0; - - return [number doubleValue]; -} - -- (float) decodeFloatForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return 0; - - return [number floatValue]; -} - -- (int) decodeIntForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return 0; - - return [number intValue]; -} - -- (NSInteger) decodeIntegerForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return 0; - - return [number integerValue]; -} - -- (short) decodeShortForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return 0; - - return [number shortValue]; -} - -- (int32_t) decodeInt32ForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return 0; - - return [number intValue]; -} - -- (int64_t) decodeInt64ForKey: (NSString *) key { - NSNumber *number = _numberForKey(self, key); - - if (number == nil) - return 0; - - return [number intValue]; -} - -// not a lot of validation -- (NSUInteger) decodeArrayOfFloats: (float *) result forKey: (NSString *) key { - NSString *string = [self decodeObjectForKey: key]; - NSUInteger i, length = [string length], resultLength = 0; - unichar buffer[length]; - float multiplier = 0.10f, sign = 1, exponent = 0, expsign = 1; - enum { - expectingBraceOrSpace, - expectingBraceSpaceOrInteger, - expectingSpaceOrInteger, - expectingInteger, - expectingFraction, - expectingExponent, - expectingCommaBraceOrSpace, - expectingSpace - } state = expectingBraceOrSpace; - - if (string == nil) - return NSNotFound; - - [string getCharacters: buffer]; - - for (i = 0; i < length; i++) { - unichar code = buffer[i]; - - switch (state) { - - case expectingBraceOrSpace: - if (code == '{') - state = expectingBraceSpaceOrInteger; - else if (code > ' ') - [NSException raise: NSInvalidArgumentException - format: @"Unable to parse geometry %@, state=%d, " - @"pos=%d, code=%C", - string, state, i, code]; - break; - - case expectingBraceSpaceOrInteger: - if (code == '{') { - state = expectingSpaceOrInteger; - break; - } - // fallthru - case expectingSpaceOrInteger: - if (code <= ' ') - break; - // fallthru - case expectingInteger: - if (code == '-') - sign = -1; - else if (code >= '0' && code <= '9') - result[resultLength] = result[resultLength] * 10 + (code - '0'); - else if (code == '.') { - multiplier = 0.10f; - state = expectingFraction; - } else if (code == 'e' || code == 'E') { - state = expectingExponent; - exponent = 0; - } else if (code == ',') { - result[resultLength++] *= sign; - sign = 1; - state = expectingSpaceOrInteger; - } else if (code == '}') { - result[resultLength++] *= sign; - sign = 1; - state = expectingCommaBraceOrSpace; - } else if (code <= ' ') { - result[resultLength++] *= sign; - sign = 1; - state = expectingCommaBraceOrSpace; - } else - [NSException raise: NSInvalidArgumentException - format: @"Unable to parse geometry %@, state=%d, " - @"pos=%d, code=%C", - string, state, i, code]; - break; - - case expectingFraction: - if (code >= '0' && code <= '9') { - result[resultLength] = - result[resultLength] + multiplier * (code - '0'); - multiplier /= 10; - } else if (code == 'e' || code == 'E') { - state = expectingExponent; - exponent = 0; - } else if (code == ',') { - result[resultLength++] *= sign; - sign = 1; - state = expectingSpaceOrInteger; - } else if (code == '}') { - result[resultLength++] *= sign; - sign = 1; - state = expectingCommaBraceOrSpace; - } else - [NSException raise: NSInvalidArgumentException - format: @"Unable to parse geometry %@, state=%d, " - @"pos=%d, code=%C", - string, state, i, code]; - break; - - case expectingExponent: - if (code == '+') - break; - if (code == '-') - expsign = -1; - else if (code >= '0' && code <= '9') - exponent = exponent * 10 + (code - '0'); - else if (code == ',') { - result[resultLength++] *= - sign * powf(10.0f, expsign * exponent); - sign = expsign = 1; - exponent = 0; - state = expectingSpaceOrInteger; - } else if (code == '}') { - result[resultLength++] *= - sign * powf(10.0f, expsign * exponent); - sign = expsign = 1; - exponent = 0; - state = expectingCommaBraceOrSpace; - } else - [NSException raise: NSInvalidArgumentException - format: @"Unable to parse geometry %@, state=%d, " - @"pos=%d, code=%C", - string, state, i, code]; - break; - - case expectingCommaBraceOrSpace: - if (code == ',') - state = expectingBraceSpaceOrInteger; - else if (code == '}') - state = expectingSpace; - else if (code >= ' ') - [NSException raise: NSInvalidArgumentException - format: @"Unable to parse geometry %@, state=%d, " - @"pos=%d, code=%C", - string, state, i, code]; - break; - - case expectingSpace: - if (code >= ' ') - [NSException raise: NSInvalidArgumentException - format: @"Unable to parse geometry %@, state=%d, " - @"pos=%d, code=%C", - string, state, i, code]; - break; - } - } - - return resultLength; -} - -- (NSPoint) decodePointForKey: (NSString *) key { - float array[4] = {0, 0, 0, 0}; - [self decodeArrayOfFloats: array forKey: key]; - - return NSMakePoint(array[0], array[1]); -} - -- (NSSize) decodeSizeForKey: (NSString *) key { - float array[4] = {0, 0, 0, 0}; - [self decodeArrayOfFloats: array forKey: key]; - - return NSMakeSize(array[0], array[1]); -} - -- (NSRect) decodeRectForKey: (NSString *) key { - float array[4] = {0, 0, 0, 0}; - [self decodeArrayOfFloats: array forKey: key]; - - return NSMakeRect(array[0], array[1], array[2], array[3]); -} - -// NSCoder: Subclasses must override this method and provide an implementation -// to decode the value. keys of "unnamed" values seem to be incremented indexes -// prefixed with "$" ($0,$1,$2...) -- (void) decodeValueOfObjCType: (const char *) type at: (void *) data { - NSString *key = [NSString stringWithFormat: @"$%u", _unnamedKeyIndex++]; - - switch (*type) { - case _C_ID: // '@' - *(id *) data = [[self decodeObjectForKey: key] retain]; - break; - case _C_CLASS: // '#' - *(id *) data = [[self decodeObjectForKey: key] retain]; - break; - case _C_SEL: // ':' - *(SEL *) data = NSSelectorFromString([self decodeObjectForKey: key]); - break; - case _C_CHR: // 'c' - *(char *) data = [self decodeCharForKey: key]; - break; - case _C_UCHR: // 'C' - *(unsigned char *) data = [self decodeUnsignedCharForKey: key]; - break; - case _C_SHT: // 's' - *(short *) data = [self decodeShortForKey: key]; - break; - case _C_USHT: // 'S' - *(unsigned short *) data = [self decodeShortForKey: key]; - break; - case _C_INT: // 'i' - *(int *) data = [self decodeIntForKey: key]; - break; - case _C_UINT: // 'I' - *(unsigned int *) data = [self decodeIntForKey: key]; - break; - case _C_LNG: // 'l' - *(long *) data = [self decodeInt32ForKey: key]; - break; - case _C_ULNG: // 'L' - *(unsigned long *) data = [self decodeInt32ForKey: key]; - break; - case _C_LNG_LNG: // 'q' - *(long long *) data = [self decodeInt64ForKey: key]; - break; - case _C_ULNG_LNG: // 'Q' - *(unsigned long long *) data = [self decodeInt64ForKey: key]; - break; - case _C_FLT: // 'f' - *(float *) data = [self decodeFloatForKey: key]; - break; - case _C_DBL: // 'd' - *(double *) data = [self decodeDoubleForKey: key]; - break; - /* case _C_BFLD: // 'b' - break;*/ - case 'B': // _C_BOOL: // 'B' (undefined?) - *(BOOL *) data = [self decodeBoolForKey: key]; - break; - case _C_VOID: // 'v' - break; - case _C_UNDEF: // '?' - break; - case _C_PTR: // '^' - break; - case _C_CHARPTR: // '*' - *(const char **) data = [[self decodeObjectForKey: key] cString]; - break; - /* case _C_ATOM: // '%' - break; - case _C_ARY_B: // '[' - break; - case _C_ARY_E: // ']' - break; - case _C_UNION_B: // '(' - break; - case _C_UNION_E: // ')' - break; - case _C_STRUCT_B: // '{' - break; - case _C_STRUCT_E: // '}' - break; - case _C_VECTOR: // '!' - break; - case _C_CONST: // 'r' - break; */ - default: - [NSException raise: @"NSKeyedUnarchiverException" - format: @"Unable to decode unnamed ObjC value with " - @"unsupported type '%s'", - type]; - break; - } - - // NSUnimplementedMethod(); -} - -- _decodeObjectWithPropertyList: plist { - unsigned typeID = [plist _cfTypeID]; - - int backupUnnamedKeyIndex = _unnamedKeyIndex; - _unnamedKeyIndex = 0; - - id result = nil; - - if (typeID == kNSCFTypeString || typeID == kNSCFTypeData || - typeID == kNSCFTypeNumber) { - result = plist; - } else if (typeID == kNSCFTypeDictionary) { - result = [self decodeObjectForUID: integerFromCFUID(plist)]; - } else if (typeID == kNSCFTypeArray) { - result = [NSMutableArray array]; - NSInteger i, count = [plist count]; - - for (i = 0; i < count; i++) { - id sibling = [plist objectAtIndex: i]; - - id object = [self _decodeObjectWithPropertyList: sibling]; - if (object) { - [result addObject: object]; - } - } - } else if ([plist isKindOfClass: [CFUID class]]) { - result = [self decodeObjectForUID: [plist integerValue]]; - } else { - [NSException raise: @"NSKeyedUnarchiverException" - format: @"Unable to decode property list with class %@", - [plist class]]; - } - - _unnamedKeyIndex = backupUnnamedKeyIndex; - - return result; -} - -- decodeObjectForKey: (NSString *) key { - id result; - - id plist = [[_plistStack lastObject] objectForKey: key]; - - if (plist == nil) - result = nil; - else - result = [self _decodeObjectWithPropertyList: plist]; - - return result; -} - -- (void) replaceObject: object withObject: replacement { - NSInteger uid = (NSInteger) NSMapGet(_objectToUid, object); - id check = NSMapGet(_uidToObject, (void *) uid); - - if (check != object) { - NSLog(@"fail " NSIntegerFormat " %p %p", uid, check, object); - } else { - if ([_delegate respondsToSelector: @selector - (unarchiver:willReplaceObject:withObject:)]) { - [_delegate unarchiver: self - willReplaceObject: object - withObject: replacement]; - } - - NSMapInsert(_uidToObject, (void *) uid, replacement); - NSMapInsert(_uidToObject, replacement, (void *) uid); - } -} - -- (void) finishDecoding { -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: delegate { - _delegate = delegate; -} - -+ (void) setClass: (Class) class forClassName: (NSString *) className { -} - -+ (Class) classForClassName: (NSString *) className { - return Nil; -} - -- (void) setClass: (Class) class forClassName: (NSString *) className { - [_nameToReplacementClass setObject: class forKey: className]; -} - -- (Class) classForClassName: (NSString *) className { - return [_nameToReplacementClass objectForKey: className]; -} - -- (NSInteger) versionForClassName: (NSString *) className { - return (NSInteger) NSMapGet(_classVersions, className); -} - -- (NSString *) description { - return [NSString stringWithFormat: @"%@ %@", [super description], - [_plistStack lastObject]]; -} -@end diff --git a/Foundation/NSLocale.h b/Foundation/NSLocale.h deleted file mode 100644 index fce25adf..00000000 --- a/Foundation/NSLocale.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSArray, NSDictionary; - -FOUNDATION_EXPORT NSString *const NSLocaleCountryCode; -FOUNDATION_EXPORT NSString *const NSLocaleLanguageCode; -FOUNDATION_EXPORT NSString *const NSLocaleVariantCode; -FOUNDATION_EXPORT NSString *const NSLocaleIdentifier; - -FOUNDATION_EXPORT NSString *const NSLocaleGroupingSeparator; -FOUNDATION_EXPORT NSString *const NSLocaleDecimalSeparator; -FOUNDATION_EXPORT NSString *const NSLocaleCalendar; -FOUNDATION_EXPORT NSString *const NSLocaleCurrencyCode; -FOUNDATION_EXPORT NSString *const NSLocaleCurrencySymbol; -FOUNDATION_EXPORT NSString *const NSLocaleUsesMetricSystem; -FOUNDATION_EXPORT NSString *const NSLocaleMeasurementSystem; - -FOUNDATION_EXPORT NSString *const NSLocaleScriptCode; -FOUNDATION_EXPORT NSString *const NSLocaleExemplarCharacterSet; -FOUNDATION_EXPORT NSString *const NSLocaleCollationIdentifier; - -FOUNDATION_EXPORT NSString *const NSCurrentLocaleDidChangeNotification; - -@interface NSLocale : NSObject { - NSDictionary *_locale; -} - -+ systemLocale; -+ currentLocale; -+ autoupdatingCurrentLocale; - -+ (NSArray *) availableLocaleIdentifiers; - -+ (NSString *) canonicalLocaleIdentifierFromString: (NSString *) string; - -+ (NSDictionary *) componentsFromLocaleIdentifier: (NSString *) identifier; -+ (NSString *) localeIdentifierFromComponents: (NSDictionary *) components; - -+ (NSArray *) ISOCountryCodes; -+ (NSArray *) ISOLanguageCodes; -+ (NSArray *) ISOCurrencyCodes; -+ (NSArray *) commonISOCurrencyCodes; - -+ (NSArray *) preferredLanguages; - -- initWithLocaleIdentifier: (NSString *) identifier; - -- (NSString *) localeIdentifier; - -- objectForKey: key; - -- (NSString *) displayNameForKey: key value: value; - -@end diff --git a/Foundation/NSLocale.m b/Foundation/NSLocale.m deleted file mode 100644 index e94c2e4c..00000000 --- a/Foundation/NSLocale.m +++ /dev/null @@ -1,231 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -#include - -NSString *const NSLocaleCountryCode = @"NSLocaleCountryCode"; -NSString *const NSLocaleLanguageCode = @"NSLocaleLanguageCode"; -NSString *const NSLocaleVariantCode = @"NSLocaleVariantCode"; -NSString *const NSLocaleIdentifier = @"NSLocaleIdentifier"; - -NSString *const NSLocaleGroupingSeparator = @"NSLocaleGroupingSeparator"; -NSString *const NSLocaleDecimalSeparator = @"NSLocaleDecimalSeparator"; -NSString *const NSLocaleCalendar = @"NSLocaleCalendar"; -NSString *const NSLocaleCurrencyCode = @"NSLocaleCurrencyCode"; -NSString *const NSLocaleCurrencySymbol = @"NSLocaleCurrencySymbol"; -NSString *const NSLocaleUsesMetricSystem = @"NSLocaleUsesMetricSystem"; -NSString *const NSLocaleMeasurementSystem = @"NSLocaleMeasurementSystem"; - -NSString *const NSLocaleScriptCode = @"NSLocaleScriptCode"; -NSString *const NSLocaleExemplarCharacterSet = @"NSLocaleExemplarCharacterSet"; -NSString *const NSLocaleCollationIdentifier = @"NSLocaleCollationIdentifier"; - -NSString *const NSCurrentLocaleDidChangeNotification = - @"NSCurrentLocaleDidChangeNotification"; - -BOOL NSCurrentLocaleIsMetric(); - -@implementation NSLocale - -static NSLocale *_sharedSystemLocale = nil; -static NSLocale *_sharedCurrentLocale = nil; - -- (NSDictionary *) _locale { - return _locale; -} - -+ systemLocale { - if (_sharedSystemLocale == nil) - _sharedSystemLocale = - [[NSLocale alloc] initWithLocaleIdentifier: @"en_US"]; - return _sharedSystemLocale; -} - -+ currentLocale { - if (_sharedCurrentLocale == nil) { - NSString *localeIdentifier; - - if ([self respondsToSelector: @selector - (_platformCurrentLocaleIdentifier)]) - localeIdentifier = [self performSelector: @selector - (_platformCurrentLocaleIdentifier)]; - else - localeIdentifier = @"en_US"; - - _sharedCurrentLocale = - [[NSLocale alloc] initWithLocaleIdentifier: localeIdentifier]; - } - return _sharedCurrentLocale; -} - -- (void) dealloc { - [_locale release]; - [super dealloc]; -} - -+ autoupdatingCurrentLocale { - NSUnimplementedMethod(); - return 0; -} - -+ (NSArray *) availableLocaleIdentifiers { - NSUnimplementedMethod(); - return 0; -} - -+ (NSString *) canonicalLocaleIdentifierFromString: (NSString *) string { - NSUnimplementedMethod(); - return 0; -} - -+ (NSDictionary *) componentsFromLocaleIdentifier: (NSString *) identifier { - if ([identifier - isEqualToString: [[NSLocale currentLocale] localeIdentifier]]) - return [_sharedCurrentLocale _locale]; - else if ([identifier isEqualToString: [[NSLocale systemLocale] - localeIdentifier]]) - return [_sharedSystemLocale _locale]; - else - return [[[[NSLocale alloc] initWithLocaleIdentifier: identifier] - autorelease] _locale]; - return 0; -} - -+ (NSString *) localeIdentifierFromComponents: (NSDictionary *) components { - NSUnimplementedMethod(); - return 0; -} - -+ (NSArray *) ISOCountryCodes { - NSUnimplementedMethod(); - return 0; -} - -+ (NSArray *) ISOLanguageCodes { - NSUnimplementedMethod(); - return 0; -} - -+ (NSArray *) ISOCurrencyCodes { - NSUnimplementedMethod(); - return 0; -} - -+ (NSArray *) commonISOCurrencyCodes { - NSUnimplementedMethod(); - return 0; -} - -+ (NSArray *) preferredLanguages { - NSUnimplementedMethod(); - return 0; -} - -- initWithLocaleIdentifier: (NSString *) identifier { - [super init]; - - NSArray *parts = [identifier componentsSeparatedByString: @"_"]; - NSString *language = [parts objectAtIndex: 0]; - NSString *country = nil; - if (parts.count > 1) { - country = [parts objectAtIndex: 1]; - } else { - country = identifier; - } - - NSMutableDictionary *localeInfo = [NSMutableDictionary - dictionaryWithObjectsAndKeys: identifier, NSLocaleIdentifier, - language, NSLocaleLanguageCode, - country, NSLocaleCountryCode, nil]; - - if ([[self class] respondsToSelector: @selector - (_platformLocaleAdditionalDescriptionForIdentifier:)]) { - // Use any platform specific method to fill the locale info if one is - // defined - NSDictionary *info = [[self class] - performSelector: @selector - (_platformLocaleAdditionalDescriptionForIdentifier:) - withObject: identifier]; - [localeInfo addEntriesFromDictionary: info]; - } else { - // Else use setlocale & localeconv to try to get some locale info - char *currentLocale = setlocale(LC_ALL, NULL); - if (setlocale(LC_ALL, [identifier UTF8String]) == NULL) { - identifier = @"en_US"; - } - struct lconv *conv = localeconv(); - - // FIXME: This is wrong in that it is using the current locales value, - // not the identified one - NSNumber *usesMetric = - [NSNumber numberWithBool: NSCurrentLocaleIsMetric()]; - - [localeInfo - setObject: [NSString stringWithUTF8String: conv->decimal_point] - forKey: NSLocaleDecimalSeparator]; - [localeInfo setObject: [NSString stringWithUTF8String: conv-> - currency_symbol] - forKey: NSLocaleCurrencySymbol]; - [localeInfo setObject: usesMetric forKey: NSLocaleUsesMetricSystem]; - - // Restore the initial locale - setlocale(LC_ALL, currentLocale); - } - _locale = - [[NSDictionary allocWithZone: NULL] initWithDictionary: localeInfo]; - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- initWithCoder: (NSCoder *) coder { - // A very basic implementation that handles Locale encoding in nib files - NSDeallocateObject(self); - return [[NSLocale systemLocale] retain]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (NSString *) localeIdentifier { - return [_locale objectForKey: NSLocaleIdentifier]; -} - -- objectForKey: key { - return [_locale objectForKey: key]; -} - -- (NSString *) displayNameForKey: key value: value { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@:%p %@>", [self class], self, _locale]; -} -@end diff --git a/Foundation/NSLock/NSCondition.m b/Foundation/NSLock/NSCondition.m deleted file mode 100644 index 9410ac4b..00000000 --- a/Foundation/NSLock/NSCondition.m +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) 2010 Sven Weidauer - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ - -#import -#import -#import -#import - -@implementation NSCondition - -#pragma mark - -#pragma mark NSObject methods - -+ allocWithZone: (NSZone *) zone { - if (self == [NSCondition class]) - self = [[NSPlatform currentPlatform] conditionClass]; - return NSAllocateObject(self, 0, zone); -} - -- (void) dealloc; { - [self setName: nil]; - - [super dealloc]; -} - -#pragma mark - -#pragma mark methods - -- (void) lock; { - NSInvalidAbstractInvocation(); -} - -- (void) unlock; { - NSInvalidAbstractInvocation(); -} - -#pragma mark - -#pragma mark NSCondition methods - -- (void) broadcast; { - NSInvalidAbstractInvocation(); -} - -- (void) signal; { - NSInvalidAbstractInvocation(); -} - -- (void) wait; { - [self waitUntilDate: [NSDate distantFuture]]; -} - -- (BOOL) waitUntilDate: (NSDate *) limit; { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSString *) name; { - return name; -} - -- (void) setName: (NSString *) newName; { - if (name != newName) { - [name release]; - name = [newName copy]; - } -} - -@end diff --git a/Foundation/NSLock/NSConditionLock.h b/Foundation/NSLock/NSConditionLock.h deleted file mode 100644 index c84f31e7..00000000 --- a/Foundation/NSLock/NSConditionLock.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSDate; - -@interface NSConditionLock : NSObject { - NSString *_name; -} - -- initWithCondition: (NSInteger) condition; - -- (NSString *) name; -- (void) setName: (NSString *) value; - -- (NSInteger) condition; - -- (BOOL) tryLock; -- (BOOL) tryLockWhenCondition: (NSInteger) condition; - -- (void) lockWhenCondition: (NSInteger) condition; -- (void) unlockWithCondition: (NSInteger) condition; - -- (BOOL) lockBeforeDate: (NSDate *) date; -- (BOOL) lockWhenCondition: (NSInteger) condition beforeDate: (NSDate *) date; - -@end diff --git a/Foundation/NSLock/NSConditionLock.m b/Foundation/NSLock/NSConditionLock.m deleted file mode 100644 index 57599612..00000000 --- a/Foundation/NSLock/NSConditionLock.m +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSConditionLock - -+ allocWithZone: (NSZone *) zone { - if (self == [NSConditionLock class]) - return NSAllocateObject( - [[NSPlatform currentPlatform] conditionLockClass], 0, zone); - else - return NSAllocateObject(self, 0, zone); -} - -- initWithCondition: (NSInteger) condition { - NSUnimplementedMethod(); - return self; -} - -- (void) dealloc { - [_name release]; - [super dealloc]; -} - -- (NSString *) name { - return _name; -} - -- (void) setName: (NSString *) value { - if (value != _name) { - [_name release]; - _name = [value retain]; - } -} - -- (NSInteger) condition { - NSUnimplementedMethod(); - return 0; -} - -- (void) lock { - NSUnimplementedMethod(); -} - -- (void) unlock { - NSUnimplementedMethod(); -} - -- (BOOL) tryLock { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) tryLockWhenCondition: (NSInteger) condition { - NSUnimplementedMethod(); - return 0; -} - -- (void) lockWhenCondition: (NSInteger) condition { - NSUnimplementedMethod(); -} - -- (void) unlockWithCondition: (NSInteger) condition { - NSUnimplementedMethod(); -} - -- (BOOL) lockBeforeDate: (NSDate *) date { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) lockWhenCondition: (NSInteger) condition beforeDate: (NSDate *) date { - NSUnimplementedMethod(); - return 0; -} - -@end diff --git a/Foundation/NSLock/NSLock.h b/Foundation/NSLock/NSLock.h deleted file mode 100644 index 5a3d7c13..00000000 --- a/Foundation/NSLock/NSLock.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDate; - -@protocol NSLocking -- (void) lock; -- (void) unlock; -@end - -@interface NSLock : NSObject { - NSString *_name; -} - -- (NSString *) name; -- (void) setName: (NSString *) value; - -- (BOOL) tryLock; -- (BOOL) lockBeforeDate: (NSDate *) value; - -@end - -@interface NSCondition : NSObject { - NSString *name; -} - -- (void) broadcast; -- (void) signal; - -- (void) wait; -- (BOOL) waitUntilDate: (NSDate *) limit; - -- (NSString *) name; -- (void) setName: (NSString *) newName; - -@end - -#import -#import diff --git a/Foundation/NSLock/NSLock.m b/Foundation/NSLock/NSLock.m deleted file mode 100644 index 8519f495..00000000 --- a/Foundation/NSLock/NSLock.m +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import - -@implementation NSLock - -+ allocWithZone: (NSZone *) zone { - if (self == [NSLock class]) - return NSAllocateObject([[NSPlatform currentPlatform] lockClass], 0, - zone); - else - return NSAllocateObject(self, 0, zone); -} - -- init { - NSInvalidAbstractInvocation(); - return self; -} - -- (void) dealloc { - [_name release]; - [super dealloc]; -} - -- (NSString *) name { - return _name; -} - -- (void) setName: (NSString *) value { - if (value != _name) { - [_name release]; - _name = [value retain]; - } -} - -- (void) lock { - NSInvalidAbstractInvocation(); -} - -- (void) unlock { - NSInvalidAbstractInvocation(); -} - -- (BOOL) tryLock { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) lockBeforeDate: (NSDate *) value { - NSInvalidAbstractInvocation(); - return NO; -} - -@end diff --git a/Foundation/NSLock/NSRecursiveLock.h b/Foundation/NSLock/NSRecursiveLock.h deleted file mode 100644 index 340c5cd5..00000000 --- a/Foundation/NSLock/NSRecursiveLock.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#import - -@interface NSRecursiveLock : NSObject { - NSString *_name; -} -- (NSString *) name; -- (void) setName: (NSString *) value; - -- (BOOL) tryLock; -- (BOOL) lockBeforeDate: (NSDate *) value; -@end diff --git a/Foundation/NSLock/NSRecursiveLock.m b/Foundation/NSLock/NSRecursiveLock.m deleted file mode 100644 index fc8da368..00000000 --- a/Foundation/NSLock/NSRecursiveLock.m +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#import -#import - -@implementation NSRecursiveLock - -+ allocWithZone: (NSZone *) zone { - if (self == [NSRecursiveLock class]) - return NSAllocateObject( - [[NSPlatform currentPlatform] recursiveLockClass], 0, zone); - else - return NSAllocateObject(self, 0, zone); -} - -- (id) init { - NSUnimplementedMethod(); - return self; -} - -- (void) dealloc { - [_name release]; - [super dealloc]; -} - -- (NSString *) name { - return _name; -} - -- (void) setName: (NSString *) value { - if (value != _name) { - [_name release]; - _name = [value retain]; - } -} - -- (void) lock { - NSUnimplementedMethod(); -} - -- (void) unlock { - NSUnimplementedMethod(); -} - -- (BOOL) tryLock { - NSUnimplementedMethod(); - return NO; -} - -- (BOOL) lockBeforeDate: (NSDate *) value; { - NSUnimplementedMethod(); - return NO; -} - -@end diff --git a/Foundation/NSLock/NSSynchronization.h b/Foundation/NSLock/NSSynchronization.h deleted file mode 100644 index 417aa9ac..00000000 --- a/Foundation/NSLock/NSSynchronization.h +++ /dev/null @@ -1,13 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#if !defined(GCC_RUNTIME_3) && !defined(APPLE_RUNTIME_4) - -void _NSInitializeSynchronizedDirective(); - -#endif diff --git a/Foundation/NSLock/NSSynchronization.m b/Foundation/NSLock/NSSynchronization.m deleted file mode 100644 index 7135c743..00000000 --- a/Foundation/NSLock/NSSynchronization.m +++ /dev/null @@ -1,147 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#if !defined(GCC_RUNTIME_3) && !defined(APPLE_RUNTIME_4) - -#import -#import -#import - -#define NUM_CHAINS 16 -#define ID_HASH(a) (((long) a >> 5) & (NUM_CHAINS - 1)) - -// lock to serialize accesses to the lock chain; also serves as a marker if we -// are currently locking (locking is disabled as long as there's no -// multithreading) -static NSLock **lockChainLock = NULL; - -struct LockChain; -typedef struct LockChain { - id lock; - id object; - unsigned owningThreads; - struct LockChain *next; -} LockChain; - -static LockChain *allLocks[NUM_CHAINS] = {0}; - -void _NSInitializeSynchronizedDirective() { - if (!lockChainLock) { - int i; - lockChainLock = NSZoneCalloc(NULL, NUM_CHAINS, sizeof(id)); - for (i = 0; i < NUM_CHAINS; i++) { - allLocks[i] = NSZoneCalloc(NULL, 1, sizeof(LockChain)); - - allLocks[i]->object = 0; - allLocks[i]->next = 0; - allLocks[i]->owningThreads = 0; - allLocks[i]->lock = [NSRecursiveLock new]; - - lockChainLock[i] = [NSLock new]; - } - } -} - -enum { - OBJC_SYNC_SUCCESS = 0, - OBJC_SYNC_NOT_OWNING_THREAD_ERROR = -1, - OBJC_SYNC_TIMED_OUT = -2, - OBJC_SYNC_NOT_INITIALIZED = -3 -}; - -LockChain *lockForObject(id object, BOOL entering) { - NSLock *chainLock = lockChainLock[ID_HASH(object)]; - LockChain *result = allLocks[ID_HASH(object)]; - LockChain *firstFree = NULL; - - [chainLock lock]; - - while (result) { - if (result->object == object) - goto done; - if (result->object == NULL) - firstFree = result; - result = result->next; - } - - if (!entering) - goto done; - - if (firstFree) { - firstFree->object = object; - result = firstFree; - goto done; - } - - result = NSZoneCalloc(NULL, 1, sizeof(LockChain)); - result->object = object; - result->owningThreads = 0; - result->next = allLocks[ID_HASH(object)]; - result->lock = [NSRecursiveLock new]; - allLocks[ID_HASH(object)] = result; - -done: - - if (entering) { - result->owningThreads++; - } else { - if (result) { - result->owningThreads--; - if (result->owningThreads == 0) - result->object = NULL; - } - } - - [chainLock unlock]; - return result; -} - -FOUNDATION_EXPORT int objc_sync_enter(id obj) { - if (!obj) - return OBJC_SYNC_SUCCESS; - if (!lockChainLock) - return OBJC_SYNC_NOT_INITIALIZED; - - LockChain *result = lockForObject(obj, YES); - - [result->lock lock]; - - return OBJC_SYNC_SUCCESS; -} - -FOUNDATION_EXPORT int objc_sync_exit(id obj) { - if (!obj) - return OBJC_SYNC_SUCCESS; - if (!lockChainLock) - return OBJC_SYNC_NOT_INITIALIZED; - - LockChain *result = lockForObject(obj, NO); - if (!result) { - // this may happen only in the case where locking was initialized after - // a sync_enter, but before the corresponding sync_exit. - return OBJC_SYNC_NOT_INITIALIZED; - } - - [result->lock unlock]; - - return OBJC_SYNC_SUCCESS; -} - -#endif diff --git a/Foundation/NSMapTable.h b/Foundation/NSMapTable.h deleted file mode 100644 index 19154a35..00000000 --- a/Foundation/NSMapTable.h +++ /dev/null @@ -1,127 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSArray, NSMapTable; - -typedef struct { - NSMapTable *table; - NSInteger i; - struct _NSMapNode *j; -} NSMapEnumerator; - -typedef struct { - NSUInteger (*hash)(NSMapTable *table, const void *); - BOOL(*isEqual) - (NSMapTable *table, const void *, const void *); - void (*retain)(NSMapTable *table, const void *); - void (*release)(NSMapTable *table, void *); - NSString *(*describe)(NSMapTable *table, const void *); - const void *notAKeyMarker; -} NSMapTableKeyCallBacks; - -typedef struct { - void (*retain)(NSMapTable *table, const void *); - void (*release)(NSMapTable *table, void *); - NSString *(*describe)(NSMapTable *table, const void *); -} NSMapTableValueCallBacks; - -@interface NSMapTable : NSObject { - NSMapTableKeyCallBacks *keyCallBacks; - NSMapTableValueCallBacks *valueCallBacks; - NSUInteger count; - NSUInteger nBuckets; - struct _NSMapNode **buckets; -} - -+ mapTableWithStrongToStrongObjects; -+ mapTableWithStrongToWeakObjects; -+ mapTableWithWeakToStrongObjects; -+ mapTableWithWeakToWeakObjects; - -+ strongToStrongObjectsMapTable; -+ strongToWeakObjectsMapTable; -+ weakToStrongObjectsMapTable; -+ weakToWeakObjectsMapTable; - -- objectForKey: key; -- (void) removeObjectForKey: key; -- (void) setObject: object forKey: key; - -- (void) removeAllObjects; -- (NSEnumerator *) keyEnumerator; - -@end - -FOUNDATION_EXPORT const void *NSNotAnIntMapKey; -FOUNDATION_EXPORT const void *NSNotAPointerMapKey; - -FOUNDATION_EXPORT const NSMapTableKeyCallBacks NSIntMapKeyCallBacks; -FOUNDATION_EXPORT const NSMapTableValueCallBacks NSIntMapValueCallBacks; - -FOUNDATION_EXPORT const NSMapTableKeyCallBacks NSIntegerMapKeyCallBacks; -FOUNDATION_EXPORT const NSMapTableValueCallBacks NSIntegerMapValueCallBacks; -FOUNDATION_EXPORT const NSMapTableKeyCallBacks NSNonOwnedPointerMapKeyCallBacks; -FOUNDATION_EXPORT const NSMapTableValueCallBacks - NSNonOwnedPointerMapValueCallBacks; -FOUNDATION_EXPORT const NSMapTableKeyCallBacks - NSNonOwnedPointerOrNullMapKeyCallBacks; -FOUNDATION_EXPORT const NSMapTableKeyCallBacks - NSNonRetainedObjectMapKeyCallBacks; -FOUNDATION_EXPORT const NSMapTableValueCallBacks - NSNonRetainedObjectMapValueCallBacks; -FOUNDATION_EXPORT const NSMapTableKeyCallBacks NSObjectMapKeyCallBacks; -FOUNDATION_EXPORT const NSMapTableValueCallBacks NSObjectMapValueCallBacks; -FOUNDATION_EXPORT const NSMapTableKeyCallBacks NSOwnedPointerMapKeyCallBacks; -FOUNDATION_EXPORT const NSMapTableValueCallBacks - NSOwnedPointerMapValueCallBacks; - -FOUNDATION_EXPORT NSMapTable * -NSCreateMapTable(NSMapTableKeyCallBacks keyCallBacks, - NSMapTableValueCallBacks valueCallBacks, NSUInteger capacity); -FOUNDATION_EXPORT NSMapTable * -NSCreateMapTableWithZone(NSMapTableKeyCallBacks keyCallBacks, - NSMapTableValueCallBacks valueCallBacks, - NSUInteger capacity, NSZone *zone); -FOUNDATION_EXPORT NSMapTable *NSCopyMapTableWithZone(NSMapTable *table, - NSZone *zone); -FOUNDATION_EXPORT void NSFreeMapTable(NSMapTable *table); -FOUNDATION_EXPORT void NSResetMapTable(NSMapTable *table); -FOUNDATION_EXPORT BOOL NSCompareMapTables(NSMapTable *table1, - NSMapTable *table2); -FOUNDATION_EXPORT NSUInteger NSCountMapTable(NSMapTable *table); -FOUNDATION_EXPORT BOOL NSMapMember(NSMapTable *table, const void *key, - void **originalKey, void **value); -FOUNDATION_EXPORT void *NSMapGet(NSMapTable *table, const void *key); -FOUNDATION_EXPORT NSMapEnumerator NSEnumerateMapTable(NSMapTable *table); -FOUNDATION_EXPORT BOOL NSNextMapEnumeratorPair(NSMapEnumerator *enumerator, - void **key, void **value); -FOUNDATION_EXPORT NSArray *NSAllMapTableKeys(NSMapTable *table); -FOUNDATION_EXPORT NSArray *NSAllMapTableValues(NSMapTable *table); -FOUNDATION_EXPORT void NSMapInsert(NSMapTable *table, const void *key, - const void *value); -FOUNDATION_EXPORT void *NSMapInsertIfAbsent(NSMapTable *table, const void *key, - const void *value); -FOUNDATION_EXPORT void -NSMapInsertKnownAbsent(NSMapTable *table, const void *key, const void *value); -FOUNDATION_EXPORT void NSMapRemove(NSMapTable *table, const void *key); -FOUNDATION_EXPORT NSString *NSStringFromMapTable(NSMapTable *table); diff --git a/Foundation/NSMapTable.m b/Foundation/NSMapTable.m deleted file mode 100644 index 75854bc0..00000000 --- a/Foundation/NSMapTable.m +++ /dev/null @@ -1,517 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -@implementation NSMapTable - -typedef struct _NSMapNode { - struct _NSMapNode *next; - void *key; - void *value; -} NSMapNode; - -const void *NSNotAnIntMapKey = (const void *) 0x80000000; -const void *NSNotAPointerMapKey = (const void *) 0xffffffff; - -static NSUInteger _NSMapPointerHash(NSMapTable *table, const void *object) { - return (NSUInteger) object >> 5; -} - -static NSUInteger _NSMapObjectHash(NSMapTable *table, const void *object) { - return [(id) object hash]; -} - -static BOOL _NSMapPointerIsEqual(NSMapTable *table, const void *object1, - const void *object2) -{ - return (object1 == object2) ? YES : NO; -} - -static BOOL _NSMapObjectIsEqual(NSMapTable *table, const void *object1, - const void *object2) -{ - BOOL result = [(id) object1 isEqual: (id) object2]; - - return result; -} - -static void _NSMapEmptyRetain(NSMapTable *table, const void *object) { -} - -static void _NSMapObjectRetain(NSMapTable *table, const void *object) { - [(id) object retain]; -} - -static void _NSMapEmptyRelease(NSMapTable *table, void *object) { -} - -static void _NSMapObjectRelease(NSMapTable *table, void *object) { - [(id) object release]; -} - -static void _NSMapPointerRelease(NSMapTable *table, void *object) { - NSZoneFree(NSZoneFromPointer(object), object); -} - -static NSString *_NSMapEmptyDescribe(NSMapTable *table, const void *object) { - return nil; -} - -static NSString *_NSMapObjectDescribe(NSMapTable *table, const void *object) { - return [(id) object description]; -} - -const NSMapTableKeyCallBacks NSIntMapKeyCallBacks = {NULL, NULL, NULL, NULL, - NULL}; - -const NSMapTableValueCallBacks NSIntMapValueCallBacks = {NULL, NULL, NULL}; - -const NSMapTableKeyCallBacks NSIntegerMapKeyCallBacks = {NULL, NULL, NULL, NULL, - NULL}; - -const NSMapTableValueCallBacks NSIntegerMapValueCallBacks = {NULL, NULL, NULL}; - -const NSMapTableKeyCallBacks NSNonOwnedPointerMapKeyCallBacks = { - NULL, NULL, NULL, NULL, NULL}; - -const NSMapTableValueCallBacks NSNonOwnedPointerMapValueCallBacks = {NULL, NULL, - NULL}; - -const NSMapTableKeyCallBacks NSNonOwnedPointerOrNullMapKeyCallBacks = { - NULL, NULL, NULL, NULL, NULL}; - -const NSMapTableKeyCallBacks NSNonRetainedObjectMapKeyCallBacks = { - _NSMapObjectHash, _NSMapObjectIsEqual, NULL, NULL, - _NSMapObjectDescribe}; - -const NSMapTableValueCallBacks NSNonRetainedObjectMapValueCallBacks = { - NULL, NULL, _NSMapObjectDescribe}; - -const NSMapTableKeyCallBacks NSObjectMapKeyCallBacks = { - _NSMapObjectHash, _NSMapObjectIsEqual, _NSMapObjectRetain, - _NSMapObjectRelease, _NSMapObjectDescribe}; - -const NSMapTableValueCallBacks NSObjectMapValueCallBacks = { - _NSMapObjectRetain, _NSMapObjectRelease, _NSMapObjectDescribe}; - -const NSMapTableKeyCallBacks NSOwnedPointerMapKeyCallBacks = { - NULL, NULL, NULL, _NSMapPointerRelease, NULL}; - -const NSMapTableValueCallBacks NSOwnedPointerMapValueCallBacks = { - NULL, _NSMapPointerRelease, NULL}; - -NSMapTable *NSCreateMapTable(NSMapTableKeyCallBacks keyCallBacks, - NSMapTableValueCallBacks valueCallBacks, - NSUInteger capacity) -{ - return NSCreateMapTableWithZone(keyCallBacks, valueCallBacks, capacity, - NULL); -} - -NSMapTable *NSCreateMapTableWithZone(NSMapTableKeyCallBacks keyCallBacks, - NSMapTableValueCallBacks valueCallBacks, - NSUInteger capacity, NSZone *zone) -{ - NSMapTable *table; - - table = [NSMapTable allocWithZone: zone]; - - table->keyCallBacks = NSZoneMalloc(zone, sizeof(NSMapTableKeyCallBacks)); - table->keyCallBacks->hash = - (keyCallBacks.hash != NULL) ? keyCallBacks.hash : _NSMapPointerHash; - table->keyCallBacks->isEqual = (keyCallBacks.isEqual != NULL) - ? keyCallBacks.isEqual - : _NSMapPointerIsEqual; - table->keyCallBacks->retain = (keyCallBacks.retain != NULL) - ? keyCallBacks.retain - : _NSMapEmptyRetain; - table->keyCallBacks->release = (keyCallBacks.release != NULL) - ? keyCallBacks.release - : _NSMapEmptyRelease; - table->keyCallBacks->describe = (keyCallBacks.describe != NULL) - ? keyCallBacks.describe - : _NSMapEmptyDescribe; - - table->valueCallBacks = - NSZoneMalloc(zone, sizeof(NSMapTableValueCallBacks)); - table->valueCallBacks->retain = (valueCallBacks.retain != NULL) - ? valueCallBacks.retain - : _NSMapEmptyRetain; - table->valueCallBacks->release = (valueCallBacks.release != NULL) - ? valueCallBacks.release - : _NSMapEmptyRelease; - table->valueCallBacks->describe = (valueCallBacks.describe != NULL) - ? valueCallBacks.describe - : _NSMapEmptyDescribe; - - table->count = 0; - table->nBuckets = (capacity < 4) ? 4 : capacity; - table->buckets = NSZoneCalloc(zone, table->nBuckets, sizeof(NSMapNode *)); - - return table; -} - -NSMapTable *NSCopyMapTableWithZone(NSMapTable *table, NSZone *zone) { - NSMapTable *newTable = NSCreateMapTableWithZone(*(table->keyCallBacks), - *(table->valueCallBacks), - table->count, zone); - NSMapEnumerator state = NSEnumerateMapTable(table); - void *key, *val; - - while (NSNextMapEnumeratorPair(&state, &key, &val)) - NSMapInsert(newTable, key, val); - - return newTable; -} - -void NSFreeMapTable(NSMapTable *table) { - NSZone *zone = NSZoneFromPointer(table); - NSUInteger i; - NSMapNode *j, *next; - - for (i = 0; i < table->nBuckets; i++) { - for (j = table->buckets[i]; j != NULL; j = next) { - table->keyCallBacks->release(table, j->key); - table->valueCallBacks->release(table, j->value); - next = j->next; - NSZoneFree(zone, j); - } - } - NSZoneFree(zone, table->buckets); - NSZoneFree(zone, table->keyCallBacks); - NSZoneFree(zone, table->valueCallBacks); - NSDeallocateObject(table); -} - -void NSResetMapTable(NSMapTable *table) { - NSZone *zone = NSZoneFromPointer(table); - NSUInteger i; - NSMapNode *j, *next; - - for (i = 0; i < table->nBuckets; i++) { - for (j = table->buckets[i]; j != NULL; j = next) { - table->keyCallBacks->release(table, j->key); - table->valueCallBacks->release(table, j->value); - next = j->next; - NSZoneFree(zone, j); - } - table->buckets[i] = NULL; - } - table->count = 0; -} - -BOOL NSCompareMapTables(NSMapTable *table1, NSMapTable *table2) { - NSUInteger i; - NSMapNode *j; - - if (table1->count != table2->count) - return NO; - - for (i = 0; i < table1->nBuckets; i++) - for (j = table1->buckets[i]; j != NULL; j = j->next) - if (NSMapGet(table2, j->key) != j->key) - return NO; - - return YES; -} - -NSUInteger NSCountMapTable(NSMapTable *table) { - return table->count; -} - -BOOL NSMapMember(NSMapTable *table, const void *key, void **originalKey, - void **value) -{ - NSUInteger i = table->keyCallBacks->hash(table, key) % table->nBuckets; - NSMapNode *j; - - for (j = table->buckets[i]; j != NULL; j = j->next) - if (table->keyCallBacks->isEqual(table, j->key, key)) { - *originalKey = j->key; - *value = j->value; - return YES; - } - - return NO; -} - -void *NSMapGet(NSMapTable *table, const void *key) { - NSUInteger i = table->keyCallBacks->hash(table, key) % table->nBuckets; - NSMapNode *j; - - for (j = table->buckets[i]; j != NULL; j = j->next) - if (j->key == key || table->keyCallBacks->isEqual(table, j->key, key)) - return j->value; - - return NULL; -} - -NSMapEnumerator NSEnumerateMapTable(NSMapTable *table) { - NSMapEnumerator state; - - state.table = table; - for (state.i = 0; state.i < table->nBuckets; state.i++) - if (table->buckets[state.i] != NULL) - break; - state.j = (state.i < table->nBuckets) ? table->buckets[state.i] : NULL; - - return state; -} - -BOOL NSNextMapEnumeratorPair(NSMapEnumerator *state, void **key, void **value) { - - if (state->j == NULL) - return NO; - - *key = state->j->key; - *value = state->j->value; - - if ((state->j = state->j->next) != NULL) - return YES; - - for (state->i++; state->i < state->table->nBuckets; state->i++) - if ((state->j = state->table->buckets[state->i]) != NULL) - return YES; - - state->j = NULL; - - return YES; -} - -NSArray *NSAllMapTableKeys(NSMapTable *table) { - NSMutableArray *array; - NSUInteger i; - NSMapNode *j; - - array = [[[NSMutableArray allocWithZone: NULL] - initWithCapacity: table->count] autorelease]; - - for (i = 0; i < table->nBuckets; i++) - for (j = table->buckets[i]; j != NULL; j = j->next) - [array addObject: j->key]; - - return array; -} - -NSArray *NSAllMapTableValues(NSMapTable *table) { - NSMutableArray *array; - NSUInteger i; - NSMapNode *j; - - array = [[[NSMutableArray allocWithZone: NULL] - initWithCapacity: table->count] autorelease]; - - for (i = 0; i < table->nBuckets; i++) - for (j = table->buckets[i]; j != NULL; j = j->next) - [array addObject: j->value]; - - return array; -} - -void NSMapInsert(NSMapTable *table, const void *key, const void *value) { - NSZone *zone; - NSUInteger hash = table->keyCallBacks->hash(table, key); - NSUInteger i = hash % table->nBuckets; - NSMapNode *j; - - for (j = table->buckets[i]; j != NULL; j = j->next) - if (table->keyCallBacks->isEqual(table, j->key, key)) { - void *oldKey = j->key; - void *oldValue = j->value; - - table->keyCallBacks->retain(table, key); - table->valueCallBacks->retain(table, value); - j->key = (void *) key; - j->value = (void *) value; - table->keyCallBacks->release(table, oldKey); - table->valueCallBacks->release(table, oldValue); - - return; - } - - zone = NSZoneFromPointer(table); - - if (table->count >= table->nBuckets) { - NSUInteger nBuckets = table->nBuckets; - NSMapNode **buckets = table->buckets, *next; - - table->nBuckets = nBuckets * 2; - table->buckets = - NSZoneCalloc(zone, table->nBuckets, sizeof(NSMapNode *)); - - for (i = 0; i < nBuckets; i++) - for (j = buckets[i]; j != NULL; j = next) { - NSUInteger newi = table->keyCallBacks->hash(table, j->key) % - table->nBuckets; - - next = j->next; - j->next = table->buckets[newi]; - table->buckets[newi] = j; - } - NSZoneFree(zone, buckets); - i = hash % table->nBuckets; - } - - table->keyCallBacks->retain(table, key); - table->valueCallBacks->retain(table, value); - j = NSZoneMalloc(zone, sizeof(NSMapNode)); - j->key = (void *) key; - j->value = (void *) value; - j->next = table->buckets[i]; - table->buckets[i] = j; - table->count++; -} - -void *NSMapInsertIfAbsent(NSMapTable *table, const void *key, const void *value) -{ - void *old = NSMapGet(table, key); - - if (old != NULL) - return old; - NSMapInsert(table, key, value); - return NULL; -} - -void NSMapInsertKnownAbsent(NSMapTable *table, const void *key, - const void *value) -{ - if (NSMapGet(table, key) != NULL) { - // FIX - // [NSException raise:NSInvalidArgumentException format:@"NSMapGet - // returned non-nil in NSMapInsertKnownAbsent"]; - } - NSMapInsert(table, key, value); -} - -void NSMapRemove(NSMapTable *table, const void *key) { - NSUInteger i = table->keyCallBacks->hash(table, key) % table->nBuckets; - NSMapNode *j = table->buckets[i], *prev = j; - - for (; j != NULL; j = j->next) { - if (table->keyCallBacks->isEqual(table, j->key, key)) { - if (prev == j) - table->buckets[i] = j->next; - else - prev->next = j->next; - table->keyCallBacks->release(table, j->key); - table->valueCallBacks->release(table, j->value); - NSZoneFree(NSZoneFromPointer(j), j); - table->count--; - return; - } - prev = j; - } -} - -NSString *NSStringFromMapTable(NSMapTable *table) { - NSMutableString *string = [NSMutableString string]; - NSString *fmt = @"%p", *eq = @" = ", *nl = @";\n"; - NSUInteger i; - NSMapNode *j; - - for (i = 0; i < table->nBuckets; i++) { - for (j = table->buckets[i]; j != NULL; j = j->next) { - NSString *desc; - - if ((desc = table->keyCallBacks->describe(table, j->key)) != nil) - [string appendString: desc]; - else - [string appendFormat: fmt, j->key]; - [string appendString: eq]; - if ((desc = table->valueCallBacks->describe(table, j->value)) != - nil) - [string appendString: desc]; - else - [string appendFormat: fmt, j->value]; - [string appendString: nl]; - } - } - - return string; -} - -+ mapTableWithStrongToStrongObjects { - return [NSCreateMapTable(NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, - 0) autorelease]; -} - -+ mapTableWithStrongToWeakObjects { - return [NSCreateMapTable(NSObjectMapKeyCallBacks, - NSNonRetainedObjectMapValueCallBacks, 0) - autorelease]; -} - -+ mapTableWithWeakToStrongObjects { - return [NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, 0) autorelease]; -} - -+ mapTableWithWeakToWeakObjects { - return [NSCreateMapTable(NSNonRetainedObjectMapKeyCallBacks, - NSNonRetainedObjectMapValueCallBacks, 0) - autorelease]; -} - -+ strongToStrongObjectsMapTable { - return [self mapTableWithStrongToStrongObjects]; -} - -+ strongToWeakObjectsMapTable { - return [self mapTableWithStrongToWeakObjects]; -} - -+ weakToStrongObjectsMapTable { - return [self mapTableWithWeakToStrongObjects]; -} - -+ weakToWeakObjectsMapTable { - return [self mapTableWithWeakToWeakObjects]; -} - -- (void) dealloc { - NSFreeMapTable(self); - return; - [super dealloc]; -} - -- objectForKey: key { - return NSMapGet(self, key); -} - -- (void) removeObjectForKey: key { - NSMapRemove(self, key); -} - -- (void) setObject: object forKey: key { - NSMapInsert(self, key, object); -} - -- (void) removeAllObjects { - NSResetMapTable(self); -} - -- (NSEnumerator *) keyEnumerator { - return [NSEnumerator_dictionaryKeysNew(self) autorelease]; -} - -@end diff --git a/Foundation/NSMetadata/NSMetadataItem.h b/Foundation/NSMetadata/NSMetadataItem.h deleted file mode 100644 index 6b25572e..00000000 --- a/Foundation/NSMetadata/NSMetadataItem.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMetadata/NSMetadataItem.m b/Foundation/NSMetadata/NSMetadataItem.m deleted file mode 100644 index ee0b9df1..00000000 --- a/Foundation/NSMetadata/NSMetadataItem.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMetadata/NSMetadataQuery.h b/Foundation/NSMetadata/NSMetadataQuery.h deleted file mode 100644 index 6b25572e..00000000 --- a/Foundation/NSMetadata/NSMetadataQuery.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMetadata/NSMetadataQuery.m b/Foundation/NSMetadata/NSMetadataQuery.m deleted file mode 100644 index ee0b9df1..00000000 --- a/Foundation/NSMetadata/NSMetadataQuery.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.h b/Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.h deleted file mode 100644 index 6b25572e..00000000 --- a/Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.m b/Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.m deleted file mode 100644 index ee0b9df1..00000000 --- a/Foundation/NSMetadata/NSMetadataQueryAttributeValueTuple.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMetadata/NSMetadataQueryResultGroup.h b/Foundation/NSMetadata/NSMetadataQueryResultGroup.h deleted file mode 100644 index 6b25572e..00000000 --- a/Foundation/NSMetadata/NSMetadataQueryResultGroup.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMetadata/NSMetadataQueryResultGroup.m b/Foundation/NSMetadata/NSMetadataQueryResultGroup.m deleted file mode 100644 index ee0b9df1..00000000 --- a/Foundation/NSMetadata/NSMetadataQueryResultGroup.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSMethodSignature.h b/Foundation/NSMethodSignature.h deleted file mode 100644 index ac3adfdd..00000000 --- a/Foundation/NSMethodSignature.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSString, NSMutableArray; - -@interface NSMethodSignature : NSObject { - char *_typesCString; - char *_returnType; - NSUInteger _numberOfArguments; - char **_types; - - void *_closure; - void *_closureInfo; -} - -+ (NSMethodSignature *) signatureWithObjCTypes: (const char *) types; - -- (BOOL) isOneway; -- (NSUInteger) frameLength; -- (NSUInteger) methodReturnLength; - -- (const char *) methodReturnType; - -- (NSUInteger) numberOfArguments; - -- (const char *) getArgumentTypeAtIndex: (NSUInteger) index; - -@end diff --git a/Foundation/NSMethodSignature.m b/Foundation/NSMethodSignature.m deleted file mode 100644 index a820dc3d..00000000 --- a/Foundation/NSMethodSignature.m +++ /dev/null @@ -1,176 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#include - -@implementation NSMethodSignature - -- initWithTypes: (const char *) typesCString { - const char *next, *last; - NSUInteger size, align; - BOOL first = YES; - size_t typesCStringLength = strlen(typesCString); - char *types[typesCStringLength]; // at most strlen arguments - - // not guaranteed that typesCString is static - _typesCString = NSZoneMalloc(NULL, typesCStringLength + 1); - strcpy(_typesCString, typesCString); - next = last = _typesCString; - _returnType = NULL; - _numberOfArguments = 0; - - while ((next = NSGetSizeAndAlignment(next, &size, &align)) != last) { - NSUInteger length = next - last; - char *nextCString = NSZoneMalloc(NULL, length + 1); - - strncpy(nextCString, last, length); - nextCString[length] = '\0'; - - if (first) - _returnType = nextCString; - else { - types[_numberOfArguments] = nextCString; - _numberOfArguments++; - } - - first = NO; - - while ((*next >= '0' && *next <= '9') || *next == '+' || *next == '-' || - *next == '?') - next++; - - if (*next == '\0') - break; - - last = next; - } - - if (_numberOfArguments) { - _types = NSZoneMalloc(NULL, _numberOfArguments * sizeof(char *)); - - NSInteger i; - - for (i = 0; i < _numberOfArguments; i++) - _types[i] = types[i]; - } - - return self; -} - -- (void) dealloc { - NSZoneFree(NULL, _typesCString); - - if (_returnType != NULL) - NSZoneFree(NULL, _returnType); - - NSInteger i; - if (_types != NULL) { - for (i = 0; i < _numberOfArguments; i++) - NSZoneFree(NULL, _types[i]); - NSZoneFree(NULL, _types); - } - - NSDeallocateObject(self); - return; - [super dealloc]; -} - -+ (NSMethodSignature *) signatureWithObjCTypes: (const char *) typesCString { - return [[[NSMethodSignature allocWithZone: NULL] - initWithTypes: typesCString] autorelease]; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"", - _returnType, _typesCString]; -} - -- (NSUInteger) hash { - return NSStringHashZeroTerminatedASCII(_typesCString); -} - -- (BOOL) isEqual: otherObject { - if (self == otherObject) - return YES; - - if ([otherObject isKindOfClass: [NSMethodSignature class]]) { - NSMethodSignature *other = otherObject; - - return (strcmp(_typesCString, other->_typesCString) == 0) ? YES : NO; - } - - return NO; -} - -- (BOOL) isOneway { - return (_returnType != NULL && _returnType[0] == 'V'); -} - -- (NSUInteger) frameLength { - NSUInteger result = 0; - NSInteger i; - - for (i = 0; i < _numberOfArguments; i++) { - NSUInteger align; - NSUInteger naturalSize; - NSUInteger promotedSize; - - NSGetSizeAndAlignment(_types[i], &naturalSize, &align); - promotedSize = ((naturalSize + sizeof(long) - 1) / sizeof(long)) * - sizeof(long); - - result += promotedSize; - } - return result; -} - -- (NSUInteger) methodReturnLength { - NSUInteger size, align; - - NSGetSizeAndAlignment(_returnType, &size, &align); - - return size; -} - -- (const char *) methodReturnType { - return _returnType; -} - -- (NSUInteger) numberOfArguments { - return _numberOfArguments; -} - -- (const char *) getArgumentTypeAtIndex: (NSUInteger) index { - if (index >= _numberOfArguments) { - [NSException raise: NSInvalidArgumentException - format: @"index (%d) is beyond number of arguments (%d)", - index, _numberOfArguments]; - return NULL; - } - - return _types[index]; -} - -@end diff --git a/Foundation/NSNetService/NSNetServices.h b/Foundation/NSNetService/NSNetServices.h deleted file mode 100644 index 2bf6d11e..00000000 --- a/Foundation/NSNetService/NSNetServices.h +++ /dev/null @@ -1,195 +0,0 @@ -/* Copyright(c)2006 Chris B. Vetter - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files(the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -*/ -#import -#import -#import -#import - -@class NSInputStream, NSOutputStream, NSRunLoop, NSSelectInputSource, NSTimer, - NSMutableDictionary; - -typedef enum { - NSNetServicesUnknownError = -72000L, - NSNetServicesCollisionError = -72001L, - NSNetServicesNotFoundError = -72002L, - NSNetServicesActivityInProgress = -72003L, - NSNetServicesBadArgumentError = -72004L, - NSNetServicesCancelledError = -72005L, - NSNetServicesInvalidError = -72006L, - NSNetServicesTimeoutError = -72007L -} NSNetServicesError; - -enum { - NSNetServiceNoAutoRename = 0x01, -}; - -typedef NSUInteger NSNetServiceOptions; - -FOUNDATION_EXPORT NSString *const NSNetServicesErrorCode; -FOUNDATION_EXPORT NSString *const NSNetServicesErrorDomain; - -@interface NSNetService : NSObject { - NSString *_domain; - NSString *_type; - NSString *_name; - uint16_t _port; - id _delegate; - - NSString *_host; - NSMutableArray *_addresses; - NSData *_txtRecord; - - struct bonjour_DNSService *_netService; - NSSelectInputSource *_inputSource; - - NSTimer *_resolverTimeout; - - int _interfaceIndex; - - BOOL _isPublishing, _isMonitoring; - - NSInputStream *_inputStream; - NSOutputStream *_outputStream; -} - -+ (NSData *) dataFromTXTRecordDictionary: (NSDictionary *) txtDictionary; -+ (NSDictionary *) dictionaryFromTXTRecordData: (NSData *) txtData; - -- initWithDomain: (NSString *) domain - type: (NSString *) type - name: (NSString *) name; -- initWithDomain: (NSString *) domain - type: (NSString *) type - name: (NSString *) name - port: (int) port; - -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; - -- (void) publishWithOptions: (NSNetServiceOptions) options; -- (void) publish; - -- (void) resolve; -- (void) resolveWithTimeout: (NSTimeInterval) timeout; - -- (void) stop; - -- (void) startMonitoring; -- (void) stopMonitoring; - -- delegate; -- (void) setDelegate: delegate; - -- (NSArray *) addresses; -- (NSString *) domain; -- (NSString *) hostName; -- (NSString *) name; -- (NSString *) type; -- (int) port; - -- (NSString *) protocolSpecificInformation; -- (void) setProtocolSpecificInformation: (NSString *) specificInformation; - -- (NSData *) TXTRecordData; -- (BOOL) setTXTRecordData: (NSData *) recordData; - -- (BOOL) getInputStream: (NSInputStream **) inputStream - outputStream: (NSOutputStream **) outputStream; - -@end - -@interface NSObject (NSNetServiceDelegateMethods) - -- (void) netServiceWillPublish: (NSNetService *) sender; -- (void) netServiceDidPublish: (NSNetService *) sender; -- (void) netService: (NSNetService *) sender - didNotPublish: (NSDictionary *) errorDict; -- (void) netServiceWillResolve: (NSNetService *) sender; -- (void) netServiceDidResolveAddress: (NSNetService *) sender; -- (void) netService: (NSNetService *) sender - didNotResolve: (NSDictionary *) errorDict; -- (void) netServiceDidStop: (NSNetService *) sender; -- (void) netService: (NSNetService *) sender - didUpdateTXTRecordData: (NSData *) data; - -@end - -@protocol NSNetServiceDelegate - -@end - -@class NSRunLoop, NSDictionary, NSNetService, NSSelectInputSource, - NSMutableDictionary; - -@interface NSNetServiceBrowser : NSObject { - @private - struct bonjour_DNSService *_netServiceBrowser; - NSSelectInputSource *_inputSource; - id _delegate; - - NSMutableDictionary *_services; - // List of found services. - // Key is <_name_type_domain> and value is an initialized NSNetService. - - int _interfaceIndex; -} - -- init; - -- delegate; -- (void) setDelegate: delegate; - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; - -- (void) searchForAllDomains; -- (void) searchForBrowsableDomains; -- (void) searchForRegistrationDomains; - -- (void) searchForServicesOfType: (NSString *) serviceType - inDomain: (NSString *) domainName; - -- (void) stop; - -@end - -@interface NSObject (NSNetServiceBrowserDelegate) - -- (void) netServiceBrowserWillSearch: (NSNetServiceBrowser *) netServiceBrowser; -- (void) netServiceBrowser: (NSNetServiceBrowser *) netServiceBrowser - didNotSearch: (NSDictionary *) errorDict; -- (void) netServiceBrowserDidStopSearch: - (NSNetServiceBrowser *) netServiceBrowser; -- (void) netServiceBrowser: (NSNetServiceBrowser *) netServiceBrowser - didFindDomain: (NSString *) domainString - moreComing: (BOOL) moreComing; -- (void) netServiceBrowser: (NSNetServiceBrowser *) netServiceBrowser - didRemoveDomain: (NSString *) domainString - moreComing: (BOOL) moreComing; -- (void) netServiceBrowser: (NSNetServiceBrowser *) netServiceBrowser - didFindService: (NSNetService *) netService - moreComing: (BOOL) moreComing; -- (void) netServiceBrowser: (NSNetServiceBrowser *) netServiceBrowser - didRemoveService: (NSNetService *) netService - moreComing: (BOOL) moreComing; - -@end diff --git a/Foundation/NSNetService/NSNetServices.m b/Foundation/NSNetService/NSNetServices.m deleted file mode 100644 index 6e8c224a..00000000 --- a/Foundation/NSNetService/NSNetServices.m +++ /dev/null @@ -1,1268 +0,0 @@ -/* Copyright (c) 2006 Chris B. Vetter - Copyright (c) 2008 Dirk Theisen - Copyright (c) 2008,2010 Christopher J. W. Lloyd - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - - */ -#import - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#ifdef WIN32 -#include // for ntohs -#else -#include -#endif -#include - -#import "bonjour.h" - -NSString *const NSNetServicesErrorCode = @"NSNetServicesErrorCode"; -NSString *const NSNetServicesErrorDomain = @"NSNetServicesErrorDomain"; - -@implementation NSNetService - -- (void) _willPublish { - if ([_delegate respondsToSelector: @selector(netServiceWillPublish:)]) - [_delegate netServiceWillPublish: self]; -} - -- (void) _didPublish { - if ([_delegate respondsToSelector: @selector(netServiceDidPublish:)]) - [_delegate netServiceDidPublish: self]; -} - -- (void) _didNotPublish: (NSDictionary *) errorDict { - if ([_delegate respondsToSelector: @selector(netService:didNotPublish:)]) - [_delegate netService: self didNotPublish: errorDict]; -} - -- (void) _willResolve { - if ([_delegate respondsToSelector: @selector(netServiceWillResolve:)]) - [_delegate netServiceWillResolve: self]; -} - -- (void) _didResolveAddress { - if ([_delegate respondsToSelector: @selector(netServiceDidResolveAddress:)]) - [_delegate netServiceDidResolveAddress: self]; -} - -- (void) _didNotResolve: (NSDictionary *) errorDict { - if ([_delegate respondsToSelector: @selector(netService:didNotResolve:)]) - [_delegate netService: self didNotResolve: errorDict]; -} - -- (void) _netServiceDidStop { - if ([_delegate respondsToSelector: @selector(netServiceDidStop:)]) - [_delegate netServiceDidStop: self]; -} - -- (void) _didUpdateTXTRecordData: (NSData *) data { - if ([_delegate respondsToSelector: @selector(netService: - didUpdateTXTRecordData:)]) - [_delegate netService: self didUpdateTXTRecordData: data]; -} - -- (void) beginAsynchronousNetService { - NSSocket *socket = [[NSSocket alloc] - initWithFileDescriptor: bonjour_DNSServiceRefSockFD(_netService)]; - - _inputSource = [[NSSelectInputSource alloc] initWithSocket: socket]; - [socket release]; - - [_inputSource setDelegate: self]; - [_inputSource setSelectEventMask: NSSelectReadEvent]; - - [[NSRunLoop currentRunLoop] addInputSource: _inputSource - forMode: NSDefaultRunLoopMode]; -} - -- (void) _invalidateNetService { - [_inputSource invalidate]; - [_inputSource release]; - _inputSource = nil; - - if (_netService != NULL) { - bonjour_DNSServiceRefDeallocate(_netService); - _netService = NULL; - } -} - -- (void) stopResolving: (NSTimer *) timer { - [self _invalidateNetService]; - - [_resolverTimeout invalidate]; - [_resolverTimeout release]; - _resolverTimeout = nil; - - [self _didNotResolve: bonjour_CreateError(self, NSNetServicesTimeoutError)]; -} - -- (void) addAddress: (const void *) rdata - length: (uint16_t) rdlen - type: (uint16_t) rrtype - interfaceIndex: (uint32_t) interface -{ - NSData *data = nil; - - switch (rrtype) { - - case bonjour_kDNSServiceType_A: // ipv4 - data = NSSocketAddressDataForNetworkOrderAddressBytesAndPort( - rdata, 4, htons(_port), interface); - break; - - case bonjour_kDNSServiceType_AAAA: // ipv6 - case bonjour_kDNSServiceType_A6: // deprecates AAAA - data = NSSocketAddressDataForNetworkOrderAddressBytesAndPort( - rdata, 16, htons(_port), interface); - break; - } - - if (data != nil) - [_addresses addObject: data]; -} - -- (void) queryCallback: (bonjour_DNSServiceRef) sdRef - flags: (bonjour_DNSServiceFlags) flags - interface: (uint32_t) interfaceIndex - error: (bonjour_DNSServiceErrorType) errorCode - fullname: (const char *) fullname - type: (uint16_t) rrtype - class: (uint16_t) rrclass - length: (uint16_t) rdlen - data: (const void *) rdata - ttl: (uint32_t) ttl -{ - if (errorCode != bonjour_kDNSServiceErr_NoError) { - [self _invalidateNetService]; - - [self _didNotResolve: bonjour_CreateError(self, errorCode)]; - - return; - } - - switch (rrtype) { - - case bonjour_kDNSServiceType_A: // 1 -- AF_INET - [self addAddress: rdata - length: rdlen - type: rrtype - interfaceIndex: interfaceIndex]; - break; - - case bonjour_kDNSServiceType_NS: - case bonjour_kDNSServiceType_MD: - case bonjour_kDNSServiceType_MF: - case bonjour_kDNSServiceType_CNAME: // 5 - case bonjour_kDNSServiceType_SOA: - case bonjour_kDNSServiceType_MB: - case bonjour_kDNSServiceType_MG: - case bonjour_kDNSServiceType_MR: - case bonjour_kDNSServiceType_NULL: // 10 - case bonjour_kDNSServiceType_WKS: - case bonjour_kDNSServiceType_PTR: - case bonjour_kDNSServiceType_HINFO: - case bonjour_kDNSServiceType_MINFO: - case bonjour_kDNSServiceType_MX: // 15 - // not handled (yet) - break; - - case bonjour_kDNSServiceType_TXT: - [_txtRecord release]; - _txtRecord = [[NSData alloc] initWithBytes: rdata length: rdlen]; - - [self _didUpdateTXTRecordData: _txtRecord]; - break; - - case bonjour_kDNSServiceType_RP: - case bonjour_kDNSServiceType_AFSDB: - case bonjour_kDNSServiceType_X25: - case bonjour_kDNSServiceType_ISDN: // 20 - case bonjour_kDNSServiceType_RT: - case bonjour_kDNSServiceType_NSAP: - case bonjour_kDNSServiceType_NSAP_PTR: - case bonjour_kDNSServiceType_SIG: - case bonjour_kDNSServiceType_KEY: // 25 - case bonjour_kDNSServiceType_PX: - case bonjour_kDNSServiceType_GPOS: - // not handled (yet) - break; - - case bonjour_kDNSServiceType_AAAA: // 28 -- AF_INET6 - [self addAddress: rdata - length: rdlen - type: rrtype - interfaceIndex: interfaceIndex]; - break; - - case bonjour_kDNSServiceType_LOC: - case bonjour_kDNSServiceType_NXT: // 30 - case bonjour_kDNSServiceType_EID: - case bonjour_kDNSServiceType_NIMLOC: - case bonjour_kDNSServiceType_SRV: - case bonjour_kDNSServiceType_ATMA: - case bonjour_kDNSServiceType_NAPTR: // 35 - case bonjour_kDNSServiceType_KX: - case bonjour_kDNSServiceType_CERT: - // not handled (yet) - break; - - case bonjour_kDNSServiceType_A6: // 38 -- AF_INET6, deprecates AAAA - [self addAddress: rdata - length: rdlen - type: rrtype - interfaceIndex: interfaceIndex]; - break; - - case bonjour_kDNSServiceType_DNAME: - case bonjour_kDNSServiceType_SINK: // 40 - case bonjour_kDNSServiceType_OPT: - // not handled (yet) - break; - - case bonjour_kDNSServiceType_TKEY: // 249 - case bonjour_kDNSServiceType_TSIG: // 250 - case bonjour_kDNSServiceType_IXFR: - case bonjour_kDNSServiceType_AXFR: - case bonjour_kDNSServiceType_MAILB: - case bonjour_kDNSServiceType_MAILA: - // not handled (yet) - break; - - case bonjour_kDNSServiceType_ANY: - break; - - default: - if (NSDebugEnabled) - NSLog(@"-[%@ %s] Don't know how to handle rrtype <%d>", - [self class], sel_getName(_cmd), rrtype); - break; - } - - if (!(flags & bonjour_kDNSServiceFlagsMoreComing)) { - - [self _invalidateNetService]; - - [_resolverTimeout invalidate]; - [_resolverTimeout release]; - _resolverTimeout = nil; - - if ([_addresses count] > 0) - [self _didResolveAddress]; - else - [self _didNotResolve: bonjour_CreateError( - self, NSNetServicesNotFoundError)]; - } -} - -static BONJOUR_CALL void -QueryCallback(bonjour_DNSServiceRef sdRef, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceErrorType errorCode, - const char *fullname, uint16_t rrtype, uint16_t rrclass, - uint16_t rdlen, const void *rdata, uint32_t ttl, void *context) -{ - [(NSNetService *) context queryCallback: sdRef - flags: flags - interface: interfaceIndex - error: errorCode - fullname: fullname - type: rrtype - class: rrclass - length: rdlen - data: rdata - ttl: ttl]; -} - -- (void) resolverCallback: (bonjour_DNSServiceRef) sdRef - flags: (bonjour_DNSServiceFlags) flags - interface: (uint32_t) interfaceIndex - error: (bonjour_DNSServiceErrorType) errorCode - fullname: (const char *) fullname - target: (const char *) hosttarget - port: (uint16_t) port - length: (uint16_t) txtLen - record: (const char *) txtRecord -{ - if (errorCode != bonjour_kDNSServiceErr_NoError) { - [self _invalidateNetService]; - [self _didNotResolve: bonjour_CreateError(self, errorCode)]; - return; - } - - _port = ntohs(port); - - [_txtRecord release]; - _txtRecord = nil; - [_host release]; - _host = nil; - - if (txtRecord != NULL) - _txtRecord = [[NSData alloc] initWithBytes: txtRecord length: txtLen]; - - if (hosttarget != NULL) - _host = [[NSString alloc] initWithUTF8String: hosttarget]; - - // Add the interface so all subsequent queries are on the same interface - _interfaceIndex = interfaceIndex; - - [_inputSource invalidate]; - [_inputSource release]; - _inputSource = nil; - - bonjour_DNSServiceRefDeallocate(_netService); - _netService = NULL; - - // Prepare query for A and/or AAAA record - errorCode = bonjour_DNSServiceQueryRecord( - &_netService, 0, _interfaceIndex, [_host UTF8String], - bonjour_kDNSServiceType_ANY, bonjour_kDNSServiceClass_IN, - QueryCallback, self); - - if (bonjour_kDNSServiceErr_NoError != errorCode) { - [self _invalidateNetService]; - - [self _didNotResolve: bonjour_CreateError(self, errorCode)]; - return; - } - - [self beginAsynchronousNetService]; -} - -static BONJOUR_CALL void -ResolverCallback(bonjour_DNSServiceRef sdRef, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceErrorType errorCode, - const char *fullname, const char *hosttarget, uint16_t port, - uint16_t txtLen, const unsigned char *txtRecord, void *context) -{ - [(NSNetService *) context resolverCallback: sdRef - flags: flags - interface: interfaceIndex - error: errorCode - fullname: fullname - target: hosttarget - port: port - length: txtLen - record: (const char *) txtRecord]; -} - -- (void) registerCallback: (bonjour_DNSServiceRef) sdRef - flags: (bonjour_DNSServiceFlags) flags - error: (bonjour_DNSServiceErrorType) errorCode - name: (const char *) name - type: (const char *) regtype - domain: (const char *) domain -{ - if (errorCode != bonjour_kDNSServiceErr_NoError) { - [self _invalidateNetService]; - - [self _didNotPublish: bonjour_CreateError(self, errorCode)]; - return; - } - - [self _didPublish]; -} - -static BONJOUR_CALL void -RegistrationCallback(bonjour_DNSServiceRef sdRef, bonjour_DNSServiceFlags flags, - bonjour_DNSServiceErrorType errorCode, const char *name, - const char *regtype, const char *domain, void *context) -{ - [(NSNetService *) context registerCallback: sdRef - flags: flags - error: errorCode - name: name - type: regtype - domain: domain]; -} - -- (void) selectInputSource: (NSSelectInputSource *) inputSource - selectEvent: (NSUInteger) selectEvent -{ - - if (selectEvent & NSSelectReadEvent) { - bonjour_DNSServiceErrorType err = - bonjour_DNSServiceProcessResult(_netService); - - if (err != bonjour_kDNSServiceErr_NoError) { - if (_isPublishing) - [self _didNotPublish: bonjour_CreateError(self, err)]; - else - [self _didNotResolve: bonjour_CreateError(self, err)]; - } - } -} - -+ (NSData *) dataFromTXTRecordDictionary: (NSDictionary *) txtDictionary { - NSUInteger i, count = [txtDictionary count]; - - if (count == 0) { - NSLog(@"Dictionary seems empty"); - return nil; - } - - NSArray *keys = [txtDictionary allKeys]; - - bonjour_TXTRecordRef txt; - char keyCString[256]; - - bonjour_TXTRecordCreate(&txt, 0, NULL); - - for (i = 0; i < count; i++) { - id key = [keys objectAtIndex: i]; - id value = [txtDictionary objectForKey: key]; - NSInteger length = 0; - size_t used = 0; - bonjour_DNSServiceErrorType err = bonjour_kDNSServiceErr_Unknown; - - if (![key isKindOfClass: [NSString class]]) { - NSLog(@"%@ is not a string", key); - break; - } - - length = [key length]; - [key getCString: keyCString maxLength: sizeof keyCString]; - used = strlen(keyCString); - - if (!length || (used >= sizeof keyCString)) { - NSLog(@"incorrect length %d - %d - %d", length, used, - sizeof keyCString); - break; - } - - strcat(keyCString, "\0"); - - if ([value isKindOfClass: [NSString class]]) { - char cString[256]; - - length = [value length]; - [value getCString: cString maxLength: sizeof cString]; - used = strlen(cString); - - if (used >= sizeof cString) { - NSLog(@"incorrect length %d - %d - %d", length, used, - sizeof cString); - break; - } - - err = bonjour_TXTRecordSetValue(&txt, (const char *) keyCString, - used, cString); - } else if ([value isKindOfClass: [NSData class]] && - [value length] < 256) { - err = bonjour_TXTRecordSetValue(&txt, (const char *) keyCString, - [value length], [value bytes]); - - } else if (value == [NSNull null]) { - err = bonjour_TXTRecordSetValue(&txt, (const char *) keyCString, 0, - NULL); - } else { - NSLog(@"unknown value type"); - break; - } - - if (err != bonjour_kDNSServiceErr_NoError) { - NSLog(@"error creating data type"); - break; - } - } - - NSData *result = - (i < count) - ? nil - : [NSData dataWithBytes: bonjour_TXTRecordGetBytesPtr(&txt) - length: bonjour_TXTRecordGetLength(&txt)]; - - bonjour_TXTRecordDeallocate(&txt); - - return result; -} - -+ (NSDictionary *) dictionaryFromTXTRecordData: (NSData *) txtData { - NSMutableDictionary *result = nil; - NSInteger len = 0; - const void *txt = 0; - - len = [txtData length]; - txt = [txtData bytes]; - - // - // A TXT record cannot exceed 65535 bytes, see Chapter 6.1 of - // http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt - // - if ((len > 0) && (len < 65536)) { - uint16_t i = 0, count = 0; - - // get number of keys - count = bonjour_TXTRecordGetCount(len, txt); - result = [NSMutableDictionary dictionaryWithCapacity: 1]; - - if (result) { - // go through all keys - for (; i < count; i++) { - char keyCString[256]; - uint8_t valLen = 0; - const void *value = NULL; - bonjour_DNSServiceErrorType err = - bonjour_kDNSServiceErr_NoError; - - err = bonjour_TXTRecordGetItemAtIndex( - len, txt, i, sizeof keyCString, keyCString, &valLen, - &value); - - // only if we can get the keyCString and value... - if (bonjour_kDNSServiceErr_NoError == err) { - NSString *str = [NSString stringWithUTF8String: keyCString]; - NSData *data = nil; - - if (value) { - data = [NSData dataWithBytes: value length: valLen]; - } - // only add if keyCString and value were created and - // keyCString doesn't exist yet - if (data && str && [str length] && - ![result objectForKey: str]) { - [result setObject: data forKey: str]; - } - // I'm not exactly sure what to do if there is a keyCString - // WITHOUT a value Theoretically '<6>foobar' should be - // identical to '<7>foobar=' i.e. the value would be [NSNull - // null] - else { - [result setObject: [NSNull null] forKey: str]; - } - } else { - NSLog(@"Couldn't get TXTRecord item"); - } - } - } else { - NSLog(@"Couldn't create dictionary"); - } - } else { - NSLog(@"Incorrect length %d", len); - } - return result; -} - -- (id) init { - return nil; -} - -- initWithDomain: (NSString *) domain - type: (NSString *) type - name: (NSString *) name -{ - return [self initWithDomain: domain - type: type - name: name - port: -1]; // -1 to indicate resolution, not publish -} - -- initWithDomain: (NSString *) domain - type: (NSString *) type - name: (NSString *) name - port: (int) port -{ - _domain = [domain copy]; - _type = [type copy]; - _name = [name copy]; - _port = port; - _delegate = nil; - - _host = nil; - _addresses = [[NSMutableArray alloc] init]; - _interfaceIndex = 0; - - _isPublishing = (port == -1) ? NO : YES; - - _netService = NULL; - _inputSource = nil; - _resolverTimeout = nil; - - _inputStream = nil; - _outputStream = nil; - - return self; -} - -- (void) dealloc { - [self stopMonitoring]; - [self _invalidateNetService]; - [_domain release]; - [_type release]; - [_name release]; - [_host release]; - [_addresses release]; - - [_inputStream release]; - [_outputStream release]; - - _delegate = nil; - [super dealloc]; -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - [runLoop addInputSource: _inputSource forMode: mode]; -} - -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - [runLoop removeInputSource: _inputSource forMode: mode]; -} - -- (void) publishWithOptions: (NSNetServiceOptions) options { - bonjour_DNSServiceErrorType err = bonjour_kDNSServiceErr_NoError; - bonjour_DNSServiceFlags flags = 0; - - // FIXME:these checks seem contrived, check real behavior - if (NO == _isPublishing) - err = NSNetServicesBadArgumentError; - else if (!_delegate) - err = NSNetServicesInvalidError; - else if (_inputSource != nil) - err = NSNetServicesActivityInProgress; - else { - if (_resolverTimeout) { - [_resolverTimeout invalidate]; - [_resolverTimeout release]; - _resolverTimeout = nil; - } - - err = bonjour_DNSServiceRegister( - &_netService, flags, _interfaceIndex, [_name UTF8String], - [_type UTF8String], [_domain UTF8String], NULL, htons(_port), 0, - NULL, RegistrationCallback, self); - } - - if (err != bonjour_kDNSServiceErr_NoError) { - [self _didNotPublish: bonjour_CreateError(self, err)]; - return; - } - - [self beginAsynchronousNetService]; - - [self _willPublish]; -} - -- (void) publish { - [self publishWithOptions: 0]; -} - -- (void) resolve { - [self resolveWithTimeout: 5]; -} - -- (void) resolveWithTimeout: (NSTimeInterval) timeout { - bonjour_DNSServiceErrorType err = bonjour_kDNSServiceErr_NoError; - bonjour_DNSServiceFlags flags = 0; - - [_addresses removeAllObjects]; - - // FIXME:these checks seem contrived, check real behavior - if (_isPublishing) { - err = NSNetServicesBadArgumentError; - } else if (!_delegate) { - err = NSNetServicesInvalidError; - } else if (_inputSource) { - err = NSNetServicesActivityInProgress; - } else { - if (_resolverTimeout) { - [_resolverTimeout invalidate]; - [_resolverTimeout release]; - _resolverTimeout = nil; - } - - err = bonjour_DNSServiceResolve(&_netService, flags, _interfaceIndex, - [_name UTF8String], [_type UTF8String], - [_domain UTF8String], ResolverCallback, - self); - - if (err == bonjour_kDNSServiceErr_NoError) { - _resolverTimeout = [[NSTimer - scheduledTimerWithTimeInterval: timeout - target: self - selector: @selector(stopResolving:) - userInfo: nil - repeats: NO] retain]; - } - } - - if (err != bonjour_kDNSServiceErr_NoError) { - [self _didNotResolve: bonjour_CreateError(self, err)]; - return; - } - - [self beginAsynchronousNetService]; - [self _willResolve]; -} - -- (void) stop { - [self _invalidateNetService]; - - [self _netServiceDidStop]; -} - -- (void) startMonitoring { - // Obviously this will only work on a resolver - if (_isPublishing) - return; - if (_isMonitoring) - return; - - bonjour_DNSServiceErrorType err = bonjour_kDNSServiceErr_NoError; - - if (!_delegate) - err = NSNetServicesInvalidError; - else if (_inputSource != nil) - err = NSNetServicesActivityInProgress; - else { - NSString *fullname = - [NSString stringWithFormat: @"%@.%@%@", [self name], - [self type], [self domain]]; - - err = bonjour_DNSServiceQueryRecord( - &_netService, bonjour_kDNSServiceFlagsLongLivedQuery, 0, - [fullname UTF8String], bonjour_kDNSServiceType_TXT, - bonjour_kDNSServiceClass_IN, QueryCallback, self); - - if (bonjour_kDNSServiceErr_NoError == err) { - NSSocket *socket = [[NSSocket alloc] - initWithFileDescriptor: bonjour_DNSServiceRefSockFD( - _netService)]; - - _inputSource = [[NSSelectInputSource alloc] initWithSocket: socket]; - [socket release]; - [_inputSource setDelegate: self]; - [_inputSource setSelectEventMask: NSSelectReadEvent]; - - [[NSRunLoop currentRunLoop] addInputSource: _inputSource - forMode: NSDefaultRunLoopMode]; - _isMonitoring = YES; - } - } -} - -- (void) stopMonitoring { - if (_isPublishing) - return; - if (!_isMonitoring) - return; - - [self _invalidateNetService]; - - _isMonitoring = NO; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: (id) delegate { - _delegate = delegate; -} - -- (NSArray *) addresses { - return _addresses; -} - -- (NSString *) domain { - return _domain; -} - -- (NSString *) hostName { - return _host; -} - -- (NSString *) name { - return _name; -} - -- (NSString *) type { - return _type; -} - -- (int) port { - return _port; -} - -- (NSString *) protocolSpecificInformation { - NSMutableArray *array = nil; - - // I must admit, the following may not be entirely correct... - - NSDictionary *dictionary = - [NSNetService dictionaryFromTXTRecordData: [self TXTRecordData]]; - - if (dictionary) { - NSEnumerator *keys = [dictionary keyEnumerator]; - id key = nil; - - array = [NSMutableArray arrayWithCapacity: [dictionary count]]; - - while ((key = [keys nextObject]) != nil) { - id value = [dictionary objectForKey: key]; - - if (value != [NSNull null]) { - [array addObject: - [NSString - stringWithFormat: - @"%@=%@", key, - [NSString - stringWithCString: - [value bytes] - length: [value length]]]]; - } else if ([key length]) { - [array addObject: [NSString stringWithFormat: @"%@", key]]; - } - } - } - - return ([array count] ? [array componentsJoinedByString: @"\001"] - : (NSString *) nil); -} - -- (void) setProtocolSpecificInformation: (NSString *) specificInformation { - // Again, the following may not be entirely correct... - - NSArray *array = [specificInformation componentsSeparatedByString: @"\001"]; - NSUInteger i, count = [array count]; - - if (count > 0) { - NSMutableDictionary *dictionary = - [NSMutableDictionary dictionaryWithCapacity: count]; - - for (i = 0; i < count; i++) { - NSArray *parts = [[array objectAtIndex: i] - componentsSeparatedByString: @"="]; - - [dictionary - setObject: [[parts objectAtIndex: 1] - dataUsingEncoding: NSUTF8StringEncoding] - forKey: [parts objectAtIndex: 0]]; - } - - [self setTXTRecordData: - [NSNetService dataFromTXTRecordDictionary: dictionary]]; - } -} - -- (NSData *) TXTRecordData { - return _txtRecord; -} - -- (BOOL) setTXTRecordData: (NSData *) recordData { - BOOL result = NO; - - // Not allowed on a resolver... - if (_isPublishing) { - bonjour_DNSServiceErrorType err = bonjour_kDNSServiceErr_NoError; - - // Set the value, or remove it if empty - recordData = [recordData copy]; - [_txtRecord release]; - _txtRecord = recordData; - // Assume it worked - result = YES; - - // Now update the record so others can pick it up - err = bonjour_DNSServiceUpdateRecord( - _netService, NULL, 0, recordData ? [recordData length] : 0, - recordData ? [recordData bytes] : NULL, 0); - if (err) { - result = NO; - } - } - - return result; -} - -- (BOOL) getInputStream: (NSInputStream **) inputStream - outputStream: (NSOutputStream **) outputStream -{ - NSHost *host = [NSHost hostWithName: _host]; - - if (inputStream || outputStream) { - if (!_inputStream || !_outputStream) { - [NSStream getStreamsToHost: host - port: _port - inputStream: (!_inputStream ? inputStream - : NULL) outputStream - :(!_outputStream ? outputStream : NULL)]; - } - if (inputStream) { - if (!_inputStream) - _inputStream = [*inputStream retain]; - else - *inputStream = _inputStream; - } - if (outputStream) { - if (!_outputStream) - _outputStream = [*outputStream retain]; - else - *outputStream = _outputStream; - } - return ((inputStream && _inputStream) || - (outputStream && _outputStream)); - } - return NO; -} - -@end - -@interface NSNetServiceBrowser (forward) -- (void) enumCallback: (bonjour_DNSServiceRef) sdRef - flags: (bonjour_DNSServiceFlags) flags - interface: (uint32_t) interfaceIndex - error: (bonjour_DNSServiceErrorType) errorCode - domain: (const char *) replyDomain; - -- (void) browseCallback: (bonjour_DNSServiceRef) sdRef - flags: (bonjour_DNSServiceFlags) flags - interface: (uint32_t) interfaceIndex - error: (bonjour_DNSServiceErrorType) errorCode - name: (const char *) replyName - type: (const char *) replyType - domain: (const char *) replyDomain; -@end - -static BONJOUR_CALL void -EnumerationCallback(bonjour_DNSServiceRef sdRef, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, - bonjour_DNSServiceErrorType errorCode, - const char *replyDomain, void *context) -{ - [(id) context enumCallback: sdRef - flags: flags - interface: interfaceIndex - error: errorCode - domain: replyDomain]; -} - -static BONJOUR_CALL void -BrowserCallback(bonjour_DNSServiceRef sdRef, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceErrorType errorCode, - const char *replyName, const char *replyType, - const char *replyDomain, void *context) -{ - [(id) context browseCallback: sdRef - flags: flags - interface: interfaceIndex - error: errorCode - name: replyName - type: replyType - domain: replyDomain]; -} - -@implementation NSNetServiceBrowser - -- init { - [super init]; - - _netServiceBrowser = NULL; - _delegate = nil; - _services = [[NSMutableDictionary alloc] init]; - _interfaceIndex = 0; - - return self; -} - -- (void) invalidate { - [_inputSource invalidate]; - [_inputSource release]; - _inputSource = nil; - - if (_netServiceBrowser) { - bonjour_DNSServiceRefDeallocate(_netServiceBrowser); - _netServiceBrowser = NULL; - } - - [_services removeAllObjects]; -} - -- (void) dealloc { - [self invalidate]; - - [_services release]; - _services = nil; - - _delegate = nil; - [super dealloc]; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: delegate { - _delegate = delegate; -} - -- (void) _willSearch { - if ([_delegate respondsToSelector: @selector(netServiceBrowserWillSearch:)]) - [_delegate netServiceBrowserWillSearch: self]; -} - -- (void) _didNotSearch: (NSDictionary *) errorDict { - if ([_delegate respondsToSelector: @selector(netServiceBrowser: - didNotSearch:)]) - [_delegate netServiceBrowser: self didNotSearch: errorDict]; -} - -- (void) _didStopSearch { - if ([_delegate - respondsToSelector: @selector(netServiceBrowserDidStopSearch:)]) - [_delegate netServiceBrowserDidStopSearch: self]; -} - -- (void) _didFindDomain: (NSString *) domainString - moreComing: (BOOL) moreComing -{ - - if ([_delegate respondsToSelector: @selector - (netServiceBrowser:didFindDomain:moreComing:)]) - [_delegate netServiceBrowser: self - didFindDomain: domainString - moreComing: moreComing]; -} - -- (void) _didRemoveDomain: (NSString *) domainString - moreComing: (BOOL) moreComing -{ - - if ([_delegate respondsToSelector: @selector - (netServiceBrowser:didRemoveDomain:moreComing:)]) - [_delegate netServiceBrowser: self - didRemoveDomain: domainString - moreComing: moreComing]; -} - -- (void) _didFindService: (NSNetService *) aService - moreComing: (BOOL) moreComing -{ - if ([_delegate respondsToSelector: @selector - (netServiceBrowser:didFindService:moreComing:)]) - [_delegate netServiceBrowser: self - didFindService: aService - moreComing: moreComing]; -} - -- (void) _didRemoveService: (NSNetService *) aService - moreComing: (BOOL) moreComing -{ - if ([_delegate respondsToSelector: @selector - (netServiceBrowser:didRemoveService:moreComing:)]) - [_delegate netServiceBrowser: self - didRemoveService: aService - moreComing: moreComing]; -} - -- (void) executeWithError: (bonjour_DNSServiceErrorType) err { - if (bonjour_kDNSServiceErr_NoError == err) { - [self _willSearch]; - NSSocket *socket = [[NSSocket alloc] - initWithFileDescriptor: bonjour_DNSServiceRefSockFD( - _netServiceBrowser)]; - - _inputSource = [[NSSelectInputSource alloc] initWithSocket: socket]; - [socket release]; - - [_inputSource setDelegate: self]; - [_inputSource setSelectEventMask: NSSelectReadEvent]; - - [[NSRunLoop currentRunLoop] addInputSource: _inputSource - forMode: NSDefaultRunLoopMode]; - } else // notify the delegate of the error - { - [self _didNotSearch: bonjour_CreateError(self, err)]; - } -} - -- (void) searchForDomain: (int) flags { - bonjour_DNSServiceErrorType err; - - if (!_delegate) - err = NSNetServicesInvalidError; - else if (_inputSource) - err = NSNetServicesActivityInProgress; - else { - err = bonjour_DNSServiceEnumerateDomains(&_netServiceBrowser, flags, - _interfaceIndex, - EnumerationCallback, self); - } - - [self executeWithError: err]; -} - -- (void) enumCallback: (bonjour_DNSServiceRef) sdRef - flags: (bonjour_DNSServiceFlags) flags - interface: (uint32_t) interfaceIndex - error: (bonjour_DNSServiceErrorType) errorCode - domain: (const char *) replyDomain -{ - - if (errorCode) { - [self invalidate]; - - [self _didNotSearch: bonjour_CreateError(self, errorCode)]; - return; - } - - if (replyDomain == NULL) - return; - - BOOL more = (flags & bonjour_kDNSServiceFlagsMoreComing) ? YES : NO; - - _interfaceIndex = interfaceIndex; - - if (flags & bonjour_kDNSServiceFlagsAdd) { - [self _didFindDomain: [NSString stringWithUTF8String: replyDomain] - moreComing: more]; - } else { // bonjour_kDNSServiceFlagsRemove - [self _didRemoveDomain: [NSString stringWithUTF8String: replyDomain] - moreComing: more]; - } -} - -- (void) browseCallback: (bonjour_DNSServiceRef) sdRef - flags: (bonjour_DNSServiceFlags) flags - interface: (uint32_t) interfaceIndex - error: (bonjour_DNSServiceErrorType) errorCode - name: (const char *) replyName - type: (const char *) replyType - domain: (const char *) replyDomain -{ - if (errorCode != bonjour_kDNSServiceErr_NoError) { - [self invalidate]; - - [self _didNotSearch: bonjour_CreateError(self, errorCode)]; - return; - } - - BOOL more = (flags & bonjour_kDNSServiceFlagsMoreComing) ? YES : NO; - NSString *domain = [NSString stringWithUTF8String: replyDomain]; - NSString *type = [NSString stringWithUTF8String: replyType]; - NSString *name = [NSString stringWithUTF8String: replyName]; - NSString *key = [NSString stringWithFormat: @"%@%@%@", name, type, domain]; - NSNetService *service = nil; - - _interfaceIndex = interfaceIndex; - - if (flags & bonjour_kDNSServiceFlagsAdd) { - service = [[NSNetService alloc] initWithDomain: domain - type: type - name: name]; - - if (service) { - [_services setObject: service forKey: key]; - - [service autorelease]; - - [self _didFindService: service moreComing: more]; - } else { - NSLog(@"WARNING:Could not create an NSNetService for <%s>", - replyName); - } - } else { // bonjour_kDNSServiceFlagsRemove - service = [_services objectForKey: key]; - - if (service) { - [self _didRemoveService: service moreComing: more]; - } else { - NSLog(@"WARNING:Could not find <%@> in list", key); - } - } -} - -- (void) selectInputSource: (NSSelectInputSource *) inputSource - selectEvent: (NSUInteger) selectEvent -{ - if (selectEvent & NSSelectReadEvent) { - - bonjour_DNSServiceErrorType err = - bonjour_DNSServiceProcessResult(_netServiceBrowser); - - if (err != bonjour_kDNSServiceErr_NoError) { - [self _didNotSearch: bonjour_CreateError(self, err)]; - } - } -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - [runLoop addInputSource: _inputSource forMode: mode]; -} - -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - [runLoop removeInputSource: _inputSource forMode: mode]; -} - -- (void) searchForAllDomains { - // Search for all visible domains. This method is deprecated in 10.4 - - [self searchForDomain: bonjour_kDNSServiceFlagsBrowseDomains | - bonjour_kDNSServiceFlagsRegistrationDomains]; -} - -- (void) searchForBrowsableDomains { - [self searchForDomain: bonjour_kDNSServiceFlagsBrowseDomains]; -} - -// Search for all registration domains. These domains can be used to register a -// service. - -- (void) searchForRegistrationDomains { - [self searchForDomain: bonjour_kDNSServiceFlagsRegistrationDomains]; -} - -- (void) searchForServicesOfType: (NSString *) serviceType - inDomain: (NSString *) domainName -{ - bonjour_DNSServiceErrorType err = bonjour_kDNSServiceErr_NoError; - - if (!_delegate) - err = NSNetServicesInvalidError; - else if (_inputSource) - err = NSNetServicesActivityInProgress; - else { - err = bonjour_DNSServiceBrowse(&_netServiceBrowser, 0, _interfaceIndex, - [serviceType UTF8String], - [domainName UTF8String], BrowserCallback, - self); - } - - [self executeWithError: err]; -} - -- (void) stop { - [self invalidate]; - - [self _didStopSearch]; -} - -@end diff --git a/Foundation/NSNetService/bonjour.h b/Foundation/NSNetService/bonjour.h deleted file mode 100644 index 5bee2fbe..00000000 --- a/Foundation/NSNetService/bonjour.h +++ /dev/null @@ -1,227 +0,0 @@ -#import -#import - -#ifdef WINDOWS -#define BONJOUR_CALL __stdcall -#else -#define BONJOUR_CALL -#endif - -// Indirection layer which avoids hard dependancy on Bonjour LIB and SDK with -// good fallback behavior All types and constants must match dns_sd.h - -typedef struct bonjour_DNSService *bonjour_DNSServiceRef; -typedef struct bonjour_DNSRecord *bonjour_DNSRecordRef; -typedef struct { - uint64_t _[2]; -} bonjour_TXTRecordRef; -typedef uint32_t bonjour_DNSServiceFlags; -typedef int32_t bonjour_DNSServiceErrorType; - -typedef void(BONJOUR_CALL *bonjour_DNSServiceDomainEnumReply)( - bonjour_DNSServiceRef service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceErrorType errorCode, - const char *replyDomain, void *context); -typedef void(BONJOUR_CALL *bonjour_DNSServiceRegisterReply)( - bonjour_DNSServiceRef service, bonjour_DNSServiceFlags flags, - bonjour_DNSServiceErrorType errorCode, const char *name, - const char *regtype, const char *domain, void *context); -typedef void(BONJOUR_CALL *bonjour_DNSServiceBrowseReply)( - bonjour_DNSServiceRef service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceErrorType errorCode, - const char *serviceName, const char *regtype, const char *replyDomain, - void *context); -typedef void(BONJOUR_CALL *bonjour_DNSServiceRegisterRecordReply)( - bonjour_DNSServiceRef service, bonjour_DNSRecordRef RecordRef, - bonjour_DNSServiceFlags flags, bonjour_DNSServiceErrorType errorCode, - void *context); -typedef void(BONJOUR_CALL *bonjour_DNSServiceQueryRecordReply)( - bonjour_DNSServiceRef DNSServiceRef, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceErrorType errorCode, - const char *fullname, uint16_t rrtype, uint16_t rrclass, uint16_t rdlen, - const void *rdata, uint32_t ttl, void *context); -typedef void(BONJOUR_CALL *bonjour_DNSServiceResolveReply)( - bonjour_DNSServiceRef service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceErrorType errorCode, - const char *fullname, const char *hosttarget, uint16_t port, - uint16_t txtLen, const unsigned char *txtRecord, void *context); - -enum { - bonjour_kDNSServiceClass_IN = 1, -}; - -enum { - bonjour_kDNSServiceErr_NoError = 0, - bonjour_kDNSServiceErr_Unknown = -65537, - bonjour_kDNSServiceErr_NoSuchName = -65538, - bonjour_kDNSServiceErr_NoMemory = -65539, - bonjour_kDNSServiceErr_BadParam = -65540, - bonjour_kDNSServiceErr_BadReference = -65541, - bonjour_kDNSServiceErr_BadState = -65542, - bonjour_kDNSServiceErr_BadFlags = -65543, - bonjour_kDNSServiceErr_Unsupported = -65544, - bonjour_kDNSServiceErr_NotInitialized = -65545, - bonjour_kDNSServiceErr_AlreadyRegistered = -65547, - bonjour_kDNSServiceErr_NameConflict = -65548, - bonjour_kDNSServiceErr_Invalid = -65549, - bonjour_kDNSServiceErr_Firewall = -65550, - bonjour_kDNSServiceErr_Incompatible = -65551, - bonjour_kDNSServiceErr_BadInterfaceIndex = -65552, - bonjour_kDNSServiceErr_Refused = -65553, - bonjour_kDNSServiceErr_NoSuchRecord = -65554, - bonjour_kDNSServiceErr_NoAuth = -65555, - bonjour_kDNSServiceErr_NoSuchKey = -65556, - bonjour_kDNSServiceErr_NATTraversal = -65557, - bonjour_kDNSServiceErr_DoubleNAT = -65558, - bonjour_kDNSServiceErr_BadTime = -65559, -}; - -enum { - bonjour_kDNSServiceFlagsMoreComing = 0x1, - bonjour_kDNSServiceFlagsAdd = 0x2, - bonjour_kDNSServiceFlagsDefault = 0x4, - bonjour_kDNSServiceFlagsNoAutoRename = 0x8, - bonjour_kDNSServiceFlagsShared = 0x10, - bonjour_kDNSServiceFlagsUnique = 0x20, - bonjour_kDNSServiceFlagsBrowseDomains = 0x40, - bonjour_kDNSServiceFlagsRegistrationDomains = 0x80, - bonjour_kDNSServiceFlagsLongLivedQuery = 0x100, - bonjour_kDNSServiceFlagsAllowRemoteQuery = 0x200, - bonjour_kDNSServiceFlagsForceMulticast = 0x400, - bonjour_kDNSServiceFlagsReturnCNAME = 0x800, -}; - -enum { - bonjour_kDNSServiceType_A = 1, - bonjour_kDNSServiceType_NS = 2, - bonjour_kDNSServiceType_MD = 3, - bonjour_kDNSServiceType_MF = 4, - bonjour_kDNSServiceType_CNAME = 5, - bonjour_kDNSServiceType_SOA = 6, - bonjour_kDNSServiceType_MB = 7, - bonjour_kDNSServiceType_MG = 8, - bonjour_kDNSServiceType_MR = 9, - bonjour_kDNSServiceType_NULL = 10, - bonjour_kDNSServiceType_WKS = 11, - bonjour_kDNSServiceType_PTR = 12, - bonjour_kDNSServiceType_HINFO = 13, - bonjour_kDNSServiceType_MINFO = 14, - bonjour_kDNSServiceType_MX = 15, - bonjour_kDNSServiceType_TXT = 16, - bonjour_kDNSServiceType_RP = 17, - bonjour_kDNSServiceType_AFSDB = 18, - bonjour_kDNSServiceType_X25 = 19, - bonjour_kDNSServiceType_ISDN = 20, - bonjour_kDNSServiceType_RT = 21, - bonjour_kDNSServiceType_NSAP = 22, - bonjour_kDNSServiceType_NSAP_PTR = 23, - bonjour_kDNSServiceType_SIG = 24, - bonjour_kDNSServiceType_KEY = 25, - bonjour_kDNSServiceType_PX = 26, - bonjour_kDNSServiceType_GPOS = 27, - bonjour_kDNSServiceType_AAAA = 28, - bonjour_kDNSServiceType_LOC = 29, - bonjour_kDNSServiceType_NXT = 30, - bonjour_kDNSServiceType_EID = 31, - bonjour_kDNSServiceType_NIMLOC = 32, - bonjour_kDNSServiceType_SRV = 33, - bonjour_kDNSServiceType_ATMA = 34, - bonjour_kDNSServiceType_NAPTR = 35, - bonjour_kDNSServiceType_KX = 36, - bonjour_kDNSServiceType_CERT = 37, - bonjour_kDNSServiceType_A6 = 38, - bonjour_kDNSServiceType_DNAME = 39, - bonjour_kDNSServiceType_SINK = 40, - bonjour_kDNSServiceType_OPT = 41, - bonjour_kDNSServiceType_TKEY = 249, - bonjour_kDNSServiceType_TSIG = 250, - bonjour_kDNSServiceType_IXFR = 251, - bonjour_kDNSServiceType_AXFR = 252, - bonjour_kDNSServiceType_MAILB = 253, - bonjour_kDNSServiceType_MAILA = 254, - bonjour_kDNSServiceType_ANY = 255 - -}; - -// indirection -int bonjour_DNSServiceRefSockFD(bonjour_DNSServiceRef service); -bonjour_DNSServiceErrorType -bonjour_DNSServiceProcessResult(bonjour_DNSServiceRef service); -void bonjour_DNSServiceRefDeallocate(bonjour_DNSServiceRef service); -bonjour_DNSServiceErrorType bonjour_DNSServiceEnumerateDomains( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceDomainEnumReply callBack, - void *context); -bonjour_DNSServiceErrorType bonjour_DNSServiceRegister( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *name, const char *regtype, - const char *domain, const char *host, uint16_t port, uint16_t txtLen, - const void *txtRecord, bonjour_DNSServiceRegisterReply callBack, - void *context); -bonjour_DNSServiceErrorType -bonjour_DNSServiceAddRecord(bonjour_DNSServiceRef service, - bonjour_DNSRecordRef *RecordRef, - bonjour_DNSServiceFlags flags, uint16_t rrtype, - uint16_t rdlen, const void *rdata, uint32_t ttl); -bonjour_DNSServiceErrorType -bonjour_DNSServiceUpdateRecord(bonjour_DNSServiceRef service, - bonjour_DNSRecordRef RecordRef, - bonjour_DNSServiceFlags flags, uint16_t rdlen, - const void *rdata, uint32_t ttl); -bonjour_DNSServiceErrorType -bonjour_DNSServiceRemoveRecord(bonjour_DNSServiceRef service, - bonjour_DNSRecordRef RecordRef, - bonjour_DNSServiceFlags flags); -bonjour_DNSServiceErrorType -bonjour_DNSServiceBrowse(bonjour_DNSServiceRef *service, - bonjour_DNSServiceFlags flags, uint32_t interfaceIndex, - const char *regtype, const char *domain, - bonjour_DNSServiceBrowseReply callBack, void *context); -bonjour_DNSServiceErrorType bonjour_DNSServiceResolve( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *name, const char *regtype, - const char *domain, bonjour_DNSServiceResolveReply callBack, - void *context); -bonjour_DNSServiceErrorType -bonjour_DNSServiceCreateConnection(bonjour_DNSServiceRef *service); -bonjour_DNSServiceErrorType bonjour_DNSServiceRegisterRecord( - bonjour_DNSServiceRef service, bonjour_DNSRecordRef *RecordRef, - bonjour_DNSServiceFlags flags, uint32_t interfaceIndex, - const char *fullname, uint16_t rrtype, uint16_t rrclass, uint16_t rdlen, - const void *rdata, uint32_t ttl, - bonjour_DNSServiceRegisterRecordReply callBack, void *context); -bonjour_DNSServiceErrorType bonjour_DNSServiceQueryRecord( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *fullname, uint16_t rrtype, - uint16_t rrclass, bonjour_DNSServiceQueryRecordReply callBack, - void *context); -bonjour_DNSServiceErrorType -bonjour_DNSServiceReconfirmRecord(bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *fullname, - uint16_t rrtype, uint16_t rrclass, - uint16_t rdlen, const void *rdata); -int bonjour_DNSServiceConstructFullName(char *fullName, const char *service, - const char *regtype, - const char *domain); -void bonjour_TXTRecordCreate(bonjour_TXTRecordRef *txtRecord, - uint16_t bufferLen, void *buffer); -void bonjour_TXTRecordDeallocate(bonjour_TXTRecordRef *txtRecord); -bonjour_DNSServiceErrorType -bonjour_TXTRecordSetValue(bonjour_TXTRecordRef *txtRecord, const char *key, - uint8_t valueSize, const void *value); -bonjour_DNSServiceErrorType -bonjour_TXTRecordRemoveValue(bonjour_TXTRecordRef *txtRecord, const char *key); -uint16_t bonjour_TXTRecordGetLength(const bonjour_TXTRecordRef *txtRecord); -const void *bonjour_TXTRecordGetBytesPtr(const bonjour_TXTRecordRef *txtRecord); -int bonjour_TXTRecordContainsKey(uint16_t txtLen, const void *txtRecord, - const char *key); -const void *bonjour_TXTRecordGetValuePtr(uint16_t txtLen, const void *txtRecord, - const char *key, uint8_t *valueLen); -uint16_t bonjour_TXTRecordGetCount(uint16_t txtLen, const void *txtRecord); -bonjour_DNSServiceErrorType -bonjour_TXTRecordGetItemAtIndex(uint16_t txtLen, const void *txtRecord, - uint16_t index, uint16_t keyBufLen, char *key, - uint8_t *valueLen, const void **value); - -// helper function -NSDictionary *bonjour_CreateError(id sender, int errorCode); diff --git a/Foundation/NSNetService/bonjour.m b/Foundation/NSNetService/bonjour.m deleted file mode 100644 index bb3c542c..00000000 --- a/Foundation/NSNetService/bonjour.m +++ /dev/null @@ -1,440 +0,0 @@ -#import "bonjour.h" -#import -#import -#import - -#ifdef WINDOWS -#include - -HINSTANCE hDNSDLL = NULL; - -static void bonjourInitializeIfNeeded() { - static boolean initialized = 0; - - if (!initialized) { - if ((hDNSDLL = LoadLibrary("dnssd.dll")) == NULL) - NSLog(@"dnssd.dll not present"); - } - - initialized = 1; -} - -static BOOL bonjourNotPresent() { - bonjourInitializeIfNeeded(); - - return (hDNSDLL == NULL) ? YES : NO; -} - -static FARPROC bonjour_function(const char *name) { - if (bonjourNotPresent()) - return NULL; - else { - FARPROC result = GetProcAddress(hDNSDLL, name); - - if (result == NULL) - NSLog(@"GetProcAddress(dnssd.dll,name) failed"); - - return result; - } -} -#else - -static void *bonjour_function(const char *name) { - NSLog(@"bonjour_%s", name); - return NULL; -} - -#endif - -int bonjour_DNSServiceRefSockFD(bonjour_DNSServiceRef service) { - BONJOUR_CALL typeof(bonjour_DNSServiceRefSockFD) *function = - (typeof(function)) bonjour_function("DNSServiceRefSockFD"); - - if (function != NULL) - return function(service); - else - return -1; -} - -bonjour_DNSServiceErrorType -bonjour_DNSServiceProcessResult(bonjour_DNSServiceRef service) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceProcessResult) *function = - (typeof(function)) bonjour_function("DNSServiceProcessResult"); - - if (function != NULL) - return function(service); - else - return bonjour_kDNSServiceErr_Unknown; -} - -void bonjour_DNSServiceRefDeallocate(bonjour_DNSServiceRef service) { - BONJOUR_CALL typeof(bonjour_DNSServiceRefDeallocate) *function = - (typeof(function)) bonjour_function("DNSServiceRefDeallocate"); - - if (function != NULL) - function(service); -} - -bonjour_DNSServiceErrorType bonjour_DNSServiceEnumerateDomains( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, bonjour_DNSServiceDomainEnumReply callBack, - void *context) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceEnumerateDomains) *function = - (typeof(function)) bonjour_function("DNSServiceEnumerateDomains"); - - if (function != NULL) - return function(service, flags, interfaceIndex, callBack, context); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType bonjour_DNSServiceRegister( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *name, const char *regtype, - const char *domain, const char *host, uint16_t port, uint16_t txtLen, - const void *txtRecord, bonjour_DNSServiceRegisterReply callBack, - void *context) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceRegister) *function = - (typeof(function)) bonjour_function("DNSServiceRegister"); - - if (function != NULL) - return function(service, flags, interfaceIndex, name, regtype, domain, - host, port, txtLen, txtRecord, callBack, context); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType -bonjour_DNSServiceAddRecord(bonjour_DNSServiceRef service, - bonjour_DNSRecordRef *RecordRef, - bonjour_DNSServiceFlags flags, uint16_t rrtype, - uint16_t rdlen, const void *rdata, uint32_t ttl) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceAddRecord) *function = - (typeof(function)) bonjour_function("DNSServiceAddRecord"); - - if (function != NULL) - return function(service, RecordRef, flags, rrtype, rdlen, rdata, ttl); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType -bonjour_DNSServiceUpdateRecord(bonjour_DNSServiceRef service, - bonjour_DNSRecordRef RecordRef, - bonjour_DNSServiceFlags flags, uint16_t rdlen, - const void *rdata, uint32_t ttl) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceUpdateRecord) *function = - (typeof(function)) bonjour_function("DNSServiceUpdateRecord"); - - if (function != NULL) - return function(service, RecordRef, flags, rdlen, rdata, ttl); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType -bonjour_DNSServiceRemoveRecord(bonjour_DNSServiceRef service, - bonjour_DNSRecordRef RecordRef, - bonjour_DNSServiceFlags flags) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceRemoveRecord) *function = - (typeof(function)) bonjour_function("DNSServiceRemoveRecord"); - - if (function != NULL) - return function(service, RecordRef, flags); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType -bonjour_DNSServiceBrowse(bonjour_DNSServiceRef *service, - bonjour_DNSServiceFlags flags, uint32_t interfaceIndex, - const char *regtype, const char *domain, - bonjour_DNSServiceBrowseReply callBack, void *context) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceBrowse) *function = - (typeof(function)) bonjour_function("DNSServiceBrowse"); - - if (function != NULL) - return function(service, flags, interfaceIndex, regtype, domain, - callBack, context); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType bonjour_DNSServiceResolve( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *name, const char *regtype, - const char *domain, bonjour_DNSServiceResolveReply callBack, - void *context) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceResolve) *function = - (typeof(function)) bonjour_function("DNSServiceResolve"); - - if (function != NULL) - return function(service, flags, interfaceIndex, name, regtype, domain, - callBack, context); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType -bonjour_DNSServiceCreateConnection(bonjour_DNSServiceRef *service) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceCreateConnection) *function = - (typeof(function)) bonjour_function("DNSServiceCreateConnection"); - - if (function != NULL) - return function(service); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType bonjour_DNSServiceRegisterRecord( - bonjour_DNSServiceRef service, bonjour_DNSRecordRef *RecordRef, - bonjour_DNSServiceFlags flags, uint32_t interfaceIndex, - const char *fullname, uint16_t rrtype, uint16_t rrclass, uint16_t rdlen, - const void *rdata, uint32_t ttl, - bonjour_DNSServiceRegisterRecordReply callBack, void *context) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceRegisterRecord) *function = - (typeof(function)) bonjour_function("DNSServiceRegisterRecord"); - - if (function != NULL) - return function(service, RecordRef, flags, interfaceIndex, fullname, - rrtype, rrclass, rdlen, rdata, ttl, callBack, context); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType bonjour_DNSServiceQueryRecord( - bonjour_DNSServiceRef *service, bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *fullname, uint16_t rrtype, - uint16_t rrclass, bonjour_DNSServiceQueryRecordReply callBack, - void *context) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceQueryRecord) *function = - (typeof(function)) bonjour_function("DNSServiceQueryRecord"); - - if (function != NULL) - return function(service, flags, interfaceIndex, fullname, rrtype, - rrclass, callBack, context); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType -bonjour_DNSServiceReconfirmRecord(bonjour_DNSServiceFlags flags, - uint32_t interfaceIndex, const char *fullname, - uint16_t rrtype, uint16_t rrclass, - uint16_t rdlen, const void *rdata) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceReconfirmRecord) *function = - (typeof(function)) bonjour_function("DNSServiceReconfirmRecord"); - - if (function != NULL) - return function(flags, interfaceIndex, fullname, rrtype, rrclass, rdlen, - rdata); - else - return bonjour_kDNSServiceErr_Unknown; -} - -int bonjour_DNSServiceConstructFullName(char *fullName, const char *service, - const char *regtype, const char *domain) -{ - BONJOUR_CALL typeof(bonjour_DNSServiceConstructFullName) *function = - (typeof(function)) bonjour_function("DNSServiceConstructFullName"); - - if (function != NULL) - return function(fullName, service, regtype, domain); - else - return bonjour_kDNSServiceErr_Unknown; -} - -void bonjour_TXTRecordCreate(bonjour_TXTRecordRef *txtRecord, - uint16_t bufferLen, void *buffer) -{ - BONJOUR_CALL typeof(bonjour_TXTRecordCreate) *function = - (typeof(function)) bonjour_function("TXTRecordCreate"); - - if (function != NULL) - function(txtRecord, bufferLen, buffer); -} - -void bonjour_TXTRecordDeallocate(bonjour_TXTRecordRef *txtRecord) { - BONJOUR_CALL typeof(bonjour_TXTRecordDeallocate) *function = - (typeof(function)) bonjour_function("TXTRecordDeallocate"); - - if (function != NULL) - function(txtRecord); -} - -bonjour_DNSServiceErrorType -bonjour_TXTRecordSetValue(bonjour_TXTRecordRef *txtRecord, const char *key, - uint8_t valueSize, const void *value) -{ - BONJOUR_CALL typeof(bonjour_TXTRecordSetValue) *function = - (typeof(function)) bonjour_function("TXTRecordSetValue"); - - if (function != NULL) - return function(txtRecord, key, valueSize, value); - else - return bonjour_kDNSServiceErr_Unknown; -} - -bonjour_DNSServiceErrorType -bonjour_TXTRecordRemoveValue(bonjour_TXTRecordRef *txtRecord, const char *key) -{ - BONJOUR_CALL typeof(bonjour_TXTRecordRemoveValue) *function = - (typeof(function)) bonjour_function("TXTRecordRemoveValue"); - - if (function != NULL) - return function(txtRecord, key); - else - return bonjour_kDNSServiceErr_Unknown; -} - -uint16_t bonjour_TXTRecordGetLength(const bonjour_TXTRecordRef *txtRecord) { - BONJOUR_CALL typeof(bonjour_TXTRecordGetLength) *function = - (typeof(function)) bonjour_function("TXTRecordGetLength"); - - if (function != NULL) - return function(txtRecord); - else - return 0; -} - -const void *bonjour_TXTRecordGetBytesPtr(const bonjour_TXTRecordRef *txtRecord) -{ - BONJOUR_CALL typeof(bonjour_TXTRecordGetBytesPtr) *function = - (typeof(function)) bonjour_function("TXTRecordGetBytesPtr"); - - if (function != NULL) - return function(txtRecord); - else - return NULL; -} - -int bonjour_TXTRecordContainsKey(uint16_t txtLen, const void *txtRecord, - const char *key) -{ - BONJOUR_CALL typeof(bonjour_TXTRecordContainsKey) *function = - (typeof(function)) bonjour_function("TXTRecordContainsKey"); - - if (function != NULL) - return function(txtLen, txtRecord, key); - else - return bonjour_kDNSServiceErr_Unknown; -} - -const void *bonjour_TXTRecordGetValuePtr(uint16_t txtLen, const void *txtRecord, - const char *key, uint8_t *valueLen) -{ - BONJOUR_CALL typeof(bonjour_TXTRecordGetValuePtr) *function = - (typeof(function)) bonjour_function("TXTRecordGetValuePtr"); - - if (function != NULL) - return function(txtLen, txtRecord, key, valueLen); - else - return NULL; -} - -uint16_t bonjour_TXTRecordGetCount(uint16_t txtLen, const void *txtRecord) { - BONJOUR_CALL typeof(bonjour_TXTRecordGetCount) *function = - (typeof(function)) bonjour_function("TXTRecordGetCount"); - - if (function != NULL) - return function(txtLen, txtRecord); - else - return 0; -} - -bonjour_DNSServiceErrorType -bonjour_TXTRecordGetItemAtIndex(uint16_t txtLen, const void *txtRecord, - uint16_t index, uint16_t keyBufLen, char *key, - uint8_t *valueLen, const void **value) -{ - BONJOUR_CALL typeof(bonjour_TXTRecordGetItemAtIndex) *function = - (typeof(function)) bonjour_function("TXTRecordGetItemAtIndex"); - - if (function != NULL) - return function(txtLen, txtRecord, index, keyBufLen, key, valueLen, - value); - else - return bonjour_kDNSServiceErr_Unknown; -} - -int bonjour_ConvertError(int errorCode) { - - switch (errorCode) { - case bonjour_kDNSServiceErr_Unknown: - return NSNetServicesUnknownError; - - case bonjour_kDNSServiceErr_NoSuchName: - return NSNetServicesNotFoundError; - - case bonjour_kDNSServiceErr_NoMemory: - return NSNetServicesUnknownError; - - case bonjour_kDNSServiceErr_BadParam: - case bonjour_kDNSServiceErr_BadReference: - case bonjour_kDNSServiceErr_BadState: - case bonjour_kDNSServiceErr_BadFlags: - return NSNetServicesBadArgumentError; - - case bonjour_kDNSServiceErr_Unsupported: - return NSNetServicesUnknownError; - - case bonjour_kDNSServiceErr_NotInitialized: - return NSNetServicesInvalidError; - - case bonjour_kDNSServiceErr_AlreadyRegistered: - case bonjour_kDNSServiceErr_NameConflict: - return NSNetServicesCollisionError; - - case bonjour_kDNSServiceErr_Invalid: - return NSNetServicesInvalidError; - - case bonjour_kDNSServiceErr_Firewall: - return NSNetServicesUnknownError; - - case bonjour_kDNSServiceErr_Incompatible: - // The client library is incompatible with the daemon - return NSNetServicesInvalidError; - - case bonjour_kDNSServiceErr_BadInterfaceIndex: - case bonjour_kDNSServiceErr_Refused: - return NSNetServicesUnknownError; - - case bonjour_kDNSServiceErr_NoSuchRecord: - case bonjour_kDNSServiceErr_NoAuth: - case bonjour_kDNSServiceErr_NoSuchKey: - return NSNetServicesNotFoundError; - - case bonjour_kDNSServiceErr_NATTraversal: - case bonjour_kDNSServiceErr_DoubleNAT: - case bonjour_kDNSServiceErr_BadTime: - return NSNetServicesUnknownError; - } - - return errorCode; -} - -NSDictionary *bonjour_CreateError(id sender, int errorCode) { - NSMutableDictionary *dictionary = nil; - int error = 0; - - dictionary = [NSMutableDictionary dictionary]; - error = bonjour_ConvertError(errorCode); - - [dictionary setObject: [NSNumber numberWithInt: error] - forKey: NSNetServicesErrorCode]; - [dictionary setObject: sender forKey: NSNetServicesErrorDomain]; - - return dictionary; // autorelease'd -} diff --git a/Foundation/NSNotification/NSNotification.h b/Foundation/NSNotification/NSNotification.h deleted file mode 100644 index 7f694739..00000000 --- a/Foundation/NSNotification/NSNotification.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDictionary; - -@interface NSNotification : NSObject - -+ (NSNotification *) notificationWithName: (NSString *) name - object: object - userInfo: (NSDictionary *) userInfo; - -+ (NSNotification *) notificationWithName: (NSString *) name object: object; - -- (NSString *) name; -- object; -- (NSDictionary *) userInfo; - -@end - -#import diff --git a/Foundation/NSNotification/NSNotification.m b/Foundation/NSNotification/NSNotification.m deleted file mode 100644 index 1fccdab9..00000000 --- a/Foundation/NSNotification/NSNotification.m +++ /dev/null @@ -1,94 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import - -@implementation NSNotification - -+ allocWithZone: (NSZone *) zone { - if (self == [NSNotification class]) - return NSAllocateObject([NSNotification_concrete class], 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -- initWithName: (NSString *) name - object: object - userInfo: (NSDictionary *) userInfo -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithCoder: (NSCoder *) coder { - NSString *name = [coder decodeObject]; - id object = [coder decodeObject]; - NSDictionary *userInfo = [coder decodeObject]; - - return [self initWithName: name object: object userInfo: userInfo]; -} - -- copyWithZone: (NSZone *) zone { - NSInvalidAbstractInvocation(); - return nil; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSNotification"); -} - -- (void) encodeWithCoder: (NSCoder *) coder { - [coder encodeObject: [self name]]; - [coder encodeObject: [self object]]; - [coder encodeObject: [self userInfo]]; -} - -+ (NSNotification *) notificationWithName: (NSString *) name object: object { - return NSAutorelease(NSNotification_concreteNew(NULL, name, object, nil)); -} - -+ (NSNotification *) notificationWithName: (NSString *) name - object: object - userInfo: (NSDictionary *) userInfo -{ - return NSAutorelease( - NSNotification_concreteNew(NULL, name, object, userInfo)); -} - -- (NSString *) name { - NSInvalidAbstractInvocation(); - return nil; -} - -- object { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSDictionary *) userInfo { - NSInvalidAbstractInvocation(); - return nil; -} - -@end diff --git a/Foundation/NSNotification/NSNotification_concrete.h b/Foundation/NSNotification/NSNotification_concrete.h deleted file mode 100644 index 06e4fe43..00000000 --- a/Foundation/NSNotification/NSNotification_concrete.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNotification_concrete : NSNotification { - NSString *_name; - id _object; - NSDictionary *_userInfo; -} - -- initWithName: (NSString *) name - object: object - userInfo: (NSDictionary *) userInfo; - -@end - -NSNotification_concrete *NSNotification_concreteNew(NSZone *zone, - NSString *name, id object, - NSDictionary *userInfo); diff --git a/Foundation/NSNotification/NSNotification_concrete.m b/Foundation/NSNotification/NSNotification_concrete.m deleted file mode 100644 index d9497219..00000000 --- a/Foundation/NSNotification/NSNotification_concrete.m +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import - -@implementation NSNotification_concrete - -NSNotification_concrete *NSNotification_concreteNew(NSZone *zone, - NSString *name, id object, - NSDictionary *userInfo) -{ - NSNotification_concrete *self = - NSAllocateObject([NSNotification_concrete class], 0, zone); - if (self) { - self->_name = [name copyWithZone: zone]; - self->_object = [object retain]; - self->_userInfo = [userInfo retain]; - } - return self; -} - -- initWithName: (NSString *) name - object: object - userInfo: (NSDictionary *) userInfo -{ - _name = [name copy]; - _object = [object retain]; - _userInfo = [userInfo retain]; - return self; -} - -- (void) dealloc { - [_name release]; - [_object release]; - [_userInfo release]; - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSString *) name { - return _name; -} - -- object { - return _object; -} - -- (NSDictionary *) userInfo { - return _userInfo; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -@end diff --git a/Foundation/NSNotificationCenter/NSNotificationCenter.h b/Foundation/NSNotificationCenter/NSNotificationCenter.h deleted file mode 100644 index a22eb3bf..00000000 --- a/Foundation/NSNotificationCenter/NSNotificationCenter.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMutableDictionary; - -@interface NSNotificationCenter : NSObject { - NSMutableDictionary *_nameToRegistry; - id _noNameRegistry; -} - -+ (NSNotificationCenter *) defaultCenter; - -- (void) addObserver: observer - selector: (SEL) selector - name: (NSString *) name - object: object; - -- (void) removeObserver: observer; -- (void) removeObserver: observer name: (NSString *) name object: object; - -- (void) postNotification: (NSNotification *) note; - -- (void) postNotificationName: (NSString *) name - object: object - userInfo: (NSDictionary *) userInfo; - -- (void) postNotificationName: (NSString *) name object: object; - -@end diff --git a/Foundation/NSNotificationCenter/NSNotificationCenter.m b/Foundation/NSNotificationCenter/NSNotificationCenter.m deleted file mode 100644 index 8055af5b..00000000 --- a/Foundation/NSNotificationCenter/NSNotificationCenter.m +++ /dev/null @@ -1,188 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import -#import - -#import -#import -#import -#import - -@implementation NSNotificationCenter - -static NSNotificationCenter *defaultCenter = nil; - -+ (NSNotificationCenter *) defaultCenter { - @synchronized(self) { - if (defaultCenter == nil) { - defaultCenter = [[[self class] alloc] init]; - } - } - return defaultCenter; -} - -- init { - _nameToRegistry = [[NSMutableDictionary allocWithZone: [self zone]] init]; - _noNameRegistry = [[NSObjectToObservers allocWithZone: [self zone]] init]; - return self; -} - -- (void) dealloc { - [_nameToRegistry release]; - [_noNameRegistry release]; - [super dealloc]; -} - -- (void) addObserver: anObserver - selector: (SEL) selector - name: (NSString *) name - object: object -{ - @synchronized(self) { - NSNotificationObserver *observer = - [[[NSNotificationObserver allocWithZone: [self zone]] - initWithObserver: anObserver - selector: selector] autorelease]; - NSObjectToObservers *registry; - - if (name == nil) - registry = _noNameRegistry; - else { - registry = [_nameToRegistry objectForKey: name]; - - if (registry == nil) { - registry = [[[NSObjectToObservers allocWithZone: [self zone]] - init] autorelease]; - [_nameToRegistry setObject: registry forKey: name]; - } - } - - [registry addObserver: observer object: object]; - } -} - -- (void) removeObserver: anObserver { - @synchronized(self) { - NSMutableArray *removeRegistries = [NSMutableArray array]; - NSEnumerator *keyEnumerator = [_nameToRegistry keyEnumerator]; - NSString *key; - NSObjectToObservers *registry; - NSInteger count; - - while ((key = [keyEnumerator nextObject]) != nil) { - registry = [_nameToRegistry objectForKey: key]; - [registry removeObserver: anObserver object: nil]; - if ([registry count] == 0) - [removeRegistries addObject: key]; - } - - [_noNameRegistry removeObserver: anObserver object: nil]; - - count = [removeRegistries count]; - while (--count >= 0) - [_nameToRegistry removeObjectForKey: [removeRegistries - objectAtIndex: count]]; - } -} - -- (void) removeObserver: anObserver name: (NSString *) name object: object { - @synchronized(self) { - NSMutableArray *removeRegistries = [NSMutableArray array]; - NSObjectToObservers *registry; - NSInteger count; - - if (name != nil) { - registry = [_nameToRegistry objectForKey: name]; - - [registry removeObserver: anObserver object: object]; - - if ([registry count] == 0) - [removeRegistries addObject: name]; - } else { - NSEnumerator *keyEnumerator = [_nameToRegistry keyEnumerator]; - NSString *key; - - while ((key = [keyEnumerator nextObject]) != nil) { - registry = [_nameToRegistry objectForKey: key]; - - [registry removeObserver: anObserver object: object]; - - if ([registry count] == 0) - [removeRegistries addObject: key]; - } - - [_noNameRegistry removeObserver: anObserver object: object]; - } - - count = [removeRegistries count]; - while (--count >= 0) { - NSString *key = [removeRegistries objectAtIndex: count]; - NSObjectToObservers *oto = [_nameToRegistry objectForKey: key]; - - [oto invalidate]; - - [_nameToRegistry removeObjectForKey: key]; - } - } -} - -static inline void postNotification(NSNotificationCenter *self, - NSNotification *note) -{ - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - - @synchronized(self) { - NSObjectToObservers *registry = self->_noNameRegistry; - - [registry postNotification: note]; - registry = [self->_nameToRegistry objectForKey: [note name]]; - [[registry retain] postNotification: note]; - [registry release]; - } - - [pool release]; -} - -- (void) postNotification: (NSNotification *) note { - postNotification(self, note); -} - -- (void) postNotificationName: (NSString *) name - object: object - userInfo: (NSDictionary *) userInfo -{ - NSNotification *note = - NSNotification_concreteNew(NULL, name, object, userInfo); - postNotification(self, note); - [note release]; -} - -- (void) postNotificationName: (NSString *) name object: object { - NSNotification *note = NSNotification_concreteNew(NULL, name, object, nil); - postNotification(self, note); - [note release]; -} - -@end diff --git a/Foundation/NSNotificationCenter/NSNotificationObserver.h b/Foundation/NSNotificationCenter/NSNotificationObserver.h deleted file mode 100644 index dcf85918..00000000 --- a/Foundation/NSNotificationCenter/NSNotificationObserver.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSNotification; - -@interface NSNotificationObserver : NSObject { - id _observer; - SEL _selector; -} - -- initWithObserver: object selector: (SEL) selector; - -- observer; - -- (void) postNotification: (NSNotification *) note; - -@end diff --git a/Foundation/NSNotificationCenter/NSNotificationObserver.m b/Foundation/NSNotificationCenter/NSNotificationObserver.m deleted file mode 100644 index 669626e1..00000000 --- a/Foundation/NSNotificationCenter/NSNotificationObserver.m +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import - -@implementation NSNotificationObserver - -- initWithObserver: object selector: (SEL) selector { - _observer = object; - _selector = selector; - return self; -} - -- (void) dealloc { - _observer = nil; - _selector = NULL; - [super dealloc]; -} - -- observer { - return _observer; -} - -- (void) postNotification: (NSNotification *) note { - [_observer performSelector: _selector withObject: note]; -} - -@end diff --git a/Foundation/NSNotificationCenter/NSObjectToObservers.h b/Foundation/NSNotificationCenter/NSObjectToObservers.h deleted file mode 100644 index a9f8c4d0..00000000 --- a/Foundation/NSNotificationCenter/NSObjectToObservers.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSObjectToObservers : NSObject { - NSMapTable *_objectToObservers; -} - -- (void) invalidate; - -- (void) addObserver: (NSNotificationObserver *) observer object: object; - -- (void) removeObserver: anObserver object: object; - -- (void) postNotification: (NSNotification *) note; - -- (NSUInteger) count; - -@end diff --git a/Foundation/NSNotificationCenter/NSObjectToObservers.m b/Foundation/NSNotificationCenter/NSObjectToObservers.m deleted file mode 100644 index 8d23dd6a..00000000 --- a/Foundation/NSNotificationCenter/NSObjectToObservers.m +++ /dev/null @@ -1,138 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import - -@implementation NSObjectToObservers - -- init { - _objectToObservers = - NSCreateMapTableWithZone(NSNonOwnedPointerMapKeyCallBacks, - NSObjectMapValueCallBacks, 0, [self zone]); - return self; -} - -- (void) dealloc { - NSFreeMapTable(_objectToObservers); - [super dealloc]; -} - -- (void) invalidate { - NSResetMapTable(_objectToObservers); -} - -- (void) addObserver: (NSNotificationObserver *) observer object: objectOrNil { - id object = (objectOrNil != nil) ? objectOrNil : (id)[NSNull null]; - NSMutableArray *observers = NSMapGet(_objectToObservers, object); - - if (observers == nil) { - observers = [NSMutableArray array]; - NSMapInsert(_objectToObservers, object, observers); - } - [observers addObject: observer]; -} - -- (void) removeObserver: anObserver object: object { - id removeKeys[NSCountMapTable(_objectToObservers)]; - int removeCount = 0; - - if (object != nil) { - NSMutableArray *observers = NSMapGet(_objectToObservers, object); - NSInteger count = [observers count]; - - while (--count >= 0) - if (anObserver == [[observers objectAtIndex: count] observer]) - [observers removeObjectAtIndex: count]; - - if ([observers count] == 0) - removeKeys[removeCount++] = object; - } else { - NSMapEnumerator state = NSEnumerateMapTable(_objectToObservers); - id key; - NSMutableArray *observers; - - while (NSNextMapEnumeratorPair(&state, (void **) &key, - (void **) &observers)) { - NSInteger count = [observers count]; - - while (--count >= 0) - if (anObserver == [[observers objectAtIndex: count] observer]) - [observers removeObjectAtIndex: count]; - - if ([observers count] == 0) - removeKeys[removeCount++] = key; - } - } - - while (--removeCount >= 0) - NSMapRemove(_objectToObservers, removeKeys[removeCount]); -} - -- (void) postNotification: (NSNotification *) note { - // FIXME: NSNotificationCenter sends notifications in the order they are - // added for observation regardless of the object registered. This - // implementation stores objects for observation seperately so if you - // observe nil and a particular object you will always get the particular - // object notifications before the nil one instead of in the order they are - // registered. - - // The copy and double check for presence is to deal with observers being - // removed during notification - id object = [note object]; - NSArray *observers; - NSInteger count; - - if (object != nil) { - observers = [NSArray - arrayWithArray: (id) NSMapGet(_objectToObservers, object)]; - - count = [observers count]; - while (--count >= 0) { - id observer = [observers objectAtIndex: count]; - - if ([(NSArray *) NSMapGet(_objectToObservers, object) - indexOfObjectIdenticalTo: observer] != NSNotFound) - [observer performSelector: _cmd withObject: note]; - } - } - - observers = [NSArray - arrayWithArray: (id) NSMapGet(_objectToObservers, [NSNull null])]; - - count = [observers count]; - while (--count >= 0) { - id observer = [observers objectAtIndex: count]; - - if ([(NSArray *) NSMapGet(_objectToObservers, [NSNull null]) - indexOfObjectIdenticalTo: observer] != NSNotFound) - [observer performSelector: _cmd withObject: note]; - } -} - -- (NSUInteger) count { - return NSCountMapTable(_objectToObservers); -} - -@end diff --git a/Foundation/NSNotificationQueue/NSNotificationAndModes.h b/Foundation/NSNotificationQueue/NSNotificationAndModes.h deleted file mode 100644 index 12a46ff8..00000000 --- a/Foundation/NSNotificationQueue/NSNotificationAndModes.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSNotification; - -@interface NSNotificationAndModes : NSObject { - NSNotification *_notification; - NSArray *_modes; -} - -- (NSArray *) modes; -- (NSNotification *) notification; - -+ queuedWithNotification: (NSNotification *) note modes: (NSArray *) modes; - -@end diff --git a/Foundation/NSNotificationQueue/NSNotificationAndModes.m b/Foundation/NSNotificationQueue/NSNotificationAndModes.m deleted file mode 100644 index 1ac7bad2..00000000 --- a/Foundation/NSNotificationQueue/NSNotificationAndModes.m +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import - -@implementation NSNotificationAndModes - -- (NSArray *) modes { - return _modes; -} - -- (NSNotification *) notification { - return _notification; -} - -- initWithNotification: (NSNotification *) note modes: (NSArray *) modes { - _notification = [note retain]; - _modes = [modes retain]; - return self; -} - -- (void) dealloc { - [_notification release]; - [_modes release]; - [super dealloc]; -} - -+ queuedWithNotification: (NSNotification *) note modes: (NSArray *) modes { - return [[[self allocWithZone: NULL] initWithNotification: note modes: modes] - autorelease]; -} - -@end diff --git a/Foundation/NSNotificationQueue/NSNotificationQueue-Private.h b/Foundation/NSNotificationQueue/NSNotificationQueue-Private.h deleted file mode 100644 index 0a1540fa..00000000 --- a/Foundation/NSNotificationQueue/NSNotificationQueue-Private.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNotificationQueue (NSNotificationQueue_private) -- (void) asapProcessMode: (NSString *) mode; -- (BOOL) hasIdleNotificationsInMode: (NSString *) mode; -- (void) idleProcessMode: (NSString *) mode; -@end diff --git a/Foundation/NSNotificationQueue/NSNotificationQueue.h b/Foundation/NSNotificationQueue/NSNotificationQueue.h deleted file mode 100644 index 910e28ff..00000000 --- a/Foundation/NSNotificationQueue/NSNotificationQueue.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSNotificationCenter, NSNotification, NSArray, NSMutableArray; - -typedef enum { NSPostWhenIdle = 1, NSPostASAP, NSPostNow } NSPostingStyle; - -typedef enum { - NSNotificationNoCoalescing = 0x00, - NSNotificationCoalescingOnName = 0x01, - NSNotificationCoalescingOnSender = 0x02 -} NSNotificationCoalescing; - -@interface NSNotificationQueue : NSObject { - NSNotificationCenter *_center; - NSMutableArray *_asapQueue; - NSMutableArray *_idleQueue; -} - -- initWithNotificationCenter: (NSNotificationCenter *) center; - -+ (NSNotificationQueue *) defaultQueue; - -- (void) enqueueNotification: (NSNotification *) note - postingStyle: (NSPostingStyle) style - coalesceMask: (NSUInteger) mask - forModes: (NSArray *) modes; - -- (void) enqueueNotification: (NSNotification *) note - postingStyle: (NSPostingStyle) style; - -- (void) dequeueNotificationsMatching: (NSNotification *) note - coalesceMask: (NSUInteger) mask; - -@end diff --git a/Foundation/NSNotificationQueue/NSNotificationQueue.m b/Foundation/NSNotificationQueue/NSNotificationQueue.m deleted file mode 100644 index e3d3cc4e..00000000 --- a/Foundation/NSNotificationQueue/NSNotificationQueue.m +++ /dev/null @@ -1,211 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import -#import -#import - -@implementation NSNotificationQueue - -- initWithNotificationCenter: (NSNotificationCenter *) center { - _center = [center retain]; - _asapQueue = [[NSMutableArray allocWithZone: [self zone]] init]; - _idleQueue = [[NSMutableArray allocWithZone: [self zone]] init]; - return self; -} - -- init { - return [self - initWithNotificationCenter: [NSNotificationCenter defaultCenter]]; -} - -+ (NSNotificationQueue *) defaultQueue { - return NSThreadSharedInstance(@"NSNotificationQueue"); -} - -- (void) asapProcessMode: (NSString *) mode { - BOOL hasNotes = NO; - - do { - NSInteger i, count = [_asapQueue count]; - - hasNotes = NO; - - for (i = 0; i < count && !hasNotes; i++) { - NSNotificationAndModes *qd = [_asapQueue objectAtIndex: i]; - NSArray *modes = [qd modes]; - - if (modes == nil || [modes containsObject: mode]) { - [qd retain]; - [_asapQueue removeObjectAtIndex: i]; - - hasNotes = YES; - [_center postNotification: [qd notification]]; - - [qd release]; - } - } - - } while (hasNotes); -} - -- (BOOL) hasIdleNotificationsInMode: (NSString *) mode { - NSInteger count = [_idleQueue count]; - - while (--count >= 0) { - NSNotificationAndModes *check = [_idleQueue objectAtIndex: count]; - NSArray *modes = [check modes]; - - if (modes == nil || [modes containsObject: mode]) - return YES; - } - - return NO; -} - -- (void) idleProcessMode: (NSString *) mode { - NSMutableArray *idle = [NSMutableArray array]; - NSInteger count = [_idleQueue count]; - - while (--count >= 0) { - NSNotificationAndModes *check = [_idleQueue objectAtIndex: count]; - NSArray *modes = [check modes]; - - if (modes == nil || [modes containsObject: mode]) { - [idle addObject: check]; - [_idleQueue removeObjectAtIndex: count]; - } - } - - count = [idle count]; - while (--count >= 0) { - NSNotificationAndModes *check = [idle objectAtIndex: count]; - - [_center postNotification: [check notification]]; - } -} - -- (void) coalesceNotification: (NSNotification *) note - inQueue: (NSMutableArray *) queue - coalesceMask: (NSUInteger) mask -{ - if (mask != NSNotificationNoCoalescing) { - NSInteger count = [queue count]; - - while (--count >= 0) { - NSNotification *check = [[queue objectAtIndex: count] notification]; - BOOL matches = NO; - - if (mask & NSNotificationCoalescingOnName) - if ([[check name] isEqualToString: [note name]]) - matches = YES; - - if (mask & NSNotificationCoalescingOnSender) - if ([check object] == [note object]) - matches = YES; - - if (matches) - [queue removeObjectAtIndex: count]; - } - } -} - -- (BOOL) canPlaceNotification: (NSNotification *) note - inQueue: (NSArray *) queue - coalesceMask: (NSUInteger) mask -{ - if (mask != NSNotificationNoCoalescing) { - NSInteger i, count = [queue count]; - - for (i = 0; i < count; i++) { - NSNotification *check = [[queue objectAtIndex: i] notification]; - - if (mask & NSNotificationCoalescingOnName) - if ([[check name] isEqualToString: [note name]]) - return NO; - if (mask & NSNotificationCoalescingOnSender) - if ([check object] == [note object]) - return NO; - } - } - - return YES; -} - -- (void) enqueueNotification: (NSNotification *) note - postingStyle: (NSPostingStyle) style - coalesceMask: (NSUInteger) mask - forModes: (NSArray *) modes -{ - /* - Figure out what modes==nil means, does it mean the current mode? - .. run in mode X ... - post in nil modes - .. run in mode Y ... - - Does it notify in Y or X? Current in Y, experience suggests it should be - X. - */ - if (style == NSPostNow) - [_center postNotification: note]; - else { - NSMutableArray *queue = nil; - - if (style == NSPostWhenIdle) - queue = _idleQueue; - else if (style == NSPostASAP) - queue = _asapQueue; - - [self coalesceNotification: note inQueue: queue coalesceMask: mask]; - [queue addObject: [NSNotificationAndModes - queuedWithNotification: note - modes: modes]]; - } -} - -- (void) enqueueNotification: (NSNotification *) note - postingStyle: (NSPostingStyle) style -{ - [self enqueueNotification: note - postingStyle: style - coalesceMask: NSNotificationCoalescingOnName | - NSNotificationCoalescingOnSender - forModes: nil]; -} - -- (void) dequeueNotificationsMatching: (NSNotification *) note - coalesceMask: (NSUInteger) mask -{ - NSUnimplementedMethod(); - - if (mask == - (NSNotificationCoalescingOnName | NSNotificationCoalescingOnSender)) { - - } else if (mask == NSNotificationCoalescingOnName) { - - } else if (mask == NSNotificationCoalescingOnSender) { - } -} - -@end diff --git a/Foundation/NSNull.h b/Foundation/NSNull.h deleted file mode 100644 index db844153..00000000 --- a/Foundation/NSNull.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNull : NSObject - -+ (NSNull *) null; - -@end diff --git a/Foundation/NSNull.m b/Foundation/NSNull.m deleted file mode 100644 index 47f2d449..00000000 --- a/Foundation/NSNull.m +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@class NSCoder; - -@implementation NSNull - -+ (NSNull *) null { - static id instance = nil; - if (!instance) - instance = [self new]; - return instance; -} - -+ allocWithZone: (NSZone *) zone { - static NSNull *shared = nil; - - if (shared == nil) - shared = [super allocWithZone: zone]; - - return shared; -} - -- (id) copyWithZone: (NSZone *) zone { - return self; -} - -- init { - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- initWithCoder: (NSCoder *) coder { - return self; -} - -- (void) dealloc { - return; - [super dealloc]; -} - -- retain { - return self; -} - -- autorelease { - return self; -} - -- (oneway void) release { -} - -// yes, it does this -- valueForKey: (NSString *) key { - return self; -} - -@end diff --git a/Foundation/NSNumber/NSConstObject.h b/Foundation/NSNumber/NSConstObject.h deleted file mode 100644 index f64e6c96..00000000 --- a/Foundation/NSNumber/NSConstObject.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (c) 2009 Jens Ayton - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -/* NS_DECLARE_CLASS_SYMBOL() - Helper macro to declare a name that refers to the objc_class struct for a - given class. Example of use: - DECLARE_CLASS_SYMBOL(NSObject); - This declares a value _OBJC_CLASS_NSObject of type const struct objc_class. - - As an annoying complication due to linkage differences, this must be used - in a different file than the class's @interface for Darwin, but in the - same file on all other platforms. - - WARNING: any use of this tecnique is officially an evil hack. It is - necessary in Foundation to implement proper CoreFoundation semantics, but - should never be used outside the Foundation framework. - - PORTABILITY NOTE: the current non-Darwin definition may not work properly - on platforms which don't use the convention of prefixing symbols with - underscores, or if class symbols are for some reason handled differently. - If using GCC or Clang, the same __asm__ approach as used for Darwin can be - used to get the appropriate symbol. -*/ -#ifdef GCC_RUNTIME_3 -#define NS_CLASS_SYMBOL(className) _OBJC_CLASS_##className -#else -#define NS_CLASS_SYMBOL(className) _OBJC_CLASS_##className -#endif - -#if __APPLE__ -#ifdef __LP64__ -#define NS_DECLARE_CLASS_SYMBOL(className) extern const struct objc_class NS_CLASS_SYMBOL(className) __asm__("_OBJC_CLASS_$_" #className) -#else -#define NS_DECLARE_CLASS_SYMBOL(className) extern const struct objc_class NS_CLASS_SYMBOL(className) __asm__(".objc_class_name_" #className) -#endif -#else -#define NS_DECLARE_CLASS_SYMBOL(className) extern const struct objc_class NS_CLASS_SYMBOL(className) -#endif - -/* NS_CONSTOBJ_DECL/NS_CONSTOBJ_DEF - Appropriate linkage specifiers for constant objects. - - Constant objects must be defined in a separate linkage unit in Darwin, but - in the same linkage unit as the class they're used by on other platforms. -*/ -#if __APPLE__ -#define NS_CONSTOBJ_DECL extern __attribute__((visibility("hidden"))) -#define NS_CONSTOBJ_DEF -#else -#define NS_CONSTOBJ_DECL static -#define NS_CONSTOBJ_DEF static -#endif diff --git a/Foundation/NSNumber/NSNumber.h b/Foundation/NSNumber/NSNumber.h deleted file mode 100644 index fd49611f..00000000 --- a/Foundation/NSNumber/NSNumber.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSDictionary; - -@interface NSNumber : NSValue - -- initWithBool: (BOOL) value; -- initWithChar: (char) value; -- initWithShort: (short) value; -- initWithInt: (int) value; -- initWithLong: (long) value; -- initWithLongLong: (long long) value; -- initWithFloat: (float) value; -- initWithDouble: (double) value; -- initWithInteger: (NSInteger) value; - -- initWithUnsignedChar: (unsigned char) value; -- initWithUnsignedShort: (unsigned short) value; -- initWithUnsignedInt: (unsigned int) value; -- initWithUnsignedLong: (unsigned long) value; -- initWithUnsignedLongLong: (unsigned long long) value; -- initWithUnsignedInteger: (NSUInteger) value; - -+ (NSNumber *) numberWithBool: (BOOL) value; -+ (NSNumber *) numberWithChar: (char) value; -+ (NSNumber *) numberWithShort: (short) value; -+ (NSNumber *) numberWithInt: (int) value; -+ (NSNumber *) numberWithLong: (long) value; -+ (NSNumber *) numberWithLongLong: (long long) value; -+ (NSNumber *) numberWithFloat: (float) value; -+ (NSNumber *) numberWithDouble: (double) value; -+ (NSNumber *) numberWithInteger: (NSInteger) value; - -+ (NSNumber *) numberWithUnsignedChar: (unsigned char) value; -+ (NSNumber *) numberWithUnsignedShort: (unsigned short) value; -+ (NSNumber *) numberWithUnsignedInt: (unsigned int) value; -+ (NSNumber *) numberWithUnsignedLong: (unsigned long) value; -+ (NSNumber *) numberWithUnsignedLongLong: (unsigned long long) value; -+ (NSNumber *) numberWithUnsignedInteger: (NSUInteger) value; - -- (NSComparisonResult) compare: (NSNumber *) other; - -- (BOOL) isEqualToNumber: (NSNumber *) other; - -- (char) charValue; -- (short) shortValue; -- (int) intValue; -- (long) longValue; -- (long long) longLongValue; -- (float) floatValue; -- (double) doubleValue; -- (BOOL) boolValue; -- (NSDecimal) decimalValue; -- (NSInteger) integerValue; -- (unsigned char) unsignedCharValue; -- (unsigned short) unsignedShortValue; -- (unsigned int) unsignedIntValue; -- (unsigned long) unsignedLongValue; -- (unsigned long long) unsignedLongLongValue; -- (NSUInteger) unsignedIntegerValue; - -- (NSString *) stringValue; - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale; - -@end diff --git a/Foundation/NSNumber/NSNumber.m b/Foundation/NSNumber/NSNumber.m deleted file mode 100644 index d0314e59..00000000 --- a/Foundation/NSNumber/NSNumber.m +++ /dev/null @@ -1,532 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#include - -@implementation NSNumber - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSNumber")) - return [NSNumber_placeholder _sharedInstance]; - - return NSAllocateObject(self, 0, zone); -} - -- initWithBool: (BOOL) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithChar: (char) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithShort: (short) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithInt: (int) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithLong: (long) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithLongLong: (long long) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithFloat: (float) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithDouble: (double) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithInteger: (NSInteger) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithUnsignedChar: (unsigned char) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithUnsignedShort: (unsigned short) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithUnsignedInt: (unsigned int) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithUnsignedLong: (unsigned long) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithUnsignedLongLong: (unsigned long long) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithUnsignedInteger: (NSUInteger) value { - NSInvalidAbstractInvocation(); - return nil; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -+ (void) invalidType: (const char *) type { - [NSException raise: @"NSNumberCannotInitWithCoderException" - format: @"NSNumber cannot initWithCoder: type=%s", type]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSNumber"); -} - -- initWithCoder: (NSCoder *) coder { - char *type; - - [self dealloc]; - - [coder decodeValueOfObjCType: @encode(char *) at: &type]; - if (strlen(type) != 1) - [NSNumber invalidType: type]; - - switch (*type) { - - case 'c': { - char value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_charNew(NULL, value); - } break; - - case 'C': { - unsigned char value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_unsignedCharNew(NULL, value); - } break; - - case 's': { - short value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_shortNew(NULL, value); - } break; - - case 'S': { - unsigned short value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_unsignedShortNew(NULL, value); - } break; - - case 'i': { - int value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_intNew(NULL, value); - } break; - - case 'I': { - unsigned int value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_unsignedIntNew(NULL, value); - } break; - - case 'l': { - long value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_longNew(NULL, value); - } break; - - case 'L': { - unsigned long value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_unsignedLongNew(NULL, value); - } break; - - case 'q': { - long long value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_longLongNew(NULL, value); - } break; - - case 'Q': { - unsigned long long value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_unsignedLongLongNew(NULL, value); - } break; - - case 'f': { - float value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_floatNew(NULL, value); - } break; - - case 'd': { - double value; - - [coder decodeValueOfObjCType: type at: &value]; - return NSNumber_doubleNew(NULL, value); - } break; - - default: - [NSNumber invalidType: type]; - break; - } - - return nil; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - const char *type = [self objCType]; - - [coder encodeValueOfObjCType: @encode(char *) at: &type]; - - switch (*type) { - - case 'c': { - char value = [self charValue]; - ; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'C': { - unsigned char value = [self unsignedCharValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 's': { - short value = [self shortValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'S': { - unsigned short value = [self unsignedShortValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'i': { - int value = [self intValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'I': { - unsigned int value = [self unsignedIntValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'l': { - long value = [self longValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'L': { - unsigned long value = [self unsignedLongValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'q': { - long long value = [self longLongValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'Q': { - unsigned long long value = [self unsignedLongLongValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'f': { - float value = [self floatValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - - case 'd': { - double value = [self doubleValue]; - - [coder encodeValueOfObjCType: type at: &value]; - } break; - } -} - -+ (NSNumber *) numberWithBool: (BOOL) value { - return NSNumber_BOOLNew(NULL, value); -} - -+ (NSNumber *) numberWithChar: (char) value { - return [[[self allocWithZone: NULL] initWithChar: value] autorelease]; -} - -+ (NSNumber *) numberWithShort: (short) value { - return [[[self allocWithZone: NULL] initWithShort: value] autorelease]; -} - -+ (NSNumber *) numberWithInt: (int) value { - return [[[self allocWithZone: NULL] initWithInt: value] autorelease]; -} - -+ (NSNumber *) numberWithLong: (long) value { - return [[[self allocWithZone: NULL] initWithLong: value] autorelease]; -} - -+ (NSNumber *) numberWithLongLong: (long long) value { - return [[[self allocWithZone: NULL] initWithLongLong: value] autorelease]; -} - -+ (NSNumber *) numberWithFloat: (float) value { - return [[[self allocWithZone: NULL] initWithFloat: value] autorelease]; -} - -+ (NSNumber *) numberWithDouble: (double) value { - return [[[self allocWithZone: NULL] initWithDouble: value] autorelease]; -} - -+ (NSNumber *) numberWithInteger: (NSInteger) value { -#if defined(__LP64__) - return [self numberWithLong: value]; -#else - return [self numberWithInt: value]; -#endif -} - -+ (NSNumber *) numberWithUnsignedChar: (unsigned char) value { - return [[[self allocWithZone: NULL] initWithUnsignedChar: value] - autorelease]; -} - -+ (NSNumber *) numberWithUnsignedShort: (unsigned short) value { - return [[[self allocWithZone: NULL] initWithUnsignedShort: value] - autorelease]; -} - -+ (NSNumber *) numberWithUnsignedInt: (unsigned int) value { - return [[[self allocWithZone: NULL] initWithUnsignedInt: value] - autorelease]; -} - -+ (NSNumber *) numberWithUnsignedLong: (unsigned long) value { - return [[[self allocWithZone: NULL] initWithUnsignedLong: value] - autorelease]; -} - -+ (NSNumber *) numberWithUnsignedLongLong: (unsigned long long) value { - return [[[self allocWithZone: NULL] initWithUnsignedLongLong: value] - autorelease]; -} - -+ (NSNumber *) numberWithUnsignedInteger: (NSUInteger) value { -#if defined(__LP64__) - return [self numberWithUnsignedLong: value]; -#else - return [self numberWithUnsignedInt: value]; -#endif -} - -- (NSComparisonResult) compare: (NSNumber *) other { - double d1 = [self doubleValue]; - double d2 = [other doubleValue]; - - if (d1 == d2) - return NSOrderedSame; - else if (d1 > d2) - return NSOrderedDescending; - else - return NSOrderedAscending; -} - -- (BOOL) isEqual: other { - if (self == other) - return YES; - - if (![other isKindOfClass: objc_lookUpClass("NSNumber")]) - return NO; - - return [self isEqualToNumber: other]; -} - -- (BOOL) isEqualToNumber: (NSNumber *) other { - if (self == other) - return YES; - - return ([self compare: other] == NSOrderedSame) ? YES : NO; -} - -- (NSUInteger) hash { - return [self doubleValue]; -} - -- (BOOL) boolValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (char) charValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (short) shortValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (int) intValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (long) longValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (long long) longLongValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (float) floatValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (double) doubleValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSDecimal) decimalValue { - NSDecimal result = {0}; - NSInvalidAbstractInvocation(); - return result; -} - -- (NSInteger) integerValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (unsigned char) unsignedCharValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (unsigned short) unsignedShortValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (unsigned int) unsignedIntValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (unsigned long) unsignedLongValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (unsigned long long) unsignedLongLongValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSUInteger) unsignedIntegerValue { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSString *) stringValue { - return [self description]; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - NSInvalidAbstractInvocation(); - return [NSString stringWithFormat: @"<%@ %p>", [self class], self]; -} - -- (NSString *) description { - return [self descriptionWithLocale: nil]; -} - -@end - -#import - -@implementation NSNumber (CFTypeID) - -- (unsigned) _cfTypeID { - return kNSCFTypeNumber; -} - -@end diff --git a/Foundation/NSNumber/NSNumber_BOOL.h b/Foundation/NSNumber/NSNumber_BOOL.h deleted file mode 100644 index 3eb3e7ae..00000000 --- a/Foundation/NSNumber/NSNumber_BOOL.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_BOOL : NSNumber_CF { - BOOL _value; -} -@end - -NSNumber *NSNumber_BOOLNew(NSZone *zone, BOOL value); diff --git a/Foundation/NSNumber/NSNumber_BOOL.m b/Foundation/NSNumber/NSNumber_BOOL.m deleted file mode 100644 index db5c4527..00000000 --- a/Foundation/NSNumber/NSNumber_BOOL.m +++ /dev/null @@ -1,148 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -#if defined(__APPLE__) -#import -#else -#import -#endif - -@implementation NSNumber_BOOL - -NSNumber *NSNumber_BOOLNew(NSZone *zone, BOOL value) { - return value ? kNSNumberTrue : kNSNumberFalse; -} - -+ (id) allocWithZone: (NSZone *) zone { - [NSException raise: NSInternalInconsistencyException - format: @"Private class NSNumber_BOOL is not intended to be " - @"alloced."]; - return nil; -} - -// Being constant singletons (doubletons?), boolean numbers can't be released. -- (void) dealloc { - return; - [super dealloc]; // Silence compiler warning -} - -- (id) retain { - return self; -} - -- (oneway void) release { -} - -- (id) autorelease { - return self; -} - -- (NSUInteger) retainCount { - /* "For objects that never get released (that is, their release method - does nothing), this method should return UINT_MAX, as defined in - ." -- NSObject Protocol Reference - */ - return UINT_MAX; -} - -- (void) getValue: (void *) value { - *((BOOL *) value) = _value; -} - -- (const char *) objCType { - return @encode(BOOL); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%i", locale, _value); -} - -@end - -#import - -@implementation NSNumber_BOOL (CFTypeID) - -- (unsigned) _cfTypeID { - return kNSCFTypeBoolean; -} - -@end diff --git a/Foundation/NSNumber/NSNumber_BOOL_const.h b/Foundation/NSNumber/NSNumber_BOOL_const.h deleted file mode 100644 index 3b72ad8b..00000000 --- a/Foundation/NSNumber/NSNumber_BOOL_const.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2009 Jens Ayton - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#import - -#define kNSNumberTrue ((NSNumber *) kCFBooleanTrue) -#define kNSNumberFalse ((NSNumber *) kCFBooleanFalse) diff --git a/Foundation/NSNumber/NSNumber_BOOL_const.m b/Foundation/NSNumber/NSNumber_BOOL_const.m deleted file mode 100644 index 7724250b..00000000 --- a/Foundation/NSNumber/NSNumber_BOOL_const.m +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2009 Jens Ayton - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#if defined(__APPLE__) -#import -#endif diff --git a/Foundation/NSNumber/NSNumber_BOOL_const_impl.h b/Foundation/NSNumber/NSNumber_BOOL_const_impl.h deleted file mode 100644 index 642cb3be..00000000 --- a/Foundation/NSNumber/NSNumber_BOOL_const_impl.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2009 Jens Ayton - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -NS_DECLARE_CLASS_SYMBOL(NSNumber_BOOL); - -typedef struct -{ - const struct objc_class *const isa; - CFNumberType _type; - BOOL _value; -} NSNumber_BOOL_Def; - -static const NSNumber_BOOL_Def kTrueDef = - { - &NS_CLASS_SYMBOL(NSNumber_BOOL), - kCFNumberCharType, - YES}; - -static const NSNumber_BOOL_Def kFalseDef = - { - &NS_CLASS_SYMBOL(NSNumber_BOOL), - kCFNumberCharType, - NO}; - -const CFBooleanRef kCFBooleanTrue = (CFBooleanRef)&kTrueDef; -const CFBooleanRef kCFBooleanFalse = (CFBooleanRef)&kFalseDef; diff --git a/Foundation/NSNumber/NSNumber_CF.h b/Foundation/NSNumber/NSNumber_CF.h deleted file mode 100644 index 891bf922..00000000 --- a/Foundation/NSNumber/NSNumber_CF.h +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import - -@interface NSNumber_CF : NSNumber { - @public - CFNumberType _type; -} - -@end diff --git a/Foundation/NSNumber/NSNumber_CF.m b/Foundation/NSNumber/NSNumber_CF.m deleted file mode 100644 index 3df8a28e..00000000 --- a/Foundation/NSNumber/NSNumber_CF.m +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@implementation NSNumber_CF - -@end diff --git a/Foundation/NSNumber/NSNumber_char.h b/Foundation/NSNumber/NSNumber_char.h deleted file mode 100644 index 73e1afca..00000000 --- a/Foundation/NSNumber/NSNumber_char.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_char : NSNumber_CF { - char _value; -} -@end - -NSNumber *NSNumber_charNew(NSZone *zone, char value); diff --git a/Foundation/NSNumber/NSNumber_char.m b/Foundation/NSNumber/NSNumber_char.m deleted file mode 100644 index a36c177b..00000000 --- a/Foundation/NSNumber/NSNumber_char.m +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_char - -NSNumber *NSNumber_charNew(NSZone *zone, char value) { - NSNumber_char *self = NSAllocateObject([NSNumber_char class], 0, zone); - if (self) { - self->_type = kCFNumberCharType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((char *) value) = _value; -} - -- (const char *) objCType { - return @encode(char); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%i", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_double.h b/Foundation/NSNumber/NSNumber_double.h deleted file mode 100644 index 99aa8b97..00000000 --- a/Foundation/NSNumber/NSNumber_double.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - Copyright (c) 2009 Jens Ayton - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_double : NSNumber_CF { - double _value; -} -@end - -@interface NSNumber_double_const : NSNumber_double -@end - -NSNumber *NSNumber_doubleNew(NSZone *zone, double value); - -// Returns a constant value if one matches, otherwise nil. -NSNumber *NSNumber_doubleSpecial(double value); diff --git a/Foundation/NSNumber/NSNumber_double.m b/Foundation/NSNumber/NSNumber_double.m deleted file mode 100644 index 9bbe87c6..00000000 --- a/Foundation/NSNumber/NSNumber_double.m +++ /dev/null @@ -1,220 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -#import - -NSNumber *NSNumber_doubleSpecial(double value) { - switch (fpclassify(value)) { - case FP_INFINITE: - return signbit(value) ? kNSNumberNegativeInfinity - : kNSNumberPositiveInfinity; - case FP_NAN: - return kNSNumberNaN; - case FP_ZERO: - return signbit(value) ? kNSNumberNegativeZero : kNSNumberPositiveZero; - default: - if (0) { - } // Without profiling, I'm assuming no one value is more likely than - // every other value put together, and the compiler will optimize for - // the first if() branch. - else if (value == 1.0) - return kNSNumberPositiveOne; - else if (value == -1.0) - return kNSNumberNegativeOne; - return nil; - } -} - -@implementation NSNumber_double - -NSNumber *NSNumber_doubleNew(NSZone *zone, double value) { - NSNumber *result = NSNumber_doubleSpecial(value); - if (result == nil) { - NSNumber_double *self = - NSAllocateObject([NSNumber_double class], 0, zone); - if (self) { - self->_type = kCFNumberDoubleType; - self->_value = value; - } - result = self; - } - return result; -} - -- (void) getValue: (void *) value { - *((double *) value) = _value; -} - -- (const char *) objCType { - return @encode(double); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return (int) _value; -} - -- (unsigned int) unsignedIntValue { - return (unsigned int) _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return (float) _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%0.15g", locale, _value); -} - -@end - -@implementation NSNumber_double_const - -+ (id) allocWithZone: (NSZone *) zone { - [NSException raise: NSInternalInconsistencyException - format: @"Private class NSNumber_double_const is not intended " - @"to be alloced."]; - return nil; -} - -- (void) dealloc { - return; - [super dealloc]; // Silence compiler warning -} - -- (id) retain { - return self; -} - -- (oneway void) release { - // will never be released -} - -- (id) autorelease { - return self; -} - -- (NSUInteger) retainCount { - /* "For objects that never get released (that is, their release method - does nothing), this method should return UINT_MAX, as defined in - ." -- NSObject Protocol Reference - */ - return UINT_MAX; -} - -@end - -// This code needs to be here after the @implementation. If it's not clang is -// generating the NSNumber_double_const class reference with a "97" after it. -// Unknown reasons. - -NS_DECLARE_CLASS_SYMBOL(NSNumber_double_const); - -typedef struct { - const struct objc_class *const[self class]; - CFNumberType _type; - double _value; -} NSNumber_double_Def; - -static const NSNumber_double_Def kPositiveInfinityDef = { - &NS_CLASS_SYMBOL(NSNumber_double_const), kCFNumberDoubleType, INFINITY}; - -static const NSNumber_double_Def kNegativeInfinityDef = { - &NS_CLASS_SYMBOL(NSNumber_double_const), kCFNumberDoubleType, - -INFINITY}; - -static const NSNumber_double_Def kNaNDef = { - &NS_CLASS_SYMBOL(NSNumber_double_const), kCFNumberDoubleType, NAN}; - -static const NSNumber_double_Def kPositiveZeroDef = { - &NS_CLASS_SYMBOL(NSNumber_double_const), kCFNumberDoubleType, 0.0}; - -static const NSNumber_double_Def kNegativeZeroDef = { - &NS_CLASS_SYMBOL(NSNumber_double_const), kCFNumberDoubleType, -0.0}; - -static const NSNumber_double_Def kPositiveOneDef = { - &NS_CLASS_SYMBOL(NSNumber_double_const), kCFNumberDoubleType, 1.0}; - -static const NSNumber_double_Def kNegativeOneDef = { - &NS_CLASS_SYMBOL(NSNumber_double_const), kCFNumberDoubleType, -1.0}; - -const CFNumberRef kCFNumberPositiveInfinity = - (CFNumberRef) &kPositiveInfinityDef; -const CFNumberRef kCFNumberNegativeInfinity = - (CFNumberRef) &kNegativeInfinityDef; -const CFNumberRef kCFNumberNaN = (CFNumberRef) &kNaNDef; - -NS_CONSTOBJ_DEF NSNumber *const kNSNumberPositiveZero = - (NSNumber *) &kPositiveZeroDef; -NS_CONSTOBJ_DEF NSNumber *const kNSNumberNegativeZero = - (NSNumber *) &kNegativeZeroDef; -NS_CONSTOBJ_DEF NSNumber *const kNSNumberPositiveOne = - (NSNumber *) &kPositiveOneDef; -NS_CONSTOBJ_DEF NSNumber *const kNSNumberNegativeOne = - (NSNumber *) &kNegativeOneDef; diff --git a/Foundation/NSNumber/NSNumber_double_const.h b/Foundation/NSNumber/NSNumber_double_const.h deleted file mode 100644 index 178e70bb..00000000 --- a/Foundation/NSNumber/NSNumber_double_const.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2009 Jens Ayton - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NSConstObject.h" -#import -#import - -#define kNSNumberPositiveInfinity ((NSNumber *) kCFNumberPositiveInfinity) -#define kNSNumberNegativeInfinity ((NSNumber *) kCFNumberNegativeInfinity) -#define kNSNumberNaN ((NSNumber *) kCFNumberNaN) - -NS_CONSTOBJ_DECL NSNumber *const kNSNumberPositiveZero; -NS_CONSTOBJ_DECL NSNumber *const kNSNumberNegativeZero; -NS_CONSTOBJ_DECL NSNumber *const kNSNumberPositiveOne; -NS_CONSTOBJ_DECL NSNumber *const kNSNumberNegativeOne; diff --git a/Foundation/NSNumber/NSNumber_float.h b/Foundation/NSNumber/NSNumber_float.h deleted file mode 100644 index 5cb10589..00000000 --- a/Foundation/NSNumber/NSNumber_float.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_float : NSNumber_CF { - float _value; -} -@end - -NSNumber *NSNumber_floatNew(NSZone *zone, float value); diff --git a/Foundation/NSNumber/NSNumber_float.m b/Foundation/NSNumber/NSNumber_float.m deleted file mode 100644 index 7ba83503..00000000 --- a/Foundation/NSNumber/NSNumber_float.m +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSNumber_float - -NSNumber *NSNumber_floatNew(NSZone *zone, float value) { - NSNumber *result = NSNumber_doubleSpecial(value); - if (result == nil) { - NSNumber_float *self = - NSAllocateObject([NSNumber_float class], 0, zone); - if (self) { - self->_type = kCFNumberFloatType; - self->_value = value; - } - result = self; - } - return result; -} - -- (void) getValue: (void *) value { - *((float *) value) = _value; -} - -- (const char *) objCType { - return @encode(float); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%0.7g", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_int.h b/Foundation/NSNumber/NSNumber_int.h deleted file mode 100644 index c1bf22a0..00000000 --- a/Foundation/NSNumber/NSNumber_int.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_int : NSNumber_CF { - int _value; -} -@end - -NSNumber *NSNumber_intNew(NSZone *zone, int value); diff --git a/Foundation/NSNumber/NSNumber_int.m b/Foundation/NSNumber/NSNumber_int.m deleted file mode 100644 index 00b7faeb..00000000 --- a/Foundation/NSNumber/NSNumber_int.m +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_int - -NSNumber *NSNumber_intNew(NSZone *zone, int value) { - NSNumber_int *self = NSAllocateObject([NSNumber_int class], 0, zone); - if (self) { - self->_type = kCFNumberIntType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((int *) value) = _value; -} - -- (const char *) objCType { - return @encode(int); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%i", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_long.h b/Foundation/NSNumber/NSNumber_long.h deleted file mode 100644 index bb16862b..00000000 --- a/Foundation/NSNumber/NSNumber_long.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_long : NSNumber_CF { - long _value; -} -@end - -NSNumber *NSNumber_longNew(NSZone *zone, long value); diff --git a/Foundation/NSNumber/NSNumber_long.m b/Foundation/NSNumber/NSNumber_long.m deleted file mode 100644 index 31a542dd..00000000 --- a/Foundation/NSNumber/NSNumber_long.m +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_long - -NSNumber *NSNumber_longNew(NSZone *zone, long value) { - NSNumber_long *self = NSAllocateObject([NSNumber_long class], 0, zone); - if (self) { - self->_type = kCFNumberLongType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((long *) value) = _value; -} - -- (const char *) objCType { - return @encode(long); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return (int) _value; -} - -- (unsigned int) unsignedIntValue { - return (unsigned int) _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return (float) _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%li", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_longLong.h b/Foundation/NSNumber/NSNumber_longLong.h deleted file mode 100644 index 5de562ce..00000000 --- a/Foundation/NSNumber/NSNumber_longLong.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_longLong : NSNumber_CF { - long long _value; -} -@end - -NSNumber *NSNumber_longLongNew(NSZone *zone, long long value); diff --git a/Foundation/NSNumber/NSNumber_longLong.m b/Foundation/NSNumber/NSNumber_longLong.m deleted file mode 100644 index 176165b4..00000000 --- a/Foundation/NSNumber/NSNumber_longLong.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_longLong - -NSNumber *NSNumber_longLongNew(NSZone *zone, long long value) { - NSNumber_longLong *self = - NSAllocateObject([NSNumber_longLong class], 0, zone); - if (self) { - self->_type = kCFNumberLongLongType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((long long *) value) = _value; -} - -- (const char *) objCType { - return @encode(long long); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return (int) _value; -} - -- (unsigned int) unsignedIntValue { - return (unsigned int) _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%qi", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_placeholder.h b/Foundation/NSNumber/NSNumber_placeholder.h deleted file mode 100644 index f3cb8109..00000000 --- a/Foundation/NSNumber/NSNumber_placeholder.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_placeholder : NSNumber - -+ _sharedInstance; - -@end diff --git a/Foundation/NSNumber/NSNumber_placeholder.m b/Foundation/NSNumber/NSNumber_placeholder.m deleted file mode 100644 index 20423e8b..00000000 --- a/Foundation/NSNumber/NSNumber_placeholder.m +++ /dev/null @@ -1,152 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -static NSNumber_placeholder *sSharedInstance; - -@implementation NSNumber_placeholder - -+ (void) initialize { - if (self == objc_lookUpClass("NSNumber_placeholder")) - sSharedInstance = - NSAllocateObject([NSNumber_placeholder class], 0, NULL); -} - -+ _sharedInstance { - return sSharedInstance; -} - -+ allocWithZone: (NSZone *) zone { - [NSException raise: NSInternalInconsistencyException - format: @"Private class NSNumber_placeholder is not intended " - @"to be alloced."]; - return nil; -} - -- (void) dealloc { - return; - [super dealloc]; // Silence compiler warning -} - -- (id) retain { - return self; -} - -- (oneway void) release { -} - -- (id) autorelease { - return self; -} - -- (NSUInteger) retainCount { - /* "For objects that never get released (that is, their release method - does nothing), this method should return UINT_MAX, as defined in - ." -- NSObject Protocol Reference - */ - return UINT_MAX; -} - -- initWithChar: (char) value { - return (NSNumber_placeholder *) NSNumber_charNew(NULL, value); -} - -- initWithUnsignedChar: (unsigned char) value { - return (NSNumber_placeholder *) NSNumber_unsignedCharNew(NULL, value); -} - -- initWithShort: (short) value { - return (NSNumber_placeholder *) NSNumber_shortNew(NULL, value); -} - -- initWithUnsignedShort: (unsigned short) value { - return (NSNumber_placeholder *) NSNumber_unsignedShortNew(NULL, value); -} - -- initWithInt: (int) value { - return (NSNumber_placeholder *) NSNumber_intNew(NULL, value); -} - -- initWithUnsignedInt: (unsigned int) value { - return (NSNumber_placeholder *) NSNumber_unsignedIntNew(NULL, value); -} - -- initWithLong: (long) value { - return (NSNumber_placeholder *) NSNumber_longNew(NULL, value); -} - -- initWithUnsignedLong: (unsigned long) value { - return (NSNumber_placeholder *) NSNumber_unsignedLongNew(NULL, value); -} - -- initWithLongLong: (long long) value { - return (NSNumber_placeholder *) NSNumber_longLongNew(NULL, value); -} - -- initWithUnsignedLongLong: (unsigned long long) value { - return (NSNumber_placeholder *) NSNumber_unsignedLongLongNew(NULL, value); -} - -- initWithFloat: (float) value { - return (NSNumber_placeholder *) NSNumber_floatNew(NULL, value); -} - -- initWithDouble: (double) value { - return (NSNumber_placeholder *) NSNumber_doubleNew(NULL, value); -} - -- initWithInteger: (NSInteger) value { -#if defined(__LP64__) - return (NSNumber_placeholder *) NSNumber_longNew(NULL, value); -#else - return (NSNumber_placeholder *) NSNumber_intNew(NULL, value); -#endif -} - -- initWithUnsignedInteger: (NSUInteger) value { -#if defined(__LP64__) - return (NSNumber_placeholder *) NSNumber_unsignedLongNew(NULL, value); -#else - return (NSNumber_placeholder *) NSNumber_unsignedIntNew(NULL, value); -#endif -} - -- initWithBool: (BOOL) value { - return (NSNumber_placeholder *) NSNumber_BOOLNew(NULL, value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_short.h b/Foundation/NSNumber/NSNumber_short.h deleted file mode 100644 index a914d956..00000000 --- a/Foundation/NSNumber/NSNumber_short.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_short : NSNumber_CF { - short _value; -} -@end - -NSNumber *NSNumber_shortNew(NSZone *zone, short value); diff --git a/Foundation/NSNumber/NSNumber_short.m b/Foundation/NSNumber/NSNumber_short.m deleted file mode 100644 index 35eba4cd..00000000 --- a/Foundation/NSNumber/NSNumber_short.m +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_short - -NSNumber *NSNumber_shortNew(NSZone *zone, short value) { - NSNumber_short *self = NSAllocateObject([NSNumber_short class], 0, zone); - if (self) { - self->_type = kCFNumberShortType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((short *) value) = _value; -} - -- (const char *) objCType { - return @encode(short); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%hi", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_unsignedChar.h b/Foundation/NSNumber/NSNumber_unsignedChar.h deleted file mode 100644 index 7d77cbb7..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedChar.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_unsignedChar : NSNumber_CF { - unsigned char _value; -} -@end - -NSNumber *NSNumber_unsignedCharNew(NSZone *zone, unsigned char value); diff --git a/Foundation/NSNumber/NSNumber_unsignedChar.m b/Foundation/NSNumber/NSNumber_unsignedChar.m deleted file mode 100644 index 7e695fa7..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedChar.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_unsignedChar - -NSNumber *NSNumber_unsignedCharNew(NSZone *zone, unsigned char value) { - NSNumber_unsignedChar *self = - NSAllocateObject([NSNumber_unsignedChar class], 0, zone); - if (self) { - self->_type = kCFNumberCharType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((unsigned char *) value) = _value; -} - -- (const char *) objCType { - return @encode(unsigned char); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%u", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_unsignedInt.h b/Foundation/NSNumber/NSNumber_unsignedInt.h deleted file mode 100644 index cd4bd995..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedInt.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_unsignedInt : NSNumber_CF { - unsigned int _value; -} -@end - -NSNumber *NSNumber_unsignedIntNew(NSZone *zone, unsigned int value); diff --git a/Foundation/NSNumber/NSNumber_unsignedInt.m b/Foundation/NSNumber/NSNumber_unsignedInt.m deleted file mode 100644 index fa9ae7ca..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedInt.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_unsignedInt - -NSNumber *NSNumber_unsignedIntNew(NSZone *zone, unsigned int value) { - NSNumber_unsignedInt *self = - NSAllocateObject([NSNumber_unsignedInt class], 0, zone); - if (self) { - self->_type = kCFNumberIntType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((unsigned int *) value) = _value; -} - -- (const char *) objCType { - return @encode(unsigned int); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%u", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_unsignedLong.h b/Foundation/NSNumber/NSNumber_unsignedLong.h deleted file mode 100644 index d6134803..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedLong.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_unsignedLong : NSNumber_CF { - unsigned long _value; -} -@end - -NSNumber *NSNumber_unsignedLongNew(NSZone *zone, unsigned long value); diff --git a/Foundation/NSNumber/NSNumber_unsignedLong.m b/Foundation/NSNumber/NSNumber_unsignedLong.m deleted file mode 100644 index a7f65e47..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedLong.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_unsignedLong - -NSNumber *NSNumber_unsignedLongNew(NSZone *zone, unsigned long value) { - NSNumber_unsignedLong *self = - NSAllocateObject([NSNumber_unsignedLong class], 0, zone); - if (self) { - self->_type = kCFNumberLongType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((unsigned long *) value) = _value; -} - -- (const char *) objCType { - return @encode(unsigned long); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return (int) _value; -} - -- (unsigned int) unsignedIntValue { - return (unsigned int) _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return (float) _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%lu", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_unsignedLongLong.h b/Foundation/NSNumber/NSNumber_unsignedLongLong.h deleted file mode 100644 index ee68448e..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedLongLong.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_unsignedLongLong : NSNumber_CF { - unsigned long long _value; -} -@end - -NSNumber *NSNumber_unsignedLongLongNew(NSZone *zone, unsigned long long value); diff --git a/Foundation/NSNumber/NSNumber_unsignedLongLong.m b/Foundation/NSNumber/NSNumber_unsignedLongLong.m deleted file mode 100644 index 660bbeef..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedLongLong.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_unsignedLongLong - -NSNumber *NSNumber_unsignedLongLongNew(NSZone *zone, unsigned long long value) { - NSNumber_unsignedLongLong *self = - NSAllocateObject([NSNumber_unsignedLongLong class], 0, zone); - if (self) { - self->_type = kCFNumberLongLongType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((unsigned long long *) value) = _value; -} - -- (const char *) objCType { - return @encode(unsigned long long); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return (int) _value; -} - -- (unsigned int) unsignedIntValue { - return (unsigned int) _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%qu", locale, _value); -} - -@end diff --git a/Foundation/NSNumber/NSNumber_unsignedShort.h b/Foundation/NSNumber/NSNumber_unsignedShort.h deleted file mode 100644 index 8afdc2c2..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedShort.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSNumber_unsignedShort : NSNumber_CF { - unsigned short _value; -} -@end - -NSNumber *NSNumber_unsignedShortNew(NSZone *zone, unsigned short value); diff --git a/Foundation/NSNumber/NSNumber_unsignedShort.m b/Foundation/NSNumber/NSNumber_unsignedShort.m deleted file mode 100644 index fd8ef08e..00000000 --- a/Foundation/NSNumber/NSNumber_unsignedShort.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSNumber_unsignedShort - -NSNumber *NSNumber_unsignedShortNew(NSZone *zone, unsigned short value) { - NSNumber_unsignedShort *self = - NSAllocateObject([NSNumber_unsignedShort class], 0, zone); - if (self) { - self->_type = kCFNumberShortType; - self->_value = value; - } - return self; -} - -- (void) getValue: (void *) value { - *((unsigned short *) value) = _value; -} - -- (const char *) objCType { - return @encode(unsigned short); -} - -- (char) charValue { - return _value; -} - -- (unsigned char) unsignedCharValue { - return _value; -} - -- (short) shortValue { - return _value; -} - -- (unsigned short) unsignedShortValue { - return _value; -} - -- (int) intValue { - return _value; -} - -- (unsigned int) unsignedIntValue { - return _value; -} - -- (long) longValue { - return _value; -} - -- (unsigned long) unsignedLongValue { - return _value; -} - -- (long long) longLongValue { - return _value; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (float) floatValue { - return _value; -} - -- (double) doubleValue { - return _value; -} - -- (BOOL) boolValue { - return _value ? YES : NO; -} - -- (NSInteger) integerValue { - return (NSInteger) _value; -} - -- (NSUInteger) unsignedIntegerValue { - return (NSUInteger) _value; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return NSStringWithFormatAndLocale(@"%hu", locale, _value); -} - -@end diff --git a/Foundation/NSNumberFormatter.h b/Foundation/NSNumberFormatter.h deleted file mode 100644 index e8d072ef..00000000 --- a/Foundation/NSNumberFormatter.h +++ /dev/null @@ -1,297 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSLocale, NSDecimalNumberHandler; - -enum { - NSNumberFormatterBehaviorDefault = 0, - NSNumberFormatterBehavior10_0 = 1000, - NSNumberFormatterBehavior10_4 = 1040, -}; - -typedef NSUInteger NSNumberFormatterBehavior; - -enum { - NSNumberFormatterNoStyle = kCFNumberFormatterNoStyle, - NSNumberFormatterDecimalStyle = kCFNumberFormatterDecimalStyle, - NSNumberFormatterCurrencyStyle = kCFNumberFormatterCurrencyStyle, - NSNumberFormatterPercentStyle = kCFNumberFormatterPercentStyle, - NSNumberFormatterScientificStyle = kCFNumberFormatterScientificStyle, - NSNumberFormatterSpellOutStyle = kCFNumberFormatterSpellOutStyle, -}; -typedef NSUInteger NSNumberFormatterStyle; - -enum { - NSNumberFormatterPadBeforePrefix = kCFNumberFormatterPadBeforePrefix, - NSNumberFormatterPadAfterPrefix = kCFNumberFormatterPadAfterPrefix, - NSNumberFormatterPadBeforeSuffix = kCFNumberFormatterPadBeforeSuffix, - NSNumberFormatterPadAfterSuffix = kCFNumberFormatterPadAfterSuffix, -}; -typedef NSUInteger NSNumberFormatterPadPosition; - -enum { - NSNumberFormatterRoundCeiling = kCFNumberFormatterRoundCeiling, - NSNumberFormatterRoundFloor = kCFNumberFormatterRoundFloor, - NSNumberFormatterRoundDown = kCFNumberFormatterRoundDown, - NSNumberFormatterRoundUp = kCFNumberFormatterRoundUp, - NSNumberFormatterRoundHalfEven = kCFNumberFormatterRoundHalfEven, - NSNumberFormatterRoundHalfDown = kCFNumberFormatterRoundHalfDown, - NSNumberFormatterRoundHalfUp = kCFNumberFormatterRoundHalfUp, -}; -typedef NSUInteger NSNumberFormatterRoundingMode; - -@interface NSNumberFormatter : NSFormatter { - NSNumberFormatterBehavior _behavior; - // 10.4 - NSNumberFormatterStyle _numberStyle; - NSUInteger _formatWidth; - NSLocale *_locale; - NSNumber *_multiplier; - - BOOL _allowsFloats; - BOOL _alwaysShowsDecimalSeparator; - BOOL _isLenient; - BOOL _isPartialStringValidationEnabled; - BOOL _generatesDecimalNumbers; - BOOL _usesGroupingSeparator; - BOOL _usesSignificantDigits; - - NSUInteger _minimumIntegerDigits; - NSUInteger _minimumFractionDigits; - NSUInteger _minimumSignificantDigits; - NSUInteger _maximumIntegerDigits; - BOOL _customMaximumFractionDigits; - NSUInteger _maximumFractionDigits; - NSUInteger _maximumSignificantDigits; - - NSNumber *_minimum; - NSNumber *_maximum; - - NSString *_nilSymbol; - NSString *_notANumberSymbol; - NSString *_zeroSymbol; - NSString *_plusSign; - NSString *_minusSign; - NSString *_negativePrefix; - NSString *_negativeSuffix; - NSString *_positivePrefix; - NSString *_positiveSuffix; - NSString *_negativeInfinitySymbol; - NSString *_positiveInfinitySymbol; - - NSString *_decimalSeparator; - NSString *_exponentSymbol; - NSString *_currencyCode; - NSString *_currencySymbol; - NSString *_internationalCurrencySymbol; - NSString *_currencyDecimalSeparator; - NSString *_currencyGroupingSeparator; - NSString *_groupingSeparator; - NSUInteger _groupingSize; - NSUInteger _secondaryGroupingSize; - NSString *_paddingCharacter; - NSNumberFormatterPadPosition _paddingPosition; - NSString *_percentSymbol; - NSString *_perMillSymbol; - NSNumber *_roundingIncrement; - NSNumberFormatterRoundingMode _roundingMode; - NSString *_positiveFormat; - NSString *_negativeFormat; - NSDictionary *_textAttributesForPositiveValues; - NSDictionary *_textAttributesForNegativeValues; - NSDictionary *_textAttributesForNegativeInfinity; - NSDictionary *_textAttributesForNil; - NSDictionary *_textAttributesForNotANumber; - NSDictionary *_textAttributesForPositiveInfinity; - NSDictionary *_textAttributesForZero; - - // 10.0 - NSAttributedString *_attributedStringForNil; - NSAttributedString *_attributedStringForNotANumber; - NSAttributedString *_attributedStringForZero; - NSDecimalNumberHandler *_roundingBehavior; - NSString *_thousandSeparator; - - BOOL _hasThousandSeparators; - BOOL _localizesFormat; -} - -+ (NSNumberFormatterBehavior) defaultFormatterBehavior; -+ (void) setDefaultFormatterBehavior: (NSNumberFormatterBehavior) value; - -- (NSNumberFormatterBehavior) formatterBehavior; -- (NSNumberFormatterStyle) numberStyle; - -- (NSUInteger) formatWidth; -- (NSLocale *) locale; -- (NSNumber *) multiplier; - -- (BOOL) allowsFloats; -- (BOOL) alwaysShowsDecimalSeparator; -- (BOOL) isLenient; -- (BOOL) isPartialStringValidationEnabled; -- (BOOL) generatesDecimalNumbers; -- (BOOL) usesGroupingSeparator; -- (BOOL) usesSignificantDigits; - -- (NSUInteger) minimumIntegerDigits; -- (NSUInteger) minimumFractionDigits; -- (NSUInteger) minimumSignificantDigits; - -- (NSUInteger) maximumIntegerDigits; -- (NSUInteger) maximumFractionDigits; -- (NSUInteger) maximumSignificantDigits; - -- (NSNumber *) minimum; -- (NSNumber *) maximum; - -- (void) setMinimum: (NSNumber *) value; -- (void) setMaximum: (NSNumber *) value; - -- (NSString *) nilSymbol; -- (NSString *) notANumberSymbol; -- (NSString *) zeroSymbol; -- (NSString *) plusSign; -- (NSString *) minusSign; -- (NSString *) negativePrefix; -- (NSString *) negativeSuffix; -- (NSString *) positivePrefix; -- (NSString *) positiveSuffix; -- (NSString *) negativeInfinitySymbol; -- (NSString *) positiveInfinitySymbol; -- (NSString *) decimalSeparator; -- (NSString *) exponentSymbol; -- (NSString *) currencyCode; -- (NSString *) currencySymbol; -- (NSString *) internationalCurrencySymbol; -- (NSString *) currencyDecimalSeparator; -- (NSString *) currencyGroupingSeparator; -- (NSString *) groupingSeparator; -- (NSUInteger) groupingSize; -- (NSUInteger) secondaryGroupingSize; -- (NSString *) paddingCharacter; -- (NSNumberFormatterPadPosition) paddingPosition; -- (NSString *) percentSymbol; -- (NSString *) perMillSymbol; -- (NSNumber *) roundingIncrement; -- (NSNumberFormatterRoundingMode) roundingMode; - -- (NSString *) positiveFormat; -- (NSString *) negativeFormat; -- (NSDictionary *) textAttributesForPositiveValues; -- (NSDictionary *) textAttributesForNegativeValues; -- (NSDictionary *) textAttributesForNegativeInfinity; -- (NSDictionary *) textAttributesForNil; -- (NSDictionary *) textAttributesForNotANumber; -- (NSDictionary *) textAttributesForPositiveInfinity; -- (NSDictionary *) textAttributesForZero; - -- (void) setAllowsFloats: (BOOL) flag; - -- (void) setCurrencyCode: (NSString *) value; -- (void) setCurrencyDecimalSeparator: (NSString *) value; -- (void) setCurrencyGroupingSeparator: (NSString *) value; -- (void) setCurrencySymbol: (NSString *) value; -- (void) setDecimalSeparator: (NSString *) value; -- (void) setExponentSymbol: (NSString *) value; -- (void) setFormatterBehavior: (NSNumberFormatterBehavior) value; -- (void) setFormatWidth: (NSUInteger) value; -- (void) setGeneratesDecimalNumbers: (BOOL) value; -- (void) setGroupingSeparator: (NSString *) value; -- (void) setGroupingSize: (NSUInteger) value; -- (void) setInternationalCurrencySymbol: (NSString *) value; -- (void) setLenient: (BOOL) value; -- (void) setLocale: (NSLocale *) value; -- (void) setMaximumFractionDigits: (NSUInteger) value; -- (void) setMaximumIntegerDigits: (NSUInteger) value; -- (void) setMaximumSignificantDigits: (NSUInteger) value; -- (void) setMinimumFractionDigits: (NSUInteger) value; -- (void) setMinimumIntegerDigits: (NSUInteger) value; -- (void) setMinimumSignificantDigits: (NSUInteger) value; -- (void) setMinusSign: (NSString *) value; -- (void) setMultiplier: (NSNumber *) value; -- (void) setNegativeInfinitySymbol: (NSString *) value; -- (void) setNegativePrefix: (NSString *) value; -- (void) setNegativeSuffix: (NSString *) value; -- (void) setNilSymbol: (NSString *) value; -- (void) setNotANumberSymbol: (NSString *) value; -- (void) setNumberStyle: (NSNumberFormatterStyle) value; -- (void) setPaddingCharacter: (NSString *) value; -- (void) setPaddingPosition: (NSNumberFormatterPadPosition) value; -- (void) setPartialStringValidationEnabled: (BOOL) value; -- (void) setPercentSymbol: (NSString *) value; -- (void) setPerMillSymbol: (NSString *) value; -- (void) setPlusSign: (NSString *) value; -- (void) setPositiveInfinitySymbol: (NSString *) value; -- (void) setPositivePrefix: (NSString *) value; -- (void) setPositiveSuffix: (NSString *) value; -- (void) setRoundingIncrement: (NSNumber *) value; -- (void) setRoundingMode: (NSNumberFormatterRoundingMode) value; -- (void) setSecondaryGroupingSize: (NSUInteger) value; -- (void) setTextAttributesForNegativeInfinity: (NSDictionary *) value; -- (void) setTextAttributesForNil: (NSDictionary *) value; -- (void) setTextAttributesForNotANumber: (NSDictionary *) value; -- (void) setTextAttributesForPositiveInfinity: (NSDictionary *) value; -- (void) setTextAttributesForZero: (NSDictionary *) value; -- (void) setUsesGroupingSeparator: (BOOL) value; -- (void) setUsesSignificantDigits: (BOOL) value; -- (void) setZeroSymbol: (NSString *) value; - -- (void) setAlwaysShowsDecimalSeparator: (BOOL) value; - -- (void) setPositiveFormat: (NSString *) format; -- (void) setNegativeFormat: (NSString *) format; - -- (void) setTextAttributesForNegativeValues: (NSDictionary *) attributes; -- (void) setTextAttributesForPositiveValues: (NSDictionary *) attributes; - -- (NSString *) stringFromNumber: (NSNumber *) number; -- (NSNumber *) numberFromString: (NSString *) string; - -- (BOOL) getObjectValue: (id *) valuep - forString: (NSString *) string - range: (NSRange *) rangep - error: (NSError **) errorp; - -// 10.0 behavior methods - -- (BOOL) hasThousandSeparators; -- (BOOL) localizesFormat; -- (NSString *) thousandSeparator; - -- (NSString *) format; -- (NSAttributedString *) attributedStringForZero; -- (NSAttributedString *) attributedStringForNil; -- (NSAttributedString *) attributedStringForNotANumber; -- (NSDecimalNumberHandler *) roundingBehavior; - -- (void) setHasThousandSeparators: (BOOL) value; -- (void) setLocalizesFormat: (BOOL) flag; -- (void) setThousandSeparator: (NSString *) value; -- (void) setFormat: (NSString *) format; -- (void) setAttributedStringForZero: (NSAttributedString *) attributedString; -- (void) setAttributedStringForNil: (NSAttributedString *) attributedString; -- (void) setAttributedStringForNotANumber: - (NSAttributedString *) attributedString; -- (void) setRoundingBehavior: (NSDecimalNumberHandler *) value; - -@end diff --git a/Foundation/NSNumberFormatter.m b/Foundation/NSNumberFormatter.m deleted file mode 100644 index 70e68973..00000000 --- a/Foundation/NSNumberFormatter.m +++ /dev/null @@ -1,1768 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#define NSNumberFormatterThousandSeparator ',' -#define NSNumberFormatterDecimalSeparator '.' -#define NSNumberFormatterPlaceholder '#' -#define NSNumberFormatterSpace '_' -#define NSNumberFormatterCurrency '$' - -@implementation NSNumberFormatter - -static NSNumberFormatterBehavior _defaultFormatterBehavior = - NSNumberFormatterBehavior10_4; - -+ (NSNumberFormatterBehavior) defaultFormatterBehavior { - return _defaultFormatterBehavior; -} - -+ (void) setDefaultFormatterBehavior: (NSNumberFormatterBehavior) value { - if (value == NSNumberFormatterBehaviorDefault) - _defaultFormatterBehavior = NSNumberFormatterBehavior10_4; - else - _defaultFormatterBehavior = value; -} - -- init { - [super init]; - _behavior = _defaultFormatterBehavior; - _numberStyle = NSNumberFormatterNoStyle; - - _locale = [[NSLocale currentLocale] retain]; - - _thousandSeparator = - [[_locale objectForKey: NSLocaleGroupingSeparator] retain]; - _decimalSeparator = - [[_locale objectForKey: NSLocaleDecimalSeparator] retain]; - _attributedStringForNil = [[NSAttributedString allocWithZone: NULL] - initWithString: @"(null)"]; - _attributedStringForNotANumber = - [[NSAttributedString allocWithZone: NULL] initWithString: @"NaN"]; - _attributedStringForZero = - [[NSAttributedString allocWithZone: NULL] initWithString: @"0.0"]; - _allowsFloats = YES; - - return self; -} - -// FIXME: doesnt do everything - -/* - * The format string (on 10.4 - which Cocotron currently supports) follows this - * standard: http://unicode.org/reports/tr35/tr35-4.html#Number_Format_Patterns - * The parser isn't handling every option in the string but at least the common - * things such as: [prefix] #,##0.### [suffix] - * - */ - -static void extractFormat(NSString *format, NSString **prefix, - NSString **suffix, NSUInteger *minimumIntegerDigitsp, - NSUInteger *maximumIntegerDigitsp, - NSUInteger *minimumFractionDigitsp, - NSUInteger *maximumFractionDigitsp, - NSUInteger *groupingSizep, - NSUInteger *secondaryGroupingSizep) -{ - NSUInteger length = [format length]; - NSUInteger prefixLength = 0; - NSUInteger suffixLength = 0; - - NSUInteger groupingSize = 0; - NSUInteger secondaryGroupingSize = 0; - - unichar buffer[length]; - unichar prefixBuffer[length], suffixBuffer[length]; - - enum { - STATE_PREFIX, - STATE_INTEGER, - STATE_FRACTION, - STATE_SUFFIX, - } state = STATE_PREFIX; - - NSUInteger minimumIntegerDigits, maximumIntegerDigits, - minimumFractionDigits, maximumFractionDigits; - minimumIntegerDigits = 0; - maximumIntegerDigits = 0; - minimumFractionDigits = 0; - maximumFractionDigits = 0; - - BOOL foundPrimaryGrouping = NO; - - [format getCharacters: buffer]; - - NSInteger i = 0; - for (i = 0; i < length; i++) { - unichar code = buffer[i]; - - switch (state) { - - case STATE_PREFIX: - // Looking for non-numeric chars leading off the format - stop when - // we find a 0 or a # or a '.' - if (code == '.') { - state = STATE_FRACTION; - } else if (code == '#' || - code == '0') { // starting off with a hash or a 0 - state = STATE_INTEGER; - i--; // step back so we can process these chars in the right - // state - } else { - // Suck up chars into the prefix - prefixBuffer[prefixLength++] = code; - } - break; - case STATE_INTEGER: - if (code == '.') { - state = STATE_FRACTION; - // No need to step back - the '.' just marks the separation - } else if (code == '#') { - if (foundPrimaryGrouping) { - groupingSize++; - } - maximumIntegerDigits++; - } else if (code == '0') { - if (foundPrimaryGrouping) { - groupingSize++; - } - minimumIntegerDigits++; - maximumIntegerDigits++; - } else if (code == ',') { - if (foundPrimaryGrouping == NO) { - foundPrimaryGrouping = YES; - } else { - secondaryGroupingSize = groupingSize; - groupingSize = 0; - } - } else { - // Anything we don't recognize means we're into the suffix part - state = STATE_SUFFIX; - i--; - } - break; - case STATE_FRACTION: - if (code == '#') { - maximumFractionDigits++; - } else if (code == '0') { - minimumFractionDigits++; - maximumFractionDigits++; - } else { - state = STATE_SUFFIX; - i--; // and step back one to catch the contents - } - break; - case STATE_SUFFIX: - suffixBuffer[suffixLength++] = code; - break; - } - } - - // Update all valud the parameters - if (minimumIntegerDigitsp != NULL) { - *minimumIntegerDigitsp = minimumIntegerDigits; - } - - if (maximumIntegerDigitsp != NULL) { - *maximumIntegerDigitsp = maximumIntegerDigits; - } - - if (minimumFractionDigitsp != NULL) { - *minimumFractionDigitsp = minimumFractionDigits; - } - - if (maximumFractionDigitsp != NULL) { - *maximumFractionDigitsp = maximumFractionDigits; - } - - if (groupingSizep != NULL) { - *groupingSizep = groupingSize; - } - - if (secondaryGroupingSizep != NULL) { - *secondaryGroupingSizep = secondaryGroupingSize; - } - - if (prefixLength > 0) { - *prefix = [[NSString allocWithZone: NULL] - initWithCharacters: prefixBuffer - length: prefixLength]; - } - - if (suffixLength > 0) { - *suffix = [[NSString allocWithZone: NULL] - initWithCharacters: suffixBuffer - length: suffixLength]; - } -} - -- (void) extractFromPositiveFormat { - if ([_positiveFormat length]) { - - [_positivePrefix release]; - _positivePrefix = nil; - [_positiveSuffix release]; - _positiveSuffix = nil; - - extractFormat(_positiveFormat, &_positivePrefix, &_positiveSuffix, - &_minimumIntegerDigits, &_maximumIntegerDigits, - &_minimumFractionDigits, &_maximumFractionDigits, - &_groupingSize, &_secondaryGroupingSize); - _customMaximumFractionDigits = YES; - } -} - -- (void) extractFromNegativeFormat { - if ([_negativeFormat length]) { - - [_negativePrefix release]; - _negativePrefix = nil; - [_negativeSuffix release]; - _negativeSuffix = nil; - - extractFormat(_negativeFormat, &_negativePrefix, &_negativeSuffix, NULL, - NULL, NULL, NULL, NULL, NULL); - if ([_negativePrefix isEqualToString: @"-"]) { - // That's not a very interesting prefix... - [_negativePrefix release]; - _negativePrefix = nil; - } - } -} - -- initWithCoder: (NSCoder *) coder { - [super initWithCoder: coder]; - - if ([coder allowsKeyedCoding]) { - NSDictionary *attributes = [coder decodeObjectForKey: @"NS.attributes"]; - id check; - - if ((check = [attributes objectForKey: @"formatterBehavior"]) != nil) - _behavior = [check integerValue]; - if ((check = [attributes objectForKey: @"numberStyle"]) != nil) - _numberStyle = [check integerValue]; - if ((check = [attributes objectForKey: @"formatWidth"]) != nil) - _formatWidth = [check integerValue]; - _locale = [[attributes objectForKey: @"locale"] copy]; - _multiplier = [[attributes objectForKey: @"multiplier"] copy]; - if ((check = [attributes objectForKey: @"allowsFloats"]) != nil) - _allowsFloats = [check boolValue]; - if ((check = [attributes - objectForKey: @"alwaysShowsDecimalSeparator"]) != nil) - _alwaysShowsDecimalSeparator = [check boolValue]; - if ((check = [attributes objectForKey: @"lenient"]) != nil) - _isLenient = [check boolValue]; - _isPartialStringValidationEnabled = NO; // not editable in IB - if ((check = [attributes objectForKey: @"generatesDecimalNumbers"]) != - nil) - _generatesDecimalNumbers = [check boolValue]; - if ((check = [attributes objectForKey: @"usesGroupingSeparator"]) != - nil) - _usesGroupingSeparator = [check boolValue]; - _usesSignificantDigits = NO; // not editable in IB - - if ((check = [attributes objectForKey: @"minimumIntegerDigits"]) != nil) - _minimumIntegerDigits = [check integerValue]; - if ((check = [attributes objectForKey: @"minimumFractionDigits"]) != - nil) - _minimumFractionDigits = [check integerValue]; - _minimumSignificantDigits = 0; - - if ((check = [attributes objectForKey: @"maximumIntegerDigits"]) != nil) - _maximumIntegerDigits = [check integerValue]; - if ((check = [attributes objectForKey: @"maximumFractionDigits"]) != - nil) { - _customMaximumFractionDigits = YES; - _maximumFractionDigits = [check integerValue]; - } - _maximumSignificantDigits = 0; - - _minimum = [[attributes objectForKey: @"minimum"] copy]; - _maximum = [[attributes objectForKey: @"maximum"] copy]; - - _nilSymbol = [[attributes objectForKey: @"nilSymbol"] copy]; - _notANumberSymbol = - [[attributes objectForKey: @"notANumberSymbol"] copy]; - _zeroSymbol = [[attributes objectForKey: @"zeroSymbol"] copy]; - _plusSign = [[attributes objectForKey: @"plusSign"] copy]; - _minusSign = [[attributes objectForKey: @"minusSign"] copy]; - - _negativePrefix = [[attributes objectForKey: @"negativePrefix"] copy]; - _negativeSuffix = [[attributes objectForKey: @"negativeSuffix"] copy]; - _positivePrefix = [[attributes objectForKey: @"positivePrefix"] copy]; - _positiveSuffix = [[attributes objectForKey: @"positiveSuffix"] copy]; - _negativeInfinitySymbol = - [[attributes objectForKey: @"negativeInfinitySymbol"] copy]; - _positiveInfinitySymbol = - [[attributes objectForKey: @"positiveInfinitySymbol"] copy]; - - _decimalSeparator = - [[attributes objectForKey: @"decimalSeparator"] copy]; - _exponentSymbol = [[attributes objectForKey: @"exponentSymbol"] copy]; - _currencyCode = [[attributes objectForKey: @"currencyCode"] copy]; - _currencySymbol = [[attributes objectForKey: @"currencySymbol"] copy]; - _internationalCurrencySymbol = [[attributes - objectForKey: @"internationalCurrencySymbol"] copy]; - _currencyDecimalSeparator = - [[attributes objectForKey: @"currencyDecimalSeparator"] copy]; - _currencyGroupingSeparator = - [[attributes objectForKey: @"currencyGroupingSeparator"] copy]; - _groupingSeparator = - [[attributes objectForKey: @"groupingSeparator"] copy]; - _groupingSize = - [[attributes objectForKey: @"groupingSize"] integerValue]; - _secondaryGroupingSize = [[attributes - objectForKey: @"secondaryGroupingSize"] integerValue]; - _paddingCharacter = - [[attributes objectForKey: @"paddingCharacter"] copy]; - _paddingPosition = - [[attributes objectForKey: @"paddingPosition"] integerValue]; - - _percentSymbol = [[attributes objectForKey: @"percentSymbol"] copy]; - _perMillSymbol = [[attributes objectForKey: @"perMillSymbol"] copy]; - _roundingIncrement = - [[attributes objectForKey: @"roundingIncrement"] copy]; - _roundingMode = - [[attributes objectForKey: @"roundingMode"] integerValue]; - - _positiveFormat = [[attributes objectForKey: @"positiveFormat"] copy]; - _negativeFormat = [[attributes objectForKey: @"negativeFormat"] copy]; - - [self extractFromPositiveFormat]; - [self extractFromNegativeFormat]; - - _textAttributesForPositiveValues = nil; - _textAttributesForNegativeValues = nil; - _textAttributesForNegativeInfinity = nil; - _textAttributesForNil = nil; - _textAttributesForNotANumber = nil; - _textAttributesForPositiveInfinity = nil; - _textAttributesForZero = nil; - -// 10.0, these need to be stored separately -#if 0 - _nilSymbol=[[coder decodeObjectForKey:@"NS.nil"] copy]; - _zeroSymbol=[[coder decodeObjectForKey:@"NS.zero"] copy]; - - _positiveFormat=[[coder decodeObjectForKey:@"NS.positiveformat"] copy]; - _negativeFormat=[[coder decodeObjectForKey:@"NS.negativeformat"] copy]; - _textAttributesForPositiveValues=[[coder decodeObjectForKey:@"NS.positiveattrs"] copy] - _textAttributesForNegativeValues=[[coder decodeObjectForKey:@"NS.negativeattrs"] copy] - - _decimalSeparator=[[coder decodeObjectForKey:@"NS.decimal"] copy]; - _thousandSeparator=[[coder decodeObjectForKey:@"NS.thousand"] copy]; - _hasThousandSeparators=[coder decodeBoolForKey:@"NS.hasthousands"]; - _allowsFloats=[coder decodeBoolForKey:@"NS.allowsfloats"]; - _localizesFormat=[coder decodeBoolForKey:@"NS.localized"]; -#endif - } - - return self; -} - -- (void) dealloc { - - [_locale release]; - [_multiplier release]; - - [_minimum release]; - [_maximum release]; - - [_nilSymbol release]; - [_notANumberSymbol release]; - [_zeroSymbol release]; - [_plusSign release]; - [_minusSign release]; - [_negativePrefix release]; - [_negativeSuffix release]; - [_positivePrefix release]; - [_positiveSuffix release]; - [_negativeInfinitySymbol release]; - [_positiveInfinitySymbol release]; - - [_decimalSeparator release]; - [_exponentSymbol release]; - [_currencyCode release]; - [_currencySymbol release]; - [_internationalCurrencySymbol release]; - [_currencyDecimalSeparator release]; - [_currencyGroupingSeparator release]; - [_groupingSeparator release]; - [_paddingCharacter release]; - [_percentSymbol release]; - [_perMillSymbol release]; - [_roundingIncrement release]; - [_positiveFormat release]; - [_negativeFormat release]; - [_textAttributesForPositiveValues release]; - [_textAttributesForNegativeValues release]; - [_textAttributesForNegativeInfinity release]; - [_textAttributesForNil release]; - [_textAttributesForNotANumber release]; - [_textAttributesForPositiveInfinity release]; - [_textAttributesForZero release]; - - [_attributedStringForNil release]; - [_attributedStringForNotANumber release]; - [_attributedStringForZero release]; - [_roundingBehavior release]; - [_thousandSeparator release]; - - [super dealloc]; -} - -- (NSNumberFormatterBehavior) formatterBehavior { - return _behavior; -} - -- (NSNumberFormatterStyle) numberStyle { - return _numberStyle; -} - -- (NSString *) format { - return [NSString stringWithFormat: @"%@;%@;%@", _positiveFormat, - _attributedStringForZero, - _negativeFormat]; -} - -- (NSUInteger) formatWidth { - return _formatWidth; -} - -- (NSLocale *) locale { - return _locale; -} - -- (NSNumber *) multiplier { - if (_multiplier == nil) { - - if (_numberStyle == NSNumberFormatterPercentStyle) - return [NSNumber numberWithInt: 100]; - } - - return _multiplier; -} - -- (BOOL) allowsFloats { - return _allowsFloats; -} - -- (BOOL) localizesFormat { - return _localizesFormat; -} - -- (BOOL) hasThousandSeparators { - return _hasThousandSeparators; -} - -- (BOOL) alwaysShowsDecimalSeparator { - return _alwaysShowsDecimalSeparator; -} - -- (BOOL) isLenient { - return _isLenient; -} - -- (BOOL) isPartialStringValidationEnabled { - return _isPartialStringValidationEnabled; -} - -- (BOOL) generatesDecimalNumbers { - return _generatesDecimalNumbers; -} - -- (BOOL) usesGroupingSeparator { - return _usesGroupingSeparator; -} - -- (BOOL) usesSignificantDigits { - return _usesSignificantDigits; -} - -- (NSUInteger) minimumIntegerDigits { - return _minimumIntegerDigits; -} - -- (NSUInteger) minimumFractionDigits { - return _minimumFractionDigits; -} - -- (NSUInteger) minimumSignificantDigits { - return _minimumSignificantDigits; -} - -- (NSUInteger) maximumIntegerDigits { - return _maximumIntegerDigits; -} - -- (NSUInteger) maximumFractionDigits { - if (_customMaximumFractionDigits) - return _maximumFractionDigits; - - if (_numberStyle == NSNumberFormatterDecimalStyle) - return 3; - - return 0; -} - -- (NSUInteger) maximumSignificantDigits { - return _maximumSignificantDigits; -} - -- (NSNumber *) minimum { - return _minimum; -} - -- (NSNumber *) maximum { - return _maximum; -} - -- (NSString *) nilSymbol { - return _nilSymbol; -} - -- (NSString *) notANumberSymbol { - if (_notANumberSymbol == nil) - return @"NaN"; - - return _notANumberSymbol; -} - -- (NSString *) zeroSymbol { - return _zeroSymbol; -} - -- (NSString *) plusSign { - return _plusSign; -} - -- (NSString *) minusSign { - return _minusSign; -} - -- (NSString *) negativePrefix { - if (_negativePrefix == nil) - return @""; - - return _negativePrefix; -} - -- (NSString *) negativeSuffix { - // Suffixes return the percent symbol if specified - - if (_negativeSuffix == nil) { - - if (_numberStyle == NSNumberFormatterPercentStyle) - return [self percentSymbol]; - - return @""; - } - - return _negativeSuffix; -} - -- (NSString *) positivePrefix { - if (_positivePrefix == nil) - return @""; - - return _positivePrefix; -} - -- (NSString *) positiveSuffix { - // Suffixes return the percent symbol if specified - - if (_positiveSuffix == nil) { - - if (_numberStyle == NSNumberFormatterPercentStyle) - return [self percentSymbol]; - - return @""; - } - - return _positiveSuffix; -} - -- (NSString *) negativeInfinitySymbol { - return _negativeInfinitySymbol; -} - -- (NSString *) positiveInfinitySymbol { - return _positiveInfinitySymbol; -} - -- (NSString *) thousandSeparator { - return _thousandSeparator; -} - -- (NSString *) decimalSeparator { - return _decimalSeparator; -} - -- (NSString *) exponentSymbol { - return _exponentSymbol; -} - -- (NSString *) currencyCode { - return _currencyCode; -} - -- (NSString *) currencySymbol { - return _currencySymbol; -} - -- (NSString *) internationalCurrencySymbol { - return _internationalCurrencySymbol; -} - -- (NSString *) currencyDecimalSeparator { - return _currencyDecimalSeparator; -} - -- (NSString *) currencyGroupingSeparator { - return _currencyGroupingSeparator; -} - -- (NSString *) groupingSeparator { - if (_groupingSeparator == nil) { - NSString *check = [_locale objectForKey: NSLocaleGroupingSeparator]; - - if (check != nil) - return check; - - return @","; - } - - return _groupingSeparator; -} - -- (NSUInteger) groupingSize { - return _groupingSize; -} - -- (NSUInteger) secondaryGroupingSize { - return _secondaryGroupingSize; -} - -- (NSString *) paddingCharacter { - return _paddingCharacter; -} - -- (NSNumberFormatterPadPosition) paddingPosition { - return _paddingPosition; -} - -- (NSString *) percentSymbol { - if (_percentSymbol == nil) - return @"%"; - - return _percentSymbol; -} - -- (NSString *) perMillSymbol { - return _perMillSymbol; -} - -- (NSDecimalNumberHandler *) roundingBehavior { - return _roundingBehavior; -} - -- (NSNumber *) roundingIncrement { - return _roundingIncrement; -} - -- (NSNumberFormatterRoundingMode) roundingMode { - return _roundingMode; -} - -- (NSString *) positiveFormat { - return _positiveFormat; -} - -- (NSString *) negativeFormat { - return _negativeFormat; -} - -- (NSDictionary *) textAttributesForPositiveValues { - return _textAttributesForPositiveValues; -} - -- (NSDictionary *) textAttributesForNegativeValues { - return _textAttributesForNegativeValues; -} - -- (NSAttributedString *) attributedStringForNil { - return _attributedStringForNil; -} - -- (NSAttributedString *) attributedStringForNotANumber { - return _attributedStringForNotANumber; -} - -- (NSAttributedString *) attributedStringForZero { - return _attributedStringForZero; -} - -- (NSDictionary *) textAttributesForNegativeInfinity { - return _textAttributesForNegativeInfinity; -} - -- (NSDictionary *) textAttributesForNil { - return _textAttributesForNil; -} - -- (NSDictionary *) textAttributesForNotANumber { - return _textAttributesForNotANumber; -} - -- (NSDictionary *) textAttributesForPositiveInfinity { - return _textAttributesForPositiveInfinity; -} - -- (NSDictionary *) textAttributesForZero { - return _textAttributesForZero; -} - -- (void) setFormat: (NSString *) format { - // This is 10.0 behavior only, probably broken anyway - NSArray *formatStrings = [format componentsSeparatedByString: @";"]; - - _positiveFormat = [[formatStrings objectAtIndex: 0] retain]; - - if ([formatStrings count] == 3) { - _negativeFormat = [[formatStrings objectAtIndex: 2] retain]; - _attributedStringForZero = [[NSAttributedString allocWithZone: NULL] - initWithString: [formatStrings objectAtIndex: 1] - attributes: [NSDictionary dictionary]]; - } else if ([formatStrings count] == 2) - _negativeFormat = [[formatStrings objectAtIndex: 1] retain]; - else - _negativeFormat = [NSString stringWithFormat: @"-%@", _positiveFormat]; - - if ([format rangeOfString: @","].location != NSNotFound || - [format rangeOfString: _thousandSeparator].location != NSNotFound) - [self setHasThousandSeparators: YES]; -} - -- (void) setAllowsFloats: (BOOL) flag { - _allowsFloats = flag; -} - -- (void) setLocalizesFormat: (BOOL) flag { - _localizesFormat = flag; -} - -- (void) setCurrencyCode: (NSString *) value { - value = [value copy]; - [_currencyCode release]; - _currencyCode = value; -} - -- (void) setCurrencyDecimalSeparator: (NSString *) value { - value = [value copy]; - [_currencyDecimalSeparator release]; - _currencyDecimalSeparator = value; -} - -- (void) setCurrencyGroupingSeparator: (NSString *) value { - value = [value copy]; - [_currencyGroupingSeparator release]; - _currencyGroupingSeparator = value; -} - -- (void) setCurrencySymbol: (NSString *) value { - value = [value copy]; - [_currencySymbol release]; - _currencySymbol = value; -} - -- (void) setDecimalSeparator: (NSString *) value { - value = [value copy]; - [_decimalSeparator release]; - _decimalSeparator = value; -} - -- (void) setExponentSymbol: (NSString *) value { - value = [value copy]; - [_exponentSymbol release]; - _exponentSymbol = value; -} - -- (void) setFormatterBehavior: (NSNumberFormatterBehavior) value { - _behavior = value; -} - -- (void) setFormatWidth: (NSUInteger) value { - _formatWidth = value; -} - -- (void) setGeneratesDecimalNumbers: (BOOL) value { - _generatesDecimalNumbers = value; -} - -- (void) setGroupingSeparator: (NSString *) value { - value = [value copy]; - [_groupingSeparator release]; - _groupingSeparator = value; -} - -- (void) setGroupingSize: (NSUInteger) value { - _groupingSize = value; -} - -- (void) setInternationalCurrencySymbol: (NSString *) value { - value = [value copy]; - [_internationalCurrencySymbol release]; - _internationalCurrencySymbol = value; -} - -- (void) setLenient: (BOOL) value { - _isLenient = value; -} - -- (void) setLocale: (NSLocale *) value { - value = [value copy]; - [_locale release]; - _locale = value; -} - -- (void) setMaximumFractionDigits: (NSUInteger) value { - _customMaximumFractionDigits = YES; - _maximumFractionDigits = value; -} - -- (void) setMaximumIntegerDigits: (NSUInteger) value { - _maximumIntegerDigits = value; -} - -- (void) setMaximumSignificantDigits: (NSUInteger) value { - _maximumSignificantDigits = value; -} - -- (void) setMinimum: (NSNumber *) value { - value = [value copy]; - [_minimum release]; - _minimum = value; -} - -- (void) setMaximum: (NSNumber *) value { - value = [value copy]; - [_maximum release]; - _maximum = value; -} - -- (void) setMinimumFractionDigits: (NSUInteger) value { - _minimumFractionDigits = value; -} - -- (void) setMinimumIntegerDigits: (NSUInteger) value { - _minimumIntegerDigits = value; -} - -- (void) setMinimumSignificantDigits: (NSUInteger) value { - _minimumSignificantDigits = value; -} - -- (void) setMinusSign: (NSString *) value { - value = [value copy]; - [_minusSign release]; - _minusSign = value; -} - -- (void) setMultiplier: (NSNumber *) value { - value = [value copy]; - [_multiplier release]; - _multiplier = value; -} - -- (void) setNegativeInfinitySymbol: (NSString *) value { - value = [value copy]; - [_negativeInfinitySymbol release]; - _negativeInfinitySymbol = value; -} - -- (void) setNegativePrefix: (NSString *) value { - value = [value copy]; - [_negativePrefix release]; - _negativePrefix = value; -} - -- (void) setNegativeSuffix: (NSString *) value { - value = [value copy]; - [_negativeSuffix release]; - _negativeSuffix = value; -} - -- (void) setNilSymbol: (NSString *) value { - value = [value copy]; - [_nilSymbol release]; - _nilSymbol = value; -} - -- (void) setNotANumberSymbol: (NSString *) value { - value = [value copy]; - [_notANumberSymbol release]; - _notANumberSymbol = value; -} - -- (void) setNumberStyle: (NSNumberFormatterStyle) value { - _numberStyle = value; -} - -- (void) setPaddingCharacter: (NSString *) value { - value = [value copy]; - [_paddingCharacter release]; - _paddingCharacter = value; -} - -- (void) setPaddingPosition: (NSNumberFormatterPadPosition) value { - _paddingPosition = value; -} - -- (void) setPartialStringValidationEnabled: (BOOL) value { - _isPartialStringValidationEnabled = value; -} - -- (void) setPercentSymbol: (NSString *) value { - value = [value copy]; - [_percentSymbol release]; - _percentSymbol = value; -} - -- (void) setPerMillSymbol: (NSString *) value { - value = [value copy]; - [_perMillSymbol release]; - _perMillSymbol = value; -} - -- (void) setPlusSign: (NSString *) value { - value = [value copy]; - [_plusSign release]; - _plusSign = value; -} - -- (void) setPositiveInfinitySymbol: (NSString *) value { - value = [value copy]; - [_positiveInfinitySymbol release]; - _positiveInfinitySymbol = value; -} - -- (void) setPositivePrefix: (NSString *) value { - value = [value copy]; - [_positivePrefix release]; - _positivePrefix = value; -} - -- (void) setPositiveSuffix: (NSString *) value { - value = [value copy]; - [_positiveSuffix release]; - _positiveSuffix = value; -} - -- (void) setRoundingBehavior: (NSDecimalNumberHandler *) value { - value = [value retain]; - [_roundingBehavior release]; - _roundingBehavior = value; -} - -- (void) setRoundingIncrement: (NSNumber *) value { - value = [value copy]; - [_roundingIncrement release]; - _roundingIncrement = value; -} - -- (void) setRoundingMode: (NSNumberFormatterRoundingMode) value { - _roundingMode = value; -} - -- (void) setSecondaryGroupingSize: (NSUInteger) value { - _secondaryGroupingSize = value; -} - -- (void) setTextAttributesForNegativeInfinity: (NSDictionary *) value { - value = [value copy]; - [_textAttributesForNegativeInfinity release]; - _textAttributesForNegativeInfinity = value; -} - -- (void) setTextAttributesForNil: (NSDictionary *) value { - value = [value copy]; - [_textAttributesForNil release]; - _textAttributesForNil = value; -} - -- (void) setTextAttributesForNotANumber: (NSDictionary *) value { - value = [value copy]; - [_textAttributesForNotANumber release]; - _textAttributesForNotANumber = value; -} - -- (void) setTextAttributesForPositiveInfinity: (NSDictionary *) value { - value = [value copy]; - [_textAttributesForPositiveInfinity release]; - _textAttributesForPositiveInfinity = value; -} - -- (void) setTextAttributesForPositiveValues: (NSDictionary *) value { - value = [value copy]; - [_textAttributesForPositiveValues release]; - _textAttributesForPositiveValues = value; -} - -- (void) setTextAttributesForZero: (NSDictionary *) value { - value = [value copy]; - [_textAttributesForZero release]; - _textAttributesForZero = value; -} - -- (void) setThousandSeparator: (NSString *) value { - value = [value copy]; - [_thousandSeparator release]; - _thousandSeparator = value; - [self setHasThousandSeparators: YES]; -} - -- (void) setUsesGroupingSeparator: (BOOL) value { - _usesGroupingSeparator = value; -} - -- (void) setUsesSignificantDigits: (BOOL) value { - _usesSignificantDigits = value; -} - -- (void) setZeroSymbol: (NSString *) value { - value = [value copy]; - [_zeroSymbol release]; - _zeroSymbol = value; -} - -- (void) setHasThousandSeparators: (BOOL) value { - _hasThousandSeparators = value; -} - -- (void) setAlwaysShowsDecimalSeparator: (BOOL) value { - _alwaysShowsDecimalSeparator = value; -} - -- (void) setPositiveFormat: (NSString *) value { - value = [value copy]; - [_positiveFormat release]; - _positiveFormat = value; - // FIXME: generate formatting values from string -} - -- (void) setNegativeFormat: (NSString *) value { - value = [value copy]; - [_negativeFormat release]; - _negativeFormat = value; - // FIXME: generate formatting values from string -} - -- (void) setTextAttributesForNegativeValues: (NSDictionary *) value { - value = [value copy]; - [_textAttributesForNegativeValues release]; - _textAttributesForNegativeValues = value; -} - -- (void) setAttributedStringForNil: (NSAttributedString *) value { - value = [value copy]; - [_attributedStringForNil release]; - _attributedStringForNil = value; -} - -- (void) setAttributedStringForNotANumber: (NSAttributedString *) value { - value = [value copy]; - [_attributedStringForNotANumber release]; - _attributedStringForNotANumber = value; -} - -- (void) setAttributedStringForZero: (NSAttributedString *) value { - value = [value copy]; - [_attributedStringForZero release]; - _attributedStringForZero = value; -} - -- (NSString *) stringFromNumber10_0: (NSNumber *) number { - NSUnimplementedMethod(); - return [number description]; -} - -static NSString *stringWithFormatGrouping(NSString *format, id locale, - NSString *groupingSeparator, - NSInteger groupingSize, ...) -{ - NSUInteger length = 0; - va_list arguments; - - va_start(arguments, groupingSize); - - unichar *unicode = NSCharactersNewWithFormatAndGrouping( - format, locale, arguments, &length, NULL, groupingSeparator, - groupingSize); - - return [NSString_unicodePtrNewNoCopy(NULL, unicode, length, YES) - autorelease]; -} - -- (NSString *) _stringFromNumber: (NSNumber *) number { - NSString *string = nil; - - if (number == nil) - string = [self nilSymbol]; - else if (number == (NSNumber *) kCFNumberNaN) - string = [self notANumberSymbol]; - else if (number == (NSNumber *) kCFNumberPositiveInfinity) { - NSString *check = [self positiveInfinitySymbol]; - - if (check == nil) { - unichar code = 0x221E; // unicode infinity - - check = [NSString stringWithCharacters: &code length: 1]; - } - - string = check; - } else if (number == (NSNumber *) kCFNumberNegativeInfinity) { - NSString *check = [self negativeInfinitySymbol]; - - if (check == nil) { - unichar codes[2] = {'-', 0x221E}; // unicode infinity - - check = [NSString stringWithCharacters: codes length: 2]; - } - - string = check; - } - - const char *objcType = [number objCType]; - - if (objcType == NULL || strlen(objcType) != 1) - objcType = "?"; - - switch (*objcType) { - case _C_CHR: - case _C_SHT: - case _C_INT: -#ifndef __LP64__ - case _C_LNG: -#endif - string = stringWithFormatGrouping( - @"%i", _locale, [self groupingSeparator], [self groupingSize], - [number intValue]); - break; - - case _C_UCHR: - case _C_USHT: - case _C_UINT: -#ifndef __LP64__ - case _C_ULNG: -#endif - string = stringWithFormatGrouping( - @"%u", _locale, [self groupingSeparator], [self groupingSize], - [number unsignedIntValue]); - break; - -#ifdef __LP64__ - case _C_LNG: -#endif - case _C_LNG_LNG: - string = stringWithFormatGrouping( - @"%qd", _locale, [self groupingSeparator], [self groupingSize], - [number longLongValue]); - break; - break; - -#ifdef __LP64__ - case _C_ULNG: -#endif - case _C_ULNG_LNG: - string = stringWithFormatGrouping( - @"%qu", _locale, [self groupingSeparator], [self groupingSize], - [number unsignedLongLongValue]); - break; - - case _C_FLT: - case _C_DBL:; - NSString *format; - - format = [NSString - stringWithFormat: @"%%.%df", [self minimumFractionDigits]]; - - string = stringWithFormatGrouping( - format, _locale, [self groupingSeparator], [self groupingSize], - [number doubleValue]); - break; - - default: - string = [number description]; - break; - } - - return string; -} - -static NSNumber *multipliedNumber(NSNumber *number, NSNumber *multiplier) { - if (multiplier == nil) - return number; - - return [NSNumber - numberWithDouble: [number doubleValue] * [multiplier doubleValue]]; -} - -static BOOL numberIsNegative(NSNumber *number) { - if (number == nil) - return NO; - - return (copysign(1.0, [number doubleValue]) < 0) ? YES : NO; -} - -static BOOL numberIsPositive(NSNumber *number) { - if (number == nil) - return YES; // ? - - return (copysign(1.0, [number doubleValue]) > 0) ? YES : NO; -} - -- (NSString *) stringFromNumberNoStyle: (NSNumber *) number { - number = multipliedNumber(number, [self multiplier]); - - NSString *prefix; - NSString *suffix; - // unused - // NSString *format; - - if (numberIsNegative(number)) { - prefix = [self negativePrefix]; - suffix = [self negativeSuffix]; - // format=[self negativeFormat]; - } else { - prefix = [self positivePrefix]; - suffix = [self positiveSuffix]; - // format=[self positiveFormat]; - } - - NSString *result; - - result = prefix; - result = [result stringByAppendingString: [self _stringFromNumber: number]]; - result = [result stringByAppendingString: suffix]; - - return result; -} - -- (NSString *) stringFromNumberPercentStyle: (NSNumber *) number { - NSUnimplementedMethod(); - return [[self stringFromNumberNoStyle: number] - stringByAppendingString: [self percentSymbol]]; -} - -- (NSString *) stringFromNumber10_4: (NSNumber *) number { - switch (_numberStyle) { - - case NSNumberFormatterNoStyle: - return [self stringFromNumberNoStyle: number]; - - case NSNumberFormatterDecimalStyle: - return [self stringFromNumberNoStyle: number]; - - case NSNumberFormatterCurrencyStyle: - NSUnimplementedMethod(); - break; - - case NSNumberFormatterPercentStyle: - return [self stringFromNumberNoStyle: number]; - - case NSNumberFormatterScientificStyle: - NSUnimplementedMethod(); - break; - - case NSNumberFormatterSpellOutStyle: - NSUnimplementedMethod(); - break; - } - return [number description]; -} - -- (NSString *) stringFromNumber: (NSNumber *) number { - NSNumberFormatterBehavior check = _behavior; - - if (check == NSNumberFormatterBehaviorDefault) - check = NSNumberFormatterBehavior10_4; - - if (check == NSNumberFormatterBehavior10_0) - return [self stringFromNumber10_0: number]; - else - return [self stringFromNumber10_4: number]; -} - -- (NSNumber *) _numberFromString: (NSString *) string - error: (NSString **) error -{ - // Note: this method is still quite incomplete compared to the thousand of - // formatting combinations you can set on a number formatter... - - NSMutableString *mutableString = [[string mutableCopy] autorelease]; - unichar thousandSeparator = [_thousandSeparator characterAtIndex: 0]; - - for (NSUInteger i = 0; i < [mutableString length]; ++i) { - // take out the thousand separator - if (_hasThousandSeparators && - [mutableString characterAtIndex: i] == thousandSeparator) { - [mutableString deleteCharactersInRange: NSMakeRange(i, 1)]; - } - } - // Locale to use to parse the string - NSLocale *locale = _locale; - if (locale == nil) { - locale = [NSLocale currentLocale]; - } - if (_decimalSeparator) { - // Replace the decimal separator to the scanner locale one so the - // scanner can properly parse the string in case the formatter custom - // separator doesn't match the locale one - NSString *localeDecimalSeparator = - [locale objectForKey: NSLocaleDecimalSeparator]; - if (localeDecimalSeparator) { - [mutableString - replaceOccurrencesOfString: _decimalSeparator - withString: localeDecimalSeparator - options: 0 - range: NSMakeRange(0, - [mutableString - length])]; - } - } - - NSScanner *scanner = [NSScanner scannerWithString: mutableString]; - [scanner setLocale: (id) locale]; - - float value; - NSNumber *number = nil; - BOOL isValid = YES; - if ([scanner scanFloat: &value] == NO) { - isValid = NO; - } else { - if (![scanner isAtEnd]) { - // The number is valid only if the remaining string is the suffix - NSString *suffix = - value >= 0 ? [self positiveSuffix] : [self negativeSuffix]; - if ([suffix length]) { - NSString *remainingString = [[scanner string] - substringFromIndex: [scanner scanLocation]]; - if (![remainingString isEqualToString: suffix]) { - isValid = NO; - } - } else { - isValid = NO; - } - } - if (isValid) { - if ([self multiplier]) { - value /= [[self multiplier] floatValue]; - } - number = [NSNumber numberWithFloat: value]; - } - } - if (isValid == NO) { - if (error != NULL) { - *error = NSLocalizedStringFromTableInBundle( - @"Invalid number", nil, - [NSBundle bundleForClass: [NSNumberFormatter class]], @""); - } - number = nil; - } - return number; -} - -- (NSNumber *) numberFromString: (NSString *) string { - return [self _numberFromString: string error: NULL]; -} - -// BROKEN -#if 0 --(NSString *)_objectValue:(id)object withNumberFormat:(NSString *)format { - NSString *stringValue = [[NSNumber numberWithDouble:[object doubleValue]] stringValue]; - //NSAllocateMemoryPages wtf?? - unichar *valueBuffer = NSAllocateMemoryPages([stringValue length]+1); - unichar *formatBuffer = NSAllocateMemoryPages([format length]+1); - unichar *outputBuffer = NSAllocateMemoryPages([format length]+64); - BOOL isNegative = [stringValue hasPrefix:@"-"]; - BOOL done = NO; - NSUInteger formatIndex, valueIndex = 0, outputIndex = 0; - NSUInteger prePoint, postPoint; - NSInteger thousandSepCounter; - - // remove - - if (isNegative) - stringValue = [stringValue substringWithRange:NSMakeRange(1, [stringValue length]-1)]; - - prePoint = [stringValue rangeOfString:@"."].location; - postPoint = [stringValue length] - prePoint - 1; - - // decremented in main loop, when zero, time for a separator - if (_hasThousandSeparators) - thousandSepCounter = (prePoint % 3) ? (prePoint % 3) : 3; - else - thousandSepCounter = -1; // never - - NSLog(@"%@: pre %d post %d sep %d", stringValue, prePoint, postPoint, thousandSepCounter); - - [format getCharacters:formatBuffer]; - [stringValue getCharacters:valueBuffer]; - - while (!done) { - switch(formatBuffer[formatIndex]) { - case NSNumberFormatterThousandSeparator: - [self setHasThousandSeparators:YES]; - [self setThousandSeparator:[NSString stringWithCharacters:formatBuffer+formatIndex length:1]]; - break; - - case NSNumberFormatterDecimalSeparator: - [self setDecimalSeparator:[NSString stringWithCharacters:formatBuffer+formatIndex length:1]]; - break; - - case NSNumberFormatterPlaceholder: - case NSNumberFormatterSpace: - outputBuffer[outputIndex++] = valueBuffer[valueIndex++]; - - if (valueIndex < prePoint) { - thousandSepCounter--; - if (thousandSepCounter == 0) { - outputBuffer[outputIndex++] = [_thousandSeparator characterAtIndex:0]; - thousandSepCounter = 3; - } - } - else if (valueIndex == prePoint) - outputBuffer[outputIndex++] = [_decimalSeparator characterAtIndex:0]; - else { - postPoint--; - if (postPoint == 0) - done = YES; - } - - break; - - case NSNumberFormatterCurrency: - // localize - - default: - outputBuffer[outputIndex++] = formatBuffer[formatIndex]; - break; - } - - formatIndex++; - } - - NSLog(@"stringValue %@ format %@", stringValue, format); - return [NSString stringWithCharacters:outputBuffer length:outputIndex]; -} -#endif - -// this section works, but it's pretty lame... -// it doesn't round, it truncates; integers in the format specifier are -// ignored... -- (NSString *) _separatedStringIfNeededWithString: (NSString *) string { - NSUInteger thousandSepCounter, i, j = 0; - unichar buffer[256]; - - if (!_hasThousandSeparators) - return string; - - if ([string length] < 4) - return string; - - thousandSepCounter = ([string length] % 3) ? ([string length] % 3) : 3; - for (i = 0; i < [string length]; ++i) { - buffer[j++] = [string characterAtIndex: i]; - thousandSepCounter--; - if (thousandSepCounter == 0) { - buffer[j++] = [_thousandSeparator characterAtIndex: 0]; - thousandSepCounter = 3; - } - } - buffer[--j] = (unichar) 0; - - return [NSString stringWithCharacters: buffer length: j]; -} - -- (NSString *) _stringValue: (NSString *) stringValue - withNumberFormat: (NSString *) format -{ - NSString *rightSide = nil, *leftSide = nil; - NSMutableString *result = [NSMutableString string]; - NSRange r; - NSUInteger i, indexRight = 0; - BOOL formatNoDecPoint = - ([format rangeOfString: @"."].location == NSNotFound); - BOOL havePassedDecPoint = NO; - NSInteger lastPlaceholder = 0; - - // remove negative sign if present - if ([stringValue hasPrefix: @"-"]) - stringValue = [stringValue - substringWithRange: NSMakeRange(1, [stringValue length] - 1)]; - - // since we key from the decimal point... if there isn't one in the format - // spec we have to go on the "last placeholder"; if we have neither decimal - // NOR placeholders, well, we can't really format the number can we - if (formatNoDecPoint) { - lastPlaceholder = [format rangeOfString: @"#" - options: NSBackwardsSearch] - .location; - if (lastPlaceholder == NSNotFound) - [NSException raise: NSInvalidArgumentException - format: @"NSNumberFormatter: Invalid format string"]; - } - - // split this into left/right strings - r = [stringValue rangeOfString: @"."]; - if (r.location != NSNotFound) { - leftSide = [stringValue substringWithRange: NSMakeRange(0, r.location)]; - rightSide = [stringValue - substringWithRange: NSMakeRange(r.location + 1, - [stringValue length] - - r.location - 1)]; - } else - leftSide = stringValue; - - // do commas - leftSide = [self _separatedStringIfNeededWithString: leftSide]; - - // ugh. loop through the format string, looking for the decimal point - // or the last placeholder. characters other than special are passed through - for (i = 0; i < [format length]; ++i) { - unichar ch = [format characterAtIndex: i]; - - switch (ch) { - case NSNumberFormatterPlaceholder: - if (formatNoDecPoint && i == lastPlaceholder) - [result appendString: leftSide]; - break; - - // ignore? - case NSNumberFormatterSpace: - // ignore; already handled - case NSNumberFormatterThousandSeparator: - break; - - case NSNumberFormatterDecimalSeparator: - [result appendString: leftSide]; - [result appendString: _decimalSeparator]; - havePassedDecPoint = YES; - break; - - case NSNumberFormatterCurrency: - // FIX, add localization - - default: - if (ch >= (unichar) '0' && ch <= (unichar) '9') { - if (havePassedDecPoint == YES) { - ch = [rightSide characterAtIndex: indexRight++]; - if (ch == (unichar) 0) - ch = (unichar) '0'; - } else - break; - } - - [result appendString: [NSString stringWithCharacters: &ch - length: 1]]; - break; - } - } - - return result; -} - -- (NSString *) stringForObjectValue: object { - if ([object isKindOfClass: [NSNumber class]]) - return [self stringFromNumber: object]; - else - return [object description]; -} - -- (NSAttributedString *) attributedStringForObjectValue10_0: object - withDefaultAttributes: - (NSDictionary *) defaultAttributes -{ - if (object == nil) { - NSAttributedString *check = [self attributedStringForNil]; - - if (check != nil) - return check; - } - if (object == (NSNumber *) kCFNumberNaN) { - NSAttributedString *check = [self attributedStringForNotANumber]; - - if (check != nil) - return check; - } - - NSString *string = [self stringForObjectValue: object]; - NSDictionary *attributes = nil; - - if (numberIsPositive(object)) - attributes = [self textAttributesForPositiveValues]; - else if (numberIsNegative(object)) - attributes = [self textAttributesForNegativeValues]; - else - attributes = [self textAttributesForZero]; - - if (attributes == nil) - attributes = defaultAttributes; - - return [[[NSAttributedString allocWithZone: NULL] - initWithString: string - attributes: attributes] autorelease]; -} - -- (NSAttributedString *) attributedStringForObjectValue10_4: object - withDefaultAttributes: - (NSDictionary *) defaultAttributes -{ - NSString *string = [self stringForObjectValue: object]; - NSDictionary *attributes = nil; - - if (object == nil) - attributes = [self textAttributesForNil]; - else if (object == (NSNumber *) kCFNumberNaN) - attributes = [self textAttributesForNotANumber]; - else if (object == (NSNumber *) kCFNumberPositiveInfinity) - attributes = [self textAttributesForPositiveInfinity]; - else if (object == (NSNumber *) kCFNumberNegativeInfinity) - attributes = [self textAttributesForNegativeInfinity]; - else if (numberIsPositive(object)) - attributes = [self textAttributesForPositiveValues]; - else if (numberIsNegative(object)) - attributes = [self textAttributesForNegativeValues]; - else - attributes = [self textAttributesForZero]; - - if (attributes == nil) - attributes = defaultAttributes; - - return [[[NSAttributedString allocWithZone: NULL] - initWithString: string - attributes: attributes] autorelease]; -} - -- (NSAttributedString *) attributedStringForObjectValue: object - withDefaultAttributes: - (NSDictionary *) attributes -{ - NSNumberFormatterBehavior check = _behavior; - - if (check == NSNumberFormatterBehaviorDefault) - check = NSNumberFormatterBehavior10_4; - - if (check == NSNumberFormatterBehavior10_0) - return [self attributedStringForObjectValue10_0: object - withDefaultAttributes: (NSDictionary *) - attributes]; - else - return [self attributedStringForObjectValue10_4: object - withDefaultAttributes: (NSDictionary *) - attributes]; -} - -- (NSString *) editingStringForObjectValue: (id) object { - return [self stringForObjectValue: object]; -} - -- (BOOL) getObjectValue: (id *) valuep - forString: (NSString *) string - range: (NSRange *) rangep - error: (NSError **) errorp -{ - NSString *errorDescription = nil; - BOOL result = [self getObjectValue: valuep - forString: string - errorDescription: &errorDescription]; - if (errorp) { - if (result) { - *errorp = nil; - } else { - NSDictionary *userInfo = [NSDictionary - dictionaryWithObject: errorDescription - forKey: NSLocalizedDescriptionKey]; - *errorp = [NSError errorWithDomain: NSCocoaErrorDomain - code: 2048 - userInfo: userInfo]; - } - } - return result; -} - -- (BOOL) getObjectValue: (id *) object - forString: (NSString *) string - errorDescription: (NSString **) error -{ - if (object) { - *object = nil; - } - NSNumber *number = [self _numberFromString: string error: error]; - if (number) { - float value = [number floatValue]; - if ([self maximum] && value > [[self maximum] floatValue]) { - if (error != NULL) { - *error = NSLocalizedStringFromTableInBundle( - @"Number too big", nil, - [NSBundle bundleForClass: [NSNumberFormatter class]], - @""); - } - number = nil; - } else if ([self minimum] && value < [[self minimum] floatValue]) { - if (error != NULL) { - *error = NSLocalizedStringFromTableInBundle( - @"Number too smaller", nil, - [NSBundle bundleForClass: [NSNumberFormatter class]], - @""); - } - number = nil; - } else { - if (object) { - *object = number; - } - } - } - - return number != nil; -} - -- (BOOL) isPartialStringValid: (NSString *) partialString - newEditingString: (NSString **) newString - errorDescription: (NSString **) error -{ - // - return YES; -} - -@end diff --git a/Foundation/NSObjCRuntime.h b/Foundation/NSObjCRuntime.h deleted file mode 100644 index 17330b40..00000000 --- a/Foundation/NSObjCRuntime.h +++ /dev/null @@ -1,182 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#include -#import -#include -#include - -#ifdef __clang__ -#define FOUNDATION_DLLEXPORT -#define FOUNDATION_DLLIMPORT -#else -#define FOUNDATION_DLLEXPORT __declspec(dllexport) -#define FOUNDATION_DLLIMPORT __declspec(dllimport) -#endif - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(FOUNDATION_INSIDE_BUILD) -#define FOUNDATION_EXPORT extern "C" FOUNDATION_DLLEXPORT -#else -#define FOUNDATION_EXPORT extern "C" FOUNDATION_DLLIMPORT -#endif -#else -#define FOUNDATION_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(FOUNDATION_INSIDE_BUILD) -#define FOUNDATION_EXPORT FOUNDATION_DLLEXPORT extern -#else -#define FOUNDATION_EXPORT FOUNDATION_DLLIMPORT extern -#endif -#else -#define FOUNDATION_EXPORT extern -#endif - -#endif - -#define NS_INLINE static inline - -#ifdef __clang__ -#define NS_ROOT_CLASS __attribute__((objc_root_class)) -#else -#define NS_ROOT_CLASS -#endif - -#ifndef __has_feature -#define __has_feature(x) 0 -#endif - -#ifndef __has_extension -#define __has_extension(x) 0 -#endif - -#ifndef __has_attribute -#define __has_attribute(x) 0 -#endif - -#if __has_feature(attribute_ns_returns_retained) -#define NS_RETURNS_RETAINED __attribute__((ns_returns_retained)) -#else -#define NS_RETURNS_RETAINED -#endif - -#if __has_feature(attribute_ns_returns_not_retained) -#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained)) -#else -#define NS_RETURNS_NOT_RETAINED -#endif - -#ifndef CF_RETURNS_RETAINED -#if __has_feature(attribute_cf_returns_retained) -#define CF_RETURNS_RETAINED __attribute__((cf_returns_retained)) -#else -#define CF_RETURNS_RETAINED -#endif -#endif - -@class NSString; - -#define NSINTEGER_DEFINED 1 - -#if defined(__LP64__) -typedef long NSInteger; -typedef unsigned long NSUInteger; -#define NSIntegerMax LONG_MAX -#define NSIntegerMin LONG_MIN -#define NSUIntegerMax ULONG_MAX -#define NSIntegerFormat "%ld" -#define NSUIntegerFormat "%lu" -#else -typedef int NSInteger; -typedef unsigned int NSUInteger; -#define NSIntegerMax INT_MAX -#define NSIntegerMin INT_MIN -#define NSUIntegerMax UINT_MAX -#define NSIntegerFormat "%d" -#define NSUIntegerFormat "%u" -#endif - -enum { NSOrderedAscending = -1, NSOrderedSame = 0, NSOrderedDescending = 1 }; - -typedef NSInteger NSComparisonResult; - -#define NSNotFound NSIntegerMax - -#ifndef MIN -#define MIN(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - (_a < _b) ? _a : _b; \ - }) -#else -#warning MIN is already defined, MIN(a, b) may not behave as expected. -#endif - -#ifndef MAX -#define MAX(a, b) \ - ({ \ - __typeof__(a) _a = (a); \ - __typeof__(b) _b = (b); \ - (_a > _b) ? _a : _b; \ - }) -#else -#warning MAX is already defined, MAX(a, b) may not not behave as expected. -#endif - -#ifndef ABS -#define ABS(a) \ - ({ \ - __typeof__(a) _a = (a); \ - (_a < 0) ? -_a : _a; \ - }) -#else -#warning ABS is already defined, ABS(a) may not behave as expected. -#endif - -#ifndef NS_ENUM -#define NS_ENUM(_type, _name) \ - _type _name; \ - enum -#endif - -#ifndef NS_OPTIONS -#define NS_OPTIONS(_type, _name) \ - _type _name; \ - enum -#endif - -FOUNDATION_EXPORT void NSLog(NSString *format, ...); -FOUNDATION_EXPORT void NSLogv(NSString *format, va_list args); - -FOUNDATION_EXPORT const char *NSGetSizeAndAlignment(const char *type, - NSUInteger *size, - NSUInteger *alignment); - -FOUNDATION_EXPORT SEL NSSelectorFromString(NSString *selectorName); -FOUNDATION_EXPORT NSString *NSStringFromSelector(SEL selector); - -FOUNDATION_EXPORT Class NSClassFromString(NSString *className); -FOUNDATION_EXPORT NSString *NSStringFromClass(Class aClass); diff --git a/Foundation/NSObjCRuntime.m b/Foundation/NSObjCRuntime.m deleted file mode 100644 index 375f3d02..00000000 --- a/Foundation/NSObjCRuntime.m +++ /dev/null @@ -1,179 +0,0 @@ -/* Copyright (c) 2006-2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -#import -#import -#import -#import -#import -#import - -#import -#include -#include -#import -#import -#include - -typedef void (*NSLogCStringFunc)(const char *string, unsigned length, - BOOL withSyslogBanner); - -// These are private-yet-sort-of-documented in Cocoa. -FOUNDATION_EXPORT NSLogCStringFunc _NSLogCStringFunction(void); -FOUNDATION_EXPORT void _NSSetLogCStringFunction(NSLogCStringFunc proc); - -static void NSLogDefaultCStringFunction(const char *string, unsigned length, - BOOL withSyslogBanner); - -static NSLogCStringFunc sNSLogCString = NSLogDefaultCStringFunction; - -static void NSLogFormat(NSString *format, ...) { - NSString *string; - va_list arguments; - - va_start(arguments, format); - string = NSStringNewWithFormat(format, nil, arguments, NULL); - va_end(arguments); - - NSPlatformLogString(string); - - [string release]; -} - -static void NSLogDefaultCStringFunction(const char *string, unsigned length, - BOOL withSyslogBanner) -{ - NSString *message = - [[NSString alloc] initWithBytes: string - length: length - encoding: [NSString defaultCStringEncoding]]; - if (withSyslogBanner) { - NSString *date = [[NSDate date] - descriptionWithCalendarFormat: @"%Y-%m-%d %H:%M:%S.%F" - timeZone: [NSTimeZone systemTimeZone] - locale: nil]; - NSString *process = [[NSProcessInfo processInfo] processName]; - - NSLogFormat(@"%@ %@[%d:%lx] %@", date, process, NSPlatformProcessID(), - NSPlatformThreadID(), message); - } else { - NSPlatformLogString(message); - } - [message release]; -} - -void NSLogv(NSString *format, va_list arguments) { - NSString *string = NSStringNewWithFormat(format, nil, arguments, NULL); - - NSUInteger length = [string length], byteLength; - unichar unicode[length]; - char *bytes; - - [string getCharacters: unicode]; - bytes = NSString_cStringFromCharacters(unicode, length, YES, &byteLength, - NULL, NO); - [string release]; - if (bytes == NULL) - return; - - sNSLogCString(bytes, byteLength, YES); - NSZoneFree(NULL, bytes); -} - -void NSLog(NSString *format, ...) { - va_list arguments; - - va_start(arguments, format); - NSLogv(format, arguments); - va_end(arguments); -} - -NSLogCStringFunc _NSLogCStringFunction(void) { - return sNSLogCString; -} - -void _NSSetLogCStringFunction(NSLogCStringFunc proc) { - sNSLogCString = proc ? proc : NSLogDefaultCStringFunction; -} - -const char *NSGetSizeAndAlignment(const char *type, NSUInteger *size, - NSUInteger *alignment) -{ - NSUInteger ignore = 0; - if (!size) { - size = &ignore; - } - if (!alignment) { - alignment = &ignore; - } - - *size = 0; - *alignment = 0; - - *size = objc_ext_sizeof_type(type); - *alignment = objc_ext_alignof_type(type); - return objc_ext_skip_type_specifier(type, NO); -} - -SEL NSSelectorFromString(NSString *selectorName) { - NSUInteger length = [selectorName length]; - char cString[length + 1]; - - [selectorName getCString: cString - maxLength: length + 1 - encoding: NSASCIIStringEncoding]; - - return sel_getUid(cString); -} - -NSString *NSStringFromSelector(SEL selector) { - if (selector == NULL) - return @""; - - const char *name = sel_getName(selector); - return NSAutorelease(NSString_anyCStringNewWithBytes( - NSASCIIStringEncoding, NULL, name, strlen(name))); -} - -Class NSClassFromString(NSString *className) { - if (className != nil) { - NSUInteger length = [className length]; - char cString[length + 1]; - - [className getCString: cString - maxLength: length + 1 - encoding: NSASCIIStringEncoding]; - - return objc_lookUpClass(cString); - } else - return nil; -} - -NSString *NSStringFromClass(Class class) { - if (class == Nil) - return nil; - - const char *name = class_getName(class); - return NSAutorelease(NSString_anyCStringNewWithBytes( - NSASCIIStringEncoding, NULL, name, strlen(name))); -} diff --git a/Foundation/NSObject/NSObject.h b/Foundation/NSObject/NSObject.h deleted file mode 100644 index 9ff1403b..00000000 --- a/Foundation/NSObject/NSObject.h +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSCoder, NSInvocation, NSMethodSignature, NSString; - -@protocol NSObject - -- (NSZone *) zone; - -- self; -- (Class) class; -- (Class) superclass; - -- autorelease; -- (oneway void) release; -- retain; -- (NSUInteger) retainCount; - -- (NSUInteger) hash; -- (BOOL) isEqual: object; - -- (BOOL) isKindOfClass: (Class) aClass; -- (BOOL) isMemberOfClass: (Class) aClass; -- (BOOL) conformsToProtocol: (Protocol *) protocol; - -- (BOOL) respondsToSelector: (SEL) selector; -- performSelector: (SEL) selector; -- performSelector: (SEL) selector withObject: object0; -- performSelector: (SEL) selector withObject: object0 withObject: object1; - -- (BOOL) isProxy; - -- (NSString *) description; -- (NSString *) debugDescription; - -@end - -@protocol NSCopying -- copyWithZone: (NSZone *) zone; -@end - -@protocol NSMutableCopying -- mutableCopyWithZone: (NSZone *) zone; -@end - -@protocol NSCoding -- initWithCoder: (NSCoder *) coder; -- (void) encodeWithCoder: (NSCoder *) coder; -@end - -NS_ROOT_CLASS @interface NSObject { - Class isa; -} - -+ (NSInteger) version; -+ (void) setVersion: (NSInteger) version; - -+ (void) load; - -+ (void) initialize; - -+ (Class) superclass; -+ (Class) class; -+ (BOOL) isSubclassOfClass: (Class) cls; - -+ (BOOL) instancesRespondToSelector: (SEL) selector; -+ (BOOL) conformsToProtocol: (Protocol *) protocol; - -+ (IMP) instanceMethodForSelector: (SEL) selector; -+ (NSMethodSignature *) instanceMethodSignatureForSelector: (SEL) selector; -+ (BOOL) resolveClassMethod: (SEL) selector; -+ (BOOL) resolveInstanceMethod: (SEL) selector; - -+ copyWithZone: (NSZone *) zone; -+ mutableCopyWithZone: (NSZone *) zone; - -+ (void) poseAsClass: (Class) aClass; - -+ (NSString *) description; -+ (NSString *) debugDescription; - -+ alloc; -+ allocWithZone: (NSZone *) zone; - -- init; -+ new; -- (void) dealloc; -- (void) finalize; - -- copy; -- mutableCopy; - -- (Class) classForCoder; -- (Class) classForArchiver; -- (Class) classForKeyedArchiver; - -- replacementObjectForCoder: (NSCoder *) coder; -- awakeAfterUsingCoder: (NSCoder *) coder; - -- (IMP) methodForSelector: (SEL) selector; - -- (void) doesNotRecognizeSelector: (SEL) selector; - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) selector; -- (void) forwardInvocation: (NSInvocation *) invocation; - -- (NSString *) className; - -@end diff --git a/Foundation/NSObject/NSObject.m b/Foundation/NSObject/NSObject.m deleted file mode 100644 index bd39c937..00000000 --- a/Foundation/NSObject/NSObject.m +++ /dev/null @@ -1,407 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "forwarding.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#ifdef GCC_RUNTIME_3 -#import -#endif - -// From Apple docs: -// Returns a Boolean value that indicates whether the receiver is an instance of -// given class or an instance of any class that inherits from that class. - -BOOL NSObjectIsKindOfClass(id object, Class kindOf) { - Class class = object_getClass(object); - - while (object_getClass(object_getClass(class)) != class) { - - if (kindOf == class) { - return YES; - } - - class = class_getSuperclass(class); - } - - return NO; -} - -@interface NSInvocation (private) -+ (NSInvocation *) invocationWithMethodSignature: - (NSMethodSignature *) signature - arguments: (void *) arguments; -@end - -@implementation NSObject - -+ (NSInteger) version { - return class_getVersion(self); -} - -+ (void) setVersion: (NSInteger) version { - class_setVersion(self, version); -} - -+ (void) load { -} - -#ifdef GCC_RUNTIME_3 -static IMP objc_msg_forward(id rcv, SEL message) { - return objc_msgForward; -} -#endif - -+ (void) initialize { -#ifdef GCC_RUNTIME_3 - __objc_msg_forward2 = objc_msg_forward; -#else - objc_setForwardHandler(objc_msgForward, objc_msgForward_stret); -#endif -} - -+ (Class) superclass { - return class_getSuperclass(self); -} - -+ (Class) class { - return self; -} - -// From Apple docs: -// Returns a Boolean value that indicates whether the receiving class is a -// subclass of, or identical to, a given class. - -+ (BOOL) isSubclassOfClass: (Class) cls { - Class check = self; - - do { - - if (check == cls) - return YES; - - check = [check superclass]; - - } while (check && check != [NSObject class] && check != [NSProxy class]); - - return NO; -} - -+ (BOOL) instancesRespondToSelector: (SEL) selector { - return class_respondsToSelector(self, selector); -} - -+ (BOOL) conformsToProtocol: (Protocol *) protocol { - return class_conformsToProtocol(self, protocol); -} - -+ (IMP) methodForSelector: (SEL) selector { - return class_getMethodImplementation(object_getClass(self), selector); -} - -+ (IMP) instanceMethodForSelector: (SEL) selector { - return class_getMethodImplementation(self, selector); -} - -+ (NSMethodSignature *) instanceMethodSignatureForSelector: (SEL) selector { - Method method = class_getInstanceMethod(self, selector); - const char *types = method_getTypeEncoding(method); - - return (types == NULL) ? (NSMethodSignature *) nil - : [NSMethodSignature signatureWithObjCTypes: types]; -} - -+ (BOOL) resolveClassMethod: (SEL) selector { - // do nothing - return NO; -} - -+ (BOOL) resolveInstanceMethod: (SEL) selector { - // do nothing - return NO; -} - -+ copyWithZone: (NSZone *) zone { - return self; -} - -+ mutableCopyWithZone: (NSZone *) zone { - NSInvalidAbstractInvocation(); - return nil; -} - -+ (void) poseAsClass: (Class) aClass { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - NSUnimplementedMethod(); - [pool release]; -} - -+ (NSString *) description { - return NSStringFromClass(self); -} - -+ (NSString *) debugDescription { - return [self description]; -} - -+ alloc { - return [self allocWithZone: NULL]; -} - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([self class], 0, zone); -} - -- (void) dealloc { - NSDeallocateObject(self); -} - -- (void) finalize { - // do nothing -} - -- init { - return self; -} - -+ new { - return [[self allocWithZone: NULL] init]; -} - -+ (void) dealloc { -} - -- copy { - return [(id) self copyWithZone: NULL]; -} - -- mutableCopy { - return [(id) self mutableCopyWithZone: NULL]; -} - -- (Class) classForCoder { - return [self class]; -} - -- (Class) classForArchiver { - return [self classForCoder]; -} - -- (Class) classForKeyedArchiver { - return [self classForCoder]; -} - -- replacementObjectForCoder: (NSCoder *) coder { - return self; -} - -- awakeAfterUsingCoder: (NSCoder *) coder { - return self; -} - -- (IMP) methodForSelector: (SEL) selector { - return class_getMethodImplementation([self class], selector); -} - -- (void) doesNotRecognizeSelector: (SEL) selector { - [NSException raise: NSInvalidArgumentException - format: @"%c[%@ %@]: selector not recognized", - class_isMetaClass([self class]) ? '+' : '-', - NSStringFromClass([self class]), - NSStringFromSelector(selector)]; -} - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) selector { - Method method = class_getInstanceMethod([self class], selector); - const char *types = method_getTypeEncoding(method); - - return (types == NULL) ? (NSMethodSignature *) nil - : [NSMethodSignature signatureWithObjCTypes: types]; -} - -- (void) forwardInvocation: (NSInvocation *) invocation { - [self doesNotRecognizeSelector: [invocation selector]]; -} - -- (NSUInteger) _frameLengthForSelector: (SEL) selector { - NSMethodSignature *signature = [self methodSignatureForSelector: selector]; - - return [signature frameLength]; -} - -- (id) forwardSelector: (SEL) selector arguments: (void *) arguments { - NSMethodSignature *signature = [self methodSignatureForSelector: selector]; - - if (signature == nil) { - [self doesNotRecognizeSelector: selector]; - return nil; - } else { - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature - arguments: arguments]; - // char result[[signature methodReturnLength]]; - id result; - - [self forwardInvocation: invocation]; - [invocation getReturnValue: &result]; - - // __builtin_return(result); Can we use __builtin_return like this? It - // still doesn't seem to work on float/doubles ? - return result; - } -} - -- (NSUInteger) hash { - return (NSUInteger) self >> 4; -} - -- (BOOL) isEqual: object { - return (self == object) ? YES : NO; -} - -- self { - return self; -} - -- (Class) class { - return [self class]; -} - -- (Class) superclass { - return class_getSuperclass([self class]); -} - -- (NSZone *) zone { - return NSZoneFromPointer(self); -} - -- performSelector: (SEL) selector { -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - IMP imp = class_getMethodImplementation(object_getClass(self), selector); -#else - IMP imp = objc_msg_lookup(self, selector); -#endif - return imp(self, selector); -} - -- performSelector: (SEL) selector withObject: object0 { -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - IMP imp = class_getMethodImplementation(object_getClass(self), selector); -#else - IMP imp = objc_msg_lookup(self, selector); -#endif - return imp(self, selector, object0); -} - -- performSelector: (SEL) selector withObject: object0 withObject: object1 { -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - IMP imp = class_getMethodImplementation(object_getClass(self), selector); -#else - IMP imp = objc_msg_lookup(self, selector); -#endif - return imp(self, selector, object0, object1); -} - -- (BOOL) isProxy { - return NO; -} - -- (BOOL) isKindOfClass: (Class) class { - return NSObjectIsKindOfClass(self, class); -} - -- (BOOL) isMemberOfClass: (Class) class { - return ([self class] == class); -} - -- (BOOL) conformsToProtocol: (Protocol *) protocol { - return [[self class] conformsToProtocol: protocol]; -} - -- (BOOL) respondsToSelector: (SEL) selector { - return class_respondsToSelector([self class], selector); -} - -- autorelease { - return NSAutorelease(self); -} - -+ autorelease { - return self; -} - -- (oneway void) release { - if (NSDecrementExtraRefCountWasZero(self)) - [self dealloc]; -} - -+ (oneway void) release { -} - -- retain { - NSIncrementExtraRefCount(self); - return self; -} - -+ retain { - return self; -} - -- (NSUInteger) retainCount { - return NSExtraRefCount(self); -} - -+ (NSString *) className { - return NSStringFromClass(self); -} - -- (NSString *) className { - return NSStringFromClass([self class]); -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@ 0x%08x>", [self class], self]; -} - -- (NSString *) debugDescription { - return [self description]; -} - -@end - -#import - -@implementation NSObject (CFTypeID) - -- (unsigned) _cfTypeID { - return kNSCFTypeObject; -} - -@end diff --git a/Foundation/NSObject/NSZombieObject.h b/Foundation/NSObject/NSZombieObject.h deleted file mode 100644 index d7fb2625..00000000 --- a/Foundation/NSObject/NSZombieObject.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -NS_ROOT_CLASS @interface NSZombieObject { - Class isa; -} - -@end - -void NSRegisterZombie(NSObject *object); diff --git a/Foundation/NSObject/NSZombieObject.m b/Foundation/NSObject/NSZombieObject.m deleted file mode 100644 index 8ccdf81c..00000000 --- a/Foundation/NSObject/NSZombieObject.m +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#include - -static pthread_mutex_t zombieLock = PTHREAD_MUTEX_INITIALIZER; -static NSMapTable *objectToClassName = NULL; - -void NSRegisterZombie(NSObject *object) { - pthread_mutex_lock(&zombieLock); - - if (objectToClassName == NULL) { - objectToClassName = - NSCreateMapTable(NSNonOwnedPointerMapKeyCallBacks, - NSNonOwnedPointerMapValueCallBacks, 0); - } - - NSMapInsert(objectToClassName, object, object_getClass(object)); - object_setClass(object, objc_lookUpClass("NSZombieObject")); - - pthread_mutex_unlock(&zombieLock); -} - -@implementation NSZombieObject - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) selector { - pthread_mutex_lock(&zombieLock); - Class cls = NSMapGet(objectToClassName, self); - pthread_mutex_unlock(&zombieLock); - - NSLog(@"-[NSZombieObject %p methodSignatureForSelector:%s] %s", self, - sel_getName(selector), class_getName(cls)); - - return [cls instanceMethodSignatureForSelector: selector]; -} - -- (void) forwardInvocation: (NSInvocation *) invocation { - pthread_mutex_lock(&zombieLock); - Class cls = NSMapGet(objectToClassName, self); - pthread_mutex_unlock(&zombieLock); - - NSLog(@"-[NSZombieObject %p forwardInvocation:%s] %s", self, - sel_getName([invocation selector]), class_getName(cls)); -} - -- (id) forwardSelector: (SEL) selector arguments: (void *) arguments { - pthread_mutex_lock(&zombieLock); - Class cls = NSMapGet(objectToClassName, self); - pthread_mutex_unlock(&zombieLock); - - NSLog(@"-[NSZombieObject %p %s] %s", self, sel_getName(selector), - class_getName(cls)); - return nil; -} - -@end diff --git a/Foundation/NSObject/forwarding.h b/Foundation/NSObject/forwarding.h deleted file mode 100644 index b1234441..00000000 --- a/Foundation/NSObject/forwarding.h +++ /dev/null @@ -1,3 +0,0 @@ - -id objc_msgForward(id object, SEL message, ...); -void objc_msgForward_stret(void *result, id object, SEL message, ...); diff --git a/Foundation/NSObject/forwarding.m b/Foundation/NSObject/forwarding.m deleted file mode 100644 index 830706c0..00000000 --- a/Foundation/NSObject/forwarding.m +++ /dev/null @@ -1,189 +0,0 @@ -#import -#import -#import -#include - -#define NSABISizeofRegisterReturn 8 -#ifndef GCC_RUNTIME_3 -#define NSABIasm_jmp_objc_msgSend __asm__("jmp _objc_msgSend") -#define NSABIasm_jmp_objc_msgSend_stret __asm__("jmp _objc_msgSend_stret") -#endif -// 64-bit freebsd, FIX -// #define NSABIasm_jmp_objc_msgSend __asm__("jmp _objc_msgSend@PLT") -// #define NSABIasm_jmp_objc_msgSend_stret __asm__("jmp -// _objc_msgSend_stret@PLT"); - -static void OBJCRaiseException(const char *name, const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - - fprintf(stderr, "ObjC:%s:", name); - vfprintf(stderr, format, arguments); - fprintf(stderr, "\n"); - fflush(stderr); - va_end(arguments); -} - -#if !COCOTRON_DISALLOW_FORWARDING -@interface NSObject (fastforwarding) -- forwardingTargetForSelector: (SEL) selector; -@end - -@interface NSInvocation (private) -+ (NSInvocation *) invocationWithMethodSignature: - (NSMethodSignature *) signature - arguments: (void *) arguments; -@end - -#ifndef GCC_RUNTIME_3 -id NSObjCGetFastForwardTarget(id object, SEL selector) { - id check = nil; - - if ([object respondsToSelector: @selector(forwardingTargetForSelector:)]) - if ((check = [object forwardingTargetForSelector: selector]) == object) - check = nil; - - return check; -} -#endif - -void NSObjCForwardInvocation(void *returnValue, id object, SEL selector, - va_list arguments) -{ - NSMethodSignature *signature = - [object methodSignatureForSelector: selector]; - - if (signature == nil) - [object doesNotRecognizeSelector: selector]; - else { - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature - arguments: arguments]; - - [object forwardInvocation: invocation]; - [invocation getReturnValue: returnValue]; - } -} - -void NSObjCForward(id object, SEL selector, ...) { -#ifndef GCC_RUNTIME_3 - id check = NSObjCGetFastForwardTarget(object, selector); - - if (check != nil) { - object = check; - NSABIasm_jmp_objc_msgSend; - } -#endif - - uint8_t returnValue[NSABISizeofRegisterReturn]; - - va_list arguments; - - va_start(arguments, selector); - - NSObjCForwardInvocation(returnValue, object, selector, arguments); - - va_end(arguments); -} - -void NSObjCForward_stret(void *returnValue, id object, SEL selector, ...) { -#ifndef GCC_RUNTIME_3 - id check = NSObjCGetFastForwardTarget(object, selector); - - if (check != nil) { - object = check; - NSABIasm_jmp_objc_msgSend_stret; - } -#endif - - va_list arguments; - - va_start(arguments, selector); - - NSObjCForwardInvocation(returnValue, object, selector, arguments); - - va_end(arguments); -} -#endif - -// both of these suck, we should be using NSMethodSignature types to extract the -// frame and create the NSInvocation here -#ifdef __sparc__ -id objc_msgForward(id object, SEL message, ...) { - Class class = object_getClass(object); - - struct objc_method *method; - va_list arguments; - unsigned i, frameLength, limit; - unsigned *frame; - - if ((method = class_getInstanceMethod( - class, @selector(_frameLengthForSelector:))) == NULL) { - OBJCRaiseException("OBJCDoesNotRecognizeSelector", "%c[%s %s(%d)]", - class_isMetaClass(class) ? '+' : '-', - class_getName(class), sel_getName(message), message); - return nil; - } - IMP imp = method_getImplementation(method); - frameLength = imp(object, @selector(_frameLengthForSelector:), message); - frame = __builtin_alloca(2 * sizeof(unsigned) + frameLength); - va_start(arguments, message); - frame[0] = object; - frame[1] = message; - for (i = 0; i < frameLength / sizeof(unsigned); i++) { - frame[i + 2] = va_arg(arguments, unsigned); - } - - if ((method = class_getInstanceMethod( - class, @selector(forwardSelector:arguments:))) != NULL) { - imp = method_getImplementation(method); - - return imp(object, @selector(forwardSelector:arguments:), message, - frame); - } else { - OBJCRaiseException("OBJCDoesNotRecognizeSelector", "%c[%s %s(%d)]", - class_isMetaClass(class) ? '+' : '-', - class_getName(class), sel_getName(message), message); - return nil; - } -} - -void objc_msgForward_stret(void *result, id object, SEL message, ...) { -} - -#else - -id objc_msgForward(id object, SEL message, ...) { - Class class = object_getClass(object); - struct objc_method *method; - void *arguments = &object; - - if ((method = class_getInstanceMethod( - class, @selector(forwardSelector:arguments:))) != NULL) { - IMP imp = method_getImplementation(method); - - return imp(object, @selector(forwardSelector:arguments:), message, - arguments); - } else { - OBJCRaiseException("OBJCDoesNotRecognizeSelector", "%c[%s %s(%d)]", - class_isMetaClass(class) ? '+' : '-', - class_getName(class), sel_getName(message), message); - return nil; - } -} - -void objc_msgForward_stret(void *result, id object, SEL message, ...) { -} - -#endif - -#ifdef GCC_RUNTIME_3 -// TODO Forwarding currently only works for methods returning types not wider -// than id. The result is cropped to min(sizeof(returntype_of_forward_imp), -// sizeof(returntype_of_selector || id)). -// TODO Struct returning methods have to be handled separatly. -IMP objc_msg_forward(id rcv, SEL message) { - return objc_msgForward; -} -#endif diff --git a/Foundation/NSObject/objc_forward_ffi.h b/Foundation/NSObject/objc_forward_ffi.h deleted file mode 100644 index fa18bf3a..00000000 --- a/Foundation/NSObject/objc_forward_ffi.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Copyright 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#ifdef HAVE_LIBFFI - -IMP objc_forward_ffi(id object, SEL selector); - -#endif // HAVE_LIBFFI \ No newline at end of file diff --git a/Foundation/NSObject/objc_forward_ffi.m b/Foundation/NSObject/objc_forward_ffi.m deleted file mode 100644 index d8dc8578..00000000 --- a/Foundation/NSObject/objc_forward_ffi.m +++ /dev/null @@ -1,416 +0,0 @@ -/* - Parts of this come from PyObjC, http://pyobjc.sourceforge.net/ - Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele - Gaifax, et.al. Copyright 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#ifdef HAVE_LIBFFI - -#import "objc_forward_ffi.h" -#import "objc_size_alignment.h" - -#include -#import -#import -#ifdef DARWIN -#import -#else -#include -#endif -#import "ObjCHashTable.h" -#import -#import -#import -#import -#import - -extern void *_NSClosureAlloc(size_t); -extern void _NSClosureProtect(void *, size_t); - -#pragma mark Converting @encode to ffi type descriptors - -static inline OBJCHashTable *ffi_type_table(void) { - static OBJCHashTable *ffiTypeTable = NULL; - - if (ffiTypeTable == NULL) - ffiTypeTable = OBJCCreateHashTable(50); - - return ffiTypeTable; -} - -static inline ffi_type *ffi_try_find_type(const char *argtype) { - return (ffi_type *) OBJCHashValueForKey(ffi_type_table(), argtype); -} - -static inline void ffi_insert_type(const char *argtype, ffi_type *type) { - OBJCHashInsertValueForKey(ffi_type_table(), argtype, type); -} - -static size_t num_struct_fields(const char *argtype) { - size_t res = 0; - - if (*argtype != _C_STRUCT_B) - [NSException raise: NSInternalInconsistencyException - format: @"exception while encoding type"]; - while (*argtype != _C_STRUCT_E && *argtype != '=') - argtype++; - if (*argtype == _C_STRUCT_E) - return 0; - - argtype++; - while (*argtype != _C_STRUCT_E) { - argtype = objc_skip_type_specifier(argtype, YES); - if (argtype == NULL) - [NSException raise: NSInternalInconsistencyException - format: @"exception while encoding type"]; - res++; - } - return res; -} - -static ffi_type *signature_to_ffi_type(const char *argtype); - -static ffi_type *array_to_ffi_type(const char *argtype) { - ffi_type *type = ffi_try_find_type(argtype); - if (type) - return type; - - /* We don't have a type description yet, dynamicly - * create it. - */ - size_t field_count = atoi(argtype + 1); - size_t i; - - type = NSZoneMalloc(NULL, sizeof(*type)); - - type->size = objc_sizeof_type(argtype); - type->alignment = objc_alignof_type(argtype); - - /* Libffi doesn't really know about arrays as part of larger - * data-structres (e.g. struct foo { int field[3]; };). We fake it - * by treating the nested array as a struct. These seems to work - * fine on MacOS X. - */ - type->type = FFI_TYPE_STRUCT; - type->elements = NSZoneMalloc(NULL, (1 + field_count) * sizeof(ffi_type *)); - - while (isdigit(*++argtype)) - ; - type->elements[0] = signature_to_ffi_type(argtype); - for (i = 1; i < field_count; i++) { - type->elements[i] = type->elements[0]; - } - type->elements[field_count] = 0; - - ffi_insert_type(argtype, type); - return type; -} - -static ffi_type *struct_to_ffi_type(const char *argtype) { - ffi_type *type = ffi_try_find_type(argtype); - if (type) - return type; - const char *curtype; - - /* We don't have a type description yet, dynamicly - * create it. - */ - size_t field_count = num_struct_fields(argtype); - - type = NSZoneMalloc(NULL, sizeof(*type)); - - type->size = objc_sizeof_type(argtype); - type->alignment = objc_alignof_type(argtype); - - type->type = FFI_TYPE_STRUCT; - type->elements = NSZoneMalloc(NULL, (1 + field_count) * sizeof(ffi_type *)); - - field_count = 0; - curtype = argtype + 1; - while (*curtype != _C_STRUCT_E && *curtype != '=') - curtype++; - if (*curtype == '=') { - curtype++; - while (*curtype != _C_STRUCT_E) { - type->elements[field_count] = signature_to_ffi_type(curtype); - field_count++; - curtype = objc_skip_type_specifier(curtype, YES); - } - } - type->elements[field_count] = NULL; - - ffi_insert_type(argtype, type); - - return type; -} - -static ffi_type *signature_to_ffi_return_type(const char *argtype) { -#ifdef __ppc__ - static const char long_type[] = {_C_LNG, 0}; - static const char ulong_type[] = {_C_ULNG, 0}; - - switch (*argtype) { - case _C_CHR: - case _C_SHT: - case _C_UNICHAR: - return signature_to_ffi_type(long_type); - case _C_UCHR: - case _C_USHT: // case _C_UNICHAR: - return signature_to_ffi_type(ulong_type); -#ifdef _C_BOOL - case _C_BOOL: - return signature_to_ffi_type(long_type); -#endif - case _C_NSBOOL: - return signature_to_ffi_type(long_type); - default: - return signature_to_ffi_type(argtype); - } -#else - return signature_to_ffi_type(argtype); -#endif -} - -static ffi_type *signature_to_ffi_type(const char *argtype) { - switch (*argtype) { - case _C_VOID: - return &ffi_type_void; - case _C_ID: - return &ffi_type_pointer; - case _C_CLASS: - return &ffi_type_pointer; - case _C_SEL: - return &ffi_type_pointer; - case _C_CHR: - return &ffi_type_schar; -#ifdef _C_BOOL - case _C_BOOL: - /* sizeof(bool) == 4 on PPC32, and 1 on all others */ -#if defined(__ppc__) && !defined(__LP__) - return &ffi_type_sint; -#else - return &ffi_type_schar; -#endif - -#endif - case _C_UCHR: - return &ffi_type_uchar; - case _C_SHT: - return &ffi_type_sshort; - case _C_USHT: - return &ffi_type_ushort; - case _C_INT: - return &ffi_type_sint; - case _C_UINT: - return &ffi_type_uint; - - /* The next to defintions are incorrect, but the correct definitions - * don't work (e.g. give testsuite failures). - */ -#ifdef __LP64__ - case _C_LNG: - return &ffi_type_sint64; /* ffi_type_slong */ - case _C_ULNG: - return &ffi_type_uint64; /* ffi_type_ulong */ -#else - case _C_LNG: - return &ffi_type_sint; /* ffi_type_slong */ - case _C_ULNG: - return &ffi_type_uint; /* ffi_type_ulong */ -#endif - case _C_LNGLNG: - return &ffi_type_sint64; - case _C_ULNG_LNG: - return &ffi_type_uint64; - case _C_FLT: - return &ffi_type_float; - case _C_DBL: - return &ffi_type_double; - case _C_CHARPTR: - return &ffi_type_pointer; - case _C_PTR: - return &ffi_type_pointer; - case _C_ARY_B: - return array_to_ffi_type(argtype); - case _C_IN: - case _C_OUT: - case _C_INOUT: - case _C_CONST: - return signature_to_ffi_type(argtype + 1); - case _C_STRUCT_B: - return struct_to_ffi_type(argtype); - case _C_UNDEF: - return &ffi_type_pointer; - default: - NSLog(@"Type '%c' not supported", *argtype); - return NULL; - } -} - -/* - * arg_signature_to_ffi_type: Make the ffi_type for the call to the method IMP. - */ - -#ifdef __ppc__ -#define arg_signature_to_ffi_type signature_to_ffi_type - -#else -static inline ffi_type *arg_signature_to_ffi_type(const char *argtype) { - /* NOTE: This is the minimal change to pass the unittests, it is not - * based on analysis of the calling conventions. - */ - switch (*argtype) { - case _C_CHR: - return &ffi_type_sint; - case _C_UCHR: - return &ffi_type_uint; - case _C_SHT: - return &ffi_type_sint; - case _C_USHT: - return &ffi_type_uint; - default: - return signature_to_ffi_type(argtype); - } -} -#endif - -#pragma mark - -#pragma mark Implementation of closures and NSInvocation -invoke - -static void invocation_closure(ffi_cif *cif, void *result, void **args, - void *userdata) -{ - NSMethodSignature *sig = (id) userdata; - NSInvocation *inv = [NSInvocation invocationWithMethodSignature: sig]; - NSInteger i, numArgs = [sig numberOfArguments]; - for (i = 0; i < numArgs; i++) { - [inv setArgument: args[i] atIndex: i]; - } - - id receiver = *(id *) args[0]; - - [receiver forwardInvocation: inv]; - - [inv getReturnValue: result]; -} - -@interface NSMethodSignature (FFIClosure) -- (void *) _callingInfo; -- (void *) _closure; -@end - -@implementation NSMethodSignature (FFIClosure) -- (void) _deallocateClosure { - if (_closureInfo && ((ffi_cif *) _closureInfo)->arg_types) - NSZoneFree(NULL, ((ffi_cif *) _closureInfo)->arg_types); - if (_closureInfo) - NSZoneFree(NULL, _closureInfo); - if (_closure) - NSZoneFree(NULL, _closure); -} - -- (void *) _callingInfo { - @synchronized(self) { - if (!_closureInfo) { - NSInteger i, numArgs = [self numberOfArguments]; - ffi_type **arg_type = - NSZoneCalloc(NULL, sizeof(ffi_type *), numArgs); - - ffi_type *ret_type = - signature_to_ffi_return_type([self methodReturnType]); - - for (i = 0; i < numArgs; i++) { - arg_type[i] = - signature_to_ffi_type([self getArgumentTypeAtIndex: i]); - } - - _closureInfo = NSZoneCalloc(NULL, sizeof(ffi_cif), 1); - ffi_prep_cif((ffi_cif *) _closureInfo, FFI_DEFAULT_ABI, - (unsigned) numArgs, ret_type, arg_type); - } - } - NSAssert(_closureInfo, nil); - return _closureInfo; -} - -- (void *) _closure { - @synchronized([NSMethodSignature class]) { - if (!_closure) { - _closure = _NSClosureAlloc(sizeof(ffi_closure)); - ffi_prep_closure((ffi_closure *) _closure, - (ffi_cif *) [self _callingInfo], - invocation_closure, self); - _NSClosureProtect(_closure, sizeof(ffi_closure)); - } - } - NSAssert(_closure, nil); - - return _closure; -} - -- (const char *) _realTypes { - return _typesCString; -} -@end - -@implementation NSInvocation (FFICalling) - -- (void) _ffiInvokeWithTarget: target { - NSInteger i, numArgs = [_signature numberOfArguments]; - void *arguments[numArgs + 8]; - ffi_cif *cif = [_signature _callingInfo]; - NSAssert(numArgs >= 2, @"invocation must have target and selector"); - const char *type = [_signature _realTypes]; - type = objc_skip_type_specifier(type, YES); - for (i = 0; i < numArgs; i++) { - arguments[i] = _argumentFrame + _argumentOffsets[i]; - type = objc_skip_type_specifier(type, YES); - } - -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - IMP imp = class_getMethodImplementation(object_getClass(target), - [self selector]); -#else - IMP imp = objc_msg_lookup(target, [self selector]); -#endif - - ffi_call(cif, FFI_FN(imp), _returnValue, arguments); -} - -@end - -id _objc_throwDoesNotRecognizeException(id object, SEL selector) { - Class class = object->[self class]; - NSRaiseException(NSInvalidArgumentException, object, selector, - @"Unrecognized selector sent to %p. Break on " - @"_objc_throwDoesNotRecognizeException to catch.", - object); - return nil; -} - -IMP objc_forward_ffi(id object, SEL selector) { - NSMethodSignature *sig = [object methodSignatureForSelector: selector]; - - if (sig) - return (IMP)[sig _closure]; - return (IMP) _objc_throwDoesNotRecognizeException; -} - -#endif // HAVE_LIBFFI diff --git a/Foundation/NSObject/objc_msg_sendv-Disabled.m b/Foundation/NSObject/objc_msg_sendv-Disabled.m deleted file mode 100644 index 80f0e2c5..00000000 --- a/Foundation/NSObject/objc_msg_sendv-Disabled.m +++ /dev/null @@ -1,13 +0,0 @@ -#ifdef COCOTRON_DISALLOW_FORWARDING -#import -#import -#import - -id objc_msgSendv(id self, SEL selector, unsigned arg_size, void *arg_frame) { - [NSException raise: @"OBJCForwardingUnavailableException" - format: @"Sorry, but objc_msgSendv and forwarding including " - @"NSInvocation are unavailable on this platform."]; - return nil; -} - -#endif diff --git a/Foundation/NSObject/objc_size_alignment.h b/Foundation/NSObject/objc_size_alignment.h deleted file mode 100644 index 370f5c6c..00000000 --- a/Foundation/NSObject/objc_size_alignment.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#include - -// The GCC runtime implementations of these differ slightly. -// The Apple runtime does not have one of them. -// Therefore use the Cocotron implementation. -size_t objc_ext_sizeof_type(const char *type); -size_t objc_ext_alignof_type(const char *type); -const char *objc_ext_skip_type_specifier(const char *type, BOOL skipDigits); diff --git a/Foundation/NSObject/objc_size_alignment.m b/Foundation/NSObject/objc_size_alignment.m deleted file mode 100644 index 16b80c3d..00000000 --- a/Foundation/NSObject/objc_size_alignment.m +++ /dev/null @@ -1,516 +0,0 @@ -/* - Most of this comes from PyObjC, http://pyobjc.sourceforge.net/ - Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele - Gaifax, et.al. Copyright 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#ifdef GCC_RUNTIME_3 -#include -#else -#import -#endif -#import "objc_size_alignment.h" -#import -#import -#include -#include - -static inline size_t ROUND(size_t v, size_t a) { - if (v % a == 0) { - return v; - } else { - return v + a - (v % a); - } -} - -static inline const char *objc_ext_skip_type_qualifier(const char *type) { - NSCAssert(type != NULL, NULL); - - while (*type == _C_CONST || *type == _C_IN || *type == _C_INOUT || - *type == _C_OUT || *type == _C_BYCOPY || *type == _C_ONEWAY) { - type++; - } - while (*type && isdigit(*type)) - type++; - return type; -} - -const char *objc_ext_skip_type_specifier(const char *type, BOOL skipDigits) { - NSCAssert(type != NULL, NULL); - - type = objc_ext_skip_type_qualifier(type); - - switch (*type) { - /* The following are one character type codes */ - case _C_UNDEF: - case _C_CLASS: - case _C_SEL: - case _C_CHR: - case _C_UCHR: - case _C_CHARPTR: -#ifdef _C_ATOM - case _C_ATOM: -#endif -#ifdef _C_BOOL - case _C_BOOL: -#endif - case _C_SHT: - case _C_USHT: - case _C_INT: - case _C_UINT: - case _C_LNG: - case _C_ULNG: - case _C_FLT: - case _C_DBL: - case _C_VOID: - case _C_LNG_LNG: - case _C_ULNG_LNG: - ++type; - break; - - case _C_BFLD: - while (isdigit(*++type)) - ; - break; - - case _C_ID: - ++type; - if (*type == '"') { - /* embedded field name in an ivar_type */ - type = strchr(type + 1, '"'); - if (type != NULL) { - type++; - } - } - break; - - case _C_ARY_B: - /* skip digits, typespec and closing ']' */ - - while (isdigit(*++type)) - ; - type = objc_ext_skip_type_specifier(type, skipDigits); - NSCAssert(type == NULL || *type == _C_ARY_E, nil); - if (type) - type++; - break; - - case _C_STRUCT_B: - /* skip name, and elements until closing '}' */ - while (*type != _C_STRUCT_E && *type++ != '=') - ; - while (type && *type != _C_STRUCT_E) { - if (*type == '"') { - /* embedded field names */ - type = strchr(type + 1, '"'); - if (type != NULL) { - type++; - } else { - return NULL; - } - } - type = objc_ext_skip_type_specifier(type, skipDigits); - } - if (type) - type++; - break; - - case _C_UNION_B: - /* skip name, and elements until closing ')' */ - while (*type != _C_UNION_E && *type++ != '=') - ; - while (type && *type != _C_UNION_E) { - if (*type == '"') { - /* embedded field names */ - type = strchr(type + 1, '"'); - if (type != NULL) { - type++; - } else { - return NULL; - } - } - type = objc_ext_skip_type_specifier(type, skipDigits); - } - if (type) - type++; - break; - - case _C_PTR: - case _C_CONST: - case _C_IN: - case _C_INOUT: - case _C_OUT: - case _C_BYCOPY: - case _C_ONEWAY: - - /* Just skip the following typespec */ - type = objc_ext_skip_type_specifier(type + 1, skipDigits); - break; - - default: - NSLog(@"objc_ext_skip_type_specifier: Unhandled type '%#x' %s", *type, - type); - return NULL; - } - - if (skipDigits) { - /* The compiler inserts a number after the actual signature, - * this number may or may not be usefull depending on the compiler - * version. We never use it. - */ - while (type && *type && isdigit(*type)) - type++; - } - - return type; -} - -/* - Return the alignment of an object specified by type - */ - -/* - * On MacOS X, the elements of a struct are aligned differently inside the - * struct than outside. That is, the maximum alignment of any struct field - * (except the first) is 4, doubles outside of a struct have an alignment of - * 8. - * - * Other platform don't seem to have this inconsistency. - * - * XXX: sizeof_struct, alignof_struct and {de,}pythonify_c_struct should - * probably be moved to platform dependend files. As long as this is the - * only platform dependent code this isn't worth the effort. - */ - -static inline size_t PyObjC_EmbeddedAlignOfType(const char *type) { - NSCAssert(type != NULL, nil); - - size_t align = objc_ext_alignof_type(type); - -#if (defined(__i386__) || defined(__x86_64__)) && !defined(LINUX) - return align; - -#else - if (align < 4 || align == 16) { - return align; - } else { - return 4; - } -#endif -} - -size_t objc_ext_alignof_type(const char *type) { - NSCAssert(type != NULL, nil); - - switch (*type) { - case _C_VOID: - return __alignof__(char); - case _C_ID: - return __alignof__(id); - case _C_CLASS: - return __alignof__(Class); - case _C_SEL: - return __alignof__(SEL); - case _C_CHR: - return __alignof__(char); - case _C_UCHR: - return __alignof__(unsigned char); - case _C_SHT: - return __alignof__(short); - case _C_USHT: - return __alignof__(unsigned short); -#ifdef _C_BOOL - case _C_BOOL: - return __alignof__(BOOL); -#endif - case _C_INT: - return __alignof__(int); - case _C_UINT: - return __alignof__(unsigned int); - case _C_LNG: - return __alignof__(long); - case _C_ULNG: - return __alignof__(unsigned long); - case _C_FLT: - return __alignof__(float); - case _C_DBL: -#if defined(__APPLE__) && defined(__i386__) - /* The ABI says natural alignment is 4 bytes, but - * GCC's __alignof__ says 8. The latter is wrong. - */ - return 4; -#else - return __alignof__(double); -#endif - - case _C_CHARPTR: - return __alignof__(char *); -#ifdef _C_ATOM - case _C_ATOM: - return __alignof__(char *); -#endif - case _C_PTR: - return __alignof__(void *); -#if defined(__APPLE__) && defined(__i386__) - /* The ABI says natural alignment is 4 bytes, but - * GCC's __alignof__ says 8. The latter is wrong. - */ - case _C_LNG_LNG: - return 4; - case _C_ULNG_LNG: - return 4; -#else - case _C_LNG_LNG: - return __alignof__(long long); - case _C_ULNG_LNG: - return __alignof__(unsigned long long); -#endif - - case _C_ARY_B: - while (isdigit(*++type)) /* do nothing */ - ; - return objc_ext_alignof_type(type); - - case _C_STRUCT_B: { - struct { - int x; - double y; - } fooalign; - while (*type != _C_STRUCT_E && *type++ != '=') /* do nothing */ - ; - if (*type != _C_STRUCT_E) { - int have_align = 0; - size_t align = 0; - - while (type != NULL && *type != _C_STRUCT_E) { - if (*type == '"') { - type = strchr(type + 1, '"'); - if (type) - type++; - } - if (have_align) { - align = MAX(align, PyObjC_EmbeddedAlignOfType(type)); - } else { - align = objc_ext_alignof_type(type); - have_align = 1; - } - type = objc_ext_skip_type_specifier(type, YES); - } - if (type == NULL) - return -1; - return align; - } else { - return __alignof__(fooalign); - } - } - - case _C_UNION_B: { - size_t maxalign = 0; - type++; - while (*type != _C_UNION_E && *type++ != '=') - ; /* skip "=" */ - while (*type != _C_UNION_E) { - if (*type == '"') { - type = strchr(type + 1, '"'); - if (type) - type++; - } - size_t item_align = objc_ext_alignof_type(type); - if (item_align == -1) - return -1; - maxalign = MAX(maxalign, item_align); - type = objc_ext_skip_type_specifier(type, YES); - } - return maxalign; - } - - case _C_CONST: - case _C_IN: - case _C_INOUT: - case _C_OUT: - case _C_BYCOPY: - case _C_ONEWAY: - return objc_ext_alignof_type(type + 1); - - case _C_BFLD: - return 1; - - default: - NSLog(@"objc_ext_alignof_type: Unhandled type '%c' %s", *type, type); - return -1; - } -} - -/* - The aligned size if the size rounded up to the nearest alignment. - */ - -static inline size_t PyObjCRT_AlignedSize(const char *type) { - NSCAssert(type != NULL, nil); - - size_t size = objc_ext_sizeof_type(type); - size_t align = objc_ext_alignof_type(type); - - if (size == -1 || align == -1) - return -1; - return ROUND(size, align); -} - -/* - return the size of an object specified by type - */ - -size_t objc_ext_sizeof_type(const char *type) { - NSCAssert(type != NULL, nil); - - size_t itemSize; - switch (*type) { - case _C_VOID: - return 1; // More convenient than the correct value. - case _C_ID: - return sizeof(id); - case _C_CLASS: - return sizeof(Class); - case _C_SEL: - return sizeof(SEL); - case _C_CHR: - return sizeof(char); - case _C_UCHR: - return sizeof(unsigned char); - case _C_SHT: - return sizeof(short); - case _C_USHT: - return sizeof(unsigned short); -#ifdef _C_BOOL - case _C_BOOL: - return sizeof(BOOL); -#endif - case _C_INT: - return sizeof(int); - case _C_UINT: - return sizeof(unsigned int); - case _C_LNG: - return sizeof(long); - case _C_ULNG: - return sizeof(unsigned long); - case _C_FLT: - return sizeof(float); - case _C_DBL: - return sizeof(double); - case _C_LNG_LNG: - return sizeof(long long); - case _C_ULNG_LNG: - return sizeof(unsigned long long); - - case _C_PTR: - case _C_CHARPTR: -#ifdef _C_ATOM - case _C_ATOM: -#endif - return sizeof(char *); - - case _C_ARY_B: { - size_t len = atoi(type + 1); - size_t item_align; - while (isdigit(*++type)) - ; - item_align = PyObjCRT_AlignedSize(type); - if (item_align == -1) - return -1; - return len * item_align; - } break; - - case _C_STRUCT_B: { - size_t acc_size = 0; - int have_align = 0; - size_t align; - size_t max_align = 0; - - while (*type != _C_STRUCT_E && *type++ != '=') - ; /* skip "=" */ - while (*type != _C_STRUCT_E) { - if (*type == '"') { - type = strchr(type + 1, '"'); - if (type) - type++; - } - if (have_align) { - align = PyObjC_EmbeddedAlignOfType(type); - if (align == -1) - return -1; - } else { - align = objc_ext_alignof_type(type); - if (align == -1) - return -1; - have_align = 1; - } - max_align = MAX(align, max_align); - acc_size = ROUND(acc_size, align); - - itemSize = objc_ext_sizeof_type(type); - if (itemSize == -1) - return -1; - acc_size += itemSize; - type = objc_ext_skip_type_specifier(type, YES); - } - if (max_align) { - acc_size = ROUND(acc_size, max_align); - } - return acc_size; - } - - case _C_UNION_B: { - size_t max_size = 0; - while (*type != _C_UNION_E && *type++ != '=') - ; /* skip "=" */ - - while (*type != _C_UNION_E) { - if (*type == '"') { - type = strchr(type + 1, '"'); - if (type) - type++; - } - itemSize = objc_ext_sizeof_type(type); - if (itemSize == -1) - return -1; - max_size = MAX(max_size, itemSize); - type = objc_ext_skip_type_specifier(type, YES); - } - return max_size; - } - - case _C_CONST: - case _C_IN: - case _C_INOUT: - case _C_OUT: - case _C_BYCOPY: - case _C_ONEWAY: - return objc_ext_sizeof_type(type + 1); - - case _C_BFLD: { - long i = strtol(type + 1, NULL, 10); - return (i + 7) / 8; - } break; - - default: - NSLog(@"objc_ext_sizeof_type: Unhandled type '%#x', %s", *type, type); - return -1; - } -} diff --git a/Foundation/NSObject/platform_linux/msgSendv-linux.s b/Foundation/NSObject/platform_linux/msgSendv-linux.s deleted file mode 100755 index cb515f80..00000000 --- a/Foundation/NSObject/platform_linux/msgSendv-linux.s +++ /dev/null @@ -1,25 +0,0 @@ -# Original - Christopher Lloyd -.globl objc_msgSendv - .type objc_msgSendv, @function -objc_msgSendv: - pushl %ebp - movl %esp, %ebp - pushl 12(%ebp) - pushl 8(%ebp) - call objc_msg_lookup - movl 16(%ebp),%ecx # ecx=argumentFrameByteSize - movl 20(%ebp),%edx # edx=argumentFrame -pushNext: - subl $4,%ecx # argumentFrameByteSize-=sizeof(int) - cmpl $4,%ecx # check if we're at _cmd in argumentFrame - jle done - pushl (%edx,%ecx) - jmp pushNext -done: - pushl 12(%ebp) # push _cmd - pushl 8(%ebp) # push self - call *%eax - leave - ret - .size objc_msgSendv, .-objc_msgSendv - .ident "GCC: (GNU) 3.3.2" diff --git a/Foundation/NSObject/platform_linux/msgSendv-linux_x86_64.s b/Foundation/NSObject/platform_linux/msgSendv-linux_x86_64.s deleted file mode 100644 index ce4edecc..00000000 --- a/Foundation/NSObject/platform_linux/msgSendv-linux_x86_64.s +++ /dev/null @@ -1,25 +0,0 @@ -# Original - Christopher Lloyd -.globl objc_msgSendv - .type objc_msgSendv, @function -objc_msgSendv: - pushq %rbp - movq %rsp, %rbp - pushq 24(%rbp) - pushq 16(%rbp) - call objc_msg_lookup@PLT - movq 32(%rbp),%rcx # rcx=argumentFrameByteSize - movq 40(%rbp),%rdx # rdx=argumentFrame -pushNext: - subq $8,%rcx # argumentFrameByteSize-=sizeof(int_64bit) - cmpq $8,%rcx # check if we're at _cmd in argumentFrame - jle done - pushq (%rdx,%rcx) - jmp pushNext -done: - pushq 24(%rbp) # push _cmd - pushq 16(%rbp) # push self - call *%rax - leave - ret - .size objc_msgSendv, .-objc_msgSendv - .ident "GCC: (GNU) 3.3.2" diff --git a/Foundation/NSObject/platform_linux/msgSendv-x64.m b/Foundation/NSObject/platform_linux/msgSendv-x64.m deleted file mode 100644 index b5c69c58..00000000 --- a/Foundation/NSObject/platform_linux/msgSendv-x64.m +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -id objc_msgSendv(id self, SEL selector, NSUInteger arg_size, void *arg_frame) { - IMP imp = class_getMethodImplementation(object_getClass(self), selector); - void *result = __builtin_apply((void (*)()) imp, arg_frame, (int) arg_size); - __builtin_return(result); -} diff --git a/Foundation/NSObject/platform_linux/msgSendv-x64.s b/Foundation/NSObject/platform_linux/msgSendv-x64.s deleted file mode 100644 index 56cbe533..00000000 --- a/Foundation/NSObject/platform_linux/msgSendv-x64.s +++ /dev/null @@ -1,122 +0,0 @@ - .file "msgSendv-template.c" - .text - .globl objc_msgSendv - .type objc_msgSendv, @function -objc_msgSendv: -.LFB0: - .cfi_startproc - pushq %rbp - .cfi_def_cfa_offset 16 - .cfi_offset 6, -16 - movq %rsp, %rbp - .cfi_def_cfa_register 6 - pushq %r12 - pushq %rbx - subq $192, %rsp - movq %rdi, -40(%rbp) - movq %rsi, -48(%rbp) - movq %rdx, -56(%rbp) - movq %rcx, -64(%rbp) - movq -40(%rbp), %rax - movq %rax, %rdi - .cfi_offset 3, -32 - .cfi_offset 12, -24 - call object_getClass@PLT - movq -48(%rbp), %rdx - movq %rdx, %rsi - movq %rax, %rdi - call class_getMethodImplementation@PLT - movq %rax, -32(%rbp) - movq -56(%rbp), %rax - movslq %eax, %rcx - movq -32(%rbp), %r12 - movq -64(%rbp), %rax - movq (%rax), %rsi - movq %rsp, %rbx - leaq 15(%rcx), %rax - movl $16, %edx - subq $1, %rdx - addq %rdx, %rax - movq $16, -200(%rbp) - movl $0, %edx - divq -200(%rbp) - imulq $16, %rax, %rax - subq %rax, %rsp - movq %rsp, %rax - movq %rcx, %rdx - movq %rax, %rdi - call memcpy@PLT - movq -64(%rbp), %rax - addq $8, %rax - movq (%rax), %rax - movq -64(%rbp), %rax - addq $16, %rax - movq (%rax), %rdx - movq -64(%rbp), %rax - addq $24, %rax - movq (%rax), %rcx - movq -64(%rbp), %rax - addq $32, %rax - movq (%rax), %rsi - movq -64(%rbp), %rax - addq $40, %rax - movq (%rax), %rdi - movq -64(%rbp), %rax - addq $48, %rax - movdqu (%rax), %xmm0 - movq -64(%rbp), %rax - addq $64, %rax - movdqu (%rax), %xmm1 - movq -64(%rbp), %rax - addq $80, %rax - movdqu (%rax), %xmm2 - movq -64(%rbp), %rax - addq $96, %rax - movdqu (%rax), %xmm3 - movq -64(%rbp), %rax - addq $112, %rax - movdqu (%rax), %xmm4 - movq -64(%rbp), %rax - subq $-128, %rax - movdqu (%rax), %xmm5 - movq -64(%rbp), %rax - addq $144, %rax - movdqu (%rax), %xmm6 - movq -64(%rbp), %rax - addq $160, %rax - movdqu (%rax), %xmm7 - movq -64(%rbp), %rax - addq $176, %rax - movq (%rax), %r8 - movq -64(%rbp), %rax - addq $184, %rax - movq (%rax), %r9 - movl $7, %eax - call *%r12 - fstp %st(1) - movq %rax, -192(%rbp) - fstpt -176(%rbp) - movdqa %xmm0, -160(%rbp) - movq %rbx, %rsp - leaq -192(%rbp), %rax - movq %rax, -24(%rbp) - movq -24(%rbp), %rax - movq (%rax), %rax - movq -24(%rbp), %rdx - addq $16, %rdx - fldt (%rdx) - movq -24(%rbp), %rdx - addq $32, %rdx - movdqu (%rdx), %xmm0 - fstp %st(0) - leaq -16(%rbp), %rsp - popq %rbx - popq %r12 - popq %rbp - .cfi_def_cfa 7, 8 - ret - .cfi_endproc -.LFE0: - .size objc_msgSendv, .-objc_msgSendv - .ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3" - .section .note.GNU-stack,"",@progbits diff --git a/Foundation/NSObject/platform_solaris/msgSendv-solaris.m b/Foundation/NSObject/platform_solaris/msgSendv-solaris.m deleted file mode 100644 index 3aa178e3..00000000 --- a/Foundation/NSObject/platform_solaris/msgSendv-solaris.m +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -// how lame but this is all I need, sparc passes arguments in registers -id objc_msgSendv(id self, SEL selector, uint32_t arg_size, void *arg_frame) { - uint32_t *argWords = arg_frame; - IMP method = objc_msg_lookup(self, selector); - - arg_size /= sizeof(int); - - switch (arg_size) { - case 0: - case 1: - case 2: - return method(self, selector); - case 3: - return method(self, selector, argWords[2]); - case 4: - return method(self, selector, argWords[2], argWords[3]); - case 5: - return method(self, selector, argWords[2], argWords[3], argWords[4]); - case 6: - return method(self, selector, argWords[2], argWords[3], argWords[4], - argWords[5]); - case 7: - return method(self, selector, argWords[2], argWords[3], argWords[4], - argWords[5], argWords[6]); - case 8: - return method(self, selector, argWords[2], argWords[3], argWords[4], - argWords[5], argWords[6], argWords[7]); - case 9: - return method(self, selector, argWords[2], argWords[3], argWords[4], - argWords[5], argWords[6], argWords[7], argWords[8]); - case 10: - return method(self, selector, argWords[2], argWords[3], argWords[4], - argWords[5], argWords[6], argWords[7], argWords[8], - argWords[9]); - } - - return nil; -} diff --git a/Foundation/NSObject/platform_windows/msgSendv-windows.s b/Foundation/NSObject/platform_windows/msgSendv-windows.s deleted file mode 100755 index 9591814e..00000000 --- a/Foundation/NSObject/platform_windows/msgSendv-windows.s +++ /dev/null @@ -1,52 +0,0 @@ -#ifdef WINDOWS -# Original - Christopher Lloyd -.globl _objc_msgSendv -_objc_msgSendv: - pushl %ebp - movl %esp, %ebp - pushl 12(%ebp) - pushl 8(%ebp) - call _objc_msg_lookup - movl 16(%ebp),%ecx # ecx=argumentFrameByteSize - movl 20(%ebp),%edx # edx=argumentFrame -pushNext: - subl $4,%ecx # argumentFrameByteSize-=sizeof(int) - cmpl $4,%ecx # check if we're at _cmd in argumentFrame - jle done - pushl (%edx,%ecx) - jmp pushNext -done: - pushl 12(%ebp) # push _cmd - pushl 8(%ebp) # push self - call *%eax - leave - ret - -.globl _objc_msgSendv_stret -_objc_msgSendv_stret: - pushl %ebp - movl %esp, %ebp - pushl 16(%ebp) # _cmd - pushl 12(%ebp) # self - call _objc_msg_lookup - movl 20(%ebp),%ecx # ecx=argumentFrameByteSize - movl 24(%ebp),%edx # edx=argumentFrame -pushNext_stret: - subl $4,%ecx # argumentFrameByteSize-=sizeof(int) - cmpl $8,%ecx # check if we're at _cmd in argumentFrame - jle done_stret - pushl (%edx,%ecx) - jmp pushNext_stret -done_stret: - pushl 16(%ebp) # push _cmd - pushl 12(%ebp) # push self - pushl 8(%ebp) # push return value ptr - call *%eax - leave - ret - - .section .drectve - .ascii " -export:objc_msgSendv" - .ascii " -export:objc_msgSendv_stret" -#endif - diff --git a/Foundation/NSOperation/NSAtomicList.h b/Foundation/NSOperation/NSAtomicList.h deleted file mode 100644 index 33f56921..00000000 --- a/Foundation/NSOperation/NSAtomicList.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -Original Author: Michael Ash on 11/9/08. -Copyright (c) 2008 Rogue Amoeba Software LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -#import -#import - -// thread safe linked list utilities -// a NULL list is considered empty -typedef struct NSAtomicListNode *NSAtomicListRef; - -// thread safe functions: may be called on a shared list from multiple threads -// with no locking -void NSAtomicListInsert(NSAtomicListRef *listPtr, void *elt); -NSAtomicListRef NSAtomicListSteal(NSAtomicListRef *listPtr); - -// thread unsafe functions: must be called only on lists which other threads -// cannot access -void NSAtomicListReverse(NSAtomicListRef *listPtr); -void *NSAtomicListPop(NSAtomicListRef *listPtr); // returns NULL on empty list -void NSAtomicListAddToArray(NSAtomicListRef *listPtr, NSMutableArray *array); diff --git a/Foundation/NSOperation/NSAtomicList.m b/Foundation/NSOperation/NSAtomicList.m deleted file mode 100644 index ccf73df2..00000000 --- a/Foundation/NSOperation/NSAtomicList.m +++ /dev/null @@ -1,97 +0,0 @@ -/* -Original Author: Michael Ash on 11/9/08. -Copyright (c) 2008 Rogue Amoeba Software LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#import "NSAtomicList.h" - -#import -#include - -static int OSAtomicCompareAndSwapPtrBarrier(void *oldValue, void *newValue, - void *volatile *theValue) -{ - return __sync_bool_compare_and_swap(theValue, oldValue, newValue); -} - -struct NSAtomicListNode { - struct NSAtomicListNode *next; - void *elt; -}; - -void NSAtomicListInsert(NSAtomicListRef *listPtr, void *elt) { - struct NSAtomicListNode *node = malloc(sizeof(*node)); - node->elt = elt; - - do { - node->next = *listPtr; - } while (!OSAtomicCompareAndSwapPtrBarrier(node->next, node, - (void **) listPtr)); -} - -NSAtomicListRef NSAtomicListSteal(NSAtomicListRef *listPtr) { - NSAtomicListRef ret; - do { - ret = *listPtr; - } while (!OSAtomicCompareAndSwapPtrBarrier(ret, NULL, (void **) listPtr)); - return ret; -} - -void NSAtomicListReverse(NSAtomicListRef *listPtr) { - struct NSAtomicListNode *cur = *listPtr; - struct NSAtomicListNode *prev = NULL; - struct NSAtomicListNode *next = NULL; - - if (!cur) - return; - - do { - next = cur->next; - cur->next = prev; - - if (next) { - prev = cur; - cur = next; - } - } while (next); - - *listPtr = cur; -} - -void NSAtomicListAddToArray(NSAtomicListRef *listPtr, NSMutableArray *array) { - struct NSAtomicListNode *node = NSAtomicListSteal(listPtr); - while (node) { - [array addObject: (id) node->elt]; - node = node->next; - }; -} - -void *NSAtomicListPop(NSAtomicListRef *listPtr) { - struct NSAtomicListNode *node = *listPtr; - if (!node) - return NULL; - - *listPtr = node->next; - - void *elt = node->elt; - free(node); - return elt; -} diff --git a/Foundation/NSOperation/NSOperation.h b/Foundation/NSOperation/NSOperation.h deleted file mode 100644 index 95851ed6..00000000 --- a/Foundation/NSOperation/NSOperation.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -Original Author: Michael Ash on 11/9/08. -Copyright (c) 2008 Rogue Amoeba Software LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ -#import -@class NSArray; -@class NSMutableArray; - -enum { - NSOperationQueuePriorityVeryLow = -8, - NSOperationQueuePriorityLow = -4, - NSOperationQueuePriorityNormal = 0, - NSOperationQueuePriorityHigh = 4, - NSOperationQueuePriorityVeryHigh = 8 -}; -typedef NSInteger NSOperationQueuePriority; - -@interface NSOperation : NSObject { - NSOperationQueuePriority priority; - NSMutableArray *dependencies; - - int executing : 1; - int cancelled : 1; - int finished : 1; -} - -- (void) start; - -// abstract, override this to create a concrete subclass, don't call super -- (void) main; - -- (NSArray *) dependencies; -- (void) addDependency: (NSOperation *) operation; -- (void) removeDependency: (NSOperation *) operation; - -- (NSOperationQueuePriority) queuePriority; -- (void) setQueuePriority: (NSOperationQueuePriority) priority; - -- (BOOL) isCancelled; -- (void) cancel; - -- (BOOL) isConcurrent; -- (BOOL) isExecuting; -- (BOOL) isFinished; -- (BOOL) isReady; - -@end - -extern NSString *const NSInvocationOperationVoidResultException; -extern NSString *const NSInvocationOperationCancelledException; - -@interface NSInvocationOperation : NSOperation { - NSInvocation *_invocation; -} - -- initWithInvocation: (NSInvocation *) invocation; -- initWithTarget: target selector: (SEL) selector object: argument; - -- (NSInvocation *) invocation; - -- result; - -@end diff --git a/Foundation/NSOperation/NSOperation.m b/Foundation/NSOperation/NSOperation.m deleted file mode 100644 index bda26a8b..00000000 --- a/Foundation/NSOperation/NSOperation.m +++ /dev/null @@ -1,233 +0,0 @@ -/* -Original Author: Michael Ash on 11/9/08. -Copyright (c) 2008 Rogue Amoeba Software LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#import "NSOperation.h" -#import -#import -#import -#import -#import -#import - -@implementation NSOperation - -- (void) main { - NSLog(@"NSOperation is an abstract class, implement -[%@ %@]", [self class], - NSStringFromSelector(_cmd)); - [self doesNotRecognizeSelector: _cmd]; -} - -- (NSArray *) dependencies { - return dependencies; -} - -- (void) addDependency: (NSOperation *) operation { - if (nil == dependencies) { - dependencies = [[NSMutableArray alloc] init]; - } - [dependencies addObject: operation]; -} - -- (void) removeDependency: (NSOperation *) operation { - if (nil != dependencies) { - [dependencies removeObject: operation]; - } -} - -- (NSOperationQueuePriority) queuePriority { - return priority; -} - -- (void) setQueuePriority: (NSOperationQueuePriority) newPriority { - // Queue priority is supposed to be coerced into one of the legit values - if (newPriority < NSOperationQueuePriorityVeryLow) { - newPriority = NSOperationQueuePriorityVeryLow; - } else if (newPriority < NSOperationQueuePriorityLow) { - newPriority = NSOperationQueuePriorityLow; - } else if (newPriority > NSOperationQueuePriorityVeryHigh) { - newPriority = NSOperationQueuePriorityVeryHigh; - } else if (newPriority > NSOperationQueuePriorityHigh) { - newPriority = NSOperationQueuePriorityHigh; - } else { - newPriority = NSOperationQueuePriorityNormal; - } - - priority = newPriority; -} - -- (NSComparisonResult) comparePriority: (NSOperation *) op { - if ([op queuePriority] > priority) { - return NSOrderedDescending; - } - if ([op queuePriority] < priority) { - return NSOrderedAscending; - } - return NSOrderedSame; -} - -- (BOOL) isCancelled { - return cancelled; -} - -- (void) cancel { - [self willChangeValueForKey: @"isCancelled"]; - cancelled = 1; - [self didChangeValueForKey: @"isCancelled"]; -} - -- (BOOL) isConcurrent { - return NO; -} - -- (BOOL) isExecuting { - return executing; -} - -- (BOOL) isFinished { - return finished; -} - -- (BOOL) isReady { - for (NSOperation *op in dependencies) { - if (![op isFinished]) - return NO; - } - return YES; -} - -- (void) start { - if (!executing && !finished) { - if (!cancelled) { - [self willChangeValueForKey: @"isExecuting"]; - executing = 1; - [self didChangeValueForKey: @"isExecuting"]; - - [self main]; - } - - [self willChangeValueForKey: @"isExecuting"]; - [self willChangeValueForKey: @"isFinished"]; - executing = 0; - finished = 1; - [self didChangeValueForKey: @"isFinished"]; - [self didChangeValueForKey: @"isExecuting"]; - } -} - -- (void) dealloc { - [dependencies release]; - [super dealloc]; -} - -static NSString *NSStringFromQueuePriority(NSOperationQueuePriority priority) { - switch (priority) { - case NSOperationQueuePriorityVeryLow: - return @"very low"; - case NSOperationQueuePriorityLow: - return @"low"; - case NSOperationQueuePriorityNormal: - return @"normal"; - case NSOperationQueuePriorityHigh: - return @"high"; - case NSOperationQueuePriorityVeryHigh: - return @"very high"; - default: - return [NSString stringWithFormat: @"%d", priority]; - } -} - -- (NSString *) description { - return [NSString stringWithFormat: @"%@, priority: %@", [super description], - NSStringFromQueuePriority(priority)]; -} - -@end - -NSString *const NSInvocationOperationVoidResultException = - @"NSInvocationOperationVoidResultException"; -NSString *const NSInvocationOperationCancelledException = - @"NSInvocationOperationCancelledException"; - -@implementation NSInvocationOperation - -- initWithInvocation: (NSInvocation *) invocation { - if ([super init] == nil) - return nil; - - _invocation = [invocation retain]; - [_invocation retainArguments]; - - return self; -} - -- initWithTarget: target selector: (SEL) selector object: argument { - NSMethodSignature *signature = - [target methodSignatureForSelector: selector]; - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature]; - - [invocation setTarget: target]; - [invocation setSelector: selector]; - if ([signature numberOfArguments] > 2) { - [invocation setArgument: &argument atIndex: 2]; - } - return [self initWithInvocation: invocation]; -} - -- (NSInvocation *) invocation { - return _invocation; -} - -- result { - if ([self isCancelled]) - [NSException raise: NSInvocationOperationCancelledException - format: @""]; - - id result = 0; - - if ([[_invocation methodSignature] methodReturnLength] != sizeof(result)) - [NSException raise: NSInvocationOperationVoidResultException - format: @""]; - - [_invocation getReturnValue: &result]; - return result; -} - -- (void) dealloc { - [_invocation release]; - [super dealloc]; -} - -- (void) main { - [_invocation invoke]; -} - -#pragma mark - Debugging - -- (NSString *) description { - return [NSString - stringWithFormat: @"%@, selector: %@", [super description], - NSStringFromSelector([_invocation selector])]; -} - -@end diff --git a/Foundation/NSOperation/NSOperationQueue.h b/Foundation/NSOperation/NSOperationQueue.h deleted file mode 100644 index 1469a44c..00000000 --- a/Foundation/NSOperation/NSOperationQueue.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -Original Author: Michael Ash on 11/9/08 -Copyright (c) 2008 Rogue Amoeba Software LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ -#import - -@class NSArray, NSMutableArray, NSOperation, NSCondition, NSThread; - -enum { NSOperationQueueDefaultMaxConcurrentOperationCount = -1 }; - -enum { NSOperationQueuePriority_Count = 3 }; - -@interface NSOperationQueue : NSObject { - NSThread *_thread; - - NSCondition *workAvailable; - NSCondition *suspendedCondition; - NSCondition *allWorkDone; - BOOL isSuspended; - - NSMutableArray *_operations; - - void *queues[NSOperationQueuePriority_Count]; - NSString *_name; -} - -- (id) init; - -#pragma mark Managing Operations in the Queue - -- (void) addOperation: (NSOperation *) op; - -- (void) addOperations: (NSArray *) ops waitUntilFinished: (BOOL) wait; - -- (NSArray *) operations; - -- (NSUInteger) operationCount; - -- (void) cancelAllOperations; - -- (void) waitUntilAllOperationsAreFinished; - -#pragma mark Managing the Number of Running Operations - -- (NSInteger) maxConcurrentOperationCount; -- (void) setMaxConcurrentOperationCount: (NSInteger) count; - -#pragma mark Managing the Queue Name - -- (NSString *) name; -- (void) setName: (NSString *) newName; - -#pragma mark Suspending Operations - -- (BOOL) isSuspended; -- (void) setSuspended: (BOOL) suspend; - -#pragma mark Getting Specific Operation Queues - -+ (id) currentQueue; -+ (id) mainQueue; - -@end diff --git a/Foundation/NSOperation/NSOperationQueue.m b/Foundation/NSOperation/NSOperationQueue.m deleted file mode 100644 index 0e722211..00000000 --- a/Foundation/NSOperation/NSOperationQueue.m +++ /dev/null @@ -1,242 +0,0 @@ -/* -Original Author: Michael Ash on 11/9/08 -Copyright (c) 2008 Rogue Amoeba Software LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -*/ - -#import "NSOperationQueue.h" -#import "NSOperation.h" -#import -#import -#import -#import -#import - -#import -#include - -@implementation NSOperationQueue - -- init { - if (self = [super init]) { - workAvailable = [[NSCondition alloc] init]; - suspendedCondition = [[NSCondition alloc] init]; - allWorkDone = [[NSCondition alloc] init]; - isSuspended = NO; - _operations = [[NSMutableArray alloc] init]; - _thread = [[NSThread alloc] initWithTarget: self - selector: @selector(_workThread) - object: nil]; - [_thread start]; - } - return self; -} - -- (void) resume { - [suspendedCondition lock]; - if (isSuspended) { - isSuspended = NO; - [suspendedCondition broadcast]; - } - [suspendedCondition unlock]; -} - -- (void) suspend { - [suspendedCondition lock]; - isSuspended = YES; - [suspendedCondition unlock]; -} - -- (void) stop { - [_thread cancel]; - [self resume]; - [workAvailable broadcast]; -} - -- (void) dealloc { - [self stop]; - - [_operations release]; - [_thread release]; - [workAvailable release]; - [suspendedCondition release]; - - [super dealloc]; -} - -- (void) addOperation: (NSOperation *) op { - @synchronized(self) { - [_operations addObject: op]; - [_operations sortUsingSelector: @selector(comparePriority:)]; - [workAvailable signal]; - } -} - -- (void) addOperations: (NSArray *) ops waitUntilFinished: (BOOL) wait { - @synchronized(self) { - [_operations addObjectsFromArray: ops]; - [_operations sortUsingSelector: @selector(comparePriority:)]; - [workAvailable signal]; - } - if (wait) { - [self waitUntilAllOperationsAreFinished]; - } -} - -- (void) cancelAllOperations { - [[self operations] makeObjectsPerformSelector: @selector(cancel)]; -} - -- (NSInteger) maxConcurrentOperationCount { - NSUnimplementedMethod(); - return NSOperationQueueDefaultMaxConcurrentOperationCount; -} - -- (void) setMaxConcurrentOperationCount: (NSInteger) count { - // FIXME: implement but dont warn - // NSUnimplementedMethod(); -} - -- (NSString *) name { - return _name; -} - -- (void) setName: (NSString *) newName { - if (_name != newName) { - [_name release]; - _name = [newName copy]; - } -} - -- (NSArray *) operations { - NSArray *curOps = nil; - @synchronized(self) { - curOps = [_operations copy]; - } - return [curOps autorelease]; -} - -- (NSUInteger) operationCount { - return [_operations count]; -} - -- (BOOL) isSuspended { - [suspendedCondition lock]; - BOOL result = isSuspended; - [suspendedCondition unlock]; - return result; -} - -- (void) setSuspended: (BOOL) suspend { - if (suspend) - [self suspend]; - else - [self resume]; -} - -- (BOOL) hasMoreWork { - @synchronized(self) { - return [_operations count] > 0; - } - return NO; -} - -- (void) waitUntilAllOperationsAreFinished { - BOOL isWorking; - - [workAvailable lock]; - isWorking = [self hasMoreWork]; - [workAvailable unlock]; - - if (isWorking) { - [allWorkDone lock]; - [allWorkDone wait]; - [allWorkDone unlock]; - } -} - -- (void) _workThread { - NSAutoreleasePool *outerPool = [[NSAutoreleasePool alloc] init]; - - NSThread *thread = [NSThread currentThread]; - - BOOL didRun = NO; - while (![thread isCancelled]) { - NSAutoreleasePool *innerPool = [[NSAutoreleasePool alloc] init]; - - [suspendedCondition lock]; - - while (isSuspended) - [suspendedCondition wait]; - - [suspendedCondition unlock]; - - if (!didRun) { - [workAvailable lock]; - - if (![self hasMoreWork]) { - [allWorkDone signal]; - } - - while (![self hasMoreWork] && ![thread isCancelled]) - [workAvailable wait]; - - [workAvailable unlock]; - } - - id op = nil; - @synchronized(self) { - // Find an operation that can be run - NSUInteger index = 0; - NSUInteger count = [_operations count]; - while (op == nil && index < count) { - op = [_operations objectAtIndex: index]; - if ([op isReady]) { - [op retain]; // we're going to remove it from the queue - so - // make sure it doesn't die on us - [_operations removeObjectAtIndex: index]; - } else { - // Try the another one - op = nil; - } - index++; - } - } - if (op) { - [op start]; - [op release]; - } - [innerPool release]; - } - - [outerPool release]; -} - -+ (id) currentQueue { - NSUnimplementedMethod(); - return nil; -} - -+ (id) mainQueue { - NSUnimplementedMethod(); - return nil; -} - -@end diff --git a/Foundation/NSOrthography.h b/Foundation/NSOrthography.h deleted file mode 100644 index 9af6ff3c..00000000 --- a/Foundation/NSOrthography.h +++ /dev/null @@ -1,25 +0,0 @@ -#import - -@class NSArray, NSDictionary; - -@interface NSOrthography : NSObject { - NSString *_dominantScript; - NSDictionary *_languageMap; -} - -+ orthographyWithDominantScript: (NSString *) script - languageMap: (NSDictionary *) languageMap; - -- initWithDominantScript: (NSString *) script - languageMap: (NSDictionary *) languageMap; - -@property(readonly) NSDictionary *languageMap; -@property(readonly) NSArray *allLanguages; -@property(readonly) NSArray *allScripts; -@property(readonly) NSString *dominantLanguage; -@property(readonly) NSString *dominantScript; - -- (NSString *) dominantLanguageForScript: (NSString *) script; -- (NSArray *) languagesForScript: (NSString *) script; - -@end \ No newline at end of file diff --git a/Foundation/NSOrthography.m b/Foundation/NSOrthography.m deleted file mode 100644 index 302711f4..00000000 --- a/Foundation/NSOrthography.m +++ /dev/null @@ -1,66 +0,0 @@ -#import -#import -#import -#import - -@implementation NSOrthography - -+ orthographyWithDominantScript: (NSString *) script - languageMap: (NSDictionary *) languageMap -{ - return [[[self alloc] initWithDominantScript: script - languageMap: languageMap] autorelease]; -} - -- initWithDominantScript: (NSString *) script - languageMap: (NSDictionary *) languageMap -{ - _dominantScript = [script copy]; - _languageMap = [languageMap copy]; - return self; -} - -- (void) dealloc { - [_dominantScript release]; - [_languageMap release]; - [super dealloc]; -} - -- (NSDictionary *) languageMap { - return _languageMap; -} - -- (NSArray *) allLanguages { - NSMutableArray *result = [NSMutableArray array]; - - for (NSArray *entry in [_languageMap allValues]) - [result addObjectsFromArray: entry]; - - return result; -} - -- (NSArray *) allScripts { - return [_languageMap allKeys]; -} - -- (NSString *) dominantLanguage { - NSArray *languages = [_languageMap objectForKey: [self dominantScript]]; - - return [languages count] ? [languages objectAtIndex: 0] : nil; -} - -- (NSString *) dominantScript { - return _dominantScript; -} - -- (NSString *) dominantLanguageForScript: (NSString *) script { - NSArray *languages = [_languageMap objectForKey: [self dominantScript]]; - - return [languages count] ? [languages objectAtIndex: 0] : nil; -} - -- (NSArray *) languagesForScript: (NSString *) script { - return [_languageMap objectForKey: script]; -} - -@end diff --git a/Foundation/NSPipe.h b/Foundation/NSPipe.h deleted file mode 100644 index d4924c23..00000000 --- a/Foundation/NSPipe.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSFileHandle; - -@interface NSPipe : NSObject - -- init; -+ pipe; - -- (NSFileHandle *) fileHandleForReading; -- (NSFileHandle *) fileHandleForWriting; - -@end diff --git a/Foundation/NSPipe.m b/Foundation/NSPipe.m deleted file mode 100644 index 98461d53..00000000 --- a/Foundation/NSPipe.m +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import - -@implementation NSPipe - -+ allocWithZone: (NSZone *) zone { - if (self == [NSPipe class]) - return NSAllocateObject([[NSPlatform currentPlatform] pipeClass], 0, - zone); - else - return NSAllocateObject(self, 0, zone); -} - -- init { - return self; -} - -+ pipe { - return [[[self alloc] init] autorelease]; -} - -- (NSFileHandle *) fileHandleForReading { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSFileHandle *) fileHandleForWriting { - NSInvalidAbstractInvocation(); - return nil; -} - -@end diff --git a/Foundation/NSPlatform.h b/Foundation/NSPlatform.h deleted file mode 100644 index cec878d3..00000000 --- a/Foundation/NSPlatform.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSTimeZone, NSThread, NSInputSource, NSInputSourceSet, NSError; - -FOUNDATION_EXPORT NSString *const NSPlatformExecutableFileExtension; -FOUNDATION_EXPORT NSString *const NSPlatformLoadableObjectFileExtension; -FOUNDATION_EXPORT NSString *const NSPlatformLoadableObjectFilePrefix; -FOUNDATION_EXPORT NSString *const NSPlatformExecutableDirectory; -FOUNDATION_EXPORT NSString *const NSPlatformResourceNameSuffix; - -@interface NSPlatform : NSObject - -+ currentPlatform; - -- (NSInputSource *) parentDeathInputSource; - -- (Class) taskClass; -- (Class) socketClass; -- (Class) socketPortClass; -- (Class) pipeClass; -- (Class) lockClass; -- (Class) recursiveLockClass; -- (Class) conditionLockClass; -- (Class) persistantDomainClass; -- (Class) timeZoneClass; -- (Class) conditionClass; - -- (NSString *) userName; -- (NSString *) fullUserName; -- (NSString *) homeDirectory; -- (NSString *) libraryDirectory; -- (NSString *) temporaryDirectory; - -- (NSArray *) arguments; -- (NSDictionary *) environment; - -- (NSString *) hostName; - -- (NSString *) DNSHostName; -- (NSArray *) addressesForDNSHostName: (NSString *) name; -- (NSString *) hostNameByAddress: (NSString *) address; - -- (void *) mapContentsOfFile: (NSString *) path length: (NSUInteger *) length; -- (void) unmapAddress: (void *) ptr length: (NSUInteger) length; - -- (BOOL) writeContentsOfFile: (NSString *) path - bytes: (const void *) bytes - length: (NSUInteger) length - options: (NSUInteger) options - error: (NSError **) errorp; - -- (void) checkEnvironmentKey: (NSString *) key value: (NSString *) value; -@end - -FOUNDATION_EXPORT int NSPlatformProcessorCount(); -FOUNDATION_EXPORT int NSPlatformProcessID(); -FOUNDATION_EXPORT NSUInteger NSPlatformThreadID(); -FOUNDATION_EXPORT NSTimeInterval NSPlatformTimeIntervalSinceReferenceDate(); -FOUNDATION_EXPORT void NSPlatformLogString(NSString *string); -FOUNDATION_EXPORT void -NSPlatformSleepThreadForTimeInterval(NSTimeInterval interval); -FOUNDATION_EXPORT void *NSPlatformContentsOfFile(NSString *path, - NSUInteger *length); - -// These functions are implemented in the platform subproject - -NSThread *NSPlatformCurrentThread(); -void NSPlatformSetCurrentThread(NSThread *thread); -#ifdef WINDOWS -NSUInteger NSPlatformDetachThread(unsigned (*__stdcall func)(void *arg), - void *arg, NSError **errorp); -#else -NSUInteger NSPlatformDetachThread(void *(*func)(void *arg), void *arg, - NSError **errorp); -#endif diff --git a/Foundation/NSPlatform.m b/Foundation/NSPlatform.m deleted file mode 100644 index 59ed569c..00000000 --- a/Foundation/NSPlatform.m +++ /dev/null @@ -1,176 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -extern NSString *NSPlatformClassName; - -@implementation NSPlatform - -+ currentPlatform { - return NSThreadSharedInstance(NSPlatformClassName); -} - -- (NSInputSource *) parentDeathInputSource { - return nil; -} - -- (Class) taskClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) socketClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) socketPortClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) pipeClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) lockClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) recursiveLockClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) conditionLockClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) conditionClass; { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) persistantDomainClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (Class) timeZoneClass { - NSInvalidAbstractInvocation(); - return Nil; -} - -- (NSString *) userName { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) fullUserName { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) homeDirectory { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) libraryDirectory { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) temporaryDirectory { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSArray *) arguments { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSDictionary *) environment { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) hostName { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) DNSHostName { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSArray *) addressesForDNSHostName: (NSString *) name { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) hostNameByAddress: (NSString *) address { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void *) mapContentsOfFile: (NSString *) path length: (NSUInteger *) length { - NSInvalidAbstractInvocation(); - return NULL; -} - -- (void) unmapAddress: (void *) ptr length: (NSUInteger) length { - NSInvalidAbstractInvocation(); -} - -- (BOOL) writeContentsOfFile: (NSString *) path - bytes: (const void *) bytes - length: (NSUInteger) length - options: (NSUInteger) options - error: (NSError **) errorp -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (void) checkEnvironmentKey: (NSString *) key value: (NSString *) value { - if ([key isEqualToString: @"NSZombieEnabled"]) { - if ((NSZombieEnabled = [value isEqual: @"YES"])) - NSCLog("NSZombieEnabled=YES"); - } -} -@end diff --git a/Foundation/NSPointerArray.h b/Foundation/NSPointerArray.h deleted file mode 100644 index e69de29b..00000000 diff --git a/Foundation/NSPointerArray.m b/Foundation/NSPointerArray.m deleted file mode 100644 index e69de29b..00000000 diff --git a/Foundation/NSPointerFunctions.h b/Foundation/NSPointerFunctions.h deleted file mode 100644 index e69de29b..00000000 diff --git a/Foundation/NSPointerFunctions.m b/Foundation/NSPointerFunctions.m deleted file mode 100644 index e69de29b..00000000 diff --git a/Foundation/NSPortNameServer/NSMessagePortNameServer.h b/Foundation/NSPortNameServer/NSMessagePortNameServer.h deleted file mode 100644 index c9c24ae8..00000000 --- a/Foundation/NSPortNameServer/NSMessagePortNameServer.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSMessagePortNameServer : NSPortNameServer { -} - -+ sharedInstance; - -- (NSPort *) portForName: (NSString *) name host: (NSString *) host; -- (NSPort *) portForName: (NSString *) name; - -@end diff --git a/Foundation/NSPortNameServer/NSMessagePortNameServer.m b/Foundation/NSPortNameServer/NSMessagePortNameServer.m deleted file mode 100644 index c1703b8c..00000000 --- a/Foundation/NSPortNameServer/NSMessagePortNameServer.m +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@implementation NSMessagePortNameServer - -+ sharedInstance { - NSUnimplementedMethod(); - return 0; -} - -- (NSPort *) portForName: (NSString *) name host: (NSString *) host { - NSUnimplementedMethod(); - return 0; -} - -- (NSPort *) portForName: (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -@end diff --git a/Foundation/NSPortNameServer/NSPortNameServer.h b/Foundation/NSPortNameServer/NSPortNameServer.h deleted file mode 100644 index 5c210cbe..00000000 --- a/Foundation/NSPortNameServer/NSPortNameServer.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSPort; - -@interface NSPortNameServer : NSObject { -} - -+ (NSPortNameServer *) systemDefaultPortNameServer; - -- (NSPort *) portForName: (NSString *) name host: (NSString *) host; -- (NSPort *) portForName: (NSString *) name; - -- (BOOL) registerPort: (NSPort *) port name: (NSString *) name; -- (BOOL) removePortForName: (NSString *) name; - -@end diff --git a/Foundation/NSPortNameServer/NSPortNameServer.m b/Foundation/NSPortNameServer/NSPortNameServer.m deleted file mode 100644 index 68190e6d..00000000 --- a/Foundation/NSPortNameServer/NSPortNameServer.m +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@implementation NSPortNameServer - -+ (NSPortNameServer *) systemDefaultPortNameServer { - NSUnimplementedMethod(); - return 0; -} - -- (NSPort *) portForName: (NSString *) name host: (NSString *) host { - NSUnimplementedMethod(); - return 0; -} - -- (NSPort *) portForName: (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) registerPort: (NSPort *) port name: (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) removePortForName: (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -@end diff --git a/Foundation/NSPortNameServer/NSSocketPortNameServer.h b/Foundation/NSPortNameServer/NSSocketPortNameServer.h deleted file mode 100644 index 535d1762..00000000 --- a/Foundation/NSPortNameServer/NSSocketPortNameServer.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSSocketPortNameServer : NSPortNameServer { -} - -+ sharedInstance; - -- (uint16_t) defaultNameServerPortNumber; - -- (void) setDefaultNameServerPortNumber: (uint16_t) number; - -- (NSPort *) portForName: (NSString *) name - host: (NSString *) host - nameServerPortNumber: (uint16_t) number; -- (NSPort *) portForName: (NSString *) name host: (NSString *) host; -- (NSPort *) portForName: (NSString *) name; - -- (BOOL) registerPort: (NSPort *) port name: (NSString *) name; -- (BOOL) registerPort: (NSPort *) port - name: (NSString *) name - nameServerPortNumber: (uint16_t) number; - -- (BOOL) removePortForName: (NSString *) name; - -@end diff --git a/Foundation/NSPortNameServer/NSSocketPortNameServer.m b/Foundation/NSPortNameServer/NSSocketPortNameServer.m deleted file mode 100644 index ee7d33e1..00000000 --- a/Foundation/NSPortNameServer/NSSocketPortNameServer.m +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@implementation NSSocketPortNameServer - -+ sharedInstance { - NSUnimplementedMethod(); - return 0; -} - -- (uint16_t) defaultNameServerPortNumber { - NSUnimplementedMethod(); - return 0; -} - -- (void) setDefaultNameServerPortNumber: (uint16_t) number { - NSUnimplementedMethod(); -} - -- (NSPort *) portForName: (NSString *) name - host: (NSString *) host - nameServerPortNumber: (uint16_t) number -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSPort *) portForName: (NSString *) name host: (NSString *) host { - NSUnimplementedMethod(); - return 0; -} - -- (NSPort *) portForName: (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) registerPort: (NSPort *) port name: (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) registerPort: (NSPort *) port - name: (NSString *) name - nameServerPortNumber: (uint16_t) number -{ - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) removePortForName: (NSString *) name { - NSUnimplementedMethod(); - return 0; -} - -@end diff --git a/Foundation/NSPredicate/NSComparisonPredicate.h b/Foundation/NSPredicate/NSComparisonPredicate.h deleted file mode 100644 index da522072..00000000 --- a/Foundation/NSPredicate/NSComparisonPredicate.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSExpression; - -typedef enum { - NSDirectPredicateModifier, - NSAllPredicateModifier, - NSAnyPredicateModifier -} NSComparisonPredicateModifier; - -typedef enum { - NSLessThanPredicateOperatorType, - NSLessThanOrEqualToPredicateOperatorType, - NSGreaterThanPredicateOperatorType, - NSGreaterThanOrEqualToPredicateOperatorType, - NSEqualToPredicateOperatorType, - NSNotEqualToPredicateOperatorType, - NSMatchesPredicateOperatorType, - NSLikePredicateOperatorType, - NSBeginsWithPredicateOperatorType, - NSEndsWithPredicateOperatorType, - NSInPredicateOperatorType, - NSCustomSelectorPredicateOperatorType -} NSPredicateOperatorType; - -enum { - NSCaseInsensitivePredicateOption = 0x01, - NSDiacriticInsensitivePredicateOption = 0x02 -}; - -@interface NSComparisonPredicate : NSPredicate { - NSExpression *_left; - NSExpression *_right; - - NSComparisonPredicateModifier _modifier; - NSPredicateOperatorType _type; - NSUInteger _options; - SEL _customSelector; -} - -- initWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - modifier: (NSComparisonPredicateModifier) modifier - type: (NSPredicateOperatorType) type - options: (NSUInteger) options; -- initWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - customSelector: (SEL) selector; - -+ (NSPredicate *) - predicateWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - modifier: (NSComparisonPredicateModifier) modifier - type: (NSPredicateOperatorType) type - options: (NSUInteger) options; -+ (NSPredicate *) predicateWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - customSelector: (SEL) selector; - -- (NSExpression *) leftExpression; -- (NSExpression *) rightExpression; -- (NSPredicateOperatorType) predicateOperatorType; - -- (NSComparisonPredicateModifier) comparisonPredicateModifier; -- (NSUInteger) options; - -- (SEL) customSelector; - -@end diff --git a/Foundation/NSPredicate/NSComparisonPredicate.m b/Foundation/NSPredicate/NSComparisonPredicate.m deleted file mode 100644 index e94c045a..00000000 --- a/Foundation/NSPredicate/NSComparisonPredicate.m +++ /dev/null @@ -1,364 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_operator.h" -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSComparisonPredicate - -- initWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - modifier: (NSComparisonPredicateModifier) modifier - type: (NSPredicateOperatorType) type - options: (NSUInteger) options -{ - _left = [left retain]; - _right = [right retain]; - _modifier = modifier; - _type = type; - _options = options; - _customSelector = NULL; - return self; -} - -- initWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - customSelector: (SEL) selector -{ - _left = [left retain]; - _right = [right retain]; - _modifier = NSDirectPredicateModifier; - _type = NSCustomSelectorPredicateOperatorType; - _options = 0; - _customSelector = selector; - return self; -} - -- (void) dealloc { - [_left release]; - [_right release]; - [super dealloc]; -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -+ (NSPredicate *) - predicateWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - modifier: (NSComparisonPredicateModifier) modifier - type: (NSPredicateOperatorType) type - options: (NSUInteger) options -{ - return [[[self alloc] initWithLeftExpression: left - rightExpression: right - modifier: modifier - type: type - options: options] autorelease]; -} - -+ (NSPredicate *) predicateWithLeftExpression: (NSExpression *) left - rightExpression: (NSExpression *) right - customSelector: (SEL) selector -{ - return [[[self alloc] initWithLeftExpression: left - rightExpression: right - customSelector: selector] autorelease]; -} - -- (NSString *) predicateFormat { - NSMutableString *result = [NSMutableString string]; - NSString *operator= nil; - NSString *options; - - switch (_modifier) { - case NSDirectPredicateModifier: - break; - - case NSAllPredicateModifier: - [result appendFormat: @"ALL "]; - break; - - case NSAnyPredicateModifier: - [result appendFormat: @"ANY "]; - break; - } - - if (_options & NSCaseInsensitivePredicateOption) - if (_options & NSDiacriticInsensitivePredicateOption) - options = @"[cd]"; - else - options = @"[c]"; - else if (_options & NSDiacriticInsensitivePredicateOption) - options = @"[d]"; - else - options = @""; - - switch (_type) { - - case NSLessThanPredicateOperatorType: - operator= @"<"; - break; - - case NSLessThanOrEqualToPredicateOperatorType: - operator= @"<="; - break; - - case NSGreaterThanPredicateOperatorType: - operator= @">"; - break; - - case NSGreaterThanOrEqualToPredicateOperatorType: - operator= @">="; - break; - - case NSEqualToPredicateOperatorType: - operator= @"=="; - break; - - case NSNotEqualToPredicateOperatorType: - operator= @"!="; - break; - - case NSMatchesPredicateOperatorType: - operator= @"MATCHES"; - break; - - case NSLikePredicateOperatorType: - operator= @"LIKE"; - break; - - case NSBeginsWithPredicateOperatorType: - operator= @"BEGINSWITH"; - break; - - case NSEndsWithPredicateOperatorType: - operator= @"ENDSWITH"; - break; - - case NSInPredicateOperatorType: - operator= @"IN"; - break; - - // FIX, not right - case NSCustomSelectorPredicateOperatorType: - operator= [NSString stringWithFormat: @"@selector(%s)", - sel_getName(_customSelector)]; - break; - } - - [result appendFormat:@"%@ %@%@ %@",_left,operator,options,_right]; - - return result; -} - -- (NSPredicate *) predicateWithSubstitutionVariables: (NSDictionary *) variables -{ - NSExpression *left = - [_left _expressionWithSubstitutionVariables: variables]; - NSExpression *right = - [_right _expressionWithSubstitutionVariables: variables]; - - if (_type != NSCustomSelectorPredicateOperatorType) - return [NSComparisonPredicate predicateWithLeftExpression: left - rightExpression: right - modifier: _modifier - type: _type - options: _options]; - else - return [NSComparisonPredicate - predicateWithLeftExpression: left - rightExpression: right - customSelector: _customSelector]; -} - -- (NSExpression *) leftExpression { - return _left; -} - -- (NSExpression *) rightExpression { - return _right; -} - -- (NSPredicateOperatorType) predicateOperatorType { - return _type; -} - -- (NSComparisonPredicateModifier) comparisonPredicateModifier { - return _modifier; -} - -- (NSUInteger) options { - return _options; -} - -- (SEL) customSelector { - return _customSelector; -} - -- (BOOL) _evaluateValue: leftResult withObject: object { - id rightResult = [_right expressionValueWithObject: object context: nil]; - NSUInteger compareOptions = 0; - - BOOL selfIsNil = (leftResult == nil || [leftResult isEqual: [NSNull null]]); - BOOL objectIsNil = - (rightResult == nil || [rightResult isEqual: [NSNull null]]); - - if (selfIsNil || objectIsNil) - return (selfIsNil == objectIsNil && - _type == NSEqualToPredicateOperatorType); - - if (!(_options & NSDiacriticInsensitivePredicateOption)) - compareOptions |= NSLiteralSearch; - if (_options & NSCaseInsensitivePredicateOption) - compareOptions |= NSCaseInsensitiveSearch; - - switch (_type) { - - case NSLessThanPredicateOperatorType: - return ([leftResult compare: rightResult] == NSOrderedAscending) ? YES - : NO; - - case NSLessThanOrEqualToPredicateOperatorType: { - NSComparisonResult check = [leftResult compare: rightResult]; - - return (check == NSOrderedAscending || check == NSOrderedSame) ? YES - : NO; - } - - case NSGreaterThanPredicateOperatorType: - return ([leftResult compare: rightResult] == NSOrderedDescending) ? YES - : NO; - - case NSGreaterThanOrEqualToPredicateOperatorType: { - NSComparisonResult check = [leftResult compare: rightResult]; - - return (check == NSOrderedDescending || check == NSOrderedSame) ? YES - : NO; - } - - case NSEqualToPredicateOperatorType: - return [leftResult isEqual: rightResult]; - - case NSNotEqualToPredicateOperatorType: - return ![leftResult isEqual: rightResult]; - - case NSMatchesPredicateOperatorType: - NSUnimplementedMethod(); - return YES; - - case NSLikePredicateOperatorType: - NSUnimplementedMethod(); - return YES; - - case NSBeginsWithPredicateOperatorType: { - NSRange range = NSMakeRange(0, [rightResult length]); - return ([leftResult compare: rightResult - options: compareOptions - range: range] == NSOrderedSame) - ? YES - : NO; - } - - case NSEndsWithPredicateOperatorType: { - NSRange range = NSMakeRange([leftResult length] - [rightResult length], - [rightResult length]); - - return ([leftResult compare: rightResult - options: compareOptions - range: range] == NSOrderedSame) - ? YES - : NO; - } - - case NSInPredicateOperatorType: - return ([leftResult rangeOfString: rightResult options: compareOptions] - .location != NSNotFound) - ? YES - : NO; - - case NSCustomSelectorPredicateOperatorType: { - BOOL(*function) - (id, SEL, id) = (BOOL(*)( - id, SEL, id)) [leftResult methodForSelector: _customSelector]; - - return function(leftResult, _customSelector, rightResult); - } - default: - return NO; - } -} - -- (BOOL) evaluateWithObject: (id) object { - NSMutableArray *values = [NSMutableArray array]; - NSComparisonPredicateModifier modifier = [self comparisonPredicateModifier]; - id leftValue = [[self leftExpression] expressionValueWithObject: object - context: NULL]; - - if (modifier == NSDirectPredicateModifier) { - /* It is possible for an expression to return nil (constant or keypath - for example), comparisons consider - NSNull and nil equal (right?), so we just use NSNull here since you - can use nil in an array */ - - if (leftValue == nil) - leftValue = [NSNull null]; - - [values addObject: leftValue]; - } else { - if ([[self leftExpression] expressionType] != NSKeyPathExpressionType || - !([leftValue isKindOfClass: [NSArray class]] || - [leftValue isKindOfClass: [NSSet class]])) - [NSException raise: NSInvalidArgumentException - format: @"The left hand side for an ALL or ANY " - @"operator must " - @"be either an NSArray or an NSSet"]; - [values addObjectsFromArray: leftValue]; - } - - BOOL result = (modifier == NSAllPredicateModifier); - NSEnumerator *e = [values objectEnumerator]; - id value; - while ((value = [e nextObject]) != nil) { - BOOL eval = [self _evaluateValue: value withObject: (id) object]; - - if (eval == (modifier != NSAllPredicateModifier)) - return eval; - } - - return result; -} - -@end diff --git a/Foundation/NSPredicate/NSCompoundPredicate.h b/Foundation/NSPredicate/NSCompoundPredicate.h deleted file mode 100644 index d87eeef3..00000000 --- a/Foundation/NSPredicate/NSCompoundPredicate.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -typedef enum { - NSNotPredicateType, - NSAndPredicateType, - NSOrPredicateType -} NSCompoundPredicateType; - -@interface NSCompoundPredicate : NSPredicate { - NSCompoundPredicateType _type; - NSArray *_predicates; -} - -- initWithType: (NSCompoundPredicateType) type - subpredicates: (NSArray *) subpredicates; - -+ (NSPredicate *) notPredicateWithSubpredicate: (NSPredicate *) predicate; -+ (NSPredicate *) andPredicateWithSubpredicates: (NSArray *) predicates; -+ (NSPredicate *) orPredicateWithSubpredicates: (NSArray *) predicates; - -- (NSCompoundPredicateType) compoundPredicateType; -- (NSArray *) subpredicates; - -@end diff --git a/Foundation/NSPredicate/NSCompoundPredicate.m b/Foundation/NSPredicate/NSCompoundPredicate.m deleted file mode 100644 index 6c337f6d..00000000 --- a/Foundation/NSPredicate/NSCompoundPredicate.m +++ /dev/null @@ -1,125 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSCompoundPredicate - -- initWithType: (NSCompoundPredicateType) type - subpredicates: (NSArray *) predicates -{ - _type = type; - _predicates = [predicates retain]; - return self; -} - -- (void) dealloc { - [_predicates release]; - [super dealloc]; -} - -+ (NSPredicate *) notPredicateWithSubpredicate: (NSPredicate *) predicate { - return [[[self alloc] initWithType: NSNotPredicateType - subpredicates: [NSArray arrayWithObject: predicate]] - autorelease]; -} - -+ (NSPredicate *) andPredicateWithSubpredicates: (NSArray *) predicates { - return [[[self alloc] initWithType: NSAndPredicateType - subpredicates: predicates] autorelease]; -} - -+ (NSPredicate *) orPredicateWithSubpredicates: (NSArray *) predicates { - return [[[self alloc] initWithType: NSOrPredicateType - subpredicates: predicates] autorelease]; -} - -- (NSString *) predicateFormat { - NSMutableString *result = [NSMutableString string]; - NSMutableArray *args = [NSMutableArray array]; - NSInteger i, count = [_predicates count]; - - for (i = 0; i < count; i++) { - NSPredicate *check = [_predicates objectAtIndex: i]; - NSString *precedence = [check predicateFormat]; - - if ([check isKindOfClass: [NSCompoundPredicate class]]) - if ([(NSCompoundPredicate *) check compoundPredicateType] != _type) - precedence = [NSString stringWithFormat: @"(%@)", precedence]; - - [args addObject: precedence]; - } - - switch (_type) { - case NSNotPredicateType: - [result appendFormat: @"NOT %@", [args objectAtIndex: 0]]; - break; - - case NSAndPredicateType: - [result appendFormat: @"%@ AND %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSOrPredicateType: - [result appendFormat: @"%@ OR %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - } - - return result; -} - -- (NSCompoundPredicateType) compoundPredicateType { - return _type; -} - -- (NSArray *) subpredicates { - return _predicates; -} - -- (BOOL) evaluateWithObject: object { - BOOL result = NO; - NSInteger i, count = [_predicates count]; - - for (i = 0; i < count; i++) { - NSPredicate *predicate = [_predicates objectAtIndex: i]; - - switch (_type) { - case NSNotPredicateType: - return ![predicate evaluateWithObject: object]; - - case NSAndPredicateType: - if (i == 0) - result = [predicate evaluateWithObject: object]; - else - result = result && [predicate evaluateWithObject: object]; - break; - - case NSOrPredicateType: - if ([predicate evaluateWithObject: object]) - return YES; - break; - } - } - - return result; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression.h b/Foundation/NSPredicate/NSExpression.h deleted file mode 100644 index 7e8d5e80..00000000 --- a/Foundation/NSPredicate/NSExpression.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSArray, NSMutableDictionary, NSDictionary; - -typedef enum { - NSConstantValueExpressionType, - NSEvaluatedObjectExpressionType, - NSVariableExpressionType, - NSKeyPathExpressionType, - NSFunctionExpressionType -} NSExpressionType; - -@interface NSExpression : NSObject { - NSExpressionType _type; -} - -- initWithExpressionType: (NSExpressionType) type; - -+ (NSExpression *) expressionForConstantValue: value; -+ (NSExpression *) expressionForEvaluatedObject; -+ (NSExpression *) expressionForVariable: (NSString *) string; -+ (NSExpression *) expressionForKeyPath: (NSString *) keyPath; -+ (NSExpression *) expressionForFunction: (NSString *) name - arguments: (NSArray *) arguments; - -- (NSExpressionType) expressionType; - -- constantValue; -- (NSString *) variable; -- (NSString *) keyPath; -- (NSString *) function; -- (NSArray *) arguments; -- (NSExpression *) operand; - -- expressionValueWithObject: object context: (NSMutableDictionary *) context; - -// private -- (NSExpression *) _expressionWithSubstitutionVariables: - (NSDictionary *) variables; - -@end diff --git a/Foundation/NSPredicate/NSExpression.m b/Foundation/NSPredicate/NSExpression.m deleted file mode 100644 index 0c8f8f1b..00000000 --- a/Foundation/NSPredicate/NSExpression.m +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_constant.h" -#import "NSExpression_function.h" -#import "NSExpression_keypath.h" -#import "NSExpression_self.h" -#import "NSExpression_variable.h" -#import -#import -#import -#import -#import -#import -#import - -@implementation NSExpression - -- initWithExpressionType: (NSExpressionType) type { - _type = type; - return self; -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -+ (NSExpression *) expressionForConstantValue: value { - return [[[NSExpression_constant allocWithZone: NULL] initWithValue: value] - autorelease]; -} - -+ (NSExpression *) expressionForEvaluatedObject { - return [[[NSExpression_self allocWithZone: NULL] init] autorelease]; -} - -+ (NSExpression *) expressionForVariable: (NSString *) string { - return [[[NSExpression_variable allocWithZone: NULL] - initWithVariable: string] autorelease]; -} - -+ (NSExpression *) expressionForKeyPath: (NSString *) keyPath { - return [[[NSExpression_keypath allocWithZone: NULL] - initWithKeyPath: keyPath] autorelease]; -} - -+ (NSExpression *) expressionForFunction: (NSString *) name - arguments: (NSArray *) arguments -{ - return [[[NSExpression_function allocWithZone: NULL] - initWithName: name - arguments: arguments] autorelease]; -} - -+ (NSExpression *) expressionForKeyPathLeft: (NSExpression *) left - right: (NSExpression *) right -{ - return nil; -} - -- (NSExpressionType) expressionType { - return _type; -} - -- constantValue { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] is not of NSConstantValueExpressionType", - [self class], sel_getName(_cmd)]; - return nil; -} - -- (NSString *) variable { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] is not of NSVariableExpressionType", - [self class], sel_getName(_cmd)]; - return nil; -} - -- (NSString *) keyPath { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] is not of NSKeyPathExpressionType", - [self class], sel_getName(_cmd)]; - return nil; -} - -- (NSString *) function { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] is not of NSFunctionExpressionType", - [self class], sel_getName(_cmd)]; - return nil; -} - -- (NSArray *) arguments { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] is not of NSFunctionExpressionType", - [self class], sel_getName(_cmd)]; - return nil; -} - -- (NSExpression *) operand { - NSUnimplementedMethod(); - return nil; -} - -- expressionValueWithObject: object context: (NSMutableDictionary *) context { - NSUnimplementedMethod(); - return nil; -} - -- (NSExpression *) _expressionWithSubstitutionVariables: - (NSDictionary *) variables -{ - return self; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression_array.h b/Foundation/NSPredicate/NSExpression_array.h deleted file mode 100644 index 533fb674..00000000 --- a/Foundation/NSPredicate/NSExpression_array.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSExpression_array : NSExpression { - NSArray *_array; -} - -+ (NSExpression *) expressionForArray: (NSArray *) array; - -@end diff --git a/Foundation/NSPredicate/NSExpression_array.m b/Foundation/NSPredicate/NSExpression_array.m deleted file mode 100644 index 0c4a5305..00000000 --- a/Foundation/NSPredicate/NSExpression_array.m +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_array.h" -#import -#import - -@implementation NSExpression_array - -- initWithArray: (NSArray *) array { - _array = [array retain]; - return self; -} - -+ (NSExpression *) expressionForArray: (NSArray *) array { - return [[[self alloc] initWithArray: array] autorelease]; -} - -- (NSString *) description { - NSMutableString *result = [NSMutableString string]; - NSInteger i, count = [_array count]; - - [result appendString: @"{"]; - for (i = 0; i < count; i++) - [result appendFormat: @"%@%@", [_array objectAtIndex: i], - (i + 1 < count) ? @"," : @""]; - [result appendString: @"}"]; - return result; -} - -- (NSExpression *) _expressionWithSubstitutionVariables: - (NSDictionary *) variables -{ - NSMutableArray *array = [NSMutableArray array]; - NSInteger i, count = [_array count]; - - for (i = 0; i < count; i++) - [array addObject: [[_array objectAtIndex: i] - _expressionWithSubstitutionVariables: - variables]]; - - return [[[NSExpression_array allocWithZone: NULL] initWithArray: array] - autorelease]; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression_assignment.h b/Foundation/NSPredicate/NSExpression_assignment.h deleted file mode 100644 index b4158cf0..00000000 --- a/Foundation/NSPredicate/NSExpression_assignment.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSExpression_assignment : NSExpression { - NSExpression *_variable; - NSExpression *_expression; -} - -+ (NSExpression *) expressionWithVariable: (NSExpression *) variable - expression: (NSExpression *) expression; - -@end diff --git a/Foundation/NSPredicate/NSExpression_assignment.m b/Foundation/NSPredicate/NSExpression_assignment.m deleted file mode 100644 index 6c406bf6..00000000 --- a/Foundation/NSPredicate/NSExpression_assignment.m +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_assignment.h" -#import "NSExpression_operator.h" -#import - -@implementation NSExpression_assignment - -- initWithVariable: (NSExpression *) variable - expression: (NSExpression *) expression -{ - _variable = [variable retain]; - _expression = [expression retain]; - return self; -} - -- (void) dealloc { - [_variable release]; - [_expression release]; - [super dealloc]; -} - -+ (NSExpression *) expressionWithVariable: (NSExpression *) variable - expression: (NSExpression *) expression -{ - return [[[self allocWithZone: NULL] initWithVariable: variable - expression: expression] - autorelease]; -} - -- (NSString *) description { - NSString *pretty = [_expression description]; - - if ([_expression isKindOfClass: [NSExpression_operator class]]) - pretty = [NSString stringWithFormat: @"(%@)", pretty]; - - return [NSString stringWithFormat: @"%@ := %@", _variable, pretty]; -} - -- (NSExpression *) _expressionWithSubstitutionVariables: - (NSDictionary *) variables -{ - // FIX? - return self; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression_constant.h b/Foundation/NSPredicate/NSExpression_constant.h deleted file mode 100644 index 305bb85f..00000000 --- a/Foundation/NSPredicate/NSExpression_constant.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSExpression_constant : NSExpression { - id _value; -} - -- initWithValue: value; - -@end diff --git a/Foundation/NSPredicate/NSExpression_constant.m b/Foundation/NSPredicate/NSExpression_constant.m deleted file mode 100644 index f9aa5041..00000000 --- a/Foundation/NSPredicate/NSExpression_constant.m +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_constant.h" -#import - -@implementation NSExpression_constant - -- initWithValue: value { - [super initWithExpressionType: NSConstantValueExpressionType]; - _value = [value retain]; // not copy despite the object being "constant" - return self; -} - -- (void) dealloc { - [_value release]; - [super dealloc]; -} - -- constantValue { - return _value; -} - -- expressionValueWithObject: object context: (NSMutableDictionary *) context { - return _value; -} - -- (NSString *) description { - if (_value == nil) - return @"nil"; - - // FIX, strings should be quoted, others ? - return [_value description]; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression_function.h b/Foundation/NSPredicate/NSExpression_function.h deleted file mode 100644 index aa1a138f..00000000 --- a/Foundation/NSPredicate/NSExpression_function.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSExpression_function : NSExpression { - NSString *_name; - NSArray *_arguments; -} - -- initWithName: (NSString *) name arguments: (NSArray *) arguments; - -@end diff --git a/Foundation/NSPredicate/NSExpression_function.m b/Foundation/NSPredicate/NSExpression_function.m deleted file mode 100644 index 151fd3c7..00000000 --- a/Foundation/NSPredicate/NSExpression_function.m +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_function.h" -#import -#import -#import - -@implementation NSExpression_function - -- initWithName: (NSString *) name arguments: (NSArray *) arguments { - [super initWithExpressionType: NSFunctionExpressionType]; - _name = [name copy]; - _arguments = [arguments retain]; - return self; -} - -- (void) dealloc { - [_name release]; - [_arguments release]; - [super dealloc]; -} - -- (NSString *) function { - return _name; -} - -- (NSArray *) arguments { - return _arguments; -} - -- expressionValueWithObject: object context: (NSMutableDictionary *) context { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) description { - NSMutableString *result = [NSMutableString string]; - NSInteger i, count = [_arguments count]; - - [result appendFormat: @"%@(", _name]; - for (i = 0; i < count; i++) - [result appendFormat: @"%@%s", [_arguments objectAtIndex: i], - (i + 1 < count) ? "," : ""]; - [result appendFormat: @")"]; - - return result; -} - -- (NSExpression *) _expressionWithSubstitutionVariables: - (NSDictionary *) variables -{ - NSMutableArray *array = [NSMutableArray array]; - NSInteger i, count = [_arguments count]; - - for (i = 0; i < count; i++) - [array addObject: [[_arguments objectAtIndex: i] - _expressionWithSubstitutionVariables: - variables]]; - - return [NSExpression expressionForFunction: _name arguments: array]; -} -@end diff --git a/Foundation/NSPredicate/NSExpression_keypath.h b/Foundation/NSPredicate/NSExpression_keypath.h deleted file mode 100644 index 287d7573..00000000 --- a/Foundation/NSPredicate/NSExpression_keypath.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSExpression_keypath : NSExpression { - NSString *_keyPath; -} - -- initWithKeyPath: (NSString *) keyPath; - -@end diff --git a/Foundation/NSPredicate/NSExpression_keypath.m b/Foundation/NSPredicate/NSExpression_keypath.m deleted file mode 100644 index 631078ca..00000000 --- a/Foundation/NSPredicate/NSExpression_keypath.m +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_keypath.h" -#import -#import - -@implementation NSExpression_keypath - -- initWithKeyPath: (NSString *) keyPath { - [super initWithExpressionType: NSKeyPathExpressionType]; - _keyPath = [keyPath copy]; - return self; -} - -- (void) dealloc { - [_keyPath release]; - [super dealloc]; -} - -- (NSString *) keyPath { - return _keyPath; -} - -- expressionValueWithObject: object context: (NSMutableDictionary *) context { - return [object valueForKeyPath: _keyPath]; -} - -- (NSString *) description { - return _keyPath; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression_operator.h b/Foundation/NSPredicate/NSExpression_operator.h deleted file mode 100644 index fc5e2771..00000000 --- a/Foundation/NSPredicate/NSExpression_operator.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -typedef enum { - NSExpressionOperatorNegate = NSFunctionExpressionType + 1, - NSExpressionOperatorAdd, - NSExpressionOperatorSubtract, - NSExpressionOperatorMultiply, - NSExpressionOperatorDivide, - NSExpressionOperatorExp, - NSExpressionOperatorAssign, - NSExpressionOperatorKeypath, - NSExpressionOperatorIndex, - NSExpressionOperatorIndexFirst, - NSExpressionOperatorIndexLast, - NSExpressionOperatorIndexSize, -} NSExpressionOperator; - -@interface NSExpression_operator : NSExpression { - NSExpressionOperator _operator; - NSArray *_arguments; -} - -+ (NSExpression *) expressionForOperator: (NSExpressionOperator) operator - arguments:(NSArray *) arguments; - -- (NSArray *) arguments; - -@end diff --git a/Foundation/NSPredicate/NSExpression_operator.m b/Foundation/NSPredicate/NSExpression_operator.m deleted file mode 100644 index 8de4ebf5..00000000 --- a/Foundation/NSPredicate/NSExpression_operator.m +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_operator.h" -#import -#import - -@implementation NSExpression_operator - -- initWithOperator: (NSExpressionOperator) operator - arguments:(NSArray *) arguments -{ - _operator = operator; - _arguments = [arguments retain]; - return self; -} - -+ (NSExpression *) expressionForOperator: (NSExpressionOperator) operator - arguments:(NSArray *) arguments -{ - return [[[self alloc] initWithOperator:operator arguments:arguments] autorelease]; -} - -- (NSArray *) arguments { - return _arguments; -} - -- (NSString *) description { - NSMutableString *result = [NSMutableString string]; - NSMutableArray *args = [NSMutableArray array]; - NSInteger i, count = [_arguments count]; - - for (i = 0; i < count; i++) { - NSExpression *check = [_arguments objectAtIndex: i]; - NSString *precedence = [check description]; - - if ([check isKindOfClass: [NSExpression_operator class]]) - precedence = [NSString stringWithFormat: @"(%@)", precedence]; - - [args addObject: precedence]; - } - - switch (_operator) { - - case NSExpressionOperatorNegate: - [result appendFormat: @"-%@", [args objectAtIndex: 0]]; - break; - - case NSExpressionOperatorAdd: - [result appendFormat: @"%@ + %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorSubtract: - [result appendFormat: @"%@ - %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorMultiply: - [result appendFormat: @"%@ * %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorDivide: - [result appendFormat: @"%@ / %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorExp: - [result appendFormat: @"%@ ** %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorAssign: - [result appendFormat: @"%@ := %@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorKeypath: - [result appendFormat: @"%@.%@", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorIndex: - [result appendFormat: @"%@[%@]", [args objectAtIndex: 0], - [args objectAtIndex: 1]]; - break; - - case NSExpressionOperatorIndexFirst: - [result appendFormat: @"%@[FIRST]", [args objectAtIndex: 0]]; - break; - - case NSExpressionOperatorIndexLast: - [result appendFormat: @"%@[LAST]", [args objectAtIndex: 0]]; - break; - - case NSExpressionOperatorIndexSize: - [result appendFormat: @"%@[SIZE]", [args objectAtIndex: 0]]; - break; - } - - return result; -} - -- (NSExpression *) _expressionWithSubstitutionVariables: - (NSDictionary *) variables -{ - NSMutableArray *array = [NSMutableArray array]; - NSInteger i, count = [_arguments count]; - - for (i = 0; i < count; i++) - [array addObject: [[_arguments objectAtIndex: i] - _expressionWithSubstitutionVariables: - variables]]; - - return [NSExpression_operator expressionForOperator: _operator - arguments: array]; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression_self.h b/Foundation/NSPredicate/NSExpression_self.h deleted file mode 100644 index e1c5b4eb..00000000 --- a/Foundation/NSPredicate/NSExpression_self.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSExpression_self : NSExpression - -@end diff --git a/Foundation/NSPredicate/NSExpression_self.m b/Foundation/NSPredicate/NSExpression_self.m deleted file mode 100644 index 98302253..00000000 --- a/Foundation/NSPredicate/NSExpression_self.m +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_self.h" -#import - -@implementation NSExpression_self - -- init { - [super initWithExpressionType: NSEvaluatedObjectExpressionType]; - return self; -} - -- expressionValueWithObject: object context: (NSMutableDictionary *) context { - return object; -} - -- (NSString *) description { - return @"SELF"; -} - -@end diff --git a/Foundation/NSPredicate/NSExpression_variable.h b/Foundation/NSPredicate/NSExpression_variable.h deleted file mode 100644 index 99aa07a3..00000000 --- a/Foundation/NSPredicate/NSExpression_variable.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSExpression_variable : NSExpression { - NSString *_name; -} - -- initWithVariable: (NSString *) name; - -@end diff --git a/Foundation/NSPredicate/NSExpression_variable.m b/Foundation/NSPredicate/NSExpression_variable.m deleted file mode 100644 index 00accd8f..00000000 --- a/Foundation/NSPredicate/NSExpression_variable.m +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_variable.h" -#import -#import -#import - -@implementation NSExpression_variable - -- initWithVariable: (NSString *) name { - [super initWithExpressionType: NSVariableExpressionType]; - _name = [name copy]; - return self; -} - -- (void) dealloc { - [_name release]; - [super dealloc]; -} - -- (NSString *) variable { - return _name; -} - -- expressionValueWithObject: object context: (NSMutableDictionary *) context { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"$%@", _name]; -} - -- (NSExpression *) _expressionWithSubstitutionVariables: - (NSDictionary *) variables -{ - id constant = [variables objectForKey: _name]; - - return (constant == nil) - ? (NSExpression *) self - : [NSExpression expressionForConstantValue: constant]; -} - -@end diff --git a/Foundation/NSPredicate/NSPredicate.h b/Foundation/NSPredicate/NSPredicate.h deleted file mode 100644 index 4be7b48f..00000000 --- a/Foundation/NSPredicate/NSPredicate.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSArray, NSDictionary; - -@interface NSPredicate : NSObject { - NSString *_format; - NSPredicate *_predicate; -} - -+ (NSPredicate *) predicateWithFormat: (NSString *) format - arguments: (va_list) arguments; -+ (NSPredicate *) predicateWithFormat: (NSString *) format, ...; -+ (NSPredicate *) predicateWithFormat: (NSString *) format - argumentArray: (NSArray *) arguments; -+ (NSPredicate *) predicateWithValue: (BOOL) value; - -- (NSString *) predicateFormat; - -- (NSPredicate *) predicateWithSubstitutionVariables: - (NSDictionary *) variables; - -- (BOOL) evaluateWithObject: object; - -@end diff --git a/Foundation/NSPredicate/NSPredicate.m b/Foundation/NSPredicate/NSPredicate.m deleted file mode 100644 index 020d5212..00000000 --- a/Foundation/NSPredicate/NSPredicate.m +++ /dev/null @@ -1,1716 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSExpression_array.h" -#import "NSExpression_assignment.h" -#import "NSExpression_operator.h" -#import "NSPredicate_BOOL.h" -#import -#import -#import -#import -#import -#import -#import -#import -#include - -#define LF 10 -#define FF 12 -#define CR 13 - -// FIX, need to add a selector token type for function calls which can be -// selector or identifier - -enum { - predTokenEOF = -1, - - predTokenLeftParen = '(', - predTokenRightParen = ')', - predTokenLeftBracket = '[', - predTokenRightBracket = ']', - predTokenLeftBrace = '{', - predTokenRightBrace = '}', - - predTokenLessThan = '<', - predTokenGreaterThan = '>', - - predTokenEqual = '=', - predTokenPercent = '%', - predTokenDollar = '$', - predTokenAtSign = '@', - predTokenPeriod = '.', - predTokenComma = ',', - predTokenPlus = '+', - predTokenMinus = '-', - predTokenAsterisk = '*', - predTokenSlash = '/', - predTokenExclamation = '!', - - predToken_AND = 128, - predToken_OR, - predToken_IN, - predToken_NOT, - predToken_ALL, - predToken_ANY, - predToken_NONE, - predToken_LIKE, - predToken_CASEINSENSITIVE, - predToken_CI, - predToken_MATCHES, - predToken_CONTAINS, - predToken_BEGINSWITH, - predToken_ENDSWITH, - predToken_BETWEEN, - predToken_NULL, - predToken_SELF, - predToken_TRUE, - predToken_FALSE, - predToken_FIRST, - predToken_LAST, - predToken_SIZE, - predToken_ANYKEY, - predToken_SUBQUERY, - predToken_CAST, - predToken_TRUEPREDICATE, - predToken_FALSEPREDICATE, - - predTokenIdentifier, - predTokenString, - predTokenReservedWord, - predTokenNumeric, - - predTokenNotEqual, - predTokenLessThanOrEqual, - predTokenGreaterThanOrEqual, - predTokenColonEqual, - predTokenAsteriskAsterisk, -}; - -typedef struct { - NSString *original; - unichar *unicode; - NSInteger length; - NSInteger position; - NSInteger nextArgument; - union { - va_list arguments; - NSArray *argumentArray; - }; -} predicateScanner; - -static void raiseError(predicateScanner *scanner, NSString *format, ...) { - NSString *reason; - va_list arguments; - - va_start(arguments, format); - - reason = [[[NSString alloc] initWithFormat: format - arguments: arguments] autorelease]; - va_end(arguments); - - [NSException - raise: NSInvalidArgumentException - format: @"Unable to parse the format string \"%@\", reason = %@", - scanner->original, reason]; -} - -static int classifyToken(NSString *token) { - struct { - NSString *name; - int type; - } table[] = {{@"AND", predToken_AND}, - {@"OR", predToken_OR}, - {@"IN", predToken_IN}, - {@"NOT", predToken_NOT}, - {@"ALL", predToken_ALL}, - {@"ANY", predToken_ANY}, - {@"SOME", predToken_ANY}, - {@"NONE", predToken_NONE}, - {@"LIKE", predToken_LIKE}, - {@"CASEINSENSITIVE", predToken_CASEINSENSITIVE}, - {@"CI", predToken_CI}, - {@"MATCHES", predToken_MATCHES}, - {@"CONTAINS", predToken_CONTAINS}, - {@"BEGINSWITH", predToken_BEGINSWITH}, - {@"ENDSWITH", predToken_ENDSWITH}, - {@"BETWEEN", predToken_BETWEEN}, - {@"NULL", predToken_NULL}, - {@"NIL", predToken_NULL}, - {@"SELF", predToken_SELF}, - {@"TRUE", predToken_TRUE}, - {@"YES", predToken_TRUE}, - {@"FALSE", predToken_FALSE}, - {@"NO", predToken_FALSE}, - {@"FIRST", predToken_FIRST}, - {@"LAST", predToken_LAST}, - {@"SIZE", predToken_SIZE}, - {@"ANYKEY", predToken_ANYKEY}, - {@"SUBQUERY", predToken_SUBQUERY}, - {@"CAST", predToken_CAST}, - {@"TRUEPREDICATE", predToken_TRUEPREDICATE}, - {@"FALSEPREDICATE", predToken_FALSEPREDICATE}, - {nil, 0}}; - int i; - - token = [token uppercaseString]; - - for (i = 0; table[i].name != nil; i++) - if ([table[i].name isEqualToString: token]) - return table[i].type; - - return predTokenIdentifier; -} - -/* - BNF mentions octal, hex and unicode escapes for identifiers(??) doesn't appear - to be present - */ - -static BOOL codeIsHex(unichar code, unichar *hexChar) { - if (code >= '0' && code <= '9') { - *hexChar = *hexChar * 16 + (code - '0'); - return YES; - } else if (code >= 'a' && code <= 'f') { - *hexChar = *hexChar * 16 + (10 + code - 'a'); - return YES; - } else if (code >= 'A' && code <= 'F') { - *hexChar = *hexChar * 16 + (10 + code - 'A'); - return YES; - } - return NO; -} - -static int scanToken(predicateScanner *scanner, id *token) { - int currentSign = 1, currentInt = 0; - double currentReal = 0, currentFraction = 0, exponentSign = 1, - currentExponent = 0; - BOOL identifyReservedWords = YES; - NSInteger tokenLocation = 0; - NSMutableString *buffer = nil; - unichar hexChar = 0; - auto enum { - STATE_SCANNING, - STATE_IDENTIFIER, - STATE_ESCAPED_IDENTIFIER, - STATE_ZERO, - STATE_HEX, - STATE_INTEGER, - STATE_REAL, - STATE_EXPONENT, - STATE_HEX_SEQUENCE, - STATE_OCTAL_SEQUENCE, - STATE_BINARY_SEQUENCE, - - STATE_STRING_DOUBLE, - STATE_STRING_DOUBLE_BUFFERED, - STATE_STRING_DOUBLE_ESCAPE, - STATE_STRING_DOUBLE_HEX, - STATE_STRING_DOUBLE_NIBBLE, - - STATE_STRING_SINGLE, - STATE_STRING_SINGLE_BUFFERED, - STATE_STRING_SINGLE_ESCAPE, - STATE_STRING_SINGLE_HEX, - STATE_STRING_SINGLE_NIBBLE, - - STATE_EQUALS, - STATE_EXCLAMATION, - - STATE_LESSTHAN, - STATE_GREATERTHAN, - STATE_COLON, - STATE_AMPERSAND, - STATE_BAR, - STATE_ASTERISK, - } state = STATE_SCANNING; - - *token = nil; - - for (; scanner->position <= scanner->length; scanner->position++) { - unichar code = (scanner->position < scanner->length) - ? scanner->unicode[scanner->position] - : 0xFFFF; - - switch (state) { - - case STATE_SCANNING: - switch (code) { - - case ' ': - case CR: - case FF: - case LF: - case '\t': - break; - // clang-format off - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': - case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': - case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': - case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': - case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': - case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': - case '_': - // clang-format on - state = STATE_IDENTIFIER; - tokenLocation = scanner->position; - break; - - case '0': - state = STATE_ZERO; - break; - - // clang-format off - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - // clang-format on - state = STATE_INTEGER; - currentSign = 1; - currentInt = code - '0'; - break; - - case '(': - case ')': - case '[': - case ']': - case '{': - case '}': - case '%': - case '$': - case '@': - case '.': - case '+': - case '-': - case '/': - scanner->position++; - return code; - - case '=': - state = STATE_EQUALS; - break; - - case '!': - state = STATE_EXCLAMATION; - break; - - case '<': - state = STATE_LESSTHAN; - break; - - case '>': - state = STATE_GREATERTHAN; - break; - - case ':': - state = STATE_COLON; - break; - - case '&': - state = STATE_AMPERSAND; - break; - - case '|': - state = STATE_BAR; - break; - - case '*': - state = STATE_ASTERISK; - break; - - case '#': - state = STATE_ESCAPED_IDENTIFIER; - break; - - case '\"': - state = STATE_STRING_DOUBLE; - tokenLocation = scanner->position + 1; - break; - - case '\'': - state = STATE_STRING_SINGLE; - tokenLocation = scanner->position + 1; - break; - } - break; - - case STATE_IDENTIFIER: - switch (code) { - // clang-format off - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': - case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': - case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': - case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': - case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': - case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': - case '_': - case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': - // clang-format on - state = STATE_IDENTIFIER; - break; - - default: - *token = [NSString - stringWithCharacters: scanner->unicode + tokenLocation - length: (scanner->position - - tokenLocation)]; - return identifyReservedWords ? classifyToken(*token) - : predTokenIdentifier; - } - break; - - case STATE_ESCAPED_IDENTIFIER: - switch (code) { - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': - case '_': - state = STATE_IDENTIFIER; - identifyReservedWords = NO; - tokenLocation = scanner->position; - break; - - default: - raiseError(scanner, @"Expecting identifier after #"); - break; - } - break; - - case STATE_ZERO: - if (code == 'x') { - state = STATE_HEX; - currentInt = 0; - } else { - scanner->position--; - state = STATE_INTEGER; - currentSign = 1; - currentInt = 0; - } - break; - - case STATE_HEX: - if (code >= '0' && code <= '9') - currentInt = currentInt * 16 + (code - '0'); - else if (code >= 'A' && code <= 'F') - currentInt = currentInt * 16 + (10 + code - 'A'); - else if (code >= 'a' && code <= 'a') - currentInt = currentInt * 16 + (10 + code - 'a'); - else { - *token = [NSNumber numberWithInt: currentInt]; - return predTokenNumeric; - } - break; - - case STATE_INTEGER: - if (code == '.') { - state = STATE_REAL; - currentReal = currentInt; - currentFraction = 0.1; - } else if (code == 'e' || code == 'E') - state = STATE_EXPONENT; - else if (code >= '0' && code <= '9') - currentInt = currentInt * 10 + code - '0'; - else if (code == 'x') - state = STATE_HEX_SEQUENCE; - else if (code == 'o') - state = STATE_OCTAL_SEQUENCE; - else if (code == 'b') - state = STATE_BINARY_SEQUENCE; - else { - *token = [NSNumber numberWithInt: currentSign * currentInt]; - return predTokenNumeric; - } - break; - - case STATE_REAL: - if (code >= '0' && code <= '9') { - currentReal += currentFraction * (code - '0'); - currentFraction *= 0.1; - } else if (code == 'e' || code == 'E') { - state = STATE_EXPONENT; - } else { - *token = [NSNumber numberWithDouble: currentSign * currentReal]; - return predTokenNumeric; - } - break; - - case STATE_EXPONENT: - if (code == '+') - break; - if (code == '-') - exponentSign = -1; - else if (code >= '0' && code <= '9') - currentExponent = currentExponent * 10 + (code - '0'); - else { - *token = [NSNumber - numberWithDouble: currentSign * currentReal * - pow(10, - exponentSign * currentExponent)]; - return predTokenNumeric; - } - break; - - case STATE_HEX_SEQUENCE: - NSUnimplementedFunction(); - break; - - case STATE_OCTAL_SEQUENCE: - NSUnimplementedFunction(); - break; - - case STATE_BINARY_SEQUENCE: - NSUnimplementedFunction(); - break; - - case STATE_STRING_DOUBLE: - if (code == '\\') { - state = STATE_STRING_DOUBLE_ESCAPE; - buffer = [NSMutableString - stringWithCharacters: scanner->unicode + tokenLocation - length: (scanner->position - - tokenLocation)]; - } else if (code == '\"') { - *token = [NSString - stringWithCharacters: scanner->unicode + tokenLocation - length: (scanner->position - - tokenLocation)]; - scanner->position++; - return predTokenString; - } - break; - - case STATE_STRING_DOUBLE_BUFFERED: - if (code == '\\') - state = STATE_STRING_DOUBLE_ESCAPE; - else if (code == '\"') { - *token = buffer; - scanner->position++; - return predTokenString; - } else - [buffer appendFormat: @"%C", code]; - break; - - case STATE_STRING_DOUBLE_ESCAPE: - if (code == '\"') { - [buffer appendFormat: @"%C", code]; - state = STATE_STRING_DOUBLE_BUFFERED; - } else if (code == 'x' || code == 'X') { - state = STATE_STRING_DOUBLE_HEX; - hexChar = 0; - } - break; - - case STATE_STRING_DOUBLE_HEX: - if (codeIsHex(code, &hexChar)) - state = STATE_STRING_DOUBLE_NIBBLE; - else { - scanner->position--; - [buffer appendFormat: @"x"]; - state = STATE_STRING_DOUBLE_BUFFERED; - } - break; - - case STATE_STRING_DOUBLE_NIBBLE: - if (codeIsHex(code, &hexChar)) { - [buffer appendFormat: @"%C", hexChar]; - state = STATE_STRING_DOUBLE_BUFFERED; - } else { - scanner->position--; - [buffer appendFormat: @"x%C", - scanner->unicode[scanner->position]]; - state = STATE_STRING_DOUBLE_BUFFERED; - } - break; - - case STATE_STRING_SINGLE: - if (code == '\\') { - state = STATE_STRING_SINGLE_ESCAPE; - buffer = [NSMutableString - stringWithCharacters: scanner->unicode + tokenLocation - length: (scanner->position - - tokenLocation)]; - } else if (code == '\'') { - *token = [NSString - stringWithCharacters: scanner->unicode + tokenLocation - length: (scanner->position - - tokenLocation)]; - scanner->position++; - return predTokenString; - } - break; - - case STATE_STRING_SINGLE_BUFFERED: - if (code == '\\') - state = STATE_STRING_SINGLE_ESCAPE; - else if (code == '\'') { - *token = buffer; - scanner->position++; - return predTokenString; - } else - [buffer appendFormat: @"%C", code]; - break; - - case STATE_STRING_SINGLE_ESCAPE: - if (code == '\"') { - [buffer appendFormat: @"%C", code]; - state = STATE_STRING_SINGLE_BUFFERED; - } else if (code == 'x' || code == 'X') { - state = STATE_STRING_SINGLE_HEX; - hexChar = 0; - } - break; - - case STATE_STRING_SINGLE_HEX: - if (codeIsHex(code, &hexChar)) - state = STATE_STRING_SINGLE_NIBBLE; - else { - [buffer appendFormat: @"x"]; - scanner->position--; - state = STATE_STRING_SINGLE_BUFFERED; - } - break; - - case STATE_STRING_SINGLE_NIBBLE: - if (codeIsHex(code, &hexChar)) { - [buffer appendFormat: @"%C", hexChar]; - state = STATE_STRING_SINGLE_BUFFERED; - } else { - scanner->position--; - [buffer appendFormat: @"x%C", - scanner->unicode[scanner->position]]; - state = STATE_STRING_SINGLE_BUFFERED; - } - break; - - case STATE_EQUALS: - if (code == '=') { - scanner->position++; - return predTokenEqual; - } - if (code == '<') { - scanner->position++; - return predTokenGreaterThanOrEqual; - } - if (code == '>') { - scanner->position++; - return predTokenLessThanOrEqual; - } - return predTokenEqual; - - case STATE_EXCLAMATION: - if (code == '=') { - scanner->position++; - return predTokenNotEqual; - } - return predTokenExclamation; - - case STATE_LESSTHAN: - if (code == '=') { - scanner->position++; - return predTokenLessThanOrEqual; - } - if (code == '>') { - scanner->position++; - return predTokenNotEqual; - } - return predTokenLessThan; - - case STATE_GREATERTHAN: - if (code == '=') { - scanner->position++; - return predTokenGreaterThanOrEqual; - } - return predTokenGreaterThan; - - case STATE_COLON: - if (code == '=') { - scanner->position++; - return predTokenColonEqual; - } - raiseError(scanner, @"Expecting = after :"); - break; - - case STATE_AMPERSAND: - if (code == '&') { - scanner->position++; - return predToken_AND; - } - raiseError(scanner, @"Expecting & after &"); - break; - - case STATE_BAR: - if (code == '|') { - scanner->position++; - return predToken_OR; - } - raiseError(scanner, @"Expecting | after |"); - break; - - case STATE_ASTERISK: - if (code == '*') { - scanner->position++; - return predTokenAsteriskAsterisk; - } - return predTokenAsterisk; - } - } - return predTokenEOF; -} - -static int peekTokenType(predicateScanner *scanner) { - NSInteger save = scanner->position; - id token; - int tokenType; - - tokenType = scanToken(scanner, &token); - scanner->position = save; - - return tokenType; -} - -static void skipToken(predicateScanner *scanner) { - id token; - - scanToken(scanner, &token); -} - -static void expectTokenType(predicateScanner *scanner, int expect) { - id token; - int tokenType; - - if ((tokenType = scanToken(scanner, &token)) != expect) - raiseError(scanner, @"Expecting token type %d, got %d", expect, - tokenType); -} - -static NSExpression *nextExpression(predicateScanner *scanner); -static NSPredicate *nextPredicate(predicateScanner *scanner); - -static NSExpression *nextFunctionExpression(predicateScanner *scanner, - NSString *name) -{ - NSMutableArray *arguments = [NSMutableArray array]; - - while (peekTokenType(scanner) != predTokenRightParen) { - if ([arguments count] > 0) { - if (peekTokenType(scanner) == predTokenComma) - skipToken(scanner); - } - - [arguments addObject: nextExpression(scanner)]; - } - skipToken(scanner); - - return [NSExpression expressionForFunction: name arguments: arguments]; -} - -static id nextArgumentFromArray(predicateScanner *scanner) { - if (scanner->nextArgument >= [scanner->argumentArray count]) - raiseError(scanner, - @"Insufficient arguments for conversion characters " - @"specified in " - @"format string"); // FIX, the string is actually the reason - - return [scanner->argumentArray objectAtIndex: scanner->nextArgument++]; -} - -static id objectArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return va_arg(scanner->arguments, id); - else - return nextArgumentFromArray(scanner); -} - -static id cStringArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSString stringWithCString: va_arg(scanner->arguments, char *)]; - else - return nextArgumentFromArray(scanner); -} - -static id charArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithChar: va_arg(scanner->arguments, int)]; - else - return nextArgumentFromArray(scanner); -} - -static id shortArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithShort: va_arg(scanner->arguments, int)]; - else - return nextArgumentFromArray(scanner); -} - -static id unsignedShortArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber - numberWithUnsignedShort: va_arg(scanner->arguments, int)]; - else - return nextArgumentFromArray(scanner); -} - -static id unicharArgument(predicateScanner *scanner) { - return unsignedShortArgument(scanner); -} - -static id intArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithInt: va_arg(scanner->arguments, int)]; - else - return nextArgumentFromArray(scanner); -} - -static id longArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithLong: va_arg(scanner->arguments, long)]; - else - return nextArgumentFromArray(scanner); -} - -static id longLongArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber - numberWithLongLong: va_arg(scanner->arguments, long long)]; - else - return nextArgumentFromArray(scanner); -} - -static id unsignedIntArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithUnsignedInt: va_arg(scanner->arguments, - unsigned int)]; - else - return nextArgumentFromArray(scanner); -} - -static id unsignedLongArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithUnsignedLong: va_arg(scanner->arguments, - unsigned long)]; - else - return nextArgumentFromArray(scanner); -} - -static id unsignedLongLongArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber - numberWithUnsignedLongLong: va_arg(scanner->arguments, - unsigned long long)]; - else - return nextArgumentFromArray(scanner); -} - -static id floatArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithDouble: va_arg(scanner->arguments, double)]; - else - return nextArgumentFromArray(scanner); -} - -static id doubleArgument(predicateScanner *scanner) { - if (scanner->nextArgument < 0) - return [NSNumber numberWithDouble: va_arg(scanner->arguments, double)]; - else - return nextArgumentFromArray(scanner); -} - -static id longFloatArgument(predicateScanner *scanner) { - return doubleArgument(scanner); -} - -static id longDoubleArgument(predicateScanner *scanner) { - return doubleArgument(scanner); -} - -static NSExpression *nextFormatCharacter(predicateScanner *scanner) { - enum { - STATE_MODIFIER, - STATE_CONVERSION, - } state = STATE_MODIFIER; - unichar modifier = '\0'; - - for (; scanner->position <= scanner->length;) { - unichar unicode = (scanner->position < scanner->length) - ? scanner->unicode[scanner->position++] - : 0xFFFF; - - switch (state) { - - case STATE_MODIFIER: - switch (unicode) { - - case 'h': - case 'l': - case 'q': - modifier = unicode; - break; - - default: - scanner->position--; - state = STATE_CONVERSION; - break; - } - break; - - case STATE_CONVERSION: - - switch (unicode) { - - case 'd': - case 'i': { - id value; - - if (modifier == 'h') - value = shortArgument(scanner); - else if (modifier == 'l') - value = longArgument(scanner); - else if (modifier == 'q') - value = longLongArgument(scanner); - else - value = intArgument(scanner); - - return [NSExpression expressionForConstantValue: value]; - } break; - - case 'o': - case 'x': - case 'X': - case 'u': { - id value; - - if (modifier == 'h') - value = unsignedShortArgument(scanner); - else if (modifier == 'l') - value = unsignedLongArgument(scanner); - else if (modifier == 'q') - value = unsignedLongLongArgument(scanner); - else - value = unsignedIntArgument(scanner); - - return [NSExpression expressionForConstantValue: value]; - } break; - - case 'c': - return [NSExpression - expressionForConstantValue: charArgument(scanner)]; - - case 'C': - return [NSExpression - expressionForConstantValue: unicharArgument(scanner)]; - - case 's': - return [NSExpression - expressionForConstantValue: cStringArgument(scanner)]; - break; - - case 'f': { - id value; - - if (modifier == 'l') - value = longFloatArgument(scanner); - else - value = floatArgument(scanner); - - return [NSExpression expressionForConstantValue: value]; - } break; - - case 'e': - case 'E': - case 'g': - case 'G': { - id value; - - if (modifier == 'l') - value = longDoubleArgument(scanner); - else - value = doubleArgument(scanner); - - return [NSExpression expressionForConstantValue: value]; - } break; - - case 'p': - return [NSExpression - expressionForConstantValue: objectArgument(scanner)]; - - case '@': - return [NSExpression - expressionForConstantValue: objectArgument(scanner)]; - - case '%': - return [NSExpression expressionForConstantValue: @"%"]; - - case 'K': - return [NSExpression - expressionForKeyPath: objectArgument(scanner)]; - - default: - raiseError(scanner, @"Invalid format character %C", unicode); - break; - } - } - } - return nil; -} - -static NSExpression *nextPrimaryExpression(predicateScanner *scanner) { - id token; - - switch (peekTokenType(scanner)) { - - case predTokenEOF: - raiseError(scanner, @"Encountered EOF while parsing expression"); - break; - - case predTokenLeftParen: { - auto NSExpression *result; - - skipToken(scanner); - - result = nextExpression(scanner); - - expectTokenType(scanner, predTokenRightParen); - - return result; - } - - case predTokenIdentifier: - scanToken(scanner, &token); - - if (peekTokenType(scanner) != predTokenLeftParen) - return [NSExpression expressionForKeyPath: token]; - - return nextFunctionExpression(scanner, token); - - case predTokenAtSign: - skipToken(scanner); - if (scanToken(scanner, &token) != predTokenIdentifier) - raiseError(scanner, - @"Expecting identifer after @ for keypath expression"); - - return [NSExpression expressionForKeyPath: token]; - - case predTokenString: - scanToken(scanner, &token); - return [NSExpression expressionForConstantValue: token]; - - case predTokenNumeric: - scanToken(scanner, &token); - return [NSExpression expressionForConstantValue: token]; - - case predTokenPercent: - skipToken(scanner); - return nextFormatCharacter(scanner); - - case predTokenDollar: { - id identifier; - int identifierType; - - skipToken(scanner); - - if ((identifierType = scanToken(scanner, &identifier)) != - predTokenIdentifier) - raiseError(scanner, @"Expecting identifier, got %@", identifier); - - return [NSExpression expressionForVariable: identifier]; - } break; - - case predToken_NULL: - skipToken(scanner); - return [NSExpression expressionForConstantValue: [NSNull null]]; - - case predToken_TRUE: - skipToken(scanner); - return [NSExpression - expressionForConstantValue: [NSNumber numberWithBool: YES]]; - - case predToken_FALSE: - skipToken(scanner); - return [NSExpression - expressionForConstantValue: [NSNumber numberWithBool: NO]]; - - case predToken_SELF: - skipToken(scanner); - return [NSExpression expressionForEvaluatedObject]; - - case predTokenLeftBrace: { - NSMutableArray *aggregate = [NSMutableArray array]; - - skipToken(scanner); - - while (peekTokenType(scanner) != predTokenRightBrace) { - if ([aggregate count] > 0) { - if (peekTokenType(scanner) == predTokenComma) - skipToken(scanner); - } - - [aggregate addObject: nextExpression(scanner)]; - } - skipToken(scanner); - - return [NSExpression_array expressionForArray: aggregate]; - } - } - - return nil; -} - -static NSExpression *nextKeypathExpression(predicateScanner *scanner) { - NSExpression *left = nextPrimaryExpression(scanner), *right; - - do { - switch (peekTokenType(scanner)) { - - case predTokenPeriod: - skipToken(scanner); - if ((right = nextPrimaryExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after ."); - - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorKeypath - arguments: [NSArray arrayWithObjects: left, - right, - nil]]; - break; - - case predTokenLeftBracket: - skipToken(scanner); - - switch (peekTokenType(scanner)) { - - case predToken_FIRST: - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorIndexFirst - arguments: [NSArray arrayWithObject: left]]; - break; - - case predToken_LAST: - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorIndexLast - arguments: [NSArray arrayWithObject: left]]; - break; - - case predToken_SIZE: - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorIndexSize - arguments: [NSArray arrayWithObject: left]]; - break; - - default: - if ((right = nextExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after ["); - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorIndex - arguments: [NSArray arrayWithObjects: left, - right, - nil]]; - break; - } - expectTokenType(scanner, predTokenRightBracket); - break; - - default: - return left; - } - - } while (YES); -} - -static NSExpression *nextUnaryExpression(predicateScanner *scanner) { - if (peekTokenType(scanner) == predTokenMinus) { - NSExpression *right; - - skipToken(scanner); - if ((right = nextUnaryExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after -"); - - // coalesce -'s - if ([right isKindOfClass: [NSExpression_operator class]]) { - if ([(NSExpression_operator *) right expressionType] == - (int) NSExpressionOperatorNegate) - return [[(NSExpression_operator *) right arguments] - objectAtIndex: 0]; - } - return [NSExpression_operator - expressionForOperator: NSExpressionOperatorNegate - arguments: [NSArray arrayWithObject: right]]; - } - - return nextKeypathExpression(scanner); -} - -static NSExpression *nextExponentiationExpression(predicateScanner *scanner) { - NSExpression *left = nextUnaryExpression(scanner), *right; - - do { - switch (peekTokenType(scanner)) { - - case predTokenAsteriskAsterisk: - skipToken(scanner); - if ((right = nextUnaryExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after **"); - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorExp - arguments: [NSArray arrayWithObjects: left, - right, - nil]]; - break; - - default: - return left; - } - - } while (YES); -} - -static NSExpression *nextMultiplicativeExpression(predicateScanner *scanner) { - NSExpression *left = nextExponentiationExpression(scanner), *right; - - do { - switch (peekTokenType(scanner)) { - - case predTokenAsterisk: - skipToken(scanner); - if ((right = nextExponentiationExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after *"); - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorMultiply - arguments: [NSArray arrayWithObjects: left, - right, - nil]]; - break; - - case predTokenSlash: - skipToken(scanner); - if ((right = nextExponentiationExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after /"); - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorDivide - arguments: [NSArray arrayWithObjects: left, - right, - nil]]; - break; - - default: - return left; - } - - } while (YES); -} - -static NSExpression *nextAdditiveExpression(predicateScanner *scanner) { - NSExpression *left = nextMultiplicativeExpression(scanner), *right; - - do { - switch (peekTokenType(scanner)) { - - case predTokenPlus: - skipToken(scanner); - if ((right = nextMultiplicativeExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after +"); - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorAdd - arguments: [NSArray arrayWithObjects: left, - right, - nil]]; - break; - - case predTokenMinus: - skipToken(scanner); - if ((right = nextMultiplicativeExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after -"); - left = [NSExpression_operator - expressionForOperator: NSExpressionOperatorSubtract - arguments: [NSArray arrayWithObjects: left, - right, - nil]]; - break; - - default: - return left; - } - - } while (YES); -} - -static NSExpression *nextAssignmentExpression(predicateScanner *scanner) { - NSExpression *left = nextAdditiveExpression(scanner), *right; - - do { - switch (peekTokenType(scanner)) { - - case predTokenColonEqual: - skipToken(scanner); - if ((right = nextAdditiveExpression(scanner)) == nil) - raiseError(scanner, @"Expecting expression after :="); - // FIX, verify left expression is just a variable - - return [NSExpression_assignment expressionWithVariable: left - expression: right]; - - default: - return left; - } - - } while (YES); -} - -static NSExpression *nextExpression(predicateScanner *scanner) { - return nextAssignmentExpression(scanner); -} - -static void nextOperationOption(predicateScanner *scanner, unsigned *options) { - id token; - int tokenType; - - if (peekTokenType(scanner) != predTokenLeftBracket) - return; - skipToken(scanner); - - if ((tokenType = scanToken(scanner, &token)) != predTokenIdentifier) - raiseError(scanner, @"Expecting identifier in options"); - - if ([token isEqualToString: @"c"]) - *options = NSCaseInsensitivePredicateOption; - else if ([token isEqualToString: @"d"]) - *options = NSDiacriticInsensitivePredicateOption; - else if ([token isEqualToString: @"cd"]) - *options = NSCaseInsensitivePredicateOption | - NSDiacriticInsensitivePredicateOption; - else { - raiseError(scanner, @"Expecting c, d, or cd in string options"); - } - - expectTokenType(scanner, predTokenRightBracket); -} - -static BOOL nextOperation(predicateScanner *scanner, - NSPredicateOperatorType *type, unsigned *options) -{ - *options = 0; - - switch (peekTokenType(scanner)) { - - case predTokenEqual: - skipToken(scanner); - *type = NSEqualToPredicateOperatorType; - return YES; - - case predTokenNotEqual: - skipToken(scanner); - *type = NSNotEqualToPredicateOperatorType; - return YES; - - case predTokenLessThan: - skipToken(scanner); - *type = NSLessThanPredicateOperatorType; - return YES; - - case predTokenGreaterThan: - skipToken(scanner); - *type = NSGreaterThanPredicateOperatorType; - return YES; - - case predTokenLessThanOrEqual: - skipToken(scanner); - *type = NSLessThanOrEqualToPredicateOperatorType; - return YES; - - case predTokenGreaterThanOrEqual: - skipToken(scanner); - *type = NSGreaterThanOrEqualToPredicateOperatorType; - return YES; - - case predToken_IN: - skipToken(scanner); - *type = NSInPredicateOperatorType; - nextOperationOption(scanner, options); - return YES; - - case predToken_BEGINSWITH: - skipToken(scanner); - *type = NSBeginsWithPredicateOperatorType; - nextOperationOption(scanner, options); - return YES; - - case predToken_ENDSWITH: - skipToken(scanner); - *type = NSEndsWithPredicateOperatorType; - nextOperationOption(scanner, options); - return YES; - - case predToken_LIKE: - skipToken(scanner); - *type = NSLikePredicateOperatorType; - nextOperationOption(scanner, options); - return YES; - - case predToken_MATCHES: - skipToken(scanner); - *type = NSMatchesPredicateOperatorType; - nextOperationOption(scanner, options); - return YES; - - default: - return NO; - } -} - -static NSPredicate *nextComparisonPredicate(predicateScanner *scanner) { - NSComparisonPredicateModifier modifier = NSDirectPredicateModifier; - BOOL negate = NO; - - switch (peekTokenType(scanner)) { - - case predToken_ANY: - skipToken(scanner); - modifier = NSAnyPredicateModifier; - break; - - case predToken_ALL: - skipToken(scanner); - modifier = NSAllPredicateModifier; - break; - - case predToken_NONE: - skipToken(scanner); - modifier = NSAnyPredicateModifier; - negate = YES; - break; - } { - NSExpression *left = nextExpression(scanner); - NSExpression *right; - NSPredicate *result; - NSPredicateOperatorType type = 0; - unsigned options; - - switch (peekTokenType(scanner)) { - - case predToken_CONTAINS: - skipToken(scanner); - nextOperationOption(scanner, &options); - right = nextExpression(scanner); - result = [NSComparisonPredicate - predicateWithLeftExpression: left - rightExpression: right - modifier: modifier - type: NSInPredicateOperatorType - options: options]; - break; - - case predToken_BETWEEN: - skipToken(scanner); - right = nextExpression(scanner); { - NSExpression *rightFirst = [NSExpression_operator - expressionForOperator: NSExpressionOperatorIndexFirst - arguments: [NSArray - arrayWithObject: right]]; - NSPredicate *greaterOrEqual = [NSComparisonPredicate - predicateWithLeftExpression: left - rightExpression: rightFirst - modifier: NSDirectPredicateModifier - type: NSGreaterThanOrEqualToPredicateOperatorType - options: 0]; - - NSExpression *rightLast = [NSExpression_operator - expressionForOperator: NSExpressionOperatorIndexLast - arguments: [NSArray - arrayWithObject: right]]; - NSPredicate *lessOrEqual = [NSComparisonPredicate - predicateWithLeftExpression: left - rightExpression: rightLast - modifier: NSDirectPredicateModifier - type: NSLessThanOrEqualToPredicateOperatorType - options: 0]; - - result = [NSCompoundPredicate - andPredicateWithSubpredicates: - [NSArray arrayWithObjects: greaterOrEqual, - lessOrEqual, nil]]; - } - break; - - default: - if (!nextOperation(scanner, &type, &options)) { - raiseError(scanner, @"Expecting comparison operator"); - } - - right = nextExpression(scanner); - result = [NSComparisonPredicate - predicateWithLeftExpression: left - rightExpression: right - modifier: modifier - type: type - options: options]; - break; - } - - if (negate) - result = [NSCompoundPredicate notPredicateWithSubpredicate: result]; - - return result; - } -} - -static NSPredicate *nextPrimaryPredicate(predicateScanner *scanner) { - - switch (peekTokenType(scanner)) { - - case predToken_TRUEPREDICATE: - skipToken(scanner); - return [NSPredicate predicateWithValue: YES]; - - case predToken_FALSEPREDICATE: - skipToken(scanner); - return [NSPredicate predicateWithValue: NO]; - - case predTokenLeftParen: { - NSPredicate *result; - - skipToken(scanner); - - result = nextPredicate(scanner); - - expectTokenType(scanner, predTokenRightParen); - - return result; - } - } - - return nextComparisonPredicate(scanner); -} - -static NSPredicate *nextUnaryPredicate(predicateScanner *scanner) { - NSPredicate *right; - - if (peekTokenType(scanner) == predToken_NOT) { - skipToken(scanner); - right = nextUnaryPredicate(scanner); - - // coalesce NOT's - if ([right isKindOfClass: [NSCompoundPredicate class]]) { - if ([(NSCompoundPredicate *) right compoundPredicateType] == - NSNotPredicateType) - return [[(NSCompoundPredicate *) right subpredicates] - objectAtIndex: 0]; - } - - return [NSCompoundPredicate notPredicateWithSubpredicate: right]; - } - - right = nextPrimaryPredicate(scanner); - return right; -} - -static NSPredicate *nextConditionalAndPredicate(predicateScanner *scanner) { - NSPredicate *left = nextUnaryPredicate(scanner), *right; - - do { - switch (peekTokenType(scanner)) { - - case predToken_AND: - skipToken(scanner); - right = nextUnaryPredicate(scanner); - left = [NSCompoundPredicate - andPredicateWithSubpredicates: - [NSArray arrayWithObjects: left, right, nil]]; - break; - - default: - return left; - } - } while (YES); -} - -static NSPredicate *nextConditionalOrPredicate(predicateScanner *scanner) { - NSPredicate *left = nextConditionalAndPredicate(scanner), *right; - - do { - switch (peekTokenType(scanner)) { - - case predToken_OR: - skipToken(scanner); - right = nextConditionalAndPredicate(scanner); - left = [NSCompoundPredicate - orPredicateWithSubpredicates: - [NSArray arrayWithObjects: left, right, nil]]; - break; - - default: - return left; - } - } while (YES); -} - -static NSPredicate *nextPredicate(predicateScanner *scanner) { - return nextConditionalOrPredicate(scanner); -} - -static NSPredicate *nextTopLevelPredicate(predicateScanner *scanner) { - NSPredicate *result = nextPredicate(scanner); - -#if 1 - // broken? - if (peekTokenType(scanner) != predTokenEOF) - raiseError(scanner, @"Extraneous tokens at end of string"); -#endif - - return result; -} - -@implementation NSPredicate - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -+ (NSPredicate *) predicateWithFormat: (NSString *) format - arguments: (va_list) arguments -{ - predicateScanner scanner; - NSUInteger length = [format length]; - unichar buffer[length]; - - [format getCharacters: buffer]; - - scanner.original = format; - scanner.unicode = buffer; - scanner.length = length; - scanner.position = 0; - scanner.nextArgument = -1; - va_copy(scanner.arguments, arguments); - - NSPredicate *result = nextTopLevelPredicate(&scanner); - - va_end(scanner.arguments); - - return result; -} - -+ (NSPredicate *) predicateWithFormat: (NSString *) format, ... { - va_list arguments; - - va_start(arguments, format); - - NSPredicate *result = [self predicateWithFormat: format - arguments: arguments]; - - va_end(arguments); - - return result; -} - -+ (NSPredicate *) predicateWithFormat: (NSString *) format - argumentArray: (NSArray *) arguments -{ - predicateScanner scanner; - NSUInteger length = [format length]; - unichar buffer[length]; - - [format getCharacters: buffer]; - - scanner.original = format; - scanner.unicode = buffer; - scanner.length = length; - scanner.position = 0; - scanner.nextArgument = 0; - scanner.argumentArray = arguments; - - return nextTopLevelPredicate(&scanner); -} - -+ (NSPredicate *) predicateWithValue: (BOOL) value { - return [[[NSPredicate_BOOL allocWithZone: NULL] initWithBool: value] - autorelease]; -} - -- (NSString *) predicateFormat { - return nil; -} - -- (NSPredicate *) predicateWithSubstitutionVariables: (NSDictionary *) variables -{ - return self; -} - -- (BOOL) evaluateWithObject: object { - return NO; -} - -- (NSString *) description { - return [self predicateFormat]; -} - -@end diff --git a/Foundation/NSPredicate/NSPredicate_BOOL.h b/Foundation/NSPredicate/NSPredicate_BOOL.h deleted file mode 100644 index 6c919643..00000000 --- a/Foundation/NSPredicate/NSPredicate_BOOL.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSPredicate_BOOL : NSPredicate { - BOOL _value; -} - -- initWithBool: (BOOL) value; - -@end diff --git a/Foundation/NSPredicate/NSPredicate_BOOL.m b/Foundation/NSPredicate/NSPredicate_BOOL.m deleted file mode 100644 index af0638b0..00000000 --- a/Foundation/NSPredicate/NSPredicate_BOOL.m +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSPredicate_BOOL.h" - -@implementation NSPredicate_BOOL - -- initWithBool: (BOOL) value { - _value = value; - return self; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (BOOL) evaluateObject: object { - return _value; -} - -@end diff --git a/Foundation/NSProcessInfo.h b/Foundation/NSProcessInfo.h deleted file mode 100644 index 00742b48..00000000 --- a/Foundation/NSProcessInfo.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSDictionary, NSLock; - -enum { - NSWindowsNTOperatingSystem = 1, - NSWindows95OperatingSystem, - NSSolarisOperatingSystem, - NSMACHOperatingSystem, -}; - -@interface NSProcessInfo : NSObject { - NSDictionary *_environment; - NSArray *_arguments; - NSString *_hostName; - NSString *_processName; - NSInteger _counter; - NSLock *_counterLock; -} - -+ (NSProcessInfo *) processInfo; - -- (NSUInteger) processorCount; -- (NSUInteger) activeProcessorCount; -- (uint64_t) physicalMemory; - -- (NSUInteger) operatingSystem; -- (NSString *) operatingSystemName; -- (NSString *) operatingSystemVersionString; - -- (NSString *) hostName; - -- (NSString *) processName; -- (void) setProcessName: (NSString *) name; - -- (int) processIdentifier; - -- (NSArray *) arguments; - -- (NSDictionary *) environment; - -- (NSString *) globallyUniqueString; - -@end - -void __NSInitializeProcess(int argc, const char *argv[]); diff --git a/Foundation/NSProcessInfo.m b/Foundation/NSProcessInfo.m deleted file mode 100644 index 762b5c6d..00000000 --- a/Foundation/NSProcessInfo.m +++ /dev/null @@ -1,249 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#ifdef __WINDOWS__ -#import -#endif -#import - -@implementation NSProcessInfo - -int NSProcessInfoArgc = 0; -const char *const *NSProcessInfoArgv = NULL; - -- (NSInteger) incrementCounter { - NSInteger result; - - [_counterLock lock]; - _counter++; - result = _counter; - [_counterLock unlock]; - - return result; -} - -+ (NSProcessInfo *) processInfo { - return NSThreadSharedInstance(@"NSProcessInfo"); -} - -- init { - _environment = nil; - _arguments = nil; - _hostName = nil; - _processName = nil; - _counter = 0; - _counterLock = [NSLock new]; - return self; -} - -- (NSUInteger) processorCount { - NSUnimplementedMethod(); - return 0; -} - -- (NSUInteger) activeProcessorCount { - NSUnimplementedMethod(); - return 0; -} - -- (uint64_t) physicalMemory { - NSUnimplementedMethod(); - return 0; -} - -- (NSUInteger) operatingSystem { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) operatingSystemName { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) operatingSystemVersionString { -#ifdef __WINDOWS__ - OSVERSIONINFOEX osVersion; - int systemVersion; - NSString *versionString; - NSString *servicePack; - - osVersion.dwOSVersionInfoSize = sizeof(osVersion); - GetVersionEx((OSVERSIONINFO *) &osVersion); - - // Switches aren't float-friendly, so let's get our major/minor version in - // some kind of combination that'll be easier for it to handle. - // dwMajorVersion can live in the 10s digit, with dwMinorVersion living in - // the 1s digit. We'll also want to negate in the case we're not an - // NT_WORKSTATION productType - this only matters for Vista and up - systemVersion = osVersion.dwMajorVersion * 10 + osVersion.dwMinorVersion; - if (systemVersion >= 60 && osVersion.wProductType != VER_NT_WORKSTATION) { - systemVersion = -systemVersion; - } - - if (osVersion.szCSDVersion != '\0') { - servicePack = [NSString stringWithCString: osVersion.szCSDVersion]; - } else { - servicePack = @""; - } - - switch (systemVersion) { - case 62: - return [NSString stringWithFormat: @"Windows 8 %@", servicePack]; - break; - case -62: - return [NSString - stringWithFormat: @"Windows Server 2012 %@", servicePack]; - break; - case 61: - return [NSString stringWithFormat: @"Windows 7 %@", servicePack]; - break; - case -61: - return [NSString - stringWithFormat: @"Windows Server 2008 R2 %@", servicePack]; - break; - case 60: - return [NSString stringWithFormat: @"Windows Vista %@", servicePack]; - break; - case -60: - return [NSString - stringWithFormat: @"Windows Server 2003 R2 %@", servicePack]; - break; - case 52: - return [NSString - stringWithFormat: @"Windows XP Professional x64 Edition %@", - servicePack]; - break; - case 51: - return [NSString stringWithFormat: @"Windows XP %@", servicePack]; - break; - case 50: - return [NSString stringWithFormat: @"Windows 2000 %@", servicePack]; - break; - default: - return [NSString stringWithFormat: @"%d.%d %d %d", - osVersion.dwMajorVersion, - osVersion.dwMinorVersion, - osVersion.wServicePackMajor, - osVersion.wServicePackMinor]; - break; - } -#else - NSUnimplementedMethod(); - return 0; -#endif -} - -- (NSString *) hostName { - if (_hostName == nil) { - _hostName = [[[NSPlatform currentPlatform] hostName] retain]; - - if (_hostName == nil) - _hostName = @"HOSTNAME"; - } - - return _hostName; -} - -- (NSString *) processName { - if (_processName == nil) { - NSArray *arguments = [self arguments]; - - if ([arguments count] > 0) - _processName = [[[[[self arguments] objectAtIndex: 0] - lastPathComponent] stringByDeletingPathExtension] retain]; - - if (_processName == nil) { - _processName = @""; - } - } - - return _processName; -} - -- (void) setProcessName: (NSString *) name { - [_processName release]; - _processName = [name copy]; -} - -- (int) processIdentifier { - return NSPlatformProcessID(); -} - -- (NSArray *) arguments { - if (_arguments == nil) { - _arguments = [[[NSPlatform currentPlatform] arguments] retain]; - } - - return _arguments; -} - -- (NSDictionary *) environment { - if (_environment == nil) - _environment = [[[NSPlatform currentPlatform] environment] retain]; - - return _environment; -} - -- (NSString *) globallyUniqueString { - return NSStringWithFormat(@"%@_%d_%d_%d_%d", [self hostName], - [self processIdentifier], 0, 0, - [self incrementCounter]); -} - -@end - -FOUNDATION_EXPORT void __NSInitializeProcess(int argc, const char *argv[]) { - NSProcessInfoArgc = argc; - NSProcessInfoArgv = argv; -#if !defined(GCC_RUNTIME_3) -#if !defined(APPLE_RUNTIME_4) - OBJCInitializeProcess(); -#endif -#ifdef __APPLE__ - // init NSConstantString reference-tag (see - // http://lists.apple.com/archives/objc-language/2006/Jan/msg00013.html) - // only Darwin ppc!? - Class cls = objc_lookUpClass("NSConstantString"); - // memcpy(&_NSConstantStringClassReference, cls, - // sizeof(_NSConstantStringClassReference)); - cls = objc_lookUpClass("NSDarwinString"); - -#if __LP64__ - extern int __CFConstantStringClassReference[24]; -#else - extern int __CFConstantStringClassReference[12]; -#endif - - memcpy(&__CFConstantStringClassReference, cls, - sizeof(__CFConstantStringClassReference)); - - // Override the compiler version of the class - // objc_addClass(&_NSConstantStringClassReference); -#endif -#endif -} diff --git a/Foundation/NSPropertyList/CFUID.h b/Foundation/NSPropertyList/CFUID.h deleted file mode 100644 index ab7d549f..00000000 --- a/Foundation/NSPropertyList/CFUID.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - -@interface CFUID : NSObject { - unsigned long long _value; -} - -- initWithUnsignedLongLong: (unsigned long long) value; - -- (unsigned long long) unsignedLongLongValue; -- (NSInteger) integerValue; - -@end diff --git a/Foundation/NSPropertyList/CFUID.m b/Foundation/NSPropertyList/CFUID.m deleted file mode 100644 index 9ef46025..00000000 --- a/Foundation/NSPropertyList/CFUID.m +++ /dev/null @@ -1,18 +0,0 @@ -#import - -@implementation CFUID - -- initWithUnsignedLongLong: (unsigned long long) value { - _value = value; - return self; -} - -- (unsigned long long) unsignedLongLongValue { - return _value; -} - -- (NSInteger) integerValue { - return _value; -} - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLAttribute.h b/Foundation/NSPropertyList/NSOldXMLAttribute.h deleted file mode 100644 index 13fe5c81..00000000 --- a/Foundation/NSPropertyList/NSOldXMLAttribute.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSOldXMLAttribute : NSObject { - NSString *_name; - NSString *_value; -} - -+ (NSOldXMLAttribute *) attributeWithName: (NSString *) name - value: (NSString *) value; - -- initWithName: (NSString *) name value: (NSString *) value; - -- (NSString *) name; -- (NSString *) value; - -- (NSString *) stringValue; -- (float) floatValue; - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLAttribute.m b/Foundation/NSPropertyList/NSOldXMLAttribute.m deleted file mode 100644 index d37c758a..00000000 --- a/Foundation/NSPropertyList/NSOldXMLAttribute.m +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import "NSOldXMLAttribute.h" -#import - -@implementation NSOldXMLAttribute - -+ (NSOldXMLAttribute *) attributeWithName: (NSString *) name - value: (NSString *) value -{ - return [[[self alloc] initWithName: name value: value] autorelease]; -} - -- initWithName: (NSString *) name value: (NSString *) value { - _name = [name copy]; - _value = [value copy]; - return self; -} - -- (void) dealloc { - [_name release]; - [_value release]; - [super dealloc]; -} - -- (NSString *) name { - return _name; -} - -- (NSString *) value { - return _value; -} - -- (NSString *) stringValue { - return _value; -} - -- (float) floatValue { - return [_value floatValue]; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@ %@=%@>", [self class], _name, _value]; -} - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLDocument.h b/Foundation/NSPropertyList/NSOldXMLDocument.h deleted file mode 100644 index 8b989679..00000000 --- a/Foundation/NSPropertyList/NSOldXMLDocument.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSOldXMLElement; - -@interface NSOldXMLDocument : NSObject { - NSOldXMLElement *_rootElement; -} - -- (void) setRootElement: (NSOldXMLElement *) element; - -- (NSOldXMLElement *) rootElement; - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLDocument.m b/Foundation/NSPropertyList/NSOldXMLDocument.m deleted file mode 100644 index 596074f0..00000000 --- a/Foundation/NSPropertyList/NSOldXMLDocument.m +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import "NSOldXMLDocument.h" -#import "NSOldXMLElement.h" - -@implementation NSOldXMLDocument - -- (void) dealloc { - [_rootElement release]; - [super dealloc]; -} - -- (void) setRootElement: (NSOldXMLElement *) element { - element = [element retain]; - [_rootElement release]; - _rootElement = element; -} - -- (NSOldXMLElement *) rootElement { - return _rootElement; -} - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLElement.h b/Foundation/NSPropertyList/NSOldXMLElement.h deleted file mode 100644 index 53c4b1b1..00000000 --- a/Foundation/NSPropertyList/NSOldXMLElement.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSOldXMLAttribute, NSMutableArray, NSArray; - -@interface NSOldXMLElement : NSObject { - NSString *_name; - NSMutableArray *_attributes; - NSMutableArray *_contents; -} - -+ (NSOldXMLElement *) elementWithName: (NSString *) name; - -- initWithName: (NSString *) name; - -- (NSString *) name; -- (NSArray *) attributes; -- (NSArray *) contents; - -- (NSString *) xid; - -- (NSOldXMLAttribute *) attributeWithName: (NSString *) name; - -- (void) addAttribute: (NSOldXMLAttribute *) attribute; - -- (void) addContent: (id) content; - -- (NSString *) stringValue; -- (int) intValue; -- (unsigned) unsignedIntValue; -- (float) floatValue; -- (NSRect) rectValue; -- (NSSize) sizeValue; - -- (NSOldXMLElement *) nextElement; - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLElement.m b/Foundation/NSPropertyList/NSOldXMLElement.m deleted file mode 100644 index d14871d8..00000000 --- a/Foundation/NSPropertyList/NSOldXMLElement.m +++ /dev/null @@ -1,160 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import "NSOldXMLElement.h" -#import "NSOldXMLAttribute.h" -#import -#import -#import - -@implementation NSOldXMLElement - -+ (NSOldXMLElement *) elementWithName: (NSString *) name { - return [[[self alloc] initWithName: name] autorelease]; -} - -- initWithName: (NSString *) name { - _name = [name copy]; - _attributes = [NSMutableArray new]; - _contents = [NSMutableArray new]; - return self; -} - -- (void) dealloc { - [_name release]; - [_attributes release]; - [_contents release]; - [super dealloc]; -} - -- (NSString *) name { - return _name; -} - -- (NSArray *) attributes { - return _attributes; -} - -- (NSArray *) contents { - return _contents; -} - -- (NSString *) xid { - return [[self attributeWithName: @"id"] value]; -} - -- (NSOldXMLAttribute *) attributeWithName: (NSString *) name { - NSInteger i, count = [_attributes count]; - - for (i = 0; i < count; i++) { - NSOldXMLAttribute *check = [_attributes objectAtIndex: i]; - - if ([[check name] isEqualToString: name]) - return check; - } - return nil; -} - -- (void) addAttribute: (NSOldXMLAttribute *) attribute { - [_attributes addObject: attribute]; -} - -- (void) addContent: (id) content { - [_contents addObject: content]; -} - -- (NSString *) stringValue { - NSInteger i, count = [_contents count]; - - if (count == 0) - return @""; - if (count == 1) - return [_contents lastObject]; - else { - NSMutableString *result = [NSMutableString string]; - - for (i = 0; i < count; i++) - [result appendString: [_contents objectAtIndex: i]]; - - return result; - } -} - -- (int) intValue { - return [[self stringValue] intValue]; -} - -- (unsigned) unsignedIntValue { - return [[self stringValue] intValue]; -} - -- (float) floatValue { - return [[self stringValue] floatValue]; -} - -- (NSRect) rectValue { - NSRect result = NSZeroRect; - NSScanner *scanner = [NSScanner scannerWithString: [self stringValue]]; - double value; - - [scanner scanDouble: &value]; - result.origin.x = value; - [scanner scanDouble: &value]; - result.origin.y = value; - [scanner scanDouble: &value]; - result.size.width = value; - [scanner scanDouble: &value]; - result.size.height = value; - - return result; -} - -- (NSSize) sizeValue { - NSSize result = NSZeroSize; - NSScanner *scanner = [NSScanner scannerWithString: [self stringValue]]; - double value; - - [scanner scanDouble: &value]; - result.width = value; - [scanner scanDouble: &value]; - result.height = value; - - return result; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@ %@ %@ %@>", [self class], _name, - _attributes, _contents]; -} - -- (NSOldXMLElement *) nextElement { - NSOldXMLElement *next; - - if ([_contents count] == 0) - next = nil; - else { - next = [[[_contents objectAtIndex: 0] retain] autorelease]; - [_contents removeObjectAtIndex: 0]; - } - - return next; -} - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLReader.h b/Foundation/NSPropertyList/NSOldXMLReader.h deleted file mode 100644 index f49f9a45..00000000 --- a/Foundation/NSPropertyList/NSOldXMLReader.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -@class NSOldXMLDocument, NSOldXMLElement, NSMutableDictionary, NSMutableArray; - -@interface NSOldXMLReader : NSString { - NSData *_data; - const uint8_t *_bytes; - NSUInteger _length; - NSRange _range; - - NSMutableDictionary *_entityRefContents; - - int _state; - unichar _charRef; - NSMutableArray *_stack; - NSHashTable *_strings; - NSOldXMLElement *_rootElement; -} - -- initWithData: (NSData *) data; -- initWithContentsOfFile: (NSString *) path; - -- (BOOL) tokenize; - -+ (NSOldXMLDocument *) documentWithContentsOfFile: (NSString *) path; -+ (NSOldXMLDocument *) documentWithData: (NSData *) data; - -@end diff --git a/Foundation/NSPropertyList/NSOldXMLReader.m b/Foundation/NSPropertyList/NSOldXMLReader.m deleted file mode 100644 index c914f733..00000000 --- a/Foundation/NSPropertyList/NSOldXMLReader.m +++ /dev/null @@ -1,559 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSOldXMLReader.h" -#import "NSOldXMLAttribute.h" -#import "NSOldXMLDocument.h" -#import "NSOldXMLElement.h" -#import -#import -#import -#import -#import -#include - -enum { - STATE_content, - STATE_Reference, - STATE_CharRef, - STATE_CharRef_hex, - STATE_CharRef_decimal, - STATE_EntityRef_Name, - STATE_Tag, - STATE_ignore_unhandled, - STATE_STag, - STATE_ETag, - STATE_ETag_whitespace, - STATE_Attributes, - STATE_EmptyElementTag, - STATE_Attribute_Name, - STATE_Attribute_Name_whitespace, - STATE_Attribute_Equal, - STATE_Attribute_Value, - STATE_Attribute_Value_DoubleQuote, - STATE_Attribute_Value_SingleQuote, - STATE_CDATA -}; - -@implementation NSOldXMLReader - -- initWithData: (NSData *) data { - _data = [data copy]; - _bytes = [_data bytes]; - _length = [_data length]; - _range = NSMakeRange(0, 0); - - _entityRefContents = [NSMutableDictionary new]; - [_entityRefContents setObject: @"&" forKey: @"amp"]; - [_entityRefContents setObject: @"<" forKey: @"lt"]; - [_entityRefContents setObject: @">" forKey: @"gt"]; - [_entityRefContents setObject: @"\'" forKey: @"apos"]; - [_entityRefContents setObject: @"\"" forKey: @"quot"]; - - _state = STATE_content; - _stack = [NSMutableArray new]; - _strings = NSCreateHashTable(NSObjectHashCallBacks, 0); - _rootElement = nil; - return self; -} - -- initWithContentsOfFile: (NSString *) path { - NSData *data = [NSData dataWithContentsOfMappedFile: path]; - - if (data == nil) { - [self dealloc]; - return nil; - } - - return [self initWithData: data]; -} - -- (void) dealloc { - [_data release]; - [_entityRefContents release]; - [_stack release]; - NSFreeHashTable(_strings); - [_rootElement release]; - [super dealloc]; -} - -- (NSOldXMLElement *) rootElement { - return _rootElement; -} - -- (NSUInteger) length { - return _range.length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - return _bytes[_range.location + location]; -} - -- (void) getCharacters: (unichar *) buffer { - NSUInteger i; - - for (i = 0; i < _range.length; i++) - buffer[i] = _bytes[_range.location + i]; -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSUInteger location = range.location, max = NSMaxRange(range); - NSUInteger i; - - for (i = 0; location < max; i++, location++) - buffer[i] = _bytes[_range.location + location]; -} - -- (void) content: (NSString *) content { - [[_stack lastObject] addContent: content]; -} - -- (void) charRef: (NSString *) charRef { - [[_stack lastObject] addContent: charRef]; -} - -- (void) entityRef: (NSString *) entityRef { - NSOldXMLElement *element = [_stack lastObject]; - NSString *contents = [_entityRefContents objectForKey: self]; - - if (contents != nil) - [element addContent: contents]; -} - -- (void) sTag: (NSString *) sTag { - [_stack addObject: [NSOldXMLElement elementWithName: sTag]]; - if ([_stack count] == 1) { - [_rootElement release]; - _rootElement = [[_stack lastObject] retain]; - } -} - -- (void) popElement { - NSOldXMLElement *last = [[_stack lastObject] retain]; - - [_stack removeLastObject]; - [[_stack lastObject] addContent: last]; - [last release]; -} - -- (void) eTag: (NSString *) eTag { - // FIX, maybe double check name here - [self popElement]; -} - -- (void) emptyElementTag { - [self popElement]; -} - -- (void) attributeName: (NSString *) name { - [_stack addObject: name]; -} - -- (void) attributeValue: (NSString *) value { - NSString *name = [_stack lastObject]; - NSOldXMLAttribute *attribute = [NSOldXMLAttribute attributeWithName: name - value: value]; - - [_stack removeLastObject]; - [[_stack lastObject] addAttribute: attribute]; -} - -- (NSString *) stringForSelf { - if (NSUTF8IsASCII((const char *) (_bytes + _range.location), _range.length)) - return self; - else { - NSUInteger length; - unichar *buffer = - NSUTF8ToUnicode((const char *) (_bytes + _range.location), - _range.length, &length, NULL); - NSString *result = [[NSString alloc] initWithCharacters: buffer - length: length]; - - NSZoneFree(NULL, buffer); - - return result; - } -} - -- (NSString *) uniqueSelf { - NSString *string = [self stringForSelf]; - NSString *result; - - result = NSHashGet(_strings, string); - - if (result == nil) { - result = [[NSString alloc] initWithString: string]; - NSHashInsert(_strings, result); - [result release]; - } - - return result; -} - -static inline BOOL codeIsWhitespace(uint8_t code) { - if (code == 0x20 || code == 0x0A || code == 0x0D || code == 0x09) - return YES; - return NO; -} - -static inline BOOL codeIsNameStart(uint8_t code) { - if ((code >= 'A' && code <= 'Z') || (code >= 'a' && code <= 'z') || - code == ':' || code == '_') - return YES; - - return NO; -} - -static inline BOOL codeIsNameContinue(uint8_t code) { - if ((code >= 'A' && code <= 'Z') || (code >= 'a' && code <= 'z') || - code == ':' || code == '_' || (code >= '0' && code <= '9') || - code == '.' || code == '-') - return YES; - - return NO; -} - -- (void) unexpectedIn: (NSString *) state { - NSUInteger position = NSMaxRange(_range) - 1; - uint8_t code = _bytes[position]; - - [NSException raise: @"" - format: @"Unexpected character %c in %@, position=%d", code, - state, position]; -} - -- (BOOL) tokenize { - - while (NSMaxRange(_range) < _length) { - uint8_t code = _bytes[NSMaxRange(_range)]; - enum { - extendLength, - advanceLocationToNext, - advanceLocationToCurrent, - } rangeAction = extendLength; - - switch (_state) { - - case STATE_content: - if (code == '&') { - if (_range.length > 0) - [self content: [self uniqueSelf]]; - _state = STATE_Reference; - rangeAction = advanceLocationToNext; - } else if (code == '<') { - if (_range.length > 0) - [self content: [self uniqueSelf]]; - _state = STATE_Tag; - rangeAction = advanceLocationToNext; - } else { - _state = STATE_content; - } - break; - - case STATE_Reference: - if (code == '#') { - _charRef = 0; - _state = STATE_CharRef; - rangeAction = advanceLocationToNext; - } else if (codeIsNameStart(code)) { - _state = STATE_EntityRef_Name; - rangeAction = advanceLocationToCurrent; - } else { - [self unexpectedIn: @"Reference"]; - return NO; - } - break; - - case STATE_CharRef: - if (code == 'x') { - _state = STATE_CharRef_hex; - rangeAction = advanceLocationToCurrent; - } else if (code >= '0' && code <= '9') { - _charRef = code - '0'; - _state = STATE_CharRef_decimal; - rangeAction = advanceLocationToCurrent; - } else { - [self unexpectedIn: @"CharRef"]; - return NO; - } - break; - - case STATE_CharRef_hex: - if (code >= '0' && code <= '9') { - _charRef = _charRef * 16 + code - '0'; - _state = STATE_CharRef_hex; - } else if (code >= 'a' && code <= 'z') { - _charRef = _charRef * 16 + code - 'a' + 10; - _state = STATE_CharRef_hex; - } else if (code >= 'A' && code <= 'Z') { - _charRef = _charRef * 16 + code - 'A' + 10; - _state = STATE_CharRef_hex; - } else if (code == ';') { - [self charRef: [NSString stringWithCharacters: &_charRef - length: 1]]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"hexadecimal CharRef"]; - return NO; - } - break; - - case STATE_CharRef_decimal: - if (code >= '0' && code <= '9') { - _charRef = _charRef * 10 + code - '0'; - _state = STATE_CharRef_decimal; - } else if (code == ';') { - [self charRef: [NSString stringWithCharacters: &_charRef - length: 1]]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"decimal CharRef"]; - return NO; - } - break; - - case STATE_EntityRef_Name: - if (codeIsNameContinue(code)) - _state = STATE_EntityRef_Name; - else if (code == ';') { - [self entityRef: [self uniqueSelf]]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"EntityRef Name"]; - return NO; - } - break; - - case STATE_Tag: - if (code == '/') { - _state = STATE_ETag; - rangeAction = advanceLocationToNext; - } else if (codeIsNameStart(code)) { - _state = STATE_STag; - rangeAction = advanceLocationToCurrent; - } else if (code == '?') { // FIX, to just get through ?xml - _state = STATE_ignore_unhandled; - rangeAction = advanceLocationToNext; - } else if (code == '!') { - if (NSMaxRange(_range) + 8 < _length) { - if (0 == - memcmp(_bytes + NSMaxRange(_range), "![CDATA[", 8)) { - _state = STATE_CDATA; - _range.length += 8; - rangeAction = advanceLocationToCurrent; - } - } - if (_state != STATE_CDATA) { // get through !DOCTYPE - _state = STATE_ignore_unhandled; - rangeAction = advanceLocationToNext; - } - } else { - [self unexpectedIn: @"Tag"]; - return NO; - } - break; - - case STATE_CDATA: - if (code == ']' && NSMaxRange(_range) + 3 < _length) { - if (0 == memcmp(_bytes + NSMaxRange(_range), "]]>", 3)) { - if (_range.length > 0) - [self content: [self uniqueSelf]]; - - _state = STATE_content; - _range.length += 3; - rangeAction = advanceLocationToCurrent; - } - } - break; - - case STATE_ignore_unhandled: - rangeAction = advanceLocationToNext; - if (code == '>') - _state = STATE_content; - break; - - case STATE_STag: - if (codeIsNameContinue(code)) - _state = STATE_STag; - else { - [self sTag: [self uniqueSelf]]; - _state = STATE_Attributes; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_ETag: - if (codeIsNameContinue(code)) - _state = STATE_ETag; - else { - [self eTag: [self uniqueSelf]]; - _state = STATE_ETag_whitespace; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_ETag_whitespace: - if (codeIsWhitespace(code)) - _state = STATE_ETag_whitespace; - else if (code == '>') { - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"ETag"]; - return NO; - } - break; - - case STATE_Attributes: - if (codeIsWhitespace(code)) - _state = STATE_Attributes; - else if (code == '/') - _state = STATE_EmptyElementTag; - else if (code == '>') { - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else if (codeIsNameStart(code)) { - _state = STATE_Attribute_Name; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_EmptyElementTag: - if (code == '>') { - [self emptyElementTag]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"EmptyElementTag"]; - return NO; - } - break; - - case STATE_Attribute_Name: - if (codeIsNameContinue(code)) - _state = STATE_Attribute_Name; - else { - [self attributeName: [self uniqueSelf]]; - _state = STATE_Attribute_Name_whitespace; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_Attribute_Name_whitespace: - if (codeIsWhitespace(code)) - _state = STATE_Attribute_Name_whitespace; - else if (code == '=') - _state = STATE_Attribute_Equal; - break; - - case STATE_Attribute_Equal: - if (codeIsWhitespace(code)) - _state = STATE_Attribute_Equal; - else { - rangeAction = advanceLocationToCurrent; - _state = STATE_Attribute_Value; - } - break; - - case STATE_Attribute_Value: - if (code == '\"') { - _state = STATE_Attribute_Value_DoubleQuote; - rangeAction = advanceLocationToNext; - } else if (code == '\'') { - _state = STATE_Attribute_Value_SingleQuote; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"Attribute Value"]; - return NO; - } - break; - - case STATE_Attribute_Value_DoubleQuote: - if (code == '\"') { - [self attributeValue: [self uniqueSelf]]; - _state = STATE_Attributes; - rangeAction = advanceLocationToNext; - } - break; - - case STATE_Attribute_Value_SingleQuote: - if (code == '\'') { - [self attributeValue: [self uniqueSelf]]; - _state = STATE_Attributes; - rangeAction = advanceLocationToNext; - } - break; - } - - switch (rangeAction) { - case extendLength: - _range.length++; - break; - - case advanceLocationToNext: - _range.location = NSMaxRange(_range) + 1; - _range.length = 0; - break; - - case advanceLocationToCurrent: - _range.location = NSMaxRange(_range); - _range.length = 0; - break; - } - } - return YES; -} - -+ (NSOldXMLDocument *) documentWithContentsOfFile: (NSString *) path { - NSOldXMLReader *reader = [[self alloc] initWithContentsOfFile: path]; - NSOldXMLDocument *document; - - if (![reader tokenize]) { - [reader release]; - return nil; - } - - document = [[[NSOldXMLDocument alloc] init] autorelease]; - [document setRootElement: [reader rootElement]]; - - [reader release]; - - return document; -} - -+ (NSOldXMLDocument *) documentWithData: (NSData *) data { - NSOldXMLReader *reader = [[self alloc] initWithData: data]; - NSOldXMLDocument *document; - - if (![reader tokenize]) { - [reader release]; - return nil; - } - - document = [[[NSOldXMLDocument alloc] init] autorelease]; - [document setRootElement: [reader rootElement]]; - - [reader release]; - - return document; -} - -@end diff --git a/Foundation/NSPropertyList/NSPropertyList.h b/Foundation/NSPropertyList/NSPropertyList.h deleted file mode 100644 index bbc7c790..00000000 --- a/Foundation/NSPropertyList/NSPropertyList.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSData; - -typedef enum { - NSPropertyListImmutable, - NSPropertyListMutableContainers, - NSPropertyListMutableContainersAndLeaves, -} NSPropertyListMutabilityOptions; - -typedef enum { - NSPropertyListOpenStepFormat, - NSPropertyListXMLFormat_v1_0, - NSPropertyListBinaryFormat_v1_0, -} NSPropertyListFormat; - -@interface NSPropertyListSerialization : NSObject - -+ (BOOL) propertyList: propertyList - isValidForFormat: (NSPropertyListFormat) format; - -+ (NSData *) dataFromPropertyList: plist - format: (NSPropertyListFormat) format - errorDescription: (NSString **) errorDescriptionp; - -+ propertyListFromData: (NSData *) data - mutabilityOption: (NSPropertyListMutabilityOptions) mutability - format: (NSPropertyListFormat *) format - errorDescription: (NSString **) errorDescriptionp; - -@end diff --git a/Foundation/NSPropertyList/NSPropertyList.m b/Foundation/NSPropertyList/NSPropertyList.m deleted file mode 100644 index 638f2f3d..00000000 --- a/Foundation/NSPropertyList/NSPropertyList.m +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSPropertyListWriter_vintage.h" -#import "NSPropertyListWriter_xml1.h" -#import -#import -#import -#import -#import - -@implementation NSPropertyListSerialization - -+ (BOOL) propertyList: propertyList - isValidForFormat: (NSPropertyListFormat) format -{ - NSUnimplementedMethod(); - return NO; -} - -+ (NSData *) dataFromPropertyList: plist - format: (NSPropertyListFormat) format - errorDescription: (NSString **) errorDescriptionp -{ - switch (format) { - - case NSPropertyListOpenStepFormat: - return [NSPropertyListWriter_vintage dataWithPropertyList: plist]; - - case NSPropertyListXMLFormat_v1_0: - return [NSPropertyListWriter_xml1 dataWithPropertyList: plist]; - - case NSPropertyListBinaryFormat_v1_0: - return nil; - } - return nil; -} - -+ propertyListFromData: (NSData *) data - mutabilityOption: (NSPropertyListMutabilityOptions) mutability - format: (NSPropertyListFormat *) format - errorDescription: (NSString **) errorDescriptionp -{ - id result; - - @try { - - if ((result = [NSPropertyListReader_xml1 propertyListFromData: data]) != - nil) { - if (format) - *format = NSPropertyListXMLFormat_v1_0; - return result; - } - - if ((result = [NSPropertyListReader_binary1 - propertyListFromData: data]) != nil) { - if (format) - *format = NSPropertyListBinaryFormat_v1_0; - return result; - } - - if ((result = [NSPropertyListReader_vintage - propertyListFromData: data]) != nil) { - if (format) - *format = NSPropertyListOpenStepFormat; - return result; - } - } @catch (NSException *e) { - return nil; - } - - return nil; -} - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader.h b/Foundation/NSPropertyList/NSPropertyListReader.h deleted file mode 100644 index f64c35c2..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDictionary, NSArray, NSData; - -@interface NSPropertyListReader : NSObject - -+ propertyListFromData: (NSData *) data; - -+ propertyListFromString: (NSString *) string; - -+ (NSDictionary *) dictionaryWithContentsOfFile: (NSString *) path; -+ (NSArray *) arrayWithContentsOfFile: (NSString *) path; - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader.m b/Foundation/NSPropertyList/NSPropertyListReader.m deleted file mode 100644 index 1c858b6c..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader.m +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#include - -#import "NSPropertyListReader_binary1.h" -#import -#import -#import -#import -#import -#import -#import - -@implementation NSPropertyListReader - -+ propertyListFromData: (NSData *) data { - id result = nil; - - if (data == nil) - return nil; - - @try { - result = [NSPropertyListReader_binary1 propertyListFromData: data]; - if (result == nil) - result = [NSPropertyListReader_xml1 propertyListFromData: data]; - if (result == nil) - result = [NSPropertyListReader_vintage propertyListFromData: data]; - - } @catch (NSException *exception) { - // Don't use NSLog here as we might be called from some early NSLog, - // when formating the timestamp... - fprintf(stderr, - "propertyListFromData: error while decoding plist content : " - "%s\n", - [[exception description] UTF8String]); - result = nil; - } @finally { - } - return result; -} - -+ propertyListFromString: (NSString *) string { - // FIX - NSData *data = [string dataUsingEncoding: NSNEXTSTEPStringEncoding]; - - return [self propertyListFromData: data]; -} - -+ (NSObject *) propertyListWithContentsOfFile: (NSString *) path { - NSData *data = [NSData dataWithContentsOfFile: path]; - - return [self propertyListFromData: data]; -} - -+ (NSDictionary *) dictionaryWithContentsOfFile: (NSString *) path { - NSObject *result = [self propertyListWithContentsOfFile: path]; - - if ([result isKindOfClass: [NSDictionary class]]) - return (NSDictionary *) result; - - return nil; -} - -+ (NSArray *) arrayWithContentsOfFile: (NSString *) path { - NSObject *result = [self propertyListWithContentsOfFile: path]; - - if ([result isKindOfClass: [NSArray class]]) - return (NSArray *) result; - - return nil; -} - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader_binary1.h b/Foundation/NSPropertyList/NSPropertyListReader_binary1.h deleted file mode 100644 index 0d58c779..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader_binary1.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2007 Michael Ash - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#include - -@class NSData; - -@interface NSPropertyListReader_binary1 : NSObject { - NSData *_data; - NSUInteger _length; - const uint8_t *_bytes; - - uint8_t _trailerOffsetIntSize; - uint8_t _trailerOffsetRefSize; - uint64_t _trailerNumObjects; - uint64_t _trailerTopObject; - uint64_t _trailerOffsetTableOffset; -} - -+ propertyListFromData: (NSData *) data; - -- (id) initWithData: (NSData *) data; - -- (id) read; - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader_binary1.m b/Foundation/NSPropertyList/NSPropertyListReader_binary1.m deleted file mode 100644 index 9444ad92..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader_binary1.m +++ /dev/null @@ -1,361 +0,0 @@ -/* Copyright (c) 2007 Michael Ash - Copyright (c) 2007 Jens Ayton (uid decoding) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSPropertyListReader_binary1.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include -#include - -@implementation NSPropertyListReader_binary1 - -static id _readInlineObjectAtOffset(NSPropertyListReader_binary1 *self, - NSUInteger *offset); - -+ propertyListFromData: (NSData *) data { - NSPropertyListReader_binary1 *reader = [[self alloc] initWithData: data]; - - if (reader == nil) - return nil; - - id result = [reader read]; - - [reader release]; - - return result; -} - -#define MAGIC "bplist" -#define FORMAT "00" -#define TRAILER_SIZE (sizeof(uint8_t) * 2 + sizeof(uint64_t) * 3) - -- initWithData: (NSData *) data { - size_t magiclen = strlen(MAGIC FORMAT); - - BOOL good = YES; - if (good && [data length] < magiclen + TRAILER_SIZE) - good = NO; - if (good && strncmp([data bytes], MAGIC FORMAT, magiclen) != 0) - good = NO; - - if (!good) { - [self release]; - return nil; - } - - _data = [data copy]; - _length = [_data length]; - _bytes = [_data bytes]; - - return self; -} - -- (void) dealloc { - [_data release]; - [super dealloc]; -} - -static inline uint64_t _readIntOfSize(NSPropertyListReader_binary1 *self, - size_t size, NSUInteger *offsetPtr) -{ - uint64_t ret = 0; - const uint8_t *ptr = self->_bytes + *offsetPtr; - size_t i; - for (i = 0; i < size; i++) { - ret <<= 8; - ret |= *ptr; - ptr++; - } - - *offsetPtr += size; - - return ret; -} - -static inline double _readFloatOfSize(NSPropertyListReader_binary1 *self, - size_t size, NSUInteger *offsetPtr) -{ - uint64_t val = _readIntOfSize(self, size, offsetPtr); - - if (size == 4) { - uint32_t val32 = (uint32_t) val; - void *p = &val32; - return *((float *) p); - } else if (size == 8) { - void *p = &val; - return *((double *) p); - } - - [NSException raise: @"Invalid size" - format: @"Don't know how to read float of size %u", size]; - return 0.0; -} - -- (void) _readHeader { - NSUInteger trailerStart = _length - TRAILER_SIZE; - - _trailerOffsetIntSize = - _readIntOfSize(self, sizeof(_trailerOffsetIntSize), &trailerStart); - _trailerOffsetRefSize = - _readIntOfSize(self, sizeof(_trailerOffsetRefSize), &trailerStart); - _trailerNumObjects = - _readIntOfSize(self, sizeof(_trailerNumObjects), &trailerStart); - _trailerTopObject = - _readIntOfSize(self, sizeof(_trailerTopObject), &trailerStart); - _trailerOffsetTableOffset = _readIntOfSize( - self, sizeof(_trailerOffsetTableOffset), &trailerStart); -} - -static uint64_t ReadSizedInt(NSPropertyListReader_binary1 *bplist, - uint64_t offset, uint8_t size) -{ - const uint8_t *ptr = bplist->_bytes; - NSUInteger length = bplist->_length; - - assert(ptr != NULL && size >= 1 && size <= 8 && offset + size <= length); - - uint64_t result = 0; - const uint8_t *byte = ptr + offset; - - do { - result = (result << 8) | *byte++; - } while (--size); - - return result; -} - -static BOOL ReadSelfSizedInt(NSPropertyListReader_binary1 *bplist, - uint64_t offset, uint64_t *outValue, - size_t *outSize) -{ - const uint8_t *ptr = bplist->_bytes; - NSUInteger length = bplist->_length; - - uint32_t size; - int64_t value; - - assert(ptr != NULL && offset < length); - - size = 1 << (ptr[offset] & 0x0F); - if (size > 8) { - // Maximum allowable size in this implementation is 1<<3 = 8 bytes. - // This also happens to be the biggest NSNumber can handle. - return NO; - } - - if (offset + 1 + size > length) { - // Out of range. - return NO; - } - - value = ReadSizedInt(bplist, offset + 1, size); - - if (outValue != NULL) - *outValue = value; - if (outSize != NULL) - *outSize = size + 1; // +1 for tag byte. - return YES; -} - -static id ExtractUID(NSPropertyListReader_binary1 *bplist, uint64_t offset) { - /* UIDs are used by Cocoa's key-value coder. - When writing other plist formats, they are expanded to dictionaries - of the form CF$UIDvalue, so we - do the same here on reading. This results in plists identical to - what running plutil -convert xml1 gives us. However, this is not the same - result as [Core]Foundation's plist parser, which extracts them as - un- introspectable CF objects. In fact, it even seems to convert the - CF$UID dictionaries from XML plists on the fly. - */ - - uint64_t value; - - if (!ReadSelfSizedInt(bplist, offset, &value, NULL)) { - NSLog(@"Bad binary plist: invalid UID object."); - return nil; - } - - return [[CFUID alloc] initWithUnsignedLongLong: value]; -} - -static id _readObjectAtOffset(NSPropertyListReader_binary1 *self, - NSUInteger *offset) -{ - const uint8_t *ptr = self->_bytes; - uint8_t marker = ptr[*offset]; - - (*offset)++; - - if (marker == 0x00) { - return [NSNull null]; - } - if (marker == 0x08) { - return (id) kCFBooleanFalse; - } - if (marker == 0x09) { - return (id) kCFBooleanTrue; - } - - uint8_t topNibble = marker >> 4; - uint8_t botNibble = marker & 0x0F; - - if (topNibble == 0x1) { - return [[NSNumber alloc] - initWithLongLong: _readIntOfSize(self, 1 << botNibble, offset)]; - } - if (topNibble == 0x2) { - size_t size = 1 << botNibble; - uint64_t val = _readIntOfSize(self, size, offset); - - if (size == 4) { - uint32_t val32 = (uint32_t) val; - void *p = &val32; - return [[NSNumber alloc] initWithFloat: *(float *) p]; - } - if (size == 8) { - void *p = &val; - return [[NSNumber alloc] initWithDouble: *(double *) p]; - } - return [[NSNumber alloc] initWithDouble: 0.0]; - } - if (topNibble == 0x3) { - return [[NSDate alloc] - initWithTimeIntervalSinceReferenceDate: _readFloatOfSize( - self, 8, - offset)]; - } - if (topNibble == 0x4 || topNibble == 0x5 || topNibble == 0x6 || - topNibble == 0x8 || topNibble == 0xA || topNibble == 0xD) { - uint64_t length = 0; - if (botNibble != 0xF) { - length = botNibble; - } else { - NSNumber *number = _readObjectAtOffset(self, offset); - length = [number unsignedLongLongValue]; - [number release]; - } - - if (topNibble == 0x4) { - return [[self->_data subdataWithRange: NSMakeRange(*offset, length)] - copy]; - } - if (topNibble == 0x5) { - return [[NSString alloc] initWithBytes: self->_bytes + *offset - length: length - encoding: NSASCIIStringEncoding]; - } - if (topNibble == 0x6) { - return [[NSString alloc] - initWithBytes: self->_bytes + *offset - length: length * 2 - encoding: NSUTF16BigEndianStringEncoding]; - } - if (topNibble == 0x8) { - return ExtractUID(self, (*offset) - 1); - } - - if (topNibble == 0xA) { - id result; - id *objs = NSZoneMalloc(NULL, length * sizeof(*objs)); - uint64_t i; - for (i = 0; i < length; i++) { - objs[i] = _readInlineObjectAtOffset(self, offset); - } - - result = [[NSArray alloc] initWithObjects: objs count: length]; - for (i = 0; i < length; i++) { - [objs[i] release]; - } - free(objs); - return result; - } - - if (topNibble == 0xD) { - id result; - id *keys = NSZoneMalloc(NULL, length * sizeof(*keys)); - id *objs = NSZoneMalloc(NULL, length * sizeof(*objs)); - uint64_t i; - for (i = 0; i < length; i++) { - keys[i] = _readInlineObjectAtOffset(self, offset); - } - for (i = 0; i < length; i++) { - objs[i] = _readInlineObjectAtOffset(self, offset); - } - - result = [[NSDictionary alloc] initWithObjects: objs - forKeys: keys - count: length]; - for (i = 0; i < length; i++) { - [keys[i] release]; - [objs[i] release]; - } - free(keys); - free(objs); - return result; - } - } - - [NSException raise: @"Unknown marker in plist" - format: @"Unable to read marker 0x%uX", marker]; - return nil; -} - -static id _readInlineObjectAtOffset(NSPropertyListReader_binary1 *self, - NSUInteger *offset) -{ - // first read the offset table index out of the file - NSUInteger objOffset = - _readIntOfSize(self, self->_trailerOffsetRefSize, offset); - - // then transform the index into an offset in the file which points to - // that offset table entry - objOffset = self->_trailerOffsetTableOffset + - objOffset * self->_trailerOffsetIntSize; - - // lastly read the offset stored at that entry - objOffset = _readIntOfSize(self, self->_trailerOffsetIntSize, &objOffset); - - // and read the object stored there - return _readObjectAtOffset(self, &objOffset); -} - -- (id) read { - id result = nil; - - @try { - [self _readHeader]; - - NSUInteger offset = _trailerTopObject + strlen(MAGIC FORMAT); - result = _readObjectAtOffset(self, &offset); - } @catch (id exception) { - NSLog(@"Unable to read binary plist: %@", exception); - } - - return [result autorelease]; -} - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader_vintage.h b/Foundation/NSPropertyList/NSPropertyListReader_vintage.h deleted file mode 100644 index a4dc4626..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader_vintage.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSData, NSDictionary, NSArray; - -@interface NSPropertyListReader_vintage : NSObject { - NSData *_data; - NSUInteger _length; - const uint8_t *_bytes; - - NSUInteger _stackCapacity; - NSInteger _stackSize; - id *_stack; - - NSUInteger _bufferCapacity; - NSUInteger _bufferSize; - unichar *_buffer; - - NSUInteger _dataBufferCapacity; - NSUInteger _dataBufferSize; - uint8_t *_dataBuffer; - - NSUInteger _index; - NSUInteger _lineNumber; - - Class _stringClass; - Class _dictionaryClass; - Class _arrayClass; -} - -+ (NSObject *) propertyListFromData: (NSData *) data; - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader_vintage.m b/Foundation/NSPropertyList/NSPropertyListReader_vintage.m deleted file mode 100644 index 98cd647e..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader_vintage.m +++ /dev/null @@ -1,579 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSPropertyListReader_vintage - -- initWithData: (NSData *) data { - _data = [data retain]; - _length = [_data length]; - _bytes = [_data bytes]; - - _stackCapacity = 4096; - _stackSize = 0; - _stack = NSZoneMalloc(NULL, sizeof(id) * _stackCapacity); - - _bufferCapacity = 256; - _bufferSize = 0; - _buffer = NSZoneMalloc(NULL, sizeof(unichar *) * _bufferCapacity); - - _dataBufferCapacity = 256; - _dataBufferSize = 0; - _dataBuffer = NSZoneMalloc(NULL, sizeof(uint8_t *) * _dataBufferCapacity); - - _index = 0; - _lineNumber = 1; - - _stringClass = [NSString class]; - _dictionaryClass = [NSMutableDictionary class]; - _arrayClass = [NSMutableArray class]; - - return self; -} - -- (void) dealloc { - [_data release]; - if (_stack != NULL) - NSZoneFree(NULL, _stack); - if (_buffer != NULL) - NSZoneFree(NULL, _buffer); - if (_dataBuffer != NULL) - NSZoneFree(NULL, _dataBuffer); - [super dealloc]; -} - -static BOOL _NSPropertyListNameSet[128] = { - NO, NO, NO, NO, NO, NO, NO, NO, - NO, NO, NO, NO, NO, NO, NO, NO, // 0 - NO, NO, NO, NO, NO, NO, NO, NO, - NO, NO, NO, NO, NO, NO, NO, NO, // 16 - NO, NO, NO, NO, YES, NO, NO, NO, - NO, NO, NO, NO, NO, NO, YES, YES, // 32 - YES, YES, YES, YES, YES, YES, YES, YES, - YES, YES, NO, NO, NO, NO, NO, NO, // 48 - NO, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, YES, YES, YES, YES, YES, // 64 - YES, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, NO, NO, NO, NO, YES, // 80 - NO, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, YES, YES, YES, YES, YES, // 96 - YES, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, NO, NO, NO, NO, NO, // 112 -}; - -- (id) internalError: (id) class { - int i; - - for (i = 0; i < _stackSize; i++) - [_stack[i] release]; - - [NSException raise: NSParseErrorException - format: @"*** Parse error at position %d,line %d, expecting %@ " - @"on stack", - _index, _lineNumber, [class description]]; - - return nil; -} - -- (id) parseError: (int) expect token: (int) token info: (NSString *) info { - const char *expectStr[] = {"String", "=", "Object", ", or ;", "EOF"}; - char tokenStr[2] = {token, '\0'}; - int i; - - for (i = 0; i < _stackSize; i++) - [_stack[i] release]; - - [NSException raise: NSParseErrorException - format: @"*** Parse error at position %d, line %d. src=%@. %s " - @"expected. Next token is %s.", - _index, _lineNumber, info, expectStr[expect], - (token == -1) ? "EOF" : tokenStr]; - - return nil; -} - -static inline void pushObject(NSPropertyListReader_vintage *self, id object) { - if (self->_stackSize >= self->_stackCapacity) { - self->_stackCapacity *= 2; - self->_stack = NSZoneRealloc(NULL, self->_stack, - sizeof(id) * self->_stackCapacity); - } - - self->_stack[self->_stackSize++] = object; -} - -static inline id popObject(NSPropertyListReader_vintage *self) { - if (self->_stackSize == 0) - return nil; - - self->_stackSize--; - return self->_stack[self->_stackSize]; -} - -static inline id topObject(NSPropertyListReader_vintage *self) { - if (self->_stackSize == 0) - return nil; - - return self->_stack[self->_stackSize - 1]; -} - -static inline void appendCharacter(NSPropertyListReader_vintage *self, - uint8_t c) -{ - if (self->_bufferSize >= self->_bufferCapacity) { - self->_bufferCapacity *= 2; - self->_buffer = NSZoneRealloc(NULL, self->_buffer, - self->_bufferCapacity * sizeof(unichar)); - } - self->_buffer[self->_bufferSize++] = c; -} - -static inline void appendByte(NSPropertyListReader_vintage *self, uint8_t c) { - if (self->_dataBufferSize >= self->_dataBufferCapacity) { - self->_dataBufferCapacity *= 2; - self->_dataBuffer = - NSZoneRealloc(NULL, self->_dataBuffer, - self->_dataBufferCapacity * sizeof(unichar)); - } - self->_dataBuffer[self->_dataBufferSize++] = c; -} - -- (NSObject *) propertyListWithInfo: (NSString *) info { - enum { - STATE_WHITESPACE, - STATE_COMMENT_SLASH, - STATE_COMMENT, - STATE_COMMENT_STAR, - STATE_COMMENT_DBL_SLASH, - STATE_NAME, - STATE_STRING, - STATE_STRING_SLASH, - STATE_STRING_SLASH_X00, - STATE_STRING_SLASH_XX0, - STATE_STRING_SLASH_U0000, - STATE_STRING_SLASH_UX000, - STATE_STRING_SLASH_UXX00, - STATE_STRING_SLASH_UXXX0, - STATE_DATA_HINIBBLE, - STATE_DATA_LONIBBLE, - } state = STATE_WHITESPACE; - enum { - EXPECT_KEY, - EXPECT_EQUAL, - EXPECT_VAL, - EXPECT_SEPARATOR, - EXPECT_EOF - } expect = EXPECT_VAL; - - for (_index = 0; _index < _length;) { - uint8_t code = _bytes[_index++]; - - switch (state) { - - case STATE_WHITESPACE: - if (code <= ' ') { - if (code == '\n') - _lineNumber++; - - state = STATE_WHITESPACE; - } else if (code == '/') - state = STATE_COMMENT_SLASH; - else if (code < 128 && _NSPropertyListNameSet[code]) { - _bufferSize = 0; - appendCharacter(self, code); - state = STATE_NAME; - } else if (code == '\"') { - if (expect != EXPECT_KEY && expect != EXPECT_VAL) - return [self parseError: expect token: code info: info]; - - _bufferSize = 0; - state = STATE_STRING; - } else if (code == '<') { - if (expect != EXPECT_KEY && expect != EXPECT_VAL) - return [self parseError: expect token: code info: info]; - - _dataBufferSize = 0; - state = STATE_DATA_HINIBBLE; - } else if (code == '{') { - if (expect != EXPECT_VAL) - return [self parseError: expect token: code info: info]; - - pushObject(self, - [[NSMutableDictionary allocWithZone: NULL] init]); - expect = EXPECT_KEY; - } else if (code == '=') { - if (expect != EXPECT_EQUAL) - return [self parseError: expect token: code info: info]; - expect = EXPECT_VAL; - } else if (code == ';') { - NSMutableDictionary *dictionary; - NSObject *key, *object; - - if (expect != EXPECT_SEPARATOR) - return [self parseError: expect token: code info: info]; - - object = popObject(self); - key = popObject(self); - if (![key isKindOfClass: _stringClass]) { - [key release]; - [object release]; - return [self internalError: _stringClass]; - } - - dictionary = topObject(self); - if (![dictionary isKindOfClass: _dictionaryClass]) { - [key release]; - [object release]; - return [self internalError: _dictionaryClass]; - } - [dictionary setObject: object forKey: key]; - [key release]; - [object release]; - expect = EXPECT_KEY; - } else if (code == '}') { - if (expect != EXPECT_KEY) - return [self parseError: expect token: code info: info]; - - if (![topObject(self) isKindOfClass: _dictionaryClass]) - return [self internalError: _dictionaryClass]; - - expect = (_stackSize == 1) ? EXPECT_EOF : EXPECT_SEPARATOR; - } else if (code == '(') { - if (expect != EXPECT_VAL) - return [self parseError: expect token: code info: info]; - - pushObject(self, [[NSMutableArray allocWithZone: NULL] init]); - expect = EXPECT_VAL; - } else if (code == ',') { - NSMutableArray *array; - NSObject *object; - - if (expect != EXPECT_SEPARATOR) - return [self parseError: expect token: code info: info]; - - object = popObject(self); - - array = topObject(self); - if (![array isKindOfClass: _arrayClass]) { - [object release]; - return [self internalError: _arrayClass]; - } - - [array addObject: object]; - [object release]; - expect = EXPECT_VAL; - } else if (code == ')') { - NSMutableArray *array; - NSObject *object; - - if (expect != EXPECT_VAL && expect != EXPECT_SEPARATOR) - return [self parseError: expect token: code info: info]; - - if (expect == EXPECT_VAL) - object = nil; - else - object = popObject(self); - - array = topObject(self); - if (![array isKindOfClass: _arrayClass]) { - [object release]; - return [self internalError: _arrayClass]; - } - - if (object != nil) { - [array addObject: object]; - [object release]; - } - - expect = (_stackSize == 1) ? EXPECT_EOF : EXPECT_SEPARATOR; - } else - return [self parseError: expect token: code info: info]; - break; - - case STATE_COMMENT_SLASH: - if (code == '*') - state = STATE_COMMENT; - else if (code == '/') - state = STATE_COMMENT_DBL_SLASH; - else { - _bufferSize = 0; - appendCharacter(self, '/'); - _index--; - state = STATE_NAME; - } - break; - - case STATE_COMMENT: - if (code == '*') - state = STATE_COMMENT_STAR; - break; - - case STATE_COMMENT_STAR: - if (code == '/') - state = STATE_WHITESPACE; - else if (code != '*') - state = STATE_COMMENT; - break; - - case STATE_COMMENT_DBL_SLASH: - if (code == '\n') - state = STATE_WHITESPACE; - break; - - case STATE_NAME: - if (code < 128 && _NSPropertyListNameSet[code]) - appendCharacter(self, code); - else { - NSString *string = [[NSString allocWithZone: NULL] - initWithCharacters: _buffer - length: _bufferSize]; - pushObject(self, string); - _index--; - state = STATE_WHITESPACE; - if (expect == EXPECT_KEY) - expect = EXPECT_EQUAL; - else - expect = EXPECT_SEPARATOR; - } - break; - - case STATE_STRING: - if (code == '\"') { - - NSString *string = [NSString stringWithCharacters: _buffer - length: _bufferSize]; - pushObject(self, [string retain]); - - state = STATE_WHITESPACE; - if (_stackSize == 1) - expect = EXPECT_EOF; - else if (expect == EXPECT_KEY) - expect = EXPECT_EQUAL; - else - expect = EXPECT_SEPARATOR; - } else { - if (code == '\\') - state = STATE_STRING_SLASH; - else - appendCharacter(self, code); - } - break; - - case STATE_STRING_SLASH: - switch (code) { - - case 'a': - appendCharacter(self, '\a'); - state = STATE_STRING; - break; - case 'b': - appendCharacter(self, '\b'); - state = STATE_STRING; - break; - case 'f': - appendCharacter(self, '\f'); - state = STATE_STRING; - break; - case 'n': - appendCharacter(self, '\n'); - state = STATE_STRING; - break; - case 'r': - appendCharacter(self, '\r'); - state = STATE_STRING; - break; - case 't': - appendCharacter(self, '\t'); - state = STATE_STRING; - break; - case 'v': - appendCharacter(self, '\v'); - state = STATE_STRING; - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - appendCharacter(self, code - '0'); - state = STATE_STRING_SLASH_X00; - break; - - case 'U': - appendCharacter(self, '\0'); - state = STATE_STRING_SLASH_U0000; - break; - - default: - appendCharacter(self, code); - state = STATE_STRING; - break; - } - break; - - case STATE_STRING_SLASH_X00: - if (code < '0' || code > '7') { - state = STATE_STRING; - _index--; - } else { - state = STATE_STRING_SLASH_XX0; - _buffer[_bufferSize - 1] *= 8; - _buffer[_bufferSize - 1] += code - '0'; - } - break; - - case STATE_STRING_SLASH_XX0: - state = STATE_STRING; - if (code < '0' || code > '7') - _index--; - else { - _buffer[_bufferSize - 1] *= 8; - _buffer[_bufferSize - 1] += code - '0'; - } - break; - - case STATE_STRING_SLASH_U0000: - case STATE_STRING_SLASH_UX000: - case STATE_STRING_SLASH_UXX00: - case STATE_STRING_SLASH_UXXX0: - if (code >= '0' && code <= '9') { - _buffer[_bufferSize - 1] *= 16; - _buffer[_bufferSize - 1] += code - '0'; - state = (state == STATE_STRING_SLASH_UXXX0) ? STATE_STRING - : state + 1; - } else if (code >= 'a' && code <= 'f') { - _buffer[_bufferSize - 1] *= 16; - _buffer[_bufferSize - 1] += (code - 'a') + 10; - state = (state == STATE_STRING_SLASH_UXXX0) ? STATE_STRING - : state + 1; - } else if (code >= 'A' && code <= 'F') { - _buffer[_bufferSize - 1] *= 16; - _buffer[_bufferSize - 1] += (code - 'A') + 10; - state = (state == STATE_STRING_SLASH_UXXX0) ? STATE_STRING - : state + 1; - } else { - _index--; - state = STATE_STRING; - } - break; - - case STATE_DATA_HINIBBLE: - case STATE_DATA_LONIBBLE: - if (code == '>') { - - NSData *data = [NSData dataWithBytes: _dataBuffer - length: _dataBufferSize]; - pushObject(self, [data retain]); - - state = STATE_WHITESPACE; - if (_stackSize == 1) - expect = EXPECT_EOF; - else if (expect == EXPECT_KEY) - expect = EXPECT_EQUAL; - else - expect = EXPECT_SEPARATOR; - } else if (code <= ' ') - break; - else if (code >= '0' && code <= '9') { - uint8_t nibble = code - '0'; - - if (state == STATE_DATA_HINIBBLE) { - appendByte(self, nibble << 4); - state = STATE_DATA_LONIBBLE; - } else { - _dataBuffer[_dataBufferSize - 1] |= nibble; - state = STATE_DATA_HINIBBLE; - } - } else if (code >= 'A' && code <= 'F') { - uint8_t nibble = (code - 'A') + 10; - - if (state == STATE_DATA_HINIBBLE) { - appendByte(self, nibble << 4); - state = STATE_DATA_LONIBBLE; - } else { - _dataBuffer[_dataBufferSize - 1] |= nibble; - state = STATE_DATA_HINIBBLE; - } - } else if (code >= 'a' && code <= 'f') { - uint8_t nibble = (code - 'a') + 10; - - if (state == STATE_DATA_HINIBBLE) { - appendByte(self, nibble << 4); - state = STATE_DATA_LONIBBLE; - } else { - _dataBuffer[_dataBufferSize - 1] |= nibble; - state = STATE_DATA_HINIBBLE; - } - } - - break; - } - } - - if (state == STATE_NAME && _stackSize == 0) { - NSString *result = [NSString stringWithCharacters: _buffer - length: _bufferSize]; - - return result; - } - - if (state != STATE_WHITESPACE) - return [self parseError: expect token: -1 info: info]; - - switch (expect) { - case EXPECT_EQUAL: - return [self parseError: expect token: -1 info: info]; - - case EXPECT_VAL: - return [self parseError: expect token: -1 info: info]; - - case EXPECT_SEPARATOR: - return [self parseError: expect token: -1 info: info]; - - default: - break; - } - - // FIX, make sure _stackSize is 1? - return [popObject(self) autorelease]; -} - -+ (NSObject *) propertyListFromData: (NSData *) data { - NSPropertyListReader_vintage *reader = [[self alloc] initWithData: data]; - NSObject *result = - [[[reader propertyListWithInfo: nil] retain] autorelease]; - - [reader release]; - - return result; -} - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader_xml1.h b/Foundation/NSPropertyList/NSPropertyListReader_xml1.h deleted file mode 100644 index 24dbb88c..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader_xml1.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSData, NSOldXMLElement; - -@interface NSPropertyListReader_xml1 : NSObject { -} - -+ (NSObject *) propertyListFromElement: (NSOldXMLElement *) element; - -+ (NSObject *) propertyListFromData: (NSData *) data; - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListReader_xml1.m b/Foundation/NSPropertyList/NSPropertyListReader_xml1.m deleted file mode 100644 index e6cc2878..00000000 --- a/Foundation/NSPropertyList/NSPropertyListReader_xml1.m +++ /dev/null @@ -1,267 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import "NSOldXMLDocument.h" -#import "NSOldXMLElement.h" -#import "NSOldXMLReader.h" -#import -#import -#import -#import -#import -#import -#import - -#import -#import - -NSDate *NSDateFromPlistString(NSString *string) { - NSScanner *sc = [NSScanner scannerWithString: string]; - int y; - int mo; - int d; - int h; - int mi; - int s; - NSString *str; - [sc scanInt: &y]; - [sc scanCharactersFromSet: [NSCharacterSet - characterSetWithCharactersInString: @"-"] - intoString: &str]; - [sc scanInt: &mo]; - [sc scanCharactersFromSet: [NSCharacterSet - characterSetWithCharactersInString: @"-"] - intoString: &str]; - [sc scanInt: &d]; - [sc scanCharactersFromSet: - [NSCharacterSet characterSetWithCharactersInString: @"T "] - intoString: &str]; - [sc scanInt: &h]; - [sc scanCharactersFromSet: [NSCharacterSet - characterSetWithCharactersInString: @":"] - intoString: &str]; - [sc scanInt: &mi]; - [sc scanCharactersFromSet: [NSCharacterSet - characterSetWithCharactersInString: @":"] - intoString: &str]; - [sc scanInt: &s]; - - NSCalendarDate *date = - [NSCalendarDate dateWithYear: y - month: mo - day: d - 1 - hour: h - minute: mi - second: s - timeZone: [NSTimeZone localTimeZone]]; - return date; -} - -@implementation NSPropertyListReader_xml1 - -+ (NSDictionary *) dictionaryFromElement: (NSOldXMLElement *) element { - NSMutableDictionary *result = [NSMutableDictionary dictionary]; - NSArray *contents = [element contents]; - NSInteger i, count = [contents count]; - id currentKey = nil; - - for (i = 0; i < count; i++) { - id check = [contents objectAtIndex: i]; - - if ([check isKindOfClass: [NSOldXMLElement class]]) { - if ([[check name] isEqualToString: @"key"]) - currentKey = [check stringValue]; - else - [result setObject: [self propertyListFromElement: check] - forKey: currentKey]; - } - } - return result; -} - -+ (NSArray *) arrayFromElement: (NSOldXMLElement *) element { - NSMutableArray *result = [NSMutableArray array]; - NSArray *contents = [element contents]; - NSInteger i, count = [contents count]; - - for (i = 0; i < count; i++) { - id check = [contents objectAtIndex: i]; - - if ([check isKindOfClass: [NSOldXMLElement class]]) - [result addObject: [self propertyListFromElement: check]]; - } - - return result; -} - -+ (NSData *) dataFromBase64String: (NSString *) string { - NSUInteger i, length = [string length], resultLength = 0; - unichar *buffer = NSZoneMalloc(NULL, sizeof(unichar) * length); - if (buffer == NULL) { - NSLog(@"%@: failed to allocate buffer of size %d", - NSStringFromSelector(_cmd), length); - return nil; - } - uint8_t *result = NSZoneMalloc(NULL, sizeof(uint8_t) * length); - if (result == NULL) { - NSLog(@"%@: failed to allocate buffer of size %d", - NSStringFromSelector(_cmd), length); - NSZoneFree(NULL, buffer); - return nil; - } - uint8_t partial = 0; - enum { load6High, load2Low, load4Low, load6Low } state = load6High; - - [string getCharacters: buffer]; - - for (i = 0; i < length; i++) { - unichar code = buffer[i]; - unsigned char bits; - - if (code >= 'A' && code <= 'Z') - bits = code - 'A'; - else if (code >= 'a' && code <= 'z') - bits = code - 'a' + 26; - else if (code >= '0' && code <= '9') - bits = code - '0' + 52; - else if (code == '+') - bits = 62; - else if (code == '/') - bits = 63; - else if (code == '=') { - break; - } else - continue; - - switch (state) { - - case load6High: - partial = bits << 2; - state = load2Low; - break; - - case load2Low: - partial |= bits >> 4; - result[resultLength++] = partial; - partial = bits << 4; - state = load4Low; - break; - - case load4Low: - partial |= bits >> 2; - result[resultLength++] = partial; - partial = bits << 6; - state = load6Low; - break; - - case load6Low: - partial |= bits; - result[resultLength++] = partial; - state = load6High; - break; - } - } - NSZoneFree(NULL, buffer); - return [NSData dataWithBytesNoCopy: result - length: resultLength - freeWhenDone: YES]; -} - -+ (NSData *) dataFromElement: (NSOldXMLElement *) element { - NSMutableData *result = [NSMutableData data]; - NSArray *strings = [element contents]; - NSInteger i, count = [strings count]; - - for (i = 0; i < count; i++) - [result appendData: [self dataFromBase64String: - [strings objectAtIndex: i]]]; - - return result; -} - -+ (NSDate *) dateFromElement: (NSOldXMLElement *) element { - NSString *string = [element stringValue]; - return NSDateFromPlistString(string); -} - -+ (NSObject *) propertyListFromElement: (NSOldXMLElement *) element { - NSString *name = [element name]; - id result = nil; - - if ([name isEqualToString: @"dict"]) - result = [self dictionaryFromElement: element]; - else if ([name isEqualToString: @"array"]) - result = [self arrayFromElement: element]; - else if ([name isEqualToString: @"string"]) - result = [element stringValue]; - else if ([name isEqualToString: @"integer"]) - result = [NSNumber numberWithInt: [element intValue]]; - else if ([name isEqualToString: @"real"]) - result = [NSNumber numberWithFloat: [element floatValue]]; - else if ([name isEqualToString: @"true"]) - result = [NSNumber numberWithBool: YES]; - else if ([name isEqualToString: @"false"]) - result = [NSNumber numberWithBool: NO]; - else if ([name isEqualToString: @"data"]) - result = [self dataFromElement: element]; - else if ([name isEqualToString: @"date"]) - result = [self dateFromElement: element]; - - return result; -} - -+ (NSObject *) propertyListFromContentsOfElement: (NSOldXMLElement *) element { - id result = nil; - NSArray *contents = [element contents]; - NSInteger i, count = [contents count]; - - for (i = 0; i < count; i++) { - id check = [contents objectAtIndex: i]; - - if ([check isKindOfClass: [NSOldXMLElement class]]) - result = [self propertyListFromElement: check]; - } - - return result; -} - -+ (NSObject *) propertyListFromDocument: (NSOldXMLDocument *) document { - NSOldXMLElement *root = [document rootElement]; - - return [self propertyListFromContentsOfElement: root]; -} - -+ (NSObject *) propertyListFromData: (NSData *) data { - id result = nil; - - NS_DURING - NSOldXMLDocument *document = [NSOldXMLReader documentWithData: data]; - - if (document != nil) { - result = [self propertyListFromDocument: document]; - } - NS_HANDLER - - NS_ENDHANDLER - - return result; -} - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListWriter_vintage.h b/Foundation/NSPropertyList/NSPropertyListWriter_vintage.h deleted file mode 100644 index febf1076..00000000 --- a/Foundation/NSPropertyList/NSPropertyListWriter_vintage.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMutableData, NSData; - -@interface NSPropertyListWriter_vintage : NSObject { - NSMutableData *_data; -} - -- init; - -- (void) encodePropertyList: object indent: (NSInteger) indent; - -- (NSData *) dataForRootObject: object; - -+ (NSData *) nullTerminatedASCIIDataWithString: (NSString *) string; -+ (NSData *) nullTerminatedASCIIDataWithPropertyList: plist; -+ (NSData *) dataWithPropertyList: plist; -+ (NSString *) stringWithPropertyList: plist; - -+ (BOOL) writePropertyList: object - toFile: (NSString *) path - atomically: (BOOL) atomically; - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListWriter_vintage.m b/Foundation/NSPropertyList/NSPropertyListWriter_vintage.m deleted file mode 100644 index c3140a38..00000000 --- a/Foundation/NSPropertyList/NSPropertyListWriter_vintage.m +++ /dev/null @@ -1,273 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import - -@implementation NSPropertyListWriter_vintage - -static BOOL _NSPropertyListNameSet[128] = { - NO, NO, NO, NO, NO, NO, NO, NO, - NO, NO, NO, NO, NO, NO, NO, NO, // 0 - NO, NO, NO, NO, NO, NO, NO, NO, - NO, NO, NO, NO, NO, NO, NO, NO, // 16 - NO, NO, NO, NO, YES, NO, NO, NO, - NO, NO, NO, NO, NO, NO, YES, YES, // 32 - YES, YES, YES, YES, YES, YES, YES, YES, - YES, YES, NO, NO, NO, NO, NO, NO, // 48 - NO, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, YES, YES, YES, YES, YES, // 64 - YES, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, NO, NO, NO, NO, YES, // 80 - NO, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, YES, YES, YES, YES, YES, // 96 - YES, YES, YES, YES, YES, YES, YES, YES, - YES, YES, YES, NO, NO, NO, NO, NO, // 112 -}; - -static NSInteger keySort(id key1, id key2, void *context) { - - if ([key1 isKindOfClass: objc_lookUpClass("NSString")] && - [key2 isKindOfClass: objc_lookUpClass("NSString")]) - return [key1 compare: key2]; - else - // undefined - return NSOrderedDescending; -} - -- init { - _data = [NSMutableData new]; - return self; -} - -- (void) dealloc { - [_data release]; - [super dealloc]; -} - -- (void) encodeIndent: (NSInteger) indent { - int i; - - [_data appendBytes: " " length: 1]; - for (i = 0; i < indent; i++) - [_data appendBytes: " " length: 2]; -} - -- (void) encodeString: (NSString *) string escape: (BOOL) escape { - NSUInteger length = [string length]; - unichar buffer[length]; - int i; - - [string getCharacters: buffer]; - - if (length == 0) { - [_data appendBytes: "\"\"" length: 2]; - return; - } - - for (i = 0; i < length; i++) - if (buffer[i] >= 128 || !_NSPropertyListNameSet[buffer[i]]) - break; - - if (i >= length) { - char *charBuf; - - charBuf = NSZoneMalloc(NULL, length); - - for (i = 0; i < length; i++) - charBuf[i] = buffer[i]; - - [_data appendBytes: charBuf length: length]; - NSZoneFree(NULL, charBuf); - } else { - char *charBuf; - int bufLen = 0; - - charBuf = NSZoneMalloc(NULL, length * 6 + 2); - - charBuf[bufLen++] = '\"'; - - for (i = 0; i < length; i++) { - unichar unicode = buffer[i]; - - if (unicode < ' ' || unicode == 127) { - if (!escape && unicode == '\n') { - charBuf[bufLen++] = unicode; - } else { - charBuf[bufLen++] = '\\'; - charBuf[bufLen++] = (unicode >> 6) + '0'; - charBuf[bufLen++] = ((unicode >> 3) & 0x07) + '0'; - charBuf[bufLen++] = (unicode & 0x07) + '0'; - } - } else if (unicode < 128) { - if (escape && (unicode == '\"' || unicode == '\\')) - charBuf[bufLen++] = '\\'; - charBuf[bufLen++] = unicode; - } else { - const char *hex = "0123456789ABCDEF"; - - charBuf[bufLen++] = '\\'; - charBuf[bufLen++] = 'U'; - charBuf[bufLen++] = hex[(unicode >> 12) & 0x0F]; - charBuf[bufLen++] = hex[(unicode >> 8) & 0x0F]; - charBuf[bufLen++] = hex[(unicode >> 4) & 0x0F]; - charBuf[bufLen++] = hex[unicode & 0x0F]; - } - } - - charBuf[bufLen++] = '\"'; - - [_data appendBytes: charBuf length: bufLen]; - NSZoneFree(NULL, charBuf); - } -} - -- (void) encodeArray: (NSArray *) array indent: (NSInteger) indent { - NSInteger i, count = [array count]; - - [_data appendBytes: "(\n" length: 2]; - for (i = 0; i < count; i++) { - [self encodeIndent: indent]; - [self encodePropertyList: [array objectAtIndex: i] indent: indent + 1]; - if (i + 1 < count) - [_data appendBytes: ",\n" length: 2]; - else - [_data appendBytes: "\n" length: 1]; - } - [self encodeIndent: indent - 1]; - [_data appendBytes: ")" length: 1]; -} - -- (void) encodeDictionary: (NSDictionary *) dictionary - indent: (NSInteger) indent -{ - NSArray *allKeys = [[dictionary allKeys] sortedArrayUsingFunction: keySort - context: NULL]; - NSInteger i, count = [allKeys count]; - - [_data appendBytes: "{\n" length: 2]; - for (i = 0; i < count; i++) { - id key = [allKeys objectAtIndex: i]; - - [self encodeIndent: indent]; - [self encodeString: [key description] escape: YES]; - [_data appendBytes: " = " length: 3]; - [self encodePropertyList: [dictionary objectForKey: key] - indent: indent + 1]; - [_data appendBytes: ";\n" length: 2]; - } - if (indent > 0) - [self encodeIndent: indent - 1]; - [_data appendBytes: "}" length: 1]; -} - -- (void) encodePropertyList: plist - escape: (BOOL) escape - indent: (NSInteger) indent -{ - if ([plist isKindOfClass: objc_lookUpClass("NSString")]) - [self encodeString: plist escape: escape]; - else if ([plist isKindOfClass: objc_lookUpClass("NSArray")]) - [self encodeArray: plist indent: indent]; - else if ([plist isKindOfClass: objc_lookUpClass("NSDictionary")]) - [self encodeDictionary: plist indent: indent]; - else - [self encodeString: [plist description] escape: escape]; -} - -- (void) encodePropertyList: plist indent: (NSInteger) indent { - [self encodePropertyList: plist escape: YES indent: indent]; -} - -- (NSData *) dataForRootObject: object { - [self encodePropertyList: object escape: YES indent: 0]; - return _data; -} - -- (NSData *) nullTerminatedASCIIDataWithString: (NSString *) string { - [self encodeString: string escape: NO]; - [_data appendBytes: "\0" length: 1]; - return _data; -} - -+ (NSData *) nullTerminatedASCIIDataWithString: (NSString *) string { - NSPropertyListWriter_vintage *writer = [[self alloc] init]; - NSData *result = [[[writer nullTerminatedASCIIDataWithString: string] - retain] autorelease]; - - [writer release]; - - return result; -} - -- (NSData *) nullTerminatedASCIIDataWithPropertyList: plist { - [self encodePropertyList: plist escape: YES indent: 0]; - [_data appendBytes: "\0" length: 1]; - return _data; -} - -+ (NSData *) nullTerminatedASCIIDataWithPropertyList: plist { - NSPropertyListWriter_vintage *writer = [[self alloc] init]; - NSData *result = [[[writer nullTerminatedASCIIDataWithPropertyList: plist] - retain] autorelease]; - - [writer release]; - - return result; -} - -+ (NSData *) dataWithPropertyList: plist { - NSPropertyListWriter_vintage *writer = [[self alloc] init]; - NSData *result = [[[writer dataForRootObject: plist] retain] autorelease]; - - [writer release]; - - return result; -} - -+ (NSString *) stringWithPropertyList: plist { - NSPropertyListWriter_vintage *writer = [[self alloc] init]; - NSData *data = [writer dataForRootObject: plist]; - NSString *result = [[[NSString allocWithZone: NULL] - initWithData: data - encoding: NSASCIIStringEncoding] autorelease]; - - [writer release]; - - return result; -} - -+ (BOOL) writePropertyList: object - toFile: (NSString *) path - atomically: (BOOL) atomically -{ - NSPropertyListWriter_vintage *writer = [[self alloc] init]; - NSData *data = [writer dataForRootObject: object]; - BOOL result = [data writeToFile: path atomically: atomically]; - - [writer release]; - - return result; -} - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListWriter_xml1.h b/Foundation/NSPropertyList/NSPropertyListWriter_xml1.h deleted file mode 100644 index e645f0ea..00000000 --- a/Foundation/NSPropertyList/NSPropertyListWriter_xml1.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2008 Pauli Olavi Ojala - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMutableData, NSData; - -@interface NSPropertyListWriter_xml1 : NSObject { - NSMutableData *_data; -} - -- (id) init; - -- (void) encodePropertyList: (id) object indent: (NSInteger) indent; - -- (NSData *) dataForRootObject: (id) object; - -+ (NSData *) dataWithPropertyList: (id) plist; - -@end diff --git a/Foundation/NSPropertyList/NSPropertyListWriter_xml1.m b/Foundation/NSPropertyList/NSPropertyListWriter_xml1.m deleted file mode 100644 index 65893b7f..00000000 --- a/Foundation/NSPropertyList/NSPropertyListWriter_xml1.m +++ /dev/null @@ -1,290 +0,0 @@ -/* Copyright (c) 2008 Pauli Olavi Ojala - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "NSPropertyListWriter_xml1.h" -#import -#import -#import -#import -#import -#include - -@implementation NSPropertyListWriter_xml1 - -- (id) init { - _data = [NSMutableData new]; - return self; -} - -- (void) dealloc { - [_data release]; - [super dealloc]; -} - -- (void) _encodeIndent: (NSInteger) indent { - int i; - for (i = 0; i < indent; i++) - [_data appendBytes: " " length: 4]; -} - -- (void) _encodeString: (NSString *) string { - if (!string) - return; - const char *utf8 = [string UTF8String]; - size_t len = strlen(utf8); - - if (utf8 && len > 0) { - // FIXME: to match Cocoa, the string should be escaped HTML-style - // (e.g. '>' --> ">") instead of using CDATA - BOOL addCDATA = ([string rangeOfString: @"<"].location != NSNotFound || - [string rangeOfString: @">"].location != NSNotFound || - [string rangeOfString: @"&"].location != NSNotFound || - [string rangeOfString: @"\'"].location != NSNotFound || - [string rangeOfString: @"\""].location != NSNotFound); - - if (addCDATA) - [_data appendBytes: "" length: 3]; - } -} - -- (void) encodeString: (NSString *) string indent: (NSInteger) indent { - [self _encodeIndent: indent]; - - [_data appendBytes: "" length: 8]; - [self _encodeString: string]; - [_data appendBytes: "\n" length: 10]; -} - -- (void) encodeKey: (NSString *) key indent: (NSInteger) indent { - [self _encodeIndent: indent]; - - [_data appendBytes: "" length: 5]; - [self _encodeString: key]; - [_data appendBytes: "\n" length: 7]; -} - -- (void) encodeInteger: (NSInteger) integer { - [_data appendBytes: "" length: 9]; - [self _encodeString: [NSString stringWithFormat: @"%i", integer]]; - [_data appendBytes: "\n" length: 11]; -} - -- (void) encodeUnsignedInteger: (NSUInteger) uinteger { - [_data appendBytes: "" length: 9]; - [self _encodeString: [NSString stringWithFormat: @"%u", uinteger]]; - [_data appendBytes: "\n" length: 11]; -} - -- (void) encodeReal: (NSNumber *) number { - [_data appendBytes: "" length: 6]; - [self _encodeString: [NSString stringWithFormat: @"%.16f", - [number doubleValue]]]; - [_data appendBytes: "\n" length: 8]; -} - -- (void) encodeChar: (char) ch { - // all chars of value 0 or 1 are interpreted as BOOL. - // not sure if this is a good idea, but BOOL doesn't have a type encoding of - // its own, so I don't know what else to do - if (ch == NO) { - [_data appendBytes: "\n" length: 9]; - } else if (ch == YES) { - [_data appendBytes: "\n" length: 8]; - } else { - [self encodeInteger: ch]; - } -} - -- (void) encodeNumber: (NSNumber *) number indent: (NSInteger) indent { - [self _encodeIndent: indent]; - - const char *type = [number objCType]; - - // TODO: should possibly handle other integer type encodings such as long - // long? - switch (*type) { - case 'i': - case 'l': - [self encodeInteger: [number intValue]]; - break; - - case 'I': - case 'L': - [self encodeUnsignedInteger: [number unsignedIntValue]]; - break; - - case 'c': // this is the encoding for BOOL - [self encodeChar: [number charValue]]; - break; - - case 'f': - case 'd': - default: - [self encodeReal: number]; - break; - } -} - -- (void) encodeArray: (NSArray *) array indent: (NSInteger) indent { - NSUInteger i, count = [array count]; - - [self _encodeIndent: indent]; - [_data appendBytes: "\n" length: 8]; - indent++; - - for (i = 0; i < count; i++) { - id obj = [array objectAtIndex: i]; - [self encodePropertyList: obj indent: indent]; - } - - indent--; - [self _encodeIndent: indent]; - [_data appendBytes: "\n" length: 9]; -} - -- (void) encodeDictionary: (NSDictionary *) dictionary - indent: (NSInteger) indent -{ - NSArray *allKeys = [[dictionary allKeys] - sortedArrayUsingSelector: @selector(compare:)]; - - NSUInteger i, count = [allKeys count]; - - [self _encodeIndent: indent]; - [_data appendBytes: "\n" length: 7]; - indent++; - - for (i = 0; i < count; i++) { - id key = [allKeys objectAtIndex: i]; - - [self encodeKey: key indent: indent]; - [self encodePropertyList: [dictionary objectForKey: key] - indent: indent]; - } - - indent--; - [self _encodeIndent: indent]; - [_data appendBytes: "\n" length: 8]; -} - -- (void) encodeData: (NSData *) data indent: (NSInteger) indent { - static const char b64[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - - NSUInteger y, n; - const NSUInteger len = [data length]; - const uint8_t *bytes = [data bytes]; - - [self _encodeIndent: indent]; - [_data appendBytes: "\n" length: 7]; - indent++; - - const NSUInteger numRows = - 1 + len / 45; // 60 chars per output row -> 45 input bytes per row - uint8_t srcBuf[48]; - uint8_t dstBuf[64]; - - n = 0; - for (y = 0; y < numRows; y++) { - const NSUInteger rowSrcLen = (y < numRows - 1) ? 45 : (len - n); - - [self _encodeIndent: indent]; - - memcpy(srcBuf, bytes + n, rowSrcLen); - n += rowSrcLen; - - if (rowSrcLen < 45) - memset(srcBuf + rowSrcLen, 0, 45 - rowSrcLen); - - unsigned char *inBuf = srcBuf; - unsigned char *outBuf = dstBuf; - int x; - for (x = 0; x < rowSrcLen; x += 3) { - const NSInteger blockLen = - (x + 3 < rowSrcLen) ? 3 : (rowSrcLen - x); - - // base64 encode - outBuf[0] = b64[inBuf[0] >> 2]; - outBuf[1] = - b64[((inBuf[0] & 0x03) << 4) | ((inBuf[1] & 0xf0) >> 4)]; - outBuf[2] = (unsigned char) (blockLen > 1) - ? b64[((inBuf[1] & 0x0f) << 2) | - ((inBuf[2] & 0xc0) >> 6)] - : '='; - outBuf[3] = - (unsigned char) (blockLen > 2) ? b64[inBuf[2] & 0x3f] : '='; - inBuf += 3; - outBuf += 4; - } - outBuf[0] = (unsigned char) '\n'; - - [_data appendBytes: dstBuf length: (outBuf - dstBuf + 1)]; - } - - indent--; - [self _encodeIndent: indent]; - [_data appendBytes: "\n" length: 8]; -} - -- (void) encodePropertyList: (id) plist indent: (NSInteger) indent { - if ([plist isKindOfClass: objc_lookUpClass("NSString")]) - [self encodeString: plist indent: indent]; - else if ([plist isKindOfClass: objc_lookUpClass("NSArray")]) - [self encodeArray: plist indent: indent]; - else if ([plist isKindOfClass: objc_lookUpClass("NSDictionary")]) - [self encodeDictionary: plist indent: indent]; - else if ([plist isKindOfClass: objc_lookUpClass("NSNumber")]) - [self encodeNumber: plist indent: indent]; - else if ([plist isKindOfClass: objc_lookUpClass("NSData")]) - [self encodeData: plist indent: indent]; - else - [self encodeString: [plist description] indent: indent]; - - // TODO: NSDate needs special encoding as well -} - -- (NSData *) dataForRootObject: (id) object { - const char header[] = - "\n" - "\n"; - [_data appendBytes: header length: strlen(header)]; - - [_data appendBytes: "\n" length: 22]; - - [self encodePropertyList: object indent: 0]; - - [_data appendBytes: "\n" length: 9]; - - return _data; -} - -+ (NSData *) dataWithPropertyList: (id) plist { - NSPropertyListWriter_xml1 *writer = [[self alloc] init]; - NSData *result = [[[writer dataForRootObject: plist] retain] autorelease]; - - [writer release]; - - return result; -} - -@end diff --git a/Foundation/NSProxy.h b/Foundation/NSProxy.h deleted file mode 100644 index d94dbbe0..00000000 --- a/Foundation/NSProxy.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMethodSignature, NSInvocation; - -NS_ROOT_CLASS @interface NSProxy { - Class isa; -} - -+ allocWithZone: (NSZone *) zone; -+ alloc; - -+ (Class) class; -//+(BOOL)respondsToSelector:(SEL)selector; - -- (void) dealloc; -- (void) finalize; - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) selector; -- (void) forwardInvocation: (NSInvocation *) invocation; - -- (NSString *) description; - -@end diff --git a/Foundation/NSProxy.m b/Foundation/NSProxy.m deleted file mode 100644 index ef0d797c..00000000 --- a/Foundation/NSProxy.m +++ /dev/null @@ -1,241 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import - -@interface NSInvocation (private) -+ (NSInvocation *) invocationWithMethodSignature: - (NSMethodSignature *) signature - arguments: (void *) arguments; -@end - -@implementation NSProxy - -+ (void) load { -} - -+ (Class) class { - return self; -} - -/* - FIXME: should we implement this? The Apple implementation does _not_ throw an -exception, so we may not, either -+(BOOL)respondsToSelector:(SEL)selector { - NSUnimplementedMethod(); - return NO; -} - */ - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject(self, 0, zone); -} - -+ alloc { - return [self allocWithZone: NULL]; -} - -- (void) dealloc { - NSDeallocateObject((id) self); -} - -- (void) finalize { - // do nothing? -} - -- (void) doesNotRecognizeSelector: (SEL) selector { - [NSException raise: NSInvalidArgumentException - format: @"%c[%@ %@]: selector not recognized", - class_isMetaClass([self class]) ? '+' : '-', - NSStringFromClass([self class]), - NSStringFromSelector(selector)]; -} - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) selector { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) forwardInvocation: (NSInvocation *) invocation { - NSInvalidAbstractInvocation(); -} - -- (id) forwardSelector: (SEL) selector arguments: (void *) arguments { - NSMethodSignature *signature = [self methodSignatureForSelector: selector]; - - if (signature == nil) { - [self doesNotRecognizeSelector: selector]; - return nil; - } else { - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature - arguments: arguments]; - // char result[[signature methodReturnLength]]; - id result; - - [self forwardInvocation: invocation]; - [invocation getReturnValue: &result]; - - // __builtin_return(result); Can we use __builtin_return like this? It - // still doesn't seem to work on float/doubles ? - return result; - } -} - -- (NSUInteger) hash { - return (NSUInteger) self >> 4; -} - -- (BOOL) isEqual: object { - return (self == object); -} - -- self { - return self; -} - -- (Class) class { - return [self class]; -} - -- (Class) superclass { - return class_getSuperclass([self class]); -} - -- (NSZone *) zone { - return NSZoneFromPointer(self); -} - -- performSelector: (SEL) selector { -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - IMP imp = class_getMethodImplementation(object_getClass(self), selector); -#else - IMP imp = objc_msg_lookup(self, selector); -#endif - return imp(self, selector); -} - -- performSelector: (SEL) selector withObject: object1 { -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - IMP imp = class_getMethodImplementation(object_getClass(self), selector); -#else - IMP imp = objc_msg_lookup(self, selector); -#endif - return imp(self, selector, object1); -} - -- performSelector: (SEL) selector withObject: object1 withObject: object2 { -#if defined(GCC_RUNTIME_3) || defined(APPLE_RUNTIME_4) - IMP imp = class_getMethodImplementation(object_getClass(self), selector); -#else - IMP imp = objc_msg_lookup(self, selector); -#endif - return imp(self, selector, object1, object2); -} - -- (BOOL) isProxy { - return YES; -} - -- (BOOL) isKindOfClass: (Class) class { - NSMethodSignature *signature = [self methodSignatureForSelector: _cmd]; - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature]; - BOOL returnValue; - - [self forwardInvocation: invocation]; - - [invocation getReturnValue: &returnValue]; - - return returnValue; -} - -- (BOOL) isMemberOfClass: (Class) class { - NSMethodSignature *signature = [self methodSignatureForSelector: _cmd]; - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature]; - BOOL returnValue; - - [self forwardInvocation: invocation]; - - [invocation getReturnValue: &returnValue]; - - return returnValue; -} - -- (BOOL) conformsToProtocol: (Protocol *) protocol { - NSMethodSignature *signature = [self methodSignatureForSelector: _cmd]; - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature]; - BOOL returnValue; - - [self forwardInvocation: invocation]; - - [invocation getReturnValue: &returnValue]; - - return returnValue; -} - -- (BOOL) respondsToSelector: (SEL) selector { - NSMethodSignature *signature = [self methodSignatureForSelector: _cmd]; - NSInvocation *invocation = - [NSInvocation invocationWithMethodSignature: signature]; - BOOL returnValue; - - [self forwardInvocation: invocation]; - - [invocation getReturnValue: &returnValue]; - - return returnValue; -} - -- autorelease { - return NSAutorelease(self); -} - -- (oneway void) release { - if (NSDecrementExtraRefCountWasZero(self)) - [self dealloc]; -} - -- retain { - NSIncrementExtraRefCount(self); - return self; -} - -- (NSUInteger) retainCount { - return NSExtraRefCount(self); -} - -- (NSString *) description { - return NSStringWithFormat(@"<%@: 0x%0x>", NSStringFromClass([self class]), - self); -} - -- (NSString *) debugDescription { - return [self description]; -} - -@end diff --git a/Foundation/NSRange.h b/Foundation/NSRange.h deleted file mode 100644 index 22510fb8..00000000 --- a/Foundation/NSRange.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef struct _NSRange { - NSUInteger location; - NSUInteger length; -} NSRange; - -typedef NSRange *NSRangePointer; - -FOUNDATION_EXPORT NSRange NSMakeRange(NSUInteger location, NSUInteger length); -FOUNDATION_EXPORT BOOL NSEqualRanges(NSRange range, NSRange otherRange); -FOUNDATION_EXPORT NSUInteger NSMaxRange(NSRange range); -FOUNDATION_EXPORT NSString *NSStringFromRange(NSRange range); -FOUNDATION_EXPORT NSRange NSRangeFromString(NSString *s); - -FOUNDATION_EXPORT BOOL NSLocationInRange(NSUInteger location, NSRange range); -FOUNDATION_EXPORT NSRange NSIntersectionRange(NSRange range, - NSRange otherRange); -FOUNDATION_EXPORT NSRange NSUnionRange(NSRange range, NSRange otherRange); diff --git a/Foundation/NSRange.m b/Foundation/NSRange.m deleted file mode 100644 index b47ab5ba..00000000 --- a/Foundation/NSRange.m +++ /dev/null @@ -1,94 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -NSRange NSMakeRange(NSUInteger location, NSUInteger length) { - NSRange range = {location, length}; - return range; -} - -BOOL NSEqualRanges(NSRange range, NSRange otherRange) { - return (range.location == otherRange.location && - range.length == otherRange.length); -} - -NSUInteger NSMaxRange(NSRange range) { - return range.location + range.length; -} - -NSString *NSStringFromRange(NSRange range) { - return NSStringWithFormat(@"{%u, %u}", range.location, range.length); -} - -NSRange NSRangeFromString(NSString *s) { - NSRange result = NSMakeRange(0, 0); - NSScanner *scanner = [NSScanner scannerWithString: s]; - NSCharacterSet *digitSet = [NSCharacterSet decimalDigitCharacterSet]; - - [scanner scanUpToCharactersFromSet: digitSet intoString: (id *) nil]; - if (![scanner isAtEnd]) { - [scanner scanInt: (int *) &result.location]; - [scanner scanUpToCharactersFromSet: digitSet intoString: (id *) nil]; - if (![scanner isAtEnd]) { - [scanner scanInt: (int *) &result.length]; - } - } - return result; -} - -BOOL NSLocationInRange(NSUInteger location, NSRange range) { - return (location >= range.location && location < NSMaxRange(range)) ? YES - : NO; -} - -NSRange NSIntersectionRange(NSRange range, NSRange otherRange) { - NSUInteger min, loc, max1 = NSMaxRange(range), - max2 = NSMaxRange(otherRange); - NSRange result; - - min = (max1 < max2) ? max1 : max2; - loc = (range.location > otherRange.location) ? range.location - : otherRange.location; - - if (min < loc) - result.location = result.length = 0; - else { - result.location = loc; - result.length = min - loc; - } - - return result; -} - -NSRange NSUnionRange(NSRange range, NSRange otherRange) { - NSUInteger max, loc, max1 = NSMaxRange(range), - max2 = NSMaxRange(otherRange); - NSRange result; - - max = (max1 > max2) ? max1 : max2; - loc = (range.location < otherRange.location) ? range.location - : otherRange.location; - - result.location = loc; - result.length = max - result.location; - return result; -} diff --git a/Foundation/NSRunLoop/NSDelayedPerform.h b/Foundation/NSRunLoop/NSDelayedPerform.h deleted file mode 100644 index 6994dfab..00000000 --- a/Foundation/NSRunLoop/NSDelayedPerform.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSDelayedPerform : NSObject { - id _object; - SEL _selector; - id _argument; -} - -+ (NSDelayedPerform *) delayedPerformWithObject: object - selector: (SEL) selector - argument: argument; - -- (BOOL) isEqualToPerform: (NSDelayedPerform *) other; - -- (void) perform; - -@end diff --git a/Foundation/NSRunLoop/NSDelayedPerform.m b/Foundation/NSRunLoop/NSDelayedPerform.m deleted file mode 100644 index be313290..00000000 --- a/Foundation/NSRunLoop/NSDelayedPerform.m +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSDelayedPerform - -- initWithObject: object selector: (SEL) selector argument: argument { - _object = [object retain]; - _selector = selector; - _argument = [argument retain]; - return self; -} - -- (void) dealloc { - [_object release]; - [_argument release]; - [super dealloc]; -} - -+ (NSDelayedPerform *) delayedPerformWithObject: object - selector: (SEL) selector - argument: argument -{ - return [[[self allocWithZone: NULL] initWithObject: object - selector: selector - argument: argument] autorelease]; -} - -- (BOOL) isEqualToPerform: (NSDelayedPerform *) other { - if (_object != other->_object) - return NO; - - if (_selector == NULL || other->_selector == NULL) - return YES; - - if (_selector != other->_selector) - return NO; - if (_argument != other->_argument) - return NO; - - return YES; -} - -- (void) perform { - @try { - [_object performSelector: _selector withObject: _argument]; - } @catch (id ex) { - NSLog(@"exception %@ raised during delayed perform", ex); - } -} - -@end diff --git a/Foundation/NSRunLoop/NSInputSource.h b/Foundation/NSRunLoop/NSInputSource.h deleted file mode 100644 index 255a1eb9..00000000 --- a/Foundation/NSRunLoop/NSInputSource.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDate; - -@interface NSInputSource : NSObject - -- (BOOL) isValid; -- (void) invalidate; - -- (BOOL) processInputImmediately; - -@end diff --git a/Foundation/NSRunLoop/NSInputSource.m b/Foundation/NSRunLoop/NSInputSource.m deleted file mode 100644 index 56ee774b..00000000 --- a/Foundation/NSRunLoop/NSInputSource.m +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@implementation NSInputSource - -- (BOOL) isValid { - return YES; -} - -- (void) invalidate { -} - -- (BOOL) processInputImmediately { - return NO; -} - -@end diff --git a/Foundation/NSRunLoop/NSInputSourceSet.h b/Foundation/NSRunLoop/NSInputSourceSet.h deleted file mode 100644 index d0e382b4..00000000 --- a/Foundation/NSRunLoop/NSInputSourceSet.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDate, NSInputSource, NSSet, NSMutableSet; - -@interface NSInputSourceSet : NSObject { - NSMutableSet *_inputSources; -} - -- (NSUInteger) count; - -- (BOOL) recognizesInputSource: (NSInputSource *) source; - -- (void) addInputSource: (NSInputSource *) source; -- (void) removeInputSource: (NSInputSource *) source; - -- (NSSet *) validInputSources; - -- (BOOL) fireSingleImmediateInputInMode: (NSString *) mode; - -- (void) startingInMode: (NSString *) mode; - -- (void) waitInBackgroundInMode: (NSString *) mode; - -- (BOOL) waitForInputInMode: (NSString *) mode beforeDate: (NSDate *) date; - -@end diff --git a/Foundation/NSRunLoop/NSInputSourceSet.m b/Foundation/NSRunLoop/NSInputSourceSet.m deleted file mode 100644 index d95a4fb9..00000000 --- a/Foundation/NSRunLoop/NSInputSourceSet.m +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import - -@implementation NSInputSourceSet - -- init { - _inputSources = [NSMutableSet new]; - return self; -} - -- (void) dealloc { - [_inputSources release]; - [super dealloc]; -} - -- (NSUInteger) count { - return [_inputSources count]; -} - -- (BOOL) recognizesInputSource: (NSInputSource *) source { - return NO; -} - -- (void) addInputSource: (NSInputSource *) source { - [_inputSources addObject: source]; -} - -- (void) removeInputSource: (NSInputSource *) source { - [_inputSources removeObject: source]; -} - -- (void) startingInMode: (NSString *) mode { - // do nothing -} - -- (NSSet *) validInputSources { - NSEnumerator *state = [_inputSources objectEnumerator]; - NSMutableArray *invalid = nil; - NSInputSource *check; - - while ((check = [state nextObject]) != nil) { - if (![check isValid]) { - if (invalid == nil) - invalid = [NSMutableArray array]; - - [invalid addObject: check]; - } - } - - while ((check = [invalid lastObject]) != nil) { - [_inputSources removeObject: check]; - [invalid removeLastObject]; - } - - return _inputSources; -} - -- (BOOL) fireSingleImmediateInputInMode: (NSString *) mode { - NSEnumerator *state = [[self validInputSources] objectEnumerator]; - NSInputSource *check; - - while ((check = [state nextObject]) != nil) { - if ([check processInputImmediately]) - return YES; - } - - return NO; -} - -- (void) waitInBackgroundInMode: (NSString *) mode { - NSInvalidAbstractInvocation(); -} - -- (BOOL) waitForInputInMode: (NSString *) mode beforeDate: (NSDate *) date { - NSInvalidAbstractInvocation(); - return NO; -} - -@end diff --git a/Foundation/NSRunLoop/NSOrderedPerform.h b/Foundation/NSRunLoop/NSOrderedPerform.h deleted file mode 100644 index a44db8fe..00000000 --- a/Foundation/NSRunLoop/NSOrderedPerform.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray; - -@interface NSOrderedPerform : NSObject { - SEL _selector; - id _target; - id _argument; - NSUInteger _order; - NSArray *_modes; -} - -+ (NSOrderedPerform *) orderedPerformWithSelector: (SEL) selector - target: target - argument: argument - order: (NSUInteger) order - modes: (NSArray *) modes; - -- (SEL) selector; -- (id) target; -- (id) argument; -- (NSUInteger) order; - -- (BOOL) fireInMode: (NSString *) mode; - -@end diff --git a/Foundation/NSRunLoop/NSOrderedPerform.m b/Foundation/NSRunLoop/NSOrderedPerform.m deleted file mode 100644 index 96583888..00000000 --- a/Foundation/NSRunLoop/NSOrderedPerform.m +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSOrderedPerform - -- initWithSelector: (SEL) selector - target: target - argument: argument - order: (NSUInteger) order - modes: (NSArray *) modes -{ - _selector = selector; - _target = [target retain]; - _argument = [argument retain]; - _order = order; - _modes = [modes copy]; - return self; -} - -- (void) dealloc { - [_modes release]; - [_target release]; - [_argument release]; - [super dealloc]; -} - -+ (NSOrderedPerform *) orderedPerformWithSelector: (SEL) selector - target: target - argument: argument - order: (NSUInteger) order - modes: (NSArray *) modes -{ - return [[[self alloc] initWithSelector: selector - target: target - argument: argument - order: order - modes: modes] autorelease]; -} - -- (SEL) selector { - return _selector; -} - -- (id) target { - return _target; -} - -- (id) argument { - return _argument; -} - -- (NSUInteger) order { - return _order; -} - -- (BOOL) fireInMode: (NSString *) mode { - if ([_modes containsObject: mode]) { - @try { - [_target performSelector: _selector withObject: _argument]; - } @catch (id ex) { - NSLog(@"exception %@ raised during ordered perform", ex); - } - return YES; - } - return NO; -} - -@end diff --git a/Foundation/NSRunLoop/NSRunLoop-InputSource.h b/Foundation/NSRunLoop/NSRunLoop-InputSource.h deleted file mode 100644 index 129a00aa..00000000 --- a/Foundation/NSRunLoop/NSRunLoop-InputSource.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDelayedPerform; - -@interface NSRunLoop (private) - -- (void) invalidateTimerWithDelayedPerform: (NSDelayedPerform *) delayed; - -@end diff --git a/Foundation/NSRunLoop/NSRunLoop.h b/Foundation/NSRunLoop/NSRunLoop.h deleted file mode 100644 index e9561554..00000000 --- a/Foundation/NSRunLoop/NSRunLoop.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSTimer, NSDate, NSMutableArray, NSInputSource, NSPort, NSPipe; - -FOUNDATION_EXPORT NSString *const NSDefaultRunLoopMode; -FOUNDATION_EXPORT NSString *const NSRunLoopCommonModes; - -@interface NSRunLoop : NSObject { - NSMapTable *_modes; - NSMutableArray *_commonModes; - NSString *_currentMode; - NSMutableArray *_continue; - NSMutableArray *_orderedPerforms; -} - -+ (NSRunLoop *) currentRunLoop; -+ (NSRunLoop *) mainRunLoop; - -- (NSString *) currentMode; -- (CFRunLoopRef) getCFRunLoop; - -- (NSDate *) limitDateForMode: (NSString *) mode; -- (void) acceptInputForMode: (NSString *) mode beforeDate: (NSDate *) date; - -- (BOOL) runMode: (NSString *) mode beforeDate: (NSDate *) date; -- (void) runUntilDate: (NSDate *) date; -- (void) run; - -- (void) addPort: (NSPort *) port forMode: (NSString *) mode; -- (void) removePort: (NSPort *) port forMode: (NSString *) mode; - -- (void) addInputSource: (NSInputSource *) source forMode: (NSString *) mode; -- (void) removeInputSource: (NSInputSource *) source forMode: (NSString *) mode; - -- (void) addTimer: (NSTimer *) timer forMode: (NSString *) mode; - -- (void) performSelector: (SEL) selector - target: target - argument: argument - order: (NSUInteger) order - modes: (NSArray *) modes; - -- (void) cancelPerformSelector: (SEL) selector - target: target - argument: argument; -- (void) cancelPerformSelectorsWithTarget: target; - -@end - -@interface NSObject (NSRunLoop_delayedPerform) - -- (void) performSelector: (SEL) selector - withObject: object - afterDelay: (NSTimeInterval) delay; -- (void) performSelector: (SEL) selector - withObject: object - afterDelay: (NSTimeInterval) delay - inModes: (NSArray *) modes; - -+ (void) cancelPreviousPerformRequestsWithTarget: target - selector: (SEL) selector - object: object; -+ (void) cancelPreviousPerformRequestsWithTarget: target; - -@end diff --git a/Foundation/NSRunLoop/NSRunLoop.m b/Foundation/NSRunLoop/NSRunLoop.m deleted file mode 100644 index 0effb56d..00000000 --- a/Foundation/NSRunLoop/NSRunLoop.m +++ /dev/null @@ -1,431 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import - -#import -#import -#import -#import -#import - -NSString *const NSDefaultRunLoopMode = @"kCFRunLoopDefaultMode"; -NSString *const NSRunLoopCommonModes = @"kCFRunLoopCommonModes"; - -@implementation NSRunLoop - -+ (NSRunLoop *) currentRunLoop { - return NSThreadSharedInstance(@"NSRunLoop"); -} - -+ (NSRunLoop *) mainRunLoop { - return [[NSThread mainThread] sharedObjectForClassName: @"NSRunLoop"]; -} - -- init { - NSInputSource *parentDeath; - - _modes = NSCreateMapTableWithZone( - NSObjectMapKeyCallBacks, NSObjectMapValueCallBacks, 0, [self zone]); - _commonModes = [[NSMutableArray alloc] init]; - [_commonModes addObject: NSDefaultRunLoopMode]; - _currentMode = NSDefaultRunLoopMode; - _continue = [[NSMutableArray alloc] init]; - _orderedPerforms = [NSMutableArray new]; - - if ((parentDeath = [[NSPlatform currentPlatform] parentDeathInputSource]) != - nil) - [self addInputSource: parentDeath forMode: NSDefaultRunLoopMode]; - - return self; -} - -- (void) dealloc { - NSFreeMapTable(_modes); - [_currentMode release]; - [_commonModes release]; - [_continue release]; - [_orderedPerforms release]; - [super dealloc]; -} - -- (NSRunLoopState *) stateForMode: (NSString *) mode { - NSRunLoopState *state = NSMapGet(_modes, mode); - - if (state == nil) { - state = [[NSRunLoopState new] autorelease]; - NSMapInsert(_modes, mode, state); - } - - return state; -} - -- (NSArray *) statesForMode: (NSString *) mode { - NSMutableArray *result = [NSMutableArray array]; - - if ([mode isEqualToString: NSRunLoopCommonModes]) { - for (NSString *common in _commonModes) - [result addObject: [self stateForMode: common]]; - } else { - [result addObject: [self stateForMode: mode]]; - } - - return result; -} - -- (BOOL) _orderedPerforms { - BOOL didPerform = NO; - id performs = nil; - - @synchronized(_orderedPerforms) { - performs = [_orderedPerforms copy]; - } - int count = [performs count]; - - while (--count >= 0) { - BOOL tryPerform = NO; - NSOrderedPerform *check = [performs objectAtIndex: count]; - - // if this object is still in _orderedPerforms, set tryPerform and - // remove it, otherwise it was performed or removed already, and there's - // nothing to do - @synchronized(_orderedPerforms) { - int prevCount = [_orderedPerforms count]; - [_orderedPerforms removeObjectIdenticalTo: check]; - if ([_orderedPerforms count] < prevCount) { - tryPerform = YES; // it was removed - } - } - - if (tryPerform) { - // be careful the lock on _orderedPerforms is not held while we fire - // the perform - // TODO: right now, all modes are common modes - - if ([check fireInMode: _currentMode]) { - didPerform = YES; - } else { - // re-add it, so it can be executed another time - @synchronized(_orderedPerforms) { - [_orderedPerforms insertObject: check - atIndex: [_orderedPerforms count]]; - } - } - } - } - [performs release]; - return didPerform; -} - -- (NSString *) currentMode { - return _currentMode; -} - -- (CFRunLoopRef) getCFRunLoop { - return (CFRunLoopRef) self; -} - -- (void) _wakeUp { - [[self stateForMode: _currentMode] wakeUp]; -} - -- (NSDate *) limitDateForMode: (NSString *) mode { - NSRunLoopState *state = [self stateForMode: mode]; - - mode = [mode retain]; - [_currentMode release]; - _currentMode = mode; - - [state startingInMode: mode]; - - if ([self _orderedPerforms]) { - //[self _wakeUp]; - } - if ([state fireFirstTimer]) { - //[self _wakeUp]; - } - [[NSNotificationQueue defaultQueue] asapProcessMode: mode]; - - return [state limitDateForMode: mode]; -} - -- (void) acceptInputForMode: (NSString *) mode beforeDate: (NSDate *) date { - NSRunLoopState *state = [self stateForMode: mode]; - - if ([[NSNotificationQueue defaultQueue] hasIdleNotificationsInMode: mode]) { - if (![state pollInputForMode: mode]) - [[NSNotificationQueue defaultQueue] idleProcessMode: mode]; - } else { - [state waitForSingleInputForMode: mode beforeDate: date]; - } -} - -- (void) invalidateTimerWithDelayedPerform: (NSDelayedPerform *) delayed { - NSMapEnumerator state = NSEnumerateMapTable(_modes); - NSString *mode; - NSRunLoopState *modeState; - - while (NSNextMapEnumeratorPair(&state, (void **) &mode, - (void **) &modeState)) - [modeState invalidateTimerWithDelayedPerform: delayed]; -} - -@class NSSelectInputSource, NSSocket; - -- (BOOL) runMode: (NSString *) mode beforeDate: (NSDate *) date { - BOOL didProcessAnything = NO; - - do { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - NSDate *limitDate = [self limitDateForMode: mode]; - - if (limitDate == nil) { - [pool release]; - return didProcessAnything; - } - - limitDate = [limitDate earlierDate: date]; - - didProcessAnything = YES; - - NSRunLoopState *state = [self stateForMode: mode]; - - if ([[NSNotificationQueue defaultQueue] - hasIdleNotificationsInMode: mode]) { - if ([state pollInputForMode: mode]) { - [pool release]; - return YES; - } else { - [[NSNotificationQueue defaultQueue] idleProcessMode: mode]; - } - } else { - [state waitForSingleInputForMode: mode beforeDate: limitDate]; - [pool release]; - return YES; - } - - [pool release]; - - } while ([date timeIntervalSinceNow] > 0); - - return YES; -} - -- (void) runUntilDate: (NSDate *) date { - while ([self runMode: NSDefaultRunLoopMode beforeDate: date]) - if ([date timeIntervalSinceNow] <= 0) - break; -} - -- (void) run { - // Calling -run w/o a pool in place is valid, which is why we need one here - // for the NSDate. Could get rid of the pool if the date was not - // autoreleased. - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - NSDate *future = [NSDate distantFuture]; - - while ([self runMode: NSDefaultRunLoopMode beforeDate: future]) - ; - - [pool release]; -} - -- (void) addPort: (NSPort *) port forMode: (NSString *) mode { - NSUnimplementedMethod(); -} - -- (void) removePort: (NSPort *) port forMode: (NSString *) mode { - NSUnimplementedMethod(); -} - -- (void) addInputSource: (NSInputSource *) source forMode: (NSString *) mode { - NSArray *modeStates = [self statesForMode: mode]; - - for (NSRunLoopState *state in modeStates) - [state addInputSource: source]; -} - -- (void) removeInputSource: (NSInputSource *) source - forMode: (NSString *) mode -{ - NSArray *modeStates = [self statesForMode: mode]; - - for (NSRunLoopState *state in modeStates) - [state removeInputSource: source]; -} - -- (void) addTimer: (NSTimer *) timer forMode: (NSString *) mode { - NSArray *modeStates = [self statesForMode: mode]; - - for (NSRunLoopState *state in modeStates) - [state addTimer: timer]; -} - -- (NSArray *) resolveCommonModes: (NSArray *) modes { - NSMutableArray *result = [NSMutableArray array]; - - for (NSString *check in modes) - if ([check isEqualToString: NSRunLoopCommonModes]) - [result addObjectsFromArray: _commonModes]; - else - [result addObject: check]; - - return result; -} - -- (void) performSelector: (SEL) selector - target: target - argument: argument - order: (NSUInteger) order - modes: (NSArray *) modes -{ - NSOrderedPerform *perform = [NSOrderedPerform - orderedPerformWithSelector: selector - target: target - argument: argument - order: order - modes: [self resolveCommonModes: modes]]; - @synchronized(_orderedPerforms) { - NSInteger count = [_orderedPerforms count]; - - while (--count >= 0) { - NSOrderedPerform *check = [_orderedPerforms objectAtIndex: count]; - NSUInteger checkOrder = [check order]; - - if (checkOrder > order) - break; - } - [_orderedPerforms insertObject: perform atIndex: count + 1]; - } - [self _wakeUp]; -} - -- (void) cancelPerformSelector: (SEL) selector - target: target - argument: argument -{ - @synchronized(_orderedPerforms) { - NSInteger count = [_orderedPerforms count]; - - while (--count >= 0) { - NSOrderedPerform *check = [_orderedPerforms objectAtIndex: count]; - - if ([check selector] == selector && [check target] == target && - [check argument] == argument) - [_orderedPerforms removeObjectAtIndex: count]; - } - } -} - -- (void) cancelPerformSelectorsWithTarget: target { - @synchronized(_orderedPerforms) { - NSInteger count = [_orderedPerforms count]; - - while (--count >= 0) { - NSOrderedPerform *check = [_orderedPerforms objectAtIndex: count]; - - if ([check target] == target) - [_orderedPerforms removeObjectAtIndex: count]; - } - } -} - -@end - -@implementation NSObject (NSDelayedPerform) - -+ (void) cancelPreviousPerformRequestsWithTarget: target - selector: (SEL) selector - object: argument -{ - NSDelayedPerform *delayed = - [NSDelayedPerform delayedPerformWithObject: target - selector: selector - argument: argument]; - - [[NSRunLoop currentRunLoop] invalidateTimerWithDelayedPerform: delayed]; -} - -+ (void) cancelPreviousPerformRequestsWithTarget: target { - NSDelayedPerform *delayed = - [NSDelayedPerform delayedPerformWithObject: target - selector: NULL - argument: nil]; - - [[NSRunLoop currentRunLoop] invalidateTimerWithDelayedPerform: delayed]; -} - -+ (void) _delayedPerform: (NSTimer *) timer { - NSDelayedPerform *delayed = [timer userInfo]; - - [delayed perform]; -} - -+ (void) object: object - performSelector: (SEL) selector - withObject: argument - afterDelay: (NSTimeInterval) delay - inModes: (NSArray *) modes -{ - NSDelayedPerform *delayed = - [NSDelayedPerform delayedPerformWithObject: object - selector: selector - argument: argument]; - NSTimer *timer = [NSTimer timerWithTimeInterval: delay - target: [NSObject class] - selector: @selector(_delayedPerform:) - userInfo: delayed - repeats: NO]; - NSInteger i, count = [modes count]; - - for (i = 0; i < count; i++) - [[NSRunLoop currentRunLoop] addTimer: timer - forMode: [modes objectAtIndex: i]]; -} - -- (void) performSelector: (SEL) selector - withObject: object - afterDelay: (NSTimeInterval) delay -{ - [[self class] object: self - performSelector: selector - withObject: object - afterDelay: delay - inModes: [NSArray arrayWithObject: NSDefaultRunLoopMode]]; -} - -- (void) performSelector: (SEL) selector - withObject: object - afterDelay: (NSTimeInterval) delay - inModes: (NSArray *) modes -{ - [[self class] object: self - performSelector: selector - withObject: object - afterDelay: delay - inModes: modes]; -} - -@end diff --git a/Foundation/NSRunLoop/NSRunLoopState.h b/Foundation/NSRunLoop/NSRunLoopState.h deleted file mode 100644 index d530db69..00000000 --- a/Foundation/NSRunLoop/NSRunLoopState.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDate, NSTimer, NSMutableArray, NSArray, NSDelayedPerform; -@class NSInputSource, NSInputSourceSet; - -@interface NSRunLoopState : NSObject { - NSInputSourceSet *_inputSourceSet; - NSArray *_asyncInputSourceSets; - NSMutableArray *_timers; - id _cancelSource; -} - -- (void) addTimer: (NSTimer *) timer; - -- (void) startingInMode: (NSString *) mode; - -- (BOOL) fireFirstTimer; -- (NSDate *) limitDateForMode: (NSString *) mode; - -- (void) addInputSource: (NSInputSource *) source; -- (void) removeInputSource: (NSInputSource *) source; - -- (void) invalidateTimerWithDelayedPerform: (NSDelayedPerform *) delayed; - -- (BOOL) waitForSingleInputForMode: (NSString *) mode - beforeDate: (NSDate *) date; - -- (BOOL) pollInputForMode: (NSString *) mode; - -- (void) wakeUp; -@end diff --git a/Foundation/NSRunLoop/NSRunLoopState.m b/Foundation/NSRunLoop/NSRunLoopState.m deleted file mode 100644 index 22afdd2d..00000000 --- a/Foundation/NSRunLoop/NSRunLoopState.m +++ /dev/null @@ -1,204 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@class NSCancelInputSource; - -@interface NSInputSource (Canceling) -- (void) cancel; -@end - -@implementation NSRunLoopState - -- init { - // This is implemented in the platform specific class - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) dealloc { - [_cancelSource release]; - [_inputSourceSet release]; - [_asyncInputSourceSets release]; - [_timers release]; - [super dealloc]; -} - -- (void) wakeUp { - [_cancelSource cancel]; -} - -- (void) addTimer: (NSTimer *) timer { - [_timers addObject: timer]; -} - -- (void) startingInMode: (NSString *) mode { - NSInteger i, count = [_asyncInputSourceSets count]; - - [_inputSourceSet startingInMode: mode]; - - for (i = 0; i < count; i++) - [[_asyncInputSourceSets objectAtIndex: i] startingInMode: mode]; -} - -- (BOOL) fireFirstTimer { - NSDate *now = [NSDate date]; - NSInteger i, count = [_timers count]; - NSTimer *fireTimer = nil; - - for (i = 0; i < count; i++) { - NSTimer *check = [_timers objectAtIndex: i]; - - if ([check isValid] && - [now compare: [check fireDate]] != NSOrderedAscending) { - fireTimer = [check retain]; - [_timers removeObjectAtIndex: i]; - break; - } - } - - if (fireTimer != nil) { - [fireTimer fire]; - [_timers addObject: fireTimer]; - [fireTimer release]; - } - - count = [_timers count]; - while (--count >= 0) - if (![[_timers objectAtIndex: count] isValid]) - [_timers removeObjectAtIndex: count]; - - return (fireTimer != nil) ? YES : NO; -} - -- (NSDate *) limitDateForMode: (NSString *) mode { - NSDate *limit = nil; - NSInteger count; - - count = [_timers count]; - while (--count >= 0) { - NSTimer *timer = [_timers objectAtIndex: count]; - - if (![timer isValid]) - [_timers removeObjectAtIndex: count]; - else { - if (limit == nil) { - limit = [timer fireDate]; - } else { - limit = [limit earlierDate: [timer fireDate]]; - } - } - } - - if (limit == nil) { - if ([[_inputSourceSet validInputSources] count] > 0) - limit = [NSDate distantFuture]; - } - - return limit; -} - -- (NSInputSourceSet *) inputSourceSetForInputSource: (NSInputSource *) source { - - if ([_inputSourceSet recognizesInputSource: source]) - return _inputSourceSet; - else { - NSInteger i, count = [_asyncInputSourceSets count]; - - for (i = 0; i < count; i++) { - NSInputSourceSet *check = [_asyncInputSourceSets objectAtIndex: i]; - - if ([check recognizesInputSource: source]) - return check; - } - } - - return nil; -} - -- (void) addInputSource: (NSInputSource *) source { - [[self inputSourceSetForInputSource: source] addInputSource: source]; -} - -- (void) removeInputSource: (NSInputSource *) source { - [[self inputSourceSetForInputSource: source] removeInputSource: source]; -} - -- (void) invalidateTimerWithDelayedPerform: (NSDelayedPerform *) delayed { - NSInteger count = [_timers count]; - - while (--count >= 0) { - NSTimer *timer = [_timers objectAtIndex: count]; - NSDelayedPerform *check = [timer userInfo]; - - if ([check isKindOfClass: [NSDelayedPerform class]]) { - if ([check isEqualToPerform: delayed]) - [timer invalidate]; - } - } -} - -- (BOOL) fireSingleImmediateInputInMode: (NSString *) mode { - NSInteger i, count = [_asyncInputSourceSets count]; - - for (i = 0; i < count; i++) - if ([[_asyncInputSourceSets objectAtIndex: i] - fireSingleImmediateInputInMode: mode]) - return YES; - - return [_inputSourceSet fireSingleImmediateInputInMode: mode]; -} - -- (BOOL) waitForSingleInputForMode: (NSString *) mode - beforeDate: (NSDate *) date -{ - if ([self fireSingleImmediateInputInMode: mode]) - return YES; - else { - NSInteger i, count = [_asyncInputSourceSets count]; - - for (i = 0; i < count; i++) - [[_asyncInputSourceSets objectAtIndex: i] - waitInBackgroundInMode: mode]; - - return [_inputSourceSet waitForInputInMode: mode beforeDate: date]; - } -} - -- (BOOL) pollInputForMode: (NSString *) mode { - return [self waitForSingleInputForMode: mode beforeDate: [NSDate date]]; -} - -- (id) description { - return [NSString stringWithFormat: @"%@, %i inputSources", - [super description], - [_inputSourceSet count]]; -} - -@end diff --git a/Foundation/NSScanner/NSScanner.h b/Foundation/NSScanner/NSScanner.h deleted file mode 100644 index 087c3231..00000000 --- a/Foundation/NSScanner/NSScanner.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSDictionary, NSCharacterSet; - -@interface NSScanner : NSObject - -+ scannerWithString: (NSString *) string; -+ localizedScannerWithString: (NSString *) string; - -- initWithString: (NSString *) string; - -- (NSString *) string; - -- (NSCharacterSet *) charactersToBeSkipped; -- (BOOL) caseSensitive; -- (NSDictionary *) locale; - -- (void) setCharactersToBeSkipped: (NSCharacterSet *) set; -- (void) setCaseSensitive: (BOOL) flag; -- (void) setLocale: (NSDictionary *) locale; - -- (BOOL) isAtEnd; -- (NSUInteger) scanLocation; -- (void) setScanLocation: (NSUInteger) location; - -- (BOOL) scanInt: (int *) valuep; -- (BOOL) scanInteger: (NSInteger *) valuep; -- (BOOL) scanLongLong: (long long *) valuep; -- (BOOL) scanFloat: (float *) valuep; -- (BOOL) scanDouble: (double *) valuep; -- (BOOL) scanDecimal: (NSDecimal *) valuep; -- (BOOL) scanHexInt: (unsigned *) valuep; -- (BOOL) scanHexLongLong: (unsigned long long *) valuep; - -- (BOOL) scanString: (NSString *) string intoString: (NSString **) stringp; -- (BOOL) scanUpToString: (NSString *) string intoString: (NSString **) stringp; - -- (BOOL) scanCharactersFromSet: (NSCharacterSet *) charset - intoString: (NSString **) stringp; -- (BOOL) scanUpToCharactersFromSet: (NSCharacterSet *) charset - intoString: (NSString **) stringp; - -@end diff --git a/Foundation/NSScanner/NSScanner.m b/Foundation/NSScanner/NSScanner.m deleted file mode 100644 index ad825428..00000000 --- a/Foundation/NSScanner/NSScanner.m +++ /dev/null @@ -1,174 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import - -@implementation NSScanner - -+ allocWithZone: (NSZone *) zone { - if (self == [NSScanner class]) - return NSAllocateObject([NSScanner_concrete class], 0, NULL); - - return NSAllocateObject(self, 0, zone); -} - -+ scannerWithString: (NSString *) string { - return [[[self allocWithZone: NULL] initWithString: string] autorelease]; -} - -+ localizedScannerWithString: (NSString *) string { - NSScanner *scanner = [self scannerWithString: string]; - - [scanner setLocale: [NSLocale currentLocale]]; - - return scanner; -} - -- initWithString: (NSString *) string { - NSInvalidAbstractInvocation(); - return nil; -} - -- copyWithZone: (NSZone *) zone { - NSScanner *copy = [[NSScanner alloc] initWithString: [self string]]; - - [copy setCharactersToBeSkipped: [self charactersToBeSkipped]]; - [copy setCaseSensitive: [self caseSensitive]]; - [copy setLocale: [self locale]]; - [copy setScanLocation: [self scanLocation]]; - - return copy; -} - -- (NSString *) string { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSCharacterSet *) charactersToBeSkipped { - NSInvalidAbstractInvocation(); - return nil; -} - -- (BOOL) caseSensitive { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSDictionary *) locale { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) setCharactersToBeSkipped: (NSCharacterSet *) set { - NSInvalidAbstractInvocation(); -} - -- (void) setCaseSensitive: (BOOL) flag { - NSInvalidAbstractInvocation(); -} - -- (void) setLocale: (NSDictionary *) locale { - NSInvalidAbstractInvocation(); -} - -- (BOOL) isAtEnd { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSUInteger) scanLocation { - NSInvalidAbstractInvocation(); - return -1; -} - -- (void) setScanLocation: (NSUInteger) location { - NSInvalidAbstractInvocation(); -} - -- (BOOL) scanInt: (int *) value { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanLongLong: (long long *) value { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanFloat: (float *) value { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanDouble: (double *) value { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanDecimal: (NSDecimal *) valuep { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanInteger: (NSInteger *) valuep { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanHexInt: (unsigned *) value { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanHexLongLong: (unsigned long long *) value { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanString: (NSString *) string intoString: (NSString **) stringp { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanUpToString: (NSString *) string intoString: (NSString **) stringp { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanCharactersFromSet: (NSCharacterSet *) charset - intoString: (NSString **) stringp -{ - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) scanUpToCharactersFromSet: (NSCharacterSet *) charset - intoString: (NSString **) stringp -{ - NSInvalidAbstractInvocation(); - return NO; -} - -@end diff --git a/Foundation/NSScanner/NSScanner_concrete.h b/Foundation/NSScanner/NSScanner_concrete.h deleted file mode 100644 index e49808be..00000000 --- a/Foundation/NSScanner/NSScanner_concrete.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSScanner_concrete : NSScanner { - NSString *_string; - NSUInteger _location; - NSCharacterSet *_skipSet; - BOOL _isCaseSensitive; - NSDictionary *_locale; -} - -@end diff --git a/Foundation/NSScanner/NSScanner_concrete.m b/Foundation/NSScanner/NSScanner_concrete.m deleted file mode 100644 index fe34ebe7..00000000 --- a/Foundation/NSScanner/NSScanner_concrete.m +++ /dev/null @@ -1,741 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - 2009 Markus Hitter - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#include -#include -#include -#include - -@implementation NSScanner_concrete - -- initWithString: (NSString *) string { - - self = [self init]; - if (self != nil) { - _string = [string copy]; - _location = 0; - _skipSet = [[NSCharacterSet whitespaceAndNewlineCharacterSet] retain]; - _isCaseSensitive = NO; - _locale = nil; - } - - return self; -} - -- (void) dealloc { - [_string release]; - [_skipSet release]; - [_locale release]; - [super dealloc]; -} - -- (NSString *) string { - return _string; -} - -- (NSCharacterSet *) charactersToBeSkipped { - return _skipSet; -} - -- (BOOL) caseSensitive { - return _isCaseSensitive; -} - -- (NSDictionary *) locale { - return _locale; -} - -- (void) setCharactersToBeSkipped: (NSCharacterSet *) set { - [_skipSet autorelease]; - _skipSet = [set retain]; -} - -- (void) setCaseSensitive: (BOOL) flag { - _isCaseSensitive = flag; -} - -- (void) setLocale: (NSDictionary *) locale { - [_locale autorelease]; - _locale = [locale retain]; -} - -- (BOOL) isAtEnd { - NSUInteger length = [_string length]; - NSUInteger currentLocation = _location; - - for (; currentLocation < length; currentLocation++) { - if ([_skipSet characterIsMember: - [_string characterAtIndex: currentLocation]] == - YES) { - continue; - } else { - return NO; - } - } - - return YES; -} - -- (NSUInteger) scanLocation { - return _location; -} - -- (void) setScanLocation: (NSUInteger) pos { - _location = pos; -} - -- (BOOL) scanInt: (int *) valuep { - long long scanValue = 0; - - // This assumes sizeof(long long) >= sizeof(int). - if (![self scanLongLong: &scanValue]) - return NO; - else if (NULL != valuep) { - if (scanValue > INT_MAX) - *valuep = INT_MAX; - else if (scanValue < INT_MIN) - *valuep = INT_MIN; - else - *valuep = (int) scanValue; - } - - return YES; -} - -- (BOOL) scanInteger: (NSInteger *) valuep { - long long scanValue = 0; - - // This assumes sizeof(long long) >= sizeof(NSInteger). - if (![self scanLongLong: &scanValue]) - return NO; - else if (NULL != valuep) { - if (scanValue > NSIntegerMax) - *valuep = NSIntegerMax; - else if (scanValue < NSIntegerMin) - *valuep = NSIntegerMin; - else - *valuep = (NSInteger) scanValue; - } - - return YES; -} - -- (BOOL) scanLongLong: (long long *) valuep { -// FIXME: this should use C99 LLONG_*, but switching has some link problems for -// Linux -#define long_long_MAX 0x7fffffffffffffffLL -#define long_long_MIN (-0x7fffffffffffffffLL - 1) - - NSUInteger length; - int sign = 1; - BOOL hasSign = NO; - long long value = 0; - BOOL hasValue = NO; - BOOL hasOverflow = NO; - - for (length = [_string length]; _location < length; _location++) { - unichar unicode = [_string characterAtIndex: _location]; - - if (!hasValue && [_skipSet characterIsMember: unicode]) - continue; - else if (!hasSign && unicode == '-') { - sign = -1; - hasSign = YES; - } else if (!hasSign && unicode == '+') { - sign = 1; - hasSign = YES; - } else if (unicode >= '0' && unicode <= '9') { - if (!hasOverflow) { - int c = unicode - '0'; - - // Inspired by - // http://www.math.utoledo.edu/~dbastos/overflow.html - if ((long_long_MAX - c) / 10 < value) - hasOverflow = YES; - else - value = (value * 10) + c; - hasSign = YES; - hasValue = YES; - } - } else - break; - } - - if (hasOverflow) { - if (NULL != valuep) { - if (sign > 0) - *valuep = long_long_MAX; - else - *valuep = long_long_MIN; - } - return YES; - } else if (hasValue) { - if (NULL != valuep) - *valuep = sign * value; - return YES; - } - - return NO; -} - -- (BOOL) scanFloat: (float *) valuep { - double d; - BOOL r; - - r = [self scanDouble: &d]; - if (NULL != valuep) - *valuep = (float) d; - return r; -} - -// "...returns HUGE_VAL or -HUGE_VAL on overflow, 0.0 on underflow." hmm... -- (BOOL) scanDouble: (double *) valuep { - double value; - - // This algo assumes we can freely convert from unichar to char for chars - // needed to parse a double This is problably wrong for some locale - - unichar decimalSeperator = '.'; - if (_locale) { - NSString *separatorString = - [_locale objectForKey: NSLocaleDecimalSeparator]; - if ([separatorString length] > 0) { - decimalSeperator = [separatorString characterAtIndex: 0]; - } - } - - NSInteger len = [_string length] - _location; - char p[len + 1], *q; - - NSInteger i = 0; - // First skip anything from the skip set and space - for (i = 0; i < len; i++) { - unichar c = [_string characterAtIndex: i + _location]; - if (iswspace(c)) { - continue; - } - if ([_skipSet characterIsMember: c] == NO) { - // We've reached something useful - break; - } - } - // Copy potentially useful chars, replacing NSScanner decimal separator with - // a "." - NSInteger firstUsedIndex = i; - for (; i < len; i++) { - unichar c = [_string characterAtIndex: i + _location]; - if (c == decimalSeperator) { - c = '.'; - } else { - if (!isdigit(c) && c != '+' && c != '-' && c != 'e' && c != 'E') { - // Not something that can be part of a "double" anymore - // So we can stop here - break; - } - } - p[i] = (char) c; - } - p[i] = '\0'; - value = strtod(p + firstUsedIndex, &q); - if (NULL != valuep) - *valuep = value; - _location += (q - p); - return (q > p); - /* - enum { - STATE_SPACE, - STATE_DIGITS_ONLY - } state=STATE_SPACE; - int sign=1; - double value=1.0; - BOOL hasValue=NO; - - for(;_location<[_string length];_location++){ - unichar unicode=[_string characterAtIndex:_location]; - - switch(state){ - case STATE_SPACE: - if([_skipSet characterIsMember:unicode]) - state=STATE_SPACE; - else if(unicode=='-') { - sign=-1; - state=STATE_DIGITS_ONLY; - } - else if(unicode=='+'){ - sign=1; - state=STATE_DIGITS_ONLY; - } - else if(unicode>='0' && unicode<='9'){ - value=(value*10)+unicode-'0'; - state=STATE_DIGITS_ONLY; - hasValue=YES; - } - else if(unicode==decimalSeperator) { - double multiplier=1; - - _location++; - for(;_location<[_string length];_location++){ - if(unicode<'0' || unicode>'9') - break; - - multiplier/=10.0; - value+=(unicode-'0')*multiplier; - } - } - else - return NO; - break; - - case STATE_DIGITS_ONLY: - if(unicode>='0' && unicode<='9'){ - value=(value*10)+unicode-'0'; - hasValue=YES; - } - else if(!hasValue) - return NO; - else if(unicode==decimalSeperator) { - double multiplier=1; - - _location++; - for(;_location<[_string length];_location++){ - if(unicode<'0' || unicode>'9') - break; - - multiplier/=10.0; - value+=(unicode-'0')*multiplier; - } - } - else { - *valuep=sign*value; - return YES; - } - break; - } - } - - if(!hasValue) - return NO; - else { - *valuep=sign*value; - return YES; - } - */ -} - -- (BOOL) scanDecimal: (NSDecimal *) valuep { - NSUnimplementedMethod(); - return NO; -} - -// The documentation appears to be wrong, it returns -1 on overflow. -- (BOOL) scanHexInt: (unsigned *) valuep { - enum { - STATE_SPACE, - STATE_ZERO, - STATE_HEX, - } state = STATE_SPACE; - unsigned value = 0; - BOOL hasValue = NO; - BOOL overflow = NO; - - for (; _location < [_string length]; _location++) { - unichar unicode = [_string characterAtIndex: _location]; - - switch (state) { - - case STATE_SPACE: - if ([_skipSet characterIsMember: unicode]) - state = STATE_SPACE; - else if (unicode == '0') { - state = STATE_ZERO; - hasValue = YES; - } else if (unicode >= '1' && unicode <= '9') { - value = value * 16 + (unicode - '0'); - state = STATE_HEX; - hasValue = YES; - } else if (unicode >= 'a' && unicode <= 'f') { - value = value * 16 + (unicode - 'a') + 10; - state = STATE_HEX; - hasValue = YES; - } else if (unicode >= 'A' && unicode <= 'F') { - value = value * 16 + (unicode - 'A') + 10; - state = STATE_HEX; - hasValue = YES; - } else - return NO; - break; - - case STATE_ZERO: - state = STATE_HEX; - if (unicode == 'x' || unicode == 'X') - break; - // fallthrough - case STATE_HEX: - if (unicode >= '0' && unicode <= '9') { - if (!overflow) { - unsigned check = value * 16 + (unicode - '0'); - if (check >= value) - value = check; - else { - value = -1; - overflow = YES; - } - } - } else if (unicode >= 'a' && unicode <= 'f') { - if (!overflow) { - unsigned check = value * 16 + (unicode - 'a') + 10; - if (check >= value) - value = check; - else { - value = -1; - overflow = YES; - } - } - } else if (unicode >= 'A' && unicode <= 'F') { - if (!overflow) { - unsigned check = value * 16 + (unicode - 'A') + 10; - - if (check >= value) - value = check; - else { - value = -1; - overflow = YES; - } - } - } else { - if (valuep != NULL) - *valuep = value; - - return YES; - } - break; - } - } - - if (hasValue) { - if (valuep != NULL) - *valuep = value; - - return YES; - } - - return NO; -} - -- (BOOL) scanHexLongLong: (unsigned long long *) valuep { - enum { - STATE_SPACE, - STATE_ZERO, - STATE_HEX, - } state = STATE_SPACE; - unsigned long long value = 0; - BOOL hasValue = NO; - BOOL overflow = NO; - - for (; _location < [_string length]; _location++) { - unichar unicode = [_string characterAtIndex: _location]; - - switch (state) { - - case STATE_SPACE: - if ([_skipSet characterIsMember: unicode]) - state = STATE_SPACE; - else if (unicode == '0') { - state = STATE_ZERO; - hasValue = YES; - } else if (unicode >= '1' && unicode <= '9') { - value = value * 16 + (unicode - '0'); - state = STATE_HEX; - hasValue = YES; - } else if (unicode >= 'a' && unicode <= 'f') { - value = value * 16 + (unicode - 'a') + 10; - state = STATE_HEX; - hasValue = YES; - } else if (unicode >= 'A' && unicode <= 'F') { - value = value * 16 + (unicode - 'A') + 10; - state = STATE_HEX; - hasValue = YES; - } else - return NO; - break; - - case STATE_ZERO: - state = STATE_HEX; - if (unicode == 'x' || unicode == 'X') - break; - // fallthrough - case STATE_HEX: - if (unicode >= '0' && unicode <= '9') { - if (!overflow) { - unsigned check = value * 16 + (unicode - '0'); - if (check >= value) - value = check; - else { - value = -1; - overflow = YES; - } - } - } else if (unicode >= 'a' && unicode <= 'f') { - if (!overflow) { - unsigned check = value * 16 + (unicode - 'a') + 10; - if (check >= value) - value = check; - else { - value = -1; - overflow = YES; - } - } - } else if (unicode >= 'A' && unicode <= 'F') { - if (!overflow) { - unsigned check = value * 16 + (unicode - 'A') + 10; - - if (check >= value) - value = check; - else { - value = -1; - overflow = YES; - } - } - } else { - if (valuep != NULL) - *valuep = value; - - return YES; - } - break; - } - } - - if (hasValue) { - if (valuep != NULL) - *valuep = value; - - return YES; - } - - return NO; -} - -- (BOOL) scanString: (NSString *) string intoString: (NSString **) stringp { - NSInteger length = [_string length]; - NSStringCompareOptions compareOption = 0; - NSRange range = {0, [string length]}; - NSInteger oldLocation = _location; - - BOOL result = NO; - - if (!_isCaseSensitive) { - compareOption = NSCaseInsensitiveSearch; - } - - for (; _location < length; _location++) { - unichar unicode = [_string characterAtIndex: _location]; - NSString *subStr = [_string substringFromIndex: _location]; - if ([subStr length] < [string length]) { - result = NO; - break; - } - - if ([_skipSet characterIsMember: unicode] == YES) { - continue; - } - if ([subStr compare: string options: compareOption - range: range] == NSOrderedSame) { - if (stringp != NULL) - *stringp = string; - - _location += [string length]; - result = YES; - break; - } else { - result = NO; - break; - } - } - - if (result == NO) { - _location = oldLocation; - } - - return result; -} - -- (BOOL) scanUpToString: (NSString *) string intoString: (NSString **) stringp { - NSInteger length = [_string length]; - unichar *result = NSZoneMalloc(NULL, sizeof(unichar) * length); - int resultLength = 0; - BOOL scanStarted = NO; - NSStringCompareOptions compareOption = 0; - NSRange range = {0, [string length]}; - NSInteger oldLocation = _location; - - if (!_isCaseSensitive) { - compareOption = NSCaseInsensitiveSearch; - } - - for (; _location < length; _location++) { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - NSString *subStr = [_string substringFromIndex: _location]; - - if ([subStr length] < [string length]) { - _location = oldLocation; - [pool drain]; - NSZoneFree(NULL, result); - return NO; - } - - // Skip any leading char from the skip set - unichar unicode = [_string characterAtIndex: _location]; - if (scanStarted == NO && [_skipSet characterIsMember: unicode]) { - [pool drain]; - continue; - } - - if ([subStr compare: string options: compareOption - range: range] == NSOrderedSame) { - if (scanStarted) { - if (stringp != NULL) - *stringp = - [[NSString alloc] initWithCharacters: result - length: resultLength]; - - [pool drain]; - if (stringp != NULL) - [*stringp autorelease]; - - NSZoneFree(NULL, result); - return YES; - } else { - if ([_skipSet characterIsMember: unicode] == YES) { - [pool drain]; - continue; - } else { - if (stringp != NULL) - *stringp = [[NSString alloc] - initWithCharacters: result - length: resultLength]; - - [pool drain]; - if (stringp != NULL) - [*stringp autorelease]; - NSZoneFree(NULL, result); - return YES; - } - } - } else { - scanStarted = YES; - result[resultLength++] = unicode; - [pool drain]; - } - } - - if (resultLength > 0) { - if (stringp != NULL) { - *stringp = [NSString stringWithCharacters: result - length: resultLength]; - } - - NSZoneFree(NULL, result); - return YES; - } else { - _location = oldLocation; - NSZoneFree(NULL, result); - return NO; - } -} - -- (BOOL) scanCharactersFromSet: (NSCharacterSet *) charset - intoString: (NSString **) stringp -{ - NSInteger length = [_string length]; - unichar *result = NSZoneMalloc(NULL, sizeof(unichar) * length); - int resultLength = 0; - BOOL scanStarted = NO; - - for (; _location < length; _location++) { - unichar unicode = [_string characterAtIndex: _location]; - - if ((scanStarted == NO) && [_skipSet characterIsMember: unicode]) { - // do nothing - } else { - if ([charset characterIsMember: unicode]) { - scanStarted = YES; - result[resultLength++] = unicode; - } else { - break; // used to be "return NO"; - } - } - } - - if (scanStarted) { - if (stringp != NULL) { - *stringp = [NSString stringWithCharacters: result - length: resultLength]; - } - } - - NSZoneFree(NULL, result); - return scanStarted; -} - -- (BOOL) scanUpToCharactersFromSet: (NSCharacterSet *) charset - intoString: (NSString **) stringp -{ - NSInteger length = [_string length]; - unichar *result = NSZoneMalloc(NULL, sizeof(unichar) * length); - int resultLength = 0; - BOOL scanStarted = NO; - NSInteger oldLocation = _location; - - for (; _location < length; _location++) { - unichar unicode = [_string characterAtIndex: _location]; - - if (scanStarted == NO && [_skipSet characterIsMember: unicode]) - continue; - else if ([charset characterIsMember: unicode]) - break; - else { - scanStarted = YES; - result[resultLength++] = unicode; - } - } - - if (resultLength > 0) { - if (stringp != NULL) { - *stringp = [NSString stringWithCharacters: result - length: resultLength]; - } - NSZoneFree(NULL, result); - return YES; - } else { - _location = oldLocation; - NSZoneFree(NULL, result); - return NO; - } -} - -@end diff --git a/Foundation/NSScript/NSScriptWhoseTests.h b/Foundation/NSScript/NSScriptWhoseTests.h deleted file mode 100644 index e9c2aac3..00000000 --- a/Foundation/NSScript/NSScriptWhoseTests.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface NSObject (NSScriptWhoseTests) -- (BOOL) isEqualTo: other; -@end diff --git a/Foundation/NSScript/NSScriptWhoseTests.m b/Foundation/NSScript/NSScriptWhoseTests.m deleted file mode 100644 index dd2e8624..00000000 --- a/Foundation/NSScript/NSScriptWhoseTests.m +++ /dev/null @@ -1,9 +0,0 @@ -#import - -@implementation NSObject (NSScriptWhoseTests) - -- (BOOL) isEqualTo: other { - return [self isEqual: other]; -} - -@end diff --git a/Foundation/NSSet/NSCountedSet.h b/Foundation/NSSet/NSCountedSet.h deleted file mode 100644 index f6fe6fa7..00000000 --- a/Foundation/NSSet/NSCountedSet.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSCountedSet : NSMutableSet { - void *_table; -} - -- (NSUInteger) countForObject: object; - -@end diff --git a/Foundation/NSSet/NSCountedSet.m b/Foundation/NSSet/NSCountedSet.m deleted file mode 100644 index d5cdd4bd..00000000 --- a/Foundation/NSSet/NSCountedSet.m +++ /dev/null @@ -1,94 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -@implementation NSCountedSet : NSMutableSet - -- initWithCapacity: (NSUInteger) capacity { - _table = NSZoneMalloc([self zone], sizeof(NSSetTable)); - NSSetTableInit(_table, capacity, [self zone]); - return self; -} - -- (void) dealloc { - NSSetTableFreeObjects(_table); - NSSetTableFreeBuckets(_table); - NSZoneFree(NSZoneFromPointer(_table), _table); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSUInteger) count { - return ((NSSetTable *) _table)->count; -} - -- member: object { - return NSSetTableMember(_table, object); -} - -- (NSEnumerator *) objectEnumerator { - return NSAutorelease(NSEnumerator_setNew(NULL, self, _table)); -} - -- (void) addObject: object { - NSSetTableAddObjectCount(_table, object); -} - -- (void) removeObject: object { - NSSetTableRemoveObjectCount(_table, object); -} - -- (NSUInteger) countForObject: object { - return NSSetTableObjectCount(_table, object); -} - -- (BOOL) isEqualToSet: (NSSet *) other { - NSEnumerator *state; - id object; - - if (self == other) - return YES; - - if ([self count] != [other count]) - return NO; - if ([other isKindOfClass: [NSCountedSet class]]) { - state = [self objectEnumerator]; - while ((object = [state nextObject]) != nil) { - if ([(NSCountedSet *) other countForObject: object] != - [self countForObject: object]) - return NO; - } - return YES; - } - - // FIXME: what to do here? Can't compare counts, but can the sets still be - // equal? - - state = [self objectEnumerator]; - while ((object = [state nextObject]) != nil) - if ([other member: object] == nil) - return NO; - - return YES; -} -@end diff --git a/Foundation/NSSet/NSEnumerator_set.h b/Foundation/NSSet/NSEnumerator_set.h deleted file mode 100644 index c93ee069..00000000 --- a/Foundation/NSSet/NSEnumerator_set.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSEnumerator_set : NSEnumerator { - id _set; - NSSetTable *_table; - NSUInteger _index; - NSSetBucket *_bucket; -} - -@end - -NSEnumerator_set *NSEnumerator_setNew(NSZone *zone, id set, NSSetTable *table); -id NSEnumerator_setNextObject(NSEnumerator_set *self); diff --git a/Foundation/NSSet/NSEnumerator_set.m b/Foundation/NSSet/NSEnumerator_set.m deleted file mode 100644 index c91a1a47..00000000 --- a/Foundation/NSSet/NSEnumerator_set.m +++ /dev/null @@ -1,82 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import - -@implementation NSEnumerator_set - -NSEnumerator_set *NSEnumerator_setNew(NSZone *zone, id set, NSSetTable *table) { - NSEnumerator_set *self = - NSAllocateObject([NSEnumerator_set class], 0, zone); - if (self) { - self->_set = [set retain]; - self->_table = table; - self->_index = 0; - self->_bucket = NULL; - - for (; self->_index < self->_table->numBuckets; self->_index++) - if ((self->_bucket = self->_table->buckets[self->_index]) != NULL) - break; - } - return self; -} - -- (void) dealloc { - [_set release]; - NSDeallocateObject(self); - return; - [super dealloc]; -} - -id NSEnumerator_setNextObject(NSEnumerator_set *self) { - id object; - - if (self->_bucket == NULL) - return nil; - - object = self->_bucket->key; - - if ((self->_bucket = self->_bucket->next) == NULL) { - for (self->_index++; self->_index < self->_table->numBuckets; - self->_index++) - if ((self->_bucket = self->_table->buckets[self->_index]) != NULL) - break; - } - - return object; -} - -- nextObject { - return NSEnumerator_setNextObject(self); -} - -- (NSArray *) allObjects { - NSMutableArray *array = [NSMutableArray array]; - id next; - - while ((next = NSEnumerator_setNextObject(self)) != nil) - [array addObject: next]; - - return array; -} - -@end diff --git a/Foundation/NSSet/NSInlineSetTable.h b/Foundation/NSSet/NSInlineSetTable.h deleted file mode 100644 index b0578445..00000000 --- a/Foundation/NSSet/NSInlineSetTable.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef struct NSSetBucket { - struct NSSetBucket *next; - id key; -} NSSetBucket; - -typedef struct NSCountBucket { - struct NSCountBucket *next; - id key; - NSUInteger count; -} NSCountBucket; - -typedef struct { - NSUInteger count; - NSUInteger numBuckets; - NSSetBucket **buckets; -} NSSetTable; - -NSUInteger NSSetTableRoundCount(NSUInteger count); - -void NSSetTableInit(NSSetTable *table, NSUInteger capacity, NSZone *zone); -void NSSetTableFreeObjects(NSSetTable *table); -void NSSetTableFreeBuckets(NSSetTable *table); - -void NSSetTableAddObjectNoGrow(NSSetTable *table, id object); -void NSSetTableAddObject(NSSetTable *table, id object); - -id NSSetTableMember(NSSetTable *table, id object); -void NSSetTableRemoveObject(NSSetTable *table, id object); - -NSUInteger NSSetTableObjectCount(NSSetTable *table, id object); -void NSSetTableAddObjectCount(NSSetTable *table, id object); -void NSSetTableRemoveObjectCount(NSSetTable *table, id object); diff --git a/Foundation/NSSet/NSInlineSetTable.m b/Foundation/NSSet/NSInlineSetTable.m deleted file mode 100644 index 2cb8aa70..00000000 --- a/Foundation/NSSet/NSInlineSetTable.m +++ /dev/null @@ -1,181 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -NSUInteger NSSetTableRoundCount(NSUInteger count) { - return (count < 4) ? 4 : count; -} - -void NSSetTableInit(NSSetTable *table, NSUInteger capacity, NSZone *zone) { - table->count = 0; - table->numBuckets = NSSetTableRoundCount(capacity); - table->buckets = - NSZoneCalloc(zone, table->numBuckets, sizeof(NSSetBucket *)); -} - -void NSSetTableFreeObjects(NSSetTable *table) { - int i; - - for (i = 0; i < table->numBuckets; i++) { - NSSetBucket *current = table->buckets[i], *next; - - for (; current != NULL; current = next) { - next = current->next; - [current->key release]; - NSZoneFree(NSZoneFromPointer(current), current); - } - } -} - -void NSSetTableFreeBuckets(NSSetTable *table) { - NSZoneFree(NSZoneFromPointer(table->buckets), table->buckets); -} - -NSSetBucket *NSSetBucketAddObject(NSSetBucket *bucket, id object) { - NSSetBucket *current = bucket; - - for (; current != NULL; current = current->next) - if ([current->key isEqual: object]) - return NULL; - - current = NSZoneMalloc(NULL, sizeof(NSSetBucket)); - current->next = bucket; - current->key = [object retain]; - - return current; -} - -void NSSetTableAddObjectNoGrow(NSSetTable *table, id object) { - NSUInteger index = [object hash] % table->numBuckets; - NSSetBucket *bucket; - - if ((bucket = NSSetBucketAddObject(table->buckets[index], object)) != - NULL) { - table->buckets[index] = bucket; - table->count++; - } -} - -// add growing -void NSSetTableAddObject(NSSetTable *table, id object) { - NSUInteger index = [object hash] % table->numBuckets; - NSSetBucket *bucket; - - if ((bucket = NSSetBucketAddObject(table->buckets[index], object)) != - NULL) { - table->buckets[index] = bucket; - table->count++; - } -} - -id NSSetTableMember(NSSetTable *table, id object) { - NSUInteger index = [object hash] % table->numBuckets; - NSSetBucket *current, *bucket = table->buckets[index]; - - for (current = bucket; current != NULL; current = current->next) - if ([current->key isEqual: object]) - return current->key; - - return nil; -} - -// add shrinking -void NSSetTableRemoveObject(NSSetTable *table, id object) { - NSUInteger index = [object hash] % table->numBuckets; - NSSetBucket *current, *last, *bucket = table->buckets[index]; - - // Make sure the object lives through the operation - [object retain]; - for (current = last = bucket; current != NULL; - last = current, current = current->next) - if ([current->key isEqual: object]) { - if (last == current) - table->buckets[index] = current->next; - else - last->next = current->next; - - table->count--; - [current->key release]; - NSZoneFree(NSZoneFromPointer(current), current); - break; - } - [object release]; -} - -NSUInteger NSSetTableObjectCount(NSSetTable *table, id object) { - NSUInteger index = [object hash] % table->numBuckets; - NSCountBucket *current, *bucket = (NSCountBucket *) table->buckets[index]; - - for (current = bucket; current != NULL; current = current->next) - if ([current->key isEqual: object]) - return current->count; - - return 0; -} - -NSCountBucket *NSSetBucketAddObjectCount(NSCountBucket *bucket, id object) { - NSCountBucket *current = bucket; - - for (; current != NULL; current = current->next) - if ([current->key isEqual: object]) { - current->count++; - return NULL; - } - - current = NSZoneMalloc(NULL, sizeof(NSCountBucket)); - current->next = bucket; - current->key = [object retain]; - current->count = 1; - - return current; -} - -void NSSetTableAddObjectCount(NSSetTable *table, id object) { - NSUInteger index = [object hash] % table->numBuckets; - NSCountBucket *bucket = (NSCountBucket *) table->buckets[index]; - - if ((bucket = NSSetBucketAddObjectCount(bucket, object)) != NULL) { - table->buckets[index] = (NSSetBucket *) bucket; - table->count++; - } -} - -void NSSetTableRemoveObjectCount(NSSetTable *table, id object) { - NSUInteger index = [object hash] % table->numBuckets; - NSCountBucket *current, *last, - *bucket = (NSCountBucket *) table->buckets[index]; - - for (current = last = bucket; current != NULL; - last = current, current = current->next) - if ([current->key isEqual: object]) { - current->count--; - if (current->count == 0) { - if (last == current) - table->buckets[index] = (NSSetBucket *) current->next; - else - last->next = current->next; - - table->count--; - [current->key release]; - NSZoneFree(NSZoneFromPointer(current), current); - } - break; - } -} diff --git a/Foundation/NSSet/NSMutableSet.h b/Foundation/NSSet/NSMutableSet.h deleted file mode 100644 index 71785385..00000000 --- a/Foundation/NSSet/NSMutableSet.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableSet : NSSet -- initWithCapacity: (NSUInteger) capacity; - -+ setWithCapacity: (NSUInteger) capacity; - -- (void) addObject: object; -- (void) addObjectsFromArray: (NSArray *) array; -- (void) setSet: (NSSet *) other; -- (void) unionSet: (NSSet *) other; - -- (void) removeObject: object; -- (void) removeAllObjects; -- (void) minusSet: (NSSet *) other; -- (void) intersectSet: (NSSet *) other; - -@end - -#import diff --git a/Foundation/NSSet/NSMutableSet.m b/Foundation/NSSet/NSMutableSet.m deleted file mode 100644 index 07ab7dfe..00000000 --- a/Foundation/NSSet/NSMutableSet.m +++ /dev/null @@ -1,189 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import - -@implementation NSMutableSet : NSSet - -+ allocWithZone: (NSZone *) zone { - if (self == [NSMutableSet class]) - return NSAllocateObject([NSMutableSet_concrete class], 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -- initWithCapacity: (NSUInteger) capacity { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithObjects: (id *) objects count: (NSUInteger) count { - NSUInteger i; - - self = [self initWithCapacity: count]; - for (i = 0; i < count; i++) - [self addObject: objects[i]]; - - return self; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSMutableSet"); -} - -- copyWithZone: (NSZone *) zone { - return [[NSSet allocWithZone: zone] initWithSet: self]; -} - -+ set { - if (self == [NSMutableSet class]) - return NSAutorelease(NSMutableSet_concreteNew(NULL, 0)); - - return [[[self allocWithZone: NULL] initWithCapacity: 0] autorelease]; - ; -} - -+ setWithArray: (NSArray *) array { - if (self == [NSMutableSet class]) - return NSAutorelease(NSMutableSet_concreteNewWithArray(NULL, array)); - - return [[[self allocWithZone: NULL] initWithArray: array] autorelease]; - ; -} - -+ setWithObject: object { - if (self == [NSMutableSet class]) - return NSAutorelease( - NSMutableSet_concreteNewWithObjects(NULL, &object, 1)); - - return [[[self allocWithZone: NULL] initWithObjects: &object - count: 1] autorelease]; -} - -+ setWithObjects: first, ... { - va_list arguments; - NSUInteger i, count; - id *objects; - - va_start(arguments, first); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, first); - objects[0] = first; - for (i = 1; i < count; i++) - objects[i] = va_arg(arguments, id); - - va_end(arguments); - - if (self == [NSMutableSet class]) { - return NSAutorelease( - NSMutableSet_concreteNewWithObjects(NULL, objects, count)); - } - - return [[[self allocWithZone: NULL] initWithObjects: objects - count: count] autorelease]; -} - -+ setWithObjects: (id *) objects count: (NSUInteger) count { - return [[[self allocWithZone: NULL] initWithObjects: objects - count: count] autorelease]; -} - -+ setWithCapacity: (NSUInteger) capacity { - if (self == [NSMutableSet class]) - return NSAutorelease(NSMutableSet_concreteNew(NULL, capacity)); - - return [[[self allocWithZone: NULL] initWithCapacity: capacity] - autorelease]; -} - -- (void) addObject: object { - NSInvalidAbstractInvocation(); -} - -- (void) addObjectsFromArray: (NSArray *) array { - NSUInteger i, count = [array count]; - - for (i = 0; i < count; i++) - [self addObject: [array objectAtIndex: i]]; -} - -- (void) setSet: (NSSet *) other { - NSEnumerator *state; - id object; - - [self removeAllObjects]; - - state = [other objectEnumerator]; - while ((object = [state nextObject]) != nil) - [self addObject: object]; -} - -- (void) unionSet: (NSSet *) other { - NSEnumerator *state = [other objectEnumerator]; - id object; - - while ((object = [state nextObject]) != nil) { - if ([self member: object] == nil) - [self addObject: object]; - } -} - -- (void) removeObject: object { - NSInvalidAbstractInvocation(); -} - -- (void) removeAllObjects { - NSArray *allObjects = [self allObjects]; - NSInteger i, count = [allObjects count]; - - for (i = 0; i < count; i++) - [self removeObject: [allObjects objectAtIndex: i]]; -} - -- (void) minusSet: (NSSet *) other { - NSEnumerator *state = [other objectEnumerator]; - id object; - - while ((object = [state nextObject]) != nil) - [self removeObject: object]; -} - -- (void) intersectSet: (NSSet *) other { - NSArray *allObjects = [self allObjects]; - NSInteger i, count = [allObjects count]; - - for (i = 0; i < count; i++) { - id object = [allObjects objectAtIndex: i]; - - if ([other member: object] == nil) - [self removeObject: object]; - } -} - -@end diff --git a/Foundation/NSSet/NSMutableSet_concrete.h b/Foundation/NSSet/NSMutableSet_concrete.h deleted file mode 100644 index 4c91fa9f..00000000 --- a/Foundation/NSSet/NSMutableSet_concrete.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSMutableSet_concrete : NSMutableSet { - NSSetTable _table; -} -@end - -NSSet *NSMutableSet_concreteNew(NSZone *zone, NSUInteger capacity); -NSSet *NSMutableSet_concreteNewWithObjects(NSZone *zone, id *objects, - NSUInteger count); -NSSet *NSMutableSet_concreteNewWithArray(NSZone *zone, NSArray *array); diff --git a/Foundation/NSSet/NSMutableSet_concrete.m b/Foundation/NSSet/NSMutableSet_concrete.m deleted file mode 100644 index 4df8748d..00000000 --- a/Foundation/NSSet/NSMutableSet_concrete.m +++ /dev/null @@ -1,130 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -@implementation NSMutableSet_concrete - -NSSet *NSMutableSet_concreteNew(NSZone *zone, NSUInteger capacity) { - NSMutableSet_concrete *self = - NSAllocateObject([NSMutableSet_concrete class], 0, zone); - if (self) { - NSSetTableInit(&(self->_table), capacity, zone); - } - - return self; -} - -NSSet *NSMutableSet_concreteNewWithObjects(NSZone *zone, id *objects, - NSUInteger count) -{ - NSMutableSet_concrete *self = - NSAllocateObject([NSMutableSet_concrete class], 0, zone); - if (self) { - NSUInteger i; - - NSSetTableInit(&(self->_table), count, zone); - for (i = 0; i < count; i++) - NSSetTableAddObjectNoGrow(&(self->_table), objects[i]); - } - return self; -} - -NSSet *NSMutableSet_concreteNewWithArray(NSZone *zone, NSArray *array) { - NSUInteger count = [array count]; - id objects[count]; - - [array getObjects: objects]; - - return NSMutableSet_concreteNewWithObjects(zone, objects, count); -} - -- initWithCapacity: (NSUInteger) capacity { - NSSetTableInit(&_table, capacity, [self zone]); - return self; -} - -- (void) dealloc { - NSSetTableFreeObjects(&_table); - NSSetTableFreeBuckets(&_table); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSUInteger) count { - return _table.count; -} - -- member: object { - return NSSetTableMember(&_table, object); -} - -- (NSEnumerator *) objectEnumerator { - return NSAutorelease(NSEnumerator_setNew(NULL, self, &_table)); -} - -- (void) addObject: object { - NSSetTableAddObject(&_table, object); -} - -- (void) removeObject: object { - NSSetTableRemoveObject(&_table, object); -} - -#if 0 --(NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)length { - if(_table.count==0) - return 0; - if(state->state==(unsigned long)self) - return 0; - - state->itemsPtr=stackbuf; - state->mutationsPtr=(unsigned long*)self; - - NSEnumerator_set *enumerator; - - if((enumerator=(NSEnumerator_set *)state->state)==0) - enumerator=NSEnumerator_setNew(NULL,self,&_table); - - NSInteger i; - - for(i=0; iitemsPtr[i]=NSEnumerator_setNextObject(enumerator))==nil) - break; - - if(state->state==0){ - - if(istate=(unsigned long)self; - [enumerator release]; - } - else { - state->state=(unsigned long)enumerator; - [enumerator autorelease]; - } - } - - return i; -} -#endif - -@end diff --git a/Foundation/NSSet/NSSet.h b/Foundation/NSSet/NSSet.h deleted file mode 100644 index 06acab64..00000000 --- a/Foundation/NSSet/NSSet.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSArray, NSDictionary, NSString, NSPredicate; - -@interface NSSet - : NSObject - -- initWithObjects: (id *) objects count: (NSUInteger) count; -- initWithArray: (NSArray *) array; -- initWithSet: (NSSet *) set; -- initWithSet: (NSSet *) set copyItems: (BOOL) copyItems; -- initWithObjects: first, ...; - -+ set; -+ setWithArray: (NSArray *) array; -+ setWithSet: (NSSet *) set; -+ setWithObject: object; -+ setWithObjects: first, ...; -+ setWithObjects: (id *) objects count: (NSUInteger) count; - -- (NSSet *) setByAddingObject: object; -- (NSSet *) setByAddingObjectsFromSet: (NSSet *) other; -- (NSSet *) setByAddingObjectsFromArray: (NSArray *) array; - -- member: object; -- (NSUInteger) count; -- (NSEnumerator *) objectEnumerator; - -- (BOOL) isEqualToSet: (NSSet *) set; - -- (NSArray *) allObjects; - -- (BOOL) containsObject: object; -- (BOOL) isSubsetOfSet: (NSSet *) set; - -- (BOOL) intersectsSet: (NSSet *) set; - -- (void) makeObjectsPerformSelector: (SEL) selector; -- (void) makeObjectsPerformSelector: (SEL) selector withObject: argument; - -- anyObject; - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale; - -- (NSSet *) filteredSetUsingPredicate: (NSPredicate *) predicate; - -@end - -#import diff --git a/Foundation/NSSet/NSSet.m b/Foundation/NSSet/NSSet.m deleted file mode 100644 index 8d81b35c..00000000 --- a/Foundation/NSSet/NSSet.m +++ /dev/null @@ -1,405 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@interface NSKeyedArchiver (PrivateToContainers) -- (void) encodeArray: (NSArray *) array forKey: (NSString *) key; -@end - -@implementation NSSet - -+ allocWithZone: (NSZone *) zone { - if (self == [NSSet class]) - return NSAllocateObject([NSSet_placeholder class], 0, NULL); - - return NSAllocateObject(self, 0, zone); -} - -- init { - return [self initWithObjects: NULL count: 0]; -} - -- initWithObjects: (id *) objects count: (NSUInteger) count { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithArray: (NSArray *) array { - NSUInteger count = [array count]; - id objects[count]; - - [array getObjects: objects]; - - return [self initWithObjects: objects count: count]; -} - -- initWithSet: (NSSet *) set { - NSEnumerator *state = [set objectEnumerator]; - NSUInteger i, count = [set count]; - id objects[count], object; - - for (i = 0; (object = [state nextObject]) != nil; i++) - objects[i] = object; - - return [self initWithObjects: objects count: count]; -} - -- initWithSet: (NSSet *) set copyItems: (BOOL) copyItems { - NSEnumerator *state = [set objectEnumerator]; - NSUInteger i, count = [set count]; - id objects[count], object; - - for (i = 0; (object = [state nextObject]) != nil; i++) - objects[i] = object; - - if (copyItems) { - for (i = 0; i < count; i++) - objects[i] = [objects[i] copyWithZone: NULL]; - } - - self = [self initWithObjects: objects count: count]; - - if (copyItems) { - for (i = 0; i < count; i++) - [objects[i] release]; - } - - return self; -} - -- initWithObjects: first, ... { - va_list arguments; - NSUInteger i, count; - id *objects; - - va_start(arguments, first); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, first); - objects[0] = first; - for (i = 1; i < count; i++) - objects[i] = va_arg(arguments, id); - va_end(arguments); - - return [self initWithObjects: objects count: count]; -} - -+ set { - return NSAutorelease(NSSet_concreteNew(NULL, NULL, 0)); -} - -+ setWithArray: (NSArray *) array { - NSUInteger count = [array count]; - id objects[count]; - - [array getObjects: objects]; - - return NSAutorelease(NSSet_concreteNew(NULL, objects, count)); -} - -+ setWithSet: (NSSet *) set { - return [self setWithArray: [set allObjects]]; -} - -+ setWithObject: object { - return NSAutorelease(NSSet_concreteNew(NULL, &object, 1)); -} - -+ setWithObjects: first, ... { - va_list arguments; - NSUInteger i, count; - id *objects; - - va_start(arguments, first); - count = 1; - while (va_arg(arguments, id) != nil) - count++; - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, first); - objects[0] = first; - for (i = 1; i < count; i++) - objects[i] = va_arg(arguments, id); - - va_end(arguments); - - return NSAutorelease(NSSet_concreteNew(NULL, objects, count)); -} - -+ setWithObjects: (id *) objects count: (NSUInteger) count { - return NSAutorelease(NSSet_concreteNew(NULL, objects, count)); -} - -- (NSSet *) setByAddingObject: object { - id result = [[self mutableCopy] autorelease]; - - [result addObject: object]; - - return result; -} - -- (NSSet *) setByAddingObjectsFromSet: (NSSet *) other { - id result = [[self mutableCopy] autorelease]; - - [result unionSet: other]; - - return result; -} - -- (NSSet *) setByAddingObjectsFromArray: (NSArray *) array { - id result = [[self mutableCopy] autorelease]; - - [result unionSet: [NSSet setWithArray: array]]; - - return result; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSSet"); -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - NSArray *array = [keyed decodeObjectForKey: @"NS.objects"]; - - return [self initWithArray: array]; - } else { - unsigned i, count; - id *objects; - - [coder decodeValueOfObjCType: @encode(unsigned) at: &count]; - - objects = __builtin_alloca(count * sizeof(id)); - - for (i = 0; i < count; i++) - objects[i] = [coder decodeObject]; - - return [self initWithObjects: objects count: count]; - } -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedArchiver class]]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - - [keyed encodeArray: [self allObjects] forKey: @"NS.objects"]; - } else { - // FIXME: 64-bit - unsigned count = (unsigned) [self count]; - NSEnumerator *state = [self objectEnumerator]; - id object; - - [coder encodeValueOfObjCType: @encode(unsigned) at: &count]; - - while ((object = [state nextObject]) != nil) - [coder encodeObject: object]; - } -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableSet allocWithZone: zone] initWithSet: self]; -} - -- member: object { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSUInteger) count { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSEnumerator *) objectEnumerator { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSUInteger) hash { - return [self count]; -} - -- (BOOL) isEqual: other { - if (self == other) - return YES; - - if (![other isKindOfClass: [NSSet class]]) - return NO; - - return [self isEqualToSet: other]; -} - -- (BOOL) isEqualToSet: (NSSet *) other { - NSEnumerator *state; - id object; - - if (self == other) - return YES; - - if ([self count] != [other count]) - return NO; - - state = [self objectEnumerator]; - while ((object = [state nextObject]) != nil) - if ([other member: object] == nil) - return NO; - - return YES; -} - -- (NSArray *) allObjects { - return [[self objectEnumerator] allObjects]; -} - -- (BOOL) containsObject: object { - return ([self member: object] != nil); -} - -- (BOOL) isSubsetOfSet: (NSSet *) other { - NSEnumerator *state = [self objectEnumerator]; - id object; - - while ((object = [state nextObject]) != nil) - if ([other member: object] == nil) - return NO; - - return YES; -} - -- (BOOL) intersectsSet: (NSSet *) set { - NSEnumerator *state = [self objectEnumerator]; - id object; - - while ((object = [state nextObject]) != nil) - if ([set member: object] != nil) - return YES; - - return NO; -} - -- (void) makeObjectsPerformSelector: (SEL) selector { - NSEnumerator *state = [self objectEnumerator]; - id object; - - while ((object = [state nextObject]) != nil) - [object performSelector: selector]; -} - -- (void) makeObjectsPerformSelector: (SEL) selector withObject: argument { - NSEnumerator *state = [self objectEnumerator]; - id object; - - while ((object = [state nextObject]) != nil) - [object performSelector: selector withObject: argument]; -} - -- anyObject { - return [[self objectEnumerator] nextObject]; -} - -- (NSString *) description { - NSMutableString *result = [NSMutableString string]; - id objects = [self objectEnumerator]; - id next; - NSInteger i, count = [self count]; - - [result appendFormat: @"<%@: 0x%x> (", [self class], self]; - for (i = 0; (next = [objects nextObject]) != nil; i++) { - [result appendFormat: @"%@", next]; - if (i + 1 < count) - [result appendFormat: @", "]; - } - - [result appendFormat: @")"]; - - return result; -} - -- (NSString *) descriptionWithLocale: (NSDictionary *) locale { - return nil; -} - -- (NSSet *) filteredSetUsingPredicate: (NSPredicate *) predicate { - NSMutableSet *result = [NSMutableSet setWithCapacity: [self count]]; - - for (id obj in self) { - if ([predicate evaluateWithObject: obj]) - [result addObject: obj]; - } - - return result; -} - -- (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *) state - objects: (id *) stackbuf - count: (NSUInteger) length; -{ - NSInteger i; - state->itemsPtr = stackbuf; - - state->mutationsPtr = (unsigned long *) self; - if (!state->state) - state->state = (unsigned long) [self objectEnumerator]; - - id en = (id) state->state; - - for (i = 0; i < length; i++) { - state->itemsPtr[i] = [en nextObject]; - if (!state->itemsPtr[i]) - return i; - } - - return i; -} - -@end - -#import - -@implementation NSSet (CFTypeID) - -- (unsigned) _cfTypeID { - return kNSCFTypeSet; -} - -@end diff --git a/Foundation/NSSet/NSSet_concrete.h b/Foundation/NSSet/NSSet_concrete.h deleted file mode 100644 index d7336245..00000000 --- a/Foundation/NSSet/NSSet_concrete.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSSet_concrete : NSSet { - NSSetTable _table; - NSSetBucket *_buckets[0]; -} -@end - -NSSet *NSSet_concreteNew(NSZone *zone, id *objects, NSUInteger count); diff --git a/Foundation/NSSet/NSSet_concrete.m b/Foundation/NSSet/NSSet_concrete.m deleted file mode 100644 index 99a96e91..00000000 --- a/Foundation/NSSet/NSSet_concrete.m +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSSet_concrete - -NSSet *NSSet_concreteNew(NSZone *zone, id *objects, NSUInteger count) { - NSUInteger i, capacity = NSSetTableRoundCount(count); - NSSet_concrete *self = NSAllocateObject( - [NSSet_concrete class], sizeof(NSSetBucket *) * capacity, zone); - if (self) { - self->_table.count = 0; - self->_table.numBuckets = capacity; - self->_table.buckets = self->_buckets; - - for (i = 0; i < count; i++) - NSSetTableAddObjectNoGrow(&(self->_table), objects[i]); - } - - return self; -} - -- (void) dealloc { - NSSetTableFreeObjects(&_table); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSUInteger) count { - return _table.count; -} - -- member: object { - return NSSetTableMember(&_table, object); -} - -- (NSEnumerator *) objectEnumerator { - return NSAutorelease(NSEnumerator_setNew(NULL, self, &_table)); -} - -@end diff --git a/Foundation/NSSet/NSSet_placeholder.h b/Foundation/NSSet/NSSet_placeholder.h deleted file mode 100644 index 0b22d5a3..00000000 --- a/Foundation/NSSet/NSSet_placeholder.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSSet_placeholder : NSSet - -@end diff --git a/Foundation/NSSet/NSSet_placeholder.m b/Foundation/NSSet/NSSet_placeholder.m deleted file mode 100644 index 86eca9b4..00000000 --- a/Foundation/NSSet/NSSet_placeholder.m +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -@implementation NSSet_placeholder - -- init { - [self dealloc]; - return (NSSet_placeholder *) NSSet_concreteNew(NULL, NULL, 0); -} - -- initWithArray: (NSArray *) array { - NSUInteger count = [array count]; - id *objects = __builtin_alloca(sizeof(id) * count); - - [array getObjects: objects]; - - [self dealloc]; - - return (NSSet_placeholder *) NSSet_concreteNew(NULL, objects, count); -} - -- initWithObjects: (id *) objects count: (NSUInteger) count { - [self dealloc]; - return (NSSet_placeholder *) NSSet_concreteNew(NULL, objects, count); -} - -- initWithObjects: (id) object, ... { - va_list arguments; - NSUInteger i, count; - id *objects; - - if (object == nil) { - return [self init]; - } - - va_start(arguments, object); - count = 1; - while (va_arg(arguments, id) != nil) { - count++; - } - va_end(arguments); - - objects = __builtin_alloca(sizeof(id) * count); - - va_start(arguments, object); - objects[0] = object; - for (i = 1; i < count; i++) { - objects[i] = va_arg(arguments, id); - } - va_end(arguments); - - [self dealloc]; - - return (NSSet_placeholder *) NSSet_concreteNew(NULL, objects, count); -} - -@end diff --git a/Foundation/NSSortDescriptor.h b/Foundation/NSSortDescriptor.h deleted file mode 100644 index 558efa66..00000000 --- a/Foundation/NSSortDescriptor.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSSortDescriptor : NSObject { - NSString *_key; - BOOL _ascending; - SEL _selector; -} - -+ sortDescriptorWithKey: (NSString *) key ascending: (BOOL) ascending; -+ sortDescriptorWithKey: (NSString *) key - ascending: (BOOL) ascending - selector: (SEL) selector; - -- initWithKey: (NSString *) key ascending: (BOOL) ascending; -- initWithKey: (NSString *) key - ascending: (BOOL) ascending - selector: (SEL) selector; - -- (NSString *) key; -- (BOOL) ascending; -- (SEL) selector; - -- (NSComparisonResult) compareObject: first toObject: second; -- reversedSortDescriptor; - -@end diff --git a/Foundation/NSSortDescriptor.m b/Foundation/NSSortDescriptor.m deleted file mode 100644 index 0446dec2..00000000 --- a/Foundation/NSSortDescriptor.m +++ /dev/null @@ -1,137 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import - -@implementation NSSortDescriptor - -+ sortDescriptorWithKey: (NSString *) key ascending: (BOOL) ascending { - return [[[NSSortDescriptor allocWithZone: NULL] initWithKey: key - ascending: ascending - selector: NULL] - autorelease]; -} - -+ sortDescriptorWithKey: (NSString *) key - ascending: (BOOL) ascending - selector: (SEL) selector -{ - return [[[NSSortDescriptor allocWithZone: NULL] initWithKey: key - ascending: ascending - selector: selector] - autorelease]; -} - -- initWithKey: (NSString *) key ascending: (BOOL) ascending { - return [self initWithKey: key ascending: ascending selector: NULL]; -} - -- initWithKey: (NSString *) key - ascending: (BOOL) ascending - selector: (SEL) selector -{ - _key = [key copy]; - _ascending = ascending; - - if (selector == NULL) // Yes it does this - _selector = @selector(compare:); - else - _selector = selector; - return self; -} - -- (void) dealloc { - [_key release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (NSString *) key { - return _key; -} - -- (BOOL) ascending { - return _ascending; -} - -- (SEL) selector { - return _selector; -} - -- (NSComparisonResult) compareObject: first toObject: second { - id checkFirst = [first valueForKeyPath: _key]; - id checkSecond = [second valueForKeyPath: _key]; - NSComparisonResult result; - - if (_ascending) - result = (NSComparisonResult) [checkFirst performSelector: _selector - withObject: checkSecond]; - else - result = (NSComparisonResult) [checkSecond performSelector: _selector - withObject: checkFirst]; - - return result; -} - -- reversedSortDescriptor { - return [[[[self class] alloc] initWithKey: _key - ascending: !_ascending - selector: _selector] autorelease]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - [coder encodeObject: _key forKey: @"Key"]; - [coder encodeBool: _ascending forKey: @"Ascending"]; - [coder encodeObject: NSStringFromSelector(_selector) - forKey: @"Selector"]; - } else { - [coder encodeObject: _key]; - [coder encodeValueOfObjCType: @encode(BOOL) at: &_ascending]; - [coder encodeObject: NSStringFromSelector(_selector)]; - } -} - -- (id) initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - _key = [[keyed decodeObjectForKey: @"Key"] copy]; - _ascending = [keyed decodeBoolForKey: @"Ascending"]; - _selector = - NSSelectorFromString([keyed decodeObjectForKey: @"Selector"]); - } - - else { - _key = [[coder decodeObject] copy]; - [coder decodeValueOfObjCType: @encode(BOOL) at: &_ascending]; - _selector = NSSelectorFromString([coder decodeObject]); - } - - return self; -} - -@end diff --git a/Foundation/NSSpellEngine.h b/Foundation/NSSpellEngine.h deleted file mode 100644 index 0d81f0c0..00000000 --- a/Foundation/NSSpellEngine.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// NSSpellEngine.h -// Foundation -// -// Created by Christopher Lloyd on 8/23/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. -// - -#import -#import - -/* Private class which implements the delegate behavior of NSSpellServer - * directly, used for in-process spell checking. */ - -@interface NSSpellEngine : NSObject - -+ (NSArray *) allSpellEngines; -+ (NSArray *) spellEngines; - -- (NSString *) vendor; -- (NSArray *) languages; - -- (NSRange) checkGrammarInString: (NSString *) string - language: (NSString *) language - details: (NSArray **) outDetails; - -- (NSArray *) checkString: (NSString *) stringToCheck - offset: (NSUInteger) offset - types: (NSTextCheckingTypes) checkingTypes - options: (NSDictionary *) options - orthography: (NSOrthography *) orthography - wordCount: (NSInteger *) wordCount; - -- (void) didForgetWord: (NSString *) word inLanguage: (NSString *) language; - -- (void) didLearnWord: (NSString *) word inLanguage: (NSString *) language; - -- (NSRange) findMisspelledWordInString: (NSString *) stringToCheck - language: (NSString *) language - wordCount: (NSInteger *) wordCount - countOnly: (BOOL) countOnly; - -- (NSArray *) suggestCompletionsForPartialWordRange: (NSRange) range - inString: (NSString *) string - language: (NSString *) language; - -- (NSArray *) suggestGuessesForWord: (NSString *) word - inLanguage: (NSString *) language; - -@end diff --git a/Foundation/NSSpellEngine.m b/Foundation/NSSpellEngine.m deleted file mode 100644 index 85ca70a4..00000000 --- a/Foundation/NSSpellEngine.m +++ /dev/null @@ -1,176 +0,0 @@ -// -// NSSpellEngine.m -// Foundation -// -// Created by Christopher Lloyd on 8/23/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. -// - -#import -#import -#import -#import - -@implementation NSSpellEngine - -static NSMutableArray *_allSpellEngines = nil; - -+ (void) initialize { - if (self == [NSSpellEngine class]) { - - NSArray *allPaths = [[NSBundle bundleForClass: self] - pathsForResourcesOfType: @"spellEngine" - inDirectory: nil]; - int i, count = [allPaths count]; - - _allSpellEngines = [[NSMutableArray alloc] init]; - - for (i = 0; i < count; i++) { - NSString *path = [allPaths objectAtIndex: i]; - NSBundle *check = [NSBundle bundleWithPath: path]; - Class cls = [check principalClass]; - // unused - // NSArray *engines=[cls spellEngines]; - - [_allSpellEngines addObjectsFromArray: [cls spellEngines]]; - } - } -} - -+ (NSArray *) allSpellEngines { - return _allSpellEngines; -} - -+ (NSArray *) spellEngines { - return nil; -} - -- (NSString *) vendor { - return nil; -} - -- (NSArray *) languages { - return nil; -} - -- (NSRange) checkGrammarInString: (NSString *) string - language: (NSString *) language - details: (NSArray **) outDetails -{ - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSArray *) checkString: (NSString *) stringToCheck - offset: (NSUInteger) offset - types: (NSTextCheckingTypes) checkingTypes - options: (NSDictionary *) options - orthography: (NSOrthography *) orthography - wordCount: (NSInteger *) wordCount -{ - NSUnimplementedMethod(); - return nil; -} - -- (void) didForgetWord: (NSString *) word inLanguage: (NSString *) language { - NSUnimplementedMethod(); -} - -- (void) didLearnWord: (NSString *) word inLanguage: (NSString *) language { - NSUnimplementedMethod(); -} - -- (NSRange) findMisspelledWordInString: (NSString *) stringToCheck - language: (NSString *) language - wordCount: (NSInteger *) wordCount - countOnly: (BOOL) countOnly -{ - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSArray *) suggestCompletionsForPartialWordRange: (NSRange) range - inString: (NSString *) string - language: (NSString *) language -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) suggestGuessesForWord: (NSString *) word - inLanguage: (NSString *) language -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSRange) spellServer: (NSSpellServer *) sender - checkGrammarInString: (NSString *) string - language: (NSString *) language - details: (NSArray **) outDetails -{ - return [self checkGrammarInString: string - language: language - details: outDetails]; -} - -- (NSArray *) spellServer: (NSSpellServer *) sender - checkString: (NSString *) stringToCheck - offset: (NSUInteger) offset - types: (NSTextCheckingTypes) checkingTypes - options: (NSDictionary *) options - orthography: (NSOrthography *) orthography - wordCount: (NSInteger *) wordCount -{ - return [self checkString: stringToCheck - offset: offset - types: checkingTypes - options: options - orthography: orthography - wordCount: wordCount]; -} - -- (void) spellServer: (NSSpellServer *) sender - didForgetWord: (NSString *) word - inLanguage: (NSString *) language -{ - return [self didForgetWord: word inLanguage: language]; -} - -- (void) spellServer: (NSSpellServer *) sender - didLearnWord: (NSString *) word - inLanguage: (NSString *) language -{ - return [self didLearnWord: word inLanguage: language]; -} - -- (NSRange) spellServer: (NSSpellServer *) sender - findMisspelledWordInString: (NSString *) stringToCheck - language: (NSString *) language - wordCount: (NSInteger *) wordCount - countOnly: (BOOL) countOnly -{ - return [self findMisspelledWordInString: stringToCheck - language: language - wordCount: wordCount - countOnly: countOnly]; -} - -- (NSArray *) spellServer: (NSSpellServer *) sender - suggestCompletionsForPartialWordRange: (NSRange) range - inString: (NSString *) string - language: (NSString *) language -{ - return [self suggestCompletionsForPartialWordRange: range - inString: string - language: language]; -} - -- (NSArray *) spellServer: (NSSpellServer *) sender - suggestGuessesForWord: (NSString *) word - inLanguage: (NSString *) language -{ - return [self suggestGuessesForWord: word inLanguage: language]; -} - -@end diff --git a/Foundation/NSSpellServer.h b/Foundation/NSSpellServer.h deleted file mode 100644 index 84222ba9..00000000 --- a/Foundation/NSSpellServer.h +++ /dev/null @@ -1,66 +0,0 @@ -#import -#import -#import - -@class NSSpellServer, NSArray, NSDictionary, NSOrthography; - -FOUNDATION_EXPORT NSString *const NSGrammarRange; -FOUNDATION_EXPORT NSString *const NSGrammarUserDescription; -FOUNDATION_EXPORT NSString *const NSGrammarCorrections; - -@protocol NSSpellServerDelegate -//@optional - -- (NSRange) spellServer: (NSSpellServer *) sender - checkGrammarInString: (NSString *) string - language: (NSString *) language - details: (NSArray **) outDetails; - -- (NSArray *) spellServer: (NSSpellServer *) sender - checkString: (NSString *) stringToCheck - offset: (NSUInteger) offset - types: (NSTextCheckingTypes) checkingTypes - options: (NSDictionary *) options - orthography: (NSOrthography *) orthography - wordCount: (NSInteger *) wordCount; - -- (void) spellServer: (NSSpellServer *) sender - didForgetWord: (NSString *) word - inLanguage: (NSString *) language; - -- (void) spellServer: (NSSpellServer *) sender - didLearnWord: (NSString *) word - inLanguage: (NSString *) language; - -- (NSRange) spellServer: (NSSpellServer *) sender - findMisspelledWordInString: (NSString *) stringToCheck - language: (NSString *) language - wordCount: (NSInteger *) wordCount - countOnly: (BOOL) countOnly; - -- (NSArray *) spellServer: (NSSpellServer *) sender - suggestCompletionsForPartialWordRange: (NSRange) range - inString: (NSString *) string - language: (NSString *) language; - -- (NSArray *) spellServer: (NSSpellServer *) sender - suggestGuessesForWord: (NSString *) word - inLanguage: (NSString *) language; - -@end - -@interface NSSpellServer : NSObject { -} - -- (id) delegate; - -- (BOOL) isWordInUserDictionaries: (NSString *) word - caseSensitive: (BOOL) caseSensitive; - -- (BOOL) registerLanguage: (NSString *) language byVendor: (NSString *) vendor; - -- (void) run; - -- (void) setDelegate: (id) delegate; - -@end diff --git a/Foundation/NSSpellServer.m b/Foundation/NSSpellServer.m deleted file mode 100644 index b2bbc048..00000000 --- a/Foundation/NSSpellServer.m +++ /dev/null @@ -1,6 +0,0 @@ -#import -#import - -NSString *const NSGrammarRange = @"NSGrammarRange"; -NSString *const NSGrammarUserDescription = @"NSGrammarUserDescription"; -NSString *const NSGrammarCorrections = @"NSGrammarCorrections"; diff --git a/Foundation/NSStream/CFSSLHandler.h b/Foundation/NSStream/CFSSLHandler.h deleted file mode 100644 index 97254ba4..00000000 --- a/Foundation/NSStream/CFSSLHandler.h +++ /dev/null @@ -1,30 +0,0 @@ -#import -#import - -@class NSSocket; - -@interface CFSSLHandler : NSObject { -} - -- initWithProperties: (CFDictionaryRef) properties; - -- (BOOL) isHandshaking; - -- (NSInteger) writePlaintext: (const uint8_t *) buffer - maxLength: (NSUInteger) length; -- (NSInteger) writeBytesAvailable; -- (BOOL) wantsMoreIncoming; -- (NSInteger) readEncrypted: (uint8_t *) buffer maxLength: (NSUInteger) length; - -- (NSInteger) writeEncrypted: (const uint8_t *) buffer - maxLength: (NSUInteger) length; -- (NSInteger) readBytesAvailable; -- (NSInteger) readPlaintext: (uint8_t *) buffer maxLength: (NSUInteger) length; - -- (NSInteger) transferOneBufferFromSSLToSocket: (NSSocket *) socket; -- (NSInteger) transferOneBufferFromSocketToSSL: (NSSocket *) socket; - -- (void) runHandshakeIfNeeded: (NSSocket *) socket; -- (void) runWithSocket: (NSSocket *) socket; - -@end diff --git a/Foundation/NSStream/CFSSLHandler.m b/Foundation/NSStream/CFSSLHandler.m deleted file mode 100644 index dbe38575..00000000 --- a/Foundation/NSStream/CFSSLHandler.m +++ /dev/null @@ -1,61 +0,0 @@ -#import - -@implementation CFSSLHandler - -- initWithProperties: (CFDictionaryRef) properties { - return self; -} - -- (BOOL) isHandshaking { - return NO; -} - -- (NSInteger) writePlaintext: (const uint8_t *) buffer - maxLength: (NSUInteger) length -{ - return -1; -} - -- (NSInteger) writeBytesAvailable { - return -1; -} - -- (BOOL) wantsMoreIncoming { - return NO; -} - -- (NSInteger) readEncrypted: (uint8_t *) buffer maxLength: (NSUInteger) length { - return -1; -} - -- (NSInteger) writeEncrypted: (const uint8_t *) buffer - maxLength: (NSUInteger) length -{ - return -1; -} - -- (NSInteger) readBytesAvailable { - return -1; -} - -- (NSInteger) readPlaintext: (uint8_t *) buffer maxLength: (NSUInteger) length { - return -1; -} - -- (NSInteger) transferOneBufferFromSSLToSocket: (NSSocket *) socket { - return -1; -} - -- (NSInteger) transferOneBufferFromSocketToSSL: (NSSocket *) socket { - return -1; -} - -- (void) runHandshakeIfNeeded: (NSSocket *) socket { - return; -} - -- (void) runWithSocket: (NSSocket *) socket { - return; -} - -@end diff --git a/Foundation/NSStream/NSFileHandle.h b/Foundation/NSStream/NSFileHandle.h deleted file mode 100644 index 69b593fa..00000000 --- a/Foundation/NSStream/NSFileHandle.h +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSData, NSArray; - -FOUNDATION_EXPORT NSString *const NSFileHandleConnectionAcceptedNotification; -FOUNDATION_EXPORT NSString *const NSFileHandleDataAvailableNotification; -FOUNDATION_EXPORT NSString *const NSFileHandleReadCompletionNotification; -FOUNDATION_EXPORT NSString - *const NSFileHandleReadToEndOfFileCompletionNotification; - -FOUNDATION_EXPORT NSString *const NSFileHandleNotificationDataItem; -FOUNDATION_EXPORT NSString *const NSFileHandleNotificationFileHandleItem; - -FOUNDATION_EXPORT NSString *const NSFileHandleNotificationMonitorModes; - -FOUNDATION_EXPORT NSString *const NSFileHandleOperationException; - -@interface NSFileHandle : NSObject - -+ fileHandleForReadingAtPath: (NSString *) path; -+ fileHandleForWritingAtPath: (NSString *) path; -+ fileHandleForUpdatingAtPath: (NSString *) path; - -+ fileHandleWithNullDevice; -+ fileHandleWithStandardInput; -+ fileHandleWithStandardOutput; -+ fileHandleWithStandardError; - -- initWithFileDescriptor: (int) descriptor; -- initWithFileDescriptor: (int) descriptor - closeOnDealloc: (BOOL) closeOnDealloc; - -- (int) fileDescriptor; - -- (void) closeFile; -- (void) synchronizeFile; - -- (uint64_t) offsetInFile; -- (void) seekToFileOffset: (uint64_t) offset; -- (uint64_t) seekToEndOfFile; - -- (NSData *) readDataOfLength: (NSUInteger) length; -- (NSData *) readDataToEndOfFile; -- (NSData *) availableData; - -- (void) writeData: (NSData *) data; - -- (void) truncateFileAtOffset: (uint64_t) offset; - -- (void) readInBackgroundAndNotifyForModes: (NSArray *) modes; -- (void) readInBackgroundAndNotify; - -- (void) readToEndOfFileInBackgroundAndNotifyForModes: (NSArray *) modes; -- (void) readToEndOfFileInBackgroundAndNotify; - -- (void) acceptConnectionInBackgroundAndNotifyForModes: (NSArray *) modes; -- (void) acceptConnectionInBackgroundAndNotify; - -- (void) waitForDataInBackgroundAndNotifyForModes: (NSArray *) modes; -- (void) waitForDataInBackgroundAndNotify; - -@end diff --git a/Foundation/NSStream/NSFileHandle.m b/Foundation/NSStream/NSFileHandle.m deleted file mode 100644 index 92b44757..00000000 --- a/Foundation/NSStream/NSFileHandle.m +++ /dev/null @@ -1,191 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSFileHandle_stream.h" -#import -#import -#import -#import -#import - -NSString *const NSFileHandleConnectionAcceptedNotification = - @"NSFileHandleConnectionAcceptedNotification"; -NSString *const NSFileHandleDataAvailableNotification = - @"NSFileHandleDataAvailableNotification"; -NSString *const NSFileHandleReadCompletionNotification = - @"NSFileHandleReadCompletionNotification"; -NSString *const NSFileHandleReadToEndOfFileCompletionNotification = - @"NSFileHandleReadToEndOfFileCompletionNotification"; - -NSString *const NSFileHandleNotificationDataItem = - @"NSFileHandleNotificationDataItem"; -NSString *const NSFileHandleNotificationFileHandleItem = - @"NSFileHandleNotificationFileHandleItem"; - -NSString *const NSFileHandleNotificationMonitorModes = - @"NSFileHandleNotificationMonitorModes"; - -NSString *const NSFileHandleOperationException = - @"NSFileHandleOperationException"; - -@interface NSFileHandle (ImplementedInPlatform) -+ (Class) concreteSubclass; -@end - -@implementation NSFileHandle - -+ allocWithZone: (NSZone *) zone { - if (self == [NSFileHandle class]) - return NSAllocateObject([self concreteSubclass], 0, NULL); - - return NSAllocateObject(self, 0, zone); -} - -+ fileHandleForReadingAtPath: (NSString *) path { - return [[self concreteSubclass] fileHandleForReadingAtPath: path]; -} - -+ fileHandleForWritingAtPath: (NSString *) path { - return [[self concreteSubclass] fileHandleForWritingAtPath: path]; -} - -+ fileHandleForUpdatingAtPath: (NSString *) path { - return [[self concreteSubclass] fileHandleForUpdatingAtPath: path]; -} - -+ fileHandleWithNullDevice { - return [[self concreteSubclass] fileHandleWithNullDevice]; -} - -+ fileHandleWithStandardInput { - return [[self concreteSubclass] fileHandleWithStandardInput]; -} - -+ fileHandleWithStandardOutput { - return [[self concreteSubclass] fileHandleWithStandardOutput]; -} - -+ fileHandleWithStandardError { - return [[self concreteSubclass] fileHandleWithStandardError]; -} - -- initWithFileDescriptor: (int) descriptor { - return [self initWithFileDescriptor: descriptor closeOnDealloc: YES]; -} - -- initWithFileDescriptor: (int) descriptor - closeOnDealloc: (BOOL) closeOnDealloc -{ - NSSocket *socket = - [[[NSSocket alloc] initWithFileDescriptor: descriptor] autorelease]; - - [self dealloc]; - if (socket == nil) - return nil; - - return [[NSFileHandle_stream alloc] initWithSocket: socket - closeOnDealloc: closeOnDealloc]; -} - -- (int) fileDescriptor { - NSInvalidAbstractInvocation(); - return -1; -} - -- (void) closeFile { - NSInvalidAbstractInvocation(); -} - -- (void) synchronizeFile { - NSInvalidAbstractInvocation(); -} - -- (uint64_t) offsetInFile { - NSInvalidAbstractInvocation(); - return 0; -} - -- (void) seekToFileOffset: (uint64_t) offset { - NSInvalidAbstractInvocation(); -} - -- (uint64_t) seekToEndOfFile { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSData *) readDataOfLength: (NSUInteger) length { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSData *) readDataToEndOfFile { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSData *) availableData { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) writeData: (NSData *) data { - NSInvalidAbstractInvocation(); -} - -- (void) truncateFileAtOffset: (uint64_t) offset { - NSInvalidAbstractInvocation(); -} - -- (void) readInBackgroundAndNotifyForModes: (NSArray *) modes { - NSInvalidAbstractInvocation(); -} - -- (void) readInBackgroundAndNotify { - [self readInBackgroundAndNotifyForModes: - [NSArray arrayWithObject: NSDefaultRunLoopMode]]; -} - -- (void) readToEndOfFileInBackgroundAndNotifyForModes: (NSArray *) modes { - NSInvalidAbstractInvocation(); -} - -- (void) readToEndOfFileInBackgroundAndNotify { - [self readToEndOfFileInBackgroundAndNotifyForModes: - [NSArray arrayWithObject: NSDefaultRunLoopMode]]; -} - -- (void) acceptConnectionInBackgroundAndNotifyForModes: (NSArray *) modes { - NSInvalidAbstractInvocation(); -} - -- (void) acceptConnectionInBackgroundAndNotify { - [self acceptConnectionInBackgroundAndNotifyForModes: - [NSArray arrayWithObject: NSDefaultRunLoopMode]]; -} - -- (void) waitForDataInBackgroundAndNotifyForModes: (NSArray *) modes { - NSInvalidAbstractInvocation(); -} - -- (void) waitForDataInBackgroundAndNotify { - [self waitForDataInBackgroundAndNotifyForModes: - [NSArray arrayWithObject: NSDefaultRunLoopMode]]; -} - -@end diff --git a/Foundation/NSStream/NSFileHandle_stream.h b/Foundation/NSStream/NSFileHandle_stream.h deleted file mode 100644 index f2cb1883..00000000 --- a/Foundation/NSStream/NSFileHandle_stream.h +++ /dev/null @@ -1,16 +0,0 @@ -#import - -@class NSInputStream, NSOutputStream, NSSocket, NSMutableData; - -@interface NSFileHandle_stream : NSFileHandle { - NSInputStream *_inputStream; - NSOutputStream *_outputStream; - BOOL _closeOnDealloc; - int _asyncState; - NSArray *_modes; - NSMutableData *_endOfFileBuffer; -} - -- initWithSocket: (NSSocket *) socket closeOnDealloc: (BOOL) closeOnDealloc; - -@end diff --git a/Foundation/NSStream/NSFileHandle_stream.m b/Foundation/NSStream/NSFileHandle_stream.m deleted file mode 100644 index 3c995759..00000000 --- a/Foundation/NSStream/NSFileHandle_stream.m +++ /dev/null @@ -1,254 +0,0 @@ -#import "NSFileHandle_stream.h" -#import "NSInputStream_socket.h" -#import "NSOutputStream_socket.h" -#import -#import -#import -#import -#import -#import -#import -#import - -enum { - NSFileHandleStateNone, - NSFileHandleStateRead, - NSFileHandleStateReadToEndOfFile, - NSFileHandleStateAccept, - NSFileHandleStateWait -}; - -@implementation NSFileHandle_stream - -- initWithSocket: (NSSocket *) socket closeOnDealloc: (BOOL) closeOnDealloc { - _inputStream = - [[NSInputStream_socket alloc] initWithSocket: socket - streamStatus: NSStreamStatusOpen]; - [_inputStream setDelegate: self]; - _outputStream = - [[NSOutputStream_socket alloc] initWithSocket: socket - streamStatus: NSStreamStatusOpen]; - [_outputStream setDelegate: self]; - _closeOnDealloc = closeOnDealloc; - _asyncState = NSFileHandleStateNone; - return self; -} - -- (void) dealloc { - if (_closeOnDealloc) - [self closeFile]; - - [_inputStream setDelegate: nil]; - [_inputStream release]; - [_outputStream setDelegate: nil]; - [_outputStream release]; - [_modes release]; - [_endOfFileBuffer release]; - [super dealloc]; -} - -- (int) fileDescriptor { - if ([_inputStream respondsToSelector: @selector(fileDescriptor)]) - return [(id) _inputStream fileDescriptor]; - - if ([_outputStream respondsToSelector: @selector(fileDescriptor)]) - return [(id) _outputStream fileDescriptor]; - - return -1; -} - -- (void) closeFile { - [_inputStream close]; - [_outputStream close]; -} - -- (void) synchronizeFile { - [NSException raise: NSFileHandleOperationException - format: @"-[%@ %s]: Operation not supported", [self class], - sel_getName(_cmd)]; -} - -- (uint64_t) offsetInFile { - [NSException - raise: NSFileHandleOperationException - format: @"-[%@ %s]: Illegal seek", [self class], sel_getName(_cmd)]; - return 0; -} - -- (void) seekToFileOffset: (uint64_t) offset { - [NSException - raise: NSFileHandleOperationException - format: @"-[%@ %s]: Illegal seek", [self class], sel_getName(_cmd)]; -} - -- (uint64_t) seekToEndOfFile { - [NSException - raise: NSFileHandleOperationException - format: @"-[%@ %s]: Illegal seek", [self class], sel_getName(_cmd)]; - return 0; -} - -- (NSData *) readDataOfLength: (NSUInteger) length { - void *bytes = NSZoneMalloc(NULL, length); - NSInteger bytesRead = [_inputStream read: bytes maxLength: length]; - - // FIX, should raise exception - if (bytesRead == -1) - return nil; - - return [NSData dataWithBytesNoCopy: bytes - length: bytesRead - freeWhenDone: YES]; -} - -- (NSData *) readDataToEndOfFile { - NSMutableData *result = [NSMutableData data]; - NSData *chunk; - - while ([(chunk = [self readDataOfLength: 8192]) length] > 0) - [result appendData: chunk]; - - return result; -} - -- (NSData *) availableData { - return [self readDataOfLength: 8192]; -} - -- (void) writeData: (NSData *) data { - NSInteger check = [_outputStream write: [data bytes] - maxLength: [data length]]; - - if (check != [data length]) { - // FIX, should raise exception - } -} - -- (void) truncateFileAtOffset: (uint64_t) offset { - [self doesNotRecognizeSelector: _cmd]; -} - -- (void) _setAsyncState: (int) state forModes: (NSArray *) modes { - NSInteger i, count; - - // NSFileHandle will retain itself if asked to do an async activity - if (_asyncState == NSFileHandleStateNone && state != NSFileHandleStateNone) - [self retain]; - else if (state == NSFileHandleStateNone && - _asyncState != NSFileHandleStateNone) - [self autorelease]; - - _asyncState = state; - - count = [_modes count]; - for (i = 0; i < count; i++) - [_inputStream removeFromRunLoop: [NSRunLoop currentRunLoop] - forMode: [_modes objectAtIndex: i]]; - - [_modes release]; - _modes = [modes copy]; - - count = [_modes count]; - for (i = 0; i < count; i++) - [_inputStream scheduleInRunLoop: [NSRunLoop currentRunLoop] - forMode: [_modes objectAtIndex: i]]; -} - -- (void) stream: (NSStream *) stream handleEvent: (NSStreamEvent) streamEvent { - if (stream == _inputStream) { - NSString *notificationName = nil; - NSDictionary *userInfo = nil; - - int eventState = _asyncState; - - switch (eventState) { - - case NSFileHandleStateNone: - // do nothing, shouldn't get here - break; - - case NSFileHandleStateRead: { - NSData *data = [self availableData]; - - notificationName = NSFileHandleReadCompletionNotification; - // FIX, need error key too - userInfo = [NSDictionary - dictionaryWithObject: data - forKey: NSFileHandleNotificationDataItem]; - [self _setAsyncState: NSFileHandleStateNone forModes: nil]; - } break; - - case NSFileHandleStateReadToEndOfFile: { - NSData *data = [self availableData]; - - if ([data length] > 0) { - if (_endOfFileBuffer == nil) - _endOfFileBuffer = [NSMutableData new]; - - [_endOfFileBuffer appendData: data]; - } else { - notificationName = - NSFileHandleReadToEndOfFileCompletionNotification; - // FIX, need error key too - userInfo = [NSDictionary - dictionaryWithObject: _endOfFileBuffer - forKey: NSFileHandleNotificationDataItem]; - [_endOfFileBuffer release]; - _endOfFileBuffer = nil; - - [self _setAsyncState: NSFileHandleStateNone forModes: nil]; - } - } break; - - case NSFileHandleStateAccept: { - NSError *error; - NSSocket *socket = [[(NSInputStream_socket *) _inputStream socket] - acceptWithError: &error]; - - notificationName = NSFileHandleConnectionAcceptedNotification; - - if (socket == nil) { - // FIX, need error key - } else { - NSFileHandle *other = [[[NSFileHandle_stream alloc] - initWithSocket: socket - closeOnDealloc: YES] autorelease]; - - userInfo = [NSDictionary - dictionaryWithObject: other - forKey: NSFileHandleNotificationFileHandleItem]; - } - [self _setAsyncState: NSFileHandleStateNone forModes: nil]; - } break; - - case NSFileHandleStateWait: - notificationName = NSFileHandleDataAvailableNotification; - [self _setAsyncState: NSFileHandleStateNone forModes: nil]; - break; - } - - if (notificationName != nil) - [[NSNotificationCenter defaultCenter] - postNotificationName: notificationName - object: self - userInfo: userInfo]; - } -} - -- (void) readInBackgroundAndNotifyForModes: (NSArray *) modes { - [self _setAsyncState: NSFileHandleStateRead forModes: modes]; -} - -- (void) readToEndOfFileInBackgroundAndNotifyForModes: (NSArray *) modes { - [self _setAsyncState: NSFileHandleStateReadToEndOfFile forModes: modes]; -} - -- (void) acceptConnectionInBackgroundAndNotifyForModes: (NSArray *) modes { - [self _setAsyncState: NSFileHandleStateAccept forModes: modes]; -} - -- (void) waitForDataInBackgroundAndNotifyForModes: (NSArray *) modes { - [self _setAsyncState: NSFileHandleStateWait forModes: modes]; -} - -@end diff --git a/Foundation/NSStream/NSInputStream.h b/Foundation/NSStream/NSInputStream.h deleted file mode 100644 index e0080190..00000000 --- a/Foundation/NSStream/NSInputStream.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSData; - -@interface NSInputStream : NSStream - -- initWithData: (NSData *) data; -- initWithFileAtPath: (NSString *) path; - -+ inputStreamWithData: (NSData *) data; -+ inputStreamWithFileAtPath: (NSString *) path; - -- (BOOL) getBuffer: (uint8_t **) buffer length: (NSUInteger *) length; -- (BOOL) hasBytesAvailable; -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) length; - -@end diff --git a/Foundation/NSStream/NSInputStream.m b/Foundation/NSStream/NSInputStream.m deleted file mode 100644 index 83e44284..00000000 --- a/Foundation/NSStream/NSInputStream.m +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -@class NSData; - -@implementation NSInputStream - -- initWithData: (NSData *) data { - [self dealloc]; - return [[NSInputStream_data alloc] initWithData: data]; -} - -- initWithFileAtPath: (NSString *) path { - [self dealloc]; - return [[NSInputStream_file alloc] initWithFileAtPath: path]; -} - -+ inputStreamWithData: (NSData *) data { - return [[[self alloc] initWithData: data] autorelease]; -} - -+ inputStreamWithFileAtPath: (NSString *) path { - return [[[self alloc] initWithFileAtPath: path] autorelease]; -} - -- (BOOL) getBuffer: (uint8_t **) buffer length: (NSUInteger *) length { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) hasBytesAvailable { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) length { - NSInvalidAbstractInvocation(); - return 0; -} - -@end diff --git a/Foundation/NSStream/NSInputStream_data.h b/Foundation/NSStream/NSInputStream_data.h deleted file mode 100644 index 41e7aca5..00000000 --- a/Foundation/NSStream/NSInputStream_data.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSInputStream_data : NSInputStream { - id _delegate; - NSError *_error; - NSStreamStatus _status; - NSData *_data; - long long _position; -} - -@end diff --git a/Foundation/NSStream/NSInputStream_data.m b/Foundation/NSStream/NSInputStream_data.m deleted file mode 100644 index ac4cf2b1..00000000 --- a/Foundation/NSStream/NSInputStream_data.m +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -@implementation NSInputStream_data - -- initWithData: (NSData *) data { - _delegate = self; - _error = nil; - _status = NSStreamStatusNotOpen; - _data = [data retain]; - _position = 0; - return self; -} - -- (void) dealloc { - [_error release]; - [_data release]; - [super dealloc]; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: delegate { - _delegate = delegate; - if (_delegate == nil) - _delegate = self; -} - -- (NSError *) streamError { - return _error; -} - -- (NSStreamStatus) streamStatus { - return _status; -} - -- propertyForKey: (NSString *) key { -#if 0 -// As of 10.5, data based streams do not implement NSStreamFileCurrentOffsetKey - if([key isEqualToString:NSStreamFileCurrentOffsetKey]) - return [NSNumber numberWithLongLong:_position]; -#endif - return nil; -} - -- (BOOL) setProperty: property forKey: (NSString *) key { -#if 0 -// As of 10.5, data based streams do not implement NSStreamFileCurrentOffsetKey - if([key isEqualToString:NSStreamFileCurrentOffsetKey]){ - _position=[property longLongValue]; - return YES; - } -#endif - return NO; -} - -- (void) open { - if (_status == NSStreamStatusNotOpen) { - _status = NSStreamStatusOpen; - } -} - -- (void) close { - _status = NSStreamStatusClosed; -} - -- (BOOL) getBuffer: (uint8_t **) buffer length: (NSUInteger *) length { - return NO; -} - -- (BOOL) hasBytesAvailable { - return _position < [_data length]; -} - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) maxLength { - if (_status != NSStreamStatusOpen) - return -1; - else { - const uint8_t *bytes = [_data bytes]; - NSUInteger i, length = [_data length]; - - for (i = 0; i < maxLength && _position < length; i++, _position++) - buffer[i] = bytes[_position]; - - return i; - } -} - -@end diff --git a/Foundation/NSStream/NSInputStream_file.h b/Foundation/NSStream/NSInputStream_file.h deleted file mode 100644 index 7a303dcd..00000000 --- a/Foundation/NSStream/NSInputStream_file.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSFileHandle; - -@interface NSInputStream_file : NSInputStream { - id _delegate; - NSError *_error; - NSStreamStatus _status; - NSString *_path; - NSFileHandle *_fileHandle; -} - -@end diff --git a/Foundation/NSStream/NSInputStream_file.m b/Foundation/NSStream/NSInputStream_file.m deleted file mode 100644 index 0b245ae2..00000000 --- a/Foundation/NSStream/NSInputStream_file.m +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import - -@implementation NSInputStream_file - -- initWithFileAtPath: (NSString *) path { - _delegate = self; - _error = nil; - _status = NSStreamStatusNotOpen; - _path = [path copy]; - _fileHandle = nil; - return self; -} - -- (void) dealloc { - [_error release]; - [_path release]; - [_fileHandle release]; - [super dealloc]; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: delegate { - _delegate = delegate; - if (_delegate == nil) - _delegate = self; -} - -- (NSError *) streamError { - return _error; -} - -- (NSStreamStatus) streamStatus { - return _status; -} - -- (void) open { - if (_status == NSStreamStatusNotOpen) { - _status = NSStreamStatusOpen; - _fileHandle = [[NSFileHandle fileHandleForReadingAtPath: _path] retain]; - } -} - -- (void) close { - _status = NSStreamStatusClosed; - [_fileHandle closeFile]; -} - -- propertyForKey: (NSString *) key { - return nil; -} - -- (BOOL) getBuffer: (uint8_t **) buffer length: (NSUInteger *) length { - return NO; -} - -- (BOOL) hasBytesAvailable { - return NO; -} - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) length { - return -1; -} - -@end diff --git a/Foundation/NSStream/NSInputStream_socket.h b/Foundation/NSStream/NSInputStream_socket.h deleted file mode 100644 index 140f42de..00000000 --- a/Foundation/NSStream/NSInputStream_socket.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -@class NSSocket, NSSelectInputSource; - -@interface NSInputStream_socket : NSInputStream { - CFOptionFlags _events; - CFReadStreamClientCallBack _callBack; - CFStreamClientContext _context; - id _delegate; - NSError *_error; - NSStreamStatus _status; - NSSocket *_socket; - NSSelectInputSource *_inputSource; -} - -- initWithSocket: (NSSocket *) socket streamStatus: (NSStreamStatus) status; - -- (NSSocket *) socket; - -- (void) setClientEvents: (CFOptionFlags) events - callBack: (CFReadStreamClientCallBack) callBack - context: (CFStreamClientContext *) context; - -@end diff --git a/Foundation/NSStream/NSInputStream_socket.m b/Foundation/NSStream/NSInputStream_socket.m deleted file mode 100644 index be542710..00000000 --- a/Foundation/NSStream/NSInputStream_socket.m +++ /dev/null @@ -1,247 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSInputStream_socket - -- initWithSocket: (NSSocket *) socket streamStatus: (NSStreamStatus) status { - _events = 0; - _callBack = NULL; - _delegate = self; - _error = nil; - _status = status; - _socket = [socket retain]; - _inputSource = nil; - return self; -} - -- (void) dealloc { - [_error release]; - [_socket release]; - [_inputSource release]; - [super dealloc]; -} - -- (NSSocket *) socket { - return _socket; -} - -- (int) fileDescriptor { - return [_socket fileDescriptor]; -} - -- delegate { - return _delegate; -} - -- (void) setClientEvents: (CFOptionFlags) events - callBack: (CFReadStreamClientCallBack) callBack - context: (CFStreamClientContext *) context -{ - _events = events; - _callBack = callBack; - - if (context != NULL && context->info != NULL && context->retain != NULL) - context->retain(context->info); - - _context.version = 0; - if (_context.info != NULL && _context.release != NULL) - _context.release(_context.info); - _context.info = NULL; - _context.retain = NULL; - _context.release = NULL; - - if (context != NULL) - _context = *context; -} - -- (void) setDelegate: delegate { - _delegate = delegate; - if (_delegate == nil) - _delegate = self; -} - -- propertyForKey: (NSString *) key { - if ([key isEqualToString: (NSString *) - kCFStreamPropertySocketNativeHandle]) { - CFSocketNativeHandle value = - (_socket == nil) ? -1 : [_socket fileDescriptor]; - - return [NSData dataWithBytes: &value length: sizeof(value)]; - } - - NSUnimplementedMethod(); - return nil; -} - -- (BOOL) setProperty: property forKey: (NSString *) key { - if ([key isEqualToString: (NSString *) kCFStreamPropertySSLSettings]) - return [_socket setSSLProperties: (CFDictionaryRef) property]; - - NSUnimplementedMethod(); - return NO; -} - -- (void) open { - if (_status == NSStreamStatusNotOpen) { - _status = NSStreamStatusOpening; - } -} - -- (NSError *) streamError { - return _error; -} - -- (NSStreamStatus) streamStatus { - return _status; -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - if (_inputSource == nil) { - _inputSource = [[NSSelectInputSource alloc] initWithSocket: _socket]; - [_inputSource setDelegate: self]; - [_inputSource setSelectEventMask: NSSelectReadEvent]; - } - - [runLoop addInputSource: _inputSource forMode: mode]; -} - -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - if (_inputSource != nil) - [runLoop removeInputSource: _inputSource forMode: mode]; -} - -- (void) close { - [_inputSource setSelectEventMask: 0]; - [_inputSource invalidate]; - [_socket close]; -} - -- (BOOL) getBuffer: (uint8_t **) buffer length: (NSUInteger *) length { - *buffer = NULL; - *length = 0; - return NO; -} - -- (BOOL) hasBytesAvailable { - BOOL result = NO; - - if (_status == NSStreamStatusOpen) { - CFSSLHandler *sslHandler = [_socket sslHandler]; - - if (sslHandler == nil) - result = [_socket hasBytesAvailable]; - else { - if ([_socket hasBytesAvailable]) - if ([sslHandler transferOneBufferFromSocketToSSL: _socket] <= - 0) { - // If the read failed we want to return YES so that the end - // of stream can be read - return YES; - } - - result = ([sslHandler readBytesAvailable] > 0) ? YES : NO; - } - } - - return result; -} - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) maxLength { - NSInteger result; - - if (_status == NSStreamStatusAtEnd) - return 0; - - if (_status != NSStreamStatusOpen && _status != NSStreamStatusOpening) - return -1; - - CFSSLHandler *sslHandler = [_socket sslHandler]; - - if (sslHandler == nil) - result = [_socket read: buffer maxLength: maxLength]; - else { - [sslHandler runWithSocket: _socket]; - - result = [sslHandler readPlaintext: buffer maxLength: maxLength]; - - [sslHandler runWithSocket: _socket]; - } - - if (result == 0) - _status = NSStreamStatusAtEnd; - if (result == -1) - _status = NSStreamStatusError; - - return result; -} - -- (void) selectInputSource: (NSSelectInputSource *) inputSource - selectEvent: (NSUInteger) selectEvent -{ - NSStreamEvent event; - - switch (_status) { - case NSStreamStatusOpening: - _status = NSStreamStatusOpen; - event = NSStreamEventOpenCompleted; - break; - - case NSStreamStatusOpen:; - if ([self hasBytesAvailable]) { - event = NSStreamEventHasBytesAvailable; - } else { - event = NSStreamEventNone; - } - break; - - case NSStreamStatusAtEnd: - event = NSStreamEventEndEncountered; - break; - - default: - event = NSStreamEventNone; - break; - } - - if (event != NSStreamEventNone) { - if (_callBack != NULL) { - if (_events & event) { - _callBack((CFReadStreamRef) self, (CFStreamEventType) event, - _context.info); - } - } else { - if ([_delegate respondsToSelector: @selector(stream: - handleEvent:)]) { - [_delegate stream: self handleEvent: event]; - } - } - } -} - -@end diff --git a/Foundation/NSStream/NSOutputStream.h b/Foundation/NSStream/NSOutputStream.h deleted file mode 100644 index 1c7a3adf..00000000 --- a/Foundation/NSStream/NSOutputStream.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSOutputStream : NSStream - -- initToBuffer: (uint8_t *) buffer capacity: (NSUInteger) capacity; -- initToFileAtPath: (NSString *) path append: (BOOL) append; -- initToMemory; - -+ outputStreamToBuffer: (uint8_t *) buffer capacity: (NSUInteger) capacity; -+ outputStreamToFileAtPath: (NSString *) path append: (BOOL) append; -+ outputStreamToMemory; - -- (BOOL) hasSpaceAvailable; -- (NSInteger) write: (const uint8_t *) buffer maxLength: (NSUInteger) length; - -@end diff --git a/Foundation/NSStream/NSOutputStream.m b/Foundation/NSStream/NSOutputStream.m deleted file mode 100644 index fb40c17c..00000000 --- a/Foundation/NSStream/NSOutputStream.m +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -@implementation NSOutputStream - -- initToBuffer: (uint8_t *) buffer capacity: (NSUInteger) capacity { - [self dealloc]; - return [[NSOutputStream_buffer alloc] initToBuffer: buffer - capacity: capacity]; -} - -- initToFileAtPath: (NSString *) path append: (BOOL) append { - [self dealloc]; - return [[NSOutputStream_file alloc] initToFileAtPath: path append: append]; -} - -- initToMemory { - [self dealloc]; - return [[NSOutputStream_data alloc] initToMemory]; -} - -+ outputStreamToBuffer: (uint8_t *) buffer capacity: (NSUInteger) capacity { - return [[[self alloc] initToBuffer: buffer capacity: capacity] autorelease]; -} - -+ outputStreamToFileAtPath: (NSString *) path append: (BOOL) append { - return [[[self alloc] initToFileAtPath: path append: append] autorelease]; -} - -+ outputStreamToMemory { - return [[[self alloc] initToMemory] autorelease]; -} - -- (BOOL) hasSpaceAvailable { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSInteger) write: (const uint8_t *) buffer maxLength: (NSUInteger) length { - NSInvalidAbstractInvocation(); - return 0; -} - -@end diff --git a/Foundation/NSStream/NSOutputStream_buffer.h b/Foundation/NSStream/NSOutputStream_buffer.h deleted file mode 100644 index 0ebbfe08..00000000 --- a/Foundation/NSStream/NSOutputStream_buffer.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSOutputStream_buffer : NSOutputStream { - id _delegate; - NSError *_error; - NSStreamStatus _status; - uint8_t *_buffer; - NSUInteger _capacity; - NSUInteger _position; -} - -@end diff --git a/Foundation/NSStream/NSOutputStream_buffer.m b/Foundation/NSStream/NSOutputStream_buffer.m deleted file mode 100644 index 4bac41a4..00000000 --- a/Foundation/NSStream/NSOutputStream_buffer.m +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSOutputStream_buffer - -- initToBuffer: (uint8_t *) buffer capacity: (NSUInteger) capacity { - _delegate = self; - _error = nil; - _status = NSStreamStatusNotOpen; - _buffer = buffer; - _capacity = capacity; - _position = 0; - return self; -} - -- (void) dealloc { - [_error release]; - [super dealloc]; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: delegate { - _delegate = delegate; - if (_delegate == nil) - _delegate = self; -} - -- (NSError *) streamError { - return _error; -} - -- (NSStreamStatus) streamStatus { - return _status; -} - -- (void) open { - if (_status == NSStreamStatusNotOpen) - _status = NSStreamStatusOpen; -} - -- (void) close { - _status = NSStreamStatusClosed; -} - -- (BOOL) hasSpaceAvailable { - if (_status != NSStreamStatusOpen) - return NO; - - return (_position < _capacity) ? YES : NO; -} - -- (NSInteger) write: (const uint8_t *) buffer - maxLength: (NSUInteger) maxLength -{ - if (_status != NSStreamStatusOpen) - return -1; - else { - int i; - - for (i = 0; i < maxLength && _position < _capacity; i++) - _buffer[_position++] = buffer[i]; - - if (_position >= _capacity) - _status = NSStreamStatusAtEnd; - - return i; - } -} - -@end diff --git a/Foundation/NSStream/NSOutputStream_data.h b/Foundation/NSStream/NSOutputStream_data.h deleted file mode 100644 index 56298e62..00000000 --- a/Foundation/NSStream/NSOutputStream_data.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMutableData; - -@interface NSOutputStream_data : NSOutputStream { - id _delegate; - NSError *_error; - NSStreamStatus _status; - NSMutableData *_data; -} - -@end diff --git a/Foundation/NSStream/NSOutputStream_data.m b/Foundation/NSStream/NSOutputStream_data.m deleted file mode 100644 index 36938653..00000000 --- a/Foundation/NSStream/NSOutputStream_data.m +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import - -@implementation NSOutputStream_data - -- initToMemory { - _delegate = self; - _error = nil; - _status = NSStreamStatusNotOpen; - _data = nil; - return self; -} - -- (void) dealloc { - [_error release]; - [_data release]; - [super dealloc]; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: delegate { - _delegate = delegate; - if (_delegate == nil) - _delegate = self; -} - -- (NSError *) streamError { - return _error; -} - -- (NSStreamStatus) streamStatus { - return _status; -} - -- (void) open { - if (_status == NSStreamStatusNotOpen) { - _status = NSStreamStatusOpen; - _data = [NSMutableData new]; - } -} - -- (void) close { - _status = NSStreamStatusClosed; -} - -- propertyForKey: (NSString *) key { - if ([key isEqualToString: NSStreamDataWrittenToMemoryStreamKey]) - return _data; - - return nil; -} - -- (BOOL) hasSpaceAvailable { - return (_status == NSStreamStatusOpen) ? YES : NO; -} - -- (NSInteger) write: (const uint8_t *) buffer - maxLength: (NSUInteger) maxLength -{ - if (_status != NSStreamStatusOpen) - return -1; - - [_data appendBytes: buffer length: maxLength]; - return maxLength; -} - -@end diff --git a/Foundation/NSStream/NSOutputStream_file.h b/Foundation/NSStream/NSOutputStream_file.h deleted file mode 100644 index fe5fa4ce..00000000 --- a/Foundation/NSStream/NSOutputStream_file.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSFileHandle; - -@interface NSOutputStream_file : NSOutputStream { - id _delegate; - NSError *_error; - NSStreamStatus _status; - NSString *_path; - BOOL _append; - NSFileHandle *_fileHandle; // lame but works for now -} - -@end diff --git a/Foundation/NSStream/NSOutputStream_file.m b/Foundation/NSStream/NSOutputStream_file.m deleted file mode 100644 index 81ca2126..00000000 --- a/Foundation/NSStream/NSOutputStream_file.m +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import -#import -#import - -@implementation NSOutputStream_file - -- initToFileAtPath: (NSString *) path append: (BOOL) append { - _delegate = self; - _error = nil; - _status = NSStreamStatusNotOpen; - _path = [path copy]; - _append = append; - _fileHandle = nil; - return self; -} - -- (void) dealloc { - [_error release]; - [_path release]; - [_fileHandle release]; - [super dealloc]; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: delegate { - _delegate = delegate; - if (_delegate == nil) - _delegate = self; -} - -- (NSError *) streamError { - return _error; -} - -- (NSStreamStatus) streamStatus { - return _status; -} - -- (void) open { - if (_status == NSStreamStatusNotOpen) { - _status = NSStreamStatusOpen; - _fileHandle = [[NSFileHandle fileHandleForWritingAtPath: _path] retain]; - if (_append) - [_fileHandle seekToEndOfFile]; - } -} - -- (void) close { - _status = NSStreamStatusClosed; - [_fileHandle closeFile]; -} - -- propertyForKey: (NSString *) key { - return nil; -} - -- (BOOL) hasSpaceAvailable { - return (_status == NSStreamStatusOpen) ? YES : NO; -} - -- (NSInteger) write: (const uint8_t *) buffer - maxLength: (NSUInteger) maxLength -{ - if (_status != NSStreamStatusOpen) - return -1; - - // alright this is terrible - [_fileHandle writeData: [NSData dataWithBytes: buffer length: maxLength]]; - - return maxLength; -} - -@end diff --git a/Foundation/NSStream/NSOutputStream_socket.h b/Foundation/NSStream/NSOutputStream_socket.h deleted file mode 100644 index d7f3845a..00000000 --- a/Foundation/NSStream/NSOutputStream_socket.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSSocket, NSSelectInputSource; - -@interface NSOutputStream_socket : NSOutputStream { - CFOptionFlags _events; - CFWriteStreamClientCallBack _callBack; - CFStreamClientContext _context; - id _delegate; - NSError *_error; - NSStreamStatus _status; - NSSocket *_socket; - NSSelectInputSource *_inputSource; -} - -- initWithSocket: (NSSocket *) socket streamStatus: (NSStreamStatus) status; - -- (void) setClientEvents: (CFOptionFlags) events - callBack: (CFWriteStreamClientCallBack) callBack - context: (CFStreamClientContext *) context; - -@end diff --git a/Foundation/NSStream/NSOutputStream_socket.m b/Foundation/NSStream/NSOutputStream_socket.m deleted file mode 100644 index c7c738c7..00000000 --- a/Foundation/NSStream/NSOutputStream_socket.m +++ /dev/null @@ -1,246 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSOutputStream_socket - -- initWithSocket: (NSSocket *) socket streamStatus: (NSStreamStatus) status { - _delegate = self; - _error = nil; - _status = status; - _socket = [socket retain]; - _inputSource = nil; - return self; -} - -- (void) dealloc { - [_error release]; - [_socket release]; - [_inputSource release]; - [super dealloc]; -} - -- (int) fileDescriptor { - return [_socket fileDescriptor]; -} - -- delegate { - return _delegate; -} - -- (void) setClientEvents: (CFOptionFlags) events - callBack: (CFWriteStreamClientCallBack) callBack - context: (CFStreamClientContext *) context -{ - _events = events; - _callBack = callBack; - - if (context != NULL && context->info != NULL && context->retain != NULL) - context->retain(context->info); - - _context.version = 0; - if (_context.info != NULL && _context.release != NULL) - _context.release(_context.info); - _context.info = NULL; - _context.retain = NULL; - _context.release = NULL; - - if (context != NULL) - _context = *context; -} - -- (void) setDelegate: delegate { - _delegate = delegate; - if (_delegate == nil) - _delegate = self; -} - -- propertyForKey: (NSString *) key { - if ([key isEqualToString: (NSString *) - kCFStreamPropertySocketNativeHandle]) { - CFSocketNativeHandle value = - (_socket == nil) ? -1 : [_socket fileDescriptor]; - - return [NSData dataWithBytes: &value length: sizeof(value)]; - } - - NSUnimplementedMethod(); - return nil; -} - -- (BOOL) setProperty: property forKey: (NSString *) key { - if ([key isEqualToString: (NSString *) kCFStreamPropertySSLSettings]) - return [_socket setSSLProperties: (CFDictionaryRef) property]; - - NSUnimplementedMethod(); - return NO; -} - -- (void) open { - if (_status == NSStreamStatusNotOpen) { - _status = NSStreamStatusOpening; - } -} - -- (NSError *) streamError { - return _error; -} - -- (NSStreamStatus) streamStatus { - return _status; -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - if (_inputSource == nil) { - _inputSource = [[NSSelectInputSource alloc] initWithSocket: _socket]; - [_inputSource setDelegate: self]; - [_inputSource setSelectEventMask: NSSelectWriteEvent]; - } - - [runLoop addInputSource: _inputSource forMode: mode]; -} - -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - if (_inputSource != nil) - [runLoop removeInputSource: _inputSource forMode: mode]; -} - -- (void) close { - [_inputSource setSelectEventMask: 0]; - [_inputSource invalidate]; - [_socket close]; -} - -static BOOL socketHasSpaceAvailable(NSSocket *socket) { - NSSelectSet *selectSet = [[[NSSelectSet alloc] init] autorelease]; - NSSelectSet *outputSet; - - [selectSet addObjectForWrite: socket]; - if ([selectSet waitForSelectWithOutputSet: &outputSet - beforeDate: [NSDate date]] == nil) - return [outputSet containsObjectForWrite: socket]; - - return NO; -} - -- (BOOL) hasSpaceAvailable { - if (_status == NSStreamStatusOpen) { - - CFSSLHandler *sslHandler = [_socket sslHandler]; - - if (sslHandler == nil) - return socketHasSpaceAvailable(_socket); - else { - if ([sslHandler writeBytesAvailable] == 0) - return YES; - else if (socketHasSpaceAvailable(_socket)) { - [sslHandler transferOneBufferFromSSLToSocket: _socket]; - } - } - } - - return NO; -} - -- (NSInteger) write: (const uint8_t *) buffer maxLength: (NSUInteger) length { - - if (_status != NSStreamStatusOpen && _status != NSStreamStatusOpening) - return -1; - - CFSSLHandler *sslHandler = [_socket sslHandler]; - - if (sslHandler == nil) { - [_inputSource setSelectEventMask: [_inputSource selectEventMask] | - NSSelectWriteEvent]; - return [_socket write: buffer maxLength: length]; - } else { - - [sslHandler runHandshakeIfNeeded: _socket]; - - NSInteger check = [sslHandler writePlaintext: buffer maxLength: length]; - - if (check != length) - NSCLog("failure writePlaintext:%d=%d", length, check); - - [sslHandler runWithSocket: _socket]; - [_inputSource setSelectEventMask: [_inputSource selectEventMask] | - NSSelectWriteEvent]; - - return check; - } -} - -- (void) selectInputSource: (NSSelectInputSource *) inputSource - selectEvent: (NSUInteger) selectEvent -{ - NSStreamEvent event; - - switch (_status) { - case NSStreamStatusOpening: - _status = NSStreamStatusOpen; - event = NSStreamEventOpenCompleted; - break; - - case NSStreamStatusOpen: - if (![self hasSpaceAvailable]) { - event = NSStreamEventNone; - } else { - event = NSStreamEventHasSpaceAvailable; - /* Streams only signal when space is available once, then it - * reactivates on a write, so we turn it off before notifying */ - [_inputSource setSelectEventMask: [_inputSource selectEventMask] & - ~NSSelectWriteEvent]; - } - break; - - case NSStreamStatusAtEnd: - event = NSStreamEventEndEncountered; - break; - - default: - event = NSStreamEventNone; - break; - } - - if (event != NSStreamEventNone) { - if (_callBack != NULL) { - if (_events & event) { - _callBack((CFWriteStreamRef) self, (CFStreamEventType) event, - _context.info); - } - } else { - if ([_delegate respondsToSelector: @selector(stream: - handleEvent:)]) { - [_delegate stream: self handleEvent: event]; - } - } - } -} - -@end diff --git a/Foundation/NSStream/NSSelectInputSource.h b/Foundation/NSStream/NSSelectInputSource.h deleted file mode 100644 index ac0d1734..00000000 --- a/Foundation/NSStream/NSSelectInputSource.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -enum { - NSSelectReadEvent = 0x01, - NSSelectWriteEvent = 0x02, - NSSelectExceptEvent = 0x04 -}; - -@interface NSSelectInputSource : NSInputSource { - NSSocket *_socket; - id _delegate; - NSUInteger _eventMask; - BOOL _isValid; -} - -- initWithSocket: (NSSocket *) socket; - -+ (id) socketInputSourceWithSocket: (NSSocket *) socket; - -- (NSSocket *) socket; -- delegate; - -- (void) setDelegate: object; - -- (NSUInteger) selectEventMask; -- (void) setSelectEventMask: (NSUInteger) mask; - -- (NSUInteger) processImmediateEvents: (NSUInteger) selectEvent; - -@end - -@interface NSObject (NSSelectInputSourceDelegate) -- (void) selectInputSource: (NSSelectInputSource *) inputSource - selectEvent: (NSUInteger) selectEvent; -@end diff --git a/Foundation/NSStream/NSSelectInputSource.m b/Foundation/NSStream/NSSelectInputSource.m deleted file mode 100644 index f2e44fd9..00000000 --- a/Foundation/NSStream/NSSelectInputSource.m +++ /dev/null @@ -1,82 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@implementation NSSelectInputSource - -- initWithSocket: (NSSocket *) socket { - _socket = [socket retain]; - _delegate = nil; - _eventMask = 0; - _isValid = YES; - return self; -} - -- (void) dealloc { - [_socket release]; - [super dealloc]; -} - -+ (id) socketInputSourceWithSocket: (NSSocket *) socket { - return [[[self alloc] initWithSocket: socket] autorelease]; -} - -- (NSSocket *) socket { - return _socket; -} - -- (BOOL) isValid { - return _isValid; -} - -- (void) invalidate { - _isValid = NO; - _delegate = nil; -} - -- delegate { - return _delegate; -} - -- (void) setDelegate: object { - _delegate = object; -} - -- (NSUInteger) selectEventMask { - return _eventMask; -} - -- (void) setSelectEventMask: (NSUInteger) eventMask { - _eventMask = eventMask; -} - -- (NSUInteger) processImmediateEvents: (NSUInteger) selectEvent { - - if ((selectEvent &= _eventMask) == 0) - return 0; - - [_delegate selectInputSource: self selectEvent: selectEvent]; - - return selectEvent; -} - -@end diff --git a/Foundation/NSStream/NSSelectInputSourceSet.h b/Foundation/NSStream/NSSelectInputSourceSet.h deleted file mode 100644 index c30af568..00000000 --- a/Foundation/NSStream/NSSelectInputSourceSet.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSSelectSet; - -@interface NSSelectInputSourceSet : NSInputSourceSet { - NSSelectSet *_outputSet; -} - -@end diff --git a/Foundation/NSStream/NSSelectInputSourceSet.m b/Foundation/NSStream/NSSelectInputSourceSet.m deleted file mode 100644 index 6723c7af..00000000 --- a/Foundation/NSStream/NSSelectInputSourceSet.m +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSSelectInputSourceSet - -- init { - [super init]; - _outputSet = nil; - [[NSNotificationCenter defaultCenter] - addObserver: self - selector: @selector(selectSetOutputNotification:) - name: NSSelectSetOutputNotification - object: nil]; - return self; -} - -- (void) dealloc { - [[NSNotificationCenter defaultCenter] removeObserver: self]; - [_outputSet release]; - [super dealloc]; -} - -- (BOOL) recognizesInputSource: (NSInputSource *) source { - return [source isKindOfClass: [NSSelectInputSource class]]; -} - -/* The old logic was to remove all output when starting a different mode to - prevent stale triggers. However, when switching back and forth between modes - the output from the previous run was cleared when switching modes, causing - the sockets to never fire since they are a two times through event (one to - fire the handle, one to fire the socket). - - At this point, sockets always check their status with a select before firing, - so staleness shouldnt be a problem anymore. - - Perfect solution is to probably make sockets a one time fire event. - - */ -- (void) startingInMode: (NSString *) mode { -} - -- (BOOL) fireSingleImmediateInputInMode: (NSString *) mode { - NSSet *validInputSources = [self validInputSources]; - NSArray *sources = [validInputSources allObjects]; - NSInteger i, count = [sources count]; - - for (i = 0; i < count; i++) { - NSSelectInputSource *check = [sources objectAtIndex: i]; - NSSocket *socket = [check socket]; - NSUInteger event = 0, remove; - - if ([_outputSet containsObjectForRead: socket]) - event |= NSSelectReadEvent; - if ([_outputSet containsObjectForWrite: socket]) - event |= NSSelectWriteEvent; - if ([_outputSet containsObjectForException: socket]) - event |= NSSelectExceptEvent; - - if ((remove = [check processImmediateEvents: event])) { - if (remove & NSSelectReadEvent) - [_outputSet removeObjectForRead: socket]; - if (remove & NSSelectWriteEvent) - [_outputSet removeObjectForWrite: socket]; - if (remove & NSSelectExceptEvent) - [_outputSet removeObjectForException: socket]; - return YES; - } - } - - return NO; -} - -- (NSSelectSet *) inputSelectSet { - NSSelectSet *result = [[[NSSelectSet alloc] init] autorelease]; - NSEnumerator *state = [[self validInputSources] objectEnumerator]; - NSSelectInputSource *check; - - while ((check = [state nextObject]) != nil) { - NSSocket *socket = [check socket]; - NSUInteger mask = [check selectEventMask]; - - if (mask & NSSelectReadEvent) - [result addObjectForRead: socket]; - if (mask & NSSelectWriteEvent) - [result addObjectForWrite: socket]; - if (mask & NSSelectExceptEvent) - [result addObjectForException: socket]; - } - - return result; -} - -- (void) selectSetOutputNotification: (NSNotification *) note { - NSSelectSet *outputSet = [note object]; - - [_outputSet autorelease]; - _outputSet = [outputSet copy]; -} - -- (void) waitInBackgroundInMode: (NSString *) mode { - NSSelectSet *selectSet = [self inputSelectSet]; - - [_outputSet autorelease]; - _outputSet = nil; - - [selectSet waitInBackgroundInMode: mode]; -} - -- (BOOL) waitForInputInMode: (NSString *) mode beforeDate: (NSDate *) date { - NSSelectSet *selectSet = [self inputSelectSet]; - NSError *error; - - [_outputSet autorelease]; - _outputSet = nil; - - if ([selectSet isEmpty]) { - [NSThread sleepUntilDate: date]; - return NO; - } else if ((error = [selectSet waitForSelectWithOutputSet: &_outputSet - beforeDate: date]) != nil) - return NO; - else { - [_outputSet retain]; - - return [self fireSingleImmediateInputInMode: mode]; - } -} - -@end diff --git a/Foundation/NSStream/NSSelectSet.h b/Foundation/NSStream/NSSelectSet.h deleted file mode 100644 index 46e209b7..00000000 --- a/Foundation/NSStream/NSSelectSet.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSError, NSMutableSet, NSDate; - -FOUNDATION_EXPORT NSString *const NSSelectSetOutputNotification; - -@interface NSSelectSet : NSObject { - NSMutableSet *_readSet; - NSMutableSet *_writeSet; - NSMutableSet *_exceptionSet; -} - -- (void) addObjectForRead: object; -- (void) addObjectForWrite: object; -- (void) addObjectForException: object; - -- (void) removeObjectForRead: object; -- (void) removeObjectForWrite: object; -- (void) removeObjectForException: object; - -- (void) removeAllObjects; - -- (BOOL) isEmpty; - -- (BOOL) containsObjectForRead: object; -- (BOOL) containsObjectForWrite: object; -- (BOOL) containsObjectForException: object; - -- (void) waitInBackgroundInMode: (NSString *) mode; - -- (NSError *) waitForSelectWithOutputSet: (NSSelectSet **) outputSet - beforeDate: (NSDate *) beforeDate; - -@end - -void NSSelectSetShutdownForCurrentThread(); \ No newline at end of file diff --git a/Foundation/NSStream/NSSelectSet.m b/Foundation/NSStream/NSSelectSet.m deleted file mode 100644 index fb7efdbf..00000000 --- a/Foundation/NSStream/NSSelectSet.m +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -NSString *const NSSelectSetOutputNotification = - @"NSSelectSetOutputNotification"; - -@implementation NSSelectSet - -- init { - _readSet = [NSMutableSet new]; - _writeSet = [NSMutableSet new]; - _exceptionSet = [NSMutableSet new]; - return self; -} - -- (void) dealloc { - [_readSet release]; - [_writeSet release]; - [_exceptionSet release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - NSSelectSet *copy = NSCopyObject(self, 0, zone); - - copy->_readSet = [_readSet mutableCopy]; - copy->_writeSet = [_writeSet mutableCopy]; - copy->_exceptionSet = [_exceptionSet mutableCopy]; - - return copy; -} - -- (void) addObjectForRead: object { - [_readSet addObject: object]; -} - -- (void) addObjectForWrite: object { - [_writeSet addObject: object]; -} - -- (void) addObjectForException: object { - [_exceptionSet addObject: object]; -} - -- (void) removeObjectForRead: object { - [_readSet removeObject: object]; -} - -- (void) removeObjectForWrite: object { - [_writeSet removeObject: object]; -} - -- (void) removeObjectForException: object { - [_exceptionSet removeObject: object]; -} - -- (void) removeAllObjects { - [_readSet removeAllObjects]; - [_writeSet removeAllObjects]; - [_exceptionSet removeAllObjects]; -} - -- (BOOL) isEmpty { - return ([_readSet count] == 0) && ([_writeSet count] == 0) && - ([_exceptionSet count] == 0); -} - -- (BOOL) containsObjectForRead: object { - return [_readSet containsObject: object]; -} - -- (BOOL) containsObjectForWrite: object { - return [_writeSet containsObject: object]; -} - -- (BOOL) containsObjectForException: object { - return [_exceptionSet containsObject: object]; -} - -- (void) waitInBackgroundInMode: (NSString *) mode { - NSInvalidAbstractInvocation(); -} - -- (NSError *) waitForSelectWithOutputSet: (NSSelectSet **) outputSet - beforeDate: (NSDate *) beforeDate -{ - NSInvalidAbstractInvocation(); - return nil; -} - -@end diff --git a/Foundation/NSStream/NSSocket.h b/Foundation/NSStream/NSSocket.h deleted file mode 100644 index c6d8695a..00000000 --- a/Foundation/NSStream/NSSocket.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@class NSError, NSHost, NSData, CFSSLHandler; - -@interface NSSocket : NSObject - -// returns nil if descriptor is not a socket -- initWithFileDescriptor: (int) descriptor; - -- initConnectedToSocket: (NSSocket **) other; - -- initTCPStream; - -- (int) fileDescriptor; - -- (NSError *) close; - -- (NSError *) connectToHost: (NSHost *) host - port: (NSInteger) port - immediate: (BOOL *) immediate; - -- (BOOL) hasBytesAvailable; - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) length; -- (NSInteger) write: (const uint8_t *) buffer maxLength: (NSUInteger) length; - -- (NSSocket *) acceptWithError: (NSError **) errorp; - -- (CFSSLHandler *) sslHandler; -- (BOOL) setSSLProperties: (CFDictionaryRef) sslProperties; - -@end - -NSData *NSSocketAddressDataForNetworkOrderAddressBytesAndPort( - const void *address, NSUInteger length, uint16_t port, - uint32_t interface); diff --git a/Foundation/NSStream/NSSocket.m b/Foundation/NSStream/NSSocket.m deleted file mode 100644 index 972719c2..00000000 --- a/Foundation/NSStream/NSSocket.m +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSSocket - -// returns nil if descriptor is not a socket -- initWithFileDescriptor: (int) descriptor { - NSInvalidAbstractInvocation(); - return self; -} - -- initConnectedToSocket: (NSSocket **) other { - NSInvalidAbstractInvocation(); - return self; -} - -- initTCPStream { - NSInvalidAbstractInvocation(); - return self; -} - -- (int) fileDescriptor { - NSInvalidAbstractInvocation(); - return -1; -} - -- (NSError *) close { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSError *) connectToHost: (NSHost *) host - port: (NSInteger) port - immediate: (BOOL *) immediate -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- (BOOL) hasBytesAvailable { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) length { - NSInvalidAbstractInvocation(); - return -1; -} - -- (NSInteger) write: (const uint8_t *) buffer maxLength: (NSUInteger) length { - NSInvalidAbstractInvocation(); - return -1; -} - -- (NSSocket *) acceptWithError: (NSError **) errorp { - NSInvalidAbstractInvocation(); - return nil; -} - -- (CFSSLHandler *) sslHandler { - NSInvalidAbstractInvocation(); - return nil; -} - -- (BOOL) setSSLProperties: (CFDictionaryRef) sslProperties { - NSInvalidAbstractInvocation(); - return NO; -} - -@end diff --git a/Foundation/NSStream/NSStream.h b/Foundation/NSStream/NSStream.h deleted file mode 100644 index dad46c34..00000000 --- a/Foundation/NSStream/NSStream.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSError, NSHost, NSRunLoop, NSInputStream, NSOutputStream; - -typedef enum { - NSStreamStatusNotOpen, - NSStreamStatusOpening, - NSStreamStatusOpen, - NSStreamStatusReading, - NSStreamStatusWriting, - NSStreamStatusAtEnd, - NSStreamStatusClosed, - NSStreamStatusError -} NSStreamStatus; - -// These values must match CFStream -typedef enum { - NSStreamEventNone, - NSStreamEventOpenCompleted = kCFStreamEventOpenCompleted, - NSStreamEventHasBytesAvailable = kCFStreamEventHasBytesAvailable, - NSStreamEventHasSpaceAvailable = kCFStreamEventCanAcceptBytes, - NSStreamEventErrorOccurred = kCFStreamEventErrorOccurred, - NSStreamEventEndEncountered = kCFStreamEventEndEncountered, -} NSStreamEvent; - -FOUNDATION_EXPORT NSString *const NSStreamDataWrittenToMemoryStreamKey; -FOUNDATION_EXPORT NSString *const NSStreamFileCurrentOffsetKey; - -FOUNDATION_EXPORT NSString *const NSStreamSocketSecurityLevelKey; - -FOUNDATION_EXPORT NSString *const NSStreamSocketSecurityLevelNone; -FOUNDATION_EXPORT NSString *const NSStreamSocketSecurityLevelSSLv2; -FOUNDATION_EXPORT NSString *const NSStreamSocketSecurityLevelSSLv3; -FOUNDATION_EXPORT NSString *const NSStreamSocketSecurityLevelTLSv1; -FOUNDATION_EXPORT NSString *const NSStreamSocketSecurityLevelNegotiatedSSL; - -@interface NSStream : NSObject - -+ (void) getStreamsToHost: (NSHost *) host - port: (NSInteger) port - inputStream: (NSInputStream **) inputStream - outputStream: (NSOutputStream **) outputStream; - -- delegate; -- (void) setDelegate: delegate; - -- (NSError *) streamError; -- (NSStreamStatus) streamStatus; - -- propertyForKey: (NSString *) key; -- (BOOL) setProperty: property forKey: (NSString *) key; - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; - -- (void) open; -- (void) close; - -@end - -@interface NSObject (NSStream_delegate) -- (void) stream: (NSStream *) stream handleEvent: (NSStreamEvent) streamEvent; -@end - -#import -#import diff --git a/Foundation/NSStream/NSStream.m b/Foundation/NSStream/NSStream.m deleted file mode 100644 index c33a3c2e..00000000 --- a/Foundation/NSStream/NSStream.m +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSInputStream_socket.h" -#import "NSOutputStream_socket.h" -#import -#import -#import -#import - -NSString *const NSStreamDataWrittenToMemoryStreamKey = - @"kCFStreamPropertyDataWritten"; -NSString *const NSStreamFileCurrentOffsetKey = - @"kCFStreamPropertyFileCurrentOffset"; - -/************* These values are also in CFStream, keep in sync */ - -NSString *const NSStreamSocketSecurityLevelKey = @"kCFStreamSSLLevel"; - -NSString *const NSStreamSocketSecurityLevelNone = - @"kCFStreamSocketSecurityLevelNone"; -NSString *const NSStreamSocketSecurityLevelSSLv2 = - @"kCFStreamSocketSecurityLevelSSLv2"; -NSString *const NSStreamSocketSecurityLevelSSLv3 = - @"kCFStreamSocketSecurityLevelSSLv3"; -NSString *const NSStreamSocketSecurityLevelTLSv1 = - @"kCFStreamSocketSecurityLevelTLSv1"; -NSString *const NSStreamSocketSecurityLevelNegotiatedSSL = - @"kCFStreamSocketSecurityLevelNegotiatedSSL"; - -@implementation NSStream - -+ (void) getStreamsToHost: (NSHost *) host - port: (NSInteger) port - inputStream: (NSInputStream **) inputStreamp - outputStream: (NSOutputStream **) outputStreamp -{ - NSSocket *socket = [[[NSSocket alloc] initTCPStream] autorelease]; - NSError *error; - BOOL immediate; - NSInputStream_socket *input; - NSOutputStream_socket *output; - - if ((error = [socket connectToHost: host - port: port - immediate: &immediate]) != nil) { - *inputStreamp = nil; - *outputStreamp = nil; - return; - } - - if (inputStreamp) - *inputStreamp = input = [[[NSInputStream_socket alloc] - initWithSocket: socket - streamStatus: NSStreamStatusNotOpen] autorelease]; - if (outputStreamp) - *outputStreamp = output = [[[NSOutputStream_socket alloc] - initWithSocket: socket - streamStatus: NSStreamStatusNotOpen] autorelease]; -} - -- delegate { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) setDelegate: delegate { - NSInvalidAbstractInvocation(); -} - -- (NSError *) streamError { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSStreamStatus) streamStatus { - NSInvalidAbstractInvocation(); - return 0; -} - -- propertyForKey: (NSString *) key { - NSInvalidAbstractInvocation(); - return nil; -} - -- (BOOL) setProperty: property forKey: (NSString *) key { - NSInvalidAbstractInvocation(); - return NO; -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - NSInvalidAbstractInvocation(); -} - -- (void) removeFromRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - NSInvalidAbstractInvocation(); -} - -- (void) open { - NSInvalidAbstractInvocation(); -} - -- (void) close { - NSInvalidAbstractInvocation(); -} - -@end diff --git a/Foundation/NSString/Encoding/8859-1.h b/Foundation/NSString/Encoding/8859-1.h deleted file mode 100644 index 552ef0c8..00000000 --- a/Foundation/NSString/Encoding/8859-1.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-1, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_1[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF, HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x00A1, // INVERTED EXCLAMATION MARK - 0xA2, 0x00A2, // CENT SIGN - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x00A4, // CURRENCY SIGN - 0xA5, 0x00A5, // YEN SIGN - 0xA6, 0x00A6, // BROKEN BAR - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00A8, // DIAERESIS - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x00AA, // FEMININE ORDINAL INDICATOR - 0xAB, 0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xAC, 0x00AC, // NOT SIGN - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x00AE, // REGISTERED SIGN - 0xAF, 0x00AF, // MACRON - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x00B1, // PLUS-MINUS SIGN - 0xB2, 0x00B2, // SUPERSCRIPT TWO - 0xB3, 0x00B3, // SUPERSCRIPT THREE - 0xB4, 0x00B4, // ACUTE ACCENT - 0xB5, 0x00B5, // MICRO SIGN - 0xB6, 0x00B6, // PILCROW SIGN - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x00B8, // CEDILLA - 0xB9, 0x00B9, // SUPERSCRIPT ONE - 0xBA, 0x00BA, // MASCULINE ORDINAL INDICATOR - 0xBB, 0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xBC, 0x00BC, // VULGAR FRACTION ONE QUARTER - 0xBD, 0x00BD, // VULGAR FRACTION ONE HALF - 0xBE, 0x00BE, // VULGAR FRACTION THREE QUARTERS - 0xBF, 0x00BF, // INVERTED QUESTION MARK - 0xC0, 0x00C0, // LATIN CAPITAL LETTER A WITH GRAVE - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x00C3, // LATIN CAPITAL LETTER A WITH TILDE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE - 0xC6, 0x00C6, // LATIN CAPITAL LETTER AE - 0xC7, 0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA - 0xC8, 0x00C8, // LATIN CAPITAL LETTER E WITH GRAVE - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x00CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x00CC, // LATIN CAPITAL LETTER I WITH GRAVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS - 0xD0, 0x00D0, // LATIN CAPITAL LETTER ETH (Icelandic) - 0xD1, 0x00D1, // LATIN CAPITAL LETTER N WITH TILDE - 0xD2, 0x00D2, // LATIN CAPITAL LETTER O WITH GRAVE - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x00D5, // LATIN CAPITAL LETTER O WITH TILDE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x00D7, // MULTIPLICATION SIGN - 0xD8, 0x00D8, // LATIN CAPITAL LETTER O WITH STROKE - 0xD9, 0x00D9, // LATIN CAPITAL LETTER U WITH GRAVE - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x00DD, // LATIN CAPITAL LETTER Y WITH ACUTE - 0xDE, 0x00DE, // LATIN CAPITAL LETTER THORN (Icelandic) - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S (German) - 0xE0, 0x00E0, // LATIN SMALL LETTER A WITH GRAVE - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x00E3, // LATIN SMALL LETTER A WITH TILDE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE - 0xE6, 0x00E6, // LATIN SMALL LETTER AE - 0xE7, 0x00E7, // LATIN SMALL LETTER C WITH CEDILLA - 0xE8, 0x00E8, // LATIN SMALL LETTER E WITH GRAVE - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x00EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x00EC, // LATIN SMALL LETTER I WITH GRAVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS - 0xF0, 0x00F0, // LATIN SMALL LETTER ETH (Icelandic) - 0xF1, 0x00F1, // LATIN SMALL LETTER N WITH TILDE - 0xF2, 0x00F2, // LATIN SMALL LETTER O WITH GRAVE - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x00F5, // LATIN SMALL LETTER O WITH TILDE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x00F7, // DIVISION SIGN - 0xF8, 0x00F8, // LATIN SMALL LETTER O WITH STROKE - 0xF9, 0x00F9, // LATIN SMALL LETTER U WITH GRAVE - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x00FD, // LATIN SMALL LETTER Y WITH ACUTE - 0xFE, 0x00FE, // LATIN SMALL LETTER THORN (Icelandic) - 0xFF, 0x00FF, // LATIN SMALL LETTER Y WITH DIAERESIS - -1, -1}; - -NSEncodingRegistration(iso8859_1, kCFStringEncodingISOLatin1); diff --git a/Foundation/NSString/Encoding/8859-10.h b/Foundation/NSString/Encoding/8859-10.h deleted file mode 100644 index c2ed2ee0..00000000 --- a/Foundation/NSString/Encoding/8859-10.h +++ /dev/null @@ -1,263 +0,0 @@ -//// 8859-10, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_10[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x0104, // LATIN CAPITAL LETTER A WITH OGONEK - 0xA2, 0x0112, // LATIN CAPITAL LETTER E WITH MACRON - 0xA3, 0x0122, // LATIN CAPITAL LETTER G WITH CEDILLA - 0xA4, 0x012A, // LATIN CAPITAL LETTER I WITH MACRON - 0xA5, 0x0128, // LATIN CAPITAL LETTER I WITH TILDE - 0xA6, 0x0136, // LATIN CAPITAL LETTER K WITH CEDILLA - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x013B, // LATIN CAPITAL LETTER L WITH CEDILLA - 0xA9, 0x0110, // LATIN CAPITAL LETTER D WITH STROKE - 0xAA, 0x0160, // LATIN CAPITAL LETTER S WITH CARON - 0xAB, 0x0166, // LATIN CAPITAL LETTER T WITH STROKE - 0xAC, 0x017D, // LATIN CAPITAL LETTER Z WITH CARON - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x016A, // LATIN CAPITAL LETTER U WITH MACRON - 0xAF, 0x014A, // LATIN CAPITAL LETTER ENG - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x0105, // LATIN SMALL LETTER A WITH OGONEK - 0xB2, 0x0113, // LATIN SMALL LETTER E WITH MACRON - 0xB3, 0x0123, // LATIN SMALL LETTER G WITH CEDILLA - 0xB4, 0x012B, // LATIN SMALL LETTER I WITH MACRON - 0xB5, 0x0129, // LATIN SMALL LETTER I WITH TILDE - 0xB6, 0x0137, // LATIN SMALL LETTER K WITH CEDILLA - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x013C, // LATIN SMALL LETTER L WITH CEDILLA - 0xB9, 0x0111, // LATIN SMALL LETTER D WITH STROKE - 0xBA, 0x0161, // LATIN SMALL LETTER S WITH CARON - 0xBB, 0x0167, // LATIN SMALL LETTER T WITH STROKE - 0xBC, 0x017E, // LATIN SMALL LETTER Z WITH CARON - 0xBD, 0x2015, // HORIZONTAL BAR - 0xBE, 0x016B, // LATIN SMALL LETTER U WITH MACRON - 0xBF, 0x014B, // LATIN SMALL LETTER ENG - 0xC0, 0x0100, // LATIN CAPITAL LETTER A WITH MACRON - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x00C3, // LATIN CAPITAL LETTER A WITH TILDE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE - 0xC6, 0x00C6, // LATIN CAPITAL LETTER AE - 0xC7, 0x012E, // LATIN CAPITAL LETTER I WITH OGONEK - 0xC8, 0x010C, // LATIN CAPITAL LETTER C WITH CARON - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x0118, // LATIN CAPITAL LETTER E WITH OGONEK - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x0116, // LATIN CAPITAL LETTER E WITH DOT ABOVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS - 0xD0, 0x00D0, // LATIN CAPITAL LETTER ETH (Icelandic) - 0xD1, 0x0145, // LATIN CAPITAL LETTER N WITH CEDILLA - 0xD2, 0x014C, // LATIN CAPITAL LETTER O WITH MACRON - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x00D5, // LATIN CAPITAL LETTER O WITH TILDE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x0168, // LATIN CAPITAL LETTER U WITH TILDE - 0xD8, 0x00D8, // LATIN CAPITAL LETTER O WITH STROKE - 0xD9, 0x0172, // LATIN CAPITAL LETTER U WITH OGONEK - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x00DD, // LATIN CAPITAL LETTER Y WITH ACUTE - 0xDE, 0x00DE, // LATIN CAPITAL LETTER THORN (Icelandic) - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S (German) - 0xE0, 0x0101, // LATIN SMALL LETTER A WITH MACRON - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x00E3, // LATIN SMALL LETTER A WITH TILDE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE - 0xE6, 0x00E6, // LATIN SMALL LETTER AE - 0xE7, 0x012F, // LATIN SMALL LETTER I WITH OGONEK - 0xE8, 0x010D, // LATIN SMALL LETTER C WITH CARON - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x0119, // LATIN SMALL LETTER E WITH OGONEK - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x0117, // LATIN SMALL LETTER E WITH DOT ABOVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS - 0xF0, 0x00F0, // LATIN SMALL LETTER ETH (Icelandic) - 0xF1, 0x0146, // LATIN SMALL LETTER N WITH CEDILLA - 0xF2, 0x014D, // LATIN SMALL LETTER O WITH MACRON - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x00F5, // LATIN SMALL LETTER O WITH TILDE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x0169, // LATIN SMALL LETTER U WITH TILDE - 0xF8, 0x00F8, // LATIN SMALL LETTER O WITH STROKE - 0xF9, 0x0173, // LATIN SMALL LETTER U WITH OGONEK - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x00FD, // LATIN SMALL LETTER Y WITH ACUTE - 0xFE, 0x00FE, // LATIN SMALL LETTER THORN (Icelandic) - 0xFF, 0x0138, // LATIN SMALL LETTER KRA - -1, -1}; - -NSEncodingRegistration(iso8859_10, kCFStringEncodingISOLatin6); diff --git a/Foundation/NSString/Encoding/8859-11.h b/Foundation/NSString/Encoding/8859-11.h deleted file mode 100644 index 287029c7..00000000 --- a/Foundation/NSString/Encoding/8859-11.h +++ /dev/null @@ -1,255 +0,0 @@ -// 8859-11, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_11[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x0E01, // THAI CHARACTER KO KAI - 0xA2, 0x0E02, // THAI CHARACTER KHO KHAI - 0xA3, 0x0E03, // THAI CHARACTER KHO KHUAT - 0xA4, 0x0E04, // THAI CHARACTER KHO KHWAI - 0xA5, 0x0E05, // THAI CHARACTER KHO KHON - 0xA6, 0x0E06, // THAI CHARACTER KHO RAKHANG - 0xA7, 0x0E07, // THAI CHARACTER NGO NGU - 0xA8, 0x0E08, // THAI CHARACTER CHO CHAN - 0xA9, 0x0E09, // THAI CHARACTER CHO CHING - 0xAA, 0x0E0A, // THAI CHARACTER CHO CHANG - 0xAB, 0x0E0B, // THAI CHARACTER SO SO - 0xAC, 0x0E0C, // THAI CHARACTER CHO CHOE - 0xAD, 0x0E0D, // THAI CHARACTER YO YING - 0xAE, 0x0E0E, // THAI CHARACTER DO CHADA - 0xAF, 0x0E0F, // THAI CHARACTER TO PATAK - 0xB0, 0x0E10, // THAI CHARACTER THO THAN - 0xB1, 0x0E11, // THAI CHARACTER THO NANGMONTHO - 0xB2, 0x0E12, // THAI CHARACTER THO PHUTHAO - 0xB3, 0x0E13, // THAI CHARACTER NO NEN - 0xB4, 0x0E14, // THAI CHARACTER DO DEK - 0xB5, 0x0E15, // THAI CHARACTER TO TAO - 0xB6, 0x0E16, // THAI CHARACTER THO THUNG - 0xB7, 0x0E17, // THAI CHARACTER THO THAHAN - 0xB8, 0x0E18, // THAI CHARACTER THO THONG - 0xB9, 0x0E19, // THAI CHARACTER NO NU - 0xBA, 0x0E1A, // THAI CHARACTER BO BAIMAI - 0xBB, 0x0E1B, // THAI CHARACTER PO PLA - 0xBC, 0x0E1C, // THAI CHARACTER PHO PHUNG - 0xBD, 0x0E1D, // THAI CHARACTER FO FA - 0xBE, 0x0E1E, // THAI CHARACTER PHO PHAN - 0xBF, 0x0E1F, // THAI CHARACTER FO FAN - 0xC0, 0x0E20, // THAI CHARACTER PHO SAMPHAO - 0xC1, 0x0E21, // THAI CHARACTER MO MA - 0xC2, 0x0E22, // THAI CHARACTER YO YAK - 0xC3, 0x0E23, // THAI CHARACTER RO RUA - 0xC4, 0x0E24, // THAI CHARACTER RU - 0xC5, 0x0E25, // THAI CHARACTER LO LING - 0xC6, 0x0E26, // THAI CHARACTER LU - 0xC7, 0x0E27, // THAI CHARACTER WO WAEN - 0xC8, 0x0E28, // THAI CHARACTER SO SALA - 0xC9, 0x0E29, // THAI CHARACTER SO RUSI - 0xCA, 0x0E2A, // THAI CHARACTER SO SUA - 0xCB, 0x0E2B, // THAI CHARACTER HO HIP - 0xCC, 0x0E2C, // THAI CHARACTER LO CHULA - 0xCD, 0x0E2D, // THAI CHARACTER O ANG - 0xCE, 0x0E2E, // THAI CHARACTER HO NOKHUK - 0xCF, 0x0E2F, // THAI CHARACTER PAIYANNOI - 0xD0, 0x0E30, // THAI CHARACTER SARA A - 0xD1, 0x0E31, // THAI CHARACTER MAI HAN-AKAT - 0xD2, 0x0E32, // THAI CHARACTER SARA AA - 0xD3, 0x0E33, // THAI CHARACTER SARA AM - 0xD4, 0x0E34, // THAI CHARACTER SARA I - 0xD5, 0x0E35, // THAI CHARACTER SARA II - 0xD6, 0x0E36, // THAI CHARACTER SARA UE - 0xD7, 0x0E37, // THAI CHARACTER SARA UEE - 0xD8, 0x0E38, // THAI CHARACTER SARA U - 0xD9, 0x0E39, // THAI CHARACTER SARA UU - 0xDA, 0x0E3A, // THAI CHARACTER PHINTHU - 0xDF, 0x0E3F, // THAI CURRENCY SYMBOL BAHT - 0xE0, 0x0E40, // THAI CHARACTER SARA E - 0xE1, 0x0E41, // THAI CHARACTER SARA AE - 0xE2, 0x0E42, // THAI CHARACTER SARA O - 0xE3, 0x0E43, // THAI CHARACTER SARA AI MAIMUAN - 0xE4, 0x0E44, // THAI CHARACTER SARA AI MAIMALAI - 0xE5, 0x0E45, // THAI CHARACTER LAKKHANGYAO - 0xE6, 0x0E46, // THAI CHARACTER MAIYAMOK - 0xE7, 0x0E47, // THAI CHARACTER MAITAIKHU - 0xE8, 0x0E48, // THAI CHARACTER MAI EK - 0xE9, 0x0E49, // THAI CHARACTER MAI THO - 0xEA, 0x0E4A, // THAI CHARACTER MAI TRI - 0xEB, 0x0E4B, // THAI CHARACTER MAI CHATTAWA - 0xEC, 0x0E4C, // THAI CHARACTER THANTHAKHAT - 0xED, 0x0E4D, // THAI CHARACTER NIKHAHIT - 0xEE, 0x0E4E, // THAI CHARACTER YAMAKKAN - 0xEF, 0x0E4F, // THAI CHARACTER FONGMAN - 0xF0, 0x0E50, // THAI DIGIT ZERO - 0xF1, 0x0E51, // THAI DIGIT ONE - 0xF2, 0x0E52, // THAI DIGIT TWO - 0xF3, 0x0E53, // THAI DIGIT THREE - 0xF4, 0x0E54, // THAI DIGIT FOUR - 0xF5, 0x0E55, // THAI DIGIT FIVE - 0xF6, 0x0E56, // THAI DIGIT SIX - 0xF7, 0x0E57, // THAI DIGIT SEVEN - 0xF8, 0x0E58, // THAI DIGIT EIGHT - 0xF9, 0x0E59, // THAI DIGIT NINE - 0xFA, 0x0E5A, // THAI CHARACTER ANGKHANKHU - 0xFB, 0x0E5B, // THAI CHARACTER KHOMUT - -1, -1}; - -NSEncodingRegistration(iso8859_11, kCFStringEncodingISOLatinThai); diff --git a/Foundation/NSString/Encoding/8859-13.h b/Foundation/NSString/Encoding/8859-13.h deleted file mode 100644 index fff5ff8e..00000000 --- a/Foundation/NSString/Encoding/8859-13.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-13, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_13[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x201D, // RIGHT DOUBLE QUOTATION MARK - 0xA2, 0x00A2, // CENT SIGN - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x00A4, // CURRENCY SIGN - 0xA5, 0x201E, // DOUBLE LOW-9 QUOTATION MARK - 0xA6, 0x00A6, // BROKEN BAR - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00D8, // LATIN CAPITAL LETTER O WITH STROKE - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x0156, // LATIN CAPITAL LETTER R WITH CEDILLA - 0xAB, 0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xAC, 0x00AC, // NOT SIGN - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x00AE, // REGISTERED SIGN - 0xAF, 0x00C6, // LATIN CAPITAL LETTER AE - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x00B1, // PLUS-MINUS SIGN - 0xB2, 0x00B2, // SUPERSCRIPT TWO - 0xB3, 0x00B3, // SUPERSCRIPT THREE - 0xB4, 0x201C, // LEFT DOUBLE QUOTATION MARK - 0xB5, 0x00B5, // MICRO SIGN - 0xB6, 0x00B6, // PILCROW SIGN - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x00F8, // LATIN SMALL LETTER O WITH STROKE - 0xB9, 0x00B9, // SUPERSCRIPT ONE - 0xBA, 0x0157, // LATIN SMALL LETTER R WITH CEDILLA - 0xBB, 0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xBC, 0x00BC, // VULGAR FRACTION ONE QUARTER - 0xBD, 0x00BD, // VULGAR FRACTION ONE HALF - 0xBE, 0x00BE, // VULGAR FRACTION THREE QUARTERS - 0xBF, 0x00E6, // LATIN SMALL LETTER AE - 0xC0, 0x0104, // LATIN CAPITAL LETTER A WITH OGONEK - 0xC1, 0x012E, // LATIN CAPITAL LETTER I WITH OGONEK - 0xC2, 0x0100, // LATIN CAPITAL LETTER A WITH MACRON - 0xC3, 0x0106, // LATIN CAPITAL LETTER C WITH ACUTE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE - 0xC6, 0x0118, // LATIN CAPITAL LETTER E WITH OGONEK - 0xC7, 0x0112, // LATIN CAPITAL LETTER E WITH MACRON - 0xC8, 0x010C, // LATIN CAPITAL LETTER C WITH CARON - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x0179, // LATIN CAPITAL LETTER Z WITH ACUTE - 0xCB, 0x0116, // LATIN CAPITAL LETTER E WITH DOT ABOVE - 0xCC, 0x0122, // LATIN CAPITAL LETTER G WITH CEDILLA - 0xCD, 0x0136, // LATIN CAPITAL LETTER K WITH CEDILLA - 0xCE, 0x012A, // LATIN CAPITAL LETTER I WITH MACRON - 0xCF, 0x013B, // LATIN CAPITAL LETTER L WITH CEDILLA - 0xD0, 0x0160, // LATIN CAPITAL LETTER S WITH CARON - 0xD1, 0x0143, // LATIN CAPITAL LETTER N WITH ACUTE - 0xD2, 0x0145, // LATIN CAPITAL LETTER N WITH CEDILLA - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x014C, // LATIN CAPITAL LETTER O WITH MACRON - 0xD5, 0x00D5, // LATIN CAPITAL LETTER O WITH TILDE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x00D7, // MULTIPLICATION SIGN - 0xD8, 0x0172, // LATIN CAPITAL LETTER U WITH OGONEK - 0xD9, 0x0141, // LATIN CAPITAL LETTER L WITH STROKE - 0xDA, 0x015A, // LATIN CAPITAL LETTER S WITH ACUTE - 0xDB, 0x016A, // LATIN CAPITAL LETTER U WITH MACRON - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE - 0xDE, 0x017D, // LATIN CAPITAL LETTER Z WITH CARON - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S (German) - 0xE0, 0x0105, // LATIN SMALL LETTER A WITH OGONEK - 0xE1, 0x012F, // LATIN SMALL LETTER I WITH OGONEK - 0xE2, 0x0101, // LATIN SMALL LETTER A WITH MACRON - 0xE3, 0x0107, // LATIN SMALL LETTER C WITH ACUTE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE - 0xE6, 0x0119, // LATIN SMALL LETTER E WITH OGONEK - 0xE7, 0x0113, // LATIN SMALL LETTER E WITH MACRON - 0xE8, 0x010D, // LATIN SMALL LETTER C WITH CARON - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x017A, // LATIN SMALL LETTER Z WITH ACUTE - 0xEB, 0x0117, // LATIN SMALL LETTER E WITH DOT ABOVE - 0xEC, 0x0123, // LATIN SMALL LETTER G WITH CEDILLA - 0xED, 0x0137, // LATIN SMALL LETTER K WITH CEDILLA - 0xEE, 0x012B, // LATIN SMALL LETTER I WITH MACRON - 0xEF, 0x013C, // LATIN SMALL LETTER L WITH CEDILLA - 0xF0, 0x0161, // LATIN SMALL LETTER S WITH CARON - 0xF1, 0x0144, // LATIN SMALL LETTER N WITH ACUTE - 0xF2, 0x0146, // LATIN SMALL LETTER N WITH CEDILLA - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x014D, // LATIN SMALL LETTER O WITH MACRON - 0xF5, 0x00F5, // LATIN SMALL LETTER O WITH TILDE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x00F7, // DIVISION SIGN - 0xF8, 0x0173, // LATIN SMALL LETTER U WITH OGONEK - 0xF9, 0x0142, // LATIN SMALL LETTER L WITH STROKE - 0xFA, 0x015B, // LATIN SMALL LETTER S WITH ACUTE - 0xFB, 0x016B, // LATIN SMALL LETTER U WITH MACRON - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x017C, // LATIN SMALL LETTER Z WITH DOT ABOVE - 0xFE, 0x017E, // LATIN SMALL LETTER Z WITH CARON - 0xFF, 0x2019, // RIGHT SINGLE QUOTATION MARK - -1, -1}; - -NSEncodingRegistration(iso8859_13, kCFStringEncodingISOLatin7); diff --git a/Foundation/NSString/Encoding/8859-14.h b/Foundation/NSString/Encoding/8859-14.h deleted file mode 100644 index 46e2b0d1..00000000 --- a/Foundation/NSString/Encoding/8859-14.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-14, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_14[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x1E02, // LATIN CAPITAL LETTER B WITH DOT ABOVE - 0xA2, 0x1E03, // LATIN SMALL LETTER B WITH DOT ABOVE - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x010A, // LATIN CAPITAL LETTER C WITH DOT ABOVE - 0xA5, 0x010B, // LATIN SMALL LETTER C WITH DOT ABOVE - 0xA6, 0x1E0A, // LATIN CAPITAL LETTER D WITH DOT ABOVE - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x1E80, // LATIN CAPITAL LETTER W WITH GRAVE - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x1E82, // LATIN CAPITAL LETTER W WITH ACUTE - 0xAB, 0x1E0B, // LATIN SMALL LETTER D WITH DOT ABOVE - 0xAC, 0x1EF2, // LATIN CAPITAL LETTER Y WITH GRAVE - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x00AE, // REGISTERED SIGN - 0xAF, 0x0178, // LATIN CAPITAL LETTER Y WITH DIAERESIS - 0xB0, 0x1E1E, // LATIN CAPITAL LETTER F WITH DOT ABOVE - 0xB1, 0x1E1F, // LATIN SMALL LETTER F WITH DOT ABOVE - 0xB2, 0x0120, // LATIN CAPITAL LETTER G WITH DOT ABOVE - 0xB3, 0x0121, // LATIN SMALL LETTER G WITH DOT ABOVE - 0xB4, 0x1E40, // LATIN CAPITAL LETTER M WITH DOT ABOVE - 0xB5, 0x1E41, // LATIN SMALL LETTER M WITH DOT ABOVE - 0xB6, 0x00B6, // PILCROW SIGN - 0xB7, 0x1E56, // LATIN CAPITAL LETTER P WITH DOT ABOVE - 0xB8, 0x1E81, // LATIN SMALL LETTER W WITH GRAVE - 0xB9, 0x1E57, // LATIN SMALL LETTER P WITH DOT ABOVE - 0xBA, 0x1E83, // LATIN SMALL LETTER W WITH ACUTE - 0xBB, 0x1E60, // LATIN CAPITAL LETTER S WITH DOT ABOVE - 0xBC, 0x1EF3, // LATIN SMALL LETTER Y WITH GRAVE - 0xBD, 0x1E84, // LATIN CAPITAL LETTER W WITH DIAERESIS - 0xBE, 0x1E85, // LATIN SMALL LETTER W WITH DIAERESIS - 0xBF, 0x1E61, // LATIN SMALL LETTER S WITH DOT ABOVE - 0xC0, 0x00C0, // LATIN CAPITAL LETTER A WITH GRAVE - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x00C3, // LATIN CAPITAL LETTER A WITH TILDE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE - 0xC6, 0x00C6, // LATIN CAPITAL LETTER AE - 0xC7, 0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA - 0xC8, 0x00C8, // LATIN CAPITAL LETTER E WITH GRAVE - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x00CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x00CC, // LATIN CAPITAL LETTER I WITH GRAVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS - 0xD0, 0x0174, // LATIN CAPITAL LETTER W WITH CIRCUMFLEX - 0xD1, 0x00D1, // LATIN CAPITAL LETTER N WITH TILDE - 0xD2, 0x00D2, // LATIN CAPITAL LETTER O WITH GRAVE - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x00D5, // LATIN CAPITAL LETTER O WITH TILDE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x1E6A, // LATIN CAPITAL LETTER T WITH DOT ABOVE - 0xD8, 0x00D8, // LATIN CAPITAL LETTER O WITH STROKE - 0xD9, 0x00D9, // LATIN CAPITAL LETTER U WITH GRAVE - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x00DD, // LATIN CAPITAL LETTER Y WITH ACUTE - 0xDE, 0x0176, // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S - 0xE0, 0x00E0, // LATIN SMALL LETTER A WITH GRAVE - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x00E3, // LATIN SMALL LETTER A WITH TILDE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE - 0xE6, 0x00E6, // LATIN SMALL LETTER AE - 0xE7, 0x00E7, // LATIN SMALL LETTER C WITH CEDILLA - 0xE8, 0x00E8, // LATIN SMALL LETTER E WITH GRAVE - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x00EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x00EC, // LATIN SMALL LETTER I WITH GRAVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS - 0xF0, 0x0175, // LATIN SMALL LETTER W WITH CIRCUMFLEX - 0xF1, 0x00F1, // LATIN SMALL LETTER N WITH TILDE - 0xF2, 0x00F2, // LATIN SMALL LETTER O WITH GRAVE - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x00F5, // LATIN SMALL LETTER O WITH TILDE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x1E6B, // LATIN SMALL LETTER T WITH DOT ABOVE - 0xF8, 0x00F8, // LATIN SMALL LETTER O WITH STROKE - 0xF9, 0x00F9, // LATIN SMALL LETTER U WITH GRAVE - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x00FD, // LATIN SMALL LETTER Y WITH ACUTE - 0xFE, 0x0177, // LATIN SMALL LETTER Y WITH CIRCUMFLEX - 0xFF, 0x00FF, // LATIN SMALL LETTER Y WITH DIAERESIS - -1, -1}; - -NSEncodingRegistration(iso8859_14, kCFStringEncodingISOLatin8); diff --git a/Foundation/NSString/Encoding/8859-15.h b/Foundation/NSString/Encoding/8859-15.h deleted file mode 100644 index 4408e905..00000000 --- a/Foundation/NSString/Encoding/8859-15.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-15, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_15[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x00A1, // INVERTED EXCLAMATION MARK - 0xA2, 0x00A2, // CENT SIGN - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x20AC, // EURO SIGN - 0xA5, 0x00A5, // YEN SIGN - 0xA6, 0x0160, // LATIN CAPITAL LETTER S WITH CARON - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x0161, // LATIN SMALL LETTER S WITH CARON - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x00AA, // FEMININE ORDINAL INDICATOR - 0xAB, 0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xAC, 0x00AC, // NOT SIGN - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x00AE, // REGISTERED SIGN - 0xAF, 0x00AF, // MACRON - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x00B1, // PLUS-MINUS SIGN - 0xB2, 0x00B2, // SUPERSCRIPT TWO - 0xB3, 0x00B3, // SUPERSCRIPT THREE - 0xB4, 0x017D, // LATIN CAPITAL LETTER Z WITH CARON - 0xB5, 0x00B5, // MICRO SIGN - 0xB6, 0x00B6, // PILCROW SIGN - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x017E, // LATIN SMALL LETTER Z WITH CARON - 0xB9, 0x00B9, // SUPERSCRIPT ONE - 0xBA, 0x00BA, // MASCULINE ORDINAL INDICATOR - 0xBB, 0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xBC, 0x0152, // LATIN CAPITAL LIGATURE OE - 0xBD, 0x0153, // LATIN SMALL LIGATURE OE - 0xBE, 0x0178, // LATIN CAPITAL LETTER Y WITH DIAERESIS - 0xBF, 0x00BF, // INVERTED QUESTION MARK - 0xC0, 0x00C0, // LATIN CAPITAL LETTER A WITH GRAVE - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x00C3, // LATIN CAPITAL LETTER A WITH TILDE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE - 0xC6, 0x00C6, // LATIN CAPITAL LETTER AE - 0xC7, 0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA - 0xC8, 0x00C8, // LATIN CAPITAL LETTER E WITH GRAVE - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x00CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x00CC, // LATIN CAPITAL LETTER I WITH GRAVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS - 0xD0, 0x00D0, // LATIN CAPITAL LETTER ETH - 0xD1, 0x00D1, // LATIN CAPITAL LETTER N WITH TILDE - 0xD2, 0x00D2, // LATIN CAPITAL LETTER O WITH GRAVE - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x00D5, // LATIN CAPITAL LETTER O WITH TILDE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x00D7, // MULTIPLICATION SIGN - 0xD8, 0x00D8, // LATIN CAPITAL LETTER O WITH STROKE - 0xD9, 0x00D9, // LATIN CAPITAL LETTER U WITH GRAVE - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x00DD, // LATIN CAPITAL LETTER Y WITH ACUTE - 0xDE, 0x00DE, // LATIN CAPITAL LETTER THORN - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S - 0xE0, 0x00E0, // LATIN SMALL LETTER A WITH GRAVE - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x00E3, // LATIN SMALL LETTER A WITH TILDE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE - 0xE6, 0x00E6, // LATIN SMALL LETTER AE - 0xE7, 0x00E7, // LATIN SMALL LETTER C WITH CEDILLA - 0xE8, 0x00E8, // LATIN SMALL LETTER E WITH GRAVE - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x00EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x00EC, // LATIN SMALL LETTER I WITH GRAVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS - 0xF0, 0x00F0, // LATIN SMALL LETTER ETH - 0xF1, 0x00F1, // LATIN SMALL LETTER N WITH TILDE - 0xF2, 0x00F2, // LATIN SMALL LETTER O WITH GRAVE - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x00F5, // LATIN SMALL LETTER O WITH TILDE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x00F7, // DIVISION SIGN - 0xF8, 0x00F8, // LATIN SMALL LETTER O WITH STROKE - 0xF9, 0x00F9, // LATIN SMALL LETTER U WITH GRAVE - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x00FD, // LATIN SMALL LETTER Y WITH ACUTE - 0xFE, 0x00FE, // LATIN SMALL LETTER THORN - 0xFF, 0x00FF, // LATIN SMALL LETTER Y WITH DIAERESIS - -1, -1}; - -NSEncodingRegistration(iso8859_15, kCFStringEncodingISOLatin9); diff --git a/Foundation/NSString/Encoding/8859-16.h b/Foundation/NSString/Encoding/8859-16.h deleted file mode 100644 index 4b991d01..00000000 --- a/Foundation/NSString/Encoding/8859-16.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-16, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_16[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x0104, // LATIN CAPITAL LETTER A WITH OGONEK - 0xA2, 0x0105, // LATIN SMALL LETTER A WITH OGONEK - 0xA3, 0x0141, // LATIN CAPITAL LETTER L WITH STROKE - 0xA4, 0x20AC, // EURO SIGN - 0xA5, 0x201E, // DOUBLE LOW-9 QUOTATION MARK - 0xA6, 0x0160, // LATIN CAPITAL LETTER S WITH CARON - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x0161, // LATIN SMALL LETTER S WITH CARON - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x0218, // LATIN CAPITAL LETTER S WITH COMMA BELOW - 0xAB, 0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xAC, 0x0179, // LATIN CAPITAL LETTER Z WITH ACUTE - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x017A, // LATIN SMALL LETTER Z WITH ACUTE - 0xAF, 0x017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x00B1, // PLUS-MINUS SIGN - 0xB2, 0x010C, // LATIN CAPITAL LETTER C WITH CARON - 0xB3, 0x0142, // LATIN SMALL LETTER L WITH STROKE - 0xB4, 0x017D, // LATIN CAPITAL LETTER Z WITH CARON - 0xB5, 0x201D, // RIGHT DOUBLE QUOTATION MARK - 0xB6, 0x00B6, // PILCROW SIGN - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x017E, // LATIN SMALL LETTER Z WITH CARON - 0xB9, 0x010D, // LATIN SMALL LETTER C WITH CARON - 0xBA, 0x0219, // LATIN SMALL LETTER S WITH COMMA BELOW - 0xBB, 0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xBC, 0x0152, // LATIN CAPITAL LIGATURE OE - 0xBD, 0x0153, // LATIN SMALL LIGATURE OE - 0xBE, 0x0178, // LATIN CAPITAL LETTER Y WITH DIAERESIS - 0xBF, 0x017C, // LATIN SMALL LETTER Z WITH DOT ABOVE - 0xC0, 0x00C0, // LATIN CAPITAL LETTER A WITH GRAVE - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x0102, // LATIN CAPITAL LETTER A WITH BREVE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x0106, // LATIN CAPITAL LETTER C WITH ACUTE - 0xC6, 0x00C6, // LATIN CAPITAL LETTER AE - 0xC7, 0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA - 0xC8, 0x00C8, // LATIN CAPITAL LETTER E WITH GRAVE - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x00CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x00CC, // LATIN CAPITAL LETTER I WITH GRAVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS - 0xD0, 0x0110, // LATIN CAPITAL LETTER D WITH STROKE - 0xD1, 0x0143, // LATIN CAPITAL LETTER N WITH ACUTE - 0xD2, 0x00D2, // LATIN CAPITAL LETTER O WITH GRAVE - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x0150, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x015A, // LATIN CAPITAL LETTER S WITH ACUTE - 0xD8, 0x0170, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - 0xD9, 0x00D9, // LATIN CAPITAL LETTER U WITH GRAVE - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x0118, // LATIN CAPITAL LETTER E WITH OGONEK - 0xDE, 0x021A, // LATIN CAPITAL LETTER T WITH COMMA BELOW - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S - 0xE0, 0x00E0, // LATIN SMALL LETTER A WITH GRAVE - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x0103, // LATIN SMALL LETTER A WITH BREVE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x0107, // LATIN SMALL LETTER C WITH ACUTE - 0xE6, 0x00E6, // LATIN SMALL LETTER AE - 0xE7, 0x00E7, // LATIN SMALL LETTER C WITH CEDILLA - 0xE8, 0x00E8, // LATIN SMALL LETTER E WITH GRAVE - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x00EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x00EC, // LATIN SMALL LETTER I WITH GRAVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS - 0xF0, 0x0111, // LATIN SMALL LETTER D WITH STROKE - 0xF1, 0x0144, // LATIN SMALL LETTER N WITH ACUTE - 0xF2, 0x00F2, // LATIN SMALL LETTER O WITH GRAVE - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x0151, // LATIN SMALL LETTER O WITH DOUBLE ACUTE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x015B, // LATIN SMALL LETTER S WITH ACUTE - 0xF8, 0x0171, // LATIN SMALL LETTER U WITH DOUBLE ACUTE - 0xF9, 0x00F9, // LATIN SMALL LETTER U WITH GRAVE - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x0119, // LATIN SMALL LETTER E WITH OGONEK - 0xFE, 0x021B, // LATIN SMALL LETTER T WITH COMMA BELOW - 0xFF, 0x00FF, // LATIN SMALL LETTER Y WITH DIAERESIS - -1, -1}; - -NSEncodingRegistration(iso8859_16, kCFStringEncodingISOLatin10); diff --git a/Foundation/NSString/Encoding/8859-2.h b/Foundation/NSString/Encoding/8859-2.h deleted file mode 100644 index 9a9fff61..00000000 --- a/Foundation/NSString/Encoding/8859-2.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-2, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_2[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x0104, // LATIN CAPITAL LETTER A WITH OGONEK - 0xA2, 0x02D8, // BREVE - 0xA3, 0x0141, // LATIN CAPITAL LETTER L WITH STROKE - 0xA4, 0x00A4, // CURRENCY SIGN - 0xA5, 0x013D, // LATIN CAPITAL LETTER L WITH CARON - 0xA6, 0x015A, // LATIN CAPITAL LETTER S WITH ACUTE - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00A8, // DIAERESIS - 0xA9, 0x0160, // LATIN CAPITAL LETTER S WITH CARON - 0xAA, 0x015E, // LATIN CAPITAL LETTER S WITH CEDILLA - 0xAB, 0x0164, // LATIN CAPITAL LETTER T WITH CARON - 0xAC, 0x0179, // LATIN CAPITAL LETTER Z WITH ACUTE - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x017D, // LATIN CAPITAL LETTER Z WITH CARON - 0xAF, 0x017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x0105, // LATIN SMALL LETTER A WITH OGONEK - 0xB2, 0x02DB, // OGONEK - 0xB3, 0x0142, // LATIN SMALL LETTER L WITH STROKE - 0xB4, 0x00B4, // ACUTE ACCENT - 0xB5, 0x013E, // LATIN SMALL LETTER L WITH CARON - 0xB6, 0x015B, // LATIN SMALL LETTER S WITH ACUTE - 0xB7, 0x02C7, // CARON - 0xB8, 0x00B8, // CEDILLA - 0xB9, 0x0161, // LATIN SMALL LETTER S WITH CARON - 0xBA, 0x015F, // LATIN SMALL LETTER S WITH CEDILLA - 0xBB, 0x0165, // LATIN SMALL LETTER T WITH CARON - 0xBC, 0x017A, // LATIN SMALL LETTER Z WITH ACUTE - 0xBD, 0x02DD, // DOUBLE ACUTE ACCENT - 0xBE, 0x017E, // LATIN SMALL LETTER Z WITH CARON - 0xBF, 0x017C, // LATIN SMALL LETTER Z WITH DOT ABOVE - 0xC0, 0x0154, // LATIN CAPITAL LETTER R WITH ACUTE - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x0102, // LATIN CAPITAL LETTER A WITH BREVE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x0139, // LATIN CAPITAL LETTER L WITH ACUTE - 0xC6, 0x0106, // LATIN CAPITAL LETTER C WITH ACUTE - 0xC7, 0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA - 0xC8, 0x010C, // LATIN CAPITAL LETTER C WITH CARON - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x0118, // LATIN CAPITAL LETTER E WITH OGONEK - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x011A, // LATIN CAPITAL LETTER E WITH CARON - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x010E, // LATIN CAPITAL LETTER D WITH CARON - 0xD0, 0x0110, // LATIN CAPITAL LETTER D WITH STROKE - 0xD1, 0x0143, // LATIN CAPITAL LETTER N WITH ACUTE - 0xD2, 0x0147, // LATIN CAPITAL LETTER N WITH CARON - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x0150, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x00D7, // MULTIPLICATION SIGN - 0xD8, 0x0158, // LATIN CAPITAL LETTER R WITH CARON - 0xD9, 0x016E, // LATIN CAPITAL LETTER U WITH RING ABOVE - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x0170, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x00DD, // LATIN CAPITAL LETTER Y WITH ACUTE - 0xDE, 0x0162, // LATIN CAPITAL LETTER T WITH CEDILLA - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S - 0xE0, 0x0155, // LATIN SMALL LETTER R WITH ACUTE - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x0103, // LATIN SMALL LETTER A WITH BREVE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x013A, // LATIN SMALL LETTER L WITH ACUTE - 0xE6, 0x0107, // LATIN SMALL LETTER C WITH ACUTE - 0xE7, 0x00E7, // LATIN SMALL LETTER C WITH CEDILLA - 0xE8, 0x010D, // LATIN SMALL LETTER C WITH CARON - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x0119, // LATIN SMALL LETTER E WITH OGONEK - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x011B, // LATIN SMALL LETTER E WITH CARON - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x010F, // LATIN SMALL LETTER D WITH CARON - 0xF0, 0x0111, // LATIN SMALL LETTER D WITH STROKE - 0xF1, 0x0144, // LATIN SMALL LETTER N WITH ACUTE - 0xF2, 0x0148, // LATIN SMALL LETTER N WITH CARON - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x0151, // LATIN SMALL LETTER O WITH DOUBLE ACUTE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x00F7, // DIVISION SIGN - 0xF8, 0x0159, // LATIN SMALL LETTER R WITH CARON - 0xF9, 0x016F, // LATIN SMALL LETTER U WITH RING ABOVE - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x0171, // LATIN SMALL LETTER U WITH DOUBLE ACUTE - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x00FD, // LATIN SMALL LETTER Y WITH ACUTE - 0xFE, 0x0163, // LATIN SMALL LETTER T WITH CEDILLA - 0xFF, 0x02D9, // DOT ABOVE - -1, -1}; - -NSEncodingRegistration(iso8859_2, kCFStringEncodingISOLatin2); diff --git a/Foundation/NSString/Encoding/8859-3.h b/Foundation/NSString/Encoding/8859-3.h deleted file mode 100644 index 2f282d8e..00000000 --- a/Foundation/NSString/Encoding/8859-3.h +++ /dev/null @@ -1,256 +0,0 @@ -// 8859-3, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_3[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x0126, // LATIN CAPITAL LETTER H WITH STROKE - 0xA2, 0x02D8, // BREVE - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x00A4, // CURRENCY SIGN - 0xA6, 0x0124, // LATIN CAPITAL LETTER H WITH CIRCUMFLEX - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00A8, // DIAERESIS - 0xA9, 0x0130, // LATIN CAPITAL LETTER I WITH DOT ABOVE - 0xAA, 0x015E, // LATIN CAPITAL LETTER S WITH CEDILLA - 0xAB, 0x011E, // LATIN CAPITAL LETTER G WITH BREVE - 0xAC, 0x0134, // LATIN CAPITAL LETTER J WITH CIRCUMFLEX - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAF, 0x017B, // LATIN CAPITAL LETTER Z WITH DOT ABOVE - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x0127, // LATIN SMALL LETTER H WITH STROKE - 0xB2, 0x00B2, // SUPERSCRIPT TWO - 0xB3, 0x00B3, // SUPERSCRIPT THREE - 0xB4, 0x00B4, // ACUTE ACCENT - 0xB5, 0x00B5, // MICRO SIGN - 0xB6, 0x0125, // LATIN SMALL LETTER H WITH CIRCUMFLEX - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x00B8, // CEDILLA - 0xB9, 0x0131, // LATIN SMALL LETTER DOTLESS I - 0xBA, 0x015F, // LATIN SMALL LETTER S WITH CEDILLA - 0xBB, 0x011F, // LATIN SMALL LETTER G WITH BREVE - 0xBC, 0x0135, // LATIN SMALL LETTER J WITH CIRCUMFLEX - 0xBD, 0x00BD, // VULGAR FRACTION ONE HALF - 0xBF, 0x017C, // LATIN SMALL LETTER Z WITH DOT ABOVE - 0xC0, 0x00C0, // LATIN CAPITAL LETTER A WITH GRAVE - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x010A, // LATIN CAPITAL LETTER C WITH DOT ABOVE - 0xC6, 0x0108, // LATIN CAPITAL LETTER C WITH CIRCUMFLEX - 0xC7, 0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA - 0xC8, 0x00C8, // LATIN CAPITAL LETTER E WITH GRAVE - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x00CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x00CC, // LATIN CAPITAL LETTER I WITH GRAVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS - 0xD1, 0x00D1, // LATIN CAPITAL LETTER N WITH TILDE - 0xD2, 0x00D2, // LATIN CAPITAL LETTER O WITH GRAVE - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x0120, // LATIN CAPITAL LETTER G WITH DOT ABOVE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x00D7, // MULTIPLICATION SIGN - 0xD8, 0x011C, // LATIN CAPITAL LETTER G WITH CIRCUMFLEX - 0xD9, 0x00D9, // LATIN CAPITAL LETTER U WITH GRAVE - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x016C, // LATIN CAPITAL LETTER U WITH BREVE - 0xDE, 0x015C, // LATIN CAPITAL LETTER S WITH CIRCUMFLEX - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S - 0xE0, 0x00E0, // LATIN SMALL LETTER A WITH GRAVE - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x010B, // LATIN SMALL LETTER C WITH DOT ABOVE - 0xE6, 0x0109, // LATIN SMALL LETTER C WITH CIRCUMFLEX - 0xE7, 0x00E7, // LATIN SMALL LETTER C WITH CEDILLA - 0xE8, 0x00E8, // LATIN SMALL LETTER E WITH GRAVE - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x00EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x00EC, // LATIN SMALL LETTER I WITH GRAVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS - 0xF1, 0x00F1, // LATIN SMALL LETTER N WITH TILDE - 0xF2, 0x00F2, // LATIN SMALL LETTER O WITH GRAVE - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x0121, // LATIN SMALL LETTER G WITH DOT ABOVE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x00F7, // DIVISION SIGN - 0xF8, 0x011D, // LATIN SMALL LETTER G WITH CIRCUMFLEX - 0xF9, 0x00F9, // LATIN SMALL LETTER U WITH GRAVE - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x016D, // LATIN SMALL LETTER U WITH BREVE - 0xFE, 0x015D, // LATIN SMALL LETTER S WITH CIRCUMFLEX - 0xFF, 0x02D9, // DOT ABOVE - -1, -1}; - -NSEncodingRegistration(iso8859_3, kCFStringEncodingISOLatin3); diff --git a/Foundation/NSString/Encoding/8859-4.h b/Foundation/NSString/Encoding/8859-4.h deleted file mode 100644 index cccca267..00000000 --- a/Foundation/NSString/Encoding/8859-4.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-4, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_4[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x0104, // LATIN CAPITAL LETTER A WITH OGONEK - 0xA2, 0x0138, // LATIN SMALL LETTER KRA - 0xA3, 0x0156, // LATIN CAPITAL LETTER R WITH CEDILLA - 0xA4, 0x00A4, // CURRENCY SIGN - 0xA5, 0x0128, // LATIN CAPITAL LETTER I WITH TILDE - 0xA6, 0x013B, // LATIN CAPITAL LETTER L WITH CEDILLA - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00A8, // DIAERESIS - 0xA9, 0x0160, // LATIN CAPITAL LETTER S WITH CARON - 0xAA, 0x0112, // LATIN CAPITAL LETTER E WITH MACRON - 0xAB, 0x0122, // LATIN CAPITAL LETTER G WITH CEDILLA - 0xAC, 0x0166, // LATIN CAPITAL LETTER T WITH STROKE - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x017D, // LATIN CAPITAL LETTER Z WITH CARON - 0xAF, 0x00AF, // MACRON - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x0105, // LATIN SMALL LETTER A WITH OGONEK - 0xB2, 0x02DB, // OGONEK - 0xB3, 0x0157, // LATIN SMALL LETTER R WITH CEDILLA - 0xB4, 0x00B4, // ACUTE ACCENT - 0xB5, 0x0129, // LATIN SMALL LETTER I WITH TILDE - 0xB6, 0x013C, // LATIN SMALL LETTER L WITH CEDILLA - 0xB7, 0x02C7, // CARON - 0xB8, 0x00B8, // CEDILLA - 0xB9, 0x0161, // LATIN SMALL LETTER S WITH CARON - 0xBA, 0x0113, // LATIN SMALL LETTER E WITH MACRON - 0xBB, 0x0123, // LATIN SMALL LETTER G WITH CEDILLA - 0xBC, 0x0167, // LATIN SMALL LETTER T WITH STROKE - 0xBD, 0x014A, // LATIN CAPITAL LETTER ENG - 0xBE, 0x017E, // LATIN SMALL LETTER Z WITH CARON - 0xBF, 0x014B, // LATIN SMALL LETTER ENG - 0xC0, 0x0100, // LATIN CAPITAL LETTER A WITH MACRON - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x00C3, // LATIN CAPITAL LETTER A WITH TILDE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE - 0xC6, 0x00C6, // LATIN CAPITAL LETTER AE - 0xC7, 0x012E, // LATIN CAPITAL LETTER I WITH OGONEK - 0xC8, 0x010C, // LATIN CAPITAL LETTER C WITH CARON - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x0118, // LATIN CAPITAL LETTER E WITH OGONEK - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x0116, // LATIN CAPITAL LETTER E WITH DOT ABOVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x012A, // LATIN CAPITAL LETTER I WITH MACRON - 0xD0, 0x0110, // LATIN CAPITAL LETTER D WITH STROKE - 0xD1, 0x0145, // LATIN CAPITAL LETTER N WITH CEDILLA - 0xD2, 0x014C, // LATIN CAPITAL LETTER O WITH MACRON - 0xD3, 0x0136, // LATIN CAPITAL LETTER K WITH CEDILLA - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x00D5, // LATIN CAPITAL LETTER O WITH TILDE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x00D7, // MULTIPLICATION SIGN - 0xD8, 0x00D8, // LATIN CAPITAL LETTER O WITH STROKE - 0xD9, 0x0172, // LATIN CAPITAL LETTER U WITH OGONEK - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x0168, // LATIN CAPITAL LETTER U WITH TILDE - 0xDE, 0x016A, // LATIN CAPITAL LETTER U WITH MACRON - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S - 0xE0, 0x0101, // LATIN SMALL LETTER A WITH MACRON - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x00E3, // LATIN SMALL LETTER A WITH TILDE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE - 0xE6, 0x00E6, // LATIN SMALL LETTER AE - 0xE7, 0x012F, // LATIN SMALL LETTER I WITH OGONEK - 0xE8, 0x010D, // LATIN SMALL LETTER C WITH CARON - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x0119, // LATIN SMALL LETTER E WITH OGONEK - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x0117, // LATIN SMALL LETTER E WITH DOT ABOVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x012B, // LATIN SMALL LETTER I WITH MACRON - 0xF0, 0x0111, // LATIN SMALL LETTER D WITH STROKE - 0xF1, 0x0146, // LATIN SMALL LETTER N WITH CEDILLA - 0xF2, 0x014D, // LATIN SMALL LETTER O WITH MACRON - 0xF3, 0x0137, // LATIN SMALL LETTER K WITH CEDILLA - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x00F5, // LATIN SMALL LETTER O WITH TILDE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x00F7, // DIVISION SIGN - 0xF8, 0x00F8, // LATIN SMALL LETTER O WITH STROKE - 0xF9, 0x0173, // LATIN SMALL LETTER U WITH OGONEK - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x0169, // LATIN SMALL LETTER U WITH TILDE - 0xFE, 0x016B, // LATIN SMALL LETTER U WITH MACRON - 0xFF, 0x02D9, // DOT ABOVE - -1, -1}; - -NSEncodingRegistration(iso8859_4, kCFStringEncodingISOLatin4); diff --git a/Foundation/NSString/Encoding/8859-5.h b/Foundation/NSString/Encoding/8859-5.h deleted file mode 100644 index 80b107d3..00000000 --- a/Foundation/NSString/Encoding/8859-5.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-5, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_5[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x0401, // CYRILLIC CAPITAL LETTER IO - 0xA2, 0x0402, // CYRILLIC CAPITAL LETTER DJE - 0xA3, 0x0403, // CYRILLIC CAPITAL LETTER GJE - 0xA4, 0x0404, // CYRILLIC CAPITAL LETTER UKRAINIAN IE - 0xA5, 0x0405, // CYRILLIC CAPITAL LETTER DZE - 0xA6, 0x0406, // CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - 0xA7, 0x0407, // CYRILLIC CAPITAL LETTER YI - 0xA8, 0x0408, // CYRILLIC CAPITAL LETTER JE - 0xA9, 0x0409, // CYRILLIC CAPITAL LETTER LJE - 0xAA, 0x040A, // CYRILLIC CAPITAL LETTER NJE - 0xAB, 0x040B, // CYRILLIC CAPITAL LETTER TSHE - 0xAC, 0x040C, // CYRILLIC CAPITAL LETTER KJE - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x040E, // CYRILLIC CAPITAL LETTER SHORT U - 0xAF, 0x040F, // CYRILLIC CAPITAL LETTER DZHE - 0xB0, 0x0410, // CYRILLIC CAPITAL LETTER A - 0xB1, 0x0411, // CYRILLIC CAPITAL LETTER BE - 0xB2, 0x0412, // CYRILLIC CAPITAL LETTER VE - 0xB3, 0x0413, // CYRILLIC CAPITAL LETTER GHE - 0xB4, 0x0414, // CYRILLIC CAPITAL LETTER DE - 0xB5, 0x0415, // CYRILLIC CAPITAL LETTER IE - 0xB6, 0x0416, // CYRILLIC CAPITAL LETTER ZHE - 0xB7, 0x0417, // CYRILLIC CAPITAL LETTER ZE - 0xB8, 0x0418, // CYRILLIC CAPITAL LETTER I - 0xB9, 0x0419, // CYRILLIC CAPITAL LETTER SHORT I - 0xBA, 0x041A, // CYRILLIC CAPITAL LETTER KA - 0xBB, 0x041B, // CYRILLIC CAPITAL LETTER EL - 0xBC, 0x041C, // CYRILLIC CAPITAL LETTER EM - 0xBD, 0x041D, // CYRILLIC CAPITAL LETTER EN - 0xBE, 0x041E, // CYRILLIC CAPITAL LETTER O - 0xBF, 0x041F, // CYRILLIC CAPITAL LETTER PE - 0xC0, 0x0420, // CYRILLIC CAPITAL LETTER ER - 0xC1, 0x0421, // CYRILLIC CAPITAL LETTER ES - 0xC2, 0x0422, // CYRILLIC CAPITAL LETTER TE - 0xC3, 0x0423, // CYRILLIC CAPITAL LETTER U - 0xC4, 0x0424, // CYRILLIC CAPITAL LETTER EF - 0xC5, 0x0425, // CYRILLIC CAPITAL LETTER HA - 0xC6, 0x0426, // CYRILLIC CAPITAL LETTER TSE - 0xC7, 0x0427, // CYRILLIC CAPITAL LETTER CHE - 0xC8, 0x0428, // CYRILLIC CAPITAL LETTER SHA - 0xC9, 0x0429, // CYRILLIC CAPITAL LETTER SHCHA - 0xCA, 0x042A, // CYRILLIC CAPITAL LETTER HARD SIGN - 0xCB, 0x042B, // CYRILLIC CAPITAL LETTER YERU - 0xCC, 0x042C, // CYRILLIC CAPITAL LETTER SOFT SIGN - 0xCD, 0x042D, // CYRILLIC CAPITAL LETTER E - 0xCE, 0x042E, // CYRILLIC CAPITAL LETTER YU - 0xCF, 0x042F, // CYRILLIC CAPITAL LETTER YA - 0xD0, 0x0430, // CYRILLIC SMALL LETTER A - 0xD1, 0x0431, // CYRILLIC SMALL LETTER BE - 0xD2, 0x0432, // CYRILLIC SMALL LETTER VE - 0xD3, 0x0433, // CYRILLIC SMALL LETTER GHE - 0xD4, 0x0434, // CYRILLIC SMALL LETTER DE - 0xD5, 0x0435, // CYRILLIC SMALL LETTER IE - 0xD6, 0x0436, // CYRILLIC SMALL LETTER ZHE - 0xD7, 0x0437, // CYRILLIC SMALL LETTER ZE - 0xD8, 0x0438, // CYRILLIC SMALL LETTER I - 0xD9, 0x0439, // CYRILLIC SMALL LETTER SHORT I - 0xDA, 0x043A, // CYRILLIC SMALL LETTER KA - 0xDB, 0x043B, // CYRILLIC SMALL LETTER EL - 0xDC, 0x043C, // CYRILLIC SMALL LETTER EM - 0xDD, 0x043D, // CYRILLIC SMALL LETTER EN - 0xDE, 0x043E, // CYRILLIC SMALL LETTER O - 0xDF, 0x043F, // CYRILLIC SMALL LETTER PE - 0xE0, 0x0440, // CYRILLIC SMALL LETTER ER - 0xE1, 0x0441, // CYRILLIC SMALL LETTER ES - 0xE2, 0x0442, // CYRILLIC SMALL LETTER TE - 0xE3, 0x0443, // CYRILLIC SMALL LETTER U - 0xE4, 0x0444, // CYRILLIC SMALL LETTER EF - 0xE5, 0x0445, // CYRILLIC SMALL LETTER HA - 0xE6, 0x0446, // CYRILLIC SMALL LETTER TSE - 0xE7, 0x0447, // CYRILLIC SMALL LETTER CHE - 0xE8, 0x0448, // CYRILLIC SMALL LETTER SHA - 0xE9, 0x0449, // CYRILLIC SMALL LETTER SHCHA - 0xEA, 0x044A, // CYRILLIC SMALL LETTER HARD SIGN - 0xEB, 0x044B, // CYRILLIC SMALL LETTER YERU - 0xEC, 0x044C, // CYRILLIC SMALL LETTER SOFT SIGN - 0xED, 0x044D, // CYRILLIC SMALL LETTER E - 0xEE, 0x044E, // CYRILLIC SMALL LETTER YU - 0xEF, 0x044F, // CYRILLIC SMALL LETTER YA - 0xF0, 0x2116, // NUMERO SIGN - 0xF1, 0x0451, // CYRILLIC SMALL LETTER IO - 0xF2, 0x0452, // CYRILLIC SMALL LETTER DJE - 0xF3, 0x0453, // CYRILLIC SMALL LETTER GJE - 0xF4, 0x0454, // CYRILLIC SMALL LETTER UKRAINIAN IE - 0xF5, 0x0455, // CYRILLIC SMALL LETTER DZE - 0xF6, 0x0456, // CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - 0xF7, 0x0457, // CYRILLIC SMALL LETTER YI - 0xF8, 0x0458, // CYRILLIC SMALL LETTER JE - 0xF9, 0x0459, // CYRILLIC SMALL LETTER LJE - 0xFA, 0x045A, // CYRILLIC SMALL LETTER NJE - 0xFB, 0x045B, // CYRILLIC SMALL LETTER TSHE - 0xFC, 0x045C, // CYRILLIC SMALL LETTER KJE - 0xFD, 0x00A7, // SECTION SIGN - 0xFE, 0x045E, // CYRILLIC SMALL LETTER SHORT U - 0xFF, 0x045F, // CYRILLIC SMALL LETTER DZHE - -1, -1}; - -NSEncodingRegistration(iso8859_5, kCFStringEncodingISOLatinCyrillic); diff --git a/Foundation/NSString/Encoding/8859-6.h b/Foundation/NSString/Encoding/8859-6.h deleted file mode 100644 index b42bd6e5..00000000 --- a/Foundation/NSString/Encoding/8859-6.h +++ /dev/null @@ -1,218 +0,0 @@ -// 8859-6, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_6[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA4, 0x00A4, // CURRENCY SIGN - 0xAC, 0x060C, // ARABIC COMMA - 0xAD, 0x00AD, // SOFT HYPHEN - 0xBB, 0x061B, // ARABIC SEMICOLON - 0xBF, 0x061F, // ARABIC QUESTION MARK - 0xC1, 0x0621, // ARABIC LETTER HAMZA - 0xC2, 0x0622, // ARABIC LETTER ALEF WITH MADDA ABOVE - 0xC3, 0x0623, // ARABIC LETTER ALEF WITH HAMZA ABOVE - 0xC4, 0x0624, // ARABIC LETTER WAW WITH HAMZA ABOVE - 0xC5, 0x0625, // ARABIC LETTER ALEF WITH HAMZA BELOW - 0xC6, 0x0626, // ARABIC LETTER YEH WITH HAMZA ABOVE - 0xC7, 0x0627, // ARABIC LETTER ALEF - 0xC8, 0x0628, // ARABIC LETTER BEH - 0xC9, 0x0629, // ARABIC LETTER TEH MARBUTA - 0xCA, 0x062A, // ARABIC LETTER TEH - 0xCB, 0x062B, // ARABIC LETTER THEH - 0xCC, 0x062C, // ARABIC LETTER JEEM - 0xCD, 0x062D, // ARABIC LETTER HAH - 0xCE, 0x062E, // ARABIC LETTER KHAH - 0xCF, 0x062F, // ARABIC LETTER DAL - 0xD0, 0x0630, // ARABIC LETTER THAL - 0xD1, 0x0631, // ARABIC LETTER REH - 0xD2, 0x0632, // ARABIC LETTER ZAIN - 0xD3, 0x0633, // ARABIC LETTER SEEN - 0xD4, 0x0634, // ARABIC LETTER SHEEN - 0xD5, 0x0635, // ARABIC LETTER SAD - 0xD6, 0x0636, // ARABIC LETTER DAD - 0xD7, 0x0637, // ARABIC LETTER TAH - 0xD8, 0x0638, // ARABIC LETTER ZAH - 0xD9, 0x0639, // ARABIC LETTER AIN - 0xDA, 0x063A, // ARABIC LETTER GHAIN - 0xE0, 0x0640, // ARABIC TATWEEL - 0xE1, 0x0641, // ARABIC LETTER FEH - 0xE2, 0x0642, // ARABIC LETTER QAF - 0xE3, 0x0643, // ARABIC LETTER KAF - 0xE4, 0x0644, // ARABIC LETTER LAM - 0xE5, 0x0645, // ARABIC LETTER MEEM - 0xE6, 0x0646, // ARABIC LETTER NOON - 0xE7, 0x0647, // ARABIC LETTER HEH - 0xE8, 0x0648, // ARABIC LETTER WAW - 0xE9, 0x0649, // ARABIC LETTER ALEF MAKSURA - 0xEA, 0x064A, // ARABIC LETTER YEH - 0xEB, 0x064B, // ARABIC FATHATAN - 0xEC, 0x064C, // ARABIC DAMMATAN - 0xED, 0x064D, // ARABIC KASRATAN - 0xEE, 0x064E, // ARABIC FATHA - 0xEF, 0x064F, // ARABIC DAMMA - 0xF0, 0x0650, // ARABIC KASRA - 0xF1, 0x0651, // ARABIC SHADDA - 0xF2, 0x0652, // ARABIC SUKUN - -1, -1}; - -NSEncodingRegistration(iso8859_6, kCFStringEncodingISOLatinArabic); diff --git a/Foundation/NSString/Encoding/8859-7.h b/Foundation/NSString/Encoding/8859-7.h deleted file mode 100644 index 01f5637b..00000000 --- a/Foundation/NSString/Encoding/8859-7.h +++ /dev/null @@ -1,260 +0,0 @@ -// 8859-7, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_7[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x2018, // LEFT SINGLE QUOTATION MARK - 0xA2, 0x2019, // RIGHT SINGLE QUOTATION MARK - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x20AC, // EURO SIGN - 0xA5, 0x20AF, // DRACHMA SIGN - 0xA6, 0x00A6, // BROKEN BAR - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00A8, // DIAERESIS - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x037A, // GREEK YPOGEGRAMMENI - 0xAB, 0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xAC, 0x00AC, // NOT SIGN - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAF, 0x2015, // HORIZONTAL BAR - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x00B1, // PLUS-MINUS SIGN - 0xB2, 0x00B2, // SUPERSCRIPT TWO - 0xB3, 0x00B3, // SUPERSCRIPT THREE - 0xB4, 0x0384, // GREEK TONOS - 0xB5, 0x0385, // GREEK DIALYTIKA TONOS - 0xB6, 0x0386, // GREEK CAPITAL LETTER ALPHA WITH TONOS - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x0388, // GREEK CAPITAL LETTER EPSILON WITH TONOS - 0xB9, 0x0389, // GREEK CAPITAL LETTER ETA WITH TONOS - 0xBA, 0x038A, // GREEK CAPITAL LETTER IOTA WITH TONOS - 0xBB, 0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xBC, 0x038C, // GREEK CAPITAL LETTER OMICRON WITH TONOS - 0xBD, 0x00BD, // VULGAR FRACTION ONE HALF - 0xBE, 0x038E, // GREEK CAPITAL LETTER UPSILON WITH TONOS - 0xBF, 0x038F, // GREEK CAPITAL LETTER OMEGA WITH TONOS - 0xC0, 0x0390, // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - 0xC1, 0x0391, // GREEK CAPITAL LETTER ALPHA - 0xC2, 0x0392, // GREEK CAPITAL LETTER BETA - 0xC3, 0x0393, // GREEK CAPITAL LETTER GAMMA - 0xC4, 0x0394, // GREEK CAPITAL LETTER DELTA - 0xC5, 0x0395, // GREEK CAPITAL LETTER EPSILON - 0xC6, 0x0396, // GREEK CAPITAL LETTER ZETA - 0xC7, 0x0397, // GREEK CAPITAL LETTER ETA - 0xC8, 0x0398, // GREEK CAPITAL LETTER THETA - 0xC9, 0x0399, // GREEK CAPITAL LETTER IOTA - 0xCA, 0x039A, // GREEK CAPITAL LETTER KAPPA - 0xCB, 0x039B, // GREEK CAPITAL LETTER LAMDA - 0xCC, 0x039C, // GREEK CAPITAL LETTER MU - 0xCD, 0x039D, // GREEK CAPITAL LETTER NU - 0xCE, 0x039E, // GREEK CAPITAL LETTER XI - 0xCF, 0x039F, // GREEK CAPITAL LETTER OMICRON - 0xD0, 0x03A0, // GREEK CAPITAL LETTER PI - 0xD1, 0x03A1, // GREEK CAPITAL LETTER RHO - 0xD3, 0x03A3, // GREEK CAPITAL LETTER SIGMA - 0xD4, 0x03A4, // GREEK CAPITAL LETTER TAU - 0xD5, 0x03A5, // GREEK CAPITAL LETTER UPSILON - 0xD6, 0x03A6, // GREEK CAPITAL LETTER PHI - 0xD7, 0x03A7, // GREEK CAPITAL LETTER CHI - 0xD8, 0x03A8, // GREEK CAPITAL LETTER PSI - 0xD9, 0x03A9, // GREEK CAPITAL LETTER OMEGA - 0xDA, 0x03AA, // GREEK CAPITAL LETTER IOTA WITH DIALYTIKA - 0xDB, 0x03AB, // GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA - 0xDC, 0x03AC, // GREEK SMALL LETTER ALPHA WITH TONOS - 0xDD, 0x03AD, // GREEK SMALL LETTER EPSILON WITH TONOS - 0xDE, 0x03AE, // GREEK SMALL LETTER ETA WITH TONOS - 0xDF, 0x03AF, // GREEK SMALL LETTER IOTA WITH TONOS - 0xE0, 0x03B0, // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS - 0xE1, 0x03B1, // GREEK SMALL LETTER ALPHA - 0xE2, 0x03B2, // GREEK SMALL LETTER BETA - 0xE3, 0x03B3, // GREEK SMALL LETTER GAMMA - 0xE4, 0x03B4, // GREEK SMALL LETTER DELTA - 0xE5, 0x03B5, // GREEK SMALL LETTER EPSILON - 0xE6, 0x03B6, // GREEK SMALL LETTER ZETA - 0xE7, 0x03B7, // GREEK SMALL LETTER ETA - 0xE8, 0x03B8, // GREEK SMALL LETTER THETA - 0xE9, 0x03B9, // GREEK SMALL LETTER IOTA - 0xEA, 0x03BA, // GREEK SMALL LETTER KAPPA - 0xEB, 0x03BB, // GREEK SMALL LETTER LAMDA - 0xEC, 0x03BC, // GREEK SMALL LETTER MU - 0xED, 0x03BD, // GREEK SMALL LETTER NU - 0xEE, 0x03BE, // GREEK SMALL LETTER XI - 0xEF, 0x03BF, // GREEK SMALL LETTER OMICRON - 0xF0, 0x03C0, // GREEK SMALL LETTER PI - 0xF1, 0x03C1, // GREEK SMALL LETTER RHO - 0xF2, 0x03C2, // GREEK SMALL LETTER FINAL SIGMA - 0xF3, 0x03C3, // GREEK SMALL LETTER SIGMA - 0xF4, 0x03C4, // GREEK SMALL LETTER TAU - 0xF5, 0x03C5, // GREEK SMALL LETTER UPSILON - 0xF6, 0x03C6, // GREEK SMALL LETTER PHI - 0xF7, 0x03C7, // GREEK SMALL LETTER CHI - 0xF8, 0x03C8, // GREEK SMALL LETTER PSI - 0xF9, 0x03C9, // GREEK SMALL LETTER OMEGA - 0xFA, 0x03CA, // GREEK SMALL LETTER IOTA WITH DIALYTIKA - 0xFB, 0x03CB, // GREEK SMALL LETTER UPSILON WITH DIALYTIKA - 0xFC, 0x03CC, // GREEK SMALL LETTER OMICRON WITH TONOS - 0xFD, 0x03CD, // GREEK SMALL LETTER UPSILON WITH TONOS - 0xFE, 0x03CE, // GREEK SMALL LETTER OMEGA WITH TONOS - -1, -1}; - -NSEncodingRegistration(iso8859_7, kCFStringEncodingISOLatinGreek); diff --git a/Foundation/NSString/Encoding/8859-8.h b/Foundation/NSString/Encoding/8859-8.h deleted file mode 100644 index 9a7d5949..00000000 --- a/Foundation/NSString/Encoding/8859-8.h +++ /dev/null @@ -1,227 +0,0 @@ -// 8859-8, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_8[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA2, 0x00A2, // CENT SIGN - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x00A4, // CURRENCY SIGN - 0xA5, 0x00A5, // YEN SIGN - 0xA6, 0x00A6, // BROKEN BAR - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00A8, // DIAERESIS - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x00D7, // MULTIPLICATION SIGN - 0xAB, 0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xAC, 0x00AC, // NOT SIGN - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x00AE, // REGISTERED SIGN - 0xAF, 0x00AF, // MACRON - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x00B1, // PLUS-MINUS SIGN - 0xB2, 0x00B2, // SUPERSCRIPT TWO - 0xB3, 0x00B3, // SUPERSCRIPT THREE - 0xB4, 0x00B4, // ACUTE ACCENT - 0xB5, 0x00B5, // MICRO SIGN - 0xB6, 0x00B6, // PILCROW SIGN - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x00B8, // CEDILLA - 0xB9, 0x00B9, // SUPERSCRIPT ONE - 0xBA, 0x00F7, // DIVISION SIGN - 0xBB, 0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xBC, 0x00BC, // VULGAR FRACTION ONE QUARTER - 0xBD, 0x00BD, // VULGAR FRACTION ONE HALF - 0xBE, 0x00BE, // VULGAR FRACTION THREE QUARTERS - 0xDF, 0x2017, // DOUBLE LOW LINE - 0xE0, 0x05D0, // HEBREW LETTER ALEF - 0xE1, 0x05D1, // HEBREW LETTER BET - 0xE2, 0x05D2, // HEBREW LETTER GIMEL - 0xE3, 0x05D3, // HEBREW LETTER DALET - 0xE4, 0x05D4, // HEBREW LETTER HE - 0xE5, 0x05D5, // HEBREW LETTER VAV - 0xE6, 0x05D6, // HEBREW LETTER ZAYIN - 0xE7, 0x05D7, // HEBREW LETTER HET - 0xE8, 0x05D8, // HEBREW LETTER TET - 0xE9, 0x05D9, // HEBREW LETTER YOD - 0xEA, 0x05DA, // HEBREW LETTER FINAL KAF - 0xEB, 0x05DB, // HEBREW LETTER KAF - 0xEC, 0x05DC, // HEBREW LETTER LAMED - 0xED, 0x05DD, // HEBREW LETTER FINAL MEM - 0xEE, 0x05DE, // HEBREW LETTER MEM - 0xEF, 0x05DF, // HEBREW LETTER FINAL NUN - 0xF0, 0x05E0, // HEBREW LETTER NUN - 0xF1, 0x05E1, // HEBREW LETTER SAMEKH - 0xF2, 0x05E2, // HEBREW LETTER AYIN - 0xF3, 0x05E3, // HEBREW LETTER FINAL PE - 0xF4, 0x05E4, // HEBREW LETTER PE - 0xF5, 0x05E5, // HEBREW LETTER FINAL TSADI - 0xF6, 0x05E6, // HEBREW LETTER TSADI - 0xF7, 0x05E7, // HEBREW LETTER QOF - 0xF8, 0x05E8, // HEBREW LETTER RESH - 0xF9, 0x05E9, // HEBREW LETTER SHIN - 0xFA, 0x05EA, // HEBREW LETTER TAV - 0xFD, 0x200E, // LEFT-TO-RIGHT MARK - 0xFE, 0x200F, // RIGHT-TO-LEFT MARK - -1, -1}; - -NSEncodingRegistration(iso8859_8, kCFStringEncodingISOLatinHebrew); diff --git a/Foundation/NSString/Encoding/8859-9.h b/Foundation/NSString/Encoding/8859-9.h deleted file mode 100644 index ba112522..00000000 --- a/Foundation/NSString/Encoding/8859-9.h +++ /dev/null @@ -1,263 +0,0 @@ -// 8859-9, to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t iso8859_9[] = { - 0x00, 0x0000, // NULL - 0x01, 0x0001, // START OF HEADING - 0x02, 0x0002, // START OF TEXT - 0x03, 0x0003, // END OF TEXT - 0x04, 0x0004, // END OF TRANSMISSION - 0x05, 0x0005, // ENQUIRY - 0x06, 0x0006, // ACKNOWLEDGE - 0x07, 0x0007, // BELL - 0x08, 0x0008, // BACKSPACE - 0x09, 0x0009, // HORIZONTAL TABULATION - 0x0A, 0x000A, // LINE FEED - 0x0B, 0x000B, // VERTICAL TABULATION - 0x0C, 0x000C, // FORM FEED - 0x0D, 0x000D, // CARRIAGE RETURN - 0x0E, 0x000E, // SHIFT OUT - 0x0F, 0x000F, // SHIFT IN - 0x10, 0x0010, // DATA LINK ESCAPE - 0x11, 0x0011, // DEVICE CONTROL ONE - 0x12, 0x0012, // DEVICE CONTROL TWO - 0x13, 0x0013, // DEVICE CONTROL THREE - 0x14, 0x0014, // DEVICE CONTROL FOUR - 0x15, 0x0015, // NEGATIVE ACKNOWLEDGE - 0x16, 0x0016, // SYNCHRONOUS IDLE - 0x17, 0x0017, // END OF TRANSMISSION BLOCK - 0x18, 0x0018, // CANCEL - 0x19, 0x0019, // END OF MEDIUM - 0x1A, 0x001A, // SUBSTITUTE - 0x1B, 0x001B, // ESCAPE - 0x1C, 0x001C, // FILE SEPARATOR - 0x1D, 0x001D, // GROUP SEPARATOR - 0x1E, 0x001E, // RECORD SEPARATOR - 0x1F, 0x001F, // UNIT SEPARATOR - 0x20, 0x0020, // SPACE - 0x21, 0x0021, // EXCLAMATION MARK - 0x22, 0x0022, // QUOTATION MARK - 0x23, 0x0023, // NUMBER SIGN - 0x24, 0x0024, // DOLLAR SIGN - 0x25, 0x0025, // PERCENT SIGN - 0x26, 0x0026, // AMPERSAND - 0x27, 0x0027, // APOSTROPHE - 0x28, 0x0028, // LEFT PARENTHESIS - 0x29, 0x0029, // RIGHT PARENTHESIS - 0x2A, 0x002A, // ASTERISK - 0x2B, 0x002B, // PLUS SIGN - 0x2C, 0x002C, // COMMA - 0x2D, 0x002D, // HYPHEN-MINUS - 0x2E, 0x002E, // FULL STOP - 0x2F, 0x002F, // SOLIDUS - 0x30, 0x0030, // DIGIT ZERO - 0x31, 0x0031, // DIGIT ONE - 0x32, 0x0032, // DIGIT TWO - 0x33, 0x0033, // DIGIT THREE - 0x34, 0x0034, // DIGIT FOUR - 0x35, 0x0035, // DIGIT FIVE - 0x36, 0x0036, // DIGIT SIX - 0x37, 0x0037, // DIGIT SEVEN - 0x38, 0x0038, // DIGIT EIGHT - 0x39, 0x0039, // DIGIT NINE - 0x3A, 0x003A, // COLON - 0x3B, 0x003B, // SEMICOLON - 0x3C, 0x003C, // LESS-THAN SIGN - 0x3D, 0x003D, // EQUALS SIGN - 0x3E, 0x003E, // GREATER-THAN SIGN - 0x3F, 0x003F, // QUESTION MARK - 0x40, 0x0040, // COMMERCIAL AT - 0x41, 0x0041, // LATIN CAPITAL LETTER A - 0x42, 0x0042, // LATIN CAPITAL LETTER B - 0x43, 0x0043, // LATIN CAPITAL LETTER C - 0x44, 0x0044, // LATIN CAPITAL LETTER D - 0x45, 0x0045, // LATIN CAPITAL LETTER E - 0x46, 0x0046, // LATIN CAPITAL LETTER F - 0x47, 0x0047, // LATIN CAPITAL LETTER G - 0x48, 0x0048, // LATIN CAPITAL LETTER H - 0x49, 0x0049, // LATIN CAPITAL LETTER I - 0x4A, 0x004A, // LATIN CAPITAL LETTER J - 0x4B, 0x004B, // LATIN CAPITAL LETTER K - 0x4C, 0x004C, // LATIN CAPITAL LETTER L - 0x4D, 0x004D, // LATIN CAPITAL LETTER M - 0x4E, 0x004E, // LATIN CAPITAL LETTER N - 0x4F, 0x004F, // LATIN CAPITAL LETTER O - 0x50, 0x0050, // LATIN CAPITAL LETTER P - 0x51, 0x0051, // LATIN CAPITAL LETTER Q - 0x52, 0x0052, // LATIN CAPITAL LETTER R - 0x53, 0x0053, // LATIN CAPITAL LETTER S - 0x54, 0x0054, // LATIN CAPITAL LETTER T - 0x55, 0x0055, // LATIN CAPITAL LETTER U - 0x56, 0x0056, // LATIN CAPITAL LETTER V - 0x57, 0x0057, // LATIN CAPITAL LETTER W - 0x58, 0x0058, // LATIN CAPITAL LETTER X - 0x59, 0x0059, // LATIN CAPITAL LETTER Y - 0x5A, 0x005A, // LATIN CAPITAL LETTER Z - 0x5B, 0x005B, // LEFT SQUARE BRACKET - 0x5C, 0x005C, // REVERSE SOLIDUS - 0x5D, 0x005D, // RIGHT SQUARE BRACKET - 0x5E, 0x005E, // CIRCUMFLEX ACCENT - 0x5F, 0x005F, // LOW LINE - 0x60, 0x0060, // GRAVE ACCENT - 0x61, 0x0061, // LATIN SMALL LETTER A - 0x62, 0x0062, // LATIN SMALL LETTER B - 0x63, 0x0063, // LATIN SMALL LETTER C - 0x64, 0x0064, // LATIN SMALL LETTER D - 0x65, 0x0065, // LATIN SMALL LETTER E - 0x66, 0x0066, // LATIN SMALL LETTER F - 0x67, 0x0067, // LATIN SMALL LETTER G - 0x68, 0x0068, // LATIN SMALL LETTER H - 0x69, 0x0069, // LATIN SMALL LETTER I - 0x6A, 0x006A, // LATIN SMALL LETTER J - 0x6B, 0x006B, // LATIN SMALL LETTER K - 0x6C, 0x006C, // LATIN SMALL LETTER L - 0x6D, 0x006D, // LATIN SMALL LETTER M - 0x6E, 0x006E, // LATIN SMALL LETTER N - 0x6F, 0x006F, // LATIN SMALL LETTER O - 0x70, 0x0070, // LATIN SMALL LETTER P - 0x71, 0x0071, // LATIN SMALL LETTER Q - 0x72, 0x0072, // LATIN SMALL LETTER R - 0x73, 0x0073, // LATIN SMALL LETTER S - 0x74, 0x0074, // LATIN SMALL LETTER T - 0x75, 0x0075, // LATIN SMALL LETTER U - 0x76, 0x0076, // LATIN SMALL LETTER V - 0x77, 0x0077, // LATIN SMALL LETTER W - 0x78, 0x0078, // LATIN SMALL LETTER X - 0x79, 0x0079, // LATIN SMALL LETTER Y - 0x7A, 0x007A, // LATIN SMALL LETTER Z - 0x7B, 0x007B, // LEFT CURLY BRACKET - 0x7C, 0x007C, // VERTICAL LINE - 0x7D, 0x007D, // RIGHT CURLY BRACKET - 0x7E, 0x007E, // TILDE - 0x7F, 0x007F, // DELETE - 0x80, 0x0080, // - 0x81, 0x0081, // - 0x82, 0x0082, // - 0x83, 0x0083, // - 0x84, 0x0084, // - 0x85, 0x0085, // - 0x86, 0x0086, // - 0x87, 0x0087, // - 0x88, 0x0088, // - 0x89, 0x0089, // - 0x8A, 0x008A, // - 0x8B, 0x008B, // - 0x8C, 0x008C, // - 0x8D, 0x008D, // - 0x8E, 0x008E, // - 0x8F, 0x008F, // - 0x90, 0x0090, // - 0x91, 0x0091, // - 0x92, 0x0092, // - 0x93, 0x0093, // - 0x94, 0x0094, // - 0x95, 0x0095, // - 0x96, 0x0096, // - 0x97, 0x0097, // - 0x98, 0x0098, // - 0x99, 0x0099, // - 0x9A, 0x009A, // - 0x9B, 0x009B, // - 0x9C, 0x009C, // - 0x9D, 0x009D, // - 0x9E, 0x009E, // - 0x9F, 0x009F, // - 0xA0, 0x00A0, // NO-BREAK SPACE - 0xA1, 0x00A1, // INVERTED EXCLAMATION MARK - 0xA2, 0x00A2, // CENT SIGN - 0xA3, 0x00A3, // POUND SIGN - 0xA4, 0x00A4, // CURRENCY SIGN - 0xA5, 0x00A5, // YEN SIGN - 0xA6, 0x00A6, // BROKEN BAR - 0xA7, 0x00A7, // SECTION SIGN - 0xA8, 0x00A8, // DIAERESIS - 0xA9, 0x00A9, // COPYRIGHT SIGN - 0xAA, 0x00AA, // FEMININE ORDINAL INDICATOR - 0xAB, 0x00AB, // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xAC, 0x00AC, // NOT SIGN - 0xAD, 0x00AD, // SOFT HYPHEN - 0xAE, 0x00AE, // REGISTERED SIGN - 0xAF, 0x00AF, // MACRON - 0xB0, 0x00B0, // DEGREE SIGN - 0xB1, 0x00B1, // PLUS-MINUS SIGN - 0xB2, 0x00B2, // SUPERSCRIPT TWO - 0xB3, 0x00B3, // SUPERSCRIPT THREE - 0xB4, 0x00B4, // ACUTE ACCENT - 0xB5, 0x00B5, // MICRO SIGN - 0xB6, 0x00B6, // PILCROW SIGN - 0xB7, 0x00B7, // MIDDLE DOT - 0xB8, 0x00B8, // CEDILLA - 0xB9, 0x00B9, // SUPERSCRIPT ONE - 0xBA, 0x00BA, // MASCULINE ORDINAL INDICATOR - 0xBB, 0x00BB, // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - 0xBC, 0x00BC, // VULGAR FRACTION ONE QUARTER - 0xBD, 0x00BD, // VULGAR FRACTION ONE HALF - 0xBE, 0x00BE, // VULGAR FRACTION THREE QUARTERS - 0xBF, 0x00BF, // INVERTED QUESTION MARK - 0xC0, 0x00C0, // LATIN CAPITAL LETTER A WITH GRAVE - 0xC1, 0x00C1, // LATIN CAPITAL LETTER A WITH ACUTE - 0xC2, 0x00C2, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - 0xC3, 0x00C3, // LATIN CAPITAL LETTER A WITH TILDE - 0xC4, 0x00C4, // LATIN CAPITAL LETTER A WITH DIAERESIS - 0xC5, 0x00C5, // LATIN CAPITAL LETTER A WITH RING ABOVE - 0xC6, 0x00C6, // LATIN CAPITAL LETTER AE - 0xC7, 0x00C7, // LATIN CAPITAL LETTER C WITH CEDILLA - 0xC8, 0x00C8, // LATIN CAPITAL LETTER E WITH GRAVE - 0xC9, 0x00C9, // LATIN CAPITAL LETTER E WITH ACUTE - 0xCA, 0x00CA, // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - 0xCB, 0x00CB, // LATIN CAPITAL LETTER E WITH DIAERESIS - 0xCC, 0x00CC, // LATIN CAPITAL LETTER I WITH GRAVE - 0xCD, 0x00CD, // LATIN CAPITAL LETTER I WITH ACUTE - 0xCE, 0x00CE, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - 0xCF, 0x00CF, // LATIN CAPITAL LETTER I WITH DIAERESIS - 0xD0, 0x011E, // LATIN CAPITAL LETTER G WITH BREVE - 0xD1, 0x00D1, // LATIN CAPITAL LETTER N WITH TILDE - 0xD2, 0x00D2, // LATIN CAPITAL LETTER O WITH GRAVE - 0xD3, 0x00D3, // LATIN CAPITAL LETTER O WITH ACUTE - 0xD4, 0x00D4, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - 0xD5, 0x00D5, // LATIN CAPITAL LETTER O WITH TILDE - 0xD6, 0x00D6, // LATIN CAPITAL LETTER O WITH DIAERESIS - 0xD7, 0x00D7, // MULTIPLICATION SIGN - 0xD8, 0x00D8, // LATIN CAPITAL LETTER O WITH STROKE - 0xD9, 0x00D9, // LATIN CAPITAL LETTER U WITH GRAVE - 0xDA, 0x00DA, // LATIN CAPITAL LETTER U WITH ACUTE - 0xDB, 0x00DB, // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - 0xDC, 0x00DC, // LATIN CAPITAL LETTER U WITH DIAERESIS - 0xDD, 0x0130, // LATIN CAPITAL LETTER I WITH DOT ABOVE - 0xDE, 0x015E, // LATIN CAPITAL LETTER S WITH CEDILLA - 0xDF, 0x00DF, // LATIN SMALL LETTER SHARP S - 0xE0, 0x00E0, // LATIN SMALL LETTER A WITH GRAVE - 0xE1, 0x00E1, // LATIN SMALL LETTER A WITH ACUTE - 0xE2, 0x00E2, // LATIN SMALL LETTER A WITH CIRCUMFLEX - 0xE3, 0x00E3, // LATIN SMALL LETTER A WITH TILDE - 0xE4, 0x00E4, // LATIN SMALL LETTER A WITH DIAERESIS - 0xE5, 0x00E5, // LATIN SMALL LETTER A WITH RING ABOVE - 0xE6, 0x00E6, // LATIN SMALL LETTER AE - 0xE7, 0x00E7, // LATIN SMALL LETTER C WITH CEDILLA - 0xE8, 0x00E8, // LATIN SMALL LETTER E WITH GRAVE - 0xE9, 0x00E9, // LATIN SMALL LETTER E WITH ACUTE - 0xEA, 0x00EA, // LATIN SMALL LETTER E WITH CIRCUMFLEX - 0xEB, 0x00EB, // LATIN SMALL LETTER E WITH DIAERESIS - 0xEC, 0x00EC, // LATIN SMALL LETTER I WITH GRAVE - 0xED, 0x00ED, // LATIN SMALL LETTER I WITH ACUTE - 0xEE, 0x00EE, // LATIN SMALL LETTER I WITH CIRCUMFLEX - 0xEF, 0x00EF, // LATIN SMALL LETTER I WITH DIAERESIS - 0xF0, 0x011F, // LATIN SMALL LETTER G WITH BREVE - 0xF1, 0x00F1, // LATIN SMALL LETTER N WITH TILDE - 0xF2, 0x00F2, // LATIN SMALL LETTER O WITH GRAVE - 0xF3, 0x00F3, // LATIN SMALL LETTER O WITH ACUTE - 0xF4, 0x00F4, // LATIN SMALL LETTER O WITH CIRCUMFLEX - 0xF5, 0x00F5, // LATIN SMALL LETTER O WITH TILDE - 0xF6, 0x00F6, // LATIN SMALL LETTER O WITH DIAERESIS - 0xF7, 0x00F7, // DIVISION SIGN - 0xF8, 0x00F8, // LATIN SMALL LETTER O WITH STROKE - 0xF9, 0x00F9, // LATIN SMALL LETTER U WITH GRAVE - 0xFA, 0x00FA, // LATIN SMALL LETTER U WITH ACUTE - 0xFB, 0x00FB, // LATIN SMALL LETTER U WITH CIRCUMFLEX - 0xFC, 0x00FC, // LATIN SMALL LETTER U WITH DIAERESIS - 0xFD, 0x0131, // LATIN SMALL LETTER DOTLESS I - 0xFE, 0x015F, // LATIN SMALL LETTER S WITH CEDILLA - 0xFF, 0x00FF, // LATIN SMALL LETTER Y WITH DIAERESIS - -1, -1}; - -NSEncodingRegistration(iso8859_9, kCFStringEncodingISOLatin5); diff --git a/Foundation/NSString/Encoding/CP1250.h b/Foundation/NSString/Encoding/CP1250.h deleted file mode 100644 index c5313c09..00000000 --- a/Foundation/NSString/Encoding/CP1250.h +++ /dev/null @@ -1,261 +0,0 @@ -// clang-format off -// cp1250 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1250[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8A ,0x0160 //LATIN CAPITAL LETTER S WITH CARON - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x8C ,0x015A //LATIN CAPITAL LETTER S WITH ACUTE - ,0x8D ,0x0164 //LATIN CAPITAL LETTER T WITH CARON - ,0x8E ,0x017D //LATIN CAPITAL LETTER Z WITH CARON - ,0x8F ,0x0179 //LATIN CAPITAL LETTER Z WITH ACUTE - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9A ,0x0161 //LATIN SMALL LETTER S WITH CARON - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0x9C ,0x015B //LATIN SMALL LETTER S WITH ACUTE - ,0x9D ,0x0165 //LATIN SMALL LETTER T WITH CARON - ,0x9E ,0x017E //LATIN SMALL LETTER Z WITH CARON - ,0x9F ,0x017A //LATIN SMALL LETTER Z WITH ACUTE - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x02C7 //CARON - ,0xA2 ,0x02D8 //BREVE - ,0xA3 ,0x0141 //LATIN CAPITAL LETTER L WITH STROKE - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA5 ,0x0104 //LATIN CAPITAL LETTER A WITH OGONEK - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00A8 //DIAERESIS - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x015E //LATIN CAPITAL LETTER S WITH CEDILLA - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x017B //LATIN CAPITAL LETTER Z WITH DOT ABOVE - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x02DB //OGONEK - ,0xB3 ,0x0142 //LATIN SMALL LETTER L WITH STROKE - ,0xB4 ,0x00B4 //ACUTE ACCENT - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x00B8 //CEDILLA - ,0xB9 ,0x0105 //LATIN SMALL LETTER A WITH OGONEK - ,0xBA ,0x015F //LATIN SMALL LETTER S WITH CEDILLA - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x013D //LATIN CAPITAL LETTER L WITH CARON - ,0xBD ,0x02DD //DOUBLE ACUTE ACCENT - ,0xBE ,0x013E //LATIN SMALL LETTER L WITH CARON - ,0xBF ,0x017C //LATIN SMALL LETTER Z WITH DOT ABOVE - ,0xC0 ,0x0154 //LATIN CAPITAL LETTER R WITH ACUTE - ,0xC1 ,0x00C1 //LATIN CAPITAL LETTER A WITH ACUTE - ,0xC2 ,0x00C2 //LATIN CAPITAL LETTER A WITH CIRCUMFLEX - ,0xC3 ,0x0102 //LATIN CAPITAL LETTER A WITH BREVE - ,0xC4 ,0x00C4 //LATIN CAPITAL LETTER A WITH DIAERESIS - ,0xC5 ,0x0139 //LATIN CAPITAL LETTER L WITH ACUTE - ,0xC6 ,0x0106 //LATIN CAPITAL LETTER C WITH ACUTE - ,0xC7 ,0x00C7 //LATIN CAPITAL LETTER C WITH CEDILLA - ,0xC8 ,0x010C //LATIN CAPITAL LETTER C WITH CARON - ,0xC9 ,0x00C9 //LATIN CAPITAL LETTER E WITH ACUTE - ,0xCA ,0x0118 //LATIN CAPITAL LETTER E WITH OGONEK - ,0xCB ,0x00CB //LATIN CAPITAL LETTER E WITH DIAERESIS - ,0xCC ,0x011A //LATIN CAPITAL LETTER E WITH CARON - ,0xCD ,0x00CD //LATIN CAPITAL LETTER I WITH ACUTE - ,0xCE ,0x00CE //LATIN CAPITAL LETTER I WITH CIRCUMFLEX - ,0xCF ,0x010E //LATIN CAPITAL LETTER D WITH CARON - ,0xD0 ,0x0110 //LATIN CAPITAL LETTER D WITH STROKE - ,0xD1 ,0x0143 //LATIN CAPITAL LETTER N WITH ACUTE - ,0xD2 ,0x0147 //LATIN CAPITAL LETTER N WITH CARON - ,0xD3 ,0x00D3 //LATIN CAPITAL LETTER O WITH ACUTE - ,0xD4 ,0x00D4 //LATIN CAPITAL LETTER O WITH CIRCUMFLEX - ,0xD5 ,0x0150 //LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - ,0xD6 ,0x00D6 //LATIN CAPITAL LETTER O WITH DIAERESIS - ,0xD7 ,0x00D7 //MULTIPLICATION SIGN - ,0xD8 ,0x0158 //LATIN CAPITAL LETTER R WITH CARON - ,0xD9 ,0x016E //LATIN CAPITAL LETTER U WITH RING ABOVE - ,0xDA ,0x00DA //LATIN CAPITAL LETTER U WITH ACUTE - ,0xDB ,0x0170 //LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - ,0xDC ,0x00DC //LATIN CAPITAL LETTER U WITH DIAERESIS - ,0xDD ,0x00DD //LATIN CAPITAL LETTER Y WITH ACUTE - ,0xDE ,0x0162 //LATIN CAPITAL LETTER T WITH CEDILLA - ,0xDF ,0x00DF //LATIN SMALL LETTER SHARP S - ,0xE0 ,0x0155 //LATIN SMALL LETTER R WITH ACUTE - ,0xE1 ,0x00E1 //LATIN SMALL LETTER A WITH ACUTE - ,0xE2 ,0x00E2 //LATIN SMALL LETTER A WITH CIRCUMFLEX - ,0xE3 ,0x0103 //LATIN SMALL LETTER A WITH BREVE - ,0xE4 ,0x00E4 //LATIN SMALL LETTER A WITH DIAERESIS - ,0xE5 ,0x013A //LATIN SMALL LETTER L WITH ACUTE - ,0xE6 ,0x0107 //LATIN SMALL LETTER C WITH ACUTE - ,0xE7 ,0x00E7 //LATIN SMALL LETTER C WITH CEDILLA - ,0xE8 ,0x010D //LATIN SMALL LETTER C WITH CARON - ,0xE9 ,0x00E9 //LATIN SMALL LETTER E WITH ACUTE - ,0xEA ,0x0119 //LATIN SMALL LETTER E WITH OGONEK - ,0xEB ,0x00EB //LATIN SMALL LETTER E WITH DIAERESIS - ,0xEC ,0x011B //LATIN SMALL LETTER E WITH CARON - ,0xED ,0x00ED //LATIN SMALL LETTER I WITH ACUTE - ,0xEE ,0x00EE //LATIN SMALL LETTER I WITH CIRCUMFLEX - ,0xEF ,0x010F //LATIN SMALL LETTER D WITH CARON - ,0xF0 ,0x0111 //LATIN SMALL LETTER D WITH STROKE - ,0xF1 ,0x0144 //LATIN SMALL LETTER N WITH ACUTE - ,0xF2 ,0x0148 //LATIN SMALL LETTER N WITH CARON - ,0xF3 ,0x00F3 //LATIN SMALL LETTER O WITH ACUTE - ,0xF4 ,0x00F4 //LATIN SMALL LETTER O WITH CIRCUMFLEX - ,0xF5 ,0x0151 //LATIN SMALL LETTER O WITH DOUBLE ACUTE - ,0xF6 ,0x00F6 //LATIN SMALL LETTER O WITH DIAERESIS - ,0xF7 ,0x00F7 //DIVISION SIGN - ,0xF8 ,0x0159 //LATIN SMALL LETTER R WITH CARON - ,0xF9 ,0x016F //LATIN SMALL LETTER U WITH RING ABOVE - ,0xFA ,0x00FA //LATIN SMALL LETTER U WITH ACUTE - ,0xFB ,0x0171 //LATIN SMALL LETTER U WITH DOUBLE ACUTE - ,0xFC ,0x00FC //LATIN SMALL LETTER U WITH DIAERESIS - ,0xFD ,0x00FD //LATIN SMALL LETTER Y WITH ACUTE - ,0xFE ,0x0163 //LATIN SMALL LETTER T WITH CEDILLA - ,0xFF ,0x02D9 //DOT ABOVE - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp1250, kCFStringEncodingWindowsLatin2); diff --git a/Foundation/NSString/Encoding/CP1251.h b/Foundation/NSString/Encoding/CP1251.h deleted file mode 100644 index ab874502..00000000 --- a/Foundation/NSString/Encoding/CP1251.h +++ /dev/null @@ -1,265 +0,0 @@ -// clang-format off -// cp1251 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1251[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x0402 //CYRILLIC CAPITAL LETTER DJE - ,0x81 ,0x0403 //CYRILLIC CAPITAL LETTER GJE - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x83 ,0x0453 //CYRILLIC SMALL LETTER GJE - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x88 ,0x20AC //EURO SIGN - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8A ,0x0409 //CYRILLIC CAPITAL LETTER LJE - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x8C ,0x040A //CYRILLIC CAPITAL LETTER NJE - ,0x8D ,0x040C //CYRILLIC CAPITAL LETTER KJE - ,0x8E ,0x040B //CYRILLIC CAPITAL LETTER TSHE - ,0x8F ,0x040F //CYRILLIC CAPITAL LETTER DZHE - ,0x90 ,0x0452 //CYRILLIC SMALL LETTER DJE - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9A ,0x0459 //CYRILLIC SMALL LETTER LJE - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0x9C ,0x045A //CYRILLIC SMALL LETTER NJE - ,0x9D ,0x045C //CYRILLIC SMALL LETTER KJE - ,0x9E ,0x045B //CYRILLIC SMALL LETTER TSHE - ,0x9F ,0x045F //CYRILLIC SMALL LETTER DZHE - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x040E //CYRILLIC CAPITAL LETTER SHORT U - ,0xA2 ,0x045E //CYRILLIC SMALL LETTER SHORT U - ,0xA3 ,0x0408 //CYRILLIC CAPITAL LETTER JE - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA5 ,0x0490 //CYRILLIC CAPITAL LETTER GHE WITH UPTURN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x0401 //CYRILLIC CAPITAL LETTER IO - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x0404 //CYRILLIC CAPITAL LETTER UKRAINIAN IE - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x0407 //CYRILLIC CAPITAL LETTER YI - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x0406 //CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - ,0xB3 ,0x0456 //CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - ,0xB4 ,0x0491 //CYRILLIC SMALL LETTER GHE WITH UPTURN - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x0451 //CYRILLIC SMALL LETTER IO - ,0xB9 ,0x2116 //NUMERO SIGN - ,0xBA ,0x0454 //CYRILLIC SMALL LETTER UKRAINIAN IE - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x0458 //CYRILLIC SMALL LETTER JE - ,0xBD ,0x0405 //CYRILLIC CAPITAL LETTER DZE - ,0xBE ,0x0455 //CYRILLIC SMALL LETTER DZE - ,0xBF ,0x0457 //CYRILLIC SMALL LETTER YI - ,0xC0 ,0x0410 //CYRILLIC CAPITAL LETTER A - ,0xC1 ,0x0411 //CYRILLIC CAPITAL LETTER BE - ,0xC2 ,0x0412 //CYRILLIC CAPITAL LETTER VE - ,0xC3 ,0x0413 //CYRILLIC CAPITAL LETTER GHE - ,0xC4 ,0x0414 //CYRILLIC CAPITAL LETTER DE - ,0xC5 ,0x0415 //CYRILLIC CAPITAL LETTER IE - ,0xC6 ,0x0416 //CYRILLIC CAPITAL LETTER ZHE - ,0xC7 ,0x0417 //CYRILLIC CAPITAL LETTER ZE - ,0xC8 ,0x0418 //CYRILLIC CAPITAL LETTER I - ,0xC9 ,0x0419 //CYRILLIC CAPITAL LETTER SHORT I - ,0xCA ,0x041A //CYRILLIC CAPITAL LETTER KA - ,0xCB ,0x041B //CYRILLIC CAPITAL LETTER EL - ,0xCC ,0x041C //CYRILLIC CAPITAL LETTER EM - ,0xCD ,0x041D //CYRILLIC CAPITAL LETTER EN - ,0xCE ,0x041E //CYRILLIC CAPITAL LETTER O - ,0xCF ,0x041F //CYRILLIC CAPITAL LETTER PE - ,0xD0 ,0x0420 //CYRILLIC CAPITAL LETTER ER - ,0xD1 ,0x0421 //CYRILLIC CAPITAL LETTER ES - ,0xD2 ,0x0422 //CYRILLIC CAPITAL LETTER TE - ,0xD3 ,0x0423 //CYRILLIC CAPITAL LETTER U - ,0xD4 ,0x0424 //CYRILLIC CAPITAL LETTER EF - ,0xD5 ,0x0425 //CYRILLIC CAPITAL LETTER HA - ,0xD6 ,0x0426 //CYRILLIC CAPITAL LETTER TSE - ,0xD7 ,0x0427 //CYRILLIC CAPITAL LETTER CHE - ,0xD8 ,0x0428 //CYRILLIC CAPITAL LETTER SHA - ,0xD9 ,0x0429 //CYRILLIC CAPITAL LETTER SHCHA - ,0xDA ,0x042A //CYRILLIC CAPITAL LETTER HARD SIGN - ,0xDB ,0x042B //CYRILLIC CAPITAL LETTER YERU - ,0xDC ,0x042C //CYRILLIC CAPITAL LETTER SOFT SIGN - ,0xDD ,0x042D //CYRILLIC CAPITAL LETTER E - ,0xDE ,0x042E //CYRILLIC CAPITAL LETTER YU - ,0xDF ,0x042F //CYRILLIC CAPITAL LETTER YA - ,0xE0 ,0x0430 //CYRILLIC SMALL LETTER A - ,0xE1 ,0x0431 //CYRILLIC SMALL LETTER BE - ,0xE2 ,0x0432 //CYRILLIC SMALL LETTER VE - ,0xE3 ,0x0433 //CYRILLIC SMALL LETTER GHE - ,0xE4 ,0x0434 //CYRILLIC SMALL LETTER DE - ,0xE5 ,0x0435 //CYRILLIC SMALL LETTER IE - ,0xE6 ,0x0436 //CYRILLIC SMALL LETTER ZHE - ,0xE7 ,0x0437 //CYRILLIC SMALL LETTER ZE - ,0xE8 ,0x0438 //CYRILLIC SMALL LETTER I - ,0xE9 ,0x0439 //CYRILLIC SMALL LETTER SHORT I - ,0xEA ,0x043A //CYRILLIC SMALL LETTER KA - ,0xEB ,0x043B //CYRILLIC SMALL LETTER EL - ,0xEC ,0x043C //CYRILLIC SMALL LETTER EM - ,0xED ,0x043D //CYRILLIC SMALL LETTER EN - ,0xEE ,0x043E //CYRILLIC SMALL LETTER O - ,0xEF ,0x043F //CYRILLIC SMALL LETTER PE - ,0xF0 ,0x0440 //CYRILLIC SMALL LETTER ER - ,0xF1 ,0x0441 //CYRILLIC SMALL LETTER ES - ,0xF2 ,0x0442 //CYRILLIC SMALL LETTER TE - ,0xF3 ,0x0443 //CYRILLIC SMALL LETTER U - ,0xF4 ,0x0444 //CYRILLIC SMALL LETTER EF - ,0xF5 ,0x0445 //CYRILLIC SMALL LETTER HA - ,0xF6 ,0x0446 //CYRILLIC SMALL LETTER TSE - ,0xF7 ,0x0447 //CYRILLIC SMALL LETTER CHE - ,0xF8 ,0x0448 //CYRILLIC SMALL LETTER SHA - ,0xF9 ,0x0449 //CYRILLIC SMALL LETTER SHCHA - ,0xFA ,0x044A //CYRILLIC SMALL LETTER HARD SIGN - ,0xFB ,0x044B //CYRILLIC SMALL LETTER YERU - ,0xFC ,0x044C //CYRILLIC SMALL LETTER SOFT SIGN - ,0xFD ,0x044D //CYRILLIC SMALL LETTER E - ,0xFE ,0x044E //CYRILLIC SMALL LETTER YU - ,0xFF ,0x044F //CYRILLIC SMALL LETTER YA - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp1251, kCFStringEncodingWindowsCyrillic); diff --git a/Foundation/NSString/Encoding/CP1252.h b/Foundation/NSString/Encoding/CP1252.h deleted file mode 100644 index 2a7773c4..00000000 --- a/Foundation/NSString/Encoding/CP1252.h +++ /dev/null @@ -1,261 +0,0 @@ -// clang-format off -// cp1252 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1252[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x83 ,0x0192 //LATIN SMALL LETTER F WITH HOOK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x88 ,0x02C6 //MODIFIER LETTER CIRCUMFLEX ACCENT - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8A ,0x0160 //LATIN CAPITAL LETTER S WITH CARON - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x8C ,0x0152 //LATIN CAPITAL LIGATURE OE - ,0x8E ,0x017D //LATIN CAPITAL LETTER Z WITH CARON - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x98 ,0x02DC //SMALL TILDE - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9A ,0x0161 //LATIN SMALL LETTER S WITH CARON - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0x9C ,0x0153 //LATIN SMALL LIGATURE OE - ,0x9E ,0x017E //LATIN SMALL LETTER Z WITH CARON - ,0x9F ,0x0178 //LATIN CAPITAL LETTER Y WITH DIAERESIS - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x00A1 //INVERTED EXCLAMATION MARK - ,0xA2 ,0x00A2 //CENT SIGN - ,0xA3 ,0x00A3 //POUND SIGN - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA5 ,0x00A5 //YEN SIGN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00A8 //DIAERESIS - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x00AA //FEMININE ORDINAL INDICATOR - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x00AF //MACRON - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x00B2 //SUPERSCRIPT TWO - ,0xB3 ,0x00B3 //SUPERSCRIPT THREE - ,0xB4 ,0x00B4 //ACUTE ACCENT - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x00B8 //CEDILLA - ,0xB9 ,0x00B9 //SUPERSCRIPT ONE - ,0xBA ,0x00BA //MASCULINE ORDINAL INDICATOR - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x00BC //VULGAR FRACTION ONE QUARTER - ,0xBD ,0x00BD //VULGAR FRACTION ONE HALF - ,0xBE ,0x00BE //VULGAR FRACTION THREE QUARTERS - ,0xBF ,0x00BF //INVERTED QUESTION MARK - ,0xC0 ,0x00C0 //LATIN CAPITAL LETTER A WITH GRAVE - ,0xC1 ,0x00C1 //LATIN CAPITAL LETTER A WITH ACUTE - ,0xC2 ,0x00C2 //LATIN CAPITAL LETTER A WITH CIRCUMFLEX - ,0xC3 ,0x00C3 //LATIN CAPITAL LETTER A WITH TILDE - ,0xC4 ,0x00C4 //LATIN CAPITAL LETTER A WITH DIAERESIS - ,0xC5 ,0x00C5 //LATIN CAPITAL LETTER A WITH RING ABOVE - ,0xC6 ,0x00C6 //LATIN CAPITAL LETTER AE - ,0xC7 ,0x00C7 //LATIN CAPITAL LETTER C WITH CEDILLA - ,0xC8 ,0x00C8 //LATIN CAPITAL LETTER E WITH GRAVE - ,0xC9 ,0x00C9 //LATIN CAPITAL LETTER E WITH ACUTE - ,0xCA ,0x00CA //LATIN CAPITAL LETTER E WITH CIRCUMFLEX - ,0xCB ,0x00CB //LATIN CAPITAL LETTER E WITH DIAERESIS - ,0xCC ,0x00CC //LATIN CAPITAL LETTER I WITH GRAVE - ,0xCD ,0x00CD //LATIN CAPITAL LETTER I WITH ACUTE - ,0xCE ,0x00CE //LATIN CAPITAL LETTER I WITH CIRCUMFLEX - ,0xCF ,0x00CF //LATIN CAPITAL LETTER I WITH DIAERESIS - ,0xD0 ,0x00D0 //LATIN CAPITAL LETTER ETH - ,0xD1 ,0x00D1 //LATIN CAPITAL LETTER N WITH TILDE - ,0xD2 ,0x00D2 //LATIN CAPITAL LETTER O WITH GRAVE - ,0xD3 ,0x00D3 //LATIN CAPITAL LETTER O WITH ACUTE - ,0xD4 ,0x00D4 //LATIN CAPITAL LETTER O WITH CIRCUMFLEX - ,0xD5 ,0x00D5 //LATIN CAPITAL LETTER O WITH TILDE - ,0xD6 ,0x00D6 //LATIN CAPITAL LETTER O WITH DIAERESIS - ,0xD7 ,0x00D7 //MULTIPLICATION SIGN - ,0xD8 ,0x00D8 //LATIN CAPITAL LETTER O WITH STROKE - ,0xD9 ,0x00D9 //LATIN CAPITAL LETTER U WITH GRAVE - ,0xDA ,0x00DA //LATIN CAPITAL LETTER U WITH ACUTE - ,0xDB ,0x00DB //LATIN CAPITAL LETTER U WITH CIRCUMFLEX - ,0xDC ,0x00DC //LATIN CAPITAL LETTER U WITH DIAERESIS - ,0xDD ,0x00DD //LATIN CAPITAL LETTER Y WITH ACUTE - ,0xDE ,0x00DE //LATIN CAPITAL LETTER THORN - ,0xDF ,0x00DF //LATIN SMALL LETTER SHARP S - ,0xE0 ,0x00E0 //LATIN SMALL LETTER A WITH GRAVE - ,0xE1 ,0x00E1 //LATIN SMALL LETTER A WITH ACUTE - ,0xE2 ,0x00E2 //LATIN SMALL LETTER A WITH CIRCUMFLEX - ,0xE3 ,0x00E3 //LATIN SMALL LETTER A WITH TILDE - ,0xE4 ,0x00E4 //LATIN SMALL LETTER A WITH DIAERESIS - ,0xE5 ,0x00E5 //LATIN SMALL LETTER A WITH RING ABOVE - ,0xE6 ,0x00E6 //LATIN SMALL LETTER AE - ,0xE7 ,0x00E7 //LATIN SMALL LETTER C WITH CEDILLA - ,0xE8 ,0x00E8 //LATIN SMALL LETTER E WITH GRAVE - ,0xE9 ,0x00E9 //LATIN SMALL LETTER E WITH ACUTE - ,0xEA ,0x00EA //LATIN SMALL LETTER E WITH CIRCUMFLEX - ,0xEB ,0x00EB //LATIN SMALL LETTER E WITH DIAERESIS - ,0xEC ,0x00EC //LATIN SMALL LETTER I WITH GRAVE - ,0xED ,0x00ED //LATIN SMALL LETTER I WITH ACUTE - ,0xEE ,0x00EE //LATIN SMALL LETTER I WITH CIRCUMFLEX - ,0xEF ,0x00EF //LATIN SMALL LETTER I WITH DIAERESIS - ,0xF0 ,0x00F0 //LATIN SMALL LETTER ETH - ,0xF1 ,0x00F1 //LATIN SMALL LETTER N WITH TILDE - ,0xF2 ,0x00F2 //LATIN SMALL LETTER O WITH GRAVE - ,0xF3 ,0x00F3 //LATIN SMALL LETTER O WITH ACUTE - ,0xF4 ,0x00F4 //LATIN SMALL LETTER O WITH CIRCUMFLEX - ,0xF5 ,0x00F5 //LATIN SMALL LETTER O WITH TILDE - ,0xF6 ,0x00F6 //LATIN SMALL LETTER O WITH DIAERESIS - ,0xF7 ,0x00F7 //DIVISION SIGN - ,0xF8 ,0x00F8 //LATIN SMALL LETTER O WITH STROKE - ,0xF9 ,0x00F9 //LATIN SMALL LETTER U WITH GRAVE - ,0xFA ,0x00FA //LATIN SMALL LETTER U WITH ACUTE - ,0xFB ,0x00FB //LATIN SMALL LETTER U WITH CIRCUMFLEX - ,0xFC ,0x00FC //LATIN SMALL LETTER U WITH DIAERESIS - ,0xFD ,0x00FD //LATIN SMALL LETTER Y WITH ACUTE - ,0xFE ,0x00FE //LATIN SMALL LETTER THORN - ,0xFF ,0x00FF //LATIN SMALL LETTER Y WITH DIAERESIS - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp1252, kCFStringEncodingWindowsLatin1); diff --git a/Foundation/NSString/Encoding/CP1253.h b/Foundation/NSString/Encoding/CP1253.h deleted file mode 100644 index 091c8af0..00000000 --- a/Foundation/NSString/Encoding/CP1253.h +++ /dev/null @@ -1,249 +0,0 @@ -// clang-format off -// cp1253 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1253[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x83 ,0x0192 //LATIN SMALL LETTER F WITH HOOK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x0385 //GREEK DIALYTIKA TONOS - ,0xA2 ,0x0386 //GREEK CAPITAL LETTER ALPHA WITH TONOS - ,0xA3 ,0x00A3 //POUND SIGN - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA5 ,0x00A5 //YEN SIGN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00A8 //DIAERESIS - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x2015 //HORIZONTAL BAR - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x00B2 //SUPERSCRIPT TWO - ,0xB3 ,0x00B3 //SUPERSCRIPT THREE - ,0xB4 ,0x0384 //GREEK TONOS - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x0388 //GREEK CAPITAL LETTER EPSILON WITH TONOS - ,0xB9 ,0x0389 //GREEK CAPITAL LETTER ETA WITH TONOS - ,0xBA ,0x038A //GREEK CAPITAL LETTER IOTA WITH TONOS - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x038C //GREEK CAPITAL LETTER OMICRON WITH TONOS - ,0xBD ,0x00BD //VULGAR FRACTION ONE HALF - ,0xBE ,0x038E //GREEK CAPITAL LETTER UPSILON WITH TONOS - ,0xBF ,0x038F //GREEK CAPITAL LETTER OMEGA WITH TONOS - ,0xC0 ,0x0390 //GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - ,0xC1 ,0x0391 //GREEK CAPITAL LETTER ALPHA - ,0xC2 ,0x0392 //GREEK CAPITAL LETTER BETA - ,0xC3 ,0x0393 //GREEK CAPITAL LETTER GAMMA - ,0xC4 ,0x0394 //GREEK CAPITAL LETTER DELTA - ,0xC5 ,0x0395 //GREEK CAPITAL LETTER EPSILON - ,0xC6 ,0x0396 //GREEK CAPITAL LETTER ZETA - ,0xC7 ,0x0397 //GREEK CAPITAL LETTER ETA - ,0xC8 ,0x0398 //GREEK CAPITAL LETTER THETA - ,0xC9 ,0x0399 //GREEK CAPITAL LETTER IOTA - ,0xCA ,0x039A //GREEK CAPITAL LETTER KAPPA - ,0xCB ,0x039B //GREEK CAPITAL LETTER LAMDA - ,0xCC ,0x039C //GREEK CAPITAL LETTER MU - ,0xCD ,0x039D //GREEK CAPITAL LETTER NU - ,0xCE ,0x039E //GREEK CAPITAL LETTER XI - ,0xCF ,0x039F //GREEK CAPITAL LETTER OMICRON - ,0xD0 ,0x03A0 //GREEK CAPITAL LETTER PI - ,0xD1 ,0x03A1 //GREEK CAPITAL LETTER RHO - ,0xD3 ,0x03A3 //GREEK CAPITAL LETTER SIGMA - ,0xD4 ,0x03A4 //GREEK CAPITAL LETTER TAU - ,0xD5 ,0x03A5 //GREEK CAPITAL LETTER UPSILON - ,0xD6 ,0x03A6 //GREEK CAPITAL LETTER PHI - ,0xD7 ,0x03A7 //GREEK CAPITAL LETTER CHI - ,0xD8 ,0x03A8 //GREEK CAPITAL LETTER PSI - ,0xD9 ,0x03A9 //GREEK CAPITAL LETTER OMEGA - ,0xDA ,0x03AA //GREEK CAPITAL LETTER IOTA WITH DIALYTIKA - ,0xDB ,0x03AB //GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA - ,0xDC ,0x03AC //GREEK SMALL LETTER ALPHA WITH TONOS - ,0xDD ,0x03AD //GREEK SMALL LETTER EPSILON WITH TONOS - ,0xDE ,0x03AE //GREEK SMALL LETTER ETA WITH TONOS - ,0xDF ,0x03AF //GREEK SMALL LETTER IOTA WITH TONOS - ,0xE0 ,0x03B0 //GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS - ,0xE1 ,0x03B1 //GREEK SMALL LETTER ALPHA - ,0xE2 ,0x03B2 //GREEK SMALL LETTER BETA - ,0xE3 ,0x03B3 //GREEK SMALL LETTER GAMMA - ,0xE4 ,0x03B4 //GREEK SMALL LETTER DELTA - ,0xE5 ,0x03B5 //GREEK SMALL LETTER EPSILON - ,0xE6 ,0x03B6 //GREEK SMALL LETTER ZETA - ,0xE7 ,0x03B7 //GREEK SMALL LETTER ETA - ,0xE8 ,0x03B8 //GREEK SMALL LETTER THETA - ,0xE9 ,0x03B9 //GREEK SMALL LETTER IOTA - ,0xEA ,0x03BA //GREEK SMALL LETTER KAPPA - ,0xEB ,0x03BB //GREEK SMALL LETTER LAMDA - ,0xEC ,0x03BC //GREEK SMALL LETTER MU - ,0xED ,0x03BD //GREEK SMALL LETTER NU - ,0xEE ,0x03BE //GREEK SMALL LETTER XI - ,0xEF ,0x03BF //GREEK SMALL LETTER OMICRON - ,0xF0 ,0x03C0 //GREEK SMALL LETTER PI - ,0xF1 ,0x03C1 //GREEK SMALL LETTER RHO - ,0xF2 ,0x03C2 //GREEK SMALL LETTER FINAL SIGMA - ,0xF3 ,0x03C3 //GREEK SMALL LETTER SIGMA - ,0xF4 ,0x03C4 //GREEK SMALL LETTER TAU - ,0xF5 ,0x03C5 //GREEK SMALL LETTER UPSILON - ,0xF6 ,0x03C6 //GREEK SMALL LETTER PHI - ,0xF7 ,0x03C7 //GREEK SMALL LETTER CHI - ,0xF8 ,0x03C8 //GREEK SMALL LETTER PSI - ,0xF9 ,0x03C9 //GREEK SMALL LETTER OMEGA - ,0xFA ,0x03CA //GREEK SMALL LETTER IOTA WITH DIALYTIKA - ,0xFB ,0x03CB //GREEK SMALL LETTER UPSILON WITH DIALYTIKA - ,0xFC ,0x03CC //GREEK SMALL LETTER OMICRON WITH TONOS - ,0xFD ,0x03CD //GREEK SMALL LETTER UPSILON WITH TONOS - ,0xFE ,0x03CE //GREEK SMALL LETTER OMEGA WITH TONOS - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp1253, kCFStringEncodingWindowsGreek); diff --git a/Foundation/NSString/Encoding/CP1254.h b/Foundation/NSString/Encoding/CP1254.h deleted file mode 100644 index 06a74dba..00000000 --- a/Foundation/NSString/Encoding/CP1254.h +++ /dev/null @@ -1,259 +0,0 @@ -// clang-format off -// cp1254 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1254[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x83 ,0x0192 //LATIN SMALL LETTER F WITH HOOK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x88 ,0x02C6 //MODIFIER LETTER CIRCUMFLEX ACCENT - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8A ,0x0160 //LATIN CAPITAL LETTER S WITH CARON - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x8C ,0x0152 //LATIN CAPITAL LIGATURE OE - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x98 ,0x02DC //SMALL TILDE - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9A ,0x0161 //LATIN SMALL LETTER S WITH CARON - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0x9C ,0x0153 //LATIN SMALL LIGATURE OE - ,0x9F ,0x0178 //LATIN CAPITAL LETTER Y WITH DIAERESIS - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x00A1 //INVERTED EXCLAMATION MARK - ,0xA2 ,0x00A2 //CENT SIGN - ,0xA3 ,0x00A3 //POUND SIGN - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA5 ,0x00A5 //YEN SIGN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00A8 //DIAERESIS - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x00AA //FEMININE ORDINAL INDICATOR - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x00AF //MACRON - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x00B2 //SUPERSCRIPT TWO - ,0xB3 ,0x00B3 //SUPERSCRIPT THREE - ,0xB4 ,0x00B4 //ACUTE ACCENT - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x00B8 //CEDILLA - ,0xB9 ,0x00B9 //SUPERSCRIPT ONE - ,0xBA ,0x00BA //MASCULINE ORDINAL INDICATOR - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x00BC //VULGAR FRACTION ONE QUARTER - ,0xBD ,0x00BD //VULGAR FRACTION ONE HALF - ,0xBE ,0x00BE //VULGAR FRACTION THREE QUARTERS - ,0xBF ,0x00BF //INVERTED QUESTION MARK - ,0xC0 ,0x00C0 //LATIN CAPITAL LETTER A WITH GRAVE - ,0xC1 ,0x00C1 //LATIN CAPITAL LETTER A WITH ACUTE - ,0xC2 ,0x00C2 //LATIN CAPITAL LETTER A WITH CIRCUMFLEX - ,0xC3 ,0x00C3 //LATIN CAPITAL LETTER A WITH TILDE - ,0xC4 ,0x00C4 //LATIN CAPITAL LETTER A WITH DIAERESIS - ,0xC5 ,0x00C5 //LATIN CAPITAL LETTER A WITH RING ABOVE - ,0xC6 ,0x00C6 //LATIN CAPITAL LETTER AE - ,0xC7 ,0x00C7 //LATIN CAPITAL LETTER C WITH CEDILLA - ,0xC8 ,0x00C8 //LATIN CAPITAL LETTER E WITH GRAVE - ,0xC9 ,0x00C9 //LATIN CAPITAL LETTER E WITH ACUTE - ,0xCA ,0x00CA //LATIN CAPITAL LETTER E WITH CIRCUMFLEX - ,0xCB ,0x00CB //LATIN CAPITAL LETTER E WITH DIAERESIS - ,0xCC ,0x00CC //LATIN CAPITAL LETTER I WITH GRAVE - ,0xCD ,0x00CD //LATIN CAPITAL LETTER I WITH ACUTE - ,0xCE ,0x00CE //LATIN CAPITAL LETTER I WITH CIRCUMFLEX - ,0xCF ,0x00CF //LATIN CAPITAL LETTER I WITH DIAERESIS - ,0xD0 ,0x011E //LATIN CAPITAL LETTER G WITH BREVE - ,0xD1 ,0x00D1 //LATIN CAPITAL LETTER N WITH TILDE - ,0xD2 ,0x00D2 //LATIN CAPITAL LETTER O WITH GRAVE - ,0xD3 ,0x00D3 //LATIN CAPITAL LETTER O WITH ACUTE - ,0xD4 ,0x00D4 //LATIN CAPITAL LETTER O WITH CIRCUMFLEX - ,0xD5 ,0x00D5 //LATIN CAPITAL LETTER O WITH TILDE - ,0xD6 ,0x00D6 //LATIN CAPITAL LETTER O WITH DIAERESIS - ,0xD7 ,0x00D7 //MULTIPLICATION SIGN - ,0xD8 ,0x00D8 //LATIN CAPITAL LETTER O WITH STROKE - ,0xD9 ,0x00D9 //LATIN CAPITAL LETTER U WITH GRAVE - ,0xDA ,0x00DA //LATIN CAPITAL LETTER U WITH ACUTE - ,0xDB ,0x00DB //LATIN CAPITAL LETTER U WITH CIRCUMFLEX - ,0xDC ,0x00DC //LATIN CAPITAL LETTER U WITH DIAERESIS - ,0xDD ,0x0130 //LATIN CAPITAL LETTER I WITH DOT ABOVE - ,0xDE ,0x015E //LATIN CAPITAL LETTER S WITH CEDILLA - ,0xDF ,0x00DF //LATIN SMALL LETTER SHARP S - ,0xE0 ,0x00E0 //LATIN SMALL LETTER A WITH GRAVE - ,0xE1 ,0x00E1 //LATIN SMALL LETTER A WITH ACUTE - ,0xE2 ,0x00E2 //LATIN SMALL LETTER A WITH CIRCUMFLEX - ,0xE3 ,0x00E3 //LATIN SMALL LETTER A WITH TILDE - ,0xE4 ,0x00E4 //LATIN SMALL LETTER A WITH DIAERESIS - ,0xE5 ,0x00E5 //LATIN SMALL LETTER A WITH RING ABOVE - ,0xE6 ,0x00E6 //LATIN SMALL LETTER AE - ,0xE7 ,0x00E7 //LATIN SMALL LETTER C WITH CEDILLA - ,0xE8 ,0x00E8 //LATIN SMALL LETTER E WITH GRAVE - ,0xE9 ,0x00E9 //LATIN SMALL LETTER E WITH ACUTE - ,0xEA ,0x00EA //LATIN SMALL LETTER E WITH CIRCUMFLEX - ,0xEB ,0x00EB //LATIN SMALL LETTER E WITH DIAERESIS - ,0xEC ,0x00EC //LATIN SMALL LETTER I WITH GRAVE - ,0xED ,0x00ED //LATIN SMALL LETTER I WITH ACUTE - ,0xEE ,0x00EE //LATIN SMALL LETTER I WITH CIRCUMFLEX - ,0xEF ,0x00EF //LATIN SMALL LETTER I WITH DIAERESIS - ,0xF0 ,0x011F //LATIN SMALL LETTER G WITH BREVE - ,0xF1 ,0x00F1 //LATIN SMALL LETTER N WITH TILDE - ,0xF2 ,0x00F2 //LATIN SMALL LETTER O WITH GRAVE - ,0xF3 ,0x00F3 //LATIN SMALL LETTER O WITH ACUTE - ,0xF4 ,0x00F4 //LATIN SMALL LETTER O WITH CIRCUMFLEX - ,0xF5 ,0x00F5 //LATIN SMALL LETTER O WITH TILDE - ,0xF6 ,0x00F6 //LATIN SMALL LETTER O WITH DIAERESIS - ,0xF7 ,0x00F7 //DIVISION SIGN - ,0xF8 ,0x00F8 //LATIN SMALL LETTER O WITH STROKE - ,0xF9 ,0x00F9 //LATIN SMALL LETTER U WITH GRAVE - ,0xFA ,0x00FA //LATIN SMALL LETTER U WITH ACUTE - ,0xFB ,0x00FB //LATIN SMALL LETTER U WITH CIRCUMFLEX - ,0xFC ,0x00FC //LATIN SMALL LETTER U WITH DIAERESIS - ,0xFD ,0x0131 //LATIN SMALL LETTER DOTLESS I - ,0xFE ,0x015F //LATIN SMALL LETTER S WITH CEDILLA - ,0xFF ,0x00FF //LATIN SMALL LETTER Y WITH DIAERESIS - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp1254, kCFStringEncodingWindowsLatin5); diff --git a/Foundation/NSString/Encoding/CP1255.h b/Foundation/NSString/Encoding/CP1255.h deleted file mode 100644 index 7994aac7..00000000 --- a/Foundation/NSString/Encoding/CP1255.h +++ /dev/null @@ -1,243 +0,0 @@ -// clang-format off -// cp1255 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1255[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x83 ,0x0192 //LATIN SMALL LETTER F WITH HOOK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x88 ,0x02C6 //MODIFIER LETTER CIRCUMFLEX ACCENT - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x98 ,0x02DC //SMALL TILDE - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x00A1 //INVERTED EXCLAMATION MARK - ,0xA2 ,0x00A2 //CENT SIGN - ,0xA3 ,0x00A3 //POUND SIGN - ,0xA4 ,0x20AA //NEW SHEQEL SIGN - ,0xA5 ,0x00A5 //YEN SIGN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00A8 //DIAERESIS - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x00D7 //MULTIPLICATION SIGN - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x00AF //MACRON - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x00B2 //SUPERSCRIPT TWO - ,0xB3 ,0x00B3 //SUPERSCRIPT THREE - ,0xB4 ,0x00B4 //ACUTE ACCENT - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x00B8 //CEDILLA - ,0xB9 ,0x00B9 //SUPERSCRIPT ONE - ,0xBA ,0x00F7 //DIVISION SIGN - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x00BC //VULGAR FRACTION ONE QUARTER - ,0xBD ,0x00BD //VULGAR FRACTION ONE HALF - ,0xBE ,0x00BE //VULGAR FRACTION THREE QUARTERS - ,0xBF ,0x00BF //INVERTED QUESTION MARK - ,0xC0 ,0x05B0 //HEBREW POINT SHEVA - ,0xC1 ,0x05B1 //HEBREW POINT HATAF SEGOL - ,0xC2 ,0x05B2 //HEBREW POINT HATAF PATAH - ,0xC3 ,0x05B3 //HEBREW POINT HATAF QAMATS - ,0xC4 ,0x05B4 //HEBREW POINT HIRIQ - ,0xC5 ,0x05B5 //HEBREW POINT TSERE - ,0xC6 ,0x05B6 //HEBREW POINT SEGOL - ,0xC7 ,0x05B7 //HEBREW POINT PATAH - ,0xC8 ,0x05B8 //HEBREW POINT QAMATS - ,0xC9 ,0x05B9 //HEBREW POINT HOLAM - ,0xCB ,0x05BB //HEBREW POINT QUBUTS - ,0xCC ,0x05BC //HEBREW POINT DAGESH OR MAPIQ - ,0xCD ,0x05BD //HEBREW POINT METEG - ,0xCE ,0x05BE //HEBREW PUNCTUATION MAQAF - ,0xCF ,0x05BF //HEBREW POINT RAFE - ,0xD0 ,0x05C0 //HEBREW PUNCTUATION PASEQ - ,0xD1 ,0x05C1 //HEBREW POINT SHIN DOT - ,0xD2 ,0x05C2 //HEBREW POINT SIN DOT - ,0xD3 ,0x05C3 //HEBREW PUNCTUATION SOF PASUQ - ,0xD4 ,0x05F0 //HEBREW LIGATURE YIDDISH DOUBLE VAV - ,0xD5 ,0x05F1 //HEBREW LIGATURE YIDDISH VAV YOD - ,0xD6 ,0x05F2 //HEBREW LIGATURE YIDDISH DOUBLE YOD - ,0xD7 ,0x05F3 //HEBREW PUNCTUATION GERESH - ,0xD8 ,0x05F4 //HEBREW PUNCTUATION GERSHAYIM - ,0xE0 ,0x05D0 //HEBREW LETTER ALEF - ,0xE1 ,0x05D1 //HEBREW LETTER BET - ,0xE2 ,0x05D2 //HEBREW LETTER GIMEL - ,0xE3 ,0x05D3 //HEBREW LETTER DALET - ,0xE4 ,0x05D4 //HEBREW LETTER HE - ,0xE5 ,0x05D5 //HEBREW LETTER VAV - ,0xE6 ,0x05D6 //HEBREW LETTER ZAYIN - ,0xE7 ,0x05D7 //HEBREW LETTER HET - ,0xE8 ,0x05D8 //HEBREW LETTER TET - ,0xE9 ,0x05D9 //HEBREW LETTER YOD - ,0xEA ,0x05DA //HEBREW LETTER FINAL KAF - ,0xEB ,0x05DB //HEBREW LETTER KAF - ,0xEC ,0x05DC //HEBREW LETTER LAMED - ,0xED ,0x05DD //HEBREW LETTER FINAL MEM - ,0xEE ,0x05DE //HEBREW LETTER MEM - ,0xEF ,0x05DF //HEBREW LETTER FINAL NUN - ,0xF0 ,0x05E0 //HEBREW LETTER NUN - ,0xF1 ,0x05E1 //HEBREW LETTER SAMEKH - ,0xF2 ,0x05E2 //HEBREW LETTER AYIN - ,0xF3 ,0x05E3 //HEBREW LETTER FINAL PE - ,0xF4 ,0x05E4 //HEBREW LETTER PE - ,0xF5 ,0x05E5 //HEBREW LETTER FINAL TSADI - ,0xF6 ,0x05E6 //HEBREW LETTER TSADI - ,0xF7 ,0x05E7 //HEBREW LETTER QOF - ,0xF8 ,0x05E8 //HEBREW LETTER RESH - ,0xF9 ,0x05E9 //HEBREW LETTER SHIN - ,0xFA ,0x05EA //HEBREW LETTER TAV - ,0xFD ,0x200E //LEFT-TO-RIGHT MARK - ,0xFE ,0x200F //RIGHT-TO-LEFT MARK - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp1255, kCFStringEncodingWindowsHebrew); diff --git a/Foundation/NSString/Encoding/CP1256.h b/Foundation/NSString/Encoding/CP1256.h deleted file mode 100644 index a18d5cfe..00000000 --- a/Foundation/NSString/Encoding/CP1256.h +++ /dev/null @@ -1,266 +0,0 @@ -// clang-format off -// cp1256 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1256[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x81 ,0x067E //ARABIC LETTER PEH - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x83 ,0x0192 //LATIN SMALL LETTER F WITH HOOK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x88 ,0x02C6 //MODIFIER LETTER CIRCUMFLEX ACCENT - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8A ,0x0679 //ARABIC LETTER TTEH - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x8C ,0x0152 //LATIN CAPITAL LIGATURE OE - ,0x8D ,0x0686 //ARABIC LETTER TCHEH - ,0x8E ,0x0698 //ARABIC LETTER JEH - ,0x8F ,0x0688 //ARABIC LETTER DDAL - ,0x90 ,0x06AF //ARABIC LETTER GAF - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x98 ,0x06A9 //ARABIC LETTER KEHEH - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9A ,0x0691 //ARABIC LETTER RREH - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0x9C ,0x0153 //LATIN SMALL LIGATURE OE - ,0x9D ,0x200C //ZERO WIDTH NON-JOINER - ,0x9E ,0x200D //ZERO WIDTH JOINER - ,0x9F ,0x06BA //ARABIC LETTER NOON GHUNNA - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x060C //ARABIC COMMA - ,0xA2 ,0x00A2 //CENT SIGN - ,0xA3 ,0x00A3 //POUND SIGN - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA5 ,0x00A5 //YEN SIGN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00A8 //DIAERESIS - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x06BE //ARABIC LETTER HEH DOACHASHMEE - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x00AF //MACRON - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x00B2 //SUPERSCRIPT TWO - ,0xB3 ,0x00B3 //SUPERSCRIPT THREE - ,0xB4 ,0x00B4 //ACUTE ACCENT - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x00B8 //CEDILLA - ,0xB9 ,0x00B9 //SUPERSCRIPT ONE - ,0xBA ,0x061B //ARABIC SEMICOLON - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x00BC //VULGAR FRACTION ONE QUARTER - ,0xBD ,0x00BD //VULGAR FRACTION ONE HALF - ,0xBE ,0x00BE //VULGAR FRACTION THREE QUARTERS - ,0xBF ,0x061F //ARABIC QUESTION MARK - ,0xC0 ,0x06C1 //ARABIC LETTER HEH GOAL - ,0xC1 ,0x0621 //ARABIC LETTER HAMZA - ,0xC2 ,0x0622 //ARABIC LETTER ALEF WITH MADDA ABOVE - ,0xC3 ,0x0623 //ARABIC LETTER ALEF WITH HAMZA ABOVE - ,0xC4 ,0x0624 //ARABIC LETTER WAW WITH HAMZA ABOVE - ,0xC5 ,0x0625 //ARABIC LETTER ALEF WITH HAMZA BELOW - ,0xC6 ,0x0626 //ARABIC LETTER YEH WITH HAMZA ABOVE - ,0xC7 ,0x0627 //ARABIC LETTER ALEF - ,0xC8 ,0x0628 //ARABIC LETTER BEH - ,0xC9 ,0x0629 //ARABIC LETTER TEH MARBUTA - ,0xCA ,0x062A //ARABIC LETTER TEH - ,0xCB ,0x062B //ARABIC LETTER THEH - ,0xCC ,0x062C //ARABIC LETTER JEEM - ,0xCD ,0x062D //ARABIC LETTER HAH - ,0xCE ,0x062E //ARABIC LETTER KHAH - ,0xCF ,0x062F //ARABIC LETTER DAL - ,0xD0 ,0x0630 //ARABIC LETTER THAL - ,0xD1 ,0x0631 //ARABIC LETTER REH - ,0xD2 ,0x0632 //ARABIC LETTER ZAIN - ,0xD3 ,0x0633 //ARABIC LETTER SEEN - ,0xD4 ,0x0634 //ARABIC LETTER SHEEN - ,0xD5 ,0x0635 //ARABIC LETTER SAD - ,0xD6 ,0x0636 //ARABIC LETTER DAD - ,0xD7 ,0x00D7 //MULTIPLICATION SIGN - ,0xD8 ,0x0637 //ARABIC LETTER TAH - ,0xD9 ,0x0638 //ARABIC LETTER ZAH - ,0xDA ,0x0639 //ARABIC LETTER AIN - ,0xDB ,0x063A //ARABIC LETTER GHAIN - ,0xDC ,0x0640 //ARABIC TATWEEL - ,0xDD ,0x0641 //ARABIC LETTER FEH - ,0xDE ,0x0642 //ARABIC LETTER QAF - ,0xDF ,0x0643 //ARABIC LETTER KAF - ,0xE0 ,0x00E0 //LATIN SMALL LETTER A WITH GRAVE - ,0xE1 ,0x0644 //ARABIC LETTER LAM - ,0xE2 ,0x00E2 //LATIN SMALL LETTER A WITH CIRCUMFLEX - ,0xE3 ,0x0645 //ARABIC LETTER MEEM - ,0xE4 ,0x0646 //ARABIC LETTER NOON - ,0xE5 ,0x0647 //ARABIC LETTER HEH - ,0xE6 ,0x0648 //ARABIC LETTER WAW - ,0xE7 ,0x00E7 //LATIN SMALL LETTER C WITH CEDILLA - ,0xE8 ,0x00E8 //LATIN SMALL LETTER E WITH GRAVE - ,0xE9 ,0x00E9 //LATIN SMALL LETTER E WITH ACUTE - ,0xEA ,0x00EA //LATIN SMALL LETTER E WITH CIRCUMFLEX - ,0xEB ,0x00EB //LATIN SMALL LETTER E WITH DIAERESIS - ,0xEC ,0x0649 //ARABIC LETTER ALEF MAKSURA - ,0xED ,0x064A //ARABIC LETTER YEH - ,0xEE ,0x00EE //LATIN SMALL LETTER I WITH CIRCUMFLEX - ,0xEF ,0x00EF //LATIN SMALL LETTER I WITH DIAERESIS - ,0xF0 ,0x064B //ARABIC FATHATAN - ,0xF1 ,0x064C //ARABIC DAMMATAN - ,0xF2 ,0x064D //ARABIC KASRATAN - ,0xF3 ,0x064E //ARABIC FATHA - ,0xF4 ,0x00F4 //LATIN SMALL LETTER O WITH CIRCUMFLEX - ,0xF5 ,0x064F //ARABIC DAMMA - ,0xF6 ,0x0650 //ARABIC KASRA - ,0xF7 ,0x00F7 //DIVISION SIGN - ,0xF8 ,0x0651 //ARABIC SHADDA - ,0xF9 ,0x00F9 //LATIN SMALL LETTER U WITH GRAVE - ,0xFA ,0x0652 //ARABIC SUKUN - ,0xFB ,0x00FB //LATIN SMALL LETTER U WITH CIRCUMFLEX - ,0xFC ,0x00FC //LATIN SMALL LETTER U WITH DIAERESIS - ,0xFD ,0x200E //LEFT-TO-RIGHT MARK - ,0xFE ,0x200F //RIGHT-TO-LEFT MARK - ,0xFF ,0x06D2 //ARABIC LETTER YEH BARREE - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp1256, kCFStringEncodingWindowsArabic); diff --git a/Foundation/NSString/Encoding/CP1257.h b/Foundation/NSString/Encoding/CP1257.h deleted file mode 100644 index 03e6694d..00000000 --- a/Foundation/NSString/Encoding/CP1257.h +++ /dev/null @@ -1,254 +0,0 @@ -// clang-format off -// cp1257 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1257[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x8D ,0x00A8 //DIAERESIS - ,0x8E ,0x02C7 //CARON - ,0x8F ,0x00B8 //CEDILLA - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0x9D ,0x00AF //MACRON - ,0x9E ,0x02DB //OGONEK - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA2 ,0x00A2 //CENT SIGN - ,0xA3 ,0x00A3 //POUND SIGN - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00D8 //LATIN CAPITAL LETTER O WITH STROKE - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x0156 //LATIN CAPITAL LETTER R WITH CEDILLA - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x00C6 //LATIN CAPITAL LETTER AE - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x00B2 //SUPERSCRIPT TWO - ,0xB3 ,0x00B3 //SUPERSCRIPT THREE - ,0xB4 ,0x00B4 //ACUTE ACCENT - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x00F8 //LATIN SMALL LETTER O WITH STROKE - ,0xB9 ,0x00B9 //SUPERSCRIPT ONE - ,0xBA ,0x0157 //LATIN SMALL LETTER R WITH CEDILLA - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x00BC //VULGAR FRACTION ONE QUARTER - ,0xBD ,0x00BD //VULGAR FRACTION ONE HALF - ,0xBE ,0x00BE //VULGAR FRACTION THREE QUARTERS - ,0xBF ,0x00E6 //LATIN SMALL LETTER AE - ,0xC0 ,0x0104 //LATIN CAPITAL LETTER A WITH OGONEK - ,0xC1 ,0x012E //LATIN CAPITAL LETTER I WITH OGONEK - ,0xC2 ,0x0100 //LATIN CAPITAL LETTER A WITH MACRON - ,0xC3 ,0x0106 //LATIN CAPITAL LETTER C WITH ACUTE - ,0xC4 ,0x00C4 //LATIN CAPITAL LETTER A WITH DIAERESIS - ,0xC5 ,0x00C5 //LATIN CAPITAL LETTER A WITH RING ABOVE - ,0xC6 ,0x0118 //LATIN CAPITAL LETTER E WITH OGONEK - ,0xC7 ,0x0112 //LATIN CAPITAL LETTER E WITH MACRON - ,0xC8 ,0x010C //LATIN CAPITAL LETTER C WITH CARON - ,0xC9 ,0x00C9 //LATIN CAPITAL LETTER E WITH ACUTE - ,0xCA ,0x0179 //LATIN CAPITAL LETTER Z WITH ACUTE - ,0xCB ,0x0116 //LATIN CAPITAL LETTER E WITH DOT ABOVE - ,0xCC ,0x0122 //LATIN CAPITAL LETTER G WITH CEDILLA - ,0xCD ,0x0136 //LATIN CAPITAL LETTER K WITH CEDILLA - ,0xCE ,0x012A //LATIN CAPITAL LETTER I WITH MACRON - ,0xCF ,0x013B //LATIN CAPITAL LETTER L WITH CEDILLA - ,0xD0 ,0x0160 //LATIN CAPITAL LETTER S WITH CARON - ,0xD1 ,0x0143 //LATIN CAPITAL LETTER N WITH ACUTE - ,0xD2 ,0x0145 //LATIN CAPITAL LETTER N WITH CEDILLA - ,0xD3 ,0x00D3 //LATIN CAPITAL LETTER O WITH ACUTE - ,0xD4 ,0x014C //LATIN CAPITAL LETTER O WITH MACRON - ,0xD5 ,0x00D5 //LATIN CAPITAL LETTER O WITH TILDE - ,0xD6 ,0x00D6 //LATIN CAPITAL LETTER O WITH DIAERESIS - ,0xD7 ,0x00D7 //MULTIPLICATION SIGN - ,0xD8 ,0x0172 //LATIN CAPITAL LETTER U WITH OGONEK - ,0xD9 ,0x0141 //LATIN CAPITAL LETTER L WITH STROKE - ,0xDA ,0x015A //LATIN CAPITAL LETTER S WITH ACUTE - ,0xDB ,0x016A //LATIN CAPITAL LETTER U WITH MACRON - ,0xDC ,0x00DC //LATIN CAPITAL LETTER U WITH DIAERESIS - ,0xDD ,0x017B //LATIN CAPITAL LETTER Z WITH DOT ABOVE - ,0xDE ,0x017D //LATIN CAPITAL LETTER Z WITH CARON - ,0xDF ,0x00DF //LATIN SMALL LETTER SHARP S - ,0xE0 ,0x0105 //LATIN SMALL LETTER A WITH OGONEK - ,0xE1 ,0x012F //LATIN SMALL LETTER I WITH OGONEK - ,0xE2 ,0x0101 //LATIN SMALL LETTER A WITH MACRON - ,0xE3 ,0x0107 //LATIN SMALL LETTER C WITH ACUTE - ,0xE4 ,0x00E4 //LATIN SMALL LETTER A WITH DIAERESIS - ,0xE5 ,0x00E5 //LATIN SMALL LETTER A WITH RING ABOVE - ,0xE6 ,0x0119 //LATIN SMALL LETTER E WITH OGONEK - ,0xE7 ,0x0113 //LATIN SMALL LETTER E WITH MACRON - ,0xE8 ,0x010D //LATIN SMALL LETTER C WITH CARON - ,0xE9 ,0x00E9 //LATIN SMALL LETTER E WITH ACUTE - ,0xEA ,0x017A //LATIN SMALL LETTER Z WITH ACUTE - ,0xEB ,0x0117 //LATIN SMALL LETTER E WITH DOT ABOVE - ,0xEC ,0x0123 //LATIN SMALL LETTER G WITH CEDILLA - ,0xED ,0x0137 //LATIN SMALL LETTER K WITH CEDILLA - ,0xEE ,0x012B //LATIN SMALL LETTER I WITH MACRON - ,0xEF ,0x013C //LATIN SMALL LETTER L WITH CEDILLA - ,0xF0 ,0x0161 //LATIN SMALL LETTER S WITH CARON - ,0xF1 ,0x0144 //LATIN SMALL LETTER N WITH ACUTE - ,0xF2 ,0x0146 //LATIN SMALL LETTER N WITH CEDILLA - ,0xF3 ,0x00F3 //LATIN SMALL LETTER O WITH ACUTE - ,0xF4 ,0x014D //LATIN SMALL LETTER O WITH MACRON - ,0xF5 ,0x00F5 //LATIN SMALL LETTER O WITH TILDE - ,0xF6 ,0x00F6 //LATIN SMALL LETTER O WITH DIAERESIS - ,0xF7 ,0x00F7 //DIVISION SIGN - ,0xF8 ,0x0173 //LATIN SMALL LETTER U WITH OGONEK - ,0xF9 ,0x0142 //LATIN SMALL LETTER L WITH STROKE - ,0xFA ,0x015B //LATIN SMALL LETTER S WITH ACUTE - ,0xFB ,0x016B //LATIN SMALL LETTER U WITH MACRON - ,0xFC ,0x00FC //LATIN SMALL LETTER U WITH DIAERESIS - ,0xFD ,0x017C //LATIN SMALL LETTER Z WITH DOT ABOVE - ,0xFE ,0x017E //LATIN SMALL LETTER Z WITH CARON - ,0xFF ,0x02D9 //DOT ABOVE - ,-1, -1 -}; -// clang-format on - -NSEncodingRegistration(cp1257, kCFStringEncodingWindowsBalticRim); diff --git a/Foundation/NSString/Encoding/CP1258.h b/Foundation/NSString/Encoding/CP1258.h deleted file mode 100644 index 2f6e957f..00000000 --- a/Foundation/NSString/Encoding/CP1258.h +++ /dev/null @@ -1,257 +0,0 @@ -// clang-format off -// cp1258 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp1258[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x82 ,0x201A //SINGLE LOW-9 QUOTATION MARK - ,0x83 ,0x0192 //LATIN SMALL LETTER F WITH HOOK - ,0x84 ,0x201E //DOUBLE LOW-9 QUOTATION MARK - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x86 ,0x2020 //DAGGER - ,0x87 ,0x2021 //DOUBLE DAGGER - ,0x88 ,0x02C6 //MODIFIER LETTER CIRCUMFLEX ACCENT - ,0x89 ,0x2030 //PER MILLE SIGN - ,0x8B ,0x2039 //SINGLE LEFT-POINTING ANGLE QUOTATION MARK - ,0x8C ,0x0152 //LATIN CAPITAL LIGATURE OE - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0x98 ,0x02DC //SMALL TILDE - ,0x99 ,0x2122 //TRADE MARK SIGN - ,0x9B ,0x203A //SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - ,0x9C ,0x0153 //LATIN SMALL LIGATURE OE - ,0x9F ,0x0178 //LATIN CAPITAL LETTER Y WITH DIAERESIS - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x00A1 //INVERTED EXCLAMATION MARK - ,0xA2 ,0x00A2 //CENT SIGN - ,0xA3 ,0x00A3 //POUND SIGN - ,0xA4 ,0x00A4 //CURRENCY SIGN - ,0xA5 ,0x00A5 //YEN SIGN - ,0xA6 ,0x00A6 //BROKEN BAR - ,0xA7 ,0x00A7 //SECTION SIGN - ,0xA8 ,0x00A8 //DIAERESIS - ,0xA9 ,0x00A9 //COPYRIGHT SIGN - ,0xAA ,0x00AA //FEMININE ORDINAL INDICATOR - ,0xAB ,0x00AB //LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xAC ,0x00AC //NOT SIGN - ,0xAD ,0x00AD //SOFT HYPHEN - ,0xAE ,0x00AE //REGISTERED SIGN - ,0xAF ,0x00AF //MACRON - ,0xB0 ,0x00B0 //DEGREE SIGN - ,0xB1 ,0x00B1 //PLUS-MINUS SIGN - ,0xB2 ,0x00B2 //SUPERSCRIPT TWO - ,0xB3 ,0x00B3 //SUPERSCRIPT THREE - ,0xB4 ,0x00B4 //ACUTE ACCENT - ,0xB5 ,0x00B5 //MICRO SIGN - ,0xB6 ,0x00B6 //PILCROW SIGN - ,0xB7 ,0x00B7 //MIDDLE DOT - ,0xB8 ,0x00B8 //CEDILLA - ,0xB9 ,0x00B9 //SUPERSCRIPT ONE - ,0xBA ,0x00BA //MASCULINE ORDINAL INDICATOR - ,0xBB ,0x00BB //RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - ,0xBC ,0x00BC //VULGAR FRACTION ONE QUARTER - ,0xBD ,0x00BD //VULGAR FRACTION ONE HALF - ,0xBE ,0x00BE //VULGAR FRACTION THREE QUARTERS - ,0xBF ,0x00BF //INVERTED QUESTION MARK - ,0xC0 ,0x00C0 //LATIN CAPITAL LETTER A WITH GRAVE - ,0xC1 ,0x00C1 //LATIN CAPITAL LETTER A WITH ACUTE - ,0xC2 ,0x00C2 //LATIN CAPITAL LETTER A WITH CIRCUMFLEX - ,0xC3 ,0x0102 //LATIN CAPITAL LETTER A WITH BREVE - ,0xC4 ,0x00C4 //LATIN CAPITAL LETTER A WITH DIAERESIS - ,0xC5 ,0x00C5 //LATIN CAPITAL LETTER A WITH RING ABOVE - ,0xC6 ,0x00C6 //LATIN CAPITAL LETTER AE - ,0xC7 ,0x00C7 //LATIN CAPITAL LETTER C WITH CEDILLA - ,0xC8 ,0x00C8 //LATIN CAPITAL LETTER E WITH GRAVE - ,0xC9 ,0x00C9 //LATIN CAPITAL LETTER E WITH ACUTE - ,0xCA ,0x00CA //LATIN CAPITAL LETTER E WITH CIRCUMFLEX - ,0xCB ,0x00CB //LATIN CAPITAL LETTER E WITH DIAERESIS - ,0xCC ,0x0300 //COMBINING GRAVE ACCENT - ,0xCD ,0x00CD //LATIN CAPITAL LETTER I WITH ACUTE - ,0xCE ,0x00CE //LATIN CAPITAL LETTER I WITH CIRCUMFLEX - ,0xCF ,0x00CF //LATIN CAPITAL LETTER I WITH DIAERESIS - ,0xD0 ,0x0110 //LATIN CAPITAL LETTER D WITH STROKE - ,0xD1 ,0x00D1 //LATIN CAPITAL LETTER N WITH TILDE - ,0xD2 ,0x0309 //COMBINING HOOK ABOVE - ,0xD3 ,0x00D3 //LATIN CAPITAL LETTER O WITH ACUTE - ,0xD4 ,0x00D4 //LATIN CAPITAL LETTER O WITH CIRCUMFLEX - ,0xD5 ,0x01A0 //LATIN CAPITAL LETTER O WITH HORN - ,0xD6 ,0x00D6 //LATIN CAPITAL LETTER O WITH DIAERESIS - ,0xD7 ,0x00D7 //MULTIPLICATION SIGN - ,0xD8 ,0x00D8 //LATIN CAPITAL LETTER O WITH STROKE - ,0xD9 ,0x00D9 //LATIN CAPITAL LETTER U WITH GRAVE - ,0xDA ,0x00DA //LATIN CAPITAL LETTER U WITH ACUTE - ,0xDB ,0x00DB //LATIN CAPITAL LETTER U WITH CIRCUMFLEX - ,0xDC ,0x00DC //LATIN CAPITAL LETTER U WITH DIAERESIS - ,0xDD ,0x01AF //LATIN CAPITAL LETTER U WITH HORN - ,0xDE ,0x0303 //COMBINING TILDE - ,0xDF ,0x00DF //LATIN SMALL LETTER SHARP S - ,0xE0 ,0x00E0 //LATIN SMALL LETTER A WITH GRAVE - ,0xE1 ,0x00E1 //LATIN SMALL LETTER A WITH ACUTE - ,0xE2 ,0x00E2 //LATIN SMALL LETTER A WITH CIRCUMFLEX - ,0xE3 ,0x0103 //LATIN SMALL LETTER A WITH BREVE - ,0xE4 ,0x00E4 //LATIN SMALL LETTER A WITH DIAERESIS - ,0xE5 ,0x00E5 //LATIN SMALL LETTER A WITH RING ABOVE - ,0xE6 ,0x00E6 //LATIN SMALL LETTER AE - ,0xE7 ,0x00E7 //LATIN SMALL LETTER C WITH CEDILLA - ,0xE8 ,0x00E8 //LATIN SMALL LETTER E WITH GRAVE - ,0xE9 ,0x00E9 //LATIN SMALL LETTER E WITH ACUTE - ,0xEA ,0x00EA //LATIN SMALL LETTER E WITH CIRCUMFLEX - ,0xEB ,0x00EB //LATIN SMALL LETTER E WITH DIAERESIS - ,0xEC ,0x0301 //COMBINING ACUTE ACCENT - ,0xED ,0x00ED //LATIN SMALL LETTER I WITH ACUTE - ,0xEE ,0x00EE //LATIN SMALL LETTER I WITH CIRCUMFLEX - ,0xEF ,0x00EF //LATIN SMALL LETTER I WITH DIAERESIS - ,0xF0 ,0x0111 //LATIN SMALL LETTER D WITH STROKE - ,0xF1 ,0x00F1 //LATIN SMALL LETTER N WITH TILDE - ,0xF2 ,0x0323 //COMBINING DOT BELOW - ,0xF3 ,0x00F3 //LATIN SMALL LETTER O WITH ACUTE - ,0xF4 ,0x00F4 //LATIN SMALL LETTER O WITH CIRCUMFLEX - ,0xF5 ,0x01A1 //LATIN SMALL LETTER O WITH HORN - ,0xF6 ,0x00F6 //LATIN SMALL LETTER O WITH DIAERESIS - ,0xF7 ,0x00F7 //DIVISION SIGN - ,0xF8 ,0x00F8 //LATIN SMALL LETTER O WITH STROKE - ,0xF9 ,0x00F9 //LATIN SMALL LETTER U WITH GRAVE - ,0xFA ,0x00FA //LATIN SMALL LETTER U WITH ACUTE - ,0xFB ,0x00FB //LATIN SMALL LETTER U WITH CIRCUMFLEX - ,0xFC ,0x00FC //LATIN SMALL LETTER U WITH DIAERESIS - ,0xFD ,0x01B0 //LATIN SMALL LETTER U WITH HORN - ,0xFE ,0x20AB //DONG SIGN - ,0xFF ,0x00FF //LATIN SMALL LETTER Y WITH DIAERESIS - ,-1, -1 -}; -// clang-format on - -NSEncodingRegistration(cp1258, kCFStringEncodingWindowsVietnamese); diff --git a/Foundation/NSString/Encoding/CP874.h b/Foundation/NSString/Encoding/CP874.h deleted file mode 100644 index 88ded01a..00000000 --- a/Foundation/NSString/Encoding/CP874.h +++ /dev/null @@ -1,235 +0,0 @@ -// clang-format off -// cp874 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp874[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x85 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x91 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x92 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x93 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x94 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x95 ,0x2022 //BULLET - ,0x96 ,0x2013 //EN DASH - ,0x97 ,0x2014 //EM DASH - ,0xA0 ,0x00A0 //NO-BREAK SPACE - ,0xA1 ,0x0E01 //THAI CHARACTER KO KAI - ,0xA2 ,0x0E02 //THAI CHARACTER KHO KHAI - ,0xA3 ,0x0E03 //THAI CHARACTER KHO KHUAT - ,0xA4 ,0x0E04 //THAI CHARACTER KHO KHWAI - ,0xA5 ,0x0E05 //THAI CHARACTER KHO KHON - ,0xA6 ,0x0E06 //THAI CHARACTER KHO RAKHANG - ,0xA7 ,0x0E07 //THAI CHARACTER NGO NGU - ,0xA8 ,0x0E08 //THAI CHARACTER CHO CHAN - ,0xA9 ,0x0E09 //THAI CHARACTER CHO CHING - ,0xAA ,0x0E0A //THAI CHARACTER CHO CHANG - ,0xAB ,0x0E0B //THAI CHARACTER SO SO - ,0xAC ,0x0E0C //THAI CHARACTER CHO CHOE - ,0xAD ,0x0E0D //THAI CHARACTER YO YING - ,0xAE ,0x0E0E //THAI CHARACTER DO CHADA - ,0xAF ,0x0E0F //THAI CHARACTER TO PATAK - ,0xB0 ,0x0E10 //THAI CHARACTER THO THAN - ,0xB1 ,0x0E11 //THAI CHARACTER THO NANGMONTHO - ,0xB2 ,0x0E12 //THAI CHARACTER THO PHUTHAO - ,0xB3 ,0x0E13 //THAI CHARACTER NO NEN - ,0xB4 ,0x0E14 //THAI CHARACTER DO DEK - ,0xB5 ,0x0E15 //THAI CHARACTER TO TAO - ,0xB6 ,0x0E16 //THAI CHARACTER THO THUNG - ,0xB7 ,0x0E17 //THAI CHARACTER THO THAHAN - ,0xB8 ,0x0E18 //THAI CHARACTER THO THONG - ,0xB9 ,0x0E19 //THAI CHARACTER NO NU - ,0xBA ,0x0E1A //THAI CHARACTER BO BAIMAI - ,0xBB ,0x0E1B //THAI CHARACTER PO PLA - ,0xBC ,0x0E1C //THAI CHARACTER PHO PHUNG - ,0xBD ,0x0E1D //THAI CHARACTER FO FA - ,0xBE ,0x0E1E //THAI CHARACTER PHO PHAN - ,0xBF ,0x0E1F //THAI CHARACTER FO FAN - ,0xC0 ,0x0E20 //THAI CHARACTER PHO SAMPHAO - ,0xC1 ,0x0E21 //THAI CHARACTER MO MA - ,0xC2 ,0x0E22 //THAI CHARACTER YO YAK - ,0xC3 ,0x0E23 //THAI CHARACTER RO RUA - ,0xC4 ,0x0E24 //THAI CHARACTER RU - ,0xC5 ,0x0E25 //THAI CHARACTER LO LING - ,0xC6 ,0x0E26 //THAI CHARACTER LU - ,0xC7 ,0x0E27 //THAI CHARACTER WO WAEN - ,0xC8 ,0x0E28 //THAI CHARACTER SO SALA - ,0xC9 ,0x0E29 //THAI CHARACTER SO RUSI - ,0xCA ,0x0E2A //THAI CHARACTER SO SUA - ,0xCB ,0x0E2B //THAI CHARACTER HO HIP - ,0xCC ,0x0E2C //THAI CHARACTER LO CHULA - ,0xCD ,0x0E2D //THAI CHARACTER O ANG - ,0xCE ,0x0E2E //THAI CHARACTER HO NOKHUK - ,0xCF ,0x0E2F //THAI CHARACTER PAIYANNOI - ,0xD0 ,0x0E30 //THAI CHARACTER SARA A - ,0xD1 ,0x0E31 //THAI CHARACTER MAI HAN-AKAT - ,0xD2 ,0x0E32 //THAI CHARACTER SARA AA - ,0xD3 ,0x0E33 //THAI CHARACTER SARA AM - ,0xD4 ,0x0E34 //THAI CHARACTER SARA I - ,0xD5 ,0x0E35 //THAI CHARACTER SARA II - ,0xD6 ,0x0E36 //THAI CHARACTER SARA UE - ,0xD7 ,0x0E37 //THAI CHARACTER SARA UEE - ,0xD8 ,0x0E38 //THAI CHARACTER SARA U - ,0xD9 ,0x0E39 //THAI CHARACTER SARA UU - ,0xDA ,0x0E3A //THAI CHARACTER PHINTHU - ,0xDF ,0x0E3F //THAI CURRENCY SYMBOL BAHT - ,0xE0 ,0x0E40 //THAI CHARACTER SARA E - ,0xE1 ,0x0E41 //THAI CHARACTER SARA AE - ,0xE2 ,0x0E42 //THAI CHARACTER SARA O - ,0xE3 ,0x0E43 //THAI CHARACTER SARA AI MAIMUAN - ,0xE4 ,0x0E44 //THAI CHARACTER SARA AI MAIMALAI - ,0xE5 ,0x0E45 //THAI CHARACTER LAKKHANGYAO - ,0xE6 ,0x0E46 //THAI CHARACTER MAIYAMOK - ,0xE7 ,0x0E47 //THAI CHARACTER MAITAIKHU - ,0xE8 ,0x0E48 //THAI CHARACTER MAI EK - ,0xE9 ,0x0E49 //THAI CHARACTER MAI THO - ,0xEA ,0x0E4A //THAI CHARACTER MAI TRI - ,0xEB ,0x0E4B //THAI CHARACTER MAI CHATTAWA - ,0xEC ,0x0E4C //THAI CHARACTER THANTHAKHAT - ,0xED ,0x0E4D //THAI CHARACTER NIKHAHIT - ,0xEE ,0x0E4E //THAI CHARACTER YAMAKKAN - ,0xEF ,0x0E4F //THAI CHARACTER FONGMAN - ,0xF0 ,0x0E50 //THAI DIGIT ZERO - ,0xF1 ,0x0E51 //THAI DIGIT ONE - ,0xF2 ,0x0E52 //THAI DIGIT TWO - ,0xF3 ,0x0E53 //THAI DIGIT THREE - ,0xF4 ,0x0E54 //THAI DIGIT FOUR - ,0xF5 ,0x0E55 //THAI DIGIT FIVE - ,0xF6 ,0x0E56 //THAI DIGIT SIX - ,0xF7 ,0x0E57 //THAI DIGIT SEVEN - ,0xF8 ,0x0E58 //THAI DIGIT EIGHT - ,0xF9 ,0x0E59 //THAI DIGIT NINE - ,0xFA ,0x0E5A //THAI CHARACTER ANGKHANKHU - ,0xFB ,0x0E5B //THAI CHARACTER KHOMUT - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp874, kCFStringEncodingDOSThai); diff --git a/Foundation/NSString/Encoding/CP932.h b/Foundation/NSString/Encoding/CP932.h deleted file mode 100644 index b4e94f18..00000000 --- a/Foundation/NSString/Encoding/CP932.h +++ /dev/null @@ -1,7986 +0,0 @@ -// clang-format off -// clang-format off -// cp932 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp932[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x81 ,0xFFFF //DBCS LEAD BYTE - ,0x82 ,0xFFFF //DBCS LEAD BYTE - ,0x83 ,0xFFFF //DBCS LEAD BYTE - ,0x84 ,0xFFFF //DBCS LEAD BYTE - ,0x85 ,0xFFFF //DBCS LEAD BYTE - ,0x86 ,0xFFFF //DBCS LEAD BYTE - ,0x87 ,0xFFFF //DBCS LEAD BYTE - ,0x88 ,0xFFFF //DBCS LEAD BYTE - ,0x89 ,0xFFFF //DBCS LEAD BYTE - ,0x8A ,0xFFFF //DBCS LEAD BYTE - ,0x8B ,0xFFFF //DBCS LEAD BYTE - ,0x8C ,0xFFFF //DBCS LEAD BYTE - ,0x8D ,0xFFFF //DBCS LEAD BYTE - ,0x8E ,0xFFFF //DBCS LEAD BYTE - ,0x8F ,0xFFFF //DBCS LEAD BYTE - ,0x90 ,0xFFFF //DBCS LEAD BYTE - ,0x91 ,0xFFFF //DBCS LEAD BYTE - ,0x92 ,0xFFFF //DBCS LEAD BYTE - ,0x93 ,0xFFFF //DBCS LEAD BYTE - ,0x94 ,0xFFFF //DBCS LEAD BYTE - ,0x95 ,0xFFFF //DBCS LEAD BYTE - ,0x96 ,0xFFFF //DBCS LEAD BYTE - ,0x97 ,0xFFFF //DBCS LEAD BYTE - ,0x98 ,0xFFFF //DBCS LEAD BYTE - ,0x99 ,0xFFFF //DBCS LEAD BYTE - ,0x9A ,0xFFFF //DBCS LEAD BYTE - ,0x9B ,0xFFFF //DBCS LEAD BYTE - ,0x9C ,0xFFFF //DBCS LEAD BYTE - ,0x9D ,0xFFFF //DBCS LEAD BYTE - ,0x9E ,0xFFFF //DBCS LEAD BYTE - ,0x9F ,0xFFFF //DBCS LEAD BYTE - ,0xA1 ,0xFF61 //HALFWIDTH IDEOGRAPHIC FULL STOP - ,0xA2 ,0xFF62 //HALFWIDTH LEFT CORNER BRACKET - ,0xA3 ,0xFF63 //HALFWIDTH RIGHT CORNER BRACKET - ,0xA4 ,0xFF64 //HALFWIDTH IDEOGRAPHIC COMMA - ,0xA5 ,0xFF65 //HALFWIDTH KATAKANA MIDDLE DOT - ,0xA6 ,0xFF66 //HALFWIDTH KATAKANA LETTER WO - ,0xA7 ,0xFF67 //HALFWIDTH KATAKANA LETTER SMALL A - ,0xA8 ,0xFF68 //HALFWIDTH KATAKANA LETTER SMALL I - ,0xA9 ,0xFF69 //HALFWIDTH KATAKANA LETTER SMALL U - ,0xAA ,0xFF6A //HALFWIDTH KATAKANA LETTER SMALL E - ,0xAB ,0xFF6B //HALFWIDTH KATAKANA LETTER SMALL O - ,0xAC ,0xFF6C //HALFWIDTH KATAKANA LETTER SMALL YA - ,0xAD ,0xFF6D //HALFWIDTH KATAKANA LETTER SMALL YU - ,0xAE ,0xFF6E //HALFWIDTH KATAKANA LETTER SMALL YO - ,0xAF ,0xFF6F //HALFWIDTH KATAKANA LETTER SMALL TU - ,0xB0 ,0xFF70 //HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK - ,0xB1 ,0xFF71 //HALFWIDTH KATAKANA LETTER A - ,0xB2 ,0xFF72 //HALFWIDTH KATAKANA LETTER I - ,0xB3 ,0xFF73 //HALFWIDTH KATAKANA LETTER U - ,0xB4 ,0xFF74 //HALFWIDTH KATAKANA LETTER E - ,0xB5 ,0xFF75 //HALFWIDTH KATAKANA LETTER O - ,0xB6 ,0xFF76 //HALFWIDTH KATAKANA LETTER KA - ,0xB7 ,0xFF77 //HALFWIDTH KATAKANA LETTER KI - ,0xB8 ,0xFF78 //HALFWIDTH KATAKANA LETTER KU - ,0xB9 ,0xFF79 //HALFWIDTH KATAKANA LETTER KE - ,0xBA ,0xFF7A //HALFWIDTH KATAKANA LETTER KO - ,0xBB ,0xFF7B //HALFWIDTH KATAKANA LETTER SA - ,0xBC ,0xFF7C //HALFWIDTH KATAKANA LETTER SI - ,0xBD ,0xFF7D //HALFWIDTH KATAKANA LETTER SU - ,0xBE ,0xFF7E //HALFWIDTH KATAKANA LETTER SE - ,0xBF ,0xFF7F //HALFWIDTH KATAKANA LETTER SO - ,0xC0 ,0xFF80 //HALFWIDTH KATAKANA LETTER TA - ,0xC1 ,0xFF81 //HALFWIDTH KATAKANA LETTER TI - ,0xC2 ,0xFF82 //HALFWIDTH KATAKANA LETTER TU - ,0xC3 ,0xFF83 //HALFWIDTH KATAKANA LETTER TE - ,0xC4 ,0xFF84 //HALFWIDTH KATAKANA LETTER TO - ,0xC5 ,0xFF85 //HALFWIDTH KATAKANA LETTER NA - ,0xC6 ,0xFF86 //HALFWIDTH KATAKANA LETTER NI - ,0xC7 ,0xFF87 //HALFWIDTH KATAKANA LETTER NU - ,0xC8 ,0xFF88 //HALFWIDTH KATAKANA LETTER NE - ,0xC9 ,0xFF89 //HALFWIDTH KATAKANA LETTER NO - ,0xCA ,0xFF8A //HALFWIDTH KATAKANA LETTER HA - ,0xCB ,0xFF8B //HALFWIDTH KATAKANA LETTER HI - ,0xCC ,0xFF8C //HALFWIDTH KATAKANA LETTER HU - ,0xCD ,0xFF8D //HALFWIDTH KATAKANA LETTER HE - ,0xCE ,0xFF8E //HALFWIDTH KATAKANA LETTER HO - ,0xCF ,0xFF8F //HALFWIDTH KATAKANA LETTER MA - ,0xD0 ,0xFF90 //HALFWIDTH KATAKANA LETTER MI - ,0xD1 ,0xFF91 //HALFWIDTH KATAKANA LETTER MU - ,0xD2 ,0xFF92 //HALFWIDTH KATAKANA LETTER ME - ,0xD3 ,0xFF93 //HALFWIDTH KATAKANA LETTER MO - ,0xD4 ,0xFF94 //HALFWIDTH KATAKANA LETTER YA - ,0xD5 ,0xFF95 //HALFWIDTH KATAKANA LETTER YU - ,0xD6 ,0xFF96 //HALFWIDTH KATAKANA LETTER YO - ,0xD7 ,0xFF97 //HALFWIDTH KATAKANA LETTER RA - ,0xD8 ,0xFF98 //HALFWIDTH KATAKANA LETTER RI - ,0xD9 ,0xFF99 //HALFWIDTH KATAKANA LETTER RU - ,0xDA ,0xFF9A //HALFWIDTH KATAKANA LETTER RE - ,0xDB ,0xFF9B //HALFWIDTH KATAKANA LETTER RO - ,0xDC ,0xFF9C //HALFWIDTH KATAKANA LETTER WA - ,0xDD ,0xFF9D //HALFWIDTH KATAKANA LETTER N - ,0xDE ,0xFF9E //HALFWIDTH KATAKANA VOICED SOUND MARK - ,0xDF ,0xFF9F //HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK - ,0xE0 ,0xFFFF //DBCS LEAD BYTE - ,0xE1 ,0xFFFF //DBCS LEAD BYTE - ,0xE2 ,0xFFFF //DBCS LEAD BYTE - ,0xE3 ,0xFFFF //DBCS LEAD BYTE - ,0xE4 ,0xFFFF //DBCS LEAD BYTE - ,0xE5 ,0xFFFF //DBCS LEAD BYTE - ,0xE6 ,0xFFFF //DBCS LEAD BYTE - ,0xE7 ,0xFFFF //DBCS LEAD BYTE - ,0xE8 ,0xFFFF //DBCS LEAD BYTE - ,0xE9 ,0xFFFF //DBCS LEAD BYTE - ,0xEA ,0xFFFF //DBCS LEAD BYTE - ,0xEB ,0xFFFF //DBCS LEAD BYTE - ,0xEC ,0xFFFF //DBCS LEAD BYTE - ,0xED ,0xFFFF //DBCS LEAD BYTE - ,0xEE ,0xFFFF //DBCS LEAD BYTE - ,0xEF ,0xFFFF //DBCS LEAD BYTE - ,0xF0 ,0xFFFF //DBCS LEAD BYTE - ,0xF1 ,0xFFFF //DBCS LEAD BYTE - ,0xF2 ,0xFFFF //DBCS LEAD BYTE - ,0xF3 ,0xFFFF //DBCS LEAD BYTE - ,0xF4 ,0xFFFF //DBCS LEAD BYTE - ,0xF5 ,0xFFFF //DBCS LEAD BYTE - ,0xF6 ,0xFFFF //DBCS LEAD BYTE - ,0xF7 ,0xFFFF //DBCS LEAD BYTE - ,0xF8 ,0xFFFF //DBCS LEAD BYTE - ,0xF9 ,0xFFFF //DBCS LEAD BYTE - ,0xFA ,0xFFFF //DBCS LEAD BYTE - ,0xFB ,0xFFFF //DBCS LEAD BYTE - ,0xFC ,0xFFFF //DBCS LEAD BYTE - ,0x8140 ,0x3000 //IDEOGRAPHIC SPACE - ,0x8141 ,0x3001 //IDEOGRAPHIC COMMA - ,0x8142 ,0x3002 //IDEOGRAPHIC FULL STOP - ,0x8143 ,0xFF0C //FULLWIDTH COMMA - ,0x8144 ,0xFF0E //FULLWIDTH FULL STOP - ,0x8145 ,0x30FB //KATAKANA MIDDLE DOT - ,0x8146 ,0xFF1A //FULLWIDTH COLON - ,0x8147 ,0xFF1B //FULLWIDTH SEMICOLON - ,0x8148 ,0xFF1F //FULLWIDTH QUESTION MARK - ,0x8149 ,0xFF01 //FULLWIDTH EXCLAMATION MARK - ,0x814A ,0x309B //KATAKANA-HIRAGANA VOICED SOUND MARK - ,0x814B ,0x309C //KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - ,0x814C ,0x00B4 //ACUTE ACCENT - ,0x814D ,0xFF40 //FULLWIDTH GRAVE ACCENT - ,0x814E ,0x00A8 //DIAERESIS - ,0x814F ,0xFF3E //FULLWIDTH CIRCUMFLEX ACCENT - ,0x8150 ,0xFFE3 //FULLWIDTH MACRON - ,0x8151 ,0xFF3F //FULLWIDTH LOW LINE - ,0x8152 ,0x30FD //KATAKANA ITERATION MARK - ,0x8153 ,0x30FE //KATAKANA VOICED ITERATION MARK - ,0x8154 ,0x309D //HIRAGANA ITERATION MARK - ,0x8155 ,0x309E //HIRAGANA VOICED ITERATION MARK - ,0x8156 ,0x3003 //DITTO MARK - ,0x8157 ,0x4EDD //CJK UNIFIED IDEOGRAPH - ,0x8158 ,0x3005 //IDEOGRAPHIC ITERATION MARK - ,0x8159 ,0x3006 //IDEOGRAPHIC CLOSING MARK - ,0x815A ,0x3007 //IDEOGRAPHIC NUMBER ZERO - ,0x815B ,0x30FC //KATAKANA-HIRAGANA PROLONGED SOUND MARK - ,0x815C ,0x2015 //HORIZONTAL BAR - ,0x815D ,0x2010 //HYPHEN - ,0x815E ,0xFF0F //FULLWIDTH SOLIDUS - ,0x815F ,0xFF3C //FULLWIDTH REVERSE SOLIDUS - ,0x8160 ,0xFF5E //FULLWIDTH TILDE - ,0x8161 ,0x2225 //PARALLEL TO - ,0x8162 ,0xFF5C //FULLWIDTH VERTICAL LINE - ,0x8163 ,0x2026 //HORIZONTAL ELLIPSIS - ,0x8164 ,0x2025 //TWO DOT LEADER - ,0x8165 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0x8166 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0x8167 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0x8168 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0x8169 ,0xFF08 //FULLWIDTH LEFT PARENTHESIS - ,0x816A ,0xFF09 //FULLWIDTH RIGHT PARENTHESIS - ,0x816B ,0x3014 //LEFT TORTOISE SHELL BRACKET - ,0x816C ,0x3015 //RIGHT TORTOISE SHELL BRACKET - ,0x816D ,0xFF3B //FULLWIDTH LEFT SQUARE BRACKET - ,0x816E ,0xFF3D //FULLWIDTH RIGHT SQUARE BRACKET - ,0x816F ,0xFF5B //FULLWIDTH LEFT CURLY BRACKET - ,0x8170 ,0xFF5D //FULLWIDTH RIGHT CURLY BRACKET - ,0x8171 ,0x3008 //LEFT ANGLE BRACKET - ,0x8172 ,0x3009 //RIGHT ANGLE BRACKET - ,0x8173 ,0x300A //LEFT DOUBLE ANGLE BRACKET - ,0x8174 ,0x300B //RIGHT DOUBLE ANGLE BRACKET - ,0x8175 ,0x300C //LEFT CORNER BRACKET - ,0x8176 ,0x300D //RIGHT CORNER BRACKET - ,0x8177 ,0x300E //LEFT WHITE CORNER BRACKET - ,0x8178 ,0x300F //RIGHT WHITE CORNER BRACKET - ,0x8179 ,0x3010 //LEFT BLACK LENTICULAR BRACKET - ,0x817A ,0x3011 //RIGHT BLACK LENTICULAR BRACKET - ,0x817B ,0xFF0B //FULLWIDTH PLUS SIGN - ,0x817C ,0xFF0D //FULLWIDTH HYPHEN-MINUS - ,0x817D ,0x00B1 //PLUS-MINUS SIGN - ,0x817E ,0x00D7 //MULTIPLICATION SIGN - ,0x8180 ,0x00F7 //DIVISION SIGN - ,0x8181 ,0xFF1D //FULLWIDTH EQUALS SIGN - ,0x8182 ,0x2260 //NOT EQUAL TO - ,0x8183 ,0xFF1C //FULLWIDTH LESS-THAN SIGN - ,0x8184 ,0xFF1E //FULLWIDTH GREATER-THAN SIGN - ,0x8185 ,0x2266 //LESS-THAN OVER EQUAL TO - ,0x8186 ,0x2267 //GREATER-THAN OVER EQUAL TO - ,0x8187 ,0x221E //INFINITY - ,0x8188 ,0x2234 //THEREFORE - ,0x8189 ,0x2642 //MALE SIGN - ,0x818A ,0x2640 //FEMALE SIGN - ,0x818B ,0x00B0 //DEGREE SIGN - ,0x818C ,0x2032 //PRIME - ,0x818D ,0x2033 //DOUBLE PRIME - ,0x818E ,0x2103 //DEGREE CELSIUS - ,0x818F ,0xFFE5 //FULLWIDTH YEN SIGN - ,0x8190 ,0xFF04 //FULLWIDTH DOLLAR SIGN - ,0x8191 ,0xFFE0 //FULLWIDTH CENT SIGN - ,0x8192 ,0xFFE1 //FULLWIDTH POUND SIGN - ,0x8193 ,0xFF05 //FULLWIDTH PERCENT SIGN - ,0x8194 ,0xFF03 //FULLWIDTH NUMBER SIGN - ,0x8195 ,0xFF06 //FULLWIDTH AMPERSAND - ,0x8196 ,0xFF0A //FULLWIDTH ASTERISK - ,0x8197 ,0xFF20 //FULLWIDTH COMMERCIAL AT - ,0x8198 ,0x00A7 //SECTION SIGN - ,0x8199 ,0x2606 //WHITE STAR - ,0x819A ,0x2605 //BLACK STAR - ,0x819B ,0x25CB //WHITE CIRCLE - ,0x819C ,0x25CF //BLACK CIRCLE - ,0x819D ,0x25CE //BULLSEYE - ,0x819E ,0x25C7 //WHITE DIAMOND - ,0x819F ,0x25C6 //BLACK DIAMOND - ,0x81A0 ,0x25A1 //WHITE SQUARE - ,0x81A1 ,0x25A0 //BLACK SQUARE - ,0x81A2 ,0x25B3 //WHITE UP-POINTING TRIANGLE - ,0x81A3 ,0x25B2 //BLACK UP-POINTING TRIANGLE - ,0x81A4 ,0x25BD //WHITE DOWN-POINTING TRIANGLE - ,0x81A5 ,0x25BC //BLACK DOWN-POINTING TRIANGLE - ,0x81A6 ,0x203B //REFERENCE MARK - ,0x81A7 ,0x3012 //POSTAL MARK - ,0x81A8 ,0x2192 //RIGHTWARDS ARROW - ,0x81A9 ,0x2190 //LEFTWARDS ARROW - ,0x81AA ,0x2191 //UPWARDS ARROW - ,0x81AB ,0x2193 //DOWNWARDS ARROW - ,0x81AC ,0x3013 //GETA MARK - ,0x81B8 ,0x2208 //ELEMENT OF - ,0x81B9 ,0x220B //CONTAINS AS MEMBER - ,0x81BA ,0x2286 //SUBSET OF OR EQUAL TO - ,0x81BB ,0x2287 //SUPERSET OF OR EQUAL TO - ,0x81BC ,0x2282 //SUBSET OF - ,0x81BD ,0x2283 //SUPERSET OF - ,0x81BE ,0x222A //UNION - ,0x81BF ,0x2229 //INTERSECTION - ,0x81C8 ,0x2227 //LOGICAL AND - ,0x81C9 ,0x2228 //LOGICAL OR - ,0x81CA ,0xFFE2 //FULLWIDTH NOT SIGN - ,0x81CB ,0x21D2 //RIGHTWARDS DOUBLE ARROW - ,0x81CC ,0x21D4 //LEFT RIGHT DOUBLE ARROW - ,0x81CD ,0x2200 //FOR ALL - ,0x81CE ,0x2203 //THERE EXISTS - ,0x81DA ,0x2220 //ANGLE - ,0x81DB ,0x22A5 //UP TACK - ,0x81DC ,0x2312 //ARC - ,0x81DD ,0x2202 //PARTIAL DIFFERENTIAL - ,0x81DE ,0x2207 //NABLA - ,0x81DF ,0x2261 //IDENTICAL TO - ,0x81E0 ,0x2252 //APPROXIMATELY EQUAL TO OR THE IMAGE OF - ,0x81E1 ,0x226A //MUCH LESS-THAN - ,0x81E2 ,0x226B //MUCH GREATER-THAN - ,0x81E3 ,0x221A //SQUARE ROOT - ,0x81E4 ,0x223D //REVERSED TILDE - ,0x81E5 ,0x221D //PROPORTIONAL TO - ,0x81E6 ,0x2235 //BECAUSE - ,0x81E7 ,0x222B //INTEGRAL - ,0x81E8 ,0x222C //DOUBLE INTEGRAL - ,0x81F0 ,0x212B //ANGSTROM SIGN - ,0x81F1 ,0x2030 //PER MILLE SIGN - ,0x81F2 ,0x266F //MUSIC SHARP SIGN - ,0x81F3 ,0x266D //MUSIC FLAT SIGN - ,0x81F4 ,0x266A //EIGHTH NOTE - ,0x81F5 ,0x2020 //DAGGER - ,0x81F6 ,0x2021 //DOUBLE DAGGER - ,0x81F7 ,0x00B6 //PILCROW SIGN - ,0x81FC ,0x25EF //LARGE CIRCLE - ,0x824F ,0xFF10 //FULLWIDTH DIGIT ZERO - ,0x8250 ,0xFF11 //FULLWIDTH DIGIT ONE - ,0x8251 ,0xFF12 //FULLWIDTH DIGIT TWO - ,0x8252 ,0xFF13 //FULLWIDTH DIGIT THREE - ,0x8253 ,0xFF14 //FULLWIDTH DIGIT FOUR - ,0x8254 ,0xFF15 //FULLWIDTH DIGIT FIVE - ,0x8255 ,0xFF16 //FULLWIDTH DIGIT SIX - ,0x8256 ,0xFF17 //FULLWIDTH DIGIT SEVEN - ,0x8257 ,0xFF18 //FULLWIDTH DIGIT EIGHT - ,0x8258 ,0xFF19 //FULLWIDTH DIGIT NINE - ,0x8260 ,0xFF21 //FULLWIDTH LATIN CAPITAL LETTER A - ,0x8261 ,0xFF22 //FULLWIDTH LATIN CAPITAL LETTER B - ,0x8262 ,0xFF23 //FULLWIDTH LATIN CAPITAL LETTER C - ,0x8263 ,0xFF24 //FULLWIDTH LATIN CAPITAL LETTER D - ,0x8264 ,0xFF25 //FULLWIDTH LATIN CAPITAL LETTER E - ,0x8265 ,0xFF26 //FULLWIDTH LATIN CAPITAL LETTER F - ,0x8266 ,0xFF27 //FULLWIDTH LATIN CAPITAL LETTER G - ,0x8267 ,0xFF28 //FULLWIDTH LATIN CAPITAL LETTER H - ,0x8268 ,0xFF29 //FULLWIDTH LATIN CAPITAL LETTER I - ,0x8269 ,0xFF2A //FULLWIDTH LATIN CAPITAL LETTER J - ,0x826A ,0xFF2B //FULLWIDTH LATIN CAPITAL LETTER K - ,0x826B ,0xFF2C //FULLWIDTH LATIN CAPITAL LETTER L - ,0x826C ,0xFF2D //FULLWIDTH LATIN CAPITAL LETTER M - ,0x826D ,0xFF2E //FULLWIDTH LATIN CAPITAL LETTER N - ,0x826E ,0xFF2F //FULLWIDTH LATIN CAPITAL LETTER O - ,0x826F ,0xFF30 //FULLWIDTH LATIN CAPITAL LETTER P - ,0x8270 ,0xFF31 //FULLWIDTH LATIN CAPITAL LETTER Q - ,0x8271 ,0xFF32 //FULLWIDTH LATIN CAPITAL LETTER R - ,0x8272 ,0xFF33 //FULLWIDTH LATIN CAPITAL LETTER S - ,0x8273 ,0xFF34 //FULLWIDTH LATIN CAPITAL LETTER T - ,0x8274 ,0xFF35 //FULLWIDTH LATIN CAPITAL LETTER U - ,0x8275 ,0xFF36 //FULLWIDTH LATIN CAPITAL LETTER V - ,0x8276 ,0xFF37 //FULLWIDTH LATIN CAPITAL LETTER W - ,0x8277 ,0xFF38 //FULLWIDTH LATIN CAPITAL LETTER X - ,0x8278 ,0xFF39 //FULLWIDTH LATIN CAPITAL LETTER Y - ,0x8279 ,0xFF3A //FULLWIDTH LATIN CAPITAL LETTER Z - ,0x8281 ,0xFF41 //FULLWIDTH LATIN SMALL LETTER A - ,0x8282 ,0xFF42 //FULLWIDTH LATIN SMALL LETTER B - ,0x8283 ,0xFF43 //FULLWIDTH LATIN SMALL LETTER C - ,0x8284 ,0xFF44 //FULLWIDTH LATIN SMALL LETTER D - ,0x8285 ,0xFF45 //FULLWIDTH LATIN SMALL LETTER E - ,0x8286 ,0xFF46 //FULLWIDTH LATIN SMALL LETTER F - ,0x8287 ,0xFF47 //FULLWIDTH LATIN SMALL LETTER G - ,0x8288 ,0xFF48 //FULLWIDTH LATIN SMALL LETTER H - ,0x8289 ,0xFF49 //FULLWIDTH LATIN SMALL LETTER I - ,0x828A ,0xFF4A //FULLWIDTH LATIN SMALL LETTER J - ,0x828B ,0xFF4B //FULLWIDTH LATIN SMALL LETTER K - ,0x828C ,0xFF4C //FULLWIDTH LATIN SMALL LETTER L - ,0x828D ,0xFF4D //FULLWIDTH LATIN SMALL LETTER M - ,0x828E ,0xFF4E //FULLWIDTH LATIN SMALL LETTER N - ,0x828F ,0xFF4F //FULLWIDTH LATIN SMALL LETTER O - ,0x8290 ,0xFF50 //FULLWIDTH LATIN SMALL LETTER P - ,0x8291 ,0xFF51 //FULLWIDTH LATIN SMALL LETTER Q - ,0x8292 ,0xFF52 //FULLWIDTH LATIN SMALL LETTER R - ,0x8293 ,0xFF53 //FULLWIDTH LATIN SMALL LETTER S - ,0x8294 ,0xFF54 //FULLWIDTH LATIN SMALL LETTER T - ,0x8295 ,0xFF55 //FULLWIDTH LATIN SMALL LETTER U - ,0x8296 ,0xFF56 //FULLWIDTH LATIN SMALL LETTER V - ,0x8297 ,0xFF57 //FULLWIDTH LATIN SMALL LETTER W - ,0x8298 ,0xFF58 //FULLWIDTH LATIN SMALL LETTER X - ,0x8299 ,0xFF59 //FULLWIDTH LATIN SMALL LETTER Y - ,0x829A ,0xFF5A //FULLWIDTH LATIN SMALL LETTER Z - ,0x829F ,0x3041 //HIRAGANA LETTER SMALL A - ,0x82A0 ,0x3042 //HIRAGANA LETTER A - ,0x82A1 ,0x3043 //HIRAGANA LETTER SMALL I - ,0x82A2 ,0x3044 //HIRAGANA LETTER I - ,0x82A3 ,0x3045 //HIRAGANA LETTER SMALL U - ,0x82A4 ,0x3046 //HIRAGANA LETTER U - ,0x82A5 ,0x3047 //HIRAGANA LETTER SMALL E - ,0x82A6 ,0x3048 //HIRAGANA LETTER E - ,0x82A7 ,0x3049 //HIRAGANA LETTER SMALL O - ,0x82A8 ,0x304A //HIRAGANA LETTER O - ,0x82A9 ,0x304B //HIRAGANA LETTER KA - ,0x82AA ,0x304C //HIRAGANA LETTER GA - ,0x82AB ,0x304D //HIRAGANA LETTER KI - ,0x82AC ,0x304E //HIRAGANA LETTER GI - ,0x82AD ,0x304F //HIRAGANA LETTER KU - ,0x82AE ,0x3050 //HIRAGANA LETTER GU - ,0x82AF ,0x3051 //HIRAGANA LETTER KE - ,0x82B0 ,0x3052 //HIRAGANA LETTER GE - ,0x82B1 ,0x3053 //HIRAGANA LETTER KO - ,0x82B2 ,0x3054 //HIRAGANA LETTER GO - ,0x82B3 ,0x3055 //HIRAGANA LETTER SA - ,0x82B4 ,0x3056 //HIRAGANA LETTER ZA - ,0x82B5 ,0x3057 //HIRAGANA LETTER SI - ,0x82B6 ,0x3058 //HIRAGANA LETTER ZI - ,0x82B7 ,0x3059 //HIRAGANA LETTER SU - ,0x82B8 ,0x305A //HIRAGANA LETTER ZU - ,0x82B9 ,0x305B //HIRAGANA LETTER SE - ,0x82BA ,0x305C //HIRAGANA LETTER ZE - ,0x82BB ,0x305D //HIRAGANA LETTER SO - ,0x82BC ,0x305E //HIRAGANA LETTER ZO - ,0x82BD ,0x305F //HIRAGANA LETTER TA - ,0x82BE ,0x3060 //HIRAGANA LETTER DA - ,0x82BF ,0x3061 //HIRAGANA LETTER TI - ,0x82C0 ,0x3062 //HIRAGANA LETTER DI - ,0x82C1 ,0x3063 //HIRAGANA LETTER SMALL TU - ,0x82C2 ,0x3064 //HIRAGANA LETTER TU - ,0x82C3 ,0x3065 //HIRAGANA LETTER DU - ,0x82C4 ,0x3066 //HIRAGANA LETTER TE - ,0x82C5 ,0x3067 //HIRAGANA LETTER DE - ,0x82C6 ,0x3068 //HIRAGANA LETTER TO - ,0x82C7 ,0x3069 //HIRAGANA LETTER DO - ,0x82C8 ,0x306A //HIRAGANA LETTER NA - ,0x82C9 ,0x306B //HIRAGANA LETTER NI - ,0x82CA ,0x306C //HIRAGANA LETTER NU - ,0x82CB ,0x306D //HIRAGANA LETTER NE - ,0x82CC ,0x306E //HIRAGANA LETTER NO - ,0x82CD ,0x306F //HIRAGANA LETTER HA - ,0x82CE ,0x3070 //HIRAGANA LETTER BA - ,0x82CF ,0x3071 //HIRAGANA LETTER PA - ,0x82D0 ,0x3072 //HIRAGANA LETTER HI - ,0x82D1 ,0x3073 //HIRAGANA LETTER BI - ,0x82D2 ,0x3074 //HIRAGANA LETTER PI - ,0x82D3 ,0x3075 //HIRAGANA LETTER HU - ,0x82D4 ,0x3076 //HIRAGANA LETTER BU - ,0x82D5 ,0x3077 //HIRAGANA LETTER PU - ,0x82D6 ,0x3078 //HIRAGANA LETTER HE - ,0x82D7 ,0x3079 //HIRAGANA LETTER BE - ,0x82D8 ,0x307A //HIRAGANA LETTER PE - ,0x82D9 ,0x307B //HIRAGANA LETTER HO - ,0x82DA ,0x307C //HIRAGANA LETTER BO - ,0x82DB ,0x307D //HIRAGANA LETTER PO - ,0x82DC ,0x307E //HIRAGANA LETTER MA - ,0x82DD ,0x307F //HIRAGANA LETTER MI - ,0x82DE ,0x3080 //HIRAGANA LETTER MU - ,0x82DF ,0x3081 //HIRAGANA LETTER ME - ,0x82E0 ,0x3082 //HIRAGANA LETTER MO - ,0x82E1 ,0x3083 //HIRAGANA LETTER SMALL YA - ,0x82E2 ,0x3084 //HIRAGANA LETTER YA - ,0x82E3 ,0x3085 //HIRAGANA LETTER SMALL YU - ,0x82E4 ,0x3086 //HIRAGANA LETTER YU - ,0x82E5 ,0x3087 //HIRAGANA LETTER SMALL YO - ,0x82E6 ,0x3088 //HIRAGANA LETTER YO - ,0x82E7 ,0x3089 //HIRAGANA LETTER RA - ,0x82E8 ,0x308A //HIRAGANA LETTER RI - ,0x82E9 ,0x308B //HIRAGANA LETTER RU - ,0x82EA ,0x308C //HIRAGANA LETTER RE - ,0x82EB ,0x308D //HIRAGANA LETTER RO - ,0x82EC ,0x308E //HIRAGANA LETTER SMALL WA - ,0x82ED ,0x308F //HIRAGANA LETTER WA - ,0x82EE ,0x3090 //HIRAGANA LETTER WI - ,0x82EF ,0x3091 //HIRAGANA LETTER WE - ,0x82F0 ,0x3092 //HIRAGANA LETTER WO - ,0x82F1 ,0x3093 //HIRAGANA LETTER N - ,0x8340 ,0x30A1 //KATAKANA LETTER SMALL A - ,0x8341 ,0x30A2 //KATAKANA LETTER A - ,0x8342 ,0x30A3 //KATAKANA LETTER SMALL I - ,0x8343 ,0x30A4 //KATAKANA LETTER I - ,0x8344 ,0x30A5 //KATAKANA LETTER SMALL U - ,0x8345 ,0x30A6 //KATAKANA LETTER U - ,0x8346 ,0x30A7 //KATAKANA LETTER SMALL E - ,0x8347 ,0x30A8 //KATAKANA LETTER E - ,0x8348 ,0x30A9 //KATAKANA LETTER SMALL O - ,0x8349 ,0x30AA //KATAKANA LETTER O - ,0x834A ,0x30AB //KATAKANA LETTER KA - ,0x834B ,0x30AC //KATAKANA LETTER GA - ,0x834C ,0x30AD //KATAKANA LETTER KI - ,0x834D ,0x30AE //KATAKANA LETTER GI - ,0x834E ,0x30AF //KATAKANA LETTER KU - ,0x834F ,0x30B0 //KATAKANA LETTER GU - ,0x8350 ,0x30B1 //KATAKANA LETTER KE - ,0x8351 ,0x30B2 //KATAKANA LETTER GE - ,0x8352 ,0x30B3 //KATAKANA LETTER KO - ,0x8353 ,0x30B4 //KATAKANA LETTER GO - ,0x8354 ,0x30B5 //KATAKANA LETTER SA - ,0x8355 ,0x30B6 //KATAKANA LETTER ZA - ,0x8356 ,0x30B7 //KATAKANA LETTER SI - ,0x8357 ,0x30B8 //KATAKANA LETTER ZI - ,0x8358 ,0x30B9 //KATAKANA LETTER SU - ,0x8359 ,0x30BA //KATAKANA LETTER ZU - ,0x835A ,0x30BB //KATAKANA LETTER SE - ,0x835B ,0x30BC //KATAKANA LETTER ZE - ,0x835C ,0x30BD //KATAKANA LETTER SO - ,0x835D ,0x30BE //KATAKANA LETTER ZO - ,0x835E ,0x30BF //KATAKANA LETTER TA - ,0x835F ,0x30C0 //KATAKANA LETTER DA - ,0x8360 ,0x30C1 //KATAKANA LETTER TI - ,0x8361 ,0x30C2 //KATAKANA LETTER DI - ,0x8362 ,0x30C3 //KATAKANA LETTER SMALL TU - ,0x8363 ,0x30C4 //KATAKANA LETTER TU - ,0x8364 ,0x30C5 //KATAKANA LETTER DU - ,0x8365 ,0x30C6 //KATAKANA LETTER TE - ,0x8366 ,0x30C7 //KATAKANA LETTER DE - ,0x8367 ,0x30C8 //KATAKANA LETTER TO - ,0x8368 ,0x30C9 //KATAKANA LETTER DO - ,0x8369 ,0x30CA //KATAKANA LETTER NA - ,0x836A ,0x30CB //KATAKANA LETTER NI - ,0x836B ,0x30CC //KATAKANA LETTER NU - ,0x836C ,0x30CD //KATAKANA LETTER NE - ,0x836D ,0x30CE //KATAKANA LETTER NO - ,0x836E ,0x30CF //KATAKANA LETTER HA - ,0x836F ,0x30D0 //KATAKANA LETTER BA - ,0x8370 ,0x30D1 //KATAKANA LETTER PA - ,0x8371 ,0x30D2 //KATAKANA LETTER HI - ,0x8372 ,0x30D3 //KATAKANA LETTER BI - ,0x8373 ,0x30D4 //KATAKANA LETTER PI - ,0x8374 ,0x30D5 //KATAKANA LETTER HU - ,0x8375 ,0x30D6 //KATAKANA LETTER BU - ,0x8376 ,0x30D7 //KATAKANA LETTER PU - ,0x8377 ,0x30D8 //KATAKANA LETTER HE - ,0x8378 ,0x30D9 //KATAKANA LETTER BE - ,0x8379 ,0x30DA //KATAKANA LETTER PE - ,0x837A ,0x30DB //KATAKANA LETTER HO - ,0x837B ,0x30DC //KATAKANA LETTER BO - ,0x837C ,0x30DD //KATAKANA LETTER PO - ,0x837D ,0x30DE //KATAKANA LETTER MA - ,0x837E ,0x30DF //KATAKANA LETTER MI - ,0x8380 ,0x30E0 //KATAKANA LETTER MU - ,0x8381 ,0x30E1 //KATAKANA LETTER ME - ,0x8382 ,0x30E2 //KATAKANA LETTER MO - ,0x8383 ,0x30E3 //KATAKANA LETTER SMALL YA - ,0x8384 ,0x30E4 //KATAKANA LETTER YA - ,0x8385 ,0x30E5 //KATAKANA LETTER SMALL YU - ,0x8386 ,0x30E6 //KATAKANA LETTER YU - ,0x8387 ,0x30E7 //KATAKANA LETTER SMALL YO - ,0x8388 ,0x30E8 //KATAKANA LETTER YO - ,0x8389 ,0x30E9 //KATAKANA LETTER RA - ,0x838A ,0x30EA //KATAKANA LETTER RI - ,0x838B ,0x30EB //KATAKANA LETTER RU - ,0x838C ,0x30EC //KATAKANA LETTER RE - ,0x838D ,0x30ED //KATAKANA LETTER RO - ,0x838E ,0x30EE //KATAKANA LETTER SMALL WA - ,0x838F ,0x30EF //KATAKANA LETTER WA - ,0x8390 ,0x30F0 //KATAKANA LETTER WI - ,0x8391 ,0x30F1 //KATAKANA LETTER WE - ,0x8392 ,0x30F2 //KATAKANA LETTER WO - ,0x8393 ,0x30F3 //KATAKANA LETTER N - ,0x8394 ,0x30F4 //KATAKANA LETTER VU - ,0x8395 ,0x30F5 //KATAKANA LETTER SMALL KA - ,0x8396 ,0x30F6 //KATAKANA LETTER SMALL KE - ,0x839F ,0x0391 //GREEK CAPITAL LETTER ALPHA - ,0x83A0 ,0x0392 //GREEK CAPITAL LETTER BETA - ,0x83A1 ,0x0393 //GREEK CAPITAL LETTER GAMMA - ,0x83A2 ,0x0394 //GREEK CAPITAL LETTER DELTA - ,0x83A3 ,0x0395 //GREEK CAPITAL LETTER EPSILON - ,0x83A4 ,0x0396 //GREEK CAPITAL LETTER ZETA - ,0x83A5 ,0x0397 //GREEK CAPITAL LETTER ETA - ,0x83A6 ,0x0398 //GREEK CAPITAL LETTER THETA - ,0x83A7 ,0x0399 //GREEK CAPITAL LETTER IOTA - ,0x83A8 ,0x039A //GREEK CAPITAL LETTER KAPPA - ,0x83A9 ,0x039B //GREEK CAPITAL LETTER LAMDA - ,0x83AA ,0x039C //GREEK CAPITAL LETTER MU - ,0x83AB ,0x039D //GREEK CAPITAL LETTER NU - ,0x83AC ,0x039E //GREEK CAPITAL LETTER XI - ,0x83AD ,0x039F //GREEK CAPITAL LETTER OMICRON - ,0x83AE ,0x03A0 //GREEK CAPITAL LETTER PI - ,0x83AF ,0x03A1 //GREEK CAPITAL LETTER RHO - ,0x83B0 ,0x03A3 //GREEK CAPITAL LETTER SIGMA - ,0x83B1 ,0x03A4 //GREEK CAPITAL LETTER TAU - ,0x83B2 ,0x03A5 //GREEK CAPITAL LETTER UPSILON - ,0x83B3 ,0x03A6 //GREEK CAPITAL LETTER PHI - ,0x83B4 ,0x03A7 //GREEK CAPITAL LETTER CHI - ,0x83B5 ,0x03A8 //GREEK CAPITAL LETTER PSI - ,0x83B6 ,0x03A9 //GREEK CAPITAL LETTER OMEGA - ,0x83BF ,0x03B1 //GREEK SMALL LETTER ALPHA - ,0x83C0 ,0x03B2 //GREEK SMALL LETTER BETA - ,0x83C1 ,0x03B3 //GREEK SMALL LETTER GAMMA - ,0x83C2 ,0x03B4 //GREEK SMALL LETTER DELTA - ,0x83C3 ,0x03B5 //GREEK SMALL LETTER EPSILON - ,0x83C4 ,0x03B6 //GREEK SMALL LETTER ZETA - ,0x83C5 ,0x03B7 //GREEK SMALL LETTER ETA - ,0x83C6 ,0x03B8 //GREEK SMALL LETTER THETA - ,0x83C7 ,0x03B9 //GREEK SMALL LETTER IOTA - ,0x83C8 ,0x03BA //GREEK SMALL LETTER KAPPA - ,0x83C9 ,0x03BB //GREEK SMALL LETTER LAMDA - ,0x83CA ,0x03BC //GREEK SMALL LETTER MU - ,0x83CB ,0x03BD //GREEK SMALL LETTER NU - ,0x83CC ,0x03BE //GREEK SMALL LETTER XI - ,0x83CD ,0x03BF //GREEK SMALL LETTER OMICRON - ,0x83CE ,0x03C0 //GREEK SMALL LETTER PI - ,0x83CF ,0x03C1 //GREEK SMALL LETTER RHO - ,0x83D0 ,0x03C3 //GREEK SMALL LETTER SIGMA - ,0x83D1 ,0x03C4 //GREEK SMALL LETTER TAU - ,0x83D2 ,0x03C5 //GREEK SMALL LETTER UPSILON - ,0x83D3 ,0x03C6 //GREEK SMALL LETTER PHI - ,0x83D4 ,0x03C7 //GREEK SMALL LETTER CHI - ,0x83D5 ,0x03C8 //GREEK SMALL LETTER PSI - ,0x83D6 ,0x03C9 //GREEK SMALL LETTER OMEGA - ,0x8440 ,0x0410 //CYRILLIC CAPITAL LETTER A - ,0x8441 ,0x0411 //CYRILLIC CAPITAL LETTER BE - ,0x8442 ,0x0412 //CYRILLIC CAPITAL LETTER VE - ,0x8443 ,0x0413 //CYRILLIC CAPITAL LETTER GHE - ,0x8444 ,0x0414 //CYRILLIC CAPITAL LETTER DE - ,0x8445 ,0x0415 //CYRILLIC CAPITAL LETTER IE - ,0x8446 ,0x0401 //CYRILLIC CAPITAL LETTER IO - ,0x8447 ,0x0416 //CYRILLIC CAPITAL LETTER ZHE - ,0x8448 ,0x0417 //CYRILLIC CAPITAL LETTER ZE - ,0x8449 ,0x0418 //CYRILLIC CAPITAL LETTER I - ,0x844A ,0x0419 //CYRILLIC CAPITAL LETTER SHORT I - ,0x844B ,0x041A //CYRILLIC CAPITAL LETTER KA - ,0x844C ,0x041B //CYRILLIC CAPITAL LETTER EL - ,0x844D ,0x041C //CYRILLIC CAPITAL LETTER EM - ,0x844E ,0x041D //CYRILLIC CAPITAL LETTER EN - ,0x844F ,0x041E //CYRILLIC CAPITAL LETTER O - ,0x8450 ,0x041F //CYRILLIC CAPITAL LETTER PE - ,0x8451 ,0x0420 //CYRILLIC CAPITAL LETTER ER - ,0x8452 ,0x0421 //CYRILLIC CAPITAL LETTER ES - ,0x8453 ,0x0422 //CYRILLIC CAPITAL LETTER TE - ,0x8454 ,0x0423 //CYRILLIC CAPITAL LETTER U - ,0x8455 ,0x0424 //CYRILLIC CAPITAL LETTER EF - ,0x8456 ,0x0425 //CYRILLIC CAPITAL LETTER HA - ,0x8457 ,0x0426 //CYRILLIC CAPITAL LETTER TSE - ,0x8458 ,0x0427 //CYRILLIC CAPITAL LETTER CHE - ,0x8459 ,0x0428 //CYRILLIC CAPITAL LETTER SHA - ,0x845A ,0x0429 //CYRILLIC CAPITAL LETTER SHCHA - ,0x845B ,0x042A //CYRILLIC CAPITAL LETTER HARD SIGN - ,0x845C ,0x042B //CYRILLIC CAPITAL LETTER YERU - ,0x845D ,0x042C //CYRILLIC CAPITAL LETTER SOFT SIGN - ,0x845E ,0x042D //CYRILLIC CAPITAL LETTER E - ,0x845F ,0x042E //CYRILLIC CAPITAL LETTER YU - ,0x8460 ,0x042F //CYRILLIC CAPITAL LETTER YA - ,0x8470 ,0x0430 //CYRILLIC SMALL LETTER A - ,0x8471 ,0x0431 //CYRILLIC SMALL LETTER BE - ,0x8472 ,0x0432 //CYRILLIC SMALL LETTER VE - ,0x8473 ,0x0433 //CYRILLIC SMALL LETTER GHE - ,0x8474 ,0x0434 //CYRILLIC SMALL LETTER DE - ,0x8475 ,0x0435 //CYRILLIC SMALL LETTER IE - ,0x8476 ,0x0451 //CYRILLIC SMALL LETTER IO - ,0x8477 ,0x0436 //CYRILLIC SMALL LETTER ZHE - ,0x8478 ,0x0437 //CYRILLIC SMALL LETTER ZE - ,0x8479 ,0x0438 //CYRILLIC SMALL LETTER I - ,0x847A ,0x0439 //CYRILLIC SMALL LETTER SHORT I - ,0x847B ,0x043A //CYRILLIC SMALL LETTER KA - ,0x847C ,0x043B //CYRILLIC SMALL LETTER EL - ,0x847D ,0x043C //CYRILLIC SMALL LETTER EM - ,0x847E ,0x043D //CYRILLIC SMALL LETTER EN - ,0x8480 ,0x043E //CYRILLIC SMALL LETTER O - ,0x8481 ,0x043F //CYRILLIC SMALL LETTER PE - ,0x8482 ,0x0440 //CYRILLIC SMALL LETTER ER - ,0x8483 ,0x0441 //CYRILLIC SMALL LETTER ES - ,0x8484 ,0x0442 //CYRILLIC SMALL LETTER TE - ,0x8485 ,0x0443 //CYRILLIC SMALL LETTER U - ,0x8486 ,0x0444 //CYRILLIC SMALL LETTER EF - ,0x8487 ,0x0445 //CYRILLIC SMALL LETTER HA - ,0x8488 ,0x0446 //CYRILLIC SMALL LETTER TSE - ,0x8489 ,0x0447 //CYRILLIC SMALL LETTER CHE - ,0x848A ,0x0448 //CYRILLIC SMALL LETTER SHA - ,0x848B ,0x0449 //CYRILLIC SMALL LETTER SHCHA - ,0x848C ,0x044A //CYRILLIC SMALL LETTER HARD SIGN - ,0x848D ,0x044B //CYRILLIC SMALL LETTER YERU - ,0x848E ,0x044C //CYRILLIC SMALL LETTER SOFT SIGN - ,0x848F ,0x044D //CYRILLIC SMALL LETTER E - ,0x8490 ,0x044E //CYRILLIC SMALL LETTER YU - ,0x8491 ,0x044F //CYRILLIC SMALL LETTER YA - ,0x849F ,0x2500 //BOX DRAWINGS LIGHT HORIZONTAL - ,0x84A0 ,0x2502 //BOX DRAWINGS LIGHT VERTICAL - ,0x84A1 ,0x250C //BOX DRAWINGS LIGHT DOWN AND RIGHT - ,0x84A2 ,0x2510 //BOX DRAWINGS LIGHT DOWN AND LEFT - ,0x84A3 ,0x2518 //BOX DRAWINGS LIGHT UP AND LEFT - ,0x84A4 ,0x2514 //BOX DRAWINGS LIGHT UP AND RIGHT - ,0x84A5 ,0x251C //BOX DRAWINGS LIGHT VERTICAL AND RIGHT - ,0x84A6 ,0x252C //BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - ,0x84A7 ,0x2524 //BOX DRAWINGS LIGHT VERTICAL AND LEFT - ,0x84A8 ,0x2534 //BOX DRAWINGS LIGHT UP AND HORIZONTAL - ,0x84A9 ,0x253C //BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - ,0x84AA ,0x2501 //BOX DRAWINGS HEAVY HORIZONTAL - ,0x84AB ,0x2503 //BOX DRAWINGS HEAVY VERTICAL - ,0x84AC ,0x250F //BOX DRAWINGS HEAVY DOWN AND RIGHT - ,0x84AD ,0x2513 //BOX DRAWINGS HEAVY DOWN AND LEFT - ,0x84AE ,0x251B //BOX DRAWINGS HEAVY UP AND LEFT - ,0x84AF ,0x2517 //BOX DRAWINGS HEAVY UP AND RIGHT - ,0x84B0 ,0x2523 //BOX DRAWINGS HEAVY VERTICAL AND RIGHT - ,0x84B1 ,0x2533 //BOX DRAWINGS HEAVY DOWN AND HORIZONTAL - ,0x84B2 ,0x252B //BOX DRAWINGS HEAVY VERTICAL AND LEFT - ,0x84B3 ,0x253B //BOX DRAWINGS HEAVY UP AND HORIZONTAL - ,0x84B4 ,0x254B //BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL - ,0x84B5 ,0x2520 //BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT - ,0x84B6 ,0x252F //BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY - ,0x84B7 ,0x2528 //BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT - ,0x84B8 ,0x2537 //BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY - ,0x84B9 ,0x253F //BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY - ,0x84BA ,0x251D //BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY - ,0x84BB ,0x2530 //BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT - ,0x84BC ,0x2525 //BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY - ,0x84BD ,0x2538 //BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT - ,0x84BE ,0x2542 //BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT - ,0x8740 ,0x2460 //CIRCLED DIGIT ONE - ,0x8741 ,0x2461 //CIRCLED DIGIT TWO - ,0x8742 ,0x2462 //CIRCLED DIGIT THREE - ,0x8743 ,0x2463 //CIRCLED DIGIT FOUR - ,0x8744 ,0x2464 //CIRCLED DIGIT FIVE - ,0x8745 ,0x2465 //CIRCLED DIGIT SIX - ,0x8746 ,0x2466 //CIRCLED DIGIT SEVEN - ,0x8747 ,0x2467 //CIRCLED DIGIT EIGHT - ,0x8748 ,0x2468 //CIRCLED DIGIT NINE - ,0x8749 ,0x2469 //CIRCLED NUMBER TEN - ,0x874A ,0x246A //CIRCLED NUMBER ELEVEN - ,0x874B ,0x246B //CIRCLED NUMBER TWELVE - ,0x874C ,0x246C //CIRCLED NUMBER THIRTEEN - ,0x874D ,0x246D //CIRCLED NUMBER FOURTEEN - ,0x874E ,0x246E //CIRCLED NUMBER FIFTEEN - ,0x874F ,0x246F //CIRCLED NUMBER SIXTEEN - ,0x8750 ,0x2470 //CIRCLED NUMBER SEVENTEEN - ,0x8751 ,0x2471 //CIRCLED NUMBER EIGHTEEN - ,0x8752 ,0x2472 //CIRCLED NUMBER NINETEEN - ,0x8753 ,0x2473 //CIRCLED NUMBER TWENTY - ,0x8754 ,0x2160 //ROMAN NUMERAL ONE - ,0x8755 ,0x2161 //ROMAN NUMERAL TWO - ,0x8756 ,0x2162 //ROMAN NUMERAL THREE - ,0x8757 ,0x2163 //ROMAN NUMERAL FOUR - ,0x8758 ,0x2164 //ROMAN NUMERAL FIVE - ,0x8759 ,0x2165 //ROMAN NUMERAL SIX - ,0x875A ,0x2166 //ROMAN NUMERAL SEVEN - ,0x875B ,0x2167 //ROMAN NUMERAL EIGHT - ,0x875C ,0x2168 //ROMAN NUMERAL NINE - ,0x875D ,0x2169 //ROMAN NUMERAL TEN - ,0x875F ,0x3349 //SQUARE MIRI - ,0x8760 ,0x3314 //SQUARE KIRO - ,0x8761 ,0x3322 //SQUARE SENTI - ,0x8762 ,0x334D //SQUARE MEETORU - ,0x8763 ,0x3318 //SQUARE GURAMU - ,0x8764 ,0x3327 //SQUARE TON - ,0x8765 ,0x3303 //SQUARE AARU - ,0x8766 ,0x3336 //SQUARE HEKUTAARU - ,0x8767 ,0x3351 //SQUARE RITTORU - ,0x8768 ,0x3357 //SQUARE WATTO - ,0x8769 ,0x330D //SQUARE KARORII - ,0x876A ,0x3326 //SQUARE DORU - ,0x876B ,0x3323 //SQUARE SENTO - ,0x876C ,0x332B //SQUARE PAASENTO - ,0x876D ,0x334A //SQUARE MIRIBAARU - ,0x876E ,0x333B //SQUARE PEEZI - ,0x876F ,0x339C //SQUARE MM - ,0x8770 ,0x339D //SQUARE CM - ,0x8771 ,0x339E //SQUARE KM - ,0x8772 ,0x338E //SQUARE MG - ,0x8773 ,0x338F //SQUARE KG - ,0x8774 ,0x33C4 //SQUARE CC - ,0x8775 ,0x33A1 //SQUARE M SQUARED - ,0x877E ,0x337B //SQUARE ERA NAME HEISEI - ,0x8780 ,0x301D //REVERSED DOUBLE PRIME QUOTATION MARK - ,0x8781 ,0x301F //LOW DOUBLE PRIME QUOTATION MARK - ,0x8782 ,0x2116 //NUMERO SIGN - ,0x8783 ,0x33CD //SQUARE KK - ,0x8784 ,0x2121 //TELEPHONE SIGN - ,0x8785 ,0x32A4 //CIRCLED IDEOGRAPH HIGH - ,0x8786 ,0x32A5 //CIRCLED IDEOGRAPH CENTRE - ,0x8787 ,0x32A6 //CIRCLED IDEOGRAPH LOW - ,0x8788 ,0x32A7 //CIRCLED IDEOGRAPH LEFT - ,0x8789 ,0x32A8 //CIRCLED IDEOGRAPH RIGHT - ,0x878A ,0x3231 //PARENTHESIZED IDEOGRAPH STOCK - ,0x878B ,0x3232 //PARENTHESIZED IDEOGRAPH HAVE - ,0x878C ,0x3239 //PARENTHESIZED IDEOGRAPH REPRESENT - ,0x878D ,0x337E //SQUARE ERA NAME MEIZI - ,0x878E ,0x337D //SQUARE ERA NAME TAISYOU - ,0x878F ,0x337C //SQUARE ERA NAME SYOUWA - ,0x8790 ,0x2252 //APPROXIMATELY EQUAL TO OR THE IMAGE OF - ,0x8791 ,0x2261 //IDENTICAL TO - ,0x8792 ,0x222B //INTEGRAL - ,0x8793 ,0x222E //CONTOUR INTEGRAL - ,0x8794 ,0x2211 //N-ARY SUMMATION - ,0x8795 ,0x221A //SQUARE ROOT - ,0x8796 ,0x22A5 //UP TACK - ,0x8797 ,0x2220 //ANGLE - ,0x8798 ,0x221F //RIGHT ANGLE - ,0x8799 ,0x22BF //RIGHT TRIANGLE - ,0x879A ,0x2235 //BECAUSE - ,0x879B ,0x2229 //INTERSECTION - ,0x879C ,0x222A //UNION - ,0x889F ,0x4E9C //CJK UNIFIED IDEOGRAPH - ,0x88A0 ,0x5516 //CJK UNIFIED IDEOGRAPH - ,0x88A1 ,0x5A03 //CJK UNIFIED IDEOGRAPH - ,0x88A2 ,0x963F //CJK UNIFIED IDEOGRAPH - ,0x88A3 ,0x54C0 //CJK UNIFIED IDEOGRAPH - ,0x88A4 ,0x611B //CJK UNIFIED IDEOGRAPH - ,0x88A5 ,0x6328 //CJK UNIFIED IDEOGRAPH - ,0x88A6 ,0x59F6 //CJK UNIFIED IDEOGRAPH - ,0x88A7 ,0x9022 //CJK UNIFIED IDEOGRAPH - ,0x88A8 ,0x8475 //CJK UNIFIED IDEOGRAPH - ,0x88A9 ,0x831C //CJK UNIFIED IDEOGRAPH - ,0x88AA ,0x7A50 //CJK UNIFIED IDEOGRAPH - ,0x88AB ,0x60AA //CJK UNIFIED IDEOGRAPH - ,0x88AC ,0x63E1 //CJK UNIFIED IDEOGRAPH - ,0x88AD ,0x6E25 //CJK UNIFIED IDEOGRAPH - ,0x88AE ,0x65ED //CJK UNIFIED IDEOGRAPH - ,0x88AF ,0x8466 //CJK UNIFIED IDEOGRAPH - ,0x88B0 ,0x82A6 //CJK UNIFIED IDEOGRAPH - ,0x88B1 ,0x9BF5 //CJK UNIFIED IDEOGRAPH - ,0x88B2 ,0x6893 //CJK UNIFIED IDEOGRAPH - ,0x88B3 ,0x5727 //CJK UNIFIED IDEOGRAPH - ,0x88B4 ,0x65A1 //CJK UNIFIED IDEOGRAPH - ,0x88B5 ,0x6271 //CJK UNIFIED IDEOGRAPH - ,0x88B6 ,0x5B9B //CJK UNIFIED IDEOGRAPH - ,0x88B7 ,0x59D0 //CJK UNIFIED IDEOGRAPH - ,0x88B8 ,0x867B //CJK UNIFIED IDEOGRAPH - ,0x88B9 ,0x98F4 //CJK UNIFIED IDEOGRAPH - ,0x88BA ,0x7D62 //CJK UNIFIED IDEOGRAPH - ,0x88BB ,0x7DBE //CJK UNIFIED IDEOGRAPH - ,0x88BC ,0x9B8E //CJK UNIFIED IDEOGRAPH - ,0x88BD ,0x6216 //CJK UNIFIED IDEOGRAPH - ,0x88BE ,0x7C9F //CJK UNIFIED IDEOGRAPH - ,0x88BF ,0x88B7 //CJK UNIFIED IDEOGRAPH - ,0x88C0 ,0x5B89 //CJK UNIFIED IDEOGRAPH - ,0x88C1 ,0x5EB5 //CJK UNIFIED IDEOGRAPH - ,0x88C2 ,0x6309 //CJK UNIFIED IDEOGRAPH - ,0x88C3 ,0x6697 //CJK UNIFIED IDEOGRAPH - ,0x88C4 ,0x6848 //CJK UNIFIED IDEOGRAPH - ,0x88C5 ,0x95C7 //CJK UNIFIED IDEOGRAPH - ,0x88C6 ,0x978D //CJK UNIFIED IDEOGRAPH - ,0x88C7 ,0x674F //CJK UNIFIED IDEOGRAPH - ,0x88C8 ,0x4EE5 //CJK UNIFIED IDEOGRAPH - ,0x88C9 ,0x4F0A //CJK UNIFIED IDEOGRAPH - ,0x88CA ,0x4F4D //CJK UNIFIED IDEOGRAPH - ,0x88CB ,0x4F9D //CJK UNIFIED IDEOGRAPH - ,0x88CC ,0x5049 //CJK UNIFIED IDEOGRAPH - ,0x88CD ,0x56F2 //CJK UNIFIED IDEOGRAPH - ,0x88CE ,0x5937 //CJK UNIFIED IDEOGRAPH - ,0x88CF ,0x59D4 //CJK UNIFIED IDEOGRAPH - ,0x88D0 ,0x5A01 //CJK UNIFIED IDEOGRAPH - ,0x88D1 ,0x5C09 //CJK UNIFIED IDEOGRAPH - ,0x88D2 ,0x60DF //CJK UNIFIED IDEOGRAPH - ,0x88D3 ,0x610F //CJK UNIFIED IDEOGRAPH - ,0x88D4 ,0x6170 //CJK UNIFIED IDEOGRAPH - ,0x88D5 ,0x6613 //CJK UNIFIED IDEOGRAPH - ,0x88D6 ,0x6905 //CJK UNIFIED IDEOGRAPH - ,0x88D7 ,0x70BA //CJK UNIFIED IDEOGRAPH - ,0x88D8 ,0x754F //CJK UNIFIED IDEOGRAPH - ,0x88D9 ,0x7570 //CJK UNIFIED IDEOGRAPH - ,0x88DA ,0x79FB //CJK UNIFIED IDEOGRAPH - ,0x88DB ,0x7DAD //CJK UNIFIED IDEOGRAPH - ,0x88DC ,0x7DEF //CJK UNIFIED IDEOGRAPH - ,0x88DD ,0x80C3 //CJK UNIFIED IDEOGRAPH - ,0x88DE ,0x840E //CJK UNIFIED IDEOGRAPH - ,0x88DF ,0x8863 //CJK UNIFIED IDEOGRAPH - ,0x88E0 ,0x8B02 //CJK UNIFIED IDEOGRAPH - ,0x88E1 ,0x9055 //CJK UNIFIED IDEOGRAPH - ,0x88E2 ,0x907A //CJK UNIFIED IDEOGRAPH - ,0x88E3 ,0x533B //CJK UNIFIED IDEOGRAPH - ,0x88E4 ,0x4E95 //CJK UNIFIED IDEOGRAPH - ,0x88E5 ,0x4EA5 //CJK UNIFIED IDEOGRAPH - ,0x88E6 ,0x57DF //CJK UNIFIED IDEOGRAPH - ,0x88E7 ,0x80B2 //CJK UNIFIED IDEOGRAPH - ,0x88E8 ,0x90C1 //CJK UNIFIED IDEOGRAPH - ,0x88E9 ,0x78EF //CJK UNIFIED IDEOGRAPH - ,0x88EA ,0x4E00 //CJK UNIFIED IDEOGRAPH - ,0x88EB ,0x58F1 //CJK UNIFIED IDEOGRAPH - ,0x88EC ,0x6EA2 //CJK UNIFIED IDEOGRAPH - ,0x88ED ,0x9038 //CJK UNIFIED IDEOGRAPH - ,0x88EE ,0x7A32 //CJK UNIFIED IDEOGRAPH - ,0x88EF ,0x8328 //CJK UNIFIED IDEOGRAPH - ,0x88F0 ,0x828B //CJK UNIFIED IDEOGRAPH - ,0x88F1 ,0x9C2F //CJK UNIFIED IDEOGRAPH - ,0x88F2 ,0x5141 //CJK UNIFIED IDEOGRAPH - ,0x88F3 ,0x5370 //CJK UNIFIED IDEOGRAPH - ,0x88F4 ,0x54BD //CJK UNIFIED IDEOGRAPH - ,0x88F5 ,0x54E1 //CJK UNIFIED IDEOGRAPH - ,0x88F6 ,0x56E0 //CJK UNIFIED IDEOGRAPH - ,0x88F7 ,0x59FB //CJK UNIFIED IDEOGRAPH - ,0x88F8 ,0x5F15 //CJK UNIFIED IDEOGRAPH - ,0x88F9 ,0x98F2 //CJK UNIFIED IDEOGRAPH - ,0x88FA ,0x6DEB //CJK UNIFIED IDEOGRAPH - ,0x88FB ,0x80E4 //CJK UNIFIED IDEOGRAPH - ,0x88FC ,0x852D //CJK UNIFIED IDEOGRAPH - ,0x8940 ,0x9662 //CJK UNIFIED IDEOGRAPH - ,0x8941 ,0x9670 //CJK UNIFIED IDEOGRAPH - ,0x8942 ,0x96A0 //CJK UNIFIED IDEOGRAPH - ,0x8943 ,0x97FB //CJK UNIFIED IDEOGRAPH - ,0x8944 ,0x540B //CJK UNIFIED IDEOGRAPH - ,0x8945 ,0x53F3 //CJK UNIFIED IDEOGRAPH - ,0x8946 ,0x5B87 //CJK UNIFIED IDEOGRAPH - ,0x8947 ,0x70CF //CJK UNIFIED IDEOGRAPH - ,0x8948 ,0x7FBD //CJK UNIFIED IDEOGRAPH - ,0x8949 ,0x8FC2 //CJK UNIFIED IDEOGRAPH - ,0x894A ,0x96E8 //CJK UNIFIED IDEOGRAPH - ,0x894B ,0x536F //CJK UNIFIED IDEOGRAPH - ,0x894C ,0x9D5C //CJK UNIFIED IDEOGRAPH - ,0x894D ,0x7ABA //CJK UNIFIED IDEOGRAPH - ,0x894E ,0x4E11 //CJK UNIFIED IDEOGRAPH - ,0x894F ,0x7893 //CJK UNIFIED IDEOGRAPH - ,0x8950 ,0x81FC //CJK UNIFIED IDEOGRAPH - ,0x8951 ,0x6E26 //CJK UNIFIED IDEOGRAPH - ,0x8952 ,0x5618 //CJK UNIFIED IDEOGRAPH - ,0x8953 ,0x5504 //CJK UNIFIED IDEOGRAPH - ,0x8954 ,0x6B1D //CJK UNIFIED IDEOGRAPH - ,0x8955 ,0x851A //CJK UNIFIED IDEOGRAPH - ,0x8956 ,0x9C3B //CJK UNIFIED IDEOGRAPH - ,0x8957 ,0x59E5 //CJK UNIFIED IDEOGRAPH - ,0x8958 ,0x53A9 //CJK UNIFIED IDEOGRAPH - ,0x8959 ,0x6D66 //CJK UNIFIED IDEOGRAPH - ,0x895A ,0x74DC //CJK UNIFIED IDEOGRAPH - ,0x895B ,0x958F //CJK UNIFIED IDEOGRAPH - ,0x895C ,0x5642 //CJK UNIFIED IDEOGRAPH - ,0x895D ,0x4E91 //CJK UNIFIED IDEOGRAPH - ,0x895E ,0x904B //CJK UNIFIED IDEOGRAPH - ,0x895F ,0x96F2 //CJK UNIFIED IDEOGRAPH - ,0x8960 ,0x834F //CJK UNIFIED IDEOGRAPH - ,0x8961 ,0x990C //CJK UNIFIED IDEOGRAPH - ,0x8962 ,0x53E1 //CJK UNIFIED IDEOGRAPH - ,0x8963 ,0x55B6 //CJK UNIFIED IDEOGRAPH - ,0x8964 ,0x5B30 //CJK UNIFIED IDEOGRAPH - ,0x8965 ,0x5F71 //CJK UNIFIED IDEOGRAPH - ,0x8966 ,0x6620 //CJK UNIFIED IDEOGRAPH - ,0x8967 ,0x66F3 //CJK UNIFIED IDEOGRAPH - ,0x8968 ,0x6804 //CJK UNIFIED IDEOGRAPH - ,0x8969 ,0x6C38 //CJK UNIFIED IDEOGRAPH - ,0x896A ,0x6CF3 //CJK UNIFIED IDEOGRAPH - ,0x896B ,0x6D29 //CJK UNIFIED IDEOGRAPH - ,0x896C ,0x745B //CJK UNIFIED IDEOGRAPH - ,0x896D ,0x76C8 //CJK UNIFIED IDEOGRAPH - ,0x896E ,0x7A4E //CJK UNIFIED IDEOGRAPH - ,0x896F ,0x9834 //CJK UNIFIED IDEOGRAPH - ,0x8970 ,0x82F1 //CJK UNIFIED IDEOGRAPH - ,0x8971 ,0x885B //CJK UNIFIED IDEOGRAPH - ,0x8972 ,0x8A60 //CJK UNIFIED IDEOGRAPH - ,0x8973 ,0x92ED //CJK UNIFIED IDEOGRAPH - ,0x8974 ,0x6DB2 //CJK UNIFIED IDEOGRAPH - ,0x8975 ,0x75AB //CJK UNIFIED IDEOGRAPH - ,0x8976 ,0x76CA //CJK UNIFIED IDEOGRAPH - ,0x8977 ,0x99C5 //CJK UNIFIED IDEOGRAPH - ,0x8978 ,0x60A6 //CJK UNIFIED IDEOGRAPH - ,0x8979 ,0x8B01 //CJK UNIFIED IDEOGRAPH - ,0x897A ,0x8D8A //CJK UNIFIED IDEOGRAPH - ,0x897B ,0x95B2 //CJK UNIFIED IDEOGRAPH - ,0x897C ,0x698E //CJK UNIFIED IDEOGRAPH - ,0x897D ,0x53AD //CJK UNIFIED IDEOGRAPH - ,0x897E ,0x5186 //CJK UNIFIED IDEOGRAPH - ,0x8980 ,0x5712 //CJK UNIFIED IDEOGRAPH - ,0x8981 ,0x5830 //CJK UNIFIED IDEOGRAPH - ,0x8982 ,0x5944 //CJK UNIFIED IDEOGRAPH - ,0x8983 ,0x5BB4 //CJK UNIFIED IDEOGRAPH - ,0x8984 ,0x5EF6 //CJK UNIFIED IDEOGRAPH - ,0x8985 ,0x6028 //CJK UNIFIED IDEOGRAPH - ,0x8986 ,0x63A9 //CJK UNIFIED IDEOGRAPH - ,0x8987 ,0x63F4 //CJK UNIFIED IDEOGRAPH - ,0x8988 ,0x6CBF //CJK UNIFIED IDEOGRAPH - ,0x8989 ,0x6F14 //CJK UNIFIED IDEOGRAPH - ,0x898A ,0x708E //CJK UNIFIED IDEOGRAPH - ,0x898B ,0x7114 //CJK UNIFIED IDEOGRAPH - ,0x898C ,0x7159 //CJK UNIFIED IDEOGRAPH - ,0x898D ,0x71D5 //CJK UNIFIED IDEOGRAPH - ,0x898E ,0x733F //CJK UNIFIED IDEOGRAPH - ,0x898F ,0x7E01 //CJK UNIFIED IDEOGRAPH - ,0x8990 ,0x8276 //CJK UNIFIED IDEOGRAPH - ,0x8991 ,0x82D1 //CJK UNIFIED IDEOGRAPH - ,0x8992 ,0x8597 //CJK UNIFIED IDEOGRAPH - ,0x8993 ,0x9060 //CJK UNIFIED IDEOGRAPH - ,0x8994 ,0x925B //CJK UNIFIED IDEOGRAPH - ,0x8995 ,0x9D1B //CJK UNIFIED IDEOGRAPH - ,0x8996 ,0x5869 //CJK UNIFIED IDEOGRAPH - ,0x8997 ,0x65BC //CJK UNIFIED IDEOGRAPH - ,0x8998 ,0x6C5A //CJK UNIFIED IDEOGRAPH - ,0x8999 ,0x7525 //CJK UNIFIED IDEOGRAPH - ,0x899A ,0x51F9 //CJK UNIFIED IDEOGRAPH - ,0x899B ,0x592E //CJK UNIFIED IDEOGRAPH - ,0x899C ,0x5965 //CJK UNIFIED IDEOGRAPH - ,0x899D ,0x5F80 //CJK UNIFIED IDEOGRAPH - ,0x899E ,0x5FDC //CJK UNIFIED IDEOGRAPH - ,0x899F ,0x62BC //CJK UNIFIED IDEOGRAPH - ,0x89A0 ,0x65FA //CJK UNIFIED IDEOGRAPH - ,0x89A1 ,0x6A2A //CJK UNIFIED IDEOGRAPH - ,0x89A2 ,0x6B27 //CJK UNIFIED IDEOGRAPH - ,0x89A3 ,0x6BB4 //CJK UNIFIED IDEOGRAPH - ,0x89A4 ,0x738B //CJK UNIFIED IDEOGRAPH - ,0x89A5 ,0x7FC1 //CJK UNIFIED IDEOGRAPH - ,0x89A6 ,0x8956 //CJK UNIFIED IDEOGRAPH - ,0x89A7 ,0x9D2C //CJK UNIFIED IDEOGRAPH - ,0x89A8 ,0x9D0E //CJK UNIFIED IDEOGRAPH - ,0x89A9 ,0x9EC4 //CJK UNIFIED IDEOGRAPH - ,0x89AA ,0x5CA1 //CJK UNIFIED IDEOGRAPH - ,0x89AB ,0x6C96 //CJK UNIFIED IDEOGRAPH - ,0x89AC ,0x837B //CJK UNIFIED IDEOGRAPH - ,0x89AD ,0x5104 //CJK UNIFIED IDEOGRAPH - ,0x89AE ,0x5C4B //CJK UNIFIED IDEOGRAPH - ,0x89AF ,0x61B6 //CJK UNIFIED IDEOGRAPH - ,0x89B0 ,0x81C6 //CJK UNIFIED IDEOGRAPH - ,0x89B1 ,0x6876 //CJK UNIFIED IDEOGRAPH - ,0x89B2 ,0x7261 //CJK UNIFIED IDEOGRAPH - ,0x89B3 ,0x4E59 //CJK UNIFIED IDEOGRAPH - ,0x89B4 ,0x4FFA //CJK UNIFIED IDEOGRAPH - ,0x89B5 ,0x5378 //CJK UNIFIED IDEOGRAPH - ,0x89B6 ,0x6069 //CJK UNIFIED IDEOGRAPH - ,0x89B7 ,0x6E29 //CJK UNIFIED IDEOGRAPH - ,0x89B8 ,0x7A4F //CJK UNIFIED IDEOGRAPH - ,0x89B9 ,0x97F3 //CJK UNIFIED IDEOGRAPH - ,0x89BA ,0x4E0B //CJK UNIFIED IDEOGRAPH - ,0x89BB ,0x5316 //CJK UNIFIED IDEOGRAPH - ,0x89BC ,0x4EEE //CJK UNIFIED IDEOGRAPH - ,0x89BD ,0x4F55 //CJK UNIFIED IDEOGRAPH - ,0x89BE ,0x4F3D //CJK UNIFIED IDEOGRAPH - ,0x89BF ,0x4FA1 //CJK UNIFIED IDEOGRAPH - ,0x89C0 ,0x4F73 //CJK UNIFIED IDEOGRAPH - ,0x89C1 ,0x52A0 //CJK UNIFIED IDEOGRAPH - ,0x89C2 ,0x53EF //CJK UNIFIED IDEOGRAPH - ,0x89C3 ,0x5609 //CJK UNIFIED IDEOGRAPH - ,0x89C4 ,0x590F //CJK UNIFIED IDEOGRAPH - ,0x89C5 ,0x5AC1 //CJK UNIFIED IDEOGRAPH - ,0x89C6 ,0x5BB6 //CJK UNIFIED IDEOGRAPH - ,0x89C7 ,0x5BE1 //CJK UNIFIED IDEOGRAPH - ,0x89C8 ,0x79D1 //CJK UNIFIED IDEOGRAPH - ,0x89C9 ,0x6687 //CJK UNIFIED IDEOGRAPH - ,0x89CA ,0x679C //CJK UNIFIED IDEOGRAPH - ,0x89CB ,0x67B6 //CJK UNIFIED IDEOGRAPH - ,0x89CC ,0x6B4C //CJK UNIFIED IDEOGRAPH - ,0x89CD ,0x6CB3 //CJK UNIFIED IDEOGRAPH - ,0x89CE ,0x706B //CJK UNIFIED IDEOGRAPH - ,0x89CF ,0x73C2 //CJK UNIFIED IDEOGRAPH - ,0x89D0 ,0x798D //CJK UNIFIED IDEOGRAPH - ,0x89D1 ,0x79BE //CJK UNIFIED IDEOGRAPH - ,0x89D2 ,0x7A3C //CJK UNIFIED IDEOGRAPH - ,0x89D3 ,0x7B87 //CJK UNIFIED IDEOGRAPH - ,0x89D4 ,0x82B1 //CJK UNIFIED IDEOGRAPH - ,0x89D5 ,0x82DB //CJK UNIFIED IDEOGRAPH - ,0x89D6 ,0x8304 //CJK UNIFIED IDEOGRAPH - ,0x89D7 ,0x8377 //CJK UNIFIED IDEOGRAPH - ,0x89D8 ,0x83EF //CJK UNIFIED IDEOGRAPH - ,0x89D9 ,0x83D3 //CJK UNIFIED IDEOGRAPH - ,0x89DA ,0x8766 //CJK UNIFIED IDEOGRAPH - ,0x89DB ,0x8AB2 //CJK UNIFIED IDEOGRAPH - ,0x89DC ,0x5629 //CJK UNIFIED IDEOGRAPH - ,0x89DD ,0x8CA8 //CJK UNIFIED IDEOGRAPH - ,0x89DE ,0x8FE6 //CJK UNIFIED IDEOGRAPH - ,0x89DF ,0x904E //CJK UNIFIED IDEOGRAPH - ,0x89E0 ,0x971E //CJK UNIFIED IDEOGRAPH - ,0x89E1 ,0x868A //CJK UNIFIED IDEOGRAPH - ,0x89E2 ,0x4FC4 //CJK UNIFIED IDEOGRAPH - ,0x89E3 ,0x5CE8 //CJK UNIFIED IDEOGRAPH - ,0x89E4 ,0x6211 //CJK UNIFIED IDEOGRAPH - ,0x89E5 ,0x7259 //CJK UNIFIED IDEOGRAPH - ,0x89E6 ,0x753B //CJK UNIFIED IDEOGRAPH - ,0x89E7 ,0x81E5 //CJK UNIFIED IDEOGRAPH - ,0x89E8 ,0x82BD //CJK UNIFIED IDEOGRAPH - ,0x89E9 ,0x86FE //CJK UNIFIED IDEOGRAPH - ,0x89EA ,0x8CC0 //CJK UNIFIED IDEOGRAPH - ,0x89EB ,0x96C5 //CJK UNIFIED IDEOGRAPH - ,0x89EC ,0x9913 //CJK UNIFIED IDEOGRAPH - ,0x89ED ,0x99D5 //CJK UNIFIED IDEOGRAPH - ,0x89EE ,0x4ECB //CJK UNIFIED IDEOGRAPH - ,0x89EF ,0x4F1A //CJK UNIFIED IDEOGRAPH - ,0x89F0 ,0x89E3 //CJK UNIFIED IDEOGRAPH - ,0x89F1 ,0x56DE //CJK UNIFIED IDEOGRAPH - ,0x89F2 ,0x584A //CJK UNIFIED IDEOGRAPH - ,0x89F3 ,0x58CA //CJK UNIFIED IDEOGRAPH - ,0x89F4 ,0x5EFB //CJK UNIFIED IDEOGRAPH - ,0x89F5 ,0x5FEB //CJK UNIFIED IDEOGRAPH - ,0x89F6 ,0x602A //CJK UNIFIED IDEOGRAPH - ,0x89F7 ,0x6094 //CJK UNIFIED IDEOGRAPH - ,0x89F8 ,0x6062 //CJK UNIFIED IDEOGRAPH - ,0x89F9 ,0x61D0 //CJK UNIFIED IDEOGRAPH - ,0x89FA ,0x6212 //CJK UNIFIED IDEOGRAPH - ,0x89FB ,0x62D0 //CJK UNIFIED IDEOGRAPH - ,0x89FC ,0x6539 //CJK UNIFIED IDEOGRAPH - ,0x8A40 ,0x9B41 //CJK UNIFIED IDEOGRAPH - ,0x8A41 ,0x6666 //CJK UNIFIED IDEOGRAPH - ,0x8A42 ,0x68B0 //CJK UNIFIED IDEOGRAPH - ,0x8A43 ,0x6D77 //CJK UNIFIED IDEOGRAPH - ,0x8A44 ,0x7070 //CJK UNIFIED IDEOGRAPH - ,0x8A45 ,0x754C //CJK UNIFIED IDEOGRAPH - ,0x8A46 ,0x7686 //CJK UNIFIED IDEOGRAPH - ,0x8A47 ,0x7D75 //CJK UNIFIED IDEOGRAPH - ,0x8A48 ,0x82A5 //CJK UNIFIED IDEOGRAPH - ,0x8A49 ,0x87F9 //CJK UNIFIED IDEOGRAPH - ,0x8A4A ,0x958B //CJK UNIFIED IDEOGRAPH - ,0x8A4B ,0x968E //CJK UNIFIED IDEOGRAPH - ,0x8A4C ,0x8C9D //CJK UNIFIED IDEOGRAPH - ,0x8A4D ,0x51F1 //CJK UNIFIED IDEOGRAPH - ,0x8A4E ,0x52BE //CJK UNIFIED IDEOGRAPH - ,0x8A4F ,0x5916 //CJK UNIFIED IDEOGRAPH - ,0x8A50 ,0x54B3 //CJK UNIFIED IDEOGRAPH - ,0x8A51 ,0x5BB3 //CJK UNIFIED IDEOGRAPH - ,0x8A52 ,0x5D16 //CJK UNIFIED IDEOGRAPH - ,0x8A53 ,0x6168 //CJK UNIFIED IDEOGRAPH - ,0x8A54 ,0x6982 //CJK UNIFIED IDEOGRAPH - ,0x8A55 ,0x6DAF //CJK UNIFIED IDEOGRAPH - ,0x8A56 ,0x788D //CJK UNIFIED IDEOGRAPH - ,0x8A57 ,0x84CB //CJK UNIFIED IDEOGRAPH - ,0x8A58 ,0x8857 //CJK UNIFIED IDEOGRAPH - ,0x8A59 ,0x8A72 //CJK UNIFIED IDEOGRAPH - ,0x8A5A ,0x93A7 //CJK UNIFIED IDEOGRAPH - ,0x8A5B ,0x9AB8 //CJK UNIFIED IDEOGRAPH - ,0x8A5C ,0x6D6C //CJK UNIFIED IDEOGRAPH - ,0x8A5D ,0x99A8 //CJK UNIFIED IDEOGRAPH - ,0x8A5E ,0x86D9 //CJK UNIFIED IDEOGRAPH - ,0x8A5F ,0x57A3 //CJK UNIFIED IDEOGRAPH - ,0x8A60 ,0x67FF //CJK UNIFIED IDEOGRAPH - ,0x8A61 ,0x86CE //CJK UNIFIED IDEOGRAPH - ,0x8A62 ,0x920E //CJK UNIFIED IDEOGRAPH - ,0x8A63 ,0x5283 //CJK UNIFIED IDEOGRAPH - ,0x8A64 ,0x5687 //CJK UNIFIED IDEOGRAPH - ,0x8A65 ,0x5404 //CJK UNIFIED IDEOGRAPH - ,0x8A66 ,0x5ED3 //CJK UNIFIED IDEOGRAPH - ,0x8A67 ,0x62E1 //CJK UNIFIED IDEOGRAPH - ,0x8A68 ,0x64B9 //CJK UNIFIED IDEOGRAPH - ,0x8A69 ,0x683C //CJK UNIFIED IDEOGRAPH - ,0x8A6A ,0x6838 //CJK UNIFIED IDEOGRAPH - ,0x8A6B ,0x6BBB //CJK UNIFIED IDEOGRAPH - ,0x8A6C ,0x7372 //CJK UNIFIED IDEOGRAPH - ,0x8A6D ,0x78BA //CJK UNIFIED IDEOGRAPH - ,0x8A6E ,0x7A6B //CJK UNIFIED IDEOGRAPH - ,0x8A6F ,0x899A //CJK UNIFIED IDEOGRAPH - ,0x8A70 ,0x89D2 //CJK UNIFIED IDEOGRAPH - ,0x8A71 ,0x8D6B //CJK UNIFIED IDEOGRAPH - ,0x8A72 ,0x8F03 //CJK UNIFIED IDEOGRAPH - ,0x8A73 ,0x90ED //CJK UNIFIED IDEOGRAPH - ,0x8A74 ,0x95A3 //CJK UNIFIED IDEOGRAPH - ,0x8A75 ,0x9694 //CJK UNIFIED IDEOGRAPH - ,0x8A76 ,0x9769 //CJK UNIFIED IDEOGRAPH - ,0x8A77 ,0x5B66 //CJK UNIFIED IDEOGRAPH - ,0x8A78 ,0x5CB3 //CJK UNIFIED IDEOGRAPH - ,0x8A79 ,0x697D //CJK UNIFIED IDEOGRAPH - ,0x8A7A ,0x984D //CJK UNIFIED IDEOGRAPH - ,0x8A7B ,0x984E //CJK UNIFIED IDEOGRAPH - ,0x8A7C ,0x639B //CJK UNIFIED IDEOGRAPH - ,0x8A7D ,0x7B20 //CJK UNIFIED IDEOGRAPH - ,0x8A7E ,0x6A2B //CJK UNIFIED IDEOGRAPH - ,0x8A80 ,0x6A7F //CJK UNIFIED IDEOGRAPH - ,0x8A81 ,0x68B6 //CJK UNIFIED IDEOGRAPH - ,0x8A82 ,0x9C0D //CJK UNIFIED IDEOGRAPH - ,0x8A83 ,0x6F5F //CJK UNIFIED IDEOGRAPH - ,0x8A84 ,0x5272 //CJK UNIFIED IDEOGRAPH - ,0x8A85 ,0x559D //CJK UNIFIED IDEOGRAPH - ,0x8A86 ,0x6070 //CJK UNIFIED IDEOGRAPH - ,0x8A87 ,0x62EC //CJK UNIFIED IDEOGRAPH - ,0x8A88 ,0x6D3B //CJK UNIFIED IDEOGRAPH - ,0x8A89 ,0x6E07 //CJK UNIFIED IDEOGRAPH - ,0x8A8A ,0x6ED1 //CJK UNIFIED IDEOGRAPH - ,0x8A8B ,0x845B //CJK UNIFIED IDEOGRAPH - ,0x8A8C ,0x8910 //CJK UNIFIED IDEOGRAPH - ,0x8A8D ,0x8F44 //CJK UNIFIED IDEOGRAPH - ,0x8A8E ,0x4E14 //CJK UNIFIED IDEOGRAPH - ,0x8A8F ,0x9C39 //CJK UNIFIED IDEOGRAPH - ,0x8A90 ,0x53F6 //CJK UNIFIED IDEOGRAPH - ,0x8A91 ,0x691B //CJK UNIFIED IDEOGRAPH - ,0x8A92 ,0x6A3A //CJK UNIFIED IDEOGRAPH - ,0x8A93 ,0x9784 //CJK UNIFIED IDEOGRAPH - ,0x8A94 ,0x682A //CJK UNIFIED IDEOGRAPH - ,0x8A95 ,0x515C //CJK UNIFIED IDEOGRAPH - ,0x8A96 ,0x7AC3 //CJK UNIFIED IDEOGRAPH - ,0x8A97 ,0x84B2 //CJK UNIFIED IDEOGRAPH - ,0x8A98 ,0x91DC //CJK UNIFIED IDEOGRAPH - ,0x8A99 ,0x938C //CJK UNIFIED IDEOGRAPH - ,0x8A9A ,0x565B //CJK UNIFIED IDEOGRAPH - ,0x8A9B ,0x9D28 //CJK UNIFIED IDEOGRAPH - ,0x8A9C ,0x6822 //CJK UNIFIED IDEOGRAPH - ,0x8A9D ,0x8305 //CJK UNIFIED IDEOGRAPH - ,0x8A9E ,0x8431 //CJK UNIFIED IDEOGRAPH - ,0x8A9F ,0x7CA5 //CJK UNIFIED IDEOGRAPH - ,0x8AA0 ,0x5208 //CJK UNIFIED IDEOGRAPH - ,0x8AA1 ,0x82C5 //CJK UNIFIED IDEOGRAPH - ,0x8AA2 ,0x74E6 //CJK UNIFIED IDEOGRAPH - ,0x8AA3 ,0x4E7E //CJK UNIFIED IDEOGRAPH - ,0x8AA4 ,0x4F83 //CJK UNIFIED IDEOGRAPH - ,0x8AA5 ,0x51A0 //CJK UNIFIED IDEOGRAPH - ,0x8AA6 ,0x5BD2 //CJK UNIFIED IDEOGRAPH - ,0x8AA7 ,0x520A //CJK UNIFIED IDEOGRAPH - ,0x8AA8 ,0x52D8 //CJK UNIFIED IDEOGRAPH - ,0x8AA9 ,0x52E7 //CJK UNIFIED IDEOGRAPH - ,0x8AAA ,0x5DFB //CJK UNIFIED IDEOGRAPH - ,0x8AAB ,0x559A //CJK UNIFIED IDEOGRAPH - ,0x8AAC ,0x582A //CJK UNIFIED IDEOGRAPH - ,0x8AAD ,0x59E6 //CJK UNIFIED IDEOGRAPH - ,0x8AAE ,0x5B8C //CJK UNIFIED IDEOGRAPH - ,0x8AAF ,0x5B98 //CJK UNIFIED IDEOGRAPH - ,0x8AB0 ,0x5BDB //CJK UNIFIED IDEOGRAPH - ,0x8AB1 ,0x5E72 //CJK UNIFIED IDEOGRAPH - ,0x8AB2 ,0x5E79 //CJK UNIFIED IDEOGRAPH - ,0x8AB3 ,0x60A3 //CJK UNIFIED IDEOGRAPH - ,0x8AB4 ,0x611F //CJK UNIFIED IDEOGRAPH - ,0x8AB5 ,0x6163 //CJK UNIFIED IDEOGRAPH - ,0x8AB6 ,0x61BE //CJK UNIFIED IDEOGRAPH - ,0x8AB7 ,0x63DB //CJK UNIFIED IDEOGRAPH - ,0x8AB8 ,0x6562 //CJK UNIFIED IDEOGRAPH - ,0x8AB9 ,0x67D1 //CJK UNIFIED IDEOGRAPH - ,0x8ABA ,0x6853 //CJK UNIFIED IDEOGRAPH - ,0x8ABB ,0x68FA //CJK UNIFIED IDEOGRAPH - ,0x8ABC ,0x6B3E //CJK UNIFIED IDEOGRAPH - ,0x8ABD ,0x6B53 //CJK UNIFIED IDEOGRAPH - ,0x8ABE ,0x6C57 //CJK UNIFIED IDEOGRAPH - ,0x8ABF ,0x6F22 //CJK UNIFIED IDEOGRAPH - ,0x8AC0 ,0x6F97 //CJK UNIFIED IDEOGRAPH - ,0x8AC1 ,0x6F45 //CJK UNIFIED IDEOGRAPH - ,0x8AC2 ,0x74B0 //CJK UNIFIED IDEOGRAPH - ,0x8AC3 ,0x7518 //CJK UNIFIED IDEOGRAPH - ,0x8AC4 ,0x76E3 //CJK UNIFIED IDEOGRAPH - ,0x8AC5 ,0x770B //CJK UNIFIED IDEOGRAPH - ,0x8AC6 ,0x7AFF //CJK UNIFIED IDEOGRAPH - ,0x8AC7 ,0x7BA1 //CJK UNIFIED IDEOGRAPH - ,0x8AC8 ,0x7C21 //CJK UNIFIED IDEOGRAPH - ,0x8AC9 ,0x7DE9 //CJK UNIFIED IDEOGRAPH - ,0x8ACA ,0x7F36 //CJK UNIFIED IDEOGRAPH - ,0x8ACB ,0x7FF0 //CJK UNIFIED IDEOGRAPH - ,0x8ACC ,0x809D //CJK UNIFIED IDEOGRAPH - ,0x8ACD ,0x8266 //CJK UNIFIED IDEOGRAPH - ,0x8ACE ,0x839E //CJK UNIFIED IDEOGRAPH - ,0x8ACF ,0x89B3 //CJK UNIFIED IDEOGRAPH - ,0x8AD0 ,0x8ACC //CJK UNIFIED IDEOGRAPH - ,0x8AD1 ,0x8CAB //CJK UNIFIED IDEOGRAPH - ,0x8AD2 ,0x9084 //CJK UNIFIED IDEOGRAPH - ,0x8AD3 ,0x9451 //CJK UNIFIED IDEOGRAPH - ,0x8AD4 ,0x9593 //CJK UNIFIED IDEOGRAPH - ,0x8AD5 ,0x9591 //CJK UNIFIED IDEOGRAPH - ,0x8AD6 ,0x95A2 //CJK UNIFIED IDEOGRAPH - ,0x8AD7 ,0x9665 //CJK UNIFIED IDEOGRAPH - ,0x8AD8 ,0x97D3 //CJK UNIFIED IDEOGRAPH - ,0x8AD9 ,0x9928 //CJK UNIFIED IDEOGRAPH - ,0x8ADA ,0x8218 //CJK UNIFIED IDEOGRAPH - ,0x8ADB ,0x4E38 //CJK UNIFIED IDEOGRAPH - ,0x8ADC ,0x542B //CJK UNIFIED IDEOGRAPH - ,0x8ADD ,0x5CB8 //CJK UNIFIED IDEOGRAPH - ,0x8ADE ,0x5DCC //CJK UNIFIED IDEOGRAPH - ,0x8ADF ,0x73A9 //CJK UNIFIED IDEOGRAPH - ,0x8AE0 ,0x764C //CJK UNIFIED IDEOGRAPH - ,0x8AE1 ,0x773C //CJK UNIFIED IDEOGRAPH - ,0x8AE2 ,0x5CA9 //CJK UNIFIED IDEOGRAPH - ,0x8AE3 ,0x7FEB //CJK UNIFIED IDEOGRAPH - ,0x8AE4 ,0x8D0B //CJK UNIFIED IDEOGRAPH - ,0x8AE5 ,0x96C1 //CJK UNIFIED IDEOGRAPH - ,0x8AE6 ,0x9811 //CJK UNIFIED IDEOGRAPH - ,0x8AE7 ,0x9854 //CJK UNIFIED IDEOGRAPH - ,0x8AE8 ,0x9858 //CJK UNIFIED IDEOGRAPH - ,0x8AE9 ,0x4F01 //CJK UNIFIED IDEOGRAPH - ,0x8AEA ,0x4F0E //CJK UNIFIED IDEOGRAPH - ,0x8AEB ,0x5371 //CJK UNIFIED IDEOGRAPH - ,0x8AEC ,0x559C //CJK UNIFIED IDEOGRAPH - ,0x8AED ,0x5668 //CJK UNIFIED IDEOGRAPH - ,0x8AEE ,0x57FA //CJK UNIFIED IDEOGRAPH - ,0x8AEF ,0x5947 //CJK UNIFIED IDEOGRAPH - ,0x8AF0 ,0x5B09 //CJK UNIFIED IDEOGRAPH - ,0x8AF1 ,0x5BC4 //CJK UNIFIED IDEOGRAPH - ,0x8AF2 ,0x5C90 //CJK UNIFIED IDEOGRAPH - ,0x8AF3 ,0x5E0C //CJK UNIFIED IDEOGRAPH - ,0x8AF4 ,0x5E7E //CJK UNIFIED IDEOGRAPH - ,0x8AF5 ,0x5FCC //CJK UNIFIED IDEOGRAPH - ,0x8AF6 ,0x63EE //CJK UNIFIED IDEOGRAPH - ,0x8AF7 ,0x673A //CJK UNIFIED IDEOGRAPH - ,0x8AF8 ,0x65D7 //CJK UNIFIED IDEOGRAPH - ,0x8AF9 ,0x65E2 //CJK UNIFIED IDEOGRAPH - ,0x8AFA ,0x671F //CJK UNIFIED IDEOGRAPH - ,0x8AFB ,0x68CB //CJK UNIFIED IDEOGRAPH - ,0x8AFC ,0x68C4 //CJK UNIFIED IDEOGRAPH - ,0x8B40 ,0x6A5F //CJK UNIFIED IDEOGRAPH - ,0x8B41 ,0x5E30 //CJK UNIFIED IDEOGRAPH - ,0x8B42 ,0x6BC5 //CJK UNIFIED IDEOGRAPH - ,0x8B43 ,0x6C17 //CJK UNIFIED IDEOGRAPH - ,0x8B44 ,0x6C7D //CJK UNIFIED IDEOGRAPH - ,0x8B45 ,0x757F //CJK UNIFIED IDEOGRAPH - ,0x8B46 ,0x7948 //CJK UNIFIED IDEOGRAPH - ,0x8B47 ,0x5B63 //CJK UNIFIED IDEOGRAPH - ,0x8B48 ,0x7A00 //CJK UNIFIED IDEOGRAPH - ,0x8B49 ,0x7D00 //CJK UNIFIED IDEOGRAPH - ,0x8B4A ,0x5FBD //CJK UNIFIED IDEOGRAPH - ,0x8B4B ,0x898F //CJK UNIFIED IDEOGRAPH - ,0x8B4C ,0x8A18 //CJK UNIFIED IDEOGRAPH - ,0x8B4D ,0x8CB4 //CJK UNIFIED IDEOGRAPH - ,0x8B4E ,0x8D77 //CJK UNIFIED IDEOGRAPH - ,0x8B4F ,0x8ECC //CJK UNIFIED IDEOGRAPH - ,0x8B50 ,0x8F1D //CJK UNIFIED IDEOGRAPH - ,0x8B51 ,0x98E2 //CJK UNIFIED IDEOGRAPH - ,0x8B52 ,0x9A0E //CJK UNIFIED IDEOGRAPH - ,0x8B53 ,0x9B3C //CJK UNIFIED IDEOGRAPH - ,0x8B54 ,0x4E80 //CJK UNIFIED IDEOGRAPH - ,0x8B55 ,0x507D //CJK UNIFIED IDEOGRAPH - ,0x8B56 ,0x5100 //CJK UNIFIED IDEOGRAPH - ,0x8B57 ,0x5993 //CJK UNIFIED IDEOGRAPH - ,0x8B58 ,0x5B9C //CJK UNIFIED IDEOGRAPH - ,0x8B59 ,0x622F //CJK UNIFIED IDEOGRAPH - ,0x8B5A ,0x6280 //CJK UNIFIED IDEOGRAPH - ,0x8B5B ,0x64EC //CJK UNIFIED IDEOGRAPH - ,0x8B5C ,0x6B3A //CJK UNIFIED IDEOGRAPH - ,0x8B5D ,0x72A0 //CJK UNIFIED IDEOGRAPH - ,0x8B5E ,0x7591 //CJK UNIFIED IDEOGRAPH - ,0x8B5F ,0x7947 //CJK UNIFIED IDEOGRAPH - ,0x8B60 ,0x7FA9 //CJK UNIFIED IDEOGRAPH - ,0x8B61 ,0x87FB //CJK UNIFIED IDEOGRAPH - ,0x8B62 ,0x8ABC //CJK UNIFIED IDEOGRAPH - ,0x8B63 ,0x8B70 //CJK UNIFIED IDEOGRAPH - ,0x8B64 ,0x63AC //CJK UNIFIED IDEOGRAPH - ,0x8B65 ,0x83CA //CJK UNIFIED IDEOGRAPH - ,0x8B66 ,0x97A0 //CJK UNIFIED IDEOGRAPH - ,0x8B67 ,0x5409 //CJK UNIFIED IDEOGRAPH - ,0x8B68 ,0x5403 //CJK UNIFIED IDEOGRAPH - ,0x8B69 ,0x55AB //CJK UNIFIED IDEOGRAPH - ,0x8B6A ,0x6854 //CJK UNIFIED IDEOGRAPH - ,0x8B6B ,0x6A58 //CJK UNIFIED IDEOGRAPH - ,0x8B6C ,0x8A70 //CJK UNIFIED IDEOGRAPH - ,0x8B6D ,0x7827 //CJK UNIFIED IDEOGRAPH - ,0x8B6E ,0x6775 //CJK UNIFIED IDEOGRAPH - ,0x8B6F ,0x9ECD //CJK UNIFIED IDEOGRAPH - ,0x8B70 ,0x5374 //CJK UNIFIED IDEOGRAPH - ,0x8B71 ,0x5BA2 //CJK UNIFIED IDEOGRAPH - ,0x8B72 ,0x811A //CJK UNIFIED IDEOGRAPH - ,0x8B73 ,0x8650 //CJK UNIFIED IDEOGRAPH - ,0x8B74 ,0x9006 //CJK UNIFIED IDEOGRAPH - ,0x8B75 ,0x4E18 //CJK UNIFIED IDEOGRAPH - ,0x8B76 ,0x4E45 //CJK UNIFIED IDEOGRAPH - ,0x8B77 ,0x4EC7 //CJK UNIFIED IDEOGRAPH - ,0x8B78 ,0x4F11 //CJK UNIFIED IDEOGRAPH - ,0x8B79 ,0x53CA //CJK UNIFIED IDEOGRAPH - ,0x8B7A ,0x5438 //CJK UNIFIED IDEOGRAPH - ,0x8B7B ,0x5BAE //CJK UNIFIED IDEOGRAPH - ,0x8B7C ,0x5F13 //CJK UNIFIED IDEOGRAPH - ,0x8B7D ,0x6025 //CJK UNIFIED IDEOGRAPH - ,0x8B7E ,0x6551 //CJK UNIFIED IDEOGRAPH - ,0x8B80 ,0x673D //CJK UNIFIED IDEOGRAPH - ,0x8B81 ,0x6C42 //CJK UNIFIED IDEOGRAPH - ,0x8B82 ,0x6C72 //CJK UNIFIED IDEOGRAPH - ,0x8B83 ,0x6CE3 //CJK UNIFIED IDEOGRAPH - ,0x8B84 ,0x7078 //CJK UNIFIED IDEOGRAPH - ,0x8B85 ,0x7403 //CJK UNIFIED IDEOGRAPH - ,0x8B86 ,0x7A76 //CJK UNIFIED IDEOGRAPH - ,0x8B87 ,0x7AAE //CJK UNIFIED IDEOGRAPH - ,0x8B88 ,0x7B08 //CJK UNIFIED IDEOGRAPH - ,0x8B89 ,0x7D1A //CJK UNIFIED IDEOGRAPH - ,0x8B8A ,0x7CFE //CJK UNIFIED IDEOGRAPH - ,0x8B8B ,0x7D66 //CJK UNIFIED IDEOGRAPH - ,0x8B8C ,0x65E7 //CJK UNIFIED IDEOGRAPH - ,0x8B8D ,0x725B //CJK UNIFIED IDEOGRAPH - ,0x8B8E ,0x53BB //CJK UNIFIED IDEOGRAPH - ,0x8B8F ,0x5C45 //CJK UNIFIED IDEOGRAPH - ,0x8B90 ,0x5DE8 //CJK UNIFIED IDEOGRAPH - ,0x8B91 ,0x62D2 //CJK UNIFIED IDEOGRAPH - ,0x8B92 ,0x62E0 //CJK UNIFIED IDEOGRAPH - ,0x8B93 ,0x6319 //CJK UNIFIED IDEOGRAPH - ,0x8B94 ,0x6E20 //CJK UNIFIED IDEOGRAPH - ,0x8B95 ,0x865A //CJK UNIFIED IDEOGRAPH - ,0x8B96 ,0x8A31 //CJK UNIFIED IDEOGRAPH - ,0x8B97 ,0x8DDD //CJK UNIFIED IDEOGRAPH - ,0x8B98 ,0x92F8 //CJK UNIFIED IDEOGRAPH - ,0x8B99 ,0x6F01 //CJK UNIFIED IDEOGRAPH - ,0x8B9A ,0x79A6 //CJK UNIFIED IDEOGRAPH - ,0x8B9B ,0x9B5A //CJK UNIFIED IDEOGRAPH - ,0x8B9C ,0x4EA8 //CJK UNIFIED IDEOGRAPH - ,0x8B9D ,0x4EAB //CJK UNIFIED IDEOGRAPH - ,0x8B9E ,0x4EAC //CJK UNIFIED IDEOGRAPH - ,0x8B9F ,0x4F9B //CJK UNIFIED IDEOGRAPH - ,0x8BA0 ,0x4FA0 //CJK UNIFIED IDEOGRAPH - ,0x8BA1 ,0x50D1 //CJK UNIFIED IDEOGRAPH - ,0x8BA2 ,0x5147 //CJK UNIFIED IDEOGRAPH - ,0x8BA3 ,0x7AF6 //CJK UNIFIED IDEOGRAPH - ,0x8BA4 ,0x5171 //CJK UNIFIED IDEOGRAPH - ,0x8BA5 ,0x51F6 //CJK UNIFIED IDEOGRAPH - ,0x8BA6 ,0x5354 //CJK UNIFIED IDEOGRAPH - ,0x8BA7 ,0x5321 //CJK UNIFIED IDEOGRAPH - ,0x8BA8 ,0x537F //CJK UNIFIED IDEOGRAPH - ,0x8BA9 ,0x53EB //CJK UNIFIED IDEOGRAPH - ,0x8BAA ,0x55AC //CJK UNIFIED IDEOGRAPH - ,0x8BAB ,0x5883 //CJK UNIFIED IDEOGRAPH - ,0x8BAC ,0x5CE1 //CJK UNIFIED IDEOGRAPH - ,0x8BAD ,0x5F37 //CJK UNIFIED IDEOGRAPH - ,0x8BAE ,0x5F4A //CJK UNIFIED IDEOGRAPH - ,0x8BAF ,0x602F //CJK UNIFIED IDEOGRAPH - ,0x8BB0 ,0x6050 //CJK UNIFIED IDEOGRAPH - ,0x8BB1 ,0x606D //CJK UNIFIED IDEOGRAPH - ,0x8BB2 ,0x631F //CJK UNIFIED IDEOGRAPH - ,0x8BB3 ,0x6559 //CJK UNIFIED IDEOGRAPH - ,0x8BB4 ,0x6A4B //CJK UNIFIED IDEOGRAPH - ,0x8BB5 ,0x6CC1 //CJK UNIFIED IDEOGRAPH - ,0x8BB6 ,0x72C2 //CJK UNIFIED IDEOGRAPH - ,0x8BB7 ,0x72ED //CJK UNIFIED IDEOGRAPH - ,0x8BB8 ,0x77EF //CJK UNIFIED IDEOGRAPH - ,0x8BB9 ,0x80F8 //CJK UNIFIED IDEOGRAPH - ,0x8BBA ,0x8105 //CJK UNIFIED IDEOGRAPH - ,0x8BBB ,0x8208 //CJK UNIFIED IDEOGRAPH - ,0x8BBC ,0x854E //CJK UNIFIED IDEOGRAPH - ,0x8BBD ,0x90F7 //CJK UNIFIED IDEOGRAPH - ,0x8BBE ,0x93E1 //CJK UNIFIED IDEOGRAPH - ,0x8BBF ,0x97FF //CJK UNIFIED IDEOGRAPH - ,0x8BC0 ,0x9957 //CJK UNIFIED IDEOGRAPH - ,0x8BC1 ,0x9A5A //CJK UNIFIED IDEOGRAPH - ,0x8BC2 ,0x4EF0 //CJK UNIFIED IDEOGRAPH - ,0x8BC3 ,0x51DD //CJK UNIFIED IDEOGRAPH - ,0x8BC4 ,0x5C2D //CJK UNIFIED IDEOGRAPH - ,0x8BC5 ,0x6681 //CJK UNIFIED IDEOGRAPH - ,0x8BC6 ,0x696D //CJK UNIFIED IDEOGRAPH - ,0x8BC7 ,0x5C40 //CJK UNIFIED IDEOGRAPH - ,0x8BC8 ,0x66F2 //CJK UNIFIED IDEOGRAPH - ,0x8BC9 ,0x6975 //CJK UNIFIED IDEOGRAPH - ,0x8BCA ,0x7389 //CJK UNIFIED IDEOGRAPH - ,0x8BCB ,0x6850 //CJK UNIFIED IDEOGRAPH - ,0x8BCC ,0x7C81 //CJK UNIFIED IDEOGRAPH - ,0x8BCD ,0x50C5 //CJK UNIFIED IDEOGRAPH - ,0x8BCE ,0x52E4 //CJK UNIFIED IDEOGRAPH - ,0x8BCF ,0x5747 //CJK UNIFIED IDEOGRAPH - ,0x8BD0 ,0x5DFE //CJK UNIFIED IDEOGRAPH - ,0x8BD1 ,0x9326 //CJK UNIFIED IDEOGRAPH - ,0x8BD2 ,0x65A4 //CJK UNIFIED IDEOGRAPH - ,0x8BD3 ,0x6B23 //CJK UNIFIED IDEOGRAPH - ,0x8BD4 ,0x6B3D //CJK UNIFIED IDEOGRAPH - ,0x8BD5 ,0x7434 //CJK UNIFIED IDEOGRAPH - ,0x8BD6 ,0x7981 //CJK UNIFIED IDEOGRAPH - ,0x8BD7 ,0x79BD //CJK UNIFIED IDEOGRAPH - ,0x8BD8 ,0x7B4B //CJK UNIFIED IDEOGRAPH - ,0x8BD9 ,0x7DCA //CJK UNIFIED IDEOGRAPH - ,0x8BDA ,0x82B9 //CJK UNIFIED IDEOGRAPH - ,0x8BDB ,0x83CC //CJK UNIFIED IDEOGRAPH - ,0x8BDC ,0x887F //CJK UNIFIED IDEOGRAPH - ,0x8BDD ,0x895F //CJK UNIFIED IDEOGRAPH - ,0x8BDE ,0x8B39 //CJK UNIFIED IDEOGRAPH - ,0x8BDF ,0x8FD1 //CJK UNIFIED IDEOGRAPH - ,0x8BE0 ,0x91D1 //CJK UNIFIED IDEOGRAPH - ,0x8BE1 ,0x541F //CJK UNIFIED IDEOGRAPH - ,0x8BE2 ,0x9280 //CJK UNIFIED IDEOGRAPH - ,0x8BE3 ,0x4E5D //CJK UNIFIED IDEOGRAPH - ,0x8BE4 ,0x5036 //CJK UNIFIED IDEOGRAPH - ,0x8BE5 ,0x53E5 //CJK UNIFIED IDEOGRAPH - ,0x8BE6 ,0x533A //CJK UNIFIED IDEOGRAPH - ,0x8BE7 ,0x72D7 //CJK UNIFIED IDEOGRAPH - ,0x8BE8 ,0x7396 //CJK UNIFIED IDEOGRAPH - ,0x8BE9 ,0x77E9 //CJK UNIFIED IDEOGRAPH - ,0x8BEA ,0x82E6 //CJK UNIFIED IDEOGRAPH - ,0x8BEB ,0x8EAF //CJK UNIFIED IDEOGRAPH - ,0x8BEC ,0x99C6 //CJK UNIFIED IDEOGRAPH - ,0x8BED ,0x99C8 //CJK UNIFIED IDEOGRAPH - ,0x8BEE ,0x99D2 //CJK UNIFIED IDEOGRAPH - ,0x8BEF ,0x5177 //CJK UNIFIED IDEOGRAPH - ,0x8BF0 ,0x611A //CJK UNIFIED IDEOGRAPH - ,0x8BF1 ,0x865E //CJK UNIFIED IDEOGRAPH - ,0x8BF2 ,0x55B0 //CJK UNIFIED IDEOGRAPH - ,0x8BF3 ,0x7A7A //CJK UNIFIED IDEOGRAPH - ,0x8BF4 ,0x5076 //CJK UNIFIED IDEOGRAPH - ,0x8BF5 ,0x5BD3 //CJK UNIFIED IDEOGRAPH - ,0x8BF6 ,0x9047 //CJK UNIFIED IDEOGRAPH - ,0x8BF7 ,0x9685 //CJK UNIFIED IDEOGRAPH - ,0x8BF8 ,0x4E32 //CJK UNIFIED IDEOGRAPH - ,0x8BF9 ,0x6ADB //CJK UNIFIED IDEOGRAPH - ,0x8BFA ,0x91E7 //CJK UNIFIED IDEOGRAPH - ,0x8BFB ,0x5C51 //CJK UNIFIED IDEOGRAPH - ,0x8BFC ,0x5C48 //CJK UNIFIED IDEOGRAPH - ,0x8C40 ,0x6398 //CJK UNIFIED IDEOGRAPH - ,0x8C41 ,0x7A9F //CJK UNIFIED IDEOGRAPH - ,0x8C42 ,0x6C93 //CJK UNIFIED IDEOGRAPH - ,0x8C43 ,0x9774 //CJK UNIFIED IDEOGRAPH - ,0x8C44 ,0x8F61 //CJK UNIFIED IDEOGRAPH - ,0x8C45 ,0x7AAA //CJK UNIFIED IDEOGRAPH - ,0x8C46 ,0x718A //CJK UNIFIED IDEOGRAPH - ,0x8C47 ,0x9688 //CJK UNIFIED IDEOGRAPH - ,0x8C48 ,0x7C82 //CJK UNIFIED IDEOGRAPH - ,0x8C49 ,0x6817 //CJK UNIFIED IDEOGRAPH - ,0x8C4A ,0x7E70 //CJK UNIFIED IDEOGRAPH - ,0x8C4B ,0x6851 //CJK UNIFIED IDEOGRAPH - ,0x8C4C ,0x936C //CJK UNIFIED IDEOGRAPH - ,0x8C4D ,0x52F2 //CJK UNIFIED IDEOGRAPH - ,0x8C4E ,0x541B //CJK UNIFIED IDEOGRAPH - ,0x8C4F ,0x85AB //CJK UNIFIED IDEOGRAPH - ,0x8C50 ,0x8A13 //CJK UNIFIED IDEOGRAPH - ,0x8C51 ,0x7FA4 //CJK UNIFIED IDEOGRAPH - ,0x8C52 ,0x8ECD //CJK UNIFIED IDEOGRAPH - ,0x8C53 ,0x90E1 //CJK UNIFIED IDEOGRAPH - ,0x8C54 ,0x5366 //CJK UNIFIED IDEOGRAPH - ,0x8C55 ,0x8888 //CJK UNIFIED IDEOGRAPH - ,0x8C56 ,0x7941 //CJK UNIFIED IDEOGRAPH - ,0x8C57 ,0x4FC2 //CJK UNIFIED IDEOGRAPH - ,0x8C58 ,0x50BE //CJK UNIFIED IDEOGRAPH - ,0x8C59 ,0x5211 //CJK UNIFIED IDEOGRAPH - ,0x8C5A ,0x5144 //CJK UNIFIED IDEOGRAPH - ,0x8C5B ,0x5553 //CJK UNIFIED IDEOGRAPH - ,0x8C5C ,0x572D //CJK UNIFIED IDEOGRAPH - ,0x8C5D ,0x73EA //CJK UNIFIED IDEOGRAPH - ,0x8C5E ,0x578B //CJK UNIFIED IDEOGRAPH - ,0x8C5F ,0x5951 //CJK UNIFIED IDEOGRAPH - ,0x8C60 ,0x5F62 //CJK UNIFIED IDEOGRAPH - ,0x8C61 ,0x5F84 //CJK UNIFIED IDEOGRAPH - ,0x8C62 ,0x6075 //CJK UNIFIED IDEOGRAPH - ,0x8C63 ,0x6176 //CJK UNIFIED IDEOGRAPH - ,0x8C64 ,0x6167 //CJK UNIFIED IDEOGRAPH - ,0x8C65 ,0x61A9 //CJK UNIFIED IDEOGRAPH - ,0x8C66 ,0x63B2 //CJK UNIFIED IDEOGRAPH - ,0x8C67 ,0x643A //CJK UNIFIED IDEOGRAPH - ,0x8C68 ,0x656C //CJK UNIFIED IDEOGRAPH - ,0x8C69 ,0x666F //CJK UNIFIED IDEOGRAPH - ,0x8C6A ,0x6842 //CJK UNIFIED IDEOGRAPH - ,0x8C6B ,0x6E13 //CJK UNIFIED IDEOGRAPH - ,0x8C6C ,0x7566 //CJK UNIFIED IDEOGRAPH - ,0x8C6D ,0x7A3D //CJK UNIFIED IDEOGRAPH - ,0x8C6E ,0x7CFB //CJK UNIFIED IDEOGRAPH - ,0x8C6F ,0x7D4C //CJK UNIFIED IDEOGRAPH - ,0x8C70 ,0x7D99 //CJK UNIFIED IDEOGRAPH - ,0x8C71 ,0x7E4B //CJK UNIFIED IDEOGRAPH - ,0x8C72 ,0x7F6B //CJK UNIFIED IDEOGRAPH - ,0x8C73 ,0x830E //CJK UNIFIED IDEOGRAPH - ,0x8C74 ,0x834A //CJK UNIFIED IDEOGRAPH - ,0x8C75 ,0x86CD //CJK UNIFIED IDEOGRAPH - ,0x8C76 ,0x8A08 //CJK UNIFIED IDEOGRAPH - ,0x8C77 ,0x8A63 //CJK UNIFIED IDEOGRAPH - ,0x8C78 ,0x8B66 //CJK UNIFIED IDEOGRAPH - ,0x8C79 ,0x8EFD //CJK UNIFIED IDEOGRAPH - ,0x8C7A ,0x981A //CJK UNIFIED IDEOGRAPH - ,0x8C7B ,0x9D8F //CJK UNIFIED IDEOGRAPH - ,0x8C7C ,0x82B8 //CJK UNIFIED IDEOGRAPH - ,0x8C7D ,0x8FCE //CJK UNIFIED IDEOGRAPH - ,0x8C7E ,0x9BE8 //CJK UNIFIED IDEOGRAPH - ,0x8C80 ,0x5287 //CJK UNIFIED IDEOGRAPH - ,0x8C81 ,0x621F //CJK UNIFIED IDEOGRAPH - ,0x8C82 ,0x6483 //CJK UNIFIED IDEOGRAPH - ,0x8C83 ,0x6FC0 //CJK UNIFIED IDEOGRAPH - ,0x8C84 ,0x9699 //CJK UNIFIED IDEOGRAPH - ,0x8C85 ,0x6841 //CJK UNIFIED IDEOGRAPH - ,0x8C86 ,0x5091 //CJK UNIFIED IDEOGRAPH - ,0x8C87 ,0x6B20 //CJK UNIFIED IDEOGRAPH - ,0x8C88 ,0x6C7A //CJK UNIFIED IDEOGRAPH - ,0x8C89 ,0x6F54 //CJK UNIFIED IDEOGRAPH - ,0x8C8A ,0x7A74 //CJK UNIFIED IDEOGRAPH - ,0x8C8B ,0x7D50 //CJK UNIFIED IDEOGRAPH - ,0x8C8C ,0x8840 //CJK UNIFIED IDEOGRAPH - ,0x8C8D ,0x8A23 //CJK UNIFIED IDEOGRAPH - ,0x8C8E ,0x6708 //CJK UNIFIED IDEOGRAPH - ,0x8C8F ,0x4EF6 //CJK UNIFIED IDEOGRAPH - ,0x8C90 ,0x5039 //CJK UNIFIED IDEOGRAPH - ,0x8C91 ,0x5026 //CJK UNIFIED IDEOGRAPH - ,0x8C92 ,0x5065 //CJK UNIFIED IDEOGRAPH - ,0x8C93 ,0x517C //CJK UNIFIED IDEOGRAPH - ,0x8C94 ,0x5238 //CJK UNIFIED IDEOGRAPH - ,0x8C95 ,0x5263 //CJK UNIFIED IDEOGRAPH - ,0x8C96 ,0x55A7 //CJK UNIFIED IDEOGRAPH - ,0x8C97 ,0x570F //CJK UNIFIED IDEOGRAPH - ,0x8C98 ,0x5805 //CJK UNIFIED IDEOGRAPH - ,0x8C99 ,0x5ACC //CJK UNIFIED IDEOGRAPH - ,0x8C9A ,0x5EFA //CJK UNIFIED IDEOGRAPH - ,0x8C9B ,0x61B2 //CJK UNIFIED IDEOGRAPH - ,0x8C9C ,0x61F8 //CJK UNIFIED IDEOGRAPH - ,0x8C9D ,0x62F3 //CJK UNIFIED IDEOGRAPH - ,0x8C9E ,0x6372 //CJK UNIFIED IDEOGRAPH - ,0x8C9F ,0x691C //CJK UNIFIED IDEOGRAPH - ,0x8CA0 ,0x6A29 //CJK UNIFIED IDEOGRAPH - ,0x8CA1 ,0x727D //CJK UNIFIED IDEOGRAPH - ,0x8CA2 ,0x72AC //CJK UNIFIED IDEOGRAPH - ,0x8CA3 ,0x732E //CJK UNIFIED IDEOGRAPH - ,0x8CA4 ,0x7814 //CJK UNIFIED IDEOGRAPH - ,0x8CA5 ,0x786F //CJK UNIFIED IDEOGRAPH - ,0x8CA6 ,0x7D79 //CJK UNIFIED IDEOGRAPH - ,0x8CA7 ,0x770C //CJK UNIFIED IDEOGRAPH - ,0x8CA8 ,0x80A9 //CJK UNIFIED IDEOGRAPH - ,0x8CA9 ,0x898B //CJK UNIFIED IDEOGRAPH - ,0x8CAA ,0x8B19 //CJK UNIFIED IDEOGRAPH - ,0x8CAB ,0x8CE2 //CJK UNIFIED IDEOGRAPH - ,0x8CAC ,0x8ED2 //CJK UNIFIED IDEOGRAPH - ,0x8CAD ,0x9063 //CJK UNIFIED IDEOGRAPH - ,0x8CAE ,0x9375 //CJK UNIFIED IDEOGRAPH - ,0x8CAF ,0x967A //CJK UNIFIED IDEOGRAPH - ,0x8CB0 ,0x9855 //CJK UNIFIED IDEOGRAPH - ,0x8CB1 ,0x9A13 //CJK UNIFIED IDEOGRAPH - ,0x8CB2 ,0x9E78 //CJK UNIFIED IDEOGRAPH - ,0x8CB3 ,0x5143 //CJK UNIFIED IDEOGRAPH - ,0x8CB4 ,0x539F //CJK UNIFIED IDEOGRAPH - ,0x8CB5 ,0x53B3 //CJK UNIFIED IDEOGRAPH - ,0x8CB6 ,0x5E7B //CJK UNIFIED IDEOGRAPH - ,0x8CB7 ,0x5F26 //CJK UNIFIED IDEOGRAPH - ,0x8CB8 ,0x6E1B //CJK UNIFIED IDEOGRAPH - ,0x8CB9 ,0x6E90 //CJK UNIFIED IDEOGRAPH - ,0x8CBA ,0x7384 //CJK UNIFIED IDEOGRAPH - ,0x8CBB ,0x73FE //CJK UNIFIED IDEOGRAPH - ,0x8CBC ,0x7D43 //CJK UNIFIED IDEOGRAPH - ,0x8CBD ,0x8237 //CJK UNIFIED IDEOGRAPH - ,0x8CBE ,0x8A00 //CJK UNIFIED IDEOGRAPH - ,0x8CBF ,0x8AFA //CJK UNIFIED IDEOGRAPH - ,0x8CC0 ,0x9650 //CJK UNIFIED IDEOGRAPH - ,0x8CC1 ,0x4E4E //CJK UNIFIED IDEOGRAPH - ,0x8CC2 ,0x500B //CJK UNIFIED IDEOGRAPH - ,0x8CC3 ,0x53E4 //CJK UNIFIED IDEOGRAPH - ,0x8CC4 ,0x547C //CJK UNIFIED IDEOGRAPH - ,0x8CC5 ,0x56FA //CJK UNIFIED IDEOGRAPH - ,0x8CC6 ,0x59D1 //CJK UNIFIED IDEOGRAPH - ,0x8CC7 ,0x5B64 //CJK UNIFIED IDEOGRAPH - ,0x8CC8 ,0x5DF1 //CJK UNIFIED IDEOGRAPH - ,0x8CC9 ,0x5EAB //CJK UNIFIED IDEOGRAPH - ,0x8CCA ,0x5F27 //CJK UNIFIED IDEOGRAPH - ,0x8CCB ,0x6238 //CJK UNIFIED IDEOGRAPH - ,0x8CCC ,0x6545 //CJK UNIFIED IDEOGRAPH - ,0x8CCD ,0x67AF //CJK UNIFIED IDEOGRAPH - ,0x8CCE ,0x6E56 //CJK UNIFIED IDEOGRAPH - ,0x8CCF ,0x72D0 //CJK UNIFIED IDEOGRAPH - ,0x8CD0 ,0x7CCA //CJK UNIFIED IDEOGRAPH - ,0x8CD1 ,0x88B4 //CJK UNIFIED IDEOGRAPH - ,0x8CD2 ,0x80A1 //CJK UNIFIED IDEOGRAPH - ,0x8CD3 ,0x80E1 //CJK UNIFIED IDEOGRAPH - ,0x8CD4 ,0x83F0 //CJK UNIFIED IDEOGRAPH - ,0x8CD5 ,0x864E //CJK UNIFIED IDEOGRAPH - ,0x8CD6 ,0x8A87 //CJK UNIFIED IDEOGRAPH - ,0x8CD7 ,0x8DE8 //CJK UNIFIED IDEOGRAPH - ,0x8CD8 ,0x9237 //CJK UNIFIED IDEOGRAPH - ,0x8CD9 ,0x96C7 //CJK UNIFIED IDEOGRAPH - ,0x8CDA ,0x9867 //CJK UNIFIED IDEOGRAPH - ,0x8CDB ,0x9F13 //CJK UNIFIED IDEOGRAPH - ,0x8CDC ,0x4E94 //CJK UNIFIED IDEOGRAPH - ,0x8CDD ,0x4E92 //CJK UNIFIED IDEOGRAPH - ,0x8CDE ,0x4F0D //CJK UNIFIED IDEOGRAPH - ,0x8CDF ,0x5348 //CJK UNIFIED IDEOGRAPH - ,0x8CE0 ,0x5449 //CJK UNIFIED IDEOGRAPH - ,0x8CE1 ,0x543E //CJK UNIFIED IDEOGRAPH - ,0x8CE2 ,0x5A2F //CJK UNIFIED IDEOGRAPH - ,0x8CE3 ,0x5F8C //CJK UNIFIED IDEOGRAPH - ,0x8CE4 ,0x5FA1 //CJK UNIFIED IDEOGRAPH - ,0x8CE5 ,0x609F //CJK UNIFIED IDEOGRAPH - ,0x8CE6 ,0x68A7 //CJK UNIFIED IDEOGRAPH - ,0x8CE7 ,0x6A8E //CJK UNIFIED IDEOGRAPH - ,0x8CE8 ,0x745A //CJK UNIFIED IDEOGRAPH - ,0x8CE9 ,0x7881 //CJK UNIFIED IDEOGRAPH - ,0x8CEA ,0x8A9E //CJK UNIFIED IDEOGRAPH - ,0x8CEB ,0x8AA4 //CJK UNIFIED IDEOGRAPH - ,0x8CEC ,0x8B77 //CJK UNIFIED IDEOGRAPH - ,0x8CED ,0x9190 //CJK UNIFIED IDEOGRAPH - ,0x8CEE ,0x4E5E //CJK UNIFIED IDEOGRAPH - ,0x8CEF ,0x9BC9 //CJK UNIFIED IDEOGRAPH - ,0x8CF0 ,0x4EA4 //CJK UNIFIED IDEOGRAPH - ,0x8CF1 ,0x4F7C //CJK UNIFIED IDEOGRAPH - ,0x8CF2 ,0x4FAF //CJK UNIFIED IDEOGRAPH - ,0x8CF3 ,0x5019 //CJK UNIFIED IDEOGRAPH - ,0x8CF4 ,0x5016 //CJK UNIFIED IDEOGRAPH - ,0x8CF5 ,0x5149 //CJK UNIFIED IDEOGRAPH - ,0x8CF6 ,0x516C //CJK UNIFIED IDEOGRAPH - ,0x8CF7 ,0x529F //CJK UNIFIED IDEOGRAPH - ,0x8CF8 ,0x52B9 //CJK UNIFIED IDEOGRAPH - ,0x8CF9 ,0x52FE //CJK UNIFIED IDEOGRAPH - ,0x8CFA ,0x539A //CJK UNIFIED IDEOGRAPH - ,0x8CFB ,0x53E3 //CJK UNIFIED IDEOGRAPH - ,0x8CFC ,0x5411 //CJK UNIFIED IDEOGRAPH - ,0x8D40 ,0x540E //CJK UNIFIED IDEOGRAPH - ,0x8D41 ,0x5589 //CJK UNIFIED IDEOGRAPH - ,0x8D42 ,0x5751 //CJK UNIFIED IDEOGRAPH - ,0x8D43 ,0x57A2 //CJK UNIFIED IDEOGRAPH - ,0x8D44 ,0x597D //CJK UNIFIED IDEOGRAPH - ,0x8D45 ,0x5B54 //CJK UNIFIED IDEOGRAPH - ,0x8D46 ,0x5B5D //CJK UNIFIED IDEOGRAPH - ,0x8D47 ,0x5B8F //CJK UNIFIED IDEOGRAPH - ,0x8D48 ,0x5DE5 //CJK UNIFIED IDEOGRAPH - ,0x8D49 ,0x5DE7 //CJK UNIFIED IDEOGRAPH - ,0x8D4A ,0x5DF7 //CJK UNIFIED IDEOGRAPH - ,0x8D4B ,0x5E78 //CJK UNIFIED IDEOGRAPH - ,0x8D4C ,0x5E83 //CJK UNIFIED IDEOGRAPH - ,0x8D4D ,0x5E9A //CJK UNIFIED IDEOGRAPH - ,0x8D4E ,0x5EB7 //CJK UNIFIED IDEOGRAPH - ,0x8D4F ,0x5F18 //CJK UNIFIED IDEOGRAPH - ,0x8D50 ,0x6052 //CJK UNIFIED IDEOGRAPH - ,0x8D51 ,0x614C //CJK UNIFIED IDEOGRAPH - ,0x8D52 ,0x6297 //CJK UNIFIED IDEOGRAPH - ,0x8D53 ,0x62D8 //CJK UNIFIED IDEOGRAPH - ,0x8D54 ,0x63A7 //CJK UNIFIED IDEOGRAPH - ,0x8D55 ,0x653B //CJK UNIFIED IDEOGRAPH - ,0x8D56 ,0x6602 //CJK UNIFIED IDEOGRAPH - ,0x8D57 ,0x6643 //CJK UNIFIED IDEOGRAPH - ,0x8D58 ,0x66F4 //CJK UNIFIED IDEOGRAPH - ,0x8D59 ,0x676D //CJK UNIFIED IDEOGRAPH - ,0x8D5A ,0x6821 //CJK UNIFIED IDEOGRAPH - ,0x8D5B ,0x6897 //CJK UNIFIED IDEOGRAPH - ,0x8D5C ,0x69CB //CJK UNIFIED IDEOGRAPH - ,0x8D5D ,0x6C5F //CJK UNIFIED IDEOGRAPH - ,0x8D5E ,0x6D2A //CJK UNIFIED IDEOGRAPH - ,0x8D5F ,0x6D69 //CJK UNIFIED IDEOGRAPH - ,0x8D60 ,0x6E2F //CJK UNIFIED IDEOGRAPH - ,0x8D61 ,0x6E9D //CJK UNIFIED IDEOGRAPH - ,0x8D62 ,0x7532 //CJK UNIFIED IDEOGRAPH - ,0x8D63 ,0x7687 //CJK UNIFIED IDEOGRAPH - ,0x8D64 ,0x786C //CJK UNIFIED IDEOGRAPH - ,0x8D65 ,0x7A3F //CJK UNIFIED IDEOGRAPH - ,0x8D66 ,0x7CE0 //CJK UNIFIED IDEOGRAPH - ,0x8D67 ,0x7D05 //CJK UNIFIED IDEOGRAPH - ,0x8D68 ,0x7D18 //CJK UNIFIED IDEOGRAPH - ,0x8D69 ,0x7D5E //CJK UNIFIED IDEOGRAPH - ,0x8D6A ,0x7DB1 //CJK UNIFIED IDEOGRAPH - ,0x8D6B ,0x8015 //CJK UNIFIED IDEOGRAPH - ,0x8D6C ,0x8003 //CJK UNIFIED IDEOGRAPH - ,0x8D6D ,0x80AF //CJK UNIFIED IDEOGRAPH - ,0x8D6E ,0x80B1 //CJK UNIFIED IDEOGRAPH - ,0x8D6F ,0x8154 //CJK UNIFIED IDEOGRAPH - ,0x8D70 ,0x818F //CJK UNIFIED IDEOGRAPH - ,0x8D71 ,0x822A //CJK UNIFIED IDEOGRAPH - ,0x8D72 ,0x8352 //CJK UNIFIED IDEOGRAPH - ,0x8D73 ,0x884C //CJK UNIFIED IDEOGRAPH - ,0x8D74 ,0x8861 //CJK UNIFIED IDEOGRAPH - ,0x8D75 ,0x8B1B //CJK UNIFIED IDEOGRAPH - ,0x8D76 ,0x8CA2 //CJK UNIFIED IDEOGRAPH - ,0x8D77 ,0x8CFC //CJK UNIFIED IDEOGRAPH - ,0x8D78 ,0x90CA //CJK UNIFIED IDEOGRAPH - ,0x8D79 ,0x9175 //CJK UNIFIED IDEOGRAPH - ,0x8D7A ,0x9271 //CJK UNIFIED IDEOGRAPH - ,0x8D7B ,0x783F //CJK UNIFIED IDEOGRAPH - ,0x8D7C ,0x92FC //CJK UNIFIED IDEOGRAPH - ,0x8D7D ,0x95A4 //CJK UNIFIED IDEOGRAPH - ,0x8D7E ,0x964D //CJK UNIFIED IDEOGRAPH - ,0x8D80 ,0x9805 //CJK UNIFIED IDEOGRAPH - ,0x8D81 ,0x9999 //CJK UNIFIED IDEOGRAPH - ,0x8D82 ,0x9AD8 //CJK UNIFIED IDEOGRAPH - ,0x8D83 ,0x9D3B //CJK UNIFIED IDEOGRAPH - ,0x8D84 ,0x525B //CJK UNIFIED IDEOGRAPH - ,0x8D85 ,0x52AB //CJK UNIFIED IDEOGRAPH - ,0x8D86 ,0x53F7 //CJK UNIFIED IDEOGRAPH - ,0x8D87 ,0x5408 //CJK UNIFIED IDEOGRAPH - ,0x8D88 ,0x58D5 //CJK UNIFIED IDEOGRAPH - ,0x8D89 ,0x62F7 //CJK UNIFIED IDEOGRAPH - ,0x8D8A ,0x6FE0 //CJK UNIFIED IDEOGRAPH - ,0x8D8B ,0x8C6A //CJK UNIFIED IDEOGRAPH - ,0x8D8C ,0x8F5F //CJK UNIFIED IDEOGRAPH - ,0x8D8D ,0x9EB9 //CJK UNIFIED IDEOGRAPH - ,0x8D8E ,0x514B //CJK UNIFIED IDEOGRAPH - ,0x8D8F ,0x523B //CJK UNIFIED IDEOGRAPH - ,0x8D90 ,0x544A //CJK UNIFIED IDEOGRAPH - ,0x8D91 ,0x56FD //CJK UNIFIED IDEOGRAPH - ,0x8D92 ,0x7A40 //CJK UNIFIED IDEOGRAPH - ,0x8D93 ,0x9177 //CJK UNIFIED IDEOGRAPH - ,0x8D94 ,0x9D60 //CJK UNIFIED IDEOGRAPH - ,0x8D95 ,0x9ED2 //CJK UNIFIED IDEOGRAPH - ,0x8D96 ,0x7344 //CJK UNIFIED IDEOGRAPH - ,0x8D97 ,0x6F09 //CJK UNIFIED IDEOGRAPH - ,0x8D98 ,0x8170 //CJK UNIFIED IDEOGRAPH - ,0x8D99 ,0x7511 //CJK UNIFIED IDEOGRAPH - ,0x8D9A ,0x5FFD //CJK UNIFIED IDEOGRAPH - ,0x8D9B ,0x60DA //CJK UNIFIED IDEOGRAPH - ,0x8D9C ,0x9AA8 //CJK UNIFIED IDEOGRAPH - ,0x8D9D ,0x72DB //CJK UNIFIED IDEOGRAPH - ,0x8D9E ,0x8FBC //CJK UNIFIED IDEOGRAPH - ,0x8D9F ,0x6B64 //CJK UNIFIED IDEOGRAPH - ,0x8DA0 ,0x9803 //CJK UNIFIED IDEOGRAPH - ,0x8DA1 ,0x4ECA //CJK UNIFIED IDEOGRAPH - ,0x8DA2 ,0x56F0 //CJK UNIFIED IDEOGRAPH - ,0x8DA3 ,0x5764 //CJK UNIFIED IDEOGRAPH - ,0x8DA4 ,0x58BE //CJK UNIFIED IDEOGRAPH - ,0x8DA5 ,0x5A5A //CJK UNIFIED IDEOGRAPH - ,0x8DA6 ,0x6068 //CJK UNIFIED IDEOGRAPH - ,0x8DA7 ,0x61C7 //CJK UNIFIED IDEOGRAPH - ,0x8DA8 ,0x660F //CJK UNIFIED IDEOGRAPH - ,0x8DA9 ,0x6606 //CJK UNIFIED IDEOGRAPH - ,0x8DAA ,0x6839 //CJK UNIFIED IDEOGRAPH - ,0x8DAB ,0x68B1 //CJK UNIFIED IDEOGRAPH - ,0x8DAC ,0x6DF7 //CJK UNIFIED IDEOGRAPH - ,0x8DAD ,0x75D5 //CJK UNIFIED IDEOGRAPH - ,0x8DAE ,0x7D3A //CJK UNIFIED IDEOGRAPH - ,0x8DAF ,0x826E //CJK UNIFIED IDEOGRAPH - ,0x8DB0 ,0x9B42 //CJK UNIFIED IDEOGRAPH - ,0x8DB1 ,0x4E9B //CJK UNIFIED IDEOGRAPH - ,0x8DB2 ,0x4F50 //CJK UNIFIED IDEOGRAPH - ,0x8DB3 ,0x53C9 //CJK UNIFIED IDEOGRAPH - ,0x8DB4 ,0x5506 //CJK UNIFIED IDEOGRAPH - ,0x8DB5 ,0x5D6F //CJK UNIFIED IDEOGRAPH - ,0x8DB6 ,0x5DE6 //CJK UNIFIED IDEOGRAPH - ,0x8DB7 ,0x5DEE //CJK UNIFIED IDEOGRAPH - ,0x8DB8 ,0x67FB //CJK UNIFIED IDEOGRAPH - ,0x8DB9 ,0x6C99 //CJK UNIFIED IDEOGRAPH - ,0x8DBA ,0x7473 //CJK UNIFIED IDEOGRAPH - ,0x8DBB ,0x7802 //CJK UNIFIED IDEOGRAPH - ,0x8DBC ,0x8A50 //CJK UNIFIED IDEOGRAPH - ,0x8DBD ,0x9396 //CJK UNIFIED IDEOGRAPH - ,0x8DBE ,0x88DF //CJK UNIFIED IDEOGRAPH - ,0x8DBF ,0x5750 //CJK UNIFIED IDEOGRAPH - ,0x8DC0 ,0x5EA7 //CJK UNIFIED IDEOGRAPH - ,0x8DC1 ,0x632B //CJK UNIFIED IDEOGRAPH - ,0x8DC2 ,0x50B5 //CJK UNIFIED IDEOGRAPH - ,0x8DC3 ,0x50AC //CJK UNIFIED IDEOGRAPH - ,0x8DC4 ,0x518D //CJK UNIFIED IDEOGRAPH - ,0x8DC5 ,0x6700 //CJK UNIFIED IDEOGRAPH - ,0x8DC6 ,0x54C9 //CJK UNIFIED IDEOGRAPH - ,0x8DC7 ,0x585E //CJK UNIFIED IDEOGRAPH - ,0x8DC8 ,0x59BB //CJK UNIFIED IDEOGRAPH - ,0x8DC9 ,0x5BB0 //CJK UNIFIED IDEOGRAPH - ,0x8DCA ,0x5F69 //CJK UNIFIED IDEOGRAPH - ,0x8DCB ,0x624D //CJK UNIFIED IDEOGRAPH - ,0x8DCC ,0x63A1 //CJK UNIFIED IDEOGRAPH - ,0x8DCD ,0x683D //CJK UNIFIED IDEOGRAPH - ,0x8DCE ,0x6B73 //CJK UNIFIED IDEOGRAPH - ,0x8DCF ,0x6E08 //CJK UNIFIED IDEOGRAPH - ,0x8DD0 ,0x707D //CJK UNIFIED IDEOGRAPH - ,0x8DD1 ,0x91C7 //CJK UNIFIED IDEOGRAPH - ,0x8DD2 ,0x7280 //CJK UNIFIED IDEOGRAPH - ,0x8DD3 ,0x7815 //CJK UNIFIED IDEOGRAPH - ,0x8DD4 ,0x7826 //CJK UNIFIED IDEOGRAPH - ,0x8DD5 ,0x796D //CJK UNIFIED IDEOGRAPH - ,0x8DD6 ,0x658E //CJK UNIFIED IDEOGRAPH - ,0x8DD7 ,0x7D30 //CJK UNIFIED IDEOGRAPH - ,0x8DD8 ,0x83DC //CJK UNIFIED IDEOGRAPH - ,0x8DD9 ,0x88C1 //CJK UNIFIED IDEOGRAPH - ,0x8DDA ,0x8F09 //CJK UNIFIED IDEOGRAPH - ,0x8DDB ,0x969B //CJK UNIFIED IDEOGRAPH - ,0x8DDC ,0x5264 //CJK UNIFIED IDEOGRAPH - ,0x8DDD ,0x5728 //CJK UNIFIED IDEOGRAPH - ,0x8DDE ,0x6750 //CJK UNIFIED IDEOGRAPH - ,0x8DDF ,0x7F6A //CJK UNIFIED IDEOGRAPH - ,0x8DE0 ,0x8CA1 //CJK UNIFIED IDEOGRAPH - ,0x8DE1 ,0x51B4 //CJK UNIFIED IDEOGRAPH - ,0x8DE2 ,0x5742 //CJK UNIFIED IDEOGRAPH - ,0x8DE3 ,0x962A //CJK UNIFIED IDEOGRAPH - ,0x8DE4 ,0x583A //CJK UNIFIED IDEOGRAPH - ,0x8DE5 ,0x698A //CJK UNIFIED IDEOGRAPH - ,0x8DE6 ,0x80B4 //CJK UNIFIED IDEOGRAPH - ,0x8DE7 ,0x54B2 //CJK UNIFIED IDEOGRAPH - ,0x8DE8 ,0x5D0E //CJK UNIFIED IDEOGRAPH - ,0x8DE9 ,0x57FC //CJK UNIFIED IDEOGRAPH - ,0x8DEA ,0x7895 //CJK UNIFIED IDEOGRAPH - ,0x8DEB ,0x9DFA //CJK UNIFIED IDEOGRAPH - ,0x8DEC ,0x4F5C //CJK UNIFIED IDEOGRAPH - ,0x8DED ,0x524A //CJK UNIFIED IDEOGRAPH - ,0x8DEE ,0x548B //CJK UNIFIED IDEOGRAPH - ,0x8DEF ,0x643E //CJK UNIFIED IDEOGRAPH - ,0x8DF0 ,0x6628 //CJK UNIFIED IDEOGRAPH - ,0x8DF1 ,0x6714 //CJK UNIFIED IDEOGRAPH - ,0x8DF2 ,0x67F5 //CJK UNIFIED IDEOGRAPH - ,0x8DF3 ,0x7A84 //CJK UNIFIED IDEOGRAPH - ,0x8DF4 ,0x7B56 //CJK UNIFIED IDEOGRAPH - ,0x8DF5 ,0x7D22 //CJK UNIFIED IDEOGRAPH - ,0x8DF6 ,0x932F //CJK UNIFIED IDEOGRAPH - ,0x8DF7 ,0x685C //CJK UNIFIED IDEOGRAPH - ,0x8DF8 ,0x9BAD //CJK UNIFIED IDEOGRAPH - ,0x8DF9 ,0x7B39 //CJK UNIFIED IDEOGRAPH - ,0x8DFA ,0x5319 //CJK UNIFIED IDEOGRAPH - ,0x8DFB ,0x518A //CJK UNIFIED IDEOGRAPH - ,0x8DFC ,0x5237 //CJK UNIFIED IDEOGRAPH - ,0x8E40 ,0x5BDF //CJK UNIFIED IDEOGRAPH - ,0x8E41 ,0x62F6 //CJK UNIFIED IDEOGRAPH - ,0x8E42 ,0x64AE //CJK UNIFIED IDEOGRAPH - ,0x8E43 ,0x64E6 //CJK UNIFIED IDEOGRAPH - ,0x8E44 ,0x672D //CJK UNIFIED IDEOGRAPH - ,0x8E45 ,0x6BBA //CJK UNIFIED IDEOGRAPH - ,0x8E46 ,0x85A9 //CJK UNIFIED IDEOGRAPH - ,0x8E47 ,0x96D1 //CJK UNIFIED IDEOGRAPH - ,0x8E48 ,0x7690 //CJK UNIFIED IDEOGRAPH - ,0x8E49 ,0x9BD6 //CJK UNIFIED IDEOGRAPH - ,0x8E4A ,0x634C //CJK UNIFIED IDEOGRAPH - ,0x8E4B ,0x9306 //CJK UNIFIED IDEOGRAPH - ,0x8E4C ,0x9BAB //CJK UNIFIED IDEOGRAPH - ,0x8E4D ,0x76BF //CJK UNIFIED IDEOGRAPH - ,0x8E4E ,0x6652 //CJK UNIFIED IDEOGRAPH - ,0x8E4F ,0x4E09 //CJK UNIFIED IDEOGRAPH - ,0x8E50 ,0x5098 //CJK UNIFIED IDEOGRAPH - ,0x8E51 ,0x53C2 //CJK UNIFIED IDEOGRAPH - ,0x8E52 ,0x5C71 //CJK UNIFIED IDEOGRAPH - ,0x8E53 ,0x60E8 //CJK UNIFIED IDEOGRAPH - ,0x8E54 ,0x6492 //CJK UNIFIED IDEOGRAPH - ,0x8E55 ,0x6563 //CJK UNIFIED IDEOGRAPH - ,0x8E56 ,0x685F //CJK UNIFIED IDEOGRAPH - ,0x8E57 ,0x71E6 //CJK UNIFIED IDEOGRAPH - ,0x8E58 ,0x73CA //CJK UNIFIED IDEOGRAPH - ,0x8E59 ,0x7523 //CJK UNIFIED IDEOGRAPH - ,0x8E5A ,0x7B97 //CJK UNIFIED IDEOGRAPH - ,0x8E5B ,0x7E82 //CJK UNIFIED IDEOGRAPH - ,0x8E5C ,0x8695 //CJK UNIFIED IDEOGRAPH - ,0x8E5D ,0x8B83 //CJK UNIFIED IDEOGRAPH - ,0x8E5E ,0x8CDB //CJK UNIFIED IDEOGRAPH - ,0x8E5F ,0x9178 //CJK UNIFIED IDEOGRAPH - ,0x8E60 ,0x9910 //CJK UNIFIED IDEOGRAPH - ,0x8E61 ,0x65AC //CJK UNIFIED IDEOGRAPH - ,0x8E62 ,0x66AB //CJK UNIFIED IDEOGRAPH - ,0x8E63 ,0x6B8B //CJK UNIFIED IDEOGRAPH - ,0x8E64 ,0x4ED5 //CJK UNIFIED IDEOGRAPH - ,0x8E65 ,0x4ED4 //CJK UNIFIED IDEOGRAPH - ,0x8E66 ,0x4F3A //CJK UNIFIED IDEOGRAPH - ,0x8E67 ,0x4F7F //CJK UNIFIED IDEOGRAPH - ,0x8E68 ,0x523A //CJK UNIFIED IDEOGRAPH - ,0x8E69 ,0x53F8 //CJK UNIFIED IDEOGRAPH - ,0x8E6A ,0x53F2 //CJK UNIFIED IDEOGRAPH - ,0x8E6B ,0x55E3 //CJK UNIFIED IDEOGRAPH - ,0x8E6C ,0x56DB //CJK UNIFIED IDEOGRAPH - ,0x8E6D ,0x58EB //CJK UNIFIED IDEOGRAPH - ,0x8E6E ,0x59CB //CJK UNIFIED IDEOGRAPH - ,0x8E6F ,0x59C9 //CJK UNIFIED IDEOGRAPH - ,0x8E70 ,0x59FF //CJK UNIFIED IDEOGRAPH - ,0x8E71 ,0x5B50 //CJK UNIFIED IDEOGRAPH - ,0x8E72 ,0x5C4D //CJK UNIFIED IDEOGRAPH - ,0x8E73 ,0x5E02 //CJK UNIFIED IDEOGRAPH - ,0x8E74 ,0x5E2B //CJK UNIFIED IDEOGRAPH - ,0x8E75 ,0x5FD7 //CJK UNIFIED IDEOGRAPH - ,0x8E76 ,0x601D //CJK UNIFIED IDEOGRAPH - ,0x8E77 ,0x6307 //CJK UNIFIED IDEOGRAPH - ,0x8E78 ,0x652F //CJK UNIFIED IDEOGRAPH - ,0x8E79 ,0x5B5C //CJK UNIFIED IDEOGRAPH - ,0x8E7A ,0x65AF //CJK UNIFIED IDEOGRAPH - ,0x8E7B ,0x65BD //CJK UNIFIED IDEOGRAPH - ,0x8E7C ,0x65E8 //CJK UNIFIED IDEOGRAPH - ,0x8E7D ,0x679D //CJK UNIFIED IDEOGRAPH - ,0x8E7E ,0x6B62 //CJK UNIFIED IDEOGRAPH - ,0x8E80 ,0x6B7B //CJK UNIFIED IDEOGRAPH - ,0x8E81 ,0x6C0F //CJK UNIFIED IDEOGRAPH - ,0x8E82 ,0x7345 //CJK UNIFIED IDEOGRAPH - ,0x8E83 ,0x7949 //CJK UNIFIED IDEOGRAPH - ,0x8E84 ,0x79C1 //CJK UNIFIED IDEOGRAPH - ,0x8E85 ,0x7CF8 //CJK UNIFIED IDEOGRAPH - ,0x8E86 ,0x7D19 //CJK UNIFIED IDEOGRAPH - ,0x8E87 ,0x7D2B //CJK UNIFIED IDEOGRAPH - ,0x8E88 ,0x80A2 //CJK UNIFIED IDEOGRAPH - ,0x8E89 ,0x8102 //CJK UNIFIED IDEOGRAPH - ,0x8E8A ,0x81F3 //CJK UNIFIED IDEOGRAPH - ,0x8E8B ,0x8996 //CJK UNIFIED IDEOGRAPH - ,0x8E8C ,0x8A5E //CJK UNIFIED IDEOGRAPH - ,0x8E8D ,0x8A69 //CJK UNIFIED IDEOGRAPH - ,0x8E8E ,0x8A66 //CJK UNIFIED IDEOGRAPH - ,0x8E8F ,0x8A8C //CJK UNIFIED IDEOGRAPH - ,0x8E90 ,0x8AEE //CJK UNIFIED IDEOGRAPH - ,0x8E91 ,0x8CC7 //CJK UNIFIED IDEOGRAPH - ,0x8E92 ,0x8CDC //CJK UNIFIED IDEOGRAPH - ,0x8E93 ,0x96CC //CJK UNIFIED IDEOGRAPH - ,0x8E94 ,0x98FC //CJK UNIFIED IDEOGRAPH - ,0x8E95 ,0x6B6F //CJK UNIFIED IDEOGRAPH - ,0x8E96 ,0x4E8B //CJK UNIFIED IDEOGRAPH - ,0x8E97 ,0x4F3C //CJK UNIFIED IDEOGRAPH - ,0x8E98 ,0x4F8D //CJK UNIFIED IDEOGRAPH - ,0x8E99 ,0x5150 //CJK UNIFIED IDEOGRAPH - ,0x8E9A ,0x5B57 //CJK UNIFIED IDEOGRAPH - ,0x8E9B ,0x5BFA //CJK UNIFIED IDEOGRAPH - ,0x8E9C ,0x6148 //CJK UNIFIED IDEOGRAPH - ,0x8E9D ,0x6301 //CJK UNIFIED IDEOGRAPH - ,0x8E9E ,0x6642 //CJK UNIFIED IDEOGRAPH - ,0x8E9F ,0x6B21 //CJK UNIFIED IDEOGRAPH - ,0x8EA0 ,0x6ECB //CJK UNIFIED IDEOGRAPH - ,0x8EA1 ,0x6CBB //CJK UNIFIED IDEOGRAPH - ,0x8EA2 ,0x723E //CJK UNIFIED IDEOGRAPH - ,0x8EA3 ,0x74BD //CJK UNIFIED IDEOGRAPH - ,0x8EA4 ,0x75D4 //CJK UNIFIED IDEOGRAPH - ,0x8EA5 ,0x78C1 //CJK UNIFIED IDEOGRAPH - ,0x8EA6 ,0x793A //CJK UNIFIED IDEOGRAPH - ,0x8EA7 ,0x800C //CJK UNIFIED IDEOGRAPH - ,0x8EA8 ,0x8033 //CJK UNIFIED IDEOGRAPH - ,0x8EA9 ,0x81EA //CJK UNIFIED IDEOGRAPH - ,0x8EAA ,0x8494 //CJK UNIFIED IDEOGRAPH - ,0x8EAB ,0x8F9E //CJK UNIFIED IDEOGRAPH - ,0x8EAC ,0x6C50 //CJK UNIFIED IDEOGRAPH - ,0x8EAD ,0x9E7F //CJK UNIFIED IDEOGRAPH - ,0x8EAE ,0x5F0F //CJK UNIFIED IDEOGRAPH - ,0x8EAF ,0x8B58 //CJK UNIFIED IDEOGRAPH - ,0x8EB0 ,0x9D2B //CJK UNIFIED IDEOGRAPH - ,0x8EB1 ,0x7AFA //CJK UNIFIED IDEOGRAPH - ,0x8EB2 ,0x8EF8 //CJK UNIFIED IDEOGRAPH - ,0x8EB3 ,0x5B8D //CJK UNIFIED IDEOGRAPH - ,0x8EB4 ,0x96EB //CJK UNIFIED IDEOGRAPH - ,0x8EB5 ,0x4E03 //CJK UNIFIED IDEOGRAPH - ,0x8EB6 ,0x53F1 //CJK UNIFIED IDEOGRAPH - ,0x8EB7 ,0x57F7 //CJK UNIFIED IDEOGRAPH - ,0x8EB8 ,0x5931 //CJK UNIFIED IDEOGRAPH - ,0x8EB9 ,0x5AC9 //CJK UNIFIED IDEOGRAPH - ,0x8EBA ,0x5BA4 //CJK UNIFIED IDEOGRAPH - ,0x8EBB ,0x6089 //CJK UNIFIED IDEOGRAPH - ,0x8EBC ,0x6E7F //CJK UNIFIED IDEOGRAPH - ,0x8EBD ,0x6F06 //CJK UNIFIED IDEOGRAPH - ,0x8EBE ,0x75BE //CJK UNIFIED IDEOGRAPH - ,0x8EBF ,0x8CEA //CJK UNIFIED IDEOGRAPH - ,0x8EC0 ,0x5B9F //CJK UNIFIED IDEOGRAPH - ,0x8EC1 ,0x8500 //CJK UNIFIED IDEOGRAPH - ,0x8EC2 ,0x7BE0 //CJK UNIFIED IDEOGRAPH - ,0x8EC3 ,0x5072 //CJK UNIFIED IDEOGRAPH - ,0x8EC4 ,0x67F4 //CJK UNIFIED IDEOGRAPH - ,0x8EC5 ,0x829D //CJK UNIFIED IDEOGRAPH - ,0x8EC6 ,0x5C61 //CJK UNIFIED IDEOGRAPH - ,0x8EC7 ,0x854A //CJK UNIFIED IDEOGRAPH - ,0x8EC8 ,0x7E1E //CJK UNIFIED IDEOGRAPH - ,0x8EC9 ,0x820E //CJK UNIFIED IDEOGRAPH - ,0x8ECA ,0x5199 //CJK UNIFIED IDEOGRAPH - ,0x8ECB ,0x5C04 //CJK UNIFIED IDEOGRAPH - ,0x8ECC ,0x6368 //CJK UNIFIED IDEOGRAPH - ,0x8ECD ,0x8D66 //CJK UNIFIED IDEOGRAPH - ,0x8ECE ,0x659C //CJK UNIFIED IDEOGRAPH - ,0x8ECF ,0x716E //CJK UNIFIED IDEOGRAPH - ,0x8ED0 ,0x793E //CJK UNIFIED IDEOGRAPH - ,0x8ED1 ,0x7D17 //CJK UNIFIED IDEOGRAPH - ,0x8ED2 ,0x8005 //CJK UNIFIED IDEOGRAPH - ,0x8ED3 ,0x8B1D //CJK UNIFIED IDEOGRAPH - ,0x8ED4 ,0x8ECA //CJK UNIFIED IDEOGRAPH - ,0x8ED5 ,0x906E //CJK UNIFIED IDEOGRAPH - ,0x8ED6 ,0x86C7 //CJK UNIFIED IDEOGRAPH - ,0x8ED7 ,0x90AA //CJK UNIFIED IDEOGRAPH - ,0x8ED8 ,0x501F //CJK UNIFIED IDEOGRAPH - ,0x8ED9 ,0x52FA //CJK UNIFIED IDEOGRAPH - ,0x8EDA ,0x5C3A //CJK UNIFIED IDEOGRAPH - ,0x8EDB ,0x6753 //CJK UNIFIED IDEOGRAPH - ,0x8EDC ,0x707C //CJK UNIFIED IDEOGRAPH - ,0x8EDD ,0x7235 //CJK UNIFIED IDEOGRAPH - ,0x8EDE ,0x914C //CJK UNIFIED IDEOGRAPH - ,0x8EDF ,0x91C8 //CJK UNIFIED IDEOGRAPH - ,0x8EE0 ,0x932B //CJK UNIFIED IDEOGRAPH - ,0x8EE1 ,0x82E5 //CJK UNIFIED IDEOGRAPH - ,0x8EE2 ,0x5BC2 //CJK UNIFIED IDEOGRAPH - ,0x8EE3 ,0x5F31 //CJK UNIFIED IDEOGRAPH - ,0x8EE4 ,0x60F9 //CJK UNIFIED IDEOGRAPH - ,0x8EE5 ,0x4E3B //CJK UNIFIED IDEOGRAPH - ,0x8EE6 ,0x53D6 //CJK UNIFIED IDEOGRAPH - ,0x8EE7 ,0x5B88 //CJK UNIFIED IDEOGRAPH - ,0x8EE8 ,0x624B //CJK UNIFIED IDEOGRAPH - ,0x8EE9 ,0x6731 //CJK UNIFIED IDEOGRAPH - ,0x8EEA ,0x6B8A //CJK UNIFIED IDEOGRAPH - ,0x8EEB ,0x72E9 //CJK UNIFIED IDEOGRAPH - ,0x8EEC ,0x73E0 //CJK UNIFIED IDEOGRAPH - ,0x8EED ,0x7A2E //CJK UNIFIED IDEOGRAPH - ,0x8EEE ,0x816B //CJK UNIFIED IDEOGRAPH - ,0x8EEF ,0x8DA3 //CJK UNIFIED IDEOGRAPH - ,0x8EF0 ,0x9152 //CJK UNIFIED IDEOGRAPH - ,0x8EF1 ,0x9996 //CJK UNIFIED IDEOGRAPH - ,0x8EF2 ,0x5112 //CJK UNIFIED IDEOGRAPH - ,0x8EF3 ,0x53D7 //CJK UNIFIED IDEOGRAPH - ,0x8EF4 ,0x546A //CJK UNIFIED IDEOGRAPH - ,0x8EF5 ,0x5BFF //CJK UNIFIED IDEOGRAPH - ,0x8EF6 ,0x6388 //CJK UNIFIED IDEOGRAPH - ,0x8EF7 ,0x6A39 //CJK UNIFIED IDEOGRAPH - ,0x8EF8 ,0x7DAC //CJK UNIFIED IDEOGRAPH - ,0x8EF9 ,0x9700 //CJK UNIFIED IDEOGRAPH - ,0x8EFA ,0x56DA //CJK UNIFIED IDEOGRAPH - ,0x8EFB ,0x53CE //CJK UNIFIED IDEOGRAPH - ,0x8EFC ,0x5468 //CJK UNIFIED IDEOGRAPH - ,0x8F40 ,0x5B97 //CJK UNIFIED IDEOGRAPH - ,0x8F41 ,0x5C31 //CJK UNIFIED IDEOGRAPH - ,0x8F42 ,0x5DDE //CJK UNIFIED IDEOGRAPH - ,0x8F43 ,0x4FEE //CJK UNIFIED IDEOGRAPH - ,0x8F44 ,0x6101 //CJK UNIFIED IDEOGRAPH - ,0x8F45 ,0x62FE //CJK UNIFIED IDEOGRAPH - ,0x8F46 ,0x6D32 //CJK UNIFIED IDEOGRAPH - ,0x8F47 ,0x79C0 //CJK UNIFIED IDEOGRAPH - ,0x8F48 ,0x79CB //CJK UNIFIED IDEOGRAPH - ,0x8F49 ,0x7D42 //CJK UNIFIED IDEOGRAPH - ,0x8F4A ,0x7E4D //CJK UNIFIED IDEOGRAPH - ,0x8F4B ,0x7FD2 //CJK UNIFIED IDEOGRAPH - ,0x8F4C ,0x81ED //CJK UNIFIED IDEOGRAPH - ,0x8F4D ,0x821F //CJK UNIFIED IDEOGRAPH - ,0x8F4E ,0x8490 //CJK UNIFIED IDEOGRAPH - ,0x8F4F ,0x8846 //CJK UNIFIED IDEOGRAPH - ,0x8F50 ,0x8972 //CJK UNIFIED IDEOGRAPH - ,0x8F51 ,0x8B90 //CJK UNIFIED IDEOGRAPH - ,0x8F52 ,0x8E74 //CJK UNIFIED IDEOGRAPH - ,0x8F53 ,0x8F2F //CJK UNIFIED IDEOGRAPH - ,0x8F54 ,0x9031 //CJK UNIFIED IDEOGRAPH - ,0x8F55 ,0x914B //CJK UNIFIED IDEOGRAPH - ,0x8F56 ,0x916C //CJK UNIFIED IDEOGRAPH - ,0x8F57 ,0x96C6 //CJK UNIFIED IDEOGRAPH - ,0x8F58 ,0x919C //CJK UNIFIED IDEOGRAPH - ,0x8F59 ,0x4EC0 //CJK UNIFIED IDEOGRAPH - ,0x8F5A ,0x4F4F //CJK UNIFIED IDEOGRAPH - ,0x8F5B ,0x5145 //CJK UNIFIED IDEOGRAPH - ,0x8F5C ,0x5341 //CJK UNIFIED IDEOGRAPH - ,0x8F5D ,0x5F93 //CJK UNIFIED IDEOGRAPH - ,0x8F5E ,0x620E //CJK UNIFIED IDEOGRAPH - ,0x8F5F ,0x67D4 //CJK UNIFIED IDEOGRAPH - ,0x8F60 ,0x6C41 //CJK UNIFIED IDEOGRAPH - ,0x8F61 ,0x6E0B //CJK UNIFIED IDEOGRAPH - ,0x8F62 ,0x7363 //CJK UNIFIED IDEOGRAPH - ,0x8F63 ,0x7E26 //CJK UNIFIED IDEOGRAPH - ,0x8F64 ,0x91CD //CJK UNIFIED IDEOGRAPH - ,0x8F65 ,0x9283 //CJK UNIFIED IDEOGRAPH - ,0x8F66 ,0x53D4 //CJK UNIFIED IDEOGRAPH - ,0x8F67 ,0x5919 //CJK UNIFIED IDEOGRAPH - ,0x8F68 ,0x5BBF //CJK UNIFIED IDEOGRAPH - ,0x8F69 ,0x6DD1 //CJK UNIFIED IDEOGRAPH - ,0x8F6A ,0x795D //CJK UNIFIED IDEOGRAPH - ,0x8F6B ,0x7E2E //CJK UNIFIED IDEOGRAPH - ,0x8F6C ,0x7C9B //CJK UNIFIED IDEOGRAPH - ,0x8F6D ,0x587E //CJK UNIFIED IDEOGRAPH - ,0x8F6E ,0x719F //CJK UNIFIED IDEOGRAPH - ,0x8F6F ,0x51FA //CJK UNIFIED IDEOGRAPH - ,0x8F70 ,0x8853 //CJK UNIFIED IDEOGRAPH - ,0x8F71 ,0x8FF0 //CJK UNIFIED IDEOGRAPH - ,0x8F72 ,0x4FCA //CJK UNIFIED IDEOGRAPH - ,0x8F73 ,0x5CFB //CJK UNIFIED IDEOGRAPH - ,0x8F74 ,0x6625 //CJK UNIFIED IDEOGRAPH - ,0x8F75 ,0x77AC //CJK UNIFIED IDEOGRAPH - ,0x8F76 ,0x7AE3 //CJK UNIFIED IDEOGRAPH - ,0x8F77 ,0x821C //CJK UNIFIED IDEOGRAPH - ,0x8F78 ,0x99FF //CJK UNIFIED IDEOGRAPH - ,0x8F79 ,0x51C6 //CJK UNIFIED IDEOGRAPH - ,0x8F7A ,0x5FAA //CJK UNIFIED IDEOGRAPH - ,0x8F7B ,0x65EC //CJK UNIFIED IDEOGRAPH - ,0x8F7C ,0x696F //CJK UNIFIED IDEOGRAPH - ,0x8F7D ,0x6B89 //CJK UNIFIED IDEOGRAPH - ,0x8F7E ,0x6DF3 //CJK UNIFIED IDEOGRAPH - ,0x8F80 ,0x6E96 //CJK UNIFIED IDEOGRAPH - ,0x8F81 ,0x6F64 //CJK UNIFIED IDEOGRAPH - ,0x8F82 ,0x76FE //CJK UNIFIED IDEOGRAPH - ,0x8F83 ,0x7D14 //CJK UNIFIED IDEOGRAPH - ,0x8F84 ,0x5DE1 //CJK UNIFIED IDEOGRAPH - ,0x8F85 ,0x9075 //CJK UNIFIED IDEOGRAPH - ,0x8F86 ,0x9187 //CJK UNIFIED IDEOGRAPH - ,0x8F87 ,0x9806 //CJK UNIFIED IDEOGRAPH - ,0x8F88 ,0x51E6 //CJK UNIFIED IDEOGRAPH - ,0x8F89 ,0x521D //CJK UNIFIED IDEOGRAPH - ,0x8F8A ,0x6240 //CJK UNIFIED IDEOGRAPH - ,0x8F8B ,0x6691 //CJK UNIFIED IDEOGRAPH - ,0x8F8C ,0x66D9 //CJK UNIFIED IDEOGRAPH - ,0x8F8D ,0x6E1A //CJK UNIFIED IDEOGRAPH - ,0x8F8E ,0x5EB6 //CJK UNIFIED IDEOGRAPH - ,0x8F8F ,0x7DD2 //CJK UNIFIED IDEOGRAPH - ,0x8F90 ,0x7F72 //CJK UNIFIED IDEOGRAPH - ,0x8F91 ,0x66F8 //CJK UNIFIED IDEOGRAPH - ,0x8F92 ,0x85AF //CJK UNIFIED IDEOGRAPH - ,0x8F93 ,0x85F7 //CJK UNIFIED IDEOGRAPH - ,0x8F94 ,0x8AF8 //CJK UNIFIED IDEOGRAPH - ,0x8F95 ,0x52A9 //CJK UNIFIED IDEOGRAPH - ,0x8F96 ,0x53D9 //CJK UNIFIED IDEOGRAPH - ,0x8F97 ,0x5973 //CJK UNIFIED IDEOGRAPH - ,0x8F98 ,0x5E8F //CJK UNIFIED IDEOGRAPH - ,0x8F99 ,0x5F90 //CJK UNIFIED IDEOGRAPH - ,0x8F9A ,0x6055 //CJK UNIFIED IDEOGRAPH - ,0x8F9B ,0x92E4 //CJK UNIFIED IDEOGRAPH - ,0x8F9C ,0x9664 //CJK UNIFIED IDEOGRAPH - ,0x8F9D ,0x50B7 //CJK UNIFIED IDEOGRAPH - ,0x8F9E ,0x511F //CJK UNIFIED IDEOGRAPH - ,0x8F9F ,0x52DD //CJK UNIFIED IDEOGRAPH - ,0x8FA0 ,0x5320 //CJK UNIFIED IDEOGRAPH - ,0x8FA1 ,0x5347 //CJK UNIFIED IDEOGRAPH - ,0x8FA2 ,0x53EC //CJK UNIFIED IDEOGRAPH - ,0x8FA3 ,0x54E8 //CJK UNIFIED IDEOGRAPH - ,0x8FA4 ,0x5546 //CJK UNIFIED IDEOGRAPH - ,0x8FA5 ,0x5531 //CJK UNIFIED IDEOGRAPH - ,0x8FA6 ,0x5617 //CJK UNIFIED IDEOGRAPH - ,0x8FA7 ,0x5968 //CJK UNIFIED IDEOGRAPH - ,0x8FA8 ,0x59BE //CJK UNIFIED IDEOGRAPH - ,0x8FA9 ,0x5A3C //CJK UNIFIED IDEOGRAPH - ,0x8FAA ,0x5BB5 //CJK UNIFIED IDEOGRAPH - ,0x8FAB ,0x5C06 //CJK UNIFIED IDEOGRAPH - ,0x8FAC ,0x5C0F //CJK UNIFIED IDEOGRAPH - ,0x8FAD ,0x5C11 //CJK UNIFIED IDEOGRAPH - ,0x8FAE ,0x5C1A //CJK UNIFIED IDEOGRAPH - ,0x8FAF ,0x5E84 //CJK UNIFIED IDEOGRAPH - ,0x8FB0 ,0x5E8A //CJK UNIFIED IDEOGRAPH - ,0x8FB1 ,0x5EE0 //CJK UNIFIED IDEOGRAPH - ,0x8FB2 ,0x5F70 //CJK UNIFIED IDEOGRAPH - ,0x8FB3 ,0x627F //CJK UNIFIED IDEOGRAPH - ,0x8FB4 ,0x6284 //CJK UNIFIED IDEOGRAPH - ,0x8FB5 ,0x62DB //CJK UNIFIED IDEOGRAPH - ,0x8FB6 ,0x638C //CJK UNIFIED IDEOGRAPH - ,0x8FB7 ,0x6377 //CJK UNIFIED IDEOGRAPH - ,0x8FB8 ,0x6607 //CJK UNIFIED IDEOGRAPH - ,0x8FB9 ,0x660C //CJK UNIFIED IDEOGRAPH - ,0x8FBA ,0x662D //CJK UNIFIED IDEOGRAPH - ,0x8FBB ,0x6676 //CJK UNIFIED IDEOGRAPH - ,0x8FBC ,0x677E //CJK UNIFIED IDEOGRAPH - ,0x8FBD ,0x68A2 //CJK UNIFIED IDEOGRAPH - ,0x8FBE ,0x6A1F //CJK UNIFIED IDEOGRAPH - ,0x8FBF ,0x6A35 //CJK UNIFIED IDEOGRAPH - ,0x8FC0 ,0x6CBC //CJK UNIFIED IDEOGRAPH - ,0x8FC1 ,0x6D88 //CJK UNIFIED IDEOGRAPH - ,0x8FC2 ,0x6E09 //CJK UNIFIED IDEOGRAPH - ,0x8FC3 ,0x6E58 //CJK UNIFIED IDEOGRAPH - ,0x8FC4 ,0x713C //CJK UNIFIED IDEOGRAPH - ,0x8FC5 ,0x7126 //CJK UNIFIED IDEOGRAPH - ,0x8FC6 ,0x7167 //CJK UNIFIED IDEOGRAPH - ,0x8FC7 ,0x75C7 //CJK UNIFIED IDEOGRAPH - ,0x8FC8 ,0x7701 //CJK UNIFIED IDEOGRAPH - ,0x8FC9 ,0x785D //CJK UNIFIED IDEOGRAPH - ,0x8FCA ,0x7901 //CJK UNIFIED IDEOGRAPH - ,0x8FCB ,0x7965 //CJK UNIFIED IDEOGRAPH - ,0x8FCC ,0x79F0 //CJK UNIFIED IDEOGRAPH - ,0x8FCD ,0x7AE0 //CJK UNIFIED IDEOGRAPH - ,0x8FCE ,0x7B11 //CJK UNIFIED IDEOGRAPH - ,0x8FCF ,0x7CA7 //CJK UNIFIED IDEOGRAPH - ,0x8FD0 ,0x7D39 //CJK UNIFIED IDEOGRAPH - ,0x8FD1 ,0x8096 //CJK UNIFIED IDEOGRAPH - ,0x8FD2 ,0x83D6 //CJK UNIFIED IDEOGRAPH - ,0x8FD3 ,0x848B //CJK UNIFIED IDEOGRAPH - ,0x8FD4 ,0x8549 //CJK UNIFIED IDEOGRAPH - ,0x8FD5 ,0x885D //CJK UNIFIED IDEOGRAPH - ,0x8FD6 ,0x88F3 //CJK UNIFIED IDEOGRAPH - ,0x8FD7 ,0x8A1F //CJK UNIFIED IDEOGRAPH - ,0x8FD8 ,0x8A3C //CJK UNIFIED IDEOGRAPH - ,0x8FD9 ,0x8A54 //CJK UNIFIED IDEOGRAPH - ,0x8FDA ,0x8A73 //CJK UNIFIED IDEOGRAPH - ,0x8FDB ,0x8C61 //CJK UNIFIED IDEOGRAPH - ,0x8FDC ,0x8CDE //CJK UNIFIED IDEOGRAPH - ,0x8FDD ,0x91A4 //CJK UNIFIED IDEOGRAPH - ,0x8FDE ,0x9266 //CJK UNIFIED IDEOGRAPH - ,0x8FDF ,0x937E //CJK UNIFIED IDEOGRAPH - ,0x8FE0 ,0x9418 //CJK UNIFIED IDEOGRAPH - ,0x8FE1 ,0x969C //CJK UNIFIED IDEOGRAPH - ,0x8FE2 ,0x9798 //CJK UNIFIED IDEOGRAPH - ,0x8FE3 ,0x4E0A //CJK UNIFIED IDEOGRAPH - ,0x8FE4 ,0x4E08 //CJK UNIFIED IDEOGRAPH - ,0x8FE5 ,0x4E1E //CJK UNIFIED IDEOGRAPH - ,0x8FE6 ,0x4E57 //CJK UNIFIED IDEOGRAPH - ,0x8FE7 ,0x5197 //CJK UNIFIED IDEOGRAPH - ,0x8FE8 ,0x5270 //CJK UNIFIED IDEOGRAPH - ,0x8FE9 ,0x57CE //CJK UNIFIED IDEOGRAPH - ,0x8FEA ,0x5834 //CJK UNIFIED IDEOGRAPH - ,0x8FEB ,0x58CC //CJK UNIFIED IDEOGRAPH - ,0x8FEC ,0x5B22 //CJK UNIFIED IDEOGRAPH - ,0x8FED ,0x5E38 //CJK UNIFIED IDEOGRAPH - ,0x8FEE ,0x60C5 //CJK UNIFIED IDEOGRAPH - ,0x8FEF ,0x64FE //CJK UNIFIED IDEOGRAPH - ,0x8FF0 ,0x6761 //CJK UNIFIED IDEOGRAPH - ,0x8FF1 ,0x6756 //CJK UNIFIED IDEOGRAPH - ,0x8FF2 ,0x6D44 //CJK UNIFIED IDEOGRAPH - ,0x8FF3 ,0x72B6 //CJK UNIFIED IDEOGRAPH - ,0x8FF4 ,0x7573 //CJK UNIFIED IDEOGRAPH - ,0x8FF5 ,0x7A63 //CJK UNIFIED IDEOGRAPH - ,0x8FF6 ,0x84B8 //CJK UNIFIED IDEOGRAPH - ,0x8FF7 ,0x8B72 //CJK UNIFIED IDEOGRAPH - ,0x8FF8 ,0x91B8 //CJK UNIFIED IDEOGRAPH - ,0x8FF9 ,0x9320 //CJK UNIFIED IDEOGRAPH - ,0x8FFA ,0x5631 //CJK UNIFIED IDEOGRAPH - ,0x8FFB ,0x57F4 //CJK UNIFIED IDEOGRAPH - ,0x8FFC ,0x98FE //CJK UNIFIED IDEOGRAPH - ,0x9040 ,0x62ED //CJK UNIFIED IDEOGRAPH - ,0x9041 ,0x690D //CJK UNIFIED IDEOGRAPH - ,0x9042 ,0x6B96 //CJK UNIFIED IDEOGRAPH - ,0x9043 ,0x71ED //CJK UNIFIED IDEOGRAPH - ,0x9044 ,0x7E54 //CJK UNIFIED IDEOGRAPH - ,0x9045 ,0x8077 //CJK UNIFIED IDEOGRAPH - ,0x9046 ,0x8272 //CJK UNIFIED IDEOGRAPH - ,0x9047 ,0x89E6 //CJK UNIFIED IDEOGRAPH - ,0x9048 ,0x98DF //CJK UNIFIED IDEOGRAPH - ,0x9049 ,0x8755 //CJK UNIFIED IDEOGRAPH - ,0x904A ,0x8FB1 //CJK UNIFIED IDEOGRAPH - ,0x904B ,0x5C3B //CJK UNIFIED IDEOGRAPH - ,0x904C ,0x4F38 //CJK UNIFIED IDEOGRAPH - ,0x904D ,0x4FE1 //CJK UNIFIED IDEOGRAPH - ,0x904E ,0x4FB5 //CJK UNIFIED IDEOGRAPH - ,0x904F ,0x5507 //CJK UNIFIED IDEOGRAPH - ,0x9050 ,0x5A20 //CJK UNIFIED IDEOGRAPH - ,0x9051 ,0x5BDD //CJK UNIFIED IDEOGRAPH - ,0x9052 ,0x5BE9 //CJK UNIFIED IDEOGRAPH - ,0x9053 ,0x5FC3 //CJK UNIFIED IDEOGRAPH - ,0x9054 ,0x614E //CJK UNIFIED IDEOGRAPH - ,0x9055 ,0x632F //CJK UNIFIED IDEOGRAPH - ,0x9056 ,0x65B0 //CJK UNIFIED IDEOGRAPH - ,0x9057 ,0x664B //CJK UNIFIED IDEOGRAPH - ,0x9058 ,0x68EE //CJK UNIFIED IDEOGRAPH - ,0x9059 ,0x699B //CJK UNIFIED IDEOGRAPH - ,0x905A ,0x6D78 //CJK UNIFIED IDEOGRAPH - ,0x905B ,0x6DF1 //CJK UNIFIED IDEOGRAPH - ,0x905C ,0x7533 //CJK UNIFIED IDEOGRAPH - ,0x905D ,0x75B9 //CJK UNIFIED IDEOGRAPH - ,0x905E ,0x771F //CJK UNIFIED IDEOGRAPH - ,0x905F ,0x795E //CJK UNIFIED IDEOGRAPH - ,0x9060 ,0x79E6 //CJK UNIFIED IDEOGRAPH - ,0x9061 ,0x7D33 //CJK UNIFIED IDEOGRAPH - ,0x9062 ,0x81E3 //CJK UNIFIED IDEOGRAPH - ,0x9063 ,0x82AF //CJK UNIFIED IDEOGRAPH - ,0x9064 ,0x85AA //CJK UNIFIED IDEOGRAPH - ,0x9065 ,0x89AA //CJK UNIFIED IDEOGRAPH - ,0x9066 ,0x8A3A //CJK UNIFIED IDEOGRAPH - ,0x9067 ,0x8EAB //CJK UNIFIED IDEOGRAPH - ,0x9068 ,0x8F9B //CJK UNIFIED IDEOGRAPH - ,0x9069 ,0x9032 //CJK UNIFIED IDEOGRAPH - ,0x906A ,0x91DD //CJK UNIFIED IDEOGRAPH - ,0x906B ,0x9707 //CJK UNIFIED IDEOGRAPH - ,0x906C ,0x4EBA //CJK UNIFIED IDEOGRAPH - ,0x906D ,0x4EC1 //CJK UNIFIED IDEOGRAPH - ,0x906E ,0x5203 //CJK UNIFIED IDEOGRAPH - ,0x906F ,0x5875 //CJK UNIFIED IDEOGRAPH - ,0x9070 ,0x58EC //CJK UNIFIED IDEOGRAPH - ,0x9071 ,0x5C0B //CJK UNIFIED IDEOGRAPH - ,0x9072 ,0x751A //CJK UNIFIED IDEOGRAPH - ,0x9073 ,0x5C3D //CJK UNIFIED IDEOGRAPH - ,0x9074 ,0x814E //CJK UNIFIED IDEOGRAPH - ,0x9075 ,0x8A0A //CJK UNIFIED IDEOGRAPH - ,0x9076 ,0x8FC5 //CJK UNIFIED IDEOGRAPH - ,0x9077 ,0x9663 //CJK UNIFIED IDEOGRAPH - ,0x9078 ,0x976D //CJK UNIFIED IDEOGRAPH - ,0x9079 ,0x7B25 //CJK UNIFIED IDEOGRAPH - ,0x907A ,0x8ACF //CJK UNIFIED IDEOGRAPH - ,0x907B ,0x9808 //CJK UNIFIED IDEOGRAPH - ,0x907C ,0x9162 //CJK UNIFIED IDEOGRAPH - ,0x907D ,0x56F3 //CJK UNIFIED IDEOGRAPH - ,0x907E ,0x53A8 //CJK UNIFIED IDEOGRAPH - ,0x9080 ,0x9017 //CJK UNIFIED IDEOGRAPH - ,0x9081 ,0x5439 //CJK UNIFIED IDEOGRAPH - ,0x9082 ,0x5782 //CJK UNIFIED IDEOGRAPH - ,0x9083 ,0x5E25 //CJK UNIFIED IDEOGRAPH - ,0x9084 ,0x63A8 //CJK UNIFIED IDEOGRAPH - ,0x9085 ,0x6C34 //CJK UNIFIED IDEOGRAPH - ,0x9086 ,0x708A //CJK UNIFIED IDEOGRAPH - ,0x9087 ,0x7761 //CJK UNIFIED IDEOGRAPH - ,0x9088 ,0x7C8B //CJK UNIFIED IDEOGRAPH - ,0x9089 ,0x7FE0 //CJK UNIFIED IDEOGRAPH - ,0x908A ,0x8870 //CJK UNIFIED IDEOGRAPH - ,0x908B ,0x9042 //CJK UNIFIED IDEOGRAPH - ,0x908C ,0x9154 //CJK UNIFIED IDEOGRAPH - ,0x908D ,0x9310 //CJK UNIFIED IDEOGRAPH - ,0x908E ,0x9318 //CJK UNIFIED IDEOGRAPH - ,0x908F ,0x968F //CJK UNIFIED IDEOGRAPH - ,0x9090 ,0x745E //CJK UNIFIED IDEOGRAPH - ,0x9091 ,0x9AC4 //CJK UNIFIED IDEOGRAPH - ,0x9092 ,0x5D07 //CJK UNIFIED IDEOGRAPH - ,0x9093 ,0x5D69 //CJK UNIFIED IDEOGRAPH - ,0x9094 ,0x6570 //CJK UNIFIED IDEOGRAPH - ,0x9095 ,0x67A2 //CJK UNIFIED IDEOGRAPH - ,0x9096 ,0x8DA8 //CJK UNIFIED IDEOGRAPH - ,0x9097 ,0x96DB //CJK UNIFIED IDEOGRAPH - ,0x9098 ,0x636E //CJK UNIFIED IDEOGRAPH - ,0x9099 ,0x6749 //CJK UNIFIED IDEOGRAPH - ,0x909A ,0x6919 //CJK UNIFIED IDEOGRAPH - ,0x909B ,0x83C5 //CJK UNIFIED IDEOGRAPH - ,0x909C ,0x9817 //CJK UNIFIED IDEOGRAPH - ,0x909D ,0x96C0 //CJK UNIFIED IDEOGRAPH - ,0x909E ,0x88FE //CJK UNIFIED IDEOGRAPH - ,0x909F ,0x6F84 //CJK UNIFIED IDEOGRAPH - ,0x90A0 ,0x647A //CJK UNIFIED IDEOGRAPH - ,0x90A1 ,0x5BF8 //CJK UNIFIED IDEOGRAPH - ,0x90A2 ,0x4E16 //CJK UNIFIED IDEOGRAPH - ,0x90A3 ,0x702C //CJK UNIFIED IDEOGRAPH - ,0x90A4 ,0x755D //CJK UNIFIED IDEOGRAPH - ,0x90A5 ,0x662F //CJK UNIFIED IDEOGRAPH - ,0x90A6 ,0x51C4 //CJK UNIFIED IDEOGRAPH - ,0x90A7 ,0x5236 //CJK UNIFIED IDEOGRAPH - ,0x90A8 ,0x52E2 //CJK UNIFIED IDEOGRAPH - ,0x90A9 ,0x59D3 //CJK UNIFIED IDEOGRAPH - ,0x90AA ,0x5F81 //CJK UNIFIED IDEOGRAPH - ,0x90AB ,0x6027 //CJK UNIFIED IDEOGRAPH - ,0x90AC ,0x6210 //CJK UNIFIED IDEOGRAPH - ,0x90AD ,0x653F //CJK UNIFIED IDEOGRAPH - ,0x90AE ,0x6574 //CJK UNIFIED IDEOGRAPH - ,0x90AF ,0x661F //CJK UNIFIED IDEOGRAPH - ,0x90B0 ,0x6674 //CJK UNIFIED IDEOGRAPH - ,0x90B1 ,0x68F2 //CJK UNIFIED IDEOGRAPH - ,0x90B2 ,0x6816 //CJK UNIFIED IDEOGRAPH - ,0x90B3 ,0x6B63 //CJK UNIFIED IDEOGRAPH - ,0x90B4 ,0x6E05 //CJK UNIFIED IDEOGRAPH - ,0x90B5 ,0x7272 //CJK UNIFIED IDEOGRAPH - ,0x90B6 ,0x751F //CJK UNIFIED IDEOGRAPH - ,0x90B7 ,0x76DB //CJK UNIFIED IDEOGRAPH - ,0x90B8 ,0x7CBE //CJK UNIFIED IDEOGRAPH - ,0x90B9 ,0x8056 //CJK UNIFIED IDEOGRAPH - ,0x90BA ,0x58F0 //CJK UNIFIED IDEOGRAPH - ,0x90BB ,0x88FD //CJK UNIFIED IDEOGRAPH - ,0x90BC ,0x897F //CJK UNIFIED IDEOGRAPH - ,0x90BD ,0x8AA0 //CJK UNIFIED IDEOGRAPH - ,0x90BE ,0x8A93 //CJK UNIFIED IDEOGRAPH - ,0x90BF ,0x8ACB //CJK UNIFIED IDEOGRAPH - ,0x90C0 ,0x901D //CJK UNIFIED IDEOGRAPH - ,0x90C1 ,0x9192 //CJK UNIFIED IDEOGRAPH - ,0x90C2 ,0x9752 //CJK UNIFIED IDEOGRAPH - ,0x90C3 ,0x9759 //CJK UNIFIED IDEOGRAPH - ,0x90C4 ,0x6589 //CJK UNIFIED IDEOGRAPH - ,0x90C5 ,0x7A0E //CJK UNIFIED IDEOGRAPH - ,0x90C6 ,0x8106 //CJK UNIFIED IDEOGRAPH - ,0x90C7 ,0x96BB //CJK UNIFIED IDEOGRAPH - ,0x90C8 ,0x5E2D //CJK UNIFIED IDEOGRAPH - ,0x90C9 ,0x60DC //CJK UNIFIED IDEOGRAPH - ,0x90CA ,0x621A //CJK UNIFIED IDEOGRAPH - ,0x90CB ,0x65A5 //CJK UNIFIED IDEOGRAPH - ,0x90CC ,0x6614 //CJK UNIFIED IDEOGRAPH - ,0x90CD ,0x6790 //CJK UNIFIED IDEOGRAPH - ,0x90CE ,0x77F3 //CJK UNIFIED IDEOGRAPH - ,0x90CF ,0x7A4D //CJK UNIFIED IDEOGRAPH - ,0x90D0 ,0x7C4D //CJK UNIFIED IDEOGRAPH - ,0x90D1 ,0x7E3E //CJK UNIFIED IDEOGRAPH - ,0x90D2 ,0x810A //CJK UNIFIED IDEOGRAPH - ,0x90D3 ,0x8CAC //CJK UNIFIED IDEOGRAPH - ,0x90D4 ,0x8D64 //CJK UNIFIED IDEOGRAPH - ,0x90D5 ,0x8DE1 //CJK UNIFIED IDEOGRAPH - ,0x90D6 ,0x8E5F //CJK UNIFIED IDEOGRAPH - ,0x90D7 ,0x78A9 //CJK UNIFIED IDEOGRAPH - ,0x90D8 ,0x5207 //CJK UNIFIED IDEOGRAPH - ,0x90D9 ,0x62D9 //CJK UNIFIED IDEOGRAPH - ,0x90DA ,0x63A5 //CJK UNIFIED IDEOGRAPH - ,0x90DB ,0x6442 //CJK UNIFIED IDEOGRAPH - ,0x90DC ,0x6298 //CJK UNIFIED IDEOGRAPH - ,0x90DD ,0x8A2D //CJK UNIFIED IDEOGRAPH - ,0x90DE ,0x7A83 //CJK UNIFIED IDEOGRAPH - ,0x90DF ,0x7BC0 //CJK UNIFIED IDEOGRAPH - ,0x90E0 ,0x8AAC //CJK UNIFIED IDEOGRAPH - ,0x90E1 ,0x96EA //CJK UNIFIED IDEOGRAPH - ,0x90E2 ,0x7D76 //CJK UNIFIED IDEOGRAPH - ,0x90E3 ,0x820C //CJK UNIFIED IDEOGRAPH - ,0x90E4 ,0x8749 //CJK UNIFIED IDEOGRAPH - ,0x90E5 ,0x4ED9 //CJK UNIFIED IDEOGRAPH - ,0x90E6 ,0x5148 //CJK UNIFIED IDEOGRAPH - ,0x90E7 ,0x5343 //CJK UNIFIED IDEOGRAPH - ,0x90E8 ,0x5360 //CJK UNIFIED IDEOGRAPH - ,0x90E9 ,0x5BA3 //CJK UNIFIED IDEOGRAPH - ,0x90EA ,0x5C02 //CJK UNIFIED IDEOGRAPH - ,0x90EB ,0x5C16 //CJK UNIFIED IDEOGRAPH - ,0x90EC ,0x5DDD //CJK UNIFIED IDEOGRAPH - ,0x90ED ,0x6226 //CJK UNIFIED IDEOGRAPH - ,0x90EE ,0x6247 //CJK UNIFIED IDEOGRAPH - ,0x90EF ,0x64B0 //CJK UNIFIED IDEOGRAPH - ,0x90F0 ,0x6813 //CJK UNIFIED IDEOGRAPH - ,0x90F1 ,0x6834 //CJK UNIFIED IDEOGRAPH - ,0x90F2 ,0x6CC9 //CJK UNIFIED IDEOGRAPH - ,0x90F3 ,0x6D45 //CJK UNIFIED IDEOGRAPH - ,0x90F4 ,0x6D17 //CJK UNIFIED IDEOGRAPH - ,0x90F5 ,0x67D3 //CJK UNIFIED IDEOGRAPH - ,0x90F6 ,0x6F5C //CJK UNIFIED IDEOGRAPH - ,0x90F7 ,0x714E //CJK UNIFIED IDEOGRAPH - ,0x90F8 ,0x717D //CJK UNIFIED IDEOGRAPH - ,0x90F9 ,0x65CB //CJK UNIFIED IDEOGRAPH - ,0x90FA ,0x7A7F //CJK UNIFIED IDEOGRAPH - ,0x90FB ,0x7BAD //CJK UNIFIED IDEOGRAPH - ,0x90FC ,0x7DDA //CJK UNIFIED IDEOGRAPH - ,0x9140 ,0x7E4A //CJK UNIFIED IDEOGRAPH - ,0x9141 ,0x7FA8 //CJK UNIFIED IDEOGRAPH - ,0x9142 ,0x817A //CJK UNIFIED IDEOGRAPH - ,0x9143 ,0x821B //CJK UNIFIED IDEOGRAPH - ,0x9144 ,0x8239 //CJK UNIFIED IDEOGRAPH - ,0x9145 ,0x85A6 //CJK UNIFIED IDEOGRAPH - ,0x9146 ,0x8A6E //CJK UNIFIED IDEOGRAPH - ,0x9147 ,0x8CCE //CJK UNIFIED IDEOGRAPH - ,0x9148 ,0x8DF5 //CJK UNIFIED IDEOGRAPH - ,0x9149 ,0x9078 //CJK UNIFIED IDEOGRAPH - ,0x914A ,0x9077 //CJK UNIFIED IDEOGRAPH - ,0x914B ,0x92AD //CJK UNIFIED IDEOGRAPH - ,0x914C ,0x9291 //CJK UNIFIED IDEOGRAPH - ,0x914D ,0x9583 //CJK UNIFIED IDEOGRAPH - ,0x914E ,0x9BAE //CJK UNIFIED IDEOGRAPH - ,0x914F ,0x524D //CJK UNIFIED IDEOGRAPH - ,0x9150 ,0x5584 //CJK UNIFIED IDEOGRAPH - ,0x9151 ,0x6F38 //CJK UNIFIED IDEOGRAPH - ,0x9152 ,0x7136 //CJK UNIFIED IDEOGRAPH - ,0x9153 ,0x5168 //CJK UNIFIED IDEOGRAPH - ,0x9154 ,0x7985 //CJK UNIFIED IDEOGRAPH - ,0x9155 ,0x7E55 //CJK UNIFIED IDEOGRAPH - ,0x9156 ,0x81B3 //CJK UNIFIED IDEOGRAPH - ,0x9157 ,0x7CCE //CJK UNIFIED IDEOGRAPH - ,0x9158 ,0x564C //CJK UNIFIED IDEOGRAPH - ,0x9159 ,0x5851 //CJK UNIFIED IDEOGRAPH - ,0x915A ,0x5CA8 //CJK UNIFIED IDEOGRAPH - ,0x915B ,0x63AA //CJK UNIFIED IDEOGRAPH - ,0x915C ,0x66FE //CJK UNIFIED IDEOGRAPH - ,0x915D ,0x66FD //CJK UNIFIED IDEOGRAPH - ,0x915E ,0x695A //CJK UNIFIED IDEOGRAPH - ,0x915F ,0x72D9 //CJK UNIFIED IDEOGRAPH - ,0x9160 ,0x758F //CJK UNIFIED IDEOGRAPH - ,0x9161 ,0x758E //CJK UNIFIED IDEOGRAPH - ,0x9162 ,0x790E //CJK UNIFIED IDEOGRAPH - ,0x9163 ,0x7956 //CJK UNIFIED IDEOGRAPH - ,0x9164 ,0x79DF //CJK UNIFIED IDEOGRAPH - ,0x9165 ,0x7C97 //CJK UNIFIED IDEOGRAPH - ,0x9166 ,0x7D20 //CJK UNIFIED IDEOGRAPH - ,0x9167 ,0x7D44 //CJK UNIFIED IDEOGRAPH - ,0x9168 ,0x8607 //CJK UNIFIED IDEOGRAPH - ,0x9169 ,0x8A34 //CJK UNIFIED IDEOGRAPH - ,0x916A ,0x963B //CJK UNIFIED IDEOGRAPH - ,0x916B ,0x9061 //CJK UNIFIED IDEOGRAPH - ,0x916C ,0x9F20 //CJK UNIFIED IDEOGRAPH - ,0x916D ,0x50E7 //CJK UNIFIED IDEOGRAPH - ,0x916E ,0x5275 //CJK UNIFIED IDEOGRAPH - ,0x916F ,0x53CC //CJK UNIFIED IDEOGRAPH - ,0x9170 ,0x53E2 //CJK UNIFIED IDEOGRAPH - ,0x9171 ,0x5009 //CJK UNIFIED IDEOGRAPH - ,0x9172 ,0x55AA //CJK UNIFIED IDEOGRAPH - ,0x9173 ,0x58EE //CJK UNIFIED IDEOGRAPH - ,0x9174 ,0x594F //CJK UNIFIED IDEOGRAPH - ,0x9175 ,0x723D //CJK UNIFIED IDEOGRAPH - ,0x9176 ,0x5B8B //CJK UNIFIED IDEOGRAPH - ,0x9177 ,0x5C64 //CJK UNIFIED IDEOGRAPH - ,0x9178 ,0x531D //CJK UNIFIED IDEOGRAPH - ,0x9179 ,0x60E3 //CJK UNIFIED IDEOGRAPH - ,0x917A ,0x60F3 //CJK UNIFIED IDEOGRAPH - ,0x917B ,0x635C //CJK UNIFIED IDEOGRAPH - ,0x917C ,0x6383 //CJK UNIFIED IDEOGRAPH - ,0x917D ,0x633F //CJK UNIFIED IDEOGRAPH - ,0x917E ,0x63BB //CJK UNIFIED IDEOGRAPH - ,0x9180 ,0x64CD //CJK UNIFIED IDEOGRAPH - ,0x9181 ,0x65E9 //CJK UNIFIED IDEOGRAPH - ,0x9182 ,0x66F9 //CJK UNIFIED IDEOGRAPH - ,0x9183 ,0x5DE3 //CJK UNIFIED IDEOGRAPH - ,0x9184 ,0x69CD //CJK UNIFIED IDEOGRAPH - ,0x9185 ,0x69FD //CJK UNIFIED IDEOGRAPH - ,0x9186 ,0x6F15 //CJK UNIFIED IDEOGRAPH - ,0x9187 ,0x71E5 //CJK UNIFIED IDEOGRAPH - ,0x9188 ,0x4E89 //CJK UNIFIED IDEOGRAPH - ,0x9189 ,0x75E9 //CJK UNIFIED IDEOGRAPH - ,0x918A ,0x76F8 //CJK UNIFIED IDEOGRAPH - ,0x918B ,0x7A93 //CJK UNIFIED IDEOGRAPH - ,0x918C ,0x7CDF //CJK UNIFIED IDEOGRAPH - ,0x918D ,0x7DCF //CJK UNIFIED IDEOGRAPH - ,0x918E ,0x7D9C //CJK UNIFIED IDEOGRAPH - ,0x918F ,0x8061 //CJK UNIFIED IDEOGRAPH - ,0x9190 ,0x8349 //CJK UNIFIED IDEOGRAPH - ,0x9191 ,0x8358 //CJK UNIFIED IDEOGRAPH - ,0x9192 ,0x846C //CJK UNIFIED IDEOGRAPH - ,0x9193 ,0x84BC //CJK UNIFIED IDEOGRAPH - ,0x9194 ,0x85FB //CJK UNIFIED IDEOGRAPH - ,0x9195 ,0x88C5 //CJK UNIFIED IDEOGRAPH - ,0x9196 ,0x8D70 //CJK UNIFIED IDEOGRAPH - ,0x9197 ,0x9001 //CJK UNIFIED IDEOGRAPH - ,0x9198 ,0x906D //CJK UNIFIED IDEOGRAPH - ,0x9199 ,0x9397 //CJK UNIFIED IDEOGRAPH - ,0x919A ,0x971C //CJK UNIFIED IDEOGRAPH - ,0x919B ,0x9A12 //CJK UNIFIED IDEOGRAPH - ,0x919C ,0x50CF //CJK UNIFIED IDEOGRAPH - ,0x919D ,0x5897 //CJK UNIFIED IDEOGRAPH - ,0x919E ,0x618E //CJK UNIFIED IDEOGRAPH - ,0x919F ,0x81D3 //CJK UNIFIED IDEOGRAPH - ,0x91A0 ,0x8535 //CJK UNIFIED IDEOGRAPH - ,0x91A1 ,0x8D08 //CJK UNIFIED IDEOGRAPH - ,0x91A2 ,0x9020 //CJK UNIFIED IDEOGRAPH - ,0x91A3 ,0x4FC3 //CJK UNIFIED IDEOGRAPH - ,0x91A4 ,0x5074 //CJK UNIFIED IDEOGRAPH - ,0x91A5 ,0x5247 //CJK UNIFIED IDEOGRAPH - ,0x91A6 ,0x5373 //CJK UNIFIED IDEOGRAPH - ,0x91A7 ,0x606F //CJK UNIFIED IDEOGRAPH - ,0x91A8 ,0x6349 //CJK UNIFIED IDEOGRAPH - ,0x91A9 ,0x675F //CJK UNIFIED IDEOGRAPH - ,0x91AA ,0x6E2C //CJK UNIFIED IDEOGRAPH - ,0x91AB ,0x8DB3 //CJK UNIFIED IDEOGRAPH - ,0x91AC ,0x901F //CJK UNIFIED IDEOGRAPH - ,0x91AD ,0x4FD7 //CJK UNIFIED IDEOGRAPH - ,0x91AE ,0x5C5E //CJK UNIFIED IDEOGRAPH - ,0x91AF ,0x8CCA //CJK UNIFIED IDEOGRAPH - ,0x91B0 ,0x65CF //CJK UNIFIED IDEOGRAPH - ,0x91B1 ,0x7D9A //CJK UNIFIED IDEOGRAPH - ,0x91B2 ,0x5352 //CJK UNIFIED IDEOGRAPH - ,0x91B3 ,0x8896 //CJK UNIFIED IDEOGRAPH - ,0x91B4 ,0x5176 //CJK UNIFIED IDEOGRAPH - ,0x91B5 ,0x63C3 //CJK UNIFIED IDEOGRAPH - ,0x91B6 ,0x5B58 //CJK UNIFIED IDEOGRAPH - ,0x91B7 ,0x5B6B //CJK UNIFIED IDEOGRAPH - ,0x91B8 ,0x5C0A //CJK UNIFIED IDEOGRAPH - ,0x91B9 ,0x640D //CJK UNIFIED IDEOGRAPH - ,0x91BA ,0x6751 //CJK UNIFIED IDEOGRAPH - ,0x91BB ,0x905C //CJK UNIFIED IDEOGRAPH - ,0x91BC ,0x4ED6 //CJK UNIFIED IDEOGRAPH - ,0x91BD ,0x591A //CJK UNIFIED IDEOGRAPH - ,0x91BE ,0x592A //CJK UNIFIED IDEOGRAPH - ,0x91BF ,0x6C70 //CJK UNIFIED IDEOGRAPH - ,0x91C0 ,0x8A51 //CJK UNIFIED IDEOGRAPH - ,0x91C1 ,0x553E //CJK UNIFIED IDEOGRAPH - ,0x91C2 ,0x5815 //CJK UNIFIED IDEOGRAPH - ,0x91C3 ,0x59A5 //CJK UNIFIED IDEOGRAPH - ,0x91C4 ,0x60F0 //CJK UNIFIED IDEOGRAPH - ,0x91C5 ,0x6253 //CJK UNIFIED IDEOGRAPH - ,0x91C6 ,0x67C1 //CJK UNIFIED IDEOGRAPH - ,0x91C7 ,0x8235 //CJK UNIFIED IDEOGRAPH - ,0x91C8 ,0x6955 //CJK UNIFIED IDEOGRAPH - ,0x91C9 ,0x9640 //CJK UNIFIED IDEOGRAPH - ,0x91CA ,0x99C4 //CJK UNIFIED IDEOGRAPH - ,0x91CB ,0x9A28 //CJK UNIFIED IDEOGRAPH - ,0x91CC ,0x4F53 //CJK UNIFIED IDEOGRAPH - ,0x91CD ,0x5806 //CJK UNIFIED IDEOGRAPH - ,0x91CE ,0x5BFE //CJK UNIFIED IDEOGRAPH - ,0x91CF ,0x8010 //CJK UNIFIED IDEOGRAPH - ,0x91D0 ,0x5CB1 //CJK UNIFIED IDEOGRAPH - ,0x91D1 ,0x5E2F //CJK UNIFIED IDEOGRAPH - ,0x91D2 ,0x5F85 //CJK UNIFIED IDEOGRAPH - ,0x91D3 ,0x6020 //CJK UNIFIED IDEOGRAPH - ,0x91D4 ,0x614B //CJK UNIFIED IDEOGRAPH - ,0x91D5 ,0x6234 //CJK UNIFIED IDEOGRAPH - ,0x91D6 ,0x66FF //CJK UNIFIED IDEOGRAPH - ,0x91D7 ,0x6CF0 //CJK UNIFIED IDEOGRAPH - ,0x91D8 ,0x6EDE //CJK UNIFIED IDEOGRAPH - ,0x91D9 ,0x80CE //CJK UNIFIED IDEOGRAPH - ,0x91DA ,0x817F //CJK UNIFIED IDEOGRAPH - ,0x91DB ,0x82D4 //CJK UNIFIED IDEOGRAPH - ,0x91DC ,0x888B //CJK UNIFIED IDEOGRAPH - ,0x91DD ,0x8CB8 //CJK UNIFIED IDEOGRAPH - ,0x91DE ,0x9000 //CJK UNIFIED IDEOGRAPH - ,0x91DF ,0x902E //CJK UNIFIED IDEOGRAPH - ,0x91E0 ,0x968A //CJK UNIFIED IDEOGRAPH - ,0x91E1 ,0x9EDB //CJK UNIFIED IDEOGRAPH - ,0x91E2 ,0x9BDB //CJK UNIFIED IDEOGRAPH - ,0x91E3 ,0x4EE3 //CJK UNIFIED IDEOGRAPH - ,0x91E4 ,0x53F0 //CJK UNIFIED IDEOGRAPH - ,0x91E5 ,0x5927 //CJK UNIFIED IDEOGRAPH - ,0x91E6 ,0x7B2C //CJK UNIFIED IDEOGRAPH - ,0x91E7 ,0x918D //CJK UNIFIED IDEOGRAPH - ,0x91E8 ,0x984C //CJK UNIFIED IDEOGRAPH - ,0x91E9 ,0x9DF9 //CJK UNIFIED IDEOGRAPH - ,0x91EA ,0x6EDD //CJK UNIFIED IDEOGRAPH - ,0x91EB ,0x7027 //CJK UNIFIED IDEOGRAPH - ,0x91EC ,0x5353 //CJK UNIFIED IDEOGRAPH - ,0x91ED ,0x5544 //CJK UNIFIED IDEOGRAPH - ,0x91EE ,0x5B85 //CJK UNIFIED IDEOGRAPH - ,0x91EF ,0x6258 //CJK UNIFIED IDEOGRAPH - ,0x91F0 ,0x629E //CJK UNIFIED IDEOGRAPH - ,0x91F1 ,0x62D3 //CJK UNIFIED IDEOGRAPH - ,0x91F2 ,0x6CA2 //CJK UNIFIED IDEOGRAPH - ,0x91F3 ,0x6FEF //CJK UNIFIED IDEOGRAPH - ,0x91F4 ,0x7422 //CJK UNIFIED IDEOGRAPH - ,0x91F5 ,0x8A17 //CJK UNIFIED IDEOGRAPH - ,0x91F6 ,0x9438 //CJK UNIFIED IDEOGRAPH - ,0x91F7 ,0x6FC1 //CJK UNIFIED IDEOGRAPH - ,0x91F8 ,0x8AFE //CJK UNIFIED IDEOGRAPH - ,0x91F9 ,0x8338 //CJK UNIFIED IDEOGRAPH - ,0x91FA ,0x51E7 //CJK UNIFIED IDEOGRAPH - ,0x91FB ,0x86F8 //CJK UNIFIED IDEOGRAPH - ,0x91FC ,0x53EA //CJK UNIFIED IDEOGRAPH - ,0x9240 ,0x53E9 //CJK UNIFIED IDEOGRAPH - ,0x9241 ,0x4F46 //CJK UNIFIED IDEOGRAPH - ,0x9242 ,0x9054 //CJK UNIFIED IDEOGRAPH - ,0x9243 ,0x8FB0 //CJK UNIFIED IDEOGRAPH - ,0x9244 ,0x596A //CJK UNIFIED IDEOGRAPH - ,0x9245 ,0x8131 //CJK UNIFIED IDEOGRAPH - ,0x9246 ,0x5DFD //CJK UNIFIED IDEOGRAPH - ,0x9247 ,0x7AEA //CJK UNIFIED IDEOGRAPH - ,0x9248 ,0x8FBF //CJK UNIFIED IDEOGRAPH - ,0x9249 ,0x68DA //CJK UNIFIED IDEOGRAPH - ,0x924A ,0x8C37 //CJK UNIFIED IDEOGRAPH - ,0x924B ,0x72F8 //CJK UNIFIED IDEOGRAPH - ,0x924C ,0x9C48 //CJK UNIFIED IDEOGRAPH - ,0x924D ,0x6A3D //CJK UNIFIED IDEOGRAPH - ,0x924E ,0x8AB0 //CJK UNIFIED IDEOGRAPH - ,0x924F ,0x4E39 //CJK UNIFIED IDEOGRAPH - ,0x9250 ,0x5358 //CJK UNIFIED IDEOGRAPH - ,0x9251 ,0x5606 //CJK UNIFIED IDEOGRAPH - ,0x9252 ,0x5766 //CJK UNIFIED IDEOGRAPH - ,0x9253 ,0x62C5 //CJK UNIFIED IDEOGRAPH - ,0x9254 ,0x63A2 //CJK UNIFIED IDEOGRAPH - ,0x9255 ,0x65E6 //CJK UNIFIED IDEOGRAPH - ,0x9256 ,0x6B4E //CJK UNIFIED IDEOGRAPH - ,0x9257 ,0x6DE1 //CJK UNIFIED IDEOGRAPH - ,0x9258 ,0x6E5B //CJK UNIFIED IDEOGRAPH - ,0x9259 ,0x70AD //CJK UNIFIED IDEOGRAPH - ,0x925A ,0x77ED //CJK UNIFIED IDEOGRAPH - ,0x925B ,0x7AEF //CJK UNIFIED IDEOGRAPH - ,0x925C ,0x7BAA //CJK UNIFIED IDEOGRAPH - ,0x925D ,0x7DBB //CJK UNIFIED IDEOGRAPH - ,0x925E ,0x803D //CJK UNIFIED IDEOGRAPH - ,0x925F ,0x80C6 //CJK UNIFIED IDEOGRAPH - ,0x9260 ,0x86CB //CJK UNIFIED IDEOGRAPH - ,0x9261 ,0x8A95 //CJK UNIFIED IDEOGRAPH - ,0x9262 ,0x935B //CJK UNIFIED IDEOGRAPH - ,0x9263 ,0x56E3 //CJK UNIFIED IDEOGRAPH - ,0x9264 ,0x58C7 //CJK UNIFIED IDEOGRAPH - ,0x9265 ,0x5F3E //CJK UNIFIED IDEOGRAPH - ,0x9266 ,0x65AD //CJK UNIFIED IDEOGRAPH - ,0x9267 ,0x6696 //CJK UNIFIED IDEOGRAPH - ,0x9268 ,0x6A80 //CJK UNIFIED IDEOGRAPH - ,0x9269 ,0x6BB5 //CJK UNIFIED IDEOGRAPH - ,0x926A ,0x7537 //CJK UNIFIED IDEOGRAPH - ,0x926B ,0x8AC7 //CJK UNIFIED IDEOGRAPH - ,0x926C ,0x5024 //CJK UNIFIED IDEOGRAPH - ,0x926D ,0x77E5 //CJK UNIFIED IDEOGRAPH - ,0x926E ,0x5730 //CJK UNIFIED IDEOGRAPH - ,0x926F ,0x5F1B //CJK UNIFIED IDEOGRAPH - ,0x9270 ,0x6065 //CJK UNIFIED IDEOGRAPH - ,0x9271 ,0x667A //CJK UNIFIED IDEOGRAPH - ,0x9272 ,0x6C60 //CJK UNIFIED IDEOGRAPH - ,0x9273 ,0x75F4 //CJK UNIFIED IDEOGRAPH - ,0x9274 ,0x7A1A //CJK UNIFIED IDEOGRAPH - ,0x9275 ,0x7F6E //CJK UNIFIED IDEOGRAPH - ,0x9276 ,0x81F4 //CJK UNIFIED IDEOGRAPH - ,0x9277 ,0x8718 //CJK UNIFIED IDEOGRAPH - ,0x9278 ,0x9045 //CJK UNIFIED IDEOGRAPH - ,0x9279 ,0x99B3 //CJK UNIFIED IDEOGRAPH - ,0x927A ,0x7BC9 //CJK UNIFIED IDEOGRAPH - ,0x927B ,0x755C //CJK UNIFIED IDEOGRAPH - ,0x927C ,0x7AF9 //CJK UNIFIED IDEOGRAPH - ,0x927D ,0x7B51 //CJK UNIFIED IDEOGRAPH - ,0x927E ,0x84C4 //CJK UNIFIED IDEOGRAPH - ,0x9280 ,0x9010 //CJK UNIFIED IDEOGRAPH - ,0x9281 ,0x79E9 //CJK UNIFIED IDEOGRAPH - ,0x9282 ,0x7A92 //CJK UNIFIED IDEOGRAPH - ,0x9283 ,0x8336 //CJK UNIFIED IDEOGRAPH - ,0x9284 ,0x5AE1 //CJK UNIFIED IDEOGRAPH - ,0x9285 ,0x7740 //CJK UNIFIED IDEOGRAPH - ,0x9286 ,0x4E2D //CJK UNIFIED IDEOGRAPH - ,0x9287 ,0x4EF2 //CJK UNIFIED IDEOGRAPH - ,0x9288 ,0x5B99 //CJK UNIFIED IDEOGRAPH - ,0x9289 ,0x5FE0 //CJK UNIFIED IDEOGRAPH - ,0x928A ,0x62BD //CJK UNIFIED IDEOGRAPH - ,0x928B ,0x663C //CJK UNIFIED IDEOGRAPH - ,0x928C ,0x67F1 //CJK UNIFIED IDEOGRAPH - ,0x928D ,0x6CE8 //CJK UNIFIED IDEOGRAPH - ,0x928E ,0x866B //CJK UNIFIED IDEOGRAPH - ,0x928F ,0x8877 //CJK UNIFIED IDEOGRAPH - ,0x9290 ,0x8A3B //CJK UNIFIED IDEOGRAPH - ,0x9291 ,0x914E //CJK UNIFIED IDEOGRAPH - ,0x9292 ,0x92F3 //CJK UNIFIED IDEOGRAPH - ,0x9293 ,0x99D0 //CJK UNIFIED IDEOGRAPH - ,0x9294 ,0x6A17 //CJK UNIFIED IDEOGRAPH - ,0x9295 ,0x7026 //CJK UNIFIED IDEOGRAPH - ,0x9296 ,0x732A //CJK UNIFIED IDEOGRAPH - ,0x9297 ,0x82E7 //CJK UNIFIED IDEOGRAPH - ,0x9298 ,0x8457 //CJK UNIFIED IDEOGRAPH - ,0x9299 ,0x8CAF //CJK UNIFIED IDEOGRAPH - ,0x929A ,0x4E01 //CJK UNIFIED IDEOGRAPH - ,0x929B ,0x5146 //CJK UNIFIED IDEOGRAPH - ,0x929C ,0x51CB //CJK UNIFIED IDEOGRAPH - ,0x929D ,0x558B //CJK UNIFIED IDEOGRAPH - ,0x929E ,0x5BF5 //CJK UNIFIED IDEOGRAPH - ,0x929F ,0x5E16 //CJK UNIFIED IDEOGRAPH - ,0x92A0 ,0x5E33 //CJK UNIFIED IDEOGRAPH - ,0x92A1 ,0x5E81 //CJK UNIFIED IDEOGRAPH - ,0x92A2 ,0x5F14 //CJK UNIFIED IDEOGRAPH - ,0x92A3 ,0x5F35 //CJK UNIFIED IDEOGRAPH - ,0x92A4 ,0x5F6B //CJK UNIFIED IDEOGRAPH - ,0x92A5 ,0x5FB4 //CJK UNIFIED IDEOGRAPH - ,0x92A6 ,0x61F2 //CJK UNIFIED IDEOGRAPH - ,0x92A7 ,0x6311 //CJK UNIFIED IDEOGRAPH - ,0x92A8 ,0x66A2 //CJK UNIFIED IDEOGRAPH - ,0x92A9 ,0x671D //CJK UNIFIED IDEOGRAPH - ,0x92AA ,0x6F6E //CJK UNIFIED IDEOGRAPH - ,0x92AB ,0x7252 //CJK UNIFIED IDEOGRAPH - ,0x92AC ,0x753A //CJK UNIFIED IDEOGRAPH - ,0x92AD ,0x773A //CJK UNIFIED IDEOGRAPH - ,0x92AE ,0x8074 //CJK UNIFIED IDEOGRAPH - ,0x92AF ,0x8139 //CJK UNIFIED IDEOGRAPH - ,0x92B0 ,0x8178 //CJK UNIFIED IDEOGRAPH - ,0x92B1 ,0x8776 //CJK UNIFIED IDEOGRAPH - ,0x92B2 ,0x8ABF //CJK UNIFIED IDEOGRAPH - ,0x92B3 ,0x8ADC //CJK UNIFIED IDEOGRAPH - ,0x92B4 ,0x8D85 //CJK UNIFIED IDEOGRAPH - ,0x92B5 ,0x8DF3 //CJK UNIFIED IDEOGRAPH - ,0x92B6 ,0x929A //CJK UNIFIED IDEOGRAPH - ,0x92B7 ,0x9577 //CJK UNIFIED IDEOGRAPH - ,0x92B8 ,0x9802 //CJK UNIFIED IDEOGRAPH - ,0x92B9 ,0x9CE5 //CJK UNIFIED IDEOGRAPH - ,0x92BA ,0x52C5 //CJK UNIFIED IDEOGRAPH - ,0x92BB ,0x6357 //CJK UNIFIED IDEOGRAPH - ,0x92BC ,0x76F4 //CJK UNIFIED IDEOGRAPH - ,0x92BD ,0x6715 //CJK UNIFIED IDEOGRAPH - ,0x92BE ,0x6C88 //CJK UNIFIED IDEOGRAPH - ,0x92BF ,0x73CD //CJK UNIFIED IDEOGRAPH - ,0x92C0 ,0x8CC3 //CJK UNIFIED IDEOGRAPH - ,0x92C1 ,0x93AE //CJK UNIFIED IDEOGRAPH - ,0x92C2 ,0x9673 //CJK UNIFIED IDEOGRAPH - ,0x92C3 ,0x6D25 //CJK UNIFIED IDEOGRAPH - ,0x92C4 ,0x589C //CJK UNIFIED IDEOGRAPH - ,0x92C5 ,0x690E //CJK UNIFIED IDEOGRAPH - ,0x92C6 ,0x69CC //CJK UNIFIED IDEOGRAPH - ,0x92C7 ,0x8FFD //CJK UNIFIED IDEOGRAPH - ,0x92C8 ,0x939A //CJK UNIFIED IDEOGRAPH - ,0x92C9 ,0x75DB //CJK UNIFIED IDEOGRAPH - ,0x92CA ,0x901A //CJK UNIFIED IDEOGRAPH - ,0x92CB ,0x585A //CJK UNIFIED IDEOGRAPH - ,0x92CC ,0x6802 //CJK UNIFIED IDEOGRAPH - ,0x92CD ,0x63B4 //CJK UNIFIED IDEOGRAPH - ,0x92CE ,0x69FB //CJK UNIFIED IDEOGRAPH - ,0x92CF ,0x4F43 //CJK UNIFIED IDEOGRAPH - ,0x92D0 ,0x6F2C //CJK UNIFIED IDEOGRAPH - ,0x92D1 ,0x67D8 //CJK UNIFIED IDEOGRAPH - ,0x92D2 ,0x8FBB //CJK UNIFIED IDEOGRAPH - ,0x92D3 ,0x8526 //CJK UNIFIED IDEOGRAPH - ,0x92D4 ,0x7DB4 //CJK UNIFIED IDEOGRAPH - ,0x92D5 ,0x9354 //CJK UNIFIED IDEOGRAPH - ,0x92D6 ,0x693F //CJK UNIFIED IDEOGRAPH - ,0x92D7 ,0x6F70 //CJK UNIFIED IDEOGRAPH - ,0x92D8 ,0x576A //CJK UNIFIED IDEOGRAPH - ,0x92D9 ,0x58F7 //CJK UNIFIED IDEOGRAPH - ,0x92DA ,0x5B2C //CJK UNIFIED IDEOGRAPH - ,0x92DB ,0x7D2C //CJK UNIFIED IDEOGRAPH - ,0x92DC ,0x722A //CJK UNIFIED IDEOGRAPH - ,0x92DD ,0x540A //CJK UNIFIED IDEOGRAPH - ,0x92DE ,0x91E3 //CJK UNIFIED IDEOGRAPH - ,0x92DF ,0x9DB4 //CJK UNIFIED IDEOGRAPH - ,0x92E0 ,0x4EAD //CJK UNIFIED IDEOGRAPH - ,0x92E1 ,0x4F4E //CJK UNIFIED IDEOGRAPH - ,0x92E2 ,0x505C //CJK UNIFIED IDEOGRAPH - ,0x92E3 ,0x5075 //CJK UNIFIED IDEOGRAPH - ,0x92E4 ,0x5243 //CJK UNIFIED IDEOGRAPH - ,0x92E5 ,0x8C9E //CJK UNIFIED IDEOGRAPH - ,0x92E6 ,0x5448 //CJK UNIFIED IDEOGRAPH - ,0x92E7 ,0x5824 //CJK UNIFIED IDEOGRAPH - ,0x92E8 ,0x5B9A //CJK UNIFIED IDEOGRAPH - ,0x92E9 ,0x5E1D //CJK UNIFIED IDEOGRAPH - ,0x92EA ,0x5E95 //CJK UNIFIED IDEOGRAPH - ,0x92EB ,0x5EAD //CJK UNIFIED IDEOGRAPH - ,0x92EC ,0x5EF7 //CJK UNIFIED IDEOGRAPH - ,0x92ED ,0x5F1F //CJK UNIFIED IDEOGRAPH - ,0x92EE ,0x608C //CJK UNIFIED IDEOGRAPH - ,0x92EF ,0x62B5 //CJK UNIFIED IDEOGRAPH - ,0x92F0 ,0x633A //CJK UNIFIED IDEOGRAPH - ,0x92F1 ,0x63D0 //CJK UNIFIED IDEOGRAPH - ,0x92F2 ,0x68AF //CJK UNIFIED IDEOGRAPH - ,0x92F3 ,0x6C40 //CJK UNIFIED IDEOGRAPH - ,0x92F4 ,0x7887 //CJK UNIFIED IDEOGRAPH - ,0x92F5 ,0x798E //CJK UNIFIED IDEOGRAPH - ,0x92F6 ,0x7A0B //CJK UNIFIED IDEOGRAPH - ,0x92F7 ,0x7DE0 //CJK UNIFIED IDEOGRAPH - ,0x92F8 ,0x8247 //CJK UNIFIED IDEOGRAPH - ,0x92F9 ,0x8A02 //CJK UNIFIED IDEOGRAPH - ,0x92FA ,0x8AE6 //CJK UNIFIED IDEOGRAPH - ,0x92FB ,0x8E44 //CJK UNIFIED IDEOGRAPH - ,0x92FC ,0x9013 //CJK UNIFIED IDEOGRAPH - ,0x9340 ,0x90B8 //CJK UNIFIED IDEOGRAPH - ,0x9341 ,0x912D //CJK UNIFIED IDEOGRAPH - ,0x9342 ,0x91D8 //CJK UNIFIED IDEOGRAPH - ,0x9343 ,0x9F0E //CJK UNIFIED IDEOGRAPH - ,0x9344 ,0x6CE5 //CJK UNIFIED IDEOGRAPH - ,0x9345 ,0x6458 //CJK UNIFIED IDEOGRAPH - ,0x9346 ,0x64E2 //CJK UNIFIED IDEOGRAPH - ,0x9347 ,0x6575 //CJK UNIFIED IDEOGRAPH - ,0x9348 ,0x6EF4 //CJK UNIFIED IDEOGRAPH - ,0x9349 ,0x7684 //CJK UNIFIED IDEOGRAPH - ,0x934A ,0x7B1B //CJK UNIFIED IDEOGRAPH - ,0x934B ,0x9069 //CJK UNIFIED IDEOGRAPH - ,0x934C ,0x93D1 //CJK UNIFIED IDEOGRAPH - ,0x934D ,0x6EBA //CJK UNIFIED IDEOGRAPH - ,0x934E ,0x54F2 //CJK UNIFIED IDEOGRAPH - ,0x934F ,0x5FB9 //CJK UNIFIED IDEOGRAPH - ,0x9350 ,0x64A4 //CJK UNIFIED IDEOGRAPH - ,0x9351 ,0x8F4D //CJK UNIFIED IDEOGRAPH - ,0x9352 ,0x8FED //CJK UNIFIED IDEOGRAPH - ,0x9353 ,0x9244 //CJK UNIFIED IDEOGRAPH - ,0x9354 ,0x5178 //CJK UNIFIED IDEOGRAPH - ,0x9355 ,0x586B //CJK UNIFIED IDEOGRAPH - ,0x9356 ,0x5929 //CJK UNIFIED IDEOGRAPH - ,0x9357 ,0x5C55 //CJK UNIFIED IDEOGRAPH - ,0x9358 ,0x5E97 //CJK UNIFIED IDEOGRAPH - ,0x9359 ,0x6DFB //CJK UNIFIED IDEOGRAPH - ,0x935A ,0x7E8F //CJK UNIFIED IDEOGRAPH - ,0x935B ,0x751C //CJK UNIFIED IDEOGRAPH - ,0x935C ,0x8CBC //CJK UNIFIED IDEOGRAPH - ,0x935D ,0x8EE2 //CJK UNIFIED IDEOGRAPH - ,0x935E ,0x985B //CJK UNIFIED IDEOGRAPH - ,0x935F ,0x70B9 //CJK UNIFIED IDEOGRAPH - ,0x9360 ,0x4F1D //CJK UNIFIED IDEOGRAPH - ,0x9361 ,0x6BBF //CJK UNIFIED IDEOGRAPH - ,0x9362 ,0x6FB1 //CJK UNIFIED IDEOGRAPH - ,0x9363 ,0x7530 //CJK UNIFIED IDEOGRAPH - ,0x9364 ,0x96FB //CJK UNIFIED IDEOGRAPH - ,0x9365 ,0x514E //CJK UNIFIED IDEOGRAPH - ,0x9366 ,0x5410 //CJK UNIFIED IDEOGRAPH - ,0x9367 ,0x5835 //CJK UNIFIED IDEOGRAPH - ,0x9368 ,0x5857 //CJK UNIFIED IDEOGRAPH - ,0x9369 ,0x59AC //CJK UNIFIED IDEOGRAPH - ,0x936A ,0x5C60 //CJK UNIFIED IDEOGRAPH - ,0x936B ,0x5F92 //CJK UNIFIED IDEOGRAPH - ,0x936C ,0x6597 //CJK UNIFIED IDEOGRAPH - ,0x936D ,0x675C //CJK UNIFIED IDEOGRAPH - ,0x936E ,0x6E21 //CJK UNIFIED IDEOGRAPH - ,0x936F ,0x767B //CJK UNIFIED IDEOGRAPH - ,0x9370 ,0x83DF //CJK UNIFIED IDEOGRAPH - ,0x9371 ,0x8CED //CJK UNIFIED IDEOGRAPH - ,0x9372 ,0x9014 //CJK UNIFIED IDEOGRAPH - ,0x9373 ,0x90FD //CJK UNIFIED IDEOGRAPH - ,0x9374 ,0x934D //CJK UNIFIED IDEOGRAPH - ,0x9375 ,0x7825 //CJK UNIFIED IDEOGRAPH - ,0x9376 ,0x783A //CJK UNIFIED IDEOGRAPH - ,0x9377 ,0x52AA //CJK UNIFIED IDEOGRAPH - ,0x9378 ,0x5EA6 //CJK UNIFIED IDEOGRAPH - ,0x9379 ,0x571F //CJK UNIFIED IDEOGRAPH - ,0x937A ,0x5974 //CJK UNIFIED IDEOGRAPH - ,0x937B ,0x6012 //CJK UNIFIED IDEOGRAPH - ,0x937C ,0x5012 //CJK UNIFIED IDEOGRAPH - ,0x937D ,0x515A //CJK UNIFIED IDEOGRAPH - ,0x937E ,0x51AC //CJK UNIFIED IDEOGRAPH - ,0x9380 ,0x51CD //CJK UNIFIED IDEOGRAPH - ,0x9381 ,0x5200 //CJK UNIFIED IDEOGRAPH - ,0x9382 ,0x5510 //CJK UNIFIED IDEOGRAPH - ,0x9383 ,0x5854 //CJK UNIFIED IDEOGRAPH - ,0x9384 ,0x5858 //CJK UNIFIED IDEOGRAPH - ,0x9385 ,0x5957 //CJK UNIFIED IDEOGRAPH - ,0x9386 ,0x5B95 //CJK UNIFIED IDEOGRAPH - ,0x9387 ,0x5CF6 //CJK UNIFIED IDEOGRAPH - ,0x9388 ,0x5D8B //CJK UNIFIED IDEOGRAPH - ,0x9389 ,0x60BC //CJK UNIFIED IDEOGRAPH - ,0x938A ,0x6295 //CJK UNIFIED IDEOGRAPH - ,0x938B ,0x642D //CJK UNIFIED IDEOGRAPH - ,0x938C ,0x6771 //CJK UNIFIED IDEOGRAPH - ,0x938D ,0x6843 //CJK UNIFIED IDEOGRAPH - ,0x938E ,0x68BC //CJK UNIFIED IDEOGRAPH - ,0x938F ,0x68DF //CJK UNIFIED IDEOGRAPH - ,0x9390 ,0x76D7 //CJK UNIFIED IDEOGRAPH - ,0x9391 ,0x6DD8 //CJK UNIFIED IDEOGRAPH - ,0x9392 ,0x6E6F //CJK UNIFIED IDEOGRAPH - ,0x9393 ,0x6D9B //CJK UNIFIED IDEOGRAPH - ,0x9394 ,0x706F //CJK UNIFIED IDEOGRAPH - ,0x9395 ,0x71C8 //CJK UNIFIED IDEOGRAPH - ,0x9396 ,0x5F53 //CJK UNIFIED IDEOGRAPH - ,0x9397 ,0x75D8 //CJK UNIFIED IDEOGRAPH - ,0x9398 ,0x7977 //CJK UNIFIED IDEOGRAPH - ,0x9399 ,0x7B49 //CJK UNIFIED IDEOGRAPH - ,0x939A ,0x7B54 //CJK UNIFIED IDEOGRAPH - ,0x939B ,0x7B52 //CJK UNIFIED IDEOGRAPH - ,0x939C ,0x7CD6 //CJK UNIFIED IDEOGRAPH - ,0x939D ,0x7D71 //CJK UNIFIED IDEOGRAPH - ,0x939E ,0x5230 //CJK UNIFIED IDEOGRAPH - ,0x939F ,0x8463 //CJK UNIFIED IDEOGRAPH - ,0x93A0 ,0x8569 //CJK UNIFIED IDEOGRAPH - ,0x93A1 ,0x85E4 //CJK UNIFIED IDEOGRAPH - ,0x93A2 ,0x8A0E //CJK UNIFIED IDEOGRAPH - ,0x93A3 ,0x8B04 //CJK UNIFIED IDEOGRAPH - ,0x93A4 ,0x8C46 //CJK UNIFIED IDEOGRAPH - ,0x93A5 ,0x8E0F //CJK UNIFIED IDEOGRAPH - ,0x93A6 ,0x9003 //CJK UNIFIED IDEOGRAPH - ,0x93A7 ,0x900F //CJK UNIFIED IDEOGRAPH - ,0x93A8 ,0x9419 //CJK UNIFIED IDEOGRAPH - ,0x93A9 ,0x9676 //CJK UNIFIED IDEOGRAPH - ,0x93AA ,0x982D //CJK UNIFIED IDEOGRAPH - ,0x93AB ,0x9A30 //CJK UNIFIED IDEOGRAPH - ,0x93AC ,0x95D8 //CJK UNIFIED IDEOGRAPH - ,0x93AD ,0x50CD //CJK UNIFIED IDEOGRAPH - ,0x93AE ,0x52D5 //CJK UNIFIED IDEOGRAPH - ,0x93AF ,0x540C //CJK UNIFIED IDEOGRAPH - ,0x93B0 ,0x5802 //CJK UNIFIED IDEOGRAPH - ,0x93B1 ,0x5C0E //CJK UNIFIED IDEOGRAPH - ,0x93B2 ,0x61A7 //CJK UNIFIED IDEOGRAPH - ,0x93B3 ,0x649E //CJK UNIFIED IDEOGRAPH - ,0x93B4 ,0x6D1E //CJK UNIFIED IDEOGRAPH - ,0x93B5 ,0x77B3 //CJK UNIFIED IDEOGRAPH - ,0x93B6 ,0x7AE5 //CJK UNIFIED IDEOGRAPH - ,0x93B7 ,0x80F4 //CJK UNIFIED IDEOGRAPH - ,0x93B8 ,0x8404 //CJK UNIFIED IDEOGRAPH - ,0x93B9 ,0x9053 //CJK UNIFIED IDEOGRAPH - ,0x93BA ,0x9285 //CJK UNIFIED IDEOGRAPH - ,0x93BB ,0x5CE0 //CJK UNIFIED IDEOGRAPH - ,0x93BC ,0x9D07 //CJK UNIFIED IDEOGRAPH - ,0x93BD ,0x533F //CJK UNIFIED IDEOGRAPH - ,0x93BE ,0x5F97 //CJK UNIFIED IDEOGRAPH - ,0x93BF ,0x5FB3 //CJK UNIFIED IDEOGRAPH - ,0x93C0 ,0x6D9C //CJK UNIFIED IDEOGRAPH - ,0x93C1 ,0x7279 //CJK UNIFIED IDEOGRAPH - ,0x93C2 ,0x7763 //CJK UNIFIED IDEOGRAPH - ,0x93C3 ,0x79BF //CJK UNIFIED IDEOGRAPH - ,0x93C4 ,0x7BE4 //CJK UNIFIED IDEOGRAPH - ,0x93C5 ,0x6BD2 //CJK UNIFIED IDEOGRAPH - ,0x93C6 ,0x72EC //CJK UNIFIED IDEOGRAPH - ,0x93C7 ,0x8AAD //CJK UNIFIED IDEOGRAPH - ,0x93C8 ,0x6803 //CJK UNIFIED IDEOGRAPH - ,0x93C9 ,0x6A61 //CJK UNIFIED IDEOGRAPH - ,0x93CA ,0x51F8 //CJK UNIFIED IDEOGRAPH - ,0x93CB ,0x7A81 //CJK UNIFIED IDEOGRAPH - ,0x93CC ,0x6934 //CJK UNIFIED IDEOGRAPH - ,0x93CD ,0x5C4A //CJK UNIFIED IDEOGRAPH - ,0x93CE ,0x9CF6 //CJK UNIFIED IDEOGRAPH - ,0x93CF ,0x82EB //CJK UNIFIED IDEOGRAPH - ,0x93D0 ,0x5BC5 //CJK UNIFIED IDEOGRAPH - ,0x93D1 ,0x9149 //CJK UNIFIED IDEOGRAPH - ,0x93D2 ,0x701E //CJK UNIFIED IDEOGRAPH - ,0x93D3 ,0x5678 //CJK UNIFIED IDEOGRAPH - ,0x93D4 ,0x5C6F //CJK UNIFIED IDEOGRAPH - ,0x93D5 ,0x60C7 //CJK UNIFIED IDEOGRAPH - ,0x93D6 ,0x6566 //CJK UNIFIED IDEOGRAPH - ,0x93D7 ,0x6C8C //CJK UNIFIED IDEOGRAPH - ,0x93D8 ,0x8C5A //CJK UNIFIED IDEOGRAPH - ,0x93D9 ,0x9041 //CJK UNIFIED IDEOGRAPH - ,0x93DA ,0x9813 //CJK UNIFIED IDEOGRAPH - ,0x93DB ,0x5451 //CJK UNIFIED IDEOGRAPH - ,0x93DC ,0x66C7 //CJK UNIFIED IDEOGRAPH - ,0x93DD ,0x920D //CJK UNIFIED IDEOGRAPH - ,0x93DE ,0x5948 //CJK UNIFIED IDEOGRAPH - ,0x93DF ,0x90A3 //CJK UNIFIED IDEOGRAPH - ,0x93E0 ,0x5185 //CJK UNIFIED IDEOGRAPH - ,0x93E1 ,0x4E4D //CJK UNIFIED IDEOGRAPH - ,0x93E2 ,0x51EA //CJK UNIFIED IDEOGRAPH - ,0x93E3 ,0x8599 //CJK UNIFIED IDEOGRAPH - ,0x93E4 ,0x8B0E //CJK UNIFIED IDEOGRAPH - ,0x93E5 ,0x7058 //CJK UNIFIED IDEOGRAPH - ,0x93E6 ,0x637A //CJK UNIFIED IDEOGRAPH - ,0x93E7 ,0x934B //CJK UNIFIED IDEOGRAPH - ,0x93E8 ,0x6962 //CJK UNIFIED IDEOGRAPH - ,0x93E9 ,0x99B4 //CJK UNIFIED IDEOGRAPH - ,0x93EA ,0x7E04 //CJK UNIFIED IDEOGRAPH - ,0x93EB ,0x7577 //CJK UNIFIED IDEOGRAPH - ,0x93EC ,0x5357 //CJK UNIFIED IDEOGRAPH - ,0x93ED ,0x6960 //CJK UNIFIED IDEOGRAPH - ,0x93EE ,0x8EDF //CJK UNIFIED IDEOGRAPH - ,0x93EF ,0x96E3 //CJK UNIFIED IDEOGRAPH - ,0x93F0 ,0x6C5D //CJK UNIFIED IDEOGRAPH - ,0x93F1 ,0x4E8C //CJK UNIFIED IDEOGRAPH - ,0x93F2 ,0x5C3C //CJK UNIFIED IDEOGRAPH - ,0x93F3 ,0x5F10 //CJK UNIFIED IDEOGRAPH - ,0x93F4 ,0x8FE9 //CJK UNIFIED IDEOGRAPH - ,0x93F5 ,0x5302 //CJK UNIFIED IDEOGRAPH - ,0x93F6 ,0x8CD1 //CJK UNIFIED IDEOGRAPH - ,0x93F7 ,0x8089 //CJK UNIFIED IDEOGRAPH - ,0x93F8 ,0x8679 //CJK UNIFIED IDEOGRAPH - ,0x93F9 ,0x5EFF //CJK UNIFIED IDEOGRAPH - ,0x93FA ,0x65E5 //CJK UNIFIED IDEOGRAPH - ,0x93FB ,0x4E73 //CJK UNIFIED IDEOGRAPH - ,0x93FC ,0x5165 //CJK UNIFIED IDEOGRAPH - ,0x9440 ,0x5982 //CJK UNIFIED IDEOGRAPH - ,0x9441 ,0x5C3F //CJK UNIFIED IDEOGRAPH - ,0x9442 ,0x97EE //CJK UNIFIED IDEOGRAPH - ,0x9443 ,0x4EFB //CJK UNIFIED IDEOGRAPH - ,0x9444 ,0x598A //CJK UNIFIED IDEOGRAPH - ,0x9445 ,0x5FCD //CJK UNIFIED IDEOGRAPH - ,0x9446 ,0x8A8D //CJK UNIFIED IDEOGRAPH - ,0x9447 ,0x6FE1 //CJK UNIFIED IDEOGRAPH - ,0x9448 ,0x79B0 //CJK UNIFIED IDEOGRAPH - ,0x9449 ,0x7962 //CJK UNIFIED IDEOGRAPH - ,0x944A ,0x5BE7 //CJK UNIFIED IDEOGRAPH - ,0x944B ,0x8471 //CJK UNIFIED IDEOGRAPH - ,0x944C ,0x732B //CJK UNIFIED IDEOGRAPH - ,0x944D ,0x71B1 //CJK UNIFIED IDEOGRAPH - ,0x944E ,0x5E74 //CJK UNIFIED IDEOGRAPH - ,0x944F ,0x5FF5 //CJK UNIFIED IDEOGRAPH - ,0x9450 ,0x637B //CJK UNIFIED IDEOGRAPH - ,0x9451 ,0x649A //CJK UNIFIED IDEOGRAPH - ,0x9452 ,0x71C3 //CJK UNIFIED IDEOGRAPH - ,0x9453 ,0x7C98 //CJK UNIFIED IDEOGRAPH - ,0x9454 ,0x4E43 //CJK UNIFIED IDEOGRAPH - ,0x9455 ,0x5EFC //CJK UNIFIED IDEOGRAPH - ,0x9456 ,0x4E4B //CJK UNIFIED IDEOGRAPH - ,0x9457 ,0x57DC //CJK UNIFIED IDEOGRAPH - ,0x9458 ,0x56A2 //CJK UNIFIED IDEOGRAPH - ,0x9459 ,0x60A9 //CJK UNIFIED IDEOGRAPH - ,0x945A ,0x6FC3 //CJK UNIFIED IDEOGRAPH - ,0x945B ,0x7D0D //CJK UNIFIED IDEOGRAPH - ,0x945C ,0x80FD //CJK UNIFIED IDEOGRAPH - ,0x945D ,0x8133 //CJK UNIFIED IDEOGRAPH - ,0x945E ,0x81BF //CJK UNIFIED IDEOGRAPH - ,0x945F ,0x8FB2 //CJK UNIFIED IDEOGRAPH - ,0x9460 ,0x8997 //CJK UNIFIED IDEOGRAPH - ,0x9461 ,0x86A4 //CJK UNIFIED IDEOGRAPH - ,0x9462 ,0x5DF4 //CJK UNIFIED IDEOGRAPH - ,0x9463 ,0x628A //CJK UNIFIED IDEOGRAPH - ,0x9464 ,0x64AD //CJK UNIFIED IDEOGRAPH - ,0x9465 ,0x8987 //CJK UNIFIED IDEOGRAPH - ,0x9466 ,0x6777 //CJK UNIFIED IDEOGRAPH - ,0x9467 ,0x6CE2 //CJK UNIFIED IDEOGRAPH - ,0x9468 ,0x6D3E //CJK UNIFIED IDEOGRAPH - ,0x9469 ,0x7436 //CJK UNIFIED IDEOGRAPH - ,0x946A ,0x7834 //CJK UNIFIED IDEOGRAPH - ,0x946B ,0x5A46 //CJK UNIFIED IDEOGRAPH - ,0x946C ,0x7F75 //CJK UNIFIED IDEOGRAPH - ,0x946D ,0x82AD //CJK UNIFIED IDEOGRAPH - ,0x946E ,0x99AC //CJK UNIFIED IDEOGRAPH - ,0x946F ,0x4FF3 //CJK UNIFIED IDEOGRAPH - ,0x9470 ,0x5EC3 //CJK UNIFIED IDEOGRAPH - ,0x9471 ,0x62DD //CJK UNIFIED IDEOGRAPH - ,0x9472 ,0x6392 //CJK UNIFIED IDEOGRAPH - ,0x9473 ,0x6557 //CJK UNIFIED IDEOGRAPH - ,0x9474 ,0x676F //CJK UNIFIED IDEOGRAPH - ,0x9475 ,0x76C3 //CJK UNIFIED IDEOGRAPH - ,0x9476 ,0x724C //CJK UNIFIED IDEOGRAPH - ,0x9477 ,0x80CC //CJK UNIFIED IDEOGRAPH - ,0x9478 ,0x80BA //CJK UNIFIED IDEOGRAPH - ,0x9479 ,0x8F29 //CJK UNIFIED IDEOGRAPH - ,0x947A ,0x914D //CJK UNIFIED IDEOGRAPH - ,0x947B ,0x500D //CJK UNIFIED IDEOGRAPH - ,0x947C ,0x57F9 //CJK UNIFIED IDEOGRAPH - ,0x947D ,0x5A92 //CJK UNIFIED IDEOGRAPH - ,0x947E ,0x6885 //CJK UNIFIED IDEOGRAPH - ,0x9480 ,0x6973 //CJK UNIFIED IDEOGRAPH - ,0x9481 ,0x7164 //CJK UNIFIED IDEOGRAPH - ,0x9482 ,0x72FD //CJK UNIFIED IDEOGRAPH - ,0x9483 ,0x8CB7 //CJK UNIFIED IDEOGRAPH - ,0x9484 ,0x58F2 //CJK UNIFIED IDEOGRAPH - ,0x9485 ,0x8CE0 //CJK UNIFIED IDEOGRAPH - ,0x9486 ,0x966A //CJK UNIFIED IDEOGRAPH - ,0x9487 ,0x9019 //CJK UNIFIED IDEOGRAPH - ,0x9488 ,0x877F //CJK UNIFIED IDEOGRAPH - ,0x9489 ,0x79E4 //CJK UNIFIED IDEOGRAPH - ,0x948A ,0x77E7 //CJK UNIFIED IDEOGRAPH - ,0x948B ,0x8429 //CJK UNIFIED IDEOGRAPH - ,0x948C ,0x4F2F //CJK UNIFIED IDEOGRAPH - ,0x948D ,0x5265 //CJK UNIFIED IDEOGRAPH - ,0x948E ,0x535A //CJK UNIFIED IDEOGRAPH - ,0x948F ,0x62CD //CJK UNIFIED IDEOGRAPH - ,0x9490 ,0x67CF //CJK UNIFIED IDEOGRAPH - ,0x9491 ,0x6CCA //CJK UNIFIED IDEOGRAPH - ,0x9492 ,0x767D //CJK UNIFIED IDEOGRAPH - ,0x9493 ,0x7B94 //CJK UNIFIED IDEOGRAPH - ,0x9494 ,0x7C95 //CJK UNIFIED IDEOGRAPH - ,0x9495 ,0x8236 //CJK UNIFIED IDEOGRAPH - ,0x9496 ,0x8584 //CJK UNIFIED IDEOGRAPH - ,0x9497 ,0x8FEB //CJK UNIFIED IDEOGRAPH - ,0x9498 ,0x66DD //CJK UNIFIED IDEOGRAPH - ,0x9499 ,0x6F20 //CJK UNIFIED IDEOGRAPH - ,0x949A ,0x7206 //CJK UNIFIED IDEOGRAPH - ,0x949B ,0x7E1B //CJK UNIFIED IDEOGRAPH - ,0x949C ,0x83AB //CJK UNIFIED IDEOGRAPH - ,0x949D ,0x99C1 //CJK UNIFIED IDEOGRAPH - ,0x949E ,0x9EA6 //CJK UNIFIED IDEOGRAPH - ,0x949F ,0x51FD //CJK UNIFIED IDEOGRAPH - ,0x94A0 ,0x7BB1 //CJK UNIFIED IDEOGRAPH - ,0x94A1 ,0x7872 //CJK UNIFIED IDEOGRAPH - ,0x94A2 ,0x7BB8 //CJK UNIFIED IDEOGRAPH - ,0x94A3 ,0x8087 //CJK UNIFIED IDEOGRAPH - ,0x94A4 ,0x7B48 //CJK UNIFIED IDEOGRAPH - ,0x94A5 ,0x6AE8 //CJK UNIFIED IDEOGRAPH - ,0x94A6 ,0x5E61 //CJK UNIFIED IDEOGRAPH - ,0x94A7 ,0x808C //CJK UNIFIED IDEOGRAPH - ,0x94A8 ,0x7551 //CJK UNIFIED IDEOGRAPH - ,0x94A9 ,0x7560 //CJK UNIFIED IDEOGRAPH - ,0x94AA ,0x516B //CJK UNIFIED IDEOGRAPH - ,0x94AB ,0x9262 //CJK UNIFIED IDEOGRAPH - ,0x94AC ,0x6E8C //CJK UNIFIED IDEOGRAPH - ,0x94AD ,0x767A //CJK UNIFIED IDEOGRAPH - ,0x94AE ,0x9197 //CJK UNIFIED IDEOGRAPH - ,0x94AF ,0x9AEA //CJK UNIFIED IDEOGRAPH - ,0x94B0 ,0x4F10 //CJK UNIFIED IDEOGRAPH - ,0x94B1 ,0x7F70 //CJK UNIFIED IDEOGRAPH - ,0x94B2 ,0x629C //CJK UNIFIED IDEOGRAPH - ,0x94B3 ,0x7B4F //CJK UNIFIED IDEOGRAPH - ,0x94B4 ,0x95A5 //CJK UNIFIED IDEOGRAPH - ,0x94B5 ,0x9CE9 //CJK UNIFIED IDEOGRAPH - ,0x94B6 ,0x567A //CJK UNIFIED IDEOGRAPH - ,0x94B7 ,0x5859 //CJK UNIFIED IDEOGRAPH - ,0x94B8 ,0x86E4 //CJK UNIFIED IDEOGRAPH - ,0x94B9 ,0x96BC //CJK UNIFIED IDEOGRAPH - ,0x94BA ,0x4F34 //CJK UNIFIED IDEOGRAPH - ,0x94BB ,0x5224 //CJK UNIFIED IDEOGRAPH - ,0x94BC ,0x534A //CJK UNIFIED IDEOGRAPH - ,0x94BD ,0x53CD //CJK UNIFIED IDEOGRAPH - ,0x94BE ,0x53DB //CJK UNIFIED IDEOGRAPH - ,0x94BF ,0x5E06 //CJK UNIFIED IDEOGRAPH - ,0x94C0 ,0x642C //CJK UNIFIED IDEOGRAPH - ,0x94C1 ,0x6591 //CJK UNIFIED IDEOGRAPH - ,0x94C2 ,0x677F //CJK UNIFIED IDEOGRAPH - ,0x94C3 ,0x6C3E //CJK UNIFIED IDEOGRAPH - ,0x94C4 ,0x6C4E //CJK UNIFIED IDEOGRAPH - ,0x94C5 ,0x7248 //CJK UNIFIED IDEOGRAPH - ,0x94C6 ,0x72AF //CJK UNIFIED IDEOGRAPH - ,0x94C7 ,0x73ED //CJK UNIFIED IDEOGRAPH - ,0x94C8 ,0x7554 //CJK UNIFIED IDEOGRAPH - ,0x94C9 ,0x7E41 //CJK UNIFIED IDEOGRAPH - ,0x94CA ,0x822C //CJK UNIFIED IDEOGRAPH - ,0x94CB ,0x85E9 //CJK UNIFIED IDEOGRAPH - ,0x94CC ,0x8CA9 //CJK UNIFIED IDEOGRAPH - ,0x94CD ,0x7BC4 //CJK UNIFIED IDEOGRAPH - ,0x94CE ,0x91C6 //CJK UNIFIED IDEOGRAPH - ,0x94CF ,0x7169 //CJK UNIFIED IDEOGRAPH - ,0x94D0 ,0x9812 //CJK UNIFIED IDEOGRAPH - ,0x94D1 ,0x98EF //CJK UNIFIED IDEOGRAPH - ,0x94D2 ,0x633D //CJK UNIFIED IDEOGRAPH - ,0x94D3 ,0x6669 //CJK UNIFIED IDEOGRAPH - ,0x94D4 ,0x756A //CJK UNIFIED IDEOGRAPH - ,0x94D5 ,0x76E4 //CJK UNIFIED IDEOGRAPH - ,0x94D6 ,0x78D0 //CJK UNIFIED IDEOGRAPH - ,0x94D7 ,0x8543 //CJK UNIFIED IDEOGRAPH - ,0x94D8 ,0x86EE //CJK UNIFIED IDEOGRAPH - ,0x94D9 ,0x532A //CJK UNIFIED IDEOGRAPH - ,0x94DA ,0x5351 //CJK UNIFIED IDEOGRAPH - ,0x94DB ,0x5426 //CJK UNIFIED IDEOGRAPH - ,0x94DC ,0x5983 //CJK UNIFIED IDEOGRAPH - ,0x94DD ,0x5E87 //CJK UNIFIED IDEOGRAPH - ,0x94DE ,0x5F7C //CJK UNIFIED IDEOGRAPH - ,0x94DF ,0x60B2 //CJK UNIFIED IDEOGRAPH - ,0x94E0 ,0x6249 //CJK UNIFIED IDEOGRAPH - ,0x94E1 ,0x6279 //CJK UNIFIED IDEOGRAPH - ,0x94E2 ,0x62AB //CJK UNIFIED IDEOGRAPH - ,0x94E3 ,0x6590 //CJK UNIFIED IDEOGRAPH - ,0x94E4 ,0x6BD4 //CJK UNIFIED IDEOGRAPH - ,0x94E5 ,0x6CCC //CJK UNIFIED IDEOGRAPH - ,0x94E6 ,0x75B2 //CJK UNIFIED IDEOGRAPH - ,0x94E7 ,0x76AE //CJK UNIFIED IDEOGRAPH - ,0x94E8 ,0x7891 //CJK UNIFIED IDEOGRAPH - ,0x94E9 ,0x79D8 //CJK UNIFIED IDEOGRAPH - ,0x94EA ,0x7DCB //CJK UNIFIED IDEOGRAPH - ,0x94EB ,0x7F77 //CJK UNIFIED IDEOGRAPH - ,0x94EC ,0x80A5 //CJK UNIFIED IDEOGRAPH - ,0x94ED ,0x88AB //CJK UNIFIED IDEOGRAPH - ,0x94EE ,0x8AB9 //CJK UNIFIED IDEOGRAPH - ,0x94EF ,0x8CBB //CJK UNIFIED IDEOGRAPH - ,0x94F0 ,0x907F //CJK UNIFIED IDEOGRAPH - ,0x94F1 ,0x975E //CJK UNIFIED IDEOGRAPH - ,0x94F2 ,0x98DB //CJK UNIFIED IDEOGRAPH - ,0x94F3 ,0x6A0B //CJK UNIFIED IDEOGRAPH - ,0x94F4 ,0x7C38 //CJK UNIFIED IDEOGRAPH - ,0x94F5 ,0x5099 //CJK UNIFIED IDEOGRAPH - ,0x94F6 ,0x5C3E //CJK UNIFIED IDEOGRAPH - ,0x94F7 ,0x5FAE //CJK UNIFIED IDEOGRAPH - ,0x94F8 ,0x6787 //CJK UNIFIED IDEOGRAPH - ,0x94F9 ,0x6BD8 //CJK UNIFIED IDEOGRAPH - ,0x94FA ,0x7435 //CJK UNIFIED IDEOGRAPH - ,0x94FB ,0x7709 //CJK UNIFIED IDEOGRAPH - ,0x94FC ,0x7F8E //CJK UNIFIED IDEOGRAPH - ,0x9540 ,0x9F3B //CJK UNIFIED IDEOGRAPH - ,0x9541 ,0x67CA //CJK UNIFIED IDEOGRAPH - ,0x9542 ,0x7A17 //CJK UNIFIED IDEOGRAPH - ,0x9543 ,0x5339 //CJK UNIFIED IDEOGRAPH - ,0x9544 ,0x758B //CJK UNIFIED IDEOGRAPH - ,0x9545 ,0x9AED //CJK UNIFIED IDEOGRAPH - ,0x9546 ,0x5F66 //CJK UNIFIED IDEOGRAPH - ,0x9547 ,0x819D //CJK UNIFIED IDEOGRAPH - ,0x9548 ,0x83F1 //CJK UNIFIED IDEOGRAPH - ,0x9549 ,0x8098 //CJK UNIFIED IDEOGRAPH - ,0x954A ,0x5F3C //CJK UNIFIED IDEOGRAPH - ,0x954B ,0x5FC5 //CJK UNIFIED IDEOGRAPH - ,0x954C ,0x7562 //CJK UNIFIED IDEOGRAPH - ,0x954D ,0x7B46 //CJK UNIFIED IDEOGRAPH - ,0x954E ,0x903C //CJK UNIFIED IDEOGRAPH - ,0x954F ,0x6867 //CJK UNIFIED IDEOGRAPH - ,0x9550 ,0x59EB //CJK UNIFIED IDEOGRAPH - ,0x9551 ,0x5A9B //CJK UNIFIED IDEOGRAPH - ,0x9552 ,0x7D10 //CJK UNIFIED IDEOGRAPH - ,0x9553 ,0x767E //CJK UNIFIED IDEOGRAPH - ,0x9554 ,0x8B2C //CJK UNIFIED IDEOGRAPH - ,0x9555 ,0x4FF5 //CJK UNIFIED IDEOGRAPH - ,0x9556 ,0x5F6A //CJK UNIFIED IDEOGRAPH - ,0x9557 ,0x6A19 //CJK UNIFIED IDEOGRAPH - ,0x9558 ,0x6C37 //CJK UNIFIED IDEOGRAPH - ,0x9559 ,0x6F02 //CJK UNIFIED IDEOGRAPH - ,0x955A ,0x74E2 //CJK UNIFIED IDEOGRAPH - ,0x955B ,0x7968 //CJK UNIFIED IDEOGRAPH - ,0x955C ,0x8868 //CJK UNIFIED IDEOGRAPH - ,0x955D ,0x8A55 //CJK UNIFIED IDEOGRAPH - ,0x955E ,0x8C79 //CJK UNIFIED IDEOGRAPH - ,0x955F ,0x5EDF //CJK UNIFIED IDEOGRAPH - ,0x9560 ,0x63CF //CJK UNIFIED IDEOGRAPH - ,0x9561 ,0x75C5 //CJK UNIFIED IDEOGRAPH - ,0x9562 ,0x79D2 //CJK UNIFIED IDEOGRAPH - ,0x9563 ,0x82D7 //CJK UNIFIED IDEOGRAPH - ,0x9564 ,0x9328 //CJK UNIFIED IDEOGRAPH - ,0x9565 ,0x92F2 //CJK UNIFIED IDEOGRAPH - ,0x9566 ,0x849C //CJK UNIFIED IDEOGRAPH - ,0x9567 ,0x86ED //CJK UNIFIED IDEOGRAPH - ,0x9568 ,0x9C2D //CJK UNIFIED IDEOGRAPH - ,0x9569 ,0x54C1 //CJK UNIFIED IDEOGRAPH - ,0x956A ,0x5F6C //CJK UNIFIED IDEOGRAPH - ,0x956B ,0x658C //CJK UNIFIED IDEOGRAPH - ,0x956C ,0x6D5C //CJK UNIFIED IDEOGRAPH - ,0x956D ,0x7015 //CJK UNIFIED IDEOGRAPH - ,0x956E ,0x8CA7 //CJK UNIFIED IDEOGRAPH - ,0x956F ,0x8CD3 //CJK UNIFIED IDEOGRAPH - ,0x9570 ,0x983B //CJK UNIFIED IDEOGRAPH - ,0x9571 ,0x654F //CJK UNIFIED IDEOGRAPH - ,0x9572 ,0x74F6 //CJK UNIFIED IDEOGRAPH - ,0x9573 ,0x4E0D //CJK UNIFIED IDEOGRAPH - ,0x9574 ,0x4ED8 //CJK UNIFIED IDEOGRAPH - ,0x9575 ,0x57E0 //CJK UNIFIED IDEOGRAPH - ,0x9576 ,0x592B //CJK UNIFIED IDEOGRAPH - ,0x9577 ,0x5A66 //CJK UNIFIED IDEOGRAPH - ,0x9578 ,0x5BCC //CJK UNIFIED IDEOGRAPH - ,0x9579 ,0x51A8 //CJK UNIFIED IDEOGRAPH - ,0x957A ,0x5E03 //CJK UNIFIED IDEOGRAPH - ,0x957B ,0x5E9C //CJK UNIFIED IDEOGRAPH - ,0x957C ,0x6016 //CJK UNIFIED IDEOGRAPH - ,0x957D ,0x6276 //CJK UNIFIED IDEOGRAPH - ,0x957E ,0x6577 //CJK UNIFIED IDEOGRAPH - ,0x9580 ,0x65A7 //CJK UNIFIED IDEOGRAPH - ,0x9581 ,0x666E //CJK UNIFIED IDEOGRAPH - ,0x9582 ,0x6D6E //CJK UNIFIED IDEOGRAPH - ,0x9583 ,0x7236 //CJK UNIFIED IDEOGRAPH - ,0x9584 ,0x7B26 //CJK UNIFIED IDEOGRAPH - ,0x9585 ,0x8150 //CJK UNIFIED IDEOGRAPH - ,0x9586 ,0x819A //CJK UNIFIED IDEOGRAPH - ,0x9587 ,0x8299 //CJK UNIFIED IDEOGRAPH - ,0x9588 ,0x8B5C //CJK UNIFIED IDEOGRAPH - ,0x9589 ,0x8CA0 //CJK UNIFIED IDEOGRAPH - ,0x958A ,0x8CE6 //CJK UNIFIED IDEOGRAPH - ,0x958B ,0x8D74 //CJK UNIFIED IDEOGRAPH - ,0x958C ,0x961C //CJK UNIFIED IDEOGRAPH - ,0x958D ,0x9644 //CJK UNIFIED IDEOGRAPH - ,0x958E ,0x4FAE //CJK UNIFIED IDEOGRAPH - ,0x958F ,0x64AB //CJK UNIFIED IDEOGRAPH - ,0x9590 ,0x6B66 //CJK UNIFIED IDEOGRAPH - ,0x9591 ,0x821E //CJK UNIFIED IDEOGRAPH - ,0x9592 ,0x8461 //CJK UNIFIED IDEOGRAPH - ,0x9593 ,0x856A //CJK UNIFIED IDEOGRAPH - ,0x9594 ,0x90E8 //CJK UNIFIED IDEOGRAPH - ,0x9595 ,0x5C01 //CJK UNIFIED IDEOGRAPH - ,0x9596 ,0x6953 //CJK UNIFIED IDEOGRAPH - ,0x9597 ,0x98A8 //CJK UNIFIED IDEOGRAPH - ,0x9598 ,0x847A //CJK UNIFIED IDEOGRAPH - ,0x9599 ,0x8557 //CJK UNIFIED IDEOGRAPH - ,0x959A ,0x4F0F //CJK UNIFIED IDEOGRAPH - ,0x959B ,0x526F //CJK UNIFIED IDEOGRAPH - ,0x959C ,0x5FA9 //CJK UNIFIED IDEOGRAPH - ,0x959D ,0x5E45 //CJK UNIFIED IDEOGRAPH - ,0x959E ,0x670D //CJK UNIFIED IDEOGRAPH - ,0x959F ,0x798F //CJK UNIFIED IDEOGRAPH - ,0x95A0 ,0x8179 //CJK UNIFIED IDEOGRAPH - ,0x95A1 ,0x8907 //CJK UNIFIED IDEOGRAPH - ,0x95A2 ,0x8986 //CJK UNIFIED IDEOGRAPH - ,0x95A3 ,0x6DF5 //CJK UNIFIED IDEOGRAPH - ,0x95A4 ,0x5F17 //CJK UNIFIED IDEOGRAPH - ,0x95A5 ,0x6255 //CJK UNIFIED IDEOGRAPH - ,0x95A6 ,0x6CB8 //CJK UNIFIED IDEOGRAPH - ,0x95A7 ,0x4ECF //CJK UNIFIED IDEOGRAPH - ,0x95A8 ,0x7269 //CJK UNIFIED IDEOGRAPH - ,0x95A9 ,0x9B92 //CJK UNIFIED IDEOGRAPH - ,0x95AA ,0x5206 //CJK UNIFIED IDEOGRAPH - ,0x95AB ,0x543B //CJK UNIFIED IDEOGRAPH - ,0x95AC ,0x5674 //CJK UNIFIED IDEOGRAPH - ,0x95AD ,0x58B3 //CJK UNIFIED IDEOGRAPH - ,0x95AE ,0x61A4 //CJK UNIFIED IDEOGRAPH - ,0x95AF ,0x626E //CJK UNIFIED IDEOGRAPH - ,0x95B0 ,0x711A //CJK UNIFIED IDEOGRAPH - ,0x95B1 ,0x596E //CJK UNIFIED IDEOGRAPH - ,0x95B2 ,0x7C89 //CJK UNIFIED IDEOGRAPH - ,0x95B3 ,0x7CDE //CJK UNIFIED IDEOGRAPH - ,0x95B4 ,0x7D1B //CJK UNIFIED IDEOGRAPH - ,0x95B5 ,0x96F0 //CJK UNIFIED IDEOGRAPH - ,0x95B6 ,0x6587 //CJK UNIFIED IDEOGRAPH - ,0x95B7 ,0x805E //CJK UNIFIED IDEOGRAPH - ,0x95B8 ,0x4E19 //CJK UNIFIED IDEOGRAPH - ,0x95B9 ,0x4F75 //CJK UNIFIED IDEOGRAPH - ,0x95BA ,0x5175 //CJK UNIFIED IDEOGRAPH - ,0x95BB ,0x5840 //CJK UNIFIED IDEOGRAPH - ,0x95BC ,0x5E63 //CJK UNIFIED IDEOGRAPH - ,0x95BD ,0x5E73 //CJK UNIFIED IDEOGRAPH - ,0x95BE ,0x5F0A //CJK UNIFIED IDEOGRAPH - ,0x95BF ,0x67C4 //CJK UNIFIED IDEOGRAPH - ,0x95C0 ,0x4E26 //CJK UNIFIED IDEOGRAPH - ,0x95C1 ,0x853D //CJK UNIFIED IDEOGRAPH - ,0x95C2 ,0x9589 //CJK UNIFIED IDEOGRAPH - ,0x95C3 ,0x965B //CJK UNIFIED IDEOGRAPH - ,0x95C4 ,0x7C73 //CJK UNIFIED IDEOGRAPH - ,0x95C5 ,0x9801 //CJK UNIFIED IDEOGRAPH - ,0x95C6 ,0x50FB //CJK UNIFIED IDEOGRAPH - ,0x95C7 ,0x58C1 //CJK UNIFIED IDEOGRAPH - ,0x95C8 ,0x7656 //CJK UNIFIED IDEOGRAPH - ,0x95C9 ,0x78A7 //CJK UNIFIED IDEOGRAPH - ,0x95CA ,0x5225 //CJK UNIFIED IDEOGRAPH - ,0x95CB ,0x77A5 //CJK UNIFIED IDEOGRAPH - ,0x95CC ,0x8511 //CJK UNIFIED IDEOGRAPH - ,0x95CD ,0x7B86 //CJK UNIFIED IDEOGRAPH - ,0x95CE ,0x504F //CJK UNIFIED IDEOGRAPH - ,0x95CF ,0x5909 //CJK UNIFIED IDEOGRAPH - ,0x95D0 ,0x7247 //CJK UNIFIED IDEOGRAPH - ,0x95D1 ,0x7BC7 //CJK UNIFIED IDEOGRAPH - ,0x95D2 ,0x7DE8 //CJK UNIFIED IDEOGRAPH - ,0x95D3 ,0x8FBA //CJK UNIFIED IDEOGRAPH - ,0x95D4 ,0x8FD4 //CJK UNIFIED IDEOGRAPH - ,0x95D5 ,0x904D //CJK UNIFIED IDEOGRAPH - ,0x95D6 ,0x4FBF //CJK UNIFIED IDEOGRAPH - ,0x95D7 ,0x52C9 //CJK UNIFIED IDEOGRAPH - ,0x95D8 ,0x5A29 //CJK UNIFIED IDEOGRAPH - ,0x95D9 ,0x5F01 //CJK UNIFIED IDEOGRAPH - ,0x95DA ,0x97AD //CJK UNIFIED IDEOGRAPH - ,0x95DB ,0x4FDD //CJK UNIFIED IDEOGRAPH - ,0x95DC ,0x8217 //CJK UNIFIED IDEOGRAPH - ,0x95DD ,0x92EA //CJK UNIFIED IDEOGRAPH - ,0x95DE ,0x5703 //CJK UNIFIED IDEOGRAPH - ,0x95DF ,0x6355 //CJK UNIFIED IDEOGRAPH - ,0x95E0 ,0x6B69 //CJK UNIFIED IDEOGRAPH - ,0x95E1 ,0x752B //CJK UNIFIED IDEOGRAPH - ,0x95E2 ,0x88DC //CJK UNIFIED IDEOGRAPH - ,0x95E3 ,0x8F14 //CJK UNIFIED IDEOGRAPH - ,0x95E4 ,0x7A42 //CJK UNIFIED IDEOGRAPH - ,0x95E5 ,0x52DF //CJK UNIFIED IDEOGRAPH - ,0x95E6 ,0x5893 //CJK UNIFIED IDEOGRAPH - ,0x95E7 ,0x6155 //CJK UNIFIED IDEOGRAPH - ,0x95E8 ,0x620A //CJK UNIFIED IDEOGRAPH - ,0x95E9 ,0x66AE //CJK UNIFIED IDEOGRAPH - ,0x95EA ,0x6BCD //CJK UNIFIED IDEOGRAPH - ,0x95EB ,0x7C3F //CJK UNIFIED IDEOGRAPH - ,0x95EC ,0x83E9 //CJK UNIFIED IDEOGRAPH - ,0x95ED ,0x5023 //CJK UNIFIED IDEOGRAPH - ,0x95EE ,0x4FF8 //CJK UNIFIED IDEOGRAPH - ,0x95EF ,0x5305 //CJK UNIFIED IDEOGRAPH - ,0x95F0 ,0x5446 //CJK UNIFIED IDEOGRAPH - ,0x95F1 ,0x5831 //CJK UNIFIED IDEOGRAPH - ,0x95F2 ,0x5949 //CJK UNIFIED IDEOGRAPH - ,0x95F3 ,0x5B9D //CJK UNIFIED IDEOGRAPH - ,0x95F4 ,0x5CF0 //CJK UNIFIED IDEOGRAPH - ,0x95F5 ,0x5CEF //CJK UNIFIED IDEOGRAPH - ,0x95F6 ,0x5D29 //CJK UNIFIED IDEOGRAPH - ,0x95F7 ,0x5E96 //CJK UNIFIED IDEOGRAPH - ,0x95F8 ,0x62B1 //CJK UNIFIED IDEOGRAPH - ,0x95F9 ,0x6367 //CJK UNIFIED IDEOGRAPH - ,0x95FA ,0x653E //CJK UNIFIED IDEOGRAPH - ,0x95FB ,0x65B9 //CJK UNIFIED IDEOGRAPH - ,0x95FC ,0x670B //CJK UNIFIED IDEOGRAPH - ,0x9640 ,0x6CD5 //CJK UNIFIED IDEOGRAPH - ,0x9641 ,0x6CE1 //CJK UNIFIED IDEOGRAPH - ,0x9642 ,0x70F9 //CJK UNIFIED IDEOGRAPH - ,0x9643 ,0x7832 //CJK UNIFIED IDEOGRAPH - ,0x9644 ,0x7E2B //CJK UNIFIED IDEOGRAPH - ,0x9645 ,0x80DE //CJK UNIFIED IDEOGRAPH - ,0x9646 ,0x82B3 //CJK UNIFIED IDEOGRAPH - ,0x9647 ,0x840C //CJK UNIFIED IDEOGRAPH - ,0x9648 ,0x84EC //CJK UNIFIED IDEOGRAPH - ,0x9649 ,0x8702 //CJK UNIFIED IDEOGRAPH - ,0x964A ,0x8912 //CJK UNIFIED IDEOGRAPH - ,0x964B ,0x8A2A //CJK UNIFIED IDEOGRAPH - ,0x964C ,0x8C4A //CJK UNIFIED IDEOGRAPH - ,0x964D ,0x90A6 //CJK UNIFIED IDEOGRAPH - ,0x964E ,0x92D2 //CJK UNIFIED IDEOGRAPH - ,0x964F ,0x98FD //CJK UNIFIED IDEOGRAPH - ,0x9650 ,0x9CF3 //CJK UNIFIED IDEOGRAPH - ,0x9651 ,0x9D6C //CJK UNIFIED IDEOGRAPH - ,0x9652 ,0x4E4F //CJK UNIFIED IDEOGRAPH - ,0x9653 ,0x4EA1 //CJK UNIFIED IDEOGRAPH - ,0x9654 ,0x508D //CJK UNIFIED IDEOGRAPH - ,0x9655 ,0x5256 //CJK UNIFIED IDEOGRAPH - ,0x9656 ,0x574A //CJK UNIFIED IDEOGRAPH - ,0x9657 ,0x59A8 //CJK UNIFIED IDEOGRAPH - ,0x9658 ,0x5E3D //CJK UNIFIED IDEOGRAPH - ,0x9659 ,0x5FD8 //CJK UNIFIED IDEOGRAPH - ,0x965A ,0x5FD9 //CJK UNIFIED IDEOGRAPH - ,0x965B ,0x623F //CJK UNIFIED IDEOGRAPH - ,0x965C ,0x66B4 //CJK UNIFIED IDEOGRAPH - ,0x965D ,0x671B //CJK UNIFIED IDEOGRAPH - ,0x965E ,0x67D0 //CJK UNIFIED IDEOGRAPH - ,0x965F ,0x68D2 //CJK UNIFIED IDEOGRAPH - ,0x9660 ,0x5192 //CJK UNIFIED IDEOGRAPH - ,0x9661 ,0x7D21 //CJK UNIFIED IDEOGRAPH - ,0x9662 ,0x80AA //CJK UNIFIED IDEOGRAPH - ,0x9663 ,0x81A8 //CJK UNIFIED IDEOGRAPH - ,0x9664 ,0x8B00 //CJK UNIFIED IDEOGRAPH - ,0x9665 ,0x8C8C //CJK UNIFIED IDEOGRAPH - ,0x9666 ,0x8CBF //CJK UNIFIED IDEOGRAPH - ,0x9667 ,0x927E //CJK UNIFIED IDEOGRAPH - ,0x9668 ,0x9632 //CJK UNIFIED IDEOGRAPH - ,0x9669 ,0x5420 //CJK UNIFIED IDEOGRAPH - ,0x966A ,0x982C //CJK UNIFIED IDEOGRAPH - ,0x966B ,0x5317 //CJK UNIFIED IDEOGRAPH - ,0x966C ,0x50D5 //CJK UNIFIED IDEOGRAPH - ,0x966D ,0x535C //CJK UNIFIED IDEOGRAPH - ,0x966E ,0x58A8 //CJK UNIFIED IDEOGRAPH - ,0x966F ,0x64B2 //CJK UNIFIED IDEOGRAPH - ,0x9670 ,0x6734 //CJK UNIFIED IDEOGRAPH - ,0x9671 ,0x7267 //CJK UNIFIED IDEOGRAPH - ,0x9672 ,0x7766 //CJK UNIFIED IDEOGRAPH - ,0x9673 ,0x7A46 //CJK UNIFIED IDEOGRAPH - ,0x9674 ,0x91E6 //CJK UNIFIED IDEOGRAPH - ,0x9675 ,0x52C3 //CJK UNIFIED IDEOGRAPH - ,0x9676 ,0x6CA1 //CJK UNIFIED IDEOGRAPH - ,0x9677 ,0x6B86 //CJK UNIFIED IDEOGRAPH - ,0x9678 ,0x5800 //CJK UNIFIED IDEOGRAPH - ,0x9679 ,0x5E4C //CJK UNIFIED IDEOGRAPH - ,0x967A ,0x5954 //CJK UNIFIED IDEOGRAPH - ,0x967B ,0x672C //CJK UNIFIED IDEOGRAPH - ,0x967C ,0x7FFB //CJK UNIFIED IDEOGRAPH - ,0x967D ,0x51E1 //CJK UNIFIED IDEOGRAPH - ,0x967E ,0x76C6 //CJK UNIFIED IDEOGRAPH - ,0x9680 ,0x6469 //CJK UNIFIED IDEOGRAPH - ,0x9681 ,0x78E8 //CJK UNIFIED IDEOGRAPH - ,0x9682 ,0x9B54 //CJK UNIFIED IDEOGRAPH - ,0x9683 ,0x9EBB //CJK UNIFIED IDEOGRAPH - ,0x9684 ,0x57CB //CJK UNIFIED IDEOGRAPH - ,0x9685 ,0x59B9 //CJK UNIFIED IDEOGRAPH - ,0x9686 ,0x6627 //CJK UNIFIED IDEOGRAPH - ,0x9687 ,0x679A //CJK UNIFIED IDEOGRAPH - ,0x9688 ,0x6BCE //CJK UNIFIED IDEOGRAPH - ,0x9689 ,0x54E9 //CJK UNIFIED IDEOGRAPH - ,0x968A ,0x69D9 //CJK UNIFIED IDEOGRAPH - ,0x968B ,0x5E55 //CJK UNIFIED IDEOGRAPH - ,0x968C ,0x819C //CJK UNIFIED IDEOGRAPH - ,0x968D ,0x6795 //CJK UNIFIED IDEOGRAPH - ,0x968E ,0x9BAA //CJK UNIFIED IDEOGRAPH - ,0x968F ,0x67FE //CJK UNIFIED IDEOGRAPH - ,0x9690 ,0x9C52 //CJK UNIFIED IDEOGRAPH - ,0x9691 ,0x685D //CJK UNIFIED IDEOGRAPH - ,0x9692 ,0x4EA6 //CJK UNIFIED IDEOGRAPH - ,0x9693 ,0x4FE3 //CJK UNIFIED IDEOGRAPH - ,0x9694 ,0x53C8 //CJK UNIFIED IDEOGRAPH - ,0x9695 ,0x62B9 //CJK UNIFIED IDEOGRAPH - ,0x9696 ,0x672B //CJK UNIFIED IDEOGRAPH - ,0x9697 ,0x6CAB //CJK UNIFIED IDEOGRAPH - ,0x9698 ,0x8FC4 //CJK UNIFIED IDEOGRAPH - ,0x9699 ,0x4FAD //CJK UNIFIED IDEOGRAPH - ,0x969A ,0x7E6D //CJK UNIFIED IDEOGRAPH - ,0x969B ,0x9EBF //CJK UNIFIED IDEOGRAPH - ,0x969C ,0x4E07 //CJK UNIFIED IDEOGRAPH - ,0x969D ,0x6162 //CJK UNIFIED IDEOGRAPH - ,0x969E ,0x6E80 //CJK UNIFIED IDEOGRAPH - ,0x969F ,0x6F2B //CJK UNIFIED IDEOGRAPH - ,0x96A0 ,0x8513 //CJK UNIFIED IDEOGRAPH - ,0x96A1 ,0x5473 //CJK UNIFIED IDEOGRAPH - ,0x96A2 ,0x672A //CJK UNIFIED IDEOGRAPH - ,0x96A3 ,0x9B45 //CJK UNIFIED IDEOGRAPH - ,0x96A4 ,0x5DF3 //CJK UNIFIED IDEOGRAPH - ,0x96A5 ,0x7B95 //CJK UNIFIED IDEOGRAPH - ,0x96A6 ,0x5CAC //CJK UNIFIED IDEOGRAPH - ,0x96A7 ,0x5BC6 //CJK UNIFIED IDEOGRAPH - ,0x96A8 ,0x871C //CJK UNIFIED IDEOGRAPH - ,0x96A9 ,0x6E4A //CJK UNIFIED IDEOGRAPH - ,0x96AA ,0x84D1 //CJK UNIFIED IDEOGRAPH - ,0x96AB ,0x7A14 //CJK UNIFIED IDEOGRAPH - ,0x96AC ,0x8108 //CJK UNIFIED IDEOGRAPH - ,0x96AD ,0x5999 //CJK UNIFIED IDEOGRAPH - ,0x96AE ,0x7C8D //CJK UNIFIED IDEOGRAPH - ,0x96AF ,0x6C11 //CJK UNIFIED IDEOGRAPH - ,0x96B0 ,0x7720 //CJK UNIFIED IDEOGRAPH - ,0x96B1 ,0x52D9 //CJK UNIFIED IDEOGRAPH - ,0x96B2 ,0x5922 //CJK UNIFIED IDEOGRAPH - ,0x96B3 ,0x7121 //CJK UNIFIED IDEOGRAPH - ,0x96B4 ,0x725F //CJK UNIFIED IDEOGRAPH - ,0x96B5 ,0x77DB //CJK UNIFIED IDEOGRAPH - ,0x96B6 ,0x9727 //CJK UNIFIED IDEOGRAPH - ,0x96B7 ,0x9D61 //CJK UNIFIED IDEOGRAPH - ,0x96B8 ,0x690B //CJK UNIFIED IDEOGRAPH - ,0x96B9 ,0x5A7F //CJK UNIFIED IDEOGRAPH - ,0x96BA ,0x5A18 //CJK UNIFIED IDEOGRAPH - ,0x96BB ,0x51A5 //CJK UNIFIED IDEOGRAPH - ,0x96BC ,0x540D //CJK UNIFIED IDEOGRAPH - ,0x96BD ,0x547D //CJK UNIFIED IDEOGRAPH - ,0x96BE ,0x660E //CJK UNIFIED IDEOGRAPH - ,0x96BF ,0x76DF //CJK UNIFIED IDEOGRAPH - ,0x96C0 ,0x8FF7 //CJK UNIFIED IDEOGRAPH - ,0x96C1 ,0x9298 //CJK UNIFIED IDEOGRAPH - ,0x96C2 ,0x9CF4 //CJK UNIFIED IDEOGRAPH - ,0x96C3 ,0x59EA //CJK UNIFIED IDEOGRAPH - ,0x96C4 ,0x725D //CJK UNIFIED IDEOGRAPH - ,0x96C5 ,0x6EC5 //CJK UNIFIED IDEOGRAPH - ,0x96C6 ,0x514D //CJK UNIFIED IDEOGRAPH - ,0x96C7 ,0x68C9 //CJK UNIFIED IDEOGRAPH - ,0x96C8 ,0x7DBF //CJK UNIFIED IDEOGRAPH - ,0x96C9 ,0x7DEC //CJK UNIFIED IDEOGRAPH - ,0x96CA ,0x9762 //CJK UNIFIED IDEOGRAPH - ,0x96CB ,0x9EBA //CJK UNIFIED IDEOGRAPH - ,0x96CC ,0x6478 //CJK UNIFIED IDEOGRAPH - ,0x96CD ,0x6A21 //CJK UNIFIED IDEOGRAPH - ,0x96CE ,0x8302 //CJK UNIFIED IDEOGRAPH - ,0x96CF ,0x5984 //CJK UNIFIED IDEOGRAPH - ,0x96D0 ,0x5B5F //CJK UNIFIED IDEOGRAPH - ,0x96D1 ,0x6BDB //CJK UNIFIED IDEOGRAPH - ,0x96D2 ,0x731B //CJK UNIFIED IDEOGRAPH - ,0x96D3 ,0x76F2 //CJK UNIFIED IDEOGRAPH - ,0x96D4 ,0x7DB2 //CJK UNIFIED IDEOGRAPH - ,0x96D5 ,0x8017 //CJK UNIFIED IDEOGRAPH - ,0x96D6 ,0x8499 //CJK UNIFIED IDEOGRAPH - ,0x96D7 ,0x5132 //CJK UNIFIED IDEOGRAPH - ,0x96D8 ,0x6728 //CJK UNIFIED IDEOGRAPH - ,0x96D9 ,0x9ED9 //CJK UNIFIED IDEOGRAPH - ,0x96DA ,0x76EE //CJK UNIFIED IDEOGRAPH - ,0x96DB ,0x6762 //CJK UNIFIED IDEOGRAPH - ,0x96DC ,0x52FF //CJK UNIFIED IDEOGRAPH - ,0x96DD ,0x9905 //CJK UNIFIED IDEOGRAPH - ,0x96DE ,0x5C24 //CJK UNIFIED IDEOGRAPH - ,0x96DF ,0x623B //CJK UNIFIED IDEOGRAPH - ,0x96E0 ,0x7C7E //CJK UNIFIED IDEOGRAPH - ,0x96E1 ,0x8CB0 //CJK UNIFIED IDEOGRAPH - ,0x96E2 ,0x554F //CJK UNIFIED IDEOGRAPH - ,0x96E3 ,0x60B6 //CJK UNIFIED IDEOGRAPH - ,0x96E4 ,0x7D0B //CJK UNIFIED IDEOGRAPH - ,0x96E5 ,0x9580 //CJK UNIFIED IDEOGRAPH - ,0x96E6 ,0x5301 //CJK UNIFIED IDEOGRAPH - ,0x96E7 ,0x4E5F //CJK UNIFIED IDEOGRAPH - ,0x96E8 ,0x51B6 //CJK UNIFIED IDEOGRAPH - ,0x96E9 ,0x591C //CJK UNIFIED IDEOGRAPH - ,0x96EA ,0x723A //CJK UNIFIED IDEOGRAPH - ,0x96EB ,0x8036 //CJK UNIFIED IDEOGRAPH - ,0x96EC ,0x91CE //CJK UNIFIED IDEOGRAPH - ,0x96ED ,0x5F25 //CJK UNIFIED IDEOGRAPH - ,0x96EE ,0x77E2 //CJK UNIFIED IDEOGRAPH - ,0x96EF ,0x5384 //CJK UNIFIED IDEOGRAPH - ,0x96F0 ,0x5F79 //CJK UNIFIED IDEOGRAPH - ,0x96F1 ,0x7D04 //CJK UNIFIED IDEOGRAPH - ,0x96F2 ,0x85AC //CJK UNIFIED IDEOGRAPH - ,0x96F3 ,0x8A33 //CJK UNIFIED IDEOGRAPH - ,0x96F4 ,0x8E8D //CJK UNIFIED IDEOGRAPH - ,0x96F5 ,0x9756 //CJK UNIFIED IDEOGRAPH - ,0x96F6 ,0x67F3 //CJK UNIFIED IDEOGRAPH - ,0x96F7 ,0x85AE //CJK UNIFIED IDEOGRAPH - ,0x96F8 ,0x9453 //CJK UNIFIED IDEOGRAPH - ,0x96F9 ,0x6109 //CJK UNIFIED IDEOGRAPH - ,0x96FA ,0x6108 //CJK UNIFIED IDEOGRAPH - ,0x96FB ,0x6CB9 //CJK UNIFIED IDEOGRAPH - ,0x96FC ,0x7652 //CJK UNIFIED IDEOGRAPH - ,0x9740 ,0x8AED //CJK UNIFIED IDEOGRAPH - ,0x9741 ,0x8F38 //CJK UNIFIED IDEOGRAPH - ,0x9742 ,0x552F //CJK UNIFIED IDEOGRAPH - ,0x9743 ,0x4F51 //CJK UNIFIED IDEOGRAPH - ,0x9744 ,0x512A //CJK UNIFIED IDEOGRAPH - ,0x9745 ,0x52C7 //CJK UNIFIED IDEOGRAPH - ,0x9746 ,0x53CB //CJK UNIFIED IDEOGRAPH - ,0x9747 ,0x5BA5 //CJK UNIFIED IDEOGRAPH - ,0x9748 ,0x5E7D //CJK UNIFIED IDEOGRAPH - ,0x9749 ,0x60A0 //CJK UNIFIED IDEOGRAPH - ,0x974A ,0x6182 //CJK UNIFIED IDEOGRAPH - ,0x974B ,0x63D6 //CJK UNIFIED IDEOGRAPH - ,0x974C ,0x6709 //CJK UNIFIED IDEOGRAPH - ,0x974D ,0x67DA //CJK UNIFIED IDEOGRAPH - ,0x974E ,0x6E67 //CJK UNIFIED IDEOGRAPH - ,0x974F ,0x6D8C //CJK UNIFIED IDEOGRAPH - ,0x9750 ,0x7336 //CJK UNIFIED IDEOGRAPH - ,0x9751 ,0x7337 //CJK UNIFIED IDEOGRAPH - ,0x9752 ,0x7531 //CJK UNIFIED IDEOGRAPH - ,0x9753 ,0x7950 //CJK UNIFIED IDEOGRAPH - ,0x9754 ,0x88D5 //CJK UNIFIED IDEOGRAPH - ,0x9755 ,0x8A98 //CJK UNIFIED IDEOGRAPH - ,0x9756 ,0x904A //CJK UNIFIED IDEOGRAPH - ,0x9757 ,0x9091 //CJK UNIFIED IDEOGRAPH - ,0x9758 ,0x90F5 //CJK UNIFIED IDEOGRAPH - ,0x9759 ,0x96C4 //CJK UNIFIED IDEOGRAPH - ,0x975A ,0x878D //CJK UNIFIED IDEOGRAPH - ,0x975B ,0x5915 //CJK UNIFIED IDEOGRAPH - ,0x975C ,0x4E88 //CJK UNIFIED IDEOGRAPH - ,0x975D ,0x4F59 //CJK UNIFIED IDEOGRAPH - ,0x975E ,0x4E0E //CJK UNIFIED IDEOGRAPH - ,0x975F ,0x8A89 //CJK UNIFIED IDEOGRAPH - ,0x9760 ,0x8F3F //CJK UNIFIED IDEOGRAPH - ,0x9761 ,0x9810 //CJK UNIFIED IDEOGRAPH - ,0x9762 ,0x50AD //CJK UNIFIED IDEOGRAPH - ,0x9763 ,0x5E7C //CJK UNIFIED IDEOGRAPH - ,0x9764 ,0x5996 //CJK UNIFIED IDEOGRAPH - ,0x9765 ,0x5BB9 //CJK UNIFIED IDEOGRAPH - ,0x9766 ,0x5EB8 //CJK UNIFIED IDEOGRAPH - ,0x9767 ,0x63DA //CJK UNIFIED IDEOGRAPH - ,0x9768 ,0x63FA //CJK UNIFIED IDEOGRAPH - ,0x9769 ,0x64C1 //CJK UNIFIED IDEOGRAPH - ,0x976A ,0x66DC //CJK UNIFIED IDEOGRAPH - ,0x976B ,0x694A //CJK UNIFIED IDEOGRAPH - ,0x976C ,0x69D8 //CJK UNIFIED IDEOGRAPH - ,0x976D ,0x6D0B //CJK UNIFIED IDEOGRAPH - ,0x976E ,0x6EB6 //CJK UNIFIED IDEOGRAPH - ,0x976F ,0x7194 //CJK UNIFIED IDEOGRAPH - ,0x9770 ,0x7528 //CJK UNIFIED IDEOGRAPH - ,0x9771 ,0x7AAF //CJK UNIFIED IDEOGRAPH - ,0x9772 ,0x7F8A //CJK UNIFIED IDEOGRAPH - ,0x9773 ,0x8000 //CJK UNIFIED IDEOGRAPH - ,0x9774 ,0x8449 //CJK UNIFIED IDEOGRAPH - ,0x9775 ,0x84C9 //CJK UNIFIED IDEOGRAPH - ,0x9776 ,0x8981 //CJK UNIFIED IDEOGRAPH - ,0x9777 ,0x8B21 //CJK UNIFIED IDEOGRAPH - ,0x9778 ,0x8E0A //CJK UNIFIED IDEOGRAPH - ,0x9779 ,0x9065 //CJK UNIFIED IDEOGRAPH - ,0x977A ,0x967D //CJK UNIFIED IDEOGRAPH - ,0x977B ,0x990A //CJK UNIFIED IDEOGRAPH - ,0x977C ,0x617E //CJK UNIFIED IDEOGRAPH - ,0x977D ,0x6291 //CJK UNIFIED IDEOGRAPH - ,0x977E ,0x6B32 //CJK UNIFIED IDEOGRAPH - ,0x9780 ,0x6C83 //CJK UNIFIED IDEOGRAPH - ,0x9781 ,0x6D74 //CJK UNIFIED IDEOGRAPH - ,0x9782 ,0x7FCC //CJK UNIFIED IDEOGRAPH - ,0x9783 ,0x7FFC //CJK UNIFIED IDEOGRAPH - ,0x9784 ,0x6DC0 //CJK UNIFIED IDEOGRAPH - ,0x9785 ,0x7F85 //CJK UNIFIED IDEOGRAPH - ,0x9786 ,0x87BA //CJK UNIFIED IDEOGRAPH - ,0x9787 ,0x88F8 //CJK UNIFIED IDEOGRAPH - ,0x9788 ,0x6765 //CJK UNIFIED IDEOGRAPH - ,0x9789 ,0x83B1 //CJK UNIFIED IDEOGRAPH - ,0x978A ,0x983C //CJK UNIFIED IDEOGRAPH - ,0x978B ,0x96F7 //CJK UNIFIED IDEOGRAPH - ,0x978C ,0x6D1B //CJK UNIFIED IDEOGRAPH - ,0x978D ,0x7D61 //CJK UNIFIED IDEOGRAPH - ,0x978E ,0x843D //CJK UNIFIED IDEOGRAPH - ,0x978F ,0x916A //CJK UNIFIED IDEOGRAPH - ,0x9790 ,0x4E71 //CJK UNIFIED IDEOGRAPH - ,0x9791 ,0x5375 //CJK UNIFIED IDEOGRAPH - ,0x9792 ,0x5D50 //CJK UNIFIED IDEOGRAPH - ,0x9793 ,0x6B04 //CJK UNIFIED IDEOGRAPH - ,0x9794 ,0x6FEB //CJK UNIFIED IDEOGRAPH - ,0x9795 ,0x85CD //CJK UNIFIED IDEOGRAPH - ,0x9796 ,0x862D //CJK UNIFIED IDEOGRAPH - ,0x9797 ,0x89A7 //CJK UNIFIED IDEOGRAPH - ,0x9798 ,0x5229 //CJK UNIFIED IDEOGRAPH - ,0x9799 ,0x540F //CJK UNIFIED IDEOGRAPH - ,0x979A ,0x5C65 //CJK UNIFIED IDEOGRAPH - ,0x979B ,0x674E //CJK UNIFIED IDEOGRAPH - ,0x979C ,0x68A8 //CJK UNIFIED IDEOGRAPH - ,0x979D ,0x7406 //CJK UNIFIED IDEOGRAPH - ,0x979E ,0x7483 //CJK UNIFIED IDEOGRAPH - ,0x979F ,0x75E2 //CJK UNIFIED IDEOGRAPH - ,0x97A0 ,0x88CF //CJK UNIFIED IDEOGRAPH - ,0x97A1 ,0x88E1 //CJK UNIFIED IDEOGRAPH - ,0x97A2 ,0x91CC //CJK UNIFIED IDEOGRAPH - ,0x97A3 ,0x96E2 //CJK UNIFIED IDEOGRAPH - ,0x97A4 ,0x9678 //CJK UNIFIED IDEOGRAPH - ,0x97A5 ,0x5F8B //CJK UNIFIED IDEOGRAPH - ,0x97A6 ,0x7387 //CJK UNIFIED IDEOGRAPH - ,0x97A7 ,0x7ACB //CJK UNIFIED IDEOGRAPH - ,0x97A8 ,0x844E //CJK UNIFIED IDEOGRAPH - ,0x97A9 ,0x63A0 //CJK UNIFIED IDEOGRAPH - ,0x97AA ,0x7565 //CJK UNIFIED IDEOGRAPH - ,0x97AB ,0x5289 //CJK UNIFIED IDEOGRAPH - ,0x97AC ,0x6D41 //CJK UNIFIED IDEOGRAPH - ,0x97AD ,0x6E9C //CJK UNIFIED IDEOGRAPH - ,0x97AE ,0x7409 //CJK UNIFIED IDEOGRAPH - ,0x97AF ,0x7559 //CJK UNIFIED IDEOGRAPH - ,0x97B0 ,0x786B //CJK UNIFIED IDEOGRAPH - ,0x97B1 ,0x7C92 //CJK UNIFIED IDEOGRAPH - ,0x97B2 ,0x9686 //CJK UNIFIED IDEOGRAPH - ,0x97B3 ,0x7ADC //CJK UNIFIED IDEOGRAPH - ,0x97B4 ,0x9F8D //CJK UNIFIED IDEOGRAPH - ,0x97B5 ,0x4FB6 //CJK UNIFIED IDEOGRAPH - ,0x97B6 ,0x616E //CJK UNIFIED IDEOGRAPH - ,0x97B7 ,0x65C5 //CJK UNIFIED IDEOGRAPH - ,0x97B8 ,0x865C //CJK UNIFIED IDEOGRAPH - ,0x97B9 ,0x4E86 //CJK UNIFIED IDEOGRAPH - ,0x97BA ,0x4EAE //CJK UNIFIED IDEOGRAPH - ,0x97BB ,0x50DA //CJK UNIFIED IDEOGRAPH - ,0x97BC ,0x4E21 //CJK UNIFIED IDEOGRAPH - ,0x97BD ,0x51CC //CJK UNIFIED IDEOGRAPH - ,0x97BE ,0x5BEE //CJK UNIFIED IDEOGRAPH - ,0x97BF ,0x6599 //CJK UNIFIED IDEOGRAPH - ,0x97C0 ,0x6881 //CJK UNIFIED IDEOGRAPH - ,0x97C1 ,0x6DBC //CJK UNIFIED IDEOGRAPH - ,0x97C2 ,0x731F //CJK UNIFIED IDEOGRAPH - ,0x97C3 ,0x7642 //CJK UNIFIED IDEOGRAPH - ,0x97C4 ,0x77AD //CJK UNIFIED IDEOGRAPH - ,0x97C5 ,0x7A1C //CJK UNIFIED IDEOGRAPH - ,0x97C6 ,0x7CE7 //CJK UNIFIED IDEOGRAPH - ,0x97C7 ,0x826F //CJK UNIFIED IDEOGRAPH - ,0x97C8 ,0x8AD2 //CJK UNIFIED IDEOGRAPH - ,0x97C9 ,0x907C //CJK UNIFIED IDEOGRAPH - ,0x97CA ,0x91CF //CJK UNIFIED IDEOGRAPH - ,0x97CB ,0x9675 //CJK UNIFIED IDEOGRAPH - ,0x97CC ,0x9818 //CJK UNIFIED IDEOGRAPH - ,0x97CD ,0x529B //CJK UNIFIED IDEOGRAPH - ,0x97CE ,0x7DD1 //CJK UNIFIED IDEOGRAPH - ,0x97CF ,0x502B //CJK UNIFIED IDEOGRAPH - ,0x97D0 ,0x5398 //CJK UNIFIED IDEOGRAPH - ,0x97D1 ,0x6797 //CJK UNIFIED IDEOGRAPH - ,0x97D2 ,0x6DCB //CJK UNIFIED IDEOGRAPH - ,0x97D3 ,0x71D0 //CJK UNIFIED IDEOGRAPH - ,0x97D4 ,0x7433 //CJK UNIFIED IDEOGRAPH - ,0x97D5 ,0x81E8 //CJK UNIFIED IDEOGRAPH - ,0x97D6 ,0x8F2A //CJK UNIFIED IDEOGRAPH - ,0x97D7 ,0x96A3 //CJK UNIFIED IDEOGRAPH - ,0x97D8 ,0x9C57 //CJK UNIFIED IDEOGRAPH - ,0x97D9 ,0x9E9F //CJK UNIFIED IDEOGRAPH - ,0x97DA ,0x7460 //CJK UNIFIED IDEOGRAPH - ,0x97DB ,0x5841 //CJK UNIFIED IDEOGRAPH - ,0x97DC ,0x6D99 //CJK UNIFIED IDEOGRAPH - ,0x97DD ,0x7D2F //CJK UNIFIED IDEOGRAPH - ,0x97DE ,0x985E //CJK UNIFIED IDEOGRAPH - ,0x97DF ,0x4EE4 //CJK UNIFIED IDEOGRAPH - ,0x97E0 ,0x4F36 //CJK UNIFIED IDEOGRAPH - ,0x97E1 ,0x4F8B //CJK UNIFIED IDEOGRAPH - ,0x97E2 ,0x51B7 //CJK UNIFIED IDEOGRAPH - ,0x97E3 ,0x52B1 //CJK UNIFIED IDEOGRAPH - ,0x97E4 ,0x5DBA //CJK UNIFIED IDEOGRAPH - ,0x97E5 ,0x601C //CJK UNIFIED IDEOGRAPH - ,0x97E6 ,0x73B2 //CJK UNIFIED IDEOGRAPH - ,0x97E7 ,0x793C //CJK UNIFIED IDEOGRAPH - ,0x97E8 ,0x82D3 //CJK UNIFIED IDEOGRAPH - ,0x97E9 ,0x9234 //CJK UNIFIED IDEOGRAPH - ,0x97EA ,0x96B7 //CJK UNIFIED IDEOGRAPH - ,0x97EB ,0x96F6 //CJK UNIFIED IDEOGRAPH - ,0x97EC ,0x970A //CJK UNIFIED IDEOGRAPH - ,0x97ED ,0x9E97 //CJK UNIFIED IDEOGRAPH - ,0x97EE ,0x9F62 //CJK UNIFIED IDEOGRAPH - ,0x97EF ,0x66A6 //CJK UNIFIED IDEOGRAPH - ,0x97F0 ,0x6B74 //CJK UNIFIED IDEOGRAPH - ,0x97F1 ,0x5217 //CJK UNIFIED IDEOGRAPH - ,0x97F2 ,0x52A3 //CJK UNIFIED IDEOGRAPH - ,0x97F3 ,0x70C8 //CJK UNIFIED IDEOGRAPH - ,0x97F4 ,0x88C2 //CJK UNIFIED IDEOGRAPH - ,0x97F5 ,0x5EC9 //CJK UNIFIED IDEOGRAPH - ,0x97F6 ,0x604B //CJK UNIFIED IDEOGRAPH - ,0x97F7 ,0x6190 //CJK UNIFIED IDEOGRAPH - ,0x97F8 ,0x6F23 //CJK UNIFIED IDEOGRAPH - ,0x97F9 ,0x7149 //CJK UNIFIED IDEOGRAPH - ,0x97FA ,0x7C3E //CJK UNIFIED IDEOGRAPH - ,0x97FB ,0x7DF4 //CJK UNIFIED IDEOGRAPH - ,0x97FC ,0x806F //CJK UNIFIED IDEOGRAPH - ,0x9840 ,0x84EE //CJK UNIFIED IDEOGRAPH - ,0x9841 ,0x9023 //CJK UNIFIED IDEOGRAPH - ,0x9842 ,0x932C //CJK UNIFIED IDEOGRAPH - ,0x9843 ,0x5442 //CJK UNIFIED IDEOGRAPH - ,0x9844 ,0x9B6F //CJK UNIFIED IDEOGRAPH - ,0x9845 ,0x6AD3 //CJK UNIFIED IDEOGRAPH - ,0x9846 ,0x7089 //CJK UNIFIED IDEOGRAPH - ,0x9847 ,0x8CC2 //CJK UNIFIED IDEOGRAPH - ,0x9848 ,0x8DEF //CJK UNIFIED IDEOGRAPH - ,0x9849 ,0x9732 //CJK UNIFIED IDEOGRAPH - ,0x984A ,0x52B4 //CJK UNIFIED IDEOGRAPH - ,0x984B ,0x5A41 //CJK UNIFIED IDEOGRAPH - ,0x984C ,0x5ECA //CJK UNIFIED IDEOGRAPH - ,0x984D ,0x5F04 //CJK UNIFIED IDEOGRAPH - ,0x984E ,0x6717 //CJK UNIFIED IDEOGRAPH - ,0x984F ,0x697C //CJK UNIFIED IDEOGRAPH - ,0x9850 ,0x6994 //CJK UNIFIED IDEOGRAPH - ,0x9851 ,0x6D6A //CJK UNIFIED IDEOGRAPH - ,0x9852 ,0x6F0F //CJK UNIFIED IDEOGRAPH - ,0x9853 ,0x7262 //CJK UNIFIED IDEOGRAPH - ,0x9854 ,0x72FC //CJK UNIFIED IDEOGRAPH - ,0x9855 ,0x7BED //CJK UNIFIED IDEOGRAPH - ,0x9856 ,0x8001 //CJK UNIFIED IDEOGRAPH - ,0x9857 ,0x807E //CJK UNIFIED IDEOGRAPH - ,0x9858 ,0x874B //CJK UNIFIED IDEOGRAPH - ,0x9859 ,0x90CE //CJK UNIFIED IDEOGRAPH - ,0x985A ,0x516D //CJK UNIFIED IDEOGRAPH - ,0x985B ,0x9E93 //CJK UNIFIED IDEOGRAPH - ,0x985C ,0x7984 //CJK UNIFIED IDEOGRAPH - ,0x985D ,0x808B //CJK UNIFIED IDEOGRAPH - ,0x985E ,0x9332 //CJK UNIFIED IDEOGRAPH - ,0x985F ,0x8AD6 //CJK UNIFIED IDEOGRAPH - ,0x9860 ,0x502D //CJK UNIFIED IDEOGRAPH - ,0x9861 ,0x548C //CJK UNIFIED IDEOGRAPH - ,0x9862 ,0x8A71 //CJK UNIFIED IDEOGRAPH - ,0x9863 ,0x6B6A //CJK UNIFIED IDEOGRAPH - ,0x9864 ,0x8CC4 //CJK UNIFIED IDEOGRAPH - ,0x9865 ,0x8107 //CJK UNIFIED IDEOGRAPH - ,0x9866 ,0x60D1 //CJK UNIFIED IDEOGRAPH - ,0x9867 ,0x67A0 //CJK UNIFIED IDEOGRAPH - ,0x9868 ,0x9DF2 //CJK UNIFIED IDEOGRAPH - ,0x9869 ,0x4E99 //CJK UNIFIED IDEOGRAPH - ,0x986A ,0x4E98 //CJK UNIFIED IDEOGRAPH - ,0x986B ,0x9C10 //CJK UNIFIED IDEOGRAPH - ,0x986C ,0x8A6B //CJK UNIFIED IDEOGRAPH - ,0x986D ,0x85C1 //CJK UNIFIED IDEOGRAPH - ,0x986E ,0x8568 //CJK UNIFIED IDEOGRAPH - ,0x986F ,0x6900 //CJK UNIFIED IDEOGRAPH - ,0x9870 ,0x6E7E //CJK UNIFIED IDEOGRAPH - ,0x9871 ,0x7897 //CJK UNIFIED IDEOGRAPH - ,0x9872 ,0x8155 //CJK UNIFIED IDEOGRAPH - ,0x989F ,0x5F0C //CJK UNIFIED IDEOGRAPH - ,0x98A0 ,0x4E10 //CJK UNIFIED IDEOGRAPH - ,0x98A1 ,0x4E15 //CJK UNIFIED IDEOGRAPH - ,0x98A2 ,0x4E2A //CJK UNIFIED IDEOGRAPH - ,0x98A3 ,0x4E31 //CJK UNIFIED IDEOGRAPH - ,0x98A4 ,0x4E36 //CJK UNIFIED IDEOGRAPH - ,0x98A5 ,0x4E3C //CJK UNIFIED IDEOGRAPH - ,0x98A6 ,0x4E3F //CJK UNIFIED IDEOGRAPH - ,0x98A7 ,0x4E42 //CJK UNIFIED IDEOGRAPH - ,0x98A8 ,0x4E56 //CJK UNIFIED IDEOGRAPH - ,0x98A9 ,0x4E58 //CJK UNIFIED IDEOGRAPH - ,0x98AA ,0x4E82 //CJK UNIFIED IDEOGRAPH - ,0x98AB ,0x4E85 //CJK UNIFIED IDEOGRAPH - ,0x98AC ,0x8C6B //CJK UNIFIED IDEOGRAPH - ,0x98AD ,0x4E8A //CJK UNIFIED IDEOGRAPH - ,0x98AE ,0x8212 //CJK UNIFIED IDEOGRAPH - ,0x98AF ,0x5F0D //CJK UNIFIED IDEOGRAPH - ,0x98B0 ,0x4E8E //CJK UNIFIED IDEOGRAPH - ,0x98B1 ,0x4E9E //CJK UNIFIED IDEOGRAPH - ,0x98B2 ,0x4E9F //CJK UNIFIED IDEOGRAPH - ,0x98B3 ,0x4EA0 //CJK UNIFIED IDEOGRAPH - ,0x98B4 ,0x4EA2 //CJK UNIFIED IDEOGRAPH - ,0x98B5 ,0x4EB0 //CJK UNIFIED IDEOGRAPH - ,0x98B6 ,0x4EB3 //CJK UNIFIED IDEOGRAPH - ,0x98B7 ,0x4EB6 //CJK UNIFIED IDEOGRAPH - ,0x98B8 ,0x4ECE //CJK UNIFIED IDEOGRAPH - ,0x98B9 ,0x4ECD //CJK UNIFIED IDEOGRAPH - ,0x98BA ,0x4EC4 //CJK UNIFIED IDEOGRAPH - ,0x98BB ,0x4EC6 //CJK UNIFIED IDEOGRAPH - ,0x98BC ,0x4EC2 //CJK UNIFIED IDEOGRAPH - ,0x98BD ,0x4ED7 //CJK UNIFIED IDEOGRAPH - ,0x98BE ,0x4EDE //CJK UNIFIED IDEOGRAPH - ,0x98BF ,0x4EED //CJK UNIFIED IDEOGRAPH - ,0x98C0 ,0x4EDF //CJK UNIFIED IDEOGRAPH - ,0x98C1 ,0x4EF7 //CJK UNIFIED IDEOGRAPH - ,0x98C2 ,0x4F09 //CJK UNIFIED IDEOGRAPH - ,0x98C3 ,0x4F5A //CJK UNIFIED IDEOGRAPH - ,0x98C4 ,0x4F30 //CJK UNIFIED IDEOGRAPH - ,0x98C5 ,0x4F5B //CJK UNIFIED IDEOGRAPH - ,0x98C6 ,0x4F5D //CJK UNIFIED IDEOGRAPH - ,0x98C7 ,0x4F57 //CJK UNIFIED IDEOGRAPH - ,0x98C8 ,0x4F47 //CJK UNIFIED IDEOGRAPH - ,0x98C9 ,0x4F76 //CJK UNIFIED IDEOGRAPH - ,0x98CA ,0x4F88 //CJK UNIFIED IDEOGRAPH - ,0x98CB ,0x4F8F //CJK UNIFIED IDEOGRAPH - ,0x98CC ,0x4F98 //CJK UNIFIED IDEOGRAPH - ,0x98CD ,0x4F7B //CJK UNIFIED IDEOGRAPH - ,0x98CE ,0x4F69 //CJK UNIFIED IDEOGRAPH - ,0x98CF ,0x4F70 //CJK UNIFIED IDEOGRAPH - ,0x98D0 ,0x4F91 //CJK UNIFIED IDEOGRAPH - ,0x98D1 ,0x4F6F //CJK UNIFIED IDEOGRAPH - ,0x98D2 ,0x4F86 //CJK UNIFIED IDEOGRAPH - ,0x98D3 ,0x4F96 //CJK UNIFIED IDEOGRAPH - ,0x98D4 ,0x5118 //CJK UNIFIED IDEOGRAPH - ,0x98D5 ,0x4FD4 //CJK UNIFIED IDEOGRAPH - ,0x98D6 ,0x4FDF //CJK UNIFIED IDEOGRAPH - ,0x98D7 ,0x4FCE //CJK UNIFIED IDEOGRAPH - ,0x98D8 ,0x4FD8 //CJK UNIFIED IDEOGRAPH - ,0x98D9 ,0x4FDB //CJK UNIFIED IDEOGRAPH - ,0x98DA ,0x4FD1 //CJK UNIFIED IDEOGRAPH - ,0x98DB ,0x4FDA //CJK UNIFIED IDEOGRAPH - ,0x98DC ,0x4FD0 //CJK UNIFIED IDEOGRAPH - ,0x98DD ,0x4FE4 //CJK UNIFIED IDEOGRAPH - ,0x98DE ,0x4FE5 //CJK UNIFIED IDEOGRAPH - ,0x98DF ,0x501A //CJK UNIFIED IDEOGRAPH - ,0x98E0 ,0x5028 //CJK UNIFIED IDEOGRAPH - ,0x98E1 ,0x5014 //CJK UNIFIED IDEOGRAPH - ,0x98E2 ,0x502A //CJK UNIFIED IDEOGRAPH - ,0x98E3 ,0x5025 //CJK UNIFIED IDEOGRAPH - ,0x98E4 ,0x5005 //CJK UNIFIED IDEOGRAPH - ,0x98E5 ,0x4F1C //CJK UNIFIED IDEOGRAPH - ,0x98E6 ,0x4FF6 //CJK UNIFIED IDEOGRAPH - ,0x98E7 ,0x5021 //CJK UNIFIED IDEOGRAPH - ,0x98E8 ,0x5029 //CJK UNIFIED IDEOGRAPH - ,0x98E9 ,0x502C //CJK UNIFIED IDEOGRAPH - ,0x98EA ,0x4FFE //CJK UNIFIED IDEOGRAPH - ,0x98EB ,0x4FEF //CJK UNIFIED IDEOGRAPH - ,0x98EC ,0x5011 //CJK UNIFIED IDEOGRAPH - ,0x98ED ,0x5006 //CJK UNIFIED IDEOGRAPH - ,0x98EE ,0x5043 //CJK UNIFIED IDEOGRAPH - ,0x98EF ,0x5047 //CJK UNIFIED IDEOGRAPH - ,0x98F0 ,0x6703 //CJK UNIFIED IDEOGRAPH - ,0x98F1 ,0x5055 //CJK UNIFIED IDEOGRAPH - ,0x98F2 ,0x5050 //CJK UNIFIED IDEOGRAPH - ,0x98F3 ,0x5048 //CJK UNIFIED IDEOGRAPH - ,0x98F4 ,0x505A //CJK UNIFIED IDEOGRAPH - ,0x98F5 ,0x5056 //CJK UNIFIED IDEOGRAPH - ,0x98F6 ,0x506C //CJK UNIFIED IDEOGRAPH - ,0x98F7 ,0x5078 //CJK UNIFIED IDEOGRAPH - ,0x98F8 ,0x5080 //CJK UNIFIED IDEOGRAPH - ,0x98F9 ,0x509A //CJK UNIFIED IDEOGRAPH - ,0x98FA ,0x5085 //CJK UNIFIED IDEOGRAPH - ,0x98FB ,0x50B4 //CJK UNIFIED IDEOGRAPH - ,0x98FC ,0x50B2 //CJK UNIFIED IDEOGRAPH - ,0x9940 ,0x50C9 //CJK UNIFIED IDEOGRAPH - ,0x9941 ,0x50CA //CJK UNIFIED IDEOGRAPH - ,0x9942 ,0x50B3 //CJK UNIFIED IDEOGRAPH - ,0x9943 ,0x50C2 //CJK UNIFIED IDEOGRAPH - ,0x9944 ,0x50D6 //CJK UNIFIED IDEOGRAPH - ,0x9945 ,0x50DE //CJK UNIFIED IDEOGRAPH - ,0x9946 ,0x50E5 //CJK UNIFIED IDEOGRAPH - ,0x9947 ,0x50ED //CJK UNIFIED IDEOGRAPH - ,0x9948 ,0x50E3 //CJK UNIFIED IDEOGRAPH - ,0x9949 ,0x50EE //CJK UNIFIED IDEOGRAPH - ,0x994A ,0x50F9 //CJK UNIFIED IDEOGRAPH - ,0x994B ,0x50F5 //CJK UNIFIED IDEOGRAPH - ,0x994C ,0x5109 //CJK UNIFIED IDEOGRAPH - ,0x994D ,0x5101 //CJK UNIFIED IDEOGRAPH - ,0x994E ,0x5102 //CJK UNIFIED IDEOGRAPH - ,0x994F ,0x5116 //CJK UNIFIED IDEOGRAPH - ,0x9950 ,0x5115 //CJK UNIFIED IDEOGRAPH - ,0x9951 ,0x5114 //CJK UNIFIED IDEOGRAPH - ,0x9952 ,0x511A //CJK UNIFIED IDEOGRAPH - ,0x9953 ,0x5121 //CJK UNIFIED IDEOGRAPH - ,0x9954 ,0x513A //CJK UNIFIED IDEOGRAPH - ,0x9955 ,0x5137 //CJK UNIFIED IDEOGRAPH - ,0x9956 ,0x513C //CJK UNIFIED IDEOGRAPH - ,0x9957 ,0x513B //CJK UNIFIED IDEOGRAPH - ,0x9958 ,0x513F //CJK UNIFIED IDEOGRAPH - ,0x9959 ,0x5140 //CJK UNIFIED IDEOGRAPH - ,0x995A ,0x5152 //CJK UNIFIED IDEOGRAPH - ,0x995B ,0x514C //CJK UNIFIED IDEOGRAPH - ,0x995C ,0x5154 //CJK UNIFIED IDEOGRAPH - ,0x995D ,0x5162 //CJK UNIFIED IDEOGRAPH - ,0x995E ,0x7AF8 //CJK UNIFIED IDEOGRAPH - ,0x995F ,0x5169 //CJK UNIFIED IDEOGRAPH - ,0x9960 ,0x516A //CJK UNIFIED IDEOGRAPH - ,0x9961 ,0x516E //CJK UNIFIED IDEOGRAPH - ,0x9962 ,0x5180 //CJK UNIFIED IDEOGRAPH - ,0x9963 ,0x5182 //CJK UNIFIED IDEOGRAPH - ,0x9964 ,0x56D8 //CJK UNIFIED IDEOGRAPH - ,0x9965 ,0x518C //CJK UNIFIED IDEOGRAPH - ,0x9966 ,0x5189 //CJK UNIFIED IDEOGRAPH - ,0x9967 ,0x518F //CJK UNIFIED IDEOGRAPH - ,0x9968 ,0x5191 //CJK UNIFIED IDEOGRAPH - ,0x9969 ,0x5193 //CJK UNIFIED IDEOGRAPH - ,0x996A ,0x5195 //CJK UNIFIED IDEOGRAPH - ,0x996B ,0x5196 //CJK UNIFIED IDEOGRAPH - ,0x996C ,0x51A4 //CJK UNIFIED IDEOGRAPH - ,0x996D ,0x51A6 //CJK UNIFIED IDEOGRAPH - ,0x996E ,0x51A2 //CJK UNIFIED IDEOGRAPH - ,0x996F ,0x51A9 //CJK UNIFIED IDEOGRAPH - ,0x9970 ,0x51AA //CJK UNIFIED IDEOGRAPH - ,0x9971 ,0x51AB //CJK UNIFIED IDEOGRAPH - ,0x9972 ,0x51B3 //CJK UNIFIED IDEOGRAPH - ,0x9973 ,0x51B1 //CJK UNIFIED IDEOGRAPH - ,0x9974 ,0x51B2 //CJK UNIFIED IDEOGRAPH - ,0x9975 ,0x51B0 //CJK UNIFIED IDEOGRAPH - ,0x9976 ,0x51B5 //CJK UNIFIED IDEOGRAPH - ,0x9977 ,0x51BD //CJK UNIFIED IDEOGRAPH - ,0x9978 ,0x51C5 //CJK UNIFIED IDEOGRAPH - ,0x9979 ,0x51C9 //CJK UNIFIED IDEOGRAPH - ,0x997A ,0x51DB //CJK UNIFIED IDEOGRAPH - ,0x997B ,0x51E0 //CJK UNIFIED IDEOGRAPH - ,0x997C ,0x8655 //CJK UNIFIED IDEOGRAPH - ,0x997D ,0x51E9 //CJK UNIFIED IDEOGRAPH - ,0x997E ,0x51ED //CJK UNIFIED IDEOGRAPH - ,0x9980 ,0x51F0 //CJK UNIFIED IDEOGRAPH - ,0x9981 ,0x51F5 //CJK UNIFIED IDEOGRAPH - ,0x9982 ,0x51FE //CJK UNIFIED IDEOGRAPH - ,0x9983 ,0x5204 //CJK UNIFIED IDEOGRAPH - ,0x9984 ,0x520B //CJK UNIFIED IDEOGRAPH - ,0x9985 ,0x5214 //CJK UNIFIED IDEOGRAPH - ,0x9986 ,0x520E //CJK UNIFIED IDEOGRAPH - ,0x9987 ,0x5227 //CJK UNIFIED IDEOGRAPH - ,0x9988 ,0x522A //CJK UNIFIED IDEOGRAPH - ,0x9989 ,0x522E //CJK UNIFIED IDEOGRAPH - ,0x998A ,0x5233 //CJK UNIFIED IDEOGRAPH - ,0x998B ,0x5239 //CJK UNIFIED IDEOGRAPH - ,0x998C ,0x524F //CJK UNIFIED IDEOGRAPH - ,0x998D ,0x5244 //CJK UNIFIED IDEOGRAPH - ,0x998E ,0x524B //CJK UNIFIED IDEOGRAPH - ,0x998F ,0x524C //CJK UNIFIED IDEOGRAPH - ,0x9990 ,0x525E //CJK UNIFIED IDEOGRAPH - ,0x9991 ,0x5254 //CJK UNIFIED IDEOGRAPH - ,0x9992 ,0x526A //CJK UNIFIED IDEOGRAPH - ,0x9993 ,0x5274 //CJK UNIFIED IDEOGRAPH - ,0x9994 ,0x5269 //CJK UNIFIED IDEOGRAPH - ,0x9995 ,0x5273 //CJK UNIFIED IDEOGRAPH - ,0x9996 ,0x527F //CJK UNIFIED IDEOGRAPH - ,0x9997 ,0x527D //CJK UNIFIED IDEOGRAPH - ,0x9998 ,0x528D //CJK UNIFIED IDEOGRAPH - ,0x9999 ,0x5294 //CJK UNIFIED IDEOGRAPH - ,0x999A ,0x5292 //CJK UNIFIED IDEOGRAPH - ,0x999B ,0x5271 //CJK UNIFIED IDEOGRAPH - ,0x999C ,0x5288 //CJK UNIFIED IDEOGRAPH - ,0x999D ,0x5291 //CJK UNIFIED IDEOGRAPH - ,0x999E ,0x8FA8 //CJK UNIFIED IDEOGRAPH - ,0x999F ,0x8FA7 //CJK UNIFIED IDEOGRAPH - ,0x99A0 ,0x52AC //CJK UNIFIED IDEOGRAPH - ,0x99A1 ,0x52AD //CJK UNIFIED IDEOGRAPH - ,0x99A2 ,0x52BC //CJK UNIFIED IDEOGRAPH - ,0x99A3 ,0x52B5 //CJK UNIFIED IDEOGRAPH - ,0x99A4 ,0x52C1 //CJK UNIFIED IDEOGRAPH - ,0x99A5 ,0x52CD //CJK UNIFIED IDEOGRAPH - ,0x99A6 ,0x52D7 //CJK UNIFIED IDEOGRAPH - ,0x99A7 ,0x52DE //CJK UNIFIED IDEOGRAPH - ,0x99A8 ,0x52E3 //CJK UNIFIED IDEOGRAPH - ,0x99A9 ,0x52E6 //CJK UNIFIED IDEOGRAPH - ,0x99AA ,0x98ED //CJK UNIFIED IDEOGRAPH - ,0x99AB ,0x52E0 //CJK UNIFIED IDEOGRAPH - ,0x99AC ,0x52F3 //CJK UNIFIED IDEOGRAPH - ,0x99AD ,0x52F5 //CJK UNIFIED IDEOGRAPH - ,0x99AE ,0x52F8 //CJK UNIFIED IDEOGRAPH - ,0x99AF ,0x52F9 //CJK UNIFIED IDEOGRAPH - ,0x99B0 ,0x5306 //CJK UNIFIED IDEOGRAPH - ,0x99B1 ,0x5308 //CJK UNIFIED IDEOGRAPH - ,0x99B2 ,0x7538 //CJK UNIFIED IDEOGRAPH - ,0x99B3 ,0x530D //CJK UNIFIED IDEOGRAPH - ,0x99B4 ,0x5310 //CJK UNIFIED IDEOGRAPH - ,0x99B5 ,0x530F //CJK UNIFIED IDEOGRAPH - ,0x99B6 ,0x5315 //CJK UNIFIED IDEOGRAPH - ,0x99B7 ,0x531A //CJK UNIFIED IDEOGRAPH - ,0x99B8 ,0x5323 //CJK UNIFIED IDEOGRAPH - ,0x99B9 ,0x532F //CJK UNIFIED IDEOGRAPH - ,0x99BA ,0x5331 //CJK UNIFIED IDEOGRAPH - ,0x99BB ,0x5333 //CJK UNIFIED IDEOGRAPH - ,0x99BC ,0x5338 //CJK UNIFIED IDEOGRAPH - ,0x99BD ,0x5340 //CJK UNIFIED IDEOGRAPH - ,0x99BE ,0x5346 //CJK UNIFIED IDEOGRAPH - ,0x99BF ,0x5345 //CJK UNIFIED IDEOGRAPH - ,0x99C0 ,0x4E17 //CJK UNIFIED IDEOGRAPH - ,0x99C1 ,0x5349 //CJK UNIFIED IDEOGRAPH - ,0x99C2 ,0x534D //CJK UNIFIED IDEOGRAPH - ,0x99C3 ,0x51D6 //CJK UNIFIED IDEOGRAPH - ,0x99C4 ,0x535E //CJK UNIFIED IDEOGRAPH - ,0x99C5 ,0x5369 //CJK UNIFIED IDEOGRAPH - ,0x99C6 ,0x536E //CJK UNIFIED IDEOGRAPH - ,0x99C7 ,0x5918 //CJK UNIFIED IDEOGRAPH - ,0x99C8 ,0x537B //CJK UNIFIED IDEOGRAPH - ,0x99C9 ,0x5377 //CJK UNIFIED IDEOGRAPH - ,0x99CA ,0x5382 //CJK UNIFIED IDEOGRAPH - ,0x99CB ,0x5396 //CJK UNIFIED IDEOGRAPH - ,0x99CC ,0x53A0 //CJK UNIFIED IDEOGRAPH - ,0x99CD ,0x53A6 //CJK UNIFIED IDEOGRAPH - ,0x99CE ,0x53A5 //CJK UNIFIED IDEOGRAPH - ,0x99CF ,0x53AE //CJK UNIFIED IDEOGRAPH - ,0x99D0 ,0x53B0 //CJK UNIFIED IDEOGRAPH - ,0x99D1 ,0x53B6 //CJK UNIFIED IDEOGRAPH - ,0x99D2 ,0x53C3 //CJK UNIFIED IDEOGRAPH - ,0x99D3 ,0x7C12 //CJK UNIFIED IDEOGRAPH - ,0x99D4 ,0x96D9 //CJK UNIFIED IDEOGRAPH - ,0x99D5 ,0x53DF //CJK UNIFIED IDEOGRAPH - ,0x99D6 ,0x66FC //CJK UNIFIED IDEOGRAPH - ,0x99D7 ,0x71EE //CJK UNIFIED IDEOGRAPH - ,0x99D8 ,0x53EE //CJK UNIFIED IDEOGRAPH - ,0x99D9 ,0x53E8 //CJK UNIFIED IDEOGRAPH - ,0x99DA ,0x53ED //CJK UNIFIED IDEOGRAPH - ,0x99DB ,0x53FA //CJK UNIFIED IDEOGRAPH - ,0x99DC ,0x5401 //CJK UNIFIED IDEOGRAPH - ,0x99DD ,0x543D //CJK UNIFIED IDEOGRAPH - ,0x99DE ,0x5440 //CJK UNIFIED IDEOGRAPH - ,0x99DF ,0x542C //CJK UNIFIED IDEOGRAPH - ,0x99E0 ,0x542D //CJK UNIFIED IDEOGRAPH - ,0x99E1 ,0x543C //CJK UNIFIED IDEOGRAPH - ,0x99E2 ,0x542E //CJK UNIFIED IDEOGRAPH - ,0x99E3 ,0x5436 //CJK UNIFIED IDEOGRAPH - ,0x99E4 ,0x5429 //CJK UNIFIED IDEOGRAPH - ,0x99E5 ,0x541D //CJK UNIFIED IDEOGRAPH - ,0x99E6 ,0x544E //CJK UNIFIED IDEOGRAPH - ,0x99E7 ,0x548F //CJK UNIFIED IDEOGRAPH - ,0x99E8 ,0x5475 //CJK UNIFIED IDEOGRAPH - ,0x99E9 ,0x548E //CJK UNIFIED IDEOGRAPH - ,0x99EA ,0x545F //CJK UNIFIED IDEOGRAPH - ,0x99EB ,0x5471 //CJK UNIFIED IDEOGRAPH - ,0x99EC ,0x5477 //CJK UNIFIED IDEOGRAPH - ,0x99ED ,0x5470 //CJK UNIFIED IDEOGRAPH - ,0x99EE ,0x5492 //CJK UNIFIED IDEOGRAPH - ,0x99EF ,0x547B //CJK UNIFIED IDEOGRAPH - ,0x99F0 ,0x5480 //CJK UNIFIED IDEOGRAPH - ,0x99F1 ,0x5476 //CJK UNIFIED IDEOGRAPH - ,0x99F2 ,0x5484 //CJK UNIFIED IDEOGRAPH - ,0x99F3 ,0x5490 //CJK UNIFIED IDEOGRAPH - ,0x99F4 ,0x5486 //CJK UNIFIED IDEOGRAPH - ,0x99F5 ,0x54C7 //CJK UNIFIED IDEOGRAPH - ,0x99F6 ,0x54A2 //CJK UNIFIED IDEOGRAPH - ,0x99F7 ,0x54B8 //CJK UNIFIED IDEOGRAPH - ,0x99F8 ,0x54A5 //CJK UNIFIED IDEOGRAPH - ,0x99F9 ,0x54AC //CJK UNIFIED IDEOGRAPH - ,0x99FA ,0x54C4 //CJK UNIFIED IDEOGRAPH - ,0x99FB ,0x54C8 //CJK UNIFIED IDEOGRAPH - ,0x99FC ,0x54A8 //CJK UNIFIED IDEOGRAPH - ,0x9A40 ,0x54AB //CJK UNIFIED IDEOGRAPH - ,0x9A41 ,0x54C2 //CJK UNIFIED IDEOGRAPH - ,0x9A42 ,0x54A4 //CJK UNIFIED IDEOGRAPH - ,0x9A43 ,0x54BE //CJK UNIFIED IDEOGRAPH - ,0x9A44 ,0x54BC //CJK UNIFIED IDEOGRAPH - ,0x9A45 ,0x54D8 //CJK UNIFIED IDEOGRAPH - ,0x9A46 ,0x54E5 //CJK UNIFIED IDEOGRAPH - ,0x9A47 ,0x54E6 //CJK UNIFIED IDEOGRAPH - ,0x9A48 ,0x550F //CJK UNIFIED IDEOGRAPH - ,0x9A49 ,0x5514 //CJK UNIFIED IDEOGRAPH - ,0x9A4A ,0x54FD //CJK UNIFIED IDEOGRAPH - ,0x9A4B ,0x54EE //CJK UNIFIED IDEOGRAPH - ,0x9A4C ,0x54ED //CJK UNIFIED IDEOGRAPH - ,0x9A4D ,0x54FA //CJK UNIFIED IDEOGRAPH - ,0x9A4E ,0x54E2 //CJK UNIFIED IDEOGRAPH - ,0x9A4F ,0x5539 //CJK UNIFIED IDEOGRAPH - ,0x9A50 ,0x5540 //CJK UNIFIED IDEOGRAPH - ,0x9A51 ,0x5563 //CJK UNIFIED IDEOGRAPH - ,0x9A52 ,0x554C //CJK UNIFIED IDEOGRAPH - ,0x9A53 ,0x552E //CJK UNIFIED IDEOGRAPH - ,0x9A54 ,0x555C //CJK UNIFIED IDEOGRAPH - ,0x9A55 ,0x5545 //CJK UNIFIED IDEOGRAPH - ,0x9A56 ,0x5556 //CJK UNIFIED IDEOGRAPH - ,0x9A57 ,0x5557 //CJK UNIFIED IDEOGRAPH - ,0x9A58 ,0x5538 //CJK UNIFIED IDEOGRAPH - ,0x9A59 ,0x5533 //CJK UNIFIED IDEOGRAPH - ,0x9A5A ,0x555D //CJK UNIFIED IDEOGRAPH - ,0x9A5B ,0x5599 //CJK UNIFIED IDEOGRAPH - ,0x9A5C ,0x5580 //CJK UNIFIED IDEOGRAPH - ,0x9A5D ,0x54AF //CJK UNIFIED IDEOGRAPH - ,0x9A5E ,0x558A //CJK UNIFIED IDEOGRAPH - ,0x9A5F ,0x559F //CJK UNIFIED IDEOGRAPH - ,0x9A60 ,0x557B //CJK UNIFIED IDEOGRAPH - ,0x9A61 ,0x557E //CJK UNIFIED IDEOGRAPH - ,0x9A62 ,0x5598 //CJK UNIFIED IDEOGRAPH - ,0x9A63 ,0x559E //CJK UNIFIED IDEOGRAPH - ,0x9A64 ,0x55AE //CJK UNIFIED IDEOGRAPH - ,0x9A65 ,0x557C //CJK UNIFIED IDEOGRAPH - ,0x9A66 ,0x5583 //CJK UNIFIED IDEOGRAPH - ,0x9A67 ,0x55A9 //CJK UNIFIED IDEOGRAPH - ,0x9A68 ,0x5587 //CJK UNIFIED IDEOGRAPH - ,0x9A69 ,0x55A8 //CJK UNIFIED IDEOGRAPH - ,0x9A6A ,0x55DA //CJK UNIFIED IDEOGRAPH - ,0x9A6B ,0x55C5 //CJK UNIFIED IDEOGRAPH - ,0x9A6C ,0x55DF //CJK UNIFIED IDEOGRAPH - ,0x9A6D ,0x55C4 //CJK UNIFIED IDEOGRAPH - ,0x9A6E ,0x55DC //CJK UNIFIED IDEOGRAPH - ,0x9A6F ,0x55E4 //CJK UNIFIED IDEOGRAPH - ,0x9A70 ,0x55D4 //CJK UNIFIED IDEOGRAPH - ,0x9A71 ,0x5614 //CJK UNIFIED IDEOGRAPH - ,0x9A72 ,0x55F7 //CJK UNIFIED IDEOGRAPH - ,0x9A73 ,0x5616 //CJK UNIFIED IDEOGRAPH - ,0x9A74 ,0x55FE //CJK UNIFIED IDEOGRAPH - ,0x9A75 ,0x55FD //CJK UNIFIED IDEOGRAPH - ,0x9A76 ,0x561B //CJK UNIFIED IDEOGRAPH - ,0x9A77 ,0x55F9 //CJK UNIFIED IDEOGRAPH - ,0x9A78 ,0x564E //CJK UNIFIED IDEOGRAPH - ,0x9A79 ,0x5650 //CJK UNIFIED IDEOGRAPH - ,0x9A7A ,0x71DF //CJK UNIFIED IDEOGRAPH - ,0x9A7B ,0x5634 //CJK UNIFIED IDEOGRAPH - ,0x9A7C ,0x5636 //CJK UNIFIED IDEOGRAPH - ,0x9A7D ,0x5632 //CJK UNIFIED IDEOGRAPH - ,0x9A7E ,0x5638 //CJK UNIFIED IDEOGRAPH - ,0x9A80 ,0x566B //CJK UNIFIED IDEOGRAPH - ,0x9A81 ,0x5664 //CJK UNIFIED IDEOGRAPH - ,0x9A82 ,0x562F //CJK UNIFIED IDEOGRAPH - ,0x9A83 ,0x566C //CJK UNIFIED IDEOGRAPH - ,0x9A84 ,0x566A //CJK UNIFIED IDEOGRAPH - ,0x9A85 ,0x5686 //CJK UNIFIED IDEOGRAPH - ,0x9A86 ,0x5680 //CJK UNIFIED IDEOGRAPH - ,0x9A87 ,0x568A //CJK UNIFIED IDEOGRAPH - ,0x9A88 ,0x56A0 //CJK UNIFIED IDEOGRAPH - ,0x9A89 ,0x5694 //CJK UNIFIED IDEOGRAPH - ,0x9A8A ,0x568F //CJK UNIFIED IDEOGRAPH - ,0x9A8B ,0x56A5 //CJK UNIFIED IDEOGRAPH - ,0x9A8C ,0x56AE //CJK UNIFIED IDEOGRAPH - ,0x9A8D ,0x56B6 //CJK UNIFIED IDEOGRAPH - ,0x9A8E ,0x56B4 //CJK UNIFIED IDEOGRAPH - ,0x9A8F ,0x56C2 //CJK UNIFIED IDEOGRAPH - ,0x9A90 ,0x56BC //CJK UNIFIED IDEOGRAPH - ,0x9A91 ,0x56C1 //CJK UNIFIED IDEOGRAPH - ,0x9A92 ,0x56C3 //CJK UNIFIED IDEOGRAPH - ,0x9A93 ,0x56C0 //CJK UNIFIED IDEOGRAPH - ,0x9A94 ,0x56C8 //CJK UNIFIED IDEOGRAPH - ,0x9A95 ,0x56CE //CJK UNIFIED IDEOGRAPH - ,0x9A96 ,0x56D1 //CJK UNIFIED IDEOGRAPH - ,0x9A97 ,0x56D3 //CJK UNIFIED IDEOGRAPH - ,0x9A98 ,0x56D7 //CJK UNIFIED IDEOGRAPH - ,0x9A99 ,0x56EE //CJK UNIFIED IDEOGRAPH - ,0x9A9A ,0x56F9 //CJK UNIFIED IDEOGRAPH - ,0x9A9B ,0x5700 //CJK UNIFIED IDEOGRAPH - ,0x9A9C ,0x56FF //CJK UNIFIED IDEOGRAPH - ,0x9A9D ,0x5704 //CJK UNIFIED IDEOGRAPH - ,0x9A9E ,0x5709 //CJK UNIFIED IDEOGRAPH - ,0x9A9F ,0x5708 //CJK UNIFIED IDEOGRAPH - ,0x9AA0 ,0x570B //CJK UNIFIED IDEOGRAPH - ,0x9AA1 ,0x570D //CJK UNIFIED IDEOGRAPH - ,0x9AA2 ,0x5713 //CJK UNIFIED IDEOGRAPH - ,0x9AA3 ,0x5718 //CJK UNIFIED IDEOGRAPH - ,0x9AA4 ,0x5716 //CJK UNIFIED IDEOGRAPH - ,0x9AA5 ,0x55C7 //CJK UNIFIED IDEOGRAPH - ,0x9AA6 ,0x571C //CJK UNIFIED IDEOGRAPH - ,0x9AA7 ,0x5726 //CJK UNIFIED IDEOGRAPH - ,0x9AA8 ,0x5737 //CJK UNIFIED IDEOGRAPH - ,0x9AA9 ,0x5738 //CJK UNIFIED IDEOGRAPH - ,0x9AAA ,0x574E //CJK UNIFIED IDEOGRAPH - ,0x9AAB ,0x573B //CJK UNIFIED IDEOGRAPH - ,0x9AAC ,0x5740 //CJK UNIFIED IDEOGRAPH - ,0x9AAD ,0x574F //CJK UNIFIED IDEOGRAPH - ,0x9AAE ,0x5769 //CJK UNIFIED IDEOGRAPH - ,0x9AAF ,0x57C0 //CJK UNIFIED IDEOGRAPH - ,0x9AB0 ,0x5788 //CJK UNIFIED IDEOGRAPH - ,0x9AB1 ,0x5761 //CJK UNIFIED IDEOGRAPH - ,0x9AB2 ,0x577F //CJK UNIFIED IDEOGRAPH - ,0x9AB3 ,0x5789 //CJK UNIFIED IDEOGRAPH - ,0x9AB4 ,0x5793 //CJK UNIFIED IDEOGRAPH - ,0x9AB5 ,0x57A0 //CJK UNIFIED IDEOGRAPH - ,0x9AB6 ,0x57B3 //CJK UNIFIED IDEOGRAPH - ,0x9AB7 ,0x57A4 //CJK UNIFIED IDEOGRAPH - ,0x9AB8 ,0x57AA //CJK UNIFIED IDEOGRAPH - ,0x9AB9 ,0x57B0 //CJK UNIFIED IDEOGRAPH - ,0x9ABA ,0x57C3 //CJK UNIFIED IDEOGRAPH - ,0x9ABB ,0x57C6 //CJK UNIFIED IDEOGRAPH - ,0x9ABC ,0x57D4 //CJK UNIFIED IDEOGRAPH - ,0x9ABD ,0x57D2 //CJK UNIFIED IDEOGRAPH - ,0x9ABE ,0x57D3 //CJK UNIFIED IDEOGRAPH - ,0x9ABF ,0x580A //CJK UNIFIED IDEOGRAPH - ,0x9AC0 ,0x57D6 //CJK UNIFIED IDEOGRAPH - ,0x9AC1 ,0x57E3 //CJK UNIFIED IDEOGRAPH - ,0x9AC2 ,0x580B //CJK UNIFIED IDEOGRAPH - ,0x9AC3 ,0x5819 //CJK UNIFIED IDEOGRAPH - ,0x9AC4 ,0x581D //CJK UNIFIED IDEOGRAPH - ,0x9AC5 ,0x5872 //CJK UNIFIED IDEOGRAPH - ,0x9AC6 ,0x5821 //CJK UNIFIED IDEOGRAPH - ,0x9AC7 ,0x5862 //CJK UNIFIED IDEOGRAPH - ,0x9AC8 ,0x584B //CJK UNIFIED IDEOGRAPH - ,0x9AC9 ,0x5870 //CJK UNIFIED IDEOGRAPH - ,0x9ACA ,0x6BC0 //CJK UNIFIED IDEOGRAPH - ,0x9ACB ,0x5852 //CJK UNIFIED IDEOGRAPH - ,0x9ACC ,0x583D //CJK UNIFIED IDEOGRAPH - ,0x9ACD ,0x5879 //CJK UNIFIED IDEOGRAPH - ,0x9ACE ,0x5885 //CJK UNIFIED IDEOGRAPH - ,0x9ACF ,0x58B9 //CJK UNIFIED IDEOGRAPH - ,0x9AD0 ,0x589F //CJK UNIFIED IDEOGRAPH - ,0x9AD1 ,0x58AB //CJK UNIFIED IDEOGRAPH - ,0x9AD2 ,0x58BA //CJK UNIFIED IDEOGRAPH - ,0x9AD3 ,0x58DE //CJK UNIFIED IDEOGRAPH - ,0x9AD4 ,0x58BB //CJK UNIFIED IDEOGRAPH - ,0x9AD5 ,0x58B8 //CJK UNIFIED IDEOGRAPH - ,0x9AD6 ,0x58AE //CJK UNIFIED IDEOGRAPH - ,0x9AD7 ,0x58C5 //CJK UNIFIED IDEOGRAPH - ,0x9AD8 ,0x58D3 //CJK UNIFIED IDEOGRAPH - ,0x9AD9 ,0x58D1 //CJK UNIFIED IDEOGRAPH - ,0x9ADA ,0x58D7 //CJK UNIFIED IDEOGRAPH - ,0x9ADB ,0x58D9 //CJK UNIFIED IDEOGRAPH - ,0x9ADC ,0x58D8 //CJK UNIFIED IDEOGRAPH - ,0x9ADD ,0x58E5 //CJK UNIFIED IDEOGRAPH - ,0x9ADE ,0x58DC //CJK UNIFIED IDEOGRAPH - ,0x9ADF ,0x58E4 //CJK UNIFIED IDEOGRAPH - ,0x9AE0 ,0x58DF //CJK UNIFIED IDEOGRAPH - ,0x9AE1 ,0x58EF //CJK UNIFIED IDEOGRAPH - ,0x9AE2 ,0x58FA //CJK UNIFIED IDEOGRAPH - ,0x9AE3 ,0x58F9 //CJK UNIFIED IDEOGRAPH - ,0x9AE4 ,0x58FB //CJK UNIFIED IDEOGRAPH - ,0x9AE5 ,0x58FC //CJK UNIFIED IDEOGRAPH - ,0x9AE6 ,0x58FD //CJK UNIFIED IDEOGRAPH - ,0x9AE7 ,0x5902 //CJK UNIFIED IDEOGRAPH - ,0x9AE8 ,0x590A //CJK UNIFIED IDEOGRAPH - ,0x9AE9 ,0x5910 //CJK UNIFIED IDEOGRAPH - ,0x9AEA ,0x591B //CJK UNIFIED IDEOGRAPH - ,0x9AEB ,0x68A6 //CJK UNIFIED IDEOGRAPH - ,0x9AEC ,0x5925 //CJK UNIFIED IDEOGRAPH - ,0x9AED ,0x592C //CJK UNIFIED IDEOGRAPH - ,0x9AEE ,0x592D //CJK UNIFIED IDEOGRAPH - ,0x9AEF ,0x5932 //CJK UNIFIED IDEOGRAPH - ,0x9AF0 ,0x5938 //CJK UNIFIED IDEOGRAPH - ,0x9AF1 ,0x593E //CJK UNIFIED IDEOGRAPH - ,0x9AF2 ,0x7AD2 //CJK UNIFIED IDEOGRAPH - ,0x9AF3 ,0x5955 //CJK UNIFIED IDEOGRAPH - ,0x9AF4 ,0x5950 //CJK UNIFIED IDEOGRAPH - ,0x9AF5 ,0x594E //CJK UNIFIED IDEOGRAPH - ,0x9AF6 ,0x595A //CJK UNIFIED IDEOGRAPH - ,0x9AF7 ,0x5958 //CJK UNIFIED IDEOGRAPH - ,0x9AF8 ,0x5962 //CJK UNIFIED IDEOGRAPH - ,0x9AF9 ,0x5960 //CJK UNIFIED IDEOGRAPH - ,0x9AFA ,0x5967 //CJK UNIFIED IDEOGRAPH - ,0x9AFB ,0x596C //CJK UNIFIED IDEOGRAPH - ,0x9AFC ,0x5969 //CJK UNIFIED IDEOGRAPH - ,0x9B40 ,0x5978 //CJK UNIFIED IDEOGRAPH - ,0x9B41 ,0x5981 //CJK UNIFIED IDEOGRAPH - ,0x9B42 ,0x599D //CJK UNIFIED IDEOGRAPH - ,0x9B43 ,0x4F5E //CJK UNIFIED IDEOGRAPH - ,0x9B44 ,0x4FAB //CJK UNIFIED IDEOGRAPH - ,0x9B45 ,0x59A3 //CJK UNIFIED IDEOGRAPH - ,0x9B46 ,0x59B2 //CJK UNIFIED IDEOGRAPH - ,0x9B47 ,0x59C6 //CJK UNIFIED IDEOGRAPH - ,0x9B48 ,0x59E8 //CJK UNIFIED IDEOGRAPH - ,0x9B49 ,0x59DC //CJK UNIFIED IDEOGRAPH - ,0x9B4A ,0x598D //CJK UNIFIED IDEOGRAPH - ,0x9B4B ,0x59D9 //CJK UNIFIED IDEOGRAPH - ,0x9B4C ,0x59DA //CJK UNIFIED IDEOGRAPH - ,0x9B4D ,0x5A25 //CJK UNIFIED IDEOGRAPH - ,0x9B4E ,0x5A1F //CJK UNIFIED IDEOGRAPH - ,0x9B4F ,0x5A11 //CJK UNIFIED IDEOGRAPH - ,0x9B50 ,0x5A1C //CJK UNIFIED IDEOGRAPH - ,0x9B51 ,0x5A09 //CJK UNIFIED IDEOGRAPH - ,0x9B52 ,0x5A1A //CJK UNIFIED IDEOGRAPH - ,0x9B53 ,0x5A40 //CJK UNIFIED IDEOGRAPH - ,0x9B54 ,0x5A6C //CJK UNIFIED IDEOGRAPH - ,0x9B55 ,0x5A49 //CJK UNIFIED IDEOGRAPH - ,0x9B56 ,0x5A35 //CJK UNIFIED IDEOGRAPH - ,0x9B57 ,0x5A36 //CJK UNIFIED IDEOGRAPH - ,0x9B58 ,0x5A62 //CJK UNIFIED IDEOGRAPH - ,0x9B59 ,0x5A6A //CJK UNIFIED IDEOGRAPH - ,0x9B5A ,0x5A9A //CJK UNIFIED IDEOGRAPH - ,0x9B5B ,0x5ABC //CJK UNIFIED IDEOGRAPH - ,0x9B5C ,0x5ABE //CJK UNIFIED IDEOGRAPH - ,0x9B5D ,0x5ACB //CJK UNIFIED IDEOGRAPH - ,0x9B5E ,0x5AC2 //CJK UNIFIED IDEOGRAPH - ,0x9B5F ,0x5ABD //CJK UNIFIED IDEOGRAPH - ,0x9B60 ,0x5AE3 //CJK UNIFIED IDEOGRAPH - ,0x9B61 ,0x5AD7 //CJK UNIFIED IDEOGRAPH - ,0x9B62 ,0x5AE6 //CJK UNIFIED IDEOGRAPH - ,0x9B63 ,0x5AE9 //CJK UNIFIED IDEOGRAPH - ,0x9B64 ,0x5AD6 //CJK UNIFIED IDEOGRAPH - ,0x9B65 ,0x5AFA //CJK UNIFIED IDEOGRAPH - ,0x9B66 ,0x5AFB //CJK UNIFIED IDEOGRAPH - ,0x9B67 ,0x5B0C //CJK UNIFIED IDEOGRAPH - ,0x9B68 ,0x5B0B //CJK UNIFIED IDEOGRAPH - ,0x9B69 ,0x5B16 //CJK UNIFIED IDEOGRAPH - ,0x9B6A ,0x5B32 //CJK UNIFIED IDEOGRAPH - ,0x9B6B ,0x5AD0 //CJK UNIFIED IDEOGRAPH - ,0x9B6C ,0x5B2A //CJK UNIFIED IDEOGRAPH - ,0x9B6D ,0x5B36 //CJK UNIFIED IDEOGRAPH - ,0x9B6E ,0x5B3E //CJK UNIFIED IDEOGRAPH - ,0x9B6F ,0x5B43 //CJK UNIFIED IDEOGRAPH - ,0x9B70 ,0x5B45 //CJK UNIFIED IDEOGRAPH - ,0x9B71 ,0x5B40 //CJK UNIFIED IDEOGRAPH - ,0x9B72 ,0x5B51 //CJK UNIFIED IDEOGRAPH - ,0x9B73 ,0x5B55 //CJK UNIFIED IDEOGRAPH - ,0x9B74 ,0x5B5A //CJK UNIFIED IDEOGRAPH - ,0x9B75 ,0x5B5B //CJK UNIFIED IDEOGRAPH - ,0x9B76 ,0x5B65 //CJK UNIFIED IDEOGRAPH - ,0x9B77 ,0x5B69 //CJK UNIFIED IDEOGRAPH - ,0x9B78 ,0x5B70 //CJK UNIFIED IDEOGRAPH - ,0x9B79 ,0x5B73 //CJK UNIFIED IDEOGRAPH - ,0x9B7A ,0x5B75 //CJK UNIFIED IDEOGRAPH - ,0x9B7B ,0x5B78 //CJK UNIFIED IDEOGRAPH - ,0x9B7C ,0x6588 //CJK UNIFIED IDEOGRAPH - ,0x9B7D ,0x5B7A //CJK UNIFIED IDEOGRAPH - ,0x9B7E ,0x5B80 //CJK UNIFIED IDEOGRAPH - ,0x9B80 ,0x5B83 //CJK UNIFIED IDEOGRAPH - ,0x9B81 ,0x5BA6 //CJK UNIFIED IDEOGRAPH - ,0x9B82 ,0x5BB8 //CJK UNIFIED IDEOGRAPH - ,0x9B83 ,0x5BC3 //CJK UNIFIED IDEOGRAPH - ,0x9B84 ,0x5BC7 //CJK UNIFIED IDEOGRAPH - ,0x9B85 ,0x5BC9 //CJK UNIFIED IDEOGRAPH - ,0x9B86 ,0x5BD4 //CJK UNIFIED IDEOGRAPH - ,0x9B87 ,0x5BD0 //CJK UNIFIED IDEOGRAPH - ,0x9B88 ,0x5BE4 //CJK UNIFIED IDEOGRAPH - ,0x9B89 ,0x5BE6 //CJK UNIFIED IDEOGRAPH - ,0x9B8A ,0x5BE2 //CJK UNIFIED IDEOGRAPH - ,0x9B8B ,0x5BDE //CJK UNIFIED IDEOGRAPH - ,0x9B8C ,0x5BE5 //CJK UNIFIED IDEOGRAPH - ,0x9B8D ,0x5BEB //CJK UNIFIED IDEOGRAPH - ,0x9B8E ,0x5BF0 //CJK UNIFIED IDEOGRAPH - ,0x9B8F ,0x5BF6 //CJK UNIFIED IDEOGRAPH - ,0x9B90 ,0x5BF3 //CJK UNIFIED IDEOGRAPH - ,0x9B91 ,0x5C05 //CJK UNIFIED IDEOGRAPH - ,0x9B92 ,0x5C07 //CJK UNIFIED IDEOGRAPH - ,0x9B93 ,0x5C08 //CJK UNIFIED IDEOGRAPH - ,0x9B94 ,0x5C0D //CJK UNIFIED IDEOGRAPH - ,0x9B95 ,0x5C13 //CJK UNIFIED IDEOGRAPH - ,0x9B96 ,0x5C20 //CJK UNIFIED IDEOGRAPH - ,0x9B97 ,0x5C22 //CJK UNIFIED IDEOGRAPH - ,0x9B98 ,0x5C28 //CJK UNIFIED IDEOGRAPH - ,0x9B99 ,0x5C38 //CJK UNIFIED IDEOGRAPH - ,0x9B9A ,0x5C39 //CJK UNIFIED IDEOGRAPH - ,0x9B9B ,0x5C41 //CJK UNIFIED IDEOGRAPH - ,0x9B9C ,0x5C46 //CJK UNIFIED IDEOGRAPH - ,0x9B9D ,0x5C4E //CJK UNIFIED IDEOGRAPH - ,0x9B9E ,0x5C53 //CJK UNIFIED IDEOGRAPH - ,0x9B9F ,0x5C50 //CJK UNIFIED IDEOGRAPH - ,0x9BA0 ,0x5C4F //CJK UNIFIED IDEOGRAPH - ,0x9BA1 ,0x5B71 //CJK UNIFIED IDEOGRAPH - ,0x9BA2 ,0x5C6C //CJK UNIFIED IDEOGRAPH - ,0x9BA3 ,0x5C6E //CJK UNIFIED IDEOGRAPH - ,0x9BA4 ,0x4E62 //CJK UNIFIED IDEOGRAPH - ,0x9BA5 ,0x5C76 //CJK UNIFIED IDEOGRAPH - ,0x9BA6 ,0x5C79 //CJK UNIFIED IDEOGRAPH - ,0x9BA7 ,0x5C8C //CJK UNIFIED IDEOGRAPH - ,0x9BA8 ,0x5C91 //CJK UNIFIED IDEOGRAPH - ,0x9BA9 ,0x5C94 //CJK UNIFIED IDEOGRAPH - ,0x9BAA ,0x599B //CJK UNIFIED IDEOGRAPH - ,0x9BAB ,0x5CAB //CJK UNIFIED IDEOGRAPH - ,0x9BAC ,0x5CBB //CJK UNIFIED IDEOGRAPH - ,0x9BAD ,0x5CB6 //CJK UNIFIED IDEOGRAPH - ,0x9BAE ,0x5CBC //CJK UNIFIED IDEOGRAPH - ,0x9BAF ,0x5CB7 //CJK UNIFIED IDEOGRAPH - ,0x9BB0 ,0x5CC5 //CJK UNIFIED IDEOGRAPH - ,0x9BB1 ,0x5CBE //CJK UNIFIED IDEOGRAPH - ,0x9BB2 ,0x5CC7 //CJK UNIFIED IDEOGRAPH - ,0x9BB3 ,0x5CD9 //CJK UNIFIED IDEOGRAPH - ,0x9BB4 ,0x5CE9 //CJK UNIFIED IDEOGRAPH - ,0x9BB5 ,0x5CFD //CJK UNIFIED IDEOGRAPH - ,0x9BB6 ,0x5CFA //CJK UNIFIED IDEOGRAPH - ,0x9BB7 ,0x5CED //CJK UNIFIED IDEOGRAPH - ,0x9BB8 ,0x5D8C //CJK UNIFIED IDEOGRAPH - ,0x9BB9 ,0x5CEA //CJK UNIFIED IDEOGRAPH - ,0x9BBA ,0x5D0B //CJK UNIFIED IDEOGRAPH - ,0x9BBB ,0x5D15 //CJK UNIFIED IDEOGRAPH - ,0x9BBC ,0x5D17 //CJK UNIFIED IDEOGRAPH - ,0x9BBD ,0x5D5C //CJK UNIFIED IDEOGRAPH - ,0x9BBE ,0x5D1F //CJK UNIFIED IDEOGRAPH - ,0x9BBF ,0x5D1B //CJK UNIFIED IDEOGRAPH - ,0x9BC0 ,0x5D11 //CJK UNIFIED IDEOGRAPH - ,0x9BC1 ,0x5D14 //CJK UNIFIED IDEOGRAPH - ,0x9BC2 ,0x5D22 //CJK UNIFIED IDEOGRAPH - ,0x9BC3 ,0x5D1A //CJK UNIFIED IDEOGRAPH - ,0x9BC4 ,0x5D19 //CJK UNIFIED IDEOGRAPH - ,0x9BC5 ,0x5D18 //CJK UNIFIED IDEOGRAPH - ,0x9BC6 ,0x5D4C //CJK UNIFIED IDEOGRAPH - ,0x9BC7 ,0x5D52 //CJK UNIFIED IDEOGRAPH - ,0x9BC8 ,0x5D4E //CJK UNIFIED IDEOGRAPH - ,0x9BC9 ,0x5D4B //CJK UNIFIED IDEOGRAPH - ,0x9BCA ,0x5D6C //CJK UNIFIED IDEOGRAPH - ,0x9BCB ,0x5D73 //CJK UNIFIED IDEOGRAPH - ,0x9BCC ,0x5D76 //CJK UNIFIED IDEOGRAPH - ,0x9BCD ,0x5D87 //CJK UNIFIED IDEOGRAPH - ,0x9BCE ,0x5D84 //CJK UNIFIED IDEOGRAPH - ,0x9BCF ,0x5D82 //CJK UNIFIED IDEOGRAPH - ,0x9BD0 ,0x5DA2 //CJK UNIFIED IDEOGRAPH - ,0x9BD1 ,0x5D9D //CJK UNIFIED IDEOGRAPH - ,0x9BD2 ,0x5DAC //CJK UNIFIED IDEOGRAPH - ,0x9BD3 ,0x5DAE //CJK UNIFIED IDEOGRAPH - ,0x9BD4 ,0x5DBD //CJK UNIFIED IDEOGRAPH - ,0x9BD5 ,0x5D90 //CJK UNIFIED IDEOGRAPH - ,0x9BD6 ,0x5DB7 //CJK UNIFIED IDEOGRAPH - ,0x9BD7 ,0x5DBC //CJK UNIFIED IDEOGRAPH - ,0x9BD8 ,0x5DC9 //CJK UNIFIED IDEOGRAPH - ,0x9BD9 ,0x5DCD //CJK UNIFIED IDEOGRAPH - ,0x9BDA ,0x5DD3 //CJK UNIFIED IDEOGRAPH - ,0x9BDB ,0x5DD2 //CJK UNIFIED IDEOGRAPH - ,0x9BDC ,0x5DD6 //CJK UNIFIED IDEOGRAPH - ,0x9BDD ,0x5DDB //CJK UNIFIED IDEOGRAPH - ,0x9BDE ,0x5DEB //CJK UNIFIED IDEOGRAPH - ,0x9BDF ,0x5DF2 //CJK UNIFIED IDEOGRAPH - ,0x9BE0 ,0x5DF5 //CJK UNIFIED IDEOGRAPH - ,0x9BE1 ,0x5E0B //CJK UNIFIED IDEOGRAPH - ,0x9BE2 ,0x5E1A //CJK UNIFIED IDEOGRAPH - ,0x9BE3 ,0x5E19 //CJK UNIFIED IDEOGRAPH - ,0x9BE4 ,0x5E11 //CJK UNIFIED IDEOGRAPH - ,0x9BE5 ,0x5E1B //CJK UNIFIED IDEOGRAPH - ,0x9BE6 ,0x5E36 //CJK UNIFIED IDEOGRAPH - ,0x9BE7 ,0x5E37 //CJK UNIFIED IDEOGRAPH - ,0x9BE8 ,0x5E44 //CJK UNIFIED IDEOGRAPH - ,0x9BE9 ,0x5E43 //CJK UNIFIED IDEOGRAPH - ,0x9BEA ,0x5E40 //CJK UNIFIED IDEOGRAPH - ,0x9BEB ,0x5E4E //CJK UNIFIED IDEOGRAPH - ,0x9BEC ,0x5E57 //CJK UNIFIED IDEOGRAPH - ,0x9BED ,0x5E54 //CJK UNIFIED IDEOGRAPH - ,0x9BEE ,0x5E5F //CJK UNIFIED IDEOGRAPH - ,0x9BEF ,0x5E62 //CJK UNIFIED IDEOGRAPH - ,0x9BF0 ,0x5E64 //CJK UNIFIED IDEOGRAPH - ,0x9BF1 ,0x5E47 //CJK UNIFIED IDEOGRAPH - ,0x9BF2 ,0x5E75 //CJK UNIFIED IDEOGRAPH - ,0x9BF3 ,0x5E76 //CJK UNIFIED IDEOGRAPH - ,0x9BF4 ,0x5E7A //CJK UNIFIED IDEOGRAPH - ,0x9BF5 ,0x9EBC //CJK UNIFIED IDEOGRAPH - ,0x9BF6 ,0x5E7F //CJK UNIFIED IDEOGRAPH - ,0x9BF7 ,0x5EA0 //CJK UNIFIED IDEOGRAPH - ,0x9BF8 ,0x5EC1 //CJK UNIFIED IDEOGRAPH - ,0x9BF9 ,0x5EC2 //CJK UNIFIED IDEOGRAPH - ,0x9BFA ,0x5EC8 //CJK UNIFIED IDEOGRAPH - ,0x9BFB ,0x5ED0 //CJK UNIFIED IDEOGRAPH - ,0x9BFC ,0x5ECF //CJK UNIFIED IDEOGRAPH - ,0x9C40 ,0x5ED6 //CJK UNIFIED IDEOGRAPH - ,0x9C41 ,0x5EE3 //CJK UNIFIED IDEOGRAPH - ,0x9C42 ,0x5EDD //CJK UNIFIED IDEOGRAPH - ,0x9C43 ,0x5EDA //CJK UNIFIED IDEOGRAPH - ,0x9C44 ,0x5EDB //CJK UNIFIED IDEOGRAPH - ,0x9C45 ,0x5EE2 //CJK UNIFIED IDEOGRAPH - ,0x9C46 ,0x5EE1 //CJK UNIFIED IDEOGRAPH - ,0x9C47 ,0x5EE8 //CJK UNIFIED IDEOGRAPH - ,0x9C48 ,0x5EE9 //CJK UNIFIED IDEOGRAPH - ,0x9C49 ,0x5EEC //CJK UNIFIED IDEOGRAPH - ,0x9C4A ,0x5EF1 //CJK UNIFIED IDEOGRAPH - ,0x9C4B ,0x5EF3 //CJK UNIFIED IDEOGRAPH - ,0x9C4C ,0x5EF0 //CJK UNIFIED IDEOGRAPH - ,0x9C4D ,0x5EF4 //CJK UNIFIED IDEOGRAPH - ,0x9C4E ,0x5EF8 //CJK UNIFIED IDEOGRAPH - ,0x9C4F ,0x5EFE //CJK UNIFIED IDEOGRAPH - ,0x9C50 ,0x5F03 //CJK UNIFIED IDEOGRAPH - ,0x9C51 ,0x5F09 //CJK UNIFIED IDEOGRAPH - ,0x9C52 ,0x5F5D //CJK UNIFIED IDEOGRAPH - ,0x9C53 ,0x5F5C //CJK UNIFIED IDEOGRAPH - ,0x9C54 ,0x5F0B //CJK UNIFIED IDEOGRAPH - ,0x9C55 ,0x5F11 //CJK UNIFIED IDEOGRAPH - ,0x9C56 ,0x5F16 //CJK UNIFIED IDEOGRAPH - ,0x9C57 ,0x5F29 //CJK UNIFIED IDEOGRAPH - ,0x9C58 ,0x5F2D //CJK UNIFIED IDEOGRAPH - ,0x9C59 ,0x5F38 //CJK UNIFIED IDEOGRAPH - ,0x9C5A ,0x5F41 //CJK UNIFIED IDEOGRAPH - ,0x9C5B ,0x5F48 //CJK UNIFIED IDEOGRAPH - ,0x9C5C ,0x5F4C //CJK UNIFIED IDEOGRAPH - ,0x9C5D ,0x5F4E //CJK UNIFIED IDEOGRAPH - ,0x9C5E ,0x5F2F //CJK UNIFIED IDEOGRAPH - ,0x9C5F ,0x5F51 //CJK UNIFIED IDEOGRAPH - ,0x9C60 ,0x5F56 //CJK UNIFIED IDEOGRAPH - ,0x9C61 ,0x5F57 //CJK UNIFIED IDEOGRAPH - ,0x9C62 ,0x5F59 //CJK UNIFIED IDEOGRAPH - ,0x9C63 ,0x5F61 //CJK UNIFIED IDEOGRAPH - ,0x9C64 ,0x5F6D //CJK UNIFIED IDEOGRAPH - ,0x9C65 ,0x5F73 //CJK UNIFIED IDEOGRAPH - ,0x9C66 ,0x5F77 //CJK UNIFIED IDEOGRAPH - ,0x9C67 ,0x5F83 //CJK UNIFIED IDEOGRAPH - ,0x9C68 ,0x5F82 //CJK UNIFIED IDEOGRAPH - ,0x9C69 ,0x5F7F //CJK UNIFIED IDEOGRAPH - ,0x9C6A ,0x5F8A //CJK UNIFIED IDEOGRAPH - ,0x9C6B ,0x5F88 //CJK UNIFIED IDEOGRAPH - ,0x9C6C ,0x5F91 //CJK UNIFIED IDEOGRAPH - ,0x9C6D ,0x5F87 //CJK UNIFIED IDEOGRAPH - ,0x9C6E ,0x5F9E //CJK UNIFIED IDEOGRAPH - ,0x9C6F ,0x5F99 //CJK UNIFIED IDEOGRAPH - ,0x9C70 ,0x5F98 //CJK UNIFIED IDEOGRAPH - ,0x9C71 ,0x5FA0 //CJK UNIFIED IDEOGRAPH - ,0x9C72 ,0x5FA8 //CJK UNIFIED IDEOGRAPH - ,0x9C73 ,0x5FAD //CJK UNIFIED IDEOGRAPH - ,0x9C74 ,0x5FBC //CJK UNIFIED IDEOGRAPH - ,0x9C75 ,0x5FD6 //CJK UNIFIED IDEOGRAPH - ,0x9C76 ,0x5FFB //CJK UNIFIED IDEOGRAPH - ,0x9C77 ,0x5FE4 //CJK UNIFIED IDEOGRAPH - ,0x9C78 ,0x5FF8 //CJK UNIFIED IDEOGRAPH - ,0x9C79 ,0x5FF1 //CJK UNIFIED IDEOGRAPH - ,0x9C7A ,0x5FDD //CJK UNIFIED IDEOGRAPH - ,0x9C7B ,0x60B3 //CJK UNIFIED IDEOGRAPH - ,0x9C7C ,0x5FFF //CJK UNIFIED IDEOGRAPH - ,0x9C7D ,0x6021 //CJK UNIFIED IDEOGRAPH - ,0x9C7E ,0x6060 //CJK UNIFIED IDEOGRAPH - ,0x9C80 ,0x6019 //CJK UNIFIED IDEOGRAPH - ,0x9C81 ,0x6010 //CJK UNIFIED IDEOGRAPH - ,0x9C82 ,0x6029 //CJK UNIFIED IDEOGRAPH - ,0x9C83 ,0x600E //CJK UNIFIED IDEOGRAPH - ,0x9C84 ,0x6031 //CJK UNIFIED IDEOGRAPH - ,0x9C85 ,0x601B //CJK UNIFIED IDEOGRAPH - ,0x9C86 ,0x6015 //CJK UNIFIED IDEOGRAPH - ,0x9C87 ,0x602B //CJK UNIFIED IDEOGRAPH - ,0x9C88 ,0x6026 //CJK UNIFIED IDEOGRAPH - ,0x9C89 ,0x600F //CJK UNIFIED IDEOGRAPH - ,0x9C8A ,0x603A //CJK UNIFIED IDEOGRAPH - ,0x9C8B ,0x605A //CJK UNIFIED IDEOGRAPH - ,0x9C8C ,0x6041 //CJK UNIFIED IDEOGRAPH - ,0x9C8D ,0x606A //CJK UNIFIED IDEOGRAPH - ,0x9C8E ,0x6077 //CJK UNIFIED IDEOGRAPH - ,0x9C8F ,0x605F //CJK UNIFIED IDEOGRAPH - ,0x9C90 ,0x604A //CJK UNIFIED IDEOGRAPH - ,0x9C91 ,0x6046 //CJK UNIFIED IDEOGRAPH - ,0x9C92 ,0x604D //CJK UNIFIED IDEOGRAPH - ,0x9C93 ,0x6063 //CJK UNIFIED IDEOGRAPH - ,0x9C94 ,0x6043 //CJK UNIFIED IDEOGRAPH - ,0x9C95 ,0x6064 //CJK UNIFIED IDEOGRAPH - ,0x9C96 ,0x6042 //CJK UNIFIED IDEOGRAPH - ,0x9C97 ,0x606C //CJK UNIFIED IDEOGRAPH - ,0x9C98 ,0x606B //CJK UNIFIED IDEOGRAPH - ,0x9C99 ,0x6059 //CJK UNIFIED IDEOGRAPH - ,0x9C9A ,0x6081 //CJK UNIFIED IDEOGRAPH - ,0x9C9B ,0x608D //CJK UNIFIED IDEOGRAPH - ,0x9C9C ,0x60E7 //CJK UNIFIED IDEOGRAPH - ,0x9C9D ,0x6083 //CJK UNIFIED IDEOGRAPH - ,0x9C9E ,0x609A //CJK UNIFIED IDEOGRAPH - ,0x9C9F ,0x6084 //CJK UNIFIED IDEOGRAPH - ,0x9CA0 ,0x609B //CJK UNIFIED IDEOGRAPH - ,0x9CA1 ,0x6096 //CJK UNIFIED IDEOGRAPH - ,0x9CA2 ,0x6097 //CJK UNIFIED IDEOGRAPH - ,0x9CA3 ,0x6092 //CJK UNIFIED IDEOGRAPH - ,0x9CA4 ,0x60A7 //CJK UNIFIED IDEOGRAPH - ,0x9CA5 ,0x608B //CJK UNIFIED IDEOGRAPH - ,0x9CA6 ,0x60E1 //CJK UNIFIED IDEOGRAPH - ,0x9CA7 ,0x60B8 //CJK UNIFIED IDEOGRAPH - ,0x9CA8 ,0x60E0 //CJK UNIFIED IDEOGRAPH - ,0x9CA9 ,0x60D3 //CJK UNIFIED IDEOGRAPH - ,0x9CAA ,0x60B4 //CJK UNIFIED IDEOGRAPH - ,0x9CAB ,0x5FF0 //CJK UNIFIED IDEOGRAPH - ,0x9CAC ,0x60BD //CJK UNIFIED IDEOGRAPH - ,0x9CAD ,0x60C6 //CJK UNIFIED IDEOGRAPH - ,0x9CAE ,0x60B5 //CJK UNIFIED IDEOGRAPH - ,0x9CAF ,0x60D8 //CJK UNIFIED IDEOGRAPH - ,0x9CB0 ,0x614D //CJK UNIFIED IDEOGRAPH - ,0x9CB1 ,0x6115 //CJK UNIFIED IDEOGRAPH - ,0x9CB2 ,0x6106 //CJK UNIFIED IDEOGRAPH - ,0x9CB3 ,0x60F6 //CJK UNIFIED IDEOGRAPH - ,0x9CB4 ,0x60F7 //CJK UNIFIED IDEOGRAPH - ,0x9CB5 ,0x6100 //CJK UNIFIED IDEOGRAPH - ,0x9CB6 ,0x60F4 //CJK UNIFIED IDEOGRAPH - ,0x9CB7 ,0x60FA //CJK UNIFIED IDEOGRAPH - ,0x9CB8 ,0x6103 //CJK UNIFIED IDEOGRAPH - ,0x9CB9 ,0x6121 //CJK UNIFIED IDEOGRAPH - ,0x9CBA ,0x60FB //CJK UNIFIED IDEOGRAPH - ,0x9CBB ,0x60F1 //CJK UNIFIED IDEOGRAPH - ,0x9CBC ,0x610D //CJK UNIFIED IDEOGRAPH - ,0x9CBD ,0x610E //CJK UNIFIED IDEOGRAPH - ,0x9CBE ,0x6147 //CJK UNIFIED IDEOGRAPH - ,0x9CBF ,0x613E //CJK UNIFIED IDEOGRAPH - ,0x9CC0 ,0x6128 //CJK UNIFIED IDEOGRAPH - ,0x9CC1 ,0x6127 //CJK UNIFIED IDEOGRAPH - ,0x9CC2 ,0x614A //CJK UNIFIED IDEOGRAPH - ,0x9CC3 ,0x613F //CJK UNIFIED IDEOGRAPH - ,0x9CC4 ,0x613C //CJK UNIFIED IDEOGRAPH - ,0x9CC5 ,0x612C //CJK UNIFIED IDEOGRAPH - ,0x9CC6 ,0x6134 //CJK UNIFIED IDEOGRAPH - ,0x9CC7 ,0x613D //CJK UNIFIED IDEOGRAPH - ,0x9CC8 ,0x6142 //CJK UNIFIED IDEOGRAPH - ,0x9CC9 ,0x6144 //CJK UNIFIED IDEOGRAPH - ,0x9CCA ,0x6173 //CJK UNIFIED IDEOGRAPH - ,0x9CCB ,0x6177 //CJK UNIFIED IDEOGRAPH - ,0x9CCC ,0x6158 //CJK UNIFIED IDEOGRAPH - ,0x9CCD ,0x6159 //CJK UNIFIED IDEOGRAPH - ,0x9CCE ,0x615A //CJK UNIFIED IDEOGRAPH - ,0x9CCF ,0x616B //CJK UNIFIED IDEOGRAPH - ,0x9CD0 ,0x6174 //CJK UNIFIED IDEOGRAPH - ,0x9CD1 ,0x616F //CJK UNIFIED IDEOGRAPH - ,0x9CD2 ,0x6165 //CJK UNIFIED IDEOGRAPH - ,0x9CD3 ,0x6171 //CJK UNIFIED IDEOGRAPH - ,0x9CD4 ,0x615F //CJK UNIFIED IDEOGRAPH - ,0x9CD5 ,0x615D //CJK UNIFIED IDEOGRAPH - ,0x9CD6 ,0x6153 //CJK UNIFIED IDEOGRAPH - ,0x9CD7 ,0x6175 //CJK UNIFIED IDEOGRAPH - ,0x9CD8 ,0x6199 //CJK UNIFIED IDEOGRAPH - ,0x9CD9 ,0x6196 //CJK UNIFIED IDEOGRAPH - ,0x9CDA ,0x6187 //CJK UNIFIED IDEOGRAPH - ,0x9CDB ,0x61AC //CJK UNIFIED IDEOGRAPH - ,0x9CDC ,0x6194 //CJK UNIFIED IDEOGRAPH - ,0x9CDD ,0x619A //CJK UNIFIED IDEOGRAPH - ,0x9CDE ,0x618A //CJK UNIFIED IDEOGRAPH - ,0x9CDF ,0x6191 //CJK UNIFIED IDEOGRAPH - ,0x9CE0 ,0x61AB //CJK UNIFIED IDEOGRAPH - ,0x9CE1 ,0x61AE //CJK UNIFIED IDEOGRAPH - ,0x9CE2 ,0x61CC //CJK UNIFIED IDEOGRAPH - ,0x9CE3 ,0x61CA //CJK UNIFIED IDEOGRAPH - ,0x9CE4 ,0x61C9 //CJK UNIFIED IDEOGRAPH - ,0x9CE5 ,0x61F7 //CJK UNIFIED IDEOGRAPH - ,0x9CE6 ,0x61C8 //CJK UNIFIED IDEOGRAPH - ,0x9CE7 ,0x61C3 //CJK UNIFIED IDEOGRAPH - ,0x9CE8 ,0x61C6 //CJK UNIFIED IDEOGRAPH - ,0x9CE9 ,0x61BA //CJK UNIFIED IDEOGRAPH - ,0x9CEA ,0x61CB //CJK UNIFIED IDEOGRAPH - ,0x9CEB ,0x7F79 //CJK UNIFIED IDEOGRAPH - ,0x9CEC ,0x61CD //CJK UNIFIED IDEOGRAPH - ,0x9CED ,0x61E6 //CJK UNIFIED IDEOGRAPH - ,0x9CEE ,0x61E3 //CJK UNIFIED IDEOGRAPH - ,0x9CEF ,0x61F6 //CJK UNIFIED IDEOGRAPH - ,0x9CF0 ,0x61FA //CJK UNIFIED IDEOGRAPH - ,0x9CF1 ,0x61F4 //CJK UNIFIED IDEOGRAPH - ,0x9CF2 ,0x61FF //CJK UNIFIED IDEOGRAPH - ,0x9CF3 ,0x61FD //CJK UNIFIED IDEOGRAPH - ,0x9CF4 ,0x61FC //CJK UNIFIED IDEOGRAPH - ,0x9CF5 ,0x61FE //CJK UNIFIED IDEOGRAPH - ,0x9CF6 ,0x6200 //CJK UNIFIED IDEOGRAPH - ,0x9CF7 ,0x6208 //CJK UNIFIED IDEOGRAPH - ,0x9CF8 ,0x6209 //CJK UNIFIED IDEOGRAPH - ,0x9CF9 ,0x620D //CJK UNIFIED IDEOGRAPH - ,0x9CFA ,0x620C //CJK UNIFIED IDEOGRAPH - ,0x9CFB ,0x6214 //CJK UNIFIED IDEOGRAPH - ,0x9CFC ,0x621B //CJK UNIFIED IDEOGRAPH - ,0x9D40 ,0x621E //CJK UNIFIED IDEOGRAPH - ,0x9D41 ,0x6221 //CJK UNIFIED IDEOGRAPH - ,0x9D42 ,0x622A //CJK UNIFIED IDEOGRAPH - ,0x9D43 ,0x622E //CJK UNIFIED IDEOGRAPH - ,0x9D44 ,0x6230 //CJK UNIFIED IDEOGRAPH - ,0x9D45 ,0x6232 //CJK UNIFIED IDEOGRAPH - ,0x9D46 ,0x6233 //CJK UNIFIED IDEOGRAPH - ,0x9D47 ,0x6241 //CJK UNIFIED IDEOGRAPH - ,0x9D48 ,0x624E //CJK UNIFIED IDEOGRAPH - ,0x9D49 ,0x625E //CJK UNIFIED IDEOGRAPH - ,0x9D4A ,0x6263 //CJK UNIFIED IDEOGRAPH - ,0x9D4B ,0x625B //CJK UNIFIED IDEOGRAPH - ,0x9D4C ,0x6260 //CJK UNIFIED IDEOGRAPH - ,0x9D4D ,0x6268 //CJK UNIFIED IDEOGRAPH - ,0x9D4E ,0x627C //CJK UNIFIED IDEOGRAPH - ,0x9D4F ,0x6282 //CJK UNIFIED IDEOGRAPH - ,0x9D50 ,0x6289 //CJK UNIFIED IDEOGRAPH - ,0x9D51 ,0x627E //CJK UNIFIED IDEOGRAPH - ,0x9D52 ,0x6292 //CJK UNIFIED IDEOGRAPH - ,0x9D53 ,0x6293 //CJK UNIFIED IDEOGRAPH - ,0x9D54 ,0x6296 //CJK UNIFIED IDEOGRAPH - ,0x9D55 ,0x62D4 //CJK UNIFIED IDEOGRAPH - ,0x9D56 ,0x6283 //CJK UNIFIED IDEOGRAPH - ,0x9D57 ,0x6294 //CJK UNIFIED IDEOGRAPH - ,0x9D58 ,0x62D7 //CJK UNIFIED IDEOGRAPH - ,0x9D59 ,0x62D1 //CJK UNIFIED IDEOGRAPH - ,0x9D5A ,0x62BB //CJK UNIFIED IDEOGRAPH - ,0x9D5B ,0x62CF //CJK UNIFIED IDEOGRAPH - ,0x9D5C ,0x62FF //CJK UNIFIED IDEOGRAPH - ,0x9D5D ,0x62C6 //CJK UNIFIED IDEOGRAPH - ,0x9D5E ,0x64D4 //CJK UNIFIED IDEOGRAPH - ,0x9D5F ,0x62C8 //CJK UNIFIED IDEOGRAPH - ,0x9D60 ,0x62DC //CJK UNIFIED IDEOGRAPH - ,0x9D61 ,0x62CC //CJK UNIFIED IDEOGRAPH - ,0x9D62 ,0x62CA //CJK UNIFIED IDEOGRAPH - ,0x9D63 ,0x62C2 //CJK UNIFIED IDEOGRAPH - ,0x9D64 ,0x62C7 //CJK UNIFIED IDEOGRAPH - ,0x9D65 ,0x629B //CJK UNIFIED IDEOGRAPH - ,0x9D66 ,0x62C9 //CJK UNIFIED IDEOGRAPH - ,0x9D67 ,0x630C //CJK UNIFIED IDEOGRAPH - ,0x9D68 ,0x62EE //CJK UNIFIED IDEOGRAPH - ,0x9D69 ,0x62F1 //CJK UNIFIED IDEOGRAPH - ,0x9D6A ,0x6327 //CJK UNIFIED IDEOGRAPH - ,0x9D6B ,0x6302 //CJK UNIFIED IDEOGRAPH - ,0x9D6C ,0x6308 //CJK UNIFIED IDEOGRAPH - ,0x9D6D ,0x62EF //CJK UNIFIED IDEOGRAPH - ,0x9D6E ,0x62F5 //CJK UNIFIED IDEOGRAPH - ,0x9D6F ,0x6350 //CJK UNIFIED IDEOGRAPH - ,0x9D70 ,0x633E //CJK UNIFIED IDEOGRAPH - ,0x9D71 ,0x634D //CJK UNIFIED IDEOGRAPH - ,0x9D72 ,0x641C //CJK UNIFIED IDEOGRAPH - ,0x9D73 ,0x634F //CJK UNIFIED IDEOGRAPH - ,0x9D74 ,0x6396 //CJK UNIFIED IDEOGRAPH - ,0x9D75 ,0x638E //CJK UNIFIED IDEOGRAPH - ,0x9D76 ,0x6380 //CJK UNIFIED IDEOGRAPH - ,0x9D77 ,0x63AB //CJK UNIFIED IDEOGRAPH - ,0x9D78 ,0x6376 //CJK UNIFIED IDEOGRAPH - ,0x9D79 ,0x63A3 //CJK UNIFIED IDEOGRAPH - ,0x9D7A ,0x638F //CJK UNIFIED IDEOGRAPH - ,0x9D7B ,0x6389 //CJK UNIFIED IDEOGRAPH - ,0x9D7C ,0x639F //CJK UNIFIED IDEOGRAPH - ,0x9D7D ,0x63B5 //CJK UNIFIED IDEOGRAPH - ,0x9D7E ,0x636B //CJK UNIFIED IDEOGRAPH - ,0x9D80 ,0x6369 //CJK UNIFIED IDEOGRAPH - ,0x9D81 ,0x63BE //CJK UNIFIED IDEOGRAPH - ,0x9D82 ,0x63E9 //CJK UNIFIED IDEOGRAPH - ,0x9D83 ,0x63C0 //CJK UNIFIED IDEOGRAPH - ,0x9D84 ,0x63C6 //CJK UNIFIED IDEOGRAPH - ,0x9D85 ,0x63E3 //CJK UNIFIED IDEOGRAPH - ,0x9D86 ,0x63C9 //CJK UNIFIED IDEOGRAPH - ,0x9D87 ,0x63D2 //CJK UNIFIED IDEOGRAPH - ,0x9D88 ,0x63F6 //CJK UNIFIED IDEOGRAPH - ,0x9D89 ,0x63C4 //CJK UNIFIED IDEOGRAPH - ,0x9D8A ,0x6416 //CJK UNIFIED IDEOGRAPH - ,0x9D8B ,0x6434 //CJK UNIFIED IDEOGRAPH - ,0x9D8C ,0x6406 //CJK UNIFIED IDEOGRAPH - ,0x9D8D ,0x6413 //CJK UNIFIED IDEOGRAPH - ,0x9D8E ,0x6426 //CJK UNIFIED IDEOGRAPH - ,0x9D8F ,0x6436 //CJK UNIFIED IDEOGRAPH - ,0x9D90 ,0x651D //CJK UNIFIED IDEOGRAPH - ,0x9D91 ,0x6417 //CJK UNIFIED IDEOGRAPH - ,0x9D92 ,0x6428 //CJK UNIFIED IDEOGRAPH - ,0x9D93 ,0x640F //CJK UNIFIED IDEOGRAPH - ,0x9D94 ,0x6467 //CJK UNIFIED IDEOGRAPH - ,0x9D95 ,0x646F //CJK UNIFIED IDEOGRAPH - ,0x9D96 ,0x6476 //CJK UNIFIED IDEOGRAPH - ,0x9D97 ,0x644E //CJK UNIFIED IDEOGRAPH - ,0x9D98 ,0x652A //CJK UNIFIED IDEOGRAPH - ,0x9D99 ,0x6495 //CJK UNIFIED IDEOGRAPH - ,0x9D9A ,0x6493 //CJK UNIFIED IDEOGRAPH - ,0x9D9B ,0x64A5 //CJK UNIFIED IDEOGRAPH - ,0x9D9C ,0x64A9 //CJK UNIFIED IDEOGRAPH - ,0x9D9D ,0x6488 //CJK UNIFIED IDEOGRAPH - ,0x9D9E ,0x64BC //CJK UNIFIED IDEOGRAPH - ,0x9D9F ,0x64DA //CJK UNIFIED IDEOGRAPH - ,0x9DA0 ,0x64D2 //CJK UNIFIED IDEOGRAPH - ,0x9DA1 ,0x64C5 //CJK UNIFIED IDEOGRAPH - ,0x9DA2 ,0x64C7 //CJK UNIFIED IDEOGRAPH - ,0x9DA3 ,0x64BB //CJK UNIFIED IDEOGRAPH - ,0x9DA4 ,0x64D8 //CJK UNIFIED IDEOGRAPH - ,0x9DA5 ,0x64C2 //CJK UNIFIED IDEOGRAPH - ,0x9DA6 ,0x64F1 //CJK UNIFIED IDEOGRAPH - ,0x9DA7 ,0x64E7 //CJK UNIFIED IDEOGRAPH - ,0x9DA8 ,0x8209 //CJK UNIFIED IDEOGRAPH - ,0x9DA9 ,0x64E0 //CJK UNIFIED IDEOGRAPH - ,0x9DAA ,0x64E1 //CJK UNIFIED IDEOGRAPH - ,0x9DAB ,0x62AC //CJK UNIFIED IDEOGRAPH - ,0x9DAC ,0x64E3 //CJK UNIFIED IDEOGRAPH - ,0x9DAD ,0x64EF //CJK UNIFIED IDEOGRAPH - ,0x9DAE ,0x652C //CJK UNIFIED IDEOGRAPH - ,0x9DAF ,0x64F6 //CJK UNIFIED IDEOGRAPH - ,0x9DB0 ,0x64F4 //CJK UNIFIED IDEOGRAPH - ,0x9DB1 ,0x64F2 //CJK UNIFIED IDEOGRAPH - ,0x9DB2 ,0x64FA //CJK UNIFIED IDEOGRAPH - ,0x9DB3 ,0x6500 //CJK UNIFIED IDEOGRAPH - ,0x9DB4 ,0x64FD //CJK UNIFIED IDEOGRAPH - ,0x9DB5 ,0x6518 //CJK UNIFIED IDEOGRAPH - ,0x9DB6 ,0x651C //CJK UNIFIED IDEOGRAPH - ,0x9DB7 ,0x6505 //CJK UNIFIED IDEOGRAPH - ,0x9DB8 ,0x6524 //CJK UNIFIED IDEOGRAPH - ,0x9DB9 ,0x6523 //CJK UNIFIED IDEOGRAPH - ,0x9DBA ,0x652B //CJK UNIFIED IDEOGRAPH - ,0x9DBB ,0x6534 //CJK UNIFIED IDEOGRAPH - ,0x9DBC ,0x6535 //CJK UNIFIED IDEOGRAPH - ,0x9DBD ,0x6537 //CJK UNIFIED IDEOGRAPH - ,0x9DBE ,0x6536 //CJK UNIFIED IDEOGRAPH - ,0x9DBF ,0x6538 //CJK UNIFIED IDEOGRAPH - ,0x9DC0 ,0x754B //CJK UNIFIED IDEOGRAPH - ,0x9DC1 ,0x6548 //CJK UNIFIED IDEOGRAPH - ,0x9DC2 ,0x6556 //CJK UNIFIED IDEOGRAPH - ,0x9DC3 ,0x6555 //CJK UNIFIED IDEOGRAPH - ,0x9DC4 ,0x654D //CJK UNIFIED IDEOGRAPH - ,0x9DC5 ,0x6558 //CJK UNIFIED IDEOGRAPH - ,0x9DC6 ,0x655E //CJK UNIFIED IDEOGRAPH - ,0x9DC7 ,0x655D //CJK UNIFIED IDEOGRAPH - ,0x9DC8 ,0x6572 //CJK UNIFIED IDEOGRAPH - ,0x9DC9 ,0x6578 //CJK UNIFIED IDEOGRAPH - ,0x9DCA ,0x6582 //CJK UNIFIED IDEOGRAPH - ,0x9DCB ,0x6583 //CJK UNIFIED IDEOGRAPH - ,0x9DCC ,0x8B8A //CJK UNIFIED IDEOGRAPH - ,0x9DCD ,0x659B //CJK UNIFIED IDEOGRAPH - ,0x9DCE ,0x659F //CJK UNIFIED IDEOGRAPH - ,0x9DCF ,0x65AB //CJK UNIFIED IDEOGRAPH - ,0x9DD0 ,0x65B7 //CJK UNIFIED IDEOGRAPH - ,0x9DD1 ,0x65C3 //CJK UNIFIED IDEOGRAPH - ,0x9DD2 ,0x65C6 //CJK UNIFIED IDEOGRAPH - ,0x9DD3 ,0x65C1 //CJK UNIFIED IDEOGRAPH - ,0x9DD4 ,0x65C4 //CJK UNIFIED IDEOGRAPH - ,0x9DD5 ,0x65CC //CJK UNIFIED IDEOGRAPH - ,0x9DD6 ,0x65D2 //CJK UNIFIED IDEOGRAPH - ,0x9DD7 ,0x65DB //CJK UNIFIED IDEOGRAPH - ,0x9DD8 ,0x65D9 //CJK UNIFIED IDEOGRAPH - ,0x9DD9 ,0x65E0 //CJK UNIFIED IDEOGRAPH - ,0x9DDA ,0x65E1 //CJK UNIFIED IDEOGRAPH - ,0x9DDB ,0x65F1 //CJK UNIFIED IDEOGRAPH - ,0x9DDC ,0x6772 //CJK UNIFIED IDEOGRAPH - ,0x9DDD ,0x660A //CJK UNIFIED IDEOGRAPH - ,0x9DDE ,0x6603 //CJK UNIFIED IDEOGRAPH - ,0x9DDF ,0x65FB //CJK UNIFIED IDEOGRAPH - ,0x9DE0 ,0x6773 //CJK UNIFIED IDEOGRAPH - ,0x9DE1 ,0x6635 //CJK UNIFIED IDEOGRAPH - ,0x9DE2 ,0x6636 //CJK UNIFIED IDEOGRAPH - ,0x9DE3 ,0x6634 //CJK UNIFIED IDEOGRAPH - ,0x9DE4 ,0x661C //CJK UNIFIED IDEOGRAPH - ,0x9DE5 ,0x664F //CJK UNIFIED IDEOGRAPH - ,0x9DE6 ,0x6644 //CJK UNIFIED IDEOGRAPH - ,0x9DE7 ,0x6649 //CJK UNIFIED IDEOGRAPH - ,0x9DE8 ,0x6641 //CJK UNIFIED IDEOGRAPH - ,0x9DE9 ,0x665E //CJK UNIFIED IDEOGRAPH - ,0x9DEA ,0x665D //CJK UNIFIED IDEOGRAPH - ,0x9DEB ,0x6664 //CJK UNIFIED IDEOGRAPH - ,0x9DEC ,0x6667 //CJK UNIFIED IDEOGRAPH - ,0x9DED ,0x6668 //CJK UNIFIED IDEOGRAPH - ,0x9DEE ,0x665F //CJK UNIFIED IDEOGRAPH - ,0x9DEF ,0x6662 //CJK UNIFIED IDEOGRAPH - ,0x9DF0 ,0x6670 //CJK UNIFIED IDEOGRAPH - ,0x9DF1 ,0x6683 //CJK UNIFIED IDEOGRAPH - ,0x9DF2 ,0x6688 //CJK UNIFIED IDEOGRAPH - ,0x9DF3 ,0x668E //CJK UNIFIED IDEOGRAPH - ,0x9DF4 ,0x6689 //CJK UNIFIED IDEOGRAPH - ,0x9DF5 ,0x6684 //CJK UNIFIED IDEOGRAPH - ,0x9DF6 ,0x6698 //CJK UNIFIED IDEOGRAPH - ,0x9DF7 ,0x669D //CJK UNIFIED IDEOGRAPH - ,0x9DF8 ,0x66C1 //CJK UNIFIED IDEOGRAPH - ,0x9DF9 ,0x66B9 //CJK UNIFIED IDEOGRAPH - ,0x9DFA ,0x66C9 //CJK UNIFIED IDEOGRAPH - ,0x9DFB ,0x66BE //CJK UNIFIED IDEOGRAPH - ,0x9DFC ,0x66BC //CJK UNIFIED IDEOGRAPH - ,0x9E40 ,0x66C4 //CJK UNIFIED IDEOGRAPH - ,0x9E41 ,0x66B8 //CJK UNIFIED IDEOGRAPH - ,0x9E42 ,0x66D6 //CJK UNIFIED IDEOGRAPH - ,0x9E43 ,0x66DA //CJK UNIFIED IDEOGRAPH - ,0x9E44 ,0x66E0 //CJK UNIFIED IDEOGRAPH - ,0x9E45 ,0x663F //CJK UNIFIED IDEOGRAPH - ,0x9E46 ,0x66E6 //CJK UNIFIED IDEOGRAPH - ,0x9E47 ,0x66E9 //CJK UNIFIED IDEOGRAPH - ,0x9E48 ,0x66F0 //CJK UNIFIED IDEOGRAPH - ,0x9E49 ,0x66F5 //CJK UNIFIED IDEOGRAPH - ,0x9E4A ,0x66F7 //CJK UNIFIED IDEOGRAPH - ,0x9E4B ,0x670F //CJK UNIFIED IDEOGRAPH - ,0x9E4C ,0x6716 //CJK UNIFIED IDEOGRAPH - ,0x9E4D ,0x671E //CJK UNIFIED IDEOGRAPH - ,0x9E4E ,0x6726 //CJK UNIFIED IDEOGRAPH - ,0x9E4F ,0x6727 //CJK UNIFIED IDEOGRAPH - ,0x9E50 ,0x9738 //CJK UNIFIED IDEOGRAPH - ,0x9E51 ,0x672E //CJK UNIFIED IDEOGRAPH - ,0x9E52 ,0x673F //CJK UNIFIED IDEOGRAPH - ,0x9E53 ,0x6736 //CJK UNIFIED IDEOGRAPH - ,0x9E54 ,0x6741 //CJK UNIFIED IDEOGRAPH - ,0x9E55 ,0x6738 //CJK UNIFIED IDEOGRAPH - ,0x9E56 ,0x6737 //CJK UNIFIED IDEOGRAPH - ,0x9E57 ,0x6746 //CJK UNIFIED IDEOGRAPH - ,0x9E58 ,0x675E //CJK UNIFIED IDEOGRAPH - ,0x9E59 ,0x6760 //CJK UNIFIED IDEOGRAPH - ,0x9E5A ,0x6759 //CJK UNIFIED IDEOGRAPH - ,0x9E5B ,0x6763 //CJK UNIFIED IDEOGRAPH - ,0x9E5C ,0x6764 //CJK UNIFIED IDEOGRAPH - ,0x9E5D ,0x6789 //CJK UNIFIED IDEOGRAPH - ,0x9E5E ,0x6770 //CJK UNIFIED IDEOGRAPH - ,0x9E5F ,0x67A9 //CJK UNIFIED IDEOGRAPH - ,0x9E60 ,0x677C //CJK UNIFIED IDEOGRAPH - ,0x9E61 ,0x676A //CJK UNIFIED IDEOGRAPH - ,0x9E62 ,0x678C //CJK UNIFIED IDEOGRAPH - ,0x9E63 ,0x678B //CJK UNIFIED IDEOGRAPH - ,0x9E64 ,0x67A6 //CJK UNIFIED IDEOGRAPH - ,0x9E65 ,0x67A1 //CJK UNIFIED IDEOGRAPH - ,0x9E66 ,0x6785 //CJK UNIFIED IDEOGRAPH - ,0x9E67 ,0x67B7 //CJK UNIFIED IDEOGRAPH - ,0x9E68 ,0x67EF //CJK UNIFIED IDEOGRAPH - ,0x9E69 ,0x67B4 //CJK UNIFIED IDEOGRAPH - ,0x9E6A ,0x67EC //CJK UNIFIED IDEOGRAPH - ,0x9E6B ,0x67B3 //CJK UNIFIED IDEOGRAPH - ,0x9E6C ,0x67E9 //CJK UNIFIED IDEOGRAPH - ,0x9E6D ,0x67B8 //CJK UNIFIED IDEOGRAPH - ,0x9E6E ,0x67E4 //CJK UNIFIED IDEOGRAPH - ,0x9E6F ,0x67DE //CJK UNIFIED IDEOGRAPH - ,0x9E70 ,0x67DD //CJK UNIFIED IDEOGRAPH - ,0x9E71 ,0x67E2 //CJK UNIFIED IDEOGRAPH - ,0x9E72 ,0x67EE //CJK UNIFIED IDEOGRAPH - ,0x9E73 ,0x67B9 //CJK UNIFIED IDEOGRAPH - ,0x9E74 ,0x67CE //CJK UNIFIED IDEOGRAPH - ,0x9E75 ,0x67C6 //CJK UNIFIED IDEOGRAPH - ,0x9E76 ,0x67E7 //CJK UNIFIED IDEOGRAPH - ,0x9E77 ,0x6A9C //CJK UNIFIED IDEOGRAPH - ,0x9E78 ,0x681E //CJK UNIFIED IDEOGRAPH - ,0x9E79 ,0x6846 //CJK UNIFIED IDEOGRAPH - ,0x9E7A ,0x6829 //CJK UNIFIED IDEOGRAPH - ,0x9E7B ,0x6840 //CJK UNIFIED IDEOGRAPH - ,0x9E7C ,0x684D //CJK UNIFIED IDEOGRAPH - ,0x9E7D ,0x6832 //CJK UNIFIED IDEOGRAPH - ,0x9E7E ,0x684E //CJK UNIFIED IDEOGRAPH - ,0x9E80 ,0x68B3 //CJK UNIFIED IDEOGRAPH - ,0x9E81 ,0x682B //CJK UNIFIED IDEOGRAPH - ,0x9E82 ,0x6859 //CJK UNIFIED IDEOGRAPH - ,0x9E83 ,0x6863 //CJK UNIFIED IDEOGRAPH - ,0x9E84 ,0x6877 //CJK UNIFIED IDEOGRAPH - ,0x9E85 ,0x687F //CJK UNIFIED IDEOGRAPH - ,0x9E86 ,0x689F //CJK UNIFIED IDEOGRAPH - ,0x9E87 ,0x688F //CJK UNIFIED IDEOGRAPH - ,0x9E88 ,0x68AD //CJK UNIFIED IDEOGRAPH - ,0x9E89 ,0x6894 //CJK UNIFIED IDEOGRAPH - ,0x9E8A ,0x689D //CJK UNIFIED IDEOGRAPH - ,0x9E8B ,0x689B //CJK UNIFIED IDEOGRAPH - ,0x9E8C ,0x6883 //CJK UNIFIED IDEOGRAPH - ,0x9E8D ,0x6AAE //CJK UNIFIED IDEOGRAPH - ,0x9E8E ,0x68B9 //CJK UNIFIED IDEOGRAPH - ,0x9E8F ,0x6874 //CJK UNIFIED IDEOGRAPH - ,0x9E90 ,0x68B5 //CJK UNIFIED IDEOGRAPH - ,0x9E91 ,0x68A0 //CJK UNIFIED IDEOGRAPH - ,0x9E92 ,0x68BA //CJK UNIFIED IDEOGRAPH - ,0x9E93 ,0x690F //CJK UNIFIED IDEOGRAPH - ,0x9E94 ,0x688D //CJK UNIFIED IDEOGRAPH - ,0x9E95 ,0x687E //CJK UNIFIED IDEOGRAPH - ,0x9E96 ,0x6901 //CJK UNIFIED IDEOGRAPH - ,0x9E97 ,0x68CA //CJK UNIFIED IDEOGRAPH - ,0x9E98 ,0x6908 //CJK UNIFIED IDEOGRAPH - ,0x9E99 ,0x68D8 //CJK UNIFIED IDEOGRAPH - ,0x9E9A ,0x6922 //CJK UNIFIED IDEOGRAPH - ,0x9E9B ,0x6926 //CJK UNIFIED IDEOGRAPH - ,0x9E9C ,0x68E1 //CJK UNIFIED IDEOGRAPH - ,0x9E9D ,0x690C //CJK UNIFIED IDEOGRAPH - ,0x9E9E ,0x68CD //CJK UNIFIED IDEOGRAPH - ,0x9E9F ,0x68D4 //CJK UNIFIED IDEOGRAPH - ,0x9EA0 ,0x68E7 //CJK UNIFIED IDEOGRAPH - ,0x9EA1 ,0x68D5 //CJK UNIFIED IDEOGRAPH - ,0x9EA2 ,0x6936 //CJK UNIFIED IDEOGRAPH - ,0x9EA3 ,0x6912 //CJK UNIFIED IDEOGRAPH - ,0x9EA4 ,0x6904 //CJK UNIFIED IDEOGRAPH - ,0x9EA5 ,0x68D7 //CJK UNIFIED IDEOGRAPH - ,0x9EA6 ,0x68E3 //CJK UNIFIED IDEOGRAPH - ,0x9EA7 ,0x6925 //CJK UNIFIED IDEOGRAPH - ,0x9EA8 ,0x68F9 //CJK UNIFIED IDEOGRAPH - ,0x9EA9 ,0x68E0 //CJK UNIFIED IDEOGRAPH - ,0x9EAA ,0x68EF //CJK UNIFIED IDEOGRAPH - ,0x9EAB ,0x6928 //CJK UNIFIED IDEOGRAPH - ,0x9EAC ,0x692A //CJK UNIFIED IDEOGRAPH - ,0x9EAD ,0x691A //CJK UNIFIED IDEOGRAPH - ,0x9EAE ,0x6923 //CJK UNIFIED IDEOGRAPH - ,0x9EAF ,0x6921 //CJK UNIFIED IDEOGRAPH - ,0x9EB0 ,0x68C6 //CJK UNIFIED IDEOGRAPH - ,0x9EB1 ,0x6979 //CJK UNIFIED IDEOGRAPH - ,0x9EB2 ,0x6977 //CJK UNIFIED IDEOGRAPH - ,0x9EB3 ,0x695C //CJK UNIFIED IDEOGRAPH - ,0x9EB4 ,0x6978 //CJK UNIFIED IDEOGRAPH - ,0x9EB5 ,0x696B //CJK UNIFIED IDEOGRAPH - ,0x9EB6 ,0x6954 //CJK UNIFIED IDEOGRAPH - ,0x9EB7 ,0x697E //CJK UNIFIED IDEOGRAPH - ,0x9EB8 ,0x696E //CJK UNIFIED IDEOGRAPH - ,0x9EB9 ,0x6939 //CJK UNIFIED IDEOGRAPH - ,0x9EBA ,0x6974 //CJK UNIFIED IDEOGRAPH - ,0x9EBB ,0x693D //CJK UNIFIED IDEOGRAPH - ,0x9EBC ,0x6959 //CJK UNIFIED IDEOGRAPH - ,0x9EBD ,0x6930 //CJK UNIFIED IDEOGRAPH - ,0x9EBE ,0x6961 //CJK UNIFIED IDEOGRAPH - ,0x9EBF ,0x695E //CJK UNIFIED IDEOGRAPH - ,0x9EC0 ,0x695D //CJK UNIFIED IDEOGRAPH - ,0x9EC1 ,0x6981 //CJK UNIFIED IDEOGRAPH - ,0x9EC2 ,0x696A //CJK UNIFIED IDEOGRAPH - ,0x9EC3 ,0x69B2 //CJK UNIFIED IDEOGRAPH - ,0x9EC4 ,0x69AE //CJK UNIFIED IDEOGRAPH - ,0x9EC5 ,0x69D0 //CJK UNIFIED IDEOGRAPH - ,0x9EC6 ,0x69BF //CJK UNIFIED IDEOGRAPH - ,0x9EC7 ,0x69C1 //CJK UNIFIED IDEOGRAPH - ,0x9EC8 ,0x69D3 //CJK UNIFIED IDEOGRAPH - ,0x9EC9 ,0x69BE //CJK UNIFIED IDEOGRAPH - ,0x9ECA ,0x69CE //CJK UNIFIED IDEOGRAPH - ,0x9ECB ,0x5BE8 //CJK UNIFIED IDEOGRAPH - ,0x9ECC ,0x69CA //CJK UNIFIED IDEOGRAPH - ,0x9ECD ,0x69DD //CJK UNIFIED IDEOGRAPH - ,0x9ECE ,0x69BB //CJK UNIFIED IDEOGRAPH - ,0x9ECF ,0x69C3 //CJK UNIFIED IDEOGRAPH - ,0x9ED0 ,0x69A7 //CJK UNIFIED IDEOGRAPH - ,0x9ED1 ,0x6A2E //CJK UNIFIED IDEOGRAPH - ,0x9ED2 ,0x6991 //CJK UNIFIED IDEOGRAPH - ,0x9ED3 ,0x69A0 //CJK UNIFIED IDEOGRAPH - ,0x9ED4 ,0x699C //CJK UNIFIED IDEOGRAPH - ,0x9ED5 ,0x6995 //CJK UNIFIED IDEOGRAPH - ,0x9ED6 ,0x69B4 //CJK UNIFIED IDEOGRAPH - ,0x9ED7 ,0x69DE //CJK UNIFIED IDEOGRAPH - ,0x9ED8 ,0x69E8 //CJK UNIFIED IDEOGRAPH - ,0x9ED9 ,0x6A02 //CJK UNIFIED IDEOGRAPH - ,0x9EDA ,0x6A1B //CJK UNIFIED IDEOGRAPH - ,0x9EDB ,0x69FF //CJK UNIFIED IDEOGRAPH - ,0x9EDC ,0x6B0A //CJK UNIFIED IDEOGRAPH - ,0x9EDD ,0x69F9 //CJK UNIFIED IDEOGRAPH - ,0x9EDE ,0x69F2 //CJK UNIFIED IDEOGRAPH - ,0x9EDF ,0x69E7 //CJK UNIFIED IDEOGRAPH - ,0x9EE0 ,0x6A05 //CJK UNIFIED IDEOGRAPH - ,0x9EE1 ,0x69B1 //CJK UNIFIED IDEOGRAPH - ,0x9EE2 ,0x6A1E //CJK UNIFIED IDEOGRAPH - ,0x9EE3 ,0x69ED //CJK UNIFIED IDEOGRAPH - ,0x9EE4 ,0x6A14 //CJK UNIFIED IDEOGRAPH - ,0x9EE5 ,0x69EB //CJK UNIFIED IDEOGRAPH - ,0x9EE6 ,0x6A0A //CJK UNIFIED IDEOGRAPH - ,0x9EE7 ,0x6A12 //CJK UNIFIED IDEOGRAPH - ,0x9EE8 ,0x6AC1 //CJK UNIFIED IDEOGRAPH - ,0x9EE9 ,0x6A23 //CJK UNIFIED IDEOGRAPH - ,0x9EEA ,0x6A13 //CJK UNIFIED IDEOGRAPH - ,0x9EEB ,0x6A44 //CJK UNIFIED IDEOGRAPH - ,0x9EEC ,0x6A0C //CJK UNIFIED IDEOGRAPH - ,0x9EED ,0x6A72 //CJK UNIFIED IDEOGRAPH - ,0x9EEE ,0x6A36 //CJK UNIFIED IDEOGRAPH - ,0x9EEF ,0x6A78 //CJK UNIFIED IDEOGRAPH - ,0x9EF0 ,0x6A47 //CJK UNIFIED IDEOGRAPH - ,0x9EF1 ,0x6A62 //CJK UNIFIED IDEOGRAPH - ,0x9EF2 ,0x6A59 //CJK UNIFIED IDEOGRAPH - ,0x9EF3 ,0x6A66 //CJK UNIFIED IDEOGRAPH - ,0x9EF4 ,0x6A48 //CJK UNIFIED IDEOGRAPH - ,0x9EF5 ,0x6A38 //CJK UNIFIED IDEOGRAPH - ,0x9EF6 ,0x6A22 //CJK UNIFIED IDEOGRAPH - ,0x9EF7 ,0x6A90 //CJK UNIFIED IDEOGRAPH - ,0x9EF8 ,0x6A8D //CJK UNIFIED IDEOGRAPH - ,0x9EF9 ,0x6AA0 //CJK UNIFIED IDEOGRAPH - ,0x9EFA ,0x6A84 //CJK UNIFIED IDEOGRAPH - ,0x9EFB ,0x6AA2 //CJK UNIFIED IDEOGRAPH - ,0x9EFC ,0x6AA3 //CJK UNIFIED IDEOGRAPH - ,0x9F40 ,0x6A97 //CJK UNIFIED IDEOGRAPH - ,0x9F41 ,0x8617 //CJK UNIFIED IDEOGRAPH - ,0x9F42 ,0x6ABB //CJK UNIFIED IDEOGRAPH - ,0x9F43 ,0x6AC3 //CJK UNIFIED IDEOGRAPH - ,0x9F44 ,0x6AC2 //CJK UNIFIED IDEOGRAPH - ,0x9F45 ,0x6AB8 //CJK UNIFIED IDEOGRAPH - ,0x9F46 ,0x6AB3 //CJK UNIFIED IDEOGRAPH - ,0x9F47 ,0x6AAC //CJK UNIFIED IDEOGRAPH - ,0x9F48 ,0x6ADE //CJK UNIFIED IDEOGRAPH - ,0x9F49 ,0x6AD1 //CJK UNIFIED IDEOGRAPH - ,0x9F4A ,0x6ADF //CJK UNIFIED IDEOGRAPH - ,0x9F4B ,0x6AAA //CJK UNIFIED IDEOGRAPH - ,0x9F4C ,0x6ADA //CJK UNIFIED IDEOGRAPH - ,0x9F4D ,0x6AEA //CJK UNIFIED IDEOGRAPH - ,0x9F4E ,0x6AFB //CJK UNIFIED IDEOGRAPH - ,0x9F4F ,0x6B05 //CJK UNIFIED IDEOGRAPH - ,0x9F50 ,0x8616 //CJK UNIFIED IDEOGRAPH - ,0x9F51 ,0x6AFA //CJK UNIFIED IDEOGRAPH - ,0x9F52 ,0x6B12 //CJK UNIFIED IDEOGRAPH - ,0x9F53 ,0x6B16 //CJK UNIFIED IDEOGRAPH - ,0x9F54 ,0x9B31 //CJK UNIFIED IDEOGRAPH - ,0x9F55 ,0x6B1F //CJK UNIFIED IDEOGRAPH - ,0x9F56 ,0x6B38 //CJK UNIFIED IDEOGRAPH - ,0x9F57 ,0x6B37 //CJK UNIFIED IDEOGRAPH - ,0x9F58 ,0x76DC //CJK UNIFIED IDEOGRAPH - ,0x9F59 ,0x6B39 //CJK UNIFIED IDEOGRAPH - ,0x9F5A ,0x98EE //CJK UNIFIED IDEOGRAPH - ,0x9F5B ,0x6B47 //CJK UNIFIED IDEOGRAPH - ,0x9F5C ,0x6B43 //CJK UNIFIED IDEOGRAPH - ,0x9F5D ,0x6B49 //CJK UNIFIED IDEOGRAPH - ,0x9F5E ,0x6B50 //CJK UNIFIED IDEOGRAPH - ,0x9F5F ,0x6B59 //CJK UNIFIED IDEOGRAPH - ,0x9F60 ,0x6B54 //CJK UNIFIED IDEOGRAPH - ,0x9F61 ,0x6B5B //CJK UNIFIED IDEOGRAPH - ,0x9F62 ,0x6B5F //CJK UNIFIED IDEOGRAPH - ,0x9F63 ,0x6B61 //CJK UNIFIED IDEOGRAPH - ,0x9F64 ,0x6B78 //CJK UNIFIED IDEOGRAPH - ,0x9F65 ,0x6B79 //CJK UNIFIED IDEOGRAPH - ,0x9F66 ,0x6B7F //CJK UNIFIED IDEOGRAPH - ,0x9F67 ,0x6B80 //CJK UNIFIED IDEOGRAPH - ,0x9F68 ,0x6B84 //CJK UNIFIED IDEOGRAPH - ,0x9F69 ,0x6B83 //CJK UNIFIED IDEOGRAPH - ,0x9F6A ,0x6B8D //CJK UNIFIED IDEOGRAPH - ,0x9F6B ,0x6B98 //CJK UNIFIED IDEOGRAPH - ,0x9F6C ,0x6B95 //CJK UNIFIED IDEOGRAPH - ,0x9F6D ,0x6B9E //CJK UNIFIED IDEOGRAPH - ,0x9F6E ,0x6BA4 //CJK UNIFIED IDEOGRAPH - ,0x9F6F ,0x6BAA //CJK UNIFIED IDEOGRAPH - ,0x9F70 ,0x6BAB //CJK UNIFIED IDEOGRAPH - ,0x9F71 ,0x6BAF //CJK UNIFIED IDEOGRAPH - ,0x9F72 ,0x6BB2 //CJK UNIFIED IDEOGRAPH - ,0x9F73 ,0x6BB1 //CJK UNIFIED IDEOGRAPH - ,0x9F74 ,0x6BB3 //CJK UNIFIED IDEOGRAPH - ,0x9F75 ,0x6BB7 //CJK UNIFIED IDEOGRAPH - ,0x9F76 ,0x6BBC //CJK UNIFIED IDEOGRAPH - ,0x9F77 ,0x6BC6 //CJK UNIFIED IDEOGRAPH - ,0x9F78 ,0x6BCB //CJK UNIFIED IDEOGRAPH - ,0x9F79 ,0x6BD3 //CJK UNIFIED IDEOGRAPH - ,0x9F7A ,0x6BDF //CJK UNIFIED IDEOGRAPH - ,0x9F7B ,0x6BEC //CJK UNIFIED IDEOGRAPH - ,0x9F7C ,0x6BEB //CJK UNIFIED IDEOGRAPH - ,0x9F7D ,0x6BF3 //CJK UNIFIED IDEOGRAPH - ,0x9F7E ,0x6BEF //CJK UNIFIED IDEOGRAPH - ,0x9F80 ,0x9EBE //CJK UNIFIED IDEOGRAPH - ,0x9F81 ,0x6C08 //CJK UNIFIED IDEOGRAPH - ,0x9F82 ,0x6C13 //CJK UNIFIED IDEOGRAPH - ,0x9F83 ,0x6C14 //CJK UNIFIED IDEOGRAPH - ,0x9F84 ,0x6C1B //CJK UNIFIED IDEOGRAPH - ,0x9F85 ,0x6C24 //CJK UNIFIED IDEOGRAPH - ,0x9F86 ,0x6C23 //CJK UNIFIED IDEOGRAPH - ,0x9F87 ,0x6C5E //CJK UNIFIED IDEOGRAPH - ,0x9F88 ,0x6C55 //CJK UNIFIED IDEOGRAPH - ,0x9F89 ,0x6C62 //CJK UNIFIED IDEOGRAPH - ,0x9F8A ,0x6C6A //CJK UNIFIED IDEOGRAPH - ,0x9F8B ,0x6C82 //CJK UNIFIED IDEOGRAPH - ,0x9F8C ,0x6C8D //CJK UNIFIED IDEOGRAPH - ,0x9F8D ,0x6C9A //CJK UNIFIED IDEOGRAPH - ,0x9F8E ,0x6C81 //CJK UNIFIED IDEOGRAPH - ,0x9F8F ,0x6C9B //CJK UNIFIED IDEOGRAPH - ,0x9F90 ,0x6C7E //CJK UNIFIED IDEOGRAPH - ,0x9F91 ,0x6C68 //CJK UNIFIED IDEOGRAPH - ,0x9F92 ,0x6C73 //CJK UNIFIED IDEOGRAPH - ,0x9F93 ,0x6C92 //CJK UNIFIED IDEOGRAPH - ,0x9F94 ,0x6C90 //CJK UNIFIED IDEOGRAPH - ,0x9F95 ,0x6CC4 //CJK UNIFIED IDEOGRAPH - ,0x9F96 ,0x6CF1 //CJK UNIFIED IDEOGRAPH - ,0x9F97 ,0x6CD3 //CJK UNIFIED IDEOGRAPH - ,0x9F98 ,0x6CBD //CJK UNIFIED IDEOGRAPH - ,0x9F99 ,0x6CD7 //CJK UNIFIED IDEOGRAPH - ,0x9F9A ,0x6CC5 //CJK UNIFIED IDEOGRAPH - ,0x9F9B ,0x6CDD //CJK UNIFIED IDEOGRAPH - ,0x9F9C ,0x6CAE //CJK UNIFIED IDEOGRAPH - ,0x9F9D ,0x6CB1 //CJK UNIFIED IDEOGRAPH - ,0x9F9E ,0x6CBE //CJK UNIFIED IDEOGRAPH - ,0x9F9F ,0x6CBA //CJK UNIFIED IDEOGRAPH - ,0x9FA0 ,0x6CDB //CJK UNIFIED IDEOGRAPH - ,0x9FA1 ,0x6CEF //CJK UNIFIED IDEOGRAPH - ,0x9FA2 ,0x6CD9 //CJK UNIFIED IDEOGRAPH - ,0x9FA3 ,0x6CEA //CJK UNIFIED IDEOGRAPH - ,0x9FA4 ,0x6D1F //CJK UNIFIED IDEOGRAPH - ,0x9FA5 ,0x884D //CJK UNIFIED IDEOGRAPH - ,0x9FA6 ,0x6D36 //CJK UNIFIED IDEOGRAPH - ,0x9FA7 ,0x6D2B //CJK UNIFIED IDEOGRAPH - ,0x9FA8 ,0x6D3D //CJK UNIFIED IDEOGRAPH - ,0x9FA9 ,0x6D38 //CJK UNIFIED IDEOGRAPH - ,0x9FAA ,0x6D19 //CJK UNIFIED IDEOGRAPH - ,0x9FAB ,0x6D35 //CJK UNIFIED IDEOGRAPH - ,0x9FAC ,0x6D33 //CJK UNIFIED IDEOGRAPH - ,0x9FAD ,0x6D12 //CJK UNIFIED IDEOGRAPH - ,0x9FAE ,0x6D0C //CJK UNIFIED IDEOGRAPH - ,0x9FAF ,0x6D63 //CJK UNIFIED IDEOGRAPH - ,0x9FB0 ,0x6D93 //CJK UNIFIED IDEOGRAPH - ,0x9FB1 ,0x6D64 //CJK UNIFIED IDEOGRAPH - ,0x9FB2 ,0x6D5A //CJK UNIFIED IDEOGRAPH - ,0x9FB3 ,0x6D79 //CJK UNIFIED IDEOGRAPH - ,0x9FB4 ,0x6D59 //CJK UNIFIED IDEOGRAPH - ,0x9FB5 ,0x6D8E //CJK UNIFIED IDEOGRAPH - ,0x9FB6 ,0x6D95 //CJK UNIFIED IDEOGRAPH - ,0x9FB7 ,0x6FE4 //CJK UNIFIED IDEOGRAPH - ,0x9FB8 ,0x6D85 //CJK UNIFIED IDEOGRAPH - ,0x9FB9 ,0x6DF9 //CJK UNIFIED IDEOGRAPH - ,0x9FBA ,0x6E15 //CJK UNIFIED IDEOGRAPH - ,0x9FBB ,0x6E0A //CJK UNIFIED IDEOGRAPH - ,0x9FBC ,0x6DB5 //CJK UNIFIED IDEOGRAPH - ,0x9FBD ,0x6DC7 //CJK UNIFIED IDEOGRAPH - ,0x9FBE ,0x6DE6 //CJK UNIFIED IDEOGRAPH - ,0x9FBF ,0x6DB8 //CJK UNIFIED IDEOGRAPH - ,0x9FC0 ,0x6DC6 //CJK UNIFIED IDEOGRAPH - ,0x9FC1 ,0x6DEC //CJK UNIFIED IDEOGRAPH - ,0x9FC2 ,0x6DDE //CJK UNIFIED IDEOGRAPH - ,0x9FC3 ,0x6DCC //CJK UNIFIED IDEOGRAPH - ,0x9FC4 ,0x6DE8 //CJK UNIFIED IDEOGRAPH - ,0x9FC5 ,0x6DD2 //CJK UNIFIED IDEOGRAPH - ,0x9FC6 ,0x6DC5 //CJK UNIFIED IDEOGRAPH - ,0x9FC7 ,0x6DFA //CJK UNIFIED IDEOGRAPH - ,0x9FC8 ,0x6DD9 //CJK UNIFIED IDEOGRAPH - ,0x9FC9 ,0x6DE4 //CJK UNIFIED IDEOGRAPH - ,0x9FCA ,0x6DD5 //CJK UNIFIED IDEOGRAPH - ,0x9FCB ,0x6DEA //CJK UNIFIED IDEOGRAPH - ,0x9FCC ,0x6DEE //CJK UNIFIED IDEOGRAPH - ,0x9FCD ,0x6E2D //CJK UNIFIED IDEOGRAPH - ,0x9FCE ,0x6E6E //CJK UNIFIED IDEOGRAPH - ,0x9FCF ,0x6E2E //CJK UNIFIED IDEOGRAPH - ,0x9FD0 ,0x6E19 //CJK UNIFIED IDEOGRAPH - ,0x9FD1 ,0x6E72 //CJK UNIFIED IDEOGRAPH - ,0x9FD2 ,0x6E5F //CJK UNIFIED IDEOGRAPH - ,0x9FD3 ,0x6E3E //CJK UNIFIED IDEOGRAPH - ,0x9FD4 ,0x6E23 //CJK UNIFIED IDEOGRAPH - ,0x9FD5 ,0x6E6B //CJK UNIFIED IDEOGRAPH - ,0x9FD6 ,0x6E2B //CJK UNIFIED IDEOGRAPH - ,0x9FD7 ,0x6E76 //CJK UNIFIED IDEOGRAPH - ,0x9FD8 ,0x6E4D //CJK UNIFIED IDEOGRAPH - ,0x9FD9 ,0x6E1F //CJK UNIFIED IDEOGRAPH - ,0x9FDA ,0x6E43 //CJK UNIFIED IDEOGRAPH - ,0x9FDB ,0x6E3A //CJK UNIFIED IDEOGRAPH - ,0x9FDC ,0x6E4E //CJK UNIFIED IDEOGRAPH - ,0x9FDD ,0x6E24 //CJK UNIFIED IDEOGRAPH - ,0x9FDE ,0x6EFF //CJK UNIFIED IDEOGRAPH - ,0x9FDF ,0x6E1D //CJK UNIFIED IDEOGRAPH - ,0x9FE0 ,0x6E38 //CJK UNIFIED IDEOGRAPH - ,0x9FE1 ,0x6E82 //CJK UNIFIED IDEOGRAPH - ,0x9FE2 ,0x6EAA //CJK UNIFIED IDEOGRAPH - ,0x9FE3 ,0x6E98 //CJK UNIFIED IDEOGRAPH - ,0x9FE4 ,0x6EC9 //CJK UNIFIED IDEOGRAPH - ,0x9FE5 ,0x6EB7 //CJK UNIFIED IDEOGRAPH - ,0x9FE6 ,0x6ED3 //CJK UNIFIED IDEOGRAPH - ,0x9FE7 ,0x6EBD //CJK UNIFIED IDEOGRAPH - ,0x9FE8 ,0x6EAF //CJK UNIFIED IDEOGRAPH - ,0x9FE9 ,0x6EC4 //CJK UNIFIED IDEOGRAPH - ,0x9FEA ,0x6EB2 //CJK UNIFIED IDEOGRAPH - ,0x9FEB ,0x6ED4 //CJK UNIFIED IDEOGRAPH - ,0x9FEC ,0x6ED5 //CJK UNIFIED IDEOGRAPH - ,0x9FED ,0x6E8F //CJK UNIFIED IDEOGRAPH - ,0x9FEE ,0x6EA5 //CJK UNIFIED IDEOGRAPH - ,0x9FEF ,0x6EC2 //CJK UNIFIED IDEOGRAPH - ,0x9FF0 ,0x6E9F //CJK UNIFIED IDEOGRAPH - ,0x9FF1 ,0x6F41 //CJK UNIFIED IDEOGRAPH - ,0x9FF2 ,0x6F11 //CJK UNIFIED IDEOGRAPH - ,0x9FF3 ,0x704C //CJK UNIFIED IDEOGRAPH - ,0x9FF4 ,0x6EEC //CJK UNIFIED IDEOGRAPH - ,0x9FF5 ,0x6EF8 //CJK UNIFIED IDEOGRAPH - ,0x9FF6 ,0x6EFE //CJK UNIFIED IDEOGRAPH - ,0x9FF7 ,0x6F3F //CJK UNIFIED IDEOGRAPH - ,0x9FF8 ,0x6EF2 //CJK UNIFIED IDEOGRAPH - ,0x9FF9 ,0x6F31 //CJK UNIFIED IDEOGRAPH - ,0x9FFA ,0x6EEF //CJK UNIFIED IDEOGRAPH - ,0x9FFB ,0x6F32 //CJK UNIFIED IDEOGRAPH - ,0x9FFC ,0x6ECC //CJK UNIFIED IDEOGRAPH - ,0xE040 ,0x6F3E //CJK UNIFIED IDEOGRAPH - ,0xE041 ,0x6F13 //CJK UNIFIED IDEOGRAPH - ,0xE042 ,0x6EF7 //CJK UNIFIED IDEOGRAPH - ,0xE043 ,0x6F86 //CJK UNIFIED IDEOGRAPH - ,0xE044 ,0x6F7A //CJK UNIFIED IDEOGRAPH - ,0xE045 ,0x6F78 //CJK UNIFIED IDEOGRAPH - ,0xE046 ,0x6F81 //CJK UNIFIED IDEOGRAPH - ,0xE047 ,0x6F80 //CJK UNIFIED IDEOGRAPH - ,0xE048 ,0x6F6F //CJK UNIFIED IDEOGRAPH - ,0xE049 ,0x6F5B //CJK UNIFIED IDEOGRAPH - ,0xE04A ,0x6FF3 //CJK UNIFIED IDEOGRAPH - ,0xE04B ,0x6F6D //CJK UNIFIED IDEOGRAPH - ,0xE04C ,0x6F82 //CJK UNIFIED IDEOGRAPH - ,0xE04D ,0x6F7C //CJK UNIFIED IDEOGRAPH - ,0xE04E ,0x6F58 //CJK UNIFIED IDEOGRAPH - ,0xE04F ,0x6F8E //CJK UNIFIED IDEOGRAPH - ,0xE050 ,0x6F91 //CJK UNIFIED IDEOGRAPH - ,0xE051 ,0x6FC2 //CJK UNIFIED IDEOGRAPH - ,0xE052 ,0x6F66 //CJK UNIFIED IDEOGRAPH - ,0xE053 ,0x6FB3 //CJK UNIFIED IDEOGRAPH - ,0xE054 ,0x6FA3 //CJK UNIFIED IDEOGRAPH - ,0xE055 ,0x6FA1 //CJK UNIFIED IDEOGRAPH - ,0xE056 ,0x6FA4 //CJK UNIFIED IDEOGRAPH - ,0xE057 ,0x6FB9 //CJK UNIFIED IDEOGRAPH - ,0xE058 ,0x6FC6 //CJK UNIFIED IDEOGRAPH - ,0xE059 ,0x6FAA //CJK UNIFIED IDEOGRAPH - ,0xE05A ,0x6FDF //CJK UNIFIED IDEOGRAPH - ,0xE05B ,0x6FD5 //CJK UNIFIED IDEOGRAPH - ,0xE05C ,0x6FEC //CJK UNIFIED IDEOGRAPH - ,0xE05D ,0x6FD4 //CJK UNIFIED IDEOGRAPH - ,0xE05E ,0x6FD8 //CJK UNIFIED IDEOGRAPH - ,0xE05F ,0x6FF1 //CJK UNIFIED IDEOGRAPH - ,0xE060 ,0x6FEE //CJK UNIFIED IDEOGRAPH - ,0xE061 ,0x6FDB //CJK UNIFIED IDEOGRAPH - ,0xE062 ,0x7009 //CJK UNIFIED IDEOGRAPH - ,0xE063 ,0x700B //CJK UNIFIED IDEOGRAPH - ,0xE064 ,0x6FFA //CJK UNIFIED IDEOGRAPH - ,0xE065 ,0x7011 //CJK UNIFIED IDEOGRAPH - ,0xE066 ,0x7001 //CJK UNIFIED IDEOGRAPH - ,0xE067 ,0x700F //CJK UNIFIED IDEOGRAPH - ,0xE068 ,0x6FFE //CJK UNIFIED IDEOGRAPH - ,0xE069 ,0x701B //CJK UNIFIED IDEOGRAPH - ,0xE06A ,0x701A //CJK UNIFIED IDEOGRAPH - ,0xE06B ,0x6F74 //CJK UNIFIED IDEOGRAPH - ,0xE06C ,0x701D //CJK UNIFIED IDEOGRAPH - ,0xE06D ,0x7018 //CJK UNIFIED IDEOGRAPH - ,0xE06E ,0x701F //CJK UNIFIED IDEOGRAPH - ,0xE06F ,0x7030 //CJK UNIFIED IDEOGRAPH - ,0xE070 ,0x703E //CJK UNIFIED IDEOGRAPH - ,0xE071 ,0x7032 //CJK UNIFIED IDEOGRAPH - ,0xE072 ,0x7051 //CJK UNIFIED IDEOGRAPH - ,0xE073 ,0x7063 //CJK UNIFIED IDEOGRAPH - ,0xE074 ,0x7099 //CJK UNIFIED IDEOGRAPH - ,0xE075 ,0x7092 //CJK UNIFIED IDEOGRAPH - ,0xE076 ,0x70AF //CJK UNIFIED IDEOGRAPH - ,0xE077 ,0x70F1 //CJK UNIFIED IDEOGRAPH - ,0xE078 ,0x70AC //CJK UNIFIED IDEOGRAPH - ,0xE079 ,0x70B8 //CJK UNIFIED IDEOGRAPH - ,0xE07A ,0x70B3 //CJK UNIFIED IDEOGRAPH - ,0xE07B ,0x70AE //CJK UNIFIED IDEOGRAPH - ,0xE07C ,0x70DF //CJK UNIFIED IDEOGRAPH - ,0xE07D ,0x70CB //CJK UNIFIED IDEOGRAPH - ,0xE07E ,0x70DD //CJK UNIFIED IDEOGRAPH - ,0xE080 ,0x70D9 //CJK UNIFIED IDEOGRAPH - ,0xE081 ,0x7109 //CJK UNIFIED IDEOGRAPH - ,0xE082 ,0x70FD //CJK UNIFIED IDEOGRAPH - ,0xE083 ,0x711C //CJK UNIFIED IDEOGRAPH - ,0xE084 ,0x7119 //CJK UNIFIED IDEOGRAPH - ,0xE085 ,0x7165 //CJK UNIFIED IDEOGRAPH - ,0xE086 ,0x7155 //CJK UNIFIED IDEOGRAPH - ,0xE087 ,0x7188 //CJK UNIFIED IDEOGRAPH - ,0xE088 ,0x7166 //CJK UNIFIED IDEOGRAPH - ,0xE089 ,0x7162 //CJK UNIFIED IDEOGRAPH - ,0xE08A ,0x714C //CJK UNIFIED IDEOGRAPH - ,0xE08B ,0x7156 //CJK UNIFIED IDEOGRAPH - ,0xE08C ,0x716C //CJK UNIFIED IDEOGRAPH - ,0xE08D ,0x718F //CJK UNIFIED IDEOGRAPH - ,0xE08E ,0x71FB //CJK UNIFIED IDEOGRAPH - ,0xE08F ,0x7184 //CJK UNIFIED IDEOGRAPH - ,0xE090 ,0x7195 //CJK UNIFIED IDEOGRAPH - ,0xE091 ,0x71A8 //CJK UNIFIED IDEOGRAPH - ,0xE092 ,0x71AC //CJK UNIFIED IDEOGRAPH - ,0xE093 ,0x71D7 //CJK UNIFIED IDEOGRAPH - ,0xE094 ,0x71B9 //CJK UNIFIED IDEOGRAPH - ,0xE095 ,0x71BE //CJK UNIFIED IDEOGRAPH - ,0xE096 ,0x71D2 //CJK UNIFIED IDEOGRAPH - ,0xE097 ,0x71C9 //CJK UNIFIED IDEOGRAPH - ,0xE098 ,0x71D4 //CJK UNIFIED IDEOGRAPH - ,0xE099 ,0x71CE //CJK UNIFIED IDEOGRAPH - ,0xE09A ,0x71E0 //CJK UNIFIED IDEOGRAPH - ,0xE09B ,0x71EC //CJK UNIFIED IDEOGRAPH - ,0xE09C ,0x71E7 //CJK UNIFIED IDEOGRAPH - ,0xE09D ,0x71F5 //CJK UNIFIED IDEOGRAPH - ,0xE09E ,0x71FC //CJK UNIFIED IDEOGRAPH - ,0xE09F ,0x71F9 //CJK UNIFIED IDEOGRAPH - ,0xE0A0 ,0x71FF //CJK UNIFIED IDEOGRAPH - ,0xE0A1 ,0x720D //CJK UNIFIED IDEOGRAPH - ,0xE0A2 ,0x7210 //CJK UNIFIED IDEOGRAPH - ,0xE0A3 ,0x721B //CJK UNIFIED IDEOGRAPH - ,0xE0A4 ,0x7228 //CJK UNIFIED IDEOGRAPH - ,0xE0A5 ,0x722D //CJK UNIFIED IDEOGRAPH - ,0xE0A6 ,0x722C //CJK UNIFIED IDEOGRAPH - ,0xE0A7 ,0x7230 //CJK UNIFIED IDEOGRAPH - ,0xE0A8 ,0x7232 //CJK UNIFIED IDEOGRAPH - ,0xE0A9 ,0x723B //CJK UNIFIED IDEOGRAPH - ,0xE0AA ,0x723C //CJK UNIFIED IDEOGRAPH - ,0xE0AB ,0x723F //CJK UNIFIED IDEOGRAPH - ,0xE0AC ,0x7240 //CJK UNIFIED IDEOGRAPH - ,0xE0AD ,0x7246 //CJK UNIFIED IDEOGRAPH - ,0xE0AE ,0x724B //CJK UNIFIED IDEOGRAPH - ,0xE0AF ,0x7258 //CJK UNIFIED IDEOGRAPH - ,0xE0B0 ,0x7274 //CJK UNIFIED IDEOGRAPH - ,0xE0B1 ,0x727E //CJK UNIFIED IDEOGRAPH - ,0xE0B2 ,0x7282 //CJK UNIFIED IDEOGRAPH - ,0xE0B3 ,0x7281 //CJK UNIFIED IDEOGRAPH - ,0xE0B4 ,0x7287 //CJK UNIFIED IDEOGRAPH - ,0xE0B5 ,0x7292 //CJK UNIFIED IDEOGRAPH - ,0xE0B6 ,0x7296 //CJK UNIFIED IDEOGRAPH - ,0xE0B7 ,0x72A2 //CJK UNIFIED IDEOGRAPH - ,0xE0B8 ,0x72A7 //CJK UNIFIED IDEOGRAPH - ,0xE0B9 ,0x72B9 //CJK UNIFIED IDEOGRAPH - ,0xE0BA ,0x72B2 //CJK UNIFIED IDEOGRAPH - ,0xE0BB ,0x72C3 //CJK UNIFIED IDEOGRAPH - ,0xE0BC ,0x72C6 //CJK UNIFIED IDEOGRAPH - ,0xE0BD ,0x72C4 //CJK UNIFIED IDEOGRAPH - ,0xE0BE ,0x72CE //CJK UNIFIED IDEOGRAPH - ,0xE0BF ,0x72D2 //CJK UNIFIED IDEOGRAPH - ,0xE0C0 ,0x72E2 //CJK UNIFIED IDEOGRAPH - ,0xE0C1 ,0x72E0 //CJK UNIFIED IDEOGRAPH - ,0xE0C2 ,0x72E1 //CJK UNIFIED IDEOGRAPH - ,0xE0C3 ,0x72F9 //CJK UNIFIED IDEOGRAPH - ,0xE0C4 ,0x72F7 //CJK UNIFIED IDEOGRAPH - ,0xE0C5 ,0x500F //CJK UNIFIED IDEOGRAPH - ,0xE0C6 ,0x7317 //CJK UNIFIED IDEOGRAPH - ,0xE0C7 ,0x730A //CJK UNIFIED IDEOGRAPH - ,0xE0C8 ,0x731C //CJK UNIFIED IDEOGRAPH - ,0xE0C9 ,0x7316 //CJK UNIFIED IDEOGRAPH - ,0xE0CA ,0x731D //CJK UNIFIED IDEOGRAPH - ,0xE0CB ,0x7334 //CJK UNIFIED IDEOGRAPH - ,0xE0CC ,0x732F //CJK UNIFIED IDEOGRAPH - ,0xE0CD ,0x7329 //CJK UNIFIED IDEOGRAPH - ,0xE0CE ,0x7325 //CJK UNIFIED IDEOGRAPH - ,0xE0CF ,0x733E //CJK UNIFIED IDEOGRAPH - ,0xE0D0 ,0x734E //CJK UNIFIED IDEOGRAPH - ,0xE0D1 ,0x734F //CJK UNIFIED IDEOGRAPH - ,0xE0D2 ,0x9ED8 //CJK UNIFIED IDEOGRAPH - ,0xE0D3 ,0x7357 //CJK UNIFIED IDEOGRAPH - ,0xE0D4 ,0x736A //CJK UNIFIED IDEOGRAPH - ,0xE0D5 ,0x7368 //CJK UNIFIED IDEOGRAPH - ,0xE0D6 ,0x7370 //CJK UNIFIED IDEOGRAPH - ,0xE0D7 ,0x7378 //CJK UNIFIED IDEOGRAPH - ,0xE0D8 ,0x7375 //CJK UNIFIED IDEOGRAPH - ,0xE0D9 ,0x737B //CJK UNIFIED IDEOGRAPH - ,0xE0DA ,0x737A //CJK UNIFIED IDEOGRAPH - ,0xE0DB ,0x73C8 //CJK UNIFIED IDEOGRAPH - ,0xE0DC ,0x73B3 //CJK UNIFIED IDEOGRAPH - ,0xE0DD ,0x73CE //CJK UNIFIED IDEOGRAPH - ,0xE0DE ,0x73BB //CJK UNIFIED IDEOGRAPH - ,0xE0DF ,0x73C0 //CJK UNIFIED IDEOGRAPH - ,0xE0E0 ,0x73E5 //CJK UNIFIED IDEOGRAPH - ,0xE0E1 ,0x73EE //CJK UNIFIED IDEOGRAPH - ,0xE0E2 ,0x73DE //CJK UNIFIED IDEOGRAPH - ,0xE0E3 ,0x74A2 //CJK UNIFIED IDEOGRAPH - ,0xE0E4 ,0x7405 //CJK UNIFIED IDEOGRAPH - ,0xE0E5 ,0x746F //CJK UNIFIED IDEOGRAPH - ,0xE0E6 ,0x7425 //CJK UNIFIED IDEOGRAPH - ,0xE0E7 ,0x73F8 //CJK UNIFIED IDEOGRAPH - ,0xE0E8 ,0x7432 //CJK UNIFIED IDEOGRAPH - ,0xE0E9 ,0x743A //CJK UNIFIED IDEOGRAPH - ,0xE0EA ,0x7455 //CJK UNIFIED IDEOGRAPH - ,0xE0EB ,0x743F //CJK UNIFIED IDEOGRAPH - ,0xE0EC ,0x745F //CJK UNIFIED IDEOGRAPH - ,0xE0ED ,0x7459 //CJK UNIFIED IDEOGRAPH - ,0xE0EE ,0x7441 //CJK UNIFIED IDEOGRAPH - ,0xE0EF ,0x745C //CJK UNIFIED IDEOGRAPH - ,0xE0F0 ,0x7469 //CJK UNIFIED IDEOGRAPH - ,0xE0F1 ,0x7470 //CJK UNIFIED IDEOGRAPH - ,0xE0F2 ,0x7463 //CJK UNIFIED IDEOGRAPH - ,0xE0F3 ,0x746A //CJK UNIFIED IDEOGRAPH - ,0xE0F4 ,0x7476 //CJK UNIFIED IDEOGRAPH - ,0xE0F5 ,0x747E //CJK UNIFIED IDEOGRAPH - ,0xE0F6 ,0x748B //CJK UNIFIED IDEOGRAPH - ,0xE0F7 ,0x749E //CJK UNIFIED IDEOGRAPH - ,0xE0F8 ,0x74A7 //CJK UNIFIED IDEOGRAPH - ,0xE0F9 ,0x74CA //CJK UNIFIED IDEOGRAPH - ,0xE0FA ,0x74CF //CJK UNIFIED IDEOGRAPH - ,0xE0FB ,0x74D4 //CJK UNIFIED IDEOGRAPH - ,0xE0FC ,0x73F1 //CJK UNIFIED IDEOGRAPH - ,0xE140 ,0x74E0 //CJK UNIFIED IDEOGRAPH - ,0xE141 ,0x74E3 //CJK UNIFIED IDEOGRAPH - ,0xE142 ,0x74E7 //CJK UNIFIED IDEOGRAPH - ,0xE143 ,0x74E9 //CJK UNIFIED IDEOGRAPH - ,0xE144 ,0x74EE //CJK UNIFIED IDEOGRAPH - ,0xE145 ,0x74F2 //CJK UNIFIED IDEOGRAPH - ,0xE146 ,0x74F0 //CJK UNIFIED IDEOGRAPH - ,0xE147 ,0x74F1 //CJK UNIFIED IDEOGRAPH - ,0xE148 ,0x74F8 //CJK UNIFIED IDEOGRAPH - ,0xE149 ,0x74F7 //CJK UNIFIED IDEOGRAPH - ,0xE14A ,0x7504 //CJK UNIFIED IDEOGRAPH - ,0xE14B ,0x7503 //CJK UNIFIED IDEOGRAPH - ,0xE14C ,0x7505 //CJK UNIFIED IDEOGRAPH - ,0xE14D ,0x750C //CJK UNIFIED IDEOGRAPH - ,0xE14E ,0x750E //CJK UNIFIED IDEOGRAPH - ,0xE14F ,0x750D //CJK UNIFIED IDEOGRAPH - ,0xE150 ,0x7515 //CJK UNIFIED IDEOGRAPH - ,0xE151 ,0x7513 //CJK UNIFIED IDEOGRAPH - ,0xE152 ,0x751E //CJK UNIFIED IDEOGRAPH - ,0xE153 ,0x7526 //CJK UNIFIED IDEOGRAPH - ,0xE154 ,0x752C //CJK UNIFIED IDEOGRAPH - ,0xE155 ,0x753C //CJK UNIFIED IDEOGRAPH - ,0xE156 ,0x7544 //CJK UNIFIED IDEOGRAPH - ,0xE157 ,0x754D //CJK UNIFIED IDEOGRAPH - ,0xE158 ,0x754A //CJK UNIFIED IDEOGRAPH - ,0xE159 ,0x7549 //CJK UNIFIED IDEOGRAPH - ,0xE15A ,0x755B //CJK UNIFIED IDEOGRAPH - ,0xE15B ,0x7546 //CJK UNIFIED IDEOGRAPH - ,0xE15C ,0x755A //CJK UNIFIED IDEOGRAPH - ,0xE15D ,0x7569 //CJK UNIFIED IDEOGRAPH - ,0xE15E ,0x7564 //CJK UNIFIED IDEOGRAPH - ,0xE15F ,0x7567 //CJK UNIFIED IDEOGRAPH - ,0xE160 ,0x756B //CJK UNIFIED IDEOGRAPH - ,0xE161 ,0x756D //CJK UNIFIED IDEOGRAPH - ,0xE162 ,0x7578 //CJK UNIFIED IDEOGRAPH - ,0xE163 ,0x7576 //CJK UNIFIED IDEOGRAPH - ,0xE164 ,0x7586 //CJK UNIFIED IDEOGRAPH - ,0xE165 ,0x7587 //CJK UNIFIED IDEOGRAPH - ,0xE166 ,0x7574 //CJK UNIFIED IDEOGRAPH - ,0xE167 ,0x758A //CJK UNIFIED IDEOGRAPH - ,0xE168 ,0x7589 //CJK UNIFIED IDEOGRAPH - ,0xE169 ,0x7582 //CJK UNIFIED IDEOGRAPH - ,0xE16A ,0x7594 //CJK UNIFIED IDEOGRAPH - ,0xE16B ,0x759A //CJK UNIFIED IDEOGRAPH - ,0xE16C ,0x759D //CJK UNIFIED IDEOGRAPH - ,0xE16D ,0x75A5 //CJK UNIFIED IDEOGRAPH - ,0xE16E ,0x75A3 //CJK UNIFIED IDEOGRAPH - ,0xE16F ,0x75C2 //CJK UNIFIED IDEOGRAPH - ,0xE170 ,0x75B3 //CJK UNIFIED IDEOGRAPH - ,0xE171 ,0x75C3 //CJK UNIFIED IDEOGRAPH - ,0xE172 ,0x75B5 //CJK UNIFIED IDEOGRAPH - ,0xE173 ,0x75BD //CJK UNIFIED IDEOGRAPH - ,0xE174 ,0x75B8 //CJK UNIFIED IDEOGRAPH - ,0xE175 ,0x75BC //CJK UNIFIED IDEOGRAPH - ,0xE176 ,0x75B1 //CJK UNIFIED IDEOGRAPH - ,0xE177 ,0x75CD //CJK UNIFIED IDEOGRAPH - ,0xE178 ,0x75CA //CJK UNIFIED IDEOGRAPH - ,0xE179 ,0x75D2 //CJK UNIFIED IDEOGRAPH - ,0xE17A ,0x75D9 //CJK UNIFIED IDEOGRAPH - ,0xE17B ,0x75E3 //CJK UNIFIED IDEOGRAPH - ,0xE17C ,0x75DE //CJK UNIFIED IDEOGRAPH - ,0xE17D ,0x75FE //CJK UNIFIED IDEOGRAPH - ,0xE17E ,0x75FF //CJK UNIFIED IDEOGRAPH - ,0xE180 ,0x75FC //CJK UNIFIED IDEOGRAPH - ,0xE181 ,0x7601 //CJK UNIFIED IDEOGRAPH - ,0xE182 ,0x75F0 //CJK UNIFIED IDEOGRAPH - ,0xE183 ,0x75FA //CJK UNIFIED IDEOGRAPH - ,0xE184 ,0x75F2 //CJK UNIFIED IDEOGRAPH - ,0xE185 ,0x75F3 //CJK UNIFIED IDEOGRAPH - ,0xE186 ,0x760B //CJK UNIFIED IDEOGRAPH - ,0xE187 ,0x760D //CJK UNIFIED IDEOGRAPH - ,0xE188 ,0x7609 //CJK UNIFIED IDEOGRAPH - ,0xE189 ,0x761F //CJK UNIFIED IDEOGRAPH - ,0xE18A ,0x7627 //CJK UNIFIED IDEOGRAPH - ,0xE18B ,0x7620 //CJK UNIFIED IDEOGRAPH - ,0xE18C ,0x7621 //CJK UNIFIED IDEOGRAPH - ,0xE18D ,0x7622 //CJK UNIFIED IDEOGRAPH - ,0xE18E ,0x7624 //CJK UNIFIED IDEOGRAPH - ,0xE18F ,0x7634 //CJK UNIFIED IDEOGRAPH - ,0xE190 ,0x7630 //CJK UNIFIED IDEOGRAPH - ,0xE191 ,0x763B //CJK UNIFIED IDEOGRAPH - ,0xE192 ,0x7647 //CJK UNIFIED IDEOGRAPH - ,0xE193 ,0x7648 //CJK UNIFIED IDEOGRAPH - ,0xE194 ,0x7646 //CJK UNIFIED IDEOGRAPH - ,0xE195 ,0x765C //CJK UNIFIED IDEOGRAPH - ,0xE196 ,0x7658 //CJK UNIFIED IDEOGRAPH - ,0xE197 ,0x7661 //CJK UNIFIED IDEOGRAPH - ,0xE198 ,0x7662 //CJK UNIFIED IDEOGRAPH - ,0xE199 ,0x7668 //CJK UNIFIED IDEOGRAPH - ,0xE19A ,0x7669 //CJK UNIFIED IDEOGRAPH - ,0xE19B ,0x766A //CJK UNIFIED IDEOGRAPH - ,0xE19C ,0x7667 //CJK UNIFIED IDEOGRAPH - ,0xE19D ,0x766C //CJK UNIFIED IDEOGRAPH - ,0xE19E ,0x7670 //CJK UNIFIED IDEOGRAPH - ,0xE19F ,0x7672 //CJK UNIFIED IDEOGRAPH - ,0xE1A0 ,0x7676 //CJK UNIFIED IDEOGRAPH - ,0xE1A1 ,0x7678 //CJK UNIFIED IDEOGRAPH - ,0xE1A2 ,0x767C //CJK UNIFIED IDEOGRAPH - ,0xE1A3 ,0x7680 //CJK UNIFIED IDEOGRAPH - ,0xE1A4 ,0x7683 //CJK UNIFIED IDEOGRAPH - ,0xE1A5 ,0x7688 //CJK UNIFIED IDEOGRAPH - ,0xE1A6 ,0x768B //CJK UNIFIED IDEOGRAPH - ,0xE1A7 ,0x768E //CJK UNIFIED IDEOGRAPH - ,0xE1A8 ,0x7696 //CJK UNIFIED IDEOGRAPH - ,0xE1A9 ,0x7693 //CJK UNIFIED IDEOGRAPH - ,0xE1AA ,0x7699 //CJK UNIFIED IDEOGRAPH - ,0xE1AB ,0x769A //CJK UNIFIED IDEOGRAPH - ,0xE1AC ,0x76B0 //CJK UNIFIED IDEOGRAPH - ,0xE1AD ,0x76B4 //CJK UNIFIED IDEOGRAPH - ,0xE1AE ,0x76B8 //CJK UNIFIED IDEOGRAPH - ,0xE1AF ,0x76B9 //CJK UNIFIED IDEOGRAPH - ,0xE1B0 ,0x76BA //CJK UNIFIED IDEOGRAPH - ,0xE1B1 ,0x76C2 //CJK UNIFIED IDEOGRAPH - ,0xE1B2 ,0x76CD //CJK UNIFIED IDEOGRAPH - ,0xE1B3 ,0x76D6 //CJK UNIFIED IDEOGRAPH - ,0xE1B4 ,0x76D2 //CJK UNIFIED IDEOGRAPH - ,0xE1B5 ,0x76DE //CJK UNIFIED IDEOGRAPH - ,0xE1B6 ,0x76E1 //CJK UNIFIED IDEOGRAPH - ,0xE1B7 ,0x76E5 //CJK UNIFIED IDEOGRAPH - ,0xE1B8 ,0x76E7 //CJK UNIFIED IDEOGRAPH - ,0xE1B9 ,0x76EA //CJK UNIFIED IDEOGRAPH - ,0xE1BA ,0x862F //CJK UNIFIED IDEOGRAPH - ,0xE1BB ,0x76FB //CJK UNIFIED IDEOGRAPH - ,0xE1BC ,0x7708 //CJK UNIFIED IDEOGRAPH - ,0xE1BD ,0x7707 //CJK UNIFIED IDEOGRAPH - ,0xE1BE ,0x7704 //CJK UNIFIED IDEOGRAPH - ,0xE1BF ,0x7729 //CJK UNIFIED IDEOGRAPH - ,0xE1C0 ,0x7724 //CJK UNIFIED IDEOGRAPH - ,0xE1C1 ,0x771E //CJK UNIFIED IDEOGRAPH - ,0xE1C2 ,0x7725 //CJK UNIFIED IDEOGRAPH - ,0xE1C3 ,0x7726 //CJK UNIFIED IDEOGRAPH - ,0xE1C4 ,0x771B //CJK UNIFIED IDEOGRAPH - ,0xE1C5 ,0x7737 //CJK UNIFIED IDEOGRAPH - ,0xE1C6 ,0x7738 //CJK UNIFIED IDEOGRAPH - ,0xE1C7 ,0x7747 //CJK UNIFIED IDEOGRAPH - ,0xE1C8 ,0x775A //CJK UNIFIED IDEOGRAPH - ,0xE1C9 ,0x7768 //CJK UNIFIED IDEOGRAPH - ,0xE1CA ,0x776B //CJK UNIFIED IDEOGRAPH - ,0xE1CB ,0x775B //CJK UNIFIED IDEOGRAPH - ,0xE1CC ,0x7765 //CJK UNIFIED IDEOGRAPH - ,0xE1CD ,0x777F //CJK UNIFIED IDEOGRAPH - ,0xE1CE ,0x777E //CJK UNIFIED IDEOGRAPH - ,0xE1CF ,0x7779 //CJK UNIFIED IDEOGRAPH - ,0xE1D0 ,0x778E //CJK UNIFIED IDEOGRAPH - ,0xE1D1 ,0x778B //CJK UNIFIED IDEOGRAPH - ,0xE1D2 ,0x7791 //CJK UNIFIED IDEOGRAPH - ,0xE1D3 ,0x77A0 //CJK UNIFIED IDEOGRAPH - ,0xE1D4 ,0x779E //CJK UNIFIED IDEOGRAPH - ,0xE1D5 ,0x77B0 //CJK UNIFIED IDEOGRAPH - ,0xE1D6 ,0x77B6 //CJK UNIFIED IDEOGRAPH - ,0xE1D7 ,0x77B9 //CJK UNIFIED IDEOGRAPH - ,0xE1D8 ,0x77BF //CJK UNIFIED IDEOGRAPH - ,0xE1D9 ,0x77BC //CJK UNIFIED IDEOGRAPH - ,0xE1DA ,0x77BD //CJK UNIFIED IDEOGRAPH - ,0xE1DB ,0x77BB //CJK UNIFIED IDEOGRAPH - ,0xE1DC ,0x77C7 //CJK UNIFIED IDEOGRAPH - ,0xE1DD ,0x77CD //CJK UNIFIED IDEOGRAPH - ,0xE1DE ,0x77D7 //CJK UNIFIED IDEOGRAPH - ,0xE1DF ,0x77DA //CJK UNIFIED IDEOGRAPH - ,0xE1E0 ,0x77DC //CJK UNIFIED IDEOGRAPH - ,0xE1E1 ,0x77E3 //CJK UNIFIED IDEOGRAPH - ,0xE1E2 ,0x77EE //CJK UNIFIED IDEOGRAPH - ,0xE1E3 ,0x77FC //CJK UNIFIED IDEOGRAPH - ,0xE1E4 ,0x780C //CJK UNIFIED IDEOGRAPH - ,0xE1E5 ,0x7812 //CJK UNIFIED IDEOGRAPH - ,0xE1E6 ,0x7926 //CJK UNIFIED IDEOGRAPH - ,0xE1E7 ,0x7820 //CJK UNIFIED IDEOGRAPH - ,0xE1E8 ,0x792A //CJK UNIFIED IDEOGRAPH - ,0xE1E9 ,0x7845 //CJK UNIFIED IDEOGRAPH - ,0xE1EA ,0x788E //CJK UNIFIED IDEOGRAPH - ,0xE1EB ,0x7874 //CJK UNIFIED IDEOGRAPH - ,0xE1EC ,0x7886 //CJK UNIFIED IDEOGRAPH - ,0xE1ED ,0x787C //CJK UNIFIED IDEOGRAPH - ,0xE1EE ,0x789A //CJK UNIFIED IDEOGRAPH - ,0xE1EF ,0x788C //CJK UNIFIED IDEOGRAPH - ,0xE1F0 ,0x78A3 //CJK UNIFIED IDEOGRAPH - ,0xE1F1 ,0x78B5 //CJK UNIFIED IDEOGRAPH - ,0xE1F2 ,0x78AA //CJK UNIFIED IDEOGRAPH - ,0xE1F3 ,0x78AF //CJK UNIFIED IDEOGRAPH - ,0xE1F4 ,0x78D1 //CJK UNIFIED IDEOGRAPH - ,0xE1F5 ,0x78C6 //CJK UNIFIED IDEOGRAPH - ,0xE1F6 ,0x78CB //CJK UNIFIED IDEOGRAPH - ,0xE1F7 ,0x78D4 //CJK UNIFIED IDEOGRAPH - ,0xE1F8 ,0x78BE //CJK UNIFIED IDEOGRAPH - ,0xE1F9 ,0x78BC //CJK UNIFIED IDEOGRAPH - ,0xE1FA ,0x78C5 //CJK UNIFIED IDEOGRAPH - ,0xE1FB ,0x78CA //CJK UNIFIED IDEOGRAPH - ,0xE1FC ,0x78EC //CJK UNIFIED IDEOGRAPH - ,0xE240 ,0x78E7 //CJK UNIFIED IDEOGRAPH - ,0xE241 ,0x78DA //CJK UNIFIED IDEOGRAPH - ,0xE242 ,0x78FD //CJK UNIFIED IDEOGRAPH - ,0xE243 ,0x78F4 //CJK UNIFIED IDEOGRAPH - ,0xE244 ,0x7907 //CJK UNIFIED IDEOGRAPH - ,0xE245 ,0x7912 //CJK UNIFIED IDEOGRAPH - ,0xE246 ,0x7911 //CJK UNIFIED IDEOGRAPH - ,0xE247 ,0x7919 //CJK UNIFIED IDEOGRAPH - ,0xE248 ,0x792C //CJK UNIFIED IDEOGRAPH - ,0xE249 ,0x792B //CJK UNIFIED IDEOGRAPH - ,0xE24A ,0x7940 //CJK UNIFIED IDEOGRAPH - ,0xE24B ,0x7960 //CJK UNIFIED IDEOGRAPH - ,0xE24C ,0x7957 //CJK UNIFIED IDEOGRAPH - ,0xE24D ,0x795F //CJK UNIFIED IDEOGRAPH - ,0xE24E ,0x795A //CJK UNIFIED IDEOGRAPH - ,0xE24F ,0x7955 //CJK UNIFIED IDEOGRAPH - ,0xE250 ,0x7953 //CJK UNIFIED IDEOGRAPH - ,0xE251 ,0x797A //CJK UNIFIED IDEOGRAPH - ,0xE252 ,0x797F //CJK UNIFIED IDEOGRAPH - ,0xE253 ,0x798A //CJK UNIFIED IDEOGRAPH - ,0xE254 ,0x799D //CJK UNIFIED IDEOGRAPH - ,0xE255 ,0x79A7 //CJK UNIFIED IDEOGRAPH - ,0xE256 ,0x9F4B //CJK UNIFIED IDEOGRAPH - ,0xE257 ,0x79AA //CJK UNIFIED IDEOGRAPH - ,0xE258 ,0x79AE //CJK UNIFIED IDEOGRAPH - ,0xE259 ,0x79B3 //CJK UNIFIED IDEOGRAPH - ,0xE25A ,0x79B9 //CJK UNIFIED IDEOGRAPH - ,0xE25B ,0x79BA //CJK UNIFIED IDEOGRAPH - ,0xE25C ,0x79C9 //CJK UNIFIED IDEOGRAPH - ,0xE25D ,0x79D5 //CJK UNIFIED IDEOGRAPH - ,0xE25E ,0x79E7 //CJK UNIFIED IDEOGRAPH - ,0xE25F ,0x79EC //CJK UNIFIED IDEOGRAPH - ,0xE260 ,0x79E1 //CJK UNIFIED IDEOGRAPH - ,0xE261 ,0x79E3 //CJK UNIFIED IDEOGRAPH - ,0xE262 ,0x7A08 //CJK UNIFIED IDEOGRAPH - ,0xE263 ,0x7A0D //CJK UNIFIED IDEOGRAPH - ,0xE264 ,0x7A18 //CJK UNIFIED IDEOGRAPH - ,0xE265 ,0x7A19 //CJK UNIFIED IDEOGRAPH - ,0xE266 ,0x7A20 //CJK UNIFIED IDEOGRAPH - ,0xE267 ,0x7A1F //CJK UNIFIED IDEOGRAPH - ,0xE268 ,0x7980 //CJK UNIFIED IDEOGRAPH - ,0xE269 ,0x7A31 //CJK UNIFIED IDEOGRAPH - ,0xE26A ,0x7A3B //CJK UNIFIED IDEOGRAPH - ,0xE26B ,0x7A3E //CJK UNIFIED IDEOGRAPH - ,0xE26C ,0x7A37 //CJK UNIFIED IDEOGRAPH - ,0xE26D ,0x7A43 //CJK UNIFIED IDEOGRAPH - ,0xE26E ,0x7A57 //CJK UNIFIED IDEOGRAPH - ,0xE26F ,0x7A49 //CJK UNIFIED IDEOGRAPH - ,0xE270 ,0x7A61 //CJK UNIFIED IDEOGRAPH - ,0xE271 ,0x7A62 //CJK UNIFIED IDEOGRAPH - ,0xE272 ,0x7A69 //CJK UNIFIED IDEOGRAPH - ,0xE273 ,0x9F9D //CJK UNIFIED IDEOGRAPH - ,0xE274 ,0x7A70 //CJK UNIFIED IDEOGRAPH - ,0xE275 ,0x7A79 //CJK UNIFIED IDEOGRAPH - ,0xE276 ,0x7A7D //CJK UNIFIED IDEOGRAPH - ,0xE277 ,0x7A88 //CJK UNIFIED IDEOGRAPH - ,0xE278 ,0x7A97 //CJK UNIFIED IDEOGRAPH - ,0xE279 ,0x7A95 //CJK UNIFIED IDEOGRAPH - ,0xE27A ,0x7A98 //CJK UNIFIED IDEOGRAPH - ,0xE27B ,0x7A96 //CJK UNIFIED IDEOGRAPH - ,0xE27C ,0x7AA9 //CJK UNIFIED IDEOGRAPH - ,0xE27D ,0x7AC8 //CJK UNIFIED IDEOGRAPH - ,0xE27E ,0x7AB0 //CJK UNIFIED IDEOGRAPH - ,0xE280 ,0x7AB6 //CJK UNIFIED IDEOGRAPH - ,0xE281 ,0x7AC5 //CJK UNIFIED IDEOGRAPH - ,0xE282 ,0x7AC4 //CJK UNIFIED IDEOGRAPH - ,0xE283 ,0x7ABF //CJK UNIFIED IDEOGRAPH - ,0xE284 ,0x9083 //CJK UNIFIED IDEOGRAPH - ,0xE285 ,0x7AC7 //CJK UNIFIED IDEOGRAPH - ,0xE286 ,0x7ACA //CJK UNIFIED IDEOGRAPH - ,0xE287 ,0x7ACD //CJK UNIFIED IDEOGRAPH - ,0xE288 ,0x7ACF //CJK UNIFIED IDEOGRAPH - ,0xE289 ,0x7AD5 //CJK UNIFIED IDEOGRAPH - ,0xE28A ,0x7AD3 //CJK UNIFIED IDEOGRAPH - ,0xE28B ,0x7AD9 //CJK UNIFIED IDEOGRAPH - ,0xE28C ,0x7ADA //CJK UNIFIED IDEOGRAPH - ,0xE28D ,0x7ADD //CJK UNIFIED IDEOGRAPH - ,0xE28E ,0x7AE1 //CJK UNIFIED IDEOGRAPH - ,0xE28F ,0x7AE2 //CJK UNIFIED IDEOGRAPH - ,0xE290 ,0x7AE6 //CJK UNIFIED IDEOGRAPH - ,0xE291 ,0x7AED //CJK UNIFIED IDEOGRAPH - ,0xE292 ,0x7AF0 //CJK UNIFIED IDEOGRAPH - ,0xE293 ,0x7B02 //CJK UNIFIED IDEOGRAPH - ,0xE294 ,0x7B0F //CJK UNIFIED IDEOGRAPH - ,0xE295 ,0x7B0A //CJK UNIFIED IDEOGRAPH - ,0xE296 ,0x7B06 //CJK UNIFIED IDEOGRAPH - ,0xE297 ,0x7B33 //CJK UNIFIED IDEOGRAPH - ,0xE298 ,0x7B18 //CJK UNIFIED IDEOGRAPH - ,0xE299 ,0x7B19 //CJK UNIFIED IDEOGRAPH - ,0xE29A ,0x7B1E //CJK UNIFIED IDEOGRAPH - ,0xE29B ,0x7B35 //CJK UNIFIED IDEOGRAPH - ,0xE29C ,0x7B28 //CJK UNIFIED IDEOGRAPH - ,0xE29D ,0x7B36 //CJK UNIFIED IDEOGRAPH - ,0xE29E ,0x7B50 //CJK UNIFIED IDEOGRAPH - ,0xE29F ,0x7B7A //CJK UNIFIED IDEOGRAPH - ,0xE2A0 ,0x7B04 //CJK UNIFIED IDEOGRAPH - ,0xE2A1 ,0x7B4D //CJK UNIFIED IDEOGRAPH - ,0xE2A2 ,0x7B0B //CJK UNIFIED IDEOGRAPH - ,0xE2A3 ,0x7B4C //CJK UNIFIED IDEOGRAPH - ,0xE2A4 ,0x7B45 //CJK UNIFIED IDEOGRAPH - ,0xE2A5 ,0x7B75 //CJK UNIFIED IDEOGRAPH - ,0xE2A6 ,0x7B65 //CJK UNIFIED IDEOGRAPH - ,0xE2A7 ,0x7B74 //CJK UNIFIED IDEOGRAPH - ,0xE2A8 ,0x7B67 //CJK UNIFIED IDEOGRAPH - ,0xE2A9 ,0x7B70 //CJK UNIFIED IDEOGRAPH - ,0xE2AA ,0x7B71 //CJK UNIFIED IDEOGRAPH - ,0xE2AB ,0x7B6C //CJK UNIFIED IDEOGRAPH - ,0xE2AC ,0x7B6E //CJK UNIFIED IDEOGRAPH - ,0xE2AD ,0x7B9D //CJK UNIFIED IDEOGRAPH - ,0xE2AE ,0x7B98 //CJK UNIFIED IDEOGRAPH - ,0xE2AF ,0x7B9F //CJK UNIFIED IDEOGRAPH - ,0xE2B0 ,0x7B8D //CJK UNIFIED IDEOGRAPH - ,0xE2B1 ,0x7B9C //CJK UNIFIED IDEOGRAPH - ,0xE2B2 ,0x7B9A //CJK UNIFIED IDEOGRAPH - ,0xE2B3 ,0x7B8B //CJK UNIFIED IDEOGRAPH - ,0xE2B4 ,0x7B92 //CJK UNIFIED IDEOGRAPH - ,0xE2B5 ,0x7B8F //CJK UNIFIED IDEOGRAPH - ,0xE2B6 ,0x7B5D //CJK UNIFIED IDEOGRAPH - ,0xE2B7 ,0x7B99 //CJK UNIFIED IDEOGRAPH - ,0xE2B8 ,0x7BCB //CJK UNIFIED IDEOGRAPH - ,0xE2B9 ,0x7BC1 //CJK UNIFIED IDEOGRAPH - ,0xE2BA ,0x7BCC //CJK UNIFIED IDEOGRAPH - ,0xE2BB ,0x7BCF //CJK UNIFIED IDEOGRAPH - ,0xE2BC ,0x7BB4 //CJK UNIFIED IDEOGRAPH - ,0xE2BD ,0x7BC6 //CJK UNIFIED IDEOGRAPH - ,0xE2BE ,0x7BDD //CJK UNIFIED IDEOGRAPH - ,0xE2BF ,0x7BE9 //CJK UNIFIED IDEOGRAPH - ,0xE2C0 ,0x7C11 //CJK UNIFIED IDEOGRAPH - ,0xE2C1 ,0x7C14 //CJK UNIFIED IDEOGRAPH - ,0xE2C2 ,0x7BE6 //CJK UNIFIED IDEOGRAPH - ,0xE2C3 ,0x7BE5 //CJK UNIFIED IDEOGRAPH - ,0xE2C4 ,0x7C60 //CJK UNIFIED IDEOGRAPH - ,0xE2C5 ,0x7C00 //CJK UNIFIED IDEOGRAPH - ,0xE2C6 ,0x7C07 //CJK UNIFIED IDEOGRAPH - ,0xE2C7 ,0x7C13 //CJK UNIFIED IDEOGRAPH - ,0xE2C8 ,0x7BF3 //CJK UNIFIED IDEOGRAPH - ,0xE2C9 ,0x7BF7 //CJK UNIFIED IDEOGRAPH - ,0xE2CA ,0x7C17 //CJK UNIFIED IDEOGRAPH - ,0xE2CB ,0x7C0D //CJK UNIFIED IDEOGRAPH - ,0xE2CC ,0x7BF6 //CJK UNIFIED IDEOGRAPH - ,0xE2CD ,0x7C23 //CJK UNIFIED IDEOGRAPH - ,0xE2CE ,0x7C27 //CJK UNIFIED IDEOGRAPH - ,0xE2CF ,0x7C2A //CJK UNIFIED IDEOGRAPH - ,0xE2D0 ,0x7C1F //CJK UNIFIED IDEOGRAPH - ,0xE2D1 ,0x7C37 //CJK UNIFIED IDEOGRAPH - ,0xE2D2 ,0x7C2B //CJK UNIFIED IDEOGRAPH - ,0xE2D3 ,0x7C3D //CJK UNIFIED IDEOGRAPH - ,0xE2D4 ,0x7C4C //CJK UNIFIED IDEOGRAPH - ,0xE2D5 ,0x7C43 //CJK UNIFIED IDEOGRAPH - ,0xE2D6 ,0x7C54 //CJK UNIFIED IDEOGRAPH - ,0xE2D7 ,0x7C4F //CJK UNIFIED IDEOGRAPH - ,0xE2D8 ,0x7C40 //CJK UNIFIED IDEOGRAPH - ,0xE2D9 ,0x7C50 //CJK UNIFIED IDEOGRAPH - ,0xE2DA ,0x7C58 //CJK UNIFIED IDEOGRAPH - ,0xE2DB ,0x7C5F //CJK UNIFIED IDEOGRAPH - ,0xE2DC ,0x7C64 //CJK UNIFIED IDEOGRAPH - ,0xE2DD ,0x7C56 //CJK UNIFIED IDEOGRAPH - ,0xE2DE ,0x7C65 //CJK UNIFIED IDEOGRAPH - ,0xE2DF ,0x7C6C //CJK UNIFIED IDEOGRAPH - ,0xE2E0 ,0x7C75 //CJK UNIFIED IDEOGRAPH - ,0xE2E1 ,0x7C83 //CJK UNIFIED IDEOGRAPH - ,0xE2E2 ,0x7C90 //CJK UNIFIED IDEOGRAPH - ,0xE2E3 ,0x7CA4 //CJK UNIFIED IDEOGRAPH - ,0xE2E4 ,0x7CAD //CJK UNIFIED IDEOGRAPH - ,0xE2E5 ,0x7CA2 //CJK UNIFIED IDEOGRAPH - ,0xE2E6 ,0x7CAB //CJK UNIFIED IDEOGRAPH - ,0xE2E7 ,0x7CA1 //CJK UNIFIED IDEOGRAPH - ,0xE2E8 ,0x7CA8 //CJK UNIFIED IDEOGRAPH - ,0xE2E9 ,0x7CB3 //CJK UNIFIED IDEOGRAPH - ,0xE2EA ,0x7CB2 //CJK UNIFIED IDEOGRAPH - ,0xE2EB ,0x7CB1 //CJK UNIFIED IDEOGRAPH - ,0xE2EC ,0x7CAE //CJK UNIFIED IDEOGRAPH - ,0xE2ED ,0x7CB9 //CJK UNIFIED IDEOGRAPH - ,0xE2EE ,0x7CBD //CJK UNIFIED IDEOGRAPH - ,0xE2EF ,0x7CC0 //CJK UNIFIED IDEOGRAPH - ,0xE2F0 ,0x7CC5 //CJK UNIFIED IDEOGRAPH - ,0xE2F1 ,0x7CC2 //CJK UNIFIED IDEOGRAPH - ,0xE2F2 ,0x7CD8 //CJK UNIFIED IDEOGRAPH - ,0xE2F3 ,0x7CD2 //CJK UNIFIED IDEOGRAPH - ,0xE2F4 ,0x7CDC //CJK UNIFIED IDEOGRAPH - ,0xE2F5 ,0x7CE2 //CJK UNIFIED IDEOGRAPH - ,0xE2F6 ,0x9B3B //CJK UNIFIED IDEOGRAPH - ,0xE2F7 ,0x7CEF //CJK UNIFIED IDEOGRAPH - ,0xE2F8 ,0x7CF2 //CJK UNIFIED IDEOGRAPH - ,0xE2F9 ,0x7CF4 //CJK UNIFIED IDEOGRAPH - ,0xE2FA ,0x7CF6 //CJK UNIFIED IDEOGRAPH - ,0xE2FB ,0x7CFA //CJK UNIFIED IDEOGRAPH - ,0xE2FC ,0x7D06 //CJK UNIFIED IDEOGRAPH - ,0xE340 ,0x7D02 //CJK UNIFIED IDEOGRAPH - ,0xE341 ,0x7D1C //CJK UNIFIED IDEOGRAPH - ,0xE342 ,0x7D15 //CJK UNIFIED IDEOGRAPH - ,0xE343 ,0x7D0A //CJK UNIFIED IDEOGRAPH - ,0xE344 ,0x7D45 //CJK UNIFIED IDEOGRAPH - ,0xE345 ,0x7D4B //CJK UNIFIED IDEOGRAPH - ,0xE346 ,0x7D2E //CJK UNIFIED IDEOGRAPH - ,0xE347 ,0x7D32 //CJK UNIFIED IDEOGRAPH - ,0xE348 ,0x7D3F //CJK UNIFIED IDEOGRAPH - ,0xE349 ,0x7D35 //CJK UNIFIED IDEOGRAPH - ,0xE34A ,0x7D46 //CJK UNIFIED IDEOGRAPH - ,0xE34B ,0x7D73 //CJK UNIFIED IDEOGRAPH - ,0xE34C ,0x7D56 //CJK UNIFIED IDEOGRAPH - ,0xE34D ,0x7D4E //CJK UNIFIED IDEOGRAPH - ,0xE34E ,0x7D72 //CJK UNIFIED IDEOGRAPH - ,0xE34F ,0x7D68 //CJK UNIFIED IDEOGRAPH - ,0xE350 ,0x7D6E //CJK UNIFIED IDEOGRAPH - ,0xE351 ,0x7D4F //CJK UNIFIED IDEOGRAPH - ,0xE352 ,0x7D63 //CJK UNIFIED IDEOGRAPH - ,0xE353 ,0x7D93 //CJK UNIFIED IDEOGRAPH - ,0xE354 ,0x7D89 //CJK UNIFIED IDEOGRAPH - ,0xE355 ,0x7D5B //CJK UNIFIED IDEOGRAPH - ,0xE356 ,0x7D8F //CJK UNIFIED IDEOGRAPH - ,0xE357 ,0x7D7D //CJK UNIFIED IDEOGRAPH - ,0xE358 ,0x7D9B //CJK UNIFIED IDEOGRAPH - ,0xE359 ,0x7DBA //CJK UNIFIED IDEOGRAPH - ,0xE35A ,0x7DAE //CJK UNIFIED IDEOGRAPH - ,0xE35B ,0x7DA3 //CJK UNIFIED IDEOGRAPH - ,0xE35C ,0x7DB5 //CJK UNIFIED IDEOGRAPH - ,0xE35D ,0x7DC7 //CJK UNIFIED IDEOGRAPH - ,0xE35E ,0x7DBD //CJK UNIFIED IDEOGRAPH - ,0xE35F ,0x7DAB //CJK UNIFIED IDEOGRAPH - ,0xE360 ,0x7E3D //CJK UNIFIED IDEOGRAPH - ,0xE361 ,0x7DA2 //CJK UNIFIED IDEOGRAPH - ,0xE362 ,0x7DAF //CJK UNIFIED IDEOGRAPH - ,0xE363 ,0x7DDC //CJK UNIFIED IDEOGRAPH - ,0xE364 ,0x7DB8 //CJK UNIFIED IDEOGRAPH - ,0xE365 ,0x7D9F //CJK UNIFIED IDEOGRAPH - ,0xE366 ,0x7DB0 //CJK UNIFIED IDEOGRAPH - ,0xE367 ,0x7DD8 //CJK UNIFIED IDEOGRAPH - ,0xE368 ,0x7DDD //CJK UNIFIED IDEOGRAPH - ,0xE369 ,0x7DE4 //CJK UNIFIED IDEOGRAPH - ,0xE36A ,0x7DDE //CJK UNIFIED IDEOGRAPH - ,0xE36B ,0x7DFB //CJK UNIFIED IDEOGRAPH - ,0xE36C ,0x7DF2 //CJK UNIFIED IDEOGRAPH - ,0xE36D ,0x7DE1 //CJK UNIFIED IDEOGRAPH - ,0xE36E ,0x7E05 //CJK UNIFIED IDEOGRAPH - ,0xE36F ,0x7E0A //CJK UNIFIED IDEOGRAPH - ,0xE370 ,0x7E23 //CJK UNIFIED IDEOGRAPH - ,0xE371 ,0x7E21 //CJK UNIFIED IDEOGRAPH - ,0xE372 ,0x7E12 //CJK UNIFIED IDEOGRAPH - ,0xE373 ,0x7E31 //CJK UNIFIED IDEOGRAPH - ,0xE374 ,0x7E1F //CJK UNIFIED IDEOGRAPH - ,0xE375 ,0x7E09 //CJK UNIFIED IDEOGRAPH - ,0xE376 ,0x7E0B //CJK UNIFIED IDEOGRAPH - ,0xE377 ,0x7E22 //CJK UNIFIED IDEOGRAPH - ,0xE378 ,0x7E46 //CJK UNIFIED IDEOGRAPH - ,0xE379 ,0x7E66 //CJK UNIFIED IDEOGRAPH - ,0xE37A ,0x7E3B //CJK UNIFIED IDEOGRAPH - ,0xE37B ,0x7E35 //CJK UNIFIED IDEOGRAPH - ,0xE37C ,0x7E39 //CJK UNIFIED IDEOGRAPH - ,0xE37D ,0x7E43 //CJK UNIFIED IDEOGRAPH - ,0xE37E ,0x7E37 //CJK UNIFIED IDEOGRAPH - ,0xE380 ,0x7E32 //CJK UNIFIED IDEOGRAPH - ,0xE381 ,0x7E3A //CJK UNIFIED IDEOGRAPH - ,0xE382 ,0x7E67 //CJK UNIFIED IDEOGRAPH - ,0xE383 ,0x7E5D //CJK UNIFIED IDEOGRAPH - ,0xE384 ,0x7E56 //CJK UNIFIED IDEOGRAPH - ,0xE385 ,0x7E5E //CJK UNIFIED IDEOGRAPH - ,0xE386 ,0x7E59 //CJK UNIFIED IDEOGRAPH - ,0xE387 ,0x7E5A //CJK UNIFIED IDEOGRAPH - ,0xE388 ,0x7E79 //CJK UNIFIED IDEOGRAPH - ,0xE389 ,0x7E6A //CJK UNIFIED IDEOGRAPH - ,0xE38A ,0x7E69 //CJK UNIFIED IDEOGRAPH - ,0xE38B ,0x7E7C //CJK UNIFIED IDEOGRAPH - ,0xE38C ,0x7E7B //CJK UNIFIED IDEOGRAPH - ,0xE38D ,0x7E83 //CJK UNIFIED IDEOGRAPH - ,0xE38E ,0x7DD5 //CJK UNIFIED IDEOGRAPH - ,0xE38F ,0x7E7D //CJK UNIFIED IDEOGRAPH - ,0xE390 ,0x8FAE //CJK UNIFIED IDEOGRAPH - ,0xE391 ,0x7E7F //CJK UNIFIED IDEOGRAPH - ,0xE392 ,0x7E88 //CJK UNIFIED IDEOGRAPH - ,0xE393 ,0x7E89 //CJK UNIFIED IDEOGRAPH - ,0xE394 ,0x7E8C //CJK UNIFIED IDEOGRAPH - ,0xE395 ,0x7E92 //CJK UNIFIED IDEOGRAPH - ,0xE396 ,0x7E90 //CJK UNIFIED IDEOGRAPH - ,0xE397 ,0x7E93 //CJK UNIFIED IDEOGRAPH - ,0xE398 ,0x7E94 //CJK UNIFIED IDEOGRAPH - ,0xE399 ,0x7E96 //CJK UNIFIED IDEOGRAPH - ,0xE39A ,0x7E8E //CJK UNIFIED IDEOGRAPH - ,0xE39B ,0x7E9B //CJK UNIFIED IDEOGRAPH - ,0xE39C ,0x7E9C //CJK UNIFIED IDEOGRAPH - ,0xE39D ,0x7F38 //CJK UNIFIED IDEOGRAPH - ,0xE39E ,0x7F3A //CJK UNIFIED IDEOGRAPH - ,0xE39F ,0x7F45 //CJK UNIFIED IDEOGRAPH - ,0xE3A0 ,0x7F4C //CJK UNIFIED IDEOGRAPH - ,0xE3A1 ,0x7F4D //CJK UNIFIED IDEOGRAPH - ,0xE3A2 ,0x7F4E //CJK UNIFIED IDEOGRAPH - ,0xE3A3 ,0x7F50 //CJK UNIFIED IDEOGRAPH - ,0xE3A4 ,0x7F51 //CJK UNIFIED IDEOGRAPH - ,0xE3A5 ,0x7F55 //CJK UNIFIED IDEOGRAPH - ,0xE3A6 ,0x7F54 //CJK UNIFIED IDEOGRAPH - ,0xE3A7 ,0x7F58 //CJK UNIFIED IDEOGRAPH - ,0xE3A8 ,0x7F5F //CJK UNIFIED IDEOGRAPH - ,0xE3A9 ,0x7F60 //CJK UNIFIED IDEOGRAPH - ,0xE3AA ,0x7F68 //CJK UNIFIED IDEOGRAPH - ,0xE3AB ,0x7F69 //CJK UNIFIED IDEOGRAPH - ,0xE3AC ,0x7F67 //CJK UNIFIED IDEOGRAPH - ,0xE3AD ,0x7F78 //CJK UNIFIED IDEOGRAPH - ,0xE3AE ,0x7F82 //CJK UNIFIED IDEOGRAPH - ,0xE3AF ,0x7F86 //CJK UNIFIED IDEOGRAPH - ,0xE3B0 ,0x7F83 //CJK UNIFIED IDEOGRAPH - ,0xE3B1 ,0x7F88 //CJK UNIFIED IDEOGRAPH - ,0xE3B2 ,0x7F87 //CJK UNIFIED IDEOGRAPH - ,0xE3B3 ,0x7F8C //CJK UNIFIED IDEOGRAPH - ,0xE3B4 ,0x7F94 //CJK UNIFIED IDEOGRAPH - ,0xE3B5 ,0x7F9E //CJK UNIFIED IDEOGRAPH - ,0xE3B6 ,0x7F9D //CJK UNIFIED IDEOGRAPH - ,0xE3B7 ,0x7F9A //CJK UNIFIED IDEOGRAPH - ,0xE3B8 ,0x7FA3 //CJK UNIFIED IDEOGRAPH - ,0xE3B9 ,0x7FAF //CJK UNIFIED IDEOGRAPH - ,0xE3BA ,0x7FB2 //CJK UNIFIED IDEOGRAPH - ,0xE3BB ,0x7FB9 //CJK UNIFIED IDEOGRAPH - ,0xE3BC ,0x7FAE //CJK UNIFIED IDEOGRAPH - ,0xE3BD ,0x7FB6 //CJK UNIFIED IDEOGRAPH - ,0xE3BE ,0x7FB8 //CJK UNIFIED IDEOGRAPH - ,0xE3BF ,0x8B71 //CJK UNIFIED IDEOGRAPH - ,0xE3C0 ,0x7FC5 //CJK UNIFIED IDEOGRAPH - ,0xE3C1 ,0x7FC6 //CJK UNIFIED IDEOGRAPH - ,0xE3C2 ,0x7FCA //CJK UNIFIED IDEOGRAPH - ,0xE3C3 ,0x7FD5 //CJK UNIFIED IDEOGRAPH - ,0xE3C4 ,0x7FD4 //CJK UNIFIED IDEOGRAPH - ,0xE3C5 ,0x7FE1 //CJK UNIFIED IDEOGRAPH - ,0xE3C6 ,0x7FE6 //CJK UNIFIED IDEOGRAPH - ,0xE3C7 ,0x7FE9 //CJK UNIFIED IDEOGRAPH - ,0xE3C8 ,0x7FF3 //CJK UNIFIED IDEOGRAPH - ,0xE3C9 ,0x7FF9 //CJK UNIFIED IDEOGRAPH - ,0xE3CA ,0x98DC //CJK UNIFIED IDEOGRAPH - ,0xE3CB ,0x8006 //CJK UNIFIED IDEOGRAPH - ,0xE3CC ,0x8004 //CJK UNIFIED IDEOGRAPH - ,0xE3CD ,0x800B //CJK UNIFIED IDEOGRAPH - ,0xE3CE ,0x8012 //CJK UNIFIED IDEOGRAPH - ,0xE3CF ,0x8018 //CJK UNIFIED IDEOGRAPH - ,0xE3D0 ,0x8019 //CJK UNIFIED IDEOGRAPH - ,0xE3D1 ,0x801C //CJK UNIFIED IDEOGRAPH - ,0xE3D2 ,0x8021 //CJK UNIFIED IDEOGRAPH - ,0xE3D3 ,0x8028 //CJK UNIFIED IDEOGRAPH - ,0xE3D4 ,0x803F //CJK UNIFIED IDEOGRAPH - ,0xE3D5 ,0x803B //CJK UNIFIED IDEOGRAPH - ,0xE3D6 ,0x804A //CJK UNIFIED IDEOGRAPH - ,0xE3D7 ,0x8046 //CJK UNIFIED IDEOGRAPH - ,0xE3D8 ,0x8052 //CJK UNIFIED IDEOGRAPH - ,0xE3D9 ,0x8058 //CJK UNIFIED IDEOGRAPH - ,0xE3DA ,0x805A //CJK UNIFIED IDEOGRAPH - ,0xE3DB ,0x805F //CJK UNIFIED IDEOGRAPH - ,0xE3DC ,0x8062 //CJK UNIFIED IDEOGRAPH - ,0xE3DD ,0x8068 //CJK UNIFIED IDEOGRAPH - ,0xE3DE ,0x8073 //CJK UNIFIED IDEOGRAPH - ,0xE3DF ,0x8072 //CJK UNIFIED IDEOGRAPH - ,0xE3E0 ,0x8070 //CJK UNIFIED IDEOGRAPH - ,0xE3E1 ,0x8076 //CJK UNIFIED IDEOGRAPH - ,0xE3E2 ,0x8079 //CJK UNIFIED IDEOGRAPH - ,0xE3E3 ,0x807D //CJK UNIFIED IDEOGRAPH - ,0xE3E4 ,0x807F //CJK UNIFIED IDEOGRAPH - ,0xE3E5 ,0x8084 //CJK UNIFIED IDEOGRAPH - ,0xE3E6 ,0x8086 //CJK UNIFIED IDEOGRAPH - ,0xE3E7 ,0x8085 //CJK UNIFIED IDEOGRAPH - ,0xE3E8 ,0x809B //CJK UNIFIED IDEOGRAPH - ,0xE3E9 ,0x8093 //CJK UNIFIED IDEOGRAPH - ,0xE3EA ,0x809A //CJK UNIFIED IDEOGRAPH - ,0xE3EB ,0x80AD //CJK UNIFIED IDEOGRAPH - ,0xE3EC ,0x5190 //CJK UNIFIED IDEOGRAPH - ,0xE3ED ,0x80AC //CJK UNIFIED IDEOGRAPH - ,0xE3EE ,0x80DB //CJK UNIFIED IDEOGRAPH - ,0xE3EF ,0x80E5 //CJK UNIFIED IDEOGRAPH - ,0xE3F0 ,0x80D9 //CJK UNIFIED IDEOGRAPH - ,0xE3F1 ,0x80DD //CJK UNIFIED IDEOGRAPH - ,0xE3F2 ,0x80C4 //CJK UNIFIED IDEOGRAPH - ,0xE3F3 ,0x80DA //CJK UNIFIED IDEOGRAPH - ,0xE3F4 ,0x80D6 //CJK UNIFIED IDEOGRAPH - ,0xE3F5 ,0x8109 //CJK UNIFIED IDEOGRAPH - ,0xE3F6 ,0x80EF //CJK UNIFIED IDEOGRAPH - ,0xE3F7 ,0x80F1 //CJK UNIFIED IDEOGRAPH - ,0xE3F8 ,0x811B //CJK UNIFIED IDEOGRAPH - ,0xE3F9 ,0x8129 //CJK UNIFIED IDEOGRAPH - ,0xE3FA ,0x8123 //CJK UNIFIED IDEOGRAPH - ,0xE3FB ,0x812F //CJK UNIFIED IDEOGRAPH - ,0xE3FC ,0x814B //CJK UNIFIED IDEOGRAPH - ,0xE440 ,0x968B //CJK UNIFIED IDEOGRAPH - ,0xE441 ,0x8146 //CJK UNIFIED IDEOGRAPH - ,0xE442 ,0x813E //CJK UNIFIED IDEOGRAPH - ,0xE443 ,0x8153 //CJK UNIFIED IDEOGRAPH - ,0xE444 ,0x8151 //CJK UNIFIED IDEOGRAPH - ,0xE445 ,0x80FC //CJK UNIFIED IDEOGRAPH - ,0xE446 ,0x8171 //CJK UNIFIED IDEOGRAPH - ,0xE447 ,0x816E //CJK UNIFIED IDEOGRAPH - ,0xE448 ,0x8165 //CJK UNIFIED IDEOGRAPH - ,0xE449 ,0x8166 //CJK UNIFIED IDEOGRAPH - ,0xE44A ,0x8174 //CJK UNIFIED IDEOGRAPH - ,0xE44B ,0x8183 //CJK UNIFIED IDEOGRAPH - ,0xE44C ,0x8188 //CJK UNIFIED IDEOGRAPH - ,0xE44D ,0x818A //CJK UNIFIED IDEOGRAPH - ,0xE44E ,0x8180 //CJK UNIFIED IDEOGRAPH - ,0xE44F ,0x8182 //CJK UNIFIED IDEOGRAPH - ,0xE450 ,0x81A0 //CJK UNIFIED IDEOGRAPH - ,0xE451 ,0x8195 //CJK UNIFIED IDEOGRAPH - ,0xE452 ,0x81A4 //CJK UNIFIED IDEOGRAPH - ,0xE453 ,0x81A3 //CJK UNIFIED IDEOGRAPH - ,0xE454 ,0x815F //CJK UNIFIED IDEOGRAPH - ,0xE455 ,0x8193 //CJK UNIFIED IDEOGRAPH - ,0xE456 ,0x81A9 //CJK UNIFIED IDEOGRAPH - ,0xE457 ,0x81B0 //CJK UNIFIED IDEOGRAPH - ,0xE458 ,0x81B5 //CJK UNIFIED IDEOGRAPH - ,0xE459 ,0x81BE //CJK UNIFIED IDEOGRAPH - ,0xE45A ,0x81B8 //CJK UNIFIED IDEOGRAPH - ,0xE45B ,0x81BD //CJK UNIFIED IDEOGRAPH - ,0xE45C ,0x81C0 //CJK UNIFIED IDEOGRAPH - ,0xE45D ,0x81C2 //CJK UNIFIED IDEOGRAPH - ,0xE45E ,0x81BA //CJK UNIFIED IDEOGRAPH - ,0xE45F ,0x81C9 //CJK UNIFIED IDEOGRAPH - ,0xE460 ,0x81CD //CJK UNIFIED IDEOGRAPH - ,0xE461 ,0x81D1 //CJK UNIFIED IDEOGRAPH - ,0xE462 ,0x81D9 //CJK UNIFIED IDEOGRAPH - ,0xE463 ,0x81D8 //CJK UNIFIED IDEOGRAPH - ,0xE464 ,0x81C8 //CJK UNIFIED IDEOGRAPH - ,0xE465 ,0x81DA //CJK UNIFIED IDEOGRAPH - ,0xE466 ,0x81DF //CJK UNIFIED IDEOGRAPH - ,0xE467 ,0x81E0 //CJK UNIFIED IDEOGRAPH - ,0xE468 ,0x81E7 //CJK UNIFIED IDEOGRAPH - ,0xE469 ,0x81FA //CJK UNIFIED IDEOGRAPH - ,0xE46A ,0x81FB //CJK UNIFIED IDEOGRAPH - ,0xE46B ,0x81FE //CJK UNIFIED IDEOGRAPH - ,0xE46C ,0x8201 //CJK UNIFIED IDEOGRAPH - ,0xE46D ,0x8202 //CJK UNIFIED IDEOGRAPH - ,0xE46E ,0x8205 //CJK UNIFIED IDEOGRAPH - ,0xE46F ,0x8207 //CJK UNIFIED IDEOGRAPH - ,0xE470 ,0x820A //CJK UNIFIED IDEOGRAPH - ,0xE471 ,0x820D //CJK UNIFIED IDEOGRAPH - ,0xE472 ,0x8210 //CJK UNIFIED IDEOGRAPH - ,0xE473 ,0x8216 //CJK UNIFIED IDEOGRAPH - ,0xE474 ,0x8229 //CJK UNIFIED IDEOGRAPH - ,0xE475 ,0x822B //CJK UNIFIED IDEOGRAPH - ,0xE476 ,0x8238 //CJK UNIFIED IDEOGRAPH - ,0xE477 ,0x8233 //CJK UNIFIED IDEOGRAPH - ,0xE478 ,0x8240 //CJK UNIFIED IDEOGRAPH - ,0xE479 ,0x8259 //CJK UNIFIED IDEOGRAPH - ,0xE47A ,0x8258 //CJK UNIFIED IDEOGRAPH - ,0xE47B ,0x825D //CJK UNIFIED IDEOGRAPH - ,0xE47C ,0x825A //CJK UNIFIED IDEOGRAPH - ,0xE47D ,0x825F //CJK UNIFIED IDEOGRAPH - ,0xE47E ,0x8264 //CJK UNIFIED IDEOGRAPH - ,0xE480 ,0x8262 //CJK UNIFIED IDEOGRAPH - ,0xE481 ,0x8268 //CJK UNIFIED IDEOGRAPH - ,0xE482 ,0x826A //CJK UNIFIED IDEOGRAPH - ,0xE483 ,0x826B //CJK UNIFIED IDEOGRAPH - ,0xE484 ,0x822E //CJK UNIFIED IDEOGRAPH - ,0xE485 ,0x8271 //CJK UNIFIED IDEOGRAPH - ,0xE486 ,0x8277 //CJK UNIFIED IDEOGRAPH - ,0xE487 ,0x8278 //CJK UNIFIED IDEOGRAPH - ,0xE488 ,0x827E //CJK UNIFIED IDEOGRAPH - ,0xE489 ,0x828D //CJK UNIFIED IDEOGRAPH - ,0xE48A ,0x8292 //CJK UNIFIED IDEOGRAPH - ,0xE48B ,0x82AB //CJK UNIFIED IDEOGRAPH - ,0xE48C ,0x829F //CJK UNIFIED IDEOGRAPH - ,0xE48D ,0x82BB //CJK UNIFIED IDEOGRAPH - ,0xE48E ,0x82AC //CJK UNIFIED IDEOGRAPH - ,0xE48F ,0x82E1 //CJK UNIFIED IDEOGRAPH - ,0xE490 ,0x82E3 //CJK UNIFIED IDEOGRAPH - ,0xE491 ,0x82DF //CJK UNIFIED IDEOGRAPH - ,0xE492 ,0x82D2 //CJK UNIFIED IDEOGRAPH - ,0xE493 ,0x82F4 //CJK UNIFIED IDEOGRAPH - ,0xE494 ,0x82F3 //CJK UNIFIED IDEOGRAPH - ,0xE495 ,0x82FA //CJK UNIFIED IDEOGRAPH - ,0xE496 ,0x8393 //CJK UNIFIED IDEOGRAPH - ,0xE497 ,0x8303 //CJK UNIFIED IDEOGRAPH - ,0xE498 ,0x82FB //CJK UNIFIED IDEOGRAPH - ,0xE499 ,0x82F9 //CJK UNIFIED IDEOGRAPH - ,0xE49A ,0x82DE //CJK UNIFIED IDEOGRAPH - ,0xE49B ,0x8306 //CJK UNIFIED IDEOGRAPH - ,0xE49C ,0x82DC //CJK UNIFIED IDEOGRAPH - ,0xE49D ,0x8309 //CJK UNIFIED IDEOGRAPH - ,0xE49E ,0x82D9 //CJK UNIFIED IDEOGRAPH - ,0xE49F ,0x8335 //CJK UNIFIED IDEOGRAPH - ,0xE4A0 ,0x8334 //CJK UNIFIED IDEOGRAPH - ,0xE4A1 ,0x8316 //CJK UNIFIED IDEOGRAPH - ,0xE4A2 ,0x8332 //CJK UNIFIED IDEOGRAPH - ,0xE4A3 ,0x8331 //CJK UNIFIED IDEOGRAPH - ,0xE4A4 ,0x8340 //CJK UNIFIED IDEOGRAPH - ,0xE4A5 ,0x8339 //CJK UNIFIED IDEOGRAPH - ,0xE4A6 ,0x8350 //CJK UNIFIED IDEOGRAPH - ,0xE4A7 ,0x8345 //CJK UNIFIED IDEOGRAPH - ,0xE4A8 ,0x832F //CJK UNIFIED IDEOGRAPH - ,0xE4A9 ,0x832B //CJK UNIFIED IDEOGRAPH - ,0xE4AA ,0x8317 //CJK UNIFIED IDEOGRAPH - ,0xE4AB ,0x8318 //CJK UNIFIED IDEOGRAPH - ,0xE4AC ,0x8385 //CJK UNIFIED IDEOGRAPH - ,0xE4AD ,0x839A //CJK UNIFIED IDEOGRAPH - ,0xE4AE ,0x83AA //CJK UNIFIED IDEOGRAPH - ,0xE4AF ,0x839F //CJK UNIFIED IDEOGRAPH - ,0xE4B0 ,0x83A2 //CJK UNIFIED IDEOGRAPH - ,0xE4B1 ,0x8396 //CJK UNIFIED IDEOGRAPH - ,0xE4B2 ,0x8323 //CJK UNIFIED IDEOGRAPH - ,0xE4B3 ,0x838E //CJK UNIFIED IDEOGRAPH - ,0xE4B4 ,0x8387 //CJK UNIFIED IDEOGRAPH - ,0xE4B5 ,0x838A //CJK UNIFIED IDEOGRAPH - ,0xE4B6 ,0x837C //CJK UNIFIED IDEOGRAPH - ,0xE4B7 ,0x83B5 //CJK UNIFIED IDEOGRAPH - ,0xE4B8 ,0x8373 //CJK UNIFIED IDEOGRAPH - ,0xE4B9 ,0x8375 //CJK UNIFIED IDEOGRAPH - ,0xE4BA ,0x83A0 //CJK UNIFIED IDEOGRAPH - ,0xE4BB ,0x8389 //CJK UNIFIED IDEOGRAPH - ,0xE4BC ,0x83A8 //CJK UNIFIED IDEOGRAPH - ,0xE4BD ,0x83F4 //CJK UNIFIED IDEOGRAPH - ,0xE4BE ,0x8413 //CJK UNIFIED IDEOGRAPH - ,0xE4BF ,0x83EB //CJK UNIFIED IDEOGRAPH - ,0xE4C0 ,0x83CE //CJK UNIFIED IDEOGRAPH - ,0xE4C1 ,0x83FD //CJK UNIFIED IDEOGRAPH - ,0xE4C2 ,0x8403 //CJK UNIFIED IDEOGRAPH - ,0xE4C3 ,0x83D8 //CJK UNIFIED IDEOGRAPH - ,0xE4C4 ,0x840B //CJK UNIFIED IDEOGRAPH - ,0xE4C5 ,0x83C1 //CJK UNIFIED IDEOGRAPH - ,0xE4C6 ,0x83F7 //CJK UNIFIED IDEOGRAPH - ,0xE4C7 ,0x8407 //CJK UNIFIED IDEOGRAPH - ,0xE4C8 ,0x83E0 //CJK UNIFIED IDEOGRAPH - ,0xE4C9 ,0x83F2 //CJK UNIFIED IDEOGRAPH - ,0xE4CA ,0x840D //CJK UNIFIED IDEOGRAPH - ,0xE4CB ,0x8422 //CJK UNIFIED IDEOGRAPH - ,0xE4CC ,0x8420 //CJK UNIFIED IDEOGRAPH - ,0xE4CD ,0x83BD //CJK UNIFIED IDEOGRAPH - ,0xE4CE ,0x8438 //CJK UNIFIED IDEOGRAPH - ,0xE4CF ,0x8506 //CJK UNIFIED IDEOGRAPH - ,0xE4D0 ,0x83FB //CJK UNIFIED IDEOGRAPH - ,0xE4D1 ,0x846D //CJK UNIFIED IDEOGRAPH - ,0xE4D2 ,0x842A //CJK UNIFIED IDEOGRAPH - ,0xE4D3 ,0x843C //CJK UNIFIED IDEOGRAPH - ,0xE4D4 ,0x855A //CJK UNIFIED IDEOGRAPH - ,0xE4D5 ,0x8484 //CJK UNIFIED IDEOGRAPH - ,0xE4D6 ,0x8477 //CJK UNIFIED IDEOGRAPH - ,0xE4D7 ,0x846B //CJK UNIFIED IDEOGRAPH - ,0xE4D8 ,0x84AD //CJK UNIFIED IDEOGRAPH - ,0xE4D9 ,0x846E //CJK UNIFIED IDEOGRAPH - ,0xE4DA ,0x8482 //CJK UNIFIED IDEOGRAPH - ,0xE4DB ,0x8469 //CJK UNIFIED IDEOGRAPH - ,0xE4DC ,0x8446 //CJK UNIFIED IDEOGRAPH - ,0xE4DD ,0x842C //CJK UNIFIED IDEOGRAPH - ,0xE4DE ,0x846F //CJK UNIFIED IDEOGRAPH - ,0xE4DF ,0x8479 //CJK UNIFIED IDEOGRAPH - ,0xE4E0 ,0x8435 //CJK UNIFIED IDEOGRAPH - ,0xE4E1 ,0x84CA //CJK UNIFIED IDEOGRAPH - ,0xE4E2 ,0x8462 //CJK UNIFIED IDEOGRAPH - ,0xE4E3 ,0x84B9 //CJK UNIFIED IDEOGRAPH - ,0xE4E4 ,0x84BF //CJK UNIFIED IDEOGRAPH - ,0xE4E5 ,0x849F //CJK UNIFIED IDEOGRAPH - ,0xE4E6 ,0x84D9 //CJK UNIFIED IDEOGRAPH - ,0xE4E7 ,0x84CD //CJK UNIFIED IDEOGRAPH - ,0xE4E8 ,0x84BB //CJK UNIFIED IDEOGRAPH - ,0xE4E9 ,0x84DA //CJK UNIFIED IDEOGRAPH - ,0xE4EA ,0x84D0 //CJK UNIFIED IDEOGRAPH - ,0xE4EB ,0x84C1 //CJK UNIFIED IDEOGRAPH - ,0xE4EC ,0x84C6 //CJK UNIFIED IDEOGRAPH - ,0xE4ED ,0x84D6 //CJK UNIFIED IDEOGRAPH - ,0xE4EE ,0x84A1 //CJK UNIFIED IDEOGRAPH - ,0xE4EF ,0x8521 //CJK UNIFIED IDEOGRAPH - ,0xE4F0 ,0x84FF //CJK UNIFIED IDEOGRAPH - ,0xE4F1 ,0x84F4 //CJK UNIFIED IDEOGRAPH - ,0xE4F2 ,0x8517 //CJK UNIFIED IDEOGRAPH - ,0xE4F3 ,0x8518 //CJK UNIFIED IDEOGRAPH - ,0xE4F4 ,0x852C //CJK UNIFIED IDEOGRAPH - ,0xE4F5 ,0x851F //CJK UNIFIED IDEOGRAPH - ,0xE4F6 ,0x8515 //CJK UNIFIED IDEOGRAPH - ,0xE4F7 ,0x8514 //CJK UNIFIED IDEOGRAPH - ,0xE4F8 ,0x84FC //CJK UNIFIED IDEOGRAPH - ,0xE4F9 ,0x8540 //CJK UNIFIED IDEOGRAPH - ,0xE4FA ,0x8563 //CJK UNIFIED IDEOGRAPH - ,0xE4FB ,0x8558 //CJK UNIFIED IDEOGRAPH - ,0xE4FC ,0x8548 //CJK UNIFIED IDEOGRAPH - ,0xE540 ,0x8541 //CJK UNIFIED IDEOGRAPH - ,0xE541 ,0x8602 //CJK UNIFIED IDEOGRAPH - ,0xE542 ,0x854B //CJK UNIFIED IDEOGRAPH - ,0xE543 ,0x8555 //CJK UNIFIED IDEOGRAPH - ,0xE544 ,0x8580 //CJK UNIFIED IDEOGRAPH - ,0xE545 ,0x85A4 //CJK UNIFIED IDEOGRAPH - ,0xE546 ,0x8588 //CJK UNIFIED IDEOGRAPH - ,0xE547 ,0x8591 //CJK UNIFIED IDEOGRAPH - ,0xE548 ,0x858A //CJK UNIFIED IDEOGRAPH - ,0xE549 ,0x85A8 //CJK UNIFIED IDEOGRAPH - ,0xE54A ,0x856D //CJK UNIFIED IDEOGRAPH - ,0xE54B ,0x8594 //CJK UNIFIED IDEOGRAPH - ,0xE54C ,0x859B //CJK UNIFIED IDEOGRAPH - ,0xE54D ,0x85EA //CJK UNIFIED IDEOGRAPH - ,0xE54E ,0x8587 //CJK UNIFIED IDEOGRAPH - ,0xE54F ,0x859C //CJK UNIFIED IDEOGRAPH - ,0xE550 ,0x8577 //CJK UNIFIED IDEOGRAPH - ,0xE551 ,0x857E //CJK UNIFIED IDEOGRAPH - ,0xE552 ,0x8590 //CJK UNIFIED IDEOGRAPH - ,0xE553 ,0x85C9 //CJK UNIFIED IDEOGRAPH - ,0xE554 ,0x85BA //CJK UNIFIED IDEOGRAPH - ,0xE555 ,0x85CF //CJK UNIFIED IDEOGRAPH - ,0xE556 ,0x85B9 //CJK UNIFIED IDEOGRAPH - ,0xE557 ,0x85D0 //CJK UNIFIED IDEOGRAPH - ,0xE558 ,0x85D5 //CJK UNIFIED IDEOGRAPH - ,0xE559 ,0x85DD //CJK UNIFIED IDEOGRAPH - ,0xE55A ,0x85E5 //CJK UNIFIED IDEOGRAPH - ,0xE55B ,0x85DC //CJK UNIFIED IDEOGRAPH - ,0xE55C ,0x85F9 //CJK UNIFIED IDEOGRAPH - ,0xE55D ,0x860A //CJK UNIFIED IDEOGRAPH - ,0xE55E ,0x8613 //CJK UNIFIED IDEOGRAPH - ,0xE55F ,0x860B //CJK UNIFIED IDEOGRAPH - ,0xE560 ,0x85FE //CJK UNIFIED IDEOGRAPH - ,0xE561 ,0x85FA //CJK UNIFIED IDEOGRAPH - ,0xE562 ,0x8606 //CJK UNIFIED IDEOGRAPH - ,0xE563 ,0x8622 //CJK UNIFIED IDEOGRAPH - ,0xE564 ,0x861A //CJK UNIFIED IDEOGRAPH - ,0xE565 ,0x8630 //CJK UNIFIED IDEOGRAPH - ,0xE566 ,0x863F //CJK UNIFIED IDEOGRAPH - ,0xE567 ,0x864D //CJK UNIFIED IDEOGRAPH - ,0xE568 ,0x4E55 //CJK UNIFIED IDEOGRAPH - ,0xE569 ,0x8654 //CJK UNIFIED IDEOGRAPH - ,0xE56A ,0x865F //CJK UNIFIED IDEOGRAPH - ,0xE56B ,0x8667 //CJK UNIFIED IDEOGRAPH - ,0xE56C ,0x8671 //CJK UNIFIED IDEOGRAPH - ,0xE56D ,0x8693 //CJK UNIFIED IDEOGRAPH - ,0xE56E ,0x86A3 //CJK UNIFIED IDEOGRAPH - ,0xE56F ,0x86A9 //CJK UNIFIED IDEOGRAPH - ,0xE570 ,0x86AA //CJK UNIFIED IDEOGRAPH - ,0xE571 ,0x868B //CJK UNIFIED IDEOGRAPH - ,0xE572 ,0x868C //CJK UNIFIED IDEOGRAPH - ,0xE573 ,0x86B6 //CJK UNIFIED IDEOGRAPH - ,0xE574 ,0x86AF //CJK UNIFIED IDEOGRAPH - ,0xE575 ,0x86C4 //CJK UNIFIED IDEOGRAPH - ,0xE576 ,0x86C6 //CJK UNIFIED IDEOGRAPH - ,0xE577 ,0x86B0 //CJK UNIFIED IDEOGRAPH - ,0xE578 ,0x86C9 //CJK UNIFIED IDEOGRAPH - ,0xE579 ,0x8823 //CJK UNIFIED IDEOGRAPH - ,0xE57A ,0x86AB //CJK UNIFIED IDEOGRAPH - ,0xE57B ,0x86D4 //CJK UNIFIED IDEOGRAPH - ,0xE57C ,0x86DE //CJK UNIFIED IDEOGRAPH - ,0xE57D ,0x86E9 //CJK UNIFIED IDEOGRAPH - ,0xE57E ,0x86EC //CJK UNIFIED IDEOGRAPH - ,0xE580 ,0x86DF //CJK UNIFIED IDEOGRAPH - ,0xE581 ,0x86DB //CJK UNIFIED IDEOGRAPH - ,0xE582 ,0x86EF //CJK UNIFIED IDEOGRAPH - ,0xE583 ,0x8712 //CJK UNIFIED IDEOGRAPH - ,0xE584 ,0x8706 //CJK UNIFIED IDEOGRAPH - ,0xE585 ,0x8708 //CJK UNIFIED IDEOGRAPH - ,0xE586 ,0x8700 //CJK UNIFIED IDEOGRAPH - ,0xE587 ,0x8703 //CJK UNIFIED IDEOGRAPH - ,0xE588 ,0x86FB //CJK UNIFIED IDEOGRAPH - ,0xE589 ,0x8711 //CJK UNIFIED IDEOGRAPH - ,0xE58A ,0x8709 //CJK UNIFIED IDEOGRAPH - ,0xE58B ,0x870D //CJK UNIFIED IDEOGRAPH - ,0xE58C ,0x86F9 //CJK UNIFIED IDEOGRAPH - ,0xE58D ,0x870A //CJK UNIFIED IDEOGRAPH - ,0xE58E ,0x8734 //CJK UNIFIED IDEOGRAPH - ,0xE58F ,0x873F //CJK UNIFIED IDEOGRAPH - ,0xE590 ,0x8737 //CJK UNIFIED IDEOGRAPH - ,0xE591 ,0x873B //CJK UNIFIED IDEOGRAPH - ,0xE592 ,0x8725 //CJK UNIFIED IDEOGRAPH - ,0xE593 ,0x8729 //CJK UNIFIED IDEOGRAPH - ,0xE594 ,0x871A //CJK UNIFIED IDEOGRAPH - ,0xE595 ,0x8760 //CJK UNIFIED IDEOGRAPH - ,0xE596 ,0x875F //CJK UNIFIED IDEOGRAPH - ,0xE597 ,0x8778 //CJK UNIFIED IDEOGRAPH - ,0xE598 ,0x874C //CJK UNIFIED IDEOGRAPH - ,0xE599 ,0x874E //CJK UNIFIED IDEOGRAPH - ,0xE59A ,0x8774 //CJK UNIFIED IDEOGRAPH - ,0xE59B ,0x8757 //CJK UNIFIED IDEOGRAPH - ,0xE59C ,0x8768 //CJK UNIFIED IDEOGRAPH - ,0xE59D ,0x876E //CJK UNIFIED IDEOGRAPH - ,0xE59E ,0x8759 //CJK UNIFIED IDEOGRAPH - ,0xE59F ,0x8753 //CJK UNIFIED IDEOGRAPH - ,0xE5A0 ,0x8763 //CJK UNIFIED IDEOGRAPH - ,0xE5A1 ,0x876A //CJK UNIFIED IDEOGRAPH - ,0xE5A2 ,0x8805 //CJK UNIFIED IDEOGRAPH - ,0xE5A3 ,0x87A2 //CJK UNIFIED IDEOGRAPH - ,0xE5A4 ,0x879F //CJK UNIFIED IDEOGRAPH - ,0xE5A5 ,0x8782 //CJK UNIFIED IDEOGRAPH - ,0xE5A6 ,0x87AF //CJK UNIFIED IDEOGRAPH - ,0xE5A7 ,0x87CB //CJK UNIFIED IDEOGRAPH - ,0xE5A8 ,0x87BD //CJK UNIFIED IDEOGRAPH - ,0xE5A9 ,0x87C0 //CJK UNIFIED IDEOGRAPH - ,0xE5AA ,0x87D0 //CJK UNIFIED IDEOGRAPH - ,0xE5AB ,0x96D6 //CJK UNIFIED IDEOGRAPH - ,0xE5AC ,0x87AB //CJK UNIFIED IDEOGRAPH - ,0xE5AD ,0x87C4 //CJK UNIFIED IDEOGRAPH - ,0xE5AE ,0x87B3 //CJK UNIFIED IDEOGRAPH - ,0xE5AF ,0x87C7 //CJK UNIFIED IDEOGRAPH - ,0xE5B0 ,0x87C6 //CJK UNIFIED IDEOGRAPH - ,0xE5B1 ,0x87BB //CJK UNIFIED IDEOGRAPH - ,0xE5B2 ,0x87EF //CJK UNIFIED IDEOGRAPH - ,0xE5B3 ,0x87F2 //CJK UNIFIED IDEOGRAPH - ,0xE5B4 ,0x87E0 //CJK UNIFIED IDEOGRAPH - ,0xE5B5 ,0x880F //CJK UNIFIED IDEOGRAPH - ,0xE5B6 ,0x880D //CJK UNIFIED IDEOGRAPH - ,0xE5B7 ,0x87FE //CJK UNIFIED IDEOGRAPH - ,0xE5B8 ,0x87F6 //CJK UNIFIED IDEOGRAPH - ,0xE5B9 ,0x87F7 //CJK UNIFIED IDEOGRAPH - ,0xE5BA ,0x880E //CJK UNIFIED IDEOGRAPH - ,0xE5BB ,0x87D2 //CJK UNIFIED IDEOGRAPH - ,0xE5BC ,0x8811 //CJK UNIFIED IDEOGRAPH - ,0xE5BD ,0x8816 //CJK UNIFIED IDEOGRAPH - ,0xE5BE ,0x8815 //CJK UNIFIED IDEOGRAPH - ,0xE5BF ,0x8822 //CJK UNIFIED IDEOGRAPH - ,0xE5C0 ,0x8821 //CJK UNIFIED IDEOGRAPH - ,0xE5C1 ,0x8831 //CJK UNIFIED IDEOGRAPH - ,0xE5C2 ,0x8836 //CJK UNIFIED IDEOGRAPH - ,0xE5C3 ,0x8839 //CJK UNIFIED IDEOGRAPH - ,0xE5C4 ,0x8827 //CJK UNIFIED IDEOGRAPH - ,0xE5C5 ,0x883B //CJK UNIFIED IDEOGRAPH - ,0xE5C6 ,0x8844 //CJK UNIFIED IDEOGRAPH - ,0xE5C7 ,0x8842 //CJK UNIFIED IDEOGRAPH - ,0xE5C8 ,0x8852 //CJK UNIFIED IDEOGRAPH - ,0xE5C9 ,0x8859 //CJK UNIFIED IDEOGRAPH - ,0xE5CA ,0x885E //CJK UNIFIED IDEOGRAPH - ,0xE5CB ,0x8862 //CJK UNIFIED IDEOGRAPH - ,0xE5CC ,0x886B //CJK UNIFIED IDEOGRAPH - ,0xE5CD ,0x8881 //CJK UNIFIED IDEOGRAPH - ,0xE5CE ,0x887E //CJK UNIFIED IDEOGRAPH - ,0xE5CF ,0x889E //CJK UNIFIED IDEOGRAPH - ,0xE5D0 ,0x8875 //CJK UNIFIED IDEOGRAPH - ,0xE5D1 ,0x887D //CJK UNIFIED IDEOGRAPH - ,0xE5D2 ,0x88B5 //CJK UNIFIED IDEOGRAPH - ,0xE5D3 ,0x8872 //CJK UNIFIED IDEOGRAPH - ,0xE5D4 ,0x8882 //CJK UNIFIED IDEOGRAPH - ,0xE5D5 ,0x8897 //CJK UNIFIED IDEOGRAPH - ,0xE5D6 ,0x8892 //CJK UNIFIED IDEOGRAPH - ,0xE5D7 ,0x88AE //CJK UNIFIED IDEOGRAPH - ,0xE5D8 ,0x8899 //CJK UNIFIED IDEOGRAPH - ,0xE5D9 ,0x88A2 //CJK UNIFIED IDEOGRAPH - ,0xE5DA ,0x888D //CJK UNIFIED IDEOGRAPH - ,0xE5DB ,0x88A4 //CJK UNIFIED IDEOGRAPH - ,0xE5DC ,0x88B0 //CJK UNIFIED IDEOGRAPH - ,0xE5DD ,0x88BF //CJK UNIFIED IDEOGRAPH - ,0xE5DE ,0x88B1 //CJK UNIFIED IDEOGRAPH - ,0xE5DF ,0x88C3 //CJK UNIFIED IDEOGRAPH - ,0xE5E0 ,0x88C4 //CJK UNIFIED IDEOGRAPH - ,0xE5E1 ,0x88D4 //CJK UNIFIED IDEOGRAPH - ,0xE5E2 ,0x88D8 //CJK UNIFIED IDEOGRAPH - ,0xE5E3 ,0x88D9 //CJK UNIFIED IDEOGRAPH - ,0xE5E4 ,0x88DD //CJK UNIFIED IDEOGRAPH - ,0xE5E5 ,0x88F9 //CJK UNIFIED IDEOGRAPH - ,0xE5E6 ,0x8902 //CJK UNIFIED IDEOGRAPH - ,0xE5E7 ,0x88FC //CJK UNIFIED IDEOGRAPH - ,0xE5E8 ,0x88F4 //CJK UNIFIED IDEOGRAPH - ,0xE5E9 ,0x88E8 //CJK UNIFIED IDEOGRAPH - ,0xE5EA ,0x88F2 //CJK UNIFIED IDEOGRAPH - ,0xE5EB ,0x8904 //CJK UNIFIED IDEOGRAPH - ,0xE5EC ,0x890C //CJK UNIFIED IDEOGRAPH - ,0xE5ED ,0x890A //CJK UNIFIED IDEOGRAPH - ,0xE5EE ,0x8913 //CJK UNIFIED IDEOGRAPH - ,0xE5EF ,0x8943 //CJK UNIFIED IDEOGRAPH - ,0xE5F0 ,0x891E //CJK UNIFIED IDEOGRAPH - ,0xE5F1 ,0x8925 //CJK UNIFIED IDEOGRAPH - ,0xE5F2 ,0x892A //CJK UNIFIED IDEOGRAPH - ,0xE5F3 ,0x892B //CJK UNIFIED IDEOGRAPH - ,0xE5F4 ,0x8941 //CJK UNIFIED IDEOGRAPH - ,0xE5F5 ,0x8944 //CJK UNIFIED IDEOGRAPH - ,0xE5F6 ,0x893B //CJK UNIFIED IDEOGRAPH - ,0xE5F7 ,0x8936 //CJK UNIFIED IDEOGRAPH - ,0xE5F8 ,0x8938 //CJK UNIFIED IDEOGRAPH - ,0xE5F9 ,0x894C //CJK UNIFIED IDEOGRAPH - ,0xE5FA ,0x891D //CJK UNIFIED IDEOGRAPH - ,0xE5FB ,0x8960 //CJK UNIFIED IDEOGRAPH - ,0xE5FC ,0x895E //CJK UNIFIED IDEOGRAPH - ,0xE640 ,0x8966 //CJK UNIFIED IDEOGRAPH - ,0xE641 ,0x8964 //CJK UNIFIED IDEOGRAPH - ,0xE642 ,0x896D //CJK UNIFIED IDEOGRAPH - ,0xE643 ,0x896A //CJK UNIFIED IDEOGRAPH - ,0xE644 ,0x896F //CJK UNIFIED IDEOGRAPH - ,0xE645 ,0x8974 //CJK UNIFIED IDEOGRAPH - ,0xE646 ,0x8977 //CJK UNIFIED IDEOGRAPH - ,0xE647 ,0x897E //CJK UNIFIED IDEOGRAPH - ,0xE648 ,0x8983 //CJK UNIFIED IDEOGRAPH - ,0xE649 ,0x8988 //CJK UNIFIED IDEOGRAPH - ,0xE64A ,0x898A //CJK UNIFIED IDEOGRAPH - ,0xE64B ,0x8993 //CJK UNIFIED IDEOGRAPH - ,0xE64C ,0x8998 //CJK UNIFIED IDEOGRAPH - ,0xE64D ,0x89A1 //CJK UNIFIED IDEOGRAPH - ,0xE64E ,0x89A9 //CJK UNIFIED IDEOGRAPH - ,0xE64F ,0x89A6 //CJK UNIFIED IDEOGRAPH - ,0xE650 ,0x89AC //CJK UNIFIED IDEOGRAPH - ,0xE651 ,0x89AF //CJK UNIFIED IDEOGRAPH - ,0xE652 ,0x89B2 //CJK UNIFIED IDEOGRAPH - ,0xE653 ,0x89BA //CJK UNIFIED IDEOGRAPH - ,0xE654 ,0x89BD //CJK UNIFIED IDEOGRAPH - ,0xE655 ,0x89BF //CJK UNIFIED IDEOGRAPH - ,0xE656 ,0x89C0 //CJK UNIFIED IDEOGRAPH - ,0xE657 ,0x89DA //CJK UNIFIED IDEOGRAPH - ,0xE658 ,0x89DC //CJK UNIFIED IDEOGRAPH - ,0xE659 ,0x89DD //CJK UNIFIED IDEOGRAPH - ,0xE65A ,0x89E7 //CJK UNIFIED IDEOGRAPH - ,0xE65B ,0x89F4 //CJK UNIFIED IDEOGRAPH - ,0xE65C ,0x89F8 //CJK UNIFIED IDEOGRAPH - ,0xE65D ,0x8A03 //CJK UNIFIED IDEOGRAPH - ,0xE65E ,0x8A16 //CJK UNIFIED IDEOGRAPH - ,0xE65F ,0x8A10 //CJK UNIFIED IDEOGRAPH - ,0xE660 ,0x8A0C //CJK UNIFIED IDEOGRAPH - ,0xE661 ,0x8A1B //CJK UNIFIED IDEOGRAPH - ,0xE662 ,0x8A1D //CJK UNIFIED IDEOGRAPH - ,0xE663 ,0x8A25 //CJK UNIFIED IDEOGRAPH - ,0xE664 ,0x8A36 //CJK UNIFIED IDEOGRAPH - ,0xE665 ,0x8A41 //CJK UNIFIED IDEOGRAPH - ,0xE666 ,0x8A5B //CJK UNIFIED IDEOGRAPH - ,0xE667 ,0x8A52 //CJK UNIFIED IDEOGRAPH - ,0xE668 ,0x8A46 //CJK UNIFIED IDEOGRAPH - ,0xE669 ,0x8A48 //CJK UNIFIED IDEOGRAPH - ,0xE66A ,0x8A7C //CJK UNIFIED IDEOGRAPH - ,0xE66B ,0x8A6D //CJK UNIFIED IDEOGRAPH - ,0xE66C ,0x8A6C //CJK UNIFIED IDEOGRAPH - ,0xE66D ,0x8A62 //CJK UNIFIED IDEOGRAPH - ,0xE66E ,0x8A85 //CJK UNIFIED IDEOGRAPH - ,0xE66F ,0x8A82 //CJK UNIFIED IDEOGRAPH - ,0xE670 ,0x8A84 //CJK UNIFIED IDEOGRAPH - ,0xE671 ,0x8AA8 //CJK UNIFIED IDEOGRAPH - ,0xE672 ,0x8AA1 //CJK UNIFIED IDEOGRAPH - ,0xE673 ,0x8A91 //CJK UNIFIED IDEOGRAPH - ,0xE674 ,0x8AA5 //CJK UNIFIED IDEOGRAPH - ,0xE675 ,0x8AA6 //CJK UNIFIED IDEOGRAPH - ,0xE676 ,0x8A9A //CJK UNIFIED IDEOGRAPH - ,0xE677 ,0x8AA3 //CJK UNIFIED IDEOGRAPH - ,0xE678 ,0x8AC4 //CJK UNIFIED IDEOGRAPH - ,0xE679 ,0x8ACD //CJK UNIFIED IDEOGRAPH - ,0xE67A ,0x8AC2 //CJK UNIFIED IDEOGRAPH - ,0xE67B ,0x8ADA //CJK UNIFIED IDEOGRAPH - ,0xE67C ,0x8AEB //CJK UNIFIED IDEOGRAPH - ,0xE67D ,0x8AF3 //CJK UNIFIED IDEOGRAPH - ,0xE67E ,0x8AE7 //CJK UNIFIED IDEOGRAPH - ,0xE680 ,0x8AE4 //CJK UNIFIED IDEOGRAPH - ,0xE681 ,0x8AF1 //CJK UNIFIED IDEOGRAPH - ,0xE682 ,0x8B14 //CJK UNIFIED IDEOGRAPH - ,0xE683 ,0x8AE0 //CJK UNIFIED IDEOGRAPH - ,0xE684 ,0x8AE2 //CJK UNIFIED IDEOGRAPH - ,0xE685 ,0x8AF7 //CJK UNIFIED IDEOGRAPH - ,0xE686 ,0x8ADE //CJK UNIFIED IDEOGRAPH - ,0xE687 ,0x8ADB //CJK UNIFIED IDEOGRAPH - ,0xE688 ,0x8B0C //CJK UNIFIED IDEOGRAPH - ,0xE689 ,0x8B07 //CJK UNIFIED IDEOGRAPH - ,0xE68A ,0x8B1A //CJK UNIFIED IDEOGRAPH - ,0xE68B ,0x8AE1 //CJK UNIFIED IDEOGRAPH - ,0xE68C ,0x8B16 //CJK UNIFIED IDEOGRAPH - ,0xE68D ,0x8B10 //CJK UNIFIED IDEOGRAPH - ,0xE68E ,0x8B17 //CJK UNIFIED IDEOGRAPH - ,0xE68F ,0x8B20 //CJK UNIFIED IDEOGRAPH - ,0xE690 ,0x8B33 //CJK UNIFIED IDEOGRAPH - ,0xE691 ,0x97AB //CJK UNIFIED IDEOGRAPH - ,0xE692 ,0x8B26 //CJK UNIFIED IDEOGRAPH - ,0xE693 ,0x8B2B //CJK UNIFIED IDEOGRAPH - ,0xE694 ,0x8B3E //CJK UNIFIED IDEOGRAPH - ,0xE695 ,0x8B28 //CJK UNIFIED IDEOGRAPH - ,0xE696 ,0x8B41 //CJK UNIFIED IDEOGRAPH - ,0xE697 ,0x8B4C //CJK UNIFIED IDEOGRAPH - ,0xE698 ,0x8B4F //CJK UNIFIED IDEOGRAPH - ,0xE699 ,0x8B4E //CJK UNIFIED IDEOGRAPH - ,0xE69A ,0x8B49 //CJK UNIFIED IDEOGRAPH - ,0xE69B ,0x8B56 //CJK UNIFIED IDEOGRAPH - ,0xE69C ,0x8B5B //CJK UNIFIED IDEOGRAPH - ,0xE69D ,0x8B5A //CJK UNIFIED IDEOGRAPH - ,0xE69E ,0x8B6B //CJK UNIFIED IDEOGRAPH - ,0xE69F ,0x8B5F //CJK UNIFIED IDEOGRAPH - ,0xE6A0 ,0x8B6C //CJK UNIFIED IDEOGRAPH - ,0xE6A1 ,0x8B6F //CJK UNIFIED IDEOGRAPH - ,0xE6A2 ,0x8B74 //CJK UNIFIED IDEOGRAPH - ,0xE6A3 ,0x8B7D //CJK UNIFIED IDEOGRAPH - ,0xE6A4 ,0x8B80 //CJK UNIFIED IDEOGRAPH - ,0xE6A5 ,0x8B8C //CJK UNIFIED IDEOGRAPH - ,0xE6A6 ,0x8B8E //CJK UNIFIED IDEOGRAPH - ,0xE6A7 ,0x8B92 //CJK UNIFIED IDEOGRAPH - ,0xE6A8 ,0x8B93 //CJK UNIFIED IDEOGRAPH - ,0xE6A9 ,0x8B96 //CJK UNIFIED IDEOGRAPH - ,0xE6AA ,0x8B99 //CJK UNIFIED IDEOGRAPH - ,0xE6AB ,0x8B9A //CJK UNIFIED IDEOGRAPH - ,0xE6AC ,0x8C3A //CJK UNIFIED IDEOGRAPH - ,0xE6AD ,0x8C41 //CJK UNIFIED IDEOGRAPH - ,0xE6AE ,0x8C3F //CJK UNIFIED IDEOGRAPH - ,0xE6AF ,0x8C48 //CJK UNIFIED IDEOGRAPH - ,0xE6B0 ,0x8C4C //CJK UNIFIED IDEOGRAPH - ,0xE6B1 ,0x8C4E //CJK UNIFIED IDEOGRAPH - ,0xE6B2 ,0x8C50 //CJK UNIFIED IDEOGRAPH - ,0xE6B3 ,0x8C55 //CJK UNIFIED IDEOGRAPH - ,0xE6B4 ,0x8C62 //CJK UNIFIED IDEOGRAPH - ,0xE6B5 ,0x8C6C //CJK UNIFIED IDEOGRAPH - ,0xE6B6 ,0x8C78 //CJK UNIFIED IDEOGRAPH - ,0xE6B7 ,0x8C7A //CJK UNIFIED IDEOGRAPH - ,0xE6B8 ,0x8C82 //CJK UNIFIED IDEOGRAPH - ,0xE6B9 ,0x8C89 //CJK UNIFIED IDEOGRAPH - ,0xE6BA ,0x8C85 //CJK UNIFIED IDEOGRAPH - ,0xE6BB ,0x8C8A //CJK UNIFIED IDEOGRAPH - ,0xE6BC ,0x8C8D //CJK UNIFIED IDEOGRAPH - ,0xE6BD ,0x8C8E //CJK UNIFIED IDEOGRAPH - ,0xE6BE ,0x8C94 //CJK UNIFIED IDEOGRAPH - ,0xE6BF ,0x8C7C //CJK UNIFIED IDEOGRAPH - ,0xE6C0 ,0x8C98 //CJK UNIFIED IDEOGRAPH - ,0xE6C1 ,0x621D //CJK UNIFIED IDEOGRAPH - ,0xE6C2 ,0x8CAD //CJK UNIFIED IDEOGRAPH - ,0xE6C3 ,0x8CAA //CJK UNIFIED IDEOGRAPH - ,0xE6C4 ,0x8CBD //CJK UNIFIED IDEOGRAPH - ,0xE6C5 ,0x8CB2 //CJK UNIFIED IDEOGRAPH - ,0xE6C6 ,0x8CB3 //CJK UNIFIED IDEOGRAPH - ,0xE6C7 ,0x8CAE //CJK UNIFIED IDEOGRAPH - ,0xE6C8 ,0x8CB6 //CJK UNIFIED IDEOGRAPH - ,0xE6C9 ,0x8CC8 //CJK UNIFIED IDEOGRAPH - ,0xE6CA ,0x8CC1 //CJK UNIFIED IDEOGRAPH - ,0xE6CB ,0x8CE4 //CJK UNIFIED IDEOGRAPH - ,0xE6CC ,0x8CE3 //CJK UNIFIED IDEOGRAPH - ,0xE6CD ,0x8CDA //CJK UNIFIED IDEOGRAPH - ,0xE6CE ,0x8CFD //CJK UNIFIED IDEOGRAPH - ,0xE6CF ,0x8CFA //CJK UNIFIED IDEOGRAPH - ,0xE6D0 ,0x8CFB //CJK UNIFIED IDEOGRAPH - ,0xE6D1 ,0x8D04 //CJK UNIFIED IDEOGRAPH - ,0xE6D2 ,0x8D05 //CJK UNIFIED IDEOGRAPH - ,0xE6D3 ,0x8D0A //CJK UNIFIED IDEOGRAPH - ,0xE6D4 ,0x8D07 //CJK UNIFIED IDEOGRAPH - ,0xE6D5 ,0x8D0F //CJK UNIFIED IDEOGRAPH - ,0xE6D6 ,0x8D0D //CJK UNIFIED IDEOGRAPH - ,0xE6D7 ,0x8D10 //CJK UNIFIED IDEOGRAPH - ,0xE6D8 ,0x9F4E //CJK UNIFIED IDEOGRAPH - ,0xE6D9 ,0x8D13 //CJK UNIFIED IDEOGRAPH - ,0xE6DA ,0x8CCD //CJK UNIFIED IDEOGRAPH - ,0xE6DB ,0x8D14 //CJK UNIFIED IDEOGRAPH - ,0xE6DC ,0x8D16 //CJK UNIFIED IDEOGRAPH - ,0xE6DD ,0x8D67 //CJK UNIFIED IDEOGRAPH - ,0xE6DE ,0x8D6D //CJK UNIFIED IDEOGRAPH - ,0xE6DF ,0x8D71 //CJK UNIFIED IDEOGRAPH - ,0xE6E0 ,0x8D73 //CJK UNIFIED IDEOGRAPH - ,0xE6E1 ,0x8D81 //CJK UNIFIED IDEOGRAPH - ,0xE6E2 ,0x8D99 //CJK UNIFIED IDEOGRAPH - ,0xE6E3 ,0x8DC2 //CJK UNIFIED IDEOGRAPH - ,0xE6E4 ,0x8DBE //CJK UNIFIED IDEOGRAPH - ,0xE6E5 ,0x8DBA //CJK UNIFIED IDEOGRAPH - ,0xE6E6 ,0x8DCF //CJK UNIFIED IDEOGRAPH - ,0xE6E7 ,0x8DDA //CJK UNIFIED IDEOGRAPH - ,0xE6E8 ,0x8DD6 //CJK UNIFIED IDEOGRAPH - ,0xE6E9 ,0x8DCC //CJK UNIFIED IDEOGRAPH - ,0xE6EA ,0x8DDB //CJK UNIFIED IDEOGRAPH - ,0xE6EB ,0x8DCB //CJK UNIFIED IDEOGRAPH - ,0xE6EC ,0x8DEA //CJK UNIFIED IDEOGRAPH - ,0xE6ED ,0x8DEB //CJK UNIFIED IDEOGRAPH - ,0xE6EE ,0x8DDF //CJK UNIFIED IDEOGRAPH - ,0xE6EF ,0x8DE3 //CJK UNIFIED IDEOGRAPH - ,0xE6F0 ,0x8DFC //CJK UNIFIED IDEOGRAPH - ,0xE6F1 ,0x8E08 //CJK UNIFIED IDEOGRAPH - ,0xE6F2 ,0x8E09 //CJK UNIFIED IDEOGRAPH - ,0xE6F3 ,0x8DFF //CJK UNIFIED IDEOGRAPH - ,0xE6F4 ,0x8E1D //CJK UNIFIED IDEOGRAPH - ,0xE6F5 ,0x8E1E //CJK UNIFIED IDEOGRAPH - ,0xE6F6 ,0x8E10 //CJK UNIFIED IDEOGRAPH - ,0xE6F7 ,0x8E1F //CJK UNIFIED IDEOGRAPH - ,0xE6F8 ,0x8E42 //CJK UNIFIED IDEOGRAPH - ,0xE6F9 ,0x8E35 //CJK UNIFIED IDEOGRAPH - ,0xE6FA ,0x8E30 //CJK UNIFIED IDEOGRAPH - ,0xE6FB ,0x8E34 //CJK UNIFIED IDEOGRAPH - ,0xE6FC ,0x8E4A //CJK UNIFIED IDEOGRAPH - ,0xE740 ,0x8E47 //CJK UNIFIED IDEOGRAPH - ,0xE741 ,0x8E49 //CJK UNIFIED IDEOGRAPH - ,0xE742 ,0x8E4C //CJK UNIFIED IDEOGRAPH - ,0xE743 ,0x8E50 //CJK UNIFIED IDEOGRAPH - ,0xE744 ,0x8E48 //CJK UNIFIED IDEOGRAPH - ,0xE745 ,0x8E59 //CJK UNIFIED IDEOGRAPH - ,0xE746 ,0x8E64 //CJK UNIFIED IDEOGRAPH - ,0xE747 ,0x8E60 //CJK UNIFIED IDEOGRAPH - ,0xE748 ,0x8E2A //CJK UNIFIED IDEOGRAPH - ,0xE749 ,0x8E63 //CJK UNIFIED IDEOGRAPH - ,0xE74A ,0x8E55 //CJK UNIFIED IDEOGRAPH - ,0xE74B ,0x8E76 //CJK UNIFIED IDEOGRAPH - ,0xE74C ,0x8E72 //CJK UNIFIED IDEOGRAPH - ,0xE74D ,0x8E7C //CJK UNIFIED IDEOGRAPH - ,0xE74E ,0x8E81 //CJK UNIFIED IDEOGRAPH - ,0xE74F ,0x8E87 //CJK UNIFIED IDEOGRAPH - ,0xE750 ,0x8E85 //CJK UNIFIED IDEOGRAPH - ,0xE751 ,0x8E84 //CJK UNIFIED IDEOGRAPH - ,0xE752 ,0x8E8B //CJK UNIFIED IDEOGRAPH - ,0xE753 ,0x8E8A //CJK UNIFIED IDEOGRAPH - ,0xE754 ,0x8E93 //CJK UNIFIED IDEOGRAPH - ,0xE755 ,0x8E91 //CJK UNIFIED IDEOGRAPH - ,0xE756 ,0x8E94 //CJK UNIFIED IDEOGRAPH - ,0xE757 ,0x8E99 //CJK UNIFIED IDEOGRAPH - ,0xE758 ,0x8EAA //CJK UNIFIED IDEOGRAPH - ,0xE759 ,0x8EA1 //CJK UNIFIED IDEOGRAPH - ,0xE75A ,0x8EAC //CJK UNIFIED IDEOGRAPH - ,0xE75B ,0x8EB0 //CJK UNIFIED IDEOGRAPH - ,0xE75C ,0x8EC6 //CJK UNIFIED IDEOGRAPH - ,0xE75D ,0x8EB1 //CJK UNIFIED IDEOGRAPH - ,0xE75E ,0x8EBE //CJK UNIFIED IDEOGRAPH - ,0xE75F ,0x8EC5 //CJK UNIFIED IDEOGRAPH - ,0xE760 ,0x8EC8 //CJK UNIFIED IDEOGRAPH - ,0xE761 ,0x8ECB //CJK UNIFIED IDEOGRAPH - ,0xE762 ,0x8EDB //CJK UNIFIED IDEOGRAPH - ,0xE763 ,0x8EE3 //CJK UNIFIED IDEOGRAPH - ,0xE764 ,0x8EFC //CJK UNIFIED IDEOGRAPH - ,0xE765 ,0x8EFB //CJK UNIFIED IDEOGRAPH - ,0xE766 ,0x8EEB //CJK UNIFIED IDEOGRAPH - ,0xE767 ,0x8EFE //CJK UNIFIED IDEOGRAPH - ,0xE768 ,0x8F0A //CJK UNIFIED IDEOGRAPH - ,0xE769 ,0x8F05 //CJK UNIFIED IDEOGRAPH - ,0xE76A ,0x8F15 //CJK UNIFIED IDEOGRAPH - ,0xE76B ,0x8F12 //CJK UNIFIED IDEOGRAPH - ,0xE76C ,0x8F19 //CJK UNIFIED IDEOGRAPH - ,0xE76D ,0x8F13 //CJK UNIFIED IDEOGRAPH - ,0xE76E ,0x8F1C //CJK UNIFIED IDEOGRAPH - ,0xE76F ,0x8F1F //CJK UNIFIED IDEOGRAPH - ,0xE770 ,0x8F1B //CJK UNIFIED IDEOGRAPH - ,0xE771 ,0x8F0C //CJK UNIFIED IDEOGRAPH - ,0xE772 ,0x8F26 //CJK UNIFIED IDEOGRAPH - ,0xE773 ,0x8F33 //CJK UNIFIED IDEOGRAPH - ,0xE774 ,0x8F3B //CJK UNIFIED IDEOGRAPH - ,0xE775 ,0x8F39 //CJK UNIFIED IDEOGRAPH - ,0xE776 ,0x8F45 //CJK UNIFIED IDEOGRAPH - ,0xE777 ,0x8F42 //CJK UNIFIED IDEOGRAPH - ,0xE778 ,0x8F3E //CJK UNIFIED IDEOGRAPH - ,0xE779 ,0x8F4C //CJK UNIFIED IDEOGRAPH - ,0xE77A ,0x8F49 //CJK UNIFIED IDEOGRAPH - ,0xE77B ,0x8F46 //CJK UNIFIED IDEOGRAPH - ,0xE77C ,0x8F4E //CJK UNIFIED IDEOGRAPH - ,0xE77D ,0x8F57 //CJK UNIFIED IDEOGRAPH - ,0xE77E ,0x8F5C //CJK UNIFIED IDEOGRAPH - ,0xE780 ,0x8F62 //CJK UNIFIED IDEOGRAPH - ,0xE781 ,0x8F63 //CJK UNIFIED IDEOGRAPH - ,0xE782 ,0x8F64 //CJK UNIFIED IDEOGRAPH - ,0xE783 ,0x8F9C //CJK UNIFIED IDEOGRAPH - ,0xE784 ,0x8F9F //CJK UNIFIED IDEOGRAPH - ,0xE785 ,0x8FA3 //CJK UNIFIED IDEOGRAPH - ,0xE786 ,0x8FAD //CJK UNIFIED IDEOGRAPH - ,0xE787 ,0x8FAF //CJK UNIFIED IDEOGRAPH - ,0xE788 ,0x8FB7 //CJK UNIFIED IDEOGRAPH - ,0xE789 ,0x8FDA //CJK UNIFIED IDEOGRAPH - ,0xE78A ,0x8FE5 //CJK UNIFIED IDEOGRAPH - ,0xE78B ,0x8FE2 //CJK UNIFIED IDEOGRAPH - ,0xE78C ,0x8FEA //CJK UNIFIED IDEOGRAPH - ,0xE78D ,0x8FEF //CJK UNIFIED IDEOGRAPH - ,0xE78E ,0x9087 //CJK UNIFIED IDEOGRAPH - ,0xE78F ,0x8FF4 //CJK UNIFIED IDEOGRAPH - ,0xE790 ,0x9005 //CJK UNIFIED IDEOGRAPH - ,0xE791 ,0x8FF9 //CJK UNIFIED IDEOGRAPH - ,0xE792 ,0x8FFA //CJK UNIFIED IDEOGRAPH - ,0xE793 ,0x9011 //CJK UNIFIED IDEOGRAPH - ,0xE794 ,0x9015 //CJK UNIFIED IDEOGRAPH - ,0xE795 ,0x9021 //CJK UNIFIED IDEOGRAPH - ,0xE796 ,0x900D //CJK UNIFIED IDEOGRAPH - ,0xE797 ,0x901E //CJK UNIFIED IDEOGRAPH - ,0xE798 ,0x9016 //CJK UNIFIED IDEOGRAPH - ,0xE799 ,0x900B //CJK UNIFIED IDEOGRAPH - ,0xE79A ,0x9027 //CJK UNIFIED IDEOGRAPH - ,0xE79B ,0x9036 //CJK UNIFIED IDEOGRAPH - ,0xE79C ,0x9035 //CJK UNIFIED IDEOGRAPH - ,0xE79D ,0x9039 //CJK UNIFIED IDEOGRAPH - ,0xE79E ,0x8FF8 //CJK UNIFIED IDEOGRAPH - ,0xE79F ,0x904F //CJK UNIFIED IDEOGRAPH - ,0xE7A0 ,0x9050 //CJK UNIFIED IDEOGRAPH - ,0xE7A1 ,0x9051 //CJK UNIFIED IDEOGRAPH - ,0xE7A2 ,0x9052 //CJK UNIFIED IDEOGRAPH - ,0xE7A3 ,0x900E //CJK UNIFIED IDEOGRAPH - ,0xE7A4 ,0x9049 //CJK UNIFIED IDEOGRAPH - ,0xE7A5 ,0x903E //CJK UNIFIED IDEOGRAPH - ,0xE7A6 ,0x9056 //CJK UNIFIED IDEOGRAPH - ,0xE7A7 ,0x9058 //CJK UNIFIED IDEOGRAPH - ,0xE7A8 ,0x905E //CJK UNIFIED IDEOGRAPH - ,0xE7A9 ,0x9068 //CJK UNIFIED IDEOGRAPH - ,0xE7AA ,0x906F //CJK UNIFIED IDEOGRAPH - ,0xE7AB ,0x9076 //CJK UNIFIED IDEOGRAPH - ,0xE7AC ,0x96A8 //CJK UNIFIED IDEOGRAPH - ,0xE7AD ,0x9072 //CJK UNIFIED IDEOGRAPH - ,0xE7AE ,0x9082 //CJK UNIFIED IDEOGRAPH - ,0xE7AF ,0x907D //CJK UNIFIED IDEOGRAPH - ,0xE7B0 ,0x9081 //CJK UNIFIED IDEOGRAPH - ,0xE7B1 ,0x9080 //CJK UNIFIED IDEOGRAPH - ,0xE7B2 ,0x908A //CJK UNIFIED IDEOGRAPH - ,0xE7B3 ,0x9089 //CJK UNIFIED IDEOGRAPH - ,0xE7B4 ,0x908F //CJK UNIFIED IDEOGRAPH - ,0xE7B5 ,0x90A8 //CJK UNIFIED IDEOGRAPH - ,0xE7B6 ,0x90AF //CJK UNIFIED IDEOGRAPH - ,0xE7B7 ,0x90B1 //CJK UNIFIED IDEOGRAPH - ,0xE7B8 ,0x90B5 //CJK UNIFIED IDEOGRAPH - ,0xE7B9 ,0x90E2 //CJK UNIFIED IDEOGRAPH - ,0xE7BA ,0x90E4 //CJK UNIFIED IDEOGRAPH - ,0xE7BB ,0x6248 //CJK UNIFIED IDEOGRAPH - ,0xE7BC ,0x90DB //CJK UNIFIED IDEOGRAPH - ,0xE7BD ,0x9102 //CJK UNIFIED IDEOGRAPH - ,0xE7BE ,0x9112 //CJK UNIFIED IDEOGRAPH - ,0xE7BF ,0x9119 //CJK UNIFIED IDEOGRAPH - ,0xE7C0 ,0x9132 //CJK UNIFIED IDEOGRAPH - ,0xE7C1 ,0x9130 //CJK UNIFIED IDEOGRAPH - ,0xE7C2 ,0x914A //CJK UNIFIED IDEOGRAPH - ,0xE7C3 ,0x9156 //CJK UNIFIED IDEOGRAPH - ,0xE7C4 ,0x9158 //CJK UNIFIED IDEOGRAPH - ,0xE7C5 ,0x9163 //CJK UNIFIED IDEOGRAPH - ,0xE7C6 ,0x9165 //CJK UNIFIED IDEOGRAPH - ,0xE7C7 ,0x9169 //CJK UNIFIED IDEOGRAPH - ,0xE7C8 ,0x9173 //CJK UNIFIED IDEOGRAPH - ,0xE7C9 ,0x9172 //CJK UNIFIED IDEOGRAPH - ,0xE7CA ,0x918B //CJK UNIFIED IDEOGRAPH - ,0xE7CB ,0x9189 //CJK UNIFIED IDEOGRAPH - ,0xE7CC ,0x9182 //CJK UNIFIED IDEOGRAPH - ,0xE7CD ,0x91A2 //CJK UNIFIED IDEOGRAPH - ,0xE7CE ,0x91AB //CJK UNIFIED IDEOGRAPH - ,0xE7CF ,0x91AF //CJK UNIFIED IDEOGRAPH - ,0xE7D0 ,0x91AA //CJK UNIFIED IDEOGRAPH - ,0xE7D1 ,0x91B5 //CJK UNIFIED IDEOGRAPH - ,0xE7D2 ,0x91B4 //CJK UNIFIED IDEOGRAPH - ,0xE7D3 ,0x91BA //CJK UNIFIED IDEOGRAPH - ,0xE7D4 ,0x91C0 //CJK UNIFIED IDEOGRAPH - ,0xE7D5 ,0x91C1 //CJK UNIFIED IDEOGRAPH - ,0xE7D6 ,0x91C9 //CJK UNIFIED IDEOGRAPH - ,0xE7D7 ,0x91CB //CJK UNIFIED IDEOGRAPH - ,0xE7D8 ,0x91D0 //CJK UNIFIED IDEOGRAPH - ,0xE7D9 ,0x91D6 //CJK UNIFIED IDEOGRAPH - ,0xE7DA ,0x91DF //CJK UNIFIED IDEOGRAPH - ,0xE7DB ,0x91E1 //CJK UNIFIED IDEOGRAPH - ,0xE7DC ,0x91DB //CJK UNIFIED IDEOGRAPH - ,0xE7DD ,0x91FC //CJK UNIFIED IDEOGRAPH - ,0xE7DE ,0x91F5 //CJK UNIFIED IDEOGRAPH - ,0xE7DF ,0x91F6 //CJK UNIFIED IDEOGRAPH - ,0xE7E0 ,0x921E //CJK UNIFIED IDEOGRAPH - ,0xE7E1 ,0x91FF //CJK UNIFIED IDEOGRAPH - ,0xE7E2 ,0x9214 //CJK UNIFIED IDEOGRAPH - ,0xE7E3 ,0x922C //CJK UNIFIED IDEOGRAPH - ,0xE7E4 ,0x9215 //CJK UNIFIED IDEOGRAPH - ,0xE7E5 ,0x9211 //CJK UNIFIED IDEOGRAPH - ,0xE7E6 ,0x925E //CJK UNIFIED IDEOGRAPH - ,0xE7E7 ,0x9257 //CJK UNIFIED IDEOGRAPH - ,0xE7E8 ,0x9245 //CJK UNIFIED IDEOGRAPH - ,0xE7E9 ,0x9249 //CJK UNIFIED IDEOGRAPH - ,0xE7EA ,0x9264 //CJK UNIFIED IDEOGRAPH - ,0xE7EB ,0x9248 //CJK UNIFIED IDEOGRAPH - ,0xE7EC ,0x9295 //CJK UNIFIED IDEOGRAPH - ,0xE7ED ,0x923F //CJK UNIFIED IDEOGRAPH - ,0xE7EE ,0x924B //CJK UNIFIED IDEOGRAPH - ,0xE7EF ,0x9250 //CJK UNIFIED IDEOGRAPH - ,0xE7F0 ,0x929C //CJK UNIFIED IDEOGRAPH - ,0xE7F1 ,0x9296 //CJK UNIFIED IDEOGRAPH - ,0xE7F2 ,0x9293 //CJK UNIFIED IDEOGRAPH - ,0xE7F3 ,0x929B //CJK UNIFIED IDEOGRAPH - ,0xE7F4 ,0x925A //CJK UNIFIED IDEOGRAPH - ,0xE7F5 ,0x92CF //CJK UNIFIED IDEOGRAPH - ,0xE7F6 ,0x92B9 //CJK UNIFIED IDEOGRAPH - ,0xE7F7 ,0x92B7 //CJK UNIFIED IDEOGRAPH - ,0xE7F8 ,0x92E9 //CJK UNIFIED IDEOGRAPH - ,0xE7F9 ,0x930F //CJK UNIFIED IDEOGRAPH - ,0xE7FA ,0x92FA //CJK UNIFIED IDEOGRAPH - ,0xE7FB ,0x9344 //CJK UNIFIED IDEOGRAPH - ,0xE7FC ,0x932E //CJK UNIFIED IDEOGRAPH - ,0xE840 ,0x9319 //CJK UNIFIED IDEOGRAPH - ,0xE841 ,0x9322 //CJK UNIFIED IDEOGRAPH - ,0xE842 ,0x931A //CJK UNIFIED IDEOGRAPH - ,0xE843 ,0x9323 //CJK UNIFIED IDEOGRAPH - ,0xE844 ,0x933A //CJK UNIFIED IDEOGRAPH - ,0xE845 ,0x9335 //CJK UNIFIED IDEOGRAPH - ,0xE846 ,0x933B //CJK UNIFIED IDEOGRAPH - ,0xE847 ,0x935C //CJK UNIFIED IDEOGRAPH - ,0xE848 ,0x9360 //CJK UNIFIED IDEOGRAPH - ,0xE849 ,0x937C //CJK UNIFIED IDEOGRAPH - ,0xE84A ,0x936E //CJK UNIFIED IDEOGRAPH - ,0xE84B ,0x9356 //CJK UNIFIED IDEOGRAPH - ,0xE84C ,0x93B0 //CJK UNIFIED IDEOGRAPH - ,0xE84D ,0x93AC //CJK UNIFIED IDEOGRAPH - ,0xE84E ,0x93AD //CJK UNIFIED IDEOGRAPH - ,0xE84F ,0x9394 //CJK UNIFIED IDEOGRAPH - ,0xE850 ,0x93B9 //CJK UNIFIED IDEOGRAPH - ,0xE851 ,0x93D6 //CJK UNIFIED IDEOGRAPH - ,0xE852 ,0x93D7 //CJK UNIFIED IDEOGRAPH - ,0xE853 ,0x93E8 //CJK UNIFIED IDEOGRAPH - ,0xE854 ,0x93E5 //CJK UNIFIED IDEOGRAPH - ,0xE855 ,0x93D8 //CJK UNIFIED IDEOGRAPH - ,0xE856 ,0x93C3 //CJK UNIFIED IDEOGRAPH - ,0xE857 ,0x93DD //CJK UNIFIED IDEOGRAPH - ,0xE858 ,0x93D0 //CJK UNIFIED IDEOGRAPH - ,0xE859 ,0x93C8 //CJK UNIFIED IDEOGRAPH - ,0xE85A ,0x93E4 //CJK UNIFIED IDEOGRAPH - ,0xE85B ,0x941A //CJK UNIFIED IDEOGRAPH - ,0xE85C ,0x9414 //CJK UNIFIED IDEOGRAPH - ,0xE85D ,0x9413 //CJK UNIFIED IDEOGRAPH - ,0xE85E ,0x9403 //CJK UNIFIED IDEOGRAPH - ,0xE85F ,0x9407 //CJK UNIFIED IDEOGRAPH - ,0xE860 ,0x9410 //CJK UNIFIED IDEOGRAPH - ,0xE861 ,0x9436 //CJK UNIFIED IDEOGRAPH - ,0xE862 ,0x942B //CJK UNIFIED IDEOGRAPH - ,0xE863 ,0x9435 //CJK UNIFIED IDEOGRAPH - ,0xE864 ,0x9421 //CJK UNIFIED IDEOGRAPH - ,0xE865 ,0x943A //CJK UNIFIED IDEOGRAPH - ,0xE866 ,0x9441 //CJK UNIFIED IDEOGRAPH - ,0xE867 ,0x9452 //CJK UNIFIED IDEOGRAPH - ,0xE868 ,0x9444 //CJK UNIFIED IDEOGRAPH - ,0xE869 ,0x945B //CJK UNIFIED IDEOGRAPH - ,0xE86A ,0x9460 //CJK UNIFIED IDEOGRAPH - ,0xE86B ,0x9462 //CJK UNIFIED IDEOGRAPH - ,0xE86C ,0x945E //CJK UNIFIED IDEOGRAPH - ,0xE86D ,0x946A //CJK UNIFIED IDEOGRAPH - ,0xE86E ,0x9229 //CJK UNIFIED IDEOGRAPH - ,0xE86F ,0x9470 //CJK UNIFIED IDEOGRAPH - ,0xE870 ,0x9475 //CJK UNIFIED IDEOGRAPH - ,0xE871 ,0x9477 //CJK UNIFIED IDEOGRAPH - ,0xE872 ,0x947D //CJK UNIFIED IDEOGRAPH - ,0xE873 ,0x945A //CJK UNIFIED IDEOGRAPH - ,0xE874 ,0x947C //CJK UNIFIED IDEOGRAPH - ,0xE875 ,0x947E //CJK UNIFIED IDEOGRAPH - ,0xE876 ,0x9481 //CJK UNIFIED IDEOGRAPH - ,0xE877 ,0x947F //CJK UNIFIED IDEOGRAPH - ,0xE878 ,0x9582 //CJK UNIFIED IDEOGRAPH - ,0xE879 ,0x9587 //CJK UNIFIED IDEOGRAPH - ,0xE87A ,0x958A //CJK UNIFIED IDEOGRAPH - ,0xE87B ,0x9594 //CJK UNIFIED IDEOGRAPH - ,0xE87C ,0x9596 //CJK UNIFIED IDEOGRAPH - ,0xE87D ,0x9598 //CJK UNIFIED IDEOGRAPH - ,0xE87E ,0x9599 //CJK UNIFIED IDEOGRAPH - ,0xE880 ,0x95A0 //CJK UNIFIED IDEOGRAPH - ,0xE881 ,0x95A8 //CJK UNIFIED IDEOGRAPH - ,0xE882 ,0x95A7 //CJK UNIFIED IDEOGRAPH - ,0xE883 ,0x95AD //CJK UNIFIED IDEOGRAPH - ,0xE884 ,0x95BC //CJK UNIFIED IDEOGRAPH - ,0xE885 ,0x95BB //CJK UNIFIED IDEOGRAPH - ,0xE886 ,0x95B9 //CJK UNIFIED IDEOGRAPH - ,0xE887 ,0x95BE //CJK UNIFIED IDEOGRAPH - ,0xE888 ,0x95CA //CJK UNIFIED IDEOGRAPH - ,0xE889 ,0x6FF6 //CJK UNIFIED IDEOGRAPH - ,0xE88A ,0x95C3 //CJK UNIFIED IDEOGRAPH - ,0xE88B ,0x95CD //CJK UNIFIED IDEOGRAPH - ,0xE88C ,0x95CC //CJK UNIFIED IDEOGRAPH - ,0xE88D ,0x95D5 //CJK UNIFIED IDEOGRAPH - ,0xE88E ,0x95D4 //CJK UNIFIED IDEOGRAPH - ,0xE88F ,0x95D6 //CJK UNIFIED IDEOGRAPH - ,0xE890 ,0x95DC //CJK UNIFIED IDEOGRAPH - ,0xE891 ,0x95E1 //CJK UNIFIED IDEOGRAPH - ,0xE892 ,0x95E5 //CJK UNIFIED IDEOGRAPH - ,0xE893 ,0x95E2 //CJK UNIFIED IDEOGRAPH - ,0xE894 ,0x9621 //CJK UNIFIED IDEOGRAPH - ,0xE895 ,0x9628 //CJK UNIFIED IDEOGRAPH - ,0xE896 ,0x962E //CJK UNIFIED IDEOGRAPH - ,0xE897 ,0x962F //CJK UNIFIED IDEOGRAPH - ,0xE898 ,0x9642 //CJK UNIFIED IDEOGRAPH - ,0xE899 ,0x964C //CJK UNIFIED IDEOGRAPH - ,0xE89A ,0x964F //CJK UNIFIED IDEOGRAPH - ,0xE89B ,0x964B //CJK UNIFIED IDEOGRAPH - ,0xE89C ,0x9677 //CJK UNIFIED IDEOGRAPH - ,0xE89D ,0x965C //CJK UNIFIED IDEOGRAPH - ,0xE89E ,0x965E //CJK UNIFIED IDEOGRAPH - ,0xE89F ,0x965D //CJK UNIFIED IDEOGRAPH - ,0xE8A0 ,0x965F //CJK UNIFIED IDEOGRAPH - ,0xE8A1 ,0x9666 //CJK UNIFIED IDEOGRAPH - ,0xE8A2 ,0x9672 //CJK UNIFIED IDEOGRAPH - ,0xE8A3 ,0x966C //CJK UNIFIED IDEOGRAPH - ,0xE8A4 ,0x968D //CJK UNIFIED IDEOGRAPH - ,0xE8A5 ,0x9698 //CJK UNIFIED IDEOGRAPH - ,0xE8A6 ,0x9695 //CJK UNIFIED IDEOGRAPH - ,0xE8A7 ,0x9697 //CJK UNIFIED IDEOGRAPH - ,0xE8A8 ,0x96AA //CJK UNIFIED IDEOGRAPH - ,0xE8A9 ,0x96A7 //CJK UNIFIED IDEOGRAPH - ,0xE8AA ,0x96B1 //CJK UNIFIED IDEOGRAPH - ,0xE8AB ,0x96B2 //CJK UNIFIED IDEOGRAPH - ,0xE8AC ,0x96B0 //CJK UNIFIED IDEOGRAPH - ,0xE8AD ,0x96B4 //CJK UNIFIED IDEOGRAPH - ,0xE8AE ,0x96B6 //CJK UNIFIED IDEOGRAPH - ,0xE8AF ,0x96B8 //CJK UNIFIED IDEOGRAPH - ,0xE8B0 ,0x96B9 //CJK UNIFIED IDEOGRAPH - ,0xE8B1 ,0x96CE //CJK UNIFIED IDEOGRAPH - ,0xE8B2 ,0x96CB //CJK UNIFIED IDEOGRAPH - ,0xE8B3 ,0x96C9 //CJK UNIFIED IDEOGRAPH - ,0xE8B4 ,0x96CD //CJK UNIFIED IDEOGRAPH - ,0xE8B5 ,0x894D //CJK UNIFIED IDEOGRAPH - ,0xE8B6 ,0x96DC //CJK UNIFIED IDEOGRAPH - ,0xE8B7 ,0x970D //CJK UNIFIED IDEOGRAPH - ,0xE8B8 ,0x96D5 //CJK UNIFIED IDEOGRAPH - ,0xE8B9 ,0x96F9 //CJK UNIFIED IDEOGRAPH - ,0xE8BA ,0x9704 //CJK UNIFIED IDEOGRAPH - ,0xE8BB ,0x9706 //CJK UNIFIED IDEOGRAPH - ,0xE8BC ,0x9708 //CJK UNIFIED IDEOGRAPH - ,0xE8BD ,0x9713 //CJK UNIFIED IDEOGRAPH - ,0xE8BE ,0x970E //CJK UNIFIED IDEOGRAPH - ,0xE8BF ,0x9711 //CJK UNIFIED IDEOGRAPH - ,0xE8C0 ,0x970F //CJK UNIFIED IDEOGRAPH - ,0xE8C1 ,0x9716 //CJK UNIFIED IDEOGRAPH - ,0xE8C2 ,0x9719 //CJK UNIFIED IDEOGRAPH - ,0xE8C3 ,0x9724 //CJK UNIFIED IDEOGRAPH - ,0xE8C4 ,0x972A //CJK UNIFIED IDEOGRAPH - ,0xE8C5 ,0x9730 //CJK UNIFIED IDEOGRAPH - ,0xE8C6 ,0x9739 //CJK UNIFIED IDEOGRAPH - ,0xE8C7 ,0x973D //CJK UNIFIED IDEOGRAPH - ,0xE8C8 ,0x973E //CJK UNIFIED IDEOGRAPH - ,0xE8C9 ,0x9744 //CJK UNIFIED IDEOGRAPH - ,0xE8CA ,0x9746 //CJK UNIFIED IDEOGRAPH - ,0xE8CB ,0x9748 //CJK UNIFIED IDEOGRAPH - ,0xE8CC ,0x9742 //CJK UNIFIED IDEOGRAPH - ,0xE8CD ,0x9749 //CJK UNIFIED IDEOGRAPH - ,0xE8CE ,0x975C //CJK UNIFIED IDEOGRAPH - ,0xE8CF ,0x9760 //CJK UNIFIED IDEOGRAPH - ,0xE8D0 ,0x9764 //CJK UNIFIED IDEOGRAPH - ,0xE8D1 ,0x9766 //CJK UNIFIED IDEOGRAPH - ,0xE8D2 ,0x9768 //CJK UNIFIED IDEOGRAPH - ,0xE8D3 ,0x52D2 //CJK UNIFIED IDEOGRAPH - ,0xE8D4 ,0x976B //CJK UNIFIED IDEOGRAPH - ,0xE8D5 ,0x9771 //CJK UNIFIED IDEOGRAPH - ,0xE8D6 ,0x9779 //CJK UNIFIED IDEOGRAPH - ,0xE8D7 ,0x9785 //CJK UNIFIED IDEOGRAPH - ,0xE8D8 ,0x977C //CJK UNIFIED IDEOGRAPH - ,0xE8D9 ,0x9781 //CJK UNIFIED IDEOGRAPH - ,0xE8DA ,0x977A //CJK UNIFIED IDEOGRAPH - ,0xE8DB ,0x9786 //CJK UNIFIED IDEOGRAPH - ,0xE8DC ,0x978B //CJK UNIFIED IDEOGRAPH - ,0xE8DD ,0x978F //CJK UNIFIED IDEOGRAPH - ,0xE8DE ,0x9790 //CJK UNIFIED IDEOGRAPH - ,0xE8DF ,0x979C //CJK UNIFIED IDEOGRAPH - ,0xE8E0 ,0x97A8 //CJK UNIFIED IDEOGRAPH - ,0xE8E1 ,0x97A6 //CJK UNIFIED IDEOGRAPH - ,0xE8E2 ,0x97A3 //CJK UNIFIED IDEOGRAPH - ,0xE8E3 ,0x97B3 //CJK UNIFIED IDEOGRAPH - ,0xE8E4 ,0x97B4 //CJK UNIFIED IDEOGRAPH - ,0xE8E5 ,0x97C3 //CJK UNIFIED IDEOGRAPH - ,0xE8E6 ,0x97C6 //CJK UNIFIED IDEOGRAPH - ,0xE8E7 ,0x97C8 //CJK UNIFIED IDEOGRAPH - ,0xE8E8 ,0x97CB //CJK UNIFIED IDEOGRAPH - ,0xE8E9 ,0x97DC //CJK UNIFIED IDEOGRAPH - ,0xE8EA ,0x97ED //CJK UNIFIED IDEOGRAPH - ,0xE8EB ,0x9F4F //CJK UNIFIED IDEOGRAPH - ,0xE8EC ,0x97F2 //CJK UNIFIED IDEOGRAPH - ,0xE8ED ,0x7ADF //CJK UNIFIED IDEOGRAPH - ,0xE8EE ,0x97F6 //CJK UNIFIED IDEOGRAPH - ,0xE8EF ,0x97F5 //CJK UNIFIED IDEOGRAPH - ,0xE8F0 ,0x980F //CJK UNIFIED IDEOGRAPH - ,0xE8F1 ,0x980C //CJK UNIFIED IDEOGRAPH - ,0xE8F2 ,0x9838 //CJK UNIFIED IDEOGRAPH - ,0xE8F3 ,0x9824 //CJK UNIFIED IDEOGRAPH - ,0xE8F4 ,0x9821 //CJK UNIFIED IDEOGRAPH - ,0xE8F5 ,0x9837 //CJK UNIFIED IDEOGRAPH - ,0xE8F6 ,0x983D //CJK UNIFIED IDEOGRAPH - ,0xE8F7 ,0x9846 //CJK UNIFIED IDEOGRAPH - ,0xE8F8 ,0x984F //CJK UNIFIED IDEOGRAPH - ,0xE8F9 ,0x984B //CJK UNIFIED IDEOGRAPH - ,0xE8FA ,0x986B //CJK UNIFIED IDEOGRAPH - ,0xE8FB ,0x986F //CJK UNIFIED IDEOGRAPH - ,0xE8FC ,0x9870 //CJK UNIFIED IDEOGRAPH - ,0xE940 ,0x9871 //CJK UNIFIED IDEOGRAPH - ,0xE941 ,0x9874 //CJK UNIFIED IDEOGRAPH - ,0xE942 ,0x9873 //CJK UNIFIED IDEOGRAPH - ,0xE943 ,0x98AA //CJK UNIFIED IDEOGRAPH - ,0xE944 ,0x98AF //CJK UNIFIED IDEOGRAPH - ,0xE945 ,0x98B1 //CJK UNIFIED IDEOGRAPH - ,0xE946 ,0x98B6 //CJK UNIFIED IDEOGRAPH - ,0xE947 ,0x98C4 //CJK UNIFIED IDEOGRAPH - ,0xE948 ,0x98C3 //CJK UNIFIED IDEOGRAPH - ,0xE949 ,0x98C6 //CJK UNIFIED IDEOGRAPH - ,0xE94A ,0x98E9 //CJK UNIFIED IDEOGRAPH - ,0xE94B ,0x98EB //CJK UNIFIED IDEOGRAPH - ,0xE94C ,0x9903 //CJK UNIFIED IDEOGRAPH - ,0xE94D ,0x9909 //CJK UNIFIED IDEOGRAPH - ,0xE94E ,0x9912 //CJK UNIFIED IDEOGRAPH - ,0xE94F ,0x9914 //CJK UNIFIED IDEOGRAPH - ,0xE950 ,0x9918 //CJK UNIFIED IDEOGRAPH - ,0xE951 ,0x9921 //CJK UNIFIED IDEOGRAPH - ,0xE952 ,0x991D //CJK UNIFIED IDEOGRAPH - ,0xE953 ,0x991E //CJK UNIFIED IDEOGRAPH - ,0xE954 ,0x9924 //CJK UNIFIED IDEOGRAPH - ,0xE955 ,0x9920 //CJK UNIFIED IDEOGRAPH - ,0xE956 ,0x992C //CJK UNIFIED IDEOGRAPH - ,0xE957 ,0x992E //CJK UNIFIED IDEOGRAPH - ,0xE958 ,0x993D //CJK UNIFIED IDEOGRAPH - ,0xE959 ,0x993E //CJK UNIFIED IDEOGRAPH - ,0xE95A ,0x9942 //CJK UNIFIED IDEOGRAPH - ,0xE95B ,0x9949 //CJK UNIFIED IDEOGRAPH - ,0xE95C ,0x9945 //CJK UNIFIED IDEOGRAPH - ,0xE95D ,0x9950 //CJK UNIFIED IDEOGRAPH - ,0xE95E ,0x994B //CJK UNIFIED IDEOGRAPH - ,0xE95F ,0x9951 //CJK UNIFIED IDEOGRAPH - ,0xE960 ,0x9952 //CJK UNIFIED IDEOGRAPH - ,0xE961 ,0x994C //CJK UNIFIED IDEOGRAPH - ,0xE962 ,0x9955 //CJK UNIFIED IDEOGRAPH - ,0xE963 ,0x9997 //CJK UNIFIED IDEOGRAPH - ,0xE964 ,0x9998 //CJK UNIFIED IDEOGRAPH - ,0xE965 ,0x99A5 //CJK UNIFIED IDEOGRAPH - ,0xE966 ,0x99AD //CJK UNIFIED IDEOGRAPH - ,0xE967 ,0x99AE //CJK UNIFIED IDEOGRAPH - ,0xE968 ,0x99BC //CJK UNIFIED IDEOGRAPH - ,0xE969 ,0x99DF //CJK UNIFIED IDEOGRAPH - ,0xE96A ,0x99DB //CJK UNIFIED IDEOGRAPH - ,0xE96B ,0x99DD //CJK UNIFIED IDEOGRAPH - ,0xE96C ,0x99D8 //CJK UNIFIED IDEOGRAPH - ,0xE96D ,0x99D1 //CJK UNIFIED IDEOGRAPH - ,0xE96E ,0x99ED //CJK UNIFIED IDEOGRAPH - ,0xE96F ,0x99EE //CJK UNIFIED IDEOGRAPH - ,0xE970 ,0x99F1 //CJK UNIFIED IDEOGRAPH - ,0xE971 ,0x99F2 //CJK UNIFIED IDEOGRAPH - ,0xE972 ,0x99FB //CJK UNIFIED IDEOGRAPH - ,0xE973 ,0x99F8 //CJK UNIFIED IDEOGRAPH - ,0xE974 ,0x9A01 //CJK UNIFIED IDEOGRAPH - ,0xE975 ,0x9A0F //CJK UNIFIED IDEOGRAPH - ,0xE976 ,0x9A05 //CJK UNIFIED IDEOGRAPH - ,0xE977 ,0x99E2 //CJK UNIFIED IDEOGRAPH - ,0xE978 ,0x9A19 //CJK UNIFIED IDEOGRAPH - ,0xE979 ,0x9A2B //CJK UNIFIED IDEOGRAPH - ,0xE97A ,0x9A37 //CJK UNIFIED IDEOGRAPH - ,0xE97B ,0x9A45 //CJK UNIFIED IDEOGRAPH - ,0xE97C ,0x9A42 //CJK UNIFIED IDEOGRAPH - ,0xE97D ,0x9A40 //CJK UNIFIED IDEOGRAPH - ,0xE97E ,0x9A43 //CJK UNIFIED IDEOGRAPH - ,0xE980 ,0x9A3E //CJK UNIFIED IDEOGRAPH - ,0xE981 ,0x9A55 //CJK UNIFIED IDEOGRAPH - ,0xE982 ,0x9A4D //CJK UNIFIED IDEOGRAPH - ,0xE983 ,0x9A5B //CJK UNIFIED IDEOGRAPH - ,0xE984 ,0x9A57 //CJK UNIFIED IDEOGRAPH - ,0xE985 ,0x9A5F //CJK UNIFIED IDEOGRAPH - ,0xE986 ,0x9A62 //CJK UNIFIED IDEOGRAPH - ,0xE987 ,0x9A65 //CJK UNIFIED IDEOGRAPH - ,0xE988 ,0x9A64 //CJK UNIFIED IDEOGRAPH - ,0xE989 ,0x9A69 //CJK UNIFIED IDEOGRAPH - ,0xE98A ,0x9A6B //CJK UNIFIED IDEOGRAPH - ,0xE98B ,0x9A6A //CJK UNIFIED IDEOGRAPH - ,0xE98C ,0x9AAD //CJK UNIFIED IDEOGRAPH - ,0xE98D ,0x9AB0 //CJK UNIFIED IDEOGRAPH - ,0xE98E ,0x9ABC //CJK UNIFIED IDEOGRAPH - ,0xE98F ,0x9AC0 //CJK UNIFIED IDEOGRAPH - ,0xE990 ,0x9ACF //CJK UNIFIED IDEOGRAPH - ,0xE991 ,0x9AD1 //CJK UNIFIED IDEOGRAPH - ,0xE992 ,0x9AD3 //CJK UNIFIED IDEOGRAPH - ,0xE993 ,0x9AD4 //CJK UNIFIED IDEOGRAPH - ,0xE994 ,0x9ADE //CJK UNIFIED IDEOGRAPH - ,0xE995 ,0x9ADF //CJK UNIFIED IDEOGRAPH - ,0xE996 ,0x9AE2 //CJK UNIFIED IDEOGRAPH - ,0xE997 ,0x9AE3 //CJK UNIFIED IDEOGRAPH - ,0xE998 ,0x9AE6 //CJK UNIFIED IDEOGRAPH - ,0xE999 ,0x9AEF //CJK UNIFIED IDEOGRAPH - ,0xE99A ,0x9AEB //CJK UNIFIED IDEOGRAPH - ,0xE99B ,0x9AEE //CJK UNIFIED IDEOGRAPH - ,0xE99C ,0x9AF4 //CJK UNIFIED IDEOGRAPH - ,0xE99D ,0x9AF1 //CJK UNIFIED IDEOGRAPH - ,0xE99E ,0x9AF7 //CJK UNIFIED IDEOGRAPH - ,0xE99F ,0x9AFB //CJK UNIFIED IDEOGRAPH - ,0xE9A0 ,0x9B06 //CJK UNIFIED IDEOGRAPH - ,0xE9A1 ,0x9B18 //CJK UNIFIED IDEOGRAPH - ,0xE9A2 ,0x9B1A //CJK UNIFIED IDEOGRAPH - ,0xE9A3 ,0x9B1F //CJK UNIFIED IDEOGRAPH - ,0xE9A4 ,0x9B22 //CJK UNIFIED IDEOGRAPH - ,0xE9A5 ,0x9B23 //CJK UNIFIED IDEOGRAPH - ,0xE9A6 ,0x9B25 //CJK UNIFIED IDEOGRAPH - ,0xE9A7 ,0x9B27 //CJK UNIFIED IDEOGRAPH - ,0xE9A8 ,0x9B28 //CJK UNIFIED IDEOGRAPH - ,0xE9A9 ,0x9B29 //CJK UNIFIED IDEOGRAPH - ,0xE9AA ,0x9B2A //CJK UNIFIED IDEOGRAPH - ,0xE9AB ,0x9B2E //CJK UNIFIED IDEOGRAPH - ,0xE9AC ,0x9B2F //CJK UNIFIED IDEOGRAPH - ,0xE9AD ,0x9B32 //CJK UNIFIED IDEOGRAPH - ,0xE9AE ,0x9B44 //CJK UNIFIED IDEOGRAPH - ,0xE9AF ,0x9B43 //CJK UNIFIED IDEOGRAPH - ,0xE9B0 ,0x9B4F //CJK UNIFIED IDEOGRAPH - ,0xE9B1 ,0x9B4D //CJK UNIFIED IDEOGRAPH - ,0xE9B2 ,0x9B4E //CJK UNIFIED IDEOGRAPH - ,0xE9B3 ,0x9B51 //CJK UNIFIED IDEOGRAPH - ,0xE9B4 ,0x9B58 //CJK UNIFIED IDEOGRAPH - ,0xE9B5 ,0x9B74 //CJK UNIFIED IDEOGRAPH - ,0xE9B6 ,0x9B93 //CJK UNIFIED IDEOGRAPH - ,0xE9B7 ,0x9B83 //CJK UNIFIED IDEOGRAPH - ,0xE9B8 ,0x9B91 //CJK UNIFIED IDEOGRAPH - ,0xE9B9 ,0x9B96 //CJK UNIFIED IDEOGRAPH - ,0xE9BA ,0x9B97 //CJK UNIFIED IDEOGRAPH - ,0xE9BB ,0x9B9F //CJK UNIFIED IDEOGRAPH - ,0xE9BC ,0x9BA0 //CJK UNIFIED IDEOGRAPH - ,0xE9BD ,0x9BA8 //CJK UNIFIED IDEOGRAPH - ,0xE9BE ,0x9BB4 //CJK UNIFIED IDEOGRAPH - ,0xE9BF ,0x9BC0 //CJK UNIFIED IDEOGRAPH - ,0xE9C0 ,0x9BCA //CJK UNIFIED IDEOGRAPH - ,0xE9C1 ,0x9BB9 //CJK UNIFIED IDEOGRAPH - ,0xE9C2 ,0x9BC6 //CJK UNIFIED IDEOGRAPH - ,0xE9C3 ,0x9BCF //CJK UNIFIED IDEOGRAPH - ,0xE9C4 ,0x9BD1 //CJK UNIFIED IDEOGRAPH - ,0xE9C5 ,0x9BD2 //CJK UNIFIED IDEOGRAPH - ,0xE9C6 ,0x9BE3 //CJK UNIFIED IDEOGRAPH - ,0xE9C7 ,0x9BE2 //CJK UNIFIED IDEOGRAPH - ,0xE9C8 ,0x9BE4 //CJK UNIFIED IDEOGRAPH - ,0xE9C9 ,0x9BD4 //CJK UNIFIED IDEOGRAPH - ,0xE9CA ,0x9BE1 //CJK UNIFIED IDEOGRAPH - ,0xE9CB ,0x9C3A //CJK UNIFIED IDEOGRAPH - ,0xE9CC ,0x9BF2 //CJK UNIFIED IDEOGRAPH - ,0xE9CD ,0x9BF1 //CJK UNIFIED IDEOGRAPH - ,0xE9CE ,0x9BF0 //CJK UNIFIED IDEOGRAPH - ,0xE9CF ,0x9C15 //CJK UNIFIED IDEOGRAPH - ,0xE9D0 ,0x9C14 //CJK UNIFIED IDEOGRAPH - ,0xE9D1 ,0x9C09 //CJK UNIFIED IDEOGRAPH - ,0xE9D2 ,0x9C13 //CJK UNIFIED IDEOGRAPH - ,0xE9D3 ,0x9C0C //CJK UNIFIED IDEOGRAPH - ,0xE9D4 ,0x9C06 //CJK UNIFIED IDEOGRAPH - ,0xE9D5 ,0x9C08 //CJK UNIFIED IDEOGRAPH - ,0xE9D6 ,0x9C12 //CJK UNIFIED IDEOGRAPH - ,0xE9D7 ,0x9C0A //CJK UNIFIED IDEOGRAPH - ,0xE9D8 ,0x9C04 //CJK UNIFIED IDEOGRAPH - ,0xE9D9 ,0x9C2E //CJK UNIFIED IDEOGRAPH - ,0xE9DA ,0x9C1B //CJK UNIFIED IDEOGRAPH - ,0xE9DB ,0x9C25 //CJK UNIFIED IDEOGRAPH - ,0xE9DC ,0x9C24 //CJK UNIFIED IDEOGRAPH - ,0xE9DD ,0x9C21 //CJK UNIFIED IDEOGRAPH - ,0xE9DE ,0x9C30 //CJK UNIFIED IDEOGRAPH - ,0xE9DF ,0x9C47 //CJK UNIFIED IDEOGRAPH - ,0xE9E0 ,0x9C32 //CJK UNIFIED IDEOGRAPH - ,0xE9E1 ,0x9C46 //CJK UNIFIED IDEOGRAPH - ,0xE9E2 ,0x9C3E //CJK UNIFIED IDEOGRAPH - ,0xE9E3 ,0x9C5A //CJK UNIFIED IDEOGRAPH - ,0xE9E4 ,0x9C60 //CJK UNIFIED IDEOGRAPH - ,0xE9E5 ,0x9C67 //CJK UNIFIED IDEOGRAPH - ,0xE9E6 ,0x9C76 //CJK UNIFIED IDEOGRAPH - ,0xE9E7 ,0x9C78 //CJK UNIFIED IDEOGRAPH - ,0xE9E8 ,0x9CE7 //CJK UNIFIED IDEOGRAPH - ,0xE9E9 ,0x9CEC //CJK UNIFIED IDEOGRAPH - ,0xE9EA ,0x9CF0 //CJK UNIFIED IDEOGRAPH - ,0xE9EB ,0x9D09 //CJK UNIFIED IDEOGRAPH - ,0xE9EC ,0x9D08 //CJK UNIFIED IDEOGRAPH - ,0xE9ED ,0x9CEB //CJK UNIFIED IDEOGRAPH - ,0xE9EE ,0x9D03 //CJK UNIFIED IDEOGRAPH - ,0xE9EF ,0x9D06 //CJK UNIFIED IDEOGRAPH - ,0xE9F0 ,0x9D2A //CJK UNIFIED IDEOGRAPH - ,0xE9F1 ,0x9D26 //CJK UNIFIED IDEOGRAPH - ,0xE9F2 ,0x9DAF //CJK UNIFIED IDEOGRAPH - ,0xE9F3 ,0x9D23 //CJK UNIFIED IDEOGRAPH - ,0xE9F4 ,0x9D1F //CJK UNIFIED IDEOGRAPH - ,0xE9F5 ,0x9D44 //CJK UNIFIED IDEOGRAPH - ,0xE9F6 ,0x9D15 //CJK UNIFIED IDEOGRAPH - ,0xE9F7 ,0x9D12 //CJK UNIFIED IDEOGRAPH - ,0xE9F8 ,0x9D41 //CJK UNIFIED IDEOGRAPH - ,0xE9F9 ,0x9D3F //CJK UNIFIED IDEOGRAPH - ,0xE9FA ,0x9D3E //CJK UNIFIED IDEOGRAPH - ,0xE9FB ,0x9D46 //CJK UNIFIED IDEOGRAPH - ,0xE9FC ,0x9D48 //CJK UNIFIED IDEOGRAPH - ,0xEA40 ,0x9D5D //CJK UNIFIED IDEOGRAPH - ,0xEA41 ,0x9D5E //CJK UNIFIED IDEOGRAPH - ,0xEA42 ,0x9D64 //CJK UNIFIED IDEOGRAPH - ,0xEA43 ,0x9D51 //CJK UNIFIED IDEOGRAPH - ,0xEA44 ,0x9D50 //CJK UNIFIED IDEOGRAPH - ,0xEA45 ,0x9D59 //CJK UNIFIED IDEOGRAPH - ,0xEA46 ,0x9D72 //CJK UNIFIED IDEOGRAPH - ,0xEA47 ,0x9D89 //CJK UNIFIED IDEOGRAPH - ,0xEA48 ,0x9D87 //CJK UNIFIED IDEOGRAPH - ,0xEA49 ,0x9DAB //CJK UNIFIED IDEOGRAPH - ,0xEA4A ,0x9D6F //CJK UNIFIED IDEOGRAPH - ,0xEA4B ,0x9D7A //CJK UNIFIED IDEOGRAPH - ,0xEA4C ,0x9D9A //CJK UNIFIED IDEOGRAPH - ,0xEA4D ,0x9DA4 //CJK UNIFIED IDEOGRAPH - ,0xEA4E ,0x9DA9 //CJK UNIFIED IDEOGRAPH - ,0xEA4F ,0x9DB2 //CJK UNIFIED IDEOGRAPH - ,0xEA50 ,0x9DC4 //CJK UNIFIED IDEOGRAPH - ,0xEA51 ,0x9DC1 //CJK UNIFIED IDEOGRAPH - ,0xEA52 ,0x9DBB //CJK UNIFIED IDEOGRAPH - ,0xEA53 ,0x9DB8 //CJK UNIFIED IDEOGRAPH - ,0xEA54 ,0x9DBA //CJK UNIFIED IDEOGRAPH - ,0xEA55 ,0x9DC6 //CJK UNIFIED IDEOGRAPH - ,0xEA56 ,0x9DCF //CJK UNIFIED IDEOGRAPH - ,0xEA57 ,0x9DC2 //CJK UNIFIED IDEOGRAPH - ,0xEA58 ,0x9DD9 //CJK UNIFIED IDEOGRAPH - ,0xEA59 ,0x9DD3 //CJK UNIFIED IDEOGRAPH - ,0xEA5A ,0x9DF8 //CJK UNIFIED IDEOGRAPH - ,0xEA5B ,0x9DE6 //CJK UNIFIED IDEOGRAPH - ,0xEA5C ,0x9DED //CJK UNIFIED IDEOGRAPH - ,0xEA5D ,0x9DEF //CJK UNIFIED IDEOGRAPH - ,0xEA5E ,0x9DFD //CJK UNIFIED IDEOGRAPH - ,0xEA5F ,0x9E1A //CJK UNIFIED IDEOGRAPH - ,0xEA60 ,0x9E1B //CJK UNIFIED IDEOGRAPH - ,0xEA61 ,0x9E1E //CJK UNIFIED IDEOGRAPH - ,0xEA62 ,0x9E75 //CJK UNIFIED IDEOGRAPH - ,0xEA63 ,0x9E79 //CJK UNIFIED IDEOGRAPH - ,0xEA64 ,0x9E7D //CJK UNIFIED IDEOGRAPH - ,0xEA65 ,0x9E81 //CJK UNIFIED IDEOGRAPH - ,0xEA66 ,0x9E88 //CJK UNIFIED IDEOGRAPH - ,0xEA67 ,0x9E8B //CJK UNIFIED IDEOGRAPH - ,0xEA68 ,0x9E8C //CJK UNIFIED IDEOGRAPH - ,0xEA69 ,0x9E92 //CJK UNIFIED IDEOGRAPH - ,0xEA6A ,0x9E95 //CJK UNIFIED IDEOGRAPH - ,0xEA6B ,0x9E91 //CJK UNIFIED IDEOGRAPH - ,0xEA6C ,0x9E9D //CJK UNIFIED IDEOGRAPH - ,0xEA6D ,0x9EA5 //CJK UNIFIED IDEOGRAPH - ,0xEA6E ,0x9EA9 //CJK UNIFIED IDEOGRAPH - ,0xEA6F ,0x9EB8 //CJK UNIFIED IDEOGRAPH - ,0xEA70 ,0x9EAA //CJK UNIFIED IDEOGRAPH - ,0xEA71 ,0x9EAD //CJK UNIFIED IDEOGRAPH - ,0xEA72 ,0x9761 //CJK UNIFIED IDEOGRAPH - ,0xEA73 ,0x9ECC //CJK UNIFIED IDEOGRAPH - ,0xEA74 ,0x9ECE //CJK UNIFIED IDEOGRAPH - ,0xEA75 ,0x9ECF //CJK UNIFIED IDEOGRAPH - ,0xEA76 ,0x9ED0 //CJK UNIFIED IDEOGRAPH - ,0xEA77 ,0x9ED4 //CJK UNIFIED IDEOGRAPH - ,0xEA78 ,0x9EDC //CJK UNIFIED IDEOGRAPH - ,0xEA79 ,0x9EDE //CJK UNIFIED IDEOGRAPH - ,0xEA7A ,0x9EDD //CJK UNIFIED IDEOGRAPH - ,0xEA7B ,0x9EE0 //CJK UNIFIED IDEOGRAPH - ,0xEA7C ,0x9EE5 //CJK UNIFIED IDEOGRAPH - ,0xEA7D ,0x9EE8 //CJK UNIFIED IDEOGRAPH - ,0xEA7E ,0x9EEF //CJK UNIFIED IDEOGRAPH - ,0xEA80 ,0x9EF4 //CJK UNIFIED IDEOGRAPH - ,0xEA81 ,0x9EF6 //CJK UNIFIED IDEOGRAPH - ,0xEA82 ,0x9EF7 //CJK UNIFIED IDEOGRAPH - ,0xEA83 ,0x9EF9 //CJK UNIFIED IDEOGRAPH - ,0xEA84 ,0x9EFB //CJK UNIFIED IDEOGRAPH - ,0xEA85 ,0x9EFC //CJK UNIFIED IDEOGRAPH - ,0xEA86 ,0x9EFD //CJK UNIFIED IDEOGRAPH - ,0xEA87 ,0x9F07 //CJK UNIFIED IDEOGRAPH - ,0xEA88 ,0x9F08 //CJK UNIFIED IDEOGRAPH - ,0xEA89 ,0x76B7 //CJK UNIFIED IDEOGRAPH - ,0xEA8A ,0x9F15 //CJK UNIFIED IDEOGRAPH - ,0xEA8B ,0x9F21 //CJK UNIFIED IDEOGRAPH - ,0xEA8C ,0x9F2C //CJK UNIFIED IDEOGRAPH - ,0xEA8D ,0x9F3E //CJK UNIFIED IDEOGRAPH - ,0xEA8E ,0x9F4A //CJK UNIFIED IDEOGRAPH - ,0xEA8F ,0x9F52 //CJK UNIFIED IDEOGRAPH - ,0xEA90 ,0x9F54 //CJK UNIFIED IDEOGRAPH - ,0xEA91 ,0x9F63 //CJK UNIFIED IDEOGRAPH - ,0xEA92 ,0x9F5F //CJK UNIFIED IDEOGRAPH - ,0xEA93 ,0x9F60 //CJK UNIFIED IDEOGRAPH - ,0xEA94 ,0x9F61 //CJK UNIFIED IDEOGRAPH - ,0xEA95 ,0x9F66 //CJK UNIFIED IDEOGRAPH - ,0xEA96 ,0x9F67 //CJK UNIFIED IDEOGRAPH - ,0xEA97 ,0x9F6C //CJK UNIFIED IDEOGRAPH - ,0xEA98 ,0x9F6A //CJK UNIFIED IDEOGRAPH - ,0xEA99 ,0x9F77 //CJK UNIFIED IDEOGRAPH - ,0xEA9A ,0x9F72 //CJK UNIFIED IDEOGRAPH - ,0xEA9B ,0x9F76 //CJK UNIFIED IDEOGRAPH - ,0xEA9C ,0x9F95 //CJK UNIFIED IDEOGRAPH - ,0xEA9D ,0x9F9C //CJK UNIFIED IDEOGRAPH - ,0xEA9E ,0x9FA0 //CJK UNIFIED IDEOGRAPH - ,0xEA9F ,0x582F //CJK UNIFIED IDEOGRAPH - ,0xEAA0 ,0x69C7 //CJK UNIFIED IDEOGRAPH - ,0xEAA1 ,0x9059 //CJK UNIFIED IDEOGRAPH - ,0xEAA2 ,0x7464 //CJK UNIFIED IDEOGRAPH - ,0xEAA3 ,0x51DC //CJK UNIFIED IDEOGRAPH - ,0xEAA4 ,0x7199 //CJK UNIFIED IDEOGRAPH - ,0xED40 ,0x7E8A //CJK UNIFIED IDEOGRAPH - ,0xED41 ,0x891C //CJK UNIFIED IDEOGRAPH - ,0xED42 ,0x9348 //CJK UNIFIED IDEOGRAPH - ,0xED43 ,0x9288 //CJK UNIFIED IDEOGRAPH - ,0xED44 ,0x84DC //CJK UNIFIED IDEOGRAPH - ,0xED45 ,0x4FC9 //CJK UNIFIED IDEOGRAPH - ,0xED46 ,0x70BB //CJK UNIFIED IDEOGRAPH - ,0xED47 ,0x6631 //CJK UNIFIED IDEOGRAPH - ,0xED48 ,0x68C8 //CJK UNIFIED IDEOGRAPH - ,0xED49 ,0x92F9 //CJK UNIFIED IDEOGRAPH - ,0xED4A ,0x66FB //CJK UNIFIED IDEOGRAPH - ,0xED4B ,0x5F45 //CJK UNIFIED IDEOGRAPH - ,0xED4C ,0x4E28 //CJK UNIFIED IDEOGRAPH - ,0xED4D ,0x4EE1 //CJK UNIFIED IDEOGRAPH - ,0xED4E ,0x4EFC //CJK UNIFIED IDEOGRAPH - ,0xED4F ,0x4F00 //CJK UNIFIED IDEOGRAPH - ,0xED50 ,0x4F03 //CJK UNIFIED IDEOGRAPH - ,0xED51 ,0x4F39 //CJK UNIFIED IDEOGRAPH - ,0xED52 ,0x4F56 //CJK UNIFIED IDEOGRAPH - ,0xED53 ,0x4F92 //CJK UNIFIED IDEOGRAPH - ,0xED54 ,0x4F8A //CJK UNIFIED IDEOGRAPH - ,0xED55 ,0x4F9A //CJK UNIFIED IDEOGRAPH - ,0xED56 ,0x4F94 //CJK UNIFIED IDEOGRAPH - ,0xED57 ,0x4FCD //CJK UNIFIED IDEOGRAPH - ,0xED58 ,0x5040 //CJK UNIFIED IDEOGRAPH - ,0xED59 ,0x5022 //CJK UNIFIED IDEOGRAPH - ,0xED5A ,0x4FFF //CJK UNIFIED IDEOGRAPH - ,0xED5B ,0x501E //CJK UNIFIED IDEOGRAPH - ,0xED5C ,0x5046 //CJK UNIFIED IDEOGRAPH - ,0xED5D ,0x5070 //CJK UNIFIED IDEOGRAPH - ,0xED5E ,0x5042 //CJK UNIFIED IDEOGRAPH - ,0xED5F ,0x5094 //CJK UNIFIED IDEOGRAPH - ,0xED60 ,0x50F4 //CJK UNIFIED IDEOGRAPH - ,0xED61 ,0x50D8 //CJK UNIFIED IDEOGRAPH - ,0xED62 ,0x514A //CJK UNIFIED IDEOGRAPH - ,0xED63 ,0x5164 //CJK UNIFIED IDEOGRAPH - ,0xED64 ,0x519D //CJK UNIFIED IDEOGRAPH - ,0xED65 ,0x51BE //CJK UNIFIED IDEOGRAPH - ,0xED66 ,0x51EC //CJK UNIFIED IDEOGRAPH - ,0xED67 ,0x5215 //CJK UNIFIED IDEOGRAPH - ,0xED68 ,0x529C //CJK UNIFIED IDEOGRAPH - ,0xED69 ,0x52A6 //CJK UNIFIED IDEOGRAPH - ,0xED6A ,0x52C0 //CJK UNIFIED IDEOGRAPH - ,0xED6B ,0x52DB //CJK UNIFIED IDEOGRAPH - ,0xED6C ,0x5300 //CJK UNIFIED IDEOGRAPH - ,0xED6D ,0x5307 //CJK UNIFIED IDEOGRAPH - ,0xED6E ,0x5324 //CJK UNIFIED IDEOGRAPH - ,0xED6F ,0x5372 //CJK UNIFIED IDEOGRAPH - ,0xED70 ,0x5393 //CJK UNIFIED IDEOGRAPH - ,0xED71 ,0x53B2 //CJK UNIFIED IDEOGRAPH - ,0xED72 ,0x53DD //CJK UNIFIED IDEOGRAPH - ,0xED73 ,0xFA0E //CJK COMPATIBILITY IDEOGRAPH - ,0xED74 ,0x549C //CJK UNIFIED IDEOGRAPH - ,0xED75 ,0x548A //CJK UNIFIED IDEOGRAPH - ,0xED76 ,0x54A9 //CJK UNIFIED IDEOGRAPH - ,0xED77 ,0x54FF //CJK UNIFIED IDEOGRAPH - ,0xED78 ,0x5586 //CJK UNIFIED IDEOGRAPH - ,0xED79 ,0x5759 //CJK UNIFIED IDEOGRAPH - ,0xED7A ,0x5765 //CJK UNIFIED IDEOGRAPH - ,0xED7B ,0x57AC //CJK UNIFIED IDEOGRAPH - ,0xED7C ,0x57C8 //CJK UNIFIED IDEOGRAPH - ,0xED7D ,0x57C7 //CJK UNIFIED IDEOGRAPH - ,0xED7E ,0xFA0F //CJK COMPATIBILITY IDEOGRAPH - ,0xED80 ,0xFA10 //CJK COMPATIBILITY IDEOGRAPH - ,0xED81 ,0x589E //CJK UNIFIED IDEOGRAPH - ,0xED82 ,0x58B2 //CJK UNIFIED IDEOGRAPH - ,0xED83 ,0x590B //CJK UNIFIED IDEOGRAPH - ,0xED84 ,0x5953 //CJK UNIFIED IDEOGRAPH - ,0xED85 ,0x595B //CJK UNIFIED IDEOGRAPH - ,0xED86 ,0x595D //CJK UNIFIED IDEOGRAPH - ,0xED87 ,0x5963 //CJK UNIFIED IDEOGRAPH - ,0xED88 ,0x59A4 //CJK UNIFIED IDEOGRAPH - ,0xED89 ,0x59BA //CJK UNIFIED IDEOGRAPH - ,0xED8A ,0x5B56 //CJK UNIFIED IDEOGRAPH - ,0xED8B ,0x5BC0 //CJK UNIFIED IDEOGRAPH - ,0xED8C ,0x752F //CJK UNIFIED IDEOGRAPH - ,0xED8D ,0x5BD8 //CJK UNIFIED IDEOGRAPH - ,0xED8E ,0x5BEC //CJK UNIFIED IDEOGRAPH - ,0xED8F ,0x5C1E //CJK UNIFIED IDEOGRAPH - ,0xED90 ,0x5CA6 //CJK UNIFIED IDEOGRAPH - ,0xED91 ,0x5CBA //CJK UNIFIED IDEOGRAPH - ,0xED92 ,0x5CF5 //CJK UNIFIED IDEOGRAPH - ,0xED93 ,0x5D27 //CJK UNIFIED IDEOGRAPH - ,0xED94 ,0x5D53 //CJK UNIFIED IDEOGRAPH - ,0xED95 ,0xFA11 //CJK COMPATIBILITY IDEOGRAPH - ,0xED96 ,0x5D42 //CJK UNIFIED IDEOGRAPH - ,0xED97 ,0x5D6D //CJK UNIFIED IDEOGRAPH - ,0xED98 ,0x5DB8 //CJK UNIFIED IDEOGRAPH - ,0xED99 ,0x5DB9 //CJK UNIFIED IDEOGRAPH - ,0xED9A ,0x5DD0 //CJK UNIFIED IDEOGRAPH - ,0xED9B ,0x5F21 //CJK UNIFIED IDEOGRAPH - ,0xED9C ,0x5F34 //CJK UNIFIED IDEOGRAPH - ,0xED9D ,0x5F67 //CJK UNIFIED IDEOGRAPH - ,0xED9E ,0x5FB7 //CJK UNIFIED IDEOGRAPH - ,0xED9F ,0x5FDE //CJK UNIFIED IDEOGRAPH - ,0xEDA0 ,0x605D //CJK UNIFIED IDEOGRAPH - ,0xEDA1 ,0x6085 //CJK UNIFIED IDEOGRAPH - ,0xEDA2 ,0x608A //CJK UNIFIED IDEOGRAPH - ,0xEDA3 ,0x60DE //CJK UNIFIED IDEOGRAPH - ,0xEDA4 ,0x60D5 //CJK UNIFIED IDEOGRAPH - ,0xEDA5 ,0x6120 //CJK UNIFIED IDEOGRAPH - ,0xEDA6 ,0x60F2 //CJK UNIFIED IDEOGRAPH - ,0xEDA7 ,0x6111 //CJK UNIFIED IDEOGRAPH - ,0xEDA8 ,0x6137 //CJK UNIFIED IDEOGRAPH - ,0xEDA9 ,0x6130 //CJK UNIFIED IDEOGRAPH - ,0xEDAA ,0x6198 //CJK UNIFIED IDEOGRAPH - ,0xEDAB ,0x6213 //CJK UNIFIED IDEOGRAPH - ,0xEDAC ,0x62A6 //CJK UNIFIED IDEOGRAPH - ,0xEDAD ,0x63F5 //CJK UNIFIED IDEOGRAPH - ,0xEDAE ,0x6460 //CJK UNIFIED IDEOGRAPH - ,0xEDAF ,0x649D //CJK UNIFIED IDEOGRAPH - ,0xEDB0 ,0x64CE //CJK UNIFIED IDEOGRAPH - ,0xEDB1 ,0x654E //CJK UNIFIED IDEOGRAPH - ,0xEDB2 ,0x6600 //CJK UNIFIED IDEOGRAPH - ,0xEDB3 ,0x6615 //CJK UNIFIED IDEOGRAPH - ,0xEDB4 ,0x663B //CJK UNIFIED IDEOGRAPH - ,0xEDB5 ,0x6609 //CJK UNIFIED IDEOGRAPH - ,0xEDB6 ,0x662E //CJK UNIFIED IDEOGRAPH - ,0xEDB7 ,0x661E //CJK UNIFIED IDEOGRAPH - ,0xEDB8 ,0x6624 //CJK UNIFIED IDEOGRAPH - ,0xEDB9 ,0x6665 //CJK UNIFIED IDEOGRAPH - ,0xEDBA ,0x6657 //CJK UNIFIED IDEOGRAPH - ,0xEDBB ,0x6659 //CJK UNIFIED IDEOGRAPH - ,0xEDBC ,0xFA12 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDBD ,0x6673 //CJK UNIFIED IDEOGRAPH - ,0xEDBE ,0x6699 //CJK UNIFIED IDEOGRAPH - ,0xEDBF ,0x66A0 //CJK UNIFIED IDEOGRAPH - ,0xEDC0 ,0x66B2 //CJK UNIFIED IDEOGRAPH - ,0xEDC1 ,0x66BF //CJK UNIFIED IDEOGRAPH - ,0xEDC2 ,0x66FA //CJK UNIFIED IDEOGRAPH - ,0xEDC3 ,0x670E //CJK UNIFIED IDEOGRAPH - ,0xEDC4 ,0xF929 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDC5 ,0x6766 //CJK UNIFIED IDEOGRAPH - ,0xEDC6 ,0x67BB //CJK UNIFIED IDEOGRAPH - ,0xEDC7 ,0x6852 //CJK UNIFIED IDEOGRAPH - ,0xEDC8 ,0x67C0 //CJK UNIFIED IDEOGRAPH - ,0xEDC9 ,0x6801 //CJK UNIFIED IDEOGRAPH - ,0xEDCA ,0x6844 //CJK UNIFIED IDEOGRAPH - ,0xEDCB ,0x68CF //CJK UNIFIED IDEOGRAPH - ,0xEDCC ,0xFA13 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDCD ,0x6968 //CJK UNIFIED IDEOGRAPH - ,0xEDCE ,0xFA14 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDCF ,0x6998 //CJK UNIFIED IDEOGRAPH - ,0xEDD0 ,0x69E2 //CJK UNIFIED IDEOGRAPH - ,0xEDD1 ,0x6A30 //CJK UNIFIED IDEOGRAPH - ,0xEDD2 ,0x6A6B //CJK UNIFIED IDEOGRAPH - ,0xEDD3 ,0x6A46 //CJK UNIFIED IDEOGRAPH - ,0xEDD4 ,0x6A73 //CJK UNIFIED IDEOGRAPH - ,0xEDD5 ,0x6A7E //CJK UNIFIED IDEOGRAPH - ,0xEDD6 ,0x6AE2 //CJK UNIFIED IDEOGRAPH - ,0xEDD7 ,0x6AE4 //CJK UNIFIED IDEOGRAPH - ,0xEDD8 ,0x6BD6 //CJK UNIFIED IDEOGRAPH - ,0xEDD9 ,0x6C3F //CJK UNIFIED IDEOGRAPH - ,0xEDDA ,0x6C5C //CJK UNIFIED IDEOGRAPH - ,0xEDDB ,0x6C86 //CJK UNIFIED IDEOGRAPH - ,0xEDDC ,0x6C6F //CJK UNIFIED IDEOGRAPH - ,0xEDDD ,0x6CDA //CJK UNIFIED IDEOGRAPH - ,0xEDDE ,0x6D04 //CJK UNIFIED IDEOGRAPH - ,0xEDDF ,0x6D87 //CJK UNIFIED IDEOGRAPH - ,0xEDE0 ,0x6D6F //CJK UNIFIED IDEOGRAPH - ,0xEDE1 ,0x6D96 //CJK UNIFIED IDEOGRAPH - ,0xEDE2 ,0x6DAC //CJK UNIFIED IDEOGRAPH - ,0xEDE3 ,0x6DCF //CJK UNIFIED IDEOGRAPH - ,0xEDE4 ,0x6DF8 //CJK UNIFIED IDEOGRAPH - ,0xEDE5 ,0x6DF2 //CJK UNIFIED IDEOGRAPH - ,0xEDE6 ,0x6DFC //CJK UNIFIED IDEOGRAPH - ,0xEDE7 ,0x6E39 //CJK UNIFIED IDEOGRAPH - ,0xEDE8 ,0x6E5C //CJK UNIFIED IDEOGRAPH - ,0xEDE9 ,0x6E27 //CJK UNIFIED IDEOGRAPH - ,0xEDEA ,0x6E3C //CJK UNIFIED IDEOGRAPH - ,0xEDEB ,0x6EBF //CJK UNIFIED IDEOGRAPH - ,0xEDEC ,0x6F88 //CJK UNIFIED IDEOGRAPH - ,0xEDED ,0x6FB5 //CJK UNIFIED IDEOGRAPH - ,0xEDEE ,0x6FF5 //CJK UNIFIED IDEOGRAPH - ,0xEDEF ,0x7005 //CJK UNIFIED IDEOGRAPH - ,0xEDF0 ,0x7007 //CJK UNIFIED IDEOGRAPH - ,0xEDF1 ,0x7028 //CJK UNIFIED IDEOGRAPH - ,0xEDF2 ,0x7085 //CJK UNIFIED IDEOGRAPH - ,0xEDF3 ,0x70AB //CJK UNIFIED IDEOGRAPH - ,0xEDF4 ,0x710F //CJK UNIFIED IDEOGRAPH - ,0xEDF5 ,0x7104 //CJK UNIFIED IDEOGRAPH - ,0xEDF6 ,0x715C //CJK UNIFIED IDEOGRAPH - ,0xEDF7 ,0x7146 //CJK UNIFIED IDEOGRAPH - ,0xEDF8 ,0x7147 //CJK UNIFIED IDEOGRAPH - ,0xEDF9 ,0xFA15 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDFA ,0x71C1 //CJK UNIFIED IDEOGRAPH - ,0xEDFB ,0x71FE //CJK UNIFIED IDEOGRAPH - ,0xEDFC ,0x72B1 //CJK UNIFIED IDEOGRAPH - ,0xEE40 ,0x72BE //CJK UNIFIED IDEOGRAPH - ,0xEE41 ,0x7324 //CJK UNIFIED IDEOGRAPH - ,0xEE42 ,0xFA16 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE43 ,0x7377 //CJK UNIFIED IDEOGRAPH - ,0xEE44 ,0x73BD //CJK UNIFIED IDEOGRAPH - ,0xEE45 ,0x73C9 //CJK UNIFIED IDEOGRAPH - ,0xEE46 ,0x73D6 //CJK UNIFIED IDEOGRAPH - ,0xEE47 ,0x73E3 //CJK UNIFIED IDEOGRAPH - ,0xEE48 ,0x73D2 //CJK UNIFIED IDEOGRAPH - ,0xEE49 ,0x7407 //CJK UNIFIED IDEOGRAPH - ,0xEE4A ,0x73F5 //CJK UNIFIED IDEOGRAPH - ,0xEE4B ,0x7426 //CJK UNIFIED IDEOGRAPH - ,0xEE4C ,0x742A //CJK UNIFIED IDEOGRAPH - ,0xEE4D ,0x7429 //CJK UNIFIED IDEOGRAPH - ,0xEE4E ,0x742E //CJK UNIFIED IDEOGRAPH - ,0xEE4F ,0x7462 //CJK UNIFIED IDEOGRAPH - ,0xEE50 ,0x7489 //CJK UNIFIED IDEOGRAPH - ,0xEE51 ,0x749F //CJK UNIFIED IDEOGRAPH - ,0xEE52 ,0x7501 //CJK UNIFIED IDEOGRAPH - ,0xEE53 ,0x756F //CJK UNIFIED IDEOGRAPH - ,0xEE54 ,0x7682 //CJK UNIFIED IDEOGRAPH - ,0xEE55 ,0x769C //CJK UNIFIED IDEOGRAPH - ,0xEE56 ,0x769E //CJK UNIFIED IDEOGRAPH - ,0xEE57 ,0x769B //CJK UNIFIED IDEOGRAPH - ,0xEE58 ,0x76A6 //CJK UNIFIED IDEOGRAPH - ,0xEE59 ,0xFA17 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE5A ,0x7746 //CJK UNIFIED IDEOGRAPH - ,0xEE5B ,0x52AF //CJK UNIFIED IDEOGRAPH - ,0xEE5C ,0x7821 //CJK UNIFIED IDEOGRAPH - ,0xEE5D ,0x784E //CJK UNIFIED IDEOGRAPH - ,0xEE5E ,0x7864 //CJK UNIFIED IDEOGRAPH - ,0xEE5F ,0x787A //CJK UNIFIED IDEOGRAPH - ,0xEE60 ,0x7930 //CJK UNIFIED IDEOGRAPH - ,0xEE61 ,0xFA18 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE62 ,0xFA19 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE63 ,0xFA1A //CJK COMPATIBILITY IDEOGRAPH - ,0xEE64 ,0x7994 //CJK UNIFIED IDEOGRAPH - ,0xEE65 ,0xFA1B //CJK COMPATIBILITY IDEOGRAPH - ,0xEE66 ,0x799B //CJK UNIFIED IDEOGRAPH - ,0xEE67 ,0x7AD1 //CJK UNIFIED IDEOGRAPH - ,0xEE68 ,0x7AE7 //CJK UNIFIED IDEOGRAPH - ,0xEE69 ,0xFA1C //CJK COMPATIBILITY IDEOGRAPH - ,0xEE6A ,0x7AEB //CJK UNIFIED IDEOGRAPH - ,0xEE6B ,0x7B9E //CJK UNIFIED IDEOGRAPH - ,0xEE6C ,0xFA1D //CJK COMPATIBILITY IDEOGRAPH - ,0xEE6D ,0x7D48 //CJK UNIFIED IDEOGRAPH - ,0xEE6E ,0x7D5C //CJK UNIFIED IDEOGRAPH - ,0xEE6F ,0x7DB7 //CJK UNIFIED IDEOGRAPH - ,0xEE70 ,0x7DA0 //CJK UNIFIED IDEOGRAPH - ,0xEE71 ,0x7DD6 //CJK UNIFIED IDEOGRAPH - ,0xEE72 ,0x7E52 //CJK UNIFIED IDEOGRAPH - ,0xEE73 ,0x7F47 //CJK UNIFIED IDEOGRAPH - ,0xEE74 ,0x7FA1 //CJK UNIFIED IDEOGRAPH - ,0xEE75 ,0xFA1E //CJK COMPATIBILITY IDEOGRAPH - ,0xEE76 ,0x8301 //CJK UNIFIED IDEOGRAPH - ,0xEE77 ,0x8362 //CJK UNIFIED IDEOGRAPH - ,0xEE78 ,0x837F //CJK UNIFIED IDEOGRAPH - ,0xEE79 ,0x83C7 //CJK UNIFIED IDEOGRAPH - ,0xEE7A ,0x83F6 //CJK UNIFIED IDEOGRAPH - ,0xEE7B ,0x8448 //CJK UNIFIED IDEOGRAPH - ,0xEE7C ,0x84B4 //CJK UNIFIED IDEOGRAPH - ,0xEE7D ,0x8553 //CJK UNIFIED IDEOGRAPH - ,0xEE7E ,0x8559 //CJK UNIFIED IDEOGRAPH - ,0xEE80 ,0x856B //CJK UNIFIED IDEOGRAPH - ,0xEE81 ,0xFA1F //CJK COMPATIBILITY IDEOGRAPH - ,0xEE82 ,0x85B0 //CJK UNIFIED IDEOGRAPH - ,0xEE83 ,0xFA20 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE84 ,0xFA21 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE85 ,0x8807 //CJK UNIFIED IDEOGRAPH - ,0xEE86 ,0x88F5 //CJK UNIFIED IDEOGRAPH - ,0xEE87 ,0x8A12 //CJK UNIFIED IDEOGRAPH - ,0xEE88 ,0x8A37 //CJK UNIFIED IDEOGRAPH - ,0xEE89 ,0x8A79 //CJK UNIFIED IDEOGRAPH - ,0xEE8A ,0x8AA7 //CJK UNIFIED IDEOGRAPH - ,0xEE8B ,0x8ABE //CJK UNIFIED IDEOGRAPH - ,0xEE8C ,0x8ADF //CJK UNIFIED IDEOGRAPH - ,0xEE8D ,0xFA22 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE8E ,0x8AF6 //CJK UNIFIED IDEOGRAPH - ,0xEE8F ,0x8B53 //CJK UNIFIED IDEOGRAPH - ,0xEE90 ,0x8B7F //CJK UNIFIED IDEOGRAPH - ,0xEE91 ,0x8CF0 //CJK UNIFIED IDEOGRAPH - ,0xEE92 ,0x8CF4 //CJK UNIFIED IDEOGRAPH - ,0xEE93 ,0x8D12 //CJK UNIFIED IDEOGRAPH - ,0xEE94 ,0x8D76 //CJK UNIFIED IDEOGRAPH - ,0xEE95 ,0xFA23 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE96 ,0x8ECF //CJK UNIFIED IDEOGRAPH - ,0xEE97 ,0xFA24 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE98 ,0xFA25 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE99 ,0x9067 //CJK UNIFIED IDEOGRAPH - ,0xEE9A ,0x90DE //CJK UNIFIED IDEOGRAPH - ,0xEE9B ,0xFA26 //CJK COMPATIBILITY IDEOGRAPH - ,0xEE9C ,0x9115 //CJK UNIFIED IDEOGRAPH - ,0xEE9D ,0x9127 //CJK UNIFIED IDEOGRAPH - ,0xEE9E ,0x91DA //CJK UNIFIED IDEOGRAPH - ,0xEE9F ,0x91D7 //CJK UNIFIED IDEOGRAPH - ,0xEEA0 ,0x91DE //CJK UNIFIED IDEOGRAPH - ,0xEEA1 ,0x91ED //CJK UNIFIED IDEOGRAPH - ,0xEEA2 ,0x91EE //CJK UNIFIED IDEOGRAPH - ,0xEEA3 ,0x91E4 //CJK UNIFIED IDEOGRAPH - ,0xEEA4 ,0x91E5 //CJK UNIFIED IDEOGRAPH - ,0xEEA5 ,0x9206 //CJK UNIFIED IDEOGRAPH - ,0xEEA6 ,0x9210 //CJK UNIFIED IDEOGRAPH - ,0xEEA7 ,0x920A //CJK UNIFIED IDEOGRAPH - ,0xEEA8 ,0x923A //CJK UNIFIED IDEOGRAPH - ,0xEEA9 ,0x9240 //CJK UNIFIED IDEOGRAPH - ,0xEEAA ,0x923C //CJK UNIFIED IDEOGRAPH - ,0xEEAB ,0x924E //CJK UNIFIED IDEOGRAPH - ,0xEEAC ,0x9259 //CJK UNIFIED IDEOGRAPH - ,0xEEAD ,0x9251 //CJK UNIFIED IDEOGRAPH - ,0xEEAE ,0x9239 //CJK UNIFIED IDEOGRAPH - ,0xEEAF ,0x9267 //CJK UNIFIED IDEOGRAPH - ,0xEEB0 ,0x92A7 //CJK UNIFIED IDEOGRAPH - ,0xEEB1 ,0x9277 //CJK UNIFIED IDEOGRAPH - ,0xEEB2 ,0x9278 //CJK UNIFIED IDEOGRAPH - ,0xEEB3 ,0x92E7 //CJK UNIFIED IDEOGRAPH - ,0xEEB4 ,0x92D7 //CJK UNIFIED IDEOGRAPH - ,0xEEB5 ,0x92D9 //CJK UNIFIED IDEOGRAPH - ,0xEEB6 ,0x92D0 //CJK UNIFIED IDEOGRAPH - ,0xEEB7 ,0xFA27 //CJK COMPATIBILITY IDEOGRAPH - ,0xEEB8 ,0x92D5 //CJK UNIFIED IDEOGRAPH - ,0xEEB9 ,0x92E0 //CJK UNIFIED IDEOGRAPH - ,0xEEBA ,0x92D3 //CJK UNIFIED IDEOGRAPH - ,0xEEBB ,0x9325 //CJK UNIFIED IDEOGRAPH - ,0xEEBC ,0x9321 //CJK UNIFIED IDEOGRAPH - ,0xEEBD ,0x92FB //CJK UNIFIED IDEOGRAPH - ,0xEEBE ,0xFA28 //CJK COMPATIBILITY IDEOGRAPH - ,0xEEBF ,0x931E //CJK UNIFIED IDEOGRAPH - ,0xEEC0 ,0x92FF //CJK UNIFIED IDEOGRAPH - ,0xEEC1 ,0x931D //CJK UNIFIED IDEOGRAPH - ,0xEEC2 ,0x9302 //CJK UNIFIED IDEOGRAPH - ,0xEEC3 ,0x9370 //CJK UNIFIED IDEOGRAPH - ,0xEEC4 ,0x9357 //CJK UNIFIED IDEOGRAPH - ,0xEEC5 ,0x93A4 //CJK UNIFIED IDEOGRAPH - ,0xEEC6 ,0x93C6 //CJK UNIFIED IDEOGRAPH - ,0xEEC7 ,0x93DE //CJK UNIFIED IDEOGRAPH - ,0xEEC8 ,0x93F8 //CJK UNIFIED IDEOGRAPH - ,0xEEC9 ,0x9431 //CJK UNIFIED IDEOGRAPH - ,0xEECA ,0x9445 //CJK UNIFIED IDEOGRAPH - ,0xEECB ,0x9448 //CJK UNIFIED IDEOGRAPH - ,0xEECC ,0x9592 //CJK UNIFIED IDEOGRAPH - ,0xEECD ,0xF9DC //CJK COMPATIBILITY IDEOGRAPH - ,0xEECE ,0xFA29 //CJK COMPATIBILITY IDEOGRAPH - ,0xEECF ,0x969D //CJK UNIFIED IDEOGRAPH - ,0xEED0 ,0x96AF //CJK UNIFIED IDEOGRAPH - ,0xEED1 ,0x9733 //CJK UNIFIED IDEOGRAPH - ,0xEED2 ,0x973B //CJK UNIFIED IDEOGRAPH - ,0xEED3 ,0x9743 //CJK UNIFIED IDEOGRAPH - ,0xEED4 ,0x974D //CJK UNIFIED IDEOGRAPH - ,0xEED5 ,0x974F //CJK UNIFIED IDEOGRAPH - ,0xEED6 ,0x9751 //CJK UNIFIED IDEOGRAPH - ,0xEED7 ,0x9755 //CJK UNIFIED IDEOGRAPH - ,0xEED8 ,0x9857 //CJK UNIFIED IDEOGRAPH - ,0xEED9 ,0x9865 //CJK UNIFIED IDEOGRAPH - ,0xEEDA ,0xFA2A //CJK COMPATIBILITY IDEOGRAPH - ,0xEEDB ,0xFA2B //CJK COMPATIBILITY IDEOGRAPH - ,0xEEDC ,0x9927 //CJK UNIFIED IDEOGRAPH - ,0xEEDD ,0xFA2C //CJK COMPATIBILITY IDEOGRAPH - ,0xEEDE ,0x999E //CJK UNIFIED IDEOGRAPH - ,0xEEDF ,0x9A4E //CJK UNIFIED IDEOGRAPH - ,0xEEE0 ,0x9AD9 //CJK UNIFIED IDEOGRAPH - ,0xEEE1 ,0x9ADC //CJK UNIFIED IDEOGRAPH - ,0xEEE2 ,0x9B75 //CJK UNIFIED IDEOGRAPH - ,0xEEE3 ,0x9B72 //CJK UNIFIED IDEOGRAPH - ,0xEEE4 ,0x9B8F //CJK UNIFIED IDEOGRAPH - ,0xEEE5 ,0x9BB1 //CJK UNIFIED IDEOGRAPH - ,0xEEE6 ,0x9BBB //CJK UNIFIED IDEOGRAPH - ,0xEEE7 ,0x9C00 //CJK UNIFIED IDEOGRAPH - ,0xEEE8 ,0x9D70 //CJK UNIFIED IDEOGRAPH - ,0xEEE9 ,0x9D6B //CJK UNIFIED IDEOGRAPH - ,0xEEEA ,0xFA2D //CJK COMPATIBILITY IDEOGRAPH - ,0xEEEB ,0x9E19 //CJK UNIFIED IDEOGRAPH - ,0xEEEC ,0x9ED1 //CJK UNIFIED IDEOGRAPH - ,0xEEEF ,0x2170 //SMALL ROMAN NUMERAL ONE - ,0xEEF0 ,0x2171 //SMALL ROMAN NUMERAL TWO - ,0xEEF1 ,0x2172 //SMALL ROMAN NUMERAL THREE - ,0xEEF2 ,0x2173 //SMALL ROMAN NUMERAL FOUR - ,0xEEF3 ,0x2174 //SMALL ROMAN NUMERAL FIVE - ,0xEEF4 ,0x2175 //SMALL ROMAN NUMERAL SIX - ,0xEEF5 ,0x2176 //SMALL ROMAN NUMERAL SEVEN - ,0xEEF6 ,0x2177 //SMALL ROMAN NUMERAL EIGHT - ,0xEEF7 ,0x2178 //SMALL ROMAN NUMERAL NINE - ,0xEEF8 ,0x2179 //SMALL ROMAN NUMERAL TEN - ,0xEEF9 ,0xFFE2 //FULLWIDTH NOT SIGN - ,0xEEFA ,0xFFE4 //FULLWIDTH BROKEN BAR - ,0xEEFB ,0xFF07 //FULLWIDTH APOSTROPHE - ,0xEEFC ,0xFF02 //FULLWIDTH QUOTATION MARK - ,0xFA40 ,0x2170 //SMALL ROMAN NUMERAL ONE - ,0xFA41 ,0x2171 //SMALL ROMAN NUMERAL TWO - ,0xFA42 ,0x2172 //SMALL ROMAN NUMERAL THREE - ,0xFA43 ,0x2173 //SMALL ROMAN NUMERAL FOUR - ,0xFA44 ,0x2174 //SMALL ROMAN NUMERAL FIVE - ,0xFA45 ,0x2175 //SMALL ROMAN NUMERAL SIX - ,0xFA46 ,0x2176 //SMALL ROMAN NUMERAL SEVEN - ,0xFA47 ,0x2177 //SMALL ROMAN NUMERAL EIGHT - ,0xFA48 ,0x2178 //SMALL ROMAN NUMERAL NINE - ,0xFA49 ,0x2179 //SMALL ROMAN NUMERAL TEN - ,0xFA4A ,0x2160 //ROMAN NUMERAL ONE - ,0xFA4B ,0x2161 //ROMAN NUMERAL TWO - ,0xFA4C ,0x2162 //ROMAN NUMERAL THREE - ,0xFA4D ,0x2163 //ROMAN NUMERAL FOUR - ,0xFA4E ,0x2164 //ROMAN NUMERAL FIVE - ,0xFA4F ,0x2165 //ROMAN NUMERAL SIX - ,0xFA50 ,0x2166 //ROMAN NUMERAL SEVEN - ,0xFA51 ,0x2167 //ROMAN NUMERAL EIGHT - ,0xFA52 ,0x2168 //ROMAN NUMERAL NINE - ,0xFA53 ,0x2169 //ROMAN NUMERAL TEN - ,0xFA54 ,0xFFE2 //FULLWIDTH NOT SIGN - ,0xFA55 ,0xFFE4 //FULLWIDTH BROKEN BAR - ,0xFA56 ,0xFF07 //FULLWIDTH APOSTROPHE - ,0xFA57 ,0xFF02 //FULLWIDTH QUOTATION MARK - ,0xFA58 ,0x3231 //PARENTHESIZED IDEOGRAPH STOCK - ,0xFA59 ,0x2116 //NUMERO SIGN - ,0xFA5A ,0x2121 //TELEPHONE SIGN - ,0xFA5B ,0x2235 //BECAUSE - ,0xFA5C ,0x7E8A //CJK UNIFIED IDEOGRAPH - ,0xFA5D ,0x891C //CJK UNIFIED IDEOGRAPH - ,0xFA5E ,0x9348 //CJK UNIFIED IDEOGRAPH - ,0xFA5F ,0x9288 //CJK UNIFIED IDEOGRAPH - ,0xFA60 ,0x84DC //CJK UNIFIED IDEOGRAPH - ,0xFA61 ,0x4FC9 //CJK UNIFIED IDEOGRAPH - ,0xFA62 ,0x70BB //CJK UNIFIED IDEOGRAPH - ,0xFA63 ,0x6631 //CJK UNIFIED IDEOGRAPH - ,0xFA64 ,0x68C8 //CJK UNIFIED IDEOGRAPH - ,0xFA65 ,0x92F9 //CJK UNIFIED IDEOGRAPH - ,0xFA66 ,0x66FB //CJK UNIFIED IDEOGRAPH - ,0xFA67 ,0x5F45 //CJK UNIFIED IDEOGRAPH - ,0xFA68 ,0x4E28 //CJK UNIFIED IDEOGRAPH - ,0xFA69 ,0x4EE1 //CJK UNIFIED IDEOGRAPH - ,0xFA6A ,0x4EFC //CJK UNIFIED IDEOGRAPH - ,0xFA6B ,0x4F00 //CJK UNIFIED IDEOGRAPH - ,0xFA6C ,0x4F03 //CJK UNIFIED IDEOGRAPH - ,0xFA6D ,0x4F39 //CJK UNIFIED IDEOGRAPH - ,0xFA6E ,0x4F56 //CJK UNIFIED IDEOGRAPH - ,0xFA6F ,0x4F92 //CJK UNIFIED IDEOGRAPH - ,0xFA70 ,0x4F8A //CJK UNIFIED IDEOGRAPH - ,0xFA71 ,0x4F9A //CJK UNIFIED IDEOGRAPH - ,0xFA72 ,0x4F94 //CJK UNIFIED IDEOGRAPH - ,0xFA73 ,0x4FCD //CJK UNIFIED IDEOGRAPH - ,0xFA74 ,0x5040 //CJK UNIFIED IDEOGRAPH - ,0xFA75 ,0x5022 //CJK UNIFIED IDEOGRAPH - ,0xFA76 ,0x4FFF //CJK UNIFIED IDEOGRAPH - ,0xFA77 ,0x501E //CJK UNIFIED IDEOGRAPH - ,0xFA78 ,0x5046 //CJK UNIFIED IDEOGRAPH - ,0xFA79 ,0x5070 //CJK UNIFIED IDEOGRAPH - ,0xFA7A ,0x5042 //CJK UNIFIED IDEOGRAPH - ,0xFA7B ,0x5094 //CJK UNIFIED IDEOGRAPH - ,0xFA7C ,0x50F4 //CJK UNIFIED IDEOGRAPH - ,0xFA7D ,0x50D8 //CJK UNIFIED IDEOGRAPH - ,0xFA7E ,0x514A //CJK UNIFIED IDEOGRAPH - ,0xFA80 ,0x5164 //CJK UNIFIED IDEOGRAPH - ,0xFA81 ,0x519D //CJK UNIFIED IDEOGRAPH - ,0xFA82 ,0x51BE //CJK UNIFIED IDEOGRAPH - ,0xFA83 ,0x51EC //CJK UNIFIED IDEOGRAPH - ,0xFA84 ,0x5215 //CJK UNIFIED IDEOGRAPH - ,0xFA85 ,0x529C //CJK UNIFIED IDEOGRAPH - ,0xFA86 ,0x52A6 //CJK UNIFIED IDEOGRAPH - ,0xFA87 ,0x52C0 //CJK UNIFIED IDEOGRAPH - ,0xFA88 ,0x52DB //CJK UNIFIED IDEOGRAPH - ,0xFA89 ,0x5300 //CJK UNIFIED IDEOGRAPH - ,0xFA8A ,0x5307 //CJK UNIFIED IDEOGRAPH - ,0xFA8B ,0x5324 //CJK UNIFIED IDEOGRAPH - ,0xFA8C ,0x5372 //CJK UNIFIED IDEOGRAPH - ,0xFA8D ,0x5393 //CJK UNIFIED IDEOGRAPH - ,0xFA8E ,0x53B2 //CJK UNIFIED IDEOGRAPH - ,0xFA8F ,0x53DD //CJK UNIFIED IDEOGRAPH - ,0xFA90 ,0xFA0E //CJK COMPATIBILITY IDEOGRAPH - ,0xFA91 ,0x549C //CJK UNIFIED IDEOGRAPH - ,0xFA92 ,0x548A //CJK UNIFIED IDEOGRAPH - ,0xFA93 ,0x54A9 //CJK UNIFIED IDEOGRAPH - ,0xFA94 ,0x54FF //CJK UNIFIED IDEOGRAPH - ,0xFA95 ,0x5586 //CJK UNIFIED IDEOGRAPH - ,0xFA96 ,0x5759 //CJK UNIFIED IDEOGRAPH - ,0xFA97 ,0x5765 //CJK UNIFIED IDEOGRAPH - ,0xFA98 ,0x57AC //CJK UNIFIED IDEOGRAPH - ,0xFA99 ,0x57C8 //CJK UNIFIED IDEOGRAPH - ,0xFA9A ,0x57C7 //CJK UNIFIED IDEOGRAPH - ,0xFA9B ,0xFA0F //CJK COMPATIBILITY IDEOGRAPH - ,0xFA9C ,0xFA10 //CJK COMPATIBILITY IDEOGRAPH - ,0xFA9D ,0x589E //CJK UNIFIED IDEOGRAPH - ,0xFA9E ,0x58B2 //CJK UNIFIED IDEOGRAPH - ,0xFA9F ,0x590B //CJK UNIFIED IDEOGRAPH - ,0xFAA0 ,0x5953 //CJK UNIFIED IDEOGRAPH - ,0xFAA1 ,0x595B //CJK UNIFIED IDEOGRAPH - ,0xFAA2 ,0x595D //CJK UNIFIED IDEOGRAPH - ,0xFAA3 ,0x5963 //CJK UNIFIED IDEOGRAPH - ,0xFAA4 ,0x59A4 //CJK UNIFIED IDEOGRAPH - ,0xFAA5 ,0x59BA //CJK UNIFIED IDEOGRAPH - ,0xFAA6 ,0x5B56 //CJK UNIFIED IDEOGRAPH - ,0xFAA7 ,0x5BC0 //CJK UNIFIED IDEOGRAPH - ,0xFAA8 ,0x752F //CJK UNIFIED IDEOGRAPH - ,0xFAA9 ,0x5BD8 //CJK UNIFIED IDEOGRAPH - ,0xFAAA ,0x5BEC //CJK UNIFIED IDEOGRAPH - ,0xFAAB ,0x5C1E //CJK UNIFIED IDEOGRAPH - ,0xFAAC ,0x5CA6 //CJK UNIFIED IDEOGRAPH - ,0xFAAD ,0x5CBA //CJK UNIFIED IDEOGRAPH - ,0xFAAE ,0x5CF5 //CJK UNIFIED IDEOGRAPH - ,0xFAAF ,0x5D27 //CJK UNIFIED IDEOGRAPH - ,0xFAB0 ,0x5D53 //CJK UNIFIED IDEOGRAPH - ,0xFAB1 ,0xFA11 //CJK COMPATIBILITY IDEOGRAPH - ,0xFAB2 ,0x5D42 //CJK UNIFIED IDEOGRAPH - ,0xFAB3 ,0x5D6D //CJK UNIFIED IDEOGRAPH - ,0xFAB4 ,0x5DB8 //CJK UNIFIED IDEOGRAPH - ,0xFAB5 ,0x5DB9 //CJK UNIFIED IDEOGRAPH - ,0xFAB6 ,0x5DD0 //CJK UNIFIED IDEOGRAPH - ,0xFAB7 ,0x5F21 //CJK UNIFIED IDEOGRAPH - ,0xFAB8 ,0x5F34 //CJK UNIFIED IDEOGRAPH - ,0xFAB9 ,0x5F67 //CJK UNIFIED IDEOGRAPH - ,0xFABA ,0x5FB7 //CJK UNIFIED IDEOGRAPH - ,0xFABB ,0x5FDE //CJK UNIFIED IDEOGRAPH - ,0xFABC ,0x605D //CJK UNIFIED IDEOGRAPH - ,0xFABD ,0x6085 //CJK UNIFIED IDEOGRAPH - ,0xFABE ,0x608A //CJK UNIFIED IDEOGRAPH - ,0xFABF ,0x60DE //CJK UNIFIED IDEOGRAPH - ,0xFAC0 ,0x60D5 //CJK UNIFIED IDEOGRAPH - ,0xFAC1 ,0x6120 //CJK UNIFIED IDEOGRAPH - ,0xFAC2 ,0x60F2 //CJK UNIFIED IDEOGRAPH - ,0xFAC3 ,0x6111 //CJK UNIFIED IDEOGRAPH - ,0xFAC4 ,0x6137 //CJK UNIFIED IDEOGRAPH - ,0xFAC5 ,0x6130 //CJK UNIFIED IDEOGRAPH - ,0xFAC6 ,0x6198 //CJK UNIFIED IDEOGRAPH - ,0xFAC7 ,0x6213 //CJK UNIFIED IDEOGRAPH - ,0xFAC8 ,0x62A6 //CJK UNIFIED IDEOGRAPH - ,0xFAC9 ,0x63F5 //CJK UNIFIED IDEOGRAPH - ,0xFACA ,0x6460 //CJK UNIFIED IDEOGRAPH - ,0xFACB ,0x649D //CJK UNIFIED IDEOGRAPH - ,0xFACC ,0x64CE //CJK UNIFIED IDEOGRAPH - ,0xFACD ,0x654E //CJK UNIFIED IDEOGRAPH - ,0xFACE ,0x6600 //CJK UNIFIED IDEOGRAPH - ,0xFACF ,0x6615 //CJK UNIFIED IDEOGRAPH - ,0xFAD0 ,0x663B //CJK UNIFIED IDEOGRAPH - ,0xFAD1 ,0x6609 //CJK UNIFIED IDEOGRAPH - ,0xFAD2 ,0x662E //CJK UNIFIED IDEOGRAPH - ,0xFAD3 ,0x661E //CJK UNIFIED IDEOGRAPH - ,0xFAD4 ,0x6624 //CJK UNIFIED IDEOGRAPH - ,0xFAD5 ,0x6665 //CJK UNIFIED IDEOGRAPH - ,0xFAD6 ,0x6657 //CJK UNIFIED IDEOGRAPH - ,0xFAD7 ,0x6659 //CJK UNIFIED IDEOGRAPH - ,0xFAD8 ,0xFA12 //CJK COMPATIBILITY IDEOGRAPH - ,0xFAD9 ,0x6673 //CJK UNIFIED IDEOGRAPH - ,0xFADA ,0x6699 //CJK UNIFIED IDEOGRAPH - ,0xFADB ,0x66A0 //CJK UNIFIED IDEOGRAPH - ,0xFADC ,0x66B2 //CJK UNIFIED IDEOGRAPH - ,0xFADD ,0x66BF //CJK UNIFIED IDEOGRAPH - ,0xFADE ,0x66FA //CJK UNIFIED IDEOGRAPH - ,0xFADF ,0x670E //CJK UNIFIED IDEOGRAPH - ,0xFAE0 ,0xF929 //CJK COMPATIBILITY IDEOGRAPH - ,0xFAE1 ,0x6766 //CJK UNIFIED IDEOGRAPH - ,0xFAE2 ,0x67BB //CJK UNIFIED IDEOGRAPH - ,0xFAE3 ,0x6852 //CJK UNIFIED IDEOGRAPH - ,0xFAE4 ,0x67C0 //CJK UNIFIED IDEOGRAPH - ,0xFAE5 ,0x6801 //CJK UNIFIED IDEOGRAPH - ,0xFAE6 ,0x6844 //CJK UNIFIED IDEOGRAPH - ,0xFAE7 ,0x68CF //CJK UNIFIED IDEOGRAPH - ,0xFAE8 ,0xFA13 //CJK COMPATIBILITY IDEOGRAPH - ,0xFAE9 ,0x6968 //CJK UNIFIED IDEOGRAPH - ,0xFAEA ,0xFA14 //CJK COMPATIBILITY IDEOGRAPH - ,0xFAEB ,0x6998 //CJK UNIFIED IDEOGRAPH - ,0xFAEC ,0x69E2 //CJK UNIFIED IDEOGRAPH - ,0xFAED ,0x6A30 //CJK UNIFIED IDEOGRAPH - ,0xFAEE ,0x6A6B //CJK UNIFIED IDEOGRAPH - ,0xFAEF ,0x6A46 //CJK UNIFIED IDEOGRAPH - ,0xFAF0 ,0x6A73 //CJK UNIFIED IDEOGRAPH - ,0xFAF1 ,0x6A7E //CJK UNIFIED IDEOGRAPH - ,0xFAF2 ,0x6AE2 //CJK UNIFIED IDEOGRAPH - ,0xFAF3 ,0x6AE4 //CJK UNIFIED IDEOGRAPH - ,0xFAF4 ,0x6BD6 //CJK UNIFIED IDEOGRAPH - ,0xFAF5 ,0x6C3F //CJK UNIFIED IDEOGRAPH - ,0xFAF6 ,0x6C5C //CJK UNIFIED IDEOGRAPH - ,0xFAF7 ,0x6C86 //CJK UNIFIED IDEOGRAPH - ,0xFAF8 ,0x6C6F //CJK UNIFIED IDEOGRAPH - ,0xFAF9 ,0x6CDA //CJK UNIFIED IDEOGRAPH - ,0xFAFA ,0x6D04 //CJK UNIFIED IDEOGRAPH - ,0xFAFB ,0x6D87 //CJK UNIFIED IDEOGRAPH - ,0xFAFC ,0x6D6F //CJK UNIFIED IDEOGRAPH - ,0xFB40 ,0x6D96 //CJK UNIFIED IDEOGRAPH - ,0xFB41 ,0x6DAC //CJK UNIFIED IDEOGRAPH - ,0xFB42 ,0x6DCF //CJK UNIFIED IDEOGRAPH - ,0xFB43 ,0x6DF8 //CJK UNIFIED IDEOGRAPH - ,0xFB44 ,0x6DF2 //CJK UNIFIED IDEOGRAPH - ,0xFB45 ,0x6DFC //CJK UNIFIED IDEOGRAPH - ,0xFB46 ,0x6E39 //CJK UNIFIED IDEOGRAPH - ,0xFB47 ,0x6E5C //CJK UNIFIED IDEOGRAPH - ,0xFB48 ,0x6E27 //CJK UNIFIED IDEOGRAPH - ,0xFB49 ,0x6E3C //CJK UNIFIED IDEOGRAPH - ,0xFB4A ,0x6EBF //CJK UNIFIED IDEOGRAPH - ,0xFB4B ,0x6F88 //CJK UNIFIED IDEOGRAPH - ,0xFB4C ,0x6FB5 //CJK UNIFIED IDEOGRAPH - ,0xFB4D ,0x6FF5 //CJK UNIFIED IDEOGRAPH - ,0xFB4E ,0x7005 //CJK UNIFIED IDEOGRAPH - ,0xFB4F ,0x7007 //CJK UNIFIED IDEOGRAPH - ,0xFB50 ,0x7028 //CJK UNIFIED IDEOGRAPH - ,0xFB51 ,0x7085 //CJK UNIFIED IDEOGRAPH - ,0xFB52 ,0x70AB //CJK UNIFIED IDEOGRAPH - ,0xFB53 ,0x710F //CJK UNIFIED IDEOGRAPH - ,0xFB54 ,0x7104 //CJK UNIFIED IDEOGRAPH - ,0xFB55 ,0x715C //CJK UNIFIED IDEOGRAPH - ,0xFB56 ,0x7146 //CJK UNIFIED IDEOGRAPH - ,0xFB57 ,0x7147 //CJK UNIFIED IDEOGRAPH - ,0xFB58 ,0xFA15 //CJK COMPATIBILITY IDEOGRAPH - ,0xFB59 ,0x71C1 //CJK UNIFIED IDEOGRAPH - ,0xFB5A ,0x71FE //CJK UNIFIED IDEOGRAPH - ,0xFB5B ,0x72B1 //CJK UNIFIED IDEOGRAPH - ,0xFB5C ,0x72BE //CJK UNIFIED IDEOGRAPH - ,0xFB5D ,0x7324 //CJK UNIFIED IDEOGRAPH - ,0xFB5E ,0xFA16 //CJK COMPATIBILITY IDEOGRAPH - ,0xFB5F ,0x7377 //CJK UNIFIED IDEOGRAPH - ,0xFB60 ,0x73BD //CJK UNIFIED IDEOGRAPH - ,0xFB61 ,0x73C9 //CJK UNIFIED IDEOGRAPH - ,0xFB62 ,0x73D6 //CJK UNIFIED IDEOGRAPH - ,0xFB63 ,0x73E3 //CJK UNIFIED IDEOGRAPH - ,0xFB64 ,0x73D2 //CJK UNIFIED IDEOGRAPH - ,0xFB65 ,0x7407 //CJK UNIFIED IDEOGRAPH - ,0xFB66 ,0x73F5 //CJK UNIFIED IDEOGRAPH - ,0xFB67 ,0x7426 //CJK UNIFIED IDEOGRAPH - ,0xFB68 ,0x742A //CJK UNIFIED IDEOGRAPH - ,0xFB69 ,0x7429 //CJK UNIFIED IDEOGRAPH - ,0xFB6A ,0x742E //CJK UNIFIED IDEOGRAPH - ,0xFB6B ,0x7462 //CJK UNIFIED IDEOGRAPH - ,0xFB6C ,0x7489 //CJK UNIFIED IDEOGRAPH - ,0xFB6D ,0x749F //CJK UNIFIED IDEOGRAPH - ,0xFB6E ,0x7501 //CJK UNIFIED IDEOGRAPH - ,0xFB6F ,0x756F //CJK UNIFIED IDEOGRAPH - ,0xFB70 ,0x7682 //CJK UNIFIED IDEOGRAPH - ,0xFB71 ,0x769C //CJK UNIFIED IDEOGRAPH - ,0xFB72 ,0x769E //CJK UNIFIED IDEOGRAPH - ,0xFB73 ,0x769B //CJK UNIFIED IDEOGRAPH - ,0xFB74 ,0x76A6 //CJK UNIFIED IDEOGRAPH - ,0xFB75 ,0xFA17 //CJK COMPATIBILITY IDEOGRAPH - ,0xFB76 ,0x7746 //CJK UNIFIED IDEOGRAPH - ,0xFB77 ,0x52AF //CJK UNIFIED IDEOGRAPH - ,0xFB78 ,0x7821 //CJK UNIFIED IDEOGRAPH - ,0xFB79 ,0x784E //CJK UNIFIED IDEOGRAPH - ,0xFB7A ,0x7864 //CJK UNIFIED IDEOGRAPH - ,0xFB7B ,0x787A //CJK UNIFIED IDEOGRAPH - ,0xFB7C ,0x7930 //CJK UNIFIED IDEOGRAPH - ,0xFB7D ,0xFA18 //CJK COMPATIBILITY IDEOGRAPH - ,0xFB7E ,0xFA19 //CJK COMPATIBILITY IDEOGRAPH - ,0xFB80 ,0xFA1A //CJK COMPATIBILITY IDEOGRAPH - ,0xFB81 ,0x7994 //CJK UNIFIED IDEOGRAPH - ,0xFB82 ,0xFA1B //CJK COMPATIBILITY IDEOGRAPH - ,0xFB83 ,0x799B //CJK UNIFIED IDEOGRAPH - ,0xFB84 ,0x7AD1 //CJK UNIFIED IDEOGRAPH - ,0xFB85 ,0x7AE7 //CJK UNIFIED IDEOGRAPH - ,0xFB86 ,0xFA1C //CJK COMPATIBILITY IDEOGRAPH - ,0xFB87 ,0x7AEB //CJK UNIFIED IDEOGRAPH - ,0xFB88 ,0x7B9E //CJK UNIFIED IDEOGRAPH - ,0xFB89 ,0xFA1D //CJK COMPATIBILITY IDEOGRAPH - ,0xFB8A ,0x7D48 //CJK UNIFIED IDEOGRAPH - ,0xFB8B ,0x7D5C //CJK UNIFIED IDEOGRAPH - ,0xFB8C ,0x7DB7 //CJK UNIFIED IDEOGRAPH - ,0xFB8D ,0x7DA0 //CJK UNIFIED IDEOGRAPH - ,0xFB8E ,0x7DD6 //CJK UNIFIED IDEOGRAPH - ,0xFB8F ,0x7E52 //CJK UNIFIED IDEOGRAPH - ,0xFB90 ,0x7F47 //CJK UNIFIED IDEOGRAPH - ,0xFB91 ,0x7FA1 //CJK UNIFIED IDEOGRAPH - ,0xFB92 ,0xFA1E //CJK COMPATIBILITY IDEOGRAPH - ,0xFB93 ,0x8301 //CJK UNIFIED IDEOGRAPH - ,0xFB94 ,0x8362 //CJK UNIFIED IDEOGRAPH - ,0xFB95 ,0x837F //CJK UNIFIED IDEOGRAPH - ,0xFB96 ,0x83C7 //CJK UNIFIED IDEOGRAPH - ,0xFB97 ,0x83F6 //CJK UNIFIED IDEOGRAPH - ,0xFB98 ,0x8448 //CJK UNIFIED IDEOGRAPH - ,0xFB99 ,0x84B4 //CJK UNIFIED IDEOGRAPH - ,0xFB9A ,0x8553 //CJK UNIFIED IDEOGRAPH - ,0xFB9B ,0x8559 //CJK UNIFIED IDEOGRAPH - ,0xFB9C ,0x856B //CJK UNIFIED IDEOGRAPH - ,0xFB9D ,0xFA1F //CJK COMPATIBILITY IDEOGRAPH - ,0xFB9E ,0x85B0 //CJK UNIFIED IDEOGRAPH - ,0xFB9F ,0xFA20 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBA0 ,0xFA21 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBA1 ,0x8807 //CJK UNIFIED IDEOGRAPH - ,0xFBA2 ,0x88F5 //CJK UNIFIED IDEOGRAPH - ,0xFBA3 ,0x8A12 //CJK UNIFIED IDEOGRAPH - ,0xFBA4 ,0x8A37 //CJK UNIFIED IDEOGRAPH - ,0xFBA5 ,0x8A79 //CJK UNIFIED IDEOGRAPH - ,0xFBA6 ,0x8AA7 //CJK UNIFIED IDEOGRAPH - ,0xFBA7 ,0x8ABE //CJK UNIFIED IDEOGRAPH - ,0xFBA8 ,0x8ADF //CJK UNIFIED IDEOGRAPH - ,0xFBA9 ,0xFA22 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBAA ,0x8AF6 //CJK UNIFIED IDEOGRAPH - ,0xFBAB ,0x8B53 //CJK UNIFIED IDEOGRAPH - ,0xFBAC ,0x8B7F //CJK UNIFIED IDEOGRAPH - ,0xFBAD ,0x8CF0 //CJK UNIFIED IDEOGRAPH - ,0xFBAE ,0x8CF4 //CJK UNIFIED IDEOGRAPH - ,0xFBAF ,0x8D12 //CJK UNIFIED IDEOGRAPH - ,0xFBB0 ,0x8D76 //CJK UNIFIED IDEOGRAPH - ,0xFBB1 ,0xFA23 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBB2 ,0x8ECF //CJK UNIFIED IDEOGRAPH - ,0xFBB3 ,0xFA24 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBB4 ,0xFA25 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBB5 ,0x9067 //CJK UNIFIED IDEOGRAPH - ,0xFBB6 ,0x90DE //CJK UNIFIED IDEOGRAPH - ,0xFBB7 ,0xFA26 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBB8 ,0x9115 //CJK UNIFIED IDEOGRAPH - ,0xFBB9 ,0x9127 //CJK UNIFIED IDEOGRAPH - ,0xFBBA ,0x91DA //CJK UNIFIED IDEOGRAPH - ,0xFBBB ,0x91D7 //CJK UNIFIED IDEOGRAPH - ,0xFBBC ,0x91DE //CJK UNIFIED IDEOGRAPH - ,0xFBBD ,0x91ED //CJK UNIFIED IDEOGRAPH - ,0xFBBE ,0x91EE //CJK UNIFIED IDEOGRAPH - ,0xFBBF ,0x91E4 //CJK UNIFIED IDEOGRAPH - ,0xFBC0 ,0x91E5 //CJK UNIFIED IDEOGRAPH - ,0xFBC1 ,0x9206 //CJK UNIFIED IDEOGRAPH - ,0xFBC2 ,0x9210 //CJK UNIFIED IDEOGRAPH - ,0xFBC3 ,0x920A //CJK UNIFIED IDEOGRAPH - ,0xFBC4 ,0x923A //CJK UNIFIED IDEOGRAPH - ,0xFBC5 ,0x9240 //CJK UNIFIED IDEOGRAPH - ,0xFBC6 ,0x923C //CJK UNIFIED IDEOGRAPH - ,0xFBC7 ,0x924E //CJK UNIFIED IDEOGRAPH - ,0xFBC8 ,0x9259 //CJK UNIFIED IDEOGRAPH - ,0xFBC9 ,0x9251 //CJK UNIFIED IDEOGRAPH - ,0xFBCA ,0x9239 //CJK UNIFIED IDEOGRAPH - ,0xFBCB ,0x9267 //CJK UNIFIED IDEOGRAPH - ,0xFBCC ,0x92A7 //CJK UNIFIED IDEOGRAPH - ,0xFBCD ,0x9277 //CJK UNIFIED IDEOGRAPH - ,0xFBCE ,0x9278 //CJK UNIFIED IDEOGRAPH - ,0xFBCF ,0x92E7 //CJK UNIFIED IDEOGRAPH - ,0xFBD0 ,0x92D7 //CJK UNIFIED IDEOGRAPH - ,0xFBD1 ,0x92D9 //CJK UNIFIED IDEOGRAPH - ,0xFBD2 ,0x92D0 //CJK UNIFIED IDEOGRAPH - ,0xFBD3 ,0xFA27 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBD4 ,0x92D5 //CJK UNIFIED IDEOGRAPH - ,0xFBD5 ,0x92E0 //CJK UNIFIED IDEOGRAPH - ,0xFBD6 ,0x92D3 //CJK UNIFIED IDEOGRAPH - ,0xFBD7 ,0x9325 //CJK UNIFIED IDEOGRAPH - ,0xFBD8 ,0x9321 //CJK UNIFIED IDEOGRAPH - ,0xFBD9 ,0x92FB //CJK UNIFIED IDEOGRAPH - ,0xFBDA ,0xFA28 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBDB ,0x931E //CJK UNIFIED IDEOGRAPH - ,0xFBDC ,0x92FF //CJK UNIFIED IDEOGRAPH - ,0xFBDD ,0x931D //CJK UNIFIED IDEOGRAPH - ,0xFBDE ,0x9302 //CJK UNIFIED IDEOGRAPH - ,0xFBDF ,0x9370 //CJK UNIFIED IDEOGRAPH - ,0xFBE0 ,0x9357 //CJK UNIFIED IDEOGRAPH - ,0xFBE1 ,0x93A4 //CJK UNIFIED IDEOGRAPH - ,0xFBE2 ,0x93C6 //CJK UNIFIED IDEOGRAPH - ,0xFBE3 ,0x93DE //CJK UNIFIED IDEOGRAPH - ,0xFBE4 ,0x93F8 //CJK UNIFIED IDEOGRAPH - ,0xFBE5 ,0x9431 //CJK UNIFIED IDEOGRAPH - ,0xFBE6 ,0x9445 //CJK UNIFIED IDEOGRAPH - ,0xFBE7 ,0x9448 //CJK UNIFIED IDEOGRAPH - ,0xFBE8 ,0x9592 //CJK UNIFIED IDEOGRAPH - ,0xFBE9 ,0xF9DC //CJK COMPATIBILITY IDEOGRAPH - ,0xFBEA ,0xFA29 //CJK COMPATIBILITY IDEOGRAPH - ,0xFBEB ,0x969D //CJK UNIFIED IDEOGRAPH - ,0xFBEC ,0x96AF //CJK UNIFIED IDEOGRAPH - ,0xFBED ,0x9733 //CJK UNIFIED IDEOGRAPH - ,0xFBEE ,0x973B //CJK UNIFIED IDEOGRAPH - ,0xFBEF ,0x9743 //CJK UNIFIED IDEOGRAPH - ,0xFBF0 ,0x974D //CJK UNIFIED IDEOGRAPH - ,0xFBF1 ,0x974F //CJK UNIFIED IDEOGRAPH - ,0xFBF2 ,0x9751 //CJK UNIFIED IDEOGRAPH - ,0xFBF3 ,0x9755 //CJK UNIFIED IDEOGRAPH - ,0xFBF4 ,0x9857 //CJK UNIFIED IDEOGRAPH - ,0xFBF5 ,0x9865 //CJK UNIFIED IDEOGRAPH - ,0xFBF6 ,0xFA2A //CJK COMPATIBILITY IDEOGRAPH - ,0xFBF7 ,0xFA2B //CJK COMPATIBILITY IDEOGRAPH - ,0xFBF8 ,0x9927 //CJK UNIFIED IDEOGRAPH - ,0xFBF9 ,0xFA2C //CJK COMPATIBILITY IDEOGRAPH - ,0xFBFA ,0x999E //CJK UNIFIED IDEOGRAPH - ,0xFBFB ,0x9A4E //CJK UNIFIED IDEOGRAPH - ,0xFBFC ,0x9AD9 //CJK UNIFIED IDEOGRAPH - ,0xFC40 ,0x9ADC //CJK UNIFIED IDEOGRAPH - ,0xFC41 ,0x9B75 //CJK UNIFIED IDEOGRAPH - ,0xFC42 ,0x9B72 //CJK UNIFIED IDEOGRAPH - ,0xFC43 ,0x9B8F //CJK UNIFIED IDEOGRAPH - ,0xFC44 ,0x9BB1 //CJK UNIFIED IDEOGRAPH - ,0xFC45 ,0x9BBB //CJK UNIFIED IDEOGRAPH - ,0xFC46 ,0x9C00 //CJK UNIFIED IDEOGRAPH - ,0xFC47 ,0x9D70 //CJK UNIFIED IDEOGRAPH - ,0xFC48 ,0x9D6B //CJK UNIFIED IDEOGRAPH - ,0xFC49 ,0xFA2D //CJK COMPATIBILITY IDEOGRAPH - ,0xFC4A ,0x9E19 //CJK UNIFIED IDEOGRAPH - ,0xFC4B ,0x9ED1 //CJK UNIFIED IDEOGRAPH - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp932, kCFStringEncodingDOSJapanese); diff --git a/Foundation/NSString/Encoding/CP936.h b/Foundation/NSString/Encoding/CP936.h deleted file mode 100644 index b47a2166..00000000 --- a/Foundation/NSString/Encoding/CP936.h +++ /dev/null @@ -1,22056 +0,0 @@ -// clang-format off -// cp936 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp936[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x80 ,0x20AC //EURO SIGN - ,0x81 ,0xFFFF //DBCS LEAD BYTE - ,0x82 ,0xFFFF //DBCS LEAD BYTE - ,0x83 ,0xFFFF //DBCS LEAD BYTE - ,0x84 ,0xFFFF //DBCS LEAD BYTE - ,0x85 ,0xFFFF //DBCS LEAD BYTE - ,0x86 ,0xFFFF //DBCS LEAD BYTE - ,0x87 ,0xFFFF //DBCS LEAD BYTE - ,0x88 ,0xFFFF //DBCS LEAD BYTE - ,0x89 ,0xFFFF //DBCS LEAD BYTE - ,0x8A ,0xFFFF //DBCS LEAD BYTE - ,0x8B ,0xFFFF //DBCS LEAD BYTE - ,0x8C ,0xFFFF //DBCS LEAD BYTE - ,0x8D ,0xFFFF //DBCS LEAD BYTE - ,0x8E ,0xFFFF //DBCS LEAD BYTE - ,0x8F ,0xFFFF //DBCS LEAD BYTE - ,0x90 ,0xFFFF //DBCS LEAD BYTE - ,0x91 ,0xFFFF //DBCS LEAD BYTE - ,0x92 ,0xFFFF //DBCS LEAD BYTE - ,0x93 ,0xFFFF //DBCS LEAD BYTE - ,0x94 ,0xFFFF //DBCS LEAD BYTE - ,0x95 ,0xFFFF //DBCS LEAD BYTE - ,0x96 ,0xFFFF //DBCS LEAD BYTE - ,0x97 ,0xFFFF //DBCS LEAD BYTE - ,0x98 ,0xFFFF //DBCS LEAD BYTE - ,0x99 ,0xFFFF //DBCS LEAD BYTE - ,0x9A ,0xFFFF //DBCS LEAD BYTE - ,0x9B ,0xFFFF //DBCS LEAD BYTE - ,0x9C ,0xFFFF //DBCS LEAD BYTE - ,0x9D ,0xFFFF //DBCS LEAD BYTE - ,0x9E ,0xFFFF //DBCS LEAD BYTE - ,0x9F ,0xFFFF //DBCS LEAD BYTE - ,0xA0 ,0xFFFF //DBCS LEAD BYTE - ,0xA1 ,0xFFFF //DBCS LEAD BYTE - ,0xA2 ,0xFFFF //DBCS LEAD BYTE - ,0xA3 ,0xFFFF //DBCS LEAD BYTE - ,0xA4 ,0xFFFF //DBCS LEAD BYTE - ,0xA5 ,0xFFFF //DBCS LEAD BYTE - ,0xA6 ,0xFFFF //DBCS LEAD BYTE - ,0xA7 ,0xFFFF //DBCS LEAD BYTE - ,0xA8 ,0xFFFF //DBCS LEAD BYTE - ,0xA9 ,0xFFFF //DBCS LEAD BYTE - ,0xAA ,0xFFFF //DBCS LEAD BYTE - ,0xAB ,0xFFFF //DBCS LEAD BYTE - ,0xAC ,0xFFFF //DBCS LEAD BYTE - ,0xAD ,0xFFFF //DBCS LEAD BYTE - ,0xAE ,0xFFFF //DBCS LEAD BYTE - ,0xAF ,0xFFFF //DBCS LEAD BYTE - ,0xB0 ,0xFFFF //DBCS LEAD BYTE - ,0xB1 ,0xFFFF //DBCS LEAD BYTE - ,0xB2 ,0xFFFF //DBCS LEAD BYTE - ,0xB3 ,0xFFFF //DBCS LEAD BYTE - ,0xB4 ,0xFFFF //DBCS LEAD BYTE - ,0xB5 ,0xFFFF //DBCS LEAD BYTE - ,0xB6 ,0xFFFF //DBCS LEAD BYTE - ,0xB7 ,0xFFFF //DBCS LEAD BYTE - ,0xB8 ,0xFFFF //DBCS LEAD BYTE - ,0xB9 ,0xFFFF //DBCS LEAD BYTE - ,0xBA ,0xFFFF //DBCS LEAD BYTE - ,0xBB ,0xFFFF //DBCS LEAD BYTE - ,0xBC ,0xFFFF //DBCS LEAD BYTE - ,0xBD ,0xFFFF //DBCS LEAD BYTE - ,0xBE ,0xFFFF //DBCS LEAD BYTE - ,0xBF ,0xFFFF //DBCS LEAD BYTE - ,0xC0 ,0xFFFF //DBCS LEAD BYTE - ,0xC1 ,0xFFFF //DBCS LEAD BYTE - ,0xC2 ,0xFFFF //DBCS LEAD BYTE - ,0xC3 ,0xFFFF //DBCS LEAD BYTE - ,0xC4 ,0xFFFF //DBCS LEAD BYTE - ,0xC5 ,0xFFFF //DBCS LEAD BYTE - ,0xC6 ,0xFFFF //DBCS LEAD BYTE - ,0xC7 ,0xFFFF //DBCS LEAD BYTE - ,0xC8 ,0xFFFF //DBCS LEAD BYTE - ,0xC9 ,0xFFFF //DBCS LEAD BYTE - ,0xCA ,0xFFFF //DBCS LEAD BYTE - ,0xCB ,0xFFFF //DBCS LEAD BYTE - ,0xCC ,0xFFFF //DBCS LEAD BYTE - ,0xCD ,0xFFFF //DBCS LEAD BYTE - ,0xCE ,0xFFFF //DBCS LEAD BYTE - ,0xCF ,0xFFFF //DBCS LEAD BYTE - ,0xD0 ,0xFFFF //DBCS LEAD BYTE - ,0xD1 ,0xFFFF //DBCS LEAD BYTE - ,0xD2 ,0xFFFF //DBCS LEAD BYTE - ,0xD3 ,0xFFFF //DBCS LEAD BYTE - ,0xD4 ,0xFFFF //DBCS LEAD BYTE - ,0xD5 ,0xFFFF //DBCS LEAD BYTE - ,0xD6 ,0xFFFF //DBCS LEAD BYTE - ,0xD7 ,0xFFFF //DBCS LEAD BYTE - ,0xD8 ,0xFFFF //DBCS LEAD BYTE - ,0xD9 ,0xFFFF //DBCS LEAD BYTE - ,0xDA ,0xFFFF //DBCS LEAD BYTE - ,0xDB ,0xFFFF //DBCS LEAD BYTE - ,0xDC ,0xFFFF //DBCS LEAD BYTE - ,0xDD ,0xFFFF //DBCS LEAD BYTE - ,0xDE ,0xFFFF //DBCS LEAD BYTE - ,0xDF ,0xFFFF //DBCS LEAD BYTE - ,0xE0 ,0xFFFF //DBCS LEAD BYTE - ,0xE1 ,0xFFFF //DBCS LEAD BYTE - ,0xE2 ,0xFFFF //DBCS LEAD BYTE - ,0xE3 ,0xFFFF //DBCS LEAD BYTE - ,0xE4 ,0xFFFF //DBCS LEAD BYTE - ,0xE5 ,0xFFFF //DBCS LEAD BYTE - ,0xE6 ,0xFFFF //DBCS LEAD BYTE - ,0xE7 ,0xFFFF //DBCS LEAD BYTE - ,0xE8 ,0xFFFF //DBCS LEAD BYTE - ,0xE9 ,0xFFFF //DBCS LEAD BYTE - ,0xEA ,0xFFFF //DBCS LEAD BYTE - ,0xEB ,0xFFFF //DBCS LEAD BYTE - ,0xEC ,0xFFFF //DBCS LEAD BYTE - ,0xED ,0xFFFF //DBCS LEAD BYTE - ,0xEE ,0xFFFF //DBCS LEAD BYTE - ,0xEF ,0xFFFF //DBCS LEAD BYTE - ,0xF0 ,0xFFFF //DBCS LEAD BYTE - ,0xF1 ,0xFFFF //DBCS LEAD BYTE - ,0xF2 ,0xFFFF //DBCS LEAD BYTE - ,0xF3 ,0xFFFF //DBCS LEAD BYTE - ,0xF4 ,0xFFFF //DBCS LEAD BYTE - ,0xF5 ,0xFFFF //DBCS LEAD BYTE - ,0xF6 ,0xFFFF //DBCS LEAD BYTE - ,0xF7 ,0xFFFF //DBCS LEAD BYTE - ,0xF8 ,0xFFFF //DBCS LEAD BYTE - ,0xF9 ,0xFFFF //DBCS LEAD BYTE - ,0xFA ,0xFFFF //DBCS LEAD BYTE - ,0xFB ,0xFFFF //DBCS LEAD BYTE - ,0xFC ,0xFFFF //DBCS LEAD BYTE - ,0xFD ,0xFFFF //DBCS LEAD BYTE - ,0xFE ,0xFFFF //DBCS LEAD BYTE - ,0x8140 ,0x4E02 //CJK UNIFIED IDEOGRAPH - ,0x8141 ,0x4E04 //CJK UNIFIED IDEOGRAPH - ,0x8142 ,0x4E05 //CJK UNIFIED IDEOGRAPH - ,0x8143 ,0x4E06 //CJK UNIFIED IDEOGRAPH - ,0x8144 ,0x4E0F //CJK UNIFIED IDEOGRAPH - ,0x8145 ,0x4E12 //CJK UNIFIED IDEOGRAPH - ,0x8146 ,0x4E17 //CJK UNIFIED IDEOGRAPH - ,0x8147 ,0x4E1F //CJK UNIFIED IDEOGRAPH - ,0x8148 ,0x4E20 //CJK UNIFIED IDEOGRAPH - ,0x8149 ,0x4E21 //CJK UNIFIED IDEOGRAPH - ,0x814A ,0x4E23 //CJK UNIFIED IDEOGRAPH - ,0x814B ,0x4E26 //CJK UNIFIED IDEOGRAPH - ,0x814C ,0x4E29 //CJK UNIFIED IDEOGRAPH - ,0x814D ,0x4E2E //CJK UNIFIED IDEOGRAPH - ,0x814E ,0x4E2F //CJK UNIFIED IDEOGRAPH - ,0x814F ,0x4E31 //CJK UNIFIED IDEOGRAPH - ,0x8150 ,0x4E33 //CJK UNIFIED IDEOGRAPH - ,0x8151 ,0x4E35 //CJK UNIFIED IDEOGRAPH - ,0x8152 ,0x4E37 //CJK UNIFIED IDEOGRAPH - ,0x8153 ,0x4E3C //CJK UNIFIED IDEOGRAPH - ,0x8154 ,0x4E40 //CJK UNIFIED IDEOGRAPH - ,0x8155 ,0x4E41 //CJK UNIFIED IDEOGRAPH - ,0x8156 ,0x4E42 //CJK UNIFIED IDEOGRAPH - ,0x8157 ,0x4E44 //CJK UNIFIED IDEOGRAPH - ,0x8158 ,0x4E46 //CJK UNIFIED IDEOGRAPH - ,0x8159 ,0x4E4A //CJK UNIFIED IDEOGRAPH - ,0x815A ,0x4E51 //CJK UNIFIED IDEOGRAPH - ,0x815B ,0x4E55 //CJK UNIFIED IDEOGRAPH - ,0x815C ,0x4E57 //CJK UNIFIED IDEOGRAPH - ,0x815D ,0x4E5A //CJK UNIFIED IDEOGRAPH - ,0x815E ,0x4E5B //CJK UNIFIED IDEOGRAPH - ,0x815F ,0x4E62 //CJK UNIFIED IDEOGRAPH - ,0x8160 ,0x4E63 //CJK UNIFIED IDEOGRAPH - ,0x8161 ,0x4E64 //CJK UNIFIED IDEOGRAPH - ,0x8162 ,0x4E65 //CJK UNIFIED IDEOGRAPH - ,0x8163 ,0x4E67 //CJK UNIFIED IDEOGRAPH - ,0x8164 ,0x4E68 //CJK UNIFIED IDEOGRAPH - ,0x8165 ,0x4E6A //CJK UNIFIED IDEOGRAPH - ,0x8166 ,0x4E6B //CJK UNIFIED IDEOGRAPH - ,0x8167 ,0x4E6C //CJK UNIFIED IDEOGRAPH - ,0x8168 ,0x4E6D //CJK UNIFIED IDEOGRAPH - ,0x8169 ,0x4E6E //CJK UNIFIED IDEOGRAPH - ,0x816A ,0x4E6F //CJK UNIFIED IDEOGRAPH - ,0x816B ,0x4E72 //CJK UNIFIED IDEOGRAPH - ,0x816C ,0x4E74 //CJK UNIFIED IDEOGRAPH - ,0x816D ,0x4E75 //CJK UNIFIED IDEOGRAPH - ,0x816E ,0x4E76 //CJK UNIFIED IDEOGRAPH - ,0x816F ,0x4E77 //CJK UNIFIED IDEOGRAPH - ,0x8170 ,0x4E78 //CJK UNIFIED IDEOGRAPH - ,0x8171 ,0x4E79 //CJK UNIFIED IDEOGRAPH - ,0x8172 ,0x4E7A //CJK UNIFIED IDEOGRAPH - ,0x8173 ,0x4E7B //CJK UNIFIED IDEOGRAPH - ,0x8174 ,0x4E7C //CJK UNIFIED IDEOGRAPH - ,0x8175 ,0x4E7D //CJK UNIFIED IDEOGRAPH - ,0x8176 ,0x4E7F //CJK UNIFIED IDEOGRAPH - ,0x8177 ,0x4E80 //CJK UNIFIED IDEOGRAPH - ,0x8178 ,0x4E81 //CJK UNIFIED IDEOGRAPH - ,0x8179 ,0x4E82 //CJK UNIFIED IDEOGRAPH - ,0x817A ,0x4E83 //CJK UNIFIED IDEOGRAPH - ,0x817B ,0x4E84 //CJK UNIFIED IDEOGRAPH - ,0x817C ,0x4E85 //CJK UNIFIED IDEOGRAPH - ,0x817D ,0x4E87 //CJK UNIFIED IDEOGRAPH - ,0x817E ,0x4E8A //CJK UNIFIED IDEOGRAPH - ,0x8180 ,0x4E90 //CJK UNIFIED IDEOGRAPH - ,0x8181 ,0x4E96 //CJK UNIFIED IDEOGRAPH - ,0x8182 ,0x4E97 //CJK UNIFIED IDEOGRAPH - ,0x8183 ,0x4E99 //CJK UNIFIED IDEOGRAPH - ,0x8184 ,0x4E9C //CJK UNIFIED IDEOGRAPH - ,0x8185 ,0x4E9D //CJK UNIFIED IDEOGRAPH - ,0x8186 ,0x4E9E //CJK UNIFIED IDEOGRAPH - ,0x8187 ,0x4EA3 //CJK UNIFIED IDEOGRAPH - ,0x8188 ,0x4EAA //CJK UNIFIED IDEOGRAPH - ,0x8189 ,0x4EAF //CJK UNIFIED IDEOGRAPH - ,0x818A ,0x4EB0 //CJK UNIFIED IDEOGRAPH - ,0x818B ,0x4EB1 //CJK UNIFIED IDEOGRAPH - ,0x818C ,0x4EB4 //CJK UNIFIED IDEOGRAPH - ,0x818D ,0x4EB6 //CJK UNIFIED IDEOGRAPH - ,0x818E ,0x4EB7 //CJK UNIFIED IDEOGRAPH - ,0x818F ,0x4EB8 //CJK UNIFIED IDEOGRAPH - ,0x8190 ,0x4EB9 //CJK UNIFIED IDEOGRAPH - ,0x8191 ,0x4EBC //CJK UNIFIED IDEOGRAPH - ,0x8192 ,0x4EBD //CJK UNIFIED IDEOGRAPH - ,0x8193 ,0x4EBE //CJK UNIFIED IDEOGRAPH - ,0x8194 ,0x4EC8 //CJK UNIFIED IDEOGRAPH - ,0x8195 ,0x4ECC //CJK UNIFIED IDEOGRAPH - ,0x8196 ,0x4ECF //CJK UNIFIED IDEOGRAPH - ,0x8197 ,0x4ED0 //CJK UNIFIED IDEOGRAPH - ,0x8198 ,0x4ED2 //CJK UNIFIED IDEOGRAPH - ,0x8199 ,0x4EDA //CJK UNIFIED IDEOGRAPH - ,0x819A ,0x4EDB //CJK UNIFIED IDEOGRAPH - ,0x819B ,0x4EDC //CJK UNIFIED IDEOGRAPH - ,0x819C ,0x4EE0 //CJK UNIFIED IDEOGRAPH - ,0x819D ,0x4EE2 //CJK UNIFIED IDEOGRAPH - ,0x819E ,0x4EE6 //CJK UNIFIED IDEOGRAPH - ,0x819F ,0x4EE7 //CJK UNIFIED IDEOGRAPH - ,0x81A0 ,0x4EE9 //CJK UNIFIED IDEOGRAPH - ,0x81A1 ,0x4EED //CJK UNIFIED IDEOGRAPH - ,0x81A2 ,0x4EEE //CJK UNIFIED IDEOGRAPH - ,0x81A3 ,0x4EEF //CJK UNIFIED IDEOGRAPH - ,0x81A4 ,0x4EF1 //CJK UNIFIED IDEOGRAPH - ,0x81A5 ,0x4EF4 //CJK UNIFIED IDEOGRAPH - ,0x81A6 ,0x4EF8 //CJK UNIFIED IDEOGRAPH - ,0x81A7 ,0x4EF9 //CJK UNIFIED IDEOGRAPH - ,0x81A8 ,0x4EFA //CJK UNIFIED IDEOGRAPH - ,0x81A9 ,0x4EFC //CJK UNIFIED IDEOGRAPH - ,0x81AA ,0x4EFE //CJK UNIFIED IDEOGRAPH - ,0x81AB ,0x4F00 //CJK UNIFIED IDEOGRAPH - ,0x81AC ,0x4F02 //CJK UNIFIED IDEOGRAPH - ,0x81AD ,0x4F03 //CJK UNIFIED IDEOGRAPH - ,0x81AE ,0x4F04 //CJK UNIFIED IDEOGRAPH - ,0x81AF ,0x4F05 //CJK UNIFIED IDEOGRAPH - ,0x81B0 ,0x4F06 //CJK UNIFIED IDEOGRAPH - ,0x81B1 ,0x4F07 //CJK UNIFIED IDEOGRAPH - ,0x81B2 ,0x4F08 //CJK UNIFIED IDEOGRAPH - ,0x81B3 ,0x4F0B //CJK UNIFIED IDEOGRAPH - ,0x81B4 ,0x4F0C //CJK UNIFIED IDEOGRAPH - ,0x81B5 ,0x4F12 //CJK UNIFIED IDEOGRAPH - ,0x81B6 ,0x4F13 //CJK UNIFIED IDEOGRAPH - ,0x81B7 ,0x4F14 //CJK UNIFIED IDEOGRAPH - ,0x81B8 ,0x4F15 //CJK UNIFIED IDEOGRAPH - ,0x81B9 ,0x4F16 //CJK UNIFIED IDEOGRAPH - ,0x81BA ,0x4F1C //CJK UNIFIED IDEOGRAPH - ,0x81BB ,0x4F1D //CJK UNIFIED IDEOGRAPH - ,0x81BC ,0x4F21 //CJK UNIFIED IDEOGRAPH - ,0x81BD ,0x4F23 //CJK UNIFIED IDEOGRAPH - ,0x81BE ,0x4F28 //CJK UNIFIED IDEOGRAPH - ,0x81BF ,0x4F29 //CJK UNIFIED IDEOGRAPH - ,0x81C0 ,0x4F2C //CJK UNIFIED IDEOGRAPH - ,0x81C1 ,0x4F2D //CJK UNIFIED IDEOGRAPH - ,0x81C2 ,0x4F2E //CJK UNIFIED IDEOGRAPH - ,0x81C3 ,0x4F31 //CJK UNIFIED IDEOGRAPH - ,0x81C4 ,0x4F33 //CJK UNIFIED IDEOGRAPH - ,0x81C5 ,0x4F35 //CJK UNIFIED IDEOGRAPH - ,0x81C6 ,0x4F37 //CJK UNIFIED IDEOGRAPH - ,0x81C7 ,0x4F39 //CJK UNIFIED IDEOGRAPH - ,0x81C8 ,0x4F3B //CJK UNIFIED IDEOGRAPH - ,0x81C9 ,0x4F3E //CJK UNIFIED IDEOGRAPH - ,0x81CA ,0x4F3F //CJK UNIFIED IDEOGRAPH - ,0x81CB ,0x4F40 //CJK UNIFIED IDEOGRAPH - ,0x81CC ,0x4F41 //CJK UNIFIED IDEOGRAPH - ,0x81CD ,0x4F42 //CJK UNIFIED IDEOGRAPH - ,0x81CE ,0x4F44 //CJK UNIFIED IDEOGRAPH - ,0x81CF ,0x4F45 //CJK UNIFIED IDEOGRAPH - ,0x81D0 ,0x4F47 //CJK UNIFIED IDEOGRAPH - ,0x81D1 ,0x4F48 //CJK UNIFIED IDEOGRAPH - ,0x81D2 ,0x4F49 //CJK UNIFIED IDEOGRAPH - ,0x81D3 ,0x4F4A //CJK UNIFIED IDEOGRAPH - ,0x81D4 ,0x4F4B //CJK UNIFIED IDEOGRAPH - ,0x81D5 ,0x4F4C //CJK UNIFIED IDEOGRAPH - ,0x81D6 ,0x4F52 //CJK UNIFIED IDEOGRAPH - ,0x81D7 ,0x4F54 //CJK UNIFIED IDEOGRAPH - ,0x81D8 ,0x4F56 //CJK UNIFIED IDEOGRAPH - ,0x81D9 ,0x4F61 //CJK UNIFIED IDEOGRAPH - ,0x81DA ,0x4F62 //CJK UNIFIED IDEOGRAPH - ,0x81DB ,0x4F66 //CJK UNIFIED IDEOGRAPH - ,0x81DC ,0x4F68 //CJK UNIFIED IDEOGRAPH - ,0x81DD ,0x4F6A //CJK UNIFIED IDEOGRAPH - ,0x81DE ,0x4F6B //CJK UNIFIED IDEOGRAPH - ,0x81DF ,0x4F6D //CJK UNIFIED IDEOGRAPH - ,0x81E0 ,0x4F6E //CJK UNIFIED IDEOGRAPH - ,0x81E1 ,0x4F71 //CJK UNIFIED IDEOGRAPH - ,0x81E2 ,0x4F72 //CJK UNIFIED IDEOGRAPH - ,0x81E3 ,0x4F75 //CJK UNIFIED IDEOGRAPH - ,0x81E4 ,0x4F77 //CJK UNIFIED IDEOGRAPH - ,0x81E5 ,0x4F78 //CJK UNIFIED IDEOGRAPH - ,0x81E6 ,0x4F79 //CJK UNIFIED IDEOGRAPH - ,0x81E7 ,0x4F7A //CJK UNIFIED IDEOGRAPH - ,0x81E8 ,0x4F7D //CJK UNIFIED IDEOGRAPH - ,0x81E9 ,0x4F80 //CJK UNIFIED IDEOGRAPH - ,0x81EA ,0x4F81 //CJK UNIFIED IDEOGRAPH - ,0x81EB ,0x4F82 //CJK UNIFIED IDEOGRAPH - ,0x81EC ,0x4F85 //CJK UNIFIED IDEOGRAPH - ,0x81ED ,0x4F86 //CJK UNIFIED IDEOGRAPH - ,0x81EE ,0x4F87 //CJK UNIFIED IDEOGRAPH - ,0x81EF ,0x4F8A //CJK UNIFIED IDEOGRAPH - ,0x81F0 ,0x4F8C //CJK UNIFIED IDEOGRAPH - ,0x81F1 ,0x4F8E //CJK UNIFIED IDEOGRAPH - ,0x81F2 ,0x4F90 //CJK UNIFIED IDEOGRAPH - ,0x81F3 ,0x4F92 //CJK UNIFIED IDEOGRAPH - ,0x81F4 ,0x4F93 //CJK UNIFIED IDEOGRAPH - ,0x81F5 ,0x4F95 //CJK UNIFIED IDEOGRAPH - ,0x81F6 ,0x4F96 //CJK UNIFIED IDEOGRAPH - ,0x81F7 ,0x4F98 //CJK UNIFIED IDEOGRAPH - ,0x81F8 ,0x4F99 //CJK UNIFIED IDEOGRAPH - ,0x81F9 ,0x4F9A //CJK UNIFIED IDEOGRAPH - ,0x81FA ,0x4F9C //CJK UNIFIED IDEOGRAPH - ,0x81FB ,0x4F9E //CJK UNIFIED IDEOGRAPH - ,0x81FC ,0x4F9F //CJK UNIFIED IDEOGRAPH - ,0x81FD ,0x4FA1 //CJK UNIFIED IDEOGRAPH - ,0x81FE ,0x4FA2 //CJK UNIFIED IDEOGRAPH - ,0x8240 ,0x4FA4 //CJK UNIFIED IDEOGRAPH - ,0x8241 ,0x4FAB //CJK UNIFIED IDEOGRAPH - ,0x8242 ,0x4FAD //CJK UNIFIED IDEOGRAPH - ,0x8243 ,0x4FB0 //CJK UNIFIED IDEOGRAPH - ,0x8244 ,0x4FB1 //CJK UNIFIED IDEOGRAPH - ,0x8245 ,0x4FB2 //CJK UNIFIED IDEOGRAPH - ,0x8246 ,0x4FB3 //CJK UNIFIED IDEOGRAPH - ,0x8247 ,0x4FB4 //CJK UNIFIED IDEOGRAPH - ,0x8248 ,0x4FB6 //CJK UNIFIED IDEOGRAPH - ,0x8249 ,0x4FB7 //CJK UNIFIED IDEOGRAPH - ,0x824A ,0x4FB8 //CJK UNIFIED IDEOGRAPH - ,0x824B ,0x4FB9 //CJK UNIFIED IDEOGRAPH - ,0x824C ,0x4FBA //CJK UNIFIED IDEOGRAPH - ,0x824D ,0x4FBB //CJK UNIFIED IDEOGRAPH - ,0x824E ,0x4FBC //CJK UNIFIED IDEOGRAPH - ,0x824F ,0x4FBD //CJK UNIFIED IDEOGRAPH - ,0x8250 ,0x4FBE //CJK UNIFIED IDEOGRAPH - ,0x8251 ,0x4FC0 //CJK UNIFIED IDEOGRAPH - ,0x8252 ,0x4FC1 //CJK UNIFIED IDEOGRAPH - ,0x8253 ,0x4FC2 //CJK UNIFIED IDEOGRAPH - ,0x8254 ,0x4FC6 //CJK UNIFIED IDEOGRAPH - ,0x8255 ,0x4FC7 //CJK UNIFIED IDEOGRAPH - ,0x8256 ,0x4FC8 //CJK UNIFIED IDEOGRAPH - ,0x8257 ,0x4FC9 //CJK UNIFIED IDEOGRAPH - ,0x8258 ,0x4FCB //CJK UNIFIED IDEOGRAPH - ,0x8259 ,0x4FCC //CJK UNIFIED IDEOGRAPH - ,0x825A ,0x4FCD //CJK UNIFIED IDEOGRAPH - ,0x825B ,0x4FD2 //CJK UNIFIED IDEOGRAPH - ,0x825C ,0x4FD3 //CJK UNIFIED IDEOGRAPH - ,0x825D ,0x4FD4 //CJK UNIFIED IDEOGRAPH - ,0x825E ,0x4FD5 //CJK UNIFIED IDEOGRAPH - ,0x825F ,0x4FD6 //CJK UNIFIED IDEOGRAPH - ,0x8260 ,0x4FD9 //CJK UNIFIED IDEOGRAPH - ,0x8261 ,0x4FDB //CJK UNIFIED IDEOGRAPH - ,0x8262 ,0x4FE0 //CJK UNIFIED IDEOGRAPH - ,0x8263 ,0x4FE2 //CJK UNIFIED IDEOGRAPH - ,0x8264 ,0x4FE4 //CJK UNIFIED IDEOGRAPH - ,0x8265 ,0x4FE5 //CJK UNIFIED IDEOGRAPH - ,0x8266 ,0x4FE7 //CJK UNIFIED IDEOGRAPH - ,0x8267 ,0x4FEB //CJK UNIFIED IDEOGRAPH - ,0x8268 ,0x4FEC //CJK UNIFIED IDEOGRAPH - ,0x8269 ,0x4FF0 //CJK UNIFIED IDEOGRAPH - ,0x826A ,0x4FF2 //CJK UNIFIED IDEOGRAPH - ,0x826B ,0x4FF4 //CJK UNIFIED IDEOGRAPH - ,0x826C ,0x4FF5 //CJK UNIFIED IDEOGRAPH - ,0x826D ,0x4FF6 //CJK UNIFIED IDEOGRAPH - ,0x826E ,0x4FF7 //CJK UNIFIED IDEOGRAPH - ,0x826F ,0x4FF9 //CJK UNIFIED IDEOGRAPH - ,0x8270 ,0x4FFB //CJK UNIFIED IDEOGRAPH - ,0x8271 ,0x4FFC //CJK UNIFIED IDEOGRAPH - ,0x8272 ,0x4FFD //CJK UNIFIED IDEOGRAPH - ,0x8273 ,0x4FFF //CJK UNIFIED IDEOGRAPH - ,0x8274 ,0x5000 //CJK UNIFIED IDEOGRAPH - ,0x8275 ,0x5001 //CJK UNIFIED IDEOGRAPH - ,0x8276 ,0x5002 //CJK UNIFIED IDEOGRAPH - ,0x8277 ,0x5003 //CJK UNIFIED IDEOGRAPH - ,0x8278 ,0x5004 //CJK UNIFIED IDEOGRAPH - ,0x8279 ,0x5005 //CJK UNIFIED IDEOGRAPH - ,0x827A ,0x5006 //CJK UNIFIED IDEOGRAPH - ,0x827B ,0x5007 //CJK UNIFIED IDEOGRAPH - ,0x827C ,0x5008 //CJK UNIFIED IDEOGRAPH - ,0x827D ,0x5009 //CJK UNIFIED IDEOGRAPH - ,0x827E ,0x500A //CJK UNIFIED IDEOGRAPH - ,0x8280 ,0x500B //CJK UNIFIED IDEOGRAPH - ,0x8281 ,0x500E //CJK UNIFIED IDEOGRAPH - ,0x8282 ,0x5010 //CJK UNIFIED IDEOGRAPH - ,0x8283 ,0x5011 //CJK UNIFIED IDEOGRAPH - ,0x8284 ,0x5013 //CJK UNIFIED IDEOGRAPH - ,0x8285 ,0x5015 //CJK UNIFIED IDEOGRAPH - ,0x8286 ,0x5016 //CJK UNIFIED IDEOGRAPH - ,0x8287 ,0x5017 //CJK UNIFIED IDEOGRAPH - ,0x8288 ,0x501B //CJK UNIFIED IDEOGRAPH - ,0x8289 ,0x501D //CJK UNIFIED IDEOGRAPH - ,0x828A ,0x501E //CJK UNIFIED IDEOGRAPH - ,0x828B ,0x5020 //CJK UNIFIED IDEOGRAPH - ,0x828C ,0x5022 //CJK UNIFIED IDEOGRAPH - ,0x828D ,0x5023 //CJK UNIFIED IDEOGRAPH - ,0x828E ,0x5024 //CJK UNIFIED IDEOGRAPH - ,0x828F ,0x5027 //CJK UNIFIED IDEOGRAPH - ,0x8290 ,0x502B //CJK UNIFIED IDEOGRAPH - ,0x8291 ,0x502F //CJK UNIFIED IDEOGRAPH - ,0x8292 ,0x5030 //CJK UNIFIED IDEOGRAPH - ,0x8293 ,0x5031 //CJK UNIFIED IDEOGRAPH - ,0x8294 ,0x5032 //CJK UNIFIED IDEOGRAPH - ,0x8295 ,0x5033 //CJK UNIFIED IDEOGRAPH - ,0x8296 ,0x5034 //CJK UNIFIED IDEOGRAPH - ,0x8297 ,0x5035 //CJK UNIFIED IDEOGRAPH - ,0x8298 ,0x5036 //CJK UNIFIED IDEOGRAPH - ,0x8299 ,0x5037 //CJK UNIFIED IDEOGRAPH - ,0x829A ,0x5038 //CJK UNIFIED IDEOGRAPH - ,0x829B ,0x5039 //CJK UNIFIED IDEOGRAPH - ,0x829C ,0x503B //CJK UNIFIED IDEOGRAPH - ,0x829D ,0x503D //CJK UNIFIED IDEOGRAPH - ,0x829E ,0x503F //CJK UNIFIED IDEOGRAPH - ,0x829F ,0x5040 //CJK UNIFIED IDEOGRAPH - ,0x82A0 ,0x5041 //CJK UNIFIED IDEOGRAPH - ,0x82A1 ,0x5042 //CJK UNIFIED IDEOGRAPH - ,0x82A2 ,0x5044 //CJK UNIFIED IDEOGRAPH - ,0x82A3 ,0x5045 //CJK UNIFIED IDEOGRAPH - ,0x82A4 ,0x5046 //CJK UNIFIED IDEOGRAPH - ,0x82A5 ,0x5049 //CJK UNIFIED IDEOGRAPH - ,0x82A6 ,0x504A //CJK UNIFIED IDEOGRAPH - ,0x82A7 ,0x504B //CJK UNIFIED IDEOGRAPH - ,0x82A8 ,0x504D //CJK UNIFIED IDEOGRAPH - ,0x82A9 ,0x5050 //CJK UNIFIED IDEOGRAPH - ,0x82AA ,0x5051 //CJK UNIFIED IDEOGRAPH - ,0x82AB ,0x5052 //CJK UNIFIED IDEOGRAPH - ,0x82AC ,0x5053 //CJK UNIFIED IDEOGRAPH - ,0x82AD ,0x5054 //CJK UNIFIED IDEOGRAPH - ,0x82AE ,0x5056 //CJK UNIFIED IDEOGRAPH - ,0x82AF ,0x5057 //CJK UNIFIED IDEOGRAPH - ,0x82B0 ,0x5058 //CJK UNIFIED IDEOGRAPH - ,0x82B1 ,0x5059 //CJK UNIFIED IDEOGRAPH - ,0x82B2 ,0x505B //CJK UNIFIED IDEOGRAPH - ,0x82B3 ,0x505D //CJK UNIFIED IDEOGRAPH - ,0x82B4 ,0x505E //CJK UNIFIED IDEOGRAPH - ,0x82B5 ,0x505F //CJK UNIFIED IDEOGRAPH - ,0x82B6 ,0x5060 //CJK UNIFIED IDEOGRAPH - ,0x82B7 ,0x5061 //CJK UNIFIED IDEOGRAPH - ,0x82B8 ,0x5062 //CJK UNIFIED IDEOGRAPH - ,0x82B9 ,0x5063 //CJK UNIFIED IDEOGRAPH - ,0x82BA ,0x5064 //CJK UNIFIED IDEOGRAPH - ,0x82BB ,0x5066 //CJK UNIFIED IDEOGRAPH - ,0x82BC ,0x5067 //CJK UNIFIED IDEOGRAPH - ,0x82BD ,0x5068 //CJK UNIFIED IDEOGRAPH - ,0x82BE ,0x5069 //CJK UNIFIED IDEOGRAPH - ,0x82BF ,0x506A //CJK UNIFIED IDEOGRAPH - ,0x82C0 ,0x506B //CJK UNIFIED IDEOGRAPH - ,0x82C1 ,0x506D //CJK UNIFIED IDEOGRAPH - ,0x82C2 ,0x506E //CJK UNIFIED IDEOGRAPH - ,0x82C3 ,0x506F //CJK UNIFIED IDEOGRAPH - ,0x82C4 ,0x5070 //CJK UNIFIED IDEOGRAPH - ,0x82C5 ,0x5071 //CJK UNIFIED IDEOGRAPH - ,0x82C6 ,0x5072 //CJK UNIFIED IDEOGRAPH - ,0x82C7 ,0x5073 //CJK UNIFIED IDEOGRAPH - ,0x82C8 ,0x5074 //CJK UNIFIED IDEOGRAPH - ,0x82C9 ,0x5075 //CJK UNIFIED IDEOGRAPH - ,0x82CA ,0x5078 //CJK UNIFIED IDEOGRAPH - ,0x82CB ,0x5079 //CJK UNIFIED IDEOGRAPH - ,0x82CC ,0x507A //CJK UNIFIED IDEOGRAPH - ,0x82CD ,0x507C //CJK UNIFIED IDEOGRAPH - ,0x82CE ,0x507D //CJK UNIFIED IDEOGRAPH - ,0x82CF ,0x5081 //CJK UNIFIED IDEOGRAPH - ,0x82D0 ,0x5082 //CJK UNIFIED IDEOGRAPH - ,0x82D1 ,0x5083 //CJK UNIFIED IDEOGRAPH - ,0x82D2 ,0x5084 //CJK UNIFIED IDEOGRAPH - ,0x82D3 ,0x5086 //CJK UNIFIED IDEOGRAPH - ,0x82D4 ,0x5087 //CJK UNIFIED IDEOGRAPH - ,0x82D5 ,0x5089 //CJK UNIFIED IDEOGRAPH - ,0x82D6 ,0x508A //CJK UNIFIED IDEOGRAPH - ,0x82D7 ,0x508B //CJK UNIFIED IDEOGRAPH - ,0x82D8 ,0x508C //CJK UNIFIED IDEOGRAPH - ,0x82D9 ,0x508E //CJK UNIFIED IDEOGRAPH - ,0x82DA ,0x508F //CJK UNIFIED IDEOGRAPH - ,0x82DB ,0x5090 //CJK UNIFIED IDEOGRAPH - ,0x82DC ,0x5091 //CJK UNIFIED IDEOGRAPH - ,0x82DD ,0x5092 //CJK UNIFIED IDEOGRAPH - ,0x82DE ,0x5093 //CJK UNIFIED IDEOGRAPH - ,0x82DF ,0x5094 //CJK UNIFIED IDEOGRAPH - ,0x82E0 ,0x5095 //CJK UNIFIED IDEOGRAPH - ,0x82E1 ,0x5096 //CJK UNIFIED IDEOGRAPH - ,0x82E2 ,0x5097 //CJK UNIFIED IDEOGRAPH - ,0x82E3 ,0x5098 //CJK UNIFIED IDEOGRAPH - ,0x82E4 ,0x5099 //CJK UNIFIED IDEOGRAPH - ,0x82E5 ,0x509A //CJK UNIFIED IDEOGRAPH - ,0x82E6 ,0x509B //CJK UNIFIED IDEOGRAPH - ,0x82E7 ,0x509C //CJK UNIFIED IDEOGRAPH - ,0x82E8 ,0x509D //CJK UNIFIED IDEOGRAPH - ,0x82E9 ,0x509E //CJK UNIFIED IDEOGRAPH - ,0x82EA ,0x509F //CJK UNIFIED IDEOGRAPH - ,0x82EB ,0x50A0 //CJK UNIFIED IDEOGRAPH - ,0x82EC ,0x50A1 //CJK UNIFIED IDEOGRAPH - ,0x82ED ,0x50A2 //CJK UNIFIED IDEOGRAPH - ,0x82EE ,0x50A4 //CJK UNIFIED IDEOGRAPH - ,0x82EF ,0x50A6 //CJK UNIFIED IDEOGRAPH - ,0x82F0 ,0x50AA //CJK UNIFIED IDEOGRAPH - ,0x82F1 ,0x50AB //CJK UNIFIED IDEOGRAPH - ,0x82F2 ,0x50AD //CJK UNIFIED IDEOGRAPH - ,0x82F3 ,0x50AE //CJK UNIFIED IDEOGRAPH - ,0x82F4 ,0x50AF //CJK UNIFIED IDEOGRAPH - ,0x82F5 ,0x50B0 //CJK UNIFIED IDEOGRAPH - ,0x82F6 ,0x50B1 //CJK UNIFIED IDEOGRAPH - ,0x82F7 ,0x50B3 //CJK UNIFIED IDEOGRAPH - ,0x82F8 ,0x50B4 //CJK UNIFIED IDEOGRAPH - ,0x82F9 ,0x50B5 //CJK UNIFIED IDEOGRAPH - ,0x82FA ,0x50B6 //CJK UNIFIED IDEOGRAPH - ,0x82FB ,0x50B7 //CJK UNIFIED IDEOGRAPH - ,0x82FC ,0x50B8 //CJK UNIFIED IDEOGRAPH - ,0x82FD ,0x50B9 //CJK UNIFIED IDEOGRAPH - ,0x82FE ,0x50BC //CJK UNIFIED IDEOGRAPH - ,0x8340 ,0x50BD //CJK UNIFIED IDEOGRAPH - ,0x8341 ,0x50BE //CJK UNIFIED IDEOGRAPH - ,0x8342 ,0x50BF //CJK UNIFIED IDEOGRAPH - ,0x8343 ,0x50C0 //CJK UNIFIED IDEOGRAPH - ,0x8344 ,0x50C1 //CJK UNIFIED IDEOGRAPH - ,0x8345 ,0x50C2 //CJK UNIFIED IDEOGRAPH - ,0x8346 ,0x50C3 //CJK UNIFIED IDEOGRAPH - ,0x8347 ,0x50C4 //CJK UNIFIED IDEOGRAPH - ,0x8348 ,0x50C5 //CJK UNIFIED IDEOGRAPH - ,0x8349 ,0x50C6 //CJK UNIFIED IDEOGRAPH - ,0x834A ,0x50C7 //CJK UNIFIED IDEOGRAPH - ,0x834B ,0x50C8 //CJK UNIFIED IDEOGRAPH - ,0x834C ,0x50C9 //CJK UNIFIED IDEOGRAPH - ,0x834D ,0x50CA //CJK UNIFIED IDEOGRAPH - ,0x834E ,0x50CB //CJK UNIFIED IDEOGRAPH - ,0x834F ,0x50CC //CJK UNIFIED IDEOGRAPH - ,0x8350 ,0x50CD //CJK UNIFIED IDEOGRAPH - ,0x8351 ,0x50CE //CJK UNIFIED IDEOGRAPH - ,0x8352 ,0x50D0 //CJK UNIFIED IDEOGRAPH - ,0x8353 ,0x50D1 //CJK UNIFIED IDEOGRAPH - ,0x8354 ,0x50D2 //CJK UNIFIED IDEOGRAPH - ,0x8355 ,0x50D3 //CJK UNIFIED IDEOGRAPH - ,0x8356 ,0x50D4 //CJK UNIFIED IDEOGRAPH - ,0x8357 ,0x50D5 //CJK UNIFIED IDEOGRAPH - ,0x8358 ,0x50D7 //CJK UNIFIED IDEOGRAPH - ,0x8359 ,0x50D8 //CJK UNIFIED IDEOGRAPH - ,0x835A ,0x50D9 //CJK UNIFIED IDEOGRAPH - ,0x835B ,0x50DB //CJK UNIFIED IDEOGRAPH - ,0x835C ,0x50DC //CJK UNIFIED IDEOGRAPH - ,0x835D ,0x50DD //CJK UNIFIED IDEOGRAPH - ,0x835E ,0x50DE //CJK UNIFIED IDEOGRAPH - ,0x835F ,0x50DF //CJK UNIFIED IDEOGRAPH - ,0x8360 ,0x50E0 //CJK UNIFIED IDEOGRAPH - ,0x8361 ,0x50E1 //CJK UNIFIED IDEOGRAPH - ,0x8362 ,0x50E2 //CJK UNIFIED IDEOGRAPH - ,0x8363 ,0x50E3 //CJK UNIFIED IDEOGRAPH - ,0x8364 ,0x50E4 //CJK UNIFIED IDEOGRAPH - ,0x8365 ,0x50E5 //CJK UNIFIED IDEOGRAPH - ,0x8366 ,0x50E8 //CJK UNIFIED IDEOGRAPH - ,0x8367 ,0x50E9 //CJK UNIFIED IDEOGRAPH - ,0x8368 ,0x50EA //CJK UNIFIED IDEOGRAPH - ,0x8369 ,0x50EB //CJK UNIFIED IDEOGRAPH - ,0x836A ,0x50EF //CJK UNIFIED IDEOGRAPH - ,0x836B ,0x50F0 //CJK UNIFIED IDEOGRAPH - ,0x836C ,0x50F1 //CJK UNIFIED IDEOGRAPH - ,0x836D ,0x50F2 //CJK UNIFIED IDEOGRAPH - ,0x836E ,0x50F4 //CJK UNIFIED IDEOGRAPH - ,0x836F ,0x50F6 //CJK UNIFIED IDEOGRAPH - ,0x8370 ,0x50F7 //CJK UNIFIED IDEOGRAPH - ,0x8371 ,0x50F8 //CJK UNIFIED IDEOGRAPH - ,0x8372 ,0x50F9 //CJK UNIFIED IDEOGRAPH - ,0x8373 ,0x50FA //CJK UNIFIED IDEOGRAPH - ,0x8374 ,0x50FC //CJK UNIFIED IDEOGRAPH - ,0x8375 ,0x50FD //CJK UNIFIED IDEOGRAPH - ,0x8376 ,0x50FE //CJK UNIFIED IDEOGRAPH - ,0x8377 ,0x50FF //CJK UNIFIED IDEOGRAPH - ,0x8378 ,0x5100 //CJK UNIFIED IDEOGRAPH - ,0x8379 ,0x5101 //CJK UNIFIED IDEOGRAPH - ,0x837A ,0x5102 //CJK UNIFIED IDEOGRAPH - ,0x837B ,0x5103 //CJK UNIFIED IDEOGRAPH - ,0x837C ,0x5104 //CJK UNIFIED IDEOGRAPH - ,0x837D ,0x5105 //CJK UNIFIED IDEOGRAPH - ,0x837E ,0x5108 //CJK UNIFIED IDEOGRAPH - ,0x8380 ,0x5109 //CJK UNIFIED IDEOGRAPH - ,0x8381 ,0x510A //CJK UNIFIED IDEOGRAPH - ,0x8382 ,0x510C //CJK UNIFIED IDEOGRAPH - ,0x8383 ,0x510D //CJK UNIFIED IDEOGRAPH - ,0x8384 ,0x510E //CJK UNIFIED IDEOGRAPH - ,0x8385 ,0x510F //CJK UNIFIED IDEOGRAPH - ,0x8386 ,0x5110 //CJK UNIFIED IDEOGRAPH - ,0x8387 ,0x5111 //CJK UNIFIED IDEOGRAPH - ,0x8388 ,0x5113 //CJK UNIFIED IDEOGRAPH - ,0x8389 ,0x5114 //CJK UNIFIED IDEOGRAPH - ,0x838A ,0x5115 //CJK UNIFIED IDEOGRAPH - ,0x838B ,0x5116 //CJK UNIFIED IDEOGRAPH - ,0x838C ,0x5117 //CJK UNIFIED IDEOGRAPH - ,0x838D ,0x5118 //CJK UNIFIED IDEOGRAPH - ,0x838E ,0x5119 //CJK UNIFIED IDEOGRAPH - ,0x838F ,0x511A //CJK UNIFIED IDEOGRAPH - ,0x8390 ,0x511B //CJK UNIFIED IDEOGRAPH - ,0x8391 ,0x511C //CJK UNIFIED IDEOGRAPH - ,0x8392 ,0x511D //CJK UNIFIED IDEOGRAPH - ,0x8393 ,0x511E //CJK UNIFIED IDEOGRAPH - ,0x8394 ,0x511F //CJK UNIFIED IDEOGRAPH - ,0x8395 ,0x5120 //CJK UNIFIED IDEOGRAPH - ,0x8396 ,0x5122 //CJK UNIFIED IDEOGRAPH - ,0x8397 ,0x5123 //CJK UNIFIED IDEOGRAPH - ,0x8398 ,0x5124 //CJK UNIFIED IDEOGRAPH - ,0x8399 ,0x5125 //CJK UNIFIED IDEOGRAPH - ,0x839A ,0x5126 //CJK UNIFIED IDEOGRAPH - ,0x839B ,0x5127 //CJK UNIFIED IDEOGRAPH - ,0x839C ,0x5128 //CJK UNIFIED IDEOGRAPH - ,0x839D ,0x5129 //CJK UNIFIED IDEOGRAPH - ,0x839E ,0x512A //CJK UNIFIED IDEOGRAPH - ,0x839F ,0x512B //CJK UNIFIED IDEOGRAPH - ,0x83A0 ,0x512C //CJK UNIFIED IDEOGRAPH - ,0x83A1 ,0x512D //CJK UNIFIED IDEOGRAPH - ,0x83A2 ,0x512E //CJK UNIFIED IDEOGRAPH - ,0x83A3 ,0x512F //CJK UNIFIED IDEOGRAPH - ,0x83A4 ,0x5130 //CJK UNIFIED IDEOGRAPH - ,0x83A5 ,0x5131 //CJK UNIFIED IDEOGRAPH - ,0x83A6 ,0x5132 //CJK UNIFIED IDEOGRAPH - ,0x83A7 ,0x5133 //CJK UNIFIED IDEOGRAPH - ,0x83A8 ,0x5134 //CJK UNIFIED IDEOGRAPH - ,0x83A9 ,0x5135 //CJK UNIFIED IDEOGRAPH - ,0x83AA ,0x5136 //CJK UNIFIED IDEOGRAPH - ,0x83AB ,0x5137 //CJK UNIFIED IDEOGRAPH - ,0x83AC ,0x5138 //CJK UNIFIED IDEOGRAPH - ,0x83AD ,0x5139 //CJK UNIFIED IDEOGRAPH - ,0x83AE ,0x513A //CJK UNIFIED IDEOGRAPH - ,0x83AF ,0x513B //CJK UNIFIED IDEOGRAPH - ,0x83B0 ,0x513C //CJK UNIFIED IDEOGRAPH - ,0x83B1 ,0x513D //CJK UNIFIED IDEOGRAPH - ,0x83B2 ,0x513E //CJK UNIFIED IDEOGRAPH - ,0x83B3 ,0x5142 //CJK UNIFIED IDEOGRAPH - ,0x83B4 ,0x5147 //CJK UNIFIED IDEOGRAPH - ,0x83B5 ,0x514A //CJK UNIFIED IDEOGRAPH - ,0x83B6 ,0x514C //CJK UNIFIED IDEOGRAPH - ,0x83B7 ,0x514E //CJK UNIFIED IDEOGRAPH - ,0x83B8 ,0x514F //CJK UNIFIED IDEOGRAPH - ,0x83B9 ,0x5150 //CJK UNIFIED IDEOGRAPH - ,0x83BA ,0x5152 //CJK UNIFIED IDEOGRAPH - ,0x83BB ,0x5153 //CJK UNIFIED IDEOGRAPH - ,0x83BC ,0x5157 //CJK UNIFIED IDEOGRAPH - ,0x83BD ,0x5158 //CJK UNIFIED IDEOGRAPH - ,0x83BE ,0x5159 //CJK UNIFIED IDEOGRAPH - ,0x83BF ,0x515B //CJK UNIFIED IDEOGRAPH - ,0x83C0 ,0x515D //CJK UNIFIED IDEOGRAPH - ,0x83C1 ,0x515E //CJK UNIFIED IDEOGRAPH - ,0x83C2 ,0x515F //CJK UNIFIED IDEOGRAPH - ,0x83C3 ,0x5160 //CJK UNIFIED IDEOGRAPH - ,0x83C4 ,0x5161 //CJK UNIFIED IDEOGRAPH - ,0x83C5 ,0x5163 //CJK UNIFIED IDEOGRAPH - ,0x83C6 ,0x5164 //CJK UNIFIED IDEOGRAPH - ,0x83C7 ,0x5166 //CJK UNIFIED IDEOGRAPH - ,0x83C8 ,0x5167 //CJK UNIFIED IDEOGRAPH - ,0x83C9 ,0x5169 //CJK UNIFIED IDEOGRAPH - ,0x83CA ,0x516A //CJK UNIFIED IDEOGRAPH - ,0x83CB ,0x516F //CJK UNIFIED IDEOGRAPH - ,0x83CC ,0x5172 //CJK UNIFIED IDEOGRAPH - ,0x83CD ,0x517A //CJK UNIFIED IDEOGRAPH - ,0x83CE ,0x517E //CJK UNIFIED IDEOGRAPH - ,0x83CF ,0x517F //CJK UNIFIED IDEOGRAPH - ,0x83D0 ,0x5183 //CJK UNIFIED IDEOGRAPH - ,0x83D1 ,0x5184 //CJK UNIFIED IDEOGRAPH - ,0x83D2 ,0x5186 //CJK UNIFIED IDEOGRAPH - ,0x83D3 ,0x5187 //CJK UNIFIED IDEOGRAPH - ,0x83D4 ,0x518A //CJK UNIFIED IDEOGRAPH - ,0x83D5 ,0x518B //CJK UNIFIED IDEOGRAPH - ,0x83D6 ,0x518E //CJK UNIFIED IDEOGRAPH - ,0x83D7 ,0x518F //CJK UNIFIED IDEOGRAPH - ,0x83D8 ,0x5190 //CJK UNIFIED IDEOGRAPH - ,0x83D9 ,0x5191 //CJK UNIFIED IDEOGRAPH - ,0x83DA ,0x5193 //CJK UNIFIED IDEOGRAPH - ,0x83DB ,0x5194 //CJK UNIFIED IDEOGRAPH - ,0x83DC ,0x5198 //CJK UNIFIED IDEOGRAPH - ,0x83DD ,0x519A //CJK UNIFIED IDEOGRAPH - ,0x83DE ,0x519D //CJK UNIFIED IDEOGRAPH - ,0x83DF ,0x519E //CJK UNIFIED IDEOGRAPH - ,0x83E0 ,0x519F //CJK UNIFIED IDEOGRAPH - ,0x83E1 ,0x51A1 //CJK UNIFIED IDEOGRAPH - ,0x83E2 ,0x51A3 //CJK UNIFIED IDEOGRAPH - ,0x83E3 ,0x51A6 //CJK UNIFIED IDEOGRAPH - ,0x83E4 ,0x51A7 //CJK UNIFIED IDEOGRAPH - ,0x83E5 ,0x51A8 //CJK UNIFIED IDEOGRAPH - ,0x83E6 ,0x51A9 //CJK UNIFIED IDEOGRAPH - ,0x83E7 ,0x51AA //CJK UNIFIED IDEOGRAPH - ,0x83E8 ,0x51AD //CJK UNIFIED IDEOGRAPH - ,0x83E9 ,0x51AE //CJK UNIFIED IDEOGRAPH - ,0x83EA ,0x51B4 //CJK UNIFIED IDEOGRAPH - ,0x83EB ,0x51B8 //CJK UNIFIED IDEOGRAPH - ,0x83EC ,0x51B9 //CJK UNIFIED IDEOGRAPH - ,0x83ED ,0x51BA //CJK UNIFIED IDEOGRAPH - ,0x83EE ,0x51BE //CJK UNIFIED IDEOGRAPH - ,0x83EF ,0x51BF //CJK UNIFIED IDEOGRAPH - ,0x83F0 ,0x51C1 //CJK UNIFIED IDEOGRAPH - ,0x83F1 ,0x51C2 //CJK UNIFIED IDEOGRAPH - ,0x83F2 ,0x51C3 //CJK UNIFIED IDEOGRAPH - ,0x83F3 ,0x51C5 //CJK UNIFIED IDEOGRAPH - ,0x83F4 ,0x51C8 //CJK UNIFIED IDEOGRAPH - ,0x83F5 ,0x51CA //CJK UNIFIED IDEOGRAPH - ,0x83F6 ,0x51CD //CJK UNIFIED IDEOGRAPH - ,0x83F7 ,0x51CE //CJK UNIFIED IDEOGRAPH - ,0x83F8 ,0x51D0 //CJK UNIFIED IDEOGRAPH - ,0x83F9 ,0x51D2 //CJK UNIFIED IDEOGRAPH - ,0x83FA ,0x51D3 //CJK UNIFIED IDEOGRAPH - ,0x83FB ,0x51D4 //CJK UNIFIED IDEOGRAPH - ,0x83FC ,0x51D5 //CJK UNIFIED IDEOGRAPH - ,0x83FD ,0x51D6 //CJK UNIFIED IDEOGRAPH - ,0x83FE ,0x51D7 //CJK UNIFIED IDEOGRAPH - ,0x8440 ,0x51D8 //CJK UNIFIED IDEOGRAPH - ,0x8441 ,0x51D9 //CJK UNIFIED IDEOGRAPH - ,0x8442 ,0x51DA //CJK UNIFIED IDEOGRAPH - ,0x8443 ,0x51DC //CJK UNIFIED IDEOGRAPH - ,0x8444 ,0x51DE //CJK UNIFIED IDEOGRAPH - ,0x8445 ,0x51DF //CJK UNIFIED IDEOGRAPH - ,0x8446 ,0x51E2 //CJK UNIFIED IDEOGRAPH - ,0x8447 ,0x51E3 //CJK UNIFIED IDEOGRAPH - ,0x8448 ,0x51E5 //CJK UNIFIED IDEOGRAPH - ,0x8449 ,0x51E6 //CJK UNIFIED IDEOGRAPH - ,0x844A ,0x51E7 //CJK UNIFIED IDEOGRAPH - ,0x844B ,0x51E8 //CJK UNIFIED IDEOGRAPH - ,0x844C ,0x51E9 //CJK UNIFIED IDEOGRAPH - ,0x844D ,0x51EA //CJK UNIFIED IDEOGRAPH - ,0x844E ,0x51EC //CJK UNIFIED IDEOGRAPH - ,0x844F ,0x51EE //CJK UNIFIED IDEOGRAPH - ,0x8450 ,0x51F1 //CJK UNIFIED IDEOGRAPH - ,0x8451 ,0x51F2 //CJK UNIFIED IDEOGRAPH - ,0x8452 ,0x51F4 //CJK UNIFIED IDEOGRAPH - ,0x8453 ,0x51F7 //CJK UNIFIED IDEOGRAPH - ,0x8454 ,0x51FE //CJK UNIFIED IDEOGRAPH - ,0x8455 ,0x5204 //CJK UNIFIED IDEOGRAPH - ,0x8456 ,0x5205 //CJK UNIFIED IDEOGRAPH - ,0x8457 ,0x5209 //CJK UNIFIED IDEOGRAPH - ,0x8458 ,0x520B //CJK UNIFIED IDEOGRAPH - ,0x8459 ,0x520C //CJK UNIFIED IDEOGRAPH - ,0x845A ,0x520F //CJK UNIFIED IDEOGRAPH - ,0x845B ,0x5210 //CJK UNIFIED IDEOGRAPH - ,0x845C ,0x5213 //CJK UNIFIED IDEOGRAPH - ,0x845D ,0x5214 //CJK UNIFIED IDEOGRAPH - ,0x845E ,0x5215 //CJK UNIFIED IDEOGRAPH - ,0x845F ,0x521C //CJK UNIFIED IDEOGRAPH - ,0x8460 ,0x521E //CJK UNIFIED IDEOGRAPH - ,0x8461 ,0x521F //CJK UNIFIED IDEOGRAPH - ,0x8462 ,0x5221 //CJK UNIFIED IDEOGRAPH - ,0x8463 ,0x5222 //CJK UNIFIED IDEOGRAPH - ,0x8464 ,0x5223 //CJK UNIFIED IDEOGRAPH - ,0x8465 ,0x5225 //CJK UNIFIED IDEOGRAPH - ,0x8466 ,0x5226 //CJK UNIFIED IDEOGRAPH - ,0x8467 ,0x5227 //CJK UNIFIED IDEOGRAPH - ,0x8468 ,0x522A //CJK UNIFIED IDEOGRAPH - ,0x8469 ,0x522C //CJK UNIFIED IDEOGRAPH - ,0x846A ,0x522F //CJK UNIFIED IDEOGRAPH - ,0x846B ,0x5231 //CJK UNIFIED IDEOGRAPH - ,0x846C ,0x5232 //CJK UNIFIED IDEOGRAPH - ,0x846D ,0x5234 //CJK UNIFIED IDEOGRAPH - ,0x846E ,0x5235 //CJK UNIFIED IDEOGRAPH - ,0x846F ,0x523C //CJK UNIFIED IDEOGRAPH - ,0x8470 ,0x523E //CJK UNIFIED IDEOGRAPH - ,0x8471 ,0x5244 //CJK UNIFIED IDEOGRAPH - ,0x8472 ,0x5245 //CJK UNIFIED IDEOGRAPH - ,0x8473 ,0x5246 //CJK UNIFIED IDEOGRAPH - ,0x8474 ,0x5247 //CJK UNIFIED IDEOGRAPH - ,0x8475 ,0x5248 //CJK UNIFIED IDEOGRAPH - ,0x8476 ,0x5249 //CJK UNIFIED IDEOGRAPH - ,0x8477 ,0x524B //CJK UNIFIED IDEOGRAPH - ,0x8478 ,0x524E //CJK UNIFIED IDEOGRAPH - ,0x8479 ,0x524F //CJK UNIFIED IDEOGRAPH - ,0x847A ,0x5252 //CJK UNIFIED IDEOGRAPH - ,0x847B ,0x5253 //CJK UNIFIED IDEOGRAPH - ,0x847C ,0x5255 //CJK UNIFIED IDEOGRAPH - ,0x847D ,0x5257 //CJK UNIFIED IDEOGRAPH - ,0x847E ,0x5258 //CJK UNIFIED IDEOGRAPH - ,0x8480 ,0x5259 //CJK UNIFIED IDEOGRAPH - ,0x8481 ,0x525A //CJK UNIFIED IDEOGRAPH - ,0x8482 ,0x525B //CJK UNIFIED IDEOGRAPH - ,0x8483 ,0x525D //CJK UNIFIED IDEOGRAPH - ,0x8484 ,0x525F //CJK UNIFIED IDEOGRAPH - ,0x8485 ,0x5260 //CJK UNIFIED IDEOGRAPH - ,0x8486 ,0x5262 //CJK UNIFIED IDEOGRAPH - ,0x8487 ,0x5263 //CJK UNIFIED IDEOGRAPH - ,0x8488 ,0x5264 //CJK UNIFIED IDEOGRAPH - ,0x8489 ,0x5266 //CJK UNIFIED IDEOGRAPH - ,0x848A ,0x5268 //CJK UNIFIED IDEOGRAPH - ,0x848B ,0x526B //CJK UNIFIED IDEOGRAPH - ,0x848C ,0x526C //CJK UNIFIED IDEOGRAPH - ,0x848D ,0x526D //CJK UNIFIED IDEOGRAPH - ,0x848E ,0x526E //CJK UNIFIED IDEOGRAPH - ,0x848F ,0x5270 //CJK UNIFIED IDEOGRAPH - ,0x8490 ,0x5271 //CJK UNIFIED IDEOGRAPH - ,0x8491 ,0x5273 //CJK UNIFIED IDEOGRAPH - ,0x8492 ,0x5274 //CJK UNIFIED IDEOGRAPH - ,0x8493 ,0x5275 //CJK UNIFIED IDEOGRAPH - ,0x8494 ,0x5276 //CJK UNIFIED IDEOGRAPH - ,0x8495 ,0x5277 //CJK UNIFIED IDEOGRAPH - ,0x8496 ,0x5278 //CJK UNIFIED IDEOGRAPH - ,0x8497 ,0x5279 //CJK UNIFIED IDEOGRAPH - ,0x8498 ,0x527A //CJK UNIFIED IDEOGRAPH - ,0x8499 ,0x527B //CJK UNIFIED IDEOGRAPH - ,0x849A ,0x527C //CJK UNIFIED IDEOGRAPH - ,0x849B ,0x527E //CJK UNIFIED IDEOGRAPH - ,0x849C ,0x5280 //CJK UNIFIED IDEOGRAPH - ,0x849D ,0x5283 //CJK UNIFIED IDEOGRAPH - ,0x849E ,0x5284 //CJK UNIFIED IDEOGRAPH - ,0x849F ,0x5285 //CJK UNIFIED IDEOGRAPH - ,0x84A0 ,0x5286 //CJK UNIFIED IDEOGRAPH - ,0x84A1 ,0x5287 //CJK UNIFIED IDEOGRAPH - ,0x84A2 ,0x5289 //CJK UNIFIED IDEOGRAPH - ,0x84A3 ,0x528A //CJK UNIFIED IDEOGRAPH - ,0x84A4 ,0x528B //CJK UNIFIED IDEOGRAPH - ,0x84A5 ,0x528C //CJK UNIFIED IDEOGRAPH - ,0x84A6 ,0x528D //CJK UNIFIED IDEOGRAPH - ,0x84A7 ,0x528E //CJK UNIFIED IDEOGRAPH - ,0x84A8 ,0x528F //CJK UNIFIED IDEOGRAPH - ,0x84A9 ,0x5291 //CJK UNIFIED IDEOGRAPH - ,0x84AA ,0x5292 //CJK UNIFIED IDEOGRAPH - ,0x84AB ,0x5294 //CJK UNIFIED IDEOGRAPH - ,0x84AC ,0x5295 //CJK UNIFIED IDEOGRAPH - ,0x84AD ,0x5296 //CJK UNIFIED IDEOGRAPH - ,0x84AE ,0x5297 //CJK UNIFIED IDEOGRAPH - ,0x84AF ,0x5298 //CJK UNIFIED IDEOGRAPH - ,0x84B0 ,0x5299 //CJK UNIFIED IDEOGRAPH - ,0x84B1 ,0x529A //CJK UNIFIED IDEOGRAPH - ,0x84B2 ,0x529C //CJK UNIFIED IDEOGRAPH - ,0x84B3 ,0x52A4 //CJK UNIFIED IDEOGRAPH - ,0x84B4 ,0x52A5 //CJK UNIFIED IDEOGRAPH - ,0x84B5 ,0x52A6 //CJK UNIFIED IDEOGRAPH - ,0x84B6 ,0x52A7 //CJK UNIFIED IDEOGRAPH - ,0x84B7 ,0x52AE //CJK UNIFIED IDEOGRAPH - ,0x84B8 ,0x52AF //CJK UNIFIED IDEOGRAPH - ,0x84B9 ,0x52B0 //CJK UNIFIED IDEOGRAPH - ,0x84BA ,0x52B4 //CJK UNIFIED IDEOGRAPH - ,0x84BB ,0x52B5 //CJK UNIFIED IDEOGRAPH - ,0x84BC ,0x52B6 //CJK UNIFIED IDEOGRAPH - ,0x84BD ,0x52B7 //CJK UNIFIED IDEOGRAPH - ,0x84BE ,0x52B8 //CJK UNIFIED IDEOGRAPH - ,0x84BF ,0x52B9 //CJK UNIFIED IDEOGRAPH - ,0x84C0 ,0x52BA //CJK UNIFIED IDEOGRAPH - ,0x84C1 ,0x52BB //CJK UNIFIED IDEOGRAPH - ,0x84C2 ,0x52BC //CJK UNIFIED IDEOGRAPH - ,0x84C3 ,0x52BD //CJK UNIFIED IDEOGRAPH - ,0x84C4 ,0x52C0 //CJK UNIFIED IDEOGRAPH - ,0x84C5 ,0x52C1 //CJK UNIFIED IDEOGRAPH - ,0x84C6 ,0x52C2 //CJK UNIFIED IDEOGRAPH - ,0x84C7 ,0x52C4 //CJK UNIFIED IDEOGRAPH - ,0x84C8 ,0x52C5 //CJK UNIFIED IDEOGRAPH - ,0x84C9 ,0x52C6 //CJK UNIFIED IDEOGRAPH - ,0x84CA ,0x52C8 //CJK UNIFIED IDEOGRAPH - ,0x84CB ,0x52CA //CJK UNIFIED IDEOGRAPH - ,0x84CC ,0x52CC //CJK UNIFIED IDEOGRAPH - ,0x84CD ,0x52CD //CJK UNIFIED IDEOGRAPH - ,0x84CE ,0x52CE //CJK UNIFIED IDEOGRAPH - ,0x84CF ,0x52CF //CJK UNIFIED IDEOGRAPH - ,0x84D0 ,0x52D1 //CJK UNIFIED IDEOGRAPH - ,0x84D1 ,0x52D3 //CJK UNIFIED IDEOGRAPH - ,0x84D2 ,0x52D4 //CJK UNIFIED IDEOGRAPH - ,0x84D3 ,0x52D5 //CJK UNIFIED IDEOGRAPH - ,0x84D4 ,0x52D7 //CJK UNIFIED IDEOGRAPH - ,0x84D5 ,0x52D9 //CJK UNIFIED IDEOGRAPH - ,0x84D6 ,0x52DA //CJK UNIFIED IDEOGRAPH - ,0x84D7 ,0x52DB //CJK UNIFIED IDEOGRAPH - ,0x84D8 ,0x52DC //CJK UNIFIED IDEOGRAPH - ,0x84D9 ,0x52DD //CJK UNIFIED IDEOGRAPH - ,0x84DA ,0x52DE //CJK UNIFIED IDEOGRAPH - ,0x84DB ,0x52E0 //CJK UNIFIED IDEOGRAPH - ,0x84DC ,0x52E1 //CJK UNIFIED IDEOGRAPH - ,0x84DD ,0x52E2 //CJK UNIFIED IDEOGRAPH - ,0x84DE ,0x52E3 //CJK UNIFIED IDEOGRAPH - ,0x84DF ,0x52E5 //CJK UNIFIED IDEOGRAPH - ,0x84E0 ,0x52E6 //CJK UNIFIED IDEOGRAPH - ,0x84E1 ,0x52E7 //CJK UNIFIED IDEOGRAPH - ,0x84E2 ,0x52E8 //CJK UNIFIED IDEOGRAPH - ,0x84E3 ,0x52E9 //CJK UNIFIED IDEOGRAPH - ,0x84E4 ,0x52EA //CJK UNIFIED IDEOGRAPH - ,0x84E5 ,0x52EB //CJK UNIFIED IDEOGRAPH - ,0x84E6 ,0x52EC //CJK UNIFIED IDEOGRAPH - ,0x84E7 ,0x52ED //CJK UNIFIED IDEOGRAPH - ,0x84E8 ,0x52EE //CJK UNIFIED IDEOGRAPH - ,0x84E9 ,0x52EF //CJK UNIFIED IDEOGRAPH - ,0x84EA ,0x52F1 //CJK UNIFIED IDEOGRAPH - ,0x84EB ,0x52F2 //CJK UNIFIED IDEOGRAPH - ,0x84EC ,0x52F3 //CJK UNIFIED IDEOGRAPH - ,0x84ED ,0x52F4 //CJK UNIFIED IDEOGRAPH - ,0x84EE ,0x52F5 //CJK UNIFIED IDEOGRAPH - ,0x84EF ,0x52F6 //CJK UNIFIED IDEOGRAPH - ,0x84F0 ,0x52F7 //CJK UNIFIED IDEOGRAPH - ,0x84F1 ,0x52F8 //CJK UNIFIED IDEOGRAPH - ,0x84F2 ,0x52FB //CJK UNIFIED IDEOGRAPH - ,0x84F3 ,0x52FC //CJK UNIFIED IDEOGRAPH - ,0x84F4 ,0x52FD //CJK UNIFIED IDEOGRAPH - ,0x84F5 ,0x5301 //CJK UNIFIED IDEOGRAPH - ,0x84F6 ,0x5302 //CJK UNIFIED IDEOGRAPH - ,0x84F7 ,0x5303 //CJK UNIFIED IDEOGRAPH - ,0x84F8 ,0x5304 //CJK UNIFIED IDEOGRAPH - ,0x84F9 ,0x5307 //CJK UNIFIED IDEOGRAPH - ,0x84FA ,0x5309 //CJK UNIFIED IDEOGRAPH - ,0x84FB ,0x530A //CJK UNIFIED IDEOGRAPH - ,0x84FC ,0x530B //CJK UNIFIED IDEOGRAPH - ,0x84FD ,0x530C //CJK UNIFIED IDEOGRAPH - ,0x84FE ,0x530E //CJK UNIFIED IDEOGRAPH - ,0x8540 ,0x5311 //CJK UNIFIED IDEOGRAPH - ,0x8541 ,0x5312 //CJK UNIFIED IDEOGRAPH - ,0x8542 ,0x5313 //CJK UNIFIED IDEOGRAPH - ,0x8543 ,0x5314 //CJK UNIFIED IDEOGRAPH - ,0x8544 ,0x5318 //CJK UNIFIED IDEOGRAPH - ,0x8545 ,0x531B //CJK UNIFIED IDEOGRAPH - ,0x8546 ,0x531C //CJK UNIFIED IDEOGRAPH - ,0x8547 ,0x531E //CJK UNIFIED IDEOGRAPH - ,0x8548 ,0x531F //CJK UNIFIED IDEOGRAPH - ,0x8549 ,0x5322 //CJK UNIFIED IDEOGRAPH - ,0x854A ,0x5324 //CJK UNIFIED IDEOGRAPH - ,0x854B ,0x5325 //CJK UNIFIED IDEOGRAPH - ,0x854C ,0x5327 //CJK UNIFIED IDEOGRAPH - ,0x854D ,0x5328 //CJK UNIFIED IDEOGRAPH - ,0x854E ,0x5329 //CJK UNIFIED IDEOGRAPH - ,0x854F ,0x532B //CJK UNIFIED IDEOGRAPH - ,0x8550 ,0x532C //CJK UNIFIED IDEOGRAPH - ,0x8551 ,0x532D //CJK UNIFIED IDEOGRAPH - ,0x8552 ,0x532F //CJK UNIFIED IDEOGRAPH - ,0x8553 ,0x5330 //CJK UNIFIED IDEOGRAPH - ,0x8554 ,0x5331 //CJK UNIFIED IDEOGRAPH - ,0x8555 ,0x5332 //CJK UNIFIED IDEOGRAPH - ,0x8556 ,0x5333 //CJK UNIFIED IDEOGRAPH - ,0x8557 ,0x5334 //CJK UNIFIED IDEOGRAPH - ,0x8558 ,0x5335 //CJK UNIFIED IDEOGRAPH - ,0x8559 ,0x5336 //CJK UNIFIED IDEOGRAPH - ,0x855A ,0x5337 //CJK UNIFIED IDEOGRAPH - ,0x855B ,0x5338 //CJK UNIFIED IDEOGRAPH - ,0x855C ,0x533C //CJK UNIFIED IDEOGRAPH - ,0x855D ,0x533D //CJK UNIFIED IDEOGRAPH - ,0x855E ,0x5340 //CJK UNIFIED IDEOGRAPH - ,0x855F ,0x5342 //CJK UNIFIED IDEOGRAPH - ,0x8560 ,0x5344 //CJK UNIFIED IDEOGRAPH - ,0x8561 ,0x5346 //CJK UNIFIED IDEOGRAPH - ,0x8562 ,0x534B //CJK UNIFIED IDEOGRAPH - ,0x8563 ,0x534C //CJK UNIFIED IDEOGRAPH - ,0x8564 ,0x534D //CJK UNIFIED IDEOGRAPH - ,0x8565 ,0x5350 //CJK UNIFIED IDEOGRAPH - ,0x8566 ,0x5354 //CJK UNIFIED IDEOGRAPH - ,0x8567 ,0x5358 //CJK UNIFIED IDEOGRAPH - ,0x8568 ,0x5359 //CJK UNIFIED IDEOGRAPH - ,0x8569 ,0x535B //CJK UNIFIED IDEOGRAPH - ,0x856A ,0x535D //CJK UNIFIED IDEOGRAPH - ,0x856B ,0x5365 //CJK UNIFIED IDEOGRAPH - ,0x856C ,0x5368 //CJK UNIFIED IDEOGRAPH - ,0x856D ,0x536A //CJK UNIFIED IDEOGRAPH - ,0x856E ,0x536C //CJK UNIFIED IDEOGRAPH - ,0x856F ,0x536D //CJK UNIFIED IDEOGRAPH - ,0x8570 ,0x5372 //CJK UNIFIED IDEOGRAPH - ,0x8571 ,0x5376 //CJK UNIFIED IDEOGRAPH - ,0x8572 ,0x5379 //CJK UNIFIED IDEOGRAPH - ,0x8573 ,0x537B //CJK UNIFIED IDEOGRAPH - ,0x8574 ,0x537C //CJK UNIFIED IDEOGRAPH - ,0x8575 ,0x537D //CJK UNIFIED IDEOGRAPH - ,0x8576 ,0x537E //CJK UNIFIED IDEOGRAPH - ,0x8577 ,0x5380 //CJK UNIFIED IDEOGRAPH - ,0x8578 ,0x5381 //CJK UNIFIED IDEOGRAPH - ,0x8579 ,0x5383 //CJK UNIFIED IDEOGRAPH - ,0x857A ,0x5387 //CJK UNIFIED IDEOGRAPH - ,0x857B ,0x5388 //CJK UNIFIED IDEOGRAPH - ,0x857C ,0x538A //CJK UNIFIED IDEOGRAPH - ,0x857D ,0x538E //CJK UNIFIED IDEOGRAPH - ,0x857E ,0x538F //CJK UNIFIED IDEOGRAPH - ,0x8580 ,0x5390 //CJK UNIFIED IDEOGRAPH - ,0x8581 ,0x5391 //CJK UNIFIED IDEOGRAPH - ,0x8582 ,0x5392 //CJK UNIFIED IDEOGRAPH - ,0x8583 ,0x5393 //CJK UNIFIED IDEOGRAPH - ,0x8584 ,0x5394 //CJK UNIFIED IDEOGRAPH - ,0x8585 ,0x5396 //CJK UNIFIED IDEOGRAPH - ,0x8586 ,0x5397 //CJK UNIFIED IDEOGRAPH - ,0x8587 ,0x5399 //CJK UNIFIED IDEOGRAPH - ,0x8588 ,0x539B //CJK UNIFIED IDEOGRAPH - ,0x8589 ,0x539C //CJK UNIFIED IDEOGRAPH - ,0x858A ,0x539E //CJK UNIFIED IDEOGRAPH - ,0x858B ,0x53A0 //CJK UNIFIED IDEOGRAPH - ,0x858C ,0x53A1 //CJK UNIFIED IDEOGRAPH - ,0x858D ,0x53A4 //CJK UNIFIED IDEOGRAPH - ,0x858E ,0x53A7 //CJK UNIFIED IDEOGRAPH - ,0x858F ,0x53AA //CJK UNIFIED IDEOGRAPH - ,0x8590 ,0x53AB //CJK UNIFIED IDEOGRAPH - ,0x8591 ,0x53AC //CJK UNIFIED IDEOGRAPH - ,0x8592 ,0x53AD //CJK UNIFIED IDEOGRAPH - ,0x8593 ,0x53AF //CJK UNIFIED IDEOGRAPH - ,0x8594 ,0x53B0 //CJK UNIFIED IDEOGRAPH - ,0x8595 ,0x53B1 //CJK UNIFIED IDEOGRAPH - ,0x8596 ,0x53B2 //CJK UNIFIED IDEOGRAPH - ,0x8597 ,0x53B3 //CJK UNIFIED IDEOGRAPH - ,0x8598 ,0x53B4 //CJK UNIFIED IDEOGRAPH - ,0x8599 ,0x53B5 //CJK UNIFIED IDEOGRAPH - ,0x859A ,0x53B7 //CJK UNIFIED IDEOGRAPH - ,0x859B ,0x53B8 //CJK UNIFIED IDEOGRAPH - ,0x859C ,0x53B9 //CJK UNIFIED IDEOGRAPH - ,0x859D ,0x53BA //CJK UNIFIED IDEOGRAPH - ,0x859E ,0x53BC //CJK UNIFIED IDEOGRAPH - ,0x859F ,0x53BD //CJK UNIFIED IDEOGRAPH - ,0x85A0 ,0x53BE //CJK UNIFIED IDEOGRAPH - ,0x85A1 ,0x53C0 //CJK UNIFIED IDEOGRAPH - ,0x85A2 ,0x53C3 //CJK UNIFIED IDEOGRAPH - ,0x85A3 ,0x53C4 //CJK UNIFIED IDEOGRAPH - ,0x85A4 ,0x53C5 //CJK UNIFIED IDEOGRAPH - ,0x85A5 ,0x53C6 //CJK UNIFIED IDEOGRAPH - ,0x85A6 ,0x53C7 //CJK UNIFIED IDEOGRAPH - ,0x85A7 ,0x53CE //CJK UNIFIED IDEOGRAPH - ,0x85A8 ,0x53CF //CJK UNIFIED IDEOGRAPH - ,0x85A9 ,0x53D0 //CJK UNIFIED IDEOGRAPH - ,0x85AA ,0x53D2 //CJK UNIFIED IDEOGRAPH - ,0x85AB ,0x53D3 //CJK UNIFIED IDEOGRAPH - ,0x85AC ,0x53D5 //CJK UNIFIED IDEOGRAPH - ,0x85AD ,0x53DA //CJK UNIFIED IDEOGRAPH - ,0x85AE ,0x53DC //CJK UNIFIED IDEOGRAPH - ,0x85AF ,0x53DD //CJK UNIFIED IDEOGRAPH - ,0x85B0 ,0x53DE //CJK UNIFIED IDEOGRAPH - ,0x85B1 ,0x53E1 //CJK UNIFIED IDEOGRAPH - ,0x85B2 ,0x53E2 //CJK UNIFIED IDEOGRAPH - ,0x85B3 ,0x53E7 //CJK UNIFIED IDEOGRAPH - ,0x85B4 ,0x53F4 //CJK UNIFIED IDEOGRAPH - ,0x85B5 ,0x53FA //CJK UNIFIED IDEOGRAPH - ,0x85B6 ,0x53FE //CJK UNIFIED IDEOGRAPH - ,0x85B7 ,0x53FF //CJK UNIFIED IDEOGRAPH - ,0x85B8 ,0x5400 //CJK UNIFIED IDEOGRAPH - ,0x85B9 ,0x5402 //CJK UNIFIED IDEOGRAPH - ,0x85BA ,0x5405 //CJK UNIFIED IDEOGRAPH - ,0x85BB ,0x5407 //CJK UNIFIED IDEOGRAPH - ,0x85BC ,0x540B //CJK UNIFIED IDEOGRAPH - ,0x85BD ,0x5414 //CJK UNIFIED IDEOGRAPH - ,0x85BE ,0x5418 //CJK UNIFIED IDEOGRAPH - ,0x85BF ,0x5419 //CJK UNIFIED IDEOGRAPH - ,0x85C0 ,0x541A //CJK UNIFIED IDEOGRAPH - ,0x85C1 ,0x541C //CJK UNIFIED IDEOGRAPH - ,0x85C2 ,0x5422 //CJK UNIFIED IDEOGRAPH - ,0x85C3 ,0x5424 //CJK UNIFIED IDEOGRAPH - ,0x85C4 ,0x5425 //CJK UNIFIED IDEOGRAPH - ,0x85C5 ,0x542A //CJK UNIFIED IDEOGRAPH - ,0x85C6 ,0x5430 //CJK UNIFIED IDEOGRAPH - ,0x85C7 ,0x5433 //CJK UNIFIED IDEOGRAPH - ,0x85C8 ,0x5436 //CJK UNIFIED IDEOGRAPH - ,0x85C9 ,0x5437 //CJK UNIFIED IDEOGRAPH - ,0x85CA ,0x543A //CJK UNIFIED IDEOGRAPH - ,0x85CB ,0x543D //CJK UNIFIED IDEOGRAPH - ,0x85CC ,0x543F //CJK UNIFIED IDEOGRAPH - ,0x85CD ,0x5441 //CJK UNIFIED IDEOGRAPH - ,0x85CE ,0x5442 //CJK UNIFIED IDEOGRAPH - ,0x85CF ,0x5444 //CJK UNIFIED IDEOGRAPH - ,0x85D0 ,0x5445 //CJK UNIFIED IDEOGRAPH - ,0x85D1 ,0x5447 //CJK UNIFIED IDEOGRAPH - ,0x85D2 ,0x5449 //CJK UNIFIED IDEOGRAPH - ,0x85D3 ,0x544C //CJK UNIFIED IDEOGRAPH - ,0x85D4 ,0x544D //CJK UNIFIED IDEOGRAPH - ,0x85D5 ,0x544E //CJK UNIFIED IDEOGRAPH - ,0x85D6 ,0x544F //CJK UNIFIED IDEOGRAPH - ,0x85D7 ,0x5451 //CJK UNIFIED IDEOGRAPH - ,0x85D8 ,0x545A //CJK UNIFIED IDEOGRAPH - ,0x85D9 ,0x545D //CJK UNIFIED IDEOGRAPH - ,0x85DA ,0x545E //CJK UNIFIED IDEOGRAPH - ,0x85DB ,0x545F //CJK UNIFIED IDEOGRAPH - ,0x85DC ,0x5460 //CJK UNIFIED IDEOGRAPH - ,0x85DD ,0x5461 //CJK UNIFIED IDEOGRAPH - ,0x85DE ,0x5463 //CJK UNIFIED IDEOGRAPH - ,0x85DF ,0x5465 //CJK UNIFIED IDEOGRAPH - ,0x85E0 ,0x5467 //CJK UNIFIED IDEOGRAPH - ,0x85E1 ,0x5469 //CJK UNIFIED IDEOGRAPH - ,0x85E2 ,0x546A //CJK UNIFIED IDEOGRAPH - ,0x85E3 ,0x546B //CJK UNIFIED IDEOGRAPH - ,0x85E4 ,0x546C //CJK UNIFIED IDEOGRAPH - ,0x85E5 ,0x546D //CJK UNIFIED IDEOGRAPH - ,0x85E6 ,0x546E //CJK UNIFIED IDEOGRAPH - ,0x85E7 ,0x546F //CJK UNIFIED IDEOGRAPH - ,0x85E8 ,0x5470 //CJK UNIFIED IDEOGRAPH - ,0x85E9 ,0x5474 //CJK UNIFIED IDEOGRAPH - ,0x85EA ,0x5479 //CJK UNIFIED IDEOGRAPH - ,0x85EB ,0x547A //CJK UNIFIED IDEOGRAPH - ,0x85EC ,0x547E //CJK UNIFIED IDEOGRAPH - ,0x85ED ,0x547F //CJK UNIFIED IDEOGRAPH - ,0x85EE ,0x5481 //CJK UNIFIED IDEOGRAPH - ,0x85EF ,0x5483 //CJK UNIFIED IDEOGRAPH - ,0x85F0 ,0x5485 //CJK UNIFIED IDEOGRAPH - ,0x85F1 ,0x5487 //CJK UNIFIED IDEOGRAPH - ,0x85F2 ,0x5488 //CJK UNIFIED IDEOGRAPH - ,0x85F3 ,0x5489 //CJK UNIFIED IDEOGRAPH - ,0x85F4 ,0x548A //CJK UNIFIED IDEOGRAPH - ,0x85F5 ,0x548D //CJK UNIFIED IDEOGRAPH - ,0x85F6 ,0x5491 //CJK UNIFIED IDEOGRAPH - ,0x85F7 ,0x5493 //CJK UNIFIED IDEOGRAPH - ,0x85F8 ,0x5497 //CJK UNIFIED IDEOGRAPH - ,0x85F9 ,0x5498 //CJK UNIFIED IDEOGRAPH - ,0x85FA ,0x549C //CJK UNIFIED IDEOGRAPH - ,0x85FB ,0x549E //CJK UNIFIED IDEOGRAPH - ,0x85FC ,0x549F //CJK UNIFIED IDEOGRAPH - ,0x85FD ,0x54A0 //CJK UNIFIED IDEOGRAPH - ,0x85FE ,0x54A1 //CJK UNIFIED IDEOGRAPH - ,0x8640 ,0x54A2 //CJK UNIFIED IDEOGRAPH - ,0x8641 ,0x54A5 //CJK UNIFIED IDEOGRAPH - ,0x8642 ,0x54AE //CJK UNIFIED IDEOGRAPH - ,0x8643 ,0x54B0 //CJK UNIFIED IDEOGRAPH - ,0x8644 ,0x54B2 //CJK UNIFIED IDEOGRAPH - ,0x8645 ,0x54B5 //CJK UNIFIED IDEOGRAPH - ,0x8646 ,0x54B6 //CJK UNIFIED IDEOGRAPH - ,0x8647 ,0x54B7 //CJK UNIFIED IDEOGRAPH - ,0x8648 ,0x54B9 //CJK UNIFIED IDEOGRAPH - ,0x8649 ,0x54BA //CJK UNIFIED IDEOGRAPH - ,0x864A ,0x54BC //CJK UNIFIED IDEOGRAPH - ,0x864B ,0x54BE //CJK UNIFIED IDEOGRAPH - ,0x864C ,0x54C3 //CJK UNIFIED IDEOGRAPH - ,0x864D ,0x54C5 //CJK UNIFIED IDEOGRAPH - ,0x864E ,0x54CA //CJK UNIFIED IDEOGRAPH - ,0x864F ,0x54CB //CJK UNIFIED IDEOGRAPH - ,0x8650 ,0x54D6 //CJK UNIFIED IDEOGRAPH - ,0x8651 ,0x54D8 //CJK UNIFIED IDEOGRAPH - ,0x8652 ,0x54DB //CJK UNIFIED IDEOGRAPH - ,0x8653 ,0x54E0 //CJK UNIFIED IDEOGRAPH - ,0x8654 ,0x54E1 //CJK UNIFIED IDEOGRAPH - ,0x8655 ,0x54E2 //CJK UNIFIED IDEOGRAPH - ,0x8656 ,0x54E3 //CJK UNIFIED IDEOGRAPH - ,0x8657 ,0x54E4 //CJK UNIFIED IDEOGRAPH - ,0x8658 ,0x54EB //CJK UNIFIED IDEOGRAPH - ,0x8659 ,0x54EC //CJK UNIFIED IDEOGRAPH - ,0x865A ,0x54EF //CJK UNIFIED IDEOGRAPH - ,0x865B ,0x54F0 //CJK UNIFIED IDEOGRAPH - ,0x865C ,0x54F1 //CJK UNIFIED IDEOGRAPH - ,0x865D ,0x54F4 //CJK UNIFIED IDEOGRAPH - ,0x865E ,0x54F5 //CJK UNIFIED IDEOGRAPH - ,0x865F ,0x54F6 //CJK UNIFIED IDEOGRAPH - ,0x8660 ,0x54F7 //CJK UNIFIED IDEOGRAPH - ,0x8661 ,0x54F8 //CJK UNIFIED IDEOGRAPH - ,0x8662 ,0x54F9 //CJK UNIFIED IDEOGRAPH - ,0x8663 ,0x54FB //CJK UNIFIED IDEOGRAPH - ,0x8664 ,0x54FE //CJK UNIFIED IDEOGRAPH - ,0x8665 ,0x5500 //CJK UNIFIED IDEOGRAPH - ,0x8666 ,0x5502 //CJK UNIFIED IDEOGRAPH - ,0x8667 ,0x5503 //CJK UNIFIED IDEOGRAPH - ,0x8668 ,0x5504 //CJK UNIFIED IDEOGRAPH - ,0x8669 ,0x5505 //CJK UNIFIED IDEOGRAPH - ,0x866A ,0x5508 //CJK UNIFIED IDEOGRAPH - ,0x866B ,0x550A //CJK UNIFIED IDEOGRAPH - ,0x866C ,0x550B //CJK UNIFIED IDEOGRAPH - ,0x866D ,0x550C //CJK UNIFIED IDEOGRAPH - ,0x866E ,0x550D //CJK UNIFIED IDEOGRAPH - ,0x866F ,0x550E //CJK UNIFIED IDEOGRAPH - ,0x8670 ,0x5512 //CJK UNIFIED IDEOGRAPH - ,0x8671 ,0x5513 //CJK UNIFIED IDEOGRAPH - ,0x8672 ,0x5515 //CJK UNIFIED IDEOGRAPH - ,0x8673 ,0x5516 //CJK UNIFIED IDEOGRAPH - ,0x8674 ,0x5517 //CJK UNIFIED IDEOGRAPH - ,0x8675 ,0x5518 //CJK UNIFIED IDEOGRAPH - ,0x8676 ,0x5519 //CJK UNIFIED IDEOGRAPH - ,0x8677 ,0x551A //CJK UNIFIED IDEOGRAPH - ,0x8678 ,0x551C //CJK UNIFIED IDEOGRAPH - ,0x8679 ,0x551D //CJK UNIFIED IDEOGRAPH - ,0x867A ,0x551E //CJK UNIFIED IDEOGRAPH - ,0x867B ,0x551F //CJK UNIFIED IDEOGRAPH - ,0x867C ,0x5521 //CJK UNIFIED IDEOGRAPH - ,0x867D ,0x5525 //CJK UNIFIED IDEOGRAPH - ,0x867E ,0x5526 //CJK UNIFIED IDEOGRAPH - ,0x8680 ,0x5528 //CJK UNIFIED IDEOGRAPH - ,0x8681 ,0x5529 //CJK UNIFIED IDEOGRAPH - ,0x8682 ,0x552B //CJK UNIFIED IDEOGRAPH - ,0x8683 ,0x552D //CJK UNIFIED IDEOGRAPH - ,0x8684 ,0x5532 //CJK UNIFIED IDEOGRAPH - ,0x8685 ,0x5534 //CJK UNIFIED IDEOGRAPH - ,0x8686 ,0x5535 //CJK UNIFIED IDEOGRAPH - ,0x8687 ,0x5536 //CJK UNIFIED IDEOGRAPH - ,0x8688 ,0x5538 //CJK UNIFIED IDEOGRAPH - ,0x8689 ,0x5539 //CJK UNIFIED IDEOGRAPH - ,0x868A ,0x553A //CJK UNIFIED IDEOGRAPH - ,0x868B ,0x553B //CJK UNIFIED IDEOGRAPH - ,0x868C ,0x553D //CJK UNIFIED IDEOGRAPH - ,0x868D ,0x5540 //CJK UNIFIED IDEOGRAPH - ,0x868E ,0x5542 //CJK UNIFIED IDEOGRAPH - ,0x868F ,0x5545 //CJK UNIFIED IDEOGRAPH - ,0x8690 ,0x5547 //CJK UNIFIED IDEOGRAPH - ,0x8691 ,0x5548 //CJK UNIFIED IDEOGRAPH - ,0x8692 ,0x554B //CJK UNIFIED IDEOGRAPH - ,0x8693 ,0x554C //CJK UNIFIED IDEOGRAPH - ,0x8694 ,0x554D //CJK UNIFIED IDEOGRAPH - ,0x8695 ,0x554E //CJK UNIFIED IDEOGRAPH - ,0x8696 ,0x554F //CJK UNIFIED IDEOGRAPH - ,0x8697 ,0x5551 //CJK UNIFIED IDEOGRAPH - ,0x8698 ,0x5552 //CJK UNIFIED IDEOGRAPH - ,0x8699 ,0x5553 //CJK UNIFIED IDEOGRAPH - ,0x869A ,0x5554 //CJK UNIFIED IDEOGRAPH - ,0x869B ,0x5557 //CJK UNIFIED IDEOGRAPH - ,0x869C ,0x5558 //CJK UNIFIED IDEOGRAPH - ,0x869D ,0x5559 //CJK UNIFIED IDEOGRAPH - ,0x869E ,0x555A //CJK UNIFIED IDEOGRAPH - ,0x869F ,0x555B //CJK UNIFIED IDEOGRAPH - ,0x86A0 ,0x555D //CJK UNIFIED IDEOGRAPH - ,0x86A1 ,0x555E //CJK UNIFIED IDEOGRAPH - ,0x86A2 ,0x555F //CJK UNIFIED IDEOGRAPH - ,0x86A3 ,0x5560 //CJK UNIFIED IDEOGRAPH - ,0x86A4 ,0x5562 //CJK UNIFIED IDEOGRAPH - ,0x86A5 ,0x5563 //CJK UNIFIED IDEOGRAPH - ,0x86A6 ,0x5568 //CJK UNIFIED IDEOGRAPH - ,0x86A7 ,0x5569 //CJK UNIFIED IDEOGRAPH - ,0x86A8 ,0x556B //CJK UNIFIED IDEOGRAPH - ,0x86A9 ,0x556F //CJK UNIFIED IDEOGRAPH - ,0x86AA ,0x5570 //CJK UNIFIED IDEOGRAPH - ,0x86AB ,0x5571 //CJK UNIFIED IDEOGRAPH - ,0x86AC ,0x5572 //CJK UNIFIED IDEOGRAPH - ,0x86AD ,0x5573 //CJK UNIFIED IDEOGRAPH - ,0x86AE ,0x5574 //CJK UNIFIED IDEOGRAPH - ,0x86AF ,0x5579 //CJK UNIFIED IDEOGRAPH - ,0x86B0 ,0x557A //CJK UNIFIED IDEOGRAPH - ,0x86B1 ,0x557D //CJK UNIFIED IDEOGRAPH - ,0x86B2 ,0x557F //CJK UNIFIED IDEOGRAPH - ,0x86B3 ,0x5585 //CJK UNIFIED IDEOGRAPH - ,0x86B4 ,0x5586 //CJK UNIFIED IDEOGRAPH - ,0x86B5 ,0x558C //CJK UNIFIED IDEOGRAPH - ,0x86B6 ,0x558D //CJK UNIFIED IDEOGRAPH - ,0x86B7 ,0x558E //CJK UNIFIED IDEOGRAPH - ,0x86B8 ,0x5590 //CJK UNIFIED IDEOGRAPH - ,0x86B9 ,0x5592 //CJK UNIFIED IDEOGRAPH - ,0x86BA ,0x5593 //CJK UNIFIED IDEOGRAPH - ,0x86BB ,0x5595 //CJK UNIFIED IDEOGRAPH - ,0x86BC ,0x5596 //CJK UNIFIED IDEOGRAPH - ,0x86BD ,0x5597 //CJK UNIFIED IDEOGRAPH - ,0x86BE ,0x559A //CJK UNIFIED IDEOGRAPH - ,0x86BF ,0x559B //CJK UNIFIED IDEOGRAPH - ,0x86C0 ,0x559E //CJK UNIFIED IDEOGRAPH - ,0x86C1 ,0x55A0 //CJK UNIFIED IDEOGRAPH - ,0x86C2 ,0x55A1 //CJK UNIFIED IDEOGRAPH - ,0x86C3 ,0x55A2 //CJK UNIFIED IDEOGRAPH - ,0x86C4 ,0x55A3 //CJK UNIFIED IDEOGRAPH - ,0x86C5 ,0x55A4 //CJK UNIFIED IDEOGRAPH - ,0x86C6 ,0x55A5 //CJK UNIFIED IDEOGRAPH - ,0x86C7 ,0x55A6 //CJK UNIFIED IDEOGRAPH - ,0x86C8 ,0x55A8 //CJK UNIFIED IDEOGRAPH - ,0x86C9 ,0x55A9 //CJK UNIFIED IDEOGRAPH - ,0x86CA ,0x55AA //CJK UNIFIED IDEOGRAPH - ,0x86CB ,0x55AB //CJK UNIFIED IDEOGRAPH - ,0x86CC ,0x55AC //CJK UNIFIED IDEOGRAPH - ,0x86CD ,0x55AD //CJK UNIFIED IDEOGRAPH - ,0x86CE ,0x55AE //CJK UNIFIED IDEOGRAPH - ,0x86CF ,0x55AF //CJK UNIFIED IDEOGRAPH - ,0x86D0 ,0x55B0 //CJK UNIFIED IDEOGRAPH - ,0x86D1 ,0x55B2 //CJK UNIFIED IDEOGRAPH - ,0x86D2 ,0x55B4 //CJK UNIFIED IDEOGRAPH - ,0x86D3 ,0x55B6 //CJK UNIFIED IDEOGRAPH - ,0x86D4 ,0x55B8 //CJK UNIFIED IDEOGRAPH - ,0x86D5 ,0x55BA //CJK UNIFIED IDEOGRAPH - ,0x86D6 ,0x55BC //CJK UNIFIED IDEOGRAPH - ,0x86D7 ,0x55BF //CJK UNIFIED IDEOGRAPH - ,0x86D8 ,0x55C0 //CJK UNIFIED IDEOGRAPH - ,0x86D9 ,0x55C1 //CJK UNIFIED IDEOGRAPH - ,0x86DA ,0x55C2 //CJK UNIFIED IDEOGRAPH - ,0x86DB ,0x55C3 //CJK UNIFIED IDEOGRAPH - ,0x86DC ,0x55C6 //CJK UNIFIED IDEOGRAPH - ,0x86DD ,0x55C7 //CJK UNIFIED IDEOGRAPH - ,0x86DE ,0x55C8 //CJK UNIFIED IDEOGRAPH - ,0x86DF ,0x55CA //CJK UNIFIED IDEOGRAPH - ,0x86E0 ,0x55CB //CJK UNIFIED IDEOGRAPH - ,0x86E1 ,0x55CE //CJK UNIFIED IDEOGRAPH - ,0x86E2 ,0x55CF //CJK UNIFIED IDEOGRAPH - ,0x86E3 ,0x55D0 //CJK UNIFIED IDEOGRAPH - ,0x86E4 ,0x55D5 //CJK UNIFIED IDEOGRAPH - ,0x86E5 ,0x55D7 //CJK UNIFIED IDEOGRAPH - ,0x86E6 ,0x55D8 //CJK UNIFIED IDEOGRAPH - ,0x86E7 ,0x55D9 //CJK UNIFIED IDEOGRAPH - ,0x86E8 ,0x55DA //CJK UNIFIED IDEOGRAPH - ,0x86E9 ,0x55DB //CJK UNIFIED IDEOGRAPH - ,0x86EA ,0x55DE //CJK UNIFIED IDEOGRAPH - ,0x86EB ,0x55E0 //CJK UNIFIED IDEOGRAPH - ,0x86EC ,0x55E2 //CJK UNIFIED IDEOGRAPH - ,0x86ED ,0x55E7 //CJK UNIFIED IDEOGRAPH - ,0x86EE ,0x55E9 //CJK UNIFIED IDEOGRAPH - ,0x86EF ,0x55ED //CJK UNIFIED IDEOGRAPH - ,0x86F0 ,0x55EE //CJK UNIFIED IDEOGRAPH - ,0x86F1 ,0x55F0 //CJK UNIFIED IDEOGRAPH - ,0x86F2 ,0x55F1 //CJK UNIFIED IDEOGRAPH - ,0x86F3 ,0x55F4 //CJK UNIFIED IDEOGRAPH - ,0x86F4 ,0x55F6 //CJK UNIFIED IDEOGRAPH - ,0x86F5 ,0x55F8 //CJK UNIFIED IDEOGRAPH - ,0x86F6 ,0x55F9 //CJK UNIFIED IDEOGRAPH - ,0x86F7 ,0x55FA //CJK UNIFIED IDEOGRAPH - ,0x86F8 ,0x55FB //CJK UNIFIED IDEOGRAPH - ,0x86F9 ,0x55FC //CJK UNIFIED IDEOGRAPH - ,0x86FA ,0x55FF //CJK UNIFIED IDEOGRAPH - ,0x86FB ,0x5602 //CJK UNIFIED IDEOGRAPH - ,0x86FC ,0x5603 //CJK UNIFIED IDEOGRAPH - ,0x86FD ,0x5604 //CJK UNIFIED IDEOGRAPH - ,0x86FE ,0x5605 //CJK UNIFIED IDEOGRAPH - ,0x8740 ,0x5606 //CJK UNIFIED IDEOGRAPH - ,0x8741 ,0x5607 //CJK UNIFIED IDEOGRAPH - ,0x8742 ,0x560A //CJK UNIFIED IDEOGRAPH - ,0x8743 ,0x560B //CJK UNIFIED IDEOGRAPH - ,0x8744 ,0x560D //CJK UNIFIED IDEOGRAPH - ,0x8745 ,0x5610 //CJK UNIFIED IDEOGRAPH - ,0x8746 ,0x5611 //CJK UNIFIED IDEOGRAPH - ,0x8747 ,0x5612 //CJK UNIFIED IDEOGRAPH - ,0x8748 ,0x5613 //CJK UNIFIED IDEOGRAPH - ,0x8749 ,0x5614 //CJK UNIFIED IDEOGRAPH - ,0x874A ,0x5615 //CJK UNIFIED IDEOGRAPH - ,0x874B ,0x5616 //CJK UNIFIED IDEOGRAPH - ,0x874C ,0x5617 //CJK UNIFIED IDEOGRAPH - ,0x874D ,0x5619 //CJK UNIFIED IDEOGRAPH - ,0x874E ,0x561A //CJK UNIFIED IDEOGRAPH - ,0x874F ,0x561C //CJK UNIFIED IDEOGRAPH - ,0x8750 ,0x561D //CJK UNIFIED IDEOGRAPH - ,0x8751 ,0x5620 //CJK UNIFIED IDEOGRAPH - ,0x8752 ,0x5621 //CJK UNIFIED IDEOGRAPH - ,0x8753 ,0x5622 //CJK UNIFIED IDEOGRAPH - ,0x8754 ,0x5625 //CJK UNIFIED IDEOGRAPH - ,0x8755 ,0x5626 //CJK UNIFIED IDEOGRAPH - ,0x8756 ,0x5628 //CJK UNIFIED IDEOGRAPH - ,0x8757 ,0x5629 //CJK UNIFIED IDEOGRAPH - ,0x8758 ,0x562A //CJK UNIFIED IDEOGRAPH - ,0x8759 ,0x562B //CJK UNIFIED IDEOGRAPH - ,0x875A ,0x562E //CJK UNIFIED IDEOGRAPH - ,0x875B ,0x562F //CJK UNIFIED IDEOGRAPH - ,0x875C ,0x5630 //CJK UNIFIED IDEOGRAPH - ,0x875D ,0x5633 //CJK UNIFIED IDEOGRAPH - ,0x875E ,0x5635 //CJK UNIFIED IDEOGRAPH - ,0x875F ,0x5637 //CJK UNIFIED IDEOGRAPH - ,0x8760 ,0x5638 //CJK UNIFIED IDEOGRAPH - ,0x8761 ,0x563A //CJK UNIFIED IDEOGRAPH - ,0x8762 ,0x563C //CJK UNIFIED IDEOGRAPH - ,0x8763 ,0x563D //CJK UNIFIED IDEOGRAPH - ,0x8764 ,0x563E //CJK UNIFIED IDEOGRAPH - ,0x8765 ,0x5640 //CJK UNIFIED IDEOGRAPH - ,0x8766 ,0x5641 //CJK UNIFIED IDEOGRAPH - ,0x8767 ,0x5642 //CJK UNIFIED IDEOGRAPH - ,0x8768 ,0x5643 //CJK UNIFIED IDEOGRAPH - ,0x8769 ,0x5644 //CJK UNIFIED IDEOGRAPH - ,0x876A ,0x5645 //CJK UNIFIED IDEOGRAPH - ,0x876B ,0x5646 //CJK UNIFIED IDEOGRAPH - ,0x876C ,0x5647 //CJK UNIFIED IDEOGRAPH - ,0x876D ,0x5648 //CJK UNIFIED IDEOGRAPH - ,0x876E ,0x5649 //CJK UNIFIED IDEOGRAPH - ,0x876F ,0x564A //CJK UNIFIED IDEOGRAPH - ,0x8770 ,0x564B //CJK UNIFIED IDEOGRAPH - ,0x8771 ,0x564F //CJK UNIFIED IDEOGRAPH - ,0x8772 ,0x5650 //CJK UNIFIED IDEOGRAPH - ,0x8773 ,0x5651 //CJK UNIFIED IDEOGRAPH - ,0x8774 ,0x5652 //CJK UNIFIED IDEOGRAPH - ,0x8775 ,0x5653 //CJK UNIFIED IDEOGRAPH - ,0x8776 ,0x5655 //CJK UNIFIED IDEOGRAPH - ,0x8777 ,0x5656 //CJK UNIFIED IDEOGRAPH - ,0x8778 ,0x565A //CJK UNIFIED IDEOGRAPH - ,0x8779 ,0x565B //CJK UNIFIED IDEOGRAPH - ,0x877A ,0x565D //CJK UNIFIED IDEOGRAPH - ,0x877B ,0x565E //CJK UNIFIED IDEOGRAPH - ,0x877C ,0x565F //CJK UNIFIED IDEOGRAPH - ,0x877D ,0x5660 //CJK UNIFIED IDEOGRAPH - ,0x877E ,0x5661 //CJK UNIFIED IDEOGRAPH - ,0x8780 ,0x5663 //CJK UNIFIED IDEOGRAPH - ,0x8781 ,0x5665 //CJK UNIFIED IDEOGRAPH - ,0x8782 ,0x5666 //CJK UNIFIED IDEOGRAPH - ,0x8783 ,0x5667 //CJK UNIFIED IDEOGRAPH - ,0x8784 ,0x566D //CJK UNIFIED IDEOGRAPH - ,0x8785 ,0x566E //CJK UNIFIED IDEOGRAPH - ,0x8786 ,0x566F //CJK UNIFIED IDEOGRAPH - ,0x8787 ,0x5670 //CJK UNIFIED IDEOGRAPH - ,0x8788 ,0x5672 //CJK UNIFIED IDEOGRAPH - ,0x8789 ,0x5673 //CJK UNIFIED IDEOGRAPH - ,0x878A ,0x5674 //CJK UNIFIED IDEOGRAPH - ,0x878B ,0x5675 //CJK UNIFIED IDEOGRAPH - ,0x878C ,0x5677 //CJK UNIFIED IDEOGRAPH - ,0x878D ,0x5678 //CJK UNIFIED IDEOGRAPH - ,0x878E ,0x5679 //CJK UNIFIED IDEOGRAPH - ,0x878F ,0x567A //CJK UNIFIED IDEOGRAPH - ,0x8790 ,0x567D //CJK UNIFIED IDEOGRAPH - ,0x8791 ,0x567E //CJK UNIFIED IDEOGRAPH - ,0x8792 ,0x567F //CJK UNIFIED IDEOGRAPH - ,0x8793 ,0x5680 //CJK UNIFIED IDEOGRAPH - ,0x8794 ,0x5681 //CJK UNIFIED IDEOGRAPH - ,0x8795 ,0x5682 //CJK UNIFIED IDEOGRAPH - ,0x8796 ,0x5683 //CJK UNIFIED IDEOGRAPH - ,0x8797 ,0x5684 //CJK UNIFIED IDEOGRAPH - ,0x8798 ,0x5687 //CJK UNIFIED IDEOGRAPH - ,0x8799 ,0x5688 //CJK UNIFIED IDEOGRAPH - ,0x879A ,0x5689 //CJK UNIFIED IDEOGRAPH - ,0x879B ,0x568A //CJK UNIFIED IDEOGRAPH - ,0x879C ,0x568B //CJK UNIFIED IDEOGRAPH - ,0x879D ,0x568C //CJK UNIFIED IDEOGRAPH - ,0x879E ,0x568D //CJK UNIFIED IDEOGRAPH - ,0x879F ,0x5690 //CJK UNIFIED IDEOGRAPH - ,0x87A0 ,0x5691 //CJK UNIFIED IDEOGRAPH - ,0x87A1 ,0x5692 //CJK UNIFIED IDEOGRAPH - ,0x87A2 ,0x5694 //CJK UNIFIED IDEOGRAPH - ,0x87A3 ,0x5695 //CJK UNIFIED IDEOGRAPH - ,0x87A4 ,0x5696 //CJK UNIFIED IDEOGRAPH - ,0x87A5 ,0x5697 //CJK UNIFIED IDEOGRAPH - ,0x87A6 ,0x5698 //CJK UNIFIED IDEOGRAPH - ,0x87A7 ,0x5699 //CJK UNIFIED IDEOGRAPH - ,0x87A8 ,0x569A //CJK UNIFIED IDEOGRAPH - ,0x87A9 ,0x569B //CJK UNIFIED IDEOGRAPH - ,0x87AA ,0x569C //CJK UNIFIED IDEOGRAPH - ,0x87AB ,0x569D //CJK UNIFIED IDEOGRAPH - ,0x87AC ,0x569E //CJK UNIFIED IDEOGRAPH - ,0x87AD ,0x569F //CJK UNIFIED IDEOGRAPH - ,0x87AE ,0x56A0 //CJK UNIFIED IDEOGRAPH - ,0x87AF ,0x56A1 //CJK UNIFIED IDEOGRAPH - ,0x87B0 ,0x56A2 //CJK UNIFIED IDEOGRAPH - ,0x87B1 ,0x56A4 //CJK UNIFIED IDEOGRAPH - ,0x87B2 ,0x56A5 //CJK UNIFIED IDEOGRAPH - ,0x87B3 ,0x56A6 //CJK UNIFIED IDEOGRAPH - ,0x87B4 ,0x56A7 //CJK UNIFIED IDEOGRAPH - ,0x87B5 ,0x56A8 //CJK UNIFIED IDEOGRAPH - ,0x87B6 ,0x56A9 //CJK UNIFIED IDEOGRAPH - ,0x87B7 ,0x56AA //CJK UNIFIED IDEOGRAPH - ,0x87B8 ,0x56AB //CJK UNIFIED IDEOGRAPH - ,0x87B9 ,0x56AC //CJK UNIFIED IDEOGRAPH - ,0x87BA ,0x56AD //CJK UNIFIED IDEOGRAPH - ,0x87BB ,0x56AE //CJK UNIFIED IDEOGRAPH - ,0x87BC ,0x56B0 //CJK UNIFIED IDEOGRAPH - ,0x87BD ,0x56B1 //CJK UNIFIED IDEOGRAPH - ,0x87BE ,0x56B2 //CJK UNIFIED IDEOGRAPH - ,0x87BF ,0x56B3 //CJK UNIFIED IDEOGRAPH - ,0x87C0 ,0x56B4 //CJK UNIFIED IDEOGRAPH - ,0x87C1 ,0x56B5 //CJK UNIFIED IDEOGRAPH - ,0x87C2 ,0x56B6 //CJK UNIFIED IDEOGRAPH - ,0x87C3 ,0x56B8 //CJK UNIFIED IDEOGRAPH - ,0x87C4 ,0x56B9 //CJK UNIFIED IDEOGRAPH - ,0x87C5 ,0x56BA //CJK UNIFIED IDEOGRAPH - ,0x87C6 ,0x56BB //CJK UNIFIED IDEOGRAPH - ,0x87C7 ,0x56BD //CJK UNIFIED IDEOGRAPH - ,0x87C8 ,0x56BE //CJK UNIFIED IDEOGRAPH - ,0x87C9 ,0x56BF //CJK UNIFIED IDEOGRAPH - ,0x87CA ,0x56C0 //CJK UNIFIED IDEOGRAPH - ,0x87CB ,0x56C1 //CJK UNIFIED IDEOGRAPH - ,0x87CC ,0x56C2 //CJK UNIFIED IDEOGRAPH - ,0x87CD ,0x56C3 //CJK UNIFIED IDEOGRAPH - ,0x87CE ,0x56C4 //CJK UNIFIED IDEOGRAPH - ,0x87CF ,0x56C5 //CJK UNIFIED IDEOGRAPH - ,0x87D0 ,0x56C6 //CJK UNIFIED IDEOGRAPH - ,0x87D1 ,0x56C7 //CJK UNIFIED IDEOGRAPH - ,0x87D2 ,0x56C8 //CJK UNIFIED IDEOGRAPH - ,0x87D3 ,0x56C9 //CJK UNIFIED IDEOGRAPH - ,0x87D4 ,0x56CB //CJK UNIFIED IDEOGRAPH - ,0x87D5 ,0x56CC //CJK UNIFIED IDEOGRAPH - ,0x87D6 ,0x56CD //CJK UNIFIED IDEOGRAPH - ,0x87D7 ,0x56CE //CJK UNIFIED IDEOGRAPH - ,0x87D8 ,0x56CF //CJK UNIFIED IDEOGRAPH - ,0x87D9 ,0x56D0 //CJK UNIFIED IDEOGRAPH - ,0x87DA ,0x56D1 //CJK UNIFIED IDEOGRAPH - ,0x87DB ,0x56D2 //CJK UNIFIED IDEOGRAPH - ,0x87DC ,0x56D3 //CJK UNIFIED IDEOGRAPH - ,0x87DD ,0x56D5 //CJK UNIFIED IDEOGRAPH - ,0x87DE ,0x56D6 //CJK UNIFIED IDEOGRAPH - ,0x87DF ,0x56D8 //CJK UNIFIED IDEOGRAPH - ,0x87E0 ,0x56D9 //CJK UNIFIED IDEOGRAPH - ,0x87E1 ,0x56DC //CJK UNIFIED IDEOGRAPH - ,0x87E2 ,0x56E3 //CJK UNIFIED IDEOGRAPH - ,0x87E3 ,0x56E5 //CJK UNIFIED IDEOGRAPH - ,0x87E4 ,0x56E6 //CJK UNIFIED IDEOGRAPH - ,0x87E5 ,0x56E7 //CJK UNIFIED IDEOGRAPH - ,0x87E6 ,0x56E8 //CJK UNIFIED IDEOGRAPH - ,0x87E7 ,0x56E9 //CJK UNIFIED IDEOGRAPH - ,0x87E8 ,0x56EA //CJK UNIFIED IDEOGRAPH - ,0x87E9 ,0x56EC //CJK UNIFIED IDEOGRAPH - ,0x87EA ,0x56EE //CJK UNIFIED IDEOGRAPH - ,0x87EB ,0x56EF //CJK UNIFIED IDEOGRAPH - ,0x87EC ,0x56F2 //CJK UNIFIED IDEOGRAPH - ,0x87ED ,0x56F3 //CJK UNIFIED IDEOGRAPH - ,0x87EE ,0x56F6 //CJK UNIFIED IDEOGRAPH - ,0x87EF ,0x56F7 //CJK UNIFIED IDEOGRAPH - ,0x87F0 ,0x56F8 //CJK UNIFIED IDEOGRAPH - ,0x87F1 ,0x56FB //CJK UNIFIED IDEOGRAPH - ,0x87F2 ,0x56FC //CJK UNIFIED IDEOGRAPH - ,0x87F3 ,0x5700 //CJK UNIFIED IDEOGRAPH - ,0x87F4 ,0x5701 //CJK UNIFIED IDEOGRAPH - ,0x87F5 ,0x5702 //CJK UNIFIED IDEOGRAPH - ,0x87F6 ,0x5705 //CJK UNIFIED IDEOGRAPH - ,0x87F7 ,0x5707 //CJK UNIFIED IDEOGRAPH - ,0x87F8 ,0x570B //CJK UNIFIED IDEOGRAPH - ,0x87F9 ,0x570C //CJK UNIFIED IDEOGRAPH - ,0x87FA ,0x570D //CJK UNIFIED IDEOGRAPH - ,0x87FB ,0x570E //CJK UNIFIED IDEOGRAPH - ,0x87FC ,0x570F //CJK UNIFIED IDEOGRAPH - ,0x87FD ,0x5710 //CJK UNIFIED IDEOGRAPH - ,0x87FE ,0x5711 //CJK UNIFIED IDEOGRAPH - ,0x8840 ,0x5712 //CJK UNIFIED IDEOGRAPH - ,0x8841 ,0x5713 //CJK UNIFIED IDEOGRAPH - ,0x8842 ,0x5714 //CJK UNIFIED IDEOGRAPH - ,0x8843 ,0x5715 //CJK UNIFIED IDEOGRAPH - ,0x8844 ,0x5716 //CJK UNIFIED IDEOGRAPH - ,0x8845 ,0x5717 //CJK UNIFIED IDEOGRAPH - ,0x8846 ,0x5718 //CJK UNIFIED IDEOGRAPH - ,0x8847 ,0x5719 //CJK UNIFIED IDEOGRAPH - ,0x8848 ,0x571A //CJK UNIFIED IDEOGRAPH - ,0x8849 ,0x571B //CJK UNIFIED IDEOGRAPH - ,0x884A ,0x571D //CJK UNIFIED IDEOGRAPH - ,0x884B ,0x571E //CJK UNIFIED IDEOGRAPH - ,0x884C ,0x5720 //CJK UNIFIED IDEOGRAPH - ,0x884D ,0x5721 //CJK UNIFIED IDEOGRAPH - ,0x884E ,0x5722 //CJK UNIFIED IDEOGRAPH - ,0x884F ,0x5724 //CJK UNIFIED IDEOGRAPH - ,0x8850 ,0x5725 //CJK UNIFIED IDEOGRAPH - ,0x8851 ,0x5726 //CJK UNIFIED IDEOGRAPH - ,0x8852 ,0x5727 //CJK UNIFIED IDEOGRAPH - ,0x8853 ,0x572B //CJK UNIFIED IDEOGRAPH - ,0x8854 ,0x5731 //CJK UNIFIED IDEOGRAPH - ,0x8855 ,0x5732 //CJK UNIFIED IDEOGRAPH - ,0x8856 ,0x5734 //CJK UNIFIED IDEOGRAPH - ,0x8857 ,0x5735 //CJK UNIFIED IDEOGRAPH - ,0x8858 ,0x5736 //CJK UNIFIED IDEOGRAPH - ,0x8859 ,0x5737 //CJK UNIFIED IDEOGRAPH - ,0x885A ,0x5738 //CJK UNIFIED IDEOGRAPH - ,0x885B ,0x573C //CJK UNIFIED IDEOGRAPH - ,0x885C ,0x573D //CJK UNIFIED IDEOGRAPH - ,0x885D ,0x573F //CJK UNIFIED IDEOGRAPH - ,0x885E ,0x5741 //CJK UNIFIED IDEOGRAPH - ,0x885F ,0x5743 //CJK UNIFIED IDEOGRAPH - ,0x8860 ,0x5744 //CJK UNIFIED IDEOGRAPH - ,0x8861 ,0x5745 //CJK UNIFIED IDEOGRAPH - ,0x8862 ,0x5746 //CJK UNIFIED IDEOGRAPH - ,0x8863 ,0x5748 //CJK UNIFIED IDEOGRAPH - ,0x8864 ,0x5749 //CJK UNIFIED IDEOGRAPH - ,0x8865 ,0x574B //CJK UNIFIED IDEOGRAPH - ,0x8866 ,0x5752 //CJK UNIFIED IDEOGRAPH - ,0x8867 ,0x5753 //CJK UNIFIED IDEOGRAPH - ,0x8868 ,0x5754 //CJK UNIFIED IDEOGRAPH - ,0x8869 ,0x5755 //CJK UNIFIED IDEOGRAPH - ,0x886A ,0x5756 //CJK UNIFIED IDEOGRAPH - ,0x886B ,0x5758 //CJK UNIFIED IDEOGRAPH - ,0x886C ,0x5759 //CJK UNIFIED IDEOGRAPH - ,0x886D ,0x5762 //CJK UNIFIED IDEOGRAPH - ,0x886E ,0x5763 //CJK UNIFIED IDEOGRAPH - ,0x886F ,0x5765 //CJK UNIFIED IDEOGRAPH - ,0x8870 ,0x5767 //CJK UNIFIED IDEOGRAPH - ,0x8871 ,0x576C //CJK UNIFIED IDEOGRAPH - ,0x8872 ,0x576E //CJK UNIFIED IDEOGRAPH - ,0x8873 ,0x5770 //CJK UNIFIED IDEOGRAPH - ,0x8874 ,0x5771 //CJK UNIFIED IDEOGRAPH - ,0x8875 ,0x5772 //CJK UNIFIED IDEOGRAPH - ,0x8876 ,0x5774 //CJK UNIFIED IDEOGRAPH - ,0x8877 ,0x5775 //CJK UNIFIED IDEOGRAPH - ,0x8878 ,0x5778 //CJK UNIFIED IDEOGRAPH - ,0x8879 ,0x5779 //CJK UNIFIED IDEOGRAPH - ,0x887A ,0x577A //CJK UNIFIED IDEOGRAPH - ,0x887B ,0x577D //CJK UNIFIED IDEOGRAPH - ,0x887C ,0x577E //CJK UNIFIED IDEOGRAPH - ,0x887D ,0x577F //CJK UNIFIED IDEOGRAPH - ,0x887E ,0x5780 //CJK UNIFIED IDEOGRAPH - ,0x8880 ,0x5781 //CJK UNIFIED IDEOGRAPH - ,0x8881 ,0x5787 //CJK UNIFIED IDEOGRAPH - ,0x8882 ,0x5788 //CJK UNIFIED IDEOGRAPH - ,0x8883 ,0x5789 //CJK UNIFIED IDEOGRAPH - ,0x8884 ,0x578A //CJK UNIFIED IDEOGRAPH - ,0x8885 ,0x578D //CJK UNIFIED IDEOGRAPH - ,0x8886 ,0x578E //CJK UNIFIED IDEOGRAPH - ,0x8887 ,0x578F //CJK UNIFIED IDEOGRAPH - ,0x8888 ,0x5790 //CJK UNIFIED IDEOGRAPH - ,0x8889 ,0x5791 //CJK UNIFIED IDEOGRAPH - ,0x888A ,0x5794 //CJK UNIFIED IDEOGRAPH - ,0x888B ,0x5795 //CJK UNIFIED IDEOGRAPH - ,0x888C ,0x5796 //CJK UNIFIED IDEOGRAPH - ,0x888D ,0x5797 //CJK UNIFIED IDEOGRAPH - ,0x888E ,0x5798 //CJK UNIFIED IDEOGRAPH - ,0x888F ,0x5799 //CJK UNIFIED IDEOGRAPH - ,0x8890 ,0x579A //CJK UNIFIED IDEOGRAPH - ,0x8891 ,0x579C //CJK UNIFIED IDEOGRAPH - ,0x8892 ,0x579D //CJK UNIFIED IDEOGRAPH - ,0x8893 ,0x579E //CJK UNIFIED IDEOGRAPH - ,0x8894 ,0x579F //CJK UNIFIED IDEOGRAPH - ,0x8895 ,0x57A5 //CJK UNIFIED IDEOGRAPH - ,0x8896 ,0x57A8 //CJK UNIFIED IDEOGRAPH - ,0x8897 ,0x57AA //CJK UNIFIED IDEOGRAPH - ,0x8898 ,0x57AC //CJK UNIFIED IDEOGRAPH - ,0x8899 ,0x57AF //CJK UNIFIED IDEOGRAPH - ,0x889A ,0x57B0 //CJK UNIFIED IDEOGRAPH - ,0x889B ,0x57B1 //CJK UNIFIED IDEOGRAPH - ,0x889C ,0x57B3 //CJK UNIFIED IDEOGRAPH - ,0x889D ,0x57B5 //CJK UNIFIED IDEOGRAPH - ,0x889E ,0x57B6 //CJK UNIFIED IDEOGRAPH - ,0x889F ,0x57B7 //CJK UNIFIED IDEOGRAPH - ,0x88A0 ,0x57B9 //CJK UNIFIED IDEOGRAPH - ,0x88A1 ,0x57BA //CJK UNIFIED IDEOGRAPH - ,0x88A2 ,0x57BB //CJK UNIFIED IDEOGRAPH - ,0x88A3 ,0x57BC //CJK UNIFIED IDEOGRAPH - ,0x88A4 ,0x57BD //CJK UNIFIED IDEOGRAPH - ,0x88A5 ,0x57BE //CJK UNIFIED IDEOGRAPH - ,0x88A6 ,0x57BF //CJK UNIFIED IDEOGRAPH - ,0x88A7 ,0x57C0 //CJK UNIFIED IDEOGRAPH - ,0x88A8 ,0x57C1 //CJK UNIFIED IDEOGRAPH - ,0x88A9 ,0x57C4 //CJK UNIFIED IDEOGRAPH - ,0x88AA ,0x57C5 //CJK UNIFIED IDEOGRAPH - ,0x88AB ,0x57C6 //CJK UNIFIED IDEOGRAPH - ,0x88AC ,0x57C7 //CJK UNIFIED IDEOGRAPH - ,0x88AD ,0x57C8 //CJK UNIFIED IDEOGRAPH - ,0x88AE ,0x57C9 //CJK UNIFIED IDEOGRAPH - ,0x88AF ,0x57CA //CJK UNIFIED IDEOGRAPH - ,0x88B0 ,0x57CC //CJK UNIFIED IDEOGRAPH - ,0x88B1 ,0x57CD //CJK UNIFIED IDEOGRAPH - ,0x88B2 ,0x57D0 //CJK UNIFIED IDEOGRAPH - ,0x88B3 ,0x57D1 //CJK UNIFIED IDEOGRAPH - ,0x88B4 ,0x57D3 //CJK UNIFIED IDEOGRAPH - ,0x88B5 ,0x57D6 //CJK UNIFIED IDEOGRAPH - ,0x88B6 ,0x57D7 //CJK UNIFIED IDEOGRAPH - ,0x88B7 ,0x57DB //CJK UNIFIED IDEOGRAPH - ,0x88B8 ,0x57DC //CJK UNIFIED IDEOGRAPH - ,0x88B9 ,0x57DE //CJK UNIFIED IDEOGRAPH - ,0x88BA ,0x57E1 //CJK UNIFIED IDEOGRAPH - ,0x88BB ,0x57E2 //CJK UNIFIED IDEOGRAPH - ,0x88BC ,0x57E3 //CJK UNIFIED IDEOGRAPH - ,0x88BD ,0x57E5 //CJK UNIFIED IDEOGRAPH - ,0x88BE ,0x57E6 //CJK UNIFIED IDEOGRAPH - ,0x88BF ,0x57E7 //CJK UNIFIED IDEOGRAPH - ,0x88C0 ,0x57E8 //CJK UNIFIED IDEOGRAPH - ,0x88C1 ,0x57E9 //CJK UNIFIED IDEOGRAPH - ,0x88C2 ,0x57EA //CJK UNIFIED IDEOGRAPH - ,0x88C3 ,0x57EB //CJK UNIFIED IDEOGRAPH - ,0x88C4 ,0x57EC //CJK UNIFIED IDEOGRAPH - ,0x88C5 ,0x57EE //CJK UNIFIED IDEOGRAPH - ,0x88C6 ,0x57F0 //CJK UNIFIED IDEOGRAPH - ,0x88C7 ,0x57F1 //CJK UNIFIED IDEOGRAPH - ,0x88C8 ,0x57F2 //CJK UNIFIED IDEOGRAPH - ,0x88C9 ,0x57F3 //CJK UNIFIED IDEOGRAPH - ,0x88CA ,0x57F5 //CJK UNIFIED IDEOGRAPH - ,0x88CB ,0x57F6 //CJK UNIFIED IDEOGRAPH - ,0x88CC ,0x57F7 //CJK UNIFIED IDEOGRAPH - ,0x88CD ,0x57FB //CJK UNIFIED IDEOGRAPH - ,0x88CE ,0x57FC //CJK UNIFIED IDEOGRAPH - ,0x88CF ,0x57FE //CJK UNIFIED IDEOGRAPH - ,0x88D0 ,0x57FF //CJK UNIFIED IDEOGRAPH - ,0x88D1 ,0x5801 //CJK UNIFIED IDEOGRAPH - ,0x88D2 ,0x5803 //CJK UNIFIED IDEOGRAPH - ,0x88D3 ,0x5804 //CJK UNIFIED IDEOGRAPH - ,0x88D4 ,0x5805 //CJK UNIFIED IDEOGRAPH - ,0x88D5 ,0x5808 //CJK UNIFIED IDEOGRAPH - ,0x88D6 ,0x5809 //CJK UNIFIED IDEOGRAPH - ,0x88D7 ,0x580A //CJK UNIFIED IDEOGRAPH - ,0x88D8 ,0x580C //CJK UNIFIED IDEOGRAPH - ,0x88D9 ,0x580E //CJK UNIFIED IDEOGRAPH - ,0x88DA ,0x580F //CJK UNIFIED IDEOGRAPH - ,0x88DB ,0x5810 //CJK UNIFIED IDEOGRAPH - ,0x88DC ,0x5812 //CJK UNIFIED IDEOGRAPH - ,0x88DD ,0x5813 //CJK UNIFIED IDEOGRAPH - ,0x88DE ,0x5814 //CJK UNIFIED IDEOGRAPH - ,0x88DF ,0x5816 //CJK UNIFIED IDEOGRAPH - ,0x88E0 ,0x5817 //CJK UNIFIED IDEOGRAPH - ,0x88E1 ,0x5818 //CJK UNIFIED IDEOGRAPH - ,0x88E2 ,0x581A //CJK UNIFIED IDEOGRAPH - ,0x88E3 ,0x581B //CJK UNIFIED IDEOGRAPH - ,0x88E4 ,0x581C //CJK UNIFIED IDEOGRAPH - ,0x88E5 ,0x581D //CJK UNIFIED IDEOGRAPH - ,0x88E6 ,0x581F //CJK UNIFIED IDEOGRAPH - ,0x88E7 ,0x5822 //CJK UNIFIED IDEOGRAPH - ,0x88E8 ,0x5823 //CJK UNIFIED IDEOGRAPH - ,0x88E9 ,0x5825 //CJK UNIFIED IDEOGRAPH - ,0x88EA ,0x5826 //CJK UNIFIED IDEOGRAPH - ,0x88EB ,0x5827 //CJK UNIFIED IDEOGRAPH - ,0x88EC ,0x5828 //CJK UNIFIED IDEOGRAPH - ,0x88ED ,0x5829 //CJK UNIFIED IDEOGRAPH - ,0x88EE ,0x582B //CJK UNIFIED IDEOGRAPH - ,0x88EF ,0x582C //CJK UNIFIED IDEOGRAPH - ,0x88F0 ,0x582D //CJK UNIFIED IDEOGRAPH - ,0x88F1 ,0x582E //CJK UNIFIED IDEOGRAPH - ,0x88F2 ,0x582F //CJK UNIFIED IDEOGRAPH - ,0x88F3 ,0x5831 //CJK UNIFIED IDEOGRAPH - ,0x88F4 ,0x5832 //CJK UNIFIED IDEOGRAPH - ,0x88F5 ,0x5833 //CJK UNIFIED IDEOGRAPH - ,0x88F6 ,0x5834 //CJK UNIFIED IDEOGRAPH - ,0x88F7 ,0x5836 //CJK UNIFIED IDEOGRAPH - ,0x88F8 ,0x5837 //CJK UNIFIED IDEOGRAPH - ,0x88F9 ,0x5838 //CJK UNIFIED IDEOGRAPH - ,0x88FA ,0x5839 //CJK UNIFIED IDEOGRAPH - ,0x88FB ,0x583A //CJK UNIFIED IDEOGRAPH - ,0x88FC ,0x583B //CJK UNIFIED IDEOGRAPH - ,0x88FD ,0x583C //CJK UNIFIED IDEOGRAPH - ,0x88FE ,0x583D //CJK UNIFIED IDEOGRAPH - ,0x8940 ,0x583E //CJK UNIFIED IDEOGRAPH - ,0x8941 ,0x583F //CJK UNIFIED IDEOGRAPH - ,0x8942 ,0x5840 //CJK UNIFIED IDEOGRAPH - ,0x8943 ,0x5841 //CJK UNIFIED IDEOGRAPH - ,0x8944 ,0x5842 //CJK UNIFIED IDEOGRAPH - ,0x8945 ,0x5843 //CJK UNIFIED IDEOGRAPH - ,0x8946 ,0x5845 //CJK UNIFIED IDEOGRAPH - ,0x8947 ,0x5846 //CJK UNIFIED IDEOGRAPH - ,0x8948 ,0x5847 //CJK UNIFIED IDEOGRAPH - ,0x8949 ,0x5848 //CJK UNIFIED IDEOGRAPH - ,0x894A ,0x5849 //CJK UNIFIED IDEOGRAPH - ,0x894B ,0x584A //CJK UNIFIED IDEOGRAPH - ,0x894C ,0x584B //CJK UNIFIED IDEOGRAPH - ,0x894D ,0x584E //CJK UNIFIED IDEOGRAPH - ,0x894E ,0x584F //CJK UNIFIED IDEOGRAPH - ,0x894F ,0x5850 //CJK UNIFIED IDEOGRAPH - ,0x8950 ,0x5852 //CJK UNIFIED IDEOGRAPH - ,0x8951 ,0x5853 //CJK UNIFIED IDEOGRAPH - ,0x8952 ,0x5855 //CJK UNIFIED IDEOGRAPH - ,0x8953 ,0x5856 //CJK UNIFIED IDEOGRAPH - ,0x8954 ,0x5857 //CJK UNIFIED IDEOGRAPH - ,0x8955 ,0x5859 //CJK UNIFIED IDEOGRAPH - ,0x8956 ,0x585A //CJK UNIFIED IDEOGRAPH - ,0x8957 ,0x585B //CJK UNIFIED IDEOGRAPH - ,0x8958 ,0x585C //CJK UNIFIED IDEOGRAPH - ,0x8959 ,0x585D //CJK UNIFIED IDEOGRAPH - ,0x895A ,0x585F //CJK UNIFIED IDEOGRAPH - ,0x895B ,0x5860 //CJK UNIFIED IDEOGRAPH - ,0x895C ,0x5861 //CJK UNIFIED IDEOGRAPH - ,0x895D ,0x5862 //CJK UNIFIED IDEOGRAPH - ,0x895E ,0x5863 //CJK UNIFIED IDEOGRAPH - ,0x895F ,0x5864 //CJK UNIFIED IDEOGRAPH - ,0x8960 ,0x5866 //CJK UNIFIED IDEOGRAPH - ,0x8961 ,0x5867 //CJK UNIFIED IDEOGRAPH - ,0x8962 ,0x5868 //CJK UNIFIED IDEOGRAPH - ,0x8963 ,0x5869 //CJK UNIFIED IDEOGRAPH - ,0x8964 ,0x586A //CJK UNIFIED IDEOGRAPH - ,0x8965 ,0x586D //CJK UNIFIED IDEOGRAPH - ,0x8966 ,0x586E //CJK UNIFIED IDEOGRAPH - ,0x8967 ,0x586F //CJK UNIFIED IDEOGRAPH - ,0x8968 ,0x5870 //CJK UNIFIED IDEOGRAPH - ,0x8969 ,0x5871 //CJK UNIFIED IDEOGRAPH - ,0x896A ,0x5872 //CJK UNIFIED IDEOGRAPH - ,0x896B ,0x5873 //CJK UNIFIED IDEOGRAPH - ,0x896C ,0x5874 //CJK UNIFIED IDEOGRAPH - ,0x896D ,0x5875 //CJK UNIFIED IDEOGRAPH - ,0x896E ,0x5876 //CJK UNIFIED IDEOGRAPH - ,0x896F ,0x5877 //CJK UNIFIED IDEOGRAPH - ,0x8970 ,0x5878 //CJK UNIFIED IDEOGRAPH - ,0x8971 ,0x5879 //CJK UNIFIED IDEOGRAPH - ,0x8972 ,0x587A //CJK UNIFIED IDEOGRAPH - ,0x8973 ,0x587B //CJK UNIFIED IDEOGRAPH - ,0x8974 ,0x587C //CJK UNIFIED IDEOGRAPH - ,0x8975 ,0x587D //CJK UNIFIED IDEOGRAPH - ,0x8976 ,0x587F //CJK UNIFIED IDEOGRAPH - ,0x8977 ,0x5882 //CJK UNIFIED IDEOGRAPH - ,0x8978 ,0x5884 //CJK UNIFIED IDEOGRAPH - ,0x8979 ,0x5886 //CJK UNIFIED IDEOGRAPH - ,0x897A ,0x5887 //CJK UNIFIED IDEOGRAPH - ,0x897B ,0x5888 //CJK UNIFIED IDEOGRAPH - ,0x897C ,0x588A //CJK UNIFIED IDEOGRAPH - ,0x897D ,0x588B //CJK UNIFIED IDEOGRAPH - ,0x897E ,0x588C //CJK UNIFIED IDEOGRAPH - ,0x8980 ,0x588D //CJK UNIFIED IDEOGRAPH - ,0x8981 ,0x588E //CJK UNIFIED IDEOGRAPH - ,0x8982 ,0x588F //CJK UNIFIED IDEOGRAPH - ,0x8983 ,0x5890 //CJK UNIFIED IDEOGRAPH - ,0x8984 ,0x5891 //CJK UNIFIED IDEOGRAPH - ,0x8985 ,0x5894 //CJK UNIFIED IDEOGRAPH - ,0x8986 ,0x5895 //CJK UNIFIED IDEOGRAPH - ,0x8987 ,0x5896 //CJK UNIFIED IDEOGRAPH - ,0x8988 ,0x5897 //CJK UNIFIED IDEOGRAPH - ,0x8989 ,0x5898 //CJK UNIFIED IDEOGRAPH - ,0x898A ,0x589B //CJK UNIFIED IDEOGRAPH - ,0x898B ,0x589C //CJK UNIFIED IDEOGRAPH - ,0x898C ,0x589D //CJK UNIFIED IDEOGRAPH - ,0x898D ,0x58A0 //CJK UNIFIED IDEOGRAPH - ,0x898E ,0x58A1 //CJK UNIFIED IDEOGRAPH - ,0x898F ,0x58A2 //CJK UNIFIED IDEOGRAPH - ,0x8990 ,0x58A3 //CJK UNIFIED IDEOGRAPH - ,0x8991 ,0x58A4 //CJK UNIFIED IDEOGRAPH - ,0x8992 ,0x58A5 //CJK UNIFIED IDEOGRAPH - ,0x8993 ,0x58A6 //CJK UNIFIED IDEOGRAPH - ,0x8994 ,0x58A7 //CJK UNIFIED IDEOGRAPH - ,0x8995 ,0x58AA //CJK UNIFIED IDEOGRAPH - ,0x8996 ,0x58AB //CJK UNIFIED IDEOGRAPH - ,0x8997 ,0x58AC //CJK UNIFIED IDEOGRAPH - ,0x8998 ,0x58AD //CJK UNIFIED IDEOGRAPH - ,0x8999 ,0x58AE //CJK UNIFIED IDEOGRAPH - ,0x899A ,0x58AF //CJK UNIFIED IDEOGRAPH - ,0x899B ,0x58B0 //CJK UNIFIED IDEOGRAPH - ,0x899C ,0x58B1 //CJK UNIFIED IDEOGRAPH - ,0x899D ,0x58B2 //CJK UNIFIED IDEOGRAPH - ,0x899E ,0x58B3 //CJK UNIFIED IDEOGRAPH - ,0x899F ,0x58B4 //CJK UNIFIED IDEOGRAPH - ,0x89A0 ,0x58B5 //CJK UNIFIED IDEOGRAPH - ,0x89A1 ,0x58B6 //CJK UNIFIED IDEOGRAPH - ,0x89A2 ,0x58B7 //CJK UNIFIED IDEOGRAPH - ,0x89A3 ,0x58B8 //CJK UNIFIED IDEOGRAPH - ,0x89A4 ,0x58B9 //CJK UNIFIED IDEOGRAPH - ,0x89A5 ,0x58BA //CJK UNIFIED IDEOGRAPH - ,0x89A6 ,0x58BB //CJK UNIFIED IDEOGRAPH - ,0x89A7 ,0x58BD //CJK UNIFIED IDEOGRAPH - ,0x89A8 ,0x58BE //CJK UNIFIED IDEOGRAPH - ,0x89A9 ,0x58BF //CJK UNIFIED IDEOGRAPH - ,0x89AA ,0x58C0 //CJK UNIFIED IDEOGRAPH - ,0x89AB ,0x58C2 //CJK UNIFIED IDEOGRAPH - ,0x89AC ,0x58C3 //CJK UNIFIED IDEOGRAPH - ,0x89AD ,0x58C4 //CJK UNIFIED IDEOGRAPH - ,0x89AE ,0x58C6 //CJK UNIFIED IDEOGRAPH - ,0x89AF ,0x58C7 //CJK UNIFIED IDEOGRAPH - ,0x89B0 ,0x58C8 //CJK UNIFIED IDEOGRAPH - ,0x89B1 ,0x58C9 //CJK UNIFIED IDEOGRAPH - ,0x89B2 ,0x58CA //CJK UNIFIED IDEOGRAPH - ,0x89B3 ,0x58CB //CJK UNIFIED IDEOGRAPH - ,0x89B4 ,0x58CC //CJK UNIFIED IDEOGRAPH - ,0x89B5 ,0x58CD //CJK UNIFIED IDEOGRAPH - ,0x89B6 ,0x58CE //CJK UNIFIED IDEOGRAPH - ,0x89B7 ,0x58CF //CJK UNIFIED IDEOGRAPH - ,0x89B8 ,0x58D0 //CJK UNIFIED IDEOGRAPH - ,0x89B9 ,0x58D2 //CJK UNIFIED IDEOGRAPH - ,0x89BA ,0x58D3 //CJK UNIFIED IDEOGRAPH - ,0x89BB ,0x58D4 //CJK UNIFIED IDEOGRAPH - ,0x89BC ,0x58D6 //CJK UNIFIED IDEOGRAPH - ,0x89BD ,0x58D7 //CJK UNIFIED IDEOGRAPH - ,0x89BE ,0x58D8 //CJK UNIFIED IDEOGRAPH - ,0x89BF ,0x58D9 //CJK UNIFIED IDEOGRAPH - ,0x89C0 ,0x58DA //CJK UNIFIED IDEOGRAPH - ,0x89C1 ,0x58DB //CJK UNIFIED IDEOGRAPH - ,0x89C2 ,0x58DC //CJK UNIFIED IDEOGRAPH - ,0x89C3 ,0x58DD //CJK UNIFIED IDEOGRAPH - ,0x89C4 ,0x58DE //CJK UNIFIED IDEOGRAPH - ,0x89C5 ,0x58DF //CJK UNIFIED IDEOGRAPH - ,0x89C6 ,0x58E0 //CJK UNIFIED IDEOGRAPH - ,0x89C7 ,0x58E1 //CJK UNIFIED IDEOGRAPH - ,0x89C8 ,0x58E2 //CJK UNIFIED IDEOGRAPH - ,0x89C9 ,0x58E3 //CJK UNIFIED IDEOGRAPH - ,0x89CA ,0x58E5 //CJK UNIFIED IDEOGRAPH - ,0x89CB ,0x58E6 //CJK UNIFIED IDEOGRAPH - ,0x89CC ,0x58E7 //CJK UNIFIED IDEOGRAPH - ,0x89CD ,0x58E8 //CJK UNIFIED IDEOGRAPH - ,0x89CE ,0x58E9 //CJK UNIFIED IDEOGRAPH - ,0x89CF ,0x58EA //CJK UNIFIED IDEOGRAPH - ,0x89D0 ,0x58ED //CJK UNIFIED IDEOGRAPH - ,0x89D1 ,0x58EF //CJK UNIFIED IDEOGRAPH - ,0x89D2 ,0x58F1 //CJK UNIFIED IDEOGRAPH - ,0x89D3 ,0x58F2 //CJK UNIFIED IDEOGRAPH - ,0x89D4 ,0x58F4 //CJK UNIFIED IDEOGRAPH - ,0x89D5 ,0x58F5 //CJK UNIFIED IDEOGRAPH - ,0x89D6 ,0x58F7 //CJK UNIFIED IDEOGRAPH - ,0x89D7 ,0x58F8 //CJK UNIFIED IDEOGRAPH - ,0x89D8 ,0x58FA //CJK UNIFIED IDEOGRAPH - ,0x89D9 ,0x58FB //CJK UNIFIED IDEOGRAPH - ,0x89DA ,0x58FC //CJK UNIFIED IDEOGRAPH - ,0x89DB ,0x58FD //CJK UNIFIED IDEOGRAPH - ,0x89DC ,0x58FE //CJK UNIFIED IDEOGRAPH - ,0x89DD ,0x58FF //CJK UNIFIED IDEOGRAPH - ,0x89DE ,0x5900 //CJK UNIFIED IDEOGRAPH - ,0x89DF ,0x5901 //CJK UNIFIED IDEOGRAPH - ,0x89E0 ,0x5903 //CJK UNIFIED IDEOGRAPH - ,0x89E1 ,0x5905 //CJK UNIFIED IDEOGRAPH - ,0x89E2 ,0x5906 //CJK UNIFIED IDEOGRAPH - ,0x89E3 ,0x5908 //CJK UNIFIED IDEOGRAPH - ,0x89E4 ,0x5909 //CJK UNIFIED IDEOGRAPH - ,0x89E5 ,0x590A //CJK UNIFIED IDEOGRAPH - ,0x89E6 ,0x590B //CJK UNIFIED IDEOGRAPH - ,0x89E7 ,0x590C //CJK UNIFIED IDEOGRAPH - ,0x89E8 ,0x590E //CJK UNIFIED IDEOGRAPH - ,0x89E9 ,0x5910 //CJK UNIFIED IDEOGRAPH - ,0x89EA ,0x5911 //CJK UNIFIED IDEOGRAPH - ,0x89EB ,0x5912 //CJK UNIFIED IDEOGRAPH - ,0x89EC ,0x5913 //CJK UNIFIED IDEOGRAPH - ,0x89ED ,0x5917 //CJK UNIFIED IDEOGRAPH - ,0x89EE ,0x5918 //CJK UNIFIED IDEOGRAPH - ,0x89EF ,0x591B //CJK UNIFIED IDEOGRAPH - ,0x89F0 ,0x591D //CJK UNIFIED IDEOGRAPH - ,0x89F1 ,0x591E //CJK UNIFIED IDEOGRAPH - ,0x89F2 ,0x5920 //CJK UNIFIED IDEOGRAPH - ,0x89F3 ,0x5921 //CJK UNIFIED IDEOGRAPH - ,0x89F4 ,0x5922 //CJK UNIFIED IDEOGRAPH - ,0x89F5 ,0x5923 //CJK UNIFIED IDEOGRAPH - ,0x89F6 ,0x5926 //CJK UNIFIED IDEOGRAPH - ,0x89F7 ,0x5928 //CJK UNIFIED IDEOGRAPH - ,0x89F8 ,0x592C //CJK UNIFIED IDEOGRAPH - ,0x89F9 ,0x5930 //CJK UNIFIED IDEOGRAPH - ,0x89FA ,0x5932 //CJK UNIFIED IDEOGRAPH - ,0x89FB ,0x5933 //CJK UNIFIED IDEOGRAPH - ,0x89FC ,0x5935 //CJK UNIFIED IDEOGRAPH - ,0x89FD ,0x5936 //CJK UNIFIED IDEOGRAPH - ,0x89FE ,0x593B //CJK UNIFIED IDEOGRAPH - ,0x8A40 ,0x593D //CJK UNIFIED IDEOGRAPH - ,0x8A41 ,0x593E //CJK UNIFIED IDEOGRAPH - ,0x8A42 ,0x593F //CJK UNIFIED IDEOGRAPH - ,0x8A43 ,0x5940 //CJK UNIFIED IDEOGRAPH - ,0x8A44 ,0x5943 //CJK UNIFIED IDEOGRAPH - ,0x8A45 ,0x5945 //CJK UNIFIED IDEOGRAPH - ,0x8A46 ,0x5946 //CJK UNIFIED IDEOGRAPH - ,0x8A47 ,0x594A //CJK UNIFIED IDEOGRAPH - ,0x8A48 ,0x594C //CJK UNIFIED IDEOGRAPH - ,0x8A49 ,0x594D //CJK UNIFIED IDEOGRAPH - ,0x8A4A ,0x5950 //CJK UNIFIED IDEOGRAPH - ,0x8A4B ,0x5952 //CJK UNIFIED IDEOGRAPH - ,0x8A4C ,0x5953 //CJK UNIFIED IDEOGRAPH - ,0x8A4D ,0x5959 //CJK UNIFIED IDEOGRAPH - ,0x8A4E ,0x595B //CJK UNIFIED IDEOGRAPH - ,0x8A4F ,0x595C //CJK UNIFIED IDEOGRAPH - ,0x8A50 ,0x595D //CJK UNIFIED IDEOGRAPH - ,0x8A51 ,0x595E //CJK UNIFIED IDEOGRAPH - ,0x8A52 ,0x595F //CJK UNIFIED IDEOGRAPH - ,0x8A53 ,0x5961 //CJK UNIFIED IDEOGRAPH - ,0x8A54 ,0x5963 //CJK UNIFIED IDEOGRAPH - ,0x8A55 ,0x5964 //CJK UNIFIED IDEOGRAPH - ,0x8A56 ,0x5966 //CJK UNIFIED IDEOGRAPH - ,0x8A57 ,0x5967 //CJK UNIFIED IDEOGRAPH - ,0x8A58 ,0x5968 //CJK UNIFIED IDEOGRAPH - ,0x8A59 ,0x5969 //CJK UNIFIED IDEOGRAPH - ,0x8A5A ,0x596A //CJK UNIFIED IDEOGRAPH - ,0x8A5B ,0x596B //CJK UNIFIED IDEOGRAPH - ,0x8A5C ,0x596C //CJK UNIFIED IDEOGRAPH - ,0x8A5D ,0x596D //CJK UNIFIED IDEOGRAPH - ,0x8A5E ,0x596E //CJK UNIFIED IDEOGRAPH - ,0x8A5F ,0x596F //CJK UNIFIED IDEOGRAPH - ,0x8A60 ,0x5970 //CJK UNIFIED IDEOGRAPH - ,0x8A61 ,0x5971 //CJK UNIFIED IDEOGRAPH - ,0x8A62 ,0x5972 //CJK UNIFIED IDEOGRAPH - ,0x8A63 ,0x5975 //CJK UNIFIED IDEOGRAPH - ,0x8A64 ,0x5977 //CJK UNIFIED IDEOGRAPH - ,0x8A65 ,0x597A //CJK UNIFIED IDEOGRAPH - ,0x8A66 ,0x597B //CJK UNIFIED IDEOGRAPH - ,0x8A67 ,0x597C //CJK UNIFIED IDEOGRAPH - ,0x8A68 ,0x597E //CJK UNIFIED IDEOGRAPH - ,0x8A69 ,0x597F //CJK UNIFIED IDEOGRAPH - ,0x8A6A ,0x5980 //CJK UNIFIED IDEOGRAPH - ,0x8A6B ,0x5985 //CJK UNIFIED IDEOGRAPH - ,0x8A6C ,0x5989 //CJK UNIFIED IDEOGRAPH - ,0x8A6D ,0x598B //CJK UNIFIED IDEOGRAPH - ,0x8A6E ,0x598C //CJK UNIFIED IDEOGRAPH - ,0x8A6F ,0x598E //CJK UNIFIED IDEOGRAPH - ,0x8A70 ,0x598F //CJK UNIFIED IDEOGRAPH - ,0x8A71 ,0x5990 //CJK UNIFIED IDEOGRAPH - ,0x8A72 ,0x5991 //CJK UNIFIED IDEOGRAPH - ,0x8A73 ,0x5994 //CJK UNIFIED IDEOGRAPH - ,0x8A74 ,0x5995 //CJK UNIFIED IDEOGRAPH - ,0x8A75 ,0x5998 //CJK UNIFIED IDEOGRAPH - ,0x8A76 ,0x599A //CJK UNIFIED IDEOGRAPH - ,0x8A77 ,0x599B //CJK UNIFIED IDEOGRAPH - ,0x8A78 ,0x599C //CJK UNIFIED IDEOGRAPH - ,0x8A79 ,0x599D //CJK UNIFIED IDEOGRAPH - ,0x8A7A ,0x599F //CJK UNIFIED IDEOGRAPH - ,0x8A7B ,0x59A0 //CJK UNIFIED IDEOGRAPH - ,0x8A7C ,0x59A1 //CJK UNIFIED IDEOGRAPH - ,0x8A7D ,0x59A2 //CJK UNIFIED IDEOGRAPH - ,0x8A7E ,0x59A6 //CJK UNIFIED IDEOGRAPH - ,0x8A80 ,0x59A7 //CJK UNIFIED IDEOGRAPH - ,0x8A81 ,0x59AC //CJK UNIFIED IDEOGRAPH - ,0x8A82 ,0x59AD //CJK UNIFIED IDEOGRAPH - ,0x8A83 ,0x59B0 //CJK UNIFIED IDEOGRAPH - ,0x8A84 ,0x59B1 //CJK UNIFIED IDEOGRAPH - ,0x8A85 ,0x59B3 //CJK UNIFIED IDEOGRAPH - ,0x8A86 ,0x59B4 //CJK UNIFIED IDEOGRAPH - ,0x8A87 ,0x59B5 //CJK UNIFIED IDEOGRAPH - ,0x8A88 ,0x59B6 //CJK UNIFIED IDEOGRAPH - ,0x8A89 ,0x59B7 //CJK UNIFIED IDEOGRAPH - ,0x8A8A ,0x59B8 //CJK UNIFIED IDEOGRAPH - ,0x8A8B ,0x59BA //CJK UNIFIED IDEOGRAPH - ,0x8A8C ,0x59BC //CJK UNIFIED IDEOGRAPH - ,0x8A8D ,0x59BD //CJK UNIFIED IDEOGRAPH - ,0x8A8E ,0x59BF //CJK UNIFIED IDEOGRAPH - ,0x8A8F ,0x59C0 //CJK UNIFIED IDEOGRAPH - ,0x8A90 ,0x59C1 //CJK UNIFIED IDEOGRAPH - ,0x8A91 ,0x59C2 //CJK UNIFIED IDEOGRAPH - ,0x8A92 ,0x59C3 //CJK UNIFIED IDEOGRAPH - ,0x8A93 ,0x59C4 //CJK UNIFIED IDEOGRAPH - ,0x8A94 ,0x59C5 //CJK UNIFIED IDEOGRAPH - ,0x8A95 ,0x59C7 //CJK UNIFIED IDEOGRAPH - ,0x8A96 ,0x59C8 //CJK UNIFIED IDEOGRAPH - ,0x8A97 ,0x59C9 //CJK UNIFIED IDEOGRAPH - ,0x8A98 ,0x59CC //CJK UNIFIED IDEOGRAPH - ,0x8A99 ,0x59CD //CJK UNIFIED IDEOGRAPH - ,0x8A9A ,0x59CE //CJK UNIFIED IDEOGRAPH - ,0x8A9B ,0x59CF //CJK UNIFIED IDEOGRAPH - ,0x8A9C ,0x59D5 //CJK UNIFIED IDEOGRAPH - ,0x8A9D ,0x59D6 //CJK UNIFIED IDEOGRAPH - ,0x8A9E ,0x59D9 //CJK UNIFIED IDEOGRAPH - ,0x8A9F ,0x59DB //CJK UNIFIED IDEOGRAPH - ,0x8AA0 ,0x59DE //CJK UNIFIED IDEOGRAPH - ,0x8AA1 ,0x59DF //CJK UNIFIED IDEOGRAPH - ,0x8AA2 ,0x59E0 //CJK UNIFIED IDEOGRAPH - ,0x8AA3 ,0x59E1 //CJK UNIFIED IDEOGRAPH - ,0x8AA4 ,0x59E2 //CJK UNIFIED IDEOGRAPH - ,0x8AA5 ,0x59E4 //CJK UNIFIED IDEOGRAPH - ,0x8AA6 ,0x59E6 //CJK UNIFIED IDEOGRAPH - ,0x8AA7 ,0x59E7 //CJK UNIFIED IDEOGRAPH - ,0x8AA8 ,0x59E9 //CJK UNIFIED IDEOGRAPH - ,0x8AA9 ,0x59EA //CJK UNIFIED IDEOGRAPH - ,0x8AAA ,0x59EB //CJK UNIFIED IDEOGRAPH - ,0x8AAB ,0x59ED //CJK UNIFIED IDEOGRAPH - ,0x8AAC ,0x59EE //CJK UNIFIED IDEOGRAPH - ,0x8AAD ,0x59EF //CJK UNIFIED IDEOGRAPH - ,0x8AAE ,0x59F0 //CJK UNIFIED IDEOGRAPH - ,0x8AAF ,0x59F1 //CJK UNIFIED IDEOGRAPH - ,0x8AB0 ,0x59F2 //CJK UNIFIED IDEOGRAPH - ,0x8AB1 ,0x59F3 //CJK UNIFIED IDEOGRAPH - ,0x8AB2 ,0x59F4 //CJK UNIFIED IDEOGRAPH - ,0x8AB3 ,0x59F5 //CJK UNIFIED IDEOGRAPH - ,0x8AB4 ,0x59F6 //CJK UNIFIED IDEOGRAPH - ,0x8AB5 ,0x59F7 //CJK UNIFIED IDEOGRAPH - ,0x8AB6 ,0x59F8 //CJK UNIFIED IDEOGRAPH - ,0x8AB7 ,0x59FA //CJK UNIFIED IDEOGRAPH - ,0x8AB8 ,0x59FC //CJK UNIFIED IDEOGRAPH - ,0x8AB9 ,0x59FD //CJK UNIFIED IDEOGRAPH - ,0x8ABA ,0x59FE //CJK UNIFIED IDEOGRAPH - ,0x8ABB ,0x5A00 //CJK UNIFIED IDEOGRAPH - ,0x8ABC ,0x5A02 //CJK UNIFIED IDEOGRAPH - ,0x8ABD ,0x5A0A //CJK UNIFIED IDEOGRAPH - ,0x8ABE ,0x5A0B //CJK UNIFIED IDEOGRAPH - ,0x8ABF ,0x5A0D //CJK UNIFIED IDEOGRAPH - ,0x8AC0 ,0x5A0E //CJK UNIFIED IDEOGRAPH - ,0x8AC1 ,0x5A0F //CJK UNIFIED IDEOGRAPH - ,0x8AC2 ,0x5A10 //CJK UNIFIED IDEOGRAPH - ,0x8AC3 ,0x5A12 //CJK UNIFIED IDEOGRAPH - ,0x8AC4 ,0x5A14 //CJK UNIFIED IDEOGRAPH - ,0x8AC5 ,0x5A15 //CJK UNIFIED IDEOGRAPH - ,0x8AC6 ,0x5A16 //CJK UNIFIED IDEOGRAPH - ,0x8AC7 ,0x5A17 //CJK UNIFIED IDEOGRAPH - ,0x8AC8 ,0x5A19 //CJK UNIFIED IDEOGRAPH - ,0x8AC9 ,0x5A1A //CJK UNIFIED IDEOGRAPH - ,0x8ACA ,0x5A1B //CJK UNIFIED IDEOGRAPH - ,0x8ACB ,0x5A1D //CJK UNIFIED IDEOGRAPH - ,0x8ACC ,0x5A1E //CJK UNIFIED IDEOGRAPH - ,0x8ACD ,0x5A21 //CJK UNIFIED IDEOGRAPH - ,0x8ACE ,0x5A22 //CJK UNIFIED IDEOGRAPH - ,0x8ACF ,0x5A24 //CJK UNIFIED IDEOGRAPH - ,0x8AD0 ,0x5A26 //CJK UNIFIED IDEOGRAPH - ,0x8AD1 ,0x5A27 //CJK UNIFIED IDEOGRAPH - ,0x8AD2 ,0x5A28 //CJK UNIFIED IDEOGRAPH - ,0x8AD3 ,0x5A2A //CJK UNIFIED IDEOGRAPH - ,0x8AD4 ,0x5A2B //CJK UNIFIED IDEOGRAPH - ,0x8AD5 ,0x5A2C //CJK UNIFIED IDEOGRAPH - ,0x8AD6 ,0x5A2D //CJK UNIFIED IDEOGRAPH - ,0x8AD7 ,0x5A2E //CJK UNIFIED IDEOGRAPH - ,0x8AD8 ,0x5A2F //CJK UNIFIED IDEOGRAPH - ,0x8AD9 ,0x5A30 //CJK UNIFIED IDEOGRAPH - ,0x8ADA ,0x5A33 //CJK UNIFIED IDEOGRAPH - ,0x8ADB ,0x5A35 //CJK UNIFIED IDEOGRAPH - ,0x8ADC ,0x5A37 //CJK UNIFIED IDEOGRAPH - ,0x8ADD ,0x5A38 //CJK UNIFIED IDEOGRAPH - ,0x8ADE ,0x5A39 //CJK UNIFIED IDEOGRAPH - ,0x8ADF ,0x5A3A //CJK UNIFIED IDEOGRAPH - ,0x8AE0 ,0x5A3B //CJK UNIFIED IDEOGRAPH - ,0x8AE1 ,0x5A3D //CJK UNIFIED IDEOGRAPH - ,0x8AE2 ,0x5A3E //CJK UNIFIED IDEOGRAPH - ,0x8AE3 ,0x5A3F //CJK UNIFIED IDEOGRAPH - ,0x8AE4 ,0x5A41 //CJK UNIFIED IDEOGRAPH - ,0x8AE5 ,0x5A42 //CJK UNIFIED IDEOGRAPH - ,0x8AE6 ,0x5A43 //CJK UNIFIED IDEOGRAPH - ,0x8AE7 ,0x5A44 //CJK UNIFIED IDEOGRAPH - ,0x8AE8 ,0x5A45 //CJK UNIFIED IDEOGRAPH - ,0x8AE9 ,0x5A47 //CJK UNIFIED IDEOGRAPH - ,0x8AEA ,0x5A48 //CJK UNIFIED IDEOGRAPH - ,0x8AEB ,0x5A4B //CJK UNIFIED IDEOGRAPH - ,0x8AEC ,0x5A4C //CJK UNIFIED IDEOGRAPH - ,0x8AED ,0x5A4D //CJK UNIFIED IDEOGRAPH - ,0x8AEE ,0x5A4E //CJK UNIFIED IDEOGRAPH - ,0x8AEF ,0x5A4F //CJK UNIFIED IDEOGRAPH - ,0x8AF0 ,0x5A50 //CJK UNIFIED IDEOGRAPH - ,0x8AF1 ,0x5A51 //CJK UNIFIED IDEOGRAPH - ,0x8AF2 ,0x5A52 //CJK UNIFIED IDEOGRAPH - ,0x8AF3 ,0x5A53 //CJK UNIFIED IDEOGRAPH - ,0x8AF4 ,0x5A54 //CJK UNIFIED IDEOGRAPH - ,0x8AF5 ,0x5A56 //CJK UNIFIED IDEOGRAPH - ,0x8AF6 ,0x5A57 //CJK UNIFIED IDEOGRAPH - ,0x8AF7 ,0x5A58 //CJK UNIFIED IDEOGRAPH - ,0x8AF8 ,0x5A59 //CJK UNIFIED IDEOGRAPH - ,0x8AF9 ,0x5A5B //CJK UNIFIED IDEOGRAPH - ,0x8AFA ,0x5A5C //CJK UNIFIED IDEOGRAPH - ,0x8AFB ,0x5A5D //CJK UNIFIED IDEOGRAPH - ,0x8AFC ,0x5A5E //CJK UNIFIED IDEOGRAPH - ,0x8AFD ,0x5A5F //CJK UNIFIED IDEOGRAPH - ,0x8AFE ,0x5A60 //CJK UNIFIED IDEOGRAPH - ,0x8B40 ,0x5A61 //CJK UNIFIED IDEOGRAPH - ,0x8B41 ,0x5A63 //CJK UNIFIED IDEOGRAPH - ,0x8B42 ,0x5A64 //CJK UNIFIED IDEOGRAPH - ,0x8B43 ,0x5A65 //CJK UNIFIED IDEOGRAPH - ,0x8B44 ,0x5A66 //CJK UNIFIED IDEOGRAPH - ,0x8B45 ,0x5A68 //CJK UNIFIED IDEOGRAPH - ,0x8B46 ,0x5A69 //CJK UNIFIED IDEOGRAPH - ,0x8B47 ,0x5A6B //CJK UNIFIED IDEOGRAPH - ,0x8B48 ,0x5A6C //CJK UNIFIED IDEOGRAPH - ,0x8B49 ,0x5A6D //CJK UNIFIED IDEOGRAPH - ,0x8B4A ,0x5A6E //CJK UNIFIED IDEOGRAPH - ,0x8B4B ,0x5A6F //CJK UNIFIED IDEOGRAPH - ,0x8B4C ,0x5A70 //CJK UNIFIED IDEOGRAPH - ,0x8B4D ,0x5A71 //CJK UNIFIED IDEOGRAPH - ,0x8B4E ,0x5A72 //CJK UNIFIED IDEOGRAPH - ,0x8B4F ,0x5A73 //CJK UNIFIED IDEOGRAPH - ,0x8B50 ,0x5A78 //CJK UNIFIED IDEOGRAPH - ,0x8B51 ,0x5A79 //CJK UNIFIED IDEOGRAPH - ,0x8B52 ,0x5A7B //CJK UNIFIED IDEOGRAPH - ,0x8B53 ,0x5A7C //CJK UNIFIED IDEOGRAPH - ,0x8B54 ,0x5A7D //CJK UNIFIED IDEOGRAPH - ,0x8B55 ,0x5A7E //CJK UNIFIED IDEOGRAPH - ,0x8B56 ,0x5A80 //CJK UNIFIED IDEOGRAPH - ,0x8B57 ,0x5A81 //CJK UNIFIED IDEOGRAPH - ,0x8B58 ,0x5A82 //CJK UNIFIED IDEOGRAPH - ,0x8B59 ,0x5A83 //CJK UNIFIED IDEOGRAPH - ,0x8B5A ,0x5A84 //CJK UNIFIED IDEOGRAPH - ,0x8B5B ,0x5A85 //CJK UNIFIED IDEOGRAPH - ,0x8B5C ,0x5A86 //CJK UNIFIED IDEOGRAPH - ,0x8B5D ,0x5A87 //CJK UNIFIED IDEOGRAPH - ,0x8B5E ,0x5A88 //CJK UNIFIED IDEOGRAPH - ,0x8B5F ,0x5A89 //CJK UNIFIED IDEOGRAPH - ,0x8B60 ,0x5A8A //CJK UNIFIED IDEOGRAPH - ,0x8B61 ,0x5A8B //CJK UNIFIED IDEOGRAPH - ,0x8B62 ,0x5A8C //CJK UNIFIED IDEOGRAPH - ,0x8B63 ,0x5A8D //CJK UNIFIED IDEOGRAPH - ,0x8B64 ,0x5A8E //CJK UNIFIED IDEOGRAPH - ,0x8B65 ,0x5A8F //CJK UNIFIED IDEOGRAPH - ,0x8B66 ,0x5A90 //CJK UNIFIED IDEOGRAPH - ,0x8B67 ,0x5A91 //CJK UNIFIED IDEOGRAPH - ,0x8B68 ,0x5A93 //CJK UNIFIED IDEOGRAPH - ,0x8B69 ,0x5A94 //CJK UNIFIED IDEOGRAPH - ,0x8B6A ,0x5A95 //CJK UNIFIED IDEOGRAPH - ,0x8B6B ,0x5A96 //CJK UNIFIED IDEOGRAPH - ,0x8B6C ,0x5A97 //CJK UNIFIED IDEOGRAPH - ,0x8B6D ,0x5A98 //CJK UNIFIED IDEOGRAPH - ,0x8B6E ,0x5A99 //CJK UNIFIED IDEOGRAPH - ,0x8B6F ,0x5A9C //CJK UNIFIED IDEOGRAPH - ,0x8B70 ,0x5A9D //CJK UNIFIED IDEOGRAPH - ,0x8B71 ,0x5A9E //CJK UNIFIED IDEOGRAPH - ,0x8B72 ,0x5A9F //CJK UNIFIED IDEOGRAPH - ,0x8B73 ,0x5AA0 //CJK UNIFIED IDEOGRAPH - ,0x8B74 ,0x5AA1 //CJK UNIFIED IDEOGRAPH - ,0x8B75 ,0x5AA2 //CJK UNIFIED IDEOGRAPH - ,0x8B76 ,0x5AA3 //CJK UNIFIED IDEOGRAPH - ,0x8B77 ,0x5AA4 //CJK UNIFIED IDEOGRAPH - ,0x8B78 ,0x5AA5 //CJK UNIFIED IDEOGRAPH - ,0x8B79 ,0x5AA6 //CJK UNIFIED IDEOGRAPH - ,0x8B7A ,0x5AA7 //CJK UNIFIED IDEOGRAPH - ,0x8B7B ,0x5AA8 //CJK UNIFIED IDEOGRAPH - ,0x8B7C ,0x5AA9 //CJK UNIFIED IDEOGRAPH - ,0x8B7D ,0x5AAB //CJK UNIFIED IDEOGRAPH - ,0x8B7E ,0x5AAC //CJK UNIFIED IDEOGRAPH - ,0x8B80 ,0x5AAD //CJK UNIFIED IDEOGRAPH - ,0x8B81 ,0x5AAE //CJK UNIFIED IDEOGRAPH - ,0x8B82 ,0x5AAF //CJK UNIFIED IDEOGRAPH - ,0x8B83 ,0x5AB0 //CJK UNIFIED IDEOGRAPH - ,0x8B84 ,0x5AB1 //CJK UNIFIED IDEOGRAPH - ,0x8B85 ,0x5AB4 //CJK UNIFIED IDEOGRAPH - ,0x8B86 ,0x5AB6 //CJK UNIFIED IDEOGRAPH - ,0x8B87 ,0x5AB7 //CJK UNIFIED IDEOGRAPH - ,0x8B88 ,0x5AB9 //CJK UNIFIED IDEOGRAPH - ,0x8B89 ,0x5ABA //CJK UNIFIED IDEOGRAPH - ,0x8B8A ,0x5ABB //CJK UNIFIED IDEOGRAPH - ,0x8B8B ,0x5ABC //CJK UNIFIED IDEOGRAPH - ,0x8B8C ,0x5ABD //CJK UNIFIED IDEOGRAPH - ,0x8B8D ,0x5ABF //CJK UNIFIED IDEOGRAPH - ,0x8B8E ,0x5AC0 //CJK UNIFIED IDEOGRAPH - ,0x8B8F ,0x5AC3 //CJK UNIFIED IDEOGRAPH - ,0x8B90 ,0x5AC4 //CJK UNIFIED IDEOGRAPH - ,0x8B91 ,0x5AC5 //CJK UNIFIED IDEOGRAPH - ,0x8B92 ,0x5AC6 //CJK UNIFIED IDEOGRAPH - ,0x8B93 ,0x5AC7 //CJK UNIFIED IDEOGRAPH - ,0x8B94 ,0x5AC8 //CJK UNIFIED IDEOGRAPH - ,0x8B95 ,0x5ACA //CJK UNIFIED IDEOGRAPH - ,0x8B96 ,0x5ACB //CJK UNIFIED IDEOGRAPH - ,0x8B97 ,0x5ACD //CJK UNIFIED IDEOGRAPH - ,0x8B98 ,0x5ACE //CJK UNIFIED IDEOGRAPH - ,0x8B99 ,0x5ACF //CJK UNIFIED IDEOGRAPH - ,0x8B9A ,0x5AD0 //CJK UNIFIED IDEOGRAPH - ,0x8B9B ,0x5AD1 //CJK UNIFIED IDEOGRAPH - ,0x8B9C ,0x5AD3 //CJK UNIFIED IDEOGRAPH - ,0x8B9D ,0x5AD5 //CJK UNIFIED IDEOGRAPH - ,0x8B9E ,0x5AD7 //CJK UNIFIED IDEOGRAPH - ,0x8B9F ,0x5AD9 //CJK UNIFIED IDEOGRAPH - ,0x8BA0 ,0x5ADA //CJK UNIFIED IDEOGRAPH - ,0x8BA1 ,0x5ADB //CJK UNIFIED IDEOGRAPH - ,0x8BA2 ,0x5ADD //CJK UNIFIED IDEOGRAPH - ,0x8BA3 ,0x5ADE //CJK UNIFIED IDEOGRAPH - ,0x8BA4 ,0x5ADF //CJK UNIFIED IDEOGRAPH - ,0x8BA5 ,0x5AE2 //CJK UNIFIED IDEOGRAPH - ,0x8BA6 ,0x5AE4 //CJK UNIFIED IDEOGRAPH - ,0x8BA7 ,0x5AE5 //CJK UNIFIED IDEOGRAPH - ,0x8BA8 ,0x5AE7 //CJK UNIFIED IDEOGRAPH - ,0x8BA9 ,0x5AE8 //CJK UNIFIED IDEOGRAPH - ,0x8BAA ,0x5AEA //CJK UNIFIED IDEOGRAPH - ,0x8BAB ,0x5AEC //CJK UNIFIED IDEOGRAPH - ,0x8BAC ,0x5AED //CJK UNIFIED IDEOGRAPH - ,0x8BAD ,0x5AEE //CJK UNIFIED IDEOGRAPH - ,0x8BAE ,0x5AEF //CJK UNIFIED IDEOGRAPH - ,0x8BAF ,0x5AF0 //CJK UNIFIED IDEOGRAPH - ,0x8BB0 ,0x5AF2 //CJK UNIFIED IDEOGRAPH - ,0x8BB1 ,0x5AF3 //CJK UNIFIED IDEOGRAPH - ,0x8BB2 ,0x5AF4 //CJK UNIFIED IDEOGRAPH - ,0x8BB3 ,0x5AF5 //CJK UNIFIED IDEOGRAPH - ,0x8BB4 ,0x5AF6 //CJK UNIFIED IDEOGRAPH - ,0x8BB5 ,0x5AF7 //CJK UNIFIED IDEOGRAPH - ,0x8BB6 ,0x5AF8 //CJK UNIFIED IDEOGRAPH - ,0x8BB7 ,0x5AF9 //CJK UNIFIED IDEOGRAPH - ,0x8BB8 ,0x5AFA //CJK UNIFIED IDEOGRAPH - ,0x8BB9 ,0x5AFB //CJK UNIFIED IDEOGRAPH - ,0x8BBA ,0x5AFC //CJK UNIFIED IDEOGRAPH - ,0x8BBB ,0x5AFD //CJK UNIFIED IDEOGRAPH - ,0x8BBC ,0x5AFE //CJK UNIFIED IDEOGRAPH - ,0x8BBD ,0x5AFF //CJK UNIFIED IDEOGRAPH - ,0x8BBE ,0x5B00 //CJK UNIFIED IDEOGRAPH - ,0x8BBF ,0x5B01 //CJK UNIFIED IDEOGRAPH - ,0x8BC0 ,0x5B02 //CJK UNIFIED IDEOGRAPH - ,0x8BC1 ,0x5B03 //CJK UNIFIED IDEOGRAPH - ,0x8BC2 ,0x5B04 //CJK UNIFIED IDEOGRAPH - ,0x8BC3 ,0x5B05 //CJK UNIFIED IDEOGRAPH - ,0x8BC4 ,0x5B06 //CJK UNIFIED IDEOGRAPH - ,0x8BC5 ,0x5B07 //CJK UNIFIED IDEOGRAPH - ,0x8BC6 ,0x5B08 //CJK UNIFIED IDEOGRAPH - ,0x8BC7 ,0x5B0A //CJK UNIFIED IDEOGRAPH - ,0x8BC8 ,0x5B0B //CJK UNIFIED IDEOGRAPH - ,0x8BC9 ,0x5B0C //CJK UNIFIED IDEOGRAPH - ,0x8BCA ,0x5B0D //CJK UNIFIED IDEOGRAPH - ,0x8BCB ,0x5B0E //CJK UNIFIED IDEOGRAPH - ,0x8BCC ,0x5B0F //CJK UNIFIED IDEOGRAPH - ,0x8BCD ,0x5B10 //CJK UNIFIED IDEOGRAPH - ,0x8BCE ,0x5B11 //CJK UNIFIED IDEOGRAPH - ,0x8BCF ,0x5B12 //CJK UNIFIED IDEOGRAPH - ,0x8BD0 ,0x5B13 //CJK UNIFIED IDEOGRAPH - ,0x8BD1 ,0x5B14 //CJK UNIFIED IDEOGRAPH - ,0x8BD2 ,0x5B15 //CJK UNIFIED IDEOGRAPH - ,0x8BD3 ,0x5B18 //CJK UNIFIED IDEOGRAPH - ,0x8BD4 ,0x5B19 //CJK UNIFIED IDEOGRAPH - ,0x8BD5 ,0x5B1A //CJK UNIFIED IDEOGRAPH - ,0x8BD6 ,0x5B1B //CJK UNIFIED IDEOGRAPH - ,0x8BD7 ,0x5B1C //CJK UNIFIED IDEOGRAPH - ,0x8BD8 ,0x5B1D //CJK UNIFIED IDEOGRAPH - ,0x8BD9 ,0x5B1E //CJK UNIFIED IDEOGRAPH - ,0x8BDA ,0x5B1F //CJK UNIFIED IDEOGRAPH - ,0x8BDB ,0x5B20 //CJK UNIFIED IDEOGRAPH - ,0x8BDC ,0x5B21 //CJK UNIFIED IDEOGRAPH - ,0x8BDD ,0x5B22 //CJK UNIFIED IDEOGRAPH - ,0x8BDE ,0x5B23 //CJK UNIFIED IDEOGRAPH - ,0x8BDF ,0x5B24 //CJK UNIFIED IDEOGRAPH - ,0x8BE0 ,0x5B25 //CJK UNIFIED IDEOGRAPH - ,0x8BE1 ,0x5B26 //CJK UNIFIED IDEOGRAPH - ,0x8BE2 ,0x5B27 //CJK UNIFIED IDEOGRAPH - ,0x8BE3 ,0x5B28 //CJK UNIFIED IDEOGRAPH - ,0x8BE4 ,0x5B29 //CJK UNIFIED IDEOGRAPH - ,0x8BE5 ,0x5B2A //CJK UNIFIED IDEOGRAPH - ,0x8BE6 ,0x5B2B //CJK UNIFIED IDEOGRAPH - ,0x8BE7 ,0x5B2C //CJK UNIFIED IDEOGRAPH - ,0x8BE8 ,0x5B2D //CJK UNIFIED IDEOGRAPH - ,0x8BE9 ,0x5B2E //CJK UNIFIED IDEOGRAPH - ,0x8BEA ,0x5B2F //CJK UNIFIED IDEOGRAPH - ,0x8BEB ,0x5B30 //CJK UNIFIED IDEOGRAPH - ,0x8BEC ,0x5B31 //CJK UNIFIED IDEOGRAPH - ,0x8BED ,0x5B33 //CJK UNIFIED IDEOGRAPH - ,0x8BEE ,0x5B35 //CJK UNIFIED IDEOGRAPH - ,0x8BEF ,0x5B36 //CJK UNIFIED IDEOGRAPH - ,0x8BF0 ,0x5B38 //CJK UNIFIED IDEOGRAPH - ,0x8BF1 ,0x5B39 //CJK UNIFIED IDEOGRAPH - ,0x8BF2 ,0x5B3A //CJK UNIFIED IDEOGRAPH - ,0x8BF3 ,0x5B3B //CJK UNIFIED IDEOGRAPH - ,0x8BF4 ,0x5B3C //CJK UNIFIED IDEOGRAPH - ,0x8BF5 ,0x5B3D //CJK UNIFIED IDEOGRAPH - ,0x8BF6 ,0x5B3E //CJK UNIFIED IDEOGRAPH - ,0x8BF7 ,0x5B3F //CJK UNIFIED IDEOGRAPH - ,0x8BF8 ,0x5B41 //CJK UNIFIED IDEOGRAPH - ,0x8BF9 ,0x5B42 //CJK UNIFIED IDEOGRAPH - ,0x8BFA ,0x5B43 //CJK UNIFIED IDEOGRAPH - ,0x8BFB ,0x5B44 //CJK UNIFIED IDEOGRAPH - ,0x8BFC ,0x5B45 //CJK UNIFIED IDEOGRAPH - ,0x8BFD ,0x5B46 //CJK UNIFIED IDEOGRAPH - ,0x8BFE ,0x5B47 //CJK UNIFIED IDEOGRAPH - ,0x8C40 ,0x5B48 //CJK UNIFIED IDEOGRAPH - ,0x8C41 ,0x5B49 //CJK UNIFIED IDEOGRAPH - ,0x8C42 ,0x5B4A //CJK UNIFIED IDEOGRAPH - ,0x8C43 ,0x5B4B //CJK UNIFIED IDEOGRAPH - ,0x8C44 ,0x5B4C //CJK UNIFIED IDEOGRAPH - ,0x8C45 ,0x5B4D //CJK UNIFIED IDEOGRAPH - ,0x8C46 ,0x5B4E //CJK UNIFIED IDEOGRAPH - ,0x8C47 ,0x5B4F //CJK UNIFIED IDEOGRAPH - ,0x8C48 ,0x5B52 //CJK UNIFIED IDEOGRAPH - ,0x8C49 ,0x5B56 //CJK UNIFIED IDEOGRAPH - ,0x8C4A ,0x5B5E //CJK UNIFIED IDEOGRAPH - ,0x8C4B ,0x5B60 //CJK UNIFIED IDEOGRAPH - ,0x8C4C ,0x5B61 //CJK UNIFIED IDEOGRAPH - ,0x8C4D ,0x5B67 //CJK UNIFIED IDEOGRAPH - ,0x8C4E ,0x5B68 //CJK UNIFIED IDEOGRAPH - ,0x8C4F ,0x5B6B //CJK UNIFIED IDEOGRAPH - ,0x8C50 ,0x5B6D //CJK UNIFIED IDEOGRAPH - ,0x8C51 ,0x5B6E //CJK UNIFIED IDEOGRAPH - ,0x8C52 ,0x5B6F //CJK UNIFIED IDEOGRAPH - ,0x8C53 ,0x5B72 //CJK UNIFIED IDEOGRAPH - ,0x8C54 ,0x5B74 //CJK UNIFIED IDEOGRAPH - ,0x8C55 ,0x5B76 //CJK UNIFIED IDEOGRAPH - ,0x8C56 ,0x5B77 //CJK UNIFIED IDEOGRAPH - ,0x8C57 ,0x5B78 //CJK UNIFIED IDEOGRAPH - ,0x8C58 ,0x5B79 //CJK UNIFIED IDEOGRAPH - ,0x8C59 ,0x5B7B //CJK UNIFIED IDEOGRAPH - ,0x8C5A ,0x5B7C //CJK UNIFIED IDEOGRAPH - ,0x8C5B ,0x5B7E //CJK UNIFIED IDEOGRAPH - ,0x8C5C ,0x5B7F //CJK UNIFIED IDEOGRAPH - ,0x8C5D ,0x5B82 //CJK UNIFIED IDEOGRAPH - ,0x8C5E ,0x5B86 //CJK UNIFIED IDEOGRAPH - ,0x8C5F ,0x5B8A //CJK UNIFIED IDEOGRAPH - ,0x8C60 ,0x5B8D //CJK UNIFIED IDEOGRAPH - ,0x8C61 ,0x5B8E //CJK UNIFIED IDEOGRAPH - ,0x8C62 ,0x5B90 //CJK UNIFIED IDEOGRAPH - ,0x8C63 ,0x5B91 //CJK UNIFIED IDEOGRAPH - ,0x8C64 ,0x5B92 //CJK UNIFIED IDEOGRAPH - ,0x8C65 ,0x5B94 //CJK UNIFIED IDEOGRAPH - ,0x8C66 ,0x5B96 //CJK UNIFIED IDEOGRAPH - ,0x8C67 ,0x5B9F //CJK UNIFIED IDEOGRAPH - ,0x8C68 ,0x5BA7 //CJK UNIFIED IDEOGRAPH - ,0x8C69 ,0x5BA8 //CJK UNIFIED IDEOGRAPH - ,0x8C6A ,0x5BA9 //CJK UNIFIED IDEOGRAPH - ,0x8C6B ,0x5BAC //CJK UNIFIED IDEOGRAPH - ,0x8C6C ,0x5BAD //CJK UNIFIED IDEOGRAPH - ,0x8C6D ,0x5BAE //CJK UNIFIED IDEOGRAPH - ,0x8C6E ,0x5BAF //CJK UNIFIED IDEOGRAPH - ,0x8C6F ,0x5BB1 //CJK UNIFIED IDEOGRAPH - ,0x8C70 ,0x5BB2 //CJK UNIFIED IDEOGRAPH - ,0x8C71 ,0x5BB7 //CJK UNIFIED IDEOGRAPH - ,0x8C72 ,0x5BBA //CJK UNIFIED IDEOGRAPH - ,0x8C73 ,0x5BBB //CJK UNIFIED IDEOGRAPH - ,0x8C74 ,0x5BBC //CJK UNIFIED IDEOGRAPH - ,0x8C75 ,0x5BC0 //CJK UNIFIED IDEOGRAPH - ,0x8C76 ,0x5BC1 //CJK UNIFIED IDEOGRAPH - ,0x8C77 ,0x5BC3 //CJK UNIFIED IDEOGRAPH - ,0x8C78 ,0x5BC8 //CJK UNIFIED IDEOGRAPH - ,0x8C79 ,0x5BC9 //CJK UNIFIED IDEOGRAPH - ,0x8C7A ,0x5BCA //CJK UNIFIED IDEOGRAPH - ,0x8C7B ,0x5BCB //CJK UNIFIED IDEOGRAPH - ,0x8C7C ,0x5BCD //CJK UNIFIED IDEOGRAPH - ,0x8C7D ,0x5BCE //CJK UNIFIED IDEOGRAPH - ,0x8C7E ,0x5BCF //CJK UNIFIED IDEOGRAPH - ,0x8C80 ,0x5BD1 //CJK UNIFIED IDEOGRAPH - ,0x8C81 ,0x5BD4 //CJK UNIFIED IDEOGRAPH - ,0x8C82 ,0x5BD5 //CJK UNIFIED IDEOGRAPH - ,0x8C83 ,0x5BD6 //CJK UNIFIED IDEOGRAPH - ,0x8C84 ,0x5BD7 //CJK UNIFIED IDEOGRAPH - ,0x8C85 ,0x5BD8 //CJK UNIFIED IDEOGRAPH - ,0x8C86 ,0x5BD9 //CJK UNIFIED IDEOGRAPH - ,0x8C87 ,0x5BDA //CJK UNIFIED IDEOGRAPH - ,0x8C88 ,0x5BDB //CJK UNIFIED IDEOGRAPH - ,0x8C89 ,0x5BDC //CJK UNIFIED IDEOGRAPH - ,0x8C8A ,0x5BE0 //CJK UNIFIED IDEOGRAPH - ,0x8C8B ,0x5BE2 //CJK UNIFIED IDEOGRAPH - ,0x8C8C ,0x5BE3 //CJK UNIFIED IDEOGRAPH - ,0x8C8D ,0x5BE6 //CJK UNIFIED IDEOGRAPH - ,0x8C8E ,0x5BE7 //CJK UNIFIED IDEOGRAPH - ,0x8C8F ,0x5BE9 //CJK UNIFIED IDEOGRAPH - ,0x8C90 ,0x5BEA //CJK UNIFIED IDEOGRAPH - ,0x8C91 ,0x5BEB //CJK UNIFIED IDEOGRAPH - ,0x8C92 ,0x5BEC //CJK UNIFIED IDEOGRAPH - ,0x8C93 ,0x5BED //CJK UNIFIED IDEOGRAPH - ,0x8C94 ,0x5BEF //CJK UNIFIED IDEOGRAPH - ,0x8C95 ,0x5BF1 //CJK UNIFIED IDEOGRAPH - ,0x8C96 ,0x5BF2 //CJK UNIFIED IDEOGRAPH - ,0x8C97 ,0x5BF3 //CJK UNIFIED IDEOGRAPH - ,0x8C98 ,0x5BF4 //CJK UNIFIED IDEOGRAPH - ,0x8C99 ,0x5BF5 //CJK UNIFIED IDEOGRAPH - ,0x8C9A ,0x5BF6 //CJK UNIFIED IDEOGRAPH - ,0x8C9B ,0x5BF7 //CJK UNIFIED IDEOGRAPH - ,0x8C9C ,0x5BFD //CJK UNIFIED IDEOGRAPH - ,0x8C9D ,0x5BFE //CJK UNIFIED IDEOGRAPH - ,0x8C9E ,0x5C00 //CJK UNIFIED IDEOGRAPH - ,0x8C9F ,0x5C02 //CJK UNIFIED IDEOGRAPH - ,0x8CA0 ,0x5C03 //CJK UNIFIED IDEOGRAPH - ,0x8CA1 ,0x5C05 //CJK UNIFIED IDEOGRAPH - ,0x8CA2 ,0x5C07 //CJK UNIFIED IDEOGRAPH - ,0x8CA3 ,0x5C08 //CJK UNIFIED IDEOGRAPH - ,0x8CA4 ,0x5C0B //CJK UNIFIED IDEOGRAPH - ,0x8CA5 ,0x5C0C //CJK UNIFIED IDEOGRAPH - ,0x8CA6 ,0x5C0D //CJK UNIFIED IDEOGRAPH - ,0x8CA7 ,0x5C0E //CJK UNIFIED IDEOGRAPH - ,0x8CA8 ,0x5C10 //CJK UNIFIED IDEOGRAPH - ,0x8CA9 ,0x5C12 //CJK UNIFIED IDEOGRAPH - ,0x8CAA ,0x5C13 //CJK UNIFIED IDEOGRAPH - ,0x8CAB ,0x5C17 //CJK UNIFIED IDEOGRAPH - ,0x8CAC ,0x5C19 //CJK UNIFIED IDEOGRAPH - ,0x8CAD ,0x5C1B //CJK UNIFIED IDEOGRAPH - ,0x8CAE ,0x5C1E //CJK UNIFIED IDEOGRAPH - ,0x8CAF ,0x5C1F //CJK UNIFIED IDEOGRAPH - ,0x8CB0 ,0x5C20 //CJK UNIFIED IDEOGRAPH - ,0x8CB1 ,0x5C21 //CJK UNIFIED IDEOGRAPH - ,0x8CB2 ,0x5C23 //CJK UNIFIED IDEOGRAPH - ,0x8CB3 ,0x5C26 //CJK UNIFIED IDEOGRAPH - ,0x8CB4 ,0x5C28 //CJK UNIFIED IDEOGRAPH - ,0x8CB5 ,0x5C29 //CJK UNIFIED IDEOGRAPH - ,0x8CB6 ,0x5C2A //CJK UNIFIED IDEOGRAPH - ,0x8CB7 ,0x5C2B //CJK UNIFIED IDEOGRAPH - ,0x8CB8 ,0x5C2D //CJK UNIFIED IDEOGRAPH - ,0x8CB9 ,0x5C2E //CJK UNIFIED IDEOGRAPH - ,0x8CBA ,0x5C2F //CJK UNIFIED IDEOGRAPH - ,0x8CBB ,0x5C30 //CJK UNIFIED IDEOGRAPH - ,0x8CBC ,0x5C32 //CJK UNIFIED IDEOGRAPH - ,0x8CBD ,0x5C33 //CJK UNIFIED IDEOGRAPH - ,0x8CBE ,0x5C35 //CJK UNIFIED IDEOGRAPH - ,0x8CBF ,0x5C36 //CJK UNIFIED IDEOGRAPH - ,0x8CC0 ,0x5C37 //CJK UNIFIED IDEOGRAPH - ,0x8CC1 ,0x5C43 //CJK UNIFIED IDEOGRAPH - ,0x8CC2 ,0x5C44 //CJK UNIFIED IDEOGRAPH - ,0x8CC3 ,0x5C46 //CJK UNIFIED IDEOGRAPH - ,0x8CC4 ,0x5C47 //CJK UNIFIED IDEOGRAPH - ,0x8CC5 ,0x5C4C //CJK UNIFIED IDEOGRAPH - ,0x8CC6 ,0x5C4D //CJK UNIFIED IDEOGRAPH - ,0x8CC7 ,0x5C52 //CJK UNIFIED IDEOGRAPH - ,0x8CC8 ,0x5C53 //CJK UNIFIED IDEOGRAPH - ,0x8CC9 ,0x5C54 //CJK UNIFIED IDEOGRAPH - ,0x8CCA ,0x5C56 //CJK UNIFIED IDEOGRAPH - ,0x8CCB ,0x5C57 //CJK UNIFIED IDEOGRAPH - ,0x8CCC ,0x5C58 //CJK UNIFIED IDEOGRAPH - ,0x8CCD ,0x5C5A //CJK UNIFIED IDEOGRAPH - ,0x8CCE ,0x5C5B //CJK UNIFIED IDEOGRAPH - ,0x8CCF ,0x5C5C //CJK UNIFIED IDEOGRAPH - ,0x8CD0 ,0x5C5D //CJK UNIFIED IDEOGRAPH - ,0x8CD1 ,0x5C5F //CJK UNIFIED IDEOGRAPH - ,0x8CD2 ,0x5C62 //CJK UNIFIED IDEOGRAPH - ,0x8CD3 ,0x5C64 //CJK UNIFIED IDEOGRAPH - ,0x8CD4 ,0x5C67 //CJK UNIFIED IDEOGRAPH - ,0x8CD5 ,0x5C68 //CJK UNIFIED IDEOGRAPH - ,0x8CD6 ,0x5C69 //CJK UNIFIED IDEOGRAPH - ,0x8CD7 ,0x5C6A //CJK UNIFIED IDEOGRAPH - ,0x8CD8 ,0x5C6B //CJK UNIFIED IDEOGRAPH - ,0x8CD9 ,0x5C6C //CJK UNIFIED IDEOGRAPH - ,0x8CDA ,0x5C6D //CJK UNIFIED IDEOGRAPH - ,0x8CDB ,0x5C70 //CJK UNIFIED IDEOGRAPH - ,0x8CDC ,0x5C72 //CJK UNIFIED IDEOGRAPH - ,0x8CDD ,0x5C73 //CJK UNIFIED IDEOGRAPH - ,0x8CDE ,0x5C74 //CJK UNIFIED IDEOGRAPH - ,0x8CDF ,0x5C75 //CJK UNIFIED IDEOGRAPH - ,0x8CE0 ,0x5C76 //CJK UNIFIED IDEOGRAPH - ,0x8CE1 ,0x5C77 //CJK UNIFIED IDEOGRAPH - ,0x8CE2 ,0x5C78 //CJK UNIFIED IDEOGRAPH - ,0x8CE3 ,0x5C7B //CJK UNIFIED IDEOGRAPH - ,0x8CE4 ,0x5C7C //CJK UNIFIED IDEOGRAPH - ,0x8CE5 ,0x5C7D //CJK UNIFIED IDEOGRAPH - ,0x8CE6 ,0x5C7E //CJK UNIFIED IDEOGRAPH - ,0x8CE7 ,0x5C80 //CJK UNIFIED IDEOGRAPH - ,0x8CE8 ,0x5C83 //CJK UNIFIED IDEOGRAPH - ,0x8CE9 ,0x5C84 //CJK UNIFIED IDEOGRAPH - ,0x8CEA ,0x5C85 //CJK UNIFIED IDEOGRAPH - ,0x8CEB ,0x5C86 //CJK UNIFIED IDEOGRAPH - ,0x8CEC ,0x5C87 //CJK UNIFIED IDEOGRAPH - ,0x8CED ,0x5C89 //CJK UNIFIED IDEOGRAPH - ,0x8CEE ,0x5C8A //CJK UNIFIED IDEOGRAPH - ,0x8CEF ,0x5C8B //CJK UNIFIED IDEOGRAPH - ,0x8CF0 ,0x5C8E //CJK UNIFIED IDEOGRAPH - ,0x8CF1 ,0x5C8F //CJK UNIFIED IDEOGRAPH - ,0x8CF2 ,0x5C92 //CJK UNIFIED IDEOGRAPH - ,0x8CF3 ,0x5C93 //CJK UNIFIED IDEOGRAPH - ,0x8CF4 ,0x5C95 //CJK UNIFIED IDEOGRAPH - ,0x8CF5 ,0x5C9D //CJK UNIFIED IDEOGRAPH - ,0x8CF6 ,0x5C9E //CJK UNIFIED IDEOGRAPH - ,0x8CF7 ,0x5C9F //CJK UNIFIED IDEOGRAPH - ,0x8CF8 ,0x5CA0 //CJK UNIFIED IDEOGRAPH - ,0x8CF9 ,0x5CA1 //CJK UNIFIED IDEOGRAPH - ,0x8CFA ,0x5CA4 //CJK UNIFIED IDEOGRAPH - ,0x8CFB ,0x5CA5 //CJK UNIFIED IDEOGRAPH - ,0x8CFC ,0x5CA6 //CJK UNIFIED IDEOGRAPH - ,0x8CFD ,0x5CA7 //CJK UNIFIED IDEOGRAPH - ,0x8CFE ,0x5CA8 //CJK UNIFIED IDEOGRAPH - ,0x8D40 ,0x5CAA //CJK UNIFIED IDEOGRAPH - ,0x8D41 ,0x5CAE //CJK UNIFIED IDEOGRAPH - ,0x8D42 ,0x5CAF //CJK UNIFIED IDEOGRAPH - ,0x8D43 ,0x5CB0 //CJK UNIFIED IDEOGRAPH - ,0x8D44 ,0x5CB2 //CJK UNIFIED IDEOGRAPH - ,0x8D45 ,0x5CB4 //CJK UNIFIED IDEOGRAPH - ,0x8D46 ,0x5CB6 //CJK UNIFIED IDEOGRAPH - ,0x8D47 ,0x5CB9 //CJK UNIFIED IDEOGRAPH - ,0x8D48 ,0x5CBA //CJK UNIFIED IDEOGRAPH - ,0x8D49 ,0x5CBB //CJK UNIFIED IDEOGRAPH - ,0x8D4A ,0x5CBC //CJK UNIFIED IDEOGRAPH - ,0x8D4B ,0x5CBE //CJK UNIFIED IDEOGRAPH - ,0x8D4C ,0x5CC0 //CJK UNIFIED IDEOGRAPH - ,0x8D4D ,0x5CC2 //CJK UNIFIED IDEOGRAPH - ,0x8D4E ,0x5CC3 //CJK UNIFIED IDEOGRAPH - ,0x8D4F ,0x5CC5 //CJK UNIFIED IDEOGRAPH - ,0x8D50 ,0x5CC6 //CJK UNIFIED IDEOGRAPH - ,0x8D51 ,0x5CC7 //CJK UNIFIED IDEOGRAPH - ,0x8D52 ,0x5CC8 //CJK UNIFIED IDEOGRAPH - ,0x8D53 ,0x5CC9 //CJK UNIFIED IDEOGRAPH - ,0x8D54 ,0x5CCA //CJK UNIFIED IDEOGRAPH - ,0x8D55 ,0x5CCC //CJK UNIFIED IDEOGRAPH - ,0x8D56 ,0x5CCD //CJK UNIFIED IDEOGRAPH - ,0x8D57 ,0x5CCE //CJK UNIFIED IDEOGRAPH - ,0x8D58 ,0x5CCF //CJK UNIFIED IDEOGRAPH - ,0x8D59 ,0x5CD0 //CJK UNIFIED IDEOGRAPH - ,0x8D5A ,0x5CD1 //CJK UNIFIED IDEOGRAPH - ,0x8D5B ,0x5CD3 //CJK UNIFIED IDEOGRAPH - ,0x8D5C ,0x5CD4 //CJK UNIFIED IDEOGRAPH - ,0x8D5D ,0x5CD5 //CJK UNIFIED IDEOGRAPH - ,0x8D5E ,0x5CD6 //CJK UNIFIED IDEOGRAPH - ,0x8D5F ,0x5CD7 //CJK UNIFIED IDEOGRAPH - ,0x8D60 ,0x5CD8 //CJK UNIFIED IDEOGRAPH - ,0x8D61 ,0x5CDA //CJK UNIFIED IDEOGRAPH - ,0x8D62 ,0x5CDB //CJK UNIFIED IDEOGRAPH - ,0x8D63 ,0x5CDC //CJK UNIFIED IDEOGRAPH - ,0x8D64 ,0x5CDD //CJK UNIFIED IDEOGRAPH - ,0x8D65 ,0x5CDE //CJK UNIFIED IDEOGRAPH - ,0x8D66 ,0x5CDF //CJK UNIFIED IDEOGRAPH - ,0x8D67 ,0x5CE0 //CJK UNIFIED IDEOGRAPH - ,0x8D68 ,0x5CE2 //CJK UNIFIED IDEOGRAPH - ,0x8D69 ,0x5CE3 //CJK UNIFIED IDEOGRAPH - ,0x8D6A ,0x5CE7 //CJK UNIFIED IDEOGRAPH - ,0x8D6B ,0x5CE9 //CJK UNIFIED IDEOGRAPH - ,0x8D6C ,0x5CEB //CJK UNIFIED IDEOGRAPH - ,0x8D6D ,0x5CEC //CJK UNIFIED IDEOGRAPH - ,0x8D6E ,0x5CEE //CJK UNIFIED IDEOGRAPH - ,0x8D6F ,0x5CEF //CJK UNIFIED IDEOGRAPH - ,0x8D70 ,0x5CF1 //CJK UNIFIED IDEOGRAPH - ,0x8D71 ,0x5CF2 //CJK UNIFIED IDEOGRAPH - ,0x8D72 ,0x5CF3 //CJK UNIFIED IDEOGRAPH - ,0x8D73 ,0x5CF4 //CJK UNIFIED IDEOGRAPH - ,0x8D74 ,0x5CF5 //CJK UNIFIED IDEOGRAPH - ,0x8D75 ,0x5CF6 //CJK UNIFIED IDEOGRAPH - ,0x8D76 ,0x5CF7 //CJK UNIFIED IDEOGRAPH - ,0x8D77 ,0x5CF8 //CJK UNIFIED IDEOGRAPH - ,0x8D78 ,0x5CF9 //CJK UNIFIED IDEOGRAPH - ,0x8D79 ,0x5CFA //CJK UNIFIED IDEOGRAPH - ,0x8D7A ,0x5CFC //CJK UNIFIED IDEOGRAPH - ,0x8D7B ,0x5CFD //CJK UNIFIED IDEOGRAPH - ,0x8D7C ,0x5CFE //CJK UNIFIED IDEOGRAPH - ,0x8D7D ,0x5CFF //CJK UNIFIED IDEOGRAPH - ,0x8D7E ,0x5D00 //CJK UNIFIED IDEOGRAPH - ,0x8D80 ,0x5D01 //CJK UNIFIED IDEOGRAPH - ,0x8D81 ,0x5D04 //CJK UNIFIED IDEOGRAPH - ,0x8D82 ,0x5D05 //CJK UNIFIED IDEOGRAPH - ,0x8D83 ,0x5D08 //CJK UNIFIED IDEOGRAPH - ,0x8D84 ,0x5D09 //CJK UNIFIED IDEOGRAPH - ,0x8D85 ,0x5D0A //CJK UNIFIED IDEOGRAPH - ,0x8D86 ,0x5D0B //CJK UNIFIED IDEOGRAPH - ,0x8D87 ,0x5D0C //CJK UNIFIED IDEOGRAPH - ,0x8D88 ,0x5D0D //CJK UNIFIED IDEOGRAPH - ,0x8D89 ,0x5D0F //CJK UNIFIED IDEOGRAPH - ,0x8D8A ,0x5D10 //CJK UNIFIED IDEOGRAPH - ,0x8D8B ,0x5D11 //CJK UNIFIED IDEOGRAPH - ,0x8D8C ,0x5D12 //CJK UNIFIED IDEOGRAPH - ,0x8D8D ,0x5D13 //CJK UNIFIED IDEOGRAPH - ,0x8D8E ,0x5D15 //CJK UNIFIED IDEOGRAPH - ,0x8D8F ,0x5D17 //CJK UNIFIED IDEOGRAPH - ,0x8D90 ,0x5D18 //CJK UNIFIED IDEOGRAPH - ,0x8D91 ,0x5D19 //CJK UNIFIED IDEOGRAPH - ,0x8D92 ,0x5D1A //CJK UNIFIED IDEOGRAPH - ,0x8D93 ,0x5D1C //CJK UNIFIED IDEOGRAPH - ,0x8D94 ,0x5D1D //CJK UNIFIED IDEOGRAPH - ,0x8D95 ,0x5D1F //CJK UNIFIED IDEOGRAPH - ,0x8D96 ,0x5D20 //CJK UNIFIED IDEOGRAPH - ,0x8D97 ,0x5D21 //CJK UNIFIED IDEOGRAPH - ,0x8D98 ,0x5D22 //CJK UNIFIED IDEOGRAPH - ,0x8D99 ,0x5D23 //CJK UNIFIED IDEOGRAPH - ,0x8D9A ,0x5D25 //CJK UNIFIED IDEOGRAPH - ,0x8D9B ,0x5D28 //CJK UNIFIED IDEOGRAPH - ,0x8D9C ,0x5D2A //CJK UNIFIED IDEOGRAPH - ,0x8D9D ,0x5D2B //CJK UNIFIED IDEOGRAPH - ,0x8D9E ,0x5D2C //CJK UNIFIED IDEOGRAPH - ,0x8D9F ,0x5D2F //CJK UNIFIED IDEOGRAPH - ,0x8DA0 ,0x5D30 //CJK UNIFIED IDEOGRAPH - ,0x8DA1 ,0x5D31 //CJK UNIFIED IDEOGRAPH - ,0x8DA2 ,0x5D32 //CJK UNIFIED IDEOGRAPH - ,0x8DA3 ,0x5D33 //CJK UNIFIED IDEOGRAPH - ,0x8DA4 ,0x5D35 //CJK UNIFIED IDEOGRAPH - ,0x8DA5 ,0x5D36 //CJK UNIFIED IDEOGRAPH - ,0x8DA6 ,0x5D37 //CJK UNIFIED IDEOGRAPH - ,0x8DA7 ,0x5D38 //CJK UNIFIED IDEOGRAPH - ,0x8DA8 ,0x5D39 //CJK UNIFIED IDEOGRAPH - ,0x8DA9 ,0x5D3A //CJK UNIFIED IDEOGRAPH - ,0x8DAA ,0x5D3B //CJK UNIFIED IDEOGRAPH - ,0x8DAB ,0x5D3C //CJK UNIFIED IDEOGRAPH - ,0x8DAC ,0x5D3F //CJK UNIFIED IDEOGRAPH - ,0x8DAD ,0x5D40 //CJK UNIFIED IDEOGRAPH - ,0x8DAE ,0x5D41 //CJK UNIFIED IDEOGRAPH - ,0x8DAF ,0x5D42 //CJK UNIFIED IDEOGRAPH - ,0x8DB0 ,0x5D43 //CJK UNIFIED IDEOGRAPH - ,0x8DB1 ,0x5D44 //CJK UNIFIED IDEOGRAPH - ,0x8DB2 ,0x5D45 //CJK UNIFIED IDEOGRAPH - ,0x8DB3 ,0x5D46 //CJK UNIFIED IDEOGRAPH - ,0x8DB4 ,0x5D48 //CJK UNIFIED IDEOGRAPH - ,0x8DB5 ,0x5D49 //CJK UNIFIED IDEOGRAPH - ,0x8DB6 ,0x5D4D //CJK UNIFIED IDEOGRAPH - ,0x8DB7 ,0x5D4E //CJK UNIFIED IDEOGRAPH - ,0x8DB8 ,0x5D4F //CJK UNIFIED IDEOGRAPH - ,0x8DB9 ,0x5D50 //CJK UNIFIED IDEOGRAPH - ,0x8DBA ,0x5D51 //CJK UNIFIED IDEOGRAPH - ,0x8DBB ,0x5D52 //CJK UNIFIED IDEOGRAPH - ,0x8DBC ,0x5D53 //CJK UNIFIED IDEOGRAPH - ,0x8DBD ,0x5D54 //CJK UNIFIED IDEOGRAPH - ,0x8DBE ,0x5D55 //CJK UNIFIED IDEOGRAPH - ,0x8DBF ,0x5D56 //CJK UNIFIED IDEOGRAPH - ,0x8DC0 ,0x5D57 //CJK UNIFIED IDEOGRAPH - ,0x8DC1 ,0x5D59 //CJK UNIFIED IDEOGRAPH - ,0x8DC2 ,0x5D5A //CJK UNIFIED IDEOGRAPH - ,0x8DC3 ,0x5D5C //CJK UNIFIED IDEOGRAPH - ,0x8DC4 ,0x5D5E //CJK UNIFIED IDEOGRAPH - ,0x8DC5 ,0x5D5F //CJK UNIFIED IDEOGRAPH - ,0x8DC6 ,0x5D60 //CJK UNIFIED IDEOGRAPH - ,0x8DC7 ,0x5D61 //CJK UNIFIED IDEOGRAPH - ,0x8DC8 ,0x5D62 //CJK UNIFIED IDEOGRAPH - ,0x8DC9 ,0x5D63 //CJK UNIFIED IDEOGRAPH - ,0x8DCA ,0x5D64 //CJK UNIFIED IDEOGRAPH - ,0x8DCB ,0x5D65 //CJK UNIFIED IDEOGRAPH - ,0x8DCC ,0x5D66 //CJK UNIFIED IDEOGRAPH - ,0x8DCD ,0x5D67 //CJK UNIFIED IDEOGRAPH - ,0x8DCE ,0x5D68 //CJK UNIFIED IDEOGRAPH - ,0x8DCF ,0x5D6A //CJK UNIFIED IDEOGRAPH - ,0x8DD0 ,0x5D6D //CJK UNIFIED IDEOGRAPH - ,0x8DD1 ,0x5D6E //CJK UNIFIED IDEOGRAPH - ,0x8DD2 ,0x5D70 //CJK UNIFIED IDEOGRAPH - ,0x8DD3 ,0x5D71 //CJK UNIFIED IDEOGRAPH - ,0x8DD4 ,0x5D72 //CJK UNIFIED IDEOGRAPH - ,0x8DD5 ,0x5D73 //CJK UNIFIED IDEOGRAPH - ,0x8DD6 ,0x5D75 //CJK UNIFIED IDEOGRAPH - ,0x8DD7 ,0x5D76 //CJK UNIFIED IDEOGRAPH - ,0x8DD8 ,0x5D77 //CJK UNIFIED IDEOGRAPH - ,0x8DD9 ,0x5D78 //CJK UNIFIED IDEOGRAPH - ,0x8DDA ,0x5D79 //CJK UNIFIED IDEOGRAPH - ,0x8DDB ,0x5D7A //CJK UNIFIED IDEOGRAPH - ,0x8DDC ,0x5D7B //CJK UNIFIED IDEOGRAPH - ,0x8DDD ,0x5D7C //CJK UNIFIED IDEOGRAPH - ,0x8DDE ,0x5D7D //CJK UNIFIED IDEOGRAPH - ,0x8DDF ,0x5D7E //CJK UNIFIED IDEOGRAPH - ,0x8DE0 ,0x5D7F //CJK UNIFIED IDEOGRAPH - ,0x8DE1 ,0x5D80 //CJK UNIFIED IDEOGRAPH - ,0x8DE2 ,0x5D81 //CJK UNIFIED IDEOGRAPH - ,0x8DE3 ,0x5D83 //CJK UNIFIED IDEOGRAPH - ,0x8DE4 ,0x5D84 //CJK UNIFIED IDEOGRAPH - ,0x8DE5 ,0x5D85 //CJK UNIFIED IDEOGRAPH - ,0x8DE6 ,0x5D86 //CJK UNIFIED IDEOGRAPH - ,0x8DE7 ,0x5D87 //CJK UNIFIED IDEOGRAPH - ,0x8DE8 ,0x5D88 //CJK UNIFIED IDEOGRAPH - ,0x8DE9 ,0x5D89 //CJK UNIFIED IDEOGRAPH - ,0x8DEA ,0x5D8A //CJK UNIFIED IDEOGRAPH - ,0x8DEB ,0x5D8B //CJK UNIFIED IDEOGRAPH - ,0x8DEC ,0x5D8C //CJK UNIFIED IDEOGRAPH - ,0x8DED ,0x5D8D //CJK UNIFIED IDEOGRAPH - ,0x8DEE ,0x5D8E //CJK UNIFIED IDEOGRAPH - ,0x8DEF ,0x5D8F //CJK UNIFIED IDEOGRAPH - ,0x8DF0 ,0x5D90 //CJK UNIFIED IDEOGRAPH - ,0x8DF1 ,0x5D91 //CJK UNIFIED IDEOGRAPH - ,0x8DF2 ,0x5D92 //CJK UNIFIED IDEOGRAPH - ,0x8DF3 ,0x5D93 //CJK UNIFIED IDEOGRAPH - ,0x8DF4 ,0x5D94 //CJK UNIFIED IDEOGRAPH - ,0x8DF5 ,0x5D95 //CJK UNIFIED IDEOGRAPH - ,0x8DF6 ,0x5D96 //CJK UNIFIED IDEOGRAPH - ,0x8DF7 ,0x5D97 //CJK UNIFIED IDEOGRAPH - ,0x8DF8 ,0x5D98 //CJK UNIFIED IDEOGRAPH - ,0x8DF9 ,0x5D9A //CJK UNIFIED IDEOGRAPH - ,0x8DFA ,0x5D9B //CJK UNIFIED IDEOGRAPH - ,0x8DFB ,0x5D9C //CJK UNIFIED IDEOGRAPH - ,0x8DFC ,0x5D9E //CJK UNIFIED IDEOGRAPH - ,0x8DFD ,0x5D9F //CJK UNIFIED IDEOGRAPH - ,0x8DFE ,0x5DA0 //CJK UNIFIED IDEOGRAPH - ,0x8E40 ,0x5DA1 //CJK UNIFIED IDEOGRAPH - ,0x8E41 ,0x5DA2 //CJK UNIFIED IDEOGRAPH - ,0x8E42 ,0x5DA3 //CJK UNIFIED IDEOGRAPH - ,0x8E43 ,0x5DA4 //CJK UNIFIED IDEOGRAPH - ,0x8E44 ,0x5DA5 //CJK UNIFIED IDEOGRAPH - ,0x8E45 ,0x5DA6 //CJK UNIFIED IDEOGRAPH - ,0x8E46 ,0x5DA7 //CJK UNIFIED IDEOGRAPH - ,0x8E47 ,0x5DA8 //CJK UNIFIED IDEOGRAPH - ,0x8E48 ,0x5DA9 //CJK UNIFIED IDEOGRAPH - ,0x8E49 ,0x5DAA //CJK UNIFIED IDEOGRAPH - ,0x8E4A ,0x5DAB //CJK UNIFIED IDEOGRAPH - ,0x8E4B ,0x5DAC //CJK UNIFIED IDEOGRAPH - ,0x8E4C ,0x5DAD //CJK UNIFIED IDEOGRAPH - ,0x8E4D ,0x5DAE //CJK UNIFIED IDEOGRAPH - ,0x8E4E ,0x5DAF //CJK UNIFIED IDEOGRAPH - ,0x8E4F ,0x5DB0 //CJK UNIFIED IDEOGRAPH - ,0x8E50 ,0x5DB1 //CJK UNIFIED IDEOGRAPH - ,0x8E51 ,0x5DB2 //CJK UNIFIED IDEOGRAPH - ,0x8E52 ,0x5DB3 //CJK UNIFIED IDEOGRAPH - ,0x8E53 ,0x5DB4 //CJK UNIFIED IDEOGRAPH - ,0x8E54 ,0x5DB5 //CJK UNIFIED IDEOGRAPH - ,0x8E55 ,0x5DB6 //CJK UNIFIED IDEOGRAPH - ,0x8E56 ,0x5DB8 //CJK UNIFIED IDEOGRAPH - ,0x8E57 ,0x5DB9 //CJK UNIFIED IDEOGRAPH - ,0x8E58 ,0x5DBA //CJK UNIFIED IDEOGRAPH - ,0x8E59 ,0x5DBB //CJK UNIFIED IDEOGRAPH - ,0x8E5A ,0x5DBC //CJK UNIFIED IDEOGRAPH - ,0x8E5B ,0x5DBD //CJK UNIFIED IDEOGRAPH - ,0x8E5C ,0x5DBE //CJK UNIFIED IDEOGRAPH - ,0x8E5D ,0x5DBF //CJK UNIFIED IDEOGRAPH - ,0x8E5E ,0x5DC0 //CJK UNIFIED IDEOGRAPH - ,0x8E5F ,0x5DC1 //CJK UNIFIED IDEOGRAPH - ,0x8E60 ,0x5DC2 //CJK UNIFIED IDEOGRAPH - ,0x8E61 ,0x5DC3 //CJK UNIFIED IDEOGRAPH - ,0x8E62 ,0x5DC4 //CJK UNIFIED IDEOGRAPH - ,0x8E63 ,0x5DC6 //CJK UNIFIED IDEOGRAPH - ,0x8E64 ,0x5DC7 //CJK UNIFIED IDEOGRAPH - ,0x8E65 ,0x5DC8 //CJK UNIFIED IDEOGRAPH - ,0x8E66 ,0x5DC9 //CJK UNIFIED IDEOGRAPH - ,0x8E67 ,0x5DCA //CJK UNIFIED IDEOGRAPH - ,0x8E68 ,0x5DCB //CJK UNIFIED IDEOGRAPH - ,0x8E69 ,0x5DCC //CJK UNIFIED IDEOGRAPH - ,0x8E6A ,0x5DCE //CJK UNIFIED IDEOGRAPH - ,0x8E6B ,0x5DCF //CJK UNIFIED IDEOGRAPH - ,0x8E6C ,0x5DD0 //CJK UNIFIED IDEOGRAPH - ,0x8E6D ,0x5DD1 //CJK UNIFIED IDEOGRAPH - ,0x8E6E ,0x5DD2 //CJK UNIFIED IDEOGRAPH - ,0x8E6F ,0x5DD3 //CJK UNIFIED IDEOGRAPH - ,0x8E70 ,0x5DD4 //CJK UNIFIED IDEOGRAPH - ,0x8E71 ,0x5DD5 //CJK UNIFIED IDEOGRAPH - ,0x8E72 ,0x5DD6 //CJK UNIFIED IDEOGRAPH - ,0x8E73 ,0x5DD7 //CJK UNIFIED IDEOGRAPH - ,0x8E74 ,0x5DD8 //CJK UNIFIED IDEOGRAPH - ,0x8E75 ,0x5DD9 //CJK UNIFIED IDEOGRAPH - ,0x8E76 ,0x5DDA //CJK UNIFIED IDEOGRAPH - ,0x8E77 ,0x5DDC //CJK UNIFIED IDEOGRAPH - ,0x8E78 ,0x5DDF //CJK UNIFIED IDEOGRAPH - ,0x8E79 ,0x5DE0 //CJK UNIFIED IDEOGRAPH - ,0x8E7A ,0x5DE3 //CJK UNIFIED IDEOGRAPH - ,0x8E7B ,0x5DE4 //CJK UNIFIED IDEOGRAPH - ,0x8E7C ,0x5DEA //CJK UNIFIED IDEOGRAPH - ,0x8E7D ,0x5DEC //CJK UNIFIED IDEOGRAPH - ,0x8E7E ,0x5DED //CJK UNIFIED IDEOGRAPH - ,0x8E80 ,0x5DF0 //CJK UNIFIED IDEOGRAPH - ,0x8E81 ,0x5DF5 //CJK UNIFIED IDEOGRAPH - ,0x8E82 ,0x5DF6 //CJK UNIFIED IDEOGRAPH - ,0x8E83 ,0x5DF8 //CJK UNIFIED IDEOGRAPH - ,0x8E84 ,0x5DF9 //CJK UNIFIED IDEOGRAPH - ,0x8E85 ,0x5DFA //CJK UNIFIED IDEOGRAPH - ,0x8E86 ,0x5DFB //CJK UNIFIED IDEOGRAPH - ,0x8E87 ,0x5DFC //CJK UNIFIED IDEOGRAPH - ,0x8E88 ,0x5DFF //CJK UNIFIED IDEOGRAPH - ,0x8E89 ,0x5E00 //CJK UNIFIED IDEOGRAPH - ,0x8E8A ,0x5E04 //CJK UNIFIED IDEOGRAPH - ,0x8E8B ,0x5E07 //CJK UNIFIED IDEOGRAPH - ,0x8E8C ,0x5E09 //CJK UNIFIED IDEOGRAPH - ,0x8E8D ,0x5E0A //CJK UNIFIED IDEOGRAPH - ,0x8E8E ,0x5E0B //CJK UNIFIED IDEOGRAPH - ,0x8E8F ,0x5E0D //CJK UNIFIED IDEOGRAPH - ,0x8E90 ,0x5E0E //CJK UNIFIED IDEOGRAPH - ,0x8E91 ,0x5E12 //CJK UNIFIED IDEOGRAPH - ,0x8E92 ,0x5E13 //CJK UNIFIED IDEOGRAPH - ,0x8E93 ,0x5E17 //CJK UNIFIED IDEOGRAPH - ,0x8E94 ,0x5E1E //CJK UNIFIED IDEOGRAPH - ,0x8E95 ,0x5E1F //CJK UNIFIED IDEOGRAPH - ,0x8E96 ,0x5E20 //CJK UNIFIED IDEOGRAPH - ,0x8E97 ,0x5E21 //CJK UNIFIED IDEOGRAPH - ,0x8E98 ,0x5E22 //CJK UNIFIED IDEOGRAPH - ,0x8E99 ,0x5E23 //CJK UNIFIED IDEOGRAPH - ,0x8E9A ,0x5E24 //CJK UNIFIED IDEOGRAPH - ,0x8E9B ,0x5E25 //CJK UNIFIED IDEOGRAPH - ,0x8E9C ,0x5E28 //CJK UNIFIED IDEOGRAPH - ,0x8E9D ,0x5E29 //CJK UNIFIED IDEOGRAPH - ,0x8E9E ,0x5E2A //CJK UNIFIED IDEOGRAPH - ,0x8E9F ,0x5E2B //CJK UNIFIED IDEOGRAPH - ,0x8EA0 ,0x5E2C //CJK UNIFIED IDEOGRAPH - ,0x8EA1 ,0x5E2F //CJK UNIFIED IDEOGRAPH - ,0x8EA2 ,0x5E30 //CJK UNIFIED IDEOGRAPH - ,0x8EA3 ,0x5E32 //CJK UNIFIED IDEOGRAPH - ,0x8EA4 ,0x5E33 //CJK UNIFIED IDEOGRAPH - ,0x8EA5 ,0x5E34 //CJK UNIFIED IDEOGRAPH - ,0x8EA6 ,0x5E35 //CJK UNIFIED IDEOGRAPH - ,0x8EA7 ,0x5E36 //CJK UNIFIED IDEOGRAPH - ,0x8EA8 ,0x5E39 //CJK UNIFIED IDEOGRAPH - ,0x8EA9 ,0x5E3A //CJK UNIFIED IDEOGRAPH - ,0x8EAA ,0x5E3E //CJK UNIFIED IDEOGRAPH - ,0x8EAB ,0x5E3F //CJK UNIFIED IDEOGRAPH - ,0x8EAC ,0x5E40 //CJK UNIFIED IDEOGRAPH - ,0x8EAD ,0x5E41 //CJK UNIFIED IDEOGRAPH - ,0x8EAE ,0x5E43 //CJK UNIFIED IDEOGRAPH - ,0x8EAF ,0x5E46 //CJK UNIFIED IDEOGRAPH - ,0x8EB0 ,0x5E47 //CJK UNIFIED IDEOGRAPH - ,0x8EB1 ,0x5E48 //CJK UNIFIED IDEOGRAPH - ,0x8EB2 ,0x5E49 //CJK UNIFIED IDEOGRAPH - ,0x8EB3 ,0x5E4A //CJK UNIFIED IDEOGRAPH - ,0x8EB4 ,0x5E4B //CJK UNIFIED IDEOGRAPH - ,0x8EB5 ,0x5E4D //CJK UNIFIED IDEOGRAPH - ,0x8EB6 ,0x5E4E //CJK UNIFIED IDEOGRAPH - ,0x8EB7 ,0x5E4F //CJK UNIFIED IDEOGRAPH - ,0x8EB8 ,0x5E50 //CJK UNIFIED IDEOGRAPH - ,0x8EB9 ,0x5E51 //CJK UNIFIED IDEOGRAPH - ,0x8EBA ,0x5E52 //CJK UNIFIED IDEOGRAPH - ,0x8EBB ,0x5E53 //CJK UNIFIED IDEOGRAPH - ,0x8EBC ,0x5E56 //CJK UNIFIED IDEOGRAPH - ,0x8EBD ,0x5E57 //CJK UNIFIED IDEOGRAPH - ,0x8EBE ,0x5E58 //CJK UNIFIED IDEOGRAPH - ,0x8EBF ,0x5E59 //CJK UNIFIED IDEOGRAPH - ,0x8EC0 ,0x5E5A //CJK UNIFIED IDEOGRAPH - ,0x8EC1 ,0x5E5C //CJK UNIFIED IDEOGRAPH - ,0x8EC2 ,0x5E5D //CJK UNIFIED IDEOGRAPH - ,0x8EC3 ,0x5E5F //CJK UNIFIED IDEOGRAPH - ,0x8EC4 ,0x5E60 //CJK UNIFIED IDEOGRAPH - ,0x8EC5 ,0x5E63 //CJK UNIFIED IDEOGRAPH - ,0x8EC6 ,0x5E64 //CJK UNIFIED IDEOGRAPH - ,0x8EC7 ,0x5E65 //CJK UNIFIED IDEOGRAPH - ,0x8EC8 ,0x5E66 //CJK UNIFIED IDEOGRAPH - ,0x8EC9 ,0x5E67 //CJK UNIFIED IDEOGRAPH - ,0x8ECA ,0x5E68 //CJK UNIFIED IDEOGRAPH - ,0x8ECB ,0x5E69 //CJK UNIFIED IDEOGRAPH - ,0x8ECC ,0x5E6A //CJK UNIFIED IDEOGRAPH - ,0x8ECD ,0x5E6B //CJK UNIFIED IDEOGRAPH - ,0x8ECE ,0x5E6C //CJK UNIFIED IDEOGRAPH - ,0x8ECF ,0x5E6D //CJK UNIFIED IDEOGRAPH - ,0x8ED0 ,0x5E6E //CJK UNIFIED IDEOGRAPH - ,0x8ED1 ,0x5E6F //CJK UNIFIED IDEOGRAPH - ,0x8ED2 ,0x5E70 //CJK UNIFIED IDEOGRAPH - ,0x8ED3 ,0x5E71 //CJK UNIFIED IDEOGRAPH - ,0x8ED4 ,0x5E75 //CJK UNIFIED IDEOGRAPH - ,0x8ED5 ,0x5E77 //CJK UNIFIED IDEOGRAPH - ,0x8ED6 ,0x5E79 //CJK UNIFIED IDEOGRAPH - ,0x8ED7 ,0x5E7E //CJK UNIFIED IDEOGRAPH - ,0x8ED8 ,0x5E81 //CJK UNIFIED IDEOGRAPH - ,0x8ED9 ,0x5E82 //CJK UNIFIED IDEOGRAPH - ,0x8EDA ,0x5E83 //CJK UNIFIED IDEOGRAPH - ,0x8EDB ,0x5E85 //CJK UNIFIED IDEOGRAPH - ,0x8EDC ,0x5E88 //CJK UNIFIED IDEOGRAPH - ,0x8EDD ,0x5E89 //CJK UNIFIED IDEOGRAPH - ,0x8EDE ,0x5E8C //CJK UNIFIED IDEOGRAPH - ,0x8EDF ,0x5E8D //CJK UNIFIED IDEOGRAPH - ,0x8EE0 ,0x5E8E //CJK UNIFIED IDEOGRAPH - ,0x8EE1 ,0x5E92 //CJK UNIFIED IDEOGRAPH - ,0x8EE2 ,0x5E98 //CJK UNIFIED IDEOGRAPH - ,0x8EE3 ,0x5E9B //CJK UNIFIED IDEOGRAPH - ,0x8EE4 ,0x5E9D //CJK UNIFIED IDEOGRAPH - ,0x8EE5 ,0x5EA1 //CJK UNIFIED IDEOGRAPH - ,0x8EE6 ,0x5EA2 //CJK UNIFIED IDEOGRAPH - ,0x8EE7 ,0x5EA3 //CJK UNIFIED IDEOGRAPH - ,0x8EE8 ,0x5EA4 //CJK UNIFIED IDEOGRAPH - ,0x8EE9 ,0x5EA8 //CJK UNIFIED IDEOGRAPH - ,0x8EEA ,0x5EA9 //CJK UNIFIED IDEOGRAPH - ,0x8EEB ,0x5EAA //CJK UNIFIED IDEOGRAPH - ,0x8EEC ,0x5EAB //CJK UNIFIED IDEOGRAPH - ,0x8EED ,0x5EAC //CJK UNIFIED IDEOGRAPH - ,0x8EEE ,0x5EAE //CJK UNIFIED IDEOGRAPH - ,0x8EEF ,0x5EAF //CJK UNIFIED IDEOGRAPH - ,0x8EF0 ,0x5EB0 //CJK UNIFIED IDEOGRAPH - ,0x8EF1 ,0x5EB1 //CJK UNIFIED IDEOGRAPH - ,0x8EF2 ,0x5EB2 //CJK UNIFIED IDEOGRAPH - ,0x8EF3 ,0x5EB4 //CJK UNIFIED IDEOGRAPH - ,0x8EF4 ,0x5EBA //CJK UNIFIED IDEOGRAPH - ,0x8EF5 ,0x5EBB //CJK UNIFIED IDEOGRAPH - ,0x8EF6 ,0x5EBC //CJK UNIFIED IDEOGRAPH - ,0x8EF7 ,0x5EBD //CJK UNIFIED IDEOGRAPH - ,0x8EF8 ,0x5EBF //CJK UNIFIED IDEOGRAPH - ,0x8EF9 ,0x5EC0 //CJK UNIFIED IDEOGRAPH - ,0x8EFA ,0x5EC1 //CJK UNIFIED IDEOGRAPH - ,0x8EFB ,0x5EC2 //CJK UNIFIED IDEOGRAPH - ,0x8EFC ,0x5EC3 //CJK UNIFIED IDEOGRAPH - ,0x8EFD ,0x5EC4 //CJK UNIFIED IDEOGRAPH - ,0x8EFE ,0x5EC5 //CJK UNIFIED IDEOGRAPH - ,0x8F40 ,0x5EC6 //CJK UNIFIED IDEOGRAPH - ,0x8F41 ,0x5EC7 //CJK UNIFIED IDEOGRAPH - ,0x8F42 ,0x5EC8 //CJK UNIFIED IDEOGRAPH - ,0x8F43 ,0x5ECB //CJK UNIFIED IDEOGRAPH - ,0x8F44 ,0x5ECC //CJK UNIFIED IDEOGRAPH - ,0x8F45 ,0x5ECD //CJK UNIFIED IDEOGRAPH - ,0x8F46 ,0x5ECE //CJK UNIFIED IDEOGRAPH - ,0x8F47 ,0x5ECF //CJK UNIFIED IDEOGRAPH - ,0x8F48 ,0x5ED0 //CJK UNIFIED IDEOGRAPH - ,0x8F49 ,0x5ED4 //CJK UNIFIED IDEOGRAPH - ,0x8F4A ,0x5ED5 //CJK UNIFIED IDEOGRAPH - ,0x8F4B ,0x5ED7 //CJK UNIFIED IDEOGRAPH - ,0x8F4C ,0x5ED8 //CJK UNIFIED IDEOGRAPH - ,0x8F4D ,0x5ED9 //CJK UNIFIED IDEOGRAPH - ,0x8F4E ,0x5EDA //CJK UNIFIED IDEOGRAPH - ,0x8F4F ,0x5EDC //CJK UNIFIED IDEOGRAPH - ,0x8F50 ,0x5EDD //CJK UNIFIED IDEOGRAPH - ,0x8F51 ,0x5EDE //CJK UNIFIED IDEOGRAPH - ,0x8F52 ,0x5EDF //CJK UNIFIED IDEOGRAPH - ,0x8F53 ,0x5EE0 //CJK UNIFIED IDEOGRAPH - ,0x8F54 ,0x5EE1 //CJK UNIFIED IDEOGRAPH - ,0x8F55 ,0x5EE2 //CJK UNIFIED IDEOGRAPH - ,0x8F56 ,0x5EE3 //CJK UNIFIED IDEOGRAPH - ,0x8F57 ,0x5EE4 //CJK UNIFIED IDEOGRAPH - ,0x8F58 ,0x5EE5 //CJK UNIFIED IDEOGRAPH - ,0x8F59 ,0x5EE6 //CJK UNIFIED IDEOGRAPH - ,0x8F5A ,0x5EE7 //CJK UNIFIED IDEOGRAPH - ,0x8F5B ,0x5EE9 //CJK UNIFIED IDEOGRAPH - ,0x8F5C ,0x5EEB //CJK UNIFIED IDEOGRAPH - ,0x8F5D ,0x5EEC //CJK UNIFIED IDEOGRAPH - ,0x8F5E ,0x5EED //CJK UNIFIED IDEOGRAPH - ,0x8F5F ,0x5EEE //CJK UNIFIED IDEOGRAPH - ,0x8F60 ,0x5EEF //CJK UNIFIED IDEOGRAPH - ,0x8F61 ,0x5EF0 //CJK UNIFIED IDEOGRAPH - ,0x8F62 ,0x5EF1 //CJK UNIFIED IDEOGRAPH - ,0x8F63 ,0x5EF2 //CJK UNIFIED IDEOGRAPH - ,0x8F64 ,0x5EF3 //CJK UNIFIED IDEOGRAPH - ,0x8F65 ,0x5EF5 //CJK UNIFIED IDEOGRAPH - ,0x8F66 ,0x5EF8 //CJK UNIFIED IDEOGRAPH - ,0x8F67 ,0x5EF9 //CJK UNIFIED IDEOGRAPH - ,0x8F68 ,0x5EFB //CJK UNIFIED IDEOGRAPH - ,0x8F69 ,0x5EFC //CJK UNIFIED IDEOGRAPH - ,0x8F6A ,0x5EFD //CJK UNIFIED IDEOGRAPH - ,0x8F6B ,0x5F05 //CJK UNIFIED IDEOGRAPH - ,0x8F6C ,0x5F06 //CJK UNIFIED IDEOGRAPH - ,0x8F6D ,0x5F07 //CJK UNIFIED IDEOGRAPH - ,0x8F6E ,0x5F09 //CJK UNIFIED IDEOGRAPH - ,0x8F6F ,0x5F0C //CJK UNIFIED IDEOGRAPH - ,0x8F70 ,0x5F0D //CJK UNIFIED IDEOGRAPH - ,0x8F71 ,0x5F0E //CJK UNIFIED IDEOGRAPH - ,0x8F72 ,0x5F10 //CJK UNIFIED IDEOGRAPH - ,0x8F73 ,0x5F12 //CJK UNIFIED IDEOGRAPH - ,0x8F74 ,0x5F14 //CJK UNIFIED IDEOGRAPH - ,0x8F75 ,0x5F16 //CJK UNIFIED IDEOGRAPH - ,0x8F76 ,0x5F19 //CJK UNIFIED IDEOGRAPH - ,0x8F77 ,0x5F1A //CJK UNIFIED IDEOGRAPH - ,0x8F78 ,0x5F1C //CJK UNIFIED IDEOGRAPH - ,0x8F79 ,0x5F1D //CJK UNIFIED IDEOGRAPH - ,0x8F7A ,0x5F1E //CJK UNIFIED IDEOGRAPH - ,0x8F7B ,0x5F21 //CJK UNIFIED IDEOGRAPH - ,0x8F7C ,0x5F22 //CJK UNIFIED IDEOGRAPH - ,0x8F7D ,0x5F23 //CJK UNIFIED IDEOGRAPH - ,0x8F7E ,0x5F24 //CJK UNIFIED IDEOGRAPH - ,0x8F80 ,0x5F28 //CJK UNIFIED IDEOGRAPH - ,0x8F81 ,0x5F2B //CJK UNIFIED IDEOGRAPH - ,0x8F82 ,0x5F2C //CJK UNIFIED IDEOGRAPH - ,0x8F83 ,0x5F2E //CJK UNIFIED IDEOGRAPH - ,0x8F84 ,0x5F30 //CJK UNIFIED IDEOGRAPH - ,0x8F85 ,0x5F32 //CJK UNIFIED IDEOGRAPH - ,0x8F86 ,0x5F33 //CJK UNIFIED IDEOGRAPH - ,0x8F87 ,0x5F34 //CJK UNIFIED IDEOGRAPH - ,0x8F88 ,0x5F35 //CJK UNIFIED IDEOGRAPH - ,0x8F89 ,0x5F36 //CJK UNIFIED IDEOGRAPH - ,0x8F8A ,0x5F37 //CJK UNIFIED IDEOGRAPH - ,0x8F8B ,0x5F38 //CJK UNIFIED IDEOGRAPH - ,0x8F8C ,0x5F3B //CJK UNIFIED IDEOGRAPH - ,0x8F8D ,0x5F3D //CJK UNIFIED IDEOGRAPH - ,0x8F8E ,0x5F3E //CJK UNIFIED IDEOGRAPH - ,0x8F8F ,0x5F3F //CJK UNIFIED IDEOGRAPH - ,0x8F90 ,0x5F41 //CJK UNIFIED IDEOGRAPH - ,0x8F91 ,0x5F42 //CJK UNIFIED IDEOGRAPH - ,0x8F92 ,0x5F43 //CJK UNIFIED IDEOGRAPH - ,0x8F93 ,0x5F44 //CJK UNIFIED IDEOGRAPH - ,0x8F94 ,0x5F45 //CJK UNIFIED IDEOGRAPH - ,0x8F95 ,0x5F46 //CJK UNIFIED IDEOGRAPH - ,0x8F96 ,0x5F47 //CJK UNIFIED IDEOGRAPH - ,0x8F97 ,0x5F48 //CJK UNIFIED IDEOGRAPH - ,0x8F98 ,0x5F49 //CJK UNIFIED IDEOGRAPH - ,0x8F99 ,0x5F4A //CJK UNIFIED IDEOGRAPH - ,0x8F9A ,0x5F4B //CJK UNIFIED IDEOGRAPH - ,0x8F9B ,0x5F4C //CJK UNIFIED IDEOGRAPH - ,0x8F9C ,0x5F4D //CJK UNIFIED IDEOGRAPH - ,0x8F9D ,0x5F4E //CJK UNIFIED IDEOGRAPH - ,0x8F9E ,0x5F4F //CJK UNIFIED IDEOGRAPH - ,0x8F9F ,0x5F51 //CJK UNIFIED IDEOGRAPH - ,0x8FA0 ,0x5F54 //CJK UNIFIED IDEOGRAPH - ,0x8FA1 ,0x5F59 //CJK UNIFIED IDEOGRAPH - ,0x8FA2 ,0x5F5A //CJK UNIFIED IDEOGRAPH - ,0x8FA3 ,0x5F5B //CJK UNIFIED IDEOGRAPH - ,0x8FA4 ,0x5F5C //CJK UNIFIED IDEOGRAPH - ,0x8FA5 ,0x5F5E //CJK UNIFIED IDEOGRAPH - ,0x8FA6 ,0x5F5F //CJK UNIFIED IDEOGRAPH - ,0x8FA7 ,0x5F60 //CJK UNIFIED IDEOGRAPH - ,0x8FA8 ,0x5F63 //CJK UNIFIED IDEOGRAPH - ,0x8FA9 ,0x5F65 //CJK UNIFIED IDEOGRAPH - ,0x8FAA ,0x5F67 //CJK UNIFIED IDEOGRAPH - ,0x8FAB ,0x5F68 //CJK UNIFIED IDEOGRAPH - ,0x8FAC ,0x5F6B //CJK UNIFIED IDEOGRAPH - ,0x8FAD ,0x5F6E //CJK UNIFIED IDEOGRAPH - ,0x8FAE ,0x5F6F //CJK UNIFIED IDEOGRAPH - ,0x8FAF ,0x5F72 //CJK UNIFIED IDEOGRAPH - ,0x8FB0 ,0x5F74 //CJK UNIFIED IDEOGRAPH - ,0x8FB1 ,0x5F75 //CJK UNIFIED IDEOGRAPH - ,0x8FB2 ,0x5F76 //CJK UNIFIED IDEOGRAPH - ,0x8FB3 ,0x5F78 //CJK UNIFIED IDEOGRAPH - ,0x8FB4 ,0x5F7A //CJK UNIFIED IDEOGRAPH - ,0x8FB5 ,0x5F7D //CJK UNIFIED IDEOGRAPH - ,0x8FB6 ,0x5F7E //CJK UNIFIED IDEOGRAPH - ,0x8FB7 ,0x5F7F //CJK UNIFIED IDEOGRAPH - ,0x8FB8 ,0x5F83 //CJK UNIFIED IDEOGRAPH - ,0x8FB9 ,0x5F86 //CJK UNIFIED IDEOGRAPH - ,0x8FBA ,0x5F8D //CJK UNIFIED IDEOGRAPH - ,0x8FBB ,0x5F8E //CJK UNIFIED IDEOGRAPH - ,0x8FBC ,0x5F8F //CJK UNIFIED IDEOGRAPH - ,0x8FBD ,0x5F91 //CJK UNIFIED IDEOGRAPH - ,0x8FBE ,0x5F93 //CJK UNIFIED IDEOGRAPH - ,0x8FBF ,0x5F94 //CJK UNIFIED IDEOGRAPH - ,0x8FC0 ,0x5F96 //CJK UNIFIED IDEOGRAPH - ,0x8FC1 ,0x5F9A //CJK UNIFIED IDEOGRAPH - ,0x8FC2 ,0x5F9B //CJK UNIFIED IDEOGRAPH - ,0x8FC3 ,0x5F9D //CJK UNIFIED IDEOGRAPH - ,0x8FC4 ,0x5F9E //CJK UNIFIED IDEOGRAPH - ,0x8FC5 ,0x5F9F //CJK UNIFIED IDEOGRAPH - ,0x8FC6 ,0x5FA0 //CJK UNIFIED IDEOGRAPH - ,0x8FC7 ,0x5FA2 //CJK UNIFIED IDEOGRAPH - ,0x8FC8 ,0x5FA3 //CJK UNIFIED IDEOGRAPH - ,0x8FC9 ,0x5FA4 //CJK UNIFIED IDEOGRAPH - ,0x8FCA ,0x5FA5 //CJK UNIFIED IDEOGRAPH - ,0x8FCB ,0x5FA6 //CJK UNIFIED IDEOGRAPH - ,0x8FCC ,0x5FA7 //CJK UNIFIED IDEOGRAPH - ,0x8FCD ,0x5FA9 //CJK UNIFIED IDEOGRAPH - ,0x8FCE ,0x5FAB //CJK UNIFIED IDEOGRAPH - ,0x8FCF ,0x5FAC //CJK UNIFIED IDEOGRAPH - ,0x8FD0 ,0x5FAF //CJK UNIFIED IDEOGRAPH - ,0x8FD1 ,0x5FB0 //CJK UNIFIED IDEOGRAPH - ,0x8FD2 ,0x5FB1 //CJK UNIFIED IDEOGRAPH - ,0x8FD3 ,0x5FB2 //CJK UNIFIED IDEOGRAPH - ,0x8FD4 ,0x5FB3 //CJK UNIFIED IDEOGRAPH - ,0x8FD5 ,0x5FB4 //CJK UNIFIED IDEOGRAPH - ,0x8FD6 ,0x5FB6 //CJK UNIFIED IDEOGRAPH - ,0x8FD7 ,0x5FB8 //CJK UNIFIED IDEOGRAPH - ,0x8FD8 ,0x5FB9 //CJK UNIFIED IDEOGRAPH - ,0x8FD9 ,0x5FBA //CJK UNIFIED IDEOGRAPH - ,0x8FDA ,0x5FBB //CJK UNIFIED IDEOGRAPH - ,0x8FDB ,0x5FBE //CJK UNIFIED IDEOGRAPH - ,0x8FDC ,0x5FBF //CJK UNIFIED IDEOGRAPH - ,0x8FDD ,0x5FC0 //CJK UNIFIED IDEOGRAPH - ,0x8FDE ,0x5FC1 //CJK UNIFIED IDEOGRAPH - ,0x8FDF ,0x5FC2 //CJK UNIFIED IDEOGRAPH - ,0x8FE0 ,0x5FC7 //CJK UNIFIED IDEOGRAPH - ,0x8FE1 ,0x5FC8 //CJK UNIFIED IDEOGRAPH - ,0x8FE2 ,0x5FCA //CJK UNIFIED IDEOGRAPH - ,0x8FE3 ,0x5FCB //CJK UNIFIED IDEOGRAPH - ,0x8FE4 ,0x5FCE //CJK UNIFIED IDEOGRAPH - ,0x8FE5 ,0x5FD3 //CJK UNIFIED IDEOGRAPH - ,0x8FE6 ,0x5FD4 //CJK UNIFIED IDEOGRAPH - ,0x8FE7 ,0x5FD5 //CJK UNIFIED IDEOGRAPH - ,0x8FE8 ,0x5FDA //CJK UNIFIED IDEOGRAPH - ,0x8FE9 ,0x5FDB //CJK UNIFIED IDEOGRAPH - ,0x8FEA ,0x5FDC //CJK UNIFIED IDEOGRAPH - ,0x8FEB ,0x5FDE //CJK UNIFIED IDEOGRAPH - ,0x8FEC ,0x5FDF //CJK UNIFIED IDEOGRAPH - ,0x8FED ,0x5FE2 //CJK UNIFIED IDEOGRAPH - ,0x8FEE ,0x5FE3 //CJK UNIFIED IDEOGRAPH - ,0x8FEF ,0x5FE5 //CJK UNIFIED IDEOGRAPH - ,0x8FF0 ,0x5FE6 //CJK UNIFIED IDEOGRAPH - ,0x8FF1 ,0x5FE8 //CJK UNIFIED IDEOGRAPH - ,0x8FF2 ,0x5FE9 //CJK UNIFIED IDEOGRAPH - ,0x8FF3 ,0x5FEC //CJK UNIFIED IDEOGRAPH - ,0x8FF4 ,0x5FEF //CJK UNIFIED IDEOGRAPH - ,0x8FF5 ,0x5FF0 //CJK UNIFIED IDEOGRAPH - ,0x8FF6 ,0x5FF2 //CJK UNIFIED IDEOGRAPH - ,0x8FF7 ,0x5FF3 //CJK UNIFIED IDEOGRAPH - ,0x8FF8 ,0x5FF4 //CJK UNIFIED IDEOGRAPH - ,0x8FF9 ,0x5FF6 //CJK UNIFIED IDEOGRAPH - ,0x8FFA ,0x5FF7 //CJK UNIFIED IDEOGRAPH - ,0x8FFB ,0x5FF9 //CJK UNIFIED IDEOGRAPH - ,0x8FFC ,0x5FFA //CJK UNIFIED IDEOGRAPH - ,0x8FFD ,0x5FFC //CJK UNIFIED IDEOGRAPH - ,0x8FFE ,0x6007 //CJK UNIFIED IDEOGRAPH - ,0x9040 ,0x6008 //CJK UNIFIED IDEOGRAPH - ,0x9041 ,0x6009 //CJK UNIFIED IDEOGRAPH - ,0x9042 ,0x600B //CJK UNIFIED IDEOGRAPH - ,0x9043 ,0x600C //CJK UNIFIED IDEOGRAPH - ,0x9044 ,0x6010 //CJK UNIFIED IDEOGRAPH - ,0x9045 ,0x6011 //CJK UNIFIED IDEOGRAPH - ,0x9046 ,0x6013 //CJK UNIFIED IDEOGRAPH - ,0x9047 ,0x6017 //CJK UNIFIED IDEOGRAPH - ,0x9048 ,0x6018 //CJK UNIFIED IDEOGRAPH - ,0x9049 ,0x601A //CJK UNIFIED IDEOGRAPH - ,0x904A ,0x601E //CJK UNIFIED IDEOGRAPH - ,0x904B ,0x601F //CJK UNIFIED IDEOGRAPH - ,0x904C ,0x6022 //CJK UNIFIED IDEOGRAPH - ,0x904D ,0x6023 //CJK UNIFIED IDEOGRAPH - ,0x904E ,0x6024 //CJK UNIFIED IDEOGRAPH - ,0x904F ,0x602C //CJK UNIFIED IDEOGRAPH - ,0x9050 ,0x602D //CJK UNIFIED IDEOGRAPH - ,0x9051 ,0x602E //CJK UNIFIED IDEOGRAPH - ,0x9052 ,0x6030 //CJK UNIFIED IDEOGRAPH - ,0x9053 ,0x6031 //CJK UNIFIED IDEOGRAPH - ,0x9054 ,0x6032 //CJK UNIFIED IDEOGRAPH - ,0x9055 ,0x6033 //CJK UNIFIED IDEOGRAPH - ,0x9056 ,0x6034 //CJK UNIFIED IDEOGRAPH - ,0x9057 ,0x6036 //CJK UNIFIED IDEOGRAPH - ,0x9058 ,0x6037 //CJK UNIFIED IDEOGRAPH - ,0x9059 ,0x6038 //CJK UNIFIED IDEOGRAPH - ,0x905A ,0x6039 //CJK UNIFIED IDEOGRAPH - ,0x905B ,0x603A //CJK UNIFIED IDEOGRAPH - ,0x905C ,0x603D //CJK UNIFIED IDEOGRAPH - ,0x905D ,0x603E //CJK UNIFIED IDEOGRAPH - ,0x905E ,0x6040 //CJK UNIFIED IDEOGRAPH - ,0x905F ,0x6044 //CJK UNIFIED IDEOGRAPH - ,0x9060 ,0x6045 //CJK UNIFIED IDEOGRAPH - ,0x9061 ,0x6046 //CJK UNIFIED IDEOGRAPH - ,0x9062 ,0x6047 //CJK UNIFIED IDEOGRAPH - ,0x9063 ,0x6048 //CJK UNIFIED IDEOGRAPH - ,0x9064 ,0x6049 //CJK UNIFIED IDEOGRAPH - ,0x9065 ,0x604A //CJK UNIFIED IDEOGRAPH - ,0x9066 ,0x604C //CJK UNIFIED IDEOGRAPH - ,0x9067 ,0x604E //CJK UNIFIED IDEOGRAPH - ,0x9068 ,0x604F //CJK UNIFIED IDEOGRAPH - ,0x9069 ,0x6051 //CJK UNIFIED IDEOGRAPH - ,0x906A ,0x6053 //CJK UNIFIED IDEOGRAPH - ,0x906B ,0x6054 //CJK UNIFIED IDEOGRAPH - ,0x906C ,0x6056 //CJK UNIFIED IDEOGRAPH - ,0x906D ,0x6057 //CJK UNIFIED IDEOGRAPH - ,0x906E ,0x6058 //CJK UNIFIED IDEOGRAPH - ,0x906F ,0x605B //CJK UNIFIED IDEOGRAPH - ,0x9070 ,0x605C //CJK UNIFIED IDEOGRAPH - ,0x9071 ,0x605E //CJK UNIFIED IDEOGRAPH - ,0x9072 ,0x605F //CJK UNIFIED IDEOGRAPH - ,0x9073 ,0x6060 //CJK UNIFIED IDEOGRAPH - ,0x9074 ,0x6061 //CJK UNIFIED IDEOGRAPH - ,0x9075 ,0x6065 //CJK UNIFIED IDEOGRAPH - ,0x9076 ,0x6066 //CJK UNIFIED IDEOGRAPH - ,0x9077 ,0x606E //CJK UNIFIED IDEOGRAPH - ,0x9078 ,0x6071 //CJK UNIFIED IDEOGRAPH - ,0x9079 ,0x6072 //CJK UNIFIED IDEOGRAPH - ,0x907A ,0x6074 //CJK UNIFIED IDEOGRAPH - ,0x907B ,0x6075 //CJK UNIFIED IDEOGRAPH - ,0x907C ,0x6077 //CJK UNIFIED IDEOGRAPH - ,0x907D ,0x607E //CJK UNIFIED IDEOGRAPH - ,0x907E ,0x6080 //CJK UNIFIED IDEOGRAPH - ,0x9080 ,0x6081 //CJK UNIFIED IDEOGRAPH - ,0x9081 ,0x6082 //CJK UNIFIED IDEOGRAPH - ,0x9082 ,0x6085 //CJK UNIFIED IDEOGRAPH - ,0x9083 ,0x6086 //CJK UNIFIED IDEOGRAPH - ,0x9084 ,0x6087 //CJK UNIFIED IDEOGRAPH - ,0x9085 ,0x6088 //CJK UNIFIED IDEOGRAPH - ,0x9086 ,0x608A //CJK UNIFIED IDEOGRAPH - ,0x9087 ,0x608B //CJK UNIFIED IDEOGRAPH - ,0x9088 ,0x608E //CJK UNIFIED IDEOGRAPH - ,0x9089 ,0x608F //CJK UNIFIED IDEOGRAPH - ,0x908A ,0x6090 //CJK UNIFIED IDEOGRAPH - ,0x908B ,0x6091 //CJK UNIFIED IDEOGRAPH - ,0x908C ,0x6093 //CJK UNIFIED IDEOGRAPH - ,0x908D ,0x6095 //CJK UNIFIED IDEOGRAPH - ,0x908E ,0x6097 //CJK UNIFIED IDEOGRAPH - ,0x908F ,0x6098 //CJK UNIFIED IDEOGRAPH - ,0x9090 ,0x6099 //CJK UNIFIED IDEOGRAPH - ,0x9091 ,0x609C //CJK UNIFIED IDEOGRAPH - ,0x9092 ,0x609E //CJK UNIFIED IDEOGRAPH - ,0x9093 ,0x60A1 //CJK UNIFIED IDEOGRAPH - ,0x9094 ,0x60A2 //CJK UNIFIED IDEOGRAPH - ,0x9095 ,0x60A4 //CJK UNIFIED IDEOGRAPH - ,0x9096 ,0x60A5 //CJK UNIFIED IDEOGRAPH - ,0x9097 ,0x60A7 //CJK UNIFIED IDEOGRAPH - ,0x9098 ,0x60A9 //CJK UNIFIED IDEOGRAPH - ,0x9099 ,0x60AA //CJK UNIFIED IDEOGRAPH - ,0x909A ,0x60AE //CJK UNIFIED IDEOGRAPH - ,0x909B ,0x60B0 //CJK UNIFIED IDEOGRAPH - ,0x909C ,0x60B3 //CJK UNIFIED IDEOGRAPH - ,0x909D ,0x60B5 //CJK UNIFIED IDEOGRAPH - ,0x909E ,0x60B6 //CJK UNIFIED IDEOGRAPH - ,0x909F ,0x60B7 //CJK UNIFIED IDEOGRAPH - ,0x90A0 ,0x60B9 //CJK UNIFIED IDEOGRAPH - ,0x90A1 ,0x60BA //CJK UNIFIED IDEOGRAPH - ,0x90A2 ,0x60BD //CJK UNIFIED IDEOGRAPH - ,0x90A3 ,0x60BE //CJK UNIFIED IDEOGRAPH - ,0x90A4 ,0x60BF //CJK UNIFIED IDEOGRAPH - ,0x90A5 ,0x60C0 //CJK UNIFIED IDEOGRAPH - ,0x90A6 ,0x60C1 //CJK UNIFIED IDEOGRAPH - ,0x90A7 ,0x60C2 //CJK UNIFIED IDEOGRAPH - ,0x90A8 ,0x60C3 //CJK UNIFIED IDEOGRAPH - ,0x90A9 ,0x60C4 //CJK UNIFIED IDEOGRAPH - ,0x90AA ,0x60C7 //CJK UNIFIED IDEOGRAPH - ,0x90AB ,0x60C8 //CJK UNIFIED IDEOGRAPH - ,0x90AC ,0x60C9 //CJK UNIFIED IDEOGRAPH - ,0x90AD ,0x60CC //CJK UNIFIED IDEOGRAPH - ,0x90AE ,0x60CD //CJK UNIFIED IDEOGRAPH - ,0x90AF ,0x60CE //CJK UNIFIED IDEOGRAPH - ,0x90B0 ,0x60CF //CJK UNIFIED IDEOGRAPH - ,0x90B1 ,0x60D0 //CJK UNIFIED IDEOGRAPH - ,0x90B2 ,0x60D2 //CJK UNIFIED IDEOGRAPH - ,0x90B3 ,0x60D3 //CJK UNIFIED IDEOGRAPH - ,0x90B4 ,0x60D4 //CJK UNIFIED IDEOGRAPH - ,0x90B5 ,0x60D6 //CJK UNIFIED IDEOGRAPH - ,0x90B6 ,0x60D7 //CJK UNIFIED IDEOGRAPH - ,0x90B7 ,0x60D9 //CJK UNIFIED IDEOGRAPH - ,0x90B8 ,0x60DB //CJK UNIFIED IDEOGRAPH - ,0x90B9 ,0x60DE //CJK UNIFIED IDEOGRAPH - ,0x90BA ,0x60E1 //CJK UNIFIED IDEOGRAPH - ,0x90BB ,0x60E2 //CJK UNIFIED IDEOGRAPH - ,0x90BC ,0x60E3 //CJK UNIFIED IDEOGRAPH - ,0x90BD ,0x60E4 //CJK UNIFIED IDEOGRAPH - ,0x90BE ,0x60E5 //CJK UNIFIED IDEOGRAPH - ,0x90BF ,0x60EA //CJK UNIFIED IDEOGRAPH - ,0x90C0 ,0x60F1 //CJK UNIFIED IDEOGRAPH - ,0x90C1 ,0x60F2 //CJK UNIFIED IDEOGRAPH - ,0x90C2 ,0x60F5 //CJK UNIFIED IDEOGRAPH - ,0x90C3 ,0x60F7 //CJK UNIFIED IDEOGRAPH - ,0x90C4 ,0x60F8 //CJK UNIFIED IDEOGRAPH - ,0x90C5 ,0x60FB //CJK UNIFIED IDEOGRAPH - ,0x90C6 ,0x60FC //CJK UNIFIED IDEOGRAPH - ,0x90C7 ,0x60FD //CJK UNIFIED IDEOGRAPH - ,0x90C8 ,0x60FE //CJK UNIFIED IDEOGRAPH - ,0x90C9 ,0x60FF //CJK UNIFIED IDEOGRAPH - ,0x90CA ,0x6102 //CJK UNIFIED IDEOGRAPH - ,0x90CB ,0x6103 //CJK UNIFIED IDEOGRAPH - ,0x90CC ,0x6104 //CJK UNIFIED IDEOGRAPH - ,0x90CD ,0x6105 //CJK UNIFIED IDEOGRAPH - ,0x90CE ,0x6107 //CJK UNIFIED IDEOGRAPH - ,0x90CF ,0x610A //CJK UNIFIED IDEOGRAPH - ,0x90D0 ,0x610B //CJK UNIFIED IDEOGRAPH - ,0x90D1 ,0x610C //CJK UNIFIED IDEOGRAPH - ,0x90D2 ,0x6110 //CJK UNIFIED IDEOGRAPH - ,0x90D3 ,0x6111 //CJK UNIFIED IDEOGRAPH - ,0x90D4 ,0x6112 //CJK UNIFIED IDEOGRAPH - ,0x90D5 ,0x6113 //CJK UNIFIED IDEOGRAPH - ,0x90D6 ,0x6114 //CJK UNIFIED IDEOGRAPH - ,0x90D7 ,0x6116 //CJK UNIFIED IDEOGRAPH - ,0x90D8 ,0x6117 //CJK UNIFIED IDEOGRAPH - ,0x90D9 ,0x6118 //CJK UNIFIED IDEOGRAPH - ,0x90DA ,0x6119 //CJK UNIFIED IDEOGRAPH - ,0x90DB ,0x611B //CJK UNIFIED IDEOGRAPH - ,0x90DC ,0x611C //CJK UNIFIED IDEOGRAPH - ,0x90DD ,0x611D //CJK UNIFIED IDEOGRAPH - ,0x90DE ,0x611E //CJK UNIFIED IDEOGRAPH - ,0x90DF ,0x6121 //CJK UNIFIED IDEOGRAPH - ,0x90E0 ,0x6122 //CJK UNIFIED IDEOGRAPH - ,0x90E1 ,0x6125 //CJK UNIFIED IDEOGRAPH - ,0x90E2 ,0x6128 //CJK UNIFIED IDEOGRAPH - ,0x90E3 ,0x6129 //CJK UNIFIED IDEOGRAPH - ,0x90E4 ,0x612A //CJK UNIFIED IDEOGRAPH - ,0x90E5 ,0x612C //CJK UNIFIED IDEOGRAPH - ,0x90E6 ,0x612D //CJK UNIFIED IDEOGRAPH - ,0x90E7 ,0x612E //CJK UNIFIED IDEOGRAPH - ,0x90E8 ,0x612F //CJK UNIFIED IDEOGRAPH - ,0x90E9 ,0x6130 //CJK UNIFIED IDEOGRAPH - ,0x90EA ,0x6131 //CJK UNIFIED IDEOGRAPH - ,0x90EB ,0x6132 //CJK UNIFIED IDEOGRAPH - ,0x90EC ,0x6133 //CJK UNIFIED IDEOGRAPH - ,0x90ED ,0x6134 //CJK UNIFIED IDEOGRAPH - ,0x90EE ,0x6135 //CJK UNIFIED IDEOGRAPH - ,0x90EF ,0x6136 //CJK UNIFIED IDEOGRAPH - ,0x90F0 ,0x6137 //CJK UNIFIED IDEOGRAPH - ,0x90F1 ,0x6138 //CJK UNIFIED IDEOGRAPH - ,0x90F2 ,0x6139 //CJK UNIFIED IDEOGRAPH - ,0x90F3 ,0x613A //CJK UNIFIED IDEOGRAPH - ,0x90F4 ,0x613B //CJK UNIFIED IDEOGRAPH - ,0x90F5 ,0x613C //CJK UNIFIED IDEOGRAPH - ,0x90F6 ,0x613D //CJK UNIFIED IDEOGRAPH - ,0x90F7 ,0x613E //CJK UNIFIED IDEOGRAPH - ,0x90F8 ,0x6140 //CJK UNIFIED IDEOGRAPH - ,0x90F9 ,0x6141 //CJK UNIFIED IDEOGRAPH - ,0x90FA ,0x6142 //CJK UNIFIED IDEOGRAPH - ,0x90FB ,0x6143 //CJK UNIFIED IDEOGRAPH - ,0x90FC ,0x6144 //CJK UNIFIED IDEOGRAPH - ,0x90FD ,0x6145 //CJK UNIFIED IDEOGRAPH - ,0x90FE ,0x6146 //CJK UNIFIED IDEOGRAPH - ,0x9140 ,0x6147 //CJK UNIFIED IDEOGRAPH - ,0x9141 ,0x6149 //CJK UNIFIED IDEOGRAPH - ,0x9142 ,0x614B //CJK UNIFIED IDEOGRAPH - ,0x9143 ,0x614D //CJK UNIFIED IDEOGRAPH - ,0x9144 ,0x614F //CJK UNIFIED IDEOGRAPH - ,0x9145 ,0x6150 //CJK UNIFIED IDEOGRAPH - ,0x9146 ,0x6152 //CJK UNIFIED IDEOGRAPH - ,0x9147 ,0x6153 //CJK UNIFIED IDEOGRAPH - ,0x9148 ,0x6154 //CJK UNIFIED IDEOGRAPH - ,0x9149 ,0x6156 //CJK UNIFIED IDEOGRAPH - ,0x914A ,0x6157 //CJK UNIFIED IDEOGRAPH - ,0x914B ,0x6158 //CJK UNIFIED IDEOGRAPH - ,0x914C ,0x6159 //CJK UNIFIED IDEOGRAPH - ,0x914D ,0x615A //CJK UNIFIED IDEOGRAPH - ,0x914E ,0x615B //CJK UNIFIED IDEOGRAPH - ,0x914F ,0x615C //CJK UNIFIED IDEOGRAPH - ,0x9150 ,0x615E //CJK UNIFIED IDEOGRAPH - ,0x9151 ,0x615F //CJK UNIFIED IDEOGRAPH - ,0x9152 ,0x6160 //CJK UNIFIED IDEOGRAPH - ,0x9153 ,0x6161 //CJK UNIFIED IDEOGRAPH - ,0x9154 ,0x6163 //CJK UNIFIED IDEOGRAPH - ,0x9155 ,0x6164 //CJK UNIFIED IDEOGRAPH - ,0x9156 ,0x6165 //CJK UNIFIED IDEOGRAPH - ,0x9157 ,0x6166 //CJK UNIFIED IDEOGRAPH - ,0x9158 ,0x6169 //CJK UNIFIED IDEOGRAPH - ,0x9159 ,0x616A //CJK UNIFIED IDEOGRAPH - ,0x915A ,0x616B //CJK UNIFIED IDEOGRAPH - ,0x915B ,0x616C //CJK UNIFIED IDEOGRAPH - ,0x915C ,0x616D //CJK UNIFIED IDEOGRAPH - ,0x915D ,0x616E //CJK UNIFIED IDEOGRAPH - ,0x915E ,0x616F //CJK UNIFIED IDEOGRAPH - ,0x915F ,0x6171 //CJK UNIFIED IDEOGRAPH - ,0x9160 ,0x6172 //CJK UNIFIED IDEOGRAPH - ,0x9161 ,0x6173 //CJK UNIFIED IDEOGRAPH - ,0x9162 ,0x6174 //CJK UNIFIED IDEOGRAPH - ,0x9163 ,0x6176 //CJK UNIFIED IDEOGRAPH - ,0x9164 ,0x6178 //CJK UNIFIED IDEOGRAPH - ,0x9165 ,0x6179 //CJK UNIFIED IDEOGRAPH - ,0x9166 ,0x617A //CJK UNIFIED IDEOGRAPH - ,0x9167 ,0x617B //CJK UNIFIED IDEOGRAPH - ,0x9168 ,0x617C //CJK UNIFIED IDEOGRAPH - ,0x9169 ,0x617D //CJK UNIFIED IDEOGRAPH - ,0x916A ,0x617E //CJK UNIFIED IDEOGRAPH - ,0x916B ,0x617F //CJK UNIFIED IDEOGRAPH - ,0x916C ,0x6180 //CJK UNIFIED IDEOGRAPH - ,0x916D ,0x6181 //CJK UNIFIED IDEOGRAPH - ,0x916E ,0x6182 //CJK UNIFIED IDEOGRAPH - ,0x916F ,0x6183 //CJK UNIFIED IDEOGRAPH - ,0x9170 ,0x6184 //CJK UNIFIED IDEOGRAPH - ,0x9171 ,0x6185 //CJK UNIFIED IDEOGRAPH - ,0x9172 ,0x6186 //CJK UNIFIED IDEOGRAPH - ,0x9173 ,0x6187 //CJK UNIFIED IDEOGRAPH - ,0x9174 ,0x6188 //CJK UNIFIED IDEOGRAPH - ,0x9175 ,0x6189 //CJK UNIFIED IDEOGRAPH - ,0x9176 ,0x618A //CJK UNIFIED IDEOGRAPH - ,0x9177 ,0x618C //CJK UNIFIED IDEOGRAPH - ,0x9178 ,0x618D //CJK UNIFIED IDEOGRAPH - ,0x9179 ,0x618F //CJK UNIFIED IDEOGRAPH - ,0x917A ,0x6190 //CJK UNIFIED IDEOGRAPH - ,0x917B ,0x6191 //CJK UNIFIED IDEOGRAPH - ,0x917C ,0x6192 //CJK UNIFIED IDEOGRAPH - ,0x917D ,0x6193 //CJK UNIFIED IDEOGRAPH - ,0x917E ,0x6195 //CJK UNIFIED IDEOGRAPH - ,0x9180 ,0x6196 //CJK UNIFIED IDEOGRAPH - ,0x9181 ,0x6197 //CJK UNIFIED IDEOGRAPH - ,0x9182 ,0x6198 //CJK UNIFIED IDEOGRAPH - ,0x9183 ,0x6199 //CJK UNIFIED IDEOGRAPH - ,0x9184 ,0x619A //CJK UNIFIED IDEOGRAPH - ,0x9185 ,0x619B //CJK UNIFIED IDEOGRAPH - ,0x9186 ,0x619C //CJK UNIFIED IDEOGRAPH - ,0x9187 ,0x619E //CJK UNIFIED IDEOGRAPH - ,0x9188 ,0x619F //CJK UNIFIED IDEOGRAPH - ,0x9189 ,0x61A0 //CJK UNIFIED IDEOGRAPH - ,0x918A ,0x61A1 //CJK UNIFIED IDEOGRAPH - ,0x918B ,0x61A2 //CJK UNIFIED IDEOGRAPH - ,0x918C ,0x61A3 //CJK UNIFIED IDEOGRAPH - ,0x918D ,0x61A4 //CJK UNIFIED IDEOGRAPH - ,0x918E ,0x61A5 //CJK UNIFIED IDEOGRAPH - ,0x918F ,0x61A6 //CJK UNIFIED IDEOGRAPH - ,0x9190 ,0x61AA //CJK UNIFIED IDEOGRAPH - ,0x9191 ,0x61AB //CJK UNIFIED IDEOGRAPH - ,0x9192 ,0x61AD //CJK UNIFIED IDEOGRAPH - ,0x9193 ,0x61AE //CJK UNIFIED IDEOGRAPH - ,0x9194 ,0x61AF //CJK UNIFIED IDEOGRAPH - ,0x9195 ,0x61B0 //CJK UNIFIED IDEOGRAPH - ,0x9196 ,0x61B1 //CJK UNIFIED IDEOGRAPH - ,0x9197 ,0x61B2 //CJK UNIFIED IDEOGRAPH - ,0x9198 ,0x61B3 //CJK UNIFIED IDEOGRAPH - ,0x9199 ,0x61B4 //CJK UNIFIED IDEOGRAPH - ,0x919A ,0x61B5 //CJK UNIFIED IDEOGRAPH - ,0x919B ,0x61B6 //CJK UNIFIED IDEOGRAPH - ,0x919C ,0x61B8 //CJK UNIFIED IDEOGRAPH - ,0x919D ,0x61B9 //CJK UNIFIED IDEOGRAPH - ,0x919E ,0x61BA //CJK UNIFIED IDEOGRAPH - ,0x919F ,0x61BB //CJK UNIFIED IDEOGRAPH - ,0x91A0 ,0x61BC //CJK UNIFIED IDEOGRAPH - ,0x91A1 ,0x61BD //CJK UNIFIED IDEOGRAPH - ,0x91A2 ,0x61BF //CJK UNIFIED IDEOGRAPH - ,0x91A3 ,0x61C0 //CJK UNIFIED IDEOGRAPH - ,0x91A4 ,0x61C1 //CJK UNIFIED IDEOGRAPH - ,0x91A5 ,0x61C3 //CJK UNIFIED IDEOGRAPH - ,0x91A6 ,0x61C4 //CJK UNIFIED IDEOGRAPH - ,0x91A7 ,0x61C5 //CJK UNIFIED IDEOGRAPH - ,0x91A8 ,0x61C6 //CJK UNIFIED IDEOGRAPH - ,0x91A9 ,0x61C7 //CJK UNIFIED IDEOGRAPH - ,0x91AA ,0x61C9 //CJK UNIFIED IDEOGRAPH - ,0x91AB ,0x61CC //CJK UNIFIED IDEOGRAPH - ,0x91AC ,0x61CD //CJK UNIFIED IDEOGRAPH - ,0x91AD ,0x61CE //CJK UNIFIED IDEOGRAPH - ,0x91AE ,0x61CF //CJK UNIFIED IDEOGRAPH - ,0x91AF ,0x61D0 //CJK UNIFIED IDEOGRAPH - ,0x91B0 ,0x61D3 //CJK UNIFIED IDEOGRAPH - ,0x91B1 ,0x61D5 //CJK UNIFIED IDEOGRAPH - ,0x91B2 ,0x61D6 //CJK UNIFIED IDEOGRAPH - ,0x91B3 ,0x61D7 //CJK UNIFIED IDEOGRAPH - ,0x91B4 ,0x61D8 //CJK UNIFIED IDEOGRAPH - ,0x91B5 ,0x61D9 //CJK UNIFIED IDEOGRAPH - ,0x91B6 ,0x61DA //CJK UNIFIED IDEOGRAPH - ,0x91B7 ,0x61DB //CJK UNIFIED IDEOGRAPH - ,0x91B8 ,0x61DC //CJK UNIFIED IDEOGRAPH - ,0x91B9 ,0x61DD //CJK UNIFIED IDEOGRAPH - ,0x91BA ,0x61DE //CJK UNIFIED IDEOGRAPH - ,0x91BB ,0x61DF //CJK UNIFIED IDEOGRAPH - ,0x91BC ,0x61E0 //CJK UNIFIED IDEOGRAPH - ,0x91BD ,0x61E1 //CJK UNIFIED IDEOGRAPH - ,0x91BE ,0x61E2 //CJK UNIFIED IDEOGRAPH - ,0x91BF ,0x61E3 //CJK UNIFIED IDEOGRAPH - ,0x91C0 ,0x61E4 //CJK UNIFIED IDEOGRAPH - ,0x91C1 ,0x61E5 //CJK UNIFIED IDEOGRAPH - ,0x91C2 ,0x61E7 //CJK UNIFIED IDEOGRAPH - ,0x91C3 ,0x61E8 //CJK UNIFIED IDEOGRAPH - ,0x91C4 ,0x61E9 //CJK UNIFIED IDEOGRAPH - ,0x91C5 ,0x61EA //CJK UNIFIED IDEOGRAPH - ,0x91C6 ,0x61EB //CJK UNIFIED IDEOGRAPH - ,0x91C7 ,0x61EC //CJK UNIFIED IDEOGRAPH - ,0x91C8 ,0x61ED //CJK UNIFIED IDEOGRAPH - ,0x91C9 ,0x61EE //CJK UNIFIED IDEOGRAPH - ,0x91CA ,0x61EF //CJK UNIFIED IDEOGRAPH - ,0x91CB ,0x61F0 //CJK UNIFIED IDEOGRAPH - ,0x91CC ,0x61F1 //CJK UNIFIED IDEOGRAPH - ,0x91CD ,0x61F2 //CJK UNIFIED IDEOGRAPH - ,0x91CE ,0x61F3 //CJK UNIFIED IDEOGRAPH - ,0x91CF ,0x61F4 //CJK UNIFIED IDEOGRAPH - ,0x91D0 ,0x61F6 //CJK UNIFIED IDEOGRAPH - ,0x91D1 ,0x61F7 //CJK UNIFIED IDEOGRAPH - ,0x91D2 ,0x61F8 //CJK UNIFIED IDEOGRAPH - ,0x91D3 ,0x61F9 //CJK UNIFIED IDEOGRAPH - ,0x91D4 ,0x61FA //CJK UNIFIED IDEOGRAPH - ,0x91D5 ,0x61FB //CJK UNIFIED IDEOGRAPH - ,0x91D6 ,0x61FC //CJK UNIFIED IDEOGRAPH - ,0x91D7 ,0x61FD //CJK UNIFIED IDEOGRAPH - ,0x91D8 ,0x61FE //CJK UNIFIED IDEOGRAPH - ,0x91D9 ,0x6200 //CJK UNIFIED IDEOGRAPH - ,0x91DA ,0x6201 //CJK UNIFIED IDEOGRAPH - ,0x91DB ,0x6202 //CJK UNIFIED IDEOGRAPH - ,0x91DC ,0x6203 //CJK UNIFIED IDEOGRAPH - ,0x91DD ,0x6204 //CJK UNIFIED IDEOGRAPH - ,0x91DE ,0x6205 //CJK UNIFIED IDEOGRAPH - ,0x91DF ,0x6207 //CJK UNIFIED IDEOGRAPH - ,0x91E0 ,0x6209 //CJK UNIFIED IDEOGRAPH - ,0x91E1 ,0x6213 //CJK UNIFIED IDEOGRAPH - ,0x91E2 ,0x6214 //CJK UNIFIED IDEOGRAPH - ,0x91E3 ,0x6219 //CJK UNIFIED IDEOGRAPH - ,0x91E4 ,0x621C //CJK UNIFIED IDEOGRAPH - ,0x91E5 ,0x621D //CJK UNIFIED IDEOGRAPH - ,0x91E6 ,0x621E //CJK UNIFIED IDEOGRAPH - ,0x91E7 ,0x6220 //CJK UNIFIED IDEOGRAPH - ,0x91E8 ,0x6223 //CJK UNIFIED IDEOGRAPH - ,0x91E9 ,0x6226 //CJK UNIFIED IDEOGRAPH - ,0x91EA ,0x6227 //CJK UNIFIED IDEOGRAPH - ,0x91EB ,0x6228 //CJK UNIFIED IDEOGRAPH - ,0x91EC ,0x6229 //CJK UNIFIED IDEOGRAPH - ,0x91ED ,0x622B //CJK UNIFIED IDEOGRAPH - ,0x91EE ,0x622D //CJK UNIFIED IDEOGRAPH - ,0x91EF ,0x622F //CJK UNIFIED IDEOGRAPH - ,0x91F0 ,0x6230 //CJK UNIFIED IDEOGRAPH - ,0x91F1 ,0x6231 //CJK UNIFIED IDEOGRAPH - ,0x91F2 ,0x6232 //CJK UNIFIED IDEOGRAPH - ,0x91F3 ,0x6235 //CJK UNIFIED IDEOGRAPH - ,0x91F4 ,0x6236 //CJK UNIFIED IDEOGRAPH - ,0x91F5 ,0x6238 //CJK UNIFIED IDEOGRAPH - ,0x91F6 ,0x6239 //CJK UNIFIED IDEOGRAPH - ,0x91F7 ,0x623A //CJK UNIFIED IDEOGRAPH - ,0x91F8 ,0x623B //CJK UNIFIED IDEOGRAPH - ,0x91F9 ,0x623C //CJK UNIFIED IDEOGRAPH - ,0x91FA ,0x6242 //CJK UNIFIED IDEOGRAPH - ,0x91FB ,0x6244 //CJK UNIFIED IDEOGRAPH - ,0x91FC ,0x6245 //CJK UNIFIED IDEOGRAPH - ,0x91FD ,0x6246 //CJK UNIFIED IDEOGRAPH - ,0x91FE ,0x624A //CJK UNIFIED IDEOGRAPH - ,0x9240 ,0x624F //CJK UNIFIED IDEOGRAPH - ,0x9241 ,0x6250 //CJK UNIFIED IDEOGRAPH - ,0x9242 ,0x6255 //CJK UNIFIED IDEOGRAPH - ,0x9243 ,0x6256 //CJK UNIFIED IDEOGRAPH - ,0x9244 ,0x6257 //CJK UNIFIED IDEOGRAPH - ,0x9245 ,0x6259 //CJK UNIFIED IDEOGRAPH - ,0x9246 ,0x625A //CJK UNIFIED IDEOGRAPH - ,0x9247 ,0x625C //CJK UNIFIED IDEOGRAPH - ,0x9248 ,0x625D //CJK UNIFIED IDEOGRAPH - ,0x9249 ,0x625E //CJK UNIFIED IDEOGRAPH - ,0x924A ,0x625F //CJK UNIFIED IDEOGRAPH - ,0x924B ,0x6260 //CJK UNIFIED IDEOGRAPH - ,0x924C ,0x6261 //CJK UNIFIED IDEOGRAPH - ,0x924D ,0x6262 //CJK UNIFIED IDEOGRAPH - ,0x924E ,0x6264 //CJK UNIFIED IDEOGRAPH - ,0x924F ,0x6265 //CJK UNIFIED IDEOGRAPH - ,0x9250 ,0x6268 //CJK UNIFIED IDEOGRAPH - ,0x9251 ,0x6271 //CJK UNIFIED IDEOGRAPH - ,0x9252 ,0x6272 //CJK UNIFIED IDEOGRAPH - ,0x9253 ,0x6274 //CJK UNIFIED IDEOGRAPH - ,0x9254 ,0x6275 //CJK UNIFIED IDEOGRAPH - ,0x9255 ,0x6277 //CJK UNIFIED IDEOGRAPH - ,0x9256 ,0x6278 //CJK UNIFIED IDEOGRAPH - ,0x9257 ,0x627A //CJK UNIFIED IDEOGRAPH - ,0x9258 ,0x627B //CJK UNIFIED IDEOGRAPH - ,0x9259 ,0x627D //CJK UNIFIED IDEOGRAPH - ,0x925A ,0x6281 //CJK UNIFIED IDEOGRAPH - ,0x925B ,0x6282 //CJK UNIFIED IDEOGRAPH - ,0x925C ,0x6283 //CJK UNIFIED IDEOGRAPH - ,0x925D ,0x6285 //CJK UNIFIED IDEOGRAPH - ,0x925E ,0x6286 //CJK UNIFIED IDEOGRAPH - ,0x925F ,0x6287 //CJK UNIFIED IDEOGRAPH - ,0x9260 ,0x6288 //CJK UNIFIED IDEOGRAPH - ,0x9261 ,0x628B //CJK UNIFIED IDEOGRAPH - ,0x9262 ,0x628C //CJK UNIFIED IDEOGRAPH - ,0x9263 ,0x628D //CJK UNIFIED IDEOGRAPH - ,0x9264 ,0x628E //CJK UNIFIED IDEOGRAPH - ,0x9265 ,0x628F //CJK UNIFIED IDEOGRAPH - ,0x9266 ,0x6290 //CJK UNIFIED IDEOGRAPH - ,0x9267 ,0x6294 //CJK UNIFIED IDEOGRAPH - ,0x9268 ,0x6299 //CJK UNIFIED IDEOGRAPH - ,0x9269 ,0x629C //CJK UNIFIED IDEOGRAPH - ,0x926A ,0x629D //CJK UNIFIED IDEOGRAPH - ,0x926B ,0x629E //CJK UNIFIED IDEOGRAPH - ,0x926C ,0x62A3 //CJK UNIFIED IDEOGRAPH - ,0x926D ,0x62A6 //CJK UNIFIED IDEOGRAPH - ,0x926E ,0x62A7 //CJK UNIFIED IDEOGRAPH - ,0x926F ,0x62A9 //CJK UNIFIED IDEOGRAPH - ,0x9270 ,0x62AA //CJK UNIFIED IDEOGRAPH - ,0x9271 ,0x62AD //CJK UNIFIED IDEOGRAPH - ,0x9272 ,0x62AE //CJK UNIFIED IDEOGRAPH - ,0x9273 ,0x62AF //CJK UNIFIED IDEOGRAPH - ,0x9274 ,0x62B0 //CJK UNIFIED IDEOGRAPH - ,0x9275 ,0x62B2 //CJK UNIFIED IDEOGRAPH - ,0x9276 ,0x62B3 //CJK UNIFIED IDEOGRAPH - ,0x9277 ,0x62B4 //CJK UNIFIED IDEOGRAPH - ,0x9278 ,0x62B6 //CJK UNIFIED IDEOGRAPH - ,0x9279 ,0x62B7 //CJK UNIFIED IDEOGRAPH - ,0x927A ,0x62B8 //CJK UNIFIED IDEOGRAPH - ,0x927B ,0x62BA //CJK UNIFIED IDEOGRAPH - ,0x927C ,0x62BE //CJK UNIFIED IDEOGRAPH - ,0x927D ,0x62C0 //CJK UNIFIED IDEOGRAPH - ,0x927E ,0x62C1 //CJK UNIFIED IDEOGRAPH - ,0x9280 ,0x62C3 //CJK UNIFIED IDEOGRAPH - ,0x9281 ,0x62CB //CJK UNIFIED IDEOGRAPH - ,0x9282 ,0x62CF //CJK UNIFIED IDEOGRAPH - ,0x9283 ,0x62D1 //CJK UNIFIED IDEOGRAPH - ,0x9284 ,0x62D5 //CJK UNIFIED IDEOGRAPH - ,0x9285 ,0x62DD //CJK UNIFIED IDEOGRAPH - ,0x9286 ,0x62DE //CJK UNIFIED IDEOGRAPH - ,0x9287 ,0x62E0 //CJK UNIFIED IDEOGRAPH - ,0x9288 ,0x62E1 //CJK UNIFIED IDEOGRAPH - ,0x9289 ,0x62E4 //CJK UNIFIED IDEOGRAPH - ,0x928A ,0x62EA //CJK UNIFIED IDEOGRAPH - ,0x928B ,0x62EB //CJK UNIFIED IDEOGRAPH - ,0x928C ,0x62F0 //CJK UNIFIED IDEOGRAPH - ,0x928D ,0x62F2 //CJK UNIFIED IDEOGRAPH - ,0x928E ,0x62F5 //CJK UNIFIED IDEOGRAPH - ,0x928F ,0x62F8 //CJK UNIFIED IDEOGRAPH - ,0x9290 ,0x62F9 //CJK UNIFIED IDEOGRAPH - ,0x9291 ,0x62FA //CJK UNIFIED IDEOGRAPH - ,0x9292 ,0x62FB //CJK UNIFIED IDEOGRAPH - ,0x9293 ,0x6300 //CJK UNIFIED IDEOGRAPH - ,0x9294 ,0x6303 //CJK UNIFIED IDEOGRAPH - ,0x9295 ,0x6304 //CJK UNIFIED IDEOGRAPH - ,0x9296 ,0x6305 //CJK UNIFIED IDEOGRAPH - ,0x9297 ,0x6306 //CJK UNIFIED IDEOGRAPH - ,0x9298 ,0x630A //CJK UNIFIED IDEOGRAPH - ,0x9299 ,0x630B //CJK UNIFIED IDEOGRAPH - ,0x929A ,0x630C //CJK UNIFIED IDEOGRAPH - ,0x929B ,0x630D //CJK UNIFIED IDEOGRAPH - ,0x929C ,0x630F //CJK UNIFIED IDEOGRAPH - ,0x929D ,0x6310 //CJK UNIFIED IDEOGRAPH - ,0x929E ,0x6312 //CJK UNIFIED IDEOGRAPH - ,0x929F ,0x6313 //CJK UNIFIED IDEOGRAPH - ,0x92A0 ,0x6314 //CJK UNIFIED IDEOGRAPH - ,0x92A1 ,0x6315 //CJK UNIFIED IDEOGRAPH - ,0x92A2 ,0x6317 //CJK UNIFIED IDEOGRAPH - ,0x92A3 ,0x6318 //CJK UNIFIED IDEOGRAPH - ,0x92A4 ,0x6319 //CJK UNIFIED IDEOGRAPH - ,0x92A5 ,0x631C //CJK UNIFIED IDEOGRAPH - ,0x92A6 ,0x6326 //CJK UNIFIED IDEOGRAPH - ,0x92A7 ,0x6327 //CJK UNIFIED IDEOGRAPH - ,0x92A8 ,0x6329 //CJK UNIFIED IDEOGRAPH - ,0x92A9 ,0x632C //CJK UNIFIED IDEOGRAPH - ,0x92AA ,0x632D //CJK UNIFIED IDEOGRAPH - ,0x92AB ,0x632E //CJK UNIFIED IDEOGRAPH - ,0x92AC ,0x6330 //CJK UNIFIED IDEOGRAPH - ,0x92AD ,0x6331 //CJK UNIFIED IDEOGRAPH - ,0x92AE ,0x6333 //CJK UNIFIED IDEOGRAPH - ,0x92AF ,0x6334 //CJK UNIFIED IDEOGRAPH - ,0x92B0 ,0x6335 //CJK UNIFIED IDEOGRAPH - ,0x92B1 ,0x6336 //CJK UNIFIED IDEOGRAPH - ,0x92B2 ,0x6337 //CJK UNIFIED IDEOGRAPH - ,0x92B3 ,0x6338 //CJK UNIFIED IDEOGRAPH - ,0x92B4 ,0x633B //CJK UNIFIED IDEOGRAPH - ,0x92B5 ,0x633C //CJK UNIFIED IDEOGRAPH - ,0x92B6 ,0x633E //CJK UNIFIED IDEOGRAPH - ,0x92B7 ,0x633F //CJK UNIFIED IDEOGRAPH - ,0x92B8 ,0x6340 //CJK UNIFIED IDEOGRAPH - ,0x92B9 ,0x6341 //CJK UNIFIED IDEOGRAPH - ,0x92BA ,0x6344 //CJK UNIFIED IDEOGRAPH - ,0x92BB ,0x6347 //CJK UNIFIED IDEOGRAPH - ,0x92BC ,0x6348 //CJK UNIFIED IDEOGRAPH - ,0x92BD ,0x634A //CJK UNIFIED IDEOGRAPH - ,0x92BE ,0x6351 //CJK UNIFIED IDEOGRAPH - ,0x92BF ,0x6352 //CJK UNIFIED IDEOGRAPH - ,0x92C0 ,0x6353 //CJK UNIFIED IDEOGRAPH - ,0x92C1 ,0x6354 //CJK UNIFIED IDEOGRAPH - ,0x92C2 ,0x6356 //CJK UNIFIED IDEOGRAPH - ,0x92C3 ,0x6357 //CJK UNIFIED IDEOGRAPH - ,0x92C4 ,0x6358 //CJK UNIFIED IDEOGRAPH - ,0x92C5 ,0x6359 //CJK UNIFIED IDEOGRAPH - ,0x92C6 ,0x635A //CJK UNIFIED IDEOGRAPH - ,0x92C7 ,0x635B //CJK UNIFIED IDEOGRAPH - ,0x92C8 ,0x635C //CJK UNIFIED IDEOGRAPH - ,0x92C9 ,0x635D //CJK UNIFIED IDEOGRAPH - ,0x92CA ,0x6360 //CJK UNIFIED IDEOGRAPH - ,0x92CB ,0x6364 //CJK UNIFIED IDEOGRAPH - ,0x92CC ,0x6365 //CJK UNIFIED IDEOGRAPH - ,0x92CD ,0x6366 //CJK UNIFIED IDEOGRAPH - ,0x92CE ,0x6368 //CJK UNIFIED IDEOGRAPH - ,0x92CF ,0x636A //CJK UNIFIED IDEOGRAPH - ,0x92D0 ,0x636B //CJK UNIFIED IDEOGRAPH - ,0x92D1 ,0x636C //CJK UNIFIED IDEOGRAPH - ,0x92D2 ,0x636F //CJK UNIFIED IDEOGRAPH - ,0x92D3 ,0x6370 //CJK UNIFIED IDEOGRAPH - ,0x92D4 ,0x6372 //CJK UNIFIED IDEOGRAPH - ,0x92D5 ,0x6373 //CJK UNIFIED IDEOGRAPH - ,0x92D6 ,0x6374 //CJK UNIFIED IDEOGRAPH - ,0x92D7 ,0x6375 //CJK UNIFIED IDEOGRAPH - ,0x92D8 ,0x6378 //CJK UNIFIED IDEOGRAPH - ,0x92D9 ,0x6379 //CJK UNIFIED IDEOGRAPH - ,0x92DA ,0x637C //CJK UNIFIED IDEOGRAPH - ,0x92DB ,0x637D //CJK UNIFIED IDEOGRAPH - ,0x92DC ,0x637E //CJK UNIFIED IDEOGRAPH - ,0x92DD ,0x637F //CJK UNIFIED IDEOGRAPH - ,0x92DE ,0x6381 //CJK UNIFIED IDEOGRAPH - ,0x92DF ,0x6383 //CJK UNIFIED IDEOGRAPH - ,0x92E0 ,0x6384 //CJK UNIFIED IDEOGRAPH - ,0x92E1 ,0x6385 //CJK UNIFIED IDEOGRAPH - ,0x92E2 ,0x6386 //CJK UNIFIED IDEOGRAPH - ,0x92E3 ,0x638B //CJK UNIFIED IDEOGRAPH - ,0x92E4 ,0x638D //CJK UNIFIED IDEOGRAPH - ,0x92E5 ,0x6391 //CJK UNIFIED IDEOGRAPH - ,0x92E6 ,0x6393 //CJK UNIFIED IDEOGRAPH - ,0x92E7 ,0x6394 //CJK UNIFIED IDEOGRAPH - ,0x92E8 ,0x6395 //CJK UNIFIED IDEOGRAPH - ,0x92E9 ,0x6397 //CJK UNIFIED IDEOGRAPH - ,0x92EA ,0x6399 //CJK UNIFIED IDEOGRAPH - ,0x92EB ,0x639A //CJK UNIFIED IDEOGRAPH - ,0x92EC ,0x639B //CJK UNIFIED IDEOGRAPH - ,0x92ED ,0x639C //CJK UNIFIED IDEOGRAPH - ,0x92EE ,0x639D //CJK UNIFIED IDEOGRAPH - ,0x92EF ,0x639E //CJK UNIFIED IDEOGRAPH - ,0x92F0 ,0x639F //CJK UNIFIED IDEOGRAPH - ,0x92F1 ,0x63A1 //CJK UNIFIED IDEOGRAPH - ,0x92F2 ,0x63A4 //CJK UNIFIED IDEOGRAPH - ,0x92F3 ,0x63A6 //CJK UNIFIED IDEOGRAPH - ,0x92F4 ,0x63AB //CJK UNIFIED IDEOGRAPH - ,0x92F5 ,0x63AF //CJK UNIFIED IDEOGRAPH - ,0x92F6 ,0x63B1 //CJK UNIFIED IDEOGRAPH - ,0x92F7 ,0x63B2 //CJK UNIFIED IDEOGRAPH - ,0x92F8 ,0x63B5 //CJK UNIFIED IDEOGRAPH - ,0x92F9 ,0x63B6 //CJK UNIFIED IDEOGRAPH - ,0x92FA ,0x63B9 //CJK UNIFIED IDEOGRAPH - ,0x92FB ,0x63BB //CJK UNIFIED IDEOGRAPH - ,0x92FC ,0x63BD //CJK UNIFIED IDEOGRAPH - ,0x92FD ,0x63BF //CJK UNIFIED IDEOGRAPH - ,0x92FE ,0x63C0 //CJK UNIFIED IDEOGRAPH - ,0x9340 ,0x63C1 //CJK UNIFIED IDEOGRAPH - ,0x9341 ,0x63C2 //CJK UNIFIED IDEOGRAPH - ,0x9342 ,0x63C3 //CJK UNIFIED IDEOGRAPH - ,0x9343 ,0x63C5 //CJK UNIFIED IDEOGRAPH - ,0x9344 ,0x63C7 //CJK UNIFIED IDEOGRAPH - ,0x9345 ,0x63C8 //CJK UNIFIED IDEOGRAPH - ,0x9346 ,0x63CA //CJK UNIFIED IDEOGRAPH - ,0x9347 ,0x63CB //CJK UNIFIED IDEOGRAPH - ,0x9348 ,0x63CC //CJK UNIFIED IDEOGRAPH - ,0x9349 ,0x63D1 //CJK UNIFIED IDEOGRAPH - ,0x934A ,0x63D3 //CJK UNIFIED IDEOGRAPH - ,0x934B ,0x63D4 //CJK UNIFIED IDEOGRAPH - ,0x934C ,0x63D5 //CJK UNIFIED IDEOGRAPH - ,0x934D ,0x63D7 //CJK UNIFIED IDEOGRAPH - ,0x934E ,0x63D8 //CJK UNIFIED IDEOGRAPH - ,0x934F ,0x63D9 //CJK UNIFIED IDEOGRAPH - ,0x9350 ,0x63DA //CJK UNIFIED IDEOGRAPH - ,0x9351 ,0x63DB //CJK UNIFIED IDEOGRAPH - ,0x9352 ,0x63DC //CJK UNIFIED IDEOGRAPH - ,0x9353 ,0x63DD //CJK UNIFIED IDEOGRAPH - ,0x9354 ,0x63DF //CJK UNIFIED IDEOGRAPH - ,0x9355 ,0x63E2 //CJK UNIFIED IDEOGRAPH - ,0x9356 ,0x63E4 //CJK UNIFIED IDEOGRAPH - ,0x9357 ,0x63E5 //CJK UNIFIED IDEOGRAPH - ,0x9358 ,0x63E6 //CJK UNIFIED IDEOGRAPH - ,0x9359 ,0x63E7 //CJK UNIFIED IDEOGRAPH - ,0x935A ,0x63E8 //CJK UNIFIED IDEOGRAPH - ,0x935B ,0x63EB //CJK UNIFIED IDEOGRAPH - ,0x935C ,0x63EC //CJK UNIFIED IDEOGRAPH - ,0x935D ,0x63EE //CJK UNIFIED IDEOGRAPH - ,0x935E ,0x63EF //CJK UNIFIED IDEOGRAPH - ,0x935F ,0x63F0 //CJK UNIFIED IDEOGRAPH - ,0x9360 ,0x63F1 //CJK UNIFIED IDEOGRAPH - ,0x9361 ,0x63F3 //CJK UNIFIED IDEOGRAPH - ,0x9362 ,0x63F5 //CJK UNIFIED IDEOGRAPH - ,0x9363 ,0x63F7 //CJK UNIFIED IDEOGRAPH - ,0x9364 ,0x63F9 //CJK UNIFIED IDEOGRAPH - ,0x9365 ,0x63FA //CJK UNIFIED IDEOGRAPH - ,0x9366 ,0x63FB //CJK UNIFIED IDEOGRAPH - ,0x9367 ,0x63FC //CJK UNIFIED IDEOGRAPH - ,0x9368 ,0x63FE //CJK UNIFIED IDEOGRAPH - ,0x9369 ,0x6403 //CJK UNIFIED IDEOGRAPH - ,0x936A ,0x6404 //CJK UNIFIED IDEOGRAPH - ,0x936B ,0x6406 //CJK UNIFIED IDEOGRAPH - ,0x936C ,0x6407 //CJK UNIFIED IDEOGRAPH - ,0x936D ,0x6408 //CJK UNIFIED IDEOGRAPH - ,0x936E ,0x6409 //CJK UNIFIED IDEOGRAPH - ,0x936F ,0x640A //CJK UNIFIED IDEOGRAPH - ,0x9370 ,0x640D //CJK UNIFIED IDEOGRAPH - ,0x9371 ,0x640E //CJK UNIFIED IDEOGRAPH - ,0x9372 ,0x6411 //CJK UNIFIED IDEOGRAPH - ,0x9373 ,0x6412 //CJK UNIFIED IDEOGRAPH - ,0x9374 ,0x6415 //CJK UNIFIED IDEOGRAPH - ,0x9375 ,0x6416 //CJK UNIFIED IDEOGRAPH - ,0x9376 ,0x6417 //CJK UNIFIED IDEOGRAPH - ,0x9377 ,0x6418 //CJK UNIFIED IDEOGRAPH - ,0x9378 ,0x6419 //CJK UNIFIED IDEOGRAPH - ,0x9379 ,0x641A //CJK UNIFIED IDEOGRAPH - ,0x937A ,0x641D //CJK UNIFIED IDEOGRAPH - ,0x937B ,0x641F //CJK UNIFIED IDEOGRAPH - ,0x937C ,0x6422 //CJK UNIFIED IDEOGRAPH - ,0x937D ,0x6423 //CJK UNIFIED IDEOGRAPH - ,0x937E ,0x6424 //CJK UNIFIED IDEOGRAPH - ,0x9380 ,0x6425 //CJK UNIFIED IDEOGRAPH - ,0x9381 ,0x6427 //CJK UNIFIED IDEOGRAPH - ,0x9382 ,0x6428 //CJK UNIFIED IDEOGRAPH - ,0x9383 ,0x6429 //CJK UNIFIED IDEOGRAPH - ,0x9384 ,0x642B //CJK UNIFIED IDEOGRAPH - ,0x9385 ,0x642E //CJK UNIFIED IDEOGRAPH - ,0x9386 ,0x642F //CJK UNIFIED IDEOGRAPH - ,0x9387 ,0x6430 //CJK UNIFIED IDEOGRAPH - ,0x9388 ,0x6431 //CJK UNIFIED IDEOGRAPH - ,0x9389 ,0x6432 //CJK UNIFIED IDEOGRAPH - ,0x938A ,0x6433 //CJK UNIFIED IDEOGRAPH - ,0x938B ,0x6435 //CJK UNIFIED IDEOGRAPH - ,0x938C ,0x6436 //CJK UNIFIED IDEOGRAPH - ,0x938D ,0x6437 //CJK UNIFIED IDEOGRAPH - ,0x938E ,0x6438 //CJK UNIFIED IDEOGRAPH - ,0x938F ,0x6439 //CJK UNIFIED IDEOGRAPH - ,0x9390 ,0x643B //CJK UNIFIED IDEOGRAPH - ,0x9391 ,0x643C //CJK UNIFIED IDEOGRAPH - ,0x9392 ,0x643E //CJK UNIFIED IDEOGRAPH - ,0x9393 ,0x6440 //CJK UNIFIED IDEOGRAPH - ,0x9394 ,0x6442 //CJK UNIFIED IDEOGRAPH - ,0x9395 ,0x6443 //CJK UNIFIED IDEOGRAPH - ,0x9396 ,0x6449 //CJK UNIFIED IDEOGRAPH - ,0x9397 ,0x644B //CJK UNIFIED IDEOGRAPH - ,0x9398 ,0x644C //CJK UNIFIED IDEOGRAPH - ,0x9399 ,0x644D //CJK UNIFIED IDEOGRAPH - ,0x939A ,0x644E //CJK UNIFIED IDEOGRAPH - ,0x939B ,0x644F //CJK UNIFIED IDEOGRAPH - ,0x939C ,0x6450 //CJK UNIFIED IDEOGRAPH - ,0x939D ,0x6451 //CJK UNIFIED IDEOGRAPH - ,0x939E ,0x6453 //CJK UNIFIED IDEOGRAPH - ,0x939F ,0x6455 //CJK UNIFIED IDEOGRAPH - ,0x93A0 ,0x6456 //CJK UNIFIED IDEOGRAPH - ,0x93A1 ,0x6457 //CJK UNIFIED IDEOGRAPH - ,0x93A2 ,0x6459 //CJK UNIFIED IDEOGRAPH - ,0x93A3 ,0x645A //CJK UNIFIED IDEOGRAPH - ,0x93A4 ,0x645B //CJK UNIFIED IDEOGRAPH - ,0x93A5 ,0x645C //CJK UNIFIED IDEOGRAPH - ,0x93A6 ,0x645D //CJK UNIFIED IDEOGRAPH - ,0x93A7 ,0x645F //CJK UNIFIED IDEOGRAPH - ,0x93A8 ,0x6460 //CJK UNIFIED IDEOGRAPH - ,0x93A9 ,0x6461 //CJK UNIFIED IDEOGRAPH - ,0x93AA ,0x6462 //CJK UNIFIED IDEOGRAPH - ,0x93AB ,0x6463 //CJK UNIFIED IDEOGRAPH - ,0x93AC ,0x6464 //CJK UNIFIED IDEOGRAPH - ,0x93AD ,0x6465 //CJK UNIFIED IDEOGRAPH - ,0x93AE ,0x6466 //CJK UNIFIED IDEOGRAPH - ,0x93AF ,0x6468 //CJK UNIFIED IDEOGRAPH - ,0x93B0 ,0x646A //CJK UNIFIED IDEOGRAPH - ,0x93B1 ,0x646B //CJK UNIFIED IDEOGRAPH - ,0x93B2 ,0x646C //CJK UNIFIED IDEOGRAPH - ,0x93B3 ,0x646E //CJK UNIFIED IDEOGRAPH - ,0x93B4 ,0x646F //CJK UNIFIED IDEOGRAPH - ,0x93B5 ,0x6470 //CJK UNIFIED IDEOGRAPH - ,0x93B6 ,0x6471 //CJK UNIFIED IDEOGRAPH - ,0x93B7 ,0x6472 //CJK UNIFIED IDEOGRAPH - ,0x93B8 ,0x6473 //CJK UNIFIED IDEOGRAPH - ,0x93B9 ,0x6474 //CJK UNIFIED IDEOGRAPH - ,0x93BA ,0x6475 //CJK UNIFIED IDEOGRAPH - ,0x93BB ,0x6476 //CJK UNIFIED IDEOGRAPH - ,0x93BC ,0x6477 //CJK UNIFIED IDEOGRAPH - ,0x93BD ,0x647B //CJK UNIFIED IDEOGRAPH - ,0x93BE ,0x647C //CJK UNIFIED IDEOGRAPH - ,0x93BF ,0x647D //CJK UNIFIED IDEOGRAPH - ,0x93C0 ,0x647E //CJK UNIFIED IDEOGRAPH - ,0x93C1 ,0x647F //CJK UNIFIED IDEOGRAPH - ,0x93C2 ,0x6480 //CJK UNIFIED IDEOGRAPH - ,0x93C3 ,0x6481 //CJK UNIFIED IDEOGRAPH - ,0x93C4 ,0x6483 //CJK UNIFIED IDEOGRAPH - ,0x93C5 ,0x6486 //CJK UNIFIED IDEOGRAPH - ,0x93C6 ,0x6488 //CJK UNIFIED IDEOGRAPH - ,0x93C7 ,0x6489 //CJK UNIFIED IDEOGRAPH - ,0x93C8 ,0x648A //CJK UNIFIED IDEOGRAPH - ,0x93C9 ,0x648B //CJK UNIFIED IDEOGRAPH - ,0x93CA ,0x648C //CJK UNIFIED IDEOGRAPH - ,0x93CB ,0x648D //CJK UNIFIED IDEOGRAPH - ,0x93CC ,0x648E //CJK UNIFIED IDEOGRAPH - ,0x93CD ,0x648F //CJK UNIFIED IDEOGRAPH - ,0x93CE ,0x6490 //CJK UNIFIED IDEOGRAPH - ,0x93CF ,0x6493 //CJK UNIFIED IDEOGRAPH - ,0x93D0 ,0x6494 //CJK UNIFIED IDEOGRAPH - ,0x93D1 ,0x6497 //CJK UNIFIED IDEOGRAPH - ,0x93D2 ,0x6498 //CJK UNIFIED IDEOGRAPH - ,0x93D3 ,0x649A //CJK UNIFIED IDEOGRAPH - ,0x93D4 ,0x649B //CJK UNIFIED IDEOGRAPH - ,0x93D5 ,0x649C //CJK UNIFIED IDEOGRAPH - ,0x93D6 ,0x649D //CJK UNIFIED IDEOGRAPH - ,0x93D7 ,0x649F //CJK UNIFIED IDEOGRAPH - ,0x93D8 ,0x64A0 //CJK UNIFIED IDEOGRAPH - ,0x93D9 ,0x64A1 //CJK UNIFIED IDEOGRAPH - ,0x93DA ,0x64A2 //CJK UNIFIED IDEOGRAPH - ,0x93DB ,0x64A3 //CJK UNIFIED IDEOGRAPH - ,0x93DC ,0x64A5 //CJK UNIFIED IDEOGRAPH - ,0x93DD ,0x64A6 //CJK UNIFIED IDEOGRAPH - ,0x93DE ,0x64A7 //CJK UNIFIED IDEOGRAPH - ,0x93DF ,0x64A8 //CJK UNIFIED IDEOGRAPH - ,0x93E0 ,0x64AA //CJK UNIFIED IDEOGRAPH - ,0x93E1 ,0x64AB //CJK UNIFIED IDEOGRAPH - ,0x93E2 ,0x64AF //CJK UNIFIED IDEOGRAPH - ,0x93E3 ,0x64B1 //CJK UNIFIED IDEOGRAPH - ,0x93E4 ,0x64B2 //CJK UNIFIED IDEOGRAPH - ,0x93E5 ,0x64B3 //CJK UNIFIED IDEOGRAPH - ,0x93E6 ,0x64B4 //CJK UNIFIED IDEOGRAPH - ,0x93E7 ,0x64B6 //CJK UNIFIED IDEOGRAPH - ,0x93E8 ,0x64B9 //CJK UNIFIED IDEOGRAPH - ,0x93E9 ,0x64BB //CJK UNIFIED IDEOGRAPH - ,0x93EA ,0x64BD //CJK UNIFIED IDEOGRAPH - ,0x93EB ,0x64BE //CJK UNIFIED IDEOGRAPH - ,0x93EC ,0x64BF //CJK UNIFIED IDEOGRAPH - ,0x93ED ,0x64C1 //CJK UNIFIED IDEOGRAPH - ,0x93EE ,0x64C3 //CJK UNIFIED IDEOGRAPH - ,0x93EF ,0x64C4 //CJK UNIFIED IDEOGRAPH - ,0x93F0 ,0x64C6 //CJK UNIFIED IDEOGRAPH - ,0x93F1 ,0x64C7 //CJK UNIFIED IDEOGRAPH - ,0x93F2 ,0x64C8 //CJK UNIFIED IDEOGRAPH - ,0x93F3 ,0x64C9 //CJK UNIFIED IDEOGRAPH - ,0x93F4 ,0x64CA //CJK UNIFIED IDEOGRAPH - ,0x93F5 ,0x64CB //CJK UNIFIED IDEOGRAPH - ,0x93F6 ,0x64CC //CJK UNIFIED IDEOGRAPH - ,0x93F7 ,0x64CF //CJK UNIFIED IDEOGRAPH - ,0x93F8 ,0x64D1 //CJK UNIFIED IDEOGRAPH - ,0x93F9 ,0x64D3 //CJK UNIFIED IDEOGRAPH - ,0x93FA ,0x64D4 //CJK UNIFIED IDEOGRAPH - ,0x93FB ,0x64D5 //CJK UNIFIED IDEOGRAPH - ,0x93FC ,0x64D6 //CJK UNIFIED IDEOGRAPH - ,0x93FD ,0x64D9 //CJK UNIFIED IDEOGRAPH - ,0x93FE ,0x64DA //CJK UNIFIED IDEOGRAPH - ,0x9440 ,0x64DB //CJK UNIFIED IDEOGRAPH - ,0x9441 ,0x64DC //CJK UNIFIED IDEOGRAPH - ,0x9442 ,0x64DD //CJK UNIFIED IDEOGRAPH - ,0x9443 ,0x64DF //CJK UNIFIED IDEOGRAPH - ,0x9444 ,0x64E0 //CJK UNIFIED IDEOGRAPH - ,0x9445 ,0x64E1 //CJK UNIFIED IDEOGRAPH - ,0x9446 ,0x64E3 //CJK UNIFIED IDEOGRAPH - ,0x9447 ,0x64E5 //CJK UNIFIED IDEOGRAPH - ,0x9448 ,0x64E7 //CJK UNIFIED IDEOGRAPH - ,0x9449 ,0x64E8 //CJK UNIFIED IDEOGRAPH - ,0x944A ,0x64E9 //CJK UNIFIED IDEOGRAPH - ,0x944B ,0x64EA //CJK UNIFIED IDEOGRAPH - ,0x944C ,0x64EB //CJK UNIFIED IDEOGRAPH - ,0x944D ,0x64EC //CJK UNIFIED IDEOGRAPH - ,0x944E ,0x64ED //CJK UNIFIED IDEOGRAPH - ,0x944F ,0x64EE //CJK UNIFIED IDEOGRAPH - ,0x9450 ,0x64EF //CJK UNIFIED IDEOGRAPH - ,0x9451 ,0x64F0 //CJK UNIFIED IDEOGRAPH - ,0x9452 ,0x64F1 //CJK UNIFIED IDEOGRAPH - ,0x9453 ,0x64F2 //CJK UNIFIED IDEOGRAPH - ,0x9454 ,0x64F3 //CJK UNIFIED IDEOGRAPH - ,0x9455 ,0x64F4 //CJK UNIFIED IDEOGRAPH - ,0x9456 ,0x64F5 //CJK UNIFIED IDEOGRAPH - ,0x9457 ,0x64F6 //CJK UNIFIED IDEOGRAPH - ,0x9458 ,0x64F7 //CJK UNIFIED IDEOGRAPH - ,0x9459 ,0x64F8 //CJK UNIFIED IDEOGRAPH - ,0x945A ,0x64F9 //CJK UNIFIED IDEOGRAPH - ,0x945B ,0x64FA //CJK UNIFIED IDEOGRAPH - ,0x945C ,0x64FB //CJK UNIFIED IDEOGRAPH - ,0x945D ,0x64FC //CJK UNIFIED IDEOGRAPH - ,0x945E ,0x64FD //CJK UNIFIED IDEOGRAPH - ,0x945F ,0x64FE //CJK UNIFIED IDEOGRAPH - ,0x9460 ,0x64FF //CJK UNIFIED IDEOGRAPH - ,0x9461 ,0x6501 //CJK UNIFIED IDEOGRAPH - ,0x9462 ,0x6502 //CJK UNIFIED IDEOGRAPH - ,0x9463 ,0x6503 //CJK UNIFIED IDEOGRAPH - ,0x9464 ,0x6504 //CJK UNIFIED IDEOGRAPH - ,0x9465 ,0x6505 //CJK UNIFIED IDEOGRAPH - ,0x9466 ,0x6506 //CJK UNIFIED IDEOGRAPH - ,0x9467 ,0x6507 //CJK UNIFIED IDEOGRAPH - ,0x9468 ,0x6508 //CJK UNIFIED IDEOGRAPH - ,0x9469 ,0x650A //CJK UNIFIED IDEOGRAPH - ,0x946A ,0x650B //CJK UNIFIED IDEOGRAPH - ,0x946B ,0x650C //CJK UNIFIED IDEOGRAPH - ,0x946C ,0x650D //CJK UNIFIED IDEOGRAPH - ,0x946D ,0x650E //CJK UNIFIED IDEOGRAPH - ,0x946E ,0x650F //CJK UNIFIED IDEOGRAPH - ,0x946F ,0x6510 //CJK UNIFIED IDEOGRAPH - ,0x9470 ,0x6511 //CJK UNIFIED IDEOGRAPH - ,0x9471 ,0x6513 //CJK UNIFIED IDEOGRAPH - ,0x9472 ,0x6514 //CJK UNIFIED IDEOGRAPH - ,0x9473 ,0x6515 //CJK UNIFIED IDEOGRAPH - ,0x9474 ,0x6516 //CJK UNIFIED IDEOGRAPH - ,0x9475 ,0x6517 //CJK UNIFIED IDEOGRAPH - ,0x9476 ,0x6519 //CJK UNIFIED IDEOGRAPH - ,0x9477 ,0x651A //CJK UNIFIED IDEOGRAPH - ,0x9478 ,0x651B //CJK UNIFIED IDEOGRAPH - ,0x9479 ,0x651C //CJK UNIFIED IDEOGRAPH - ,0x947A ,0x651D //CJK UNIFIED IDEOGRAPH - ,0x947B ,0x651E //CJK UNIFIED IDEOGRAPH - ,0x947C ,0x651F //CJK UNIFIED IDEOGRAPH - ,0x947D ,0x6520 //CJK UNIFIED IDEOGRAPH - ,0x947E ,0x6521 //CJK UNIFIED IDEOGRAPH - ,0x9480 ,0x6522 //CJK UNIFIED IDEOGRAPH - ,0x9481 ,0x6523 //CJK UNIFIED IDEOGRAPH - ,0x9482 ,0x6524 //CJK UNIFIED IDEOGRAPH - ,0x9483 ,0x6526 //CJK UNIFIED IDEOGRAPH - ,0x9484 ,0x6527 //CJK UNIFIED IDEOGRAPH - ,0x9485 ,0x6528 //CJK UNIFIED IDEOGRAPH - ,0x9486 ,0x6529 //CJK UNIFIED IDEOGRAPH - ,0x9487 ,0x652A //CJK UNIFIED IDEOGRAPH - ,0x9488 ,0x652C //CJK UNIFIED IDEOGRAPH - ,0x9489 ,0x652D //CJK UNIFIED IDEOGRAPH - ,0x948A ,0x6530 //CJK UNIFIED IDEOGRAPH - ,0x948B ,0x6531 //CJK UNIFIED IDEOGRAPH - ,0x948C ,0x6532 //CJK UNIFIED IDEOGRAPH - ,0x948D ,0x6533 //CJK UNIFIED IDEOGRAPH - ,0x948E ,0x6537 //CJK UNIFIED IDEOGRAPH - ,0x948F ,0x653A //CJK UNIFIED IDEOGRAPH - ,0x9490 ,0x653C //CJK UNIFIED IDEOGRAPH - ,0x9491 ,0x653D //CJK UNIFIED IDEOGRAPH - ,0x9492 ,0x6540 //CJK UNIFIED IDEOGRAPH - ,0x9493 ,0x6541 //CJK UNIFIED IDEOGRAPH - ,0x9494 ,0x6542 //CJK UNIFIED IDEOGRAPH - ,0x9495 ,0x6543 //CJK UNIFIED IDEOGRAPH - ,0x9496 ,0x6544 //CJK UNIFIED IDEOGRAPH - ,0x9497 ,0x6546 //CJK UNIFIED IDEOGRAPH - ,0x9498 ,0x6547 //CJK UNIFIED IDEOGRAPH - ,0x9499 ,0x654A //CJK UNIFIED IDEOGRAPH - ,0x949A ,0x654B //CJK UNIFIED IDEOGRAPH - ,0x949B ,0x654D //CJK UNIFIED IDEOGRAPH - ,0x949C ,0x654E //CJK UNIFIED IDEOGRAPH - ,0x949D ,0x6550 //CJK UNIFIED IDEOGRAPH - ,0x949E ,0x6552 //CJK UNIFIED IDEOGRAPH - ,0x949F ,0x6553 //CJK UNIFIED IDEOGRAPH - ,0x94A0 ,0x6554 //CJK UNIFIED IDEOGRAPH - ,0x94A1 ,0x6557 //CJK UNIFIED IDEOGRAPH - ,0x94A2 ,0x6558 //CJK UNIFIED IDEOGRAPH - ,0x94A3 ,0x655A //CJK UNIFIED IDEOGRAPH - ,0x94A4 ,0x655C //CJK UNIFIED IDEOGRAPH - ,0x94A5 ,0x655F //CJK UNIFIED IDEOGRAPH - ,0x94A6 ,0x6560 //CJK UNIFIED IDEOGRAPH - ,0x94A7 ,0x6561 //CJK UNIFIED IDEOGRAPH - ,0x94A8 ,0x6564 //CJK UNIFIED IDEOGRAPH - ,0x94A9 ,0x6565 //CJK UNIFIED IDEOGRAPH - ,0x94AA ,0x6567 //CJK UNIFIED IDEOGRAPH - ,0x94AB ,0x6568 //CJK UNIFIED IDEOGRAPH - ,0x94AC ,0x6569 //CJK UNIFIED IDEOGRAPH - ,0x94AD ,0x656A //CJK UNIFIED IDEOGRAPH - ,0x94AE ,0x656D //CJK UNIFIED IDEOGRAPH - ,0x94AF ,0x656E //CJK UNIFIED IDEOGRAPH - ,0x94B0 ,0x656F //CJK UNIFIED IDEOGRAPH - ,0x94B1 ,0x6571 //CJK UNIFIED IDEOGRAPH - ,0x94B2 ,0x6573 //CJK UNIFIED IDEOGRAPH - ,0x94B3 ,0x6575 //CJK UNIFIED IDEOGRAPH - ,0x94B4 ,0x6576 //CJK UNIFIED IDEOGRAPH - ,0x94B5 ,0x6578 //CJK UNIFIED IDEOGRAPH - ,0x94B6 ,0x6579 //CJK UNIFIED IDEOGRAPH - ,0x94B7 ,0x657A //CJK UNIFIED IDEOGRAPH - ,0x94B8 ,0x657B //CJK UNIFIED IDEOGRAPH - ,0x94B9 ,0x657C //CJK UNIFIED IDEOGRAPH - ,0x94BA ,0x657D //CJK UNIFIED IDEOGRAPH - ,0x94BB ,0x657E //CJK UNIFIED IDEOGRAPH - ,0x94BC ,0x657F //CJK UNIFIED IDEOGRAPH - ,0x94BD ,0x6580 //CJK UNIFIED IDEOGRAPH - ,0x94BE ,0x6581 //CJK UNIFIED IDEOGRAPH - ,0x94BF ,0x6582 //CJK UNIFIED IDEOGRAPH - ,0x94C0 ,0x6583 //CJK UNIFIED IDEOGRAPH - ,0x94C1 ,0x6584 //CJK UNIFIED IDEOGRAPH - ,0x94C2 ,0x6585 //CJK UNIFIED IDEOGRAPH - ,0x94C3 ,0x6586 //CJK UNIFIED IDEOGRAPH - ,0x94C4 ,0x6588 //CJK UNIFIED IDEOGRAPH - ,0x94C5 ,0x6589 //CJK UNIFIED IDEOGRAPH - ,0x94C6 ,0x658A //CJK UNIFIED IDEOGRAPH - ,0x94C7 ,0x658D //CJK UNIFIED IDEOGRAPH - ,0x94C8 ,0x658E //CJK UNIFIED IDEOGRAPH - ,0x94C9 ,0x658F //CJK UNIFIED IDEOGRAPH - ,0x94CA ,0x6592 //CJK UNIFIED IDEOGRAPH - ,0x94CB ,0x6594 //CJK UNIFIED IDEOGRAPH - ,0x94CC ,0x6595 //CJK UNIFIED IDEOGRAPH - ,0x94CD ,0x6596 //CJK UNIFIED IDEOGRAPH - ,0x94CE ,0x6598 //CJK UNIFIED IDEOGRAPH - ,0x94CF ,0x659A //CJK UNIFIED IDEOGRAPH - ,0x94D0 ,0x659D //CJK UNIFIED IDEOGRAPH - ,0x94D1 ,0x659E //CJK UNIFIED IDEOGRAPH - ,0x94D2 ,0x65A0 //CJK UNIFIED IDEOGRAPH - ,0x94D3 ,0x65A2 //CJK UNIFIED IDEOGRAPH - ,0x94D4 ,0x65A3 //CJK UNIFIED IDEOGRAPH - ,0x94D5 ,0x65A6 //CJK UNIFIED IDEOGRAPH - ,0x94D6 ,0x65A8 //CJK UNIFIED IDEOGRAPH - ,0x94D7 ,0x65AA //CJK UNIFIED IDEOGRAPH - ,0x94D8 ,0x65AC //CJK UNIFIED IDEOGRAPH - ,0x94D9 ,0x65AE //CJK UNIFIED IDEOGRAPH - ,0x94DA ,0x65B1 //CJK UNIFIED IDEOGRAPH - ,0x94DB ,0x65B2 //CJK UNIFIED IDEOGRAPH - ,0x94DC ,0x65B3 //CJK UNIFIED IDEOGRAPH - ,0x94DD ,0x65B4 //CJK UNIFIED IDEOGRAPH - ,0x94DE ,0x65B5 //CJK UNIFIED IDEOGRAPH - ,0x94DF ,0x65B6 //CJK UNIFIED IDEOGRAPH - ,0x94E0 ,0x65B7 //CJK UNIFIED IDEOGRAPH - ,0x94E1 ,0x65B8 //CJK UNIFIED IDEOGRAPH - ,0x94E2 ,0x65BA //CJK UNIFIED IDEOGRAPH - ,0x94E3 ,0x65BB //CJK UNIFIED IDEOGRAPH - ,0x94E4 ,0x65BE //CJK UNIFIED IDEOGRAPH - ,0x94E5 ,0x65BF //CJK UNIFIED IDEOGRAPH - ,0x94E6 ,0x65C0 //CJK UNIFIED IDEOGRAPH - ,0x94E7 ,0x65C2 //CJK UNIFIED IDEOGRAPH - ,0x94E8 ,0x65C7 //CJK UNIFIED IDEOGRAPH - ,0x94E9 ,0x65C8 //CJK UNIFIED IDEOGRAPH - ,0x94EA ,0x65C9 //CJK UNIFIED IDEOGRAPH - ,0x94EB ,0x65CA //CJK UNIFIED IDEOGRAPH - ,0x94EC ,0x65CD //CJK UNIFIED IDEOGRAPH - ,0x94ED ,0x65D0 //CJK UNIFIED IDEOGRAPH - ,0x94EE ,0x65D1 //CJK UNIFIED IDEOGRAPH - ,0x94EF ,0x65D3 //CJK UNIFIED IDEOGRAPH - ,0x94F0 ,0x65D4 //CJK UNIFIED IDEOGRAPH - ,0x94F1 ,0x65D5 //CJK UNIFIED IDEOGRAPH - ,0x94F2 ,0x65D8 //CJK UNIFIED IDEOGRAPH - ,0x94F3 ,0x65D9 //CJK UNIFIED IDEOGRAPH - ,0x94F4 ,0x65DA //CJK UNIFIED IDEOGRAPH - ,0x94F5 ,0x65DB //CJK UNIFIED IDEOGRAPH - ,0x94F6 ,0x65DC //CJK UNIFIED IDEOGRAPH - ,0x94F7 ,0x65DD //CJK UNIFIED IDEOGRAPH - ,0x94F8 ,0x65DE //CJK UNIFIED IDEOGRAPH - ,0x94F9 ,0x65DF //CJK UNIFIED IDEOGRAPH - ,0x94FA ,0x65E1 //CJK UNIFIED IDEOGRAPH - ,0x94FB ,0x65E3 //CJK UNIFIED IDEOGRAPH - ,0x94FC ,0x65E4 //CJK UNIFIED IDEOGRAPH - ,0x94FD ,0x65EA //CJK UNIFIED IDEOGRAPH - ,0x94FE ,0x65EB //CJK UNIFIED IDEOGRAPH - ,0x9540 ,0x65F2 //CJK UNIFIED IDEOGRAPH - ,0x9541 ,0x65F3 //CJK UNIFIED IDEOGRAPH - ,0x9542 ,0x65F4 //CJK UNIFIED IDEOGRAPH - ,0x9543 ,0x65F5 //CJK UNIFIED IDEOGRAPH - ,0x9544 ,0x65F8 //CJK UNIFIED IDEOGRAPH - ,0x9545 ,0x65F9 //CJK UNIFIED IDEOGRAPH - ,0x9546 ,0x65FB //CJK UNIFIED IDEOGRAPH - ,0x9547 ,0x65FC //CJK UNIFIED IDEOGRAPH - ,0x9548 ,0x65FD //CJK UNIFIED IDEOGRAPH - ,0x9549 ,0x65FE //CJK UNIFIED IDEOGRAPH - ,0x954A ,0x65FF //CJK UNIFIED IDEOGRAPH - ,0x954B ,0x6601 //CJK UNIFIED IDEOGRAPH - ,0x954C ,0x6604 //CJK UNIFIED IDEOGRAPH - ,0x954D ,0x6605 //CJK UNIFIED IDEOGRAPH - ,0x954E ,0x6607 //CJK UNIFIED IDEOGRAPH - ,0x954F ,0x6608 //CJK UNIFIED IDEOGRAPH - ,0x9550 ,0x6609 //CJK UNIFIED IDEOGRAPH - ,0x9551 ,0x660B //CJK UNIFIED IDEOGRAPH - ,0x9552 ,0x660D //CJK UNIFIED IDEOGRAPH - ,0x9553 ,0x6610 //CJK UNIFIED IDEOGRAPH - ,0x9554 ,0x6611 //CJK UNIFIED IDEOGRAPH - ,0x9555 ,0x6612 //CJK UNIFIED IDEOGRAPH - ,0x9556 ,0x6616 //CJK UNIFIED IDEOGRAPH - ,0x9557 ,0x6617 //CJK UNIFIED IDEOGRAPH - ,0x9558 ,0x6618 //CJK UNIFIED IDEOGRAPH - ,0x9559 ,0x661A //CJK UNIFIED IDEOGRAPH - ,0x955A ,0x661B //CJK UNIFIED IDEOGRAPH - ,0x955B ,0x661C //CJK UNIFIED IDEOGRAPH - ,0x955C ,0x661E //CJK UNIFIED IDEOGRAPH - ,0x955D ,0x6621 //CJK UNIFIED IDEOGRAPH - ,0x955E ,0x6622 //CJK UNIFIED IDEOGRAPH - ,0x955F ,0x6623 //CJK UNIFIED IDEOGRAPH - ,0x9560 ,0x6624 //CJK UNIFIED IDEOGRAPH - ,0x9561 ,0x6626 //CJK UNIFIED IDEOGRAPH - ,0x9562 ,0x6629 //CJK UNIFIED IDEOGRAPH - ,0x9563 ,0x662A //CJK UNIFIED IDEOGRAPH - ,0x9564 ,0x662B //CJK UNIFIED IDEOGRAPH - ,0x9565 ,0x662C //CJK UNIFIED IDEOGRAPH - ,0x9566 ,0x662E //CJK UNIFIED IDEOGRAPH - ,0x9567 ,0x6630 //CJK UNIFIED IDEOGRAPH - ,0x9568 ,0x6632 //CJK UNIFIED IDEOGRAPH - ,0x9569 ,0x6633 //CJK UNIFIED IDEOGRAPH - ,0x956A ,0x6637 //CJK UNIFIED IDEOGRAPH - ,0x956B ,0x6638 //CJK UNIFIED IDEOGRAPH - ,0x956C ,0x6639 //CJK UNIFIED IDEOGRAPH - ,0x956D ,0x663A //CJK UNIFIED IDEOGRAPH - ,0x956E ,0x663B //CJK UNIFIED IDEOGRAPH - ,0x956F ,0x663D //CJK UNIFIED IDEOGRAPH - ,0x9570 ,0x663F //CJK UNIFIED IDEOGRAPH - ,0x9571 ,0x6640 //CJK UNIFIED IDEOGRAPH - ,0x9572 ,0x6642 //CJK UNIFIED IDEOGRAPH - ,0x9573 ,0x6644 //CJK UNIFIED IDEOGRAPH - ,0x9574 ,0x6645 //CJK UNIFIED IDEOGRAPH - ,0x9575 ,0x6646 //CJK UNIFIED IDEOGRAPH - ,0x9576 ,0x6647 //CJK UNIFIED IDEOGRAPH - ,0x9577 ,0x6648 //CJK UNIFIED IDEOGRAPH - ,0x9578 ,0x6649 //CJK UNIFIED IDEOGRAPH - ,0x9579 ,0x664A //CJK UNIFIED IDEOGRAPH - ,0x957A ,0x664D //CJK UNIFIED IDEOGRAPH - ,0x957B ,0x664E //CJK UNIFIED IDEOGRAPH - ,0x957C ,0x6650 //CJK UNIFIED IDEOGRAPH - ,0x957D ,0x6651 //CJK UNIFIED IDEOGRAPH - ,0x957E ,0x6658 //CJK UNIFIED IDEOGRAPH - ,0x9580 ,0x6659 //CJK UNIFIED IDEOGRAPH - ,0x9581 ,0x665B //CJK UNIFIED IDEOGRAPH - ,0x9582 ,0x665C //CJK UNIFIED IDEOGRAPH - ,0x9583 ,0x665D //CJK UNIFIED IDEOGRAPH - ,0x9584 ,0x665E //CJK UNIFIED IDEOGRAPH - ,0x9585 ,0x6660 //CJK UNIFIED IDEOGRAPH - ,0x9586 ,0x6662 //CJK UNIFIED IDEOGRAPH - ,0x9587 ,0x6663 //CJK UNIFIED IDEOGRAPH - ,0x9588 ,0x6665 //CJK UNIFIED IDEOGRAPH - ,0x9589 ,0x6667 //CJK UNIFIED IDEOGRAPH - ,0x958A ,0x6669 //CJK UNIFIED IDEOGRAPH - ,0x958B ,0x666A //CJK UNIFIED IDEOGRAPH - ,0x958C ,0x666B //CJK UNIFIED IDEOGRAPH - ,0x958D ,0x666C //CJK UNIFIED IDEOGRAPH - ,0x958E ,0x666D //CJK UNIFIED IDEOGRAPH - ,0x958F ,0x6671 //CJK UNIFIED IDEOGRAPH - ,0x9590 ,0x6672 //CJK UNIFIED IDEOGRAPH - ,0x9591 ,0x6673 //CJK UNIFIED IDEOGRAPH - ,0x9592 ,0x6675 //CJK UNIFIED IDEOGRAPH - ,0x9593 ,0x6678 //CJK UNIFIED IDEOGRAPH - ,0x9594 ,0x6679 //CJK UNIFIED IDEOGRAPH - ,0x9595 ,0x667B //CJK UNIFIED IDEOGRAPH - ,0x9596 ,0x667C //CJK UNIFIED IDEOGRAPH - ,0x9597 ,0x667D //CJK UNIFIED IDEOGRAPH - ,0x9598 ,0x667F //CJK UNIFIED IDEOGRAPH - ,0x9599 ,0x6680 //CJK UNIFIED IDEOGRAPH - ,0x959A ,0x6681 //CJK UNIFIED IDEOGRAPH - ,0x959B ,0x6683 //CJK UNIFIED IDEOGRAPH - ,0x959C ,0x6685 //CJK UNIFIED IDEOGRAPH - ,0x959D ,0x6686 //CJK UNIFIED IDEOGRAPH - ,0x959E ,0x6688 //CJK UNIFIED IDEOGRAPH - ,0x959F ,0x6689 //CJK UNIFIED IDEOGRAPH - ,0x95A0 ,0x668A //CJK UNIFIED IDEOGRAPH - ,0x95A1 ,0x668B //CJK UNIFIED IDEOGRAPH - ,0x95A2 ,0x668D //CJK UNIFIED IDEOGRAPH - ,0x95A3 ,0x668E //CJK UNIFIED IDEOGRAPH - ,0x95A4 ,0x668F //CJK UNIFIED IDEOGRAPH - ,0x95A5 ,0x6690 //CJK UNIFIED IDEOGRAPH - ,0x95A6 ,0x6692 //CJK UNIFIED IDEOGRAPH - ,0x95A7 ,0x6693 //CJK UNIFIED IDEOGRAPH - ,0x95A8 ,0x6694 //CJK UNIFIED IDEOGRAPH - ,0x95A9 ,0x6695 //CJK UNIFIED IDEOGRAPH - ,0x95AA ,0x6698 //CJK UNIFIED IDEOGRAPH - ,0x95AB ,0x6699 //CJK UNIFIED IDEOGRAPH - ,0x95AC ,0x669A //CJK UNIFIED IDEOGRAPH - ,0x95AD ,0x669B //CJK UNIFIED IDEOGRAPH - ,0x95AE ,0x669C //CJK UNIFIED IDEOGRAPH - ,0x95AF ,0x669E //CJK UNIFIED IDEOGRAPH - ,0x95B0 ,0x669F //CJK UNIFIED IDEOGRAPH - ,0x95B1 ,0x66A0 //CJK UNIFIED IDEOGRAPH - ,0x95B2 ,0x66A1 //CJK UNIFIED IDEOGRAPH - ,0x95B3 ,0x66A2 //CJK UNIFIED IDEOGRAPH - ,0x95B4 ,0x66A3 //CJK UNIFIED IDEOGRAPH - ,0x95B5 ,0x66A4 //CJK UNIFIED IDEOGRAPH - ,0x95B6 ,0x66A5 //CJK UNIFIED IDEOGRAPH - ,0x95B7 ,0x66A6 //CJK UNIFIED IDEOGRAPH - ,0x95B8 ,0x66A9 //CJK UNIFIED IDEOGRAPH - ,0x95B9 ,0x66AA //CJK UNIFIED IDEOGRAPH - ,0x95BA ,0x66AB //CJK UNIFIED IDEOGRAPH - ,0x95BB ,0x66AC //CJK UNIFIED IDEOGRAPH - ,0x95BC ,0x66AD //CJK UNIFIED IDEOGRAPH - ,0x95BD ,0x66AF //CJK UNIFIED IDEOGRAPH - ,0x95BE ,0x66B0 //CJK UNIFIED IDEOGRAPH - ,0x95BF ,0x66B1 //CJK UNIFIED IDEOGRAPH - ,0x95C0 ,0x66B2 //CJK UNIFIED IDEOGRAPH - ,0x95C1 ,0x66B3 //CJK UNIFIED IDEOGRAPH - ,0x95C2 ,0x66B5 //CJK UNIFIED IDEOGRAPH - ,0x95C3 ,0x66B6 //CJK UNIFIED IDEOGRAPH - ,0x95C4 ,0x66B7 //CJK UNIFIED IDEOGRAPH - ,0x95C5 ,0x66B8 //CJK UNIFIED IDEOGRAPH - ,0x95C6 ,0x66BA //CJK UNIFIED IDEOGRAPH - ,0x95C7 ,0x66BB //CJK UNIFIED IDEOGRAPH - ,0x95C8 ,0x66BC //CJK UNIFIED IDEOGRAPH - ,0x95C9 ,0x66BD //CJK UNIFIED IDEOGRAPH - ,0x95CA ,0x66BF //CJK UNIFIED IDEOGRAPH - ,0x95CB ,0x66C0 //CJK UNIFIED IDEOGRAPH - ,0x95CC ,0x66C1 //CJK UNIFIED IDEOGRAPH - ,0x95CD ,0x66C2 //CJK UNIFIED IDEOGRAPH - ,0x95CE ,0x66C3 //CJK UNIFIED IDEOGRAPH - ,0x95CF ,0x66C4 //CJK UNIFIED IDEOGRAPH - ,0x95D0 ,0x66C5 //CJK UNIFIED IDEOGRAPH - ,0x95D1 ,0x66C6 //CJK UNIFIED IDEOGRAPH - ,0x95D2 ,0x66C7 //CJK UNIFIED IDEOGRAPH - ,0x95D3 ,0x66C8 //CJK UNIFIED IDEOGRAPH - ,0x95D4 ,0x66C9 //CJK UNIFIED IDEOGRAPH - ,0x95D5 ,0x66CA //CJK UNIFIED IDEOGRAPH - ,0x95D6 ,0x66CB //CJK UNIFIED IDEOGRAPH - ,0x95D7 ,0x66CC //CJK UNIFIED IDEOGRAPH - ,0x95D8 ,0x66CD //CJK UNIFIED IDEOGRAPH - ,0x95D9 ,0x66CE //CJK UNIFIED IDEOGRAPH - ,0x95DA ,0x66CF //CJK UNIFIED IDEOGRAPH - ,0x95DB ,0x66D0 //CJK UNIFIED IDEOGRAPH - ,0x95DC ,0x66D1 //CJK UNIFIED IDEOGRAPH - ,0x95DD ,0x66D2 //CJK UNIFIED IDEOGRAPH - ,0x95DE ,0x66D3 //CJK UNIFIED IDEOGRAPH - ,0x95DF ,0x66D4 //CJK UNIFIED IDEOGRAPH - ,0x95E0 ,0x66D5 //CJK UNIFIED IDEOGRAPH - ,0x95E1 ,0x66D6 //CJK UNIFIED IDEOGRAPH - ,0x95E2 ,0x66D7 //CJK UNIFIED IDEOGRAPH - ,0x95E3 ,0x66D8 //CJK UNIFIED IDEOGRAPH - ,0x95E4 ,0x66DA //CJK UNIFIED IDEOGRAPH - ,0x95E5 ,0x66DE //CJK UNIFIED IDEOGRAPH - ,0x95E6 ,0x66DF //CJK UNIFIED IDEOGRAPH - ,0x95E7 ,0x66E0 //CJK UNIFIED IDEOGRAPH - ,0x95E8 ,0x66E1 //CJK UNIFIED IDEOGRAPH - ,0x95E9 ,0x66E2 //CJK UNIFIED IDEOGRAPH - ,0x95EA ,0x66E3 //CJK UNIFIED IDEOGRAPH - ,0x95EB ,0x66E4 //CJK UNIFIED IDEOGRAPH - ,0x95EC ,0x66E5 //CJK UNIFIED IDEOGRAPH - ,0x95ED ,0x66E7 //CJK UNIFIED IDEOGRAPH - ,0x95EE ,0x66E8 //CJK UNIFIED IDEOGRAPH - ,0x95EF ,0x66EA //CJK UNIFIED IDEOGRAPH - ,0x95F0 ,0x66EB //CJK UNIFIED IDEOGRAPH - ,0x95F1 ,0x66EC //CJK UNIFIED IDEOGRAPH - ,0x95F2 ,0x66ED //CJK UNIFIED IDEOGRAPH - ,0x95F3 ,0x66EE //CJK UNIFIED IDEOGRAPH - ,0x95F4 ,0x66EF //CJK UNIFIED IDEOGRAPH - ,0x95F5 ,0x66F1 //CJK UNIFIED IDEOGRAPH - ,0x95F6 ,0x66F5 //CJK UNIFIED IDEOGRAPH - ,0x95F7 ,0x66F6 //CJK UNIFIED IDEOGRAPH - ,0x95F8 ,0x66F8 //CJK UNIFIED IDEOGRAPH - ,0x95F9 ,0x66FA //CJK UNIFIED IDEOGRAPH - ,0x95FA ,0x66FB //CJK UNIFIED IDEOGRAPH - ,0x95FB ,0x66FD //CJK UNIFIED IDEOGRAPH - ,0x95FC ,0x6701 //CJK UNIFIED IDEOGRAPH - ,0x95FD ,0x6702 //CJK UNIFIED IDEOGRAPH - ,0x95FE ,0x6703 //CJK UNIFIED IDEOGRAPH - ,0x9640 ,0x6704 //CJK UNIFIED IDEOGRAPH - ,0x9641 ,0x6705 //CJK UNIFIED IDEOGRAPH - ,0x9642 ,0x6706 //CJK UNIFIED IDEOGRAPH - ,0x9643 ,0x6707 //CJK UNIFIED IDEOGRAPH - ,0x9644 ,0x670C //CJK UNIFIED IDEOGRAPH - ,0x9645 ,0x670E //CJK UNIFIED IDEOGRAPH - ,0x9646 ,0x670F //CJK UNIFIED IDEOGRAPH - ,0x9647 ,0x6711 //CJK UNIFIED IDEOGRAPH - ,0x9648 ,0x6712 //CJK UNIFIED IDEOGRAPH - ,0x9649 ,0x6713 //CJK UNIFIED IDEOGRAPH - ,0x964A ,0x6716 //CJK UNIFIED IDEOGRAPH - ,0x964B ,0x6718 //CJK UNIFIED IDEOGRAPH - ,0x964C ,0x6719 //CJK UNIFIED IDEOGRAPH - ,0x964D ,0x671A //CJK UNIFIED IDEOGRAPH - ,0x964E ,0x671C //CJK UNIFIED IDEOGRAPH - ,0x964F ,0x671E //CJK UNIFIED IDEOGRAPH - ,0x9650 ,0x6720 //CJK UNIFIED IDEOGRAPH - ,0x9651 ,0x6721 //CJK UNIFIED IDEOGRAPH - ,0x9652 ,0x6722 //CJK UNIFIED IDEOGRAPH - ,0x9653 ,0x6723 //CJK UNIFIED IDEOGRAPH - ,0x9654 ,0x6724 //CJK UNIFIED IDEOGRAPH - ,0x9655 ,0x6725 //CJK UNIFIED IDEOGRAPH - ,0x9656 ,0x6727 //CJK UNIFIED IDEOGRAPH - ,0x9657 ,0x6729 //CJK UNIFIED IDEOGRAPH - ,0x9658 ,0x672E //CJK UNIFIED IDEOGRAPH - ,0x9659 ,0x6730 //CJK UNIFIED IDEOGRAPH - ,0x965A ,0x6732 //CJK UNIFIED IDEOGRAPH - ,0x965B ,0x6733 //CJK UNIFIED IDEOGRAPH - ,0x965C ,0x6736 //CJK UNIFIED IDEOGRAPH - ,0x965D ,0x6737 //CJK UNIFIED IDEOGRAPH - ,0x965E ,0x6738 //CJK UNIFIED IDEOGRAPH - ,0x965F ,0x6739 //CJK UNIFIED IDEOGRAPH - ,0x9660 ,0x673B //CJK UNIFIED IDEOGRAPH - ,0x9661 ,0x673C //CJK UNIFIED IDEOGRAPH - ,0x9662 ,0x673E //CJK UNIFIED IDEOGRAPH - ,0x9663 ,0x673F //CJK UNIFIED IDEOGRAPH - ,0x9664 ,0x6741 //CJK UNIFIED IDEOGRAPH - ,0x9665 ,0x6744 //CJK UNIFIED IDEOGRAPH - ,0x9666 ,0x6745 //CJK UNIFIED IDEOGRAPH - ,0x9667 ,0x6747 //CJK UNIFIED IDEOGRAPH - ,0x9668 ,0x674A //CJK UNIFIED IDEOGRAPH - ,0x9669 ,0x674B //CJK UNIFIED IDEOGRAPH - ,0x966A ,0x674D //CJK UNIFIED IDEOGRAPH - ,0x966B ,0x6752 //CJK UNIFIED IDEOGRAPH - ,0x966C ,0x6754 //CJK UNIFIED IDEOGRAPH - ,0x966D ,0x6755 //CJK UNIFIED IDEOGRAPH - ,0x966E ,0x6757 //CJK UNIFIED IDEOGRAPH - ,0x966F ,0x6758 //CJK UNIFIED IDEOGRAPH - ,0x9670 ,0x6759 //CJK UNIFIED IDEOGRAPH - ,0x9671 ,0x675A //CJK UNIFIED IDEOGRAPH - ,0x9672 ,0x675B //CJK UNIFIED IDEOGRAPH - ,0x9673 ,0x675D //CJK UNIFIED IDEOGRAPH - ,0x9674 ,0x6762 //CJK UNIFIED IDEOGRAPH - ,0x9675 ,0x6763 //CJK UNIFIED IDEOGRAPH - ,0x9676 ,0x6764 //CJK UNIFIED IDEOGRAPH - ,0x9677 ,0x6766 //CJK UNIFIED IDEOGRAPH - ,0x9678 ,0x6767 //CJK UNIFIED IDEOGRAPH - ,0x9679 ,0x676B //CJK UNIFIED IDEOGRAPH - ,0x967A ,0x676C //CJK UNIFIED IDEOGRAPH - ,0x967B ,0x676E //CJK UNIFIED IDEOGRAPH - ,0x967C ,0x6771 //CJK UNIFIED IDEOGRAPH - ,0x967D ,0x6774 //CJK UNIFIED IDEOGRAPH - ,0x967E ,0x6776 //CJK UNIFIED IDEOGRAPH - ,0x9680 ,0x6778 //CJK UNIFIED IDEOGRAPH - ,0x9681 ,0x6779 //CJK UNIFIED IDEOGRAPH - ,0x9682 ,0x677A //CJK UNIFIED IDEOGRAPH - ,0x9683 ,0x677B //CJK UNIFIED IDEOGRAPH - ,0x9684 ,0x677D //CJK UNIFIED IDEOGRAPH - ,0x9685 ,0x6780 //CJK UNIFIED IDEOGRAPH - ,0x9686 ,0x6782 //CJK UNIFIED IDEOGRAPH - ,0x9687 ,0x6783 //CJK UNIFIED IDEOGRAPH - ,0x9688 ,0x6785 //CJK UNIFIED IDEOGRAPH - ,0x9689 ,0x6786 //CJK UNIFIED IDEOGRAPH - ,0x968A ,0x6788 //CJK UNIFIED IDEOGRAPH - ,0x968B ,0x678A //CJK UNIFIED IDEOGRAPH - ,0x968C ,0x678C //CJK UNIFIED IDEOGRAPH - ,0x968D ,0x678D //CJK UNIFIED IDEOGRAPH - ,0x968E ,0x678E //CJK UNIFIED IDEOGRAPH - ,0x968F ,0x678F //CJK UNIFIED IDEOGRAPH - ,0x9690 ,0x6791 //CJK UNIFIED IDEOGRAPH - ,0x9691 ,0x6792 //CJK UNIFIED IDEOGRAPH - ,0x9692 ,0x6793 //CJK UNIFIED IDEOGRAPH - ,0x9693 ,0x6794 //CJK UNIFIED IDEOGRAPH - ,0x9694 ,0x6796 //CJK UNIFIED IDEOGRAPH - ,0x9695 ,0x6799 //CJK UNIFIED IDEOGRAPH - ,0x9696 ,0x679B //CJK UNIFIED IDEOGRAPH - ,0x9697 ,0x679F //CJK UNIFIED IDEOGRAPH - ,0x9698 ,0x67A0 //CJK UNIFIED IDEOGRAPH - ,0x9699 ,0x67A1 //CJK UNIFIED IDEOGRAPH - ,0x969A ,0x67A4 //CJK UNIFIED IDEOGRAPH - ,0x969B ,0x67A6 //CJK UNIFIED IDEOGRAPH - ,0x969C ,0x67A9 //CJK UNIFIED IDEOGRAPH - ,0x969D ,0x67AC //CJK UNIFIED IDEOGRAPH - ,0x969E ,0x67AE //CJK UNIFIED IDEOGRAPH - ,0x969F ,0x67B1 //CJK UNIFIED IDEOGRAPH - ,0x96A0 ,0x67B2 //CJK UNIFIED IDEOGRAPH - ,0x96A1 ,0x67B4 //CJK UNIFIED IDEOGRAPH - ,0x96A2 ,0x67B9 //CJK UNIFIED IDEOGRAPH - ,0x96A3 ,0x67BA //CJK UNIFIED IDEOGRAPH - ,0x96A4 ,0x67BB //CJK UNIFIED IDEOGRAPH - ,0x96A5 ,0x67BC //CJK UNIFIED IDEOGRAPH - ,0x96A6 ,0x67BD //CJK UNIFIED IDEOGRAPH - ,0x96A7 ,0x67BE //CJK UNIFIED IDEOGRAPH - ,0x96A8 ,0x67BF //CJK UNIFIED IDEOGRAPH - ,0x96A9 ,0x67C0 //CJK UNIFIED IDEOGRAPH - ,0x96AA ,0x67C2 //CJK UNIFIED IDEOGRAPH - ,0x96AB ,0x67C5 //CJK UNIFIED IDEOGRAPH - ,0x96AC ,0x67C6 //CJK UNIFIED IDEOGRAPH - ,0x96AD ,0x67C7 //CJK UNIFIED IDEOGRAPH - ,0x96AE ,0x67C8 //CJK UNIFIED IDEOGRAPH - ,0x96AF ,0x67C9 //CJK UNIFIED IDEOGRAPH - ,0x96B0 ,0x67CA //CJK UNIFIED IDEOGRAPH - ,0x96B1 ,0x67CB //CJK UNIFIED IDEOGRAPH - ,0x96B2 ,0x67CC //CJK UNIFIED IDEOGRAPH - ,0x96B3 ,0x67CD //CJK UNIFIED IDEOGRAPH - ,0x96B4 ,0x67CE //CJK UNIFIED IDEOGRAPH - ,0x96B5 ,0x67D5 //CJK UNIFIED IDEOGRAPH - ,0x96B6 ,0x67D6 //CJK UNIFIED IDEOGRAPH - ,0x96B7 ,0x67D7 //CJK UNIFIED IDEOGRAPH - ,0x96B8 ,0x67DB //CJK UNIFIED IDEOGRAPH - ,0x96B9 ,0x67DF //CJK UNIFIED IDEOGRAPH - ,0x96BA ,0x67E1 //CJK UNIFIED IDEOGRAPH - ,0x96BB ,0x67E3 //CJK UNIFIED IDEOGRAPH - ,0x96BC ,0x67E4 //CJK UNIFIED IDEOGRAPH - ,0x96BD ,0x67E6 //CJK UNIFIED IDEOGRAPH - ,0x96BE ,0x67E7 //CJK UNIFIED IDEOGRAPH - ,0x96BF ,0x67E8 //CJK UNIFIED IDEOGRAPH - ,0x96C0 ,0x67EA //CJK UNIFIED IDEOGRAPH - ,0x96C1 ,0x67EB //CJK UNIFIED IDEOGRAPH - ,0x96C2 ,0x67ED //CJK UNIFIED IDEOGRAPH - ,0x96C3 ,0x67EE //CJK UNIFIED IDEOGRAPH - ,0x96C4 ,0x67F2 //CJK UNIFIED IDEOGRAPH - ,0x96C5 ,0x67F5 //CJK UNIFIED IDEOGRAPH - ,0x96C6 ,0x67F6 //CJK UNIFIED IDEOGRAPH - ,0x96C7 ,0x67F7 //CJK UNIFIED IDEOGRAPH - ,0x96C8 ,0x67F8 //CJK UNIFIED IDEOGRAPH - ,0x96C9 ,0x67F9 //CJK UNIFIED IDEOGRAPH - ,0x96CA ,0x67FA //CJK UNIFIED IDEOGRAPH - ,0x96CB ,0x67FB //CJK UNIFIED IDEOGRAPH - ,0x96CC ,0x67FC //CJK UNIFIED IDEOGRAPH - ,0x96CD ,0x67FE //CJK UNIFIED IDEOGRAPH - ,0x96CE ,0x6801 //CJK UNIFIED IDEOGRAPH - ,0x96CF ,0x6802 //CJK UNIFIED IDEOGRAPH - ,0x96D0 ,0x6803 //CJK UNIFIED IDEOGRAPH - ,0x96D1 ,0x6804 //CJK UNIFIED IDEOGRAPH - ,0x96D2 ,0x6806 //CJK UNIFIED IDEOGRAPH - ,0x96D3 ,0x680D //CJK UNIFIED IDEOGRAPH - ,0x96D4 ,0x6810 //CJK UNIFIED IDEOGRAPH - ,0x96D5 ,0x6812 //CJK UNIFIED IDEOGRAPH - ,0x96D6 ,0x6814 //CJK UNIFIED IDEOGRAPH - ,0x96D7 ,0x6815 //CJK UNIFIED IDEOGRAPH - ,0x96D8 ,0x6818 //CJK UNIFIED IDEOGRAPH - ,0x96D9 ,0x6819 //CJK UNIFIED IDEOGRAPH - ,0x96DA ,0x681A //CJK UNIFIED IDEOGRAPH - ,0x96DB ,0x681B //CJK UNIFIED IDEOGRAPH - ,0x96DC ,0x681C //CJK UNIFIED IDEOGRAPH - ,0x96DD ,0x681E //CJK UNIFIED IDEOGRAPH - ,0x96DE ,0x681F //CJK UNIFIED IDEOGRAPH - ,0x96DF ,0x6820 //CJK UNIFIED IDEOGRAPH - ,0x96E0 ,0x6822 //CJK UNIFIED IDEOGRAPH - ,0x96E1 ,0x6823 //CJK UNIFIED IDEOGRAPH - ,0x96E2 ,0x6824 //CJK UNIFIED IDEOGRAPH - ,0x96E3 ,0x6825 //CJK UNIFIED IDEOGRAPH - ,0x96E4 ,0x6826 //CJK UNIFIED IDEOGRAPH - ,0x96E5 ,0x6827 //CJK UNIFIED IDEOGRAPH - ,0x96E6 ,0x6828 //CJK UNIFIED IDEOGRAPH - ,0x96E7 ,0x682B //CJK UNIFIED IDEOGRAPH - ,0x96E8 ,0x682C //CJK UNIFIED IDEOGRAPH - ,0x96E9 ,0x682D //CJK UNIFIED IDEOGRAPH - ,0x96EA ,0x682E //CJK UNIFIED IDEOGRAPH - ,0x96EB ,0x682F //CJK UNIFIED IDEOGRAPH - ,0x96EC ,0x6830 //CJK UNIFIED IDEOGRAPH - ,0x96ED ,0x6831 //CJK UNIFIED IDEOGRAPH - ,0x96EE ,0x6834 //CJK UNIFIED IDEOGRAPH - ,0x96EF ,0x6835 //CJK UNIFIED IDEOGRAPH - ,0x96F0 ,0x6836 //CJK UNIFIED IDEOGRAPH - ,0x96F1 ,0x683A //CJK UNIFIED IDEOGRAPH - ,0x96F2 ,0x683B //CJK UNIFIED IDEOGRAPH - ,0x96F3 ,0x683F //CJK UNIFIED IDEOGRAPH - ,0x96F4 ,0x6847 //CJK UNIFIED IDEOGRAPH - ,0x96F5 ,0x684B //CJK UNIFIED IDEOGRAPH - ,0x96F6 ,0x684D //CJK UNIFIED IDEOGRAPH - ,0x96F7 ,0x684F //CJK UNIFIED IDEOGRAPH - ,0x96F8 ,0x6852 //CJK UNIFIED IDEOGRAPH - ,0x96F9 ,0x6856 //CJK UNIFIED IDEOGRAPH - ,0x96FA ,0x6857 //CJK UNIFIED IDEOGRAPH - ,0x96FB ,0x6858 //CJK UNIFIED IDEOGRAPH - ,0x96FC ,0x6859 //CJK UNIFIED IDEOGRAPH - ,0x96FD ,0x685A //CJK UNIFIED IDEOGRAPH - ,0x96FE ,0x685B //CJK UNIFIED IDEOGRAPH - ,0x9740 ,0x685C //CJK UNIFIED IDEOGRAPH - ,0x9741 ,0x685D //CJK UNIFIED IDEOGRAPH - ,0x9742 ,0x685E //CJK UNIFIED IDEOGRAPH - ,0x9743 ,0x685F //CJK UNIFIED IDEOGRAPH - ,0x9744 ,0x686A //CJK UNIFIED IDEOGRAPH - ,0x9745 ,0x686C //CJK UNIFIED IDEOGRAPH - ,0x9746 ,0x686D //CJK UNIFIED IDEOGRAPH - ,0x9747 ,0x686E //CJK UNIFIED IDEOGRAPH - ,0x9748 ,0x686F //CJK UNIFIED IDEOGRAPH - ,0x9749 ,0x6870 //CJK UNIFIED IDEOGRAPH - ,0x974A ,0x6871 //CJK UNIFIED IDEOGRAPH - ,0x974B ,0x6872 //CJK UNIFIED IDEOGRAPH - ,0x974C ,0x6873 //CJK UNIFIED IDEOGRAPH - ,0x974D ,0x6875 //CJK UNIFIED IDEOGRAPH - ,0x974E ,0x6878 //CJK UNIFIED IDEOGRAPH - ,0x974F ,0x6879 //CJK UNIFIED IDEOGRAPH - ,0x9750 ,0x687A //CJK UNIFIED IDEOGRAPH - ,0x9751 ,0x687B //CJK UNIFIED IDEOGRAPH - ,0x9752 ,0x687C //CJK UNIFIED IDEOGRAPH - ,0x9753 ,0x687D //CJK UNIFIED IDEOGRAPH - ,0x9754 ,0x687E //CJK UNIFIED IDEOGRAPH - ,0x9755 ,0x687F //CJK UNIFIED IDEOGRAPH - ,0x9756 ,0x6880 //CJK UNIFIED IDEOGRAPH - ,0x9757 ,0x6882 //CJK UNIFIED IDEOGRAPH - ,0x9758 ,0x6884 //CJK UNIFIED IDEOGRAPH - ,0x9759 ,0x6887 //CJK UNIFIED IDEOGRAPH - ,0x975A ,0x6888 //CJK UNIFIED IDEOGRAPH - ,0x975B ,0x6889 //CJK UNIFIED IDEOGRAPH - ,0x975C ,0x688A //CJK UNIFIED IDEOGRAPH - ,0x975D ,0x688B //CJK UNIFIED IDEOGRAPH - ,0x975E ,0x688C //CJK UNIFIED IDEOGRAPH - ,0x975F ,0x688D //CJK UNIFIED IDEOGRAPH - ,0x9760 ,0x688E //CJK UNIFIED IDEOGRAPH - ,0x9761 ,0x6890 //CJK UNIFIED IDEOGRAPH - ,0x9762 ,0x6891 //CJK UNIFIED IDEOGRAPH - ,0x9763 ,0x6892 //CJK UNIFIED IDEOGRAPH - ,0x9764 ,0x6894 //CJK UNIFIED IDEOGRAPH - ,0x9765 ,0x6895 //CJK UNIFIED IDEOGRAPH - ,0x9766 ,0x6896 //CJK UNIFIED IDEOGRAPH - ,0x9767 ,0x6898 //CJK UNIFIED IDEOGRAPH - ,0x9768 ,0x6899 //CJK UNIFIED IDEOGRAPH - ,0x9769 ,0x689A //CJK UNIFIED IDEOGRAPH - ,0x976A ,0x689B //CJK UNIFIED IDEOGRAPH - ,0x976B ,0x689C //CJK UNIFIED IDEOGRAPH - ,0x976C ,0x689D //CJK UNIFIED IDEOGRAPH - ,0x976D ,0x689E //CJK UNIFIED IDEOGRAPH - ,0x976E ,0x689F //CJK UNIFIED IDEOGRAPH - ,0x976F ,0x68A0 //CJK UNIFIED IDEOGRAPH - ,0x9770 ,0x68A1 //CJK UNIFIED IDEOGRAPH - ,0x9771 ,0x68A3 //CJK UNIFIED IDEOGRAPH - ,0x9772 ,0x68A4 //CJK UNIFIED IDEOGRAPH - ,0x9773 ,0x68A5 //CJK UNIFIED IDEOGRAPH - ,0x9774 ,0x68A9 //CJK UNIFIED IDEOGRAPH - ,0x9775 ,0x68AA //CJK UNIFIED IDEOGRAPH - ,0x9776 ,0x68AB //CJK UNIFIED IDEOGRAPH - ,0x9777 ,0x68AC //CJK UNIFIED IDEOGRAPH - ,0x9778 ,0x68AE //CJK UNIFIED IDEOGRAPH - ,0x9779 ,0x68B1 //CJK UNIFIED IDEOGRAPH - ,0x977A ,0x68B2 //CJK UNIFIED IDEOGRAPH - ,0x977B ,0x68B4 //CJK UNIFIED IDEOGRAPH - ,0x977C ,0x68B6 //CJK UNIFIED IDEOGRAPH - ,0x977D ,0x68B7 //CJK UNIFIED IDEOGRAPH - ,0x977E ,0x68B8 //CJK UNIFIED IDEOGRAPH - ,0x9780 ,0x68B9 //CJK UNIFIED IDEOGRAPH - ,0x9781 ,0x68BA //CJK UNIFIED IDEOGRAPH - ,0x9782 ,0x68BB //CJK UNIFIED IDEOGRAPH - ,0x9783 ,0x68BC //CJK UNIFIED IDEOGRAPH - ,0x9784 ,0x68BD //CJK UNIFIED IDEOGRAPH - ,0x9785 ,0x68BE //CJK UNIFIED IDEOGRAPH - ,0x9786 ,0x68BF //CJK UNIFIED IDEOGRAPH - ,0x9787 ,0x68C1 //CJK UNIFIED IDEOGRAPH - ,0x9788 ,0x68C3 //CJK UNIFIED IDEOGRAPH - ,0x9789 ,0x68C4 //CJK UNIFIED IDEOGRAPH - ,0x978A ,0x68C5 //CJK UNIFIED IDEOGRAPH - ,0x978B ,0x68C6 //CJK UNIFIED IDEOGRAPH - ,0x978C ,0x68C7 //CJK UNIFIED IDEOGRAPH - ,0x978D ,0x68C8 //CJK UNIFIED IDEOGRAPH - ,0x978E ,0x68CA //CJK UNIFIED IDEOGRAPH - ,0x978F ,0x68CC //CJK UNIFIED IDEOGRAPH - ,0x9790 ,0x68CE //CJK UNIFIED IDEOGRAPH - ,0x9791 ,0x68CF //CJK UNIFIED IDEOGRAPH - ,0x9792 ,0x68D0 //CJK UNIFIED IDEOGRAPH - ,0x9793 ,0x68D1 //CJK UNIFIED IDEOGRAPH - ,0x9794 ,0x68D3 //CJK UNIFIED IDEOGRAPH - ,0x9795 ,0x68D4 //CJK UNIFIED IDEOGRAPH - ,0x9796 ,0x68D6 //CJK UNIFIED IDEOGRAPH - ,0x9797 ,0x68D7 //CJK UNIFIED IDEOGRAPH - ,0x9798 ,0x68D9 //CJK UNIFIED IDEOGRAPH - ,0x9799 ,0x68DB //CJK UNIFIED IDEOGRAPH - ,0x979A ,0x68DC //CJK UNIFIED IDEOGRAPH - ,0x979B ,0x68DD //CJK UNIFIED IDEOGRAPH - ,0x979C ,0x68DE //CJK UNIFIED IDEOGRAPH - ,0x979D ,0x68DF //CJK UNIFIED IDEOGRAPH - ,0x979E ,0x68E1 //CJK UNIFIED IDEOGRAPH - ,0x979F ,0x68E2 //CJK UNIFIED IDEOGRAPH - ,0x97A0 ,0x68E4 //CJK UNIFIED IDEOGRAPH - ,0x97A1 ,0x68E5 //CJK UNIFIED IDEOGRAPH - ,0x97A2 ,0x68E6 //CJK UNIFIED IDEOGRAPH - ,0x97A3 ,0x68E7 //CJK UNIFIED IDEOGRAPH - ,0x97A4 ,0x68E8 //CJK UNIFIED IDEOGRAPH - ,0x97A5 ,0x68E9 //CJK UNIFIED IDEOGRAPH - ,0x97A6 ,0x68EA //CJK UNIFIED IDEOGRAPH - ,0x97A7 ,0x68EB //CJK UNIFIED IDEOGRAPH - ,0x97A8 ,0x68EC //CJK UNIFIED IDEOGRAPH - ,0x97A9 ,0x68ED //CJK UNIFIED IDEOGRAPH - ,0x97AA ,0x68EF //CJK UNIFIED IDEOGRAPH - ,0x97AB ,0x68F2 //CJK UNIFIED IDEOGRAPH - ,0x97AC ,0x68F3 //CJK UNIFIED IDEOGRAPH - ,0x97AD ,0x68F4 //CJK UNIFIED IDEOGRAPH - ,0x97AE ,0x68F6 //CJK UNIFIED IDEOGRAPH - ,0x97AF ,0x68F7 //CJK UNIFIED IDEOGRAPH - ,0x97B0 ,0x68F8 //CJK UNIFIED IDEOGRAPH - ,0x97B1 ,0x68FB //CJK UNIFIED IDEOGRAPH - ,0x97B2 ,0x68FD //CJK UNIFIED IDEOGRAPH - ,0x97B3 ,0x68FE //CJK UNIFIED IDEOGRAPH - ,0x97B4 ,0x68FF //CJK UNIFIED IDEOGRAPH - ,0x97B5 ,0x6900 //CJK UNIFIED IDEOGRAPH - ,0x97B6 ,0x6902 //CJK UNIFIED IDEOGRAPH - ,0x97B7 ,0x6903 //CJK UNIFIED IDEOGRAPH - ,0x97B8 ,0x6904 //CJK UNIFIED IDEOGRAPH - ,0x97B9 ,0x6906 //CJK UNIFIED IDEOGRAPH - ,0x97BA ,0x6907 //CJK UNIFIED IDEOGRAPH - ,0x97BB ,0x6908 //CJK UNIFIED IDEOGRAPH - ,0x97BC ,0x6909 //CJK UNIFIED IDEOGRAPH - ,0x97BD ,0x690A //CJK UNIFIED IDEOGRAPH - ,0x97BE ,0x690C //CJK UNIFIED IDEOGRAPH - ,0x97BF ,0x690F //CJK UNIFIED IDEOGRAPH - ,0x97C0 ,0x6911 //CJK UNIFIED IDEOGRAPH - ,0x97C1 ,0x6913 //CJK UNIFIED IDEOGRAPH - ,0x97C2 ,0x6914 //CJK UNIFIED IDEOGRAPH - ,0x97C3 ,0x6915 //CJK UNIFIED IDEOGRAPH - ,0x97C4 ,0x6916 //CJK UNIFIED IDEOGRAPH - ,0x97C5 ,0x6917 //CJK UNIFIED IDEOGRAPH - ,0x97C6 ,0x6918 //CJK UNIFIED IDEOGRAPH - ,0x97C7 ,0x6919 //CJK UNIFIED IDEOGRAPH - ,0x97C8 ,0x691A //CJK UNIFIED IDEOGRAPH - ,0x97C9 ,0x691B //CJK UNIFIED IDEOGRAPH - ,0x97CA ,0x691C //CJK UNIFIED IDEOGRAPH - ,0x97CB ,0x691D //CJK UNIFIED IDEOGRAPH - ,0x97CC ,0x691E //CJK UNIFIED IDEOGRAPH - ,0x97CD ,0x6921 //CJK UNIFIED IDEOGRAPH - ,0x97CE ,0x6922 //CJK UNIFIED IDEOGRAPH - ,0x97CF ,0x6923 //CJK UNIFIED IDEOGRAPH - ,0x97D0 ,0x6925 //CJK UNIFIED IDEOGRAPH - ,0x97D1 ,0x6926 //CJK UNIFIED IDEOGRAPH - ,0x97D2 ,0x6927 //CJK UNIFIED IDEOGRAPH - ,0x97D3 ,0x6928 //CJK UNIFIED IDEOGRAPH - ,0x97D4 ,0x6929 //CJK UNIFIED IDEOGRAPH - ,0x97D5 ,0x692A //CJK UNIFIED IDEOGRAPH - ,0x97D6 ,0x692B //CJK UNIFIED IDEOGRAPH - ,0x97D7 ,0x692C //CJK UNIFIED IDEOGRAPH - ,0x97D8 ,0x692E //CJK UNIFIED IDEOGRAPH - ,0x97D9 ,0x692F //CJK UNIFIED IDEOGRAPH - ,0x97DA ,0x6931 //CJK UNIFIED IDEOGRAPH - ,0x97DB ,0x6932 //CJK UNIFIED IDEOGRAPH - ,0x97DC ,0x6933 //CJK UNIFIED IDEOGRAPH - ,0x97DD ,0x6935 //CJK UNIFIED IDEOGRAPH - ,0x97DE ,0x6936 //CJK UNIFIED IDEOGRAPH - ,0x97DF ,0x6937 //CJK UNIFIED IDEOGRAPH - ,0x97E0 ,0x6938 //CJK UNIFIED IDEOGRAPH - ,0x97E1 ,0x693A //CJK UNIFIED IDEOGRAPH - ,0x97E2 ,0x693B //CJK UNIFIED IDEOGRAPH - ,0x97E3 ,0x693C //CJK UNIFIED IDEOGRAPH - ,0x97E4 ,0x693E //CJK UNIFIED IDEOGRAPH - ,0x97E5 ,0x6940 //CJK UNIFIED IDEOGRAPH - ,0x97E6 ,0x6941 //CJK UNIFIED IDEOGRAPH - ,0x97E7 ,0x6943 //CJK UNIFIED IDEOGRAPH - ,0x97E8 ,0x6944 //CJK UNIFIED IDEOGRAPH - ,0x97E9 ,0x6945 //CJK UNIFIED IDEOGRAPH - ,0x97EA ,0x6946 //CJK UNIFIED IDEOGRAPH - ,0x97EB ,0x6947 //CJK UNIFIED IDEOGRAPH - ,0x97EC ,0x6948 //CJK UNIFIED IDEOGRAPH - ,0x97ED ,0x6949 //CJK UNIFIED IDEOGRAPH - ,0x97EE ,0x694A //CJK UNIFIED IDEOGRAPH - ,0x97EF ,0x694B //CJK UNIFIED IDEOGRAPH - ,0x97F0 ,0x694C //CJK UNIFIED IDEOGRAPH - ,0x97F1 ,0x694D //CJK UNIFIED IDEOGRAPH - ,0x97F2 ,0x694E //CJK UNIFIED IDEOGRAPH - ,0x97F3 ,0x694F //CJK UNIFIED IDEOGRAPH - ,0x97F4 ,0x6950 //CJK UNIFIED IDEOGRAPH - ,0x97F5 ,0x6951 //CJK UNIFIED IDEOGRAPH - ,0x97F6 ,0x6952 //CJK UNIFIED IDEOGRAPH - ,0x97F7 ,0x6953 //CJK UNIFIED IDEOGRAPH - ,0x97F8 ,0x6955 //CJK UNIFIED IDEOGRAPH - ,0x97F9 ,0x6956 //CJK UNIFIED IDEOGRAPH - ,0x97FA ,0x6958 //CJK UNIFIED IDEOGRAPH - ,0x97FB ,0x6959 //CJK UNIFIED IDEOGRAPH - ,0x97FC ,0x695B //CJK UNIFIED IDEOGRAPH - ,0x97FD ,0x695C //CJK UNIFIED IDEOGRAPH - ,0x97FE ,0x695F //CJK UNIFIED IDEOGRAPH - ,0x9840 ,0x6961 //CJK UNIFIED IDEOGRAPH - ,0x9841 ,0x6962 //CJK UNIFIED IDEOGRAPH - ,0x9842 ,0x6964 //CJK UNIFIED IDEOGRAPH - ,0x9843 ,0x6965 //CJK UNIFIED IDEOGRAPH - ,0x9844 ,0x6967 //CJK UNIFIED IDEOGRAPH - ,0x9845 ,0x6968 //CJK UNIFIED IDEOGRAPH - ,0x9846 ,0x6969 //CJK UNIFIED IDEOGRAPH - ,0x9847 ,0x696A //CJK UNIFIED IDEOGRAPH - ,0x9848 ,0x696C //CJK UNIFIED IDEOGRAPH - ,0x9849 ,0x696D //CJK UNIFIED IDEOGRAPH - ,0x984A ,0x696F //CJK UNIFIED IDEOGRAPH - ,0x984B ,0x6970 //CJK UNIFIED IDEOGRAPH - ,0x984C ,0x6972 //CJK UNIFIED IDEOGRAPH - ,0x984D ,0x6973 //CJK UNIFIED IDEOGRAPH - ,0x984E ,0x6974 //CJK UNIFIED IDEOGRAPH - ,0x984F ,0x6975 //CJK UNIFIED IDEOGRAPH - ,0x9850 ,0x6976 //CJK UNIFIED IDEOGRAPH - ,0x9851 ,0x697A //CJK UNIFIED IDEOGRAPH - ,0x9852 ,0x697B //CJK UNIFIED IDEOGRAPH - ,0x9853 ,0x697D //CJK UNIFIED IDEOGRAPH - ,0x9854 ,0x697E //CJK UNIFIED IDEOGRAPH - ,0x9855 ,0x697F //CJK UNIFIED IDEOGRAPH - ,0x9856 ,0x6981 //CJK UNIFIED IDEOGRAPH - ,0x9857 ,0x6983 //CJK UNIFIED IDEOGRAPH - ,0x9858 ,0x6985 //CJK UNIFIED IDEOGRAPH - ,0x9859 ,0x698A //CJK UNIFIED IDEOGRAPH - ,0x985A ,0x698B //CJK UNIFIED IDEOGRAPH - ,0x985B ,0x698C //CJK UNIFIED IDEOGRAPH - ,0x985C ,0x698E //CJK UNIFIED IDEOGRAPH - ,0x985D ,0x698F //CJK UNIFIED IDEOGRAPH - ,0x985E ,0x6990 //CJK UNIFIED IDEOGRAPH - ,0x985F ,0x6991 //CJK UNIFIED IDEOGRAPH - ,0x9860 ,0x6992 //CJK UNIFIED IDEOGRAPH - ,0x9861 ,0x6993 //CJK UNIFIED IDEOGRAPH - ,0x9862 ,0x6996 //CJK UNIFIED IDEOGRAPH - ,0x9863 ,0x6997 //CJK UNIFIED IDEOGRAPH - ,0x9864 ,0x6999 //CJK UNIFIED IDEOGRAPH - ,0x9865 ,0x699A //CJK UNIFIED IDEOGRAPH - ,0x9866 ,0x699D //CJK UNIFIED IDEOGRAPH - ,0x9867 ,0x699E //CJK UNIFIED IDEOGRAPH - ,0x9868 ,0x699F //CJK UNIFIED IDEOGRAPH - ,0x9869 ,0x69A0 //CJK UNIFIED IDEOGRAPH - ,0x986A ,0x69A1 //CJK UNIFIED IDEOGRAPH - ,0x986B ,0x69A2 //CJK UNIFIED IDEOGRAPH - ,0x986C ,0x69A3 //CJK UNIFIED IDEOGRAPH - ,0x986D ,0x69A4 //CJK UNIFIED IDEOGRAPH - ,0x986E ,0x69A5 //CJK UNIFIED IDEOGRAPH - ,0x986F ,0x69A6 //CJK UNIFIED IDEOGRAPH - ,0x9870 ,0x69A9 //CJK UNIFIED IDEOGRAPH - ,0x9871 ,0x69AA //CJK UNIFIED IDEOGRAPH - ,0x9872 ,0x69AC //CJK UNIFIED IDEOGRAPH - ,0x9873 ,0x69AE //CJK UNIFIED IDEOGRAPH - ,0x9874 ,0x69AF //CJK UNIFIED IDEOGRAPH - ,0x9875 ,0x69B0 //CJK UNIFIED IDEOGRAPH - ,0x9876 ,0x69B2 //CJK UNIFIED IDEOGRAPH - ,0x9877 ,0x69B3 //CJK UNIFIED IDEOGRAPH - ,0x9878 ,0x69B5 //CJK UNIFIED IDEOGRAPH - ,0x9879 ,0x69B6 //CJK UNIFIED IDEOGRAPH - ,0x987A ,0x69B8 //CJK UNIFIED IDEOGRAPH - ,0x987B ,0x69B9 //CJK UNIFIED IDEOGRAPH - ,0x987C ,0x69BA //CJK UNIFIED IDEOGRAPH - ,0x987D ,0x69BC //CJK UNIFIED IDEOGRAPH - ,0x987E ,0x69BD //CJK UNIFIED IDEOGRAPH - ,0x9880 ,0x69BE //CJK UNIFIED IDEOGRAPH - ,0x9881 ,0x69BF //CJK UNIFIED IDEOGRAPH - ,0x9882 ,0x69C0 //CJK UNIFIED IDEOGRAPH - ,0x9883 ,0x69C2 //CJK UNIFIED IDEOGRAPH - ,0x9884 ,0x69C3 //CJK UNIFIED IDEOGRAPH - ,0x9885 ,0x69C4 //CJK UNIFIED IDEOGRAPH - ,0x9886 ,0x69C5 //CJK UNIFIED IDEOGRAPH - ,0x9887 ,0x69C6 //CJK UNIFIED IDEOGRAPH - ,0x9888 ,0x69C7 //CJK UNIFIED IDEOGRAPH - ,0x9889 ,0x69C8 //CJK UNIFIED IDEOGRAPH - ,0x988A ,0x69C9 //CJK UNIFIED IDEOGRAPH - ,0x988B ,0x69CB //CJK UNIFIED IDEOGRAPH - ,0x988C ,0x69CD //CJK UNIFIED IDEOGRAPH - ,0x988D ,0x69CF //CJK UNIFIED IDEOGRAPH - ,0x988E ,0x69D1 //CJK UNIFIED IDEOGRAPH - ,0x988F ,0x69D2 //CJK UNIFIED IDEOGRAPH - ,0x9890 ,0x69D3 //CJK UNIFIED IDEOGRAPH - ,0x9891 ,0x69D5 //CJK UNIFIED IDEOGRAPH - ,0x9892 ,0x69D6 //CJK UNIFIED IDEOGRAPH - ,0x9893 ,0x69D7 //CJK UNIFIED IDEOGRAPH - ,0x9894 ,0x69D8 //CJK UNIFIED IDEOGRAPH - ,0x9895 ,0x69D9 //CJK UNIFIED IDEOGRAPH - ,0x9896 ,0x69DA //CJK UNIFIED IDEOGRAPH - ,0x9897 ,0x69DC //CJK UNIFIED IDEOGRAPH - ,0x9898 ,0x69DD //CJK UNIFIED IDEOGRAPH - ,0x9899 ,0x69DE //CJK UNIFIED IDEOGRAPH - ,0x989A ,0x69E1 //CJK UNIFIED IDEOGRAPH - ,0x989B ,0x69E2 //CJK UNIFIED IDEOGRAPH - ,0x989C ,0x69E3 //CJK UNIFIED IDEOGRAPH - ,0x989D ,0x69E4 //CJK UNIFIED IDEOGRAPH - ,0x989E ,0x69E5 //CJK UNIFIED IDEOGRAPH - ,0x989F ,0x69E6 //CJK UNIFIED IDEOGRAPH - ,0x98A0 ,0x69E7 //CJK UNIFIED IDEOGRAPH - ,0x98A1 ,0x69E8 //CJK UNIFIED IDEOGRAPH - ,0x98A2 ,0x69E9 //CJK UNIFIED IDEOGRAPH - ,0x98A3 ,0x69EA //CJK UNIFIED IDEOGRAPH - ,0x98A4 ,0x69EB //CJK UNIFIED IDEOGRAPH - ,0x98A5 ,0x69EC //CJK UNIFIED IDEOGRAPH - ,0x98A6 ,0x69EE //CJK UNIFIED IDEOGRAPH - ,0x98A7 ,0x69EF //CJK UNIFIED IDEOGRAPH - ,0x98A8 ,0x69F0 //CJK UNIFIED IDEOGRAPH - ,0x98A9 ,0x69F1 //CJK UNIFIED IDEOGRAPH - ,0x98AA ,0x69F3 //CJK UNIFIED IDEOGRAPH - ,0x98AB ,0x69F4 //CJK UNIFIED IDEOGRAPH - ,0x98AC ,0x69F5 //CJK UNIFIED IDEOGRAPH - ,0x98AD ,0x69F6 //CJK UNIFIED IDEOGRAPH - ,0x98AE ,0x69F7 //CJK UNIFIED IDEOGRAPH - ,0x98AF ,0x69F8 //CJK UNIFIED IDEOGRAPH - ,0x98B0 ,0x69F9 //CJK UNIFIED IDEOGRAPH - ,0x98B1 ,0x69FA //CJK UNIFIED IDEOGRAPH - ,0x98B2 ,0x69FB //CJK UNIFIED IDEOGRAPH - ,0x98B3 ,0x69FC //CJK UNIFIED IDEOGRAPH - ,0x98B4 ,0x69FE //CJK UNIFIED IDEOGRAPH - ,0x98B5 ,0x6A00 //CJK UNIFIED IDEOGRAPH - ,0x98B6 ,0x6A01 //CJK UNIFIED IDEOGRAPH - ,0x98B7 ,0x6A02 //CJK UNIFIED IDEOGRAPH - ,0x98B8 ,0x6A03 //CJK UNIFIED IDEOGRAPH - ,0x98B9 ,0x6A04 //CJK UNIFIED IDEOGRAPH - ,0x98BA ,0x6A05 //CJK UNIFIED IDEOGRAPH - ,0x98BB ,0x6A06 //CJK UNIFIED IDEOGRAPH - ,0x98BC ,0x6A07 //CJK UNIFIED IDEOGRAPH - ,0x98BD ,0x6A08 //CJK UNIFIED IDEOGRAPH - ,0x98BE ,0x6A09 //CJK UNIFIED IDEOGRAPH - ,0x98BF ,0x6A0B //CJK UNIFIED IDEOGRAPH - ,0x98C0 ,0x6A0C //CJK UNIFIED IDEOGRAPH - ,0x98C1 ,0x6A0D //CJK UNIFIED IDEOGRAPH - ,0x98C2 ,0x6A0E //CJK UNIFIED IDEOGRAPH - ,0x98C3 ,0x6A0F //CJK UNIFIED IDEOGRAPH - ,0x98C4 ,0x6A10 //CJK UNIFIED IDEOGRAPH - ,0x98C5 ,0x6A11 //CJK UNIFIED IDEOGRAPH - ,0x98C6 ,0x6A12 //CJK UNIFIED IDEOGRAPH - ,0x98C7 ,0x6A13 //CJK UNIFIED IDEOGRAPH - ,0x98C8 ,0x6A14 //CJK UNIFIED IDEOGRAPH - ,0x98C9 ,0x6A15 //CJK UNIFIED IDEOGRAPH - ,0x98CA ,0x6A16 //CJK UNIFIED IDEOGRAPH - ,0x98CB ,0x6A19 //CJK UNIFIED IDEOGRAPH - ,0x98CC ,0x6A1A //CJK UNIFIED IDEOGRAPH - ,0x98CD ,0x6A1B //CJK UNIFIED IDEOGRAPH - ,0x98CE ,0x6A1C //CJK UNIFIED IDEOGRAPH - ,0x98CF ,0x6A1D //CJK UNIFIED IDEOGRAPH - ,0x98D0 ,0x6A1E //CJK UNIFIED IDEOGRAPH - ,0x98D1 ,0x6A20 //CJK UNIFIED IDEOGRAPH - ,0x98D2 ,0x6A22 //CJK UNIFIED IDEOGRAPH - ,0x98D3 ,0x6A23 //CJK UNIFIED IDEOGRAPH - ,0x98D4 ,0x6A24 //CJK UNIFIED IDEOGRAPH - ,0x98D5 ,0x6A25 //CJK UNIFIED IDEOGRAPH - ,0x98D6 ,0x6A26 //CJK UNIFIED IDEOGRAPH - ,0x98D7 ,0x6A27 //CJK UNIFIED IDEOGRAPH - ,0x98D8 ,0x6A29 //CJK UNIFIED IDEOGRAPH - ,0x98D9 ,0x6A2B //CJK UNIFIED IDEOGRAPH - ,0x98DA ,0x6A2C //CJK UNIFIED IDEOGRAPH - ,0x98DB ,0x6A2D //CJK UNIFIED IDEOGRAPH - ,0x98DC ,0x6A2E //CJK UNIFIED IDEOGRAPH - ,0x98DD ,0x6A30 //CJK UNIFIED IDEOGRAPH - ,0x98DE ,0x6A32 //CJK UNIFIED IDEOGRAPH - ,0x98DF ,0x6A33 //CJK UNIFIED IDEOGRAPH - ,0x98E0 ,0x6A34 //CJK UNIFIED IDEOGRAPH - ,0x98E1 ,0x6A36 //CJK UNIFIED IDEOGRAPH - ,0x98E2 ,0x6A37 //CJK UNIFIED IDEOGRAPH - ,0x98E3 ,0x6A38 //CJK UNIFIED IDEOGRAPH - ,0x98E4 ,0x6A39 //CJK UNIFIED IDEOGRAPH - ,0x98E5 ,0x6A3A //CJK UNIFIED IDEOGRAPH - ,0x98E6 ,0x6A3B //CJK UNIFIED IDEOGRAPH - ,0x98E7 ,0x6A3C //CJK UNIFIED IDEOGRAPH - ,0x98E8 ,0x6A3F //CJK UNIFIED IDEOGRAPH - ,0x98E9 ,0x6A40 //CJK UNIFIED IDEOGRAPH - ,0x98EA ,0x6A41 //CJK UNIFIED IDEOGRAPH - ,0x98EB ,0x6A42 //CJK UNIFIED IDEOGRAPH - ,0x98EC ,0x6A43 //CJK UNIFIED IDEOGRAPH - ,0x98ED ,0x6A45 //CJK UNIFIED IDEOGRAPH - ,0x98EE ,0x6A46 //CJK UNIFIED IDEOGRAPH - ,0x98EF ,0x6A48 //CJK UNIFIED IDEOGRAPH - ,0x98F0 ,0x6A49 //CJK UNIFIED IDEOGRAPH - ,0x98F1 ,0x6A4A //CJK UNIFIED IDEOGRAPH - ,0x98F2 ,0x6A4B //CJK UNIFIED IDEOGRAPH - ,0x98F3 ,0x6A4C //CJK UNIFIED IDEOGRAPH - ,0x98F4 ,0x6A4D //CJK UNIFIED IDEOGRAPH - ,0x98F5 ,0x6A4E //CJK UNIFIED IDEOGRAPH - ,0x98F6 ,0x6A4F //CJK UNIFIED IDEOGRAPH - ,0x98F7 ,0x6A51 //CJK UNIFIED IDEOGRAPH - ,0x98F8 ,0x6A52 //CJK UNIFIED IDEOGRAPH - ,0x98F9 ,0x6A53 //CJK UNIFIED IDEOGRAPH - ,0x98FA ,0x6A54 //CJK UNIFIED IDEOGRAPH - ,0x98FB ,0x6A55 //CJK UNIFIED IDEOGRAPH - ,0x98FC ,0x6A56 //CJK UNIFIED IDEOGRAPH - ,0x98FD ,0x6A57 //CJK UNIFIED IDEOGRAPH - ,0x98FE ,0x6A5A //CJK UNIFIED IDEOGRAPH - ,0x9940 ,0x6A5C //CJK UNIFIED IDEOGRAPH - ,0x9941 ,0x6A5D //CJK UNIFIED IDEOGRAPH - ,0x9942 ,0x6A5E //CJK UNIFIED IDEOGRAPH - ,0x9943 ,0x6A5F //CJK UNIFIED IDEOGRAPH - ,0x9944 ,0x6A60 //CJK UNIFIED IDEOGRAPH - ,0x9945 ,0x6A62 //CJK UNIFIED IDEOGRAPH - ,0x9946 ,0x6A63 //CJK UNIFIED IDEOGRAPH - ,0x9947 ,0x6A64 //CJK UNIFIED IDEOGRAPH - ,0x9948 ,0x6A66 //CJK UNIFIED IDEOGRAPH - ,0x9949 ,0x6A67 //CJK UNIFIED IDEOGRAPH - ,0x994A ,0x6A68 //CJK UNIFIED IDEOGRAPH - ,0x994B ,0x6A69 //CJK UNIFIED IDEOGRAPH - ,0x994C ,0x6A6A //CJK UNIFIED IDEOGRAPH - ,0x994D ,0x6A6B //CJK UNIFIED IDEOGRAPH - ,0x994E ,0x6A6C //CJK UNIFIED IDEOGRAPH - ,0x994F ,0x6A6D //CJK UNIFIED IDEOGRAPH - ,0x9950 ,0x6A6E //CJK UNIFIED IDEOGRAPH - ,0x9951 ,0x6A6F //CJK UNIFIED IDEOGRAPH - ,0x9952 ,0x6A70 //CJK UNIFIED IDEOGRAPH - ,0x9953 ,0x6A72 //CJK UNIFIED IDEOGRAPH - ,0x9954 ,0x6A73 //CJK UNIFIED IDEOGRAPH - ,0x9955 ,0x6A74 //CJK UNIFIED IDEOGRAPH - ,0x9956 ,0x6A75 //CJK UNIFIED IDEOGRAPH - ,0x9957 ,0x6A76 //CJK UNIFIED IDEOGRAPH - ,0x9958 ,0x6A77 //CJK UNIFIED IDEOGRAPH - ,0x9959 ,0x6A78 //CJK UNIFIED IDEOGRAPH - ,0x995A ,0x6A7A //CJK UNIFIED IDEOGRAPH - ,0x995B ,0x6A7B //CJK UNIFIED IDEOGRAPH - ,0x995C ,0x6A7D //CJK UNIFIED IDEOGRAPH - ,0x995D ,0x6A7E //CJK UNIFIED IDEOGRAPH - ,0x995E ,0x6A7F //CJK UNIFIED IDEOGRAPH - ,0x995F ,0x6A81 //CJK UNIFIED IDEOGRAPH - ,0x9960 ,0x6A82 //CJK UNIFIED IDEOGRAPH - ,0x9961 ,0x6A83 //CJK UNIFIED IDEOGRAPH - ,0x9962 ,0x6A85 //CJK UNIFIED IDEOGRAPH - ,0x9963 ,0x6A86 //CJK UNIFIED IDEOGRAPH - ,0x9964 ,0x6A87 //CJK UNIFIED IDEOGRAPH - ,0x9965 ,0x6A88 //CJK UNIFIED IDEOGRAPH - ,0x9966 ,0x6A89 //CJK UNIFIED IDEOGRAPH - ,0x9967 ,0x6A8A //CJK UNIFIED IDEOGRAPH - ,0x9968 ,0x6A8B //CJK UNIFIED IDEOGRAPH - ,0x9969 ,0x6A8C //CJK UNIFIED IDEOGRAPH - ,0x996A ,0x6A8D //CJK UNIFIED IDEOGRAPH - ,0x996B ,0x6A8F //CJK UNIFIED IDEOGRAPH - ,0x996C ,0x6A92 //CJK UNIFIED IDEOGRAPH - ,0x996D ,0x6A93 //CJK UNIFIED IDEOGRAPH - ,0x996E ,0x6A94 //CJK UNIFIED IDEOGRAPH - ,0x996F ,0x6A95 //CJK UNIFIED IDEOGRAPH - ,0x9970 ,0x6A96 //CJK UNIFIED IDEOGRAPH - ,0x9971 ,0x6A98 //CJK UNIFIED IDEOGRAPH - ,0x9972 ,0x6A99 //CJK UNIFIED IDEOGRAPH - ,0x9973 ,0x6A9A //CJK UNIFIED IDEOGRAPH - ,0x9974 ,0x6A9B //CJK UNIFIED IDEOGRAPH - ,0x9975 ,0x6A9C //CJK UNIFIED IDEOGRAPH - ,0x9976 ,0x6A9D //CJK UNIFIED IDEOGRAPH - ,0x9977 ,0x6A9E //CJK UNIFIED IDEOGRAPH - ,0x9978 ,0x6A9F //CJK UNIFIED IDEOGRAPH - ,0x9979 ,0x6AA1 //CJK UNIFIED IDEOGRAPH - ,0x997A ,0x6AA2 //CJK UNIFIED IDEOGRAPH - ,0x997B ,0x6AA3 //CJK UNIFIED IDEOGRAPH - ,0x997C ,0x6AA4 //CJK UNIFIED IDEOGRAPH - ,0x997D ,0x6AA5 //CJK UNIFIED IDEOGRAPH - ,0x997E ,0x6AA6 //CJK UNIFIED IDEOGRAPH - ,0x9980 ,0x6AA7 //CJK UNIFIED IDEOGRAPH - ,0x9981 ,0x6AA8 //CJK UNIFIED IDEOGRAPH - ,0x9982 ,0x6AAA //CJK UNIFIED IDEOGRAPH - ,0x9983 ,0x6AAD //CJK UNIFIED IDEOGRAPH - ,0x9984 ,0x6AAE //CJK UNIFIED IDEOGRAPH - ,0x9985 ,0x6AAF //CJK UNIFIED IDEOGRAPH - ,0x9986 ,0x6AB0 //CJK UNIFIED IDEOGRAPH - ,0x9987 ,0x6AB1 //CJK UNIFIED IDEOGRAPH - ,0x9988 ,0x6AB2 //CJK UNIFIED IDEOGRAPH - ,0x9989 ,0x6AB3 //CJK UNIFIED IDEOGRAPH - ,0x998A ,0x6AB4 //CJK UNIFIED IDEOGRAPH - ,0x998B ,0x6AB5 //CJK UNIFIED IDEOGRAPH - ,0x998C ,0x6AB6 //CJK UNIFIED IDEOGRAPH - ,0x998D ,0x6AB7 //CJK UNIFIED IDEOGRAPH - ,0x998E ,0x6AB8 //CJK UNIFIED IDEOGRAPH - ,0x998F ,0x6AB9 //CJK UNIFIED IDEOGRAPH - ,0x9990 ,0x6ABA //CJK UNIFIED IDEOGRAPH - ,0x9991 ,0x6ABB //CJK UNIFIED IDEOGRAPH - ,0x9992 ,0x6ABC //CJK UNIFIED IDEOGRAPH - ,0x9993 ,0x6ABD //CJK UNIFIED IDEOGRAPH - ,0x9994 ,0x6ABE //CJK UNIFIED IDEOGRAPH - ,0x9995 ,0x6ABF //CJK UNIFIED IDEOGRAPH - ,0x9996 ,0x6AC0 //CJK UNIFIED IDEOGRAPH - ,0x9997 ,0x6AC1 //CJK UNIFIED IDEOGRAPH - ,0x9998 ,0x6AC2 //CJK UNIFIED IDEOGRAPH - ,0x9999 ,0x6AC3 //CJK UNIFIED IDEOGRAPH - ,0x999A ,0x6AC4 //CJK UNIFIED IDEOGRAPH - ,0x999B ,0x6AC5 //CJK UNIFIED IDEOGRAPH - ,0x999C ,0x6AC6 //CJK UNIFIED IDEOGRAPH - ,0x999D ,0x6AC7 //CJK UNIFIED IDEOGRAPH - ,0x999E ,0x6AC8 //CJK UNIFIED IDEOGRAPH - ,0x999F ,0x6AC9 //CJK UNIFIED IDEOGRAPH - ,0x99A0 ,0x6ACA //CJK UNIFIED IDEOGRAPH - ,0x99A1 ,0x6ACB //CJK UNIFIED IDEOGRAPH - ,0x99A2 ,0x6ACC //CJK UNIFIED IDEOGRAPH - ,0x99A3 ,0x6ACD //CJK UNIFIED IDEOGRAPH - ,0x99A4 ,0x6ACE //CJK UNIFIED IDEOGRAPH - ,0x99A5 ,0x6ACF //CJK UNIFIED IDEOGRAPH - ,0x99A6 ,0x6AD0 //CJK UNIFIED IDEOGRAPH - ,0x99A7 ,0x6AD1 //CJK UNIFIED IDEOGRAPH - ,0x99A8 ,0x6AD2 //CJK UNIFIED IDEOGRAPH - ,0x99A9 ,0x6AD3 //CJK UNIFIED IDEOGRAPH - ,0x99AA ,0x6AD4 //CJK UNIFIED IDEOGRAPH - ,0x99AB ,0x6AD5 //CJK UNIFIED IDEOGRAPH - ,0x99AC ,0x6AD6 //CJK UNIFIED IDEOGRAPH - ,0x99AD ,0x6AD7 //CJK UNIFIED IDEOGRAPH - ,0x99AE ,0x6AD8 //CJK UNIFIED IDEOGRAPH - ,0x99AF ,0x6AD9 //CJK UNIFIED IDEOGRAPH - ,0x99B0 ,0x6ADA //CJK UNIFIED IDEOGRAPH - ,0x99B1 ,0x6ADB //CJK UNIFIED IDEOGRAPH - ,0x99B2 ,0x6ADC //CJK UNIFIED IDEOGRAPH - ,0x99B3 ,0x6ADD //CJK UNIFIED IDEOGRAPH - ,0x99B4 ,0x6ADE //CJK UNIFIED IDEOGRAPH - ,0x99B5 ,0x6ADF //CJK UNIFIED IDEOGRAPH - ,0x99B6 ,0x6AE0 //CJK UNIFIED IDEOGRAPH - ,0x99B7 ,0x6AE1 //CJK UNIFIED IDEOGRAPH - ,0x99B8 ,0x6AE2 //CJK UNIFIED IDEOGRAPH - ,0x99B9 ,0x6AE3 //CJK UNIFIED IDEOGRAPH - ,0x99BA ,0x6AE4 //CJK UNIFIED IDEOGRAPH - ,0x99BB ,0x6AE5 //CJK UNIFIED IDEOGRAPH - ,0x99BC ,0x6AE6 //CJK UNIFIED IDEOGRAPH - ,0x99BD ,0x6AE7 //CJK UNIFIED IDEOGRAPH - ,0x99BE ,0x6AE8 //CJK UNIFIED IDEOGRAPH - ,0x99BF ,0x6AE9 //CJK UNIFIED IDEOGRAPH - ,0x99C0 ,0x6AEA //CJK UNIFIED IDEOGRAPH - ,0x99C1 ,0x6AEB //CJK UNIFIED IDEOGRAPH - ,0x99C2 ,0x6AEC //CJK UNIFIED IDEOGRAPH - ,0x99C3 ,0x6AED //CJK UNIFIED IDEOGRAPH - ,0x99C4 ,0x6AEE //CJK UNIFIED IDEOGRAPH - ,0x99C5 ,0x6AEF //CJK UNIFIED IDEOGRAPH - ,0x99C6 ,0x6AF0 //CJK UNIFIED IDEOGRAPH - ,0x99C7 ,0x6AF1 //CJK UNIFIED IDEOGRAPH - ,0x99C8 ,0x6AF2 //CJK UNIFIED IDEOGRAPH - ,0x99C9 ,0x6AF3 //CJK UNIFIED IDEOGRAPH - ,0x99CA ,0x6AF4 //CJK UNIFIED IDEOGRAPH - ,0x99CB ,0x6AF5 //CJK UNIFIED IDEOGRAPH - ,0x99CC ,0x6AF6 //CJK UNIFIED IDEOGRAPH - ,0x99CD ,0x6AF7 //CJK UNIFIED IDEOGRAPH - ,0x99CE ,0x6AF8 //CJK UNIFIED IDEOGRAPH - ,0x99CF ,0x6AF9 //CJK UNIFIED IDEOGRAPH - ,0x99D0 ,0x6AFA //CJK UNIFIED IDEOGRAPH - ,0x99D1 ,0x6AFB //CJK UNIFIED IDEOGRAPH - ,0x99D2 ,0x6AFC //CJK UNIFIED IDEOGRAPH - ,0x99D3 ,0x6AFD //CJK UNIFIED IDEOGRAPH - ,0x99D4 ,0x6AFE //CJK UNIFIED IDEOGRAPH - ,0x99D5 ,0x6AFF //CJK UNIFIED IDEOGRAPH - ,0x99D6 ,0x6B00 //CJK UNIFIED IDEOGRAPH - ,0x99D7 ,0x6B01 //CJK UNIFIED IDEOGRAPH - ,0x99D8 ,0x6B02 //CJK UNIFIED IDEOGRAPH - ,0x99D9 ,0x6B03 //CJK UNIFIED IDEOGRAPH - ,0x99DA ,0x6B04 //CJK UNIFIED IDEOGRAPH - ,0x99DB ,0x6B05 //CJK UNIFIED IDEOGRAPH - ,0x99DC ,0x6B06 //CJK UNIFIED IDEOGRAPH - ,0x99DD ,0x6B07 //CJK UNIFIED IDEOGRAPH - ,0x99DE ,0x6B08 //CJK UNIFIED IDEOGRAPH - ,0x99DF ,0x6B09 //CJK UNIFIED IDEOGRAPH - ,0x99E0 ,0x6B0A //CJK UNIFIED IDEOGRAPH - ,0x99E1 ,0x6B0B //CJK UNIFIED IDEOGRAPH - ,0x99E2 ,0x6B0C //CJK UNIFIED IDEOGRAPH - ,0x99E3 ,0x6B0D //CJK UNIFIED IDEOGRAPH - ,0x99E4 ,0x6B0E //CJK UNIFIED IDEOGRAPH - ,0x99E5 ,0x6B0F //CJK UNIFIED IDEOGRAPH - ,0x99E6 ,0x6B10 //CJK UNIFIED IDEOGRAPH - ,0x99E7 ,0x6B11 //CJK UNIFIED IDEOGRAPH - ,0x99E8 ,0x6B12 //CJK UNIFIED IDEOGRAPH - ,0x99E9 ,0x6B13 //CJK UNIFIED IDEOGRAPH - ,0x99EA ,0x6B14 //CJK UNIFIED IDEOGRAPH - ,0x99EB ,0x6B15 //CJK UNIFIED IDEOGRAPH - ,0x99EC ,0x6B16 //CJK UNIFIED IDEOGRAPH - ,0x99ED ,0x6B17 //CJK UNIFIED IDEOGRAPH - ,0x99EE ,0x6B18 //CJK UNIFIED IDEOGRAPH - ,0x99EF ,0x6B19 //CJK UNIFIED IDEOGRAPH - ,0x99F0 ,0x6B1A //CJK UNIFIED IDEOGRAPH - ,0x99F1 ,0x6B1B //CJK UNIFIED IDEOGRAPH - ,0x99F2 ,0x6B1C //CJK UNIFIED IDEOGRAPH - ,0x99F3 ,0x6B1D //CJK UNIFIED IDEOGRAPH - ,0x99F4 ,0x6B1E //CJK UNIFIED IDEOGRAPH - ,0x99F5 ,0x6B1F //CJK UNIFIED IDEOGRAPH - ,0x99F6 ,0x6B25 //CJK UNIFIED IDEOGRAPH - ,0x99F7 ,0x6B26 //CJK UNIFIED IDEOGRAPH - ,0x99F8 ,0x6B28 //CJK UNIFIED IDEOGRAPH - ,0x99F9 ,0x6B29 //CJK UNIFIED IDEOGRAPH - ,0x99FA ,0x6B2A //CJK UNIFIED IDEOGRAPH - ,0x99FB ,0x6B2B //CJK UNIFIED IDEOGRAPH - ,0x99FC ,0x6B2C //CJK UNIFIED IDEOGRAPH - ,0x99FD ,0x6B2D //CJK UNIFIED IDEOGRAPH - ,0x99FE ,0x6B2E //CJK UNIFIED IDEOGRAPH - ,0x9A40 ,0x6B2F //CJK UNIFIED IDEOGRAPH - ,0x9A41 ,0x6B30 //CJK UNIFIED IDEOGRAPH - ,0x9A42 ,0x6B31 //CJK UNIFIED IDEOGRAPH - ,0x9A43 ,0x6B33 //CJK UNIFIED IDEOGRAPH - ,0x9A44 ,0x6B34 //CJK UNIFIED IDEOGRAPH - ,0x9A45 ,0x6B35 //CJK UNIFIED IDEOGRAPH - ,0x9A46 ,0x6B36 //CJK UNIFIED IDEOGRAPH - ,0x9A47 ,0x6B38 //CJK UNIFIED IDEOGRAPH - ,0x9A48 ,0x6B3B //CJK UNIFIED IDEOGRAPH - ,0x9A49 ,0x6B3C //CJK UNIFIED IDEOGRAPH - ,0x9A4A ,0x6B3D //CJK UNIFIED IDEOGRAPH - ,0x9A4B ,0x6B3F //CJK UNIFIED IDEOGRAPH - ,0x9A4C ,0x6B40 //CJK UNIFIED IDEOGRAPH - ,0x9A4D ,0x6B41 //CJK UNIFIED IDEOGRAPH - ,0x9A4E ,0x6B42 //CJK UNIFIED IDEOGRAPH - ,0x9A4F ,0x6B44 //CJK UNIFIED IDEOGRAPH - ,0x9A50 ,0x6B45 //CJK UNIFIED IDEOGRAPH - ,0x9A51 ,0x6B48 //CJK UNIFIED IDEOGRAPH - ,0x9A52 ,0x6B4A //CJK UNIFIED IDEOGRAPH - ,0x9A53 ,0x6B4B //CJK UNIFIED IDEOGRAPH - ,0x9A54 ,0x6B4D //CJK UNIFIED IDEOGRAPH - ,0x9A55 ,0x6B4E //CJK UNIFIED IDEOGRAPH - ,0x9A56 ,0x6B4F //CJK UNIFIED IDEOGRAPH - ,0x9A57 ,0x6B50 //CJK UNIFIED IDEOGRAPH - ,0x9A58 ,0x6B51 //CJK UNIFIED IDEOGRAPH - ,0x9A59 ,0x6B52 //CJK UNIFIED IDEOGRAPH - ,0x9A5A ,0x6B53 //CJK UNIFIED IDEOGRAPH - ,0x9A5B ,0x6B54 //CJK UNIFIED IDEOGRAPH - ,0x9A5C ,0x6B55 //CJK UNIFIED IDEOGRAPH - ,0x9A5D ,0x6B56 //CJK UNIFIED IDEOGRAPH - ,0x9A5E ,0x6B57 //CJK UNIFIED IDEOGRAPH - ,0x9A5F ,0x6B58 //CJK UNIFIED IDEOGRAPH - ,0x9A60 ,0x6B5A //CJK UNIFIED IDEOGRAPH - ,0x9A61 ,0x6B5B //CJK UNIFIED IDEOGRAPH - ,0x9A62 ,0x6B5C //CJK UNIFIED IDEOGRAPH - ,0x9A63 ,0x6B5D //CJK UNIFIED IDEOGRAPH - ,0x9A64 ,0x6B5E //CJK UNIFIED IDEOGRAPH - ,0x9A65 ,0x6B5F //CJK UNIFIED IDEOGRAPH - ,0x9A66 ,0x6B60 //CJK UNIFIED IDEOGRAPH - ,0x9A67 ,0x6B61 //CJK UNIFIED IDEOGRAPH - ,0x9A68 ,0x6B68 //CJK UNIFIED IDEOGRAPH - ,0x9A69 ,0x6B69 //CJK UNIFIED IDEOGRAPH - ,0x9A6A ,0x6B6B //CJK UNIFIED IDEOGRAPH - ,0x9A6B ,0x6B6C //CJK UNIFIED IDEOGRAPH - ,0x9A6C ,0x6B6D //CJK UNIFIED IDEOGRAPH - ,0x9A6D ,0x6B6E //CJK UNIFIED IDEOGRAPH - ,0x9A6E ,0x6B6F //CJK UNIFIED IDEOGRAPH - ,0x9A6F ,0x6B70 //CJK UNIFIED IDEOGRAPH - ,0x9A70 ,0x6B71 //CJK UNIFIED IDEOGRAPH - ,0x9A71 ,0x6B72 //CJK UNIFIED IDEOGRAPH - ,0x9A72 ,0x6B73 //CJK UNIFIED IDEOGRAPH - ,0x9A73 ,0x6B74 //CJK UNIFIED IDEOGRAPH - ,0x9A74 ,0x6B75 //CJK UNIFIED IDEOGRAPH - ,0x9A75 ,0x6B76 //CJK UNIFIED IDEOGRAPH - ,0x9A76 ,0x6B77 //CJK UNIFIED IDEOGRAPH - ,0x9A77 ,0x6B78 //CJK UNIFIED IDEOGRAPH - ,0x9A78 ,0x6B7A //CJK UNIFIED IDEOGRAPH - ,0x9A79 ,0x6B7D //CJK UNIFIED IDEOGRAPH - ,0x9A7A ,0x6B7E //CJK UNIFIED IDEOGRAPH - ,0x9A7B ,0x6B7F //CJK UNIFIED IDEOGRAPH - ,0x9A7C ,0x6B80 //CJK UNIFIED IDEOGRAPH - ,0x9A7D ,0x6B85 //CJK UNIFIED IDEOGRAPH - ,0x9A7E ,0x6B88 //CJK UNIFIED IDEOGRAPH - ,0x9A80 ,0x6B8C //CJK UNIFIED IDEOGRAPH - ,0x9A81 ,0x6B8E //CJK UNIFIED IDEOGRAPH - ,0x9A82 ,0x6B8F //CJK UNIFIED IDEOGRAPH - ,0x9A83 ,0x6B90 //CJK UNIFIED IDEOGRAPH - ,0x9A84 ,0x6B91 //CJK UNIFIED IDEOGRAPH - ,0x9A85 ,0x6B94 //CJK UNIFIED IDEOGRAPH - ,0x9A86 ,0x6B95 //CJK UNIFIED IDEOGRAPH - ,0x9A87 ,0x6B97 //CJK UNIFIED IDEOGRAPH - ,0x9A88 ,0x6B98 //CJK UNIFIED IDEOGRAPH - ,0x9A89 ,0x6B99 //CJK UNIFIED IDEOGRAPH - ,0x9A8A ,0x6B9C //CJK UNIFIED IDEOGRAPH - ,0x9A8B ,0x6B9D //CJK UNIFIED IDEOGRAPH - ,0x9A8C ,0x6B9E //CJK UNIFIED IDEOGRAPH - ,0x9A8D ,0x6B9F //CJK UNIFIED IDEOGRAPH - ,0x9A8E ,0x6BA0 //CJK UNIFIED IDEOGRAPH - ,0x9A8F ,0x6BA2 //CJK UNIFIED IDEOGRAPH - ,0x9A90 ,0x6BA3 //CJK UNIFIED IDEOGRAPH - ,0x9A91 ,0x6BA4 //CJK UNIFIED IDEOGRAPH - ,0x9A92 ,0x6BA5 //CJK UNIFIED IDEOGRAPH - ,0x9A93 ,0x6BA6 //CJK UNIFIED IDEOGRAPH - ,0x9A94 ,0x6BA7 //CJK UNIFIED IDEOGRAPH - ,0x9A95 ,0x6BA8 //CJK UNIFIED IDEOGRAPH - ,0x9A96 ,0x6BA9 //CJK UNIFIED IDEOGRAPH - ,0x9A97 ,0x6BAB //CJK UNIFIED IDEOGRAPH - ,0x9A98 ,0x6BAC //CJK UNIFIED IDEOGRAPH - ,0x9A99 ,0x6BAD //CJK UNIFIED IDEOGRAPH - ,0x9A9A ,0x6BAE //CJK UNIFIED IDEOGRAPH - ,0x9A9B ,0x6BAF //CJK UNIFIED IDEOGRAPH - ,0x9A9C ,0x6BB0 //CJK UNIFIED IDEOGRAPH - ,0x9A9D ,0x6BB1 //CJK UNIFIED IDEOGRAPH - ,0x9A9E ,0x6BB2 //CJK UNIFIED IDEOGRAPH - ,0x9A9F ,0x6BB6 //CJK UNIFIED IDEOGRAPH - ,0x9AA0 ,0x6BB8 //CJK UNIFIED IDEOGRAPH - ,0x9AA1 ,0x6BB9 //CJK UNIFIED IDEOGRAPH - ,0x9AA2 ,0x6BBA //CJK UNIFIED IDEOGRAPH - ,0x9AA3 ,0x6BBB //CJK UNIFIED IDEOGRAPH - ,0x9AA4 ,0x6BBC //CJK UNIFIED IDEOGRAPH - ,0x9AA5 ,0x6BBD //CJK UNIFIED IDEOGRAPH - ,0x9AA6 ,0x6BBE //CJK UNIFIED IDEOGRAPH - ,0x9AA7 ,0x6BC0 //CJK UNIFIED IDEOGRAPH - ,0x9AA8 ,0x6BC3 //CJK UNIFIED IDEOGRAPH - ,0x9AA9 ,0x6BC4 //CJK UNIFIED IDEOGRAPH - ,0x9AAA ,0x6BC6 //CJK UNIFIED IDEOGRAPH - ,0x9AAB ,0x6BC7 //CJK UNIFIED IDEOGRAPH - ,0x9AAC ,0x6BC8 //CJK UNIFIED IDEOGRAPH - ,0x9AAD ,0x6BC9 //CJK UNIFIED IDEOGRAPH - ,0x9AAE ,0x6BCA //CJK UNIFIED IDEOGRAPH - ,0x9AAF ,0x6BCC //CJK UNIFIED IDEOGRAPH - ,0x9AB0 ,0x6BCE //CJK UNIFIED IDEOGRAPH - ,0x9AB1 ,0x6BD0 //CJK UNIFIED IDEOGRAPH - ,0x9AB2 ,0x6BD1 //CJK UNIFIED IDEOGRAPH - ,0x9AB3 ,0x6BD8 //CJK UNIFIED IDEOGRAPH - ,0x9AB4 ,0x6BDA //CJK UNIFIED IDEOGRAPH - ,0x9AB5 ,0x6BDC //CJK UNIFIED IDEOGRAPH - ,0x9AB6 ,0x6BDD //CJK UNIFIED IDEOGRAPH - ,0x9AB7 ,0x6BDE //CJK UNIFIED IDEOGRAPH - ,0x9AB8 ,0x6BDF //CJK UNIFIED IDEOGRAPH - ,0x9AB9 ,0x6BE0 //CJK UNIFIED IDEOGRAPH - ,0x9ABA ,0x6BE2 //CJK UNIFIED IDEOGRAPH - ,0x9ABB ,0x6BE3 //CJK UNIFIED IDEOGRAPH - ,0x9ABC ,0x6BE4 //CJK UNIFIED IDEOGRAPH - ,0x9ABD ,0x6BE5 //CJK UNIFIED IDEOGRAPH - ,0x9ABE ,0x6BE6 //CJK UNIFIED IDEOGRAPH - ,0x9ABF ,0x6BE7 //CJK UNIFIED IDEOGRAPH - ,0x9AC0 ,0x6BE8 //CJK UNIFIED IDEOGRAPH - ,0x9AC1 ,0x6BE9 //CJK UNIFIED IDEOGRAPH - ,0x9AC2 ,0x6BEC //CJK UNIFIED IDEOGRAPH - ,0x9AC3 ,0x6BED //CJK UNIFIED IDEOGRAPH - ,0x9AC4 ,0x6BEE //CJK UNIFIED IDEOGRAPH - ,0x9AC5 ,0x6BF0 //CJK UNIFIED IDEOGRAPH - ,0x9AC6 ,0x6BF1 //CJK UNIFIED IDEOGRAPH - ,0x9AC7 ,0x6BF2 //CJK UNIFIED IDEOGRAPH - ,0x9AC8 ,0x6BF4 //CJK UNIFIED IDEOGRAPH - ,0x9AC9 ,0x6BF6 //CJK UNIFIED IDEOGRAPH - ,0x9ACA ,0x6BF7 //CJK UNIFIED IDEOGRAPH - ,0x9ACB ,0x6BF8 //CJK UNIFIED IDEOGRAPH - ,0x9ACC ,0x6BFA //CJK UNIFIED IDEOGRAPH - ,0x9ACD ,0x6BFB //CJK UNIFIED IDEOGRAPH - ,0x9ACE ,0x6BFC //CJK UNIFIED IDEOGRAPH - ,0x9ACF ,0x6BFE //CJK UNIFIED IDEOGRAPH - ,0x9AD0 ,0x6BFF //CJK UNIFIED IDEOGRAPH - ,0x9AD1 ,0x6C00 //CJK UNIFIED IDEOGRAPH - ,0x9AD2 ,0x6C01 //CJK UNIFIED IDEOGRAPH - ,0x9AD3 ,0x6C02 //CJK UNIFIED IDEOGRAPH - ,0x9AD4 ,0x6C03 //CJK UNIFIED IDEOGRAPH - ,0x9AD5 ,0x6C04 //CJK UNIFIED IDEOGRAPH - ,0x9AD6 ,0x6C08 //CJK UNIFIED IDEOGRAPH - ,0x9AD7 ,0x6C09 //CJK UNIFIED IDEOGRAPH - ,0x9AD8 ,0x6C0A //CJK UNIFIED IDEOGRAPH - ,0x9AD9 ,0x6C0B //CJK UNIFIED IDEOGRAPH - ,0x9ADA ,0x6C0C //CJK UNIFIED IDEOGRAPH - ,0x9ADB ,0x6C0E //CJK UNIFIED IDEOGRAPH - ,0x9ADC ,0x6C12 //CJK UNIFIED IDEOGRAPH - ,0x9ADD ,0x6C17 //CJK UNIFIED IDEOGRAPH - ,0x9ADE ,0x6C1C //CJK UNIFIED IDEOGRAPH - ,0x9ADF ,0x6C1D //CJK UNIFIED IDEOGRAPH - ,0x9AE0 ,0x6C1E //CJK UNIFIED IDEOGRAPH - ,0x9AE1 ,0x6C20 //CJK UNIFIED IDEOGRAPH - ,0x9AE2 ,0x6C23 //CJK UNIFIED IDEOGRAPH - ,0x9AE3 ,0x6C25 //CJK UNIFIED IDEOGRAPH - ,0x9AE4 ,0x6C2B //CJK UNIFIED IDEOGRAPH - ,0x9AE5 ,0x6C2C //CJK UNIFIED IDEOGRAPH - ,0x9AE6 ,0x6C2D //CJK UNIFIED IDEOGRAPH - ,0x9AE7 ,0x6C31 //CJK UNIFIED IDEOGRAPH - ,0x9AE8 ,0x6C33 //CJK UNIFIED IDEOGRAPH - ,0x9AE9 ,0x6C36 //CJK UNIFIED IDEOGRAPH - ,0x9AEA ,0x6C37 //CJK UNIFIED IDEOGRAPH - ,0x9AEB ,0x6C39 //CJK UNIFIED IDEOGRAPH - ,0x9AEC ,0x6C3A //CJK UNIFIED IDEOGRAPH - ,0x9AED ,0x6C3B //CJK UNIFIED IDEOGRAPH - ,0x9AEE ,0x6C3C //CJK UNIFIED IDEOGRAPH - ,0x9AEF ,0x6C3E //CJK UNIFIED IDEOGRAPH - ,0x9AF0 ,0x6C3F //CJK UNIFIED IDEOGRAPH - ,0x9AF1 ,0x6C43 //CJK UNIFIED IDEOGRAPH - ,0x9AF2 ,0x6C44 //CJK UNIFIED IDEOGRAPH - ,0x9AF3 ,0x6C45 //CJK UNIFIED IDEOGRAPH - ,0x9AF4 ,0x6C48 //CJK UNIFIED IDEOGRAPH - ,0x9AF5 ,0x6C4B //CJK UNIFIED IDEOGRAPH - ,0x9AF6 ,0x6C4C //CJK UNIFIED IDEOGRAPH - ,0x9AF7 ,0x6C4D //CJK UNIFIED IDEOGRAPH - ,0x9AF8 ,0x6C4E //CJK UNIFIED IDEOGRAPH - ,0x9AF9 ,0x6C4F //CJK UNIFIED IDEOGRAPH - ,0x9AFA ,0x6C51 //CJK UNIFIED IDEOGRAPH - ,0x9AFB ,0x6C52 //CJK UNIFIED IDEOGRAPH - ,0x9AFC ,0x6C53 //CJK UNIFIED IDEOGRAPH - ,0x9AFD ,0x6C56 //CJK UNIFIED IDEOGRAPH - ,0x9AFE ,0x6C58 //CJK UNIFIED IDEOGRAPH - ,0x9B40 ,0x6C59 //CJK UNIFIED IDEOGRAPH - ,0x9B41 ,0x6C5A //CJK UNIFIED IDEOGRAPH - ,0x9B42 ,0x6C62 //CJK UNIFIED IDEOGRAPH - ,0x9B43 ,0x6C63 //CJK UNIFIED IDEOGRAPH - ,0x9B44 ,0x6C65 //CJK UNIFIED IDEOGRAPH - ,0x9B45 ,0x6C66 //CJK UNIFIED IDEOGRAPH - ,0x9B46 ,0x6C67 //CJK UNIFIED IDEOGRAPH - ,0x9B47 ,0x6C6B //CJK UNIFIED IDEOGRAPH - ,0x9B48 ,0x6C6C //CJK UNIFIED IDEOGRAPH - ,0x9B49 ,0x6C6D //CJK UNIFIED IDEOGRAPH - ,0x9B4A ,0x6C6E //CJK UNIFIED IDEOGRAPH - ,0x9B4B ,0x6C6F //CJK UNIFIED IDEOGRAPH - ,0x9B4C ,0x6C71 //CJK UNIFIED IDEOGRAPH - ,0x9B4D ,0x6C73 //CJK UNIFIED IDEOGRAPH - ,0x9B4E ,0x6C75 //CJK UNIFIED IDEOGRAPH - ,0x9B4F ,0x6C77 //CJK UNIFIED IDEOGRAPH - ,0x9B50 ,0x6C78 //CJK UNIFIED IDEOGRAPH - ,0x9B51 ,0x6C7A //CJK UNIFIED IDEOGRAPH - ,0x9B52 ,0x6C7B //CJK UNIFIED IDEOGRAPH - ,0x9B53 ,0x6C7C //CJK UNIFIED IDEOGRAPH - ,0x9B54 ,0x6C7F //CJK UNIFIED IDEOGRAPH - ,0x9B55 ,0x6C80 //CJK UNIFIED IDEOGRAPH - ,0x9B56 ,0x6C84 //CJK UNIFIED IDEOGRAPH - ,0x9B57 ,0x6C87 //CJK UNIFIED IDEOGRAPH - ,0x9B58 ,0x6C8A //CJK UNIFIED IDEOGRAPH - ,0x9B59 ,0x6C8B //CJK UNIFIED IDEOGRAPH - ,0x9B5A ,0x6C8D //CJK UNIFIED IDEOGRAPH - ,0x9B5B ,0x6C8E //CJK UNIFIED IDEOGRAPH - ,0x9B5C ,0x6C91 //CJK UNIFIED IDEOGRAPH - ,0x9B5D ,0x6C92 //CJK UNIFIED IDEOGRAPH - ,0x9B5E ,0x6C95 //CJK UNIFIED IDEOGRAPH - ,0x9B5F ,0x6C96 //CJK UNIFIED IDEOGRAPH - ,0x9B60 ,0x6C97 //CJK UNIFIED IDEOGRAPH - ,0x9B61 ,0x6C98 //CJK UNIFIED IDEOGRAPH - ,0x9B62 ,0x6C9A //CJK UNIFIED IDEOGRAPH - ,0x9B63 ,0x6C9C //CJK UNIFIED IDEOGRAPH - ,0x9B64 ,0x6C9D //CJK UNIFIED IDEOGRAPH - ,0x9B65 ,0x6C9E //CJK UNIFIED IDEOGRAPH - ,0x9B66 ,0x6CA0 //CJK UNIFIED IDEOGRAPH - ,0x9B67 ,0x6CA2 //CJK UNIFIED IDEOGRAPH - ,0x9B68 ,0x6CA8 //CJK UNIFIED IDEOGRAPH - ,0x9B69 ,0x6CAC //CJK UNIFIED IDEOGRAPH - ,0x9B6A ,0x6CAF //CJK UNIFIED IDEOGRAPH - ,0x9B6B ,0x6CB0 //CJK UNIFIED IDEOGRAPH - ,0x9B6C ,0x6CB4 //CJK UNIFIED IDEOGRAPH - ,0x9B6D ,0x6CB5 //CJK UNIFIED IDEOGRAPH - ,0x9B6E ,0x6CB6 //CJK UNIFIED IDEOGRAPH - ,0x9B6F ,0x6CB7 //CJK UNIFIED IDEOGRAPH - ,0x9B70 ,0x6CBA //CJK UNIFIED IDEOGRAPH - ,0x9B71 ,0x6CC0 //CJK UNIFIED IDEOGRAPH - ,0x9B72 ,0x6CC1 //CJK UNIFIED IDEOGRAPH - ,0x9B73 ,0x6CC2 //CJK UNIFIED IDEOGRAPH - ,0x9B74 ,0x6CC3 //CJK UNIFIED IDEOGRAPH - ,0x9B75 ,0x6CC6 //CJK UNIFIED IDEOGRAPH - ,0x9B76 ,0x6CC7 //CJK UNIFIED IDEOGRAPH - ,0x9B77 ,0x6CC8 //CJK UNIFIED IDEOGRAPH - ,0x9B78 ,0x6CCB //CJK UNIFIED IDEOGRAPH - ,0x9B79 ,0x6CCD //CJK UNIFIED IDEOGRAPH - ,0x9B7A ,0x6CCE //CJK UNIFIED IDEOGRAPH - ,0x9B7B ,0x6CCF //CJK UNIFIED IDEOGRAPH - ,0x9B7C ,0x6CD1 //CJK UNIFIED IDEOGRAPH - ,0x9B7D ,0x6CD2 //CJK UNIFIED IDEOGRAPH - ,0x9B7E ,0x6CD8 //CJK UNIFIED IDEOGRAPH - ,0x9B80 ,0x6CD9 //CJK UNIFIED IDEOGRAPH - ,0x9B81 ,0x6CDA //CJK UNIFIED IDEOGRAPH - ,0x9B82 ,0x6CDC //CJK UNIFIED IDEOGRAPH - ,0x9B83 ,0x6CDD //CJK UNIFIED IDEOGRAPH - ,0x9B84 ,0x6CDF //CJK UNIFIED IDEOGRAPH - ,0x9B85 ,0x6CE4 //CJK UNIFIED IDEOGRAPH - ,0x9B86 ,0x6CE6 //CJK UNIFIED IDEOGRAPH - ,0x9B87 ,0x6CE7 //CJK UNIFIED IDEOGRAPH - ,0x9B88 ,0x6CE9 //CJK UNIFIED IDEOGRAPH - ,0x9B89 ,0x6CEC //CJK UNIFIED IDEOGRAPH - ,0x9B8A ,0x6CED //CJK UNIFIED IDEOGRAPH - ,0x9B8B ,0x6CF2 //CJK UNIFIED IDEOGRAPH - ,0x9B8C ,0x6CF4 //CJK UNIFIED IDEOGRAPH - ,0x9B8D ,0x6CF9 //CJK UNIFIED IDEOGRAPH - ,0x9B8E ,0x6CFF //CJK UNIFIED IDEOGRAPH - ,0x9B8F ,0x6D00 //CJK UNIFIED IDEOGRAPH - ,0x9B90 ,0x6D02 //CJK UNIFIED IDEOGRAPH - ,0x9B91 ,0x6D03 //CJK UNIFIED IDEOGRAPH - ,0x9B92 ,0x6D05 //CJK UNIFIED IDEOGRAPH - ,0x9B93 ,0x6D06 //CJK UNIFIED IDEOGRAPH - ,0x9B94 ,0x6D08 //CJK UNIFIED IDEOGRAPH - ,0x9B95 ,0x6D09 //CJK UNIFIED IDEOGRAPH - ,0x9B96 ,0x6D0A //CJK UNIFIED IDEOGRAPH - ,0x9B97 ,0x6D0D //CJK UNIFIED IDEOGRAPH - ,0x9B98 ,0x6D0F //CJK UNIFIED IDEOGRAPH - ,0x9B99 ,0x6D10 //CJK UNIFIED IDEOGRAPH - ,0x9B9A ,0x6D11 //CJK UNIFIED IDEOGRAPH - ,0x9B9B ,0x6D13 //CJK UNIFIED IDEOGRAPH - ,0x9B9C ,0x6D14 //CJK UNIFIED IDEOGRAPH - ,0x9B9D ,0x6D15 //CJK UNIFIED IDEOGRAPH - ,0x9B9E ,0x6D16 //CJK UNIFIED IDEOGRAPH - ,0x9B9F ,0x6D18 //CJK UNIFIED IDEOGRAPH - ,0x9BA0 ,0x6D1C //CJK UNIFIED IDEOGRAPH - ,0x9BA1 ,0x6D1D //CJK UNIFIED IDEOGRAPH - ,0x9BA2 ,0x6D1F //CJK UNIFIED IDEOGRAPH - ,0x9BA3 ,0x6D20 //CJK UNIFIED IDEOGRAPH - ,0x9BA4 ,0x6D21 //CJK UNIFIED IDEOGRAPH - ,0x9BA5 ,0x6D22 //CJK UNIFIED IDEOGRAPH - ,0x9BA6 ,0x6D23 //CJK UNIFIED IDEOGRAPH - ,0x9BA7 ,0x6D24 //CJK UNIFIED IDEOGRAPH - ,0x9BA8 ,0x6D26 //CJK UNIFIED IDEOGRAPH - ,0x9BA9 ,0x6D28 //CJK UNIFIED IDEOGRAPH - ,0x9BAA ,0x6D29 //CJK UNIFIED IDEOGRAPH - ,0x9BAB ,0x6D2C //CJK UNIFIED IDEOGRAPH - ,0x9BAC ,0x6D2D //CJK UNIFIED IDEOGRAPH - ,0x9BAD ,0x6D2F //CJK UNIFIED IDEOGRAPH - ,0x9BAE ,0x6D30 //CJK UNIFIED IDEOGRAPH - ,0x9BAF ,0x6D34 //CJK UNIFIED IDEOGRAPH - ,0x9BB0 ,0x6D36 //CJK UNIFIED IDEOGRAPH - ,0x9BB1 ,0x6D37 //CJK UNIFIED IDEOGRAPH - ,0x9BB2 ,0x6D38 //CJK UNIFIED IDEOGRAPH - ,0x9BB3 ,0x6D3A //CJK UNIFIED IDEOGRAPH - ,0x9BB4 ,0x6D3F //CJK UNIFIED IDEOGRAPH - ,0x9BB5 ,0x6D40 //CJK UNIFIED IDEOGRAPH - ,0x9BB6 ,0x6D42 //CJK UNIFIED IDEOGRAPH - ,0x9BB7 ,0x6D44 //CJK UNIFIED IDEOGRAPH - ,0x9BB8 ,0x6D49 //CJK UNIFIED IDEOGRAPH - ,0x9BB9 ,0x6D4C //CJK UNIFIED IDEOGRAPH - ,0x9BBA ,0x6D50 //CJK UNIFIED IDEOGRAPH - ,0x9BBB ,0x6D55 //CJK UNIFIED IDEOGRAPH - ,0x9BBC ,0x6D56 //CJK UNIFIED IDEOGRAPH - ,0x9BBD ,0x6D57 //CJK UNIFIED IDEOGRAPH - ,0x9BBE ,0x6D58 //CJK UNIFIED IDEOGRAPH - ,0x9BBF ,0x6D5B //CJK UNIFIED IDEOGRAPH - ,0x9BC0 ,0x6D5D //CJK UNIFIED IDEOGRAPH - ,0x9BC1 ,0x6D5F //CJK UNIFIED IDEOGRAPH - ,0x9BC2 ,0x6D61 //CJK UNIFIED IDEOGRAPH - ,0x9BC3 ,0x6D62 //CJK UNIFIED IDEOGRAPH - ,0x9BC4 ,0x6D64 //CJK UNIFIED IDEOGRAPH - ,0x9BC5 ,0x6D65 //CJK UNIFIED IDEOGRAPH - ,0x9BC6 ,0x6D67 //CJK UNIFIED IDEOGRAPH - ,0x9BC7 ,0x6D68 //CJK UNIFIED IDEOGRAPH - ,0x9BC8 ,0x6D6B //CJK UNIFIED IDEOGRAPH - ,0x9BC9 ,0x6D6C //CJK UNIFIED IDEOGRAPH - ,0x9BCA ,0x6D6D //CJK UNIFIED IDEOGRAPH - ,0x9BCB ,0x6D70 //CJK UNIFIED IDEOGRAPH - ,0x9BCC ,0x6D71 //CJK UNIFIED IDEOGRAPH - ,0x9BCD ,0x6D72 //CJK UNIFIED IDEOGRAPH - ,0x9BCE ,0x6D73 //CJK UNIFIED IDEOGRAPH - ,0x9BCF ,0x6D75 //CJK UNIFIED IDEOGRAPH - ,0x9BD0 ,0x6D76 //CJK UNIFIED IDEOGRAPH - ,0x9BD1 ,0x6D79 //CJK UNIFIED IDEOGRAPH - ,0x9BD2 ,0x6D7A //CJK UNIFIED IDEOGRAPH - ,0x9BD3 ,0x6D7B //CJK UNIFIED IDEOGRAPH - ,0x9BD4 ,0x6D7D //CJK UNIFIED IDEOGRAPH - ,0x9BD5 ,0x6D7E //CJK UNIFIED IDEOGRAPH - ,0x9BD6 ,0x6D7F //CJK UNIFIED IDEOGRAPH - ,0x9BD7 ,0x6D80 //CJK UNIFIED IDEOGRAPH - ,0x9BD8 ,0x6D81 //CJK UNIFIED IDEOGRAPH - ,0x9BD9 ,0x6D83 //CJK UNIFIED IDEOGRAPH - ,0x9BDA ,0x6D84 //CJK UNIFIED IDEOGRAPH - ,0x9BDB ,0x6D86 //CJK UNIFIED IDEOGRAPH - ,0x9BDC ,0x6D87 //CJK UNIFIED IDEOGRAPH - ,0x9BDD ,0x6D8A //CJK UNIFIED IDEOGRAPH - ,0x9BDE ,0x6D8B //CJK UNIFIED IDEOGRAPH - ,0x9BDF ,0x6D8D //CJK UNIFIED IDEOGRAPH - ,0x9BE0 ,0x6D8F //CJK UNIFIED IDEOGRAPH - ,0x9BE1 ,0x6D90 //CJK UNIFIED IDEOGRAPH - ,0x9BE2 ,0x6D92 //CJK UNIFIED IDEOGRAPH - ,0x9BE3 ,0x6D96 //CJK UNIFIED IDEOGRAPH - ,0x9BE4 ,0x6D97 //CJK UNIFIED IDEOGRAPH - ,0x9BE5 ,0x6D98 //CJK UNIFIED IDEOGRAPH - ,0x9BE6 ,0x6D99 //CJK UNIFIED IDEOGRAPH - ,0x9BE7 ,0x6D9A //CJK UNIFIED IDEOGRAPH - ,0x9BE8 ,0x6D9C //CJK UNIFIED IDEOGRAPH - ,0x9BE9 ,0x6DA2 //CJK UNIFIED IDEOGRAPH - ,0x9BEA ,0x6DA5 //CJK UNIFIED IDEOGRAPH - ,0x9BEB ,0x6DAC //CJK UNIFIED IDEOGRAPH - ,0x9BEC ,0x6DAD //CJK UNIFIED IDEOGRAPH - ,0x9BED ,0x6DB0 //CJK UNIFIED IDEOGRAPH - ,0x9BEE ,0x6DB1 //CJK UNIFIED IDEOGRAPH - ,0x9BEF ,0x6DB3 //CJK UNIFIED IDEOGRAPH - ,0x9BF0 ,0x6DB4 //CJK UNIFIED IDEOGRAPH - ,0x9BF1 ,0x6DB6 //CJK UNIFIED IDEOGRAPH - ,0x9BF2 ,0x6DB7 //CJK UNIFIED IDEOGRAPH - ,0x9BF3 ,0x6DB9 //CJK UNIFIED IDEOGRAPH - ,0x9BF4 ,0x6DBA //CJK UNIFIED IDEOGRAPH - ,0x9BF5 ,0x6DBB //CJK UNIFIED IDEOGRAPH - ,0x9BF6 ,0x6DBC //CJK UNIFIED IDEOGRAPH - ,0x9BF7 ,0x6DBD //CJK UNIFIED IDEOGRAPH - ,0x9BF8 ,0x6DBE //CJK UNIFIED IDEOGRAPH - ,0x9BF9 ,0x6DC1 //CJK UNIFIED IDEOGRAPH - ,0x9BFA ,0x6DC2 //CJK UNIFIED IDEOGRAPH - ,0x9BFB ,0x6DC3 //CJK UNIFIED IDEOGRAPH - ,0x9BFC ,0x6DC8 //CJK UNIFIED IDEOGRAPH - ,0x9BFD ,0x6DC9 //CJK UNIFIED IDEOGRAPH - ,0x9BFE ,0x6DCA //CJK UNIFIED IDEOGRAPH - ,0x9C40 ,0x6DCD //CJK UNIFIED IDEOGRAPH - ,0x9C41 ,0x6DCE //CJK UNIFIED IDEOGRAPH - ,0x9C42 ,0x6DCF //CJK UNIFIED IDEOGRAPH - ,0x9C43 ,0x6DD0 //CJK UNIFIED IDEOGRAPH - ,0x9C44 ,0x6DD2 //CJK UNIFIED IDEOGRAPH - ,0x9C45 ,0x6DD3 //CJK UNIFIED IDEOGRAPH - ,0x9C46 ,0x6DD4 //CJK UNIFIED IDEOGRAPH - ,0x9C47 ,0x6DD5 //CJK UNIFIED IDEOGRAPH - ,0x9C48 ,0x6DD7 //CJK UNIFIED IDEOGRAPH - ,0x9C49 ,0x6DDA //CJK UNIFIED IDEOGRAPH - ,0x9C4A ,0x6DDB //CJK UNIFIED IDEOGRAPH - ,0x9C4B ,0x6DDC //CJK UNIFIED IDEOGRAPH - ,0x9C4C ,0x6DDF //CJK UNIFIED IDEOGRAPH - ,0x9C4D ,0x6DE2 //CJK UNIFIED IDEOGRAPH - ,0x9C4E ,0x6DE3 //CJK UNIFIED IDEOGRAPH - ,0x9C4F ,0x6DE5 //CJK UNIFIED IDEOGRAPH - ,0x9C50 ,0x6DE7 //CJK UNIFIED IDEOGRAPH - ,0x9C51 ,0x6DE8 //CJK UNIFIED IDEOGRAPH - ,0x9C52 ,0x6DE9 //CJK UNIFIED IDEOGRAPH - ,0x9C53 ,0x6DEA //CJK UNIFIED IDEOGRAPH - ,0x9C54 ,0x6DED //CJK UNIFIED IDEOGRAPH - ,0x9C55 ,0x6DEF //CJK UNIFIED IDEOGRAPH - ,0x9C56 ,0x6DF0 //CJK UNIFIED IDEOGRAPH - ,0x9C57 ,0x6DF2 //CJK UNIFIED IDEOGRAPH - ,0x9C58 ,0x6DF4 //CJK UNIFIED IDEOGRAPH - ,0x9C59 ,0x6DF5 //CJK UNIFIED IDEOGRAPH - ,0x9C5A ,0x6DF6 //CJK UNIFIED IDEOGRAPH - ,0x9C5B ,0x6DF8 //CJK UNIFIED IDEOGRAPH - ,0x9C5C ,0x6DFA //CJK UNIFIED IDEOGRAPH - ,0x9C5D ,0x6DFD //CJK UNIFIED IDEOGRAPH - ,0x9C5E ,0x6DFE //CJK UNIFIED IDEOGRAPH - ,0x9C5F ,0x6DFF //CJK UNIFIED IDEOGRAPH - ,0x9C60 ,0x6E00 //CJK UNIFIED IDEOGRAPH - ,0x9C61 ,0x6E01 //CJK UNIFIED IDEOGRAPH - ,0x9C62 ,0x6E02 //CJK UNIFIED IDEOGRAPH - ,0x9C63 ,0x6E03 //CJK UNIFIED IDEOGRAPH - ,0x9C64 ,0x6E04 //CJK UNIFIED IDEOGRAPH - ,0x9C65 ,0x6E06 //CJK UNIFIED IDEOGRAPH - ,0x9C66 ,0x6E07 //CJK UNIFIED IDEOGRAPH - ,0x9C67 ,0x6E08 //CJK UNIFIED IDEOGRAPH - ,0x9C68 ,0x6E09 //CJK UNIFIED IDEOGRAPH - ,0x9C69 ,0x6E0B //CJK UNIFIED IDEOGRAPH - ,0x9C6A ,0x6E0F //CJK UNIFIED IDEOGRAPH - ,0x9C6B ,0x6E12 //CJK UNIFIED IDEOGRAPH - ,0x9C6C ,0x6E13 //CJK UNIFIED IDEOGRAPH - ,0x9C6D ,0x6E15 //CJK UNIFIED IDEOGRAPH - ,0x9C6E ,0x6E18 //CJK UNIFIED IDEOGRAPH - ,0x9C6F ,0x6E19 //CJK UNIFIED IDEOGRAPH - ,0x9C70 ,0x6E1B //CJK UNIFIED IDEOGRAPH - ,0x9C71 ,0x6E1C //CJK UNIFIED IDEOGRAPH - ,0x9C72 ,0x6E1E //CJK UNIFIED IDEOGRAPH - ,0x9C73 ,0x6E1F //CJK UNIFIED IDEOGRAPH - ,0x9C74 ,0x6E22 //CJK UNIFIED IDEOGRAPH - ,0x9C75 ,0x6E26 //CJK UNIFIED IDEOGRAPH - ,0x9C76 ,0x6E27 //CJK UNIFIED IDEOGRAPH - ,0x9C77 ,0x6E28 //CJK UNIFIED IDEOGRAPH - ,0x9C78 ,0x6E2A //CJK UNIFIED IDEOGRAPH - ,0x9C79 ,0x6E2C //CJK UNIFIED IDEOGRAPH - ,0x9C7A ,0x6E2E //CJK UNIFIED IDEOGRAPH - ,0x9C7B ,0x6E30 //CJK UNIFIED IDEOGRAPH - ,0x9C7C ,0x6E31 //CJK UNIFIED IDEOGRAPH - ,0x9C7D ,0x6E33 //CJK UNIFIED IDEOGRAPH - ,0x9C7E ,0x6E35 //CJK UNIFIED IDEOGRAPH - ,0x9C80 ,0x6E36 //CJK UNIFIED IDEOGRAPH - ,0x9C81 ,0x6E37 //CJK UNIFIED IDEOGRAPH - ,0x9C82 ,0x6E39 //CJK UNIFIED IDEOGRAPH - ,0x9C83 ,0x6E3B //CJK UNIFIED IDEOGRAPH - ,0x9C84 ,0x6E3C //CJK UNIFIED IDEOGRAPH - ,0x9C85 ,0x6E3D //CJK UNIFIED IDEOGRAPH - ,0x9C86 ,0x6E3E //CJK UNIFIED IDEOGRAPH - ,0x9C87 ,0x6E3F //CJK UNIFIED IDEOGRAPH - ,0x9C88 ,0x6E40 //CJK UNIFIED IDEOGRAPH - ,0x9C89 ,0x6E41 //CJK UNIFIED IDEOGRAPH - ,0x9C8A ,0x6E42 //CJK UNIFIED IDEOGRAPH - ,0x9C8B ,0x6E45 //CJK UNIFIED IDEOGRAPH - ,0x9C8C ,0x6E46 //CJK UNIFIED IDEOGRAPH - ,0x9C8D ,0x6E47 //CJK UNIFIED IDEOGRAPH - ,0x9C8E ,0x6E48 //CJK UNIFIED IDEOGRAPH - ,0x9C8F ,0x6E49 //CJK UNIFIED IDEOGRAPH - ,0x9C90 ,0x6E4A //CJK UNIFIED IDEOGRAPH - ,0x9C91 ,0x6E4B //CJK UNIFIED IDEOGRAPH - ,0x9C92 ,0x6E4C //CJK UNIFIED IDEOGRAPH - ,0x9C93 ,0x6E4F //CJK UNIFIED IDEOGRAPH - ,0x9C94 ,0x6E50 //CJK UNIFIED IDEOGRAPH - ,0x9C95 ,0x6E51 //CJK UNIFIED IDEOGRAPH - ,0x9C96 ,0x6E52 //CJK UNIFIED IDEOGRAPH - ,0x9C97 ,0x6E55 //CJK UNIFIED IDEOGRAPH - ,0x9C98 ,0x6E57 //CJK UNIFIED IDEOGRAPH - ,0x9C99 ,0x6E59 //CJK UNIFIED IDEOGRAPH - ,0x9C9A ,0x6E5A //CJK UNIFIED IDEOGRAPH - ,0x9C9B ,0x6E5C //CJK UNIFIED IDEOGRAPH - ,0x9C9C ,0x6E5D //CJK UNIFIED IDEOGRAPH - ,0x9C9D ,0x6E5E //CJK UNIFIED IDEOGRAPH - ,0x9C9E ,0x6E60 //CJK UNIFIED IDEOGRAPH - ,0x9C9F ,0x6E61 //CJK UNIFIED IDEOGRAPH - ,0x9CA0 ,0x6E62 //CJK UNIFIED IDEOGRAPH - ,0x9CA1 ,0x6E63 //CJK UNIFIED IDEOGRAPH - ,0x9CA2 ,0x6E64 //CJK UNIFIED IDEOGRAPH - ,0x9CA3 ,0x6E65 //CJK UNIFIED IDEOGRAPH - ,0x9CA4 ,0x6E66 //CJK UNIFIED IDEOGRAPH - ,0x9CA5 ,0x6E67 //CJK UNIFIED IDEOGRAPH - ,0x9CA6 ,0x6E68 //CJK UNIFIED IDEOGRAPH - ,0x9CA7 ,0x6E69 //CJK UNIFIED IDEOGRAPH - ,0x9CA8 ,0x6E6A //CJK UNIFIED IDEOGRAPH - ,0x9CA9 ,0x6E6C //CJK UNIFIED IDEOGRAPH - ,0x9CAA ,0x6E6D //CJK UNIFIED IDEOGRAPH - ,0x9CAB ,0x6E6F //CJK UNIFIED IDEOGRAPH - ,0x9CAC ,0x6E70 //CJK UNIFIED IDEOGRAPH - ,0x9CAD ,0x6E71 //CJK UNIFIED IDEOGRAPH - ,0x9CAE ,0x6E72 //CJK UNIFIED IDEOGRAPH - ,0x9CAF ,0x6E73 //CJK UNIFIED IDEOGRAPH - ,0x9CB0 ,0x6E74 //CJK UNIFIED IDEOGRAPH - ,0x9CB1 ,0x6E75 //CJK UNIFIED IDEOGRAPH - ,0x9CB2 ,0x6E76 //CJK UNIFIED IDEOGRAPH - ,0x9CB3 ,0x6E77 //CJK UNIFIED IDEOGRAPH - ,0x9CB4 ,0x6E78 //CJK UNIFIED IDEOGRAPH - ,0x9CB5 ,0x6E79 //CJK UNIFIED IDEOGRAPH - ,0x9CB6 ,0x6E7A //CJK UNIFIED IDEOGRAPH - ,0x9CB7 ,0x6E7B //CJK UNIFIED IDEOGRAPH - ,0x9CB8 ,0x6E7C //CJK UNIFIED IDEOGRAPH - ,0x9CB9 ,0x6E7D //CJK UNIFIED IDEOGRAPH - ,0x9CBA ,0x6E80 //CJK UNIFIED IDEOGRAPH - ,0x9CBB ,0x6E81 //CJK UNIFIED IDEOGRAPH - ,0x9CBC ,0x6E82 //CJK UNIFIED IDEOGRAPH - ,0x9CBD ,0x6E84 //CJK UNIFIED IDEOGRAPH - ,0x9CBE ,0x6E87 //CJK UNIFIED IDEOGRAPH - ,0x9CBF ,0x6E88 //CJK UNIFIED IDEOGRAPH - ,0x9CC0 ,0x6E8A //CJK UNIFIED IDEOGRAPH - ,0x9CC1 ,0x6E8B //CJK UNIFIED IDEOGRAPH - ,0x9CC2 ,0x6E8C //CJK UNIFIED IDEOGRAPH - ,0x9CC3 ,0x6E8D //CJK UNIFIED IDEOGRAPH - ,0x9CC4 ,0x6E8E //CJK UNIFIED IDEOGRAPH - ,0x9CC5 ,0x6E91 //CJK UNIFIED IDEOGRAPH - ,0x9CC6 ,0x6E92 //CJK UNIFIED IDEOGRAPH - ,0x9CC7 ,0x6E93 //CJK UNIFIED IDEOGRAPH - ,0x9CC8 ,0x6E94 //CJK UNIFIED IDEOGRAPH - ,0x9CC9 ,0x6E95 //CJK UNIFIED IDEOGRAPH - ,0x9CCA ,0x6E96 //CJK UNIFIED IDEOGRAPH - ,0x9CCB ,0x6E97 //CJK UNIFIED IDEOGRAPH - ,0x9CCC ,0x6E99 //CJK UNIFIED IDEOGRAPH - ,0x9CCD ,0x6E9A //CJK UNIFIED IDEOGRAPH - ,0x9CCE ,0x6E9B //CJK UNIFIED IDEOGRAPH - ,0x9CCF ,0x6E9D //CJK UNIFIED IDEOGRAPH - ,0x9CD0 ,0x6E9E //CJK UNIFIED IDEOGRAPH - ,0x9CD1 ,0x6EA0 //CJK UNIFIED IDEOGRAPH - ,0x9CD2 ,0x6EA1 //CJK UNIFIED IDEOGRAPH - ,0x9CD3 ,0x6EA3 //CJK UNIFIED IDEOGRAPH - ,0x9CD4 ,0x6EA4 //CJK UNIFIED IDEOGRAPH - ,0x9CD5 ,0x6EA6 //CJK UNIFIED IDEOGRAPH - ,0x9CD6 ,0x6EA8 //CJK UNIFIED IDEOGRAPH - ,0x9CD7 ,0x6EA9 //CJK UNIFIED IDEOGRAPH - ,0x9CD8 ,0x6EAB //CJK UNIFIED IDEOGRAPH - ,0x9CD9 ,0x6EAC //CJK UNIFIED IDEOGRAPH - ,0x9CDA ,0x6EAD //CJK UNIFIED IDEOGRAPH - ,0x9CDB ,0x6EAE //CJK UNIFIED IDEOGRAPH - ,0x9CDC ,0x6EB0 //CJK UNIFIED IDEOGRAPH - ,0x9CDD ,0x6EB3 //CJK UNIFIED IDEOGRAPH - ,0x9CDE ,0x6EB5 //CJK UNIFIED IDEOGRAPH - ,0x9CDF ,0x6EB8 //CJK UNIFIED IDEOGRAPH - ,0x9CE0 ,0x6EB9 //CJK UNIFIED IDEOGRAPH - ,0x9CE1 ,0x6EBC //CJK UNIFIED IDEOGRAPH - ,0x9CE2 ,0x6EBE //CJK UNIFIED IDEOGRAPH - ,0x9CE3 ,0x6EBF //CJK UNIFIED IDEOGRAPH - ,0x9CE4 ,0x6EC0 //CJK UNIFIED IDEOGRAPH - ,0x9CE5 ,0x6EC3 //CJK UNIFIED IDEOGRAPH - ,0x9CE6 ,0x6EC4 //CJK UNIFIED IDEOGRAPH - ,0x9CE7 ,0x6EC5 //CJK UNIFIED IDEOGRAPH - ,0x9CE8 ,0x6EC6 //CJK UNIFIED IDEOGRAPH - ,0x9CE9 ,0x6EC8 //CJK UNIFIED IDEOGRAPH - ,0x9CEA ,0x6EC9 //CJK UNIFIED IDEOGRAPH - ,0x9CEB ,0x6ECA //CJK UNIFIED IDEOGRAPH - ,0x9CEC ,0x6ECC //CJK UNIFIED IDEOGRAPH - ,0x9CED ,0x6ECD //CJK UNIFIED IDEOGRAPH - ,0x9CEE ,0x6ECE //CJK UNIFIED IDEOGRAPH - ,0x9CEF ,0x6ED0 //CJK UNIFIED IDEOGRAPH - ,0x9CF0 ,0x6ED2 //CJK UNIFIED IDEOGRAPH - ,0x9CF1 ,0x6ED6 //CJK UNIFIED IDEOGRAPH - ,0x9CF2 ,0x6ED8 //CJK UNIFIED IDEOGRAPH - ,0x9CF3 ,0x6ED9 //CJK UNIFIED IDEOGRAPH - ,0x9CF4 ,0x6EDB //CJK UNIFIED IDEOGRAPH - ,0x9CF5 ,0x6EDC //CJK UNIFIED IDEOGRAPH - ,0x9CF6 ,0x6EDD //CJK UNIFIED IDEOGRAPH - ,0x9CF7 ,0x6EE3 //CJK UNIFIED IDEOGRAPH - ,0x9CF8 ,0x6EE7 //CJK UNIFIED IDEOGRAPH - ,0x9CF9 ,0x6EEA //CJK UNIFIED IDEOGRAPH - ,0x9CFA ,0x6EEB //CJK UNIFIED IDEOGRAPH - ,0x9CFB ,0x6EEC //CJK UNIFIED IDEOGRAPH - ,0x9CFC ,0x6EED //CJK UNIFIED IDEOGRAPH - ,0x9CFD ,0x6EEE //CJK UNIFIED IDEOGRAPH - ,0x9CFE ,0x6EEF //CJK UNIFIED IDEOGRAPH - ,0x9D40 ,0x6EF0 //CJK UNIFIED IDEOGRAPH - ,0x9D41 ,0x6EF1 //CJK UNIFIED IDEOGRAPH - ,0x9D42 ,0x6EF2 //CJK UNIFIED IDEOGRAPH - ,0x9D43 ,0x6EF3 //CJK UNIFIED IDEOGRAPH - ,0x9D44 ,0x6EF5 //CJK UNIFIED IDEOGRAPH - ,0x9D45 ,0x6EF6 //CJK UNIFIED IDEOGRAPH - ,0x9D46 ,0x6EF7 //CJK UNIFIED IDEOGRAPH - ,0x9D47 ,0x6EF8 //CJK UNIFIED IDEOGRAPH - ,0x9D48 ,0x6EFA //CJK UNIFIED IDEOGRAPH - ,0x9D49 ,0x6EFB //CJK UNIFIED IDEOGRAPH - ,0x9D4A ,0x6EFC //CJK UNIFIED IDEOGRAPH - ,0x9D4B ,0x6EFD //CJK UNIFIED IDEOGRAPH - ,0x9D4C ,0x6EFE //CJK UNIFIED IDEOGRAPH - ,0x9D4D ,0x6EFF //CJK UNIFIED IDEOGRAPH - ,0x9D4E ,0x6F00 //CJK UNIFIED IDEOGRAPH - ,0x9D4F ,0x6F01 //CJK UNIFIED IDEOGRAPH - ,0x9D50 ,0x6F03 //CJK UNIFIED IDEOGRAPH - ,0x9D51 ,0x6F04 //CJK UNIFIED IDEOGRAPH - ,0x9D52 ,0x6F05 //CJK UNIFIED IDEOGRAPH - ,0x9D53 ,0x6F07 //CJK UNIFIED IDEOGRAPH - ,0x9D54 ,0x6F08 //CJK UNIFIED IDEOGRAPH - ,0x9D55 ,0x6F0A //CJK UNIFIED IDEOGRAPH - ,0x9D56 ,0x6F0B //CJK UNIFIED IDEOGRAPH - ,0x9D57 ,0x6F0C //CJK UNIFIED IDEOGRAPH - ,0x9D58 ,0x6F0D //CJK UNIFIED IDEOGRAPH - ,0x9D59 ,0x6F0E //CJK UNIFIED IDEOGRAPH - ,0x9D5A ,0x6F10 //CJK UNIFIED IDEOGRAPH - ,0x9D5B ,0x6F11 //CJK UNIFIED IDEOGRAPH - ,0x9D5C ,0x6F12 //CJK UNIFIED IDEOGRAPH - ,0x9D5D ,0x6F16 //CJK UNIFIED IDEOGRAPH - ,0x9D5E ,0x6F17 //CJK UNIFIED IDEOGRAPH - ,0x9D5F ,0x6F18 //CJK UNIFIED IDEOGRAPH - ,0x9D60 ,0x6F19 //CJK UNIFIED IDEOGRAPH - ,0x9D61 ,0x6F1A //CJK UNIFIED IDEOGRAPH - ,0x9D62 ,0x6F1B //CJK UNIFIED IDEOGRAPH - ,0x9D63 ,0x6F1C //CJK UNIFIED IDEOGRAPH - ,0x9D64 ,0x6F1D //CJK UNIFIED IDEOGRAPH - ,0x9D65 ,0x6F1E //CJK UNIFIED IDEOGRAPH - ,0x9D66 ,0x6F1F //CJK UNIFIED IDEOGRAPH - ,0x9D67 ,0x6F21 //CJK UNIFIED IDEOGRAPH - ,0x9D68 ,0x6F22 //CJK UNIFIED IDEOGRAPH - ,0x9D69 ,0x6F23 //CJK UNIFIED IDEOGRAPH - ,0x9D6A ,0x6F25 //CJK UNIFIED IDEOGRAPH - ,0x9D6B ,0x6F26 //CJK UNIFIED IDEOGRAPH - ,0x9D6C ,0x6F27 //CJK UNIFIED IDEOGRAPH - ,0x9D6D ,0x6F28 //CJK UNIFIED IDEOGRAPH - ,0x9D6E ,0x6F2C //CJK UNIFIED IDEOGRAPH - ,0x9D6F ,0x6F2E //CJK UNIFIED IDEOGRAPH - ,0x9D70 ,0x6F30 //CJK UNIFIED IDEOGRAPH - ,0x9D71 ,0x6F32 //CJK UNIFIED IDEOGRAPH - ,0x9D72 ,0x6F34 //CJK UNIFIED IDEOGRAPH - ,0x9D73 ,0x6F35 //CJK UNIFIED IDEOGRAPH - ,0x9D74 ,0x6F37 //CJK UNIFIED IDEOGRAPH - ,0x9D75 ,0x6F38 //CJK UNIFIED IDEOGRAPH - ,0x9D76 ,0x6F39 //CJK UNIFIED IDEOGRAPH - ,0x9D77 ,0x6F3A //CJK UNIFIED IDEOGRAPH - ,0x9D78 ,0x6F3B //CJK UNIFIED IDEOGRAPH - ,0x9D79 ,0x6F3C //CJK UNIFIED IDEOGRAPH - ,0x9D7A ,0x6F3D //CJK UNIFIED IDEOGRAPH - ,0x9D7B ,0x6F3F //CJK UNIFIED IDEOGRAPH - ,0x9D7C ,0x6F40 //CJK UNIFIED IDEOGRAPH - ,0x9D7D ,0x6F41 //CJK UNIFIED IDEOGRAPH - ,0x9D7E ,0x6F42 //CJK UNIFIED IDEOGRAPH - ,0x9D80 ,0x6F43 //CJK UNIFIED IDEOGRAPH - ,0x9D81 ,0x6F44 //CJK UNIFIED IDEOGRAPH - ,0x9D82 ,0x6F45 //CJK UNIFIED IDEOGRAPH - ,0x9D83 ,0x6F48 //CJK UNIFIED IDEOGRAPH - ,0x9D84 ,0x6F49 //CJK UNIFIED IDEOGRAPH - ,0x9D85 ,0x6F4A //CJK UNIFIED IDEOGRAPH - ,0x9D86 ,0x6F4C //CJK UNIFIED IDEOGRAPH - ,0x9D87 ,0x6F4E //CJK UNIFIED IDEOGRAPH - ,0x9D88 ,0x6F4F //CJK UNIFIED IDEOGRAPH - ,0x9D89 ,0x6F50 //CJK UNIFIED IDEOGRAPH - ,0x9D8A ,0x6F51 //CJK UNIFIED IDEOGRAPH - ,0x9D8B ,0x6F52 //CJK UNIFIED IDEOGRAPH - ,0x9D8C ,0x6F53 //CJK UNIFIED IDEOGRAPH - ,0x9D8D ,0x6F54 //CJK UNIFIED IDEOGRAPH - ,0x9D8E ,0x6F55 //CJK UNIFIED IDEOGRAPH - ,0x9D8F ,0x6F56 //CJK UNIFIED IDEOGRAPH - ,0x9D90 ,0x6F57 //CJK UNIFIED IDEOGRAPH - ,0x9D91 ,0x6F59 //CJK UNIFIED IDEOGRAPH - ,0x9D92 ,0x6F5A //CJK UNIFIED IDEOGRAPH - ,0x9D93 ,0x6F5B //CJK UNIFIED IDEOGRAPH - ,0x9D94 ,0x6F5D //CJK UNIFIED IDEOGRAPH - ,0x9D95 ,0x6F5F //CJK UNIFIED IDEOGRAPH - ,0x9D96 ,0x6F60 //CJK UNIFIED IDEOGRAPH - ,0x9D97 ,0x6F61 //CJK UNIFIED IDEOGRAPH - ,0x9D98 ,0x6F63 //CJK UNIFIED IDEOGRAPH - ,0x9D99 ,0x6F64 //CJK UNIFIED IDEOGRAPH - ,0x9D9A ,0x6F65 //CJK UNIFIED IDEOGRAPH - ,0x9D9B ,0x6F67 //CJK UNIFIED IDEOGRAPH - ,0x9D9C ,0x6F68 //CJK UNIFIED IDEOGRAPH - ,0x9D9D ,0x6F69 //CJK UNIFIED IDEOGRAPH - ,0x9D9E ,0x6F6A //CJK UNIFIED IDEOGRAPH - ,0x9D9F ,0x6F6B //CJK UNIFIED IDEOGRAPH - ,0x9DA0 ,0x6F6C //CJK UNIFIED IDEOGRAPH - ,0x9DA1 ,0x6F6F //CJK UNIFIED IDEOGRAPH - ,0x9DA2 ,0x6F70 //CJK UNIFIED IDEOGRAPH - ,0x9DA3 ,0x6F71 //CJK UNIFIED IDEOGRAPH - ,0x9DA4 ,0x6F73 //CJK UNIFIED IDEOGRAPH - ,0x9DA5 ,0x6F75 //CJK UNIFIED IDEOGRAPH - ,0x9DA6 ,0x6F76 //CJK UNIFIED IDEOGRAPH - ,0x9DA7 ,0x6F77 //CJK UNIFIED IDEOGRAPH - ,0x9DA8 ,0x6F79 //CJK UNIFIED IDEOGRAPH - ,0x9DA9 ,0x6F7B //CJK UNIFIED IDEOGRAPH - ,0x9DAA ,0x6F7D //CJK UNIFIED IDEOGRAPH - ,0x9DAB ,0x6F7E //CJK UNIFIED IDEOGRAPH - ,0x9DAC ,0x6F7F //CJK UNIFIED IDEOGRAPH - ,0x9DAD ,0x6F80 //CJK UNIFIED IDEOGRAPH - ,0x9DAE ,0x6F81 //CJK UNIFIED IDEOGRAPH - ,0x9DAF ,0x6F82 //CJK UNIFIED IDEOGRAPH - ,0x9DB0 ,0x6F83 //CJK UNIFIED IDEOGRAPH - ,0x9DB1 ,0x6F85 //CJK UNIFIED IDEOGRAPH - ,0x9DB2 ,0x6F86 //CJK UNIFIED IDEOGRAPH - ,0x9DB3 ,0x6F87 //CJK UNIFIED IDEOGRAPH - ,0x9DB4 ,0x6F8A //CJK UNIFIED IDEOGRAPH - ,0x9DB5 ,0x6F8B //CJK UNIFIED IDEOGRAPH - ,0x9DB6 ,0x6F8F //CJK UNIFIED IDEOGRAPH - ,0x9DB7 ,0x6F90 //CJK UNIFIED IDEOGRAPH - ,0x9DB8 ,0x6F91 //CJK UNIFIED IDEOGRAPH - ,0x9DB9 ,0x6F92 //CJK UNIFIED IDEOGRAPH - ,0x9DBA ,0x6F93 //CJK UNIFIED IDEOGRAPH - ,0x9DBB ,0x6F94 //CJK UNIFIED IDEOGRAPH - ,0x9DBC ,0x6F95 //CJK UNIFIED IDEOGRAPH - ,0x9DBD ,0x6F96 //CJK UNIFIED IDEOGRAPH - ,0x9DBE ,0x6F97 //CJK UNIFIED IDEOGRAPH - ,0x9DBF ,0x6F98 //CJK UNIFIED IDEOGRAPH - ,0x9DC0 ,0x6F99 //CJK UNIFIED IDEOGRAPH - ,0x9DC1 ,0x6F9A //CJK UNIFIED IDEOGRAPH - ,0x9DC2 ,0x6F9B //CJK UNIFIED IDEOGRAPH - ,0x9DC3 ,0x6F9D //CJK UNIFIED IDEOGRAPH - ,0x9DC4 ,0x6F9E //CJK UNIFIED IDEOGRAPH - ,0x9DC5 ,0x6F9F //CJK UNIFIED IDEOGRAPH - ,0x9DC6 ,0x6FA0 //CJK UNIFIED IDEOGRAPH - ,0x9DC7 ,0x6FA2 //CJK UNIFIED IDEOGRAPH - ,0x9DC8 ,0x6FA3 //CJK UNIFIED IDEOGRAPH - ,0x9DC9 ,0x6FA4 //CJK UNIFIED IDEOGRAPH - ,0x9DCA ,0x6FA5 //CJK UNIFIED IDEOGRAPH - ,0x9DCB ,0x6FA6 //CJK UNIFIED IDEOGRAPH - ,0x9DCC ,0x6FA8 //CJK UNIFIED IDEOGRAPH - ,0x9DCD ,0x6FA9 //CJK UNIFIED IDEOGRAPH - ,0x9DCE ,0x6FAA //CJK UNIFIED IDEOGRAPH - ,0x9DCF ,0x6FAB //CJK UNIFIED IDEOGRAPH - ,0x9DD0 ,0x6FAC //CJK UNIFIED IDEOGRAPH - ,0x9DD1 ,0x6FAD //CJK UNIFIED IDEOGRAPH - ,0x9DD2 ,0x6FAE //CJK UNIFIED IDEOGRAPH - ,0x9DD3 ,0x6FAF //CJK UNIFIED IDEOGRAPH - ,0x9DD4 ,0x6FB0 //CJK UNIFIED IDEOGRAPH - ,0x9DD5 ,0x6FB1 //CJK UNIFIED IDEOGRAPH - ,0x9DD6 ,0x6FB2 //CJK UNIFIED IDEOGRAPH - ,0x9DD7 ,0x6FB4 //CJK UNIFIED IDEOGRAPH - ,0x9DD8 ,0x6FB5 //CJK UNIFIED IDEOGRAPH - ,0x9DD9 ,0x6FB7 //CJK UNIFIED IDEOGRAPH - ,0x9DDA ,0x6FB8 //CJK UNIFIED IDEOGRAPH - ,0x9DDB ,0x6FBA //CJK UNIFIED IDEOGRAPH - ,0x9DDC ,0x6FBB //CJK UNIFIED IDEOGRAPH - ,0x9DDD ,0x6FBC //CJK UNIFIED IDEOGRAPH - ,0x9DDE ,0x6FBD //CJK UNIFIED IDEOGRAPH - ,0x9DDF ,0x6FBE //CJK UNIFIED IDEOGRAPH - ,0x9DE0 ,0x6FBF //CJK UNIFIED IDEOGRAPH - ,0x9DE1 ,0x6FC1 //CJK UNIFIED IDEOGRAPH - ,0x9DE2 ,0x6FC3 //CJK UNIFIED IDEOGRAPH - ,0x9DE3 ,0x6FC4 //CJK UNIFIED IDEOGRAPH - ,0x9DE4 ,0x6FC5 //CJK UNIFIED IDEOGRAPH - ,0x9DE5 ,0x6FC6 //CJK UNIFIED IDEOGRAPH - ,0x9DE6 ,0x6FC7 //CJK UNIFIED IDEOGRAPH - ,0x9DE7 ,0x6FC8 //CJK UNIFIED IDEOGRAPH - ,0x9DE8 ,0x6FCA //CJK UNIFIED IDEOGRAPH - ,0x9DE9 ,0x6FCB //CJK UNIFIED IDEOGRAPH - ,0x9DEA ,0x6FCC //CJK UNIFIED IDEOGRAPH - ,0x9DEB ,0x6FCD //CJK UNIFIED IDEOGRAPH - ,0x9DEC ,0x6FCE //CJK UNIFIED IDEOGRAPH - ,0x9DED ,0x6FCF //CJK UNIFIED IDEOGRAPH - ,0x9DEE ,0x6FD0 //CJK UNIFIED IDEOGRAPH - ,0x9DEF ,0x6FD3 //CJK UNIFIED IDEOGRAPH - ,0x9DF0 ,0x6FD4 //CJK UNIFIED IDEOGRAPH - ,0x9DF1 ,0x6FD5 //CJK UNIFIED IDEOGRAPH - ,0x9DF2 ,0x6FD6 //CJK UNIFIED IDEOGRAPH - ,0x9DF3 ,0x6FD7 //CJK UNIFIED IDEOGRAPH - ,0x9DF4 ,0x6FD8 //CJK UNIFIED IDEOGRAPH - ,0x9DF5 ,0x6FD9 //CJK UNIFIED IDEOGRAPH - ,0x9DF6 ,0x6FDA //CJK UNIFIED IDEOGRAPH - ,0x9DF7 ,0x6FDB //CJK UNIFIED IDEOGRAPH - ,0x9DF8 ,0x6FDC //CJK UNIFIED IDEOGRAPH - ,0x9DF9 ,0x6FDD //CJK UNIFIED IDEOGRAPH - ,0x9DFA ,0x6FDF //CJK UNIFIED IDEOGRAPH - ,0x9DFB ,0x6FE2 //CJK UNIFIED IDEOGRAPH - ,0x9DFC ,0x6FE3 //CJK UNIFIED IDEOGRAPH - ,0x9DFD ,0x6FE4 //CJK UNIFIED IDEOGRAPH - ,0x9DFE ,0x6FE5 //CJK UNIFIED IDEOGRAPH - ,0x9E40 ,0x6FE6 //CJK UNIFIED IDEOGRAPH - ,0x9E41 ,0x6FE7 //CJK UNIFIED IDEOGRAPH - ,0x9E42 ,0x6FE8 //CJK UNIFIED IDEOGRAPH - ,0x9E43 ,0x6FE9 //CJK UNIFIED IDEOGRAPH - ,0x9E44 ,0x6FEA //CJK UNIFIED IDEOGRAPH - ,0x9E45 ,0x6FEB //CJK UNIFIED IDEOGRAPH - ,0x9E46 ,0x6FEC //CJK UNIFIED IDEOGRAPH - ,0x9E47 ,0x6FED //CJK UNIFIED IDEOGRAPH - ,0x9E48 ,0x6FF0 //CJK UNIFIED IDEOGRAPH - ,0x9E49 ,0x6FF1 //CJK UNIFIED IDEOGRAPH - ,0x9E4A ,0x6FF2 //CJK UNIFIED IDEOGRAPH - ,0x9E4B ,0x6FF3 //CJK UNIFIED IDEOGRAPH - ,0x9E4C ,0x6FF4 //CJK UNIFIED IDEOGRAPH - ,0x9E4D ,0x6FF5 //CJK UNIFIED IDEOGRAPH - ,0x9E4E ,0x6FF6 //CJK UNIFIED IDEOGRAPH - ,0x9E4F ,0x6FF7 //CJK UNIFIED IDEOGRAPH - ,0x9E50 ,0x6FF8 //CJK UNIFIED IDEOGRAPH - ,0x9E51 ,0x6FF9 //CJK UNIFIED IDEOGRAPH - ,0x9E52 ,0x6FFA //CJK UNIFIED IDEOGRAPH - ,0x9E53 ,0x6FFB //CJK UNIFIED IDEOGRAPH - ,0x9E54 ,0x6FFC //CJK UNIFIED IDEOGRAPH - ,0x9E55 ,0x6FFD //CJK UNIFIED IDEOGRAPH - ,0x9E56 ,0x6FFE //CJK UNIFIED IDEOGRAPH - ,0x9E57 ,0x6FFF //CJK UNIFIED IDEOGRAPH - ,0x9E58 ,0x7000 //CJK UNIFIED IDEOGRAPH - ,0x9E59 ,0x7001 //CJK UNIFIED IDEOGRAPH - ,0x9E5A ,0x7002 //CJK UNIFIED IDEOGRAPH - ,0x9E5B ,0x7003 //CJK UNIFIED IDEOGRAPH - ,0x9E5C ,0x7004 //CJK UNIFIED IDEOGRAPH - ,0x9E5D ,0x7005 //CJK UNIFIED IDEOGRAPH - ,0x9E5E ,0x7006 //CJK UNIFIED IDEOGRAPH - ,0x9E5F ,0x7007 //CJK UNIFIED IDEOGRAPH - ,0x9E60 ,0x7008 //CJK UNIFIED IDEOGRAPH - ,0x9E61 ,0x7009 //CJK UNIFIED IDEOGRAPH - ,0x9E62 ,0x700A //CJK UNIFIED IDEOGRAPH - ,0x9E63 ,0x700B //CJK UNIFIED IDEOGRAPH - ,0x9E64 ,0x700C //CJK UNIFIED IDEOGRAPH - ,0x9E65 ,0x700D //CJK UNIFIED IDEOGRAPH - ,0x9E66 ,0x700E //CJK UNIFIED IDEOGRAPH - ,0x9E67 ,0x700F //CJK UNIFIED IDEOGRAPH - ,0x9E68 ,0x7010 //CJK UNIFIED IDEOGRAPH - ,0x9E69 ,0x7012 //CJK UNIFIED IDEOGRAPH - ,0x9E6A ,0x7013 //CJK UNIFIED IDEOGRAPH - ,0x9E6B ,0x7014 //CJK UNIFIED IDEOGRAPH - ,0x9E6C ,0x7015 //CJK UNIFIED IDEOGRAPH - ,0x9E6D ,0x7016 //CJK UNIFIED IDEOGRAPH - ,0x9E6E ,0x7017 //CJK UNIFIED IDEOGRAPH - ,0x9E6F ,0x7018 //CJK UNIFIED IDEOGRAPH - ,0x9E70 ,0x7019 //CJK UNIFIED IDEOGRAPH - ,0x9E71 ,0x701C //CJK UNIFIED IDEOGRAPH - ,0x9E72 ,0x701D //CJK UNIFIED IDEOGRAPH - ,0x9E73 ,0x701E //CJK UNIFIED IDEOGRAPH - ,0x9E74 ,0x701F //CJK UNIFIED IDEOGRAPH - ,0x9E75 ,0x7020 //CJK UNIFIED IDEOGRAPH - ,0x9E76 ,0x7021 //CJK UNIFIED IDEOGRAPH - ,0x9E77 ,0x7022 //CJK UNIFIED IDEOGRAPH - ,0x9E78 ,0x7024 //CJK UNIFIED IDEOGRAPH - ,0x9E79 ,0x7025 //CJK UNIFIED IDEOGRAPH - ,0x9E7A ,0x7026 //CJK UNIFIED IDEOGRAPH - ,0x9E7B ,0x7027 //CJK UNIFIED IDEOGRAPH - ,0x9E7C ,0x7028 //CJK UNIFIED IDEOGRAPH - ,0x9E7D ,0x7029 //CJK UNIFIED IDEOGRAPH - ,0x9E7E ,0x702A //CJK UNIFIED IDEOGRAPH - ,0x9E80 ,0x702B //CJK UNIFIED IDEOGRAPH - ,0x9E81 ,0x702C //CJK UNIFIED IDEOGRAPH - ,0x9E82 ,0x702D //CJK UNIFIED IDEOGRAPH - ,0x9E83 ,0x702E //CJK UNIFIED IDEOGRAPH - ,0x9E84 ,0x702F //CJK UNIFIED IDEOGRAPH - ,0x9E85 ,0x7030 //CJK UNIFIED IDEOGRAPH - ,0x9E86 ,0x7031 //CJK UNIFIED IDEOGRAPH - ,0x9E87 ,0x7032 //CJK UNIFIED IDEOGRAPH - ,0x9E88 ,0x7033 //CJK UNIFIED IDEOGRAPH - ,0x9E89 ,0x7034 //CJK UNIFIED IDEOGRAPH - ,0x9E8A ,0x7036 //CJK UNIFIED IDEOGRAPH - ,0x9E8B ,0x7037 //CJK UNIFIED IDEOGRAPH - ,0x9E8C ,0x7038 //CJK UNIFIED IDEOGRAPH - ,0x9E8D ,0x703A //CJK UNIFIED IDEOGRAPH - ,0x9E8E ,0x703B //CJK UNIFIED IDEOGRAPH - ,0x9E8F ,0x703C //CJK UNIFIED IDEOGRAPH - ,0x9E90 ,0x703D //CJK UNIFIED IDEOGRAPH - ,0x9E91 ,0x703E //CJK UNIFIED IDEOGRAPH - ,0x9E92 ,0x703F //CJK UNIFIED IDEOGRAPH - ,0x9E93 ,0x7040 //CJK UNIFIED IDEOGRAPH - ,0x9E94 ,0x7041 //CJK UNIFIED IDEOGRAPH - ,0x9E95 ,0x7042 //CJK UNIFIED IDEOGRAPH - ,0x9E96 ,0x7043 //CJK UNIFIED IDEOGRAPH - ,0x9E97 ,0x7044 //CJK UNIFIED IDEOGRAPH - ,0x9E98 ,0x7045 //CJK UNIFIED IDEOGRAPH - ,0x9E99 ,0x7046 //CJK UNIFIED IDEOGRAPH - ,0x9E9A ,0x7047 //CJK UNIFIED IDEOGRAPH - ,0x9E9B ,0x7048 //CJK UNIFIED IDEOGRAPH - ,0x9E9C ,0x7049 //CJK UNIFIED IDEOGRAPH - ,0x9E9D ,0x704A //CJK UNIFIED IDEOGRAPH - ,0x9E9E ,0x704B //CJK UNIFIED IDEOGRAPH - ,0x9E9F ,0x704D //CJK UNIFIED IDEOGRAPH - ,0x9EA0 ,0x704E //CJK UNIFIED IDEOGRAPH - ,0x9EA1 ,0x7050 //CJK UNIFIED IDEOGRAPH - ,0x9EA2 ,0x7051 //CJK UNIFIED IDEOGRAPH - ,0x9EA3 ,0x7052 //CJK UNIFIED IDEOGRAPH - ,0x9EA4 ,0x7053 //CJK UNIFIED IDEOGRAPH - ,0x9EA5 ,0x7054 //CJK UNIFIED IDEOGRAPH - ,0x9EA6 ,0x7055 //CJK UNIFIED IDEOGRAPH - ,0x9EA7 ,0x7056 //CJK UNIFIED IDEOGRAPH - ,0x9EA8 ,0x7057 //CJK UNIFIED IDEOGRAPH - ,0x9EA9 ,0x7058 //CJK UNIFIED IDEOGRAPH - ,0x9EAA ,0x7059 //CJK UNIFIED IDEOGRAPH - ,0x9EAB ,0x705A //CJK UNIFIED IDEOGRAPH - ,0x9EAC ,0x705B //CJK UNIFIED IDEOGRAPH - ,0x9EAD ,0x705C //CJK UNIFIED IDEOGRAPH - ,0x9EAE ,0x705D //CJK UNIFIED IDEOGRAPH - ,0x9EAF ,0x705F //CJK UNIFIED IDEOGRAPH - ,0x9EB0 ,0x7060 //CJK UNIFIED IDEOGRAPH - ,0x9EB1 ,0x7061 //CJK UNIFIED IDEOGRAPH - ,0x9EB2 ,0x7062 //CJK UNIFIED IDEOGRAPH - ,0x9EB3 ,0x7063 //CJK UNIFIED IDEOGRAPH - ,0x9EB4 ,0x7064 //CJK UNIFIED IDEOGRAPH - ,0x9EB5 ,0x7065 //CJK UNIFIED IDEOGRAPH - ,0x9EB6 ,0x7066 //CJK UNIFIED IDEOGRAPH - ,0x9EB7 ,0x7067 //CJK UNIFIED IDEOGRAPH - ,0x9EB8 ,0x7068 //CJK UNIFIED IDEOGRAPH - ,0x9EB9 ,0x7069 //CJK UNIFIED IDEOGRAPH - ,0x9EBA ,0x706A //CJK UNIFIED IDEOGRAPH - ,0x9EBB ,0x706E //CJK UNIFIED IDEOGRAPH - ,0x9EBC ,0x7071 //CJK UNIFIED IDEOGRAPH - ,0x9EBD ,0x7072 //CJK UNIFIED IDEOGRAPH - ,0x9EBE ,0x7073 //CJK UNIFIED IDEOGRAPH - ,0x9EBF ,0x7074 //CJK UNIFIED IDEOGRAPH - ,0x9EC0 ,0x7077 //CJK UNIFIED IDEOGRAPH - ,0x9EC1 ,0x7079 //CJK UNIFIED IDEOGRAPH - ,0x9EC2 ,0x707A //CJK UNIFIED IDEOGRAPH - ,0x9EC3 ,0x707B //CJK UNIFIED IDEOGRAPH - ,0x9EC4 ,0x707D //CJK UNIFIED IDEOGRAPH - ,0x9EC5 ,0x7081 //CJK UNIFIED IDEOGRAPH - ,0x9EC6 ,0x7082 //CJK UNIFIED IDEOGRAPH - ,0x9EC7 ,0x7083 //CJK UNIFIED IDEOGRAPH - ,0x9EC8 ,0x7084 //CJK UNIFIED IDEOGRAPH - ,0x9EC9 ,0x7086 //CJK UNIFIED IDEOGRAPH - ,0x9ECA ,0x7087 //CJK UNIFIED IDEOGRAPH - ,0x9ECB ,0x7088 //CJK UNIFIED IDEOGRAPH - ,0x9ECC ,0x708B //CJK UNIFIED IDEOGRAPH - ,0x9ECD ,0x708C //CJK UNIFIED IDEOGRAPH - ,0x9ECE ,0x708D //CJK UNIFIED IDEOGRAPH - ,0x9ECF ,0x708F //CJK UNIFIED IDEOGRAPH - ,0x9ED0 ,0x7090 //CJK UNIFIED IDEOGRAPH - ,0x9ED1 ,0x7091 //CJK UNIFIED IDEOGRAPH - ,0x9ED2 ,0x7093 //CJK UNIFIED IDEOGRAPH - ,0x9ED3 ,0x7097 //CJK UNIFIED IDEOGRAPH - ,0x9ED4 ,0x7098 //CJK UNIFIED IDEOGRAPH - ,0x9ED5 ,0x709A //CJK UNIFIED IDEOGRAPH - ,0x9ED6 ,0x709B //CJK UNIFIED IDEOGRAPH - ,0x9ED7 ,0x709E //CJK UNIFIED IDEOGRAPH - ,0x9ED8 ,0x709F //CJK UNIFIED IDEOGRAPH - ,0x9ED9 ,0x70A0 //CJK UNIFIED IDEOGRAPH - ,0x9EDA ,0x70A1 //CJK UNIFIED IDEOGRAPH - ,0x9EDB ,0x70A2 //CJK UNIFIED IDEOGRAPH - ,0x9EDC ,0x70A3 //CJK UNIFIED IDEOGRAPH - ,0x9EDD ,0x70A4 //CJK UNIFIED IDEOGRAPH - ,0x9EDE ,0x70A5 //CJK UNIFIED IDEOGRAPH - ,0x9EDF ,0x70A6 //CJK UNIFIED IDEOGRAPH - ,0x9EE0 ,0x70A7 //CJK UNIFIED IDEOGRAPH - ,0x9EE1 ,0x70A8 //CJK UNIFIED IDEOGRAPH - ,0x9EE2 ,0x70A9 //CJK UNIFIED IDEOGRAPH - ,0x9EE3 ,0x70AA //CJK UNIFIED IDEOGRAPH - ,0x9EE4 ,0x70B0 //CJK UNIFIED IDEOGRAPH - ,0x9EE5 ,0x70B2 //CJK UNIFIED IDEOGRAPH - ,0x9EE6 ,0x70B4 //CJK UNIFIED IDEOGRAPH - ,0x9EE7 ,0x70B5 //CJK UNIFIED IDEOGRAPH - ,0x9EE8 ,0x70B6 //CJK UNIFIED IDEOGRAPH - ,0x9EE9 ,0x70BA //CJK UNIFIED IDEOGRAPH - ,0x9EEA ,0x70BE //CJK UNIFIED IDEOGRAPH - ,0x9EEB ,0x70BF //CJK UNIFIED IDEOGRAPH - ,0x9EEC ,0x70C4 //CJK UNIFIED IDEOGRAPH - ,0x9EED ,0x70C5 //CJK UNIFIED IDEOGRAPH - ,0x9EEE ,0x70C6 //CJK UNIFIED IDEOGRAPH - ,0x9EEF ,0x70C7 //CJK UNIFIED IDEOGRAPH - ,0x9EF0 ,0x70C9 //CJK UNIFIED IDEOGRAPH - ,0x9EF1 ,0x70CB //CJK UNIFIED IDEOGRAPH - ,0x9EF2 ,0x70CC //CJK UNIFIED IDEOGRAPH - ,0x9EF3 ,0x70CD //CJK UNIFIED IDEOGRAPH - ,0x9EF4 ,0x70CE //CJK UNIFIED IDEOGRAPH - ,0x9EF5 ,0x70CF //CJK UNIFIED IDEOGRAPH - ,0x9EF6 ,0x70D0 //CJK UNIFIED IDEOGRAPH - ,0x9EF7 ,0x70D1 //CJK UNIFIED IDEOGRAPH - ,0x9EF8 ,0x70D2 //CJK UNIFIED IDEOGRAPH - ,0x9EF9 ,0x70D3 //CJK UNIFIED IDEOGRAPH - ,0x9EFA ,0x70D4 //CJK UNIFIED IDEOGRAPH - ,0x9EFB ,0x70D5 //CJK UNIFIED IDEOGRAPH - ,0x9EFC ,0x70D6 //CJK UNIFIED IDEOGRAPH - ,0x9EFD ,0x70D7 //CJK UNIFIED IDEOGRAPH - ,0x9EFE ,0x70DA //CJK UNIFIED IDEOGRAPH - ,0x9F40 ,0x70DC //CJK UNIFIED IDEOGRAPH - ,0x9F41 ,0x70DD //CJK UNIFIED IDEOGRAPH - ,0x9F42 ,0x70DE //CJK UNIFIED IDEOGRAPH - ,0x9F43 ,0x70E0 //CJK UNIFIED IDEOGRAPH - ,0x9F44 ,0x70E1 //CJK UNIFIED IDEOGRAPH - ,0x9F45 ,0x70E2 //CJK UNIFIED IDEOGRAPH - ,0x9F46 ,0x70E3 //CJK UNIFIED IDEOGRAPH - ,0x9F47 ,0x70E5 //CJK UNIFIED IDEOGRAPH - ,0x9F48 ,0x70EA //CJK UNIFIED IDEOGRAPH - ,0x9F49 ,0x70EE //CJK UNIFIED IDEOGRAPH - ,0x9F4A ,0x70F0 //CJK UNIFIED IDEOGRAPH - ,0x9F4B ,0x70F1 //CJK UNIFIED IDEOGRAPH - ,0x9F4C ,0x70F2 //CJK UNIFIED IDEOGRAPH - ,0x9F4D ,0x70F3 //CJK UNIFIED IDEOGRAPH - ,0x9F4E ,0x70F4 //CJK UNIFIED IDEOGRAPH - ,0x9F4F ,0x70F5 //CJK UNIFIED IDEOGRAPH - ,0x9F50 ,0x70F6 //CJK UNIFIED IDEOGRAPH - ,0x9F51 ,0x70F8 //CJK UNIFIED IDEOGRAPH - ,0x9F52 ,0x70FA //CJK UNIFIED IDEOGRAPH - ,0x9F53 ,0x70FB //CJK UNIFIED IDEOGRAPH - ,0x9F54 ,0x70FC //CJK UNIFIED IDEOGRAPH - ,0x9F55 ,0x70FE //CJK UNIFIED IDEOGRAPH - ,0x9F56 ,0x70FF //CJK UNIFIED IDEOGRAPH - ,0x9F57 ,0x7100 //CJK UNIFIED IDEOGRAPH - ,0x9F58 ,0x7101 //CJK UNIFIED IDEOGRAPH - ,0x9F59 ,0x7102 //CJK UNIFIED IDEOGRAPH - ,0x9F5A ,0x7103 //CJK UNIFIED IDEOGRAPH - ,0x9F5B ,0x7104 //CJK UNIFIED IDEOGRAPH - ,0x9F5C ,0x7105 //CJK UNIFIED IDEOGRAPH - ,0x9F5D ,0x7106 //CJK UNIFIED IDEOGRAPH - ,0x9F5E ,0x7107 //CJK UNIFIED IDEOGRAPH - ,0x9F5F ,0x7108 //CJK UNIFIED IDEOGRAPH - ,0x9F60 ,0x710B //CJK UNIFIED IDEOGRAPH - ,0x9F61 ,0x710C //CJK UNIFIED IDEOGRAPH - ,0x9F62 ,0x710D //CJK UNIFIED IDEOGRAPH - ,0x9F63 ,0x710E //CJK UNIFIED IDEOGRAPH - ,0x9F64 ,0x710F //CJK UNIFIED IDEOGRAPH - ,0x9F65 ,0x7111 //CJK UNIFIED IDEOGRAPH - ,0x9F66 ,0x7112 //CJK UNIFIED IDEOGRAPH - ,0x9F67 ,0x7114 //CJK UNIFIED IDEOGRAPH - ,0x9F68 ,0x7117 //CJK UNIFIED IDEOGRAPH - ,0x9F69 ,0x711B //CJK UNIFIED IDEOGRAPH - ,0x9F6A ,0x711C //CJK UNIFIED IDEOGRAPH - ,0x9F6B ,0x711D //CJK UNIFIED IDEOGRAPH - ,0x9F6C ,0x711E //CJK UNIFIED IDEOGRAPH - ,0x9F6D ,0x711F //CJK UNIFIED IDEOGRAPH - ,0x9F6E ,0x7120 //CJK UNIFIED IDEOGRAPH - ,0x9F6F ,0x7121 //CJK UNIFIED IDEOGRAPH - ,0x9F70 ,0x7122 //CJK UNIFIED IDEOGRAPH - ,0x9F71 ,0x7123 //CJK UNIFIED IDEOGRAPH - ,0x9F72 ,0x7124 //CJK UNIFIED IDEOGRAPH - ,0x9F73 ,0x7125 //CJK UNIFIED IDEOGRAPH - ,0x9F74 ,0x7127 //CJK UNIFIED IDEOGRAPH - ,0x9F75 ,0x7128 //CJK UNIFIED IDEOGRAPH - ,0x9F76 ,0x7129 //CJK UNIFIED IDEOGRAPH - ,0x9F77 ,0x712A //CJK UNIFIED IDEOGRAPH - ,0x9F78 ,0x712B //CJK UNIFIED IDEOGRAPH - ,0x9F79 ,0x712C //CJK UNIFIED IDEOGRAPH - ,0x9F7A ,0x712D //CJK UNIFIED IDEOGRAPH - ,0x9F7B ,0x712E //CJK UNIFIED IDEOGRAPH - ,0x9F7C ,0x7132 //CJK UNIFIED IDEOGRAPH - ,0x9F7D ,0x7133 //CJK UNIFIED IDEOGRAPH - ,0x9F7E ,0x7134 //CJK UNIFIED IDEOGRAPH - ,0x9F80 ,0x7135 //CJK UNIFIED IDEOGRAPH - ,0x9F81 ,0x7137 //CJK UNIFIED IDEOGRAPH - ,0x9F82 ,0x7138 //CJK UNIFIED IDEOGRAPH - ,0x9F83 ,0x7139 //CJK UNIFIED IDEOGRAPH - ,0x9F84 ,0x713A //CJK UNIFIED IDEOGRAPH - ,0x9F85 ,0x713B //CJK UNIFIED IDEOGRAPH - ,0x9F86 ,0x713C //CJK UNIFIED IDEOGRAPH - ,0x9F87 ,0x713D //CJK UNIFIED IDEOGRAPH - ,0x9F88 ,0x713E //CJK UNIFIED IDEOGRAPH - ,0x9F89 ,0x713F //CJK UNIFIED IDEOGRAPH - ,0x9F8A ,0x7140 //CJK UNIFIED IDEOGRAPH - ,0x9F8B ,0x7141 //CJK UNIFIED IDEOGRAPH - ,0x9F8C ,0x7142 //CJK UNIFIED IDEOGRAPH - ,0x9F8D ,0x7143 //CJK UNIFIED IDEOGRAPH - ,0x9F8E ,0x7144 //CJK UNIFIED IDEOGRAPH - ,0x9F8F ,0x7146 //CJK UNIFIED IDEOGRAPH - ,0x9F90 ,0x7147 //CJK UNIFIED IDEOGRAPH - ,0x9F91 ,0x7148 //CJK UNIFIED IDEOGRAPH - ,0x9F92 ,0x7149 //CJK UNIFIED IDEOGRAPH - ,0x9F93 ,0x714B //CJK UNIFIED IDEOGRAPH - ,0x9F94 ,0x714D //CJK UNIFIED IDEOGRAPH - ,0x9F95 ,0x714F //CJK UNIFIED IDEOGRAPH - ,0x9F96 ,0x7150 //CJK UNIFIED IDEOGRAPH - ,0x9F97 ,0x7151 //CJK UNIFIED IDEOGRAPH - ,0x9F98 ,0x7152 //CJK UNIFIED IDEOGRAPH - ,0x9F99 ,0x7153 //CJK UNIFIED IDEOGRAPH - ,0x9F9A ,0x7154 //CJK UNIFIED IDEOGRAPH - ,0x9F9B ,0x7155 //CJK UNIFIED IDEOGRAPH - ,0x9F9C ,0x7156 //CJK UNIFIED IDEOGRAPH - ,0x9F9D ,0x7157 //CJK UNIFIED IDEOGRAPH - ,0x9F9E ,0x7158 //CJK UNIFIED IDEOGRAPH - ,0x9F9F ,0x7159 //CJK UNIFIED IDEOGRAPH - ,0x9FA0 ,0x715A //CJK UNIFIED IDEOGRAPH - ,0x9FA1 ,0x715B //CJK UNIFIED IDEOGRAPH - ,0x9FA2 ,0x715D //CJK UNIFIED IDEOGRAPH - ,0x9FA3 ,0x715F //CJK UNIFIED IDEOGRAPH - ,0x9FA4 ,0x7160 //CJK UNIFIED IDEOGRAPH - ,0x9FA5 ,0x7161 //CJK UNIFIED IDEOGRAPH - ,0x9FA6 ,0x7162 //CJK UNIFIED IDEOGRAPH - ,0x9FA7 ,0x7163 //CJK UNIFIED IDEOGRAPH - ,0x9FA8 ,0x7165 //CJK UNIFIED IDEOGRAPH - ,0x9FA9 ,0x7169 //CJK UNIFIED IDEOGRAPH - ,0x9FAA ,0x716A //CJK UNIFIED IDEOGRAPH - ,0x9FAB ,0x716B //CJK UNIFIED IDEOGRAPH - ,0x9FAC ,0x716C //CJK UNIFIED IDEOGRAPH - ,0x9FAD ,0x716D //CJK UNIFIED IDEOGRAPH - ,0x9FAE ,0x716F //CJK UNIFIED IDEOGRAPH - ,0x9FAF ,0x7170 //CJK UNIFIED IDEOGRAPH - ,0x9FB0 ,0x7171 //CJK UNIFIED IDEOGRAPH - ,0x9FB1 ,0x7174 //CJK UNIFIED IDEOGRAPH - ,0x9FB2 ,0x7175 //CJK UNIFIED IDEOGRAPH - ,0x9FB3 ,0x7176 //CJK UNIFIED IDEOGRAPH - ,0x9FB4 ,0x7177 //CJK UNIFIED IDEOGRAPH - ,0x9FB5 ,0x7179 //CJK UNIFIED IDEOGRAPH - ,0x9FB6 ,0x717B //CJK UNIFIED IDEOGRAPH - ,0x9FB7 ,0x717C //CJK UNIFIED IDEOGRAPH - ,0x9FB8 ,0x717E //CJK UNIFIED IDEOGRAPH - ,0x9FB9 ,0x717F //CJK UNIFIED IDEOGRAPH - ,0x9FBA ,0x7180 //CJK UNIFIED IDEOGRAPH - ,0x9FBB ,0x7181 //CJK UNIFIED IDEOGRAPH - ,0x9FBC ,0x7182 //CJK UNIFIED IDEOGRAPH - ,0x9FBD ,0x7183 //CJK UNIFIED IDEOGRAPH - ,0x9FBE ,0x7185 //CJK UNIFIED IDEOGRAPH - ,0x9FBF ,0x7186 //CJK UNIFIED IDEOGRAPH - ,0x9FC0 ,0x7187 //CJK UNIFIED IDEOGRAPH - ,0x9FC1 ,0x7188 //CJK UNIFIED IDEOGRAPH - ,0x9FC2 ,0x7189 //CJK UNIFIED IDEOGRAPH - ,0x9FC3 ,0x718B //CJK UNIFIED IDEOGRAPH - ,0x9FC4 ,0x718C //CJK UNIFIED IDEOGRAPH - ,0x9FC5 ,0x718D //CJK UNIFIED IDEOGRAPH - ,0x9FC6 ,0x718E //CJK UNIFIED IDEOGRAPH - ,0x9FC7 ,0x7190 //CJK UNIFIED IDEOGRAPH - ,0x9FC8 ,0x7191 //CJK UNIFIED IDEOGRAPH - ,0x9FC9 ,0x7192 //CJK UNIFIED IDEOGRAPH - ,0x9FCA ,0x7193 //CJK UNIFIED IDEOGRAPH - ,0x9FCB ,0x7195 //CJK UNIFIED IDEOGRAPH - ,0x9FCC ,0x7196 //CJK UNIFIED IDEOGRAPH - ,0x9FCD ,0x7197 //CJK UNIFIED IDEOGRAPH - ,0x9FCE ,0x719A //CJK UNIFIED IDEOGRAPH - ,0x9FCF ,0x719B //CJK UNIFIED IDEOGRAPH - ,0x9FD0 ,0x719C //CJK UNIFIED IDEOGRAPH - ,0x9FD1 ,0x719D //CJK UNIFIED IDEOGRAPH - ,0x9FD2 ,0x719E //CJK UNIFIED IDEOGRAPH - ,0x9FD3 ,0x71A1 //CJK UNIFIED IDEOGRAPH - ,0x9FD4 ,0x71A2 //CJK UNIFIED IDEOGRAPH - ,0x9FD5 ,0x71A3 //CJK UNIFIED IDEOGRAPH - ,0x9FD6 ,0x71A4 //CJK UNIFIED IDEOGRAPH - ,0x9FD7 ,0x71A5 //CJK UNIFIED IDEOGRAPH - ,0x9FD8 ,0x71A6 //CJK UNIFIED IDEOGRAPH - ,0x9FD9 ,0x71A7 //CJK UNIFIED IDEOGRAPH - ,0x9FDA ,0x71A9 //CJK UNIFIED IDEOGRAPH - ,0x9FDB ,0x71AA //CJK UNIFIED IDEOGRAPH - ,0x9FDC ,0x71AB //CJK UNIFIED IDEOGRAPH - ,0x9FDD ,0x71AD //CJK UNIFIED IDEOGRAPH - ,0x9FDE ,0x71AE //CJK UNIFIED IDEOGRAPH - ,0x9FDF ,0x71AF //CJK UNIFIED IDEOGRAPH - ,0x9FE0 ,0x71B0 //CJK UNIFIED IDEOGRAPH - ,0x9FE1 ,0x71B1 //CJK UNIFIED IDEOGRAPH - ,0x9FE2 ,0x71B2 //CJK UNIFIED IDEOGRAPH - ,0x9FE3 ,0x71B4 //CJK UNIFIED IDEOGRAPH - ,0x9FE4 ,0x71B6 //CJK UNIFIED IDEOGRAPH - ,0x9FE5 ,0x71B7 //CJK UNIFIED IDEOGRAPH - ,0x9FE6 ,0x71B8 //CJK UNIFIED IDEOGRAPH - ,0x9FE7 ,0x71BA //CJK UNIFIED IDEOGRAPH - ,0x9FE8 ,0x71BB //CJK UNIFIED IDEOGRAPH - ,0x9FE9 ,0x71BC //CJK UNIFIED IDEOGRAPH - ,0x9FEA ,0x71BD //CJK UNIFIED IDEOGRAPH - ,0x9FEB ,0x71BE //CJK UNIFIED IDEOGRAPH - ,0x9FEC ,0x71BF //CJK UNIFIED IDEOGRAPH - ,0x9FED ,0x71C0 //CJK UNIFIED IDEOGRAPH - ,0x9FEE ,0x71C1 //CJK UNIFIED IDEOGRAPH - ,0x9FEF ,0x71C2 //CJK UNIFIED IDEOGRAPH - ,0x9FF0 ,0x71C4 //CJK UNIFIED IDEOGRAPH - ,0x9FF1 ,0x71C5 //CJK UNIFIED IDEOGRAPH - ,0x9FF2 ,0x71C6 //CJK UNIFIED IDEOGRAPH - ,0x9FF3 ,0x71C7 //CJK UNIFIED IDEOGRAPH - ,0x9FF4 ,0x71C8 //CJK UNIFIED IDEOGRAPH - ,0x9FF5 ,0x71C9 //CJK UNIFIED IDEOGRAPH - ,0x9FF6 ,0x71CA //CJK UNIFIED IDEOGRAPH - ,0x9FF7 ,0x71CB //CJK UNIFIED IDEOGRAPH - ,0x9FF8 ,0x71CC //CJK UNIFIED IDEOGRAPH - ,0x9FF9 ,0x71CD //CJK UNIFIED IDEOGRAPH - ,0x9FFA ,0x71CF //CJK UNIFIED IDEOGRAPH - ,0x9FFB ,0x71D0 //CJK UNIFIED IDEOGRAPH - ,0x9FFC ,0x71D1 //CJK UNIFIED IDEOGRAPH - ,0x9FFD ,0x71D2 //CJK UNIFIED IDEOGRAPH - ,0x9FFE ,0x71D3 //CJK UNIFIED IDEOGRAPH - ,0xA040 ,0x71D6 //CJK UNIFIED IDEOGRAPH - ,0xA041 ,0x71D7 //CJK UNIFIED IDEOGRAPH - ,0xA042 ,0x71D8 //CJK UNIFIED IDEOGRAPH - ,0xA043 ,0x71D9 //CJK UNIFIED IDEOGRAPH - ,0xA044 ,0x71DA //CJK UNIFIED IDEOGRAPH - ,0xA045 ,0x71DB //CJK UNIFIED IDEOGRAPH - ,0xA046 ,0x71DC //CJK UNIFIED IDEOGRAPH - ,0xA047 ,0x71DD //CJK UNIFIED IDEOGRAPH - ,0xA048 ,0x71DE //CJK UNIFIED IDEOGRAPH - ,0xA049 ,0x71DF //CJK UNIFIED IDEOGRAPH - ,0xA04A ,0x71E1 //CJK UNIFIED IDEOGRAPH - ,0xA04B ,0x71E2 //CJK UNIFIED IDEOGRAPH - ,0xA04C ,0x71E3 //CJK UNIFIED IDEOGRAPH - ,0xA04D ,0x71E4 //CJK UNIFIED IDEOGRAPH - ,0xA04E ,0x71E6 //CJK UNIFIED IDEOGRAPH - ,0xA04F ,0x71E8 //CJK UNIFIED IDEOGRAPH - ,0xA050 ,0x71E9 //CJK UNIFIED IDEOGRAPH - ,0xA051 ,0x71EA //CJK UNIFIED IDEOGRAPH - ,0xA052 ,0x71EB //CJK UNIFIED IDEOGRAPH - ,0xA053 ,0x71EC //CJK UNIFIED IDEOGRAPH - ,0xA054 ,0x71ED //CJK UNIFIED IDEOGRAPH - ,0xA055 ,0x71EF //CJK UNIFIED IDEOGRAPH - ,0xA056 ,0x71F0 //CJK UNIFIED IDEOGRAPH - ,0xA057 ,0x71F1 //CJK UNIFIED IDEOGRAPH - ,0xA058 ,0x71F2 //CJK UNIFIED IDEOGRAPH - ,0xA059 ,0x71F3 //CJK UNIFIED IDEOGRAPH - ,0xA05A ,0x71F4 //CJK UNIFIED IDEOGRAPH - ,0xA05B ,0x71F5 //CJK UNIFIED IDEOGRAPH - ,0xA05C ,0x71F6 //CJK UNIFIED IDEOGRAPH - ,0xA05D ,0x71F7 //CJK UNIFIED IDEOGRAPH - ,0xA05E ,0x71F8 //CJK UNIFIED IDEOGRAPH - ,0xA05F ,0x71FA //CJK UNIFIED IDEOGRAPH - ,0xA060 ,0x71FB //CJK UNIFIED IDEOGRAPH - ,0xA061 ,0x71FC //CJK UNIFIED IDEOGRAPH - ,0xA062 ,0x71FD //CJK UNIFIED IDEOGRAPH - ,0xA063 ,0x71FE //CJK UNIFIED IDEOGRAPH - ,0xA064 ,0x71FF //CJK UNIFIED IDEOGRAPH - ,0xA065 ,0x7200 //CJK UNIFIED IDEOGRAPH - ,0xA066 ,0x7201 //CJK UNIFIED IDEOGRAPH - ,0xA067 ,0x7202 //CJK UNIFIED IDEOGRAPH - ,0xA068 ,0x7203 //CJK UNIFIED IDEOGRAPH - ,0xA069 ,0x7204 //CJK UNIFIED IDEOGRAPH - ,0xA06A ,0x7205 //CJK UNIFIED IDEOGRAPH - ,0xA06B ,0x7207 //CJK UNIFIED IDEOGRAPH - ,0xA06C ,0x7208 //CJK UNIFIED IDEOGRAPH - ,0xA06D ,0x7209 //CJK UNIFIED IDEOGRAPH - ,0xA06E ,0x720A //CJK UNIFIED IDEOGRAPH - ,0xA06F ,0x720B //CJK UNIFIED IDEOGRAPH - ,0xA070 ,0x720C //CJK UNIFIED IDEOGRAPH - ,0xA071 ,0x720D //CJK UNIFIED IDEOGRAPH - ,0xA072 ,0x720E //CJK UNIFIED IDEOGRAPH - ,0xA073 ,0x720F //CJK UNIFIED IDEOGRAPH - ,0xA074 ,0x7210 //CJK UNIFIED IDEOGRAPH - ,0xA075 ,0x7211 //CJK UNIFIED IDEOGRAPH - ,0xA076 ,0x7212 //CJK UNIFIED IDEOGRAPH - ,0xA077 ,0x7213 //CJK UNIFIED IDEOGRAPH - ,0xA078 ,0x7214 //CJK UNIFIED IDEOGRAPH - ,0xA079 ,0x7215 //CJK UNIFIED IDEOGRAPH - ,0xA07A ,0x7216 //CJK UNIFIED IDEOGRAPH - ,0xA07B ,0x7217 //CJK UNIFIED IDEOGRAPH - ,0xA07C ,0x7218 //CJK UNIFIED IDEOGRAPH - ,0xA07D ,0x7219 //CJK UNIFIED IDEOGRAPH - ,0xA07E ,0x721A //CJK UNIFIED IDEOGRAPH - ,0xA080 ,0x721B //CJK UNIFIED IDEOGRAPH - ,0xA081 ,0x721C //CJK UNIFIED IDEOGRAPH - ,0xA082 ,0x721E //CJK UNIFIED IDEOGRAPH - ,0xA083 ,0x721F //CJK UNIFIED IDEOGRAPH - ,0xA084 ,0x7220 //CJK UNIFIED IDEOGRAPH - ,0xA085 ,0x7221 //CJK UNIFIED IDEOGRAPH - ,0xA086 ,0x7222 //CJK UNIFIED IDEOGRAPH - ,0xA087 ,0x7223 //CJK UNIFIED IDEOGRAPH - ,0xA088 ,0x7224 //CJK UNIFIED IDEOGRAPH - ,0xA089 ,0x7225 //CJK UNIFIED IDEOGRAPH - ,0xA08A ,0x7226 //CJK UNIFIED IDEOGRAPH - ,0xA08B ,0x7227 //CJK UNIFIED IDEOGRAPH - ,0xA08C ,0x7229 //CJK UNIFIED IDEOGRAPH - ,0xA08D ,0x722B //CJK UNIFIED IDEOGRAPH - ,0xA08E ,0x722D //CJK UNIFIED IDEOGRAPH - ,0xA08F ,0x722E //CJK UNIFIED IDEOGRAPH - ,0xA090 ,0x722F //CJK UNIFIED IDEOGRAPH - ,0xA091 ,0x7232 //CJK UNIFIED IDEOGRAPH - ,0xA092 ,0x7233 //CJK UNIFIED IDEOGRAPH - ,0xA093 ,0x7234 //CJK UNIFIED IDEOGRAPH - ,0xA094 ,0x723A //CJK UNIFIED IDEOGRAPH - ,0xA095 ,0x723C //CJK UNIFIED IDEOGRAPH - ,0xA096 ,0x723E //CJK UNIFIED IDEOGRAPH - ,0xA097 ,0x7240 //CJK UNIFIED IDEOGRAPH - ,0xA098 ,0x7241 //CJK UNIFIED IDEOGRAPH - ,0xA099 ,0x7242 //CJK UNIFIED IDEOGRAPH - ,0xA09A ,0x7243 //CJK UNIFIED IDEOGRAPH - ,0xA09B ,0x7244 //CJK UNIFIED IDEOGRAPH - ,0xA09C ,0x7245 //CJK UNIFIED IDEOGRAPH - ,0xA09D ,0x7246 //CJK UNIFIED IDEOGRAPH - ,0xA09E ,0x7249 //CJK UNIFIED IDEOGRAPH - ,0xA09F ,0x724A //CJK UNIFIED IDEOGRAPH - ,0xA0A0 ,0x724B //CJK UNIFIED IDEOGRAPH - ,0xA0A1 ,0x724E //CJK UNIFIED IDEOGRAPH - ,0xA0A2 ,0x724F //CJK UNIFIED IDEOGRAPH - ,0xA0A3 ,0x7250 //CJK UNIFIED IDEOGRAPH - ,0xA0A4 ,0x7251 //CJK UNIFIED IDEOGRAPH - ,0xA0A5 ,0x7253 //CJK UNIFIED IDEOGRAPH - ,0xA0A6 ,0x7254 //CJK UNIFIED IDEOGRAPH - ,0xA0A7 ,0x7255 //CJK UNIFIED IDEOGRAPH - ,0xA0A8 ,0x7257 //CJK UNIFIED IDEOGRAPH - ,0xA0A9 ,0x7258 //CJK UNIFIED IDEOGRAPH - ,0xA0AA ,0x725A //CJK UNIFIED IDEOGRAPH - ,0xA0AB ,0x725C //CJK UNIFIED IDEOGRAPH - ,0xA0AC ,0x725E //CJK UNIFIED IDEOGRAPH - ,0xA0AD ,0x7260 //CJK UNIFIED IDEOGRAPH - ,0xA0AE ,0x7263 //CJK UNIFIED IDEOGRAPH - ,0xA0AF ,0x7264 //CJK UNIFIED IDEOGRAPH - ,0xA0B0 ,0x7265 //CJK UNIFIED IDEOGRAPH - ,0xA0B1 ,0x7268 //CJK UNIFIED IDEOGRAPH - ,0xA0B2 ,0x726A //CJK UNIFIED IDEOGRAPH - ,0xA0B3 ,0x726B //CJK UNIFIED IDEOGRAPH - ,0xA0B4 ,0x726C //CJK UNIFIED IDEOGRAPH - ,0xA0B5 ,0x726D //CJK UNIFIED IDEOGRAPH - ,0xA0B6 ,0x7270 //CJK UNIFIED IDEOGRAPH - ,0xA0B7 ,0x7271 //CJK UNIFIED IDEOGRAPH - ,0xA0B8 ,0x7273 //CJK UNIFIED IDEOGRAPH - ,0xA0B9 ,0x7274 //CJK UNIFIED IDEOGRAPH - ,0xA0BA ,0x7276 //CJK UNIFIED IDEOGRAPH - ,0xA0BB ,0x7277 //CJK UNIFIED IDEOGRAPH - ,0xA0BC ,0x7278 //CJK UNIFIED IDEOGRAPH - ,0xA0BD ,0x727B //CJK UNIFIED IDEOGRAPH - ,0xA0BE ,0x727C //CJK UNIFIED IDEOGRAPH - ,0xA0BF ,0x727D //CJK UNIFIED IDEOGRAPH - ,0xA0C0 ,0x7282 //CJK UNIFIED IDEOGRAPH - ,0xA0C1 ,0x7283 //CJK UNIFIED IDEOGRAPH - ,0xA0C2 ,0x7285 //CJK UNIFIED IDEOGRAPH - ,0xA0C3 ,0x7286 //CJK UNIFIED IDEOGRAPH - ,0xA0C4 ,0x7287 //CJK UNIFIED IDEOGRAPH - ,0xA0C5 ,0x7288 //CJK UNIFIED IDEOGRAPH - ,0xA0C6 ,0x7289 //CJK UNIFIED IDEOGRAPH - ,0xA0C7 ,0x728C //CJK UNIFIED IDEOGRAPH - ,0xA0C8 ,0x728E //CJK UNIFIED IDEOGRAPH - ,0xA0C9 ,0x7290 //CJK UNIFIED IDEOGRAPH - ,0xA0CA ,0x7291 //CJK UNIFIED IDEOGRAPH - ,0xA0CB ,0x7293 //CJK UNIFIED IDEOGRAPH - ,0xA0CC ,0x7294 //CJK UNIFIED IDEOGRAPH - ,0xA0CD ,0x7295 //CJK UNIFIED IDEOGRAPH - ,0xA0CE ,0x7296 //CJK UNIFIED IDEOGRAPH - ,0xA0CF ,0x7297 //CJK UNIFIED IDEOGRAPH - ,0xA0D0 ,0x7298 //CJK UNIFIED IDEOGRAPH - ,0xA0D1 ,0x7299 //CJK UNIFIED IDEOGRAPH - ,0xA0D2 ,0x729A //CJK UNIFIED IDEOGRAPH - ,0xA0D3 ,0x729B //CJK UNIFIED IDEOGRAPH - ,0xA0D4 ,0x729C //CJK UNIFIED IDEOGRAPH - ,0xA0D5 ,0x729D //CJK UNIFIED IDEOGRAPH - ,0xA0D6 ,0x729E //CJK UNIFIED IDEOGRAPH - ,0xA0D7 ,0x72A0 //CJK UNIFIED IDEOGRAPH - ,0xA0D8 ,0x72A1 //CJK UNIFIED IDEOGRAPH - ,0xA0D9 ,0x72A2 //CJK UNIFIED IDEOGRAPH - ,0xA0DA ,0x72A3 //CJK UNIFIED IDEOGRAPH - ,0xA0DB ,0x72A4 //CJK UNIFIED IDEOGRAPH - ,0xA0DC ,0x72A5 //CJK UNIFIED IDEOGRAPH - ,0xA0DD ,0x72A6 //CJK UNIFIED IDEOGRAPH - ,0xA0DE ,0x72A7 //CJK UNIFIED IDEOGRAPH - ,0xA0DF ,0x72A8 //CJK UNIFIED IDEOGRAPH - ,0xA0E0 ,0x72A9 //CJK UNIFIED IDEOGRAPH - ,0xA0E1 ,0x72AA //CJK UNIFIED IDEOGRAPH - ,0xA0E2 ,0x72AB //CJK UNIFIED IDEOGRAPH - ,0xA0E3 ,0x72AE //CJK UNIFIED IDEOGRAPH - ,0xA0E4 ,0x72B1 //CJK UNIFIED IDEOGRAPH - ,0xA0E5 ,0x72B2 //CJK UNIFIED IDEOGRAPH - ,0xA0E6 ,0x72B3 //CJK UNIFIED IDEOGRAPH - ,0xA0E7 ,0x72B5 //CJK UNIFIED IDEOGRAPH - ,0xA0E8 ,0x72BA //CJK UNIFIED IDEOGRAPH - ,0xA0E9 ,0x72BB //CJK UNIFIED IDEOGRAPH - ,0xA0EA ,0x72BC //CJK UNIFIED IDEOGRAPH - ,0xA0EB ,0x72BD //CJK UNIFIED IDEOGRAPH - ,0xA0EC ,0x72BE //CJK UNIFIED IDEOGRAPH - ,0xA0ED ,0x72BF //CJK UNIFIED IDEOGRAPH - ,0xA0EE ,0x72C0 //CJK UNIFIED IDEOGRAPH - ,0xA0EF ,0x72C5 //CJK UNIFIED IDEOGRAPH - ,0xA0F0 ,0x72C6 //CJK UNIFIED IDEOGRAPH - ,0xA0F1 ,0x72C7 //CJK UNIFIED IDEOGRAPH - ,0xA0F2 ,0x72C9 //CJK UNIFIED IDEOGRAPH - ,0xA0F3 ,0x72CA //CJK UNIFIED IDEOGRAPH - ,0xA0F4 ,0x72CB //CJK UNIFIED IDEOGRAPH - ,0xA0F5 ,0x72CC //CJK UNIFIED IDEOGRAPH - ,0xA0F6 ,0x72CF //CJK UNIFIED IDEOGRAPH - ,0xA0F7 ,0x72D1 //CJK UNIFIED IDEOGRAPH - ,0xA0F8 ,0x72D3 //CJK UNIFIED IDEOGRAPH - ,0xA0F9 ,0x72D4 //CJK UNIFIED IDEOGRAPH - ,0xA0FA ,0x72D5 //CJK UNIFIED IDEOGRAPH - ,0xA0FB ,0x72D6 //CJK UNIFIED IDEOGRAPH - ,0xA0FC ,0x72D8 //CJK UNIFIED IDEOGRAPH - ,0xA0FD ,0x72DA //CJK UNIFIED IDEOGRAPH - ,0xA0FE ,0x72DB //CJK UNIFIED IDEOGRAPH - ,0xA1A1 ,0x3000 //IDEOGRAPHIC SPACE - ,0xA1A2 ,0x3001 //IDEOGRAPHIC COMMA - ,0xA1A3 ,0x3002 //IDEOGRAPHIC FULL STOP - ,0xA1A4 ,0x00B7 //MIDDLE DOT - ,0xA1A5 ,0x02C9 //MODIFIER LETTER MACRON - ,0xA1A6 ,0x02C7 //CARON - ,0xA1A7 ,0x00A8 //DIAERESIS - ,0xA1A8 ,0x3003 //DITTO MARK - ,0xA1A9 ,0x3005 //IDEOGRAPHIC ITERATION MARK - ,0xA1AA ,0x2014 //EM DASH - ,0xA1AB ,0xFF5E //FULLWIDTH TILDE - ,0xA1AC ,0x2016 //DOUBLE VERTICAL LINE - ,0xA1AD ,0x2026 //HORIZONTAL ELLIPSIS - ,0xA1AE ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0xA1AF ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0xA1B0 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0xA1B1 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0xA1B2 ,0x3014 //LEFT TORTOISE SHELL BRACKET - ,0xA1B3 ,0x3015 //RIGHT TORTOISE SHELL BRACKET - ,0xA1B4 ,0x3008 //LEFT ANGLE BRACKET - ,0xA1B5 ,0x3009 //RIGHT ANGLE BRACKET - ,0xA1B6 ,0x300A //LEFT DOUBLE ANGLE BRACKET - ,0xA1B7 ,0x300B //RIGHT DOUBLE ANGLE BRACKET - ,0xA1B8 ,0x300C //LEFT CORNER BRACKET - ,0xA1B9 ,0x300D //RIGHT CORNER BRACKET - ,0xA1BA ,0x300E //LEFT WHITE CORNER BRACKET - ,0xA1BB ,0x300F //RIGHT WHITE CORNER BRACKET - ,0xA1BC ,0x3016 //LEFT WHITE LENTICULAR BRACKET - ,0xA1BD ,0x3017 //RIGHT WHITE LENTICULAR BRACKET - ,0xA1BE ,0x3010 //LEFT BLACK LENTICULAR BRACKET - ,0xA1BF ,0x3011 //RIGHT BLACK LENTICULAR BRACKET - ,0xA1C0 ,0x00B1 //PLUS-MINUS SIGN - ,0xA1C1 ,0x00D7 //MULTIPLICATION SIGN - ,0xA1C2 ,0x00F7 //DIVISION SIGN - ,0xA1C3 ,0x2236 //RATIO - ,0xA1C4 ,0x2227 //LOGICAL AND - ,0xA1C5 ,0x2228 //LOGICAL OR - ,0xA1C6 ,0x2211 //N-ARY SUMMATION - ,0xA1C7 ,0x220F //N-ARY PRODUCT - ,0xA1C8 ,0x222A //UNION - ,0xA1C9 ,0x2229 //INTERSECTION - ,0xA1CA ,0x2208 //ELEMENT OF - ,0xA1CB ,0x2237 //PROPORTION - ,0xA1CC ,0x221A //SQUARE ROOT - ,0xA1CD ,0x22A5 //UP TACK - ,0xA1CE ,0x2225 //PARALLEL TO - ,0xA1CF ,0x2220 //ANGLE - ,0xA1D0 ,0x2312 //ARC - ,0xA1D1 ,0x2299 //CIRCLED DOT OPERATOR - ,0xA1D2 ,0x222B //INTEGRAL - ,0xA1D3 ,0x222E //CONTOUR INTEGRAL - ,0xA1D4 ,0x2261 //IDENTICAL TO - ,0xA1D5 ,0x224C //ALL EQUAL TO - ,0xA1D6 ,0x2248 //ALMOST EQUAL TO - ,0xA1D7 ,0x223D //REVERSED TILDE - ,0xA1D8 ,0x221D //PROPORTIONAL TO - ,0xA1D9 ,0x2260 //NOT EQUAL TO - ,0xA1DA ,0x226E //NOT LESS-THAN - ,0xA1DB ,0x226F //NOT GREATER-THAN - ,0xA1DC ,0x2264 //LESS-THAN OR EQUAL TO - ,0xA1DD ,0x2265 //GREATER-THAN OR EQUAL TO - ,0xA1DE ,0x221E //INFINITY - ,0xA1DF ,0x2235 //BECAUSE - ,0xA1E0 ,0x2234 //THEREFORE - ,0xA1E1 ,0x2642 //MALE SIGN - ,0xA1E2 ,0x2640 //FEMALE SIGN - ,0xA1E3 ,0x00B0 //DEGREE SIGN - ,0xA1E4 ,0x2032 //PRIME - ,0xA1E5 ,0x2033 //DOUBLE PRIME - ,0xA1E6 ,0x2103 //DEGREE CELSIUS - ,0xA1E7 ,0xFF04 //FULLWIDTH DOLLAR SIGN - ,0xA1E8 ,0x00A4 //CURRENCY SIGN - ,0xA1E9 ,0xFFE0 //FULLWIDTH CENT SIGN - ,0xA1EA ,0xFFE1 //FULLWIDTH POUND SIGN - ,0xA1EB ,0x2030 //PER MILLE SIGN - ,0xA1EC ,0x00A7 //SECTION SIGN - ,0xA1ED ,0x2116 //NUMERO SIGN - ,0xA1EE ,0x2606 //WHITE STAR - ,0xA1EF ,0x2605 //BLACK STAR - ,0xA1F0 ,0x25CB //WHITE CIRCLE - ,0xA1F1 ,0x25CF //BLACK CIRCLE - ,0xA1F2 ,0x25CE //BULLSEYE - ,0xA1F3 ,0x25C7 //WHITE DIAMOND - ,0xA1F4 ,0x25C6 //BLACK DIAMOND - ,0xA1F5 ,0x25A1 //WHITE SQUARE - ,0xA1F6 ,0x25A0 //BLACK SQUARE - ,0xA1F7 ,0x25B3 //WHITE UP-POINTING TRIANGLE - ,0xA1F8 ,0x25B2 //BLACK UP-POINTING TRIANGLE - ,0xA1F9 ,0x203B //REFERENCE MARK - ,0xA1FA ,0x2192 //RIGHTWARDS ARROW - ,0xA1FB ,0x2190 //LEFTWARDS ARROW - ,0xA1FC ,0x2191 //UPWARDS ARROW - ,0xA1FD ,0x2193 //DOWNWARDS ARROW - ,0xA1FE ,0x3013 //GETA MARK - ,0xA2A1 ,0x2170 //SMALL ROMAN NUMERAL ONE - ,0xA2A2 ,0x2171 //SMALL ROMAN NUMERAL TWO - ,0xA2A3 ,0x2172 //SMALL ROMAN NUMERAL THREE - ,0xA2A4 ,0x2173 //SMALL ROMAN NUMERAL FOUR - ,0xA2A5 ,0x2174 //SMALL ROMAN NUMERAL FIVE - ,0xA2A6 ,0x2175 //SMALL ROMAN NUMERAL SIX - ,0xA2A7 ,0x2176 //SMALL ROMAN NUMERAL SEVEN - ,0xA2A8 ,0x2177 //SMALL ROMAN NUMERAL EIGHT - ,0xA2A9 ,0x2178 //SMALL ROMAN NUMERAL NINE - ,0xA2AA ,0x2179 //SMALL ROMAN NUMERAL TEN - ,0xA2B1 ,0x2488 //DIGIT ONE FULL STOP - ,0xA2B2 ,0x2489 //DIGIT TWO FULL STOP - ,0xA2B3 ,0x248A //DIGIT THREE FULL STOP - ,0xA2B4 ,0x248B //DIGIT FOUR FULL STOP - ,0xA2B5 ,0x248C //DIGIT FIVE FULL STOP - ,0xA2B6 ,0x248D //DIGIT SIX FULL STOP - ,0xA2B7 ,0x248E //DIGIT SEVEN FULL STOP - ,0xA2B8 ,0x248F //DIGIT EIGHT FULL STOP - ,0xA2B9 ,0x2490 //DIGIT NINE FULL STOP - ,0xA2BA ,0x2491 //NUMBER TEN FULL STOP - ,0xA2BB ,0x2492 //NUMBER ELEVEN FULL STOP - ,0xA2BC ,0x2493 //NUMBER TWELVE FULL STOP - ,0xA2BD ,0x2494 //NUMBER THIRTEEN FULL STOP - ,0xA2BE ,0x2495 //NUMBER FOURTEEN FULL STOP - ,0xA2BF ,0x2496 //NUMBER FIFTEEN FULL STOP - ,0xA2C0 ,0x2497 //NUMBER SIXTEEN FULL STOP - ,0xA2C1 ,0x2498 //NUMBER SEVENTEEN FULL STOP - ,0xA2C2 ,0x2499 //NUMBER EIGHTEEN FULL STOP - ,0xA2C3 ,0x249A //NUMBER NINETEEN FULL STOP - ,0xA2C4 ,0x249B //NUMBER TWENTY FULL STOP - ,0xA2C5 ,0x2474 //PARENTHESIZED DIGIT ONE - ,0xA2C6 ,0x2475 //PARENTHESIZED DIGIT TWO - ,0xA2C7 ,0x2476 //PARENTHESIZED DIGIT THREE - ,0xA2C8 ,0x2477 //PARENTHESIZED DIGIT FOUR - ,0xA2C9 ,0x2478 //PARENTHESIZED DIGIT FIVE - ,0xA2CA ,0x2479 //PARENTHESIZED DIGIT SIX - ,0xA2CB ,0x247A //PARENTHESIZED DIGIT SEVEN - ,0xA2CC ,0x247B //PARENTHESIZED DIGIT EIGHT - ,0xA2CD ,0x247C //PARENTHESIZED DIGIT NINE - ,0xA2CE ,0x247D //PARENTHESIZED NUMBER TEN - ,0xA2CF ,0x247E //PARENTHESIZED NUMBER ELEVEN - ,0xA2D0 ,0x247F //PARENTHESIZED NUMBER TWELVE - ,0xA2D1 ,0x2480 //PARENTHESIZED NUMBER THIRTEEN - ,0xA2D2 ,0x2481 //PARENTHESIZED NUMBER FOURTEEN - ,0xA2D3 ,0x2482 //PARENTHESIZED NUMBER FIFTEEN - ,0xA2D4 ,0x2483 //PARENTHESIZED NUMBER SIXTEEN - ,0xA2D5 ,0x2484 //PARENTHESIZED NUMBER SEVENTEEN - ,0xA2D6 ,0x2485 //PARENTHESIZED NUMBER EIGHTEEN - ,0xA2D7 ,0x2486 //PARENTHESIZED NUMBER NINETEEN - ,0xA2D8 ,0x2487 //PARENTHESIZED NUMBER TWENTY - ,0xA2D9 ,0x2460 //CIRCLED DIGIT ONE - ,0xA2DA ,0x2461 //CIRCLED DIGIT TWO - ,0xA2DB ,0x2462 //CIRCLED DIGIT THREE - ,0xA2DC ,0x2463 //CIRCLED DIGIT FOUR - ,0xA2DD ,0x2464 //CIRCLED DIGIT FIVE - ,0xA2DE ,0x2465 //CIRCLED DIGIT SIX - ,0xA2DF ,0x2466 //CIRCLED DIGIT SEVEN - ,0xA2E0 ,0x2467 //CIRCLED DIGIT EIGHT - ,0xA2E1 ,0x2468 //CIRCLED DIGIT NINE - ,0xA2E2 ,0x2469 //CIRCLED NUMBER TEN - ,0xA2E5 ,0x3220 //PARENTHESIZED IDEOGRAPH ONE - ,0xA2E6 ,0x3221 //PARENTHESIZED IDEOGRAPH TWO - ,0xA2E7 ,0x3222 //PARENTHESIZED IDEOGRAPH THREE - ,0xA2E8 ,0x3223 //PARENTHESIZED IDEOGRAPH FOUR - ,0xA2E9 ,0x3224 //PARENTHESIZED IDEOGRAPH FIVE - ,0xA2EA ,0x3225 //PARENTHESIZED IDEOGRAPH SIX - ,0xA2EB ,0x3226 //PARENTHESIZED IDEOGRAPH SEVEN - ,0xA2EC ,0x3227 //PARENTHESIZED IDEOGRAPH EIGHT - ,0xA2ED ,0x3228 //PARENTHESIZED IDEOGRAPH NINE - ,0xA2EE ,0x3229 //PARENTHESIZED IDEOGRAPH TEN - ,0xA2F1 ,0x2160 //ROMAN NUMERAL ONE - ,0xA2F2 ,0x2161 //ROMAN NUMERAL TWO - ,0xA2F3 ,0x2162 //ROMAN NUMERAL THREE - ,0xA2F4 ,0x2163 //ROMAN NUMERAL FOUR - ,0xA2F5 ,0x2164 //ROMAN NUMERAL FIVE - ,0xA2F6 ,0x2165 //ROMAN NUMERAL SIX - ,0xA2F7 ,0x2166 //ROMAN NUMERAL SEVEN - ,0xA2F8 ,0x2167 //ROMAN NUMERAL EIGHT - ,0xA2F9 ,0x2168 //ROMAN NUMERAL NINE - ,0xA2FA ,0x2169 //ROMAN NUMERAL TEN - ,0xA2FB ,0x216A //ROMAN NUMERAL ELEVEN - ,0xA2FC ,0x216B //ROMAN NUMERAL TWELVE - ,0xA3A1 ,0xFF01 //FULLWIDTH EXCLAMATION MARK - ,0xA3A2 ,0xFF02 //FULLWIDTH QUOTATION MARK - ,0xA3A3 ,0xFF03 //FULLWIDTH NUMBER SIGN - ,0xA3A4 ,0xFFE5 //FULLWIDTH YEN SIGN - ,0xA3A5 ,0xFF05 //FULLWIDTH PERCENT SIGN - ,0xA3A6 ,0xFF06 //FULLWIDTH AMPERSAND - ,0xA3A7 ,0xFF07 //FULLWIDTH APOSTROPHE - ,0xA3A8 ,0xFF08 //FULLWIDTH LEFT PARENTHESIS - ,0xA3A9 ,0xFF09 //FULLWIDTH RIGHT PARENTHESIS - ,0xA3AA ,0xFF0A //FULLWIDTH ASTERISK - ,0xA3AB ,0xFF0B //FULLWIDTH PLUS SIGN - ,0xA3AC ,0xFF0C //FULLWIDTH COMMA - ,0xA3AD ,0xFF0D //FULLWIDTH HYPHEN-MINUS - ,0xA3AE ,0xFF0E //FULLWIDTH FULL STOP - ,0xA3AF ,0xFF0F //FULLWIDTH SOLIDUS - ,0xA3B0 ,0xFF10 //FULLWIDTH DIGIT ZERO - ,0xA3B1 ,0xFF11 //FULLWIDTH DIGIT ONE - ,0xA3B2 ,0xFF12 //FULLWIDTH DIGIT TWO - ,0xA3B3 ,0xFF13 //FULLWIDTH DIGIT THREE - ,0xA3B4 ,0xFF14 //FULLWIDTH DIGIT FOUR - ,0xA3B5 ,0xFF15 //FULLWIDTH DIGIT FIVE - ,0xA3B6 ,0xFF16 //FULLWIDTH DIGIT SIX - ,0xA3B7 ,0xFF17 //FULLWIDTH DIGIT SEVEN - ,0xA3B8 ,0xFF18 //FULLWIDTH DIGIT EIGHT - ,0xA3B9 ,0xFF19 //FULLWIDTH DIGIT NINE - ,0xA3BA ,0xFF1A //FULLWIDTH COLON - ,0xA3BB ,0xFF1B //FULLWIDTH SEMICOLON - ,0xA3BC ,0xFF1C //FULLWIDTH LESS-THAN SIGN - ,0xA3BD ,0xFF1D //FULLWIDTH EQUALS SIGN - ,0xA3BE ,0xFF1E //FULLWIDTH GREATER-THAN SIGN - ,0xA3BF ,0xFF1F //FULLWIDTH QUESTION MARK - ,0xA3C0 ,0xFF20 //FULLWIDTH COMMERCIAL AT - ,0xA3C1 ,0xFF21 //FULLWIDTH LATIN CAPITAL LETTER A - ,0xA3C2 ,0xFF22 //FULLWIDTH LATIN CAPITAL LETTER B - ,0xA3C3 ,0xFF23 //FULLWIDTH LATIN CAPITAL LETTER C - ,0xA3C4 ,0xFF24 //FULLWIDTH LATIN CAPITAL LETTER D - ,0xA3C5 ,0xFF25 //FULLWIDTH LATIN CAPITAL LETTER E - ,0xA3C6 ,0xFF26 //FULLWIDTH LATIN CAPITAL LETTER F - ,0xA3C7 ,0xFF27 //FULLWIDTH LATIN CAPITAL LETTER G - ,0xA3C8 ,0xFF28 //FULLWIDTH LATIN CAPITAL LETTER H - ,0xA3C9 ,0xFF29 //FULLWIDTH LATIN CAPITAL LETTER I - ,0xA3CA ,0xFF2A //FULLWIDTH LATIN CAPITAL LETTER J - ,0xA3CB ,0xFF2B //FULLWIDTH LATIN CAPITAL LETTER K - ,0xA3CC ,0xFF2C //FULLWIDTH LATIN CAPITAL LETTER L - ,0xA3CD ,0xFF2D //FULLWIDTH LATIN CAPITAL LETTER M - ,0xA3CE ,0xFF2E //FULLWIDTH LATIN CAPITAL LETTER N - ,0xA3CF ,0xFF2F //FULLWIDTH LATIN CAPITAL LETTER O - ,0xA3D0 ,0xFF30 //FULLWIDTH LATIN CAPITAL LETTER P - ,0xA3D1 ,0xFF31 //FULLWIDTH LATIN CAPITAL LETTER Q - ,0xA3D2 ,0xFF32 //FULLWIDTH LATIN CAPITAL LETTER R - ,0xA3D3 ,0xFF33 //FULLWIDTH LATIN CAPITAL LETTER S - ,0xA3D4 ,0xFF34 //FULLWIDTH LATIN CAPITAL LETTER T - ,0xA3D5 ,0xFF35 //FULLWIDTH LATIN CAPITAL LETTER U - ,0xA3D6 ,0xFF36 //FULLWIDTH LATIN CAPITAL LETTER V - ,0xA3D7 ,0xFF37 //FULLWIDTH LATIN CAPITAL LETTER W - ,0xA3D8 ,0xFF38 //FULLWIDTH LATIN CAPITAL LETTER X - ,0xA3D9 ,0xFF39 //FULLWIDTH LATIN CAPITAL LETTER Y - ,0xA3DA ,0xFF3A //FULLWIDTH LATIN CAPITAL LETTER Z - ,0xA3DB ,0xFF3B //FULLWIDTH LEFT SQUARE BRACKET - ,0xA3DC ,0xFF3C //FULLWIDTH REVERSE SOLIDUS - ,0xA3DD ,0xFF3D //FULLWIDTH RIGHT SQUARE BRACKET - ,0xA3DE ,0xFF3E //FULLWIDTH CIRCUMFLEX ACCENT - ,0xA3DF ,0xFF3F //FULLWIDTH LOW LINE - ,0xA3E0 ,0xFF40 //FULLWIDTH GRAVE ACCENT - ,0xA3E1 ,0xFF41 //FULLWIDTH LATIN SMALL LETTER A - ,0xA3E2 ,0xFF42 //FULLWIDTH LATIN SMALL LETTER B - ,0xA3E3 ,0xFF43 //FULLWIDTH LATIN SMALL LETTER C - ,0xA3E4 ,0xFF44 //FULLWIDTH LATIN SMALL LETTER D - ,0xA3E5 ,0xFF45 //FULLWIDTH LATIN SMALL LETTER E - ,0xA3E6 ,0xFF46 //FULLWIDTH LATIN SMALL LETTER F - ,0xA3E7 ,0xFF47 //FULLWIDTH LATIN SMALL LETTER G - ,0xA3E8 ,0xFF48 //FULLWIDTH LATIN SMALL LETTER H - ,0xA3E9 ,0xFF49 //FULLWIDTH LATIN SMALL LETTER I - ,0xA3EA ,0xFF4A //FULLWIDTH LATIN SMALL LETTER J - ,0xA3EB ,0xFF4B //FULLWIDTH LATIN SMALL LETTER K - ,0xA3EC ,0xFF4C //FULLWIDTH LATIN SMALL LETTER L - ,0xA3ED ,0xFF4D //FULLWIDTH LATIN SMALL LETTER M - ,0xA3EE ,0xFF4E //FULLWIDTH LATIN SMALL LETTER N - ,0xA3EF ,0xFF4F //FULLWIDTH LATIN SMALL LETTER O - ,0xA3F0 ,0xFF50 //FULLWIDTH LATIN SMALL LETTER P - ,0xA3F1 ,0xFF51 //FULLWIDTH LATIN SMALL LETTER Q - ,0xA3F2 ,0xFF52 //FULLWIDTH LATIN SMALL LETTER R - ,0xA3F3 ,0xFF53 //FULLWIDTH LATIN SMALL LETTER S - ,0xA3F4 ,0xFF54 //FULLWIDTH LATIN SMALL LETTER T - ,0xA3F5 ,0xFF55 //FULLWIDTH LATIN SMALL LETTER U - ,0xA3F6 ,0xFF56 //FULLWIDTH LATIN SMALL LETTER V - ,0xA3F7 ,0xFF57 //FULLWIDTH LATIN SMALL LETTER W - ,0xA3F8 ,0xFF58 //FULLWIDTH LATIN SMALL LETTER X - ,0xA3F9 ,0xFF59 //FULLWIDTH LATIN SMALL LETTER Y - ,0xA3FA ,0xFF5A //FULLWIDTH LATIN SMALL LETTER Z - ,0xA3FB ,0xFF5B //FULLWIDTH LEFT CURLY BRACKET - ,0xA3FC ,0xFF5C //FULLWIDTH VERTICAL LINE - ,0xA3FD ,0xFF5D //FULLWIDTH RIGHT CURLY BRACKET - ,0xA3FE ,0xFFE3 //FULLWIDTH MACRON - ,0xA4A1 ,0x3041 //HIRAGANA LETTER SMALL A - ,0xA4A2 ,0x3042 //HIRAGANA LETTER A - ,0xA4A3 ,0x3043 //HIRAGANA LETTER SMALL I - ,0xA4A4 ,0x3044 //HIRAGANA LETTER I - ,0xA4A5 ,0x3045 //HIRAGANA LETTER SMALL U - ,0xA4A6 ,0x3046 //HIRAGANA LETTER U - ,0xA4A7 ,0x3047 //HIRAGANA LETTER SMALL E - ,0xA4A8 ,0x3048 //HIRAGANA LETTER E - ,0xA4A9 ,0x3049 //HIRAGANA LETTER SMALL O - ,0xA4AA ,0x304A //HIRAGANA LETTER O - ,0xA4AB ,0x304B //HIRAGANA LETTER KA - ,0xA4AC ,0x304C //HIRAGANA LETTER GA - ,0xA4AD ,0x304D //HIRAGANA LETTER KI - ,0xA4AE ,0x304E //HIRAGANA LETTER GI - ,0xA4AF ,0x304F //HIRAGANA LETTER KU - ,0xA4B0 ,0x3050 //HIRAGANA LETTER GU - ,0xA4B1 ,0x3051 //HIRAGANA LETTER KE - ,0xA4B2 ,0x3052 //HIRAGANA LETTER GE - ,0xA4B3 ,0x3053 //HIRAGANA LETTER KO - ,0xA4B4 ,0x3054 //HIRAGANA LETTER GO - ,0xA4B5 ,0x3055 //HIRAGANA LETTER SA - ,0xA4B6 ,0x3056 //HIRAGANA LETTER ZA - ,0xA4B7 ,0x3057 //HIRAGANA LETTER SI - ,0xA4B8 ,0x3058 //HIRAGANA LETTER ZI - ,0xA4B9 ,0x3059 //HIRAGANA LETTER SU - ,0xA4BA ,0x305A //HIRAGANA LETTER ZU - ,0xA4BB ,0x305B //HIRAGANA LETTER SE - ,0xA4BC ,0x305C //HIRAGANA LETTER ZE - ,0xA4BD ,0x305D //HIRAGANA LETTER SO - ,0xA4BE ,0x305E //HIRAGANA LETTER ZO - ,0xA4BF ,0x305F //HIRAGANA LETTER TA - ,0xA4C0 ,0x3060 //HIRAGANA LETTER DA - ,0xA4C1 ,0x3061 //HIRAGANA LETTER TI - ,0xA4C2 ,0x3062 //HIRAGANA LETTER DI - ,0xA4C3 ,0x3063 //HIRAGANA LETTER SMALL TU - ,0xA4C4 ,0x3064 //HIRAGANA LETTER TU - ,0xA4C5 ,0x3065 //HIRAGANA LETTER DU - ,0xA4C6 ,0x3066 //HIRAGANA LETTER TE - ,0xA4C7 ,0x3067 //HIRAGANA LETTER DE - ,0xA4C8 ,0x3068 //HIRAGANA LETTER TO - ,0xA4C9 ,0x3069 //HIRAGANA LETTER DO - ,0xA4CA ,0x306A //HIRAGANA LETTER NA - ,0xA4CB ,0x306B //HIRAGANA LETTER NI - ,0xA4CC ,0x306C //HIRAGANA LETTER NU - ,0xA4CD ,0x306D //HIRAGANA LETTER NE - ,0xA4CE ,0x306E //HIRAGANA LETTER NO - ,0xA4CF ,0x306F //HIRAGANA LETTER HA - ,0xA4D0 ,0x3070 //HIRAGANA LETTER BA - ,0xA4D1 ,0x3071 //HIRAGANA LETTER PA - ,0xA4D2 ,0x3072 //HIRAGANA LETTER HI - ,0xA4D3 ,0x3073 //HIRAGANA LETTER BI - ,0xA4D4 ,0x3074 //HIRAGANA LETTER PI - ,0xA4D5 ,0x3075 //HIRAGANA LETTER HU - ,0xA4D6 ,0x3076 //HIRAGANA LETTER BU - ,0xA4D7 ,0x3077 //HIRAGANA LETTER PU - ,0xA4D8 ,0x3078 //HIRAGANA LETTER HE - ,0xA4D9 ,0x3079 //HIRAGANA LETTER BE - ,0xA4DA ,0x307A //HIRAGANA LETTER PE - ,0xA4DB ,0x307B //HIRAGANA LETTER HO - ,0xA4DC ,0x307C //HIRAGANA LETTER BO - ,0xA4DD ,0x307D //HIRAGANA LETTER PO - ,0xA4DE ,0x307E //HIRAGANA LETTER MA - ,0xA4DF ,0x307F //HIRAGANA LETTER MI - ,0xA4E0 ,0x3080 //HIRAGANA LETTER MU - ,0xA4E1 ,0x3081 //HIRAGANA LETTER ME - ,0xA4E2 ,0x3082 //HIRAGANA LETTER MO - ,0xA4E3 ,0x3083 //HIRAGANA LETTER SMALL YA - ,0xA4E4 ,0x3084 //HIRAGANA LETTER YA - ,0xA4E5 ,0x3085 //HIRAGANA LETTER SMALL YU - ,0xA4E6 ,0x3086 //HIRAGANA LETTER YU - ,0xA4E7 ,0x3087 //HIRAGANA LETTER SMALL YO - ,0xA4E8 ,0x3088 //HIRAGANA LETTER YO - ,0xA4E9 ,0x3089 //HIRAGANA LETTER RA - ,0xA4EA ,0x308A //HIRAGANA LETTER RI - ,0xA4EB ,0x308B //HIRAGANA LETTER RU - ,0xA4EC ,0x308C //HIRAGANA LETTER RE - ,0xA4ED ,0x308D //HIRAGANA LETTER RO - ,0xA4EE ,0x308E //HIRAGANA LETTER SMALL WA - ,0xA4EF ,0x308F //HIRAGANA LETTER WA - ,0xA4F0 ,0x3090 //HIRAGANA LETTER WI - ,0xA4F1 ,0x3091 //HIRAGANA LETTER WE - ,0xA4F2 ,0x3092 //HIRAGANA LETTER WO - ,0xA4F3 ,0x3093 //HIRAGANA LETTER N - ,0xA5A1 ,0x30A1 //KATAKANA LETTER SMALL A - ,0xA5A2 ,0x30A2 //KATAKANA LETTER A - ,0xA5A3 ,0x30A3 //KATAKANA LETTER SMALL I - ,0xA5A4 ,0x30A4 //KATAKANA LETTER I - ,0xA5A5 ,0x30A5 //KATAKANA LETTER SMALL U - ,0xA5A6 ,0x30A6 //KATAKANA LETTER U - ,0xA5A7 ,0x30A7 //KATAKANA LETTER SMALL E - ,0xA5A8 ,0x30A8 //KATAKANA LETTER E - ,0xA5A9 ,0x30A9 //KATAKANA LETTER SMALL O - ,0xA5AA ,0x30AA //KATAKANA LETTER O - ,0xA5AB ,0x30AB //KATAKANA LETTER KA - ,0xA5AC ,0x30AC //KATAKANA LETTER GA - ,0xA5AD ,0x30AD //KATAKANA LETTER KI - ,0xA5AE ,0x30AE //KATAKANA LETTER GI - ,0xA5AF ,0x30AF //KATAKANA LETTER KU - ,0xA5B0 ,0x30B0 //KATAKANA LETTER GU - ,0xA5B1 ,0x30B1 //KATAKANA LETTER KE - ,0xA5B2 ,0x30B2 //KATAKANA LETTER GE - ,0xA5B3 ,0x30B3 //KATAKANA LETTER KO - ,0xA5B4 ,0x30B4 //KATAKANA LETTER GO - ,0xA5B5 ,0x30B5 //KATAKANA LETTER SA - ,0xA5B6 ,0x30B6 //KATAKANA LETTER ZA - ,0xA5B7 ,0x30B7 //KATAKANA LETTER SI - ,0xA5B8 ,0x30B8 //KATAKANA LETTER ZI - ,0xA5B9 ,0x30B9 //KATAKANA LETTER SU - ,0xA5BA ,0x30BA //KATAKANA LETTER ZU - ,0xA5BB ,0x30BB //KATAKANA LETTER SE - ,0xA5BC ,0x30BC //KATAKANA LETTER ZE - ,0xA5BD ,0x30BD //KATAKANA LETTER SO - ,0xA5BE ,0x30BE //KATAKANA LETTER ZO - ,0xA5BF ,0x30BF //KATAKANA LETTER TA - ,0xA5C0 ,0x30C0 //KATAKANA LETTER DA - ,0xA5C1 ,0x30C1 //KATAKANA LETTER TI - ,0xA5C2 ,0x30C2 //KATAKANA LETTER DI - ,0xA5C3 ,0x30C3 //KATAKANA LETTER SMALL TU - ,0xA5C4 ,0x30C4 //KATAKANA LETTER TU - ,0xA5C5 ,0x30C5 //KATAKANA LETTER DU - ,0xA5C6 ,0x30C6 //KATAKANA LETTER TE - ,0xA5C7 ,0x30C7 //KATAKANA LETTER DE - ,0xA5C8 ,0x30C8 //KATAKANA LETTER TO - ,0xA5C9 ,0x30C9 //KATAKANA LETTER DO - ,0xA5CA ,0x30CA //KATAKANA LETTER NA - ,0xA5CB ,0x30CB //KATAKANA LETTER NI - ,0xA5CC ,0x30CC //KATAKANA LETTER NU - ,0xA5CD ,0x30CD //KATAKANA LETTER NE - ,0xA5CE ,0x30CE //KATAKANA LETTER NO - ,0xA5CF ,0x30CF //KATAKANA LETTER HA - ,0xA5D0 ,0x30D0 //KATAKANA LETTER BA - ,0xA5D1 ,0x30D1 //KATAKANA LETTER PA - ,0xA5D2 ,0x30D2 //KATAKANA LETTER HI - ,0xA5D3 ,0x30D3 //KATAKANA LETTER BI - ,0xA5D4 ,0x30D4 //KATAKANA LETTER PI - ,0xA5D5 ,0x30D5 //KATAKANA LETTER HU - ,0xA5D6 ,0x30D6 //KATAKANA LETTER BU - ,0xA5D7 ,0x30D7 //KATAKANA LETTER PU - ,0xA5D8 ,0x30D8 //KATAKANA LETTER HE - ,0xA5D9 ,0x30D9 //KATAKANA LETTER BE - ,0xA5DA ,0x30DA //KATAKANA LETTER PE - ,0xA5DB ,0x30DB //KATAKANA LETTER HO - ,0xA5DC ,0x30DC //KATAKANA LETTER BO - ,0xA5DD ,0x30DD //KATAKANA LETTER PO - ,0xA5DE ,0x30DE //KATAKANA LETTER MA - ,0xA5DF ,0x30DF //KATAKANA LETTER MI - ,0xA5E0 ,0x30E0 //KATAKANA LETTER MU - ,0xA5E1 ,0x30E1 //KATAKANA LETTER ME - ,0xA5E2 ,0x30E2 //KATAKANA LETTER MO - ,0xA5E3 ,0x30E3 //KATAKANA LETTER SMALL YA - ,0xA5E4 ,0x30E4 //KATAKANA LETTER YA - ,0xA5E5 ,0x30E5 //KATAKANA LETTER SMALL YU - ,0xA5E6 ,0x30E6 //KATAKANA LETTER YU - ,0xA5E7 ,0x30E7 //KATAKANA LETTER SMALL YO - ,0xA5E8 ,0x30E8 //KATAKANA LETTER YO - ,0xA5E9 ,0x30E9 //KATAKANA LETTER RA - ,0xA5EA ,0x30EA //KATAKANA LETTER RI - ,0xA5EB ,0x30EB //KATAKANA LETTER RU - ,0xA5EC ,0x30EC //KATAKANA LETTER RE - ,0xA5ED ,0x30ED //KATAKANA LETTER RO - ,0xA5EE ,0x30EE //KATAKANA LETTER SMALL WA - ,0xA5EF ,0x30EF //KATAKANA LETTER WA - ,0xA5F0 ,0x30F0 //KATAKANA LETTER WI - ,0xA5F1 ,0x30F1 //KATAKANA LETTER WE - ,0xA5F2 ,0x30F2 //KATAKANA LETTER WO - ,0xA5F3 ,0x30F3 //KATAKANA LETTER N - ,0xA5F4 ,0x30F4 //KATAKANA LETTER VU - ,0xA5F5 ,0x30F5 //KATAKANA LETTER SMALL KA - ,0xA5F6 ,0x30F6 //KATAKANA LETTER SMALL KE - ,0xA6A1 ,0x0391 //GREEK CAPITAL LETTER ALPHA - ,0xA6A2 ,0x0392 //GREEK CAPITAL LETTER BETA - ,0xA6A3 ,0x0393 //GREEK CAPITAL LETTER GAMMA - ,0xA6A4 ,0x0394 //GREEK CAPITAL LETTER DELTA - ,0xA6A5 ,0x0395 //GREEK CAPITAL LETTER EPSILON - ,0xA6A6 ,0x0396 //GREEK CAPITAL LETTER ZETA - ,0xA6A7 ,0x0397 //GREEK CAPITAL LETTER ETA - ,0xA6A8 ,0x0398 //GREEK CAPITAL LETTER THETA - ,0xA6A9 ,0x0399 //GREEK CAPITAL LETTER IOTA - ,0xA6AA ,0x039A //GREEK CAPITAL LETTER KAPPA - ,0xA6AB ,0x039B //GREEK CAPITAL LETTER LAMDA - ,0xA6AC ,0x039C //GREEK CAPITAL LETTER MU - ,0xA6AD ,0x039D //GREEK CAPITAL LETTER NU - ,0xA6AE ,0x039E //GREEK CAPITAL LETTER XI - ,0xA6AF ,0x039F //GREEK CAPITAL LETTER OMICRON - ,0xA6B0 ,0x03A0 //GREEK CAPITAL LETTER PI - ,0xA6B1 ,0x03A1 //GREEK CAPITAL LETTER RHO - ,0xA6B2 ,0x03A3 //GREEK CAPITAL LETTER SIGMA - ,0xA6B3 ,0x03A4 //GREEK CAPITAL LETTER TAU - ,0xA6B4 ,0x03A5 //GREEK CAPITAL LETTER UPSILON - ,0xA6B5 ,0x03A6 //GREEK CAPITAL LETTER PHI - ,0xA6B6 ,0x03A7 //GREEK CAPITAL LETTER CHI - ,0xA6B7 ,0x03A8 //GREEK CAPITAL LETTER PSI - ,0xA6B8 ,0x03A9 //GREEK CAPITAL LETTER OMEGA - ,0xA6C1 ,0x03B1 //GREEK SMALL LETTER ALPHA - ,0xA6C2 ,0x03B2 //GREEK SMALL LETTER BETA - ,0xA6C3 ,0x03B3 //GREEK SMALL LETTER GAMMA - ,0xA6C4 ,0x03B4 //GREEK SMALL LETTER DELTA - ,0xA6C5 ,0x03B5 //GREEK SMALL LETTER EPSILON - ,0xA6C6 ,0x03B6 //GREEK SMALL LETTER ZETA - ,0xA6C7 ,0x03B7 //GREEK SMALL LETTER ETA - ,0xA6C8 ,0x03B8 //GREEK SMALL LETTER THETA - ,0xA6C9 ,0x03B9 //GREEK SMALL LETTER IOTA - ,0xA6CA ,0x03BA //GREEK SMALL LETTER KAPPA - ,0xA6CB ,0x03BB //GREEK SMALL LETTER LAMDA - ,0xA6CC ,0x03BC //GREEK SMALL LETTER MU - ,0xA6CD ,0x03BD //GREEK SMALL LETTER NU - ,0xA6CE ,0x03BE //GREEK SMALL LETTER XI - ,0xA6CF ,0x03BF //GREEK SMALL LETTER OMICRON - ,0xA6D0 ,0x03C0 //GREEK SMALL LETTER PI - ,0xA6D1 ,0x03C1 //GREEK SMALL LETTER RHO - ,0xA6D2 ,0x03C3 //GREEK SMALL LETTER SIGMA - ,0xA6D3 ,0x03C4 //GREEK SMALL LETTER TAU - ,0xA6D4 ,0x03C5 //GREEK SMALL LETTER UPSILON - ,0xA6D5 ,0x03C6 //GREEK SMALL LETTER PHI - ,0xA6D6 ,0x03C7 //GREEK SMALL LETTER CHI - ,0xA6D7 ,0x03C8 //GREEK SMALL LETTER PSI - ,0xA6D8 ,0x03C9 //GREEK SMALL LETTER OMEGA - ,0xA6E0 ,0xFE35 //PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS - ,0xA6E1 ,0xFE36 //PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS - ,0xA6E2 ,0xFE39 //PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET - ,0xA6E3 ,0xFE3A //PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET - ,0xA6E4 ,0xFE3F //PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET - ,0xA6E5 ,0xFE40 //PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET - ,0xA6E6 ,0xFE3D //PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET - ,0xA6E7 ,0xFE3E //PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET - ,0xA6E8 ,0xFE41 //PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET - ,0xA6E9 ,0xFE42 //PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET - ,0xA6EA ,0xFE43 //PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET - ,0xA6EB ,0xFE44 //PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET - ,0xA6EE ,0xFE3B //PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET - ,0xA6EF ,0xFE3C //PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET - ,0xA6F0 ,0xFE37 //PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET - ,0xA6F1 ,0xFE38 //PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET - ,0xA6F2 ,0xFE31 //PRESENTATION FORM FOR VERTICAL EM DASH - ,0xA6F4 ,0xFE33 //PRESENTATION FORM FOR VERTICAL LOW LINE - ,0xA6F5 ,0xFE34 //PRESENTATION FORM FOR VERTICAL WAVY LOW LINE - ,0xA7A1 ,0x0410 //CYRILLIC CAPITAL LETTER A - ,0xA7A2 ,0x0411 //CYRILLIC CAPITAL LETTER BE - ,0xA7A3 ,0x0412 //CYRILLIC CAPITAL LETTER VE - ,0xA7A4 ,0x0413 //CYRILLIC CAPITAL LETTER GHE - ,0xA7A5 ,0x0414 //CYRILLIC CAPITAL LETTER DE - ,0xA7A6 ,0x0415 //CYRILLIC CAPITAL LETTER IE - ,0xA7A7 ,0x0401 //CYRILLIC CAPITAL LETTER IO - ,0xA7A8 ,0x0416 //CYRILLIC CAPITAL LETTER ZHE - ,0xA7A9 ,0x0417 //CYRILLIC CAPITAL LETTER ZE - ,0xA7AA ,0x0418 //CYRILLIC CAPITAL LETTER I - ,0xA7AB ,0x0419 //CYRILLIC CAPITAL LETTER SHORT I - ,0xA7AC ,0x041A //CYRILLIC CAPITAL LETTER KA - ,0xA7AD ,0x041B //CYRILLIC CAPITAL LETTER EL - ,0xA7AE ,0x041C //CYRILLIC CAPITAL LETTER EM - ,0xA7AF ,0x041D //CYRILLIC CAPITAL LETTER EN - ,0xA7B0 ,0x041E //CYRILLIC CAPITAL LETTER O - ,0xA7B1 ,0x041F //CYRILLIC CAPITAL LETTER PE - ,0xA7B2 ,0x0420 //CYRILLIC CAPITAL LETTER ER - ,0xA7B3 ,0x0421 //CYRILLIC CAPITAL LETTER ES - ,0xA7B4 ,0x0422 //CYRILLIC CAPITAL LETTER TE - ,0xA7B5 ,0x0423 //CYRILLIC CAPITAL LETTER U - ,0xA7B6 ,0x0424 //CYRILLIC CAPITAL LETTER EF - ,0xA7B7 ,0x0425 //CYRILLIC CAPITAL LETTER HA - ,0xA7B8 ,0x0426 //CYRILLIC CAPITAL LETTER TSE - ,0xA7B9 ,0x0427 //CYRILLIC CAPITAL LETTER CHE - ,0xA7BA ,0x0428 //CYRILLIC CAPITAL LETTER SHA - ,0xA7BB ,0x0429 //CYRILLIC CAPITAL LETTER SHCHA - ,0xA7BC ,0x042A //CYRILLIC CAPITAL LETTER HARD SIGN - ,0xA7BD ,0x042B //CYRILLIC CAPITAL LETTER YERU - ,0xA7BE ,0x042C //CYRILLIC CAPITAL LETTER SOFT SIGN - ,0xA7BF ,0x042D //CYRILLIC CAPITAL LETTER E - ,0xA7C0 ,0x042E //CYRILLIC CAPITAL LETTER YU - ,0xA7C1 ,0x042F //CYRILLIC CAPITAL LETTER YA - ,0xA7D1 ,0x0430 //CYRILLIC SMALL LETTER A - ,0xA7D2 ,0x0431 //CYRILLIC SMALL LETTER BE - ,0xA7D3 ,0x0432 //CYRILLIC SMALL LETTER VE - ,0xA7D4 ,0x0433 //CYRILLIC SMALL LETTER GHE - ,0xA7D5 ,0x0434 //CYRILLIC SMALL LETTER DE - ,0xA7D6 ,0x0435 //CYRILLIC SMALL LETTER IE - ,0xA7D7 ,0x0451 //CYRILLIC SMALL LETTER IO - ,0xA7D8 ,0x0436 //CYRILLIC SMALL LETTER ZHE - ,0xA7D9 ,0x0437 //CYRILLIC SMALL LETTER ZE - ,0xA7DA ,0x0438 //CYRILLIC SMALL LETTER I - ,0xA7DB ,0x0439 //CYRILLIC SMALL LETTER SHORT I - ,0xA7DC ,0x043A //CYRILLIC SMALL LETTER KA - ,0xA7DD ,0x043B //CYRILLIC SMALL LETTER EL - ,0xA7DE ,0x043C //CYRILLIC SMALL LETTER EM - ,0xA7DF ,0x043D //CYRILLIC SMALL LETTER EN - ,0xA7E0 ,0x043E //CYRILLIC SMALL LETTER O - ,0xA7E1 ,0x043F //CYRILLIC SMALL LETTER PE - ,0xA7E2 ,0x0440 //CYRILLIC SMALL LETTER ER - ,0xA7E3 ,0x0441 //CYRILLIC SMALL LETTER ES - ,0xA7E4 ,0x0442 //CYRILLIC SMALL LETTER TE - ,0xA7E5 ,0x0443 //CYRILLIC SMALL LETTER U - ,0xA7E6 ,0x0444 //CYRILLIC SMALL LETTER EF - ,0xA7E7 ,0x0445 //CYRILLIC SMALL LETTER HA - ,0xA7E8 ,0x0446 //CYRILLIC SMALL LETTER TSE - ,0xA7E9 ,0x0447 //CYRILLIC SMALL LETTER CHE - ,0xA7EA ,0x0448 //CYRILLIC SMALL LETTER SHA - ,0xA7EB ,0x0449 //CYRILLIC SMALL LETTER SHCHA - ,0xA7EC ,0x044A //CYRILLIC SMALL LETTER HARD SIGN - ,0xA7ED ,0x044B //CYRILLIC SMALL LETTER YERU - ,0xA7EE ,0x044C //CYRILLIC SMALL LETTER SOFT SIGN - ,0xA7EF ,0x044D //CYRILLIC SMALL LETTER E - ,0xA7F0 ,0x044E //CYRILLIC SMALL LETTER YU - ,0xA7F1 ,0x044F //CYRILLIC SMALL LETTER YA - ,0xA840 ,0x02CA //MODIFIER LETTER ACUTE ACCENT - ,0xA841 ,0x02CB //MODIFIER LETTER GRAVE ACCENT - ,0xA842 ,0x02D9 //DOT ABOVE - ,0xA843 ,0x2013 //EN DASH - ,0xA844 ,0x2015 //HORIZONTAL BAR - ,0xA845 ,0x2025 //TWO DOT LEADER - ,0xA846 ,0x2035 //REVERSED PRIME - ,0xA847 ,0x2105 //CARE OF - ,0xA848 ,0x2109 //DEGREE FAHRENHEIT - ,0xA849 ,0x2196 //NORTH WEST ARROW - ,0xA84A ,0x2197 //NORTH EAST ARROW - ,0xA84B ,0x2198 //SOUTH EAST ARROW - ,0xA84C ,0x2199 //SOUTH WEST ARROW - ,0xA84D ,0x2215 //DIVISION SLASH - ,0xA84E ,0x221F //RIGHT ANGLE - ,0xA84F ,0x2223 //DIVIDES - ,0xA850 ,0x2252 //APPROXIMATELY EQUAL TO OR THE IMAGE OF - ,0xA851 ,0x2266 //LESS-THAN OVER EQUAL TO - ,0xA852 ,0x2267 //GREATER-THAN OVER EQUAL TO - ,0xA853 ,0x22BF //RIGHT TRIANGLE - ,0xA854 ,0x2550 //BOX DRAWINGS DOUBLE HORIZONTAL - ,0xA855 ,0x2551 //BOX DRAWINGS DOUBLE VERTICAL - ,0xA856 ,0x2552 //BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE - ,0xA857 ,0x2553 //BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE - ,0xA858 ,0x2554 //BOX DRAWINGS DOUBLE DOWN AND RIGHT - ,0xA859 ,0x2555 //BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE - ,0xA85A ,0x2556 //BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE - ,0xA85B ,0x2557 //BOX DRAWINGS DOUBLE DOWN AND LEFT - ,0xA85C ,0x2558 //BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE - ,0xA85D ,0x2559 //BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE - ,0xA85E ,0x255A //BOX DRAWINGS DOUBLE UP AND RIGHT - ,0xA85F ,0x255B //BOX DRAWINGS UP SINGLE AND LEFT DOUBLE - ,0xA860 ,0x255C //BOX DRAWINGS UP DOUBLE AND LEFT SINGLE - ,0xA861 ,0x255D //BOX DRAWINGS DOUBLE UP AND LEFT - ,0xA862 ,0x255E //BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - ,0xA863 ,0x255F //BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - ,0xA864 ,0x2560 //BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - ,0xA865 ,0x2561 //BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - ,0xA866 ,0x2562 //BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE - ,0xA867 ,0x2563 //BOX DRAWINGS DOUBLE VERTICAL AND LEFT - ,0xA868 ,0x2564 //BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE - ,0xA869 ,0x2565 //BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE - ,0xA86A ,0x2566 //BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - ,0xA86B ,0x2567 //BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - ,0xA86C ,0x2568 //BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - ,0xA86D ,0x2569 //BOX DRAWINGS DOUBLE UP AND HORIZONTAL - ,0xA86E ,0x256A //BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - ,0xA86F ,0x256B //BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE - ,0xA870 ,0x256C //BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL - ,0xA871 ,0x256D //BOX DRAWINGS LIGHT ARC DOWN AND RIGHT - ,0xA872 ,0x256E //BOX DRAWINGS LIGHT ARC DOWN AND LEFT - ,0xA873 ,0x256F //BOX DRAWINGS LIGHT ARC UP AND LEFT - ,0xA874 ,0x2570 //BOX DRAWINGS LIGHT ARC UP AND RIGHT - ,0xA875 ,0x2571 //BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT - ,0xA876 ,0x2572 //BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT - ,0xA877 ,0x2573 //BOX DRAWINGS LIGHT DIAGONAL CROSS - ,0xA878 ,0x2581 //LOWER ONE EIGHTH BLOCK - ,0xA879 ,0x2582 //LOWER ONE QUARTER BLOCK - ,0xA87A ,0x2583 //LOWER THREE EIGHTHS BLOCK - ,0xA87B ,0x2584 //LOWER HALF BLOCK - ,0xA87C ,0x2585 //LOWER FIVE EIGHTHS BLOCK - ,0xA87D ,0x2586 //LOWER THREE QUARTERS BLOCK - ,0xA87E ,0x2587 //LOWER SEVEN EIGHTHS BLOCK - ,0xA880 ,0x2588 //FULL BLOCK - ,0xA881 ,0x2589 //LEFT SEVEN EIGHTHS BLOCK - ,0xA882 ,0x258A //LEFT THREE QUARTERS BLOCK - ,0xA883 ,0x258B //LEFT FIVE EIGHTHS BLOCK - ,0xA884 ,0x258C //LEFT HALF BLOCK - ,0xA885 ,0x258D //LEFT THREE EIGHTHS BLOCK - ,0xA886 ,0x258E //LEFT ONE QUARTER BLOCK - ,0xA887 ,0x258F //LEFT ONE EIGHTH BLOCK - ,0xA888 ,0x2593 //DARK SHADE - ,0xA889 ,0x2594 //UPPER ONE EIGHTH BLOCK - ,0xA88A ,0x2595 //RIGHT ONE EIGHTH BLOCK - ,0xA88B ,0x25BC //BLACK DOWN-POINTING TRIANGLE - ,0xA88C ,0x25BD //WHITE DOWN-POINTING TRIANGLE - ,0xA88D ,0x25E2 //BLACK LOWER RIGHT TRIANGLE - ,0xA88E ,0x25E3 //BLACK LOWER LEFT TRIANGLE - ,0xA88F ,0x25E4 //BLACK UPPER LEFT TRIANGLE - ,0xA890 ,0x25E5 //BLACK UPPER RIGHT TRIANGLE - ,0xA891 ,0x2609 //SUN - ,0xA892 ,0x2295 //CIRCLED PLUS - ,0xA893 ,0x3012 //POSTAL MARK - ,0xA894 ,0x301D //REVERSED DOUBLE PRIME QUOTATION MARK - ,0xA895 ,0x301E //DOUBLE PRIME QUOTATION MARK - ,0xA8A1 ,0x0101 //LATIN SMALL LETTER A WITH MACRON - ,0xA8A2 ,0x00E1 //LATIN SMALL LETTER A WITH ACUTE - ,0xA8A3 ,0x01CE //LATIN SMALL LETTER A WITH CARON - ,0xA8A4 ,0x00E0 //LATIN SMALL LETTER A WITH GRAVE - ,0xA8A5 ,0x0113 //LATIN SMALL LETTER E WITH MACRON - ,0xA8A6 ,0x00E9 //LATIN SMALL LETTER E WITH ACUTE - ,0xA8A7 ,0x011B //LATIN SMALL LETTER E WITH CARON - ,0xA8A8 ,0x00E8 //LATIN SMALL LETTER E WITH GRAVE - ,0xA8A9 ,0x012B //LATIN SMALL LETTER I WITH MACRON - ,0xA8AA ,0x00ED //LATIN SMALL LETTER I WITH ACUTE - ,0xA8AB ,0x01D0 //LATIN SMALL LETTER I WITH CARON - ,0xA8AC ,0x00EC //LATIN SMALL LETTER I WITH GRAVE - ,0xA8AD ,0x014D //LATIN SMALL LETTER O WITH MACRON - ,0xA8AE ,0x00F3 //LATIN SMALL LETTER O WITH ACUTE - ,0xA8AF ,0x01D2 //LATIN SMALL LETTER O WITH CARON - ,0xA8B0 ,0x00F2 //LATIN SMALL LETTER O WITH GRAVE - ,0xA8B1 ,0x016B //LATIN SMALL LETTER U WITH MACRON - ,0xA8B2 ,0x00FA //LATIN SMALL LETTER U WITH ACUTE - ,0xA8B3 ,0x01D4 //LATIN SMALL LETTER U WITH CARON - ,0xA8B4 ,0x00F9 //LATIN SMALL LETTER U WITH GRAVE - ,0xA8B5 ,0x01D6 //LATIN SMALL LETTER U WITH DIAERESIS AND MACRON - ,0xA8B6 ,0x01D8 //LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE - ,0xA8B7 ,0x01DA //LATIN SMALL LETTER U WITH DIAERESIS AND CARON - ,0xA8B8 ,0x01DC //LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE - ,0xA8B9 ,0x00FC //LATIN SMALL LETTER U WITH DIAERESIS - ,0xA8BA ,0x00EA //LATIN SMALL LETTER E WITH CIRCUMFLEX - ,0xA8BB ,0x0251 //LATIN SMALL LETTER ALPHA - ,0xA8BD ,0x0144 //LATIN SMALL LETTER N WITH ACUTE - ,0xA8BE ,0x0148 //LATIN SMALL LETTER N WITH CARON - ,0xA8C0 ,0x0261 //LATIN SMALL LETTER SCRIPT G - ,0xA8C5 ,0x3105 //BOPOMOFO LETTER B - ,0xA8C6 ,0x3106 //BOPOMOFO LETTER P - ,0xA8C7 ,0x3107 //BOPOMOFO LETTER M - ,0xA8C8 ,0x3108 //BOPOMOFO LETTER F - ,0xA8C9 ,0x3109 //BOPOMOFO LETTER D - ,0xA8CA ,0x310A //BOPOMOFO LETTER T - ,0xA8CB ,0x310B //BOPOMOFO LETTER N - ,0xA8CC ,0x310C //BOPOMOFO LETTER L - ,0xA8CD ,0x310D //BOPOMOFO LETTER G - ,0xA8CE ,0x310E //BOPOMOFO LETTER K - ,0xA8CF ,0x310F //BOPOMOFO LETTER H - ,0xA8D0 ,0x3110 //BOPOMOFO LETTER J - ,0xA8D1 ,0x3111 //BOPOMOFO LETTER Q - ,0xA8D2 ,0x3112 //BOPOMOFO LETTER X - ,0xA8D3 ,0x3113 //BOPOMOFO LETTER ZH - ,0xA8D4 ,0x3114 //BOPOMOFO LETTER CH - ,0xA8D5 ,0x3115 //BOPOMOFO LETTER SH - ,0xA8D6 ,0x3116 //BOPOMOFO LETTER R - ,0xA8D7 ,0x3117 //BOPOMOFO LETTER Z - ,0xA8D8 ,0x3118 //BOPOMOFO LETTER C - ,0xA8D9 ,0x3119 //BOPOMOFO LETTER S - ,0xA8DA ,0x311A //BOPOMOFO LETTER A - ,0xA8DB ,0x311B //BOPOMOFO LETTER O - ,0xA8DC ,0x311C //BOPOMOFO LETTER E - ,0xA8DD ,0x311D //BOPOMOFO LETTER EH - ,0xA8DE ,0x311E //BOPOMOFO LETTER AI - ,0xA8DF ,0x311F //BOPOMOFO LETTER EI - ,0xA8E0 ,0x3120 //BOPOMOFO LETTER AU - ,0xA8E1 ,0x3121 //BOPOMOFO LETTER OU - ,0xA8E2 ,0x3122 //BOPOMOFO LETTER AN - ,0xA8E3 ,0x3123 //BOPOMOFO LETTER EN - ,0xA8E4 ,0x3124 //BOPOMOFO LETTER ANG - ,0xA8E5 ,0x3125 //BOPOMOFO LETTER ENG - ,0xA8E6 ,0x3126 //BOPOMOFO LETTER ER - ,0xA8E7 ,0x3127 //BOPOMOFO LETTER I - ,0xA8E8 ,0x3128 //BOPOMOFO LETTER U - ,0xA8E9 ,0x3129 //BOPOMOFO LETTER IU - ,0xA940 ,0x3021 //HANGZHOU NUMERAL ONE - ,0xA941 ,0x3022 //HANGZHOU NUMERAL TWO - ,0xA942 ,0x3023 //HANGZHOU NUMERAL THREE - ,0xA943 ,0x3024 //HANGZHOU NUMERAL FOUR - ,0xA944 ,0x3025 //HANGZHOU NUMERAL FIVE - ,0xA945 ,0x3026 //HANGZHOU NUMERAL SIX - ,0xA946 ,0x3027 //HANGZHOU NUMERAL SEVEN - ,0xA947 ,0x3028 //HANGZHOU NUMERAL EIGHT - ,0xA948 ,0x3029 //HANGZHOU NUMERAL NINE - ,0xA949 ,0x32A3 //CIRCLED IDEOGRAPH CORRECT - ,0xA94A ,0x338E //SQUARE MG - ,0xA94B ,0x338F //SQUARE KG - ,0xA94C ,0x339C //SQUARE MM - ,0xA94D ,0x339D //SQUARE CM - ,0xA94E ,0x339E //SQUARE KM - ,0xA94F ,0x33A1 //SQUARE M SQUARED - ,0xA950 ,0x33C4 //SQUARE CC - ,0xA951 ,0x33CE //SQUARE KM CAPITAL - ,0xA952 ,0x33D1 //SQUARE LN - ,0xA953 ,0x33D2 //SQUARE LOG - ,0xA954 ,0x33D5 //SQUARE MIL - ,0xA955 ,0xFE30 //PRESENTATION FORM FOR VERTICAL TWO DOT LEADER - ,0xA956 ,0xFFE2 //FULLWIDTH NOT SIGN - ,0xA957 ,0xFFE4 //FULLWIDTH BROKEN BAR - ,0xA959 ,0x2121 //TELEPHONE SIGN - ,0xA95A ,0x3231 //PARENTHESIZED IDEOGRAPH STOCK - ,0xA95C ,0x2010 //HYPHEN - ,0xA960 ,0x30FC //KATAKANA-HIRAGANA PROLONGED SOUND MARK - ,0xA961 ,0x309B //KATAKANA-HIRAGANA VOICED SOUND MARK - ,0xA962 ,0x309C //KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK - ,0xA963 ,0x30FD //KATAKANA ITERATION MARK - ,0xA964 ,0x30FE //KATAKANA VOICED ITERATION MARK - ,0xA965 ,0x3006 //IDEOGRAPHIC CLOSING MARK - ,0xA966 ,0x309D //HIRAGANA ITERATION MARK - ,0xA967 ,0x309E //HIRAGANA VOICED ITERATION MARK - ,0xA968 ,0xFE49 //DASHED OVERLINE - ,0xA969 ,0xFE4A //CENTRELINE OVERLINE - ,0xA96A ,0xFE4B //WAVY OVERLINE - ,0xA96B ,0xFE4C //DOUBLE WAVY OVERLINE - ,0xA96C ,0xFE4D //DASHED LOW LINE - ,0xA96D ,0xFE4E //CENTRELINE LOW LINE - ,0xA96E ,0xFE4F //WAVY LOW LINE - ,0xA96F ,0xFE50 //SMALL COMMA - ,0xA970 ,0xFE51 //SMALL IDEOGRAPHIC COMMA - ,0xA971 ,0xFE52 //SMALL FULL STOP - ,0xA972 ,0xFE54 //SMALL SEMICOLON - ,0xA973 ,0xFE55 //SMALL COLON - ,0xA974 ,0xFE56 //SMALL QUESTION MARK - ,0xA975 ,0xFE57 //SMALL EXCLAMATION MARK - ,0xA976 ,0xFE59 //SMALL LEFT PARENTHESIS - ,0xA977 ,0xFE5A //SMALL RIGHT PARENTHESIS - ,0xA978 ,0xFE5B //SMALL LEFT CURLY BRACKET - ,0xA979 ,0xFE5C //SMALL RIGHT CURLY BRACKET - ,0xA97A ,0xFE5D //SMALL LEFT TORTOISE SHELL BRACKET - ,0xA97B ,0xFE5E //SMALL RIGHT TORTOISE SHELL BRACKET - ,0xA97C ,0xFE5F //SMALL NUMBER SIGN - ,0xA97D ,0xFE60 //SMALL AMPERSAND - ,0xA97E ,0xFE61 //SMALL ASTERISK - ,0xA980 ,0xFE62 //SMALL PLUS SIGN - ,0xA981 ,0xFE63 //SMALL HYPHEN-MINUS - ,0xA982 ,0xFE64 //SMALL LESS-THAN SIGN - ,0xA983 ,0xFE65 //SMALL GREATER-THAN SIGN - ,0xA984 ,0xFE66 //SMALL EQUALS SIGN - ,0xA985 ,0xFE68 //SMALL REVERSE SOLIDUS - ,0xA986 ,0xFE69 //SMALL DOLLAR SIGN - ,0xA987 ,0xFE6A //SMALL PERCENT SIGN - ,0xA988 ,0xFE6B //SMALL COMMERCIAL AT - ,0xA996 ,0x3007 //IDEOGRAPHIC NUMBER ZERO - ,0xA9A4 ,0x2500 //BOX DRAWINGS LIGHT HORIZONTAL - ,0xA9A5 ,0x2501 //BOX DRAWINGS HEAVY HORIZONTAL - ,0xA9A6 ,0x2502 //BOX DRAWINGS LIGHT VERTICAL - ,0xA9A7 ,0x2503 //BOX DRAWINGS HEAVY VERTICAL - ,0xA9A8 ,0x2504 //BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL - ,0xA9A9 ,0x2505 //BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL - ,0xA9AA ,0x2506 //BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL - ,0xA9AB ,0x2507 //BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL - ,0xA9AC ,0x2508 //BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL - ,0xA9AD ,0x2509 //BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL - ,0xA9AE ,0x250A //BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL - ,0xA9AF ,0x250B //BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL - ,0xA9B0 ,0x250C //BOX DRAWINGS LIGHT DOWN AND RIGHT - ,0xA9B1 ,0x250D //BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY - ,0xA9B2 ,0x250E //BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT - ,0xA9B3 ,0x250F //BOX DRAWINGS HEAVY DOWN AND RIGHT - ,0xA9B4 ,0x2510 //BOX DRAWINGS LIGHT DOWN AND LEFT - ,0xA9B5 ,0x2511 //BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY - ,0xA9B6 ,0x2512 //BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT - ,0xA9B7 ,0x2513 //BOX DRAWINGS HEAVY DOWN AND LEFT - ,0xA9B8 ,0x2514 //BOX DRAWINGS LIGHT UP AND RIGHT - ,0xA9B9 ,0x2515 //BOX DRAWINGS UP LIGHT AND RIGHT HEAVY - ,0xA9BA ,0x2516 //BOX DRAWINGS UP HEAVY AND RIGHT LIGHT - ,0xA9BB ,0x2517 //BOX DRAWINGS HEAVY UP AND RIGHT - ,0xA9BC ,0x2518 //BOX DRAWINGS LIGHT UP AND LEFT - ,0xA9BD ,0x2519 //BOX DRAWINGS UP LIGHT AND LEFT HEAVY - ,0xA9BE ,0x251A //BOX DRAWINGS UP HEAVY AND LEFT LIGHT - ,0xA9BF ,0x251B //BOX DRAWINGS HEAVY UP AND LEFT - ,0xA9C0 ,0x251C //BOX DRAWINGS LIGHT VERTICAL AND RIGHT - ,0xA9C1 ,0x251D //BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY - ,0xA9C2 ,0x251E //BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT - ,0xA9C3 ,0x251F //BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT - ,0xA9C4 ,0x2520 //BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT - ,0xA9C5 ,0x2521 //BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY - ,0xA9C6 ,0x2522 //BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY - ,0xA9C7 ,0x2523 //BOX DRAWINGS HEAVY VERTICAL AND RIGHT - ,0xA9C8 ,0x2524 //BOX DRAWINGS LIGHT VERTICAL AND LEFT - ,0xA9C9 ,0x2525 //BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY - ,0xA9CA ,0x2526 //BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT - ,0xA9CB ,0x2527 //BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT - ,0xA9CC ,0x2528 //BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT - ,0xA9CD ,0x2529 //BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY - ,0xA9CE ,0x252A //BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY - ,0xA9CF ,0x252B //BOX DRAWINGS HEAVY VERTICAL AND LEFT - ,0xA9D0 ,0x252C //BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - ,0xA9D1 ,0x252D //BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT - ,0xA9D2 ,0x252E //BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT - ,0xA9D3 ,0x252F //BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY - ,0xA9D4 ,0x2530 //BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT - ,0xA9D5 ,0x2531 //BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY - ,0xA9D6 ,0x2532 //BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY - ,0xA9D7 ,0x2533 //BOX DRAWINGS HEAVY DOWN AND HORIZONTAL - ,0xA9D8 ,0x2534 //BOX DRAWINGS LIGHT UP AND HORIZONTAL - ,0xA9D9 ,0x2535 //BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT - ,0xA9DA ,0x2536 //BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT - ,0xA9DB ,0x2537 //BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY - ,0xA9DC ,0x2538 //BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT - ,0xA9DD ,0x2539 //BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY - ,0xA9DE ,0x253A //BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY - ,0xA9DF ,0x253B //BOX DRAWINGS HEAVY UP AND HORIZONTAL - ,0xA9E0 ,0x253C //BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - ,0xA9E1 ,0x253D //BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT - ,0xA9E2 ,0x253E //BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT - ,0xA9E3 ,0x253F //BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY - ,0xA9E4 ,0x2540 //BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT - ,0xA9E5 ,0x2541 //BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT - ,0xA9E6 ,0x2542 //BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT - ,0xA9E7 ,0x2543 //BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT - ,0xA9E8 ,0x2544 //BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT - ,0xA9E9 ,0x2545 //BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT - ,0xA9EA ,0x2546 //BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT - ,0xA9EB ,0x2547 //BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY - ,0xA9EC ,0x2548 //BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY - ,0xA9ED ,0x2549 //BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY - ,0xA9EE ,0x254A //BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY - ,0xA9EF ,0x254B //BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL - ,0xAA40 ,0x72DC //CJK UNIFIED IDEOGRAPH - ,0xAA41 ,0x72DD //CJK UNIFIED IDEOGRAPH - ,0xAA42 ,0x72DF //CJK UNIFIED IDEOGRAPH - ,0xAA43 ,0x72E2 //CJK UNIFIED IDEOGRAPH - ,0xAA44 ,0x72E3 //CJK UNIFIED IDEOGRAPH - ,0xAA45 ,0x72E4 //CJK UNIFIED IDEOGRAPH - ,0xAA46 ,0x72E5 //CJK UNIFIED IDEOGRAPH - ,0xAA47 ,0x72E6 //CJK UNIFIED IDEOGRAPH - ,0xAA48 ,0x72E7 //CJK UNIFIED IDEOGRAPH - ,0xAA49 ,0x72EA //CJK UNIFIED IDEOGRAPH - ,0xAA4A ,0x72EB //CJK UNIFIED IDEOGRAPH - ,0xAA4B ,0x72F5 //CJK UNIFIED IDEOGRAPH - ,0xAA4C ,0x72F6 //CJK UNIFIED IDEOGRAPH - ,0xAA4D ,0x72F9 //CJK UNIFIED IDEOGRAPH - ,0xAA4E ,0x72FD //CJK UNIFIED IDEOGRAPH - ,0xAA4F ,0x72FE //CJK UNIFIED IDEOGRAPH - ,0xAA50 ,0x72FF //CJK UNIFIED IDEOGRAPH - ,0xAA51 ,0x7300 //CJK UNIFIED IDEOGRAPH - ,0xAA52 ,0x7302 //CJK UNIFIED IDEOGRAPH - ,0xAA53 ,0x7304 //CJK UNIFIED IDEOGRAPH - ,0xAA54 ,0x7305 //CJK UNIFIED IDEOGRAPH - ,0xAA55 ,0x7306 //CJK UNIFIED IDEOGRAPH - ,0xAA56 ,0x7307 //CJK UNIFIED IDEOGRAPH - ,0xAA57 ,0x7308 //CJK UNIFIED IDEOGRAPH - ,0xAA58 ,0x7309 //CJK UNIFIED IDEOGRAPH - ,0xAA59 ,0x730B //CJK UNIFIED IDEOGRAPH - ,0xAA5A ,0x730C //CJK UNIFIED IDEOGRAPH - ,0xAA5B ,0x730D //CJK UNIFIED IDEOGRAPH - ,0xAA5C ,0x730F //CJK UNIFIED IDEOGRAPH - ,0xAA5D ,0x7310 //CJK UNIFIED IDEOGRAPH - ,0xAA5E ,0x7311 //CJK UNIFIED IDEOGRAPH - ,0xAA5F ,0x7312 //CJK UNIFIED IDEOGRAPH - ,0xAA60 ,0x7314 //CJK UNIFIED IDEOGRAPH - ,0xAA61 ,0x7318 //CJK UNIFIED IDEOGRAPH - ,0xAA62 ,0x7319 //CJK UNIFIED IDEOGRAPH - ,0xAA63 ,0x731A //CJK UNIFIED IDEOGRAPH - ,0xAA64 ,0x731F //CJK UNIFIED IDEOGRAPH - ,0xAA65 ,0x7320 //CJK UNIFIED IDEOGRAPH - ,0xAA66 ,0x7323 //CJK UNIFIED IDEOGRAPH - ,0xAA67 ,0x7324 //CJK UNIFIED IDEOGRAPH - ,0xAA68 ,0x7326 //CJK UNIFIED IDEOGRAPH - ,0xAA69 ,0x7327 //CJK UNIFIED IDEOGRAPH - ,0xAA6A ,0x7328 //CJK UNIFIED IDEOGRAPH - ,0xAA6B ,0x732D //CJK UNIFIED IDEOGRAPH - ,0xAA6C ,0x732F //CJK UNIFIED IDEOGRAPH - ,0xAA6D ,0x7330 //CJK UNIFIED IDEOGRAPH - ,0xAA6E ,0x7332 //CJK UNIFIED IDEOGRAPH - ,0xAA6F ,0x7333 //CJK UNIFIED IDEOGRAPH - ,0xAA70 ,0x7335 //CJK UNIFIED IDEOGRAPH - ,0xAA71 ,0x7336 //CJK UNIFIED IDEOGRAPH - ,0xAA72 ,0x733A //CJK UNIFIED IDEOGRAPH - ,0xAA73 ,0x733B //CJK UNIFIED IDEOGRAPH - ,0xAA74 ,0x733C //CJK UNIFIED IDEOGRAPH - ,0xAA75 ,0x733D //CJK UNIFIED IDEOGRAPH - ,0xAA76 ,0x7340 //CJK UNIFIED IDEOGRAPH - ,0xAA77 ,0x7341 //CJK UNIFIED IDEOGRAPH - ,0xAA78 ,0x7342 //CJK UNIFIED IDEOGRAPH - ,0xAA79 ,0x7343 //CJK UNIFIED IDEOGRAPH - ,0xAA7A ,0x7344 //CJK UNIFIED IDEOGRAPH - ,0xAA7B ,0x7345 //CJK UNIFIED IDEOGRAPH - ,0xAA7C ,0x7346 //CJK UNIFIED IDEOGRAPH - ,0xAA7D ,0x7347 //CJK UNIFIED IDEOGRAPH - ,0xAA7E ,0x7348 //CJK UNIFIED IDEOGRAPH - ,0xAA80 ,0x7349 //CJK UNIFIED IDEOGRAPH - ,0xAA81 ,0x734A //CJK UNIFIED IDEOGRAPH - ,0xAA82 ,0x734B //CJK UNIFIED IDEOGRAPH - ,0xAA83 ,0x734C //CJK UNIFIED IDEOGRAPH - ,0xAA84 ,0x734E //CJK UNIFIED IDEOGRAPH - ,0xAA85 ,0x734F //CJK UNIFIED IDEOGRAPH - ,0xAA86 ,0x7351 //CJK UNIFIED IDEOGRAPH - ,0xAA87 ,0x7353 //CJK UNIFIED IDEOGRAPH - ,0xAA88 ,0x7354 //CJK UNIFIED IDEOGRAPH - ,0xAA89 ,0x7355 //CJK UNIFIED IDEOGRAPH - ,0xAA8A ,0x7356 //CJK UNIFIED IDEOGRAPH - ,0xAA8B ,0x7358 //CJK UNIFIED IDEOGRAPH - ,0xAA8C ,0x7359 //CJK UNIFIED IDEOGRAPH - ,0xAA8D ,0x735A //CJK UNIFIED IDEOGRAPH - ,0xAA8E ,0x735B //CJK UNIFIED IDEOGRAPH - ,0xAA8F ,0x735C //CJK UNIFIED IDEOGRAPH - ,0xAA90 ,0x735D //CJK UNIFIED IDEOGRAPH - ,0xAA91 ,0x735E //CJK UNIFIED IDEOGRAPH - ,0xAA92 ,0x735F //CJK UNIFIED IDEOGRAPH - ,0xAA93 ,0x7361 //CJK UNIFIED IDEOGRAPH - ,0xAA94 ,0x7362 //CJK UNIFIED IDEOGRAPH - ,0xAA95 ,0x7363 //CJK UNIFIED IDEOGRAPH - ,0xAA96 ,0x7364 //CJK UNIFIED IDEOGRAPH - ,0xAA97 ,0x7365 //CJK UNIFIED IDEOGRAPH - ,0xAA98 ,0x7366 //CJK UNIFIED IDEOGRAPH - ,0xAA99 ,0x7367 //CJK UNIFIED IDEOGRAPH - ,0xAA9A ,0x7368 //CJK UNIFIED IDEOGRAPH - ,0xAA9B ,0x7369 //CJK UNIFIED IDEOGRAPH - ,0xAA9C ,0x736A //CJK UNIFIED IDEOGRAPH - ,0xAA9D ,0x736B //CJK UNIFIED IDEOGRAPH - ,0xAA9E ,0x736E //CJK UNIFIED IDEOGRAPH - ,0xAA9F ,0x7370 //CJK UNIFIED IDEOGRAPH - ,0xAAA0 ,0x7371 //CJK UNIFIED IDEOGRAPH - ,0xAB40 ,0x7372 //CJK UNIFIED IDEOGRAPH - ,0xAB41 ,0x7373 //CJK UNIFIED IDEOGRAPH - ,0xAB42 ,0x7374 //CJK UNIFIED IDEOGRAPH - ,0xAB43 ,0x7375 //CJK UNIFIED IDEOGRAPH - ,0xAB44 ,0x7376 //CJK UNIFIED IDEOGRAPH - ,0xAB45 ,0x7377 //CJK UNIFIED IDEOGRAPH - ,0xAB46 ,0x7378 //CJK UNIFIED IDEOGRAPH - ,0xAB47 ,0x7379 //CJK UNIFIED IDEOGRAPH - ,0xAB48 ,0x737A //CJK UNIFIED IDEOGRAPH - ,0xAB49 ,0x737B //CJK UNIFIED IDEOGRAPH - ,0xAB4A ,0x737C //CJK UNIFIED IDEOGRAPH - ,0xAB4B ,0x737D //CJK UNIFIED IDEOGRAPH - ,0xAB4C ,0x737F //CJK UNIFIED IDEOGRAPH - ,0xAB4D ,0x7380 //CJK UNIFIED IDEOGRAPH - ,0xAB4E ,0x7381 //CJK UNIFIED IDEOGRAPH - ,0xAB4F ,0x7382 //CJK UNIFIED IDEOGRAPH - ,0xAB50 ,0x7383 //CJK UNIFIED IDEOGRAPH - ,0xAB51 ,0x7385 //CJK UNIFIED IDEOGRAPH - ,0xAB52 ,0x7386 //CJK UNIFIED IDEOGRAPH - ,0xAB53 ,0x7388 //CJK UNIFIED IDEOGRAPH - ,0xAB54 ,0x738A //CJK UNIFIED IDEOGRAPH - ,0xAB55 ,0x738C //CJK UNIFIED IDEOGRAPH - ,0xAB56 ,0x738D //CJK UNIFIED IDEOGRAPH - ,0xAB57 ,0x738F //CJK UNIFIED IDEOGRAPH - ,0xAB58 ,0x7390 //CJK UNIFIED IDEOGRAPH - ,0xAB59 ,0x7392 //CJK UNIFIED IDEOGRAPH - ,0xAB5A ,0x7393 //CJK UNIFIED IDEOGRAPH - ,0xAB5B ,0x7394 //CJK UNIFIED IDEOGRAPH - ,0xAB5C ,0x7395 //CJK UNIFIED IDEOGRAPH - ,0xAB5D ,0x7397 //CJK UNIFIED IDEOGRAPH - ,0xAB5E ,0x7398 //CJK UNIFIED IDEOGRAPH - ,0xAB5F ,0x7399 //CJK UNIFIED IDEOGRAPH - ,0xAB60 ,0x739A //CJK UNIFIED IDEOGRAPH - ,0xAB61 ,0x739C //CJK UNIFIED IDEOGRAPH - ,0xAB62 ,0x739D //CJK UNIFIED IDEOGRAPH - ,0xAB63 ,0x739E //CJK UNIFIED IDEOGRAPH - ,0xAB64 ,0x73A0 //CJK UNIFIED IDEOGRAPH - ,0xAB65 ,0x73A1 //CJK UNIFIED IDEOGRAPH - ,0xAB66 ,0x73A3 //CJK UNIFIED IDEOGRAPH - ,0xAB67 ,0x73A4 //CJK UNIFIED IDEOGRAPH - ,0xAB68 ,0x73A5 //CJK UNIFIED IDEOGRAPH - ,0xAB69 ,0x73A6 //CJK UNIFIED IDEOGRAPH - ,0xAB6A ,0x73A7 //CJK UNIFIED IDEOGRAPH - ,0xAB6B ,0x73A8 //CJK UNIFIED IDEOGRAPH - ,0xAB6C ,0x73AA //CJK UNIFIED IDEOGRAPH - ,0xAB6D ,0x73AC //CJK UNIFIED IDEOGRAPH - ,0xAB6E ,0x73AD //CJK UNIFIED IDEOGRAPH - ,0xAB6F ,0x73B1 //CJK UNIFIED IDEOGRAPH - ,0xAB70 ,0x73B4 //CJK UNIFIED IDEOGRAPH - ,0xAB71 ,0x73B5 //CJK UNIFIED IDEOGRAPH - ,0xAB72 ,0x73B6 //CJK UNIFIED IDEOGRAPH - ,0xAB73 ,0x73B8 //CJK UNIFIED IDEOGRAPH - ,0xAB74 ,0x73B9 //CJK UNIFIED IDEOGRAPH - ,0xAB75 ,0x73BC //CJK UNIFIED IDEOGRAPH - ,0xAB76 ,0x73BD //CJK UNIFIED IDEOGRAPH - ,0xAB77 ,0x73BE //CJK UNIFIED IDEOGRAPH - ,0xAB78 ,0x73BF //CJK UNIFIED IDEOGRAPH - ,0xAB79 ,0x73C1 //CJK UNIFIED IDEOGRAPH - ,0xAB7A ,0x73C3 //CJK UNIFIED IDEOGRAPH - ,0xAB7B ,0x73C4 //CJK UNIFIED IDEOGRAPH - ,0xAB7C ,0x73C5 //CJK UNIFIED IDEOGRAPH - ,0xAB7D ,0x73C6 //CJK UNIFIED IDEOGRAPH - ,0xAB7E ,0x73C7 //CJK UNIFIED IDEOGRAPH - ,0xAB80 ,0x73CB //CJK UNIFIED IDEOGRAPH - ,0xAB81 ,0x73CC //CJK UNIFIED IDEOGRAPH - ,0xAB82 ,0x73CE //CJK UNIFIED IDEOGRAPH - ,0xAB83 ,0x73D2 //CJK UNIFIED IDEOGRAPH - ,0xAB84 ,0x73D3 //CJK UNIFIED IDEOGRAPH - ,0xAB85 ,0x73D4 //CJK UNIFIED IDEOGRAPH - ,0xAB86 ,0x73D5 //CJK UNIFIED IDEOGRAPH - ,0xAB87 ,0x73D6 //CJK UNIFIED IDEOGRAPH - ,0xAB88 ,0x73D7 //CJK UNIFIED IDEOGRAPH - ,0xAB89 ,0x73D8 //CJK UNIFIED IDEOGRAPH - ,0xAB8A ,0x73DA //CJK UNIFIED IDEOGRAPH - ,0xAB8B ,0x73DB //CJK UNIFIED IDEOGRAPH - ,0xAB8C ,0x73DC //CJK UNIFIED IDEOGRAPH - ,0xAB8D ,0x73DD //CJK UNIFIED IDEOGRAPH - ,0xAB8E ,0x73DF //CJK UNIFIED IDEOGRAPH - ,0xAB8F ,0x73E1 //CJK UNIFIED IDEOGRAPH - ,0xAB90 ,0x73E2 //CJK UNIFIED IDEOGRAPH - ,0xAB91 ,0x73E3 //CJK UNIFIED IDEOGRAPH - ,0xAB92 ,0x73E4 //CJK UNIFIED IDEOGRAPH - ,0xAB93 ,0x73E6 //CJK UNIFIED IDEOGRAPH - ,0xAB94 ,0x73E8 //CJK UNIFIED IDEOGRAPH - ,0xAB95 ,0x73EA //CJK UNIFIED IDEOGRAPH - ,0xAB96 ,0x73EB //CJK UNIFIED IDEOGRAPH - ,0xAB97 ,0x73EC //CJK UNIFIED IDEOGRAPH - ,0xAB98 ,0x73EE //CJK UNIFIED IDEOGRAPH - ,0xAB99 ,0x73EF //CJK UNIFIED IDEOGRAPH - ,0xAB9A ,0x73F0 //CJK UNIFIED IDEOGRAPH - ,0xAB9B ,0x73F1 //CJK UNIFIED IDEOGRAPH - ,0xAB9C ,0x73F3 //CJK UNIFIED IDEOGRAPH - ,0xAB9D ,0x73F4 //CJK UNIFIED IDEOGRAPH - ,0xAB9E ,0x73F5 //CJK UNIFIED IDEOGRAPH - ,0xAB9F ,0x73F6 //CJK UNIFIED IDEOGRAPH - ,0xABA0 ,0x73F7 //CJK UNIFIED IDEOGRAPH - ,0xAC40 ,0x73F8 //CJK UNIFIED IDEOGRAPH - ,0xAC41 ,0x73F9 //CJK UNIFIED IDEOGRAPH - ,0xAC42 ,0x73FA //CJK UNIFIED IDEOGRAPH - ,0xAC43 ,0x73FB //CJK UNIFIED IDEOGRAPH - ,0xAC44 ,0x73FC //CJK UNIFIED IDEOGRAPH - ,0xAC45 ,0x73FD //CJK UNIFIED IDEOGRAPH - ,0xAC46 ,0x73FE //CJK UNIFIED IDEOGRAPH - ,0xAC47 ,0x73FF //CJK UNIFIED IDEOGRAPH - ,0xAC48 ,0x7400 //CJK UNIFIED IDEOGRAPH - ,0xAC49 ,0x7401 //CJK UNIFIED IDEOGRAPH - ,0xAC4A ,0x7402 //CJK UNIFIED IDEOGRAPH - ,0xAC4B ,0x7404 //CJK UNIFIED IDEOGRAPH - ,0xAC4C ,0x7407 //CJK UNIFIED IDEOGRAPH - ,0xAC4D ,0x7408 //CJK UNIFIED IDEOGRAPH - ,0xAC4E ,0x740B //CJK UNIFIED IDEOGRAPH - ,0xAC4F ,0x740C //CJK UNIFIED IDEOGRAPH - ,0xAC50 ,0x740D //CJK UNIFIED IDEOGRAPH - ,0xAC51 ,0x740E //CJK UNIFIED IDEOGRAPH - ,0xAC52 ,0x7411 //CJK UNIFIED IDEOGRAPH - ,0xAC53 ,0x7412 //CJK UNIFIED IDEOGRAPH - ,0xAC54 ,0x7413 //CJK UNIFIED IDEOGRAPH - ,0xAC55 ,0x7414 //CJK UNIFIED IDEOGRAPH - ,0xAC56 ,0x7415 //CJK UNIFIED IDEOGRAPH - ,0xAC57 ,0x7416 //CJK UNIFIED IDEOGRAPH - ,0xAC58 ,0x7417 //CJK UNIFIED IDEOGRAPH - ,0xAC59 ,0x7418 //CJK UNIFIED IDEOGRAPH - ,0xAC5A ,0x7419 //CJK UNIFIED IDEOGRAPH - ,0xAC5B ,0x741C //CJK UNIFIED IDEOGRAPH - ,0xAC5C ,0x741D //CJK UNIFIED IDEOGRAPH - ,0xAC5D ,0x741E //CJK UNIFIED IDEOGRAPH - ,0xAC5E ,0x741F //CJK UNIFIED IDEOGRAPH - ,0xAC5F ,0x7420 //CJK UNIFIED IDEOGRAPH - ,0xAC60 ,0x7421 //CJK UNIFIED IDEOGRAPH - ,0xAC61 ,0x7423 //CJK UNIFIED IDEOGRAPH - ,0xAC62 ,0x7424 //CJK UNIFIED IDEOGRAPH - ,0xAC63 ,0x7427 //CJK UNIFIED IDEOGRAPH - ,0xAC64 ,0x7429 //CJK UNIFIED IDEOGRAPH - ,0xAC65 ,0x742B //CJK UNIFIED IDEOGRAPH - ,0xAC66 ,0x742D //CJK UNIFIED IDEOGRAPH - ,0xAC67 ,0x742F //CJK UNIFIED IDEOGRAPH - ,0xAC68 ,0x7431 //CJK UNIFIED IDEOGRAPH - ,0xAC69 ,0x7432 //CJK UNIFIED IDEOGRAPH - ,0xAC6A ,0x7437 //CJK UNIFIED IDEOGRAPH - ,0xAC6B ,0x7438 //CJK UNIFIED IDEOGRAPH - ,0xAC6C ,0x7439 //CJK UNIFIED IDEOGRAPH - ,0xAC6D ,0x743A //CJK UNIFIED IDEOGRAPH - ,0xAC6E ,0x743B //CJK UNIFIED IDEOGRAPH - ,0xAC6F ,0x743D //CJK UNIFIED IDEOGRAPH - ,0xAC70 ,0x743E //CJK UNIFIED IDEOGRAPH - ,0xAC71 ,0x743F //CJK UNIFIED IDEOGRAPH - ,0xAC72 ,0x7440 //CJK UNIFIED IDEOGRAPH - ,0xAC73 ,0x7442 //CJK UNIFIED IDEOGRAPH - ,0xAC74 ,0x7443 //CJK UNIFIED IDEOGRAPH - ,0xAC75 ,0x7444 //CJK UNIFIED IDEOGRAPH - ,0xAC76 ,0x7445 //CJK UNIFIED IDEOGRAPH - ,0xAC77 ,0x7446 //CJK UNIFIED IDEOGRAPH - ,0xAC78 ,0x7447 //CJK UNIFIED IDEOGRAPH - ,0xAC79 ,0x7448 //CJK UNIFIED IDEOGRAPH - ,0xAC7A ,0x7449 //CJK UNIFIED IDEOGRAPH - ,0xAC7B ,0x744A //CJK UNIFIED IDEOGRAPH - ,0xAC7C ,0x744B //CJK UNIFIED IDEOGRAPH - ,0xAC7D ,0x744C //CJK UNIFIED IDEOGRAPH - ,0xAC7E ,0x744D //CJK UNIFIED IDEOGRAPH - ,0xAC80 ,0x744E //CJK UNIFIED IDEOGRAPH - ,0xAC81 ,0x744F //CJK UNIFIED IDEOGRAPH - ,0xAC82 ,0x7450 //CJK UNIFIED IDEOGRAPH - ,0xAC83 ,0x7451 //CJK UNIFIED IDEOGRAPH - ,0xAC84 ,0x7452 //CJK UNIFIED IDEOGRAPH - ,0xAC85 ,0x7453 //CJK UNIFIED IDEOGRAPH - ,0xAC86 ,0x7454 //CJK UNIFIED IDEOGRAPH - ,0xAC87 ,0x7456 //CJK UNIFIED IDEOGRAPH - ,0xAC88 ,0x7458 //CJK UNIFIED IDEOGRAPH - ,0xAC89 ,0x745D //CJK UNIFIED IDEOGRAPH - ,0xAC8A ,0x7460 //CJK UNIFIED IDEOGRAPH - ,0xAC8B ,0x7461 //CJK UNIFIED IDEOGRAPH - ,0xAC8C ,0x7462 //CJK UNIFIED IDEOGRAPH - ,0xAC8D ,0x7463 //CJK UNIFIED IDEOGRAPH - ,0xAC8E ,0x7464 //CJK UNIFIED IDEOGRAPH - ,0xAC8F ,0x7465 //CJK UNIFIED IDEOGRAPH - ,0xAC90 ,0x7466 //CJK UNIFIED IDEOGRAPH - ,0xAC91 ,0x7467 //CJK UNIFIED IDEOGRAPH - ,0xAC92 ,0x7468 //CJK UNIFIED IDEOGRAPH - ,0xAC93 ,0x7469 //CJK UNIFIED IDEOGRAPH - ,0xAC94 ,0x746A //CJK UNIFIED IDEOGRAPH - ,0xAC95 ,0x746B //CJK UNIFIED IDEOGRAPH - ,0xAC96 ,0x746C //CJK UNIFIED IDEOGRAPH - ,0xAC97 ,0x746E //CJK UNIFIED IDEOGRAPH - ,0xAC98 ,0x746F //CJK UNIFIED IDEOGRAPH - ,0xAC99 ,0x7471 //CJK UNIFIED IDEOGRAPH - ,0xAC9A ,0x7472 //CJK UNIFIED IDEOGRAPH - ,0xAC9B ,0x7473 //CJK UNIFIED IDEOGRAPH - ,0xAC9C ,0x7474 //CJK UNIFIED IDEOGRAPH - ,0xAC9D ,0x7475 //CJK UNIFIED IDEOGRAPH - ,0xAC9E ,0x7478 //CJK UNIFIED IDEOGRAPH - ,0xAC9F ,0x7479 //CJK UNIFIED IDEOGRAPH - ,0xACA0 ,0x747A //CJK UNIFIED IDEOGRAPH - ,0xAD40 ,0x747B //CJK UNIFIED IDEOGRAPH - ,0xAD41 ,0x747C //CJK UNIFIED IDEOGRAPH - ,0xAD42 ,0x747D //CJK UNIFIED IDEOGRAPH - ,0xAD43 ,0x747F //CJK UNIFIED IDEOGRAPH - ,0xAD44 ,0x7482 //CJK UNIFIED IDEOGRAPH - ,0xAD45 ,0x7484 //CJK UNIFIED IDEOGRAPH - ,0xAD46 ,0x7485 //CJK UNIFIED IDEOGRAPH - ,0xAD47 ,0x7486 //CJK UNIFIED IDEOGRAPH - ,0xAD48 ,0x7488 //CJK UNIFIED IDEOGRAPH - ,0xAD49 ,0x7489 //CJK UNIFIED IDEOGRAPH - ,0xAD4A ,0x748A //CJK UNIFIED IDEOGRAPH - ,0xAD4B ,0x748C //CJK UNIFIED IDEOGRAPH - ,0xAD4C ,0x748D //CJK UNIFIED IDEOGRAPH - ,0xAD4D ,0x748F //CJK UNIFIED IDEOGRAPH - ,0xAD4E ,0x7491 //CJK UNIFIED IDEOGRAPH - ,0xAD4F ,0x7492 //CJK UNIFIED IDEOGRAPH - ,0xAD50 ,0x7493 //CJK UNIFIED IDEOGRAPH - ,0xAD51 ,0x7494 //CJK UNIFIED IDEOGRAPH - ,0xAD52 ,0x7495 //CJK UNIFIED IDEOGRAPH - ,0xAD53 ,0x7496 //CJK UNIFIED IDEOGRAPH - ,0xAD54 ,0x7497 //CJK UNIFIED IDEOGRAPH - ,0xAD55 ,0x7498 //CJK UNIFIED IDEOGRAPH - ,0xAD56 ,0x7499 //CJK UNIFIED IDEOGRAPH - ,0xAD57 ,0x749A //CJK UNIFIED IDEOGRAPH - ,0xAD58 ,0x749B //CJK UNIFIED IDEOGRAPH - ,0xAD59 ,0x749D //CJK UNIFIED IDEOGRAPH - ,0xAD5A ,0x749F //CJK UNIFIED IDEOGRAPH - ,0xAD5B ,0x74A0 //CJK UNIFIED IDEOGRAPH - ,0xAD5C ,0x74A1 //CJK UNIFIED IDEOGRAPH - ,0xAD5D ,0x74A2 //CJK UNIFIED IDEOGRAPH - ,0xAD5E ,0x74A3 //CJK UNIFIED IDEOGRAPH - ,0xAD5F ,0x74A4 //CJK UNIFIED IDEOGRAPH - ,0xAD60 ,0x74A5 //CJK UNIFIED IDEOGRAPH - ,0xAD61 ,0x74A6 //CJK UNIFIED IDEOGRAPH - ,0xAD62 ,0x74AA //CJK UNIFIED IDEOGRAPH - ,0xAD63 ,0x74AB //CJK UNIFIED IDEOGRAPH - ,0xAD64 ,0x74AC //CJK UNIFIED IDEOGRAPH - ,0xAD65 ,0x74AD //CJK UNIFIED IDEOGRAPH - ,0xAD66 ,0x74AE //CJK UNIFIED IDEOGRAPH - ,0xAD67 ,0x74AF //CJK UNIFIED IDEOGRAPH - ,0xAD68 ,0x74B0 //CJK UNIFIED IDEOGRAPH - ,0xAD69 ,0x74B1 //CJK UNIFIED IDEOGRAPH - ,0xAD6A ,0x74B2 //CJK UNIFIED IDEOGRAPH - ,0xAD6B ,0x74B3 //CJK UNIFIED IDEOGRAPH - ,0xAD6C ,0x74B4 //CJK UNIFIED IDEOGRAPH - ,0xAD6D ,0x74B5 //CJK UNIFIED IDEOGRAPH - ,0xAD6E ,0x74B6 //CJK UNIFIED IDEOGRAPH - ,0xAD6F ,0x74B7 //CJK UNIFIED IDEOGRAPH - ,0xAD70 ,0x74B8 //CJK UNIFIED IDEOGRAPH - ,0xAD71 ,0x74B9 //CJK UNIFIED IDEOGRAPH - ,0xAD72 ,0x74BB //CJK UNIFIED IDEOGRAPH - ,0xAD73 ,0x74BC //CJK UNIFIED IDEOGRAPH - ,0xAD74 ,0x74BD //CJK UNIFIED IDEOGRAPH - ,0xAD75 ,0x74BE //CJK UNIFIED IDEOGRAPH - ,0xAD76 ,0x74BF //CJK UNIFIED IDEOGRAPH - ,0xAD77 ,0x74C0 //CJK UNIFIED IDEOGRAPH - ,0xAD78 ,0x74C1 //CJK UNIFIED IDEOGRAPH - ,0xAD79 ,0x74C2 //CJK UNIFIED IDEOGRAPH - ,0xAD7A ,0x74C3 //CJK UNIFIED IDEOGRAPH - ,0xAD7B ,0x74C4 //CJK UNIFIED IDEOGRAPH - ,0xAD7C ,0x74C5 //CJK UNIFIED IDEOGRAPH - ,0xAD7D ,0x74C6 //CJK UNIFIED IDEOGRAPH - ,0xAD7E ,0x74C7 //CJK UNIFIED IDEOGRAPH - ,0xAD80 ,0x74C8 //CJK UNIFIED IDEOGRAPH - ,0xAD81 ,0x74C9 //CJK UNIFIED IDEOGRAPH - ,0xAD82 ,0x74CA //CJK UNIFIED IDEOGRAPH - ,0xAD83 ,0x74CB //CJK UNIFIED IDEOGRAPH - ,0xAD84 ,0x74CC //CJK UNIFIED IDEOGRAPH - ,0xAD85 ,0x74CD //CJK UNIFIED IDEOGRAPH - ,0xAD86 ,0x74CE //CJK UNIFIED IDEOGRAPH - ,0xAD87 ,0x74CF //CJK UNIFIED IDEOGRAPH - ,0xAD88 ,0x74D0 //CJK UNIFIED IDEOGRAPH - ,0xAD89 ,0x74D1 //CJK UNIFIED IDEOGRAPH - ,0xAD8A ,0x74D3 //CJK UNIFIED IDEOGRAPH - ,0xAD8B ,0x74D4 //CJK UNIFIED IDEOGRAPH - ,0xAD8C ,0x74D5 //CJK UNIFIED IDEOGRAPH - ,0xAD8D ,0x74D6 //CJK UNIFIED IDEOGRAPH - ,0xAD8E ,0x74D7 //CJK UNIFIED IDEOGRAPH - ,0xAD8F ,0x74D8 //CJK UNIFIED IDEOGRAPH - ,0xAD90 ,0x74D9 //CJK UNIFIED IDEOGRAPH - ,0xAD91 ,0x74DA //CJK UNIFIED IDEOGRAPH - ,0xAD92 ,0x74DB //CJK UNIFIED IDEOGRAPH - ,0xAD93 ,0x74DD //CJK UNIFIED IDEOGRAPH - ,0xAD94 ,0x74DF //CJK UNIFIED IDEOGRAPH - ,0xAD95 ,0x74E1 //CJK UNIFIED IDEOGRAPH - ,0xAD96 ,0x74E5 //CJK UNIFIED IDEOGRAPH - ,0xAD97 ,0x74E7 //CJK UNIFIED IDEOGRAPH - ,0xAD98 ,0x74E8 //CJK UNIFIED IDEOGRAPH - ,0xAD99 ,0x74E9 //CJK UNIFIED IDEOGRAPH - ,0xAD9A ,0x74EA //CJK UNIFIED IDEOGRAPH - ,0xAD9B ,0x74EB //CJK UNIFIED IDEOGRAPH - ,0xAD9C ,0x74EC //CJK UNIFIED IDEOGRAPH - ,0xAD9D ,0x74ED //CJK UNIFIED IDEOGRAPH - ,0xAD9E ,0x74F0 //CJK UNIFIED IDEOGRAPH - ,0xAD9F ,0x74F1 //CJK UNIFIED IDEOGRAPH - ,0xADA0 ,0x74F2 //CJK UNIFIED IDEOGRAPH - ,0xAE40 ,0x74F3 //CJK UNIFIED IDEOGRAPH - ,0xAE41 ,0x74F5 //CJK UNIFIED IDEOGRAPH - ,0xAE42 ,0x74F8 //CJK UNIFIED IDEOGRAPH - ,0xAE43 ,0x74F9 //CJK UNIFIED IDEOGRAPH - ,0xAE44 ,0x74FA //CJK UNIFIED IDEOGRAPH - ,0xAE45 ,0x74FB //CJK UNIFIED IDEOGRAPH - ,0xAE46 ,0x74FC //CJK UNIFIED IDEOGRAPH - ,0xAE47 ,0x74FD //CJK UNIFIED IDEOGRAPH - ,0xAE48 ,0x74FE //CJK UNIFIED IDEOGRAPH - ,0xAE49 ,0x7500 //CJK UNIFIED IDEOGRAPH - ,0xAE4A ,0x7501 //CJK UNIFIED IDEOGRAPH - ,0xAE4B ,0x7502 //CJK UNIFIED IDEOGRAPH - ,0xAE4C ,0x7503 //CJK UNIFIED IDEOGRAPH - ,0xAE4D ,0x7505 //CJK UNIFIED IDEOGRAPH - ,0xAE4E ,0x7506 //CJK UNIFIED IDEOGRAPH - ,0xAE4F ,0x7507 //CJK UNIFIED IDEOGRAPH - ,0xAE50 ,0x7508 //CJK UNIFIED IDEOGRAPH - ,0xAE51 ,0x7509 //CJK UNIFIED IDEOGRAPH - ,0xAE52 ,0x750A //CJK UNIFIED IDEOGRAPH - ,0xAE53 ,0x750B //CJK UNIFIED IDEOGRAPH - ,0xAE54 ,0x750C //CJK UNIFIED IDEOGRAPH - ,0xAE55 ,0x750E //CJK UNIFIED IDEOGRAPH - ,0xAE56 ,0x7510 //CJK UNIFIED IDEOGRAPH - ,0xAE57 ,0x7512 //CJK UNIFIED IDEOGRAPH - ,0xAE58 ,0x7514 //CJK UNIFIED IDEOGRAPH - ,0xAE59 ,0x7515 //CJK UNIFIED IDEOGRAPH - ,0xAE5A ,0x7516 //CJK UNIFIED IDEOGRAPH - ,0xAE5B ,0x7517 //CJK UNIFIED IDEOGRAPH - ,0xAE5C ,0x751B //CJK UNIFIED IDEOGRAPH - ,0xAE5D ,0x751D //CJK UNIFIED IDEOGRAPH - ,0xAE5E ,0x751E //CJK UNIFIED IDEOGRAPH - ,0xAE5F ,0x7520 //CJK UNIFIED IDEOGRAPH - ,0xAE60 ,0x7521 //CJK UNIFIED IDEOGRAPH - ,0xAE61 ,0x7522 //CJK UNIFIED IDEOGRAPH - ,0xAE62 ,0x7523 //CJK UNIFIED IDEOGRAPH - ,0xAE63 ,0x7524 //CJK UNIFIED IDEOGRAPH - ,0xAE64 ,0x7526 //CJK UNIFIED IDEOGRAPH - ,0xAE65 ,0x7527 //CJK UNIFIED IDEOGRAPH - ,0xAE66 ,0x752A //CJK UNIFIED IDEOGRAPH - ,0xAE67 ,0x752E //CJK UNIFIED IDEOGRAPH - ,0xAE68 ,0x7534 //CJK UNIFIED IDEOGRAPH - ,0xAE69 ,0x7536 //CJK UNIFIED IDEOGRAPH - ,0xAE6A ,0x7539 //CJK UNIFIED IDEOGRAPH - ,0xAE6B ,0x753C //CJK UNIFIED IDEOGRAPH - ,0xAE6C ,0x753D //CJK UNIFIED IDEOGRAPH - ,0xAE6D ,0x753F //CJK UNIFIED IDEOGRAPH - ,0xAE6E ,0x7541 //CJK UNIFIED IDEOGRAPH - ,0xAE6F ,0x7542 //CJK UNIFIED IDEOGRAPH - ,0xAE70 ,0x7543 //CJK UNIFIED IDEOGRAPH - ,0xAE71 ,0x7544 //CJK UNIFIED IDEOGRAPH - ,0xAE72 ,0x7546 //CJK UNIFIED IDEOGRAPH - ,0xAE73 ,0x7547 //CJK UNIFIED IDEOGRAPH - ,0xAE74 ,0x7549 //CJK UNIFIED IDEOGRAPH - ,0xAE75 ,0x754A //CJK UNIFIED IDEOGRAPH - ,0xAE76 ,0x754D //CJK UNIFIED IDEOGRAPH - ,0xAE77 ,0x7550 //CJK UNIFIED IDEOGRAPH - ,0xAE78 ,0x7551 //CJK UNIFIED IDEOGRAPH - ,0xAE79 ,0x7552 //CJK UNIFIED IDEOGRAPH - ,0xAE7A ,0x7553 //CJK UNIFIED IDEOGRAPH - ,0xAE7B ,0x7555 //CJK UNIFIED IDEOGRAPH - ,0xAE7C ,0x7556 //CJK UNIFIED IDEOGRAPH - ,0xAE7D ,0x7557 //CJK UNIFIED IDEOGRAPH - ,0xAE7E ,0x7558 //CJK UNIFIED IDEOGRAPH - ,0xAE80 ,0x755D //CJK UNIFIED IDEOGRAPH - ,0xAE81 ,0x755E //CJK UNIFIED IDEOGRAPH - ,0xAE82 ,0x755F //CJK UNIFIED IDEOGRAPH - ,0xAE83 ,0x7560 //CJK UNIFIED IDEOGRAPH - ,0xAE84 ,0x7561 //CJK UNIFIED IDEOGRAPH - ,0xAE85 ,0x7562 //CJK UNIFIED IDEOGRAPH - ,0xAE86 ,0x7563 //CJK UNIFIED IDEOGRAPH - ,0xAE87 ,0x7564 //CJK UNIFIED IDEOGRAPH - ,0xAE88 ,0x7567 //CJK UNIFIED IDEOGRAPH - ,0xAE89 ,0x7568 //CJK UNIFIED IDEOGRAPH - ,0xAE8A ,0x7569 //CJK UNIFIED IDEOGRAPH - ,0xAE8B ,0x756B //CJK UNIFIED IDEOGRAPH - ,0xAE8C ,0x756C //CJK UNIFIED IDEOGRAPH - ,0xAE8D ,0x756D //CJK UNIFIED IDEOGRAPH - ,0xAE8E ,0x756E //CJK UNIFIED IDEOGRAPH - ,0xAE8F ,0x756F //CJK UNIFIED IDEOGRAPH - ,0xAE90 ,0x7570 //CJK UNIFIED IDEOGRAPH - ,0xAE91 ,0x7571 //CJK UNIFIED IDEOGRAPH - ,0xAE92 ,0x7573 //CJK UNIFIED IDEOGRAPH - ,0xAE93 ,0x7575 //CJK UNIFIED IDEOGRAPH - ,0xAE94 ,0x7576 //CJK UNIFIED IDEOGRAPH - ,0xAE95 ,0x7577 //CJK UNIFIED IDEOGRAPH - ,0xAE96 ,0x757A //CJK UNIFIED IDEOGRAPH - ,0xAE97 ,0x757B //CJK UNIFIED IDEOGRAPH - ,0xAE98 ,0x757C //CJK UNIFIED IDEOGRAPH - ,0xAE99 ,0x757D //CJK UNIFIED IDEOGRAPH - ,0xAE9A ,0x757E //CJK UNIFIED IDEOGRAPH - ,0xAE9B ,0x7580 //CJK UNIFIED IDEOGRAPH - ,0xAE9C ,0x7581 //CJK UNIFIED IDEOGRAPH - ,0xAE9D ,0x7582 //CJK UNIFIED IDEOGRAPH - ,0xAE9E ,0x7584 //CJK UNIFIED IDEOGRAPH - ,0xAE9F ,0x7585 //CJK UNIFIED IDEOGRAPH - ,0xAEA0 ,0x7587 //CJK UNIFIED IDEOGRAPH - ,0xAF40 ,0x7588 //CJK UNIFIED IDEOGRAPH - ,0xAF41 ,0x7589 //CJK UNIFIED IDEOGRAPH - ,0xAF42 ,0x758A //CJK UNIFIED IDEOGRAPH - ,0xAF43 ,0x758C //CJK UNIFIED IDEOGRAPH - ,0xAF44 ,0x758D //CJK UNIFIED IDEOGRAPH - ,0xAF45 ,0x758E //CJK UNIFIED IDEOGRAPH - ,0xAF46 ,0x7590 //CJK UNIFIED IDEOGRAPH - ,0xAF47 ,0x7593 //CJK UNIFIED IDEOGRAPH - ,0xAF48 ,0x7595 //CJK UNIFIED IDEOGRAPH - ,0xAF49 ,0x7598 //CJK UNIFIED IDEOGRAPH - ,0xAF4A ,0x759B //CJK UNIFIED IDEOGRAPH - ,0xAF4B ,0x759C //CJK UNIFIED IDEOGRAPH - ,0xAF4C ,0x759E //CJK UNIFIED IDEOGRAPH - ,0xAF4D ,0x75A2 //CJK UNIFIED IDEOGRAPH - ,0xAF4E ,0x75A6 //CJK UNIFIED IDEOGRAPH - ,0xAF4F ,0x75A7 //CJK UNIFIED IDEOGRAPH - ,0xAF50 ,0x75A8 //CJK UNIFIED IDEOGRAPH - ,0xAF51 ,0x75A9 //CJK UNIFIED IDEOGRAPH - ,0xAF52 ,0x75AA //CJK UNIFIED IDEOGRAPH - ,0xAF53 ,0x75AD //CJK UNIFIED IDEOGRAPH - ,0xAF54 ,0x75B6 //CJK UNIFIED IDEOGRAPH - ,0xAF55 ,0x75B7 //CJK UNIFIED IDEOGRAPH - ,0xAF56 ,0x75BA //CJK UNIFIED IDEOGRAPH - ,0xAF57 ,0x75BB //CJK UNIFIED IDEOGRAPH - ,0xAF58 ,0x75BF //CJK UNIFIED IDEOGRAPH - ,0xAF59 ,0x75C0 //CJK UNIFIED IDEOGRAPH - ,0xAF5A ,0x75C1 //CJK UNIFIED IDEOGRAPH - ,0xAF5B ,0x75C6 //CJK UNIFIED IDEOGRAPH - ,0xAF5C ,0x75CB //CJK UNIFIED IDEOGRAPH - ,0xAF5D ,0x75CC //CJK UNIFIED IDEOGRAPH - ,0xAF5E ,0x75CE //CJK UNIFIED IDEOGRAPH - ,0xAF5F ,0x75CF //CJK UNIFIED IDEOGRAPH - ,0xAF60 ,0x75D0 //CJK UNIFIED IDEOGRAPH - ,0xAF61 ,0x75D1 //CJK UNIFIED IDEOGRAPH - ,0xAF62 ,0x75D3 //CJK UNIFIED IDEOGRAPH - ,0xAF63 ,0x75D7 //CJK UNIFIED IDEOGRAPH - ,0xAF64 ,0x75D9 //CJK UNIFIED IDEOGRAPH - ,0xAF65 ,0x75DA //CJK UNIFIED IDEOGRAPH - ,0xAF66 ,0x75DC //CJK UNIFIED IDEOGRAPH - ,0xAF67 ,0x75DD //CJK UNIFIED IDEOGRAPH - ,0xAF68 ,0x75DF //CJK UNIFIED IDEOGRAPH - ,0xAF69 ,0x75E0 //CJK UNIFIED IDEOGRAPH - ,0xAF6A ,0x75E1 //CJK UNIFIED IDEOGRAPH - ,0xAF6B ,0x75E5 //CJK UNIFIED IDEOGRAPH - ,0xAF6C ,0x75E9 //CJK UNIFIED IDEOGRAPH - ,0xAF6D ,0x75EC //CJK UNIFIED IDEOGRAPH - ,0xAF6E ,0x75ED //CJK UNIFIED IDEOGRAPH - ,0xAF6F ,0x75EE //CJK UNIFIED IDEOGRAPH - ,0xAF70 ,0x75EF //CJK UNIFIED IDEOGRAPH - ,0xAF71 ,0x75F2 //CJK UNIFIED IDEOGRAPH - ,0xAF72 ,0x75F3 //CJK UNIFIED IDEOGRAPH - ,0xAF73 ,0x75F5 //CJK UNIFIED IDEOGRAPH - ,0xAF74 ,0x75F6 //CJK UNIFIED IDEOGRAPH - ,0xAF75 ,0x75F7 //CJK UNIFIED IDEOGRAPH - ,0xAF76 ,0x75F8 //CJK UNIFIED IDEOGRAPH - ,0xAF77 ,0x75FA //CJK UNIFIED IDEOGRAPH - ,0xAF78 ,0x75FB //CJK UNIFIED IDEOGRAPH - ,0xAF79 ,0x75FD //CJK UNIFIED IDEOGRAPH - ,0xAF7A ,0x75FE //CJK UNIFIED IDEOGRAPH - ,0xAF7B ,0x7602 //CJK UNIFIED IDEOGRAPH - ,0xAF7C ,0x7604 //CJK UNIFIED IDEOGRAPH - ,0xAF7D ,0x7606 //CJK UNIFIED IDEOGRAPH - ,0xAF7E ,0x7607 //CJK UNIFIED IDEOGRAPH - ,0xAF80 ,0x7608 //CJK UNIFIED IDEOGRAPH - ,0xAF81 ,0x7609 //CJK UNIFIED IDEOGRAPH - ,0xAF82 ,0x760B //CJK UNIFIED IDEOGRAPH - ,0xAF83 ,0x760D //CJK UNIFIED IDEOGRAPH - ,0xAF84 ,0x760E //CJK UNIFIED IDEOGRAPH - ,0xAF85 ,0x760F //CJK UNIFIED IDEOGRAPH - ,0xAF86 ,0x7611 //CJK UNIFIED IDEOGRAPH - ,0xAF87 ,0x7612 //CJK UNIFIED IDEOGRAPH - ,0xAF88 ,0x7613 //CJK UNIFIED IDEOGRAPH - ,0xAF89 ,0x7614 //CJK UNIFIED IDEOGRAPH - ,0xAF8A ,0x7616 //CJK UNIFIED IDEOGRAPH - ,0xAF8B ,0x761A //CJK UNIFIED IDEOGRAPH - ,0xAF8C ,0x761C //CJK UNIFIED IDEOGRAPH - ,0xAF8D ,0x761D //CJK UNIFIED IDEOGRAPH - ,0xAF8E ,0x761E //CJK UNIFIED IDEOGRAPH - ,0xAF8F ,0x7621 //CJK UNIFIED IDEOGRAPH - ,0xAF90 ,0x7623 //CJK UNIFIED IDEOGRAPH - ,0xAF91 ,0x7627 //CJK UNIFIED IDEOGRAPH - ,0xAF92 ,0x7628 //CJK UNIFIED IDEOGRAPH - ,0xAF93 ,0x762C //CJK UNIFIED IDEOGRAPH - ,0xAF94 ,0x762E //CJK UNIFIED IDEOGRAPH - ,0xAF95 ,0x762F //CJK UNIFIED IDEOGRAPH - ,0xAF96 ,0x7631 //CJK UNIFIED IDEOGRAPH - ,0xAF97 ,0x7632 //CJK UNIFIED IDEOGRAPH - ,0xAF98 ,0x7636 //CJK UNIFIED IDEOGRAPH - ,0xAF99 ,0x7637 //CJK UNIFIED IDEOGRAPH - ,0xAF9A ,0x7639 //CJK UNIFIED IDEOGRAPH - ,0xAF9B ,0x763A //CJK UNIFIED IDEOGRAPH - ,0xAF9C ,0x763B //CJK UNIFIED IDEOGRAPH - ,0xAF9D ,0x763D //CJK UNIFIED IDEOGRAPH - ,0xAF9E ,0x7641 //CJK UNIFIED IDEOGRAPH - ,0xAF9F ,0x7642 //CJK UNIFIED IDEOGRAPH - ,0xAFA0 ,0x7644 //CJK UNIFIED IDEOGRAPH - ,0xB040 ,0x7645 //CJK UNIFIED IDEOGRAPH - ,0xB041 ,0x7646 //CJK UNIFIED IDEOGRAPH - ,0xB042 ,0x7647 //CJK UNIFIED IDEOGRAPH - ,0xB043 ,0x7648 //CJK UNIFIED IDEOGRAPH - ,0xB044 ,0x7649 //CJK UNIFIED IDEOGRAPH - ,0xB045 ,0x764A //CJK UNIFIED IDEOGRAPH - ,0xB046 ,0x764B //CJK UNIFIED IDEOGRAPH - ,0xB047 ,0x764E //CJK UNIFIED IDEOGRAPH - ,0xB048 ,0x764F //CJK UNIFIED IDEOGRAPH - ,0xB049 ,0x7650 //CJK UNIFIED IDEOGRAPH - ,0xB04A ,0x7651 //CJK UNIFIED IDEOGRAPH - ,0xB04B ,0x7652 //CJK UNIFIED IDEOGRAPH - ,0xB04C ,0x7653 //CJK UNIFIED IDEOGRAPH - ,0xB04D ,0x7655 //CJK UNIFIED IDEOGRAPH - ,0xB04E ,0x7657 //CJK UNIFIED IDEOGRAPH - ,0xB04F ,0x7658 //CJK UNIFIED IDEOGRAPH - ,0xB050 ,0x7659 //CJK UNIFIED IDEOGRAPH - ,0xB051 ,0x765A //CJK UNIFIED IDEOGRAPH - ,0xB052 ,0x765B //CJK UNIFIED IDEOGRAPH - ,0xB053 ,0x765D //CJK UNIFIED IDEOGRAPH - ,0xB054 ,0x765F //CJK UNIFIED IDEOGRAPH - ,0xB055 ,0x7660 //CJK UNIFIED IDEOGRAPH - ,0xB056 ,0x7661 //CJK UNIFIED IDEOGRAPH - ,0xB057 ,0x7662 //CJK UNIFIED IDEOGRAPH - ,0xB058 ,0x7664 //CJK UNIFIED IDEOGRAPH - ,0xB059 ,0x7665 //CJK UNIFIED IDEOGRAPH - ,0xB05A ,0x7666 //CJK UNIFIED IDEOGRAPH - ,0xB05B ,0x7667 //CJK UNIFIED IDEOGRAPH - ,0xB05C ,0x7668 //CJK UNIFIED IDEOGRAPH - ,0xB05D ,0x7669 //CJK UNIFIED IDEOGRAPH - ,0xB05E ,0x766A //CJK UNIFIED IDEOGRAPH - ,0xB05F ,0x766C //CJK UNIFIED IDEOGRAPH - ,0xB060 ,0x766D //CJK UNIFIED IDEOGRAPH - ,0xB061 ,0x766E //CJK UNIFIED IDEOGRAPH - ,0xB062 ,0x7670 //CJK UNIFIED IDEOGRAPH - ,0xB063 ,0x7671 //CJK UNIFIED IDEOGRAPH - ,0xB064 ,0x7672 //CJK UNIFIED IDEOGRAPH - ,0xB065 ,0x7673 //CJK UNIFIED IDEOGRAPH - ,0xB066 ,0x7674 //CJK UNIFIED IDEOGRAPH - ,0xB067 ,0x7675 //CJK UNIFIED IDEOGRAPH - ,0xB068 ,0x7676 //CJK UNIFIED IDEOGRAPH - ,0xB069 ,0x7677 //CJK UNIFIED IDEOGRAPH - ,0xB06A ,0x7679 //CJK UNIFIED IDEOGRAPH - ,0xB06B ,0x767A //CJK UNIFIED IDEOGRAPH - ,0xB06C ,0x767C //CJK UNIFIED IDEOGRAPH - ,0xB06D ,0x767F //CJK UNIFIED IDEOGRAPH - ,0xB06E ,0x7680 //CJK UNIFIED IDEOGRAPH - ,0xB06F ,0x7681 //CJK UNIFIED IDEOGRAPH - ,0xB070 ,0x7683 //CJK UNIFIED IDEOGRAPH - ,0xB071 ,0x7685 //CJK UNIFIED IDEOGRAPH - ,0xB072 ,0x7689 //CJK UNIFIED IDEOGRAPH - ,0xB073 ,0x768A //CJK UNIFIED IDEOGRAPH - ,0xB074 ,0x768C //CJK UNIFIED IDEOGRAPH - ,0xB075 ,0x768D //CJK UNIFIED IDEOGRAPH - ,0xB076 ,0x768F //CJK UNIFIED IDEOGRAPH - ,0xB077 ,0x7690 //CJK UNIFIED IDEOGRAPH - ,0xB078 ,0x7692 //CJK UNIFIED IDEOGRAPH - ,0xB079 ,0x7694 //CJK UNIFIED IDEOGRAPH - ,0xB07A ,0x7695 //CJK UNIFIED IDEOGRAPH - ,0xB07B ,0x7697 //CJK UNIFIED IDEOGRAPH - ,0xB07C ,0x7698 //CJK UNIFIED IDEOGRAPH - ,0xB07D ,0x769A //CJK UNIFIED IDEOGRAPH - ,0xB07E ,0x769B //CJK UNIFIED IDEOGRAPH - ,0xB080 ,0x769C //CJK UNIFIED IDEOGRAPH - ,0xB081 ,0x769D //CJK UNIFIED IDEOGRAPH - ,0xB082 ,0x769E //CJK UNIFIED IDEOGRAPH - ,0xB083 ,0x769F //CJK UNIFIED IDEOGRAPH - ,0xB084 ,0x76A0 //CJK UNIFIED IDEOGRAPH - ,0xB085 ,0x76A1 //CJK UNIFIED IDEOGRAPH - ,0xB086 ,0x76A2 //CJK UNIFIED IDEOGRAPH - ,0xB087 ,0x76A3 //CJK UNIFIED IDEOGRAPH - ,0xB088 ,0x76A5 //CJK UNIFIED IDEOGRAPH - ,0xB089 ,0x76A6 //CJK UNIFIED IDEOGRAPH - ,0xB08A ,0x76A7 //CJK UNIFIED IDEOGRAPH - ,0xB08B ,0x76A8 //CJK UNIFIED IDEOGRAPH - ,0xB08C ,0x76A9 //CJK UNIFIED IDEOGRAPH - ,0xB08D ,0x76AA //CJK UNIFIED IDEOGRAPH - ,0xB08E ,0x76AB //CJK UNIFIED IDEOGRAPH - ,0xB08F ,0x76AC //CJK UNIFIED IDEOGRAPH - ,0xB090 ,0x76AD //CJK UNIFIED IDEOGRAPH - ,0xB091 ,0x76AF //CJK UNIFIED IDEOGRAPH - ,0xB092 ,0x76B0 //CJK UNIFIED IDEOGRAPH - ,0xB093 ,0x76B3 //CJK UNIFIED IDEOGRAPH - ,0xB094 ,0x76B5 //CJK UNIFIED IDEOGRAPH - ,0xB095 ,0x76B6 //CJK UNIFIED IDEOGRAPH - ,0xB096 ,0x76B7 //CJK UNIFIED IDEOGRAPH - ,0xB097 ,0x76B8 //CJK UNIFIED IDEOGRAPH - ,0xB098 ,0x76B9 //CJK UNIFIED IDEOGRAPH - ,0xB099 ,0x76BA //CJK UNIFIED IDEOGRAPH - ,0xB09A ,0x76BB //CJK UNIFIED IDEOGRAPH - ,0xB09B ,0x76BC //CJK UNIFIED IDEOGRAPH - ,0xB09C ,0x76BD //CJK UNIFIED IDEOGRAPH - ,0xB09D ,0x76BE //CJK UNIFIED IDEOGRAPH - ,0xB09E ,0x76C0 //CJK UNIFIED IDEOGRAPH - ,0xB09F ,0x76C1 //CJK UNIFIED IDEOGRAPH - ,0xB0A0 ,0x76C3 //CJK UNIFIED IDEOGRAPH - ,0xB0A1 ,0x554A //CJK UNIFIED IDEOGRAPH - ,0xB0A2 ,0x963F //CJK UNIFIED IDEOGRAPH - ,0xB0A3 ,0x57C3 //CJK UNIFIED IDEOGRAPH - ,0xB0A4 ,0x6328 //CJK UNIFIED IDEOGRAPH - ,0xB0A5 ,0x54CE //CJK UNIFIED IDEOGRAPH - ,0xB0A6 ,0x5509 //CJK UNIFIED IDEOGRAPH - ,0xB0A7 ,0x54C0 //CJK UNIFIED IDEOGRAPH - ,0xB0A8 ,0x7691 //CJK UNIFIED IDEOGRAPH - ,0xB0A9 ,0x764C //CJK UNIFIED IDEOGRAPH - ,0xB0AA ,0x853C //CJK UNIFIED IDEOGRAPH - ,0xB0AB ,0x77EE //CJK UNIFIED IDEOGRAPH - ,0xB0AC ,0x827E //CJK UNIFIED IDEOGRAPH - ,0xB0AD ,0x788D //CJK UNIFIED IDEOGRAPH - ,0xB0AE ,0x7231 //CJK UNIFIED IDEOGRAPH - ,0xB0AF ,0x9698 //CJK UNIFIED IDEOGRAPH - ,0xB0B0 ,0x978D //CJK UNIFIED IDEOGRAPH - ,0xB0B1 ,0x6C28 //CJK UNIFIED IDEOGRAPH - ,0xB0B2 ,0x5B89 //CJK UNIFIED IDEOGRAPH - ,0xB0B3 ,0x4FFA //CJK UNIFIED IDEOGRAPH - ,0xB0B4 ,0x6309 //CJK UNIFIED IDEOGRAPH - ,0xB0B5 ,0x6697 //CJK UNIFIED IDEOGRAPH - ,0xB0B6 ,0x5CB8 //CJK UNIFIED IDEOGRAPH - ,0xB0B7 ,0x80FA //CJK UNIFIED IDEOGRAPH - ,0xB0B8 ,0x6848 //CJK UNIFIED IDEOGRAPH - ,0xB0B9 ,0x80AE //CJK UNIFIED IDEOGRAPH - ,0xB0BA ,0x6602 //CJK UNIFIED IDEOGRAPH - ,0xB0BB ,0x76CE //CJK UNIFIED IDEOGRAPH - ,0xB0BC ,0x51F9 //CJK UNIFIED IDEOGRAPH - ,0xB0BD ,0x6556 //CJK UNIFIED IDEOGRAPH - ,0xB0BE ,0x71AC //CJK UNIFIED IDEOGRAPH - ,0xB0BF ,0x7FF1 //CJK UNIFIED IDEOGRAPH - ,0xB0C0 ,0x8884 //CJK UNIFIED IDEOGRAPH - ,0xB0C1 ,0x50B2 //CJK UNIFIED IDEOGRAPH - ,0xB0C2 ,0x5965 //CJK UNIFIED IDEOGRAPH - ,0xB0C3 ,0x61CA //CJK UNIFIED IDEOGRAPH - ,0xB0C4 ,0x6FB3 //CJK UNIFIED IDEOGRAPH - ,0xB0C5 ,0x82AD //CJK UNIFIED IDEOGRAPH - ,0xB0C6 ,0x634C //CJK UNIFIED IDEOGRAPH - ,0xB0C7 ,0x6252 //CJK UNIFIED IDEOGRAPH - ,0xB0C8 ,0x53ED //CJK UNIFIED IDEOGRAPH - ,0xB0C9 ,0x5427 //CJK UNIFIED IDEOGRAPH - ,0xB0CA ,0x7B06 //CJK UNIFIED IDEOGRAPH - ,0xB0CB ,0x516B //CJK UNIFIED IDEOGRAPH - ,0xB0CC ,0x75A4 //CJK UNIFIED IDEOGRAPH - ,0xB0CD ,0x5DF4 //CJK UNIFIED IDEOGRAPH - ,0xB0CE ,0x62D4 //CJK UNIFIED IDEOGRAPH - ,0xB0CF ,0x8DCB //CJK UNIFIED IDEOGRAPH - ,0xB0D0 ,0x9776 //CJK UNIFIED IDEOGRAPH - ,0xB0D1 ,0x628A //CJK UNIFIED IDEOGRAPH - ,0xB0D2 ,0x8019 //CJK UNIFIED IDEOGRAPH - ,0xB0D3 ,0x575D //CJK UNIFIED IDEOGRAPH - ,0xB0D4 ,0x9738 //CJK UNIFIED IDEOGRAPH - ,0xB0D5 ,0x7F62 //CJK UNIFIED IDEOGRAPH - ,0xB0D6 ,0x7238 //CJK UNIFIED IDEOGRAPH - ,0xB0D7 ,0x767D //CJK UNIFIED IDEOGRAPH - ,0xB0D8 ,0x67CF //CJK UNIFIED IDEOGRAPH - ,0xB0D9 ,0x767E //CJK UNIFIED IDEOGRAPH - ,0xB0DA ,0x6446 //CJK UNIFIED IDEOGRAPH - ,0xB0DB ,0x4F70 //CJK UNIFIED IDEOGRAPH - ,0xB0DC ,0x8D25 //CJK UNIFIED IDEOGRAPH - ,0xB0DD ,0x62DC //CJK UNIFIED IDEOGRAPH - ,0xB0DE ,0x7A17 //CJK UNIFIED IDEOGRAPH - ,0xB0DF ,0x6591 //CJK UNIFIED IDEOGRAPH - ,0xB0E0 ,0x73ED //CJK UNIFIED IDEOGRAPH - ,0xB0E1 ,0x642C //CJK UNIFIED IDEOGRAPH - ,0xB0E2 ,0x6273 //CJK UNIFIED IDEOGRAPH - ,0xB0E3 ,0x822C //CJK UNIFIED IDEOGRAPH - ,0xB0E4 ,0x9881 //CJK UNIFIED IDEOGRAPH - ,0xB0E5 ,0x677F //CJK UNIFIED IDEOGRAPH - ,0xB0E6 ,0x7248 //CJK UNIFIED IDEOGRAPH - ,0xB0E7 ,0x626E //CJK UNIFIED IDEOGRAPH - ,0xB0E8 ,0x62CC //CJK UNIFIED IDEOGRAPH - ,0xB0E9 ,0x4F34 //CJK UNIFIED IDEOGRAPH - ,0xB0EA ,0x74E3 //CJK UNIFIED IDEOGRAPH - ,0xB0EB ,0x534A //CJK UNIFIED IDEOGRAPH - ,0xB0EC ,0x529E //CJK UNIFIED IDEOGRAPH - ,0xB0ED ,0x7ECA //CJK UNIFIED IDEOGRAPH - ,0xB0EE ,0x90A6 //CJK UNIFIED IDEOGRAPH - ,0xB0EF ,0x5E2E //CJK UNIFIED IDEOGRAPH - ,0xB0F0 ,0x6886 //CJK UNIFIED IDEOGRAPH - ,0xB0F1 ,0x699C //CJK UNIFIED IDEOGRAPH - ,0xB0F2 ,0x8180 //CJK UNIFIED IDEOGRAPH - ,0xB0F3 ,0x7ED1 //CJK UNIFIED IDEOGRAPH - ,0xB0F4 ,0x68D2 //CJK UNIFIED IDEOGRAPH - ,0xB0F5 ,0x78C5 //CJK UNIFIED IDEOGRAPH - ,0xB0F6 ,0x868C //CJK UNIFIED IDEOGRAPH - ,0xB0F7 ,0x9551 //CJK UNIFIED IDEOGRAPH - ,0xB0F8 ,0x508D //CJK UNIFIED IDEOGRAPH - ,0xB0F9 ,0x8C24 //CJK UNIFIED IDEOGRAPH - ,0xB0FA ,0x82DE //CJK UNIFIED IDEOGRAPH - ,0xB0FB ,0x80DE //CJK UNIFIED IDEOGRAPH - ,0xB0FC ,0x5305 //CJK UNIFIED IDEOGRAPH - ,0xB0FD ,0x8912 //CJK UNIFIED IDEOGRAPH - ,0xB0FE ,0x5265 //CJK UNIFIED IDEOGRAPH - ,0xB140 ,0x76C4 //CJK UNIFIED IDEOGRAPH - ,0xB141 ,0x76C7 //CJK UNIFIED IDEOGRAPH - ,0xB142 ,0x76C9 //CJK UNIFIED IDEOGRAPH - ,0xB143 ,0x76CB //CJK UNIFIED IDEOGRAPH - ,0xB144 ,0x76CC //CJK UNIFIED IDEOGRAPH - ,0xB145 ,0x76D3 //CJK UNIFIED IDEOGRAPH - ,0xB146 ,0x76D5 //CJK UNIFIED IDEOGRAPH - ,0xB147 ,0x76D9 //CJK UNIFIED IDEOGRAPH - ,0xB148 ,0x76DA //CJK UNIFIED IDEOGRAPH - ,0xB149 ,0x76DC //CJK UNIFIED IDEOGRAPH - ,0xB14A ,0x76DD //CJK UNIFIED IDEOGRAPH - ,0xB14B ,0x76DE //CJK UNIFIED IDEOGRAPH - ,0xB14C ,0x76E0 //CJK UNIFIED IDEOGRAPH - ,0xB14D ,0x76E1 //CJK UNIFIED IDEOGRAPH - ,0xB14E ,0x76E2 //CJK UNIFIED IDEOGRAPH - ,0xB14F ,0x76E3 //CJK UNIFIED IDEOGRAPH - ,0xB150 ,0x76E4 //CJK UNIFIED IDEOGRAPH - ,0xB151 ,0x76E6 //CJK UNIFIED IDEOGRAPH - ,0xB152 ,0x76E7 //CJK UNIFIED IDEOGRAPH - ,0xB153 ,0x76E8 //CJK UNIFIED IDEOGRAPH - ,0xB154 ,0x76E9 //CJK UNIFIED IDEOGRAPH - ,0xB155 ,0x76EA //CJK UNIFIED IDEOGRAPH - ,0xB156 ,0x76EB //CJK UNIFIED IDEOGRAPH - ,0xB157 ,0x76EC //CJK UNIFIED IDEOGRAPH - ,0xB158 ,0x76ED //CJK UNIFIED IDEOGRAPH - ,0xB159 ,0x76F0 //CJK UNIFIED IDEOGRAPH - ,0xB15A ,0x76F3 //CJK UNIFIED IDEOGRAPH - ,0xB15B ,0x76F5 //CJK UNIFIED IDEOGRAPH - ,0xB15C ,0x76F6 //CJK UNIFIED IDEOGRAPH - ,0xB15D ,0x76F7 //CJK UNIFIED IDEOGRAPH - ,0xB15E ,0x76FA //CJK UNIFIED IDEOGRAPH - ,0xB15F ,0x76FB //CJK UNIFIED IDEOGRAPH - ,0xB160 ,0x76FD //CJK UNIFIED IDEOGRAPH - ,0xB161 ,0x76FF //CJK UNIFIED IDEOGRAPH - ,0xB162 ,0x7700 //CJK UNIFIED IDEOGRAPH - ,0xB163 ,0x7702 //CJK UNIFIED IDEOGRAPH - ,0xB164 ,0x7703 //CJK UNIFIED IDEOGRAPH - ,0xB165 ,0x7705 //CJK UNIFIED IDEOGRAPH - ,0xB166 ,0x7706 //CJK UNIFIED IDEOGRAPH - ,0xB167 ,0x770A //CJK UNIFIED IDEOGRAPH - ,0xB168 ,0x770C //CJK UNIFIED IDEOGRAPH - ,0xB169 ,0x770E //CJK UNIFIED IDEOGRAPH - ,0xB16A ,0x770F //CJK UNIFIED IDEOGRAPH - ,0xB16B ,0x7710 //CJK UNIFIED IDEOGRAPH - ,0xB16C ,0x7711 //CJK UNIFIED IDEOGRAPH - ,0xB16D ,0x7712 //CJK UNIFIED IDEOGRAPH - ,0xB16E ,0x7713 //CJK UNIFIED IDEOGRAPH - ,0xB16F ,0x7714 //CJK UNIFIED IDEOGRAPH - ,0xB170 ,0x7715 //CJK UNIFIED IDEOGRAPH - ,0xB171 ,0x7716 //CJK UNIFIED IDEOGRAPH - ,0xB172 ,0x7717 //CJK UNIFIED IDEOGRAPH - ,0xB173 ,0x7718 //CJK UNIFIED IDEOGRAPH - ,0xB174 ,0x771B //CJK UNIFIED IDEOGRAPH - ,0xB175 ,0x771C //CJK UNIFIED IDEOGRAPH - ,0xB176 ,0x771D //CJK UNIFIED IDEOGRAPH - ,0xB177 ,0x771E //CJK UNIFIED IDEOGRAPH - ,0xB178 ,0x7721 //CJK UNIFIED IDEOGRAPH - ,0xB179 ,0x7723 //CJK UNIFIED IDEOGRAPH - ,0xB17A ,0x7724 //CJK UNIFIED IDEOGRAPH - ,0xB17B ,0x7725 //CJK UNIFIED IDEOGRAPH - ,0xB17C ,0x7727 //CJK UNIFIED IDEOGRAPH - ,0xB17D ,0x772A //CJK UNIFIED IDEOGRAPH - ,0xB17E ,0x772B //CJK UNIFIED IDEOGRAPH - ,0xB180 ,0x772C //CJK UNIFIED IDEOGRAPH - ,0xB181 ,0x772E //CJK UNIFIED IDEOGRAPH - ,0xB182 ,0x7730 //CJK UNIFIED IDEOGRAPH - ,0xB183 ,0x7731 //CJK UNIFIED IDEOGRAPH - ,0xB184 ,0x7732 //CJK UNIFIED IDEOGRAPH - ,0xB185 ,0x7733 //CJK UNIFIED IDEOGRAPH - ,0xB186 ,0x7734 //CJK UNIFIED IDEOGRAPH - ,0xB187 ,0x7739 //CJK UNIFIED IDEOGRAPH - ,0xB188 ,0x773B //CJK UNIFIED IDEOGRAPH - ,0xB189 ,0x773D //CJK UNIFIED IDEOGRAPH - ,0xB18A ,0x773E //CJK UNIFIED IDEOGRAPH - ,0xB18B ,0x773F //CJK UNIFIED IDEOGRAPH - ,0xB18C ,0x7742 //CJK UNIFIED IDEOGRAPH - ,0xB18D ,0x7744 //CJK UNIFIED IDEOGRAPH - ,0xB18E ,0x7745 //CJK UNIFIED IDEOGRAPH - ,0xB18F ,0x7746 //CJK UNIFIED IDEOGRAPH - ,0xB190 ,0x7748 //CJK UNIFIED IDEOGRAPH - ,0xB191 ,0x7749 //CJK UNIFIED IDEOGRAPH - ,0xB192 ,0x774A //CJK UNIFIED IDEOGRAPH - ,0xB193 ,0x774B //CJK UNIFIED IDEOGRAPH - ,0xB194 ,0x774C //CJK UNIFIED IDEOGRAPH - ,0xB195 ,0x774D //CJK UNIFIED IDEOGRAPH - ,0xB196 ,0x774E //CJK UNIFIED IDEOGRAPH - ,0xB197 ,0x774F //CJK UNIFIED IDEOGRAPH - ,0xB198 ,0x7752 //CJK UNIFIED IDEOGRAPH - ,0xB199 ,0x7753 //CJK UNIFIED IDEOGRAPH - ,0xB19A ,0x7754 //CJK UNIFIED IDEOGRAPH - ,0xB19B ,0x7755 //CJK UNIFIED IDEOGRAPH - ,0xB19C ,0x7756 //CJK UNIFIED IDEOGRAPH - ,0xB19D ,0x7757 //CJK UNIFIED IDEOGRAPH - ,0xB19E ,0x7758 //CJK UNIFIED IDEOGRAPH - ,0xB19F ,0x7759 //CJK UNIFIED IDEOGRAPH - ,0xB1A0 ,0x775C //CJK UNIFIED IDEOGRAPH - ,0xB1A1 ,0x8584 //CJK UNIFIED IDEOGRAPH - ,0xB1A2 ,0x96F9 //CJK UNIFIED IDEOGRAPH - ,0xB1A3 ,0x4FDD //CJK UNIFIED IDEOGRAPH - ,0xB1A4 ,0x5821 //CJK UNIFIED IDEOGRAPH - ,0xB1A5 ,0x9971 //CJK UNIFIED IDEOGRAPH - ,0xB1A6 ,0x5B9D //CJK UNIFIED IDEOGRAPH - ,0xB1A7 ,0x62B1 //CJK UNIFIED IDEOGRAPH - ,0xB1A8 ,0x62A5 //CJK UNIFIED IDEOGRAPH - ,0xB1A9 ,0x66B4 //CJK UNIFIED IDEOGRAPH - ,0xB1AA ,0x8C79 //CJK UNIFIED IDEOGRAPH - ,0xB1AB ,0x9C8D //CJK UNIFIED IDEOGRAPH - ,0xB1AC ,0x7206 //CJK UNIFIED IDEOGRAPH - ,0xB1AD ,0x676F //CJK UNIFIED IDEOGRAPH - ,0xB1AE ,0x7891 //CJK UNIFIED IDEOGRAPH - ,0xB1AF ,0x60B2 //CJK UNIFIED IDEOGRAPH - ,0xB1B0 ,0x5351 //CJK UNIFIED IDEOGRAPH - ,0xB1B1 ,0x5317 //CJK UNIFIED IDEOGRAPH - ,0xB1B2 ,0x8F88 //CJK UNIFIED IDEOGRAPH - ,0xB1B3 ,0x80CC //CJK UNIFIED IDEOGRAPH - ,0xB1B4 ,0x8D1D //CJK UNIFIED IDEOGRAPH - ,0xB1B5 ,0x94A1 //CJK UNIFIED IDEOGRAPH - ,0xB1B6 ,0x500D //CJK UNIFIED IDEOGRAPH - ,0xB1B7 ,0x72C8 //CJK UNIFIED IDEOGRAPH - ,0xB1B8 ,0x5907 //CJK UNIFIED IDEOGRAPH - ,0xB1B9 ,0x60EB //CJK UNIFIED IDEOGRAPH - ,0xB1BA ,0x7119 //CJK UNIFIED IDEOGRAPH - ,0xB1BB ,0x88AB //CJK UNIFIED IDEOGRAPH - ,0xB1BC ,0x5954 //CJK UNIFIED IDEOGRAPH - ,0xB1BD ,0x82EF //CJK UNIFIED IDEOGRAPH - ,0xB1BE ,0x672C //CJK UNIFIED IDEOGRAPH - ,0xB1BF ,0x7B28 //CJK UNIFIED IDEOGRAPH - ,0xB1C0 ,0x5D29 //CJK UNIFIED IDEOGRAPH - ,0xB1C1 ,0x7EF7 //CJK UNIFIED IDEOGRAPH - ,0xB1C2 ,0x752D //CJK UNIFIED IDEOGRAPH - ,0xB1C3 ,0x6CF5 //CJK UNIFIED IDEOGRAPH - ,0xB1C4 ,0x8E66 //CJK UNIFIED IDEOGRAPH - ,0xB1C5 ,0x8FF8 //CJK UNIFIED IDEOGRAPH - ,0xB1C6 ,0x903C //CJK UNIFIED IDEOGRAPH - ,0xB1C7 ,0x9F3B //CJK UNIFIED IDEOGRAPH - ,0xB1C8 ,0x6BD4 //CJK UNIFIED IDEOGRAPH - ,0xB1C9 ,0x9119 //CJK UNIFIED IDEOGRAPH - ,0xB1CA ,0x7B14 //CJK UNIFIED IDEOGRAPH - ,0xB1CB ,0x5F7C //CJK UNIFIED IDEOGRAPH - ,0xB1CC ,0x78A7 //CJK UNIFIED IDEOGRAPH - ,0xB1CD ,0x84D6 //CJK UNIFIED IDEOGRAPH - ,0xB1CE ,0x853D //CJK UNIFIED IDEOGRAPH - ,0xB1CF ,0x6BD5 //CJK UNIFIED IDEOGRAPH - ,0xB1D0 ,0x6BD9 //CJK UNIFIED IDEOGRAPH - ,0xB1D1 ,0x6BD6 //CJK UNIFIED IDEOGRAPH - ,0xB1D2 ,0x5E01 //CJK UNIFIED IDEOGRAPH - ,0xB1D3 ,0x5E87 //CJK UNIFIED IDEOGRAPH - ,0xB1D4 ,0x75F9 //CJK UNIFIED IDEOGRAPH - ,0xB1D5 ,0x95ED //CJK UNIFIED IDEOGRAPH - ,0xB1D6 ,0x655D //CJK UNIFIED IDEOGRAPH - ,0xB1D7 ,0x5F0A //CJK UNIFIED IDEOGRAPH - ,0xB1D8 ,0x5FC5 //CJK UNIFIED IDEOGRAPH - ,0xB1D9 ,0x8F9F //CJK UNIFIED IDEOGRAPH - ,0xB1DA ,0x58C1 //CJK UNIFIED IDEOGRAPH - ,0xB1DB ,0x81C2 //CJK UNIFIED IDEOGRAPH - ,0xB1DC ,0x907F //CJK UNIFIED IDEOGRAPH - ,0xB1DD ,0x965B //CJK UNIFIED IDEOGRAPH - ,0xB1DE ,0x97AD //CJK UNIFIED IDEOGRAPH - ,0xB1DF ,0x8FB9 //CJK UNIFIED IDEOGRAPH - ,0xB1E0 ,0x7F16 //CJK UNIFIED IDEOGRAPH - ,0xB1E1 ,0x8D2C //CJK UNIFIED IDEOGRAPH - ,0xB1E2 ,0x6241 //CJK UNIFIED IDEOGRAPH - ,0xB1E3 ,0x4FBF //CJK UNIFIED IDEOGRAPH - ,0xB1E4 ,0x53D8 //CJK UNIFIED IDEOGRAPH - ,0xB1E5 ,0x535E //CJK UNIFIED IDEOGRAPH - ,0xB1E6 ,0x8FA8 //CJK UNIFIED IDEOGRAPH - ,0xB1E7 ,0x8FA9 //CJK UNIFIED IDEOGRAPH - ,0xB1E8 ,0x8FAB //CJK UNIFIED IDEOGRAPH - ,0xB1E9 ,0x904D //CJK UNIFIED IDEOGRAPH - ,0xB1EA ,0x6807 //CJK UNIFIED IDEOGRAPH - ,0xB1EB ,0x5F6A //CJK UNIFIED IDEOGRAPH - ,0xB1EC ,0x8198 //CJK UNIFIED IDEOGRAPH - ,0xB1ED ,0x8868 //CJK UNIFIED IDEOGRAPH - ,0xB1EE ,0x9CD6 //CJK UNIFIED IDEOGRAPH - ,0xB1EF ,0x618B //CJK UNIFIED IDEOGRAPH - ,0xB1F0 ,0x522B //CJK UNIFIED IDEOGRAPH - ,0xB1F1 ,0x762A //CJK UNIFIED IDEOGRAPH - ,0xB1F2 ,0x5F6C //CJK UNIFIED IDEOGRAPH - ,0xB1F3 ,0x658C //CJK UNIFIED IDEOGRAPH - ,0xB1F4 ,0x6FD2 //CJK UNIFIED IDEOGRAPH - ,0xB1F5 ,0x6EE8 //CJK UNIFIED IDEOGRAPH - ,0xB1F6 ,0x5BBE //CJK UNIFIED IDEOGRAPH - ,0xB1F7 ,0x6448 //CJK UNIFIED IDEOGRAPH - ,0xB1F8 ,0x5175 //CJK UNIFIED IDEOGRAPH - ,0xB1F9 ,0x51B0 //CJK UNIFIED IDEOGRAPH - ,0xB1FA ,0x67C4 //CJK UNIFIED IDEOGRAPH - ,0xB1FB ,0x4E19 //CJK UNIFIED IDEOGRAPH - ,0xB1FC ,0x79C9 //CJK UNIFIED IDEOGRAPH - ,0xB1FD ,0x997C //CJK UNIFIED IDEOGRAPH - ,0xB1FE ,0x70B3 //CJK UNIFIED IDEOGRAPH - ,0xB240 ,0x775D //CJK UNIFIED IDEOGRAPH - ,0xB241 ,0x775E //CJK UNIFIED IDEOGRAPH - ,0xB242 ,0x775F //CJK UNIFIED IDEOGRAPH - ,0xB243 ,0x7760 //CJK UNIFIED IDEOGRAPH - ,0xB244 ,0x7764 //CJK UNIFIED IDEOGRAPH - ,0xB245 ,0x7767 //CJK UNIFIED IDEOGRAPH - ,0xB246 ,0x7769 //CJK UNIFIED IDEOGRAPH - ,0xB247 ,0x776A //CJK UNIFIED IDEOGRAPH - ,0xB248 ,0x776D //CJK UNIFIED IDEOGRAPH - ,0xB249 ,0x776E //CJK UNIFIED IDEOGRAPH - ,0xB24A ,0x776F //CJK UNIFIED IDEOGRAPH - ,0xB24B ,0x7770 //CJK UNIFIED IDEOGRAPH - ,0xB24C ,0x7771 //CJK UNIFIED IDEOGRAPH - ,0xB24D ,0x7772 //CJK UNIFIED IDEOGRAPH - ,0xB24E ,0x7773 //CJK UNIFIED IDEOGRAPH - ,0xB24F ,0x7774 //CJK UNIFIED IDEOGRAPH - ,0xB250 ,0x7775 //CJK UNIFIED IDEOGRAPH - ,0xB251 ,0x7776 //CJK UNIFIED IDEOGRAPH - ,0xB252 ,0x7777 //CJK UNIFIED IDEOGRAPH - ,0xB253 ,0x7778 //CJK UNIFIED IDEOGRAPH - ,0xB254 ,0x777A //CJK UNIFIED IDEOGRAPH - ,0xB255 ,0x777B //CJK UNIFIED IDEOGRAPH - ,0xB256 ,0x777C //CJK UNIFIED IDEOGRAPH - ,0xB257 ,0x7781 //CJK UNIFIED IDEOGRAPH - ,0xB258 ,0x7782 //CJK UNIFIED IDEOGRAPH - ,0xB259 ,0x7783 //CJK UNIFIED IDEOGRAPH - ,0xB25A ,0x7786 //CJK UNIFIED IDEOGRAPH - ,0xB25B ,0x7787 //CJK UNIFIED IDEOGRAPH - ,0xB25C ,0x7788 //CJK UNIFIED IDEOGRAPH - ,0xB25D ,0x7789 //CJK UNIFIED IDEOGRAPH - ,0xB25E ,0x778A //CJK UNIFIED IDEOGRAPH - ,0xB25F ,0x778B //CJK UNIFIED IDEOGRAPH - ,0xB260 ,0x778F //CJK UNIFIED IDEOGRAPH - ,0xB261 ,0x7790 //CJK UNIFIED IDEOGRAPH - ,0xB262 ,0x7793 //CJK UNIFIED IDEOGRAPH - ,0xB263 ,0x7794 //CJK UNIFIED IDEOGRAPH - ,0xB264 ,0x7795 //CJK UNIFIED IDEOGRAPH - ,0xB265 ,0x7796 //CJK UNIFIED IDEOGRAPH - ,0xB266 ,0x7797 //CJK UNIFIED IDEOGRAPH - ,0xB267 ,0x7798 //CJK UNIFIED IDEOGRAPH - ,0xB268 ,0x7799 //CJK UNIFIED IDEOGRAPH - ,0xB269 ,0x779A //CJK UNIFIED IDEOGRAPH - ,0xB26A ,0x779B //CJK UNIFIED IDEOGRAPH - ,0xB26B ,0x779C //CJK UNIFIED IDEOGRAPH - ,0xB26C ,0x779D //CJK UNIFIED IDEOGRAPH - ,0xB26D ,0x779E //CJK UNIFIED IDEOGRAPH - ,0xB26E ,0x77A1 //CJK UNIFIED IDEOGRAPH - ,0xB26F ,0x77A3 //CJK UNIFIED IDEOGRAPH - ,0xB270 ,0x77A4 //CJK UNIFIED IDEOGRAPH - ,0xB271 ,0x77A6 //CJK UNIFIED IDEOGRAPH - ,0xB272 ,0x77A8 //CJK UNIFIED IDEOGRAPH - ,0xB273 ,0x77AB //CJK UNIFIED IDEOGRAPH - ,0xB274 ,0x77AD //CJK UNIFIED IDEOGRAPH - ,0xB275 ,0x77AE //CJK UNIFIED IDEOGRAPH - ,0xB276 ,0x77AF //CJK UNIFIED IDEOGRAPH - ,0xB277 ,0x77B1 //CJK UNIFIED IDEOGRAPH - ,0xB278 ,0x77B2 //CJK UNIFIED IDEOGRAPH - ,0xB279 ,0x77B4 //CJK UNIFIED IDEOGRAPH - ,0xB27A ,0x77B6 //CJK UNIFIED IDEOGRAPH - ,0xB27B ,0x77B7 //CJK UNIFIED IDEOGRAPH - ,0xB27C ,0x77B8 //CJK UNIFIED IDEOGRAPH - ,0xB27D ,0x77B9 //CJK UNIFIED IDEOGRAPH - ,0xB27E ,0x77BA //CJK UNIFIED IDEOGRAPH - ,0xB280 ,0x77BC //CJK UNIFIED IDEOGRAPH - ,0xB281 ,0x77BE //CJK UNIFIED IDEOGRAPH - ,0xB282 ,0x77C0 //CJK UNIFIED IDEOGRAPH - ,0xB283 ,0x77C1 //CJK UNIFIED IDEOGRAPH - ,0xB284 ,0x77C2 //CJK UNIFIED IDEOGRAPH - ,0xB285 ,0x77C3 //CJK UNIFIED IDEOGRAPH - ,0xB286 ,0x77C4 //CJK UNIFIED IDEOGRAPH - ,0xB287 ,0x77C5 //CJK UNIFIED IDEOGRAPH - ,0xB288 ,0x77C6 //CJK UNIFIED IDEOGRAPH - ,0xB289 ,0x77C7 //CJK UNIFIED IDEOGRAPH - ,0xB28A ,0x77C8 //CJK UNIFIED IDEOGRAPH - ,0xB28B ,0x77C9 //CJK UNIFIED IDEOGRAPH - ,0xB28C ,0x77CA //CJK UNIFIED IDEOGRAPH - ,0xB28D ,0x77CB //CJK UNIFIED IDEOGRAPH - ,0xB28E ,0x77CC //CJK UNIFIED IDEOGRAPH - ,0xB28F ,0x77CE //CJK UNIFIED IDEOGRAPH - ,0xB290 ,0x77CF //CJK UNIFIED IDEOGRAPH - ,0xB291 ,0x77D0 //CJK UNIFIED IDEOGRAPH - ,0xB292 ,0x77D1 //CJK UNIFIED IDEOGRAPH - ,0xB293 ,0x77D2 //CJK UNIFIED IDEOGRAPH - ,0xB294 ,0x77D3 //CJK UNIFIED IDEOGRAPH - ,0xB295 ,0x77D4 //CJK UNIFIED IDEOGRAPH - ,0xB296 ,0x77D5 //CJK UNIFIED IDEOGRAPH - ,0xB297 ,0x77D6 //CJK UNIFIED IDEOGRAPH - ,0xB298 ,0x77D8 //CJK UNIFIED IDEOGRAPH - ,0xB299 ,0x77D9 //CJK UNIFIED IDEOGRAPH - ,0xB29A ,0x77DA //CJK UNIFIED IDEOGRAPH - ,0xB29B ,0x77DD //CJK UNIFIED IDEOGRAPH - ,0xB29C ,0x77DE //CJK UNIFIED IDEOGRAPH - ,0xB29D ,0x77DF //CJK UNIFIED IDEOGRAPH - ,0xB29E ,0x77E0 //CJK UNIFIED IDEOGRAPH - ,0xB29F ,0x77E1 //CJK UNIFIED IDEOGRAPH - ,0xB2A0 ,0x77E4 //CJK UNIFIED IDEOGRAPH - ,0xB2A1 ,0x75C5 //CJK UNIFIED IDEOGRAPH - ,0xB2A2 ,0x5E76 //CJK UNIFIED IDEOGRAPH - ,0xB2A3 ,0x73BB //CJK UNIFIED IDEOGRAPH - ,0xB2A4 ,0x83E0 //CJK UNIFIED IDEOGRAPH - ,0xB2A5 ,0x64AD //CJK UNIFIED IDEOGRAPH - ,0xB2A6 ,0x62E8 //CJK UNIFIED IDEOGRAPH - ,0xB2A7 ,0x94B5 //CJK UNIFIED IDEOGRAPH - ,0xB2A8 ,0x6CE2 //CJK UNIFIED IDEOGRAPH - ,0xB2A9 ,0x535A //CJK UNIFIED IDEOGRAPH - ,0xB2AA ,0x52C3 //CJK UNIFIED IDEOGRAPH - ,0xB2AB ,0x640F //CJK UNIFIED IDEOGRAPH - ,0xB2AC ,0x94C2 //CJK UNIFIED IDEOGRAPH - ,0xB2AD ,0x7B94 //CJK UNIFIED IDEOGRAPH - ,0xB2AE ,0x4F2F //CJK UNIFIED IDEOGRAPH - ,0xB2AF ,0x5E1B //CJK UNIFIED IDEOGRAPH - ,0xB2B0 ,0x8236 //CJK UNIFIED IDEOGRAPH - ,0xB2B1 ,0x8116 //CJK UNIFIED IDEOGRAPH - ,0xB2B2 ,0x818A //CJK UNIFIED IDEOGRAPH - ,0xB2B3 ,0x6E24 //CJK UNIFIED IDEOGRAPH - ,0xB2B4 ,0x6CCA //CJK UNIFIED IDEOGRAPH - ,0xB2B5 ,0x9A73 //CJK UNIFIED IDEOGRAPH - ,0xB2B6 ,0x6355 //CJK UNIFIED IDEOGRAPH - ,0xB2B7 ,0x535C //CJK UNIFIED IDEOGRAPH - ,0xB2B8 ,0x54FA //CJK UNIFIED IDEOGRAPH - ,0xB2B9 ,0x8865 //CJK UNIFIED IDEOGRAPH - ,0xB2BA ,0x57E0 //CJK UNIFIED IDEOGRAPH - ,0xB2BB ,0x4E0D //CJK UNIFIED IDEOGRAPH - ,0xB2BC ,0x5E03 //CJK UNIFIED IDEOGRAPH - ,0xB2BD ,0x6B65 //CJK UNIFIED IDEOGRAPH - ,0xB2BE ,0x7C3F //CJK UNIFIED IDEOGRAPH - ,0xB2BF ,0x90E8 //CJK UNIFIED IDEOGRAPH - ,0xB2C0 ,0x6016 //CJK UNIFIED IDEOGRAPH - ,0xB2C1 ,0x64E6 //CJK UNIFIED IDEOGRAPH - ,0xB2C2 ,0x731C //CJK UNIFIED IDEOGRAPH - ,0xB2C3 ,0x88C1 //CJK UNIFIED IDEOGRAPH - ,0xB2C4 ,0x6750 //CJK UNIFIED IDEOGRAPH - ,0xB2C5 ,0x624D //CJK UNIFIED IDEOGRAPH - ,0xB2C6 ,0x8D22 //CJK UNIFIED IDEOGRAPH - ,0xB2C7 ,0x776C //CJK UNIFIED IDEOGRAPH - ,0xB2C8 ,0x8E29 //CJK UNIFIED IDEOGRAPH - ,0xB2C9 ,0x91C7 //CJK UNIFIED IDEOGRAPH - ,0xB2CA ,0x5F69 //CJK UNIFIED IDEOGRAPH - ,0xB2CB ,0x83DC //CJK UNIFIED IDEOGRAPH - ,0xB2CC ,0x8521 //CJK UNIFIED IDEOGRAPH - ,0xB2CD ,0x9910 //CJK UNIFIED IDEOGRAPH - ,0xB2CE ,0x53C2 //CJK UNIFIED IDEOGRAPH - ,0xB2CF ,0x8695 //CJK UNIFIED IDEOGRAPH - ,0xB2D0 ,0x6B8B //CJK UNIFIED IDEOGRAPH - ,0xB2D1 ,0x60ED //CJK UNIFIED IDEOGRAPH - ,0xB2D2 ,0x60E8 //CJK UNIFIED IDEOGRAPH - ,0xB2D3 ,0x707F //CJK UNIFIED IDEOGRAPH - ,0xB2D4 ,0x82CD //CJK UNIFIED IDEOGRAPH - ,0xB2D5 ,0x8231 //CJK UNIFIED IDEOGRAPH - ,0xB2D6 ,0x4ED3 //CJK UNIFIED IDEOGRAPH - ,0xB2D7 ,0x6CA7 //CJK UNIFIED IDEOGRAPH - ,0xB2D8 ,0x85CF //CJK UNIFIED IDEOGRAPH - ,0xB2D9 ,0x64CD //CJK UNIFIED IDEOGRAPH - ,0xB2DA ,0x7CD9 //CJK UNIFIED IDEOGRAPH - ,0xB2DB ,0x69FD //CJK UNIFIED IDEOGRAPH - ,0xB2DC ,0x66F9 //CJK UNIFIED IDEOGRAPH - ,0xB2DD ,0x8349 //CJK UNIFIED IDEOGRAPH - ,0xB2DE ,0x5395 //CJK UNIFIED IDEOGRAPH - ,0xB2DF ,0x7B56 //CJK UNIFIED IDEOGRAPH - ,0xB2E0 ,0x4FA7 //CJK UNIFIED IDEOGRAPH - ,0xB2E1 ,0x518C //CJK UNIFIED IDEOGRAPH - ,0xB2E2 ,0x6D4B //CJK UNIFIED IDEOGRAPH - ,0xB2E3 ,0x5C42 //CJK UNIFIED IDEOGRAPH - ,0xB2E4 ,0x8E6D //CJK UNIFIED IDEOGRAPH - ,0xB2E5 ,0x63D2 //CJK UNIFIED IDEOGRAPH - ,0xB2E6 ,0x53C9 //CJK UNIFIED IDEOGRAPH - ,0xB2E7 ,0x832C //CJK UNIFIED IDEOGRAPH - ,0xB2E8 ,0x8336 //CJK UNIFIED IDEOGRAPH - ,0xB2E9 ,0x67E5 //CJK UNIFIED IDEOGRAPH - ,0xB2EA ,0x78B4 //CJK UNIFIED IDEOGRAPH - ,0xB2EB ,0x643D //CJK UNIFIED IDEOGRAPH - ,0xB2EC ,0x5BDF //CJK UNIFIED IDEOGRAPH - ,0xB2ED ,0x5C94 //CJK UNIFIED IDEOGRAPH - ,0xB2EE ,0x5DEE //CJK UNIFIED IDEOGRAPH - ,0xB2EF ,0x8BE7 //CJK UNIFIED IDEOGRAPH - ,0xB2F0 ,0x62C6 //CJK UNIFIED IDEOGRAPH - ,0xB2F1 ,0x67F4 //CJK UNIFIED IDEOGRAPH - ,0xB2F2 ,0x8C7A //CJK UNIFIED IDEOGRAPH - ,0xB2F3 ,0x6400 //CJK UNIFIED IDEOGRAPH - ,0xB2F4 ,0x63BA //CJK UNIFIED IDEOGRAPH - ,0xB2F5 ,0x8749 //CJK UNIFIED IDEOGRAPH - ,0xB2F6 ,0x998B //CJK UNIFIED IDEOGRAPH - ,0xB2F7 ,0x8C17 //CJK UNIFIED IDEOGRAPH - ,0xB2F8 ,0x7F20 //CJK UNIFIED IDEOGRAPH - ,0xB2F9 ,0x94F2 //CJK UNIFIED IDEOGRAPH - ,0xB2FA ,0x4EA7 //CJK UNIFIED IDEOGRAPH - ,0xB2FB ,0x9610 //CJK UNIFIED IDEOGRAPH - ,0xB2FC ,0x98A4 //CJK UNIFIED IDEOGRAPH - ,0xB2FD ,0x660C //CJK UNIFIED IDEOGRAPH - ,0xB2FE ,0x7316 //CJK UNIFIED IDEOGRAPH - ,0xB340 ,0x77E6 //CJK UNIFIED IDEOGRAPH - ,0xB341 ,0x77E8 //CJK UNIFIED IDEOGRAPH - ,0xB342 ,0x77EA //CJK UNIFIED IDEOGRAPH - ,0xB343 ,0x77EF //CJK UNIFIED IDEOGRAPH - ,0xB344 ,0x77F0 //CJK UNIFIED IDEOGRAPH - ,0xB345 ,0x77F1 //CJK UNIFIED IDEOGRAPH - ,0xB346 ,0x77F2 //CJK UNIFIED IDEOGRAPH - ,0xB347 ,0x77F4 //CJK UNIFIED IDEOGRAPH - ,0xB348 ,0x77F5 //CJK UNIFIED IDEOGRAPH - ,0xB349 ,0x77F7 //CJK UNIFIED IDEOGRAPH - ,0xB34A ,0x77F9 //CJK UNIFIED IDEOGRAPH - ,0xB34B ,0x77FA //CJK UNIFIED IDEOGRAPH - ,0xB34C ,0x77FB //CJK UNIFIED IDEOGRAPH - ,0xB34D ,0x77FC //CJK UNIFIED IDEOGRAPH - ,0xB34E ,0x7803 //CJK UNIFIED IDEOGRAPH - ,0xB34F ,0x7804 //CJK UNIFIED IDEOGRAPH - ,0xB350 ,0x7805 //CJK UNIFIED IDEOGRAPH - ,0xB351 ,0x7806 //CJK UNIFIED IDEOGRAPH - ,0xB352 ,0x7807 //CJK UNIFIED IDEOGRAPH - ,0xB353 ,0x7808 //CJK UNIFIED IDEOGRAPH - ,0xB354 ,0x780A //CJK UNIFIED IDEOGRAPH - ,0xB355 ,0x780B //CJK UNIFIED IDEOGRAPH - ,0xB356 ,0x780E //CJK UNIFIED IDEOGRAPH - ,0xB357 ,0x780F //CJK UNIFIED IDEOGRAPH - ,0xB358 ,0x7810 //CJK UNIFIED IDEOGRAPH - ,0xB359 ,0x7813 //CJK UNIFIED IDEOGRAPH - ,0xB35A ,0x7815 //CJK UNIFIED IDEOGRAPH - ,0xB35B ,0x7819 //CJK UNIFIED IDEOGRAPH - ,0xB35C ,0x781B //CJK UNIFIED IDEOGRAPH - ,0xB35D ,0x781E //CJK UNIFIED IDEOGRAPH - ,0xB35E ,0x7820 //CJK UNIFIED IDEOGRAPH - ,0xB35F ,0x7821 //CJK UNIFIED IDEOGRAPH - ,0xB360 ,0x7822 //CJK UNIFIED IDEOGRAPH - ,0xB361 ,0x7824 //CJK UNIFIED IDEOGRAPH - ,0xB362 ,0x7828 //CJK UNIFIED IDEOGRAPH - ,0xB363 ,0x782A //CJK UNIFIED IDEOGRAPH - ,0xB364 ,0x782B //CJK UNIFIED IDEOGRAPH - ,0xB365 ,0x782E //CJK UNIFIED IDEOGRAPH - ,0xB366 ,0x782F //CJK UNIFIED IDEOGRAPH - ,0xB367 ,0x7831 //CJK UNIFIED IDEOGRAPH - ,0xB368 ,0x7832 //CJK UNIFIED IDEOGRAPH - ,0xB369 ,0x7833 //CJK UNIFIED IDEOGRAPH - ,0xB36A ,0x7835 //CJK UNIFIED IDEOGRAPH - ,0xB36B ,0x7836 //CJK UNIFIED IDEOGRAPH - ,0xB36C ,0x783D //CJK UNIFIED IDEOGRAPH - ,0xB36D ,0x783F //CJK UNIFIED IDEOGRAPH - ,0xB36E ,0x7841 //CJK UNIFIED IDEOGRAPH - ,0xB36F ,0x7842 //CJK UNIFIED IDEOGRAPH - ,0xB370 ,0x7843 //CJK UNIFIED IDEOGRAPH - ,0xB371 ,0x7844 //CJK UNIFIED IDEOGRAPH - ,0xB372 ,0x7846 //CJK UNIFIED IDEOGRAPH - ,0xB373 ,0x7848 //CJK UNIFIED IDEOGRAPH - ,0xB374 ,0x7849 //CJK UNIFIED IDEOGRAPH - ,0xB375 ,0x784A //CJK UNIFIED IDEOGRAPH - ,0xB376 ,0x784B //CJK UNIFIED IDEOGRAPH - ,0xB377 ,0x784D //CJK UNIFIED IDEOGRAPH - ,0xB378 ,0x784F //CJK UNIFIED IDEOGRAPH - ,0xB379 ,0x7851 //CJK UNIFIED IDEOGRAPH - ,0xB37A ,0x7853 //CJK UNIFIED IDEOGRAPH - ,0xB37B ,0x7854 //CJK UNIFIED IDEOGRAPH - ,0xB37C ,0x7858 //CJK UNIFIED IDEOGRAPH - ,0xB37D ,0x7859 //CJK UNIFIED IDEOGRAPH - ,0xB37E ,0x785A //CJK UNIFIED IDEOGRAPH - ,0xB380 ,0x785B //CJK UNIFIED IDEOGRAPH - ,0xB381 ,0x785C //CJK UNIFIED IDEOGRAPH - ,0xB382 ,0x785E //CJK UNIFIED IDEOGRAPH - ,0xB383 ,0x785F //CJK UNIFIED IDEOGRAPH - ,0xB384 ,0x7860 //CJK UNIFIED IDEOGRAPH - ,0xB385 ,0x7861 //CJK UNIFIED IDEOGRAPH - ,0xB386 ,0x7862 //CJK UNIFIED IDEOGRAPH - ,0xB387 ,0x7863 //CJK UNIFIED IDEOGRAPH - ,0xB388 ,0x7864 //CJK UNIFIED IDEOGRAPH - ,0xB389 ,0x7865 //CJK UNIFIED IDEOGRAPH - ,0xB38A ,0x7866 //CJK UNIFIED IDEOGRAPH - ,0xB38B ,0x7867 //CJK UNIFIED IDEOGRAPH - ,0xB38C ,0x7868 //CJK UNIFIED IDEOGRAPH - ,0xB38D ,0x7869 //CJK UNIFIED IDEOGRAPH - ,0xB38E ,0x786F //CJK UNIFIED IDEOGRAPH - ,0xB38F ,0x7870 //CJK UNIFIED IDEOGRAPH - ,0xB390 ,0x7871 //CJK UNIFIED IDEOGRAPH - ,0xB391 ,0x7872 //CJK UNIFIED IDEOGRAPH - ,0xB392 ,0x7873 //CJK UNIFIED IDEOGRAPH - ,0xB393 ,0x7874 //CJK UNIFIED IDEOGRAPH - ,0xB394 ,0x7875 //CJK UNIFIED IDEOGRAPH - ,0xB395 ,0x7876 //CJK UNIFIED IDEOGRAPH - ,0xB396 ,0x7878 //CJK UNIFIED IDEOGRAPH - ,0xB397 ,0x7879 //CJK UNIFIED IDEOGRAPH - ,0xB398 ,0x787A //CJK UNIFIED IDEOGRAPH - ,0xB399 ,0x787B //CJK UNIFIED IDEOGRAPH - ,0xB39A ,0x787D //CJK UNIFIED IDEOGRAPH - ,0xB39B ,0x787E //CJK UNIFIED IDEOGRAPH - ,0xB39C ,0x787F //CJK UNIFIED IDEOGRAPH - ,0xB39D ,0x7880 //CJK UNIFIED IDEOGRAPH - ,0xB39E ,0x7881 //CJK UNIFIED IDEOGRAPH - ,0xB39F ,0x7882 //CJK UNIFIED IDEOGRAPH - ,0xB3A0 ,0x7883 //CJK UNIFIED IDEOGRAPH - ,0xB3A1 ,0x573A //CJK UNIFIED IDEOGRAPH - ,0xB3A2 ,0x5C1D //CJK UNIFIED IDEOGRAPH - ,0xB3A3 ,0x5E38 //CJK UNIFIED IDEOGRAPH - ,0xB3A4 ,0x957F //CJK UNIFIED IDEOGRAPH - ,0xB3A5 ,0x507F //CJK UNIFIED IDEOGRAPH - ,0xB3A6 ,0x80A0 //CJK UNIFIED IDEOGRAPH - ,0xB3A7 ,0x5382 //CJK UNIFIED IDEOGRAPH - ,0xB3A8 ,0x655E //CJK UNIFIED IDEOGRAPH - ,0xB3A9 ,0x7545 //CJK UNIFIED IDEOGRAPH - ,0xB3AA ,0x5531 //CJK UNIFIED IDEOGRAPH - ,0xB3AB ,0x5021 //CJK UNIFIED IDEOGRAPH - ,0xB3AC ,0x8D85 //CJK UNIFIED IDEOGRAPH - ,0xB3AD ,0x6284 //CJK UNIFIED IDEOGRAPH - ,0xB3AE ,0x949E //CJK UNIFIED IDEOGRAPH - ,0xB3AF ,0x671D //CJK UNIFIED IDEOGRAPH - ,0xB3B0 ,0x5632 //CJK UNIFIED IDEOGRAPH - ,0xB3B1 ,0x6F6E //CJK UNIFIED IDEOGRAPH - ,0xB3B2 ,0x5DE2 //CJK UNIFIED IDEOGRAPH - ,0xB3B3 ,0x5435 //CJK UNIFIED IDEOGRAPH - ,0xB3B4 ,0x7092 //CJK UNIFIED IDEOGRAPH - ,0xB3B5 ,0x8F66 //CJK UNIFIED IDEOGRAPH - ,0xB3B6 ,0x626F //CJK UNIFIED IDEOGRAPH - ,0xB3B7 ,0x64A4 //CJK UNIFIED IDEOGRAPH - ,0xB3B8 ,0x63A3 //CJK UNIFIED IDEOGRAPH - ,0xB3B9 ,0x5F7B //CJK UNIFIED IDEOGRAPH - ,0xB3BA ,0x6F88 //CJK UNIFIED IDEOGRAPH - ,0xB3BB ,0x90F4 //CJK UNIFIED IDEOGRAPH - ,0xB3BC ,0x81E3 //CJK UNIFIED IDEOGRAPH - ,0xB3BD ,0x8FB0 //CJK UNIFIED IDEOGRAPH - ,0xB3BE ,0x5C18 //CJK UNIFIED IDEOGRAPH - ,0xB3BF ,0x6668 //CJK UNIFIED IDEOGRAPH - ,0xB3C0 ,0x5FF1 //CJK UNIFIED IDEOGRAPH - ,0xB3C1 ,0x6C89 //CJK UNIFIED IDEOGRAPH - ,0xB3C2 ,0x9648 //CJK UNIFIED IDEOGRAPH - ,0xB3C3 ,0x8D81 //CJK UNIFIED IDEOGRAPH - ,0xB3C4 ,0x886C //CJK UNIFIED IDEOGRAPH - ,0xB3C5 ,0x6491 //CJK UNIFIED IDEOGRAPH - ,0xB3C6 ,0x79F0 //CJK UNIFIED IDEOGRAPH - ,0xB3C7 ,0x57CE //CJK UNIFIED IDEOGRAPH - ,0xB3C8 ,0x6A59 //CJK UNIFIED IDEOGRAPH - ,0xB3C9 ,0x6210 //CJK UNIFIED IDEOGRAPH - ,0xB3CA ,0x5448 //CJK UNIFIED IDEOGRAPH - ,0xB3CB ,0x4E58 //CJK UNIFIED IDEOGRAPH - ,0xB3CC ,0x7A0B //CJK UNIFIED IDEOGRAPH - ,0xB3CD ,0x60E9 //CJK UNIFIED IDEOGRAPH - ,0xB3CE ,0x6F84 //CJK UNIFIED IDEOGRAPH - ,0xB3CF ,0x8BDA //CJK UNIFIED IDEOGRAPH - ,0xB3D0 ,0x627F //CJK UNIFIED IDEOGRAPH - ,0xB3D1 ,0x901E //CJK UNIFIED IDEOGRAPH - ,0xB3D2 ,0x9A8B //CJK UNIFIED IDEOGRAPH - ,0xB3D3 ,0x79E4 //CJK UNIFIED IDEOGRAPH - ,0xB3D4 ,0x5403 //CJK UNIFIED IDEOGRAPH - ,0xB3D5 ,0x75F4 //CJK UNIFIED IDEOGRAPH - ,0xB3D6 ,0x6301 //CJK UNIFIED IDEOGRAPH - ,0xB3D7 ,0x5319 //CJK UNIFIED IDEOGRAPH - ,0xB3D8 ,0x6C60 //CJK UNIFIED IDEOGRAPH - ,0xB3D9 ,0x8FDF //CJK UNIFIED IDEOGRAPH - ,0xB3DA ,0x5F1B //CJK UNIFIED IDEOGRAPH - ,0xB3DB ,0x9A70 //CJK UNIFIED IDEOGRAPH - ,0xB3DC ,0x803B //CJK UNIFIED IDEOGRAPH - ,0xB3DD ,0x9F7F //CJK UNIFIED IDEOGRAPH - ,0xB3DE ,0x4F88 //CJK UNIFIED IDEOGRAPH - ,0xB3DF ,0x5C3A //CJK UNIFIED IDEOGRAPH - ,0xB3E0 ,0x8D64 //CJK UNIFIED IDEOGRAPH - ,0xB3E1 ,0x7FC5 //CJK UNIFIED IDEOGRAPH - ,0xB3E2 ,0x65A5 //CJK UNIFIED IDEOGRAPH - ,0xB3E3 ,0x70BD //CJK UNIFIED IDEOGRAPH - ,0xB3E4 ,0x5145 //CJK UNIFIED IDEOGRAPH - ,0xB3E5 ,0x51B2 //CJK UNIFIED IDEOGRAPH - ,0xB3E6 ,0x866B //CJK UNIFIED IDEOGRAPH - ,0xB3E7 ,0x5D07 //CJK UNIFIED IDEOGRAPH - ,0xB3E8 ,0x5BA0 //CJK UNIFIED IDEOGRAPH - ,0xB3E9 ,0x62BD //CJK UNIFIED IDEOGRAPH - ,0xB3EA ,0x916C //CJK UNIFIED IDEOGRAPH - ,0xB3EB ,0x7574 //CJK UNIFIED IDEOGRAPH - ,0xB3EC ,0x8E0C //CJK UNIFIED IDEOGRAPH - ,0xB3ED ,0x7A20 //CJK UNIFIED IDEOGRAPH - ,0xB3EE ,0x6101 //CJK UNIFIED IDEOGRAPH - ,0xB3EF ,0x7B79 //CJK UNIFIED IDEOGRAPH - ,0xB3F0 ,0x4EC7 //CJK UNIFIED IDEOGRAPH - ,0xB3F1 ,0x7EF8 //CJK UNIFIED IDEOGRAPH - ,0xB3F2 ,0x7785 //CJK UNIFIED IDEOGRAPH - ,0xB3F3 ,0x4E11 //CJK UNIFIED IDEOGRAPH - ,0xB3F4 ,0x81ED //CJK UNIFIED IDEOGRAPH - ,0xB3F5 ,0x521D //CJK UNIFIED IDEOGRAPH - ,0xB3F6 ,0x51FA //CJK UNIFIED IDEOGRAPH - ,0xB3F7 ,0x6A71 //CJK UNIFIED IDEOGRAPH - ,0xB3F8 ,0x53A8 //CJK UNIFIED IDEOGRAPH - ,0xB3F9 ,0x8E87 //CJK UNIFIED IDEOGRAPH - ,0xB3FA ,0x9504 //CJK UNIFIED IDEOGRAPH - ,0xB3FB ,0x96CF //CJK UNIFIED IDEOGRAPH - ,0xB3FC ,0x6EC1 //CJK UNIFIED IDEOGRAPH - ,0xB3FD ,0x9664 //CJK UNIFIED IDEOGRAPH - ,0xB3FE ,0x695A //CJK UNIFIED IDEOGRAPH - ,0xB440 ,0x7884 //CJK UNIFIED IDEOGRAPH - ,0xB441 ,0x7885 //CJK UNIFIED IDEOGRAPH - ,0xB442 ,0x7886 //CJK UNIFIED IDEOGRAPH - ,0xB443 ,0x7888 //CJK UNIFIED IDEOGRAPH - ,0xB444 ,0x788A //CJK UNIFIED IDEOGRAPH - ,0xB445 ,0x788B //CJK UNIFIED IDEOGRAPH - ,0xB446 ,0x788F //CJK UNIFIED IDEOGRAPH - ,0xB447 ,0x7890 //CJK UNIFIED IDEOGRAPH - ,0xB448 ,0x7892 //CJK UNIFIED IDEOGRAPH - ,0xB449 ,0x7894 //CJK UNIFIED IDEOGRAPH - ,0xB44A ,0x7895 //CJK UNIFIED IDEOGRAPH - ,0xB44B ,0x7896 //CJK UNIFIED IDEOGRAPH - ,0xB44C ,0x7899 //CJK UNIFIED IDEOGRAPH - ,0xB44D ,0x789D //CJK UNIFIED IDEOGRAPH - ,0xB44E ,0x789E //CJK UNIFIED IDEOGRAPH - ,0xB44F ,0x78A0 //CJK UNIFIED IDEOGRAPH - ,0xB450 ,0x78A2 //CJK UNIFIED IDEOGRAPH - ,0xB451 ,0x78A4 //CJK UNIFIED IDEOGRAPH - ,0xB452 ,0x78A6 //CJK UNIFIED IDEOGRAPH - ,0xB453 ,0x78A8 //CJK UNIFIED IDEOGRAPH - ,0xB454 ,0x78A9 //CJK UNIFIED IDEOGRAPH - ,0xB455 ,0x78AA //CJK UNIFIED IDEOGRAPH - ,0xB456 ,0x78AB //CJK UNIFIED IDEOGRAPH - ,0xB457 ,0x78AC //CJK UNIFIED IDEOGRAPH - ,0xB458 ,0x78AD //CJK UNIFIED IDEOGRAPH - ,0xB459 ,0x78AE //CJK UNIFIED IDEOGRAPH - ,0xB45A ,0x78AF //CJK UNIFIED IDEOGRAPH - ,0xB45B ,0x78B5 //CJK UNIFIED IDEOGRAPH - ,0xB45C ,0x78B6 //CJK UNIFIED IDEOGRAPH - ,0xB45D ,0x78B7 //CJK UNIFIED IDEOGRAPH - ,0xB45E ,0x78B8 //CJK UNIFIED IDEOGRAPH - ,0xB45F ,0x78BA //CJK UNIFIED IDEOGRAPH - ,0xB460 ,0x78BB //CJK UNIFIED IDEOGRAPH - ,0xB461 ,0x78BC //CJK UNIFIED IDEOGRAPH - ,0xB462 ,0x78BD //CJK UNIFIED IDEOGRAPH - ,0xB463 ,0x78BF //CJK UNIFIED IDEOGRAPH - ,0xB464 ,0x78C0 //CJK UNIFIED IDEOGRAPH - ,0xB465 ,0x78C2 //CJK UNIFIED IDEOGRAPH - ,0xB466 ,0x78C3 //CJK UNIFIED IDEOGRAPH - ,0xB467 ,0x78C4 //CJK UNIFIED IDEOGRAPH - ,0xB468 ,0x78C6 //CJK UNIFIED IDEOGRAPH - ,0xB469 ,0x78C7 //CJK UNIFIED IDEOGRAPH - ,0xB46A ,0x78C8 //CJK UNIFIED IDEOGRAPH - ,0xB46B ,0x78CC //CJK UNIFIED IDEOGRAPH - ,0xB46C ,0x78CD //CJK UNIFIED IDEOGRAPH - ,0xB46D ,0x78CE //CJK UNIFIED IDEOGRAPH - ,0xB46E ,0x78CF //CJK UNIFIED IDEOGRAPH - ,0xB46F ,0x78D1 //CJK UNIFIED IDEOGRAPH - ,0xB470 ,0x78D2 //CJK UNIFIED IDEOGRAPH - ,0xB471 ,0x78D3 //CJK UNIFIED IDEOGRAPH - ,0xB472 ,0x78D6 //CJK UNIFIED IDEOGRAPH - ,0xB473 ,0x78D7 //CJK UNIFIED IDEOGRAPH - ,0xB474 ,0x78D8 //CJK UNIFIED IDEOGRAPH - ,0xB475 ,0x78DA //CJK UNIFIED IDEOGRAPH - ,0xB476 ,0x78DB //CJK UNIFIED IDEOGRAPH - ,0xB477 ,0x78DC //CJK UNIFIED IDEOGRAPH - ,0xB478 ,0x78DD //CJK UNIFIED IDEOGRAPH - ,0xB479 ,0x78DE //CJK UNIFIED IDEOGRAPH - ,0xB47A ,0x78DF //CJK UNIFIED IDEOGRAPH - ,0xB47B ,0x78E0 //CJK UNIFIED IDEOGRAPH - ,0xB47C ,0x78E1 //CJK UNIFIED IDEOGRAPH - ,0xB47D ,0x78E2 //CJK UNIFIED IDEOGRAPH - ,0xB47E ,0x78E3 //CJK UNIFIED IDEOGRAPH - ,0xB480 ,0x78E4 //CJK UNIFIED IDEOGRAPH - ,0xB481 ,0x78E5 //CJK UNIFIED IDEOGRAPH - ,0xB482 ,0x78E6 //CJK UNIFIED IDEOGRAPH - ,0xB483 ,0x78E7 //CJK UNIFIED IDEOGRAPH - ,0xB484 ,0x78E9 //CJK UNIFIED IDEOGRAPH - ,0xB485 ,0x78EA //CJK UNIFIED IDEOGRAPH - ,0xB486 ,0x78EB //CJK UNIFIED IDEOGRAPH - ,0xB487 ,0x78ED //CJK UNIFIED IDEOGRAPH - ,0xB488 ,0x78EE //CJK UNIFIED IDEOGRAPH - ,0xB489 ,0x78EF //CJK UNIFIED IDEOGRAPH - ,0xB48A ,0x78F0 //CJK UNIFIED IDEOGRAPH - ,0xB48B ,0x78F1 //CJK UNIFIED IDEOGRAPH - ,0xB48C ,0x78F3 //CJK UNIFIED IDEOGRAPH - ,0xB48D ,0x78F5 //CJK UNIFIED IDEOGRAPH - ,0xB48E ,0x78F6 //CJK UNIFIED IDEOGRAPH - ,0xB48F ,0x78F8 //CJK UNIFIED IDEOGRAPH - ,0xB490 ,0x78F9 //CJK UNIFIED IDEOGRAPH - ,0xB491 ,0x78FB //CJK UNIFIED IDEOGRAPH - ,0xB492 ,0x78FC //CJK UNIFIED IDEOGRAPH - ,0xB493 ,0x78FD //CJK UNIFIED IDEOGRAPH - ,0xB494 ,0x78FE //CJK UNIFIED IDEOGRAPH - ,0xB495 ,0x78FF //CJK UNIFIED IDEOGRAPH - ,0xB496 ,0x7900 //CJK UNIFIED IDEOGRAPH - ,0xB497 ,0x7902 //CJK UNIFIED IDEOGRAPH - ,0xB498 ,0x7903 //CJK UNIFIED IDEOGRAPH - ,0xB499 ,0x7904 //CJK UNIFIED IDEOGRAPH - ,0xB49A ,0x7906 //CJK UNIFIED IDEOGRAPH - ,0xB49B ,0x7907 //CJK UNIFIED IDEOGRAPH - ,0xB49C ,0x7908 //CJK UNIFIED IDEOGRAPH - ,0xB49D ,0x7909 //CJK UNIFIED IDEOGRAPH - ,0xB49E ,0x790A //CJK UNIFIED IDEOGRAPH - ,0xB49F ,0x790B //CJK UNIFIED IDEOGRAPH - ,0xB4A0 ,0x790C //CJK UNIFIED IDEOGRAPH - ,0xB4A1 ,0x7840 //CJK UNIFIED IDEOGRAPH - ,0xB4A2 ,0x50A8 //CJK UNIFIED IDEOGRAPH - ,0xB4A3 ,0x77D7 //CJK UNIFIED IDEOGRAPH - ,0xB4A4 ,0x6410 //CJK UNIFIED IDEOGRAPH - ,0xB4A5 ,0x89E6 //CJK UNIFIED IDEOGRAPH - ,0xB4A6 ,0x5904 //CJK UNIFIED IDEOGRAPH - ,0xB4A7 ,0x63E3 //CJK UNIFIED IDEOGRAPH - ,0xB4A8 ,0x5DDD //CJK UNIFIED IDEOGRAPH - ,0xB4A9 ,0x7A7F //CJK UNIFIED IDEOGRAPH - ,0xB4AA ,0x693D //CJK UNIFIED IDEOGRAPH - ,0xB4AB ,0x4F20 //CJK UNIFIED IDEOGRAPH - ,0xB4AC ,0x8239 //CJK UNIFIED IDEOGRAPH - ,0xB4AD ,0x5598 //CJK UNIFIED IDEOGRAPH - ,0xB4AE ,0x4E32 //CJK UNIFIED IDEOGRAPH - ,0xB4AF ,0x75AE //CJK UNIFIED IDEOGRAPH - ,0xB4B0 ,0x7A97 //CJK UNIFIED IDEOGRAPH - ,0xB4B1 ,0x5E62 //CJK UNIFIED IDEOGRAPH - ,0xB4B2 ,0x5E8A //CJK UNIFIED IDEOGRAPH - ,0xB4B3 ,0x95EF //CJK UNIFIED IDEOGRAPH - ,0xB4B4 ,0x521B //CJK UNIFIED IDEOGRAPH - ,0xB4B5 ,0x5439 //CJK UNIFIED IDEOGRAPH - ,0xB4B6 ,0x708A //CJK UNIFIED IDEOGRAPH - ,0xB4B7 ,0x6376 //CJK UNIFIED IDEOGRAPH - ,0xB4B8 ,0x9524 //CJK UNIFIED IDEOGRAPH - ,0xB4B9 ,0x5782 //CJK UNIFIED IDEOGRAPH - ,0xB4BA ,0x6625 //CJK UNIFIED IDEOGRAPH - ,0xB4BB ,0x693F //CJK UNIFIED IDEOGRAPH - ,0xB4BC ,0x9187 //CJK UNIFIED IDEOGRAPH - ,0xB4BD ,0x5507 //CJK UNIFIED IDEOGRAPH - ,0xB4BE ,0x6DF3 //CJK UNIFIED IDEOGRAPH - ,0xB4BF ,0x7EAF //CJK UNIFIED IDEOGRAPH - ,0xB4C0 ,0x8822 //CJK UNIFIED IDEOGRAPH - ,0xB4C1 ,0x6233 //CJK UNIFIED IDEOGRAPH - ,0xB4C2 ,0x7EF0 //CJK UNIFIED IDEOGRAPH - ,0xB4C3 ,0x75B5 //CJK UNIFIED IDEOGRAPH - ,0xB4C4 ,0x8328 //CJK UNIFIED IDEOGRAPH - ,0xB4C5 ,0x78C1 //CJK UNIFIED IDEOGRAPH - ,0xB4C6 ,0x96CC //CJK UNIFIED IDEOGRAPH - ,0xB4C7 ,0x8F9E //CJK UNIFIED IDEOGRAPH - ,0xB4C8 ,0x6148 //CJK UNIFIED IDEOGRAPH - ,0xB4C9 ,0x74F7 //CJK UNIFIED IDEOGRAPH - ,0xB4CA ,0x8BCD //CJK UNIFIED IDEOGRAPH - ,0xB4CB ,0x6B64 //CJK UNIFIED IDEOGRAPH - ,0xB4CC ,0x523A //CJK UNIFIED IDEOGRAPH - ,0xB4CD ,0x8D50 //CJK UNIFIED IDEOGRAPH - ,0xB4CE ,0x6B21 //CJK UNIFIED IDEOGRAPH - ,0xB4CF ,0x806A //CJK UNIFIED IDEOGRAPH - ,0xB4D0 ,0x8471 //CJK UNIFIED IDEOGRAPH - ,0xB4D1 ,0x56F1 //CJK UNIFIED IDEOGRAPH - ,0xB4D2 ,0x5306 //CJK UNIFIED IDEOGRAPH - ,0xB4D3 ,0x4ECE //CJK UNIFIED IDEOGRAPH - ,0xB4D4 ,0x4E1B //CJK UNIFIED IDEOGRAPH - ,0xB4D5 ,0x51D1 //CJK UNIFIED IDEOGRAPH - ,0xB4D6 ,0x7C97 //CJK UNIFIED IDEOGRAPH - ,0xB4D7 ,0x918B //CJK UNIFIED IDEOGRAPH - ,0xB4D8 ,0x7C07 //CJK UNIFIED IDEOGRAPH - ,0xB4D9 ,0x4FC3 //CJK UNIFIED IDEOGRAPH - ,0xB4DA ,0x8E7F //CJK UNIFIED IDEOGRAPH - ,0xB4DB ,0x7BE1 //CJK UNIFIED IDEOGRAPH - ,0xB4DC ,0x7A9C //CJK UNIFIED IDEOGRAPH - ,0xB4DD ,0x6467 //CJK UNIFIED IDEOGRAPH - ,0xB4DE ,0x5D14 //CJK UNIFIED IDEOGRAPH - ,0xB4DF ,0x50AC //CJK UNIFIED IDEOGRAPH - ,0xB4E0 ,0x8106 //CJK UNIFIED IDEOGRAPH - ,0xB4E1 ,0x7601 //CJK UNIFIED IDEOGRAPH - ,0xB4E2 ,0x7CB9 //CJK UNIFIED IDEOGRAPH - ,0xB4E3 ,0x6DEC //CJK UNIFIED IDEOGRAPH - ,0xB4E4 ,0x7FE0 //CJK UNIFIED IDEOGRAPH - ,0xB4E5 ,0x6751 //CJK UNIFIED IDEOGRAPH - ,0xB4E6 ,0x5B58 //CJK UNIFIED IDEOGRAPH - ,0xB4E7 ,0x5BF8 //CJK UNIFIED IDEOGRAPH - ,0xB4E8 ,0x78CB //CJK UNIFIED IDEOGRAPH - ,0xB4E9 ,0x64AE //CJK UNIFIED IDEOGRAPH - ,0xB4EA ,0x6413 //CJK UNIFIED IDEOGRAPH - ,0xB4EB ,0x63AA //CJK UNIFIED IDEOGRAPH - ,0xB4EC ,0x632B //CJK UNIFIED IDEOGRAPH - ,0xB4ED ,0x9519 //CJK UNIFIED IDEOGRAPH - ,0xB4EE ,0x642D //CJK UNIFIED IDEOGRAPH - ,0xB4EF ,0x8FBE //CJK UNIFIED IDEOGRAPH - ,0xB4F0 ,0x7B54 //CJK UNIFIED IDEOGRAPH - ,0xB4F1 ,0x7629 //CJK UNIFIED IDEOGRAPH - ,0xB4F2 ,0x6253 //CJK UNIFIED IDEOGRAPH - ,0xB4F3 ,0x5927 //CJK UNIFIED IDEOGRAPH - ,0xB4F4 ,0x5446 //CJK UNIFIED IDEOGRAPH - ,0xB4F5 ,0x6B79 //CJK UNIFIED IDEOGRAPH - ,0xB4F6 ,0x50A3 //CJK UNIFIED IDEOGRAPH - ,0xB4F7 ,0x6234 //CJK UNIFIED IDEOGRAPH - ,0xB4F8 ,0x5E26 //CJK UNIFIED IDEOGRAPH - ,0xB4F9 ,0x6B86 //CJK UNIFIED IDEOGRAPH - ,0xB4FA ,0x4EE3 //CJK UNIFIED IDEOGRAPH - ,0xB4FB ,0x8D37 //CJK UNIFIED IDEOGRAPH - ,0xB4FC ,0x888B //CJK UNIFIED IDEOGRAPH - ,0xB4FD ,0x5F85 //CJK UNIFIED IDEOGRAPH - ,0xB4FE ,0x902E //CJK UNIFIED IDEOGRAPH - ,0xB540 ,0x790D //CJK UNIFIED IDEOGRAPH - ,0xB541 ,0x790E //CJK UNIFIED IDEOGRAPH - ,0xB542 ,0x790F //CJK UNIFIED IDEOGRAPH - ,0xB543 ,0x7910 //CJK UNIFIED IDEOGRAPH - ,0xB544 ,0x7911 //CJK UNIFIED IDEOGRAPH - ,0xB545 ,0x7912 //CJK UNIFIED IDEOGRAPH - ,0xB546 ,0x7914 //CJK UNIFIED IDEOGRAPH - ,0xB547 ,0x7915 //CJK UNIFIED IDEOGRAPH - ,0xB548 ,0x7916 //CJK UNIFIED IDEOGRAPH - ,0xB549 ,0x7917 //CJK UNIFIED IDEOGRAPH - ,0xB54A ,0x7918 //CJK UNIFIED IDEOGRAPH - ,0xB54B ,0x7919 //CJK UNIFIED IDEOGRAPH - ,0xB54C ,0x791A //CJK UNIFIED IDEOGRAPH - ,0xB54D ,0x791B //CJK UNIFIED IDEOGRAPH - ,0xB54E ,0x791C //CJK UNIFIED IDEOGRAPH - ,0xB54F ,0x791D //CJK UNIFIED IDEOGRAPH - ,0xB550 ,0x791F //CJK UNIFIED IDEOGRAPH - ,0xB551 ,0x7920 //CJK UNIFIED IDEOGRAPH - ,0xB552 ,0x7921 //CJK UNIFIED IDEOGRAPH - ,0xB553 ,0x7922 //CJK UNIFIED IDEOGRAPH - ,0xB554 ,0x7923 //CJK UNIFIED IDEOGRAPH - ,0xB555 ,0x7925 //CJK UNIFIED IDEOGRAPH - ,0xB556 ,0x7926 //CJK UNIFIED IDEOGRAPH - ,0xB557 ,0x7927 //CJK UNIFIED IDEOGRAPH - ,0xB558 ,0x7928 //CJK UNIFIED IDEOGRAPH - ,0xB559 ,0x7929 //CJK UNIFIED IDEOGRAPH - ,0xB55A ,0x792A //CJK UNIFIED IDEOGRAPH - ,0xB55B ,0x792B //CJK UNIFIED IDEOGRAPH - ,0xB55C ,0x792C //CJK UNIFIED IDEOGRAPH - ,0xB55D ,0x792D //CJK UNIFIED IDEOGRAPH - ,0xB55E ,0x792E //CJK UNIFIED IDEOGRAPH - ,0xB55F ,0x792F //CJK UNIFIED IDEOGRAPH - ,0xB560 ,0x7930 //CJK UNIFIED IDEOGRAPH - ,0xB561 ,0x7931 //CJK UNIFIED IDEOGRAPH - ,0xB562 ,0x7932 //CJK UNIFIED IDEOGRAPH - ,0xB563 ,0x7933 //CJK UNIFIED IDEOGRAPH - ,0xB564 ,0x7935 //CJK UNIFIED IDEOGRAPH - ,0xB565 ,0x7936 //CJK UNIFIED IDEOGRAPH - ,0xB566 ,0x7937 //CJK UNIFIED IDEOGRAPH - ,0xB567 ,0x7938 //CJK UNIFIED IDEOGRAPH - ,0xB568 ,0x7939 //CJK UNIFIED IDEOGRAPH - ,0xB569 ,0x793D //CJK UNIFIED IDEOGRAPH - ,0xB56A ,0x793F //CJK UNIFIED IDEOGRAPH - ,0xB56B ,0x7942 //CJK UNIFIED IDEOGRAPH - ,0xB56C ,0x7943 //CJK UNIFIED IDEOGRAPH - ,0xB56D ,0x7944 //CJK UNIFIED IDEOGRAPH - ,0xB56E ,0x7945 //CJK UNIFIED IDEOGRAPH - ,0xB56F ,0x7947 //CJK UNIFIED IDEOGRAPH - ,0xB570 ,0x794A //CJK UNIFIED IDEOGRAPH - ,0xB571 ,0x794B //CJK UNIFIED IDEOGRAPH - ,0xB572 ,0x794C //CJK UNIFIED IDEOGRAPH - ,0xB573 ,0x794D //CJK UNIFIED IDEOGRAPH - ,0xB574 ,0x794E //CJK UNIFIED IDEOGRAPH - ,0xB575 ,0x794F //CJK UNIFIED IDEOGRAPH - ,0xB576 ,0x7950 //CJK UNIFIED IDEOGRAPH - ,0xB577 ,0x7951 //CJK UNIFIED IDEOGRAPH - ,0xB578 ,0x7952 //CJK UNIFIED IDEOGRAPH - ,0xB579 ,0x7954 //CJK UNIFIED IDEOGRAPH - ,0xB57A ,0x7955 //CJK UNIFIED IDEOGRAPH - ,0xB57B ,0x7958 //CJK UNIFIED IDEOGRAPH - ,0xB57C ,0x7959 //CJK UNIFIED IDEOGRAPH - ,0xB57D ,0x7961 //CJK UNIFIED IDEOGRAPH - ,0xB57E ,0x7963 //CJK UNIFIED IDEOGRAPH - ,0xB580 ,0x7964 //CJK UNIFIED IDEOGRAPH - ,0xB581 ,0x7966 //CJK UNIFIED IDEOGRAPH - ,0xB582 ,0x7969 //CJK UNIFIED IDEOGRAPH - ,0xB583 ,0x796A //CJK UNIFIED IDEOGRAPH - ,0xB584 ,0x796B //CJK UNIFIED IDEOGRAPH - ,0xB585 ,0x796C //CJK UNIFIED IDEOGRAPH - ,0xB586 ,0x796E //CJK UNIFIED IDEOGRAPH - ,0xB587 ,0x7970 //CJK UNIFIED IDEOGRAPH - ,0xB588 ,0x7971 //CJK UNIFIED IDEOGRAPH - ,0xB589 ,0x7972 //CJK UNIFIED IDEOGRAPH - ,0xB58A ,0x7973 //CJK UNIFIED IDEOGRAPH - ,0xB58B ,0x7974 //CJK UNIFIED IDEOGRAPH - ,0xB58C ,0x7975 //CJK UNIFIED IDEOGRAPH - ,0xB58D ,0x7976 //CJK UNIFIED IDEOGRAPH - ,0xB58E ,0x7979 //CJK UNIFIED IDEOGRAPH - ,0xB58F ,0x797B //CJK UNIFIED IDEOGRAPH - ,0xB590 ,0x797C //CJK UNIFIED IDEOGRAPH - ,0xB591 ,0x797D //CJK UNIFIED IDEOGRAPH - ,0xB592 ,0x797E //CJK UNIFIED IDEOGRAPH - ,0xB593 ,0x797F //CJK UNIFIED IDEOGRAPH - ,0xB594 ,0x7982 //CJK UNIFIED IDEOGRAPH - ,0xB595 ,0x7983 //CJK UNIFIED IDEOGRAPH - ,0xB596 ,0x7986 //CJK UNIFIED IDEOGRAPH - ,0xB597 ,0x7987 //CJK UNIFIED IDEOGRAPH - ,0xB598 ,0x7988 //CJK UNIFIED IDEOGRAPH - ,0xB599 ,0x7989 //CJK UNIFIED IDEOGRAPH - ,0xB59A ,0x798B //CJK UNIFIED IDEOGRAPH - ,0xB59B ,0x798C //CJK UNIFIED IDEOGRAPH - ,0xB59C ,0x798D //CJK UNIFIED IDEOGRAPH - ,0xB59D ,0x798E //CJK UNIFIED IDEOGRAPH - ,0xB59E ,0x7990 //CJK UNIFIED IDEOGRAPH - ,0xB59F ,0x7991 //CJK UNIFIED IDEOGRAPH - ,0xB5A0 ,0x7992 //CJK UNIFIED IDEOGRAPH - ,0xB5A1 ,0x6020 //CJK UNIFIED IDEOGRAPH - ,0xB5A2 ,0x803D //CJK UNIFIED IDEOGRAPH - ,0xB5A3 ,0x62C5 //CJK UNIFIED IDEOGRAPH - ,0xB5A4 ,0x4E39 //CJK UNIFIED IDEOGRAPH - ,0xB5A5 ,0x5355 //CJK UNIFIED IDEOGRAPH - ,0xB5A6 ,0x90F8 //CJK UNIFIED IDEOGRAPH - ,0xB5A7 ,0x63B8 //CJK UNIFIED IDEOGRAPH - ,0xB5A8 ,0x80C6 //CJK UNIFIED IDEOGRAPH - ,0xB5A9 ,0x65E6 //CJK UNIFIED IDEOGRAPH - ,0xB5AA ,0x6C2E //CJK UNIFIED IDEOGRAPH - ,0xB5AB ,0x4F46 //CJK UNIFIED IDEOGRAPH - ,0xB5AC ,0x60EE //CJK UNIFIED IDEOGRAPH - ,0xB5AD ,0x6DE1 //CJK UNIFIED IDEOGRAPH - ,0xB5AE ,0x8BDE //CJK UNIFIED IDEOGRAPH - ,0xB5AF ,0x5F39 //CJK UNIFIED IDEOGRAPH - ,0xB5B0 ,0x86CB //CJK UNIFIED IDEOGRAPH - ,0xB5B1 ,0x5F53 //CJK UNIFIED IDEOGRAPH - ,0xB5B2 ,0x6321 //CJK UNIFIED IDEOGRAPH - ,0xB5B3 ,0x515A //CJK UNIFIED IDEOGRAPH - ,0xB5B4 ,0x8361 //CJK UNIFIED IDEOGRAPH - ,0xB5B5 ,0x6863 //CJK UNIFIED IDEOGRAPH - ,0xB5B6 ,0x5200 //CJK UNIFIED IDEOGRAPH - ,0xB5B7 ,0x6363 //CJK UNIFIED IDEOGRAPH - ,0xB5B8 ,0x8E48 //CJK UNIFIED IDEOGRAPH - ,0xB5B9 ,0x5012 //CJK UNIFIED IDEOGRAPH - ,0xB5BA ,0x5C9B //CJK UNIFIED IDEOGRAPH - ,0xB5BB ,0x7977 //CJK UNIFIED IDEOGRAPH - ,0xB5BC ,0x5BFC //CJK UNIFIED IDEOGRAPH - ,0xB5BD ,0x5230 //CJK UNIFIED IDEOGRAPH - ,0xB5BE ,0x7A3B //CJK UNIFIED IDEOGRAPH - ,0xB5BF ,0x60BC //CJK UNIFIED IDEOGRAPH - ,0xB5C0 ,0x9053 //CJK UNIFIED IDEOGRAPH - ,0xB5C1 ,0x76D7 //CJK UNIFIED IDEOGRAPH - ,0xB5C2 ,0x5FB7 //CJK UNIFIED IDEOGRAPH - ,0xB5C3 ,0x5F97 //CJK UNIFIED IDEOGRAPH - ,0xB5C4 ,0x7684 //CJK UNIFIED IDEOGRAPH - ,0xB5C5 ,0x8E6C //CJK UNIFIED IDEOGRAPH - ,0xB5C6 ,0x706F //CJK UNIFIED IDEOGRAPH - ,0xB5C7 ,0x767B //CJK UNIFIED IDEOGRAPH - ,0xB5C8 ,0x7B49 //CJK UNIFIED IDEOGRAPH - ,0xB5C9 ,0x77AA //CJK UNIFIED IDEOGRAPH - ,0xB5CA ,0x51F3 //CJK UNIFIED IDEOGRAPH - ,0xB5CB ,0x9093 //CJK UNIFIED IDEOGRAPH - ,0xB5CC ,0x5824 //CJK UNIFIED IDEOGRAPH - ,0xB5CD ,0x4F4E //CJK UNIFIED IDEOGRAPH - ,0xB5CE ,0x6EF4 //CJK UNIFIED IDEOGRAPH - ,0xB5CF ,0x8FEA //CJK UNIFIED IDEOGRAPH - ,0xB5D0 ,0x654C //CJK UNIFIED IDEOGRAPH - ,0xB5D1 ,0x7B1B //CJK UNIFIED IDEOGRAPH - ,0xB5D2 ,0x72C4 //CJK UNIFIED IDEOGRAPH - ,0xB5D3 ,0x6DA4 //CJK UNIFIED IDEOGRAPH - ,0xB5D4 ,0x7FDF //CJK UNIFIED IDEOGRAPH - ,0xB5D5 ,0x5AE1 //CJK UNIFIED IDEOGRAPH - ,0xB5D6 ,0x62B5 //CJK UNIFIED IDEOGRAPH - ,0xB5D7 ,0x5E95 //CJK UNIFIED IDEOGRAPH - ,0xB5D8 ,0x5730 //CJK UNIFIED IDEOGRAPH - ,0xB5D9 ,0x8482 //CJK UNIFIED IDEOGRAPH - ,0xB5DA ,0x7B2C //CJK UNIFIED IDEOGRAPH - ,0xB5DB ,0x5E1D //CJK UNIFIED IDEOGRAPH - ,0xB5DC ,0x5F1F //CJK UNIFIED IDEOGRAPH - ,0xB5DD ,0x9012 //CJK UNIFIED IDEOGRAPH - ,0xB5DE ,0x7F14 //CJK UNIFIED IDEOGRAPH - ,0xB5DF ,0x98A0 //CJK UNIFIED IDEOGRAPH - ,0xB5E0 ,0x6382 //CJK UNIFIED IDEOGRAPH - ,0xB5E1 ,0x6EC7 //CJK UNIFIED IDEOGRAPH - ,0xB5E2 ,0x7898 //CJK UNIFIED IDEOGRAPH - ,0xB5E3 ,0x70B9 //CJK UNIFIED IDEOGRAPH - ,0xB5E4 ,0x5178 //CJK UNIFIED IDEOGRAPH - ,0xB5E5 ,0x975B //CJK UNIFIED IDEOGRAPH - ,0xB5E6 ,0x57AB //CJK UNIFIED IDEOGRAPH - ,0xB5E7 ,0x7535 //CJK UNIFIED IDEOGRAPH - ,0xB5E8 ,0x4F43 //CJK UNIFIED IDEOGRAPH - ,0xB5E9 ,0x7538 //CJK UNIFIED IDEOGRAPH - ,0xB5EA ,0x5E97 //CJK UNIFIED IDEOGRAPH - ,0xB5EB ,0x60E6 //CJK UNIFIED IDEOGRAPH - ,0xB5EC ,0x5960 //CJK UNIFIED IDEOGRAPH - ,0xB5ED ,0x6DC0 //CJK UNIFIED IDEOGRAPH - ,0xB5EE ,0x6BBF //CJK UNIFIED IDEOGRAPH - ,0xB5EF ,0x7889 //CJK UNIFIED IDEOGRAPH - ,0xB5F0 ,0x53FC //CJK UNIFIED IDEOGRAPH - ,0xB5F1 ,0x96D5 //CJK UNIFIED IDEOGRAPH - ,0xB5F2 ,0x51CB //CJK UNIFIED IDEOGRAPH - ,0xB5F3 ,0x5201 //CJK UNIFIED IDEOGRAPH - ,0xB5F4 ,0x6389 //CJK UNIFIED IDEOGRAPH - ,0xB5F5 ,0x540A //CJK UNIFIED IDEOGRAPH - ,0xB5F6 ,0x9493 //CJK UNIFIED IDEOGRAPH - ,0xB5F7 ,0x8C03 //CJK UNIFIED IDEOGRAPH - ,0xB5F8 ,0x8DCC //CJK UNIFIED IDEOGRAPH - ,0xB5F9 ,0x7239 //CJK UNIFIED IDEOGRAPH - ,0xB5FA ,0x789F //CJK UNIFIED IDEOGRAPH - ,0xB5FB ,0x8776 //CJK UNIFIED IDEOGRAPH - ,0xB5FC ,0x8FED //CJK UNIFIED IDEOGRAPH - ,0xB5FD ,0x8C0D //CJK UNIFIED IDEOGRAPH - ,0xB5FE ,0x53E0 //CJK UNIFIED IDEOGRAPH - ,0xB640 ,0x7993 //CJK UNIFIED IDEOGRAPH - ,0xB641 ,0x7994 //CJK UNIFIED IDEOGRAPH - ,0xB642 ,0x7995 //CJK UNIFIED IDEOGRAPH - ,0xB643 ,0x7996 //CJK UNIFIED IDEOGRAPH - ,0xB644 ,0x7997 //CJK UNIFIED IDEOGRAPH - ,0xB645 ,0x7998 //CJK UNIFIED IDEOGRAPH - ,0xB646 ,0x7999 //CJK UNIFIED IDEOGRAPH - ,0xB647 ,0x799B //CJK UNIFIED IDEOGRAPH - ,0xB648 ,0x799C //CJK UNIFIED IDEOGRAPH - ,0xB649 ,0x799D //CJK UNIFIED IDEOGRAPH - ,0xB64A ,0x799E //CJK UNIFIED IDEOGRAPH - ,0xB64B ,0x799F //CJK UNIFIED IDEOGRAPH - ,0xB64C ,0x79A0 //CJK UNIFIED IDEOGRAPH - ,0xB64D ,0x79A1 //CJK UNIFIED IDEOGRAPH - ,0xB64E ,0x79A2 //CJK UNIFIED IDEOGRAPH - ,0xB64F ,0x79A3 //CJK UNIFIED IDEOGRAPH - ,0xB650 ,0x79A4 //CJK UNIFIED IDEOGRAPH - ,0xB651 ,0x79A5 //CJK UNIFIED IDEOGRAPH - ,0xB652 ,0x79A6 //CJK UNIFIED IDEOGRAPH - ,0xB653 ,0x79A8 //CJK UNIFIED IDEOGRAPH - ,0xB654 ,0x79A9 //CJK UNIFIED IDEOGRAPH - ,0xB655 ,0x79AA //CJK UNIFIED IDEOGRAPH - ,0xB656 ,0x79AB //CJK UNIFIED IDEOGRAPH - ,0xB657 ,0x79AC //CJK UNIFIED IDEOGRAPH - ,0xB658 ,0x79AD //CJK UNIFIED IDEOGRAPH - ,0xB659 ,0x79AE //CJK UNIFIED IDEOGRAPH - ,0xB65A ,0x79AF //CJK UNIFIED IDEOGRAPH - ,0xB65B ,0x79B0 //CJK UNIFIED IDEOGRAPH - ,0xB65C ,0x79B1 //CJK UNIFIED IDEOGRAPH - ,0xB65D ,0x79B2 //CJK UNIFIED IDEOGRAPH - ,0xB65E ,0x79B4 //CJK UNIFIED IDEOGRAPH - ,0xB65F ,0x79B5 //CJK UNIFIED IDEOGRAPH - ,0xB660 ,0x79B6 //CJK UNIFIED IDEOGRAPH - ,0xB661 ,0x79B7 //CJK UNIFIED IDEOGRAPH - ,0xB662 ,0x79B8 //CJK UNIFIED IDEOGRAPH - ,0xB663 ,0x79BC //CJK UNIFIED IDEOGRAPH - ,0xB664 ,0x79BF //CJK UNIFIED IDEOGRAPH - ,0xB665 ,0x79C2 //CJK UNIFIED IDEOGRAPH - ,0xB666 ,0x79C4 //CJK UNIFIED IDEOGRAPH - ,0xB667 ,0x79C5 //CJK UNIFIED IDEOGRAPH - ,0xB668 ,0x79C7 //CJK UNIFIED IDEOGRAPH - ,0xB669 ,0x79C8 //CJK UNIFIED IDEOGRAPH - ,0xB66A ,0x79CA //CJK UNIFIED IDEOGRAPH - ,0xB66B ,0x79CC //CJK UNIFIED IDEOGRAPH - ,0xB66C ,0x79CE //CJK UNIFIED IDEOGRAPH - ,0xB66D ,0x79CF //CJK UNIFIED IDEOGRAPH - ,0xB66E ,0x79D0 //CJK UNIFIED IDEOGRAPH - ,0xB66F ,0x79D3 //CJK UNIFIED IDEOGRAPH - ,0xB670 ,0x79D4 //CJK UNIFIED IDEOGRAPH - ,0xB671 ,0x79D6 //CJK UNIFIED IDEOGRAPH - ,0xB672 ,0x79D7 //CJK UNIFIED IDEOGRAPH - ,0xB673 ,0x79D9 //CJK UNIFIED IDEOGRAPH - ,0xB674 ,0x79DA //CJK UNIFIED IDEOGRAPH - ,0xB675 ,0x79DB //CJK UNIFIED IDEOGRAPH - ,0xB676 ,0x79DC //CJK UNIFIED IDEOGRAPH - ,0xB677 ,0x79DD //CJK UNIFIED IDEOGRAPH - ,0xB678 ,0x79DE //CJK UNIFIED IDEOGRAPH - ,0xB679 ,0x79E0 //CJK UNIFIED IDEOGRAPH - ,0xB67A ,0x79E1 //CJK UNIFIED IDEOGRAPH - ,0xB67B ,0x79E2 //CJK UNIFIED IDEOGRAPH - ,0xB67C ,0x79E5 //CJK UNIFIED IDEOGRAPH - ,0xB67D ,0x79E8 //CJK UNIFIED IDEOGRAPH - ,0xB67E ,0x79EA //CJK UNIFIED IDEOGRAPH - ,0xB680 ,0x79EC //CJK UNIFIED IDEOGRAPH - ,0xB681 ,0x79EE //CJK UNIFIED IDEOGRAPH - ,0xB682 ,0x79F1 //CJK UNIFIED IDEOGRAPH - ,0xB683 ,0x79F2 //CJK UNIFIED IDEOGRAPH - ,0xB684 ,0x79F3 //CJK UNIFIED IDEOGRAPH - ,0xB685 ,0x79F4 //CJK UNIFIED IDEOGRAPH - ,0xB686 ,0x79F5 //CJK UNIFIED IDEOGRAPH - ,0xB687 ,0x79F6 //CJK UNIFIED IDEOGRAPH - ,0xB688 ,0x79F7 //CJK UNIFIED IDEOGRAPH - ,0xB689 ,0x79F9 //CJK UNIFIED IDEOGRAPH - ,0xB68A ,0x79FA //CJK UNIFIED IDEOGRAPH - ,0xB68B ,0x79FC //CJK UNIFIED IDEOGRAPH - ,0xB68C ,0x79FE //CJK UNIFIED IDEOGRAPH - ,0xB68D ,0x79FF //CJK UNIFIED IDEOGRAPH - ,0xB68E ,0x7A01 //CJK UNIFIED IDEOGRAPH - ,0xB68F ,0x7A04 //CJK UNIFIED IDEOGRAPH - ,0xB690 ,0x7A05 //CJK UNIFIED IDEOGRAPH - ,0xB691 ,0x7A07 //CJK UNIFIED IDEOGRAPH - ,0xB692 ,0x7A08 //CJK UNIFIED IDEOGRAPH - ,0xB693 ,0x7A09 //CJK UNIFIED IDEOGRAPH - ,0xB694 ,0x7A0A //CJK UNIFIED IDEOGRAPH - ,0xB695 ,0x7A0C //CJK UNIFIED IDEOGRAPH - ,0xB696 ,0x7A0F //CJK UNIFIED IDEOGRAPH - ,0xB697 ,0x7A10 //CJK UNIFIED IDEOGRAPH - ,0xB698 ,0x7A11 //CJK UNIFIED IDEOGRAPH - ,0xB699 ,0x7A12 //CJK UNIFIED IDEOGRAPH - ,0xB69A ,0x7A13 //CJK UNIFIED IDEOGRAPH - ,0xB69B ,0x7A15 //CJK UNIFIED IDEOGRAPH - ,0xB69C ,0x7A16 //CJK UNIFIED IDEOGRAPH - ,0xB69D ,0x7A18 //CJK UNIFIED IDEOGRAPH - ,0xB69E ,0x7A19 //CJK UNIFIED IDEOGRAPH - ,0xB69F ,0x7A1B //CJK UNIFIED IDEOGRAPH - ,0xB6A0 ,0x7A1C //CJK UNIFIED IDEOGRAPH - ,0xB6A1 ,0x4E01 //CJK UNIFIED IDEOGRAPH - ,0xB6A2 ,0x76EF //CJK UNIFIED IDEOGRAPH - ,0xB6A3 ,0x53EE //CJK UNIFIED IDEOGRAPH - ,0xB6A4 ,0x9489 //CJK UNIFIED IDEOGRAPH - ,0xB6A5 ,0x9876 //CJK UNIFIED IDEOGRAPH - ,0xB6A6 ,0x9F0E //CJK UNIFIED IDEOGRAPH - ,0xB6A7 ,0x952D //CJK UNIFIED IDEOGRAPH - ,0xB6A8 ,0x5B9A //CJK UNIFIED IDEOGRAPH - ,0xB6A9 ,0x8BA2 //CJK UNIFIED IDEOGRAPH - ,0xB6AA ,0x4E22 //CJK UNIFIED IDEOGRAPH - ,0xB6AB ,0x4E1C //CJK UNIFIED IDEOGRAPH - ,0xB6AC ,0x51AC //CJK UNIFIED IDEOGRAPH - ,0xB6AD ,0x8463 //CJK UNIFIED IDEOGRAPH - ,0xB6AE ,0x61C2 //CJK UNIFIED IDEOGRAPH - ,0xB6AF ,0x52A8 //CJK UNIFIED IDEOGRAPH - ,0xB6B0 ,0x680B //CJK UNIFIED IDEOGRAPH - ,0xB6B1 ,0x4F97 //CJK UNIFIED IDEOGRAPH - ,0xB6B2 ,0x606B //CJK UNIFIED IDEOGRAPH - ,0xB6B3 ,0x51BB //CJK UNIFIED IDEOGRAPH - ,0xB6B4 ,0x6D1E //CJK UNIFIED IDEOGRAPH - ,0xB6B5 ,0x515C //CJK UNIFIED IDEOGRAPH - ,0xB6B6 ,0x6296 //CJK UNIFIED IDEOGRAPH - ,0xB6B7 ,0x6597 //CJK UNIFIED IDEOGRAPH - ,0xB6B8 ,0x9661 //CJK UNIFIED IDEOGRAPH - ,0xB6B9 ,0x8C46 //CJK UNIFIED IDEOGRAPH - ,0xB6BA ,0x9017 //CJK UNIFIED IDEOGRAPH - ,0xB6BB ,0x75D8 //CJK UNIFIED IDEOGRAPH - ,0xB6BC ,0x90FD //CJK UNIFIED IDEOGRAPH - ,0xB6BD ,0x7763 //CJK UNIFIED IDEOGRAPH - ,0xB6BE ,0x6BD2 //CJK UNIFIED IDEOGRAPH - ,0xB6BF ,0x728A //CJK UNIFIED IDEOGRAPH - ,0xB6C0 ,0x72EC //CJK UNIFIED IDEOGRAPH - ,0xB6C1 ,0x8BFB //CJK UNIFIED IDEOGRAPH - ,0xB6C2 ,0x5835 //CJK UNIFIED IDEOGRAPH - ,0xB6C3 ,0x7779 //CJK UNIFIED IDEOGRAPH - ,0xB6C4 ,0x8D4C //CJK UNIFIED IDEOGRAPH - ,0xB6C5 ,0x675C //CJK UNIFIED IDEOGRAPH - ,0xB6C6 ,0x9540 //CJK UNIFIED IDEOGRAPH - ,0xB6C7 ,0x809A //CJK UNIFIED IDEOGRAPH - ,0xB6C8 ,0x5EA6 //CJK UNIFIED IDEOGRAPH - ,0xB6C9 ,0x6E21 //CJK UNIFIED IDEOGRAPH - ,0xB6CA ,0x5992 //CJK UNIFIED IDEOGRAPH - ,0xB6CB ,0x7AEF //CJK UNIFIED IDEOGRAPH - ,0xB6CC ,0x77ED //CJK UNIFIED IDEOGRAPH - ,0xB6CD ,0x953B //CJK UNIFIED IDEOGRAPH - ,0xB6CE ,0x6BB5 //CJK UNIFIED IDEOGRAPH - ,0xB6CF ,0x65AD //CJK UNIFIED IDEOGRAPH - ,0xB6D0 ,0x7F0E //CJK UNIFIED IDEOGRAPH - ,0xB6D1 ,0x5806 //CJK UNIFIED IDEOGRAPH - ,0xB6D2 ,0x5151 //CJK UNIFIED IDEOGRAPH - ,0xB6D3 ,0x961F //CJK UNIFIED IDEOGRAPH - ,0xB6D4 ,0x5BF9 //CJK UNIFIED IDEOGRAPH - ,0xB6D5 ,0x58A9 //CJK UNIFIED IDEOGRAPH - ,0xB6D6 ,0x5428 //CJK UNIFIED IDEOGRAPH - ,0xB6D7 ,0x8E72 //CJK UNIFIED IDEOGRAPH - ,0xB6D8 ,0x6566 //CJK UNIFIED IDEOGRAPH - ,0xB6D9 ,0x987F //CJK UNIFIED IDEOGRAPH - ,0xB6DA ,0x56E4 //CJK UNIFIED IDEOGRAPH - ,0xB6DB ,0x949D //CJK UNIFIED IDEOGRAPH - ,0xB6DC ,0x76FE //CJK UNIFIED IDEOGRAPH - ,0xB6DD ,0x9041 //CJK UNIFIED IDEOGRAPH - ,0xB6DE ,0x6387 //CJK UNIFIED IDEOGRAPH - ,0xB6DF ,0x54C6 //CJK UNIFIED IDEOGRAPH - ,0xB6E0 ,0x591A //CJK UNIFIED IDEOGRAPH - ,0xB6E1 ,0x593A //CJK UNIFIED IDEOGRAPH - ,0xB6E2 ,0x579B //CJK UNIFIED IDEOGRAPH - ,0xB6E3 ,0x8EB2 //CJK UNIFIED IDEOGRAPH - ,0xB6E4 ,0x6735 //CJK UNIFIED IDEOGRAPH - ,0xB6E5 ,0x8DFA //CJK UNIFIED IDEOGRAPH - ,0xB6E6 ,0x8235 //CJK UNIFIED IDEOGRAPH - ,0xB6E7 ,0x5241 //CJK UNIFIED IDEOGRAPH - ,0xB6E8 ,0x60F0 //CJK UNIFIED IDEOGRAPH - ,0xB6E9 ,0x5815 //CJK UNIFIED IDEOGRAPH - ,0xB6EA ,0x86FE //CJK UNIFIED IDEOGRAPH - ,0xB6EB ,0x5CE8 //CJK UNIFIED IDEOGRAPH - ,0xB6EC ,0x9E45 //CJK UNIFIED IDEOGRAPH - ,0xB6ED ,0x4FC4 //CJK UNIFIED IDEOGRAPH - ,0xB6EE ,0x989D //CJK UNIFIED IDEOGRAPH - ,0xB6EF ,0x8BB9 //CJK UNIFIED IDEOGRAPH - ,0xB6F0 ,0x5A25 //CJK UNIFIED IDEOGRAPH - ,0xB6F1 ,0x6076 //CJK UNIFIED IDEOGRAPH - ,0xB6F2 ,0x5384 //CJK UNIFIED IDEOGRAPH - ,0xB6F3 ,0x627C //CJK UNIFIED IDEOGRAPH - ,0xB6F4 ,0x904F //CJK UNIFIED IDEOGRAPH - ,0xB6F5 ,0x9102 //CJK UNIFIED IDEOGRAPH - ,0xB6F6 ,0x997F //CJK UNIFIED IDEOGRAPH - ,0xB6F7 ,0x6069 //CJK UNIFIED IDEOGRAPH - ,0xB6F8 ,0x800C //CJK UNIFIED IDEOGRAPH - ,0xB6F9 ,0x513F //CJK UNIFIED IDEOGRAPH - ,0xB6FA ,0x8033 //CJK UNIFIED IDEOGRAPH - ,0xB6FB ,0x5C14 //CJK UNIFIED IDEOGRAPH - ,0xB6FC ,0x9975 //CJK UNIFIED IDEOGRAPH - ,0xB6FD ,0x6D31 //CJK UNIFIED IDEOGRAPH - ,0xB6FE ,0x4E8C //CJK UNIFIED IDEOGRAPH - ,0xB740 ,0x7A1D //CJK UNIFIED IDEOGRAPH - ,0xB741 ,0x7A1F //CJK UNIFIED IDEOGRAPH - ,0xB742 ,0x7A21 //CJK UNIFIED IDEOGRAPH - ,0xB743 ,0x7A22 //CJK UNIFIED IDEOGRAPH - ,0xB744 ,0x7A24 //CJK UNIFIED IDEOGRAPH - ,0xB745 ,0x7A25 //CJK UNIFIED IDEOGRAPH - ,0xB746 ,0x7A26 //CJK UNIFIED IDEOGRAPH - ,0xB747 ,0x7A27 //CJK UNIFIED IDEOGRAPH - ,0xB748 ,0x7A28 //CJK UNIFIED IDEOGRAPH - ,0xB749 ,0x7A29 //CJK UNIFIED IDEOGRAPH - ,0xB74A ,0x7A2A //CJK UNIFIED IDEOGRAPH - ,0xB74B ,0x7A2B //CJK UNIFIED IDEOGRAPH - ,0xB74C ,0x7A2C //CJK UNIFIED IDEOGRAPH - ,0xB74D ,0x7A2D //CJK UNIFIED IDEOGRAPH - ,0xB74E ,0x7A2E //CJK UNIFIED IDEOGRAPH - ,0xB74F ,0x7A2F //CJK UNIFIED IDEOGRAPH - ,0xB750 ,0x7A30 //CJK UNIFIED IDEOGRAPH - ,0xB751 ,0x7A31 //CJK UNIFIED IDEOGRAPH - ,0xB752 ,0x7A32 //CJK UNIFIED IDEOGRAPH - ,0xB753 ,0x7A34 //CJK UNIFIED IDEOGRAPH - ,0xB754 ,0x7A35 //CJK UNIFIED IDEOGRAPH - ,0xB755 ,0x7A36 //CJK UNIFIED IDEOGRAPH - ,0xB756 ,0x7A38 //CJK UNIFIED IDEOGRAPH - ,0xB757 ,0x7A3A //CJK UNIFIED IDEOGRAPH - ,0xB758 ,0x7A3E //CJK UNIFIED IDEOGRAPH - ,0xB759 ,0x7A40 //CJK UNIFIED IDEOGRAPH - ,0xB75A ,0x7A41 //CJK UNIFIED IDEOGRAPH - ,0xB75B ,0x7A42 //CJK UNIFIED IDEOGRAPH - ,0xB75C ,0x7A43 //CJK UNIFIED IDEOGRAPH - ,0xB75D ,0x7A44 //CJK UNIFIED IDEOGRAPH - ,0xB75E ,0x7A45 //CJK UNIFIED IDEOGRAPH - ,0xB75F ,0x7A47 //CJK UNIFIED IDEOGRAPH - ,0xB760 ,0x7A48 //CJK UNIFIED IDEOGRAPH - ,0xB761 ,0x7A49 //CJK UNIFIED IDEOGRAPH - ,0xB762 ,0x7A4A //CJK UNIFIED IDEOGRAPH - ,0xB763 ,0x7A4B //CJK UNIFIED IDEOGRAPH - ,0xB764 ,0x7A4C //CJK UNIFIED IDEOGRAPH - ,0xB765 ,0x7A4D //CJK UNIFIED IDEOGRAPH - ,0xB766 ,0x7A4E //CJK UNIFIED IDEOGRAPH - ,0xB767 ,0x7A4F //CJK UNIFIED IDEOGRAPH - ,0xB768 ,0x7A50 //CJK UNIFIED IDEOGRAPH - ,0xB769 ,0x7A52 //CJK UNIFIED IDEOGRAPH - ,0xB76A ,0x7A53 //CJK UNIFIED IDEOGRAPH - ,0xB76B ,0x7A54 //CJK UNIFIED IDEOGRAPH - ,0xB76C ,0x7A55 //CJK UNIFIED IDEOGRAPH - ,0xB76D ,0x7A56 //CJK UNIFIED IDEOGRAPH - ,0xB76E ,0x7A58 //CJK UNIFIED IDEOGRAPH - ,0xB76F ,0x7A59 //CJK UNIFIED IDEOGRAPH - ,0xB770 ,0x7A5A //CJK UNIFIED IDEOGRAPH - ,0xB771 ,0x7A5B //CJK UNIFIED IDEOGRAPH - ,0xB772 ,0x7A5C //CJK UNIFIED IDEOGRAPH - ,0xB773 ,0x7A5D //CJK UNIFIED IDEOGRAPH - ,0xB774 ,0x7A5E //CJK UNIFIED IDEOGRAPH - ,0xB775 ,0x7A5F //CJK UNIFIED IDEOGRAPH - ,0xB776 ,0x7A60 //CJK UNIFIED IDEOGRAPH - ,0xB777 ,0x7A61 //CJK UNIFIED IDEOGRAPH - ,0xB778 ,0x7A62 //CJK UNIFIED IDEOGRAPH - ,0xB779 ,0x7A63 //CJK UNIFIED IDEOGRAPH - ,0xB77A ,0x7A64 //CJK UNIFIED IDEOGRAPH - ,0xB77B ,0x7A65 //CJK UNIFIED IDEOGRAPH - ,0xB77C ,0x7A66 //CJK UNIFIED IDEOGRAPH - ,0xB77D ,0x7A67 //CJK UNIFIED IDEOGRAPH - ,0xB77E ,0x7A68 //CJK UNIFIED IDEOGRAPH - ,0xB780 ,0x7A69 //CJK UNIFIED IDEOGRAPH - ,0xB781 ,0x7A6A //CJK UNIFIED IDEOGRAPH - ,0xB782 ,0x7A6B //CJK UNIFIED IDEOGRAPH - ,0xB783 ,0x7A6C //CJK UNIFIED IDEOGRAPH - ,0xB784 ,0x7A6D //CJK UNIFIED IDEOGRAPH - ,0xB785 ,0x7A6E //CJK UNIFIED IDEOGRAPH - ,0xB786 ,0x7A6F //CJK UNIFIED IDEOGRAPH - ,0xB787 ,0x7A71 //CJK UNIFIED IDEOGRAPH - ,0xB788 ,0x7A72 //CJK UNIFIED IDEOGRAPH - ,0xB789 ,0x7A73 //CJK UNIFIED IDEOGRAPH - ,0xB78A ,0x7A75 //CJK UNIFIED IDEOGRAPH - ,0xB78B ,0x7A7B //CJK UNIFIED IDEOGRAPH - ,0xB78C ,0x7A7C //CJK UNIFIED IDEOGRAPH - ,0xB78D ,0x7A7D //CJK UNIFIED IDEOGRAPH - ,0xB78E ,0x7A7E //CJK UNIFIED IDEOGRAPH - ,0xB78F ,0x7A82 //CJK UNIFIED IDEOGRAPH - ,0xB790 ,0x7A85 //CJK UNIFIED IDEOGRAPH - ,0xB791 ,0x7A87 //CJK UNIFIED IDEOGRAPH - ,0xB792 ,0x7A89 //CJK UNIFIED IDEOGRAPH - ,0xB793 ,0x7A8A //CJK UNIFIED IDEOGRAPH - ,0xB794 ,0x7A8B //CJK UNIFIED IDEOGRAPH - ,0xB795 ,0x7A8C //CJK UNIFIED IDEOGRAPH - ,0xB796 ,0x7A8E //CJK UNIFIED IDEOGRAPH - ,0xB797 ,0x7A8F //CJK UNIFIED IDEOGRAPH - ,0xB798 ,0x7A90 //CJK UNIFIED IDEOGRAPH - ,0xB799 ,0x7A93 //CJK UNIFIED IDEOGRAPH - ,0xB79A ,0x7A94 //CJK UNIFIED IDEOGRAPH - ,0xB79B ,0x7A99 //CJK UNIFIED IDEOGRAPH - ,0xB79C ,0x7A9A //CJK UNIFIED IDEOGRAPH - ,0xB79D ,0x7A9B //CJK UNIFIED IDEOGRAPH - ,0xB79E ,0x7A9E //CJK UNIFIED IDEOGRAPH - ,0xB79F ,0x7AA1 //CJK UNIFIED IDEOGRAPH - ,0xB7A0 ,0x7AA2 //CJK UNIFIED IDEOGRAPH - ,0xB7A1 ,0x8D30 //CJK UNIFIED IDEOGRAPH - ,0xB7A2 ,0x53D1 //CJK UNIFIED IDEOGRAPH - ,0xB7A3 ,0x7F5A //CJK UNIFIED IDEOGRAPH - ,0xB7A4 ,0x7B4F //CJK UNIFIED IDEOGRAPH - ,0xB7A5 ,0x4F10 //CJK UNIFIED IDEOGRAPH - ,0xB7A6 ,0x4E4F //CJK UNIFIED IDEOGRAPH - ,0xB7A7 ,0x9600 //CJK UNIFIED IDEOGRAPH - ,0xB7A8 ,0x6CD5 //CJK UNIFIED IDEOGRAPH - ,0xB7A9 ,0x73D0 //CJK UNIFIED IDEOGRAPH - ,0xB7AA ,0x85E9 //CJK UNIFIED IDEOGRAPH - ,0xB7AB ,0x5E06 //CJK UNIFIED IDEOGRAPH - ,0xB7AC ,0x756A //CJK UNIFIED IDEOGRAPH - ,0xB7AD ,0x7FFB //CJK UNIFIED IDEOGRAPH - ,0xB7AE ,0x6A0A //CJK UNIFIED IDEOGRAPH - ,0xB7AF ,0x77FE //CJK UNIFIED IDEOGRAPH - ,0xB7B0 ,0x9492 //CJK UNIFIED IDEOGRAPH - ,0xB7B1 ,0x7E41 //CJK UNIFIED IDEOGRAPH - ,0xB7B2 ,0x51E1 //CJK UNIFIED IDEOGRAPH - ,0xB7B3 ,0x70E6 //CJK UNIFIED IDEOGRAPH - ,0xB7B4 ,0x53CD //CJK UNIFIED IDEOGRAPH - ,0xB7B5 ,0x8FD4 //CJK UNIFIED IDEOGRAPH - ,0xB7B6 ,0x8303 //CJK UNIFIED IDEOGRAPH - ,0xB7B7 ,0x8D29 //CJK UNIFIED IDEOGRAPH - ,0xB7B8 ,0x72AF //CJK UNIFIED IDEOGRAPH - ,0xB7B9 ,0x996D //CJK UNIFIED IDEOGRAPH - ,0xB7BA ,0x6CDB //CJK UNIFIED IDEOGRAPH - ,0xB7BB ,0x574A //CJK UNIFIED IDEOGRAPH - ,0xB7BC ,0x82B3 //CJK UNIFIED IDEOGRAPH - ,0xB7BD ,0x65B9 //CJK UNIFIED IDEOGRAPH - ,0xB7BE ,0x80AA //CJK UNIFIED IDEOGRAPH - ,0xB7BF ,0x623F //CJK UNIFIED IDEOGRAPH - ,0xB7C0 ,0x9632 //CJK UNIFIED IDEOGRAPH - ,0xB7C1 ,0x59A8 //CJK UNIFIED IDEOGRAPH - ,0xB7C2 ,0x4EFF //CJK UNIFIED IDEOGRAPH - ,0xB7C3 ,0x8BBF //CJK UNIFIED IDEOGRAPH - ,0xB7C4 ,0x7EBA //CJK UNIFIED IDEOGRAPH - ,0xB7C5 ,0x653E //CJK UNIFIED IDEOGRAPH - ,0xB7C6 ,0x83F2 //CJK UNIFIED IDEOGRAPH - ,0xB7C7 ,0x975E //CJK UNIFIED IDEOGRAPH - ,0xB7C8 ,0x5561 //CJK UNIFIED IDEOGRAPH - ,0xB7C9 ,0x98DE //CJK UNIFIED IDEOGRAPH - ,0xB7CA ,0x80A5 //CJK UNIFIED IDEOGRAPH - ,0xB7CB ,0x532A //CJK UNIFIED IDEOGRAPH - ,0xB7CC ,0x8BFD //CJK UNIFIED IDEOGRAPH - ,0xB7CD ,0x5420 //CJK UNIFIED IDEOGRAPH - ,0xB7CE ,0x80BA //CJK UNIFIED IDEOGRAPH - ,0xB7CF ,0x5E9F //CJK UNIFIED IDEOGRAPH - ,0xB7D0 ,0x6CB8 //CJK UNIFIED IDEOGRAPH - ,0xB7D1 ,0x8D39 //CJK UNIFIED IDEOGRAPH - ,0xB7D2 ,0x82AC //CJK UNIFIED IDEOGRAPH - ,0xB7D3 ,0x915A //CJK UNIFIED IDEOGRAPH - ,0xB7D4 ,0x5429 //CJK UNIFIED IDEOGRAPH - ,0xB7D5 ,0x6C1B //CJK UNIFIED IDEOGRAPH - ,0xB7D6 ,0x5206 //CJK UNIFIED IDEOGRAPH - ,0xB7D7 ,0x7EB7 //CJK UNIFIED IDEOGRAPH - ,0xB7D8 ,0x575F //CJK UNIFIED IDEOGRAPH - ,0xB7D9 ,0x711A //CJK UNIFIED IDEOGRAPH - ,0xB7DA ,0x6C7E //CJK UNIFIED IDEOGRAPH - ,0xB7DB ,0x7C89 //CJK UNIFIED IDEOGRAPH - ,0xB7DC ,0x594B //CJK UNIFIED IDEOGRAPH - ,0xB7DD ,0x4EFD //CJK UNIFIED IDEOGRAPH - ,0xB7DE ,0x5FFF //CJK UNIFIED IDEOGRAPH - ,0xB7DF ,0x6124 //CJK UNIFIED IDEOGRAPH - ,0xB7E0 ,0x7CAA //CJK UNIFIED IDEOGRAPH - ,0xB7E1 ,0x4E30 //CJK UNIFIED IDEOGRAPH - ,0xB7E2 ,0x5C01 //CJK UNIFIED IDEOGRAPH - ,0xB7E3 ,0x67AB //CJK UNIFIED IDEOGRAPH - ,0xB7E4 ,0x8702 //CJK UNIFIED IDEOGRAPH - ,0xB7E5 ,0x5CF0 //CJK UNIFIED IDEOGRAPH - ,0xB7E6 ,0x950B //CJK UNIFIED IDEOGRAPH - ,0xB7E7 ,0x98CE //CJK UNIFIED IDEOGRAPH - ,0xB7E8 ,0x75AF //CJK UNIFIED IDEOGRAPH - ,0xB7E9 ,0x70FD //CJK UNIFIED IDEOGRAPH - ,0xB7EA ,0x9022 //CJK UNIFIED IDEOGRAPH - ,0xB7EB ,0x51AF //CJK UNIFIED IDEOGRAPH - ,0xB7EC ,0x7F1D //CJK UNIFIED IDEOGRAPH - ,0xB7ED ,0x8BBD //CJK UNIFIED IDEOGRAPH - ,0xB7EE ,0x5949 //CJK UNIFIED IDEOGRAPH - ,0xB7EF ,0x51E4 //CJK UNIFIED IDEOGRAPH - ,0xB7F0 ,0x4F5B //CJK UNIFIED IDEOGRAPH - ,0xB7F1 ,0x5426 //CJK UNIFIED IDEOGRAPH - ,0xB7F2 ,0x592B //CJK UNIFIED IDEOGRAPH - ,0xB7F3 ,0x6577 //CJK UNIFIED IDEOGRAPH - ,0xB7F4 ,0x80A4 //CJK UNIFIED IDEOGRAPH - ,0xB7F5 ,0x5B75 //CJK UNIFIED IDEOGRAPH - ,0xB7F6 ,0x6276 //CJK UNIFIED IDEOGRAPH - ,0xB7F7 ,0x62C2 //CJK UNIFIED IDEOGRAPH - ,0xB7F8 ,0x8F90 //CJK UNIFIED IDEOGRAPH - ,0xB7F9 ,0x5E45 //CJK UNIFIED IDEOGRAPH - ,0xB7FA ,0x6C1F //CJK UNIFIED IDEOGRAPH - ,0xB7FB ,0x7B26 //CJK UNIFIED IDEOGRAPH - ,0xB7FC ,0x4F0F //CJK UNIFIED IDEOGRAPH - ,0xB7FD ,0x4FD8 //CJK UNIFIED IDEOGRAPH - ,0xB7FE ,0x670D //CJK UNIFIED IDEOGRAPH - ,0xB840 ,0x7AA3 //CJK UNIFIED IDEOGRAPH - ,0xB841 ,0x7AA4 //CJK UNIFIED IDEOGRAPH - ,0xB842 ,0x7AA7 //CJK UNIFIED IDEOGRAPH - ,0xB843 ,0x7AA9 //CJK UNIFIED IDEOGRAPH - ,0xB844 ,0x7AAA //CJK UNIFIED IDEOGRAPH - ,0xB845 ,0x7AAB //CJK UNIFIED IDEOGRAPH - ,0xB846 ,0x7AAE //CJK UNIFIED IDEOGRAPH - ,0xB847 ,0x7AAF //CJK UNIFIED IDEOGRAPH - ,0xB848 ,0x7AB0 //CJK UNIFIED IDEOGRAPH - ,0xB849 ,0x7AB1 //CJK UNIFIED IDEOGRAPH - ,0xB84A ,0x7AB2 //CJK UNIFIED IDEOGRAPH - ,0xB84B ,0x7AB4 //CJK UNIFIED IDEOGRAPH - ,0xB84C ,0x7AB5 //CJK UNIFIED IDEOGRAPH - ,0xB84D ,0x7AB6 //CJK UNIFIED IDEOGRAPH - ,0xB84E ,0x7AB7 //CJK UNIFIED IDEOGRAPH - ,0xB84F ,0x7AB8 //CJK UNIFIED IDEOGRAPH - ,0xB850 ,0x7AB9 //CJK UNIFIED IDEOGRAPH - ,0xB851 ,0x7ABA //CJK UNIFIED IDEOGRAPH - ,0xB852 ,0x7ABB //CJK UNIFIED IDEOGRAPH - ,0xB853 ,0x7ABC //CJK UNIFIED IDEOGRAPH - ,0xB854 ,0x7ABD //CJK UNIFIED IDEOGRAPH - ,0xB855 ,0x7ABE //CJK UNIFIED IDEOGRAPH - ,0xB856 ,0x7AC0 //CJK UNIFIED IDEOGRAPH - ,0xB857 ,0x7AC1 //CJK UNIFIED IDEOGRAPH - ,0xB858 ,0x7AC2 //CJK UNIFIED IDEOGRAPH - ,0xB859 ,0x7AC3 //CJK UNIFIED IDEOGRAPH - ,0xB85A ,0x7AC4 //CJK UNIFIED IDEOGRAPH - ,0xB85B ,0x7AC5 //CJK UNIFIED IDEOGRAPH - ,0xB85C ,0x7AC6 //CJK UNIFIED IDEOGRAPH - ,0xB85D ,0x7AC7 //CJK UNIFIED IDEOGRAPH - ,0xB85E ,0x7AC8 //CJK UNIFIED IDEOGRAPH - ,0xB85F ,0x7AC9 //CJK UNIFIED IDEOGRAPH - ,0xB860 ,0x7ACA //CJK UNIFIED IDEOGRAPH - ,0xB861 ,0x7ACC //CJK UNIFIED IDEOGRAPH - ,0xB862 ,0x7ACD //CJK UNIFIED IDEOGRAPH - ,0xB863 ,0x7ACE //CJK UNIFIED IDEOGRAPH - ,0xB864 ,0x7ACF //CJK UNIFIED IDEOGRAPH - ,0xB865 ,0x7AD0 //CJK UNIFIED IDEOGRAPH - ,0xB866 ,0x7AD1 //CJK UNIFIED IDEOGRAPH - ,0xB867 ,0x7AD2 //CJK UNIFIED IDEOGRAPH - ,0xB868 ,0x7AD3 //CJK UNIFIED IDEOGRAPH - ,0xB869 ,0x7AD4 //CJK UNIFIED IDEOGRAPH - ,0xB86A ,0x7AD5 //CJK UNIFIED IDEOGRAPH - ,0xB86B ,0x7AD7 //CJK UNIFIED IDEOGRAPH - ,0xB86C ,0x7AD8 //CJK UNIFIED IDEOGRAPH - ,0xB86D ,0x7ADA //CJK UNIFIED IDEOGRAPH - ,0xB86E ,0x7ADB //CJK UNIFIED IDEOGRAPH - ,0xB86F ,0x7ADC //CJK UNIFIED IDEOGRAPH - ,0xB870 ,0x7ADD //CJK UNIFIED IDEOGRAPH - ,0xB871 ,0x7AE1 //CJK UNIFIED IDEOGRAPH - ,0xB872 ,0x7AE2 //CJK UNIFIED IDEOGRAPH - ,0xB873 ,0x7AE4 //CJK UNIFIED IDEOGRAPH - ,0xB874 ,0x7AE7 //CJK UNIFIED IDEOGRAPH - ,0xB875 ,0x7AE8 //CJK UNIFIED IDEOGRAPH - ,0xB876 ,0x7AE9 //CJK UNIFIED IDEOGRAPH - ,0xB877 ,0x7AEA //CJK UNIFIED IDEOGRAPH - ,0xB878 ,0x7AEB //CJK UNIFIED IDEOGRAPH - ,0xB879 ,0x7AEC //CJK UNIFIED IDEOGRAPH - ,0xB87A ,0x7AEE //CJK UNIFIED IDEOGRAPH - ,0xB87B ,0x7AF0 //CJK UNIFIED IDEOGRAPH - ,0xB87C ,0x7AF1 //CJK UNIFIED IDEOGRAPH - ,0xB87D ,0x7AF2 //CJK UNIFIED IDEOGRAPH - ,0xB87E ,0x7AF3 //CJK UNIFIED IDEOGRAPH - ,0xB880 ,0x7AF4 //CJK UNIFIED IDEOGRAPH - ,0xB881 ,0x7AF5 //CJK UNIFIED IDEOGRAPH - ,0xB882 ,0x7AF6 //CJK UNIFIED IDEOGRAPH - ,0xB883 ,0x7AF7 //CJK UNIFIED IDEOGRAPH - ,0xB884 ,0x7AF8 //CJK UNIFIED IDEOGRAPH - ,0xB885 ,0x7AFB //CJK UNIFIED IDEOGRAPH - ,0xB886 ,0x7AFC //CJK UNIFIED IDEOGRAPH - ,0xB887 ,0x7AFE //CJK UNIFIED IDEOGRAPH - ,0xB888 ,0x7B00 //CJK UNIFIED IDEOGRAPH - ,0xB889 ,0x7B01 //CJK UNIFIED IDEOGRAPH - ,0xB88A ,0x7B02 //CJK UNIFIED IDEOGRAPH - ,0xB88B ,0x7B05 //CJK UNIFIED IDEOGRAPH - ,0xB88C ,0x7B07 //CJK UNIFIED IDEOGRAPH - ,0xB88D ,0x7B09 //CJK UNIFIED IDEOGRAPH - ,0xB88E ,0x7B0C //CJK UNIFIED IDEOGRAPH - ,0xB88F ,0x7B0D //CJK UNIFIED IDEOGRAPH - ,0xB890 ,0x7B0E //CJK UNIFIED IDEOGRAPH - ,0xB891 ,0x7B10 //CJK UNIFIED IDEOGRAPH - ,0xB892 ,0x7B12 //CJK UNIFIED IDEOGRAPH - ,0xB893 ,0x7B13 //CJK UNIFIED IDEOGRAPH - ,0xB894 ,0x7B16 //CJK UNIFIED IDEOGRAPH - ,0xB895 ,0x7B17 //CJK UNIFIED IDEOGRAPH - ,0xB896 ,0x7B18 //CJK UNIFIED IDEOGRAPH - ,0xB897 ,0x7B1A //CJK UNIFIED IDEOGRAPH - ,0xB898 ,0x7B1C //CJK UNIFIED IDEOGRAPH - ,0xB899 ,0x7B1D //CJK UNIFIED IDEOGRAPH - ,0xB89A ,0x7B1F //CJK UNIFIED IDEOGRAPH - ,0xB89B ,0x7B21 //CJK UNIFIED IDEOGRAPH - ,0xB89C ,0x7B22 //CJK UNIFIED IDEOGRAPH - ,0xB89D ,0x7B23 //CJK UNIFIED IDEOGRAPH - ,0xB89E ,0x7B27 //CJK UNIFIED IDEOGRAPH - ,0xB89F ,0x7B29 //CJK UNIFIED IDEOGRAPH - ,0xB8A0 ,0x7B2D //CJK UNIFIED IDEOGRAPH - ,0xB8A1 ,0x6D6E //CJK UNIFIED IDEOGRAPH - ,0xB8A2 ,0x6DAA //CJK UNIFIED IDEOGRAPH - ,0xB8A3 ,0x798F //CJK UNIFIED IDEOGRAPH - ,0xB8A4 ,0x88B1 //CJK UNIFIED IDEOGRAPH - ,0xB8A5 ,0x5F17 //CJK UNIFIED IDEOGRAPH - ,0xB8A6 ,0x752B //CJK UNIFIED IDEOGRAPH - ,0xB8A7 ,0x629A //CJK UNIFIED IDEOGRAPH - ,0xB8A8 ,0x8F85 //CJK UNIFIED IDEOGRAPH - ,0xB8A9 ,0x4FEF //CJK UNIFIED IDEOGRAPH - ,0xB8AA ,0x91DC //CJK UNIFIED IDEOGRAPH - ,0xB8AB ,0x65A7 //CJK UNIFIED IDEOGRAPH - ,0xB8AC ,0x812F //CJK UNIFIED IDEOGRAPH - ,0xB8AD ,0x8151 //CJK UNIFIED IDEOGRAPH - ,0xB8AE ,0x5E9C //CJK UNIFIED IDEOGRAPH - ,0xB8AF ,0x8150 //CJK UNIFIED IDEOGRAPH - ,0xB8B0 ,0x8D74 //CJK UNIFIED IDEOGRAPH - ,0xB8B1 ,0x526F //CJK UNIFIED IDEOGRAPH - ,0xB8B2 ,0x8986 //CJK UNIFIED IDEOGRAPH - ,0xB8B3 ,0x8D4B //CJK UNIFIED IDEOGRAPH - ,0xB8B4 ,0x590D //CJK UNIFIED IDEOGRAPH - ,0xB8B5 ,0x5085 //CJK UNIFIED IDEOGRAPH - ,0xB8B6 ,0x4ED8 //CJK UNIFIED IDEOGRAPH - ,0xB8B7 ,0x961C //CJK UNIFIED IDEOGRAPH - ,0xB8B8 ,0x7236 //CJK UNIFIED IDEOGRAPH - ,0xB8B9 ,0x8179 //CJK UNIFIED IDEOGRAPH - ,0xB8BA ,0x8D1F //CJK UNIFIED IDEOGRAPH - ,0xB8BB ,0x5BCC //CJK UNIFIED IDEOGRAPH - ,0xB8BC ,0x8BA3 //CJK UNIFIED IDEOGRAPH - ,0xB8BD ,0x9644 //CJK UNIFIED IDEOGRAPH - ,0xB8BE ,0x5987 //CJK UNIFIED IDEOGRAPH - ,0xB8BF ,0x7F1A //CJK UNIFIED IDEOGRAPH - ,0xB8C0 ,0x5490 //CJK UNIFIED IDEOGRAPH - ,0xB8C1 ,0x5676 //CJK UNIFIED IDEOGRAPH - ,0xB8C2 ,0x560E //CJK UNIFIED IDEOGRAPH - ,0xB8C3 ,0x8BE5 //CJK UNIFIED IDEOGRAPH - ,0xB8C4 ,0x6539 //CJK UNIFIED IDEOGRAPH - ,0xB8C5 ,0x6982 //CJK UNIFIED IDEOGRAPH - ,0xB8C6 ,0x9499 //CJK UNIFIED IDEOGRAPH - ,0xB8C7 ,0x76D6 //CJK UNIFIED IDEOGRAPH - ,0xB8C8 ,0x6E89 //CJK UNIFIED IDEOGRAPH - ,0xB8C9 ,0x5E72 //CJK UNIFIED IDEOGRAPH - ,0xB8CA ,0x7518 //CJK UNIFIED IDEOGRAPH - ,0xB8CB ,0x6746 //CJK UNIFIED IDEOGRAPH - ,0xB8CC ,0x67D1 //CJK UNIFIED IDEOGRAPH - ,0xB8CD ,0x7AFF //CJK UNIFIED IDEOGRAPH - ,0xB8CE ,0x809D //CJK UNIFIED IDEOGRAPH - ,0xB8CF ,0x8D76 //CJK UNIFIED IDEOGRAPH - ,0xB8D0 ,0x611F //CJK UNIFIED IDEOGRAPH - ,0xB8D1 ,0x79C6 //CJK UNIFIED IDEOGRAPH - ,0xB8D2 ,0x6562 //CJK UNIFIED IDEOGRAPH - ,0xB8D3 ,0x8D63 //CJK UNIFIED IDEOGRAPH - ,0xB8D4 ,0x5188 //CJK UNIFIED IDEOGRAPH - ,0xB8D5 ,0x521A //CJK UNIFIED IDEOGRAPH - ,0xB8D6 ,0x94A2 //CJK UNIFIED IDEOGRAPH - ,0xB8D7 ,0x7F38 //CJK UNIFIED IDEOGRAPH - ,0xB8D8 ,0x809B //CJK UNIFIED IDEOGRAPH - ,0xB8D9 ,0x7EB2 //CJK UNIFIED IDEOGRAPH - ,0xB8DA ,0x5C97 //CJK UNIFIED IDEOGRAPH - ,0xB8DB ,0x6E2F //CJK UNIFIED IDEOGRAPH - ,0xB8DC ,0x6760 //CJK UNIFIED IDEOGRAPH - ,0xB8DD ,0x7BD9 //CJK UNIFIED IDEOGRAPH - ,0xB8DE ,0x768B //CJK UNIFIED IDEOGRAPH - ,0xB8DF ,0x9AD8 //CJK UNIFIED IDEOGRAPH - ,0xB8E0 ,0x818F //CJK UNIFIED IDEOGRAPH - ,0xB8E1 ,0x7F94 //CJK UNIFIED IDEOGRAPH - ,0xB8E2 ,0x7CD5 //CJK UNIFIED IDEOGRAPH - ,0xB8E3 ,0x641E //CJK UNIFIED IDEOGRAPH - ,0xB8E4 ,0x9550 //CJK UNIFIED IDEOGRAPH - ,0xB8E5 ,0x7A3F //CJK UNIFIED IDEOGRAPH - ,0xB8E6 ,0x544A //CJK UNIFIED IDEOGRAPH - ,0xB8E7 ,0x54E5 //CJK UNIFIED IDEOGRAPH - ,0xB8E8 ,0x6B4C //CJK UNIFIED IDEOGRAPH - ,0xB8E9 ,0x6401 //CJK UNIFIED IDEOGRAPH - ,0xB8EA ,0x6208 //CJK UNIFIED IDEOGRAPH - ,0xB8EB ,0x9E3D //CJK UNIFIED IDEOGRAPH - ,0xB8EC ,0x80F3 //CJK UNIFIED IDEOGRAPH - ,0xB8ED ,0x7599 //CJK UNIFIED IDEOGRAPH - ,0xB8EE ,0x5272 //CJK UNIFIED IDEOGRAPH - ,0xB8EF ,0x9769 //CJK UNIFIED IDEOGRAPH - ,0xB8F0 ,0x845B //CJK UNIFIED IDEOGRAPH - ,0xB8F1 ,0x683C //CJK UNIFIED IDEOGRAPH - ,0xB8F2 ,0x86E4 //CJK UNIFIED IDEOGRAPH - ,0xB8F3 ,0x9601 //CJK UNIFIED IDEOGRAPH - ,0xB8F4 ,0x9694 //CJK UNIFIED IDEOGRAPH - ,0xB8F5 ,0x94EC //CJK UNIFIED IDEOGRAPH - ,0xB8F6 ,0x4E2A //CJK UNIFIED IDEOGRAPH - ,0xB8F7 ,0x5404 //CJK UNIFIED IDEOGRAPH - ,0xB8F8 ,0x7ED9 //CJK UNIFIED IDEOGRAPH - ,0xB8F9 ,0x6839 //CJK UNIFIED IDEOGRAPH - ,0xB8FA ,0x8DDF //CJK UNIFIED IDEOGRAPH - ,0xB8FB ,0x8015 //CJK UNIFIED IDEOGRAPH - ,0xB8FC ,0x66F4 //CJK UNIFIED IDEOGRAPH - ,0xB8FD ,0x5E9A //CJK UNIFIED IDEOGRAPH - ,0xB8FE ,0x7FB9 //CJK UNIFIED IDEOGRAPH - ,0xB940 ,0x7B2F //CJK UNIFIED IDEOGRAPH - ,0xB941 ,0x7B30 //CJK UNIFIED IDEOGRAPH - ,0xB942 ,0x7B32 //CJK UNIFIED IDEOGRAPH - ,0xB943 ,0x7B34 //CJK UNIFIED IDEOGRAPH - ,0xB944 ,0x7B35 //CJK UNIFIED IDEOGRAPH - ,0xB945 ,0x7B36 //CJK UNIFIED IDEOGRAPH - ,0xB946 ,0x7B37 //CJK UNIFIED IDEOGRAPH - ,0xB947 ,0x7B39 //CJK UNIFIED IDEOGRAPH - ,0xB948 ,0x7B3B //CJK UNIFIED IDEOGRAPH - ,0xB949 ,0x7B3D //CJK UNIFIED IDEOGRAPH - ,0xB94A ,0x7B3F //CJK UNIFIED IDEOGRAPH - ,0xB94B ,0x7B40 //CJK UNIFIED IDEOGRAPH - ,0xB94C ,0x7B41 //CJK UNIFIED IDEOGRAPH - ,0xB94D ,0x7B42 //CJK UNIFIED IDEOGRAPH - ,0xB94E ,0x7B43 //CJK UNIFIED IDEOGRAPH - ,0xB94F ,0x7B44 //CJK UNIFIED IDEOGRAPH - ,0xB950 ,0x7B46 //CJK UNIFIED IDEOGRAPH - ,0xB951 ,0x7B48 //CJK UNIFIED IDEOGRAPH - ,0xB952 ,0x7B4A //CJK UNIFIED IDEOGRAPH - ,0xB953 ,0x7B4D //CJK UNIFIED IDEOGRAPH - ,0xB954 ,0x7B4E //CJK UNIFIED IDEOGRAPH - ,0xB955 ,0x7B53 //CJK UNIFIED IDEOGRAPH - ,0xB956 ,0x7B55 //CJK UNIFIED IDEOGRAPH - ,0xB957 ,0x7B57 //CJK UNIFIED IDEOGRAPH - ,0xB958 ,0x7B59 //CJK UNIFIED IDEOGRAPH - ,0xB959 ,0x7B5C //CJK UNIFIED IDEOGRAPH - ,0xB95A ,0x7B5E //CJK UNIFIED IDEOGRAPH - ,0xB95B ,0x7B5F //CJK UNIFIED IDEOGRAPH - ,0xB95C ,0x7B61 //CJK UNIFIED IDEOGRAPH - ,0xB95D ,0x7B63 //CJK UNIFIED IDEOGRAPH - ,0xB95E ,0x7B64 //CJK UNIFIED IDEOGRAPH - ,0xB95F ,0x7B65 //CJK UNIFIED IDEOGRAPH - ,0xB960 ,0x7B66 //CJK UNIFIED IDEOGRAPH - ,0xB961 ,0x7B67 //CJK UNIFIED IDEOGRAPH - ,0xB962 ,0x7B68 //CJK UNIFIED IDEOGRAPH - ,0xB963 ,0x7B69 //CJK UNIFIED IDEOGRAPH - ,0xB964 ,0x7B6A //CJK UNIFIED IDEOGRAPH - ,0xB965 ,0x7B6B //CJK UNIFIED IDEOGRAPH - ,0xB966 ,0x7B6C //CJK UNIFIED IDEOGRAPH - ,0xB967 ,0x7B6D //CJK UNIFIED IDEOGRAPH - ,0xB968 ,0x7B6F //CJK UNIFIED IDEOGRAPH - ,0xB969 ,0x7B70 //CJK UNIFIED IDEOGRAPH - ,0xB96A ,0x7B73 //CJK UNIFIED IDEOGRAPH - ,0xB96B ,0x7B74 //CJK UNIFIED IDEOGRAPH - ,0xB96C ,0x7B76 //CJK UNIFIED IDEOGRAPH - ,0xB96D ,0x7B78 //CJK UNIFIED IDEOGRAPH - ,0xB96E ,0x7B7A //CJK UNIFIED IDEOGRAPH - ,0xB96F ,0x7B7C //CJK UNIFIED IDEOGRAPH - ,0xB970 ,0x7B7D //CJK UNIFIED IDEOGRAPH - ,0xB971 ,0x7B7F //CJK UNIFIED IDEOGRAPH - ,0xB972 ,0x7B81 //CJK UNIFIED IDEOGRAPH - ,0xB973 ,0x7B82 //CJK UNIFIED IDEOGRAPH - ,0xB974 ,0x7B83 //CJK UNIFIED IDEOGRAPH - ,0xB975 ,0x7B84 //CJK UNIFIED IDEOGRAPH - ,0xB976 ,0x7B86 //CJK UNIFIED IDEOGRAPH - ,0xB977 ,0x7B87 //CJK UNIFIED IDEOGRAPH - ,0xB978 ,0x7B88 //CJK UNIFIED IDEOGRAPH - ,0xB979 ,0x7B89 //CJK UNIFIED IDEOGRAPH - ,0xB97A ,0x7B8A //CJK UNIFIED IDEOGRAPH - ,0xB97B ,0x7B8B //CJK UNIFIED IDEOGRAPH - ,0xB97C ,0x7B8C //CJK UNIFIED IDEOGRAPH - ,0xB97D ,0x7B8E //CJK UNIFIED IDEOGRAPH - ,0xB97E ,0x7B8F //CJK UNIFIED IDEOGRAPH - ,0xB980 ,0x7B91 //CJK UNIFIED IDEOGRAPH - ,0xB981 ,0x7B92 //CJK UNIFIED IDEOGRAPH - ,0xB982 ,0x7B93 //CJK UNIFIED IDEOGRAPH - ,0xB983 ,0x7B96 //CJK UNIFIED IDEOGRAPH - ,0xB984 ,0x7B98 //CJK UNIFIED IDEOGRAPH - ,0xB985 ,0x7B99 //CJK UNIFIED IDEOGRAPH - ,0xB986 ,0x7B9A //CJK UNIFIED IDEOGRAPH - ,0xB987 ,0x7B9B //CJK UNIFIED IDEOGRAPH - ,0xB988 ,0x7B9E //CJK UNIFIED IDEOGRAPH - ,0xB989 ,0x7B9F //CJK UNIFIED IDEOGRAPH - ,0xB98A ,0x7BA0 //CJK UNIFIED IDEOGRAPH - ,0xB98B ,0x7BA3 //CJK UNIFIED IDEOGRAPH - ,0xB98C ,0x7BA4 //CJK UNIFIED IDEOGRAPH - ,0xB98D ,0x7BA5 //CJK UNIFIED IDEOGRAPH - ,0xB98E ,0x7BAE //CJK UNIFIED IDEOGRAPH - ,0xB98F ,0x7BAF //CJK UNIFIED IDEOGRAPH - ,0xB990 ,0x7BB0 //CJK UNIFIED IDEOGRAPH - ,0xB991 ,0x7BB2 //CJK UNIFIED IDEOGRAPH - ,0xB992 ,0x7BB3 //CJK UNIFIED IDEOGRAPH - ,0xB993 ,0x7BB5 //CJK UNIFIED IDEOGRAPH - ,0xB994 ,0x7BB6 //CJK UNIFIED IDEOGRAPH - ,0xB995 ,0x7BB7 //CJK UNIFIED IDEOGRAPH - ,0xB996 ,0x7BB9 //CJK UNIFIED IDEOGRAPH - ,0xB997 ,0x7BBA //CJK UNIFIED IDEOGRAPH - ,0xB998 ,0x7BBB //CJK UNIFIED IDEOGRAPH - ,0xB999 ,0x7BBC //CJK UNIFIED IDEOGRAPH - ,0xB99A ,0x7BBD //CJK UNIFIED IDEOGRAPH - ,0xB99B ,0x7BBE //CJK UNIFIED IDEOGRAPH - ,0xB99C ,0x7BBF //CJK UNIFIED IDEOGRAPH - ,0xB99D ,0x7BC0 //CJK UNIFIED IDEOGRAPH - ,0xB99E ,0x7BC2 //CJK UNIFIED IDEOGRAPH - ,0xB99F ,0x7BC3 //CJK UNIFIED IDEOGRAPH - ,0xB9A0 ,0x7BC4 //CJK UNIFIED IDEOGRAPH - ,0xB9A1 ,0x57C2 //CJK UNIFIED IDEOGRAPH - ,0xB9A2 ,0x803F //CJK UNIFIED IDEOGRAPH - ,0xB9A3 ,0x6897 //CJK UNIFIED IDEOGRAPH - ,0xB9A4 ,0x5DE5 //CJK UNIFIED IDEOGRAPH - ,0xB9A5 ,0x653B //CJK UNIFIED IDEOGRAPH - ,0xB9A6 ,0x529F //CJK UNIFIED IDEOGRAPH - ,0xB9A7 ,0x606D //CJK UNIFIED IDEOGRAPH - ,0xB9A8 ,0x9F9A //CJK UNIFIED IDEOGRAPH - ,0xB9A9 ,0x4F9B //CJK UNIFIED IDEOGRAPH - ,0xB9AA ,0x8EAC //CJK UNIFIED IDEOGRAPH - ,0xB9AB ,0x516C //CJK UNIFIED IDEOGRAPH - ,0xB9AC ,0x5BAB //CJK UNIFIED IDEOGRAPH - ,0xB9AD ,0x5F13 //CJK UNIFIED IDEOGRAPH - ,0xB9AE ,0x5DE9 //CJK UNIFIED IDEOGRAPH - ,0xB9AF ,0x6C5E //CJK UNIFIED IDEOGRAPH - ,0xB9B0 ,0x62F1 //CJK UNIFIED IDEOGRAPH - ,0xB9B1 ,0x8D21 //CJK UNIFIED IDEOGRAPH - ,0xB9B2 ,0x5171 //CJK UNIFIED IDEOGRAPH - ,0xB9B3 ,0x94A9 //CJK UNIFIED IDEOGRAPH - ,0xB9B4 ,0x52FE //CJK UNIFIED IDEOGRAPH - ,0xB9B5 ,0x6C9F //CJK UNIFIED IDEOGRAPH - ,0xB9B6 ,0x82DF //CJK UNIFIED IDEOGRAPH - ,0xB9B7 ,0x72D7 //CJK UNIFIED IDEOGRAPH - ,0xB9B8 ,0x57A2 //CJK UNIFIED IDEOGRAPH - ,0xB9B9 ,0x6784 //CJK UNIFIED IDEOGRAPH - ,0xB9BA ,0x8D2D //CJK UNIFIED IDEOGRAPH - ,0xB9BB ,0x591F //CJK UNIFIED IDEOGRAPH - ,0xB9BC ,0x8F9C //CJK UNIFIED IDEOGRAPH - ,0xB9BD ,0x83C7 //CJK UNIFIED IDEOGRAPH - ,0xB9BE ,0x5495 //CJK UNIFIED IDEOGRAPH - ,0xB9BF ,0x7B8D //CJK UNIFIED IDEOGRAPH - ,0xB9C0 ,0x4F30 //CJK UNIFIED IDEOGRAPH - ,0xB9C1 ,0x6CBD //CJK UNIFIED IDEOGRAPH - ,0xB9C2 ,0x5B64 //CJK UNIFIED IDEOGRAPH - ,0xB9C3 ,0x59D1 //CJK UNIFIED IDEOGRAPH - ,0xB9C4 ,0x9F13 //CJK UNIFIED IDEOGRAPH - ,0xB9C5 ,0x53E4 //CJK UNIFIED IDEOGRAPH - ,0xB9C6 ,0x86CA //CJK UNIFIED IDEOGRAPH - ,0xB9C7 ,0x9AA8 //CJK UNIFIED IDEOGRAPH - ,0xB9C8 ,0x8C37 //CJK UNIFIED IDEOGRAPH - ,0xB9C9 ,0x80A1 //CJK UNIFIED IDEOGRAPH - ,0xB9CA ,0x6545 //CJK UNIFIED IDEOGRAPH - ,0xB9CB ,0x987E //CJK UNIFIED IDEOGRAPH - ,0xB9CC ,0x56FA //CJK UNIFIED IDEOGRAPH - ,0xB9CD ,0x96C7 //CJK UNIFIED IDEOGRAPH - ,0xB9CE ,0x522E //CJK UNIFIED IDEOGRAPH - ,0xB9CF ,0x74DC //CJK UNIFIED IDEOGRAPH - ,0xB9D0 ,0x5250 //CJK UNIFIED IDEOGRAPH - ,0xB9D1 ,0x5BE1 //CJK UNIFIED IDEOGRAPH - ,0xB9D2 ,0x6302 //CJK UNIFIED IDEOGRAPH - ,0xB9D3 ,0x8902 //CJK UNIFIED IDEOGRAPH - ,0xB9D4 ,0x4E56 //CJK UNIFIED IDEOGRAPH - ,0xB9D5 ,0x62D0 //CJK UNIFIED IDEOGRAPH - ,0xB9D6 ,0x602A //CJK UNIFIED IDEOGRAPH - ,0xB9D7 ,0x68FA //CJK UNIFIED IDEOGRAPH - ,0xB9D8 ,0x5173 //CJK UNIFIED IDEOGRAPH - ,0xB9D9 ,0x5B98 //CJK UNIFIED IDEOGRAPH - ,0xB9DA ,0x51A0 //CJK UNIFIED IDEOGRAPH - ,0xB9DB ,0x89C2 //CJK UNIFIED IDEOGRAPH - ,0xB9DC ,0x7BA1 //CJK UNIFIED IDEOGRAPH - ,0xB9DD ,0x9986 //CJK UNIFIED IDEOGRAPH - ,0xB9DE ,0x7F50 //CJK UNIFIED IDEOGRAPH - ,0xB9DF ,0x60EF //CJK UNIFIED IDEOGRAPH - ,0xB9E0 ,0x704C //CJK UNIFIED IDEOGRAPH - ,0xB9E1 ,0x8D2F //CJK UNIFIED IDEOGRAPH - ,0xB9E2 ,0x5149 //CJK UNIFIED IDEOGRAPH - ,0xB9E3 ,0x5E7F //CJK UNIFIED IDEOGRAPH - ,0xB9E4 ,0x901B //CJK UNIFIED IDEOGRAPH - ,0xB9E5 ,0x7470 //CJK UNIFIED IDEOGRAPH - ,0xB9E6 ,0x89C4 //CJK UNIFIED IDEOGRAPH - ,0xB9E7 ,0x572D //CJK UNIFIED IDEOGRAPH - ,0xB9E8 ,0x7845 //CJK UNIFIED IDEOGRAPH - ,0xB9E9 ,0x5F52 //CJK UNIFIED IDEOGRAPH - ,0xB9EA ,0x9F9F //CJK UNIFIED IDEOGRAPH - ,0xB9EB ,0x95FA //CJK UNIFIED IDEOGRAPH - ,0xB9EC ,0x8F68 //CJK UNIFIED IDEOGRAPH - ,0xB9ED ,0x9B3C //CJK UNIFIED IDEOGRAPH - ,0xB9EE ,0x8BE1 //CJK UNIFIED IDEOGRAPH - ,0xB9EF ,0x7678 //CJK UNIFIED IDEOGRAPH - ,0xB9F0 ,0x6842 //CJK UNIFIED IDEOGRAPH - ,0xB9F1 ,0x67DC //CJK UNIFIED IDEOGRAPH - ,0xB9F2 ,0x8DEA //CJK UNIFIED IDEOGRAPH - ,0xB9F3 ,0x8D35 //CJK UNIFIED IDEOGRAPH - ,0xB9F4 ,0x523D //CJK UNIFIED IDEOGRAPH - ,0xB9F5 ,0x8F8A //CJK UNIFIED IDEOGRAPH - ,0xB9F6 ,0x6EDA //CJK UNIFIED IDEOGRAPH - ,0xB9F7 ,0x68CD //CJK UNIFIED IDEOGRAPH - ,0xB9F8 ,0x9505 //CJK UNIFIED IDEOGRAPH - ,0xB9F9 ,0x90ED //CJK UNIFIED IDEOGRAPH - ,0xB9FA ,0x56FD //CJK UNIFIED IDEOGRAPH - ,0xB9FB ,0x679C //CJK UNIFIED IDEOGRAPH - ,0xB9FC ,0x88F9 //CJK UNIFIED IDEOGRAPH - ,0xB9FD ,0x8FC7 //CJK UNIFIED IDEOGRAPH - ,0xB9FE ,0x54C8 //CJK UNIFIED IDEOGRAPH - ,0xBA40 ,0x7BC5 //CJK UNIFIED IDEOGRAPH - ,0xBA41 ,0x7BC8 //CJK UNIFIED IDEOGRAPH - ,0xBA42 ,0x7BC9 //CJK UNIFIED IDEOGRAPH - ,0xBA43 ,0x7BCA //CJK UNIFIED IDEOGRAPH - ,0xBA44 ,0x7BCB //CJK UNIFIED IDEOGRAPH - ,0xBA45 ,0x7BCD //CJK UNIFIED IDEOGRAPH - ,0xBA46 ,0x7BCE //CJK UNIFIED IDEOGRAPH - ,0xBA47 ,0x7BCF //CJK UNIFIED IDEOGRAPH - ,0xBA48 ,0x7BD0 //CJK UNIFIED IDEOGRAPH - ,0xBA49 ,0x7BD2 //CJK UNIFIED IDEOGRAPH - ,0xBA4A ,0x7BD4 //CJK UNIFIED IDEOGRAPH - ,0xBA4B ,0x7BD5 //CJK UNIFIED IDEOGRAPH - ,0xBA4C ,0x7BD6 //CJK UNIFIED IDEOGRAPH - ,0xBA4D ,0x7BD7 //CJK UNIFIED IDEOGRAPH - ,0xBA4E ,0x7BD8 //CJK UNIFIED IDEOGRAPH - ,0xBA4F ,0x7BDB //CJK UNIFIED IDEOGRAPH - ,0xBA50 ,0x7BDC //CJK UNIFIED IDEOGRAPH - ,0xBA51 ,0x7BDE //CJK UNIFIED IDEOGRAPH - ,0xBA52 ,0x7BDF //CJK UNIFIED IDEOGRAPH - ,0xBA53 ,0x7BE0 //CJK UNIFIED IDEOGRAPH - ,0xBA54 ,0x7BE2 //CJK UNIFIED IDEOGRAPH - ,0xBA55 ,0x7BE3 //CJK UNIFIED IDEOGRAPH - ,0xBA56 ,0x7BE4 //CJK UNIFIED IDEOGRAPH - ,0xBA57 ,0x7BE7 //CJK UNIFIED IDEOGRAPH - ,0xBA58 ,0x7BE8 //CJK UNIFIED IDEOGRAPH - ,0xBA59 ,0x7BE9 //CJK UNIFIED IDEOGRAPH - ,0xBA5A ,0x7BEB //CJK UNIFIED IDEOGRAPH - ,0xBA5B ,0x7BEC //CJK UNIFIED IDEOGRAPH - ,0xBA5C ,0x7BED //CJK UNIFIED IDEOGRAPH - ,0xBA5D ,0x7BEF //CJK UNIFIED IDEOGRAPH - ,0xBA5E ,0x7BF0 //CJK UNIFIED IDEOGRAPH - ,0xBA5F ,0x7BF2 //CJK UNIFIED IDEOGRAPH - ,0xBA60 ,0x7BF3 //CJK UNIFIED IDEOGRAPH - ,0xBA61 ,0x7BF4 //CJK UNIFIED IDEOGRAPH - ,0xBA62 ,0x7BF5 //CJK UNIFIED IDEOGRAPH - ,0xBA63 ,0x7BF6 //CJK UNIFIED IDEOGRAPH - ,0xBA64 ,0x7BF8 //CJK UNIFIED IDEOGRAPH - ,0xBA65 ,0x7BF9 //CJK UNIFIED IDEOGRAPH - ,0xBA66 ,0x7BFA //CJK UNIFIED IDEOGRAPH - ,0xBA67 ,0x7BFB //CJK UNIFIED IDEOGRAPH - ,0xBA68 ,0x7BFD //CJK UNIFIED IDEOGRAPH - ,0xBA69 ,0x7BFF //CJK UNIFIED IDEOGRAPH - ,0xBA6A ,0x7C00 //CJK UNIFIED IDEOGRAPH - ,0xBA6B ,0x7C01 //CJK UNIFIED IDEOGRAPH - ,0xBA6C ,0x7C02 //CJK UNIFIED IDEOGRAPH - ,0xBA6D ,0x7C03 //CJK UNIFIED IDEOGRAPH - ,0xBA6E ,0x7C04 //CJK UNIFIED IDEOGRAPH - ,0xBA6F ,0x7C05 //CJK UNIFIED IDEOGRAPH - ,0xBA70 ,0x7C06 //CJK UNIFIED IDEOGRAPH - ,0xBA71 ,0x7C08 //CJK UNIFIED IDEOGRAPH - ,0xBA72 ,0x7C09 //CJK UNIFIED IDEOGRAPH - ,0xBA73 ,0x7C0A //CJK UNIFIED IDEOGRAPH - ,0xBA74 ,0x7C0D //CJK UNIFIED IDEOGRAPH - ,0xBA75 ,0x7C0E //CJK UNIFIED IDEOGRAPH - ,0xBA76 ,0x7C10 //CJK UNIFIED IDEOGRAPH - ,0xBA77 ,0x7C11 //CJK UNIFIED IDEOGRAPH - ,0xBA78 ,0x7C12 //CJK UNIFIED IDEOGRAPH - ,0xBA79 ,0x7C13 //CJK UNIFIED IDEOGRAPH - ,0xBA7A ,0x7C14 //CJK UNIFIED IDEOGRAPH - ,0xBA7B ,0x7C15 //CJK UNIFIED IDEOGRAPH - ,0xBA7C ,0x7C17 //CJK UNIFIED IDEOGRAPH - ,0xBA7D ,0x7C18 //CJK UNIFIED IDEOGRAPH - ,0xBA7E ,0x7C19 //CJK UNIFIED IDEOGRAPH - ,0xBA80 ,0x7C1A //CJK UNIFIED IDEOGRAPH - ,0xBA81 ,0x7C1B //CJK UNIFIED IDEOGRAPH - ,0xBA82 ,0x7C1C //CJK UNIFIED IDEOGRAPH - ,0xBA83 ,0x7C1D //CJK UNIFIED IDEOGRAPH - ,0xBA84 ,0x7C1E //CJK UNIFIED IDEOGRAPH - ,0xBA85 ,0x7C20 //CJK UNIFIED IDEOGRAPH - ,0xBA86 ,0x7C21 //CJK UNIFIED IDEOGRAPH - ,0xBA87 ,0x7C22 //CJK UNIFIED IDEOGRAPH - ,0xBA88 ,0x7C23 //CJK UNIFIED IDEOGRAPH - ,0xBA89 ,0x7C24 //CJK UNIFIED IDEOGRAPH - ,0xBA8A ,0x7C25 //CJK UNIFIED IDEOGRAPH - ,0xBA8B ,0x7C28 //CJK UNIFIED IDEOGRAPH - ,0xBA8C ,0x7C29 //CJK UNIFIED IDEOGRAPH - ,0xBA8D ,0x7C2B //CJK UNIFIED IDEOGRAPH - ,0xBA8E ,0x7C2C //CJK UNIFIED IDEOGRAPH - ,0xBA8F ,0x7C2D //CJK UNIFIED IDEOGRAPH - ,0xBA90 ,0x7C2E //CJK UNIFIED IDEOGRAPH - ,0xBA91 ,0x7C2F //CJK UNIFIED IDEOGRAPH - ,0xBA92 ,0x7C30 //CJK UNIFIED IDEOGRAPH - ,0xBA93 ,0x7C31 //CJK UNIFIED IDEOGRAPH - ,0xBA94 ,0x7C32 //CJK UNIFIED IDEOGRAPH - ,0xBA95 ,0x7C33 //CJK UNIFIED IDEOGRAPH - ,0xBA96 ,0x7C34 //CJK UNIFIED IDEOGRAPH - ,0xBA97 ,0x7C35 //CJK UNIFIED IDEOGRAPH - ,0xBA98 ,0x7C36 //CJK UNIFIED IDEOGRAPH - ,0xBA99 ,0x7C37 //CJK UNIFIED IDEOGRAPH - ,0xBA9A ,0x7C39 //CJK UNIFIED IDEOGRAPH - ,0xBA9B ,0x7C3A //CJK UNIFIED IDEOGRAPH - ,0xBA9C ,0x7C3B //CJK UNIFIED IDEOGRAPH - ,0xBA9D ,0x7C3C //CJK UNIFIED IDEOGRAPH - ,0xBA9E ,0x7C3D //CJK UNIFIED IDEOGRAPH - ,0xBA9F ,0x7C3E //CJK UNIFIED IDEOGRAPH - ,0xBAA0 ,0x7C42 //CJK UNIFIED IDEOGRAPH - ,0xBAA1 ,0x9AB8 //CJK UNIFIED IDEOGRAPH - ,0xBAA2 ,0x5B69 //CJK UNIFIED IDEOGRAPH - ,0xBAA3 ,0x6D77 //CJK UNIFIED IDEOGRAPH - ,0xBAA4 ,0x6C26 //CJK UNIFIED IDEOGRAPH - ,0xBAA5 ,0x4EA5 //CJK UNIFIED IDEOGRAPH - ,0xBAA6 ,0x5BB3 //CJK UNIFIED IDEOGRAPH - ,0xBAA7 ,0x9A87 //CJK UNIFIED IDEOGRAPH - ,0xBAA8 ,0x9163 //CJK UNIFIED IDEOGRAPH - ,0xBAA9 ,0x61A8 //CJK UNIFIED IDEOGRAPH - ,0xBAAA ,0x90AF //CJK UNIFIED IDEOGRAPH - ,0xBAAB ,0x97E9 //CJK UNIFIED IDEOGRAPH - ,0xBAAC ,0x542B //CJK UNIFIED IDEOGRAPH - ,0xBAAD ,0x6DB5 //CJK UNIFIED IDEOGRAPH - ,0xBAAE ,0x5BD2 //CJK UNIFIED IDEOGRAPH - ,0xBAAF ,0x51FD //CJK UNIFIED IDEOGRAPH - ,0xBAB0 ,0x558A //CJK UNIFIED IDEOGRAPH - ,0xBAB1 ,0x7F55 //CJK UNIFIED IDEOGRAPH - ,0xBAB2 ,0x7FF0 //CJK UNIFIED IDEOGRAPH - ,0xBAB3 ,0x64BC //CJK UNIFIED IDEOGRAPH - ,0xBAB4 ,0x634D //CJK UNIFIED IDEOGRAPH - ,0xBAB5 ,0x65F1 //CJK UNIFIED IDEOGRAPH - ,0xBAB6 ,0x61BE //CJK UNIFIED IDEOGRAPH - ,0xBAB7 ,0x608D //CJK UNIFIED IDEOGRAPH - ,0xBAB8 ,0x710A //CJK UNIFIED IDEOGRAPH - ,0xBAB9 ,0x6C57 //CJK UNIFIED IDEOGRAPH - ,0xBABA ,0x6C49 //CJK UNIFIED IDEOGRAPH - ,0xBABB ,0x592F //CJK UNIFIED IDEOGRAPH - ,0xBABC ,0x676D //CJK UNIFIED IDEOGRAPH - ,0xBABD ,0x822A //CJK UNIFIED IDEOGRAPH - ,0xBABE ,0x58D5 //CJK UNIFIED IDEOGRAPH - ,0xBABF ,0x568E //CJK UNIFIED IDEOGRAPH - ,0xBAC0 ,0x8C6A //CJK UNIFIED IDEOGRAPH - ,0xBAC1 ,0x6BEB //CJK UNIFIED IDEOGRAPH - ,0xBAC2 ,0x90DD //CJK UNIFIED IDEOGRAPH - ,0xBAC3 ,0x597D //CJK UNIFIED IDEOGRAPH - ,0xBAC4 ,0x8017 //CJK UNIFIED IDEOGRAPH - ,0xBAC5 ,0x53F7 //CJK UNIFIED IDEOGRAPH - ,0xBAC6 ,0x6D69 //CJK UNIFIED IDEOGRAPH - ,0xBAC7 ,0x5475 //CJK UNIFIED IDEOGRAPH - ,0xBAC8 ,0x559D //CJK UNIFIED IDEOGRAPH - ,0xBAC9 ,0x8377 //CJK UNIFIED IDEOGRAPH - ,0xBACA ,0x83CF //CJK UNIFIED IDEOGRAPH - ,0xBACB ,0x6838 //CJK UNIFIED IDEOGRAPH - ,0xBACC ,0x79BE //CJK UNIFIED IDEOGRAPH - ,0xBACD ,0x548C //CJK UNIFIED IDEOGRAPH - ,0xBACE ,0x4F55 //CJK UNIFIED IDEOGRAPH - ,0xBACF ,0x5408 //CJK UNIFIED IDEOGRAPH - ,0xBAD0 ,0x76D2 //CJK UNIFIED IDEOGRAPH - ,0xBAD1 ,0x8C89 //CJK UNIFIED IDEOGRAPH - ,0xBAD2 ,0x9602 //CJK UNIFIED IDEOGRAPH - ,0xBAD3 ,0x6CB3 //CJK UNIFIED IDEOGRAPH - ,0xBAD4 ,0x6DB8 //CJK UNIFIED IDEOGRAPH - ,0xBAD5 ,0x8D6B //CJK UNIFIED IDEOGRAPH - ,0xBAD6 ,0x8910 //CJK UNIFIED IDEOGRAPH - ,0xBAD7 ,0x9E64 //CJK UNIFIED IDEOGRAPH - ,0xBAD8 ,0x8D3A //CJK UNIFIED IDEOGRAPH - ,0xBAD9 ,0x563F //CJK UNIFIED IDEOGRAPH - ,0xBADA ,0x9ED1 //CJK UNIFIED IDEOGRAPH - ,0xBADB ,0x75D5 //CJK UNIFIED IDEOGRAPH - ,0xBADC ,0x5F88 //CJK UNIFIED IDEOGRAPH - ,0xBADD ,0x72E0 //CJK UNIFIED IDEOGRAPH - ,0xBADE ,0x6068 //CJK UNIFIED IDEOGRAPH - ,0xBADF ,0x54FC //CJK UNIFIED IDEOGRAPH - ,0xBAE0 ,0x4EA8 //CJK UNIFIED IDEOGRAPH - ,0xBAE1 ,0x6A2A //CJK UNIFIED IDEOGRAPH - ,0xBAE2 ,0x8861 //CJK UNIFIED IDEOGRAPH - ,0xBAE3 ,0x6052 //CJK UNIFIED IDEOGRAPH - ,0xBAE4 ,0x8F70 //CJK UNIFIED IDEOGRAPH - ,0xBAE5 ,0x54C4 //CJK UNIFIED IDEOGRAPH - ,0xBAE6 ,0x70D8 //CJK UNIFIED IDEOGRAPH - ,0xBAE7 ,0x8679 //CJK UNIFIED IDEOGRAPH - ,0xBAE8 ,0x9E3F //CJK UNIFIED IDEOGRAPH - ,0xBAE9 ,0x6D2A //CJK UNIFIED IDEOGRAPH - ,0xBAEA ,0x5B8F //CJK UNIFIED IDEOGRAPH - ,0xBAEB ,0x5F18 //CJK UNIFIED IDEOGRAPH - ,0xBAEC ,0x7EA2 //CJK UNIFIED IDEOGRAPH - ,0xBAED ,0x5589 //CJK UNIFIED IDEOGRAPH - ,0xBAEE ,0x4FAF //CJK UNIFIED IDEOGRAPH - ,0xBAEF ,0x7334 //CJK UNIFIED IDEOGRAPH - ,0xBAF0 ,0x543C //CJK UNIFIED IDEOGRAPH - ,0xBAF1 ,0x539A //CJK UNIFIED IDEOGRAPH - ,0xBAF2 ,0x5019 //CJK UNIFIED IDEOGRAPH - ,0xBAF3 ,0x540E //CJK UNIFIED IDEOGRAPH - ,0xBAF4 ,0x547C //CJK UNIFIED IDEOGRAPH - ,0xBAF5 ,0x4E4E //CJK UNIFIED IDEOGRAPH - ,0xBAF6 ,0x5FFD //CJK UNIFIED IDEOGRAPH - ,0xBAF7 ,0x745A //CJK UNIFIED IDEOGRAPH - ,0xBAF8 ,0x58F6 //CJK UNIFIED IDEOGRAPH - ,0xBAF9 ,0x846B //CJK UNIFIED IDEOGRAPH - ,0xBAFA ,0x80E1 //CJK UNIFIED IDEOGRAPH - ,0xBAFB ,0x8774 //CJK UNIFIED IDEOGRAPH - ,0xBAFC ,0x72D0 //CJK UNIFIED IDEOGRAPH - ,0xBAFD ,0x7CCA //CJK UNIFIED IDEOGRAPH - ,0xBAFE ,0x6E56 //CJK UNIFIED IDEOGRAPH - ,0xBB40 ,0x7C43 //CJK UNIFIED IDEOGRAPH - ,0xBB41 ,0x7C44 //CJK UNIFIED IDEOGRAPH - ,0xBB42 ,0x7C45 //CJK UNIFIED IDEOGRAPH - ,0xBB43 ,0x7C46 //CJK UNIFIED IDEOGRAPH - ,0xBB44 ,0x7C47 //CJK UNIFIED IDEOGRAPH - ,0xBB45 ,0x7C48 //CJK UNIFIED IDEOGRAPH - ,0xBB46 ,0x7C49 //CJK UNIFIED IDEOGRAPH - ,0xBB47 ,0x7C4A //CJK UNIFIED IDEOGRAPH - ,0xBB48 ,0x7C4B //CJK UNIFIED IDEOGRAPH - ,0xBB49 ,0x7C4C //CJK UNIFIED IDEOGRAPH - ,0xBB4A ,0x7C4E //CJK UNIFIED IDEOGRAPH - ,0xBB4B ,0x7C4F //CJK UNIFIED IDEOGRAPH - ,0xBB4C ,0x7C50 //CJK UNIFIED IDEOGRAPH - ,0xBB4D ,0x7C51 //CJK UNIFIED IDEOGRAPH - ,0xBB4E ,0x7C52 //CJK UNIFIED IDEOGRAPH - ,0xBB4F ,0x7C53 //CJK UNIFIED IDEOGRAPH - ,0xBB50 ,0x7C54 //CJK UNIFIED IDEOGRAPH - ,0xBB51 ,0x7C55 //CJK UNIFIED IDEOGRAPH - ,0xBB52 ,0x7C56 //CJK UNIFIED IDEOGRAPH - ,0xBB53 ,0x7C57 //CJK UNIFIED IDEOGRAPH - ,0xBB54 ,0x7C58 //CJK UNIFIED IDEOGRAPH - ,0xBB55 ,0x7C59 //CJK UNIFIED IDEOGRAPH - ,0xBB56 ,0x7C5A //CJK UNIFIED IDEOGRAPH - ,0xBB57 ,0x7C5B //CJK UNIFIED IDEOGRAPH - ,0xBB58 ,0x7C5C //CJK UNIFIED IDEOGRAPH - ,0xBB59 ,0x7C5D //CJK UNIFIED IDEOGRAPH - ,0xBB5A ,0x7C5E //CJK UNIFIED IDEOGRAPH - ,0xBB5B ,0x7C5F //CJK UNIFIED IDEOGRAPH - ,0xBB5C ,0x7C60 //CJK UNIFIED IDEOGRAPH - ,0xBB5D ,0x7C61 //CJK UNIFIED IDEOGRAPH - ,0xBB5E ,0x7C62 //CJK UNIFIED IDEOGRAPH - ,0xBB5F ,0x7C63 //CJK UNIFIED IDEOGRAPH - ,0xBB60 ,0x7C64 //CJK UNIFIED IDEOGRAPH - ,0xBB61 ,0x7C65 //CJK UNIFIED IDEOGRAPH - ,0xBB62 ,0x7C66 //CJK UNIFIED IDEOGRAPH - ,0xBB63 ,0x7C67 //CJK UNIFIED IDEOGRAPH - ,0xBB64 ,0x7C68 //CJK UNIFIED IDEOGRAPH - ,0xBB65 ,0x7C69 //CJK UNIFIED IDEOGRAPH - ,0xBB66 ,0x7C6A //CJK UNIFIED IDEOGRAPH - ,0xBB67 ,0x7C6B //CJK UNIFIED IDEOGRAPH - ,0xBB68 ,0x7C6C //CJK UNIFIED IDEOGRAPH - ,0xBB69 ,0x7C6D //CJK UNIFIED IDEOGRAPH - ,0xBB6A ,0x7C6E //CJK UNIFIED IDEOGRAPH - ,0xBB6B ,0x7C6F //CJK UNIFIED IDEOGRAPH - ,0xBB6C ,0x7C70 //CJK UNIFIED IDEOGRAPH - ,0xBB6D ,0x7C71 //CJK UNIFIED IDEOGRAPH - ,0xBB6E ,0x7C72 //CJK UNIFIED IDEOGRAPH - ,0xBB6F ,0x7C75 //CJK UNIFIED IDEOGRAPH - ,0xBB70 ,0x7C76 //CJK UNIFIED IDEOGRAPH - ,0xBB71 ,0x7C77 //CJK UNIFIED IDEOGRAPH - ,0xBB72 ,0x7C78 //CJK UNIFIED IDEOGRAPH - ,0xBB73 ,0x7C79 //CJK UNIFIED IDEOGRAPH - ,0xBB74 ,0x7C7A //CJK UNIFIED IDEOGRAPH - ,0xBB75 ,0x7C7E //CJK UNIFIED IDEOGRAPH - ,0xBB76 ,0x7C7F //CJK UNIFIED IDEOGRAPH - ,0xBB77 ,0x7C80 //CJK UNIFIED IDEOGRAPH - ,0xBB78 ,0x7C81 //CJK UNIFIED IDEOGRAPH - ,0xBB79 ,0x7C82 //CJK UNIFIED IDEOGRAPH - ,0xBB7A ,0x7C83 //CJK UNIFIED IDEOGRAPH - ,0xBB7B ,0x7C84 //CJK UNIFIED IDEOGRAPH - ,0xBB7C ,0x7C85 //CJK UNIFIED IDEOGRAPH - ,0xBB7D ,0x7C86 //CJK UNIFIED IDEOGRAPH - ,0xBB7E ,0x7C87 //CJK UNIFIED IDEOGRAPH - ,0xBB80 ,0x7C88 //CJK UNIFIED IDEOGRAPH - ,0xBB81 ,0x7C8A //CJK UNIFIED IDEOGRAPH - ,0xBB82 ,0x7C8B //CJK UNIFIED IDEOGRAPH - ,0xBB83 ,0x7C8C //CJK UNIFIED IDEOGRAPH - ,0xBB84 ,0x7C8D //CJK UNIFIED IDEOGRAPH - ,0xBB85 ,0x7C8E //CJK UNIFIED IDEOGRAPH - ,0xBB86 ,0x7C8F //CJK UNIFIED IDEOGRAPH - ,0xBB87 ,0x7C90 //CJK UNIFIED IDEOGRAPH - ,0xBB88 ,0x7C93 //CJK UNIFIED IDEOGRAPH - ,0xBB89 ,0x7C94 //CJK UNIFIED IDEOGRAPH - ,0xBB8A ,0x7C96 //CJK UNIFIED IDEOGRAPH - ,0xBB8B ,0x7C99 //CJK UNIFIED IDEOGRAPH - ,0xBB8C ,0x7C9A //CJK UNIFIED IDEOGRAPH - ,0xBB8D ,0x7C9B //CJK UNIFIED IDEOGRAPH - ,0xBB8E ,0x7CA0 //CJK UNIFIED IDEOGRAPH - ,0xBB8F ,0x7CA1 //CJK UNIFIED IDEOGRAPH - ,0xBB90 ,0x7CA3 //CJK UNIFIED IDEOGRAPH - ,0xBB91 ,0x7CA6 //CJK UNIFIED IDEOGRAPH - ,0xBB92 ,0x7CA7 //CJK UNIFIED IDEOGRAPH - ,0xBB93 ,0x7CA8 //CJK UNIFIED IDEOGRAPH - ,0xBB94 ,0x7CA9 //CJK UNIFIED IDEOGRAPH - ,0xBB95 ,0x7CAB //CJK UNIFIED IDEOGRAPH - ,0xBB96 ,0x7CAC //CJK UNIFIED IDEOGRAPH - ,0xBB97 ,0x7CAD //CJK UNIFIED IDEOGRAPH - ,0xBB98 ,0x7CAF //CJK UNIFIED IDEOGRAPH - ,0xBB99 ,0x7CB0 //CJK UNIFIED IDEOGRAPH - ,0xBB9A ,0x7CB4 //CJK UNIFIED IDEOGRAPH - ,0xBB9B ,0x7CB5 //CJK UNIFIED IDEOGRAPH - ,0xBB9C ,0x7CB6 //CJK UNIFIED IDEOGRAPH - ,0xBB9D ,0x7CB7 //CJK UNIFIED IDEOGRAPH - ,0xBB9E ,0x7CB8 //CJK UNIFIED IDEOGRAPH - ,0xBB9F ,0x7CBA //CJK UNIFIED IDEOGRAPH - ,0xBBA0 ,0x7CBB //CJK UNIFIED IDEOGRAPH - ,0xBBA1 ,0x5F27 //CJK UNIFIED IDEOGRAPH - ,0xBBA2 ,0x864E //CJK UNIFIED IDEOGRAPH - ,0xBBA3 ,0x552C //CJK UNIFIED IDEOGRAPH - ,0xBBA4 ,0x62A4 //CJK UNIFIED IDEOGRAPH - ,0xBBA5 ,0x4E92 //CJK UNIFIED IDEOGRAPH - ,0xBBA6 ,0x6CAA //CJK UNIFIED IDEOGRAPH - ,0xBBA7 ,0x6237 //CJK UNIFIED IDEOGRAPH - ,0xBBA8 ,0x82B1 //CJK UNIFIED IDEOGRAPH - ,0xBBA9 ,0x54D7 //CJK UNIFIED IDEOGRAPH - ,0xBBAA ,0x534E //CJK UNIFIED IDEOGRAPH - ,0xBBAB ,0x733E //CJK UNIFIED IDEOGRAPH - ,0xBBAC ,0x6ED1 //CJK UNIFIED IDEOGRAPH - ,0xBBAD ,0x753B //CJK UNIFIED IDEOGRAPH - ,0xBBAE ,0x5212 //CJK UNIFIED IDEOGRAPH - ,0xBBAF ,0x5316 //CJK UNIFIED IDEOGRAPH - ,0xBBB0 ,0x8BDD //CJK UNIFIED IDEOGRAPH - ,0xBBB1 ,0x69D0 //CJK UNIFIED IDEOGRAPH - ,0xBBB2 ,0x5F8A //CJK UNIFIED IDEOGRAPH - ,0xBBB3 ,0x6000 //CJK UNIFIED IDEOGRAPH - ,0xBBB4 ,0x6DEE //CJK UNIFIED IDEOGRAPH - ,0xBBB5 ,0x574F //CJK UNIFIED IDEOGRAPH - ,0xBBB6 ,0x6B22 //CJK UNIFIED IDEOGRAPH - ,0xBBB7 ,0x73AF //CJK UNIFIED IDEOGRAPH - ,0xBBB8 ,0x6853 //CJK UNIFIED IDEOGRAPH - ,0xBBB9 ,0x8FD8 //CJK UNIFIED IDEOGRAPH - ,0xBBBA ,0x7F13 //CJK UNIFIED IDEOGRAPH - ,0xBBBB ,0x6362 //CJK UNIFIED IDEOGRAPH - ,0xBBBC ,0x60A3 //CJK UNIFIED IDEOGRAPH - ,0xBBBD ,0x5524 //CJK UNIFIED IDEOGRAPH - ,0xBBBE ,0x75EA //CJK UNIFIED IDEOGRAPH - ,0xBBBF ,0x8C62 //CJK UNIFIED IDEOGRAPH - ,0xBBC0 ,0x7115 //CJK UNIFIED IDEOGRAPH - ,0xBBC1 ,0x6DA3 //CJK UNIFIED IDEOGRAPH - ,0xBBC2 ,0x5BA6 //CJK UNIFIED IDEOGRAPH - ,0xBBC3 ,0x5E7B //CJK UNIFIED IDEOGRAPH - ,0xBBC4 ,0x8352 //CJK UNIFIED IDEOGRAPH - ,0xBBC5 ,0x614C //CJK UNIFIED IDEOGRAPH - ,0xBBC6 ,0x9EC4 //CJK UNIFIED IDEOGRAPH - ,0xBBC7 ,0x78FA //CJK UNIFIED IDEOGRAPH - ,0xBBC8 ,0x8757 //CJK UNIFIED IDEOGRAPH - ,0xBBC9 ,0x7C27 //CJK UNIFIED IDEOGRAPH - ,0xBBCA ,0x7687 //CJK UNIFIED IDEOGRAPH - ,0xBBCB ,0x51F0 //CJK UNIFIED IDEOGRAPH - ,0xBBCC ,0x60F6 //CJK UNIFIED IDEOGRAPH - ,0xBBCD ,0x714C //CJK UNIFIED IDEOGRAPH - ,0xBBCE ,0x6643 //CJK UNIFIED IDEOGRAPH - ,0xBBCF ,0x5E4C //CJK UNIFIED IDEOGRAPH - ,0xBBD0 ,0x604D //CJK UNIFIED IDEOGRAPH - ,0xBBD1 ,0x8C0E //CJK UNIFIED IDEOGRAPH - ,0xBBD2 ,0x7070 //CJK UNIFIED IDEOGRAPH - ,0xBBD3 ,0x6325 //CJK UNIFIED IDEOGRAPH - ,0xBBD4 ,0x8F89 //CJK UNIFIED IDEOGRAPH - ,0xBBD5 ,0x5FBD //CJK UNIFIED IDEOGRAPH - ,0xBBD6 ,0x6062 //CJK UNIFIED IDEOGRAPH - ,0xBBD7 ,0x86D4 //CJK UNIFIED IDEOGRAPH - ,0xBBD8 ,0x56DE //CJK UNIFIED IDEOGRAPH - ,0xBBD9 ,0x6BC1 //CJK UNIFIED IDEOGRAPH - ,0xBBDA ,0x6094 //CJK UNIFIED IDEOGRAPH - ,0xBBDB ,0x6167 //CJK UNIFIED IDEOGRAPH - ,0xBBDC ,0x5349 //CJK UNIFIED IDEOGRAPH - ,0xBBDD ,0x60E0 //CJK UNIFIED IDEOGRAPH - ,0xBBDE ,0x6666 //CJK UNIFIED IDEOGRAPH - ,0xBBDF ,0x8D3F //CJK UNIFIED IDEOGRAPH - ,0xBBE0 ,0x79FD //CJK UNIFIED IDEOGRAPH - ,0xBBE1 ,0x4F1A //CJK UNIFIED IDEOGRAPH - ,0xBBE2 ,0x70E9 //CJK UNIFIED IDEOGRAPH - ,0xBBE3 ,0x6C47 //CJK UNIFIED IDEOGRAPH - ,0xBBE4 ,0x8BB3 //CJK UNIFIED IDEOGRAPH - ,0xBBE5 ,0x8BF2 //CJK UNIFIED IDEOGRAPH - ,0xBBE6 ,0x7ED8 //CJK UNIFIED IDEOGRAPH - ,0xBBE7 ,0x8364 //CJK UNIFIED IDEOGRAPH - ,0xBBE8 ,0x660F //CJK UNIFIED IDEOGRAPH - ,0xBBE9 ,0x5A5A //CJK UNIFIED IDEOGRAPH - ,0xBBEA ,0x9B42 //CJK UNIFIED IDEOGRAPH - ,0xBBEB ,0x6D51 //CJK UNIFIED IDEOGRAPH - ,0xBBEC ,0x6DF7 //CJK UNIFIED IDEOGRAPH - ,0xBBED ,0x8C41 //CJK UNIFIED IDEOGRAPH - ,0xBBEE ,0x6D3B //CJK UNIFIED IDEOGRAPH - ,0xBBEF ,0x4F19 //CJK UNIFIED IDEOGRAPH - ,0xBBF0 ,0x706B //CJK UNIFIED IDEOGRAPH - ,0xBBF1 ,0x83B7 //CJK UNIFIED IDEOGRAPH - ,0xBBF2 ,0x6216 //CJK UNIFIED IDEOGRAPH - ,0xBBF3 ,0x60D1 //CJK UNIFIED IDEOGRAPH - ,0xBBF4 ,0x970D //CJK UNIFIED IDEOGRAPH - ,0xBBF5 ,0x8D27 //CJK UNIFIED IDEOGRAPH - ,0xBBF6 ,0x7978 //CJK UNIFIED IDEOGRAPH - ,0xBBF7 ,0x51FB //CJK UNIFIED IDEOGRAPH - ,0xBBF8 ,0x573E //CJK UNIFIED IDEOGRAPH - ,0xBBF9 ,0x57FA //CJK UNIFIED IDEOGRAPH - ,0xBBFA ,0x673A //CJK UNIFIED IDEOGRAPH - ,0xBBFB ,0x7578 //CJK UNIFIED IDEOGRAPH - ,0xBBFC ,0x7A3D //CJK UNIFIED IDEOGRAPH - ,0xBBFD ,0x79EF //CJK UNIFIED IDEOGRAPH - ,0xBBFE ,0x7B95 //CJK UNIFIED IDEOGRAPH - ,0xBC40 ,0x7CBF //CJK UNIFIED IDEOGRAPH - ,0xBC41 ,0x7CC0 //CJK UNIFIED IDEOGRAPH - ,0xBC42 ,0x7CC2 //CJK UNIFIED IDEOGRAPH - ,0xBC43 ,0x7CC3 //CJK UNIFIED IDEOGRAPH - ,0xBC44 ,0x7CC4 //CJK UNIFIED IDEOGRAPH - ,0xBC45 ,0x7CC6 //CJK UNIFIED IDEOGRAPH - ,0xBC46 ,0x7CC9 //CJK UNIFIED IDEOGRAPH - ,0xBC47 ,0x7CCB //CJK UNIFIED IDEOGRAPH - ,0xBC48 ,0x7CCE //CJK UNIFIED IDEOGRAPH - ,0xBC49 ,0x7CCF //CJK UNIFIED IDEOGRAPH - ,0xBC4A ,0x7CD0 //CJK UNIFIED IDEOGRAPH - ,0xBC4B ,0x7CD1 //CJK UNIFIED IDEOGRAPH - ,0xBC4C ,0x7CD2 //CJK UNIFIED IDEOGRAPH - ,0xBC4D ,0x7CD3 //CJK UNIFIED IDEOGRAPH - ,0xBC4E ,0x7CD4 //CJK UNIFIED IDEOGRAPH - ,0xBC4F ,0x7CD8 //CJK UNIFIED IDEOGRAPH - ,0xBC50 ,0x7CDA //CJK UNIFIED IDEOGRAPH - ,0xBC51 ,0x7CDB //CJK UNIFIED IDEOGRAPH - ,0xBC52 ,0x7CDD //CJK UNIFIED IDEOGRAPH - ,0xBC53 ,0x7CDE //CJK UNIFIED IDEOGRAPH - ,0xBC54 ,0x7CE1 //CJK UNIFIED IDEOGRAPH - ,0xBC55 ,0x7CE2 //CJK UNIFIED IDEOGRAPH - ,0xBC56 ,0x7CE3 //CJK UNIFIED IDEOGRAPH - ,0xBC57 ,0x7CE4 //CJK UNIFIED IDEOGRAPH - ,0xBC58 ,0x7CE5 //CJK UNIFIED IDEOGRAPH - ,0xBC59 ,0x7CE6 //CJK UNIFIED IDEOGRAPH - ,0xBC5A ,0x7CE7 //CJK UNIFIED IDEOGRAPH - ,0xBC5B ,0x7CE9 //CJK UNIFIED IDEOGRAPH - ,0xBC5C ,0x7CEA //CJK UNIFIED IDEOGRAPH - ,0xBC5D ,0x7CEB //CJK UNIFIED IDEOGRAPH - ,0xBC5E ,0x7CEC //CJK UNIFIED IDEOGRAPH - ,0xBC5F ,0x7CED //CJK UNIFIED IDEOGRAPH - ,0xBC60 ,0x7CEE //CJK UNIFIED IDEOGRAPH - ,0xBC61 ,0x7CF0 //CJK UNIFIED IDEOGRAPH - ,0xBC62 ,0x7CF1 //CJK UNIFIED IDEOGRAPH - ,0xBC63 ,0x7CF2 //CJK UNIFIED IDEOGRAPH - ,0xBC64 ,0x7CF3 //CJK UNIFIED IDEOGRAPH - ,0xBC65 ,0x7CF4 //CJK UNIFIED IDEOGRAPH - ,0xBC66 ,0x7CF5 //CJK UNIFIED IDEOGRAPH - ,0xBC67 ,0x7CF6 //CJK UNIFIED IDEOGRAPH - ,0xBC68 ,0x7CF7 //CJK UNIFIED IDEOGRAPH - ,0xBC69 ,0x7CF9 //CJK UNIFIED IDEOGRAPH - ,0xBC6A ,0x7CFA //CJK UNIFIED IDEOGRAPH - ,0xBC6B ,0x7CFC //CJK UNIFIED IDEOGRAPH - ,0xBC6C ,0x7CFD //CJK UNIFIED IDEOGRAPH - ,0xBC6D ,0x7CFE //CJK UNIFIED IDEOGRAPH - ,0xBC6E ,0x7CFF //CJK UNIFIED IDEOGRAPH - ,0xBC6F ,0x7D00 //CJK UNIFIED IDEOGRAPH - ,0xBC70 ,0x7D01 //CJK UNIFIED IDEOGRAPH - ,0xBC71 ,0x7D02 //CJK UNIFIED IDEOGRAPH - ,0xBC72 ,0x7D03 //CJK UNIFIED IDEOGRAPH - ,0xBC73 ,0x7D04 //CJK UNIFIED IDEOGRAPH - ,0xBC74 ,0x7D05 //CJK UNIFIED IDEOGRAPH - ,0xBC75 ,0x7D06 //CJK UNIFIED IDEOGRAPH - ,0xBC76 ,0x7D07 //CJK UNIFIED IDEOGRAPH - ,0xBC77 ,0x7D08 //CJK UNIFIED IDEOGRAPH - ,0xBC78 ,0x7D09 //CJK UNIFIED IDEOGRAPH - ,0xBC79 ,0x7D0B //CJK UNIFIED IDEOGRAPH - ,0xBC7A ,0x7D0C //CJK UNIFIED IDEOGRAPH - ,0xBC7B ,0x7D0D //CJK UNIFIED IDEOGRAPH - ,0xBC7C ,0x7D0E //CJK UNIFIED IDEOGRAPH - ,0xBC7D ,0x7D0F //CJK UNIFIED IDEOGRAPH - ,0xBC7E ,0x7D10 //CJK UNIFIED IDEOGRAPH - ,0xBC80 ,0x7D11 //CJK UNIFIED IDEOGRAPH - ,0xBC81 ,0x7D12 //CJK UNIFIED IDEOGRAPH - ,0xBC82 ,0x7D13 //CJK UNIFIED IDEOGRAPH - ,0xBC83 ,0x7D14 //CJK UNIFIED IDEOGRAPH - ,0xBC84 ,0x7D15 //CJK UNIFIED IDEOGRAPH - ,0xBC85 ,0x7D16 //CJK UNIFIED IDEOGRAPH - ,0xBC86 ,0x7D17 //CJK UNIFIED IDEOGRAPH - ,0xBC87 ,0x7D18 //CJK UNIFIED IDEOGRAPH - ,0xBC88 ,0x7D19 //CJK UNIFIED IDEOGRAPH - ,0xBC89 ,0x7D1A //CJK UNIFIED IDEOGRAPH - ,0xBC8A ,0x7D1B //CJK UNIFIED IDEOGRAPH - ,0xBC8B ,0x7D1C //CJK UNIFIED IDEOGRAPH - ,0xBC8C ,0x7D1D //CJK UNIFIED IDEOGRAPH - ,0xBC8D ,0x7D1E //CJK UNIFIED IDEOGRAPH - ,0xBC8E ,0x7D1F //CJK UNIFIED IDEOGRAPH - ,0xBC8F ,0x7D21 //CJK UNIFIED IDEOGRAPH - ,0xBC90 ,0x7D23 //CJK UNIFIED IDEOGRAPH - ,0xBC91 ,0x7D24 //CJK UNIFIED IDEOGRAPH - ,0xBC92 ,0x7D25 //CJK UNIFIED IDEOGRAPH - ,0xBC93 ,0x7D26 //CJK UNIFIED IDEOGRAPH - ,0xBC94 ,0x7D28 //CJK UNIFIED IDEOGRAPH - ,0xBC95 ,0x7D29 //CJK UNIFIED IDEOGRAPH - ,0xBC96 ,0x7D2A //CJK UNIFIED IDEOGRAPH - ,0xBC97 ,0x7D2C //CJK UNIFIED IDEOGRAPH - ,0xBC98 ,0x7D2D //CJK UNIFIED IDEOGRAPH - ,0xBC99 ,0x7D2E //CJK UNIFIED IDEOGRAPH - ,0xBC9A ,0x7D30 //CJK UNIFIED IDEOGRAPH - ,0xBC9B ,0x7D31 //CJK UNIFIED IDEOGRAPH - ,0xBC9C ,0x7D32 //CJK UNIFIED IDEOGRAPH - ,0xBC9D ,0x7D33 //CJK UNIFIED IDEOGRAPH - ,0xBC9E ,0x7D34 //CJK UNIFIED IDEOGRAPH - ,0xBC9F ,0x7D35 //CJK UNIFIED IDEOGRAPH - ,0xBCA0 ,0x7D36 //CJK UNIFIED IDEOGRAPH - ,0xBCA1 ,0x808C //CJK UNIFIED IDEOGRAPH - ,0xBCA2 ,0x9965 //CJK UNIFIED IDEOGRAPH - ,0xBCA3 ,0x8FF9 //CJK UNIFIED IDEOGRAPH - ,0xBCA4 ,0x6FC0 //CJK UNIFIED IDEOGRAPH - ,0xBCA5 ,0x8BA5 //CJK UNIFIED IDEOGRAPH - ,0xBCA6 ,0x9E21 //CJK UNIFIED IDEOGRAPH - ,0xBCA7 ,0x59EC //CJK UNIFIED IDEOGRAPH - ,0xBCA8 ,0x7EE9 //CJK UNIFIED IDEOGRAPH - ,0xBCA9 ,0x7F09 //CJK UNIFIED IDEOGRAPH - ,0xBCAA ,0x5409 //CJK UNIFIED IDEOGRAPH - ,0xBCAB ,0x6781 //CJK UNIFIED IDEOGRAPH - ,0xBCAC ,0x68D8 //CJK UNIFIED IDEOGRAPH - ,0xBCAD ,0x8F91 //CJK UNIFIED IDEOGRAPH - ,0xBCAE ,0x7C4D //CJK UNIFIED IDEOGRAPH - ,0xBCAF ,0x96C6 //CJK UNIFIED IDEOGRAPH - ,0xBCB0 ,0x53CA //CJK UNIFIED IDEOGRAPH - ,0xBCB1 ,0x6025 //CJK UNIFIED IDEOGRAPH - ,0xBCB2 ,0x75BE //CJK UNIFIED IDEOGRAPH - ,0xBCB3 ,0x6C72 //CJK UNIFIED IDEOGRAPH - ,0xBCB4 ,0x5373 //CJK UNIFIED IDEOGRAPH - ,0xBCB5 ,0x5AC9 //CJK UNIFIED IDEOGRAPH - ,0xBCB6 ,0x7EA7 //CJK UNIFIED IDEOGRAPH - ,0xBCB7 ,0x6324 //CJK UNIFIED IDEOGRAPH - ,0xBCB8 ,0x51E0 //CJK UNIFIED IDEOGRAPH - ,0xBCB9 ,0x810A //CJK UNIFIED IDEOGRAPH - ,0xBCBA ,0x5DF1 //CJK UNIFIED IDEOGRAPH - ,0xBCBB ,0x84DF //CJK UNIFIED IDEOGRAPH - ,0xBCBC ,0x6280 //CJK UNIFIED IDEOGRAPH - ,0xBCBD ,0x5180 //CJK UNIFIED IDEOGRAPH - ,0xBCBE ,0x5B63 //CJK UNIFIED IDEOGRAPH - ,0xBCBF ,0x4F0E //CJK UNIFIED IDEOGRAPH - ,0xBCC0 ,0x796D //CJK UNIFIED IDEOGRAPH - ,0xBCC1 ,0x5242 //CJK UNIFIED IDEOGRAPH - ,0xBCC2 ,0x60B8 //CJK UNIFIED IDEOGRAPH - ,0xBCC3 ,0x6D4E //CJK UNIFIED IDEOGRAPH - ,0xBCC4 ,0x5BC4 //CJK UNIFIED IDEOGRAPH - ,0xBCC5 ,0x5BC2 //CJK UNIFIED IDEOGRAPH - ,0xBCC6 ,0x8BA1 //CJK UNIFIED IDEOGRAPH - ,0xBCC7 ,0x8BB0 //CJK UNIFIED IDEOGRAPH - ,0xBCC8 ,0x65E2 //CJK UNIFIED IDEOGRAPH - ,0xBCC9 ,0x5FCC //CJK UNIFIED IDEOGRAPH - ,0xBCCA ,0x9645 //CJK UNIFIED IDEOGRAPH - ,0xBCCB ,0x5993 //CJK UNIFIED IDEOGRAPH - ,0xBCCC ,0x7EE7 //CJK UNIFIED IDEOGRAPH - ,0xBCCD ,0x7EAA //CJK UNIFIED IDEOGRAPH - ,0xBCCE ,0x5609 //CJK UNIFIED IDEOGRAPH - ,0xBCCF ,0x67B7 //CJK UNIFIED IDEOGRAPH - ,0xBCD0 ,0x5939 //CJK UNIFIED IDEOGRAPH - ,0xBCD1 ,0x4F73 //CJK UNIFIED IDEOGRAPH - ,0xBCD2 ,0x5BB6 //CJK UNIFIED IDEOGRAPH - ,0xBCD3 ,0x52A0 //CJK UNIFIED IDEOGRAPH - ,0xBCD4 ,0x835A //CJK UNIFIED IDEOGRAPH - ,0xBCD5 ,0x988A //CJK UNIFIED IDEOGRAPH - ,0xBCD6 ,0x8D3E //CJK UNIFIED IDEOGRAPH - ,0xBCD7 ,0x7532 //CJK UNIFIED IDEOGRAPH - ,0xBCD8 ,0x94BE //CJK UNIFIED IDEOGRAPH - ,0xBCD9 ,0x5047 //CJK UNIFIED IDEOGRAPH - ,0xBCDA ,0x7A3C //CJK UNIFIED IDEOGRAPH - ,0xBCDB ,0x4EF7 //CJK UNIFIED IDEOGRAPH - ,0xBCDC ,0x67B6 //CJK UNIFIED IDEOGRAPH - ,0xBCDD ,0x9A7E //CJK UNIFIED IDEOGRAPH - ,0xBCDE ,0x5AC1 //CJK UNIFIED IDEOGRAPH - ,0xBCDF ,0x6B7C //CJK UNIFIED IDEOGRAPH - ,0xBCE0 ,0x76D1 //CJK UNIFIED IDEOGRAPH - ,0xBCE1 ,0x575A //CJK UNIFIED IDEOGRAPH - ,0xBCE2 ,0x5C16 //CJK UNIFIED IDEOGRAPH - ,0xBCE3 ,0x7B3A //CJK UNIFIED IDEOGRAPH - ,0xBCE4 ,0x95F4 //CJK UNIFIED IDEOGRAPH - ,0xBCE5 ,0x714E //CJK UNIFIED IDEOGRAPH - ,0xBCE6 ,0x517C //CJK UNIFIED IDEOGRAPH - ,0xBCE7 ,0x80A9 //CJK UNIFIED IDEOGRAPH - ,0xBCE8 ,0x8270 //CJK UNIFIED IDEOGRAPH - ,0xBCE9 ,0x5978 //CJK UNIFIED IDEOGRAPH - ,0xBCEA ,0x7F04 //CJK UNIFIED IDEOGRAPH - ,0xBCEB ,0x8327 //CJK UNIFIED IDEOGRAPH - ,0xBCEC ,0x68C0 //CJK UNIFIED IDEOGRAPH - ,0xBCED ,0x67EC //CJK UNIFIED IDEOGRAPH - ,0xBCEE ,0x78B1 //CJK UNIFIED IDEOGRAPH - ,0xBCEF ,0x7877 //CJK UNIFIED IDEOGRAPH - ,0xBCF0 ,0x62E3 //CJK UNIFIED IDEOGRAPH - ,0xBCF1 ,0x6361 //CJK UNIFIED IDEOGRAPH - ,0xBCF2 ,0x7B80 //CJK UNIFIED IDEOGRAPH - ,0xBCF3 ,0x4FED //CJK UNIFIED IDEOGRAPH - ,0xBCF4 ,0x526A //CJK UNIFIED IDEOGRAPH - ,0xBCF5 ,0x51CF //CJK UNIFIED IDEOGRAPH - ,0xBCF6 ,0x8350 //CJK UNIFIED IDEOGRAPH - ,0xBCF7 ,0x69DB //CJK UNIFIED IDEOGRAPH - ,0xBCF8 ,0x9274 //CJK UNIFIED IDEOGRAPH - ,0xBCF9 ,0x8DF5 //CJK UNIFIED IDEOGRAPH - ,0xBCFA ,0x8D31 //CJK UNIFIED IDEOGRAPH - ,0xBCFB ,0x89C1 //CJK UNIFIED IDEOGRAPH - ,0xBCFC ,0x952E //CJK UNIFIED IDEOGRAPH - ,0xBCFD ,0x7BAD //CJK UNIFIED IDEOGRAPH - ,0xBCFE ,0x4EF6 //CJK UNIFIED IDEOGRAPH - ,0xBD40 ,0x7D37 //CJK UNIFIED IDEOGRAPH - ,0xBD41 ,0x7D38 //CJK UNIFIED IDEOGRAPH - ,0xBD42 ,0x7D39 //CJK UNIFIED IDEOGRAPH - ,0xBD43 ,0x7D3A //CJK UNIFIED IDEOGRAPH - ,0xBD44 ,0x7D3B //CJK UNIFIED IDEOGRAPH - ,0xBD45 ,0x7D3C //CJK UNIFIED IDEOGRAPH - ,0xBD46 ,0x7D3D //CJK UNIFIED IDEOGRAPH - ,0xBD47 ,0x7D3E //CJK UNIFIED IDEOGRAPH - ,0xBD48 ,0x7D3F //CJK UNIFIED IDEOGRAPH - ,0xBD49 ,0x7D40 //CJK UNIFIED IDEOGRAPH - ,0xBD4A ,0x7D41 //CJK UNIFIED IDEOGRAPH - ,0xBD4B ,0x7D42 //CJK UNIFIED IDEOGRAPH - ,0xBD4C ,0x7D43 //CJK UNIFIED IDEOGRAPH - ,0xBD4D ,0x7D44 //CJK UNIFIED IDEOGRAPH - ,0xBD4E ,0x7D45 //CJK UNIFIED IDEOGRAPH - ,0xBD4F ,0x7D46 //CJK UNIFIED IDEOGRAPH - ,0xBD50 ,0x7D47 //CJK UNIFIED IDEOGRAPH - ,0xBD51 ,0x7D48 //CJK UNIFIED IDEOGRAPH - ,0xBD52 ,0x7D49 //CJK UNIFIED IDEOGRAPH - ,0xBD53 ,0x7D4A //CJK UNIFIED IDEOGRAPH - ,0xBD54 ,0x7D4B //CJK UNIFIED IDEOGRAPH - ,0xBD55 ,0x7D4C //CJK UNIFIED IDEOGRAPH - ,0xBD56 ,0x7D4D //CJK UNIFIED IDEOGRAPH - ,0xBD57 ,0x7D4E //CJK UNIFIED IDEOGRAPH - ,0xBD58 ,0x7D4F //CJK UNIFIED IDEOGRAPH - ,0xBD59 ,0x7D50 //CJK UNIFIED IDEOGRAPH - ,0xBD5A ,0x7D51 //CJK UNIFIED IDEOGRAPH - ,0xBD5B ,0x7D52 //CJK UNIFIED IDEOGRAPH - ,0xBD5C ,0x7D53 //CJK UNIFIED IDEOGRAPH - ,0xBD5D ,0x7D54 //CJK UNIFIED IDEOGRAPH - ,0xBD5E ,0x7D55 //CJK UNIFIED IDEOGRAPH - ,0xBD5F ,0x7D56 //CJK UNIFIED IDEOGRAPH - ,0xBD60 ,0x7D57 //CJK UNIFIED IDEOGRAPH - ,0xBD61 ,0x7D58 //CJK UNIFIED IDEOGRAPH - ,0xBD62 ,0x7D59 //CJK UNIFIED IDEOGRAPH - ,0xBD63 ,0x7D5A //CJK UNIFIED IDEOGRAPH - ,0xBD64 ,0x7D5B //CJK UNIFIED IDEOGRAPH - ,0xBD65 ,0x7D5C //CJK UNIFIED IDEOGRAPH - ,0xBD66 ,0x7D5D //CJK UNIFIED IDEOGRAPH - ,0xBD67 ,0x7D5E //CJK UNIFIED IDEOGRAPH - ,0xBD68 ,0x7D5F //CJK UNIFIED IDEOGRAPH - ,0xBD69 ,0x7D60 //CJK UNIFIED IDEOGRAPH - ,0xBD6A ,0x7D61 //CJK UNIFIED IDEOGRAPH - ,0xBD6B ,0x7D62 //CJK UNIFIED IDEOGRAPH - ,0xBD6C ,0x7D63 //CJK UNIFIED IDEOGRAPH - ,0xBD6D ,0x7D64 //CJK UNIFIED IDEOGRAPH - ,0xBD6E ,0x7D65 //CJK UNIFIED IDEOGRAPH - ,0xBD6F ,0x7D66 //CJK UNIFIED IDEOGRAPH - ,0xBD70 ,0x7D67 //CJK UNIFIED IDEOGRAPH - ,0xBD71 ,0x7D68 //CJK UNIFIED IDEOGRAPH - ,0xBD72 ,0x7D69 //CJK UNIFIED IDEOGRAPH - ,0xBD73 ,0x7D6A //CJK UNIFIED IDEOGRAPH - ,0xBD74 ,0x7D6B //CJK UNIFIED IDEOGRAPH - ,0xBD75 ,0x7D6C //CJK UNIFIED IDEOGRAPH - ,0xBD76 ,0x7D6D //CJK UNIFIED IDEOGRAPH - ,0xBD77 ,0x7D6F //CJK UNIFIED IDEOGRAPH - ,0xBD78 ,0x7D70 //CJK UNIFIED IDEOGRAPH - ,0xBD79 ,0x7D71 //CJK UNIFIED IDEOGRAPH - ,0xBD7A ,0x7D72 //CJK UNIFIED IDEOGRAPH - ,0xBD7B ,0x7D73 //CJK UNIFIED IDEOGRAPH - ,0xBD7C ,0x7D74 //CJK UNIFIED IDEOGRAPH - ,0xBD7D ,0x7D75 //CJK UNIFIED IDEOGRAPH - ,0xBD7E ,0x7D76 //CJK UNIFIED IDEOGRAPH - ,0xBD80 ,0x7D78 //CJK UNIFIED IDEOGRAPH - ,0xBD81 ,0x7D79 //CJK UNIFIED IDEOGRAPH - ,0xBD82 ,0x7D7A //CJK UNIFIED IDEOGRAPH - ,0xBD83 ,0x7D7B //CJK UNIFIED IDEOGRAPH - ,0xBD84 ,0x7D7C //CJK UNIFIED IDEOGRAPH - ,0xBD85 ,0x7D7D //CJK UNIFIED IDEOGRAPH - ,0xBD86 ,0x7D7E //CJK UNIFIED IDEOGRAPH - ,0xBD87 ,0x7D7F //CJK UNIFIED IDEOGRAPH - ,0xBD88 ,0x7D80 //CJK UNIFIED IDEOGRAPH - ,0xBD89 ,0x7D81 //CJK UNIFIED IDEOGRAPH - ,0xBD8A ,0x7D82 //CJK UNIFIED IDEOGRAPH - ,0xBD8B ,0x7D83 //CJK UNIFIED IDEOGRAPH - ,0xBD8C ,0x7D84 //CJK UNIFIED IDEOGRAPH - ,0xBD8D ,0x7D85 //CJK UNIFIED IDEOGRAPH - ,0xBD8E ,0x7D86 //CJK UNIFIED IDEOGRAPH - ,0xBD8F ,0x7D87 //CJK UNIFIED IDEOGRAPH - ,0xBD90 ,0x7D88 //CJK UNIFIED IDEOGRAPH - ,0xBD91 ,0x7D89 //CJK UNIFIED IDEOGRAPH - ,0xBD92 ,0x7D8A //CJK UNIFIED IDEOGRAPH - ,0xBD93 ,0x7D8B //CJK UNIFIED IDEOGRAPH - ,0xBD94 ,0x7D8C //CJK UNIFIED IDEOGRAPH - ,0xBD95 ,0x7D8D //CJK UNIFIED IDEOGRAPH - ,0xBD96 ,0x7D8E //CJK UNIFIED IDEOGRAPH - ,0xBD97 ,0x7D8F //CJK UNIFIED IDEOGRAPH - ,0xBD98 ,0x7D90 //CJK UNIFIED IDEOGRAPH - ,0xBD99 ,0x7D91 //CJK UNIFIED IDEOGRAPH - ,0xBD9A ,0x7D92 //CJK UNIFIED IDEOGRAPH - ,0xBD9B ,0x7D93 //CJK UNIFIED IDEOGRAPH - ,0xBD9C ,0x7D94 //CJK UNIFIED IDEOGRAPH - ,0xBD9D ,0x7D95 //CJK UNIFIED IDEOGRAPH - ,0xBD9E ,0x7D96 //CJK UNIFIED IDEOGRAPH - ,0xBD9F ,0x7D97 //CJK UNIFIED IDEOGRAPH - ,0xBDA0 ,0x7D98 //CJK UNIFIED IDEOGRAPH - ,0xBDA1 ,0x5065 //CJK UNIFIED IDEOGRAPH - ,0xBDA2 ,0x8230 //CJK UNIFIED IDEOGRAPH - ,0xBDA3 ,0x5251 //CJK UNIFIED IDEOGRAPH - ,0xBDA4 ,0x996F //CJK UNIFIED IDEOGRAPH - ,0xBDA5 ,0x6E10 //CJK UNIFIED IDEOGRAPH - ,0xBDA6 ,0x6E85 //CJK UNIFIED IDEOGRAPH - ,0xBDA7 ,0x6DA7 //CJK UNIFIED IDEOGRAPH - ,0xBDA8 ,0x5EFA //CJK UNIFIED IDEOGRAPH - ,0xBDA9 ,0x50F5 //CJK UNIFIED IDEOGRAPH - ,0xBDAA ,0x59DC //CJK UNIFIED IDEOGRAPH - ,0xBDAB ,0x5C06 //CJK UNIFIED IDEOGRAPH - ,0xBDAC ,0x6D46 //CJK UNIFIED IDEOGRAPH - ,0xBDAD ,0x6C5F //CJK UNIFIED IDEOGRAPH - ,0xBDAE ,0x7586 //CJK UNIFIED IDEOGRAPH - ,0xBDAF ,0x848B //CJK UNIFIED IDEOGRAPH - ,0xBDB0 ,0x6868 //CJK UNIFIED IDEOGRAPH - ,0xBDB1 ,0x5956 //CJK UNIFIED IDEOGRAPH - ,0xBDB2 ,0x8BB2 //CJK UNIFIED IDEOGRAPH - ,0xBDB3 ,0x5320 //CJK UNIFIED IDEOGRAPH - ,0xBDB4 ,0x9171 //CJK UNIFIED IDEOGRAPH - ,0xBDB5 ,0x964D //CJK UNIFIED IDEOGRAPH - ,0xBDB6 ,0x8549 //CJK UNIFIED IDEOGRAPH - ,0xBDB7 ,0x6912 //CJK UNIFIED IDEOGRAPH - ,0xBDB8 ,0x7901 //CJK UNIFIED IDEOGRAPH - ,0xBDB9 ,0x7126 //CJK UNIFIED IDEOGRAPH - ,0xBDBA ,0x80F6 //CJK UNIFIED IDEOGRAPH - ,0xBDBB ,0x4EA4 //CJK UNIFIED IDEOGRAPH - ,0xBDBC ,0x90CA //CJK UNIFIED IDEOGRAPH - ,0xBDBD ,0x6D47 //CJK UNIFIED IDEOGRAPH - ,0xBDBE ,0x9A84 //CJK UNIFIED IDEOGRAPH - ,0xBDBF ,0x5A07 //CJK UNIFIED IDEOGRAPH - ,0xBDC0 ,0x56BC //CJK UNIFIED IDEOGRAPH - ,0xBDC1 ,0x6405 //CJK UNIFIED IDEOGRAPH - ,0xBDC2 ,0x94F0 //CJK UNIFIED IDEOGRAPH - ,0xBDC3 ,0x77EB //CJK UNIFIED IDEOGRAPH - ,0xBDC4 ,0x4FA5 //CJK UNIFIED IDEOGRAPH - ,0xBDC5 ,0x811A //CJK UNIFIED IDEOGRAPH - ,0xBDC6 ,0x72E1 //CJK UNIFIED IDEOGRAPH - ,0xBDC7 ,0x89D2 //CJK UNIFIED IDEOGRAPH - ,0xBDC8 ,0x997A //CJK UNIFIED IDEOGRAPH - ,0xBDC9 ,0x7F34 //CJK UNIFIED IDEOGRAPH - ,0xBDCA ,0x7EDE //CJK UNIFIED IDEOGRAPH - ,0xBDCB ,0x527F //CJK UNIFIED IDEOGRAPH - ,0xBDCC ,0x6559 //CJK UNIFIED IDEOGRAPH - ,0xBDCD ,0x9175 //CJK UNIFIED IDEOGRAPH - ,0xBDCE ,0x8F7F //CJK UNIFIED IDEOGRAPH - ,0xBDCF ,0x8F83 //CJK UNIFIED IDEOGRAPH - ,0xBDD0 ,0x53EB //CJK UNIFIED IDEOGRAPH - ,0xBDD1 ,0x7A96 //CJK UNIFIED IDEOGRAPH - ,0xBDD2 ,0x63ED //CJK UNIFIED IDEOGRAPH - ,0xBDD3 ,0x63A5 //CJK UNIFIED IDEOGRAPH - ,0xBDD4 ,0x7686 //CJK UNIFIED IDEOGRAPH - ,0xBDD5 ,0x79F8 //CJK UNIFIED IDEOGRAPH - ,0xBDD6 ,0x8857 //CJK UNIFIED IDEOGRAPH - ,0xBDD7 ,0x9636 //CJK UNIFIED IDEOGRAPH - ,0xBDD8 ,0x622A //CJK UNIFIED IDEOGRAPH - ,0xBDD9 ,0x52AB //CJK UNIFIED IDEOGRAPH - ,0xBDDA ,0x8282 //CJK UNIFIED IDEOGRAPH - ,0xBDDB ,0x6854 //CJK UNIFIED IDEOGRAPH - ,0xBDDC ,0x6770 //CJK UNIFIED IDEOGRAPH - ,0xBDDD ,0x6377 //CJK UNIFIED IDEOGRAPH - ,0xBDDE ,0x776B //CJK UNIFIED IDEOGRAPH - ,0xBDDF ,0x7AED //CJK UNIFIED IDEOGRAPH - ,0xBDE0 ,0x6D01 //CJK UNIFIED IDEOGRAPH - ,0xBDE1 ,0x7ED3 //CJK UNIFIED IDEOGRAPH - ,0xBDE2 ,0x89E3 //CJK UNIFIED IDEOGRAPH - ,0xBDE3 ,0x59D0 //CJK UNIFIED IDEOGRAPH - ,0xBDE4 ,0x6212 //CJK UNIFIED IDEOGRAPH - ,0xBDE5 ,0x85C9 //CJK UNIFIED IDEOGRAPH - ,0xBDE6 ,0x82A5 //CJK UNIFIED IDEOGRAPH - ,0xBDE7 ,0x754C //CJK UNIFIED IDEOGRAPH - ,0xBDE8 ,0x501F //CJK UNIFIED IDEOGRAPH - ,0xBDE9 ,0x4ECB //CJK UNIFIED IDEOGRAPH - ,0xBDEA ,0x75A5 //CJK UNIFIED IDEOGRAPH - ,0xBDEB ,0x8BEB //CJK UNIFIED IDEOGRAPH - ,0xBDEC ,0x5C4A //CJK UNIFIED IDEOGRAPH - ,0xBDED ,0x5DFE //CJK UNIFIED IDEOGRAPH - ,0xBDEE ,0x7B4B //CJK UNIFIED IDEOGRAPH - ,0xBDEF ,0x65A4 //CJK UNIFIED IDEOGRAPH - ,0xBDF0 ,0x91D1 //CJK UNIFIED IDEOGRAPH - ,0xBDF1 ,0x4ECA //CJK UNIFIED IDEOGRAPH - ,0xBDF2 ,0x6D25 //CJK UNIFIED IDEOGRAPH - ,0xBDF3 ,0x895F //CJK UNIFIED IDEOGRAPH - ,0xBDF4 ,0x7D27 //CJK UNIFIED IDEOGRAPH - ,0xBDF5 ,0x9526 //CJK UNIFIED IDEOGRAPH - ,0xBDF6 ,0x4EC5 //CJK UNIFIED IDEOGRAPH - ,0xBDF7 ,0x8C28 //CJK UNIFIED IDEOGRAPH - ,0xBDF8 ,0x8FDB //CJK UNIFIED IDEOGRAPH - ,0xBDF9 ,0x9773 //CJK UNIFIED IDEOGRAPH - ,0xBDFA ,0x664B //CJK UNIFIED IDEOGRAPH - ,0xBDFB ,0x7981 //CJK UNIFIED IDEOGRAPH - ,0xBDFC ,0x8FD1 //CJK UNIFIED IDEOGRAPH - ,0xBDFD ,0x70EC //CJK UNIFIED IDEOGRAPH - ,0xBDFE ,0x6D78 //CJK UNIFIED IDEOGRAPH - ,0xBE40 ,0x7D99 //CJK UNIFIED IDEOGRAPH - ,0xBE41 ,0x7D9A //CJK UNIFIED IDEOGRAPH - ,0xBE42 ,0x7D9B //CJK UNIFIED IDEOGRAPH - ,0xBE43 ,0x7D9C //CJK UNIFIED IDEOGRAPH - ,0xBE44 ,0x7D9D //CJK UNIFIED IDEOGRAPH - ,0xBE45 ,0x7D9E //CJK UNIFIED IDEOGRAPH - ,0xBE46 ,0x7D9F //CJK UNIFIED IDEOGRAPH - ,0xBE47 ,0x7DA0 //CJK UNIFIED IDEOGRAPH - ,0xBE48 ,0x7DA1 //CJK UNIFIED IDEOGRAPH - ,0xBE49 ,0x7DA2 //CJK UNIFIED IDEOGRAPH - ,0xBE4A ,0x7DA3 //CJK UNIFIED IDEOGRAPH - ,0xBE4B ,0x7DA4 //CJK UNIFIED IDEOGRAPH - ,0xBE4C ,0x7DA5 //CJK UNIFIED IDEOGRAPH - ,0xBE4D ,0x7DA7 //CJK UNIFIED IDEOGRAPH - ,0xBE4E ,0x7DA8 //CJK UNIFIED IDEOGRAPH - ,0xBE4F ,0x7DA9 //CJK UNIFIED IDEOGRAPH - ,0xBE50 ,0x7DAA //CJK UNIFIED IDEOGRAPH - ,0xBE51 ,0x7DAB //CJK UNIFIED IDEOGRAPH - ,0xBE52 ,0x7DAC //CJK UNIFIED IDEOGRAPH - ,0xBE53 ,0x7DAD //CJK UNIFIED IDEOGRAPH - ,0xBE54 ,0x7DAF //CJK UNIFIED IDEOGRAPH - ,0xBE55 ,0x7DB0 //CJK UNIFIED IDEOGRAPH - ,0xBE56 ,0x7DB1 //CJK UNIFIED IDEOGRAPH - ,0xBE57 ,0x7DB2 //CJK UNIFIED IDEOGRAPH - ,0xBE58 ,0x7DB3 //CJK UNIFIED IDEOGRAPH - ,0xBE59 ,0x7DB4 //CJK UNIFIED IDEOGRAPH - ,0xBE5A ,0x7DB5 //CJK UNIFIED IDEOGRAPH - ,0xBE5B ,0x7DB6 //CJK UNIFIED IDEOGRAPH - ,0xBE5C ,0x7DB7 //CJK UNIFIED IDEOGRAPH - ,0xBE5D ,0x7DB8 //CJK UNIFIED IDEOGRAPH - ,0xBE5E ,0x7DB9 //CJK UNIFIED IDEOGRAPH - ,0xBE5F ,0x7DBA //CJK UNIFIED IDEOGRAPH - ,0xBE60 ,0x7DBB //CJK UNIFIED IDEOGRAPH - ,0xBE61 ,0x7DBC //CJK UNIFIED IDEOGRAPH - ,0xBE62 ,0x7DBD //CJK UNIFIED IDEOGRAPH - ,0xBE63 ,0x7DBE //CJK UNIFIED IDEOGRAPH - ,0xBE64 ,0x7DBF //CJK UNIFIED IDEOGRAPH - ,0xBE65 ,0x7DC0 //CJK UNIFIED IDEOGRAPH - ,0xBE66 ,0x7DC1 //CJK UNIFIED IDEOGRAPH - ,0xBE67 ,0x7DC2 //CJK UNIFIED IDEOGRAPH - ,0xBE68 ,0x7DC3 //CJK UNIFIED IDEOGRAPH - ,0xBE69 ,0x7DC4 //CJK UNIFIED IDEOGRAPH - ,0xBE6A ,0x7DC5 //CJK UNIFIED IDEOGRAPH - ,0xBE6B ,0x7DC6 //CJK UNIFIED IDEOGRAPH - ,0xBE6C ,0x7DC7 //CJK UNIFIED IDEOGRAPH - ,0xBE6D ,0x7DC8 //CJK UNIFIED IDEOGRAPH - ,0xBE6E ,0x7DC9 //CJK UNIFIED IDEOGRAPH - ,0xBE6F ,0x7DCA //CJK UNIFIED IDEOGRAPH - ,0xBE70 ,0x7DCB //CJK UNIFIED IDEOGRAPH - ,0xBE71 ,0x7DCC //CJK UNIFIED IDEOGRAPH - ,0xBE72 ,0x7DCD //CJK UNIFIED IDEOGRAPH - ,0xBE73 ,0x7DCE //CJK UNIFIED IDEOGRAPH - ,0xBE74 ,0x7DCF //CJK UNIFIED IDEOGRAPH - ,0xBE75 ,0x7DD0 //CJK UNIFIED IDEOGRAPH - ,0xBE76 ,0x7DD1 //CJK UNIFIED IDEOGRAPH - ,0xBE77 ,0x7DD2 //CJK UNIFIED IDEOGRAPH - ,0xBE78 ,0x7DD3 //CJK UNIFIED IDEOGRAPH - ,0xBE79 ,0x7DD4 //CJK UNIFIED IDEOGRAPH - ,0xBE7A ,0x7DD5 //CJK UNIFIED IDEOGRAPH - ,0xBE7B ,0x7DD6 //CJK UNIFIED IDEOGRAPH - ,0xBE7C ,0x7DD7 //CJK UNIFIED IDEOGRAPH - ,0xBE7D ,0x7DD8 //CJK UNIFIED IDEOGRAPH - ,0xBE7E ,0x7DD9 //CJK UNIFIED IDEOGRAPH - ,0xBE80 ,0x7DDA //CJK UNIFIED IDEOGRAPH - ,0xBE81 ,0x7DDB //CJK UNIFIED IDEOGRAPH - ,0xBE82 ,0x7DDC //CJK UNIFIED IDEOGRAPH - ,0xBE83 ,0x7DDD //CJK UNIFIED IDEOGRAPH - ,0xBE84 ,0x7DDE //CJK UNIFIED IDEOGRAPH - ,0xBE85 ,0x7DDF //CJK UNIFIED IDEOGRAPH - ,0xBE86 ,0x7DE0 //CJK UNIFIED IDEOGRAPH - ,0xBE87 ,0x7DE1 //CJK UNIFIED IDEOGRAPH - ,0xBE88 ,0x7DE2 //CJK UNIFIED IDEOGRAPH - ,0xBE89 ,0x7DE3 //CJK UNIFIED IDEOGRAPH - ,0xBE8A ,0x7DE4 //CJK UNIFIED IDEOGRAPH - ,0xBE8B ,0x7DE5 //CJK UNIFIED IDEOGRAPH - ,0xBE8C ,0x7DE6 //CJK UNIFIED IDEOGRAPH - ,0xBE8D ,0x7DE7 //CJK UNIFIED IDEOGRAPH - ,0xBE8E ,0x7DE8 //CJK UNIFIED IDEOGRAPH - ,0xBE8F ,0x7DE9 //CJK UNIFIED IDEOGRAPH - ,0xBE90 ,0x7DEA //CJK UNIFIED IDEOGRAPH - ,0xBE91 ,0x7DEB //CJK UNIFIED IDEOGRAPH - ,0xBE92 ,0x7DEC //CJK UNIFIED IDEOGRAPH - ,0xBE93 ,0x7DED //CJK UNIFIED IDEOGRAPH - ,0xBE94 ,0x7DEE //CJK UNIFIED IDEOGRAPH - ,0xBE95 ,0x7DEF //CJK UNIFIED IDEOGRAPH - ,0xBE96 ,0x7DF0 //CJK UNIFIED IDEOGRAPH - ,0xBE97 ,0x7DF1 //CJK UNIFIED IDEOGRAPH - ,0xBE98 ,0x7DF2 //CJK UNIFIED IDEOGRAPH - ,0xBE99 ,0x7DF3 //CJK UNIFIED IDEOGRAPH - ,0xBE9A ,0x7DF4 //CJK UNIFIED IDEOGRAPH - ,0xBE9B ,0x7DF5 //CJK UNIFIED IDEOGRAPH - ,0xBE9C ,0x7DF6 //CJK UNIFIED IDEOGRAPH - ,0xBE9D ,0x7DF7 //CJK UNIFIED IDEOGRAPH - ,0xBE9E ,0x7DF8 //CJK UNIFIED IDEOGRAPH - ,0xBE9F ,0x7DF9 //CJK UNIFIED IDEOGRAPH - ,0xBEA0 ,0x7DFA //CJK UNIFIED IDEOGRAPH - ,0xBEA1 ,0x5C3D //CJK UNIFIED IDEOGRAPH - ,0xBEA2 ,0x52B2 //CJK UNIFIED IDEOGRAPH - ,0xBEA3 ,0x8346 //CJK UNIFIED IDEOGRAPH - ,0xBEA4 ,0x5162 //CJK UNIFIED IDEOGRAPH - ,0xBEA5 ,0x830E //CJK UNIFIED IDEOGRAPH - ,0xBEA6 ,0x775B //CJK UNIFIED IDEOGRAPH - ,0xBEA7 ,0x6676 //CJK UNIFIED IDEOGRAPH - ,0xBEA8 ,0x9CB8 //CJK UNIFIED IDEOGRAPH - ,0xBEA9 ,0x4EAC //CJK UNIFIED IDEOGRAPH - ,0xBEAA ,0x60CA //CJK UNIFIED IDEOGRAPH - ,0xBEAB ,0x7CBE //CJK UNIFIED IDEOGRAPH - ,0xBEAC ,0x7CB3 //CJK UNIFIED IDEOGRAPH - ,0xBEAD ,0x7ECF //CJK UNIFIED IDEOGRAPH - ,0xBEAE ,0x4E95 //CJK UNIFIED IDEOGRAPH - ,0xBEAF ,0x8B66 //CJK UNIFIED IDEOGRAPH - ,0xBEB0 ,0x666F //CJK UNIFIED IDEOGRAPH - ,0xBEB1 ,0x9888 //CJK UNIFIED IDEOGRAPH - ,0xBEB2 ,0x9759 //CJK UNIFIED IDEOGRAPH - ,0xBEB3 ,0x5883 //CJK UNIFIED IDEOGRAPH - ,0xBEB4 ,0x656C //CJK UNIFIED IDEOGRAPH - ,0xBEB5 ,0x955C //CJK UNIFIED IDEOGRAPH - ,0xBEB6 ,0x5F84 //CJK UNIFIED IDEOGRAPH - ,0xBEB7 ,0x75C9 //CJK UNIFIED IDEOGRAPH - ,0xBEB8 ,0x9756 //CJK UNIFIED IDEOGRAPH - ,0xBEB9 ,0x7ADF //CJK UNIFIED IDEOGRAPH - ,0xBEBA ,0x7ADE //CJK UNIFIED IDEOGRAPH - ,0xBEBB ,0x51C0 //CJK UNIFIED IDEOGRAPH - ,0xBEBC ,0x70AF //CJK UNIFIED IDEOGRAPH - ,0xBEBD ,0x7A98 //CJK UNIFIED IDEOGRAPH - ,0xBEBE ,0x63EA //CJK UNIFIED IDEOGRAPH - ,0xBEBF ,0x7A76 //CJK UNIFIED IDEOGRAPH - ,0xBEC0 ,0x7EA0 //CJK UNIFIED IDEOGRAPH - ,0xBEC1 ,0x7396 //CJK UNIFIED IDEOGRAPH - ,0xBEC2 ,0x97ED //CJK UNIFIED IDEOGRAPH - ,0xBEC3 ,0x4E45 //CJK UNIFIED IDEOGRAPH - ,0xBEC4 ,0x7078 //CJK UNIFIED IDEOGRAPH - ,0xBEC5 ,0x4E5D //CJK UNIFIED IDEOGRAPH - ,0xBEC6 ,0x9152 //CJK UNIFIED IDEOGRAPH - ,0xBEC7 ,0x53A9 //CJK UNIFIED IDEOGRAPH - ,0xBEC8 ,0x6551 //CJK UNIFIED IDEOGRAPH - ,0xBEC9 ,0x65E7 //CJK UNIFIED IDEOGRAPH - ,0xBECA ,0x81FC //CJK UNIFIED IDEOGRAPH - ,0xBECB ,0x8205 //CJK UNIFIED IDEOGRAPH - ,0xBECC ,0x548E //CJK UNIFIED IDEOGRAPH - ,0xBECD ,0x5C31 //CJK UNIFIED IDEOGRAPH - ,0xBECE ,0x759A //CJK UNIFIED IDEOGRAPH - ,0xBECF ,0x97A0 //CJK UNIFIED IDEOGRAPH - ,0xBED0 ,0x62D8 //CJK UNIFIED IDEOGRAPH - ,0xBED1 ,0x72D9 //CJK UNIFIED IDEOGRAPH - ,0xBED2 ,0x75BD //CJK UNIFIED IDEOGRAPH - ,0xBED3 ,0x5C45 //CJK UNIFIED IDEOGRAPH - ,0xBED4 ,0x9A79 //CJK UNIFIED IDEOGRAPH - ,0xBED5 ,0x83CA //CJK UNIFIED IDEOGRAPH - ,0xBED6 ,0x5C40 //CJK UNIFIED IDEOGRAPH - ,0xBED7 ,0x5480 //CJK UNIFIED IDEOGRAPH - ,0xBED8 ,0x77E9 //CJK UNIFIED IDEOGRAPH - ,0xBED9 ,0x4E3E //CJK UNIFIED IDEOGRAPH - ,0xBEDA ,0x6CAE //CJK UNIFIED IDEOGRAPH - ,0xBEDB ,0x805A //CJK UNIFIED IDEOGRAPH - ,0xBEDC ,0x62D2 //CJK UNIFIED IDEOGRAPH - ,0xBEDD ,0x636E //CJK UNIFIED IDEOGRAPH - ,0xBEDE ,0x5DE8 //CJK UNIFIED IDEOGRAPH - ,0xBEDF ,0x5177 //CJK UNIFIED IDEOGRAPH - ,0xBEE0 ,0x8DDD //CJK UNIFIED IDEOGRAPH - ,0xBEE1 ,0x8E1E //CJK UNIFIED IDEOGRAPH - ,0xBEE2 ,0x952F //CJK UNIFIED IDEOGRAPH - ,0xBEE3 ,0x4FF1 //CJK UNIFIED IDEOGRAPH - ,0xBEE4 ,0x53E5 //CJK UNIFIED IDEOGRAPH - ,0xBEE5 ,0x60E7 //CJK UNIFIED IDEOGRAPH - ,0xBEE6 ,0x70AC //CJK UNIFIED IDEOGRAPH - ,0xBEE7 ,0x5267 //CJK UNIFIED IDEOGRAPH - ,0xBEE8 ,0x6350 //CJK UNIFIED IDEOGRAPH - ,0xBEE9 ,0x9E43 //CJK UNIFIED IDEOGRAPH - ,0xBEEA ,0x5A1F //CJK UNIFIED IDEOGRAPH - ,0xBEEB ,0x5026 //CJK UNIFIED IDEOGRAPH - ,0xBEEC ,0x7737 //CJK UNIFIED IDEOGRAPH - ,0xBEED ,0x5377 //CJK UNIFIED IDEOGRAPH - ,0xBEEE ,0x7EE2 //CJK UNIFIED IDEOGRAPH - ,0xBEEF ,0x6485 //CJK UNIFIED IDEOGRAPH - ,0xBEF0 ,0x652B //CJK UNIFIED IDEOGRAPH - ,0xBEF1 ,0x6289 //CJK UNIFIED IDEOGRAPH - ,0xBEF2 ,0x6398 //CJK UNIFIED IDEOGRAPH - ,0xBEF3 ,0x5014 //CJK UNIFIED IDEOGRAPH - ,0xBEF4 ,0x7235 //CJK UNIFIED IDEOGRAPH - ,0xBEF5 ,0x89C9 //CJK UNIFIED IDEOGRAPH - ,0xBEF6 ,0x51B3 //CJK UNIFIED IDEOGRAPH - ,0xBEF7 ,0x8BC0 //CJK UNIFIED IDEOGRAPH - ,0xBEF8 ,0x7EDD //CJK UNIFIED IDEOGRAPH - ,0xBEF9 ,0x5747 //CJK UNIFIED IDEOGRAPH - ,0xBEFA ,0x83CC //CJK UNIFIED IDEOGRAPH - ,0xBEFB ,0x94A7 //CJK UNIFIED IDEOGRAPH - ,0xBEFC ,0x519B //CJK UNIFIED IDEOGRAPH - ,0xBEFD ,0x541B //CJK UNIFIED IDEOGRAPH - ,0xBEFE ,0x5CFB //CJK UNIFIED IDEOGRAPH - ,0xBF40 ,0x7DFB //CJK UNIFIED IDEOGRAPH - ,0xBF41 ,0x7DFC //CJK UNIFIED IDEOGRAPH - ,0xBF42 ,0x7DFD //CJK UNIFIED IDEOGRAPH - ,0xBF43 ,0x7DFE //CJK UNIFIED IDEOGRAPH - ,0xBF44 ,0x7DFF //CJK UNIFIED IDEOGRAPH - ,0xBF45 ,0x7E00 //CJK UNIFIED IDEOGRAPH - ,0xBF46 ,0x7E01 //CJK UNIFIED IDEOGRAPH - ,0xBF47 ,0x7E02 //CJK UNIFIED IDEOGRAPH - ,0xBF48 ,0x7E03 //CJK UNIFIED IDEOGRAPH - ,0xBF49 ,0x7E04 //CJK UNIFIED IDEOGRAPH - ,0xBF4A ,0x7E05 //CJK UNIFIED IDEOGRAPH - ,0xBF4B ,0x7E06 //CJK UNIFIED IDEOGRAPH - ,0xBF4C ,0x7E07 //CJK UNIFIED IDEOGRAPH - ,0xBF4D ,0x7E08 //CJK UNIFIED IDEOGRAPH - ,0xBF4E ,0x7E09 //CJK UNIFIED IDEOGRAPH - ,0xBF4F ,0x7E0A //CJK UNIFIED IDEOGRAPH - ,0xBF50 ,0x7E0B //CJK UNIFIED IDEOGRAPH - ,0xBF51 ,0x7E0C //CJK UNIFIED IDEOGRAPH - ,0xBF52 ,0x7E0D //CJK UNIFIED IDEOGRAPH - ,0xBF53 ,0x7E0E //CJK UNIFIED IDEOGRAPH - ,0xBF54 ,0x7E0F //CJK UNIFIED IDEOGRAPH - ,0xBF55 ,0x7E10 //CJK UNIFIED IDEOGRAPH - ,0xBF56 ,0x7E11 //CJK UNIFIED IDEOGRAPH - ,0xBF57 ,0x7E12 //CJK UNIFIED IDEOGRAPH - ,0xBF58 ,0x7E13 //CJK UNIFIED IDEOGRAPH - ,0xBF59 ,0x7E14 //CJK UNIFIED IDEOGRAPH - ,0xBF5A ,0x7E15 //CJK UNIFIED IDEOGRAPH - ,0xBF5B ,0x7E16 //CJK UNIFIED IDEOGRAPH - ,0xBF5C ,0x7E17 //CJK UNIFIED IDEOGRAPH - ,0xBF5D ,0x7E18 //CJK UNIFIED IDEOGRAPH - ,0xBF5E ,0x7E19 //CJK UNIFIED IDEOGRAPH - ,0xBF5F ,0x7E1A //CJK UNIFIED IDEOGRAPH - ,0xBF60 ,0x7E1B //CJK UNIFIED IDEOGRAPH - ,0xBF61 ,0x7E1C //CJK UNIFIED IDEOGRAPH - ,0xBF62 ,0x7E1D //CJK UNIFIED IDEOGRAPH - ,0xBF63 ,0x7E1E //CJK UNIFIED IDEOGRAPH - ,0xBF64 ,0x7E1F //CJK UNIFIED IDEOGRAPH - ,0xBF65 ,0x7E20 //CJK UNIFIED IDEOGRAPH - ,0xBF66 ,0x7E21 //CJK UNIFIED IDEOGRAPH - ,0xBF67 ,0x7E22 //CJK UNIFIED IDEOGRAPH - ,0xBF68 ,0x7E23 //CJK UNIFIED IDEOGRAPH - ,0xBF69 ,0x7E24 //CJK UNIFIED IDEOGRAPH - ,0xBF6A ,0x7E25 //CJK UNIFIED IDEOGRAPH - ,0xBF6B ,0x7E26 //CJK UNIFIED IDEOGRAPH - ,0xBF6C ,0x7E27 //CJK UNIFIED IDEOGRAPH - ,0xBF6D ,0x7E28 //CJK UNIFIED IDEOGRAPH - ,0xBF6E ,0x7E29 //CJK UNIFIED IDEOGRAPH - ,0xBF6F ,0x7E2A //CJK UNIFIED IDEOGRAPH - ,0xBF70 ,0x7E2B //CJK UNIFIED IDEOGRAPH - ,0xBF71 ,0x7E2C //CJK UNIFIED IDEOGRAPH - ,0xBF72 ,0x7E2D //CJK UNIFIED IDEOGRAPH - ,0xBF73 ,0x7E2E //CJK UNIFIED IDEOGRAPH - ,0xBF74 ,0x7E2F //CJK UNIFIED IDEOGRAPH - ,0xBF75 ,0x7E30 //CJK UNIFIED IDEOGRAPH - ,0xBF76 ,0x7E31 //CJK UNIFIED IDEOGRAPH - ,0xBF77 ,0x7E32 //CJK UNIFIED IDEOGRAPH - ,0xBF78 ,0x7E33 //CJK UNIFIED IDEOGRAPH - ,0xBF79 ,0x7E34 //CJK UNIFIED IDEOGRAPH - ,0xBF7A ,0x7E35 //CJK UNIFIED IDEOGRAPH - ,0xBF7B ,0x7E36 //CJK UNIFIED IDEOGRAPH - ,0xBF7C ,0x7E37 //CJK UNIFIED IDEOGRAPH - ,0xBF7D ,0x7E38 //CJK UNIFIED IDEOGRAPH - ,0xBF7E ,0x7E39 //CJK UNIFIED IDEOGRAPH - ,0xBF80 ,0x7E3A //CJK UNIFIED IDEOGRAPH - ,0xBF81 ,0x7E3C //CJK UNIFIED IDEOGRAPH - ,0xBF82 ,0x7E3D //CJK UNIFIED IDEOGRAPH - ,0xBF83 ,0x7E3E //CJK UNIFIED IDEOGRAPH - ,0xBF84 ,0x7E3F //CJK UNIFIED IDEOGRAPH - ,0xBF85 ,0x7E40 //CJK UNIFIED IDEOGRAPH - ,0xBF86 ,0x7E42 //CJK UNIFIED IDEOGRAPH - ,0xBF87 ,0x7E43 //CJK UNIFIED IDEOGRAPH - ,0xBF88 ,0x7E44 //CJK UNIFIED IDEOGRAPH - ,0xBF89 ,0x7E45 //CJK UNIFIED IDEOGRAPH - ,0xBF8A ,0x7E46 //CJK UNIFIED IDEOGRAPH - ,0xBF8B ,0x7E48 //CJK UNIFIED IDEOGRAPH - ,0xBF8C ,0x7E49 //CJK UNIFIED IDEOGRAPH - ,0xBF8D ,0x7E4A //CJK UNIFIED IDEOGRAPH - ,0xBF8E ,0x7E4B //CJK UNIFIED IDEOGRAPH - ,0xBF8F ,0x7E4C //CJK UNIFIED IDEOGRAPH - ,0xBF90 ,0x7E4D //CJK UNIFIED IDEOGRAPH - ,0xBF91 ,0x7E4E //CJK UNIFIED IDEOGRAPH - ,0xBF92 ,0x7E4F //CJK UNIFIED IDEOGRAPH - ,0xBF93 ,0x7E50 //CJK UNIFIED IDEOGRAPH - ,0xBF94 ,0x7E51 //CJK UNIFIED IDEOGRAPH - ,0xBF95 ,0x7E52 //CJK UNIFIED IDEOGRAPH - ,0xBF96 ,0x7E53 //CJK UNIFIED IDEOGRAPH - ,0xBF97 ,0x7E54 //CJK UNIFIED IDEOGRAPH - ,0xBF98 ,0x7E55 //CJK UNIFIED IDEOGRAPH - ,0xBF99 ,0x7E56 //CJK UNIFIED IDEOGRAPH - ,0xBF9A ,0x7E57 //CJK UNIFIED IDEOGRAPH - ,0xBF9B ,0x7E58 //CJK UNIFIED IDEOGRAPH - ,0xBF9C ,0x7E59 //CJK UNIFIED IDEOGRAPH - ,0xBF9D ,0x7E5A //CJK UNIFIED IDEOGRAPH - ,0xBF9E ,0x7E5B //CJK UNIFIED IDEOGRAPH - ,0xBF9F ,0x7E5C //CJK UNIFIED IDEOGRAPH - ,0xBFA0 ,0x7E5D //CJK UNIFIED IDEOGRAPH - ,0xBFA1 ,0x4FCA //CJK UNIFIED IDEOGRAPH - ,0xBFA2 ,0x7AE3 //CJK UNIFIED IDEOGRAPH - ,0xBFA3 ,0x6D5A //CJK UNIFIED IDEOGRAPH - ,0xBFA4 ,0x90E1 //CJK UNIFIED IDEOGRAPH - ,0xBFA5 ,0x9A8F //CJK UNIFIED IDEOGRAPH - ,0xBFA6 ,0x5580 //CJK UNIFIED IDEOGRAPH - ,0xBFA7 ,0x5496 //CJK UNIFIED IDEOGRAPH - ,0xBFA8 ,0x5361 //CJK UNIFIED IDEOGRAPH - ,0xBFA9 ,0x54AF //CJK UNIFIED IDEOGRAPH - ,0xBFAA ,0x5F00 //CJK UNIFIED IDEOGRAPH - ,0xBFAB ,0x63E9 //CJK UNIFIED IDEOGRAPH - ,0xBFAC ,0x6977 //CJK UNIFIED IDEOGRAPH - ,0xBFAD ,0x51EF //CJK UNIFIED IDEOGRAPH - ,0xBFAE ,0x6168 //CJK UNIFIED IDEOGRAPH - ,0xBFAF ,0x520A //CJK UNIFIED IDEOGRAPH - ,0xBFB0 ,0x582A //CJK UNIFIED IDEOGRAPH - ,0xBFB1 ,0x52D8 //CJK UNIFIED IDEOGRAPH - ,0xBFB2 ,0x574E //CJK UNIFIED IDEOGRAPH - ,0xBFB3 ,0x780D //CJK UNIFIED IDEOGRAPH - ,0xBFB4 ,0x770B //CJK UNIFIED IDEOGRAPH - ,0xBFB5 ,0x5EB7 //CJK UNIFIED IDEOGRAPH - ,0xBFB6 ,0x6177 //CJK UNIFIED IDEOGRAPH - ,0xBFB7 ,0x7CE0 //CJK UNIFIED IDEOGRAPH - ,0xBFB8 ,0x625B //CJK UNIFIED IDEOGRAPH - ,0xBFB9 ,0x6297 //CJK UNIFIED IDEOGRAPH - ,0xBFBA ,0x4EA2 //CJK UNIFIED IDEOGRAPH - ,0xBFBB ,0x7095 //CJK UNIFIED IDEOGRAPH - ,0xBFBC ,0x8003 //CJK UNIFIED IDEOGRAPH - ,0xBFBD ,0x62F7 //CJK UNIFIED IDEOGRAPH - ,0xBFBE ,0x70E4 //CJK UNIFIED IDEOGRAPH - ,0xBFBF ,0x9760 //CJK UNIFIED IDEOGRAPH - ,0xBFC0 ,0x5777 //CJK UNIFIED IDEOGRAPH - ,0xBFC1 ,0x82DB //CJK UNIFIED IDEOGRAPH - ,0xBFC2 ,0x67EF //CJK UNIFIED IDEOGRAPH - ,0xBFC3 ,0x68F5 //CJK UNIFIED IDEOGRAPH - ,0xBFC4 ,0x78D5 //CJK UNIFIED IDEOGRAPH - ,0xBFC5 ,0x9897 //CJK UNIFIED IDEOGRAPH - ,0xBFC6 ,0x79D1 //CJK UNIFIED IDEOGRAPH - ,0xBFC7 ,0x58F3 //CJK UNIFIED IDEOGRAPH - ,0xBFC8 ,0x54B3 //CJK UNIFIED IDEOGRAPH - ,0xBFC9 ,0x53EF //CJK UNIFIED IDEOGRAPH - ,0xBFCA ,0x6E34 //CJK UNIFIED IDEOGRAPH - ,0xBFCB ,0x514B //CJK UNIFIED IDEOGRAPH - ,0xBFCC ,0x523B //CJK UNIFIED IDEOGRAPH - ,0xBFCD ,0x5BA2 //CJK UNIFIED IDEOGRAPH - ,0xBFCE ,0x8BFE //CJK UNIFIED IDEOGRAPH - ,0xBFCF ,0x80AF //CJK UNIFIED IDEOGRAPH - ,0xBFD0 ,0x5543 //CJK UNIFIED IDEOGRAPH - ,0xBFD1 ,0x57A6 //CJK UNIFIED IDEOGRAPH - ,0xBFD2 ,0x6073 //CJK UNIFIED IDEOGRAPH - ,0xBFD3 ,0x5751 //CJK UNIFIED IDEOGRAPH - ,0xBFD4 ,0x542D //CJK UNIFIED IDEOGRAPH - ,0xBFD5 ,0x7A7A //CJK UNIFIED IDEOGRAPH - ,0xBFD6 ,0x6050 //CJK UNIFIED IDEOGRAPH - ,0xBFD7 ,0x5B54 //CJK UNIFIED IDEOGRAPH - ,0xBFD8 ,0x63A7 //CJK UNIFIED IDEOGRAPH - ,0xBFD9 ,0x62A0 //CJK UNIFIED IDEOGRAPH - ,0xBFDA ,0x53E3 //CJK UNIFIED IDEOGRAPH - ,0xBFDB ,0x6263 //CJK UNIFIED IDEOGRAPH - ,0xBFDC ,0x5BC7 //CJK UNIFIED IDEOGRAPH - ,0xBFDD ,0x67AF //CJK UNIFIED IDEOGRAPH - ,0xBFDE ,0x54ED //CJK UNIFIED IDEOGRAPH - ,0xBFDF ,0x7A9F //CJK UNIFIED IDEOGRAPH - ,0xBFE0 ,0x82E6 //CJK UNIFIED IDEOGRAPH - ,0xBFE1 ,0x9177 //CJK UNIFIED IDEOGRAPH - ,0xBFE2 ,0x5E93 //CJK UNIFIED IDEOGRAPH - ,0xBFE3 ,0x88E4 //CJK UNIFIED IDEOGRAPH - ,0xBFE4 ,0x5938 //CJK UNIFIED IDEOGRAPH - ,0xBFE5 ,0x57AE //CJK UNIFIED IDEOGRAPH - ,0xBFE6 ,0x630E //CJK UNIFIED IDEOGRAPH - ,0xBFE7 ,0x8DE8 //CJK UNIFIED IDEOGRAPH - ,0xBFE8 ,0x80EF //CJK UNIFIED IDEOGRAPH - ,0xBFE9 ,0x5757 //CJK UNIFIED IDEOGRAPH - ,0xBFEA ,0x7B77 //CJK UNIFIED IDEOGRAPH - ,0xBFEB ,0x4FA9 //CJK UNIFIED IDEOGRAPH - ,0xBFEC ,0x5FEB //CJK UNIFIED IDEOGRAPH - ,0xBFED ,0x5BBD //CJK UNIFIED IDEOGRAPH - ,0xBFEE ,0x6B3E //CJK UNIFIED IDEOGRAPH - ,0xBFEF ,0x5321 //CJK UNIFIED IDEOGRAPH - ,0xBFF0 ,0x7B50 //CJK UNIFIED IDEOGRAPH - ,0xBFF1 ,0x72C2 //CJK UNIFIED IDEOGRAPH - ,0xBFF2 ,0x6846 //CJK UNIFIED IDEOGRAPH - ,0xBFF3 ,0x77FF //CJK UNIFIED IDEOGRAPH - ,0xBFF4 ,0x7736 //CJK UNIFIED IDEOGRAPH - ,0xBFF5 ,0x65F7 //CJK UNIFIED IDEOGRAPH - ,0xBFF6 ,0x51B5 //CJK UNIFIED IDEOGRAPH - ,0xBFF7 ,0x4E8F //CJK UNIFIED IDEOGRAPH - ,0xBFF8 ,0x76D4 //CJK UNIFIED IDEOGRAPH - ,0xBFF9 ,0x5CBF //CJK UNIFIED IDEOGRAPH - ,0xBFFA ,0x7AA5 //CJK UNIFIED IDEOGRAPH - ,0xBFFB ,0x8475 //CJK UNIFIED IDEOGRAPH - ,0xBFFC ,0x594E //CJK UNIFIED IDEOGRAPH - ,0xBFFD ,0x9B41 //CJK UNIFIED IDEOGRAPH - ,0xBFFE ,0x5080 //CJK UNIFIED IDEOGRAPH - ,0xC040 ,0x7E5E //CJK UNIFIED IDEOGRAPH - ,0xC041 ,0x7E5F //CJK UNIFIED IDEOGRAPH - ,0xC042 ,0x7E60 //CJK UNIFIED IDEOGRAPH - ,0xC043 ,0x7E61 //CJK UNIFIED IDEOGRAPH - ,0xC044 ,0x7E62 //CJK UNIFIED IDEOGRAPH - ,0xC045 ,0x7E63 //CJK UNIFIED IDEOGRAPH - ,0xC046 ,0x7E64 //CJK UNIFIED IDEOGRAPH - ,0xC047 ,0x7E65 //CJK UNIFIED IDEOGRAPH - ,0xC048 ,0x7E66 //CJK UNIFIED IDEOGRAPH - ,0xC049 ,0x7E67 //CJK UNIFIED IDEOGRAPH - ,0xC04A ,0x7E68 //CJK UNIFIED IDEOGRAPH - ,0xC04B ,0x7E69 //CJK UNIFIED IDEOGRAPH - ,0xC04C ,0x7E6A //CJK UNIFIED IDEOGRAPH - ,0xC04D ,0x7E6B //CJK UNIFIED IDEOGRAPH - ,0xC04E ,0x7E6C //CJK UNIFIED IDEOGRAPH - ,0xC04F ,0x7E6D //CJK UNIFIED IDEOGRAPH - ,0xC050 ,0x7E6E //CJK UNIFIED IDEOGRAPH - ,0xC051 ,0x7E6F //CJK UNIFIED IDEOGRAPH - ,0xC052 ,0x7E70 //CJK UNIFIED IDEOGRAPH - ,0xC053 ,0x7E71 //CJK UNIFIED IDEOGRAPH - ,0xC054 ,0x7E72 //CJK UNIFIED IDEOGRAPH - ,0xC055 ,0x7E73 //CJK UNIFIED IDEOGRAPH - ,0xC056 ,0x7E74 //CJK UNIFIED IDEOGRAPH - ,0xC057 ,0x7E75 //CJK UNIFIED IDEOGRAPH - ,0xC058 ,0x7E76 //CJK UNIFIED IDEOGRAPH - ,0xC059 ,0x7E77 //CJK UNIFIED IDEOGRAPH - ,0xC05A ,0x7E78 //CJK UNIFIED IDEOGRAPH - ,0xC05B ,0x7E79 //CJK UNIFIED IDEOGRAPH - ,0xC05C ,0x7E7A //CJK UNIFIED IDEOGRAPH - ,0xC05D ,0x7E7B //CJK UNIFIED IDEOGRAPH - ,0xC05E ,0x7E7C //CJK UNIFIED IDEOGRAPH - ,0xC05F ,0x7E7D //CJK UNIFIED IDEOGRAPH - ,0xC060 ,0x7E7E //CJK UNIFIED IDEOGRAPH - ,0xC061 ,0x7E7F //CJK UNIFIED IDEOGRAPH - ,0xC062 ,0x7E80 //CJK UNIFIED IDEOGRAPH - ,0xC063 ,0x7E81 //CJK UNIFIED IDEOGRAPH - ,0xC064 ,0x7E83 //CJK UNIFIED IDEOGRAPH - ,0xC065 ,0x7E84 //CJK UNIFIED IDEOGRAPH - ,0xC066 ,0x7E85 //CJK UNIFIED IDEOGRAPH - ,0xC067 ,0x7E86 //CJK UNIFIED IDEOGRAPH - ,0xC068 ,0x7E87 //CJK UNIFIED IDEOGRAPH - ,0xC069 ,0x7E88 //CJK UNIFIED IDEOGRAPH - ,0xC06A ,0x7E89 //CJK UNIFIED IDEOGRAPH - ,0xC06B ,0x7E8A //CJK UNIFIED IDEOGRAPH - ,0xC06C ,0x7E8B //CJK UNIFIED IDEOGRAPH - ,0xC06D ,0x7E8C //CJK UNIFIED IDEOGRAPH - ,0xC06E ,0x7E8D //CJK UNIFIED IDEOGRAPH - ,0xC06F ,0x7E8E //CJK UNIFIED IDEOGRAPH - ,0xC070 ,0x7E8F //CJK UNIFIED IDEOGRAPH - ,0xC071 ,0x7E90 //CJK UNIFIED IDEOGRAPH - ,0xC072 ,0x7E91 //CJK UNIFIED IDEOGRAPH - ,0xC073 ,0x7E92 //CJK UNIFIED IDEOGRAPH - ,0xC074 ,0x7E93 //CJK UNIFIED IDEOGRAPH - ,0xC075 ,0x7E94 //CJK UNIFIED IDEOGRAPH - ,0xC076 ,0x7E95 //CJK UNIFIED IDEOGRAPH - ,0xC077 ,0x7E96 //CJK UNIFIED IDEOGRAPH - ,0xC078 ,0x7E97 //CJK UNIFIED IDEOGRAPH - ,0xC079 ,0x7E98 //CJK UNIFIED IDEOGRAPH - ,0xC07A ,0x7E99 //CJK UNIFIED IDEOGRAPH - ,0xC07B ,0x7E9A //CJK UNIFIED IDEOGRAPH - ,0xC07C ,0x7E9C //CJK UNIFIED IDEOGRAPH - ,0xC07D ,0x7E9D //CJK UNIFIED IDEOGRAPH - ,0xC07E ,0x7E9E //CJK UNIFIED IDEOGRAPH - ,0xC080 ,0x7EAE //CJK UNIFIED IDEOGRAPH - ,0xC081 ,0x7EB4 //CJK UNIFIED IDEOGRAPH - ,0xC082 ,0x7EBB //CJK UNIFIED IDEOGRAPH - ,0xC083 ,0x7EBC //CJK UNIFIED IDEOGRAPH - ,0xC084 ,0x7ED6 //CJK UNIFIED IDEOGRAPH - ,0xC085 ,0x7EE4 //CJK UNIFIED IDEOGRAPH - ,0xC086 ,0x7EEC //CJK UNIFIED IDEOGRAPH - ,0xC087 ,0x7EF9 //CJK UNIFIED IDEOGRAPH - ,0xC088 ,0x7F0A //CJK UNIFIED IDEOGRAPH - ,0xC089 ,0x7F10 //CJK UNIFIED IDEOGRAPH - ,0xC08A ,0x7F1E //CJK UNIFIED IDEOGRAPH - ,0xC08B ,0x7F37 //CJK UNIFIED IDEOGRAPH - ,0xC08C ,0x7F39 //CJK UNIFIED IDEOGRAPH - ,0xC08D ,0x7F3B //CJK UNIFIED IDEOGRAPH - ,0xC08E ,0x7F3C //CJK UNIFIED IDEOGRAPH - ,0xC08F ,0x7F3D //CJK UNIFIED IDEOGRAPH - ,0xC090 ,0x7F3E //CJK UNIFIED IDEOGRAPH - ,0xC091 ,0x7F3F //CJK UNIFIED IDEOGRAPH - ,0xC092 ,0x7F40 //CJK UNIFIED IDEOGRAPH - ,0xC093 ,0x7F41 //CJK UNIFIED IDEOGRAPH - ,0xC094 ,0x7F43 //CJK UNIFIED IDEOGRAPH - ,0xC095 ,0x7F46 //CJK UNIFIED IDEOGRAPH - ,0xC096 ,0x7F47 //CJK UNIFIED IDEOGRAPH - ,0xC097 ,0x7F48 //CJK UNIFIED IDEOGRAPH - ,0xC098 ,0x7F49 //CJK UNIFIED IDEOGRAPH - ,0xC099 ,0x7F4A //CJK UNIFIED IDEOGRAPH - ,0xC09A ,0x7F4B //CJK UNIFIED IDEOGRAPH - ,0xC09B ,0x7F4C //CJK UNIFIED IDEOGRAPH - ,0xC09C ,0x7F4D //CJK UNIFIED IDEOGRAPH - ,0xC09D ,0x7F4E //CJK UNIFIED IDEOGRAPH - ,0xC09E ,0x7F4F //CJK UNIFIED IDEOGRAPH - ,0xC09F ,0x7F52 //CJK UNIFIED IDEOGRAPH - ,0xC0A0 ,0x7F53 //CJK UNIFIED IDEOGRAPH - ,0xC0A1 ,0x9988 //CJK UNIFIED IDEOGRAPH - ,0xC0A2 ,0x6127 //CJK UNIFIED IDEOGRAPH - ,0xC0A3 ,0x6E83 //CJK UNIFIED IDEOGRAPH - ,0xC0A4 ,0x5764 //CJK UNIFIED IDEOGRAPH - ,0xC0A5 ,0x6606 //CJK UNIFIED IDEOGRAPH - ,0xC0A6 ,0x6346 //CJK UNIFIED IDEOGRAPH - ,0xC0A7 ,0x56F0 //CJK UNIFIED IDEOGRAPH - ,0xC0A8 ,0x62EC //CJK UNIFIED IDEOGRAPH - ,0xC0A9 ,0x6269 //CJK UNIFIED IDEOGRAPH - ,0xC0AA ,0x5ED3 //CJK UNIFIED IDEOGRAPH - ,0xC0AB ,0x9614 //CJK UNIFIED IDEOGRAPH - ,0xC0AC ,0x5783 //CJK UNIFIED IDEOGRAPH - ,0xC0AD ,0x62C9 //CJK UNIFIED IDEOGRAPH - ,0xC0AE ,0x5587 //CJK UNIFIED IDEOGRAPH - ,0xC0AF ,0x8721 //CJK UNIFIED IDEOGRAPH - ,0xC0B0 ,0x814A //CJK UNIFIED IDEOGRAPH - ,0xC0B1 ,0x8FA3 //CJK UNIFIED IDEOGRAPH - ,0xC0B2 ,0x5566 //CJK UNIFIED IDEOGRAPH - ,0xC0B3 ,0x83B1 //CJK UNIFIED IDEOGRAPH - ,0xC0B4 ,0x6765 //CJK UNIFIED IDEOGRAPH - ,0xC0B5 ,0x8D56 //CJK UNIFIED IDEOGRAPH - ,0xC0B6 ,0x84DD //CJK UNIFIED IDEOGRAPH - ,0xC0B7 ,0x5A6A //CJK UNIFIED IDEOGRAPH - ,0xC0B8 ,0x680F //CJK UNIFIED IDEOGRAPH - ,0xC0B9 ,0x62E6 //CJK UNIFIED IDEOGRAPH - ,0xC0BA ,0x7BEE //CJK UNIFIED IDEOGRAPH - ,0xC0BB ,0x9611 //CJK UNIFIED IDEOGRAPH - ,0xC0BC ,0x5170 //CJK UNIFIED IDEOGRAPH - ,0xC0BD ,0x6F9C //CJK UNIFIED IDEOGRAPH - ,0xC0BE ,0x8C30 //CJK UNIFIED IDEOGRAPH - ,0xC0BF ,0x63FD //CJK UNIFIED IDEOGRAPH - ,0xC0C0 ,0x89C8 //CJK UNIFIED IDEOGRAPH - ,0xC0C1 ,0x61D2 //CJK UNIFIED IDEOGRAPH - ,0xC0C2 ,0x7F06 //CJK UNIFIED IDEOGRAPH - ,0xC0C3 ,0x70C2 //CJK UNIFIED IDEOGRAPH - ,0xC0C4 ,0x6EE5 //CJK UNIFIED IDEOGRAPH - ,0xC0C5 ,0x7405 //CJK UNIFIED IDEOGRAPH - ,0xC0C6 ,0x6994 //CJK UNIFIED IDEOGRAPH - ,0xC0C7 ,0x72FC //CJK UNIFIED IDEOGRAPH - ,0xC0C8 ,0x5ECA //CJK UNIFIED IDEOGRAPH - ,0xC0C9 ,0x90CE //CJK UNIFIED IDEOGRAPH - ,0xC0CA ,0x6717 //CJK UNIFIED IDEOGRAPH - ,0xC0CB ,0x6D6A //CJK UNIFIED IDEOGRAPH - ,0xC0CC ,0x635E //CJK UNIFIED IDEOGRAPH - ,0xC0CD ,0x52B3 //CJK UNIFIED IDEOGRAPH - ,0xC0CE ,0x7262 //CJK UNIFIED IDEOGRAPH - ,0xC0CF ,0x8001 //CJK UNIFIED IDEOGRAPH - ,0xC0D0 ,0x4F6C //CJK UNIFIED IDEOGRAPH - ,0xC0D1 ,0x59E5 //CJK UNIFIED IDEOGRAPH - ,0xC0D2 ,0x916A //CJK UNIFIED IDEOGRAPH - ,0xC0D3 ,0x70D9 //CJK UNIFIED IDEOGRAPH - ,0xC0D4 ,0x6D9D //CJK UNIFIED IDEOGRAPH - ,0xC0D5 ,0x52D2 //CJK UNIFIED IDEOGRAPH - ,0xC0D6 ,0x4E50 //CJK UNIFIED IDEOGRAPH - ,0xC0D7 ,0x96F7 //CJK UNIFIED IDEOGRAPH - ,0xC0D8 ,0x956D //CJK UNIFIED IDEOGRAPH - ,0xC0D9 ,0x857E //CJK UNIFIED IDEOGRAPH - ,0xC0DA ,0x78CA //CJK UNIFIED IDEOGRAPH - ,0xC0DB ,0x7D2F //CJK UNIFIED IDEOGRAPH - ,0xC0DC ,0x5121 //CJK UNIFIED IDEOGRAPH - ,0xC0DD ,0x5792 //CJK UNIFIED IDEOGRAPH - ,0xC0DE ,0x64C2 //CJK UNIFIED IDEOGRAPH - ,0xC0DF ,0x808B //CJK UNIFIED IDEOGRAPH - ,0xC0E0 ,0x7C7B //CJK UNIFIED IDEOGRAPH - ,0xC0E1 ,0x6CEA //CJK UNIFIED IDEOGRAPH - ,0xC0E2 ,0x68F1 //CJK UNIFIED IDEOGRAPH - ,0xC0E3 ,0x695E //CJK UNIFIED IDEOGRAPH - ,0xC0E4 ,0x51B7 //CJK UNIFIED IDEOGRAPH - ,0xC0E5 ,0x5398 //CJK UNIFIED IDEOGRAPH - ,0xC0E6 ,0x68A8 //CJK UNIFIED IDEOGRAPH - ,0xC0E7 ,0x7281 //CJK UNIFIED IDEOGRAPH - ,0xC0E8 ,0x9ECE //CJK UNIFIED IDEOGRAPH - ,0xC0E9 ,0x7BF1 //CJK UNIFIED IDEOGRAPH - ,0xC0EA ,0x72F8 //CJK UNIFIED IDEOGRAPH - ,0xC0EB ,0x79BB //CJK UNIFIED IDEOGRAPH - ,0xC0EC ,0x6F13 //CJK UNIFIED IDEOGRAPH - ,0xC0ED ,0x7406 //CJK UNIFIED IDEOGRAPH - ,0xC0EE ,0x674E //CJK UNIFIED IDEOGRAPH - ,0xC0EF ,0x91CC //CJK UNIFIED IDEOGRAPH - ,0xC0F0 ,0x9CA4 //CJK UNIFIED IDEOGRAPH - ,0xC0F1 ,0x793C //CJK UNIFIED IDEOGRAPH - ,0xC0F2 ,0x8389 //CJK UNIFIED IDEOGRAPH - ,0xC0F3 ,0x8354 //CJK UNIFIED IDEOGRAPH - ,0xC0F4 ,0x540F //CJK UNIFIED IDEOGRAPH - ,0xC0F5 ,0x6817 //CJK UNIFIED IDEOGRAPH - ,0xC0F6 ,0x4E3D //CJK UNIFIED IDEOGRAPH - ,0xC0F7 ,0x5389 //CJK UNIFIED IDEOGRAPH - ,0xC0F8 ,0x52B1 //CJK UNIFIED IDEOGRAPH - ,0xC0F9 ,0x783E //CJK UNIFIED IDEOGRAPH - ,0xC0FA ,0x5386 //CJK UNIFIED IDEOGRAPH - ,0xC0FB ,0x5229 //CJK UNIFIED IDEOGRAPH - ,0xC0FC ,0x5088 //CJK UNIFIED IDEOGRAPH - ,0xC0FD ,0x4F8B //CJK UNIFIED IDEOGRAPH - ,0xC0FE ,0x4FD0 //CJK UNIFIED IDEOGRAPH - ,0xC140 ,0x7F56 //CJK UNIFIED IDEOGRAPH - ,0xC141 ,0x7F59 //CJK UNIFIED IDEOGRAPH - ,0xC142 ,0x7F5B //CJK UNIFIED IDEOGRAPH - ,0xC143 ,0x7F5C //CJK UNIFIED IDEOGRAPH - ,0xC144 ,0x7F5D //CJK UNIFIED IDEOGRAPH - ,0xC145 ,0x7F5E //CJK UNIFIED IDEOGRAPH - ,0xC146 ,0x7F60 //CJK UNIFIED IDEOGRAPH - ,0xC147 ,0x7F63 //CJK UNIFIED IDEOGRAPH - ,0xC148 ,0x7F64 //CJK UNIFIED IDEOGRAPH - ,0xC149 ,0x7F65 //CJK UNIFIED IDEOGRAPH - ,0xC14A ,0x7F66 //CJK UNIFIED IDEOGRAPH - ,0xC14B ,0x7F67 //CJK UNIFIED IDEOGRAPH - ,0xC14C ,0x7F6B //CJK UNIFIED IDEOGRAPH - ,0xC14D ,0x7F6C //CJK UNIFIED IDEOGRAPH - ,0xC14E ,0x7F6D //CJK UNIFIED IDEOGRAPH - ,0xC14F ,0x7F6F //CJK UNIFIED IDEOGRAPH - ,0xC150 ,0x7F70 //CJK UNIFIED IDEOGRAPH - ,0xC151 ,0x7F73 //CJK UNIFIED IDEOGRAPH - ,0xC152 ,0x7F75 //CJK UNIFIED IDEOGRAPH - ,0xC153 ,0x7F76 //CJK UNIFIED IDEOGRAPH - ,0xC154 ,0x7F77 //CJK UNIFIED IDEOGRAPH - ,0xC155 ,0x7F78 //CJK UNIFIED IDEOGRAPH - ,0xC156 ,0x7F7A //CJK UNIFIED IDEOGRAPH - ,0xC157 ,0x7F7B //CJK UNIFIED IDEOGRAPH - ,0xC158 ,0x7F7C //CJK UNIFIED IDEOGRAPH - ,0xC159 ,0x7F7D //CJK UNIFIED IDEOGRAPH - ,0xC15A ,0x7F7F //CJK UNIFIED IDEOGRAPH - ,0xC15B ,0x7F80 //CJK UNIFIED IDEOGRAPH - ,0xC15C ,0x7F82 //CJK UNIFIED IDEOGRAPH - ,0xC15D ,0x7F83 //CJK UNIFIED IDEOGRAPH - ,0xC15E ,0x7F84 //CJK UNIFIED IDEOGRAPH - ,0xC15F ,0x7F85 //CJK UNIFIED IDEOGRAPH - ,0xC160 ,0x7F86 //CJK UNIFIED IDEOGRAPH - ,0xC161 ,0x7F87 //CJK UNIFIED IDEOGRAPH - ,0xC162 ,0x7F88 //CJK UNIFIED IDEOGRAPH - ,0xC163 ,0x7F89 //CJK UNIFIED IDEOGRAPH - ,0xC164 ,0x7F8B //CJK UNIFIED IDEOGRAPH - ,0xC165 ,0x7F8D //CJK UNIFIED IDEOGRAPH - ,0xC166 ,0x7F8F //CJK UNIFIED IDEOGRAPH - ,0xC167 ,0x7F90 //CJK UNIFIED IDEOGRAPH - ,0xC168 ,0x7F91 //CJK UNIFIED IDEOGRAPH - ,0xC169 ,0x7F92 //CJK UNIFIED IDEOGRAPH - ,0xC16A ,0x7F93 //CJK UNIFIED IDEOGRAPH - ,0xC16B ,0x7F95 //CJK UNIFIED IDEOGRAPH - ,0xC16C ,0x7F96 //CJK UNIFIED IDEOGRAPH - ,0xC16D ,0x7F97 //CJK UNIFIED IDEOGRAPH - ,0xC16E ,0x7F98 //CJK UNIFIED IDEOGRAPH - ,0xC16F ,0x7F99 //CJK UNIFIED IDEOGRAPH - ,0xC170 ,0x7F9B //CJK UNIFIED IDEOGRAPH - ,0xC171 ,0x7F9C //CJK UNIFIED IDEOGRAPH - ,0xC172 ,0x7FA0 //CJK UNIFIED IDEOGRAPH - ,0xC173 ,0x7FA2 //CJK UNIFIED IDEOGRAPH - ,0xC174 ,0x7FA3 //CJK UNIFIED IDEOGRAPH - ,0xC175 ,0x7FA5 //CJK UNIFIED IDEOGRAPH - ,0xC176 ,0x7FA6 //CJK UNIFIED IDEOGRAPH - ,0xC177 ,0x7FA8 //CJK UNIFIED IDEOGRAPH - ,0xC178 ,0x7FA9 //CJK UNIFIED IDEOGRAPH - ,0xC179 ,0x7FAA //CJK UNIFIED IDEOGRAPH - ,0xC17A ,0x7FAB //CJK UNIFIED IDEOGRAPH - ,0xC17B ,0x7FAC //CJK UNIFIED IDEOGRAPH - ,0xC17C ,0x7FAD //CJK UNIFIED IDEOGRAPH - ,0xC17D ,0x7FAE //CJK UNIFIED IDEOGRAPH - ,0xC17E ,0x7FB1 //CJK UNIFIED IDEOGRAPH - ,0xC180 ,0x7FB3 //CJK UNIFIED IDEOGRAPH - ,0xC181 ,0x7FB4 //CJK UNIFIED IDEOGRAPH - ,0xC182 ,0x7FB5 //CJK UNIFIED IDEOGRAPH - ,0xC183 ,0x7FB6 //CJK UNIFIED IDEOGRAPH - ,0xC184 ,0x7FB7 //CJK UNIFIED IDEOGRAPH - ,0xC185 ,0x7FBA //CJK UNIFIED IDEOGRAPH - ,0xC186 ,0x7FBB //CJK UNIFIED IDEOGRAPH - ,0xC187 ,0x7FBE //CJK UNIFIED IDEOGRAPH - ,0xC188 ,0x7FC0 //CJK UNIFIED IDEOGRAPH - ,0xC189 ,0x7FC2 //CJK UNIFIED IDEOGRAPH - ,0xC18A ,0x7FC3 //CJK UNIFIED IDEOGRAPH - ,0xC18B ,0x7FC4 //CJK UNIFIED IDEOGRAPH - ,0xC18C ,0x7FC6 //CJK UNIFIED IDEOGRAPH - ,0xC18D ,0x7FC7 //CJK UNIFIED IDEOGRAPH - ,0xC18E ,0x7FC8 //CJK UNIFIED IDEOGRAPH - ,0xC18F ,0x7FC9 //CJK UNIFIED IDEOGRAPH - ,0xC190 ,0x7FCB //CJK UNIFIED IDEOGRAPH - ,0xC191 ,0x7FCD //CJK UNIFIED IDEOGRAPH - ,0xC192 ,0x7FCF //CJK UNIFIED IDEOGRAPH - ,0xC193 ,0x7FD0 //CJK UNIFIED IDEOGRAPH - ,0xC194 ,0x7FD1 //CJK UNIFIED IDEOGRAPH - ,0xC195 ,0x7FD2 //CJK UNIFIED IDEOGRAPH - ,0xC196 ,0x7FD3 //CJK UNIFIED IDEOGRAPH - ,0xC197 ,0x7FD6 //CJK UNIFIED IDEOGRAPH - ,0xC198 ,0x7FD7 //CJK UNIFIED IDEOGRAPH - ,0xC199 ,0x7FD9 //CJK UNIFIED IDEOGRAPH - ,0xC19A ,0x7FDA //CJK UNIFIED IDEOGRAPH - ,0xC19B ,0x7FDB //CJK UNIFIED IDEOGRAPH - ,0xC19C ,0x7FDC //CJK UNIFIED IDEOGRAPH - ,0xC19D ,0x7FDD //CJK UNIFIED IDEOGRAPH - ,0xC19E ,0x7FDE //CJK UNIFIED IDEOGRAPH - ,0xC19F ,0x7FE2 //CJK UNIFIED IDEOGRAPH - ,0xC1A0 ,0x7FE3 //CJK UNIFIED IDEOGRAPH - ,0xC1A1 ,0x75E2 //CJK UNIFIED IDEOGRAPH - ,0xC1A2 ,0x7ACB //CJK UNIFIED IDEOGRAPH - ,0xC1A3 ,0x7C92 //CJK UNIFIED IDEOGRAPH - ,0xC1A4 ,0x6CA5 //CJK UNIFIED IDEOGRAPH - ,0xC1A5 ,0x96B6 //CJK UNIFIED IDEOGRAPH - ,0xC1A6 ,0x529B //CJK UNIFIED IDEOGRAPH - ,0xC1A7 ,0x7483 //CJK UNIFIED IDEOGRAPH - ,0xC1A8 ,0x54E9 //CJK UNIFIED IDEOGRAPH - ,0xC1A9 ,0x4FE9 //CJK UNIFIED IDEOGRAPH - ,0xC1AA ,0x8054 //CJK UNIFIED IDEOGRAPH - ,0xC1AB ,0x83B2 //CJK UNIFIED IDEOGRAPH - ,0xC1AC ,0x8FDE //CJK UNIFIED IDEOGRAPH - ,0xC1AD ,0x9570 //CJK UNIFIED IDEOGRAPH - ,0xC1AE ,0x5EC9 //CJK UNIFIED IDEOGRAPH - ,0xC1AF ,0x601C //CJK UNIFIED IDEOGRAPH - ,0xC1B0 ,0x6D9F //CJK UNIFIED IDEOGRAPH - ,0xC1B1 ,0x5E18 //CJK UNIFIED IDEOGRAPH - ,0xC1B2 ,0x655B //CJK UNIFIED IDEOGRAPH - ,0xC1B3 ,0x8138 //CJK UNIFIED IDEOGRAPH - ,0xC1B4 ,0x94FE //CJK UNIFIED IDEOGRAPH - ,0xC1B5 ,0x604B //CJK UNIFIED IDEOGRAPH - ,0xC1B6 ,0x70BC //CJK UNIFIED IDEOGRAPH - ,0xC1B7 ,0x7EC3 //CJK UNIFIED IDEOGRAPH - ,0xC1B8 ,0x7CAE //CJK UNIFIED IDEOGRAPH - ,0xC1B9 ,0x51C9 //CJK UNIFIED IDEOGRAPH - ,0xC1BA ,0x6881 //CJK UNIFIED IDEOGRAPH - ,0xC1BB ,0x7CB1 //CJK UNIFIED IDEOGRAPH - ,0xC1BC ,0x826F //CJK UNIFIED IDEOGRAPH - ,0xC1BD ,0x4E24 //CJK UNIFIED IDEOGRAPH - ,0xC1BE ,0x8F86 //CJK UNIFIED IDEOGRAPH - ,0xC1BF ,0x91CF //CJK UNIFIED IDEOGRAPH - ,0xC1C0 ,0x667E //CJK UNIFIED IDEOGRAPH - ,0xC1C1 ,0x4EAE //CJK UNIFIED IDEOGRAPH - ,0xC1C2 ,0x8C05 //CJK UNIFIED IDEOGRAPH - ,0xC1C3 ,0x64A9 //CJK UNIFIED IDEOGRAPH - ,0xC1C4 ,0x804A //CJK UNIFIED IDEOGRAPH - ,0xC1C5 ,0x50DA //CJK UNIFIED IDEOGRAPH - ,0xC1C6 ,0x7597 //CJK UNIFIED IDEOGRAPH - ,0xC1C7 ,0x71CE //CJK UNIFIED IDEOGRAPH - ,0xC1C8 ,0x5BE5 //CJK UNIFIED IDEOGRAPH - ,0xC1C9 ,0x8FBD //CJK UNIFIED IDEOGRAPH - ,0xC1CA ,0x6F66 //CJK UNIFIED IDEOGRAPH - ,0xC1CB ,0x4E86 //CJK UNIFIED IDEOGRAPH - ,0xC1CC ,0x6482 //CJK UNIFIED IDEOGRAPH - ,0xC1CD ,0x9563 //CJK UNIFIED IDEOGRAPH - ,0xC1CE ,0x5ED6 //CJK UNIFIED IDEOGRAPH - ,0xC1CF ,0x6599 //CJK UNIFIED IDEOGRAPH - ,0xC1D0 ,0x5217 //CJK UNIFIED IDEOGRAPH - ,0xC1D1 ,0x88C2 //CJK UNIFIED IDEOGRAPH - ,0xC1D2 ,0x70C8 //CJK UNIFIED IDEOGRAPH - ,0xC1D3 ,0x52A3 //CJK UNIFIED IDEOGRAPH - ,0xC1D4 ,0x730E //CJK UNIFIED IDEOGRAPH - ,0xC1D5 ,0x7433 //CJK UNIFIED IDEOGRAPH - ,0xC1D6 ,0x6797 //CJK UNIFIED IDEOGRAPH - ,0xC1D7 ,0x78F7 //CJK UNIFIED IDEOGRAPH - ,0xC1D8 ,0x9716 //CJK UNIFIED IDEOGRAPH - ,0xC1D9 ,0x4E34 //CJK UNIFIED IDEOGRAPH - ,0xC1DA ,0x90BB //CJK UNIFIED IDEOGRAPH - ,0xC1DB ,0x9CDE //CJK UNIFIED IDEOGRAPH - ,0xC1DC ,0x6DCB //CJK UNIFIED IDEOGRAPH - ,0xC1DD ,0x51DB //CJK UNIFIED IDEOGRAPH - ,0xC1DE ,0x8D41 //CJK UNIFIED IDEOGRAPH - ,0xC1DF ,0x541D //CJK UNIFIED IDEOGRAPH - ,0xC1E0 ,0x62CE //CJK UNIFIED IDEOGRAPH - ,0xC1E1 ,0x73B2 //CJK UNIFIED IDEOGRAPH - ,0xC1E2 ,0x83F1 //CJK UNIFIED IDEOGRAPH - ,0xC1E3 ,0x96F6 //CJK UNIFIED IDEOGRAPH - ,0xC1E4 ,0x9F84 //CJK UNIFIED IDEOGRAPH - ,0xC1E5 ,0x94C3 //CJK UNIFIED IDEOGRAPH - ,0xC1E6 ,0x4F36 //CJK UNIFIED IDEOGRAPH - ,0xC1E7 ,0x7F9A //CJK UNIFIED IDEOGRAPH - ,0xC1E8 ,0x51CC //CJK UNIFIED IDEOGRAPH - ,0xC1E9 ,0x7075 //CJK UNIFIED IDEOGRAPH - ,0xC1EA ,0x9675 //CJK UNIFIED IDEOGRAPH - ,0xC1EB ,0x5CAD //CJK UNIFIED IDEOGRAPH - ,0xC1EC ,0x9886 //CJK UNIFIED IDEOGRAPH - ,0xC1ED ,0x53E6 //CJK UNIFIED IDEOGRAPH - ,0xC1EE ,0x4EE4 //CJK UNIFIED IDEOGRAPH - ,0xC1EF ,0x6E9C //CJK UNIFIED IDEOGRAPH - ,0xC1F0 ,0x7409 //CJK UNIFIED IDEOGRAPH - ,0xC1F1 ,0x69B4 //CJK UNIFIED IDEOGRAPH - ,0xC1F2 ,0x786B //CJK UNIFIED IDEOGRAPH - ,0xC1F3 ,0x998F //CJK UNIFIED IDEOGRAPH - ,0xC1F4 ,0x7559 //CJK UNIFIED IDEOGRAPH - ,0xC1F5 ,0x5218 //CJK UNIFIED IDEOGRAPH - ,0xC1F6 ,0x7624 //CJK UNIFIED IDEOGRAPH - ,0xC1F7 ,0x6D41 //CJK UNIFIED IDEOGRAPH - ,0xC1F8 ,0x67F3 //CJK UNIFIED IDEOGRAPH - ,0xC1F9 ,0x516D //CJK UNIFIED IDEOGRAPH - ,0xC1FA ,0x9F99 //CJK UNIFIED IDEOGRAPH - ,0xC1FB ,0x804B //CJK UNIFIED IDEOGRAPH - ,0xC1FC ,0x5499 //CJK UNIFIED IDEOGRAPH - ,0xC1FD ,0x7B3C //CJK UNIFIED IDEOGRAPH - ,0xC1FE ,0x7ABF //CJK UNIFIED IDEOGRAPH - ,0xC240 ,0x7FE4 //CJK UNIFIED IDEOGRAPH - ,0xC241 ,0x7FE7 //CJK UNIFIED IDEOGRAPH - ,0xC242 ,0x7FE8 //CJK UNIFIED IDEOGRAPH - ,0xC243 ,0x7FEA //CJK UNIFIED IDEOGRAPH - ,0xC244 ,0x7FEB //CJK UNIFIED IDEOGRAPH - ,0xC245 ,0x7FEC //CJK UNIFIED IDEOGRAPH - ,0xC246 ,0x7FED //CJK UNIFIED IDEOGRAPH - ,0xC247 ,0x7FEF //CJK UNIFIED IDEOGRAPH - ,0xC248 ,0x7FF2 //CJK UNIFIED IDEOGRAPH - ,0xC249 ,0x7FF4 //CJK UNIFIED IDEOGRAPH - ,0xC24A ,0x7FF5 //CJK UNIFIED IDEOGRAPH - ,0xC24B ,0x7FF6 //CJK UNIFIED IDEOGRAPH - ,0xC24C ,0x7FF7 //CJK UNIFIED IDEOGRAPH - ,0xC24D ,0x7FF8 //CJK UNIFIED IDEOGRAPH - ,0xC24E ,0x7FF9 //CJK UNIFIED IDEOGRAPH - ,0xC24F ,0x7FFA //CJK UNIFIED IDEOGRAPH - ,0xC250 ,0x7FFD //CJK UNIFIED IDEOGRAPH - ,0xC251 ,0x7FFE //CJK UNIFIED IDEOGRAPH - ,0xC252 ,0x7FFF //CJK UNIFIED IDEOGRAPH - ,0xC253 ,0x8002 //CJK UNIFIED IDEOGRAPH - ,0xC254 ,0x8007 //CJK UNIFIED IDEOGRAPH - ,0xC255 ,0x8008 //CJK UNIFIED IDEOGRAPH - ,0xC256 ,0x8009 //CJK UNIFIED IDEOGRAPH - ,0xC257 ,0x800A //CJK UNIFIED IDEOGRAPH - ,0xC258 ,0x800E //CJK UNIFIED IDEOGRAPH - ,0xC259 ,0x800F //CJK UNIFIED IDEOGRAPH - ,0xC25A ,0x8011 //CJK UNIFIED IDEOGRAPH - ,0xC25B ,0x8013 //CJK UNIFIED IDEOGRAPH - ,0xC25C ,0x801A //CJK UNIFIED IDEOGRAPH - ,0xC25D ,0x801B //CJK UNIFIED IDEOGRAPH - ,0xC25E ,0x801D //CJK UNIFIED IDEOGRAPH - ,0xC25F ,0x801E //CJK UNIFIED IDEOGRAPH - ,0xC260 ,0x801F //CJK UNIFIED IDEOGRAPH - ,0xC261 ,0x8021 //CJK UNIFIED IDEOGRAPH - ,0xC262 ,0x8023 //CJK UNIFIED IDEOGRAPH - ,0xC263 ,0x8024 //CJK UNIFIED IDEOGRAPH - ,0xC264 ,0x802B //CJK UNIFIED IDEOGRAPH - ,0xC265 ,0x802C //CJK UNIFIED IDEOGRAPH - ,0xC266 ,0x802D //CJK UNIFIED IDEOGRAPH - ,0xC267 ,0x802E //CJK UNIFIED IDEOGRAPH - ,0xC268 ,0x802F //CJK UNIFIED IDEOGRAPH - ,0xC269 ,0x8030 //CJK UNIFIED IDEOGRAPH - ,0xC26A ,0x8032 //CJK UNIFIED IDEOGRAPH - ,0xC26B ,0x8034 //CJK UNIFIED IDEOGRAPH - ,0xC26C ,0x8039 //CJK UNIFIED IDEOGRAPH - ,0xC26D ,0x803A //CJK UNIFIED IDEOGRAPH - ,0xC26E ,0x803C //CJK UNIFIED IDEOGRAPH - ,0xC26F ,0x803E //CJK UNIFIED IDEOGRAPH - ,0xC270 ,0x8040 //CJK UNIFIED IDEOGRAPH - ,0xC271 ,0x8041 //CJK UNIFIED IDEOGRAPH - ,0xC272 ,0x8044 //CJK UNIFIED IDEOGRAPH - ,0xC273 ,0x8045 //CJK UNIFIED IDEOGRAPH - ,0xC274 ,0x8047 //CJK UNIFIED IDEOGRAPH - ,0xC275 ,0x8048 //CJK UNIFIED IDEOGRAPH - ,0xC276 ,0x8049 //CJK UNIFIED IDEOGRAPH - ,0xC277 ,0x804E //CJK UNIFIED IDEOGRAPH - ,0xC278 ,0x804F //CJK UNIFIED IDEOGRAPH - ,0xC279 ,0x8050 //CJK UNIFIED IDEOGRAPH - ,0xC27A ,0x8051 //CJK UNIFIED IDEOGRAPH - ,0xC27B ,0x8053 //CJK UNIFIED IDEOGRAPH - ,0xC27C ,0x8055 //CJK UNIFIED IDEOGRAPH - ,0xC27D ,0x8056 //CJK UNIFIED IDEOGRAPH - ,0xC27E ,0x8057 //CJK UNIFIED IDEOGRAPH - ,0xC280 ,0x8059 //CJK UNIFIED IDEOGRAPH - ,0xC281 ,0x805B //CJK UNIFIED IDEOGRAPH - ,0xC282 ,0x805C //CJK UNIFIED IDEOGRAPH - ,0xC283 ,0x805D //CJK UNIFIED IDEOGRAPH - ,0xC284 ,0x805E //CJK UNIFIED IDEOGRAPH - ,0xC285 ,0x805F //CJK UNIFIED IDEOGRAPH - ,0xC286 ,0x8060 //CJK UNIFIED IDEOGRAPH - ,0xC287 ,0x8061 //CJK UNIFIED IDEOGRAPH - ,0xC288 ,0x8062 //CJK UNIFIED IDEOGRAPH - ,0xC289 ,0x8063 //CJK UNIFIED IDEOGRAPH - ,0xC28A ,0x8064 //CJK UNIFIED IDEOGRAPH - ,0xC28B ,0x8065 //CJK UNIFIED IDEOGRAPH - ,0xC28C ,0x8066 //CJK UNIFIED IDEOGRAPH - ,0xC28D ,0x8067 //CJK UNIFIED IDEOGRAPH - ,0xC28E ,0x8068 //CJK UNIFIED IDEOGRAPH - ,0xC28F ,0x806B //CJK UNIFIED IDEOGRAPH - ,0xC290 ,0x806C //CJK UNIFIED IDEOGRAPH - ,0xC291 ,0x806D //CJK UNIFIED IDEOGRAPH - ,0xC292 ,0x806E //CJK UNIFIED IDEOGRAPH - ,0xC293 ,0x806F //CJK UNIFIED IDEOGRAPH - ,0xC294 ,0x8070 //CJK UNIFIED IDEOGRAPH - ,0xC295 ,0x8072 //CJK UNIFIED IDEOGRAPH - ,0xC296 ,0x8073 //CJK UNIFIED IDEOGRAPH - ,0xC297 ,0x8074 //CJK UNIFIED IDEOGRAPH - ,0xC298 ,0x8075 //CJK UNIFIED IDEOGRAPH - ,0xC299 ,0x8076 //CJK UNIFIED IDEOGRAPH - ,0xC29A ,0x8077 //CJK UNIFIED IDEOGRAPH - ,0xC29B ,0x8078 //CJK UNIFIED IDEOGRAPH - ,0xC29C ,0x8079 //CJK UNIFIED IDEOGRAPH - ,0xC29D ,0x807A //CJK UNIFIED IDEOGRAPH - ,0xC29E ,0x807B //CJK UNIFIED IDEOGRAPH - ,0xC29F ,0x807C //CJK UNIFIED IDEOGRAPH - ,0xC2A0 ,0x807D //CJK UNIFIED IDEOGRAPH - ,0xC2A1 ,0x9686 //CJK UNIFIED IDEOGRAPH - ,0xC2A2 ,0x5784 //CJK UNIFIED IDEOGRAPH - ,0xC2A3 ,0x62E2 //CJK UNIFIED IDEOGRAPH - ,0xC2A4 ,0x9647 //CJK UNIFIED IDEOGRAPH - ,0xC2A5 ,0x697C //CJK UNIFIED IDEOGRAPH - ,0xC2A6 ,0x5A04 //CJK UNIFIED IDEOGRAPH - ,0xC2A7 ,0x6402 //CJK UNIFIED IDEOGRAPH - ,0xC2A8 ,0x7BD3 //CJK UNIFIED IDEOGRAPH - ,0xC2A9 ,0x6F0F //CJK UNIFIED IDEOGRAPH - ,0xC2AA ,0x964B //CJK UNIFIED IDEOGRAPH - ,0xC2AB ,0x82A6 //CJK UNIFIED IDEOGRAPH - ,0xC2AC ,0x5362 //CJK UNIFIED IDEOGRAPH - ,0xC2AD ,0x9885 //CJK UNIFIED IDEOGRAPH - ,0xC2AE ,0x5E90 //CJK UNIFIED IDEOGRAPH - ,0xC2AF ,0x7089 //CJK UNIFIED IDEOGRAPH - ,0xC2B0 ,0x63B3 //CJK UNIFIED IDEOGRAPH - ,0xC2B1 ,0x5364 //CJK UNIFIED IDEOGRAPH - ,0xC2B2 ,0x864F //CJK UNIFIED IDEOGRAPH - ,0xC2B3 ,0x9C81 //CJK UNIFIED IDEOGRAPH - ,0xC2B4 ,0x9E93 //CJK UNIFIED IDEOGRAPH - ,0xC2B5 ,0x788C //CJK UNIFIED IDEOGRAPH - ,0xC2B6 ,0x9732 //CJK UNIFIED IDEOGRAPH - ,0xC2B7 ,0x8DEF //CJK UNIFIED IDEOGRAPH - ,0xC2B8 ,0x8D42 //CJK UNIFIED IDEOGRAPH - ,0xC2B9 ,0x9E7F //CJK UNIFIED IDEOGRAPH - ,0xC2BA ,0x6F5E //CJK UNIFIED IDEOGRAPH - ,0xC2BB ,0x7984 //CJK UNIFIED IDEOGRAPH - ,0xC2BC ,0x5F55 //CJK UNIFIED IDEOGRAPH - ,0xC2BD ,0x9646 //CJK UNIFIED IDEOGRAPH - ,0xC2BE ,0x622E //CJK UNIFIED IDEOGRAPH - ,0xC2BF ,0x9A74 //CJK UNIFIED IDEOGRAPH - ,0xC2C0 ,0x5415 //CJK UNIFIED IDEOGRAPH - ,0xC2C1 ,0x94DD //CJK UNIFIED IDEOGRAPH - ,0xC2C2 ,0x4FA3 //CJK UNIFIED IDEOGRAPH - ,0xC2C3 ,0x65C5 //CJK UNIFIED IDEOGRAPH - ,0xC2C4 ,0x5C65 //CJK UNIFIED IDEOGRAPH - ,0xC2C5 ,0x5C61 //CJK UNIFIED IDEOGRAPH - ,0xC2C6 ,0x7F15 //CJK UNIFIED IDEOGRAPH - ,0xC2C7 ,0x8651 //CJK UNIFIED IDEOGRAPH - ,0xC2C8 ,0x6C2F //CJK UNIFIED IDEOGRAPH - ,0xC2C9 ,0x5F8B //CJK UNIFIED IDEOGRAPH - ,0xC2CA ,0x7387 //CJK UNIFIED IDEOGRAPH - ,0xC2CB ,0x6EE4 //CJK UNIFIED IDEOGRAPH - ,0xC2CC ,0x7EFF //CJK UNIFIED IDEOGRAPH - ,0xC2CD ,0x5CE6 //CJK UNIFIED IDEOGRAPH - ,0xC2CE ,0x631B //CJK UNIFIED IDEOGRAPH - ,0xC2CF ,0x5B6A //CJK UNIFIED IDEOGRAPH - ,0xC2D0 ,0x6EE6 //CJK UNIFIED IDEOGRAPH - ,0xC2D1 ,0x5375 //CJK UNIFIED IDEOGRAPH - ,0xC2D2 ,0x4E71 //CJK UNIFIED IDEOGRAPH - ,0xC2D3 ,0x63A0 //CJK UNIFIED IDEOGRAPH - ,0xC2D4 ,0x7565 //CJK UNIFIED IDEOGRAPH - ,0xC2D5 ,0x62A1 //CJK UNIFIED IDEOGRAPH - ,0xC2D6 ,0x8F6E //CJK UNIFIED IDEOGRAPH - ,0xC2D7 ,0x4F26 //CJK UNIFIED IDEOGRAPH - ,0xC2D8 ,0x4ED1 //CJK UNIFIED IDEOGRAPH - ,0xC2D9 ,0x6CA6 //CJK UNIFIED IDEOGRAPH - ,0xC2DA ,0x7EB6 //CJK UNIFIED IDEOGRAPH - ,0xC2DB ,0x8BBA //CJK UNIFIED IDEOGRAPH - ,0xC2DC ,0x841D //CJK UNIFIED IDEOGRAPH - ,0xC2DD ,0x87BA //CJK UNIFIED IDEOGRAPH - ,0xC2DE ,0x7F57 //CJK UNIFIED IDEOGRAPH - ,0xC2DF ,0x903B //CJK UNIFIED IDEOGRAPH - ,0xC2E0 ,0x9523 //CJK UNIFIED IDEOGRAPH - ,0xC2E1 ,0x7BA9 //CJK UNIFIED IDEOGRAPH - ,0xC2E2 ,0x9AA1 //CJK UNIFIED IDEOGRAPH - ,0xC2E3 ,0x88F8 //CJK UNIFIED IDEOGRAPH - ,0xC2E4 ,0x843D //CJK UNIFIED IDEOGRAPH - ,0xC2E5 ,0x6D1B //CJK UNIFIED IDEOGRAPH - ,0xC2E6 ,0x9A86 //CJK UNIFIED IDEOGRAPH - ,0xC2E7 ,0x7EDC //CJK UNIFIED IDEOGRAPH - ,0xC2E8 ,0x5988 //CJK UNIFIED IDEOGRAPH - ,0xC2E9 ,0x9EBB //CJK UNIFIED IDEOGRAPH - ,0xC2EA ,0x739B //CJK UNIFIED IDEOGRAPH - ,0xC2EB ,0x7801 //CJK UNIFIED IDEOGRAPH - ,0xC2EC ,0x8682 //CJK UNIFIED IDEOGRAPH - ,0xC2ED ,0x9A6C //CJK UNIFIED IDEOGRAPH - ,0xC2EE ,0x9A82 //CJK UNIFIED IDEOGRAPH - ,0xC2EF ,0x561B //CJK UNIFIED IDEOGRAPH - ,0xC2F0 ,0x5417 //CJK UNIFIED IDEOGRAPH - ,0xC2F1 ,0x57CB //CJK UNIFIED IDEOGRAPH - ,0xC2F2 ,0x4E70 //CJK UNIFIED IDEOGRAPH - ,0xC2F3 ,0x9EA6 //CJK UNIFIED IDEOGRAPH - ,0xC2F4 ,0x5356 //CJK UNIFIED IDEOGRAPH - ,0xC2F5 ,0x8FC8 //CJK UNIFIED IDEOGRAPH - ,0xC2F6 ,0x8109 //CJK UNIFIED IDEOGRAPH - ,0xC2F7 ,0x7792 //CJK UNIFIED IDEOGRAPH - ,0xC2F8 ,0x9992 //CJK UNIFIED IDEOGRAPH - ,0xC2F9 ,0x86EE //CJK UNIFIED IDEOGRAPH - ,0xC2FA ,0x6EE1 //CJK UNIFIED IDEOGRAPH - ,0xC2FB ,0x8513 //CJK UNIFIED IDEOGRAPH - ,0xC2FC ,0x66FC //CJK UNIFIED IDEOGRAPH - ,0xC2FD ,0x6162 //CJK UNIFIED IDEOGRAPH - ,0xC2FE ,0x6F2B //CJK UNIFIED IDEOGRAPH - ,0xC340 ,0x807E //CJK UNIFIED IDEOGRAPH - ,0xC341 ,0x8081 //CJK UNIFIED IDEOGRAPH - ,0xC342 ,0x8082 //CJK UNIFIED IDEOGRAPH - ,0xC343 ,0x8085 //CJK UNIFIED IDEOGRAPH - ,0xC344 ,0x8088 //CJK UNIFIED IDEOGRAPH - ,0xC345 ,0x808A //CJK UNIFIED IDEOGRAPH - ,0xC346 ,0x808D //CJK UNIFIED IDEOGRAPH - ,0xC347 ,0x808E //CJK UNIFIED IDEOGRAPH - ,0xC348 ,0x808F //CJK UNIFIED IDEOGRAPH - ,0xC349 ,0x8090 //CJK UNIFIED IDEOGRAPH - ,0xC34A ,0x8091 //CJK UNIFIED IDEOGRAPH - ,0xC34B ,0x8092 //CJK UNIFIED IDEOGRAPH - ,0xC34C ,0x8094 //CJK UNIFIED IDEOGRAPH - ,0xC34D ,0x8095 //CJK UNIFIED IDEOGRAPH - ,0xC34E ,0x8097 //CJK UNIFIED IDEOGRAPH - ,0xC34F ,0x8099 //CJK UNIFIED IDEOGRAPH - ,0xC350 ,0x809E //CJK UNIFIED IDEOGRAPH - ,0xC351 ,0x80A3 //CJK UNIFIED IDEOGRAPH - ,0xC352 ,0x80A6 //CJK UNIFIED IDEOGRAPH - ,0xC353 ,0x80A7 //CJK UNIFIED IDEOGRAPH - ,0xC354 ,0x80A8 //CJK UNIFIED IDEOGRAPH - ,0xC355 ,0x80AC //CJK UNIFIED IDEOGRAPH - ,0xC356 ,0x80B0 //CJK UNIFIED IDEOGRAPH - ,0xC357 ,0x80B3 //CJK UNIFIED IDEOGRAPH - ,0xC358 ,0x80B5 //CJK UNIFIED IDEOGRAPH - ,0xC359 ,0x80B6 //CJK UNIFIED IDEOGRAPH - ,0xC35A ,0x80B8 //CJK UNIFIED IDEOGRAPH - ,0xC35B ,0x80B9 //CJK UNIFIED IDEOGRAPH - ,0xC35C ,0x80BB //CJK UNIFIED IDEOGRAPH - ,0xC35D ,0x80C5 //CJK UNIFIED IDEOGRAPH - ,0xC35E ,0x80C7 //CJK UNIFIED IDEOGRAPH - ,0xC35F ,0x80C8 //CJK UNIFIED IDEOGRAPH - ,0xC360 ,0x80C9 //CJK UNIFIED IDEOGRAPH - ,0xC361 ,0x80CA //CJK UNIFIED IDEOGRAPH - ,0xC362 ,0x80CB //CJK UNIFIED IDEOGRAPH - ,0xC363 ,0x80CF //CJK UNIFIED IDEOGRAPH - ,0xC364 ,0x80D0 //CJK UNIFIED IDEOGRAPH - ,0xC365 ,0x80D1 //CJK UNIFIED IDEOGRAPH - ,0xC366 ,0x80D2 //CJK UNIFIED IDEOGRAPH - ,0xC367 ,0x80D3 //CJK UNIFIED IDEOGRAPH - ,0xC368 ,0x80D4 //CJK UNIFIED IDEOGRAPH - ,0xC369 ,0x80D5 //CJK UNIFIED IDEOGRAPH - ,0xC36A ,0x80D8 //CJK UNIFIED IDEOGRAPH - ,0xC36B ,0x80DF //CJK UNIFIED IDEOGRAPH - ,0xC36C ,0x80E0 //CJK UNIFIED IDEOGRAPH - ,0xC36D ,0x80E2 //CJK UNIFIED IDEOGRAPH - ,0xC36E ,0x80E3 //CJK UNIFIED IDEOGRAPH - ,0xC36F ,0x80E6 //CJK UNIFIED IDEOGRAPH - ,0xC370 ,0x80EE //CJK UNIFIED IDEOGRAPH - ,0xC371 ,0x80F5 //CJK UNIFIED IDEOGRAPH - ,0xC372 ,0x80F7 //CJK UNIFIED IDEOGRAPH - ,0xC373 ,0x80F9 //CJK UNIFIED IDEOGRAPH - ,0xC374 ,0x80FB //CJK UNIFIED IDEOGRAPH - ,0xC375 ,0x80FE //CJK UNIFIED IDEOGRAPH - ,0xC376 ,0x80FF //CJK UNIFIED IDEOGRAPH - ,0xC377 ,0x8100 //CJK UNIFIED IDEOGRAPH - ,0xC378 ,0x8101 //CJK UNIFIED IDEOGRAPH - ,0xC379 ,0x8103 //CJK UNIFIED IDEOGRAPH - ,0xC37A ,0x8104 //CJK UNIFIED IDEOGRAPH - ,0xC37B ,0x8105 //CJK UNIFIED IDEOGRAPH - ,0xC37C ,0x8107 //CJK UNIFIED IDEOGRAPH - ,0xC37D ,0x8108 //CJK UNIFIED IDEOGRAPH - ,0xC37E ,0x810B //CJK UNIFIED IDEOGRAPH - ,0xC380 ,0x810C //CJK UNIFIED IDEOGRAPH - ,0xC381 ,0x8115 //CJK UNIFIED IDEOGRAPH - ,0xC382 ,0x8117 //CJK UNIFIED IDEOGRAPH - ,0xC383 ,0x8119 //CJK UNIFIED IDEOGRAPH - ,0xC384 ,0x811B //CJK UNIFIED IDEOGRAPH - ,0xC385 ,0x811C //CJK UNIFIED IDEOGRAPH - ,0xC386 ,0x811D //CJK UNIFIED IDEOGRAPH - ,0xC387 ,0x811F //CJK UNIFIED IDEOGRAPH - ,0xC388 ,0x8120 //CJK UNIFIED IDEOGRAPH - ,0xC389 ,0x8121 //CJK UNIFIED IDEOGRAPH - ,0xC38A ,0x8122 //CJK UNIFIED IDEOGRAPH - ,0xC38B ,0x8123 //CJK UNIFIED IDEOGRAPH - ,0xC38C ,0x8124 //CJK UNIFIED IDEOGRAPH - ,0xC38D ,0x8125 //CJK UNIFIED IDEOGRAPH - ,0xC38E ,0x8126 //CJK UNIFIED IDEOGRAPH - ,0xC38F ,0x8127 //CJK UNIFIED IDEOGRAPH - ,0xC390 ,0x8128 //CJK UNIFIED IDEOGRAPH - ,0xC391 ,0x8129 //CJK UNIFIED IDEOGRAPH - ,0xC392 ,0x812A //CJK UNIFIED IDEOGRAPH - ,0xC393 ,0x812B //CJK UNIFIED IDEOGRAPH - ,0xC394 ,0x812D //CJK UNIFIED IDEOGRAPH - ,0xC395 ,0x812E //CJK UNIFIED IDEOGRAPH - ,0xC396 ,0x8130 //CJK UNIFIED IDEOGRAPH - ,0xC397 ,0x8133 //CJK UNIFIED IDEOGRAPH - ,0xC398 ,0x8134 //CJK UNIFIED IDEOGRAPH - ,0xC399 ,0x8135 //CJK UNIFIED IDEOGRAPH - ,0xC39A ,0x8137 //CJK UNIFIED IDEOGRAPH - ,0xC39B ,0x8139 //CJK UNIFIED IDEOGRAPH - ,0xC39C ,0x813A //CJK UNIFIED IDEOGRAPH - ,0xC39D ,0x813B //CJK UNIFIED IDEOGRAPH - ,0xC39E ,0x813C //CJK UNIFIED IDEOGRAPH - ,0xC39F ,0x813D //CJK UNIFIED IDEOGRAPH - ,0xC3A0 ,0x813F //CJK UNIFIED IDEOGRAPH - ,0xC3A1 ,0x8C29 //CJK UNIFIED IDEOGRAPH - ,0xC3A2 ,0x8292 //CJK UNIFIED IDEOGRAPH - ,0xC3A3 ,0x832B //CJK UNIFIED IDEOGRAPH - ,0xC3A4 ,0x76F2 //CJK UNIFIED IDEOGRAPH - ,0xC3A5 ,0x6C13 //CJK UNIFIED IDEOGRAPH - ,0xC3A6 ,0x5FD9 //CJK UNIFIED IDEOGRAPH - ,0xC3A7 ,0x83BD //CJK UNIFIED IDEOGRAPH - ,0xC3A8 ,0x732B //CJK UNIFIED IDEOGRAPH - ,0xC3A9 ,0x8305 //CJK UNIFIED IDEOGRAPH - ,0xC3AA ,0x951A //CJK UNIFIED IDEOGRAPH - ,0xC3AB ,0x6BDB //CJK UNIFIED IDEOGRAPH - ,0xC3AC ,0x77DB //CJK UNIFIED IDEOGRAPH - ,0xC3AD ,0x94C6 //CJK UNIFIED IDEOGRAPH - ,0xC3AE ,0x536F //CJK UNIFIED IDEOGRAPH - ,0xC3AF ,0x8302 //CJK UNIFIED IDEOGRAPH - ,0xC3B0 ,0x5192 //CJK UNIFIED IDEOGRAPH - ,0xC3B1 ,0x5E3D //CJK UNIFIED IDEOGRAPH - ,0xC3B2 ,0x8C8C //CJK UNIFIED IDEOGRAPH - ,0xC3B3 ,0x8D38 //CJK UNIFIED IDEOGRAPH - ,0xC3B4 ,0x4E48 //CJK UNIFIED IDEOGRAPH - ,0xC3B5 ,0x73AB //CJK UNIFIED IDEOGRAPH - ,0xC3B6 ,0x679A //CJK UNIFIED IDEOGRAPH - ,0xC3B7 ,0x6885 //CJK UNIFIED IDEOGRAPH - ,0xC3B8 ,0x9176 //CJK UNIFIED IDEOGRAPH - ,0xC3B9 ,0x9709 //CJK UNIFIED IDEOGRAPH - ,0xC3BA ,0x7164 //CJK UNIFIED IDEOGRAPH - ,0xC3BB ,0x6CA1 //CJK UNIFIED IDEOGRAPH - ,0xC3BC ,0x7709 //CJK UNIFIED IDEOGRAPH - ,0xC3BD ,0x5A92 //CJK UNIFIED IDEOGRAPH - ,0xC3BE ,0x9541 //CJK UNIFIED IDEOGRAPH - ,0xC3BF ,0x6BCF //CJK UNIFIED IDEOGRAPH - ,0xC3C0 ,0x7F8E //CJK UNIFIED IDEOGRAPH - ,0xC3C1 ,0x6627 //CJK UNIFIED IDEOGRAPH - ,0xC3C2 ,0x5BD0 //CJK UNIFIED IDEOGRAPH - ,0xC3C3 ,0x59B9 //CJK UNIFIED IDEOGRAPH - ,0xC3C4 ,0x5A9A //CJK UNIFIED IDEOGRAPH - ,0xC3C5 ,0x95E8 //CJK UNIFIED IDEOGRAPH - ,0xC3C6 ,0x95F7 //CJK UNIFIED IDEOGRAPH - ,0xC3C7 ,0x4EEC //CJK UNIFIED IDEOGRAPH - ,0xC3C8 ,0x840C //CJK UNIFIED IDEOGRAPH - ,0xC3C9 ,0x8499 //CJK UNIFIED IDEOGRAPH - ,0xC3CA ,0x6AAC //CJK UNIFIED IDEOGRAPH - ,0xC3CB ,0x76DF //CJK UNIFIED IDEOGRAPH - ,0xC3CC ,0x9530 //CJK UNIFIED IDEOGRAPH - ,0xC3CD ,0x731B //CJK UNIFIED IDEOGRAPH - ,0xC3CE ,0x68A6 //CJK UNIFIED IDEOGRAPH - ,0xC3CF ,0x5B5F //CJK UNIFIED IDEOGRAPH - ,0xC3D0 ,0x772F //CJK UNIFIED IDEOGRAPH - ,0xC3D1 ,0x919A //CJK UNIFIED IDEOGRAPH - ,0xC3D2 ,0x9761 //CJK UNIFIED IDEOGRAPH - ,0xC3D3 ,0x7CDC //CJK UNIFIED IDEOGRAPH - ,0xC3D4 ,0x8FF7 //CJK UNIFIED IDEOGRAPH - ,0xC3D5 ,0x8C1C //CJK UNIFIED IDEOGRAPH - ,0xC3D6 ,0x5F25 //CJK UNIFIED IDEOGRAPH - ,0xC3D7 ,0x7C73 //CJK UNIFIED IDEOGRAPH - ,0xC3D8 ,0x79D8 //CJK UNIFIED IDEOGRAPH - ,0xC3D9 ,0x89C5 //CJK UNIFIED IDEOGRAPH - ,0xC3DA ,0x6CCC //CJK UNIFIED IDEOGRAPH - ,0xC3DB ,0x871C //CJK UNIFIED IDEOGRAPH - ,0xC3DC ,0x5BC6 //CJK UNIFIED IDEOGRAPH - ,0xC3DD ,0x5E42 //CJK UNIFIED IDEOGRAPH - ,0xC3DE ,0x68C9 //CJK UNIFIED IDEOGRAPH - ,0xC3DF ,0x7720 //CJK UNIFIED IDEOGRAPH - ,0xC3E0 ,0x7EF5 //CJK UNIFIED IDEOGRAPH - ,0xC3E1 ,0x5195 //CJK UNIFIED IDEOGRAPH - ,0xC3E2 ,0x514D //CJK UNIFIED IDEOGRAPH - ,0xC3E3 ,0x52C9 //CJK UNIFIED IDEOGRAPH - ,0xC3E4 ,0x5A29 //CJK UNIFIED IDEOGRAPH - ,0xC3E5 ,0x7F05 //CJK UNIFIED IDEOGRAPH - ,0xC3E6 ,0x9762 //CJK UNIFIED IDEOGRAPH - ,0xC3E7 ,0x82D7 //CJK UNIFIED IDEOGRAPH - ,0xC3E8 ,0x63CF //CJK UNIFIED IDEOGRAPH - ,0xC3E9 ,0x7784 //CJK UNIFIED IDEOGRAPH - ,0xC3EA ,0x85D0 //CJK UNIFIED IDEOGRAPH - ,0xC3EB ,0x79D2 //CJK UNIFIED IDEOGRAPH - ,0xC3EC ,0x6E3A //CJK UNIFIED IDEOGRAPH - ,0xC3ED ,0x5E99 //CJK UNIFIED IDEOGRAPH - ,0xC3EE ,0x5999 //CJK UNIFIED IDEOGRAPH - ,0xC3EF ,0x8511 //CJK UNIFIED IDEOGRAPH - ,0xC3F0 ,0x706D //CJK UNIFIED IDEOGRAPH - ,0xC3F1 ,0x6C11 //CJK UNIFIED IDEOGRAPH - ,0xC3F2 ,0x62BF //CJK UNIFIED IDEOGRAPH - ,0xC3F3 ,0x76BF //CJK UNIFIED IDEOGRAPH - ,0xC3F4 ,0x654F //CJK UNIFIED IDEOGRAPH - ,0xC3F5 ,0x60AF //CJK UNIFIED IDEOGRAPH - ,0xC3F6 ,0x95FD //CJK UNIFIED IDEOGRAPH - ,0xC3F7 ,0x660E //CJK UNIFIED IDEOGRAPH - ,0xC3F8 ,0x879F //CJK UNIFIED IDEOGRAPH - ,0xC3F9 ,0x9E23 //CJK UNIFIED IDEOGRAPH - ,0xC3FA ,0x94ED //CJK UNIFIED IDEOGRAPH - ,0xC3FB ,0x540D //CJK UNIFIED IDEOGRAPH - ,0xC3FC ,0x547D //CJK UNIFIED IDEOGRAPH - ,0xC3FD ,0x8C2C //CJK UNIFIED IDEOGRAPH - ,0xC3FE ,0x6478 //CJK UNIFIED IDEOGRAPH - ,0xC440 ,0x8140 //CJK UNIFIED IDEOGRAPH - ,0xC441 ,0x8141 //CJK UNIFIED IDEOGRAPH - ,0xC442 ,0x8142 //CJK UNIFIED IDEOGRAPH - ,0xC443 ,0x8143 //CJK UNIFIED IDEOGRAPH - ,0xC444 ,0x8144 //CJK UNIFIED IDEOGRAPH - ,0xC445 ,0x8145 //CJK UNIFIED IDEOGRAPH - ,0xC446 ,0x8147 //CJK UNIFIED IDEOGRAPH - ,0xC447 ,0x8149 //CJK UNIFIED IDEOGRAPH - ,0xC448 ,0x814D //CJK UNIFIED IDEOGRAPH - ,0xC449 ,0x814E //CJK UNIFIED IDEOGRAPH - ,0xC44A ,0x814F //CJK UNIFIED IDEOGRAPH - ,0xC44B ,0x8152 //CJK UNIFIED IDEOGRAPH - ,0xC44C ,0x8156 //CJK UNIFIED IDEOGRAPH - ,0xC44D ,0x8157 //CJK UNIFIED IDEOGRAPH - ,0xC44E ,0x8158 //CJK UNIFIED IDEOGRAPH - ,0xC44F ,0x815B //CJK UNIFIED IDEOGRAPH - ,0xC450 ,0x815C //CJK UNIFIED IDEOGRAPH - ,0xC451 ,0x815D //CJK UNIFIED IDEOGRAPH - ,0xC452 ,0x815E //CJK UNIFIED IDEOGRAPH - ,0xC453 ,0x815F //CJK UNIFIED IDEOGRAPH - ,0xC454 ,0x8161 //CJK UNIFIED IDEOGRAPH - ,0xC455 ,0x8162 //CJK UNIFIED IDEOGRAPH - ,0xC456 ,0x8163 //CJK UNIFIED IDEOGRAPH - ,0xC457 ,0x8164 //CJK UNIFIED IDEOGRAPH - ,0xC458 ,0x8166 //CJK UNIFIED IDEOGRAPH - ,0xC459 ,0x8168 //CJK UNIFIED IDEOGRAPH - ,0xC45A ,0x816A //CJK UNIFIED IDEOGRAPH - ,0xC45B ,0x816B //CJK UNIFIED IDEOGRAPH - ,0xC45C ,0x816C //CJK UNIFIED IDEOGRAPH - ,0xC45D ,0x816F //CJK UNIFIED IDEOGRAPH - ,0xC45E ,0x8172 //CJK UNIFIED IDEOGRAPH - ,0xC45F ,0x8173 //CJK UNIFIED IDEOGRAPH - ,0xC460 ,0x8175 //CJK UNIFIED IDEOGRAPH - ,0xC461 ,0x8176 //CJK UNIFIED IDEOGRAPH - ,0xC462 ,0x8177 //CJK UNIFIED IDEOGRAPH - ,0xC463 ,0x8178 //CJK UNIFIED IDEOGRAPH - ,0xC464 ,0x8181 //CJK UNIFIED IDEOGRAPH - ,0xC465 ,0x8183 //CJK UNIFIED IDEOGRAPH - ,0xC466 ,0x8184 //CJK UNIFIED IDEOGRAPH - ,0xC467 ,0x8185 //CJK UNIFIED IDEOGRAPH - ,0xC468 ,0x8186 //CJK UNIFIED IDEOGRAPH - ,0xC469 ,0x8187 //CJK UNIFIED IDEOGRAPH - ,0xC46A ,0x8189 //CJK UNIFIED IDEOGRAPH - ,0xC46B ,0x818B //CJK UNIFIED IDEOGRAPH - ,0xC46C ,0x818C //CJK UNIFIED IDEOGRAPH - ,0xC46D ,0x818D //CJK UNIFIED IDEOGRAPH - ,0xC46E ,0x818E //CJK UNIFIED IDEOGRAPH - ,0xC46F ,0x8190 //CJK UNIFIED IDEOGRAPH - ,0xC470 ,0x8192 //CJK UNIFIED IDEOGRAPH - ,0xC471 ,0x8193 //CJK UNIFIED IDEOGRAPH - ,0xC472 ,0x8194 //CJK UNIFIED IDEOGRAPH - ,0xC473 ,0x8195 //CJK UNIFIED IDEOGRAPH - ,0xC474 ,0x8196 //CJK UNIFIED IDEOGRAPH - ,0xC475 ,0x8197 //CJK UNIFIED IDEOGRAPH - ,0xC476 ,0x8199 //CJK UNIFIED IDEOGRAPH - ,0xC477 ,0x819A //CJK UNIFIED IDEOGRAPH - ,0xC478 ,0x819E //CJK UNIFIED IDEOGRAPH - ,0xC479 ,0x819F //CJK UNIFIED IDEOGRAPH - ,0xC47A ,0x81A0 //CJK UNIFIED IDEOGRAPH - ,0xC47B ,0x81A1 //CJK UNIFIED IDEOGRAPH - ,0xC47C ,0x81A2 //CJK UNIFIED IDEOGRAPH - ,0xC47D ,0x81A4 //CJK UNIFIED IDEOGRAPH - ,0xC47E ,0x81A5 //CJK UNIFIED IDEOGRAPH - ,0xC480 ,0x81A7 //CJK UNIFIED IDEOGRAPH - ,0xC481 ,0x81A9 //CJK UNIFIED IDEOGRAPH - ,0xC482 ,0x81AB //CJK UNIFIED IDEOGRAPH - ,0xC483 ,0x81AC //CJK UNIFIED IDEOGRAPH - ,0xC484 ,0x81AD //CJK UNIFIED IDEOGRAPH - ,0xC485 ,0x81AE //CJK UNIFIED IDEOGRAPH - ,0xC486 ,0x81AF //CJK UNIFIED IDEOGRAPH - ,0xC487 ,0x81B0 //CJK UNIFIED IDEOGRAPH - ,0xC488 ,0x81B1 //CJK UNIFIED IDEOGRAPH - ,0xC489 ,0x81B2 //CJK UNIFIED IDEOGRAPH - ,0xC48A ,0x81B4 //CJK UNIFIED IDEOGRAPH - ,0xC48B ,0x81B5 //CJK UNIFIED IDEOGRAPH - ,0xC48C ,0x81B6 //CJK UNIFIED IDEOGRAPH - ,0xC48D ,0x81B7 //CJK UNIFIED IDEOGRAPH - ,0xC48E ,0x81B8 //CJK UNIFIED IDEOGRAPH - ,0xC48F ,0x81B9 //CJK UNIFIED IDEOGRAPH - ,0xC490 ,0x81BC //CJK UNIFIED IDEOGRAPH - ,0xC491 ,0x81BD //CJK UNIFIED IDEOGRAPH - ,0xC492 ,0x81BE //CJK UNIFIED IDEOGRAPH - ,0xC493 ,0x81BF //CJK UNIFIED IDEOGRAPH - ,0xC494 ,0x81C4 //CJK UNIFIED IDEOGRAPH - ,0xC495 ,0x81C5 //CJK UNIFIED IDEOGRAPH - ,0xC496 ,0x81C7 //CJK UNIFIED IDEOGRAPH - ,0xC497 ,0x81C8 //CJK UNIFIED IDEOGRAPH - ,0xC498 ,0x81C9 //CJK UNIFIED IDEOGRAPH - ,0xC499 ,0x81CB //CJK UNIFIED IDEOGRAPH - ,0xC49A ,0x81CD //CJK UNIFIED IDEOGRAPH - ,0xC49B ,0x81CE //CJK UNIFIED IDEOGRAPH - ,0xC49C ,0x81CF //CJK UNIFIED IDEOGRAPH - ,0xC49D ,0x81D0 //CJK UNIFIED IDEOGRAPH - ,0xC49E ,0x81D1 //CJK UNIFIED IDEOGRAPH - ,0xC49F ,0x81D2 //CJK UNIFIED IDEOGRAPH - ,0xC4A0 ,0x81D3 //CJK UNIFIED IDEOGRAPH - ,0xC4A1 ,0x6479 //CJK UNIFIED IDEOGRAPH - ,0xC4A2 ,0x8611 //CJK UNIFIED IDEOGRAPH - ,0xC4A3 ,0x6A21 //CJK UNIFIED IDEOGRAPH - ,0xC4A4 ,0x819C //CJK UNIFIED IDEOGRAPH - ,0xC4A5 ,0x78E8 //CJK UNIFIED IDEOGRAPH - ,0xC4A6 ,0x6469 //CJK UNIFIED IDEOGRAPH - ,0xC4A7 ,0x9B54 //CJK UNIFIED IDEOGRAPH - ,0xC4A8 ,0x62B9 //CJK UNIFIED IDEOGRAPH - ,0xC4A9 ,0x672B //CJK UNIFIED IDEOGRAPH - ,0xC4AA ,0x83AB //CJK UNIFIED IDEOGRAPH - ,0xC4AB ,0x58A8 //CJK UNIFIED IDEOGRAPH - ,0xC4AC ,0x9ED8 //CJK UNIFIED IDEOGRAPH - ,0xC4AD ,0x6CAB //CJK UNIFIED IDEOGRAPH - ,0xC4AE ,0x6F20 //CJK UNIFIED IDEOGRAPH - ,0xC4AF ,0x5BDE //CJK UNIFIED IDEOGRAPH - ,0xC4B0 ,0x964C //CJK UNIFIED IDEOGRAPH - ,0xC4B1 ,0x8C0B //CJK UNIFIED IDEOGRAPH - ,0xC4B2 ,0x725F //CJK UNIFIED IDEOGRAPH - ,0xC4B3 ,0x67D0 //CJK UNIFIED IDEOGRAPH - ,0xC4B4 ,0x62C7 //CJK UNIFIED IDEOGRAPH - ,0xC4B5 ,0x7261 //CJK UNIFIED IDEOGRAPH - ,0xC4B6 ,0x4EA9 //CJK UNIFIED IDEOGRAPH - ,0xC4B7 ,0x59C6 //CJK UNIFIED IDEOGRAPH - ,0xC4B8 ,0x6BCD //CJK UNIFIED IDEOGRAPH - ,0xC4B9 ,0x5893 //CJK UNIFIED IDEOGRAPH - ,0xC4BA ,0x66AE //CJK UNIFIED IDEOGRAPH - ,0xC4BB ,0x5E55 //CJK UNIFIED IDEOGRAPH - ,0xC4BC ,0x52DF //CJK UNIFIED IDEOGRAPH - ,0xC4BD ,0x6155 //CJK UNIFIED IDEOGRAPH - ,0xC4BE ,0x6728 //CJK UNIFIED IDEOGRAPH - ,0xC4BF ,0x76EE //CJK UNIFIED IDEOGRAPH - ,0xC4C0 ,0x7766 //CJK UNIFIED IDEOGRAPH - ,0xC4C1 ,0x7267 //CJK UNIFIED IDEOGRAPH - ,0xC4C2 ,0x7A46 //CJK UNIFIED IDEOGRAPH - ,0xC4C3 ,0x62FF //CJK UNIFIED IDEOGRAPH - ,0xC4C4 ,0x54EA //CJK UNIFIED IDEOGRAPH - ,0xC4C5 ,0x5450 //CJK UNIFIED IDEOGRAPH - ,0xC4C6 ,0x94A0 //CJK UNIFIED IDEOGRAPH - ,0xC4C7 ,0x90A3 //CJK UNIFIED IDEOGRAPH - ,0xC4C8 ,0x5A1C //CJK UNIFIED IDEOGRAPH - ,0xC4C9 ,0x7EB3 //CJK UNIFIED IDEOGRAPH - ,0xC4CA ,0x6C16 //CJK UNIFIED IDEOGRAPH - ,0xC4CB ,0x4E43 //CJK UNIFIED IDEOGRAPH - ,0xC4CC ,0x5976 //CJK UNIFIED IDEOGRAPH - ,0xC4CD ,0x8010 //CJK UNIFIED IDEOGRAPH - ,0xC4CE ,0x5948 //CJK UNIFIED IDEOGRAPH - ,0xC4CF ,0x5357 //CJK UNIFIED IDEOGRAPH - ,0xC4D0 ,0x7537 //CJK UNIFIED IDEOGRAPH - ,0xC4D1 ,0x96BE //CJK UNIFIED IDEOGRAPH - ,0xC4D2 ,0x56CA //CJK UNIFIED IDEOGRAPH - ,0xC4D3 ,0x6320 //CJK UNIFIED IDEOGRAPH - ,0xC4D4 ,0x8111 //CJK UNIFIED IDEOGRAPH - ,0xC4D5 ,0x607C //CJK UNIFIED IDEOGRAPH - ,0xC4D6 ,0x95F9 //CJK UNIFIED IDEOGRAPH - ,0xC4D7 ,0x6DD6 //CJK UNIFIED IDEOGRAPH - ,0xC4D8 ,0x5462 //CJK UNIFIED IDEOGRAPH - ,0xC4D9 ,0x9981 //CJK UNIFIED IDEOGRAPH - ,0xC4DA ,0x5185 //CJK UNIFIED IDEOGRAPH - ,0xC4DB ,0x5AE9 //CJK UNIFIED IDEOGRAPH - ,0xC4DC ,0x80FD //CJK UNIFIED IDEOGRAPH - ,0xC4DD ,0x59AE //CJK UNIFIED IDEOGRAPH - ,0xC4DE ,0x9713 //CJK UNIFIED IDEOGRAPH - ,0xC4DF ,0x502A //CJK UNIFIED IDEOGRAPH - ,0xC4E0 ,0x6CE5 //CJK UNIFIED IDEOGRAPH - ,0xC4E1 ,0x5C3C //CJK UNIFIED IDEOGRAPH - ,0xC4E2 ,0x62DF //CJK UNIFIED IDEOGRAPH - ,0xC4E3 ,0x4F60 //CJK UNIFIED IDEOGRAPH - ,0xC4E4 ,0x533F //CJK UNIFIED IDEOGRAPH - ,0xC4E5 ,0x817B //CJK UNIFIED IDEOGRAPH - ,0xC4E6 ,0x9006 //CJK UNIFIED IDEOGRAPH - ,0xC4E7 ,0x6EBA //CJK UNIFIED IDEOGRAPH - ,0xC4E8 ,0x852B //CJK UNIFIED IDEOGRAPH - ,0xC4E9 ,0x62C8 //CJK UNIFIED IDEOGRAPH - ,0xC4EA ,0x5E74 //CJK UNIFIED IDEOGRAPH - ,0xC4EB ,0x78BE //CJK UNIFIED IDEOGRAPH - ,0xC4EC ,0x64B5 //CJK UNIFIED IDEOGRAPH - ,0xC4ED ,0x637B //CJK UNIFIED IDEOGRAPH - ,0xC4EE ,0x5FF5 //CJK UNIFIED IDEOGRAPH - ,0xC4EF ,0x5A18 //CJK UNIFIED IDEOGRAPH - ,0xC4F0 ,0x917F //CJK UNIFIED IDEOGRAPH - ,0xC4F1 ,0x9E1F //CJK UNIFIED IDEOGRAPH - ,0xC4F2 ,0x5C3F //CJK UNIFIED IDEOGRAPH - ,0xC4F3 ,0x634F //CJK UNIFIED IDEOGRAPH - ,0xC4F4 ,0x8042 //CJK UNIFIED IDEOGRAPH - ,0xC4F5 ,0x5B7D //CJK UNIFIED IDEOGRAPH - ,0xC4F6 ,0x556E //CJK UNIFIED IDEOGRAPH - ,0xC4F7 ,0x954A //CJK UNIFIED IDEOGRAPH - ,0xC4F8 ,0x954D //CJK UNIFIED IDEOGRAPH - ,0xC4F9 ,0x6D85 //CJK UNIFIED IDEOGRAPH - ,0xC4FA ,0x60A8 //CJK UNIFIED IDEOGRAPH - ,0xC4FB ,0x67E0 //CJK UNIFIED IDEOGRAPH - ,0xC4FC ,0x72DE //CJK UNIFIED IDEOGRAPH - ,0xC4FD ,0x51DD //CJK UNIFIED IDEOGRAPH - ,0xC4FE ,0x5B81 //CJK UNIFIED IDEOGRAPH - ,0xC540 ,0x81D4 //CJK UNIFIED IDEOGRAPH - ,0xC541 ,0x81D5 //CJK UNIFIED IDEOGRAPH - ,0xC542 ,0x81D6 //CJK UNIFIED IDEOGRAPH - ,0xC543 ,0x81D7 //CJK UNIFIED IDEOGRAPH - ,0xC544 ,0x81D8 //CJK UNIFIED IDEOGRAPH - ,0xC545 ,0x81D9 //CJK UNIFIED IDEOGRAPH - ,0xC546 ,0x81DA //CJK UNIFIED IDEOGRAPH - ,0xC547 ,0x81DB //CJK UNIFIED IDEOGRAPH - ,0xC548 ,0x81DC //CJK UNIFIED IDEOGRAPH - ,0xC549 ,0x81DD //CJK UNIFIED IDEOGRAPH - ,0xC54A ,0x81DE //CJK UNIFIED IDEOGRAPH - ,0xC54B ,0x81DF //CJK UNIFIED IDEOGRAPH - ,0xC54C ,0x81E0 //CJK UNIFIED IDEOGRAPH - ,0xC54D ,0x81E1 //CJK UNIFIED IDEOGRAPH - ,0xC54E ,0x81E2 //CJK UNIFIED IDEOGRAPH - ,0xC54F ,0x81E4 //CJK UNIFIED IDEOGRAPH - ,0xC550 ,0x81E5 //CJK UNIFIED IDEOGRAPH - ,0xC551 ,0x81E6 //CJK UNIFIED IDEOGRAPH - ,0xC552 ,0x81E8 //CJK UNIFIED IDEOGRAPH - ,0xC553 ,0x81E9 //CJK UNIFIED IDEOGRAPH - ,0xC554 ,0x81EB //CJK UNIFIED IDEOGRAPH - ,0xC555 ,0x81EE //CJK UNIFIED IDEOGRAPH - ,0xC556 ,0x81EF //CJK UNIFIED IDEOGRAPH - ,0xC557 ,0x81F0 //CJK UNIFIED IDEOGRAPH - ,0xC558 ,0x81F1 //CJK UNIFIED IDEOGRAPH - ,0xC559 ,0x81F2 //CJK UNIFIED IDEOGRAPH - ,0xC55A ,0x81F5 //CJK UNIFIED IDEOGRAPH - ,0xC55B ,0x81F6 //CJK UNIFIED IDEOGRAPH - ,0xC55C ,0x81F7 //CJK UNIFIED IDEOGRAPH - ,0xC55D ,0x81F8 //CJK UNIFIED IDEOGRAPH - ,0xC55E ,0x81F9 //CJK UNIFIED IDEOGRAPH - ,0xC55F ,0x81FA //CJK UNIFIED IDEOGRAPH - ,0xC560 ,0x81FD //CJK UNIFIED IDEOGRAPH - ,0xC561 ,0x81FF //CJK UNIFIED IDEOGRAPH - ,0xC562 ,0x8203 //CJK UNIFIED IDEOGRAPH - ,0xC563 ,0x8207 //CJK UNIFIED IDEOGRAPH - ,0xC564 ,0x8208 //CJK UNIFIED IDEOGRAPH - ,0xC565 ,0x8209 //CJK UNIFIED IDEOGRAPH - ,0xC566 ,0x820A //CJK UNIFIED IDEOGRAPH - ,0xC567 ,0x820B //CJK UNIFIED IDEOGRAPH - ,0xC568 ,0x820E //CJK UNIFIED IDEOGRAPH - ,0xC569 ,0x820F //CJK UNIFIED IDEOGRAPH - ,0xC56A ,0x8211 //CJK UNIFIED IDEOGRAPH - ,0xC56B ,0x8213 //CJK UNIFIED IDEOGRAPH - ,0xC56C ,0x8215 //CJK UNIFIED IDEOGRAPH - ,0xC56D ,0x8216 //CJK UNIFIED IDEOGRAPH - ,0xC56E ,0x8217 //CJK UNIFIED IDEOGRAPH - ,0xC56F ,0x8218 //CJK UNIFIED IDEOGRAPH - ,0xC570 ,0x8219 //CJK UNIFIED IDEOGRAPH - ,0xC571 ,0x821A //CJK UNIFIED IDEOGRAPH - ,0xC572 ,0x821D //CJK UNIFIED IDEOGRAPH - ,0xC573 ,0x8220 //CJK UNIFIED IDEOGRAPH - ,0xC574 ,0x8224 //CJK UNIFIED IDEOGRAPH - ,0xC575 ,0x8225 //CJK UNIFIED IDEOGRAPH - ,0xC576 ,0x8226 //CJK UNIFIED IDEOGRAPH - ,0xC577 ,0x8227 //CJK UNIFIED IDEOGRAPH - ,0xC578 ,0x8229 //CJK UNIFIED IDEOGRAPH - ,0xC579 ,0x822E //CJK UNIFIED IDEOGRAPH - ,0xC57A ,0x8232 //CJK UNIFIED IDEOGRAPH - ,0xC57B ,0x823A //CJK UNIFIED IDEOGRAPH - ,0xC57C ,0x823C //CJK UNIFIED IDEOGRAPH - ,0xC57D ,0x823D //CJK UNIFIED IDEOGRAPH - ,0xC57E ,0x823F //CJK UNIFIED IDEOGRAPH - ,0xC580 ,0x8240 //CJK UNIFIED IDEOGRAPH - ,0xC581 ,0x8241 //CJK UNIFIED IDEOGRAPH - ,0xC582 ,0x8242 //CJK UNIFIED IDEOGRAPH - ,0xC583 ,0x8243 //CJK UNIFIED IDEOGRAPH - ,0xC584 ,0x8245 //CJK UNIFIED IDEOGRAPH - ,0xC585 ,0x8246 //CJK UNIFIED IDEOGRAPH - ,0xC586 ,0x8248 //CJK UNIFIED IDEOGRAPH - ,0xC587 ,0x824A //CJK UNIFIED IDEOGRAPH - ,0xC588 ,0x824C //CJK UNIFIED IDEOGRAPH - ,0xC589 ,0x824D //CJK UNIFIED IDEOGRAPH - ,0xC58A ,0x824E //CJK UNIFIED IDEOGRAPH - ,0xC58B ,0x8250 //CJK UNIFIED IDEOGRAPH - ,0xC58C ,0x8251 //CJK UNIFIED IDEOGRAPH - ,0xC58D ,0x8252 //CJK UNIFIED IDEOGRAPH - ,0xC58E ,0x8253 //CJK UNIFIED IDEOGRAPH - ,0xC58F ,0x8254 //CJK UNIFIED IDEOGRAPH - ,0xC590 ,0x8255 //CJK UNIFIED IDEOGRAPH - ,0xC591 ,0x8256 //CJK UNIFIED IDEOGRAPH - ,0xC592 ,0x8257 //CJK UNIFIED IDEOGRAPH - ,0xC593 ,0x8259 //CJK UNIFIED IDEOGRAPH - ,0xC594 ,0x825B //CJK UNIFIED IDEOGRAPH - ,0xC595 ,0x825C //CJK UNIFIED IDEOGRAPH - ,0xC596 ,0x825D //CJK UNIFIED IDEOGRAPH - ,0xC597 ,0x825E //CJK UNIFIED IDEOGRAPH - ,0xC598 ,0x8260 //CJK UNIFIED IDEOGRAPH - ,0xC599 ,0x8261 //CJK UNIFIED IDEOGRAPH - ,0xC59A ,0x8262 //CJK UNIFIED IDEOGRAPH - ,0xC59B ,0x8263 //CJK UNIFIED IDEOGRAPH - ,0xC59C ,0x8264 //CJK UNIFIED IDEOGRAPH - ,0xC59D ,0x8265 //CJK UNIFIED IDEOGRAPH - ,0xC59E ,0x8266 //CJK UNIFIED IDEOGRAPH - ,0xC59F ,0x8267 //CJK UNIFIED IDEOGRAPH - ,0xC5A0 ,0x8269 //CJK UNIFIED IDEOGRAPH - ,0xC5A1 ,0x62E7 //CJK UNIFIED IDEOGRAPH - ,0xC5A2 ,0x6CDE //CJK UNIFIED IDEOGRAPH - ,0xC5A3 ,0x725B //CJK UNIFIED IDEOGRAPH - ,0xC5A4 ,0x626D //CJK UNIFIED IDEOGRAPH - ,0xC5A5 ,0x94AE //CJK UNIFIED IDEOGRAPH - ,0xC5A6 ,0x7EBD //CJK UNIFIED IDEOGRAPH - ,0xC5A7 ,0x8113 //CJK UNIFIED IDEOGRAPH - ,0xC5A8 ,0x6D53 //CJK UNIFIED IDEOGRAPH - ,0xC5A9 ,0x519C //CJK UNIFIED IDEOGRAPH - ,0xC5AA ,0x5F04 //CJK UNIFIED IDEOGRAPH - ,0xC5AB ,0x5974 //CJK UNIFIED IDEOGRAPH - ,0xC5AC ,0x52AA //CJK UNIFIED IDEOGRAPH - ,0xC5AD ,0x6012 //CJK UNIFIED IDEOGRAPH - ,0xC5AE ,0x5973 //CJK UNIFIED IDEOGRAPH - ,0xC5AF ,0x6696 //CJK UNIFIED IDEOGRAPH - ,0xC5B0 ,0x8650 //CJK UNIFIED IDEOGRAPH - ,0xC5B1 ,0x759F //CJK UNIFIED IDEOGRAPH - ,0xC5B2 ,0x632A //CJK UNIFIED IDEOGRAPH - ,0xC5B3 ,0x61E6 //CJK UNIFIED IDEOGRAPH - ,0xC5B4 ,0x7CEF //CJK UNIFIED IDEOGRAPH - ,0xC5B5 ,0x8BFA //CJK UNIFIED IDEOGRAPH - ,0xC5B6 ,0x54E6 //CJK UNIFIED IDEOGRAPH - ,0xC5B7 ,0x6B27 //CJK UNIFIED IDEOGRAPH - ,0xC5B8 ,0x9E25 //CJK UNIFIED IDEOGRAPH - ,0xC5B9 ,0x6BB4 //CJK UNIFIED IDEOGRAPH - ,0xC5BA ,0x85D5 //CJK UNIFIED IDEOGRAPH - ,0xC5BB ,0x5455 //CJK UNIFIED IDEOGRAPH - ,0xC5BC ,0x5076 //CJK UNIFIED IDEOGRAPH - ,0xC5BD ,0x6CA4 //CJK UNIFIED IDEOGRAPH - ,0xC5BE ,0x556A //CJK UNIFIED IDEOGRAPH - ,0xC5BF ,0x8DB4 //CJK UNIFIED IDEOGRAPH - ,0xC5C0 ,0x722C //CJK UNIFIED IDEOGRAPH - ,0xC5C1 ,0x5E15 //CJK UNIFIED IDEOGRAPH - ,0xC5C2 ,0x6015 //CJK UNIFIED IDEOGRAPH - ,0xC5C3 ,0x7436 //CJK UNIFIED IDEOGRAPH - ,0xC5C4 ,0x62CD //CJK UNIFIED IDEOGRAPH - ,0xC5C5 ,0x6392 //CJK UNIFIED IDEOGRAPH - ,0xC5C6 ,0x724C //CJK UNIFIED IDEOGRAPH - ,0xC5C7 ,0x5F98 //CJK UNIFIED IDEOGRAPH - ,0xC5C8 ,0x6E43 //CJK UNIFIED IDEOGRAPH - ,0xC5C9 ,0x6D3E //CJK UNIFIED IDEOGRAPH - ,0xC5CA ,0x6500 //CJK UNIFIED IDEOGRAPH - ,0xC5CB ,0x6F58 //CJK UNIFIED IDEOGRAPH - ,0xC5CC ,0x76D8 //CJK UNIFIED IDEOGRAPH - ,0xC5CD ,0x78D0 //CJK UNIFIED IDEOGRAPH - ,0xC5CE ,0x76FC //CJK UNIFIED IDEOGRAPH - ,0xC5CF ,0x7554 //CJK UNIFIED IDEOGRAPH - ,0xC5D0 ,0x5224 //CJK UNIFIED IDEOGRAPH - ,0xC5D1 ,0x53DB //CJK UNIFIED IDEOGRAPH - ,0xC5D2 ,0x4E53 //CJK UNIFIED IDEOGRAPH - ,0xC5D3 ,0x5E9E //CJK UNIFIED IDEOGRAPH - ,0xC5D4 ,0x65C1 //CJK UNIFIED IDEOGRAPH - ,0xC5D5 ,0x802A //CJK UNIFIED IDEOGRAPH - ,0xC5D6 ,0x80D6 //CJK UNIFIED IDEOGRAPH - ,0xC5D7 ,0x629B //CJK UNIFIED IDEOGRAPH - ,0xC5D8 ,0x5486 //CJK UNIFIED IDEOGRAPH - ,0xC5D9 ,0x5228 //CJK UNIFIED IDEOGRAPH - ,0xC5DA ,0x70AE //CJK UNIFIED IDEOGRAPH - ,0xC5DB ,0x888D //CJK UNIFIED IDEOGRAPH - ,0xC5DC ,0x8DD1 //CJK UNIFIED IDEOGRAPH - ,0xC5DD ,0x6CE1 //CJK UNIFIED IDEOGRAPH - ,0xC5DE ,0x5478 //CJK UNIFIED IDEOGRAPH - ,0xC5DF ,0x80DA //CJK UNIFIED IDEOGRAPH - ,0xC5E0 ,0x57F9 //CJK UNIFIED IDEOGRAPH - ,0xC5E1 ,0x88F4 //CJK UNIFIED IDEOGRAPH - ,0xC5E2 ,0x8D54 //CJK UNIFIED IDEOGRAPH - ,0xC5E3 ,0x966A //CJK UNIFIED IDEOGRAPH - ,0xC5E4 ,0x914D //CJK UNIFIED IDEOGRAPH - ,0xC5E5 ,0x4F69 //CJK UNIFIED IDEOGRAPH - ,0xC5E6 ,0x6C9B //CJK UNIFIED IDEOGRAPH - ,0xC5E7 ,0x55B7 //CJK UNIFIED IDEOGRAPH - ,0xC5E8 ,0x76C6 //CJK UNIFIED IDEOGRAPH - ,0xC5E9 ,0x7830 //CJK UNIFIED IDEOGRAPH - ,0xC5EA ,0x62A8 //CJK UNIFIED IDEOGRAPH - ,0xC5EB ,0x70F9 //CJK UNIFIED IDEOGRAPH - ,0xC5EC ,0x6F8E //CJK UNIFIED IDEOGRAPH - ,0xC5ED ,0x5F6D //CJK UNIFIED IDEOGRAPH - ,0xC5EE ,0x84EC //CJK UNIFIED IDEOGRAPH - ,0xC5EF ,0x68DA //CJK UNIFIED IDEOGRAPH - ,0xC5F0 ,0x787C //CJK UNIFIED IDEOGRAPH - ,0xC5F1 ,0x7BF7 //CJK UNIFIED IDEOGRAPH - ,0xC5F2 ,0x81A8 //CJK UNIFIED IDEOGRAPH - ,0xC5F3 ,0x670B //CJK UNIFIED IDEOGRAPH - ,0xC5F4 ,0x9E4F //CJK UNIFIED IDEOGRAPH - ,0xC5F5 ,0x6367 //CJK UNIFIED IDEOGRAPH - ,0xC5F6 ,0x78B0 //CJK UNIFIED IDEOGRAPH - ,0xC5F7 ,0x576F //CJK UNIFIED IDEOGRAPH - ,0xC5F8 ,0x7812 //CJK UNIFIED IDEOGRAPH - ,0xC5F9 ,0x9739 //CJK UNIFIED IDEOGRAPH - ,0xC5FA ,0x6279 //CJK UNIFIED IDEOGRAPH - ,0xC5FB ,0x62AB //CJK UNIFIED IDEOGRAPH - ,0xC5FC ,0x5288 //CJK UNIFIED IDEOGRAPH - ,0xC5FD ,0x7435 //CJK UNIFIED IDEOGRAPH - ,0xC5FE ,0x6BD7 //CJK UNIFIED IDEOGRAPH - ,0xC640 ,0x826A //CJK UNIFIED IDEOGRAPH - ,0xC641 ,0x826B //CJK UNIFIED IDEOGRAPH - ,0xC642 ,0x826C //CJK UNIFIED IDEOGRAPH - ,0xC643 ,0x826D //CJK UNIFIED IDEOGRAPH - ,0xC644 ,0x8271 //CJK UNIFIED IDEOGRAPH - ,0xC645 ,0x8275 //CJK UNIFIED IDEOGRAPH - ,0xC646 ,0x8276 //CJK UNIFIED IDEOGRAPH - ,0xC647 ,0x8277 //CJK UNIFIED IDEOGRAPH - ,0xC648 ,0x8278 //CJK UNIFIED IDEOGRAPH - ,0xC649 ,0x827B //CJK UNIFIED IDEOGRAPH - ,0xC64A ,0x827C //CJK UNIFIED IDEOGRAPH - ,0xC64B ,0x8280 //CJK UNIFIED IDEOGRAPH - ,0xC64C ,0x8281 //CJK UNIFIED IDEOGRAPH - ,0xC64D ,0x8283 //CJK UNIFIED IDEOGRAPH - ,0xC64E ,0x8285 //CJK UNIFIED IDEOGRAPH - ,0xC64F ,0x8286 //CJK UNIFIED IDEOGRAPH - ,0xC650 ,0x8287 //CJK UNIFIED IDEOGRAPH - ,0xC651 ,0x8289 //CJK UNIFIED IDEOGRAPH - ,0xC652 ,0x828C //CJK UNIFIED IDEOGRAPH - ,0xC653 ,0x8290 //CJK UNIFIED IDEOGRAPH - ,0xC654 ,0x8293 //CJK UNIFIED IDEOGRAPH - ,0xC655 ,0x8294 //CJK UNIFIED IDEOGRAPH - ,0xC656 ,0x8295 //CJK UNIFIED IDEOGRAPH - ,0xC657 ,0x8296 //CJK UNIFIED IDEOGRAPH - ,0xC658 ,0x829A //CJK UNIFIED IDEOGRAPH - ,0xC659 ,0x829B //CJK UNIFIED IDEOGRAPH - ,0xC65A ,0x829E //CJK UNIFIED IDEOGRAPH - ,0xC65B ,0x82A0 //CJK UNIFIED IDEOGRAPH - ,0xC65C ,0x82A2 //CJK UNIFIED IDEOGRAPH - ,0xC65D ,0x82A3 //CJK UNIFIED IDEOGRAPH - ,0xC65E ,0x82A7 //CJK UNIFIED IDEOGRAPH - ,0xC65F ,0x82B2 //CJK UNIFIED IDEOGRAPH - ,0xC660 ,0x82B5 //CJK UNIFIED IDEOGRAPH - ,0xC661 ,0x82B6 //CJK UNIFIED IDEOGRAPH - ,0xC662 ,0x82BA //CJK UNIFIED IDEOGRAPH - ,0xC663 ,0x82BB //CJK UNIFIED IDEOGRAPH - ,0xC664 ,0x82BC //CJK UNIFIED IDEOGRAPH - ,0xC665 ,0x82BF //CJK UNIFIED IDEOGRAPH - ,0xC666 ,0x82C0 //CJK UNIFIED IDEOGRAPH - ,0xC667 ,0x82C2 //CJK UNIFIED IDEOGRAPH - ,0xC668 ,0x82C3 //CJK UNIFIED IDEOGRAPH - ,0xC669 ,0x82C5 //CJK UNIFIED IDEOGRAPH - ,0xC66A ,0x82C6 //CJK UNIFIED IDEOGRAPH - ,0xC66B ,0x82C9 //CJK UNIFIED IDEOGRAPH - ,0xC66C ,0x82D0 //CJK UNIFIED IDEOGRAPH - ,0xC66D ,0x82D6 //CJK UNIFIED IDEOGRAPH - ,0xC66E ,0x82D9 //CJK UNIFIED IDEOGRAPH - ,0xC66F ,0x82DA //CJK UNIFIED IDEOGRAPH - ,0xC670 ,0x82DD //CJK UNIFIED IDEOGRAPH - ,0xC671 ,0x82E2 //CJK UNIFIED IDEOGRAPH - ,0xC672 ,0x82E7 //CJK UNIFIED IDEOGRAPH - ,0xC673 ,0x82E8 //CJK UNIFIED IDEOGRAPH - ,0xC674 ,0x82E9 //CJK UNIFIED IDEOGRAPH - ,0xC675 ,0x82EA //CJK UNIFIED IDEOGRAPH - ,0xC676 ,0x82EC //CJK UNIFIED IDEOGRAPH - ,0xC677 ,0x82ED //CJK UNIFIED IDEOGRAPH - ,0xC678 ,0x82EE //CJK UNIFIED IDEOGRAPH - ,0xC679 ,0x82F0 //CJK UNIFIED IDEOGRAPH - ,0xC67A ,0x82F2 //CJK UNIFIED IDEOGRAPH - ,0xC67B ,0x82F3 //CJK UNIFIED IDEOGRAPH - ,0xC67C ,0x82F5 //CJK UNIFIED IDEOGRAPH - ,0xC67D ,0x82F6 //CJK UNIFIED IDEOGRAPH - ,0xC67E ,0x82F8 //CJK UNIFIED IDEOGRAPH - ,0xC680 ,0x82FA //CJK UNIFIED IDEOGRAPH - ,0xC681 ,0x82FC //CJK UNIFIED IDEOGRAPH - ,0xC682 ,0x82FD //CJK UNIFIED IDEOGRAPH - ,0xC683 ,0x82FE //CJK UNIFIED IDEOGRAPH - ,0xC684 ,0x82FF //CJK UNIFIED IDEOGRAPH - ,0xC685 ,0x8300 //CJK UNIFIED IDEOGRAPH - ,0xC686 ,0x830A //CJK UNIFIED IDEOGRAPH - ,0xC687 ,0x830B //CJK UNIFIED IDEOGRAPH - ,0xC688 ,0x830D //CJK UNIFIED IDEOGRAPH - ,0xC689 ,0x8310 //CJK UNIFIED IDEOGRAPH - ,0xC68A ,0x8312 //CJK UNIFIED IDEOGRAPH - ,0xC68B ,0x8313 //CJK UNIFIED IDEOGRAPH - ,0xC68C ,0x8316 //CJK UNIFIED IDEOGRAPH - ,0xC68D ,0x8318 //CJK UNIFIED IDEOGRAPH - ,0xC68E ,0x8319 //CJK UNIFIED IDEOGRAPH - ,0xC68F ,0x831D //CJK UNIFIED IDEOGRAPH - ,0xC690 ,0x831E //CJK UNIFIED IDEOGRAPH - ,0xC691 ,0x831F //CJK UNIFIED IDEOGRAPH - ,0xC692 ,0x8320 //CJK UNIFIED IDEOGRAPH - ,0xC693 ,0x8321 //CJK UNIFIED IDEOGRAPH - ,0xC694 ,0x8322 //CJK UNIFIED IDEOGRAPH - ,0xC695 ,0x8323 //CJK UNIFIED IDEOGRAPH - ,0xC696 ,0x8324 //CJK UNIFIED IDEOGRAPH - ,0xC697 ,0x8325 //CJK UNIFIED IDEOGRAPH - ,0xC698 ,0x8326 //CJK UNIFIED IDEOGRAPH - ,0xC699 ,0x8329 //CJK UNIFIED IDEOGRAPH - ,0xC69A ,0x832A //CJK UNIFIED IDEOGRAPH - ,0xC69B ,0x832E //CJK UNIFIED IDEOGRAPH - ,0xC69C ,0x8330 //CJK UNIFIED IDEOGRAPH - ,0xC69D ,0x8332 //CJK UNIFIED IDEOGRAPH - ,0xC69E ,0x8337 //CJK UNIFIED IDEOGRAPH - ,0xC69F ,0x833B //CJK UNIFIED IDEOGRAPH - ,0xC6A0 ,0x833D //CJK UNIFIED IDEOGRAPH - ,0xC6A1 ,0x5564 //CJK UNIFIED IDEOGRAPH - ,0xC6A2 ,0x813E //CJK UNIFIED IDEOGRAPH - ,0xC6A3 ,0x75B2 //CJK UNIFIED IDEOGRAPH - ,0xC6A4 ,0x76AE //CJK UNIFIED IDEOGRAPH - ,0xC6A5 ,0x5339 //CJK UNIFIED IDEOGRAPH - ,0xC6A6 ,0x75DE //CJK UNIFIED IDEOGRAPH - ,0xC6A7 ,0x50FB //CJK UNIFIED IDEOGRAPH - ,0xC6A8 ,0x5C41 //CJK UNIFIED IDEOGRAPH - ,0xC6A9 ,0x8B6C //CJK UNIFIED IDEOGRAPH - ,0xC6AA ,0x7BC7 //CJK UNIFIED IDEOGRAPH - ,0xC6AB ,0x504F //CJK UNIFIED IDEOGRAPH - ,0xC6AC ,0x7247 //CJK UNIFIED IDEOGRAPH - ,0xC6AD ,0x9A97 //CJK UNIFIED IDEOGRAPH - ,0xC6AE ,0x98D8 //CJK UNIFIED IDEOGRAPH - ,0xC6AF ,0x6F02 //CJK UNIFIED IDEOGRAPH - ,0xC6B0 ,0x74E2 //CJK UNIFIED IDEOGRAPH - ,0xC6B1 ,0x7968 //CJK UNIFIED IDEOGRAPH - ,0xC6B2 ,0x6487 //CJK UNIFIED IDEOGRAPH - ,0xC6B3 ,0x77A5 //CJK UNIFIED IDEOGRAPH - ,0xC6B4 ,0x62FC //CJK UNIFIED IDEOGRAPH - ,0xC6B5 ,0x9891 //CJK UNIFIED IDEOGRAPH - ,0xC6B6 ,0x8D2B //CJK UNIFIED IDEOGRAPH - ,0xC6B7 ,0x54C1 //CJK UNIFIED IDEOGRAPH - ,0xC6B8 ,0x8058 //CJK UNIFIED IDEOGRAPH - ,0xC6B9 ,0x4E52 //CJK UNIFIED IDEOGRAPH - ,0xC6BA ,0x576A //CJK UNIFIED IDEOGRAPH - ,0xC6BB ,0x82F9 //CJK UNIFIED IDEOGRAPH - ,0xC6BC ,0x840D //CJK UNIFIED IDEOGRAPH - ,0xC6BD ,0x5E73 //CJK UNIFIED IDEOGRAPH - ,0xC6BE ,0x51ED //CJK UNIFIED IDEOGRAPH - ,0xC6BF ,0x74F6 //CJK UNIFIED IDEOGRAPH - ,0xC6C0 ,0x8BC4 //CJK UNIFIED IDEOGRAPH - ,0xC6C1 ,0x5C4F //CJK UNIFIED IDEOGRAPH - ,0xC6C2 ,0x5761 //CJK UNIFIED IDEOGRAPH - ,0xC6C3 ,0x6CFC //CJK UNIFIED IDEOGRAPH - ,0xC6C4 ,0x9887 //CJK UNIFIED IDEOGRAPH - ,0xC6C5 ,0x5A46 //CJK UNIFIED IDEOGRAPH - ,0xC6C6 ,0x7834 //CJK UNIFIED IDEOGRAPH - ,0xC6C7 ,0x9B44 //CJK UNIFIED IDEOGRAPH - ,0xC6C8 ,0x8FEB //CJK UNIFIED IDEOGRAPH - ,0xC6C9 ,0x7C95 //CJK UNIFIED IDEOGRAPH - ,0xC6CA ,0x5256 //CJK UNIFIED IDEOGRAPH - ,0xC6CB ,0x6251 //CJK UNIFIED IDEOGRAPH - ,0xC6CC ,0x94FA //CJK UNIFIED IDEOGRAPH - ,0xC6CD ,0x4EC6 //CJK UNIFIED IDEOGRAPH - ,0xC6CE ,0x8386 //CJK UNIFIED IDEOGRAPH - ,0xC6CF ,0x8461 //CJK UNIFIED IDEOGRAPH - ,0xC6D0 ,0x83E9 //CJK UNIFIED IDEOGRAPH - ,0xC6D1 ,0x84B2 //CJK UNIFIED IDEOGRAPH - ,0xC6D2 ,0x57D4 //CJK UNIFIED IDEOGRAPH - ,0xC6D3 ,0x6734 //CJK UNIFIED IDEOGRAPH - ,0xC6D4 ,0x5703 //CJK UNIFIED IDEOGRAPH - ,0xC6D5 ,0x666E //CJK UNIFIED IDEOGRAPH - ,0xC6D6 ,0x6D66 //CJK UNIFIED IDEOGRAPH - ,0xC6D7 ,0x8C31 //CJK UNIFIED IDEOGRAPH - ,0xC6D8 ,0x66DD //CJK UNIFIED IDEOGRAPH - ,0xC6D9 ,0x7011 //CJK UNIFIED IDEOGRAPH - ,0xC6DA ,0x671F //CJK UNIFIED IDEOGRAPH - ,0xC6DB ,0x6B3A //CJK UNIFIED IDEOGRAPH - ,0xC6DC ,0x6816 //CJK UNIFIED IDEOGRAPH - ,0xC6DD ,0x621A //CJK UNIFIED IDEOGRAPH - ,0xC6DE ,0x59BB //CJK UNIFIED IDEOGRAPH - ,0xC6DF ,0x4E03 //CJK UNIFIED IDEOGRAPH - ,0xC6E0 ,0x51C4 //CJK UNIFIED IDEOGRAPH - ,0xC6E1 ,0x6F06 //CJK UNIFIED IDEOGRAPH - ,0xC6E2 ,0x67D2 //CJK UNIFIED IDEOGRAPH - ,0xC6E3 ,0x6C8F //CJK UNIFIED IDEOGRAPH - ,0xC6E4 ,0x5176 //CJK UNIFIED IDEOGRAPH - ,0xC6E5 ,0x68CB //CJK UNIFIED IDEOGRAPH - ,0xC6E6 ,0x5947 //CJK UNIFIED IDEOGRAPH - ,0xC6E7 ,0x6B67 //CJK UNIFIED IDEOGRAPH - ,0xC6E8 ,0x7566 //CJK UNIFIED IDEOGRAPH - ,0xC6E9 ,0x5D0E //CJK UNIFIED IDEOGRAPH - ,0xC6EA ,0x8110 //CJK UNIFIED IDEOGRAPH - ,0xC6EB ,0x9F50 //CJK UNIFIED IDEOGRAPH - ,0xC6EC ,0x65D7 //CJK UNIFIED IDEOGRAPH - ,0xC6ED ,0x7948 //CJK UNIFIED IDEOGRAPH - ,0xC6EE ,0x7941 //CJK UNIFIED IDEOGRAPH - ,0xC6EF ,0x9A91 //CJK UNIFIED IDEOGRAPH - ,0xC6F0 ,0x8D77 //CJK UNIFIED IDEOGRAPH - ,0xC6F1 ,0x5C82 //CJK UNIFIED IDEOGRAPH - ,0xC6F2 ,0x4E5E //CJK UNIFIED IDEOGRAPH - ,0xC6F3 ,0x4F01 //CJK UNIFIED IDEOGRAPH - ,0xC6F4 ,0x542F //CJK UNIFIED IDEOGRAPH - ,0xC6F5 ,0x5951 //CJK UNIFIED IDEOGRAPH - ,0xC6F6 ,0x780C //CJK UNIFIED IDEOGRAPH - ,0xC6F7 ,0x5668 //CJK UNIFIED IDEOGRAPH - ,0xC6F8 ,0x6C14 //CJK UNIFIED IDEOGRAPH - ,0xC6F9 ,0x8FC4 //CJK UNIFIED IDEOGRAPH - ,0xC6FA ,0x5F03 //CJK UNIFIED IDEOGRAPH - ,0xC6FB ,0x6C7D //CJK UNIFIED IDEOGRAPH - ,0xC6FC ,0x6CE3 //CJK UNIFIED IDEOGRAPH - ,0xC6FD ,0x8BAB //CJK UNIFIED IDEOGRAPH - ,0xC6FE ,0x6390 //CJK UNIFIED IDEOGRAPH - ,0xC740 ,0x833E //CJK UNIFIED IDEOGRAPH - ,0xC741 ,0x833F //CJK UNIFIED IDEOGRAPH - ,0xC742 ,0x8341 //CJK UNIFIED IDEOGRAPH - ,0xC743 ,0x8342 //CJK UNIFIED IDEOGRAPH - ,0xC744 ,0x8344 //CJK UNIFIED IDEOGRAPH - ,0xC745 ,0x8345 //CJK UNIFIED IDEOGRAPH - ,0xC746 ,0x8348 //CJK UNIFIED IDEOGRAPH - ,0xC747 ,0x834A //CJK UNIFIED IDEOGRAPH - ,0xC748 ,0x834B //CJK UNIFIED IDEOGRAPH - ,0xC749 ,0x834C //CJK UNIFIED IDEOGRAPH - ,0xC74A ,0x834D //CJK UNIFIED IDEOGRAPH - ,0xC74B ,0x834E //CJK UNIFIED IDEOGRAPH - ,0xC74C ,0x8353 //CJK UNIFIED IDEOGRAPH - ,0xC74D ,0x8355 //CJK UNIFIED IDEOGRAPH - ,0xC74E ,0x8356 //CJK UNIFIED IDEOGRAPH - ,0xC74F ,0x8357 //CJK UNIFIED IDEOGRAPH - ,0xC750 ,0x8358 //CJK UNIFIED IDEOGRAPH - ,0xC751 ,0x8359 //CJK UNIFIED IDEOGRAPH - ,0xC752 ,0x835D //CJK UNIFIED IDEOGRAPH - ,0xC753 ,0x8362 //CJK UNIFIED IDEOGRAPH - ,0xC754 ,0x8370 //CJK UNIFIED IDEOGRAPH - ,0xC755 ,0x8371 //CJK UNIFIED IDEOGRAPH - ,0xC756 ,0x8372 //CJK UNIFIED IDEOGRAPH - ,0xC757 ,0x8373 //CJK UNIFIED IDEOGRAPH - ,0xC758 ,0x8374 //CJK UNIFIED IDEOGRAPH - ,0xC759 ,0x8375 //CJK UNIFIED IDEOGRAPH - ,0xC75A ,0x8376 //CJK UNIFIED IDEOGRAPH - ,0xC75B ,0x8379 //CJK UNIFIED IDEOGRAPH - ,0xC75C ,0x837A //CJK UNIFIED IDEOGRAPH - ,0xC75D ,0x837E //CJK UNIFIED IDEOGRAPH - ,0xC75E ,0x837F //CJK UNIFIED IDEOGRAPH - ,0xC75F ,0x8380 //CJK UNIFIED IDEOGRAPH - ,0xC760 ,0x8381 //CJK UNIFIED IDEOGRAPH - ,0xC761 ,0x8382 //CJK UNIFIED IDEOGRAPH - ,0xC762 ,0x8383 //CJK UNIFIED IDEOGRAPH - ,0xC763 ,0x8384 //CJK UNIFIED IDEOGRAPH - ,0xC764 ,0x8387 //CJK UNIFIED IDEOGRAPH - ,0xC765 ,0x8388 //CJK UNIFIED IDEOGRAPH - ,0xC766 ,0x838A //CJK UNIFIED IDEOGRAPH - ,0xC767 ,0x838B //CJK UNIFIED IDEOGRAPH - ,0xC768 ,0x838C //CJK UNIFIED IDEOGRAPH - ,0xC769 ,0x838D //CJK UNIFIED IDEOGRAPH - ,0xC76A ,0x838F //CJK UNIFIED IDEOGRAPH - ,0xC76B ,0x8390 //CJK UNIFIED IDEOGRAPH - ,0xC76C ,0x8391 //CJK UNIFIED IDEOGRAPH - ,0xC76D ,0x8394 //CJK UNIFIED IDEOGRAPH - ,0xC76E ,0x8395 //CJK UNIFIED IDEOGRAPH - ,0xC76F ,0x8396 //CJK UNIFIED IDEOGRAPH - ,0xC770 ,0x8397 //CJK UNIFIED IDEOGRAPH - ,0xC771 ,0x8399 //CJK UNIFIED IDEOGRAPH - ,0xC772 ,0x839A //CJK UNIFIED IDEOGRAPH - ,0xC773 ,0x839D //CJK UNIFIED IDEOGRAPH - ,0xC774 ,0x839F //CJK UNIFIED IDEOGRAPH - ,0xC775 ,0x83A1 //CJK UNIFIED IDEOGRAPH - ,0xC776 ,0x83A2 //CJK UNIFIED IDEOGRAPH - ,0xC777 ,0x83A3 //CJK UNIFIED IDEOGRAPH - ,0xC778 ,0x83A4 //CJK UNIFIED IDEOGRAPH - ,0xC779 ,0x83A5 //CJK UNIFIED IDEOGRAPH - ,0xC77A ,0x83A6 //CJK UNIFIED IDEOGRAPH - ,0xC77B ,0x83A7 //CJK UNIFIED IDEOGRAPH - ,0xC77C ,0x83AC //CJK UNIFIED IDEOGRAPH - ,0xC77D ,0x83AD //CJK UNIFIED IDEOGRAPH - ,0xC77E ,0x83AE //CJK UNIFIED IDEOGRAPH - ,0xC780 ,0x83AF //CJK UNIFIED IDEOGRAPH - ,0xC781 ,0x83B5 //CJK UNIFIED IDEOGRAPH - ,0xC782 ,0x83BB //CJK UNIFIED IDEOGRAPH - ,0xC783 ,0x83BE //CJK UNIFIED IDEOGRAPH - ,0xC784 ,0x83BF //CJK UNIFIED IDEOGRAPH - ,0xC785 ,0x83C2 //CJK UNIFIED IDEOGRAPH - ,0xC786 ,0x83C3 //CJK UNIFIED IDEOGRAPH - ,0xC787 ,0x83C4 //CJK UNIFIED IDEOGRAPH - ,0xC788 ,0x83C6 //CJK UNIFIED IDEOGRAPH - ,0xC789 ,0x83C8 //CJK UNIFIED IDEOGRAPH - ,0xC78A ,0x83C9 //CJK UNIFIED IDEOGRAPH - ,0xC78B ,0x83CB //CJK UNIFIED IDEOGRAPH - ,0xC78C ,0x83CD //CJK UNIFIED IDEOGRAPH - ,0xC78D ,0x83CE //CJK UNIFIED IDEOGRAPH - ,0xC78E ,0x83D0 //CJK UNIFIED IDEOGRAPH - ,0xC78F ,0x83D1 //CJK UNIFIED IDEOGRAPH - ,0xC790 ,0x83D2 //CJK UNIFIED IDEOGRAPH - ,0xC791 ,0x83D3 //CJK UNIFIED IDEOGRAPH - ,0xC792 ,0x83D5 //CJK UNIFIED IDEOGRAPH - ,0xC793 ,0x83D7 //CJK UNIFIED IDEOGRAPH - ,0xC794 ,0x83D9 //CJK UNIFIED IDEOGRAPH - ,0xC795 ,0x83DA //CJK UNIFIED IDEOGRAPH - ,0xC796 ,0x83DB //CJK UNIFIED IDEOGRAPH - ,0xC797 ,0x83DE //CJK UNIFIED IDEOGRAPH - ,0xC798 ,0x83E2 //CJK UNIFIED IDEOGRAPH - ,0xC799 ,0x83E3 //CJK UNIFIED IDEOGRAPH - ,0xC79A ,0x83E4 //CJK UNIFIED IDEOGRAPH - ,0xC79B ,0x83E6 //CJK UNIFIED IDEOGRAPH - ,0xC79C ,0x83E7 //CJK UNIFIED IDEOGRAPH - ,0xC79D ,0x83E8 //CJK UNIFIED IDEOGRAPH - ,0xC79E ,0x83EB //CJK UNIFIED IDEOGRAPH - ,0xC79F ,0x83EC //CJK UNIFIED IDEOGRAPH - ,0xC7A0 ,0x83ED //CJK UNIFIED IDEOGRAPH - ,0xC7A1 ,0x6070 //CJK UNIFIED IDEOGRAPH - ,0xC7A2 ,0x6D3D //CJK UNIFIED IDEOGRAPH - ,0xC7A3 ,0x7275 //CJK UNIFIED IDEOGRAPH - ,0xC7A4 ,0x6266 //CJK UNIFIED IDEOGRAPH - ,0xC7A5 ,0x948E //CJK UNIFIED IDEOGRAPH - ,0xC7A6 ,0x94C5 //CJK UNIFIED IDEOGRAPH - ,0xC7A7 ,0x5343 //CJK UNIFIED IDEOGRAPH - ,0xC7A8 ,0x8FC1 //CJK UNIFIED IDEOGRAPH - ,0xC7A9 ,0x7B7E //CJK UNIFIED IDEOGRAPH - ,0xC7AA ,0x4EDF //CJK UNIFIED IDEOGRAPH - ,0xC7AB ,0x8C26 //CJK UNIFIED IDEOGRAPH - ,0xC7AC ,0x4E7E //CJK UNIFIED IDEOGRAPH - ,0xC7AD ,0x9ED4 //CJK UNIFIED IDEOGRAPH - ,0xC7AE ,0x94B1 //CJK UNIFIED IDEOGRAPH - ,0xC7AF ,0x94B3 //CJK UNIFIED IDEOGRAPH - ,0xC7B0 ,0x524D //CJK UNIFIED IDEOGRAPH - ,0xC7B1 ,0x6F5C //CJK UNIFIED IDEOGRAPH - ,0xC7B2 ,0x9063 //CJK UNIFIED IDEOGRAPH - ,0xC7B3 ,0x6D45 //CJK UNIFIED IDEOGRAPH - ,0xC7B4 ,0x8C34 //CJK UNIFIED IDEOGRAPH - ,0xC7B5 ,0x5811 //CJK UNIFIED IDEOGRAPH - ,0xC7B6 ,0x5D4C //CJK UNIFIED IDEOGRAPH - ,0xC7B7 ,0x6B20 //CJK UNIFIED IDEOGRAPH - ,0xC7B8 ,0x6B49 //CJK UNIFIED IDEOGRAPH - ,0xC7B9 ,0x67AA //CJK UNIFIED IDEOGRAPH - ,0xC7BA ,0x545B //CJK UNIFIED IDEOGRAPH - ,0xC7BB ,0x8154 //CJK UNIFIED IDEOGRAPH - ,0xC7BC ,0x7F8C //CJK UNIFIED IDEOGRAPH - ,0xC7BD ,0x5899 //CJK UNIFIED IDEOGRAPH - ,0xC7BE ,0x8537 //CJK UNIFIED IDEOGRAPH - ,0xC7BF ,0x5F3A //CJK UNIFIED IDEOGRAPH - ,0xC7C0 ,0x62A2 //CJK UNIFIED IDEOGRAPH - ,0xC7C1 ,0x6A47 //CJK UNIFIED IDEOGRAPH - ,0xC7C2 ,0x9539 //CJK UNIFIED IDEOGRAPH - ,0xC7C3 ,0x6572 //CJK UNIFIED IDEOGRAPH - ,0xC7C4 ,0x6084 //CJK UNIFIED IDEOGRAPH - ,0xC7C5 ,0x6865 //CJK UNIFIED IDEOGRAPH - ,0xC7C6 ,0x77A7 //CJK UNIFIED IDEOGRAPH - ,0xC7C7 ,0x4E54 //CJK UNIFIED IDEOGRAPH - ,0xC7C8 ,0x4FA8 //CJK UNIFIED IDEOGRAPH - ,0xC7C9 ,0x5DE7 //CJK UNIFIED IDEOGRAPH - ,0xC7CA ,0x9798 //CJK UNIFIED IDEOGRAPH - ,0xC7CB ,0x64AC //CJK UNIFIED IDEOGRAPH - ,0xC7CC ,0x7FD8 //CJK UNIFIED IDEOGRAPH - ,0xC7CD ,0x5CED //CJK UNIFIED IDEOGRAPH - ,0xC7CE ,0x4FCF //CJK UNIFIED IDEOGRAPH - ,0xC7CF ,0x7A8D //CJK UNIFIED IDEOGRAPH - ,0xC7D0 ,0x5207 //CJK UNIFIED IDEOGRAPH - ,0xC7D1 ,0x8304 //CJK UNIFIED IDEOGRAPH - ,0xC7D2 ,0x4E14 //CJK UNIFIED IDEOGRAPH - ,0xC7D3 ,0x602F //CJK UNIFIED IDEOGRAPH - ,0xC7D4 ,0x7A83 //CJK UNIFIED IDEOGRAPH - ,0xC7D5 ,0x94A6 //CJK UNIFIED IDEOGRAPH - ,0xC7D6 ,0x4FB5 //CJK UNIFIED IDEOGRAPH - ,0xC7D7 ,0x4EB2 //CJK UNIFIED IDEOGRAPH - ,0xC7D8 ,0x79E6 //CJK UNIFIED IDEOGRAPH - ,0xC7D9 ,0x7434 //CJK UNIFIED IDEOGRAPH - ,0xC7DA ,0x52E4 //CJK UNIFIED IDEOGRAPH - ,0xC7DB ,0x82B9 //CJK UNIFIED IDEOGRAPH - ,0xC7DC ,0x64D2 //CJK UNIFIED IDEOGRAPH - ,0xC7DD ,0x79BD //CJK UNIFIED IDEOGRAPH - ,0xC7DE ,0x5BDD //CJK UNIFIED IDEOGRAPH - ,0xC7DF ,0x6C81 //CJK UNIFIED IDEOGRAPH - ,0xC7E0 ,0x9752 //CJK UNIFIED IDEOGRAPH - ,0xC7E1 ,0x8F7B //CJK UNIFIED IDEOGRAPH - ,0xC7E2 ,0x6C22 //CJK UNIFIED IDEOGRAPH - ,0xC7E3 ,0x503E //CJK UNIFIED IDEOGRAPH - ,0xC7E4 ,0x537F //CJK UNIFIED IDEOGRAPH - ,0xC7E5 ,0x6E05 //CJK UNIFIED IDEOGRAPH - ,0xC7E6 ,0x64CE //CJK UNIFIED IDEOGRAPH - ,0xC7E7 ,0x6674 //CJK UNIFIED IDEOGRAPH - ,0xC7E8 ,0x6C30 //CJK UNIFIED IDEOGRAPH - ,0xC7E9 ,0x60C5 //CJK UNIFIED IDEOGRAPH - ,0xC7EA ,0x9877 //CJK UNIFIED IDEOGRAPH - ,0xC7EB ,0x8BF7 //CJK UNIFIED IDEOGRAPH - ,0xC7EC ,0x5E86 //CJK UNIFIED IDEOGRAPH - ,0xC7ED ,0x743C //CJK UNIFIED IDEOGRAPH - ,0xC7EE ,0x7A77 //CJK UNIFIED IDEOGRAPH - ,0xC7EF ,0x79CB //CJK UNIFIED IDEOGRAPH - ,0xC7F0 ,0x4E18 //CJK UNIFIED IDEOGRAPH - ,0xC7F1 ,0x90B1 //CJK UNIFIED IDEOGRAPH - ,0xC7F2 ,0x7403 //CJK UNIFIED IDEOGRAPH - ,0xC7F3 ,0x6C42 //CJK UNIFIED IDEOGRAPH - ,0xC7F4 ,0x56DA //CJK UNIFIED IDEOGRAPH - ,0xC7F5 ,0x914B //CJK UNIFIED IDEOGRAPH - ,0xC7F6 ,0x6CC5 //CJK UNIFIED IDEOGRAPH - ,0xC7F7 ,0x8D8B //CJK UNIFIED IDEOGRAPH - ,0xC7F8 ,0x533A //CJK UNIFIED IDEOGRAPH - ,0xC7F9 ,0x86C6 //CJK UNIFIED IDEOGRAPH - ,0xC7FA ,0x66F2 //CJK UNIFIED IDEOGRAPH - ,0xC7FB ,0x8EAF //CJK UNIFIED IDEOGRAPH - ,0xC7FC ,0x5C48 //CJK UNIFIED IDEOGRAPH - ,0xC7FD ,0x9A71 //CJK UNIFIED IDEOGRAPH - ,0xC7FE ,0x6E20 //CJK UNIFIED IDEOGRAPH - ,0xC840 ,0x83EE //CJK UNIFIED IDEOGRAPH - ,0xC841 ,0x83EF //CJK UNIFIED IDEOGRAPH - ,0xC842 ,0x83F3 //CJK UNIFIED IDEOGRAPH - ,0xC843 ,0x83F4 //CJK UNIFIED IDEOGRAPH - ,0xC844 ,0x83F5 //CJK UNIFIED IDEOGRAPH - ,0xC845 ,0x83F6 //CJK UNIFIED IDEOGRAPH - ,0xC846 ,0x83F7 //CJK UNIFIED IDEOGRAPH - ,0xC847 ,0x83FA //CJK UNIFIED IDEOGRAPH - ,0xC848 ,0x83FB //CJK UNIFIED IDEOGRAPH - ,0xC849 ,0x83FC //CJK UNIFIED IDEOGRAPH - ,0xC84A ,0x83FE //CJK UNIFIED IDEOGRAPH - ,0xC84B ,0x83FF //CJK UNIFIED IDEOGRAPH - ,0xC84C ,0x8400 //CJK UNIFIED IDEOGRAPH - ,0xC84D ,0x8402 //CJK UNIFIED IDEOGRAPH - ,0xC84E ,0x8405 //CJK UNIFIED IDEOGRAPH - ,0xC84F ,0x8407 //CJK UNIFIED IDEOGRAPH - ,0xC850 ,0x8408 //CJK UNIFIED IDEOGRAPH - ,0xC851 ,0x8409 //CJK UNIFIED IDEOGRAPH - ,0xC852 ,0x840A //CJK UNIFIED IDEOGRAPH - ,0xC853 ,0x8410 //CJK UNIFIED IDEOGRAPH - ,0xC854 ,0x8412 //CJK UNIFIED IDEOGRAPH - ,0xC855 ,0x8413 //CJK UNIFIED IDEOGRAPH - ,0xC856 ,0x8414 //CJK UNIFIED IDEOGRAPH - ,0xC857 ,0x8415 //CJK UNIFIED IDEOGRAPH - ,0xC858 ,0x8416 //CJK UNIFIED IDEOGRAPH - ,0xC859 ,0x8417 //CJK UNIFIED IDEOGRAPH - ,0xC85A ,0x8419 //CJK UNIFIED IDEOGRAPH - ,0xC85B ,0x841A //CJK UNIFIED IDEOGRAPH - ,0xC85C ,0x841B //CJK UNIFIED IDEOGRAPH - ,0xC85D ,0x841E //CJK UNIFIED IDEOGRAPH - ,0xC85E ,0x841F //CJK UNIFIED IDEOGRAPH - ,0xC85F ,0x8420 //CJK UNIFIED IDEOGRAPH - ,0xC860 ,0x8421 //CJK UNIFIED IDEOGRAPH - ,0xC861 ,0x8422 //CJK UNIFIED IDEOGRAPH - ,0xC862 ,0x8423 //CJK UNIFIED IDEOGRAPH - ,0xC863 ,0x8429 //CJK UNIFIED IDEOGRAPH - ,0xC864 ,0x842A //CJK UNIFIED IDEOGRAPH - ,0xC865 ,0x842B //CJK UNIFIED IDEOGRAPH - ,0xC866 ,0x842C //CJK UNIFIED IDEOGRAPH - ,0xC867 ,0x842D //CJK UNIFIED IDEOGRAPH - ,0xC868 ,0x842E //CJK UNIFIED IDEOGRAPH - ,0xC869 ,0x842F //CJK UNIFIED IDEOGRAPH - ,0xC86A ,0x8430 //CJK UNIFIED IDEOGRAPH - ,0xC86B ,0x8432 //CJK UNIFIED IDEOGRAPH - ,0xC86C ,0x8433 //CJK UNIFIED IDEOGRAPH - ,0xC86D ,0x8434 //CJK UNIFIED IDEOGRAPH - ,0xC86E ,0x8435 //CJK UNIFIED IDEOGRAPH - ,0xC86F ,0x8436 //CJK UNIFIED IDEOGRAPH - ,0xC870 ,0x8437 //CJK UNIFIED IDEOGRAPH - ,0xC871 ,0x8439 //CJK UNIFIED IDEOGRAPH - ,0xC872 ,0x843A //CJK UNIFIED IDEOGRAPH - ,0xC873 ,0x843B //CJK UNIFIED IDEOGRAPH - ,0xC874 ,0x843E //CJK UNIFIED IDEOGRAPH - ,0xC875 ,0x843F //CJK UNIFIED IDEOGRAPH - ,0xC876 ,0x8440 //CJK UNIFIED IDEOGRAPH - ,0xC877 ,0x8441 //CJK UNIFIED IDEOGRAPH - ,0xC878 ,0x8442 //CJK UNIFIED IDEOGRAPH - ,0xC879 ,0x8443 //CJK UNIFIED IDEOGRAPH - ,0xC87A ,0x8444 //CJK UNIFIED IDEOGRAPH - ,0xC87B ,0x8445 //CJK UNIFIED IDEOGRAPH - ,0xC87C ,0x8447 //CJK UNIFIED IDEOGRAPH - ,0xC87D ,0x8448 //CJK UNIFIED IDEOGRAPH - ,0xC87E ,0x8449 //CJK UNIFIED IDEOGRAPH - ,0xC880 ,0x844A //CJK UNIFIED IDEOGRAPH - ,0xC881 ,0x844B //CJK UNIFIED IDEOGRAPH - ,0xC882 ,0x844C //CJK UNIFIED IDEOGRAPH - ,0xC883 ,0x844D //CJK UNIFIED IDEOGRAPH - ,0xC884 ,0x844E //CJK UNIFIED IDEOGRAPH - ,0xC885 ,0x844F //CJK UNIFIED IDEOGRAPH - ,0xC886 ,0x8450 //CJK UNIFIED IDEOGRAPH - ,0xC887 ,0x8452 //CJK UNIFIED IDEOGRAPH - ,0xC888 ,0x8453 //CJK UNIFIED IDEOGRAPH - ,0xC889 ,0x8454 //CJK UNIFIED IDEOGRAPH - ,0xC88A ,0x8455 //CJK UNIFIED IDEOGRAPH - ,0xC88B ,0x8456 //CJK UNIFIED IDEOGRAPH - ,0xC88C ,0x8458 //CJK UNIFIED IDEOGRAPH - ,0xC88D ,0x845D //CJK UNIFIED IDEOGRAPH - ,0xC88E ,0x845E //CJK UNIFIED IDEOGRAPH - ,0xC88F ,0x845F //CJK UNIFIED IDEOGRAPH - ,0xC890 ,0x8460 //CJK UNIFIED IDEOGRAPH - ,0xC891 ,0x8462 //CJK UNIFIED IDEOGRAPH - ,0xC892 ,0x8464 //CJK UNIFIED IDEOGRAPH - ,0xC893 ,0x8465 //CJK UNIFIED IDEOGRAPH - ,0xC894 ,0x8466 //CJK UNIFIED IDEOGRAPH - ,0xC895 ,0x8467 //CJK UNIFIED IDEOGRAPH - ,0xC896 ,0x8468 //CJK UNIFIED IDEOGRAPH - ,0xC897 ,0x846A //CJK UNIFIED IDEOGRAPH - ,0xC898 ,0x846E //CJK UNIFIED IDEOGRAPH - ,0xC899 ,0x846F //CJK UNIFIED IDEOGRAPH - ,0xC89A ,0x8470 //CJK UNIFIED IDEOGRAPH - ,0xC89B ,0x8472 //CJK UNIFIED IDEOGRAPH - ,0xC89C ,0x8474 //CJK UNIFIED IDEOGRAPH - ,0xC89D ,0x8477 //CJK UNIFIED IDEOGRAPH - ,0xC89E ,0x8479 //CJK UNIFIED IDEOGRAPH - ,0xC89F ,0x847B //CJK UNIFIED IDEOGRAPH - ,0xC8A0 ,0x847C //CJK UNIFIED IDEOGRAPH - ,0xC8A1 ,0x53D6 //CJK UNIFIED IDEOGRAPH - ,0xC8A2 ,0x5A36 //CJK UNIFIED IDEOGRAPH - ,0xC8A3 ,0x9F8B //CJK UNIFIED IDEOGRAPH - ,0xC8A4 ,0x8DA3 //CJK UNIFIED IDEOGRAPH - ,0xC8A5 ,0x53BB //CJK UNIFIED IDEOGRAPH - ,0xC8A6 ,0x5708 //CJK UNIFIED IDEOGRAPH - ,0xC8A7 ,0x98A7 //CJK UNIFIED IDEOGRAPH - ,0xC8A8 ,0x6743 //CJK UNIFIED IDEOGRAPH - ,0xC8A9 ,0x919B //CJK UNIFIED IDEOGRAPH - ,0xC8AA ,0x6CC9 //CJK UNIFIED IDEOGRAPH - ,0xC8AB ,0x5168 //CJK UNIFIED IDEOGRAPH - ,0xC8AC ,0x75CA //CJK UNIFIED IDEOGRAPH - ,0xC8AD ,0x62F3 //CJK UNIFIED IDEOGRAPH - ,0xC8AE ,0x72AC //CJK UNIFIED IDEOGRAPH - ,0xC8AF ,0x5238 //CJK UNIFIED IDEOGRAPH - ,0xC8B0 ,0x529D //CJK UNIFIED IDEOGRAPH - ,0xC8B1 ,0x7F3A //CJK UNIFIED IDEOGRAPH - ,0xC8B2 ,0x7094 //CJK UNIFIED IDEOGRAPH - ,0xC8B3 ,0x7638 //CJK UNIFIED IDEOGRAPH - ,0xC8B4 ,0x5374 //CJK UNIFIED IDEOGRAPH - ,0xC8B5 ,0x9E4A //CJK UNIFIED IDEOGRAPH - ,0xC8B6 ,0x69B7 //CJK UNIFIED IDEOGRAPH - ,0xC8B7 ,0x786E //CJK UNIFIED IDEOGRAPH - ,0xC8B8 ,0x96C0 //CJK UNIFIED IDEOGRAPH - ,0xC8B9 ,0x88D9 //CJK UNIFIED IDEOGRAPH - ,0xC8BA ,0x7FA4 //CJK UNIFIED IDEOGRAPH - ,0xC8BB ,0x7136 //CJK UNIFIED IDEOGRAPH - ,0xC8BC ,0x71C3 //CJK UNIFIED IDEOGRAPH - ,0xC8BD ,0x5189 //CJK UNIFIED IDEOGRAPH - ,0xC8BE ,0x67D3 //CJK UNIFIED IDEOGRAPH - ,0xC8BF ,0x74E4 //CJK UNIFIED IDEOGRAPH - ,0xC8C0 ,0x58E4 //CJK UNIFIED IDEOGRAPH - ,0xC8C1 ,0x6518 //CJK UNIFIED IDEOGRAPH - ,0xC8C2 ,0x56B7 //CJK UNIFIED IDEOGRAPH - ,0xC8C3 ,0x8BA9 //CJK UNIFIED IDEOGRAPH - ,0xC8C4 ,0x9976 //CJK UNIFIED IDEOGRAPH - ,0xC8C5 ,0x6270 //CJK UNIFIED IDEOGRAPH - ,0xC8C6 ,0x7ED5 //CJK UNIFIED IDEOGRAPH - ,0xC8C7 ,0x60F9 //CJK UNIFIED IDEOGRAPH - ,0xC8C8 ,0x70ED //CJK UNIFIED IDEOGRAPH - ,0xC8C9 ,0x58EC //CJK UNIFIED IDEOGRAPH - ,0xC8CA ,0x4EC1 //CJK UNIFIED IDEOGRAPH - ,0xC8CB ,0x4EBA //CJK UNIFIED IDEOGRAPH - ,0xC8CC ,0x5FCD //CJK UNIFIED IDEOGRAPH - ,0xC8CD ,0x97E7 //CJK UNIFIED IDEOGRAPH - ,0xC8CE ,0x4EFB //CJK UNIFIED IDEOGRAPH - ,0xC8CF ,0x8BA4 //CJK UNIFIED IDEOGRAPH - ,0xC8D0 ,0x5203 //CJK UNIFIED IDEOGRAPH - ,0xC8D1 ,0x598A //CJK UNIFIED IDEOGRAPH - ,0xC8D2 ,0x7EAB //CJK UNIFIED IDEOGRAPH - ,0xC8D3 ,0x6254 //CJK UNIFIED IDEOGRAPH - ,0xC8D4 ,0x4ECD //CJK UNIFIED IDEOGRAPH - ,0xC8D5 ,0x65E5 //CJK UNIFIED IDEOGRAPH - ,0xC8D6 ,0x620E //CJK UNIFIED IDEOGRAPH - ,0xC8D7 ,0x8338 //CJK UNIFIED IDEOGRAPH - ,0xC8D8 ,0x84C9 //CJK UNIFIED IDEOGRAPH - ,0xC8D9 ,0x8363 //CJK UNIFIED IDEOGRAPH - ,0xC8DA ,0x878D //CJK UNIFIED IDEOGRAPH - ,0xC8DB ,0x7194 //CJK UNIFIED IDEOGRAPH - ,0xC8DC ,0x6EB6 //CJK UNIFIED IDEOGRAPH - ,0xC8DD ,0x5BB9 //CJK UNIFIED IDEOGRAPH - ,0xC8DE ,0x7ED2 //CJK UNIFIED IDEOGRAPH - ,0xC8DF ,0x5197 //CJK UNIFIED IDEOGRAPH - ,0xC8E0 ,0x63C9 //CJK UNIFIED IDEOGRAPH - ,0xC8E1 ,0x67D4 //CJK UNIFIED IDEOGRAPH - ,0xC8E2 ,0x8089 //CJK UNIFIED IDEOGRAPH - ,0xC8E3 ,0x8339 //CJK UNIFIED IDEOGRAPH - ,0xC8E4 ,0x8815 //CJK UNIFIED IDEOGRAPH - ,0xC8E5 ,0x5112 //CJK UNIFIED IDEOGRAPH - ,0xC8E6 ,0x5B7A //CJK UNIFIED IDEOGRAPH - ,0xC8E7 ,0x5982 //CJK UNIFIED IDEOGRAPH - ,0xC8E8 ,0x8FB1 //CJK UNIFIED IDEOGRAPH - ,0xC8E9 ,0x4E73 //CJK UNIFIED IDEOGRAPH - ,0xC8EA ,0x6C5D //CJK UNIFIED IDEOGRAPH - ,0xC8EB ,0x5165 //CJK UNIFIED IDEOGRAPH - ,0xC8EC ,0x8925 //CJK UNIFIED IDEOGRAPH - ,0xC8ED ,0x8F6F //CJK UNIFIED IDEOGRAPH - ,0xC8EE ,0x962E //CJK UNIFIED IDEOGRAPH - ,0xC8EF ,0x854A //CJK UNIFIED IDEOGRAPH - ,0xC8F0 ,0x745E //CJK UNIFIED IDEOGRAPH - ,0xC8F1 ,0x9510 //CJK UNIFIED IDEOGRAPH - ,0xC8F2 ,0x95F0 //CJK UNIFIED IDEOGRAPH - ,0xC8F3 ,0x6DA6 //CJK UNIFIED IDEOGRAPH - ,0xC8F4 ,0x82E5 //CJK UNIFIED IDEOGRAPH - ,0xC8F5 ,0x5F31 //CJK UNIFIED IDEOGRAPH - ,0xC8F6 ,0x6492 //CJK UNIFIED IDEOGRAPH - ,0xC8F7 ,0x6D12 //CJK UNIFIED IDEOGRAPH - ,0xC8F8 ,0x8428 //CJK UNIFIED IDEOGRAPH - ,0xC8F9 ,0x816E //CJK UNIFIED IDEOGRAPH - ,0xC8FA ,0x9CC3 //CJK UNIFIED IDEOGRAPH - ,0xC8FB ,0x585E //CJK UNIFIED IDEOGRAPH - ,0xC8FC ,0x8D5B //CJK UNIFIED IDEOGRAPH - ,0xC8FD ,0x4E09 //CJK UNIFIED IDEOGRAPH - ,0xC8FE ,0x53C1 //CJK UNIFIED IDEOGRAPH - ,0xC940 ,0x847D //CJK UNIFIED IDEOGRAPH - ,0xC941 ,0x847E //CJK UNIFIED IDEOGRAPH - ,0xC942 ,0x847F //CJK UNIFIED IDEOGRAPH - ,0xC943 ,0x8480 //CJK UNIFIED IDEOGRAPH - ,0xC944 ,0x8481 //CJK UNIFIED IDEOGRAPH - ,0xC945 ,0x8483 //CJK UNIFIED IDEOGRAPH - ,0xC946 ,0x8484 //CJK UNIFIED IDEOGRAPH - ,0xC947 ,0x8485 //CJK UNIFIED IDEOGRAPH - ,0xC948 ,0x8486 //CJK UNIFIED IDEOGRAPH - ,0xC949 ,0x848A //CJK UNIFIED IDEOGRAPH - ,0xC94A ,0x848D //CJK UNIFIED IDEOGRAPH - ,0xC94B ,0x848F //CJK UNIFIED IDEOGRAPH - ,0xC94C ,0x8490 //CJK UNIFIED IDEOGRAPH - ,0xC94D ,0x8491 //CJK UNIFIED IDEOGRAPH - ,0xC94E ,0x8492 //CJK UNIFIED IDEOGRAPH - ,0xC94F ,0x8493 //CJK UNIFIED IDEOGRAPH - ,0xC950 ,0x8494 //CJK UNIFIED IDEOGRAPH - ,0xC951 ,0x8495 //CJK UNIFIED IDEOGRAPH - ,0xC952 ,0x8496 //CJK UNIFIED IDEOGRAPH - ,0xC953 ,0x8498 //CJK UNIFIED IDEOGRAPH - ,0xC954 ,0x849A //CJK UNIFIED IDEOGRAPH - ,0xC955 ,0x849B //CJK UNIFIED IDEOGRAPH - ,0xC956 ,0x849D //CJK UNIFIED IDEOGRAPH - ,0xC957 ,0x849E //CJK UNIFIED IDEOGRAPH - ,0xC958 ,0x849F //CJK UNIFIED IDEOGRAPH - ,0xC959 ,0x84A0 //CJK UNIFIED IDEOGRAPH - ,0xC95A ,0x84A2 //CJK UNIFIED IDEOGRAPH - ,0xC95B ,0x84A3 //CJK UNIFIED IDEOGRAPH - ,0xC95C ,0x84A4 //CJK UNIFIED IDEOGRAPH - ,0xC95D ,0x84A5 //CJK UNIFIED IDEOGRAPH - ,0xC95E ,0x84A6 //CJK UNIFIED IDEOGRAPH - ,0xC95F ,0x84A7 //CJK UNIFIED IDEOGRAPH - ,0xC960 ,0x84A8 //CJK UNIFIED IDEOGRAPH - ,0xC961 ,0x84A9 //CJK UNIFIED IDEOGRAPH - ,0xC962 ,0x84AA //CJK UNIFIED IDEOGRAPH - ,0xC963 ,0x84AB //CJK UNIFIED IDEOGRAPH - ,0xC964 ,0x84AC //CJK UNIFIED IDEOGRAPH - ,0xC965 ,0x84AD //CJK UNIFIED IDEOGRAPH - ,0xC966 ,0x84AE //CJK UNIFIED IDEOGRAPH - ,0xC967 ,0x84B0 //CJK UNIFIED IDEOGRAPH - ,0xC968 ,0x84B1 //CJK UNIFIED IDEOGRAPH - ,0xC969 ,0x84B3 //CJK UNIFIED IDEOGRAPH - ,0xC96A ,0x84B5 //CJK UNIFIED IDEOGRAPH - ,0xC96B ,0x84B6 //CJK UNIFIED IDEOGRAPH - ,0xC96C ,0x84B7 //CJK UNIFIED IDEOGRAPH - ,0xC96D ,0x84BB //CJK UNIFIED IDEOGRAPH - ,0xC96E ,0x84BC //CJK UNIFIED IDEOGRAPH - ,0xC96F ,0x84BE //CJK UNIFIED IDEOGRAPH - ,0xC970 ,0x84C0 //CJK UNIFIED IDEOGRAPH - ,0xC971 ,0x84C2 //CJK UNIFIED IDEOGRAPH - ,0xC972 ,0x84C3 //CJK UNIFIED IDEOGRAPH - ,0xC973 ,0x84C5 //CJK UNIFIED IDEOGRAPH - ,0xC974 ,0x84C6 //CJK UNIFIED IDEOGRAPH - ,0xC975 ,0x84C7 //CJK UNIFIED IDEOGRAPH - ,0xC976 ,0x84C8 //CJK UNIFIED IDEOGRAPH - ,0xC977 ,0x84CB //CJK UNIFIED IDEOGRAPH - ,0xC978 ,0x84CC //CJK UNIFIED IDEOGRAPH - ,0xC979 ,0x84CE //CJK UNIFIED IDEOGRAPH - ,0xC97A ,0x84CF //CJK UNIFIED IDEOGRAPH - ,0xC97B ,0x84D2 //CJK UNIFIED IDEOGRAPH - ,0xC97C ,0x84D4 //CJK UNIFIED IDEOGRAPH - ,0xC97D ,0x84D5 //CJK UNIFIED IDEOGRAPH - ,0xC97E ,0x84D7 //CJK UNIFIED IDEOGRAPH - ,0xC980 ,0x84D8 //CJK UNIFIED IDEOGRAPH - ,0xC981 ,0x84D9 //CJK UNIFIED IDEOGRAPH - ,0xC982 ,0x84DA //CJK UNIFIED IDEOGRAPH - ,0xC983 ,0x84DB //CJK UNIFIED IDEOGRAPH - ,0xC984 ,0x84DC //CJK UNIFIED IDEOGRAPH - ,0xC985 ,0x84DE //CJK UNIFIED IDEOGRAPH - ,0xC986 ,0x84E1 //CJK UNIFIED IDEOGRAPH - ,0xC987 ,0x84E2 //CJK UNIFIED IDEOGRAPH - ,0xC988 ,0x84E4 //CJK UNIFIED IDEOGRAPH - ,0xC989 ,0x84E7 //CJK UNIFIED IDEOGRAPH - ,0xC98A ,0x84E8 //CJK UNIFIED IDEOGRAPH - ,0xC98B ,0x84E9 //CJK UNIFIED IDEOGRAPH - ,0xC98C ,0x84EA //CJK UNIFIED IDEOGRAPH - ,0xC98D ,0x84EB //CJK UNIFIED IDEOGRAPH - ,0xC98E ,0x84ED //CJK UNIFIED IDEOGRAPH - ,0xC98F ,0x84EE //CJK UNIFIED IDEOGRAPH - ,0xC990 ,0x84EF //CJK UNIFIED IDEOGRAPH - ,0xC991 ,0x84F1 //CJK UNIFIED IDEOGRAPH - ,0xC992 ,0x84F2 //CJK UNIFIED IDEOGRAPH - ,0xC993 ,0x84F3 //CJK UNIFIED IDEOGRAPH - ,0xC994 ,0x84F4 //CJK UNIFIED IDEOGRAPH - ,0xC995 ,0x84F5 //CJK UNIFIED IDEOGRAPH - ,0xC996 ,0x84F6 //CJK UNIFIED IDEOGRAPH - ,0xC997 ,0x84F7 //CJK UNIFIED IDEOGRAPH - ,0xC998 ,0x84F8 //CJK UNIFIED IDEOGRAPH - ,0xC999 ,0x84F9 //CJK UNIFIED IDEOGRAPH - ,0xC99A ,0x84FA //CJK UNIFIED IDEOGRAPH - ,0xC99B ,0x84FB //CJK UNIFIED IDEOGRAPH - ,0xC99C ,0x84FD //CJK UNIFIED IDEOGRAPH - ,0xC99D ,0x84FE //CJK UNIFIED IDEOGRAPH - ,0xC99E ,0x8500 //CJK UNIFIED IDEOGRAPH - ,0xC99F ,0x8501 //CJK UNIFIED IDEOGRAPH - ,0xC9A0 ,0x8502 //CJK UNIFIED IDEOGRAPH - ,0xC9A1 ,0x4F1E //CJK UNIFIED IDEOGRAPH - ,0xC9A2 ,0x6563 //CJK UNIFIED IDEOGRAPH - ,0xC9A3 ,0x6851 //CJK UNIFIED IDEOGRAPH - ,0xC9A4 ,0x55D3 //CJK UNIFIED IDEOGRAPH - ,0xC9A5 ,0x4E27 //CJK UNIFIED IDEOGRAPH - ,0xC9A6 ,0x6414 //CJK UNIFIED IDEOGRAPH - ,0xC9A7 ,0x9A9A //CJK UNIFIED IDEOGRAPH - ,0xC9A8 ,0x626B //CJK UNIFIED IDEOGRAPH - ,0xC9A9 ,0x5AC2 //CJK UNIFIED IDEOGRAPH - ,0xC9AA ,0x745F //CJK UNIFIED IDEOGRAPH - ,0xC9AB ,0x8272 //CJK UNIFIED IDEOGRAPH - ,0xC9AC ,0x6DA9 //CJK UNIFIED IDEOGRAPH - ,0xC9AD ,0x68EE //CJK UNIFIED IDEOGRAPH - ,0xC9AE ,0x50E7 //CJK UNIFIED IDEOGRAPH - ,0xC9AF ,0x838E //CJK UNIFIED IDEOGRAPH - ,0xC9B0 ,0x7802 //CJK UNIFIED IDEOGRAPH - ,0xC9B1 ,0x6740 //CJK UNIFIED IDEOGRAPH - ,0xC9B2 ,0x5239 //CJK UNIFIED IDEOGRAPH - ,0xC9B3 ,0x6C99 //CJK UNIFIED IDEOGRAPH - ,0xC9B4 ,0x7EB1 //CJK UNIFIED IDEOGRAPH - ,0xC9B5 ,0x50BB //CJK UNIFIED IDEOGRAPH - ,0xC9B6 ,0x5565 //CJK UNIFIED IDEOGRAPH - ,0xC9B7 ,0x715E //CJK UNIFIED IDEOGRAPH - ,0xC9B8 ,0x7B5B //CJK UNIFIED IDEOGRAPH - ,0xC9B9 ,0x6652 //CJK UNIFIED IDEOGRAPH - ,0xC9BA ,0x73CA //CJK UNIFIED IDEOGRAPH - ,0xC9BB ,0x82EB //CJK UNIFIED IDEOGRAPH - ,0xC9BC ,0x6749 //CJK UNIFIED IDEOGRAPH - ,0xC9BD ,0x5C71 //CJK UNIFIED IDEOGRAPH - ,0xC9BE ,0x5220 //CJK UNIFIED IDEOGRAPH - ,0xC9BF ,0x717D //CJK UNIFIED IDEOGRAPH - ,0xC9C0 ,0x886B //CJK UNIFIED IDEOGRAPH - ,0xC9C1 ,0x95EA //CJK UNIFIED IDEOGRAPH - ,0xC9C2 ,0x9655 //CJK UNIFIED IDEOGRAPH - ,0xC9C3 ,0x64C5 //CJK UNIFIED IDEOGRAPH - ,0xC9C4 ,0x8D61 //CJK UNIFIED IDEOGRAPH - ,0xC9C5 ,0x81B3 //CJK UNIFIED IDEOGRAPH - ,0xC9C6 ,0x5584 //CJK UNIFIED IDEOGRAPH - ,0xC9C7 ,0x6C55 //CJK UNIFIED IDEOGRAPH - ,0xC9C8 ,0x6247 //CJK UNIFIED IDEOGRAPH - ,0xC9C9 ,0x7F2E //CJK UNIFIED IDEOGRAPH - ,0xC9CA ,0x5892 //CJK UNIFIED IDEOGRAPH - ,0xC9CB ,0x4F24 //CJK UNIFIED IDEOGRAPH - ,0xC9CC ,0x5546 //CJK UNIFIED IDEOGRAPH - ,0xC9CD ,0x8D4F //CJK UNIFIED IDEOGRAPH - ,0xC9CE ,0x664C //CJK UNIFIED IDEOGRAPH - ,0xC9CF ,0x4E0A //CJK UNIFIED IDEOGRAPH - ,0xC9D0 ,0x5C1A //CJK UNIFIED IDEOGRAPH - ,0xC9D1 ,0x88F3 //CJK UNIFIED IDEOGRAPH - ,0xC9D2 ,0x68A2 //CJK UNIFIED IDEOGRAPH - ,0xC9D3 ,0x634E //CJK UNIFIED IDEOGRAPH - ,0xC9D4 ,0x7A0D //CJK UNIFIED IDEOGRAPH - ,0xC9D5 ,0x70E7 //CJK UNIFIED IDEOGRAPH - ,0xC9D6 ,0x828D //CJK UNIFIED IDEOGRAPH - ,0xC9D7 ,0x52FA //CJK UNIFIED IDEOGRAPH - ,0xC9D8 ,0x97F6 //CJK UNIFIED IDEOGRAPH - ,0xC9D9 ,0x5C11 //CJK UNIFIED IDEOGRAPH - ,0xC9DA ,0x54E8 //CJK UNIFIED IDEOGRAPH - ,0xC9DB ,0x90B5 //CJK UNIFIED IDEOGRAPH - ,0xC9DC ,0x7ECD //CJK UNIFIED IDEOGRAPH - ,0xC9DD ,0x5962 //CJK UNIFIED IDEOGRAPH - ,0xC9DE ,0x8D4A //CJK UNIFIED IDEOGRAPH - ,0xC9DF ,0x86C7 //CJK UNIFIED IDEOGRAPH - ,0xC9E0 ,0x820C //CJK UNIFIED IDEOGRAPH - ,0xC9E1 ,0x820D //CJK UNIFIED IDEOGRAPH - ,0xC9E2 ,0x8D66 //CJK UNIFIED IDEOGRAPH - ,0xC9E3 ,0x6444 //CJK UNIFIED IDEOGRAPH - ,0xC9E4 ,0x5C04 //CJK UNIFIED IDEOGRAPH - ,0xC9E5 ,0x6151 //CJK UNIFIED IDEOGRAPH - ,0xC9E6 ,0x6D89 //CJK UNIFIED IDEOGRAPH - ,0xC9E7 ,0x793E //CJK UNIFIED IDEOGRAPH - ,0xC9E8 ,0x8BBE //CJK UNIFIED IDEOGRAPH - ,0xC9E9 ,0x7837 //CJK UNIFIED IDEOGRAPH - ,0xC9EA ,0x7533 //CJK UNIFIED IDEOGRAPH - ,0xC9EB ,0x547B //CJK UNIFIED IDEOGRAPH - ,0xC9EC ,0x4F38 //CJK UNIFIED IDEOGRAPH - ,0xC9ED ,0x8EAB //CJK UNIFIED IDEOGRAPH - ,0xC9EE ,0x6DF1 //CJK UNIFIED IDEOGRAPH - ,0xC9EF ,0x5A20 //CJK UNIFIED IDEOGRAPH - ,0xC9F0 ,0x7EC5 //CJK UNIFIED IDEOGRAPH - ,0xC9F1 ,0x795E //CJK UNIFIED IDEOGRAPH - ,0xC9F2 ,0x6C88 //CJK UNIFIED IDEOGRAPH - ,0xC9F3 ,0x5BA1 //CJK UNIFIED IDEOGRAPH - ,0xC9F4 ,0x5A76 //CJK UNIFIED IDEOGRAPH - ,0xC9F5 ,0x751A //CJK UNIFIED IDEOGRAPH - ,0xC9F6 ,0x80BE //CJK UNIFIED IDEOGRAPH - ,0xC9F7 ,0x614E //CJK UNIFIED IDEOGRAPH - ,0xC9F8 ,0x6E17 //CJK UNIFIED IDEOGRAPH - ,0xC9F9 ,0x58F0 //CJK UNIFIED IDEOGRAPH - ,0xC9FA ,0x751F //CJK UNIFIED IDEOGRAPH - ,0xC9FB ,0x7525 //CJK UNIFIED IDEOGRAPH - ,0xC9FC ,0x7272 //CJK UNIFIED IDEOGRAPH - ,0xC9FD ,0x5347 //CJK UNIFIED IDEOGRAPH - ,0xC9FE ,0x7EF3 //CJK UNIFIED IDEOGRAPH - ,0xCA40 ,0x8503 //CJK UNIFIED IDEOGRAPH - ,0xCA41 ,0x8504 //CJK UNIFIED IDEOGRAPH - ,0xCA42 ,0x8505 //CJK UNIFIED IDEOGRAPH - ,0xCA43 ,0x8506 //CJK UNIFIED IDEOGRAPH - ,0xCA44 ,0x8507 //CJK UNIFIED IDEOGRAPH - ,0xCA45 ,0x8508 //CJK UNIFIED IDEOGRAPH - ,0xCA46 ,0x8509 //CJK UNIFIED IDEOGRAPH - ,0xCA47 ,0x850A //CJK UNIFIED IDEOGRAPH - ,0xCA48 ,0x850B //CJK UNIFIED IDEOGRAPH - ,0xCA49 ,0x850D //CJK UNIFIED IDEOGRAPH - ,0xCA4A ,0x850E //CJK UNIFIED IDEOGRAPH - ,0xCA4B ,0x850F //CJK UNIFIED IDEOGRAPH - ,0xCA4C ,0x8510 //CJK UNIFIED IDEOGRAPH - ,0xCA4D ,0x8512 //CJK UNIFIED IDEOGRAPH - ,0xCA4E ,0x8514 //CJK UNIFIED IDEOGRAPH - ,0xCA4F ,0x8515 //CJK UNIFIED IDEOGRAPH - ,0xCA50 ,0x8516 //CJK UNIFIED IDEOGRAPH - ,0xCA51 ,0x8518 //CJK UNIFIED IDEOGRAPH - ,0xCA52 ,0x8519 //CJK UNIFIED IDEOGRAPH - ,0xCA53 ,0x851B //CJK UNIFIED IDEOGRAPH - ,0xCA54 ,0x851C //CJK UNIFIED IDEOGRAPH - ,0xCA55 ,0x851D //CJK UNIFIED IDEOGRAPH - ,0xCA56 ,0x851E //CJK UNIFIED IDEOGRAPH - ,0xCA57 ,0x8520 //CJK UNIFIED IDEOGRAPH - ,0xCA58 ,0x8522 //CJK UNIFIED IDEOGRAPH - ,0xCA59 ,0x8523 //CJK UNIFIED IDEOGRAPH - ,0xCA5A ,0x8524 //CJK UNIFIED IDEOGRAPH - ,0xCA5B ,0x8525 //CJK UNIFIED IDEOGRAPH - ,0xCA5C ,0x8526 //CJK UNIFIED IDEOGRAPH - ,0xCA5D ,0x8527 //CJK UNIFIED IDEOGRAPH - ,0xCA5E ,0x8528 //CJK UNIFIED IDEOGRAPH - ,0xCA5F ,0x8529 //CJK UNIFIED IDEOGRAPH - ,0xCA60 ,0x852A //CJK UNIFIED IDEOGRAPH - ,0xCA61 ,0x852D //CJK UNIFIED IDEOGRAPH - ,0xCA62 ,0x852E //CJK UNIFIED IDEOGRAPH - ,0xCA63 ,0x852F //CJK UNIFIED IDEOGRAPH - ,0xCA64 ,0x8530 //CJK UNIFIED IDEOGRAPH - ,0xCA65 ,0x8531 //CJK UNIFIED IDEOGRAPH - ,0xCA66 ,0x8532 //CJK UNIFIED IDEOGRAPH - ,0xCA67 ,0x8533 //CJK UNIFIED IDEOGRAPH - ,0xCA68 ,0x8534 //CJK UNIFIED IDEOGRAPH - ,0xCA69 ,0x8535 //CJK UNIFIED IDEOGRAPH - ,0xCA6A ,0x8536 //CJK UNIFIED IDEOGRAPH - ,0xCA6B ,0x853E //CJK UNIFIED IDEOGRAPH - ,0xCA6C ,0x853F //CJK UNIFIED IDEOGRAPH - ,0xCA6D ,0x8540 //CJK UNIFIED IDEOGRAPH - ,0xCA6E ,0x8541 //CJK UNIFIED IDEOGRAPH - ,0xCA6F ,0x8542 //CJK UNIFIED IDEOGRAPH - ,0xCA70 ,0x8544 //CJK UNIFIED IDEOGRAPH - ,0xCA71 ,0x8545 //CJK UNIFIED IDEOGRAPH - ,0xCA72 ,0x8546 //CJK UNIFIED IDEOGRAPH - ,0xCA73 ,0x8547 //CJK UNIFIED IDEOGRAPH - ,0xCA74 ,0x854B //CJK UNIFIED IDEOGRAPH - ,0xCA75 ,0x854C //CJK UNIFIED IDEOGRAPH - ,0xCA76 ,0x854D //CJK UNIFIED IDEOGRAPH - ,0xCA77 ,0x854E //CJK UNIFIED IDEOGRAPH - ,0xCA78 ,0x854F //CJK UNIFIED IDEOGRAPH - ,0xCA79 ,0x8550 //CJK UNIFIED IDEOGRAPH - ,0xCA7A ,0x8551 //CJK UNIFIED IDEOGRAPH - ,0xCA7B ,0x8552 //CJK UNIFIED IDEOGRAPH - ,0xCA7C ,0x8553 //CJK UNIFIED IDEOGRAPH - ,0xCA7D ,0x8554 //CJK UNIFIED IDEOGRAPH - ,0xCA7E ,0x8555 //CJK UNIFIED IDEOGRAPH - ,0xCA80 ,0x8557 //CJK UNIFIED IDEOGRAPH - ,0xCA81 ,0x8558 //CJK UNIFIED IDEOGRAPH - ,0xCA82 ,0x855A //CJK UNIFIED IDEOGRAPH - ,0xCA83 ,0x855B //CJK UNIFIED IDEOGRAPH - ,0xCA84 ,0x855C //CJK UNIFIED IDEOGRAPH - ,0xCA85 ,0x855D //CJK UNIFIED IDEOGRAPH - ,0xCA86 ,0x855F //CJK UNIFIED IDEOGRAPH - ,0xCA87 ,0x8560 //CJK UNIFIED IDEOGRAPH - ,0xCA88 ,0x8561 //CJK UNIFIED IDEOGRAPH - ,0xCA89 ,0x8562 //CJK UNIFIED IDEOGRAPH - ,0xCA8A ,0x8563 //CJK UNIFIED IDEOGRAPH - ,0xCA8B ,0x8565 //CJK UNIFIED IDEOGRAPH - ,0xCA8C ,0x8566 //CJK UNIFIED IDEOGRAPH - ,0xCA8D ,0x8567 //CJK UNIFIED IDEOGRAPH - ,0xCA8E ,0x8569 //CJK UNIFIED IDEOGRAPH - ,0xCA8F ,0x856A //CJK UNIFIED IDEOGRAPH - ,0xCA90 ,0x856B //CJK UNIFIED IDEOGRAPH - ,0xCA91 ,0x856C //CJK UNIFIED IDEOGRAPH - ,0xCA92 ,0x856D //CJK UNIFIED IDEOGRAPH - ,0xCA93 ,0x856E //CJK UNIFIED IDEOGRAPH - ,0xCA94 ,0x856F //CJK UNIFIED IDEOGRAPH - ,0xCA95 ,0x8570 //CJK UNIFIED IDEOGRAPH - ,0xCA96 ,0x8571 //CJK UNIFIED IDEOGRAPH - ,0xCA97 ,0x8573 //CJK UNIFIED IDEOGRAPH - ,0xCA98 ,0x8575 //CJK UNIFIED IDEOGRAPH - ,0xCA99 ,0x8576 //CJK UNIFIED IDEOGRAPH - ,0xCA9A ,0x8577 //CJK UNIFIED IDEOGRAPH - ,0xCA9B ,0x8578 //CJK UNIFIED IDEOGRAPH - ,0xCA9C ,0x857C //CJK UNIFIED IDEOGRAPH - ,0xCA9D ,0x857D //CJK UNIFIED IDEOGRAPH - ,0xCA9E ,0x857F //CJK UNIFIED IDEOGRAPH - ,0xCA9F ,0x8580 //CJK UNIFIED IDEOGRAPH - ,0xCAA0 ,0x8581 //CJK UNIFIED IDEOGRAPH - ,0xCAA1 ,0x7701 //CJK UNIFIED IDEOGRAPH - ,0xCAA2 ,0x76DB //CJK UNIFIED IDEOGRAPH - ,0xCAA3 ,0x5269 //CJK UNIFIED IDEOGRAPH - ,0xCAA4 ,0x80DC //CJK UNIFIED IDEOGRAPH - ,0xCAA5 ,0x5723 //CJK UNIFIED IDEOGRAPH - ,0xCAA6 ,0x5E08 //CJK UNIFIED IDEOGRAPH - ,0xCAA7 ,0x5931 //CJK UNIFIED IDEOGRAPH - ,0xCAA8 ,0x72EE //CJK UNIFIED IDEOGRAPH - ,0xCAA9 ,0x65BD //CJK UNIFIED IDEOGRAPH - ,0xCAAA ,0x6E7F //CJK UNIFIED IDEOGRAPH - ,0xCAAB ,0x8BD7 //CJK UNIFIED IDEOGRAPH - ,0xCAAC ,0x5C38 //CJK UNIFIED IDEOGRAPH - ,0xCAAD ,0x8671 //CJK UNIFIED IDEOGRAPH - ,0xCAAE ,0x5341 //CJK UNIFIED IDEOGRAPH - ,0xCAAF ,0x77F3 //CJK UNIFIED IDEOGRAPH - ,0xCAB0 ,0x62FE //CJK UNIFIED IDEOGRAPH - ,0xCAB1 ,0x65F6 //CJK UNIFIED IDEOGRAPH - ,0xCAB2 ,0x4EC0 //CJK UNIFIED IDEOGRAPH - ,0xCAB3 ,0x98DF //CJK UNIFIED IDEOGRAPH - ,0xCAB4 ,0x8680 //CJK UNIFIED IDEOGRAPH - ,0xCAB5 ,0x5B9E //CJK UNIFIED IDEOGRAPH - ,0xCAB6 ,0x8BC6 //CJK UNIFIED IDEOGRAPH - ,0xCAB7 ,0x53F2 //CJK UNIFIED IDEOGRAPH - ,0xCAB8 ,0x77E2 //CJK UNIFIED IDEOGRAPH - ,0xCAB9 ,0x4F7F //CJK UNIFIED IDEOGRAPH - ,0xCABA ,0x5C4E //CJK UNIFIED IDEOGRAPH - ,0xCABB ,0x9A76 //CJK UNIFIED IDEOGRAPH - ,0xCABC ,0x59CB //CJK UNIFIED IDEOGRAPH - ,0xCABD ,0x5F0F //CJK UNIFIED IDEOGRAPH - ,0xCABE ,0x793A //CJK UNIFIED IDEOGRAPH - ,0xCABF ,0x58EB //CJK UNIFIED IDEOGRAPH - ,0xCAC0 ,0x4E16 //CJK UNIFIED IDEOGRAPH - ,0xCAC1 ,0x67FF //CJK UNIFIED IDEOGRAPH - ,0xCAC2 ,0x4E8B //CJK UNIFIED IDEOGRAPH - ,0xCAC3 ,0x62ED //CJK UNIFIED IDEOGRAPH - ,0xCAC4 ,0x8A93 //CJK UNIFIED IDEOGRAPH - ,0xCAC5 ,0x901D //CJK UNIFIED IDEOGRAPH - ,0xCAC6 ,0x52BF //CJK UNIFIED IDEOGRAPH - ,0xCAC7 ,0x662F //CJK UNIFIED IDEOGRAPH - ,0xCAC8 ,0x55DC //CJK UNIFIED IDEOGRAPH - ,0xCAC9 ,0x566C //CJK UNIFIED IDEOGRAPH - ,0xCACA ,0x9002 //CJK UNIFIED IDEOGRAPH - ,0xCACB ,0x4ED5 //CJK UNIFIED IDEOGRAPH - ,0xCACC ,0x4F8D //CJK UNIFIED IDEOGRAPH - ,0xCACD ,0x91CA //CJK UNIFIED IDEOGRAPH - ,0xCACE ,0x9970 //CJK UNIFIED IDEOGRAPH - ,0xCACF ,0x6C0F //CJK UNIFIED IDEOGRAPH - ,0xCAD0 ,0x5E02 //CJK UNIFIED IDEOGRAPH - ,0xCAD1 ,0x6043 //CJK UNIFIED IDEOGRAPH - ,0xCAD2 ,0x5BA4 //CJK UNIFIED IDEOGRAPH - ,0xCAD3 ,0x89C6 //CJK UNIFIED IDEOGRAPH - ,0xCAD4 ,0x8BD5 //CJK UNIFIED IDEOGRAPH - ,0xCAD5 ,0x6536 //CJK UNIFIED IDEOGRAPH - ,0xCAD6 ,0x624B //CJK UNIFIED IDEOGRAPH - ,0xCAD7 ,0x9996 //CJK UNIFIED IDEOGRAPH - ,0xCAD8 ,0x5B88 //CJK UNIFIED IDEOGRAPH - ,0xCAD9 ,0x5BFF //CJK UNIFIED IDEOGRAPH - ,0xCADA ,0x6388 //CJK UNIFIED IDEOGRAPH - ,0xCADB ,0x552E //CJK UNIFIED IDEOGRAPH - ,0xCADC ,0x53D7 //CJK UNIFIED IDEOGRAPH - ,0xCADD ,0x7626 //CJK UNIFIED IDEOGRAPH - ,0xCADE ,0x517D //CJK UNIFIED IDEOGRAPH - ,0xCADF ,0x852C //CJK UNIFIED IDEOGRAPH - ,0xCAE0 ,0x67A2 //CJK UNIFIED IDEOGRAPH - ,0xCAE1 ,0x68B3 //CJK UNIFIED IDEOGRAPH - ,0xCAE2 ,0x6B8A //CJK UNIFIED IDEOGRAPH - ,0xCAE3 ,0x6292 //CJK UNIFIED IDEOGRAPH - ,0xCAE4 ,0x8F93 //CJK UNIFIED IDEOGRAPH - ,0xCAE5 ,0x53D4 //CJK UNIFIED IDEOGRAPH - ,0xCAE6 ,0x8212 //CJK UNIFIED IDEOGRAPH - ,0xCAE7 ,0x6DD1 //CJK UNIFIED IDEOGRAPH - ,0xCAE8 ,0x758F //CJK UNIFIED IDEOGRAPH - ,0xCAE9 ,0x4E66 //CJK UNIFIED IDEOGRAPH - ,0xCAEA ,0x8D4E //CJK UNIFIED IDEOGRAPH - ,0xCAEB ,0x5B70 //CJK UNIFIED IDEOGRAPH - ,0xCAEC ,0x719F //CJK UNIFIED IDEOGRAPH - ,0xCAED ,0x85AF //CJK UNIFIED IDEOGRAPH - ,0xCAEE ,0x6691 //CJK UNIFIED IDEOGRAPH - ,0xCAEF ,0x66D9 //CJK UNIFIED IDEOGRAPH - ,0xCAF0 ,0x7F72 //CJK UNIFIED IDEOGRAPH - ,0xCAF1 ,0x8700 //CJK UNIFIED IDEOGRAPH - ,0xCAF2 ,0x9ECD //CJK UNIFIED IDEOGRAPH - ,0xCAF3 ,0x9F20 //CJK UNIFIED IDEOGRAPH - ,0xCAF4 ,0x5C5E //CJK UNIFIED IDEOGRAPH - ,0xCAF5 ,0x672F //CJK UNIFIED IDEOGRAPH - ,0xCAF6 ,0x8FF0 //CJK UNIFIED IDEOGRAPH - ,0xCAF7 ,0x6811 //CJK UNIFIED IDEOGRAPH - ,0xCAF8 ,0x675F //CJK UNIFIED IDEOGRAPH - ,0xCAF9 ,0x620D //CJK UNIFIED IDEOGRAPH - ,0xCAFA ,0x7AD6 //CJK UNIFIED IDEOGRAPH - ,0xCAFB ,0x5885 //CJK UNIFIED IDEOGRAPH - ,0xCAFC ,0x5EB6 //CJK UNIFIED IDEOGRAPH - ,0xCAFD ,0x6570 //CJK UNIFIED IDEOGRAPH - ,0xCAFE ,0x6F31 //CJK UNIFIED IDEOGRAPH - ,0xCB40 ,0x8582 //CJK UNIFIED IDEOGRAPH - ,0xCB41 ,0x8583 //CJK UNIFIED IDEOGRAPH - ,0xCB42 ,0x8586 //CJK UNIFIED IDEOGRAPH - ,0xCB43 ,0x8588 //CJK UNIFIED IDEOGRAPH - ,0xCB44 ,0x8589 //CJK UNIFIED IDEOGRAPH - ,0xCB45 ,0x858A //CJK UNIFIED IDEOGRAPH - ,0xCB46 ,0x858B //CJK UNIFIED IDEOGRAPH - ,0xCB47 ,0x858C //CJK UNIFIED IDEOGRAPH - ,0xCB48 ,0x858D //CJK UNIFIED IDEOGRAPH - ,0xCB49 ,0x858E //CJK UNIFIED IDEOGRAPH - ,0xCB4A ,0x8590 //CJK UNIFIED IDEOGRAPH - ,0xCB4B ,0x8591 //CJK UNIFIED IDEOGRAPH - ,0xCB4C ,0x8592 //CJK UNIFIED IDEOGRAPH - ,0xCB4D ,0x8593 //CJK UNIFIED IDEOGRAPH - ,0xCB4E ,0x8594 //CJK UNIFIED IDEOGRAPH - ,0xCB4F ,0x8595 //CJK UNIFIED IDEOGRAPH - ,0xCB50 ,0x8596 //CJK UNIFIED IDEOGRAPH - ,0xCB51 ,0x8597 //CJK UNIFIED IDEOGRAPH - ,0xCB52 ,0x8598 //CJK UNIFIED IDEOGRAPH - ,0xCB53 ,0x8599 //CJK UNIFIED IDEOGRAPH - ,0xCB54 ,0x859A //CJK UNIFIED IDEOGRAPH - ,0xCB55 ,0x859D //CJK UNIFIED IDEOGRAPH - ,0xCB56 ,0x859E //CJK UNIFIED IDEOGRAPH - ,0xCB57 ,0x859F //CJK UNIFIED IDEOGRAPH - ,0xCB58 ,0x85A0 //CJK UNIFIED IDEOGRAPH - ,0xCB59 ,0x85A1 //CJK UNIFIED IDEOGRAPH - ,0xCB5A ,0x85A2 //CJK UNIFIED IDEOGRAPH - ,0xCB5B ,0x85A3 //CJK UNIFIED IDEOGRAPH - ,0xCB5C ,0x85A5 //CJK UNIFIED IDEOGRAPH - ,0xCB5D ,0x85A6 //CJK UNIFIED IDEOGRAPH - ,0xCB5E ,0x85A7 //CJK UNIFIED IDEOGRAPH - ,0xCB5F ,0x85A9 //CJK UNIFIED IDEOGRAPH - ,0xCB60 ,0x85AB //CJK UNIFIED IDEOGRAPH - ,0xCB61 ,0x85AC //CJK UNIFIED IDEOGRAPH - ,0xCB62 ,0x85AD //CJK UNIFIED IDEOGRAPH - ,0xCB63 ,0x85B1 //CJK UNIFIED IDEOGRAPH - ,0xCB64 ,0x85B2 //CJK UNIFIED IDEOGRAPH - ,0xCB65 ,0x85B3 //CJK UNIFIED IDEOGRAPH - ,0xCB66 ,0x85B4 //CJK UNIFIED IDEOGRAPH - ,0xCB67 ,0x85B5 //CJK UNIFIED IDEOGRAPH - ,0xCB68 ,0x85B6 //CJK UNIFIED IDEOGRAPH - ,0xCB69 ,0x85B8 //CJK UNIFIED IDEOGRAPH - ,0xCB6A ,0x85BA //CJK UNIFIED IDEOGRAPH - ,0xCB6B ,0x85BB //CJK UNIFIED IDEOGRAPH - ,0xCB6C ,0x85BC //CJK UNIFIED IDEOGRAPH - ,0xCB6D ,0x85BD //CJK UNIFIED IDEOGRAPH - ,0xCB6E ,0x85BE //CJK UNIFIED IDEOGRAPH - ,0xCB6F ,0x85BF //CJK UNIFIED IDEOGRAPH - ,0xCB70 ,0x85C0 //CJK UNIFIED IDEOGRAPH - ,0xCB71 ,0x85C2 //CJK UNIFIED IDEOGRAPH - ,0xCB72 ,0x85C3 //CJK UNIFIED IDEOGRAPH - ,0xCB73 ,0x85C4 //CJK UNIFIED IDEOGRAPH - ,0xCB74 ,0x85C5 //CJK UNIFIED IDEOGRAPH - ,0xCB75 ,0x85C6 //CJK UNIFIED IDEOGRAPH - ,0xCB76 ,0x85C7 //CJK UNIFIED IDEOGRAPH - ,0xCB77 ,0x85C8 //CJK UNIFIED IDEOGRAPH - ,0xCB78 ,0x85CA //CJK UNIFIED IDEOGRAPH - ,0xCB79 ,0x85CB //CJK UNIFIED IDEOGRAPH - ,0xCB7A ,0x85CC //CJK UNIFIED IDEOGRAPH - ,0xCB7B ,0x85CD //CJK UNIFIED IDEOGRAPH - ,0xCB7C ,0x85CE //CJK UNIFIED IDEOGRAPH - ,0xCB7D ,0x85D1 //CJK UNIFIED IDEOGRAPH - ,0xCB7E ,0x85D2 //CJK UNIFIED IDEOGRAPH - ,0xCB80 ,0x85D4 //CJK UNIFIED IDEOGRAPH - ,0xCB81 ,0x85D6 //CJK UNIFIED IDEOGRAPH - ,0xCB82 ,0x85D7 //CJK UNIFIED IDEOGRAPH - ,0xCB83 ,0x85D8 //CJK UNIFIED IDEOGRAPH - ,0xCB84 ,0x85D9 //CJK UNIFIED IDEOGRAPH - ,0xCB85 ,0x85DA //CJK UNIFIED IDEOGRAPH - ,0xCB86 ,0x85DB //CJK UNIFIED IDEOGRAPH - ,0xCB87 ,0x85DD //CJK UNIFIED IDEOGRAPH - ,0xCB88 ,0x85DE //CJK UNIFIED IDEOGRAPH - ,0xCB89 ,0x85DF //CJK UNIFIED IDEOGRAPH - ,0xCB8A ,0x85E0 //CJK UNIFIED IDEOGRAPH - ,0xCB8B ,0x85E1 //CJK UNIFIED IDEOGRAPH - ,0xCB8C ,0x85E2 //CJK UNIFIED IDEOGRAPH - ,0xCB8D ,0x85E3 //CJK UNIFIED IDEOGRAPH - ,0xCB8E ,0x85E5 //CJK UNIFIED IDEOGRAPH - ,0xCB8F ,0x85E6 //CJK UNIFIED IDEOGRAPH - ,0xCB90 ,0x85E7 //CJK UNIFIED IDEOGRAPH - ,0xCB91 ,0x85E8 //CJK UNIFIED IDEOGRAPH - ,0xCB92 ,0x85EA //CJK UNIFIED IDEOGRAPH - ,0xCB93 ,0x85EB //CJK UNIFIED IDEOGRAPH - ,0xCB94 ,0x85EC //CJK UNIFIED IDEOGRAPH - ,0xCB95 ,0x85ED //CJK UNIFIED IDEOGRAPH - ,0xCB96 ,0x85EE //CJK UNIFIED IDEOGRAPH - ,0xCB97 ,0x85EF //CJK UNIFIED IDEOGRAPH - ,0xCB98 ,0x85F0 //CJK UNIFIED IDEOGRAPH - ,0xCB99 ,0x85F1 //CJK UNIFIED IDEOGRAPH - ,0xCB9A ,0x85F2 //CJK UNIFIED IDEOGRAPH - ,0xCB9B ,0x85F3 //CJK UNIFIED IDEOGRAPH - ,0xCB9C ,0x85F4 //CJK UNIFIED IDEOGRAPH - ,0xCB9D ,0x85F5 //CJK UNIFIED IDEOGRAPH - ,0xCB9E ,0x85F6 //CJK UNIFIED IDEOGRAPH - ,0xCB9F ,0x85F7 //CJK UNIFIED IDEOGRAPH - ,0xCBA0 ,0x85F8 //CJK UNIFIED IDEOGRAPH - ,0xCBA1 ,0x6055 //CJK UNIFIED IDEOGRAPH - ,0xCBA2 ,0x5237 //CJK UNIFIED IDEOGRAPH - ,0xCBA3 ,0x800D //CJK UNIFIED IDEOGRAPH - ,0xCBA4 ,0x6454 //CJK UNIFIED IDEOGRAPH - ,0xCBA5 ,0x8870 //CJK UNIFIED IDEOGRAPH - ,0xCBA6 ,0x7529 //CJK UNIFIED IDEOGRAPH - ,0xCBA7 ,0x5E05 //CJK UNIFIED IDEOGRAPH - ,0xCBA8 ,0x6813 //CJK UNIFIED IDEOGRAPH - ,0xCBA9 ,0x62F4 //CJK UNIFIED IDEOGRAPH - ,0xCBAA ,0x971C //CJK UNIFIED IDEOGRAPH - ,0xCBAB ,0x53CC //CJK UNIFIED IDEOGRAPH - ,0xCBAC ,0x723D //CJK UNIFIED IDEOGRAPH - ,0xCBAD ,0x8C01 //CJK UNIFIED IDEOGRAPH - ,0xCBAE ,0x6C34 //CJK UNIFIED IDEOGRAPH - ,0xCBAF ,0x7761 //CJK UNIFIED IDEOGRAPH - ,0xCBB0 ,0x7A0E //CJK UNIFIED IDEOGRAPH - ,0xCBB1 ,0x542E //CJK UNIFIED IDEOGRAPH - ,0xCBB2 ,0x77AC //CJK UNIFIED IDEOGRAPH - ,0xCBB3 ,0x987A //CJK UNIFIED IDEOGRAPH - ,0xCBB4 ,0x821C //CJK UNIFIED IDEOGRAPH - ,0xCBB5 ,0x8BF4 //CJK UNIFIED IDEOGRAPH - ,0xCBB6 ,0x7855 //CJK UNIFIED IDEOGRAPH - ,0xCBB7 ,0x6714 //CJK UNIFIED IDEOGRAPH - ,0xCBB8 ,0x70C1 //CJK UNIFIED IDEOGRAPH - ,0xCBB9 ,0x65AF //CJK UNIFIED IDEOGRAPH - ,0xCBBA ,0x6495 //CJK UNIFIED IDEOGRAPH - ,0xCBBB ,0x5636 //CJK UNIFIED IDEOGRAPH - ,0xCBBC ,0x601D //CJK UNIFIED IDEOGRAPH - ,0xCBBD ,0x79C1 //CJK UNIFIED IDEOGRAPH - ,0xCBBE ,0x53F8 //CJK UNIFIED IDEOGRAPH - ,0xCBBF ,0x4E1D //CJK UNIFIED IDEOGRAPH - ,0xCBC0 ,0x6B7B //CJK UNIFIED IDEOGRAPH - ,0xCBC1 ,0x8086 //CJK UNIFIED IDEOGRAPH - ,0xCBC2 ,0x5BFA //CJK UNIFIED IDEOGRAPH - ,0xCBC3 ,0x55E3 //CJK UNIFIED IDEOGRAPH - ,0xCBC4 ,0x56DB //CJK UNIFIED IDEOGRAPH - ,0xCBC5 ,0x4F3A //CJK UNIFIED IDEOGRAPH - ,0xCBC6 ,0x4F3C //CJK UNIFIED IDEOGRAPH - ,0xCBC7 ,0x9972 //CJK UNIFIED IDEOGRAPH - ,0xCBC8 ,0x5DF3 //CJK UNIFIED IDEOGRAPH - ,0xCBC9 ,0x677E //CJK UNIFIED IDEOGRAPH - ,0xCBCA ,0x8038 //CJK UNIFIED IDEOGRAPH - ,0xCBCB ,0x6002 //CJK UNIFIED IDEOGRAPH - ,0xCBCC ,0x9882 //CJK UNIFIED IDEOGRAPH - ,0xCBCD ,0x9001 //CJK UNIFIED IDEOGRAPH - ,0xCBCE ,0x5B8B //CJK UNIFIED IDEOGRAPH - ,0xCBCF ,0x8BBC //CJK UNIFIED IDEOGRAPH - ,0xCBD0 ,0x8BF5 //CJK UNIFIED IDEOGRAPH - ,0xCBD1 ,0x641C //CJK UNIFIED IDEOGRAPH - ,0xCBD2 ,0x8258 //CJK UNIFIED IDEOGRAPH - ,0xCBD3 ,0x64DE //CJK UNIFIED IDEOGRAPH - ,0xCBD4 ,0x55FD //CJK UNIFIED IDEOGRAPH - ,0xCBD5 ,0x82CF //CJK UNIFIED IDEOGRAPH - ,0xCBD6 ,0x9165 //CJK UNIFIED IDEOGRAPH - ,0xCBD7 ,0x4FD7 //CJK UNIFIED IDEOGRAPH - ,0xCBD8 ,0x7D20 //CJK UNIFIED IDEOGRAPH - ,0xCBD9 ,0x901F //CJK UNIFIED IDEOGRAPH - ,0xCBDA ,0x7C9F //CJK UNIFIED IDEOGRAPH - ,0xCBDB ,0x50F3 //CJK UNIFIED IDEOGRAPH - ,0xCBDC ,0x5851 //CJK UNIFIED IDEOGRAPH - ,0xCBDD ,0x6EAF //CJK UNIFIED IDEOGRAPH - ,0xCBDE ,0x5BBF //CJK UNIFIED IDEOGRAPH - ,0xCBDF ,0x8BC9 //CJK UNIFIED IDEOGRAPH - ,0xCBE0 ,0x8083 //CJK UNIFIED IDEOGRAPH - ,0xCBE1 ,0x9178 //CJK UNIFIED IDEOGRAPH - ,0xCBE2 ,0x849C //CJK UNIFIED IDEOGRAPH - ,0xCBE3 ,0x7B97 //CJK UNIFIED IDEOGRAPH - ,0xCBE4 ,0x867D //CJK UNIFIED IDEOGRAPH - ,0xCBE5 ,0x968B //CJK UNIFIED IDEOGRAPH - ,0xCBE6 ,0x968F //CJK UNIFIED IDEOGRAPH - ,0xCBE7 ,0x7EE5 //CJK UNIFIED IDEOGRAPH - ,0xCBE8 ,0x9AD3 //CJK UNIFIED IDEOGRAPH - ,0xCBE9 ,0x788E //CJK UNIFIED IDEOGRAPH - ,0xCBEA ,0x5C81 //CJK UNIFIED IDEOGRAPH - ,0xCBEB ,0x7A57 //CJK UNIFIED IDEOGRAPH - ,0xCBEC ,0x9042 //CJK UNIFIED IDEOGRAPH - ,0xCBED ,0x96A7 //CJK UNIFIED IDEOGRAPH - ,0xCBEE ,0x795F //CJK UNIFIED IDEOGRAPH - ,0xCBEF ,0x5B59 //CJK UNIFIED IDEOGRAPH - ,0xCBF0 ,0x635F //CJK UNIFIED IDEOGRAPH - ,0xCBF1 ,0x7B0B //CJK UNIFIED IDEOGRAPH - ,0xCBF2 ,0x84D1 //CJK UNIFIED IDEOGRAPH - ,0xCBF3 ,0x68AD //CJK UNIFIED IDEOGRAPH - ,0xCBF4 ,0x5506 //CJK UNIFIED IDEOGRAPH - ,0xCBF5 ,0x7F29 //CJK UNIFIED IDEOGRAPH - ,0xCBF6 ,0x7410 //CJK UNIFIED IDEOGRAPH - ,0xCBF7 ,0x7D22 //CJK UNIFIED IDEOGRAPH - ,0xCBF8 ,0x9501 //CJK UNIFIED IDEOGRAPH - ,0xCBF9 ,0x6240 //CJK UNIFIED IDEOGRAPH - ,0xCBFA ,0x584C //CJK UNIFIED IDEOGRAPH - ,0xCBFB ,0x4ED6 //CJK UNIFIED IDEOGRAPH - ,0xCBFC ,0x5B83 //CJK UNIFIED IDEOGRAPH - ,0xCBFD ,0x5979 //CJK UNIFIED IDEOGRAPH - ,0xCBFE ,0x5854 //CJK UNIFIED IDEOGRAPH - ,0xCC40 ,0x85F9 //CJK UNIFIED IDEOGRAPH - ,0xCC41 ,0x85FA //CJK UNIFIED IDEOGRAPH - ,0xCC42 ,0x85FC //CJK UNIFIED IDEOGRAPH - ,0xCC43 ,0x85FD //CJK UNIFIED IDEOGRAPH - ,0xCC44 ,0x85FE //CJK UNIFIED IDEOGRAPH - ,0xCC45 ,0x8600 //CJK UNIFIED IDEOGRAPH - ,0xCC46 ,0x8601 //CJK UNIFIED IDEOGRAPH - ,0xCC47 ,0x8602 //CJK UNIFIED IDEOGRAPH - ,0xCC48 ,0x8603 //CJK UNIFIED IDEOGRAPH - ,0xCC49 ,0x8604 //CJK UNIFIED IDEOGRAPH - ,0xCC4A ,0x8606 //CJK UNIFIED IDEOGRAPH - ,0xCC4B ,0x8607 //CJK UNIFIED IDEOGRAPH - ,0xCC4C ,0x8608 //CJK UNIFIED IDEOGRAPH - ,0xCC4D ,0x8609 //CJK UNIFIED IDEOGRAPH - ,0xCC4E ,0x860A //CJK UNIFIED IDEOGRAPH - ,0xCC4F ,0x860B //CJK UNIFIED IDEOGRAPH - ,0xCC50 ,0x860C //CJK UNIFIED IDEOGRAPH - ,0xCC51 ,0x860D //CJK UNIFIED IDEOGRAPH - ,0xCC52 ,0x860E //CJK UNIFIED IDEOGRAPH - ,0xCC53 ,0x860F //CJK UNIFIED IDEOGRAPH - ,0xCC54 ,0x8610 //CJK UNIFIED IDEOGRAPH - ,0xCC55 ,0x8612 //CJK UNIFIED IDEOGRAPH - ,0xCC56 ,0x8613 //CJK UNIFIED IDEOGRAPH - ,0xCC57 ,0x8614 //CJK UNIFIED IDEOGRAPH - ,0xCC58 ,0x8615 //CJK UNIFIED IDEOGRAPH - ,0xCC59 ,0x8617 //CJK UNIFIED IDEOGRAPH - ,0xCC5A ,0x8618 //CJK UNIFIED IDEOGRAPH - ,0xCC5B ,0x8619 //CJK UNIFIED IDEOGRAPH - ,0xCC5C ,0x861A //CJK UNIFIED IDEOGRAPH - ,0xCC5D ,0x861B //CJK UNIFIED IDEOGRAPH - ,0xCC5E ,0x861C //CJK UNIFIED IDEOGRAPH - ,0xCC5F ,0x861D //CJK UNIFIED IDEOGRAPH - ,0xCC60 ,0x861E //CJK UNIFIED IDEOGRAPH - ,0xCC61 ,0x861F //CJK UNIFIED IDEOGRAPH - ,0xCC62 ,0x8620 //CJK UNIFIED IDEOGRAPH - ,0xCC63 ,0x8621 //CJK UNIFIED IDEOGRAPH - ,0xCC64 ,0x8622 //CJK UNIFIED IDEOGRAPH - ,0xCC65 ,0x8623 //CJK UNIFIED IDEOGRAPH - ,0xCC66 ,0x8624 //CJK UNIFIED IDEOGRAPH - ,0xCC67 ,0x8625 //CJK UNIFIED IDEOGRAPH - ,0xCC68 ,0x8626 //CJK UNIFIED IDEOGRAPH - ,0xCC69 ,0x8628 //CJK UNIFIED IDEOGRAPH - ,0xCC6A ,0x862A //CJK UNIFIED IDEOGRAPH - ,0xCC6B ,0x862B //CJK UNIFIED IDEOGRAPH - ,0xCC6C ,0x862C //CJK UNIFIED IDEOGRAPH - ,0xCC6D ,0x862D //CJK UNIFIED IDEOGRAPH - ,0xCC6E ,0x862E //CJK UNIFIED IDEOGRAPH - ,0xCC6F ,0x862F //CJK UNIFIED IDEOGRAPH - ,0xCC70 ,0x8630 //CJK UNIFIED IDEOGRAPH - ,0xCC71 ,0x8631 //CJK UNIFIED IDEOGRAPH - ,0xCC72 ,0x8632 //CJK UNIFIED IDEOGRAPH - ,0xCC73 ,0x8633 //CJK UNIFIED IDEOGRAPH - ,0xCC74 ,0x8634 //CJK UNIFIED IDEOGRAPH - ,0xCC75 ,0x8635 //CJK UNIFIED IDEOGRAPH - ,0xCC76 ,0x8636 //CJK UNIFIED IDEOGRAPH - ,0xCC77 ,0x8637 //CJK UNIFIED IDEOGRAPH - ,0xCC78 ,0x8639 //CJK UNIFIED IDEOGRAPH - ,0xCC79 ,0x863A //CJK UNIFIED IDEOGRAPH - ,0xCC7A ,0x863B //CJK UNIFIED IDEOGRAPH - ,0xCC7B ,0x863D //CJK UNIFIED IDEOGRAPH - ,0xCC7C ,0x863E //CJK UNIFIED IDEOGRAPH - ,0xCC7D ,0x863F //CJK UNIFIED IDEOGRAPH - ,0xCC7E ,0x8640 //CJK UNIFIED IDEOGRAPH - ,0xCC80 ,0x8641 //CJK UNIFIED IDEOGRAPH - ,0xCC81 ,0x8642 //CJK UNIFIED IDEOGRAPH - ,0xCC82 ,0x8643 //CJK UNIFIED IDEOGRAPH - ,0xCC83 ,0x8644 //CJK UNIFIED IDEOGRAPH - ,0xCC84 ,0x8645 //CJK UNIFIED IDEOGRAPH - ,0xCC85 ,0x8646 //CJK UNIFIED IDEOGRAPH - ,0xCC86 ,0x8647 //CJK UNIFIED IDEOGRAPH - ,0xCC87 ,0x8648 //CJK UNIFIED IDEOGRAPH - ,0xCC88 ,0x8649 //CJK UNIFIED IDEOGRAPH - ,0xCC89 ,0x864A //CJK UNIFIED IDEOGRAPH - ,0xCC8A ,0x864B //CJK UNIFIED IDEOGRAPH - ,0xCC8B ,0x864C //CJK UNIFIED IDEOGRAPH - ,0xCC8C ,0x8652 //CJK UNIFIED IDEOGRAPH - ,0xCC8D ,0x8653 //CJK UNIFIED IDEOGRAPH - ,0xCC8E ,0x8655 //CJK UNIFIED IDEOGRAPH - ,0xCC8F ,0x8656 //CJK UNIFIED IDEOGRAPH - ,0xCC90 ,0x8657 //CJK UNIFIED IDEOGRAPH - ,0xCC91 ,0x8658 //CJK UNIFIED IDEOGRAPH - ,0xCC92 ,0x8659 //CJK UNIFIED IDEOGRAPH - ,0xCC93 ,0x865B //CJK UNIFIED IDEOGRAPH - ,0xCC94 ,0x865C //CJK UNIFIED IDEOGRAPH - ,0xCC95 ,0x865D //CJK UNIFIED IDEOGRAPH - ,0xCC96 ,0x865F //CJK UNIFIED IDEOGRAPH - ,0xCC97 ,0x8660 //CJK UNIFIED IDEOGRAPH - ,0xCC98 ,0x8661 //CJK UNIFIED IDEOGRAPH - ,0xCC99 ,0x8663 //CJK UNIFIED IDEOGRAPH - ,0xCC9A ,0x8664 //CJK UNIFIED IDEOGRAPH - ,0xCC9B ,0x8665 //CJK UNIFIED IDEOGRAPH - ,0xCC9C ,0x8666 //CJK UNIFIED IDEOGRAPH - ,0xCC9D ,0x8667 //CJK UNIFIED IDEOGRAPH - ,0xCC9E ,0x8668 //CJK UNIFIED IDEOGRAPH - ,0xCC9F ,0x8669 //CJK UNIFIED IDEOGRAPH - ,0xCCA0 ,0x866A //CJK UNIFIED IDEOGRAPH - ,0xCCA1 ,0x736D //CJK UNIFIED IDEOGRAPH - ,0xCCA2 ,0x631E //CJK UNIFIED IDEOGRAPH - ,0xCCA3 ,0x8E4B //CJK UNIFIED IDEOGRAPH - ,0xCCA4 ,0x8E0F //CJK UNIFIED IDEOGRAPH - ,0xCCA5 ,0x80CE //CJK UNIFIED IDEOGRAPH - ,0xCCA6 ,0x82D4 //CJK UNIFIED IDEOGRAPH - ,0xCCA7 ,0x62AC //CJK UNIFIED IDEOGRAPH - ,0xCCA8 ,0x53F0 //CJK UNIFIED IDEOGRAPH - ,0xCCA9 ,0x6CF0 //CJK UNIFIED IDEOGRAPH - ,0xCCAA ,0x915E //CJK UNIFIED IDEOGRAPH - ,0xCCAB ,0x592A //CJK UNIFIED IDEOGRAPH - ,0xCCAC ,0x6001 //CJK UNIFIED IDEOGRAPH - ,0xCCAD ,0x6C70 //CJK UNIFIED IDEOGRAPH - ,0xCCAE ,0x574D //CJK UNIFIED IDEOGRAPH - ,0xCCAF ,0x644A //CJK UNIFIED IDEOGRAPH - ,0xCCB0 ,0x8D2A //CJK UNIFIED IDEOGRAPH - ,0xCCB1 ,0x762B //CJK UNIFIED IDEOGRAPH - ,0xCCB2 ,0x6EE9 //CJK UNIFIED IDEOGRAPH - ,0xCCB3 ,0x575B //CJK UNIFIED IDEOGRAPH - ,0xCCB4 ,0x6A80 //CJK UNIFIED IDEOGRAPH - ,0xCCB5 ,0x75F0 //CJK UNIFIED IDEOGRAPH - ,0xCCB6 ,0x6F6D //CJK UNIFIED IDEOGRAPH - ,0xCCB7 ,0x8C2D //CJK UNIFIED IDEOGRAPH - ,0xCCB8 ,0x8C08 //CJK UNIFIED IDEOGRAPH - ,0xCCB9 ,0x5766 //CJK UNIFIED IDEOGRAPH - ,0xCCBA ,0x6BEF //CJK UNIFIED IDEOGRAPH - ,0xCCBB ,0x8892 //CJK UNIFIED IDEOGRAPH - ,0xCCBC ,0x78B3 //CJK UNIFIED IDEOGRAPH - ,0xCCBD ,0x63A2 //CJK UNIFIED IDEOGRAPH - ,0xCCBE ,0x53F9 //CJK UNIFIED IDEOGRAPH - ,0xCCBF ,0x70AD //CJK UNIFIED IDEOGRAPH - ,0xCCC0 ,0x6C64 //CJK UNIFIED IDEOGRAPH - ,0xCCC1 ,0x5858 //CJK UNIFIED IDEOGRAPH - ,0xCCC2 ,0x642A //CJK UNIFIED IDEOGRAPH - ,0xCCC3 ,0x5802 //CJK UNIFIED IDEOGRAPH - ,0xCCC4 ,0x68E0 //CJK UNIFIED IDEOGRAPH - ,0xCCC5 ,0x819B //CJK UNIFIED IDEOGRAPH - ,0xCCC6 ,0x5510 //CJK UNIFIED IDEOGRAPH - ,0xCCC7 ,0x7CD6 //CJK UNIFIED IDEOGRAPH - ,0xCCC8 ,0x5018 //CJK UNIFIED IDEOGRAPH - ,0xCCC9 ,0x8EBA //CJK UNIFIED IDEOGRAPH - ,0xCCCA ,0x6DCC //CJK UNIFIED IDEOGRAPH - ,0xCCCB ,0x8D9F //CJK UNIFIED IDEOGRAPH - ,0xCCCC ,0x70EB //CJK UNIFIED IDEOGRAPH - ,0xCCCD ,0x638F //CJK UNIFIED IDEOGRAPH - ,0xCCCE ,0x6D9B //CJK UNIFIED IDEOGRAPH - ,0xCCCF ,0x6ED4 //CJK UNIFIED IDEOGRAPH - ,0xCCD0 ,0x7EE6 //CJK UNIFIED IDEOGRAPH - ,0xCCD1 ,0x8404 //CJK UNIFIED IDEOGRAPH - ,0xCCD2 ,0x6843 //CJK UNIFIED IDEOGRAPH - ,0xCCD3 ,0x9003 //CJK UNIFIED IDEOGRAPH - ,0xCCD4 ,0x6DD8 //CJK UNIFIED IDEOGRAPH - ,0xCCD5 ,0x9676 //CJK UNIFIED IDEOGRAPH - ,0xCCD6 ,0x8BA8 //CJK UNIFIED IDEOGRAPH - ,0xCCD7 ,0x5957 //CJK UNIFIED IDEOGRAPH - ,0xCCD8 ,0x7279 //CJK UNIFIED IDEOGRAPH - ,0xCCD9 ,0x85E4 //CJK UNIFIED IDEOGRAPH - ,0xCCDA ,0x817E //CJK UNIFIED IDEOGRAPH - ,0xCCDB ,0x75BC //CJK UNIFIED IDEOGRAPH - ,0xCCDC ,0x8A8A //CJK UNIFIED IDEOGRAPH - ,0xCCDD ,0x68AF //CJK UNIFIED IDEOGRAPH - ,0xCCDE ,0x5254 //CJK UNIFIED IDEOGRAPH - ,0xCCDF ,0x8E22 //CJK UNIFIED IDEOGRAPH - ,0xCCE0 ,0x9511 //CJK UNIFIED IDEOGRAPH - ,0xCCE1 ,0x63D0 //CJK UNIFIED IDEOGRAPH - ,0xCCE2 ,0x9898 //CJK UNIFIED IDEOGRAPH - ,0xCCE3 ,0x8E44 //CJK UNIFIED IDEOGRAPH - ,0xCCE4 ,0x557C //CJK UNIFIED IDEOGRAPH - ,0xCCE5 ,0x4F53 //CJK UNIFIED IDEOGRAPH - ,0xCCE6 ,0x66FF //CJK UNIFIED IDEOGRAPH - ,0xCCE7 ,0x568F //CJK UNIFIED IDEOGRAPH - ,0xCCE8 ,0x60D5 //CJK UNIFIED IDEOGRAPH - ,0xCCE9 ,0x6D95 //CJK UNIFIED IDEOGRAPH - ,0xCCEA ,0x5243 //CJK UNIFIED IDEOGRAPH - ,0xCCEB ,0x5C49 //CJK UNIFIED IDEOGRAPH - ,0xCCEC ,0x5929 //CJK UNIFIED IDEOGRAPH - ,0xCCED ,0x6DFB //CJK UNIFIED IDEOGRAPH - ,0xCCEE ,0x586B //CJK UNIFIED IDEOGRAPH - ,0xCCEF ,0x7530 //CJK UNIFIED IDEOGRAPH - ,0xCCF0 ,0x751C //CJK UNIFIED IDEOGRAPH - ,0xCCF1 ,0x606C //CJK UNIFIED IDEOGRAPH - ,0xCCF2 ,0x8214 //CJK UNIFIED IDEOGRAPH - ,0xCCF3 ,0x8146 //CJK UNIFIED IDEOGRAPH - ,0xCCF4 ,0x6311 //CJK UNIFIED IDEOGRAPH - ,0xCCF5 ,0x6761 //CJK UNIFIED IDEOGRAPH - ,0xCCF6 ,0x8FE2 //CJK UNIFIED IDEOGRAPH - ,0xCCF7 ,0x773A //CJK UNIFIED IDEOGRAPH - ,0xCCF8 ,0x8DF3 //CJK UNIFIED IDEOGRAPH - ,0xCCF9 ,0x8D34 //CJK UNIFIED IDEOGRAPH - ,0xCCFA ,0x94C1 //CJK UNIFIED IDEOGRAPH - ,0xCCFB ,0x5E16 //CJK UNIFIED IDEOGRAPH - ,0xCCFC ,0x5385 //CJK UNIFIED IDEOGRAPH - ,0xCCFD ,0x542C //CJK UNIFIED IDEOGRAPH - ,0xCCFE ,0x70C3 //CJK UNIFIED IDEOGRAPH - ,0xCD40 ,0x866D //CJK UNIFIED IDEOGRAPH - ,0xCD41 ,0x866F //CJK UNIFIED IDEOGRAPH - ,0xCD42 ,0x8670 //CJK UNIFIED IDEOGRAPH - ,0xCD43 ,0x8672 //CJK UNIFIED IDEOGRAPH - ,0xCD44 ,0x8673 //CJK UNIFIED IDEOGRAPH - ,0xCD45 ,0x8674 //CJK UNIFIED IDEOGRAPH - ,0xCD46 ,0x8675 //CJK UNIFIED IDEOGRAPH - ,0xCD47 ,0x8676 //CJK UNIFIED IDEOGRAPH - ,0xCD48 ,0x8677 //CJK UNIFIED IDEOGRAPH - ,0xCD49 ,0x8678 //CJK UNIFIED IDEOGRAPH - ,0xCD4A ,0x8683 //CJK UNIFIED IDEOGRAPH - ,0xCD4B ,0x8684 //CJK UNIFIED IDEOGRAPH - ,0xCD4C ,0x8685 //CJK UNIFIED IDEOGRAPH - ,0xCD4D ,0x8686 //CJK UNIFIED IDEOGRAPH - ,0xCD4E ,0x8687 //CJK UNIFIED IDEOGRAPH - ,0xCD4F ,0x8688 //CJK UNIFIED IDEOGRAPH - ,0xCD50 ,0x8689 //CJK UNIFIED IDEOGRAPH - ,0xCD51 ,0x868E //CJK UNIFIED IDEOGRAPH - ,0xCD52 ,0x868F //CJK UNIFIED IDEOGRAPH - ,0xCD53 ,0x8690 //CJK UNIFIED IDEOGRAPH - ,0xCD54 ,0x8691 //CJK UNIFIED IDEOGRAPH - ,0xCD55 ,0x8692 //CJK UNIFIED IDEOGRAPH - ,0xCD56 ,0x8694 //CJK UNIFIED IDEOGRAPH - ,0xCD57 ,0x8696 //CJK UNIFIED IDEOGRAPH - ,0xCD58 ,0x8697 //CJK UNIFIED IDEOGRAPH - ,0xCD59 ,0x8698 //CJK UNIFIED IDEOGRAPH - ,0xCD5A ,0x8699 //CJK UNIFIED IDEOGRAPH - ,0xCD5B ,0x869A //CJK UNIFIED IDEOGRAPH - ,0xCD5C ,0x869B //CJK UNIFIED IDEOGRAPH - ,0xCD5D ,0x869E //CJK UNIFIED IDEOGRAPH - ,0xCD5E ,0x869F //CJK UNIFIED IDEOGRAPH - ,0xCD5F ,0x86A0 //CJK UNIFIED IDEOGRAPH - ,0xCD60 ,0x86A1 //CJK UNIFIED IDEOGRAPH - ,0xCD61 ,0x86A2 //CJK UNIFIED IDEOGRAPH - ,0xCD62 ,0x86A5 //CJK UNIFIED IDEOGRAPH - ,0xCD63 ,0x86A6 //CJK UNIFIED IDEOGRAPH - ,0xCD64 ,0x86AB //CJK UNIFIED IDEOGRAPH - ,0xCD65 ,0x86AD //CJK UNIFIED IDEOGRAPH - ,0xCD66 ,0x86AE //CJK UNIFIED IDEOGRAPH - ,0xCD67 ,0x86B2 //CJK UNIFIED IDEOGRAPH - ,0xCD68 ,0x86B3 //CJK UNIFIED IDEOGRAPH - ,0xCD69 ,0x86B7 //CJK UNIFIED IDEOGRAPH - ,0xCD6A ,0x86B8 //CJK UNIFIED IDEOGRAPH - ,0xCD6B ,0x86B9 //CJK UNIFIED IDEOGRAPH - ,0xCD6C ,0x86BB //CJK UNIFIED IDEOGRAPH - ,0xCD6D ,0x86BC //CJK UNIFIED IDEOGRAPH - ,0xCD6E ,0x86BD //CJK UNIFIED IDEOGRAPH - ,0xCD6F ,0x86BE //CJK UNIFIED IDEOGRAPH - ,0xCD70 ,0x86BF //CJK UNIFIED IDEOGRAPH - ,0xCD71 ,0x86C1 //CJK UNIFIED IDEOGRAPH - ,0xCD72 ,0x86C2 //CJK UNIFIED IDEOGRAPH - ,0xCD73 ,0x86C3 //CJK UNIFIED IDEOGRAPH - ,0xCD74 ,0x86C5 //CJK UNIFIED IDEOGRAPH - ,0xCD75 ,0x86C8 //CJK UNIFIED IDEOGRAPH - ,0xCD76 ,0x86CC //CJK UNIFIED IDEOGRAPH - ,0xCD77 ,0x86CD //CJK UNIFIED IDEOGRAPH - ,0xCD78 ,0x86D2 //CJK UNIFIED IDEOGRAPH - ,0xCD79 ,0x86D3 //CJK UNIFIED IDEOGRAPH - ,0xCD7A ,0x86D5 //CJK UNIFIED IDEOGRAPH - ,0xCD7B ,0x86D6 //CJK UNIFIED IDEOGRAPH - ,0xCD7C ,0x86D7 //CJK UNIFIED IDEOGRAPH - ,0xCD7D ,0x86DA //CJK UNIFIED IDEOGRAPH - ,0xCD7E ,0x86DC //CJK UNIFIED IDEOGRAPH - ,0xCD80 ,0x86DD //CJK UNIFIED IDEOGRAPH - ,0xCD81 ,0x86E0 //CJK UNIFIED IDEOGRAPH - ,0xCD82 ,0x86E1 //CJK UNIFIED IDEOGRAPH - ,0xCD83 ,0x86E2 //CJK UNIFIED IDEOGRAPH - ,0xCD84 ,0x86E3 //CJK UNIFIED IDEOGRAPH - ,0xCD85 ,0x86E5 //CJK UNIFIED IDEOGRAPH - ,0xCD86 ,0x86E6 //CJK UNIFIED IDEOGRAPH - ,0xCD87 ,0x86E7 //CJK UNIFIED IDEOGRAPH - ,0xCD88 ,0x86E8 //CJK UNIFIED IDEOGRAPH - ,0xCD89 ,0x86EA //CJK UNIFIED IDEOGRAPH - ,0xCD8A ,0x86EB //CJK UNIFIED IDEOGRAPH - ,0xCD8B ,0x86EC //CJK UNIFIED IDEOGRAPH - ,0xCD8C ,0x86EF //CJK UNIFIED IDEOGRAPH - ,0xCD8D ,0x86F5 //CJK UNIFIED IDEOGRAPH - ,0xCD8E ,0x86F6 //CJK UNIFIED IDEOGRAPH - ,0xCD8F ,0x86F7 //CJK UNIFIED IDEOGRAPH - ,0xCD90 ,0x86FA //CJK UNIFIED IDEOGRAPH - ,0xCD91 ,0x86FB //CJK UNIFIED IDEOGRAPH - ,0xCD92 ,0x86FC //CJK UNIFIED IDEOGRAPH - ,0xCD93 ,0x86FD //CJK UNIFIED IDEOGRAPH - ,0xCD94 ,0x86FF //CJK UNIFIED IDEOGRAPH - ,0xCD95 ,0x8701 //CJK UNIFIED IDEOGRAPH - ,0xCD96 ,0x8704 //CJK UNIFIED IDEOGRAPH - ,0xCD97 ,0x8705 //CJK UNIFIED IDEOGRAPH - ,0xCD98 ,0x8706 //CJK UNIFIED IDEOGRAPH - ,0xCD99 ,0x870B //CJK UNIFIED IDEOGRAPH - ,0xCD9A ,0x870C //CJK UNIFIED IDEOGRAPH - ,0xCD9B ,0x870E //CJK UNIFIED IDEOGRAPH - ,0xCD9C ,0x870F //CJK UNIFIED IDEOGRAPH - ,0xCD9D ,0x8710 //CJK UNIFIED IDEOGRAPH - ,0xCD9E ,0x8711 //CJK UNIFIED IDEOGRAPH - ,0xCD9F ,0x8714 //CJK UNIFIED IDEOGRAPH - ,0xCDA0 ,0x8716 //CJK UNIFIED IDEOGRAPH - ,0xCDA1 ,0x6C40 //CJK UNIFIED IDEOGRAPH - ,0xCDA2 ,0x5EF7 //CJK UNIFIED IDEOGRAPH - ,0xCDA3 ,0x505C //CJK UNIFIED IDEOGRAPH - ,0xCDA4 ,0x4EAD //CJK UNIFIED IDEOGRAPH - ,0xCDA5 ,0x5EAD //CJK UNIFIED IDEOGRAPH - ,0xCDA6 ,0x633A //CJK UNIFIED IDEOGRAPH - ,0xCDA7 ,0x8247 //CJK UNIFIED IDEOGRAPH - ,0xCDA8 ,0x901A //CJK UNIFIED IDEOGRAPH - ,0xCDA9 ,0x6850 //CJK UNIFIED IDEOGRAPH - ,0xCDAA ,0x916E //CJK UNIFIED IDEOGRAPH - ,0xCDAB ,0x77B3 //CJK UNIFIED IDEOGRAPH - ,0xCDAC ,0x540C //CJK UNIFIED IDEOGRAPH - ,0xCDAD ,0x94DC //CJK UNIFIED IDEOGRAPH - ,0xCDAE ,0x5F64 //CJK UNIFIED IDEOGRAPH - ,0xCDAF ,0x7AE5 //CJK UNIFIED IDEOGRAPH - ,0xCDB0 ,0x6876 //CJK UNIFIED IDEOGRAPH - ,0xCDB1 ,0x6345 //CJK UNIFIED IDEOGRAPH - ,0xCDB2 ,0x7B52 //CJK UNIFIED IDEOGRAPH - ,0xCDB3 ,0x7EDF //CJK UNIFIED IDEOGRAPH - ,0xCDB4 ,0x75DB //CJK UNIFIED IDEOGRAPH - ,0xCDB5 ,0x5077 //CJK UNIFIED IDEOGRAPH - ,0xCDB6 ,0x6295 //CJK UNIFIED IDEOGRAPH - ,0xCDB7 ,0x5934 //CJK UNIFIED IDEOGRAPH - ,0xCDB8 ,0x900F //CJK UNIFIED IDEOGRAPH - ,0xCDB9 ,0x51F8 //CJK UNIFIED IDEOGRAPH - ,0xCDBA ,0x79C3 //CJK UNIFIED IDEOGRAPH - ,0xCDBB ,0x7A81 //CJK UNIFIED IDEOGRAPH - ,0xCDBC ,0x56FE //CJK UNIFIED IDEOGRAPH - ,0xCDBD ,0x5F92 //CJK UNIFIED IDEOGRAPH - ,0xCDBE ,0x9014 //CJK UNIFIED IDEOGRAPH - ,0xCDBF ,0x6D82 //CJK UNIFIED IDEOGRAPH - ,0xCDC0 ,0x5C60 //CJK UNIFIED IDEOGRAPH - ,0xCDC1 ,0x571F //CJK UNIFIED IDEOGRAPH - ,0xCDC2 ,0x5410 //CJK UNIFIED IDEOGRAPH - ,0xCDC3 ,0x5154 //CJK UNIFIED IDEOGRAPH - ,0xCDC4 ,0x6E4D //CJK UNIFIED IDEOGRAPH - ,0xCDC5 ,0x56E2 //CJK UNIFIED IDEOGRAPH - ,0xCDC6 ,0x63A8 //CJK UNIFIED IDEOGRAPH - ,0xCDC7 ,0x9893 //CJK UNIFIED IDEOGRAPH - ,0xCDC8 ,0x817F //CJK UNIFIED IDEOGRAPH - ,0xCDC9 ,0x8715 //CJK UNIFIED IDEOGRAPH - ,0xCDCA ,0x892A //CJK UNIFIED IDEOGRAPH - ,0xCDCB ,0x9000 //CJK UNIFIED IDEOGRAPH - ,0xCDCC ,0x541E //CJK UNIFIED IDEOGRAPH - ,0xCDCD ,0x5C6F //CJK UNIFIED IDEOGRAPH - ,0xCDCE ,0x81C0 //CJK UNIFIED IDEOGRAPH - ,0xCDCF ,0x62D6 //CJK UNIFIED IDEOGRAPH - ,0xCDD0 ,0x6258 //CJK UNIFIED IDEOGRAPH - ,0xCDD1 ,0x8131 //CJK UNIFIED IDEOGRAPH - ,0xCDD2 ,0x9E35 //CJK UNIFIED IDEOGRAPH - ,0xCDD3 ,0x9640 //CJK UNIFIED IDEOGRAPH - ,0xCDD4 ,0x9A6E //CJK UNIFIED IDEOGRAPH - ,0xCDD5 ,0x9A7C //CJK UNIFIED IDEOGRAPH - ,0xCDD6 ,0x692D //CJK UNIFIED IDEOGRAPH - ,0xCDD7 ,0x59A5 //CJK UNIFIED IDEOGRAPH - ,0xCDD8 ,0x62D3 //CJK UNIFIED IDEOGRAPH - ,0xCDD9 ,0x553E //CJK UNIFIED IDEOGRAPH - ,0xCDDA ,0x6316 //CJK UNIFIED IDEOGRAPH - ,0xCDDB ,0x54C7 //CJK UNIFIED IDEOGRAPH - ,0xCDDC ,0x86D9 //CJK UNIFIED IDEOGRAPH - ,0xCDDD ,0x6D3C //CJK UNIFIED IDEOGRAPH - ,0xCDDE ,0x5A03 //CJK UNIFIED IDEOGRAPH - ,0xCDDF ,0x74E6 //CJK UNIFIED IDEOGRAPH - ,0xCDE0 ,0x889C //CJK UNIFIED IDEOGRAPH - ,0xCDE1 ,0x6B6A //CJK UNIFIED IDEOGRAPH - ,0xCDE2 ,0x5916 //CJK UNIFIED IDEOGRAPH - ,0xCDE3 ,0x8C4C //CJK UNIFIED IDEOGRAPH - ,0xCDE4 ,0x5F2F //CJK UNIFIED IDEOGRAPH - ,0xCDE5 ,0x6E7E //CJK UNIFIED IDEOGRAPH - ,0xCDE6 ,0x73A9 //CJK UNIFIED IDEOGRAPH - ,0xCDE7 ,0x987D //CJK UNIFIED IDEOGRAPH - ,0xCDE8 ,0x4E38 //CJK UNIFIED IDEOGRAPH - ,0xCDE9 ,0x70F7 //CJK UNIFIED IDEOGRAPH - ,0xCDEA ,0x5B8C //CJK UNIFIED IDEOGRAPH - ,0xCDEB ,0x7897 //CJK UNIFIED IDEOGRAPH - ,0xCDEC ,0x633D //CJK UNIFIED IDEOGRAPH - ,0xCDED ,0x665A //CJK UNIFIED IDEOGRAPH - ,0xCDEE ,0x7696 //CJK UNIFIED IDEOGRAPH - ,0xCDEF ,0x60CB //CJK UNIFIED IDEOGRAPH - ,0xCDF0 ,0x5B9B //CJK UNIFIED IDEOGRAPH - ,0xCDF1 ,0x5A49 //CJK UNIFIED IDEOGRAPH - ,0xCDF2 ,0x4E07 //CJK UNIFIED IDEOGRAPH - ,0xCDF3 ,0x8155 //CJK UNIFIED IDEOGRAPH - ,0xCDF4 ,0x6C6A //CJK UNIFIED IDEOGRAPH - ,0xCDF5 ,0x738B //CJK UNIFIED IDEOGRAPH - ,0xCDF6 ,0x4EA1 //CJK UNIFIED IDEOGRAPH - ,0xCDF7 ,0x6789 //CJK UNIFIED IDEOGRAPH - ,0xCDF8 ,0x7F51 //CJK UNIFIED IDEOGRAPH - ,0xCDF9 ,0x5F80 //CJK UNIFIED IDEOGRAPH - ,0xCDFA ,0x65FA //CJK UNIFIED IDEOGRAPH - ,0xCDFB ,0x671B //CJK UNIFIED IDEOGRAPH - ,0xCDFC ,0x5FD8 //CJK UNIFIED IDEOGRAPH - ,0xCDFD ,0x5984 //CJK UNIFIED IDEOGRAPH - ,0xCDFE ,0x5A01 //CJK UNIFIED IDEOGRAPH - ,0xCE40 ,0x8719 //CJK UNIFIED IDEOGRAPH - ,0xCE41 ,0x871B //CJK UNIFIED IDEOGRAPH - ,0xCE42 ,0x871D //CJK UNIFIED IDEOGRAPH - ,0xCE43 ,0x871F //CJK UNIFIED IDEOGRAPH - ,0xCE44 ,0x8720 //CJK UNIFIED IDEOGRAPH - ,0xCE45 ,0x8724 //CJK UNIFIED IDEOGRAPH - ,0xCE46 ,0x8726 //CJK UNIFIED IDEOGRAPH - ,0xCE47 ,0x8727 //CJK UNIFIED IDEOGRAPH - ,0xCE48 ,0x8728 //CJK UNIFIED IDEOGRAPH - ,0xCE49 ,0x872A //CJK UNIFIED IDEOGRAPH - ,0xCE4A ,0x872B //CJK UNIFIED IDEOGRAPH - ,0xCE4B ,0x872C //CJK UNIFIED IDEOGRAPH - ,0xCE4C ,0x872D //CJK UNIFIED IDEOGRAPH - ,0xCE4D ,0x872F //CJK UNIFIED IDEOGRAPH - ,0xCE4E ,0x8730 //CJK UNIFIED IDEOGRAPH - ,0xCE4F ,0x8732 //CJK UNIFIED IDEOGRAPH - ,0xCE50 ,0x8733 //CJK UNIFIED IDEOGRAPH - ,0xCE51 ,0x8735 //CJK UNIFIED IDEOGRAPH - ,0xCE52 ,0x8736 //CJK UNIFIED IDEOGRAPH - ,0xCE53 ,0x8738 //CJK UNIFIED IDEOGRAPH - ,0xCE54 ,0x8739 //CJK UNIFIED IDEOGRAPH - ,0xCE55 ,0x873A //CJK UNIFIED IDEOGRAPH - ,0xCE56 ,0x873C //CJK UNIFIED IDEOGRAPH - ,0xCE57 ,0x873D //CJK UNIFIED IDEOGRAPH - ,0xCE58 ,0x8740 //CJK UNIFIED IDEOGRAPH - ,0xCE59 ,0x8741 //CJK UNIFIED IDEOGRAPH - ,0xCE5A ,0x8742 //CJK UNIFIED IDEOGRAPH - ,0xCE5B ,0x8743 //CJK UNIFIED IDEOGRAPH - ,0xCE5C ,0x8744 //CJK UNIFIED IDEOGRAPH - ,0xCE5D ,0x8745 //CJK UNIFIED IDEOGRAPH - ,0xCE5E ,0x8746 //CJK UNIFIED IDEOGRAPH - ,0xCE5F ,0x874A //CJK UNIFIED IDEOGRAPH - ,0xCE60 ,0x874B //CJK UNIFIED IDEOGRAPH - ,0xCE61 ,0x874D //CJK UNIFIED IDEOGRAPH - ,0xCE62 ,0x874F //CJK UNIFIED IDEOGRAPH - ,0xCE63 ,0x8750 //CJK UNIFIED IDEOGRAPH - ,0xCE64 ,0x8751 //CJK UNIFIED IDEOGRAPH - ,0xCE65 ,0x8752 //CJK UNIFIED IDEOGRAPH - ,0xCE66 ,0x8754 //CJK UNIFIED IDEOGRAPH - ,0xCE67 ,0x8755 //CJK UNIFIED IDEOGRAPH - ,0xCE68 ,0x8756 //CJK UNIFIED IDEOGRAPH - ,0xCE69 ,0x8758 //CJK UNIFIED IDEOGRAPH - ,0xCE6A ,0x875A //CJK UNIFIED IDEOGRAPH - ,0xCE6B ,0x875B //CJK UNIFIED IDEOGRAPH - ,0xCE6C ,0x875C //CJK UNIFIED IDEOGRAPH - ,0xCE6D ,0x875D //CJK UNIFIED IDEOGRAPH - ,0xCE6E ,0x875E //CJK UNIFIED IDEOGRAPH - ,0xCE6F ,0x875F //CJK UNIFIED IDEOGRAPH - ,0xCE70 ,0x8761 //CJK UNIFIED IDEOGRAPH - ,0xCE71 ,0x8762 //CJK UNIFIED IDEOGRAPH - ,0xCE72 ,0x8766 //CJK UNIFIED IDEOGRAPH - ,0xCE73 ,0x8767 //CJK UNIFIED IDEOGRAPH - ,0xCE74 ,0x8768 //CJK UNIFIED IDEOGRAPH - ,0xCE75 ,0x8769 //CJK UNIFIED IDEOGRAPH - ,0xCE76 ,0x876A //CJK UNIFIED IDEOGRAPH - ,0xCE77 ,0x876B //CJK UNIFIED IDEOGRAPH - ,0xCE78 ,0x876C //CJK UNIFIED IDEOGRAPH - ,0xCE79 ,0x876D //CJK UNIFIED IDEOGRAPH - ,0xCE7A ,0x876F //CJK UNIFIED IDEOGRAPH - ,0xCE7B ,0x8771 //CJK UNIFIED IDEOGRAPH - ,0xCE7C ,0x8772 //CJK UNIFIED IDEOGRAPH - ,0xCE7D ,0x8773 //CJK UNIFIED IDEOGRAPH - ,0xCE7E ,0x8775 //CJK UNIFIED IDEOGRAPH - ,0xCE80 ,0x8777 //CJK UNIFIED IDEOGRAPH - ,0xCE81 ,0x8778 //CJK UNIFIED IDEOGRAPH - ,0xCE82 ,0x8779 //CJK UNIFIED IDEOGRAPH - ,0xCE83 ,0x877A //CJK UNIFIED IDEOGRAPH - ,0xCE84 ,0x877F //CJK UNIFIED IDEOGRAPH - ,0xCE85 ,0x8780 //CJK UNIFIED IDEOGRAPH - ,0xCE86 ,0x8781 //CJK UNIFIED IDEOGRAPH - ,0xCE87 ,0x8784 //CJK UNIFIED IDEOGRAPH - ,0xCE88 ,0x8786 //CJK UNIFIED IDEOGRAPH - ,0xCE89 ,0x8787 //CJK UNIFIED IDEOGRAPH - ,0xCE8A ,0x8789 //CJK UNIFIED IDEOGRAPH - ,0xCE8B ,0x878A //CJK UNIFIED IDEOGRAPH - ,0xCE8C ,0x878C //CJK UNIFIED IDEOGRAPH - ,0xCE8D ,0x878E //CJK UNIFIED IDEOGRAPH - ,0xCE8E ,0x878F //CJK UNIFIED IDEOGRAPH - ,0xCE8F ,0x8790 //CJK UNIFIED IDEOGRAPH - ,0xCE90 ,0x8791 //CJK UNIFIED IDEOGRAPH - ,0xCE91 ,0x8792 //CJK UNIFIED IDEOGRAPH - ,0xCE92 ,0x8794 //CJK UNIFIED IDEOGRAPH - ,0xCE93 ,0x8795 //CJK UNIFIED IDEOGRAPH - ,0xCE94 ,0x8796 //CJK UNIFIED IDEOGRAPH - ,0xCE95 ,0x8798 //CJK UNIFIED IDEOGRAPH - ,0xCE96 ,0x8799 //CJK UNIFIED IDEOGRAPH - ,0xCE97 ,0x879A //CJK UNIFIED IDEOGRAPH - ,0xCE98 ,0x879B //CJK UNIFIED IDEOGRAPH - ,0xCE99 ,0x879C //CJK UNIFIED IDEOGRAPH - ,0xCE9A ,0x879D //CJK UNIFIED IDEOGRAPH - ,0xCE9B ,0x879E //CJK UNIFIED IDEOGRAPH - ,0xCE9C ,0x87A0 //CJK UNIFIED IDEOGRAPH - ,0xCE9D ,0x87A1 //CJK UNIFIED IDEOGRAPH - ,0xCE9E ,0x87A2 //CJK UNIFIED IDEOGRAPH - ,0xCE9F ,0x87A3 //CJK UNIFIED IDEOGRAPH - ,0xCEA0 ,0x87A4 //CJK UNIFIED IDEOGRAPH - ,0xCEA1 ,0x5DCD //CJK UNIFIED IDEOGRAPH - ,0xCEA2 ,0x5FAE //CJK UNIFIED IDEOGRAPH - ,0xCEA3 ,0x5371 //CJK UNIFIED IDEOGRAPH - ,0xCEA4 ,0x97E6 //CJK UNIFIED IDEOGRAPH - ,0xCEA5 ,0x8FDD //CJK UNIFIED IDEOGRAPH - ,0xCEA6 ,0x6845 //CJK UNIFIED IDEOGRAPH - ,0xCEA7 ,0x56F4 //CJK UNIFIED IDEOGRAPH - ,0xCEA8 ,0x552F //CJK UNIFIED IDEOGRAPH - ,0xCEA9 ,0x60DF //CJK UNIFIED IDEOGRAPH - ,0xCEAA ,0x4E3A //CJK UNIFIED IDEOGRAPH - ,0xCEAB ,0x6F4D //CJK UNIFIED IDEOGRAPH - ,0xCEAC ,0x7EF4 //CJK UNIFIED IDEOGRAPH - ,0xCEAD ,0x82C7 //CJK UNIFIED IDEOGRAPH - ,0xCEAE ,0x840E //CJK UNIFIED IDEOGRAPH - ,0xCEAF ,0x59D4 //CJK UNIFIED IDEOGRAPH - ,0xCEB0 ,0x4F1F //CJK UNIFIED IDEOGRAPH - ,0xCEB1 ,0x4F2A //CJK UNIFIED IDEOGRAPH - ,0xCEB2 ,0x5C3E //CJK UNIFIED IDEOGRAPH - ,0xCEB3 ,0x7EAC //CJK UNIFIED IDEOGRAPH - ,0xCEB4 ,0x672A //CJK UNIFIED IDEOGRAPH - ,0xCEB5 ,0x851A //CJK UNIFIED IDEOGRAPH - ,0xCEB6 ,0x5473 //CJK UNIFIED IDEOGRAPH - ,0xCEB7 ,0x754F //CJK UNIFIED IDEOGRAPH - ,0xCEB8 ,0x80C3 //CJK UNIFIED IDEOGRAPH - ,0xCEB9 ,0x5582 //CJK UNIFIED IDEOGRAPH - ,0xCEBA ,0x9B4F //CJK UNIFIED IDEOGRAPH - ,0xCEBB ,0x4F4D //CJK UNIFIED IDEOGRAPH - ,0xCEBC ,0x6E2D //CJK UNIFIED IDEOGRAPH - ,0xCEBD ,0x8C13 //CJK UNIFIED IDEOGRAPH - ,0xCEBE ,0x5C09 //CJK UNIFIED IDEOGRAPH - ,0xCEBF ,0x6170 //CJK UNIFIED IDEOGRAPH - ,0xCEC0 ,0x536B //CJK UNIFIED IDEOGRAPH - ,0xCEC1 ,0x761F //CJK UNIFIED IDEOGRAPH - ,0xCEC2 ,0x6E29 //CJK UNIFIED IDEOGRAPH - ,0xCEC3 ,0x868A //CJK UNIFIED IDEOGRAPH - ,0xCEC4 ,0x6587 //CJK UNIFIED IDEOGRAPH - ,0xCEC5 ,0x95FB //CJK UNIFIED IDEOGRAPH - ,0xCEC6 ,0x7EB9 //CJK UNIFIED IDEOGRAPH - ,0xCEC7 ,0x543B //CJK UNIFIED IDEOGRAPH - ,0xCEC8 ,0x7A33 //CJK UNIFIED IDEOGRAPH - ,0xCEC9 ,0x7D0A //CJK UNIFIED IDEOGRAPH - ,0xCECA ,0x95EE //CJK UNIFIED IDEOGRAPH - ,0xCECB ,0x55E1 //CJK UNIFIED IDEOGRAPH - ,0xCECC ,0x7FC1 //CJK UNIFIED IDEOGRAPH - ,0xCECD ,0x74EE //CJK UNIFIED IDEOGRAPH - ,0xCECE ,0x631D //CJK UNIFIED IDEOGRAPH - ,0xCECF ,0x8717 //CJK UNIFIED IDEOGRAPH - ,0xCED0 ,0x6DA1 //CJK UNIFIED IDEOGRAPH - ,0xCED1 ,0x7A9D //CJK UNIFIED IDEOGRAPH - ,0xCED2 ,0x6211 //CJK UNIFIED IDEOGRAPH - ,0xCED3 ,0x65A1 //CJK UNIFIED IDEOGRAPH - ,0xCED4 ,0x5367 //CJK UNIFIED IDEOGRAPH - ,0xCED5 ,0x63E1 //CJK UNIFIED IDEOGRAPH - ,0xCED6 ,0x6C83 //CJK UNIFIED IDEOGRAPH - ,0xCED7 ,0x5DEB //CJK UNIFIED IDEOGRAPH - ,0xCED8 ,0x545C //CJK UNIFIED IDEOGRAPH - ,0xCED9 ,0x94A8 //CJK UNIFIED IDEOGRAPH - ,0xCEDA ,0x4E4C //CJK UNIFIED IDEOGRAPH - ,0xCEDB ,0x6C61 //CJK UNIFIED IDEOGRAPH - ,0xCEDC ,0x8BEC //CJK UNIFIED IDEOGRAPH - ,0xCEDD ,0x5C4B //CJK UNIFIED IDEOGRAPH - ,0xCEDE ,0x65E0 //CJK UNIFIED IDEOGRAPH - ,0xCEDF ,0x829C //CJK UNIFIED IDEOGRAPH - ,0xCEE0 ,0x68A7 //CJK UNIFIED IDEOGRAPH - ,0xCEE1 ,0x543E //CJK UNIFIED IDEOGRAPH - ,0xCEE2 ,0x5434 //CJK UNIFIED IDEOGRAPH - ,0xCEE3 ,0x6BCB //CJK UNIFIED IDEOGRAPH - ,0xCEE4 ,0x6B66 //CJK UNIFIED IDEOGRAPH - ,0xCEE5 ,0x4E94 //CJK UNIFIED IDEOGRAPH - ,0xCEE6 ,0x6342 //CJK UNIFIED IDEOGRAPH - ,0xCEE7 ,0x5348 //CJK UNIFIED IDEOGRAPH - ,0xCEE8 ,0x821E //CJK UNIFIED IDEOGRAPH - ,0xCEE9 ,0x4F0D //CJK UNIFIED IDEOGRAPH - ,0xCEEA ,0x4FAE //CJK UNIFIED IDEOGRAPH - ,0xCEEB ,0x575E //CJK UNIFIED IDEOGRAPH - ,0xCEEC ,0x620A //CJK UNIFIED IDEOGRAPH - ,0xCEED ,0x96FE //CJK UNIFIED IDEOGRAPH - ,0xCEEE ,0x6664 //CJK UNIFIED IDEOGRAPH - ,0xCEEF ,0x7269 //CJK UNIFIED IDEOGRAPH - ,0xCEF0 ,0x52FF //CJK UNIFIED IDEOGRAPH - ,0xCEF1 ,0x52A1 //CJK UNIFIED IDEOGRAPH - ,0xCEF2 ,0x609F //CJK UNIFIED IDEOGRAPH - ,0xCEF3 ,0x8BEF //CJK UNIFIED IDEOGRAPH - ,0xCEF4 ,0x6614 //CJK UNIFIED IDEOGRAPH - ,0xCEF5 ,0x7199 //CJK UNIFIED IDEOGRAPH - ,0xCEF6 ,0x6790 //CJK UNIFIED IDEOGRAPH - ,0xCEF7 ,0x897F //CJK UNIFIED IDEOGRAPH - ,0xCEF8 ,0x7852 //CJK UNIFIED IDEOGRAPH - ,0xCEF9 ,0x77FD //CJK UNIFIED IDEOGRAPH - ,0xCEFA ,0x6670 //CJK UNIFIED IDEOGRAPH - ,0xCEFB ,0x563B //CJK UNIFIED IDEOGRAPH - ,0xCEFC ,0x5438 //CJK UNIFIED IDEOGRAPH - ,0xCEFD ,0x9521 //CJK UNIFIED IDEOGRAPH - ,0xCEFE ,0x727A //CJK UNIFIED IDEOGRAPH - ,0xCF40 ,0x87A5 //CJK UNIFIED IDEOGRAPH - ,0xCF41 ,0x87A6 //CJK UNIFIED IDEOGRAPH - ,0xCF42 ,0x87A7 //CJK UNIFIED IDEOGRAPH - ,0xCF43 ,0x87A9 //CJK UNIFIED IDEOGRAPH - ,0xCF44 ,0x87AA //CJK UNIFIED IDEOGRAPH - ,0xCF45 ,0x87AE //CJK UNIFIED IDEOGRAPH - ,0xCF46 ,0x87B0 //CJK UNIFIED IDEOGRAPH - ,0xCF47 ,0x87B1 //CJK UNIFIED IDEOGRAPH - ,0xCF48 ,0x87B2 //CJK UNIFIED IDEOGRAPH - ,0xCF49 ,0x87B4 //CJK UNIFIED IDEOGRAPH - ,0xCF4A ,0x87B6 //CJK UNIFIED IDEOGRAPH - ,0xCF4B ,0x87B7 //CJK UNIFIED IDEOGRAPH - ,0xCF4C ,0x87B8 //CJK UNIFIED IDEOGRAPH - ,0xCF4D ,0x87B9 //CJK UNIFIED IDEOGRAPH - ,0xCF4E ,0x87BB //CJK UNIFIED IDEOGRAPH - ,0xCF4F ,0x87BC //CJK UNIFIED IDEOGRAPH - ,0xCF50 ,0x87BE //CJK UNIFIED IDEOGRAPH - ,0xCF51 ,0x87BF //CJK UNIFIED IDEOGRAPH - ,0xCF52 ,0x87C1 //CJK UNIFIED IDEOGRAPH - ,0xCF53 ,0x87C2 //CJK UNIFIED IDEOGRAPH - ,0xCF54 ,0x87C3 //CJK UNIFIED IDEOGRAPH - ,0xCF55 ,0x87C4 //CJK UNIFIED IDEOGRAPH - ,0xCF56 ,0x87C5 //CJK UNIFIED IDEOGRAPH - ,0xCF57 ,0x87C7 //CJK UNIFIED IDEOGRAPH - ,0xCF58 ,0x87C8 //CJK UNIFIED IDEOGRAPH - ,0xCF59 ,0x87C9 //CJK UNIFIED IDEOGRAPH - ,0xCF5A ,0x87CC //CJK UNIFIED IDEOGRAPH - ,0xCF5B ,0x87CD //CJK UNIFIED IDEOGRAPH - ,0xCF5C ,0x87CE //CJK UNIFIED IDEOGRAPH - ,0xCF5D ,0x87CF //CJK UNIFIED IDEOGRAPH - ,0xCF5E ,0x87D0 //CJK UNIFIED IDEOGRAPH - ,0xCF5F ,0x87D4 //CJK UNIFIED IDEOGRAPH - ,0xCF60 ,0x87D5 //CJK UNIFIED IDEOGRAPH - ,0xCF61 ,0x87D6 //CJK UNIFIED IDEOGRAPH - ,0xCF62 ,0x87D7 //CJK UNIFIED IDEOGRAPH - ,0xCF63 ,0x87D8 //CJK UNIFIED IDEOGRAPH - ,0xCF64 ,0x87D9 //CJK UNIFIED IDEOGRAPH - ,0xCF65 ,0x87DA //CJK UNIFIED IDEOGRAPH - ,0xCF66 ,0x87DC //CJK UNIFIED IDEOGRAPH - ,0xCF67 ,0x87DD //CJK UNIFIED IDEOGRAPH - ,0xCF68 ,0x87DE //CJK UNIFIED IDEOGRAPH - ,0xCF69 ,0x87DF //CJK UNIFIED IDEOGRAPH - ,0xCF6A ,0x87E1 //CJK UNIFIED IDEOGRAPH - ,0xCF6B ,0x87E2 //CJK UNIFIED IDEOGRAPH - ,0xCF6C ,0x87E3 //CJK UNIFIED IDEOGRAPH - ,0xCF6D ,0x87E4 //CJK UNIFIED IDEOGRAPH - ,0xCF6E ,0x87E6 //CJK UNIFIED IDEOGRAPH - ,0xCF6F ,0x87E7 //CJK UNIFIED IDEOGRAPH - ,0xCF70 ,0x87E8 //CJK UNIFIED IDEOGRAPH - ,0xCF71 ,0x87E9 //CJK UNIFIED IDEOGRAPH - ,0xCF72 ,0x87EB //CJK UNIFIED IDEOGRAPH - ,0xCF73 ,0x87EC //CJK UNIFIED IDEOGRAPH - ,0xCF74 ,0x87ED //CJK UNIFIED IDEOGRAPH - ,0xCF75 ,0x87EF //CJK UNIFIED IDEOGRAPH - ,0xCF76 ,0x87F0 //CJK UNIFIED IDEOGRAPH - ,0xCF77 ,0x87F1 //CJK UNIFIED IDEOGRAPH - ,0xCF78 ,0x87F2 //CJK UNIFIED IDEOGRAPH - ,0xCF79 ,0x87F3 //CJK UNIFIED IDEOGRAPH - ,0xCF7A ,0x87F4 //CJK UNIFIED IDEOGRAPH - ,0xCF7B ,0x87F5 //CJK UNIFIED IDEOGRAPH - ,0xCF7C ,0x87F6 //CJK UNIFIED IDEOGRAPH - ,0xCF7D ,0x87F7 //CJK UNIFIED IDEOGRAPH - ,0xCF7E ,0x87F8 //CJK UNIFIED IDEOGRAPH - ,0xCF80 ,0x87FA //CJK UNIFIED IDEOGRAPH - ,0xCF81 ,0x87FB //CJK UNIFIED IDEOGRAPH - ,0xCF82 ,0x87FC //CJK UNIFIED IDEOGRAPH - ,0xCF83 ,0x87FD //CJK UNIFIED IDEOGRAPH - ,0xCF84 ,0x87FF //CJK UNIFIED IDEOGRAPH - ,0xCF85 ,0x8800 //CJK UNIFIED IDEOGRAPH - ,0xCF86 ,0x8801 //CJK UNIFIED IDEOGRAPH - ,0xCF87 ,0x8802 //CJK UNIFIED IDEOGRAPH - ,0xCF88 ,0x8804 //CJK UNIFIED IDEOGRAPH - ,0xCF89 ,0x8805 //CJK UNIFIED IDEOGRAPH - ,0xCF8A ,0x8806 //CJK UNIFIED IDEOGRAPH - ,0xCF8B ,0x8807 //CJK UNIFIED IDEOGRAPH - ,0xCF8C ,0x8808 //CJK UNIFIED IDEOGRAPH - ,0xCF8D ,0x8809 //CJK UNIFIED IDEOGRAPH - ,0xCF8E ,0x880B //CJK UNIFIED IDEOGRAPH - ,0xCF8F ,0x880C //CJK UNIFIED IDEOGRAPH - ,0xCF90 ,0x880D //CJK UNIFIED IDEOGRAPH - ,0xCF91 ,0x880E //CJK UNIFIED IDEOGRAPH - ,0xCF92 ,0x880F //CJK UNIFIED IDEOGRAPH - ,0xCF93 ,0x8810 //CJK UNIFIED IDEOGRAPH - ,0xCF94 ,0x8811 //CJK UNIFIED IDEOGRAPH - ,0xCF95 ,0x8812 //CJK UNIFIED IDEOGRAPH - ,0xCF96 ,0x8814 //CJK UNIFIED IDEOGRAPH - ,0xCF97 ,0x8817 //CJK UNIFIED IDEOGRAPH - ,0xCF98 ,0x8818 //CJK UNIFIED IDEOGRAPH - ,0xCF99 ,0x8819 //CJK UNIFIED IDEOGRAPH - ,0xCF9A ,0x881A //CJK UNIFIED IDEOGRAPH - ,0xCF9B ,0x881C //CJK UNIFIED IDEOGRAPH - ,0xCF9C ,0x881D //CJK UNIFIED IDEOGRAPH - ,0xCF9D ,0x881E //CJK UNIFIED IDEOGRAPH - ,0xCF9E ,0x881F //CJK UNIFIED IDEOGRAPH - ,0xCF9F ,0x8820 //CJK UNIFIED IDEOGRAPH - ,0xCFA0 ,0x8823 //CJK UNIFIED IDEOGRAPH - ,0xCFA1 ,0x7A00 //CJK UNIFIED IDEOGRAPH - ,0xCFA2 ,0x606F //CJK UNIFIED IDEOGRAPH - ,0xCFA3 ,0x5E0C //CJK UNIFIED IDEOGRAPH - ,0xCFA4 ,0x6089 //CJK UNIFIED IDEOGRAPH - ,0xCFA5 ,0x819D //CJK UNIFIED IDEOGRAPH - ,0xCFA6 ,0x5915 //CJK UNIFIED IDEOGRAPH - ,0xCFA7 ,0x60DC //CJK UNIFIED IDEOGRAPH - ,0xCFA8 ,0x7184 //CJK UNIFIED IDEOGRAPH - ,0xCFA9 ,0x70EF //CJK UNIFIED IDEOGRAPH - ,0xCFAA ,0x6EAA //CJK UNIFIED IDEOGRAPH - ,0xCFAB ,0x6C50 //CJK UNIFIED IDEOGRAPH - ,0xCFAC ,0x7280 //CJK UNIFIED IDEOGRAPH - ,0xCFAD ,0x6A84 //CJK UNIFIED IDEOGRAPH - ,0xCFAE ,0x88AD //CJK UNIFIED IDEOGRAPH - ,0xCFAF ,0x5E2D //CJK UNIFIED IDEOGRAPH - ,0xCFB0 ,0x4E60 //CJK UNIFIED IDEOGRAPH - ,0xCFB1 ,0x5AB3 //CJK UNIFIED IDEOGRAPH - ,0xCFB2 ,0x559C //CJK UNIFIED IDEOGRAPH - ,0xCFB3 ,0x94E3 //CJK UNIFIED IDEOGRAPH - ,0xCFB4 ,0x6D17 //CJK UNIFIED IDEOGRAPH - ,0xCFB5 ,0x7CFB //CJK UNIFIED IDEOGRAPH - ,0xCFB6 ,0x9699 //CJK UNIFIED IDEOGRAPH - ,0xCFB7 ,0x620F //CJK UNIFIED IDEOGRAPH - ,0xCFB8 ,0x7EC6 //CJK UNIFIED IDEOGRAPH - ,0xCFB9 ,0x778E //CJK UNIFIED IDEOGRAPH - ,0xCFBA ,0x867E //CJK UNIFIED IDEOGRAPH - ,0xCFBB ,0x5323 //CJK UNIFIED IDEOGRAPH - ,0xCFBC ,0x971E //CJK UNIFIED IDEOGRAPH - ,0xCFBD ,0x8F96 //CJK UNIFIED IDEOGRAPH - ,0xCFBE ,0x6687 //CJK UNIFIED IDEOGRAPH - ,0xCFBF ,0x5CE1 //CJK UNIFIED IDEOGRAPH - ,0xCFC0 ,0x4FA0 //CJK UNIFIED IDEOGRAPH - ,0xCFC1 ,0x72ED //CJK UNIFIED IDEOGRAPH - ,0xCFC2 ,0x4E0B //CJK UNIFIED IDEOGRAPH - ,0xCFC3 ,0x53A6 //CJK UNIFIED IDEOGRAPH - ,0xCFC4 ,0x590F //CJK UNIFIED IDEOGRAPH - ,0xCFC5 ,0x5413 //CJK UNIFIED IDEOGRAPH - ,0xCFC6 ,0x6380 //CJK UNIFIED IDEOGRAPH - ,0xCFC7 ,0x9528 //CJK UNIFIED IDEOGRAPH - ,0xCFC8 ,0x5148 //CJK UNIFIED IDEOGRAPH - ,0xCFC9 ,0x4ED9 //CJK UNIFIED IDEOGRAPH - ,0xCFCA ,0x9C9C //CJK UNIFIED IDEOGRAPH - ,0xCFCB ,0x7EA4 //CJK UNIFIED IDEOGRAPH - ,0xCFCC ,0x54B8 //CJK UNIFIED IDEOGRAPH - ,0xCFCD ,0x8D24 //CJK UNIFIED IDEOGRAPH - ,0xCFCE ,0x8854 //CJK UNIFIED IDEOGRAPH - ,0xCFCF ,0x8237 //CJK UNIFIED IDEOGRAPH - ,0xCFD0 ,0x95F2 //CJK UNIFIED IDEOGRAPH - ,0xCFD1 ,0x6D8E //CJK UNIFIED IDEOGRAPH - ,0xCFD2 ,0x5F26 //CJK UNIFIED IDEOGRAPH - ,0xCFD3 ,0x5ACC //CJK UNIFIED IDEOGRAPH - ,0xCFD4 ,0x663E //CJK UNIFIED IDEOGRAPH - ,0xCFD5 ,0x9669 //CJK UNIFIED IDEOGRAPH - ,0xCFD6 ,0x73B0 //CJK UNIFIED IDEOGRAPH - ,0xCFD7 ,0x732E //CJK UNIFIED IDEOGRAPH - ,0xCFD8 ,0x53BF //CJK UNIFIED IDEOGRAPH - ,0xCFD9 ,0x817A //CJK UNIFIED IDEOGRAPH - ,0xCFDA ,0x9985 //CJK UNIFIED IDEOGRAPH - ,0xCFDB ,0x7FA1 //CJK UNIFIED IDEOGRAPH - ,0xCFDC ,0x5BAA //CJK UNIFIED IDEOGRAPH - ,0xCFDD ,0x9677 //CJK UNIFIED IDEOGRAPH - ,0xCFDE ,0x9650 //CJK UNIFIED IDEOGRAPH - ,0xCFDF ,0x7EBF //CJK UNIFIED IDEOGRAPH - ,0xCFE0 ,0x76F8 //CJK UNIFIED IDEOGRAPH - ,0xCFE1 ,0x53A2 //CJK UNIFIED IDEOGRAPH - ,0xCFE2 ,0x9576 //CJK UNIFIED IDEOGRAPH - ,0xCFE3 ,0x9999 //CJK UNIFIED IDEOGRAPH - ,0xCFE4 ,0x7BB1 //CJK UNIFIED IDEOGRAPH - ,0xCFE5 ,0x8944 //CJK UNIFIED IDEOGRAPH - ,0xCFE6 ,0x6E58 //CJK UNIFIED IDEOGRAPH - ,0xCFE7 ,0x4E61 //CJK UNIFIED IDEOGRAPH - ,0xCFE8 ,0x7FD4 //CJK UNIFIED IDEOGRAPH - ,0xCFE9 ,0x7965 //CJK UNIFIED IDEOGRAPH - ,0xCFEA ,0x8BE6 //CJK UNIFIED IDEOGRAPH - ,0xCFEB ,0x60F3 //CJK UNIFIED IDEOGRAPH - ,0xCFEC ,0x54CD //CJK UNIFIED IDEOGRAPH - ,0xCFED ,0x4EAB //CJK UNIFIED IDEOGRAPH - ,0xCFEE ,0x9879 //CJK UNIFIED IDEOGRAPH - ,0xCFEF ,0x5DF7 //CJK UNIFIED IDEOGRAPH - ,0xCFF0 ,0x6A61 //CJK UNIFIED IDEOGRAPH - ,0xCFF1 ,0x50CF //CJK UNIFIED IDEOGRAPH - ,0xCFF2 ,0x5411 //CJK UNIFIED IDEOGRAPH - ,0xCFF3 ,0x8C61 //CJK UNIFIED IDEOGRAPH - ,0xCFF4 ,0x8427 //CJK UNIFIED IDEOGRAPH - ,0xCFF5 ,0x785D //CJK UNIFIED IDEOGRAPH - ,0xCFF6 ,0x9704 //CJK UNIFIED IDEOGRAPH - ,0xCFF7 ,0x524A //CJK UNIFIED IDEOGRAPH - ,0xCFF8 ,0x54EE //CJK UNIFIED IDEOGRAPH - ,0xCFF9 ,0x56A3 //CJK UNIFIED IDEOGRAPH - ,0xCFFA ,0x9500 //CJK UNIFIED IDEOGRAPH - ,0xCFFB ,0x6D88 //CJK UNIFIED IDEOGRAPH - ,0xCFFC ,0x5BB5 //CJK UNIFIED IDEOGRAPH - ,0xCFFD ,0x6DC6 //CJK UNIFIED IDEOGRAPH - ,0xCFFE ,0x6653 //CJK UNIFIED IDEOGRAPH - ,0xD040 ,0x8824 //CJK UNIFIED IDEOGRAPH - ,0xD041 ,0x8825 //CJK UNIFIED IDEOGRAPH - ,0xD042 ,0x8826 //CJK UNIFIED IDEOGRAPH - ,0xD043 ,0x8827 //CJK UNIFIED IDEOGRAPH - ,0xD044 ,0x8828 //CJK UNIFIED IDEOGRAPH - ,0xD045 ,0x8829 //CJK UNIFIED IDEOGRAPH - ,0xD046 ,0x882A //CJK UNIFIED IDEOGRAPH - ,0xD047 ,0x882B //CJK UNIFIED IDEOGRAPH - ,0xD048 ,0x882C //CJK UNIFIED IDEOGRAPH - ,0xD049 ,0x882D //CJK UNIFIED IDEOGRAPH - ,0xD04A ,0x882E //CJK UNIFIED IDEOGRAPH - ,0xD04B ,0x882F //CJK UNIFIED IDEOGRAPH - ,0xD04C ,0x8830 //CJK UNIFIED IDEOGRAPH - ,0xD04D ,0x8831 //CJK UNIFIED IDEOGRAPH - ,0xD04E ,0x8833 //CJK UNIFIED IDEOGRAPH - ,0xD04F ,0x8834 //CJK UNIFIED IDEOGRAPH - ,0xD050 ,0x8835 //CJK UNIFIED IDEOGRAPH - ,0xD051 ,0x8836 //CJK UNIFIED IDEOGRAPH - ,0xD052 ,0x8837 //CJK UNIFIED IDEOGRAPH - ,0xD053 ,0x8838 //CJK UNIFIED IDEOGRAPH - ,0xD054 ,0x883A //CJK UNIFIED IDEOGRAPH - ,0xD055 ,0x883B //CJK UNIFIED IDEOGRAPH - ,0xD056 ,0x883D //CJK UNIFIED IDEOGRAPH - ,0xD057 ,0x883E //CJK UNIFIED IDEOGRAPH - ,0xD058 ,0x883F //CJK UNIFIED IDEOGRAPH - ,0xD059 ,0x8841 //CJK UNIFIED IDEOGRAPH - ,0xD05A ,0x8842 //CJK UNIFIED IDEOGRAPH - ,0xD05B ,0x8843 //CJK UNIFIED IDEOGRAPH - ,0xD05C ,0x8846 //CJK UNIFIED IDEOGRAPH - ,0xD05D ,0x8847 //CJK UNIFIED IDEOGRAPH - ,0xD05E ,0x8848 //CJK UNIFIED IDEOGRAPH - ,0xD05F ,0x8849 //CJK UNIFIED IDEOGRAPH - ,0xD060 ,0x884A //CJK UNIFIED IDEOGRAPH - ,0xD061 ,0x884B //CJK UNIFIED IDEOGRAPH - ,0xD062 ,0x884E //CJK UNIFIED IDEOGRAPH - ,0xD063 ,0x884F //CJK UNIFIED IDEOGRAPH - ,0xD064 ,0x8850 //CJK UNIFIED IDEOGRAPH - ,0xD065 ,0x8851 //CJK UNIFIED IDEOGRAPH - ,0xD066 ,0x8852 //CJK UNIFIED IDEOGRAPH - ,0xD067 ,0x8853 //CJK UNIFIED IDEOGRAPH - ,0xD068 ,0x8855 //CJK UNIFIED IDEOGRAPH - ,0xD069 ,0x8856 //CJK UNIFIED IDEOGRAPH - ,0xD06A ,0x8858 //CJK UNIFIED IDEOGRAPH - ,0xD06B ,0x885A //CJK UNIFIED IDEOGRAPH - ,0xD06C ,0x885B //CJK UNIFIED IDEOGRAPH - ,0xD06D ,0x885C //CJK UNIFIED IDEOGRAPH - ,0xD06E ,0x885D //CJK UNIFIED IDEOGRAPH - ,0xD06F ,0x885E //CJK UNIFIED IDEOGRAPH - ,0xD070 ,0x885F //CJK UNIFIED IDEOGRAPH - ,0xD071 ,0x8860 //CJK UNIFIED IDEOGRAPH - ,0xD072 ,0x8866 //CJK UNIFIED IDEOGRAPH - ,0xD073 ,0x8867 //CJK UNIFIED IDEOGRAPH - ,0xD074 ,0x886A //CJK UNIFIED IDEOGRAPH - ,0xD075 ,0x886D //CJK UNIFIED IDEOGRAPH - ,0xD076 ,0x886F //CJK UNIFIED IDEOGRAPH - ,0xD077 ,0x8871 //CJK UNIFIED IDEOGRAPH - ,0xD078 ,0x8873 //CJK UNIFIED IDEOGRAPH - ,0xD079 ,0x8874 //CJK UNIFIED IDEOGRAPH - ,0xD07A ,0x8875 //CJK UNIFIED IDEOGRAPH - ,0xD07B ,0x8876 //CJK UNIFIED IDEOGRAPH - ,0xD07C ,0x8878 //CJK UNIFIED IDEOGRAPH - ,0xD07D ,0x8879 //CJK UNIFIED IDEOGRAPH - ,0xD07E ,0x887A //CJK UNIFIED IDEOGRAPH - ,0xD080 ,0x887B //CJK UNIFIED IDEOGRAPH - ,0xD081 ,0x887C //CJK UNIFIED IDEOGRAPH - ,0xD082 ,0x8880 //CJK UNIFIED IDEOGRAPH - ,0xD083 ,0x8883 //CJK UNIFIED IDEOGRAPH - ,0xD084 ,0x8886 //CJK UNIFIED IDEOGRAPH - ,0xD085 ,0x8887 //CJK UNIFIED IDEOGRAPH - ,0xD086 ,0x8889 //CJK UNIFIED IDEOGRAPH - ,0xD087 ,0x888A //CJK UNIFIED IDEOGRAPH - ,0xD088 ,0x888C //CJK UNIFIED IDEOGRAPH - ,0xD089 ,0x888E //CJK UNIFIED IDEOGRAPH - ,0xD08A ,0x888F //CJK UNIFIED IDEOGRAPH - ,0xD08B ,0x8890 //CJK UNIFIED IDEOGRAPH - ,0xD08C ,0x8891 //CJK UNIFIED IDEOGRAPH - ,0xD08D ,0x8893 //CJK UNIFIED IDEOGRAPH - ,0xD08E ,0x8894 //CJK UNIFIED IDEOGRAPH - ,0xD08F ,0x8895 //CJK UNIFIED IDEOGRAPH - ,0xD090 ,0x8897 //CJK UNIFIED IDEOGRAPH - ,0xD091 ,0x8898 //CJK UNIFIED IDEOGRAPH - ,0xD092 ,0x8899 //CJK UNIFIED IDEOGRAPH - ,0xD093 ,0x889A //CJK UNIFIED IDEOGRAPH - ,0xD094 ,0x889B //CJK UNIFIED IDEOGRAPH - ,0xD095 ,0x889D //CJK UNIFIED IDEOGRAPH - ,0xD096 ,0x889E //CJK UNIFIED IDEOGRAPH - ,0xD097 ,0x889F //CJK UNIFIED IDEOGRAPH - ,0xD098 ,0x88A0 //CJK UNIFIED IDEOGRAPH - ,0xD099 ,0x88A1 //CJK UNIFIED IDEOGRAPH - ,0xD09A ,0x88A3 //CJK UNIFIED IDEOGRAPH - ,0xD09B ,0x88A5 //CJK UNIFIED IDEOGRAPH - ,0xD09C ,0x88A6 //CJK UNIFIED IDEOGRAPH - ,0xD09D ,0x88A7 //CJK UNIFIED IDEOGRAPH - ,0xD09E ,0x88A8 //CJK UNIFIED IDEOGRAPH - ,0xD09F ,0x88A9 //CJK UNIFIED IDEOGRAPH - ,0xD0A0 ,0x88AA //CJK UNIFIED IDEOGRAPH - ,0xD0A1 ,0x5C0F //CJK UNIFIED IDEOGRAPH - ,0xD0A2 ,0x5B5D //CJK UNIFIED IDEOGRAPH - ,0xD0A3 ,0x6821 //CJK UNIFIED IDEOGRAPH - ,0xD0A4 ,0x8096 //CJK UNIFIED IDEOGRAPH - ,0xD0A5 ,0x5578 //CJK UNIFIED IDEOGRAPH - ,0xD0A6 ,0x7B11 //CJK UNIFIED IDEOGRAPH - ,0xD0A7 ,0x6548 //CJK UNIFIED IDEOGRAPH - ,0xD0A8 ,0x6954 //CJK UNIFIED IDEOGRAPH - ,0xD0A9 ,0x4E9B //CJK UNIFIED IDEOGRAPH - ,0xD0AA ,0x6B47 //CJK UNIFIED IDEOGRAPH - ,0xD0AB ,0x874E //CJK UNIFIED IDEOGRAPH - ,0xD0AC ,0x978B //CJK UNIFIED IDEOGRAPH - ,0xD0AD ,0x534F //CJK UNIFIED IDEOGRAPH - ,0xD0AE ,0x631F //CJK UNIFIED IDEOGRAPH - ,0xD0AF ,0x643A //CJK UNIFIED IDEOGRAPH - ,0xD0B0 ,0x90AA //CJK UNIFIED IDEOGRAPH - ,0xD0B1 ,0x659C //CJK UNIFIED IDEOGRAPH - ,0xD0B2 ,0x80C1 //CJK UNIFIED IDEOGRAPH - ,0xD0B3 ,0x8C10 //CJK UNIFIED IDEOGRAPH - ,0xD0B4 ,0x5199 //CJK UNIFIED IDEOGRAPH - ,0xD0B5 ,0x68B0 //CJK UNIFIED IDEOGRAPH - ,0xD0B6 ,0x5378 //CJK UNIFIED IDEOGRAPH - ,0xD0B7 ,0x87F9 //CJK UNIFIED IDEOGRAPH - ,0xD0B8 ,0x61C8 //CJK UNIFIED IDEOGRAPH - ,0xD0B9 ,0x6CC4 //CJK UNIFIED IDEOGRAPH - ,0xD0BA ,0x6CFB //CJK UNIFIED IDEOGRAPH - ,0xD0BB ,0x8C22 //CJK UNIFIED IDEOGRAPH - ,0xD0BC ,0x5C51 //CJK UNIFIED IDEOGRAPH - ,0xD0BD ,0x85AA //CJK UNIFIED IDEOGRAPH - ,0xD0BE ,0x82AF //CJK UNIFIED IDEOGRAPH - ,0xD0BF ,0x950C //CJK UNIFIED IDEOGRAPH - ,0xD0C0 ,0x6B23 //CJK UNIFIED IDEOGRAPH - ,0xD0C1 ,0x8F9B //CJK UNIFIED IDEOGRAPH - ,0xD0C2 ,0x65B0 //CJK UNIFIED IDEOGRAPH - ,0xD0C3 ,0x5FFB //CJK UNIFIED IDEOGRAPH - ,0xD0C4 ,0x5FC3 //CJK UNIFIED IDEOGRAPH - ,0xD0C5 ,0x4FE1 //CJK UNIFIED IDEOGRAPH - ,0xD0C6 ,0x8845 //CJK UNIFIED IDEOGRAPH - ,0xD0C7 ,0x661F //CJK UNIFIED IDEOGRAPH - ,0xD0C8 ,0x8165 //CJK UNIFIED IDEOGRAPH - ,0xD0C9 ,0x7329 //CJK UNIFIED IDEOGRAPH - ,0xD0CA ,0x60FA //CJK UNIFIED IDEOGRAPH - ,0xD0CB ,0x5174 //CJK UNIFIED IDEOGRAPH - ,0xD0CC ,0x5211 //CJK UNIFIED IDEOGRAPH - ,0xD0CD ,0x578B //CJK UNIFIED IDEOGRAPH - ,0xD0CE ,0x5F62 //CJK UNIFIED IDEOGRAPH - ,0xD0CF ,0x90A2 //CJK UNIFIED IDEOGRAPH - ,0xD0D0 ,0x884C //CJK UNIFIED IDEOGRAPH - ,0xD0D1 ,0x9192 //CJK UNIFIED IDEOGRAPH - ,0xD0D2 ,0x5E78 //CJK UNIFIED IDEOGRAPH - ,0xD0D3 ,0x674F //CJK UNIFIED IDEOGRAPH - ,0xD0D4 ,0x6027 //CJK UNIFIED IDEOGRAPH - ,0xD0D5 ,0x59D3 //CJK UNIFIED IDEOGRAPH - ,0xD0D6 ,0x5144 //CJK UNIFIED IDEOGRAPH - ,0xD0D7 ,0x51F6 //CJK UNIFIED IDEOGRAPH - ,0xD0D8 ,0x80F8 //CJK UNIFIED IDEOGRAPH - ,0xD0D9 ,0x5308 //CJK UNIFIED IDEOGRAPH - ,0xD0DA ,0x6C79 //CJK UNIFIED IDEOGRAPH - ,0xD0DB ,0x96C4 //CJK UNIFIED IDEOGRAPH - ,0xD0DC ,0x718A //CJK UNIFIED IDEOGRAPH - ,0xD0DD ,0x4F11 //CJK UNIFIED IDEOGRAPH - ,0xD0DE ,0x4FEE //CJK UNIFIED IDEOGRAPH - ,0xD0DF ,0x7F9E //CJK UNIFIED IDEOGRAPH - ,0xD0E0 ,0x673D //CJK UNIFIED IDEOGRAPH - ,0xD0E1 ,0x55C5 //CJK UNIFIED IDEOGRAPH - ,0xD0E2 ,0x9508 //CJK UNIFIED IDEOGRAPH - ,0xD0E3 ,0x79C0 //CJK UNIFIED IDEOGRAPH - ,0xD0E4 ,0x8896 //CJK UNIFIED IDEOGRAPH - ,0xD0E5 ,0x7EE3 //CJK UNIFIED IDEOGRAPH - ,0xD0E6 ,0x589F //CJK UNIFIED IDEOGRAPH - ,0xD0E7 ,0x620C //CJK UNIFIED IDEOGRAPH - ,0xD0E8 ,0x9700 //CJK UNIFIED IDEOGRAPH - ,0xD0E9 ,0x865A //CJK UNIFIED IDEOGRAPH - ,0xD0EA ,0x5618 //CJK UNIFIED IDEOGRAPH - ,0xD0EB ,0x987B //CJK UNIFIED IDEOGRAPH - ,0xD0EC ,0x5F90 //CJK UNIFIED IDEOGRAPH - ,0xD0ED ,0x8BB8 //CJK UNIFIED IDEOGRAPH - ,0xD0EE ,0x84C4 //CJK UNIFIED IDEOGRAPH - ,0xD0EF ,0x9157 //CJK UNIFIED IDEOGRAPH - ,0xD0F0 ,0x53D9 //CJK UNIFIED IDEOGRAPH - ,0xD0F1 ,0x65ED //CJK UNIFIED IDEOGRAPH - ,0xD0F2 ,0x5E8F //CJK UNIFIED IDEOGRAPH - ,0xD0F3 ,0x755C //CJK UNIFIED IDEOGRAPH - ,0xD0F4 ,0x6064 //CJK UNIFIED IDEOGRAPH - ,0xD0F5 ,0x7D6E //CJK UNIFIED IDEOGRAPH - ,0xD0F6 ,0x5A7F //CJK UNIFIED IDEOGRAPH - ,0xD0F7 ,0x7EEA //CJK UNIFIED IDEOGRAPH - ,0xD0F8 ,0x7EED //CJK UNIFIED IDEOGRAPH - ,0xD0F9 ,0x8F69 //CJK UNIFIED IDEOGRAPH - ,0xD0FA ,0x55A7 //CJK UNIFIED IDEOGRAPH - ,0xD0FB ,0x5BA3 //CJK UNIFIED IDEOGRAPH - ,0xD0FC ,0x60AC //CJK UNIFIED IDEOGRAPH - ,0xD0FD ,0x65CB //CJK UNIFIED IDEOGRAPH - ,0xD0FE ,0x7384 //CJK UNIFIED IDEOGRAPH - ,0xD140 ,0x88AC //CJK UNIFIED IDEOGRAPH - ,0xD141 ,0x88AE //CJK UNIFIED IDEOGRAPH - ,0xD142 ,0x88AF //CJK UNIFIED IDEOGRAPH - ,0xD143 ,0x88B0 //CJK UNIFIED IDEOGRAPH - ,0xD144 ,0x88B2 //CJK UNIFIED IDEOGRAPH - ,0xD145 ,0x88B3 //CJK UNIFIED IDEOGRAPH - ,0xD146 ,0x88B4 //CJK UNIFIED IDEOGRAPH - ,0xD147 ,0x88B5 //CJK UNIFIED IDEOGRAPH - ,0xD148 ,0x88B6 //CJK UNIFIED IDEOGRAPH - ,0xD149 ,0x88B8 //CJK UNIFIED IDEOGRAPH - ,0xD14A ,0x88B9 //CJK UNIFIED IDEOGRAPH - ,0xD14B ,0x88BA //CJK UNIFIED IDEOGRAPH - ,0xD14C ,0x88BB //CJK UNIFIED IDEOGRAPH - ,0xD14D ,0x88BD //CJK UNIFIED IDEOGRAPH - ,0xD14E ,0x88BE //CJK UNIFIED IDEOGRAPH - ,0xD14F ,0x88BF //CJK UNIFIED IDEOGRAPH - ,0xD150 ,0x88C0 //CJK UNIFIED IDEOGRAPH - ,0xD151 ,0x88C3 //CJK UNIFIED IDEOGRAPH - ,0xD152 ,0x88C4 //CJK UNIFIED IDEOGRAPH - ,0xD153 ,0x88C7 //CJK UNIFIED IDEOGRAPH - ,0xD154 ,0x88C8 //CJK UNIFIED IDEOGRAPH - ,0xD155 ,0x88CA //CJK UNIFIED IDEOGRAPH - ,0xD156 ,0x88CB //CJK UNIFIED IDEOGRAPH - ,0xD157 ,0x88CC //CJK UNIFIED IDEOGRAPH - ,0xD158 ,0x88CD //CJK UNIFIED IDEOGRAPH - ,0xD159 ,0x88CF //CJK UNIFIED IDEOGRAPH - ,0xD15A ,0x88D0 //CJK UNIFIED IDEOGRAPH - ,0xD15B ,0x88D1 //CJK UNIFIED IDEOGRAPH - ,0xD15C ,0x88D3 //CJK UNIFIED IDEOGRAPH - ,0xD15D ,0x88D6 //CJK UNIFIED IDEOGRAPH - ,0xD15E ,0x88D7 //CJK UNIFIED IDEOGRAPH - ,0xD15F ,0x88DA //CJK UNIFIED IDEOGRAPH - ,0xD160 ,0x88DB //CJK UNIFIED IDEOGRAPH - ,0xD161 ,0x88DC //CJK UNIFIED IDEOGRAPH - ,0xD162 ,0x88DD //CJK UNIFIED IDEOGRAPH - ,0xD163 ,0x88DE //CJK UNIFIED IDEOGRAPH - ,0xD164 ,0x88E0 //CJK UNIFIED IDEOGRAPH - ,0xD165 ,0x88E1 //CJK UNIFIED IDEOGRAPH - ,0xD166 ,0x88E6 //CJK UNIFIED IDEOGRAPH - ,0xD167 ,0x88E7 //CJK UNIFIED IDEOGRAPH - ,0xD168 ,0x88E9 //CJK UNIFIED IDEOGRAPH - ,0xD169 ,0x88EA //CJK UNIFIED IDEOGRAPH - ,0xD16A ,0x88EB //CJK UNIFIED IDEOGRAPH - ,0xD16B ,0x88EC //CJK UNIFIED IDEOGRAPH - ,0xD16C ,0x88ED //CJK UNIFIED IDEOGRAPH - ,0xD16D ,0x88EE //CJK UNIFIED IDEOGRAPH - ,0xD16E ,0x88EF //CJK UNIFIED IDEOGRAPH - ,0xD16F ,0x88F2 //CJK UNIFIED IDEOGRAPH - ,0xD170 ,0x88F5 //CJK UNIFIED IDEOGRAPH - ,0xD171 ,0x88F6 //CJK UNIFIED IDEOGRAPH - ,0xD172 ,0x88F7 //CJK UNIFIED IDEOGRAPH - ,0xD173 ,0x88FA //CJK UNIFIED IDEOGRAPH - ,0xD174 ,0x88FB //CJK UNIFIED IDEOGRAPH - ,0xD175 ,0x88FD //CJK UNIFIED IDEOGRAPH - ,0xD176 ,0x88FF //CJK UNIFIED IDEOGRAPH - ,0xD177 ,0x8900 //CJK UNIFIED IDEOGRAPH - ,0xD178 ,0x8901 //CJK UNIFIED IDEOGRAPH - ,0xD179 ,0x8903 //CJK UNIFIED IDEOGRAPH - ,0xD17A ,0x8904 //CJK UNIFIED IDEOGRAPH - ,0xD17B ,0x8905 //CJK UNIFIED IDEOGRAPH - ,0xD17C ,0x8906 //CJK UNIFIED IDEOGRAPH - ,0xD17D ,0x8907 //CJK UNIFIED IDEOGRAPH - ,0xD17E ,0x8908 //CJK UNIFIED IDEOGRAPH - ,0xD180 ,0x8909 //CJK UNIFIED IDEOGRAPH - ,0xD181 ,0x890B //CJK UNIFIED IDEOGRAPH - ,0xD182 ,0x890C //CJK UNIFIED IDEOGRAPH - ,0xD183 ,0x890D //CJK UNIFIED IDEOGRAPH - ,0xD184 ,0x890E //CJK UNIFIED IDEOGRAPH - ,0xD185 ,0x890F //CJK UNIFIED IDEOGRAPH - ,0xD186 ,0x8911 //CJK UNIFIED IDEOGRAPH - ,0xD187 ,0x8914 //CJK UNIFIED IDEOGRAPH - ,0xD188 ,0x8915 //CJK UNIFIED IDEOGRAPH - ,0xD189 ,0x8916 //CJK UNIFIED IDEOGRAPH - ,0xD18A ,0x8917 //CJK UNIFIED IDEOGRAPH - ,0xD18B ,0x8918 //CJK UNIFIED IDEOGRAPH - ,0xD18C ,0x891C //CJK UNIFIED IDEOGRAPH - ,0xD18D ,0x891D //CJK UNIFIED IDEOGRAPH - ,0xD18E ,0x891E //CJK UNIFIED IDEOGRAPH - ,0xD18F ,0x891F //CJK UNIFIED IDEOGRAPH - ,0xD190 ,0x8920 //CJK UNIFIED IDEOGRAPH - ,0xD191 ,0x8922 //CJK UNIFIED IDEOGRAPH - ,0xD192 ,0x8923 //CJK UNIFIED IDEOGRAPH - ,0xD193 ,0x8924 //CJK UNIFIED IDEOGRAPH - ,0xD194 ,0x8926 //CJK UNIFIED IDEOGRAPH - ,0xD195 ,0x8927 //CJK UNIFIED IDEOGRAPH - ,0xD196 ,0x8928 //CJK UNIFIED IDEOGRAPH - ,0xD197 ,0x8929 //CJK UNIFIED IDEOGRAPH - ,0xD198 ,0x892C //CJK UNIFIED IDEOGRAPH - ,0xD199 ,0x892D //CJK UNIFIED IDEOGRAPH - ,0xD19A ,0x892E //CJK UNIFIED IDEOGRAPH - ,0xD19B ,0x892F //CJK UNIFIED IDEOGRAPH - ,0xD19C ,0x8931 //CJK UNIFIED IDEOGRAPH - ,0xD19D ,0x8932 //CJK UNIFIED IDEOGRAPH - ,0xD19E ,0x8933 //CJK UNIFIED IDEOGRAPH - ,0xD19F ,0x8935 //CJK UNIFIED IDEOGRAPH - ,0xD1A0 ,0x8937 //CJK UNIFIED IDEOGRAPH - ,0xD1A1 ,0x9009 //CJK UNIFIED IDEOGRAPH - ,0xD1A2 ,0x7663 //CJK UNIFIED IDEOGRAPH - ,0xD1A3 ,0x7729 //CJK UNIFIED IDEOGRAPH - ,0xD1A4 ,0x7EDA //CJK UNIFIED IDEOGRAPH - ,0xD1A5 ,0x9774 //CJK UNIFIED IDEOGRAPH - ,0xD1A6 ,0x859B //CJK UNIFIED IDEOGRAPH - ,0xD1A7 ,0x5B66 //CJK UNIFIED IDEOGRAPH - ,0xD1A8 ,0x7A74 //CJK UNIFIED IDEOGRAPH - ,0xD1A9 ,0x96EA //CJK UNIFIED IDEOGRAPH - ,0xD1AA ,0x8840 //CJK UNIFIED IDEOGRAPH - ,0xD1AB ,0x52CB //CJK UNIFIED IDEOGRAPH - ,0xD1AC ,0x718F //CJK UNIFIED IDEOGRAPH - ,0xD1AD ,0x5FAA //CJK UNIFIED IDEOGRAPH - ,0xD1AE ,0x65EC //CJK UNIFIED IDEOGRAPH - ,0xD1AF ,0x8BE2 //CJK UNIFIED IDEOGRAPH - ,0xD1B0 ,0x5BFB //CJK UNIFIED IDEOGRAPH - ,0xD1B1 ,0x9A6F //CJK UNIFIED IDEOGRAPH - ,0xD1B2 ,0x5DE1 //CJK UNIFIED IDEOGRAPH - ,0xD1B3 ,0x6B89 //CJK UNIFIED IDEOGRAPH - ,0xD1B4 ,0x6C5B //CJK UNIFIED IDEOGRAPH - ,0xD1B5 ,0x8BAD //CJK UNIFIED IDEOGRAPH - ,0xD1B6 ,0x8BAF //CJK UNIFIED IDEOGRAPH - ,0xD1B7 ,0x900A //CJK UNIFIED IDEOGRAPH - ,0xD1B8 ,0x8FC5 //CJK UNIFIED IDEOGRAPH - ,0xD1B9 ,0x538B //CJK UNIFIED IDEOGRAPH - ,0xD1BA ,0x62BC //CJK UNIFIED IDEOGRAPH - ,0xD1BB ,0x9E26 //CJK UNIFIED IDEOGRAPH - ,0xD1BC ,0x9E2D //CJK UNIFIED IDEOGRAPH - ,0xD1BD ,0x5440 //CJK UNIFIED IDEOGRAPH - ,0xD1BE ,0x4E2B //CJK UNIFIED IDEOGRAPH - ,0xD1BF ,0x82BD //CJK UNIFIED IDEOGRAPH - ,0xD1C0 ,0x7259 //CJK UNIFIED IDEOGRAPH - ,0xD1C1 ,0x869C //CJK UNIFIED IDEOGRAPH - ,0xD1C2 ,0x5D16 //CJK UNIFIED IDEOGRAPH - ,0xD1C3 ,0x8859 //CJK UNIFIED IDEOGRAPH - ,0xD1C4 ,0x6DAF //CJK UNIFIED IDEOGRAPH - ,0xD1C5 ,0x96C5 //CJK UNIFIED IDEOGRAPH - ,0xD1C6 ,0x54D1 //CJK UNIFIED IDEOGRAPH - ,0xD1C7 ,0x4E9A //CJK UNIFIED IDEOGRAPH - ,0xD1C8 ,0x8BB6 //CJK UNIFIED IDEOGRAPH - ,0xD1C9 ,0x7109 //CJK UNIFIED IDEOGRAPH - ,0xD1CA ,0x54BD //CJK UNIFIED IDEOGRAPH - ,0xD1CB ,0x9609 //CJK UNIFIED IDEOGRAPH - ,0xD1CC ,0x70DF //CJK UNIFIED IDEOGRAPH - ,0xD1CD ,0x6DF9 //CJK UNIFIED IDEOGRAPH - ,0xD1CE ,0x76D0 //CJK UNIFIED IDEOGRAPH - ,0xD1CF ,0x4E25 //CJK UNIFIED IDEOGRAPH - ,0xD1D0 ,0x7814 //CJK UNIFIED IDEOGRAPH - ,0xD1D1 ,0x8712 //CJK UNIFIED IDEOGRAPH - ,0xD1D2 ,0x5CA9 //CJK UNIFIED IDEOGRAPH - ,0xD1D3 ,0x5EF6 //CJK UNIFIED IDEOGRAPH - ,0xD1D4 ,0x8A00 //CJK UNIFIED IDEOGRAPH - ,0xD1D5 ,0x989C //CJK UNIFIED IDEOGRAPH - ,0xD1D6 ,0x960E //CJK UNIFIED IDEOGRAPH - ,0xD1D7 ,0x708E //CJK UNIFIED IDEOGRAPH - ,0xD1D8 ,0x6CBF //CJK UNIFIED IDEOGRAPH - ,0xD1D9 ,0x5944 //CJK UNIFIED IDEOGRAPH - ,0xD1DA ,0x63A9 //CJK UNIFIED IDEOGRAPH - ,0xD1DB ,0x773C //CJK UNIFIED IDEOGRAPH - ,0xD1DC ,0x884D //CJK UNIFIED IDEOGRAPH - ,0xD1DD ,0x6F14 //CJK UNIFIED IDEOGRAPH - ,0xD1DE ,0x8273 //CJK UNIFIED IDEOGRAPH - ,0xD1DF ,0x5830 //CJK UNIFIED IDEOGRAPH - ,0xD1E0 ,0x71D5 //CJK UNIFIED IDEOGRAPH - ,0xD1E1 ,0x538C //CJK UNIFIED IDEOGRAPH - ,0xD1E2 ,0x781A //CJK UNIFIED IDEOGRAPH - ,0xD1E3 ,0x96C1 //CJK UNIFIED IDEOGRAPH - ,0xD1E4 ,0x5501 //CJK UNIFIED IDEOGRAPH - ,0xD1E5 ,0x5F66 //CJK UNIFIED IDEOGRAPH - ,0xD1E6 ,0x7130 //CJK UNIFIED IDEOGRAPH - ,0xD1E7 ,0x5BB4 //CJK UNIFIED IDEOGRAPH - ,0xD1E8 ,0x8C1A //CJK UNIFIED IDEOGRAPH - ,0xD1E9 ,0x9A8C //CJK UNIFIED IDEOGRAPH - ,0xD1EA ,0x6B83 //CJK UNIFIED IDEOGRAPH - ,0xD1EB ,0x592E //CJK UNIFIED IDEOGRAPH - ,0xD1EC ,0x9E2F //CJK UNIFIED IDEOGRAPH - ,0xD1ED ,0x79E7 //CJK UNIFIED IDEOGRAPH - ,0xD1EE ,0x6768 //CJK UNIFIED IDEOGRAPH - ,0xD1EF ,0x626C //CJK UNIFIED IDEOGRAPH - ,0xD1F0 ,0x4F6F //CJK UNIFIED IDEOGRAPH - ,0xD1F1 ,0x75A1 //CJK UNIFIED IDEOGRAPH - ,0xD1F2 ,0x7F8A //CJK UNIFIED IDEOGRAPH - ,0xD1F3 ,0x6D0B //CJK UNIFIED IDEOGRAPH - ,0xD1F4 ,0x9633 //CJK UNIFIED IDEOGRAPH - ,0xD1F5 ,0x6C27 //CJK UNIFIED IDEOGRAPH - ,0xD1F6 ,0x4EF0 //CJK UNIFIED IDEOGRAPH - ,0xD1F7 ,0x75D2 //CJK UNIFIED IDEOGRAPH - ,0xD1F8 ,0x517B //CJK UNIFIED IDEOGRAPH - ,0xD1F9 ,0x6837 //CJK UNIFIED IDEOGRAPH - ,0xD1FA ,0x6F3E //CJK UNIFIED IDEOGRAPH - ,0xD1FB ,0x9080 //CJK UNIFIED IDEOGRAPH - ,0xD1FC ,0x8170 //CJK UNIFIED IDEOGRAPH - ,0xD1FD ,0x5996 //CJK UNIFIED IDEOGRAPH - ,0xD1FE ,0x7476 //CJK UNIFIED IDEOGRAPH - ,0xD240 ,0x8938 //CJK UNIFIED IDEOGRAPH - ,0xD241 ,0x8939 //CJK UNIFIED IDEOGRAPH - ,0xD242 ,0x893A //CJK UNIFIED IDEOGRAPH - ,0xD243 ,0x893B //CJK UNIFIED IDEOGRAPH - ,0xD244 ,0x893C //CJK UNIFIED IDEOGRAPH - ,0xD245 ,0x893D //CJK UNIFIED IDEOGRAPH - ,0xD246 ,0x893E //CJK UNIFIED IDEOGRAPH - ,0xD247 ,0x893F //CJK UNIFIED IDEOGRAPH - ,0xD248 ,0x8940 //CJK UNIFIED IDEOGRAPH - ,0xD249 ,0x8942 //CJK UNIFIED IDEOGRAPH - ,0xD24A ,0x8943 //CJK UNIFIED IDEOGRAPH - ,0xD24B ,0x8945 //CJK UNIFIED IDEOGRAPH - ,0xD24C ,0x8946 //CJK UNIFIED IDEOGRAPH - ,0xD24D ,0x8947 //CJK UNIFIED IDEOGRAPH - ,0xD24E ,0x8948 //CJK UNIFIED IDEOGRAPH - ,0xD24F ,0x8949 //CJK UNIFIED IDEOGRAPH - ,0xD250 ,0x894A //CJK UNIFIED IDEOGRAPH - ,0xD251 ,0x894B //CJK UNIFIED IDEOGRAPH - ,0xD252 ,0x894C //CJK UNIFIED IDEOGRAPH - ,0xD253 ,0x894D //CJK UNIFIED IDEOGRAPH - ,0xD254 ,0x894E //CJK UNIFIED IDEOGRAPH - ,0xD255 ,0x894F //CJK UNIFIED IDEOGRAPH - ,0xD256 ,0x8950 //CJK UNIFIED IDEOGRAPH - ,0xD257 ,0x8951 //CJK UNIFIED IDEOGRAPH - ,0xD258 ,0x8952 //CJK UNIFIED IDEOGRAPH - ,0xD259 ,0x8953 //CJK UNIFIED IDEOGRAPH - ,0xD25A ,0x8954 //CJK UNIFIED IDEOGRAPH - ,0xD25B ,0x8955 //CJK UNIFIED IDEOGRAPH - ,0xD25C ,0x8956 //CJK UNIFIED IDEOGRAPH - ,0xD25D ,0x8957 //CJK UNIFIED IDEOGRAPH - ,0xD25E ,0x8958 //CJK UNIFIED IDEOGRAPH - ,0xD25F ,0x8959 //CJK UNIFIED IDEOGRAPH - ,0xD260 ,0x895A //CJK UNIFIED IDEOGRAPH - ,0xD261 ,0x895B //CJK UNIFIED IDEOGRAPH - ,0xD262 ,0x895C //CJK UNIFIED IDEOGRAPH - ,0xD263 ,0x895D //CJK UNIFIED IDEOGRAPH - ,0xD264 ,0x8960 //CJK UNIFIED IDEOGRAPH - ,0xD265 ,0x8961 //CJK UNIFIED IDEOGRAPH - ,0xD266 ,0x8962 //CJK UNIFIED IDEOGRAPH - ,0xD267 ,0x8963 //CJK UNIFIED IDEOGRAPH - ,0xD268 ,0x8964 //CJK UNIFIED IDEOGRAPH - ,0xD269 ,0x8965 //CJK UNIFIED IDEOGRAPH - ,0xD26A ,0x8967 //CJK UNIFIED IDEOGRAPH - ,0xD26B ,0x8968 //CJK UNIFIED IDEOGRAPH - ,0xD26C ,0x8969 //CJK UNIFIED IDEOGRAPH - ,0xD26D ,0x896A //CJK UNIFIED IDEOGRAPH - ,0xD26E ,0x896B //CJK UNIFIED IDEOGRAPH - ,0xD26F ,0x896C //CJK UNIFIED IDEOGRAPH - ,0xD270 ,0x896D //CJK UNIFIED IDEOGRAPH - ,0xD271 ,0x896E //CJK UNIFIED IDEOGRAPH - ,0xD272 ,0x896F //CJK UNIFIED IDEOGRAPH - ,0xD273 ,0x8970 //CJK UNIFIED IDEOGRAPH - ,0xD274 ,0x8971 //CJK UNIFIED IDEOGRAPH - ,0xD275 ,0x8972 //CJK UNIFIED IDEOGRAPH - ,0xD276 ,0x8973 //CJK UNIFIED IDEOGRAPH - ,0xD277 ,0x8974 //CJK UNIFIED IDEOGRAPH - ,0xD278 ,0x8975 //CJK UNIFIED IDEOGRAPH - ,0xD279 ,0x8976 //CJK UNIFIED IDEOGRAPH - ,0xD27A ,0x8977 //CJK UNIFIED IDEOGRAPH - ,0xD27B ,0x8978 //CJK UNIFIED IDEOGRAPH - ,0xD27C ,0x8979 //CJK UNIFIED IDEOGRAPH - ,0xD27D ,0x897A //CJK UNIFIED IDEOGRAPH - ,0xD27E ,0x897C //CJK UNIFIED IDEOGRAPH - ,0xD280 ,0x897D //CJK UNIFIED IDEOGRAPH - ,0xD281 ,0x897E //CJK UNIFIED IDEOGRAPH - ,0xD282 ,0x8980 //CJK UNIFIED IDEOGRAPH - ,0xD283 ,0x8982 //CJK UNIFIED IDEOGRAPH - ,0xD284 ,0x8984 //CJK UNIFIED IDEOGRAPH - ,0xD285 ,0x8985 //CJK UNIFIED IDEOGRAPH - ,0xD286 ,0x8987 //CJK UNIFIED IDEOGRAPH - ,0xD287 ,0x8988 //CJK UNIFIED IDEOGRAPH - ,0xD288 ,0x8989 //CJK UNIFIED IDEOGRAPH - ,0xD289 ,0x898A //CJK UNIFIED IDEOGRAPH - ,0xD28A ,0x898B //CJK UNIFIED IDEOGRAPH - ,0xD28B ,0x898C //CJK UNIFIED IDEOGRAPH - ,0xD28C ,0x898D //CJK UNIFIED IDEOGRAPH - ,0xD28D ,0x898E //CJK UNIFIED IDEOGRAPH - ,0xD28E ,0x898F //CJK UNIFIED IDEOGRAPH - ,0xD28F ,0x8990 //CJK UNIFIED IDEOGRAPH - ,0xD290 ,0x8991 //CJK UNIFIED IDEOGRAPH - ,0xD291 ,0x8992 //CJK UNIFIED IDEOGRAPH - ,0xD292 ,0x8993 //CJK UNIFIED IDEOGRAPH - ,0xD293 ,0x8994 //CJK UNIFIED IDEOGRAPH - ,0xD294 ,0x8995 //CJK UNIFIED IDEOGRAPH - ,0xD295 ,0x8996 //CJK UNIFIED IDEOGRAPH - ,0xD296 ,0x8997 //CJK UNIFIED IDEOGRAPH - ,0xD297 ,0x8998 //CJK UNIFIED IDEOGRAPH - ,0xD298 ,0x8999 //CJK UNIFIED IDEOGRAPH - ,0xD299 ,0x899A //CJK UNIFIED IDEOGRAPH - ,0xD29A ,0x899B //CJK UNIFIED IDEOGRAPH - ,0xD29B ,0x899C //CJK UNIFIED IDEOGRAPH - ,0xD29C ,0x899D //CJK UNIFIED IDEOGRAPH - ,0xD29D ,0x899E //CJK UNIFIED IDEOGRAPH - ,0xD29E ,0x899F //CJK UNIFIED IDEOGRAPH - ,0xD29F ,0x89A0 //CJK UNIFIED IDEOGRAPH - ,0xD2A0 ,0x89A1 //CJK UNIFIED IDEOGRAPH - ,0xD2A1 ,0x6447 //CJK UNIFIED IDEOGRAPH - ,0xD2A2 ,0x5C27 //CJK UNIFIED IDEOGRAPH - ,0xD2A3 ,0x9065 //CJK UNIFIED IDEOGRAPH - ,0xD2A4 ,0x7A91 //CJK UNIFIED IDEOGRAPH - ,0xD2A5 ,0x8C23 //CJK UNIFIED IDEOGRAPH - ,0xD2A6 ,0x59DA //CJK UNIFIED IDEOGRAPH - ,0xD2A7 ,0x54AC //CJK UNIFIED IDEOGRAPH - ,0xD2A8 ,0x8200 //CJK UNIFIED IDEOGRAPH - ,0xD2A9 ,0x836F //CJK UNIFIED IDEOGRAPH - ,0xD2AA ,0x8981 //CJK UNIFIED IDEOGRAPH - ,0xD2AB ,0x8000 //CJK UNIFIED IDEOGRAPH - ,0xD2AC ,0x6930 //CJK UNIFIED IDEOGRAPH - ,0xD2AD ,0x564E //CJK UNIFIED IDEOGRAPH - ,0xD2AE ,0x8036 //CJK UNIFIED IDEOGRAPH - ,0xD2AF ,0x7237 //CJK UNIFIED IDEOGRAPH - ,0xD2B0 ,0x91CE //CJK UNIFIED IDEOGRAPH - ,0xD2B1 ,0x51B6 //CJK UNIFIED IDEOGRAPH - ,0xD2B2 ,0x4E5F //CJK UNIFIED IDEOGRAPH - ,0xD2B3 ,0x9875 //CJK UNIFIED IDEOGRAPH - ,0xD2B4 ,0x6396 //CJK UNIFIED IDEOGRAPH - ,0xD2B5 ,0x4E1A //CJK UNIFIED IDEOGRAPH - ,0xD2B6 ,0x53F6 //CJK UNIFIED IDEOGRAPH - ,0xD2B7 ,0x66F3 //CJK UNIFIED IDEOGRAPH - ,0xD2B8 ,0x814B //CJK UNIFIED IDEOGRAPH - ,0xD2B9 ,0x591C //CJK UNIFIED IDEOGRAPH - ,0xD2BA ,0x6DB2 //CJK UNIFIED IDEOGRAPH - ,0xD2BB ,0x4E00 //CJK UNIFIED IDEOGRAPH - ,0xD2BC ,0x58F9 //CJK UNIFIED IDEOGRAPH - ,0xD2BD ,0x533B //CJK UNIFIED IDEOGRAPH - ,0xD2BE ,0x63D6 //CJK UNIFIED IDEOGRAPH - ,0xD2BF ,0x94F1 //CJK UNIFIED IDEOGRAPH - ,0xD2C0 ,0x4F9D //CJK UNIFIED IDEOGRAPH - ,0xD2C1 ,0x4F0A //CJK UNIFIED IDEOGRAPH - ,0xD2C2 ,0x8863 //CJK UNIFIED IDEOGRAPH - ,0xD2C3 ,0x9890 //CJK UNIFIED IDEOGRAPH - ,0xD2C4 ,0x5937 //CJK UNIFIED IDEOGRAPH - ,0xD2C5 ,0x9057 //CJK UNIFIED IDEOGRAPH - ,0xD2C6 ,0x79FB //CJK UNIFIED IDEOGRAPH - ,0xD2C7 ,0x4EEA //CJK UNIFIED IDEOGRAPH - ,0xD2C8 ,0x80F0 //CJK UNIFIED IDEOGRAPH - ,0xD2C9 ,0x7591 //CJK UNIFIED IDEOGRAPH - ,0xD2CA ,0x6C82 //CJK UNIFIED IDEOGRAPH - ,0xD2CB ,0x5B9C //CJK UNIFIED IDEOGRAPH - ,0xD2CC ,0x59E8 //CJK UNIFIED IDEOGRAPH - ,0xD2CD ,0x5F5D //CJK UNIFIED IDEOGRAPH - ,0xD2CE ,0x6905 //CJK UNIFIED IDEOGRAPH - ,0xD2CF ,0x8681 //CJK UNIFIED IDEOGRAPH - ,0xD2D0 ,0x501A //CJK UNIFIED IDEOGRAPH - ,0xD2D1 ,0x5DF2 //CJK UNIFIED IDEOGRAPH - ,0xD2D2 ,0x4E59 //CJK UNIFIED IDEOGRAPH - ,0xD2D3 ,0x77E3 //CJK UNIFIED IDEOGRAPH - ,0xD2D4 ,0x4EE5 //CJK UNIFIED IDEOGRAPH - ,0xD2D5 ,0x827A //CJK UNIFIED IDEOGRAPH - ,0xD2D6 ,0x6291 //CJK UNIFIED IDEOGRAPH - ,0xD2D7 ,0x6613 //CJK UNIFIED IDEOGRAPH - ,0xD2D8 ,0x9091 //CJK UNIFIED IDEOGRAPH - ,0xD2D9 ,0x5C79 //CJK UNIFIED IDEOGRAPH - ,0xD2DA ,0x4EBF //CJK UNIFIED IDEOGRAPH - ,0xD2DB ,0x5F79 //CJK UNIFIED IDEOGRAPH - ,0xD2DC ,0x81C6 //CJK UNIFIED IDEOGRAPH - ,0xD2DD ,0x9038 //CJK UNIFIED IDEOGRAPH - ,0xD2DE ,0x8084 //CJK UNIFIED IDEOGRAPH - ,0xD2DF ,0x75AB //CJK UNIFIED IDEOGRAPH - ,0xD2E0 ,0x4EA6 //CJK UNIFIED IDEOGRAPH - ,0xD2E1 ,0x88D4 //CJK UNIFIED IDEOGRAPH - ,0xD2E2 ,0x610F //CJK UNIFIED IDEOGRAPH - ,0xD2E3 ,0x6BC5 //CJK UNIFIED IDEOGRAPH - ,0xD2E4 ,0x5FC6 //CJK UNIFIED IDEOGRAPH - ,0xD2E5 ,0x4E49 //CJK UNIFIED IDEOGRAPH - ,0xD2E6 ,0x76CA //CJK UNIFIED IDEOGRAPH - ,0xD2E7 ,0x6EA2 //CJK UNIFIED IDEOGRAPH - ,0xD2E8 ,0x8BE3 //CJK UNIFIED IDEOGRAPH - ,0xD2E9 ,0x8BAE //CJK UNIFIED IDEOGRAPH - ,0xD2EA ,0x8C0A //CJK UNIFIED IDEOGRAPH - ,0xD2EB ,0x8BD1 //CJK UNIFIED IDEOGRAPH - ,0xD2EC ,0x5F02 //CJK UNIFIED IDEOGRAPH - ,0xD2ED ,0x7FFC //CJK UNIFIED IDEOGRAPH - ,0xD2EE ,0x7FCC //CJK UNIFIED IDEOGRAPH - ,0xD2EF ,0x7ECE //CJK UNIFIED IDEOGRAPH - ,0xD2F0 ,0x8335 //CJK UNIFIED IDEOGRAPH - ,0xD2F1 ,0x836B //CJK UNIFIED IDEOGRAPH - ,0xD2F2 ,0x56E0 //CJK UNIFIED IDEOGRAPH - ,0xD2F3 ,0x6BB7 //CJK UNIFIED IDEOGRAPH - ,0xD2F4 ,0x97F3 //CJK UNIFIED IDEOGRAPH - ,0xD2F5 ,0x9634 //CJK UNIFIED IDEOGRAPH - ,0xD2F6 ,0x59FB //CJK UNIFIED IDEOGRAPH - ,0xD2F7 ,0x541F //CJK UNIFIED IDEOGRAPH - ,0xD2F8 ,0x94F6 //CJK UNIFIED IDEOGRAPH - ,0xD2F9 ,0x6DEB //CJK UNIFIED IDEOGRAPH - ,0xD2FA ,0x5BC5 //CJK UNIFIED IDEOGRAPH - ,0xD2FB ,0x996E //CJK UNIFIED IDEOGRAPH - ,0xD2FC ,0x5C39 //CJK UNIFIED IDEOGRAPH - ,0xD2FD ,0x5F15 //CJK UNIFIED IDEOGRAPH - ,0xD2FE ,0x9690 //CJK UNIFIED IDEOGRAPH - ,0xD340 ,0x89A2 //CJK UNIFIED IDEOGRAPH - ,0xD341 ,0x89A3 //CJK UNIFIED IDEOGRAPH - ,0xD342 ,0x89A4 //CJK UNIFIED IDEOGRAPH - ,0xD343 ,0x89A5 //CJK UNIFIED IDEOGRAPH - ,0xD344 ,0x89A6 //CJK UNIFIED IDEOGRAPH - ,0xD345 ,0x89A7 //CJK UNIFIED IDEOGRAPH - ,0xD346 ,0x89A8 //CJK UNIFIED IDEOGRAPH - ,0xD347 ,0x89A9 //CJK UNIFIED IDEOGRAPH - ,0xD348 ,0x89AA //CJK UNIFIED IDEOGRAPH - ,0xD349 ,0x89AB //CJK UNIFIED IDEOGRAPH - ,0xD34A ,0x89AC //CJK UNIFIED IDEOGRAPH - ,0xD34B ,0x89AD //CJK UNIFIED IDEOGRAPH - ,0xD34C ,0x89AE //CJK UNIFIED IDEOGRAPH - ,0xD34D ,0x89AF //CJK UNIFIED IDEOGRAPH - ,0xD34E ,0x89B0 //CJK UNIFIED IDEOGRAPH - ,0xD34F ,0x89B1 //CJK UNIFIED IDEOGRAPH - ,0xD350 ,0x89B2 //CJK UNIFIED IDEOGRAPH - ,0xD351 ,0x89B3 //CJK UNIFIED IDEOGRAPH - ,0xD352 ,0x89B4 //CJK UNIFIED IDEOGRAPH - ,0xD353 ,0x89B5 //CJK UNIFIED IDEOGRAPH - ,0xD354 ,0x89B6 //CJK UNIFIED IDEOGRAPH - ,0xD355 ,0x89B7 //CJK UNIFIED IDEOGRAPH - ,0xD356 ,0x89B8 //CJK UNIFIED IDEOGRAPH - ,0xD357 ,0x89B9 //CJK UNIFIED IDEOGRAPH - ,0xD358 ,0x89BA //CJK UNIFIED IDEOGRAPH - ,0xD359 ,0x89BB //CJK UNIFIED IDEOGRAPH - ,0xD35A ,0x89BC //CJK UNIFIED IDEOGRAPH - ,0xD35B ,0x89BD //CJK UNIFIED IDEOGRAPH - ,0xD35C ,0x89BE //CJK UNIFIED IDEOGRAPH - ,0xD35D ,0x89BF //CJK UNIFIED IDEOGRAPH - ,0xD35E ,0x89C0 //CJK UNIFIED IDEOGRAPH - ,0xD35F ,0x89C3 //CJK UNIFIED IDEOGRAPH - ,0xD360 ,0x89CD //CJK UNIFIED IDEOGRAPH - ,0xD361 ,0x89D3 //CJK UNIFIED IDEOGRAPH - ,0xD362 ,0x89D4 //CJK UNIFIED IDEOGRAPH - ,0xD363 ,0x89D5 //CJK UNIFIED IDEOGRAPH - ,0xD364 ,0x89D7 //CJK UNIFIED IDEOGRAPH - ,0xD365 ,0x89D8 //CJK UNIFIED IDEOGRAPH - ,0xD366 ,0x89D9 //CJK UNIFIED IDEOGRAPH - ,0xD367 ,0x89DB //CJK UNIFIED IDEOGRAPH - ,0xD368 ,0x89DD //CJK UNIFIED IDEOGRAPH - ,0xD369 ,0x89DF //CJK UNIFIED IDEOGRAPH - ,0xD36A ,0x89E0 //CJK UNIFIED IDEOGRAPH - ,0xD36B ,0x89E1 //CJK UNIFIED IDEOGRAPH - ,0xD36C ,0x89E2 //CJK UNIFIED IDEOGRAPH - ,0xD36D ,0x89E4 //CJK UNIFIED IDEOGRAPH - ,0xD36E ,0x89E7 //CJK UNIFIED IDEOGRAPH - ,0xD36F ,0x89E8 //CJK UNIFIED IDEOGRAPH - ,0xD370 ,0x89E9 //CJK UNIFIED IDEOGRAPH - ,0xD371 ,0x89EA //CJK UNIFIED IDEOGRAPH - ,0xD372 ,0x89EC //CJK UNIFIED IDEOGRAPH - ,0xD373 ,0x89ED //CJK UNIFIED IDEOGRAPH - ,0xD374 ,0x89EE //CJK UNIFIED IDEOGRAPH - ,0xD375 ,0x89F0 //CJK UNIFIED IDEOGRAPH - ,0xD376 ,0x89F1 //CJK UNIFIED IDEOGRAPH - ,0xD377 ,0x89F2 //CJK UNIFIED IDEOGRAPH - ,0xD378 ,0x89F4 //CJK UNIFIED IDEOGRAPH - ,0xD379 ,0x89F5 //CJK UNIFIED IDEOGRAPH - ,0xD37A ,0x89F6 //CJK UNIFIED IDEOGRAPH - ,0xD37B ,0x89F7 //CJK UNIFIED IDEOGRAPH - ,0xD37C ,0x89F8 //CJK UNIFIED IDEOGRAPH - ,0xD37D ,0x89F9 //CJK UNIFIED IDEOGRAPH - ,0xD37E ,0x89FA //CJK UNIFIED IDEOGRAPH - ,0xD380 ,0x89FB //CJK UNIFIED IDEOGRAPH - ,0xD381 ,0x89FC //CJK UNIFIED IDEOGRAPH - ,0xD382 ,0x89FD //CJK UNIFIED IDEOGRAPH - ,0xD383 ,0x89FE //CJK UNIFIED IDEOGRAPH - ,0xD384 ,0x89FF //CJK UNIFIED IDEOGRAPH - ,0xD385 ,0x8A01 //CJK UNIFIED IDEOGRAPH - ,0xD386 ,0x8A02 //CJK UNIFIED IDEOGRAPH - ,0xD387 ,0x8A03 //CJK UNIFIED IDEOGRAPH - ,0xD388 ,0x8A04 //CJK UNIFIED IDEOGRAPH - ,0xD389 ,0x8A05 //CJK UNIFIED IDEOGRAPH - ,0xD38A ,0x8A06 //CJK UNIFIED IDEOGRAPH - ,0xD38B ,0x8A08 //CJK UNIFIED IDEOGRAPH - ,0xD38C ,0x8A09 //CJK UNIFIED IDEOGRAPH - ,0xD38D ,0x8A0A //CJK UNIFIED IDEOGRAPH - ,0xD38E ,0x8A0B //CJK UNIFIED IDEOGRAPH - ,0xD38F ,0x8A0C //CJK UNIFIED IDEOGRAPH - ,0xD390 ,0x8A0D //CJK UNIFIED IDEOGRAPH - ,0xD391 ,0x8A0E //CJK UNIFIED IDEOGRAPH - ,0xD392 ,0x8A0F //CJK UNIFIED IDEOGRAPH - ,0xD393 ,0x8A10 //CJK UNIFIED IDEOGRAPH - ,0xD394 ,0x8A11 //CJK UNIFIED IDEOGRAPH - ,0xD395 ,0x8A12 //CJK UNIFIED IDEOGRAPH - ,0xD396 ,0x8A13 //CJK UNIFIED IDEOGRAPH - ,0xD397 ,0x8A14 //CJK UNIFIED IDEOGRAPH - ,0xD398 ,0x8A15 //CJK UNIFIED IDEOGRAPH - ,0xD399 ,0x8A16 //CJK UNIFIED IDEOGRAPH - ,0xD39A ,0x8A17 //CJK UNIFIED IDEOGRAPH - ,0xD39B ,0x8A18 //CJK UNIFIED IDEOGRAPH - ,0xD39C ,0x8A19 //CJK UNIFIED IDEOGRAPH - ,0xD39D ,0x8A1A //CJK UNIFIED IDEOGRAPH - ,0xD39E ,0x8A1B //CJK UNIFIED IDEOGRAPH - ,0xD39F ,0x8A1C //CJK UNIFIED IDEOGRAPH - ,0xD3A0 ,0x8A1D //CJK UNIFIED IDEOGRAPH - ,0xD3A1 ,0x5370 //CJK UNIFIED IDEOGRAPH - ,0xD3A2 ,0x82F1 //CJK UNIFIED IDEOGRAPH - ,0xD3A3 ,0x6A31 //CJK UNIFIED IDEOGRAPH - ,0xD3A4 ,0x5A74 //CJK UNIFIED IDEOGRAPH - ,0xD3A5 ,0x9E70 //CJK UNIFIED IDEOGRAPH - ,0xD3A6 ,0x5E94 //CJK UNIFIED IDEOGRAPH - ,0xD3A7 ,0x7F28 //CJK UNIFIED IDEOGRAPH - ,0xD3A8 ,0x83B9 //CJK UNIFIED IDEOGRAPH - ,0xD3A9 ,0x8424 //CJK UNIFIED IDEOGRAPH - ,0xD3AA ,0x8425 //CJK UNIFIED IDEOGRAPH - ,0xD3AB ,0x8367 //CJK UNIFIED IDEOGRAPH - ,0xD3AC ,0x8747 //CJK UNIFIED IDEOGRAPH - ,0xD3AD ,0x8FCE //CJK UNIFIED IDEOGRAPH - ,0xD3AE ,0x8D62 //CJK UNIFIED IDEOGRAPH - ,0xD3AF ,0x76C8 //CJK UNIFIED IDEOGRAPH - ,0xD3B0 ,0x5F71 //CJK UNIFIED IDEOGRAPH - ,0xD3B1 ,0x9896 //CJK UNIFIED IDEOGRAPH - ,0xD3B2 ,0x786C //CJK UNIFIED IDEOGRAPH - ,0xD3B3 ,0x6620 //CJK UNIFIED IDEOGRAPH - ,0xD3B4 ,0x54DF //CJK UNIFIED IDEOGRAPH - ,0xD3B5 ,0x62E5 //CJK UNIFIED IDEOGRAPH - ,0xD3B6 ,0x4F63 //CJK UNIFIED IDEOGRAPH - ,0xD3B7 ,0x81C3 //CJK UNIFIED IDEOGRAPH - ,0xD3B8 ,0x75C8 //CJK UNIFIED IDEOGRAPH - ,0xD3B9 ,0x5EB8 //CJK UNIFIED IDEOGRAPH - ,0xD3BA ,0x96CD //CJK UNIFIED IDEOGRAPH - ,0xD3BB ,0x8E0A //CJK UNIFIED IDEOGRAPH - ,0xD3BC ,0x86F9 //CJK UNIFIED IDEOGRAPH - ,0xD3BD ,0x548F //CJK UNIFIED IDEOGRAPH - ,0xD3BE ,0x6CF3 //CJK UNIFIED IDEOGRAPH - ,0xD3BF ,0x6D8C //CJK UNIFIED IDEOGRAPH - ,0xD3C0 ,0x6C38 //CJK UNIFIED IDEOGRAPH - ,0xD3C1 ,0x607F //CJK UNIFIED IDEOGRAPH - ,0xD3C2 ,0x52C7 //CJK UNIFIED IDEOGRAPH - ,0xD3C3 ,0x7528 //CJK UNIFIED IDEOGRAPH - ,0xD3C4 ,0x5E7D //CJK UNIFIED IDEOGRAPH - ,0xD3C5 ,0x4F18 //CJK UNIFIED IDEOGRAPH - ,0xD3C6 ,0x60A0 //CJK UNIFIED IDEOGRAPH - ,0xD3C7 ,0x5FE7 //CJK UNIFIED IDEOGRAPH - ,0xD3C8 ,0x5C24 //CJK UNIFIED IDEOGRAPH - ,0xD3C9 ,0x7531 //CJK UNIFIED IDEOGRAPH - ,0xD3CA ,0x90AE //CJK UNIFIED IDEOGRAPH - ,0xD3CB ,0x94C0 //CJK UNIFIED IDEOGRAPH - ,0xD3CC ,0x72B9 //CJK UNIFIED IDEOGRAPH - ,0xD3CD ,0x6CB9 //CJK UNIFIED IDEOGRAPH - ,0xD3CE ,0x6E38 //CJK UNIFIED IDEOGRAPH - ,0xD3CF ,0x9149 //CJK UNIFIED IDEOGRAPH - ,0xD3D0 ,0x6709 //CJK UNIFIED IDEOGRAPH - ,0xD3D1 ,0x53CB //CJK UNIFIED IDEOGRAPH - ,0xD3D2 ,0x53F3 //CJK UNIFIED IDEOGRAPH - ,0xD3D3 ,0x4F51 //CJK UNIFIED IDEOGRAPH - ,0xD3D4 ,0x91C9 //CJK UNIFIED IDEOGRAPH - ,0xD3D5 ,0x8BF1 //CJK UNIFIED IDEOGRAPH - ,0xD3D6 ,0x53C8 //CJK UNIFIED IDEOGRAPH - ,0xD3D7 ,0x5E7C //CJK UNIFIED IDEOGRAPH - ,0xD3D8 ,0x8FC2 //CJK UNIFIED IDEOGRAPH - ,0xD3D9 ,0x6DE4 //CJK UNIFIED IDEOGRAPH - ,0xD3DA ,0x4E8E //CJK UNIFIED IDEOGRAPH - ,0xD3DB ,0x76C2 //CJK UNIFIED IDEOGRAPH - ,0xD3DC ,0x6986 //CJK UNIFIED IDEOGRAPH - ,0xD3DD ,0x865E //CJK UNIFIED IDEOGRAPH - ,0xD3DE ,0x611A //CJK UNIFIED IDEOGRAPH - ,0xD3DF ,0x8206 //CJK UNIFIED IDEOGRAPH - ,0xD3E0 ,0x4F59 //CJK UNIFIED IDEOGRAPH - ,0xD3E1 ,0x4FDE //CJK UNIFIED IDEOGRAPH - ,0xD3E2 ,0x903E //CJK UNIFIED IDEOGRAPH - ,0xD3E3 ,0x9C7C //CJK UNIFIED IDEOGRAPH - ,0xD3E4 ,0x6109 //CJK UNIFIED IDEOGRAPH - ,0xD3E5 ,0x6E1D //CJK UNIFIED IDEOGRAPH - ,0xD3E6 ,0x6E14 //CJK UNIFIED IDEOGRAPH - ,0xD3E7 ,0x9685 //CJK UNIFIED IDEOGRAPH - ,0xD3E8 ,0x4E88 //CJK UNIFIED IDEOGRAPH - ,0xD3E9 ,0x5A31 //CJK UNIFIED IDEOGRAPH - ,0xD3EA ,0x96E8 //CJK UNIFIED IDEOGRAPH - ,0xD3EB ,0x4E0E //CJK UNIFIED IDEOGRAPH - ,0xD3EC ,0x5C7F //CJK UNIFIED IDEOGRAPH - ,0xD3ED ,0x79B9 //CJK UNIFIED IDEOGRAPH - ,0xD3EE ,0x5B87 //CJK UNIFIED IDEOGRAPH - ,0xD3EF ,0x8BED //CJK UNIFIED IDEOGRAPH - ,0xD3F0 ,0x7FBD //CJK UNIFIED IDEOGRAPH - ,0xD3F1 ,0x7389 //CJK UNIFIED IDEOGRAPH - ,0xD3F2 ,0x57DF //CJK UNIFIED IDEOGRAPH - ,0xD3F3 ,0x828B //CJK UNIFIED IDEOGRAPH - ,0xD3F4 ,0x90C1 //CJK UNIFIED IDEOGRAPH - ,0xD3F5 ,0x5401 //CJK UNIFIED IDEOGRAPH - ,0xD3F6 ,0x9047 //CJK UNIFIED IDEOGRAPH - ,0xD3F7 ,0x55BB //CJK UNIFIED IDEOGRAPH - ,0xD3F8 ,0x5CEA //CJK UNIFIED IDEOGRAPH - ,0xD3F9 ,0x5FA1 //CJK UNIFIED IDEOGRAPH - ,0xD3FA ,0x6108 //CJK UNIFIED IDEOGRAPH - ,0xD3FB ,0x6B32 //CJK UNIFIED IDEOGRAPH - ,0xD3FC ,0x72F1 //CJK UNIFIED IDEOGRAPH - ,0xD3FD ,0x80B2 //CJK UNIFIED IDEOGRAPH - ,0xD3FE ,0x8A89 //CJK UNIFIED IDEOGRAPH - ,0xD440 ,0x8A1E //CJK UNIFIED IDEOGRAPH - ,0xD441 ,0x8A1F //CJK UNIFIED IDEOGRAPH - ,0xD442 ,0x8A20 //CJK UNIFIED IDEOGRAPH - ,0xD443 ,0x8A21 //CJK UNIFIED IDEOGRAPH - ,0xD444 ,0x8A22 //CJK UNIFIED IDEOGRAPH - ,0xD445 ,0x8A23 //CJK UNIFIED IDEOGRAPH - ,0xD446 ,0x8A24 //CJK UNIFIED IDEOGRAPH - ,0xD447 ,0x8A25 //CJK UNIFIED IDEOGRAPH - ,0xD448 ,0x8A26 //CJK UNIFIED IDEOGRAPH - ,0xD449 ,0x8A27 //CJK UNIFIED IDEOGRAPH - ,0xD44A ,0x8A28 //CJK UNIFIED IDEOGRAPH - ,0xD44B ,0x8A29 //CJK UNIFIED IDEOGRAPH - ,0xD44C ,0x8A2A //CJK UNIFIED IDEOGRAPH - ,0xD44D ,0x8A2B //CJK UNIFIED IDEOGRAPH - ,0xD44E ,0x8A2C //CJK UNIFIED IDEOGRAPH - ,0xD44F ,0x8A2D //CJK UNIFIED IDEOGRAPH - ,0xD450 ,0x8A2E //CJK UNIFIED IDEOGRAPH - ,0xD451 ,0x8A2F //CJK UNIFIED IDEOGRAPH - ,0xD452 ,0x8A30 //CJK UNIFIED IDEOGRAPH - ,0xD453 ,0x8A31 //CJK UNIFIED IDEOGRAPH - ,0xD454 ,0x8A32 //CJK UNIFIED IDEOGRAPH - ,0xD455 ,0x8A33 //CJK UNIFIED IDEOGRAPH - ,0xD456 ,0x8A34 //CJK UNIFIED IDEOGRAPH - ,0xD457 ,0x8A35 //CJK UNIFIED IDEOGRAPH - ,0xD458 ,0x8A36 //CJK UNIFIED IDEOGRAPH - ,0xD459 ,0x8A37 //CJK UNIFIED IDEOGRAPH - ,0xD45A ,0x8A38 //CJK UNIFIED IDEOGRAPH - ,0xD45B ,0x8A39 //CJK UNIFIED IDEOGRAPH - ,0xD45C ,0x8A3A //CJK UNIFIED IDEOGRAPH - ,0xD45D ,0x8A3B //CJK UNIFIED IDEOGRAPH - ,0xD45E ,0x8A3C //CJK UNIFIED IDEOGRAPH - ,0xD45F ,0x8A3D //CJK UNIFIED IDEOGRAPH - ,0xD460 ,0x8A3F //CJK UNIFIED IDEOGRAPH - ,0xD461 ,0x8A40 //CJK UNIFIED IDEOGRAPH - ,0xD462 ,0x8A41 //CJK UNIFIED IDEOGRAPH - ,0xD463 ,0x8A42 //CJK UNIFIED IDEOGRAPH - ,0xD464 ,0x8A43 //CJK UNIFIED IDEOGRAPH - ,0xD465 ,0x8A44 //CJK UNIFIED IDEOGRAPH - ,0xD466 ,0x8A45 //CJK UNIFIED IDEOGRAPH - ,0xD467 ,0x8A46 //CJK UNIFIED IDEOGRAPH - ,0xD468 ,0x8A47 //CJK UNIFIED IDEOGRAPH - ,0xD469 ,0x8A49 //CJK UNIFIED IDEOGRAPH - ,0xD46A ,0x8A4A //CJK UNIFIED IDEOGRAPH - ,0xD46B ,0x8A4B //CJK UNIFIED IDEOGRAPH - ,0xD46C ,0x8A4C //CJK UNIFIED IDEOGRAPH - ,0xD46D ,0x8A4D //CJK UNIFIED IDEOGRAPH - ,0xD46E ,0x8A4E //CJK UNIFIED IDEOGRAPH - ,0xD46F ,0x8A4F //CJK UNIFIED IDEOGRAPH - ,0xD470 ,0x8A50 //CJK UNIFIED IDEOGRAPH - ,0xD471 ,0x8A51 //CJK UNIFIED IDEOGRAPH - ,0xD472 ,0x8A52 //CJK UNIFIED IDEOGRAPH - ,0xD473 ,0x8A53 //CJK UNIFIED IDEOGRAPH - ,0xD474 ,0x8A54 //CJK UNIFIED IDEOGRAPH - ,0xD475 ,0x8A55 //CJK UNIFIED IDEOGRAPH - ,0xD476 ,0x8A56 //CJK UNIFIED IDEOGRAPH - ,0xD477 ,0x8A57 //CJK UNIFIED IDEOGRAPH - ,0xD478 ,0x8A58 //CJK UNIFIED IDEOGRAPH - ,0xD479 ,0x8A59 //CJK UNIFIED IDEOGRAPH - ,0xD47A ,0x8A5A //CJK UNIFIED IDEOGRAPH - ,0xD47B ,0x8A5B //CJK UNIFIED IDEOGRAPH - ,0xD47C ,0x8A5C //CJK UNIFIED IDEOGRAPH - ,0xD47D ,0x8A5D //CJK UNIFIED IDEOGRAPH - ,0xD47E ,0x8A5E //CJK UNIFIED IDEOGRAPH - ,0xD480 ,0x8A5F //CJK UNIFIED IDEOGRAPH - ,0xD481 ,0x8A60 //CJK UNIFIED IDEOGRAPH - ,0xD482 ,0x8A61 //CJK UNIFIED IDEOGRAPH - ,0xD483 ,0x8A62 //CJK UNIFIED IDEOGRAPH - ,0xD484 ,0x8A63 //CJK UNIFIED IDEOGRAPH - ,0xD485 ,0x8A64 //CJK UNIFIED IDEOGRAPH - ,0xD486 ,0x8A65 //CJK UNIFIED IDEOGRAPH - ,0xD487 ,0x8A66 //CJK UNIFIED IDEOGRAPH - ,0xD488 ,0x8A67 //CJK UNIFIED IDEOGRAPH - ,0xD489 ,0x8A68 //CJK UNIFIED IDEOGRAPH - ,0xD48A ,0x8A69 //CJK UNIFIED IDEOGRAPH - ,0xD48B ,0x8A6A //CJK UNIFIED IDEOGRAPH - ,0xD48C ,0x8A6B //CJK UNIFIED IDEOGRAPH - ,0xD48D ,0x8A6C //CJK UNIFIED IDEOGRAPH - ,0xD48E ,0x8A6D //CJK UNIFIED IDEOGRAPH - ,0xD48F ,0x8A6E //CJK UNIFIED IDEOGRAPH - ,0xD490 ,0x8A6F //CJK UNIFIED IDEOGRAPH - ,0xD491 ,0x8A70 //CJK UNIFIED IDEOGRAPH - ,0xD492 ,0x8A71 //CJK UNIFIED IDEOGRAPH - ,0xD493 ,0x8A72 //CJK UNIFIED IDEOGRAPH - ,0xD494 ,0x8A73 //CJK UNIFIED IDEOGRAPH - ,0xD495 ,0x8A74 //CJK UNIFIED IDEOGRAPH - ,0xD496 ,0x8A75 //CJK UNIFIED IDEOGRAPH - ,0xD497 ,0x8A76 //CJK UNIFIED IDEOGRAPH - ,0xD498 ,0x8A77 //CJK UNIFIED IDEOGRAPH - ,0xD499 ,0x8A78 //CJK UNIFIED IDEOGRAPH - ,0xD49A ,0x8A7A //CJK UNIFIED IDEOGRAPH - ,0xD49B ,0x8A7B //CJK UNIFIED IDEOGRAPH - ,0xD49C ,0x8A7C //CJK UNIFIED IDEOGRAPH - ,0xD49D ,0x8A7D //CJK UNIFIED IDEOGRAPH - ,0xD49E ,0x8A7E //CJK UNIFIED IDEOGRAPH - ,0xD49F ,0x8A7F //CJK UNIFIED IDEOGRAPH - ,0xD4A0 ,0x8A80 //CJK UNIFIED IDEOGRAPH - ,0xD4A1 ,0x6D74 //CJK UNIFIED IDEOGRAPH - ,0xD4A2 ,0x5BD3 //CJK UNIFIED IDEOGRAPH - ,0xD4A3 ,0x88D5 //CJK UNIFIED IDEOGRAPH - ,0xD4A4 ,0x9884 //CJK UNIFIED IDEOGRAPH - ,0xD4A5 ,0x8C6B //CJK UNIFIED IDEOGRAPH - ,0xD4A6 ,0x9A6D //CJK UNIFIED IDEOGRAPH - ,0xD4A7 ,0x9E33 //CJK UNIFIED IDEOGRAPH - ,0xD4A8 ,0x6E0A //CJK UNIFIED IDEOGRAPH - ,0xD4A9 ,0x51A4 //CJK UNIFIED IDEOGRAPH - ,0xD4AA ,0x5143 //CJK UNIFIED IDEOGRAPH - ,0xD4AB ,0x57A3 //CJK UNIFIED IDEOGRAPH - ,0xD4AC ,0x8881 //CJK UNIFIED IDEOGRAPH - ,0xD4AD ,0x539F //CJK UNIFIED IDEOGRAPH - ,0xD4AE ,0x63F4 //CJK UNIFIED IDEOGRAPH - ,0xD4AF ,0x8F95 //CJK UNIFIED IDEOGRAPH - ,0xD4B0 ,0x56ED //CJK UNIFIED IDEOGRAPH - ,0xD4B1 ,0x5458 //CJK UNIFIED IDEOGRAPH - ,0xD4B2 ,0x5706 //CJK UNIFIED IDEOGRAPH - ,0xD4B3 ,0x733F //CJK UNIFIED IDEOGRAPH - ,0xD4B4 ,0x6E90 //CJK UNIFIED IDEOGRAPH - ,0xD4B5 ,0x7F18 //CJK UNIFIED IDEOGRAPH - ,0xD4B6 ,0x8FDC //CJK UNIFIED IDEOGRAPH - ,0xD4B7 ,0x82D1 //CJK UNIFIED IDEOGRAPH - ,0xD4B8 ,0x613F //CJK UNIFIED IDEOGRAPH - ,0xD4B9 ,0x6028 //CJK UNIFIED IDEOGRAPH - ,0xD4BA ,0x9662 //CJK UNIFIED IDEOGRAPH - ,0xD4BB ,0x66F0 //CJK UNIFIED IDEOGRAPH - ,0xD4BC ,0x7EA6 //CJK UNIFIED IDEOGRAPH - ,0xD4BD ,0x8D8A //CJK UNIFIED IDEOGRAPH - ,0xD4BE ,0x8DC3 //CJK UNIFIED IDEOGRAPH - ,0xD4BF ,0x94A5 //CJK UNIFIED IDEOGRAPH - ,0xD4C0 ,0x5CB3 //CJK UNIFIED IDEOGRAPH - ,0xD4C1 ,0x7CA4 //CJK UNIFIED IDEOGRAPH - ,0xD4C2 ,0x6708 //CJK UNIFIED IDEOGRAPH - ,0xD4C3 ,0x60A6 //CJK UNIFIED IDEOGRAPH - ,0xD4C4 ,0x9605 //CJK UNIFIED IDEOGRAPH - ,0xD4C5 ,0x8018 //CJK UNIFIED IDEOGRAPH - ,0xD4C6 ,0x4E91 //CJK UNIFIED IDEOGRAPH - ,0xD4C7 ,0x90E7 //CJK UNIFIED IDEOGRAPH - ,0xD4C8 ,0x5300 //CJK UNIFIED IDEOGRAPH - ,0xD4C9 ,0x9668 //CJK UNIFIED IDEOGRAPH - ,0xD4CA ,0x5141 //CJK UNIFIED IDEOGRAPH - ,0xD4CB ,0x8FD0 //CJK UNIFIED IDEOGRAPH - ,0xD4CC ,0x8574 //CJK UNIFIED IDEOGRAPH - ,0xD4CD ,0x915D //CJK UNIFIED IDEOGRAPH - ,0xD4CE ,0x6655 //CJK UNIFIED IDEOGRAPH - ,0xD4CF ,0x97F5 //CJK UNIFIED IDEOGRAPH - ,0xD4D0 ,0x5B55 //CJK UNIFIED IDEOGRAPH - ,0xD4D1 ,0x531D //CJK UNIFIED IDEOGRAPH - ,0xD4D2 ,0x7838 //CJK UNIFIED IDEOGRAPH - ,0xD4D3 ,0x6742 //CJK UNIFIED IDEOGRAPH - ,0xD4D4 ,0x683D //CJK UNIFIED IDEOGRAPH - ,0xD4D5 ,0x54C9 //CJK UNIFIED IDEOGRAPH - ,0xD4D6 ,0x707E //CJK UNIFIED IDEOGRAPH - ,0xD4D7 ,0x5BB0 //CJK UNIFIED IDEOGRAPH - ,0xD4D8 ,0x8F7D //CJK UNIFIED IDEOGRAPH - ,0xD4D9 ,0x518D //CJK UNIFIED IDEOGRAPH - ,0xD4DA ,0x5728 //CJK UNIFIED IDEOGRAPH - ,0xD4DB ,0x54B1 //CJK UNIFIED IDEOGRAPH - ,0xD4DC ,0x6512 //CJK UNIFIED IDEOGRAPH - ,0xD4DD ,0x6682 //CJK UNIFIED IDEOGRAPH - ,0xD4DE ,0x8D5E //CJK UNIFIED IDEOGRAPH - ,0xD4DF ,0x8D43 //CJK UNIFIED IDEOGRAPH - ,0xD4E0 ,0x810F //CJK UNIFIED IDEOGRAPH - ,0xD4E1 ,0x846C //CJK UNIFIED IDEOGRAPH - ,0xD4E2 ,0x906D //CJK UNIFIED IDEOGRAPH - ,0xD4E3 ,0x7CDF //CJK UNIFIED IDEOGRAPH - ,0xD4E4 ,0x51FF //CJK UNIFIED IDEOGRAPH - ,0xD4E5 ,0x85FB //CJK UNIFIED IDEOGRAPH - ,0xD4E6 ,0x67A3 //CJK UNIFIED IDEOGRAPH - ,0xD4E7 ,0x65E9 //CJK UNIFIED IDEOGRAPH - ,0xD4E8 ,0x6FA1 //CJK UNIFIED IDEOGRAPH - ,0xD4E9 ,0x86A4 //CJK UNIFIED IDEOGRAPH - ,0xD4EA ,0x8E81 //CJK UNIFIED IDEOGRAPH - ,0xD4EB ,0x566A //CJK UNIFIED IDEOGRAPH - ,0xD4EC ,0x9020 //CJK UNIFIED IDEOGRAPH - ,0xD4ED ,0x7682 //CJK UNIFIED IDEOGRAPH - ,0xD4EE ,0x7076 //CJK UNIFIED IDEOGRAPH - ,0xD4EF ,0x71E5 //CJK UNIFIED IDEOGRAPH - ,0xD4F0 ,0x8D23 //CJK UNIFIED IDEOGRAPH - ,0xD4F1 ,0x62E9 //CJK UNIFIED IDEOGRAPH - ,0xD4F2 ,0x5219 //CJK UNIFIED IDEOGRAPH - ,0xD4F3 ,0x6CFD //CJK UNIFIED IDEOGRAPH - ,0xD4F4 ,0x8D3C //CJK UNIFIED IDEOGRAPH - ,0xD4F5 ,0x600E //CJK UNIFIED IDEOGRAPH - ,0xD4F6 ,0x589E //CJK UNIFIED IDEOGRAPH - ,0xD4F7 ,0x618E //CJK UNIFIED IDEOGRAPH - ,0xD4F8 ,0x66FE //CJK UNIFIED IDEOGRAPH - ,0xD4F9 ,0x8D60 //CJK UNIFIED IDEOGRAPH - ,0xD4FA ,0x624E //CJK UNIFIED IDEOGRAPH - ,0xD4FB ,0x55B3 //CJK UNIFIED IDEOGRAPH - ,0xD4FC ,0x6E23 //CJK UNIFIED IDEOGRAPH - ,0xD4FD ,0x672D //CJK UNIFIED IDEOGRAPH - ,0xD4FE ,0x8F67 //CJK UNIFIED IDEOGRAPH - ,0xD540 ,0x8A81 //CJK UNIFIED IDEOGRAPH - ,0xD541 ,0x8A82 //CJK UNIFIED IDEOGRAPH - ,0xD542 ,0x8A83 //CJK UNIFIED IDEOGRAPH - ,0xD543 ,0x8A84 //CJK UNIFIED IDEOGRAPH - ,0xD544 ,0x8A85 //CJK UNIFIED IDEOGRAPH - ,0xD545 ,0x8A86 //CJK UNIFIED IDEOGRAPH - ,0xD546 ,0x8A87 //CJK UNIFIED IDEOGRAPH - ,0xD547 ,0x8A88 //CJK UNIFIED IDEOGRAPH - ,0xD548 ,0x8A8B //CJK UNIFIED IDEOGRAPH - ,0xD549 ,0x8A8C //CJK UNIFIED IDEOGRAPH - ,0xD54A ,0x8A8D //CJK UNIFIED IDEOGRAPH - ,0xD54B ,0x8A8E //CJK UNIFIED IDEOGRAPH - ,0xD54C ,0x8A8F //CJK UNIFIED IDEOGRAPH - ,0xD54D ,0x8A90 //CJK UNIFIED IDEOGRAPH - ,0xD54E ,0x8A91 //CJK UNIFIED IDEOGRAPH - ,0xD54F ,0x8A92 //CJK UNIFIED IDEOGRAPH - ,0xD550 ,0x8A94 //CJK UNIFIED IDEOGRAPH - ,0xD551 ,0x8A95 //CJK UNIFIED IDEOGRAPH - ,0xD552 ,0x8A96 //CJK UNIFIED IDEOGRAPH - ,0xD553 ,0x8A97 //CJK UNIFIED IDEOGRAPH - ,0xD554 ,0x8A98 //CJK UNIFIED IDEOGRAPH - ,0xD555 ,0x8A99 //CJK UNIFIED IDEOGRAPH - ,0xD556 ,0x8A9A //CJK UNIFIED IDEOGRAPH - ,0xD557 ,0x8A9B //CJK UNIFIED IDEOGRAPH - ,0xD558 ,0x8A9C //CJK UNIFIED IDEOGRAPH - ,0xD559 ,0x8A9D //CJK UNIFIED IDEOGRAPH - ,0xD55A ,0x8A9E //CJK UNIFIED IDEOGRAPH - ,0xD55B ,0x8A9F //CJK UNIFIED IDEOGRAPH - ,0xD55C ,0x8AA0 //CJK UNIFIED IDEOGRAPH - ,0xD55D ,0x8AA1 //CJK UNIFIED IDEOGRAPH - ,0xD55E ,0x8AA2 //CJK UNIFIED IDEOGRAPH - ,0xD55F ,0x8AA3 //CJK UNIFIED IDEOGRAPH - ,0xD560 ,0x8AA4 //CJK UNIFIED IDEOGRAPH - ,0xD561 ,0x8AA5 //CJK UNIFIED IDEOGRAPH - ,0xD562 ,0x8AA6 //CJK UNIFIED IDEOGRAPH - ,0xD563 ,0x8AA7 //CJK UNIFIED IDEOGRAPH - ,0xD564 ,0x8AA8 //CJK UNIFIED IDEOGRAPH - ,0xD565 ,0x8AA9 //CJK UNIFIED IDEOGRAPH - ,0xD566 ,0x8AAA //CJK UNIFIED IDEOGRAPH - ,0xD567 ,0x8AAB //CJK UNIFIED IDEOGRAPH - ,0xD568 ,0x8AAC //CJK UNIFIED IDEOGRAPH - ,0xD569 ,0x8AAD //CJK UNIFIED IDEOGRAPH - ,0xD56A ,0x8AAE //CJK UNIFIED IDEOGRAPH - ,0xD56B ,0x8AAF //CJK UNIFIED IDEOGRAPH - ,0xD56C ,0x8AB0 //CJK UNIFIED IDEOGRAPH - ,0xD56D ,0x8AB1 //CJK UNIFIED IDEOGRAPH - ,0xD56E ,0x8AB2 //CJK UNIFIED IDEOGRAPH - ,0xD56F ,0x8AB3 //CJK UNIFIED IDEOGRAPH - ,0xD570 ,0x8AB4 //CJK UNIFIED IDEOGRAPH - ,0xD571 ,0x8AB5 //CJK UNIFIED IDEOGRAPH - ,0xD572 ,0x8AB6 //CJK UNIFIED IDEOGRAPH - ,0xD573 ,0x8AB7 //CJK UNIFIED IDEOGRAPH - ,0xD574 ,0x8AB8 //CJK UNIFIED IDEOGRAPH - ,0xD575 ,0x8AB9 //CJK UNIFIED IDEOGRAPH - ,0xD576 ,0x8ABA //CJK UNIFIED IDEOGRAPH - ,0xD577 ,0x8ABB //CJK UNIFIED IDEOGRAPH - ,0xD578 ,0x8ABC //CJK UNIFIED IDEOGRAPH - ,0xD579 ,0x8ABD //CJK UNIFIED IDEOGRAPH - ,0xD57A ,0x8ABE //CJK UNIFIED IDEOGRAPH - ,0xD57B ,0x8ABF //CJK UNIFIED IDEOGRAPH - ,0xD57C ,0x8AC0 //CJK UNIFIED IDEOGRAPH - ,0xD57D ,0x8AC1 //CJK UNIFIED IDEOGRAPH - ,0xD57E ,0x8AC2 //CJK UNIFIED IDEOGRAPH - ,0xD580 ,0x8AC3 //CJK UNIFIED IDEOGRAPH - ,0xD581 ,0x8AC4 //CJK UNIFIED IDEOGRAPH - ,0xD582 ,0x8AC5 //CJK UNIFIED IDEOGRAPH - ,0xD583 ,0x8AC6 //CJK UNIFIED IDEOGRAPH - ,0xD584 ,0x8AC7 //CJK UNIFIED IDEOGRAPH - ,0xD585 ,0x8AC8 //CJK UNIFIED IDEOGRAPH - ,0xD586 ,0x8AC9 //CJK UNIFIED IDEOGRAPH - ,0xD587 ,0x8ACA //CJK UNIFIED IDEOGRAPH - ,0xD588 ,0x8ACB //CJK UNIFIED IDEOGRAPH - ,0xD589 ,0x8ACC //CJK UNIFIED IDEOGRAPH - ,0xD58A ,0x8ACD //CJK UNIFIED IDEOGRAPH - ,0xD58B ,0x8ACE //CJK UNIFIED IDEOGRAPH - ,0xD58C ,0x8ACF //CJK UNIFIED IDEOGRAPH - ,0xD58D ,0x8AD0 //CJK UNIFIED IDEOGRAPH - ,0xD58E ,0x8AD1 //CJK UNIFIED IDEOGRAPH - ,0xD58F ,0x8AD2 //CJK UNIFIED IDEOGRAPH - ,0xD590 ,0x8AD3 //CJK UNIFIED IDEOGRAPH - ,0xD591 ,0x8AD4 //CJK UNIFIED IDEOGRAPH - ,0xD592 ,0x8AD5 //CJK UNIFIED IDEOGRAPH - ,0xD593 ,0x8AD6 //CJK UNIFIED IDEOGRAPH - ,0xD594 ,0x8AD7 //CJK UNIFIED IDEOGRAPH - ,0xD595 ,0x8AD8 //CJK UNIFIED IDEOGRAPH - ,0xD596 ,0x8AD9 //CJK UNIFIED IDEOGRAPH - ,0xD597 ,0x8ADA //CJK UNIFIED IDEOGRAPH - ,0xD598 ,0x8ADB //CJK UNIFIED IDEOGRAPH - ,0xD599 ,0x8ADC //CJK UNIFIED IDEOGRAPH - ,0xD59A ,0x8ADD //CJK UNIFIED IDEOGRAPH - ,0xD59B ,0x8ADE //CJK UNIFIED IDEOGRAPH - ,0xD59C ,0x8ADF //CJK UNIFIED IDEOGRAPH - ,0xD59D ,0x8AE0 //CJK UNIFIED IDEOGRAPH - ,0xD59E ,0x8AE1 //CJK UNIFIED IDEOGRAPH - ,0xD59F ,0x8AE2 //CJK UNIFIED IDEOGRAPH - ,0xD5A0 ,0x8AE3 //CJK UNIFIED IDEOGRAPH - ,0xD5A1 ,0x94E1 //CJK UNIFIED IDEOGRAPH - ,0xD5A2 ,0x95F8 //CJK UNIFIED IDEOGRAPH - ,0xD5A3 ,0x7728 //CJK UNIFIED IDEOGRAPH - ,0xD5A4 ,0x6805 //CJK UNIFIED IDEOGRAPH - ,0xD5A5 ,0x69A8 //CJK UNIFIED IDEOGRAPH - ,0xD5A6 ,0x548B //CJK UNIFIED IDEOGRAPH - ,0xD5A7 ,0x4E4D //CJK UNIFIED IDEOGRAPH - ,0xD5A8 ,0x70B8 //CJK UNIFIED IDEOGRAPH - ,0xD5A9 ,0x8BC8 //CJK UNIFIED IDEOGRAPH - ,0xD5AA ,0x6458 //CJK UNIFIED IDEOGRAPH - ,0xD5AB ,0x658B //CJK UNIFIED IDEOGRAPH - ,0xD5AC ,0x5B85 //CJK UNIFIED IDEOGRAPH - ,0xD5AD ,0x7A84 //CJK UNIFIED IDEOGRAPH - ,0xD5AE ,0x503A //CJK UNIFIED IDEOGRAPH - ,0xD5AF ,0x5BE8 //CJK UNIFIED IDEOGRAPH - ,0xD5B0 ,0x77BB //CJK UNIFIED IDEOGRAPH - ,0xD5B1 ,0x6BE1 //CJK UNIFIED IDEOGRAPH - ,0xD5B2 ,0x8A79 //CJK UNIFIED IDEOGRAPH - ,0xD5B3 ,0x7C98 //CJK UNIFIED IDEOGRAPH - ,0xD5B4 ,0x6CBE //CJK UNIFIED IDEOGRAPH - ,0xD5B5 ,0x76CF //CJK UNIFIED IDEOGRAPH - ,0xD5B6 ,0x65A9 //CJK UNIFIED IDEOGRAPH - ,0xD5B7 ,0x8F97 //CJK UNIFIED IDEOGRAPH - ,0xD5B8 ,0x5D2D //CJK UNIFIED IDEOGRAPH - ,0xD5B9 ,0x5C55 //CJK UNIFIED IDEOGRAPH - ,0xD5BA ,0x8638 //CJK UNIFIED IDEOGRAPH - ,0xD5BB ,0x6808 //CJK UNIFIED IDEOGRAPH - ,0xD5BC ,0x5360 //CJK UNIFIED IDEOGRAPH - ,0xD5BD ,0x6218 //CJK UNIFIED IDEOGRAPH - ,0xD5BE ,0x7AD9 //CJK UNIFIED IDEOGRAPH - ,0xD5BF ,0x6E5B //CJK UNIFIED IDEOGRAPH - ,0xD5C0 ,0x7EFD //CJK UNIFIED IDEOGRAPH - ,0xD5C1 ,0x6A1F //CJK UNIFIED IDEOGRAPH - ,0xD5C2 ,0x7AE0 //CJK UNIFIED IDEOGRAPH - ,0xD5C3 ,0x5F70 //CJK UNIFIED IDEOGRAPH - ,0xD5C4 ,0x6F33 //CJK UNIFIED IDEOGRAPH - ,0xD5C5 ,0x5F20 //CJK UNIFIED IDEOGRAPH - ,0xD5C6 ,0x638C //CJK UNIFIED IDEOGRAPH - ,0xD5C7 ,0x6DA8 //CJK UNIFIED IDEOGRAPH - ,0xD5C8 ,0x6756 //CJK UNIFIED IDEOGRAPH - ,0xD5C9 ,0x4E08 //CJK UNIFIED IDEOGRAPH - ,0xD5CA ,0x5E10 //CJK UNIFIED IDEOGRAPH - ,0xD5CB ,0x8D26 //CJK UNIFIED IDEOGRAPH - ,0xD5CC ,0x4ED7 //CJK UNIFIED IDEOGRAPH - ,0xD5CD ,0x80C0 //CJK UNIFIED IDEOGRAPH - ,0xD5CE ,0x7634 //CJK UNIFIED IDEOGRAPH - ,0xD5CF ,0x969C //CJK UNIFIED IDEOGRAPH - ,0xD5D0 ,0x62DB //CJK UNIFIED IDEOGRAPH - ,0xD5D1 ,0x662D //CJK UNIFIED IDEOGRAPH - ,0xD5D2 ,0x627E //CJK UNIFIED IDEOGRAPH - ,0xD5D3 ,0x6CBC //CJK UNIFIED IDEOGRAPH - ,0xD5D4 ,0x8D75 //CJK UNIFIED IDEOGRAPH - ,0xD5D5 ,0x7167 //CJK UNIFIED IDEOGRAPH - ,0xD5D6 ,0x7F69 //CJK UNIFIED IDEOGRAPH - ,0xD5D7 ,0x5146 //CJK UNIFIED IDEOGRAPH - ,0xD5D8 ,0x8087 //CJK UNIFIED IDEOGRAPH - ,0xD5D9 ,0x53EC //CJK UNIFIED IDEOGRAPH - ,0xD5DA ,0x906E //CJK UNIFIED IDEOGRAPH - ,0xD5DB ,0x6298 //CJK UNIFIED IDEOGRAPH - ,0xD5DC ,0x54F2 //CJK UNIFIED IDEOGRAPH - ,0xD5DD ,0x86F0 //CJK UNIFIED IDEOGRAPH - ,0xD5DE ,0x8F99 //CJK UNIFIED IDEOGRAPH - ,0xD5DF ,0x8005 //CJK UNIFIED IDEOGRAPH - ,0xD5E0 ,0x9517 //CJK UNIFIED IDEOGRAPH - ,0xD5E1 ,0x8517 //CJK UNIFIED IDEOGRAPH - ,0xD5E2 ,0x8FD9 //CJK UNIFIED IDEOGRAPH - ,0xD5E3 ,0x6D59 //CJK UNIFIED IDEOGRAPH - ,0xD5E4 ,0x73CD //CJK UNIFIED IDEOGRAPH - ,0xD5E5 ,0x659F //CJK UNIFIED IDEOGRAPH - ,0xD5E6 ,0x771F //CJK UNIFIED IDEOGRAPH - ,0xD5E7 ,0x7504 //CJK UNIFIED IDEOGRAPH - ,0xD5E8 ,0x7827 //CJK UNIFIED IDEOGRAPH - ,0xD5E9 ,0x81FB //CJK UNIFIED IDEOGRAPH - ,0xD5EA ,0x8D1E //CJK UNIFIED IDEOGRAPH - ,0xD5EB ,0x9488 //CJK UNIFIED IDEOGRAPH - ,0xD5EC ,0x4FA6 //CJK UNIFIED IDEOGRAPH - ,0xD5ED ,0x6795 //CJK UNIFIED IDEOGRAPH - ,0xD5EE ,0x75B9 //CJK UNIFIED IDEOGRAPH - ,0xD5EF ,0x8BCA //CJK UNIFIED IDEOGRAPH - ,0xD5F0 ,0x9707 //CJK UNIFIED IDEOGRAPH - ,0xD5F1 ,0x632F //CJK UNIFIED IDEOGRAPH - ,0xD5F2 ,0x9547 //CJK UNIFIED IDEOGRAPH - ,0xD5F3 ,0x9635 //CJK UNIFIED IDEOGRAPH - ,0xD5F4 ,0x84B8 //CJK UNIFIED IDEOGRAPH - ,0xD5F5 ,0x6323 //CJK UNIFIED IDEOGRAPH - ,0xD5F6 ,0x7741 //CJK UNIFIED IDEOGRAPH - ,0xD5F7 ,0x5F81 //CJK UNIFIED IDEOGRAPH - ,0xD5F8 ,0x72F0 //CJK UNIFIED IDEOGRAPH - ,0xD5F9 ,0x4E89 //CJK UNIFIED IDEOGRAPH - ,0xD5FA ,0x6014 //CJK UNIFIED IDEOGRAPH - ,0xD5FB ,0x6574 //CJK UNIFIED IDEOGRAPH - ,0xD5FC ,0x62EF //CJK UNIFIED IDEOGRAPH - ,0xD5FD ,0x6B63 //CJK UNIFIED IDEOGRAPH - ,0xD5FE ,0x653F //CJK UNIFIED IDEOGRAPH - ,0xD640 ,0x8AE4 //CJK UNIFIED IDEOGRAPH - ,0xD641 ,0x8AE5 //CJK UNIFIED IDEOGRAPH - ,0xD642 ,0x8AE6 //CJK UNIFIED IDEOGRAPH - ,0xD643 ,0x8AE7 //CJK UNIFIED IDEOGRAPH - ,0xD644 ,0x8AE8 //CJK UNIFIED IDEOGRAPH - ,0xD645 ,0x8AE9 //CJK UNIFIED IDEOGRAPH - ,0xD646 ,0x8AEA //CJK UNIFIED IDEOGRAPH - ,0xD647 ,0x8AEB //CJK UNIFIED IDEOGRAPH - ,0xD648 ,0x8AEC //CJK UNIFIED IDEOGRAPH - ,0xD649 ,0x8AED //CJK UNIFIED IDEOGRAPH - ,0xD64A ,0x8AEE //CJK UNIFIED IDEOGRAPH - ,0xD64B ,0x8AEF //CJK UNIFIED IDEOGRAPH - ,0xD64C ,0x8AF0 //CJK UNIFIED IDEOGRAPH - ,0xD64D ,0x8AF1 //CJK UNIFIED IDEOGRAPH - ,0xD64E ,0x8AF2 //CJK UNIFIED IDEOGRAPH - ,0xD64F ,0x8AF3 //CJK UNIFIED IDEOGRAPH - ,0xD650 ,0x8AF4 //CJK UNIFIED IDEOGRAPH - ,0xD651 ,0x8AF5 //CJK UNIFIED IDEOGRAPH - ,0xD652 ,0x8AF6 //CJK UNIFIED IDEOGRAPH - ,0xD653 ,0x8AF7 //CJK UNIFIED IDEOGRAPH - ,0xD654 ,0x8AF8 //CJK UNIFIED IDEOGRAPH - ,0xD655 ,0x8AF9 //CJK UNIFIED IDEOGRAPH - ,0xD656 ,0x8AFA //CJK UNIFIED IDEOGRAPH - ,0xD657 ,0x8AFB //CJK UNIFIED IDEOGRAPH - ,0xD658 ,0x8AFC //CJK UNIFIED IDEOGRAPH - ,0xD659 ,0x8AFD //CJK UNIFIED IDEOGRAPH - ,0xD65A ,0x8AFE //CJK UNIFIED IDEOGRAPH - ,0xD65B ,0x8AFF //CJK UNIFIED IDEOGRAPH - ,0xD65C ,0x8B00 //CJK UNIFIED IDEOGRAPH - ,0xD65D ,0x8B01 //CJK UNIFIED IDEOGRAPH - ,0xD65E ,0x8B02 //CJK UNIFIED IDEOGRAPH - ,0xD65F ,0x8B03 //CJK UNIFIED IDEOGRAPH - ,0xD660 ,0x8B04 //CJK UNIFIED IDEOGRAPH - ,0xD661 ,0x8B05 //CJK UNIFIED IDEOGRAPH - ,0xD662 ,0x8B06 //CJK UNIFIED IDEOGRAPH - ,0xD663 ,0x8B08 //CJK UNIFIED IDEOGRAPH - ,0xD664 ,0x8B09 //CJK UNIFIED IDEOGRAPH - ,0xD665 ,0x8B0A //CJK UNIFIED IDEOGRAPH - ,0xD666 ,0x8B0B //CJK UNIFIED IDEOGRAPH - ,0xD667 ,0x8B0C //CJK UNIFIED IDEOGRAPH - ,0xD668 ,0x8B0D //CJK UNIFIED IDEOGRAPH - ,0xD669 ,0x8B0E //CJK UNIFIED IDEOGRAPH - ,0xD66A ,0x8B0F //CJK UNIFIED IDEOGRAPH - ,0xD66B ,0x8B10 //CJK UNIFIED IDEOGRAPH - ,0xD66C ,0x8B11 //CJK UNIFIED IDEOGRAPH - ,0xD66D ,0x8B12 //CJK UNIFIED IDEOGRAPH - ,0xD66E ,0x8B13 //CJK UNIFIED IDEOGRAPH - ,0xD66F ,0x8B14 //CJK UNIFIED IDEOGRAPH - ,0xD670 ,0x8B15 //CJK UNIFIED IDEOGRAPH - ,0xD671 ,0x8B16 //CJK UNIFIED IDEOGRAPH - ,0xD672 ,0x8B17 //CJK UNIFIED IDEOGRAPH - ,0xD673 ,0x8B18 //CJK UNIFIED IDEOGRAPH - ,0xD674 ,0x8B19 //CJK UNIFIED IDEOGRAPH - ,0xD675 ,0x8B1A //CJK UNIFIED IDEOGRAPH - ,0xD676 ,0x8B1B //CJK UNIFIED IDEOGRAPH - ,0xD677 ,0x8B1C //CJK UNIFIED IDEOGRAPH - ,0xD678 ,0x8B1D //CJK UNIFIED IDEOGRAPH - ,0xD679 ,0x8B1E //CJK UNIFIED IDEOGRAPH - ,0xD67A ,0x8B1F //CJK UNIFIED IDEOGRAPH - ,0xD67B ,0x8B20 //CJK UNIFIED IDEOGRAPH - ,0xD67C ,0x8B21 //CJK UNIFIED IDEOGRAPH - ,0xD67D ,0x8B22 //CJK UNIFIED IDEOGRAPH - ,0xD67E ,0x8B23 //CJK UNIFIED IDEOGRAPH - ,0xD680 ,0x8B24 //CJK UNIFIED IDEOGRAPH - ,0xD681 ,0x8B25 //CJK UNIFIED IDEOGRAPH - ,0xD682 ,0x8B27 //CJK UNIFIED IDEOGRAPH - ,0xD683 ,0x8B28 //CJK UNIFIED IDEOGRAPH - ,0xD684 ,0x8B29 //CJK UNIFIED IDEOGRAPH - ,0xD685 ,0x8B2A //CJK UNIFIED IDEOGRAPH - ,0xD686 ,0x8B2B //CJK UNIFIED IDEOGRAPH - ,0xD687 ,0x8B2C //CJK UNIFIED IDEOGRAPH - ,0xD688 ,0x8B2D //CJK UNIFIED IDEOGRAPH - ,0xD689 ,0x8B2E //CJK UNIFIED IDEOGRAPH - ,0xD68A ,0x8B2F //CJK UNIFIED IDEOGRAPH - ,0xD68B ,0x8B30 //CJK UNIFIED IDEOGRAPH - ,0xD68C ,0x8B31 //CJK UNIFIED IDEOGRAPH - ,0xD68D ,0x8B32 //CJK UNIFIED IDEOGRAPH - ,0xD68E ,0x8B33 //CJK UNIFIED IDEOGRAPH - ,0xD68F ,0x8B34 //CJK UNIFIED IDEOGRAPH - ,0xD690 ,0x8B35 //CJK UNIFIED IDEOGRAPH - ,0xD691 ,0x8B36 //CJK UNIFIED IDEOGRAPH - ,0xD692 ,0x8B37 //CJK UNIFIED IDEOGRAPH - ,0xD693 ,0x8B38 //CJK UNIFIED IDEOGRAPH - ,0xD694 ,0x8B39 //CJK UNIFIED IDEOGRAPH - ,0xD695 ,0x8B3A //CJK UNIFIED IDEOGRAPH - ,0xD696 ,0x8B3B //CJK UNIFIED IDEOGRAPH - ,0xD697 ,0x8B3C //CJK UNIFIED IDEOGRAPH - ,0xD698 ,0x8B3D //CJK UNIFIED IDEOGRAPH - ,0xD699 ,0x8B3E //CJK UNIFIED IDEOGRAPH - ,0xD69A ,0x8B3F //CJK UNIFIED IDEOGRAPH - ,0xD69B ,0x8B40 //CJK UNIFIED IDEOGRAPH - ,0xD69C ,0x8B41 //CJK UNIFIED IDEOGRAPH - ,0xD69D ,0x8B42 //CJK UNIFIED IDEOGRAPH - ,0xD69E ,0x8B43 //CJK UNIFIED IDEOGRAPH - ,0xD69F ,0x8B44 //CJK UNIFIED IDEOGRAPH - ,0xD6A0 ,0x8B45 //CJK UNIFIED IDEOGRAPH - ,0xD6A1 ,0x5E27 //CJK UNIFIED IDEOGRAPH - ,0xD6A2 ,0x75C7 //CJK UNIFIED IDEOGRAPH - ,0xD6A3 ,0x90D1 //CJK UNIFIED IDEOGRAPH - ,0xD6A4 ,0x8BC1 //CJK UNIFIED IDEOGRAPH - ,0xD6A5 ,0x829D //CJK UNIFIED IDEOGRAPH - ,0xD6A6 ,0x679D //CJK UNIFIED IDEOGRAPH - ,0xD6A7 ,0x652F //CJK UNIFIED IDEOGRAPH - ,0xD6A8 ,0x5431 //CJK UNIFIED IDEOGRAPH - ,0xD6A9 ,0x8718 //CJK UNIFIED IDEOGRAPH - ,0xD6AA ,0x77E5 //CJK UNIFIED IDEOGRAPH - ,0xD6AB ,0x80A2 //CJK UNIFIED IDEOGRAPH - ,0xD6AC ,0x8102 //CJK UNIFIED IDEOGRAPH - ,0xD6AD ,0x6C41 //CJK UNIFIED IDEOGRAPH - ,0xD6AE ,0x4E4B //CJK UNIFIED IDEOGRAPH - ,0xD6AF ,0x7EC7 //CJK UNIFIED IDEOGRAPH - ,0xD6B0 ,0x804C //CJK UNIFIED IDEOGRAPH - ,0xD6B1 ,0x76F4 //CJK UNIFIED IDEOGRAPH - ,0xD6B2 ,0x690D //CJK UNIFIED IDEOGRAPH - ,0xD6B3 ,0x6B96 //CJK UNIFIED IDEOGRAPH - ,0xD6B4 ,0x6267 //CJK UNIFIED IDEOGRAPH - ,0xD6B5 ,0x503C //CJK UNIFIED IDEOGRAPH - ,0xD6B6 ,0x4F84 //CJK UNIFIED IDEOGRAPH - ,0xD6B7 ,0x5740 //CJK UNIFIED IDEOGRAPH - ,0xD6B8 ,0x6307 //CJK UNIFIED IDEOGRAPH - ,0xD6B9 ,0x6B62 //CJK UNIFIED IDEOGRAPH - ,0xD6BA ,0x8DBE //CJK UNIFIED IDEOGRAPH - ,0xD6BB ,0x53EA //CJK UNIFIED IDEOGRAPH - ,0xD6BC ,0x65E8 //CJK UNIFIED IDEOGRAPH - ,0xD6BD ,0x7EB8 //CJK UNIFIED IDEOGRAPH - ,0xD6BE ,0x5FD7 //CJK UNIFIED IDEOGRAPH - ,0xD6BF ,0x631A //CJK UNIFIED IDEOGRAPH - ,0xD6C0 ,0x63B7 //CJK UNIFIED IDEOGRAPH - ,0xD6C1 ,0x81F3 //CJK UNIFIED IDEOGRAPH - ,0xD6C2 ,0x81F4 //CJK UNIFIED IDEOGRAPH - ,0xD6C3 ,0x7F6E //CJK UNIFIED IDEOGRAPH - ,0xD6C4 ,0x5E1C //CJK UNIFIED IDEOGRAPH - ,0xD6C5 ,0x5CD9 //CJK UNIFIED IDEOGRAPH - ,0xD6C6 ,0x5236 //CJK UNIFIED IDEOGRAPH - ,0xD6C7 ,0x667A //CJK UNIFIED IDEOGRAPH - ,0xD6C8 ,0x79E9 //CJK UNIFIED IDEOGRAPH - ,0xD6C9 ,0x7A1A //CJK UNIFIED IDEOGRAPH - ,0xD6CA ,0x8D28 //CJK UNIFIED IDEOGRAPH - ,0xD6CB ,0x7099 //CJK UNIFIED IDEOGRAPH - ,0xD6CC ,0x75D4 //CJK UNIFIED IDEOGRAPH - ,0xD6CD ,0x6EDE //CJK UNIFIED IDEOGRAPH - ,0xD6CE ,0x6CBB //CJK UNIFIED IDEOGRAPH - ,0xD6CF ,0x7A92 //CJK UNIFIED IDEOGRAPH - ,0xD6D0 ,0x4E2D //CJK UNIFIED IDEOGRAPH - ,0xD6D1 ,0x76C5 //CJK UNIFIED IDEOGRAPH - ,0xD6D2 ,0x5FE0 //CJK UNIFIED IDEOGRAPH - ,0xD6D3 ,0x949F //CJK UNIFIED IDEOGRAPH - ,0xD6D4 ,0x8877 //CJK UNIFIED IDEOGRAPH - ,0xD6D5 ,0x7EC8 //CJK UNIFIED IDEOGRAPH - ,0xD6D6 ,0x79CD //CJK UNIFIED IDEOGRAPH - ,0xD6D7 ,0x80BF //CJK UNIFIED IDEOGRAPH - ,0xD6D8 ,0x91CD //CJK UNIFIED IDEOGRAPH - ,0xD6D9 ,0x4EF2 //CJK UNIFIED IDEOGRAPH - ,0xD6DA ,0x4F17 //CJK UNIFIED IDEOGRAPH - ,0xD6DB ,0x821F //CJK UNIFIED IDEOGRAPH - ,0xD6DC ,0x5468 //CJK UNIFIED IDEOGRAPH - ,0xD6DD ,0x5DDE //CJK UNIFIED IDEOGRAPH - ,0xD6DE ,0x6D32 //CJK UNIFIED IDEOGRAPH - ,0xD6DF ,0x8BCC //CJK UNIFIED IDEOGRAPH - ,0xD6E0 ,0x7CA5 //CJK UNIFIED IDEOGRAPH - ,0xD6E1 ,0x8F74 //CJK UNIFIED IDEOGRAPH - ,0xD6E2 ,0x8098 //CJK UNIFIED IDEOGRAPH - ,0xD6E3 ,0x5E1A //CJK UNIFIED IDEOGRAPH - ,0xD6E4 ,0x5492 //CJK UNIFIED IDEOGRAPH - ,0xD6E5 ,0x76B1 //CJK UNIFIED IDEOGRAPH - ,0xD6E6 ,0x5B99 //CJK UNIFIED IDEOGRAPH - ,0xD6E7 ,0x663C //CJK UNIFIED IDEOGRAPH - ,0xD6E8 ,0x9AA4 //CJK UNIFIED IDEOGRAPH - ,0xD6E9 ,0x73E0 //CJK UNIFIED IDEOGRAPH - ,0xD6EA ,0x682A //CJK UNIFIED IDEOGRAPH - ,0xD6EB ,0x86DB //CJK UNIFIED IDEOGRAPH - ,0xD6EC ,0x6731 //CJK UNIFIED IDEOGRAPH - ,0xD6ED ,0x732A //CJK UNIFIED IDEOGRAPH - ,0xD6EE ,0x8BF8 //CJK UNIFIED IDEOGRAPH - ,0xD6EF ,0x8BDB //CJK UNIFIED IDEOGRAPH - ,0xD6F0 ,0x9010 //CJK UNIFIED IDEOGRAPH - ,0xD6F1 ,0x7AF9 //CJK UNIFIED IDEOGRAPH - ,0xD6F2 ,0x70DB //CJK UNIFIED IDEOGRAPH - ,0xD6F3 ,0x716E //CJK UNIFIED IDEOGRAPH - ,0xD6F4 ,0x62C4 //CJK UNIFIED IDEOGRAPH - ,0xD6F5 ,0x77A9 //CJK UNIFIED IDEOGRAPH - ,0xD6F6 ,0x5631 //CJK UNIFIED IDEOGRAPH - ,0xD6F7 ,0x4E3B //CJK UNIFIED IDEOGRAPH - ,0xD6F8 ,0x8457 //CJK UNIFIED IDEOGRAPH - ,0xD6F9 ,0x67F1 //CJK UNIFIED IDEOGRAPH - ,0xD6FA ,0x52A9 //CJK UNIFIED IDEOGRAPH - ,0xD6FB ,0x86C0 //CJK UNIFIED IDEOGRAPH - ,0xD6FC ,0x8D2E //CJK UNIFIED IDEOGRAPH - ,0xD6FD ,0x94F8 //CJK UNIFIED IDEOGRAPH - ,0xD6FE ,0x7B51 //CJK UNIFIED IDEOGRAPH - ,0xD740 ,0x8B46 //CJK UNIFIED IDEOGRAPH - ,0xD741 ,0x8B47 //CJK UNIFIED IDEOGRAPH - ,0xD742 ,0x8B48 //CJK UNIFIED IDEOGRAPH - ,0xD743 ,0x8B49 //CJK UNIFIED IDEOGRAPH - ,0xD744 ,0x8B4A //CJK UNIFIED IDEOGRAPH - ,0xD745 ,0x8B4B //CJK UNIFIED IDEOGRAPH - ,0xD746 ,0x8B4C //CJK UNIFIED IDEOGRAPH - ,0xD747 ,0x8B4D //CJK UNIFIED IDEOGRAPH - ,0xD748 ,0x8B4E //CJK UNIFIED IDEOGRAPH - ,0xD749 ,0x8B4F //CJK UNIFIED IDEOGRAPH - ,0xD74A ,0x8B50 //CJK UNIFIED IDEOGRAPH - ,0xD74B ,0x8B51 //CJK UNIFIED IDEOGRAPH - ,0xD74C ,0x8B52 //CJK UNIFIED IDEOGRAPH - ,0xD74D ,0x8B53 //CJK UNIFIED IDEOGRAPH - ,0xD74E ,0x8B54 //CJK UNIFIED IDEOGRAPH - ,0xD74F ,0x8B55 //CJK UNIFIED IDEOGRAPH - ,0xD750 ,0x8B56 //CJK UNIFIED IDEOGRAPH - ,0xD751 ,0x8B57 //CJK UNIFIED IDEOGRAPH - ,0xD752 ,0x8B58 //CJK UNIFIED IDEOGRAPH - ,0xD753 ,0x8B59 //CJK UNIFIED IDEOGRAPH - ,0xD754 ,0x8B5A //CJK UNIFIED IDEOGRAPH - ,0xD755 ,0x8B5B //CJK UNIFIED IDEOGRAPH - ,0xD756 ,0x8B5C //CJK UNIFIED IDEOGRAPH - ,0xD757 ,0x8B5D //CJK UNIFIED IDEOGRAPH - ,0xD758 ,0x8B5E //CJK UNIFIED IDEOGRAPH - ,0xD759 ,0x8B5F //CJK UNIFIED IDEOGRAPH - ,0xD75A ,0x8B60 //CJK UNIFIED IDEOGRAPH - ,0xD75B ,0x8B61 //CJK UNIFIED IDEOGRAPH - ,0xD75C ,0x8B62 //CJK UNIFIED IDEOGRAPH - ,0xD75D ,0x8B63 //CJK UNIFIED IDEOGRAPH - ,0xD75E ,0x8B64 //CJK UNIFIED IDEOGRAPH - ,0xD75F ,0x8B65 //CJK UNIFIED IDEOGRAPH - ,0xD760 ,0x8B67 //CJK UNIFIED IDEOGRAPH - ,0xD761 ,0x8B68 //CJK UNIFIED IDEOGRAPH - ,0xD762 ,0x8B69 //CJK UNIFIED IDEOGRAPH - ,0xD763 ,0x8B6A //CJK UNIFIED IDEOGRAPH - ,0xD764 ,0x8B6B //CJK UNIFIED IDEOGRAPH - ,0xD765 ,0x8B6D //CJK UNIFIED IDEOGRAPH - ,0xD766 ,0x8B6E //CJK UNIFIED IDEOGRAPH - ,0xD767 ,0x8B6F //CJK UNIFIED IDEOGRAPH - ,0xD768 ,0x8B70 //CJK UNIFIED IDEOGRAPH - ,0xD769 ,0x8B71 //CJK UNIFIED IDEOGRAPH - ,0xD76A ,0x8B72 //CJK UNIFIED IDEOGRAPH - ,0xD76B ,0x8B73 //CJK UNIFIED IDEOGRAPH - ,0xD76C ,0x8B74 //CJK UNIFIED IDEOGRAPH - ,0xD76D ,0x8B75 //CJK UNIFIED IDEOGRAPH - ,0xD76E ,0x8B76 //CJK UNIFIED IDEOGRAPH - ,0xD76F ,0x8B77 //CJK UNIFIED IDEOGRAPH - ,0xD770 ,0x8B78 //CJK UNIFIED IDEOGRAPH - ,0xD771 ,0x8B79 //CJK UNIFIED IDEOGRAPH - ,0xD772 ,0x8B7A //CJK UNIFIED IDEOGRAPH - ,0xD773 ,0x8B7B //CJK UNIFIED IDEOGRAPH - ,0xD774 ,0x8B7C //CJK UNIFIED IDEOGRAPH - ,0xD775 ,0x8B7D //CJK UNIFIED IDEOGRAPH - ,0xD776 ,0x8B7E //CJK UNIFIED IDEOGRAPH - ,0xD777 ,0x8B7F //CJK UNIFIED IDEOGRAPH - ,0xD778 ,0x8B80 //CJK UNIFIED IDEOGRAPH - ,0xD779 ,0x8B81 //CJK UNIFIED IDEOGRAPH - ,0xD77A ,0x8B82 //CJK UNIFIED IDEOGRAPH - ,0xD77B ,0x8B83 //CJK UNIFIED IDEOGRAPH - ,0xD77C ,0x8B84 //CJK UNIFIED IDEOGRAPH - ,0xD77D ,0x8B85 //CJK UNIFIED IDEOGRAPH - ,0xD77E ,0x8B86 //CJK UNIFIED IDEOGRAPH - ,0xD780 ,0x8B87 //CJK UNIFIED IDEOGRAPH - ,0xD781 ,0x8B88 //CJK UNIFIED IDEOGRAPH - ,0xD782 ,0x8B89 //CJK UNIFIED IDEOGRAPH - ,0xD783 ,0x8B8A //CJK UNIFIED IDEOGRAPH - ,0xD784 ,0x8B8B //CJK UNIFIED IDEOGRAPH - ,0xD785 ,0x8B8C //CJK UNIFIED IDEOGRAPH - ,0xD786 ,0x8B8D //CJK UNIFIED IDEOGRAPH - ,0xD787 ,0x8B8E //CJK UNIFIED IDEOGRAPH - ,0xD788 ,0x8B8F //CJK UNIFIED IDEOGRAPH - ,0xD789 ,0x8B90 //CJK UNIFIED IDEOGRAPH - ,0xD78A ,0x8B91 //CJK UNIFIED IDEOGRAPH - ,0xD78B ,0x8B92 //CJK UNIFIED IDEOGRAPH - ,0xD78C ,0x8B93 //CJK UNIFIED IDEOGRAPH - ,0xD78D ,0x8B94 //CJK UNIFIED IDEOGRAPH - ,0xD78E ,0x8B95 //CJK UNIFIED IDEOGRAPH - ,0xD78F ,0x8B96 //CJK UNIFIED IDEOGRAPH - ,0xD790 ,0x8B97 //CJK UNIFIED IDEOGRAPH - ,0xD791 ,0x8B98 //CJK UNIFIED IDEOGRAPH - ,0xD792 ,0x8B99 //CJK UNIFIED IDEOGRAPH - ,0xD793 ,0x8B9A //CJK UNIFIED IDEOGRAPH - ,0xD794 ,0x8B9B //CJK UNIFIED IDEOGRAPH - ,0xD795 ,0x8B9C //CJK UNIFIED IDEOGRAPH - ,0xD796 ,0x8B9D //CJK UNIFIED IDEOGRAPH - ,0xD797 ,0x8B9E //CJK UNIFIED IDEOGRAPH - ,0xD798 ,0x8B9F //CJK UNIFIED IDEOGRAPH - ,0xD799 ,0x8BAC //CJK UNIFIED IDEOGRAPH - ,0xD79A ,0x8BB1 //CJK UNIFIED IDEOGRAPH - ,0xD79B ,0x8BBB //CJK UNIFIED IDEOGRAPH - ,0xD79C ,0x8BC7 //CJK UNIFIED IDEOGRAPH - ,0xD79D ,0x8BD0 //CJK UNIFIED IDEOGRAPH - ,0xD79E ,0x8BEA //CJK UNIFIED IDEOGRAPH - ,0xD79F ,0x8C09 //CJK UNIFIED IDEOGRAPH - ,0xD7A0 ,0x8C1E //CJK UNIFIED IDEOGRAPH - ,0xD7A1 ,0x4F4F //CJK UNIFIED IDEOGRAPH - ,0xD7A2 ,0x6CE8 //CJK UNIFIED IDEOGRAPH - ,0xD7A3 ,0x795D //CJK UNIFIED IDEOGRAPH - ,0xD7A4 ,0x9A7B //CJK UNIFIED IDEOGRAPH - ,0xD7A5 ,0x6293 //CJK UNIFIED IDEOGRAPH - ,0xD7A6 ,0x722A //CJK UNIFIED IDEOGRAPH - ,0xD7A7 ,0x62FD //CJK UNIFIED IDEOGRAPH - ,0xD7A8 ,0x4E13 //CJK UNIFIED IDEOGRAPH - ,0xD7A9 ,0x7816 //CJK UNIFIED IDEOGRAPH - ,0xD7AA ,0x8F6C //CJK UNIFIED IDEOGRAPH - ,0xD7AB ,0x64B0 //CJK UNIFIED IDEOGRAPH - ,0xD7AC ,0x8D5A //CJK UNIFIED IDEOGRAPH - ,0xD7AD ,0x7BC6 //CJK UNIFIED IDEOGRAPH - ,0xD7AE ,0x6869 //CJK UNIFIED IDEOGRAPH - ,0xD7AF ,0x5E84 //CJK UNIFIED IDEOGRAPH - ,0xD7B0 ,0x88C5 //CJK UNIFIED IDEOGRAPH - ,0xD7B1 ,0x5986 //CJK UNIFIED IDEOGRAPH - ,0xD7B2 ,0x649E //CJK UNIFIED IDEOGRAPH - ,0xD7B3 ,0x58EE //CJK UNIFIED IDEOGRAPH - ,0xD7B4 ,0x72B6 //CJK UNIFIED IDEOGRAPH - ,0xD7B5 ,0x690E //CJK UNIFIED IDEOGRAPH - ,0xD7B6 ,0x9525 //CJK UNIFIED IDEOGRAPH - ,0xD7B7 ,0x8FFD //CJK UNIFIED IDEOGRAPH - ,0xD7B8 ,0x8D58 //CJK UNIFIED IDEOGRAPH - ,0xD7B9 ,0x5760 //CJK UNIFIED IDEOGRAPH - ,0xD7BA ,0x7F00 //CJK UNIFIED IDEOGRAPH - ,0xD7BB ,0x8C06 //CJK UNIFIED IDEOGRAPH - ,0xD7BC ,0x51C6 //CJK UNIFIED IDEOGRAPH - ,0xD7BD ,0x6349 //CJK UNIFIED IDEOGRAPH - ,0xD7BE ,0x62D9 //CJK UNIFIED IDEOGRAPH - ,0xD7BF ,0x5353 //CJK UNIFIED IDEOGRAPH - ,0xD7C0 ,0x684C //CJK UNIFIED IDEOGRAPH - ,0xD7C1 ,0x7422 //CJK UNIFIED IDEOGRAPH - ,0xD7C2 ,0x8301 //CJK UNIFIED IDEOGRAPH - ,0xD7C3 ,0x914C //CJK UNIFIED IDEOGRAPH - ,0xD7C4 ,0x5544 //CJK UNIFIED IDEOGRAPH - ,0xD7C5 ,0x7740 //CJK UNIFIED IDEOGRAPH - ,0xD7C6 ,0x707C //CJK UNIFIED IDEOGRAPH - ,0xD7C7 ,0x6D4A //CJK UNIFIED IDEOGRAPH - ,0xD7C8 ,0x5179 //CJK UNIFIED IDEOGRAPH - ,0xD7C9 ,0x54A8 //CJK UNIFIED IDEOGRAPH - ,0xD7CA ,0x8D44 //CJK UNIFIED IDEOGRAPH - ,0xD7CB ,0x59FF //CJK UNIFIED IDEOGRAPH - ,0xD7CC ,0x6ECB //CJK UNIFIED IDEOGRAPH - ,0xD7CD ,0x6DC4 //CJK UNIFIED IDEOGRAPH - ,0xD7CE ,0x5B5C //CJK UNIFIED IDEOGRAPH - ,0xD7CF ,0x7D2B //CJK UNIFIED IDEOGRAPH - ,0xD7D0 ,0x4ED4 //CJK UNIFIED IDEOGRAPH - ,0xD7D1 ,0x7C7D //CJK UNIFIED IDEOGRAPH - ,0xD7D2 ,0x6ED3 //CJK UNIFIED IDEOGRAPH - ,0xD7D3 ,0x5B50 //CJK UNIFIED IDEOGRAPH - ,0xD7D4 ,0x81EA //CJK UNIFIED IDEOGRAPH - ,0xD7D5 ,0x6E0D //CJK UNIFIED IDEOGRAPH - ,0xD7D6 ,0x5B57 //CJK UNIFIED IDEOGRAPH - ,0xD7D7 ,0x9B03 //CJK UNIFIED IDEOGRAPH - ,0xD7D8 ,0x68D5 //CJK UNIFIED IDEOGRAPH - ,0xD7D9 ,0x8E2A //CJK UNIFIED IDEOGRAPH - ,0xD7DA ,0x5B97 //CJK UNIFIED IDEOGRAPH - ,0xD7DB ,0x7EFC //CJK UNIFIED IDEOGRAPH - ,0xD7DC ,0x603B //CJK UNIFIED IDEOGRAPH - ,0xD7DD ,0x7EB5 //CJK UNIFIED IDEOGRAPH - ,0xD7DE ,0x90B9 //CJK UNIFIED IDEOGRAPH - ,0xD7DF ,0x8D70 //CJK UNIFIED IDEOGRAPH - ,0xD7E0 ,0x594F //CJK UNIFIED IDEOGRAPH - ,0xD7E1 ,0x63CD //CJK UNIFIED IDEOGRAPH - ,0xD7E2 ,0x79DF //CJK UNIFIED IDEOGRAPH - ,0xD7E3 ,0x8DB3 //CJK UNIFIED IDEOGRAPH - ,0xD7E4 ,0x5352 //CJK UNIFIED IDEOGRAPH - ,0xD7E5 ,0x65CF //CJK UNIFIED IDEOGRAPH - ,0xD7E6 ,0x7956 //CJK UNIFIED IDEOGRAPH - ,0xD7E7 ,0x8BC5 //CJK UNIFIED IDEOGRAPH - ,0xD7E8 ,0x963B //CJK UNIFIED IDEOGRAPH - ,0xD7E9 ,0x7EC4 //CJK UNIFIED IDEOGRAPH - ,0xD7EA ,0x94BB //CJK UNIFIED IDEOGRAPH - ,0xD7EB ,0x7E82 //CJK UNIFIED IDEOGRAPH - ,0xD7EC ,0x5634 //CJK UNIFIED IDEOGRAPH - ,0xD7ED ,0x9189 //CJK UNIFIED IDEOGRAPH - ,0xD7EE ,0x6700 //CJK UNIFIED IDEOGRAPH - ,0xD7EF ,0x7F6A //CJK UNIFIED IDEOGRAPH - ,0xD7F0 ,0x5C0A //CJK UNIFIED IDEOGRAPH - ,0xD7F1 ,0x9075 //CJK UNIFIED IDEOGRAPH - ,0xD7F2 ,0x6628 //CJK UNIFIED IDEOGRAPH - ,0xD7F3 ,0x5DE6 //CJK UNIFIED IDEOGRAPH - ,0xD7F4 ,0x4F50 //CJK UNIFIED IDEOGRAPH - ,0xD7F5 ,0x67DE //CJK UNIFIED IDEOGRAPH - ,0xD7F6 ,0x505A //CJK UNIFIED IDEOGRAPH - ,0xD7F7 ,0x4F5C //CJK UNIFIED IDEOGRAPH - ,0xD7F8 ,0x5750 //CJK UNIFIED IDEOGRAPH - ,0xD7F9 ,0x5EA7 //CJK UNIFIED IDEOGRAPH - ,0xD840 ,0x8C38 //CJK UNIFIED IDEOGRAPH - ,0xD841 ,0x8C39 //CJK UNIFIED IDEOGRAPH - ,0xD842 ,0x8C3A //CJK UNIFIED IDEOGRAPH - ,0xD843 ,0x8C3B //CJK UNIFIED IDEOGRAPH - ,0xD844 ,0x8C3C //CJK UNIFIED IDEOGRAPH - ,0xD845 ,0x8C3D //CJK UNIFIED IDEOGRAPH - ,0xD846 ,0x8C3E //CJK UNIFIED IDEOGRAPH - ,0xD847 ,0x8C3F //CJK UNIFIED IDEOGRAPH - ,0xD848 ,0x8C40 //CJK UNIFIED IDEOGRAPH - ,0xD849 ,0x8C42 //CJK UNIFIED IDEOGRAPH - ,0xD84A ,0x8C43 //CJK UNIFIED IDEOGRAPH - ,0xD84B ,0x8C44 //CJK UNIFIED IDEOGRAPH - ,0xD84C ,0x8C45 //CJK UNIFIED IDEOGRAPH - ,0xD84D ,0x8C48 //CJK UNIFIED IDEOGRAPH - ,0xD84E ,0x8C4A //CJK UNIFIED IDEOGRAPH - ,0xD84F ,0x8C4B //CJK UNIFIED IDEOGRAPH - ,0xD850 ,0x8C4D //CJK UNIFIED IDEOGRAPH - ,0xD851 ,0x8C4E //CJK UNIFIED IDEOGRAPH - ,0xD852 ,0x8C4F //CJK UNIFIED IDEOGRAPH - ,0xD853 ,0x8C50 //CJK UNIFIED IDEOGRAPH - ,0xD854 ,0x8C51 //CJK UNIFIED IDEOGRAPH - ,0xD855 ,0x8C52 //CJK UNIFIED IDEOGRAPH - ,0xD856 ,0x8C53 //CJK UNIFIED IDEOGRAPH - ,0xD857 ,0x8C54 //CJK UNIFIED IDEOGRAPH - ,0xD858 ,0x8C56 //CJK UNIFIED IDEOGRAPH - ,0xD859 ,0x8C57 //CJK UNIFIED IDEOGRAPH - ,0xD85A ,0x8C58 //CJK UNIFIED IDEOGRAPH - ,0xD85B ,0x8C59 //CJK UNIFIED IDEOGRAPH - ,0xD85C ,0x8C5B //CJK UNIFIED IDEOGRAPH - ,0xD85D ,0x8C5C //CJK UNIFIED IDEOGRAPH - ,0xD85E ,0x8C5D //CJK UNIFIED IDEOGRAPH - ,0xD85F ,0x8C5E //CJK UNIFIED IDEOGRAPH - ,0xD860 ,0x8C5F //CJK UNIFIED IDEOGRAPH - ,0xD861 ,0x8C60 //CJK UNIFIED IDEOGRAPH - ,0xD862 ,0x8C63 //CJK UNIFIED IDEOGRAPH - ,0xD863 ,0x8C64 //CJK UNIFIED IDEOGRAPH - ,0xD864 ,0x8C65 //CJK UNIFIED IDEOGRAPH - ,0xD865 ,0x8C66 //CJK UNIFIED IDEOGRAPH - ,0xD866 ,0x8C67 //CJK UNIFIED IDEOGRAPH - ,0xD867 ,0x8C68 //CJK UNIFIED IDEOGRAPH - ,0xD868 ,0x8C69 //CJK UNIFIED IDEOGRAPH - ,0xD869 ,0x8C6C //CJK UNIFIED IDEOGRAPH - ,0xD86A ,0x8C6D //CJK UNIFIED IDEOGRAPH - ,0xD86B ,0x8C6E //CJK UNIFIED IDEOGRAPH - ,0xD86C ,0x8C6F //CJK UNIFIED IDEOGRAPH - ,0xD86D ,0x8C70 //CJK UNIFIED IDEOGRAPH - ,0xD86E ,0x8C71 //CJK UNIFIED IDEOGRAPH - ,0xD86F ,0x8C72 //CJK UNIFIED IDEOGRAPH - ,0xD870 ,0x8C74 //CJK UNIFIED IDEOGRAPH - ,0xD871 ,0x8C75 //CJK UNIFIED IDEOGRAPH - ,0xD872 ,0x8C76 //CJK UNIFIED IDEOGRAPH - ,0xD873 ,0x8C77 //CJK UNIFIED IDEOGRAPH - ,0xD874 ,0x8C7B //CJK UNIFIED IDEOGRAPH - ,0xD875 ,0x8C7C //CJK UNIFIED IDEOGRAPH - ,0xD876 ,0x8C7D //CJK UNIFIED IDEOGRAPH - ,0xD877 ,0x8C7E //CJK UNIFIED IDEOGRAPH - ,0xD878 ,0x8C7F //CJK UNIFIED IDEOGRAPH - ,0xD879 ,0x8C80 //CJK UNIFIED IDEOGRAPH - ,0xD87A ,0x8C81 //CJK UNIFIED IDEOGRAPH - ,0xD87B ,0x8C83 //CJK UNIFIED IDEOGRAPH - ,0xD87C ,0x8C84 //CJK UNIFIED IDEOGRAPH - ,0xD87D ,0x8C86 //CJK UNIFIED IDEOGRAPH - ,0xD87E ,0x8C87 //CJK UNIFIED IDEOGRAPH - ,0xD880 ,0x8C88 //CJK UNIFIED IDEOGRAPH - ,0xD881 ,0x8C8B //CJK UNIFIED IDEOGRAPH - ,0xD882 ,0x8C8D //CJK UNIFIED IDEOGRAPH - ,0xD883 ,0x8C8E //CJK UNIFIED IDEOGRAPH - ,0xD884 ,0x8C8F //CJK UNIFIED IDEOGRAPH - ,0xD885 ,0x8C90 //CJK UNIFIED IDEOGRAPH - ,0xD886 ,0x8C91 //CJK UNIFIED IDEOGRAPH - ,0xD887 ,0x8C92 //CJK UNIFIED IDEOGRAPH - ,0xD888 ,0x8C93 //CJK UNIFIED IDEOGRAPH - ,0xD889 ,0x8C95 //CJK UNIFIED IDEOGRAPH - ,0xD88A ,0x8C96 //CJK UNIFIED IDEOGRAPH - ,0xD88B ,0x8C97 //CJK UNIFIED IDEOGRAPH - ,0xD88C ,0x8C99 //CJK UNIFIED IDEOGRAPH - ,0xD88D ,0x8C9A //CJK UNIFIED IDEOGRAPH - ,0xD88E ,0x8C9B //CJK UNIFIED IDEOGRAPH - ,0xD88F ,0x8C9C //CJK UNIFIED IDEOGRAPH - ,0xD890 ,0x8C9D //CJK UNIFIED IDEOGRAPH - ,0xD891 ,0x8C9E //CJK UNIFIED IDEOGRAPH - ,0xD892 ,0x8C9F //CJK UNIFIED IDEOGRAPH - ,0xD893 ,0x8CA0 //CJK UNIFIED IDEOGRAPH - ,0xD894 ,0x8CA1 //CJK UNIFIED IDEOGRAPH - ,0xD895 ,0x8CA2 //CJK UNIFIED IDEOGRAPH - ,0xD896 ,0x8CA3 //CJK UNIFIED IDEOGRAPH - ,0xD897 ,0x8CA4 //CJK UNIFIED IDEOGRAPH - ,0xD898 ,0x8CA5 //CJK UNIFIED IDEOGRAPH - ,0xD899 ,0x8CA6 //CJK UNIFIED IDEOGRAPH - ,0xD89A ,0x8CA7 //CJK UNIFIED IDEOGRAPH - ,0xD89B ,0x8CA8 //CJK UNIFIED IDEOGRAPH - ,0xD89C ,0x8CA9 //CJK UNIFIED IDEOGRAPH - ,0xD89D ,0x8CAA //CJK UNIFIED IDEOGRAPH - ,0xD89E ,0x8CAB //CJK UNIFIED IDEOGRAPH - ,0xD89F ,0x8CAC //CJK UNIFIED IDEOGRAPH - ,0xD8A0 ,0x8CAD //CJK UNIFIED IDEOGRAPH - ,0xD8A1 ,0x4E8D //CJK UNIFIED IDEOGRAPH - ,0xD8A2 ,0x4E0C //CJK UNIFIED IDEOGRAPH - ,0xD8A3 ,0x5140 //CJK UNIFIED IDEOGRAPH - ,0xD8A4 ,0x4E10 //CJK UNIFIED IDEOGRAPH - ,0xD8A5 ,0x5EFF //CJK UNIFIED IDEOGRAPH - ,0xD8A6 ,0x5345 //CJK UNIFIED IDEOGRAPH - ,0xD8A7 ,0x4E15 //CJK UNIFIED IDEOGRAPH - ,0xD8A8 ,0x4E98 //CJK UNIFIED IDEOGRAPH - ,0xD8A9 ,0x4E1E //CJK UNIFIED IDEOGRAPH - ,0xD8AA ,0x9B32 //CJK UNIFIED IDEOGRAPH - ,0xD8AB ,0x5B6C //CJK UNIFIED IDEOGRAPH - ,0xD8AC ,0x5669 //CJK UNIFIED IDEOGRAPH - ,0xD8AD ,0x4E28 //CJK UNIFIED IDEOGRAPH - ,0xD8AE ,0x79BA //CJK UNIFIED IDEOGRAPH - ,0xD8AF ,0x4E3F //CJK UNIFIED IDEOGRAPH - ,0xD8B0 ,0x5315 //CJK UNIFIED IDEOGRAPH - ,0xD8B1 ,0x4E47 //CJK UNIFIED IDEOGRAPH - ,0xD8B2 ,0x592D //CJK UNIFIED IDEOGRAPH - ,0xD8B3 ,0x723B //CJK UNIFIED IDEOGRAPH - ,0xD8B4 ,0x536E //CJK UNIFIED IDEOGRAPH - ,0xD8B5 ,0x6C10 //CJK UNIFIED IDEOGRAPH - ,0xD8B6 ,0x56DF //CJK UNIFIED IDEOGRAPH - ,0xD8B7 ,0x80E4 //CJK UNIFIED IDEOGRAPH - ,0xD8B8 ,0x9997 //CJK UNIFIED IDEOGRAPH - ,0xD8B9 ,0x6BD3 //CJK UNIFIED IDEOGRAPH - ,0xD8BA ,0x777E //CJK UNIFIED IDEOGRAPH - ,0xD8BB ,0x9F17 //CJK UNIFIED IDEOGRAPH - ,0xD8BC ,0x4E36 //CJK UNIFIED IDEOGRAPH - ,0xD8BD ,0x4E9F //CJK UNIFIED IDEOGRAPH - ,0xD8BE ,0x9F10 //CJK UNIFIED IDEOGRAPH - ,0xD8BF ,0x4E5C //CJK UNIFIED IDEOGRAPH - ,0xD8C0 ,0x4E69 //CJK UNIFIED IDEOGRAPH - ,0xD8C1 ,0x4E93 //CJK UNIFIED IDEOGRAPH - ,0xD8C2 ,0x8288 //CJK UNIFIED IDEOGRAPH - ,0xD8C3 ,0x5B5B //CJK UNIFIED IDEOGRAPH - ,0xD8C4 ,0x556C //CJK UNIFIED IDEOGRAPH - ,0xD8C5 ,0x560F //CJK UNIFIED IDEOGRAPH - ,0xD8C6 ,0x4EC4 //CJK UNIFIED IDEOGRAPH - ,0xD8C7 ,0x538D //CJK UNIFIED IDEOGRAPH - ,0xD8C8 ,0x539D //CJK UNIFIED IDEOGRAPH - ,0xD8C9 ,0x53A3 //CJK UNIFIED IDEOGRAPH - ,0xD8CA ,0x53A5 //CJK UNIFIED IDEOGRAPH - ,0xD8CB ,0x53AE //CJK UNIFIED IDEOGRAPH - ,0xD8CC ,0x9765 //CJK UNIFIED IDEOGRAPH - ,0xD8CD ,0x8D5D //CJK UNIFIED IDEOGRAPH - ,0xD8CE ,0x531A //CJK UNIFIED IDEOGRAPH - ,0xD8CF ,0x53F5 //CJK UNIFIED IDEOGRAPH - ,0xD8D0 ,0x5326 //CJK UNIFIED IDEOGRAPH - ,0xD8D1 ,0x532E //CJK UNIFIED IDEOGRAPH - ,0xD8D2 ,0x533E //CJK UNIFIED IDEOGRAPH - ,0xD8D3 ,0x8D5C //CJK UNIFIED IDEOGRAPH - ,0xD8D4 ,0x5366 //CJK UNIFIED IDEOGRAPH - ,0xD8D5 ,0x5363 //CJK UNIFIED IDEOGRAPH - ,0xD8D6 ,0x5202 //CJK UNIFIED IDEOGRAPH - ,0xD8D7 ,0x5208 //CJK UNIFIED IDEOGRAPH - ,0xD8D8 ,0x520E //CJK UNIFIED IDEOGRAPH - ,0xD8D9 ,0x522D //CJK UNIFIED IDEOGRAPH - ,0xD8DA ,0x5233 //CJK UNIFIED IDEOGRAPH - ,0xD8DB ,0x523F //CJK UNIFIED IDEOGRAPH - ,0xD8DC ,0x5240 //CJK UNIFIED IDEOGRAPH - ,0xD8DD ,0x524C //CJK UNIFIED IDEOGRAPH - ,0xD8DE ,0x525E //CJK UNIFIED IDEOGRAPH - ,0xD8DF ,0x5261 //CJK UNIFIED IDEOGRAPH - ,0xD8E0 ,0x525C //CJK UNIFIED IDEOGRAPH - ,0xD8E1 ,0x84AF //CJK UNIFIED IDEOGRAPH - ,0xD8E2 ,0x527D //CJK UNIFIED IDEOGRAPH - ,0xD8E3 ,0x5282 //CJK UNIFIED IDEOGRAPH - ,0xD8E4 ,0x5281 //CJK UNIFIED IDEOGRAPH - ,0xD8E5 ,0x5290 //CJK UNIFIED IDEOGRAPH - ,0xD8E6 ,0x5293 //CJK UNIFIED IDEOGRAPH - ,0xD8E7 ,0x5182 //CJK UNIFIED IDEOGRAPH - ,0xD8E8 ,0x7F54 //CJK UNIFIED IDEOGRAPH - ,0xD8E9 ,0x4EBB //CJK UNIFIED IDEOGRAPH - ,0xD8EA ,0x4EC3 //CJK UNIFIED IDEOGRAPH - ,0xD8EB ,0x4EC9 //CJK UNIFIED IDEOGRAPH - ,0xD8EC ,0x4EC2 //CJK UNIFIED IDEOGRAPH - ,0xD8ED ,0x4EE8 //CJK UNIFIED IDEOGRAPH - ,0xD8EE ,0x4EE1 //CJK UNIFIED IDEOGRAPH - ,0xD8EF ,0x4EEB //CJK UNIFIED IDEOGRAPH - ,0xD8F0 ,0x4EDE //CJK UNIFIED IDEOGRAPH - ,0xD8F1 ,0x4F1B //CJK UNIFIED IDEOGRAPH - ,0xD8F2 ,0x4EF3 //CJK UNIFIED IDEOGRAPH - ,0xD8F3 ,0x4F22 //CJK UNIFIED IDEOGRAPH - ,0xD8F4 ,0x4F64 //CJK UNIFIED IDEOGRAPH - ,0xD8F5 ,0x4EF5 //CJK UNIFIED IDEOGRAPH - ,0xD8F6 ,0x4F25 //CJK UNIFIED IDEOGRAPH - ,0xD8F7 ,0x4F27 //CJK UNIFIED IDEOGRAPH - ,0xD8F8 ,0x4F09 //CJK UNIFIED IDEOGRAPH - ,0xD8F9 ,0x4F2B //CJK UNIFIED IDEOGRAPH - ,0xD8FA ,0x4F5E //CJK UNIFIED IDEOGRAPH - ,0xD8FB ,0x4F67 //CJK UNIFIED IDEOGRAPH - ,0xD8FC ,0x6538 //CJK UNIFIED IDEOGRAPH - ,0xD8FD ,0x4F5A //CJK UNIFIED IDEOGRAPH - ,0xD8FE ,0x4F5D //CJK UNIFIED IDEOGRAPH - ,0xD940 ,0x8CAE //CJK UNIFIED IDEOGRAPH - ,0xD941 ,0x8CAF //CJK UNIFIED IDEOGRAPH - ,0xD942 ,0x8CB0 //CJK UNIFIED IDEOGRAPH - ,0xD943 ,0x8CB1 //CJK UNIFIED IDEOGRAPH - ,0xD944 ,0x8CB2 //CJK UNIFIED IDEOGRAPH - ,0xD945 ,0x8CB3 //CJK UNIFIED IDEOGRAPH - ,0xD946 ,0x8CB4 //CJK UNIFIED IDEOGRAPH - ,0xD947 ,0x8CB5 //CJK UNIFIED IDEOGRAPH - ,0xD948 ,0x8CB6 //CJK UNIFIED IDEOGRAPH - ,0xD949 ,0x8CB7 //CJK UNIFIED IDEOGRAPH - ,0xD94A ,0x8CB8 //CJK UNIFIED IDEOGRAPH - ,0xD94B ,0x8CB9 //CJK UNIFIED IDEOGRAPH - ,0xD94C ,0x8CBA //CJK UNIFIED IDEOGRAPH - ,0xD94D ,0x8CBB //CJK UNIFIED IDEOGRAPH - ,0xD94E ,0x8CBC //CJK UNIFIED IDEOGRAPH - ,0xD94F ,0x8CBD //CJK UNIFIED IDEOGRAPH - ,0xD950 ,0x8CBE //CJK UNIFIED IDEOGRAPH - ,0xD951 ,0x8CBF //CJK UNIFIED IDEOGRAPH - ,0xD952 ,0x8CC0 //CJK UNIFIED IDEOGRAPH - ,0xD953 ,0x8CC1 //CJK UNIFIED IDEOGRAPH - ,0xD954 ,0x8CC2 //CJK UNIFIED IDEOGRAPH - ,0xD955 ,0x8CC3 //CJK UNIFIED IDEOGRAPH - ,0xD956 ,0x8CC4 //CJK UNIFIED IDEOGRAPH - ,0xD957 ,0x8CC5 //CJK UNIFIED IDEOGRAPH - ,0xD958 ,0x8CC6 //CJK UNIFIED IDEOGRAPH - ,0xD959 ,0x8CC7 //CJK UNIFIED IDEOGRAPH - ,0xD95A ,0x8CC8 //CJK UNIFIED IDEOGRAPH - ,0xD95B ,0x8CC9 //CJK UNIFIED IDEOGRAPH - ,0xD95C ,0x8CCA //CJK UNIFIED IDEOGRAPH - ,0xD95D ,0x8CCB //CJK UNIFIED IDEOGRAPH - ,0xD95E ,0x8CCC //CJK UNIFIED IDEOGRAPH - ,0xD95F ,0x8CCD //CJK UNIFIED IDEOGRAPH - ,0xD960 ,0x8CCE //CJK UNIFIED IDEOGRAPH - ,0xD961 ,0x8CCF //CJK UNIFIED IDEOGRAPH - ,0xD962 ,0x8CD0 //CJK UNIFIED IDEOGRAPH - ,0xD963 ,0x8CD1 //CJK UNIFIED IDEOGRAPH - ,0xD964 ,0x8CD2 //CJK UNIFIED IDEOGRAPH - ,0xD965 ,0x8CD3 //CJK UNIFIED IDEOGRAPH - ,0xD966 ,0x8CD4 //CJK UNIFIED IDEOGRAPH - ,0xD967 ,0x8CD5 //CJK UNIFIED IDEOGRAPH - ,0xD968 ,0x8CD6 //CJK UNIFIED IDEOGRAPH - ,0xD969 ,0x8CD7 //CJK UNIFIED IDEOGRAPH - ,0xD96A ,0x8CD8 //CJK UNIFIED IDEOGRAPH - ,0xD96B ,0x8CD9 //CJK UNIFIED IDEOGRAPH - ,0xD96C ,0x8CDA //CJK UNIFIED IDEOGRAPH - ,0xD96D ,0x8CDB //CJK UNIFIED IDEOGRAPH - ,0xD96E ,0x8CDC //CJK UNIFIED IDEOGRAPH - ,0xD96F ,0x8CDD //CJK UNIFIED IDEOGRAPH - ,0xD970 ,0x8CDE //CJK UNIFIED IDEOGRAPH - ,0xD971 ,0x8CDF //CJK UNIFIED IDEOGRAPH - ,0xD972 ,0x8CE0 //CJK UNIFIED IDEOGRAPH - ,0xD973 ,0x8CE1 //CJK UNIFIED IDEOGRAPH - ,0xD974 ,0x8CE2 //CJK UNIFIED IDEOGRAPH - ,0xD975 ,0x8CE3 //CJK UNIFIED IDEOGRAPH - ,0xD976 ,0x8CE4 //CJK UNIFIED IDEOGRAPH - ,0xD977 ,0x8CE5 //CJK UNIFIED IDEOGRAPH - ,0xD978 ,0x8CE6 //CJK UNIFIED IDEOGRAPH - ,0xD979 ,0x8CE7 //CJK UNIFIED IDEOGRAPH - ,0xD97A ,0x8CE8 //CJK UNIFIED IDEOGRAPH - ,0xD97B ,0x8CE9 //CJK UNIFIED IDEOGRAPH - ,0xD97C ,0x8CEA //CJK UNIFIED IDEOGRAPH - ,0xD97D ,0x8CEB //CJK UNIFIED IDEOGRAPH - ,0xD97E ,0x8CEC //CJK UNIFIED IDEOGRAPH - ,0xD980 ,0x8CED //CJK UNIFIED IDEOGRAPH - ,0xD981 ,0x8CEE //CJK UNIFIED IDEOGRAPH - ,0xD982 ,0x8CEF //CJK UNIFIED IDEOGRAPH - ,0xD983 ,0x8CF0 //CJK UNIFIED IDEOGRAPH - ,0xD984 ,0x8CF1 //CJK UNIFIED IDEOGRAPH - ,0xD985 ,0x8CF2 //CJK UNIFIED IDEOGRAPH - ,0xD986 ,0x8CF3 //CJK UNIFIED IDEOGRAPH - ,0xD987 ,0x8CF4 //CJK UNIFIED IDEOGRAPH - ,0xD988 ,0x8CF5 //CJK UNIFIED IDEOGRAPH - ,0xD989 ,0x8CF6 //CJK UNIFIED IDEOGRAPH - ,0xD98A ,0x8CF7 //CJK UNIFIED IDEOGRAPH - ,0xD98B ,0x8CF8 //CJK UNIFIED IDEOGRAPH - ,0xD98C ,0x8CF9 //CJK UNIFIED IDEOGRAPH - ,0xD98D ,0x8CFA //CJK UNIFIED IDEOGRAPH - ,0xD98E ,0x8CFB //CJK UNIFIED IDEOGRAPH - ,0xD98F ,0x8CFC //CJK UNIFIED IDEOGRAPH - ,0xD990 ,0x8CFD //CJK UNIFIED IDEOGRAPH - ,0xD991 ,0x8CFE //CJK UNIFIED IDEOGRAPH - ,0xD992 ,0x8CFF //CJK UNIFIED IDEOGRAPH - ,0xD993 ,0x8D00 //CJK UNIFIED IDEOGRAPH - ,0xD994 ,0x8D01 //CJK UNIFIED IDEOGRAPH - ,0xD995 ,0x8D02 //CJK UNIFIED IDEOGRAPH - ,0xD996 ,0x8D03 //CJK UNIFIED IDEOGRAPH - ,0xD997 ,0x8D04 //CJK UNIFIED IDEOGRAPH - ,0xD998 ,0x8D05 //CJK UNIFIED IDEOGRAPH - ,0xD999 ,0x8D06 //CJK UNIFIED IDEOGRAPH - ,0xD99A ,0x8D07 //CJK UNIFIED IDEOGRAPH - ,0xD99B ,0x8D08 //CJK UNIFIED IDEOGRAPH - ,0xD99C ,0x8D09 //CJK UNIFIED IDEOGRAPH - ,0xD99D ,0x8D0A //CJK UNIFIED IDEOGRAPH - ,0xD99E ,0x8D0B //CJK UNIFIED IDEOGRAPH - ,0xD99F ,0x8D0C //CJK UNIFIED IDEOGRAPH - ,0xD9A0 ,0x8D0D //CJK UNIFIED IDEOGRAPH - ,0xD9A1 ,0x4F5F //CJK UNIFIED IDEOGRAPH - ,0xD9A2 ,0x4F57 //CJK UNIFIED IDEOGRAPH - ,0xD9A3 ,0x4F32 //CJK UNIFIED IDEOGRAPH - ,0xD9A4 ,0x4F3D //CJK UNIFIED IDEOGRAPH - ,0xD9A5 ,0x4F76 //CJK UNIFIED IDEOGRAPH - ,0xD9A6 ,0x4F74 //CJK UNIFIED IDEOGRAPH - ,0xD9A7 ,0x4F91 //CJK UNIFIED IDEOGRAPH - ,0xD9A8 ,0x4F89 //CJK UNIFIED IDEOGRAPH - ,0xD9A9 ,0x4F83 //CJK UNIFIED IDEOGRAPH - ,0xD9AA ,0x4F8F //CJK UNIFIED IDEOGRAPH - ,0xD9AB ,0x4F7E //CJK UNIFIED IDEOGRAPH - ,0xD9AC ,0x4F7B //CJK UNIFIED IDEOGRAPH - ,0xD9AD ,0x4FAA //CJK UNIFIED IDEOGRAPH - ,0xD9AE ,0x4F7C //CJK UNIFIED IDEOGRAPH - ,0xD9AF ,0x4FAC //CJK UNIFIED IDEOGRAPH - ,0xD9B0 ,0x4F94 //CJK UNIFIED IDEOGRAPH - ,0xD9B1 ,0x4FE6 //CJK UNIFIED IDEOGRAPH - ,0xD9B2 ,0x4FE8 //CJK UNIFIED IDEOGRAPH - ,0xD9B3 ,0x4FEA //CJK UNIFIED IDEOGRAPH - ,0xD9B4 ,0x4FC5 //CJK UNIFIED IDEOGRAPH - ,0xD9B5 ,0x4FDA //CJK UNIFIED IDEOGRAPH - ,0xD9B6 ,0x4FE3 //CJK UNIFIED IDEOGRAPH - ,0xD9B7 ,0x4FDC //CJK UNIFIED IDEOGRAPH - ,0xD9B8 ,0x4FD1 //CJK UNIFIED IDEOGRAPH - ,0xD9B9 ,0x4FDF //CJK UNIFIED IDEOGRAPH - ,0xD9BA ,0x4FF8 //CJK UNIFIED IDEOGRAPH - ,0xD9BB ,0x5029 //CJK UNIFIED IDEOGRAPH - ,0xD9BC ,0x504C //CJK UNIFIED IDEOGRAPH - ,0xD9BD ,0x4FF3 //CJK UNIFIED IDEOGRAPH - ,0xD9BE ,0x502C //CJK UNIFIED IDEOGRAPH - ,0xD9BF ,0x500F //CJK UNIFIED IDEOGRAPH - ,0xD9C0 ,0x502E //CJK UNIFIED IDEOGRAPH - ,0xD9C1 ,0x502D //CJK UNIFIED IDEOGRAPH - ,0xD9C2 ,0x4FFE //CJK UNIFIED IDEOGRAPH - ,0xD9C3 ,0x501C //CJK UNIFIED IDEOGRAPH - ,0xD9C4 ,0x500C //CJK UNIFIED IDEOGRAPH - ,0xD9C5 ,0x5025 //CJK UNIFIED IDEOGRAPH - ,0xD9C6 ,0x5028 //CJK UNIFIED IDEOGRAPH - ,0xD9C7 ,0x507E //CJK UNIFIED IDEOGRAPH - ,0xD9C8 ,0x5043 //CJK UNIFIED IDEOGRAPH - ,0xD9C9 ,0x5055 //CJK UNIFIED IDEOGRAPH - ,0xD9CA ,0x5048 //CJK UNIFIED IDEOGRAPH - ,0xD9CB ,0x504E //CJK UNIFIED IDEOGRAPH - ,0xD9CC ,0x506C //CJK UNIFIED IDEOGRAPH - ,0xD9CD ,0x507B //CJK UNIFIED IDEOGRAPH - ,0xD9CE ,0x50A5 //CJK UNIFIED IDEOGRAPH - ,0xD9CF ,0x50A7 //CJK UNIFIED IDEOGRAPH - ,0xD9D0 ,0x50A9 //CJK UNIFIED IDEOGRAPH - ,0xD9D1 ,0x50BA //CJK UNIFIED IDEOGRAPH - ,0xD9D2 ,0x50D6 //CJK UNIFIED IDEOGRAPH - ,0xD9D3 ,0x5106 //CJK UNIFIED IDEOGRAPH - ,0xD9D4 ,0x50ED //CJK UNIFIED IDEOGRAPH - ,0xD9D5 ,0x50EC //CJK UNIFIED IDEOGRAPH - ,0xD9D6 ,0x50E6 //CJK UNIFIED IDEOGRAPH - ,0xD9D7 ,0x50EE //CJK UNIFIED IDEOGRAPH - ,0xD9D8 ,0x5107 //CJK UNIFIED IDEOGRAPH - ,0xD9D9 ,0x510B //CJK UNIFIED IDEOGRAPH - ,0xD9DA ,0x4EDD //CJK UNIFIED IDEOGRAPH - ,0xD9DB ,0x6C3D //CJK UNIFIED IDEOGRAPH - ,0xD9DC ,0x4F58 //CJK UNIFIED IDEOGRAPH - ,0xD9DD ,0x4F65 //CJK UNIFIED IDEOGRAPH - ,0xD9DE ,0x4FCE //CJK UNIFIED IDEOGRAPH - ,0xD9DF ,0x9FA0 //CJK UNIFIED IDEOGRAPH - ,0xD9E0 ,0x6C46 //CJK UNIFIED IDEOGRAPH - ,0xD9E1 ,0x7C74 //CJK UNIFIED IDEOGRAPH - ,0xD9E2 ,0x516E //CJK UNIFIED IDEOGRAPH - ,0xD9E3 ,0x5DFD //CJK UNIFIED IDEOGRAPH - ,0xD9E4 ,0x9EC9 //CJK UNIFIED IDEOGRAPH - ,0xD9E5 ,0x9998 //CJK UNIFIED IDEOGRAPH - ,0xD9E6 ,0x5181 //CJK UNIFIED IDEOGRAPH - ,0xD9E7 ,0x5914 //CJK UNIFIED IDEOGRAPH - ,0xD9E8 ,0x52F9 //CJK UNIFIED IDEOGRAPH - ,0xD9E9 ,0x530D //CJK UNIFIED IDEOGRAPH - ,0xD9EA ,0x8A07 //CJK UNIFIED IDEOGRAPH - ,0xD9EB ,0x5310 //CJK UNIFIED IDEOGRAPH - ,0xD9EC ,0x51EB //CJK UNIFIED IDEOGRAPH - ,0xD9ED ,0x5919 //CJK UNIFIED IDEOGRAPH - ,0xD9EE ,0x5155 //CJK UNIFIED IDEOGRAPH - ,0xD9EF ,0x4EA0 //CJK UNIFIED IDEOGRAPH - ,0xD9F0 ,0x5156 //CJK UNIFIED IDEOGRAPH - ,0xD9F1 ,0x4EB3 //CJK UNIFIED IDEOGRAPH - ,0xD9F2 ,0x886E //CJK UNIFIED IDEOGRAPH - ,0xD9F3 ,0x88A4 //CJK UNIFIED IDEOGRAPH - ,0xD9F4 ,0x4EB5 //CJK UNIFIED IDEOGRAPH - ,0xD9F5 ,0x8114 //CJK UNIFIED IDEOGRAPH - ,0xD9F6 ,0x88D2 //CJK UNIFIED IDEOGRAPH - ,0xD9F7 ,0x7980 //CJK UNIFIED IDEOGRAPH - ,0xD9F8 ,0x5B34 //CJK UNIFIED IDEOGRAPH - ,0xD9F9 ,0x8803 //CJK UNIFIED IDEOGRAPH - ,0xD9FA ,0x7FB8 //CJK UNIFIED IDEOGRAPH - ,0xD9FB ,0x51AB //CJK UNIFIED IDEOGRAPH - ,0xD9FC ,0x51B1 //CJK UNIFIED IDEOGRAPH - ,0xD9FD ,0x51BD //CJK UNIFIED IDEOGRAPH - ,0xD9FE ,0x51BC //CJK UNIFIED IDEOGRAPH - ,0xDA40 ,0x8D0E //CJK UNIFIED IDEOGRAPH - ,0xDA41 ,0x8D0F //CJK UNIFIED IDEOGRAPH - ,0xDA42 ,0x8D10 //CJK UNIFIED IDEOGRAPH - ,0xDA43 ,0x8D11 //CJK UNIFIED IDEOGRAPH - ,0xDA44 ,0x8D12 //CJK UNIFIED IDEOGRAPH - ,0xDA45 ,0x8D13 //CJK UNIFIED IDEOGRAPH - ,0xDA46 ,0x8D14 //CJK UNIFIED IDEOGRAPH - ,0xDA47 ,0x8D15 //CJK UNIFIED IDEOGRAPH - ,0xDA48 ,0x8D16 //CJK UNIFIED IDEOGRAPH - ,0xDA49 ,0x8D17 //CJK UNIFIED IDEOGRAPH - ,0xDA4A ,0x8D18 //CJK UNIFIED IDEOGRAPH - ,0xDA4B ,0x8D19 //CJK UNIFIED IDEOGRAPH - ,0xDA4C ,0x8D1A //CJK UNIFIED IDEOGRAPH - ,0xDA4D ,0x8D1B //CJK UNIFIED IDEOGRAPH - ,0xDA4E ,0x8D1C //CJK UNIFIED IDEOGRAPH - ,0xDA4F ,0x8D20 //CJK UNIFIED IDEOGRAPH - ,0xDA50 ,0x8D51 //CJK UNIFIED IDEOGRAPH - ,0xDA51 ,0x8D52 //CJK UNIFIED IDEOGRAPH - ,0xDA52 ,0x8D57 //CJK UNIFIED IDEOGRAPH - ,0xDA53 ,0x8D5F //CJK UNIFIED IDEOGRAPH - ,0xDA54 ,0x8D65 //CJK UNIFIED IDEOGRAPH - ,0xDA55 ,0x8D68 //CJK UNIFIED IDEOGRAPH - ,0xDA56 ,0x8D69 //CJK UNIFIED IDEOGRAPH - ,0xDA57 ,0x8D6A //CJK UNIFIED IDEOGRAPH - ,0xDA58 ,0x8D6C //CJK UNIFIED IDEOGRAPH - ,0xDA59 ,0x8D6E //CJK UNIFIED IDEOGRAPH - ,0xDA5A ,0x8D6F //CJK UNIFIED IDEOGRAPH - ,0xDA5B ,0x8D71 //CJK UNIFIED IDEOGRAPH - ,0xDA5C ,0x8D72 //CJK UNIFIED IDEOGRAPH - ,0xDA5D ,0x8D78 //CJK UNIFIED IDEOGRAPH - ,0xDA5E ,0x8D79 //CJK UNIFIED IDEOGRAPH - ,0xDA5F ,0x8D7A //CJK UNIFIED IDEOGRAPH - ,0xDA60 ,0x8D7B //CJK UNIFIED IDEOGRAPH - ,0xDA61 ,0x8D7C //CJK UNIFIED IDEOGRAPH - ,0xDA62 ,0x8D7D //CJK UNIFIED IDEOGRAPH - ,0xDA63 ,0x8D7E //CJK UNIFIED IDEOGRAPH - ,0xDA64 ,0x8D7F //CJK UNIFIED IDEOGRAPH - ,0xDA65 ,0x8D80 //CJK UNIFIED IDEOGRAPH - ,0xDA66 ,0x8D82 //CJK UNIFIED IDEOGRAPH - ,0xDA67 ,0x8D83 //CJK UNIFIED IDEOGRAPH - ,0xDA68 ,0x8D86 //CJK UNIFIED IDEOGRAPH - ,0xDA69 ,0x8D87 //CJK UNIFIED IDEOGRAPH - ,0xDA6A ,0x8D88 //CJK UNIFIED IDEOGRAPH - ,0xDA6B ,0x8D89 //CJK UNIFIED IDEOGRAPH - ,0xDA6C ,0x8D8C //CJK UNIFIED IDEOGRAPH - ,0xDA6D ,0x8D8D //CJK UNIFIED IDEOGRAPH - ,0xDA6E ,0x8D8E //CJK UNIFIED IDEOGRAPH - ,0xDA6F ,0x8D8F //CJK UNIFIED IDEOGRAPH - ,0xDA70 ,0x8D90 //CJK UNIFIED IDEOGRAPH - ,0xDA71 ,0x8D92 //CJK UNIFIED IDEOGRAPH - ,0xDA72 ,0x8D93 //CJK UNIFIED IDEOGRAPH - ,0xDA73 ,0x8D95 //CJK UNIFIED IDEOGRAPH - ,0xDA74 ,0x8D96 //CJK UNIFIED IDEOGRAPH - ,0xDA75 ,0x8D97 //CJK UNIFIED IDEOGRAPH - ,0xDA76 ,0x8D98 //CJK UNIFIED IDEOGRAPH - ,0xDA77 ,0x8D99 //CJK UNIFIED IDEOGRAPH - ,0xDA78 ,0x8D9A //CJK UNIFIED IDEOGRAPH - ,0xDA79 ,0x8D9B //CJK UNIFIED IDEOGRAPH - ,0xDA7A ,0x8D9C //CJK UNIFIED IDEOGRAPH - ,0xDA7B ,0x8D9D //CJK UNIFIED IDEOGRAPH - ,0xDA7C ,0x8D9E //CJK UNIFIED IDEOGRAPH - ,0xDA7D ,0x8DA0 //CJK UNIFIED IDEOGRAPH - ,0xDA7E ,0x8DA1 //CJK UNIFIED IDEOGRAPH - ,0xDA80 ,0x8DA2 //CJK UNIFIED IDEOGRAPH - ,0xDA81 ,0x8DA4 //CJK UNIFIED IDEOGRAPH - ,0xDA82 ,0x8DA5 //CJK UNIFIED IDEOGRAPH - ,0xDA83 ,0x8DA6 //CJK UNIFIED IDEOGRAPH - ,0xDA84 ,0x8DA7 //CJK UNIFIED IDEOGRAPH - ,0xDA85 ,0x8DA8 //CJK UNIFIED IDEOGRAPH - ,0xDA86 ,0x8DA9 //CJK UNIFIED IDEOGRAPH - ,0xDA87 ,0x8DAA //CJK UNIFIED IDEOGRAPH - ,0xDA88 ,0x8DAB //CJK UNIFIED IDEOGRAPH - ,0xDA89 ,0x8DAC //CJK UNIFIED IDEOGRAPH - ,0xDA8A ,0x8DAD //CJK UNIFIED IDEOGRAPH - ,0xDA8B ,0x8DAE //CJK UNIFIED IDEOGRAPH - ,0xDA8C ,0x8DAF //CJK UNIFIED IDEOGRAPH - ,0xDA8D ,0x8DB0 //CJK UNIFIED IDEOGRAPH - ,0xDA8E ,0x8DB2 //CJK UNIFIED IDEOGRAPH - ,0xDA8F ,0x8DB6 //CJK UNIFIED IDEOGRAPH - ,0xDA90 ,0x8DB7 //CJK UNIFIED IDEOGRAPH - ,0xDA91 ,0x8DB9 //CJK UNIFIED IDEOGRAPH - ,0xDA92 ,0x8DBB //CJK UNIFIED IDEOGRAPH - ,0xDA93 ,0x8DBD //CJK UNIFIED IDEOGRAPH - ,0xDA94 ,0x8DC0 //CJK UNIFIED IDEOGRAPH - ,0xDA95 ,0x8DC1 //CJK UNIFIED IDEOGRAPH - ,0xDA96 ,0x8DC2 //CJK UNIFIED IDEOGRAPH - ,0xDA97 ,0x8DC5 //CJK UNIFIED IDEOGRAPH - ,0xDA98 ,0x8DC7 //CJK UNIFIED IDEOGRAPH - ,0xDA99 ,0x8DC8 //CJK UNIFIED IDEOGRAPH - ,0xDA9A ,0x8DC9 //CJK UNIFIED IDEOGRAPH - ,0xDA9B ,0x8DCA //CJK UNIFIED IDEOGRAPH - ,0xDA9C ,0x8DCD //CJK UNIFIED IDEOGRAPH - ,0xDA9D ,0x8DD0 //CJK UNIFIED IDEOGRAPH - ,0xDA9E ,0x8DD2 //CJK UNIFIED IDEOGRAPH - ,0xDA9F ,0x8DD3 //CJK UNIFIED IDEOGRAPH - ,0xDAA0 ,0x8DD4 //CJK UNIFIED IDEOGRAPH - ,0xDAA1 ,0x51C7 //CJK UNIFIED IDEOGRAPH - ,0xDAA2 ,0x5196 //CJK UNIFIED IDEOGRAPH - ,0xDAA3 ,0x51A2 //CJK UNIFIED IDEOGRAPH - ,0xDAA4 ,0x51A5 //CJK UNIFIED IDEOGRAPH - ,0xDAA5 ,0x8BA0 //CJK UNIFIED IDEOGRAPH - ,0xDAA6 ,0x8BA6 //CJK UNIFIED IDEOGRAPH - ,0xDAA7 ,0x8BA7 //CJK UNIFIED IDEOGRAPH - ,0xDAA8 ,0x8BAA //CJK UNIFIED IDEOGRAPH - ,0xDAA9 ,0x8BB4 //CJK UNIFIED IDEOGRAPH - ,0xDAAA ,0x8BB5 //CJK UNIFIED IDEOGRAPH - ,0xDAAB ,0x8BB7 //CJK UNIFIED IDEOGRAPH - ,0xDAAC ,0x8BC2 //CJK UNIFIED IDEOGRAPH - ,0xDAAD ,0x8BC3 //CJK UNIFIED IDEOGRAPH - ,0xDAAE ,0x8BCB //CJK UNIFIED IDEOGRAPH - ,0xDAAF ,0x8BCF //CJK UNIFIED IDEOGRAPH - ,0xDAB0 ,0x8BCE //CJK UNIFIED IDEOGRAPH - ,0xDAB1 ,0x8BD2 //CJK UNIFIED IDEOGRAPH - ,0xDAB2 ,0x8BD3 //CJK UNIFIED IDEOGRAPH - ,0xDAB3 ,0x8BD4 //CJK UNIFIED IDEOGRAPH - ,0xDAB4 ,0x8BD6 //CJK UNIFIED IDEOGRAPH - ,0xDAB5 ,0x8BD8 //CJK UNIFIED IDEOGRAPH - ,0xDAB6 ,0x8BD9 //CJK UNIFIED IDEOGRAPH - ,0xDAB7 ,0x8BDC //CJK UNIFIED IDEOGRAPH - ,0xDAB8 ,0x8BDF //CJK UNIFIED IDEOGRAPH - ,0xDAB9 ,0x8BE0 //CJK UNIFIED IDEOGRAPH - ,0xDABA ,0x8BE4 //CJK UNIFIED IDEOGRAPH - ,0xDABB ,0x8BE8 //CJK UNIFIED IDEOGRAPH - ,0xDABC ,0x8BE9 //CJK UNIFIED IDEOGRAPH - ,0xDABD ,0x8BEE //CJK UNIFIED IDEOGRAPH - ,0xDABE ,0x8BF0 //CJK UNIFIED IDEOGRAPH - ,0xDABF ,0x8BF3 //CJK UNIFIED IDEOGRAPH - ,0xDAC0 ,0x8BF6 //CJK UNIFIED IDEOGRAPH - ,0xDAC1 ,0x8BF9 //CJK UNIFIED IDEOGRAPH - ,0xDAC2 ,0x8BFC //CJK UNIFIED IDEOGRAPH - ,0xDAC3 ,0x8BFF //CJK UNIFIED IDEOGRAPH - ,0xDAC4 ,0x8C00 //CJK UNIFIED IDEOGRAPH - ,0xDAC5 ,0x8C02 //CJK UNIFIED IDEOGRAPH - ,0xDAC6 ,0x8C04 //CJK UNIFIED IDEOGRAPH - ,0xDAC7 ,0x8C07 //CJK UNIFIED IDEOGRAPH - ,0xDAC8 ,0x8C0C //CJK UNIFIED IDEOGRAPH - ,0xDAC9 ,0x8C0F //CJK UNIFIED IDEOGRAPH - ,0xDACA ,0x8C11 //CJK UNIFIED IDEOGRAPH - ,0xDACB ,0x8C12 //CJK UNIFIED IDEOGRAPH - ,0xDACC ,0x8C14 //CJK UNIFIED IDEOGRAPH - ,0xDACD ,0x8C15 //CJK UNIFIED IDEOGRAPH - ,0xDACE ,0x8C16 //CJK UNIFIED IDEOGRAPH - ,0xDACF ,0x8C19 //CJK UNIFIED IDEOGRAPH - ,0xDAD0 ,0x8C1B //CJK UNIFIED IDEOGRAPH - ,0xDAD1 ,0x8C18 //CJK UNIFIED IDEOGRAPH - ,0xDAD2 ,0x8C1D //CJK UNIFIED IDEOGRAPH - ,0xDAD3 ,0x8C1F //CJK UNIFIED IDEOGRAPH - ,0xDAD4 ,0x8C20 //CJK UNIFIED IDEOGRAPH - ,0xDAD5 ,0x8C21 //CJK UNIFIED IDEOGRAPH - ,0xDAD6 ,0x8C25 //CJK UNIFIED IDEOGRAPH - ,0xDAD7 ,0x8C27 //CJK UNIFIED IDEOGRAPH - ,0xDAD8 ,0x8C2A //CJK UNIFIED IDEOGRAPH - ,0xDAD9 ,0x8C2B //CJK UNIFIED IDEOGRAPH - ,0xDADA ,0x8C2E //CJK UNIFIED IDEOGRAPH - ,0xDADB ,0x8C2F //CJK UNIFIED IDEOGRAPH - ,0xDADC ,0x8C32 //CJK UNIFIED IDEOGRAPH - ,0xDADD ,0x8C33 //CJK UNIFIED IDEOGRAPH - ,0xDADE ,0x8C35 //CJK UNIFIED IDEOGRAPH - ,0xDADF ,0x8C36 //CJK UNIFIED IDEOGRAPH - ,0xDAE0 ,0x5369 //CJK UNIFIED IDEOGRAPH - ,0xDAE1 ,0x537A //CJK UNIFIED IDEOGRAPH - ,0xDAE2 ,0x961D //CJK UNIFIED IDEOGRAPH - ,0xDAE3 ,0x9622 //CJK UNIFIED IDEOGRAPH - ,0xDAE4 ,0x9621 //CJK UNIFIED IDEOGRAPH - ,0xDAE5 ,0x9631 //CJK UNIFIED IDEOGRAPH - ,0xDAE6 ,0x962A //CJK UNIFIED IDEOGRAPH - ,0xDAE7 ,0x963D //CJK UNIFIED IDEOGRAPH - ,0xDAE8 ,0x963C //CJK UNIFIED IDEOGRAPH - ,0xDAE9 ,0x9642 //CJK UNIFIED IDEOGRAPH - ,0xDAEA ,0x9649 //CJK UNIFIED IDEOGRAPH - ,0xDAEB ,0x9654 //CJK UNIFIED IDEOGRAPH - ,0xDAEC ,0x965F //CJK UNIFIED IDEOGRAPH - ,0xDAED ,0x9667 //CJK UNIFIED IDEOGRAPH - ,0xDAEE ,0x966C //CJK UNIFIED IDEOGRAPH - ,0xDAEF ,0x9672 //CJK UNIFIED IDEOGRAPH - ,0xDAF0 ,0x9674 //CJK UNIFIED IDEOGRAPH - ,0xDAF1 ,0x9688 //CJK UNIFIED IDEOGRAPH - ,0xDAF2 ,0x968D //CJK UNIFIED IDEOGRAPH - ,0xDAF3 ,0x9697 //CJK UNIFIED IDEOGRAPH - ,0xDAF4 ,0x96B0 //CJK UNIFIED IDEOGRAPH - ,0xDAF5 ,0x9097 //CJK UNIFIED IDEOGRAPH - ,0xDAF6 ,0x909B //CJK UNIFIED IDEOGRAPH - ,0xDAF7 ,0x909D //CJK UNIFIED IDEOGRAPH - ,0xDAF8 ,0x9099 //CJK UNIFIED IDEOGRAPH - ,0xDAF9 ,0x90AC //CJK UNIFIED IDEOGRAPH - ,0xDAFA ,0x90A1 //CJK UNIFIED IDEOGRAPH - ,0xDAFB ,0x90B4 //CJK UNIFIED IDEOGRAPH - ,0xDAFC ,0x90B3 //CJK UNIFIED IDEOGRAPH - ,0xDAFD ,0x90B6 //CJK UNIFIED IDEOGRAPH - ,0xDAFE ,0x90BA //CJK UNIFIED IDEOGRAPH - ,0xDB40 ,0x8DD5 //CJK UNIFIED IDEOGRAPH - ,0xDB41 ,0x8DD8 //CJK UNIFIED IDEOGRAPH - ,0xDB42 ,0x8DD9 //CJK UNIFIED IDEOGRAPH - ,0xDB43 ,0x8DDC //CJK UNIFIED IDEOGRAPH - ,0xDB44 ,0x8DE0 //CJK UNIFIED IDEOGRAPH - ,0xDB45 ,0x8DE1 //CJK UNIFIED IDEOGRAPH - ,0xDB46 ,0x8DE2 //CJK UNIFIED IDEOGRAPH - ,0xDB47 ,0x8DE5 //CJK UNIFIED IDEOGRAPH - ,0xDB48 ,0x8DE6 //CJK UNIFIED IDEOGRAPH - ,0xDB49 ,0x8DE7 //CJK UNIFIED IDEOGRAPH - ,0xDB4A ,0x8DE9 //CJK UNIFIED IDEOGRAPH - ,0xDB4B ,0x8DED //CJK UNIFIED IDEOGRAPH - ,0xDB4C ,0x8DEE //CJK UNIFIED IDEOGRAPH - ,0xDB4D ,0x8DF0 //CJK UNIFIED IDEOGRAPH - ,0xDB4E ,0x8DF1 //CJK UNIFIED IDEOGRAPH - ,0xDB4F ,0x8DF2 //CJK UNIFIED IDEOGRAPH - ,0xDB50 ,0x8DF4 //CJK UNIFIED IDEOGRAPH - ,0xDB51 ,0x8DF6 //CJK UNIFIED IDEOGRAPH - ,0xDB52 ,0x8DFC //CJK UNIFIED IDEOGRAPH - ,0xDB53 ,0x8DFE //CJK UNIFIED IDEOGRAPH - ,0xDB54 ,0x8DFF //CJK UNIFIED IDEOGRAPH - ,0xDB55 ,0x8E00 //CJK UNIFIED IDEOGRAPH - ,0xDB56 ,0x8E01 //CJK UNIFIED IDEOGRAPH - ,0xDB57 ,0x8E02 //CJK UNIFIED IDEOGRAPH - ,0xDB58 ,0x8E03 //CJK UNIFIED IDEOGRAPH - ,0xDB59 ,0x8E04 //CJK UNIFIED IDEOGRAPH - ,0xDB5A ,0x8E06 //CJK UNIFIED IDEOGRAPH - ,0xDB5B ,0x8E07 //CJK UNIFIED IDEOGRAPH - ,0xDB5C ,0x8E08 //CJK UNIFIED IDEOGRAPH - ,0xDB5D ,0x8E0B //CJK UNIFIED IDEOGRAPH - ,0xDB5E ,0x8E0D //CJK UNIFIED IDEOGRAPH - ,0xDB5F ,0x8E0E //CJK UNIFIED IDEOGRAPH - ,0xDB60 ,0x8E10 //CJK UNIFIED IDEOGRAPH - ,0xDB61 ,0x8E11 //CJK UNIFIED IDEOGRAPH - ,0xDB62 ,0x8E12 //CJK UNIFIED IDEOGRAPH - ,0xDB63 ,0x8E13 //CJK UNIFIED IDEOGRAPH - ,0xDB64 ,0x8E15 //CJK UNIFIED IDEOGRAPH - ,0xDB65 ,0x8E16 //CJK UNIFIED IDEOGRAPH - ,0xDB66 ,0x8E17 //CJK UNIFIED IDEOGRAPH - ,0xDB67 ,0x8E18 //CJK UNIFIED IDEOGRAPH - ,0xDB68 ,0x8E19 //CJK UNIFIED IDEOGRAPH - ,0xDB69 ,0x8E1A //CJK UNIFIED IDEOGRAPH - ,0xDB6A ,0x8E1B //CJK UNIFIED IDEOGRAPH - ,0xDB6B ,0x8E1C //CJK UNIFIED IDEOGRAPH - ,0xDB6C ,0x8E20 //CJK UNIFIED IDEOGRAPH - ,0xDB6D ,0x8E21 //CJK UNIFIED IDEOGRAPH - ,0xDB6E ,0x8E24 //CJK UNIFIED IDEOGRAPH - ,0xDB6F ,0x8E25 //CJK UNIFIED IDEOGRAPH - ,0xDB70 ,0x8E26 //CJK UNIFIED IDEOGRAPH - ,0xDB71 ,0x8E27 //CJK UNIFIED IDEOGRAPH - ,0xDB72 ,0x8E28 //CJK UNIFIED IDEOGRAPH - ,0xDB73 ,0x8E2B //CJK UNIFIED IDEOGRAPH - ,0xDB74 ,0x8E2D //CJK UNIFIED IDEOGRAPH - ,0xDB75 ,0x8E30 //CJK UNIFIED IDEOGRAPH - ,0xDB76 ,0x8E32 //CJK UNIFIED IDEOGRAPH - ,0xDB77 ,0x8E33 //CJK UNIFIED IDEOGRAPH - ,0xDB78 ,0x8E34 //CJK UNIFIED IDEOGRAPH - ,0xDB79 ,0x8E36 //CJK UNIFIED IDEOGRAPH - ,0xDB7A ,0x8E37 //CJK UNIFIED IDEOGRAPH - ,0xDB7B ,0x8E38 //CJK UNIFIED IDEOGRAPH - ,0xDB7C ,0x8E3B //CJK UNIFIED IDEOGRAPH - ,0xDB7D ,0x8E3C //CJK UNIFIED IDEOGRAPH - ,0xDB7E ,0x8E3E //CJK UNIFIED IDEOGRAPH - ,0xDB80 ,0x8E3F //CJK UNIFIED IDEOGRAPH - ,0xDB81 ,0x8E43 //CJK UNIFIED IDEOGRAPH - ,0xDB82 ,0x8E45 //CJK UNIFIED IDEOGRAPH - ,0xDB83 ,0x8E46 //CJK UNIFIED IDEOGRAPH - ,0xDB84 ,0x8E4C //CJK UNIFIED IDEOGRAPH - ,0xDB85 ,0x8E4D //CJK UNIFIED IDEOGRAPH - ,0xDB86 ,0x8E4E //CJK UNIFIED IDEOGRAPH - ,0xDB87 ,0x8E4F //CJK UNIFIED IDEOGRAPH - ,0xDB88 ,0x8E50 //CJK UNIFIED IDEOGRAPH - ,0xDB89 ,0x8E53 //CJK UNIFIED IDEOGRAPH - ,0xDB8A ,0x8E54 //CJK UNIFIED IDEOGRAPH - ,0xDB8B ,0x8E55 //CJK UNIFIED IDEOGRAPH - ,0xDB8C ,0x8E56 //CJK UNIFIED IDEOGRAPH - ,0xDB8D ,0x8E57 //CJK UNIFIED IDEOGRAPH - ,0xDB8E ,0x8E58 //CJK UNIFIED IDEOGRAPH - ,0xDB8F ,0x8E5A //CJK UNIFIED IDEOGRAPH - ,0xDB90 ,0x8E5B //CJK UNIFIED IDEOGRAPH - ,0xDB91 ,0x8E5C //CJK UNIFIED IDEOGRAPH - ,0xDB92 ,0x8E5D //CJK UNIFIED IDEOGRAPH - ,0xDB93 ,0x8E5E //CJK UNIFIED IDEOGRAPH - ,0xDB94 ,0x8E5F //CJK UNIFIED IDEOGRAPH - ,0xDB95 ,0x8E60 //CJK UNIFIED IDEOGRAPH - ,0xDB96 ,0x8E61 //CJK UNIFIED IDEOGRAPH - ,0xDB97 ,0x8E62 //CJK UNIFIED IDEOGRAPH - ,0xDB98 ,0x8E63 //CJK UNIFIED IDEOGRAPH - ,0xDB99 ,0x8E64 //CJK UNIFIED IDEOGRAPH - ,0xDB9A ,0x8E65 //CJK UNIFIED IDEOGRAPH - ,0xDB9B ,0x8E67 //CJK UNIFIED IDEOGRAPH - ,0xDB9C ,0x8E68 //CJK UNIFIED IDEOGRAPH - ,0xDB9D ,0x8E6A //CJK UNIFIED IDEOGRAPH - ,0xDB9E ,0x8E6B //CJK UNIFIED IDEOGRAPH - ,0xDB9F ,0x8E6E //CJK UNIFIED IDEOGRAPH - ,0xDBA0 ,0x8E71 //CJK UNIFIED IDEOGRAPH - ,0xDBA1 ,0x90B8 //CJK UNIFIED IDEOGRAPH - ,0xDBA2 ,0x90B0 //CJK UNIFIED IDEOGRAPH - ,0xDBA3 ,0x90CF //CJK UNIFIED IDEOGRAPH - ,0xDBA4 ,0x90C5 //CJK UNIFIED IDEOGRAPH - ,0xDBA5 ,0x90BE //CJK UNIFIED IDEOGRAPH - ,0xDBA6 ,0x90D0 //CJK UNIFIED IDEOGRAPH - ,0xDBA7 ,0x90C4 //CJK UNIFIED IDEOGRAPH - ,0xDBA8 ,0x90C7 //CJK UNIFIED IDEOGRAPH - ,0xDBA9 ,0x90D3 //CJK UNIFIED IDEOGRAPH - ,0xDBAA ,0x90E6 //CJK UNIFIED IDEOGRAPH - ,0xDBAB ,0x90E2 //CJK UNIFIED IDEOGRAPH - ,0xDBAC ,0x90DC //CJK UNIFIED IDEOGRAPH - ,0xDBAD ,0x90D7 //CJK UNIFIED IDEOGRAPH - ,0xDBAE ,0x90DB //CJK UNIFIED IDEOGRAPH - ,0xDBAF ,0x90EB //CJK UNIFIED IDEOGRAPH - ,0xDBB0 ,0x90EF //CJK UNIFIED IDEOGRAPH - ,0xDBB1 ,0x90FE //CJK UNIFIED IDEOGRAPH - ,0xDBB2 ,0x9104 //CJK UNIFIED IDEOGRAPH - ,0xDBB3 ,0x9122 //CJK UNIFIED IDEOGRAPH - ,0xDBB4 ,0x911E //CJK UNIFIED IDEOGRAPH - ,0xDBB5 ,0x9123 //CJK UNIFIED IDEOGRAPH - ,0xDBB6 ,0x9131 //CJK UNIFIED IDEOGRAPH - ,0xDBB7 ,0x912F //CJK UNIFIED IDEOGRAPH - ,0xDBB8 ,0x9139 //CJK UNIFIED IDEOGRAPH - ,0xDBB9 ,0x9143 //CJK UNIFIED IDEOGRAPH - ,0xDBBA ,0x9146 //CJK UNIFIED IDEOGRAPH - ,0xDBBB ,0x520D //CJK UNIFIED IDEOGRAPH - ,0xDBBC ,0x5942 //CJK UNIFIED IDEOGRAPH - ,0xDBBD ,0x52A2 //CJK UNIFIED IDEOGRAPH - ,0xDBBE ,0x52AC //CJK UNIFIED IDEOGRAPH - ,0xDBBF ,0x52AD //CJK UNIFIED IDEOGRAPH - ,0xDBC0 ,0x52BE //CJK UNIFIED IDEOGRAPH - ,0xDBC1 ,0x54FF //CJK UNIFIED IDEOGRAPH - ,0xDBC2 ,0x52D0 //CJK UNIFIED IDEOGRAPH - ,0xDBC3 ,0x52D6 //CJK UNIFIED IDEOGRAPH - ,0xDBC4 ,0x52F0 //CJK UNIFIED IDEOGRAPH - ,0xDBC5 ,0x53DF //CJK UNIFIED IDEOGRAPH - ,0xDBC6 ,0x71EE //CJK UNIFIED IDEOGRAPH - ,0xDBC7 ,0x77CD //CJK UNIFIED IDEOGRAPH - ,0xDBC8 ,0x5EF4 //CJK UNIFIED IDEOGRAPH - ,0xDBC9 ,0x51F5 //CJK UNIFIED IDEOGRAPH - ,0xDBCA ,0x51FC //CJK UNIFIED IDEOGRAPH - ,0xDBCB ,0x9B2F //CJK UNIFIED IDEOGRAPH - ,0xDBCC ,0x53B6 //CJK UNIFIED IDEOGRAPH - ,0xDBCD ,0x5F01 //CJK UNIFIED IDEOGRAPH - ,0xDBCE ,0x755A //CJK UNIFIED IDEOGRAPH - ,0xDBCF ,0x5DEF //CJK UNIFIED IDEOGRAPH - ,0xDBD0 ,0x574C //CJK UNIFIED IDEOGRAPH - ,0xDBD1 ,0x57A9 //CJK UNIFIED IDEOGRAPH - ,0xDBD2 ,0x57A1 //CJK UNIFIED IDEOGRAPH - ,0xDBD3 ,0x587E //CJK UNIFIED IDEOGRAPH - ,0xDBD4 ,0x58BC //CJK UNIFIED IDEOGRAPH - ,0xDBD5 ,0x58C5 //CJK UNIFIED IDEOGRAPH - ,0xDBD6 ,0x58D1 //CJK UNIFIED IDEOGRAPH - ,0xDBD7 ,0x5729 //CJK UNIFIED IDEOGRAPH - ,0xDBD8 ,0x572C //CJK UNIFIED IDEOGRAPH - ,0xDBD9 ,0x572A //CJK UNIFIED IDEOGRAPH - ,0xDBDA ,0x5733 //CJK UNIFIED IDEOGRAPH - ,0xDBDB ,0x5739 //CJK UNIFIED IDEOGRAPH - ,0xDBDC ,0x572E //CJK UNIFIED IDEOGRAPH - ,0xDBDD ,0x572F //CJK UNIFIED IDEOGRAPH - ,0xDBDE ,0x575C //CJK UNIFIED IDEOGRAPH - ,0xDBDF ,0x573B //CJK UNIFIED IDEOGRAPH - ,0xDBE0 ,0x5742 //CJK UNIFIED IDEOGRAPH - ,0xDBE1 ,0x5769 //CJK UNIFIED IDEOGRAPH - ,0xDBE2 ,0x5785 //CJK UNIFIED IDEOGRAPH - ,0xDBE3 ,0x576B //CJK UNIFIED IDEOGRAPH - ,0xDBE4 ,0x5786 //CJK UNIFIED IDEOGRAPH - ,0xDBE5 ,0x577C //CJK UNIFIED IDEOGRAPH - ,0xDBE6 ,0x577B //CJK UNIFIED IDEOGRAPH - ,0xDBE7 ,0x5768 //CJK UNIFIED IDEOGRAPH - ,0xDBE8 ,0x576D //CJK UNIFIED IDEOGRAPH - ,0xDBE9 ,0x5776 //CJK UNIFIED IDEOGRAPH - ,0xDBEA ,0x5773 //CJK UNIFIED IDEOGRAPH - ,0xDBEB ,0x57AD //CJK UNIFIED IDEOGRAPH - ,0xDBEC ,0x57A4 //CJK UNIFIED IDEOGRAPH - ,0xDBED ,0x578C //CJK UNIFIED IDEOGRAPH - ,0xDBEE ,0x57B2 //CJK UNIFIED IDEOGRAPH - ,0xDBEF ,0x57CF //CJK UNIFIED IDEOGRAPH - ,0xDBF0 ,0x57A7 //CJK UNIFIED IDEOGRAPH - ,0xDBF1 ,0x57B4 //CJK UNIFIED IDEOGRAPH - ,0xDBF2 ,0x5793 //CJK UNIFIED IDEOGRAPH - ,0xDBF3 ,0x57A0 //CJK UNIFIED IDEOGRAPH - ,0xDBF4 ,0x57D5 //CJK UNIFIED IDEOGRAPH - ,0xDBF5 ,0x57D8 //CJK UNIFIED IDEOGRAPH - ,0xDBF6 ,0x57DA //CJK UNIFIED IDEOGRAPH - ,0xDBF7 ,0x57D9 //CJK UNIFIED IDEOGRAPH - ,0xDBF8 ,0x57D2 //CJK UNIFIED IDEOGRAPH - ,0xDBF9 ,0x57B8 //CJK UNIFIED IDEOGRAPH - ,0xDBFA ,0x57F4 //CJK UNIFIED IDEOGRAPH - ,0xDBFB ,0x57EF //CJK UNIFIED IDEOGRAPH - ,0xDBFC ,0x57F8 //CJK UNIFIED IDEOGRAPH - ,0xDBFD ,0x57E4 //CJK UNIFIED IDEOGRAPH - ,0xDBFE ,0x57DD //CJK UNIFIED IDEOGRAPH - ,0xDC40 ,0x8E73 //CJK UNIFIED IDEOGRAPH - ,0xDC41 ,0x8E75 //CJK UNIFIED IDEOGRAPH - ,0xDC42 ,0x8E77 //CJK UNIFIED IDEOGRAPH - ,0xDC43 ,0x8E78 //CJK UNIFIED IDEOGRAPH - ,0xDC44 ,0x8E79 //CJK UNIFIED IDEOGRAPH - ,0xDC45 ,0x8E7A //CJK UNIFIED IDEOGRAPH - ,0xDC46 ,0x8E7B //CJK UNIFIED IDEOGRAPH - ,0xDC47 ,0x8E7D //CJK UNIFIED IDEOGRAPH - ,0xDC48 ,0x8E7E //CJK UNIFIED IDEOGRAPH - ,0xDC49 ,0x8E80 //CJK UNIFIED IDEOGRAPH - ,0xDC4A ,0x8E82 //CJK UNIFIED IDEOGRAPH - ,0xDC4B ,0x8E83 //CJK UNIFIED IDEOGRAPH - ,0xDC4C ,0x8E84 //CJK UNIFIED IDEOGRAPH - ,0xDC4D ,0x8E86 //CJK UNIFIED IDEOGRAPH - ,0xDC4E ,0x8E88 //CJK UNIFIED IDEOGRAPH - ,0xDC4F ,0x8E89 //CJK UNIFIED IDEOGRAPH - ,0xDC50 ,0x8E8A //CJK UNIFIED IDEOGRAPH - ,0xDC51 ,0x8E8B //CJK UNIFIED IDEOGRAPH - ,0xDC52 ,0x8E8C //CJK UNIFIED IDEOGRAPH - ,0xDC53 ,0x8E8D //CJK UNIFIED IDEOGRAPH - ,0xDC54 ,0x8E8E //CJK UNIFIED IDEOGRAPH - ,0xDC55 ,0x8E91 //CJK UNIFIED IDEOGRAPH - ,0xDC56 ,0x8E92 //CJK UNIFIED IDEOGRAPH - ,0xDC57 ,0x8E93 //CJK UNIFIED IDEOGRAPH - ,0xDC58 ,0x8E95 //CJK UNIFIED IDEOGRAPH - ,0xDC59 ,0x8E96 //CJK UNIFIED IDEOGRAPH - ,0xDC5A ,0x8E97 //CJK UNIFIED IDEOGRAPH - ,0xDC5B ,0x8E98 //CJK UNIFIED IDEOGRAPH - ,0xDC5C ,0x8E99 //CJK UNIFIED IDEOGRAPH - ,0xDC5D ,0x8E9A //CJK UNIFIED IDEOGRAPH - ,0xDC5E ,0x8E9B //CJK UNIFIED IDEOGRAPH - ,0xDC5F ,0x8E9D //CJK UNIFIED IDEOGRAPH - ,0xDC60 ,0x8E9F //CJK UNIFIED IDEOGRAPH - ,0xDC61 ,0x8EA0 //CJK UNIFIED IDEOGRAPH - ,0xDC62 ,0x8EA1 //CJK UNIFIED IDEOGRAPH - ,0xDC63 ,0x8EA2 //CJK UNIFIED IDEOGRAPH - ,0xDC64 ,0x8EA3 //CJK UNIFIED IDEOGRAPH - ,0xDC65 ,0x8EA4 //CJK UNIFIED IDEOGRAPH - ,0xDC66 ,0x8EA5 //CJK UNIFIED IDEOGRAPH - ,0xDC67 ,0x8EA6 //CJK UNIFIED IDEOGRAPH - ,0xDC68 ,0x8EA7 //CJK UNIFIED IDEOGRAPH - ,0xDC69 ,0x8EA8 //CJK UNIFIED IDEOGRAPH - ,0xDC6A ,0x8EA9 //CJK UNIFIED IDEOGRAPH - ,0xDC6B ,0x8EAA //CJK UNIFIED IDEOGRAPH - ,0xDC6C ,0x8EAD //CJK UNIFIED IDEOGRAPH - ,0xDC6D ,0x8EAE //CJK UNIFIED IDEOGRAPH - ,0xDC6E ,0x8EB0 //CJK UNIFIED IDEOGRAPH - ,0xDC6F ,0x8EB1 //CJK UNIFIED IDEOGRAPH - ,0xDC70 ,0x8EB3 //CJK UNIFIED IDEOGRAPH - ,0xDC71 ,0x8EB4 //CJK UNIFIED IDEOGRAPH - ,0xDC72 ,0x8EB5 //CJK UNIFIED IDEOGRAPH - ,0xDC73 ,0x8EB6 //CJK UNIFIED IDEOGRAPH - ,0xDC74 ,0x8EB7 //CJK UNIFIED IDEOGRAPH - ,0xDC75 ,0x8EB8 //CJK UNIFIED IDEOGRAPH - ,0xDC76 ,0x8EB9 //CJK UNIFIED IDEOGRAPH - ,0xDC77 ,0x8EBB //CJK UNIFIED IDEOGRAPH - ,0xDC78 ,0x8EBC //CJK UNIFIED IDEOGRAPH - ,0xDC79 ,0x8EBD //CJK UNIFIED IDEOGRAPH - ,0xDC7A ,0x8EBE //CJK UNIFIED IDEOGRAPH - ,0xDC7B ,0x8EBF //CJK UNIFIED IDEOGRAPH - ,0xDC7C ,0x8EC0 //CJK UNIFIED IDEOGRAPH - ,0xDC7D ,0x8EC1 //CJK UNIFIED IDEOGRAPH - ,0xDC7E ,0x8EC2 //CJK UNIFIED IDEOGRAPH - ,0xDC80 ,0x8EC3 //CJK UNIFIED IDEOGRAPH - ,0xDC81 ,0x8EC4 //CJK UNIFIED IDEOGRAPH - ,0xDC82 ,0x8EC5 //CJK UNIFIED IDEOGRAPH - ,0xDC83 ,0x8EC6 //CJK UNIFIED IDEOGRAPH - ,0xDC84 ,0x8EC7 //CJK UNIFIED IDEOGRAPH - ,0xDC85 ,0x8EC8 //CJK UNIFIED IDEOGRAPH - ,0xDC86 ,0x8EC9 //CJK UNIFIED IDEOGRAPH - ,0xDC87 ,0x8ECA //CJK UNIFIED IDEOGRAPH - ,0xDC88 ,0x8ECB //CJK UNIFIED IDEOGRAPH - ,0xDC89 ,0x8ECC //CJK UNIFIED IDEOGRAPH - ,0xDC8A ,0x8ECD //CJK UNIFIED IDEOGRAPH - ,0xDC8B ,0x8ECF //CJK UNIFIED IDEOGRAPH - ,0xDC8C ,0x8ED0 //CJK UNIFIED IDEOGRAPH - ,0xDC8D ,0x8ED1 //CJK UNIFIED IDEOGRAPH - ,0xDC8E ,0x8ED2 //CJK UNIFIED IDEOGRAPH - ,0xDC8F ,0x8ED3 //CJK UNIFIED IDEOGRAPH - ,0xDC90 ,0x8ED4 //CJK UNIFIED IDEOGRAPH - ,0xDC91 ,0x8ED5 //CJK UNIFIED IDEOGRAPH - ,0xDC92 ,0x8ED6 //CJK UNIFIED IDEOGRAPH - ,0xDC93 ,0x8ED7 //CJK UNIFIED IDEOGRAPH - ,0xDC94 ,0x8ED8 //CJK UNIFIED IDEOGRAPH - ,0xDC95 ,0x8ED9 //CJK UNIFIED IDEOGRAPH - ,0xDC96 ,0x8EDA //CJK UNIFIED IDEOGRAPH - ,0xDC97 ,0x8EDB //CJK UNIFIED IDEOGRAPH - ,0xDC98 ,0x8EDC //CJK UNIFIED IDEOGRAPH - ,0xDC99 ,0x8EDD //CJK UNIFIED IDEOGRAPH - ,0xDC9A ,0x8EDE //CJK UNIFIED IDEOGRAPH - ,0xDC9B ,0x8EDF //CJK UNIFIED IDEOGRAPH - ,0xDC9C ,0x8EE0 //CJK UNIFIED IDEOGRAPH - ,0xDC9D ,0x8EE1 //CJK UNIFIED IDEOGRAPH - ,0xDC9E ,0x8EE2 //CJK UNIFIED IDEOGRAPH - ,0xDC9F ,0x8EE3 //CJK UNIFIED IDEOGRAPH - ,0xDCA0 ,0x8EE4 //CJK UNIFIED IDEOGRAPH - ,0xDCA1 ,0x580B //CJK UNIFIED IDEOGRAPH - ,0xDCA2 ,0x580D //CJK UNIFIED IDEOGRAPH - ,0xDCA3 ,0x57FD //CJK UNIFIED IDEOGRAPH - ,0xDCA4 ,0x57ED //CJK UNIFIED IDEOGRAPH - ,0xDCA5 ,0x5800 //CJK UNIFIED IDEOGRAPH - ,0xDCA6 ,0x581E //CJK UNIFIED IDEOGRAPH - ,0xDCA7 ,0x5819 //CJK UNIFIED IDEOGRAPH - ,0xDCA8 ,0x5844 //CJK UNIFIED IDEOGRAPH - ,0xDCA9 ,0x5820 //CJK UNIFIED IDEOGRAPH - ,0xDCAA ,0x5865 //CJK UNIFIED IDEOGRAPH - ,0xDCAB ,0x586C //CJK UNIFIED IDEOGRAPH - ,0xDCAC ,0x5881 //CJK UNIFIED IDEOGRAPH - ,0xDCAD ,0x5889 //CJK UNIFIED IDEOGRAPH - ,0xDCAE ,0x589A //CJK UNIFIED IDEOGRAPH - ,0xDCAF ,0x5880 //CJK UNIFIED IDEOGRAPH - ,0xDCB0 ,0x99A8 //CJK UNIFIED IDEOGRAPH - ,0xDCB1 ,0x9F19 //CJK UNIFIED IDEOGRAPH - ,0xDCB2 ,0x61FF //CJK UNIFIED IDEOGRAPH - ,0xDCB3 ,0x8279 //CJK UNIFIED IDEOGRAPH - ,0xDCB4 ,0x827D //CJK UNIFIED IDEOGRAPH - ,0xDCB5 ,0x827F //CJK UNIFIED IDEOGRAPH - ,0xDCB6 ,0x828F //CJK UNIFIED IDEOGRAPH - ,0xDCB7 ,0x828A //CJK UNIFIED IDEOGRAPH - ,0xDCB8 ,0x82A8 //CJK UNIFIED IDEOGRAPH - ,0xDCB9 ,0x8284 //CJK UNIFIED IDEOGRAPH - ,0xDCBA ,0x828E //CJK UNIFIED IDEOGRAPH - ,0xDCBB ,0x8291 //CJK UNIFIED IDEOGRAPH - ,0xDCBC ,0x8297 //CJK UNIFIED IDEOGRAPH - ,0xDCBD ,0x8299 //CJK UNIFIED IDEOGRAPH - ,0xDCBE ,0x82AB //CJK UNIFIED IDEOGRAPH - ,0xDCBF ,0x82B8 //CJK UNIFIED IDEOGRAPH - ,0xDCC0 ,0x82BE //CJK UNIFIED IDEOGRAPH - ,0xDCC1 ,0x82B0 //CJK UNIFIED IDEOGRAPH - ,0xDCC2 ,0x82C8 //CJK UNIFIED IDEOGRAPH - ,0xDCC3 ,0x82CA //CJK UNIFIED IDEOGRAPH - ,0xDCC4 ,0x82E3 //CJK UNIFIED IDEOGRAPH - ,0xDCC5 ,0x8298 //CJK UNIFIED IDEOGRAPH - ,0xDCC6 ,0x82B7 //CJK UNIFIED IDEOGRAPH - ,0xDCC7 ,0x82AE //CJK UNIFIED IDEOGRAPH - ,0xDCC8 ,0x82CB //CJK UNIFIED IDEOGRAPH - ,0xDCC9 ,0x82CC //CJK UNIFIED IDEOGRAPH - ,0xDCCA ,0x82C1 //CJK UNIFIED IDEOGRAPH - ,0xDCCB ,0x82A9 //CJK UNIFIED IDEOGRAPH - ,0xDCCC ,0x82B4 //CJK UNIFIED IDEOGRAPH - ,0xDCCD ,0x82A1 //CJK UNIFIED IDEOGRAPH - ,0xDCCE ,0x82AA //CJK UNIFIED IDEOGRAPH - ,0xDCCF ,0x829F //CJK UNIFIED IDEOGRAPH - ,0xDCD0 ,0x82C4 //CJK UNIFIED IDEOGRAPH - ,0xDCD1 ,0x82CE //CJK UNIFIED IDEOGRAPH - ,0xDCD2 ,0x82A4 //CJK UNIFIED IDEOGRAPH - ,0xDCD3 ,0x82E1 //CJK UNIFIED IDEOGRAPH - ,0xDCD4 ,0x8309 //CJK UNIFIED IDEOGRAPH - ,0xDCD5 ,0x82F7 //CJK UNIFIED IDEOGRAPH - ,0xDCD6 ,0x82E4 //CJK UNIFIED IDEOGRAPH - ,0xDCD7 ,0x830F //CJK UNIFIED IDEOGRAPH - ,0xDCD8 ,0x8307 //CJK UNIFIED IDEOGRAPH - ,0xDCD9 ,0x82DC //CJK UNIFIED IDEOGRAPH - ,0xDCDA ,0x82F4 //CJK UNIFIED IDEOGRAPH - ,0xDCDB ,0x82D2 //CJK UNIFIED IDEOGRAPH - ,0xDCDC ,0x82D8 //CJK UNIFIED IDEOGRAPH - ,0xDCDD ,0x830C //CJK UNIFIED IDEOGRAPH - ,0xDCDE ,0x82FB //CJK UNIFIED IDEOGRAPH - ,0xDCDF ,0x82D3 //CJK UNIFIED IDEOGRAPH - ,0xDCE0 ,0x8311 //CJK UNIFIED IDEOGRAPH - ,0xDCE1 ,0x831A //CJK UNIFIED IDEOGRAPH - ,0xDCE2 ,0x8306 //CJK UNIFIED IDEOGRAPH - ,0xDCE3 ,0x8314 //CJK UNIFIED IDEOGRAPH - ,0xDCE4 ,0x8315 //CJK UNIFIED IDEOGRAPH - ,0xDCE5 ,0x82E0 //CJK UNIFIED IDEOGRAPH - ,0xDCE6 ,0x82D5 //CJK UNIFIED IDEOGRAPH - ,0xDCE7 ,0x831C //CJK UNIFIED IDEOGRAPH - ,0xDCE8 ,0x8351 //CJK UNIFIED IDEOGRAPH - ,0xDCE9 ,0x835B //CJK UNIFIED IDEOGRAPH - ,0xDCEA ,0x835C //CJK UNIFIED IDEOGRAPH - ,0xDCEB ,0x8308 //CJK UNIFIED IDEOGRAPH - ,0xDCEC ,0x8392 //CJK UNIFIED IDEOGRAPH - ,0xDCED ,0x833C //CJK UNIFIED IDEOGRAPH - ,0xDCEE ,0x8334 //CJK UNIFIED IDEOGRAPH - ,0xDCEF ,0x8331 //CJK UNIFIED IDEOGRAPH - ,0xDCF0 ,0x839B //CJK UNIFIED IDEOGRAPH - ,0xDCF1 ,0x835E //CJK UNIFIED IDEOGRAPH - ,0xDCF2 ,0x832F //CJK UNIFIED IDEOGRAPH - ,0xDCF3 ,0x834F //CJK UNIFIED IDEOGRAPH - ,0xDCF4 ,0x8347 //CJK UNIFIED IDEOGRAPH - ,0xDCF5 ,0x8343 //CJK UNIFIED IDEOGRAPH - ,0xDCF6 ,0x835F //CJK UNIFIED IDEOGRAPH - ,0xDCF7 ,0x8340 //CJK UNIFIED IDEOGRAPH - ,0xDCF8 ,0x8317 //CJK UNIFIED IDEOGRAPH - ,0xDCF9 ,0x8360 //CJK UNIFIED IDEOGRAPH - ,0xDCFA ,0x832D //CJK UNIFIED IDEOGRAPH - ,0xDCFB ,0x833A //CJK UNIFIED IDEOGRAPH - ,0xDCFC ,0x8333 //CJK UNIFIED IDEOGRAPH - ,0xDCFD ,0x8366 //CJK UNIFIED IDEOGRAPH - ,0xDCFE ,0x8365 //CJK UNIFIED IDEOGRAPH - ,0xDD40 ,0x8EE5 //CJK UNIFIED IDEOGRAPH - ,0xDD41 ,0x8EE6 //CJK UNIFIED IDEOGRAPH - ,0xDD42 ,0x8EE7 //CJK UNIFIED IDEOGRAPH - ,0xDD43 ,0x8EE8 //CJK UNIFIED IDEOGRAPH - ,0xDD44 ,0x8EE9 //CJK UNIFIED IDEOGRAPH - ,0xDD45 ,0x8EEA //CJK UNIFIED IDEOGRAPH - ,0xDD46 ,0x8EEB //CJK UNIFIED IDEOGRAPH - ,0xDD47 ,0x8EEC //CJK UNIFIED IDEOGRAPH - ,0xDD48 ,0x8EED //CJK UNIFIED IDEOGRAPH - ,0xDD49 ,0x8EEE //CJK UNIFIED IDEOGRAPH - ,0xDD4A ,0x8EEF //CJK UNIFIED IDEOGRAPH - ,0xDD4B ,0x8EF0 //CJK UNIFIED IDEOGRAPH - ,0xDD4C ,0x8EF1 //CJK UNIFIED IDEOGRAPH - ,0xDD4D ,0x8EF2 //CJK UNIFIED IDEOGRAPH - ,0xDD4E ,0x8EF3 //CJK UNIFIED IDEOGRAPH - ,0xDD4F ,0x8EF4 //CJK UNIFIED IDEOGRAPH - ,0xDD50 ,0x8EF5 //CJK UNIFIED IDEOGRAPH - ,0xDD51 ,0x8EF6 //CJK UNIFIED IDEOGRAPH - ,0xDD52 ,0x8EF7 //CJK UNIFIED IDEOGRAPH - ,0xDD53 ,0x8EF8 //CJK UNIFIED IDEOGRAPH - ,0xDD54 ,0x8EF9 //CJK UNIFIED IDEOGRAPH - ,0xDD55 ,0x8EFA //CJK UNIFIED IDEOGRAPH - ,0xDD56 ,0x8EFB //CJK UNIFIED IDEOGRAPH - ,0xDD57 ,0x8EFC //CJK UNIFIED IDEOGRAPH - ,0xDD58 ,0x8EFD //CJK UNIFIED IDEOGRAPH - ,0xDD59 ,0x8EFE //CJK UNIFIED IDEOGRAPH - ,0xDD5A ,0x8EFF //CJK UNIFIED IDEOGRAPH - ,0xDD5B ,0x8F00 //CJK UNIFIED IDEOGRAPH - ,0xDD5C ,0x8F01 //CJK UNIFIED IDEOGRAPH - ,0xDD5D ,0x8F02 //CJK UNIFIED IDEOGRAPH - ,0xDD5E ,0x8F03 //CJK UNIFIED IDEOGRAPH - ,0xDD5F ,0x8F04 //CJK UNIFIED IDEOGRAPH - ,0xDD60 ,0x8F05 //CJK UNIFIED IDEOGRAPH - ,0xDD61 ,0x8F06 //CJK UNIFIED IDEOGRAPH - ,0xDD62 ,0x8F07 //CJK UNIFIED IDEOGRAPH - ,0xDD63 ,0x8F08 //CJK UNIFIED IDEOGRAPH - ,0xDD64 ,0x8F09 //CJK UNIFIED IDEOGRAPH - ,0xDD65 ,0x8F0A //CJK UNIFIED IDEOGRAPH - ,0xDD66 ,0x8F0B //CJK UNIFIED IDEOGRAPH - ,0xDD67 ,0x8F0C //CJK UNIFIED IDEOGRAPH - ,0xDD68 ,0x8F0D //CJK UNIFIED IDEOGRAPH - ,0xDD69 ,0x8F0E //CJK UNIFIED IDEOGRAPH - ,0xDD6A ,0x8F0F //CJK UNIFIED IDEOGRAPH - ,0xDD6B ,0x8F10 //CJK UNIFIED IDEOGRAPH - ,0xDD6C ,0x8F11 //CJK UNIFIED IDEOGRAPH - ,0xDD6D ,0x8F12 //CJK UNIFIED IDEOGRAPH - ,0xDD6E ,0x8F13 //CJK UNIFIED IDEOGRAPH - ,0xDD6F ,0x8F14 //CJK UNIFIED IDEOGRAPH - ,0xDD70 ,0x8F15 //CJK UNIFIED IDEOGRAPH - ,0xDD71 ,0x8F16 //CJK UNIFIED IDEOGRAPH - ,0xDD72 ,0x8F17 //CJK UNIFIED IDEOGRAPH - ,0xDD73 ,0x8F18 //CJK UNIFIED IDEOGRAPH - ,0xDD74 ,0x8F19 //CJK UNIFIED IDEOGRAPH - ,0xDD75 ,0x8F1A //CJK UNIFIED IDEOGRAPH - ,0xDD76 ,0x8F1B //CJK UNIFIED IDEOGRAPH - ,0xDD77 ,0x8F1C //CJK UNIFIED IDEOGRAPH - ,0xDD78 ,0x8F1D //CJK UNIFIED IDEOGRAPH - ,0xDD79 ,0x8F1E //CJK UNIFIED IDEOGRAPH - ,0xDD7A ,0x8F1F //CJK UNIFIED IDEOGRAPH - ,0xDD7B ,0x8F20 //CJK UNIFIED IDEOGRAPH - ,0xDD7C ,0x8F21 //CJK UNIFIED IDEOGRAPH - ,0xDD7D ,0x8F22 //CJK UNIFIED IDEOGRAPH - ,0xDD7E ,0x8F23 //CJK UNIFIED IDEOGRAPH - ,0xDD80 ,0x8F24 //CJK UNIFIED IDEOGRAPH - ,0xDD81 ,0x8F25 //CJK UNIFIED IDEOGRAPH - ,0xDD82 ,0x8F26 //CJK UNIFIED IDEOGRAPH - ,0xDD83 ,0x8F27 //CJK UNIFIED IDEOGRAPH - ,0xDD84 ,0x8F28 //CJK UNIFIED IDEOGRAPH - ,0xDD85 ,0x8F29 //CJK UNIFIED IDEOGRAPH - ,0xDD86 ,0x8F2A //CJK UNIFIED IDEOGRAPH - ,0xDD87 ,0x8F2B //CJK UNIFIED IDEOGRAPH - ,0xDD88 ,0x8F2C //CJK UNIFIED IDEOGRAPH - ,0xDD89 ,0x8F2D //CJK UNIFIED IDEOGRAPH - ,0xDD8A ,0x8F2E //CJK UNIFIED IDEOGRAPH - ,0xDD8B ,0x8F2F //CJK UNIFIED IDEOGRAPH - ,0xDD8C ,0x8F30 //CJK UNIFIED IDEOGRAPH - ,0xDD8D ,0x8F31 //CJK UNIFIED IDEOGRAPH - ,0xDD8E ,0x8F32 //CJK UNIFIED IDEOGRAPH - ,0xDD8F ,0x8F33 //CJK UNIFIED IDEOGRAPH - ,0xDD90 ,0x8F34 //CJK UNIFIED IDEOGRAPH - ,0xDD91 ,0x8F35 //CJK UNIFIED IDEOGRAPH - ,0xDD92 ,0x8F36 //CJK UNIFIED IDEOGRAPH - ,0xDD93 ,0x8F37 //CJK UNIFIED IDEOGRAPH - ,0xDD94 ,0x8F38 //CJK UNIFIED IDEOGRAPH - ,0xDD95 ,0x8F39 //CJK UNIFIED IDEOGRAPH - ,0xDD96 ,0x8F3A //CJK UNIFIED IDEOGRAPH - ,0xDD97 ,0x8F3B //CJK UNIFIED IDEOGRAPH - ,0xDD98 ,0x8F3C //CJK UNIFIED IDEOGRAPH - ,0xDD99 ,0x8F3D //CJK UNIFIED IDEOGRAPH - ,0xDD9A ,0x8F3E //CJK UNIFIED IDEOGRAPH - ,0xDD9B ,0x8F3F //CJK UNIFIED IDEOGRAPH - ,0xDD9C ,0x8F40 //CJK UNIFIED IDEOGRAPH - ,0xDD9D ,0x8F41 //CJK UNIFIED IDEOGRAPH - ,0xDD9E ,0x8F42 //CJK UNIFIED IDEOGRAPH - ,0xDD9F ,0x8F43 //CJK UNIFIED IDEOGRAPH - ,0xDDA0 ,0x8F44 //CJK UNIFIED IDEOGRAPH - ,0xDDA1 ,0x8368 //CJK UNIFIED IDEOGRAPH - ,0xDDA2 ,0x831B //CJK UNIFIED IDEOGRAPH - ,0xDDA3 ,0x8369 //CJK UNIFIED IDEOGRAPH - ,0xDDA4 ,0x836C //CJK UNIFIED IDEOGRAPH - ,0xDDA5 ,0x836A //CJK UNIFIED IDEOGRAPH - ,0xDDA6 ,0x836D //CJK UNIFIED IDEOGRAPH - ,0xDDA7 ,0x836E //CJK UNIFIED IDEOGRAPH - ,0xDDA8 ,0x83B0 //CJK UNIFIED IDEOGRAPH - ,0xDDA9 ,0x8378 //CJK UNIFIED IDEOGRAPH - ,0xDDAA ,0x83B3 //CJK UNIFIED IDEOGRAPH - ,0xDDAB ,0x83B4 //CJK UNIFIED IDEOGRAPH - ,0xDDAC ,0x83A0 //CJK UNIFIED IDEOGRAPH - ,0xDDAD ,0x83AA //CJK UNIFIED IDEOGRAPH - ,0xDDAE ,0x8393 //CJK UNIFIED IDEOGRAPH - ,0xDDAF ,0x839C //CJK UNIFIED IDEOGRAPH - ,0xDDB0 ,0x8385 //CJK UNIFIED IDEOGRAPH - ,0xDDB1 ,0x837C //CJK UNIFIED IDEOGRAPH - ,0xDDB2 ,0x83B6 //CJK UNIFIED IDEOGRAPH - ,0xDDB3 ,0x83A9 //CJK UNIFIED IDEOGRAPH - ,0xDDB4 ,0x837D //CJK UNIFIED IDEOGRAPH - ,0xDDB5 ,0x83B8 //CJK UNIFIED IDEOGRAPH - ,0xDDB6 ,0x837B //CJK UNIFIED IDEOGRAPH - ,0xDDB7 ,0x8398 //CJK UNIFIED IDEOGRAPH - ,0xDDB8 ,0x839E //CJK UNIFIED IDEOGRAPH - ,0xDDB9 ,0x83A8 //CJK UNIFIED IDEOGRAPH - ,0xDDBA ,0x83BA //CJK UNIFIED IDEOGRAPH - ,0xDDBB ,0x83BC //CJK UNIFIED IDEOGRAPH - ,0xDDBC ,0x83C1 //CJK UNIFIED IDEOGRAPH - ,0xDDBD ,0x8401 //CJK UNIFIED IDEOGRAPH - ,0xDDBE ,0x83E5 //CJK UNIFIED IDEOGRAPH - ,0xDDBF ,0x83D8 //CJK UNIFIED IDEOGRAPH - ,0xDDC0 ,0x5807 //CJK UNIFIED IDEOGRAPH - ,0xDDC1 ,0x8418 //CJK UNIFIED IDEOGRAPH - ,0xDDC2 ,0x840B //CJK UNIFIED IDEOGRAPH - ,0xDDC3 ,0x83DD //CJK UNIFIED IDEOGRAPH - ,0xDDC4 ,0x83FD //CJK UNIFIED IDEOGRAPH - ,0xDDC5 ,0x83D6 //CJK UNIFIED IDEOGRAPH - ,0xDDC6 ,0x841C //CJK UNIFIED IDEOGRAPH - ,0xDDC7 ,0x8438 //CJK UNIFIED IDEOGRAPH - ,0xDDC8 ,0x8411 //CJK UNIFIED IDEOGRAPH - ,0xDDC9 ,0x8406 //CJK UNIFIED IDEOGRAPH - ,0xDDCA ,0x83D4 //CJK UNIFIED IDEOGRAPH - ,0xDDCB ,0x83DF //CJK UNIFIED IDEOGRAPH - ,0xDDCC ,0x840F //CJK UNIFIED IDEOGRAPH - ,0xDDCD ,0x8403 //CJK UNIFIED IDEOGRAPH - ,0xDDCE ,0x83F8 //CJK UNIFIED IDEOGRAPH - ,0xDDCF ,0x83F9 //CJK UNIFIED IDEOGRAPH - ,0xDDD0 ,0x83EA //CJK UNIFIED IDEOGRAPH - ,0xDDD1 ,0x83C5 //CJK UNIFIED IDEOGRAPH - ,0xDDD2 ,0x83C0 //CJK UNIFIED IDEOGRAPH - ,0xDDD3 ,0x8426 //CJK UNIFIED IDEOGRAPH - ,0xDDD4 ,0x83F0 //CJK UNIFIED IDEOGRAPH - ,0xDDD5 ,0x83E1 //CJK UNIFIED IDEOGRAPH - ,0xDDD6 ,0x845C //CJK UNIFIED IDEOGRAPH - ,0xDDD7 ,0x8451 //CJK UNIFIED IDEOGRAPH - ,0xDDD8 ,0x845A //CJK UNIFIED IDEOGRAPH - ,0xDDD9 ,0x8459 //CJK UNIFIED IDEOGRAPH - ,0xDDDA ,0x8473 //CJK UNIFIED IDEOGRAPH - ,0xDDDB ,0x8487 //CJK UNIFIED IDEOGRAPH - ,0xDDDC ,0x8488 //CJK UNIFIED IDEOGRAPH - ,0xDDDD ,0x847A //CJK UNIFIED IDEOGRAPH - ,0xDDDE ,0x8489 //CJK UNIFIED IDEOGRAPH - ,0xDDDF ,0x8478 //CJK UNIFIED IDEOGRAPH - ,0xDDE0 ,0x843C //CJK UNIFIED IDEOGRAPH - ,0xDDE1 ,0x8446 //CJK UNIFIED IDEOGRAPH - ,0xDDE2 ,0x8469 //CJK UNIFIED IDEOGRAPH - ,0xDDE3 ,0x8476 //CJK UNIFIED IDEOGRAPH - ,0xDDE4 ,0x848C //CJK UNIFIED IDEOGRAPH - ,0xDDE5 ,0x848E //CJK UNIFIED IDEOGRAPH - ,0xDDE6 ,0x8431 //CJK UNIFIED IDEOGRAPH - ,0xDDE7 ,0x846D //CJK UNIFIED IDEOGRAPH - ,0xDDE8 ,0x84C1 //CJK UNIFIED IDEOGRAPH - ,0xDDE9 ,0x84CD //CJK UNIFIED IDEOGRAPH - ,0xDDEA ,0x84D0 //CJK UNIFIED IDEOGRAPH - ,0xDDEB ,0x84E6 //CJK UNIFIED IDEOGRAPH - ,0xDDEC ,0x84BD //CJK UNIFIED IDEOGRAPH - ,0xDDED ,0x84D3 //CJK UNIFIED IDEOGRAPH - ,0xDDEE ,0x84CA //CJK UNIFIED IDEOGRAPH - ,0xDDEF ,0x84BF //CJK UNIFIED IDEOGRAPH - ,0xDDF0 ,0x84BA //CJK UNIFIED IDEOGRAPH - ,0xDDF1 ,0x84E0 //CJK UNIFIED IDEOGRAPH - ,0xDDF2 ,0x84A1 //CJK UNIFIED IDEOGRAPH - ,0xDDF3 ,0x84B9 //CJK UNIFIED IDEOGRAPH - ,0xDDF4 ,0x84B4 //CJK UNIFIED IDEOGRAPH - ,0xDDF5 ,0x8497 //CJK UNIFIED IDEOGRAPH - ,0xDDF6 ,0x84E5 //CJK UNIFIED IDEOGRAPH - ,0xDDF7 ,0x84E3 //CJK UNIFIED IDEOGRAPH - ,0xDDF8 ,0x850C //CJK UNIFIED IDEOGRAPH - ,0xDDF9 ,0x750D //CJK UNIFIED IDEOGRAPH - ,0xDDFA ,0x8538 //CJK UNIFIED IDEOGRAPH - ,0xDDFB ,0x84F0 //CJK UNIFIED IDEOGRAPH - ,0xDDFC ,0x8539 //CJK UNIFIED IDEOGRAPH - ,0xDDFD ,0x851F //CJK UNIFIED IDEOGRAPH - ,0xDDFE ,0x853A //CJK UNIFIED IDEOGRAPH - ,0xDE40 ,0x8F45 //CJK UNIFIED IDEOGRAPH - ,0xDE41 ,0x8F46 //CJK UNIFIED IDEOGRAPH - ,0xDE42 ,0x8F47 //CJK UNIFIED IDEOGRAPH - ,0xDE43 ,0x8F48 //CJK UNIFIED IDEOGRAPH - ,0xDE44 ,0x8F49 //CJK UNIFIED IDEOGRAPH - ,0xDE45 ,0x8F4A //CJK UNIFIED IDEOGRAPH - ,0xDE46 ,0x8F4B //CJK UNIFIED IDEOGRAPH - ,0xDE47 ,0x8F4C //CJK UNIFIED IDEOGRAPH - ,0xDE48 ,0x8F4D //CJK UNIFIED IDEOGRAPH - ,0xDE49 ,0x8F4E //CJK UNIFIED IDEOGRAPH - ,0xDE4A ,0x8F4F //CJK UNIFIED IDEOGRAPH - ,0xDE4B ,0x8F50 //CJK UNIFIED IDEOGRAPH - ,0xDE4C ,0x8F51 //CJK UNIFIED IDEOGRAPH - ,0xDE4D ,0x8F52 //CJK UNIFIED IDEOGRAPH - ,0xDE4E ,0x8F53 //CJK UNIFIED IDEOGRAPH - ,0xDE4F ,0x8F54 //CJK UNIFIED IDEOGRAPH - ,0xDE50 ,0x8F55 //CJK UNIFIED IDEOGRAPH - ,0xDE51 ,0x8F56 //CJK UNIFIED IDEOGRAPH - ,0xDE52 ,0x8F57 //CJK UNIFIED IDEOGRAPH - ,0xDE53 ,0x8F58 //CJK UNIFIED IDEOGRAPH - ,0xDE54 ,0x8F59 //CJK UNIFIED IDEOGRAPH - ,0xDE55 ,0x8F5A //CJK UNIFIED IDEOGRAPH - ,0xDE56 ,0x8F5B //CJK UNIFIED IDEOGRAPH - ,0xDE57 ,0x8F5C //CJK UNIFIED IDEOGRAPH - ,0xDE58 ,0x8F5D //CJK UNIFIED IDEOGRAPH - ,0xDE59 ,0x8F5E //CJK UNIFIED IDEOGRAPH - ,0xDE5A ,0x8F5F //CJK UNIFIED IDEOGRAPH - ,0xDE5B ,0x8F60 //CJK UNIFIED IDEOGRAPH - ,0xDE5C ,0x8F61 //CJK UNIFIED IDEOGRAPH - ,0xDE5D ,0x8F62 //CJK UNIFIED IDEOGRAPH - ,0xDE5E ,0x8F63 //CJK UNIFIED IDEOGRAPH - ,0xDE5F ,0x8F64 //CJK UNIFIED IDEOGRAPH - ,0xDE60 ,0x8F65 //CJK UNIFIED IDEOGRAPH - ,0xDE61 ,0x8F6A //CJK UNIFIED IDEOGRAPH - ,0xDE62 ,0x8F80 //CJK UNIFIED IDEOGRAPH - ,0xDE63 ,0x8F8C //CJK UNIFIED IDEOGRAPH - ,0xDE64 ,0x8F92 //CJK UNIFIED IDEOGRAPH - ,0xDE65 ,0x8F9D //CJK UNIFIED IDEOGRAPH - ,0xDE66 ,0x8FA0 //CJK UNIFIED IDEOGRAPH - ,0xDE67 ,0x8FA1 //CJK UNIFIED IDEOGRAPH - ,0xDE68 ,0x8FA2 //CJK UNIFIED IDEOGRAPH - ,0xDE69 ,0x8FA4 //CJK UNIFIED IDEOGRAPH - ,0xDE6A ,0x8FA5 //CJK UNIFIED IDEOGRAPH - ,0xDE6B ,0x8FA6 //CJK UNIFIED IDEOGRAPH - ,0xDE6C ,0x8FA7 //CJK UNIFIED IDEOGRAPH - ,0xDE6D ,0x8FAA //CJK UNIFIED IDEOGRAPH - ,0xDE6E ,0x8FAC //CJK UNIFIED IDEOGRAPH - ,0xDE6F ,0x8FAD //CJK UNIFIED IDEOGRAPH - ,0xDE70 ,0x8FAE //CJK UNIFIED IDEOGRAPH - ,0xDE71 ,0x8FAF //CJK UNIFIED IDEOGRAPH - ,0xDE72 ,0x8FB2 //CJK UNIFIED IDEOGRAPH - ,0xDE73 ,0x8FB3 //CJK UNIFIED IDEOGRAPH - ,0xDE74 ,0x8FB4 //CJK UNIFIED IDEOGRAPH - ,0xDE75 ,0x8FB5 //CJK UNIFIED IDEOGRAPH - ,0xDE76 ,0x8FB7 //CJK UNIFIED IDEOGRAPH - ,0xDE77 ,0x8FB8 //CJK UNIFIED IDEOGRAPH - ,0xDE78 ,0x8FBA //CJK UNIFIED IDEOGRAPH - ,0xDE79 ,0x8FBB //CJK UNIFIED IDEOGRAPH - ,0xDE7A ,0x8FBC //CJK UNIFIED IDEOGRAPH - ,0xDE7B ,0x8FBF //CJK UNIFIED IDEOGRAPH - ,0xDE7C ,0x8FC0 //CJK UNIFIED IDEOGRAPH - ,0xDE7D ,0x8FC3 //CJK UNIFIED IDEOGRAPH - ,0xDE7E ,0x8FC6 //CJK UNIFIED IDEOGRAPH - ,0xDE80 ,0x8FC9 //CJK UNIFIED IDEOGRAPH - ,0xDE81 ,0x8FCA //CJK UNIFIED IDEOGRAPH - ,0xDE82 ,0x8FCB //CJK UNIFIED IDEOGRAPH - ,0xDE83 ,0x8FCC //CJK UNIFIED IDEOGRAPH - ,0xDE84 ,0x8FCD //CJK UNIFIED IDEOGRAPH - ,0xDE85 ,0x8FCF //CJK UNIFIED IDEOGRAPH - ,0xDE86 ,0x8FD2 //CJK UNIFIED IDEOGRAPH - ,0xDE87 ,0x8FD6 //CJK UNIFIED IDEOGRAPH - ,0xDE88 ,0x8FD7 //CJK UNIFIED IDEOGRAPH - ,0xDE89 ,0x8FDA //CJK UNIFIED IDEOGRAPH - ,0xDE8A ,0x8FE0 //CJK UNIFIED IDEOGRAPH - ,0xDE8B ,0x8FE1 //CJK UNIFIED IDEOGRAPH - ,0xDE8C ,0x8FE3 //CJK UNIFIED IDEOGRAPH - ,0xDE8D ,0x8FE7 //CJK UNIFIED IDEOGRAPH - ,0xDE8E ,0x8FEC //CJK UNIFIED IDEOGRAPH - ,0xDE8F ,0x8FEF //CJK UNIFIED IDEOGRAPH - ,0xDE90 ,0x8FF1 //CJK UNIFIED IDEOGRAPH - ,0xDE91 ,0x8FF2 //CJK UNIFIED IDEOGRAPH - ,0xDE92 ,0x8FF4 //CJK UNIFIED IDEOGRAPH - ,0xDE93 ,0x8FF5 //CJK UNIFIED IDEOGRAPH - ,0xDE94 ,0x8FF6 //CJK UNIFIED IDEOGRAPH - ,0xDE95 ,0x8FFA //CJK UNIFIED IDEOGRAPH - ,0xDE96 ,0x8FFB //CJK UNIFIED IDEOGRAPH - ,0xDE97 ,0x8FFC //CJK UNIFIED IDEOGRAPH - ,0xDE98 ,0x8FFE //CJK UNIFIED IDEOGRAPH - ,0xDE99 ,0x8FFF //CJK UNIFIED IDEOGRAPH - ,0xDE9A ,0x9007 //CJK UNIFIED IDEOGRAPH - ,0xDE9B ,0x9008 //CJK UNIFIED IDEOGRAPH - ,0xDE9C ,0x900C //CJK UNIFIED IDEOGRAPH - ,0xDE9D ,0x900E //CJK UNIFIED IDEOGRAPH - ,0xDE9E ,0x9013 //CJK UNIFIED IDEOGRAPH - ,0xDE9F ,0x9015 //CJK UNIFIED IDEOGRAPH - ,0xDEA0 ,0x9018 //CJK UNIFIED IDEOGRAPH - ,0xDEA1 ,0x8556 //CJK UNIFIED IDEOGRAPH - ,0xDEA2 ,0x853B //CJK UNIFIED IDEOGRAPH - ,0xDEA3 ,0x84FF //CJK UNIFIED IDEOGRAPH - ,0xDEA4 ,0x84FC //CJK UNIFIED IDEOGRAPH - ,0xDEA5 ,0x8559 //CJK UNIFIED IDEOGRAPH - ,0xDEA6 ,0x8548 //CJK UNIFIED IDEOGRAPH - ,0xDEA7 ,0x8568 //CJK UNIFIED IDEOGRAPH - ,0xDEA8 ,0x8564 //CJK UNIFIED IDEOGRAPH - ,0xDEA9 ,0x855E //CJK UNIFIED IDEOGRAPH - ,0xDEAA ,0x857A //CJK UNIFIED IDEOGRAPH - ,0xDEAB ,0x77A2 //CJK UNIFIED IDEOGRAPH - ,0xDEAC ,0x8543 //CJK UNIFIED IDEOGRAPH - ,0xDEAD ,0x8572 //CJK UNIFIED IDEOGRAPH - ,0xDEAE ,0x857B //CJK UNIFIED IDEOGRAPH - ,0xDEAF ,0x85A4 //CJK UNIFIED IDEOGRAPH - ,0xDEB0 ,0x85A8 //CJK UNIFIED IDEOGRAPH - ,0xDEB1 ,0x8587 //CJK UNIFIED IDEOGRAPH - ,0xDEB2 ,0x858F //CJK UNIFIED IDEOGRAPH - ,0xDEB3 ,0x8579 //CJK UNIFIED IDEOGRAPH - ,0xDEB4 ,0x85AE //CJK UNIFIED IDEOGRAPH - ,0xDEB5 ,0x859C //CJK UNIFIED IDEOGRAPH - ,0xDEB6 ,0x8585 //CJK UNIFIED IDEOGRAPH - ,0xDEB7 ,0x85B9 //CJK UNIFIED IDEOGRAPH - ,0xDEB8 ,0x85B7 //CJK UNIFIED IDEOGRAPH - ,0xDEB9 ,0x85B0 //CJK UNIFIED IDEOGRAPH - ,0xDEBA ,0x85D3 //CJK UNIFIED IDEOGRAPH - ,0xDEBB ,0x85C1 //CJK UNIFIED IDEOGRAPH - ,0xDEBC ,0x85DC //CJK UNIFIED IDEOGRAPH - ,0xDEBD ,0x85FF //CJK UNIFIED IDEOGRAPH - ,0xDEBE ,0x8627 //CJK UNIFIED IDEOGRAPH - ,0xDEBF ,0x8605 //CJK UNIFIED IDEOGRAPH - ,0xDEC0 ,0x8629 //CJK UNIFIED IDEOGRAPH - ,0xDEC1 ,0x8616 //CJK UNIFIED IDEOGRAPH - ,0xDEC2 ,0x863C //CJK UNIFIED IDEOGRAPH - ,0xDEC3 ,0x5EFE //CJK UNIFIED IDEOGRAPH - ,0xDEC4 ,0x5F08 //CJK UNIFIED IDEOGRAPH - ,0xDEC5 ,0x593C //CJK UNIFIED IDEOGRAPH - ,0xDEC6 ,0x5941 //CJK UNIFIED IDEOGRAPH - ,0xDEC7 ,0x8037 //CJK UNIFIED IDEOGRAPH - ,0xDEC8 ,0x5955 //CJK UNIFIED IDEOGRAPH - ,0xDEC9 ,0x595A //CJK UNIFIED IDEOGRAPH - ,0xDECA ,0x5958 //CJK UNIFIED IDEOGRAPH - ,0xDECB ,0x530F //CJK UNIFIED IDEOGRAPH - ,0xDECC ,0x5C22 //CJK UNIFIED IDEOGRAPH - ,0xDECD ,0x5C25 //CJK UNIFIED IDEOGRAPH - ,0xDECE ,0x5C2C //CJK UNIFIED IDEOGRAPH - ,0xDECF ,0x5C34 //CJK UNIFIED IDEOGRAPH - ,0xDED0 ,0x624C //CJK UNIFIED IDEOGRAPH - ,0xDED1 ,0x626A //CJK UNIFIED IDEOGRAPH - ,0xDED2 ,0x629F //CJK UNIFIED IDEOGRAPH - ,0xDED3 ,0x62BB //CJK UNIFIED IDEOGRAPH - ,0xDED4 ,0x62CA //CJK UNIFIED IDEOGRAPH - ,0xDED5 ,0x62DA //CJK UNIFIED IDEOGRAPH - ,0xDED6 ,0x62D7 //CJK UNIFIED IDEOGRAPH - ,0xDED7 ,0x62EE //CJK UNIFIED IDEOGRAPH - ,0xDED8 ,0x6322 //CJK UNIFIED IDEOGRAPH - ,0xDED9 ,0x62F6 //CJK UNIFIED IDEOGRAPH - ,0xDEDA ,0x6339 //CJK UNIFIED IDEOGRAPH - ,0xDEDB ,0x634B //CJK UNIFIED IDEOGRAPH - ,0xDEDC ,0x6343 //CJK UNIFIED IDEOGRAPH - ,0xDEDD ,0x63AD //CJK UNIFIED IDEOGRAPH - ,0xDEDE ,0x63F6 //CJK UNIFIED IDEOGRAPH - ,0xDEDF ,0x6371 //CJK UNIFIED IDEOGRAPH - ,0xDEE0 ,0x637A //CJK UNIFIED IDEOGRAPH - ,0xDEE1 ,0x638E //CJK UNIFIED IDEOGRAPH - ,0xDEE2 ,0x63B4 //CJK UNIFIED IDEOGRAPH - ,0xDEE3 ,0x636D //CJK UNIFIED IDEOGRAPH - ,0xDEE4 ,0x63AC //CJK UNIFIED IDEOGRAPH - ,0xDEE5 ,0x638A //CJK UNIFIED IDEOGRAPH - ,0xDEE6 ,0x6369 //CJK UNIFIED IDEOGRAPH - ,0xDEE7 ,0x63AE //CJK UNIFIED IDEOGRAPH - ,0xDEE8 ,0x63BC //CJK UNIFIED IDEOGRAPH - ,0xDEE9 ,0x63F2 //CJK UNIFIED IDEOGRAPH - ,0xDEEA ,0x63F8 //CJK UNIFIED IDEOGRAPH - ,0xDEEB ,0x63E0 //CJK UNIFIED IDEOGRAPH - ,0xDEEC ,0x63FF //CJK UNIFIED IDEOGRAPH - ,0xDEED ,0x63C4 //CJK UNIFIED IDEOGRAPH - ,0xDEEE ,0x63DE //CJK UNIFIED IDEOGRAPH - ,0xDEEF ,0x63CE //CJK UNIFIED IDEOGRAPH - ,0xDEF0 ,0x6452 //CJK UNIFIED IDEOGRAPH - ,0xDEF1 ,0x63C6 //CJK UNIFIED IDEOGRAPH - ,0xDEF2 ,0x63BE //CJK UNIFIED IDEOGRAPH - ,0xDEF3 ,0x6445 //CJK UNIFIED IDEOGRAPH - ,0xDEF4 ,0x6441 //CJK UNIFIED IDEOGRAPH - ,0xDEF5 ,0x640B //CJK UNIFIED IDEOGRAPH - ,0xDEF6 ,0x641B //CJK UNIFIED IDEOGRAPH - ,0xDEF7 ,0x6420 //CJK UNIFIED IDEOGRAPH - ,0xDEF8 ,0x640C //CJK UNIFIED IDEOGRAPH - ,0xDEF9 ,0x6426 //CJK UNIFIED IDEOGRAPH - ,0xDEFA ,0x6421 //CJK UNIFIED IDEOGRAPH - ,0xDEFB ,0x645E //CJK UNIFIED IDEOGRAPH - ,0xDEFC ,0x6484 //CJK UNIFIED IDEOGRAPH - ,0xDEFD ,0x646D //CJK UNIFIED IDEOGRAPH - ,0xDEFE ,0x6496 //CJK UNIFIED IDEOGRAPH - ,0xDF40 ,0x9019 //CJK UNIFIED IDEOGRAPH - ,0xDF41 ,0x901C //CJK UNIFIED IDEOGRAPH - ,0xDF42 ,0x9023 //CJK UNIFIED IDEOGRAPH - ,0xDF43 ,0x9024 //CJK UNIFIED IDEOGRAPH - ,0xDF44 ,0x9025 //CJK UNIFIED IDEOGRAPH - ,0xDF45 ,0x9027 //CJK UNIFIED IDEOGRAPH - ,0xDF46 ,0x9028 //CJK UNIFIED IDEOGRAPH - ,0xDF47 ,0x9029 //CJK UNIFIED IDEOGRAPH - ,0xDF48 ,0x902A //CJK UNIFIED IDEOGRAPH - ,0xDF49 ,0x902B //CJK UNIFIED IDEOGRAPH - ,0xDF4A ,0x902C //CJK UNIFIED IDEOGRAPH - ,0xDF4B ,0x9030 //CJK UNIFIED IDEOGRAPH - ,0xDF4C ,0x9031 //CJK UNIFIED IDEOGRAPH - ,0xDF4D ,0x9032 //CJK UNIFIED IDEOGRAPH - ,0xDF4E ,0x9033 //CJK UNIFIED IDEOGRAPH - ,0xDF4F ,0x9034 //CJK UNIFIED IDEOGRAPH - ,0xDF50 ,0x9037 //CJK UNIFIED IDEOGRAPH - ,0xDF51 ,0x9039 //CJK UNIFIED IDEOGRAPH - ,0xDF52 ,0x903A //CJK UNIFIED IDEOGRAPH - ,0xDF53 ,0x903D //CJK UNIFIED IDEOGRAPH - ,0xDF54 ,0x903F //CJK UNIFIED IDEOGRAPH - ,0xDF55 ,0x9040 //CJK UNIFIED IDEOGRAPH - ,0xDF56 ,0x9043 //CJK UNIFIED IDEOGRAPH - ,0xDF57 ,0x9045 //CJK UNIFIED IDEOGRAPH - ,0xDF58 ,0x9046 //CJK UNIFIED IDEOGRAPH - ,0xDF59 ,0x9048 //CJK UNIFIED IDEOGRAPH - ,0xDF5A ,0x9049 //CJK UNIFIED IDEOGRAPH - ,0xDF5B ,0x904A //CJK UNIFIED IDEOGRAPH - ,0xDF5C ,0x904B //CJK UNIFIED IDEOGRAPH - ,0xDF5D ,0x904C //CJK UNIFIED IDEOGRAPH - ,0xDF5E ,0x904E //CJK UNIFIED IDEOGRAPH - ,0xDF5F ,0x9054 //CJK UNIFIED IDEOGRAPH - ,0xDF60 ,0x9055 //CJK UNIFIED IDEOGRAPH - ,0xDF61 ,0x9056 //CJK UNIFIED IDEOGRAPH - ,0xDF62 ,0x9059 //CJK UNIFIED IDEOGRAPH - ,0xDF63 ,0x905A //CJK UNIFIED IDEOGRAPH - ,0xDF64 ,0x905C //CJK UNIFIED IDEOGRAPH - ,0xDF65 ,0x905D //CJK UNIFIED IDEOGRAPH - ,0xDF66 ,0x905E //CJK UNIFIED IDEOGRAPH - ,0xDF67 ,0x905F //CJK UNIFIED IDEOGRAPH - ,0xDF68 ,0x9060 //CJK UNIFIED IDEOGRAPH - ,0xDF69 ,0x9061 //CJK UNIFIED IDEOGRAPH - ,0xDF6A ,0x9064 //CJK UNIFIED IDEOGRAPH - ,0xDF6B ,0x9066 //CJK UNIFIED IDEOGRAPH - ,0xDF6C ,0x9067 //CJK UNIFIED IDEOGRAPH - ,0xDF6D ,0x9069 //CJK UNIFIED IDEOGRAPH - ,0xDF6E ,0x906A //CJK UNIFIED IDEOGRAPH - ,0xDF6F ,0x906B //CJK UNIFIED IDEOGRAPH - ,0xDF70 ,0x906C //CJK UNIFIED IDEOGRAPH - ,0xDF71 ,0x906F //CJK UNIFIED IDEOGRAPH - ,0xDF72 ,0x9070 //CJK UNIFIED IDEOGRAPH - ,0xDF73 ,0x9071 //CJK UNIFIED IDEOGRAPH - ,0xDF74 ,0x9072 //CJK UNIFIED IDEOGRAPH - ,0xDF75 ,0x9073 //CJK UNIFIED IDEOGRAPH - ,0xDF76 ,0x9076 //CJK UNIFIED IDEOGRAPH - ,0xDF77 ,0x9077 //CJK UNIFIED IDEOGRAPH - ,0xDF78 ,0x9078 //CJK UNIFIED IDEOGRAPH - ,0xDF79 ,0x9079 //CJK UNIFIED IDEOGRAPH - ,0xDF7A ,0x907A //CJK UNIFIED IDEOGRAPH - ,0xDF7B ,0x907B //CJK UNIFIED IDEOGRAPH - ,0xDF7C ,0x907C //CJK UNIFIED IDEOGRAPH - ,0xDF7D ,0x907E //CJK UNIFIED IDEOGRAPH - ,0xDF7E ,0x9081 //CJK UNIFIED IDEOGRAPH - ,0xDF80 ,0x9084 //CJK UNIFIED IDEOGRAPH - ,0xDF81 ,0x9085 //CJK UNIFIED IDEOGRAPH - ,0xDF82 ,0x9086 //CJK UNIFIED IDEOGRAPH - ,0xDF83 ,0x9087 //CJK UNIFIED IDEOGRAPH - ,0xDF84 ,0x9089 //CJK UNIFIED IDEOGRAPH - ,0xDF85 ,0x908A //CJK UNIFIED IDEOGRAPH - ,0xDF86 ,0x908C //CJK UNIFIED IDEOGRAPH - ,0xDF87 ,0x908D //CJK UNIFIED IDEOGRAPH - ,0xDF88 ,0x908E //CJK UNIFIED IDEOGRAPH - ,0xDF89 ,0x908F //CJK UNIFIED IDEOGRAPH - ,0xDF8A ,0x9090 //CJK UNIFIED IDEOGRAPH - ,0xDF8B ,0x9092 //CJK UNIFIED IDEOGRAPH - ,0xDF8C ,0x9094 //CJK UNIFIED IDEOGRAPH - ,0xDF8D ,0x9096 //CJK UNIFIED IDEOGRAPH - ,0xDF8E ,0x9098 //CJK UNIFIED IDEOGRAPH - ,0xDF8F ,0x909A //CJK UNIFIED IDEOGRAPH - ,0xDF90 ,0x909C //CJK UNIFIED IDEOGRAPH - ,0xDF91 ,0x909E //CJK UNIFIED IDEOGRAPH - ,0xDF92 ,0x909F //CJK UNIFIED IDEOGRAPH - ,0xDF93 ,0x90A0 //CJK UNIFIED IDEOGRAPH - ,0xDF94 ,0x90A4 //CJK UNIFIED IDEOGRAPH - ,0xDF95 ,0x90A5 //CJK UNIFIED IDEOGRAPH - ,0xDF96 ,0x90A7 //CJK UNIFIED IDEOGRAPH - ,0xDF97 ,0x90A8 //CJK UNIFIED IDEOGRAPH - ,0xDF98 ,0x90A9 //CJK UNIFIED IDEOGRAPH - ,0xDF99 ,0x90AB //CJK UNIFIED IDEOGRAPH - ,0xDF9A ,0x90AD //CJK UNIFIED IDEOGRAPH - ,0xDF9B ,0x90B2 //CJK UNIFIED IDEOGRAPH - ,0xDF9C ,0x90B7 //CJK UNIFIED IDEOGRAPH - ,0xDF9D ,0x90BC //CJK UNIFIED IDEOGRAPH - ,0xDF9E ,0x90BD //CJK UNIFIED IDEOGRAPH - ,0xDF9F ,0x90BF //CJK UNIFIED IDEOGRAPH - ,0xDFA0 ,0x90C0 //CJK UNIFIED IDEOGRAPH - ,0xDFA1 ,0x647A //CJK UNIFIED IDEOGRAPH - ,0xDFA2 ,0x64B7 //CJK UNIFIED IDEOGRAPH - ,0xDFA3 ,0x64B8 //CJK UNIFIED IDEOGRAPH - ,0xDFA4 ,0x6499 //CJK UNIFIED IDEOGRAPH - ,0xDFA5 ,0x64BA //CJK UNIFIED IDEOGRAPH - ,0xDFA6 ,0x64C0 //CJK UNIFIED IDEOGRAPH - ,0xDFA7 ,0x64D0 //CJK UNIFIED IDEOGRAPH - ,0xDFA8 ,0x64D7 //CJK UNIFIED IDEOGRAPH - ,0xDFA9 ,0x64E4 //CJK UNIFIED IDEOGRAPH - ,0xDFAA ,0x64E2 //CJK UNIFIED IDEOGRAPH - ,0xDFAB ,0x6509 //CJK UNIFIED IDEOGRAPH - ,0xDFAC ,0x6525 //CJK UNIFIED IDEOGRAPH - ,0xDFAD ,0x652E //CJK UNIFIED IDEOGRAPH - ,0xDFAE ,0x5F0B //CJK UNIFIED IDEOGRAPH - ,0xDFAF ,0x5FD2 //CJK UNIFIED IDEOGRAPH - ,0xDFB0 ,0x7519 //CJK UNIFIED IDEOGRAPH - ,0xDFB1 ,0x5F11 //CJK UNIFIED IDEOGRAPH - ,0xDFB2 ,0x535F //CJK UNIFIED IDEOGRAPH - ,0xDFB3 ,0x53F1 //CJK UNIFIED IDEOGRAPH - ,0xDFB4 ,0x53FD //CJK UNIFIED IDEOGRAPH - ,0xDFB5 ,0x53E9 //CJK UNIFIED IDEOGRAPH - ,0xDFB6 ,0x53E8 //CJK UNIFIED IDEOGRAPH - ,0xDFB7 ,0x53FB //CJK UNIFIED IDEOGRAPH - ,0xDFB8 ,0x5412 //CJK UNIFIED IDEOGRAPH - ,0xDFB9 ,0x5416 //CJK UNIFIED IDEOGRAPH - ,0xDFBA ,0x5406 //CJK UNIFIED IDEOGRAPH - ,0xDFBB ,0x544B //CJK UNIFIED IDEOGRAPH - ,0xDFBC ,0x5452 //CJK UNIFIED IDEOGRAPH - ,0xDFBD ,0x5453 //CJK UNIFIED IDEOGRAPH - ,0xDFBE ,0x5454 //CJK UNIFIED IDEOGRAPH - ,0xDFBF ,0x5456 //CJK UNIFIED IDEOGRAPH - ,0xDFC0 ,0x5443 //CJK UNIFIED IDEOGRAPH - ,0xDFC1 ,0x5421 //CJK UNIFIED IDEOGRAPH - ,0xDFC2 ,0x5457 //CJK UNIFIED IDEOGRAPH - ,0xDFC3 ,0x5459 //CJK UNIFIED IDEOGRAPH - ,0xDFC4 ,0x5423 //CJK UNIFIED IDEOGRAPH - ,0xDFC5 ,0x5432 //CJK UNIFIED IDEOGRAPH - ,0xDFC6 ,0x5482 //CJK UNIFIED IDEOGRAPH - ,0xDFC7 ,0x5494 //CJK UNIFIED IDEOGRAPH - ,0xDFC8 ,0x5477 //CJK UNIFIED IDEOGRAPH - ,0xDFC9 ,0x5471 //CJK UNIFIED IDEOGRAPH - ,0xDFCA ,0x5464 //CJK UNIFIED IDEOGRAPH - ,0xDFCB ,0x549A //CJK UNIFIED IDEOGRAPH - ,0xDFCC ,0x549B //CJK UNIFIED IDEOGRAPH - ,0xDFCD ,0x5484 //CJK UNIFIED IDEOGRAPH - ,0xDFCE ,0x5476 //CJK UNIFIED IDEOGRAPH - ,0xDFCF ,0x5466 //CJK UNIFIED IDEOGRAPH - ,0xDFD0 ,0x549D //CJK UNIFIED IDEOGRAPH - ,0xDFD1 ,0x54D0 //CJK UNIFIED IDEOGRAPH - ,0xDFD2 ,0x54AD //CJK UNIFIED IDEOGRAPH - ,0xDFD3 ,0x54C2 //CJK UNIFIED IDEOGRAPH - ,0xDFD4 ,0x54B4 //CJK UNIFIED IDEOGRAPH - ,0xDFD5 ,0x54D2 //CJK UNIFIED IDEOGRAPH - ,0xDFD6 ,0x54A7 //CJK UNIFIED IDEOGRAPH - ,0xDFD7 ,0x54A6 //CJK UNIFIED IDEOGRAPH - ,0xDFD8 ,0x54D3 //CJK UNIFIED IDEOGRAPH - ,0xDFD9 ,0x54D4 //CJK UNIFIED IDEOGRAPH - ,0xDFDA ,0x5472 //CJK UNIFIED IDEOGRAPH - ,0xDFDB ,0x54A3 //CJK UNIFIED IDEOGRAPH - ,0xDFDC ,0x54D5 //CJK UNIFIED IDEOGRAPH - ,0xDFDD ,0x54BB //CJK UNIFIED IDEOGRAPH - ,0xDFDE ,0x54BF //CJK UNIFIED IDEOGRAPH - ,0xDFDF ,0x54CC //CJK UNIFIED IDEOGRAPH - ,0xDFE0 ,0x54D9 //CJK UNIFIED IDEOGRAPH - ,0xDFE1 ,0x54DA //CJK UNIFIED IDEOGRAPH - ,0xDFE2 ,0x54DC //CJK UNIFIED IDEOGRAPH - ,0xDFE3 ,0x54A9 //CJK UNIFIED IDEOGRAPH - ,0xDFE4 ,0x54AA //CJK UNIFIED IDEOGRAPH - ,0xDFE5 ,0x54A4 //CJK UNIFIED IDEOGRAPH - ,0xDFE6 ,0x54DD //CJK UNIFIED IDEOGRAPH - ,0xDFE7 ,0x54CF //CJK UNIFIED IDEOGRAPH - ,0xDFE8 ,0x54DE //CJK UNIFIED IDEOGRAPH - ,0xDFE9 ,0x551B //CJK UNIFIED IDEOGRAPH - ,0xDFEA ,0x54E7 //CJK UNIFIED IDEOGRAPH - ,0xDFEB ,0x5520 //CJK UNIFIED IDEOGRAPH - ,0xDFEC ,0x54FD //CJK UNIFIED IDEOGRAPH - ,0xDFED ,0x5514 //CJK UNIFIED IDEOGRAPH - ,0xDFEE ,0x54F3 //CJK UNIFIED IDEOGRAPH - ,0xDFEF ,0x5522 //CJK UNIFIED IDEOGRAPH - ,0xDFF0 ,0x5523 //CJK UNIFIED IDEOGRAPH - ,0xDFF1 ,0x550F //CJK UNIFIED IDEOGRAPH - ,0xDFF2 ,0x5511 //CJK UNIFIED IDEOGRAPH - ,0xDFF3 ,0x5527 //CJK UNIFIED IDEOGRAPH - ,0xDFF4 ,0x552A //CJK UNIFIED IDEOGRAPH - ,0xDFF5 ,0x5567 //CJK UNIFIED IDEOGRAPH - ,0xDFF6 ,0x558F //CJK UNIFIED IDEOGRAPH - ,0xDFF7 ,0x55B5 //CJK UNIFIED IDEOGRAPH - ,0xDFF8 ,0x5549 //CJK UNIFIED IDEOGRAPH - ,0xDFF9 ,0x556D //CJK UNIFIED IDEOGRAPH - ,0xDFFA ,0x5541 //CJK UNIFIED IDEOGRAPH - ,0xDFFB ,0x5555 //CJK UNIFIED IDEOGRAPH - ,0xDFFC ,0x553F //CJK UNIFIED IDEOGRAPH - ,0xDFFD ,0x5550 //CJK UNIFIED IDEOGRAPH - ,0xDFFE ,0x553C //CJK UNIFIED IDEOGRAPH - ,0xE040 ,0x90C2 //CJK UNIFIED IDEOGRAPH - ,0xE041 ,0x90C3 //CJK UNIFIED IDEOGRAPH - ,0xE042 ,0x90C6 //CJK UNIFIED IDEOGRAPH - ,0xE043 ,0x90C8 //CJK UNIFIED IDEOGRAPH - ,0xE044 ,0x90C9 //CJK UNIFIED IDEOGRAPH - ,0xE045 ,0x90CB //CJK UNIFIED IDEOGRAPH - ,0xE046 ,0x90CC //CJK UNIFIED IDEOGRAPH - ,0xE047 ,0x90CD //CJK UNIFIED IDEOGRAPH - ,0xE048 ,0x90D2 //CJK UNIFIED IDEOGRAPH - ,0xE049 ,0x90D4 //CJK UNIFIED IDEOGRAPH - ,0xE04A ,0x90D5 //CJK UNIFIED IDEOGRAPH - ,0xE04B ,0x90D6 //CJK UNIFIED IDEOGRAPH - ,0xE04C ,0x90D8 //CJK UNIFIED IDEOGRAPH - ,0xE04D ,0x90D9 //CJK UNIFIED IDEOGRAPH - ,0xE04E ,0x90DA //CJK UNIFIED IDEOGRAPH - ,0xE04F ,0x90DE //CJK UNIFIED IDEOGRAPH - ,0xE050 ,0x90DF //CJK UNIFIED IDEOGRAPH - ,0xE051 ,0x90E0 //CJK UNIFIED IDEOGRAPH - ,0xE052 ,0x90E3 //CJK UNIFIED IDEOGRAPH - ,0xE053 ,0x90E4 //CJK UNIFIED IDEOGRAPH - ,0xE054 ,0x90E5 //CJK UNIFIED IDEOGRAPH - ,0xE055 ,0x90E9 //CJK UNIFIED IDEOGRAPH - ,0xE056 ,0x90EA //CJK UNIFIED IDEOGRAPH - ,0xE057 ,0x90EC //CJK UNIFIED IDEOGRAPH - ,0xE058 ,0x90EE //CJK UNIFIED IDEOGRAPH - ,0xE059 ,0x90F0 //CJK UNIFIED IDEOGRAPH - ,0xE05A ,0x90F1 //CJK UNIFIED IDEOGRAPH - ,0xE05B ,0x90F2 //CJK UNIFIED IDEOGRAPH - ,0xE05C ,0x90F3 //CJK UNIFIED IDEOGRAPH - ,0xE05D ,0x90F5 //CJK UNIFIED IDEOGRAPH - ,0xE05E ,0x90F6 //CJK UNIFIED IDEOGRAPH - ,0xE05F ,0x90F7 //CJK UNIFIED IDEOGRAPH - ,0xE060 ,0x90F9 //CJK UNIFIED IDEOGRAPH - ,0xE061 ,0x90FA //CJK UNIFIED IDEOGRAPH - ,0xE062 ,0x90FB //CJK UNIFIED IDEOGRAPH - ,0xE063 ,0x90FC //CJK UNIFIED IDEOGRAPH - ,0xE064 ,0x90FF //CJK UNIFIED IDEOGRAPH - ,0xE065 ,0x9100 //CJK UNIFIED IDEOGRAPH - ,0xE066 ,0x9101 //CJK UNIFIED IDEOGRAPH - ,0xE067 ,0x9103 //CJK UNIFIED IDEOGRAPH - ,0xE068 ,0x9105 //CJK UNIFIED IDEOGRAPH - ,0xE069 ,0x9106 //CJK UNIFIED IDEOGRAPH - ,0xE06A ,0x9107 //CJK UNIFIED IDEOGRAPH - ,0xE06B ,0x9108 //CJK UNIFIED IDEOGRAPH - ,0xE06C ,0x9109 //CJK UNIFIED IDEOGRAPH - ,0xE06D ,0x910A //CJK UNIFIED IDEOGRAPH - ,0xE06E ,0x910B //CJK UNIFIED IDEOGRAPH - ,0xE06F ,0x910C //CJK UNIFIED IDEOGRAPH - ,0xE070 ,0x910D //CJK UNIFIED IDEOGRAPH - ,0xE071 ,0x910E //CJK UNIFIED IDEOGRAPH - ,0xE072 ,0x910F //CJK UNIFIED IDEOGRAPH - ,0xE073 ,0x9110 //CJK UNIFIED IDEOGRAPH - ,0xE074 ,0x9111 //CJK UNIFIED IDEOGRAPH - ,0xE075 ,0x9112 //CJK UNIFIED IDEOGRAPH - ,0xE076 ,0x9113 //CJK UNIFIED IDEOGRAPH - ,0xE077 ,0x9114 //CJK UNIFIED IDEOGRAPH - ,0xE078 ,0x9115 //CJK UNIFIED IDEOGRAPH - ,0xE079 ,0x9116 //CJK UNIFIED IDEOGRAPH - ,0xE07A ,0x9117 //CJK UNIFIED IDEOGRAPH - ,0xE07B ,0x9118 //CJK UNIFIED IDEOGRAPH - ,0xE07C ,0x911A //CJK UNIFIED IDEOGRAPH - ,0xE07D ,0x911B //CJK UNIFIED IDEOGRAPH - ,0xE07E ,0x911C //CJK UNIFIED IDEOGRAPH - ,0xE080 ,0x911D //CJK UNIFIED IDEOGRAPH - ,0xE081 ,0x911F //CJK UNIFIED IDEOGRAPH - ,0xE082 ,0x9120 //CJK UNIFIED IDEOGRAPH - ,0xE083 ,0x9121 //CJK UNIFIED IDEOGRAPH - ,0xE084 ,0x9124 //CJK UNIFIED IDEOGRAPH - ,0xE085 ,0x9125 //CJK UNIFIED IDEOGRAPH - ,0xE086 ,0x9126 //CJK UNIFIED IDEOGRAPH - ,0xE087 ,0x9127 //CJK UNIFIED IDEOGRAPH - ,0xE088 ,0x9128 //CJK UNIFIED IDEOGRAPH - ,0xE089 ,0x9129 //CJK UNIFIED IDEOGRAPH - ,0xE08A ,0x912A //CJK UNIFIED IDEOGRAPH - ,0xE08B ,0x912B //CJK UNIFIED IDEOGRAPH - ,0xE08C ,0x912C //CJK UNIFIED IDEOGRAPH - ,0xE08D ,0x912D //CJK UNIFIED IDEOGRAPH - ,0xE08E ,0x912E //CJK UNIFIED IDEOGRAPH - ,0xE08F ,0x9130 //CJK UNIFIED IDEOGRAPH - ,0xE090 ,0x9132 //CJK UNIFIED IDEOGRAPH - ,0xE091 ,0x9133 //CJK UNIFIED IDEOGRAPH - ,0xE092 ,0x9134 //CJK UNIFIED IDEOGRAPH - ,0xE093 ,0x9135 //CJK UNIFIED IDEOGRAPH - ,0xE094 ,0x9136 //CJK UNIFIED IDEOGRAPH - ,0xE095 ,0x9137 //CJK UNIFIED IDEOGRAPH - ,0xE096 ,0x9138 //CJK UNIFIED IDEOGRAPH - ,0xE097 ,0x913A //CJK UNIFIED IDEOGRAPH - ,0xE098 ,0x913B //CJK UNIFIED IDEOGRAPH - ,0xE099 ,0x913C //CJK UNIFIED IDEOGRAPH - ,0xE09A ,0x913D //CJK UNIFIED IDEOGRAPH - ,0xE09B ,0x913E //CJK UNIFIED IDEOGRAPH - ,0xE09C ,0x913F //CJK UNIFIED IDEOGRAPH - ,0xE09D ,0x9140 //CJK UNIFIED IDEOGRAPH - ,0xE09E ,0x9141 //CJK UNIFIED IDEOGRAPH - ,0xE09F ,0x9142 //CJK UNIFIED IDEOGRAPH - ,0xE0A0 ,0x9144 //CJK UNIFIED IDEOGRAPH - ,0xE0A1 ,0x5537 //CJK UNIFIED IDEOGRAPH - ,0xE0A2 ,0x5556 //CJK UNIFIED IDEOGRAPH - ,0xE0A3 ,0x5575 //CJK UNIFIED IDEOGRAPH - ,0xE0A4 ,0x5576 //CJK UNIFIED IDEOGRAPH - ,0xE0A5 ,0x5577 //CJK UNIFIED IDEOGRAPH - ,0xE0A6 ,0x5533 //CJK UNIFIED IDEOGRAPH - ,0xE0A7 ,0x5530 //CJK UNIFIED IDEOGRAPH - ,0xE0A8 ,0x555C //CJK UNIFIED IDEOGRAPH - ,0xE0A9 ,0x558B //CJK UNIFIED IDEOGRAPH - ,0xE0AA ,0x55D2 //CJK UNIFIED IDEOGRAPH - ,0xE0AB ,0x5583 //CJK UNIFIED IDEOGRAPH - ,0xE0AC ,0x55B1 //CJK UNIFIED IDEOGRAPH - ,0xE0AD ,0x55B9 //CJK UNIFIED IDEOGRAPH - ,0xE0AE ,0x5588 //CJK UNIFIED IDEOGRAPH - ,0xE0AF ,0x5581 //CJK UNIFIED IDEOGRAPH - ,0xE0B0 ,0x559F //CJK UNIFIED IDEOGRAPH - ,0xE0B1 ,0x557E //CJK UNIFIED IDEOGRAPH - ,0xE0B2 ,0x55D6 //CJK UNIFIED IDEOGRAPH - ,0xE0B3 ,0x5591 //CJK UNIFIED IDEOGRAPH - ,0xE0B4 ,0x557B //CJK UNIFIED IDEOGRAPH - ,0xE0B5 ,0x55DF //CJK UNIFIED IDEOGRAPH - ,0xE0B6 ,0x55BD //CJK UNIFIED IDEOGRAPH - ,0xE0B7 ,0x55BE //CJK UNIFIED IDEOGRAPH - ,0xE0B8 ,0x5594 //CJK UNIFIED IDEOGRAPH - ,0xE0B9 ,0x5599 //CJK UNIFIED IDEOGRAPH - ,0xE0BA ,0x55EA //CJK UNIFIED IDEOGRAPH - ,0xE0BB ,0x55F7 //CJK UNIFIED IDEOGRAPH - ,0xE0BC ,0x55C9 //CJK UNIFIED IDEOGRAPH - ,0xE0BD ,0x561F //CJK UNIFIED IDEOGRAPH - ,0xE0BE ,0x55D1 //CJK UNIFIED IDEOGRAPH - ,0xE0BF ,0x55EB //CJK UNIFIED IDEOGRAPH - ,0xE0C0 ,0x55EC //CJK UNIFIED IDEOGRAPH - ,0xE0C1 ,0x55D4 //CJK UNIFIED IDEOGRAPH - ,0xE0C2 ,0x55E6 //CJK UNIFIED IDEOGRAPH - ,0xE0C3 ,0x55DD //CJK UNIFIED IDEOGRAPH - ,0xE0C4 ,0x55C4 //CJK UNIFIED IDEOGRAPH - ,0xE0C5 ,0x55EF //CJK UNIFIED IDEOGRAPH - ,0xE0C6 ,0x55E5 //CJK UNIFIED IDEOGRAPH - ,0xE0C7 ,0x55F2 //CJK UNIFIED IDEOGRAPH - ,0xE0C8 ,0x55F3 //CJK UNIFIED IDEOGRAPH - ,0xE0C9 ,0x55CC //CJK UNIFIED IDEOGRAPH - ,0xE0CA ,0x55CD //CJK UNIFIED IDEOGRAPH - ,0xE0CB ,0x55E8 //CJK UNIFIED IDEOGRAPH - ,0xE0CC ,0x55F5 //CJK UNIFIED IDEOGRAPH - ,0xE0CD ,0x55E4 //CJK UNIFIED IDEOGRAPH - ,0xE0CE ,0x8F94 //CJK UNIFIED IDEOGRAPH - ,0xE0CF ,0x561E //CJK UNIFIED IDEOGRAPH - ,0xE0D0 ,0x5608 //CJK UNIFIED IDEOGRAPH - ,0xE0D1 ,0x560C //CJK UNIFIED IDEOGRAPH - ,0xE0D2 ,0x5601 //CJK UNIFIED IDEOGRAPH - ,0xE0D3 ,0x5624 //CJK UNIFIED IDEOGRAPH - ,0xE0D4 ,0x5623 //CJK UNIFIED IDEOGRAPH - ,0xE0D5 ,0x55FE //CJK UNIFIED IDEOGRAPH - ,0xE0D6 ,0x5600 //CJK UNIFIED IDEOGRAPH - ,0xE0D7 ,0x5627 //CJK UNIFIED IDEOGRAPH - ,0xE0D8 ,0x562D //CJK UNIFIED IDEOGRAPH - ,0xE0D9 ,0x5658 //CJK UNIFIED IDEOGRAPH - ,0xE0DA ,0x5639 //CJK UNIFIED IDEOGRAPH - ,0xE0DB ,0x5657 //CJK UNIFIED IDEOGRAPH - ,0xE0DC ,0x562C //CJK UNIFIED IDEOGRAPH - ,0xE0DD ,0x564D //CJK UNIFIED IDEOGRAPH - ,0xE0DE ,0x5662 //CJK UNIFIED IDEOGRAPH - ,0xE0DF ,0x5659 //CJK UNIFIED IDEOGRAPH - ,0xE0E0 ,0x565C //CJK UNIFIED IDEOGRAPH - ,0xE0E1 ,0x564C //CJK UNIFIED IDEOGRAPH - ,0xE0E2 ,0x5654 //CJK UNIFIED IDEOGRAPH - ,0xE0E3 ,0x5686 //CJK UNIFIED IDEOGRAPH - ,0xE0E4 ,0x5664 //CJK UNIFIED IDEOGRAPH - ,0xE0E5 ,0x5671 //CJK UNIFIED IDEOGRAPH - ,0xE0E6 ,0x566B //CJK UNIFIED IDEOGRAPH - ,0xE0E7 ,0x567B //CJK UNIFIED IDEOGRAPH - ,0xE0E8 ,0x567C //CJK UNIFIED IDEOGRAPH - ,0xE0E9 ,0x5685 //CJK UNIFIED IDEOGRAPH - ,0xE0EA ,0x5693 //CJK UNIFIED IDEOGRAPH - ,0xE0EB ,0x56AF //CJK UNIFIED IDEOGRAPH - ,0xE0EC ,0x56D4 //CJK UNIFIED IDEOGRAPH - ,0xE0ED ,0x56D7 //CJK UNIFIED IDEOGRAPH - ,0xE0EE ,0x56DD //CJK UNIFIED IDEOGRAPH - ,0xE0EF ,0x56E1 //CJK UNIFIED IDEOGRAPH - ,0xE0F0 ,0x56F5 //CJK UNIFIED IDEOGRAPH - ,0xE0F1 ,0x56EB //CJK UNIFIED IDEOGRAPH - ,0xE0F2 ,0x56F9 //CJK UNIFIED IDEOGRAPH - ,0xE0F3 ,0x56FF //CJK UNIFIED IDEOGRAPH - ,0xE0F4 ,0x5704 //CJK UNIFIED IDEOGRAPH - ,0xE0F5 ,0x570A //CJK UNIFIED IDEOGRAPH - ,0xE0F6 ,0x5709 //CJK UNIFIED IDEOGRAPH - ,0xE0F7 ,0x571C //CJK UNIFIED IDEOGRAPH - ,0xE0F8 ,0x5E0F //CJK UNIFIED IDEOGRAPH - ,0xE0F9 ,0x5E19 //CJK UNIFIED IDEOGRAPH - ,0xE0FA ,0x5E14 //CJK UNIFIED IDEOGRAPH - ,0xE0FB ,0x5E11 //CJK UNIFIED IDEOGRAPH - ,0xE0FC ,0x5E31 //CJK UNIFIED IDEOGRAPH - ,0xE0FD ,0x5E3B //CJK UNIFIED IDEOGRAPH - ,0xE0FE ,0x5E3C //CJK UNIFIED IDEOGRAPH - ,0xE140 ,0x9145 //CJK UNIFIED IDEOGRAPH - ,0xE141 ,0x9147 //CJK UNIFIED IDEOGRAPH - ,0xE142 ,0x9148 //CJK UNIFIED IDEOGRAPH - ,0xE143 ,0x9151 //CJK UNIFIED IDEOGRAPH - ,0xE144 ,0x9153 //CJK UNIFIED IDEOGRAPH - ,0xE145 ,0x9154 //CJK UNIFIED IDEOGRAPH - ,0xE146 ,0x9155 //CJK UNIFIED IDEOGRAPH - ,0xE147 ,0x9156 //CJK UNIFIED IDEOGRAPH - ,0xE148 ,0x9158 //CJK UNIFIED IDEOGRAPH - ,0xE149 ,0x9159 //CJK UNIFIED IDEOGRAPH - ,0xE14A ,0x915B //CJK UNIFIED IDEOGRAPH - ,0xE14B ,0x915C //CJK UNIFIED IDEOGRAPH - ,0xE14C ,0x915F //CJK UNIFIED IDEOGRAPH - ,0xE14D ,0x9160 //CJK UNIFIED IDEOGRAPH - ,0xE14E ,0x9166 //CJK UNIFIED IDEOGRAPH - ,0xE14F ,0x9167 //CJK UNIFIED IDEOGRAPH - ,0xE150 ,0x9168 //CJK UNIFIED IDEOGRAPH - ,0xE151 ,0x916B //CJK UNIFIED IDEOGRAPH - ,0xE152 ,0x916D //CJK UNIFIED IDEOGRAPH - ,0xE153 ,0x9173 //CJK UNIFIED IDEOGRAPH - ,0xE154 ,0x917A //CJK UNIFIED IDEOGRAPH - ,0xE155 ,0x917B //CJK UNIFIED IDEOGRAPH - ,0xE156 ,0x917C //CJK UNIFIED IDEOGRAPH - ,0xE157 ,0x9180 //CJK UNIFIED IDEOGRAPH - ,0xE158 ,0x9181 //CJK UNIFIED IDEOGRAPH - ,0xE159 ,0x9182 //CJK UNIFIED IDEOGRAPH - ,0xE15A ,0x9183 //CJK UNIFIED IDEOGRAPH - ,0xE15B ,0x9184 //CJK UNIFIED IDEOGRAPH - ,0xE15C ,0x9186 //CJK UNIFIED IDEOGRAPH - ,0xE15D ,0x9188 //CJK UNIFIED IDEOGRAPH - ,0xE15E ,0x918A //CJK UNIFIED IDEOGRAPH - ,0xE15F ,0x918E //CJK UNIFIED IDEOGRAPH - ,0xE160 ,0x918F //CJK UNIFIED IDEOGRAPH - ,0xE161 ,0x9193 //CJK UNIFIED IDEOGRAPH - ,0xE162 ,0x9194 //CJK UNIFIED IDEOGRAPH - ,0xE163 ,0x9195 //CJK UNIFIED IDEOGRAPH - ,0xE164 ,0x9196 //CJK UNIFIED IDEOGRAPH - ,0xE165 ,0x9197 //CJK UNIFIED IDEOGRAPH - ,0xE166 ,0x9198 //CJK UNIFIED IDEOGRAPH - ,0xE167 ,0x9199 //CJK UNIFIED IDEOGRAPH - ,0xE168 ,0x919C //CJK UNIFIED IDEOGRAPH - ,0xE169 ,0x919D //CJK UNIFIED IDEOGRAPH - ,0xE16A ,0x919E //CJK UNIFIED IDEOGRAPH - ,0xE16B ,0x919F //CJK UNIFIED IDEOGRAPH - ,0xE16C ,0x91A0 //CJK UNIFIED IDEOGRAPH - ,0xE16D ,0x91A1 //CJK UNIFIED IDEOGRAPH - ,0xE16E ,0x91A4 //CJK UNIFIED IDEOGRAPH - ,0xE16F ,0x91A5 //CJK UNIFIED IDEOGRAPH - ,0xE170 ,0x91A6 //CJK UNIFIED IDEOGRAPH - ,0xE171 ,0x91A7 //CJK UNIFIED IDEOGRAPH - ,0xE172 ,0x91A8 //CJK UNIFIED IDEOGRAPH - ,0xE173 ,0x91A9 //CJK UNIFIED IDEOGRAPH - ,0xE174 ,0x91AB //CJK UNIFIED IDEOGRAPH - ,0xE175 ,0x91AC //CJK UNIFIED IDEOGRAPH - ,0xE176 ,0x91B0 //CJK UNIFIED IDEOGRAPH - ,0xE177 ,0x91B1 //CJK UNIFIED IDEOGRAPH - ,0xE178 ,0x91B2 //CJK UNIFIED IDEOGRAPH - ,0xE179 ,0x91B3 //CJK UNIFIED IDEOGRAPH - ,0xE17A ,0x91B6 //CJK UNIFIED IDEOGRAPH - ,0xE17B ,0x91B7 //CJK UNIFIED IDEOGRAPH - ,0xE17C ,0x91B8 //CJK UNIFIED IDEOGRAPH - ,0xE17D ,0x91B9 //CJK UNIFIED IDEOGRAPH - ,0xE17E ,0x91BB //CJK UNIFIED IDEOGRAPH - ,0xE180 ,0x91BC //CJK UNIFIED IDEOGRAPH - ,0xE181 ,0x91BD //CJK UNIFIED IDEOGRAPH - ,0xE182 ,0x91BE //CJK UNIFIED IDEOGRAPH - ,0xE183 ,0x91BF //CJK UNIFIED IDEOGRAPH - ,0xE184 ,0x91C0 //CJK UNIFIED IDEOGRAPH - ,0xE185 ,0x91C1 //CJK UNIFIED IDEOGRAPH - ,0xE186 ,0x91C2 //CJK UNIFIED IDEOGRAPH - ,0xE187 ,0x91C3 //CJK UNIFIED IDEOGRAPH - ,0xE188 ,0x91C4 //CJK UNIFIED IDEOGRAPH - ,0xE189 ,0x91C5 //CJK UNIFIED IDEOGRAPH - ,0xE18A ,0x91C6 //CJK UNIFIED IDEOGRAPH - ,0xE18B ,0x91C8 //CJK UNIFIED IDEOGRAPH - ,0xE18C ,0x91CB //CJK UNIFIED IDEOGRAPH - ,0xE18D ,0x91D0 //CJK UNIFIED IDEOGRAPH - ,0xE18E ,0x91D2 //CJK UNIFIED IDEOGRAPH - ,0xE18F ,0x91D3 //CJK UNIFIED IDEOGRAPH - ,0xE190 ,0x91D4 //CJK UNIFIED IDEOGRAPH - ,0xE191 ,0x91D5 //CJK UNIFIED IDEOGRAPH - ,0xE192 ,0x91D6 //CJK UNIFIED IDEOGRAPH - ,0xE193 ,0x91D7 //CJK UNIFIED IDEOGRAPH - ,0xE194 ,0x91D8 //CJK UNIFIED IDEOGRAPH - ,0xE195 ,0x91D9 //CJK UNIFIED IDEOGRAPH - ,0xE196 ,0x91DA //CJK UNIFIED IDEOGRAPH - ,0xE197 ,0x91DB //CJK UNIFIED IDEOGRAPH - ,0xE198 ,0x91DD //CJK UNIFIED IDEOGRAPH - ,0xE199 ,0x91DE //CJK UNIFIED IDEOGRAPH - ,0xE19A ,0x91DF //CJK UNIFIED IDEOGRAPH - ,0xE19B ,0x91E0 //CJK UNIFIED IDEOGRAPH - ,0xE19C ,0x91E1 //CJK UNIFIED IDEOGRAPH - ,0xE19D ,0x91E2 //CJK UNIFIED IDEOGRAPH - ,0xE19E ,0x91E3 //CJK UNIFIED IDEOGRAPH - ,0xE19F ,0x91E4 //CJK UNIFIED IDEOGRAPH - ,0xE1A0 ,0x91E5 //CJK UNIFIED IDEOGRAPH - ,0xE1A1 ,0x5E37 //CJK UNIFIED IDEOGRAPH - ,0xE1A2 ,0x5E44 //CJK UNIFIED IDEOGRAPH - ,0xE1A3 ,0x5E54 //CJK UNIFIED IDEOGRAPH - ,0xE1A4 ,0x5E5B //CJK UNIFIED IDEOGRAPH - ,0xE1A5 ,0x5E5E //CJK UNIFIED IDEOGRAPH - ,0xE1A6 ,0x5E61 //CJK UNIFIED IDEOGRAPH - ,0xE1A7 ,0x5C8C //CJK UNIFIED IDEOGRAPH - ,0xE1A8 ,0x5C7A //CJK UNIFIED IDEOGRAPH - ,0xE1A9 ,0x5C8D //CJK UNIFIED IDEOGRAPH - ,0xE1AA ,0x5C90 //CJK UNIFIED IDEOGRAPH - ,0xE1AB ,0x5C96 //CJK UNIFIED IDEOGRAPH - ,0xE1AC ,0x5C88 //CJK UNIFIED IDEOGRAPH - ,0xE1AD ,0x5C98 //CJK UNIFIED IDEOGRAPH - ,0xE1AE ,0x5C99 //CJK UNIFIED IDEOGRAPH - ,0xE1AF ,0x5C91 //CJK UNIFIED IDEOGRAPH - ,0xE1B0 ,0x5C9A //CJK UNIFIED IDEOGRAPH - ,0xE1B1 ,0x5C9C //CJK UNIFIED IDEOGRAPH - ,0xE1B2 ,0x5CB5 //CJK UNIFIED IDEOGRAPH - ,0xE1B3 ,0x5CA2 //CJK UNIFIED IDEOGRAPH - ,0xE1B4 ,0x5CBD //CJK UNIFIED IDEOGRAPH - ,0xE1B5 ,0x5CAC //CJK UNIFIED IDEOGRAPH - ,0xE1B6 ,0x5CAB //CJK UNIFIED IDEOGRAPH - ,0xE1B7 ,0x5CB1 //CJK UNIFIED IDEOGRAPH - ,0xE1B8 ,0x5CA3 //CJK UNIFIED IDEOGRAPH - ,0xE1B9 ,0x5CC1 //CJK UNIFIED IDEOGRAPH - ,0xE1BA ,0x5CB7 //CJK UNIFIED IDEOGRAPH - ,0xE1BB ,0x5CC4 //CJK UNIFIED IDEOGRAPH - ,0xE1BC ,0x5CD2 //CJK UNIFIED IDEOGRAPH - ,0xE1BD ,0x5CE4 //CJK UNIFIED IDEOGRAPH - ,0xE1BE ,0x5CCB //CJK UNIFIED IDEOGRAPH - ,0xE1BF ,0x5CE5 //CJK UNIFIED IDEOGRAPH - ,0xE1C0 ,0x5D02 //CJK UNIFIED IDEOGRAPH - ,0xE1C1 ,0x5D03 //CJK UNIFIED IDEOGRAPH - ,0xE1C2 ,0x5D27 //CJK UNIFIED IDEOGRAPH - ,0xE1C3 ,0x5D26 //CJK UNIFIED IDEOGRAPH - ,0xE1C4 ,0x5D2E //CJK UNIFIED IDEOGRAPH - ,0xE1C5 ,0x5D24 //CJK UNIFIED IDEOGRAPH - ,0xE1C6 ,0x5D1E //CJK UNIFIED IDEOGRAPH - ,0xE1C7 ,0x5D06 //CJK UNIFIED IDEOGRAPH - ,0xE1C8 ,0x5D1B //CJK UNIFIED IDEOGRAPH - ,0xE1C9 ,0x5D58 //CJK UNIFIED IDEOGRAPH - ,0xE1CA ,0x5D3E //CJK UNIFIED IDEOGRAPH - ,0xE1CB ,0x5D34 //CJK UNIFIED IDEOGRAPH - ,0xE1CC ,0x5D3D //CJK UNIFIED IDEOGRAPH - ,0xE1CD ,0x5D6C //CJK UNIFIED IDEOGRAPH - ,0xE1CE ,0x5D5B //CJK UNIFIED IDEOGRAPH - ,0xE1CF ,0x5D6F //CJK UNIFIED IDEOGRAPH - ,0xE1D0 ,0x5D5D //CJK UNIFIED IDEOGRAPH - ,0xE1D1 ,0x5D6B //CJK UNIFIED IDEOGRAPH - ,0xE1D2 ,0x5D4B //CJK UNIFIED IDEOGRAPH - ,0xE1D3 ,0x5D4A //CJK UNIFIED IDEOGRAPH - ,0xE1D4 ,0x5D69 //CJK UNIFIED IDEOGRAPH - ,0xE1D5 ,0x5D74 //CJK UNIFIED IDEOGRAPH - ,0xE1D6 ,0x5D82 //CJK UNIFIED IDEOGRAPH - ,0xE1D7 ,0x5D99 //CJK UNIFIED IDEOGRAPH - ,0xE1D8 ,0x5D9D //CJK UNIFIED IDEOGRAPH - ,0xE1D9 ,0x8C73 //CJK UNIFIED IDEOGRAPH - ,0xE1DA ,0x5DB7 //CJK UNIFIED IDEOGRAPH - ,0xE1DB ,0x5DC5 //CJK UNIFIED IDEOGRAPH - ,0xE1DC ,0x5F73 //CJK UNIFIED IDEOGRAPH - ,0xE1DD ,0x5F77 //CJK UNIFIED IDEOGRAPH - ,0xE1DE ,0x5F82 //CJK UNIFIED IDEOGRAPH - ,0xE1DF ,0x5F87 //CJK UNIFIED IDEOGRAPH - ,0xE1E0 ,0x5F89 //CJK UNIFIED IDEOGRAPH - ,0xE1E1 ,0x5F8C //CJK UNIFIED IDEOGRAPH - ,0xE1E2 ,0x5F95 //CJK UNIFIED IDEOGRAPH - ,0xE1E3 ,0x5F99 //CJK UNIFIED IDEOGRAPH - ,0xE1E4 ,0x5F9C //CJK UNIFIED IDEOGRAPH - ,0xE1E5 ,0x5FA8 //CJK UNIFIED IDEOGRAPH - ,0xE1E6 ,0x5FAD //CJK UNIFIED IDEOGRAPH - ,0xE1E7 ,0x5FB5 //CJK UNIFIED IDEOGRAPH - ,0xE1E8 ,0x5FBC //CJK UNIFIED IDEOGRAPH - ,0xE1E9 ,0x8862 //CJK UNIFIED IDEOGRAPH - ,0xE1EA ,0x5F61 //CJK UNIFIED IDEOGRAPH - ,0xE1EB ,0x72AD //CJK UNIFIED IDEOGRAPH - ,0xE1EC ,0x72B0 //CJK UNIFIED IDEOGRAPH - ,0xE1ED ,0x72B4 //CJK UNIFIED IDEOGRAPH - ,0xE1EE ,0x72B7 //CJK UNIFIED IDEOGRAPH - ,0xE1EF ,0x72B8 //CJK UNIFIED IDEOGRAPH - ,0xE1F0 ,0x72C3 //CJK UNIFIED IDEOGRAPH - ,0xE1F1 ,0x72C1 //CJK UNIFIED IDEOGRAPH - ,0xE1F2 ,0x72CE //CJK UNIFIED IDEOGRAPH - ,0xE1F3 ,0x72CD //CJK UNIFIED IDEOGRAPH - ,0xE1F4 ,0x72D2 //CJK UNIFIED IDEOGRAPH - ,0xE1F5 ,0x72E8 //CJK UNIFIED IDEOGRAPH - ,0xE1F6 ,0x72EF //CJK UNIFIED IDEOGRAPH - ,0xE1F7 ,0x72E9 //CJK UNIFIED IDEOGRAPH - ,0xE1F8 ,0x72F2 //CJK UNIFIED IDEOGRAPH - ,0xE1F9 ,0x72F4 //CJK UNIFIED IDEOGRAPH - ,0xE1FA ,0x72F7 //CJK UNIFIED IDEOGRAPH - ,0xE1FB ,0x7301 //CJK UNIFIED IDEOGRAPH - ,0xE1FC ,0x72F3 //CJK UNIFIED IDEOGRAPH - ,0xE1FD ,0x7303 //CJK UNIFIED IDEOGRAPH - ,0xE1FE ,0x72FA //CJK UNIFIED IDEOGRAPH - ,0xE240 ,0x91E6 //CJK UNIFIED IDEOGRAPH - ,0xE241 ,0x91E7 //CJK UNIFIED IDEOGRAPH - ,0xE242 ,0x91E8 //CJK UNIFIED IDEOGRAPH - ,0xE243 ,0x91E9 //CJK UNIFIED IDEOGRAPH - ,0xE244 ,0x91EA //CJK UNIFIED IDEOGRAPH - ,0xE245 ,0x91EB //CJK UNIFIED IDEOGRAPH - ,0xE246 ,0x91EC //CJK UNIFIED IDEOGRAPH - ,0xE247 ,0x91ED //CJK UNIFIED IDEOGRAPH - ,0xE248 ,0x91EE //CJK UNIFIED IDEOGRAPH - ,0xE249 ,0x91EF //CJK UNIFIED IDEOGRAPH - ,0xE24A ,0x91F0 //CJK UNIFIED IDEOGRAPH - ,0xE24B ,0x91F1 //CJK UNIFIED IDEOGRAPH - ,0xE24C ,0x91F2 //CJK UNIFIED IDEOGRAPH - ,0xE24D ,0x91F3 //CJK UNIFIED IDEOGRAPH - ,0xE24E ,0x91F4 //CJK UNIFIED IDEOGRAPH - ,0xE24F ,0x91F5 //CJK UNIFIED IDEOGRAPH - ,0xE250 ,0x91F6 //CJK UNIFIED IDEOGRAPH - ,0xE251 ,0x91F7 //CJK UNIFIED IDEOGRAPH - ,0xE252 ,0x91F8 //CJK UNIFIED IDEOGRAPH - ,0xE253 ,0x91F9 //CJK UNIFIED IDEOGRAPH - ,0xE254 ,0x91FA //CJK UNIFIED IDEOGRAPH - ,0xE255 ,0x91FB //CJK UNIFIED IDEOGRAPH - ,0xE256 ,0x91FC //CJK UNIFIED IDEOGRAPH - ,0xE257 ,0x91FD //CJK UNIFIED IDEOGRAPH - ,0xE258 ,0x91FE //CJK UNIFIED IDEOGRAPH - ,0xE259 ,0x91FF //CJK UNIFIED IDEOGRAPH - ,0xE25A ,0x9200 //CJK UNIFIED IDEOGRAPH - ,0xE25B ,0x9201 //CJK UNIFIED IDEOGRAPH - ,0xE25C ,0x9202 //CJK UNIFIED IDEOGRAPH - ,0xE25D ,0x9203 //CJK UNIFIED IDEOGRAPH - ,0xE25E ,0x9204 //CJK UNIFIED IDEOGRAPH - ,0xE25F ,0x9205 //CJK UNIFIED IDEOGRAPH - ,0xE260 ,0x9206 //CJK UNIFIED IDEOGRAPH - ,0xE261 ,0x9207 //CJK UNIFIED IDEOGRAPH - ,0xE262 ,0x9208 //CJK UNIFIED IDEOGRAPH - ,0xE263 ,0x9209 //CJK UNIFIED IDEOGRAPH - ,0xE264 ,0x920A //CJK UNIFIED IDEOGRAPH - ,0xE265 ,0x920B //CJK UNIFIED IDEOGRAPH - ,0xE266 ,0x920C //CJK UNIFIED IDEOGRAPH - ,0xE267 ,0x920D //CJK UNIFIED IDEOGRAPH - ,0xE268 ,0x920E //CJK UNIFIED IDEOGRAPH - ,0xE269 ,0x920F //CJK UNIFIED IDEOGRAPH - ,0xE26A ,0x9210 //CJK UNIFIED IDEOGRAPH - ,0xE26B ,0x9211 //CJK UNIFIED IDEOGRAPH - ,0xE26C ,0x9212 //CJK UNIFIED IDEOGRAPH - ,0xE26D ,0x9213 //CJK UNIFIED IDEOGRAPH - ,0xE26E ,0x9214 //CJK UNIFIED IDEOGRAPH - ,0xE26F ,0x9215 //CJK UNIFIED IDEOGRAPH - ,0xE270 ,0x9216 //CJK UNIFIED IDEOGRAPH - ,0xE271 ,0x9217 //CJK UNIFIED IDEOGRAPH - ,0xE272 ,0x9218 //CJK UNIFIED IDEOGRAPH - ,0xE273 ,0x9219 //CJK UNIFIED IDEOGRAPH - ,0xE274 ,0x921A //CJK UNIFIED IDEOGRAPH - ,0xE275 ,0x921B //CJK UNIFIED IDEOGRAPH - ,0xE276 ,0x921C //CJK UNIFIED IDEOGRAPH - ,0xE277 ,0x921D //CJK UNIFIED IDEOGRAPH - ,0xE278 ,0x921E //CJK UNIFIED IDEOGRAPH - ,0xE279 ,0x921F //CJK UNIFIED IDEOGRAPH - ,0xE27A ,0x9220 //CJK UNIFIED IDEOGRAPH - ,0xE27B ,0x9221 //CJK UNIFIED IDEOGRAPH - ,0xE27C ,0x9222 //CJK UNIFIED IDEOGRAPH - ,0xE27D ,0x9223 //CJK UNIFIED IDEOGRAPH - ,0xE27E ,0x9224 //CJK UNIFIED IDEOGRAPH - ,0xE280 ,0x9225 //CJK UNIFIED IDEOGRAPH - ,0xE281 ,0x9226 //CJK UNIFIED IDEOGRAPH - ,0xE282 ,0x9227 //CJK UNIFIED IDEOGRAPH - ,0xE283 ,0x9228 //CJK UNIFIED IDEOGRAPH - ,0xE284 ,0x9229 //CJK UNIFIED IDEOGRAPH - ,0xE285 ,0x922A //CJK UNIFIED IDEOGRAPH - ,0xE286 ,0x922B //CJK UNIFIED IDEOGRAPH - ,0xE287 ,0x922C //CJK UNIFIED IDEOGRAPH - ,0xE288 ,0x922D //CJK UNIFIED IDEOGRAPH - ,0xE289 ,0x922E //CJK UNIFIED IDEOGRAPH - ,0xE28A ,0x922F //CJK UNIFIED IDEOGRAPH - ,0xE28B ,0x9230 //CJK UNIFIED IDEOGRAPH - ,0xE28C ,0x9231 //CJK UNIFIED IDEOGRAPH - ,0xE28D ,0x9232 //CJK UNIFIED IDEOGRAPH - ,0xE28E ,0x9233 //CJK UNIFIED IDEOGRAPH - ,0xE28F ,0x9234 //CJK UNIFIED IDEOGRAPH - ,0xE290 ,0x9235 //CJK UNIFIED IDEOGRAPH - ,0xE291 ,0x9236 //CJK UNIFIED IDEOGRAPH - ,0xE292 ,0x9237 //CJK UNIFIED IDEOGRAPH - ,0xE293 ,0x9238 //CJK UNIFIED IDEOGRAPH - ,0xE294 ,0x9239 //CJK UNIFIED IDEOGRAPH - ,0xE295 ,0x923A //CJK UNIFIED IDEOGRAPH - ,0xE296 ,0x923B //CJK UNIFIED IDEOGRAPH - ,0xE297 ,0x923C //CJK UNIFIED IDEOGRAPH - ,0xE298 ,0x923D //CJK UNIFIED IDEOGRAPH - ,0xE299 ,0x923E //CJK UNIFIED IDEOGRAPH - ,0xE29A ,0x923F //CJK UNIFIED IDEOGRAPH - ,0xE29B ,0x9240 //CJK UNIFIED IDEOGRAPH - ,0xE29C ,0x9241 //CJK UNIFIED IDEOGRAPH - ,0xE29D ,0x9242 //CJK UNIFIED IDEOGRAPH - ,0xE29E ,0x9243 //CJK UNIFIED IDEOGRAPH - ,0xE29F ,0x9244 //CJK UNIFIED IDEOGRAPH - ,0xE2A0 ,0x9245 //CJK UNIFIED IDEOGRAPH - ,0xE2A1 ,0x72FB //CJK UNIFIED IDEOGRAPH - ,0xE2A2 ,0x7317 //CJK UNIFIED IDEOGRAPH - ,0xE2A3 ,0x7313 //CJK UNIFIED IDEOGRAPH - ,0xE2A4 ,0x7321 //CJK UNIFIED IDEOGRAPH - ,0xE2A5 ,0x730A //CJK UNIFIED IDEOGRAPH - ,0xE2A6 ,0x731E //CJK UNIFIED IDEOGRAPH - ,0xE2A7 ,0x731D //CJK UNIFIED IDEOGRAPH - ,0xE2A8 ,0x7315 //CJK UNIFIED IDEOGRAPH - ,0xE2A9 ,0x7322 //CJK UNIFIED IDEOGRAPH - ,0xE2AA ,0x7339 //CJK UNIFIED IDEOGRAPH - ,0xE2AB ,0x7325 //CJK UNIFIED IDEOGRAPH - ,0xE2AC ,0x732C //CJK UNIFIED IDEOGRAPH - ,0xE2AD ,0x7338 //CJK UNIFIED IDEOGRAPH - ,0xE2AE ,0x7331 //CJK UNIFIED IDEOGRAPH - ,0xE2AF ,0x7350 //CJK UNIFIED IDEOGRAPH - ,0xE2B0 ,0x734D //CJK UNIFIED IDEOGRAPH - ,0xE2B1 ,0x7357 //CJK UNIFIED IDEOGRAPH - ,0xE2B2 ,0x7360 //CJK UNIFIED IDEOGRAPH - ,0xE2B3 ,0x736C //CJK UNIFIED IDEOGRAPH - ,0xE2B4 ,0x736F //CJK UNIFIED IDEOGRAPH - ,0xE2B5 ,0x737E //CJK UNIFIED IDEOGRAPH - ,0xE2B6 ,0x821B //CJK UNIFIED IDEOGRAPH - ,0xE2B7 ,0x5925 //CJK UNIFIED IDEOGRAPH - ,0xE2B8 ,0x98E7 //CJK UNIFIED IDEOGRAPH - ,0xE2B9 ,0x5924 //CJK UNIFIED IDEOGRAPH - ,0xE2BA ,0x5902 //CJK UNIFIED IDEOGRAPH - ,0xE2BB ,0x9963 //CJK UNIFIED IDEOGRAPH - ,0xE2BC ,0x9967 //CJK UNIFIED IDEOGRAPH - ,0xE2BD ,0x9968 //CJK UNIFIED IDEOGRAPH - ,0xE2BE ,0x9969 //CJK UNIFIED IDEOGRAPH - ,0xE2BF ,0x996A //CJK UNIFIED IDEOGRAPH - ,0xE2C0 ,0x996B //CJK UNIFIED IDEOGRAPH - ,0xE2C1 ,0x996C //CJK UNIFIED IDEOGRAPH - ,0xE2C2 ,0x9974 //CJK UNIFIED IDEOGRAPH - ,0xE2C3 ,0x9977 //CJK UNIFIED IDEOGRAPH - ,0xE2C4 ,0x997D //CJK UNIFIED IDEOGRAPH - ,0xE2C5 ,0x9980 //CJK UNIFIED IDEOGRAPH - ,0xE2C6 ,0x9984 //CJK UNIFIED IDEOGRAPH - ,0xE2C7 ,0x9987 //CJK UNIFIED IDEOGRAPH - ,0xE2C8 ,0x998A //CJK UNIFIED IDEOGRAPH - ,0xE2C9 ,0x998D //CJK UNIFIED IDEOGRAPH - ,0xE2CA ,0x9990 //CJK UNIFIED IDEOGRAPH - ,0xE2CB ,0x9991 //CJK UNIFIED IDEOGRAPH - ,0xE2CC ,0x9993 //CJK UNIFIED IDEOGRAPH - ,0xE2CD ,0x9994 //CJK UNIFIED IDEOGRAPH - ,0xE2CE ,0x9995 //CJK UNIFIED IDEOGRAPH - ,0xE2CF ,0x5E80 //CJK UNIFIED IDEOGRAPH - ,0xE2D0 ,0x5E91 //CJK UNIFIED IDEOGRAPH - ,0xE2D1 ,0x5E8B //CJK UNIFIED IDEOGRAPH - ,0xE2D2 ,0x5E96 //CJK UNIFIED IDEOGRAPH - ,0xE2D3 ,0x5EA5 //CJK UNIFIED IDEOGRAPH - ,0xE2D4 ,0x5EA0 //CJK UNIFIED IDEOGRAPH - ,0xE2D5 ,0x5EB9 //CJK UNIFIED IDEOGRAPH - ,0xE2D6 ,0x5EB5 //CJK UNIFIED IDEOGRAPH - ,0xE2D7 ,0x5EBE //CJK UNIFIED IDEOGRAPH - ,0xE2D8 ,0x5EB3 //CJK UNIFIED IDEOGRAPH - ,0xE2D9 ,0x8D53 //CJK UNIFIED IDEOGRAPH - ,0xE2DA ,0x5ED2 //CJK UNIFIED IDEOGRAPH - ,0xE2DB ,0x5ED1 //CJK UNIFIED IDEOGRAPH - ,0xE2DC ,0x5EDB //CJK UNIFIED IDEOGRAPH - ,0xE2DD ,0x5EE8 //CJK UNIFIED IDEOGRAPH - ,0xE2DE ,0x5EEA //CJK UNIFIED IDEOGRAPH - ,0xE2DF ,0x81BA //CJK UNIFIED IDEOGRAPH - ,0xE2E0 ,0x5FC4 //CJK UNIFIED IDEOGRAPH - ,0xE2E1 ,0x5FC9 //CJK UNIFIED IDEOGRAPH - ,0xE2E2 ,0x5FD6 //CJK UNIFIED IDEOGRAPH - ,0xE2E3 ,0x5FCF //CJK UNIFIED IDEOGRAPH - ,0xE2E4 ,0x6003 //CJK UNIFIED IDEOGRAPH - ,0xE2E5 ,0x5FEE //CJK UNIFIED IDEOGRAPH - ,0xE2E6 ,0x6004 //CJK UNIFIED IDEOGRAPH - ,0xE2E7 ,0x5FE1 //CJK UNIFIED IDEOGRAPH - ,0xE2E8 ,0x5FE4 //CJK UNIFIED IDEOGRAPH - ,0xE2E9 ,0x5FFE //CJK UNIFIED IDEOGRAPH - ,0xE2EA ,0x6005 //CJK UNIFIED IDEOGRAPH - ,0xE2EB ,0x6006 //CJK UNIFIED IDEOGRAPH - ,0xE2EC ,0x5FEA //CJK UNIFIED IDEOGRAPH - ,0xE2ED ,0x5FED //CJK UNIFIED IDEOGRAPH - ,0xE2EE ,0x5FF8 //CJK UNIFIED IDEOGRAPH - ,0xE2EF ,0x6019 //CJK UNIFIED IDEOGRAPH - ,0xE2F0 ,0x6035 //CJK UNIFIED IDEOGRAPH - ,0xE2F1 ,0x6026 //CJK UNIFIED IDEOGRAPH - ,0xE2F2 ,0x601B //CJK UNIFIED IDEOGRAPH - ,0xE2F3 ,0x600F //CJK UNIFIED IDEOGRAPH - ,0xE2F4 ,0x600D //CJK UNIFIED IDEOGRAPH - ,0xE2F5 ,0x6029 //CJK UNIFIED IDEOGRAPH - ,0xE2F6 ,0x602B //CJK UNIFIED IDEOGRAPH - ,0xE2F7 ,0x600A //CJK UNIFIED IDEOGRAPH - ,0xE2F8 ,0x603F //CJK UNIFIED IDEOGRAPH - ,0xE2F9 ,0x6021 //CJK UNIFIED IDEOGRAPH - ,0xE2FA ,0x6078 //CJK UNIFIED IDEOGRAPH - ,0xE2FB ,0x6079 //CJK UNIFIED IDEOGRAPH - ,0xE2FC ,0x607B //CJK UNIFIED IDEOGRAPH - ,0xE2FD ,0x607A //CJK UNIFIED IDEOGRAPH - ,0xE2FE ,0x6042 //CJK UNIFIED IDEOGRAPH - ,0xE340 ,0x9246 //CJK UNIFIED IDEOGRAPH - ,0xE341 ,0x9247 //CJK UNIFIED IDEOGRAPH - ,0xE342 ,0x9248 //CJK UNIFIED IDEOGRAPH - ,0xE343 ,0x9249 //CJK UNIFIED IDEOGRAPH - ,0xE344 ,0x924A //CJK UNIFIED IDEOGRAPH - ,0xE345 ,0x924B //CJK UNIFIED IDEOGRAPH - ,0xE346 ,0x924C //CJK UNIFIED IDEOGRAPH - ,0xE347 ,0x924D //CJK UNIFIED IDEOGRAPH - ,0xE348 ,0x924E //CJK UNIFIED IDEOGRAPH - ,0xE349 ,0x924F //CJK UNIFIED IDEOGRAPH - ,0xE34A ,0x9250 //CJK UNIFIED IDEOGRAPH - ,0xE34B ,0x9251 //CJK UNIFIED IDEOGRAPH - ,0xE34C ,0x9252 //CJK UNIFIED IDEOGRAPH - ,0xE34D ,0x9253 //CJK UNIFIED IDEOGRAPH - ,0xE34E ,0x9254 //CJK UNIFIED IDEOGRAPH - ,0xE34F ,0x9255 //CJK UNIFIED IDEOGRAPH - ,0xE350 ,0x9256 //CJK UNIFIED IDEOGRAPH - ,0xE351 ,0x9257 //CJK UNIFIED IDEOGRAPH - ,0xE352 ,0x9258 //CJK UNIFIED IDEOGRAPH - ,0xE353 ,0x9259 //CJK UNIFIED IDEOGRAPH - ,0xE354 ,0x925A //CJK UNIFIED IDEOGRAPH - ,0xE355 ,0x925B //CJK UNIFIED IDEOGRAPH - ,0xE356 ,0x925C //CJK UNIFIED IDEOGRAPH - ,0xE357 ,0x925D //CJK UNIFIED IDEOGRAPH - ,0xE358 ,0x925E //CJK UNIFIED IDEOGRAPH - ,0xE359 ,0x925F //CJK UNIFIED IDEOGRAPH - ,0xE35A ,0x9260 //CJK UNIFIED IDEOGRAPH - ,0xE35B ,0x9261 //CJK UNIFIED IDEOGRAPH - ,0xE35C ,0x9262 //CJK UNIFIED IDEOGRAPH - ,0xE35D ,0x9263 //CJK UNIFIED IDEOGRAPH - ,0xE35E ,0x9264 //CJK UNIFIED IDEOGRAPH - ,0xE35F ,0x9265 //CJK UNIFIED IDEOGRAPH - ,0xE360 ,0x9266 //CJK UNIFIED IDEOGRAPH - ,0xE361 ,0x9267 //CJK UNIFIED IDEOGRAPH - ,0xE362 ,0x9268 //CJK UNIFIED IDEOGRAPH - ,0xE363 ,0x9269 //CJK UNIFIED IDEOGRAPH - ,0xE364 ,0x926A //CJK UNIFIED IDEOGRAPH - ,0xE365 ,0x926B //CJK UNIFIED IDEOGRAPH - ,0xE366 ,0x926C //CJK UNIFIED IDEOGRAPH - ,0xE367 ,0x926D //CJK UNIFIED IDEOGRAPH - ,0xE368 ,0x926E //CJK UNIFIED IDEOGRAPH - ,0xE369 ,0x926F //CJK UNIFIED IDEOGRAPH - ,0xE36A ,0x9270 //CJK UNIFIED IDEOGRAPH - ,0xE36B ,0x9271 //CJK UNIFIED IDEOGRAPH - ,0xE36C ,0x9272 //CJK UNIFIED IDEOGRAPH - ,0xE36D ,0x9273 //CJK UNIFIED IDEOGRAPH - ,0xE36E ,0x9275 //CJK UNIFIED IDEOGRAPH - ,0xE36F ,0x9276 //CJK UNIFIED IDEOGRAPH - ,0xE370 ,0x9277 //CJK UNIFIED IDEOGRAPH - ,0xE371 ,0x9278 //CJK UNIFIED IDEOGRAPH - ,0xE372 ,0x9279 //CJK UNIFIED IDEOGRAPH - ,0xE373 ,0x927A //CJK UNIFIED IDEOGRAPH - ,0xE374 ,0x927B //CJK UNIFIED IDEOGRAPH - ,0xE375 ,0x927C //CJK UNIFIED IDEOGRAPH - ,0xE376 ,0x927D //CJK UNIFIED IDEOGRAPH - ,0xE377 ,0x927E //CJK UNIFIED IDEOGRAPH - ,0xE378 ,0x927F //CJK UNIFIED IDEOGRAPH - ,0xE379 ,0x9280 //CJK UNIFIED IDEOGRAPH - ,0xE37A ,0x9281 //CJK UNIFIED IDEOGRAPH - ,0xE37B ,0x9282 //CJK UNIFIED IDEOGRAPH - ,0xE37C ,0x9283 //CJK UNIFIED IDEOGRAPH - ,0xE37D ,0x9284 //CJK UNIFIED IDEOGRAPH - ,0xE37E ,0x9285 //CJK UNIFIED IDEOGRAPH - ,0xE380 ,0x9286 //CJK UNIFIED IDEOGRAPH - ,0xE381 ,0x9287 //CJK UNIFIED IDEOGRAPH - ,0xE382 ,0x9288 //CJK UNIFIED IDEOGRAPH - ,0xE383 ,0x9289 //CJK UNIFIED IDEOGRAPH - ,0xE384 ,0x928A //CJK UNIFIED IDEOGRAPH - ,0xE385 ,0x928B //CJK UNIFIED IDEOGRAPH - ,0xE386 ,0x928C //CJK UNIFIED IDEOGRAPH - ,0xE387 ,0x928D //CJK UNIFIED IDEOGRAPH - ,0xE388 ,0x928F //CJK UNIFIED IDEOGRAPH - ,0xE389 ,0x9290 //CJK UNIFIED IDEOGRAPH - ,0xE38A ,0x9291 //CJK UNIFIED IDEOGRAPH - ,0xE38B ,0x9292 //CJK UNIFIED IDEOGRAPH - ,0xE38C ,0x9293 //CJK UNIFIED IDEOGRAPH - ,0xE38D ,0x9294 //CJK UNIFIED IDEOGRAPH - ,0xE38E ,0x9295 //CJK UNIFIED IDEOGRAPH - ,0xE38F ,0x9296 //CJK UNIFIED IDEOGRAPH - ,0xE390 ,0x9297 //CJK UNIFIED IDEOGRAPH - ,0xE391 ,0x9298 //CJK UNIFIED IDEOGRAPH - ,0xE392 ,0x9299 //CJK UNIFIED IDEOGRAPH - ,0xE393 ,0x929A //CJK UNIFIED IDEOGRAPH - ,0xE394 ,0x929B //CJK UNIFIED IDEOGRAPH - ,0xE395 ,0x929C //CJK UNIFIED IDEOGRAPH - ,0xE396 ,0x929D //CJK UNIFIED IDEOGRAPH - ,0xE397 ,0x929E //CJK UNIFIED IDEOGRAPH - ,0xE398 ,0x929F //CJK UNIFIED IDEOGRAPH - ,0xE399 ,0x92A0 //CJK UNIFIED IDEOGRAPH - ,0xE39A ,0x92A1 //CJK UNIFIED IDEOGRAPH - ,0xE39B ,0x92A2 //CJK UNIFIED IDEOGRAPH - ,0xE39C ,0x92A3 //CJK UNIFIED IDEOGRAPH - ,0xE39D ,0x92A4 //CJK UNIFIED IDEOGRAPH - ,0xE39E ,0x92A5 //CJK UNIFIED IDEOGRAPH - ,0xE39F ,0x92A6 //CJK UNIFIED IDEOGRAPH - ,0xE3A0 ,0x92A7 //CJK UNIFIED IDEOGRAPH - ,0xE3A1 ,0x606A //CJK UNIFIED IDEOGRAPH - ,0xE3A2 ,0x607D //CJK UNIFIED IDEOGRAPH - ,0xE3A3 ,0x6096 //CJK UNIFIED IDEOGRAPH - ,0xE3A4 ,0x609A //CJK UNIFIED IDEOGRAPH - ,0xE3A5 ,0x60AD //CJK UNIFIED IDEOGRAPH - ,0xE3A6 ,0x609D //CJK UNIFIED IDEOGRAPH - ,0xE3A7 ,0x6083 //CJK UNIFIED IDEOGRAPH - ,0xE3A8 ,0x6092 //CJK UNIFIED IDEOGRAPH - ,0xE3A9 ,0x608C //CJK UNIFIED IDEOGRAPH - ,0xE3AA ,0x609B //CJK UNIFIED IDEOGRAPH - ,0xE3AB ,0x60EC //CJK UNIFIED IDEOGRAPH - ,0xE3AC ,0x60BB //CJK UNIFIED IDEOGRAPH - ,0xE3AD ,0x60B1 //CJK UNIFIED IDEOGRAPH - ,0xE3AE ,0x60DD //CJK UNIFIED IDEOGRAPH - ,0xE3AF ,0x60D8 //CJK UNIFIED IDEOGRAPH - ,0xE3B0 ,0x60C6 //CJK UNIFIED IDEOGRAPH - ,0xE3B1 ,0x60DA //CJK UNIFIED IDEOGRAPH - ,0xE3B2 ,0x60B4 //CJK UNIFIED IDEOGRAPH - ,0xE3B3 ,0x6120 //CJK UNIFIED IDEOGRAPH - ,0xE3B4 ,0x6126 //CJK UNIFIED IDEOGRAPH - ,0xE3B5 ,0x6115 //CJK UNIFIED IDEOGRAPH - ,0xE3B6 ,0x6123 //CJK UNIFIED IDEOGRAPH - ,0xE3B7 ,0x60F4 //CJK UNIFIED IDEOGRAPH - ,0xE3B8 ,0x6100 //CJK UNIFIED IDEOGRAPH - ,0xE3B9 ,0x610E //CJK UNIFIED IDEOGRAPH - ,0xE3BA ,0x612B //CJK UNIFIED IDEOGRAPH - ,0xE3BB ,0x614A //CJK UNIFIED IDEOGRAPH - ,0xE3BC ,0x6175 //CJK UNIFIED IDEOGRAPH - ,0xE3BD ,0x61AC //CJK UNIFIED IDEOGRAPH - ,0xE3BE ,0x6194 //CJK UNIFIED IDEOGRAPH - ,0xE3BF ,0x61A7 //CJK UNIFIED IDEOGRAPH - ,0xE3C0 ,0x61B7 //CJK UNIFIED IDEOGRAPH - ,0xE3C1 ,0x61D4 //CJK UNIFIED IDEOGRAPH - ,0xE3C2 ,0x61F5 //CJK UNIFIED IDEOGRAPH - ,0xE3C3 ,0x5FDD //CJK UNIFIED IDEOGRAPH - ,0xE3C4 ,0x96B3 //CJK UNIFIED IDEOGRAPH - ,0xE3C5 ,0x95E9 //CJK UNIFIED IDEOGRAPH - ,0xE3C6 ,0x95EB //CJK UNIFIED IDEOGRAPH - ,0xE3C7 ,0x95F1 //CJK UNIFIED IDEOGRAPH - ,0xE3C8 ,0x95F3 //CJK UNIFIED IDEOGRAPH - ,0xE3C9 ,0x95F5 //CJK UNIFIED IDEOGRAPH - ,0xE3CA ,0x95F6 //CJK UNIFIED IDEOGRAPH - ,0xE3CB ,0x95FC //CJK UNIFIED IDEOGRAPH - ,0xE3CC ,0x95FE //CJK UNIFIED IDEOGRAPH - ,0xE3CD ,0x9603 //CJK UNIFIED IDEOGRAPH - ,0xE3CE ,0x9604 //CJK UNIFIED IDEOGRAPH - ,0xE3CF ,0x9606 //CJK UNIFIED IDEOGRAPH - ,0xE3D0 ,0x9608 //CJK UNIFIED IDEOGRAPH - ,0xE3D1 ,0x960A //CJK UNIFIED IDEOGRAPH - ,0xE3D2 ,0x960B //CJK UNIFIED IDEOGRAPH - ,0xE3D3 ,0x960C //CJK UNIFIED IDEOGRAPH - ,0xE3D4 ,0x960D //CJK UNIFIED IDEOGRAPH - ,0xE3D5 ,0x960F //CJK UNIFIED IDEOGRAPH - ,0xE3D6 ,0x9612 //CJK UNIFIED IDEOGRAPH - ,0xE3D7 ,0x9615 //CJK UNIFIED IDEOGRAPH - ,0xE3D8 ,0x9616 //CJK UNIFIED IDEOGRAPH - ,0xE3D9 ,0x9617 //CJK UNIFIED IDEOGRAPH - ,0xE3DA ,0x9619 //CJK UNIFIED IDEOGRAPH - ,0xE3DB ,0x961A //CJK UNIFIED IDEOGRAPH - ,0xE3DC ,0x4E2C //CJK UNIFIED IDEOGRAPH - ,0xE3DD ,0x723F //CJK UNIFIED IDEOGRAPH - ,0xE3DE ,0x6215 //CJK UNIFIED IDEOGRAPH - ,0xE3DF ,0x6C35 //CJK UNIFIED IDEOGRAPH - ,0xE3E0 ,0x6C54 //CJK UNIFIED IDEOGRAPH - ,0xE3E1 ,0x6C5C //CJK UNIFIED IDEOGRAPH - ,0xE3E2 ,0x6C4A //CJK UNIFIED IDEOGRAPH - ,0xE3E3 ,0x6CA3 //CJK UNIFIED IDEOGRAPH - ,0xE3E4 ,0x6C85 //CJK UNIFIED IDEOGRAPH - ,0xE3E5 ,0x6C90 //CJK UNIFIED IDEOGRAPH - ,0xE3E6 ,0x6C94 //CJK UNIFIED IDEOGRAPH - ,0xE3E7 ,0x6C8C //CJK UNIFIED IDEOGRAPH - ,0xE3E8 ,0x6C68 //CJK UNIFIED IDEOGRAPH - ,0xE3E9 ,0x6C69 //CJK UNIFIED IDEOGRAPH - ,0xE3EA ,0x6C74 //CJK UNIFIED IDEOGRAPH - ,0xE3EB ,0x6C76 //CJK UNIFIED IDEOGRAPH - ,0xE3EC ,0x6C86 //CJK UNIFIED IDEOGRAPH - ,0xE3ED ,0x6CA9 //CJK UNIFIED IDEOGRAPH - ,0xE3EE ,0x6CD0 //CJK UNIFIED IDEOGRAPH - ,0xE3EF ,0x6CD4 //CJK UNIFIED IDEOGRAPH - ,0xE3F0 ,0x6CAD //CJK UNIFIED IDEOGRAPH - ,0xE3F1 ,0x6CF7 //CJK UNIFIED IDEOGRAPH - ,0xE3F2 ,0x6CF8 //CJK UNIFIED IDEOGRAPH - ,0xE3F3 ,0x6CF1 //CJK UNIFIED IDEOGRAPH - ,0xE3F4 ,0x6CD7 //CJK UNIFIED IDEOGRAPH - ,0xE3F5 ,0x6CB2 //CJK UNIFIED IDEOGRAPH - ,0xE3F6 ,0x6CE0 //CJK UNIFIED IDEOGRAPH - ,0xE3F7 ,0x6CD6 //CJK UNIFIED IDEOGRAPH - ,0xE3F8 ,0x6CFA //CJK UNIFIED IDEOGRAPH - ,0xE3F9 ,0x6CEB //CJK UNIFIED IDEOGRAPH - ,0xE3FA ,0x6CEE //CJK UNIFIED IDEOGRAPH - ,0xE3FB ,0x6CB1 //CJK UNIFIED IDEOGRAPH - ,0xE3FC ,0x6CD3 //CJK UNIFIED IDEOGRAPH - ,0xE3FD ,0x6CEF //CJK UNIFIED IDEOGRAPH - ,0xE3FE ,0x6CFE //CJK UNIFIED IDEOGRAPH - ,0xE440 ,0x92A8 //CJK UNIFIED IDEOGRAPH - ,0xE441 ,0x92A9 //CJK UNIFIED IDEOGRAPH - ,0xE442 ,0x92AA //CJK UNIFIED IDEOGRAPH - ,0xE443 ,0x92AB //CJK UNIFIED IDEOGRAPH - ,0xE444 ,0x92AC //CJK UNIFIED IDEOGRAPH - ,0xE445 ,0x92AD //CJK UNIFIED IDEOGRAPH - ,0xE446 ,0x92AF //CJK UNIFIED IDEOGRAPH - ,0xE447 ,0x92B0 //CJK UNIFIED IDEOGRAPH - ,0xE448 ,0x92B1 //CJK UNIFIED IDEOGRAPH - ,0xE449 ,0x92B2 //CJK UNIFIED IDEOGRAPH - ,0xE44A ,0x92B3 //CJK UNIFIED IDEOGRAPH - ,0xE44B ,0x92B4 //CJK UNIFIED IDEOGRAPH - ,0xE44C ,0x92B5 //CJK UNIFIED IDEOGRAPH - ,0xE44D ,0x92B6 //CJK UNIFIED IDEOGRAPH - ,0xE44E ,0x92B7 //CJK UNIFIED IDEOGRAPH - ,0xE44F ,0x92B8 //CJK UNIFIED IDEOGRAPH - ,0xE450 ,0x92B9 //CJK UNIFIED IDEOGRAPH - ,0xE451 ,0x92BA //CJK UNIFIED IDEOGRAPH - ,0xE452 ,0x92BB //CJK UNIFIED IDEOGRAPH - ,0xE453 ,0x92BC //CJK UNIFIED IDEOGRAPH - ,0xE454 ,0x92BD //CJK UNIFIED IDEOGRAPH - ,0xE455 ,0x92BE //CJK UNIFIED IDEOGRAPH - ,0xE456 ,0x92BF //CJK UNIFIED IDEOGRAPH - ,0xE457 ,0x92C0 //CJK UNIFIED IDEOGRAPH - ,0xE458 ,0x92C1 //CJK UNIFIED IDEOGRAPH - ,0xE459 ,0x92C2 //CJK UNIFIED IDEOGRAPH - ,0xE45A ,0x92C3 //CJK UNIFIED IDEOGRAPH - ,0xE45B ,0x92C4 //CJK UNIFIED IDEOGRAPH - ,0xE45C ,0x92C5 //CJK UNIFIED IDEOGRAPH - ,0xE45D ,0x92C6 //CJK UNIFIED IDEOGRAPH - ,0xE45E ,0x92C7 //CJK UNIFIED IDEOGRAPH - ,0xE45F ,0x92C9 //CJK UNIFIED IDEOGRAPH - ,0xE460 ,0x92CA //CJK UNIFIED IDEOGRAPH - ,0xE461 ,0x92CB //CJK UNIFIED IDEOGRAPH - ,0xE462 ,0x92CC //CJK UNIFIED IDEOGRAPH - ,0xE463 ,0x92CD //CJK UNIFIED IDEOGRAPH - ,0xE464 ,0x92CE //CJK UNIFIED IDEOGRAPH - ,0xE465 ,0x92CF //CJK UNIFIED IDEOGRAPH - ,0xE466 ,0x92D0 //CJK UNIFIED IDEOGRAPH - ,0xE467 ,0x92D1 //CJK UNIFIED IDEOGRAPH - ,0xE468 ,0x92D2 //CJK UNIFIED IDEOGRAPH - ,0xE469 ,0x92D3 //CJK UNIFIED IDEOGRAPH - ,0xE46A ,0x92D4 //CJK UNIFIED IDEOGRAPH - ,0xE46B ,0x92D5 //CJK UNIFIED IDEOGRAPH - ,0xE46C ,0x92D6 //CJK UNIFIED IDEOGRAPH - ,0xE46D ,0x92D7 //CJK UNIFIED IDEOGRAPH - ,0xE46E ,0x92D8 //CJK UNIFIED IDEOGRAPH - ,0xE46F ,0x92D9 //CJK UNIFIED IDEOGRAPH - ,0xE470 ,0x92DA //CJK UNIFIED IDEOGRAPH - ,0xE471 ,0x92DB //CJK UNIFIED IDEOGRAPH - ,0xE472 ,0x92DC //CJK UNIFIED IDEOGRAPH - ,0xE473 ,0x92DD //CJK UNIFIED IDEOGRAPH - ,0xE474 ,0x92DE //CJK UNIFIED IDEOGRAPH - ,0xE475 ,0x92DF //CJK UNIFIED IDEOGRAPH - ,0xE476 ,0x92E0 //CJK UNIFIED IDEOGRAPH - ,0xE477 ,0x92E1 //CJK UNIFIED IDEOGRAPH - ,0xE478 ,0x92E2 //CJK UNIFIED IDEOGRAPH - ,0xE479 ,0x92E3 //CJK UNIFIED IDEOGRAPH - ,0xE47A ,0x92E4 //CJK UNIFIED IDEOGRAPH - ,0xE47B ,0x92E5 //CJK UNIFIED IDEOGRAPH - ,0xE47C ,0x92E6 //CJK UNIFIED IDEOGRAPH - ,0xE47D ,0x92E7 //CJK UNIFIED IDEOGRAPH - ,0xE47E ,0x92E8 //CJK UNIFIED IDEOGRAPH - ,0xE480 ,0x92E9 //CJK UNIFIED IDEOGRAPH - ,0xE481 ,0x92EA //CJK UNIFIED IDEOGRAPH - ,0xE482 ,0x92EB //CJK UNIFIED IDEOGRAPH - ,0xE483 ,0x92EC //CJK UNIFIED IDEOGRAPH - ,0xE484 ,0x92ED //CJK UNIFIED IDEOGRAPH - ,0xE485 ,0x92EE //CJK UNIFIED IDEOGRAPH - ,0xE486 ,0x92EF //CJK UNIFIED IDEOGRAPH - ,0xE487 ,0x92F0 //CJK UNIFIED IDEOGRAPH - ,0xE488 ,0x92F1 //CJK UNIFIED IDEOGRAPH - ,0xE489 ,0x92F2 //CJK UNIFIED IDEOGRAPH - ,0xE48A ,0x92F3 //CJK UNIFIED IDEOGRAPH - ,0xE48B ,0x92F4 //CJK UNIFIED IDEOGRAPH - ,0xE48C ,0x92F5 //CJK UNIFIED IDEOGRAPH - ,0xE48D ,0x92F6 //CJK UNIFIED IDEOGRAPH - ,0xE48E ,0x92F7 //CJK UNIFIED IDEOGRAPH - ,0xE48F ,0x92F8 //CJK UNIFIED IDEOGRAPH - ,0xE490 ,0x92F9 //CJK UNIFIED IDEOGRAPH - ,0xE491 ,0x92FA //CJK UNIFIED IDEOGRAPH - ,0xE492 ,0x92FB //CJK UNIFIED IDEOGRAPH - ,0xE493 ,0x92FC //CJK UNIFIED IDEOGRAPH - ,0xE494 ,0x92FD //CJK UNIFIED IDEOGRAPH - ,0xE495 ,0x92FE //CJK UNIFIED IDEOGRAPH - ,0xE496 ,0x92FF //CJK UNIFIED IDEOGRAPH - ,0xE497 ,0x9300 //CJK UNIFIED IDEOGRAPH - ,0xE498 ,0x9301 //CJK UNIFIED IDEOGRAPH - ,0xE499 ,0x9302 //CJK UNIFIED IDEOGRAPH - ,0xE49A ,0x9303 //CJK UNIFIED IDEOGRAPH - ,0xE49B ,0x9304 //CJK UNIFIED IDEOGRAPH - ,0xE49C ,0x9305 //CJK UNIFIED IDEOGRAPH - ,0xE49D ,0x9306 //CJK UNIFIED IDEOGRAPH - ,0xE49E ,0x9307 //CJK UNIFIED IDEOGRAPH - ,0xE49F ,0x9308 //CJK UNIFIED IDEOGRAPH - ,0xE4A0 ,0x9309 //CJK UNIFIED IDEOGRAPH - ,0xE4A1 ,0x6D39 //CJK UNIFIED IDEOGRAPH - ,0xE4A2 ,0x6D27 //CJK UNIFIED IDEOGRAPH - ,0xE4A3 ,0x6D0C //CJK UNIFIED IDEOGRAPH - ,0xE4A4 ,0x6D43 //CJK UNIFIED IDEOGRAPH - ,0xE4A5 ,0x6D48 //CJK UNIFIED IDEOGRAPH - ,0xE4A6 ,0x6D07 //CJK UNIFIED IDEOGRAPH - ,0xE4A7 ,0x6D04 //CJK UNIFIED IDEOGRAPH - ,0xE4A8 ,0x6D19 //CJK UNIFIED IDEOGRAPH - ,0xE4A9 ,0x6D0E //CJK UNIFIED IDEOGRAPH - ,0xE4AA ,0x6D2B //CJK UNIFIED IDEOGRAPH - ,0xE4AB ,0x6D4D //CJK UNIFIED IDEOGRAPH - ,0xE4AC ,0x6D2E //CJK UNIFIED IDEOGRAPH - ,0xE4AD ,0x6D35 //CJK UNIFIED IDEOGRAPH - ,0xE4AE ,0x6D1A //CJK UNIFIED IDEOGRAPH - ,0xE4AF ,0x6D4F //CJK UNIFIED IDEOGRAPH - ,0xE4B0 ,0x6D52 //CJK UNIFIED IDEOGRAPH - ,0xE4B1 ,0x6D54 //CJK UNIFIED IDEOGRAPH - ,0xE4B2 ,0x6D33 //CJK UNIFIED IDEOGRAPH - ,0xE4B3 ,0x6D91 //CJK UNIFIED IDEOGRAPH - ,0xE4B4 ,0x6D6F //CJK UNIFIED IDEOGRAPH - ,0xE4B5 ,0x6D9E //CJK UNIFIED IDEOGRAPH - ,0xE4B6 ,0x6DA0 //CJK UNIFIED IDEOGRAPH - ,0xE4B7 ,0x6D5E //CJK UNIFIED IDEOGRAPH - ,0xE4B8 ,0x6D93 //CJK UNIFIED IDEOGRAPH - ,0xE4B9 ,0x6D94 //CJK UNIFIED IDEOGRAPH - ,0xE4BA ,0x6D5C //CJK UNIFIED IDEOGRAPH - ,0xE4BB ,0x6D60 //CJK UNIFIED IDEOGRAPH - ,0xE4BC ,0x6D7C //CJK UNIFIED IDEOGRAPH - ,0xE4BD ,0x6D63 //CJK UNIFIED IDEOGRAPH - ,0xE4BE ,0x6E1A //CJK UNIFIED IDEOGRAPH - ,0xE4BF ,0x6DC7 //CJK UNIFIED IDEOGRAPH - ,0xE4C0 ,0x6DC5 //CJK UNIFIED IDEOGRAPH - ,0xE4C1 ,0x6DDE //CJK UNIFIED IDEOGRAPH - ,0xE4C2 ,0x6E0E //CJK UNIFIED IDEOGRAPH - ,0xE4C3 ,0x6DBF //CJK UNIFIED IDEOGRAPH - ,0xE4C4 ,0x6DE0 //CJK UNIFIED IDEOGRAPH - ,0xE4C5 ,0x6E11 //CJK UNIFIED IDEOGRAPH - ,0xE4C6 ,0x6DE6 //CJK UNIFIED IDEOGRAPH - ,0xE4C7 ,0x6DDD //CJK UNIFIED IDEOGRAPH - ,0xE4C8 ,0x6DD9 //CJK UNIFIED IDEOGRAPH - ,0xE4C9 ,0x6E16 //CJK UNIFIED IDEOGRAPH - ,0xE4CA ,0x6DAB //CJK UNIFIED IDEOGRAPH - ,0xE4CB ,0x6E0C //CJK UNIFIED IDEOGRAPH - ,0xE4CC ,0x6DAE //CJK UNIFIED IDEOGRAPH - ,0xE4CD ,0x6E2B //CJK UNIFIED IDEOGRAPH - ,0xE4CE ,0x6E6E //CJK UNIFIED IDEOGRAPH - ,0xE4CF ,0x6E4E //CJK UNIFIED IDEOGRAPH - ,0xE4D0 ,0x6E6B //CJK UNIFIED IDEOGRAPH - ,0xE4D1 ,0x6EB2 //CJK UNIFIED IDEOGRAPH - ,0xE4D2 ,0x6E5F //CJK UNIFIED IDEOGRAPH - ,0xE4D3 ,0x6E86 //CJK UNIFIED IDEOGRAPH - ,0xE4D4 ,0x6E53 //CJK UNIFIED IDEOGRAPH - ,0xE4D5 ,0x6E54 //CJK UNIFIED IDEOGRAPH - ,0xE4D6 ,0x6E32 //CJK UNIFIED IDEOGRAPH - ,0xE4D7 ,0x6E25 //CJK UNIFIED IDEOGRAPH - ,0xE4D8 ,0x6E44 //CJK UNIFIED IDEOGRAPH - ,0xE4D9 ,0x6EDF //CJK UNIFIED IDEOGRAPH - ,0xE4DA ,0x6EB1 //CJK UNIFIED IDEOGRAPH - ,0xE4DB ,0x6E98 //CJK UNIFIED IDEOGRAPH - ,0xE4DC ,0x6EE0 //CJK UNIFIED IDEOGRAPH - ,0xE4DD ,0x6F2D //CJK UNIFIED IDEOGRAPH - ,0xE4DE ,0x6EE2 //CJK UNIFIED IDEOGRAPH - ,0xE4DF ,0x6EA5 //CJK UNIFIED IDEOGRAPH - ,0xE4E0 ,0x6EA7 //CJK UNIFIED IDEOGRAPH - ,0xE4E1 ,0x6EBD //CJK UNIFIED IDEOGRAPH - ,0xE4E2 ,0x6EBB //CJK UNIFIED IDEOGRAPH - ,0xE4E3 ,0x6EB7 //CJK UNIFIED IDEOGRAPH - ,0xE4E4 ,0x6ED7 //CJK UNIFIED IDEOGRAPH - ,0xE4E5 ,0x6EB4 //CJK UNIFIED IDEOGRAPH - ,0xE4E6 ,0x6ECF //CJK UNIFIED IDEOGRAPH - ,0xE4E7 ,0x6E8F //CJK UNIFIED IDEOGRAPH - ,0xE4E8 ,0x6EC2 //CJK UNIFIED IDEOGRAPH - ,0xE4E9 ,0x6E9F //CJK UNIFIED IDEOGRAPH - ,0xE4EA ,0x6F62 //CJK UNIFIED IDEOGRAPH - ,0xE4EB ,0x6F46 //CJK UNIFIED IDEOGRAPH - ,0xE4EC ,0x6F47 //CJK UNIFIED IDEOGRAPH - ,0xE4ED ,0x6F24 //CJK UNIFIED IDEOGRAPH - ,0xE4EE ,0x6F15 //CJK UNIFIED IDEOGRAPH - ,0xE4EF ,0x6EF9 //CJK UNIFIED IDEOGRAPH - ,0xE4F0 ,0x6F2F //CJK UNIFIED IDEOGRAPH - ,0xE4F1 ,0x6F36 //CJK UNIFIED IDEOGRAPH - ,0xE4F2 ,0x6F4B //CJK UNIFIED IDEOGRAPH - ,0xE4F3 ,0x6F74 //CJK UNIFIED IDEOGRAPH - ,0xE4F4 ,0x6F2A //CJK UNIFIED IDEOGRAPH - ,0xE4F5 ,0x6F09 //CJK UNIFIED IDEOGRAPH - ,0xE4F6 ,0x6F29 //CJK UNIFIED IDEOGRAPH - ,0xE4F7 ,0x6F89 //CJK UNIFIED IDEOGRAPH - ,0xE4F8 ,0x6F8D //CJK UNIFIED IDEOGRAPH - ,0xE4F9 ,0x6F8C //CJK UNIFIED IDEOGRAPH - ,0xE4FA ,0x6F78 //CJK UNIFIED IDEOGRAPH - ,0xE4FB ,0x6F72 //CJK UNIFIED IDEOGRAPH - ,0xE4FC ,0x6F7C //CJK UNIFIED IDEOGRAPH - ,0xE4FD ,0x6F7A //CJK UNIFIED IDEOGRAPH - ,0xE4FE ,0x6FD1 //CJK UNIFIED IDEOGRAPH - ,0xE540 ,0x930A //CJK UNIFIED IDEOGRAPH - ,0xE541 ,0x930B //CJK UNIFIED IDEOGRAPH - ,0xE542 ,0x930C //CJK UNIFIED IDEOGRAPH - ,0xE543 ,0x930D //CJK UNIFIED IDEOGRAPH - ,0xE544 ,0x930E //CJK UNIFIED IDEOGRAPH - ,0xE545 ,0x930F //CJK UNIFIED IDEOGRAPH - ,0xE546 ,0x9310 //CJK UNIFIED IDEOGRAPH - ,0xE547 ,0x9311 //CJK UNIFIED IDEOGRAPH - ,0xE548 ,0x9312 //CJK UNIFIED IDEOGRAPH - ,0xE549 ,0x9313 //CJK UNIFIED IDEOGRAPH - ,0xE54A ,0x9314 //CJK UNIFIED IDEOGRAPH - ,0xE54B ,0x9315 //CJK UNIFIED IDEOGRAPH - ,0xE54C ,0x9316 //CJK UNIFIED IDEOGRAPH - ,0xE54D ,0x9317 //CJK UNIFIED IDEOGRAPH - ,0xE54E ,0x9318 //CJK UNIFIED IDEOGRAPH - ,0xE54F ,0x9319 //CJK UNIFIED IDEOGRAPH - ,0xE550 ,0x931A //CJK UNIFIED IDEOGRAPH - ,0xE551 ,0x931B //CJK UNIFIED IDEOGRAPH - ,0xE552 ,0x931C //CJK UNIFIED IDEOGRAPH - ,0xE553 ,0x931D //CJK UNIFIED IDEOGRAPH - ,0xE554 ,0x931E //CJK UNIFIED IDEOGRAPH - ,0xE555 ,0x931F //CJK UNIFIED IDEOGRAPH - ,0xE556 ,0x9320 //CJK UNIFIED IDEOGRAPH - ,0xE557 ,0x9321 //CJK UNIFIED IDEOGRAPH - ,0xE558 ,0x9322 //CJK UNIFIED IDEOGRAPH - ,0xE559 ,0x9323 //CJK UNIFIED IDEOGRAPH - ,0xE55A ,0x9324 //CJK UNIFIED IDEOGRAPH - ,0xE55B ,0x9325 //CJK UNIFIED IDEOGRAPH - ,0xE55C ,0x9326 //CJK UNIFIED IDEOGRAPH - ,0xE55D ,0x9327 //CJK UNIFIED IDEOGRAPH - ,0xE55E ,0x9328 //CJK UNIFIED IDEOGRAPH - ,0xE55F ,0x9329 //CJK UNIFIED IDEOGRAPH - ,0xE560 ,0x932A //CJK UNIFIED IDEOGRAPH - ,0xE561 ,0x932B //CJK UNIFIED IDEOGRAPH - ,0xE562 ,0x932C //CJK UNIFIED IDEOGRAPH - ,0xE563 ,0x932D //CJK UNIFIED IDEOGRAPH - ,0xE564 ,0x932E //CJK UNIFIED IDEOGRAPH - ,0xE565 ,0x932F //CJK UNIFIED IDEOGRAPH - ,0xE566 ,0x9330 //CJK UNIFIED IDEOGRAPH - ,0xE567 ,0x9331 //CJK UNIFIED IDEOGRAPH - ,0xE568 ,0x9332 //CJK UNIFIED IDEOGRAPH - ,0xE569 ,0x9333 //CJK UNIFIED IDEOGRAPH - ,0xE56A ,0x9334 //CJK UNIFIED IDEOGRAPH - ,0xE56B ,0x9335 //CJK UNIFIED IDEOGRAPH - ,0xE56C ,0x9336 //CJK UNIFIED IDEOGRAPH - ,0xE56D ,0x9337 //CJK UNIFIED IDEOGRAPH - ,0xE56E ,0x9338 //CJK UNIFIED IDEOGRAPH - ,0xE56F ,0x9339 //CJK UNIFIED IDEOGRAPH - ,0xE570 ,0x933A //CJK UNIFIED IDEOGRAPH - ,0xE571 ,0x933B //CJK UNIFIED IDEOGRAPH - ,0xE572 ,0x933C //CJK UNIFIED IDEOGRAPH - ,0xE573 ,0x933D //CJK UNIFIED IDEOGRAPH - ,0xE574 ,0x933F //CJK UNIFIED IDEOGRAPH - ,0xE575 ,0x9340 //CJK UNIFIED IDEOGRAPH - ,0xE576 ,0x9341 //CJK UNIFIED IDEOGRAPH - ,0xE577 ,0x9342 //CJK UNIFIED IDEOGRAPH - ,0xE578 ,0x9343 //CJK UNIFIED IDEOGRAPH - ,0xE579 ,0x9344 //CJK UNIFIED IDEOGRAPH - ,0xE57A ,0x9345 //CJK UNIFIED IDEOGRAPH - ,0xE57B ,0x9346 //CJK UNIFIED IDEOGRAPH - ,0xE57C ,0x9347 //CJK UNIFIED IDEOGRAPH - ,0xE57D ,0x9348 //CJK UNIFIED IDEOGRAPH - ,0xE57E ,0x9349 //CJK UNIFIED IDEOGRAPH - ,0xE580 ,0x934A //CJK UNIFIED IDEOGRAPH - ,0xE581 ,0x934B //CJK UNIFIED IDEOGRAPH - ,0xE582 ,0x934C //CJK UNIFIED IDEOGRAPH - ,0xE583 ,0x934D //CJK UNIFIED IDEOGRAPH - ,0xE584 ,0x934E //CJK UNIFIED IDEOGRAPH - ,0xE585 ,0x934F //CJK UNIFIED IDEOGRAPH - ,0xE586 ,0x9350 //CJK UNIFIED IDEOGRAPH - ,0xE587 ,0x9351 //CJK UNIFIED IDEOGRAPH - ,0xE588 ,0x9352 //CJK UNIFIED IDEOGRAPH - ,0xE589 ,0x9353 //CJK UNIFIED IDEOGRAPH - ,0xE58A ,0x9354 //CJK UNIFIED IDEOGRAPH - ,0xE58B ,0x9355 //CJK UNIFIED IDEOGRAPH - ,0xE58C ,0x9356 //CJK UNIFIED IDEOGRAPH - ,0xE58D ,0x9357 //CJK UNIFIED IDEOGRAPH - ,0xE58E ,0x9358 //CJK UNIFIED IDEOGRAPH - ,0xE58F ,0x9359 //CJK UNIFIED IDEOGRAPH - ,0xE590 ,0x935A //CJK UNIFIED IDEOGRAPH - ,0xE591 ,0x935B //CJK UNIFIED IDEOGRAPH - ,0xE592 ,0x935C //CJK UNIFIED IDEOGRAPH - ,0xE593 ,0x935D //CJK UNIFIED IDEOGRAPH - ,0xE594 ,0x935E //CJK UNIFIED IDEOGRAPH - ,0xE595 ,0x935F //CJK UNIFIED IDEOGRAPH - ,0xE596 ,0x9360 //CJK UNIFIED IDEOGRAPH - ,0xE597 ,0x9361 //CJK UNIFIED IDEOGRAPH - ,0xE598 ,0x9362 //CJK UNIFIED IDEOGRAPH - ,0xE599 ,0x9363 //CJK UNIFIED IDEOGRAPH - ,0xE59A ,0x9364 //CJK UNIFIED IDEOGRAPH - ,0xE59B ,0x9365 //CJK UNIFIED IDEOGRAPH - ,0xE59C ,0x9366 //CJK UNIFIED IDEOGRAPH - ,0xE59D ,0x9367 //CJK UNIFIED IDEOGRAPH - ,0xE59E ,0x9368 //CJK UNIFIED IDEOGRAPH - ,0xE59F ,0x9369 //CJK UNIFIED IDEOGRAPH - ,0xE5A0 ,0x936B //CJK UNIFIED IDEOGRAPH - ,0xE5A1 ,0x6FC9 //CJK UNIFIED IDEOGRAPH - ,0xE5A2 ,0x6FA7 //CJK UNIFIED IDEOGRAPH - ,0xE5A3 ,0x6FB9 //CJK UNIFIED IDEOGRAPH - ,0xE5A4 ,0x6FB6 //CJK UNIFIED IDEOGRAPH - ,0xE5A5 ,0x6FC2 //CJK UNIFIED IDEOGRAPH - ,0xE5A6 ,0x6FE1 //CJK UNIFIED IDEOGRAPH - ,0xE5A7 ,0x6FEE //CJK UNIFIED IDEOGRAPH - ,0xE5A8 ,0x6FDE //CJK UNIFIED IDEOGRAPH - ,0xE5A9 ,0x6FE0 //CJK UNIFIED IDEOGRAPH - ,0xE5AA ,0x6FEF //CJK UNIFIED IDEOGRAPH - ,0xE5AB ,0x701A //CJK UNIFIED IDEOGRAPH - ,0xE5AC ,0x7023 //CJK UNIFIED IDEOGRAPH - ,0xE5AD ,0x701B //CJK UNIFIED IDEOGRAPH - ,0xE5AE ,0x7039 //CJK UNIFIED IDEOGRAPH - ,0xE5AF ,0x7035 //CJK UNIFIED IDEOGRAPH - ,0xE5B0 ,0x704F //CJK UNIFIED IDEOGRAPH - ,0xE5B1 ,0x705E //CJK UNIFIED IDEOGRAPH - ,0xE5B2 ,0x5B80 //CJK UNIFIED IDEOGRAPH - ,0xE5B3 ,0x5B84 //CJK UNIFIED IDEOGRAPH - ,0xE5B4 ,0x5B95 //CJK UNIFIED IDEOGRAPH - ,0xE5B5 ,0x5B93 //CJK UNIFIED IDEOGRAPH - ,0xE5B6 ,0x5BA5 //CJK UNIFIED IDEOGRAPH - ,0xE5B7 ,0x5BB8 //CJK UNIFIED IDEOGRAPH - ,0xE5B8 ,0x752F //CJK UNIFIED IDEOGRAPH - ,0xE5B9 ,0x9A9E //CJK UNIFIED IDEOGRAPH - ,0xE5BA ,0x6434 //CJK UNIFIED IDEOGRAPH - ,0xE5BB ,0x5BE4 //CJK UNIFIED IDEOGRAPH - ,0xE5BC ,0x5BEE //CJK UNIFIED IDEOGRAPH - ,0xE5BD ,0x8930 //CJK UNIFIED IDEOGRAPH - ,0xE5BE ,0x5BF0 //CJK UNIFIED IDEOGRAPH - ,0xE5BF ,0x8E47 //CJK UNIFIED IDEOGRAPH - ,0xE5C0 ,0x8B07 //CJK UNIFIED IDEOGRAPH - ,0xE5C1 ,0x8FB6 //CJK UNIFIED IDEOGRAPH - ,0xE5C2 ,0x8FD3 //CJK UNIFIED IDEOGRAPH - ,0xE5C3 ,0x8FD5 //CJK UNIFIED IDEOGRAPH - ,0xE5C4 ,0x8FE5 //CJK UNIFIED IDEOGRAPH - ,0xE5C5 ,0x8FEE //CJK UNIFIED IDEOGRAPH - ,0xE5C6 ,0x8FE4 //CJK UNIFIED IDEOGRAPH - ,0xE5C7 ,0x8FE9 //CJK UNIFIED IDEOGRAPH - ,0xE5C8 ,0x8FE6 //CJK UNIFIED IDEOGRAPH - ,0xE5C9 ,0x8FF3 //CJK UNIFIED IDEOGRAPH - ,0xE5CA ,0x8FE8 //CJK UNIFIED IDEOGRAPH - ,0xE5CB ,0x9005 //CJK UNIFIED IDEOGRAPH - ,0xE5CC ,0x9004 //CJK UNIFIED IDEOGRAPH - ,0xE5CD ,0x900B //CJK UNIFIED IDEOGRAPH - ,0xE5CE ,0x9026 //CJK UNIFIED IDEOGRAPH - ,0xE5CF ,0x9011 //CJK UNIFIED IDEOGRAPH - ,0xE5D0 ,0x900D //CJK UNIFIED IDEOGRAPH - ,0xE5D1 ,0x9016 //CJK UNIFIED IDEOGRAPH - ,0xE5D2 ,0x9021 //CJK UNIFIED IDEOGRAPH - ,0xE5D3 ,0x9035 //CJK UNIFIED IDEOGRAPH - ,0xE5D4 ,0x9036 //CJK UNIFIED IDEOGRAPH - ,0xE5D5 ,0x902D //CJK UNIFIED IDEOGRAPH - ,0xE5D6 ,0x902F //CJK UNIFIED IDEOGRAPH - ,0xE5D7 ,0x9044 //CJK UNIFIED IDEOGRAPH - ,0xE5D8 ,0x9051 //CJK UNIFIED IDEOGRAPH - ,0xE5D9 ,0x9052 //CJK UNIFIED IDEOGRAPH - ,0xE5DA ,0x9050 //CJK UNIFIED IDEOGRAPH - ,0xE5DB ,0x9068 //CJK UNIFIED IDEOGRAPH - ,0xE5DC ,0x9058 //CJK UNIFIED IDEOGRAPH - ,0xE5DD ,0x9062 //CJK UNIFIED IDEOGRAPH - ,0xE5DE ,0x905B //CJK UNIFIED IDEOGRAPH - ,0xE5DF ,0x66B9 //CJK UNIFIED IDEOGRAPH - ,0xE5E0 ,0x9074 //CJK UNIFIED IDEOGRAPH - ,0xE5E1 ,0x907D //CJK UNIFIED IDEOGRAPH - ,0xE5E2 ,0x9082 //CJK UNIFIED IDEOGRAPH - ,0xE5E3 ,0x9088 //CJK UNIFIED IDEOGRAPH - ,0xE5E4 ,0x9083 //CJK UNIFIED IDEOGRAPH - ,0xE5E5 ,0x908B //CJK UNIFIED IDEOGRAPH - ,0xE5E6 ,0x5F50 //CJK UNIFIED IDEOGRAPH - ,0xE5E7 ,0x5F57 //CJK UNIFIED IDEOGRAPH - ,0xE5E8 ,0x5F56 //CJK UNIFIED IDEOGRAPH - ,0xE5E9 ,0x5F58 //CJK UNIFIED IDEOGRAPH - ,0xE5EA ,0x5C3B //CJK UNIFIED IDEOGRAPH - ,0xE5EB ,0x54AB //CJK UNIFIED IDEOGRAPH - ,0xE5EC ,0x5C50 //CJK UNIFIED IDEOGRAPH - ,0xE5ED ,0x5C59 //CJK UNIFIED IDEOGRAPH - ,0xE5EE ,0x5B71 //CJK UNIFIED IDEOGRAPH - ,0xE5EF ,0x5C63 //CJK UNIFIED IDEOGRAPH - ,0xE5F0 ,0x5C66 //CJK UNIFIED IDEOGRAPH - ,0xE5F1 ,0x7FBC //CJK UNIFIED IDEOGRAPH - ,0xE5F2 ,0x5F2A //CJK UNIFIED IDEOGRAPH - ,0xE5F3 ,0x5F29 //CJK UNIFIED IDEOGRAPH - ,0xE5F4 ,0x5F2D //CJK UNIFIED IDEOGRAPH - ,0xE5F5 ,0x8274 //CJK UNIFIED IDEOGRAPH - ,0xE5F6 ,0x5F3C //CJK UNIFIED IDEOGRAPH - ,0xE5F7 ,0x9B3B //CJK UNIFIED IDEOGRAPH - ,0xE5F8 ,0x5C6E //CJK UNIFIED IDEOGRAPH - ,0xE5F9 ,0x5981 //CJK UNIFIED IDEOGRAPH - ,0xE5FA ,0x5983 //CJK UNIFIED IDEOGRAPH - ,0xE5FB ,0x598D //CJK UNIFIED IDEOGRAPH - ,0xE5FC ,0x59A9 //CJK UNIFIED IDEOGRAPH - ,0xE5FD ,0x59AA //CJK UNIFIED IDEOGRAPH - ,0xE5FE ,0x59A3 //CJK UNIFIED IDEOGRAPH - ,0xE640 ,0x936C //CJK UNIFIED IDEOGRAPH - ,0xE641 ,0x936D //CJK UNIFIED IDEOGRAPH - ,0xE642 ,0x936E //CJK UNIFIED IDEOGRAPH - ,0xE643 ,0x936F //CJK UNIFIED IDEOGRAPH - ,0xE644 ,0x9370 //CJK UNIFIED IDEOGRAPH - ,0xE645 ,0x9371 //CJK UNIFIED IDEOGRAPH - ,0xE646 ,0x9372 //CJK UNIFIED IDEOGRAPH - ,0xE647 ,0x9373 //CJK UNIFIED IDEOGRAPH - ,0xE648 ,0x9374 //CJK UNIFIED IDEOGRAPH - ,0xE649 ,0x9375 //CJK UNIFIED IDEOGRAPH - ,0xE64A ,0x9376 //CJK UNIFIED IDEOGRAPH - ,0xE64B ,0x9377 //CJK UNIFIED IDEOGRAPH - ,0xE64C ,0x9378 //CJK UNIFIED IDEOGRAPH - ,0xE64D ,0x9379 //CJK UNIFIED IDEOGRAPH - ,0xE64E ,0x937A //CJK UNIFIED IDEOGRAPH - ,0xE64F ,0x937B //CJK UNIFIED IDEOGRAPH - ,0xE650 ,0x937C //CJK UNIFIED IDEOGRAPH - ,0xE651 ,0x937D //CJK UNIFIED IDEOGRAPH - ,0xE652 ,0x937E //CJK UNIFIED IDEOGRAPH - ,0xE653 ,0x937F //CJK UNIFIED IDEOGRAPH - ,0xE654 ,0x9380 //CJK UNIFIED IDEOGRAPH - ,0xE655 ,0x9381 //CJK UNIFIED IDEOGRAPH - ,0xE656 ,0x9382 //CJK UNIFIED IDEOGRAPH - ,0xE657 ,0x9383 //CJK UNIFIED IDEOGRAPH - ,0xE658 ,0x9384 //CJK UNIFIED IDEOGRAPH - ,0xE659 ,0x9385 //CJK UNIFIED IDEOGRAPH - ,0xE65A ,0x9386 //CJK UNIFIED IDEOGRAPH - ,0xE65B ,0x9387 //CJK UNIFIED IDEOGRAPH - ,0xE65C ,0x9388 //CJK UNIFIED IDEOGRAPH - ,0xE65D ,0x9389 //CJK UNIFIED IDEOGRAPH - ,0xE65E ,0x938A //CJK UNIFIED IDEOGRAPH - ,0xE65F ,0x938B //CJK UNIFIED IDEOGRAPH - ,0xE660 ,0x938C //CJK UNIFIED IDEOGRAPH - ,0xE661 ,0x938D //CJK UNIFIED IDEOGRAPH - ,0xE662 ,0x938E //CJK UNIFIED IDEOGRAPH - ,0xE663 ,0x9390 //CJK UNIFIED IDEOGRAPH - ,0xE664 ,0x9391 //CJK UNIFIED IDEOGRAPH - ,0xE665 ,0x9392 //CJK UNIFIED IDEOGRAPH - ,0xE666 ,0x9393 //CJK UNIFIED IDEOGRAPH - ,0xE667 ,0x9394 //CJK UNIFIED IDEOGRAPH - ,0xE668 ,0x9395 //CJK UNIFIED IDEOGRAPH - ,0xE669 ,0x9396 //CJK UNIFIED IDEOGRAPH - ,0xE66A ,0x9397 //CJK UNIFIED IDEOGRAPH - ,0xE66B ,0x9398 //CJK UNIFIED IDEOGRAPH - ,0xE66C ,0x9399 //CJK UNIFIED IDEOGRAPH - ,0xE66D ,0x939A //CJK UNIFIED IDEOGRAPH - ,0xE66E ,0x939B //CJK UNIFIED IDEOGRAPH - ,0xE66F ,0x939C //CJK UNIFIED IDEOGRAPH - ,0xE670 ,0x939D //CJK UNIFIED IDEOGRAPH - ,0xE671 ,0x939E //CJK UNIFIED IDEOGRAPH - ,0xE672 ,0x939F //CJK UNIFIED IDEOGRAPH - ,0xE673 ,0x93A0 //CJK UNIFIED IDEOGRAPH - ,0xE674 ,0x93A1 //CJK UNIFIED IDEOGRAPH - ,0xE675 ,0x93A2 //CJK UNIFIED IDEOGRAPH - ,0xE676 ,0x93A3 //CJK UNIFIED IDEOGRAPH - ,0xE677 ,0x93A4 //CJK UNIFIED IDEOGRAPH - ,0xE678 ,0x93A5 //CJK UNIFIED IDEOGRAPH - ,0xE679 ,0x93A6 //CJK UNIFIED IDEOGRAPH - ,0xE67A ,0x93A7 //CJK UNIFIED IDEOGRAPH - ,0xE67B ,0x93A8 //CJK UNIFIED IDEOGRAPH - ,0xE67C ,0x93A9 //CJK UNIFIED IDEOGRAPH - ,0xE67D ,0x93AA //CJK UNIFIED IDEOGRAPH - ,0xE67E ,0x93AB //CJK UNIFIED IDEOGRAPH - ,0xE680 ,0x93AC //CJK UNIFIED IDEOGRAPH - ,0xE681 ,0x93AD //CJK UNIFIED IDEOGRAPH - ,0xE682 ,0x93AE //CJK UNIFIED IDEOGRAPH - ,0xE683 ,0x93AF //CJK UNIFIED IDEOGRAPH - ,0xE684 ,0x93B0 //CJK UNIFIED IDEOGRAPH - ,0xE685 ,0x93B1 //CJK UNIFIED IDEOGRAPH - ,0xE686 ,0x93B2 //CJK UNIFIED IDEOGRAPH - ,0xE687 ,0x93B3 //CJK UNIFIED IDEOGRAPH - ,0xE688 ,0x93B4 //CJK UNIFIED IDEOGRAPH - ,0xE689 ,0x93B5 //CJK UNIFIED IDEOGRAPH - ,0xE68A ,0x93B6 //CJK UNIFIED IDEOGRAPH - ,0xE68B ,0x93B7 //CJK UNIFIED IDEOGRAPH - ,0xE68C ,0x93B8 //CJK UNIFIED IDEOGRAPH - ,0xE68D ,0x93B9 //CJK UNIFIED IDEOGRAPH - ,0xE68E ,0x93BA //CJK UNIFIED IDEOGRAPH - ,0xE68F ,0x93BB //CJK UNIFIED IDEOGRAPH - ,0xE690 ,0x93BC //CJK UNIFIED IDEOGRAPH - ,0xE691 ,0x93BD //CJK UNIFIED IDEOGRAPH - ,0xE692 ,0x93BE //CJK UNIFIED IDEOGRAPH - ,0xE693 ,0x93BF //CJK UNIFIED IDEOGRAPH - ,0xE694 ,0x93C0 //CJK UNIFIED IDEOGRAPH - ,0xE695 ,0x93C1 //CJK UNIFIED IDEOGRAPH - ,0xE696 ,0x93C2 //CJK UNIFIED IDEOGRAPH - ,0xE697 ,0x93C3 //CJK UNIFIED IDEOGRAPH - ,0xE698 ,0x93C4 //CJK UNIFIED IDEOGRAPH - ,0xE699 ,0x93C5 //CJK UNIFIED IDEOGRAPH - ,0xE69A ,0x93C6 //CJK UNIFIED IDEOGRAPH - ,0xE69B ,0x93C7 //CJK UNIFIED IDEOGRAPH - ,0xE69C ,0x93C8 //CJK UNIFIED IDEOGRAPH - ,0xE69D ,0x93C9 //CJK UNIFIED IDEOGRAPH - ,0xE69E ,0x93CB //CJK UNIFIED IDEOGRAPH - ,0xE69F ,0x93CC //CJK UNIFIED IDEOGRAPH - ,0xE6A0 ,0x93CD //CJK UNIFIED IDEOGRAPH - ,0xE6A1 ,0x5997 //CJK UNIFIED IDEOGRAPH - ,0xE6A2 ,0x59CA //CJK UNIFIED IDEOGRAPH - ,0xE6A3 ,0x59AB //CJK UNIFIED IDEOGRAPH - ,0xE6A4 ,0x599E //CJK UNIFIED IDEOGRAPH - ,0xE6A5 ,0x59A4 //CJK UNIFIED IDEOGRAPH - ,0xE6A6 ,0x59D2 //CJK UNIFIED IDEOGRAPH - ,0xE6A7 ,0x59B2 //CJK UNIFIED IDEOGRAPH - ,0xE6A8 ,0x59AF //CJK UNIFIED IDEOGRAPH - ,0xE6A9 ,0x59D7 //CJK UNIFIED IDEOGRAPH - ,0xE6AA ,0x59BE //CJK UNIFIED IDEOGRAPH - ,0xE6AB ,0x5A05 //CJK UNIFIED IDEOGRAPH - ,0xE6AC ,0x5A06 //CJK UNIFIED IDEOGRAPH - ,0xE6AD ,0x59DD //CJK UNIFIED IDEOGRAPH - ,0xE6AE ,0x5A08 //CJK UNIFIED IDEOGRAPH - ,0xE6AF ,0x59E3 //CJK UNIFIED IDEOGRAPH - ,0xE6B0 ,0x59D8 //CJK UNIFIED IDEOGRAPH - ,0xE6B1 ,0x59F9 //CJK UNIFIED IDEOGRAPH - ,0xE6B2 ,0x5A0C //CJK UNIFIED IDEOGRAPH - ,0xE6B3 ,0x5A09 //CJK UNIFIED IDEOGRAPH - ,0xE6B4 ,0x5A32 //CJK UNIFIED IDEOGRAPH - ,0xE6B5 ,0x5A34 //CJK UNIFIED IDEOGRAPH - ,0xE6B6 ,0x5A11 //CJK UNIFIED IDEOGRAPH - ,0xE6B7 ,0x5A23 //CJK UNIFIED IDEOGRAPH - ,0xE6B8 ,0x5A13 //CJK UNIFIED IDEOGRAPH - ,0xE6B9 ,0x5A40 //CJK UNIFIED IDEOGRAPH - ,0xE6BA ,0x5A67 //CJK UNIFIED IDEOGRAPH - ,0xE6BB ,0x5A4A //CJK UNIFIED IDEOGRAPH - ,0xE6BC ,0x5A55 //CJK UNIFIED IDEOGRAPH - ,0xE6BD ,0x5A3C //CJK UNIFIED IDEOGRAPH - ,0xE6BE ,0x5A62 //CJK UNIFIED IDEOGRAPH - ,0xE6BF ,0x5A75 //CJK UNIFIED IDEOGRAPH - ,0xE6C0 ,0x80EC //CJK UNIFIED IDEOGRAPH - ,0xE6C1 ,0x5AAA //CJK UNIFIED IDEOGRAPH - ,0xE6C2 ,0x5A9B //CJK UNIFIED IDEOGRAPH - ,0xE6C3 ,0x5A77 //CJK UNIFIED IDEOGRAPH - ,0xE6C4 ,0x5A7A //CJK UNIFIED IDEOGRAPH - ,0xE6C5 ,0x5ABE //CJK UNIFIED IDEOGRAPH - ,0xE6C6 ,0x5AEB //CJK UNIFIED IDEOGRAPH - ,0xE6C7 ,0x5AB2 //CJK UNIFIED IDEOGRAPH - ,0xE6C8 ,0x5AD2 //CJK UNIFIED IDEOGRAPH - ,0xE6C9 ,0x5AD4 //CJK UNIFIED IDEOGRAPH - ,0xE6CA ,0x5AB8 //CJK UNIFIED IDEOGRAPH - ,0xE6CB ,0x5AE0 //CJK UNIFIED IDEOGRAPH - ,0xE6CC ,0x5AE3 //CJK UNIFIED IDEOGRAPH - ,0xE6CD ,0x5AF1 //CJK UNIFIED IDEOGRAPH - ,0xE6CE ,0x5AD6 //CJK UNIFIED IDEOGRAPH - ,0xE6CF ,0x5AE6 //CJK UNIFIED IDEOGRAPH - ,0xE6D0 ,0x5AD8 //CJK UNIFIED IDEOGRAPH - ,0xE6D1 ,0x5ADC //CJK UNIFIED IDEOGRAPH - ,0xE6D2 ,0x5B09 //CJK UNIFIED IDEOGRAPH - ,0xE6D3 ,0x5B17 //CJK UNIFIED IDEOGRAPH - ,0xE6D4 ,0x5B16 //CJK UNIFIED IDEOGRAPH - ,0xE6D5 ,0x5B32 //CJK UNIFIED IDEOGRAPH - ,0xE6D6 ,0x5B37 //CJK UNIFIED IDEOGRAPH - ,0xE6D7 ,0x5B40 //CJK UNIFIED IDEOGRAPH - ,0xE6D8 ,0x5C15 //CJK UNIFIED IDEOGRAPH - ,0xE6D9 ,0x5C1C //CJK UNIFIED IDEOGRAPH - ,0xE6DA ,0x5B5A //CJK UNIFIED IDEOGRAPH - ,0xE6DB ,0x5B65 //CJK UNIFIED IDEOGRAPH - ,0xE6DC ,0x5B73 //CJK UNIFIED IDEOGRAPH - ,0xE6DD ,0x5B51 //CJK UNIFIED IDEOGRAPH - ,0xE6DE ,0x5B53 //CJK UNIFIED IDEOGRAPH - ,0xE6DF ,0x5B62 //CJK UNIFIED IDEOGRAPH - ,0xE6E0 ,0x9A75 //CJK UNIFIED IDEOGRAPH - ,0xE6E1 ,0x9A77 //CJK UNIFIED IDEOGRAPH - ,0xE6E2 ,0x9A78 //CJK UNIFIED IDEOGRAPH - ,0xE6E3 ,0x9A7A //CJK UNIFIED IDEOGRAPH - ,0xE6E4 ,0x9A7F //CJK UNIFIED IDEOGRAPH - ,0xE6E5 ,0x9A7D //CJK UNIFIED IDEOGRAPH - ,0xE6E6 ,0x9A80 //CJK UNIFIED IDEOGRAPH - ,0xE6E7 ,0x9A81 //CJK UNIFIED IDEOGRAPH - ,0xE6E8 ,0x9A85 //CJK UNIFIED IDEOGRAPH - ,0xE6E9 ,0x9A88 //CJK UNIFIED IDEOGRAPH - ,0xE6EA ,0x9A8A //CJK UNIFIED IDEOGRAPH - ,0xE6EB ,0x9A90 //CJK UNIFIED IDEOGRAPH - ,0xE6EC ,0x9A92 //CJK UNIFIED IDEOGRAPH - ,0xE6ED ,0x9A93 //CJK UNIFIED IDEOGRAPH - ,0xE6EE ,0x9A96 //CJK UNIFIED IDEOGRAPH - ,0xE6EF ,0x9A98 //CJK UNIFIED IDEOGRAPH - ,0xE6F0 ,0x9A9B //CJK UNIFIED IDEOGRAPH - ,0xE6F1 ,0x9A9C //CJK UNIFIED IDEOGRAPH - ,0xE6F2 ,0x9A9D //CJK UNIFIED IDEOGRAPH - ,0xE6F3 ,0x9A9F //CJK UNIFIED IDEOGRAPH - ,0xE6F4 ,0x9AA0 //CJK UNIFIED IDEOGRAPH - ,0xE6F5 ,0x9AA2 //CJK UNIFIED IDEOGRAPH - ,0xE6F6 ,0x9AA3 //CJK UNIFIED IDEOGRAPH - ,0xE6F7 ,0x9AA5 //CJK UNIFIED IDEOGRAPH - ,0xE6F8 ,0x9AA7 //CJK UNIFIED IDEOGRAPH - ,0xE6F9 ,0x7E9F //CJK UNIFIED IDEOGRAPH - ,0xE6FA ,0x7EA1 //CJK UNIFIED IDEOGRAPH - ,0xE6FB ,0x7EA3 //CJK UNIFIED IDEOGRAPH - ,0xE6FC ,0x7EA5 //CJK UNIFIED IDEOGRAPH - ,0xE6FD ,0x7EA8 //CJK UNIFIED IDEOGRAPH - ,0xE6FE ,0x7EA9 //CJK UNIFIED IDEOGRAPH - ,0xE740 ,0x93CE //CJK UNIFIED IDEOGRAPH - ,0xE741 ,0x93CF //CJK UNIFIED IDEOGRAPH - ,0xE742 ,0x93D0 //CJK UNIFIED IDEOGRAPH - ,0xE743 ,0x93D1 //CJK UNIFIED IDEOGRAPH - ,0xE744 ,0x93D2 //CJK UNIFIED IDEOGRAPH - ,0xE745 ,0x93D3 //CJK UNIFIED IDEOGRAPH - ,0xE746 ,0x93D4 //CJK UNIFIED IDEOGRAPH - ,0xE747 ,0x93D5 //CJK UNIFIED IDEOGRAPH - ,0xE748 ,0x93D7 //CJK UNIFIED IDEOGRAPH - ,0xE749 ,0x93D8 //CJK UNIFIED IDEOGRAPH - ,0xE74A ,0x93D9 //CJK UNIFIED IDEOGRAPH - ,0xE74B ,0x93DA //CJK UNIFIED IDEOGRAPH - ,0xE74C ,0x93DB //CJK UNIFIED IDEOGRAPH - ,0xE74D ,0x93DC //CJK UNIFIED IDEOGRAPH - ,0xE74E ,0x93DD //CJK UNIFIED IDEOGRAPH - ,0xE74F ,0x93DE //CJK UNIFIED IDEOGRAPH - ,0xE750 ,0x93DF //CJK UNIFIED IDEOGRAPH - ,0xE751 ,0x93E0 //CJK UNIFIED IDEOGRAPH - ,0xE752 ,0x93E1 //CJK UNIFIED IDEOGRAPH - ,0xE753 ,0x93E2 //CJK UNIFIED IDEOGRAPH - ,0xE754 ,0x93E3 //CJK UNIFIED IDEOGRAPH - ,0xE755 ,0x93E4 //CJK UNIFIED IDEOGRAPH - ,0xE756 ,0x93E5 //CJK UNIFIED IDEOGRAPH - ,0xE757 ,0x93E6 //CJK UNIFIED IDEOGRAPH - ,0xE758 ,0x93E7 //CJK UNIFIED IDEOGRAPH - ,0xE759 ,0x93E8 //CJK UNIFIED IDEOGRAPH - ,0xE75A ,0x93E9 //CJK UNIFIED IDEOGRAPH - ,0xE75B ,0x93EA //CJK UNIFIED IDEOGRAPH - ,0xE75C ,0x93EB //CJK UNIFIED IDEOGRAPH - ,0xE75D ,0x93EC //CJK UNIFIED IDEOGRAPH - ,0xE75E ,0x93ED //CJK UNIFIED IDEOGRAPH - ,0xE75F ,0x93EE //CJK UNIFIED IDEOGRAPH - ,0xE760 ,0x93EF //CJK UNIFIED IDEOGRAPH - ,0xE761 ,0x93F0 //CJK UNIFIED IDEOGRAPH - ,0xE762 ,0x93F1 //CJK UNIFIED IDEOGRAPH - ,0xE763 ,0x93F2 //CJK UNIFIED IDEOGRAPH - ,0xE764 ,0x93F3 //CJK UNIFIED IDEOGRAPH - ,0xE765 ,0x93F4 //CJK UNIFIED IDEOGRAPH - ,0xE766 ,0x93F5 //CJK UNIFIED IDEOGRAPH - ,0xE767 ,0x93F6 //CJK UNIFIED IDEOGRAPH - ,0xE768 ,0x93F7 //CJK UNIFIED IDEOGRAPH - ,0xE769 ,0x93F8 //CJK UNIFIED IDEOGRAPH - ,0xE76A ,0x93F9 //CJK UNIFIED IDEOGRAPH - ,0xE76B ,0x93FA //CJK UNIFIED IDEOGRAPH - ,0xE76C ,0x93FB //CJK UNIFIED IDEOGRAPH - ,0xE76D ,0x93FC //CJK UNIFIED IDEOGRAPH - ,0xE76E ,0x93FD //CJK UNIFIED IDEOGRAPH - ,0xE76F ,0x93FE //CJK UNIFIED IDEOGRAPH - ,0xE770 ,0x93FF //CJK UNIFIED IDEOGRAPH - ,0xE771 ,0x9400 //CJK UNIFIED IDEOGRAPH - ,0xE772 ,0x9401 //CJK UNIFIED IDEOGRAPH - ,0xE773 ,0x9402 //CJK UNIFIED IDEOGRAPH - ,0xE774 ,0x9403 //CJK UNIFIED IDEOGRAPH - ,0xE775 ,0x9404 //CJK UNIFIED IDEOGRAPH - ,0xE776 ,0x9405 //CJK UNIFIED IDEOGRAPH - ,0xE777 ,0x9406 //CJK UNIFIED IDEOGRAPH - ,0xE778 ,0x9407 //CJK UNIFIED IDEOGRAPH - ,0xE779 ,0x9408 //CJK UNIFIED IDEOGRAPH - ,0xE77A ,0x9409 //CJK UNIFIED IDEOGRAPH - ,0xE77B ,0x940A //CJK UNIFIED IDEOGRAPH - ,0xE77C ,0x940B //CJK UNIFIED IDEOGRAPH - ,0xE77D ,0x940C //CJK UNIFIED IDEOGRAPH - ,0xE77E ,0x940D //CJK UNIFIED IDEOGRAPH - ,0xE780 ,0x940E //CJK UNIFIED IDEOGRAPH - ,0xE781 ,0x940F //CJK UNIFIED IDEOGRAPH - ,0xE782 ,0x9410 //CJK UNIFIED IDEOGRAPH - ,0xE783 ,0x9411 //CJK UNIFIED IDEOGRAPH - ,0xE784 ,0x9412 //CJK UNIFIED IDEOGRAPH - ,0xE785 ,0x9413 //CJK UNIFIED IDEOGRAPH - ,0xE786 ,0x9414 //CJK UNIFIED IDEOGRAPH - ,0xE787 ,0x9415 //CJK UNIFIED IDEOGRAPH - ,0xE788 ,0x9416 //CJK UNIFIED IDEOGRAPH - ,0xE789 ,0x9417 //CJK UNIFIED IDEOGRAPH - ,0xE78A ,0x9418 //CJK UNIFIED IDEOGRAPH - ,0xE78B ,0x9419 //CJK UNIFIED IDEOGRAPH - ,0xE78C ,0x941A //CJK UNIFIED IDEOGRAPH - ,0xE78D ,0x941B //CJK UNIFIED IDEOGRAPH - ,0xE78E ,0x941C //CJK UNIFIED IDEOGRAPH - ,0xE78F ,0x941D //CJK UNIFIED IDEOGRAPH - ,0xE790 ,0x941E //CJK UNIFIED IDEOGRAPH - ,0xE791 ,0x941F //CJK UNIFIED IDEOGRAPH - ,0xE792 ,0x9420 //CJK UNIFIED IDEOGRAPH - ,0xE793 ,0x9421 //CJK UNIFIED IDEOGRAPH - ,0xE794 ,0x9422 //CJK UNIFIED IDEOGRAPH - ,0xE795 ,0x9423 //CJK UNIFIED IDEOGRAPH - ,0xE796 ,0x9424 //CJK UNIFIED IDEOGRAPH - ,0xE797 ,0x9425 //CJK UNIFIED IDEOGRAPH - ,0xE798 ,0x9426 //CJK UNIFIED IDEOGRAPH - ,0xE799 ,0x9427 //CJK UNIFIED IDEOGRAPH - ,0xE79A ,0x9428 //CJK UNIFIED IDEOGRAPH - ,0xE79B ,0x9429 //CJK UNIFIED IDEOGRAPH - ,0xE79C ,0x942A //CJK UNIFIED IDEOGRAPH - ,0xE79D ,0x942B //CJK UNIFIED IDEOGRAPH - ,0xE79E ,0x942C //CJK UNIFIED IDEOGRAPH - ,0xE79F ,0x942D //CJK UNIFIED IDEOGRAPH - ,0xE7A0 ,0x942E //CJK UNIFIED IDEOGRAPH - ,0xE7A1 ,0x7EAD //CJK UNIFIED IDEOGRAPH - ,0xE7A2 ,0x7EB0 //CJK UNIFIED IDEOGRAPH - ,0xE7A3 ,0x7EBE //CJK UNIFIED IDEOGRAPH - ,0xE7A4 ,0x7EC0 //CJK UNIFIED IDEOGRAPH - ,0xE7A5 ,0x7EC1 //CJK UNIFIED IDEOGRAPH - ,0xE7A6 ,0x7EC2 //CJK UNIFIED IDEOGRAPH - ,0xE7A7 ,0x7EC9 //CJK UNIFIED IDEOGRAPH - ,0xE7A8 ,0x7ECB //CJK UNIFIED IDEOGRAPH - ,0xE7A9 ,0x7ECC //CJK UNIFIED IDEOGRAPH - ,0xE7AA ,0x7ED0 //CJK UNIFIED IDEOGRAPH - ,0xE7AB ,0x7ED4 //CJK UNIFIED IDEOGRAPH - ,0xE7AC ,0x7ED7 //CJK UNIFIED IDEOGRAPH - ,0xE7AD ,0x7EDB //CJK UNIFIED IDEOGRAPH - ,0xE7AE ,0x7EE0 //CJK UNIFIED IDEOGRAPH - ,0xE7AF ,0x7EE1 //CJK UNIFIED IDEOGRAPH - ,0xE7B0 ,0x7EE8 //CJK UNIFIED IDEOGRAPH - ,0xE7B1 ,0x7EEB //CJK UNIFIED IDEOGRAPH - ,0xE7B2 ,0x7EEE //CJK UNIFIED IDEOGRAPH - ,0xE7B3 ,0x7EEF //CJK UNIFIED IDEOGRAPH - ,0xE7B4 ,0x7EF1 //CJK UNIFIED IDEOGRAPH - ,0xE7B5 ,0x7EF2 //CJK UNIFIED IDEOGRAPH - ,0xE7B6 ,0x7F0D //CJK UNIFIED IDEOGRAPH - ,0xE7B7 ,0x7EF6 //CJK UNIFIED IDEOGRAPH - ,0xE7B8 ,0x7EFA //CJK UNIFIED IDEOGRAPH - ,0xE7B9 ,0x7EFB //CJK UNIFIED IDEOGRAPH - ,0xE7BA ,0x7EFE //CJK UNIFIED IDEOGRAPH - ,0xE7BB ,0x7F01 //CJK UNIFIED IDEOGRAPH - ,0xE7BC ,0x7F02 //CJK UNIFIED IDEOGRAPH - ,0xE7BD ,0x7F03 //CJK UNIFIED IDEOGRAPH - ,0xE7BE ,0x7F07 //CJK UNIFIED IDEOGRAPH - ,0xE7BF ,0x7F08 //CJK UNIFIED IDEOGRAPH - ,0xE7C0 ,0x7F0B //CJK UNIFIED IDEOGRAPH - ,0xE7C1 ,0x7F0C //CJK UNIFIED IDEOGRAPH - ,0xE7C2 ,0x7F0F //CJK UNIFIED IDEOGRAPH - ,0xE7C3 ,0x7F11 //CJK UNIFIED IDEOGRAPH - ,0xE7C4 ,0x7F12 //CJK UNIFIED IDEOGRAPH - ,0xE7C5 ,0x7F17 //CJK UNIFIED IDEOGRAPH - ,0xE7C6 ,0x7F19 //CJK UNIFIED IDEOGRAPH - ,0xE7C7 ,0x7F1C //CJK UNIFIED IDEOGRAPH - ,0xE7C8 ,0x7F1B //CJK UNIFIED IDEOGRAPH - ,0xE7C9 ,0x7F1F //CJK UNIFIED IDEOGRAPH - ,0xE7CA ,0x7F21 //CJK UNIFIED IDEOGRAPH - ,0xE7CB ,0x7F22 //CJK UNIFIED IDEOGRAPH - ,0xE7CC ,0x7F23 //CJK UNIFIED IDEOGRAPH - ,0xE7CD ,0x7F24 //CJK UNIFIED IDEOGRAPH - ,0xE7CE ,0x7F25 //CJK UNIFIED IDEOGRAPH - ,0xE7CF ,0x7F26 //CJK UNIFIED IDEOGRAPH - ,0xE7D0 ,0x7F27 //CJK UNIFIED IDEOGRAPH - ,0xE7D1 ,0x7F2A //CJK UNIFIED IDEOGRAPH - ,0xE7D2 ,0x7F2B //CJK UNIFIED IDEOGRAPH - ,0xE7D3 ,0x7F2C //CJK UNIFIED IDEOGRAPH - ,0xE7D4 ,0x7F2D //CJK UNIFIED IDEOGRAPH - ,0xE7D5 ,0x7F2F //CJK UNIFIED IDEOGRAPH - ,0xE7D6 ,0x7F30 //CJK UNIFIED IDEOGRAPH - ,0xE7D7 ,0x7F31 //CJK UNIFIED IDEOGRAPH - ,0xE7D8 ,0x7F32 //CJK UNIFIED IDEOGRAPH - ,0xE7D9 ,0x7F33 //CJK UNIFIED IDEOGRAPH - ,0xE7DA ,0x7F35 //CJK UNIFIED IDEOGRAPH - ,0xE7DB ,0x5E7A //CJK UNIFIED IDEOGRAPH - ,0xE7DC ,0x757F //CJK UNIFIED IDEOGRAPH - ,0xE7DD ,0x5DDB //CJK UNIFIED IDEOGRAPH - ,0xE7DE ,0x753E //CJK UNIFIED IDEOGRAPH - ,0xE7DF ,0x9095 //CJK UNIFIED IDEOGRAPH - ,0xE7E0 ,0x738E //CJK UNIFIED IDEOGRAPH - ,0xE7E1 ,0x7391 //CJK UNIFIED IDEOGRAPH - ,0xE7E2 ,0x73AE //CJK UNIFIED IDEOGRAPH - ,0xE7E3 ,0x73A2 //CJK UNIFIED IDEOGRAPH - ,0xE7E4 ,0x739F //CJK UNIFIED IDEOGRAPH - ,0xE7E5 ,0x73CF //CJK UNIFIED IDEOGRAPH - ,0xE7E6 ,0x73C2 //CJK UNIFIED IDEOGRAPH - ,0xE7E7 ,0x73D1 //CJK UNIFIED IDEOGRAPH - ,0xE7E8 ,0x73B7 //CJK UNIFIED IDEOGRAPH - ,0xE7E9 ,0x73B3 //CJK UNIFIED IDEOGRAPH - ,0xE7EA ,0x73C0 //CJK UNIFIED IDEOGRAPH - ,0xE7EB ,0x73C9 //CJK UNIFIED IDEOGRAPH - ,0xE7EC ,0x73C8 //CJK UNIFIED IDEOGRAPH - ,0xE7ED ,0x73E5 //CJK UNIFIED IDEOGRAPH - ,0xE7EE ,0x73D9 //CJK UNIFIED IDEOGRAPH - ,0xE7EF ,0x987C //CJK UNIFIED IDEOGRAPH - ,0xE7F0 ,0x740A //CJK UNIFIED IDEOGRAPH - ,0xE7F1 ,0x73E9 //CJK UNIFIED IDEOGRAPH - ,0xE7F2 ,0x73E7 //CJK UNIFIED IDEOGRAPH - ,0xE7F3 ,0x73DE //CJK UNIFIED IDEOGRAPH - ,0xE7F4 ,0x73BA //CJK UNIFIED IDEOGRAPH - ,0xE7F5 ,0x73F2 //CJK UNIFIED IDEOGRAPH - ,0xE7F6 ,0x740F //CJK UNIFIED IDEOGRAPH - ,0xE7F7 ,0x742A //CJK UNIFIED IDEOGRAPH - ,0xE7F8 ,0x745B //CJK UNIFIED IDEOGRAPH - ,0xE7F9 ,0x7426 //CJK UNIFIED IDEOGRAPH - ,0xE7FA ,0x7425 //CJK UNIFIED IDEOGRAPH - ,0xE7FB ,0x7428 //CJK UNIFIED IDEOGRAPH - ,0xE7FC ,0x7430 //CJK UNIFIED IDEOGRAPH - ,0xE7FD ,0x742E //CJK UNIFIED IDEOGRAPH - ,0xE7FE ,0x742C //CJK UNIFIED IDEOGRAPH - ,0xE840 ,0x942F //CJK UNIFIED IDEOGRAPH - ,0xE841 ,0x9430 //CJK UNIFIED IDEOGRAPH - ,0xE842 ,0x9431 //CJK UNIFIED IDEOGRAPH - ,0xE843 ,0x9432 //CJK UNIFIED IDEOGRAPH - ,0xE844 ,0x9433 //CJK UNIFIED IDEOGRAPH - ,0xE845 ,0x9434 //CJK UNIFIED IDEOGRAPH - ,0xE846 ,0x9435 //CJK UNIFIED IDEOGRAPH - ,0xE847 ,0x9436 //CJK UNIFIED IDEOGRAPH - ,0xE848 ,0x9437 //CJK UNIFIED IDEOGRAPH - ,0xE849 ,0x9438 //CJK UNIFIED IDEOGRAPH - ,0xE84A ,0x9439 //CJK UNIFIED IDEOGRAPH - ,0xE84B ,0x943A //CJK UNIFIED IDEOGRAPH - ,0xE84C ,0x943B //CJK UNIFIED IDEOGRAPH - ,0xE84D ,0x943C //CJK UNIFIED IDEOGRAPH - ,0xE84E ,0x943D //CJK UNIFIED IDEOGRAPH - ,0xE84F ,0x943F //CJK UNIFIED IDEOGRAPH - ,0xE850 ,0x9440 //CJK UNIFIED IDEOGRAPH - ,0xE851 ,0x9441 //CJK UNIFIED IDEOGRAPH - ,0xE852 ,0x9442 //CJK UNIFIED IDEOGRAPH - ,0xE853 ,0x9443 //CJK UNIFIED IDEOGRAPH - ,0xE854 ,0x9444 //CJK UNIFIED IDEOGRAPH - ,0xE855 ,0x9445 //CJK UNIFIED IDEOGRAPH - ,0xE856 ,0x9446 //CJK UNIFIED IDEOGRAPH - ,0xE857 ,0x9447 //CJK UNIFIED IDEOGRAPH - ,0xE858 ,0x9448 //CJK UNIFIED IDEOGRAPH - ,0xE859 ,0x9449 //CJK UNIFIED IDEOGRAPH - ,0xE85A ,0x944A //CJK UNIFIED IDEOGRAPH - ,0xE85B ,0x944B //CJK UNIFIED IDEOGRAPH - ,0xE85C ,0x944C //CJK UNIFIED IDEOGRAPH - ,0xE85D ,0x944D //CJK UNIFIED IDEOGRAPH - ,0xE85E ,0x944E //CJK UNIFIED IDEOGRAPH - ,0xE85F ,0x944F //CJK UNIFIED IDEOGRAPH - ,0xE860 ,0x9450 //CJK UNIFIED IDEOGRAPH - ,0xE861 ,0x9451 //CJK UNIFIED IDEOGRAPH - ,0xE862 ,0x9452 //CJK UNIFIED IDEOGRAPH - ,0xE863 ,0x9453 //CJK UNIFIED IDEOGRAPH - ,0xE864 ,0x9454 //CJK UNIFIED IDEOGRAPH - ,0xE865 ,0x9455 //CJK UNIFIED IDEOGRAPH - ,0xE866 ,0x9456 //CJK UNIFIED IDEOGRAPH - ,0xE867 ,0x9457 //CJK UNIFIED IDEOGRAPH - ,0xE868 ,0x9458 //CJK UNIFIED IDEOGRAPH - ,0xE869 ,0x9459 //CJK UNIFIED IDEOGRAPH - ,0xE86A ,0x945A //CJK UNIFIED IDEOGRAPH - ,0xE86B ,0x945B //CJK UNIFIED IDEOGRAPH - ,0xE86C ,0x945C //CJK UNIFIED IDEOGRAPH - ,0xE86D ,0x945D //CJK UNIFIED IDEOGRAPH - ,0xE86E ,0x945E //CJK UNIFIED IDEOGRAPH - ,0xE86F ,0x945F //CJK UNIFIED IDEOGRAPH - ,0xE870 ,0x9460 //CJK UNIFIED IDEOGRAPH - ,0xE871 ,0x9461 //CJK UNIFIED IDEOGRAPH - ,0xE872 ,0x9462 //CJK UNIFIED IDEOGRAPH - ,0xE873 ,0x9463 //CJK UNIFIED IDEOGRAPH - ,0xE874 ,0x9464 //CJK UNIFIED IDEOGRAPH - ,0xE875 ,0x9465 //CJK UNIFIED IDEOGRAPH - ,0xE876 ,0x9466 //CJK UNIFIED IDEOGRAPH - ,0xE877 ,0x9467 //CJK UNIFIED IDEOGRAPH - ,0xE878 ,0x9468 //CJK UNIFIED IDEOGRAPH - ,0xE879 ,0x9469 //CJK UNIFIED IDEOGRAPH - ,0xE87A ,0x946A //CJK UNIFIED IDEOGRAPH - ,0xE87B ,0x946C //CJK UNIFIED IDEOGRAPH - ,0xE87C ,0x946D //CJK UNIFIED IDEOGRAPH - ,0xE87D ,0x946E //CJK UNIFIED IDEOGRAPH - ,0xE87E ,0x946F //CJK UNIFIED IDEOGRAPH - ,0xE880 ,0x9470 //CJK UNIFIED IDEOGRAPH - ,0xE881 ,0x9471 //CJK UNIFIED IDEOGRAPH - ,0xE882 ,0x9472 //CJK UNIFIED IDEOGRAPH - ,0xE883 ,0x9473 //CJK UNIFIED IDEOGRAPH - ,0xE884 ,0x9474 //CJK UNIFIED IDEOGRAPH - ,0xE885 ,0x9475 //CJK UNIFIED IDEOGRAPH - ,0xE886 ,0x9476 //CJK UNIFIED IDEOGRAPH - ,0xE887 ,0x9477 //CJK UNIFIED IDEOGRAPH - ,0xE888 ,0x9478 //CJK UNIFIED IDEOGRAPH - ,0xE889 ,0x9479 //CJK UNIFIED IDEOGRAPH - ,0xE88A ,0x947A //CJK UNIFIED IDEOGRAPH - ,0xE88B ,0x947B //CJK UNIFIED IDEOGRAPH - ,0xE88C ,0x947C //CJK UNIFIED IDEOGRAPH - ,0xE88D ,0x947D //CJK UNIFIED IDEOGRAPH - ,0xE88E ,0x947E //CJK UNIFIED IDEOGRAPH - ,0xE88F ,0x947F //CJK UNIFIED IDEOGRAPH - ,0xE890 ,0x9480 //CJK UNIFIED IDEOGRAPH - ,0xE891 ,0x9481 //CJK UNIFIED IDEOGRAPH - ,0xE892 ,0x9482 //CJK UNIFIED IDEOGRAPH - ,0xE893 ,0x9483 //CJK UNIFIED IDEOGRAPH - ,0xE894 ,0x9484 //CJK UNIFIED IDEOGRAPH - ,0xE895 ,0x9491 //CJK UNIFIED IDEOGRAPH - ,0xE896 ,0x9496 //CJK UNIFIED IDEOGRAPH - ,0xE897 ,0x9498 //CJK UNIFIED IDEOGRAPH - ,0xE898 ,0x94C7 //CJK UNIFIED IDEOGRAPH - ,0xE899 ,0x94CF //CJK UNIFIED IDEOGRAPH - ,0xE89A ,0x94D3 //CJK UNIFIED IDEOGRAPH - ,0xE89B ,0x94D4 //CJK UNIFIED IDEOGRAPH - ,0xE89C ,0x94DA //CJK UNIFIED IDEOGRAPH - ,0xE89D ,0x94E6 //CJK UNIFIED IDEOGRAPH - ,0xE89E ,0x94FB //CJK UNIFIED IDEOGRAPH - ,0xE89F ,0x951C //CJK UNIFIED IDEOGRAPH - ,0xE8A0 ,0x9520 //CJK UNIFIED IDEOGRAPH - ,0xE8A1 ,0x741B //CJK UNIFIED IDEOGRAPH - ,0xE8A2 ,0x741A //CJK UNIFIED IDEOGRAPH - ,0xE8A3 ,0x7441 //CJK UNIFIED IDEOGRAPH - ,0xE8A4 ,0x745C //CJK UNIFIED IDEOGRAPH - ,0xE8A5 ,0x7457 //CJK UNIFIED IDEOGRAPH - ,0xE8A6 ,0x7455 //CJK UNIFIED IDEOGRAPH - ,0xE8A7 ,0x7459 //CJK UNIFIED IDEOGRAPH - ,0xE8A8 ,0x7477 //CJK UNIFIED IDEOGRAPH - ,0xE8A9 ,0x746D //CJK UNIFIED IDEOGRAPH - ,0xE8AA ,0x747E //CJK UNIFIED IDEOGRAPH - ,0xE8AB ,0x749C //CJK UNIFIED IDEOGRAPH - ,0xE8AC ,0x748E //CJK UNIFIED IDEOGRAPH - ,0xE8AD ,0x7480 //CJK UNIFIED IDEOGRAPH - ,0xE8AE ,0x7481 //CJK UNIFIED IDEOGRAPH - ,0xE8AF ,0x7487 //CJK UNIFIED IDEOGRAPH - ,0xE8B0 ,0x748B //CJK UNIFIED IDEOGRAPH - ,0xE8B1 ,0x749E //CJK UNIFIED IDEOGRAPH - ,0xE8B2 ,0x74A8 //CJK UNIFIED IDEOGRAPH - ,0xE8B3 ,0x74A9 //CJK UNIFIED IDEOGRAPH - ,0xE8B4 ,0x7490 //CJK UNIFIED IDEOGRAPH - ,0xE8B5 ,0x74A7 //CJK UNIFIED IDEOGRAPH - ,0xE8B6 ,0x74D2 //CJK UNIFIED IDEOGRAPH - ,0xE8B7 ,0x74BA //CJK UNIFIED IDEOGRAPH - ,0xE8B8 ,0x97EA //CJK UNIFIED IDEOGRAPH - ,0xE8B9 ,0x97EB //CJK UNIFIED IDEOGRAPH - ,0xE8BA ,0x97EC //CJK UNIFIED IDEOGRAPH - ,0xE8BB ,0x674C //CJK UNIFIED IDEOGRAPH - ,0xE8BC ,0x6753 //CJK UNIFIED IDEOGRAPH - ,0xE8BD ,0x675E //CJK UNIFIED IDEOGRAPH - ,0xE8BE ,0x6748 //CJK UNIFIED IDEOGRAPH - ,0xE8BF ,0x6769 //CJK UNIFIED IDEOGRAPH - ,0xE8C0 ,0x67A5 //CJK UNIFIED IDEOGRAPH - ,0xE8C1 ,0x6787 //CJK UNIFIED IDEOGRAPH - ,0xE8C2 ,0x676A //CJK UNIFIED IDEOGRAPH - ,0xE8C3 ,0x6773 //CJK UNIFIED IDEOGRAPH - ,0xE8C4 ,0x6798 //CJK UNIFIED IDEOGRAPH - ,0xE8C5 ,0x67A7 //CJK UNIFIED IDEOGRAPH - ,0xE8C6 ,0x6775 //CJK UNIFIED IDEOGRAPH - ,0xE8C7 ,0x67A8 //CJK UNIFIED IDEOGRAPH - ,0xE8C8 ,0x679E //CJK UNIFIED IDEOGRAPH - ,0xE8C9 ,0x67AD //CJK UNIFIED IDEOGRAPH - ,0xE8CA ,0x678B //CJK UNIFIED IDEOGRAPH - ,0xE8CB ,0x6777 //CJK UNIFIED IDEOGRAPH - ,0xE8CC ,0x677C //CJK UNIFIED IDEOGRAPH - ,0xE8CD ,0x67F0 //CJK UNIFIED IDEOGRAPH - ,0xE8CE ,0x6809 //CJK UNIFIED IDEOGRAPH - ,0xE8CF ,0x67D8 //CJK UNIFIED IDEOGRAPH - ,0xE8D0 ,0x680A //CJK UNIFIED IDEOGRAPH - ,0xE8D1 ,0x67E9 //CJK UNIFIED IDEOGRAPH - ,0xE8D2 ,0x67B0 //CJK UNIFIED IDEOGRAPH - ,0xE8D3 ,0x680C //CJK UNIFIED IDEOGRAPH - ,0xE8D4 ,0x67D9 //CJK UNIFIED IDEOGRAPH - ,0xE8D5 ,0x67B5 //CJK UNIFIED IDEOGRAPH - ,0xE8D6 ,0x67DA //CJK UNIFIED IDEOGRAPH - ,0xE8D7 ,0x67B3 //CJK UNIFIED IDEOGRAPH - ,0xE8D8 ,0x67DD //CJK UNIFIED IDEOGRAPH - ,0xE8D9 ,0x6800 //CJK UNIFIED IDEOGRAPH - ,0xE8DA ,0x67C3 //CJK UNIFIED IDEOGRAPH - ,0xE8DB ,0x67B8 //CJK UNIFIED IDEOGRAPH - ,0xE8DC ,0x67E2 //CJK UNIFIED IDEOGRAPH - ,0xE8DD ,0x680E //CJK UNIFIED IDEOGRAPH - ,0xE8DE ,0x67C1 //CJK UNIFIED IDEOGRAPH - ,0xE8DF ,0x67FD //CJK UNIFIED IDEOGRAPH - ,0xE8E0 ,0x6832 //CJK UNIFIED IDEOGRAPH - ,0xE8E1 ,0x6833 //CJK UNIFIED IDEOGRAPH - ,0xE8E2 ,0x6860 //CJK UNIFIED IDEOGRAPH - ,0xE8E3 ,0x6861 //CJK UNIFIED IDEOGRAPH - ,0xE8E4 ,0x684E //CJK UNIFIED IDEOGRAPH - ,0xE8E5 ,0x6862 //CJK UNIFIED IDEOGRAPH - ,0xE8E6 ,0x6844 //CJK UNIFIED IDEOGRAPH - ,0xE8E7 ,0x6864 //CJK UNIFIED IDEOGRAPH - ,0xE8E8 ,0x6883 //CJK UNIFIED IDEOGRAPH - ,0xE8E9 ,0x681D //CJK UNIFIED IDEOGRAPH - ,0xE8EA ,0x6855 //CJK UNIFIED IDEOGRAPH - ,0xE8EB ,0x6866 //CJK UNIFIED IDEOGRAPH - ,0xE8EC ,0x6841 //CJK UNIFIED IDEOGRAPH - ,0xE8ED ,0x6867 //CJK UNIFIED IDEOGRAPH - ,0xE8EE ,0x6840 //CJK UNIFIED IDEOGRAPH - ,0xE8EF ,0x683E //CJK UNIFIED IDEOGRAPH - ,0xE8F0 ,0x684A //CJK UNIFIED IDEOGRAPH - ,0xE8F1 ,0x6849 //CJK UNIFIED IDEOGRAPH - ,0xE8F2 ,0x6829 //CJK UNIFIED IDEOGRAPH - ,0xE8F3 ,0x68B5 //CJK UNIFIED IDEOGRAPH - ,0xE8F4 ,0x688F //CJK UNIFIED IDEOGRAPH - ,0xE8F5 ,0x6874 //CJK UNIFIED IDEOGRAPH - ,0xE8F6 ,0x6877 //CJK UNIFIED IDEOGRAPH - ,0xE8F7 ,0x6893 //CJK UNIFIED IDEOGRAPH - ,0xE8F8 ,0x686B //CJK UNIFIED IDEOGRAPH - ,0xE8F9 ,0x68C2 //CJK UNIFIED IDEOGRAPH - ,0xE8FA ,0x696E //CJK UNIFIED IDEOGRAPH - ,0xE8FB ,0x68FC //CJK UNIFIED IDEOGRAPH - ,0xE8FC ,0x691F //CJK UNIFIED IDEOGRAPH - ,0xE8FD ,0x6920 //CJK UNIFIED IDEOGRAPH - ,0xE8FE ,0x68F9 //CJK UNIFIED IDEOGRAPH - ,0xE940 ,0x9527 //CJK UNIFIED IDEOGRAPH - ,0xE941 ,0x9533 //CJK UNIFIED IDEOGRAPH - ,0xE942 ,0x953D //CJK UNIFIED IDEOGRAPH - ,0xE943 ,0x9543 //CJK UNIFIED IDEOGRAPH - ,0xE944 ,0x9548 //CJK UNIFIED IDEOGRAPH - ,0xE945 ,0x954B //CJK UNIFIED IDEOGRAPH - ,0xE946 ,0x9555 //CJK UNIFIED IDEOGRAPH - ,0xE947 ,0x955A //CJK UNIFIED IDEOGRAPH - ,0xE948 ,0x9560 //CJK UNIFIED IDEOGRAPH - ,0xE949 ,0x956E //CJK UNIFIED IDEOGRAPH - ,0xE94A ,0x9574 //CJK UNIFIED IDEOGRAPH - ,0xE94B ,0x9575 //CJK UNIFIED IDEOGRAPH - ,0xE94C ,0x9577 //CJK UNIFIED IDEOGRAPH - ,0xE94D ,0x9578 //CJK UNIFIED IDEOGRAPH - ,0xE94E ,0x9579 //CJK UNIFIED IDEOGRAPH - ,0xE94F ,0x957A //CJK UNIFIED IDEOGRAPH - ,0xE950 ,0x957B //CJK UNIFIED IDEOGRAPH - ,0xE951 ,0x957C //CJK UNIFIED IDEOGRAPH - ,0xE952 ,0x957D //CJK UNIFIED IDEOGRAPH - ,0xE953 ,0x957E //CJK UNIFIED IDEOGRAPH - ,0xE954 ,0x9580 //CJK UNIFIED IDEOGRAPH - ,0xE955 ,0x9581 //CJK UNIFIED IDEOGRAPH - ,0xE956 ,0x9582 //CJK UNIFIED IDEOGRAPH - ,0xE957 ,0x9583 //CJK UNIFIED IDEOGRAPH - ,0xE958 ,0x9584 //CJK UNIFIED IDEOGRAPH - ,0xE959 ,0x9585 //CJK UNIFIED IDEOGRAPH - ,0xE95A ,0x9586 //CJK UNIFIED IDEOGRAPH - ,0xE95B ,0x9587 //CJK UNIFIED IDEOGRAPH - ,0xE95C ,0x9588 //CJK UNIFIED IDEOGRAPH - ,0xE95D ,0x9589 //CJK UNIFIED IDEOGRAPH - ,0xE95E ,0x958A //CJK UNIFIED IDEOGRAPH - ,0xE95F ,0x958B //CJK UNIFIED IDEOGRAPH - ,0xE960 ,0x958C //CJK UNIFIED IDEOGRAPH - ,0xE961 ,0x958D //CJK UNIFIED IDEOGRAPH - ,0xE962 ,0x958E //CJK UNIFIED IDEOGRAPH - ,0xE963 ,0x958F //CJK UNIFIED IDEOGRAPH - ,0xE964 ,0x9590 //CJK UNIFIED IDEOGRAPH - ,0xE965 ,0x9591 //CJK UNIFIED IDEOGRAPH - ,0xE966 ,0x9592 //CJK UNIFIED IDEOGRAPH - ,0xE967 ,0x9593 //CJK UNIFIED IDEOGRAPH - ,0xE968 ,0x9594 //CJK UNIFIED IDEOGRAPH - ,0xE969 ,0x9595 //CJK UNIFIED IDEOGRAPH - ,0xE96A ,0x9596 //CJK UNIFIED IDEOGRAPH - ,0xE96B ,0x9597 //CJK UNIFIED IDEOGRAPH - ,0xE96C ,0x9598 //CJK UNIFIED IDEOGRAPH - ,0xE96D ,0x9599 //CJK UNIFIED IDEOGRAPH - ,0xE96E ,0x959A //CJK UNIFIED IDEOGRAPH - ,0xE96F ,0x959B //CJK UNIFIED IDEOGRAPH - ,0xE970 ,0x959C //CJK UNIFIED IDEOGRAPH - ,0xE971 ,0x959D //CJK UNIFIED IDEOGRAPH - ,0xE972 ,0x959E //CJK UNIFIED IDEOGRAPH - ,0xE973 ,0x959F //CJK UNIFIED IDEOGRAPH - ,0xE974 ,0x95A0 //CJK UNIFIED IDEOGRAPH - ,0xE975 ,0x95A1 //CJK UNIFIED IDEOGRAPH - ,0xE976 ,0x95A2 //CJK UNIFIED IDEOGRAPH - ,0xE977 ,0x95A3 //CJK UNIFIED IDEOGRAPH - ,0xE978 ,0x95A4 //CJK UNIFIED IDEOGRAPH - ,0xE979 ,0x95A5 //CJK UNIFIED IDEOGRAPH - ,0xE97A ,0x95A6 //CJK UNIFIED IDEOGRAPH - ,0xE97B ,0x95A7 //CJK UNIFIED IDEOGRAPH - ,0xE97C ,0x95A8 //CJK UNIFIED IDEOGRAPH - ,0xE97D ,0x95A9 //CJK UNIFIED IDEOGRAPH - ,0xE97E ,0x95AA //CJK UNIFIED IDEOGRAPH - ,0xE980 ,0x95AB //CJK UNIFIED IDEOGRAPH - ,0xE981 ,0x95AC //CJK UNIFIED IDEOGRAPH - ,0xE982 ,0x95AD //CJK UNIFIED IDEOGRAPH - ,0xE983 ,0x95AE //CJK UNIFIED IDEOGRAPH - ,0xE984 ,0x95AF //CJK UNIFIED IDEOGRAPH - ,0xE985 ,0x95B0 //CJK UNIFIED IDEOGRAPH - ,0xE986 ,0x95B1 //CJK UNIFIED IDEOGRAPH - ,0xE987 ,0x95B2 //CJK UNIFIED IDEOGRAPH - ,0xE988 ,0x95B3 //CJK UNIFIED IDEOGRAPH - ,0xE989 ,0x95B4 //CJK UNIFIED IDEOGRAPH - ,0xE98A ,0x95B5 //CJK UNIFIED IDEOGRAPH - ,0xE98B ,0x95B6 //CJK UNIFIED IDEOGRAPH - ,0xE98C ,0x95B7 //CJK UNIFIED IDEOGRAPH - ,0xE98D ,0x95B8 //CJK UNIFIED IDEOGRAPH - ,0xE98E ,0x95B9 //CJK UNIFIED IDEOGRAPH - ,0xE98F ,0x95BA //CJK UNIFIED IDEOGRAPH - ,0xE990 ,0x95BB //CJK UNIFIED IDEOGRAPH - ,0xE991 ,0x95BC //CJK UNIFIED IDEOGRAPH - ,0xE992 ,0x95BD //CJK UNIFIED IDEOGRAPH - ,0xE993 ,0x95BE //CJK UNIFIED IDEOGRAPH - ,0xE994 ,0x95BF //CJK UNIFIED IDEOGRAPH - ,0xE995 ,0x95C0 //CJK UNIFIED IDEOGRAPH - ,0xE996 ,0x95C1 //CJK UNIFIED IDEOGRAPH - ,0xE997 ,0x95C2 //CJK UNIFIED IDEOGRAPH - ,0xE998 ,0x95C3 //CJK UNIFIED IDEOGRAPH - ,0xE999 ,0x95C4 //CJK UNIFIED IDEOGRAPH - ,0xE99A ,0x95C5 //CJK UNIFIED IDEOGRAPH - ,0xE99B ,0x95C6 //CJK UNIFIED IDEOGRAPH - ,0xE99C ,0x95C7 //CJK UNIFIED IDEOGRAPH - ,0xE99D ,0x95C8 //CJK UNIFIED IDEOGRAPH - ,0xE99E ,0x95C9 //CJK UNIFIED IDEOGRAPH - ,0xE99F ,0x95CA //CJK UNIFIED IDEOGRAPH - ,0xE9A0 ,0x95CB //CJK UNIFIED IDEOGRAPH - ,0xE9A1 ,0x6924 //CJK UNIFIED IDEOGRAPH - ,0xE9A2 ,0x68F0 //CJK UNIFIED IDEOGRAPH - ,0xE9A3 ,0x690B //CJK UNIFIED IDEOGRAPH - ,0xE9A4 ,0x6901 //CJK UNIFIED IDEOGRAPH - ,0xE9A5 ,0x6957 //CJK UNIFIED IDEOGRAPH - ,0xE9A6 ,0x68E3 //CJK UNIFIED IDEOGRAPH - ,0xE9A7 ,0x6910 //CJK UNIFIED IDEOGRAPH - ,0xE9A8 ,0x6971 //CJK UNIFIED IDEOGRAPH - ,0xE9A9 ,0x6939 //CJK UNIFIED IDEOGRAPH - ,0xE9AA ,0x6960 //CJK UNIFIED IDEOGRAPH - ,0xE9AB ,0x6942 //CJK UNIFIED IDEOGRAPH - ,0xE9AC ,0x695D //CJK UNIFIED IDEOGRAPH - ,0xE9AD ,0x6984 //CJK UNIFIED IDEOGRAPH - ,0xE9AE ,0x696B //CJK UNIFIED IDEOGRAPH - ,0xE9AF ,0x6980 //CJK UNIFIED IDEOGRAPH - ,0xE9B0 ,0x6998 //CJK UNIFIED IDEOGRAPH - ,0xE9B1 ,0x6978 //CJK UNIFIED IDEOGRAPH - ,0xE9B2 ,0x6934 //CJK UNIFIED IDEOGRAPH - ,0xE9B3 ,0x69CC //CJK UNIFIED IDEOGRAPH - ,0xE9B4 ,0x6987 //CJK UNIFIED IDEOGRAPH - ,0xE9B5 ,0x6988 //CJK UNIFIED IDEOGRAPH - ,0xE9B6 ,0x69CE //CJK UNIFIED IDEOGRAPH - ,0xE9B7 ,0x6989 //CJK UNIFIED IDEOGRAPH - ,0xE9B8 ,0x6966 //CJK UNIFIED IDEOGRAPH - ,0xE9B9 ,0x6963 //CJK UNIFIED IDEOGRAPH - ,0xE9BA ,0x6979 //CJK UNIFIED IDEOGRAPH - ,0xE9BB ,0x699B //CJK UNIFIED IDEOGRAPH - ,0xE9BC ,0x69A7 //CJK UNIFIED IDEOGRAPH - ,0xE9BD ,0x69BB //CJK UNIFIED IDEOGRAPH - ,0xE9BE ,0x69AB //CJK UNIFIED IDEOGRAPH - ,0xE9BF ,0x69AD //CJK UNIFIED IDEOGRAPH - ,0xE9C0 ,0x69D4 //CJK UNIFIED IDEOGRAPH - ,0xE9C1 ,0x69B1 //CJK UNIFIED IDEOGRAPH - ,0xE9C2 ,0x69C1 //CJK UNIFIED IDEOGRAPH - ,0xE9C3 ,0x69CA //CJK UNIFIED IDEOGRAPH - ,0xE9C4 ,0x69DF //CJK UNIFIED IDEOGRAPH - ,0xE9C5 ,0x6995 //CJK UNIFIED IDEOGRAPH - ,0xE9C6 ,0x69E0 //CJK UNIFIED IDEOGRAPH - ,0xE9C7 ,0x698D //CJK UNIFIED IDEOGRAPH - ,0xE9C8 ,0x69FF //CJK UNIFIED IDEOGRAPH - ,0xE9C9 ,0x6A2F //CJK UNIFIED IDEOGRAPH - ,0xE9CA ,0x69ED //CJK UNIFIED IDEOGRAPH - ,0xE9CB ,0x6A17 //CJK UNIFIED IDEOGRAPH - ,0xE9CC ,0x6A18 //CJK UNIFIED IDEOGRAPH - ,0xE9CD ,0x6A65 //CJK UNIFIED IDEOGRAPH - ,0xE9CE ,0x69F2 //CJK UNIFIED IDEOGRAPH - ,0xE9CF ,0x6A44 //CJK UNIFIED IDEOGRAPH - ,0xE9D0 ,0x6A3E //CJK UNIFIED IDEOGRAPH - ,0xE9D1 ,0x6AA0 //CJK UNIFIED IDEOGRAPH - ,0xE9D2 ,0x6A50 //CJK UNIFIED IDEOGRAPH - ,0xE9D3 ,0x6A5B //CJK UNIFIED IDEOGRAPH - ,0xE9D4 ,0x6A35 //CJK UNIFIED IDEOGRAPH - ,0xE9D5 ,0x6A8E //CJK UNIFIED IDEOGRAPH - ,0xE9D6 ,0x6A79 //CJK UNIFIED IDEOGRAPH - ,0xE9D7 ,0x6A3D //CJK UNIFIED IDEOGRAPH - ,0xE9D8 ,0x6A28 //CJK UNIFIED IDEOGRAPH - ,0xE9D9 ,0x6A58 //CJK UNIFIED IDEOGRAPH - ,0xE9DA ,0x6A7C //CJK UNIFIED IDEOGRAPH - ,0xE9DB ,0x6A91 //CJK UNIFIED IDEOGRAPH - ,0xE9DC ,0x6A90 //CJK UNIFIED IDEOGRAPH - ,0xE9DD ,0x6AA9 //CJK UNIFIED IDEOGRAPH - ,0xE9DE ,0x6A97 //CJK UNIFIED IDEOGRAPH - ,0xE9DF ,0x6AAB //CJK UNIFIED IDEOGRAPH - ,0xE9E0 ,0x7337 //CJK UNIFIED IDEOGRAPH - ,0xE9E1 ,0x7352 //CJK UNIFIED IDEOGRAPH - ,0xE9E2 ,0x6B81 //CJK UNIFIED IDEOGRAPH - ,0xE9E3 ,0x6B82 //CJK UNIFIED IDEOGRAPH - ,0xE9E4 ,0x6B87 //CJK UNIFIED IDEOGRAPH - ,0xE9E5 ,0x6B84 //CJK UNIFIED IDEOGRAPH - ,0xE9E6 ,0x6B92 //CJK UNIFIED IDEOGRAPH - ,0xE9E7 ,0x6B93 //CJK UNIFIED IDEOGRAPH - ,0xE9E8 ,0x6B8D //CJK UNIFIED IDEOGRAPH - ,0xE9E9 ,0x6B9A //CJK UNIFIED IDEOGRAPH - ,0xE9EA ,0x6B9B //CJK UNIFIED IDEOGRAPH - ,0xE9EB ,0x6BA1 //CJK UNIFIED IDEOGRAPH - ,0xE9EC ,0x6BAA //CJK UNIFIED IDEOGRAPH - ,0xE9ED ,0x8F6B //CJK UNIFIED IDEOGRAPH - ,0xE9EE ,0x8F6D //CJK UNIFIED IDEOGRAPH - ,0xE9EF ,0x8F71 //CJK UNIFIED IDEOGRAPH - ,0xE9F0 ,0x8F72 //CJK UNIFIED IDEOGRAPH - ,0xE9F1 ,0x8F73 //CJK UNIFIED IDEOGRAPH - ,0xE9F2 ,0x8F75 //CJK UNIFIED IDEOGRAPH - ,0xE9F3 ,0x8F76 //CJK UNIFIED IDEOGRAPH - ,0xE9F4 ,0x8F78 //CJK UNIFIED IDEOGRAPH - ,0xE9F5 ,0x8F77 //CJK UNIFIED IDEOGRAPH - ,0xE9F6 ,0x8F79 //CJK UNIFIED IDEOGRAPH - ,0xE9F7 ,0x8F7A //CJK UNIFIED IDEOGRAPH - ,0xE9F8 ,0x8F7C //CJK UNIFIED IDEOGRAPH - ,0xE9F9 ,0x8F7E //CJK UNIFIED IDEOGRAPH - ,0xE9FA ,0x8F81 //CJK UNIFIED IDEOGRAPH - ,0xE9FB ,0x8F82 //CJK UNIFIED IDEOGRAPH - ,0xE9FC ,0x8F84 //CJK UNIFIED IDEOGRAPH - ,0xE9FD ,0x8F87 //CJK UNIFIED IDEOGRAPH - ,0xE9FE ,0x8F8B //CJK UNIFIED IDEOGRAPH - ,0xEA40 ,0x95CC //CJK UNIFIED IDEOGRAPH - ,0xEA41 ,0x95CD //CJK UNIFIED IDEOGRAPH - ,0xEA42 ,0x95CE //CJK UNIFIED IDEOGRAPH - ,0xEA43 ,0x95CF //CJK UNIFIED IDEOGRAPH - ,0xEA44 ,0x95D0 //CJK UNIFIED IDEOGRAPH - ,0xEA45 ,0x95D1 //CJK UNIFIED IDEOGRAPH - ,0xEA46 ,0x95D2 //CJK UNIFIED IDEOGRAPH - ,0xEA47 ,0x95D3 //CJK UNIFIED IDEOGRAPH - ,0xEA48 ,0x95D4 //CJK UNIFIED IDEOGRAPH - ,0xEA49 ,0x95D5 //CJK UNIFIED IDEOGRAPH - ,0xEA4A ,0x95D6 //CJK UNIFIED IDEOGRAPH - ,0xEA4B ,0x95D7 //CJK UNIFIED IDEOGRAPH - ,0xEA4C ,0x95D8 //CJK UNIFIED IDEOGRAPH - ,0xEA4D ,0x95D9 //CJK UNIFIED IDEOGRAPH - ,0xEA4E ,0x95DA //CJK UNIFIED IDEOGRAPH - ,0xEA4F ,0x95DB //CJK UNIFIED IDEOGRAPH - ,0xEA50 ,0x95DC //CJK UNIFIED IDEOGRAPH - ,0xEA51 ,0x95DD //CJK UNIFIED IDEOGRAPH - ,0xEA52 ,0x95DE //CJK UNIFIED IDEOGRAPH - ,0xEA53 ,0x95DF //CJK UNIFIED IDEOGRAPH - ,0xEA54 ,0x95E0 //CJK UNIFIED IDEOGRAPH - ,0xEA55 ,0x95E1 //CJK UNIFIED IDEOGRAPH - ,0xEA56 ,0x95E2 //CJK UNIFIED IDEOGRAPH - ,0xEA57 ,0x95E3 //CJK UNIFIED IDEOGRAPH - ,0xEA58 ,0x95E4 //CJK UNIFIED IDEOGRAPH - ,0xEA59 ,0x95E5 //CJK UNIFIED IDEOGRAPH - ,0xEA5A ,0x95E6 //CJK UNIFIED IDEOGRAPH - ,0xEA5B ,0x95E7 //CJK UNIFIED IDEOGRAPH - ,0xEA5C ,0x95EC //CJK UNIFIED IDEOGRAPH - ,0xEA5D ,0x95FF //CJK UNIFIED IDEOGRAPH - ,0xEA5E ,0x9607 //CJK UNIFIED IDEOGRAPH - ,0xEA5F ,0x9613 //CJK UNIFIED IDEOGRAPH - ,0xEA60 ,0x9618 //CJK UNIFIED IDEOGRAPH - ,0xEA61 ,0x961B //CJK UNIFIED IDEOGRAPH - ,0xEA62 ,0x961E //CJK UNIFIED IDEOGRAPH - ,0xEA63 ,0x9620 //CJK UNIFIED IDEOGRAPH - ,0xEA64 ,0x9623 //CJK UNIFIED IDEOGRAPH - ,0xEA65 ,0x9624 //CJK UNIFIED IDEOGRAPH - ,0xEA66 ,0x9625 //CJK UNIFIED IDEOGRAPH - ,0xEA67 ,0x9626 //CJK UNIFIED IDEOGRAPH - ,0xEA68 ,0x9627 //CJK UNIFIED IDEOGRAPH - ,0xEA69 ,0x9628 //CJK UNIFIED IDEOGRAPH - ,0xEA6A ,0x9629 //CJK UNIFIED IDEOGRAPH - ,0xEA6B ,0x962B //CJK UNIFIED IDEOGRAPH - ,0xEA6C ,0x962C //CJK UNIFIED IDEOGRAPH - ,0xEA6D ,0x962D //CJK UNIFIED IDEOGRAPH - ,0xEA6E ,0x962F //CJK UNIFIED IDEOGRAPH - ,0xEA6F ,0x9630 //CJK UNIFIED IDEOGRAPH - ,0xEA70 ,0x9637 //CJK UNIFIED IDEOGRAPH - ,0xEA71 ,0x9638 //CJK UNIFIED IDEOGRAPH - ,0xEA72 ,0x9639 //CJK UNIFIED IDEOGRAPH - ,0xEA73 ,0x963A //CJK UNIFIED IDEOGRAPH - ,0xEA74 ,0x963E //CJK UNIFIED IDEOGRAPH - ,0xEA75 ,0x9641 //CJK UNIFIED IDEOGRAPH - ,0xEA76 ,0x9643 //CJK UNIFIED IDEOGRAPH - ,0xEA77 ,0x964A //CJK UNIFIED IDEOGRAPH - ,0xEA78 ,0x964E //CJK UNIFIED IDEOGRAPH - ,0xEA79 ,0x964F //CJK UNIFIED IDEOGRAPH - ,0xEA7A ,0x9651 //CJK UNIFIED IDEOGRAPH - ,0xEA7B ,0x9652 //CJK UNIFIED IDEOGRAPH - ,0xEA7C ,0x9653 //CJK UNIFIED IDEOGRAPH - ,0xEA7D ,0x9656 //CJK UNIFIED IDEOGRAPH - ,0xEA7E ,0x9657 //CJK UNIFIED IDEOGRAPH - ,0xEA80 ,0x9658 //CJK UNIFIED IDEOGRAPH - ,0xEA81 ,0x9659 //CJK UNIFIED IDEOGRAPH - ,0xEA82 ,0x965A //CJK UNIFIED IDEOGRAPH - ,0xEA83 ,0x965C //CJK UNIFIED IDEOGRAPH - ,0xEA84 ,0x965D //CJK UNIFIED IDEOGRAPH - ,0xEA85 ,0x965E //CJK UNIFIED IDEOGRAPH - ,0xEA86 ,0x9660 //CJK UNIFIED IDEOGRAPH - ,0xEA87 ,0x9663 //CJK UNIFIED IDEOGRAPH - ,0xEA88 ,0x9665 //CJK UNIFIED IDEOGRAPH - ,0xEA89 ,0x9666 //CJK UNIFIED IDEOGRAPH - ,0xEA8A ,0x966B //CJK UNIFIED IDEOGRAPH - ,0xEA8B ,0x966D //CJK UNIFIED IDEOGRAPH - ,0xEA8C ,0x966E //CJK UNIFIED IDEOGRAPH - ,0xEA8D ,0x966F //CJK UNIFIED IDEOGRAPH - ,0xEA8E ,0x9670 //CJK UNIFIED IDEOGRAPH - ,0xEA8F ,0x9671 //CJK UNIFIED IDEOGRAPH - ,0xEA90 ,0x9673 //CJK UNIFIED IDEOGRAPH - ,0xEA91 ,0x9678 //CJK UNIFIED IDEOGRAPH - ,0xEA92 ,0x9679 //CJK UNIFIED IDEOGRAPH - ,0xEA93 ,0x967A //CJK UNIFIED IDEOGRAPH - ,0xEA94 ,0x967B //CJK UNIFIED IDEOGRAPH - ,0xEA95 ,0x967C //CJK UNIFIED IDEOGRAPH - ,0xEA96 ,0x967D //CJK UNIFIED IDEOGRAPH - ,0xEA97 ,0x967E //CJK UNIFIED IDEOGRAPH - ,0xEA98 ,0x967F //CJK UNIFIED IDEOGRAPH - ,0xEA99 ,0x9680 //CJK UNIFIED IDEOGRAPH - ,0xEA9A ,0x9681 //CJK UNIFIED IDEOGRAPH - ,0xEA9B ,0x9682 //CJK UNIFIED IDEOGRAPH - ,0xEA9C ,0x9683 //CJK UNIFIED IDEOGRAPH - ,0xEA9D ,0x9684 //CJK UNIFIED IDEOGRAPH - ,0xEA9E ,0x9687 //CJK UNIFIED IDEOGRAPH - ,0xEA9F ,0x9689 //CJK UNIFIED IDEOGRAPH - ,0xEAA0 ,0x968A //CJK UNIFIED IDEOGRAPH - ,0xEAA1 ,0x8F8D //CJK UNIFIED IDEOGRAPH - ,0xEAA2 ,0x8F8E //CJK UNIFIED IDEOGRAPH - ,0xEAA3 ,0x8F8F //CJK UNIFIED IDEOGRAPH - ,0xEAA4 ,0x8F98 //CJK UNIFIED IDEOGRAPH - ,0xEAA5 ,0x8F9A //CJK UNIFIED IDEOGRAPH - ,0xEAA6 ,0x8ECE //CJK UNIFIED IDEOGRAPH - ,0xEAA7 ,0x620B //CJK UNIFIED IDEOGRAPH - ,0xEAA8 ,0x6217 //CJK UNIFIED IDEOGRAPH - ,0xEAA9 ,0x621B //CJK UNIFIED IDEOGRAPH - ,0xEAAA ,0x621F //CJK UNIFIED IDEOGRAPH - ,0xEAAB ,0x6222 //CJK UNIFIED IDEOGRAPH - ,0xEAAC ,0x6221 //CJK UNIFIED IDEOGRAPH - ,0xEAAD ,0x6225 //CJK UNIFIED IDEOGRAPH - ,0xEAAE ,0x6224 //CJK UNIFIED IDEOGRAPH - ,0xEAAF ,0x622C //CJK UNIFIED IDEOGRAPH - ,0xEAB0 ,0x81E7 //CJK UNIFIED IDEOGRAPH - ,0xEAB1 ,0x74EF //CJK UNIFIED IDEOGRAPH - ,0xEAB2 ,0x74F4 //CJK UNIFIED IDEOGRAPH - ,0xEAB3 ,0x74FF //CJK UNIFIED IDEOGRAPH - ,0xEAB4 ,0x750F //CJK UNIFIED IDEOGRAPH - ,0xEAB5 ,0x7511 //CJK UNIFIED IDEOGRAPH - ,0xEAB6 ,0x7513 //CJK UNIFIED IDEOGRAPH - ,0xEAB7 ,0x6534 //CJK UNIFIED IDEOGRAPH - ,0xEAB8 ,0x65EE //CJK UNIFIED IDEOGRAPH - ,0xEAB9 ,0x65EF //CJK UNIFIED IDEOGRAPH - ,0xEABA ,0x65F0 //CJK UNIFIED IDEOGRAPH - ,0xEABB ,0x660A //CJK UNIFIED IDEOGRAPH - ,0xEABC ,0x6619 //CJK UNIFIED IDEOGRAPH - ,0xEABD ,0x6772 //CJK UNIFIED IDEOGRAPH - ,0xEABE ,0x6603 //CJK UNIFIED IDEOGRAPH - ,0xEABF ,0x6615 //CJK UNIFIED IDEOGRAPH - ,0xEAC0 ,0x6600 //CJK UNIFIED IDEOGRAPH - ,0xEAC1 ,0x7085 //CJK UNIFIED IDEOGRAPH - ,0xEAC2 ,0x66F7 //CJK UNIFIED IDEOGRAPH - ,0xEAC3 ,0x661D //CJK UNIFIED IDEOGRAPH - ,0xEAC4 ,0x6634 //CJK UNIFIED IDEOGRAPH - ,0xEAC5 ,0x6631 //CJK UNIFIED IDEOGRAPH - ,0xEAC6 ,0x6636 //CJK UNIFIED IDEOGRAPH - ,0xEAC7 ,0x6635 //CJK UNIFIED IDEOGRAPH - ,0xEAC8 ,0x8006 //CJK UNIFIED IDEOGRAPH - ,0xEAC9 ,0x665F //CJK UNIFIED IDEOGRAPH - ,0xEACA ,0x6654 //CJK UNIFIED IDEOGRAPH - ,0xEACB ,0x6641 //CJK UNIFIED IDEOGRAPH - ,0xEACC ,0x664F //CJK UNIFIED IDEOGRAPH - ,0xEACD ,0x6656 //CJK UNIFIED IDEOGRAPH - ,0xEACE ,0x6661 //CJK UNIFIED IDEOGRAPH - ,0xEACF ,0x6657 //CJK UNIFIED IDEOGRAPH - ,0xEAD0 ,0x6677 //CJK UNIFIED IDEOGRAPH - ,0xEAD1 ,0x6684 //CJK UNIFIED IDEOGRAPH - ,0xEAD2 ,0x668C //CJK UNIFIED IDEOGRAPH - ,0xEAD3 ,0x66A7 //CJK UNIFIED IDEOGRAPH - ,0xEAD4 ,0x669D //CJK UNIFIED IDEOGRAPH - ,0xEAD5 ,0x66BE //CJK UNIFIED IDEOGRAPH - ,0xEAD6 ,0x66DB //CJK UNIFIED IDEOGRAPH - ,0xEAD7 ,0x66DC //CJK UNIFIED IDEOGRAPH - ,0xEAD8 ,0x66E6 //CJK UNIFIED IDEOGRAPH - ,0xEAD9 ,0x66E9 //CJK UNIFIED IDEOGRAPH - ,0xEADA ,0x8D32 //CJK UNIFIED IDEOGRAPH - ,0xEADB ,0x8D33 //CJK UNIFIED IDEOGRAPH - ,0xEADC ,0x8D36 //CJK UNIFIED IDEOGRAPH - ,0xEADD ,0x8D3B //CJK UNIFIED IDEOGRAPH - ,0xEADE ,0x8D3D //CJK UNIFIED IDEOGRAPH - ,0xEADF ,0x8D40 //CJK UNIFIED IDEOGRAPH - ,0xEAE0 ,0x8D45 //CJK UNIFIED IDEOGRAPH - ,0xEAE1 ,0x8D46 //CJK UNIFIED IDEOGRAPH - ,0xEAE2 ,0x8D48 //CJK UNIFIED IDEOGRAPH - ,0xEAE3 ,0x8D49 //CJK UNIFIED IDEOGRAPH - ,0xEAE4 ,0x8D47 //CJK UNIFIED IDEOGRAPH - ,0xEAE5 ,0x8D4D //CJK UNIFIED IDEOGRAPH - ,0xEAE6 ,0x8D55 //CJK UNIFIED IDEOGRAPH - ,0xEAE7 ,0x8D59 //CJK UNIFIED IDEOGRAPH - ,0xEAE8 ,0x89C7 //CJK UNIFIED IDEOGRAPH - ,0xEAE9 ,0x89CA //CJK UNIFIED IDEOGRAPH - ,0xEAEA ,0x89CB //CJK UNIFIED IDEOGRAPH - ,0xEAEB ,0x89CC //CJK UNIFIED IDEOGRAPH - ,0xEAEC ,0x89CE //CJK UNIFIED IDEOGRAPH - ,0xEAED ,0x89CF //CJK UNIFIED IDEOGRAPH - ,0xEAEE ,0x89D0 //CJK UNIFIED IDEOGRAPH - ,0xEAEF ,0x89D1 //CJK UNIFIED IDEOGRAPH - ,0xEAF0 ,0x726E //CJK UNIFIED IDEOGRAPH - ,0xEAF1 ,0x729F //CJK UNIFIED IDEOGRAPH - ,0xEAF2 ,0x725D //CJK UNIFIED IDEOGRAPH - ,0xEAF3 ,0x7266 //CJK UNIFIED IDEOGRAPH - ,0xEAF4 ,0x726F //CJK UNIFIED IDEOGRAPH - ,0xEAF5 ,0x727E //CJK UNIFIED IDEOGRAPH - ,0xEAF6 ,0x727F //CJK UNIFIED IDEOGRAPH - ,0xEAF7 ,0x7284 //CJK UNIFIED IDEOGRAPH - ,0xEAF8 ,0x728B //CJK UNIFIED IDEOGRAPH - ,0xEAF9 ,0x728D //CJK UNIFIED IDEOGRAPH - ,0xEAFA ,0x728F //CJK UNIFIED IDEOGRAPH - ,0xEAFB ,0x7292 //CJK UNIFIED IDEOGRAPH - ,0xEAFC ,0x6308 //CJK UNIFIED IDEOGRAPH - ,0xEAFD ,0x6332 //CJK UNIFIED IDEOGRAPH - ,0xEAFE ,0x63B0 //CJK UNIFIED IDEOGRAPH - ,0xEB40 ,0x968C //CJK UNIFIED IDEOGRAPH - ,0xEB41 ,0x968E //CJK UNIFIED IDEOGRAPH - ,0xEB42 ,0x9691 //CJK UNIFIED IDEOGRAPH - ,0xEB43 ,0x9692 //CJK UNIFIED IDEOGRAPH - ,0xEB44 ,0x9693 //CJK UNIFIED IDEOGRAPH - ,0xEB45 ,0x9695 //CJK UNIFIED IDEOGRAPH - ,0xEB46 ,0x9696 //CJK UNIFIED IDEOGRAPH - ,0xEB47 ,0x969A //CJK UNIFIED IDEOGRAPH - ,0xEB48 ,0x969B //CJK UNIFIED IDEOGRAPH - ,0xEB49 ,0x969D //CJK UNIFIED IDEOGRAPH - ,0xEB4A ,0x969E //CJK UNIFIED IDEOGRAPH - ,0xEB4B ,0x969F //CJK UNIFIED IDEOGRAPH - ,0xEB4C ,0x96A0 //CJK UNIFIED IDEOGRAPH - ,0xEB4D ,0x96A1 //CJK UNIFIED IDEOGRAPH - ,0xEB4E ,0x96A2 //CJK UNIFIED IDEOGRAPH - ,0xEB4F ,0x96A3 //CJK UNIFIED IDEOGRAPH - ,0xEB50 ,0x96A4 //CJK UNIFIED IDEOGRAPH - ,0xEB51 ,0x96A5 //CJK UNIFIED IDEOGRAPH - ,0xEB52 ,0x96A6 //CJK UNIFIED IDEOGRAPH - ,0xEB53 ,0x96A8 //CJK UNIFIED IDEOGRAPH - ,0xEB54 ,0x96A9 //CJK UNIFIED IDEOGRAPH - ,0xEB55 ,0x96AA //CJK UNIFIED IDEOGRAPH - ,0xEB56 ,0x96AB //CJK UNIFIED IDEOGRAPH - ,0xEB57 ,0x96AC //CJK UNIFIED IDEOGRAPH - ,0xEB58 ,0x96AD //CJK UNIFIED IDEOGRAPH - ,0xEB59 ,0x96AE //CJK UNIFIED IDEOGRAPH - ,0xEB5A ,0x96AF //CJK UNIFIED IDEOGRAPH - ,0xEB5B ,0x96B1 //CJK UNIFIED IDEOGRAPH - ,0xEB5C ,0x96B2 //CJK UNIFIED IDEOGRAPH - ,0xEB5D ,0x96B4 //CJK UNIFIED IDEOGRAPH - ,0xEB5E ,0x96B5 //CJK UNIFIED IDEOGRAPH - ,0xEB5F ,0x96B7 //CJK UNIFIED IDEOGRAPH - ,0xEB60 ,0x96B8 //CJK UNIFIED IDEOGRAPH - ,0xEB61 ,0x96BA //CJK UNIFIED IDEOGRAPH - ,0xEB62 ,0x96BB //CJK UNIFIED IDEOGRAPH - ,0xEB63 ,0x96BF //CJK UNIFIED IDEOGRAPH - ,0xEB64 ,0x96C2 //CJK UNIFIED IDEOGRAPH - ,0xEB65 ,0x96C3 //CJK UNIFIED IDEOGRAPH - ,0xEB66 ,0x96C8 //CJK UNIFIED IDEOGRAPH - ,0xEB67 ,0x96CA //CJK UNIFIED IDEOGRAPH - ,0xEB68 ,0x96CB //CJK UNIFIED IDEOGRAPH - ,0xEB69 ,0x96D0 //CJK UNIFIED IDEOGRAPH - ,0xEB6A ,0x96D1 //CJK UNIFIED IDEOGRAPH - ,0xEB6B ,0x96D3 //CJK UNIFIED IDEOGRAPH - ,0xEB6C ,0x96D4 //CJK UNIFIED IDEOGRAPH - ,0xEB6D ,0x96D6 //CJK UNIFIED IDEOGRAPH - ,0xEB6E ,0x96D7 //CJK UNIFIED IDEOGRAPH - ,0xEB6F ,0x96D8 //CJK UNIFIED IDEOGRAPH - ,0xEB70 ,0x96D9 //CJK UNIFIED IDEOGRAPH - ,0xEB71 ,0x96DA //CJK UNIFIED IDEOGRAPH - ,0xEB72 ,0x96DB //CJK UNIFIED IDEOGRAPH - ,0xEB73 ,0x96DC //CJK UNIFIED IDEOGRAPH - ,0xEB74 ,0x96DD //CJK UNIFIED IDEOGRAPH - ,0xEB75 ,0x96DE //CJK UNIFIED IDEOGRAPH - ,0xEB76 ,0x96DF //CJK UNIFIED IDEOGRAPH - ,0xEB77 ,0x96E1 //CJK UNIFIED IDEOGRAPH - ,0xEB78 ,0x96E2 //CJK UNIFIED IDEOGRAPH - ,0xEB79 ,0x96E3 //CJK UNIFIED IDEOGRAPH - ,0xEB7A ,0x96E4 //CJK UNIFIED IDEOGRAPH - ,0xEB7B ,0x96E5 //CJK UNIFIED IDEOGRAPH - ,0xEB7C ,0x96E6 //CJK UNIFIED IDEOGRAPH - ,0xEB7D ,0x96E7 //CJK UNIFIED IDEOGRAPH - ,0xEB7E ,0x96EB //CJK UNIFIED IDEOGRAPH - ,0xEB80 ,0x96EC //CJK UNIFIED IDEOGRAPH - ,0xEB81 ,0x96ED //CJK UNIFIED IDEOGRAPH - ,0xEB82 ,0x96EE //CJK UNIFIED IDEOGRAPH - ,0xEB83 ,0x96F0 //CJK UNIFIED IDEOGRAPH - ,0xEB84 ,0x96F1 //CJK UNIFIED IDEOGRAPH - ,0xEB85 ,0x96F2 //CJK UNIFIED IDEOGRAPH - ,0xEB86 ,0x96F4 //CJK UNIFIED IDEOGRAPH - ,0xEB87 ,0x96F5 //CJK UNIFIED IDEOGRAPH - ,0xEB88 ,0x96F8 //CJK UNIFIED IDEOGRAPH - ,0xEB89 ,0x96FA //CJK UNIFIED IDEOGRAPH - ,0xEB8A ,0x96FB //CJK UNIFIED IDEOGRAPH - ,0xEB8B ,0x96FC //CJK UNIFIED IDEOGRAPH - ,0xEB8C ,0x96FD //CJK UNIFIED IDEOGRAPH - ,0xEB8D ,0x96FF //CJK UNIFIED IDEOGRAPH - ,0xEB8E ,0x9702 //CJK UNIFIED IDEOGRAPH - ,0xEB8F ,0x9703 //CJK UNIFIED IDEOGRAPH - ,0xEB90 ,0x9705 //CJK UNIFIED IDEOGRAPH - ,0xEB91 ,0x970A //CJK UNIFIED IDEOGRAPH - ,0xEB92 ,0x970B //CJK UNIFIED IDEOGRAPH - ,0xEB93 ,0x970C //CJK UNIFIED IDEOGRAPH - ,0xEB94 ,0x9710 //CJK UNIFIED IDEOGRAPH - ,0xEB95 ,0x9711 //CJK UNIFIED IDEOGRAPH - ,0xEB96 ,0x9712 //CJK UNIFIED IDEOGRAPH - ,0xEB97 ,0x9714 //CJK UNIFIED IDEOGRAPH - ,0xEB98 ,0x9715 //CJK UNIFIED IDEOGRAPH - ,0xEB99 ,0x9717 //CJK UNIFIED IDEOGRAPH - ,0xEB9A ,0x9718 //CJK UNIFIED IDEOGRAPH - ,0xEB9B ,0x9719 //CJK UNIFIED IDEOGRAPH - ,0xEB9C ,0x971A //CJK UNIFIED IDEOGRAPH - ,0xEB9D ,0x971B //CJK UNIFIED IDEOGRAPH - ,0xEB9E ,0x971D //CJK UNIFIED IDEOGRAPH - ,0xEB9F ,0x971F //CJK UNIFIED IDEOGRAPH - ,0xEBA0 ,0x9720 //CJK UNIFIED IDEOGRAPH - ,0xEBA1 ,0x643F //CJK UNIFIED IDEOGRAPH - ,0xEBA2 ,0x64D8 //CJK UNIFIED IDEOGRAPH - ,0xEBA3 ,0x8004 //CJK UNIFIED IDEOGRAPH - ,0xEBA4 ,0x6BEA //CJK UNIFIED IDEOGRAPH - ,0xEBA5 ,0x6BF3 //CJK UNIFIED IDEOGRAPH - ,0xEBA6 ,0x6BFD //CJK UNIFIED IDEOGRAPH - ,0xEBA7 ,0x6BF5 //CJK UNIFIED IDEOGRAPH - ,0xEBA8 ,0x6BF9 //CJK UNIFIED IDEOGRAPH - ,0xEBA9 ,0x6C05 //CJK UNIFIED IDEOGRAPH - ,0xEBAA ,0x6C07 //CJK UNIFIED IDEOGRAPH - ,0xEBAB ,0x6C06 //CJK UNIFIED IDEOGRAPH - ,0xEBAC ,0x6C0D //CJK UNIFIED IDEOGRAPH - ,0xEBAD ,0x6C15 //CJK UNIFIED IDEOGRAPH - ,0xEBAE ,0x6C18 //CJK UNIFIED IDEOGRAPH - ,0xEBAF ,0x6C19 //CJK UNIFIED IDEOGRAPH - ,0xEBB0 ,0x6C1A //CJK UNIFIED IDEOGRAPH - ,0xEBB1 ,0x6C21 //CJK UNIFIED IDEOGRAPH - ,0xEBB2 ,0x6C29 //CJK UNIFIED IDEOGRAPH - ,0xEBB3 ,0x6C24 //CJK UNIFIED IDEOGRAPH - ,0xEBB4 ,0x6C2A //CJK UNIFIED IDEOGRAPH - ,0xEBB5 ,0x6C32 //CJK UNIFIED IDEOGRAPH - ,0xEBB6 ,0x6535 //CJK UNIFIED IDEOGRAPH - ,0xEBB7 ,0x6555 //CJK UNIFIED IDEOGRAPH - ,0xEBB8 ,0x656B //CJK UNIFIED IDEOGRAPH - ,0xEBB9 ,0x724D //CJK UNIFIED IDEOGRAPH - ,0xEBBA ,0x7252 //CJK UNIFIED IDEOGRAPH - ,0xEBBB ,0x7256 //CJK UNIFIED IDEOGRAPH - ,0xEBBC ,0x7230 //CJK UNIFIED IDEOGRAPH - ,0xEBBD ,0x8662 //CJK UNIFIED IDEOGRAPH - ,0xEBBE ,0x5216 //CJK UNIFIED IDEOGRAPH - ,0xEBBF ,0x809F //CJK UNIFIED IDEOGRAPH - ,0xEBC0 ,0x809C //CJK UNIFIED IDEOGRAPH - ,0xEBC1 ,0x8093 //CJK UNIFIED IDEOGRAPH - ,0xEBC2 ,0x80BC //CJK UNIFIED IDEOGRAPH - ,0xEBC3 ,0x670A //CJK UNIFIED IDEOGRAPH - ,0xEBC4 ,0x80BD //CJK UNIFIED IDEOGRAPH - ,0xEBC5 ,0x80B1 //CJK UNIFIED IDEOGRAPH - ,0xEBC6 ,0x80AB //CJK UNIFIED IDEOGRAPH - ,0xEBC7 ,0x80AD //CJK UNIFIED IDEOGRAPH - ,0xEBC8 ,0x80B4 //CJK UNIFIED IDEOGRAPH - ,0xEBC9 ,0x80B7 //CJK UNIFIED IDEOGRAPH - ,0xEBCA ,0x80E7 //CJK UNIFIED IDEOGRAPH - ,0xEBCB ,0x80E8 //CJK UNIFIED IDEOGRAPH - ,0xEBCC ,0x80E9 //CJK UNIFIED IDEOGRAPH - ,0xEBCD ,0x80EA //CJK UNIFIED IDEOGRAPH - ,0xEBCE ,0x80DB //CJK UNIFIED IDEOGRAPH - ,0xEBCF ,0x80C2 //CJK UNIFIED IDEOGRAPH - ,0xEBD0 ,0x80C4 //CJK UNIFIED IDEOGRAPH - ,0xEBD1 ,0x80D9 //CJK UNIFIED IDEOGRAPH - ,0xEBD2 ,0x80CD //CJK UNIFIED IDEOGRAPH - ,0xEBD3 ,0x80D7 //CJK UNIFIED IDEOGRAPH - ,0xEBD4 ,0x6710 //CJK UNIFIED IDEOGRAPH - ,0xEBD5 ,0x80DD //CJK UNIFIED IDEOGRAPH - ,0xEBD6 ,0x80EB //CJK UNIFIED IDEOGRAPH - ,0xEBD7 ,0x80F1 //CJK UNIFIED IDEOGRAPH - ,0xEBD8 ,0x80F4 //CJK UNIFIED IDEOGRAPH - ,0xEBD9 ,0x80ED //CJK UNIFIED IDEOGRAPH - ,0xEBDA ,0x810D //CJK UNIFIED IDEOGRAPH - ,0xEBDB ,0x810E //CJK UNIFIED IDEOGRAPH - ,0xEBDC ,0x80F2 //CJK UNIFIED IDEOGRAPH - ,0xEBDD ,0x80FC //CJK UNIFIED IDEOGRAPH - ,0xEBDE ,0x6715 //CJK UNIFIED IDEOGRAPH - ,0xEBDF ,0x8112 //CJK UNIFIED IDEOGRAPH - ,0xEBE0 ,0x8C5A //CJK UNIFIED IDEOGRAPH - ,0xEBE1 ,0x8136 //CJK UNIFIED IDEOGRAPH - ,0xEBE2 ,0x811E //CJK UNIFIED IDEOGRAPH - ,0xEBE3 ,0x812C //CJK UNIFIED IDEOGRAPH - ,0xEBE4 ,0x8118 //CJK UNIFIED IDEOGRAPH - ,0xEBE5 ,0x8132 //CJK UNIFIED IDEOGRAPH - ,0xEBE6 ,0x8148 //CJK UNIFIED IDEOGRAPH - ,0xEBE7 ,0x814C //CJK UNIFIED IDEOGRAPH - ,0xEBE8 ,0x8153 //CJK UNIFIED IDEOGRAPH - ,0xEBE9 ,0x8174 //CJK UNIFIED IDEOGRAPH - ,0xEBEA ,0x8159 //CJK UNIFIED IDEOGRAPH - ,0xEBEB ,0x815A //CJK UNIFIED IDEOGRAPH - ,0xEBEC ,0x8171 //CJK UNIFIED IDEOGRAPH - ,0xEBED ,0x8160 //CJK UNIFIED IDEOGRAPH - ,0xEBEE ,0x8169 //CJK UNIFIED IDEOGRAPH - ,0xEBEF ,0x817C //CJK UNIFIED IDEOGRAPH - ,0xEBF0 ,0x817D //CJK UNIFIED IDEOGRAPH - ,0xEBF1 ,0x816D //CJK UNIFIED IDEOGRAPH - ,0xEBF2 ,0x8167 //CJK UNIFIED IDEOGRAPH - ,0xEBF3 ,0x584D //CJK UNIFIED IDEOGRAPH - ,0xEBF4 ,0x5AB5 //CJK UNIFIED IDEOGRAPH - ,0xEBF5 ,0x8188 //CJK UNIFIED IDEOGRAPH - ,0xEBF6 ,0x8182 //CJK UNIFIED IDEOGRAPH - ,0xEBF7 ,0x8191 //CJK UNIFIED IDEOGRAPH - ,0xEBF8 ,0x6ED5 //CJK UNIFIED IDEOGRAPH - ,0xEBF9 ,0x81A3 //CJK UNIFIED IDEOGRAPH - ,0xEBFA ,0x81AA //CJK UNIFIED IDEOGRAPH - ,0xEBFB ,0x81CC //CJK UNIFIED IDEOGRAPH - ,0xEBFC ,0x6726 //CJK UNIFIED IDEOGRAPH - ,0xEBFD ,0x81CA //CJK UNIFIED IDEOGRAPH - ,0xEBFE ,0x81BB //CJK UNIFIED IDEOGRAPH - ,0xEC40 ,0x9721 //CJK UNIFIED IDEOGRAPH - ,0xEC41 ,0x9722 //CJK UNIFIED IDEOGRAPH - ,0xEC42 ,0x9723 //CJK UNIFIED IDEOGRAPH - ,0xEC43 ,0x9724 //CJK UNIFIED IDEOGRAPH - ,0xEC44 ,0x9725 //CJK UNIFIED IDEOGRAPH - ,0xEC45 ,0x9726 //CJK UNIFIED IDEOGRAPH - ,0xEC46 ,0x9727 //CJK UNIFIED IDEOGRAPH - ,0xEC47 ,0x9728 //CJK UNIFIED IDEOGRAPH - ,0xEC48 ,0x9729 //CJK UNIFIED IDEOGRAPH - ,0xEC49 ,0x972B //CJK UNIFIED IDEOGRAPH - ,0xEC4A ,0x972C //CJK UNIFIED IDEOGRAPH - ,0xEC4B ,0x972E //CJK UNIFIED IDEOGRAPH - ,0xEC4C ,0x972F //CJK UNIFIED IDEOGRAPH - ,0xEC4D ,0x9731 //CJK UNIFIED IDEOGRAPH - ,0xEC4E ,0x9733 //CJK UNIFIED IDEOGRAPH - ,0xEC4F ,0x9734 //CJK UNIFIED IDEOGRAPH - ,0xEC50 ,0x9735 //CJK UNIFIED IDEOGRAPH - ,0xEC51 ,0x9736 //CJK UNIFIED IDEOGRAPH - ,0xEC52 ,0x9737 //CJK UNIFIED IDEOGRAPH - ,0xEC53 ,0x973A //CJK UNIFIED IDEOGRAPH - ,0xEC54 ,0x973B //CJK UNIFIED IDEOGRAPH - ,0xEC55 ,0x973C //CJK UNIFIED IDEOGRAPH - ,0xEC56 ,0x973D //CJK UNIFIED IDEOGRAPH - ,0xEC57 ,0x973F //CJK UNIFIED IDEOGRAPH - ,0xEC58 ,0x9740 //CJK UNIFIED IDEOGRAPH - ,0xEC59 ,0x9741 //CJK UNIFIED IDEOGRAPH - ,0xEC5A ,0x9742 //CJK UNIFIED IDEOGRAPH - ,0xEC5B ,0x9743 //CJK UNIFIED IDEOGRAPH - ,0xEC5C ,0x9744 //CJK UNIFIED IDEOGRAPH - ,0xEC5D ,0x9745 //CJK UNIFIED IDEOGRAPH - ,0xEC5E ,0x9746 //CJK UNIFIED IDEOGRAPH - ,0xEC5F ,0x9747 //CJK UNIFIED IDEOGRAPH - ,0xEC60 ,0x9748 //CJK UNIFIED IDEOGRAPH - ,0xEC61 ,0x9749 //CJK UNIFIED IDEOGRAPH - ,0xEC62 ,0x974A //CJK UNIFIED IDEOGRAPH - ,0xEC63 ,0x974B //CJK UNIFIED IDEOGRAPH - ,0xEC64 ,0x974C //CJK UNIFIED IDEOGRAPH - ,0xEC65 ,0x974D //CJK UNIFIED IDEOGRAPH - ,0xEC66 ,0x974E //CJK UNIFIED IDEOGRAPH - ,0xEC67 ,0x974F //CJK UNIFIED IDEOGRAPH - ,0xEC68 ,0x9750 //CJK UNIFIED IDEOGRAPH - ,0xEC69 ,0x9751 //CJK UNIFIED IDEOGRAPH - ,0xEC6A ,0x9754 //CJK UNIFIED IDEOGRAPH - ,0xEC6B ,0x9755 //CJK UNIFIED IDEOGRAPH - ,0xEC6C ,0x9757 //CJK UNIFIED IDEOGRAPH - ,0xEC6D ,0x9758 //CJK UNIFIED IDEOGRAPH - ,0xEC6E ,0x975A //CJK UNIFIED IDEOGRAPH - ,0xEC6F ,0x975C //CJK UNIFIED IDEOGRAPH - ,0xEC70 ,0x975D //CJK UNIFIED IDEOGRAPH - ,0xEC71 ,0x975F //CJK UNIFIED IDEOGRAPH - ,0xEC72 ,0x9763 //CJK UNIFIED IDEOGRAPH - ,0xEC73 ,0x9764 //CJK UNIFIED IDEOGRAPH - ,0xEC74 ,0x9766 //CJK UNIFIED IDEOGRAPH - ,0xEC75 ,0x9767 //CJK UNIFIED IDEOGRAPH - ,0xEC76 ,0x9768 //CJK UNIFIED IDEOGRAPH - ,0xEC77 ,0x976A //CJK UNIFIED IDEOGRAPH - ,0xEC78 ,0x976B //CJK UNIFIED IDEOGRAPH - ,0xEC79 ,0x976C //CJK UNIFIED IDEOGRAPH - ,0xEC7A ,0x976D //CJK UNIFIED IDEOGRAPH - ,0xEC7B ,0x976E //CJK UNIFIED IDEOGRAPH - ,0xEC7C ,0x976F //CJK UNIFIED IDEOGRAPH - ,0xEC7D ,0x9770 //CJK UNIFIED IDEOGRAPH - ,0xEC7E ,0x9771 //CJK UNIFIED IDEOGRAPH - ,0xEC80 ,0x9772 //CJK UNIFIED IDEOGRAPH - ,0xEC81 ,0x9775 //CJK UNIFIED IDEOGRAPH - ,0xEC82 ,0x9777 //CJK UNIFIED IDEOGRAPH - ,0xEC83 ,0x9778 //CJK UNIFIED IDEOGRAPH - ,0xEC84 ,0x9779 //CJK UNIFIED IDEOGRAPH - ,0xEC85 ,0x977A //CJK UNIFIED IDEOGRAPH - ,0xEC86 ,0x977B //CJK UNIFIED IDEOGRAPH - ,0xEC87 ,0x977D //CJK UNIFIED IDEOGRAPH - ,0xEC88 ,0x977E //CJK UNIFIED IDEOGRAPH - ,0xEC89 ,0x977F //CJK UNIFIED IDEOGRAPH - ,0xEC8A ,0x9780 //CJK UNIFIED IDEOGRAPH - ,0xEC8B ,0x9781 //CJK UNIFIED IDEOGRAPH - ,0xEC8C ,0x9782 //CJK UNIFIED IDEOGRAPH - ,0xEC8D ,0x9783 //CJK UNIFIED IDEOGRAPH - ,0xEC8E ,0x9784 //CJK UNIFIED IDEOGRAPH - ,0xEC8F ,0x9786 //CJK UNIFIED IDEOGRAPH - ,0xEC90 ,0x9787 //CJK UNIFIED IDEOGRAPH - ,0xEC91 ,0x9788 //CJK UNIFIED IDEOGRAPH - ,0xEC92 ,0x9789 //CJK UNIFIED IDEOGRAPH - ,0xEC93 ,0x978A //CJK UNIFIED IDEOGRAPH - ,0xEC94 ,0x978C //CJK UNIFIED IDEOGRAPH - ,0xEC95 ,0x978E //CJK UNIFIED IDEOGRAPH - ,0xEC96 ,0x978F //CJK UNIFIED IDEOGRAPH - ,0xEC97 ,0x9790 //CJK UNIFIED IDEOGRAPH - ,0xEC98 ,0x9793 //CJK UNIFIED IDEOGRAPH - ,0xEC99 ,0x9795 //CJK UNIFIED IDEOGRAPH - ,0xEC9A ,0x9796 //CJK UNIFIED IDEOGRAPH - ,0xEC9B ,0x9797 //CJK UNIFIED IDEOGRAPH - ,0xEC9C ,0x9799 //CJK UNIFIED IDEOGRAPH - ,0xEC9D ,0x979A //CJK UNIFIED IDEOGRAPH - ,0xEC9E ,0x979B //CJK UNIFIED IDEOGRAPH - ,0xEC9F ,0x979C //CJK UNIFIED IDEOGRAPH - ,0xECA0 ,0x979D //CJK UNIFIED IDEOGRAPH - ,0xECA1 ,0x81C1 //CJK UNIFIED IDEOGRAPH - ,0xECA2 ,0x81A6 //CJK UNIFIED IDEOGRAPH - ,0xECA3 ,0x6B24 //CJK UNIFIED IDEOGRAPH - ,0xECA4 ,0x6B37 //CJK UNIFIED IDEOGRAPH - ,0xECA5 ,0x6B39 //CJK UNIFIED IDEOGRAPH - ,0xECA6 ,0x6B43 //CJK UNIFIED IDEOGRAPH - ,0xECA7 ,0x6B46 //CJK UNIFIED IDEOGRAPH - ,0xECA8 ,0x6B59 //CJK UNIFIED IDEOGRAPH - ,0xECA9 ,0x98D1 //CJK UNIFIED IDEOGRAPH - ,0xECAA ,0x98D2 //CJK UNIFIED IDEOGRAPH - ,0xECAB ,0x98D3 //CJK UNIFIED IDEOGRAPH - ,0xECAC ,0x98D5 //CJK UNIFIED IDEOGRAPH - ,0xECAD ,0x98D9 //CJK UNIFIED IDEOGRAPH - ,0xECAE ,0x98DA //CJK UNIFIED IDEOGRAPH - ,0xECAF ,0x6BB3 //CJK UNIFIED IDEOGRAPH - ,0xECB0 ,0x5F40 //CJK UNIFIED IDEOGRAPH - ,0xECB1 ,0x6BC2 //CJK UNIFIED IDEOGRAPH - ,0xECB2 ,0x89F3 //CJK UNIFIED IDEOGRAPH - ,0xECB3 ,0x6590 //CJK UNIFIED IDEOGRAPH - ,0xECB4 ,0x9F51 //CJK UNIFIED IDEOGRAPH - ,0xECB5 ,0x6593 //CJK UNIFIED IDEOGRAPH - ,0xECB6 ,0x65BC //CJK UNIFIED IDEOGRAPH - ,0xECB7 ,0x65C6 //CJK UNIFIED IDEOGRAPH - ,0xECB8 ,0x65C4 //CJK UNIFIED IDEOGRAPH - ,0xECB9 ,0x65C3 //CJK UNIFIED IDEOGRAPH - ,0xECBA ,0x65CC //CJK UNIFIED IDEOGRAPH - ,0xECBB ,0x65CE //CJK UNIFIED IDEOGRAPH - ,0xECBC ,0x65D2 //CJK UNIFIED IDEOGRAPH - ,0xECBD ,0x65D6 //CJK UNIFIED IDEOGRAPH - ,0xECBE ,0x7080 //CJK UNIFIED IDEOGRAPH - ,0xECBF ,0x709C //CJK UNIFIED IDEOGRAPH - ,0xECC0 ,0x7096 //CJK UNIFIED IDEOGRAPH - ,0xECC1 ,0x709D //CJK UNIFIED IDEOGRAPH - ,0xECC2 ,0x70BB //CJK UNIFIED IDEOGRAPH - ,0xECC3 ,0x70C0 //CJK UNIFIED IDEOGRAPH - ,0xECC4 ,0x70B7 //CJK UNIFIED IDEOGRAPH - ,0xECC5 ,0x70AB //CJK UNIFIED IDEOGRAPH - ,0xECC6 ,0x70B1 //CJK UNIFIED IDEOGRAPH - ,0xECC7 ,0x70E8 //CJK UNIFIED IDEOGRAPH - ,0xECC8 ,0x70CA //CJK UNIFIED IDEOGRAPH - ,0xECC9 ,0x7110 //CJK UNIFIED IDEOGRAPH - ,0xECCA ,0x7113 //CJK UNIFIED IDEOGRAPH - ,0xECCB ,0x7116 //CJK UNIFIED IDEOGRAPH - ,0xECCC ,0x712F //CJK UNIFIED IDEOGRAPH - ,0xECCD ,0x7131 //CJK UNIFIED IDEOGRAPH - ,0xECCE ,0x7173 //CJK UNIFIED IDEOGRAPH - ,0xECCF ,0x715C //CJK UNIFIED IDEOGRAPH - ,0xECD0 ,0x7168 //CJK UNIFIED IDEOGRAPH - ,0xECD1 ,0x7145 //CJK UNIFIED IDEOGRAPH - ,0xECD2 ,0x7172 //CJK UNIFIED IDEOGRAPH - ,0xECD3 ,0x714A //CJK UNIFIED IDEOGRAPH - ,0xECD4 ,0x7178 //CJK UNIFIED IDEOGRAPH - ,0xECD5 ,0x717A //CJK UNIFIED IDEOGRAPH - ,0xECD6 ,0x7198 //CJK UNIFIED IDEOGRAPH - ,0xECD7 ,0x71B3 //CJK UNIFIED IDEOGRAPH - ,0xECD8 ,0x71B5 //CJK UNIFIED IDEOGRAPH - ,0xECD9 ,0x71A8 //CJK UNIFIED IDEOGRAPH - ,0xECDA ,0x71A0 //CJK UNIFIED IDEOGRAPH - ,0xECDB ,0x71E0 //CJK UNIFIED IDEOGRAPH - ,0xECDC ,0x71D4 //CJK UNIFIED IDEOGRAPH - ,0xECDD ,0x71E7 //CJK UNIFIED IDEOGRAPH - ,0xECDE ,0x71F9 //CJK UNIFIED IDEOGRAPH - ,0xECDF ,0x721D //CJK UNIFIED IDEOGRAPH - ,0xECE0 ,0x7228 //CJK UNIFIED IDEOGRAPH - ,0xECE1 ,0x706C //CJK UNIFIED IDEOGRAPH - ,0xECE2 ,0x7118 //CJK UNIFIED IDEOGRAPH - ,0xECE3 ,0x7166 //CJK UNIFIED IDEOGRAPH - ,0xECE4 ,0x71B9 //CJK UNIFIED IDEOGRAPH - ,0xECE5 ,0x623E //CJK UNIFIED IDEOGRAPH - ,0xECE6 ,0x623D //CJK UNIFIED IDEOGRAPH - ,0xECE7 ,0x6243 //CJK UNIFIED IDEOGRAPH - ,0xECE8 ,0x6248 //CJK UNIFIED IDEOGRAPH - ,0xECE9 ,0x6249 //CJK UNIFIED IDEOGRAPH - ,0xECEA ,0x793B //CJK UNIFIED IDEOGRAPH - ,0xECEB ,0x7940 //CJK UNIFIED IDEOGRAPH - ,0xECEC ,0x7946 //CJK UNIFIED IDEOGRAPH - ,0xECED ,0x7949 //CJK UNIFIED IDEOGRAPH - ,0xECEE ,0x795B //CJK UNIFIED IDEOGRAPH - ,0xECEF ,0x795C //CJK UNIFIED IDEOGRAPH - ,0xECF0 ,0x7953 //CJK UNIFIED IDEOGRAPH - ,0xECF1 ,0x795A //CJK UNIFIED IDEOGRAPH - ,0xECF2 ,0x7962 //CJK UNIFIED IDEOGRAPH - ,0xECF3 ,0x7957 //CJK UNIFIED IDEOGRAPH - ,0xECF4 ,0x7960 //CJK UNIFIED IDEOGRAPH - ,0xECF5 ,0x796F //CJK UNIFIED IDEOGRAPH - ,0xECF6 ,0x7967 //CJK UNIFIED IDEOGRAPH - ,0xECF7 ,0x797A //CJK UNIFIED IDEOGRAPH - ,0xECF8 ,0x7985 //CJK UNIFIED IDEOGRAPH - ,0xECF9 ,0x798A //CJK UNIFIED IDEOGRAPH - ,0xECFA ,0x799A //CJK UNIFIED IDEOGRAPH - ,0xECFB ,0x79A7 //CJK UNIFIED IDEOGRAPH - ,0xECFC ,0x79B3 //CJK UNIFIED IDEOGRAPH - ,0xECFD ,0x5FD1 //CJK UNIFIED IDEOGRAPH - ,0xECFE ,0x5FD0 //CJK UNIFIED IDEOGRAPH - ,0xED40 ,0x979E //CJK UNIFIED IDEOGRAPH - ,0xED41 ,0x979F //CJK UNIFIED IDEOGRAPH - ,0xED42 ,0x97A1 //CJK UNIFIED IDEOGRAPH - ,0xED43 ,0x97A2 //CJK UNIFIED IDEOGRAPH - ,0xED44 ,0x97A4 //CJK UNIFIED IDEOGRAPH - ,0xED45 ,0x97A5 //CJK UNIFIED IDEOGRAPH - ,0xED46 ,0x97A6 //CJK UNIFIED IDEOGRAPH - ,0xED47 ,0x97A7 //CJK UNIFIED IDEOGRAPH - ,0xED48 ,0x97A8 //CJK UNIFIED IDEOGRAPH - ,0xED49 ,0x97A9 //CJK UNIFIED IDEOGRAPH - ,0xED4A ,0x97AA //CJK UNIFIED IDEOGRAPH - ,0xED4B ,0x97AC //CJK UNIFIED IDEOGRAPH - ,0xED4C ,0x97AE //CJK UNIFIED IDEOGRAPH - ,0xED4D ,0x97B0 //CJK UNIFIED IDEOGRAPH - ,0xED4E ,0x97B1 //CJK UNIFIED IDEOGRAPH - ,0xED4F ,0x97B3 //CJK UNIFIED IDEOGRAPH - ,0xED50 ,0x97B5 //CJK UNIFIED IDEOGRAPH - ,0xED51 ,0x97B6 //CJK UNIFIED IDEOGRAPH - ,0xED52 ,0x97B7 //CJK UNIFIED IDEOGRAPH - ,0xED53 ,0x97B8 //CJK UNIFIED IDEOGRAPH - ,0xED54 ,0x97B9 //CJK UNIFIED IDEOGRAPH - ,0xED55 ,0x97BA //CJK UNIFIED IDEOGRAPH - ,0xED56 ,0x97BB //CJK UNIFIED IDEOGRAPH - ,0xED57 ,0x97BC //CJK UNIFIED IDEOGRAPH - ,0xED58 ,0x97BD //CJK UNIFIED IDEOGRAPH - ,0xED59 ,0x97BE //CJK UNIFIED IDEOGRAPH - ,0xED5A ,0x97BF //CJK UNIFIED IDEOGRAPH - ,0xED5B ,0x97C0 //CJK UNIFIED IDEOGRAPH - ,0xED5C ,0x97C1 //CJK UNIFIED IDEOGRAPH - ,0xED5D ,0x97C2 //CJK UNIFIED IDEOGRAPH - ,0xED5E ,0x97C3 //CJK UNIFIED IDEOGRAPH - ,0xED5F ,0x97C4 //CJK UNIFIED IDEOGRAPH - ,0xED60 ,0x97C5 //CJK UNIFIED IDEOGRAPH - ,0xED61 ,0x97C6 //CJK UNIFIED IDEOGRAPH - ,0xED62 ,0x97C7 //CJK UNIFIED IDEOGRAPH - ,0xED63 ,0x97C8 //CJK UNIFIED IDEOGRAPH - ,0xED64 ,0x97C9 //CJK UNIFIED IDEOGRAPH - ,0xED65 ,0x97CA //CJK UNIFIED IDEOGRAPH - ,0xED66 ,0x97CB //CJK UNIFIED IDEOGRAPH - ,0xED67 ,0x97CC //CJK UNIFIED IDEOGRAPH - ,0xED68 ,0x97CD //CJK UNIFIED IDEOGRAPH - ,0xED69 ,0x97CE //CJK UNIFIED IDEOGRAPH - ,0xED6A ,0x97CF //CJK UNIFIED IDEOGRAPH - ,0xED6B ,0x97D0 //CJK UNIFIED IDEOGRAPH - ,0xED6C ,0x97D1 //CJK UNIFIED IDEOGRAPH - ,0xED6D ,0x97D2 //CJK UNIFIED IDEOGRAPH - ,0xED6E ,0x97D3 //CJK UNIFIED IDEOGRAPH - ,0xED6F ,0x97D4 //CJK UNIFIED IDEOGRAPH - ,0xED70 ,0x97D5 //CJK UNIFIED IDEOGRAPH - ,0xED71 ,0x97D6 //CJK UNIFIED IDEOGRAPH - ,0xED72 ,0x97D7 //CJK UNIFIED IDEOGRAPH - ,0xED73 ,0x97D8 //CJK UNIFIED IDEOGRAPH - ,0xED74 ,0x97D9 //CJK UNIFIED IDEOGRAPH - ,0xED75 ,0x97DA //CJK UNIFIED IDEOGRAPH - ,0xED76 ,0x97DB //CJK UNIFIED IDEOGRAPH - ,0xED77 ,0x97DC //CJK UNIFIED IDEOGRAPH - ,0xED78 ,0x97DD //CJK UNIFIED IDEOGRAPH - ,0xED79 ,0x97DE //CJK UNIFIED IDEOGRAPH - ,0xED7A ,0x97DF //CJK UNIFIED IDEOGRAPH - ,0xED7B ,0x97E0 //CJK UNIFIED IDEOGRAPH - ,0xED7C ,0x97E1 //CJK UNIFIED IDEOGRAPH - ,0xED7D ,0x97E2 //CJK UNIFIED IDEOGRAPH - ,0xED7E ,0x97E3 //CJK UNIFIED IDEOGRAPH - ,0xED80 ,0x97E4 //CJK UNIFIED IDEOGRAPH - ,0xED81 ,0x97E5 //CJK UNIFIED IDEOGRAPH - ,0xED82 ,0x97E8 //CJK UNIFIED IDEOGRAPH - ,0xED83 ,0x97EE //CJK UNIFIED IDEOGRAPH - ,0xED84 ,0x97EF //CJK UNIFIED IDEOGRAPH - ,0xED85 ,0x97F0 //CJK UNIFIED IDEOGRAPH - ,0xED86 ,0x97F1 //CJK UNIFIED IDEOGRAPH - ,0xED87 ,0x97F2 //CJK UNIFIED IDEOGRAPH - ,0xED88 ,0x97F4 //CJK UNIFIED IDEOGRAPH - ,0xED89 ,0x97F7 //CJK UNIFIED IDEOGRAPH - ,0xED8A ,0x97F8 //CJK UNIFIED IDEOGRAPH - ,0xED8B ,0x97F9 //CJK UNIFIED IDEOGRAPH - ,0xED8C ,0x97FA //CJK UNIFIED IDEOGRAPH - ,0xED8D ,0x97FB //CJK UNIFIED IDEOGRAPH - ,0xED8E ,0x97FC //CJK UNIFIED IDEOGRAPH - ,0xED8F ,0x97FD //CJK UNIFIED IDEOGRAPH - ,0xED90 ,0x97FE //CJK UNIFIED IDEOGRAPH - ,0xED91 ,0x97FF //CJK UNIFIED IDEOGRAPH - ,0xED92 ,0x9800 //CJK UNIFIED IDEOGRAPH - ,0xED93 ,0x9801 //CJK UNIFIED IDEOGRAPH - ,0xED94 ,0x9802 //CJK UNIFIED IDEOGRAPH - ,0xED95 ,0x9803 //CJK UNIFIED IDEOGRAPH - ,0xED96 ,0x9804 //CJK UNIFIED IDEOGRAPH - ,0xED97 ,0x9805 //CJK UNIFIED IDEOGRAPH - ,0xED98 ,0x9806 //CJK UNIFIED IDEOGRAPH - ,0xED99 ,0x9807 //CJK UNIFIED IDEOGRAPH - ,0xED9A ,0x9808 //CJK UNIFIED IDEOGRAPH - ,0xED9B ,0x9809 //CJK UNIFIED IDEOGRAPH - ,0xED9C ,0x980A //CJK UNIFIED IDEOGRAPH - ,0xED9D ,0x980B //CJK UNIFIED IDEOGRAPH - ,0xED9E ,0x980C //CJK UNIFIED IDEOGRAPH - ,0xED9F ,0x980D //CJK UNIFIED IDEOGRAPH - ,0xEDA0 ,0x980E //CJK UNIFIED IDEOGRAPH - ,0xEDA1 ,0x603C //CJK UNIFIED IDEOGRAPH - ,0xEDA2 ,0x605D //CJK UNIFIED IDEOGRAPH - ,0xEDA3 ,0x605A //CJK UNIFIED IDEOGRAPH - ,0xEDA4 ,0x6067 //CJK UNIFIED IDEOGRAPH - ,0xEDA5 ,0x6041 //CJK UNIFIED IDEOGRAPH - ,0xEDA6 ,0x6059 //CJK UNIFIED IDEOGRAPH - ,0xEDA7 ,0x6063 //CJK UNIFIED IDEOGRAPH - ,0xEDA8 ,0x60AB //CJK UNIFIED IDEOGRAPH - ,0xEDA9 ,0x6106 //CJK UNIFIED IDEOGRAPH - ,0xEDAA ,0x610D //CJK UNIFIED IDEOGRAPH - ,0xEDAB ,0x615D //CJK UNIFIED IDEOGRAPH - ,0xEDAC ,0x61A9 //CJK UNIFIED IDEOGRAPH - ,0xEDAD ,0x619D //CJK UNIFIED IDEOGRAPH - ,0xEDAE ,0x61CB //CJK UNIFIED IDEOGRAPH - ,0xEDAF ,0x61D1 //CJK UNIFIED IDEOGRAPH - ,0xEDB0 ,0x6206 //CJK UNIFIED IDEOGRAPH - ,0xEDB1 ,0x8080 //CJK UNIFIED IDEOGRAPH - ,0xEDB2 ,0x807F //CJK UNIFIED IDEOGRAPH - ,0xEDB3 ,0x6C93 //CJK UNIFIED IDEOGRAPH - ,0xEDB4 ,0x6CF6 //CJK UNIFIED IDEOGRAPH - ,0xEDB5 ,0x6DFC //CJK UNIFIED IDEOGRAPH - ,0xEDB6 ,0x77F6 //CJK UNIFIED IDEOGRAPH - ,0xEDB7 ,0x77F8 //CJK UNIFIED IDEOGRAPH - ,0xEDB8 ,0x7800 //CJK UNIFIED IDEOGRAPH - ,0xEDB9 ,0x7809 //CJK UNIFIED IDEOGRAPH - ,0xEDBA ,0x7817 //CJK UNIFIED IDEOGRAPH - ,0xEDBB ,0x7818 //CJK UNIFIED IDEOGRAPH - ,0xEDBC ,0x7811 //CJK UNIFIED IDEOGRAPH - ,0xEDBD ,0x65AB //CJK UNIFIED IDEOGRAPH - ,0xEDBE ,0x782D //CJK UNIFIED IDEOGRAPH - ,0xEDBF ,0x781C //CJK UNIFIED IDEOGRAPH - ,0xEDC0 ,0x781D //CJK UNIFIED IDEOGRAPH - ,0xEDC1 ,0x7839 //CJK UNIFIED IDEOGRAPH - ,0xEDC2 ,0x783A //CJK UNIFIED IDEOGRAPH - ,0xEDC3 ,0x783B //CJK UNIFIED IDEOGRAPH - ,0xEDC4 ,0x781F //CJK UNIFIED IDEOGRAPH - ,0xEDC5 ,0x783C //CJK UNIFIED IDEOGRAPH - ,0xEDC6 ,0x7825 //CJK UNIFIED IDEOGRAPH - ,0xEDC7 ,0x782C //CJK UNIFIED IDEOGRAPH - ,0xEDC8 ,0x7823 //CJK UNIFIED IDEOGRAPH - ,0xEDC9 ,0x7829 //CJK UNIFIED IDEOGRAPH - ,0xEDCA ,0x784E //CJK UNIFIED IDEOGRAPH - ,0xEDCB ,0x786D //CJK UNIFIED IDEOGRAPH - ,0xEDCC ,0x7856 //CJK UNIFIED IDEOGRAPH - ,0xEDCD ,0x7857 //CJK UNIFIED IDEOGRAPH - ,0xEDCE ,0x7826 //CJK UNIFIED IDEOGRAPH - ,0xEDCF ,0x7850 //CJK UNIFIED IDEOGRAPH - ,0xEDD0 ,0x7847 //CJK UNIFIED IDEOGRAPH - ,0xEDD1 ,0x784C //CJK UNIFIED IDEOGRAPH - ,0xEDD2 ,0x786A //CJK UNIFIED IDEOGRAPH - ,0xEDD3 ,0x789B //CJK UNIFIED IDEOGRAPH - ,0xEDD4 ,0x7893 //CJK UNIFIED IDEOGRAPH - ,0xEDD5 ,0x789A //CJK UNIFIED IDEOGRAPH - ,0xEDD6 ,0x7887 //CJK UNIFIED IDEOGRAPH - ,0xEDD7 ,0x789C //CJK UNIFIED IDEOGRAPH - ,0xEDD8 ,0x78A1 //CJK UNIFIED IDEOGRAPH - ,0xEDD9 ,0x78A3 //CJK UNIFIED IDEOGRAPH - ,0xEDDA ,0x78B2 //CJK UNIFIED IDEOGRAPH - ,0xEDDB ,0x78B9 //CJK UNIFIED IDEOGRAPH - ,0xEDDC ,0x78A5 //CJK UNIFIED IDEOGRAPH - ,0xEDDD ,0x78D4 //CJK UNIFIED IDEOGRAPH - ,0xEDDE ,0x78D9 //CJK UNIFIED IDEOGRAPH - ,0xEDDF ,0x78C9 //CJK UNIFIED IDEOGRAPH - ,0xEDE0 ,0x78EC //CJK UNIFIED IDEOGRAPH - ,0xEDE1 ,0x78F2 //CJK UNIFIED IDEOGRAPH - ,0xEDE2 ,0x7905 //CJK UNIFIED IDEOGRAPH - ,0xEDE3 ,0x78F4 //CJK UNIFIED IDEOGRAPH - ,0xEDE4 ,0x7913 //CJK UNIFIED IDEOGRAPH - ,0xEDE5 ,0x7924 //CJK UNIFIED IDEOGRAPH - ,0xEDE6 ,0x791E //CJK UNIFIED IDEOGRAPH - ,0xEDE7 ,0x7934 //CJK UNIFIED IDEOGRAPH - ,0xEDE8 ,0x9F9B //CJK UNIFIED IDEOGRAPH - ,0xEDE9 ,0x9EF9 //CJK UNIFIED IDEOGRAPH - ,0xEDEA ,0x9EFB //CJK UNIFIED IDEOGRAPH - ,0xEDEB ,0x9EFC //CJK UNIFIED IDEOGRAPH - ,0xEDEC ,0x76F1 //CJK UNIFIED IDEOGRAPH - ,0xEDED ,0x7704 //CJK UNIFIED IDEOGRAPH - ,0xEDEE ,0x770D //CJK UNIFIED IDEOGRAPH - ,0xEDEF ,0x76F9 //CJK UNIFIED IDEOGRAPH - ,0xEDF0 ,0x7707 //CJK UNIFIED IDEOGRAPH - ,0xEDF1 ,0x7708 //CJK UNIFIED IDEOGRAPH - ,0xEDF2 ,0x771A //CJK UNIFIED IDEOGRAPH - ,0xEDF3 ,0x7722 //CJK UNIFIED IDEOGRAPH - ,0xEDF4 ,0x7719 //CJK UNIFIED IDEOGRAPH - ,0xEDF5 ,0x772D //CJK UNIFIED IDEOGRAPH - ,0xEDF6 ,0x7726 //CJK UNIFIED IDEOGRAPH - ,0xEDF7 ,0x7735 //CJK UNIFIED IDEOGRAPH - ,0xEDF8 ,0x7738 //CJK UNIFIED IDEOGRAPH - ,0xEDF9 ,0x7750 //CJK UNIFIED IDEOGRAPH - ,0xEDFA ,0x7751 //CJK UNIFIED IDEOGRAPH - ,0xEDFB ,0x7747 //CJK UNIFIED IDEOGRAPH - ,0xEDFC ,0x7743 //CJK UNIFIED IDEOGRAPH - ,0xEDFD ,0x775A //CJK UNIFIED IDEOGRAPH - ,0xEDFE ,0x7768 //CJK UNIFIED IDEOGRAPH - ,0xEE40 ,0x980F //CJK UNIFIED IDEOGRAPH - ,0xEE41 ,0x9810 //CJK UNIFIED IDEOGRAPH - ,0xEE42 ,0x9811 //CJK UNIFIED IDEOGRAPH - ,0xEE43 ,0x9812 //CJK UNIFIED IDEOGRAPH - ,0xEE44 ,0x9813 //CJK UNIFIED IDEOGRAPH - ,0xEE45 ,0x9814 //CJK UNIFIED IDEOGRAPH - ,0xEE46 ,0x9815 //CJK UNIFIED IDEOGRAPH - ,0xEE47 ,0x9816 //CJK UNIFIED IDEOGRAPH - ,0xEE48 ,0x9817 //CJK UNIFIED IDEOGRAPH - ,0xEE49 ,0x9818 //CJK UNIFIED IDEOGRAPH - ,0xEE4A ,0x9819 //CJK UNIFIED IDEOGRAPH - ,0xEE4B ,0x981A //CJK UNIFIED IDEOGRAPH - ,0xEE4C ,0x981B //CJK UNIFIED IDEOGRAPH - ,0xEE4D ,0x981C //CJK UNIFIED IDEOGRAPH - ,0xEE4E ,0x981D //CJK UNIFIED IDEOGRAPH - ,0xEE4F ,0x981E //CJK UNIFIED IDEOGRAPH - ,0xEE50 ,0x981F //CJK UNIFIED IDEOGRAPH - ,0xEE51 ,0x9820 //CJK UNIFIED IDEOGRAPH - ,0xEE52 ,0x9821 //CJK UNIFIED IDEOGRAPH - ,0xEE53 ,0x9822 //CJK UNIFIED IDEOGRAPH - ,0xEE54 ,0x9823 //CJK UNIFIED IDEOGRAPH - ,0xEE55 ,0x9824 //CJK UNIFIED IDEOGRAPH - ,0xEE56 ,0x9825 //CJK UNIFIED IDEOGRAPH - ,0xEE57 ,0x9826 //CJK UNIFIED IDEOGRAPH - ,0xEE58 ,0x9827 //CJK UNIFIED IDEOGRAPH - ,0xEE59 ,0x9828 //CJK UNIFIED IDEOGRAPH - ,0xEE5A ,0x9829 //CJK UNIFIED IDEOGRAPH - ,0xEE5B ,0x982A //CJK UNIFIED IDEOGRAPH - ,0xEE5C ,0x982B //CJK UNIFIED IDEOGRAPH - ,0xEE5D ,0x982C //CJK UNIFIED IDEOGRAPH - ,0xEE5E ,0x982D //CJK UNIFIED IDEOGRAPH - ,0xEE5F ,0x982E //CJK UNIFIED IDEOGRAPH - ,0xEE60 ,0x982F //CJK UNIFIED IDEOGRAPH - ,0xEE61 ,0x9830 //CJK UNIFIED IDEOGRAPH - ,0xEE62 ,0x9831 //CJK UNIFIED IDEOGRAPH - ,0xEE63 ,0x9832 //CJK UNIFIED IDEOGRAPH - ,0xEE64 ,0x9833 //CJK UNIFIED IDEOGRAPH - ,0xEE65 ,0x9834 //CJK UNIFIED IDEOGRAPH - ,0xEE66 ,0x9835 //CJK UNIFIED IDEOGRAPH - ,0xEE67 ,0x9836 //CJK UNIFIED IDEOGRAPH - ,0xEE68 ,0x9837 //CJK UNIFIED IDEOGRAPH - ,0xEE69 ,0x9838 //CJK UNIFIED IDEOGRAPH - ,0xEE6A ,0x9839 //CJK UNIFIED IDEOGRAPH - ,0xEE6B ,0x983A //CJK UNIFIED IDEOGRAPH - ,0xEE6C ,0x983B //CJK UNIFIED IDEOGRAPH - ,0xEE6D ,0x983C //CJK UNIFIED IDEOGRAPH - ,0xEE6E ,0x983D //CJK UNIFIED IDEOGRAPH - ,0xEE6F ,0x983E //CJK UNIFIED IDEOGRAPH - ,0xEE70 ,0x983F //CJK UNIFIED IDEOGRAPH - ,0xEE71 ,0x9840 //CJK UNIFIED IDEOGRAPH - ,0xEE72 ,0x9841 //CJK UNIFIED IDEOGRAPH - ,0xEE73 ,0x9842 //CJK UNIFIED IDEOGRAPH - ,0xEE74 ,0x9843 //CJK UNIFIED IDEOGRAPH - ,0xEE75 ,0x9844 //CJK UNIFIED IDEOGRAPH - ,0xEE76 ,0x9845 //CJK UNIFIED IDEOGRAPH - ,0xEE77 ,0x9846 //CJK UNIFIED IDEOGRAPH - ,0xEE78 ,0x9847 //CJK UNIFIED IDEOGRAPH - ,0xEE79 ,0x9848 //CJK UNIFIED IDEOGRAPH - ,0xEE7A ,0x9849 //CJK UNIFIED IDEOGRAPH - ,0xEE7B ,0x984A //CJK UNIFIED IDEOGRAPH - ,0xEE7C ,0x984B //CJK UNIFIED IDEOGRAPH - ,0xEE7D ,0x984C //CJK UNIFIED IDEOGRAPH - ,0xEE7E ,0x984D //CJK UNIFIED IDEOGRAPH - ,0xEE80 ,0x984E //CJK UNIFIED IDEOGRAPH - ,0xEE81 ,0x984F //CJK UNIFIED IDEOGRAPH - ,0xEE82 ,0x9850 //CJK UNIFIED IDEOGRAPH - ,0xEE83 ,0x9851 //CJK UNIFIED IDEOGRAPH - ,0xEE84 ,0x9852 //CJK UNIFIED IDEOGRAPH - ,0xEE85 ,0x9853 //CJK UNIFIED IDEOGRAPH - ,0xEE86 ,0x9854 //CJK UNIFIED IDEOGRAPH - ,0xEE87 ,0x9855 //CJK UNIFIED IDEOGRAPH - ,0xEE88 ,0x9856 //CJK UNIFIED IDEOGRAPH - ,0xEE89 ,0x9857 //CJK UNIFIED IDEOGRAPH - ,0xEE8A ,0x9858 //CJK UNIFIED IDEOGRAPH - ,0xEE8B ,0x9859 //CJK UNIFIED IDEOGRAPH - ,0xEE8C ,0x985A //CJK UNIFIED IDEOGRAPH - ,0xEE8D ,0x985B //CJK UNIFIED IDEOGRAPH - ,0xEE8E ,0x985C //CJK UNIFIED IDEOGRAPH - ,0xEE8F ,0x985D //CJK UNIFIED IDEOGRAPH - ,0xEE90 ,0x985E //CJK UNIFIED IDEOGRAPH - ,0xEE91 ,0x985F //CJK UNIFIED IDEOGRAPH - ,0xEE92 ,0x9860 //CJK UNIFIED IDEOGRAPH - ,0xEE93 ,0x9861 //CJK UNIFIED IDEOGRAPH - ,0xEE94 ,0x9862 //CJK UNIFIED IDEOGRAPH - ,0xEE95 ,0x9863 //CJK UNIFIED IDEOGRAPH - ,0xEE96 ,0x9864 //CJK UNIFIED IDEOGRAPH - ,0xEE97 ,0x9865 //CJK UNIFIED IDEOGRAPH - ,0xEE98 ,0x9866 //CJK UNIFIED IDEOGRAPH - ,0xEE99 ,0x9867 //CJK UNIFIED IDEOGRAPH - ,0xEE9A ,0x9868 //CJK UNIFIED IDEOGRAPH - ,0xEE9B ,0x9869 //CJK UNIFIED IDEOGRAPH - ,0xEE9C ,0x986A //CJK UNIFIED IDEOGRAPH - ,0xEE9D ,0x986B //CJK UNIFIED IDEOGRAPH - ,0xEE9E ,0x986C //CJK UNIFIED IDEOGRAPH - ,0xEE9F ,0x986D //CJK UNIFIED IDEOGRAPH - ,0xEEA0 ,0x986E //CJK UNIFIED IDEOGRAPH - ,0xEEA1 ,0x7762 //CJK UNIFIED IDEOGRAPH - ,0xEEA2 ,0x7765 //CJK UNIFIED IDEOGRAPH - ,0xEEA3 ,0x777F //CJK UNIFIED IDEOGRAPH - ,0xEEA4 ,0x778D //CJK UNIFIED IDEOGRAPH - ,0xEEA5 ,0x777D //CJK UNIFIED IDEOGRAPH - ,0xEEA6 ,0x7780 //CJK UNIFIED IDEOGRAPH - ,0xEEA7 ,0x778C //CJK UNIFIED IDEOGRAPH - ,0xEEA8 ,0x7791 //CJK UNIFIED IDEOGRAPH - ,0xEEA9 ,0x779F //CJK UNIFIED IDEOGRAPH - ,0xEEAA ,0x77A0 //CJK UNIFIED IDEOGRAPH - ,0xEEAB ,0x77B0 //CJK UNIFIED IDEOGRAPH - ,0xEEAC ,0x77B5 //CJK UNIFIED IDEOGRAPH - ,0xEEAD ,0x77BD //CJK UNIFIED IDEOGRAPH - ,0xEEAE ,0x753A //CJK UNIFIED IDEOGRAPH - ,0xEEAF ,0x7540 //CJK UNIFIED IDEOGRAPH - ,0xEEB0 ,0x754E //CJK UNIFIED IDEOGRAPH - ,0xEEB1 ,0x754B //CJK UNIFIED IDEOGRAPH - ,0xEEB2 ,0x7548 //CJK UNIFIED IDEOGRAPH - ,0xEEB3 ,0x755B //CJK UNIFIED IDEOGRAPH - ,0xEEB4 ,0x7572 //CJK UNIFIED IDEOGRAPH - ,0xEEB5 ,0x7579 //CJK UNIFIED IDEOGRAPH - ,0xEEB6 ,0x7583 //CJK UNIFIED IDEOGRAPH - ,0xEEB7 ,0x7F58 //CJK UNIFIED IDEOGRAPH - ,0xEEB8 ,0x7F61 //CJK UNIFIED IDEOGRAPH - ,0xEEB9 ,0x7F5F //CJK UNIFIED IDEOGRAPH - ,0xEEBA ,0x8A48 //CJK UNIFIED IDEOGRAPH - ,0xEEBB ,0x7F68 //CJK UNIFIED IDEOGRAPH - ,0xEEBC ,0x7F74 //CJK UNIFIED IDEOGRAPH - ,0xEEBD ,0x7F71 //CJK UNIFIED IDEOGRAPH - ,0xEEBE ,0x7F79 //CJK UNIFIED IDEOGRAPH - ,0xEEBF ,0x7F81 //CJK UNIFIED IDEOGRAPH - ,0xEEC0 ,0x7F7E //CJK UNIFIED IDEOGRAPH - ,0xEEC1 ,0x76CD //CJK UNIFIED IDEOGRAPH - ,0xEEC2 ,0x76E5 //CJK UNIFIED IDEOGRAPH - ,0xEEC3 ,0x8832 //CJK UNIFIED IDEOGRAPH - ,0xEEC4 ,0x9485 //CJK UNIFIED IDEOGRAPH - ,0xEEC5 ,0x9486 //CJK UNIFIED IDEOGRAPH - ,0xEEC6 ,0x9487 //CJK UNIFIED IDEOGRAPH - ,0xEEC7 ,0x948B //CJK UNIFIED IDEOGRAPH - ,0xEEC8 ,0x948A //CJK UNIFIED IDEOGRAPH - ,0xEEC9 ,0x948C //CJK UNIFIED IDEOGRAPH - ,0xEECA ,0x948D //CJK UNIFIED IDEOGRAPH - ,0xEECB ,0x948F //CJK UNIFIED IDEOGRAPH - ,0xEECC ,0x9490 //CJK UNIFIED IDEOGRAPH - ,0xEECD ,0x9494 //CJK UNIFIED IDEOGRAPH - ,0xEECE ,0x9497 //CJK UNIFIED IDEOGRAPH - ,0xEECF ,0x9495 //CJK UNIFIED IDEOGRAPH - ,0xEED0 ,0x949A //CJK UNIFIED IDEOGRAPH - ,0xEED1 ,0x949B //CJK UNIFIED IDEOGRAPH - ,0xEED2 ,0x949C //CJK UNIFIED IDEOGRAPH - ,0xEED3 ,0x94A3 //CJK UNIFIED IDEOGRAPH - ,0xEED4 ,0x94A4 //CJK UNIFIED IDEOGRAPH - ,0xEED5 ,0x94AB //CJK UNIFIED IDEOGRAPH - ,0xEED6 ,0x94AA //CJK UNIFIED IDEOGRAPH - ,0xEED7 ,0x94AD //CJK UNIFIED IDEOGRAPH - ,0xEED8 ,0x94AC //CJK UNIFIED IDEOGRAPH - ,0xEED9 ,0x94AF //CJK UNIFIED IDEOGRAPH - ,0xEEDA ,0x94B0 //CJK UNIFIED IDEOGRAPH - ,0xEEDB ,0x94B2 //CJK UNIFIED IDEOGRAPH - ,0xEEDC ,0x94B4 //CJK UNIFIED IDEOGRAPH - ,0xEEDD ,0x94B6 //CJK UNIFIED IDEOGRAPH - ,0xEEDE ,0x94B7 //CJK UNIFIED IDEOGRAPH - ,0xEEDF ,0x94B8 //CJK UNIFIED IDEOGRAPH - ,0xEEE0 ,0x94B9 //CJK UNIFIED IDEOGRAPH - ,0xEEE1 ,0x94BA //CJK UNIFIED IDEOGRAPH - ,0xEEE2 ,0x94BC //CJK UNIFIED IDEOGRAPH - ,0xEEE3 ,0x94BD //CJK UNIFIED IDEOGRAPH - ,0xEEE4 ,0x94BF //CJK UNIFIED IDEOGRAPH - ,0xEEE5 ,0x94C4 //CJK UNIFIED IDEOGRAPH - ,0xEEE6 ,0x94C8 //CJK UNIFIED IDEOGRAPH - ,0xEEE7 ,0x94C9 //CJK UNIFIED IDEOGRAPH - ,0xEEE8 ,0x94CA //CJK UNIFIED IDEOGRAPH - ,0xEEE9 ,0x94CB //CJK UNIFIED IDEOGRAPH - ,0xEEEA ,0x94CC //CJK UNIFIED IDEOGRAPH - ,0xEEEB ,0x94CD //CJK UNIFIED IDEOGRAPH - ,0xEEEC ,0x94CE //CJK UNIFIED IDEOGRAPH - ,0xEEED ,0x94D0 //CJK UNIFIED IDEOGRAPH - ,0xEEEE ,0x94D1 //CJK UNIFIED IDEOGRAPH - ,0xEEEF ,0x94D2 //CJK UNIFIED IDEOGRAPH - ,0xEEF0 ,0x94D5 //CJK UNIFIED IDEOGRAPH - ,0xEEF1 ,0x94D6 //CJK UNIFIED IDEOGRAPH - ,0xEEF2 ,0x94D7 //CJK UNIFIED IDEOGRAPH - ,0xEEF3 ,0x94D9 //CJK UNIFIED IDEOGRAPH - ,0xEEF4 ,0x94D8 //CJK UNIFIED IDEOGRAPH - ,0xEEF5 ,0x94DB //CJK UNIFIED IDEOGRAPH - ,0xEEF6 ,0x94DE //CJK UNIFIED IDEOGRAPH - ,0xEEF7 ,0x94DF //CJK UNIFIED IDEOGRAPH - ,0xEEF8 ,0x94E0 //CJK UNIFIED IDEOGRAPH - ,0xEEF9 ,0x94E2 //CJK UNIFIED IDEOGRAPH - ,0xEEFA ,0x94E4 //CJK UNIFIED IDEOGRAPH - ,0xEEFB ,0x94E5 //CJK UNIFIED IDEOGRAPH - ,0xEEFC ,0x94E7 //CJK UNIFIED IDEOGRAPH - ,0xEEFD ,0x94E8 //CJK UNIFIED IDEOGRAPH - ,0xEEFE ,0x94EA //CJK UNIFIED IDEOGRAPH - ,0xEF40 ,0x986F //CJK UNIFIED IDEOGRAPH - ,0xEF41 ,0x9870 //CJK UNIFIED IDEOGRAPH - ,0xEF42 ,0x9871 //CJK UNIFIED IDEOGRAPH - ,0xEF43 ,0x9872 //CJK UNIFIED IDEOGRAPH - ,0xEF44 ,0x9873 //CJK UNIFIED IDEOGRAPH - ,0xEF45 ,0x9874 //CJK UNIFIED IDEOGRAPH - ,0xEF46 ,0x988B //CJK UNIFIED IDEOGRAPH - ,0xEF47 ,0x988E //CJK UNIFIED IDEOGRAPH - ,0xEF48 ,0x9892 //CJK UNIFIED IDEOGRAPH - ,0xEF49 ,0x9895 //CJK UNIFIED IDEOGRAPH - ,0xEF4A ,0x9899 //CJK UNIFIED IDEOGRAPH - ,0xEF4B ,0x98A3 //CJK UNIFIED IDEOGRAPH - ,0xEF4C ,0x98A8 //CJK UNIFIED IDEOGRAPH - ,0xEF4D ,0x98A9 //CJK UNIFIED IDEOGRAPH - ,0xEF4E ,0x98AA //CJK UNIFIED IDEOGRAPH - ,0xEF4F ,0x98AB //CJK UNIFIED IDEOGRAPH - ,0xEF50 ,0x98AC //CJK UNIFIED IDEOGRAPH - ,0xEF51 ,0x98AD //CJK UNIFIED IDEOGRAPH - ,0xEF52 ,0x98AE //CJK UNIFIED IDEOGRAPH - ,0xEF53 ,0x98AF //CJK UNIFIED IDEOGRAPH - ,0xEF54 ,0x98B0 //CJK UNIFIED IDEOGRAPH - ,0xEF55 ,0x98B1 //CJK UNIFIED IDEOGRAPH - ,0xEF56 ,0x98B2 //CJK UNIFIED IDEOGRAPH - ,0xEF57 ,0x98B3 //CJK UNIFIED IDEOGRAPH - ,0xEF58 ,0x98B4 //CJK UNIFIED IDEOGRAPH - ,0xEF59 ,0x98B5 //CJK UNIFIED IDEOGRAPH - ,0xEF5A ,0x98B6 //CJK UNIFIED IDEOGRAPH - ,0xEF5B ,0x98B7 //CJK UNIFIED IDEOGRAPH - ,0xEF5C ,0x98B8 //CJK UNIFIED IDEOGRAPH - ,0xEF5D ,0x98B9 //CJK UNIFIED IDEOGRAPH - ,0xEF5E ,0x98BA //CJK UNIFIED IDEOGRAPH - ,0xEF5F ,0x98BB //CJK UNIFIED IDEOGRAPH - ,0xEF60 ,0x98BC //CJK UNIFIED IDEOGRAPH - ,0xEF61 ,0x98BD //CJK UNIFIED IDEOGRAPH - ,0xEF62 ,0x98BE //CJK UNIFIED IDEOGRAPH - ,0xEF63 ,0x98BF //CJK UNIFIED IDEOGRAPH - ,0xEF64 ,0x98C0 //CJK UNIFIED IDEOGRAPH - ,0xEF65 ,0x98C1 //CJK UNIFIED IDEOGRAPH - ,0xEF66 ,0x98C2 //CJK UNIFIED IDEOGRAPH - ,0xEF67 ,0x98C3 //CJK UNIFIED IDEOGRAPH - ,0xEF68 ,0x98C4 //CJK UNIFIED IDEOGRAPH - ,0xEF69 ,0x98C5 //CJK UNIFIED IDEOGRAPH - ,0xEF6A ,0x98C6 //CJK UNIFIED IDEOGRAPH - ,0xEF6B ,0x98C7 //CJK UNIFIED IDEOGRAPH - ,0xEF6C ,0x98C8 //CJK UNIFIED IDEOGRAPH - ,0xEF6D ,0x98C9 //CJK UNIFIED IDEOGRAPH - ,0xEF6E ,0x98CA //CJK UNIFIED IDEOGRAPH - ,0xEF6F ,0x98CB //CJK UNIFIED IDEOGRAPH - ,0xEF70 ,0x98CC //CJK UNIFIED IDEOGRAPH - ,0xEF71 ,0x98CD //CJK UNIFIED IDEOGRAPH - ,0xEF72 ,0x98CF //CJK UNIFIED IDEOGRAPH - ,0xEF73 ,0x98D0 //CJK UNIFIED IDEOGRAPH - ,0xEF74 ,0x98D4 //CJK UNIFIED IDEOGRAPH - ,0xEF75 ,0x98D6 //CJK UNIFIED IDEOGRAPH - ,0xEF76 ,0x98D7 //CJK UNIFIED IDEOGRAPH - ,0xEF77 ,0x98DB //CJK UNIFIED IDEOGRAPH - ,0xEF78 ,0x98DC //CJK UNIFIED IDEOGRAPH - ,0xEF79 ,0x98DD //CJK UNIFIED IDEOGRAPH - ,0xEF7A ,0x98E0 //CJK UNIFIED IDEOGRAPH - ,0xEF7B ,0x98E1 //CJK UNIFIED IDEOGRAPH - ,0xEF7C ,0x98E2 //CJK UNIFIED IDEOGRAPH - ,0xEF7D ,0x98E3 //CJK UNIFIED IDEOGRAPH - ,0xEF7E ,0x98E4 //CJK UNIFIED IDEOGRAPH - ,0xEF80 ,0x98E5 //CJK UNIFIED IDEOGRAPH - ,0xEF81 ,0x98E6 //CJK UNIFIED IDEOGRAPH - ,0xEF82 ,0x98E9 //CJK UNIFIED IDEOGRAPH - ,0xEF83 ,0x98EA //CJK UNIFIED IDEOGRAPH - ,0xEF84 ,0x98EB //CJK UNIFIED IDEOGRAPH - ,0xEF85 ,0x98EC //CJK UNIFIED IDEOGRAPH - ,0xEF86 ,0x98ED //CJK UNIFIED IDEOGRAPH - ,0xEF87 ,0x98EE //CJK UNIFIED IDEOGRAPH - ,0xEF88 ,0x98EF //CJK UNIFIED IDEOGRAPH - ,0xEF89 ,0x98F0 //CJK UNIFIED IDEOGRAPH - ,0xEF8A ,0x98F1 //CJK UNIFIED IDEOGRAPH - ,0xEF8B ,0x98F2 //CJK UNIFIED IDEOGRAPH - ,0xEF8C ,0x98F3 //CJK UNIFIED IDEOGRAPH - ,0xEF8D ,0x98F4 //CJK UNIFIED IDEOGRAPH - ,0xEF8E ,0x98F5 //CJK UNIFIED IDEOGRAPH - ,0xEF8F ,0x98F6 //CJK UNIFIED IDEOGRAPH - ,0xEF90 ,0x98F7 //CJK UNIFIED IDEOGRAPH - ,0xEF91 ,0x98F8 //CJK UNIFIED IDEOGRAPH - ,0xEF92 ,0x98F9 //CJK UNIFIED IDEOGRAPH - ,0xEF93 ,0x98FA //CJK UNIFIED IDEOGRAPH - ,0xEF94 ,0x98FB //CJK UNIFIED IDEOGRAPH - ,0xEF95 ,0x98FC //CJK UNIFIED IDEOGRAPH - ,0xEF96 ,0x98FD //CJK UNIFIED IDEOGRAPH - ,0xEF97 ,0x98FE //CJK UNIFIED IDEOGRAPH - ,0xEF98 ,0x98FF //CJK UNIFIED IDEOGRAPH - ,0xEF99 ,0x9900 //CJK UNIFIED IDEOGRAPH - ,0xEF9A ,0x9901 //CJK UNIFIED IDEOGRAPH - ,0xEF9B ,0x9902 //CJK UNIFIED IDEOGRAPH - ,0xEF9C ,0x9903 //CJK UNIFIED IDEOGRAPH - ,0xEF9D ,0x9904 //CJK UNIFIED IDEOGRAPH - ,0xEF9E ,0x9905 //CJK UNIFIED IDEOGRAPH - ,0xEF9F ,0x9906 //CJK UNIFIED IDEOGRAPH - ,0xEFA0 ,0x9907 //CJK UNIFIED IDEOGRAPH - ,0xEFA1 ,0x94E9 //CJK UNIFIED IDEOGRAPH - ,0xEFA2 ,0x94EB //CJK UNIFIED IDEOGRAPH - ,0xEFA3 ,0x94EE //CJK UNIFIED IDEOGRAPH - ,0xEFA4 ,0x94EF //CJK UNIFIED IDEOGRAPH - ,0xEFA5 ,0x94F3 //CJK UNIFIED IDEOGRAPH - ,0xEFA6 ,0x94F4 //CJK UNIFIED IDEOGRAPH - ,0xEFA7 ,0x94F5 //CJK UNIFIED IDEOGRAPH - ,0xEFA8 ,0x94F7 //CJK UNIFIED IDEOGRAPH - ,0xEFA9 ,0x94F9 //CJK UNIFIED IDEOGRAPH - ,0xEFAA ,0x94FC //CJK UNIFIED IDEOGRAPH - ,0xEFAB ,0x94FD //CJK UNIFIED IDEOGRAPH - ,0xEFAC ,0x94FF //CJK UNIFIED IDEOGRAPH - ,0xEFAD ,0x9503 //CJK UNIFIED IDEOGRAPH - ,0xEFAE ,0x9502 //CJK UNIFIED IDEOGRAPH - ,0xEFAF ,0x9506 //CJK UNIFIED IDEOGRAPH - ,0xEFB0 ,0x9507 //CJK UNIFIED IDEOGRAPH - ,0xEFB1 ,0x9509 //CJK UNIFIED IDEOGRAPH - ,0xEFB2 ,0x950A //CJK UNIFIED IDEOGRAPH - ,0xEFB3 ,0x950D //CJK UNIFIED IDEOGRAPH - ,0xEFB4 ,0x950E //CJK UNIFIED IDEOGRAPH - ,0xEFB5 ,0x950F //CJK UNIFIED IDEOGRAPH - ,0xEFB6 ,0x9512 //CJK UNIFIED IDEOGRAPH - ,0xEFB7 ,0x9513 //CJK UNIFIED IDEOGRAPH - ,0xEFB8 ,0x9514 //CJK UNIFIED IDEOGRAPH - ,0xEFB9 ,0x9515 //CJK UNIFIED IDEOGRAPH - ,0xEFBA ,0x9516 //CJK UNIFIED IDEOGRAPH - ,0xEFBB ,0x9518 //CJK UNIFIED IDEOGRAPH - ,0xEFBC ,0x951B //CJK UNIFIED IDEOGRAPH - ,0xEFBD ,0x951D //CJK UNIFIED IDEOGRAPH - ,0xEFBE ,0x951E //CJK UNIFIED IDEOGRAPH - ,0xEFBF ,0x951F //CJK UNIFIED IDEOGRAPH - ,0xEFC0 ,0x9522 //CJK UNIFIED IDEOGRAPH - ,0xEFC1 ,0x952A //CJK UNIFIED IDEOGRAPH - ,0xEFC2 ,0x952B //CJK UNIFIED IDEOGRAPH - ,0xEFC3 ,0x9529 //CJK UNIFIED IDEOGRAPH - ,0xEFC4 ,0x952C //CJK UNIFIED IDEOGRAPH - ,0xEFC5 ,0x9531 //CJK UNIFIED IDEOGRAPH - ,0xEFC6 ,0x9532 //CJK UNIFIED IDEOGRAPH - ,0xEFC7 ,0x9534 //CJK UNIFIED IDEOGRAPH - ,0xEFC8 ,0x9536 //CJK UNIFIED IDEOGRAPH - ,0xEFC9 ,0x9537 //CJK UNIFIED IDEOGRAPH - ,0xEFCA ,0x9538 //CJK UNIFIED IDEOGRAPH - ,0xEFCB ,0x953C //CJK UNIFIED IDEOGRAPH - ,0xEFCC ,0x953E //CJK UNIFIED IDEOGRAPH - ,0xEFCD ,0x953F //CJK UNIFIED IDEOGRAPH - ,0xEFCE ,0x9542 //CJK UNIFIED IDEOGRAPH - ,0xEFCF ,0x9535 //CJK UNIFIED IDEOGRAPH - ,0xEFD0 ,0x9544 //CJK UNIFIED IDEOGRAPH - ,0xEFD1 ,0x9545 //CJK UNIFIED IDEOGRAPH - ,0xEFD2 ,0x9546 //CJK UNIFIED IDEOGRAPH - ,0xEFD3 ,0x9549 //CJK UNIFIED IDEOGRAPH - ,0xEFD4 ,0x954C //CJK UNIFIED IDEOGRAPH - ,0xEFD5 ,0x954E //CJK UNIFIED IDEOGRAPH - ,0xEFD6 ,0x954F //CJK UNIFIED IDEOGRAPH - ,0xEFD7 ,0x9552 //CJK UNIFIED IDEOGRAPH - ,0xEFD8 ,0x9553 //CJK UNIFIED IDEOGRAPH - ,0xEFD9 ,0x9554 //CJK UNIFIED IDEOGRAPH - ,0xEFDA ,0x9556 //CJK UNIFIED IDEOGRAPH - ,0xEFDB ,0x9557 //CJK UNIFIED IDEOGRAPH - ,0xEFDC ,0x9558 //CJK UNIFIED IDEOGRAPH - ,0xEFDD ,0x9559 //CJK UNIFIED IDEOGRAPH - ,0xEFDE ,0x955B //CJK UNIFIED IDEOGRAPH - ,0xEFDF ,0x955E //CJK UNIFIED IDEOGRAPH - ,0xEFE0 ,0x955F //CJK UNIFIED IDEOGRAPH - ,0xEFE1 ,0x955D //CJK UNIFIED IDEOGRAPH - ,0xEFE2 ,0x9561 //CJK UNIFIED IDEOGRAPH - ,0xEFE3 ,0x9562 //CJK UNIFIED IDEOGRAPH - ,0xEFE4 ,0x9564 //CJK UNIFIED IDEOGRAPH - ,0xEFE5 ,0x9565 //CJK UNIFIED IDEOGRAPH - ,0xEFE6 ,0x9566 //CJK UNIFIED IDEOGRAPH - ,0xEFE7 ,0x9567 //CJK UNIFIED IDEOGRAPH - ,0xEFE8 ,0x9568 //CJK UNIFIED IDEOGRAPH - ,0xEFE9 ,0x9569 //CJK UNIFIED IDEOGRAPH - ,0xEFEA ,0x956A //CJK UNIFIED IDEOGRAPH - ,0xEFEB ,0x956B //CJK UNIFIED IDEOGRAPH - ,0xEFEC ,0x956C //CJK UNIFIED IDEOGRAPH - ,0xEFED ,0x956F //CJK UNIFIED IDEOGRAPH - ,0xEFEE ,0x9571 //CJK UNIFIED IDEOGRAPH - ,0xEFEF ,0x9572 //CJK UNIFIED IDEOGRAPH - ,0xEFF0 ,0x9573 //CJK UNIFIED IDEOGRAPH - ,0xEFF1 ,0x953A //CJK UNIFIED IDEOGRAPH - ,0xEFF2 ,0x77E7 //CJK UNIFIED IDEOGRAPH - ,0xEFF3 ,0x77EC //CJK UNIFIED IDEOGRAPH - ,0xEFF4 ,0x96C9 //CJK UNIFIED IDEOGRAPH - ,0xEFF5 ,0x79D5 //CJK UNIFIED IDEOGRAPH - ,0xEFF6 ,0x79ED //CJK UNIFIED IDEOGRAPH - ,0xEFF7 ,0x79E3 //CJK UNIFIED IDEOGRAPH - ,0xEFF8 ,0x79EB //CJK UNIFIED IDEOGRAPH - ,0xEFF9 ,0x7A06 //CJK UNIFIED IDEOGRAPH - ,0xEFFA ,0x5D47 //CJK UNIFIED IDEOGRAPH - ,0xEFFB ,0x7A03 //CJK UNIFIED IDEOGRAPH - ,0xEFFC ,0x7A02 //CJK UNIFIED IDEOGRAPH - ,0xEFFD ,0x7A1E //CJK UNIFIED IDEOGRAPH - ,0xEFFE ,0x7A14 //CJK UNIFIED IDEOGRAPH - ,0xF040 ,0x9908 //CJK UNIFIED IDEOGRAPH - ,0xF041 ,0x9909 //CJK UNIFIED IDEOGRAPH - ,0xF042 ,0x990A //CJK UNIFIED IDEOGRAPH - ,0xF043 ,0x990B //CJK UNIFIED IDEOGRAPH - ,0xF044 ,0x990C //CJK UNIFIED IDEOGRAPH - ,0xF045 ,0x990E //CJK UNIFIED IDEOGRAPH - ,0xF046 ,0x990F //CJK UNIFIED IDEOGRAPH - ,0xF047 ,0x9911 //CJK UNIFIED IDEOGRAPH - ,0xF048 ,0x9912 //CJK UNIFIED IDEOGRAPH - ,0xF049 ,0x9913 //CJK UNIFIED IDEOGRAPH - ,0xF04A ,0x9914 //CJK UNIFIED IDEOGRAPH - ,0xF04B ,0x9915 //CJK UNIFIED IDEOGRAPH - ,0xF04C ,0x9916 //CJK UNIFIED IDEOGRAPH - ,0xF04D ,0x9917 //CJK UNIFIED IDEOGRAPH - ,0xF04E ,0x9918 //CJK UNIFIED IDEOGRAPH - ,0xF04F ,0x9919 //CJK UNIFIED IDEOGRAPH - ,0xF050 ,0x991A //CJK UNIFIED IDEOGRAPH - ,0xF051 ,0x991B //CJK UNIFIED IDEOGRAPH - ,0xF052 ,0x991C //CJK UNIFIED IDEOGRAPH - ,0xF053 ,0x991D //CJK UNIFIED IDEOGRAPH - ,0xF054 ,0x991E //CJK UNIFIED IDEOGRAPH - ,0xF055 ,0x991F //CJK UNIFIED IDEOGRAPH - ,0xF056 ,0x9920 //CJK UNIFIED IDEOGRAPH - ,0xF057 ,0x9921 //CJK UNIFIED IDEOGRAPH - ,0xF058 ,0x9922 //CJK UNIFIED IDEOGRAPH - ,0xF059 ,0x9923 //CJK UNIFIED IDEOGRAPH - ,0xF05A ,0x9924 //CJK UNIFIED IDEOGRAPH - ,0xF05B ,0x9925 //CJK UNIFIED IDEOGRAPH - ,0xF05C ,0x9926 //CJK UNIFIED IDEOGRAPH - ,0xF05D ,0x9927 //CJK UNIFIED IDEOGRAPH - ,0xF05E ,0x9928 //CJK UNIFIED IDEOGRAPH - ,0xF05F ,0x9929 //CJK UNIFIED IDEOGRAPH - ,0xF060 ,0x992A //CJK UNIFIED IDEOGRAPH - ,0xF061 ,0x992B //CJK UNIFIED IDEOGRAPH - ,0xF062 ,0x992C //CJK UNIFIED IDEOGRAPH - ,0xF063 ,0x992D //CJK UNIFIED IDEOGRAPH - ,0xF064 ,0x992F //CJK UNIFIED IDEOGRAPH - ,0xF065 ,0x9930 //CJK UNIFIED IDEOGRAPH - ,0xF066 ,0x9931 //CJK UNIFIED IDEOGRAPH - ,0xF067 ,0x9932 //CJK UNIFIED IDEOGRAPH - ,0xF068 ,0x9933 //CJK UNIFIED IDEOGRAPH - ,0xF069 ,0x9934 //CJK UNIFIED IDEOGRAPH - ,0xF06A ,0x9935 //CJK UNIFIED IDEOGRAPH - ,0xF06B ,0x9936 //CJK UNIFIED IDEOGRAPH - ,0xF06C ,0x9937 //CJK UNIFIED IDEOGRAPH - ,0xF06D ,0x9938 //CJK UNIFIED IDEOGRAPH - ,0xF06E ,0x9939 //CJK UNIFIED IDEOGRAPH - ,0xF06F ,0x993A //CJK UNIFIED IDEOGRAPH - ,0xF070 ,0x993B //CJK UNIFIED IDEOGRAPH - ,0xF071 ,0x993C //CJK UNIFIED IDEOGRAPH - ,0xF072 ,0x993D //CJK UNIFIED IDEOGRAPH - ,0xF073 ,0x993E //CJK UNIFIED IDEOGRAPH - ,0xF074 ,0x993F //CJK UNIFIED IDEOGRAPH - ,0xF075 ,0x9940 //CJK UNIFIED IDEOGRAPH - ,0xF076 ,0x9941 //CJK UNIFIED IDEOGRAPH - ,0xF077 ,0x9942 //CJK UNIFIED IDEOGRAPH - ,0xF078 ,0x9943 //CJK UNIFIED IDEOGRAPH - ,0xF079 ,0x9944 //CJK UNIFIED IDEOGRAPH - ,0xF07A ,0x9945 //CJK UNIFIED IDEOGRAPH - ,0xF07B ,0x9946 //CJK UNIFIED IDEOGRAPH - ,0xF07C ,0x9947 //CJK UNIFIED IDEOGRAPH - ,0xF07D ,0x9948 //CJK UNIFIED IDEOGRAPH - ,0xF07E ,0x9949 //CJK UNIFIED IDEOGRAPH - ,0xF080 ,0x994A //CJK UNIFIED IDEOGRAPH - ,0xF081 ,0x994B //CJK UNIFIED IDEOGRAPH - ,0xF082 ,0x994C //CJK UNIFIED IDEOGRAPH - ,0xF083 ,0x994D //CJK UNIFIED IDEOGRAPH - ,0xF084 ,0x994E //CJK UNIFIED IDEOGRAPH - ,0xF085 ,0x994F //CJK UNIFIED IDEOGRAPH - ,0xF086 ,0x9950 //CJK UNIFIED IDEOGRAPH - ,0xF087 ,0x9951 //CJK UNIFIED IDEOGRAPH - ,0xF088 ,0x9952 //CJK UNIFIED IDEOGRAPH - ,0xF089 ,0x9953 //CJK UNIFIED IDEOGRAPH - ,0xF08A ,0x9956 //CJK UNIFIED IDEOGRAPH - ,0xF08B ,0x9957 //CJK UNIFIED IDEOGRAPH - ,0xF08C ,0x9958 //CJK UNIFIED IDEOGRAPH - ,0xF08D ,0x9959 //CJK UNIFIED IDEOGRAPH - ,0xF08E ,0x995A //CJK UNIFIED IDEOGRAPH - ,0xF08F ,0x995B //CJK UNIFIED IDEOGRAPH - ,0xF090 ,0x995C //CJK UNIFIED IDEOGRAPH - ,0xF091 ,0x995D //CJK UNIFIED IDEOGRAPH - ,0xF092 ,0x995E //CJK UNIFIED IDEOGRAPH - ,0xF093 ,0x995F //CJK UNIFIED IDEOGRAPH - ,0xF094 ,0x9960 //CJK UNIFIED IDEOGRAPH - ,0xF095 ,0x9961 //CJK UNIFIED IDEOGRAPH - ,0xF096 ,0x9962 //CJK UNIFIED IDEOGRAPH - ,0xF097 ,0x9964 //CJK UNIFIED IDEOGRAPH - ,0xF098 ,0x9966 //CJK UNIFIED IDEOGRAPH - ,0xF099 ,0x9973 //CJK UNIFIED IDEOGRAPH - ,0xF09A ,0x9978 //CJK UNIFIED IDEOGRAPH - ,0xF09B ,0x9979 //CJK UNIFIED IDEOGRAPH - ,0xF09C ,0x997B //CJK UNIFIED IDEOGRAPH - ,0xF09D ,0x997E //CJK UNIFIED IDEOGRAPH - ,0xF09E ,0x9982 //CJK UNIFIED IDEOGRAPH - ,0xF09F ,0x9983 //CJK UNIFIED IDEOGRAPH - ,0xF0A0 ,0x9989 //CJK UNIFIED IDEOGRAPH - ,0xF0A1 ,0x7A39 //CJK UNIFIED IDEOGRAPH - ,0xF0A2 ,0x7A37 //CJK UNIFIED IDEOGRAPH - ,0xF0A3 ,0x7A51 //CJK UNIFIED IDEOGRAPH - ,0xF0A4 ,0x9ECF //CJK UNIFIED IDEOGRAPH - ,0xF0A5 ,0x99A5 //CJK UNIFIED IDEOGRAPH - ,0xF0A6 ,0x7A70 //CJK UNIFIED IDEOGRAPH - ,0xF0A7 ,0x7688 //CJK UNIFIED IDEOGRAPH - ,0xF0A8 ,0x768E //CJK UNIFIED IDEOGRAPH - ,0xF0A9 ,0x7693 //CJK UNIFIED IDEOGRAPH - ,0xF0AA ,0x7699 //CJK UNIFIED IDEOGRAPH - ,0xF0AB ,0x76A4 //CJK UNIFIED IDEOGRAPH - ,0xF0AC ,0x74DE //CJK UNIFIED IDEOGRAPH - ,0xF0AD ,0x74E0 //CJK UNIFIED IDEOGRAPH - ,0xF0AE ,0x752C //CJK UNIFIED IDEOGRAPH - ,0xF0AF ,0x9E20 //CJK UNIFIED IDEOGRAPH - ,0xF0B0 ,0x9E22 //CJK UNIFIED IDEOGRAPH - ,0xF0B1 ,0x9E28 //CJK UNIFIED IDEOGRAPH - ,0xF0B2 ,0x9E29 //CJK UNIFIED IDEOGRAPH - ,0xF0B3 ,0x9E2A //CJK UNIFIED IDEOGRAPH - ,0xF0B4 ,0x9E2B //CJK UNIFIED IDEOGRAPH - ,0xF0B5 ,0x9E2C //CJK UNIFIED IDEOGRAPH - ,0xF0B6 ,0x9E32 //CJK UNIFIED IDEOGRAPH - ,0xF0B7 ,0x9E31 //CJK UNIFIED IDEOGRAPH - ,0xF0B8 ,0x9E36 //CJK UNIFIED IDEOGRAPH - ,0xF0B9 ,0x9E38 //CJK UNIFIED IDEOGRAPH - ,0xF0BA ,0x9E37 //CJK UNIFIED IDEOGRAPH - ,0xF0BB ,0x9E39 //CJK UNIFIED IDEOGRAPH - ,0xF0BC ,0x9E3A //CJK UNIFIED IDEOGRAPH - ,0xF0BD ,0x9E3E //CJK UNIFIED IDEOGRAPH - ,0xF0BE ,0x9E41 //CJK UNIFIED IDEOGRAPH - ,0xF0BF ,0x9E42 //CJK UNIFIED IDEOGRAPH - ,0xF0C0 ,0x9E44 //CJK UNIFIED IDEOGRAPH - ,0xF0C1 ,0x9E46 //CJK UNIFIED IDEOGRAPH - ,0xF0C2 ,0x9E47 //CJK UNIFIED IDEOGRAPH - ,0xF0C3 ,0x9E48 //CJK UNIFIED IDEOGRAPH - ,0xF0C4 ,0x9E49 //CJK UNIFIED IDEOGRAPH - ,0xF0C5 ,0x9E4B //CJK UNIFIED IDEOGRAPH - ,0xF0C6 ,0x9E4C //CJK UNIFIED IDEOGRAPH - ,0xF0C7 ,0x9E4E //CJK UNIFIED IDEOGRAPH - ,0xF0C8 ,0x9E51 //CJK UNIFIED IDEOGRAPH - ,0xF0C9 ,0x9E55 //CJK UNIFIED IDEOGRAPH - ,0xF0CA ,0x9E57 //CJK UNIFIED IDEOGRAPH - ,0xF0CB ,0x9E5A //CJK UNIFIED IDEOGRAPH - ,0xF0CC ,0x9E5B //CJK UNIFIED IDEOGRAPH - ,0xF0CD ,0x9E5C //CJK UNIFIED IDEOGRAPH - ,0xF0CE ,0x9E5E //CJK UNIFIED IDEOGRAPH - ,0xF0CF ,0x9E63 //CJK UNIFIED IDEOGRAPH - ,0xF0D0 ,0x9E66 //CJK UNIFIED IDEOGRAPH - ,0xF0D1 ,0x9E67 //CJK UNIFIED IDEOGRAPH - ,0xF0D2 ,0x9E68 //CJK UNIFIED IDEOGRAPH - ,0xF0D3 ,0x9E69 //CJK UNIFIED IDEOGRAPH - ,0xF0D4 ,0x9E6A //CJK UNIFIED IDEOGRAPH - ,0xF0D5 ,0x9E6B //CJK UNIFIED IDEOGRAPH - ,0xF0D6 ,0x9E6C //CJK UNIFIED IDEOGRAPH - ,0xF0D7 ,0x9E71 //CJK UNIFIED IDEOGRAPH - ,0xF0D8 ,0x9E6D //CJK UNIFIED IDEOGRAPH - ,0xF0D9 ,0x9E73 //CJK UNIFIED IDEOGRAPH - ,0xF0DA ,0x7592 //CJK UNIFIED IDEOGRAPH - ,0xF0DB ,0x7594 //CJK UNIFIED IDEOGRAPH - ,0xF0DC ,0x7596 //CJK UNIFIED IDEOGRAPH - ,0xF0DD ,0x75A0 //CJK UNIFIED IDEOGRAPH - ,0xF0DE ,0x759D //CJK UNIFIED IDEOGRAPH - ,0xF0DF ,0x75AC //CJK UNIFIED IDEOGRAPH - ,0xF0E0 ,0x75A3 //CJK UNIFIED IDEOGRAPH - ,0xF0E1 ,0x75B3 //CJK UNIFIED IDEOGRAPH - ,0xF0E2 ,0x75B4 //CJK UNIFIED IDEOGRAPH - ,0xF0E3 ,0x75B8 //CJK UNIFIED IDEOGRAPH - ,0xF0E4 ,0x75C4 //CJK UNIFIED IDEOGRAPH - ,0xF0E5 ,0x75B1 //CJK UNIFIED IDEOGRAPH - ,0xF0E6 ,0x75B0 //CJK UNIFIED IDEOGRAPH - ,0xF0E7 ,0x75C3 //CJK UNIFIED IDEOGRAPH - ,0xF0E8 ,0x75C2 //CJK UNIFIED IDEOGRAPH - ,0xF0E9 ,0x75D6 //CJK UNIFIED IDEOGRAPH - ,0xF0EA ,0x75CD //CJK UNIFIED IDEOGRAPH - ,0xF0EB ,0x75E3 //CJK UNIFIED IDEOGRAPH - ,0xF0EC ,0x75E8 //CJK UNIFIED IDEOGRAPH - ,0xF0ED ,0x75E6 //CJK UNIFIED IDEOGRAPH - ,0xF0EE ,0x75E4 //CJK UNIFIED IDEOGRAPH - ,0xF0EF ,0x75EB //CJK UNIFIED IDEOGRAPH - ,0xF0F0 ,0x75E7 //CJK UNIFIED IDEOGRAPH - ,0xF0F1 ,0x7603 //CJK UNIFIED IDEOGRAPH - ,0xF0F2 ,0x75F1 //CJK UNIFIED IDEOGRAPH - ,0xF0F3 ,0x75FC //CJK UNIFIED IDEOGRAPH - ,0xF0F4 ,0x75FF //CJK UNIFIED IDEOGRAPH - ,0xF0F5 ,0x7610 //CJK UNIFIED IDEOGRAPH - ,0xF0F6 ,0x7600 //CJK UNIFIED IDEOGRAPH - ,0xF0F7 ,0x7605 //CJK UNIFIED IDEOGRAPH - ,0xF0F8 ,0x760C //CJK UNIFIED IDEOGRAPH - ,0xF0F9 ,0x7617 //CJK UNIFIED IDEOGRAPH - ,0xF0FA ,0x760A //CJK UNIFIED IDEOGRAPH - ,0xF0FB ,0x7625 //CJK UNIFIED IDEOGRAPH - ,0xF0FC ,0x7618 //CJK UNIFIED IDEOGRAPH - ,0xF0FD ,0x7615 //CJK UNIFIED IDEOGRAPH - ,0xF0FE ,0x7619 //CJK UNIFIED IDEOGRAPH - ,0xF140 ,0x998C //CJK UNIFIED IDEOGRAPH - ,0xF141 ,0x998E //CJK UNIFIED IDEOGRAPH - ,0xF142 ,0x999A //CJK UNIFIED IDEOGRAPH - ,0xF143 ,0x999B //CJK UNIFIED IDEOGRAPH - ,0xF144 ,0x999C //CJK UNIFIED IDEOGRAPH - ,0xF145 ,0x999D //CJK UNIFIED IDEOGRAPH - ,0xF146 ,0x999E //CJK UNIFIED IDEOGRAPH - ,0xF147 ,0x999F //CJK UNIFIED IDEOGRAPH - ,0xF148 ,0x99A0 //CJK UNIFIED IDEOGRAPH - ,0xF149 ,0x99A1 //CJK UNIFIED IDEOGRAPH - ,0xF14A ,0x99A2 //CJK UNIFIED IDEOGRAPH - ,0xF14B ,0x99A3 //CJK UNIFIED IDEOGRAPH - ,0xF14C ,0x99A4 //CJK UNIFIED IDEOGRAPH - ,0xF14D ,0x99A6 //CJK UNIFIED IDEOGRAPH - ,0xF14E ,0x99A7 //CJK UNIFIED IDEOGRAPH - ,0xF14F ,0x99A9 //CJK UNIFIED IDEOGRAPH - ,0xF150 ,0x99AA //CJK UNIFIED IDEOGRAPH - ,0xF151 ,0x99AB //CJK UNIFIED IDEOGRAPH - ,0xF152 ,0x99AC //CJK UNIFIED IDEOGRAPH - ,0xF153 ,0x99AD //CJK UNIFIED IDEOGRAPH - ,0xF154 ,0x99AE //CJK UNIFIED IDEOGRAPH - ,0xF155 ,0x99AF //CJK UNIFIED IDEOGRAPH - ,0xF156 ,0x99B0 //CJK UNIFIED IDEOGRAPH - ,0xF157 ,0x99B1 //CJK UNIFIED IDEOGRAPH - ,0xF158 ,0x99B2 //CJK UNIFIED IDEOGRAPH - ,0xF159 ,0x99B3 //CJK UNIFIED IDEOGRAPH - ,0xF15A ,0x99B4 //CJK UNIFIED IDEOGRAPH - ,0xF15B ,0x99B5 //CJK UNIFIED IDEOGRAPH - ,0xF15C ,0x99B6 //CJK UNIFIED IDEOGRAPH - ,0xF15D ,0x99B7 //CJK UNIFIED IDEOGRAPH - ,0xF15E ,0x99B8 //CJK UNIFIED IDEOGRAPH - ,0xF15F ,0x99B9 //CJK UNIFIED IDEOGRAPH - ,0xF160 ,0x99BA //CJK UNIFIED IDEOGRAPH - ,0xF161 ,0x99BB //CJK UNIFIED IDEOGRAPH - ,0xF162 ,0x99BC //CJK UNIFIED IDEOGRAPH - ,0xF163 ,0x99BD //CJK UNIFIED IDEOGRAPH - ,0xF164 ,0x99BE //CJK UNIFIED IDEOGRAPH - ,0xF165 ,0x99BF //CJK UNIFIED IDEOGRAPH - ,0xF166 ,0x99C0 //CJK UNIFIED IDEOGRAPH - ,0xF167 ,0x99C1 //CJK UNIFIED IDEOGRAPH - ,0xF168 ,0x99C2 //CJK UNIFIED IDEOGRAPH - ,0xF169 ,0x99C3 //CJK UNIFIED IDEOGRAPH - ,0xF16A ,0x99C4 //CJK UNIFIED IDEOGRAPH - ,0xF16B ,0x99C5 //CJK UNIFIED IDEOGRAPH - ,0xF16C ,0x99C6 //CJK UNIFIED IDEOGRAPH - ,0xF16D ,0x99C7 //CJK UNIFIED IDEOGRAPH - ,0xF16E ,0x99C8 //CJK UNIFIED IDEOGRAPH - ,0xF16F ,0x99C9 //CJK UNIFIED IDEOGRAPH - ,0xF170 ,0x99CA //CJK UNIFIED IDEOGRAPH - ,0xF171 ,0x99CB //CJK UNIFIED IDEOGRAPH - ,0xF172 ,0x99CC //CJK UNIFIED IDEOGRAPH - ,0xF173 ,0x99CD //CJK UNIFIED IDEOGRAPH - ,0xF174 ,0x99CE //CJK UNIFIED IDEOGRAPH - ,0xF175 ,0x99CF //CJK UNIFIED IDEOGRAPH - ,0xF176 ,0x99D0 //CJK UNIFIED IDEOGRAPH - ,0xF177 ,0x99D1 //CJK UNIFIED IDEOGRAPH - ,0xF178 ,0x99D2 //CJK UNIFIED IDEOGRAPH - ,0xF179 ,0x99D3 //CJK UNIFIED IDEOGRAPH - ,0xF17A ,0x99D4 //CJK UNIFIED IDEOGRAPH - ,0xF17B ,0x99D5 //CJK UNIFIED IDEOGRAPH - ,0xF17C ,0x99D6 //CJK UNIFIED IDEOGRAPH - ,0xF17D ,0x99D7 //CJK UNIFIED IDEOGRAPH - ,0xF17E ,0x99D8 //CJK UNIFIED IDEOGRAPH - ,0xF180 ,0x99D9 //CJK UNIFIED IDEOGRAPH - ,0xF181 ,0x99DA //CJK UNIFIED IDEOGRAPH - ,0xF182 ,0x99DB //CJK UNIFIED IDEOGRAPH - ,0xF183 ,0x99DC //CJK UNIFIED IDEOGRAPH - ,0xF184 ,0x99DD //CJK UNIFIED IDEOGRAPH - ,0xF185 ,0x99DE //CJK UNIFIED IDEOGRAPH - ,0xF186 ,0x99DF //CJK UNIFIED IDEOGRAPH - ,0xF187 ,0x99E0 //CJK UNIFIED IDEOGRAPH - ,0xF188 ,0x99E1 //CJK UNIFIED IDEOGRAPH - ,0xF189 ,0x99E2 //CJK UNIFIED IDEOGRAPH - ,0xF18A ,0x99E3 //CJK UNIFIED IDEOGRAPH - ,0xF18B ,0x99E4 //CJK UNIFIED IDEOGRAPH - ,0xF18C ,0x99E5 //CJK UNIFIED IDEOGRAPH - ,0xF18D ,0x99E6 //CJK UNIFIED IDEOGRAPH - ,0xF18E ,0x99E7 //CJK UNIFIED IDEOGRAPH - ,0xF18F ,0x99E8 //CJK UNIFIED IDEOGRAPH - ,0xF190 ,0x99E9 //CJK UNIFIED IDEOGRAPH - ,0xF191 ,0x99EA //CJK UNIFIED IDEOGRAPH - ,0xF192 ,0x99EB //CJK UNIFIED IDEOGRAPH - ,0xF193 ,0x99EC //CJK UNIFIED IDEOGRAPH - ,0xF194 ,0x99ED //CJK UNIFIED IDEOGRAPH - ,0xF195 ,0x99EE //CJK UNIFIED IDEOGRAPH - ,0xF196 ,0x99EF //CJK UNIFIED IDEOGRAPH - ,0xF197 ,0x99F0 //CJK UNIFIED IDEOGRAPH - ,0xF198 ,0x99F1 //CJK UNIFIED IDEOGRAPH - ,0xF199 ,0x99F2 //CJK UNIFIED IDEOGRAPH - ,0xF19A ,0x99F3 //CJK UNIFIED IDEOGRAPH - ,0xF19B ,0x99F4 //CJK UNIFIED IDEOGRAPH - ,0xF19C ,0x99F5 //CJK UNIFIED IDEOGRAPH - ,0xF19D ,0x99F6 //CJK UNIFIED IDEOGRAPH - ,0xF19E ,0x99F7 //CJK UNIFIED IDEOGRAPH - ,0xF19F ,0x99F8 //CJK UNIFIED IDEOGRAPH - ,0xF1A0 ,0x99F9 //CJK UNIFIED IDEOGRAPH - ,0xF1A1 ,0x761B //CJK UNIFIED IDEOGRAPH - ,0xF1A2 ,0x763C //CJK UNIFIED IDEOGRAPH - ,0xF1A3 ,0x7622 //CJK UNIFIED IDEOGRAPH - ,0xF1A4 ,0x7620 //CJK UNIFIED IDEOGRAPH - ,0xF1A5 ,0x7640 //CJK UNIFIED IDEOGRAPH - ,0xF1A6 ,0x762D //CJK UNIFIED IDEOGRAPH - ,0xF1A7 ,0x7630 //CJK UNIFIED IDEOGRAPH - ,0xF1A8 ,0x763F //CJK UNIFIED IDEOGRAPH - ,0xF1A9 ,0x7635 //CJK UNIFIED IDEOGRAPH - ,0xF1AA ,0x7643 //CJK UNIFIED IDEOGRAPH - ,0xF1AB ,0x763E //CJK UNIFIED IDEOGRAPH - ,0xF1AC ,0x7633 //CJK UNIFIED IDEOGRAPH - ,0xF1AD ,0x764D //CJK UNIFIED IDEOGRAPH - ,0xF1AE ,0x765E //CJK UNIFIED IDEOGRAPH - ,0xF1AF ,0x7654 //CJK UNIFIED IDEOGRAPH - ,0xF1B0 ,0x765C //CJK UNIFIED IDEOGRAPH - ,0xF1B1 ,0x7656 //CJK UNIFIED IDEOGRAPH - ,0xF1B2 ,0x766B //CJK UNIFIED IDEOGRAPH - ,0xF1B3 ,0x766F //CJK UNIFIED IDEOGRAPH - ,0xF1B4 ,0x7FCA //CJK UNIFIED IDEOGRAPH - ,0xF1B5 ,0x7AE6 //CJK UNIFIED IDEOGRAPH - ,0xF1B6 ,0x7A78 //CJK UNIFIED IDEOGRAPH - ,0xF1B7 ,0x7A79 //CJK UNIFIED IDEOGRAPH - ,0xF1B8 ,0x7A80 //CJK UNIFIED IDEOGRAPH - ,0xF1B9 ,0x7A86 //CJK UNIFIED IDEOGRAPH - ,0xF1BA ,0x7A88 //CJK UNIFIED IDEOGRAPH - ,0xF1BB ,0x7A95 //CJK UNIFIED IDEOGRAPH - ,0xF1BC ,0x7AA6 //CJK UNIFIED IDEOGRAPH - ,0xF1BD ,0x7AA0 //CJK UNIFIED IDEOGRAPH - ,0xF1BE ,0x7AAC //CJK UNIFIED IDEOGRAPH - ,0xF1BF ,0x7AA8 //CJK UNIFIED IDEOGRAPH - ,0xF1C0 ,0x7AAD //CJK UNIFIED IDEOGRAPH - ,0xF1C1 ,0x7AB3 //CJK UNIFIED IDEOGRAPH - ,0xF1C2 ,0x8864 //CJK UNIFIED IDEOGRAPH - ,0xF1C3 ,0x8869 //CJK UNIFIED IDEOGRAPH - ,0xF1C4 ,0x8872 //CJK UNIFIED IDEOGRAPH - ,0xF1C5 ,0x887D //CJK UNIFIED IDEOGRAPH - ,0xF1C6 ,0x887F //CJK UNIFIED IDEOGRAPH - ,0xF1C7 ,0x8882 //CJK UNIFIED IDEOGRAPH - ,0xF1C8 ,0x88A2 //CJK UNIFIED IDEOGRAPH - ,0xF1C9 ,0x88C6 //CJK UNIFIED IDEOGRAPH - ,0xF1CA ,0x88B7 //CJK UNIFIED IDEOGRAPH - ,0xF1CB ,0x88BC //CJK UNIFIED IDEOGRAPH - ,0xF1CC ,0x88C9 //CJK UNIFIED IDEOGRAPH - ,0xF1CD ,0x88E2 //CJK UNIFIED IDEOGRAPH - ,0xF1CE ,0x88CE //CJK UNIFIED IDEOGRAPH - ,0xF1CF ,0x88E3 //CJK UNIFIED IDEOGRAPH - ,0xF1D0 ,0x88E5 //CJK UNIFIED IDEOGRAPH - ,0xF1D1 ,0x88F1 //CJK UNIFIED IDEOGRAPH - ,0xF1D2 ,0x891A //CJK UNIFIED IDEOGRAPH - ,0xF1D3 ,0x88FC //CJK UNIFIED IDEOGRAPH - ,0xF1D4 ,0x88E8 //CJK UNIFIED IDEOGRAPH - ,0xF1D5 ,0x88FE //CJK UNIFIED IDEOGRAPH - ,0xF1D6 ,0x88F0 //CJK UNIFIED IDEOGRAPH - ,0xF1D7 ,0x8921 //CJK UNIFIED IDEOGRAPH - ,0xF1D8 ,0x8919 //CJK UNIFIED IDEOGRAPH - ,0xF1D9 ,0x8913 //CJK UNIFIED IDEOGRAPH - ,0xF1DA ,0x891B //CJK UNIFIED IDEOGRAPH - ,0xF1DB ,0x890A //CJK UNIFIED IDEOGRAPH - ,0xF1DC ,0x8934 //CJK UNIFIED IDEOGRAPH - ,0xF1DD ,0x892B //CJK UNIFIED IDEOGRAPH - ,0xF1DE ,0x8936 //CJK UNIFIED IDEOGRAPH - ,0xF1DF ,0x8941 //CJK UNIFIED IDEOGRAPH - ,0xF1E0 ,0x8966 //CJK UNIFIED IDEOGRAPH - ,0xF1E1 ,0x897B //CJK UNIFIED IDEOGRAPH - ,0xF1E2 ,0x758B //CJK UNIFIED IDEOGRAPH - ,0xF1E3 ,0x80E5 //CJK UNIFIED IDEOGRAPH - ,0xF1E4 ,0x76B2 //CJK UNIFIED IDEOGRAPH - ,0xF1E5 ,0x76B4 //CJK UNIFIED IDEOGRAPH - ,0xF1E6 ,0x77DC //CJK UNIFIED IDEOGRAPH - ,0xF1E7 ,0x8012 //CJK UNIFIED IDEOGRAPH - ,0xF1E8 ,0x8014 //CJK UNIFIED IDEOGRAPH - ,0xF1E9 ,0x8016 //CJK UNIFIED IDEOGRAPH - ,0xF1EA ,0x801C //CJK UNIFIED IDEOGRAPH - ,0xF1EB ,0x8020 //CJK UNIFIED IDEOGRAPH - ,0xF1EC ,0x8022 //CJK UNIFIED IDEOGRAPH - ,0xF1ED ,0x8025 //CJK UNIFIED IDEOGRAPH - ,0xF1EE ,0x8026 //CJK UNIFIED IDEOGRAPH - ,0xF1EF ,0x8027 //CJK UNIFIED IDEOGRAPH - ,0xF1F0 ,0x8029 //CJK UNIFIED IDEOGRAPH - ,0xF1F1 ,0x8028 //CJK UNIFIED IDEOGRAPH - ,0xF1F2 ,0x8031 //CJK UNIFIED IDEOGRAPH - ,0xF1F3 ,0x800B //CJK UNIFIED IDEOGRAPH - ,0xF1F4 ,0x8035 //CJK UNIFIED IDEOGRAPH - ,0xF1F5 ,0x8043 //CJK UNIFIED IDEOGRAPH - ,0xF1F6 ,0x8046 //CJK UNIFIED IDEOGRAPH - ,0xF1F7 ,0x804D //CJK UNIFIED IDEOGRAPH - ,0xF1F8 ,0x8052 //CJK UNIFIED IDEOGRAPH - ,0xF1F9 ,0x8069 //CJK UNIFIED IDEOGRAPH - ,0xF1FA ,0x8071 //CJK UNIFIED IDEOGRAPH - ,0xF1FB ,0x8983 //CJK UNIFIED IDEOGRAPH - ,0xF1FC ,0x9878 //CJK UNIFIED IDEOGRAPH - ,0xF1FD ,0x9880 //CJK UNIFIED IDEOGRAPH - ,0xF1FE ,0x9883 //CJK UNIFIED IDEOGRAPH - ,0xF240 ,0x99FA //CJK UNIFIED IDEOGRAPH - ,0xF241 ,0x99FB //CJK UNIFIED IDEOGRAPH - ,0xF242 ,0x99FC //CJK UNIFIED IDEOGRAPH - ,0xF243 ,0x99FD //CJK UNIFIED IDEOGRAPH - ,0xF244 ,0x99FE //CJK UNIFIED IDEOGRAPH - ,0xF245 ,0x99FF //CJK UNIFIED IDEOGRAPH - ,0xF246 ,0x9A00 //CJK UNIFIED IDEOGRAPH - ,0xF247 ,0x9A01 //CJK UNIFIED IDEOGRAPH - ,0xF248 ,0x9A02 //CJK UNIFIED IDEOGRAPH - ,0xF249 ,0x9A03 //CJK UNIFIED IDEOGRAPH - ,0xF24A ,0x9A04 //CJK UNIFIED IDEOGRAPH - ,0xF24B ,0x9A05 //CJK UNIFIED IDEOGRAPH - ,0xF24C ,0x9A06 //CJK UNIFIED IDEOGRAPH - ,0xF24D ,0x9A07 //CJK UNIFIED IDEOGRAPH - ,0xF24E ,0x9A08 //CJK UNIFIED IDEOGRAPH - ,0xF24F ,0x9A09 //CJK UNIFIED IDEOGRAPH - ,0xF250 ,0x9A0A //CJK UNIFIED IDEOGRAPH - ,0xF251 ,0x9A0B //CJK UNIFIED IDEOGRAPH - ,0xF252 ,0x9A0C //CJK UNIFIED IDEOGRAPH - ,0xF253 ,0x9A0D //CJK UNIFIED IDEOGRAPH - ,0xF254 ,0x9A0E //CJK UNIFIED IDEOGRAPH - ,0xF255 ,0x9A0F //CJK UNIFIED IDEOGRAPH - ,0xF256 ,0x9A10 //CJK UNIFIED IDEOGRAPH - ,0xF257 ,0x9A11 //CJK UNIFIED IDEOGRAPH - ,0xF258 ,0x9A12 //CJK UNIFIED IDEOGRAPH - ,0xF259 ,0x9A13 //CJK UNIFIED IDEOGRAPH - ,0xF25A ,0x9A14 //CJK UNIFIED IDEOGRAPH - ,0xF25B ,0x9A15 //CJK UNIFIED IDEOGRAPH - ,0xF25C ,0x9A16 //CJK UNIFIED IDEOGRAPH - ,0xF25D ,0x9A17 //CJK UNIFIED IDEOGRAPH - ,0xF25E ,0x9A18 //CJK UNIFIED IDEOGRAPH - ,0xF25F ,0x9A19 //CJK UNIFIED IDEOGRAPH - ,0xF260 ,0x9A1A //CJK UNIFIED IDEOGRAPH - ,0xF261 ,0x9A1B //CJK UNIFIED IDEOGRAPH - ,0xF262 ,0x9A1C //CJK UNIFIED IDEOGRAPH - ,0xF263 ,0x9A1D //CJK UNIFIED IDEOGRAPH - ,0xF264 ,0x9A1E //CJK UNIFIED IDEOGRAPH - ,0xF265 ,0x9A1F //CJK UNIFIED IDEOGRAPH - ,0xF266 ,0x9A20 //CJK UNIFIED IDEOGRAPH - ,0xF267 ,0x9A21 //CJK UNIFIED IDEOGRAPH - ,0xF268 ,0x9A22 //CJK UNIFIED IDEOGRAPH - ,0xF269 ,0x9A23 //CJK UNIFIED IDEOGRAPH - ,0xF26A ,0x9A24 //CJK UNIFIED IDEOGRAPH - ,0xF26B ,0x9A25 //CJK UNIFIED IDEOGRAPH - ,0xF26C ,0x9A26 //CJK UNIFIED IDEOGRAPH - ,0xF26D ,0x9A27 //CJK UNIFIED IDEOGRAPH - ,0xF26E ,0x9A28 //CJK UNIFIED IDEOGRAPH - ,0xF26F ,0x9A29 //CJK UNIFIED IDEOGRAPH - ,0xF270 ,0x9A2A //CJK UNIFIED IDEOGRAPH - ,0xF271 ,0x9A2B //CJK UNIFIED IDEOGRAPH - ,0xF272 ,0x9A2C //CJK UNIFIED IDEOGRAPH - ,0xF273 ,0x9A2D //CJK UNIFIED IDEOGRAPH - ,0xF274 ,0x9A2E //CJK UNIFIED IDEOGRAPH - ,0xF275 ,0x9A2F //CJK UNIFIED IDEOGRAPH - ,0xF276 ,0x9A30 //CJK UNIFIED IDEOGRAPH - ,0xF277 ,0x9A31 //CJK UNIFIED IDEOGRAPH - ,0xF278 ,0x9A32 //CJK UNIFIED IDEOGRAPH - ,0xF279 ,0x9A33 //CJK UNIFIED IDEOGRAPH - ,0xF27A ,0x9A34 //CJK UNIFIED IDEOGRAPH - ,0xF27B ,0x9A35 //CJK UNIFIED IDEOGRAPH - ,0xF27C ,0x9A36 //CJK UNIFIED IDEOGRAPH - ,0xF27D ,0x9A37 //CJK UNIFIED IDEOGRAPH - ,0xF27E ,0x9A38 //CJK UNIFIED IDEOGRAPH - ,0xF280 ,0x9A39 //CJK UNIFIED IDEOGRAPH - ,0xF281 ,0x9A3A //CJK UNIFIED IDEOGRAPH - ,0xF282 ,0x9A3B //CJK UNIFIED IDEOGRAPH - ,0xF283 ,0x9A3C //CJK UNIFIED IDEOGRAPH - ,0xF284 ,0x9A3D //CJK UNIFIED IDEOGRAPH - ,0xF285 ,0x9A3E //CJK UNIFIED IDEOGRAPH - ,0xF286 ,0x9A3F //CJK UNIFIED IDEOGRAPH - ,0xF287 ,0x9A40 //CJK UNIFIED IDEOGRAPH - ,0xF288 ,0x9A41 //CJK UNIFIED IDEOGRAPH - ,0xF289 ,0x9A42 //CJK UNIFIED IDEOGRAPH - ,0xF28A ,0x9A43 //CJK UNIFIED IDEOGRAPH - ,0xF28B ,0x9A44 //CJK UNIFIED IDEOGRAPH - ,0xF28C ,0x9A45 //CJK UNIFIED IDEOGRAPH - ,0xF28D ,0x9A46 //CJK UNIFIED IDEOGRAPH - ,0xF28E ,0x9A47 //CJK UNIFIED IDEOGRAPH - ,0xF28F ,0x9A48 //CJK UNIFIED IDEOGRAPH - ,0xF290 ,0x9A49 //CJK UNIFIED IDEOGRAPH - ,0xF291 ,0x9A4A //CJK UNIFIED IDEOGRAPH - ,0xF292 ,0x9A4B //CJK UNIFIED IDEOGRAPH - ,0xF293 ,0x9A4C //CJK UNIFIED IDEOGRAPH - ,0xF294 ,0x9A4D //CJK UNIFIED IDEOGRAPH - ,0xF295 ,0x9A4E //CJK UNIFIED IDEOGRAPH - ,0xF296 ,0x9A4F //CJK UNIFIED IDEOGRAPH - ,0xF297 ,0x9A50 //CJK UNIFIED IDEOGRAPH - ,0xF298 ,0x9A51 //CJK UNIFIED IDEOGRAPH - ,0xF299 ,0x9A52 //CJK UNIFIED IDEOGRAPH - ,0xF29A ,0x9A53 //CJK UNIFIED IDEOGRAPH - ,0xF29B ,0x9A54 //CJK UNIFIED IDEOGRAPH - ,0xF29C ,0x9A55 //CJK UNIFIED IDEOGRAPH - ,0xF29D ,0x9A56 //CJK UNIFIED IDEOGRAPH - ,0xF29E ,0x9A57 //CJK UNIFIED IDEOGRAPH - ,0xF29F ,0x9A58 //CJK UNIFIED IDEOGRAPH - ,0xF2A0 ,0x9A59 //CJK UNIFIED IDEOGRAPH - ,0xF2A1 ,0x9889 //CJK UNIFIED IDEOGRAPH - ,0xF2A2 ,0x988C //CJK UNIFIED IDEOGRAPH - ,0xF2A3 ,0x988D //CJK UNIFIED IDEOGRAPH - ,0xF2A4 ,0x988F //CJK UNIFIED IDEOGRAPH - ,0xF2A5 ,0x9894 //CJK UNIFIED IDEOGRAPH - ,0xF2A6 ,0x989A //CJK UNIFIED IDEOGRAPH - ,0xF2A7 ,0x989B //CJK UNIFIED IDEOGRAPH - ,0xF2A8 ,0x989E //CJK UNIFIED IDEOGRAPH - ,0xF2A9 ,0x989F //CJK UNIFIED IDEOGRAPH - ,0xF2AA ,0x98A1 //CJK UNIFIED IDEOGRAPH - ,0xF2AB ,0x98A2 //CJK UNIFIED IDEOGRAPH - ,0xF2AC ,0x98A5 //CJK UNIFIED IDEOGRAPH - ,0xF2AD ,0x98A6 //CJK UNIFIED IDEOGRAPH - ,0xF2AE ,0x864D //CJK UNIFIED IDEOGRAPH - ,0xF2AF ,0x8654 //CJK UNIFIED IDEOGRAPH - ,0xF2B0 ,0x866C //CJK UNIFIED IDEOGRAPH - ,0xF2B1 ,0x866E //CJK UNIFIED IDEOGRAPH - ,0xF2B2 ,0x867F //CJK UNIFIED IDEOGRAPH - ,0xF2B3 ,0x867A //CJK UNIFIED IDEOGRAPH - ,0xF2B4 ,0x867C //CJK UNIFIED IDEOGRAPH - ,0xF2B5 ,0x867B //CJK UNIFIED IDEOGRAPH - ,0xF2B6 ,0x86A8 //CJK UNIFIED IDEOGRAPH - ,0xF2B7 ,0x868D //CJK UNIFIED IDEOGRAPH - ,0xF2B8 ,0x868B //CJK UNIFIED IDEOGRAPH - ,0xF2B9 ,0x86AC //CJK UNIFIED IDEOGRAPH - ,0xF2BA ,0x869D //CJK UNIFIED IDEOGRAPH - ,0xF2BB ,0x86A7 //CJK UNIFIED IDEOGRAPH - ,0xF2BC ,0x86A3 //CJK UNIFIED IDEOGRAPH - ,0xF2BD ,0x86AA //CJK UNIFIED IDEOGRAPH - ,0xF2BE ,0x8693 //CJK UNIFIED IDEOGRAPH - ,0xF2BF ,0x86A9 //CJK UNIFIED IDEOGRAPH - ,0xF2C0 ,0x86B6 //CJK UNIFIED IDEOGRAPH - ,0xF2C1 ,0x86C4 //CJK UNIFIED IDEOGRAPH - ,0xF2C2 ,0x86B5 //CJK UNIFIED IDEOGRAPH - ,0xF2C3 ,0x86CE //CJK UNIFIED IDEOGRAPH - ,0xF2C4 ,0x86B0 //CJK UNIFIED IDEOGRAPH - ,0xF2C5 ,0x86BA //CJK UNIFIED IDEOGRAPH - ,0xF2C6 ,0x86B1 //CJK UNIFIED IDEOGRAPH - ,0xF2C7 ,0x86AF //CJK UNIFIED IDEOGRAPH - ,0xF2C8 ,0x86C9 //CJK UNIFIED IDEOGRAPH - ,0xF2C9 ,0x86CF //CJK UNIFIED IDEOGRAPH - ,0xF2CA ,0x86B4 //CJK UNIFIED IDEOGRAPH - ,0xF2CB ,0x86E9 //CJK UNIFIED IDEOGRAPH - ,0xF2CC ,0x86F1 //CJK UNIFIED IDEOGRAPH - ,0xF2CD ,0x86F2 //CJK UNIFIED IDEOGRAPH - ,0xF2CE ,0x86ED //CJK UNIFIED IDEOGRAPH - ,0xF2CF ,0x86F3 //CJK UNIFIED IDEOGRAPH - ,0xF2D0 ,0x86D0 //CJK UNIFIED IDEOGRAPH - ,0xF2D1 ,0x8713 //CJK UNIFIED IDEOGRAPH - ,0xF2D2 ,0x86DE //CJK UNIFIED IDEOGRAPH - ,0xF2D3 ,0x86F4 //CJK UNIFIED IDEOGRAPH - ,0xF2D4 ,0x86DF //CJK UNIFIED IDEOGRAPH - ,0xF2D5 ,0x86D8 //CJK UNIFIED IDEOGRAPH - ,0xF2D6 ,0x86D1 //CJK UNIFIED IDEOGRAPH - ,0xF2D7 ,0x8703 //CJK UNIFIED IDEOGRAPH - ,0xF2D8 ,0x8707 //CJK UNIFIED IDEOGRAPH - ,0xF2D9 ,0x86F8 //CJK UNIFIED IDEOGRAPH - ,0xF2DA ,0x8708 //CJK UNIFIED IDEOGRAPH - ,0xF2DB ,0x870A //CJK UNIFIED IDEOGRAPH - ,0xF2DC ,0x870D //CJK UNIFIED IDEOGRAPH - ,0xF2DD ,0x8709 //CJK UNIFIED IDEOGRAPH - ,0xF2DE ,0x8723 //CJK UNIFIED IDEOGRAPH - ,0xF2DF ,0x873B //CJK UNIFIED IDEOGRAPH - ,0xF2E0 ,0x871E //CJK UNIFIED IDEOGRAPH - ,0xF2E1 ,0x8725 //CJK UNIFIED IDEOGRAPH - ,0xF2E2 ,0x872E //CJK UNIFIED IDEOGRAPH - ,0xF2E3 ,0x871A //CJK UNIFIED IDEOGRAPH - ,0xF2E4 ,0x873E //CJK UNIFIED IDEOGRAPH - ,0xF2E5 ,0x8748 //CJK UNIFIED IDEOGRAPH - ,0xF2E6 ,0x8734 //CJK UNIFIED IDEOGRAPH - ,0xF2E7 ,0x8731 //CJK UNIFIED IDEOGRAPH - ,0xF2E8 ,0x8729 //CJK UNIFIED IDEOGRAPH - ,0xF2E9 ,0x8737 //CJK UNIFIED IDEOGRAPH - ,0xF2EA ,0x873F //CJK UNIFIED IDEOGRAPH - ,0xF2EB ,0x8782 //CJK UNIFIED IDEOGRAPH - ,0xF2EC ,0x8722 //CJK UNIFIED IDEOGRAPH - ,0xF2ED ,0x877D //CJK UNIFIED IDEOGRAPH - ,0xF2EE ,0x877E //CJK UNIFIED IDEOGRAPH - ,0xF2EF ,0x877B //CJK UNIFIED IDEOGRAPH - ,0xF2F0 ,0x8760 //CJK UNIFIED IDEOGRAPH - ,0xF2F1 ,0x8770 //CJK UNIFIED IDEOGRAPH - ,0xF2F2 ,0x874C //CJK UNIFIED IDEOGRAPH - ,0xF2F3 ,0x876E //CJK UNIFIED IDEOGRAPH - ,0xF2F4 ,0x878B //CJK UNIFIED IDEOGRAPH - ,0xF2F5 ,0x8753 //CJK UNIFIED IDEOGRAPH - ,0xF2F6 ,0x8763 //CJK UNIFIED IDEOGRAPH - ,0xF2F7 ,0x877C //CJK UNIFIED IDEOGRAPH - ,0xF2F8 ,0x8764 //CJK UNIFIED IDEOGRAPH - ,0xF2F9 ,0x8759 //CJK UNIFIED IDEOGRAPH - ,0xF2FA ,0x8765 //CJK UNIFIED IDEOGRAPH - ,0xF2FB ,0x8793 //CJK UNIFIED IDEOGRAPH - ,0xF2FC ,0x87AF //CJK UNIFIED IDEOGRAPH - ,0xF2FD ,0x87A8 //CJK UNIFIED IDEOGRAPH - ,0xF2FE ,0x87D2 //CJK UNIFIED IDEOGRAPH - ,0xF340 ,0x9A5A //CJK UNIFIED IDEOGRAPH - ,0xF341 ,0x9A5B //CJK UNIFIED IDEOGRAPH - ,0xF342 ,0x9A5C //CJK UNIFIED IDEOGRAPH - ,0xF343 ,0x9A5D //CJK UNIFIED IDEOGRAPH - ,0xF344 ,0x9A5E //CJK UNIFIED IDEOGRAPH - ,0xF345 ,0x9A5F //CJK UNIFIED IDEOGRAPH - ,0xF346 ,0x9A60 //CJK UNIFIED IDEOGRAPH - ,0xF347 ,0x9A61 //CJK UNIFIED IDEOGRAPH - ,0xF348 ,0x9A62 //CJK UNIFIED IDEOGRAPH - ,0xF349 ,0x9A63 //CJK UNIFIED IDEOGRAPH - ,0xF34A ,0x9A64 //CJK UNIFIED IDEOGRAPH - ,0xF34B ,0x9A65 //CJK UNIFIED IDEOGRAPH - ,0xF34C ,0x9A66 //CJK UNIFIED IDEOGRAPH - ,0xF34D ,0x9A67 //CJK UNIFIED IDEOGRAPH - ,0xF34E ,0x9A68 //CJK UNIFIED IDEOGRAPH - ,0xF34F ,0x9A69 //CJK UNIFIED IDEOGRAPH - ,0xF350 ,0x9A6A //CJK UNIFIED IDEOGRAPH - ,0xF351 ,0x9A6B //CJK UNIFIED IDEOGRAPH - ,0xF352 ,0x9A72 //CJK UNIFIED IDEOGRAPH - ,0xF353 ,0x9A83 //CJK UNIFIED IDEOGRAPH - ,0xF354 ,0x9A89 //CJK UNIFIED IDEOGRAPH - ,0xF355 ,0x9A8D //CJK UNIFIED IDEOGRAPH - ,0xF356 ,0x9A8E //CJK UNIFIED IDEOGRAPH - ,0xF357 ,0x9A94 //CJK UNIFIED IDEOGRAPH - ,0xF358 ,0x9A95 //CJK UNIFIED IDEOGRAPH - ,0xF359 ,0x9A99 //CJK UNIFIED IDEOGRAPH - ,0xF35A ,0x9AA6 //CJK UNIFIED IDEOGRAPH - ,0xF35B ,0x9AA9 //CJK UNIFIED IDEOGRAPH - ,0xF35C ,0x9AAA //CJK UNIFIED IDEOGRAPH - ,0xF35D ,0x9AAB //CJK UNIFIED IDEOGRAPH - ,0xF35E ,0x9AAC //CJK UNIFIED IDEOGRAPH - ,0xF35F ,0x9AAD //CJK UNIFIED IDEOGRAPH - ,0xF360 ,0x9AAE //CJK UNIFIED IDEOGRAPH - ,0xF361 ,0x9AAF //CJK UNIFIED IDEOGRAPH - ,0xF362 ,0x9AB2 //CJK UNIFIED IDEOGRAPH - ,0xF363 ,0x9AB3 //CJK UNIFIED IDEOGRAPH - ,0xF364 ,0x9AB4 //CJK UNIFIED IDEOGRAPH - ,0xF365 ,0x9AB5 //CJK UNIFIED IDEOGRAPH - ,0xF366 ,0x9AB9 //CJK UNIFIED IDEOGRAPH - ,0xF367 ,0x9ABB //CJK UNIFIED IDEOGRAPH - ,0xF368 ,0x9ABD //CJK UNIFIED IDEOGRAPH - ,0xF369 ,0x9ABE //CJK UNIFIED IDEOGRAPH - ,0xF36A ,0x9ABF //CJK UNIFIED IDEOGRAPH - ,0xF36B ,0x9AC3 //CJK UNIFIED IDEOGRAPH - ,0xF36C ,0x9AC4 //CJK UNIFIED IDEOGRAPH - ,0xF36D ,0x9AC6 //CJK UNIFIED IDEOGRAPH - ,0xF36E ,0x9AC7 //CJK UNIFIED IDEOGRAPH - ,0xF36F ,0x9AC8 //CJK UNIFIED IDEOGRAPH - ,0xF370 ,0x9AC9 //CJK UNIFIED IDEOGRAPH - ,0xF371 ,0x9ACA //CJK UNIFIED IDEOGRAPH - ,0xF372 ,0x9ACD //CJK UNIFIED IDEOGRAPH - ,0xF373 ,0x9ACE //CJK UNIFIED IDEOGRAPH - ,0xF374 ,0x9ACF //CJK UNIFIED IDEOGRAPH - ,0xF375 ,0x9AD0 //CJK UNIFIED IDEOGRAPH - ,0xF376 ,0x9AD2 //CJK UNIFIED IDEOGRAPH - ,0xF377 ,0x9AD4 //CJK UNIFIED IDEOGRAPH - ,0xF378 ,0x9AD5 //CJK UNIFIED IDEOGRAPH - ,0xF379 ,0x9AD6 //CJK UNIFIED IDEOGRAPH - ,0xF37A ,0x9AD7 //CJK UNIFIED IDEOGRAPH - ,0xF37B ,0x9AD9 //CJK UNIFIED IDEOGRAPH - ,0xF37C ,0x9ADA //CJK UNIFIED IDEOGRAPH - ,0xF37D ,0x9ADB //CJK UNIFIED IDEOGRAPH - ,0xF37E ,0x9ADC //CJK UNIFIED IDEOGRAPH - ,0xF380 ,0x9ADD //CJK UNIFIED IDEOGRAPH - ,0xF381 ,0x9ADE //CJK UNIFIED IDEOGRAPH - ,0xF382 ,0x9AE0 //CJK UNIFIED IDEOGRAPH - ,0xF383 ,0x9AE2 //CJK UNIFIED IDEOGRAPH - ,0xF384 ,0x9AE3 //CJK UNIFIED IDEOGRAPH - ,0xF385 ,0x9AE4 //CJK UNIFIED IDEOGRAPH - ,0xF386 ,0x9AE5 //CJK UNIFIED IDEOGRAPH - ,0xF387 ,0x9AE7 //CJK UNIFIED IDEOGRAPH - ,0xF388 ,0x9AE8 //CJK UNIFIED IDEOGRAPH - ,0xF389 ,0x9AE9 //CJK UNIFIED IDEOGRAPH - ,0xF38A ,0x9AEA //CJK UNIFIED IDEOGRAPH - ,0xF38B ,0x9AEC //CJK UNIFIED IDEOGRAPH - ,0xF38C ,0x9AEE //CJK UNIFIED IDEOGRAPH - ,0xF38D ,0x9AF0 //CJK UNIFIED IDEOGRAPH - ,0xF38E ,0x9AF1 //CJK UNIFIED IDEOGRAPH - ,0xF38F ,0x9AF2 //CJK UNIFIED IDEOGRAPH - ,0xF390 ,0x9AF3 //CJK UNIFIED IDEOGRAPH - ,0xF391 ,0x9AF4 //CJK UNIFIED IDEOGRAPH - ,0xF392 ,0x9AF5 //CJK UNIFIED IDEOGRAPH - ,0xF393 ,0x9AF6 //CJK UNIFIED IDEOGRAPH - ,0xF394 ,0x9AF7 //CJK UNIFIED IDEOGRAPH - ,0xF395 ,0x9AF8 //CJK UNIFIED IDEOGRAPH - ,0xF396 ,0x9AFA //CJK UNIFIED IDEOGRAPH - ,0xF397 ,0x9AFC //CJK UNIFIED IDEOGRAPH - ,0xF398 ,0x9AFD //CJK UNIFIED IDEOGRAPH - ,0xF399 ,0x9AFE //CJK UNIFIED IDEOGRAPH - ,0xF39A ,0x9AFF //CJK UNIFIED IDEOGRAPH - ,0xF39B ,0x9B00 //CJK UNIFIED IDEOGRAPH - ,0xF39C ,0x9B01 //CJK UNIFIED IDEOGRAPH - ,0xF39D ,0x9B02 //CJK UNIFIED IDEOGRAPH - ,0xF39E ,0x9B04 //CJK UNIFIED IDEOGRAPH - ,0xF39F ,0x9B05 //CJK UNIFIED IDEOGRAPH - ,0xF3A0 ,0x9B06 //CJK UNIFIED IDEOGRAPH - ,0xF3A1 ,0x87C6 //CJK UNIFIED IDEOGRAPH - ,0xF3A2 ,0x8788 //CJK UNIFIED IDEOGRAPH - ,0xF3A3 ,0x8785 //CJK UNIFIED IDEOGRAPH - ,0xF3A4 ,0x87AD //CJK UNIFIED IDEOGRAPH - ,0xF3A5 ,0x8797 //CJK UNIFIED IDEOGRAPH - ,0xF3A6 ,0x8783 //CJK UNIFIED IDEOGRAPH - ,0xF3A7 ,0x87AB //CJK UNIFIED IDEOGRAPH - ,0xF3A8 ,0x87E5 //CJK UNIFIED IDEOGRAPH - ,0xF3A9 ,0x87AC //CJK UNIFIED IDEOGRAPH - ,0xF3AA ,0x87B5 //CJK UNIFIED IDEOGRAPH - ,0xF3AB ,0x87B3 //CJK UNIFIED IDEOGRAPH - ,0xF3AC ,0x87CB //CJK UNIFIED IDEOGRAPH - ,0xF3AD ,0x87D3 //CJK UNIFIED IDEOGRAPH - ,0xF3AE ,0x87BD //CJK UNIFIED IDEOGRAPH - ,0xF3AF ,0x87D1 //CJK UNIFIED IDEOGRAPH - ,0xF3B0 ,0x87C0 //CJK UNIFIED IDEOGRAPH - ,0xF3B1 ,0x87CA //CJK UNIFIED IDEOGRAPH - ,0xF3B2 ,0x87DB //CJK UNIFIED IDEOGRAPH - ,0xF3B3 ,0x87EA //CJK UNIFIED IDEOGRAPH - ,0xF3B4 ,0x87E0 //CJK UNIFIED IDEOGRAPH - ,0xF3B5 ,0x87EE //CJK UNIFIED IDEOGRAPH - ,0xF3B6 ,0x8816 //CJK UNIFIED IDEOGRAPH - ,0xF3B7 ,0x8813 //CJK UNIFIED IDEOGRAPH - ,0xF3B8 ,0x87FE //CJK UNIFIED IDEOGRAPH - ,0xF3B9 ,0x880A //CJK UNIFIED IDEOGRAPH - ,0xF3BA ,0x881B //CJK UNIFIED IDEOGRAPH - ,0xF3BB ,0x8821 //CJK UNIFIED IDEOGRAPH - ,0xF3BC ,0x8839 //CJK UNIFIED IDEOGRAPH - ,0xF3BD ,0x883C //CJK UNIFIED IDEOGRAPH - ,0xF3BE ,0x7F36 //CJK UNIFIED IDEOGRAPH - ,0xF3BF ,0x7F42 //CJK UNIFIED IDEOGRAPH - ,0xF3C0 ,0x7F44 //CJK UNIFIED IDEOGRAPH - ,0xF3C1 ,0x7F45 //CJK UNIFIED IDEOGRAPH - ,0xF3C2 ,0x8210 //CJK UNIFIED IDEOGRAPH - ,0xF3C3 ,0x7AFA //CJK UNIFIED IDEOGRAPH - ,0xF3C4 ,0x7AFD //CJK UNIFIED IDEOGRAPH - ,0xF3C5 ,0x7B08 //CJK UNIFIED IDEOGRAPH - ,0xF3C6 ,0x7B03 //CJK UNIFIED IDEOGRAPH - ,0xF3C7 ,0x7B04 //CJK UNIFIED IDEOGRAPH - ,0xF3C8 ,0x7B15 //CJK UNIFIED IDEOGRAPH - ,0xF3C9 ,0x7B0A //CJK UNIFIED IDEOGRAPH - ,0xF3CA ,0x7B2B //CJK UNIFIED IDEOGRAPH - ,0xF3CB ,0x7B0F //CJK UNIFIED IDEOGRAPH - ,0xF3CC ,0x7B47 //CJK UNIFIED IDEOGRAPH - ,0xF3CD ,0x7B38 //CJK UNIFIED IDEOGRAPH - ,0xF3CE ,0x7B2A //CJK UNIFIED IDEOGRAPH - ,0xF3CF ,0x7B19 //CJK UNIFIED IDEOGRAPH - ,0xF3D0 ,0x7B2E //CJK UNIFIED IDEOGRAPH - ,0xF3D1 ,0x7B31 //CJK UNIFIED IDEOGRAPH - ,0xF3D2 ,0x7B20 //CJK UNIFIED IDEOGRAPH - ,0xF3D3 ,0x7B25 //CJK UNIFIED IDEOGRAPH - ,0xF3D4 ,0x7B24 //CJK UNIFIED IDEOGRAPH - ,0xF3D5 ,0x7B33 //CJK UNIFIED IDEOGRAPH - ,0xF3D6 ,0x7B3E //CJK UNIFIED IDEOGRAPH - ,0xF3D7 ,0x7B1E //CJK UNIFIED IDEOGRAPH - ,0xF3D8 ,0x7B58 //CJK UNIFIED IDEOGRAPH - ,0xF3D9 ,0x7B5A //CJK UNIFIED IDEOGRAPH - ,0xF3DA ,0x7B45 //CJK UNIFIED IDEOGRAPH - ,0xF3DB ,0x7B75 //CJK UNIFIED IDEOGRAPH - ,0xF3DC ,0x7B4C //CJK UNIFIED IDEOGRAPH - ,0xF3DD ,0x7B5D //CJK UNIFIED IDEOGRAPH - ,0xF3DE ,0x7B60 //CJK UNIFIED IDEOGRAPH - ,0xF3DF ,0x7B6E //CJK UNIFIED IDEOGRAPH - ,0xF3E0 ,0x7B7B //CJK UNIFIED IDEOGRAPH - ,0xF3E1 ,0x7B62 //CJK UNIFIED IDEOGRAPH - ,0xF3E2 ,0x7B72 //CJK UNIFIED IDEOGRAPH - ,0xF3E3 ,0x7B71 //CJK UNIFIED IDEOGRAPH - ,0xF3E4 ,0x7B90 //CJK UNIFIED IDEOGRAPH - ,0xF3E5 ,0x7BA6 //CJK UNIFIED IDEOGRAPH - ,0xF3E6 ,0x7BA7 //CJK UNIFIED IDEOGRAPH - ,0xF3E7 ,0x7BB8 //CJK UNIFIED IDEOGRAPH - ,0xF3E8 ,0x7BAC //CJK UNIFIED IDEOGRAPH - ,0xF3E9 ,0x7B9D //CJK UNIFIED IDEOGRAPH - ,0xF3EA ,0x7BA8 //CJK UNIFIED IDEOGRAPH - ,0xF3EB ,0x7B85 //CJK UNIFIED IDEOGRAPH - ,0xF3EC ,0x7BAA //CJK UNIFIED IDEOGRAPH - ,0xF3ED ,0x7B9C //CJK UNIFIED IDEOGRAPH - ,0xF3EE ,0x7BA2 //CJK UNIFIED IDEOGRAPH - ,0xF3EF ,0x7BAB //CJK UNIFIED IDEOGRAPH - ,0xF3F0 ,0x7BB4 //CJK UNIFIED IDEOGRAPH - ,0xF3F1 ,0x7BD1 //CJK UNIFIED IDEOGRAPH - ,0xF3F2 ,0x7BC1 //CJK UNIFIED IDEOGRAPH - ,0xF3F3 ,0x7BCC //CJK UNIFIED IDEOGRAPH - ,0xF3F4 ,0x7BDD //CJK UNIFIED IDEOGRAPH - ,0xF3F5 ,0x7BDA //CJK UNIFIED IDEOGRAPH - ,0xF3F6 ,0x7BE5 //CJK UNIFIED IDEOGRAPH - ,0xF3F7 ,0x7BE6 //CJK UNIFIED IDEOGRAPH - ,0xF3F8 ,0x7BEA //CJK UNIFIED IDEOGRAPH - ,0xF3F9 ,0x7C0C //CJK UNIFIED IDEOGRAPH - ,0xF3FA ,0x7BFE //CJK UNIFIED IDEOGRAPH - ,0xF3FB ,0x7BFC //CJK UNIFIED IDEOGRAPH - ,0xF3FC ,0x7C0F //CJK UNIFIED IDEOGRAPH - ,0xF3FD ,0x7C16 //CJK UNIFIED IDEOGRAPH - ,0xF3FE ,0x7C0B //CJK UNIFIED IDEOGRAPH - ,0xF440 ,0x9B07 //CJK UNIFIED IDEOGRAPH - ,0xF441 ,0x9B09 //CJK UNIFIED IDEOGRAPH - ,0xF442 ,0x9B0A //CJK UNIFIED IDEOGRAPH - ,0xF443 ,0x9B0B //CJK UNIFIED IDEOGRAPH - ,0xF444 ,0x9B0C //CJK UNIFIED IDEOGRAPH - ,0xF445 ,0x9B0D //CJK UNIFIED IDEOGRAPH - ,0xF446 ,0x9B0E //CJK UNIFIED IDEOGRAPH - ,0xF447 ,0x9B10 //CJK UNIFIED IDEOGRAPH - ,0xF448 ,0x9B11 //CJK UNIFIED IDEOGRAPH - ,0xF449 ,0x9B12 //CJK UNIFIED IDEOGRAPH - ,0xF44A ,0x9B14 //CJK UNIFIED IDEOGRAPH - ,0xF44B ,0x9B15 //CJK UNIFIED IDEOGRAPH - ,0xF44C ,0x9B16 //CJK UNIFIED IDEOGRAPH - ,0xF44D ,0x9B17 //CJK UNIFIED IDEOGRAPH - ,0xF44E ,0x9B18 //CJK UNIFIED IDEOGRAPH - ,0xF44F ,0x9B19 //CJK UNIFIED IDEOGRAPH - ,0xF450 ,0x9B1A //CJK UNIFIED IDEOGRAPH - ,0xF451 ,0x9B1B //CJK UNIFIED IDEOGRAPH - ,0xF452 ,0x9B1C //CJK UNIFIED IDEOGRAPH - ,0xF453 ,0x9B1D //CJK UNIFIED IDEOGRAPH - ,0xF454 ,0x9B1E //CJK UNIFIED IDEOGRAPH - ,0xF455 ,0x9B20 //CJK UNIFIED IDEOGRAPH - ,0xF456 ,0x9B21 //CJK UNIFIED IDEOGRAPH - ,0xF457 ,0x9B22 //CJK UNIFIED IDEOGRAPH - ,0xF458 ,0x9B24 //CJK UNIFIED IDEOGRAPH - ,0xF459 ,0x9B25 //CJK UNIFIED IDEOGRAPH - ,0xF45A ,0x9B26 //CJK UNIFIED IDEOGRAPH - ,0xF45B ,0x9B27 //CJK UNIFIED IDEOGRAPH - ,0xF45C ,0x9B28 //CJK UNIFIED IDEOGRAPH - ,0xF45D ,0x9B29 //CJK UNIFIED IDEOGRAPH - ,0xF45E ,0x9B2A //CJK UNIFIED IDEOGRAPH - ,0xF45F ,0x9B2B //CJK UNIFIED IDEOGRAPH - ,0xF460 ,0x9B2C //CJK UNIFIED IDEOGRAPH - ,0xF461 ,0x9B2D //CJK UNIFIED IDEOGRAPH - ,0xF462 ,0x9B2E //CJK UNIFIED IDEOGRAPH - ,0xF463 ,0x9B30 //CJK UNIFIED IDEOGRAPH - ,0xF464 ,0x9B31 //CJK UNIFIED IDEOGRAPH - ,0xF465 ,0x9B33 //CJK UNIFIED IDEOGRAPH - ,0xF466 ,0x9B34 //CJK UNIFIED IDEOGRAPH - ,0xF467 ,0x9B35 //CJK UNIFIED IDEOGRAPH - ,0xF468 ,0x9B36 //CJK UNIFIED IDEOGRAPH - ,0xF469 ,0x9B37 //CJK UNIFIED IDEOGRAPH - ,0xF46A ,0x9B38 //CJK UNIFIED IDEOGRAPH - ,0xF46B ,0x9B39 //CJK UNIFIED IDEOGRAPH - ,0xF46C ,0x9B3A //CJK UNIFIED IDEOGRAPH - ,0xF46D ,0x9B3D //CJK UNIFIED IDEOGRAPH - ,0xF46E ,0x9B3E //CJK UNIFIED IDEOGRAPH - ,0xF46F ,0x9B3F //CJK UNIFIED IDEOGRAPH - ,0xF470 ,0x9B40 //CJK UNIFIED IDEOGRAPH - ,0xF471 ,0x9B46 //CJK UNIFIED IDEOGRAPH - ,0xF472 ,0x9B4A //CJK UNIFIED IDEOGRAPH - ,0xF473 ,0x9B4B //CJK UNIFIED IDEOGRAPH - ,0xF474 ,0x9B4C //CJK UNIFIED IDEOGRAPH - ,0xF475 ,0x9B4E //CJK UNIFIED IDEOGRAPH - ,0xF476 ,0x9B50 //CJK UNIFIED IDEOGRAPH - ,0xF477 ,0x9B52 //CJK UNIFIED IDEOGRAPH - ,0xF478 ,0x9B53 //CJK UNIFIED IDEOGRAPH - ,0xF479 ,0x9B55 //CJK UNIFIED IDEOGRAPH - ,0xF47A ,0x9B56 //CJK UNIFIED IDEOGRAPH - ,0xF47B ,0x9B57 //CJK UNIFIED IDEOGRAPH - ,0xF47C ,0x9B58 //CJK UNIFIED IDEOGRAPH - ,0xF47D ,0x9B59 //CJK UNIFIED IDEOGRAPH - ,0xF47E ,0x9B5A //CJK UNIFIED IDEOGRAPH - ,0xF480 ,0x9B5B //CJK UNIFIED IDEOGRAPH - ,0xF481 ,0x9B5C //CJK UNIFIED IDEOGRAPH - ,0xF482 ,0x9B5D //CJK UNIFIED IDEOGRAPH - ,0xF483 ,0x9B5E //CJK UNIFIED IDEOGRAPH - ,0xF484 ,0x9B5F //CJK UNIFIED IDEOGRAPH - ,0xF485 ,0x9B60 //CJK UNIFIED IDEOGRAPH - ,0xF486 ,0x9B61 //CJK UNIFIED IDEOGRAPH - ,0xF487 ,0x9B62 //CJK UNIFIED IDEOGRAPH - ,0xF488 ,0x9B63 //CJK UNIFIED IDEOGRAPH - ,0xF489 ,0x9B64 //CJK UNIFIED IDEOGRAPH - ,0xF48A ,0x9B65 //CJK UNIFIED IDEOGRAPH - ,0xF48B ,0x9B66 //CJK UNIFIED IDEOGRAPH - ,0xF48C ,0x9B67 //CJK UNIFIED IDEOGRAPH - ,0xF48D ,0x9B68 //CJK UNIFIED IDEOGRAPH - ,0xF48E ,0x9B69 //CJK UNIFIED IDEOGRAPH - ,0xF48F ,0x9B6A //CJK UNIFIED IDEOGRAPH - ,0xF490 ,0x9B6B //CJK UNIFIED IDEOGRAPH - ,0xF491 ,0x9B6C //CJK UNIFIED IDEOGRAPH - ,0xF492 ,0x9B6D //CJK UNIFIED IDEOGRAPH - ,0xF493 ,0x9B6E //CJK UNIFIED IDEOGRAPH - ,0xF494 ,0x9B6F //CJK UNIFIED IDEOGRAPH - ,0xF495 ,0x9B70 //CJK UNIFIED IDEOGRAPH - ,0xF496 ,0x9B71 //CJK UNIFIED IDEOGRAPH - ,0xF497 ,0x9B72 //CJK UNIFIED IDEOGRAPH - ,0xF498 ,0x9B73 //CJK UNIFIED IDEOGRAPH - ,0xF499 ,0x9B74 //CJK UNIFIED IDEOGRAPH - ,0xF49A ,0x9B75 //CJK UNIFIED IDEOGRAPH - ,0xF49B ,0x9B76 //CJK UNIFIED IDEOGRAPH - ,0xF49C ,0x9B77 //CJK UNIFIED IDEOGRAPH - ,0xF49D ,0x9B78 //CJK UNIFIED IDEOGRAPH - ,0xF49E ,0x9B79 //CJK UNIFIED IDEOGRAPH - ,0xF49F ,0x9B7A //CJK UNIFIED IDEOGRAPH - ,0xF4A0 ,0x9B7B //CJK UNIFIED IDEOGRAPH - ,0xF4A1 ,0x7C1F //CJK UNIFIED IDEOGRAPH - ,0xF4A2 ,0x7C2A //CJK UNIFIED IDEOGRAPH - ,0xF4A3 ,0x7C26 //CJK UNIFIED IDEOGRAPH - ,0xF4A4 ,0x7C38 //CJK UNIFIED IDEOGRAPH - ,0xF4A5 ,0x7C41 //CJK UNIFIED IDEOGRAPH - ,0xF4A6 ,0x7C40 //CJK UNIFIED IDEOGRAPH - ,0xF4A7 ,0x81FE //CJK UNIFIED IDEOGRAPH - ,0xF4A8 ,0x8201 //CJK UNIFIED IDEOGRAPH - ,0xF4A9 ,0x8202 //CJK UNIFIED IDEOGRAPH - ,0xF4AA ,0x8204 //CJK UNIFIED IDEOGRAPH - ,0xF4AB ,0x81EC //CJK UNIFIED IDEOGRAPH - ,0xF4AC ,0x8844 //CJK UNIFIED IDEOGRAPH - ,0xF4AD ,0x8221 //CJK UNIFIED IDEOGRAPH - ,0xF4AE ,0x8222 //CJK UNIFIED IDEOGRAPH - ,0xF4AF ,0x8223 //CJK UNIFIED IDEOGRAPH - ,0xF4B0 ,0x822D //CJK UNIFIED IDEOGRAPH - ,0xF4B1 ,0x822F //CJK UNIFIED IDEOGRAPH - ,0xF4B2 ,0x8228 //CJK UNIFIED IDEOGRAPH - ,0xF4B3 ,0x822B //CJK UNIFIED IDEOGRAPH - ,0xF4B4 ,0x8238 //CJK UNIFIED IDEOGRAPH - ,0xF4B5 ,0x823B //CJK UNIFIED IDEOGRAPH - ,0xF4B6 ,0x8233 //CJK UNIFIED IDEOGRAPH - ,0xF4B7 ,0x8234 //CJK UNIFIED IDEOGRAPH - ,0xF4B8 ,0x823E //CJK UNIFIED IDEOGRAPH - ,0xF4B9 ,0x8244 //CJK UNIFIED IDEOGRAPH - ,0xF4BA ,0x8249 //CJK UNIFIED IDEOGRAPH - ,0xF4BB ,0x824B //CJK UNIFIED IDEOGRAPH - ,0xF4BC ,0x824F //CJK UNIFIED IDEOGRAPH - ,0xF4BD ,0x825A //CJK UNIFIED IDEOGRAPH - ,0xF4BE ,0x825F //CJK UNIFIED IDEOGRAPH - ,0xF4BF ,0x8268 //CJK UNIFIED IDEOGRAPH - ,0xF4C0 ,0x887E //CJK UNIFIED IDEOGRAPH - ,0xF4C1 ,0x8885 //CJK UNIFIED IDEOGRAPH - ,0xF4C2 ,0x8888 //CJK UNIFIED IDEOGRAPH - ,0xF4C3 ,0x88D8 //CJK UNIFIED IDEOGRAPH - ,0xF4C4 ,0x88DF //CJK UNIFIED IDEOGRAPH - ,0xF4C5 ,0x895E //CJK UNIFIED IDEOGRAPH - ,0xF4C6 ,0x7F9D //CJK UNIFIED IDEOGRAPH - ,0xF4C7 ,0x7F9F //CJK UNIFIED IDEOGRAPH - ,0xF4C8 ,0x7FA7 //CJK UNIFIED IDEOGRAPH - ,0xF4C9 ,0x7FAF //CJK UNIFIED IDEOGRAPH - ,0xF4CA ,0x7FB0 //CJK UNIFIED IDEOGRAPH - ,0xF4CB ,0x7FB2 //CJK UNIFIED IDEOGRAPH - ,0xF4CC ,0x7C7C //CJK UNIFIED IDEOGRAPH - ,0xF4CD ,0x6549 //CJK UNIFIED IDEOGRAPH - ,0xF4CE ,0x7C91 //CJK UNIFIED IDEOGRAPH - ,0xF4CF ,0x7C9D //CJK UNIFIED IDEOGRAPH - ,0xF4D0 ,0x7C9C //CJK UNIFIED IDEOGRAPH - ,0xF4D1 ,0x7C9E //CJK UNIFIED IDEOGRAPH - ,0xF4D2 ,0x7CA2 //CJK UNIFIED IDEOGRAPH - ,0xF4D3 ,0x7CB2 //CJK UNIFIED IDEOGRAPH - ,0xF4D4 ,0x7CBC //CJK UNIFIED IDEOGRAPH - ,0xF4D5 ,0x7CBD //CJK UNIFIED IDEOGRAPH - ,0xF4D6 ,0x7CC1 //CJK UNIFIED IDEOGRAPH - ,0xF4D7 ,0x7CC7 //CJK UNIFIED IDEOGRAPH - ,0xF4D8 ,0x7CCC //CJK UNIFIED IDEOGRAPH - ,0xF4D9 ,0x7CCD //CJK UNIFIED IDEOGRAPH - ,0xF4DA ,0x7CC8 //CJK UNIFIED IDEOGRAPH - ,0xF4DB ,0x7CC5 //CJK UNIFIED IDEOGRAPH - ,0xF4DC ,0x7CD7 //CJK UNIFIED IDEOGRAPH - ,0xF4DD ,0x7CE8 //CJK UNIFIED IDEOGRAPH - ,0xF4DE ,0x826E //CJK UNIFIED IDEOGRAPH - ,0xF4DF ,0x66A8 //CJK UNIFIED IDEOGRAPH - ,0xF4E0 ,0x7FBF //CJK UNIFIED IDEOGRAPH - ,0xF4E1 ,0x7FCE //CJK UNIFIED IDEOGRAPH - ,0xF4E2 ,0x7FD5 //CJK UNIFIED IDEOGRAPH - ,0xF4E3 ,0x7FE5 //CJK UNIFIED IDEOGRAPH - ,0xF4E4 ,0x7FE1 //CJK UNIFIED IDEOGRAPH - ,0xF4E5 ,0x7FE6 //CJK UNIFIED IDEOGRAPH - ,0xF4E6 ,0x7FE9 //CJK UNIFIED IDEOGRAPH - ,0xF4E7 ,0x7FEE //CJK UNIFIED IDEOGRAPH - ,0xF4E8 ,0x7FF3 //CJK UNIFIED IDEOGRAPH - ,0xF4E9 ,0x7CF8 //CJK UNIFIED IDEOGRAPH - ,0xF4EA ,0x7D77 //CJK UNIFIED IDEOGRAPH - ,0xF4EB ,0x7DA6 //CJK UNIFIED IDEOGRAPH - ,0xF4EC ,0x7DAE //CJK UNIFIED IDEOGRAPH - ,0xF4ED ,0x7E47 //CJK UNIFIED IDEOGRAPH - ,0xF4EE ,0x7E9B //CJK UNIFIED IDEOGRAPH - ,0xF4EF ,0x9EB8 //CJK UNIFIED IDEOGRAPH - ,0xF4F0 ,0x9EB4 //CJK UNIFIED IDEOGRAPH - ,0xF4F1 ,0x8D73 //CJK UNIFIED IDEOGRAPH - ,0xF4F2 ,0x8D84 //CJK UNIFIED IDEOGRAPH - ,0xF4F3 ,0x8D94 //CJK UNIFIED IDEOGRAPH - ,0xF4F4 ,0x8D91 //CJK UNIFIED IDEOGRAPH - ,0xF4F5 ,0x8DB1 //CJK UNIFIED IDEOGRAPH - ,0xF4F6 ,0x8D67 //CJK UNIFIED IDEOGRAPH - ,0xF4F7 ,0x8D6D //CJK UNIFIED IDEOGRAPH - ,0xF4F8 ,0x8C47 //CJK UNIFIED IDEOGRAPH - ,0xF4F9 ,0x8C49 //CJK UNIFIED IDEOGRAPH - ,0xF4FA ,0x914A //CJK UNIFIED IDEOGRAPH - ,0xF4FB ,0x9150 //CJK UNIFIED IDEOGRAPH - ,0xF4FC ,0x914E //CJK UNIFIED IDEOGRAPH - ,0xF4FD ,0x914F //CJK UNIFIED IDEOGRAPH - ,0xF4FE ,0x9164 //CJK UNIFIED IDEOGRAPH - ,0xF540 ,0x9B7C //CJK UNIFIED IDEOGRAPH - ,0xF541 ,0x9B7D //CJK UNIFIED IDEOGRAPH - ,0xF542 ,0x9B7E //CJK UNIFIED IDEOGRAPH - ,0xF543 ,0x9B7F //CJK UNIFIED IDEOGRAPH - ,0xF544 ,0x9B80 //CJK UNIFIED IDEOGRAPH - ,0xF545 ,0x9B81 //CJK UNIFIED IDEOGRAPH - ,0xF546 ,0x9B82 //CJK UNIFIED IDEOGRAPH - ,0xF547 ,0x9B83 //CJK UNIFIED IDEOGRAPH - ,0xF548 ,0x9B84 //CJK UNIFIED IDEOGRAPH - ,0xF549 ,0x9B85 //CJK UNIFIED IDEOGRAPH - ,0xF54A ,0x9B86 //CJK UNIFIED IDEOGRAPH - ,0xF54B ,0x9B87 //CJK UNIFIED IDEOGRAPH - ,0xF54C ,0x9B88 //CJK UNIFIED IDEOGRAPH - ,0xF54D ,0x9B89 //CJK UNIFIED IDEOGRAPH - ,0xF54E ,0x9B8A //CJK UNIFIED IDEOGRAPH - ,0xF54F ,0x9B8B //CJK UNIFIED IDEOGRAPH - ,0xF550 ,0x9B8C //CJK UNIFIED IDEOGRAPH - ,0xF551 ,0x9B8D //CJK UNIFIED IDEOGRAPH - ,0xF552 ,0x9B8E //CJK UNIFIED IDEOGRAPH - ,0xF553 ,0x9B8F //CJK UNIFIED IDEOGRAPH - ,0xF554 ,0x9B90 //CJK UNIFIED IDEOGRAPH - ,0xF555 ,0x9B91 //CJK UNIFIED IDEOGRAPH - ,0xF556 ,0x9B92 //CJK UNIFIED IDEOGRAPH - ,0xF557 ,0x9B93 //CJK UNIFIED IDEOGRAPH - ,0xF558 ,0x9B94 //CJK UNIFIED IDEOGRAPH - ,0xF559 ,0x9B95 //CJK UNIFIED IDEOGRAPH - ,0xF55A ,0x9B96 //CJK UNIFIED IDEOGRAPH - ,0xF55B ,0x9B97 //CJK UNIFIED IDEOGRAPH - ,0xF55C ,0x9B98 //CJK UNIFIED IDEOGRAPH - ,0xF55D ,0x9B99 //CJK UNIFIED IDEOGRAPH - ,0xF55E ,0x9B9A //CJK UNIFIED IDEOGRAPH - ,0xF55F ,0x9B9B //CJK UNIFIED IDEOGRAPH - ,0xF560 ,0x9B9C //CJK UNIFIED IDEOGRAPH - ,0xF561 ,0x9B9D //CJK UNIFIED IDEOGRAPH - ,0xF562 ,0x9B9E //CJK UNIFIED IDEOGRAPH - ,0xF563 ,0x9B9F //CJK UNIFIED IDEOGRAPH - ,0xF564 ,0x9BA0 //CJK UNIFIED IDEOGRAPH - ,0xF565 ,0x9BA1 //CJK UNIFIED IDEOGRAPH - ,0xF566 ,0x9BA2 //CJK UNIFIED IDEOGRAPH - ,0xF567 ,0x9BA3 //CJK UNIFIED IDEOGRAPH - ,0xF568 ,0x9BA4 //CJK UNIFIED IDEOGRAPH - ,0xF569 ,0x9BA5 //CJK UNIFIED IDEOGRAPH - ,0xF56A ,0x9BA6 //CJK UNIFIED IDEOGRAPH - ,0xF56B ,0x9BA7 //CJK UNIFIED IDEOGRAPH - ,0xF56C ,0x9BA8 //CJK UNIFIED IDEOGRAPH - ,0xF56D ,0x9BA9 //CJK UNIFIED IDEOGRAPH - ,0xF56E ,0x9BAA //CJK UNIFIED IDEOGRAPH - ,0xF56F ,0x9BAB //CJK UNIFIED IDEOGRAPH - ,0xF570 ,0x9BAC //CJK UNIFIED IDEOGRAPH - ,0xF571 ,0x9BAD //CJK UNIFIED IDEOGRAPH - ,0xF572 ,0x9BAE //CJK UNIFIED IDEOGRAPH - ,0xF573 ,0x9BAF //CJK UNIFIED IDEOGRAPH - ,0xF574 ,0x9BB0 //CJK UNIFIED IDEOGRAPH - ,0xF575 ,0x9BB1 //CJK UNIFIED IDEOGRAPH - ,0xF576 ,0x9BB2 //CJK UNIFIED IDEOGRAPH - ,0xF577 ,0x9BB3 //CJK UNIFIED IDEOGRAPH - ,0xF578 ,0x9BB4 //CJK UNIFIED IDEOGRAPH - ,0xF579 ,0x9BB5 //CJK UNIFIED IDEOGRAPH - ,0xF57A ,0x9BB6 //CJK UNIFIED IDEOGRAPH - ,0xF57B ,0x9BB7 //CJK UNIFIED IDEOGRAPH - ,0xF57C ,0x9BB8 //CJK UNIFIED IDEOGRAPH - ,0xF57D ,0x9BB9 //CJK UNIFIED IDEOGRAPH - ,0xF57E ,0x9BBA //CJK UNIFIED IDEOGRAPH - ,0xF580 ,0x9BBB //CJK UNIFIED IDEOGRAPH - ,0xF581 ,0x9BBC //CJK UNIFIED IDEOGRAPH - ,0xF582 ,0x9BBD //CJK UNIFIED IDEOGRAPH - ,0xF583 ,0x9BBE //CJK UNIFIED IDEOGRAPH - ,0xF584 ,0x9BBF //CJK UNIFIED IDEOGRAPH - ,0xF585 ,0x9BC0 //CJK UNIFIED IDEOGRAPH - ,0xF586 ,0x9BC1 //CJK UNIFIED IDEOGRAPH - ,0xF587 ,0x9BC2 //CJK UNIFIED IDEOGRAPH - ,0xF588 ,0x9BC3 //CJK UNIFIED IDEOGRAPH - ,0xF589 ,0x9BC4 //CJK UNIFIED IDEOGRAPH - ,0xF58A ,0x9BC5 //CJK UNIFIED IDEOGRAPH - ,0xF58B ,0x9BC6 //CJK UNIFIED IDEOGRAPH - ,0xF58C ,0x9BC7 //CJK UNIFIED IDEOGRAPH - ,0xF58D ,0x9BC8 //CJK UNIFIED IDEOGRAPH - ,0xF58E ,0x9BC9 //CJK UNIFIED IDEOGRAPH - ,0xF58F ,0x9BCA //CJK UNIFIED IDEOGRAPH - ,0xF590 ,0x9BCB //CJK UNIFIED IDEOGRAPH - ,0xF591 ,0x9BCC //CJK UNIFIED IDEOGRAPH - ,0xF592 ,0x9BCD //CJK UNIFIED IDEOGRAPH - ,0xF593 ,0x9BCE //CJK UNIFIED IDEOGRAPH - ,0xF594 ,0x9BCF //CJK UNIFIED IDEOGRAPH - ,0xF595 ,0x9BD0 //CJK UNIFIED IDEOGRAPH - ,0xF596 ,0x9BD1 //CJK UNIFIED IDEOGRAPH - ,0xF597 ,0x9BD2 //CJK UNIFIED IDEOGRAPH - ,0xF598 ,0x9BD3 //CJK UNIFIED IDEOGRAPH - ,0xF599 ,0x9BD4 //CJK UNIFIED IDEOGRAPH - ,0xF59A ,0x9BD5 //CJK UNIFIED IDEOGRAPH - ,0xF59B ,0x9BD6 //CJK UNIFIED IDEOGRAPH - ,0xF59C ,0x9BD7 //CJK UNIFIED IDEOGRAPH - ,0xF59D ,0x9BD8 //CJK UNIFIED IDEOGRAPH - ,0xF59E ,0x9BD9 //CJK UNIFIED IDEOGRAPH - ,0xF59F ,0x9BDA //CJK UNIFIED IDEOGRAPH - ,0xF5A0 ,0x9BDB //CJK UNIFIED IDEOGRAPH - ,0xF5A1 ,0x9162 //CJK UNIFIED IDEOGRAPH - ,0xF5A2 ,0x9161 //CJK UNIFIED IDEOGRAPH - ,0xF5A3 ,0x9170 //CJK UNIFIED IDEOGRAPH - ,0xF5A4 ,0x9169 //CJK UNIFIED IDEOGRAPH - ,0xF5A5 ,0x916F //CJK UNIFIED IDEOGRAPH - ,0xF5A6 ,0x917D //CJK UNIFIED IDEOGRAPH - ,0xF5A7 ,0x917E //CJK UNIFIED IDEOGRAPH - ,0xF5A8 ,0x9172 //CJK UNIFIED IDEOGRAPH - ,0xF5A9 ,0x9174 //CJK UNIFIED IDEOGRAPH - ,0xF5AA ,0x9179 //CJK UNIFIED IDEOGRAPH - ,0xF5AB ,0x918C //CJK UNIFIED IDEOGRAPH - ,0xF5AC ,0x9185 //CJK UNIFIED IDEOGRAPH - ,0xF5AD ,0x9190 //CJK UNIFIED IDEOGRAPH - ,0xF5AE ,0x918D //CJK UNIFIED IDEOGRAPH - ,0xF5AF ,0x9191 //CJK UNIFIED IDEOGRAPH - ,0xF5B0 ,0x91A2 //CJK UNIFIED IDEOGRAPH - ,0xF5B1 ,0x91A3 //CJK UNIFIED IDEOGRAPH - ,0xF5B2 ,0x91AA //CJK UNIFIED IDEOGRAPH - ,0xF5B3 ,0x91AD //CJK UNIFIED IDEOGRAPH - ,0xF5B4 ,0x91AE //CJK UNIFIED IDEOGRAPH - ,0xF5B5 ,0x91AF //CJK UNIFIED IDEOGRAPH - ,0xF5B6 ,0x91B5 //CJK UNIFIED IDEOGRAPH - ,0xF5B7 ,0x91B4 //CJK UNIFIED IDEOGRAPH - ,0xF5B8 ,0x91BA //CJK UNIFIED IDEOGRAPH - ,0xF5B9 ,0x8C55 //CJK UNIFIED IDEOGRAPH - ,0xF5BA ,0x9E7E //CJK UNIFIED IDEOGRAPH - ,0xF5BB ,0x8DB8 //CJK UNIFIED IDEOGRAPH - ,0xF5BC ,0x8DEB //CJK UNIFIED IDEOGRAPH - ,0xF5BD ,0x8E05 //CJK UNIFIED IDEOGRAPH - ,0xF5BE ,0x8E59 //CJK UNIFIED IDEOGRAPH - ,0xF5BF ,0x8E69 //CJK UNIFIED IDEOGRAPH - ,0xF5C0 ,0x8DB5 //CJK UNIFIED IDEOGRAPH - ,0xF5C1 ,0x8DBF //CJK UNIFIED IDEOGRAPH - ,0xF5C2 ,0x8DBC //CJK UNIFIED IDEOGRAPH - ,0xF5C3 ,0x8DBA //CJK UNIFIED IDEOGRAPH - ,0xF5C4 ,0x8DC4 //CJK UNIFIED IDEOGRAPH - ,0xF5C5 ,0x8DD6 //CJK UNIFIED IDEOGRAPH - ,0xF5C6 ,0x8DD7 //CJK UNIFIED IDEOGRAPH - ,0xF5C7 ,0x8DDA //CJK UNIFIED IDEOGRAPH - ,0xF5C8 ,0x8DDE //CJK UNIFIED IDEOGRAPH - ,0xF5C9 ,0x8DCE //CJK UNIFIED IDEOGRAPH - ,0xF5CA ,0x8DCF //CJK UNIFIED IDEOGRAPH - ,0xF5CB ,0x8DDB //CJK UNIFIED IDEOGRAPH - ,0xF5CC ,0x8DC6 //CJK UNIFIED IDEOGRAPH - ,0xF5CD ,0x8DEC //CJK UNIFIED IDEOGRAPH - ,0xF5CE ,0x8DF7 //CJK UNIFIED IDEOGRAPH - ,0xF5CF ,0x8DF8 //CJK UNIFIED IDEOGRAPH - ,0xF5D0 ,0x8DE3 //CJK UNIFIED IDEOGRAPH - ,0xF5D1 ,0x8DF9 //CJK UNIFIED IDEOGRAPH - ,0xF5D2 ,0x8DFB //CJK UNIFIED IDEOGRAPH - ,0xF5D3 ,0x8DE4 //CJK UNIFIED IDEOGRAPH - ,0xF5D4 ,0x8E09 //CJK UNIFIED IDEOGRAPH - ,0xF5D5 ,0x8DFD //CJK UNIFIED IDEOGRAPH - ,0xF5D6 ,0x8E14 //CJK UNIFIED IDEOGRAPH - ,0xF5D7 ,0x8E1D //CJK UNIFIED IDEOGRAPH - ,0xF5D8 ,0x8E1F //CJK UNIFIED IDEOGRAPH - ,0xF5D9 ,0x8E2C //CJK UNIFIED IDEOGRAPH - ,0xF5DA ,0x8E2E //CJK UNIFIED IDEOGRAPH - ,0xF5DB ,0x8E23 //CJK UNIFIED IDEOGRAPH - ,0xF5DC ,0x8E2F //CJK UNIFIED IDEOGRAPH - ,0xF5DD ,0x8E3A //CJK UNIFIED IDEOGRAPH - ,0xF5DE ,0x8E40 //CJK UNIFIED IDEOGRAPH - ,0xF5DF ,0x8E39 //CJK UNIFIED IDEOGRAPH - ,0xF5E0 ,0x8E35 //CJK UNIFIED IDEOGRAPH - ,0xF5E1 ,0x8E3D //CJK UNIFIED IDEOGRAPH - ,0xF5E2 ,0x8E31 //CJK UNIFIED IDEOGRAPH - ,0xF5E3 ,0x8E49 //CJK UNIFIED IDEOGRAPH - ,0xF5E4 ,0x8E41 //CJK UNIFIED IDEOGRAPH - ,0xF5E5 ,0x8E42 //CJK UNIFIED IDEOGRAPH - ,0xF5E6 ,0x8E51 //CJK UNIFIED IDEOGRAPH - ,0xF5E7 ,0x8E52 //CJK UNIFIED IDEOGRAPH - ,0xF5E8 ,0x8E4A //CJK UNIFIED IDEOGRAPH - ,0xF5E9 ,0x8E70 //CJK UNIFIED IDEOGRAPH - ,0xF5EA ,0x8E76 //CJK UNIFIED IDEOGRAPH - ,0xF5EB ,0x8E7C //CJK UNIFIED IDEOGRAPH - ,0xF5EC ,0x8E6F //CJK UNIFIED IDEOGRAPH - ,0xF5ED ,0x8E74 //CJK UNIFIED IDEOGRAPH - ,0xF5EE ,0x8E85 //CJK UNIFIED IDEOGRAPH - ,0xF5EF ,0x8E8F //CJK UNIFIED IDEOGRAPH - ,0xF5F0 ,0x8E94 //CJK UNIFIED IDEOGRAPH - ,0xF5F1 ,0x8E90 //CJK UNIFIED IDEOGRAPH - ,0xF5F2 ,0x8E9C //CJK UNIFIED IDEOGRAPH - ,0xF5F3 ,0x8E9E //CJK UNIFIED IDEOGRAPH - ,0xF5F4 ,0x8C78 //CJK UNIFIED IDEOGRAPH - ,0xF5F5 ,0x8C82 //CJK UNIFIED IDEOGRAPH - ,0xF5F6 ,0x8C8A //CJK UNIFIED IDEOGRAPH - ,0xF5F7 ,0x8C85 //CJK UNIFIED IDEOGRAPH - ,0xF5F8 ,0x8C98 //CJK UNIFIED IDEOGRAPH - ,0xF5F9 ,0x8C94 //CJK UNIFIED IDEOGRAPH - ,0xF5FA ,0x659B //CJK UNIFIED IDEOGRAPH - ,0xF5FB ,0x89D6 //CJK UNIFIED IDEOGRAPH - ,0xF5FC ,0x89DE //CJK UNIFIED IDEOGRAPH - ,0xF5FD ,0x89DA //CJK UNIFIED IDEOGRAPH - ,0xF5FE ,0x89DC //CJK UNIFIED IDEOGRAPH - ,0xF640 ,0x9BDC //CJK UNIFIED IDEOGRAPH - ,0xF641 ,0x9BDD //CJK UNIFIED IDEOGRAPH - ,0xF642 ,0x9BDE //CJK UNIFIED IDEOGRAPH - ,0xF643 ,0x9BDF //CJK UNIFIED IDEOGRAPH - ,0xF644 ,0x9BE0 //CJK UNIFIED IDEOGRAPH - ,0xF645 ,0x9BE1 //CJK UNIFIED IDEOGRAPH - ,0xF646 ,0x9BE2 //CJK UNIFIED IDEOGRAPH - ,0xF647 ,0x9BE3 //CJK UNIFIED IDEOGRAPH - ,0xF648 ,0x9BE4 //CJK UNIFIED IDEOGRAPH - ,0xF649 ,0x9BE5 //CJK UNIFIED IDEOGRAPH - ,0xF64A ,0x9BE6 //CJK UNIFIED IDEOGRAPH - ,0xF64B ,0x9BE7 //CJK UNIFIED IDEOGRAPH - ,0xF64C ,0x9BE8 //CJK UNIFIED IDEOGRAPH - ,0xF64D ,0x9BE9 //CJK UNIFIED IDEOGRAPH - ,0xF64E ,0x9BEA //CJK UNIFIED IDEOGRAPH - ,0xF64F ,0x9BEB //CJK UNIFIED IDEOGRAPH - ,0xF650 ,0x9BEC //CJK UNIFIED IDEOGRAPH - ,0xF651 ,0x9BED //CJK UNIFIED IDEOGRAPH - ,0xF652 ,0x9BEE //CJK UNIFIED IDEOGRAPH - ,0xF653 ,0x9BEF //CJK UNIFIED IDEOGRAPH - ,0xF654 ,0x9BF0 //CJK UNIFIED IDEOGRAPH - ,0xF655 ,0x9BF1 //CJK UNIFIED IDEOGRAPH - ,0xF656 ,0x9BF2 //CJK UNIFIED IDEOGRAPH - ,0xF657 ,0x9BF3 //CJK UNIFIED IDEOGRAPH - ,0xF658 ,0x9BF4 //CJK UNIFIED IDEOGRAPH - ,0xF659 ,0x9BF5 //CJK UNIFIED IDEOGRAPH - ,0xF65A ,0x9BF6 //CJK UNIFIED IDEOGRAPH - ,0xF65B ,0x9BF7 //CJK UNIFIED IDEOGRAPH - ,0xF65C ,0x9BF8 //CJK UNIFIED IDEOGRAPH - ,0xF65D ,0x9BF9 //CJK UNIFIED IDEOGRAPH - ,0xF65E ,0x9BFA //CJK UNIFIED IDEOGRAPH - ,0xF65F ,0x9BFB //CJK UNIFIED IDEOGRAPH - ,0xF660 ,0x9BFC //CJK UNIFIED IDEOGRAPH - ,0xF661 ,0x9BFD //CJK UNIFIED IDEOGRAPH - ,0xF662 ,0x9BFE //CJK UNIFIED IDEOGRAPH - ,0xF663 ,0x9BFF //CJK UNIFIED IDEOGRAPH - ,0xF664 ,0x9C00 //CJK UNIFIED IDEOGRAPH - ,0xF665 ,0x9C01 //CJK UNIFIED IDEOGRAPH - ,0xF666 ,0x9C02 //CJK UNIFIED IDEOGRAPH - ,0xF667 ,0x9C03 //CJK UNIFIED IDEOGRAPH - ,0xF668 ,0x9C04 //CJK UNIFIED IDEOGRAPH - ,0xF669 ,0x9C05 //CJK UNIFIED IDEOGRAPH - ,0xF66A ,0x9C06 //CJK UNIFIED IDEOGRAPH - ,0xF66B ,0x9C07 //CJK UNIFIED IDEOGRAPH - ,0xF66C ,0x9C08 //CJK UNIFIED IDEOGRAPH - ,0xF66D ,0x9C09 //CJK UNIFIED IDEOGRAPH - ,0xF66E ,0x9C0A //CJK UNIFIED IDEOGRAPH - ,0xF66F ,0x9C0B //CJK UNIFIED IDEOGRAPH - ,0xF670 ,0x9C0C //CJK UNIFIED IDEOGRAPH - ,0xF671 ,0x9C0D //CJK UNIFIED IDEOGRAPH - ,0xF672 ,0x9C0E //CJK UNIFIED IDEOGRAPH - ,0xF673 ,0x9C0F //CJK UNIFIED IDEOGRAPH - ,0xF674 ,0x9C10 //CJK UNIFIED IDEOGRAPH - ,0xF675 ,0x9C11 //CJK UNIFIED IDEOGRAPH - ,0xF676 ,0x9C12 //CJK UNIFIED IDEOGRAPH - ,0xF677 ,0x9C13 //CJK UNIFIED IDEOGRAPH - ,0xF678 ,0x9C14 //CJK UNIFIED IDEOGRAPH - ,0xF679 ,0x9C15 //CJK UNIFIED IDEOGRAPH - ,0xF67A ,0x9C16 //CJK UNIFIED IDEOGRAPH - ,0xF67B ,0x9C17 //CJK UNIFIED IDEOGRAPH - ,0xF67C ,0x9C18 //CJK UNIFIED IDEOGRAPH - ,0xF67D ,0x9C19 //CJK UNIFIED IDEOGRAPH - ,0xF67E ,0x9C1A //CJK UNIFIED IDEOGRAPH - ,0xF680 ,0x9C1B //CJK UNIFIED IDEOGRAPH - ,0xF681 ,0x9C1C //CJK UNIFIED IDEOGRAPH - ,0xF682 ,0x9C1D //CJK UNIFIED IDEOGRAPH - ,0xF683 ,0x9C1E //CJK UNIFIED IDEOGRAPH - ,0xF684 ,0x9C1F //CJK UNIFIED IDEOGRAPH - ,0xF685 ,0x9C20 //CJK UNIFIED IDEOGRAPH - ,0xF686 ,0x9C21 //CJK UNIFIED IDEOGRAPH - ,0xF687 ,0x9C22 //CJK UNIFIED IDEOGRAPH - ,0xF688 ,0x9C23 //CJK UNIFIED IDEOGRAPH - ,0xF689 ,0x9C24 //CJK UNIFIED IDEOGRAPH - ,0xF68A ,0x9C25 //CJK UNIFIED IDEOGRAPH - ,0xF68B ,0x9C26 //CJK UNIFIED IDEOGRAPH - ,0xF68C ,0x9C27 //CJK UNIFIED IDEOGRAPH - ,0xF68D ,0x9C28 //CJK UNIFIED IDEOGRAPH - ,0xF68E ,0x9C29 //CJK UNIFIED IDEOGRAPH - ,0xF68F ,0x9C2A //CJK UNIFIED IDEOGRAPH - ,0xF690 ,0x9C2B //CJK UNIFIED IDEOGRAPH - ,0xF691 ,0x9C2C //CJK UNIFIED IDEOGRAPH - ,0xF692 ,0x9C2D //CJK UNIFIED IDEOGRAPH - ,0xF693 ,0x9C2E //CJK UNIFIED IDEOGRAPH - ,0xF694 ,0x9C2F //CJK UNIFIED IDEOGRAPH - ,0xF695 ,0x9C30 //CJK UNIFIED IDEOGRAPH - ,0xF696 ,0x9C31 //CJK UNIFIED IDEOGRAPH - ,0xF697 ,0x9C32 //CJK UNIFIED IDEOGRAPH - ,0xF698 ,0x9C33 //CJK UNIFIED IDEOGRAPH - ,0xF699 ,0x9C34 //CJK UNIFIED IDEOGRAPH - ,0xF69A ,0x9C35 //CJK UNIFIED IDEOGRAPH - ,0xF69B ,0x9C36 //CJK UNIFIED IDEOGRAPH - ,0xF69C ,0x9C37 //CJK UNIFIED IDEOGRAPH - ,0xF69D ,0x9C38 //CJK UNIFIED IDEOGRAPH - ,0xF69E ,0x9C39 //CJK UNIFIED IDEOGRAPH - ,0xF69F ,0x9C3A //CJK UNIFIED IDEOGRAPH - ,0xF6A0 ,0x9C3B //CJK UNIFIED IDEOGRAPH - ,0xF6A1 ,0x89E5 //CJK UNIFIED IDEOGRAPH - ,0xF6A2 ,0x89EB //CJK UNIFIED IDEOGRAPH - ,0xF6A3 ,0x89EF //CJK UNIFIED IDEOGRAPH - ,0xF6A4 ,0x8A3E //CJK UNIFIED IDEOGRAPH - ,0xF6A5 ,0x8B26 //CJK UNIFIED IDEOGRAPH - ,0xF6A6 ,0x9753 //CJK UNIFIED IDEOGRAPH - ,0xF6A7 ,0x96E9 //CJK UNIFIED IDEOGRAPH - ,0xF6A8 ,0x96F3 //CJK UNIFIED IDEOGRAPH - ,0xF6A9 ,0x96EF //CJK UNIFIED IDEOGRAPH - ,0xF6AA ,0x9706 //CJK UNIFIED IDEOGRAPH - ,0xF6AB ,0x9701 //CJK UNIFIED IDEOGRAPH - ,0xF6AC ,0x9708 //CJK UNIFIED IDEOGRAPH - ,0xF6AD ,0x970F //CJK UNIFIED IDEOGRAPH - ,0xF6AE ,0x970E //CJK UNIFIED IDEOGRAPH - ,0xF6AF ,0x972A //CJK UNIFIED IDEOGRAPH - ,0xF6B0 ,0x972D //CJK UNIFIED IDEOGRAPH - ,0xF6B1 ,0x9730 //CJK UNIFIED IDEOGRAPH - ,0xF6B2 ,0x973E //CJK UNIFIED IDEOGRAPH - ,0xF6B3 ,0x9F80 //CJK UNIFIED IDEOGRAPH - ,0xF6B4 ,0x9F83 //CJK UNIFIED IDEOGRAPH - ,0xF6B5 ,0x9F85 //CJK UNIFIED IDEOGRAPH - ,0xF6B6 ,0x9F86 //CJK UNIFIED IDEOGRAPH - ,0xF6B7 ,0x9F87 //CJK UNIFIED IDEOGRAPH - ,0xF6B8 ,0x9F88 //CJK UNIFIED IDEOGRAPH - ,0xF6B9 ,0x9F89 //CJK UNIFIED IDEOGRAPH - ,0xF6BA ,0x9F8A //CJK UNIFIED IDEOGRAPH - ,0xF6BB ,0x9F8C //CJK UNIFIED IDEOGRAPH - ,0xF6BC ,0x9EFE //CJK UNIFIED IDEOGRAPH - ,0xF6BD ,0x9F0B //CJK UNIFIED IDEOGRAPH - ,0xF6BE ,0x9F0D //CJK UNIFIED IDEOGRAPH - ,0xF6BF ,0x96B9 //CJK UNIFIED IDEOGRAPH - ,0xF6C0 ,0x96BC //CJK UNIFIED IDEOGRAPH - ,0xF6C1 ,0x96BD //CJK UNIFIED IDEOGRAPH - ,0xF6C2 ,0x96CE //CJK UNIFIED IDEOGRAPH - ,0xF6C3 ,0x96D2 //CJK UNIFIED IDEOGRAPH - ,0xF6C4 ,0x77BF //CJK UNIFIED IDEOGRAPH - ,0xF6C5 ,0x96E0 //CJK UNIFIED IDEOGRAPH - ,0xF6C6 ,0x928E //CJK UNIFIED IDEOGRAPH - ,0xF6C7 ,0x92AE //CJK UNIFIED IDEOGRAPH - ,0xF6C8 ,0x92C8 //CJK UNIFIED IDEOGRAPH - ,0xF6C9 ,0x933E //CJK UNIFIED IDEOGRAPH - ,0xF6CA ,0x936A //CJK UNIFIED IDEOGRAPH - ,0xF6CB ,0x93CA //CJK UNIFIED IDEOGRAPH - ,0xF6CC ,0x938F //CJK UNIFIED IDEOGRAPH - ,0xF6CD ,0x943E //CJK UNIFIED IDEOGRAPH - ,0xF6CE ,0x946B //CJK UNIFIED IDEOGRAPH - ,0xF6CF ,0x9C7F //CJK UNIFIED IDEOGRAPH - ,0xF6D0 ,0x9C82 //CJK UNIFIED IDEOGRAPH - ,0xF6D1 ,0x9C85 //CJK UNIFIED IDEOGRAPH - ,0xF6D2 ,0x9C86 //CJK UNIFIED IDEOGRAPH - ,0xF6D3 ,0x9C87 //CJK UNIFIED IDEOGRAPH - ,0xF6D4 ,0x9C88 //CJK UNIFIED IDEOGRAPH - ,0xF6D5 ,0x7A23 //CJK UNIFIED IDEOGRAPH - ,0xF6D6 ,0x9C8B //CJK UNIFIED IDEOGRAPH - ,0xF6D7 ,0x9C8E //CJK UNIFIED IDEOGRAPH - ,0xF6D8 ,0x9C90 //CJK UNIFIED IDEOGRAPH - ,0xF6D9 ,0x9C91 //CJK UNIFIED IDEOGRAPH - ,0xF6DA ,0x9C92 //CJK UNIFIED IDEOGRAPH - ,0xF6DB ,0x9C94 //CJK UNIFIED IDEOGRAPH - ,0xF6DC ,0x9C95 //CJK UNIFIED IDEOGRAPH - ,0xF6DD ,0x9C9A //CJK UNIFIED IDEOGRAPH - ,0xF6DE ,0x9C9B //CJK UNIFIED IDEOGRAPH - ,0xF6DF ,0x9C9E //CJK UNIFIED IDEOGRAPH - ,0xF6E0 ,0x9C9F //CJK UNIFIED IDEOGRAPH - ,0xF6E1 ,0x9CA0 //CJK UNIFIED IDEOGRAPH - ,0xF6E2 ,0x9CA1 //CJK UNIFIED IDEOGRAPH - ,0xF6E3 ,0x9CA2 //CJK UNIFIED IDEOGRAPH - ,0xF6E4 ,0x9CA3 //CJK UNIFIED IDEOGRAPH - ,0xF6E5 ,0x9CA5 //CJK UNIFIED IDEOGRAPH - ,0xF6E6 ,0x9CA6 //CJK UNIFIED IDEOGRAPH - ,0xF6E7 ,0x9CA7 //CJK UNIFIED IDEOGRAPH - ,0xF6E8 ,0x9CA8 //CJK UNIFIED IDEOGRAPH - ,0xF6E9 ,0x9CA9 //CJK UNIFIED IDEOGRAPH - ,0xF6EA ,0x9CAB //CJK UNIFIED IDEOGRAPH - ,0xF6EB ,0x9CAD //CJK UNIFIED IDEOGRAPH - ,0xF6EC ,0x9CAE //CJK UNIFIED IDEOGRAPH - ,0xF6ED ,0x9CB0 //CJK UNIFIED IDEOGRAPH - ,0xF6EE ,0x9CB1 //CJK UNIFIED IDEOGRAPH - ,0xF6EF ,0x9CB2 //CJK UNIFIED IDEOGRAPH - ,0xF6F0 ,0x9CB3 //CJK UNIFIED IDEOGRAPH - ,0xF6F1 ,0x9CB4 //CJK UNIFIED IDEOGRAPH - ,0xF6F2 ,0x9CB5 //CJK UNIFIED IDEOGRAPH - ,0xF6F3 ,0x9CB6 //CJK UNIFIED IDEOGRAPH - ,0xF6F4 ,0x9CB7 //CJK UNIFIED IDEOGRAPH - ,0xF6F5 ,0x9CBA //CJK UNIFIED IDEOGRAPH - ,0xF6F6 ,0x9CBB //CJK UNIFIED IDEOGRAPH - ,0xF6F7 ,0x9CBC //CJK UNIFIED IDEOGRAPH - ,0xF6F8 ,0x9CBD //CJK UNIFIED IDEOGRAPH - ,0xF6F9 ,0x9CC4 //CJK UNIFIED IDEOGRAPH - ,0xF6FA ,0x9CC5 //CJK UNIFIED IDEOGRAPH - ,0xF6FB ,0x9CC6 //CJK UNIFIED IDEOGRAPH - ,0xF6FC ,0x9CC7 //CJK UNIFIED IDEOGRAPH - ,0xF6FD ,0x9CCA //CJK UNIFIED IDEOGRAPH - ,0xF6FE ,0x9CCB //CJK UNIFIED IDEOGRAPH - ,0xF740 ,0x9C3C //CJK UNIFIED IDEOGRAPH - ,0xF741 ,0x9C3D //CJK UNIFIED IDEOGRAPH - ,0xF742 ,0x9C3E //CJK UNIFIED IDEOGRAPH - ,0xF743 ,0x9C3F //CJK UNIFIED IDEOGRAPH - ,0xF744 ,0x9C40 //CJK UNIFIED IDEOGRAPH - ,0xF745 ,0x9C41 //CJK UNIFIED IDEOGRAPH - ,0xF746 ,0x9C42 //CJK UNIFIED IDEOGRAPH - ,0xF747 ,0x9C43 //CJK UNIFIED IDEOGRAPH - ,0xF748 ,0x9C44 //CJK UNIFIED IDEOGRAPH - ,0xF749 ,0x9C45 //CJK UNIFIED IDEOGRAPH - ,0xF74A ,0x9C46 //CJK UNIFIED IDEOGRAPH - ,0xF74B ,0x9C47 //CJK UNIFIED IDEOGRAPH - ,0xF74C ,0x9C48 //CJK UNIFIED IDEOGRAPH - ,0xF74D ,0x9C49 //CJK UNIFIED IDEOGRAPH - ,0xF74E ,0x9C4A //CJK UNIFIED IDEOGRAPH - ,0xF74F ,0x9C4B //CJK UNIFIED IDEOGRAPH - ,0xF750 ,0x9C4C //CJK UNIFIED IDEOGRAPH - ,0xF751 ,0x9C4D //CJK UNIFIED IDEOGRAPH - ,0xF752 ,0x9C4E //CJK UNIFIED IDEOGRAPH - ,0xF753 ,0x9C4F //CJK UNIFIED IDEOGRAPH - ,0xF754 ,0x9C50 //CJK UNIFIED IDEOGRAPH - ,0xF755 ,0x9C51 //CJK UNIFIED IDEOGRAPH - ,0xF756 ,0x9C52 //CJK UNIFIED IDEOGRAPH - ,0xF757 ,0x9C53 //CJK UNIFIED IDEOGRAPH - ,0xF758 ,0x9C54 //CJK UNIFIED IDEOGRAPH - ,0xF759 ,0x9C55 //CJK UNIFIED IDEOGRAPH - ,0xF75A ,0x9C56 //CJK UNIFIED IDEOGRAPH - ,0xF75B ,0x9C57 //CJK UNIFIED IDEOGRAPH - ,0xF75C ,0x9C58 //CJK UNIFIED IDEOGRAPH - ,0xF75D ,0x9C59 //CJK UNIFIED IDEOGRAPH - ,0xF75E ,0x9C5A //CJK UNIFIED IDEOGRAPH - ,0xF75F ,0x9C5B //CJK UNIFIED IDEOGRAPH - ,0xF760 ,0x9C5C //CJK UNIFIED IDEOGRAPH - ,0xF761 ,0x9C5D //CJK UNIFIED IDEOGRAPH - ,0xF762 ,0x9C5E //CJK UNIFIED IDEOGRAPH - ,0xF763 ,0x9C5F //CJK UNIFIED IDEOGRAPH - ,0xF764 ,0x9C60 //CJK UNIFIED IDEOGRAPH - ,0xF765 ,0x9C61 //CJK UNIFIED IDEOGRAPH - ,0xF766 ,0x9C62 //CJK UNIFIED IDEOGRAPH - ,0xF767 ,0x9C63 //CJK UNIFIED IDEOGRAPH - ,0xF768 ,0x9C64 //CJK UNIFIED IDEOGRAPH - ,0xF769 ,0x9C65 //CJK UNIFIED IDEOGRAPH - ,0xF76A ,0x9C66 //CJK UNIFIED IDEOGRAPH - ,0xF76B ,0x9C67 //CJK UNIFIED IDEOGRAPH - ,0xF76C ,0x9C68 //CJK UNIFIED IDEOGRAPH - ,0xF76D ,0x9C69 //CJK UNIFIED IDEOGRAPH - ,0xF76E ,0x9C6A //CJK UNIFIED IDEOGRAPH - ,0xF76F ,0x9C6B //CJK UNIFIED IDEOGRAPH - ,0xF770 ,0x9C6C //CJK UNIFIED IDEOGRAPH - ,0xF771 ,0x9C6D //CJK UNIFIED IDEOGRAPH - ,0xF772 ,0x9C6E //CJK UNIFIED IDEOGRAPH - ,0xF773 ,0x9C6F //CJK UNIFIED IDEOGRAPH - ,0xF774 ,0x9C70 //CJK UNIFIED IDEOGRAPH - ,0xF775 ,0x9C71 //CJK UNIFIED IDEOGRAPH - ,0xF776 ,0x9C72 //CJK UNIFIED IDEOGRAPH - ,0xF777 ,0x9C73 //CJK UNIFIED IDEOGRAPH - ,0xF778 ,0x9C74 //CJK UNIFIED IDEOGRAPH - ,0xF779 ,0x9C75 //CJK UNIFIED IDEOGRAPH - ,0xF77A ,0x9C76 //CJK UNIFIED IDEOGRAPH - ,0xF77B ,0x9C77 //CJK UNIFIED IDEOGRAPH - ,0xF77C ,0x9C78 //CJK UNIFIED IDEOGRAPH - ,0xF77D ,0x9C79 //CJK UNIFIED IDEOGRAPH - ,0xF77E ,0x9C7A //CJK UNIFIED IDEOGRAPH - ,0xF780 ,0x9C7B //CJK UNIFIED IDEOGRAPH - ,0xF781 ,0x9C7D //CJK UNIFIED IDEOGRAPH - ,0xF782 ,0x9C7E //CJK UNIFIED IDEOGRAPH - ,0xF783 ,0x9C80 //CJK UNIFIED IDEOGRAPH - ,0xF784 ,0x9C83 //CJK UNIFIED IDEOGRAPH - ,0xF785 ,0x9C84 //CJK UNIFIED IDEOGRAPH - ,0xF786 ,0x9C89 //CJK UNIFIED IDEOGRAPH - ,0xF787 ,0x9C8A //CJK UNIFIED IDEOGRAPH - ,0xF788 ,0x9C8C //CJK UNIFIED IDEOGRAPH - ,0xF789 ,0x9C8F //CJK UNIFIED IDEOGRAPH - ,0xF78A ,0x9C93 //CJK UNIFIED IDEOGRAPH - ,0xF78B ,0x9C96 //CJK UNIFIED IDEOGRAPH - ,0xF78C ,0x9C97 //CJK UNIFIED IDEOGRAPH - ,0xF78D ,0x9C98 //CJK UNIFIED IDEOGRAPH - ,0xF78E ,0x9C99 //CJK UNIFIED IDEOGRAPH - ,0xF78F ,0x9C9D //CJK UNIFIED IDEOGRAPH - ,0xF790 ,0x9CAA //CJK UNIFIED IDEOGRAPH - ,0xF791 ,0x9CAC //CJK UNIFIED IDEOGRAPH - ,0xF792 ,0x9CAF //CJK UNIFIED IDEOGRAPH - ,0xF793 ,0x9CB9 //CJK UNIFIED IDEOGRAPH - ,0xF794 ,0x9CBE //CJK UNIFIED IDEOGRAPH - ,0xF795 ,0x9CBF //CJK UNIFIED IDEOGRAPH - ,0xF796 ,0x9CC0 //CJK UNIFIED IDEOGRAPH - ,0xF797 ,0x9CC1 //CJK UNIFIED IDEOGRAPH - ,0xF798 ,0x9CC2 //CJK UNIFIED IDEOGRAPH - ,0xF799 ,0x9CC8 //CJK UNIFIED IDEOGRAPH - ,0xF79A ,0x9CC9 //CJK UNIFIED IDEOGRAPH - ,0xF79B ,0x9CD1 //CJK UNIFIED IDEOGRAPH - ,0xF79C ,0x9CD2 //CJK UNIFIED IDEOGRAPH - ,0xF79D ,0x9CDA //CJK UNIFIED IDEOGRAPH - ,0xF79E ,0x9CDB //CJK UNIFIED IDEOGRAPH - ,0xF79F ,0x9CE0 //CJK UNIFIED IDEOGRAPH - ,0xF7A0 ,0x9CE1 //CJK UNIFIED IDEOGRAPH - ,0xF7A1 ,0x9CCC //CJK UNIFIED IDEOGRAPH - ,0xF7A2 ,0x9CCD //CJK UNIFIED IDEOGRAPH - ,0xF7A3 ,0x9CCE //CJK UNIFIED IDEOGRAPH - ,0xF7A4 ,0x9CCF //CJK UNIFIED IDEOGRAPH - ,0xF7A5 ,0x9CD0 //CJK UNIFIED IDEOGRAPH - ,0xF7A6 ,0x9CD3 //CJK UNIFIED IDEOGRAPH - ,0xF7A7 ,0x9CD4 //CJK UNIFIED IDEOGRAPH - ,0xF7A8 ,0x9CD5 //CJK UNIFIED IDEOGRAPH - ,0xF7A9 ,0x9CD7 //CJK UNIFIED IDEOGRAPH - ,0xF7AA ,0x9CD8 //CJK UNIFIED IDEOGRAPH - ,0xF7AB ,0x9CD9 //CJK UNIFIED IDEOGRAPH - ,0xF7AC ,0x9CDC //CJK UNIFIED IDEOGRAPH - ,0xF7AD ,0x9CDD //CJK UNIFIED IDEOGRAPH - ,0xF7AE ,0x9CDF //CJK UNIFIED IDEOGRAPH - ,0xF7AF ,0x9CE2 //CJK UNIFIED IDEOGRAPH - ,0xF7B0 ,0x977C //CJK UNIFIED IDEOGRAPH - ,0xF7B1 ,0x9785 //CJK UNIFIED IDEOGRAPH - ,0xF7B2 ,0x9791 //CJK UNIFIED IDEOGRAPH - ,0xF7B3 ,0x9792 //CJK UNIFIED IDEOGRAPH - ,0xF7B4 ,0x9794 //CJK UNIFIED IDEOGRAPH - ,0xF7B5 ,0x97AF //CJK UNIFIED IDEOGRAPH - ,0xF7B6 ,0x97AB //CJK UNIFIED IDEOGRAPH - ,0xF7B7 ,0x97A3 //CJK UNIFIED IDEOGRAPH - ,0xF7B8 ,0x97B2 //CJK UNIFIED IDEOGRAPH - ,0xF7B9 ,0x97B4 //CJK UNIFIED IDEOGRAPH - ,0xF7BA ,0x9AB1 //CJK UNIFIED IDEOGRAPH - ,0xF7BB ,0x9AB0 //CJK UNIFIED IDEOGRAPH - ,0xF7BC ,0x9AB7 //CJK UNIFIED IDEOGRAPH - ,0xF7BD ,0x9E58 //CJK UNIFIED IDEOGRAPH - ,0xF7BE ,0x9AB6 //CJK UNIFIED IDEOGRAPH - ,0xF7BF ,0x9ABA //CJK UNIFIED IDEOGRAPH - ,0xF7C0 ,0x9ABC //CJK UNIFIED IDEOGRAPH - ,0xF7C1 ,0x9AC1 //CJK UNIFIED IDEOGRAPH - ,0xF7C2 ,0x9AC0 //CJK UNIFIED IDEOGRAPH - ,0xF7C3 ,0x9AC5 //CJK UNIFIED IDEOGRAPH - ,0xF7C4 ,0x9AC2 //CJK UNIFIED IDEOGRAPH - ,0xF7C5 ,0x9ACB //CJK UNIFIED IDEOGRAPH - ,0xF7C6 ,0x9ACC //CJK UNIFIED IDEOGRAPH - ,0xF7C7 ,0x9AD1 //CJK UNIFIED IDEOGRAPH - ,0xF7C8 ,0x9B45 //CJK UNIFIED IDEOGRAPH - ,0xF7C9 ,0x9B43 //CJK UNIFIED IDEOGRAPH - ,0xF7CA ,0x9B47 //CJK UNIFIED IDEOGRAPH - ,0xF7CB ,0x9B49 //CJK UNIFIED IDEOGRAPH - ,0xF7CC ,0x9B48 //CJK UNIFIED IDEOGRAPH - ,0xF7CD ,0x9B4D //CJK UNIFIED IDEOGRAPH - ,0xF7CE ,0x9B51 //CJK UNIFIED IDEOGRAPH - ,0xF7CF ,0x98E8 //CJK UNIFIED IDEOGRAPH - ,0xF7D0 ,0x990D //CJK UNIFIED IDEOGRAPH - ,0xF7D1 ,0x992E //CJK UNIFIED IDEOGRAPH - ,0xF7D2 ,0x9955 //CJK UNIFIED IDEOGRAPH - ,0xF7D3 ,0x9954 //CJK UNIFIED IDEOGRAPH - ,0xF7D4 ,0x9ADF //CJK UNIFIED IDEOGRAPH - ,0xF7D5 ,0x9AE1 //CJK UNIFIED IDEOGRAPH - ,0xF7D6 ,0x9AE6 //CJK UNIFIED IDEOGRAPH - ,0xF7D7 ,0x9AEF //CJK UNIFIED IDEOGRAPH - ,0xF7D8 ,0x9AEB //CJK UNIFIED IDEOGRAPH - ,0xF7D9 ,0x9AFB //CJK UNIFIED IDEOGRAPH - ,0xF7DA ,0x9AED //CJK UNIFIED IDEOGRAPH - ,0xF7DB ,0x9AF9 //CJK UNIFIED IDEOGRAPH - ,0xF7DC ,0x9B08 //CJK UNIFIED IDEOGRAPH - ,0xF7DD ,0x9B0F //CJK UNIFIED IDEOGRAPH - ,0xF7DE ,0x9B13 //CJK UNIFIED IDEOGRAPH - ,0xF7DF ,0x9B1F //CJK UNIFIED IDEOGRAPH - ,0xF7E0 ,0x9B23 //CJK UNIFIED IDEOGRAPH - ,0xF7E1 ,0x9EBD //CJK UNIFIED IDEOGRAPH - ,0xF7E2 ,0x9EBE //CJK UNIFIED IDEOGRAPH - ,0xF7E3 ,0x7E3B //CJK UNIFIED IDEOGRAPH - ,0xF7E4 ,0x9E82 //CJK UNIFIED IDEOGRAPH - ,0xF7E5 ,0x9E87 //CJK UNIFIED IDEOGRAPH - ,0xF7E6 ,0x9E88 //CJK UNIFIED IDEOGRAPH - ,0xF7E7 ,0x9E8B //CJK UNIFIED IDEOGRAPH - ,0xF7E8 ,0x9E92 //CJK UNIFIED IDEOGRAPH - ,0xF7E9 ,0x93D6 //CJK UNIFIED IDEOGRAPH - ,0xF7EA ,0x9E9D //CJK UNIFIED IDEOGRAPH - ,0xF7EB ,0x9E9F //CJK UNIFIED IDEOGRAPH - ,0xF7EC ,0x9EDB //CJK UNIFIED IDEOGRAPH - ,0xF7ED ,0x9EDC //CJK UNIFIED IDEOGRAPH - ,0xF7EE ,0x9EDD //CJK UNIFIED IDEOGRAPH - ,0xF7EF ,0x9EE0 //CJK UNIFIED IDEOGRAPH - ,0xF7F0 ,0x9EDF //CJK UNIFIED IDEOGRAPH - ,0xF7F1 ,0x9EE2 //CJK UNIFIED IDEOGRAPH - ,0xF7F2 ,0x9EE9 //CJK UNIFIED IDEOGRAPH - ,0xF7F3 ,0x9EE7 //CJK UNIFIED IDEOGRAPH - ,0xF7F4 ,0x9EE5 //CJK UNIFIED IDEOGRAPH - ,0xF7F5 ,0x9EEA //CJK UNIFIED IDEOGRAPH - ,0xF7F6 ,0x9EEF //CJK UNIFIED IDEOGRAPH - ,0xF7F7 ,0x9F22 //CJK UNIFIED IDEOGRAPH - ,0xF7F8 ,0x9F2C //CJK UNIFIED IDEOGRAPH - ,0xF7F9 ,0x9F2F //CJK UNIFIED IDEOGRAPH - ,0xF7FA ,0x9F39 //CJK UNIFIED IDEOGRAPH - ,0xF7FB ,0x9F37 //CJK UNIFIED IDEOGRAPH - ,0xF7FC ,0x9F3D //CJK UNIFIED IDEOGRAPH - ,0xF7FD ,0x9F3E //CJK UNIFIED IDEOGRAPH - ,0xF7FE ,0x9F44 //CJK UNIFIED IDEOGRAPH - ,0xF840 ,0x9CE3 //CJK UNIFIED IDEOGRAPH - ,0xF841 ,0x9CE4 //CJK UNIFIED IDEOGRAPH - ,0xF842 ,0x9CE5 //CJK UNIFIED IDEOGRAPH - ,0xF843 ,0x9CE6 //CJK UNIFIED IDEOGRAPH - ,0xF844 ,0x9CE7 //CJK UNIFIED IDEOGRAPH - ,0xF845 ,0x9CE8 //CJK UNIFIED IDEOGRAPH - ,0xF846 ,0x9CE9 //CJK UNIFIED IDEOGRAPH - ,0xF847 ,0x9CEA //CJK UNIFIED IDEOGRAPH - ,0xF848 ,0x9CEB //CJK UNIFIED IDEOGRAPH - ,0xF849 ,0x9CEC //CJK UNIFIED IDEOGRAPH - ,0xF84A ,0x9CED //CJK UNIFIED IDEOGRAPH - ,0xF84B ,0x9CEE //CJK UNIFIED IDEOGRAPH - ,0xF84C ,0x9CEF //CJK UNIFIED IDEOGRAPH - ,0xF84D ,0x9CF0 //CJK UNIFIED IDEOGRAPH - ,0xF84E ,0x9CF1 //CJK UNIFIED IDEOGRAPH - ,0xF84F ,0x9CF2 //CJK UNIFIED IDEOGRAPH - ,0xF850 ,0x9CF3 //CJK UNIFIED IDEOGRAPH - ,0xF851 ,0x9CF4 //CJK UNIFIED IDEOGRAPH - ,0xF852 ,0x9CF5 //CJK UNIFIED IDEOGRAPH - ,0xF853 ,0x9CF6 //CJK UNIFIED IDEOGRAPH - ,0xF854 ,0x9CF7 //CJK UNIFIED IDEOGRAPH - ,0xF855 ,0x9CF8 //CJK UNIFIED IDEOGRAPH - ,0xF856 ,0x9CF9 //CJK UNIFIED IDEOGRAPH - ,0xF857 ,0x9CFA //CJK UNIFIED IDEOGRAPH - ,0xF858 ,0x9CFB //CJK UNIFIED IDEOGRAPH - ,0xF859 ,0x9CFC //CJK UNIFIED IDEOGRAPH - ,0xF85A ,0x9CFD //CJK UNIFIED IDEOGRAPH - ,0xF85B ,0x9CFE //CJK UNIFIED IDEOGRAPH - ,0xF85C ,0x9CFF //CJK UNIFIED IDEOGRAPH - ,0xF85D ,0x9D00 //CJK UNIFIED IDEOGRAPH - ,0xF85E ,0x9D01 //CJK UNIFIED IDEOGRAPH - ,0xF85F ,0x9D02 //CJK UNIFIED IDEOGRAPH - ,0xF860 ,0x9D03 //CJK UNIFIED IDEOGRAPH - ,0xF861 ,0x9D04 //CJK UNIFIED IDEOGRAPH - ,0xF862 ,0x9D05 //CJK UNIFIED IDEOGRAPH - ,0xF863 ,0x9D06 //CJK UNIFIED IDEOGRAPH - ,0xF864 ,0x9D07 //CJK UNIFIED IDEOGRAPH - ,0xF865 ,0x9D08 //CJK UNIFIED IDEOGRAPH - ,0xF866 ,0x9D09 //CJK UNIFIED IDEOGRAPH - ,0xF867 ,0x9D0A //CJK UNIFIED IDEOGRAPH - ,0xF868 ,0x9D0B //CJK UNIFIED IDEOGRAPH - ,0xF869 ,0x9D0C //CJK UNIFIED IDEOGRAPH - ,0xF86A ,0x9D0D //CJK UNIFIED IDEOGRAPH - ,0xF86B ,0x9D0E //CJK UNIFIED IDEOGRAPH - ,0xF86C ,0x9D0F //CJK UNIFIED IDEOGRAPH - ,0xF86D ,0x9D10 //CJK UNIFIED IDEOGRAPH - ,0xF86E ,0x9D11 //CJK UNIFIED IDEOGRAPH - ,0xF86F ,0x9D12 //CJK UNIFIED IDEOGRAPH - ,0xF870 ,0x9D13 //CJK UNIFIED IDEOGRAPH - ,0xF871 ,0x9D14 //CJK UNIFIED IDEOGRAPH - ,0xF872 ,0x9D15 //CJK UNIFIED IDEOGRAPH - ,0xF873 ,0x9D16 //CJK UNIFIED IDEOGRAPH - ,0xF874 ,0x9D17 //CJK UNIFIED IDEOGRAPH - ,0xF875 ,0x9D18 //CJK UNIFIED IDEOGRAPH - ,0xF876 ,0x9D19 //CJK UNIFIED IDEOGRAPH - ,0xF877 ,0x9D1A //CJK UNIFIED IDEOGRAPH - ,0xF878 ,0x9D1B //CJK UNIFIED IDEOGRAPH - ,0xF879 ,0x9D1C //CJK UNIFIED IDEOGRAPH - ,0xF87A ,0x9D1D //CJK UNIFIED IDEOGRAPH - ,0xF87B ,0x9D1E //CJK UNIFIED IDEOGRAPH - ,0xF87C ,0x9D1F //CJK UNIFIED IDEOGRAPH - ,0xF87D ,0x9D20 //CJK UNIFIED IDEOGRAPH - ,0xF87E ,0x9D21 //CJK UNIFIED IDEOGRAPH - ,0xF880 ,0x9D22 //CJK UNIFIED IDEOGRAPH - ,0xF881 ,0x9D23 //CJK UNIFIED IDEOGRAPH - ,0xF882 ,0x9D24 //CJK UNIFIED IDEOGRAPH - ,0xF883 ,0x9D25 //CJK UNIFIED IDEOGRAPH - ,0xF884 ,0x9D26 //CJK UNIFIED IDEOGRAPH - ,0xF885 ,0x9D27 //CJK UNIFIED IDEOGRAPH - ,0xF886 ,0x9D28 //CJK UNIFIED IDEOGRAPH - ,0xF887 ,0x9D29 //CJK UNIFIED IDEOGRAPH - ,0xF888 ,0x9D2A //CJK UNIFIED IDEOGRAPH - ,0xF889 ,0x9D2B //CJK UNIFIED IDEOGRAPH - ,0xF88A ,0x9D2C //CJK UNIFIED IDEOGRAPH - ,0xF88B ,0x9D2D //CJK UNIFIED IDEOGRAPH - ,0xF88C ,0x9D2E //CJK UNIFIED IDEOGRAPH - ,0xF88D ,0x9D2F //CJK UNIFIED IDEOGRAPH - ,0xF88E ,0x9D30 //CJK UNIFIED IDEOGRAPH - ,0xF88F ,0x9D31 //CJK UNIFIED IDEOGRAPH - ,0xF890 ,0x9D32 //CJK UNIFIED IDEOGRAPH - ,0xF891 ,0x9D33 //CJK UNIFIED IDEOGRAPH - ,0xF892 ,0x9D34 //CJK UNIFIED IDEOGRAPH - ,0xF893 ,0x9D35 //CJK UNIFIED IDEOGRAPH - ,0xF894 ,0x9D36 //CJK UNIFIED IDEOGRAPH - ,0xF895 ,0x9D37 //CJK UNIFIED IDEOGRAPH - ,0xF896 ,0x9D38 //CJK UNIFIED IDEOGRAPH - ,0xF897 ,0x9D39 //CJK UNIFIED IDEOGRAPH - ,0xF898 ,0x9D3A //CJK UNIFIED IDEOGRAPH - ,0xF899 ,0x9D3B //CJK UNIFIED IDEOGRAPH - ,0xF89A ,0x9D3C //CJK UNIFIED IDEOGRAPH - ,0xF89B ,0x9D3D //CJK UNIFIED IDEOGRAPH - ,0xF89C ,0x9D3E //CJK UNIFIED IDEOGRAPH - ,0xF89D ,0x9D3F //CJK UNIFIED IDEOGRAPH - ,0xF89E ,0x9D40 //CJK UNIFIED IDEOGRAPH - ,0xF89F ,0x9D41 //CJK UNIFIED IDEOGRAPH - ,0xF8A0 ,0x9D42 //CJK UNIFIED IDEOGRAPH - ,0xF940 ,0x9D43 //CJK UNIFIED IDEOGRAPH - ,0xF941 ,0x9D44 //CJK UNIFIED IDEOGRAPH - ,0xF942 ,0x9D45 //CJK UNIFIED IDEOGRAPH - ,0xF943 ,0x9D46 //CJK UNIFIED IDEOGRAPH - ,0xF944 ,0x9D47 //CJK UNIFIED IDEOGRAPH - ,0xF945 ,0x9D48 //CJK UNIFIED IDEOGRAPH - ,0xF946 ,0x9D49 //CJK UNIFIED IDEOGRAPH - ,0xF947 ,0x9D4A //CJK UNIFIED IDEOGRAPH - ,0xF948 ,0x9D4B //CJK UNIFIED IDEOGRAPH - ,0xF949 ,0x9D4C //CJK UNIFIED IDEOGRAPH - ,0xF94A ,0x9D4D //CJK UNIFIED IDEOGRAPH - ,0xF94B ,0x9D4E //CJK UNIFIED IDEOGRAPH - ,0xF94C ,0x9D4F //CJK UNIFIED IDEOGRAPH - ,0xF94D ,0x9D50 //CJK UNIFIED IDEOGRAPH - ,0xF94E ,0x9D51 //CJK UNIFIED IDEOGRAPH - ,0xF94F ,0x9D52 //CJK UNIFIED IDEOGRAPH - ,0xF950 ,0x9D53 //CJK UNIFIED IDEOGRAPH - ,0xF951 ,0x9D54 //CJK UNIFIED IDEOGRAPH - ,0xF952 ,0x9D55 //CJK UNIFIED IDEOGRAPH - ,0xF953 ,0x9D56 //CJK UNIFIED IDEOGRAPH - ,0xF954 ,0x9D57 //CJK UNIFIED IDEOGRAPH - ,0xF955 ,0x9D58 //CJK UNIFIED IDEOGRAPH - ,0xF956 ,0x9D59 //CJK UNIFIED IDEOGRAPH - ,0xF957 ,0x9D5A //CJK UNIFIED IDEOGRAPH - ,0xF958 ,0x9D5B //CJK UNIFIED IDEOGRAPH - ,0xF959 ,0x9D5C //CJK UNIFIED IDEOGRAPH - ,0xF95A ,0x9D5D //CJK UNIFIED IDEOGRAPH - ,0xF95B ,0x9D5E //CJK UNIFIED IDEOGRAPH - ,0xF95C ,0x9D5F //CJK UNIFIED IDEOGRAPH - ,0xF95D ,0x9D60 //CJK UNIFIED IDEOGRAPH - ,0xF95E ,0x9D61 //CJK UNIFIED IDEOGRAPH - ,0xF95F ,0x9D62 //CJK UNIFIED IDEOGRAPH - ,0xF960 ,0x9D63 //CJK UNIFIED IDEOGRAPH - ,0xF961 ,0x9D64 //CJK UNIFIED IDEOGRAPH - ,0xF962 ,0x9D65 //CJK UNIFIED IDEOGRAPH - ,0xF963 ,0x9D66 //CJK UNIFIED IDEOGRAPH - ,0xF964 ,0x9D67 //CJK UNIFIED IDEOGRAPH - ,0xF965 ,0x9D68 //CJK UNIFIED IDEOGRAPH - ,0xF966 ,0x9D69 //CJK UNIFIED IDEOGRAPH - ,0xF967 ,0x9D6A //CJK UNIFIED IDEOGRAPH - ,0xF968 ,0x9D6B //CJK UNIFIED IDEOGRAPH - ,0xF969 ,0x9D6C //CJK UNIFIED IDEOGRAPH - ,0xF96A ,0x9D6D //CJK UNIFIED IDEOGRAPH - ,0xF96B ,0x9D6E //CJK UNIFIED IDEOGRAPH - ,0xF96C ,0x9D6F //CJK UNIFIED IDEOGRAPH - ,0xF96D ,0x9D70 //CJK UNIFIED IDEOGRAPH - ,0xF96E ,0x9D71 //CJK UNIFIED IDEOGRAPH - ,0xF96F ,0x9D72 //CJK UNIFIED IDEOGRAPH - ,0xF970 ,0x9D73 //CJK UNIFIED IDEOGRAPH - ,0xF971 ,0x9D74 //CJK UNIFIED IDEOGRAPH - ,0xF972 ,0x9D75 //CJK UNIFIED IDEOGRAPH - ,0xF973 ,0x9D76 //CJK UNIFIED IDEOGRAPH - ,0xF974 ,0x9D77 //CJK UNIFIED IDEOGRAPH - ,0xF975 ,0x9D78 //CJK UNIFIED IDEOGRAPH - ,0xF976 ,0x9D79 //CJK UNIFIED IDEOGRAPH - ,0xF977 ,0x9D7A //CJK UNIFIED IDEOGRAPH - ,0xF978 ,0x9D7B //CJK UNIFIED IDEOGRAPH - ,0xF979 ,0x9D7C //CJK UNIFIED IDEOGRAPH - ,0xF97A ,0x9D7D //CJK UNIFIED IDEOGRAPH - ,0xF97B ,0x9D7E //CJK UNIFIED IDEOGRAPH - ,0xF97C ,0x9D7F //CJK UNIFIED IDEOGRAPH - ,0xF97D ,0x9D80 //CJK UNIFIED IDEOGRAPH - ,0xF97E ,0x9D81 //CJK UNIFIED IDEOGRAPH - ,0xF980 ,0x9D82 //CJK UNIFIED IDEOGRAPH - ,0xF981 ,0x9D83 //CJK UNIFIED IDEOGRAPH - ,0xF982 ,0x9D84 //CJK UNIFIED IDEOGRAPH - ,0xF983 ,0x9D85 //CJK UNIFIED IDEOGRAPH - ,0xF984 ,0x9D86 //CJK UNIFIED IDEOGRAPH - ,0xF985 ,0x9D87 //CJK UNIFIED IDEOGRAPH - ,0xF986 ,0x9D88 //CJK UNIFIED IDEOGRAPH - ,0xF987 ,0x9D89 //CJK UNIFIED IDEOGRAPH - ,0xF988 ,0x9D8A //CJK UNIFIED IDEOGRAPH - ,0xF989 ,0x9D8B //CJK UNIFIED IDEOGRAPH - ,0xF98A ,0x9D8C //CJK UNIFIED IDEOGRAPH - ,0xF98B ,0x9D8D //CJK UNIFIED IDEOGRAPH - ,0xF98C ,0x9D8E //CJK UNIFIED IDEOGRAPH - ,0xF98D ,0x9D8F //CJK UNIFIED IDEOGRAPH - ,0xF98E ,0x9D90 //CJK UNIFIED IDEOGRAPH - ,0xF98F ,0x9D91 //CJK UNIFIED IDEOGRAPH - ,0xF990 ,0x9D92 //CJK UNIFIED IDEOGRAPH - ,0xF991 ,0x9D93 //CJK UNIFIED IDEOGRAPH - ,0xF992 ,0x9D94 //CJK UNIFIED IDEOGRAPH - ,0xF993 ,0x9D95 //CJK UNIFIED IDEOGRAPH - ,0xF994 ,0x9D96 //CJK UNIFIED IDEOGRAPH - ,0xF995 ,0x9D97 //CJK UNIFIED IDEOGRAPH - ,0xF996 ,0x9D98 //CJK UNIFIED IDEOGRAPH - ,0xF997 ,0x9D99 //CJK UNIFIED IDEOGRAPH - ,0xF998 ,0x9D9A //CJK UNIFIED IDEOGRAPH - ,0xF999 ,0x9D9B //CJK UNIFIED IDEOGRAPH - ,0xF99A ,0x9D9C //CJK UNIFIED IDEOGRAPH - ,0xF99B ,0x9D9D //CJK UNIFIED IDEOGRAPH - ,0xF99C ,0x9D9E //CJK UNIFIED IDEOGRAPH - ,0xF99D ,0x9D9F //CJK UNIFIED IDEOGRAPH - ,0xF99E ,0x9DA0 //CJK UNIFIED IDEOGRAPH - ,0xF99F ,0x9DA1 //CJK UNIFIED IDEOGRAPH - ,0xF9A0 ,0x9DA2 //CJK UNIFIED IDEOGRAPH - ,0xFA40 ,0x9DA3 //CJK UNIFIED IDEOGRAPH - ,0xFA41 ,0x9DA4 //CJK UNIFIED IDEOGRAPH - ,0xFA42 ,0x9DA5 //CJK UNIFIED IDEOGRAPH - ,0xFA43 ,0x9DA6 //CJK UNIFIED IDEOGRAPH - ,0xFA44 ,0x9DA7 //CJK UNIFIED IDEOGRAPH - ,0xFA45 ,0x9DA8 //CJK UNIFIED IDEOGRAPH - ,0xFA46 ,0x9DA9 //CJK UNIFIED IDEOGRAPH - ,0xFA47 ,0x9DAA //CJK UNIFIED IDEOGRAPH - ,0xFA48 ,0x9DAB //CJK UNIFIED IDEOGRAPH - ,0xFA49 ,0x9DAC //CJK UNIFIED IDEOGRAPH - ,0xFA4A ,0x9DAD //CJK UNIFIED IDEOGRAPH - ,0xFA4B ,0x9DAE //CJK UNIFIED IDEOGRAPH - ,0xFA4C ,0x9DAF //CJK UNIFIED IDEOGRAPH - ,0xFA4D ,0x9DB0 //CJK UNIFIED IDEOGRAPH - ,0xFA4E ,0x9DB1 //CJK UNIFIED IDEOGRAPH - ,0xFA4F ,0x9DB2 //CJK UNIFIED IDEOGRAPH - ,0xFA50 ,0x9DB3 //CJK UNIFIED IDEOGRAPH - ,0xFA51 ,0x9DB4 //CJK UNIFIED IDEOGRAPH - ,0xFA52 ,0x9DB5 //CJK UNIFIED IDEOGRAPH - ,0xFA53 ,0x9DB6 //CJK UNIFIED IDEOGRAPH - ,0xFA54 ,0x9DB7 //CJK UNIFIED IDEOGRAPH - ,0xFA55 ,0x9DB8 //CJK UNIFIED IDEOGRAPH - ,0xFA56 ,0x9DB9 //CJK UNIFIED IDEOGRAPH - ,0xFA57 ,0x9DBA //CJK UNIFIED IDEOGRAPH - ,0xFA58 ,0x9DBB //CJK UNIFIED IDEOGRAPH - ,0xFA59 ,0x9DBC //CJK UNIFIED IDEOGRAPH - ,0xFA5A ,0x9DBD //CJK UNIFIED IDEOGRAPH - ,0xFA5B ,0x9DBE //CJK UNIFIED IDEOGRAPH - ,0xFA5C ,0x9DBF //CJK UNIFIED IDEOGRAPH - ,0xFA5D ,0x9DC0 //CJK UNIFIED IDEOGRAPH - ,0xFA5E ,0x9DC1 //CJK UNIFIED IDEOGRAPH - ,0xFA5F ,0x9DC2 //CJK UNIFIED IDEOGRAPH - ,0xFA60 ,0x9DC3 //CJK UNIFIED IDEOGRAPH - ,0xFA61 ,0x9DC4 //CJK UNIFIED IDEOGRAPH - ,0xFA62 ,0x9DC5 //CJK UNIFIED IDEOGRAPH - ,0xFA63 ,0x9DC6 //CJK UNIFIED IDEOGRAPH - ,0xFA64 ,0x9DC7 //CJK UNIFIED IDEOGRAPH - ,0xFA65 ,0x9DC8 //CJK UNIFIED IDEOGRAPH - ,0xFA66 ,0x9DC9 //CJK UNIFIED IDEOGRAPH - ,0xFA67 ,0x9DCA //CJK UNIFIED IDEOGRAPH - ,0xFA68 ,0x9DCB //CJK UNIFIED IDEOGRAPH - ,0xFA69 ,0x9DCC //CJK UNIFIED IDEOGRAPH - ,0xFA6A ,0x9DCD //CJK UNIFIED IDEOGRAPH - ,0xFA6B ,0x9DCE //CJK UNIFIED IDEOGRAPH - ,0xFA6C ,0x9DCF //CJK UNIFIED IDEOGRAPH - ,0xFA6D ,0x9DD0 //CJK UNIFIED IDEOGRAPH - ,0xFA6E ,0x9DD1 //CJK UNIFIED IDEOGRAPH - ,0xFA6F ,0x9DD2 //CJK UNIFIED IDEOGRAPH - ,0xFA70 ,0x9DD3 //CJK UNIFIED IDEOGRAPH - ,0xFA71 ,0x9DD4 //CJK UNIFIED IDEOGRAPH - ,0xFA72 ,0x9DD5 //CJK UNIFIED IDEOGRAPH - ,0xFA73 ,0x9DD6 //CJK UNIFIED IDEOGRAPH - ,0xFA74 ,0x9DD7 //CJK UNIFIED IDEOGRAPH - ,0xFA75 ,0x9DD8 //CJK UNIFIED IDEOGRAPH - ,0xFA76 ,0x9DD9 //CJK UNIFIED IDEOGRAPH - ,0xFA77 ,0x9DDA //CJK UNIFIED IDEOGRAPH - ,0xFA78 ,0x9DDB //CJK UNIFIED IDEOGRAPH - ,0xFA79 ,0x9DDC //CJK UNIFIED IDEOGRAPH - ,0xFA7A ,0x9DDD //CJK UNIFIED IDEOGRAPH - ,0xFA7B ,0x9DDE //CJK UNIFIED IDEOGRAPH - ,0xFA7C ,0x9DDF //CJK UNIFIED IDEOGRAPH - ,0xFA7D ,0x9DE0 //CJK UNIFIED IDEOGRAPH - ,0xFA7E ,0x9DE1 //CJK UNIFIED IDEOGRAPH - ,0xFA80 ,0x9DE2 //CJK UNIFIED IDEOGRAPH - ,0xFA81 ,0x9DE3 //CJK UNIFIED IDEOGRAPH - ,0xFA82 ,0x9DE4 //CJK UNIFIED IDEOGRAPH - ,0xFA83 ,0x9DE5 //CJK UNIFIED IDEOGRAPH - ,0xFA84 ,0x9DE6 //CJK UNIFIED IDEOGRAPH - ,0xFA85 ,0x9DE7 //CJK UNIFIED IDEOGRAPH - ,0xFA86 ,0x9DE8 //CJK UNIFIED IDEOGRAPH - ,0xFA87 ,0x9DE9 //CJK UNIFIED IDEOGRAPH - ,0xFA88 ,0x9DEA //CJK UNIFIED IDEOGRAPH - ,0xFA89 ,0x9DEB //CJK UNIFIED IDEOGRAPH - ,0xFA8A ,0x9DEC //CJK UNIFIED IDEOGRAPH - ,0xFA8B ,0x9DED //CJK UNIFIED IDEOGRAPH - ,0xFA8C ,0x9DEE //CJK UNIFIED IDEOGRAPH - ,0xFA8D ,0x9DEF //CJK UNIFIED IDEOGRAPH - ,0xFA8E ,0x9DF0 //CJK UNIFIED IDEOGRAPH - ,0xFA8F ,0x9DF1 //CJK UNIFIED IDEOGRAPH - ,0xFA90 ,0x9DF2 //CJK UNIFIED IDEOGRAPH - ,0xFA91 ,0x9DF3 //CJK UNIFIED IDEOGRAPH - ,0xFA92 ,0x9DF4 //CJK UNIFIED IDEOGRAPH - ,0xFA93 ,0x9DF5 //CJK UNIFIED IDEOGRAPH - ,0xFA94 ,0x9DF6 //CJK UNIFIED IDEOGRAPH - ,0xFA95 ,0x9DF7 //CJK UNIFIED IDEOGRAPH - ,0xFA96 ,0x9DF8 //CJK UNIFIED IDEOGRAPH - ,0xFA97 ,0x9DF9 //CJK UNIFIED IDEOGRAPH - ,0xFA98 ,0x9DFA //CJK UNIFIED IDEOGRAPH - ,0xFA99 ,0x9DFB //CJK UNIFIED IDEOGRAPH - ,0xFA9A ,0x9DFC //CJK UNIFIED IDEOGRAPH - ,0xFA9B ,0x9DFD //CJK UNIFIED IDEOGRAPH - ,0xFA9C ,0x9DFE //CJK UNIFIED IDEOGRAPH - ,0xFA9D ,0x9DFF //CJK UNIFIED IDEOGRAPH - ,0xFA9E ,0x9E00 //CJK UNIFIED IDEOGRAPH - ,0xFA9F ,0x9E01 //CJK UNIFIED IDEOGRAPH - ,0xFAA0 ,0x9E02 //CJK UNIFIED IDEOGRAPH - ,0xFB40 ,0x9E03 //CJK UNIFIED IDEOGRAPH - ,0xFB41 ,0x9E04 //CJK UNIFIED IDEOGRAPH - ,0xFB42 ,0x9E05 //CJK UNIFIED IDEOGRAPH - ,0xFB43 ,0x9E06 //CJK UNIFIED IDEOGRAPH - ,0xFB44 ,0x9E07 //CJK UNIFIED IDEOGRAPH - ,0xFB45 ,0x9E08 //CJK UNIFIED IDEOGRAPH - ,0xFB46 ,0x9E09 //CJK UNIFIED IDEOGRAPH - ,0xFB47 ,0x9E0A //CJK UNIFIED IDEOGRAPH - ,0xFB48 ,0x9E0B //CJK UNIFIED IDEOGRAPH - ,0xFB49 ,0x9E0C //CJK UNIFIED IDEOGRAPH - ,0xFB4A ,0x9E0D //CJK UNIFIED IDEOGRAPH - ,0xFB4B ,0x9E0E //CJK UNIFIED IDEOGRAPH - ,0xFB4C ,0x9E0F //CJK UNIFIED IDEOGRAPH - ,0xFB4D ,0x9E10 //CJK UNIFIED IDEOGRAPH - ,0xFB4E ,0x9E11 //CJK UNIFIED IDEOGRAPH - ,0xFB4F ,0x9E12 //CJK UNIFIED IDEOGRAPH - ,0xFB50 ,0x9E13 //CJK UNIFIED IDEOGRAPH - ,0xFB51 ,0x9E14 //CJK UNIFIED IDEOGRAPH - ,0xFB52 ,0x9E15 //CJK UNIFIED IDEOGRAPH - ,0xFB53 ,0x9E16 //CJK UNIFIED IDEOGRAPH - ,0xFB54 ,0x9E17 //CJK UNIFIED IDEOGRAPH - ,0xFB55 ,0x9E18 //CJK UNIFIED IDEOGRAPH - ,0xFB56 ,0x9E19 //CJK UNIFIED IDEOGRAPH - ,0xFB57 ,0x9E1A //CJK UNIFIED IDEOGRAPH - ,0xFB58 ,0x9E1B //CJK UNIFIED IDEOGRAPH - ,0xFB59 ,0x9E1C //CJK UNIFIED IDEOGRAPH - ,0xFB5A ,0x9E1D //CJK UNIFIED IDEOGRAPH - ,0xFB5B ,0x9E1E //CJK UNIFIED IDEOGRAPH - ,0xFB5C ,0x9E24 //CJK UNIFIED IDEOGRAPH - ,0xFB5D ,0x9E27 //CJK UNIFIED IDEOGRAPH - ,0xFB5E ,0x9E2E //CJK UNIFIED IDEOGRAPH - ,0xFB5F ,0x9E30 //CJK UNIFIED IDEOGRAPH - ,0xFB60 ,0x9E34 //CJK UNIFIED IDEOGRAPH - ,0xFB61 ,0x9E3B //CJK UNIFIED IDEOGRAPH - ,0xFB62 ,0x9E3C //CJK UNIFIED IDEOGRAPH - ,0xFB63 ,0x9E40 //CJK UNIFIED IDEOGRAPH - ,0xFB64 ,0x9E4D //CJK UNIFIED IDEOGRAPH - ,0xFB65 ,0x9E50 //CJK UNIFIED IDEOGRAPH - ,0xFB66 ,0x9E52 //CJK UNIFIED IDEOGRAPH - ,0xFB67 ,0x9E53 //CJK UNIFIED IDEOGRAPH - ,0xFB68 ,0x9E54 //CJK UNIFIED IDEOGRAPH - ,0xFB69 ,0x9E56 //CJK UNIFIED IDEOGRAPH - ,0xFB6A ,0x9E59 //CJK UNIFIED IDEOGRAPH - ,0xFB6B ,0x9E5D //CJK UNIFIED IDEOGRAPH - ,0xFB6C ,0x9E5F //CJK UNIFIED IDEOGRAPH - ,0xFB6D ,0x9E60 //CJK UNIFIED IDEOGRAPH - ,0xFB6E ,0x9E61 //CJK UNIFIED IDEOGRAPH - ,0xFB6F ,0x9E62 //CJK UNIFIED IDEOGRAPH - ,0xFB70 ,0x9E65 //CJK UNIFIED IDEOGRAPH - ,0xFB71 ,0x9E6E //CJK UNIFIED IDEOGRAPH - ,0xFB72 ,0x9E6F //CJK UNIFIED IDEOGRAPH - ,0xFB73 ,0x9E72 //CJK UNIFIED IDEOGRAPH - ,0xFB74 ,0x9E74 //CJK UNIFIED IDEOGRAPH - ,0xFB75 ,0x9E75 //CJK UNIFIED IDEOGRAPH - ,0xFB76 ,0x9E76 //CJK UNIFIED IDEOGRAPH - ,0xFB77 ,0x9E77 //CJK UNIFIED IDEOGRAPH - ,0xFB78 ,0x9E78 //CJK UNIFIED IDEOGRAPH - ,0xFB79 ,0x9E79 //CJK UNIFIED IDEOGRAPH - ,0xFB7A ,0x9E7A //CJK UNIFIED IDEOGRAPH - ,0xFB7B ,0x9E7B //CJK UNIFIED IDEOGRAPH - ,0xFB7C ,0x9E7C //CJK UNIFIED IDEOGRAPH - ,0xFB7D ,0x9E7D //CJK UNIFIED IDEOGRAPH - ,0xFB7E ,0x9E80 //CJK UNIFIED IDEOGRAPH - ,0xFB80 ,0x9E81 //CJK UNIFIED IDEOGRAPH - ,0xFB81 ,0x9E83 //CJK UNIFIED IDEOGRAPH - ,0xFB82 ,0x9E84 //CJK UNIFIED IDEOGRAPH - ,0xFB83 ,0x9E85 //CJK UNIFIED IDEOGRAPH - ,0xFB84 ,0x9E86 //CJK UNIFIED IDEOGRAPH - ,0xFB85 ,0x9E89 //CJK UNIFIED IDEOGRAPH - ,0xFB86 ,0x9E8A //CJK UNIFIED IDEOGRAPH - ,0xFB87 ,0x9E8C //CJK UNIFIED IDEOGRAPH - ,0xFB88 ,0x9E8D //CJK UNIFIED IDEOGRAPH - ,0xFB89 ,0x9E8E //CJK UNIFIED IDEOGRAPH - ,0xFB8A ,0x9E8F //CJK UNIFIED IDEOGRAPH - ,0xFB8B ,0x9E90 //CJK UNIFIED IDEOGRAPH - ,0xFB8C ,0x9E91 //CJK UNIFIED IDEOGRAPH - ,0xFB8D ,0x9E94 //CJK UNIFIED IDEOGRAPH - ,0xFB8E ,0x9E95 //CJK UNIFIED IDEOGRAPH - ,0xFB8F ,0x9E96 //CJK UNIFIED IDEOGRAPH - ,0xFB90 ,0x9E97 //CJK UNIFIED IDEOGRAPH - ,0xFB91 ,0x9E98 //CJK UNIFIED IDEOGRAPH - ,0xFB92 ,0x9E99 //CJK UNIFIED IDEOGRAPH - ,0xFB93 ,0x9E9A //CJK UNIFIED IDEOGRAPH - ,0xFB94 ,0x9E9B //CJK UNIFIED IDEOGRAPH - ,0xFB95 ,0x9E9C //CJK UNIFIED IDEOGRAPH - ,0xFB96 ,0x9E9E //CJK UNIFIED IDEOGRAPH - ,0xFB97 ,0x9EA0 //CJK UNIFIED IDEOGRAPH - ,0xFB98 ,0x9EA1 //CJK UNIFIED IDEOGRAPH - ,0xFB99 ,0x9EA2 //CJK UNIFIED IDEOGRAPH - ,0xFB9A ,0x9EA3 //CJK UNIFIED IDEOGRAPH - ,0xFB9B ,0x9EA4 //CJK UNIFIED IDEOGRAPH - ,0xFB9C ,0x9EA5 //CJK UNIFIED IDEOGRAPH - ,0xFB9D ,0x9EA7 //CJK UNIFIED IDEOGRAPH - ,0xFB9E ,0x9EA8 //CJK UNIFIED IDEOGRAPH - ,0xFB9F ,0x9EA9 //CJK UNIFIED IDEOGRAPH - ,0xFBA0 ,0x9EAA //CJK UNIFIED IDEOGRAPH - ,0xFC40 ,0x9EAB //CJK UNIFIED IDEOGRAPH - ,0xFC41 ,0x9EAC //CJK UNIFIED IDEOGRAPH - ,0xFC42 ,0x9EAD //CJK UNIFIED IDEOGRAPH - ,0xFC43 ,0x9EAE //CJK UNIFIED IDEOGRAPH - ,0xFC44 ,0x9EAF //CJK UNIFIED IDEOGRAPH - ,0xFC45 ,0x9EB0 //CJK UNIFIED IDEOGRAPH - ,0xFC46 ,0x9EB1 //CJK UNIFIED IDEOGRAPH - ,0xFC47 ,0x9EB2 //CJK UNIFIED IDEOGRAPH - ,0xFC48 ,0x9EB3 //CJK UNIFIED IDEOGRAPH - ,0xFC49 ,0x9EB5 //CJK UNIFIED IDEOGRAPH - ,0xFC4A ,0x9EB6 //CJK UNIFIED IDEOGRAPH - ,0xFC4B ,0x9EB7 //CJK UNIFIED IDEOGRAPH - ,0xFC4C ,0x9EB9 //CJK UNIFIED IDEOGRAPH - ,0xFC4D ,0x9EBA //CJK UNIFIED IDEOGRAPH - ,0xFC4E ,0x9EBC //CJK UNIFIED IDEOGRAPH - ,0xFC4F ,0x9EBF //CJK UNIFIED IDEOGRAPH - ,0xFC50 ,0x9EC0 //CJK UNIFIED IDEOGRAPH - ,0xFC51 ,0x9EC1 //CJK UNIFIED IDEOGRAPH - ,0xFC52 ,0x9EC2 //CJK UNIFIED IDEOGRAPH - ,0xFC53 ,0x9EC3 //CJK UNIFIED IDEOGRAPH - ,0xFC54 ,0x9EC5 //CJK UNIFIED IDEOGRAPH - ,0xFC55 ,0x9EC6 //CJK UNIFIED IDEOGRAPH - ,0xFC56 ,0x9EC7 //CJK UNIFIED IDEOGRAPH - ,0xFC57 ,0x9EC8 //CJK UNIFIED IDEOGRAPH - ,0xFC58 ,0x9ECA //CJK UNIFIED IDEOGRAPH - ,0xFC59 ,0x9ECB //CJK UNIFIED IDEOGRAPH - ,0xFC5A ,0x9ECC //CJK UNIFIED IDEOGRAPH - ,0xFC5B ,0x9ED0 //CJK UNIFIED IDEOGRAPH - ,0xFC5C ,0x9ED2 //CJK UNIFIED IDEOGRAPH - ,0xFC5D ,0x9ED3 //CJK UNIFIED IDEOGRAPH - ,0xFC5E ,0x9ED5 //CJK UNIFIED IDEOGRAPH - ,0xFC5F ,0x9ED6 //CJK UNIFIED IDEOGRAPH - ,0xFC60 ,0x9ED7 //CJK UNIFIED IDEOGRAPH - ,0xFC61 ,0x9ED9 //CJK UNIFIED IDEOGRAPH - ,0xFC62 ,0x9EDA //CJK UNIFIED IDEOGRAPH - ,0xFC63 ,0x9EDE //CJK UNIFIED IDEOGRAPH - ,0xFC64 ,0x9EE1 //CJK UNIFIED IDEOGRAPH - ,0xFC65 ,0x9EE3 //CJK UNIFIED IDEOGRAPH - ,0xFC66 ,0x9EE4 //CJK UNIFIED IDEOGRAPH - ,0xFC67 ,0x9EE6 //CJK UNIFIED IDEOGRAPH - ,0xFC68 ,0x9EE8 //CJK UNIFIED IDEOGRAPH - ,0xFC69 ,0x9EEB //CJK UNIFIED IDEOGRAPH - ,0xFC6A ,0x9EEC //CJK UNIFIED IDEOGRAPH - ,0xFC6B ,0x9EED //CJK UNIFIED IDEOGRAPH - ,0xFC6C ,0x9EEE //CJK UNIFIED IDEOGRAPH - ,0xFC6D ,0x9EF0 //CJK UNIFIED IDEOGRAPH - ,0xFC6E ,0x9EF1 //CJK UNIFIED IDEOGRAPH - ,0xFC6F ,0x9EF2 //CJK UNIFIED IDEOGRAPH - ,0xFC70 ,0x9EF3 //CJK UNIFIED IDEOGRAPH - ,0xFC71 ,0x9EF4 //CJK UNIFIED IDEOGRAPH - ,0xFC72 ,0x9EF5 //CJK UNIFIED IDEOGRAPH - ,0xFC73 ,0x9EF6 //CJK UNIFIED IDEOGRAPH - ,0xFC74 ,0x9EF7 //CJK UNIFIED IDEOGRAPH - ,0xFC75 ,0x9EF8 //CJK UNIFIED IDEOGRAPH - ,0xFC76 ,0x9EFA //CJK UNIFIED IDEOGRAPH - ,0xFC77 ,0x9EFD //CJK UNIFIED IDEOGRAPH - ,0xFC78 ,0x9EFF //CJK UNIFIED IDEOGRAPH - ,0xFC79 ,0x9F00 //CJK UNIFIED IDEOGRAPH - ,0xFC7A ,0x9F01 //CJK UNIFIED IDEOGRAPH - ,0xFC7B ,0x9F02 //CJK UNIFIED IDEOGRAPH - ,0xFC7C ,0x9F03 //CJK UNIFIED IDEOGRAPH - ,0xFC7D ,0x9F04 //CJK UNIFIED IDEOGRAPH - ,0xFC7E ,0x9F05 //CJK UNIFIED IDEOGRAPH - ,0xFC80 ,0x9F06 //CJK UNIFIED IDEOGRAPH - ,0xFC81 ,0x9F07 //CJK UNIFIED IDEOGRAPH - ,0xFC82 ,0x9F08 //CJK UNIFIED IDEOGRAPH - ,0xFC83 ,0x9F09 //CJK UNIFIED IDEOGRAPH - ,0xFC84 ,0x9F0A //CJK UNIFIED IDEOGRAPH - ,0xFC85 ,0x9F0C //CJK UNIFIED IDEOGRAPH - ,0xFC86 ,0x9F0F //CJK UNIFIED IDEOGRAPH - ,0xFC87 ,0x9F11 //CJK UNIFIED IDEOGRAPH - ,0xFC88 ,0x9F12 //CJK UNIFIED IDEOGRAPH - ,0xFC89 ,0x9F14 //CJK UNIFIED IDEOGRAPH - ,0xFC8A ,0x9F15 //CJK UNIFIED IDEOGRAPH - ,0xFC8B ,0x9F16 //CJK UNIFIED IDEOGRAPH - ,0xFC8C ,0x9F18 //CJK UNIFIED IDEOGRAPH - ,0xFC8D ,0x9F1A //CJK UNIFIED IDEOGRAPH - ,0xFC8E ,0x9F1B //CJK UNIFIED IDEOGRAPH - ,0xFC8F ,0x9F1C //CJK UNIFIED IDEOGRAPH - ,0xFC90 ,0x9F1D //CJK UNIFIED IDEOGRAPH - ,0xFC91 ,0x9F1E //CJK UNIFIED IDEOGRAPH - ,0xFC92 ,0x9F1F //CJK UNIFIED IDEOGRAPH - ,0xFC93 ,0x9F21 //CJK UNIFIED IDEOGRAPH - ,0xFC94 ,0x9F23 //CJK UNIFIED IDEOGRAPH - ,0xFC95 ,0x9F24 //CJK UNIFIED IDEOGRAPH - ,0xFC96 ,0x9F25 //CJK UNIFIED IDEOGRAPH - ,0xFC97 ,0x9F26 //CJK UNIFIED IDEOGRAPH - ,0xFC98 ,0x9F27 //CJK UNIFIED IDEOGRAPH - ,0xFC99 ,0x9F28 //CJK UNIFIED IDEOGRAPH - ,0xFC9A ,0x9F29 //CJK UNIFIED IDEOGRAPH - ,0xFC9B ,0x9F2A //CJK UNIFIED IDEOGRAPH - ,0xFC9C ,0x9F2B //CJK UNIFIED IDEOGRAPH - ,0xFC9D ,0x9F2D //CJK UNIFIED IDEOGRAPH - ,0xFC9E ,0x9F2E //CJK UNIFIED IDEOGRAPH - ,0xFC9F ,0x9F30 //CJK UNIFIED IDEOGRAPH - ,0xFCA0 ,0x9F31 //CJK UNIFIED IDEOGRAPH - ,0xFD40 ,0x9F32 //CJK UNIFIED IDEOGRAPH - ,0xFD41 ,0x9F33 //CJK UNIFIED IDEOGRAPH - ,0xFD42 ,0x9F34 //CJK UNIFIED IDEOGRAPH - ,0xFD43 ,0x9F35 //CJK UNIFIED IDEOGRAPH - ,0xFD44 ,0x9F36 //CJK UNIFIED IDEOGRAPH - ,0xFD45 ,0x9F38 //CJK UNIFIED IDEOGRAPH - ,0xFD46 ,0x9F3A //CJK UNIFIED IDEOGRAPH - ,0xFD47 ,0x9F3C //CJK UNIFIED IDEOGRAPH - ,0xFD48 ,0x9F3F //CJK UNIFIED IDEOGRAPH - ,0xFD49 ,0x9F40 //CJK UNIFIED IDEOGRAPH - ,0xFD4A ,0x9F41 //CJK UNIFIED IDEOGRAPH - ,0xFD4B ,0x9F42 //CJK UNIFIED IDEOGRAPH - ,0xFD4C ,0x9F43 //CJK UNIFIED IDEOGRAPH - ,0xFD4D ,0x9F45 //CJK UNIFIED IDEOGRAPH - ,0xFD4E ,0x9F46 //CJK UNIFIED IDEOGRAPH - ,0xFD4F ,0x9F47 //CJK UNIFIED IDEOGRAPH - ,0xFD50 ,0x9F48 //CJK UNIFIED IDEOGRAPH - ,0xFD51 ,0x9F49 //CJK UNIFIED IDEOGRAPH - ,0xFD52 ,0x9F4A //CJK UNIFIED IDEOGRAPH - ,0xFD53 ,0x9F4B //CJK UNIFIED IDEOGRAPH - ,0xFD54 ,0x9F4C //CJK UNIFIED IDEOGRAPH - ,0xFD55 ,0x9F4D //CJK UNIFIED IDEOGRAPH - ,0xFD56 ,0x9F4E //CJK UNIFIED IDEOGRAPH - ,0xFD57 ,0x9F4F //CJK UNIFIED IDEOGRAPH - ,0xFD58 ,0x9F52 //CJK UNIFIED IDEOGRAPH - ,0xFD59 ,0x9F53 //CJK UNIFIED IDEOGRAPH - ,0xFD5A ,0x9F54 //CJK UNIFIED IDEOGRAPH - ,0xFD5B ,0x9F55 //CJK UNIFIED IDEOGRAPH - ,0xFD5C ,0x9F56 //CJK UNIFIED IDEOGRAPH - ,0xFD5D ,0x9F57 //CJK UNIFIED IDEOGRAPH - ,0xFD5E ,0x9F58 //CJK UNIFIED IDEOGRAPH - ,0xFD5F ,0x9F59 //CJK UNIFIED IDEOGRAPH - ,0xFD60 ,0x9F5A //CJK UNIFIED IDEOGRAPH - ,0xFD61 ,0x9F5B //CJK UNIFIED IDEOGRAPH - ,0xFD62 ,0x9F5C //CJK UNIFIED IDEOGRAPH - ,0xFD63 ,0x9F5D //CJK UNIFIED IDEOGRAPH - ,0xFD64 ,0x9F5E //CJK UNIFIED IDEOGRAPH - ,0xFD65 ,0x9F5F //CJK UNIFIED IDEOGRAPH - ,0xFD66 ,0x9F60 //CJK UNIFIED IDEOGRAPH - ,0xFD67 ,0x9F61 //CJK UNIFIED IDEOGRAPH - ,0xFD68 ,0x9F62 //CJK UNIFIED IDEOGRAPH - ,0xFD69 ,0x9F63 //CJK UNIFIED IDEOGRAPH - ,0xFD6A ,0x9F64 //CJK UNIFIED IDEOGRAPH - ,0xFD6B ,0x9F65 //CJK UNIFIED IDEOGRAPH - ,0xFD6C ,0x9F66 //CJK UNIFIED IDEOGRAPH - ,0xFD6D ,0x9F67 //CJK UNIFIED IDEOGRAPH - ,0xFD6E ,0x9F68 //CJK UNIFIED IDEOGRAPH - ,0xFD6F ,0x9F69 //CJK UNIFIED IDEOGRAPH - ,0xFD70 ,0x9F6A //CJK UNIFIED IDEOGRAPH - ,0xFD71 ,0x9F6B //CJK UNIFIED IDEOGRAPH - ,0xFD72 ,0x9F6C //CJK UNIFIED IDEOGRAPH - ,0xFD73 ,0x9F6D //CJK UNIFIED IDEOGRAPH - ,0xFD74 ,0x9F6E //CJK UNIFIED IDEOGRAPH - ,0xFD75 ,0x9F6F //CJK UNIFIED IDEOGRAPH - ,0xFD76 ,0x9F70 //CJK UNIFIED IDEOGRAPH - ,0xFD77 ,0x9F71 //CJK UNIFIED IDEOGRAPH - ,0xFD78 ,0x9F72 //CJK UNIFIED IDEOGRAPH - ,0xFD79 ,0x9F73 //CJK UNIFIED IDEOGRAPH - ,0xFD7A ,0x9F74 //CJK UNIFIED IDEOGRAPH - ,0xFD7B ,0x9F75 //CJK UNIFIED IDEOGRAPH - ,0xFD7C ,0x9F76 //CJK UNIFIED IDEOGRAPH - ,0xFD7D ,0x9F77 //CJK UNIFIED IDEOGRAPH - ,0xFD7E ,0x9F78 //CJK UNIFIED IDEOGRAPH - ,0xFD80 ,0x9F79 //CJK UNIFIED IDEOGRAPH - ,0xFD81 ,0x9F7A //CJK UNIFIED IDEOGRAPH - ,0xFD82 ,0x9F7B //CJK UNIFIED IDEOGRAPH - ,0xFD83 ,0x9F7C //CJK UNIFIED IDEOGRAPH - ,0xFD84 ,0x9F7D //CJK UNIFIED IDEOGRAPH - ,0xFD85 ,0x9F7E //CJK UNIFIED IDEOGRAPH - ,0xFD86 ,0x9F81 //CJK UNIFIED IDEOGRAPH - ,0xFD87 ,0x9F82 //CJK UNIFIED IDEOGRAPH - ,0xFD88 ,0x9F8D //CJK UNIFIED IDEOGRAPH - ,0xFD89 ,0x9F8E //CJK UNIFIED IDEOGRAPH - ,0xFD8A ,0x9F8F //CJK UNIFIED IDEOGRAPH - ,0xFD8B ,0x9F90 //CJK UNIFIED IDEOGRAPH - ,0xFD8C ,0x9F91 //CJK UNIFIED IDEOGRAPH - ,0xFD8D ,0x9F92 //CJK UNIFIED IDEOGRAPH - ,0xFD8E ,0x9F93 //CJK UNIFIED IDEOGRAPH - ,0xFD8F ,0x9F94 //CJK UNIFIED IDEOGRAPH - ,0xFD90 ,0x9F95 //CJK UNIFIED IDEOGRAPH - ,0xFD91 ,0x9F96 //CJK UNIFIED IDEOGRAPH - ,0xFD92 ,0x9F97 //CJK UNIFIED IDEOGRAPH - ,0xFD93 ,0x9F98 //CJK UNIFIED IDEOGRAPH - ,0xFD94 ,0x9F9C //CJK UNIFIED IDEOGRAPH - ,0xFD95 ,0x9F9D //CJK UNIFIED IDEOGRAPH - ,0xFD96 ,0x9F9E //CJK UNIFIED IDEOGRAPH - ,0xFD97 ,0x9FA1 //CJK UNIFIED IDEOGRAPH - ,0xFD98 ,0x9FA2 //CJK UNIFIED IDEOGRAPH - ,0xFD99 ,0x9FA3 //CJK UNIFIED IDEOGRAPH - ,0xFD9A ,0x9FA4 //CJK UNIFIED IDEOGRAPH - ,0xFD9B ,0x9FA5 //CJK UNIFIED IDEOGRAPH - ,0xFD9C ,0xF92C //CJK COMPATIBILITY IDEOGRAPH - ,0xFD9D ,0xF979 //CJK COMPATIBILITY IDEOGRAPH - ,0xFD9E ,0xF995 //CJK COMPATIBILITY IDEOGRAPH - ,0xFD9F ,0xF9E7 //CJK COMPATIBILITY IDEOGRAPH - ,0xFDA0 ,0xF9F1 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE40 ,0xFA0C //CJK COMPATIBILITY IDEOGRAPH - ,0xFE41 ,0xFA0D //CJK COMPATIBILITY IDEOGRAPH - ,0xFE42 ,0xFA0E //CJK COMPATIBILITY IDEOGRAPH - ,0xFE43 ,0xFA0F //CJK COMPATIBILITY IDEOGRAPH - ,0xFE44 ,0xFA11 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE45 ,0xFA13 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE46 ,0xFA14 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE47 ,0xFA18 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE48 ,0xFA1F //CJK COMPATIBILITY IDEOGRAPH - ,0xFE49 ,0xFA20 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE4A ,0xFA21 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE4B ,0xFA23 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE4C ,0xFA24 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE4D ,0xFA27 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE4E ,0xFA28 //CJK COMPATIBILITY IDEOGRAPH - ,0xFE4F ,0xFA29 //CJK COMPATIBILITY IDEOGRAPH - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp936, kCFStringEncodingDOSChineseSimplif); diff --git a/Foundation/NSString/Encoding/CP949.h b/Foundation/NSString/Encoding/CP949.h deleted file mode 100644 index 0f826048..00000000 --- a/Foundation/NSString/Encoding/CP949.h +++ /dev/null @@ -1,17312 +0,0 @@ -// clang-format off -// cp949 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp949[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x81 ,0xFFFF //DBCS LEAD BYTE - ,0x82 ,0xFFFF //DBCS LEAD BYTE - ,0x83 ,0xFFFF //DBCS LEAD BYTE - ,0x84 ,0xFFFF //DBCS LEAD BYTE - ,0x85 ,0xFFFF //DBCS LEAD BYTE - ,0x86 ,0xFFFF //DBCS LEAD BYTE - ,0x87 ,0xFFFF //DBCS LEAD BYTE - ,0x88 ,0xFFFF //DBCS LEAD BYTE - ,0x89 ,0xFFFF //DBCS LEAD BYTE - ,0x8A ,0xFFFF //DBCS LEAD BYTE - ,0x8B ,0xFFFF //DBCS LEAD BYTE - ,0x8C ,0xFFFF //DBCS LEAD BYTE - ,0x8D ,0xFFFF //DBCS LEAD BYTE - ,0x8E ,0xFFFF //DBCS LEAD BYTE - ,0x8F ,0xFFFF //DBCS LEAD BYTE - ,0x90 ,0xFFFF //DBCS LEAD BYTE - ,0x91 ,0xFFFF //DBCS LEAD BYTE - ,0x92 ,0xFFFF //DBCS LEAD BYTE - ,0x93 ,0xFFFF //DBCS LEAD BYTE - ,0x94 ,0xFFFF //DBCS LEAD BYTE - ,0x95 ,0xFFFF //DBCS LEAD BYTE - ,0x96 ,0xFFFF //DBCS LEAD BYTE - ,0x97 ,0xFFFF //DBCS LEAD BYTE - ,0x98 ,0xFFFF //DBCS LEAD BYTE - ,0x99 ,0xFFFF //DBCS LEAD BYTE - ,0x9A ,0xFFFF //DBCS LEAD BYTE - ,0x9B ,0xFFFF //DBCS LEAD BYTE - ,0x9C ,0xFFFF //DBCS LEAD BYTE - ,0x9D ,0xFFFF //DBCS LEAD BYTE - ,0x9E ,0xFFFF //DBCS LEAD BYTE - ,0x9F ,0xFFFF //DBCS LEAD BYTE - ,0xA0 ,0xFFFF //DBCS LEAD BYTE - ,0xA1 ,0xFFFF //DBCS LEAD BYTE - ,0xA2 ,0xFFFF //DBCS LEAD BYTE - ,0xA3 ,0xFFFF //DBCS LEAD BYTE - ,0xA4 ,0xFFFF //DBCS LEAD BYTE - ,0xA5 ,0xFFFF //DBCS LEAD BYTE - ,0xA6 ,0xFFFF //DBCS LEAD BYTE - ,0xA7 ,0xFFFF //DBCS LEAD BYTE - ,0xA8 ,0xFFFF //DBCS LEAD BYTE - ,0xA9 ,0xFFFF //DBCS LEAD BYTE - ,0xAA ,0xFFFF //DBCS LEAD BYTE - ,0xAB ,0xFFFF //DBCS LEAD BYTE - ,0xAC ,0xFFFF //DBCS LEAD BYTE - ,0xAD ,0xFFFF //DBCS LEAD BYTE - ,0xAE ,0xFFFF //DBCS LEAD BYTE - ,0xAF ,0xFFFF //DBCS LEAD BYTE - ,0xB0 ,0xFFFF //DBCS LEAD BYTE - ,0xB1 ,0xFFFF //DBCS LEAD BYTE - ,0xB2 ,0xFFFF //DBCS LEAD BYTE - ,0xB3 ,0xFFFF //DBCS LEAD BYTE - ,0xB4 ,0xFFFF //DBCS LEAD BYTE - ,0xB5 ,0xFFFF //DBCS LEAD BYTE - ,0xB6 ,0xFFFF //DBCS LEAD BYTE - ,0xB7 ,0xFFFF //DBCS LEAD BYTE - ,0xB8 ,0xFFFF //DBCS LEAD BYTE - ,0xB9 ,0xFFFF //DBCS LEAD BYTE - ,0xBA ,0xFFFF //DBCS LEAD BYTE - ,0xBB ,0xFFFF //DBCS LEAD BYTE - ,0xBC ,0xFFFF //DBCS LEAD BYTE - ,0xBD ,0xFFFF //DBCS LEAD BYTE - ,0xBE ,0xFFFF //DBCS LEAD BYTE - ,0xBF ,0xFFFF //DBCS LEAD BYTE - ,0xC0 ,0xFFFF //DBCS LEAD BYTE - ,0xC1 ,0xFFFF //DBCS LEAD BYTE - ,0xC2 ,0xFFFF //DBCS LEAD BYTE - ,0xC3 ,0xFFFF //DBCS LEAD BYTE - ,0xC4 ,0xFFFF //DBCS LEAD BYTE - ,0xC5 ,0xFFFF //DBCS LEAD BYTE - ,0xC6 ,0xFFFF //DBCS LEAD BYTE - ,0xC7 ,0xFFFF //DBCS LEAD BYTE - ,0xC8 ,0xFFFF //DBCS LEAD BYTE - ,0xC9 ,0xFFFF //DBCS LEAD BYTE - ,0xCA ,0xFFFF //DBCS LEAD BYTE - ,0xCB ,0xFFFF //DBCS LEAD BYTE - ,0xCC ,0xFFFF //DBCS LEAD BYTE - ,0xCD ,0xFFFF //DBCS LEAD BYTE - ,0xCE ,0xFFFF //DBCS LEAD BYTE - ,0xCF ,0xFFFF //DBCS LEAD BYTE - ,0xD0 ,0xFFFF //DBCS LEAD BYTE - ,0xD1 ,0xFFFF //DBCS LEAD BYTE - ,0xD2 ,0xFFFF //DBCS LEAD BYTE - ,0xD3 ,0xFFFF //DBCS LEAD BYTE - ,0xD4 ,0xFFFF //DBCS LEAD BYTE - ,0xD5 ,0xFFFF //DBCS LEAD BYTE - ,0xD6 ,0xFFFF //DBCS LEAD BYTE - ,0xD7 ,0xFFFF //DBCS LEAD BYTE - ,0xD8 ,0xFFFF //DBCS LEAD BYTE - ,0xD9 ,0xFFFF //DBCS LEAD BYTE - ,0xDA ,0xFFFF //DBCS LEAD BYTE - ,0xDB ,0xFFFF //DBCS LEAD BYTE - ,0xDC ,0xFFFF //DBCS LEAD BYTE - ,0xDD ,0xFFFF //DBCS LEAD BYTE - ,0xDE ,0xFFFF //DBCS LEAD BYTE - ,0xDF ,0xFFFF //DBCS LEAD BYTE - ,0xE0 ,0xFFFF //DBCS LEAD BYTE - ,0xE1 ,0xFFFF //DBCS LEAD BYTE - ,0xE2 ,0xFFFF //DBCS LEAD BYTE - ,0xE3 ,0xFFFF //DBCS LEAD BYTE - ,0xE4 ,0xFFFF //DBCS LEAD BYTE - ,0xE5 ,0xFFFF //DBCS LEAD BYTE - ,0xE6 ,0xFFFF //DBCS LEAD BYTE - ,0xE7 ,0xFFFF //DBCS LEAD BYTE - ,0xE8 ,0xFFFF //DBCS LEAD BYTE - ,0xE9 ,0xFFFF //DBCS LEAD BYTE - ,0xEA ,0xFFFF //DBCS LEAD BYTE - ,0xEB ,0xFFFF //DBCS LEAD BYTE - ,0xEC ,0xFFFF //DBCS LEAD BYTE - ,0xED ,0xFFFF //DBCS LEAD BYTE - ,0xEE ,0xFFFF //DBCS LEAD BYTE - ,0xEF ,0xFFFF //DBCS LEAD BYTE - ,0xF0 ,0xFFFF //DBCS LEAD BYTE - ,0xF1 ,0xFFFF //DBCS LEAD BYTE - ,0xF2 ,0xFFFF //DBCS LEAD BYTE - ,0xF3 ,0xFFFF //DBCS LEAD BYTE - ,0xF4 ,0xFFFF //DBCS LEAD BYTE - ,0xF5 ,0xFFFF //DBCS LEAD BYTE - ,0xF6 ,0xFFFF //DBCS LEAD BYTE - ,0xF7 ,0xFFFF //DBCS LEAD BYTE - ,0xF8 ,0xFFFF //DBCS LEAD BYTE - ,0xF9 ,0xFFFF //DBCS LEAD BYTE - ,0xFA ,0xFFFF //DBCS LEAD BYTE - ,0xFB ,0xFFFF //DBCS LEAD BYTE - ,0xFC ,0xFFFF //DBCS LEAD BYTE - ,0xFD ,0xFFFF //DBCS LEAD BYTE - ,0xFE ,0xFFFF //DBCS LEAD BYTE - ,0x8141 ,0xAC02 //HANGUL SYLLABLE KIYEOK A SSANGKIYEOK - ,0x8142 ,0xAC03 //HANGUL SYLLABLE KIYEOK A KIYEOKSIOS - ,0x8143 ,0xAC05 //HANGUL SYLLABLE KIYEOK A NIEUNCIEUC - ,0x8144 ,0xAC06 //HANGUL SYLLABLE KIYEOK A NIEUNHIEUH - ,0x8145 ,0xAC0B //HANGUL SYLLABLE KIYEOK A RIEULPIEUP - ,0x8146 ,0xAC0C //HANGUL SYLLABLE KIYEOK A RIEULSIOS - ,0x8147 ,0xAC0D //HANGUL SYLLABLE KIYEOK A RIEULTHIEUTH - ,0x8148 ,0xAC0E //HANGUL SYLLABLE KIYEOK A RIEULPHIEUPH - ,0x8149 ,0xAC0F //HANGUL SYLLABLE KIYEOK A RIEULHIEUH - ,0x814A ,0xAC18 //HANGUL SYLLABLE KIYEOK A KHIEUKH - ,0x814B ,0xAC1E //HANGUL SYLLABLE KIYEOK AE SSANGKIYEOK - ,0x814C ,0xAC1F //HANGUL SYLLABLE KIYEOK AE KIYEOKSIOS - ,0x814D ,0xAC21 //HANGUL SYLLABLE KIYEOK AE NIEUNCIEUC - ,0x814E ,0xAC22 //HANGUL SYLLABLE KIYEOK AE NIEUNHIEUH - ,0x814F ,0xAC23 //HANGUL SYLLABLE KIYEOK AE TIKEUT - ,0x8150 ,0xAC25 //HANGUL SYLLABLE KIYEOK AE RIEULKIYEOK - ,0x8151 ,0xAC26 //HANGUL SYLLABLE KIYEOK AE RIEULMIEUM - ,0x8152 ,0xAC27 //HANGUL SYLLABLE KIYEOK AE RIEULPIEUP - ,0x8153 ,0xAC28 //HANGUL SYLLABLE KIYEOK AE RIEULSIOS - ,0x8154 ,0xAC29 //HANGUL SYLLABLE KIYEOK AE RIEULTHIEUTH - ,0x8155 ,0xAC2A //HANGUL SYLLABLE KIYEOK AE RIEULPHIEUPH - ,0x8156 ,0xAC2B //HANGUL SYLLABLE KIYEOK AE RIEULHIEUH - ,0x8157 ,0xAC2E //HANGUL SYLLABLE KIYEOK AE PIEUPSIOS - ,0x8158 ,0xAC32 //HANGUL SYLLABLE KIYEOK AE CIEUC - ,0x8159 ,0xAC33 //HANGUL SYLLABLE KIYEOK AE CHIEUCH - ,0x815A ,0xAC34 //HANGUL SYLLABLE KIYEOK AE KHIEUKH - ,0x8161 ,0xAC35 //HANGUL SYLLABLE KIYEOK AE THIEUTH - ,0x8162 ,0xAC36 //HANGUL SYLLABLE KIYEOK AE PHIEUPH - ,0x8163 ,0xAC37 //HANGUL SYLLABLE KIYEOK AE HIEUH - ,0x8164 ,0xAC3A //HANGUL SYLLABLE KIYEOK YA SSANGKIYEOK - ,0x8165 ,0xAC3B //HANGUL SYLLABLE KIYEOK YA KIYEOKSIOS - ,0x8166 ,0xAC3D //HANGUL SYLLABLE KIYEOK YA NIEUNCIEUC - ,0x8167 ,0xAC3E //HANGUL SYLLABLE KIYEOK YA NIEUNHIEUH - ,0x8168 ,0xAC3F //HANGUL SYLLABLE KIYEOK YA TIKEUT - ,0x8169 ,0xAC41 //HANGUL SYLLABLE KIYEOK YA RIEULKIYEOK - ,0x816A ,0xAC42 //HANGUL SYLLABLE KIYEOK YA RIEULMIEUM - ,0x816B ,0xAC43 //HANGUL SYLLABLE KIYEOK YA RIEULPIEUP - ,0x816C ,0xAC44 //HANGUL SYLLABLE KIYEOK YA RIEULSIOS - ,0x816D ,0xAC45 //HANGUL SYLLABLE KIYEOK YA RIEULTHIEUTH - ,0x816E ,0xAC46 //HANGUL SYLLABLE KIYEOK YA RIEULPHIEUPH - ,0x816F ,0xAC47 //HANGUL SYLLABLE KIYEOK YA RIEULHIEUH - ,0x8170 ,0xAC48 //HANGUL SYLLABLE KIYEOK YA MIEUM - ,0x8171 ,0xAC49 //HANGUL SYLLABLE KIYEOK YA PIEUP - ,0x8172 ,0xAC4A //HANGUL SYLLABLE KIYEOK YA PIEUPSIOS - ,0x8173 ,0xAC4C //HANGUL SYLLABLE KIYEOK YA SSANGSIOS - ,0x8174 ,0xAC4E //HANGUL SYLLABLE KIYEOK YA CIEUC - ,0x8175 ,0xAC4F //HANGUL SYLLABLE KIYEOK YA CHIEUCH - ,0x8176 ,0xAC50 //HANGUL SYLLABLE KIYEOK YA KHIEUKH - ,0x8177 ,0xAC51 //HANGUL SYLLABLE KIYEOK YA THIEUTH - ,0x8178 ,0xAC52 //HANGUL SYLLABLE KIYEOK YA PHIEUPH - ,0x8179 ,0xAC53 //HANGUL SYLLABLE KIYEOK YA HIEUH - ,0x817A ,0xAC55 //HANGUL SYLLABLE KIYEOK YAE KIYEOK - ,0x8181 ,0xAC56 //HANGUL SYLLABLE KIYEOK YAE SSANGKIYEOK - ,0x8182 ,0xAC57 //HANGUL SYLLABLE KIYEOK YAE KIYEOKSIOS - ,0x8183 ,0xAC59 //HANGUL SYLLABLE KIYEOK YAE NIEUNCIEUC - ,0x8184 ,0xAC5A //HANGUL SYLLABLE KIYEOK YAE NIEUNHIEUH - ,0x8185 ,0xAC5B //HANGUL SYLLABLE KIYEOK YAE TIKEUT - ,0x8186 ,0xAC5D //HANGUL SYLLABLE KIYEOK YAE RIEULKIYEOK - ,0x8187 ,0xAC5E //HANGUL SYLLABLE KIYEOK YAE RIEULMIEUM - ,0x8188 ,0xAC5F //HANGUL SYLLABLE KIYEOK YAE RIEULPIEUP - ,0x8189 ,0xAC60 //HANGUL SYLLABLE KIYEOK YAE RIEULSIOS - ,0x818A ,0xAC61 //HANGUL SYLLABLE KIYEOK YAE RIEULTHIEUTH - ,0x818B ,0xAC62 //HANGUL SYLLABLE KIYEOK YAE RIEULPHIEUPH - ,0x818C ,0xAC63 //HANGUL SYLLABLE KIYEOK YAE RIEULHIEUH - ,0x818D ,0xAC64 //HANGUL SYLLABLE KIYEOK YAE MIEUM - ,0x818E ,0xAC65 //HANGUL SYLLABLE KIYEOK YAE PIEUP - ,0x818F ,0xAC66 //HANGUL SYLLABLE KIYEOK YAE PIEUPSIOS - ,0x8190 ,0xAC67 //HANGUL SYLLABLE KIYEOK YAE SIOS - ,0x8191 ,0xAC68 //HANGUL SYLLABLE KIYEOK YAE SSANGSIOS - ,0x8192 ,0xAC69 //HANGUL SYLLABLE KIYEOK YAE IEUNG - ,0x8193 ,0xAC6A //HANGUL SYLLABLE KIYEOK YAE CIEUC - ,0x8194 ,0xAC6B //HANGUL SYLLABLE KIYEOK YAE CHIEUCH - ,0x8195 ,0xAC6C //HANGUL SYLLABLE KIYEOK YAE KHIEUKH - ,0x8196 ,0xAC6D //HANGUL SYLLABLE KIYEOK YAE THIEUTH - ,0x8197 ,0xAC6E //HANGUL SYLLABLE KIYEOK YAE PHIEUPH - ,0x8198 ,0xAC6F //HANGUL SYLLABLE KIYEOK YAE HIEUH - ,0x8199 ,0xAC72 //HANGUL SYLLABLE KIYEOK EO SSANGKIYEOK - ,0x819A ,0xAC73 //HANGUL SYLLABLE KIYEOK EO KIYEOKSIOS - ,0x819B ,0xAC75 //HANGUL SYLLABLE KIYEOK EO NIEUNCIEUC - ,0x819C ,0xAC76 //HANGUL SYLLABLE KIYEOK EO NIEUNHIEUH - ,0x819D ,0xAC79 //HANGUL SYLLABLE KIYEOK EO RIEULKIYEOK - ,0x819E ,0xAC7B //HANGUL SYLLABLE KIYEOK EO RIEULPIEUP - ,0x819F ,0xAC7C //HANGUL SYLLABLE KIYEOK EO RIEULSIOS - ,0x81A0 ,0xAC7D //HANGUL SYLLABLE KIYEOK EO RIEULTHIEUTH - ,0x81A1 ,0xAC7E //HANGUL SYLLABLE KIYEOK EO RIEULPHIEUPH - ,0x81A2 ,0xAC7F //HANGUL SYLLABLE KIYEOK EO RIEULHIEUH - ,0x81A3 ,0xAC82 //HANGUL SYLLABLE KIYEOK EO PIEUPSIOS - ,0x81A4 ,0xAC87 //HANGUL SYLLABLE KIYEOK EO CHIEUCH - ,0x81A5 ,0xAC88 //HANGUL SYLLABLE KIYEOK EO KHIEUKH - ,0x81A6 ,0xAC8D //HANGUL SYLLABLE KIYEOK E KIYEOK - ,0x81A7 ,0xAC8E //HANGUL SYLLABLE KIYEOK E SSANGKIYEOK - ,0x81A8 ,0xAC8F //HANGUL SYLLABLE KIYEOK E KIYEOKSIOS - ,0x81A9 ,0xAC91 //HANGUL SYLLABLE KIYEOK E NIEUNCIEUC - ,0x81AA ,0xAC92 //HANGUL SYLLABLE KIYEOK E NIEUNHIEUH - ,0x81AB ,0xAC93 //HANGUL SYLLABLE KIYEOK E TIKEUT - ,0x81AC ,0xAC95 //HANGUL SYLLABLE KIYEOK E RIEULKIYEOK - ,0x81AD ,0xAC96 //HANGUL SYLLABLE KIYEOK E RIEULMIEUM - ,0x81AE ,0xAC97 //HANGUL SYLLABLE KIYEOK E RIEULPIEUP - ,0x81AF ,0xAC98 //HANGUL SYLLABLE KIYEOK E RIEULSIOS - ,0x81B0 ,0xAC99 //HANGUL SYLLABLE KIYEOK E RIEULTHIEUTH - ,0x81B1 ,0xAC9A //HANGUL SYLLABLE KIYEOK E RIEULPHIEUPH - ,0x81B2 ,0xAC9B //HANGUL SYLLABLE KIYEOK E RIEULHIEUH - ,0x81B3 ,0xAC9E //HANGUL SYLLABLE KIYEOK E PIEUPSIOS - ,0x81B4 ,0xACA2 //HANGUL SYLLABLE KIYEOK E CIEUC - ,0x81B5 ,0xACA3 //HANGUL SYLLABLE KIYEOK E CHIEUCH - ,0x81B6 ,0xACA4 //HANGUL SYLLABLE KIYEOK E KHIEUKH - ,0x81B7 ,0xACA5 //HANGUL SYLLABLE KIYEOK E THIEUTH - ,0x81B8 ,0xACA6 //HANGUL SYLLABLE KIYEOK E PHIEUPH - ,0x81B9 ,0xACA7 //HANGUL SYLLABLE KIYEOK E HIEUH - ,0x81BA ,0xACAB //HANGUL SYLLABLE KIYEOK YEO KIYEOKSIOS - ,0x81BB ,0xACAD //HANGUL SYLLABLE KIYEOK YEO NIEUNCIEUC - ,0x81BC ,0xACAE //HANGUL SYLLABLE KIYEOK YEO NIEUNHIEUH - ,0x81BD ,0xACB1 //HANGUL SYLLABLE KIYEOK YEO RIEULKIYEOK - ,0x81BE ,0xACB2 //HANGUL SYLLABLE KIYEOK YEO RIEULMIEUM - ,0x81BF ,0xACB3 //HANGUL SYLLABLE KIYEOK YEO RIEULPIEUP - ,0x81C0 ,0xACB4 //HANGUL SYLLABLE KIYEOK YEO RIEULSIOS - ,0x81C1 ,0xACB5 //HANGUL SYLLABLE KIYEOK YEO RIEULTHIEUTH - ,0x81C2 ,0xACB6 //HANGUL SYLLABLE KIYEOK YEO RIEULPHIEUPH - ,0x81C3 ,0xACB7 //HANGUL SYLLABLE KIYEOK YEO RIEULHIEUH - ,0x81C4 ,0xACBA //HANGUL SYLLABLE KIYEOK YEO PIEUPSIOS - ,0x81C5 ,0xACBE //HANGUL SYLLABLE KIYEOK YEO CIEUC - ,0x81C6 ,0xACBF //HANGUL SYLLABLE KIYEOK YEO CHIEUCH - ,0x81C7 ,0xACC0 //HANGUL SYLLABLE KIYEOK YEO KHIEUKH - ,0x81C8 ,0xACC2 //HANGUL SYLLABLE KIYEOK YEO PHIEUPH - ,0x81C9 ,0xACC3 //HANGUL SYLLABLE KIYEOK YEO HIEUH - ,0x81CA ,0xACC5 //HANGUL SYLLABLE KIYEOK YE KIYEOK - ,0x81CB ,0xACC6 //HANGUL SYLLABLE KIYEOK YE SSANGKIYEOK - ,0x81CC ,0xACC7 //HANGUL SYLLABLE KIYEOK YE KIYEOKSIOS - ,0x81CD ,0xACC9 //HANGUL SYLLABLE KIYEOK YE NIEUNCIEUC - ,0x81CE ,0xACCA //HANGUL SYLLABLE KIYEOK YE NIEUNHIEUH - ,0x81CF ,0xACCB //HANGUL SYLLABLE KIYEOK YE TIKEUT - ,0x81D0 ,0xACCD //HANGUL SYLLABLE KIYEOK YE RIEULKIYEOK - ,0x81D1 ,0xACCE //HANGUL SYLLABLE KIYEOK YE RIEULMIEUM - ,0x81D2 ,0xACCF //HANGUL SYLLABLE KIYEOK YE RIEULPIEUP - ,0x81D3 ,0xACD0 //HANGUL SYLLABLE KIYEOK YE RIEULSIOS - ,0x81D4 ,0xACD1 //HANGUL SYLLABLE KIYEOK YE RIEULTHIEUTH - ,0x81D5 ,0xACD2 //HANGUL SYLLABLE KIYEOK YE RIEULPHIEUPH - ,0x81D6 ,0xACD3 //HANGUL SYLLABLE KIYEOK YE RIEULHIEUH - ,0x81D7 ,0xACD4 //HANGUL SYLLABLE KIYEOK YE MIEUM - ,0x81D8 ,0xACD6 //HANGUL SYLLABLE KIYEOK YE PIEUPSIOS - ,0x81D9 ,0xACD8 //HANGUL SYLLABLE KIYEOK YE SSANGSIOS - ,0x81DA ,0xACD9 //HANGUL SYLLABLE KIYEOK YE IEUNG - ,0x81DB ,0xACDA //HANGUL SYLLABLE KIYEOK YE CIEUC - ,0x81DC ,0xACDB //HANGUL SYLLABLE KIYEOK YE CHIEUCH - ,0x81DD ,0xACDC //HANGUL SYLLABLE KIYEOK YE KHIEUKH - ,0x81DE ,0xACDD //HANGUL SYLLABLE KIYEOK YE THIEUTH - ,0x81DF ,0xACDE //HANGUL SYLLABLE KIYEOK YE PHIEUPH - ,0x81E0 ,0xACDF //HANGUL SYLLABLE KIYEOK YE HIEUH - ,0x81E1 ,0xACE2 //HANGUL SYLLABLE KIYEOK O SSANGKIYEOK - ,0x81E2 ,0xACE3 //HANGUL SYLLABLE KIYEOK O KIYEOKSIOS - ,0x81E3 ,0xACE5 //HANGUL SYLLABLE KIYEOK O NIEUNCIEUC - ,0x81E4 ,0xACE6 //HANGUL SYLLABLE KIYEOK O NIEUNHIEUH - ,0x81E5 ,0xACE9 //HANGUL SYLLABLE KIYEOK O RIEULKIYEOK - ,0x81E6 ,0xACEB //HANGUL SYLLABLE KIYEOK O RIEULPIEUP - ,0x81E7 ,0xACED //HANGUL SYLLABLE KIYEOK O RIEULTHIEUTH - ,0x81E8 ,0xACEE //HANGUL SYLLABLE KIYEOK O RIEULPHIEUPH - ,0x81E9 ,0xACF2 //HANGUL SYLLABLE KIYEOK O PIEUPSIOS - ,0x81EA ,0xACF4 //HANGUL SYLLABLE KIYEOK O SSANGSIOS - ,0x81EB ,0xACF7 //HANGUL SYLLABLE KIYEOK O CHIEUCH - ,0x81EC ,0xACF8 //HANGUL SYLLABLE KIYEOK O KHIEUKH - ,0x81ED ,0xACF9 //HANGUL SYLLABLE KIYEOK O THIEUTH - ,0x81EE ,0xACFA //HANGUL SYLLABLE KIYEOK O PHIEUPH - ,0x81EF ,0xACFB //HANGUL SYLLABLE KIYEOK O HIEUH - ,0x81F0 ,0xACFE //HANGUL SYLLABLE KIYEOK WA SSANGKIYEOK - ,0x81F1 ,0xACFF //HANGUL SYLLABLE KIYEOK WA KIYEOKSIOS - ,0x81F2 ,0xAD01 //HANGUL SYLLABLE KIYEOK WA NIEUNCIEUC - ,0x81F3 ,0xAD02 //HANGUL SYLLABLE KIYEOK WA NIEUNHIEUH - ,0x81F4 ,0xAD03 //HANGUL SYLLABLE KIYEOK WA TIKEUT - ,0x81F5 ,0xAD05 //HANGUL SYLLABLE KIYEOK WA RIEULKIYEOK - ,0x81F6 ,0xAD07 //HANGUL SYLLABLE KIYEOK WA RIEULPIEUP - ,0x81F7 ,0xAD08 //HANGUL SYLLABLE KIYEOK WA RIEULSIOS - ,0x81F8 ,0xAD09 //HANGUL SYLLABLE KIYEOK WA RIEULTHIEUTH - ,0x81F9 ,0xAD0A //HANGUL SYLLABLE KIYEOK WA RIEULPHIEUPH - ,0x81FA ,0xAD0B //HANGUL SYLLABLE KIYEOK WA RIEULHIEUH - ,0x81FB ,0xAD0E //HANGUL SYLLABLE KIYEOK WA PIEUPSIOS - ,0x81FC ,0xAD10 //HANGUL SYLLABLE KIYEOK WA SSANGSIOS - ,0x81FD ,0xAD12 //HANGUL SYLLABLE KIYEOK WA CIEUC - ,0x81FE ,0xAD13 //HANGUL SYLLABLE KIYEOK WA CHIEUCH - ,0x8241 ,0xAD14 //HANGUL SYLLABLE KIYEOK WA KHIEUKH - ,0x8242 ,0xAD15 //HANGUL SYLLABLE KIYEOK WA THIEUTH - ,0x8243 ,0xAD16 //HANGUL SYLLABLE KIYEOK WA PHIEUPH - ,0x8244 ,0xAD17 //HANGUL SYLLABLE KIYEOK WA HIEUH - ,0x8245 ,0xAD19 //HANGUL SYLLABLE KIYEOK WAE KIYEOK - ,0x8246 ,0xAD1A //HANGUL SYLLABLE KIYEOK WAE SSANGKIYEOK - ,0x8247 ,0xAD1B //HANGUL SYLLABLE KIYEOK WAE KIYEOKSIOS - ,0x8248 ,0xAD1D //HANGUL SYLLABLE KIYEOK WAE NIEUNCIEUC - ,0x8249 ,0xAD1E //HANGUL SYLLABLE KIYEOK WAE NIEUNHIEUH - ,0x824A ,0xAD1F //HANGUL SYLLABLE KIYEOK WAE TIKEUT - ,0x824B ,0xAD21 //HANGUL SYLLABLE KIYEOK WAE RIEULKIYEOK - ,0x824C ,0xAD22 //HANGUL SYLLABLE KIYEOK WAE RIEULMIEUM - ,0x824D ,0xAD23 //HANGUL SYLLABLE KIYEOK WAE RIEULPIEUP - ,0x824E ,0xAD24 //HANGUL SYLLABLE KIYEOK WAE RIEULSIOS - ,0x824F ,0xAD25 //HANGUL SYLLABLE KIYEOK WAE RIEULTHIEUTH - ,0x8250 ,0xAD26 //HANGUL SYLLABLE KIYEOK WAE RIEULPHIEUPH - ,0x8251 ,0xAD27 //HANGUL SYLLABLE KIYEOK WAE RIEULHIEUH - ,0x8252 ,0xAD28 //HANGUL SYLLABLE KIYEOK WAE MIEUM - ,0x8253 ,0xAD2A //HANGUL SYLLABLE KIYEOK WAE PIEUPSIOS - ,0x8254 ,0xAD2B //HANGUL SYLLABLE KIYEOK WAE SIOS - ,0x8255 ,0xAD2E //HANGUL SYLLABLE KIYEOK WAE CIEUC - ,0x8256 ,0xAD2F //HANGUL SYLLABLE KIYEOK WAE CHIEUCH - ,0x8257 ,0xAD30 //HANGUL SYLLABLE KIYEOK WAE KHIEUKH - ,0x8258 ,0xAD31 //HANGUL SYLLABLE KIYEOK WAE THIEUTH - ,0x8259 ,0xAD32 //HANGUL SYLLABLE KIYEOK WAE PHIEUPH - ,0x825A ,0xAD33 //HANGUL SYLLABLE KIYEOK WAE HIEUH - ,0x8261 ,0xAD36 //HANGUL SYLLABLE KIYEOK OE SSANGKIYEOK - ,0x8262 ,0xAD37 //HANGUL SYLLABLE KIYEOK OE KIYEOKSIOS - ,0x8263 ,0xAD39 //HANGUL SYLLABLE KIYEOK OE NIEUNCIEUC - ,0x8264 ,0xAD3A //HANGUL SYLLABLE KIYEOK OE NIEUNHIEUH - ,0x8265 ,0xAD3B //HANGUL SYLLABLE KIYEOK OE TIKEUT - ,0x8266 ,0xAD3D //HANGUL SYLLABLE KIYEOK OE RIEULKIYEOK - ,0x8267 ,0xAD3E //HANGUL SYLLABLE KIYEOK OE RIEULMIEUM - ,0x8268 ,0xAD3F //HANGUL SYLLABLE KIYEOK OE RIEULPIEUP - ,0x8269 ,0xAD40 //HANGUL SYLLABLE KIYEOK OE RIEULSIOS - ,0x826A ,0xAD41 //HANGUL SYLLABLE KIYEOK OE RIEULTHIEUTH - ,0x826B ,0xAD42 //HANGUL SYLLABLE KIYEOK OE RIEULPHIEUPH - ,0x826C ,0xAD43 //HANGUL SYLLABLE KIYEOK OE RIEULHIEUH - ,0x826D ,0xAD46 //HANGUL SYLLABLE KIYEOK OE PIEUPSIOS - ,0x826E ,0xAD48 //HANGUL SYLLABLE KIYEOK OE SSANGSIOS - ,0x826F ,0xAD4A //HANGUL SYLLABLE KIYEOK OE CIEUC - ,0x8270 ,0xAD4B //HANGUL SYLLABLE KIYEOK OE CHIEUCH - ,0x8271 ,0xAD4C //HANGUL SYLLABLE KIYEOK OE KHIEUKH - ,0x8272 ,0xAD4D //HANGUL SYLLABLE KIYEOK OE THIEUTH - ,0x8273 ,0xAD4E //HANGUL SYLLABLE KIYEOK OE PHIEUPH - ,0x8274 ,0xAD4F //HANGUL SYLLABLE KIYEOK OE HIEUH - ,0x8275 ,0xAD51 //HANGUL SYLLABLE KIYEOK YO KIYEOK - ,0x8276 ,0xAD52 //HANGUL SYLLABLE KIYEOK YO SSANGKIYEOK - ,0x8277 ,0xAD53 //HANGUL SYLLABLE KIYEOK YO KIYEOKSIOS - ,0x8278 ,0xAD55 //HANGUL SYLLABLE KIYEOK YO NIEUNCIEUC - ,0x8279 ,0xAD56 //HANGUL SYLLABLE KIYEOK YO NIEUNHIEUH - ,0x827A ,0xAD57 //HANGUL SYLLABLE KIYEOK YO TIKEUT - ,0x8281 ,0xAD59 //HANGUL SYLLABLE KIYEOK YO RIEULKIYEOK - ,0x8282 ,0xAD5A //HANGUL SYLLABLE KIYEOK YO RIEULMIEUM - ,0x8283 ,0xAD5B //HANGUL SYLLABLE KIYEOK YO RIEULPIEUP - ,0x8284 ,0xAD5C //HANGUL SYLLABLE KIYEOK YO RIEULSIOS - ,0x8285 ,0xAD5D //HANGUL SYLLABLE KIYEOK YO RIEULTHIEUTH - ,0x8286 ,0xAD5E //HANGUL SYLLABLE KIYEOK YO RIEULPHIEUPH - ,0x8287 ,0xAD5F //HANGUL SYLLABLE KIYEOK YO RIEULHIEUH - ,0x8288 ,0xAD60 //HANGUL SYLLABLE KIYEOK YO MIEUM - ,0x8289 ,0xAD62 //HANGUL SYLLABLE KIYEOK YO PIEUPSIOS - ,0x828A ,0xAD64 //HANGUL SYLLABLE KIYEOK YO SSANGSIOS - ,0x828B ,0xAD65 //HANGUL SYLLABLE KIYEOK YO IEUNG - ,0x828C ,0xAD66 //HANGUL SYLLABLE KIYEOK YO CIEUC - ,0x828D ,0xAD67 //HANGUL SYLLABLE KIYEOK YO CHIEUCH - ,0x828E ,0xAD68 //HANGUL SYLLABLE KIYEOK YO KHIEUKH - ,0x828F ,0xAD69 //HANGUL SYLLABLE KIYEOK YO THIEUTH - ,0x8290 ,0xAD6A //HANGUL SYLLABLE KIYEOK YO PHIEUPH - ,0x8291 ,0xAD6B //HANGUL SYLLABLE KIYEOK YO HIEUH - ,0x8292 ,0xAD6E //HANGUL SYLLABLE KIYEOK U SSANGKIYEOK - ,0x8293 ,0xAD6F //HANGUL SYLLABLE KIYEOK U KIYEOKSIOS - ,0x8294 ,0xAD71 //HANGUL SYLLABLE KIYEOK U NIEUNCIEUC - ,0x8295 ,0xAD72 //HANGUL SYLLABLE KIYEOK U NIEUNHIEUH - ,0x8296 ,0xAD77 //HANGUL SYLLABLE KIYEOK U RIEULPIEUP - ,0x8297 ,0xAD78 //HANGUL SYLLABLE KIYEOK U RIEULSIOS - ,0x8298 ,0xAD79 //HANGUL SYLLABLE KIYEOK U RIEULTHIEUTH - ,0x8299 ,0xAD7A //HANGUL SYLLABLE KIYEOK U RIEULPHIEUPH - ,0x829A ,0xAD7E //HANGUL SYLLABLE KIYEOK U PIEUPSIOS - ,0x829B ,0xAD80 //HANGUL SYLLABLE KIYEOK U SSANGSIOS - ,0x829C ,0xAD83 //HANGUL SYLLABLE KIYEOK U CHIEUCH - ,0x829D ,0xAD84 //HANGUL SYLLABLE KIYEOK U KHIEUKH - ,0x829E ,0xAD85 //HANGUL SYLLABLE KIYEOK U THIEUTH - ,0x829F ,0xAD86 //HANGUL SYLLABLE KIYEOK U PHIEUPH - ,0x82A0 ,0xAD87 //HANGUL SYLLABLE KIYEOK U HIEUH - ,0x82A1 ,0xAD8A //HANGUL SYLLABLE KIYEOK WEO SSANGKIYEOK - ,0x82A2 ,0xAD8B //HANGUL SYLLABLE KIYEOK WEO KIYEOKSIOS - ,0x82A3 ,0xAD8D //HANGUL SYLLABLE KIYEOK WEO NIEUNCIEUC - ,0x82A4 ,0xAD8E //HANGUL SYLLABLE KIYEOK WEO NIEUNHIEUH - ,0x82A5 ,0xAD8F //HANGUL SYLLABLE KIYEOK WEO TIKEUT - ,0x82A6 ,0xAD91 //HANGUL SYLLABLE KIYEOK WEO RIEULKIYEOK - ,0x82A7 ,0xAD92 //HANGUL SYLLABLE KIYEOK WEO RIEULMIEUM - ,0x82A8 ,0xAD93 //HANGUL SYLLABLE KIYEOK WEO RIEULPIEUP - ,0x82A9 ,0xAD94 //HANGUL SYLLABLE KIYEOK WEO RIEULSIOS - ,0x82AA ,0xAD95 //HANGUL SYLLABLE KIYEOK WEO RIEULTHIEUTH - ,0x82AB ,0xAD96 //HANGUL SYLLABLE KIYEOK WEO RIEULPHIEUPH - ,0x82AC ,0xAD97 //HANGUL SYLLABLE KIYEOK WEO RIEULHIEUH - ,0x82AD ,0xAD98 //HANGUL SYLLABLE KIYEOK WEO MIEUM - ,0x82AE ,0xAD99 //HANGUL SYLLABLE KIYEOK WEO PIEUP - ,0x82AF ,0xAD9A //HANGUL SYLLABLE KIYEOK WEO PIEUPSIOS - ,0x82B0 ,0xAD9B //HANGUL SYLLABLE KIYEOK WEO SIOS - ,0x82B1 ,0xAD9E //HANGUL SYLLABLE KIYEOK WEO CIEUC - ,0x82B2 ,0xAD9F //HANGUL SYLLABLE KIYEOK WEO CHIEUCH - ,0x82B3 ,0xADA0 //HANGUL SYLLABLE KIYEOK WEO KHIEUKH - ,0x82B4 ,0xADA1 //HANGUL SYLLABLE KIYEOK WEO THIEUTH - ,0x82B5 ,0xADA2 //HANGUL SYLLABLE KIYEOK WEO PHIEUPH - ,0x82B6 ,0xADA3 //HANGUL SYLLABLE KIYEOK WEO HIEUH - ,0x82B7 ,0xADA5 //HANGUL SYLLABLE KIYEOK WE KIYEOK - ,0x82B8 ,0xADA6 //HANGUL SYLLABLE KIYEOK WE SSANGKIYEOK - ,0x82B9 ,0xADA7 //HANGUL SYLLABLE KIYEOK WE KIYEOKSIOS - ,0x82BA ,0xADA8 //HANGUL SYLLABLE KIYEOK WE NIEUN - ,0x82BB ,0xADA9 //HANGUL SYLLABLE KIYEOK WE NIEUNCIEUC - ,0x82BC ,0xADAA //HANGUL SYLLABLE KIYEOK WE NIEUNHIEUH - ,0x82BD ,0xADAB //HANGUL SYLLABLE KIYEOK WE TIKEUT - ,0x82BE ,0xADAC //HANGUL SYLLABLE KIYEOK WE RIEUL - ,0x82BF ,0xADAD //HANGUL SYLLABLE KIYEOK WE RIEULKIYEOK - ,0x82C0 ,0xADAE //HANGUL SYLLABLE KIYEOK WE RIEULMIEUM - ,0x82C1 ,0xADAF //HANGUL SYLLABLE KIYEOK WE RIEULPIEUP - ,0x82C2 ,0xADB0 //HANGUL SYLLABLE KIYEOK WE RIEULSIOS - ,0x82C3 ,0xADB1 //HANGUL SYLLABLE KIYEOK WE RIEULTHIEUTH - ,0x82C4 ,0xADB2 //HANGUL SYLLABLE KIYEOK WE RIEULPHIEUPH - ,0x82C5 ,0xADB3 //HANGUL SYLLABLE KIYEOK WE RIEULHIEUH - ,0x82C6 ,0xADB4 //HANGUL SYLLABLE KIYEOK WE MIEUM - ,0x82C7 ,0xADB5 //HANGUL SYLLABLE KIYEOK WE PIEUP - ,0x82C8 ,0xADB6 //HANGUL SYLLABLE KIYEOK WE PIEUPSIOS - ,0x82C9 ,0xADB8 //HANGUL SYLLABLE KIYEOK WE SSANGSIOS - ,0x82CA ,0xADB9 //HANGUL SYLLABLE KIYEOK WE IEUNG - ,0x82CB ,0xADBA //HANGUL SYLLABLE KIYEOK WE CIEUC - ,0x82CC ,0xADBB //HANGUL SYLLABLE KIYEOK WE CHIEUCH - ,0x82CD ,0xADBC //HANGUL SYLLABLE KIYEOK WE KHIEUKH - ,0x82CE ,0xADBD //HANGUL SYLLABLE KIYEOK WE THIEUTH - ,0x82CF ,0xADBE //HANGUL SYLLABLE KIYEOK WE PHIEUPH - ,0x82D0 ,0xADBF //HANGUL SYLLABLE KIYEOK WE HIEUH - ,0x82D1 ,0xADC2 //HANGUL SYLLABLE KIYEOK WI SSANGKIYEOK - ,0x82D2 ,0xADC3 //HANGUL SYLLABLE KIYEOK WI KIYEOKSIOS - ,0x82D3 ,0xADC5 //HANGUL SYLLABLE KIYEOK WI NIEUNCIEUC - ,0x82D4 ,0xADC6 //HANGUL SYLLABLE KIYEOK WI NIEUNHIEUH - ,0x82D5 ,0xADC7 //HANGUL SYLLABLE KIYEOK WI TIKEUT - ,0x82D6 ,0xADC9 //HANGUL SYLLABLE KIYEOK WI RIEULKIYEOK - ,0x82D7 ,0xADCA //HANGUL SYLLABLE KIYEOK WI RIEULMIEUM - ,0x82D8 ,0xADCB //HANGUL SYLLABLE KIYEOK WI RIEULPIEUP - ,0x82D9 ,0xADCC //HANGUL SYLLABLE KIYEOK WI RIEULSIOS - ,0x82DA ,0xADCD //HANGUL SYLLABLE KIYEOK WI RIEULTHIEUTH - ,0x82DB ,0xADCE //HANGUL SYLLABLE KIYEOK WI RIEULPHIEUPH - ,0x82DC ,0xADCF //HANGUL SYLLABLE KIYEOK WI RIEULHIEUH - ,0x82DD ,0xADD2 //HANGUL SYLLABLE KIYEOK WI PIEUPSIOS - ,0x82DE ,0xADD4 //HANGUL SYLLABLE KIYEOK WI SSANGSIOS - ,0x82DF ,0xADD5 //HANGUL SYLLABLE KIYEOK WI IEUNG - ,0x82E0 ,0xADD6 //HANGUL SYLLABLE KIYEOK WI CIEUC - ,0x82E1 ,0xADD7 //HANGUL SYLLABLE KIYEOK WI CHIEUCH - ,0x82E2 ,0xADD8 //HANGUL SYLLABLE KIYEOK WI KHIEUKH - ,0x82E3 ,0xADD9 //HANGUL SYLLABLE KIYEOK WI THIEUTH - ,0x82E4 ,0xADDA //HANGUL SYLLABLE KIYEOK WI PHIEUPH - ,0x82E5 ,0xADDB //HANGUL SYLLABLE KIYEOK WI HIEUH - ,0x82E6 ,0xADDD //HANGUL SYLLABLE KIYEOK YU KIYEOK - ,0x82E7 ,0xADDE //HANGUL SYLLABLE KIYEOK YU SSANGKIYEOK - ,0x82E8 ,0xADDF //HANGUL SYLLABLE KIYEOK YU KIYEOKSIOS - ,0x82E9 ,0xADE1 //HANGUL SYLLABLE KIYEOK YU NIEUNCIEUC - ,0x82EA ,0xADE2 //HANGUL SYLLABLE KIYEOK YU NIEUNHIEUH - ,0x82EB ,0xADE3 //HANGUL SYLLABLE KIYEOK YU TIKEUT - ,0x82EC ,0xADE5 //HANGUL SYLLABLE KIYEOK YU RIEULKIYEOK - ,0x82ED ,0xADE6 //HANGUL SYLLABLE KIYEOK YU RIEULMIEUM - ,0x82EE ,0xADE7 //HANGUL SYLLABLE KIYEOK YU RIEULPIEUP - ,0x82EF ,0xADE8 //HANGUL SYLLABLE KIYEOK YU RIEULSIOS - ,0x82F0 ,0xADE9 //HANGUL SYLLABLE KIYEOK YU RIEULTHIEUTH - ,0x82F1 ,0xADEA //HANGUL SYLLABLE KIYEOK YU RIEULPHIEUPH - ,0x82F2 ,0xADEB //HANGUL SYLLABLE KIYEOK YU RIEULHIEUH - ,0x82F3 ,0xADEC //HANGUL SYLLABLE KIYEOK YU MIEUM - ,0x82F4 ,0xADED //HANGUL SYLLABLE KIYEOK YU PIEUP - ,0x82F5 ,0xADEE //HANGUL SYLLABLE KIYEOK YU PIEUPSIOS - ,0x82F6 ,0xADEF //HANGUL SYLLABLE KIYEOK YU SIOS - ,0x82F7 ,0xADF0 //HANGUL SYLLABLE KIYEOK YU SSANGSIOS - ,0x82F8 ,0xADF1 //HANGUL SYLLABLE KIYEOK YU IEUNG - ,0x82F9 ,0xADF2 //HANGUL SYLLABLE KIYEOK YU CIEUC - ,0x82FA ,0xADF3 //HANGUL SYLLABLE KIYEOK YU CHIEUCH - ,0x82FB ,0xADF4 //HANGUL SYLLABLE KIYEOK YU KHIEUKH - ,0x82FC ,0xADF5 //HANGUL SYLLABLE KIYEOK YU THIEUTH - ,0x82FD ,0xADF6 //HANGUL SYLLABLE KIYEOK YU PHIEUPH - ,0x82FE ,0xADF7 //HANGUL SYLLABLE KIYEOK YU HIEUH - ,0x8341 ,0xADFA //HANGUL SYLLABLE KIYEOK EU SSANGKIYEOK - ,0x8342 ,0xADFB //HANGUL SYLLABLE KIYEOK EU KIYEOKSIOS - ,0x8343 ,0xADFD //HANGUL SYLLABLE KIYEOK EU NIEUNCIEUC - ,0x8344 ,0xADFE //HANGUL SYLLABLE KIYEOK EU NIEUNHIEUH - ,0x8345 ,0xAE02 //HANGUL SYLLABLE KIYEOK EU RIEULMIEUM - ,0x8346 ,0xAE03 //HANGUL SYLLABLE KIYEOK EU RIEULPIEUP - ,0x8347 ,0xAE04 //HANGUL SYLLABLE KIYEOK EU RIEULSIOS - ,0x8348 ,0xAE05 //HANGUL SYLLABLE KIYEOK EU RIEULTHIEUTH - ,0x8349 ,0xAE06 //HANGUL SYLLABLE KIYEOK EU RIEULPHIEUPH - ,0x834A ,0xAE07 //HANGUL SYLLABLE KIYEOK EU RIEULHIEUH - ,0x834B ,0xAE0A //HANGUL SYLLABLE KIYEOK EU PIEUPSIOS - ,0x834C ,0xAE0C //HANGUL SYLLABLE KIYEOK EU SSANGSIOS - ,0x834D ,0xAE0E //HANGUL SYLLABLE KIYEOK EU CIEUC - ,0x834E ,0xAE0F //HANGUL SYLLABLE KIYEOK EU CHIEUCH - ,0x834F ,0xAE10 //HANGUL SYLLABLE KIYEOK EU KHIEUKH - ,0x8350 ,0xAE11 //HANGUL SYLLABLE KIYEOK EU THIEUTH - ,0x8351 ,0xAE12 //HANGUL SYLLABLE KIYEOK EU PHIEUPH - ,0x8352 ,0xAE13 //HANGUL SYLLABLE KIYEOK EU HIEUH - ,0x8353 ,0xAE15 //HANGUL SYLLABLE KIYEOK YI KIYEOK - ,0x8354 ,0xAE16 //HANGUL SYLLABLE KIYEOK YI SSANGKIYEOK - ,0x8355 ,0xAE17 //HANGUL SYLLABLE KIYEOK YI KIYEOKSIOS - ,0x8356 ,0xAE18 //HANGUL SYLLABLE KIYEOK YI NIEUN - ,0x8357 ,0xAE19 //HANGUL SYLLABLE KIYEOK YI NIEUNCIEUC - ,0x8358 ,0xAE1A //HANGUL SYLLABLE KIYEOK YI NIEUNHIEUH - ,0x8359 ,0xAE1B //HANGUL SYLLABLE KIYEOK YI TIKEUT - ,0x835A ,0xAE1C //HANGUL SYLLABLE KIYEOK YI RIEUL - ,0x8361 ,0xAE1D //HANGUL SYLLABLE KIYEOK YI RIEULKIYEOK - ,0x8362 ,0xAE1E //HANGUL SYLLABLE KIYEOK YI RIEULMIEUM - ,0x8363 ,0xAE1F //HANGUL SYLLABLE KIYEOK YI RIEULPIEUP - ,0x8364 ,0xAE20 //HANGUL SYLLABLE KIYEOK YI RIEULSIOS - ,0x8365 ,0xAE21 //HANGUL SYLLABLE KIYEOK YI RIEULTHIEUTH - ,0x8366 ,0xAE22 //HANGUL SYLLABLE KIYEOK YI RIEULPHIEUPH - ,0x8367 ,0xAE23 //HANGUL SYLLABLE KIYEOK YI RIEULHIEUH - ,0x8368 ,0xAE24 //HANGUL SYLLABLE KIYEOK YI MIEUM - ,0x8369 ,0xAE25 //HANGUL SYLLABLE KIYEOK YI PIEUP - ,0x836A ,0xAE26 //HANGUL SYLLABLE KIYEOK YI PIEUPSIOS - ,0x836B ,0xAE27 //HANGUL SYLLABLE KIYEOK YI SIOS - ,0x836C ,0xAE28 //HANGUL SYLLABLE KIYEOK YI SSANGSIOS - ,0x836D ,0xAE29 //HANGUL SYLLABLE KIYEOK YI IEUNG - ,0x836E ,0xAE2A //HANGUL SYLLABLE KIYEOK YI CIEUC - ,0x836F ,0xAE2B //HANGUL SYLLABLE KIYEOK YI CHIEUCH - ,0x8370 ,0xAE2C //HANGUL SYLLABLE KIYEOK YI KHIEUKH - ,0x8371 ,0xAE2D //HANGUL SYLLABLE KIYEOK YI THIEUTH - ,0x8372 ,0xAE2E //HANGUL SYLLABLE KIYEOK YI PHIEUPH - ,0x8373 ,0xAE2F //HANGUL SYLLABLE KIYEOK YI HIEUH - ,0x8374 ,0xAE32 //HANGUL SYLLABLE KIYEOK I SSANGKIYEOK - ,0x8375 ,0xAE33 //HANGUL SYLLABLE KIYEOK I KIYEOKSIOS - ,0x8376 ,0xAE35 //HANGUL SYLLABLE KIYEOK I NIEUNCIEUC - ,0x8377 ,0xAE36 //HANGUL SYLLABLE KIYEOK I NIEUNHIEUH - ,0x8378 ,0xAE39 //HANGUL SYLLABLE KIYEOK I RIEULKIYEOK - ,0x8379 ,0xAE3B //HANGUL SYLLABLE KIYEOK I RIEULPIEUP - ,0x837A ,0xAE3C //HANGUL SYLLABLE KIYEOK I RIEULSIOS - ,0x8381 ,0xAE3D //HANGUL SYLLABLE KIYEOK I RIEULTHIEUTH - ,0x8382 ,0xAE3E //HANGUL SYLLABLE KIYEOK I RIEULPHIEUPH - ,0x8383 ,0xAE3F //HANGUL SYLLABLE KIYEOK I RIEULHIEUH - ,0x8384 ,0xAE42 //HANGUL SYLLABLE KIYEOK I PIEUPSIOS - ,0x8385 ,0xAE44 //HANGUL SYLLABLE KIYEOK I SSANGSIOS - ,0x8386 ,0xAE47 //HANGUL SYLLABLE KIYEOK I CHIEUCH - ,0x8387 ,0xAE48 //HANGUL SYLLABLE KIYEOK I KHIEUKH - ,0x8388 ,0xAE49 //HANGUL SYLLABLE KIYEOK I THIEUTH - ,0x8389 ,0xAE4B //HANGUL SYLLABLE KIYEOK I HIEUH - ,0x838A ,0xAE4F //HANGUL SYLLABLE SSANGKIYEOK A KIYEOKSIOS - ,0x838B ,0xAE51 //HANGUL SYLLABLE SSANGKIYEOK A NIEUNCIEUC - ,0x838C ,0xAE52 //HANGUL SYLLABLE SSANGKIYEOK A NIEUNHIEUH - ,0x838D ,0xAE53 //HANGUL SYLLABLE SSANGKIYEOK A TIKEUT - ,0x838E ,0xAE55 //HANGUL SYLLABLE SSANGKIYEOK A RIEULKIYEOK - ,0x838F ,0xAE57 //HANGUL SYLLABLE SSANGKIYEOK A RIEULPIEUP - ,0x8390 ,0xAE58 //HANGUL SYLLABLE SSANGKIYEOK A RIEULSIOS - ,0x8391 ,0xAE59 //HANGUL SYLLABLE SSANGKIYEOK A RIEULTHIEUTH - ,0x8392 ,0xAE5A //HANGUL SYLLABLE SSANGKIYEOK A RIEULPHIEUPH - ,0x8393 ,0xAE5B //HANGUL SYLLABLE SSANGKIYEOK A RIEULHIEUH - ,0x8394 ,0xAE5E //HANGUL SYLLABLE SSANGKIYEOK A PIEUPSIOS - ,0x8395 ,0xAE62 //HANGUL SYLLABLE SSANGKIYEOK A CIEUC - ,0x8396 ,0xAE63 //HANGUL SYLLABLE SSANGKIYEOK A CHIEUCH - ,0x8397 ,0xAE64 //HANGUL SYLLABLE SSANGKIYEOK A KHIEUKH - ,0x8398 ,0xAE66 //HANGUL SYLLABLE SSANGKIYEOK A PHIEUPH - ,0x8399 ,0xAE67 //HANGUL SYLLABLE SSANGKIYEOK A HIEUH - ,0x839A ,0xAE6A //HANGUL SYLLABLE SSANGKIYEOK AE SSANGKIYEOK - ,0x839B ,0xAE6B //HANGUL SYLLABLE SSANGKIYEOK AE KIYEOKSIOS - ,0x839C ,0xAE6D //HANGUL SYLLABLE SSANGKIYEOK AE NIEUNCIEUC - ,0x839D ,0xAE6E //HANGUL SYLLABLE SSANGKIYEOK AE NIEUNHIEUH - ,0x839E ,0xAE6F //HANGUL SYLLABLE SSANGKIYEOK AE TIKEUT - ,0x839F ,0xAE71 //HANGUL SYLLABLE SSANGKIYEOK AE RIEULKIYEOK - ,0x83A0 ,0xAE72 //HANGUL SYLLABLE SSANGKIYEOK AE RIEULMIEUM - ,0x83A1 ,0xAE73 //HANGUL SYLLABLE SSANGKIYEOK AE RIEULPIEUP - ,0x83A2 ,0xAE74 //HANGUL SYLLABLE SSANGKIYEOK AE RIEULSIOS - ,0x83A3 ,0xAE75 //HANGUL SYLLABLE SSANGKIYEOK AE RIEULTHIEUTH - ,0x83A4 ,0xAE76 //HANGUL SYLLABLE SSANGKIYEOK AE RIEULPHIEUPH - ,0x83A5 ,0xAE77 //HANGUL SYLLABLE SSANGKIYEOK AE RIEULHIEUH - ,0x83A6 ,0xAE7A //HANGUL SYLLABLE SSANGKIYEOK AE PIEUPSIOS - ,0x83A7 ,0xAE7E //HANGUL SYLLABLE SSANGKIYEOK AE CIEUC - ,0x83A8 ,0xAE7F //HANGUL SYLLABLE SSANGKIYEOK AE CHIEUCH - ,0x83A9 ,0xAE80 //HANGUL SYLLABLE SSANGKIYEOK AE KHIEUKH - ,0x83AA ,0xAE81 //HANGUL SYLLABLE SSANGKIYEOK AE THIEUTH - ,0x83AB ,0xAE82 //HANGUL SYLLABLE SSANGKIYEOK AE PHIEUPH - ,0x83AC ,0xAE83 //HANGUL SYLLABLE SSANGKIYEOK AE HIEUH - ,0x83AD ,0xAE86 //HANGUL SYLLABLE SSANGKIYEOK YA SSANGKIYEOK - ,0x83AE ,0xAE87 //HANGUL SYLLABLE SSANGKIYEOK YA KIYEOKSIOS - ,0x83AF ,0xAE88 //HANGUL SYLLABLE SSANGKIYEOK YA NIEUN - ,0x83B0 ,0xAE89 //HANGUL SYLLABLE SSANGKIYEOK YA NIEUNCIEUC - ,0x83B1 ,0xAE8A //HANGUL SYLLABLE SSANGKIYEOK YA NIEUNHIEUH - ,0x83B2 ,0xAE8B //HANGUL SYLLABLE SSANGKIYEOK YA TIKEUT - ,0x83B3 ,0xAE8D //HANGUL SYLLABLE SSANGKIYEOK YA RIEULKIYEOK - ,0x83B4 ,0xAE8E //HANGUL SYLLABLE SSANGKIYEOK YA RIEULMIEUM - ,0x83B5 ,0xAE8F //HANGUL SYLLABLE SSANGKIYEOK YA RIEULPIEUP - ,0x83B6 ,0xAE90 //HANGUL SYLLABLE SSANGKIYEOK YA RIEULSIOS - ,0x83B7 ,0xAE91 //HANGUL SYLLABLE SSANGKIYEOK YA RIEULTHIEUTH - ,0x83B8 ,0xAE92 //HANGUL SYLLABLE SSANGKIYEOK YA RIEULPHIEUPH - ,0x83B9 ,0xAE93 //HANGUL SYLLABLE SSANGKIYEOK YA RIEULHIEUH - ,0x83BA ,0xAE94 //HANGUL SYLLABLE SSANGKIYEOK YA MIEUM - ,0x83BB ,0xAE95 //HANGUL SYLLABLE SSANGKIYEOK YA PIEUP - ,0x83BC ,0xAE96 //HANGUL SYLLABLE SSANGKIYEOK YA PIEUPSIOS - ,0x83BD ,0xAE97 //HANGUL SYLLABLE SSANGKIYEOK YA SIOS - ,0x83BE ,0xAE98 //HANGUL SYLLABLE SSANGKIYEOK YA SSANGSIOS - ,0x83BF ,0xAE99 //HANGUL SYLLABLE SSANGKIYEOK YA IEUNG - ,0x83C0 ,0xAE9A //HANGUL SYLLABLE SSANGKIYEOK YA CIEUC - ,0x83C1 ,0xAE9B //HANGUL SYLLABLE SSANGKIYEOK YA CHIEUCH - ,0x83C2 ,0xAE9C //HANGUL SYLLABLE SSANGKIYEOK YA KHIEUKH - ,0x83C3 ,0xAE9D //HANGUL SYLLABLE SSANGKIYEOK YA THIEUTH - ,0x83C4 ,0xAE9E //HANGUL SYLLABLE SSANGKIYEOK YA PHIEUPH - ,0x83C5 ,0xAE9F //HANGUL SYLLABLE SSANGKIYEOK YA HIEUH - ,0x83C6 ,0xAEA0 //HANGUL SYLLABLE SSANGKIYEOK YAE - ,0x83C7 ,0xAEA1 //HANGUL SYLLABLE SSANGKIYEOK YAE KIYEOK - ,0x83C8 ,0xAEA2 //HANGUL SYLLABLE SSANGKIYEOK YAE SSANGKIYEOK - ,0x83C9 ,0xAEA3 //HANGUL SYLLABLE SSANGKIYEOK YAE KIYEOKSIOS - ,0x83CA ,0xAEA4 //HANGUL SYLLABLE SSANGKIYEOK YAE NIEUN - ,0x83CB ,0xAEA5 //HANGUL SYLLABLE SSANGKIYEOK YAE NIEUNCIEUC - ,0x83CC ,0xAEA6 //HANGUL SYLLABLE SSANGKIYEOK YAE NIEUNHIEUH - ,0x83CD ,0xAEA7 //HANGUL SYLLABLE SSANGKIYEOK YAE TIKEUT - ,0x83CE ,0xAEA8 //HANGUL SYLLABLE SSANGKIYEOK YAE RIEUL - ,0x83CF ,0xAEA9 //HANGUL SYLLABLE SSANGKIYEOK YAE RIEULKIYEOK - ,0x83D0 ,0xAEAA //HANGUL SYLLABLE SSANGKIYEOK YAE RIEULMIEUM - ,0x83D1 ,0xAEAB //HANGUL SYLLABLE SSANGKIYEOK YAE RIEULPIEUP - ,0x83D2 ,0xAEAC //HANGUL SYLLABLE SSANGKIYEOK YAE RIEULSIOS - ,0x83D3 ,0xAEAD //HANGUL SYLLABLE SSANGKIYEOK YAE RIEULTHIEUTH - ,0x83D4 ,0xAEAE //HANGUL SYLLABLE SSANGKIYEOK YAE RIEULPHIEUPH - ,0x83D5 ,0xAEAF //HANGUL SYLLABLE SSANGKIYEOK YAE RIEULHIEUH - ,0x83D6 ,0xAEB0 //HANGUL SYLLABLE SSANGKIYEOK YAE MIEUM - ,0x83D7 ,0xAEB1 //HANGUL SYLLABLE SSANGKIYEOK YAE PIEUP - ,0x83D8 ,0xAEB2 //HANGUL SYLLABLE SSANGKIYEOK YAE PIEUPSIOS - ,0x83D9 ,0xAEB3 //HANGUL SYLLABLE SSANGKIYEOK YAE SIOS - ,0x83DA ,0xAEB4 //HANGUL SYLLABLE SSANGKIYEOK YAE SSANGSIOS - ,0x83DB ,0xAEB5 //HANGUL SYLLABLE SSANGKIYEOK YAE IEUNG - ,0x83DC ,0xAEB6 //HANGUL SYLLABLE SSANGKIYEOK YAE CIEUC - ,0x83DD ,0xAEB7 //HANGUL SYLLABLE SSANGKIYEOK YAE CHIEUCH - ,0x83DE ,0xAEB8 //HANGUL SYLLABLE SSANGKIYEOK YAE KHIEUKH - ,0x83DF ,0xAEB9 //HANGUL SYLLABLE SSANGKIYEOK YAE THIEUTH - ,0x83E0 ,0xAEBA //HANGUL SYLLABLE SSANGKIYEOK YAE PHIEUPH - ,0x83E1 ,0xAEBB //HANGUL SYLLABLE SSANGKIYEOK YAE HIEUH - ,0x83E2 ,0xAEBF //HANGUL SYLLABLE SSANGKIYEOK EO KIYEOKSIOS - ,0x83E3 ,0xAEC1 //HANGUL SYLLABLE SSANGKIYEOK EO NIEUNCIEUC - ,0x83E4 ,0xAEC2 //HANGUL SYLLABLE SSANGKIYEOK EO NIEUNHIEUH - ,0x83E5 ,0xAEC3 //HANGUL SYLLABLE SSANGKIYEOK EO TIKEUT - ,0x83E6 ,0xAEC5 //HANGUL SYLLABLE SSANGKIYEOK EO RIEULKIYEOK - ,0x83E7 ,0xAEC6 //HANGUL SYLLABLE SSANGKIYEOK EO RIEULMIEUM - ,0x83E8 ,0xAEC7 //HANGUL SYLLABLE SSANGKIYEOK EO RIEULPIEUP - ,0x83E9 ,0xAEC8 //HANGUL SYLLABLE SSANGKIYEOK EO RIEULSIOS - ,0x83EA ,0xAEC9 //HANGUL SYLLABLE SSANGKIYEOK EO RIEULTHIEUTH - ,0x83EB ,0xAECA //HANGUL SYLLABLE SSANGKIYEOK EO RIEULPHIEUPH - ,0x83EC ,0xAECB //HANGUL SYLLABLE SSANGKIYEOK EO RIEULHIEUH - ,0x83ED ,0xAECE //HANGUL SYLLABLE SSANGKIYEOK EO PIEUPSIOS - ,0x83EE ,0xAED2 //HANGUL SYLLABLE SSANGKIYEOK EO CIEUC - ,0x83EF ,0xAED3 //HANGUL SYLLABLE SSANGKIYEOK EO CHIEUCH - ,0x83F0 ,0xAED4 //HANGUL SYLLABLE SSANGKIYEOK EO KHIEUKH - ,0x83F1 ,0xAED5 //HANGUL SYLLABLE SSANGKIYEOK EO THIEUTH - ,0x83F2 ,0xAED6 //HANGUL SYLLABLE SSANGKIYEOK EO PHIEUPH - ,0x83F3 ,0xAED7 //HANGUL SYLLABLE SSANGKIYEOK EO HIEUH - ,0x83F4 ,0xAEDA //HANGUL SYLLABLE SSANGKIYEOK E SSANGKIYEOK - ,0x83F5 ,0xAEDB //HANGUL SYLLABLE SSANGKIYEOK E KIYEOKSIOS - ,0x83F6 ,0xAEDD //HANGUL SYLLABLE SSANGKIYEOK E NIEUNCIEUC - ,0x83F7 ,0xAEDE //HANGUL SYLLABLE SSANGKIYEOK E NIEUNHIEUH - ,0x83F8 ,0xAEDF //HANGUL SYLLABLE SSANGKIYEOK E TIKEUT - ,0x83F9 ,0xAEE0 //HANGUL SYLLABLE SSANGKIYEOK E RIEUL - ,0x83FA ,0xAEE1 //HANGUL SYLLABLE SSANGKIYEOK E RIEULKIYEOK - ,0x83FB ,0xAEE2 //HANGUL SYLLABLE SSANGKIYEOK E RIEULMIEUM - ,0x83FC ,0xAEE3 //HANGUL SYLLABLE SSANGKIYEOK E RIEULPIEUP - ,0x83FD ,0xAEE4 //HANGUL SYLLABLE SSANGKIYEOK E RIEULSIOS - ,0x83FE ,0xAEE5 //HANGUL SYLLABLE SSANGKIYEOK E RIEULTHIEUTH - ,0x8441 ,0xAEE6 //HANGUL SYLLABLE SSANGKIYEOK E RIEULPHIEUPH - ,0x8442 ,0xAEE7 //HANGUL SYLLABLE SSANGKIYEOK E RIEULHIEUH - ,0x8443 ,0xAEE9 //HANGUL SYLLABLE SSANGKIYEOK E PIEUP - ,0x8444 ,0xAEEA //HANGUL SYLLABLE SSANGKIYEOK E PIEUPSIOS - ,0x8445 ,0xAEEC //HANGUL SYLLABLE SSANGKIYEOK E SSANGSIOS - ,0x8446 ,0xAEEE //HANGUL SYLLABLE SSANGKIYEOK E CIEUC - ,0x8447 ,0xAEEF //HANGUL SYLLABLE SSANGKIYEOK E CHIEUCH - ,0x8448 ,0xAEF0 //HANGUL SYLLABLE SSANGKIYEOK E KHIEUKH - ,0x8449 ,0xAEF1 //HANGUL SYLLABLE SSANGKIYEOK E THIEUTH - ,0x844A ,0xAEF2 //HANGUL SYLLABLE SSANGKIYEOK E PHIEUPH - ,0x844B ,0xAEF3 //HANGUL SYLLABLE SSANGKIYEOK E HIEUH - ,0x844C ,0xAEF5 //HANGUL SYLLABLE SSANGKIYEOK YEO KIYEOK - ,0x844D ,0xAEF6 //HANGUL SYLLABLE SSANGKIYEOK YEO SSANGKIYEOK - ,0x844E ,0xAEF7 //HANGUL SYLLABLE SSANGKIYEOK YEO KIYEOKSIOS - ,0x844F ,0xAEF9 //HANGUL SYLLABLE SSANGKIYEOK YEO NIEUNCIEUC - ,0x8450 ,0xAEFA //HANGUL SYLLABLE SSANGKIYEOK YEO NIEUNHIEUH - ,0x8451 ,0xAEFB //HANGUL SYLLABLE SSANGKIYEOK YEO TIKEUT - ,0x8452 ,0xAEFD //HANGUL SYLLABLE SSANGKIYEOK YEO RIEULKIYEOK - ,0x8453 ,0xAEFE //HANGUL SYLLABLE SSANGKIYEOK YEO RIEULMIEUM - ,0x8454 ,0xAEFF //HANGUL SYLLABLE SSANGKIYEOK YEO RIEULPIEUP - ,0x8455 ,0xAF00 //HANGUL SYLLABLE SSANGKIYEOK YEO RIEULSIOS - ,0x8456 ,0xAF01 //HANGUL SYLLABLE SSANGKIYEOK YEO RIEULTHIEUTH - ,0x8457 ,0xAF02 //HANGUL SYLLABLE SSANGKIYEOK YEO RIEULPHIEUPH - ,0x8458 ,0xAF03 //HANGUL SYLLABLE SSANGKIYEOK YEO RIEULHIEUH - ,0x8459 ,0xAF04 //HANGUL SYLLABLE SSANGKIYEOK YEO MIEUM - ,0x845A ,0xAF05 //HANGUL SYLLABLE SSANGKIYEOK YEO PIEUP - ,0x8461 ,0xAF06 //HANGUL SYLLABLE SSANGKIYEOK YEO PIEUPSIOS - ,0x8462 ,0xAF09 //HANGUL SYLLABLE SSANGKIYEOK YEO IEUNG - ,0x8463 ,0xAF0A //HANGUL SYLLABLE SSANGKIYEOK YEO CIEUC - ,0x8464 ,0xAF0B //HANGUL SYLLABLE SSANGKIYEOK YEO CHIEUCH - ,0x8465 ,0xAF0C //HANGUL SYLLABLE SSANGKIYEOK YEO KHIEUKH - ,0x8466 ,0xAF0E //HANGUL SYLLABLE SSANGKIYEOK YEO PHIEUPH - ,0x8467 ,0xAF0F //HANGUL SYLLABLE SSANGKIYEOK YEO HIEUH - ,0x8468 ,0xAF11 //HANGUL SYLLABLE SSANGKIYEOK YE KIYEOK - ,0x8469 ,0xAF12 //HANGUL SYLLABLE SSANGKIYEOK YE SSANGKIYEOK - ,0x846A ,0xAF13 //HANGUL SYLLABLE SSANGKIYEOK YE KIYEOKSIOS - ,0x846B ,0xAF14 //HANGUL SYLLABLE SSANGKIYEOK YE NIEUN - ,0x846C ,0xAF15 //HANGUL SYLLABLE SSANGKIYEOK YE NIEUNCIEUC - ,0x846D ,0xAF16 //HANGUL SYLLABLE SSANGKIYEOK YE NIEUNHIEUH - ,0x846E ,0xAF17 //HANGUL SYLLABLE SSANGKIYEOK YE TIKEUT - ,0x846F ,0xAF18 //HANGUL SYLLABLE SSANGKIYEOK YE RIEUL - ,0x8470 ,0xAF19 //HANGUL SYLLABLE SSANGKIYEOK YE RIEULKIYEOK - ,0x8471 ,0xAF1A //HANGUL SYLLABLE SSANGKIYEOK YE RIEULMIEUM - ,0x8472 ,0xAF1B //HANGUL SYLLABLE SSANGKIYEOK YE RIEULPIEUP - ,0x8473 ,0xAF1C //HANGUL SYLLABLE SSANGKIYEOK YE RIEULSIOS - ,0x8474 ,0xAF1D //HANGUL SYLLABLE SSANGKIYEOK YE RIEULTHIEUTH - ,0x8475 ,0xAF1E //HANGUL SYLLABLE SSANGKIYEOK YE RIEULPHIEUPH - ,0x8476 ,0xAF1F //HANGUL SYLLABLE SSANGKIYEOK YE RIEULHIEUH - ,0x8477 ,0xAF20 //HANGUL SYLLABLE SSANGKIYEOK YE MIEUM - ,0x8478 ,0xAF21 //HANGUL SYLLABLE SSANGKIYEOK YE PIEUP - ,0x8479 ,0xAF22 //HANGUL SYLLABLE SSANGKIYEOK YE PIEUPSIOS - ,0x847A ,0xAF23 //HANGUL SYLLABLE SSANGKIYEOK YE SIOS - ,0x8481 ,0xAF24 //HANGUL SYLLABLE SSANGKIYEOK YE SSANGSIOS - ,0x8482 ,0xAF25 //HANGUL SYLLABLE SSANGKIYEOK YE IEUNG - ,0x8483 ,0xAF26 //HANGUL SYLLABLE SSANGKIYEOK YE CIEUC - ,0x8484 ,0xAF27 //HANGUL SYLLABLE SSANGKIYEOK YE CHIEUCH - ,0x8485 ,0xAF28 //HANGUL SYLLABLE SSANGKIYEOK YE KHIEUKH - ,0x8486 ,0xAF29 //HANGUL SYLLABLE SSANGKIYEOK YE THIEUTH - ,0x8487 ,0xAF2A //HANGUL SYLLABLE SSANGKIYEOK YE PHIEUPH - ,0x8488 ,0xAF2B //HANGUL SYLLABLE SSANGKIYEOK YE HIEUH - ,0x8489 ,0xAF2E //HANGUL SYLLABLE SSANGKIYEOK O SSANGKIYEOK - ,0x848A ,0xAF2F //HANGUL SYLLABLE SSANGKIYEOK O KIYEOKSIOS - ,0x848B ,0xAF31 //HANGUL SYLLABLE SSANGKIYEOK O NIEUNCIEUC - ,0x848C ,0xAF33 //HANGUL SYLLABLE SSANGKIYEOK O TIKEUT - ,0x848D ,0xAF35 //HANGUL SYLLABLE SSANGKIYEOK O RIEULKIYEOK - ,0x848E ,0xAF36 //HANGUL SYLLABLE SSANGKIYEOK O RIEULMIEUM - ,0x848F ,0xAF37 //HANGUL SYLLABLE SSANGKIYEOK O RIEULPIEUP - ,0x8490 ,0xAF38 //HANGUL SYLLABLE SSANGKIYEOK O RIEULSIOS - ,0x8491 ,0xAF39 //HANGUL SYLLABLE SSANGKIYEOK O RIEULTHIEUTH - ,0x8492 ,0xAF3A //HANGUL SYLLABLE SSANGKIYEOK O RIEULPHIEUPH - ,0x8493 ,0xAF3B //HANGUL SYLLABLE SSANGKIYEOK O RIEULHIEUH - ,0x8494 ,0xAF3E //HANGUL SYLLABLE SSANGKIYEOK O PIEUPSIOS - ,0x8495 ,0xAF40 //HANGUL SYLLABLE SSANGKIYEOK O SSANGSIOS - ,0x8496 ,0xAF44 //HANGUL SYLLABLE SSANGKIYEOK O KHIEUKH - ,0x8497 ,0xAF45 //HANGUL SYLLABLE SSANGKIYEOK O THIEUTH - ,0x8498 ,0xAF46 //HANGUL SYLLABLE SSANGKIYEOK O PHIEUPH - ,0x8499 ,0xAF47 //HANGUL SYLLABLE SSANGKIYEOK O HIEUH - ,0x849A ,0xAF4A //HANGUL SYLLABLE SSANGKIYEOK WA SSANGKIYEOK - ,0x849B ,0xAF4B //HANGUL SYLLABLE SSANGKIYEOK WA KIYEOKSIOS - ,0x849C ,0xAF4C //HANGUL SYLLABLE SSANGKIYEOK WA NIEUN - ,0x849D ,0xAF4D //HANGUL SYLLABLE SSANGKIYEOK WA NIEUNCIEUC - ,0x849E ,0xAF4E //HANGUL SYLLABLE SSANGKIYEOK WA NIEUNHIEUH - ,0x849F ,0xAF4F //HANGUL SYLLABLE SSANGKIYEOK WA TIKEUT - ,0x84A0 ,0xAF51 //HANGUL SYLLABLE SSANGKIYEOK WA RIEULKIYEOK - ,0x84A1 ,0xAF52 //HANGUL SYLLABLE SSANGKIYEOK WA RIEULMIEUM - ,0x84A2 ,0xAF53 //HANGUL SYLLABLE SSANGKIYEOK WA RIEULPIEUP - ,0x84A3 ,0xAF54 //HANGUL SYLLABLE SSANGKIYEOK WA RIEULSIOS - ,0x84A4 ,0xAF55 //HANGUL SYLLABLE SSANGKIYEOK WA RIEULTHIEUTH - ,0x84A5 ,0xAF56 //HANGUL SYLLABLE SSANGKIYEOK WA RIEULPHIEUPH - ,0x84A6 ,0xAF57 //HANGUL SYLLABLE SSANGKIYEOK WA RIEULHIEUH - ,0x84A7 ,0xAF58 //HANGUL SYLLABLE SSANGKIYEOK WA MIEUM - ,0x84A8 ,0xAF59 //HANGUL SYLLABLE SSANGKIYEOK WA PIEUP - ,0x84A9 ,0xAF5A //HANGUL SYLLABLE SSANGKIYEOK WA PIEUPSIOS - ,0x84AA ,0xAF5B //HANGUL SYLLABLE SSANGKIYEOK WA SIOS - ,0x84AB ,0xAF5E //HANGUL SYLLABLE SSANGKIYEOK WA CIEUC - ,0x84AC ,0xAF5F //HANGUL SYLLABLE SSANGKIYEOK WA CHIEUCH - ,0x84AD ,0xAF60 //HANGUL SYLLABLE SSANGKIYEOK WA KHIEUKH - ,0x84AE ,0xAF61 //HANGUL SYLLABLE SSANGKIYEOK WA THIEUTH - ,0x84AF ,0xAF62 //HANGUL SYLLABLE SSANGKIYEOK WA PHIEUPH - ,0x84B0 ,0xAF63 //HANGUL SYLLABLE SSANGKIYEOK WA HIEUH - ,0x84B1 ,0xAF66 //HANGUL SYLLABLE SSANGKIYEOK WAE SSANGKIYEOK - ,0x84B2 ,0xAF67 //HANGUL SYLLABLE SSANGKIYEOK WAE KIYEOKSIOS - ,0x84B3 ,0xAF68 //HANGUL SYLLABLE SSANGKIYEOK WAE NIEUN - ,0x84B4 ,0xAF69 //HANGUL SYLLABLE SSANGKIYEOK WAE NIEUNCIEUC - ,0x84B5 ,0xAF6A //HANGUL SYLLABLE SSANGKIYEOK WAE NIEUNHIEUH - ,0x84B6 ,0xAF6B //HANGUL SYLLABLE SSANGKIYEOK WAE TIKEUT - ,0x84B7 ,0xAF6C //HANGUL SYLLABLE SSANGKIYEOK WAE RIEUL - ,0x84B8 ,0xAF6D //HANGUL SYLLABLE SSANGKIYEOK WAE RIEULKIYEOK - ,0x84B9 ,0xAF6E //HANGUL SYLLABLE SSANGKIYEOK WAE RIEULMIEUM - ,0x84BA ,0xAF6F //HANGUL SYLLABLE SSANGKIYEOK WAE RIEULPIEUP - ,0x84BB ,0xAF70 //HANGUL SYLLABLE SSANGKIYEOK WAE RIEULSIOS - ,0x84BC ,0xAF71 //HANGUL SYLLABLE SSANGKIYEOK WAE RIEULTHIEUTH - ,0x84BD ,0xAF72 //HANGUL SYLLABLE SSANGKIYEOK WAE RIEULPHIEUPH - ,0x84BE ,0xAF73 //HANGUL SYLLABLE SSANGKIYEOK WAE RIEULHIEUH - ,0x84BF ,0xAF74 //HANGUL SYLLABLE SSANGKIYEOK WAE MIEUM - ,0x84C0 ,0xAF75 //HANGUL SYLLABLE SSANGKIYEOK WAE PIEUP - ,0x84C1 ,0xAF76 //HANGUL SYLLABLE SSANGKIYEOK WAE PIEUPSIOS - ,0x84C2 ,0xAF77 //HANGUL SYLLABLE SSANGKIYEOK WAE SIOS - ,0x84C3 ,0xAF78 //HANGUL SYLLABLE SSANGKIYEOK WAE SSANGSIOS - ,0x84C4 ,0xAF7A //HANGUL SYLLABLE SSANGKIYEOK WAE CIEUC - ,0x84C5 ,0xAF7B //HANGUL SYLLABLE SSANGKIYEOK WAE CHIEUCH - ,0x84C6 ,0xAF7C //HANGUL SYLLABLE SSANGKIYEOK WAE KHIEUKH - ,0x84C7 ,0xAF7D //HANGUL SYLLABLE SSANGKIYEOK WAE THIEUTH - ,0x84C8 ,0xAF7E //HANGUL SYLLABLE SSANGKIYEOK WAE PHIEUPH - ,0x84C9 ,0xAF7F //HANGUL SYLLABLE SSANGKIYEOK WAE HIEUH - ,0x84CA ,0xAF81 //HANGUL SYLLABLE SSANGKIYEOK OE KIYEOK - ,0x84CB ,0xAF82 //HANGUL SYLLABLE SSANGKIYEOK OE SSANGKIYEOK - ,0x84CC ,0xAF83 //HANGUL SYLLABLE SSANGKIYEOK OE KIYEOKSIOS - ,0x84CD ,0xAF85 //HANGUL SYLLABLE SSANGKIYEOK OE NIEUNCIEUC - ,0x84CE ,0xAF86 //HANGUL SYLLABLE SSANGKIYEOK OE NIEUNHIEUH - ,0x84CF ,0xAF87 //HANGUL SYLLABLE SSANGKIYEOK OE TIKEUT - ,0x84D0 ,0xAF89 //HANGUL SYLLABLE SSANGKIYEOK OE RIEULKIYEOK - ,0x84D1 ,0xAF8A //HANGUL SYLLABLE SSANGKIYEOK OE RIEULMIEUM - ,0x84D2 ,0xAF8B //HANGUL SYLLABLE SSANGKIYEOK OE RIEULPIEUP - ,0x84D3 ,0xAF8C //HANGUL SYLLABLE SSANGKIYEOK OE RIEULSIOS - ,0x84D4 ,0xAF8D //HANGUL SYLLABLE SSANGKIYEOK OE RIEULTHIEUTH - ,0x84D5 ,0xAF8E //HANGUL SYLLABLE SSANGKIYEOK OE RIEULPHIEUPH - ,0x84D6 ,0xAF8F //HANGUL SYLLABLE SSANGKIYEOK OE RIEULHIEUH - ,0x84D7 ,0xAF92 //HANGUL SYLLABLE SSANGKIYEOK OE PIEUPSIOS - ,0x84D8 ,0xAF93 //HANGUL SYLLABLE SSANGKIYEOK OE SIOS - ,0x84D9 ,0xAF94 //HANGUL SYLLABLE SSANGKIYEOK OE SSANGSIOS - ,0x84DA ,0xAF96 //HANGUL SYLLABLE SSANGKIYEOK OE CIEUC - ,0x84DB ,0xAF97 //HANGUL SYLLABLE SSANGKIYEOK OE CHIEUCH - ,0x84DC ,0xAF98 //HANGUL SYLLABLE SSANGKIYEOK OE KHIEUKH - ,0x84DD ,0xAF99 //HANGUL SYLLABLE SSANGKIYEOK OE THIEUTH - ,0x84DE ,0xAF9A //HANGUL SYLLABLE SSANGKIYEOK OE PHIEUPH - ,0x84DF ,0xAF9B //HANGUL SYLLABLE SSANGKIYEOK OE HIEUH - ,0x84E0 ,0xAF9D //HANGUL SYLLABLE SSANGKIYEOK YO KIYEOK - ,0x84E1 ,0xAF9E //HANGUL SYLLABLE SSANGKIYEOK YO SSANGKIYEOK - ,0x84E2 ,0xAF9F //HANGUL SYLLABLE SSANGKIYEOK YO KIYEOKSIOS - ,0x84E3 ,0xAFA0 //HANGUL SYLLABLE SSANGKIYEOK YO NIEUN - ,0x84E4 ,0xAFA1 //HANGUL SYLLABLE SSANGKIYEOK YO NIEUNCIEUC - ,0x84E5 ,0xAFA2 //HANGUL SYLLABLE SSANGKIYEOK YO NIEUNHIEUH - ,0x84E6 ,0xAFA3 //HANGUL SYLLABLE SSANGKIYEOK YO TIKEUT - ,0x84E7 ,0xAFA4 //HANGUL SYLLABLE SSANGKIYEOK YO RIEUL - ,0x84E8 ,0xAFA5 //HANGUL SYLLABLE SSANGKIYEOK YO RIEULKIYEOK - ,0x84E9 ,0xAFA6 //HANGUL SYLLABLE SSANGKIYEOK YO RIEULMIEUM - ,0x84EA ,0xAFA7 //HANGUL SYLLABLE SSANGKIYEOK YO RIEULPIEUP - ,0x84EB ,0xAFA8 //HANGUL SYLLABLE SSANGKIYEOK YO RIEULSIOS - ,0x84EC ,0xAFA9 //HANGUL SYLLABLE SSANGKIYEOK YO RIEULTHIEUTH - ,0x84ED ,0xAFAA //HANGUL SYLLABLE SSANGKIYEOK YO RIEULPHIEUPH - ,0x84EE ,0xAFAB //HANGUL SYLLABLE SSANGKIYEOK YO RIEULHIEUH - ,0x84EF ,0xAFAC //HANGUL SYLLABLE SSANGKIYEOK YO MIEUM - ,0x84F0 ,0xAFAD //HANGUL SYLLABLE SSANGKIYEOK YO PIEUP - ,0x84F1 ,0xAFAE //HANGUL SYLLABLE SSANGKIYEOK YO PIEUPSIOS - ,0x84F2 ,0xAFAF //HANGUL SYLLABLE SSANGKIYEOK YO SIOS - ,0x84F3 ,0xAFB0 //HANGUL SYLLABLE SSANGKIYEOK YO SSANGSIOS - ,0x84F4 ,0xAFB1 //HANGUL SYLLABLE SSANGKIYEOK YO IEUNG - ,0x84F5 ,0xAFB2 //HANGUL SYLLABLE SSANGKIYEOK YO CIEUC - ,0x84F6 ,0xAFB3 //HANGUL SYLLABLE SSANGKIYEOK YO CHIEUCH - ,0x84F7 ,0xAFB4 //HANGUL SYLLABLE SSANGKIYEOK YO KHIEUKH - ,0x84F8 ,0xAFB5 //HANGUL SYLLABLE SSANGKIYEOK YO THIEUTH - ,0x84F9 ,0xAFB6 //HANGUL SYLLABLE SSANGKIYEOK YO PHIEUPH - ,0x84FA ,0xAFB7 //HANGUL SYLLABLE SSANGKIYEOK YO HIEUH - ,0x84FB ,0xAFBA //HANGUL SYLLABLE SSANGKIYEOK U SSANGKIYEOK - ,0x84FC ,0xAFBB //HANGUL SYLLABLE SSANGKIYEOK U KIYEOKSIOS - ,0x84FD ,0xAFBD //HANGUL SYLLABLE SSANGKIYEOK U NIEUNCIEUC - ,0x84FE ,0xAFBE //HANGUL SYLLABLE SSANGKIYEOK U NIEUNHIEUH - ,0x8541 ,0xAFBF //HANGUL SYLLABLE SSANGKIYEOK U TIKEUT - ,0x8542 ,0xAFC1 //HANGUL SYLLABLE SSANGKIYEOK U RIEULKIYEOK - ,0x8543 ,0xAFC2 //HANGUL SYLLABLE SSANGKIYEOK U RIEULMIEUM - ,0x8544 ,0xAFC3 //HANGUL SYLLABLE SSANGKIYEOK U RIEULPIEUP - ,0x8545 ,0xAFC4 //HANGUL SYLLABLE SSANGKIYEOK U RIEULSIOS - ,0x8546 ,0xAFC5 //HANGUL SYLLABLE SSANGKIYEOK U RIEULTHIEUTH - ,0x8547 ,0xAFC6 //HANGUL SYLLABLE SSANGKIYEOK U RIEULPHIEUPH - ,0x8548 ,0xAFCA //HANGUL SYLLABLE SSANGKIYEOK U PIEUPSIOS - ,0x8549 ,0xAFCC //HANGUL SYLLABLE SSANGKIYEOK U SSANGSIOS - ,0x854A ,0xAFCF //HANGUL SYLLABLE SSANGKIYEOK U CHIEUCH - ,0x854B ,0xAFD0 //HANGUL SYLLABLE SSANGKIYEOK U KHIEUKH - ,0x854C ,0xAFD1 //HANGUL SYLLABLE SSANGKIYEOK U THIEUTH - ,0x854D ,0xAFD2 //HANGUL SYLLABLE SSANGKIYEOK U PHIEUPH - ,0x854E ,0xAFD3 //HANGUL SYLLABLE SSANGKIYEOK U HIEUH - ,0x854F ,0xAFD5 //HANGUL SYLLABLE SSANGKIYEOK WEO KIYEOK - ,0x8550 ,0xAFD6 //HANGUL SYLLABLE SSANGKIYEOK WEO SSANGKIYEOK - ,0x8551 ,0xAFD7 //HANGUL SYLLABLE SSANGKIYEOK WEO KIYEOKSIOS - ,0x8552 ,0xAFD8 //HANGUL SYLLABLE SSANGKIYEOK WEO NIEUN - ,0x8553 ,0xAFD9 //HANGUL SYLLABLE SSANGKIYEOK WEO NIEUNCIEUC - ,0x8554 ,0xAFDA //HANGUL SYLLABLE SSANGKIYEOK WEO NIEUNHIEUH - ,0x8555 ,0xAFDB //HANGUL SYLLABLE SSANGKIYEOK WEO TIKEUT - ,0x8556 ,0xAFDD //HANGUL SYLLABLE SSANGKIYEOK WEO RIEULKIYEOK - ,0x8557 ,0xAFDE //HANGUL SYLLABLE SSANGKIYEOK WEO RIEULMIEUM - ,0x8558 ,0xAFDF //HANGUL SYLLABLE SSANGKIYEOK WEO RIEULPIEUP - ,0x8559 ,0xAFE0 //HANGUL SYLLABLE SSANGKIYEOK WEO RIEULSIOS - ,0x855A ,0xAFE1 //HANGUL SYLLABLE SSANGKIYEOK WEO RIEULTHIEUTH - ,0x8561 ,0xAFE2 //HANGUL SYLLABLE SSANGKIYEOK WEO RIEULPHIEUPH - ,0x8562 ,0xAFE3 //HANGUL SYLLABLE SSANGKIYEOK WEO RIEULHIEUH - ,0x8563 ,0xAFE4 //HANGUL SYLLABLE SSANGKIYEOK WEO MIEUM - ,0x8564 ,0xAFE5 //HANGUL SYLLABLE SSANGKIYEOK WEO PIEUP - ,0x8565 ,0xAFE6 //HANGUL SYLLABLE SSANGKIYEOK WEO PIEUPSIOS - ,0x8566 ,0xAFE7 //HANGUL SYLLABLE SSANGKIYEOK WEO SIOS - ,0x8567 ,0xAFEA //HANGUL SYLLABLE SSANGKIYEOK WEO CIEUC - ,0x8568 ,0xAFEB //HANGUL SYLLABLE SSANGKIYEOK WEO CHIEUCH - ,0x8569 ,0xAFEC //HANGUL SYLLABLE SSANGKIYEOK WEO KHIEUKH - ,0x856A ,0xAFED //HANGUL SYLLABLE SSANGKIYEOK WEO THIEUTH - ,0x856B ,0xAFEE //HANGUL SYLLABLE SSANGKIYEOK WEO PHIEUPH - ,0x856C ,0xAFEF //HANGUL SYLLABLE SSANGKIYEOK WEO HIEUH - ,0x856D ,0xAFF2 //HANGUL SYLLABLE SSANGKIYEOK WE SSANGKIYEOK - ,0x856E ,0xAFF3 //HANGUL SYLLABLE SSANGKIYEOK WE KIYEOKSIOS - ,0x856F ,0xAFF5 //HANGUL SYLLABLE SSANGKIYEOK WE NIEUNCIEUC - ,0x8570 ,0xAFF6 //HANGUL SYLLABLE SSANGKIYEOK WE NIEUNHIEUH - ,0x8571 ,0xAFF7 //HANGUL SYLLABLE SSANGKIYEOK WE TIKEUT - ,0x8572 ,0xAFF9 //HANGUL SYLLABLE SSANGKIYEOK WE RIEULKIYEOK - ,0x8573 ,0xAFFA //HANGUL SYLLABLE SSANGKIYEOK WE RIEULMIEUM - ,0x8574 ,0xAFFB //HANGUL SYLLABLE SSANGKIYEOK WE RIEULPIEUP - ,0x8575 ,0xAFFC //HANGUL SYLLABLE SSANGKIYEOK WE RIEULSIOS - ,0x8576 ,0xAFFD //HANGUL SYLLABLE SSANGKIYEOK WE RIEULTHIEUTH - ,0x8577 ,0xAFFE //HANGUL SYLLABLE SSANGKIYEOK WE RIEULPHIEUPH - ,0x8578 ,0xAFFF //HANGUL SYLLABLE SSANGKIYEOK WE RIEULHIEUH - ,0x8579 ,0xB002 //HANGUL SYLLABLE SSANGKIYEOK WE PIEUPSIOS - ,0x857A ,0xB003 //HANGUL SYLLABLE SSANGKIYEOK WE SIOS - ,0x8581 ,0xB005 //HANGUL SYLLABLE SSANGKIYEOK WE IEUNG - ,0x8582 ,0xB006 //HANGUL SYLLABLE SSANGKIYEOK WE CIEUC - ,0x8583 ,0xB007 //HANGUL SYLLABLE SSANGKIYEOK WE CHIEUCH - ,0x8584 ,0xB008 //HANGUL SYLLABLE SSANGKIYEOK WE KHIEUKH - ,0x8585 ,0xB009 //HANGUL SYLLABLE SSANGKIYEOK WE THIEUTH - ,0x8586 ,0xB00A //HANGUL SYLLABLE SSANGKIYEOK WE PHIEUPH - ,0x8587 ,0xB00B //HANGUL SYLLABLE SSANGKIYEOK WE HIEUH - ,0x8588 ,0xB00D //HANGUL SYLLABLE SSANGKIYEOK WI KIYEOK - ,0x8589 ,0xB00E //HANGUL SYLLABLE SSANGKIYEOK WI SSANGKIYEOK - ,0x858A ,0xB00F //HANGUL SYLLABLE SSANGKIYEOK WI KIYEOKSIOS - ,0x858B ,0xB011 //HANGUL SYLLABLE SSANGKIYEOK WI NIEUNCIEUC - ,0x858C ,0xB012 //HANGUL SYLLABLE SSANGKIYEOK WI NIEUNHIEUH - ,0x858D ,0xB013 //HANGUL SYLLABLE SSANGKIYEOK WI TIKEUT - ,0x858E ,0xB015 //HANGUL SYLLABLE SSANGKIYEOK WI RIEULKIYEOK - ,0x858F ,0xB016 //HANGUL SYLLABLE SSANGKIYEOK WI RIEULMIEUM - ,0x8590 ,0xB017 //HANGUL SYLLABLE SSANGKIYEOK WI RIEULPIEUP - ,0x8591 ,0xB018 //HANGUL SYLLABLE SSANGKIYEOK WI RIEULSIOS - ,0x8592 ,0xB019 //HANGUL SYLLABLE SSANGKIYEOK WI RIEULTHIEUTH - ,0x8593 ,0xB01A //HANGUL SYLLABLE SSANGKIYEOK WI RIEULPHIEUPH - ,0x8594 ,0xB01B //HANGUL SYLLABLE SSANGKIYEOK WI RIEULHIEUH - ,0x8595 ,0xB01E //HANGUL SYLLABLE SSANGKIYEOK WI PIEUPSIOS - ,0x8596 ,0xB01F //HANGUL SYLLABLE SSANGKIYEOK WI SIOS - ,0x8597 ,0xB020 //HANGUL SYLLABLE SSANGKIYEOK WI SSANGSIOS - ,0x8598 ,0xB021 //HANGUL SYLLABLE SSANGKIYEOK WI IEUNG - ,0x8599 ,0xB022 //HANGUL SYLLABLE SSANGKIYEOK WI CIEUC - ,0x859A ,0xB023 //HANGUL SYLLABLE SSANGKIYEOK WI CHIEUCH - ,0x859B ,0xB024 //HANGUL SYLLABLE SSANGKIYEOK WI KHIEUKH - ,0x859C ,0xB025 //HANGUL SYLLABLE SSANGKIYEOK WI THIEUTH - ,0x859D ,0xB026 //HANGUL SYLLABLE SSANGKIYEOK WI PHIEUPH - ,0x859E ,0xB027 //HANGUL SYLLABLE SSANGKIYEOK WI HIEUH - ,0x859F ,0xB029 //HANGUL SYLLABLE SSANGKIYEOK YU KIYEOK - ,0x85A0 ,0xB02A //HANGUL SYLLABLE SSANGKIYEOK YU SSANGKIYEOK - ,0x85A1 ,0xB02B //HANGUL SYLLABLE SSANGKIYEOK YU KIYEOKSIOS - ,0x85A2 ,0xB02C //HANGUL SYLLABLE SSANGKIYEOK YU NIEUN - ,0x85A3 ,0xB02D //HANGUL SYLLABLE SSANGKIYEOK YU NIEUNCIEUC - ,0x85A4 ,0xB02E //HANGUL SYLLABLE SSANGKIYEOK YU NIEUNHIEUH - ,0x85A5 ,0xB02F //HANGUL SYLLABLE SSANGKIYEOK YU TIKEUT - ,0x85A6 ,0xB030 //HANGUL SYLLABLE SSANGKIYEOK YU RIEUL - ,0x85A7 ,0xB031 //HANGUL SYLLABLE SSANGKIYEOK YU RIEULKIYEOK - ,0x85A8 ,0xB032 //HANGUL SYLLABLE SSANGKIYEOK YU RIEULMIEUM - ,0x85A9 ,0xB033 //HANGUL SYLLABLE SSANGKIYEOK YU RIEULPIEUP - ,0x85AA ,0xB034 //HANGUL SYLLABLE SSANGKIYEOK YU RIEULSIOS - ,0x85AB ,0xB035 //HANGUL SYLLABLE SSANGKIYEOK YU RIEULTHIEUTH - ,0x85AC ,0xB036 //HANGUL SYLLABLE SSANGKIYEOK YU RIEULPHIEUPH - ,0x85AD ,0xB037 //HANGUL SYLLABLE SSANGKIYEOK YU RIEULHIEUH - ,0x85AE ,0xB038 //HANGUL SYLLABLE SSANGKIYEOK YU MIEUM - ,0x85AF ,0xB039 //HANGUL SYLLABLE SSANGKIYEOK YU PIEUP - ,0x85B0 ,0xB03A //HANGUL SYLLABLE SSANGKIYEOK YU PIEUPSIOS - ,0x85B1 ,0xB03B //HANGUL SYLLABLE SSANGKIYEOK YU SIOS - ,0x85B2 ,0xB03C //HANGUL SYLLABLE SSANGKIYEOK YU SSANGSIOS - ,0x85B3 ,0xB03D //HANGUL SYLLABLE SSANGKIYEOK YU IEUNG - ,0x85B4 ,0xB03E //HANGUL SYLLABLE SSANGKIYEOK YU CIEUC - ,0x85B5 ,0xB03F //HANGUL SYLLABLE SSANGKIYEOK YU CHIEUCH - ,0x85B6 ,0xB040 //HANGUL SYLLABLE SSANGKIYEOK YU KHIEUKH - ,0x85B7 ,0xB041 //HANGUL SYLLABLE SSANGKIYEOK YU THIEUTH - ,0x85B8 ,0xB042 //HANGUL SYLLABLE SSANGKIYEOK YU PHIEUPH - ,0x85B9 ,0xB043 //HANGUL SYLLABLE SSANGKIYEOK YU HIEUH - ,0x85BA ,0xB046 //HANGUL SYLLABLE SSANGKIYEOK EU SSANGKIYEOK - ,0x85BB ,0xB047 //HANGUL SYLLABLE SSANGKIYEOK EU KIYEOKSIOS - ,0x85BC ,0xB049 //HANGUL SYLLABLE SSANGKIYEOK EU NIEUNCIEUC - ,0x85BD ,0xB04B //HANGUL SYLLABLE SSANGKIYEOK EU TIKEUT - ,0x85BE ,0xB04D //HANGUL SYLLABLE SSANGKIYEOK EU RIEULKIYEOK - ,0x85BF ,0xB04F //HANGUL SYLLABLE SSANGKIYEOK EU RIEULPIEUP - ,0x85C0 ,0xB050 //HANGUL SYLLABLE SSANGKIYEOK EU RIEULSIOS - ,0x85C1 ,0xB051 //HANGUL SYLLABLE SSANGKIYEOK EU RIEULTHIEUTH - ,0x85C2 ,0xB052 //HANGUL SYLLABLE SSANGKIYEOK EU RIEULPHIEUPH - ,0x85C3 ,0xB056 //HANGUL SYLLABLE SSANGKIYEOK EU PIEUPSIOS - ,0x85C4 ,0xB058 //HANGUL SYLLABLE SSANGKIYEOK EU SSANGSIOS - ,0x85C5 ,0xB05A //HANGUL SYLLABLE SSANGKIYEOK EU CIEUC - ,0x85C6 ,0xB05B //HANGUL SYLLABLE SSANGKIYEOK EU CHIEUCH - ,0x85C7 ,0xB05C //HANGUL SYLLABLE SSANGKIYEOK EU KHIEUKH - ,0x85C8 ,0xB05E //HANGUL SYLLABLE SSANGKIYEOK EU PHIEUPH - ,0x85C9 ,0xB05F //HANGUL SYLLABLE SSANGKIYEOK EU HIEUH - ,0x85CA ,0xB060 //HANGUL SYLLABLE SSANGKIYEOK YI - ,0x85CB ,0xB061 //HANGUL SYLLABLE SSANGKIYEOK YI KIYEOK - ,0x85CC ,0xB062 //HANGUL SYLLABLE SSANGKIYEOK YI SSANGKIYEOK - ,0x85CD ,0xB063 //HANGUL SYLLABLE SSANGKIYEOK YI KIYEOKSIOS - ,0x85CE ,0xB064 //HANGUL SYLLABLE SSANGKIYEOK YI NIEUN - ,0x85CF ,0xB065 //HANGUL SYLLABLE SSANGKIYEOK YI NIEUNCIEUC - ,0x85D0 ,0xB066 //HANGUL SYLLABLE SSANGKIYEOK YI NIEUNHIEUH - ,0x85D1 ,0xB067 //HANGUL SYLLABLE SSANGKIYEOK YI TIKEUT - ,0x85D2 ,0xB068 //HANGUL SYLLABLE SSANGKIYEOK YI RIEUL - ,0x85D3 ,0xB069 //HANGUL SYLLABLE SSANGKIYEOK YI RIEULKIYEOK - ,0x85D4 ,0xB06A //HANGUL SYLLABLE SSANGKIYEOK YI RIEULMIEUM - ,0x85D5 ,0xB06B //HANGUL SYLLABLE SSANGKIYEOK YI RIEULPIEUP - ,0x85D6 ,0xB06C //HANGUL SYLLABLE SSANGKIYEOK YI RIEULSIOS - ,0x85D7 ,0xB06D //HANGUL SYLLABLE SSANGKIYEOK YI RIEULTHIEUTH - ,0x85D8 ,0xB06E //HANGUL SYLLABLE SSANGKIYEOK YI RIEULPHIEUPH - ,0x85D9 ,0xB06F //HANGUL SYLLABLE SSANGKIYEOK YI RIEULHIEUH - ,0x85DA ,0xB070 //HANGUL SYLLABLE SSANGKIYEOK YI MIEUM - ,0x85DB ,0xB071 //HANGUL SYLLABLE SSANGKIYEOK YI PIEUP - ,0x85DC ,0xB072 //HANGUL SYLLABLE SSANGKIYEOK YI PIEUPSIOS - ,0x85DD ,0xB073 //HANGUL SYLLABLE SSANGKIYEOK YI SIOS - ,0x85DE ,0xB074 //HANGUL SYLLABLE SSANGKIYEOK YI SSANGSIOS - ,0x85DF ,0xB075 //HANGUL SYLLABLE SSANGKIYEOK YI IEUNG - ,0x85E0 ,0xB076 //HANGUL SYLLABLE SSANGKIYEOK YI CIEUC - ,0x85E1 ,0xB077 //HANGUL SYLLABLE SSANGKIYEOK YI CHIEUCH - ,0x85E2 ,0xB078 //HANGUL SYLLABLE SSANGKIYEOK YI KHIEUKH - ,0x85E3 ,0xB079 //HANGUL SYLLABLE SSANGKIYEOK YI THIEUTH - ,0x85E4 ,0xB07A //HANGUL SYLLABLE SSANGKIYEOK YI PHIEUPH - ,0x85E5 ,0xB07B //HANGUL SYLLABLE SSANGKIYEOK YI HIEUH - ,0x85E6 ,0xB07E //HANGUL SYLLABLE SSANGKIYEOK I SSANGKIYEOK - ,0x85E7 ,0xB07F //HANGUL SYLLABLE SSANGKIYEOK I KIYEOKSIOS - ,0x85E8 ,0xB081 //HANGUL SYLLABLE SSANGKIYEOK I NIEUNCIEUC - ,0x85E9 ,0xB082 //HANGUL SYLLABLE SSANGKIYEOK I NIEUNHIEUH - ,0x85EA ,0xB083 //HANGUL SYLLABLE SSANGKIYEOK I TIKEUT - ,0x85EB ,0xB085 //HANGUL SYLLABLE SSANGKIYEOK I RIEULKIYEOK - ,0x85EC ,0xB086 //HANGUL SYLLABLE SSANGKIYEOK I RIEULMIEUM - ,0x85ED ,0xB087 //HANGUL SYLLABLE SSANGKIYEOK I RIEULPIEUP - ,0x85EE ,0xB088 //HANGUL SYLLABLE SSANGKIYEOK I RIEULSIOS - ,0x85EF ,0xB089 //HANGUL SYLLABLE SSANGKIYEOK I RIEULTHIEUTH - ,0x85F0 ,0xB08A //HANGUL SYLLABLE SSANGKIYEOK I RIEULPHIEUPH - ,0x85F1 ,0xB08B //HANGUL SYLLABLE SSANGKIYEOK I RIEULHIEUH - ,0x85F2 ,0xB08E //HANGUL SYLLABLE SSANGKIYEOK I PIEUPSIOS - ,0x85F3 ,0xB090 //HANGUL SYLLABLE SSANGKIYEOK I SSANGSIOS - ,0x85F4 ,0xB092 //HANGUL SYLLABLE SSANGKIYEOK I CIEUC - ,0x85F5 ,0xB093 //HANGUL SYLLABLE SSANGKIYEOK I CHIEUCH - ,0x85F6 ,0xB094 //HANGUL SYLLABLE SSANGKIYEOK I KHIEUKH - ,0x85F7 ,0xB095 //HANGUL SYLLABLE SSANGKIYEOK I THIEUTH - ,0x85F8 ,0xB096 //HANGUL SYLLABLE SSANGKIYEOK I PHIEUPH - ,0x85F9 ,0xB097 //HANGUL SYLLABLE SSANGKIYEOK I HIEUH - ,0x85FA ,0xB09B //HANGUL SYLLABLE NIEUN A KIYEOKSIOS - ,0x85FB ,0xB09D //HANGUL SYLLABLE NIEUN A NIEUNCIEUC - ,0x85FC ,0xB09E //HANGUL SYLLABLE NIEUN A NIEUNHIEUH - ,0x85FD ,0xB0A3 //HANGUL SYLLABLE NIEUN A RIEULPIEUP - ,0x85FE ,0xB0A4 //HANGUL SYLLABLE NIEUN A RIEULSIOS - ,0x8641 ,0xB0A5 //HANGUL SYLLABLE NIEUN A RIEULTHIEUTH - ,0x8642 ,0xB0A6 //HANGUL SYLLABLE NIEUN A RIEULPHIEUPH - ,0x8643 ,0xB0A7 //HANGUL SYLLABLE NIEUN A RIEULHIEUH - ,0x8644 ,0xB0AA //HANGUL SYLLABLE NIEUN A PIEUPSIOS - ,0x8645 ,0xB0B0 //HANGUL SYLLABLE NIEUN A KHIEUKH - ,0x8646 ,0xB0B2 //HANGUL SYLLABLE NIEUN A PHIEUPH - ,0x8647 ,0xB0B6 //HANGUL SYLLABLE NIEUN AE SSANGKIYEOK - ,0x8648 ,0xB0B7 //HANGUL SYLLABLE NIEUN AE KIYEOKSIOS - ,0x8649 ,0xB0B9 //HANGUL SYLLABLE NIEUN AE NIEUNCIEUC - ,0x864A ,0xB0BA //HANGUL SYLLABLE NIEUN AE NIEUNHIEUH - ,0x864B ,0xB0BB //HANGUL SYLLABLE NIEUN AE TIKEUT - ,0x864C ,0xB0BD //HANGUL SYLLABLE NIEUN AE RIEULKIYEOK - ,0x864D ,0xB0BE //HANGUL SYLLABLE NIEUN AE RIEULMIEUM - ,0x864E ,0xB0BF //HANGUL SYLLABLE NIEUN AE RIEULPIEUP - ,0x864F ,0xB0C0 //HANGUL SYLLABLE NIEUN AE RIEULSIOS - ,0x8650 ,0xB0C1 //HANGUL SYLLABLE NIEUN AE RIEULTHIEUTH - ,0x8651 ,0xB0C2 //HANGUL SYLLABLE NIEUN AE RIEULPHIEUPH - ,0x8652 ,0xB0C3 //HANGUL SYLLABLE NIEUN AE RIEULHIEUH - ,0x8653 ,0xB0C6 //HANGUL SYLLABLE NIEUN AE PIEUPSIOS - ,0x8654 ,0xB0CA //HANGUL SYLLABLE NIEUN AE CIEUC - ,0x8655 ,0xB0CB //HANGUL SYLLABLE NIEUN AE CHIEUCH - ,0x8656 ,0xB0CC //HANGUL SYLLABLE NIEUN AE KHIEUKH - ,0x8657 ,0xB0CD //HANGUL SYLLABLE NIEUN AE THIEUTH - ,0x8658 ,0xB0CE //HANGUL SYLLABLE NIEUN AE PHIEUPH - ,0x8659 ,0xB0CF //HANGUL SYLLABLE NIEUN AE HIEUH - ,0x865A ,0xB0D2 //HANGUL SYLLABLE NIEUN YA SSANGKIYEOK - ,0x8661 ,0xB0D3 //HANGUL SYLLABLE NIEUN YA KIYEOKSIOS - ,0x8662 ,0xB0D5 //HANGUL SYLLABLE NIEUN YA NIEUNCIEUC - ,0x8663 ,0xB0D6 //HANGUL SYLLABLE NIEUN YA NIEUNHIEUH - ,0x8664 ,0xB0D7 //HANGUL SYLLABLE NIEUN YA TIKEUT - ,0x8665 ,0xB0D9 //HANGUL SYLLABLE NIEUN YA RIEULKIYEOK - ,0x8666 ,0xB0DA //HANGUL SYLLABLE NIEUN YA RIEULMIEUM - ,0x8667 ,0xB0DB //HANGUL SYLLABLE NIEUN YA RIEULPIEUP - ,0x8668 ,0xB0DC //HANGUL SYLLABLE NIEUN YA RIEULSIOS - ,0x8669 ,0xB0DD //HANGUL SYLLABLE NIEUN YA RIEULTHIEUTH - ,0x866A ,0xB0DE //HANGUL SYLLABLE NIEUN YA RIEULPHIEUPH - ,0x866B ,0xB0DF //HANGUL SYLLABLE NIEUN YA RIEULHIEUH - ,0x866C ,0xB0E1 //HANGUL SYLLABLE NIEUN YA PIEUP - ,0x866D ,0xB0E2 //HANGUL SYLLABLE NIEUN YA PIEUPSIOS - ,0x866E ,0xB0E3 //HANGUL SYLLABLE NIEUN YA SIOS - ,0x866F ,0xB0E4 //HANGUL SYLLABLE NIEUN YA SSANGSIOS - ,0x8670 ,0xB0E6 //HANGUL SYLLABLE NIEUN YA CIEUC - ,0x8671 ,0xB0E7 //HANGUL SYLLABLE NIEUN YA CHIEUCH - ,0x8672 ,0xB0E8 //HANGUL SYLLABLE NIEUN YA KHIEUKH - ,0x8673 ,0xB0E9 //HANGUL SYLLABLE NIEUN YA THIEUTH - ,0x8674 ,0xB0EA //HANGUL SYLLABLE NIEUN YA PHIEUPH - ,0x8675 ,0xB0EB //HANGUL SYLLABLE NIEUN YA HIEUH - ,0x8676 ,0xB0EC //HANGUL SYLLABLE NIEUN YAE - ,0x8677 ,0xB0ED //HANGUL SYLLABLE NIEUN YAE KIYEOK - ,0x8678 ,0xB0EE //HANGUL SYLLABLE NIEUN YAE SSANGKIYEOK - ,0x8679 ,0xB0EF //HANGUL SYLLABLE NIEUN YAE KIYEOKSIOS - ,0x867A ,0xB0F0 //HANGUL SYLLABLE NIEUN YAE NIEUN - ,0x8681 ,0xB0F1 //HANGUL SYLLABLE NIEUN YAE NIEUNCIEUC - ,0x8682 ,0xB0F2 //HANGUL SYLLABLE NIEUN YAE NIEUNHIEUH - ,0x8683 ,0xB0F3 //HANGUL SYLLABLE NIEUN YAE TIKEUT - ,0x8684 ,0xB0F4 //HANGUL SYLLABLE NIEUN YAE RIEUL - ,0x8685 ,0xB0F5 //HANGUL SYLLABLE NIEUN YAE RIEULKIYEOK - ,0x8686 ,0xB0F6 //HANGUL SYLLABLE NIEUN YAE RIEULMIEUM - ,0x8687 ,0xB0F7 //HANGUL SYLLABLE NIEUN YAE RIEULPIEUP - ,0x8688 ,0xB0F8 //HANGUL SYLLABLE NIEUN YAE RIEULSIOS - ,0x8689 ,0xB0F9 //HANGUL SYLLABLE NIEUN YAE RIEULTHIEUTH - ,0x868A ,0xB0FA //HANGUL SYLLABLE NIEUN YAE RIEULPHIEUPH - ,0x868B ,0xB0FB //HANGUL SYLLABLE NIEUN YAE RIEULHIEUH - ,0x868C ,0xB0FC //HANGUL SYLLABLE NIEUN YAE MIEUM - ,0x868D ,0xB0FD //HANGUL SYLLABLE NIEUN YAE PIEUP - ,0x868E ,0xB0FE //HANGUL SYLLABLE NIEUN YAE PIEUPSIOS - ,0x868F ,0xB0FF //HANGUL SYLLABLE NIEUN YAE SIOS - ,0x8690 ,0xB100 //HANGUL SYLLABLE NIEUN YAE SSANGSIOS - ,0x8691 ,0xB101 //HANGUL SYLLABLE NIEUN YAE IEUNG - ,0x8692 ,0xB102 //HANGUL SYLLABLE NIEUN YAE CIEUC - ,0x8693 ,0xB103 //HANGUL SYLLABLE NIEUN YAE CHIEUCH - ,0x8694 ,0xB104 //HANGUL SYLLABLE NIEUN YAE KHIEUKH - ,0x8695 ,0xB105 //HANGUL SYLLABLE NIEUN YAE THIEUTH - ,0x8696 ,0xB106 //HANGUL SYLLABLE NIEUN YAE PHIEUPH - ,0x8697 ,0xB107 //HANGUL SYLLABLE NIEUN YAE HIEUH - ,0x8698 ,0xB10A //HANGUL SYLLABLE NIEUN EO SSANGKIYEOK - ,0x8699 ,0xB10D //HANGUL SYLLABLE NIEUN EO NIEUNCIEUC - ,0x869A ,0xB10E //HANGUL SYLLABLE NIEUN EO NIEUNHIEUH - ,0x869B ,0xB10F //HANGUL SYLLABLE NIEUN EO TIKEUT - ,0x869C ,0xB111 //HANGUL SYLLABLE NIEUN EO RIEULKIYEOK - ,0x869D ,0xB114 //HANGUL SYLLABLE NIEUN EO RIEULSIOS - ,0x869E ,0xB115 //HANGUL SYLLABLE NIEUN EO RIEULTHIEUTH - ,0x869F ,0xB116 //HANGUL SYLLABLE NIEUN EO RIEULPHIEUPH - ,0x86A0 ,0xB117 //HANGUL SYLLABLE NIEUN EO RIEULHIEUH - ,0x86A1 ,0xB11A //HANGUL SYLLABLE NIEUN EO PIEUPSIOS - ,0x86A2 ,0xB11E //HANGUL SYLLABLE NIEUN EO CIEUC - ,0x86A3 ,0xB11F //HANGUL SYLLABLE NIEUN EO CHIEUCH - ,0x86A4 ,0xB120 //HANGUL SYLLABLE NIEUN EO KHIEUKH - ,0x86A5 ,0xB121 //HANGUL SYLLABLE NIEUN EO THIEUTH - ,0x86A6 ,0xB122 //HANGUL SYLLABLE NIEUN EO PHIEUPH - ,0x86A7 ,0xB126 //HANGUL SYLLABLE NIEUN E SSANGKIYEOK - ,0x86A8 ,0xB127 //HANGUL SYLLABLE NIEUN E KIYEOKSIOS - ,0x86A9 ,0xB129 //HANGUL SYLLABLE NIEUN E NIEUNCIEUC - ,0x86AA ,0xB12A //HANGUL SYLLABLE NIEUN E NIEUNHIEUH - ,0x86AB ,0xB12B //HANGUL SYLLABLE NIEUN E TIKEUT - ,0x86AC ,0xB12D //HANGUL SYLLABLE NIEUN E RIEULKIYEOK - ,0x86AD ,0xB12E //HANGUL SYLLABLE NIEUN E RIEULMIEUM - ,0x86AE ,0xB12F //HANGUL SYLLABLE NIEUN E RIEULPIEUP - ,0x86AF ,0xB130 //HANGUL SYLLABLE NIEUN E RIEULSIOS - ,0x86B0 ,0xB131 //HANGUL SYLLABLE NIEUN E RIEULTHIEUTH - ,0x86B1 ,0xB132 //HANGUL SYLLABLE NIEUN E RIEULPHIEUPH - ,0x86B2 ,0xB133 //HANGUL SYLLABLE NIEUN E RIEULHIEUH - ,0x86B3 ,0xB136 //HANGUL SYLLABLE NIEUN E PIEUPSIOS - ,0x86B4 ,0xB13A //HANGUL SYLLABLE NIEUN E CIEUC - ,0x86B5 ,0xB13B //HANGUL SYLLABLE NIEUN E CHIEUCH - ,0x86B6 ,0xB13C //HANGUL SYLLABLE NIEUN E KHIEUKH - ,0x86B7 ,0xB13D //HANGUL SYLLABLE NIEUN E THIEUTH - ,0x86B8 ,0xB13E //HANGUL SYLLABLE NIEUN E PHIEUPH - ,0x86B9 ,0xB13F //HANGUL SYLLABLE NIEUN E HIEUH - ,0x86BA ,0xB142 //HANGUL SYLLABLE NIEUN YEO SSANGKIYEOK - ,0x86BB ,0xB143 //HANGUL SYLLABLE NIEUN YEO KIYEOKSIOS - ,0x86BC ,0xB145 //HANGUL SYLLABLE NIEUN YEO NIEUNCIEUC - ,0x86BD ,0xB146 //HANGUL SYLLABLE NIEUN YEO NIEUNHIEUH - ,0x86BE ,0xB147 //HANGUL SYLLABLE NIEUN YEO TIKEUT - ,0x86BF ,0xB149 //HANGUL SYLLABLE NIEUN YEO RIEULKIYEOK - ,0x86C0 ,0xB14A //HANGUL SYLLABLE NIEUN YEO RIEULMIEUM - ,0x86C1 ,0xB14B //HANGUL SYLLABLE NIEUN YEO RIEULPIEUP - ,0x86C2 ,0xB14C //HANGUL SYLLABLE NIEUN YEO RIEULSIOS - ,0x86C3 ,0xB14D //HANGUL SYLLABLE NIEUN YEO RIEULTHIEUTH - ,0x86C4 ,0xB14E //HANGUL SYLLABLE NIEUN YEO RIEULPHIEUPH - ,0x86C5 ,0xB14F //HANGUL SYLLABLE NIEUN YEO RIEULHIEUH - ,0x86C6 ,0xB152 //HANGUL SYLLABLE NIEUN YEO PIEUPSIOS - ,0x86C7 ,0xB153 //HANGUL SYLLABLE NIEUN YEO SIOS - ,0x86C8 ,0xB156 //HANGUL SYLLABLE NIEUN YEO CIEUC - ,0x86C9 ,0xB157 //HANGUL SYLLABLE NIEUN YEO CHIEUCH - ,0x86CA ,0xB159 //HANGUL SYLLABLE NIEUN YEO THIEUTH - ,0x86CB ,0xB15A //HANGUL SYLLABLE NIEUN YEO PHIEUPH - ,0x86CC ,0xB15B //HANGUL SYLLABLE NIEUN YEO HIEUH - ,0x86CD ,0xB15D //HANGUL SYLLABLE NIEUN YE KIYEOK - ,0x86CE ,0xB15E //HANGUL SYLLABLE NIEUN YE SSANGKIYEOK - ,0x86CF ,0xB15F //HANGUL SYLLABLE NIEUN YE KIYEOKSIOS - ,0x86D0 ,0xB161 //HANGUL SYLLABLE NIEUN YE NIEUNCIEUC - ,0x86D1 ,0xB162 //HANGUL SYLLABLE NIEUN YE NIEUNHIEUH - ,0x86D2 ,0xB163 //HANGUL SYLLABLE NIEUN YE TIKEUT - ,0x86D3 ,0xB164 //HANGUL SYLLABLE NIEUN YE RIEUL - ,0x86D4 ,0xB165 //HANGUL SYLLABLE NIEUN YE RIEULKIYEOK - ,0x86D5 ,0xB166 //HANGUL SYLLABLE NIEUN YE RIEULMIEUM - ,0x86D6 ,0xB167 //HANGUL SYLLABLE NIEUN YE RIEULPIEUP - ,0x86D7 ,0xB168 //HANGUL SYLLABLE NIEUN YE RIEULSIOS - ,0x86D8 ,0xB169 //HANGUL SYLLABLE NIEUN YE RIEULTHIEUTH - ,0x86D9 ,0xB16A //HANGUL SYLLABLE NIEUN YE RIEULPHIEUPH - ,0x86DA ,0xB16B //HANGUL SYLLABLE NIEUN YE RIEULHIEUH - ,0x86DB ,0xB16C //HANGUL SYLLABLE NIEUN YE MIEUM - ,0x86DC ,0xB16D //HANGUL SYLLABLE NIEUN YE PIEUP - ,0x86DD ,0xB16E //HANGUL SYLLABLE NIEUN YE PIEUPSIOS - ,0x86DE ,0xB16F //HANGUL SYLLABLE NIEUN YE SIOS - ,0x86DF ,0xB170 //HANGUL SYLLABLE NIEUN YE SSANGSIOS - ,0x86E0 ,0xB171 //HANGUL SYLLABLE NIEUN YE IEUNG - ,0x86E1 ,0xB172 //HANGUL SYLLABLE NIEUN YE CIEUC - ,0x86E2 ,0xB173 //HANGUL SYLLABLE NIEUN YE CHIEUCH - ,0x86E3 ,0xB174 //HANGUL SYLLABLE NIEUN YE KHIEUKH - ,0x86E4 ,0xB175 //HANGUL SYLLABLE NIEUN YE THIEUTH - ,0x86E5 ,0xB176 //HANGUL SYLLABLE NIEUN YE PHIEUPH - ,0x86E6 ,0xB177 //HANGUL SYLLABLE NIEUN YE HIEUH - ,0x86E7 ,0xB17A //HANGUL SYLLABLE NIEUN O SSANGKIYEOK - ,0x86E8 ,0xB17B //HANGUL SYLLABLE NIEUN O KIYEOKSIOS - ,0x86E9 ,0xB17D //HANGUL SYLLABLE NIEUN O NIEUNCIEUC - ,0x86EA ,0xB17E //HANGUL SYLLABLE NIEUN O NIEUNHIEUH - ,0x86EB ,0xB17F //HANGUL SYLLABLE NIEUN O TIKEUT - ,0x86EC ,0xB181 //HANGUL SYLLABLE NIEUN O RIEULKIYEOK - ,0x86ED ,0xB183 //HANGUL SYLLABLE NIEUN O RIEULPIEUP - ,0x86EE ,0xB184 //HANGUL SYLLABLE NIEUN O RIEULSIOS - ,0x86EF ,0xB185 //HANGUL SYLLABLE NIEUN O RIEULTHIEUTH - ,0x86F0 ,0xB186 //HANGUL SYLLABLE NIEUN O RIEULPHIEUPH - ,0x86F1 ,0xB187 //HANGUL SYLLABLE NIEUN O RIEULHIEUH - ,0x86F2 ,0xB18A //HANGUL SYLLABLE NIEUN O PIEUPSIOS - ,0x86F3 ,0xB18C //HANGUL SYLLABLE NIEUN O SSANGSIOS - ,0x86F4 ,0xB18E //HANGUL SYLLABLE NIEUN O CIEUC - ,0x86F5 ,0xB18F //HANGUL SYLLABLE NIEUN O CHIEUCH - ,0x86F6 ,0xB190 //HANGUL SYLLABLE NIEUN O KHIEUKH - ,0x86F7 ,0xB191 //HANGUL SYLLABLE NIEUN O THIEUTH - ,0x86F8 ,0xB195 //HANGUL SYLLABLE NIEUN WA KIYEOK - ,0x86F9 ,0xB196 //HANGUL SYLLABLE NIEUN WA SSANGKIYEOK - ,0x86FA ,0xB197 //HANGUL SYLLABLE NIEUN WA KIYEOKSIOS - ,0x86FB ,0xB199 //HANGUL SYLLABLE NIEUN WA NIEUNCIEUC - ,0x86FC ,0xB19A //HANGUL SYLLABLE NIEUN WA NIEUNHIEUH - ,0x86FD ,0xB19B //HANGUL SYLLABLE NIEUN WA TIKEUT - ,0x86FE ,0xB19D //HANGUL SYLLABLE NIEUN WA RIEULKIYEOK - ,0x8741 ,0xB19E //HANGUL SYLLABLE NIEUN WA RIEULMIEUM - ,0x8742 ,0xB19F //HANGUL SYLLABLE NIEUN WA RIEULPIEUP - ,0x8743 ,0xB1A0 //HANGUL SYLLABLE NIEUN WA RIEULSIOS - ,0x8744 ,0xB1A1 //HANGUL SYLLABLE NIEUN WA RIEULTHIEUTH - ,0x8745 ,0xB1A2 //HANGUL SYLLABLE NIEUN WA RIEULPHIEUPH - ,0x8746 ,0xB1A3 //HANGUL SYLLABLE NIEUN WA RIEULHIEUH - ,0x8747 ,0xB1A4 //HANGUL SYLLABLE NIEUN WA MIEUM - ,0x8748 ,0xB1A5 //HANGUL SYLLABLE NIEUN WA PIEUP - ,0x8749 ,0xB1A6 //HANGUL SYLLABLE NIEUN WA PIEUPSIOS - ,0x874A ,0xB1A7 //HANGUL SYLLABLE NIEUN WA SIOS - ,0x874B ,0xB1A9 //HANGUL SYLLABLE NIEUN WA IEUNG - ,0x874C ,0xB1AA //HANGUL SYLLABLE NIEUN WA CIEUC - ,0x874D ,0xB1AB //HANGUL SYLLABLE NIEUN WA CHIEUCH - ,0x874E ,0xB1AC //HANGUL SYLLABLE NIEUN WA KHIEUKH - ,0x874F ,0xB1AD //HANGUL SYLLABLE NIEUN WA THIEUTH - ,0x8750 ,0xB1AE //HANGUL SYLLABLE NIEUN WA PHIEUPH - ,0x8751 ,0xB1AF //HANGUL SYLLABLE NIEUN WA HIEUH - ,0x8752 ,0xB1B0 //HANGUL SYLLABLE NIEUN WAE - ,0x8753 ,0xB1B1 //HANGUL SYLLABLE NIEUN WAE KIYEOK - ,0x8754 ,0xB1B2 //HANGUL SYLLABLE NIEUN WAE SSANGKIYEOK - ,0x8755 ,0xB1B3 //HANGUL SYLLABLE NIEUN WAE KIYEOKSIOS - ,0x8756 ,0xB1B4 //HANGUL SYLLABLE NIEUN WAE NIEUN - ,0x8757 ,0xB1B5 //HANGUL SYLLABLE NIEUN WAE NIEUNCIEUC - ,0x8758 ,0xB1B6 //HANGUL SYLLABLE NIEUN WAE NIEUNHIEUH - ,0x8759 ,0xB1B7 //HANGUL SYLLABLE NIEUN WAE TIKEUT - ,0x875A ,0xB1B8 //HANGUL SYLLABLE NIEUN WAE RIEUL - ,0x8761 ,0xB1B9 //HANGUL SYLLABLE NIEUN WAE RIEULKIYEOK - ,0x8762 ,0xB1BA //HANGUL SYLLABLE NIEUN WAE RIEULMIEUM - ,0x8763 ,0xB1BB //HANGUL SYLLABLE NIEUN WAE RIEULPIEUP - ,0x8764 ,0xB1BC //HANGUL SYLLABLE NIEUN WAE RIEULSIOS - ,0x8765 ,0xB1BD //HANGUL SYLLABLE NIEUN WAE RIEULTHIEUTH - ,0x8766 ,0xB1BE //HANGUL SYLLABLE NIEUN WAE RIEULPHIEUPH - ,0x8767 ,0xB1BF //HANGUL SYLLABLE NIEUN WAE RIEULHIEUH - ,0x8768 ,0xB1C0 //HANGUL SYLLABLE NIEUN WAE MIEUM - ,0x8769 ,0xB1C1 //HANGUL SYLLABLE NIEUN WAE PIEUP - ,0x876A ,0xB1C2 //HANGUL SYLLABLE NIEUN WAE PIEUPSIOS - ,0x876B ,0xB1C3 //HANGUL SYLLABLE NIEUN WAE SIOS - ,0x876C ,0xB1C4 //HANGUL SYLLABLE NIEUN WAE SSANGSIOS - ,0x876D ,0xB1C5 //HANGUL SYLLABLE NIEUN WAE IEUNG - ,0x876E ,0xB1C6 //HANGUL SYLLABLE NIEUN WAE CIEUC - ,0x876F ,0xB1C7 //HANGUL SYLLABLE NIEUN WAE CHIEUCH - ,0x8770 ,0xB1C8 //HANGUL SYLLABLE NIEUN WAE KHIEUKH - ,0x8771 ,0xB1C9 //HANGUL SYLLABLE NIEUN WAE THIEUTH - ,0x8772 ,0xB1CA //HANGUL SYLLABLE NIEUN WAE PHIEUPH - ,0x8773 ,0xB1CB //HANGUL SYLLABLE NIEUN WAE HIEUH - ,0x8774 ,0xB1CD //HANGUL SYLLABLE NIEUN OE KIYEOK - ,0x8775 ,0xB1CE //HANGUL SYLLABLE NIEUN OE SSANGKIYEOK - ,0x8776 ,0xB1CF //HANGUL SYLLABLE NIEUN OE KIYEOKSIOS - ,0x8777 ,0xB1D1 //HANGUL SYLLABLE NIEUN OE NIEUNCIEUC - ,0x8778 ,0xB1D2 //HANGUL SYLLABLE NIEUN OE NIEUNHIEUH - ,0x8779 ,0xB1D3 //HANGUL SYLLABLE NIEUN OE TIKEUT - ,0x877A ,0xB1D5 //HANGUL SYLLABLE NIEUN OE RIEULKIYEOK - ,0x8781 ,0xB1D6 //HANGUL SYLLABLE NIEUN OE RIEULMIEUM - ,0x8782 ,0xB1D7 //HANGUL SYLLABLE NIEUN OE RIEULPIEUP - ,0x8783 ,0xB1D8 //HANGUL SYLLABLE NIEUN OE RIEULSIOS - ,0x8784 ,0xB1D9 //HANGUL SYLLABLE NIEUN OE RIEULTHIEUTH - ,0x8785 ,0xB1DA //HANGUL SYLLABLE NIEUN OE RIEULPHIEUPH - ,0x8786 ,0xB1DB //HANGUL SYLLABLE NIEUN OE RIEULHIEUH - ,0x8787 ,0xB1DE //HANGUL SYLLABLE NIEUN OE PIEUPSIOS - ,0x8788 ,0xB1E0 //HANGUL SYLLABLE NIEUN OE SSANGSIOS - ,0x8789 ,0xB1E1 //HANGUL SYLLABLE NIEUN OE IEUNG - ,0x878A ,0xB1E2 //HANGUL SYLLABLE NIEUN OE CIEUC - ,0x878B ,0xB1E3 //HANGUL SYLLABLE NIEUN OE CHIEUCH - ,0x878C ,0xB1E4 //HANGUL SYLLABLE NIEUN OE KHIEUKH - ,0x878D ,0xB1E5 //HANGUL SYLLABLE NIEUN OE THIEUTH - ,0x878E ,0xB1E6 //HANGUL SYLLABLE NIEUN OE PHIEUPH - ,0x878F ,0xB1E7 //HANGUL SYLLABLE NIEUN OE HIEUH - ,0x8790 ,0xB1EA //HANGUL SYLLABLE NIEUN YO SSANGKIYEOK - ,0x8791 ,0xB1EB //HANGUL SYLLABLE NIEUN YO KIYEOKSIOS - ,0x8792 ,0xB1ED //HANGUL SYLLABLE NIEUN YO NIEUNCIEUC - ,0x8793 ,0xB1EE //HANGUL SYLLABLE NIEUN YO NIEUNHIEUH - ,0x8794 ,0xB1EF //HANGUL SYLLABLE NIEUN YO TIKEUT - ,0x8795 ,0xB1F1 //HANGUL SYLLABLE NIEUN YO RIEULKIYEOK - ,0x8796 ,0xB1F2 //HANGUL SYLLABLE NIEUN YO RIEULMIEUM - ,0x8797 ,0xB1F3 //HANGUL SYLLABLE NIEUN YO RIEULPIEUP - ,0x8798 ,0xB1F4 //HANGUL SYLLABLE NIEUN YO RIEULSIOS - ,0x8799 ,0xB1F5 //HANGUL SYLLABLE NIEUN YO RIEULTHIEUTH - ,0x879A ,0xB1F6 //HANGUL SYLLABLE NIEUN YO RIEULPHIEUPH - ,0x879B ,0xB1F7 //HANGUL SYLLABLE NIEUN YO RIEULHIEUH - ,0x879C ,0xB1F8 //HANGUL SYLLABLE NIEUN YO MIEUM - ,0x879D ,0xB1FA //HANGUL SYLLABLE NIEUN YO PIEUPSIOS - ,0x879E ,0xB1FC //HANGUL SYLLABLE NIEUN YO SSANGSIOS - ,0x879F ,0xB1FE //HANGUL SYLLABLE NIEUN YO CIEUC - ,0x87A0 ,0xB1FF //HANGUL SYLLABLE NIEUN YO CHIEUCH - ,0x87A1 ,0xB200 //HANGUL SYLLABLE NIEUN YO KHIEUKH - ,0x87A2 ,0xB201 //HANGUL SYLLABLE NIEUN YO THIEUTH - ,0x87A3 ,0xB202 //HANGUL SYLLABLE NIEUN YO PHIEUPH - ,0x87A4 ,0xB203 //HANGUL SYLLABLE NIEUN YO HIEUH - ,0x87A5 ,0xB206 //HANGUL SYLLABLE NIEUN U SSANGKIYEOK - ,0x87A6 ,0xB207 //HANGUL SYLLABLE NIEUN U KIYEOKSIOS - ,0x87A7 ,0xB209 //HANGUL SYLLABLE NIEUN U NIEUNCIEUC - ,0x87A8 ,0xB20A //HANGUL SYLLABLE NIEUN U NIEUNHIEUH - ,0x87A9 ,0xB20D //HANGUL SYLLABLE NIEUN U RIEULKIYEOK - ,0x87AA ,0xB20E //HANGUL SYLLABLE NIEUN U RIEULMIEUM - ,0x87AB ,0xB20F //HANGUL SYLLABLE NIEUN U RIEULPIEUP - ,0x87AC ,0xB210 //HANGUL SYLLABLE NIEUN U RIEULSIOS - ,0x87AD ,0xB211 //HANGUL SYLLABLE NIEUN U RIEULTHIEUTH - ,0x87AE ,0xB212 //HANGUL SYLLABLE NIEUN U RIEULPHIEUPH - ,0x87AF ,0xB213 //HANGUL SYLLABLE NIEUN U RIEULHIEUH - ,0x87B0 ,0xB216 //HANGUL SYLLABLE NIEUN U PIEUPSIOS - ,0x87B1 ,0xB218 //HANGUL SYLLABLE NIEUN U SSANGSIOS - ,0x87B2 ,0xB21A //HANGUL SYLLABLE NIEUN U CIEUC - ,0x87B3 ,0xB21B //HANGUL SYLLABLE NIEUN U CHIEUCH - ,0x87B4 ,0xB21C //HANGUL SYLLABLE NIEUN U KHIEUKH - ,0x87B5 ,0xB21D //HANGUL SYLLABLE NIEUN U THIEUTH - ,0x87B6 ,0xB21E //HANGUL SYLLABLE NIEUN U PHIEUPH - ,0x87B7 ,0xB21F //HANGUL SYLLABLE NIEUN U HIEUH - ,0x87B8 ,0xB221 //HANGUL SYLLABLE NIEUN WEO KIYEOK - ,0x87B9 ,0xB222 //HANGUL SYLLABLE NIEUN WEO SSANGKIYEOK - ,0x87BA ,0xB223 //HANGUL SYLLABLE NIEUN WEO KIYEOKSIOS - ,0x87BB ,0xB224 //HANGUL SYLLABLE NIEUN WEO NIEUN - ,0x87BC ,0xB225 //HANGUL SYLLABLE NIEUN WEO NIEUNCIEUC - ,0x87BD ,0xB226 //HANGUL SYLLABLE NIEUN WEO NIEUNHIEUH - ,0x87BE ,0xB227 //HANGUL SYLLABLE NIEUN WEO TIKEUT - ,0x87BF ,0xB228 //HANGUL SYLLABLE NIEUN WEO RIEUL - ,0x87C0 ,0xB229 //HANGUL SYLLABLE NIEUN WEO RIEULKIYEOK - ,0x87C1 ,0xB22A //HANGUL SYLLABLE NIEUN WEO RIEULMIEUM - ,0x87C2 ,0xB22B //HANGUL SYLLABLE NIEUN WEO RIEULPIEUP - ,0x87C3 ,0xB22C //HANGUL SYLLABLE NIEUN WEO RIEULSIOS - ,0x87C4 ,0xB22D //HANGUL SYLLABLE NIEUN WEO RIEULTHIEUTH - ,0x87C5 ,0xB22E //HANGUL SYLLABLE NIEUN WEO RIEULPHIEUPH - ,0x87C6 ,0xB22F //HANGUL SYLLABLE NIEUN WEO RIEULHIEUH - ,0x87C7 ,0xB230 //HANGUL SYLLABLE NIEUN WEO MIEUM - ,0x87C8 ,0xB231 //HANGUL SYLLABLE NIEUN WEO PIEUP - ,0x87C9 ,0xB232 //HANGUL SYLLABLE NIEUN WEO PIEUPSIOS - ,0x87CA ,0xB233 //HANGUL SYLLABLE NIEUN WEO SIOS - ,0x87CB ,0xB235 //HANGUL SYLLABLE NIEUN WEO IEUNG - ,0x87CC ,0xB236 //HANGUL SYLLABLE NIEUN WEO CIEUC - ,0x87CD ,0xB237 //HANGUL SYLLABLE NIEUN WEO CHIEUCH - ,0x87CE ,0xB238 //HANGUL SYLLABLE NIEUN WEO KHIEUKH - ,0x87CF ,0xB239 //HANGUL SYLLABLE NIEUN WEO THIEUTH - ,0x87D0 ,0xB23A //HANGUL SYLLABLE NIEUN WEO PHIEUPH - ,0x87D1 ,0xB23B //HANGUL SYLLABLE NIEUN WEO HIEUH - ,0x87D2 ,0xB23D //HANGUL SYLLABLE NIEUN WE KIYEOK - ,0x87D3 ,0xB23E //HANGUL SYLLABLE NIEUN WE SSANGKIYEOK - ,0x87D4 ,0xB23F //HANGUL SYLLABLE NIEUN WE KIYEOKSIOS - ,0x87D5 ,0xB240 //HANGUL SYLLABLE NIEUN WE NIEUN - ,0x87D6 ,0xB241 //HANGUL SYLLABLE NIEUN WE NIEUNCIEUC - ,0x87D7 ,0xB242 //HANGUL SYLLABLE NIEUN WE NIEUNHIEUH - ,0x87D8 ,0xB243 //HANGUL SYLLABLE NIEUN WE TIKEUT - ,0x87D9 ,0xB244 //HANGUL SYLLABLE NIEUN WE RIEUL - ,0x87DA ,0xB245 //HANGUL SYLLABLE NIEUN WE RIEULKIYEOK - ,0x87DB ,0xB246 //HANGUL SYLLABLE NIEUN WE RIEULMIEUM - ,0x87DC ,0xB247 //HANGUL SYLLABLE NIEUN WE RIEULPIEUP - ,0x87DD ,0xB248 //HANGUL SYLLABLE NIEUN WE RIEULSIOS - ,0x87DE ,0xB249 //HANGUL SYLLABLE NIEUN WE RIEULTHIEUTH - ,0x87DF ,0xB24A //HANGUL SYLLABLE NIEUN WE RIEULPHIEUPH - ,0x87E0 ,0xB24B //HANGUL SYLLABLE NIEUN WE RIEULHIEUH - ,0x87E1 ,0xB24C //HANGUL SYLLABLE NIEUN WE MIEUM - ,0x87E2 ,0xB24D //HANGUL SYLLABLE NIEUN WE PIEUP - ,0x87E3 ,0xB24E //HANGUL SYLLABLE NIEUN WE PIEUPSIOS - ,0x87E4 ,0xB24F //HANGUL SYLLABLE NIEUN WE SIOS - ,0x87E5 ,0xB250 //HANGUL SYLLABLE NIEUN WE SSANGSIOS - ,0x87E6 ,0xB251 //HANGUL SYLLABLE NIEUN WE IEUNG - ,0x87E7 ,0xB252 //HANGUL SYLLABLE NIEUN WE CIEUC - ,0x87E8 ,0xB253 //HANGUL SYLLABLE NIEUN WE CHIEUCH - ,0x87E9 ,0xB254 //HANGUL SYLLABLE NIEUN WE KHIEUKH - ,0x87EA ,0xB255 //HANGUL SYLLABLE NIEUN WE THIEUTH - ,0x87EB ,0xB256 //HANGUL SYLLABLE NIEUN WE PHIEUPH - ,0x87EC ,0xB257 //HANGUL SYLLABLE NIEUN WE HIEUH - ,0x87ED ,0xB259 //HANGUL SYLLABLE NIEUN WI KIYEOK - ,0x87EE ,0xB25A //HANGUL SYLLABLE NIEUN WI SSANGKIYEOK - ,0x87EF ,0xB25B //HANGUL SYLLABLE NIEUN WI KIYEOKSIOS - ,0x87F0 ,0xB25D //HANGUL SYLLABLE NIEUN WI NIEUNCIEUC - ,0x87F1 ,0xB25E //HANGUL SYLLABLE NIEUN WI NIEUNHIEUH - ,0x87F2 ,0xB25F //HANGUL SYLLABLE NIEUN WI TIKEUT - ,0x87F3 ,0xB261 //HANGUL SYLLABLE NIEUN WI RIEULKIYEOK - ,0x87F4 ,0xB262 //HANGUL SYLLABLE NIEUN WI RIEULMIEUM - ,0x87F5 ,0xB263 //HANGUL SYLLABLE NIEUN WI RIEULPIEUP - ,0x87F6 ,0xB264 //HANGUL SYLLABLE NIEUN WI RIEULSIOS - ,0x87F7 ,0xB265 //HANGUL SYLLABLE NIEUN WI RIEULTHIEUTH - ,0x87F8 ,0xB266 //HANGUL SYLLABLE NIEUN WI RIEULPHIEUPH - ,0x87F9 ,0xB267 //HANGUL SYLLABLE NIEUN WI RIEULHIEUH - ,0x87FA ,0xB26A //HANGUL SYLLABLE NIEUN WI PIEUPSIOS - ,0x87FB ,0xB26B //HANGUL SYLLABLE NIEUN WI SIOS - ,0x87FC ,0xB26C //HANGUL SYLLABLE NIEUN WI SSANGSIOS - ,0x87FD ,0xB26D //HANGUL SYLLABLE NIEUN WI IEUNG - ,0x87FE ,0xB26E //HANGUL SYLLABLE NIEUN WI CIEUC - ,0x8841 ,0xB26F //HANGUL SYLLABLE NIEUN WI CHIEUCH - ,0x8842 ,0xB270 //HANGUL SYLLABLE NIEUN WI KHIEUKH - ,0x8843 ,0xB271 //HANGUL SYLLABLE NIEUN WI THIEUTH - ,0x8844 ,0xB272 //HANGUL SYLLABLE NIEUN WI PHIEUPH - ,0x8845 ,0xB273 //HANGUL SYLLABLE NIEUN WI HIEUH - ,0x8846 ,0xB276 //HANGUL SYLLABLE NIEUN YU SSANGKIYEOK - ,0x8847 ,0xB277 //HANGUL SYLLABLE NIEUN YU KIYEOKSIOS - ,0x8848 ,0xB278 //HANGUL SYLLABLE NIEUN YU NIEUN - ,0x8849 ,0xB279 //HANGUL SYLLABLE NIEUN YU NIEUNCIEUC - ,0x884A ,0xB27A //HANGUL SYLLABLE NIEUN YU NIEUNHIEUH - ,0x884B ,0xB27B //HANGUL SYLLABLE NIEUN YU TIKEUT - ,0x884C ,0xB27D //HANGUL SYLLABLE NIEUN YU RIEULKIYEOK - ,0x884D ,0xB27E //HANGUL SYLLABLE NIEUN YU RIEULMIEUM - ,0x884E ,0xB27F //HANGUL SYLLABLE NIEUN YU RIEULPIEUP - ,0x884F ,0xB280 //HANGUL SYLLABLE NIEUN YU RIEULSIOS - ,0x8850 ,0xB281 //HANGUL SYLLABLE NIEUN YU RIEULTHIEUTH - ,0x8851 ,0xB282 //HANGUL SYLLABLE NIEUN YU RIEULPHIEUPH - ,0x8852 ,0xB283 //HANGUL SYLLABLE NIEUN YU RIEULHIEUH - ,0x8853 ,0xB286 //HANGUL SYLLABLE NIEUN YU PIEUPSIOS - ,0x8854 ,0xB287 //HANGUL SYLLABLE NIEUN YU SIOS - ,0x8855 ,0xB288 //HANGUL SYLLABLE NIEUN YU SSANGSIOS - ,0x8856 ,0xB28A //HANGUL SYLLABLE NIEUN YU CIEUC - ,0x8857 ,0xB28B //HANGUL SYLLABLE NIEUN YU CHIEUCH - ,0x8858 ,0xB28C //HANGUL SYLLABLE NIEUN YU KHIEUKH - ,0x8859 ,0xB28D //HANGUL SYLLABLE NIEUN YU THIEUTH - ,0x885A ,0xB28E //HANGUL SYLLABLE NIEUN YU PHIEUPH - ,0x8861 ,0xB28F //HANGUL SYLLABLE NIEUN YU HIEUH - ,0x8862 ,0xB292 //HANGUL SYLLABLE NIEUN EU SSANGKIYEOK - ,0x8863 ,0xB293 //HANGUL SYLLABLE NIEUN EU KIYEOKSIOS - ,0x8864 ,0xB295 //HANGUL SYLLABLE NIEUN EU NIEUNCIEUC - ,0x8865 ,0xB296 //HANGUL SYLLABLE NIEUN EU NIEUNHIEUH - ,0x8866 ,0xB297 //HANGUL SYLLABLE NIEUN EU TIKEUT - ,0x8867 ,0xB29B //HANGUL SYLLABLE NIEUN EU RIEULPIEUP - ,0x8868 ,0xB29C //HANGUL SYLLABLE NIEUN EU RIEULSIOS - ,0x8869 ,0xB29D //HANGUL SYLLABLE NIEUN EU RIEULTHIEUTH - ,0x886A ,0xB29E //HANGUL SYLLABLE NIEUN EU RIEULPHIEUPH - ,0x886B ,0xB29F //HANGUL SYLLABLE NIEUN EU RIEULHIEUH - ,0x886C ,0xB2A2 //HANGUL SYLLABLE NIEUN EU PIEUPSIOS - ,0x886D ,0xB2A4 //HANGUL SYLLABLE NIEUN EU SSANGSIOS - ,0x886E ,0xB2A7 //HANGUL SYLLABLE NIEUN EU CHIEUCH - ,0x886F ,0xB2A8 //HANGUL SYLLABLE NIEUN EU KHIEUKH - ,0x8870 ,0xB2A9 //HANGUL SYLLABLE NIEUN EU THIEUTH - ,0x8871 ,0xB2AB //HANGUL SYLLABLE NIEUN EU HIEUH - ,0x8872 ,0xB2AD //HANGUL SYLLABLE NIEUN YI KIYEOK - ,0x8873 ,0xB2AE //HANGUL SYLLABLE NIEUN YI SSANGKIYEOK - ,0x8874 ,0xB2AF //HANGUL SYLLABLE NIEUN YI KIYEOKSIOS - ,0x8875 ,0xB2B1 //HANGUL SYLLABLE NIEUN YI NIEUNCIEUC - ,0x8876 ,0xB2B2 //HANGUL SYLLABLE NIEUN YI NIEUNHIEUH - ,0x8877 ,0xB2B3 //HANGUL SYLLABLE NIEUN YI TIKEUT - ,0x8878 ,0xB2B5 //HANGUL SYLLABLE NIEUN YI RIEULKIYEOK - ,0x8879 ,0xB2B6 //HANGUL SYLLABLE NIEUN YI RIEULMIEUM - ,0x887A ,0xB2B7 //HANGUL SYLLABLE NIEUN YI RIEULPIEUP - ,0x8881 ,0xB2B8 //HANGUL SYLLABLE NIEUN YI RIEULSIOS - ,0x8882 ,0xB2B9 //HANGUL SYLLABLE NIEUN YI RIEULTHIEUTH - ,0x8883 ,0xB2BA //HANGUL SYLLABLE NIEUN YI RIEULPHIEUPH - ,0x8884 ,0xB2BB //HANGUL SYLLABLE NIEUN YI RIEULHIEUH - ,0x8885 ,0xB2BC //HANGUL SYLLABLE NIEUN YI MIEUM - ,0x8886 ,0xB2BD //HANGUL SYLLABLE NIEUN YI PIEUP - ,0x8887 ,0xB2BE //HANGUL SYLLABLE NIEUN YI PIEUPSIOS - ,0x8888 ,0xB2BF //HANGUL SYLLABLE NIEUN YI SIOS - ,0x8889 ,0xB2C0 //HANGUL SYLLABLE NIEUN YI SSANGSIOS - ,0x888A ,0xB2C1 //HANGUL SYLLABLE NIEUN YI IEUNG - ,0x888B ,0xB2C2 //HANGUL SYLLABLE NIEUN YI CIEUC - ,0x888C ,0xB2C3 //HANGUL SYLLABLE NIEUN YI CHIEUCH - ,0x888D ,0xB2C4 //HANGUL SYLLABLE NIEUN YI KHIEUKH - ,0x888E ,0xB2C5 //HANGUL SYLLABLE NIEUN YI THIEUTH - ,0x888F ,0xB2C6 //HANGUL SYLLABLE NIEUN YI PHIEUPH - ,0x8890 ,0xB2C7 //HANGUL SYLLABLE NIEUN YI HIEUH - ,0x8891 ,0xB2CA //HANGUL SYLLABLE NIEUN I SSANGKIYEOK - ,0x8892 ,0xB2CB //HANGUL SYLLABLE NIEUN I KIYEOKSIOS - ,0x8893 ,0xB2CD //HANGUL SYLLABLE NIEUN I NIEUNCIEUC - ,0x8894 ,0xB2CE //HANGUL SYLLABLE NIEUN I NIEUNHIEUH - ,0x8895 ,0xB2CF //HANGUL SYLLABLE NIEUN I TIKEUT - ,0x8896 ,0xB2D1 //HANGUL SYLLABLE NIEUN I RIEULKIYEOK - ,0x8897 ,0xB2D3 //HANGUL SYLLABLE NIEUN I RIEULPIEUP - ,0x8898 ,0xB2D4 //HANGUL SYLLABLE NIEUN I RIEULSIOS - ,0x8899 ,0xB2D5 //HANGUL SYLLABLE NIEUN I RIEULTHIEUTH - ,0x889A ,0xB2D6 //HANGUL SYLLABLE NIEUN I RIEULPHIEUPH - ,0x889B ,0xB2D7 //HANGUL SYLLABLE NIEUN I RIEULHIEUH - ,0x889C ,0xB2DA //HANGUL SYLLABLE NIEUN I PIEUPSIOS - ,0x889D ,0xB2DC //HANGUL SYLLABLE NIEUN I SSANGSIOS - ,0x889E ,0xB2DE //HANGUL SYLLABLE NIEUN I CIEUC - ,0x889F ,0xB2DF //HANGUL SYLLABLE NIEUN I CHIEUCH - ,0x88A0 ,0xB2E0 //HANGUL SYLLABLE NIEUN I KHIEUKH - ,0x88A1 ,0xB2E1 //HANGUL SYLLABLE NIEUN I THIEUTH - ,0x88A2 ,0xB2E3 //HANGUL SYLLABLE NIEUN I HIEUH - ,0x88A3 ,0xB2E7 //HANGUL SYLLABLE TIKEUT A KIYEOKSIOS - ,0x88A4 ,0xB2E9 //HANGUL SYLLABLE TIKEUT A NIEUNCIEUC - ,0x88A5 ,0xB2EA //HANGUL SYLLABLE TIKEUT A NIEUNHIEUH - ,0x88A6 ,0xB2F0 //HANGUL SYLLABLE TIKEUT A RIEULSIOS - ,0x88A7 ,0xB2F1 //HANGUL SYLLABLE TIKEUT A RIEULTHIEUTH - ,0x88A8 ,0xB2F2 //HANGUL SYLLABLE TIKEUT A RIEULPHIEUPH - ,0x88A9 ,0xB2F6 //HANGUL SYLLABLE TIKEUT A PIEUPSIOS - ,0x88AA ,0xB2FC //HANGUL SYLLABLE TIKEUT A KHIEUKH - ,0x88AB ,0xB2FD //HANGUL SYLLABLE TIKEUT A THIEUTH - ,0x88AC ,0xB2FE //HANGUL SYLLABLE TIKEUT A PHIEUPH - ,0x88AD ,0xB302 //HANGUL SYLLABLE TIKEUT AE SSANGKIYEOK - ,0x88AE ,0xB303 //HANGUL SYLLABLE TIKEUT AE KIYEOKSIOS - ,0x88AF ,0xB305 //HANGUL SYLLABLE TIKEUT AE NIEUNCIEUC - ,0x88B0 ,0xB306 //HANGUL SYLLABLE TIKEUT AE NIEUNHIEUH - ,0x88B1 ,0xB307 //HANGUL SYLLABLE TIKEUT AE TIKEUT - ,0x88B2 ,0xB309 //HANGUL SYLLABLE TIKEUT AE RIEULKIYEOK - ,0x88B3 ,0xB30A //HANGUL SYLLABLE TIKEUT AE RIEULMIEUM - ,0x88B4 ,0xB30B //HANGUL SYLLABLE TIKEUT AE RIEULPIEUP - ,0x88B5 ,0xB30C //HANGUL SYLLABLE TIKEUT AE RIEULSIOS - ,0x88B6 ,0xB30D //HANGUL SYLLABLE TIKEUT AE RIEULTHIEUTH - ,0x88B7 ,0xB30E //HANGUL SYLLABLE TIKEUT AE RIEULPHIEUPH - ,0x88B8 ,0xB30F //HANGUL SYLLABLE TIKEUT AE RIEULHIEUH - ,0x88B9 ,0xB312 //HANGUL SYLLABLE TIKEUT AE PIEUPSIOS - ,0x88BA ,0xB316 //HANGUL SYLLABLE TIKEUT AE CIEUC - ,0x88BB ,0xB317 //HANGUL SYLLABLE TIKEUT AE CHIEUCH - ,0x88BC ,0xB318 //HANGUL SYLLABLE TIKEUT AE KHIEUKH - ,0x88BD ,0xB319 //HANGUL SYLLABLE TIKEUT AE THIEUTH - ,0x88BE ,0xB31A //HANGUL SYLLABLE TIKEUT AE PHIEUPH - ,0x88BF ,0xB31B //HANGUL SYLLABLE TIKEUT AE HIEUH - ,0x88C0 ,0xB31D //HANGUL SYLLABLE TIKEUT YA KIYEOK - ,0x88C1 ,0xB31E //HANGUL SYLLABLE TIKEUT YA SSANGKIYEOK - ,0x88C2 ,0xB31F //HANGUL SYLLABLE TIKEUT YA KIYEOKSIOS - ,0x88C3 ,0xB320 //HANGUL SYLLABLE TIKEUT YA NIEUN - ,0x88C4 ,0xB321 //HANGUL SYLLABLE TIKEUT YA NIEUNCIEUC - ,0x88C5 ,0xB322 //HANGUL SYLLABLE TIKEUT YA NIEUNHIEUH - ,0x88C6 ,0xB323 //HANGUL SYLLABLE TIKEUT YA TIKEUT - ,0x88C7 ,0xB324 //HANGUL SYLLABLE TIKEUT YA RIEUL - ,0x88C8 ,0xB325 //HANGUL SYLLABLE TIKEUT YA RIEULKIYEOK - ,0x88C9 ,0xB326 //HANGUL SYLLABLE TIKEUT YA RIEULMIEUM - ,0x88CA ,0xB327 //HANGUL SYLLABLE TIKEUT YA RIEULPIEUP - ,0x88CB ,0xB328 //HANGUL SYLLABLE TIKEUT YA RIEULSIOS - ,0x88CC ,0xB329 //HANGUL SYLLABLE TIKEUT YA RIEULTHIEUTH - ,0x88CD ,0xB32A //HANGUL SYLLABLE TIKEUT YA RIEULPHIEUPH - ,0x88CE ,0xB32B //HANGUL SYLLABLE TIKEUT YA RIEULHIEUH - ,0x88CF ,0xB32C //HANGUL SYLLABLE TIKEUT YA MIEUM - ,0x88D0 ,0xB32D //HANGUL SYLLABLE TIKEUT YA PIEUP - ,0x88D1 ,0xB32E //HANGUL SYLLABLE TIKEUT YA PIEUPSIOS - ,0x88D2 ,0xB32F //HANGUL SYLLABLE TIKEUT YA SIOS - ,0x88D3 ,0xB330 //HANGUL SYLLABLE TIKEUT YA SSANGSIOS - ,0x88D4 ,0xB331 //HANGUL SYLLABLE TIKEUT YA IEUNG - ,0x88D5 ,0xB332 //HANGUL SYLLABLE TIKEUT YA CIEUC - ,0x88D6 ,0xB333 //HANGUL SYLLABLE TIKEUT YA CHIEUCH - ,0x88D7 ,0xB334 //HANGUL SYLLABLE TIKEUT YA KHIEUKH - ,0x88D8 ,0xB335 //HANGUL SYLLABLE TIKEUT YA THIEUTH - ,0x88D9 ,0xB336 //HANGUL SYLLABLE TIKEUT YA PHIEUPH - ,0x88DA ,0xB337 //HANGUL SYLLABLE TIKEUT YA HIEUH - ,0x88DB ,0xB338 //HANGUL SYLLABLE TIKEUT YAE - ,0x88DC ,0xB339 //HANGUL SYLLABLE TIKEUT YAE KIYEOK - ,0x88DD ,0xB33A //HANGUL SYLLABLE TIKEUT YAE SSANGKIYEOK - ,0x88DE ,0xB33B //HANGUL SYLLABLE TIKEUT YAE KIYEOKSIOS - ,0x88DF ,0xB33C //HANGUL SYLLABLE TIKEUT YAE NIEUN - ,0x88E0 ,0xB33D //HANGUL SYLLABLE TIKEUT YAE NIEUNCIEUC - ,0x88E1 ,0xB33E //HANGUL SYLLABLE TIKEUT YAE NIEUNHIEUH - ,0x88E2 ,0xB33F //HANGUL SYLLABLE TIKEUT YAE TIKEUT - ,0x88E3 ,0xB340 //HANGUL SYLLABLE TIKEUT YAE RIEUL - ,0x88E4 ,0xB341 //HANGUL SYLLABLE TIKEUT YAE RIEULKIYEOK - ,0x88E5 ,0xB342 //HANGUL SYLLABLE TIKEUT YAE RIEULMIEUM - ,0x88E6 ,0xB343 //HANGUL SYLLABLE TIKEUT YAE RIEULPIEUP - ,0x88E7 ,0xB344 //HANGUL SYLLABLE TIKEUT YAE RIEULSIOS - ,0x88E8 ,0xB345 //HANGUL SYLLABLE TIKEUT YAE RIEULTHIEUTH - ,0x88E9 ,0xB346 //HANGUL SYLLABLE TIKEUT YAE RIEULPHIEUPH - ,0x88EA ,0xB347 //HANGUL SYLLABLE TIKEUT YAE RIEULHIEUH - ,0x88EB ,0xB348 //HANGUL SYLLABLE TIKEUT YAE MIEUM - ,0x88EC ,0xB349 //HANGUL SYLLABLE TIKEUT YAE PIEUP - ,0x88ED ,0xB34A //HANGUL SYLLABLE TIKEUT YAE PIEUPSIOS - ,0x88EE ,0xB34B //HANGUL SYLLABLE TIKEUT YAE SIOS - ,0x88EF ,0xB34C //HANGUL SYLLABLE TIKEUT YAE SSANGSIOS - ,0x88F0 ,0xB34D //HANGUL SYLLABLE TIKEUT YAE IEUNG - ,0x88F1 ,0xB34E //HANGUL SYLLABLE TIKEUT YAE CIEUC - ,0x88F2 ,0xB34F //HANGUL SYLLABLE TIKEUT YAE CHIEUCH - ,0x88F3 ,0xB350 //HANGUL SYLLABLE TIKEUT YAE KHIEUKH - ,0x88F4 ,0xB351 //HANGUL SYLLABLE TIKEUT YAE THIEUTH - ,0x88F5 ,0xB352 //HANGUL SYLLABLE TIKEUT YAE PHIEUPH - ,0x88F6 ,0xB353 //HANGUL SYLLABLE TIKEUT YAE HIEUH - ,0x88F7 ,0xB357 //HANGUL SYLLABLE TIKEUT EO KIYEOKSIOS - ,0x88F8 ,0xB359 //HANGUL SYLLABLE TIKEUT EO NIEUNCIEUC - ,0x88F9 ,0xB35A //HANGUL SYLLABLE TIKEUT EO NIEUNHIEUH - ,0x88FA ,0xB35D //HANGUL SYLLABLE TIKEUT EO RIEULKIYEOK - ,0x88FB ,0xB360 //HANGUL SYLLABLE TIKEUT EO RIEULSIOS - ,0x88FC ,0xB361 //HANGUL SYLLABLE TIKEUT EO RIEULTHIEUTH - ,0x88FD ,0xB362 //HANGUL SYLLABLE TIKEUT EO RIEULPHIEUPH - ,0x88FE ,0xB363 //HANGUL SYLLABLE TIKEUT EO RIEULHIEUH - ,0x8941 ,0xB366 //HANGUL SYLLABLE TIKEUT EO PIEUPSIOS - ,0x8942 ,0xB368 //HANGUL SYLLABLE TIKEUT EO SSANGSIOS - ,0x8943 ,0xB36A //HANGUL SYLLABLE TIKEUT EO CIEUC - ,0x8944 ,0xB36C //HANGUL SYLLABLE TIKEUT EO KHIEUKH - ,0x8945 ,0xB36D //HANGUL SYLLABLE TIKEUT EO THIEUTH - ,0x8946 ,0xB36F //HANGUL SYLLABLE TIKEUT EO HIEUH - ,0x8947 ,0xB372 //HANGUL SYLLABLE TIKEUT E SSANGKIYEOK - ,0x8948 ,0xB373 //HANGUL SYLLABLE TIKEUT E KIYEOKSIOS - ,0x8949 ,0xB375 //HANGUL SYLLABLE TIKEUT E NIEUNCIEUC - ,0x894A ,0xB376 //HANGUL SYLLABLE TIKEUT E NIEUNHIEUH - ,0x894B ,0xB377 //HANGUL SYLLABLE TIKEUT E TIKEUT - ,0x894C ,0xB379 //HANGUL SYLLABLE TIKEUT E RIEULKIYEOK - ,0x894D ,0xB37A //HANGUL SYLLABLE TIKEUT E RIEULMIEUM - ,0x894E ,0xB37B //HANGUL SYLLABLE TIKEUT E RIEULPIEUP - ,0x894F ,0xB37C //HANGUL SYLLABLE TIKEUT E RIEULSIOS - ,0x8950 ,0xB37D //HANGUL SYLLABLE TIKEUT E RIEULTHIEUTH - ,0x8951 ,0xB37E //HANGUL SYLLABLE TIKEUT E RIEULPHIEUPH - ,0x8952 ,0xB37F //HANGUL SYLLABLE TIKEUT E RIEULHIEUH - ,0x8953 ,0xB382 //HANGUL SYLLABLE TIKEUT E PIEUPSIOS - ,0x8954 ,0xB386 //HANGUL SYLLABLE TIKEUT E CIEUC - ,0x8955 ,0xB387 //HANGUL SYLLABLE TIKEUT E CHIEUCH - ,0x8956 ,0xB388 //HANGUL SYLLABLE TIKEUT E KHIEUKH - ,0x8957 ,0xB389 //HANGUL SYLLABLE TIKEUT E THIEUTH - ,0x8958 ,0xB38A //HANGUL SYLLABLE TIKEUT E PHIEUPH - ,0x8959 ,0xB38B //HANGUL SYLLABLE TIKEUT E HIEUH - ,0x895A ,0xB38D //HANGUL SYLLABLE TIKEUT YEO KIYEOK - ,0x8961 ,0xB38E //HANGUL SYLLABLE TIKEUT YEO SSANGKIYEOK - ,0x8962 ,0xB38F //HANGUL SYLLABLE TIKEUT YEO KIYEOKSIOS - ,0x8963 ,0xB391 //HANGUL SYLLABLE TIKEUT YEO NIEUNCIEUC - ,0x8964 ,0xB392 //HANGUL SYLLABLE TIKEUT YEO NIEUNHIEUH - ,0x8965 ,0xB393 //HANGUL SYLLABLE TIKEUT YEO TIKEUT - ,0x8966 ,0xB395 //HANGUL SYLLABLE TIKEUT YEO RIEULKIYEOK - ,0x8967 ,0xB396 //HANGUL SYLLABLE TIKEUT YEO RIEULMIEUM - ,0x8968 ,0xB397 //HANGUL SYLLABLE TIKEUT YEO RIEULPIEUP - ,0x8969 ,0xB398 //HANGUL SYLLABLE TIKEUT YEO RIEULSIOS - ,0x896A ,0xB399 //HANGUL SYLLABLE TIKEUT YEO RIEULTHIEUTH - ,0x896B ,0xB39A //HANGUL SYLLABLE TIKEUT YEO RIEULPHIEUPH - ,0x896C ,0xB39B //HANGUL SYLLABLE TIKEUT YEO RIEULHIEUH - ,0x896D ,0xB39C //HANGUL SYLLABLE TIKEUT YEO MIEUM - ,0x896E ,0xB39D //HANGUL SYLLABLE TIKEUT YEO PIEUP - ,0x896F ,0xB39E //HANGUL SYLLABLE TIKEUT YEO PIEUPSIOS - ,0x8970 ,0xB39F //HANGUL SYLLABLE TIKEUT YEO SIOS - ,0x8971 ,0xB3A2 //HANGUL SYLLABLE TIKEUT YEO CIEUC - ,0x8972 ,0xB3A3 //HANGUL SYLLABLE TIKEUT YEO CHIEUCH - ,0x8973 ,0xB3A4 //HANGUL SYLLABLE TIKEUT YEO KHIEUKH - ,0x8974 ,0xB3A5 //HANGUL SYLLABLE TIKEUT YEO THIEUTH - ,0x8975 ,0xB3A6 //HANGUL SYLLABLE TIKEUT YEO PHIEUPH - ,0x8976 ,0xB3A7 //HANGUL SYLLABLE TIKEUT YEO HIEUH - ,0x8977 ,0xB3A9 //HANGUL SYLLABLE TIKEUT YE KIYEOK - ,0x8978 ,0xB3AA //HANGUL SYLLABLE TIKEUT YE SSANGKIYEOK - ,0x8979 ,0xB3AB //HANGUL SYLLABLE TIKEUT YE KIYEOKSIOS - ,0x897A ,0xB3AD //HANGUL SYLLABLE TIKEUT YE NIEUNCIEUC - ,0x8981 ,0xB3AE //HANGUL SYLLABLE TIKEUT YE NIEUNHIEUH - ,0x8982 ,0xB3AF //HANGUL SYLLABLE TIKEUT YE TIKEUT - ,0x8983 ,0xB3B0 //HANGUL SYLLABLE TIKEUT YE RIEUL - ,0x8984 ,0xB3B1 //HANGUL SYLLABLE TIKEUT YE RIEULKIYEOK - ,0x8985 ,0xB3B2 //HANGUL SYLLABLE TIKEUT YE RIEULMIEUM - ,0x8986 ,0xB3B3 //HANGUL SYLLABLE TIKEUT YE RIEULPIEUP - ,0x8987 ,0xB3B4 //HANGUL SYLLABLE TIKEUT YE RIEULSIOS - ,0x8988 ,0xB3B5 //HANGUL SYLLABLE TIKEUT YE RIEULTHIEUTH - ,0x8989 ,0xB3B6 //HANGUL SYLLABLE TIKEUT YE RIEULPHIEUPH - ,0x898A ,0xB3B7 //HANGUL SYLLABLE TIKEUT YE RIEULHIEUH - ,0x898B ,0xB3B8 //HANGUL SYLLABLE TIKEUT YE MIEUM - ,0x898C ,0xB3B9 //HANGUL SYLLABLE TIKEUT YE PIEUP - ,0x898D ,0xB3BA //HANGUL SYLLABLE TIKEUT YE PIEUPSIOS - ,0x898E ,0xB3BB //HANGUL SYLLABLE TIKEUT YE SIOS - ,0x898F ,0xB3BC //HANGUL SYLLABLE TIKEUT YE SSANGSIOS - ,0x8990 ,0xB3BD //HANGUL SYLLABLE TIKEUT YE IEUNG - ,0x8991 ,0xB3BE //HANGUL SYLLABLE TIKEUT YE CIEUC - ,0x8992 ,0xB3BF //HANGUL SYLLABLE TIKEUT YE CHIEUCH - ,0x8993 ,0xB3C0 //HANGUL SYLLABLE TIKEUT YE KHIEUKH - ,0x8994 ,0xB3C1 //HANGUL SYLLABLE TIKEUT YE THIEUTH - ,0x8995 ,0xB3C2 //HANGUL SYLLABLE TIKEUT YE PHIEUPH - ,0x8996 ,0xB3C3 //HANGUL SYLLABLE TIKEUT YE HIEUH - ,0x8997 ,0xB3C6 //HANGUL SYLLABLE TIKEUT O SSANGKIYEOK - ,0x8998 ,0xB3C7 //HANGUL SYLLABLE TIKEUT O KIYEOKSIOS - ,0x8999 ,0xB3C9 //HANGUL SYLLABLE TIKEUT O NIEUNCIEUC - ,0x899A ,0xB3CA //HANGUL SYLLABLE TIKEUT O NIEUNHIEUH - ,0x899B ,0xB3CD //HANGUL SYLLABLE TIKEUT O RIEULKIYEOK - ,0x899C ,0xB3CF //HANGUL SYLLABLE TIKEUT O RIEULPIEUP - ,0x899D ,0xB3D1 //HANGUL SYLLABLE TIKEUT O RIEULTHIEUTH - ,0x899E ,0xB3D2 //HANGUL SYLLABLE TIKEUT O RIEULPHIEUPH - ,0x899F ,0xB3D3 //HANGUL SYLLABLE TIKEUT O RIEULHIEUH - ,0x89A0 ,0xB3D6 //HANGUL SYLLABLE TIKEUT O PIEUPSIOS - ,0x89A1 ,0xB3D8 //HANGUL SYLLABLE TIKEUT O SSANGSIOS - ,0x89A2 ,0xB3DA //HANGUL SYLLABLE TIKEUT O CIEUC - ,0x89A3 ,0xB3DC //HANGUL SYLLABLE TIKEUT O KHIEUKH - ,0x89A4 ,0xB3DE //HANGUL SYLLABLE TIKEUT O PHIEUPH - ,0x89A5 ,0xB3DF //HANGUL SYLLABLE TIKEUT O HIEUH - ,0x89A6 ,0xB3E1 //HANGUL SYLLABLE TIKEUT WA KIYEOK - ,0x89A7 ,0xB3E2 //HANGUL SYLLABLE TIKEUT WA SSANGKIYEOK - ,0x89A8 ,0xB3E3 //HANGUL SYLLABLE TIKEUT WA KIYEOKSIOS - ,0x89A9 ,0xB3E5 //HANGUL SYLLABLE TIKEUT WA NIEUNCIEUC - ,0x89AA ,0xB3E6 //HANGUL SYLLABLE TIKEUT WA NIEUNHIEUH - ,0x89AB ,0xB3E7 //HANGUL SYLLABLE TIKEUT WA TIKEUT - ,0x89AC ,0xB3E9 //HANGUL SYLLABLE TIKEUT WA RIEULKIYEOK - ,0x89AD ,0xB3EA //HANGUL SYLLABLE TIKEUT WA RIEULMIEUM - ,0x89AE ,0xB3EB //HANGUL SYLLABLE TIKEUT WA RIEULPIEUP - ,0x89AF ,0xB3EC //HANGUL SYLLABLE TIKEUT WA RIEULSIOS - ,0x89B0 ,0xB3ED //HANGUL SYLLABLE TIKEUT WA RIEULTHIEUTH - ,0x89B1 ,0xB3EE //HANGUL SYLLABLE TIKEUT WA RIEULPHIEUPH - ,0x89B2 ,0xB3EF //HANGUL SYLLABLE TIKEUT WA RIEULHIEUH - ,0x89B3 ,0xB3F0 //HANGUL SYLLABLE TIKEUT WA MIEUM - ,0x89B4 ,0xB3F1 //HANGUL SYLLABLE TIKEUT WA PIEUP - ,0x89B5 ,0xB3F2 //HANGUL SYLLABLE TIKEUT WA PIEUPSIOS - ,0x89B6 ,0xB3F3 //HANGUL SYLLABLE TIKEUT WA SIOS - ,0x89B7 ,0xB3F4 //HANGUL SYLLABLE TIKEUT WA SSANGSIOS - ,0x89B8 ,0xB3F5 //HANGUL SYLLABLE TIKEUT WA IEUNG - ,0x89B9 ,0xB3F6 //HANGUL SYLLABLE TIKEUT WA CIEUC - ,0x89BA ,0xB3F7 //HANGUL SYLLABLE TIKEUT WA CHIEUCH - ,0x89BB ,0xB3F8 //HANGUL SYLLABLE TIKEUT WA KHIEUKH - ,0x89BC ,0xB3F9 //HANGUL SYLLABLE TIKEUT WA THIEUTH - ,0x89BD ,0xB3FA //HANGUL SYLLABLE TIKEUT WA PHIEUPH - ,0x89BE ,0xB3FB //HANGUL SYLLABLE TIKEUT WA HIEUH - ,0x89BF ,0xB3FD //HANGUL SYLLABLE TIKEUT WAE KIYEOK - ,0x89C0 ,0xB3FE //HANGUL SYLLABLE TIKEUT WAE SSANGKIYEOK - ,0x89C1 ,0xB3FF //HANGUL SYLLABLE TIKEUT WAE KIYEOKSIOS - ,0x89C2 ,0xB400 //HANGUL SYLLABLE TIKEUT WAE NIEUN - ,0x89C3 ,0xB401 //HANGUL SYLLABLE TIKEUT WAE NIEUNCIEUC - ,0x89C4 ,0xB402 //HANGUL SYLLABLE TIKEUT WAE NIEUNHIEUH - ,0x89C5 ,0xB403 //HANGUL SYLLABLE TIKEUT WAE TIKEUT - ,0x89C6 ,0xB404 //HANGUL SYLLABLE TIKEUT WAE RIEUL - ,0x89C7 ,0xB405 //HANGUL SYLLABLE TIKEUT WAE RIEULKIYEOK - ,0x89C8 ,0xB406 //HANGUL SYLLABLE TIKEUT WAE RIEULMIEUM - ,0x89C9 ,0xB407 //HANGUL SYLLABLE TIKEUT WAE RIEULPIEUP - ,0x89CA ,0xB408 //HANGUL SYLLABLE TIKEUT WAE RIEULSIOS - ,0x89CB ,0xB409 //HANGUL SYLLABLE TIKEUT WAE RIEULTHIEUTH - ,0x89CC ,0xB40A //HANGUL SYLLABLE TIKEUT WAE RIEULPHIEUPH - ,0x89CD ,0xB40B //HANGUL SYLLABLE TIKEUT WAE RIEULHIEUH - ,0x89CE ,0xB40C //HANGUL SYLLABLE TIKEUT WAE MIEUM - ,0x89CF ,0xB40D //HANGUL SYLLABLE TIKEUT WAE PIEUP - ,0x89D0 ,0xB40E //HANGUL SYLLABLE TIKEUT WAE PIEUPSIOS - ,0x89D1 ,0xB40F //HANGUL SYLLABLE TIKEUT WAE SIOS - ,0x89D2 ,0xB411 //HANGUL SYLLABLE TIKEUT WAE IEUNG - ,0x89D3 ,0xB412 //HANGUL SYLLABLE TIKEUT WAE CIEUC - ,0x89D4 ,0xB413 //HANGUL SYLLABLE TIKEUT WAE CHIEUCH - ,0x89D5 ,0xB414 //HANGUL SYLLABLE TIKEUT WAE KHIEUKH - ,0x89D6 ,0xB415 //HANGUL SYLLABLE TIKEUT WAE THIEUTH - ,0x89D7 ,0xB416 //HANGUL SYLLABLE TIKEUT WAE PHIEUPH - ,0x89D8 ,0xB417 //HANGUL SYLLABLE TIKEUT WAE HIEUH - ,0x89D9 ,0xB419 //HANGUL SYLLABLE TIKEUT OE KIYEOK - ,0x89DA ,0xB41A //HANGUL SYLLABLE TIKEUT OE SSANGKIYEOK - ,0x89DB ,0xB41B //HANGUL SYLLABLE TIKEUT OE KIYEOKSIOS - ,0x89DC ,0xB41D //HANGUL SYLLABLE TIKEUT OE NIEUNCIEUC - ,0x89DD ,0xB41E //HANGUL SYLLABLE TIKEUT OE NIEUNHIEUH - ,0x89DE ,0xB41F //HANGUL SYLLABLE TIKEUT OE TIKEUT - ,0x89DF ,0xB421 //HANGUL SYLLABLE TIKEUT OE RIEULKIYEOK - ,0x89E0 ,0xB422 //HANGUL SYLLABLE TIKEUT OE RIEULMIEUM - ,0x89E1 ,0xB423 //HANGUL SYLLABLE TIKEUT OE RIEULPIEUP - ,0x89E2 ,0xB424 //HANGUL SYLLABLE TIKEUT OE RIEULSIOS - ,0x89E3 ,0xB425 //HANGUL SYLLABLE TIKEUT OE RIEULTHIEUTH - ,0x89E4 ,0xB426 //HANGUL SYLLABLE TIKEUT OE RIEULPHIEUPH - ,0x89E5 ,0xB427 //HANGUL SYLLABLE TIKEUT OE RIEULHIEUH - ,0x89E6 ,0xB42A //HANGUL SYLLABLE TIKEUT OE PIEUPSIOS - ,0x89E7 ,0xB42C //HANGUL SYLLABLE TIKEUT OE SSANGSIOS - ,0x89E8 ,0xB42D //HANGUL SYLLABLE TIKEUT OE IEUNG - ,0x89E9 ,0xB42E //HANGUL SYLLABLE TIKEUT OE CIEUC - ,0x89EA ,0xB42F //HANGUL SYLLABLE TIKEUT OE CHIEUCH - ,0x89EB ,0xB430 //HANGUL SYLLABLE TIKEUT OE KHIEUKH - ,0x89EC ,0xB431 //HANGUL SYLLABLE TIKEUT OE THIEUTH - ,0x89ED ,0xB432 //HANGUL SYLLABLE TIKEUT OE PHIEUPH - ,0x89EE ,0xB433 //HANGUL SYLLABLE TIKEUT OE HIEUH - ,0x89EF ,0xB435 //HANGUL SYLLABLE TIKEUT YO KIYEOK - ,0x89F0 ,0xB436 //HANGUL SYLLABLE TIKEUT YO SSANGKIYEOK - ,0x89F1 ,0xB437 //HANGUL SYLLABLE TIKEUT YO KIYEOKSIOS - ,0x89F2 ,0xB438 //HANGUL SYLLABLE TIKEUT YO NIEUN - ,0x89F3 ,0xB439 //HANGUL SYLLABLE TIKEUT YO NIEUNCIEUC - ,0x89F4 ,0xB43A //HANGUL SYLLABLE TIKEUT YO NIEUNHIEUH - ,0x89F5 ,0xB43B //HANGUL SYLLABLE TIKEUT YO TIKEUT - ,0x89F6 ,0xB43C //HANGUL SYLLABLE TIKEUT YO RIEUL - ,0x89F7 ,0xB43D //HANGUL SYLLABLE TIKEUT YO RIEULKIYEOK - ,0x89F8 ,0xB43E //HANGUL SYLLABLE TIKEUT YO RIEULMIEUM - ,0x89F9 ,0xB43F //HANGUL SYLLABLE TIKEUT YO RIEULPIEUP - ,0x89FA ,0xB440 //HANGUL SYLLABLE TIKEUT YO RIEULSIOS - ,0x89FB ,0xB441 //HANGUL SYLLABLE TIKEUT YO RIEULTHIEUTH - ,0x89FC ,0xB442 //HANGUL SYLLABLE TIKEUT YO RIEULPHIEUPH - ,0x89FD ,0xB443 //HANGUL SYLLABLE TIKEUT YO RIEULHIEUH - ,0x89FE ,0xB444 //HANGUL SYLLABLE TIKEUT YO MIEUM - ,0x8A41 ,0xB445 //HANGUL SYLLABLE TIKEUT YO PIEUP - ,0x8A42 ,0xB446 //HANGUL SYLLABLE TIKEUT YO PIEUPSIOS - ,0x8A43 ,0xB447 //HANGUL SYLLABLE TIKEUT YO SIOS - ,0x8A44 ,0xB448 //HANGUL SYLLABLE TIKEUT YO SSANGSIOS - ,0x8A45 ,0xB449 //HANGUL SYLLABLE TIKEUT YO IEUNG - ,0x8A46 ,0xB44A //HANGUL SYLLABLE TIKEUT YO CIEUC - ,0x8A47 ,0xB44B //HANGUL SYLLABLE TIKEUT YO CHIEUCH - ,0x8A48 ,0xB44C //HANGUL SYLLABLE TIKEUT YO KHIEUKH - ,0x8A49 ,0xB44D //HANGUL SYLLABLE TIKEUT YO THIEUTH - ,0x8A4A ,0xB44E //HANGUL SYLLABLE TIKEUT YO PHIEUPH - ,0x8A4B ,0xB44F //HANGUL SYLLABLE TIKEUT YO HIEUH - ,0x8A4C ,0xB452 //HANGUL SYLLABLE TIKEUT U SSANGKIYEOK - ,0x8A4D ,0xB453 //HANGUL SYLLABLE TIKEUT U KIYEOKSIOS - ,0x8A4E ,0xB455 //HANGUL SYLLABLE TIKEUT U NIEUNCIEUC - ,0x8A4F ,0xB456 //HANGUL SYLLABLE TIKEUT U NIEUNHIEUH - ,0x8A50 ,0xB457 //HANGUL SYLLABLE TIKEUT U TIKEUT - ,0x8A51 ,0xB459 //HANGUL SYLLABLE TIKEUT U RIEULKIYEOK - ,0x8A52 ,0xB45A //HANGUL SYLLABLE TIKEUT U RIEULMIEUM - ,0x8A53 ,0xB45B //HANGUL SYLLABLE TIKEUT U RIEULPIEUP - ,0x8A54 ,0xB45C //HANGUL SYLLABLE TIKEUT U RIEULSIOS - ,0x8A55 ,0xB45D //HANGUL SYLLABLE TIKEUT U RIEULTHIEUTH - ,0x8A56 ,0xB45E //HANGUL SYLLABLE TIKEUT U RIEULPHIEUPH - ,0x8A57 ,0xB45F //HANGUL SYLLABLE TIKEUT U RIEULHIEUH - ,0x8A58 ,0xB462 //HANGUL SYLLABLE TIKEUT U PIEUPSIOS - ,0x8A59 ,0xB464 //HANGUL SYLLABLE TIKEUT U SSANGSIOS - ,0x8A5A ,0xB466 //HANGUL SYLLABLE TIKEUT U CIEUC - ,0x8A61 ,0xB467 //HANGUL SYLLABLE TIKEUT U CHIEUCH - ,0x8A62 ,0xB468 //HANGUL SYLLABLE TIKEUT U KHIEUKH - ,0x8A63 ,0xB469 //HANGUL SYLLABLE TIKEUT U THIEUTH - ,0x8A64 ,0xB46A //HANGUL SYLLABLE TIKEUT U PHIEUPH - ,0x8A65 ,0xB46B //HANGUL SYLLABLE TIKEUT U HIEUH - ,0x8A66 ,0xB46D //HANGUL SYLLABLE TIKEUT WEO KIYEOK - ,0x8A67 ,0xB46E //HANGUL SYLLABLE TIKEUT WEO SSANGKIYEOK - ,0x8A68 ,0xB46F //HANGUL SYLLABLE TIKEUT WEO KIYEOKSIOS - ,0x8A69 ,0xB470 //HANGUL SYLLABLE TIKEUT WEO NIEUN - ,0x8A6A ,0xB471 //HANGUL SYLLABLE TIKEUT WEO NIEUNCIEUC - ,0x8A6B ,0xB472 //HANGUL SYLLABLE TIKEUT WEO NIEUNHIEUH - ,0x8A6C ,0xB473 //HANGUL SYLLABLE TIKEUT WEO TIKEUT - ,0x8A6D ,0xB474 //HANGUL SYLLABLE TIKEUT WEO RIEUL - ,0x8A6E ,0xB475 //HANGUL SYLLABLE TIKEUT WEO RIEULKIYEOK - ,0x8A6F ,0xB476 //HANGUL SYLLABLE TIKEUT WEO RIEULMIEUM - ,0x8A70 ,0xB477 //HANGUL SYLLABLE TIKEUT WEO RIEULPIEUP - ,0x8A71 ,0xB478 //HANGUL SYLLABLE TIKEUT WEO RIEULSIOS - ,0x8A72 ,0xB479 //HANGUL SYLLABLE TIKEUT WEO RIEULTHIEUTH - ,0x8A73 ,0xB47A //HANGUL SYLLABLE TIKEUT WEO RIEULPHIEUPH - ,0x8A74 ,0xB47B //HANGUL SYLLABLE TIKEUT WEO RIEULHIEUH - ,0x8A75 ,0xB47C //HANGUL SYLLABLE TIKEUT WEO MIEUM - ,0x8A76 ,0xB47D //HANGUL SYLLABLE TIKEUT WEO PIEUP - ,0x8A77 ,0xB47E //HANGUL SYLLABLE TIKEUT WEO PIEUPSIOS - ,0x8A78 ,0xB47F //HANGUL SYLLABLE TIKEUT WEO SIOS - ,0x8A79 ,0xB481 //HANGUL SYLLABLE TIKEUT WEO IEUNG - ,0x8A7A ,0xB482 //HANGUL SYLLABLE TIKEUT WEO CIEUC - ,0x8A81 ,0xB483 //HANGUL SYLLABLE TIKEUT WEO CHIEUCH - ,0x8A82 ,0xB484 //HANGUL SYLLABLE TIKEUT WEO KHIEUKH - ,0x8A83 ,0xB485 //HANGUL SYLLABLE TIKEUT WEO THIEUTH - ,0x8A84 ,0xB486 //HANGUL SYLLABLE TIKEUT WEO PHIEUPH - ,0x8A85 ,0xB487 //HANGUL SYLLABLE TIKEUT WEO HIEUH - ,0x8A86 ,0xB489 //HANGUL SYLLABLE TIKEUT WE KIYEOK - ,0x8A87 ,0xB48A //HANGUL SYLLABLE TIKEUT WE SSANGKIYEOK - ,0x8A88 ,0xB48B //HANGUL SYLLABLE TIKEUT WE KIYEOKSIOS - ,0x8A89 ,0xB48C //HANGUL SYLLABLE TIKEUT WE NIEUN - ,0x8A8A ,0xB48D //HANGUL SYLLABLE TIKEUT WE NIEUNCIEUC - ,0x8A8B ,0xB48E //HANGUL SYLLABLE TIKEUT WE NIEUNHIEUH - ,0x8A8C ,0xB48F //HANGUL SYLLABLE TIKEUT WE TIKEUT - ,0x8A8D ,0xB490 //HANGUL SYLLABLE TIKEUT WE RIEUL - ,0x8A8E ,0xB491 //HANGUL SYLLABLE TIKEUT WE RIEULKIYEOK - ,0x8A8F ,0xB492 //HANGUL SYLLABLE TIKEUT WE RIEULMIEUM - ,0x8A90 ,0xB493 //HANGUL SYLLABLE TIKEUT WE RIEULPIEUP - ,0x8A91 ,0xB494 //HANGUL SYLLABLE TIKEUT WE RIEULSIOS - ,0x8A92 ,0xB495 //HANGUL SYLLABLE TIKEUT WE RIEULTHIEUTH - ,0x8A93 ,0xB496 //HANGUL SYLLABLE TIKEUT WE RIEULPHIEUPH - ,0x8A94 ,0xB497 //HANGUL SYLLABLE TIKEUT WE RIEULHIEUH - ,0x8A95 ,0xB498 //HANGUL SYLLABLE TIKEUT WE MIEUM - ,0x8A96 ,0xB499 //HANGUL SYLLABLE TIKEUT WE PIEUP - ,0x8A97 ,0xB49A //HANGUL SYLLABLE TIKEUT WE PIEUPSIOS - ,0x8A98 ,0xB49B //HANGUL SYLLABLE TIKEUT WE SIOS - ,0x8A99 ,0xB49C //HANGUL SYLLABLE TIKEUT WE SSANGSIOS - ,0x8A9A ,0xB49E //HANGUL SYLLABLE TIKEUT WE CIEUC - ,0x8A9B ,0xB49F //HANGUL SYLLABLE TIKEUT WE CHIEUCH - ,0x8A9C ,0xB4A0 //HANGUL SYLLABLE TIKEUT WE KHIEUKH - ,0x8A9D ,0xB4A1 //HANGUL SYLLABLE TIKEUT WE THIEUTH - ,0x8A9E ,0xB4A2 //HANGUL SYLLABLE TIKEUT WE PHIEUPH - ,0x8A9F ,0xB4A3 //HANGUL SYLLABLE TIKEUT WE HIEUH - ,0x8AA0 ,0xB4A5 //HANGUL SYLLABLE TIKEUT WI KIYEOK - ,0x8AA1 ,0xB4A6 //HANGUL SYLLABLE TIKEUT WI SSANGKIYEOK - ,0x8AA2 ,0xB4A7 //HANGUL SYLLABLE TIKEUT WI KIYEOKSIOS - ,0x8AA3 ,0xB4A9 //HANGUL SYLLABLE TIKEUT WI NIEUNCIEUC - ,0x8AA4 ,0xB4AA //HANGUL SYLLABLE TIKEUT WI NIEUNHIEUH - ,0x8AA5 ,0xB4AB //HANGUL SYLLABLE TIKEUT WI TIKEUT - ,0x8AA6 ,0xB4AD //HANGUL SYLLABLE TIKEUT WI RIEULKIYEOK - ,0x8AA7 ,0xB4AE //HANGUL SYLLABLE TIKEUT WI RIEULMIEUM - ,0x8AA8 ,0xB4AF //HANGUL SYLLABLE TIKEUT WI RIEULPIEUP - ,0x8AA9 ,0xB4B0 //HANGUL SYLLABLE TIKEUT WI RIEULSIOS - ,0x8AAA ,0xB4B1 //HANGUL SYLLABLE TIKEUT WI RIEULTHIEUTH - ,0x8AAB ,0xB4B2 //HANGUL SYLLABLE TIKEUT WI RIEULPHIEUPH - ,0x8AAC ,0xB4B3 //HANGUL SYLLABLE TIKEUT WI RIEULHIEUH - ,0x8AAD ,0xB4B4 //HANGUL SYLLABLE TIKEUT WI MIEUM - ,0x8AAE ,0xB4B6 //HANGUL SYLLABLE TIKEUT WI PIEUPSIOS - ,0x8AAF ,0xB4B8 //HANGUL SYLLABLE TIKEUT WI SSANGSIOS - ,0x8AB0 ,0xB4BA //HANGUL SYLLABLE TIKEUT WI CIEUC - ,0x8AB1 ,0xB4BB //HANGUL SYLLABLE TIKEUT WI CHIEUCH - ,0x8AB2 ,0xB4BC //HANGUL SYLLABLE TIKEUT WI KHIEUKH - ,0x8AB3 ,0xB4BD //HANGUL SYLLABLE TIKEUT WI THIEUTH - ,0x8AB4 ,0xB4BE //HANGUL SYLLABLE TIKEUT WI PHIEUPH - ,0x8AB5 ,0xB4BF //HANGUL SYLLABLE TIKEUT WI HIEUH - ,0x8AB6 ,0xB4C1 //HANGUL SYLLABLE TIKEUT YU KIYEOK - ,0x8AB7 ,0xB4C2 //HANGUL SYLLABLE TIKEUT YU SSANGKIYEOK - ,0x8AB8 ,0xB4C3 //HANGUL SYLLABLE TIKEUT YU KIYEOKSIOS - ,0x8AB9 ,0xB4C5 //HANGUL SYLLABLE TIKEUT YU NIEUNCIEUC - ,0x8ABA ,0xB4C6 //HANGUL SYLLABLE TIKEUT YU NIEUNHIEUH - ,0x8ABB ,0xB4C7 //HANGUL SYLLABLE TIKEUT YU TIKEUT - ,0x8ABC ,0xB4C9 //HANGUL SYLLABLE TIKEUT YU RIEULKIYEOK - ,0x8ABD ,0xB4CA //HANGUL SYLLABLE TIKEUT YU RIEULMIEUM - ,0x8ABE ,0xB4CB //HANGUL SYLLABLE TIKEUT YU RIEULPIEUP - ,0x8ABF ,0xB4CC //HANGUL SYLLABLE TIKEUT YU RIEULSIOS - ,0x8AC0 ,0xB4CD //HANGUL SYLLABLE TIKEUT YU RIEULTHIEUTH - ,0x8AC1 ,0xB4CE //HANGUL SYLLABLE TIKEUT YU RIEULPHIEUPH - ,0x8AC2 ,0xB4CF //HANGUL SYLLABLE TIKEUT YU RIEULHIEUH - ,0x8AC3 ,0xB4D1 //HANGUL SYLLABLE TIKEUT YU PIEUP - ,0x8AC4 ,0xB4D2 //HANGUL SYLLABLE TIKEUT YU PIEUPSIOS - ,0x8AC5 ,0xB4D3 //HANGUL SYLLABLE TIKEUT YU SIOS - ,0x8AC6 ,0xB4D4 //HANGUL SYLLABLE TIKEUT YU SSANGSIOS - ,0x8AC7 ,0xB4D6 //HANGUL SYLLABLE TIKEUT YU CIEUC - ,0x8AC8 ,0xB4D7 //HANGUL SYLLABLE TIKEUT YU CHIEUCH - ,0x8AC9 ,0xB4D8 //HANGUL SYLLABLE TIKEUT YU KHIEUKH - ,0x8ACA ,0xB4D9 //HANGUL SYLLABLE TIKEUT YU THIEUTH - ,0x8ACB ,0xB4DA //HANGUL SYLLABLE TIKEUT YU PHIEUPH - ,0x8ACC ,0xB4DB //HANGUL SYLLABLE TIKEUT YU HIEUH - ,0x8ACD ,0xB4DE //HANGUL SYLLABLE TIKEUT EU SSANGKIYEOK - ,0x8ACE ,0xB4DF //HANGUL SYLLABLE TIKEUT EU KIYEOKSIOS - ,0x8ACF ,0xB4E1 //HANGUL SYLLABLE TIKEUT EU NIEUNCIEUC - ,0x8AD0 ,0xB4E2 //HANGUL SYLLABLE TIKEUT EU NIEUNHIEUH - ,0x8AD1 ,0xB4E5 //HANGUL SYLLABLE TIKEUT EU RIEULKIYEOK - ,0x8AD2 ,0xB4E7 //HANGUL SYLLABLE TIKEUT EU RIEULPIEUP - ,0x8AD3 ,0xB4E8 //HANGUL SYLLABLE TIKEUT EU RIEULSIOS - ,0x8AD4 ,0xB4E9 //HANGUL SYLLABLE TIKEUT EU RIEULTHIEUTH - ,0x8AD5 ,0xB4EA //HANGUL SYLLABLE TIKEUT EU RIEULPHIEUPH - ,0x8AD6 ,0xB4EB //HANGUL SYLLABLE TIKEUT EU RIEULHIEUH - ,0x8AD7 ,0xB4EE //HANGUL SYLLABLE TIKEUT EU PIEUPSIOS - ,0x8AD8 ,0xB4F0 //HANGUL SYLLABLE TIKEUT EU SSANGSIOS - ,0x8AD9 ,0xB4F2 //HANGUL SYLLABLE TIKEUT EU CIEUC - ,0x8ADA ,0xB4F3 //HANGUL SYLLABLE TIKEUT EU CHIEUCH - ,0x8ADB ,0xB4F4 //HANGUL SYLLABLE TIKEUT EU KHIEUKH - ,0x8ADC ,0xB4F5 //HANGUL SYLLABLE TIKEUT EU THIEUTH - ,0x8ADD ,0xB4F6 //HANGUL SYLLABLE TIKEUT EU PHIEUPH - ,0x8ADE ,0xB4F7 //HANGUL SYLLABLE TIKEUT EU HIEUH - ,0x8ADF ,0xB4F9 //HANGUL SYLLABLE TIKEUT YI KIYEOK - ,0x8AE0 ,0xB4FA //HANGUL SYLLABLE TIKEUT YI SSANGKIYEOK - ,0x8AE1 ,0xB4FB //HANGUL SYLLABLE TIKEUT YI KIYEOKSIOS - ,0x8AE2 ,0xB4FC //HANGUL SYLLABLE TIKEUT YI NIEUN - ,0x8AE3 ,0xB4FD //HANGUL SYLLABLE TIKEUT YI NIEUNCIEUC - ,0x8AE4 ,0xB4FE //HANGUL SYLLABLE TIKEUT YI NIEUNHIEUH - ,0x8AE5 ,0xB4FF //HANGUL SYLLABLE TIKEUT YI TIKEUT - ,0x8AE6 ,0xB500 //HANGUL SYLLABLE TIKEUT YI RIEUL - ,0x8AE7 ,0xB501 //HANGUL SYLLABLE TIKEUT YI RIEULKIYEOK - ,0x8AE8 ,0xB502 //HANGUL SYLLABLE TIKEUT YI RIEULMIEUM - ,0x8AE9 ,0xB503 //HANGUL SYLLABLE TIKEUT YI RIEULPIEUP - ,0x8AEA ,0xB504 //HANGUL SYLLABLE TIKEUT YI RIEULSIOS - ,0x8AEB ,0xB505 //HANGUL SYLLABLE TIKEUT YI RIEULTHIEUTH - ,0x8AEC ,0xB506 //HANGUL SYLLABLE TIKEUT YI RIEULPHIEUPH - ,0x8AED ,0xB507 //HANGUL SYLLABLE TIKEUT YI RIEULHIEUH - ,0x8AEE ,0xB508 //HANGUL SYLLABLE TIKEUT YI MIEUM - ,0x8AEF ,0xB509 //HANGUL SYLLABLE TIKEUT YI PIEUP - ,0x8AF0 ,0xB50A //HANGUL SYLLABLE TIKEUT YI PIEUPSIOS - ,0x8AF1 ,0xB50B //HANGUL SYLLABLE TIKEUT YI SIOS - ,0x8AF2 ,0xB50C //HANGUL SYLLABLE TIKEUT YI SSANGSIOS - ,0x8AF3 ,0xB50D //HANGUL SYLLABLE TIKEUT YI IEUNG - ,0x8AF4 ,0xB50E //HANGUL SYLLABLE TIKEUT YI CIEUC - ,0x8AF5 ,0xB50F //HANGUL SYLLABLE TIKEUT YI CHIEUCH - ,0x8AF6 ,0xB510 //HANGUL SYLLABLE TIKEUT YI KHIEUKH - ,0x8AF7 ,0xB511 //HANGUL SYLLABLE TIKEUT YI THIEUTH - ,0x8AF8 ,0xB512 //HANGUL SYLLABLE TIKEUT YI PHIEUPH - ,0x8AF9 ,0xB513 //HANGUL SYLLABLE TIKEUT YI HIEUH - ,0x8AFA ,0xB516 //HANGUL SYLLABLE TIKEUT I SSANGKIYEOK - ,0x8AFB ,0xB517 //HANGUL SYLLABLE TIKEUT I KIYEOKSIOS - ,0x8AFC ,0xB519 //HANGUL SYLLABLE TIKEUT I NIEUNCIEUC - ,0x8AFD ,0xB51A //HANGUL SYLLABLE TIKEUT I NIEUNHIEUH - ,0x8AFE ,0xB51D //HANGUL SYLLABLE TIKEUT I RIEULKIYEOK - ,0x8B41 ,0xB51E //HANGUL SYLLABLE TIKEUT I RIEULMIEUM - ,0x8B42 ,0xB51F //HANGUL SYLLABLE TIKEUT I RIEULPIEUP - ,0x8B43 ,0xB520 //HANGUL SYLLABLE TIKEUT I RIEULSIOS - ,0x8B44 ,0xB521 //HANGUL SYLLABLE TIKEUT I RIEULTHIEUTH - ,0x8B45 ,0xB522 //HANGUL SYLLABLE TIKEUT I RIEULPHIEUPH - ,0x8B46 ,0xB523 //HANGUL SYLLABLE TIKEUT I RIEULHIEUH - ,0x8B47 ,0xB526 //HANGUL SYLLABLE TIKEUT I PIEUPSIOS - ,0x8B48 ,0xB52B //HANGUL SYLLABLE TIKEUT I CHIEUCH - ,0x8B49 ,0xB52C //HANGUL SYLLABLE TIKEUT I KHIEUKH - ,0x8B4A ,0xB52D //HANGUL SYLLABLE TIKEUT I THIEUTH - ,0x8B4B ,0xB52E //HANGUL SYLLABLE TIKEUT I PHIEUPH - ,0x8B4C ,0xB52F //HANGUL SYLLABLE TIKEUT I HIEUH - ,0x8B4D ,0xB532 //HANGUL SYLLABLE SSANGTIKEUT A SSANGKIYEOK - ,0x8B4E ,0xB533 //HANGUL SYLLABLE SSANGTIKEUT A KIYEOKSIOS - ,0x8B4F ,0xB535 //HANGUL SYLLABLE SSANGTIKEUT A NIEUNCIEUC - ,0x8B50 ,0xB536 //HANGUL SYLLABLE SSANGTIKEUT A NIEUNHIEUH - ,0x8B51 ,0xB537 //HANGUL SYLLABLE SSANGTIKEUT A TIKEUT - ,0x8B52 ,0xB539 //HANGUL SYLLABLE SSANGTIKEUT A RIEULKIYEOK - ,0x8B53 ,0xB53A //HANGUL SYLLABLE SSANGTIKEUT A RIEULMIEUM - ,0x8B54 ,0xB53B //HANGUL SYLLABLE SSANGTIKEUT A RIEULPIEUP - ,0x8B55 ,0xB53C //HANGUL SYLLABLE SSANGTIKEUT A RIEULSIOS - ,0x8B56 ,0xB53D //HANGUL SYLLABLE SSANGTIKEUT A RIEULTHIEUTH - ,0x8B57 ,0xB53E //HANGUL SYLLABLE SSANGTIKEUT A RIEULPHIEUPH - ,0x8B58 ,0xB53F //HANGUL SYLLABLE SSANGTIKEUT A RIEULHIEUH - ,0x8B59 ,0xB542 //HANGUL SYLLABLE SSANGTIKEUT A PIEUPSIOS - ,0x8B5A ,0xB546 //HANGUL SYLLABLE SSANGTIKEUT A CIEUC - ,0x8B61 ,0xB547 //HANGUL SYLLABLE SSANGTIKEUT A CHIEUCH - ,0x8B62 ,0xB548 //HANGUL SYLLABLE SSANGTIKEUT A KHIEUKH - ,0x8B63 ,0xB549 //HANGUL SYLLABLE SSANGTIKEUT A THIEUTH - ,0x8B64 ,0xB54A //HANGUL SYLLABLE SSANGTIKEUT A PHIEUPH - ,0x8B65 ,0xB54E //HANGUL SYLLABLE SSANGTIKEUT AE SSANGKIYEOK - ,0x8B66 ,0xB54F //HANGUL SYLLABLE SSANGTIKEUT AE KIYEOKSIOS - ,0x8B67 ,0xB551 //HANGUL SYLLABLE SSANGTIKEUT AE NIEUNCIEUC - ,0x8B68 ,0xB552 //HANGUL SYLLABLE SSANGTIKEUT AE NIEUNHIEUH - ,0x8B69 ,0xB553 //HANGUL SYLLABLE SSANGTIKEUT AE TIKEUT - ,0x8B6A ,0xB555 //HANGUL SYLLABLE SSANGTIKEUT AE RIEULKIYEOK - ,0x8B6B ,0xB556 //HANGUL SYLLABLE SSANGTIKEUT AE RIEULMIEUM - ,0x8B6C ,0xB557 //HANGUL SYLLABLE SSANGTIKEUT AE RIEULPIEUP - ,0x8B6D ,0xB558 //HANGUL SYLLABLE SSANGTIKEUT AE RIEULSIOS - ,0x8B6E ,0xB559 //HANGUL SYLLABLE SSANGTIKEUT AE RIEULTHIEUTH - ,0x8B6F ,0xB55A //HANGUL SYLLABLE SSANGTIKEUT AE RIEULPHIEUPH - ,0x8B70 ,0xB55B //HANGUL SYLLABLE SSANGTIKEUT AE RIEULHIEUH - ,0x8B71 ,0xB55E //HANGUL SYLLABLE SSANGTIKEUT AE PIEUPSIOS - ,0x8B72 ,0xB562 //HANGUL SYLLABLE SSANGTIKEUT AE CIEUC - ,0x8B73 ,0xB563 //HANGUL SYLLABLE SSANGTIKEUT AE CHIEUCH - ,0x8B74 ,0xB564 //HANGUL SYLLABLE SSANGTIKEUT AE KHIEUKH - ,0x8B75 ,0xB565 //HANGUL SYLLABLE SSANGTIKEUT AE THIEUTH - ,0x8B76 ,0xB566 //HANGUL SYLLABLE SSANGTIKEUT AE PHIEUPH - ,0x8B77 ,0xB567 //HANGUL SYLLABLE SSANGTIKEUT AE HIEUH - ,0x8B78 ,0xB568 //HANGUL SYLLABLE SSANGTIKEUT YA - ,0x8B79 ,0xB569 //HANGUL SYLLABLE SSANGTIKEUT YA KIYEOK - ,0x8B7A ,0xB56A //HANGUL SYLLABLE SSANGTIKEUT YA SSANGKIYEOK - ,0x8B81 ,0xB56B //HANGUL SYLLABLE SSANGTIKEUT YA KIYEOKSIOS - ,0x8B82 ,0xB56C //HANGUL SYLLABLE SSANGTIKEUT YA NIEUN - ,0x8B83 ,0xB56D //HANGUL SYLLABLE SSANGTIKEUT YA NIEUNCIEUC - ,0x8B84 ,0xB56E //HANGUL SYLLABLE SSANGTIKEUT YA NIEUNHIEUH - ,0x8B85 ,0xB56F //HANGUL SYLLABLE SSANGTIKEUT YA TIKEUT - ,0x8B86 ,0xB570 //HANGUL SYLLABLE SSANGTIKEUT YA RIEUL - ,0x8B87 ,0xB571 //HANGUL SYLLABLE SSANGTIKEUT YA RIEULKIYEOK - ,0x8B88 ,0xB572 //HANGUL SYLLABLE SSANGTIKEUT YA RIEULMIEUM - ,0x8B89 ,0xB573 //HANGUL SYLLABLE SSANGTIKEUT YA RIEULPIEUP - ,0x8B8A ,0xB574 //HANGUL SYLLABLE SSANGTIKEUT YA RIEULSIOS - ,0x8B8B ,0xB575 //HANGUL SYLLABLE SSANGTIKEUT YA RIEULTHIEUTH - ,0x8B8C ,0xB576 //HANGUL SYLLABLE SSANGTIKEUT YA RIEULPHIEUPH - ,0x8B8D ,0xB577 //HANGUL SYLLABLE SSANGTIKEUT YA RIEULHIEUH - ,0x8B8E ,0xB578 //HANGUL SYLLABLE SSANGTIKEUT YA MIEUM - ,0x8B8F ,0xB579 //HANGUL SYLLABLE SSANGTIKEUT YA PIEUP - ,0x8B90 ,0xB57A //HANGUL SYLLABLE SSANGTIKEUT YA PIEUPSIOS - ,0x8B91 ,0xB57B //HANGUL SYLLABLE SSANGTIKEUT YA SIOS - ,0x8B92 ,0xB57C //HANGUL SYLLABLE SSANGTIKEUT YA SSANGSIOS - ,0x8B93 ,0xB57D //HANGUL SYLLABLE SSANGTIKEUT YA IEUNG - ,0x8B94 ,0xB57E //HANGUL SYLLABLE SSANGTIKEUT YA CIEUC - ,0x8B95 ,0xB57F //HANGUL SYLLABLE SSANGTIKEUT YA CHIEUCH - ,0x8B96 ,0xB580 //HANGUL SYLLABLE SSANGTIKEUT YA KHIEUKH - ,0x8B97 ,0xB581 //HANGUL SYLLABLE SSANGTIKEUT YA THIEUTH - ,0x8B98 ,0xB582 //HANGUL SYLLABLE SSANGTIKEUT YA PHIEUPH - ,0x8B99 ,0xB583 //HANGUL SYLLABLE SSANGTIKEUT YA HIEUH - ,0x8B9A ,0xB584 //HANGUL SYLLABLE SSANGTIKEUT YAE - ,0x8B9B ,0xB585 //HANGUL SYLLABLE SSANGTIKEUT YAE KIYEOK - ,0x8B9C ,0xB586 //HANGUL SYLLABLE SSANGTIKEUT YAE SSANGKIYEOK - ,0x8B9D ,0xB587 //HANGUL SYLLABLE SSANGTIKEUT YAE KIYEOKSIOS - ,0x8B9E ,0xB588 //HANGUL SYLLABLE SSANGTIKEUT YAE NIEUN - ,0x8B9F ,0xB589 //HANGUL SYLLABLE SSANGTIKEUT YAE NIEUNCIEUC - ,0x8BA0 ,0xB58A //HANGUL SYLLABLE SSANGTIKEUT YAE NIEUNHIEUH - ,0x8BA1 ,0xB58B //HANGUL SYLLABLE SSANGTIKEUT YAE TIKEUT - ,0x8BA2 ,0xB58C //HANGUL SYLLABLE SSANGTIKEUT YAE RIEUL - ,0x8BA3 ,0xB58D //HANGUL SYLLABLE SSANGTIKEUT YAE RIEULKIYEOK - ,0x8BA4 ,0xB58E //HANGUL SYLLABLE SSANGTIKEUT YAE RIEULMIEUM - ,0x8BA5 ,0xB58F //HANGUL SYLLABLE SSANGTIKEUT YAE RIEULPIEUP - ,0x8BA6 ,0xB590 //HANGUL SYLLABLE SSANGTIKEUT YAE RIEULSIOS - ,0x8BA7 ,0xB591 //HANGUL SYLLABLE SSANGTIKEUT YAE RIEULTHIEUTH - ,0x8BA8 ,0xB592 //HANGUL SYLLABLE SSANGTIKEUT YAE RIEULPHIEUPH - ,0x8BA9 ,0xB593 //HANGUL SYLLABLE SSANGTIKEUT YAE RIEULHIEUH - ,0x8BAA ,0xB594 //HANGUL SYLLABLE SSANGTIKEUT YAE MIEUM - ,0x8BAB ,0xB595 //HANGUL SYLLABLE SSANGTIKEUT YAE PIEUP - ,0x8BAC ,0xB596 //HANGUL SYLLABLE SSANGTIKEUT YAE PIEUPSIOS - ,0x8BAD ,0xB597 //HANGUL SYLLABLE SSANGTIKEUT YAE SIOS - ,0x8BAE ,0xB598 //HANGUL SYLLABLE SSANGTIKEUT YAE SSANGSIOS - ,0x8BAF ,0xB599 //HANGUL SYLLABLE SSANGTIKEUT YAE IEUNG - ,0x8BB0 ,0xB59A //HANGUL SYLLABLE SSANGTIKEUT YAE CIEUC - ,0x8BB1 ,0xB59B //HANGUL SYLLABLE SSANGTIKEUT YAE CHIEUCH - ,0x8BB2 ,0xB59C //HANGUL SYLLABLE SSANGTIKEUT YAE KHIEUKH - ,0x8BB3 ,0xB59D //HANGUL SYLLABLE SSANGTIKEUT YAE THIEUTH - ,0x8BB4 ,0xB59E //HANGUL SYLLABLE SSANGTIKEUT YAE PHIEUPH - ,0x8BB5 ,0xB59F //HANGUL SYLLABLE SSANGTIKEUT YAE HIEUH - ,0x8BB6 ,0xB5A2 //HANGUL SYLLABLE SSANGTIKEUT EO SSANGKIYEOK - ,0x8BB7 ,0xB5A3 //HANGUL SYLLABLE SSANGTIKEUT EO KIYEOKSIOS - ,0x8BB8 ,0xB5A5 //HANGUL SYLLABLE SSANGTIKEUT EO NIEUNCIEUC - ,0x8BB9 ,0xB5A6 //HANGUL SYLLABLE SSANGTIKEUT EO NIEUNHIEUH - ,0x8BBA ,0xB5A7 //HANGUL SYLLABLE SSANGTIKEUT EO TIKEUT - ,0x8BBB ,0xB5A9 //HANGUL SYLLABLE SSANGTIKEUT EO RIEULKIYEOK - ,0x8BBC ,0xB5AC //HANGUL SYLLABLE SSANGTIKEUT EO RIEULSIOS - ,0x8BBD ,0xB5AD //HANGUL SYLLABLE SSANGTIKEUT EO RIEULTHIEUTH - ,0x8BBE ,0xB5AE //HANGUL SYLLABLE SSANGTIKEUT EO RIEULPHIEUPH - ,0x8BBF ,0xB5AF //HANGUL SYLLABLE SSANGTIKEUT EO RIEULHIEUH - ,0x8BC0 ,0xB5B2 //HANGUL SYLLABLE SSANGTIKEUT EO PIEUPSIOS - ,0x8BC1 ,0xB5B6 //HANGUL SYLLABLE SSANGTIKEUT EO CIEUC - ,0x8BC2 ,0xB5B7 //HANGUL SYLLABLE SSANGTIKEUT EO CHIEUCH - ,0x8BC3 ,0xB5B8 //HANGUL SYLLABLE SSANGTIKEUT EO KHIEUKH - ,0x8BC4 ,0xB5B9 //HANGUL SYLLABLE SSANGTIKEUT EO THIEUTH - ,0x8BC5 ,0xB5BA //HANGUL SYLLABLE SSANGTIKEUT EO PHIEUPH - ,0x8BC6 ,0xB5BE //HANGUL SYLLABLE SSANGTIKEUT E SSANGKIYEOK - ,0x8BC7 ,0xB5BF //HANGUL SYLLABLE SSANGTIKEUT E KIYEOKSIOS - ,0x8BC8 ,0xB5C1 //HANGUL SYLLABLE SSANGTIKEUT E NIEUNCIEUC - ,0x8BC9 ,0xB5C2 //HANGUL SYLLABLE SSANGTIKEUT E NIEUNHIEUH - ,0x8BCA ,0xB5C3 //HANGUL SYLLABLE SSANGTIKEUT E TIKEUT - ,0x8BCB ,0xB5C5 //HANGUL SYLLABLE SSANGTIKEUT E RIEULKIYEOK - ,0x8BCC ,0xB5C6 //HANGUL SYLLABLE SSANGTIKEUT E RIEULMIEUM - ,0x8BCD ,0xB5C7 //HANGUL SYLLABLE SSANGTIKEUT E RIEULPIEUP - ,0x8BCE ,0xB5C8 //HANGUL SYLLABLE SSANGTIKEUT E RIEULSIOS - ,0x8BCF ,0xB5C9 //HANGUL SYLLABLE SSANGTIKEUT E RIEULTHIEUTH - ,0x8BD0 ,0xB5CA //HANGUL SYLLABLE SSANGTIKEUT E RIEULPHIEUPH - ,0x8BD1 ,0xB5CB //HANGUL SYLLABLE SSANGTIKEUT E RIEULHIEUH - ,0x8BD2 ,0xB5CE //HANGUL SYLLABLE SSANGTIKEUT E PIEUPSIOS - ,0x8BD3 ,0xB5D2 //HANGUL SYLLABLE SSANGTIKEUT E CIEUC - ,0x8BD4 ,0xB5D3 //HANGUL SYLLABLE SSANGTIKEUT E CHIEUCH - ,0x8BD5 ,0xB5D4 //HANGUL SYLLABLE SSANGTIKEUT E KHIEUKH - ,0x8BD6 ,0xB5D5 //HANGUL SYLLABLE SSANGTIKEUT E THIEUTH - ,0x8BD7 ,0xB5D6 //HANGUL SYLLABLE SSANGTIKEUT E PHIEUPH - ,0x8BD8 ,0xB5D7 //HANGUL SYLLABLE SSANGTIKEUT E HIEUH - ,0x8BD9 ,0xB5D9 //HANGUL SYLLABLE SSANGTIKEUT YEO KIYEOK - ,0x8BDA ,0xB5DA //HANGUL SYLLABLE SSANGTIKEUT YEO SSANGKIYEOK - ,0x8BDB ,0xB5DB //HANGUL SYLLABLE SSANGTIKEUT YEO KIYEOKSIOS - ,0x8BDC ,0xB5DC //HANGUL SYLLABLE SSANGTIKEUT YEO NIEUN - ,0x8BDD ,0xB5DD //HANGUL SYLLABLE SSANGTIKEUT YEO NIEUNCIEUC - ,0x8BDE ,0xB5DE //HANGUL SYLLABLE SSANGTIKEUT YEO NIEUNHIEUH - ,0x8BDF ,0xB5DF //HANGUL SYLLABLE SSANGTIKEUT YEO TIKEUT - ,0x8BE0 ,0xB5E0 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEUL - ,0x8BE1 ,0xB5E1 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEULKIYEOK - ,0x8BE2 ,0xB5E2 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEULMIEUM - ,0x8BE3 ,0xB5E3 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEULPIEUP - ,0x8BE4 ,0xB5E4 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEULSIOS - ,0x8BE5 ,0xB5E5 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEULTHIEUTH - ,0x8BE6 ,0xB5E6 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEULPHIEUPH - ,0x8BE7 ,0xB5E7 //HANGUL SYLLABLE SSANGTIKEUT YEO RIEULHIEUH - ,0x8BE8 ,0xB5E8 //HANGUL SYLLABLE SSANGTIKEUT YEO MIEUM - ,0x8BE9 ,0xB5E9 //HANGUL SYLLABLE SSANGTIKEUT YEO PIEUP - ,0x8BEA ,0xB5EA //HANGUL SYLLABLE SSANGTIKEUT YEO PIEUPSIOS - ,0x8BEB ,0xB5EB //HANGUL SYLLABLE SSANGTIKEUT YEO SIOS - ,0x8BEC ,0xB5ED //HANGUL SYLLABLE SSANGTIKEUT YEO IEUNG - ,0x8BED ,0xB5EE //HANGUL SYLLABLE SSANGTIKEUT YEO CIEUC - ,0x8BEE ,0xB5EF //HANGUL SYLLABLE SSANGTIKEUT YEO CHIEUCH - ,0x8BEF ,0xB5F0 //HANGUL SYLLABLE SSANGTIKEUT YEO KHIEUKH - ,0x8BF0 ,0xB5F1 //HANGUL SYLLABLE SSANGTIKEUT YEO THIEUTH - ,0x8BF1 ,0xB5F2 //HANGUL SYLLABLE SSANGTIKEUT YEO PHIEUPH - ,0x8BF2 ,0xB5F3 //HANGUL SYLLABLE SSANGTIKEUT YEO HIEUH - ,0x8BF3 ,0xB5F4 //HANGUL SYLLABLE SSANGTIKEUT YE - ,0x8BF4 ,0xB5F5 //HANGUL SYLLABLE SSANGTIKEUT YE KIYEOK - ,0x8BF5 ,0xB5F6 //HANGUL SYLLABLE SSANGTIKEUT YE SSANGKIYEOK - ,0x8BF6 ,0xB5F7 //HANGUL SYLLABLE SSANGTIKEUT YE KIYEOKSIOS - ,0x8BF7 ,0xB5F8 //HANGUL SYLLABLE SSANGTIKEUT YE NIEUN - ,0x8BF8 ,0xB5F9 //HANGUL SYLLABLE SSANGTIKEUT YE NIEUNCIEUC - ,0x8BF9 ,0xB5FA //HANGUL SYLLABLE SSANGTIKEUT YE NIEUNHIEUH - ,0x8BFA ,0xB5FB //HANGUL SYLLABLE SSANGTIKEUT YE TIKEUT - ,0x8BFB ,0xB5FC //HANGUL SYLLABLE SSANGTIKEUT YE RIEUL - ,0x8BFC ,0xB5FD //HANGUL SYLLABLE SSANGTIKEUT YE RIEULKIYEOK - ,0x8BFD ,0xB5FE //HANGUL SYLLABLE SSANGTIKEUT YE RIEULMIEUM - ,0x8BFE ,0xB5FF //HANGUL SYLLABLE SSANGTIKEUT YE RIEULPIEUP - ,0x8C41 ,0xB600 //HANGUL SYLLABLE SSANGTIKEUT YE RIEULSIOS - ,0x8C42 ,0xB601 //HANGUL SYLLABLE SSANGTIKEUT YE RIEULTHIEUTH - ,0x8C43 ,0xB602 //HANGUL SYLLABLE SSANGTIKEUT YE RIEULPHIEUPH - ,0x8C44 ,0xB603 //HANGUL SYLLABLE SSANGTIKEUT YE RIEULHIEUH - ,0x8C45 ,0xB604 //HANGUL SYLLABLE SSANGTIKEUT YE MIEUM - ,0x8C46 ,0xB605 //HANGUL SYLLABLE SSANGTIKEUT YE PIEUP - ,0x8C47 ,0xB606 //HANGUL SYLLABLE SSANGTIKEUT YE PIEUPSIOS - ,0x8C48 ,0xB607 //HANGUL SYLLABLE SSANGTIKEUT YE SIOS - ,0x8C49 ,0xB608 //HANGUL SYLLABLE SSANGTIKEUT YE SSANGSIOS - ,0x8C4A ,0xB609 //HANGUL SYLLABLE SSANGTIKEUT YE IEUNG - ,0x8C4B ,0xB60A //HANGUL SYLLABLE SSANGTIKEUT YE CIEUC - ,0x8C4C ,0xB60B //HANGUL SYLLABLE SSANGTIKEUT YE CHIEUCH - ,0x8C4D ,0xB60C //HANGUL SYLLABLE SSANGTIKEUT YE KHIEUKH - ,0x8C4E ,0xB60D //HANGUL SYLLABLE SSANGTIKEUT YE THIEUTH - ,0x8C4F ,0xB60E //HANGUL SYLLABLE SSANGTIKEUT YE PHIEUPH - ,0x8C50 ,0xB60F //HANGUL SYLLABLE SSANGTIKEUT YE HIEUH - ,0x8C51 ,0xB612 //HANGUL SYLLABLE SSANGTIKEUT O SSANGKIYEOK - ,0x8C52 ,0xB613 //HANGUL SYLLABLE SSANGTIKEUT O KIYEOKSIOS - ,0x8C53 ,0xB615 //HANGUL SYLLABLE SSANGTIKEUT O NIEUNCIEUC - ,0x8C54 ,0xB616 //HANGUL SYLLABLE SSANGTIKEUT O NIEUNHIEUH - ,0x8C55 ,0xB617 //HANGUL SYLLABLE SSANGTIKEUT O TIKEUT - ,0x8C56 ,0xB619 //HANGUL SYLLABLE SSANGTIKEUT O RIEULKIYEOK - ,0x8C57 ,0xB61A //HANGUL SYLLABLE SSANGTIKEUT O RIEULMIEUM - ,0x8C58 ,0xB61B //HANGUL SYLLABLE SSANGTIKEUT O RIEULPIEUP - ,0x8C59 ,0xB61C //HANGUL SYLLABLE SSANGTIKEUT O RIEULSIOS - ,0x8C5A ,0xB61D //HANGUL SYLLABLE SSANGTIKEUT O RIEULTHIEUTH - ,0x8C61 ,0xB61E //HANGUL SYLLABLE SSANGTIKEUT O RIEULPHIEUPH - ,0x8C62 ,0xB61F //HANGUL SYLLABLE SSANGTIKEUT O RIEULHIEUH - ,0x8C63 ,0xB620 //HANGUL SYLLABLE SSANGTIKEUT O MIEUM - ,0x8C64 ,0xB621 //HANGUL SYLLABLE SSANGTIKEUT O PIEUP - ,0x8C65 ,0xB622 //HANGUL SYLLABLE SSANGTIKEUT O PIEUPSIOS - ,0x8C66 ,0xB623 //HANGUL SYLLABLE SSANGTIKEUT O SIOS - ,0x8C67 ,0xB624 //HANGUL SYLLABLE SSANGTIKEUT O SSANGSIOS - ,0x8C68 ,0xB626 //HANGUL SYLLABLE SSANGTIKEUT O CIEUC - ,0x8C69 ,0xB627 //HANGUL SYLLABLE SSANGTIKEUT O CHIEUCH - ,0x8C6A ,0xB628 //HANGUL SYLLABLE SSANGTIKEUT O KHIEUKH - ,0x8C6B ,0xB629 //HANGUL SYLLABLE SSANGTIKEUT O THIEUTH - ,0x8C6C ,0xB62A //HANGUL SYLLABLE SSANGTIKEUT O PHIEUPH - ,0x8C6D ,0xB62B //HANGUL SYLLABLE SSANGTIKEUT O HIEUH - ,0x8C6E ,0xB62D //HANGUL SYLLABLE SSANGTIKEUT WA KIYEOK - ,0x8C6F ,0xB62E //HANGUL SYLLABLE SSANGTIKEUT WA SSANGKIYEOK - ,0x8C70 ,0xB62F //HANGUL SYLLABLE SSANGTIKEUT WA KIYEOKSIOS - ,0x8C71 ,0xB630 //HANGUL SYLLABLE SSANGTIKEUT WA NIEUN - ,0x8C72 ,0xB631 //HANGUL SYLLABLE SSANGTIKEUT WA NIEUNCIEUC - ,0x8C73 ,0xB632 //HANGUL SYLLABLE SSANGTIKEUT WA NIEUNHIEUH - ,0x8C74 ,0xB633 //HANGUL SYLLABLE SSANGTIKEUT WA TIKEUT - ,0x8C75 ,0xB635 //HANGUL SYLLABLE SSANGTIKEUT WA RIEULKIYEOK - ,0x8C76 ,0xB636 //HANGUL SYLLABLE SSANGTIKEUT WA RIEULMIEUM - ,0x8C77 ,0xB637 //HANGUL SYLLABLE SSANGTIKEUT WA RIEULPIEUP - ,0x8C78 ,0xB638 //HANGUL SYLLABLE SSANGTIKEUT WA RIEULSIOS - ,0x8C79 ,0xB639 //HANGUL SYLLABLE SSANGTIKEUT WA RIEULTHIEUTH - ,0x8C7A ,0xB63A //HANGUL SYLLABLE SSANGTIKEUT WA RIEULPHIEUPH - ,0x8C81 ,0xB63B //HANGUL SYLLABLE SSANGTIKEUT WA RIEULHIEUH - ,0x8C82 ,0xB63C //HANGUL SYLLABLE SSANGTIKEUT WA MIEUM - ,0x8C83 ,0xB63D //HANGUL SYLLABLE SSANGTIKEUT WA PIEUP - ,0x8C84 ,0xB63E //HANGUL SYLLABLE SSANGTIKEUT WA PIEUPSIOS - ,0x8C85 ,0xB63F //HANGUL SYLLABLE SSANGTIKEUT WA SIOS - ,0x8C86 ,0xB640 //HANGUL SYLLABLE SSANGTIKEUT WA SSANGSIOS - ,0x8C87 ,0xB641 //HANGUL SYLLABLE SSANGTIKEUT WA IEUNG - ,0x8C88 ,0xB642 //HANGUL SYLLABLE SSANGTIKEUT WA CIEUC - ,0x8C89 ,0xB643 //HANGUL SYLLABLE SSANGTIKEUT WA CHIEUCH - ,0x8C8A ,0xB644 //HANGUL SYLLABLE SSANGTIKEUT WA KHIEUKH - ,0x8C8B ,0xB645 //HANGUL SYLLABLE SSANGTIKEUT WA THIEUTH - ,0x8C8C ,0xB646 //HANGUL SYLLABLE SSANGTIKEUT WA PHIEUPH - ,0x8C8D ,0xB647 //HANGUL SYLLABLE SSANGTIKEUT WA HIEUH - ,0x8C8E ,0xB649 //HANGUL SYLLABLE SSANGTIKEUT WAE KIYEOK - ,0x8C8F ,0xB64A //HANGUL SYLLABLE SSANGTIKEUT WAE SSANGKIYEOK - ,0x8C90 ,0xB64B //HANGUL SYLLABLE SSANGTIKEUT WAE KIYEOKSIOS - ,0x8C91 ,0xB64C //HANGUL SYLLABLE SSANGTIKEUT WAE NIEUN - ,0x8C92 ,0xB64D //HANGUL SYLLABLE SSANGTIKEUT WAE NIEUNCIEUC - ,0x8C93 ,0xB64E //HANGUL SYLLABLE SSANGTIKEUT WAE NIEUNHIEUH - ,0x8C94 ,0xB64F //HANGUL SYLLABLE SSANGTIKEUT WAE TIKEUT - ,0x8C95 ,0xB650 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEUL - ,0x8C96 ,0xB651 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEULKIYEOK - ,0x8C97 ,0xB652 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEULMIEUM - ,0x8C98 ,0xB653 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEULPIEUP - ,0x8C99 ,0xB654 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEULSIOS - ,0x8C9A ,0xB655 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEULTHIEUTH - ,0x8C9B ,0xB656 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEULPHIEUPH - ,0x8C9C ,0xB657 //HANGUL SYLLABLE SSANGTIKEUT WAE RIEULHIEUH - ,0x8C9D ,0xB658 //HANGUL SYLLABLE SSANGTIKEUT WAE MIEUM - ,0x8C9E ,0xB659 //HANGUL SYLLABLE SSANGTIKEUT WAE PIEUP - ,0x8C9F ,0xB65A //HANGUL SYLLABLE SSANGTIKEUT WAE PIEUPSIOS - ,0x8CA0 ,0xB65B //HANGUL SYLLABLE SSANGTIKEUT WAE SIOS - ,0x8CA1 ,0xB65C //HANGUL SYLLABLE SSANGTIKEUT WAE SSANGSIOS - ,0x8CA2 ,0xB65D //HANGUL SYLLABLE SSANGTIKEUT WAE IEUNG - ,0x8CA3 ,0xB65E //HANGUL SYLLABLE SSANGTIKEUT WAE CIEUC - ,0x8CA4 ,0xB65F //HANGUL SYLLABLE SSANGTIKEUT WAE CHIEUCH - ,0x8CA5 ,0xB660 //HANGUL SYLLABLE SSANGTIKEUT WAE KHIEUKH - ,0x8CA6 ,0xB661 //HANGUL SYLLABLE SSANGTIKEUT WAE THIEUTH - ,0x8CA7 ,0xB662 //HANGUL SYLLABLE SSANGTIKEUT WAE PHIEUPH - ,0x8CA8 ,0xB663 //HANGUL SYLLABLE SSANGTIKEUT WAE HIEUH - ,0x8CA9 ,0xB665 //HANGUL SYLLABLE SSANGTIKEUT OE KIYEOK - ,0x8CAA ,0xB666 //HANGUL SYLLABLE SSANGTIKEUT OE SSANGKIYEOK - ,0x8CAB ,0xB667 //HANGUL SYLLABLE SSANGTIKEUT OE KIYEOKSIOS - ,0x8CAC ,0xB669 //HANGUL SYLLABLE SSANGTIKEUT OE NIEUNCIEUC - ,0x8CAD ,0xB66A //HANGUL SYLLABLE SSANGTIKEUT OE NIEUNHIEUH - ,0x8CAE ,0xB66B //HANGUL SYLLABLE SSANGTIKEUT OE TIKEUT - ,0x8CAF ,0xB66C //HANGUL SYLLABLE SSANGTIKEUT OE RIEUL - ,0x8CB0 ,0xB66D //HANGUL SYLLABLE SSANGTIKEUT OE RIEULKIYEOK - ,0x8CB1 ,0xB66E //HANGUL SYLLABLE SSANGTIKEUT OE RIEULMIEUM - ,0x8CB2 ,0xB66F //HANGUL SYLLABLE SSANGTIKEUT OE RIEULPIEUP - ,0x8CB3 ,0xB670 //HANGUL SYLLABLE SSANGTIKEUT OE RIEULSIOS - ,0x8CB4 ,0xB671 //HANGUL SYLLABLE SSANGTIKEUT OE RIEULTHIEUTH - ,0x8CB5 ,0xB672 //HANGUL SYLLABLE SSANGTIKEUT OE RIEULPHIEUPH - ,0x8CB6 ,0xB673 //HANGUL SYLLABLE SSANGTIKEUT OE RIEULHIEUH - ,0x8CB7 ,0xB674 //HANGUL SYLLABLE SSANGTIKEUT OE MIEUM - ,0x8CB8 ,0xB675 //HANGUL SYLLABLE SSANGTIKEUT OE PIEUP - ,0x8CB9 ,0xB676 //HANGUL SYLLABLE SSANGTIKEUT OE PIEUPSIOS - ,0x8CBA ,0xB677 //HANGUL SYLLABLE SSANGTIKEUT OE SIOS - ,0x8CBB ,0xB678 //HANGUL SYLLABLE SSANGTIKEUT OE SSANGSIOS - ,0x8CBC ,0xB679 //HANGUL SYLLABLE SSANGTIKEUT OE IEUNG - ,0x8CBD ,0xB67A //HANGUL SYLLABLE SSANGTIKEUT OE CIEUC - ,0x8CBE ,0xB67B //HANGUL SYLLABLE SSANGTIKEUT OE CHIEUCH - ,0x8CBF ,0xB67C //HANGUL SYLLABLE SSANGTIKEUT OE KHIEUKH - ,0x8CC0 ,0xB67D //HANGUL SYLLABLE SSANGTIKEUT OE THIEUTH - ,0x8CC1 ,0xB67E //HANGUL SYLLABLE SSANGTIKEUT OE PHIEUPH - ,0x8CC2 ,0xB67F //HANGUL SYLLABLE SSANGTIKEUT OE HIEUH - ,0x8CC3 ,0xB680 //HANGUL SYLLABLE SSANGTIKEUT YO - ,0x8CC4 ,0xB681 //HANGUL SYLLABLE SSANGTIKEUT YO KIYEOK - ,0x8CC5 ,0xB682 //HANGUL SYLLABLE SSANGTIKEUT YO SSANGKIYEOK - ,0x8CC6 ,0xB683 //HANGUL SYLLABLE SSANGTIKEUT YO KIYEOKSIOS - ,0x8CC7 ,0xB684 //HANGUL SYLLABLE SSANGTIKEUT YO NIEUN - ,0x8CC8 ,0xB685 //HANGUL SYLLABLE SSANGTIKEUT YO NIEUNCIEUC - ,0x8CC9 ,0xB686 //HANGUL SYLLABLE SSANGTIKEUT YO NIEUNHIEUH - ,0x8CCA ,0xB687 //HANGUL SYLLABLE SSANGTIKEUT YO TIKEUT - ,0x8CCB ,0xB688 //HANGUL SYLLABLE SSANGTIKEUT YO RIEUL - ,0x8CCC ,0xB689 //HANGUL SYLLABLE SSANGTIKEUT YO RIEULKIYEOK - ,0x8CCD ,0xB68A //HANGUL SYLLABLE SSANGTIKEUT YO RIEULMIEUM - ,0x8CCE ,0xB68B //HANGUL SYLLABLE SSANGTIKEUT YO RIEULPIEUP - ,0x8CCF ,0xB68C //HANGUL SYLLABLE SSANGTIKEUT YO RIEULSIOS - ,0x8CD0 ,0xB68D //HANGUL SYLLABLE SSANGTIKEUT YO RIEULTHIEUTH - ,0x8CD1 ,0xB68E //HANGUL SYLLABLE SSANGTIKEUT YO RIEULPHIEUPH - ,0x8CD2 ,0xB68F //HANGUL SYLLABLE SSANGTIKEUT YO RIEULHIEUH - ,0x8CD3 ,0xB690 //HANGUL SYLLABLE SSANGTIKEUT YO MIEUM - ,0x8CD4 ,0xB691 //HANGUL SYLLABLE SSANGTIKEUT YO PIEUP - ,0x8CD5 ,0xB692 //HANGUL SYLLABLE SSANGTIKEUT YO PIEUPSIOS - ,0x8CD6 ,0xB693 //HANGUL SYLLABLE SSANGTIKEUT YO SIOS - ,0x8CD7 ,0xB694 //HANGUL SYLLABLE SSANGTIKEUT YO SSANGSIOS - ,0x8CD8 ,0xB695 //HANGUL SYLLABLE SSANGTIKEUT YO IEUNG - ,0x8CD9 ,0xB696 //HANGUL SYLLABLE SSANGTIKEUT YO CIEUC - ,0x8CDA ,0xB697 //HANGUL SYLLABLE SSANGTIKEUT YO CHIEUCH - ,0x8CDB ,0xB698 //HANGUL SYLLABLE SSANGTIKEUT YO KHIEUKH - ,0x8CDC ,0xB699 //HANGUL SYLLABLE SSANGTIKEUT YO THIEUTH - ,0x8CDD ,0xB69A //HANGUL SYLLABLE SSANGTIKEUT YO PHIEUPH - ,0x8CDE ,0xB69B //HANGUL SYLLABLE SSANGTIKEUT YO HIEUH - ,0x8CDF ,0xB69E //HANGUL SYLLABLE SSANGTIKEUT U SSANGKIYEOK - ,0x8CE0 ,0xB69F //HANGUL SYLLABLE SSANGTIKEUT U KIYEOKSIOS - ,0x8CE1 ,0xB6A1 //HANGUL SYLLABLE SSANGTIKEUT U NIEUNCIEUC - ,0x8CE2 ,0xB6A2 //HANGUL SYLLABLE SSANGTIKEUT U NIEUNHIEUH - ,0x8CE3 ,0xB6A3 //HANGUL SYLLABLE SSANGTIKEUT U TIKEUT - ,0x8CE4 ,0xB6A5 //HANGUL SYLLABLE SSANGTIKEUT U RIEULKIYEOK - ,0x8CE5 ,0xB6A6 //HANGUL SYLLABLE SSANGTIKEUT U RIEULMIEUM - ,0x8CE6 ,0xB6A7 //HANGUL SYLLABLE SSANGTIKEUT U RIEULPIEUP - ,0x8CE7 ,0xB6A8 //HANGUL SYLLABLE SSANGTIKEUT U RIEULSIOS - ,0x8CE8 ,0xB6A9 //HANGUL SYLLABLE SSANGTIKEUT U RIEULTHIEUTH - ,0x8CE9 ,0xB6AA //HANGUL SYLLABLE SSANGTIKEUT U RIEULPHIEUPH - ,0x8CEA ,0xB6AD //HANGUL SYLLABLE SSANGTIKEUT U PIEUP - ,0x8CEB ,0xB6AE //HANGUL SYLLABLE SSANGTIKEUT U PIEUPSIOS - ,0x8CEC ,0xB6AF //HANGUL SYLLABLE SSANGTIKEUT U SIOS - ,0x8CED ,0xB6B0 //HANGUL SYLLABLE SSANGTIKEUT U SSANGSIOS - ,0x8CEE ,0xB6B2 //HANGUL SYLLABLE SSANGTIKEUT U CIEUC - ,0x8CEF ,0xB6B3 //HANGUL SYLLABLE SSANGTIKEUT U CHIEUCH - ,0x8CF0 ,0xB6B4 //HANGUL SYLLABLE SSANGTIKEUT U KHIEUKH - ,0x8CF1 ,0xB6B5 //HANGUL SYLLABLE SSANGTIKEUT U THIEUTH - ,0x8CF2 ,0xB6B6 //HANGUL SYLLABLE SSANGTIKEUT U PHIEUPH - ,0x8CF3 ,0xB6B7 //HANGUL SYLLABLE SSANGTIKEUT U HIEUH - ,0x8CF4 ,0xB6B8 //HANGUL SYLLABLE SSANGTIKEUT WEO - ,0x8CF5 ,0xB6B9 //HANGUL SYLLABLE SSANGTIKEUT WEO KIYEOK - ,0x8CF6 ,0xB6BA //HANGUL SYLLABLE SSANGTIKEUT WEO SSANGKIYEOK - ,0x8CF7 ,0xB6BB //HANGUL SYLLABLE SSANGTIKEUT WEO KIYEOKSIOS - ,0x8CF8 ,0xB6BC //HANGUL SYLLABLE SSANGTIKEUT WEO NIEUN - ,0x8CF9 ,0xB6BD //HANGUL SYLLABLE SSANGTIKEUT WEO NIEUNCIEUC - ,0x8CFA ,0xB6BE //HANGUL SYLLABLE SSANGTIKEUT WEO NIEUNHIEUH - ,0x8CFB ,0xB6BF //HANGUL SYLLABLE SSANGTIKEUT WEO TIKEUT - ,0x8CFC ,0xB6C0 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEUL - ,0x8CFD ,0xB6C1 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEULKIYEOK - ,0x8CFE ,0xB6C2 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEULMIEUM - ,0x8D41 ,0xB6C3 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEULPIEUP - ,0x8D42 ,0xB6C4 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEULSIOS - ,0x8D43 ,0xB6C5 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEULTHIEUTH - ,0x8D44 ,0xB6C6 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEULPHIEUPH - ,0x8D45 ,0xB6C7 //HANGUL SYLLABLE SSANGTIKEUT WEO RIEULHIEUH - ,0x8D46 ,0xB6C8 //HANGUL SYLLABLE SSANGTIKEUT WEO MIEUM - ,0x8D47 ,0xB6C9 //HANGUL SYLLABLE SSANGTIKEUT WEO PIEUP - ,0x8D48 ,0xB6CA //HANGUL SYLLABLE SSANGTIKEUT WEO PIEUPSIOS - ,0x8D49 ,0xB6CB //HANGUL SYLLABLE SSANGTIKEUT WEO SIOS - ,0x8D4A ,0xB6CC //HANGUL SYLLABLE SSANGTIKEUT WEO SSANGSIOS - ,0x8D4B ,0xB6CD //HANGUL SYLLABLE SSANGTIKEUT WEO IEUNG - ,0x8D4C ,0xB6CE //HANGUL SYLLABLE SSANGTIKEUT WEO CIEUC - ,0x8D4D ,0xB6CF //HANGUL SYLLABLE SSANGTIKEUT WEO CHIEUCH - ,0x8D4E ,0xB6D0 //HANGUL SYLLABLE SSANGTIKEUT WEO KHIEUKH - ,0x8D4F ,0xB6D1 //HANGUL SYLLABLE SSANGTIKEUT WEO THIEUTH - ,0x8D50 ,0xB6D2 //HANGUL SYLLABLE SSANGTIKEUT WEO PHIEUPH - ,0x8D51 ,0xB6D3 //HANGUL SYLLABLE SSANGTIKEUT WEO HIEUH - ,0x8D52 ,0xB6D5 //HANGUL SYLLABLE SSANGTIKEUT WE KIYEOK - ,0x8D53 ,0xB6D6 //HANGUL SYLLABLE SSANGTIKEUT WE SSANGKIYEOK - ,0x8D54 ,0xB6D7 //HANGUL SYLLABLE SSANGTIKEUT WE KIYEOKSIOS - ,0x8D55 ,0xB6D8 //HANGUL SYLLABLE SSANGTIKEUT WE NIEUN - ,0x8D56 ,0xB6D9 //HANGUL SYLLABLE SSANGTIKEUT WE NIEUNCIEUC - ,0x8D57 ,0xB6DA //HANGUL SYLLABLE SSANGTIKEUT WE NIEUNHIEUH - ,0x8D58 ,0xB6DB //HANGUL SYLLABLE SSANGTIKEUT WE TIKEUT - ,0x8D59 ,0xB6DC //HANGUL SYLLABLE SSANGTIKEUT WE RIEUL - ,0x8D5A ,0xB6DD //HANGUL SYLLABLE SSANGTIKEUT WE RIEULKIYEOK - ,0x8D61 ,0xB6DE //HANGUL SYLLABLE SSANGTIKEUT WE RIEULMIEUM - ,0x8D62 ,0xB6DF //HANGUL SYLLABLE SSANGTIKEUT WE RIEULPIEUP - ,0x8D63 ,0xB6E0 //HANGUL SYLLABLE SSANGTIKEUT WE RIEULSIOS - ,0x8D64 ,0xB6E1 //HANGUL SYLLABLE SSANGTIKEUT WE RIEULTHIEUTH - ,0x8D65 ,0xB6E2 //HANGUL SYLLABLE SSANGTIKEUT WE RIEULPHIEUPH - ,0x8D66 ,0xB6E3 //HANGUL SYLLABLE SSANGTIKEUT WE RIEULHIEUH - ,0x8D67 ,0xB6E4 //HANGUL SYLLABLE SSANGTIKEUT WE MIEUM - ,0x8D68 ,0xB6E5 //HANGUL SYLLABLE SSANGTIKEUT WE PIEUP - ,0x8D69 ,0xB6E6 //HANGUL SYLLABLE SSANGTIKEUT WE PIEUPSIOS - ,0x8D6A ,0xB6E7 //HANGUL SYLLABLE SSANGTIKEUT WE SIOS - ,0x8D6B ,0xB6E8 //HANGUL SYLLABLE SSANGTIKEUT WE SSANGSIOS - ,0x8D6C ,0xB6E9 //HANGUL SYLLABLE SSANGTIKEUT WE IEUNG - ,0x8D6D ,0xB6EA //HANGUL SYLLABLE SSANGTIKEUT WE CIEUC - ,0x8D6E ,0xB6EB //HANGUL SYLLABLE SSANGTIKEUT WE CHIEUCH - ,0x8D6F ,0xB6EC //HANGUL SYLLABLE SSANGTIKEUT WE KHIEUKH - ,0x8D70 ,0xB6ED //HANGUL SYLLABLE SSANGTIKEUT WE THIEUTH - ,0x8D71 ,0xB6EE //HANGUL SYLLABLE SSANGTIKEUT WE PHIEUPH - ,0x8D72 ,0xB6EF //HANGUL SYLLABLE SSANGTIKEUT WE HIEUH - ,0x8D73 ,0xB6F1 //HANGUL SYLLABLE SSANGTIKEUT WI KIYEOK - ,0x8D74 ,0xB6F2 //HANGUL SYLLABLE SSANGTIKEUT WI SSANGKIYEOK - ,0x8D75 ,0xB6F3 //HANGUL SYLLABLE SSANGTIKEUT WI KIYEOKSIOS - ,0x8D76 ,0xB6F5 //HANGUL SYLLABLE SSANGTIKEUT WI NIEUNCIEUC - ,0x8D77 ,0xB6F6 //HANGUL SYLLABLE SSANGTIKEUT WI NIEUNHIEUH - ,0x8D78 ,0xB6F7 //HANGUL SYLLABLE SSANGTIKEUT WI TIKEUT - ,0x8D79 ,0xB6F9 //HANGUL SYLLABLE SSANGTIKEUT WI RIEULKIYEOK - ,0x8D7A ,0xB6FA //HANGUL SYLLABLE SSANGTIKEUT WI RIEULMIEUM - ,0x8D81 ,0xB6FB //HANGUL SYLLABLE SSANGTIKEUT WI RIEULPIEUP - ,0x8D82 ,0xB6FC //HANGUL SYLLABLE SSANGTIKEUT WI RIEULSIOS - ,0x8D83 ,0xB6FD //HANGUL SYLLABLE SSANGTIKEUT WI RIEULTHIEUTH - ,0x8D84 ,0xB6FE //HANGUL SYLLABLE SSANGTIKEUT WI RIEULPHIEUPH - ,0x8D85 ,0xB6FF //HANGUL SYLLABLE SSANGTIKEUT WI RIEULHIEUH - ,0x8D86 ,0xB702 //HANGUL SYLLABLE SSANGTIKEUT WI PIEUPSIOS - ,0x8D87 ,0xB703 //HANGUL SYLLABLE SSANGTIKEUT WI SIOS - ,0x8D88 ,0xB704 //HANGUL SYLLABLE SSANGTIKEUT WI SSANGSIOS - ,0x8D89 ,0xB706 //HANGUL SYLLABLE SSANGTIKEUT WI CIEUC - ,0x8D8A ,0xB707 //HANGUL SYLLABLE SSANGTIKEUT WI CHIEUCH - ,0x8D8B ,0xB708 //HANGUL SYLLABLE SSANGTIKEUT WI KHIEUKH - ,0x8D8C ,0xB709 //HANGUL SYLLABLE SSANGTIKEUT WI THIEUTH - ,0x8D8D ,0xB70A //HANGUL SYLLABLE SSANGTIKEUT WI PHIEUPH - ,0x8D8E ,0xB70B //HANGUL SYLLABLE SSANGTIKEUT WI HIEUH - ,0x8D8F ,0xB70C //HANGUL SYLLABLE SSANGTIKEUT YU - ,0x8D90 ,0xB70D //HANGUL SYLLABLE SSANGTIKEUT YU KIYEOK - ,0x8D91 ,0xB70E //HANGUL SYLLABLE SSANGTIKEUT YU SSANGKIYEOK - ,0x8D92 ,0xB70F //HANGUL SYLLABLE SSANGTIKEUT YU KIYEOKSIOS - ,0x8D93 ,0xB710 //HANGUL SYLLABLE SSANGTIKEUT YU NIEUN - ,0x8D94 ,0xB711 //HANGUL SYLLABLE SSANGTIKEUT YU NIEUNCIEUC - ,0x8D95 ,0xB712 //HANGUL SYLLABLE SSANGTIKEUT YU NIEUNHIEUH - ,0x8D96 ,0xB713 //HANGUL SYLLABLE SSANGTIKEUT YU TIKEUT - ,0x8D97 ,0xB714 //HANGUL SYLLABLE SSANGTIKEUT YU RIEUL - ,0x8D98 ,0xB715 //HANGUL SYLLABLE SSANGTIKEUT YU RIEULKIYEOK - ,0x8D99 ,0xB716 //HANGUL SYLLABLE SSANGTIKEUT YU RIEULMIEUM - ,0x8D9A ,0xB717 //HANGUL SYLLABLE SSANGTIKEUT YU RIEULPIEUP - ,0x8D9B ,0xB718 //HANGUL SYLLABLE SSANGTIKEUT YU RIEULSIOS - ,0x8D9C ,0xB719 //HANGUL SYLLABLE SSANGTIKEUT YU RIEULTHIEUTH - ,0x8D9D ,0xB71A //HANGUL SYLLABLE SSANGTIKEUT YU RIEULPHIEUPH - ,0x8D9E ,0xB71B //HANGUL SYLLABLE SSANGTIKEUT YU RIEULHIEUH - ,0x8D9F ,0xB71C //HANGUL SYLLABLE SSANGTIKEUT YU MIEUM - ,0x8DA0 ,0xB71D //HANGUL SYLLABLE SSANGTIKEUT YU PIEUP - ,0x8DA1 ,0xB71E //HANGUL SYLLABLE SSANGTIKEUT YU PIEUPSIOS - ,0x8DA2 ,0xB71F //HANGUL SYLLABLE SSANGTIKEUT YU SIOS - ,0x8DA3 ,0xB720 //HANGUL SYLLABLE SSANGTIKEUT YU SSANGSIOS - ,0x8DA4 ,0xB721 //HANGUL SYLLABLE SSANGTIKEUT YU IEUNG - ,0x8DA5 ,0xB722 //HANGUL SYLLABLE SSANGTIKEUT YU CIEUC - ,0x8DA6 ,0xB723 //HANGUL SYLLABLE SSANGTIKEUT YU CHIEUCH - ,0x8DA7 ,0xB724 //HANGUL SYLLABLE SSANGTIKEUT YU KHIEUKH - ,0x8DA8 ,0xB725 //HANGUL SYLLABLE SSANGTIKEUT YU THIEUTH - ,0x8DA9 ,0xB726 //HANGUL SYLLABLE SSANGTIKEUT YU PHIEUPH - ,0x8DAA ,0xB727 //HANGUL SYLLABLE SSANGTIKEUT YU HIEUH - ,0x8DAB ,0xB72A //HANGUL SYLLABLE SSANGTIKEUT EU SSANGKIYEOK - ,0x8DAC ,0xB72B //HANGUL SYLLABLE SSANGTIKEUT EU KIYEOKSIOS - ,0x8DAD ,0xB72D //HANGUL SYLLABLE SSANGTIKEUT EU NIEUNCIEUC - ,0x8DAE ,0xB72E //HANGUL SYLLABLE SSANGTIKEUT EU NIEUNHIEUH - ,0x8DAF ,0xB731 //HANGUL SYLLABLE SSANGTIKEUT EU RIEULKIYEOK - ,0x8DB0 ,0xB732 //HANGUL SYLLABLE SSANGTIKEUT EU RIEULMIEUM - ,0x8DB1 ,0xB733 //HANGUL SYLLABLE SSANGTIKEUT EU RIEULPIEUP - ,0x8DB2 ,0xB734 //HANGUL SYLLABLE SSANGTIKEUT EU RIEULSIOS - ,0x8DB3 ,0xB735 //HANGUL SYLLABLE SSANGTIKEUT EU RIEULTHIEUTH - ,0x8DB4 ,0xB736 //HANGUL SYLLABLE SSANGTIKEUT EU RIEULPHIEUPH - ,0x8DB5 ,0xB737 //HANGUL SYLLABLE SSANGTIKEUT EU RIEULHIEUH - ,0x8DB6 ,0xB73A //HANGUL SYLLABLE SSANGTIKEUT EU PIEUPSIOS - ,0x8DB7 ,0xB73C //HANGUL SYLLABLE SSANGTIKEUT EU SSANGSIOS - ,0x8DB8 ,0xB73D //HANGUL SYLLABLE SSANGTIKEUT EU IEUNG - ,0x8DB9 ,0xB73E //HANGUL SYLLABLE SSANGTIKEUT EU CIEUC - ,0x8DBA ,0xB73F //HANGUL SYLLABLE SSANGTIKEUT EU CHIEUCH - ,0x8DBB ,0xB740 //HANGUL SYLLABLE SSANGTIKEUT EU KHIEUKH - ,0x8DBC ,0xB741 //HANGUL SYLLABLE SSANGTIKEUT EU THIEUTH - ,0x8DBD ,0xB742 //HANGUL SYLLABLE SSANGTIKEUT EU PHIEUPH - ,0x8DBE ,0xB743 //HANGUL SYLLABLE SSANGTIKEUT EU HIEUH - ,0x8DBF ,0xB745 //HANGUL SYLLABLE SSANGTIKEUT YI KIYEOK - ,0x8DC0 ,0xB746 //HANGUL SYLLABLE SSANGTIKEUT YI SSANGKIYEOK - ,0x8DC1 ,0xB747 //HANGUL SYLLABLE SSANGTIKEUT YI KIYEOKSIOS - ,0x8DC2 ,0xB749 //HANGUL SYLLABLE SSANGTIKEUT YI NIEUNCIEUC - ,0x8DC3 ,0xB74A //HANGUL SYLLABLE SSANGTIKEUT YI NIEUNHIEUH - ,0x8DC4 ,0xB74B //HANGUL SYLLABLE SSANGTIKEUT YI TIKEUT - ,0x8DC5 ,0xB74D //HANGUL SYLLABLE SSANGTIKEUT YI RIEULKIYEOK - ,0x8DC6 ,0xB74E //HANGUL SYLLABLE SSANGTIKEUT YI RIEULMIEUM - ,0x8DC7 ,0xB74F //HANGUL SYLLABLE SSANGTIKEUT YI RIEULPIEUP - ,0x8DC8 ,0xB750 //HANGUL SYLLABLE SSANGTIKEUT YI RIEULSIOS - ,0x8DC9 ,0xB751 //HANGUL SYLLABLE SSANGTIKEUT YI RIEULTHIEUTH - ,0x8DCA ,0xB752 //HANGUL SYLLABLE SSANGTIKEUT YI RIEULPHIEUPH - ,0x8DCB ,0xB753 //HANGUL SYLLABLE SSANGTIKEUT YI RIEULHIEUH - ,0x8DCC ,0xB756 //HANGUL SYLLABLE SSANGTIKEUT YI PIEUPSIOS - ,0x8DCD ,0xB757 //HANGUL SYLLABLE SSANGTIKEUT YI SIOS - ,0x8DCE ,0xB758 //HANGUL SYLLABLE SSANGTIKEUT YI SSANGSIOS - ,0x8DCF ,0xB759 //HANGUL SYLLABLE SSANGTIKEUT YI IEUNG - ,0x8DD0 ,0xB75A //HANGUL SYLLABLE SSANGTIKEUT YI CIEUC - ,0x8DD1 ,0xB75B //HANGUL SYLLABLE SSANGTIKEUT YI CHIEUCH - ,0x8DD2 ,0xB75C //HANGUL SYLLABLE SSANGTIKEUT YI KHIEUKH - ,0x8DD3 ,0xB75D //HANGUL SYLLABLE SSANGTIKEUT YI THIEUTH - ,0x8DD4 ,0xB75E //HANGUL SYLLABLE SSANGTIKEUT YI PHIEUPH - ,0x8DD5 ,0xB75F //HANGUL SYLLABLE SSANGTIKEUT YI HIEUH - ,0x8DD6 ,0xB761 //HANGUL SYLLABLE SSANGTIKEUT I KIYEOK - ,0x8DD7 ,0xB762 //HANGUL SYLLABLE SSANGTIKEUT I SSANGKIYEOK - ,0x8DD8 ,0xB763 //HANGUL SYLLABLE SSANGTIKEUT I KIYEOKSIOS - ,0x8DD9 ,0xB765 //HANGUL SYLLABLE SSANGTIKEUT I NIEUNCIEUC - ,0x8DDA ,0xB766 //HANGUL SYLLABLE SSANGTIKEUT I NIEUNHIEUH - ,0x8DDB ,0xB767 //HANGUL SYLLABLE SSANGTIKEUT I TIKEUT - ,0x8DDC ,0xB769 //HANGUL SYLLABLE SSANGTIKEUT I RIEULKIYEOK - ,0x8DDD ,0xB76A //HANGUL SYLLABLE SSANGTIKEUT I RIEULMIEUM - ,0x8DDE ,0xB76B //HANGUL SYLLABLE SSANGTIKEUT I RIEULPIEUP - ,0x8DDF ,0xB76C //HANGUL SYLLABLE SSANGTIKEUT I RIEULSIOS - ,0x8DE0 ,0xB76D //HANGUL SYLLABLE SSANGTIKEUT I RIEULTHIEUTH - ,0x8DE1 ,0xB76E //HANGUL SYLLABLE SSANGTIKEUT I RIEULPHIEUPH - ,0x8DE2 ,0xB76F //HANGUL SYLLABLE SSANGTIKEUT I RIEULHIEUH - ,0x8DE3 ,0xB772 //HANGUL SYLLABLE SSANGTIKEUT I PIEUPSIOS - ,0x8DE4 ,0xB774 //HANGUL SYLLABLE SSANGTIKEUT I SSANGSIOS - ,0x8DE5 ,0xB776 //HANGUL SYLLABLE SSANGTIKEUT I CIEUC - ,0x8DE6 ,0xB777 //HANGUL SYLLABLE SSANGTIKEUT I CHIEUCH - ,0x8DE7 ,0xB778 //HANGUL SYLLABLE SSANGTIKEUT I KHIEUKH - ,0x8DE8 ,0xB779 //HANGUL SYLLABLE SSANGTIKEUT I THIEUTH - ,0x8DE9 ,0xB77A //HANGUL SYLLABLE SSANGTIKEUT I PHIEUPH - ,0x8DEA ,0xB77B //HANGUL SYLLABLE SSANGTIKEUT I HIEUH - ,0x8DEB ,0xB77E //HANGUL SYLLABLE RIEUL A SSANGKIYEOK - ,0x8DEC ,0xB77F //HANGUL SYLLABLE RIEUL A KIYEOKSIOS - ,0x8DED ,0xB781 //HANGUL SYLLABLE RIEUL A NIEUNCIEUC - ,0x8DEE ,0xB782 //HANGUL SYLLABLE RIEUL A NIEUNHIEUH - ,0x8DEF ,0xB783 //HANGUL SYLLABLE RIEUL A TIKEUT - ,0x8DF0 ,0xB785 //HANGUL SYLLABLE RIEUL A RIEULKIYEOK - ,0x8DF1 ,0xB786 //HANGUL SYLLABLE RIEUL A RIEULMIEUM - ,0x8DF2 ,0xB787 //HANGUL SYLLABLE RIEUL A RIEULPIEUP - ,0x8DF3 ,0xB788 //HANGUL SYLLABLE RIEUL A RIEULSIOS - ,0x8DF4 ,0xB789 //HANGUL SYLLABLE RIEUL A RIEULTHIEUTH - ,0x8DF5 ,0xB78A //HANGUL SYLLABLE RIEUL A RIEULPHIEUPH - ,0x8DF6 ,0xB78B //HANGUL SYLLABLE RIEUL A RIEULHIEUH - ,0x8DF7 ,0xB78E //HANGUL SYLLABLE RIEUL A PIEUPSIOS - ,0x8DF8 ,0xB793 //HANGUL SYLLABLE RIEUL A CHIEUCH - ,0x8DF9 ,0xB794 //HANGUL SYLLABLE RIEUL A KHIEUKH - ,0x8DFA ,0xB795 //HANGUL SYLLABLE RIEUL A THIEUTH - ,0x8DFB ,0xB79A //HANGUL SYLLABLE RIEUL AE SSANGKIYEOK - ,0x8DFC ,0xB79B //HANGUL SYLLABLE RIEUL AE KIYEOKSIOS - ,0x8DFD ,0xB79D //HANGUL SYLLABLE RIEUL AE NIEUNCIEUC - ,0x8DFE ,0xB79E //HANGUL SYLLABLE RIEUL AE NIEUNHIEUH - ,0x8E41 ,0xB79F //HANGUL SYLLABLE RIEUL AE TIKEUT - ,0x8E42 ,0xB7A1 //HANGUL SYLLABLE RIEUL AE RIEULKIYEOK - ,0x8E43 ,0xB7A2 //HANGUL SYLLABLE RIEUL AE RIEULMIEUM - ,0x8E44 ,0xB7A3 //HANGUL SYLLABLE RIEUL AE RIEULPIEUP - ,0x8E45 ,0xB7A4 //HANGUL SYLLABLE RIEUL AE RIEULSIOS - ,0x8E46 ,0xB7A5 //HANGUL SYLLABLE RIEUL AE RIEULTHIEUTH - ,0x8E47 ,0xB7A6 //HANGUL SYLLABLE RIEUL AE RIEULPHIEUPH - ,0x8E48 ,0xB7A7 //HANGUL SYLLABLE RIEUL AE RIEULHIEUH - ,0x8E49 ,0xB7AA //HANGUL SYLLABLE RIEUL AE PIEUPSIOS - ,0x8E4A ,0xB7AE //HANGUL SYLLABLE RIEUL AE CIEUC - ,0x8E4B ,0xB7AF //HANGUL SYLLABLE RIEUL AE CHIEUCH - ,0x8E4C ,0xB7B0 //HANGUL SYLLABLE RIEUL AE KHIEUKH - ,0x8E4D ,0xB7B1 //HANGUL SYLLABLE RIEUL AE THIEUTH - ,0x8E4E ,0xB7B2 //HANGUL SYLLABLE RIEUL AE PHIEUPH - ,0x8E4F ,0xB7B3 //HANGUL SYLLABLE RIEUL AE HIEUH - ,0x8E50 ,0xB7B6 //HANGUL SYLLABLE RIEUL YA SSANGKIYEOK - ,0x8E51 ,0xB7B7 //HANGUL SYLLABLE RIEUL YA KIYEOKSIOS - ,0x8E52 ,0xB7B9 //HANGUL SYLLABLE RIEUL YA NIEUNCIEUC - ,0x8E53 ,0xB7BA //HANGUL SYLLABLE RIEUL YA NIEUNHIEUH - ,0x8E54 ,0xB7BB //HANGUL SYLLABLE RIEUL YA TIKEUT - ,0x8E55 ,0xB7BC //HANGUL SYLLABLE RIEUL YA RIEUL - ,0x8E56 ,0xB7BD //HANGUL SYLLABLE RIEUL YA RIEULKIYEOK - ,0x8E57 ,0xB7BE //HANGUL SYLLABLE RIEUL YA RIEULMIEUM - ,0x8E58 ,0xB7BF //HANGUL SYLLABLE RIEUL YA RIEULPIEUP - ,0x8E59 ,0xB7C0 //HANGUL SYLLABLE RIEUL YA RIEULSIOS - ,0x8E5A ,0xB7C1 //HANGUL SYLLABLE RIEUL YA RIEULTHIEUTH - ,0x8E61 ,0xB7C2 //HANGUL SYLLABLE RIEUL YA RIEULPHIEUPH - ,0x8E62 ,0xB7C3 //HANGUL SYLLABLE RIEUL YA RIEULHIEUH - ,0x8E63 ,0xB7C4 //HANGUL SYLLABLE RIEUL YA MIEUM - ,0x8E64 ,0xB7C5 //HANGUL SYLLABLE RIEUL YA PIEUP - ,0x8E65 ,0xB7C6 //HANGUL SYLLABLE RIEUL YA PIEUPSIOS - ,0x8E66 ,0xB7C8 //HANGUL SYLLABLE RIEUL YA SSANGSIOS - ,0x8E67 ,0xB7CA //HANGUL SYLLABLE RIEUL YA CIEUC - ,0x8E68 ,0xB7CB //HANGUL SYLLABLE RIEUL YA CHIEUCH - ,0x8E69 ,0xB7CC //HANGUL SYLLABLE RIEUL YA KHIEUKH - ,0x8E6A ,0xB7CD //HANGUL SYLLABLE RIEUL YA THIEUTH - ,0x8E6B ,0xB7CE //HANGUL SYLLABLE RIEUL YA PHIEUPH - ,0x8E6C ,0xB7CF //HANGUL SYLLABLE RIEUL YA HIEUH - ,0x8E6D ,0xB7D0 //HANGUL SYLLABLE RIEUL YAE - ,0x8E6E ,0xB7D1 //HANGUL SYLLABLE RIEUL YAE KIYEOK - ,0x8E6F ,0xB7D2 //HANGUL SYLLABLE RIEUL YAE SSANGKIYEOK - ,0x8E70 ,0xB7D3 //HANGUL SYLLABLE RIEUL YAE KIYEOKSIOS - ,0x8E71 ,0xB7D4 //HANGUL SYLLABLE RIEUL YAE NIEUN - ,0x8E72 ,0xB7D5 //HANGUL SYLLABLE RIEUL YAE NIEUNCIEUC - ,0x8E73 ,0xB7D6 //HANGUL SYLLABLE RIEUL YAE NIEUNHIEUH - ,0x8E74 ,0xB7D7 //HANGUL SYLLABLE RIEUL YAE TIKEUT - ,0x8E75 ,0xB7D8 //HANGUL SYLLABLE RIEUL YAE RIEUL - ,0x8E76 ,0xB7D9 //HANGUL SYLLABLE RIEUL YAE RIEULKIYEOK - ,0x8E77 ,0xB7DA //HANGUL SYLLABLE RIEUL YAE RIEULMIEUM - ,0x8E78 ,0xB7DB //HANGUL SYLLABLE RIEUL YAE RIEULPIEUP - ,0x8E79 ,0xB7DC //HANGUL SYLLABLE RIEUL YAE RIEULSIOS - ,0x8E7A ,0xB7DD //HANGUL SYLLABLE RIEUL YAE RIEULTHIEUTH - ,0x8E81 ,0xB7DE //HANGUL SYLLABLE RIEUL YAE RIEULPHIEUPH - ,0x8E82 ,0xB7DF //HANGUL SYLLABLE RIEUL YAE RIEULHIEUH - ,0x8E83 ,0xB7E0 //HANGUL SYLLABLE RIEUL YAE MIEUM - ,0x8E84 ,0xB7E1 //HANGUL SYLLABLE RIEUL YAE PIEUP - ,0x8E85 ,0xB7E2 //HANGUL SYLLABLE RIEUL YAE PIEUPSIOS - ,0x8E86 ,0xB7E3 //HANGUL SYLLABLE RIEUL YAE SIOS - ,0x8E87 ,0xB7E4 //HANGUL SYLLABLE RIEUL YAE SSANGSIOS - ,0x8E88 ,0xB7E5 //HANGUL SYLLABLE RIEUL YAE IEUNG - ,0x8E89 ,0xB7E6 //HANGUL SYLLABLE RIEUL YAE CIEUC - ,0x8E8A ,0xB7E7 //HANGUL SYLLABLE RIEUL YAE CHIEUCH - ,0x8E8B ,0xB7E8 //HANGUL SYLLABLE RIEUL YAE KHIEUKH - ,0x8E8C ,0xB7E9 //HANGUL SYLLABLE RIEUL YAE THIEUTH - ,0x8E8D ,0xB7EA //HANGUL SYLLABLE RIEUL YAE PHIEUPH - ,0x8E8E ,0xB7EB //HANGUL SYLLABLE RIEUL YAE HIEUH - ,0x8E8F ,0xB7EE //HANGUL SYLLABLE RIEUL EO SSANGKIYEOK - ,0x8E90 ,0xB7EF //HANGUL SYLLABLE RIEUL EO KIYEOKSIOS - ,0x8E91 ,0xB7F1 //HANGUL SYLLABLE RIEUL EO NIEUNCIEUC - ,0x8E92 ,0xB7F2 //HANGUL SYLLABLE RIEUL EO NIEUNHIEUH - ,0x8E93 ,0xB7F3 //HANGUL SYLLABLE RIEUL EO TIKEUT - ,0x8E94 ,0xB7F5 //HANGUL SYLLABLE RIEUL EO RIEULKIYEOK - ,0x8E95 ,0xB7F6 //HANGUL SYLLABLE RIEUL EO RIEULMIEUM - ,0x8E96 ,0xB7F7 //HANGUL SYLLABLE RIEUL EO RIEULPIEUP - ,0x8E97 ,0xB7F8 //HANGUL SYLLABLE RIEUL EO RIEULSIOS - ,0x8E98 ,0xB7F9 //HANGUL SYLLABLE RIEUL EO RIEULTHIEUTH - ,0x8E99 ,0xB7FA //HANGUL SYLLABLE RIEUL EO RIEULPHIEUPH - ,0x8E9A ,0xB7FB //HANGUL SYLLABLE RIEUL EO RIEULHIEUH - ,0x8E9B ,0xB7FE //HANGUL SYLLABLE RIEUL EO PIEUPSIOS - ,0x8E9C ,0xB802 //HANGUL SYLLABLE RIEUL EO CIEUC - ,0x8E9D ,0xB803 //HANGUL SYLLABLE RIEUL EO CHIEUCH - ,0x8E9E ,0xB804 //HANGUL SYLLABLE RIEUL EO KHIEUKH - ,0x8E9F ,0xB805 //HANGUL SYLLABLE RIEUL EO THIEUTH - ,0x8EA0 ,0xB806 //HANGUL SYLLABLE RIEUL EO PHIEUPH - ,0x8EA1 ,0xB80A //HANGUL SYLLABLE RIEUL E SSANGKIYEOK - ,0x8EA2 ,0xB80B //HANGUL SYLLABLE RIEUL E KIYEOKSIOS - ,0x8EA3 ,0xB80D //HANGUL SYLLABLE RIEUL E NIEUNCIEUC - ,0x8EA4 ,0xB80E //HANGUL SYLLABLE RIEUL E NIEUNHIEUH - ,0x8EA5 ,0xB80F //HANGUL SYLLABLE RIEUL E TIKEUT - ,0x8EA6 ,0xB811 //HANGUL SYLLABLE RIEUL E RIEULKIYEOK - ,0x8EA7 ,0xB812 //HANGUL SYLLABLE RIEUL E RIEULMIEUM - ,0x8EA8 ,0xB813 //HANGUL SYLLABLE RIEUL E RIEULPIEUP - ,0x8EA9 ,0xB814 //HANGUL SYLLABLE RIEUL E RIEULSIOS - ,0x8EAA ,0xB815 //HANGUL SYLLABLE RIEUL E RIEULTHIEUTH - ,0x8EAB ,0xB816 //HANGUL SYLLABLE RIEUL E RIEULPHIEUPH - ,0x8EAC ,0xB817 //HANGUL SYLLABLE RIEUL E RIEULHIEUH - ,0x8EAD ,0xB81A //HANGUL SYLLABLE RIEUL E PIEUPSIOS - ,0x8EAE ,0xB81C //HANGUL SYLLABLE RIEUL E SSANGSIOS - ,0x8EAF ,0xB81E //HANGUL SYLLABLE RIEUL E CIEUC - ,0x8EB0 ,0xB81F //HANGUL SYLLABLE RIEUL E CHIEUCH - ,0x8EB1 ,0xB820 //HANGUL SYLLABLE RIEUL E KHIEUKH - ,0x8EB2 ,0xB821 //HANGUL SYLLABLE RIEUL E THIEUTH - ,0x8EB3 ,0xB822 //HANGUL SYLLABLE RIEUL E PHIEUPH - ,0x8EB4 ,0xB823 //HANGUL SYLLABLE RIEUL E HIEUH - ,0x8EB5 ,0xB826 //HANGUL SYLLABLE RIEUL YEO SSANGKIYEOK - ,0x8EB6 ,0xB827 //HANGUL SYLLABLE RIEUL YEO KIYEOKSIOS - ,0x8EB7 ,0xB829 //HANGUL SYLLABLE RIEUL YEO NIEUNCIEUC - ,0x8EB8 ,0xB82A //HANGUL SYLLABLE RIEUL YEO NIEUNHIEUH - ,0x8EB9 ,0xB82B //HANGUL SYLLABLE RIEUL YEO TIKEUT - ,0x8EBA ,0xB82D //HANGUL SYLLABLE RIEUL YEO RIEULKIYEOK - ,0x8EBB ,0xB82E //HANGUL SYLLABLE RIEUL YEO RIEULMIEUM - ,0x8EBC ,0xB82F //HANGUL SYLLABLE RIEUL YEO RIEULPIEUP - ,0x8EBD ,0xB830 //HANGUL SYLLABLE RIEUL YEO RIEULSIOS - ,0x8EBE ,0xB831 //HANGUL SYLLABLE RIEUL YEO RIEULTHIEUTH - ,0x8EBF ,0xB832 //HANGUL SYLLABLE RIEUL YEO RIEULPHIEUPH - ,0x8EC0 ,0xB833 //HANGUL SYLLABLE RIEUL YEO RIEULHIEUH - ,0x8EC1 ,0xB836 //HANGUL SYLLABLE RIEUL YEO PIEUPSIOS - ,0x8EC2 ,0xB83A //HANGUL SYLLABLE RIEUL YEO CIEUC - ,0x8EC3 ,0xB83B //HANGUL SYLLABLE RIEUL YEO CHIEUCH - ,0x8EC4 ,0xB83C //HANGUL SYLLABLE RIEUL YEO KHIEUKH - ,0x8EC5 ,0xB83D //HANGUL SYLLABLE RIEUL YEO THIEUTH - ,0x8EC6 ,0xB83E //HANGUL SYLLABLE RIEUL YEO PHIEUPH - ,0x8EC7 ,0xB83F //HANGUL SYLLABLE RIEUL YEO HIEUH - ,0x8EC8 ,0xB841 //HANGUL SYLLABLE RIEUL YE KIYEOK - ,0x8EC9 ,0xB842 //HANGUL SYLLABLE RIEUL YE SSANGKIYEOK - ,0x8ECA ,0xB843 //HANGUL SYLLABLE RIEUL YE KIYEOKSIOS - ,0x8ECB ,0xB845 //HANGUL SYLLABLE RIEUL YE NIEUNCIEUC - ,0x8ECC ,0xB846 //HANGUL SYLLABLE RIEUL YE NIEUNHIEUH - ,0x8ECD ,0xB847 //HANGUL SYLLABLE RIEUL YE TIKEUT - ,0x8ECE ,0xB848 //HANGUL SYLLABLE RIEUL YE RIEUL - ,0x8ECF ,0xB849 //HANGUL SYLLABLE RIEUL YE RIEULKIYEOK - ,0x8ED0 ,0xB84A //HANGUL SYLLABLE RIEUL YE RIEULMIEUM - ,0x8ED1 ,0xB84B //HANGUL SYLLABLE RIEUL YE RIEULPIEUP - ,0x8ED2 ,0xB84C //HANGUL SYLLABLE RIEUL YE RIEULSIOS - ,0x8ED3 ,0xB84D //HANGUL SYLLABLE RIEUL YE RIEULTHIEUTH - ,0x8ED4 ,0xB84E //HANGUL SYLLABLE RIEUL YE RIEULPHIEUPH - ,0x8ED5 ,0xB84F //HANGUL SYLLABLE RIEUL YE RIEULHIEUH - ,0x8ED6 ,0xB850 //HANGUL SYLLABLE RIEUL YE MIEUM - ,0x8ED7 ,0xB852 //HANGUL SYLLABLE RIEUL YE PIEUPSIOS - ,0x8ED8 ,0xB854 //HANGUL SYLLABLE RIEUL YE SSANGSIOS - ,0x8ED9 ,0xB855 //HANGUL SYLLABLE RIEUL YE IEUNG - ,0x8EDA ,0xB856 //HANGUL SYLLABLE RIEUL YE CIEUC - ,0x8EDB ,0xB857 //HANGUL SYLLABLE RIEUL YE CHIEUCH - ,0x8EDC ,0xB858 //HANGUL SYLLABLE RIEUL YE KHIEUKH - ,0x8EDD ,0xB859 //HANGUL SYLLABLE RIEUL YE THIEUTH - ,0x8EDE ,0xB85A //HANGUL SYLLABLE RIEUL YE PHIEUPH - ,0x8EDF ,0xB85B //HANGUL SYLLABLE RIEUL YE HIEUH - ,0x8EE0 ,0xB85E //HANGUL SYLLABLE RIEUL O SSANGKIYEOK - ,0x8EE1 ,0xB85F //HANGUL SYLLABLE RIEUL O KIYEOKSIOS - ,0x8EE2 ,0xB861 //HANGUL SYLLABLE RIEUL O NIEUNCIEUC - ,0x8EE3 ,0xB862 //HANGUL SYLLABLE RIEUL O NIEUNHIEUH - ,0x8EE4 ,0xB863 //HANGUL SYLLABLE RIEUL O TIKEUT - ,0x8EE5 ,0xB865 //HANGUL SYLLABLE RIEUL O RIEULKIYEOK - ,0x8EE6 ,0xB866 //HANGUL SYLLABLE RIEUL O RIEULMIEUM - ,0x8EE7 ,0xB867 //HANGUL SYLLABLE RIEUL O RIEULPIEUP - ,0x8EE8 ,0xB868 //HANGUL SYLLABLE RIEUL O RIEULSIOS - ,0x8EE9 ,0xB869 //HANGUL SYLLABLE RIEUL O RIEULTHIEUTH - ,0x8EEA ,0xB86A //HANGUL SYLLABLE RIEUL O RIEULPHIEUPH - ,0x8EEB ,0xB86B //HANGUL SYLLABLE RIEUL O RIEULHIEUH - ,0x8EEC ,0xB86E //HANGUL SYLLABLE RIEUL O PIEUPSIOS - ,0x8EED ,0xB870 //HANGUL SYLLABLE RIEUL O SSANGSIOS - ,0x8EEE ,0xB872 //HANGUL SYLLABLE RIEUL O CIEUC - ,0x8EEF ,0xB873 //HANGUL SYLLABLE RIEUL O CHIEUCH - ,0x8EF0 ,0xB874 //HANGUL SYLLABLE RIEUL O KHIEUKH - ,0x8EF1 ,0xB875 //HANGUL SYLLABLE RIEUL O THIEUTH - ,0x8EF2 ,0xB876 //HANGUL SYLLABLE RIEUL O PHIEUPH - ,0x8EF3 ,0xB877 //HANGUL SYLLABLE RIEUL O HIEUH - ,0x8EF4 ,0xB879 //HANGUL SYLLABLE RIEUL WA KIYEOK - ,0x8EF5 ,0xB87A //HANGUL SYLLABLE RIEUL WA SSANGKIYEOK - ,0x8EF6 ,0xB87B //HANGUL SYLLABLE RIEUL WA KIYEOKSIOS - ,0x8EF7 ,0xB87D //HANGUL SYLLABLE RIEUL WA NIEUNCIEUC - ,0x8EF8 ,0xB87E //HANGUL SYLLABLE RIEUL WA NIEUNHIEUH - ,0x8EF9 ,0xB87F //HANGUL SYLLABLE RIEUL WA TIKEUT - ,0x8EFA ,0xB880 //HANGUL SYLLABLE RIEUL WA RIEUL - ,0x8EFB ,0xB881 //HANGUL SYLLABLE RIEUL WA RIEULKIYEOK - ,0x8EFC ,0xB882 //HANGUL SYLLABLE RIEUL WA RIEULMIEUM - ,0x8EFD ,0xB883 //HANGUL SYLLABLE RIEUL WA RIEULPIEUP - ,0x8EFE ,0xB884 //HANGUL SYLLABLE RIEUL WA RIEULSIOS - ,0x8F41 ,0xB885 //HANGUL SYLLABLE RIEUL WA RIEULTHIEUTH - ,0x8F42 ,0xB886 //HANGUL SYLLABLE RIEUL WA RIEULPHIEUPH - ,0x8F43 ,0xB887 //HANGUL SYLLABLE RIEUL WA RIEULHIEUH - ,0x8F44 ,0xB888 //HANGUL SYLLABLE RIEUL WA MIEUM - ,0x8F45 ,0xB889 //HANGUL SYLLABLE RIEUL WA PIEUP - ,0x8F46 ,0xB88A //HANGUL SYLLABLE RIEUL WA PIEUPSIOS - ,0x8F47 ,0xB88B //HANGUL SYLLABLE RIEUL WA SIOS - ,0x8F48 ,0xB88C //HANGUL SYLLABLE RIEUL WA SSANGSIOS - ,0x8F49 ,0xB88E //HANGUL SYLLABLE RIEUL WA CIEUC - ,0x8F4A ,0xB88F //HANGUL SYLLABLE RIEUL WA CHIEUCH - ,0x8F4B ,0xB890 //HANGUL SYLLABLE RIEUL WA KHIEUKH - ,0x8F4C ,0xB891 //HANGUL SYLLABLE RIEUL WA THIEUTH - ,0x8F4D ,0xB892 //HANGUL SYLLABLE RIEUL WA PHIEUPH - ,0x8F4E ,0xB893 //HANGUL SYLLABLE RIEUL WA HIEUH - ,0x8F4F ,0xB894 //HANGUL SYLLABLE RIEUL WAE - ,0x8F50 ,0xB895 //HANGUL SYLLABLE RIEUL WAE KIYEOK - ,0x8F51 ,0xB896 //HANGUL SYLLABLE RIEUL WAE SSANGKIYEOK - ,0x8F52 ,0xB897 //HANGUL SYLLABLE RIEUL WAE KIYEOKSIOS - ,0x8F53 ,0xB898 //HANGUL SYLLABLE RIEUL WAE NIEUN - ,0x8F54 ,0xB899 //HANGUL SYLLABLE RIEUL WAE NIEUNCIEUC - ,0x8F55 ,0xB89A //HANGUL SYLLABLE RIEUL WAE NIEUNHIEUH - ,0x8F56 ,0xB89B //HANGUL SYLLABLE RIEUL WAE TIKEUT - ,0x8F57 ,0xB89C //HANGUL SYLLABLE RIEUL WAE RIEUL - ,0x8F58 ,0xB89D //HANGUL SYLLABLE RIEUL WAE RIEULKIYEOK - ,0x8F59 ,0xB89E //HANGUL SYLLABLE RIEUL WAE RIEULMIEUM - ,0x8F5A ,0xB89F //HANGUL SYLLABLE RIEUL WAE RIEULPIEUP - ,0x8F61 ,0xB8A0 //HANGUL SYLLABLE RIEUL WAE RIEULSIOS - ,0x8F62 ,0xB8A1 //HANGUL SYLLABLE RIEUL WAE RIEULTHIEUTH - ,0x8F63 ,0xB8A2 //HANGUL SYLLABLE RIEUL WAE RIEULPHIEUPH - ,0x8F64 ,0xB8A3 //HANGUL SYLLABLE RIEUL WAE RIEULHIEUH - ,0x8F65 ,0xB8A4 //HANGUL SYLLABLE RIEUL WAE MIEUM - ,0x8F66 ,0xB8A5 //HANGUL SYLLABLE RIEUL WAE PIEUP - ,0x8F67 ,0xB8A6 //HANGUL SYLLABLE RIEUL WAE PIEUPSIOS - ,0x8F68 ,0xB8A7 //HANGUL SYLLABLE RIEUL WAE SIOS - ,0x8F69 ,0xB8A9 //HANGUL SYLLABLE RIEUL WAE IEUNG - ,0x8F6A ,0xB8AA //HANGUL SYLLABLE RIEUL WAE CIEUC - ,0x8F6B ,0xB8AB //HANGUL SYLLABLE RIEUL WAE CHIEUCH - ,0x8F6C ,0xB8AC //HANGUL SYLLABLE RIEUL WAE KHIEUKH - ,0x8F6D ,0xB8AD //HANGUL SYLLABLE RIEUL WAE THIEUTH - ,0x8F6E ,0xB8AE //HANGUL SYLLABLE RIEUL WAE PHIEUPH - ,0x8F6F ,0xB8AF //HANGUL SYLLABLE RIEUL WAE HIEUH - ,0x8F70 ,0xB8B1 //HANGUL SYLLABLE RIEUL OE KIYEOK - ,0x8F71 ,0xB8B2 //HANGUL SYLLABLE RIEUL OE SSANGKIYEOK - ,0x8F72 ,0xB8B3 //HANGUL SYLLABLE RIEUL OE KIYEOKSIOS - ,0x8F73 ,0xB8B5 //HANGUL SYLLABLE RIEUL OE NIEUNCIEUC - ,0x8F74 ,0xB8B6 //HANGUL SYLLABLE RIEUL OE NIEUNHIEUH - ,0x8F75 ,0xB8B7 //HANGUL SYLLABLE RIEUL OE TIKEUT - ,0x8F76 ,0xB8B9 //HANGUL SYLLABLE RIEUL OE RIEULKIYEOK - ,0x8F77 ,0xB8BA //HANGUL SYLLABLE RIEUL OE RIEULMIEUM - ,0x8F78 ,0xB8BB //HANGUL SYLLABLE RIEUL OE RIEULPIEUP - ,0x8F79 ,0xB8BC //HANGUL SYLLABLE RIEUL OE RIEULSIOS - ,0x8F7A ,0xB8BD //HANGUL SYLLABLE RIEUL OE RIEULTHIEUTH - ,0x8F81 ,0xB8BE //HANGUL SYLLABLE RIEUL OE RIEULPHIEUPH - ,0x8F82 ,0xB8BF //HANGUL SYLLABLE RIEUL OE RIEULHIEUH - ,0x8F83 ,0xB8C2 //HANGUL SYLLABLE RIEUL OE PIEUPSIOS - ,0x8F84 ,0xB8C4 //HANGUL SYLLABLE RIEUL OE SSANGSIOS - ,0x8F85 ,0xB8C6 //HANGUL SYLLABLE RIEUL OE CIEUC - ,0x8F86 ,0xB8C7 //HANGUL SYLLABLE RIEUL OE CHIEUCH - ,0x8F87 ,0xB8C8 //HANGUL SYLLABLE RIEUL OE KHIEUKH - ,0x8F88 ,0xB8C9 //HANGUL SYLLABLE RIEUL OE THIEUTH - ,0x8F89 ,0xB8CA //HANGUL SYLLABLE RIEUL OE PHIEUPH - ,0x8F8A ,0xB8CB //HANGUL SYLLABLE RIEUL OE HIEUH - ,0x8F8B ,0xB8CD //HANGUL SYLLABLE RIEUL YO KIYEOK - ,0x8F8C ,0xB8CE //HANGUL SYLLABLE RIEUL YO SSANGKIYEOK - ,0x8F8D ,0xB8CF //HANGUL SYLLABLE RIEUL YO KIYEOKSIOS - ,0x8F8E ,0xB8D1 //HANGUL SYLLABLE RIEUL YO NIEUNCIEUC - ,0x8F8F ,0xB8D2 //HANGUL SYLLABLE RIEUL YO NIEUNHIEUH - ,0x8F90 ,0xB8D3 //HANGUL SYLLABLE RIEUL YO TIKEUT - ,0x8F91 ,0xB8D5 //HANGUL SYLLABLE RIEUL YO RIEULKIYEOK - ,0x8F92 ,0xB8D6 //HANGUL SYLLABLE RIEUL YO RIEULMIEUM - ,0x8F93 ,0xB8D7 //HANGUL SYLLABLE RIEUL YO RIEULPIEUP - ,0x8F94 ,0xB8D8 //HANGUL SYLLABLE RIEUL YO RIEULSIOS - ,0x8F95 ,0xB8D9 //HANGUL SYLLABLE RIEUL YO RIEULTHIEUTH - ,0x8F96 ,0xB8DA //HANGUL SYLLABLE RIEUL YO RIEULPHIEUPH - ,0x8F97 ,0xB8DB //HANGUL SYLLABLE RIEUL YO RIEULHIEUH - ,0x8F98 ,0xB8DC //HANGUL SYLLABLE RIEUL YO MIEUM - ,0x8F99 ,0xB8DE //HANGUL SYLLABLE RIEUL YO PIEUPSIOS - ,0x8F9A ,0xB8E0 //HANGUL SYLLABLE RIEUL YO SSANGSIOS - ,0x8F9B ,0xB8E2 //HANGUL SYLLABLE RIEUL YO CIEUC - ,0x8F9C ,0xB8E3 //HANGUL SYLLABLE RIEUL YO CHIEUCH - ,0x8F9D ,0xB8E4 //HANGUL SYLLABLE RIEUL YO KHIEUKH - ,0x8F9E ,0xB8E5 //HANGUL SYLLABLE RIEUL YO THIEUTH - ,0x8F9F ,0xB8E6 //HANGUL SYLLABLE RIEUL YO PHIEUPH - ,0x8FA0 ,0xB8E7 //HANGUL SYLLABLE RIEUL YO HIEUH - ,0x8FA1 ,0xB8EA //HANGUL SYLLABLE RIEUL U SSANGKIYEOK - ,0x8FA2 ,0xB8EB //HANGUL SYLLABLE RIEUL U KIYEOKSIOS - ,0x8FA3 ,0xB8ED //HANGUL SYLLABLE RIEUL U NIEUNCIEUC - ,0x8FA4 ,0xB8EE //HANGUL SYLLABLE RIEUL U NIEUNHIEUH - ,0x8FA5 ,0xB8EF //HANGUL SYLLABLE RIEUL U TIKEUT - ,0x8FA6 ,0xB8F1 //HANGUL SYLLABLE RIEUL U RIEULKIYEOK - ,0x8FA7 ,0xB8F2 //HANGUL SYLLABLE RIEUL U RIEULMIEUM - ,0x8FA8 ,0xB8F3 //HANGUL SYLLABLE RIEUL U RIEULPIEUP - ,0x8FA9 ,0xB8F4 //HANGUL SYLLABLE RIEUL U RIEULSIOS - ,0x8FAA ,0xB8F5 //HANGUL SYLLABLE RIEUL U RIEULTHIEUTH - ,0x8FAB ,0xB8F6 //HANGUL SYLLABLE RIEUL U RIEULPHIEUPH - ,0x8FAC ,0xB8F7 //HANGUL SYLLABLE RIEUL U RIEULHIEUH - ,0x8FAD ,0xB8FA //HANGUL SYLLABLE RIEUL U PIEUPSIOS - ,0x8FAE ,0xB8FC //HANGUL SYLLABLE RIEUL U SSANGSIOS - ,0x8FAF ,0xB8FE //HANGUL SYLLABLE RIEUL U CIEUC - ,0x8FB0 ,0xB8FF //HANGUL SYLLABLE RIEUL U CHIEUCH - ,0x8FB1 ,0xB900 //HANGUL SYLLABLE RIEUL U KHIEUKH - ,0x8FB2 ,0xB901 //HANGUL SYLLABLE RIEUL U THIEUTH - ,0x8FB3 ,0xB902 //HANGUL SYLLABLE RIEUL U PHIEUPH - ,0x8FB4 ,0xB903 //HANGUL SYLLABLE RIEUL U HIEUH - ,0x8FB5 ,0xB905 //HANGUL SYLLABLE RIEUL WEO KIYEOK - ,0x8FB6 ,0xB906 //HANGUL SYLLABLE RIEUL WEO SSANGKIYEOK - ,0x8FB7 ,0xB907 //HANGUL SYLLABLE RIEUL WEO KIYEOKSIOS - ,0x8FB8 ,0xB908 //HANGUL SYLLABLE RIEUL WEO NIEUN - ,0x8FB9 ,0xB909 //HANGUL SYLLABLE RIEUL WEO NIEUNCIEUC - ,0x8FBA ,0xB90A //HANGUL SYLLABLE RIEUL WEO NIEUNHIEUH - ,0x8FBB ,0xB90B //HANGUL SYLLABLE RIEUL WEO TIKEUT - ,0x8FBC ,0xB90C //HANGUL SYLLABLE RIEUL WEO RIEUL - ,0x8FBD ,0xB90D //HANGUL SYLLABLE RIEUL WEO RIEULKIYEOK - ,0x8FBE ,0xB90E //HANGUL SYLLABLE RIEUL WEO RIEULMIEUM - ,0x8FBF ,0xB90F //HANGUL SYLLABLE RIEUL WEO RIEULPIEUP - ,0x8FC0 ,0xB910 //HANGUL SYLLABLE RIEUL WEO RIEULSIOS - ,0x8FC1 ,0xB911 //HANGUL SYLLABLE RIEUL WEO RIEULTHIEUTH - ,0x8FC2 ,0xB912 //HANGUL SYLLABLE RIEUL WEO RIEULPHIEUPH - ,0x8FC3 ,0xB913 //HANGUL SYLLABLE RIEUL WEO RIEULHIEUH - ,0x8FC4 ,0xB914 //HANGUL SYLLABLE RIEUL WEO MIEUM - ,0x8FC5 ,0xB915 //HANGUL SYLLABLE RIEUL WEO PIEUP - ,0x8FC6 ,0xB916 //HANGUL SYLLABLE RIEUL WEO PIEUPSIOS - ,0x8FC7 ,0xB917 //HANGUL SYLLABLE RIEUL WEO SIOS - ,0x8FC8 ,0xB919 //HANGUL SYLLABLE RIEUL WEO IEUNG - ,0x8FC9 ,0xB91A //HANGUL SYLLABLE RIEUL WEO CIEUC - ,0x8FCA ,0xB91B //HANGUL SYLLABLE RIEUL WEO CHIEUCH - ,0x8FCB ,0xB91C //HANGUL SYLLABLE RIEUL WEO KHIEUKH - ,0x8FCC ,0xB91D //HANGUL SYLLABLE RIEUL WEO THIEUTH - ,0x8FCD ,0xB91E //HANGUL SYLLABLE RIEUL WEO PHIEUPH - ,0x8FCE ,0xB91F //HANGUL SYLLABLE RIEUL WEO HIEUH - ,0x8FCF ,0xB921 //HANGUL SYLLABLE RIEUL WE KIYEOK - ,0x8FD0 ,0xB922 //HANGUL SYLLABLE RIEUL WE SSANGKIYEOK - ,0x8FD1 ,0xB923 //HANGUL SYLLABLE RIEUL WE KIYEOKSIOS - ,0x8FD2 ,0xB924 //HANGUL SYLLABLE RIEUL WE NIEUN - ,0x8FD3 ,0xB925 //HANGUL SYLLABLE RIEUL WE NIEUNCIEUC - ,0x8FD4 ,0xB926 //HANGUL SYLLABLE RIEUL WE NIEUNHIEUH - ,0x8FD5 ,0xB927 //HANGUL SYLLABLE RIEUL WE TIKEUT - ,0x8FD6 ,0xB928 //HANGUL SYLLABLE RIEUL WE RIEUL - ,0x8FD7 ,0xB929 //HANGUL SYLLABLE RIEUL WE RIEULKIYEOK - ,0x8FD8 ,0xB92A //HANGUL SYLLABLE RIEUL WE RIEULMIEUM - ,0x8FD9 ,0xB92B //HANGUL SYLLABLE RIEUL WE RIEULPIEUP - ,0x8FDA ,0xB92C //HANGUL SYLLABLE RIEUL WE RIEULSIOS - ,0x8FDB ,0xB92D //HANGUL SYLLABLE RIEUL WE RIEULTHIEUTH - ,0x8FDC ,0xB92E //HANGUL SYLLABLE RIEUL WE RIEULPHIEUPH - ,0x8FDD ,0xB92F //HANGUL SYLLABLE RIEUL WE RIEULHIEUH - ,0x8FDE ,0xB930 //HANGUL SYLLABLE RIEUL WE MIEUM - ,0x8FDF ,0xB931 //HANGUL SYLLABLE RIEUL WE PIEUP - ,0x8FE0 ,0xB932 //HANGUL SYLLABLE RIEUL WE PIEUPSIOS - ,0x8FE1 ,0xB933 //HANGUL SYLLABLE RIEUL WE SIOS - ,0x8FE2 ,0xB934 //HANGUL SYLLABLE RIEUL WE SSANGSIOS - ,0x8FE3 ,0xB935 //HANGUL SYLLABLE RIEUL WE IEUNG - ,0x8FE4 ,0xB936 //HANGUL SYLLABLE RIEUL WE CIEUC - ,0x8FE5 ,0xB937 //HANGUL SYLLABLE RIEUL WE CHIEUCH - ,0x8FE6 ,0xB938 //HANGUL SYLLABLE RIEUL WE KHIEUKH - ,0x8FE7 ,0xB939 //HANGUL SYLLABLE RIEUL WE THIEUTH - ,0x8FE8 ,0xB93A //HANGUL SYLLABLE RIEUL WE PHIEUPH - ,0x8FE9 ,0xB93B //HANGUL SYLLABLE RIEUL WE HIEUH - ,0x8FEA ,0xB93E //HANGUL SYLLABLE RIEUL WI SSANGKIYEOK - ,0x8FEB ,0xB93F //HANGUL SYLLABLE RIEUL WI KIYEOKSIOS - ,0x8FEC ,0xB941 //HANGUL SYLLABLE RIEUL WI NIEUNCIEUC - ,0x8FED ,0xB942 //HANGUL SYLLABLE RIEUL WI NIEUNHIEUH - ,0x8FEE ,0xB943 //HANGUL SYLLABLE RIEUL WI TIKEUT - ,0x8FEF ,0xB945 //HANGUL SYLLABLE RIEUL WI RIEULKIYEOK - ,0x8FF0 ,0xB946 //HANGUL SYLLABLE RIEUL WI RIEULMIEUM - ,0x8FF1 ,0xB947 //HANGUL SYLLABLE RIEUL WI RIEULPIEUP - ,0x8FF2 ,0xB948 //HANGUL SYLLABLE RIEUL WI RIEULSIOS - ,0x8FF3 ,0xB949 //HANGUL SYLLABLE RIEUL WI RIEULTHIEUTH - ,0x8FF4 ,0xB94A //HANGUL SYLLABLE RIEUL WI RIEULPHIEUPH - ,0x8FF5 ,0xB94B //HANGUL SYLLABLE RIEUL WI RIEULHIEUH - ,0x8FF6 ,0xB94D //HANGUL SYLLABLE RIEUL WI PIEUP - ,0x8FF7 ,0xB94E //HANGUL SYLLABLE RIEUL WI PIEUPSIOS - ,0x8FF8 ,0xB950 //HANGUL SYLLABLE RIEUL WI SSANGSIOS - ,0x8FF9 ,0xB952 //HANGUL SYLLABLE RIEUL WI CIEUC - ,0x8FFA ,0xB953 //HANGUL SYLLABLE RIEUL WI CHIEUCH - ,0x8FFB ,0xB954 //HANGUL SYLLABLE RIEUL WI KHIEUKH - ,0x8FFC ,0xB955 //HANGUL SYLLABLE RIEUL WI THIEUTH - ,0x8FFD ,0xB956 //HANGUL SYLLABLE RIEUL WI PHIEUPH - ,0x8FFE ,0xB957 //HANGUL SYLLABLE RIEUL WI HIEUH - ,0x9041 ,0xB95A //HANGUL SYLLABLE RIEUL YU SSANGKIYEOK - ,0x9042 ,0xB95B //HANGUL SYLLABLE RIEUL YU KIYEOKSIOS - ,0x9043 ,0xB95D //HANGUL SYLLABLE RIEUL YU NIEUNCIEUC - ,0x9044 ,0xB95E //HANGUL SYLLABLE RIEUL YU NIEUNHIEUH - ,0x9045 ,0xB95F //HANGUL SYLLABLE RIEUL YU TIKEUT - ,0x9046 ,0xB961 //HANGUL SYLLABLE RIEUL YU RIEULKIYEOK - ,0x9047 ,0xB962 //HANGUL SYLLABLE RIEUL YU RIEULMIEUM - ,0x9048 ,0xB963 //HANGUL SYLLABLE RIEUL YU RIEULPIEUP - ,0x9049 ,0xB964 //HANGUL SYLLABLE RIEUL YU RIEULSIOS - ,0x904A ,0xB965 //HANGUL SYLLABLE RIEUL YU RIEULTHIEUTH - ,0x904B ,0xB966 //HANGUL SYLLABLE RIEUL YU RIEULPHIEUPH - ,0x904C ,0xB967 //HANGUL SYLLABLE RIEUL YU RIEULHIEUH - ,0x904D ,0xB96A //HANGUL SYLLABLE RIEUL YU PIEUPSIOS - ,0x904E ,0xB96C //HANGUL SYLLABLE RIEUL YU SSANGSIOS - ,0x904F ,0xB96E //HANGUL SYLLABLE RIEUL YU CIEUC - ,0x9050 ,0xB96F //HANGUL SYLLABLE RIEUL YU CHIEUCH - ,0x9051 ,0xB970 //HANGUL SYLLABLE RIEUL YU KHIEUKH - ,0x9052 ,0xB971 //HANGUL SYLLABLE RIEUL YU THIEUTH - ,0x9053 ,0xB972 //HANGUL SYLLABLE RIEUL YU PHIEUPH - ,0x9054 ,0xB973 //HANGUL SYLLABLE RIEUL YU HIEUH - ,0x9055 ,0xB976 //HANGUL SYLLABLE RIEUL EU SSANGKIYEOK - ,0x9056 ,0xB977 //HANGUL SYLLABLE RIEUL EU KIYEOKSIOS - ,0x9057 ,0xB979 //HANGUL SYLLABLE RIEUL EU NIEUNCIEUC - ,0x9058 ,0xB97A //HANGUL SYLLABLE RIEUL EU NIEUNHIEUH - ,0x9059 ,0xB97B //HANGUL SYLLABLE RIEUL EU TIKEUT - ,0x905A ,0xB97D //HANGUL SYLLABLE RIEUL EU RIEULKIYEOK - ,0x9061 ,0xB97E //HANGUL SYLLABLE RIEUL EU RIEULMIEUM - ,0x9062 ,0xB97F //HANGUL SYLLABLE RIEUL EU RIEULPIEUP - ,0x9063 ,0xB980 //HANGUL SYLLABLE RIEUL EU RIEULSIOS - ,0x9064 ,0xB981 //HANGUL SYLLABLE RIEUL EU RIEULTHIEUTH - ,0x9065 ,0xB982 //HANGUL SYLLABLE RIEUL EU RIEULPHIEUPH - ,0x9066 ,0xB983 //HANGUL SYLLABLE RIEUL EU RIEULHIEUH - ,0x9067 ,0xB986 //HANGUL SYLLABLE RIEUL EU PIEUPSIOS - ,0x9068 ,0xB988 //HANGUL SYLLABLE RIEUL EU SSANGSIOS - ,0x9069 ,0xB98B //HANGUL SYLLABLE RIEUL EU CHIEUCH - ,0x906A ,0xB98C //HANGUL SYLLABLE RIEUL EU KHIEUKH - ,0x906B ,0xB98F //HANGUL SYLLABLE RIEUL EU HIEUH - ,0x906C ,0xB990 //HANGUL SYLLABLE RIEUL YI - ,0x906D ,0xB991 //HANGUL SYLLABLE RIEUL YI KIYEOK - ,0x906E ,0xB992 //HANGUL SYLLABLE RIEUL YI SSANGKIYEOK - ,0x906F ,0xB993 //HANGUL SYLLABLE RIEUL YI KIYEOKSIOS - ,0x9070 ,0xB994 //HANGUL SYLLABLE RIEUL YI NIEUN - ,0x9071 ,0xB995 //HANGUL SYLLABLE RIEUL YI NIEUNCIEUC - ,0x9072 ,0xB996 //HANGUL SYLLABLE RIEUL YI NIEUNHIEUH - ,0x9073 ,0xB997 //HANGUL SYLLABLE RIEUL YI TIKEUT - ,0x9074 ,0xB998 //HANGUL SYLLABLE RIEUL YI RIEUL - ,0x9075 ,0xB999 //HANGUL SYLLABLE RIEUL YI RIEULKIYEOK - ,0x9076 ,0xB99A //HANGUL SYLLABLE RIEUL YI RIEULMIEUM - ,0x9077 ,0xB99B //HANGUL SYLLABLE RIEUL YI RIEULPIEUP - ,0x9078 ,0xB99C //HANGUL SYLLABLE RIEUL YI RIEULSIOS - ,0x9079 ,0xB99D //HANGUL SYLLABLE RIEUL YI RIEULTHIEUTH - ,0x907A ,0xB99E //HANGUL SYLLABLE RIEUL YI RIEULPHIEUPH - ,0x9081 ,0xB99F //HANGUL SYLLABLE RIEUL YI RIEULHIEUH - ,0x9082 ,0xB9A0 //HANGUL SYLLABLE RIEUL YI MIEUM - ,0x9083 ,0xB9A1 //HANGUL SYLLABLE RIEUL YI PIEUP - ,0x9084 ,0xB9A2 //HANGUL SYLLABLE RIEUL YI PIEUPSIOS - ,0x9085 ,0xB9A3 //HANGUL SYLLABLE RIEUL YI SIOS - ,0x9086 ,0xB9A4 //HANGUL SYLLABLE RIEUL YI SSANGSIOS - ,0x9087 ,0xB9A5 //HANGUL SYLLABLE RIEUL YI IEUNG - ,0x9088 ,0xB9A6 //HANGUL SYLLABLE RIEUL YI CIEUC - ,0x9089 ,0xB9A7 //HANGUL SYLLABLE RIEUL YI CHIEUCH - ,0x908A ,0xB9A8 //HANGUL SYLLABLE RIEUL YI KHIEUKH - ,0x908B ,0xB9A9 //HANGUL SYLLABLE RIEUL YI THIEUTH - ,0x908C ,0xB9AA //HANGUL SYLLABLE RIEUL YI PHIEUPH - ,0x908D ,0xB9AB //HANGUL SYLLABLE RIEUL YI HIEUH - ,0x908E ,0xB9AE //HANGUL SYLLABLE RIEUL I SSANGKIYEOK - ,0x908F ,0xB9AF //HANGUL SYLLABLE RIEUL I KIYEOKSIOS - ,0x9090 ,0xB9B1 //HANGUL SYLLABLE RIEUL I NIEUNCIEUC - ,0x9091 ,0xB9B2 //HANGUL SYLLABLE RIEUL I NIEUNHIEUH - ,0x9092 ,0xB9B3 //HANGUL SYLLABLE RIEUL I TIKEUT - ,0x9093 ,0xB9B5 //HANGUL SYLLABLE RIEUL I RIEULKIYEOK - ,0x9094 ,0xB9B6 //HANGUL SYLLABLE RIEUL I RIEULMIEUM - ,0x9095 ,0xB9B7 //HANGUL SYLLABLE RIEUL I RIEULPIEUP - ,0x9096 ,0xB9B8 //HANGUL SYLLABLE RIEUL I RIEULSIOS - ,0x9097 ,0xB9B9 //HANGUL SYLLABLE RIEUL I RIEULTHIEUTH - ,0x9098 ,0xB9BA //HANGUL SYLLABLE RIEUL I RIEULPHIEUPH - ,0x9099 ,0xB9BB //HANGUL SYLLABLE RIEUL I RIEULHIEUH - ,0x909A ,0xB9BE //HANGUL SYLLABLE RIEUL I PIEUPSIOS - ,0x909B ,0xB9C0 //HANGUL SYLLABLE RIEUL I SSANGSIOS - ,0x909C ,0xB9C2 //HANGUL SYLLABLE RIEUL I CIEUC - ,0x909D ,0xB9C3 //HANGUL SYLLABLE RIEUL I CHIEUCH - ,0x909E ,0xB9C4 //HANGUL SYLLABLE RIEUL I KHIEUKH - ,0x909F ,0xB9C5 //HANGUL SYLLABLE RIEUL I THIEUTH - ,0x90A0 ,0xB9C6 //HANGUL SYLLABLE RIEUL I PHIEUPH - ,0x90A1 ,0xB9C7 //HANGUL SYLLABLE RIEUL I HIEUH - ,0x90A2 ,0xB9CA //HANGUL SYLLABLE MIEUM A SSANGKIYEOK - ,0x90A3 ,0xB9CB //HANGUL SYLLABLE MIEUM A KIYEOKSIOS - ,0x90A4 ,0xB9CD //HANGUL SYLLABLE MIEUM A NIEUNCIEUC - ,0x90A5 ,0xB9D3 //HANGUL SYLLABLE MIEUM A RIEULPIEUP - ,0x90A6 ,0xB9D4 //HANGUL SYLLABLE MIEUM A RIEULSIOS - ,0x90A7 ,0xB9D5 //HANGUL SYLLABLE MIEUM A RIEULTHIEUTH - ,0x90A8 ,0xB9D6 //HANGUL SYLLABLE MIEUM A RIEULPHIEUPH - ,0x90A9 ,0xB9D7 //HANGUL SYLLABLE MIEUM A RIEULHIEUH - ,0x90AA ,0xB9DA //HANGUL SYLLABLE MIEUM A PIEUPSIOS - ,0x90AB ,0xB9DC //HANGUL SYLLABLE MIEUM A SSANGSIOS - ,0x90AC ,0xB9DF //HANGUL SYLLABLE MIEUM A CHIEUCH - ,0x90AD ,0xB9E0 //HANGUL SYLLABLE MIEUM A KHIEUKH - ,0x90AE ,0xB9E2 //HANGUL SYLLABLE MIEUM A PHIEUPH - ,0x90AF ,0xB9E6 //HANGUL SYLLABLE MIEUM AE SSANGKIYEOK - ,0x90B0 ,0xB9E7 //HANGUL SYLLABLE MIEUM AE KIYEOKSIOS - ,0x90B1 ,0xB9E9 //HANGUL SYLLABLE MIEUM AE NIEUNCIEUC - ,0x90B2 ,0xB9EA //HANGUL SYLLABLE MIEUM AE NIEUNHIEUH - ,0x90B3 ,0xB9EB //HANGUL SYLLABLE MIEUM AE TIKEUT - ,0x90B4 ,0xB9ED //HANGUL SYLLABLE MIEUM AE RIEULKIYEOK - ,0x90B5 ,0xB9EE //HANGUL SYLLABLE MIEUM AE RIEULMIEUM - ,0x90B6 ,0xB9EF //HANGUL SYLLABLE MIEUM AE RIEULPIEUP - ,0x90B7 ,0xB9F0 //HANGUL SYLLABLE MIEUM AE RIEULSIOS - ,0x90B8 ,0xB9F1 //HANGUL SYLLABLE MIEUM AE RIEULTHIEUTH - ,0x90B9 ,0xB9F2 //HANGUL SYLLABLE MIEUM AE RIEULPHIEUPH - ,0x90BA ,0xB9F3 //HANGUL SYLLABLE MIEUM AE RIEULHIEUH - ,0x90BB ,0xB9F6 //HANGUL SYLLABLE MIEUM AE PIEUPSIOS - ,0x90BC ,0xB9FB //HANGUL SYLLABLE MIEUM AE CHIEUCH - ,0x90BD ,0xB9FC //HANGUL SYLLABLE MIEUM AE KHIEUKH - ,0x90BE ,0xB9FD //HANGUL SYLLABLE MIEUM AE THIEUTH - ,0x90BF ,0xB9FE //HANGUL SYLLABLE MIEUM AE PHIEUPH - ,0x90C0 ,0xB9FF //HANGUL SYLLABLE MIEUM AE HIEUH - ,0x90C1 ,0xBA02 //HANGUL SYLLABLE MIEUM YA SSANGKIYEOK - ,0x90C2 ,0xBA03 //HANGUL SYLLABLE MIEUM YA KIYEOKSIOS - ,0x90C3 ,0xBA04 //HANGUL SYLLABLE MIEUM YA NIEUN - ,0x90C4 ,0xBA05 //HANGUL SYLLABLE MIEUM YA NIEUNCIEUC - ,0x90C5 ,0xBA06 //HANGUL SYLLABLE MIEUM YA NIEUNHIEUH - ,0x90C6 ,0xBA07 //HANGUL SYLLABLE MIEUM YA TIKEUT - ,0x90C7 ,0xBA09 //HANGUL SYLLABLE MIEUM YA RIEULKIYEOK - ,0x90C8 ,0xBA0A //HANGUL SYLLABLE MIEUM YA RIEULMIEUM - ,0x90C9 ,0xBA0B //HANGUL SYLLABLE MIEUM YA RIEULPIEUP - ,0x90CA ,0xBA0C //HANGUL SYLLABLE MIEUM YA RIEULSIOS - ,0x90CB ,0xBA0D //HANGUL SYLLABLE MIEUM YA RIEULTHIEUTH - ,0x90CC ,0xBA0E //HANGUL SYLLABLE MIEUM YA RIEULPHIEUPH - ,0x90CD ,0xBA0F //HANGUL SYLLABLE MIEUM YA RIEULHIEUH - ,0x90CE ,0xBA10 //HANGUL SYLLABLE MIEUM YA MIEUM - ,0x90CF ,0xBA11 //HANGUL SYLLABLE MIEUM YA PIEUP - ,0x90D0 ,0xBA12 //HANGUL SYLLABLE MIEUM YA PIEUPSIOS - ,0x90D1 ,0xBA13 //HANGUL SYLLABLE MIEUM YA SIOS - ,0x90D2 ,0xBA14 //HANGUL SYLLABLE MIEUM YA SSANGSIOS - ,0x90D3 ,0xBA16 //HANGUL SYLLABLE MIEUM YA CIEUC - ,0x90D4 ,0xBA17 //HANGUL SYLLABLE MIEUM YA CHIEUCH - ,0x90D5 ,0xBA18 //HANGUL SYLLABLE MIEUM YA KHIEUKH - ,0x90D6 ,0xBA19 //HANGUL SYLLABLE MIEUM YA THIEUTH - ,0x90D7 ,0xBA1A //HANGUL SYLLABLE MIEUM YA PHIEUPH - ,0x90D8 ,0xBA1B //HANGUL SYLLABLE MIEUM YA HIEUH - ,0x90D9 ,0xBA1C //HANGUL SYLLABLE MIEUM YAE - ,0x90DA ,0xBA1D //HANGUL SYLLABLE MIEUM YAE KIYEOK - ,0x90DB ,0xBA1E //HANGUL SYLLABLE MIEUM YAE SSANGKIYEOK - ,0x90DC ,0xBA1F //HANGUL SYLLABLE MIEUM YAE KIYEOKSIOS - ,0x90DD ,0xBA20 //HANGUL SYLLABLE MIEUM YAE NIEUN - ,0x90DE ,0xBA21 //HANGUL SYLLABLE MIEUM YAE NIEUNCIEUC - ,0x90DF ,0xBA22 //HANGUL SYLLABLE MIEUM YAE NIEUNHIEUH - ,0x90E0 ,0xBA23 //HANGUL SYLLABLE MIEUM YAE TIKEUT - ,0x90E1 ,0xBA24 //HANGUL SYLLABLE MIEUM YAE RIEUL - ,0x90E2 ,0xBA25 //HANGUL SYLLABLE MIEUM YAE RIEULKIYEOK - ,0x90E3 ,0xBA26 //HANGUL SYLLABLE MIEUM YAE RIEULMIEUM - ,0x90E4 ,0xBA27 //HANGUL SYLLABLE MIEUM YAE RIEULPIEUP - ,0x90E5 ,0xBA28 //HANGUL SYLLABLE MIEUM YAE RIEULSIOS - ,0x90E6 ,0xBA29 //HANGUL SYLLABLE MIEUM YAE RIEULTHIEUTH - ,0x90E7 ,0xBA2A //HANGUL SYLLABLE MIEUM YAE RIEULPHIEUPH - ,0x90E8 ,0xBA2B //HANGUL SYLLABLE MIEUM YAE RIEULHIEUH - ,0x90E9 ,0xBA2C //HANGUL SYLLABLE MIEUM YAE MIEUM - ,0x90EA ,0xBA2D //HANGUL SYLLABLE MIEUM YAE PIEUP - ,0x90EB ,0xBA2E //HANGUL SYLLABLE MIEUM YAE PIEUPSIOS - ,0x90EC ,0xBA2F //HANGUL SYLLABLE MIEUM YAE SIOS - ,0x90ED ,0xBA30 //HANGUL SYLLABLE MIEUM YAE SSANGSIOS - ,0x90EE ,0xBA31 //HANGUL SYLLABLE MIEUM YAE IEUNG - ,0x90EF ,0xBA32 //HANGUL SYLLABLE MIEUM YAE CIEUC - ,0x90F0 ,0xBA33 //HANGUL SYLLABLE MIEUM YAE CHIEUCH - ,0x90F1 ,0xBA34 //HANGUL SYLLABLE MIEUM YAE KHIEUKH - ,0x90F2 ,0xBA35 //HANGUL SYLLABLE MIEUM YAE THIEUTH - ,0x90F3 ,0xBA36 //HANGUL SYLLABLE MIEUM YAE PHIEUPH - ,0x90F4 ,0xBA37 //HANGUL SYLLABLE MIEUM YAE HIEUH - ,0x90F5 ,0xBA3A //HANGUL SYLLABLE MIEUM EO SSANGKIYEOK - ,0x90F6 ,0xBA3B //HANGUL SYLLABLE MIEUM EO KIYEOKSIOS - ,0x90F7 ,0xBA3D //HANGUL SYLLABLE MIEUM EO NIEUNCIEUC - ,0x90F8 ,0xBA3E //HANGUL SYLLABLE MIEUM EO NIEUNHIEUH - ,0x90F9 ,0xBA3F //HANGUL SYLLABLE MIEUM EO TIKEUT - ,0x90FA ,0xBA41 //HANGUL SYLLABLE MIEUM EO RIEULKIYEOK - ,0x90FB ,0xBA43 //HANGUL SYLLABLE MIEUM EO RIEULPIEUP - ,0x90FC ,0xBA44 //HANGUL SYLLABLE MIEUM EO RIEULSIOS - ,0x90FD ,0xBA45 //HANGUL SYLLABLE MIEUM EO RIEULTHIEUTH - ,0x90FE ,0xBA46 //HANGUL SYLLABLE MIEUM EO RIEULPHIEUPH - ,0x9141 ,0xBA47 //HANGUL SYLLABLE MIEUM EO RIEULHIEUH - ,0x9142 ,0xBA4A //HANGUL SYLLABLE MIEUM EO PIEUPSIOS - ,0x9143 ,0xBA4C //HANGUL SYLLABLE MIEUM EO SSANGSIOS - ,0x9144 ,0xBA4F //HANGUL SYLLABLE MIEUM EO CHIEUCH - ,0x9145 ,0xBA50 //HANGUL SYLLABLE MIEUM EO KHIEUKH - ,0x9146 ,0xBA51 //HANGUL SYLLABLE MIEUM EO THIEUTH - ,0x9147 ,0xBA52 //HANGUL SYLLABLE MIEUM EO PHIEUPH - ,0x9148 ,0xBA56 //HANGUL SYLLABLE MIEUM E SSANGKIYEOK - ,0x9149 ,0xBA57 //HANGUL SYLLABLE MIEUM E KIYEOKSIOS - ,0x914A ,0xBA59 //HANGUL SYLLABLE MIEUM E NIEUNCIEUC - ,0x914B ,0xBA5A //HANGUL SYLLABLE MIEUM E NIEUNHIEUH - ,0x914C ,0xBA5B //HANGUL SYLLABLE MIEUM E TIKEUT - ,0x914D ,0xBA5D //HANGUL SYLLABLE MIEUM E RIEULKIYEOK - ,0x914E ,0xBA5E //HANGUL SYLLABLE MIEUM E RIEULMIEUM - ,0x914F ,0xBA5F //HANGUL SYLLABLE MIEUM E RIEULPIEUP - ,0x9150 ,0xBA60 //HANGUL SYLLABLE MIEUM E RIEULSIOS - ,0x9151 ,0xBA61 //HANGUL SYLLABLE MIEUM E RIEULTHIEUTH - ,0x9152 ,0xBA62 //HANGUL SYLLABLE MIEUM E RIEULPHIEUPH - ,0x9153 ,0xBA63 //HANGUL SYLLABLE MIEUM E RIEULHIEUH - ,0x9154 ,0xBA66 //HANGUL SYLLABLE MIEUM E PIEUPSIOS - ,0x9155 ,0xBA6A //HANGUL SYLLABLE MIEUM E CIEUC - ,0x9156 ,0xBA6B //HANGUL SYLLABLE MIEUM E CHIEUCH - ,0x9157 ,0xBA6C //HANGUL SYLLABLE MIEUM E KHIEUKH - ,0x9158 ,0xBA6D //HANGUL SYLLABLE MIEUM E THIEUTH - ,0x9159 ,0xBA6E //HANGUL SYLLABLE MIEUM E PHIEUPH - ,0x915A ,0xBA6F //HANGUL SYLLABLE MIEUM E HIEUH - ,0x9161 ,0xBA72 //HANGUL SYLLABLE MIEUM YEO SSANGKIYEOK - ,0x9162 ,0xBA73 //HANGUL SYLLABLE MIEUM YEO KIYEOKSIOS - ,0x9163 ,0xBA75 //HANGUL SYLLABLE MIEUM YEO NIEUNCIEUC - ,0x9164 ,0xBA76 //HANGUL SYLLABLE MIEUM YEO NIEUNHIEUH - ,0x9165 ,0xBA77 //HANGUL SYLLABLE MIEUM YEO TIKEUT - ,0x9166 ,0xBA79 //HANGUL SYLLABLE MIEUM YEO RIEULKIYEOK - ,0x9167 ,0xBA7A //HANGUL SYLLABLE MIEUM YEO RIEULMIEUM - ,0x9168 ,0xBA7B //HANGUL SYLLABLE MIEUM YEO RIEULPIEUP - ,0x9169 ,0xBA7C //HANGUL SYLLABLE MIEUM YEO RIEULSIOS - ,0x916A ,0xBA7D //HANGUL SYLLABLE MIEUM YEO RIEULTHIEUTH - ,0x916B ,0xBA7E //HANGUL SYLLABLE MIEUM YEO RIEULPHIEUPH - ,0x916C ,0xBA7F //HANGUL SYLLABLE MIEUM YEO RIEULHIEUH - ,0x916D ,0xBA80 //HANGUL SYLLABLE MIEUM YEO MIEUM - ,0x916E ,0xBA81 //HANGUL SYLLABLE MIEUM YEO PIEUP - ,0x916F ,0xBA82 //HANGUL SYLLABLE MIEUM YEO PIEUPSIOS - ,0x9170 ,0xBA86 //HANGUL SYLLABLE MIEUM YEO CIEUC - ,0x9171 ,0xBA88 //HANGUL SYLLABLE MIEUM YEO KHIEUKH - ,0x9172 ,0xBA89 //HANGUL SYLLABLE MIEUM YEO THIEUTH - ,0x9173 ,0xBA8A //HANGUL SYLLABLE MIEUM YEO PHIEUPH - ,0x9174 ,0xBA8B //HANGUL SYLLABLE MIEUM YEO HIEUH - ,0x9175 ,0xBA8D //HANGUL SYLLABLE MIEUM YE KIYEOK - ,0x9176 ,0xBA8E //HANGUL SYLLABLE MIEUM YE SSANGKIYEOK - ,0x9177 ,0xBA8F //HANGUL SYLLABLE MIEUM YE KIYEOKSIOS - ,0x9178 ,0xBA90 //HANGUL SYLLABLE MIEUM YE NIEUN - ,0x9179 ,0xBA91 //HANGUL SYLLABLE MIEUM YE NIEUNCIEUC - ,0x917A ,0xBA92 //HANGUL SYLLABLE MIEUM YE NIEUNHIEUH - ,0x9181 ,0xBA93 //HANGUL SYLLABLE MIEUM YE TIKEUT - ,0x9182 ,0xBA94 //HANGUL SYLLABLE MIEUM YE RIEUL - ,0x9183 ,0xBA95 //HANGUL SYLLABLE MIEUM YE RIEULKIYEOK - ,0x9184 ,0xBA96 //HANGUL SYLLABLE MIEUM YE RIEULMIEUM - ,0x9185 ,0xBA97 //HANGUL SYLLABLE MIEUM YE RIEULPIEUP - ,0x9186 ,0xBA98 //HANGUL SYLLABLE MIEUM YE RIEULSIOS - ,0x9187 ,0xBA99 //HANGUL SYLLABLE MIEUM YE RIEULTHIEUTH - ,0x9188 ,0xBA9A //HANGUL SYLLABLE MIEUM YE RIEULPHIEUPH - ,0x9189 ,0xBA9B //HANGUL SYLLABLE MIEUM YE RIEULHIEUH - ,0x918A ,0xBA9C //HANGUL SYLLABLE MIEUM YE MIEUM - ,0x918B ,0xBA9D //HANGUL SYLLABLE MIEUM YE PIEUP - ,0x918C ,0xBA9E //HANGUL SYLLABLE MIEUM YE PIEUPSIOS - ,0x918D ,0xBA9F //HANGUL SYLLABLE MIEUM YE SIOS - ,0x918E ,0xBAA0 //HANGUL SYLLABLE MIEUM YE SSANGSIOS - ,0x918F ,0xBAA1 //HANGUL SYLLABLE MIEUM YE IEUNG - ,0x9190 ,0xBAA2 //HANGUL SYLLABLE MIEUM YE CIEUC - ,0x9191 ,0xBAA3 //HANGUL SYLLABLE MIEUM YE CHIEUCH - ,0x9192 ,0xBAA4 //HANGUL SYLLABLE MIEUM YE KHIEUKH - ,0x9193 ,0xBAA5 //HANGUL SYLLABLE MIEUM YE THIEUTH - ,0x9194 ,0xBAA6 //HANGUL SYLLABLE MIEUM YE PHIEUPH - ,0x9195 ,0xBAA7 //HANGUL SYLLABLE MIEUM YE HIEUH - ,0x9196 ,0xBAAA //HANGUL SYLLABLE MIEUM O SSANGKIYEOK - ,0x9197 ,0xBAAD //HANGUL SYLLABLE MIEUM O NIEUNCIEUC - ,0x9198 ,0xBAAE //HANGUL SYLLABLE MIEUM O NIEUNHIEUH - ,0x9199 ,0xBAAF //HANGUL SYLLABLE MIEUM O TIKEUT - ,0x919A ,0xBAB1 //HANGUL SYLLABLE MIEUM O RIEULKIYEOK - ,0x919B ,0xBAB3 //HANGUL SYLLABLE MIEUM O RIEULPIEUP - ,0x919C ,0xBAB4 //HANGUL SYLLABLE MIEUM O RIEULSIOS - ,0x919D ,0xBAB5 //HANGUL SYLLABLE MIEUM O RIEULTHIEUTH - ,0x919E ,0xBAB6 //HANGUL SYLLABLE MIEUM O RIEULPHIEUPH - ,0x919F ,0xBAB7 //HANGUL SYLLABLE MIEUM O RIEULHIEUH - ,0x91A0 ,0xBABA //HANGUL SYLLABLE MIEUM O PIEUPSIOS - ,0x91A1 ,0xBABC //HANGUL SYLLABLE MIEUM O SSANGSIOS - ,0x91A2 ,0xBABE //HANGUL SYLLABLE MIEUM O CIEUC - ,0x91A3 ,0xBABF //HANGUL SYLLABLE MIEUM O CHIEUCH - ,0x91A4 ,0xBAC0 //HANGUL SYLLABLE MIEUM O KHIEUKH - ,0x91A5 ,0xBAC1 //HANGUL SYLLABLE MIEUM O THIEUTH - ,0x91A6 ,0xBAC2 //HANGUL SYLLABLE MIEUM O PHIEUPH - ,0x91A7 ,0xBAC3 //HANGUL SYLLABLE MIEUM O HIEUH - ,0x91A8 ,0xBAC5 //HANGUL SYLLABLE MIEUM WA KIYEOK - ,0x91A9 ,0xBAC6 //HANGUL SYLLABLE MIEUM WA SSANGKIYEOK - ,0x91AA ,0xBAC7 //HANGUL SYLLABLE MIEUM WA KIYEOKSIOS - ,0x91AB ,0xBAC9 //HANGUL SYLLABLE MIEUM WA NIEUNCIEUC - ,0x91AC ,0xBACA //HANGUL SYLLABLE MIEUM WA NIEUNHIEUH - ,0x91AD ,0xBACB //HANGUL SYLLABLE MIEUM WA TIKEUT - ,0x91AE ,0xBACC //HANGUL SYLLABLE MIEUM WA RIEUL - ,0x91AF ,0xBACD //HANGUL SYLLABLE MIEUM WA RIEULKIYEOK - ,0x91B0 ,0xBACE //HANGUL SYLLABLE MIEUM WA RIEULMIEUM - ,0x91B1 ,0xBACF //HANGUL SYLLABLE MIEUM WA RIEULPIEUP - ,0x91B2 ,0xBAD0 //HANGUL SYLLABLE MIEUM WA RIEULSIOS - ,0x91B3 ,0xBAD1 //HANGUL SYLLABLE MIEUM WA RIEULTHIEUTH - ,0x91B4 ,0xBAD2 //HANGUL SYLLABLE MIEUM WA RIEULPHIEUPH - ,0x91B5 ,0xBAD3 //HANGUL SYLLABLE MIEUM WA RIEULHIEUH - ,0x91B6 ,0xBAD4 //HANGUL SYLLABLE MIEUM WA MIEUM - ,0x91B7 ,0xBAD5 //HANGUL SYLLABLE MIEUM WA PIEUP - ,0x91B8 ,0xBAD6 //HANGUL SYLLABLE MIEUM WA PIEUPSIOS - ,0x91B9 ,0xBAD7 //HANGUL SYLLABLE MIEUM WA SIOS - ,0x91BA ,0xBADA //HANGUL SYLLABLE MIEUM WA CIEUC - ,0x91BB ,0xBADB //HANGUL SYLLABLE MIEUM WA CHIEUCH - ,0x91BC ,0xBADC //HANGUL SYLLABLE MIEUM WA KHIEUKH - ,0x91BD ,0xBADD //HANGUL SYLLABLE MIEUM WA THIEUTH - ,0x91BE ,0xBADE //HANGUL SYLLABLE MIEUM WA PHIEUPH - ,0x91BF ,0xBADF //HANGUL SYLLABLE MIEUM WA HIEUH - ,0x91C0 ,0xBAE0 //HANGUL SYLLABLE MIEUM WAE - ,0x91C1 ,0xBAE1 //HANGUL SYLLABLE MIEUM WAE KIYEOK - ,0x91C2 ,0xBAE2 //HANGUL SYLLABLE MIEUM WAE SSANGKIYEOK - ,0x91C3 ,0xBAE3 //HANGUL SYLLABLE MIEUM WAE KIYEOKSIOS - ,0x91C4 ,0xBAE4 //HANGUL SYLLABLE MIEUM WAE NIEUN - ,0x91C5 ,0xBAE5 //HANGUL SYLLABLE MIEUM WAE NIEUNCIEUC - ,0x91C6 ,0xBAE6 //HANGUL SYLLABLE MIEUM WAE NIEUNHIEUH - ,0x91C7 ,0xBAE7 //HANGUL SYLLABLE MIEUM WAE TIKEUT - ,0x91C8 ,0xBAE8 //HANGUL SYLLABLE MIEUM WAE RIEUL - ,0x91C9 ,0xBAE9 //HANGUL SYLLABLE MIEUM WAE RIEULKIYEOK - ,0x91CA ,0xBAEA //HANGUL SYLLABLE MIEUM WAE RIEULMIEUM - ,0x91CB ,0xBAEB //HANGUL SYLLABLE MIEUM WAE RIEULPIEUP - ,0x91CC ,0xBAEC //HANGUL SYLLABLE MIEUM WAE RIEULSIOS - ,0x91CD ,0xBAED //HANGUL SYLLABLE MIEUM WAE RIEULTHIEUTH - ,0x91CE ,0xBAEE //HANGUL SYLLABLE MIEUM WAE RIEULPHIEUPH - ,0x91CF ,0xBAEF //HANGUL SYLLABLE MIEUM WAE RIEULHIEUH - ,0x91D0 ,0xBAF0 //HANGUL SYLLABLE MIEUM WAE MIEUM - ,0x91D1 ,0xBAF1 //HANGUL SYLLABLE MIEUM WAE PIEUP - ,0x91D2 ,0xBAF2 //HANGUL SYLLABLE MIEUM WAE PIEUPSIOS - ,0x91D3 ,0xBAF3 //HANGUL SYLLABLE MIEUM WAE SIOS - ,0x91D4 ,0xBAF4 //HANGUL SYLLABLE MIEUM WAE SSANGSIOS - ,0x91D5 ,0xBAF5 //HANGUL SYLLABLE MIEUM WAE IEUNG - ,0x91D6 ,0xBAF6 //HANGUL SYLLABLE MIEUM WAE CIEUC - ,0x91D7 ,0xBAF7 //HANGUL SYLLABLE MIEUM WAE CHIEUCH - ,0x91D8 ,0xBAF8 //HANGUL SYLLABLE MIEUM WAE KHIEUKH - ,0x91D9 ,0xBAF9 //HANGUL SYLLABLE MIEUM WAE THIEUTH - ,0x91DA ,0xBAFA //HANGUL SYLLABLE MIEUM WAE PHIEUPH - ,0x91DB ,0xBAFB //HANGUL SYLLABLE MIEUM WAE HIEUH - ,0x91DC ,0xBAFD //HANGUL SYLLABLE MIEUM OE KIYEOK - ,0x91DD ,0xBAFE //HANGUL SYLLABLE MIEUM OE SSANGKIYEOK - ,0x91DE ,0xBAFF //HANGUL SYLLABLE MIEUM OE KIYEOKSIOS - ,0x91DF ,0xBB01 //HANGUL SYLLABLE MIEUM OE NIEUNCIEUC - ,0x91E0 ,0xBB02 //HANGUL SYLLABLE MIEUM OE NIEUNHIEUH - ,0x91E1 ,0xBB03 //HANGUL SYLLABLE MIEUM OE TIKEUT - ,0x91E2 ,0xBB05 //HANGUL SYLLABLE MIEUM OE RIEULKIYEOK - ,0x91E3 ,0xBB06 //HANGUL SYLLABLE MIEUM OE RIEULMIEUM - ,0x91E4 ,0xBB07 //HANGUL SYLLABLE MIEUM OE RIEULPIEUP - ,0x91E5 ,0xBB08 //HANGUL SYLLABLE MIEUM OE RIEULSIOS - ,0x91E6 ,0xBB09 //HANGUL SYLLABLE MIEUM OE RIEULTHIEUTH - ,0x91E7 ,0xBB0A //HANGUL SYLLABLE MIEUM OE RIEULPHIEUPH - ,0x91E8 ,0xBB0B //HANGUL SYLLABLE MIEUM OE RIEULHIEUH - ,0x91E9 ,0xBB0C //HANGUL SYLLABLE MIEUM OE MIEUM - ,0x91EA ,0xBB0E //HANGUL SYLLABLE MIEUM OE PIEUPSIOS - ,0x91EB ,0xBB10 //HANGUL SYLLABLE MIEUM OE SSANGSIOS - ,0x91EC ,0xBB12 //HANGUL SYLLABLE MIEUM OE CIEUC - ,0x91ED ,0xBB13 //HANGUL SYLLABLE MIEUM OE CHIEUCH - ,0x91EE ,0xBB14 //HANGUL SYLLABLE MIEUM OE KHIEUKH - ,0x91EF ,0xBB15 //HANGUL SYLLABLE MIEUM OE THIEUTH - ,0x91F0 ,0xBB16 //HANGUL SYLLABLE MIEUM OE PHIEUPH - ,0x91F1 ,0xBB17 //HANGUL SYLLABLE MIEUM OE HIEUH - ,0x91F2 ,0xBB19 //HANGUL SYLLABLE MIEUM YO KIYEOK - ,0x91F3 ,0xBB1A //HANGUL SYLLABLE MIEUM YO SSANGKIYEOK - ,0x91F4 ,0xBB1B //HANGUL SYLLABLE MIEUM YO KIYEOKSIOS - ,0x91F5 ,0xBB1D //HANGUL SYLLABLE MIEUM YO NIEUNCIEUC - ,0x91F6 ,0xBB1E //HANGUL SYLLABLE MIEUM YO NIEUNHIEUH - ,0x91F7 ,0xBB1F //HANGUL SYLLABLE MIEUM YO TIKEUT - ,0x91F8 ,0xBB21 //HANGUL SYLLABLE MIEUM YO RIEULKIYEOK - ,0x91F9 ,0xBB22 //HANGUL SYLLABLE MIEUM YO RIEULMIEUM - ,0x91FA ,0xBB23 //HANGUL SYLLABLE MIEUM YO RIEULPIEUP - ,0x91FB ,0xBB24 //HANGUL SYLLABLE MIEUM YO RIEULSIOS - ,0x91FC ,0xBB25 //HANGUL SYLLABLE MIEUM YO RIEULTHIEUTH - ,0x91FD ,0xBB26 //HANGUL SYLLABLE MIEUM YO RIEULPHIEUPH - ,0x91FE ,0xBB27 //HANGUL SYLLABLE MIEUM YO RIEULHIEUH - ,0x9241 ,0xBB28 //HANGUL SYLLABLE MIEUM YO MIEUM - ,0x9242 ,0xBB2A //HANGUL SYLLABLE MIEUM YO PIEUPSIOS - ,0x9243 ,0xBB2C //HANGUL SYLLABLE MIEUM YO SSANGSIOS - ,0x9244 ,0xBB2D //HANGUL SYLLABLE MIEUM YO IEUNG - ,0x9245 ,0xBB2E //HANGUL SYLLABLE MIEUM YO CIEUC - ,0x9246 ,0xBB2F //HANGUL SYLLABLE MIEUM YO CHIEUCH - ,0x9247 ,0xBB30 //HANGUL SYLLABLE MIEUM YO KHIEUKH - ,0x9248 ,0xBB31 //HANGUL SYLLABLE MIEUM YO THIEUTH - ,0x9249 ,0xBB32 //HANGUL SYLLABLE MIEUM YO PHIEUPH - ,0x924A ,0xBB33 //HANGUL SYLLABLE MIEUM YO HIEUH - ,0x924B ,0xBB37 //HANGUL SYLLABLE MIEUM U KIYEOKSIOS - ,0x924C ,0xBB39 //HANGUL SYLLABLE MIEUM U NIEUNCIEUC - ,0x924D ,0xBB3A //HANGUL SYLLABLE MIEUM U NIEUNHIEUH - ,0x924E ,0xBB3F //HANGUL SYLLABLE MIEUM U RIEULPIEUP - ,0x924F ,0xBB40 //HANGUL SYLLABLE MIEUM U RIEULSIOS - ,0x9250 ,0xBB41 //HANGUL SYLLABLE MIEUM U RIEULTHIEUTH - ,0x9251 ,0xBB42 //HANGUL SYLLABLE MIEUM U RIEULPHIEUPH - ,0x9252 ,0xBB43 //HANGUL SYLLABLE MIEUM U RIEULHIEUH - ,0x9253 ,0xBB46 //HANGUL SYLLABLE MIEUM U PIEUPSIOS - ,0x9254 ,0xBB48 //HANGUL SYLLABLE MIEUM U SSANGSIOS - ,0x9255 ,0xBB4A //HANGUL SYLLABLE MIEUM U CIEUC - ,0x9256 ,0xBB4B //HANGUL SYLLABLE MIEUM U CHIEUCH - ,0x9257 ,0xBB4C //HANGUL SYLLABLE MIEUM U KHIEUKH - ,0x9258 ,0xBB4E //HANGUL SYLLABLE MIEUM U PHIEUPH - ,0x9259 ,0xBB51 //HANGUL SYLLABLE MIEUM WEO KIYEOK - ,0x925A ,0xBB52 //HANGUL SYLLABLE MIEUM WEO SSANGKIYEOK - ,0x9261 ,0xBB53 //HANGUL SYLLABLE MIEUM WEO KIYEOKSIOS - ,0x9262 ,0xBB55 //HANGUL SYLLABLE MIEUM WEO NIEUNCIEUC - ,0x9263 ,0xBB56 //HANGUL SYLLABLE MIEUM WEO NIEUNHIEUH - ,0x9264 ,0xBB57 //HANGUL SYLLABLE MIEUM WEO TIKEUT - ,0x9265 ,0xBB59 //HANGUL SYLLABLE MIEUM WEO RIEULKIYEOK - ,0x9266 ,0xBB5A //HANGUL SYLLABLE MIEUM WEO RIEULMIEUM - ,0x9267 ,0xBB5B //HANGUL SYLLABLE MIEUM WEO RIEULPIEUP - ,0x9268 ,0xBB5C //HANGUL SYLLABLE MIEUM WEO RIEULSIOS - ,0x9269 ,0xBB5D //HANGUL SYLLABLE MIEUM WEO RIEULTHIEUTH - ,0x926A ,0xBB5E //HANGUL SYLLABLE MIEUM WEO RIEULPHIEUPH - ,0x926B ,0xBB5F //HANGUL SYLLABLE MIEUM WEO RIEULHIEUH - ,0x926C ,0xBB60 //HANGUL SYLLABLE MIEUM WEO MIEUM - ,0x926D ,0xBB62 //HANGUL SYLLABLE MIEUM WEO PIEUPSIOS - ,0x926E ,0xBB64 //HANGUL SYLLABLE MIEUM WEO SSANGSIOS - ,0x926F ,0xBB65 //HANGUL SYLLABLE MIEUM WEO IEUNG - ,0x9270 ,0xBB66 //HANGUL SYLLABLE MIEUM WEO CIEUC - ,0x9271 ,0xBB67 //HANGUL SYLLABLE MIEUM WEO CHIEUCH - ,0x9272 ,0xBB68 //HANGUL SYLLABLE MIEUM WEO KHIEUKH - ,0x9273 ,0xBB69 //HANGUL SYLLABLE MIEUM WEO THIEUTH - ,0x9274 ,0xBB6A //HANGUL SYLLABLE MIEUM WEO PHIEUPH - ,0x9275 ,0xBB6B //HANGUL SYLLABLE MIEUM WEO HIEUH - ,0x9276 ,0xBB6D //HANGUL SYLLABLE MIEUM WE KIYEOK - ,0x9277 ,0xBB6E //HANGUL SYLLABLE MIEUM WE SSANGKIYEOK - ,0x9278 ,0xBB6F //HANGUL SYLLABLE MIEUM WE KIYEOKSIOS - ,0x9279 ,0xBB70 //HANGUL SYLLABLE MIEUM WE NIEUN - ,0x927A ,0xBB71 //HANGUL SYLLABLE MIEUM WE NIEUNCIEUC - ,0x9281 ,0xBB72 //HANGUL SYLLABLE MIEUM WE NIEUNHIEUH - ,0x9282 ,0xBB73 //HANGUL SYLLABLE MIEUM WE TIKEUT - ,0x9283 ,0xBB74 //HANGUL SYLLABLE MIEUM WE RIEUL - ,0x9284 ,0xBB75 //HANGUL SYLLABLE MIEUM WE RIEULKIYEOK - ,0x9285 ,0xBB76 //HANGUL SYLLABLE MIEUM WE RIEULMIEUM - ,0x9286 ,0xBB77 //HANGUL SYLLABLE MIEUM WE RIEULPIEUP - ,0x9287 ,0xBB78 //HANGUL SYLLABLE MIEUM WE RIEULSIOS - ,0x9288 ,0xBB79 //HANGUL SYLLABLE MIEUM WE RIEULTHIEUTH - ,0x9289 ,0xBB7A //HANGUL SYLLABLE MIEUM WE RIEULPHIEUPH - ,0x928A ,0xBB7B //HANGUL SYLLABLE MIEUM WE RIEULHIEUH - ,0x928B ,0xBB7C //HANGUL SYLLABLE MIEUM WE MIEUM - ,0x928C ,0xBB7D //HANGUL SYLLABLE MIEUM WE PIEUP - ,0x928D ,0xBB7E //HANGUL SYLLABLE MIEUM WE PIEUPSIOS - ,0x928E ,0xBB7F //HANGUL SYLLABLE MIEUM WE SIOS - ,0x928F ,0xBB80 //HANGUL SYLLABLE MIEUM WE SSANGSIOS - ,0x9290 ,0xBB81 //HANGUL SYLLABLE MIEUM WE IEUNG - ,0x9291 ,0xBB82 //HANGUL SYLLABLE MIEUM WE CIEUC - ,0x9292 ,0xBB83 //HANGUL SYLLABLE MIEUM WE CHIEUCH - ,0x9293 ,0xBB84 //HANGUL SYLLABLE MIEUM WE KHIEUKH - ,0x9294 ,0xBB85 //HANGUL SYLLABLE MIEUM WE THIEUTH - ,0x9295 ,0xBB86 //HANGUL SYLLABLE MIEUM WE PHIEUPH - ,0x9296 ,0xBB87 //HANGUL SYLLABLE MIEUM WE HIEUH - ,0x9297 ,0xBB89 //HANGUL SYLLABLE MIEUM WI KIYEOK - ,0x9298 ,0xBB8A //HANGUL SYLLABLE MIEUM WI SSANGKIYEOK - ,0x9299 ,0xBB8B //HANGUL SYLLABLE MIEUM WI KIYEOKSIOS - ,0x929A ,0xBB8D //HANGUL SYLLABLE MIEUM WI NIEUNCIEUC - ,0x929B ,0xBB8E //HANGUL SYLLABLE MIEUM WI NIEUNHIEUH - ,0x929C ,0xBB8F //HANGUL SYLLABLE MIEUM WI TIKEUT - ,0x929D ,0xBB91 //HANGUL SYLLABLE MIEUM WI RIEULKIYEOK - ,0x929E ,0xBB92 //HANGUL SYLLABLE MIEUM WI RIEULMIEUM - ,0x929F ,0xBB93 //HANGUL SYLLABLE MIEUM WI RIEULPIEUP - ,0x92A0 ,0xBB94 //HANGUL SYLLABLE MIEUM WI RIEULSIOS - ,0x92A1 ,0xBB95 //HANGUL SYLLABLE MIEUM WI RIEULTHIEUTH - ,0x92A2 ,0xBB96 //HANGUL SYLLABLE MIEUM WI RIEULPHIEUPH - ,0x92A3 ,0xBB97 //HANGUL SYLLABLE MIEUM WI RIEULHIEUH - ,0x92A4 ,0xBB98 //HANGUL SYLLABLE MIEUM WI MIEUM - ,0x92A5 ,0xBB99 //HANGUL SYLLABLE MIEUM WI PIEUP - ,0x92A6 ,0xBB9A //HANGUL SYLLABLE MIEUM WI PIEUPSIOS - ,0x92A7 ,0xBB9B //HANGUL SYLLABLE MIEUM WI SIOS - ,0x92A8 ,0xBB9C //HANGUL SYLLABLE MIEUM WI SSANGSIOS - ,0x92A9 ,0xBB9D //HANGUL SYLLABLE MIEUM WI IEUNG - ,0x92AA ,0xBB9E //HANGUL SYLLABLE MIEUM WI CIEUC - ,0x92AB ,0xBB9F //HANGUL SYLLABLE MIEUM WI CHIEUCH - ,0x92AC ,0xBBA0 //HANGUL SYLLABLE MIEUM WI KHIEUKH - ,0x92AD ,0xBBA1 //HANGUL SYLLABLE MIEUM WI THIEUTH - ,0x92AE ,0xBBA2 //HANGUL SYLLABLE MIEUM WI PHIEUPH - ,0x92AF ,0xBBA3 //HANGUL SYLLABLE MIEUM WI HIEUH - ,0x92B0 ,0xBBA5 //HANGUL SYLLABLE MIEUM YU KIYEOK - ,0x92B1 ,0xBBA6 //HANGUL SYLLABLE MIEUM YU SSANGKIYEOK - ,0x92B2 ,0xBBA7 //HANGUL SYLLABLE MIEUM YU KIYEOKSIOS - ,0x92B3 ,0xBBA9 //HANGUL SYLLABLE MIEUM YU NIEUNCIEUC - ,0x92B4 ,0xBBAA //HANGUL SYLLABLE MIEUM YU NIEUNHIEUH - ,0x92B5 ,0xBBAB //HANGUL SYLLABLE MIEUM YU TIKEUT - ,0x92B6 ,0xBBAD //HANGUL SYLLABLE MIEUM YU RIEULKIYEOK - ,0x92B7 ,0xBBAE //HANGUL SYLLABLE MIEUM YU RIEULMIEUM - ,0x92B8 ,0xBBAF //HANGUL SYLLABLE MIEUM YU RIEULPIEUP - ,0x92B9 ,0xBBB0 //HANGUL SYLLABLE MIEUM YU RIEULSIOS - ,0x92BA ,0xBBB1 //HANGUL SYLLABLE MIEUM YU RIEULTHIEUTH - ,0x92BB ,0xBBB2 //HANGUL SYLLABLE MIEUM YU RIEULPHIEUPH - ,0x92BC ,0xBBB3 //HANGUL SYLLABLE MIEUM YU RIEULHIEUH - ,0x92BD ,0xBBB5 //HANGUL SYLLABLE MIEUM YU PIEUP - ,0x92BE ,0xBBB6 //HANGUL SYLLABLE MIEUM YU PIEUPSIOS - ,0x92BF ,0xBBB8 //HANGUL SYLLABLE MIEUM YU SSANGSIOS - ,0x92C0 ,0xBBB9 //HANGUL SYLLABLE MIEUM YU IEUNG - ,0x92C1 ,0xBBBA //HANGUL SYLLABLE MIEUM YU CIEUC - ,0x92C2 ,0xBBBB //HANGUL SYLLABLE MIEUM YU CHIEUCH - ,0x92C3 ,0xBBBC //HANGUL SYLLABLE MIEUM YU KHIEUKH - ,0x92C4 ,0xBBBD //HANGUL SYLLABLE MIEUM YU THIEUTH - ,0x92C5 ,0xBBBE //HANGUL SYLLABLE MIEUM YU PHIEUPH - ,0x92C6 ,0xBBBF //HANGUL SYLLABLE MIEUM YU HIEUH - ,0x92C7 ,0xBBC1 //HANGUL SYLLABLE MIEUM EU KIYEOK - ,0x92C8 ,0xBBC2 //HANGUL SYLLABLE MIEUM EU SSANGKIYEOK - ,0x92C9 ,0xBBC3 //HANGUL SYLLABLE MIEUM EU KIYEOKSIOS - ,0x92CA ,0xBBC5 //HANGUL SYLLABLE MIEUM EU NIEUNCIEUC - ,0x92CB ,0xBBC6 //HANGUL SYLLABLE MIEUM EU NIEUNHIEUH - ,0x92CC ,0xBBC7 //HANGUL SYLLABLE MIEUM EU TIKEUT - ,0x92CD ,0xBBC9 //HANGUL SYLLABLE MIEUM EU RIEULKIYEOK - ,0x92CE ,0xBBCA //HANGUL SYLLABLE MIEUM EU RIEULMIEUM - ,0x92CF ,0xBBCB //HANGUL SYLLABLE MIEUM EU RIEULPIEUP - ,0x92D0 ,0xBBCC //HANGUL SYLLABLE MIEUM EU RIEULSIOS - ,0x92D1 ,0xBBCD //HANGUL SYLLABLE MIEUM EU RIEULTHIEUTH - ,0x92D2 ,0xBBCE //HANGUL SYLLABLE MIEUM EU RIEULPHIEUPH - ,0x92D3 ,0xBBCF //HANGUL SYLLABLE MIEUM EU RIEULHIEUH - ,0x92D4 ,0xBBD1 //HANGUL SYLLABLE MIEUM EU PIEUP - ,0x92D5 ,0xBBD2 //HANGUL SYLLABLE MIEUM EU PIEUPSIOS - ,0x92D6 ,0xBBD4 //HANGUL SYLLABLE MIEUM EU SSANGSIOS - ,0x92D7 ,0xBBD5 //HANGUL SYLLABLE MIEUM EU IEUNG - ,0x92D8 ,0xBBD6 //HANGUL SYLLABLE MIEUM EU CIEUC - ,0x92D9 ,0xBBD7 //HANGUL SYLLABLE MIEUM EU CHIEUCH - ,0x92DA ,0xBBD8 //HANGUL SYLLABLE MIEUM EU KHIEUKH - ,0x92DB ,0xBBD9 //HANGUL SYLLABLE MIEUM EU THIEUTH - ,0x92DC ,0xBBDA //HANGUL SYLLABLE MIEUM EU PHIEUPH - ,0x92DD ,0xBBDB //HANGUL SYLLABLE MIEUM EU HIEUH - ,0x92DE ,0xBBDC //HANGUL SYLLABLE MIEUM YI - ,0x92DF ,0xBBDD //HANGUL SYLLABLE MIEUM YI KIYEOK - ,0x92E0 ,0xBBDE //HANGUL SYLLABLE MIEUM YI SSANGKIYEOK - ,0x92E1 ,0xBBDF //HANGUL SYLLABLE MIEUM YI KIYEOKSIOS - ,0x92E2 ,0xBBE0 //HANGUL SYLLABLE MIEUM YI NIEUN - ,0x92E3 ,0xBBE1 //HANGUL SYLLABLE MIEUM YI NIEUNCIEUC - ,0x92E4 ,0xBBE2 //HANGUL SYLLABLE MIEUM YI NIEUNHIEUH - ,0x92E5 ,0xBBE3 //HANGUL SYLLABLE MIEUM YI TIKEUT - ,0x92E6 ,0xBBE4 //HANGUL SYLLABLE MIEUM YI RIEUL - ,0x92E7 ,0xBBE5 //HANGUL SYLLABLE MIEUM YI RIEULKIYEOK - ,0x92E8 ,0xBBE6 //HANGUL SYLLABLE MIEUM YI RIEULMIEUM - ,0x92E9 ,0xBBE7 //HANGUL SYLLABLE MIEUM YI RIEULPIEUP - ,0x92EA ,0xBBE8 //HANGUL SYLLABLE MIEUM YI RIEULSIOS - ,0x92EB ,0xBBE9 //HANGUL SYLLABLE MIEUM YI RIEULTHIEUTH - ,0x92EC ,0xBBEA //HANGUL SYLLABLE MIEUM YI RIEULPHIEUPH - ,0x92ED ,0xBBEB //HANGUL SYLLABLE MIEUM YI RIEULHIEUH - ,0x92EE ,0xBBEC //HANGUL SYLLABLE MIEUM YI MIEUM - ,0x92EF ,0xBBED //HANGUL SYLLABLE MIEUM YI PIEUP - ,0x92F0 ,0xBBEE //HANGUL SYLLABLE MIEUM YI PIEUPSIOS - ,0x92F1 ,0xBBEF //HANGUL SYLLABLE MIEUM YI SIOS - ,0x92F2 ,0xBBF0 //HANGUL SYLLABLE MIEUM YI SSANGSIOS - ,0x92F3 ,0xBBF1 //HANGUL SYLLABLE MIEUM YI IEUNG - ,0x92F4 ,0xBBF2 //HANGUL SYLLABLE MIEUM YI CIEUC - ,0x92F5 ,0xBBF3 //HANGUL SYLLABLE MIEUM YI CHIEUCH - ,0x92F6 ,0xBBF4 //HANGUL SYLLABLE MIEUM YI KHIEUKH - ,0x92F7 ,0xBBF5 //HANGUL SYLLABLE MIEUM YI THIEUTH - ,0x92F8 ,0xBBF6 //HANGUL SYLLABLE MIEUM YI PHIEUPH - ,0x92F9 ,0xBBF7 //HANGUL SYLLABLE MIEUM YI HIEUH - ,0x92FA ,0xBBFA //HANGUL SYLLABLE MIEUM I SSANGKIYEOK - ,0x92FB ,0xBBFB //HANGUL SYLLABLE MIEUM I KIYEOKSIOS - ,0x92FC ,0xBBFD //HANGUL SYLLABLE MIEUM I NIEUNCIEUC - ,0x92FD ,0xBBFE //HANGUL SYLLABLE MIEUM I NIEUNHIEUH - ,0x92FE ,0xBC01 //HANGUL SYLLABLE MIEUM I RIEULKIYEOK - ,0x9341 ,0xBC03 //HANGUL SYLLABLE MIEUM I RIEULPIEUP - ,0x9342 ,0xBC04 //HANGUL SYLLABLE MIEUM I RIEULSIOS - ,0x9343 ,0xBC05 //HANGUL SYLLABLE MIEUM I RIEULTHIEUTH - ,0x9344 ,0xBC06 //HANGUL SYLLABLE MIEUM I RIEULPHIEUPH - ,0x9345 ,0xBC07 //HANGUL SYLLABLE MIEUM I RIEULHIEUH - ,0x9346 ,0xBC0A //HANGUL SYLLABLE MIEUM I PIEUPSIOS - ,0x9347 ,0xBC0E //HANGUL SYLLABLE MIEUM I CIEUC - ,0x9348 ,0xBC10 //HANGUL SYLLABLE MIEUM I KHIEUKH - ,0x9349 ,0xBC12 //HANGUL SYLLABLE MIEUM I PHIEUPH - ,0x934A ,0xBC13 //HANGUL SYLLABLE MIEUM I HIEUH - ,0x934B ,0xBC19 //HANGUL SYLLABLE PIEUP A NIEUNCIEUC - ,0x934C ,0xBC1A //HANGUL SYLLABLE PIEUP A NIEUNHIEUH - ,0x934D ,0xBC20 //HANGUL SYLLABLE PIEUP A RIEULSIOS - ,0x934E ,0xBC21 //HANGUL SYLLABLE PIEUP A RIEULTHIEUTH - ,0x934F ,0xBC22 //HANGUL SYLLABLE PIEUP A RIEULPHIEUPH - ,0x9350 ,0xBC23 //HANGUL SYLLABLE PIEUP A RIEULHIEUH - ,0x9351 ,0xBC26 //HANGUL SYLLABLE PIEUP A PIEUPSIOS - ,0x9352 ,0xBC28 //HANGUL SYLLABLE PIEUP A SSANGSIOS - ,0x9353 ,0xBC2A //HANGUL SYLLABLE PIEUP A CIEUC - ,0x9354 ,0xBC2B //HANGUL SYLLABLE PIEUP A CHIEUCH - ,0x9355 ,0xBC2C //HANGUL SYLLABLE PIEUP A KHIEUKH - ,0x9356 ,0xBC2E //HANGUL SYLLABLE PIEUP A PHIEUPH - ,0x9357 ,0xBC2F //HANGUL SYLLABLE PIEUP A HIEUH - ,0x9358 ,0xBC32 //HANGUL SYLLABLE PIEUP AE SSANGKIYEOK - ,0x9359 ,0xBC33 //HANGUL SYLLABLE PIEUP AE KIYEOKSIOS - ,0x935A ,0xBC35 //HANGUL SYLLABLE PIEUP AE NIEUNCIEUC - ,0x9361 ,0xBC36 //HANGUL SYLLABLE PIEUP AE NIEUNHIEUH - ,0x9362 ,0xBC37 //HANGUL SYLLABLE PIEUP AE TIKEUT - ,0x9363 ,0xBC39 //HANGUL SYLLABLE PIEUP AE RIEULKIYEOK - ,0x9364 ,0xBC3A //HANGUL SYLLABLE PIEUP AE RIEULMIEUM - ,0x9365 ,0xBC3B //HANGUL SYLLABLE PIEUP AE RIEULPIEUP - ,0x9366 ,0xBC3C //HANGUL SYLLABLE PIEUP AE RIEULSIOS - ,0x9367 ,0xBC3D //HANGUL SYLLABLE PIEUP AE RIEULTHIEUTH - ,0x9368 ,0xBC3E //HANGUL SYLLABLE PIEUP AE RIEULPHIEUPH - ,0x9369 ,0xBC3F //HANGUL SYLLABLE PIEUP AE RIEULHIEUH - ,0x936A ,0xBC42 //HANGUL SYLLABLE PIEUP AE PIEUPSIOS - ,0x936B ,0xBC46 //HANGUL SYLLABLE PIEUP AE CIEUC - ,0x936C ,0xBC47 //HANGUL SYLLABLE PIEUP AE CHIEUCH - ,0x936D ,0xBC48 //HANGUL SYLLABLE PIEUP AE KHIEUKH - ,0x936E ,0xBC4A //HANGUL SYLLABLE PIEUP AE PHIEUPH - ,0x936F ,0xBC4B //HANGUL SYLLABLE PIEUP AE HIEUH - ,0x9370 ,0xBC4E //HANGUL SYLLABLE PIEUP YA SSANGKIYEOK - ,0x9371 ,0xBC4F //HANGUL SYLLABLE PIEUP YA KIYEOKSIOS - ,0x9372 ,0xBC51 //HANGUL SYLLABLE PIEUP YA NIEUNCIEUC - ,0x9373 ,0xBC52 //HANGUL SYLLABLE PIEUP YA NIEUNHIEUH - ,0x9374 ,0xBC53 //HANGUL SYLLABLE PIEUP YA TIKEUT - ,0x9375 ,0xBC54 //HANGUL SYLLABLE PIEUP YA RIEUL - ,0x9376 ,0xBC55 //HANGUL SYLLABLE PIEUP YA RIEULKIYEOK - ,0x9377 ,0xBC56 //HANGUL SYLLABLE PIEUP YA RIEULMIEUM - ,0x9378 ,0xBC57 //HANGUL SYLLABLE PIEUP YA RIEULPIEUP - ,0x9379 ,0xBC58 //HANGUL SYLLABLE PIEUP YA RIEULSIOS - ,0x937A ,0xBC59 //HANGUL SYLLABLE PIEUP YA RIEULTHIEUTH - ,0x9381 ,0xBC5A //HANGUL SYLLABLE PIEUP YA RIEULPHIEUPH - ,0x9382 ,0xBC5B //HANGUL SYLLABLE PIEUP YA RIEULHIEUH - ,0x9383 ,0xBC5C //HANGUL SYLLABLE PIEUP YA MIEUM - ,0x9384 ,0xBC5E //HANGUL SYLLABLE PIEUP YA PIEUPSIOS - ,0x9385 ,0xBC5F //HANGUL SYLLABLE PIEUP YA SIOS - ,0x9386 ,0xBC60 //HANGUL SYLLABLE PIEUP YA SSANGSIOS - ,0x9387 ,0xBC61 //HANGUL SYLLABLE PIEUP YA IEUNG - ,0x9388 ,0xBC62 //HANGUL SYLLABLE PIEUP YA CIEUC - ,0x9389 ,0xBC63 //HANGUL SYLLABLE PIEUP YA CHIEUCH - ,0x938A ,0xBC64 //HANGUL SYLLABLE PIEUP YA KHIEUKH - ,0x938B ,0xBC65 //HANGUL SYLLABLE PIEUP YA THIEUTH - ,0x938C ,0xBC66 //HANGUL SYLLABLE PIEUP YA PHIEUPH - ,0x938D ,0xBC67 //HANGUL SYLLABLE PIEUP YA HIEUH - ,0x938E ,0xBC68 //HANGUL SYLLABLE PIEUP YAE - ,0x938F ,0xBC69 //HANGUL SYLLABLE PIEUP YAE KIYEOK - ,0x9390 ,0xBC6A //HANGUL SYLLABLE PIEUP YAE SSANGKIYEOK - ,0x9391 ,0xBC6B //HANGUL SYLLABLE PIEUP YAE KIYEOKSIOS - ,0x9392 ,0xBC6C //HANGUL SYLLABLE PIEUP YAE NIEUN - ,0x9393 ,0xBC6D //HANGUL SYLLABLE PIEUP YAE NIEUNCIEUC - ,0x9394 ,0xBC6E //HANGUL SYLLABLE PIEUP YAE NIEUNHIEUH - ,0x9395 ,0xBC6F //HANGUL SYLLABLE PIEUP YAE TIKEUT - ,0x9396 ,0xBC70 //HANGUL SYLLABLE PIEUP YAE RIEUL - ,0x9397 ,0xBC71 //HANGUL SYLLABLE PIEUP YAE RIEULKIYEOK - ,0x9398 ,0xBC72 //HANGUL SYLLABLE PIEUP YAE RIEULMIEUM - ,0x9399 ,0xBC73 //HANGUL SYLLABLE PIEUP YAE RIEULPIEUP - ,0x939A ,0xBC74 //HANGUL SYLLABLE PIEUP YAE RIEULSIOS - ,0x939B ,0xBC75 //HANGUL SYLLABLE PIEUP YAE RIEULTHIEUTH - ,0x939C ,0xBC76 //HANGUL SYLLABLE PIEUP YAE RIEULPHIEUPH - ,0x939D ,0xBC77 //HANGUL SYLLABLE PIEUP YAE RIEULHIEUH - ,0x939E ,0xBC78 //HANGUL SYLLABLE PIEUP YAE MIEUM - ,0x939F ,0xBC79 //HANGUL SYLLABLE PIEUP YAE PIEUP - ,0x93A0 ,0xBC7A //HANGUL SYLLABLE PIEUP YAE PIEUPSIOS - ,0x93A1 ,0xBC7B //HANGUL SYLLABLE PIEUP YAE SIOS - ,0x93A2 ,0xBC7C //HANGUL SYLLABLE PIEUP YAE SSANGSIOS - ,0x93A3 ,0xBC7D //HANGUL SYLLABLE PIEUP YAE IEUNG - ,0x93A4 ,0xBC7E //HANGUL SYLLABLE PIEUP YAE CIEUC - ,0x93A5 ,0xBC7F //HANGUL SYLLABLE PIEUP YAE CHIEUCH - ,0x93A6 ,0xBC80 //HANGUL SYLLABLE PIEUP YAE KHIEUKH - ,0x93A7 ,0xBC81 //HANGUL SYLLABLE PIEUP YAE THIEUTH - ,0x93A8 ,0xBC82 //HANGUL SYLLABLE PIEUP YAE PHIEUPH - ,0x93A9 ,0xBC83 //HANGUL SYLLABLE PIEUP YAE HIEUH - ,0x93AA ,0xBC86 //HANGUL SYLLABLE PIEUP EO SSANGKIYEOK - ,0x93AB ,0xBC87 //HANGUL SYLLABLE PIEUP EO KIYEOKSIOS - ,0x93AC ,0xBC89 //HANGUL SYLLABLE PIEUP EO NIEUNCIEUC - ,0x93AD ,0xBC8A //HANGUL SYLLABLE PIEUP EO NIEUNHIEUH - ,0x93AE ,0xBC8D //HANGUL SYLLABLE PIEUP EO RIEULKIYEOK - ,0x93AF ,0xBC8F //HANGUL SYLLABLE PIEUP EO RIEULPIEUP - ,0x93B0 ,0xBC90 //HANGUL SYLLABLE PIEUP EO RIEULSIOS - ,0x93B1 ,0xBC91 //HANGUL SYLLABLE PIEUP EO RIEULTHIEUTH - ,0x93B2 ,0xBC92 //HANGUL SYLLABLE PIEUP EO RIEULPHIEUPH - ,0x93B3 ,0xBC93 //HANGUL SYLLABLE PIEUP EO RIEULHIEUH - ,0x93B4 ,0xBC96 //HANGUL SYLLABLE PIEUP EO PIEUPSIOS - ,0x93B5 ,0xBC98 //HANGUL SYLLABLE PIEUP EO SSANGSIOS - ,0x93B6 ,0xBC9B //HANGUL SYLLABLE PIEUP EO CHIEUCH - ,0x93B7 ,0xBC9C //HANGUL SYLLABLE PIEUP EO KHIEUKH - ,0x93B8 ,0xBC9D //HANGUL SYLLABLE PIEUP EO THIEUTH - ,0x93B9 ,0xBC9E //HANGUL SYLLABLE PIEUP EO PHIEUPH - ,0x93BA ,0xBC9F //HANGUL SYLLABLE PIEUP EO HIEUH - ,0x93BB ,0xBCA2 //HANGUL SYLLABLE PIEUP E SSANGKIYEOK - ,0x93BC ,0xBCA3 //HANGUL SYLLABLE PIEUP E KIYEOKSIOS - ,0x93BD ,0xBCA5 //HANGUL SYLLABLE PIEUP E NIEUNCIEUC - ,0x93BE ,0xBCA6 //HANGUL SYLLABLE PIEUP E NIEUNHIEUH - ,0x93BF ,0xBCA9 //HANGUL SYLLABLE PIEUP E RIEULKIYEOK - ,0x93C0 ,0xBCAA //HANGUL SYLLABLE PIEUP E RIEULMIEUM - ,0x93C1 ,0xBCAB //HANGUL SYLLABLE PIEUP E RIEULPIEUP - ,0x93C2 ,0xBCAC //HANGUL SYLLABLE PIEUP E RIEULSIOS - ,0x93C3 ,0xBCAD //HANGUL SYLLABLE PIEUP E RIEULTHIEUTH - ,0x93C4 ,0xBCAE //HANGUL SYLLABLE PIEUP E RIEULPHIEUPH - ,0x93C5 ,0xBCAF //HANGUL SYLLABLE PIEUP E RIEULHIEUH - ,0x93C6 ,0xBCB2 //HANGUL SYLLABLE PIEUP E PIEUPSIOS - ,0x93C7 ,0xBCB6 //HANGUL SYLLABLE PIEUP E CIEUC - ,0x93C8 ,0xBCB7 //HANGUL SYLLABLE PIEUP E CHIEUCH - ,0x93C9 ,0xBCB8 //HANGUL SYLLABLE PIEUP E KHIEUKH - ,0x93CA ,0xBCB9 //HANGUL SYLLABLE PIEUP E THIEUTH - ,0x93CB ,0xBCBA //HANGUL SYLLABLE PIEUP E PHIEUPH - ,0x93CC ,0xBCBB //HANGUL SYLLABLE PIEUP E HIEUH - ,0x93CD ,0xBCBE //HANGUL SYLLABLE PIEUP YEO SSANGKIYEOK - ,0x93CE ,0xBCBF //HANGUL SYLLABLE PIEUP YEO KIYEOKSIOS - ,0x93CF ,0xBCC1 //HANGUL SYLLABLE PIEUP YEO NIEUNCIEUC - ,0x93D0 ,0xBCC2 //HANGUL SYLLABLE PIEUP YEO NIEUNHIEUH - ,0x93D1 ,0xBCC3 //HANGUL SYLLABLE PIEUP YEO TIKEUT - ,0x93D2 ,0xBCC5 //HANGUL SYLLABLE PIEUP YEO RIEULKIYEOK - ,0x93D3 ,0xBCC6 //HANGUL SYLLABLE PIEUP YEO RIEULMIEUM - ,0x93D4 ,0xBCC7 //HANGUL SYLLABLE PIEUP YEO RIEULPIEUP - ,0x93D5 ,0xBCC8 //HANGUL SYLLABLE PIEUP YEO RIEULSIOS - ,0x93D6 ,0xBCC9 //HANGUL SYLLABLE PIEUP YEO RIEULTHIEUTH - ,0x93D7 ,0xBCCA //HANGUL SYLLABLE PIEUP YEO RIEULPHIEUPH - ,0x93D8 ,0xBCCB //HANGUL SYLLABLE PIEUP YEO RIEULHIEUH - ,0x93D9 ,0xBCCC //HANGUL SYLLABLE PIEUP YEO MIEUM - ,0x93DA ,0xBCCE //HANGUL SYLLABLE PIEUP YEO PIEUPSIOS - ,0x93DB ,0xBCD2 //HANGUL SYLLABLE PIEUP YEO CIEUC - ,0x93DC ,0xBCD3 //HANGUL SYLLABLE PIEUP YEO CHIEUCH - ,0x93DD ,0xBCD4 //HANGUL SYLLABLE PIEUP YEO KHIEUKH - ,0x93DE ,0xBCD6 //HANGUL SYLLABLE PIEUP YEO PHIEUPH - ,0x93DF ,0xBCD7 //HANGUL SYLLABLE PIEUP YEO HIEUH - ,0x93E0 ,0xBCD9 //HANGUL SYLLABLE PIEUP YE KIYEOK - ,0x93E1 ,0xBCDA //HANGUL SYLLABLE PIEUP YE SSANGKIYEOK - ,0x93E2 ,0xBCDB //HANGUL SYLLABLE PIEUP YE KIYEOKSIOS - ,0x93E3 ,0xBCDD //HANGUL SYLLABLE PIEUP YE NIEUNCIEUC - ,0x93E4 ,0xBCDE //HANGUL SYLLABLE PIEUP YE NIEUNHIEUH - ,0x93E5 ,0xBCDF //HANGUL SYLLABLE PIEUP YE TIKEUT - ,0x93E6 ,0xBCE0 //HANGUL SYLLABLE PIEUP YE RIEUL - ,0x93E7 ,0xBCE1 //HANGUL SYLLABLE PIEUP YE RIEULKIYEOK - ,0x93E8 ,0xBCE2 //HANGUL SYLLABLE PIEUP YE RIEULMIEUM - ,0x93E9 ,0xBCE3 //HANGUL SYLLABLE PIEUP YE RIEULPIEUP - ,0x93EA ,0xBCE4 //HANGUL SYLLABLE PIEUP YE RIEULSIOS - ,0x93EB ,0xBCE5 //HANGUL SYLLABLE PIEUP YE RIEULTHIEUTH - ,0x93EC ,0xBCE6 //HANGUL SYLLABLE PIEUP YE RIEULPHIEUPH - ,0x93ED ,0xBCE7 //HANGUL SYLLABLE PIEUP YE RIEULHIEUH - ,0x93EE ,0xBCE8 //HANGUL SYLLABLE PIEUP YE MIEUM - ,0x93EF ,0xBCE9 //HANGUL SYLLABLE PIEUP YE PIEUP - ,0x93F0 ,0xBCEA //HANGUL SYLLABLE PIEUP YE PIEUPSIOS - ,0x93F1 ,0xBCEB //HANGUL SYLLABLE PIEUP YE SIOS - ,0x93F2 ,0xBCEC //HANGUL SYLLABLE PIEUP YE SSANGSIOS - ,0x93F3 ,0xBCED //HANGUL SYLLABLE PIEUP YE IEUNG - ,0x93F4 ,0xBCEE //HANGUL SYLLABLE PIEUP YE CIEUC - ,0x93F5 ,0xBCEF //HANGUL SYLLABLE PIEUP YE CHIEUCH - ,0x93F6 ,0xBCF0 //HANGUL SYLLABLE PIEUP YE KHIEUKH - ,0x93F7 ,0xBCF1 //HANGUL SYLLABLE PIEUP YE THIEUTH - ,0x93F8 ,0xBCF2 //HANGUL SYLLABLE PIEUP YE PHIEUPH - ,0x93F9 ,0xBCF3 //HANGUL SYLLABLE PIEUP YE HIEUH - ,0x93FA ,0xBCF7 //HANGUL SYLLABLE PIEUP O KIYEOKSIOS - ,0x93FB ,0xBCF9 //HANGUL SYLLABLE PIEUP O NIEUNCIEUC - ,0x93FC ,0xBCFA //HANGUL SYLLABLE PIEUP O NIEUNHIEUH - ,0x93FD ,0xBCFB //HANGUL SYLLABLE PIEUP O TIKEUT - ,0x93FE ,0xBCFD //HANGUL SYLLABLE PIEUP O RIEULKIYEOK - ,0x9441 ,0xBCFE //HANGUL SYLLABLE PIEUP O RIEULMIEUM - ,0x9442 ,0xBCFF //HANGUL SYLLABLE PIEUP O RIEULPIEUP - ,0x9443 ,0xBD00 //HANGUL SYLLABLE PIEUP O RIEULSIOS - ,0x9444 ,0xBD01 //HANGUL SYLLABLE PIEUP O RIEULTHIEUTH - ,0x9445 ,0xBD02 //HANGUL SYLLABLE PIEUP O RIEULPHIEUPH - ,0x9446 ,0xBD03 //HANGUL SYLLABLE PIEUP O RIEULHIEUH - ,0x9447 ,0xBD06 //HANGUL SYLLABLE PIEUP O PIEUPSIOS - ,0x9448 ,0xBD08 //HANGUL SYLLABLE PIEUP O SSANGSIOS - ,0x9449 ,0xBD0A //HANGUL SYLLABLE PIEUP O CIEUC - ,0x944A ,0xBD0B //HANGUL SYLLABLE PIEUP O CHIEUCH - ,0x944B ,0xBD0C //HANGUL SYLLABLE PIEUP O KHIEUKH - ,0x944C ,0xBD0D //HANGUL SYLLABLE PIEUP O THIEUTH - ,0x944D ,0xBD0E //HANGUL SYLLABLE PIEUP O PHIEUPH - ,0x944E ,0xBD0F //HANGUL SYLLABLE PIEUP O HIEUH - ,0x944F ,0xBD11 //HANGUL SYLLABLE PIEUP WA KIYEOK - ,0x9450 ,0xBD12 //HANGUL SYLLABLE PIEUP WA SSANGKIYEOK - ,0x9451 ,0xBD13 //HANGUL SYLLABLE PIEUP WA KIYEOKSIOS - ,0x9452 ,0xBD15 //HANGUL SYLLABLE PIEUP WA NIEUNCIEUC - ,0x9453 ,0xBD16 //HANGUL SYLLABLE PIEUP WA NIEUNHIEUH - ,0x9454 ,0xBD17 //HANGUL SYLLABLE PIEUP WA TIKEUT - ,0x9455 ,0xBD18 //HANGUL SYLLABLE PIEUP WA RIEUL - ,0x9456 ,0xBD19 //HANGUL SYLLABLE PIEUP WA RIEULKIYEOK - ,0x9457 ,0xBD1A //HANGUL SYLLABLE PIEUP WA RIEULMIEUM - ,0x9458 ,0xBD1B //HANGUL SYLLABLE PIEUP WA RIEULPIEUP - ,0x9459 ,0xBD1C //HANGUL SYLLABLE PIEUP WA RIEULSIOS - ,0x945A ,0xBD1D //HANGUL SYLLABLE PIEUP WA RIEULTHIEUTH - ,0x9461 ,0xBD1E //HANGUL SYLLABLE PIEUP WA RIEULPHIEUPH - ,0x9462 ,0xBD1F //HANGUL SYLLABLE PIEUP WA RIEULHIEUH - ,0x9463 ,0xBD20 //HANGUL SYLLABLE PIEUP WA MIEUM - ,0x9464 ,0xBD21 //HANGUL SYLLABLE PIEUP WA PIEUP - ,0x9465 ,0xBD22 //HANGUL SYLLABLE PIEUP WA PIEUPSIOS - ,0x9466 ,0xBD23 //HANGUL SYLLABLE PIEUP WA SIOS - ,0x9467 ,0xBD25 //HANGUL SYLLABLE PIEUP WA IEUNG - ,0x9468 ,0xBD26 //HANGUL SYLLABLE PIEUP WA CIEUC - ,0x9469 ,0xBD27 //HANGUL SYLLABLE PIEUP WA CHIEUCH - ,0x946A ,0xBD28 //HANGUL SYLLABLE PIEUP WA KHIEUKH - ,0x946B ,0xBD29 //HANGUL SYLLABLE PIEUP WA THIEUTH - ,0x946C ,0xBD2A //HANGUL SYLLABLE PIEUP WA PHIEUPH - ,0x946D ,0xBD2B //HANGUL SYLLABLE PIEUP WA HIEUH - ,0x946E ,0xBD2D //HANGUL SYLLABLE PIEUP WAE KIYEOK - ,0x946F ,0xBD2E //HANGUL SYLLABLE PIEUP WAE SSANGKIYEOK - ,0x9470 ,0xBD2F //HANGUL SYLLABLE PIEUP WAE KIYEOKSIOS - ,0x9471 ,0xBD30 //HANGUL SYLLABLE PIEUP WAE NIEUN - ,0x9472 ,0xBD31 //HANGUL SYLLABLE PIEUP WAE NIEUNCIEUC - ,0x9473 ,0xBD32 //HANGUL SYLLABLE PIEUP WAE NIEUNHIEUH - ,0x9474 ,0xBD33 //HANGUL SYLLABLE PIEUP WAE TIKEUT - ,0x9475 ,0xBD34 //HANGUL SYLLABLE PIEUP WAE RIEUL - ,0x9476 ,0xBD35 //HANGUL SYLLABLE PIEUP WAE RIEULKIYEOK - ,0x9477 ,0xBD36 //HANGUL SYLLABLE PIEUP WAE RIEULMIEUM - ,0x9478 ,0xBD37 //HANGUL SYLLABLE PIEUP WAE RIEULPIEUP - ,0x9479 ,0xBD38 //HANGUL SYLLABLE PIEUP WAE RIEULSIOS - ,0x947A ,0xBD39 //HANGUL SYLLABLE PIEUP WAE RIEULTHIEUTH - ,0x9481 ,0xBD3A //HANGUL SYLLABLE PIEUP WAE RIEULPHIEUPH - ,0x9482 ,0xBD3B //HANGUL SYLLABLE PIEUP WAE RIEULHIEUH - ,0x9483 ,0xBD3C //HANGUL SYLLABLE PIEUP WAE MIEUM - ,0x9484 ,0xBD3D //HANGUL SYLLABLE PIEUP WAE PIEUP - ,0x9485 ,0xBD3E //HANGUL SYLLABLE PIEUP WAE PIEUPSIOS - ,0x9486 ,0xBD3F //HANGUL SYLLABLE PIEUP WAE SIOS - ,0x9487 ,0xBD41 //HANGUL SYLLABLE PIEUP WAE IEUNG - ,0x9488 ,0xBD42 //HANGUL SYLLABLE PIEUP WAE CIEUC - ,0x9489 ,0xBD43 //HANGUL SYLLABLE PIEUP WAE CHIEUCH - ,0x948A ,0xBD44 //HANGUL SYLLABLE PIEUP WAE KHIEUKH - ,0x948B ,0xBD45 //HANGUL SYLLABLE PIEUP WAE THIEUTH - ,0x948C ,0xBD46 //HANGUL SYLLABLE PIEUP WAE PHIEUPH - ,0x948D ,0xBD47 //HANGUL SYLLABLE PIEUP WAE HIEUH - ,0x948E ,0xBD4A //HANGUL SYLLABLE PIEUP OE SSANGKIYEOK - ,0x948F ,0xBD4B //HANGUL SYLLABLE PIEUP OE KIYEOKSIOS - ,0x9490 ,0xBD4D //HANGUL SYLLABLE PIEUP OE NIEUNCIEUC - ,0x9491 ,0xBD4E //HANGUL SYLLABLE PIEUP OE NIEUNHIEUH - ,0x9492 ,0xBD4F //HANGUL SYLLABLE PIEUP OE TIKEUT - ,0x9493 ,0xBD51 //HANGUL SYLLABLE PIEUP OE RIEULKIYEOK - ,0x9494 ,0xBD52 //HANGUL SYLLABLE PIEUP OE RIEULMIEUM - ,0x9495 ,0xBD53 //HANGUL SYLLABLE PIEUP OE RIEULPIEUP - ,0x9496 ,0xBD54 //HANGUL SYLLABLE PIEUP OE RIEULSIOS - ,0x9497 ,0xBD55 //HANGUL SYLLABLE PIEUP OE RIEULTHIEUTH - ,0x9498 ,0xBD56 //HANGUL SYLLABLE PIEUP OE RIEULPHIEUPH - ,0x9499 ,0xBD57 //HANGUL SYLLABLE PIEUP OE RIEULHIEUH - ,0x949A ,0xBD5A //HANGUL SYLLABLE PIEUP OE PIEUPSIOS - ,0x949B ,0xBD5B //HANGUL SYLLABLE PIEUP OE SIOS - ,0x949C ,0xBD5C //HANGUL SYLLABLE PIEUP OE SSANGSIOS - ,0x949D ,0xBD5D //HANGUL SYLLABLE PIEUP OE IEUNG - ,0x949E ,0xBD5E //HANGUL SYLLABLE PIEUP OE CIEUC - ,0x949F ,0xBD5F //HANGUL SYLLABLE PIEUP OE CHIEUCH - ,0x94A0 ,0xBD60 //HANGUL SYLLABLE PIEUP OE KHIEUKH - ,0x94A1 ,0xBD61 //HANGUL SYLLABLE PIEUP OE THIEUTH - ,0x94A2 ,0xBD62 //HANGUL SYLLABLE PIEUP OE PHIEUPH - ,0x94A3 ,0xBD63 //HANGUL SYLLABLE PIEUP OE HIEUH - ,0x94A4 ,0xBD65 //HANGUL SYLLABLE PIEUP YO KIYEOK - ,0x94A5 ,0xBD66 //HANGUL SYLLABLE PIEUP YO SSANGKIYEOK - ,0x94A6 ,0xBD67 //HANGUL SYLLABLE PIEUP YO KIYEOKSIOS - ,0x94A7 ,0xBD69 //HANGUL SYLLABLE PIEUP YO NIEUNCIEUC - ,0x94A8 ,0xBD6A //HANGUL SYLLABLE PIEUP YO NIEUNHIEUH - ,0x94A9 ,0xBD6B //HANGUL SYLLABLE PIEUP YO TIKEUT - ,0x94AA ,0xBD6C //HANGUL SYLLABLE PIEUP YO RIEUL - ,0x94AB ,0xBD6D //HANGUL SYLLABLE PIEUP YO RIEULKIYEOK - ,0x94AC ,0xBD6E //HANGUL SYLLABLE PIEUP YO RIEULMIEUM - ,0x94AD ,0xBD6F //HANGUL SYLLABLE PIEUP YO RIEULPIEUP - ,0x94AE ,0xBD70 //HANGUL SYLLABLE PIEUP YO RIEULSIOS - ,0x94AF ,0xBD71 //HANGUL SYLLABLE PIEUP YO RIEULTHIEUTH - ,0x94B0 ,0xBD72 //HANGUL SYLLABLE PIEUP YO RIEULPHIEUPH - ,0x94B1 ,0xBD73 //HANGUL SYLLABLE PIEUP YO RIEULHIEUH - ,0x94B2 ,0xBD74 //HANGUL SYLLABLE PIEUP YO MIEUM - ,0x94B3 ,0xBD75 //HANGUL SYLLABLE PIEUP YO PIEUP - ,0x94B4 ,0xBD76 //HANGUL SYLLABLE PIEUP YO PIEUPSIOS - ,0x94B5 ,0xBD77 //HANGUL SYLLABLE PIEUP YO SIOS - ,0x94B6 ,0xBD78 //HANGUL SYLLABLE PIEUP YO SSANGSIOS - ,0x94B7 ,0xBD79 //HANGUL SYLLABLE PIEUP YO IEUNG - ,0x94B8 ,0xBD7A //HANGUL SYLLABLE PIEUP YO CIEUC - ,0x94B9 ,0xBD7B //HANGUL SYLLABLE PIEUP YO CHIEUCH - ,0x94BA ,0xBD7C //HANGUL SYLLABLE PIEUP YO KHIEUKH - ,0x94BB ,0xBD7D //HANGUL SYLLABLE PIEUP YO THIEUTH - ,0x94BC ,0xBD7E //HANGUL SYLLABLE PIEUP YO PHIEUPH - ,0x94BD ,0xBD7F //HANGUL SYLLABLE PIEUP YO HIEUH - ,0x94BE ,0xBD82 //HANGUL SYLLABLE PIEUP U SSANGKIYEOK - ,0x94BF ,0xBD83 //HANGUL SYLLABLE PIEUP U KIYEOKSIOS - ,0x94C0 ,0xBD85 //HANGUL SYLLABLE PIEUP U NIEUNCIEUC - ,0x94C1 ,0xBD86 //HANGUL SYLLABLE PIEUP U NIEUNHIEUH - ,0x94C2 ,0xBD8B //HANGUL SYLLABLE PIEUP U RIEULPIEUP - ,0x94C3 ,0xBD8C //HANGUL SYLLABLE PIEUP U RIEULSIOS - ,0x94C4 ,0xBD8D //HANGUL SYLLABLE PIEUP U RIEULTHIEUTH - ,0x94C5 ,0xBD8E //HANGUL SYLLABLE PIEUP U RIEULPHIEUPH - ,0x94C6 ,0xBD8F //HANGUL SYLLABLE PIEUP U RIEULHIEUH - ,0x94C7 ,0xBD92 //HANGUL SYLLABLE PIEUP U PIEUPSIOS - ,0x94C8 ,0xBD94 //HANGUL SYLLABLE PIEUP U SSANGSIOS - ,0x94C9 ,0xBD96 //HANGUL SYLLABLE PIEUP U CIEUC - ,0x94CA ,0xBD97 //HANGUL SYLLABLE PIEUP U CHIEUCH - ,0x94CB ,0xBD98 //HANGUL SYLLABLE PIEUP U KHIEUKH - ,0x94CC ,0xBD9B //HANGUL SYLLABLE PIEUP U HIEUH - ,0x94CD ,0xBD9D //HANGUL SYLLABLE PIEUP WEO KIYEOK - ,0x94CE ,0xBD9E //HANGUL SYLLABLE PIEUP WEO SSANGKIYEOK - ,0x94CF ,0xBD9F //HANGUL SYLLABLE PIEUP WEO KIYEOKSIOS - ,0x94D0 ,0xBDA0 //HANGUL SYLLABLE PIEUP WEO NIEUN - ,0x94D1 ,0xBDA1 //HANGUL SYLLABLE PIEUP WEO NIEUNCIEUC - ,0x94D2 ,0xBDA2 //HANGUL SYLLABLE PIEUP WEO NIEUNHIEUH - ,0x94D3 ,0xBDA3 //HANGUL SYLLABLE PIEUP WEO TIKEUT - ,0x94D4 ,0xBDA5 //HANGUL SYLLABLE PIEUP WEO RIEULKIYEOK - ,0x94D5 ,0xBDA6 //HANGUL SYLLABLE PIEUP WEO RIEULMIEUM - ,0x94D6 ,0xBDA7 //HANGUL SYLLABLE PIEUP WEO RIEULPIEUP - ,0x94D7 ,0xBDA8 //HANGUL SYLLABLE PIEUP WEO RIEULSIOS - ,0x94D8 ,0xBDA9 //HANGUL SYLLABLE PIEUP WEO RIEULTHIEUTH - ,0x94D9 ,0xBDAA //HANGUL SYLLABLE PIEUP WEO RIEULPHIEUPH - ,0x94DA ,0xBDAB //HANGUL SYLLABLE PIEUP WEO RIEULHIEUH - ,0x94DB ,0xBDAC //HANGUL SYLLABLE PIEUP WEO MIEUM - ,0x94DC ,0xBDAD //HANGUL SYLLABLE PIEUP WEO PIEUP - ,0x94DD ,0xBDAE //HANGUL SYLLABLE PIEUP WEO PIEUPSIOS - ,0x94DE ,0xBDAF //HANGUL SYLLABLE PIEUP WEO SIOS - ,0x94DF ,0xBDB1 //HANGUL SYLLABLE PIEUP WEO IEUNG - ,0x94E0 ,0xBDB2 //HANGUL SYLLABLE PIEUP WEO CIEUC - ,0x94E1 ,0xBDB3 //HANGUL SYLLABLE PIEUP WEO CHIEUCH - ,0x94E2 ,0xBDB4 //HANGUL SYLLABLE PIEUP WEO KHIEUKH - ,0x94E3 ,0xBDB5 //HANGUL SYLLABLE PIEUP WEO THIEUTH - ,0x94E4 ,0xBDB6 //HANGUL SYLLABLE PIEUP WEO PHIEUPH - ,0x94E5 ,0xBDB7 //HANGUL SYLLABLE PIEUP WEO HIEUH - ,0x94E6 ,0xBDB9 //HANGUL SYLLABLE PIEUP WE KIYEOK - ,0x94E7 ,0xBDBA //HANGUL SYLLABLE PIEUP WE SSANGKIYEOK - ,0x94E8 ,0xBDBB //HANGUL SYLLABLE PIEUP WE KIYEOKSIOS - ,0x94E9 ,0xBDBC //HANGUL SYLLABLE PIEUP WE NIEUN - ,0x94EA ,0xBDBD //HANGUL SYLLABLE PIEUP WE NIEUNCIEUC - ,0x94EB ,0xBDBE //HANGUL SYLLABLE PIEUP WE NIEUNHIEUH - ,0x94EC ,0xBDBF //HANGUL SYLLABLE PIEUP WE TIKEUT - ,0x94ED ,0xBDC0 //HANGUL SYLLABLE PIEUP WE RIEUL - ,0x94EE ,0xBDC1 //HANGUL SYLLABLE PIEUP WE RIEULKIYEOK - ,0x94EF ,0xBDC2 //HANGUL SYLLABLE PIEUP WE RIEULMIEUM - ,0x94F0 ,0xBDC3 //HANGUL SYLLABLE PIEUP WE RIEULPIEUP - ,0x94F1 ,0xBDC4 //HANGUL SYLLABLE PIEUP WE RIEULSIOS - ,0x94F2 ,0xBDC5 //HANGUL SYLLABLE PIEUP WE RIEULTHIEUTH - ,0x94F3 ,0xBDC6 //HANGUL SYLLABLE PIEUP WE RIEULPHIEUPH - ,0x94F4 ,0xBDC7 //HANGUL SYLLABLE PIEUP WE RIEULHIEUH - ,0x94F5 ,0xBDC8 //HANGUL SYLLABLE PIEUP WE MIEUM - ,0x94F6 ,0xBDC9 //HANGUL SYLLABLE PIEUP WE PIEUP - ,0x94F7 ,0xBDCA //HANGUL SYLLABLE PIEUP WE PIEUPSIOS - ,0x94F8 ,0xBDCB //HANGUL SYLLABLE PIEUP WE SIOS - ,0x94F9 ,0xBDCC //HANGUL SYLLABLE PIEUP WE SSANGSIOS - ,0x94FA ,0xBDCD //HANGUL SYLLABLE PIEUP WE IEUNG - ,0x94FB ,0xBDCE //HANGUL SYLLABLE PIEUP WE CIEUC - ,0x94FC ,0xBDCF //HANGUL SYLLABLE PIEUP WE CHIEUCH - ,0x94FD ,0xBDD0 //HANGUL SYLLABLE PIEUP WE KHIEUKH - ,0x94FE ,0xBDD1 //HANGUL SYLLABLE PIEUP WE THIEUTH - ,0x9541 ,0xBDD2 //HANGUL SYLLABLE PIEUP WE PHIEUPH - ,0x9542 ,0xBDD3 //HANGUL SYLLABLE PIEUP WE HIEUH - ,0x9543 ,0xBDD6 //HANGUL SYLLABLE PIEUP WI SSANGKIYEOK - ,0x9544 ,0xBDD7 //HANGUL SYLLABLE PIEUP WI KIYEOKSIOS - ,0x9545 ,0xBDD9 //HANGUL SYLLABLE PIEUP WI NIEUNCIEUC - ,0x9546 ,0xBDDA //HANGUL SYLLABLE PIEUP WI NIEUNHIEUH - ,0x9547 ,0xBDDB //HANGUL SYLLABLE PIEUP WI TIKEUT - ,0x9548 ,0xBDDD //HANGUL SYLLABLE PIEUP WI RIEULKIYEOK - ,0x9549 ,0xBDDE //HANGUL SYLLABLE PIEUP WI RIEULMIEUM - ,0x954A ,0xBDDF //HANGUL SYLLABLE PIEUP WI RIEULPIEUP - ,0x954B ,0xBDE0 //HANGUL SYLLABLE PIEUP WI RIEULSIOS - ,0x954C ,0xBDE1 //HANGUL SYLLABLE PIEUP WI RIEULTHIEUTH - ,0x954D ,0xBDE2 //HANGUL SYLLABLE PIEUP WI RIEULPHIEUPH - ,0x954E ,0xBDE3 //HANGUL SYLLABLE PIEUP WI RIEULHIEUH - ,0x954F ,0xBDE4 //HANGUL SYLLABLE PIEUP WI MIEUM - ,0x9550 ,0xBDE5 //HANGUL SYLLABLE PIEUP WI PIEUP - ,0x9551 ,0xBDE6 //HANGUL SYLLABLE PIEUP WI PIEUPSIOS - ,0x9552 ,0xBDE7 //HANGUL SYLLABLE PIEUP WI SIOS - ,0x9553 ,0xBDE8 //HANGUL SYLLABLE PIEUP WI SSANGSIOS - ,0x9554 ,0xBDEA //HANGUL SYLLABLE PIEUP WI CIEUC - ,0x9555 ,0xBDEB //HANGUL SYLLABLE PIEUP WI CHIEUCH - ,0x9556 ,0xBDEC //HANGUL SYLLABLE PIEUP WI KHIEUKH - ,0x9557 ,0xBDED //HANGUL SYLLABLE PIEUP WI THIEUTH - ,0x9558 ,0xBDEE //HANGUL SYLLABLE PIEUP WI PHIEUPH - ,0x9559 ,0xBDEF //HANGUL SYLLABLE PIEUP WI HIEUH - ,0x955A ,0xBDF1 //HANGUL SYLLABLE PIEUP YU KIYEOK - ,0x9561 ,0xBDF2 //HANGUL SYLLABLE PIEUP YU SSANGKIYEOK - ,0x9562 ,0xBDF3 //HANGUL SYLLABLE PIEUP YU KIYEOKSIOS - ,0x9563 ,0xBDF5 //HANGUL SYLLABLE PIEUP YU NIEUNCIEUC - ,0x9564 ,0xBDF6 //HANGUL SYLLABLE PIEUP YU NIEUNHIEUH - ,0x9565 ,0xBDF7 //HANGUL SYLLABLE PIEUP YU TIKEUT - ,0x9566 ,0xBDF9 //HANGUL SYLLABLE PIEUP YU RIEULKIYEOK - ,0x9567 ,0xBDFA //HANGUL SYLLABLE PIEUP YU RIEULMIEUM - ,0x9568 ,0xBDFB //HANGUL SYLLABLE PIEUP YU RIEULPIEUP - ,0x9569 ,0xBDFC //HANGUL SYLLABLE PIEUP YU RIEULSIOS - ,0x956A ,0xBDFD //HANGUL SYLLABLE PIEUP YU RIEULTHIEUTH - ,0x956B ,0xBDFE //HANGUL SYLLABLE PIEUP YU RIEULPHIEUPH - ,0x956C ,0xBDFF //HANGUL SYLLABLE PIEUP YU RIEULHIEUH - ,0x956D ,0xBE01 //HANGUL SYLLABLE PIEUP YU PIEUP - ,0x956E ,0xBE02 //HANGUL SYLLABLE PIEUP YU PIEUPSIOS - ,0x956F ,0xBE04 //HANGUL SYLLABLE PIEUP YU SSANGSIOS - ,0x9570 ,0xBE06 //HANGUL SYLLABLE PIEUP YU CIEUC - ,0x9571 ,0xBE07 //HANGUL SYLLABLE PIEUP YU CHIEUCH - ,0x9572 ,0xBE08 //HANGUL SYLLABLE PIEUP YU KHIEUKH - ,0x9573 ,0xBE09 //HANGUL SYLLABLE PIEUP YU THIEUTH - ,0x9574 ,0xBE0A //HANGUL SYLLABLE PIEUP YU PHIEUPH - ,0x9575 ,0xBE0B //HANGUL SYLLABLE PIEUP YU HIEUH - ,0x9576 ,0xBE0E //HANGUL SYLLABLE PIEUP EU SSANGKIYEOK - ,0x9577 ,0xBE0F //HANGUL SYLLABLE PIEUP EU KIYEOKSIOS - ,0x9578 ,0xBE11 //HANGUL SYLLABLE PIEUP EU NIEUNCIEUC - ,0x9579 ,0xBE12 //HANGUL SYLLABLE PIEUP EU NIEUNHIEUH - ,0x957A ,0xBE13 //HANGUL SYLLABLE PIEUP EU TIKEUT - ,0x9581 ,0xBE15 //HANGUL SYLLABLE PIEUP EU RIEULKIYEOK - ,0x9582 ,0xBE16 //HANGUL SYLLABLE PIEUP EU RIEULMIEUM - ,0x9583 ,0xBE17 //HANGUL SYLLABLE PIEUP EU RIEULPIEUP - ,0x9584 ,0xBE18 //HANGUL SYLLABLE PIEUP EU RIEULSIOS - ,0x9585 ,0xBE19 //HANGUL SYLLABLE PIEUP EU RIEULTHIEUTH - ,0x9586 ,0xBE1A //HANGUL SYLLABLE PIEUP EU RIEULPHIEUPH - ,0x9587 ,0xBE1B //HANGUL SYLLABLE PIEUP EU RIEULHIEUH - ,0x9588 ,0xBE1E //HANGUL SYLLABLE PIEUP EU PIEUPSIOS - ,0x9589 ,0xBE20 //HANGUL SYLLABLE PIEUP EU SSANGSIOS - ,0x958A ,0xBE21 //HANGUL SYLLABLE PIEUP EU IEUNG - ,0x958B ,0xBE22 //HANGUL SYLLABLE PIEUP EU CIEUC - ,0x958C ,0xBE23 //HANGUL SYLLABLE PIEUP EU CHIEUCH - ,0x958D ,0xBE24 //HANGUL SYLLABLE PIEUP EU KHIEUKH - ,0x958E ,0xBE25 //HANGUL SYLLABLE PIEUP EU THIEUTH - ,0x958F ,0xBE26 //HANGUL SYLLABLE PIEUP EU PHIEUPH - ,0x9590 ,0xBE27 //HANGUL SYLLABLE PIEUP EU HIEUH - ,0x9591 ,0xBE28 //HANGUL SYLLABLE PIEUP YI - ,0x9592 ,0xBE29 //HANGUL SYLLABLE PIEUP YI KIYEOK - ,0x9593 ,0xBE2A //HANGUL SYLLABLE PIEUP YI SSANGKIYEOK - ,0x9594 ,0xBE2B //HANGUL SYLLABLE PIEUP YI KIYEOKSIOS - ,0x9595 ,0xBE2C //HANGUL SYLLABLE PIEUP YI NIEUN - ,0x9596 ,0xBE2D //HANGUL SYLLABLE PIEUP YI NIEUNCIEUC - ,0x9597 ,0xBE2E //HANGUL SYLLABLE PIEUP YI NIEUNHIEUH - ,0x9598 ,0xBE2F //HANGUL SYLLABLE PIEUP YI TIKEUT - ,0x9599 ,0xBE30 //HANGUL SYLLABLE PIEUP YI RIEUL - ,0x959A ,0xBE31 //HANGUL SYLLABLE PIEUP YI RIEULKIYEOK - ,0x959B ,0xBE32 //HANGUL SYLLABLE PIEUP YI RIEULMIEUM - ,0x959C ,0xBE33 //HANGUL SYLLABLE PIEUP YI RIEULPIEUP - ,0x959D ,0xBE34 //HANGUL SYLLABLE PIEUP YI RIEULSIOS - ,0x959E ,0xBE35 //HANGUL SYLLABLE PIEUP YI RIEULTHIEUTH - ,0x959F ,0xBE36 //HANGUL SYLLABLE PIEUP YI RIEULPHIEUPH - ,0x95A0 ,0xBE37 //HANGUL SYLLABLE PIEUP YI RIEULHIEUH - ,0x95A1 ,0xBE38 //HANGUL SYLLABLE PIEUP YI MIEUM - ,0x95A2 ,0xBE39 //HANGUL SYLLABLE PIEUP YI PIEUP - ,0x95A3 ,0xBE3A //HANGUL SYLLABLE PIEUP YI PIEUPSIOS - ,0x95A4 ,0xBE3B //HANGUL SYLLABLE PIEUP YI SIOS - ,0x95A5 ,0xBE3C //HANGUL SYLLABLE PIEUP YI SSANGSIOS - ,0x95A6 ,0xBE3D //HANGUL SYLLABLE PIEUP YI IEUNG - ,0x95A7 ,0xBE3E //HANGUL SYLLABLE PIEUP YI CIEUC - ,0x95A8 ,0xBE3F //HANGUL SYLLABLE PIEUP YI CHIEUCH - ,0x95A9 ,0xBE40 //HANGUL SYLLABLE PIEUP YI KHIEUKH - ,0x95AA ,0xBE41 //HANGUL SYLLABLE PIEUP YI THIEUTH - ,0x95AB ,0xBE42 //HANGUL SYLLABLE PIEUP YI PHIEUPH - ,0x95AC ,0xBE43 //HANGUL SYLLABLE PIEUP YI HIEUH - ,0x95AD ,0xBE46 //HANGUL SYLLABLE PIEUP I SSANGKIYEOK - ,0x95AE ,0xBE47 //HANGUL SYLLABLE PIEUP I KIYEOKSIOS - ,0x95AF ,0xBE49 //HANGUL SYLLABLE PIEUP I NIEUNCIEUC - ,0x95B0 ,0xBE4A //HANGUL SYLLABLE PIEUP I NIEUNHIEUH - ,0x95B1 ,0xBE4B //HANGUL SYLLABLE PIEUP I TIKEUT - ,0x95B2 ,0xBE4D //HANGUL SYLLABLE PIEUP I RIEULKIYEOK - ,0x95B3 ,0xBE4F //HANGUL SYLLABLE PIEUP I RIEULPIEUP - ,0x95B4 ,0xBE50 //HANGUL SYLLABLE PIEUP I RIEULSIOS - ,0x95B5 ,0xBE51 //HANGUL SYLLABLE PIEUP I RIEULTHIEUTH - ,0x95B6 ,0xBE52 //HANGUL SYLLABLE PIEUP I RIEULPHIEUPH - ,0x95B7 ,0xBE53 //HANGUL SYLLABLE PIEUP I RIEULHIEUH - ,0x95B8 ,0xBE56 //HANGUL SYLLABLE PIEUP I PIEUPSIOS - ,0x95B9 ,0xBE58 //HANGUL SYLLABLE PIEUP I SSANGSIOS - ,0x95BA ,0xBE5C //HANGUL SYLLABLE PIEUP I KHIEUKH - ,0x95BB ,0xBE5D //HANGUL SYLLABLE PIEUP I THIEUTH - ,0x95BC ,0xBE5E //HANGUL SYLLABLE PIEUP I PHIEUPH - ,0x95BD ,0xBE5F //HANGUL SYLLABLE PIEUP I HIEUH - ,0x95BE ,0xBE62 //HANGUL SYLLABLE SSANGPIEUP A SSANGKIYEOK - ,0x95BF ,0xBE63 //HANGUL SYLLABLE SSANGPIEUP A KIYEOKSIOS - ,0x95C0 ,0xBE65 //HANGUL SYLLABLE SSANGPIEUP A NIEUNCIEUC - ,0x95C1 ,0xBE66 //HANGUL SYLLABLE SSANGPIEUP A NIEUNHIEUH - ,0x95C2 ,0xBE67 //HANGUL SYLLABLE SSANGPIEUP A TIKEUT - ,0x95C3 ,0xBE69 //HANGUL SYLLABLE SSANGPIEUP A RIEULKIYEOK - ,0x95C4 ,0xBE6B //HANGUL SYLLABLE SSANGPIEUP A RIEULPIEUP - ,0x95C5 ,0xBE6C //HANGUL SYLLABLE SSANGPIEUP A RIEULSIOS - ,0x95C6 ,0xBE6D //HANGUL SYLLABLE SSANGPIEUP A RIEULTHIEUTH - ,0x95C7 ,0xBE6E //HANGUL SYLLABLE SSANGPIEUP A RIEULPHIEUPH - ,0x95C8 ,0xBE6F //HANGUL SYLLABLE SSANGPIEUP A RIEULHIEUH - ,0x95C9 ,0xBE72 //HANGUL SYLLABLE SSANGPIEUP A PIEUPSIOS - ,0x95CA ,0xBE76 //HANGUL SYLLABLE SSANGPIEUP A CIEUC - ,0x95CB ,0xBE77 //HANGUL SYLLABLE SSANGPIEUP A CHIEUCH - ,0x95CC ,0xBE78 //HANGUL SYLLABLE SSANGPIEUP A KHIEUKH - ,0x95CD ,0xBE79 //HANGUL SYLLABLE SSANGPIEUP A THIEUTH - ,0x95CE ,0xBE7A //HANGUL SYLLABLE SSANGPIEUP A PHIEUPH - ,0x95CF ,0xBE7E //HANGUL SYLLABLE SSANGPIEUP AE SSANGKIYEOK - ,0x95D0 ,0xBE7F //HANGUL SYLLABLE SSANGPIEUP AE KIYEOKSIOS - ,0x95D1 ,0xBE81 //HANGUL SYLLABLE SSANGPIEUP AE NIEUNCIEUC - ,0x95D2 ,0xBE82 //HANGUL SYLLABLE SSANGPIEUP AE NIEUNHIEUH - ,0x95D3 ,0xBE83 //HANGUL SYLLABLE SSANGPIEUP AE TIKEUT - ,0x95D4 ,0xBE85 //HANGUL SYLLABLE SSANGPIEUP AE RIEULKIYEOK - ,0x95D5 ,0xBE86 //HANGUL SYLLABLE SSANGPIEUP AE RIEULMIEUM - ,0x95D6 ,0xBE87 //HANGUL SYLLABLE SSANGPIEUP AE RIEULPIEUP - ,0x95D7 ,0xBE88 //HANGUL SYLLABLE SSANGPIEUP AE RIEULSIOS - ,0x95D8 ,0xBE89 //HANGUL SYLLABLE SSANGPIEUP AE RIEULTHIEUTH - ,0x95D9 ,0xBE8A //HANGUL SYLLABLE SSANGPIEUP AE RIEULPHIEUPH - ,0x95DA ,0xBE8B //HANGUL SYLLABLE SSANGPIEUP AE RIEULHIEUH - ,0x95DB ,0xBE8E //HANGUL SYLLABLE SSANGPIEUP AE PIEUPSIOS - ,0x95DC ,0xBE92 //HANGUL SYLLABLE SSANGPIEUP AE CIEUC - ,0x95DD ,0xBE93 //HANGUL SYLLABLE SSANGPIEUP AE CHIEUCH - ,0x95DE ,0xBE94 //HANGUL SYLLABLE SSANGPIEUP AE KHIEUKH - ,0x95DF ,0xBE95 //HANGUL SYLLABLE SSANGPIEUP AE THIEUTH - ,0x95E0 ,0xBE96 //HANGUL SYLLABLE SSANGPIEUP AE PHIEUPH - ,0x95E1 ,0xBE97 //HANGUL SYLLABLE SSANGPIEUP AE HIEUH - ,0x95E2 ,0xBE9A //HANGUL SYLLABLE SSANGPIEUP YA SSANGKIYEOK - ,0x95E3 ,0xBE9B //HANGUL SYLLABLE SSANGPIEUP YA KIYEOKSIOS - ,0x95E4 ,0xBE9C //HANGUL SYLLABLE SSANGPIEUP YA NIEUN - ,0x95E5 ,0xBE9D //HANGUL SYLLABLE SSANGPIEUP YA NIEUNCIEUC - ,0x95E6 ,0xBE9E //HANGUL SYLLABLE SSANGPIEUP YA NIEUNHIEUH - ,0x95E7 ,0xBE9F //HANGUL SYLLABLE SSANGPIEUP YA TIKEUT - ,0x95E8 ,0xBEA0 //HANGUL SYLLABLE SSANGPIEUP YA RIEUL - ,0x95E9 ,0xBEA1 //HANGUL SYLLABLE SSANGPIEUP YA RIEULKIYEOK - ,0x95EA ,0xBEA2 //HANGUL SYLLABLE SSANGPIEUP YA RIEULMIEUM - ,0x95EB ,0xBEA3 //HANGUL SYLLABLE SSANGPIEUP YA RIEULPIEUP - ,0x95EC ,0xBEA4 //HANGUL SYLLABLE SSANGPIEUP YA RIEULSIOS - ,0x95ED ,0xBEA5 //HANGUL SYLLABLE SSANGPIEUP YA RIEULTHIEUTH - ,0x95EE ,0xBEA6 //HANGUL SYLLABLE SSANGPIEUP YA RIEULPHIEUPH - ,0x95EF ,0xBEA7 //HANGUL SYLLABLE SSANGPIEUP YA RIEULHIEUH - ,0x95F0 ,0xBEA9 //HANGUL SYLLABLE SSANGPIEUP YA PIEUP - ,0x95F1 ,0xBEAA //HANGUL SYLLABLE SSANGPIEUP YA PIEUPSIOS - ,0x95F2 ,0xBEAB //HANGUL SYLLABLE SSANGPIEUP YA SIOS - ,0x95F3 ,0xBEAC //HANGUL SYLLABLE SSANGPIEUP YA SSANGSIOS - ,0x95F4 ,0xBEAD //HANGUL SYLLABLE SSANGPIEUP YA IEUNG - ,0x95F5 ,0xBEAE //HANGUL SYLLABLE SSANGPIEUP YA CIEUC - ,0x95F6 ,0xBEAF //HANGUL SYLLABLE SSANGPIEUP YA CHIEUCH - ,0x95F7 ,0xBEB0 //HANGUL SYLLABLE SSANGPIEUP YA KHIEUKH - ,0x95F8 ,0xBEB1 //HANGUL SYLLABLE SSANGPIEUP YA THIEUTH - ,0x95F9 ,0xBEB2 //HANGUL SYLLABLE SSANGPIEUP YA PHIEUPH - ,0x95FA ,0xBEB3 //HANGUL SYLLABLE SSANGPIEUP YA HIEUH - ,0x95FB ,0xBEB4 //HANGUL SYLLABLE SSANGPIEUP YAE - ,0x95FC ,0xBEB5 //HANGUL SYLLABLE SSANGPIEUP YAE KIYEOK - ,0x95FD ,0xBEB6 //HANGUL SYLLABLE SSANGPIEUP YAE SSANGKIYEOK - ,0x95FE ,0xBEB7 //HANGUL SYLLABLE SSANGPIEUP YAE KIYEOKSIOS - ,0x9641 ,0xBEB8 //HANGUL SYLLABLE SSANGPIEUP YAE NIEUN - ,0x9642 ,0xBEB9 //HANGUL SYLLABLE SSANGPIEUP YAE NIEUNCIEUC - ,0x9643 ,0xBEBA //HANGUL SYLLABLE SSANGPIEUP YAE NIEUNHIEUH - ,0x9644 ,0xBEBB //HANGUL SYLLABLE SSANGPIEUP YAE TIKEUT - ,0x9645 ,0xBEBC //HANGUL SYLLABLE SSANGPIEUP YAE RIEUL - ,0x9646 ,0xBEBD //HANGUL SYLLABLE SSANGPIEUP YAE RIEULKIYEOK - ,0x9647 ,0xBEBE //HANGUL SYLLABLE SSANGPIEUP YAE RIEULMIEUM - ,0x9648 ,0xBEBF //HANGUL SYLLABLE SSANGPIEUP YAE RIEULPIEUP - ,0x9649 ,0xBEC0 //HANGUL SYLLABLE SSANGPIEUP YAE RIEULSIOS - ,0x964A ,0xBEC1 //HANGUL SYLLABLE SSANGPIEUP YAE RIEULTHIEUTH - ,0x964B ,0xBEC2 //HANGUL SYLLABLE SSANGPIEUP YAE RIEULPHIEUPH - ,0x964C ,0xBEC3 //HANGUL SYLLABLE SSANGPIEUP YAE RIEULHIEUH - ,0x964D ,0xBEC4 //HANGUL SYLLABLE SSANGPIEUP YAE MIEUM - ,0x964E ,0xBEC5 //HANGUL SYLLABLE SSANGPIEUP YAE PIEUP - ,0x964F ,0xBEC6 //HANGUL SYLLABLE SSANGPIEUP YAE PIEUPSIOS - ,0x9650 ,0xBEC7 //HANGUL SYLLABLE SSANGPIEUP YAE SIOS - ,0x9651 ,0xBEC8 //HANGUL SYLLABLE SSANGPIEUP YAE SSANGSIOS - ,0x9652 ,0xBEC9 //HANGUL SYLLABLE SSANGPIEUP YAE IEUNG - ,0x9653 ,0xBECA //HANGUL SYLLABLE SSANGPIEUP YAE CIEUC - ,0x9654 ,0xBECB //HANGUL SYLLABLE SSANGPIEUP YAE CHIEUCH - ,0x9655 ,0xBECC //HANGUL SYLLABLE SSANGPIEUP YAE KHIEUKH - ,0x9656 ,0xBECD //HANGUL SYLLABLE SSANGPIEUP YAE THIEUTH - ,0x9657 ,0xBECE //HANGUL SYLLABLE SSANGPIEUP YAE PHIEUPH - ,0x9658 ,0xBECF //HANGUL SYLLABLE SSANGPIEUP YAE HIEUH - ,0x9659 ,0xBED2 //HANGUL SYLLABLE SSANGPIEUP EO SSANGKIYEOK - ,0x965A ,0xBED3 //HANGUL SYLLABLE SSANGPIEUP EO KIYEOKSIOS - ,0x9661 ,0xBED5 //HANGUL SYLLABLE SSANGPIEUP EO NIEUNCIEUC - ,0x9662 ,0xBED6 //HANGUL SYLLABLE SSANGPIEUP EO NIEUNHIEUH - ,0x9663 ,0xBED9 //HANGUL SYLLABLE SSANGPIEUP EO RIEULKIYEOK - ,0x9664 ,0xBEDA //HANGUL SYLLABLE SSANGPIEUP EO RIEULMIEUM - ,0x9665 ,0xBEDB //HANGUL SYLLABLE SSANGPIEUP EO RIEULPIEUP - ,0x9666 ,0xBEDC //HANGUL SYLLABLE SSANGPIEUP EO RIEULSIOS - ,0x9667 ,0xBEDD //HANGUL SYLLABLE SSANGPIEUP EO RIEULTHIEUTH - ,0x9668 ,0xBEDE //HANGUL SYLLABLE SSANGPIEUP EO RIEULPHIEUPH - ,0x9669 ,0xBEDF //HANGUL SYLLABLE SSANGPIEUP EO RIEULHIEUH - ,0x966A ,0xBEE1 //HANGUL SYLLABLE SSANGPIEUP EO PIEUP - ,0x966B ,0xBEE2 //HANGUL SYLLABLE SSANGPIEUP EO PIEUPSIOS - ,0x966C ,0xBEE6 //HANGUL SYLLABLE SSANGPIEUP EO CIEUC - ,0x966D ,0xBEE7 //HANGUL SYLLABLE SSANGPIEUP EO CHIEUCH - ,0x966E ,0xBEE8 //HANGUL SYLLABLE SSANGPIEUP EO KHIEUKH - ,0x966F ,0xBEE9 //HANGUL SYLLABLE SSANGPIEUP EO THIEUTH - ,0x9670 ,0xBEEA //HANGUL SYLLABLE SSANGPIEUP EO PHIEUPH - ,0x9671 ,0xBEEB //HANGUL SYLLABLE SSANGPIEUP EO HIEUH - ,0x9672 ,0xBEED //HANGUL SYLLABLE SSANGPIEUP E KIYEOK - ,0x9673 ,0xBEEE //HANGUL SYLLABLE SSANGPIEUP E SSANGKIYEOK - ,0x9674 ,0xBEEF //HANGUL SYLLABLE SSANGPIEUP E KIYEOKSIOS - ,0x9675 ,0xBEF0 //HANGUL SYLLABLE SSANGPIEUP E NIEUN - ,0x9676 ,0xBEF1 //HANGUL SYLLABLE SSANGPIEUP E NIEUNCIEUC - ,0x9677 ,0xBEF2 //HANGUL SYLLABLE SSANGPIEUP E NIEUNHIEUH - ,0x9678 ,0xBEF3 //HANGUL SYLLABLE SSANGPIEUP E TIKEUT - ,0x9679 ,0xBEF4 //HANGUL SYLLABLE SSANGPIEUP E RIEUL - ,0x967A ,0xBEF5 //HANGUL SYLLABLE SSANGPIEUP E RIEULKIYEOK - ,0x9681 ,0xBEF6 //HANGUL SYLLABLE SSANGPIEUP E RIEULMIEUM - ,0x9682 ,0xBEF7 //HANGUL SYLLABLE SSANGPIEUP E RIEULPIEUP - ,0x9683 ,0xBEF8 //HANGUL SYLLABLE SSANGPIEUP E RIEULSIOS - ,0x9684 ,0xBEF9 //HANGUL SYLLABLE SSANGPIEUP E RIEULTHIEUTH - ,0x9685 ,0xBEFA //HANGUL SYLLABLE SSANGPIEUP E RIEULPHIEUPH - ,0x9686 ,0xBEFB //HANGUL SYLLABLE SSANGPIEUP E RIEULHIEUH - ,0x9687 ,0xBEFC //HANGUL SYLLABLE SSANGPIEUP E MIEUM - ,0x9688 ,0xBEFD //HANGUL SYLLABLE SSANGPIEUP E PIEUP - ,0x9689 ,0xBEFE //HANGUL SYLLABLE SSANGPIEUP E PIEUPSIOS - ,0x968A ,0xBEFF //HANGUL SYLLABLE SSANGPIEUP E SIOS - ,0x968B ,0xBF00 //HANGUL SYLLABLE SSANGPIEUP E SSANGSIOS - ,0x968C ,0xBF02 //HANGUL SYLLABLE SSANGPIEUP E CIEUC - ,0x968D ,0xBF03 //HANGUL SYLLABLE SSANGPIEUP E CHIEUCH - ,0x968E ,0xBF04 //HANGUL SYLLABLE SSANGPIEUP E KHIEUKH - ,0x968F ,0xBF05 //HANGUL SYLLABLE SSANGPIEUP E THIEUTH - ,0x9690 ,0xBF06 //HANGUL SYLLABLE SSANGPIEUP E PHIEUPH - ,0x9691 ,0xBF07 //HANGUL SYLLABLE SSANGPIEUP E HIEUH - ,0x9692 ,0xBF0A //HANGUL SYLLABLE SSANGPIEUP YEO SSANGKIYEOK - ,0x9693 ,0xBF0B //HANGUL SYLLABLE SSANGPIEUP YEO KIYEOKSIOS - ,0x9694 ,0xBF0C //HANGUL SYLLABLE SSANGPIEUP YEO NIEUN - ,0x9695 ,0xBF0D //HANGUL SYLLABLE SSANGPIEUP YEO NIEUNCIEUC - ,0x9696 ,0xBF0E //HANGUL SYLLABLE SSANGPIEUP YEO NIEUNHIEUH - ,0x9697 ,0xBF0F //HANGUL SYLLABLE SSANGPIEUP YEO TIKEUT - ,0x9698 ,0xBF10 //HANGUL SYLLABLE SSANGPIEUP YEO RIEUL - ,0x9699 ,0xBF11 //HANGUL SYLLABLE SSANGPIEUP YEO RIEULKIYEOK - ,0x969A ,0xBF12 //HANGUL SYLLABLE SSANGPIEUP YEO RIEULMIEUM - ,0x969B ,0xBF13 //HANGUL SYLLABLE SSANGPIEUP YEO RIEULPIEUP - ,0x969C ,0xBF14 //HANGUL SYLLABLE SSANGPIEUP YEO RIEULSIOS - ,0x969D ,0xBF15 //HANGUL SYLLABLE SSANGPIEUP YEO RIEULTHIEUTH - ,0x969E ,0xBF16 //HANGUL SYLLABLE SSANGPIEUP YEO RIEULPHIEUPH - ,0x969F ,0xBF17 //HANGUL SYLLABLE SSANGPIEUP YEO RIEULHIEUH - ,0x96A0 ,0xBF1A //HANGUL SYLLABLE SSANGPIEUP YEO PIEUPSIOS - ,0x96A1 ,0xBF1E //HANGUL SYLLABLE SSANGPIEUP YEO CIEUC - ,0x96A2 ,0xBF1F //HANGUL SYLLABLE SSANGPIEUP YEO CHIEUCH - ,0x96A3 ,0xBF20 //HANGUL SYLLABLE SSANGPIEUP YEO KHIEUKH - ,0x96A4 ,0xBF21 //HANGUL SYLLABLE SSANGPIEUP YEO THIEUTH - ,0x96A5 ,0xBF22 //HANGUL SYLLABLE SSANGPIEUP YEO PHIEUPH - ,0x96A6 ,0xBF23 //HANGUL SYLLABLE SSANGPIEUP YEO HIEUH - ,0x96A7 ,0xBF24 //HANGUL SYLLABLE SSANGPIEUP YE - ,0x96A8 ,0xBF25 //HANGUL SYLLABLE SSANGPIEUP YE KIYEOK - ,0x96A9 ,0xBF26 //HANGUL SYLLABLE SSANGPIEUP YE SSANGKIYEOK - ,0x96AA ,0xBF27 //HANGUL SYLLABLE SSANGPIEUP YE KIYEOKSIOS - ,0x96AB ,0xBF28 //HANGUL SYLLABLE SSANGPIEUP YE NIEUN - ,0x96AC ,0xBF29 //HANGUL SYLLABLE SSANGPIEUP YE NIEUNCIEUC - ,0x96AD ,0xBF2A //HANGUL SYLLABLE SSANGPIEUP YE NIEUNHIEUH - ,0x96AE ,0xBF2B //HANGUL SYLLABLE SSANGPIEUP YE TIKEUT - ,0x96AF ,0xBF2C //HANGUL SYLLABLE SSANGPIEUP YE RIEUL - ,0x96B0 ,0xBF2D //HANGUL SYLLABLE SSANGPIEUP YE RIEULKIYEOK - ,0x96B1 ,0xBF2E //HANGUL SYLLABLE SSANGPIEUP YE RIEULMIEUM - ,0x96B2 ,0xBF2F //HANGUL SYLLABLE SSANGPIEUP YE RIEULPIEUP - ,0x96B3 ,0xBF30 //HANGUL SYLLABLE SSANGPIEUP YE RIEULSIOS - ,0x96B4 ,0xBF31 //HANGUL SYLLABLE SSANGPIEUP YE RIEULTHIEUTH - ,0x96B5 ,0xBF32 //HANGUL SYLLABLE SSANGPIEUP YE RIEULPHIEUPH - ,0x96B6 ,0xBF33 //HANGUL SYLLABLE SSANGPIEUP YE RIEULHIEUH - ,0x96B7 ,0xBF34 //HANGUL SYLLABLE SSANGPIEUP YE MIEUM - ,0x96B8 ,0xBF35 //HANGUL SYLLABLE SSANGPIEUP YE PIEUP - ,0x96B9 ,0xBF36 //HANGUL SYLLABLE SSANGPIEUP YE PIEUPSIOS - ,0x96BA ,0xBF37 //HANGUL SYLLABLE SSANGPIEUP YE SIOS - ,0x96BB ,0xBF38 //HANGUL SYLLABLE SSANGPIEUP YE SSANGSIOS - ,0x96BC ,0xBF39 //HANGUL SYLLABLE SSANGPIEUP YE IEUNG - ,0x96BD ,0xBF3A //HANGUL SYLLABLE SSANGPIEUP YE CIEUC - ,0x96BE ,0xBF3B //HANGUL SYLLABLE SSANGPIEUP YE CHIEUCH - ,0x96BF ,0xBF3C //HANGUL SYLLABLE SSANGPIEUP YE KHIEUKH - ,0x96C0 ,0xBF3D //HANGUL SYLLABLE SSANGPIEUP YE THIEUTH - ,0x96C1 ,0xBF3E //HANGUL SYLLABLE SSANGPIEUP YE PHIEUPH - ,0x96C2 ,0xBF3F //HANGUL SYLLABLE SSANGPIEUP YE HIEUH - ,0x96C3 ,0xBF42 //HANGUL SYLLABLE SSANGPIEUP O SSANGKIYEOK - ,0x96C4 ,0xBF43 //HANGUL SYLLABLE SSANGPIEUP O KIYEOKSIOS - ,0x96C5 ,0xBF45 //HANGUL SYLLABLE SSANGPIEUP O NIEUNCIEUC - ,0x96C6 ,0xBF46 //HANGUL SYLLABLE SSANGPIEUP O NIEUNHIEUH - ,0x96C7 ,0xBF47 //HANGUL SYLLABLE SSANGPIEUP O TIKEUT - ,0x96C8 ,0xBF49 //HANGUL SYLLABLE SSANGPIEUP O RIEULKIYEOK - ,0x96C9 ,0xBF4A //HANGUL SYLLABLE SSANGPIEUP O RIEULMIEUM - ,0x96CA ,0xBF4B //HANGUL SYLLABLE SSANGPIEUP O RIEULPIEUP - ,0x96CB ,0xBF4C //HANGUL SYLLABLE SSANGPIEUP O RIEULSIOS - ,0x96CC ,0xBF4D //HANGUL SYLLABLE SSANGPIEUP O RIEULTHIEUTH - ,0x96CD ,0xBF4E //HANGUL SYLLABLE SSANGPIEUP O RIEULPHIEUPH - ,0x96CE ,0xBF4F //HANGUL SYLLABLE SSANGPIEUP O RIEULHIEUH - ,0x96CF ,0xBF52 //HANGUL SYLLABLE SSANGPIEUP O PIEUPSIOS - ,0x96D0 ,0xBF53 //HANGUL SYLLABLE SSANGPIEUP O SIOS - ,0x96D1 ,0xBF54 //HANGUL SYLLABLE SSANGPIEUP O SSANGSIOS - ,0x96D2 ,0xBF56 //HANGUL SYLLABLE SSANGPIEUP O CIEUC - ,0x96D3 ,0xBF57 //HANGUL SYLLABLE SSANGPIEUP O CHIEUCH - ,0x96D4 ,0xBF58 //HANGUL SYLLABLE SSANGPIEUP O KHIEUKH - ,0x96D5 ,0xBF59 //HANGUL SYLLABLE SSANGPIEUP O THIEUTH - ,0x96D6 ,0xBF5A //HANGUL SYLLABLE SSANGPIEUP O PHIEUPH - ,0x96D7 ,0xBF5B //HANGUL SYLLABLE SSANGPIEUP O HIEUH - ,0x96D8 ,0xBF5C //HANGUL SYLLABLE SSANGPIEUP WA - ,0x96D9 ,0xBF5D //HANGUL SYLLABLE SSANGPIEUP WA KIYEOK - ,0x96DA ,0xBF5E //HANGUL SYLLABLE SSANGPIEUP WA SSANGKIYEOK - ,0x96DB ,0xBF5F //HANGUL SYLLABLE SSANGPIEUP WA KIYEOKSIOS - ,0x96DC ,0xBF60 //HANGUL SYLLABLE SSANGPIEUP WA NIEUN - ,0x96DD ,0xBF61 //HANGUL SYLLABLE SSANGPIEUP WA NIEUNCIEUC - ,0x96DE ,0xBF62 //HANGUL SYLLABLE SSANGPIEUP WA NIEUNHIEUH - ,0x96DF ,0xBF63 //HANGUL SYLLABLE SSANGPIEUP WA TIKEUT - ,0x96E0 ,0xBF64 //HANGUL SYLLABLE SSANGPIEUP WA RIEUL - ,0x96E1 ,0xBF65 //HANGUL SYLLABLE SSANGPIEUP WA RIEULKIYEOK - ,0x96E2 ,0xBF66 //HANGUL SYLLABLE SSANGPIEUP WA RIEULMIEUM - ,0x96E3 ,0xBF67 //HANGUL SYLLABLE SSANGPIEUP WA RIEULPIEUP - ,0x96E4 ,0xBF68 //HANGUL SYLLABLE SSANGPIEUP WA RIEULSIOS - ,0x96E5 ,0xBF69 //HANGUL SYLLABLE SSANGPIEUP WA RIEULTHIEUTH - ,0x96E6 ,0xBF6A //HANGUL SYLLABLE SSANGPIEUP WA RIEULPHIEUPH - ,0x96E7 ,0xBF6B //HANGUL SYLLABLE SSANGPIEUP WA RIEULHIEUH - ,0x96E8 ,0xBF6C //HANGUL SYLLABLE SSANGPIEUP WA MIEUM - ,0x96E9 ,0xBF6D //HANGUL SYLLABLE SSANGPIEUP WA PIEUP - ,0x96EA ,0xBF6E //HANGUL SYLLABLE SSANGPIEUP WA PIEUPSIOS - ,0x96EB ,0xBF6F //HANGUL SYLLABLE SSANGPIEUP WA SIOS - ,0x96EC ,0xBF70 //HANGUL SYLLABLE SSANGPIEUP WA SSANGSIOS - ,0x96ED ,0xBF71 //HANGUL SYLLABLE SSANGPIEUP WA IEUNG - ,0x96EE ,0xBF72 //HANGUL SYLLABLE SSANGPIEUP WA CIEUC - ,0x96EF ,0xBF73 //HANGUL SYLLABLE SSANGPIEUP WA CHIEUCH - ,0x96F0 ,0xBF74 //HANGUL SYLLABLE SSANGPIEUP WA KHIEUKH - ,0x96F1 ,0xBF75 //HANGUL SYLLABLE SSANGPIEUP WA THIEUTH - ,0x96F2 ,0xBF76 //HANGUL SYLLABLE SSANGPIEUP WA PHIEUPH - ,0x96F3 ,0xBF77 //HANGUL SYLLABLE SSANGPIEUP WA HIEUH - ,0x96F4 ,0xBF78 //HANGUL SYLLABLE SSANGPIEUP WAE - ,0x96F5 ,0xBF79 //HANGUL SYLLABLE SSANGPIEUP WAE KIYEOK - ,0x96F6 ,0xBF7A //HANGUL SYLLABLE SSANGPIEUP WAE SSANGKIYEOK - ,0x96F7 ,0xBF7B //HANGUL SYLLABLE SSANGPIEUP WAE KIYEOKSIOS - ,0x96F8 ,0xBF7C //HANGUL SYLLABLE SSANGPIEUP WAE NIEUN - ,0x96F9 ,0xBF7D //HANGUL SYLLABLE SSANGPIEUP WAE NIEUNCIEUC - ,0x96FA ,0xBF7E //HANGUL SYLLABLE SSANGPIEUP WAE NIEUNHIEUH - ,0x96FB ,0xBF7F //HANGUL SYLLABLE SSANGPIEUP WAE TIKEUT - ,0x96FC ,0xBF80 //HANGUL SYLLABLE SSANGPIEUP WAE RIEUL - ,0x96FD ,0xBF81 //HANGUL SYLLABLE SSANGPIEUP WAE RIEULKIYEOK - ,0x96FE ,0xBF82 //HANGUL SYLLABLE SSANGPIEUP WAE RIEULMIEUM - ,0x9741 ,0xBF83 //HANGUL SYLLABLE SSANGPIEUP WAE RIEULPIEUP - ,0x9742 ,0xBF84 //HANGUL SYLLABLE SSANGPIEUP WAE RIEULSIOS - ,0x9743 ,0xBF85 //HANGUL SYLLABLE SSANGPIEUP WAE RIEULTHIEUTH - ,0x9744 ,0xBF86 //HANGUL SYLLABLE SSANGPIEUP WAE RIEULPHIEUPH - ,0x9745 ,0xBF87 //HANGUL SYLLABLE SSANGPIEUP WAE RIEULHIEUH - ,0x9746 ,0xBF88 //HANGUL SYLLABLE SSANGPIEUP WAE MIEUM - ,0x9747 ,0xBF89 //HANGUL SYLLABLE SSANGPIEUP WAE PIEUP - ,0x9748 ,0xBF8A //HANGUL SYLLABLE SSANGPIEUP WAE PIEUPSIOS - ,0x9749 ,0xBF8B //HANGUL SYLLABLE SSANGPIEUP WAE SIOS - ,0x974A ,0xBF8C //HANGUL SYLLABLE SSANGPIEUP WAE SSANGSIOS - ,0x974B ,0xBF8D //HANGUL SYLLABLE SSANGPIEUP WAE IEUNG - ,0x974C ,0xBF8E //HANGUL SYLLABLE SSANGPIEUP WAE CIEUC - ,0x974D ,0xBF8F //HANGUL SYLLABLE SSANGPIEUP WAE CHIEUCH - ,0x974E ,0xBF90 //HANGUL SYLLABLE SSANGPIEUP WAE KHIEUKH - ,0x974F ,0xBF91 //HANGUL SYLLABLE SSANGPIEUP WAE THIEUTH - ,0x9750 ,0xBF92 //HANGUL SYLLABLE SSANGPIEUP WAE PHIEUPH - ,0x9751 ,0xBF93 //HANGUL SYLLABLE SSANGPIEUP WAE HIEUH - ,0x9752 ,0xBF95 //HANGUL SYLLABLE SSANGPIEUP OE KIYEOK - ,0x9753 ,0xBF96 //HANGUL SYLLABLE SSANGPIEUP OE SSANGKIYEOK - ,0x9754 ,0xBF97 //HANGUL SYLLABLE SSANGPIEUP OE KIYEOKSIOS - ,0x9755 ,0xBF98 //HANGUL SYLLABLE SSANGPIEUP OE NIEUN - ,0x9756 ,0xBF99 //HANGUL SYLLABLE SSANGPIEUP OE NIEUNCIEUC - ,0x9757 ,0xBF9A //HANGUL SYLLABLE SSANGPIEUP OE NIEUNHIEUH - ,0x9758 ,0xBF9B //HANGUL SYLLABLE SSANGPIEUP OE TIKEUT - ,0x9759 ,0xBF9C //HANGUL SYLLABLE SSANGPIEUP OE RIEUL - ,0x975A ,0xBF9D //HANGUL SYLLABLE SSANGPIEUP OE RIEULKIYEOK - ,0x9761 ,0xBF9E //HANGUL SYLLABLE SSANGPIEUP OE RIEULMIEUM - ,0x9762 ,0xBF9F //HANGUL SYLLABLE SSANGPIEUP OE RIEULPIEUP - ,0x9763 ,0xBFA0 //HANGUL SYLLABLE SSANGPIEUP OE RIEULSIOS - ,0x9764 ,0xBFA1 //HANGUL SYLLABLE SSANGPIEUP OE RIEULTHIEUTH - ,0x9765 ,0xBFA2 //HANGUL SYLLABLE SSANGPIEUP OE RIEULPHIEUPH - ,0x9766 ,0xBFA3 //HANGUL SYLLABLE SSANGPIEUP OE RIEULHIEUH - ,0x9767 ,0xBFA4 //HANGUL SYLLABLE SSANGPIEUP OE MIEUM - ,0x9768 ,0xBFA5 //HANGUL SYLLABLE SSANGPIEUP OE PIEUP - ,0x9769 ,0xBFA6 //HANGUL SYLLABLE SSANGPIEUP OE PIEUPSIOS - ,0x976A ,0xBFA7 //HANGUL SYLLABLE SSANGPIEUP OE SIOS - ,0x976B ,0xBFA8 //HANGUL SYLLABLE SSANGPIEUP OE SSANGSIOS - ,0x976C ,0xBFA9 //HANGUL SYLLABLE SSANGPIEUP OE IEUNG - ,0x976D ,0xBFAA //HANGUL SYLLABLE SSANGPIEUP OE CIEUC - ,0x976E ,0xBFAB //HANGUL SYLLABLE SSANGPIEUP OE CHIEUCH - ,0x976F ,0xBFAC //HANGUL SYLLABLE SSANGPIEUP OE KHIEUKH - ,0x9770 ,0xBFAD //HANGUL SYLLABLE SSANGPIEUP OE THIEUTH - ,0x9771 ,0xBFAE //HANGUL SYLLABLE SSANGPIEUP OE PHIEUPH - ,0x9772 ,0xBFAF //HANGUL SYLLABLE SSANGPIEUP OE HIEUH - ,0x9773 ,0xBFB1 //HANGUL SYLLABLE SSANGPIEUP YO KIYEOK - ,0x9774 ,0xBFB2 //HANGUL SYLLABLE SSANGPIEUP YO SSANGKIYEOK - ,0x9775 ,0xBFB3 //HANGUL SYLLABLE SSANGPIEUP YO KIYEOKSIOS - ,0x9776 ,0xBFB4 //HANGUL SYLLABLE SSANGPIEUP YO NIEUN - ,0x9777 ,0xBFB5 //HANGUL SYLLABLE SSANGPIEUP YO NIEUNCIEUC - ,0x9778 ,0xBFB6 //HANGUL SYLLABLE SSANGPIEUP YO NIEUNHIEUH - ,0x9779 ,0xBFB7 //HANGUL SYLLABLE SSANGPIEUP YO TIKEUT - ,0x977A ,0xBFB8 //HANGUL SYLLABLE SSANGPIEUP YO RIEUL - ,0x9781 ,0xBFB9 //HANGUL SYLLABLE SSANGPIEUP YO RIEULKIYEOK - ,0x9782 ,0xBFBA //HANGUL SYLLABLE SSANGPIEUP YO RIEULMIEUM - ,0x9783 ,0xBFBB //HANGUL SYLLABLE SSANGPIEUP YO RIEULPIEUP - ,0x9784 ,0xBFBC //HANGUL SYLLABLE SSANGPIEUP YO RIEULSIOS - ,0x9785 ,0xBFBD //HANGUL SYLLABLE SSANGPIEUP YO RIEULTHIEUTH - ,0x9786 ,0xBFBE //HANGUL SYLLABLE SSANGPIEUP YO RIEULPHIEUPH - ,0x9787 ,0xBFBF //HANGUL SYLLABLE SSANGPIEUP YO RIEULHIEUH - ,0x9788 ,0xBFC0 //HANGUL SYLLABLE SSANGPIEUP YO MIEUM - ,0x9789 ,0xBFC1 //HANGUL SYLLABLE SSANGPIEUP YO PIEUP - ,0x978A ,0xBFC2 //HANGUL SYLLABLE SSANGPIEUP YO PIEUPSIOS - ,0x978B ,0xBFC3 //HANGUL SYLLABLE SSANGPIEUP YO SIOS - ,0x978C ,0xBFC4 //HANGUL SYLLABLE SSANGPIEUP YO SSANGSIOS - ,0x978D ,0xBFC6 //HANGUL SYLLABLE SSANGPIEUP YO CIEUC - ,0x978E ,0xBFC7 //HANGUL SYLLABLE SSANGPIEUP YO CHIEUCH - ,0x978F ,0xBFC8 //HANGUL SYLLABLE SSANGPIEUP YO KHIEUKH - ,0x9790 ,0xBFC9 //HANGUL SYLLABLE SSANGPIEUP YO THIEUTH - ,0x9791 ,0xBFCA //HANGUL SYLLABLE SSANGPIEUP YO PHIEUPH - ,0x9792 ,0xBFCB //HANGUL SYLLABLE SSANGPIEUP YO HIEUH - ,0x9793 ,0xBFCE //HANGUL SYLLABLE SSANGPIEUP U SSANGKIYEOK - ,0x9794 ,0xBFCF //HANGUL SYLLABLE SSANGPIEUP U KIYEOKSIOS - ,0x9795 ,0xBFD1 //HANGUL SYLLABLE SSANGPIEUP U NIEUNCIEUC - ,0x9796 ,0xBFD2 //HANGUL SYLLABLE SSANGPIEUP U NIEUNHIEUH - ,0x9797 ,0xBFD3 //HANGUL SYLLABLE SSANGPIEUP U TIKEUT - ,0x9798 ,0xBFD5 //HANGUL SYLLABLE SSANGPIEUP U RIEULKIYEOK - ,0x9799 ,0xBFD6 //HANGUL SYLLABLE SSANGPIEUP U RIEULMIEUM - ,0x979A ,0xBFD7 //HANGUL SYLLABLE SSANGPIEUP U RIEULPIEUP - ,0x979B ,0xBFD8 //HANGUL SYLLABLE SSANGPIEUP U RIEULSIOS - ,0x979C ,0xBFD9 //HANGUL SYLLABLE SSANGPIEUP U RIEULTHIEUTH - ,0x979D ,0xBFDA //HANGUL SYLLABLE SSANGPIEUP U RIEULPHIEUPH - ,0x979E ,0xBFDB //HANGUL SYLLABLE SSANGPIEUP U RIEULHIEUH - ,0x979F ,0xBFDD //HANGUL SYLLABLE SSANGPIEUP U PIEUP - ,0x97A0 ,0xBFDE //HANGUL SYLLABLE SSANGPIEUP U PIEUPSIOS - ,0x97A1 ,0xBFE0 //HANGUL SYLLABLE SSANGPIEUP U SSANGSIOS - ,0x97A2 ,0xBFE2 //HANGUL SYLLABLE SSANGPIEUP U CIEUC - ,0x97A3 ,0xBFE3 //HANGUL SYLLABLE SSANGPIEUP U CHIEUCH - ,0x97A4 ,0xBFE4 //HANGUL SYLLABLE SSANGPIEUP U KHIEUKH - ,0x97A5 ,0xBFE5 //HANGUL SYLLABLE SSANGPIEUP U THIEUTH - ,0x97A6 ,0xBFE6 //HANGUL SYLLABLE SSANGPIEUP U PHIEUPH - ,0x97A7 ,0xBFE7 //HANGUL SYLLABLE SSANGPIEUP U HIEUH - ,0x97A8 ,0xBFE8 //HANGUL SYLLABLE SSANGPIEUP WEO - ,0x97A9 ,0xBFE9 //HANGUL SYLLABLE SSANGPIEUP WEO KIYEOK - ,0x97AA ,0xBFEA //HANGUL SYLLABLE SSANGPIEUP WEO SSANGKIYEOK - ,0x97AB ,0xBFEB //HANGUL SYLLABLE SSANGPIEUP WEO KIYEOKSIOS - ,0x97AC ,0xBFEC //HANGUL SYLLABLE SSANGPIEUP WEO NIEUN - ,0x97AD ,0xBFED //HANGUL SYLLABLE SSANGPIEUP WEO NIEUNCIEUC - ,0x97AE ,0xBFEE //HANGUL SYLLABLE SSANGPIEUP WEO NIEUNHIEUH - ,0x97AF ,0xBFEF //HANGUL SYLLABLE SSANGPIEUP WEO TIKEUT - ,0x97B0 ,0xBFF0 //HANGUL SYLLABLE SSANGPIEUP WEO RIEUL - ,0x97B1 ,0xBFF1 //HANGUL SYLLABLE SSANGPIEUP WEO RIEULKIYEOK - ,0x97B2 ,0xBFF2 //HANGUL SYLLABLE SSANGPIEUP WEO RIEULMIEUM - ,0x97B3 ,0xBFF3 //HANGUL SYLLABLE SSANGPIEUP WEO RIEULPIEUP - ,0x97B4 ,0xBFF4 //HANGUL SYLLABLE SSANGPIEUP WEO RIEULSIOS - ,0x97B5 ,0xBFF5 //HANGUL SYLLABLE SSANGPIEUP WEO RIEULTHIEUTH - ,0x97B6 ,0xBFF6 //HANGUL SYLLABLE SSANGPIEUP WEO RIEULPHIEUPH - ,0x97B7 ,0xBFF7 //HANGUL SYLLABLE SSANGPIEUP WEO RIEULHIEUH - ,0x97B8 ,0xBFF8 //HANGUL SYLLABLE SSANGPIEUP WEO MIEUM - ,0x97B9 ,0xBFF9 //HANGUL SYLLABLE SSANGPIEUP WEO PIEUP - ,0x97BA ,0xBFFA //HANGUL SYLLABLE SSANGPIEUP WEO PIEUPSIOS - ,0x97BB ,0xBFFB //HANGUL SYLLABLE SSANGPIEUP WEO SIOS - ,0x97BC ,0xBFFC //HANGUL SYLLABLE SSANGPIEUP WEO SSANGSIOS - ,0x97BD ,0xBFFD //HANGUL SYLLABLE SSANGPIEUP WEO IEUNG - ,0x97BE ,0xBFFE //HANGUL SYLLABLE SSANGPIEUP WEO CIEUC - ,0x97BF ,0xBFFF //HANGUL SYLLABLE SSANGPIEUP WEO CHIEUCH - ,0x97C0 ,0xC000 //HANGUL SYLLABLE SSANGPIEUP WEO KHIEUKH - ,0x97C1 ,0xC001 //HANGUL SYLLABLE SSANGPIEUP WEO THIEUTH - ,0x97C2 ,0xC002 //HANGUL SYLLABLE SSANGPIEUP WEO PHIEUPH - ,0x97C3 ,0xC003 //HANGUL SYLLABLE SSANGPIEUP WEO HIEUH - ,0x97C4 ,0xC004 //HANGUL SYLLABLE SSANGPIEUP WE - ,0x97C5 ,0xC005 //HANGUL SYLLABLE SSANGPIEUP WE KIYEOK - ,0x97C6 ,0xC006 //HANGUL SYLLABLE SSANGPIEUP WE SSANGKIYEOK - ,0x97C7 ,0xC007 //HANGUL SYLLABLE SSANGPIEUP WE KIYEOKSIOS - ,0x97C8 ,0xC008 //HANGUL SYLLABLE SSANGPIEUP WE NIEUN - ,0x97C9 ,0xC009 //HANGUL SYLLABLE SSANGPIEUP WE NIEUNCIEUC - ,0x97CA ,0xC00A //HANGUL SYLLABLE SSANGPIEUP WE NIEUNHIEUH - ,0x97CB ,0xC00B //HANGUL SYLLABLE SSANGPIEUP WE TIKEUT - ,0x97CC ,0xC00C //HANGUL SYLLABLE SSANGPIEUP WE RIEUL - ,0x97CD ,0xC00D //HANGUL SYLLABLE SSANGPIEUP WE RIEULKIYEOK - ,0x97CE ,0xC00E //HANGUL SYLLABLE SSANGPIEUP WE RIEULMIEUM - ,0x97CF ,0xC00F //HANGUL SYLLABLE SSANGPIEUP WE RIEULPIEUP - ,0x97D0 ,0xC010 //HANGUL SYLLABLE SSANGPIEUP WE RIEULSIOS - ,0x97D1 ,0xC011 //HANGUL SYLLABLE SSANGPIEUP WE RIEULTHIEUTH - ,0x97D2 ,0xC012 //HANGUL SYLLABLE SSANGPIEUP WE RIEULPHIEUPH - ,0x97D3 ,0xC013 //HANGUL SYLLABLE SSANGPIEUP WE RIEULHIEUH - ,0x97D4 ,0xC014 //HANGUL SYLLABLE SSANGPIEUP WE MIEUM - ,0x97D5 ,0xC015 //HANGUL SYLLABLE SSANGPIEUP WE PIEUP - ,0x97D6 ,0xC016 //HANGUL SYLLABLE SSANGPIEUP WE PIEUPSIOS - ,0x97D7 ,0xC017 //HANGUL SYLLABLE SSANGPIEUP WE SIOS - ,0x97D8 ,0xC018 //HANGUL SYLLABLE SSANGPIEUP WE SSANGSIOS - ,0x97D9 ,0xC019 //HANGUL SYLLABLE SSANGPIEUP WE IEUNG - ,0x97DA ,0xC01A //HANGUL SYLLABLE SSANGPIEUP WE CIEUC - ,0x97DB ,0xC01B //HANGUL SYLLABLE SSANGPIEUP WE CHIEUCH - ,0x97DC ,0xC01C //HANGUL SYLLABLE SSANGPIEUP WE KHIEUKH - ,0x97DD ,0xC01D //HANGUL SYLLABLE SSANGPIEUP WE THIEUTH - ,0x97DE ,0xC01E //HANGUL SYLLABLE SSANGPIEUP WE PHIEUPH - ,0x97DF ,0xC01F //HANGUL SYLLABLE SSANGPIEUP WE HIEUH - ,0x97E0 ,0xC020 //HANGUL SYLLABLE SSANGPIEUP WI - ,0x97E1 ,0xC021 //HANGUL SYLLABLE SSANGPIEUP WI KIYEOK - ,0x97E2 ,0xC022 //HANGUL SYLLABLE SSANGPIEUP WI SSANGKIYEOK - ,0x97E3 ,0xC023 //HANGUL SYLLABLE SSANGPIEUP WI KIYEOKSIOS - ,0x97E4 ,0xC024 //HANGUL SYLLABLE SSANGPIEUP WI NIEUN - ,0x97E5 ,0xC025 //HANGUL SYLLABLE SSANGPIEUP WI NIEUNCIEUC - ,0x97E6 ,0xC026 //HANGUL SYLLABLE SSANGPIEUP WI NIEUNHIEUH - ,0x97E7 ,0xC027 //HANGUL SYLLABLE SSANGPIEUP WI TIKEUT - ,0x97E8 ,0xC028 //HANGUL SYLLABLE SSANGPIEUP WI RIEUL - ,0x97E9 ,0xC029 //HANGUL SYLLABLE SSANGPIEUP WI RIEULKIYEOK - ,0x97EA ,0xC02A //HANGUL SYLLABLE SSANGPIEUP WI RIEULMIEUM - ,0x97EB ,0xC02B //HANGUL SYLLABLE SSANGPIEUP WI RIEULPIEUP - ,0x97EC ,0xC02C //HANGUL SYLLABLE SSANGPIEUP WI RIEULSIOS - ,0x97ED ,0xC02D //HANGUL SYLLABLE SSANGPIEUP WI RIEULTHIEUTH - ,0x97EE ,0xC02E //HANGUL SYLLABLE SSANGPIEUP WI RIEULPHIEUPH - ,0x97EF ,0xC02F //HANGUL SYLLABLE SSANGPIEUP WI RIEULHIEUH - ,0x97F0 ,0xC030 //HANGUL SYLLABLE SSANGPIEUP WI MIEUM - ,0x97F1 ,0xC031 //HANGUL SYLLABLE SSANGPIEUP WI PIEUP - ,0x97F2 ,0xC032 //HANGUL SYLLABLE SSANGPIEUP WI PIEUPSIOS - ,0x97F3 ,0xC033 //HANGUL SYLLABLE SSANGPIEUP WI SIOS - ,0x97F4 ,0xC034 //HANGUL SYLLABLE SSANGPIEUP WI SSANGSIOS - ,0x97F5 ,0xC035 //HANGUL SYLLABLE SSANGPIEUP WI IEUNG - ,0x97F6 ,0xC036 //HANGUL SYLLABLE SSANGPIEUP WI CIEUC - ,0x97F7 ,0xC037 //HANGUL SYLLABLE SSANGPIEUP WI CHIEUCH - ,0x97F8 ,0xC038 //HANGUL SYLLABLE SSANGPIEUP WI KHIEUKH - ,0x97F9 ,0xC039 //HANGUL SYLLABLE SSANGPIEUP WI THIEUTH - ,0x97FA ,0xC03A //HANGUL SYLLABLE SSANGPIEUP WI PHIEUPH - ,0x97FB ,0xC03B //HANGUL SYLLABLE SSANGPIEUP WI HIEUH - ,0x97FC ,0xC03D //HANGUL SYLLABLE SSANGPIEUP YU KIYEOK - ,0x97FD ,0xC03E //HANGUL SYLLABLE SSANGPIEUP YU SSANGKIYEOK - ,0x97FE ,0xC03F //HANGUL SYLLABLE SSANGPIEUP YU KIYEOKSIOS - ,0x9841 ,0xC040 //HANGUL SYLLABLE SSANGPIEUP YU NIEUN - ,0x9842 ,0xC041 //HANGUL SYLLABLE SSANGPIEUP YU NIEUNCIEUC - ,0x9843 ,0xC042 //HANGUL SYLLABLE SSANGPIEUP YU NIEUNHIEUH - ,0x9844 ,0xC043 //HANGUL SYLLABLE SSANGPIEUP YU TIKEUT - ,0x9845 ,0xC044 //HANGUL SYLLABLE SSANGPIEUP YU RIEUL - ,0x9846 ,0xC045 //HANGUL SYLLABLE SSANGPIEUP YU RIEULKIYEOK - ,0x9847 ,0xC046 //HANGUL SYLLABLE SSANGPIEUP YU RIEULMIEUM - ,0x9848 ,0xC047 //HANGUL SYLLABLE SSANGPIEUP YU RIEULPIEUP - ,0x9849 ,0xC048 //HANGUL SYLLABLE SSANGPIEUP YU RIEULSIOS - ,0x984A ,0xC049 //HANGUL SYLLABLE SSANGPIEUP YU RIEULTHIEUTH - ,0x984B ,0xC04A //HANGUL SYLLABLE SSANGPIEUP YU RIEULPHIEUPH - ,0x984C ,0xC04B //HANGUL SYLLABLE SSANGPIEUP YU RIEULHIEUH - ,0x984D ,0xC04C //HANGUL SYLLABLE SSANGPIEUP YU MIEUM - ,0x984E ,0xC04D //HANGUL SYLLABLE SSANGPIEUP YU PIEUP - ,0x984F ,0xC04E //HANGUL SYLLABLE SSANGPIEUP YU PIEUPSIOS - ,0x9850 ,0xC04F //HANGUL SYLLABLE SSANGPIEUP YU SIOS - ,0x9851 ,0xC050 //HANGUL SYLLABLE SSANGPIEUP YU SSANGSIOS - ,0x9852 ,0xC052 //HANGUL SYLLABLE SSANGPIEUP YU CIEUC - ,0x9853 ,0xC053 //HANGUL SYLLABLE SSANGPIEUP YU CHIEUCH - ,0x9854 ,0xC054 //HANGUL SYLLABLE SSANGPIEUP YU KHIEUKH - ,0x9855 ,0xC055 //HANGUL SYLLABLE SSANGPIEUP YU THIEUTH - ,0x9856 ,0xC056 //HANGUL SYLLABLE SSANGPIEUP YU PHIEUPH - ,0x9857 ,0xC057 //HANGUL SYLLABLE SSANGPIEUP YU HIEUH - ,0x9858 ,0xC059 //HANGUL SYLLABLE SSANGPIEUP EU KIYEOK - ,0x9859 ,0xC05A //HANGUL SYLLABLE SSANGPIEUP EU SSANGKIYEOK - ,0x985A ,0xC05B //HANGUL SYLLABLE SSANGPIEUP EU KIYEOKSIOS - ,0x9861 ,0xC05D //HANGUL SYLLABLE SSANGPIEUP EU NIEUNCIEUC - ,0x9862 ,0xC05E //HANGUL SYLLABLE SSANGPIEUP EU NIEUNHIEUH - ,0x9863 ,0xC05F //HANGUL SYLLABLE SSANGPIEUP EU TIKEUT - ,0x9864 ,0xC061 //HANGUL SYLLABLE SSANGPIEUP EU RIEULKIYEOK - ,0x9865 ,0xC062 //HANGUL SYLLABLE SSANGPIEUP EU RIEULMIEUM - ,0x9866 ,0xC063 //HANGUL SYLLABLE SSANGPIEUP EU RIEULPIEUP - ,0x9867 ,0xC064 //HANGUL SYLLABLE SSANGPIEUP EU RIEULSIOS - ,0x9868 ,0xC065 //HANGUL SYLLABLE SSANGPIEUP EU RIEULTHIEUTH - ,0x9869 ,0xC066 //HANGUL SYLLABLE SSANGPIEUP EU RIEULPHIEUPH - ,0x986A ,0xC067 //HANGUL SYLLABLE SSANGPIEUP EU RIEULHIEUH - ,0x986B ,0xC06A //HANGUL SYLLABLE SSANGPIEUP EU PIEUPSIOS - ,0x986C ,0xC06B //HANGUL SYLLABLE SSANGPIEUP EU SIOS - ,0x986D ,0xC06C //HANGUL SYLLABLE SSANGPIEUP EU SSANGSIOS - ,0x986E ,0xC06D //HANGUL SYLLABLE SSANGPIEUP EU IEUNG - ,0x986F ,0xC06E //HANGUL SYLLABLE SSANGPIEUP EU CIEUC - ,0x9870 ,0xC06F //HANGUL SYLLABLE SSANGPIEUP EU CHIEUCH - ,0x9871 ,0xC070 //HANGUL SYLLABLE SSANGPIEUP EU KHIEUKH - ,0x9872 ,0xC071 //HANGUL SYLLABLE SSANGPIEUP EU THIEUTH - ,0x9873 ,0xC072 //HANGUL SYLLABLE SSANGPIEUP EU PHIEUPH - ,0x9874 ,0xC073 //HANGUL SYLLABLE SSANGPIEUP EU HIEUH - ,0x9875 ,0xC074 //HANGUL SYLLABLE SSANGPIEUP YI - ,0x9876 ,0xC075 //HANGUL SYLLABLE SSANGPIEUP YI KIYEOK - ,0x9877 ,0xC076 //HANGUL SYLLABLE SSANGPIEUP YI SSANGKIYEOK - ,0x9878 ,0xC077 //HANGUL SYLLABLE SSANGPIEUP YI KIYEOKSIOS - ,0x9879 ,0xC078 //HANGUL SYLLABLE SSANGPIEUP YI NIEUN - ,0x987A ,0xC079 //HANGUL SYLLABLE SSANGPIEUP YI NIEUNCIEUC - ,0x9881 ,0xC07A //HANGUL SYLLABLE SSANGPIEUP YI NIEUNHIEUH - ,0x9882 ,0xC07B //HANGUL SYLLABLE SSANGPIEUP YI TIKEUT - ,0x9883 ,0xC07C //HANGUL SYLLABLE SSANGPIEUP YI RIEUL - ,0x9884 ,0xC07D //HANGUL SYLLABLE SSANGPIEUP YI RIEULKIYEOK - ,0x9885 ,0xC07E //HANGUL SYLLABLE SSANGPIEUP YI RIEULMIEUM - ,0x9886 ,0xC07F //HANGUL SYLLABLE SSANGPIEUP YI RIEULPIEUP - ,0x9887 ,0xC080 //HANGUL SYLLABLE SSANGPIEUP YI RIEULSIOS - ,0x9888 ,0xC081 //HANGUL SYLLABLE SSANGPIEUP YI RIEULTHIEUTH - ,0x9889 ,0xC082 //HANGUL SYLLABLE SSANGPIEUP YI RIEULPHIEUPH - ,0x988A ,0xC083 //HANGUL SYLLABLE SSANGPIEUP YI RIEULHIEUH - ,0x988B ,0xC084 //HANGUL SYLLABLE SSANGPIEUP YI MIEUM - ,0x988C ,0xC085 //HANGUL SYLLABLE SSANGPIEUP YI PIEUP - ,0x988D ,0xC086 //HANGUL SYLLABLE SSANGPIEUP YI PIEUPSIOS - ,0x988E ,0xC087 //HANGUL SYLLABLE SSANGPIEUP YI SIOS - ,0x988F ,0xC088 //HANGUL SYLLABLE SSANGPIEUP YI SSANGSIOS - ,0x9890 ,0xC089 //HANGUL SYLLABLE SSANGPIEUP YI IEUNG - ,0x9891 ,0xC08A //HANGUL SYLLABLE SSANGPIEUP YI CIEUC - ,0x9892 ,0xC08B //HANGUL SYLLABLE SSANGPIEUP YI CHIEUCH - ,0x9893 ,0xC08C //HANGUL SYLLABLE SSANGPIEUP YI KHIEUKH - ,0x9894 ,0xC08D //HANGUL SYLLABLE SSANGPIEUP YI THIEUTH - ,0x9895 ,0xC08E //HANGUL SYLLABLE SSANGPIEUP YI PHIEUPH - ,0x9896 ,0xC08F //HANGUL SYLLABLE SSANGPIEUP YI HIEUH - ,0x9897 ,0xC092 //HANGUL SYLLABLE SSANGPIEUP I SSANGKIYEOK - ,0x9898 ,0xC093 //HANGUL SYLLABLE SSANGPIEUP I KIYEOKSIOS - ,0x9899 ,0xC095 //HANGUL SYLLABLE SSANGPIEUP I NIEUNCIEUC - ,0x989A ,0xC096 //HANGUL SYLLABLE SSANGPIEUP I NIEUNHIEUH - ,0x989B ,0xC097 //HANGUL SYLLABLE SSANGPIEUP I TIKEUT - ,0x989C ,0xC099 //HANGUL SYLLABLE SSANGPIEUP I RIEULKIYEOK - ,0x989D ,0xC09A //HANGUL SYLLABLE SSANGPIEUP I RIEULMIEUM - ,0x989E ,0xC09B //HANGUL SYLLABLE SSANGPIEUP I RIEULPIEUP - ,0x989F ,0xC09C //HANGUL SYLLABLE SSANGPIEUP I RIEULSIOS - ,0x98A0 ,0xC09D //HANGUL SYLLABLE SSANGPIEUP I RIEULTHIEUTH - ,0x98A1 ,0xC09E //HANGUL SYLLABLE SSANGPIEUP I RIEULPHIEUPH - ,0x98A2 ,0xC09F //HANGUL SYLLABLE SSANGPIEUP I RIEULHIEUH - ,0x98A3 ,0xC0A2 //HANGUL SYLLABLE SSANGPIEUP I PIEUPSIOS - ,0x98A4 ,0xC0A4 //HANGUL SYLLABLE SSANGPIEUP I SSANGSIOS - ,0x98A5 ,0xC0A6 //HANGUL SYLLABLE SSANGPIEUP I CIEUC - ,0x98A6 ,0xC0A7 //HANGUL SYLLABLE SSANGPIEUP I CHIEUCH - ,0x98A7 ,0xC0A8 //HANGUL SYLLABLE SSANGPIEUP I KHIEUKH - ,0x98A8 ,0xC0A9 //HANGUL SYLLABLE SSANGPIEUP I THIEUTH - ,0x98A9 ,0xC0AA //HANGUL SYLLABLE SSANGPIEUP I PHIEUPH - ,0x98AA ,0xC0AB //HANGUL SYLLABLE SSANGPIEUP I HIEUH - ,0x98AB ,0xC0AE //HANGUL SYLLABLE SIOS A SSANGKIYEOK - ,0x98AC ,0xC0B1 //HANGUL SYLLABLE SIOS A NIEUNCIEUC - ,0x98AD ,0xC0B2 //HANGUL SYLLABLE SIOS A NIEUNHIEUH - ,0x98AE ,0xC0B7 //HANGUL SYLLABLE SIOS A RIEULPIEUP - ,0x98AF ,0xC0B8 //HANGUL SYLLABLE SIOS A RIEULSIOS - ,0x98B0 ,0xC0B9 //HANGUL SYLLABLE SIOS A RIEULTHIEUTH - ,0x98B1 ,0xC0BA //HANGUL SYLLABLE SIOS A RIEULPHIEUPH - ,0x98B2 ,0xC0BB //HANGUL SYLLABLE SIOS A RIEULHIEUH - ,0x98B3 ,0xC0BE //HANGUL SYLLABLE SIOS A PIEUPSIOS - ,0x98B4 ,0xC0C2 //HANGUL SYLLABLE SIOS A CIEUC - ,0x98B5 ,0xC0C3 //HANGUL SYLLABLE SIOS A CHIEUCH - ,0x98B6 ,0xC0C4 //HANGUL SYLLABLE SIOS A KHIEUKH - ,0x98B7 ,0xC0C6 //HANGUL SYLLABLE SIOS A PHIEUPH - ,0x98B8 ,0xC0C7 //HANGUL SYLLABLE SIOS A HIEUH - ,0x98B9 ,0xC0CA //HANGUL SYLLABLE SIOS AE SSANGKIYEOK - ,0x98BA ,0xC0CB //HANGUL SYLLABLE SIOS AE KIYEOKSIOS - ,0x98BB ,0xC0CD //HANGUL SYLLABLE SIOS AE NIEUNCIEUC - ,0x98BC ,0xC0CE //HANGUL SYLLABLE SIOS AE NIEUNHIEUH - ,0x98BD ,0xC0CF //HANGUL SYLLABLE SIOS AE TIKEUT - ,0x98BE ,0xC0D1 //HANGUL SYLLABLE SIOS AE RIEULKIYEOK - ,0x98BF ,0xC0D2 //HANGUL SYLLABLE SIOS AE RIEULMIEUM - ,0x98C0 ,0xC0D3 //HANGUL SYLLABLE SIOS AE RIEULPIEUP - ,0x98C1 ,0xC0D4 //HANGUL SYLLABLE SIOS AE RIEULSIOS - ,0x98C2 ,0xC0D5 //HANGUL SYLLABLE SIOS AE RIEULTHIEUTH - ,0x98C3 ,0xC0D6 //HANGUL SYLLABLE SIOS AE RIEULPHIEUPH - ,0x98C4 ,0xC0D7 //HANGUL SYLLABLE SIOS AE RIEULHIEUH - ,0x98C5 ,0xC0DA //HANGUL SYLLABLE SIOS AE PIEUPSIOS - ,0x98C6 ,0xC0DE //HANGUL SYLLABLE SIOS AE CIEUC - ,0x98C7 ,0xC0DF //HANGUL SYLLABLE SIOS AE CHIEUCH - ,0x98C8 ,0xC0E0 //HANGUL SYLLABLE SIOS AE KHIEUKH - ,0x98C9 ,0xC0E1 //HANGUL SYLLABLE SIOS AE THIEUTH - ,0x98CA ,0xC0E2 //HANGUL SYLLABLE SIOS AE PHIEUPH - ,0x98CB ,0xC0E3 //HANGUL SYLLABLE SIOS AE HIEUH - ,0x98CC ,0xC0E6 //HANGUL SYLLABLE SIOS YA SSANGKIYEOK - ,0x98CD ,0xC0E7 //HANGUL SYLLABLE SIOS YA KIYEOKSIOS - ,0x98CE ,0xC0E9 //HANGUL SYLLABLE SIOS YA NIEUNCIEUC - ,0x98CF ,0xC0EA //HANGUL SYLLABLE SIOS YA NIEUNHIEUH - ,0x98D0 ,0xC0EB //HANGUL SYLLABLE SIOS YA TIKEUT - ,0x98D1 ,0xC0ED //HANGUL SYLLABLE SIOS YA RIEULKIYEOK - ,0x98D2 ,0xC0EE //HANGUL SYLLABLE SIOS YA RIEULMIEUM - ,0x98D3 ,0xC0EF //HANGUL SYLLABLE SIOS YA RIEULPIEUP - ,0x98D4 ,0xC0F0 //HANGUL SYLLABLE SIOS YA RIEULSIOS - ,0x98D5 ,0xC0F1 //HANGUL SYLLABLE SIOS YA RIEULTHIEUTH - ,0x98D6 ,0xC0F2 //HANGUL SYLLABLE SIOS YA RIEULPHIEUPH - ,0x98D7 ,0xC0F3 //HANGUL SYLLABLE SIOS YA RIEULHIEUH - ,0x98D8 ,0xC0F6 //HANGUL SYLLABLE SIOS YA PIEUPSIOS - ,0x98D9 ,0xC0F8 //HANGUL SYLLABLE SIOS YA SSANGSIOS - ,0x98DA ,0xC0FA //HANGUL SYLLABLE SIOS YA CIEUC - ,0x98DB ,0xC0FB //HANGUL SYLLABLE SIOS YA CHIEUCH - ,0x98DC ,0xC0FC //HANGUL SYLLABLE SIOS YA KHIEUKH - ,0x98DD ,0xC0FD //HANGUL SYLLABLE SIOS YA THIEUTH - ,0x98DE ,0xC0FE //HANGUL SYLLABLE SIOS YA PHIEUPH - ,0x98DF ,0xC0FF //HANGUL SYLLABLE SIOS YA HIEUH - ,0x98E0 ,0xC101 //HANGUL SYLLABLE SIOS YAE KIYEOK - ,0x98E1 ,0xC102 //HANGUL SYLLABLE SIOS YAE SSANGKIYEOK - ,0x98E2 ,0xC103 //HANGUL SYLLABLE SIOS YAE KIYEOKSIOS - ,0x98E3 ,0xC105 //HANGUL SYLLABLE SIOS YAE NIEUNCIEUC - ,0x98E4 ,0xC106 //HANGUL SYLLABLE SIOS YAE NIEUNHIEUH - ,0x98E5 ,0xC107 //HANGUL SYLLABLE SIOS YAE TIKEUT - ,0x98E6 ,0xC109 //HANGUL SYLLABLE SIOS YAE RIEULKIYEOK - ,0x98E7 ,0xC10A //HANGUL SYLLABLE SIOS YAE RIEULMIEUM - ,0x98E8 ,0xC10B //HANGUL SYLLABLE SIOS YAE RIEULPIEUP - ,0x98E9 ,0xC10C //HANGUL SYLLABLE SIOS YAE RIEULSIOS - ,0x98EA ,0xC10D //HANGUL SYLLABLE SIOS YAE RIEULTHIEUTH - ,0x98EB ,0xC10E //HANGUL SYLLABLE SIOS YAE RIEULPHIEUPH - ,0x98EC ,0xC10F //HANGUL SYLLABLE SIOS YAE RIEULHIEUH - ,0x98ED ,0xC111 //HANGUL SYLLABLE SIOS YAE PIEUP - ,0x98EE ,0xC112 //HANGUL SYLLABLE SIOS YAE PIEUPSIOS - ,0x98EF ,0xC113 //HANGUL SYLLABLE SIOS YAE SIOS - ,0x98F0 ,0xC114 //HANGUL SYLLABLE SIOS YAE SSANGSIOS - ,0x98F1 ,0xC116 //HANGUL SYLLABLE SIOS YAE CIEUC - ,0x98F2 ,0xC117 //HANGUL SYLLABLE SIOS YAE CHIEUCH - ,0x98F3 ,0xC118 //HANGUL SYLLABLE SIOS YAE KHIEUKH - ,0x98F4 ,0xC119 //HANGUL SYLLABLE SIOS YAE THIEUTH - ,0x98F5 ,0xC11A //HANGUL SYLLABLE SIOS YAE PHIEUPH - ,0x98F6 ,0xC11B //HANGUL SYLLABLE SIOS YAE HIEUH - ,0x98F7 ,0xC121 //HANGUL SYLLABLE SIOS EO NIEUNCIEUC - ,0x98F8 ,0xC122 //HANGUL SYLLABLE SIOS EO NIEUNHIEUH - ,0x98F9 ,0xC125 //HANGUL SYLLABLE SIOS EO RIEULKIYEOK - ,0x98FA ,0xC128 //HANGUL SYLLABLE SIOS EO RIEULSIOS - ,0x98FB ,0xC129 //HANGUL SYLLABLE SIOS EO RIEULTHIEUTH - ,0x98FC ,0xC12A //HANGUL SYLLABLE SIOS EO RIEULPHIEUPH - ,0x98FD ,0xC12B //HANGUL SYLLABLE SIOS EO RIEULHIEUH - ,0x98FE ,0xC12E //HANGUL SYLLABLE SIOS EO PIEUPSIOS - ,0x9941 ,0xC132 //HANGUL SYLLABLE SIOS EO CIEUC - ,0x9942 ,0xC133 //HANGUL SYLLABLE SIOS EO CHIEUCH - ,0x9943 ,0xC134 //HANGUL SYLLABLE SIOS EO KHIEUKH - ,0x9944 ,0xC135 //HANGUL SYLLABLE SIOS EO THIEUTH - ,0x9945 ,0xC137 //HANGUL SYLLABLE SIOS EO HIEUH - ,0x9946 ,0xC13A //HANGUL SYLLABLE SIOS E SSANGKIYEOK - ,0x9947 ,0xC13B //HANGUL SYLLABLE SIOS E KIYEOKSIOS - ,0x9948 ,0xC13D //HANGUL SYLLABLE SIOS E NIEUNCIEUC - ,0x9949 ,0xC13E //HANGUL SYLLABLE SIOS E NIEUNHIEUH - ,0x994A ,0xC13F //HANGUL SYLLABLE SIOS E TIKEUT - ,0x994B ,0xC141 //HANGUL SYLLABLE SIOS E RIEULKIYEOK - ,0x994C ,0xC142 //HANGUL SYLLABLE SIOS E RIEULMIEUM - ,0x994D ,0xC143 //HANGUL SYLLABLE SIOS E RIEULPIEUP - ,0x994E ,0xC144 //HANGUL SYLLABLE SIOS E RIEULSIOS - ,0x994F ,0xC145 //HANGUL SYLLABLE SIOS E RIEULTHIEUTH - ,0x9950 ,0xC146 //HANGUL SYLLABLE SIOS E RIEULPHIEUPH - ,0x9951 ,0xC147 //HANGUL SYLLABLE SIOS E RIEULHIEUH - ,0x9952 ,0xC14A //HANGUL SYLLABLE SIOS E PIEUPSIOS - ,0x9953 ,0xC14E //HANGUL SYLLABLE SIOS E CIEUC - ,0x9954 ,0xC14F //HANGUL SYLLABLE SIOS E CHIEUCH - ,0x9955 ,0xC150 //HANGUL SYLLABLE SIOS E KHIEUKH - ,0x9956 ,0xC151 //HANGUL SYLLABLE SIOS E THIEUTH - ,0x9957 ,0xC152 //HANGUL SYLLABLE SIOS E PHIEUPH - ,0x9958 ,0xC153 //HANGUL SYLLABLE SIOS E HIEUH - ,0x9959 ,0xC156 //HANGUL SYLLABLE SIOS YEO SSANGKIYEOK - ,0x995A ,0xC157 //HANGUL SYLLABLE SIOS YEO KIYEOKSIOS - ,0x9961 ,0xC159 //HANGUL SYLLABLE SIOS YEO NIEUNCIEUC - ,0x9962 ,0xC15A //HANGUL SYLLABLE SIOS YEO NIEUNHIEUH - ,0x9963 ,0xC15B //HANGUL SYLLABLE SIOS YEO TIKEUT - ,0x9964 ,0xC15D //HANGUL SYLLABLE SIOS YEO RIEULKIYEOK - ,0x9965 ,0xC15E //HANGUL SYLLABLE SIOS YEO RIEULMIEUM - ,0x9966 ,0xC15F //HANGUL SYLLABLE SIOS YEO RIEULPIEUP - ,0x9967 ,0xC160 //HANGUL SYLLABLE SIOS YEO RIEULSIOS - ,0x9968 ,0xC161 //HANGUL SYLLABLE SIOS YEO RIEULTHIEUTH - ,0x9969 ,0xC162 //HANGUL SYLLABLE SIOS YEO RIEULPHIEUPH - ,0x996A ,0xC163 //HANGUL SYLLABLE SIOS YEO RIEULHIEUH - ,0x996B ,0xC166 //HANGUL SYLLABLE SIOS YEO PIEUPSIOS - ,0x996C ,0xC16A //HANGUL SYLLABLE SIOS YEO CIEUC - ,0x996D ,0xC16B //HANGUL SYLLABLE SIOS YEO CHIEUCH - ,0x996E ,0xC16C //HANGUL SYLLABLE SIOS YEO KHIEUKH - ,0x996F ,0xC16D //HANGUL SYLLABLE SIOS YEO THIEUTH - ,0x9970 ,0xC16E //HANGUL SYLLABLE SIOS YEO PHIEUPH - ,0x9971 ,0xC16F //HANGUL SYLLABLE SIOS YEO HIEUH - ,0x9972 ,0xC171 //HANGUL SYLLABLE SIOS YE KIYEOK - ,0x9973 ,0xC172 //HANGUL SYLLABLE SIOS YE SSANGKIYEOK - ,0x9974 ,0xC173 //HANGUL SYLLABLE SIOS YE KIYEOKSIOS - ,0x9975 ,0xC175 //HANGUL SYLLABLE SIOS YE NIEUNCIEUC - ,0x9976 ,0xC176 //HANGUL SYLLABLE SIOS YE NIEUNHIEUH - ,0x9977 ,0xC177 //HANGUL SYLLABLE SIOS YE TIKEUT - ,0x9978 ,0xC179 //HANGUL SYLLABLE SIOS YE RIEULKIYEOK - ,0x9979 ,0xC17A //HANGUL SYLLABLE SIOS YE RIEULMIEUM - ,0x997A ,0xC17B //HANGUL SYLLABLE SIOS YE RIEULPIEUP - ,0x9981 ,0xC17C //HANGUL SYLLABLE SIOS YE RIEULSIOS - ,0x9982 ,0xC17D //HANGUL SYLLABLE SIOS YE RIEULTHIEUTH - ,0x9983 ,0xC17E //HANGUL SYLLABLE SIOS YE RIEULPHIEUPH - ,0x9984 ,0xC17F //HANGUL SYLLABLE SIOS YE RIEULHIEUH - ,0x9985 ,0xC180 //HANGUL SYLLABLE SIOS YE MIEUM - ,0x9986 ,0xC181 //HANGUL SYLLABLE SIOS YE PIEUP - ,0x9987 ,0xC182 //HANGUL SYLLABLE SIOS YE PIEUPSIOS - ,0x9988 ,0xC183 //HANGUL SYLLABLE SIOS YE SIOS - ,0x9989 ,0xC184 //HANGUL SYLLABLE SIOS YE SSANGSIOS - ,0x998A ,0xC186 //HANGUL SYLLABLE SIOS YE CIEUC - ,0x998B ,0xC187 //HANGUL SYLLABLE SIOS YE CHIEUCH - ,0x998C ,0xC188 //HANGUL SYLLABLE SIOS YE KHIEUKH - ,0x998D ,0xC189 //HANGUL SYLLABLE SIOS YE THIEUTH - ,0x998E ,0xC18A //HANGUL SYLLABLE SIOS YE PHIEUPH - ,0x998F ,0xC18B //HANGUL SYLLABLE SIOS YE HIEUH - ,0x9990 ,0xC18F //HANGUL SYLLABLE SIOS O KIYEOKSIOS - ,0x9991 ,0xC191 //HANGUL SYLLABLE SIOS O NIEUNCIEUC - ,0x9992 ,0xC192 //HANGUL SYLLABLE SIOS O NIEUNHIEUH - ,0x9993 ,0xC193 //HANGUL SYLLABLE SIOS O TIKEUT - ,0x9994 ,0xC195 //HANGUL SYLLABLE SIOS O RIEULKIYEOK - ,0x9995 ,0xC197 //HANGUL SYLLABLE SIOS O RIEULPIEUP - ,0x9996 ,0xC198 //HANGUL SYLLABLE SIOS O RIEULSIOS - ,0x9997 ,0xC199 //HANGUL SYLLABLE SIOS O RIEULTHIEUTH - ,0x9998 ,0xC19A //HANGUL SYLLABLE SIOS O RIEULPHIEUPH - ,0x9999 ,0xC19B //HANGUL SYLLABLE SIOS O RIEULHIEUH - ,0x999A ,0xC19E //HANGUL SYLLABLE SIOS O PIEUPSIOS - ,0x999B ,0xC1A0 //HANGUL SYLLABLE SIOS O SSANGSIOS - ,0x999C ,0xC1A2 //HANGUL SYLLABLE SIOS O CIEUC - ,0x999D ,0xC1A3 //HANGUL SYLLABLE SIOS O CHIEUCH - ,0x999E ,0xC1A4 //HANGUL SYLLABLE SIOS O KHIEUKH - ,0x999F ,0xC1A6 //HANGUL SYLLABLE SIOS O PHIEUPH - ,0x99A0 ,0xC1A7 //HANGUL SYLLABLE SIOS O HIEUH - ,0x99A1 ,0xC1AA //HANGUL SYLLABLE SIOS WA SSANGKIYEOK - ,0x99A2 ,0xC1AB //HANGUL SYLLABLE SIOS WA KIYEOKSIOS - ,0x99A3 ,0xC1AD //HANGUL SYLLABLE SIOS WA NIEUNCIEUC - ,0x99A4 ,0xC1AE //HANGUL SYLLABLE SIOS WA NIEUNHIEUH - ,0x99A5 ,0xC1AF //HANGUL SYLLABLE SIOS WA TIKEUT - ,0x99A6 ,0xC1B1 //HANGUL SYLLABLE SIOS WA RIEULKIYEOK - ,0x99A7 ,0xC1B2 //HANGUL SYLLABLE SIOS WA RIEULMIEUM - ,0x99A8 ,0xC1B3 //HANGUL SYLLABLE SIOS WA RIEULPIEUP - ,0x99A9 ,0xC1B4 //HANGUL SYLLABLE SIOS WA RIEULSIOS - ,0x99AA ,0xC1B5 //HANGUL SYLLABLE SIOS WA RIEULTHIEUTH - ,0x99AB ,0xC1B6 //HANGUL SYLLABLE SIOS WA RIEULPHIEUPH - ,0x99AC ,0xC1B7 //HANGUL SYLLABLE SIOS WA RIEULHIEUH - ,0x99AD ,0xC1B8 //HANGUL SYLLABLE SIOS WA MIEUM - ,0x99AE ,0xC1B9 //HANGUL SYLLABLE SIOS WA PIEUP - ,0x99AF ,0xC1BA //HANGUL SYLLABLE SIOS WA PIEUPSIOS - ,0x99B0 ,0xC1BB //HANGUL SYLLABLE SIOS WA SIOS - ,0x99B1 ,0xC1BC //HANGUL SYLLABLE SIOS WA SSANGSIOS - ,0x99B2 ,0xC1BE //HANGUL SYLLABLE SIOS WA CIEUC - ,0x99B3 ,0xC1BF //HANGUL SYLLABLE SIOS WA CHIEUCH - ,0x99B4 ,0xC1C0 //HANGUL SYLLABLE SIOS WA KHIEUKH - ,0x99B5 ,0xC1C1 //HANGUL SYLLABLE SIOS WA THIEUTH - ,0x99B6 ,0xC1C2 //HANGUL SYLLABLE SIOS WA PHIEUPH - ,0x99B7 ,0xC1C3 //HANGUL SYLLABLE SIOS WA HIEUH - ,0x99B8 ,0xC1C5 //HANGUL SYLLABLE SIOS WAE KIYEOK - ,0x99B9 ,0xC1C6 //HANGUL SYLLABLE SIOS WAE SSANGKIYEOK - ,0x99BA ,0xC1C7 //HANGUL SYLLABLE SIOS WAE KIYEOKSIOS - ,0x99BB ,0xC1C9 //HANGUL SYLLABLE SIOS WAE NIEUNCIEUC - ,0x99BC ,0xC1CA //HANGUL SYLLABLE SIOS WAE NIEUNHIEUH - ,0x99BD ,0xC1CB //HANGUL SYLLABLE SIOS WAE TIKEUT - ,0x99BE ,0xC1CD //HANGUL SYLLABLE SIOS WAE RIEULKIYEOK - ,0x99BF ,0xC1CE //HANGUL SYLLABLE SIOS WAE RIEULMIEUM - ,0x99C0 ,0xC1CF //HANGUL SYLLABLE SIOS WAE RIEULPIEUP - ,0x99C1 ,0xC1D0 //HANGUL SYLLABLE SIOS WAE RIEULSIOS - ,0x99C2 ,0xC1D1 //HANGUL SYLLABLE SIOS WAE RIEULTHIEUTH - ,0x99C3 ,0xC1D2 //HANGUL SYLLABLE SIOS WAE RIEULPHIEUPH - ,0x99C4 ,0xC1D3 //HANGUL SYLLABLE SIOS WAE RIEULHIEUH - ,0x99C5 ,0xC1D5 //HANGUL SYLLABLE SIOS WAE PIEUP - ,0x99C6 ,0xC1D6 //HANGUL SYLLABLE SIOS WAE PIEUPSIOS - ,0x99C7 ,0xC1D9 //HANGUL SYLLABLE SIOS WAE IEUNG - ,0x99C8 ,0xC1DA //HANGUL SYLLABLE SIOS WAE CIEUC - ,0x99C9 ,0xC1DB //HANGUL SYLLABLE SIOS WAE CHIEUCH - ,0x99CA ,0xC1DC //HANGUL SYLLABLE SIOS WAE KHIEUKH - ,0x99CB ,0xC1DD //HANGUL SYLLABLE SIOS WAE THIEUTH - ,0x99CC ,0xC1DE //HANGUL SYLLABLE SIOS WAE PHIEUPH - ,0x99CD ,0xC1DF //HANGUL SYLLABLE SIOS WAE HIEUH - ,0x99CE ,0xC1E1 //HANGUL SYLLABLE SIOS OE KIYEOK - ,0x99CF ,0xC1E2 //HANGUL SYLLABLE SIOS OE SSANGKIYEOK - ,0x99D0 ,0xC1E3 //HANGUL SYLLABLE SIOS OE KIYEOKSIOS - ,0x99D1 ,0xC1E5 //HANGUL SYLLABLE SIOS OE NIEUNCIEUC - ,0x99D2 ,0xC1E6 //HANGUL SYLLABLE SIOS OE NIEUNHIEUH - ,0x99D3 ,0xC1E7 //HANGUL SYLLABLE SIOS OE TIKEUT - ,0x99D4 ,0xC1E9 //HANGUL SYLLABLE SIOS OE RIEULKIYEOK - ,0x99D5 ,0xC1EA //HANGUL SYLLABLE SIOS OE RIEULMIEUM - ,0x99D6 ,0xC1EB //HANGUL SYLLABLE SIOS OE RIEULPIEUP - ,0x99D7 ,0xC1EC //HANGUL SYLLABLE SIOS OE RIEULSIOS - ,0x99D8 ,0xC1ED //HANGUL SYLLABLE SIOS OE RIEULTHIEUTH - ,0x99D9 ,0xC1EE //HANGUL SYLLABLE SIOS OE RIEULPHIEUPH - ,0x99DA ,0xC1EF //HANGUL SYLLABLE SIOS OE RIEULHIEUH - ,0x99DB ,0xC1F2 //HANGUL SYLLABLE SIOS OE PIEUPSIOS - ,0x99DC ,0xC1F4 //HANGUL SYLLABLE SIOS OE SSANGSIOS - ,0x99DD ,0xC1F5 //HANGUL SYLLABLE SIOS OE IEUNG - ,0x99DE ,0xC1F6 //HANGUL SYLLABLE SIOS OE CIEUC - ,0x99DF ,0xC1F7 //HANGUL SYLLABLE SIOS OE CHIEUCH - ,0x99E0 ,0xC1F8 //HANGUL SYLLABLE SIOS OE KHIEUKH - ,0x99E1 ,0xC1F9 //HANGUL SYLLABLE SIOS OE THIEUTH - ,0x99E2 ,0xC1FA //HANGUL SYLLABLE SIOS OE PHIEUPH - ,0x99E3 ,0xC1FB //HANGUL SYLLABLE SIOS OE HIEUH - ,0x99E4 ,0xC1FE //HANGUL SYLLABLE SIOS YO SSANGKIYEOK - ,0x99E5 ,0xC1FF //HANGUL SYLLABLE SIOS YO KIYEOKSIOS - ,0x99E6 ,0xC201 //HANGUL SYLLABLE SIOS YO NIEUNCIEUC - ,0x99E7 ,0xC202 //HANGUL SYLLABLE SIOS YO NIEUNHIEUH - ,0x99E8 ,0xC203 //HANGUL SYLLABLE SIOS YO TIKEUT - ,0x99E9 ,0xC205 //HANGUL SYLLABLE SIOS YO RIEULKIYEOK - ,0x99EA ,0xC206 //HANGUL SYLLABLE SIOS YO RIEULMIEUM - ,0x99EB ,0xC207 //HANGUL SYLLABLE SIOS YO RIEULPIEUP - ,0x99EC ,0xC208 //HANGUL SYLLABLE SIOS YO RIEULSIOS - ,0x99ED ,0xC209 //HANGUL SYLLABLE SIOS YO RIEULTHIEUTH - ,0x99EE ,0xC20A //HANGUL SYLLABLE SIOS YO RIEULPHIEUPH - ,0x99EF ,0xC20B //HANGUL SYLLABLE SIOS YO RIEULHIEUH - ,0x99F0 ,0xC20E //HANGUL SYLLABLE SIOS YO PIEUPSIOS - ,0x99F1 ,0xC210 //HANGUL SYLLABLE SIOS YO SSANGSIOS - ,0x99F2 ,0xC212 //HANGUL SYLLABLE SIOS YO CIEUC - ,0x99F3 ,0xC213 //HANGUL SYLLABLE SIOS YO CHIEUCH - ,0x99F4 ,0xC214 //HANGUL SYLLABLE SIOS YO KHIEUKH - ,0x99F5 ,0xC215 //HANGUL SYLLABLE SIOS YO THIEUTH - ,0x99F6 ,0xC216 //HANGUL SYLLABLE SIOS YO PHIEUPH - ,0x99F7 ,0xC217 //HANGUL SYLLABLE SIOS YO HIEUH - ,0x99F8 ,0xC21A //HANGUL SYLLABLE SIOS U SSANGKIYEOK - ,0x99F9 ,0xC21B //HANGUL SYLLABLE SIOS U KIYEOKSIOS - ,0x99FA ,0xC21D //HANGUL SYLLABLE SIOS U NIEUNCIEUC - ,0x99FB ,0xC21E //HANGUL SYLLABLE SIOS U NIEUNHIEUH - ,0x99FC ,0xC221 //HANGUL SYLLABLE SIOS U RIEULKIYEOK - ,0x99FD ,0xC222 //HANGUL SYLLABLE SIOS U RIEULMIEUM - ,0x99FE ,0xC223 //HANGUL SYLLABLE SIOS U RIEULPIEUP - ,0x9A41 ,0xC224 //HANGUL SYLLABLE SIOS U RIEULSIOS - ,0x9A42 ,0xC225 //HANGUL SYLLABLE SIOS U RIEULTHIEUTH - ,0x9A43 ,0xC226 //HANGUL SYLLABLE SIOS U RIEULPHIEUPH - ,0x9A44 ,0xC227 //HANGUL SYLLABLE SIOS U RIEULHIEUH - ,0x9A45 ,0xC22A //HANGUL SYLLABLE SIOS U PIEUPSIOS - ,0x9A46 ,0xC22C //HANGUL SYLLABLE SIOS U SSANGSIOS - ,0x9A47 ,0xC22E //HANGUL SYLLABLE SIOS U CIEUC - ,0x9A48 ,0xC230 //HANGUL SYLLABLE SIOS U KHIEUKH - ,0x9A49 ,0xC233 //HANGUL SYLLABLE SIOS U HIEUH - ,0x9A4A ,0xC235 //HANGUL SYLLABLE SIOS WEO KIYEOK - ,0x9A4B ,0xC236 //HANGUL SYLLABLE SIOS WEO SSANGKIYEOK - ,0x9A4C ,0xC237 //HANGUL SYLLABLE SIOS WEO KIYEOKSIOS - ,0x9A4D ,0xC238 //HANGUL SYLLABLE SIOS WEO NIEUN - ,0x9A4E ,0xC239 //HANGUL SYLLABLE SIOS WEO NIEUNCIEUC - ,0x9A4F ,0xC23A //HANGUL SYLLABLE SIOS WEO NIEUNHIEUH - ,0x9A50 ,0xC23B //HANGUL SYLLABLE SIOS WEO TIKEUT - ,0x9A51 ,0xC23C //HANGUL SYLLABLE SIOS WEO RIEUL - ,0x9A52 ,0xC23D //HANGUL SYLLABLE SIOS WEO RIEULKIYEOK - ,0x9A53 ,0xC23E //HANGUL SYLLABLE SIOS WEO RIEULMIEUM - ,0x9A54 ,0xC23F //HANGUL SYLLABLE SIOS WEO RIEULPIEUP - ,0x9A55 ,0xC240 //HANGUL SYLLABLE SIOS WEO RIEULSIOS - ,0x9A56 ,0xC241 //HANGUL SYLLABLE SIOS WEO RIEULTHIEUTH - ,0x9A57 ,0xC242 //HANGUL SYLLABLE SIOS WEO RIEULPHIEUPH - ,0x9A58 ,0xC243 //HANGUL SYLLABLE SIOS WEO RIEULHIEUH - ,0x9A59 ,0xC244 //HANGUL SYLLABLE SIOS WEO MIEUM - ,0x9A5A ,0xC245 //HANGUL SYLLABLE SIOS WEO PIEUP - ,0x9A61 ,0xC246 //HANGUL SYLLABLE SIOS WEO PIEUPSIOS - ,0x9A62 ,0xC247 //HANGUL SYLLABLE SIOS WEO SIOS - ,0x9A63 ,0xC249 //HANGUL SYLLABLE SIOS WEO IEUNG - ,0x9A64 ,0xC24A //HANGUL SYLLABLE SIOS WEO CIEUC - ,0x9A65 ,0xC24B //HANGUL SYLLABLE SIOS WEO CHIEUCH - ,0x9A66 ,0xC24C //HANGUL SYLLABLE SIOS WEO KHIEUKH - ,0x9A67 ,0xC24D //HANGUL SYLLABLE SIOS WEO THIEUTH - ,0x9A68 ,0xC24E //HANGUL SYLLABLE SIOS WEO PHIEUPH - ,0x9A69 ,0xC24F //HANGUL SYLLABLE SIOS WEO HIEUH - ,0x9A6A ,0xC252 //HANGUL SYLLABLE SIOS WE SSANGKIYEOK - ,0x9A6B ,0xC253 //HANGUL SYLLABLE SIOS WE KIYEOKSIOS - ,0x9A6C ,0xC255 //HANGUL SYLLABLE SIOS WE NIEUNCIEUC - ,0x9A6D ,0xC256 //HANGUL SYLLABLE SIOS WE NIEUNHIEUH - ,0x9A6E ,0xC257 //HANGUL SYLLABLE SIOS WE TIKEUT - ,0x9A6F ,0xC259 //HANGUL SYLLABLE SIOS WE RIEULKIYEOK - ,0x9A70 ,0xC25A //HANGUL SYLLABLE SIOS WE RIEULMIEUM - ,0x9A71 ,0xC25B //HANGUL SYLLABLE SIOS WE RIEULPIEUP - ,0x9A72 ,0xC25C //HANGUL SYLLABLE SIOS WE RIEULSIOS - ,0x9A73 ,0xC25D //HANGUL SYLLABLE SIOS WE RIEULTHIEUTH - ,0x9A74 ,0xC25E //HANGUL SYLLABLE SIOS WE RIEULPHIEUPH - ,0x9A75 ,0xC25F //HANGUL SYLLABLE SIOS WE RIEULHIEUH - ,0x9A76 ,0xC261 //HANGUL SYLLABLE SIOS WE PIEUP - ,0x9A77 ,0xC262 //HANGUL SYLLABLE SIOS WE PIEUPSIOS - ,0x9A78 ,0xC263 //HANGUL SYLLABLE SIOS WE SIOS - ,0x9A79 ,0xC264 //HANGUL SYLLABLE SIOS WE SSANGSIOS - ,0x9A7A ,0xC266 //HANGUL SYLLABLE SIOS WE CIEUC - ,0x9A81 ,0xC267 //HANGUL SYLLABLE SIOS WE CHIEUCH - ,0x9A82 ,0xC268 //HANGUL SYLLABLE SIOS WE KHIEUKH - ,0x9A83 ,0xC269 //HANGUL SYLLABLE SIOS WE THIEUTH - ,0x9A84 ,0xC26A //HANGUL SYLLABLE SIOS WE PHIEUPH - ,0x9A85 ,0xC26B //HANGUL SYLLABLE SIOS WE HIEUH - ,0x9A86 ,0xC26E //HANGUL SYLLABLE SIOS WI SSANGKIYEOK - ,0x9A87 ,0xC26F //HANGUL SYLLABLE SIOS WI KIYEOKSIOS - ,0x9A88 ,0xC271 //HANGUL SYLLABLE SIOS WI NIEUNCIEUC - ,0x9A89 ,0xC272 //HANGUL SYLLABLE SIOS WI NIEUNHIEUH - ,0x9A8A ,0xC273 //HANGUL SYLLABLE SIOS WI TIKEUT - ,0x9A8B ,0xC275 //HANGUL SYLLABLE SIOS WI RIEULKIYEOK - ,0x9A8C ,0xC276 //HANGUL SYLLABLE SIOS WI RIEULMIEUM - ,0x9A8D ,0xC277 //HANGUL SYLLABLE SIOS WI RIEULPIEUP - ,0x9A8E ,0xC278 //HANGUL SYLLABLE SIOS WI RIEULSIOS - ,0x9A8F ,0xC279 //HANGUL SYLLABLE SIOS WI RIEULTHIEUTH - ,0x9A90 ,0xC27A //HANGUL SYLLABLE SIOS WI RIEULPHIEUPH - ,0x9A91 ,0xC27B //HANGUL SYLLABLE SIOS WI RIEULHIEUH - ,0x9A92 ,0xC27E //HANGUL SYLLABLE SIOS WI PIEUPSIOS - ,0x9A93 ,0xC280 //HANGUL SYLLABLE SIOS WI SSANGSIOS - ,0x9A94 ,0xC282 //HANGUL SYLLABLE SIOS WI CIEUC - ,0x9A95 ,0xC283 //HANGUL SYLLABLE SIOS WI CHIEUCH - ,0x9A96 ,0xC284 //HANGUL SYLLABLE SIOS WI KHIEUKH - ,0x9A97 ,0xC285 //HANGUL SYLLABLE SIOS WI THIEUTH - ,0x9A98 ,0xC286 //HANGUL SYLLABLE SIOS WI PHIEUPH - ,0x9A99 ,0xC287 //HANGUL SYLLABLE SIOS WI HIEUH - ,0x9A9A ,0xC28A //HANGUL SYLLABLE SIOS YU SSANGKIYEOK - ,0x9A9B ,0xC28B //HANGUL SYLLABLE SIOS YU KIYEOKSIOS - ,0x9A9C ,0xC28C //HANGUL SYLLABLE SIOS YU NIEUN - ,0x9A9D ,0xC28D //HANGUL SYLLABLE SIOS YU NIEUNCIEUC - ,0x9A9E ,0xC28E //HANGUL SYLLABLE SIOS YU NIEUNHIEUH - ,0x9A9F ,0xC28F //HANGUL SYLLABLE SIOS YU TIKEUT - ,0x9AA0 ,0xC291 //HANGUL SYLLABLE SIOS YU RIEULKIYEOK - ,0x9AA1 ,0xC292 //HANGUL SYLLABLE SIOS YU RIEULMIEUM - ,0x9AA2 ,0xC293 //HANGUL SYLLABLE SIOS YU RIEULPIEUP - ,0x9AA3 ,0xC294 //HANGUL SYLLABLE SIOS YU RIEULSIOS - ,0x9AA4 ,0xC295 //HANGUL SYLLABLE SIOS YU RIEULTHIEUTH - ,0x9AA5 ,0xC296 //HANGUL SYLLABLE SIOS YU RIEULPHIEUPH - ,0x9AA6 ,0xC297 //HANGUL SYLLABLE SIOS YU RIEULHIEUH - ,0x9AA7 ,0xC299 //HANGUL SYLLABLE SIOS YU PIEUP - ,0x9AA8 ,0xC29A //HANGUL SYLLABLE SIOS YU PIEUPSIOS - ,0x9AA9 ,0xC29C //HANGUL SYLLABLE SIOS YU SSANGSIOS - ,0x9AAA ,0xC29E //HANGUL SYLLABLE SIOS YU CIEUC - ,0x9AAB ,0xC29F //HANGUL SYLLABLE SIOS YU CHIEUCH - ,0x9AAC ,0xC2A0 //HANGUL SYLLABLE SIOS YU KHIEUKH - ,0x9AAD ,0xC2A1 //HANGUL SYLLABLE SIOS YU THIEUTH - ,0x9AAE ,0xC2A2 //HANGUL SYLLABLE SIOS YU PHIEUPH - ,0x9AAF ,0xC2A3 //HANGUL SYLLABLE SIOS YU HIEUH - ,0x9AB0 ,0xC2A6 //HANGUL SYLLABLE SIOS EU SSANGKIYEOK - ,0x9AB1 ,0xC2A7 //HANGUL SYLLABLE SIOS EU KIYEOKSIOS - ,0x9AB2 ,0xC2A9 //HANGUL SYLLABLE SIOS EU NIEUNCIEUC - ,0x9AB3 ,0xC2AA //HANGUL SYLLABLE SIOS EU NIEUNHIEUH - ,0x9AB4 ,0xC2AB //HANGUL SYLLABLE SIOS EU TIKEUT - ,0x9AB5 ,0xC2AE //HANGUL SYLLABLE SIOS EU RIEULMIEUM - ,0x9AB6 ,0xC2AF //HANGUL SYLLABLE SIOS EU RIEULPIEUP - ,0x9AB7 ,0xC2B0 //HANGUL SYLLABLE SIOS EU RIEULSIOS - ,0x9AB8 ,0xC2B1 //HANGUL SYLLABLE SIOS EU RIEULTHIEUTH - ,0x9AB9 ,0xC2B2 //HANGUL SYLLABLE SIOS EU RIEULPHIEUPH - ,0x9ABA ,0xC2B3 //HANGUL SYLLABLE SIOS EU RIEULHIEUH - ,0x9ABB ,0xC2B6 //HANGUL SYLLABLE SIOS EU PIEUPSIOS - ,0x9ABC ,0xC2B8 //HANGUL SYLLABLE SIOS EU SSANGSIOS - ,0x9ABD ,0xC2BA //HANGUL SYLLABLE SIOS EU CIEUC - ,0x9ABE ,0xC2BB //HANGUL SYLLABLE SIOS EU CHIEUCH - ,0x9ABF ,0xC2BC //HANGUL SYLLABLE SIOS EU KHIEUKH - ,0x9AC0 ,0xC2BD //HANGUL SYLLABLE SIOS EU THIEUTH - ,0x9AC1 ,0xC2BE //HANGUL SYLLABLE SIOS EU PHIEUPH - ,0x9AC2 ,0xC2BF //HANGUL SYLLABLE SIOS EU HIEUH - ,0x9AC3 ,0xC2C0 //HANGUL SYLLABLE SIOS YI - ,0x9AC4 ,0xC2C1 //HANGUL SYLLABLE SIOS YI KIYEOK - ,0x9AC5 ,0xC2C2 //HANGUL SYLLABLE SIOS YI SSANGKIYEOK - ,0x9AC6 ,0xC2C3 //HANGUL SYLLABLE SIOS YI KIYEOKSIOS - ,0x9AC7 ,0xC2C4 //HANGUL SYLLABLE SIOS YI NIEUN - ,0x9AC8 ,0xC2C5 //HANGUL SYLLABLE SIOS YI NIEUNCIEUC - ,0x9AC9 ,0xC2C6 //HANGUL SYLLABLE SIOS YI NIEUNHIEUH - ,0x9ACA ,0xC2C7 //HANGUL SYLLABLE SIOS YI TIKEUT - ,0x9ACB ,0xC2C8 //HANGUL SYLLABLE SIOS YI RIEUL - ,0x9ACC ,0xC2C9 //HANGUL SYLLABLE SIOS YI RIEULKIYEOK - ,0x9ACD ,0xC2CA //HANGUL SYLLABLE SIOS YI RIEULMIEUM - ,0x9ACE ,0xC2CB //HANGUL SYLLABLE SIOS YI RIEULPIEUP - ,0x9ACF ,0xC2CC //HANGUL SYLLABLE SIOS YI RIEULSIOS - ,0x9AD0 ,0xC2CD //HANGUL SYLLABLE SIOS YI RIEULTHIEUTH - ,0x9AD1 ,0xC2CE //HANGUL SYLLABLE SIOS YI RIEULPHIEUPH - ,0x9AD2 ,0xC2CF //HANGUL SYLLABLE SIOS YI RIEULHIEUH - ,0x9AD3 ,0xC2D0 //HANGUL SYLLABLE SIOS YI MIEUM - ,0x9AD4 ,0xC2D1 //HANGUL SYLLABLE SIOS YI PIEUP - ,0x9AD5 ,0xC2D2 //HANGUL SYLLABLE SIOS YI PIEUPSIOS - ,0x9AD6 ,0xC2D3 //HANGUL SYLLABLE SIOS YI SIOS - ,0x9AD7 ,0xC2D4 //HANGUL SYLLABLE SIOS YI SSANGSIOS - ,0x9AD8 ,0xC2D5 //HANGUL SYLLABLE SIOS YI IEUNG - ,0x9AD9 ,0xC2D6 //HANGUL SYLLABLE SIOS YI CIEUC - ,0x9ADA ,0xC2D7 //HANGUL SYLLABLE SIOS YI CHIEUCH - ,0x9ADB ,0xC2D8 //HANGUL SYLLABLE SIOS YI KHIEUKH - ,0x9ADC ,0xC2D9 //HANGUL SYLLABLE SIOS YI THIEUTH - ,0x9ADD ,0xC2DA //HANGUL SYLLABLE SIOS YI PHIEUPH - ,0x9ADE ,0xC2DB //HANGUL SYLLABLE SIOS YI HIEUH - ,0x9ADF ,0xC2DE //HANGUL SYLLABLE SIOS I SSANGKIYEOK - ,0x9AE0 ,0xC2DF //HANGUL SYLLABLE SIOS I KIYEOKSIOS - ,0x9AE1 ,0xC2E1 //HANGUL SYLLABLE SIOS I NIEUNCIEUC - ,0x9AE2 ,0xC2E2 //HANGUL SYLLABLE SIOS I NIEUNHIEUH - ,0x9AE3 ,0xC2E5 //HANGUL SYLLABLE SIOS I RIEULKIYEOK - ,0x9AE4 ,0xC2E6 //HANGUL SYLLABLE SIOS I RIEULMIEUM - ,0x9AE5 ,0xC2E7 //HANGUL SYLLABLE SIOS I RIEULPIEUP - ,0x9AE6 ,0xC2E8 //HANGUL SYLLABLE SIOS I RIEULSIOS - ,0x9AE7 ,0xC2E9 //HANGUL SYLLABLE SIOS I RIEULTHIEUTH - ,0x9AE8 ,0xC2EA //HANGUL SYLLABLE SIOS I RIEULPHIEUPH - ,0x9AE9 ,0xC2EE //HANGUL SYLLABLE SIOS I PIEUPSIOS - ,0x9AEA ,0xC2F0 //HANGUL SYLLABLE SIOS I SSANGSIOS - ,0x9AEB ,0xC2F2 //HANGUL SYLLABLE SIOS I CIEUC - ,0x9AEC ,0xC2F3 //HANGUL SYLLABLE SIOS I CHIEUCH - ,0x9AED ,0xC2F4 //HANGUL SYLLABLE SIOS I KHIEUKH - ,0x9AEE ,0xC2F5 //HANGUL SYLLABLE SIOS I THIEUTH - ,0x9AEF ,0xC2F7 //HANGUL SYLLABLE SIOS I HIEUH - ,0x9AF0 ,0xC2FA //HANGUL SYLLABLE SSANGSIOS A SSANGKIYEOK - ,0x9AF1 ,0xC2FD //HANGUL SYLLABLE SSANGSIOS A NIEUNCIEUC - ,0x9AF2 ,0xC2FE //HANGUL SYLLABLE SSANGSIOS A NIEUNHIEUH - ,0x9AF3 ,0xC2FF //HANGUL SYLLABLE SSANGSIOS A TIKEUT - ,0x9AF4 ,0xC301 //HANGUL SYLLABLE SSANGSIOS A RIEULKIYEOK - ,0x9AF5 ,0xC302 //HANGUL SYLLABLE SSANGSIOS A RIEULMIEUM - ,0x9AF6 ,0xC303 //HANGUL SYLLABLE SSANGSIOS A RIEULPIEUP - ,0x9AF7 ,0xC304 //HANGUL SYLLABLE SSANGSIOS A RIEULSIOS - ,0x9AF8 ,0xC305 //HANGUL SYLLABLE SSANGSIOS A RIEULTHIEUTH - ,0x9AF9 ,0xC306 //HANGUL SYLLABLE SSANGSIOS A RIEULPHIEUPH - ,0x9AFA ,0xC307 //HANGUL SYLLABLE SSANGSIOS A RIEULHIEUH - ,0x9AFB ,0xC30A //HANGUL SYLLABLE SSANGSIOS A PIEUPSIOS - ,0x9AFC ,0xC30B //HANGUL SYLLABLE SSANGSIOS A SIOS - ,0x9AFD ,0xC30E //HANGUL SYLLABLE SSANGSIOS A CIEUC - ,0x9AFE ,0xC30F //HANGUL SYLLABLE SSANGSIOS A CHIEUCH - ,0x9B41 ,0xC310 //HANGUL SYLLABLE SSANGSIOS A KHIEUKH - ,0x9B42 ,0xC311 //HANGUL SYLLABLE SSANGSIOS A THIEUTH - ,0x9B43 ,0xC312 //HANGUL SYLLABLE SSANGSIOS A PHIEUPH - ,0x9B44 ,0xC316 //HANGUL SYLLABLE SSANGSIOS AE SSANGKIYEOK - ,0x9B45 ,0xC317 //HANGUL SYLLABLE SSANGSIOS AE KIYEOKSIOS - ,0x9B46 ,0xC319 //HANGUL SYLLABLE SSANGSIOS AE NIEUNCIEUC - ,0x9B47 ,0xC31A //HANGUL SYLLABLE SSANGSIOS AE NIEUNHIEUH - ,0x9B48 ,0xC31B //HANGUL SYLLABLE SSANGSIOS AE TIKEUT - ,0x9B49 ,0xC31D //HANGUL SYLLABLE SSANGSIOS AE RIEULKIYEOK - ,0x9B4A ,0xC31E //HANGUL SYLLABLE SSANGSIOS AE RIEULMIEUM - ,0x9B4B ,0xC31F //HANGUL SYLLABLE SSANGSIOS AE RIEULPIEUP - ,0x9B4C ,0xC320 //HANGUL SYLLABLE SSANGSIOS AE RIEULSIOS - ,0x9B4D ,0xC321 //HANGUL SYLLABLE SSANGSIOS AE RIEULTHIEUTH - ,0x9B4E ,0xC322 //HANGUL SYLLABLE SSANGSIOS AE RIEULPHIEUPH - ,0x9B4F ,0xC323 //HANGUL SYLLABLE SSANGSIOS AE RIEULHIEUH - ,0x9B50 ,0xC326 //HANGUL SYLLABLE SSANGSIOS AE PIEUPSIOS - ,0x9B51 ,0xC327 //HANGUL SYLLABLE SSANGSIOS AE SIOS - ,0x9B52 ,0xC32A //HANGUL SYLLABLE SSANGSIOS AE CIEUC - ,0x9B53 ,0xC32B //HANGUL SYLLABLE SSANGSIOS AE CHIEUCH - ,0x9B54 ,0xC32C //HANGUL SYLLABLE SSANGSIOS AE KHIEUKH - ,0x9B55 ,0xC32D //HANGUL SYLLABLE SSANGSIOS AE THIEUTH - ,0x9B56 ,0xC32E //HANGUL SYLLABLE SSANGSIOS AE PHIEUPH - ,0x9B57 ,0xC32F //HANGUL SYLLABLE SSANGSIOS AE HIEUH - ,0x9B58 ,0xC330 //HANGUL SYLLABLE SSANGSIOS YA - ,0x9B59 ,0xC331 //HANGUL SYLLABLE SSANGSIOS YA KIYEOK - ,0x9B5A ,0xC332 //HANGUL SYLLABLE SSANGSIOS YA SSANGKIYEOK - ,0x9B61 ,0xC333 //HANGUL SYLLABLE SSANGSIOS YA KIYEOKSIOS - ,0x9B62 ,0xC334 //HANGUL SYLLABLE SSANGSIOS YA NIEUN - ,0x9B63 ,0xC335 //HANGUL SYLLABLE SSANGSIOS YA NIEUNCIEUC - ,0x9B64 ,0xC336 //HANGUL SYLLABLE SSANGSIOS YA NIEUNHIEUH - ,0x9B65 ,0xC337 //HANGUL SYLLABLE SSANGSIOS YA TIKEUT - ,0x9B66 ,0xC338 //HANGUL SYLLABLE SSANGSIOS YA RIEUL - ,0x9B67 ,0xC339 //HANGUL SYLLABLE SSANGSIOS YA RIEULKIYEOK - ,0x9B68 ,0xC33A //HANGUL SYLLABLE SSANGSIOS YA RIEULMIEUM - ,0x9B69 ,0xC33B //HANGUL SYLLABLE SSANGSIOS YA RIEULPIEUP - ,0x9B6A ,0xC33C //HANGUL SYLLABLE SSANGSIOS YA RIEULSIOS - ,0x9B6B ,0xC33D //HANGUL SYLLABLE SSANGSIOS YA RIEULTHIEUTH - ,0x9B6C ,0xC33E //HANGUL SYLLABLE SSANGSIOS YA RIEULPHIEUPH - ,0x9B6D ,0xC33F //HANGUL SYLLABLE SSANGSIOS YA RIEULHIEUH - ,0x9B6E ,0xC340 //HANGUL SYLLABLE SSANGSIOS YA MIEUM - ,0x9B6F ,0xC341 //HANGUL SYLLABLE SSANGSIOS YA PIEUP - ,0x9B70 ,0xC342 //HANGUL SYLLABLE SSANGSIOS YA PIEUPSIOS - ,0x9B71 ,0xC343 //HANGUL SYLLABLE SSANGSIOS YA SIOS - ,0x9B72 ,0xC344 //HANGUL SYLLABLE SSANGSIOS YA SSANGSIOS - ,0x9B73 ,0xC346 //HANGUL SYLLABLE SSANGSIOS YA CIEUC - ,0x9B74 ,0xC347 //HANGUL SYLLABLE SSANGSIOS YA CHIEUCH - ,0x9B75 ,0xC348 //HANGUL SYLLABLE SSANGSIOS YA KHIEUKH - ,0x9B76 ,0xC349 //HANGUL SYLLABLE SSANGSIOS YA THIEUTH - ,0x9B77 ,0xC34A //HANGUL SYLLABLE SSANGSIOS YA PHIEUPH - ,0x9B78 ,0xC34B //HANGUL SYLLABLE SSANGSIOS YA HIEUH - ,0x9B79 ,0xC34C //HANGUL SYLLABLE SSANGSIOS YAE - ,0x9B7A ,0xC34D //HANGUL SYLLABLE SSANGSIOS YAE KIYEOK - ,0x9B81 ,0xC34E //HANGUL SYLLABLE SSANGSIOS YAE SSANGKIYEOK - ,0x9B82 ,0xC34F //HANGUL SYLLABLE SSANGSIOS YAE KIYEOKSIOS - ,0x9B83 ,0xC350 //HANGUL SYLLABLE SSANGSIOS YAE NIEUN - ,0x9B84 ,0xC351 //HANGUL SYLLABLE SSANGSIOS YAE NIEUNCIEUC - ,0x9B85 ,0xC352 //HANGUL SYLLABLE SSANGSIOS YAE NIEUNHIEUH - ,0x9B86 ,0xC353 //HANGUL SYLLABLE SSANGSIOS YAE TIKEUT - ,0x9B87 ,0xC354 //HANGUL SYLLABLE SSANGSIOS YAE RIEUL - ,0x9B88 ,0xC355 //HANGUL SYLLABLE SSANGSIOS YAE RIEULKIYEOK - ,0x9B89 ,0xC356 //HANGUL SYLLABLE SSANGSIOS YAE RIEULMIEUM - ,0x9B8A ,0xC357 //HANGUL SYLLABLE SSANGSIOS YAE RIEULPIEUP - ,0x9B8B ,0xC358 //HANGUL SYLLABLE SSANGSIOS YAE RIEULSIOS - ,0x9B8C ,0xC359 //HANGUL SYLLABLE SSANGSIOS YAE RIEULTHIEUTH - ,0x9B8D ,0xC35A //HANGUL SYLLABLE SSANGSIOS YAE RIEULPHIEUPH - ,0x9B8E ,0xC35B //HANGUL SYLLABLE SSANGSIOS YAE RIEULHIEUH - ,0x9B8F ,0xC35C //HANGUL SYLLABLE SSANGSIOS YAE MIEUM - ,0x9B90 ,0xC35D //HANGUL SYLLABLE SSANGSIOS YAE PIEUP - ,0x9B91 ,0xC35E //HANGUL SYLLABLE SSANGSIOS YAE PIEUPSIOS - ,0x9B92 ,0xC35F //HANGUL SYLLABLE SSANGSIOS YAE SIOS - ,0x9B93 ,0xC360 //HANGUL SYLLABLE SSANGSIOS YAE SSANGSIOS - ,0x9B94 ,0xC361 //HANGUL SYLLABLE SSANGSIOS YAE IEUNG - ,0x9B95 ,0xC362 //HANGUL SYLLABLE SSANGSIOS YAE CIEUC - ,0x9B96 ,0xC363 //HANGUL SYLLABLE SSANGSIOS YAE CHIEUCH - ,0x9B97 ,0xC364 //HANGUL SYLLABLE SSANGSIOS YAE KHIEUKH - ,0x9B98 ,0xC365 //HANGUL SYLLABLE SSANGSIOS YAE THIEUTH - ,0x9B99 ,0xC366 //HANGUL SYLLABLE SSANGSIOS YAE PHIEUPH - ,0x9B9A ,0xC367 //HANGUL SYLLABLE SSANGSIOS YAE HIEUH - ,0x9B9B ,0xC36A //HANGUL SYLLABLE SSANGSIOS EO SSANGKIYEOK - ,0x9B9C ,0xC36B //HANGUL SYLLABLE SSANGSIOS EO KIYEOKSIOS - ,0x9B9D ,0xC36D //HANGUL SYLLABLE SSANGSIOS EO NIEUNCIEUC - ,0x9B9E ,0xC36E //HANGUL SYLLABLE SSANGSIOS EO NIEUNHIEUH - ,0x9B9F ,0xC36F //HANGUL SYLLABLE SSANGSIOS EO TIKEUT - ,0x9BA0 ,0xC371 //HANGUL SYLLABLE SSANGSIOS EO RIEULKIYEOK - ,0x9BA1 ,0xC373 //HANGUL SYLLABLE SSANGSIOS EO RIEULPIEUP - ,0x9BA2 ,0xC374 //HANGUL SYLLABLE SSANGSIOS EO RIEULSIOS - ,0x9BA3 ,0xC375 //HANGUL SYLLABLE SSANGSIOS EO RIEULTHIEUTH - ,0x9BA4 ,0xC376 //HANGUL SYLLABLE SSANGSIOS EO RIEULPHIEUPH - ,0x9BA5 ,0xC377 //HANGUL SYLLABLE SSANGSIOS EO RIEULHIEUH - ,0x9BA6 ,0xC37A //HANGUL SYLLABLE SSANGSIOS EO PIEUPSIOS - ,0x9BA7 ,0xC37B //HANGUL SYLLABLE SSANGSIOS EO SIOS - ,0x9BA8 ,0xC37E //HANGUL SYLLABLE SSANGSIOS EO CIEUC - ,0x9BA9 ,0xC37F //HANGUL SYLLABLE SSANGSIOS EO CHIEUCH - ,0x9BAA ,0xC380 //HANGUL SYLLABLE SSANGSIOS EO KHIEUKH - ,0x9BAB ,0xC381 //HANGUL SYLLABLE SSANGSIOS EO THIEUTH - ,0x9BAC ,0xC382 //HANGUL SYLLABLE SSANGSIOS EO PHIEUPH - ,0x9BAD ,0xC383 //HANGUL SYLLABLE SSANGSIOS EO HIEUH - ,0x9BAE ,0xC385 //HANGUL SYLLABLE SSANGSIOS E KIYEOK - ,0x9BAF ,0xC386 //HANGUL SYLLABLE SSANGSIOS E SSANGKIYEOK - ,0x9BB0 ,0xC387 //HANGUL SYLLABLE SSANGSIOS E KIYEOKSIOS - ,0x9BB1 ,0xC389 //HANGUL SYLLABLE SSANGSIOS E NIEUNCIEUC - ,0x9BB2 ,0xC38A //HANGUL SYLLABLE SSANGSIOS E NIEUNHIEUH - ,0x9BB3 ,0xC38B //HANGUL SYLLABLE SSANGSIOS E TIKEUT - ,0x9BB4 ,0xC38D //HANGUL SYLLABLE SSANGSIOS E RIEULKIYEOK - ,0x9BB5 ,0xC38E //HANGUL SYLLABLE SSANGSIOS E RIEULMIEUM - ,0x9BB6 ,0xC38F //HANGUL SYLLABLE SSANGSIOS E RIEULPIEUP - ,0x9BB7 ,0xC390 //HANGUL SYLLABLE SSANGSIOS E RIEULSIOS - ,0x9BB8 ,0xC391 //HANGUL SYLLABLE SSANGSIOS E RIEULTHIEUTH - ,0x9BB9 ,0xC392 //HANGUL SYLLABLE SSANGSIOS E RIEULPHIEUPH - ,0x9BBA ,0xC393 //HANGUL SYLLABLE SSANGSIOS E RIEULHIEUH - ,0x9BBB ,0xC394 //HANGUL SYLLABLE SSANGSIOS E MIEUM - ,0x9BBC ,0xC395 //HANGUL SYLLABLE SSANGSIOS E PIEUP - ,0x9BBD ,0xC396 //HANGUL SYLLABLE SSANGSIOS E PIEUPSIOS - ,0x9BBE ,0xC397 //HANGUL SYLLABLE SSANGSIOS E SIOS - ,0x9BBF ,0xC398 //HANGUL SYLLABLE SSANGSIOS E SSANGSIOS - ,0x9BC0 ,0xC399 //HANGUL SYLLABLE SSANGSIOS E IEUNG - ,0x9BC1 ,0xC39A //HANGUL SYLLABLE SSANGSIOS E CIEUC - ,0x9BC2 ,0xC39B //HANGUL SYLLABLE SSANGSIOS E CHIEUCH - ,0x9BC3 ,0xC39C //HANGUL SYLLABLE SSANGSIOS E KHIEUKH - ,0x9BC4 ,0xC39D //HANGUL SYLLABLE SSANGSIOS E THIEUTH - ,0x9BC5 ,0xC39E //HANGUL SYLLABLE SSANGSIOS E PHIEUPH - ,0x9BC6 ,0xC39F //HANGUL SYLLABLE SSANGSIOS E HIEUH - ,0x9BC7 ,0xC3A0 //HANGUL SYLLABLE SSANGSIOS YEO - ,0x9BC8 ,0xC3A1 //HANGUL SYLLABLE SSANGSIOS YEO KIYEOK - ,0x9BC9 ,0xC3A2 //HANGUL SYLLABLE SSANGSIOS YEO SSANGKIYEOK - ,0x9BCA ,0xC3A3 //HANGUL SYLLABLE SSANGSIOS YEO KIYEOKSIOS - ,0x9BCB ,0xC3A4 //HANGUL SYLLABLE SSANGSIOS YEO NIEUN - ,0x9BCC ,0xC3A5 //HANGUL SYLLABLE SSANGSIOS YEO NIEUNCIEUC - ,0x9BCD ,0xC3A6 //HANGUL SYLLABLE SSANGSIOS YEO NIEUNHIEUH - ,0x9BCE ,0xC3A7 //HANGUL SYLLABLE SSANGSIOS YEO TIKEUT - ,0x9BCF ,0xC3A8 //HANGUL SYLLABLE SSANGSIOS YEO RIEUL - ,0x9BD0 ,0xC3A9 //HANGUL SYLLABLE SSANGSIOS YEO RIEULKIYEOK - ,0x9BD1 ,0xC3AA //HANGUL SYLLABLE SSANGSIOS YEO RIEULMIEUM - ,0x9BD2 ,0xC3AB //HANGUL SYLLABLE SSANGSIOS YEO RIEULPIEUP - ,0x9BD3 ,0xC3AC //HANGUL SYLLABLE SSANGSIOS YEO RIEULSIOS - ,0x9BD4 ,0xC3AD //HANGUL SYLLABLE SSANGSIOS YEO RIEULTHIEUTH - ,0x9BD5 ,0xC3AE //HANGUL SYLLABLE SSANGSIOS YEO RIEULPHIEUPH - ,0x9BD6 ,0xC3AF //HANGUL SYLLABLE SSANGSIOS YEO RIEULHIEUH - ,0x9BD7 ,0xC3B0 //HANGUL SYLLABLE SSANGSIOS YEO MIEUM - ,0x9BD8 ,0xC3B1 //HANGUL SYLLABLE SSANGSIOS YEO PIEUP - ,0x9BD9 ,0xC3B2 //HANGUL SYLLABLE SSANGSIOS YEO PIEUPSIOS - ,0x9BDA ,0xC3B3 //HANGUL SYLLABLE SSANGSIOS YEO SIOS - ,0x9BDB ,0xC3B4 //HANGUL SYLLABLE SSANGSIOS YEO SSANGSIOS - ,0x9BDC ,0xC3B5 //HANGUL SYLLABLE SSANGSIOS YEO IEUNG - ,0x9BDD ,0xC3B6 //HANGUL SYLLABLE SSANGSIOS YEO CIEUC - ,0x9BDE ,0xC3B7 //HANGUL SYLLABLE SSANGSIOS YEO CHIEUCH - ,0x9BDF ,0xC3B8 //HANGUL SYLLABLE SSANGSIOS YEO KHIEUKH - ,0x9BE0 ,0xC3B9 //HANGUL SYLLABLE SSANGSIOS YEO THIEUTH - ,0x9BE1 ,0xC3BA //HANGUL SYLLABLE SSANGSIOS YEO PHIEUPH - ,0x9BE2 ,0xC3BB //HANGUL SYLLABLE SSANGSIOS YEO HIEUH - ,0x9BE3 ,0xC3BC //HANGUL SYLLABLE SSANGSIOS YE - ,0x9BE4 ,0xC3BD //HANGUL SYLLABLE SSANGSIOS YE KIYEOK - ,0x9BE5 ,0xC3BE //HANGUL SYLLABLE SSANGSIOS YE SSANGKIYEOK - ,0x9BE6 ,0xC3BF //HANGUL SYLLABLE SSANGSIOS YE KIYEOKSIOS - ,0x9BE7 ,0xC3C1 //HANGUL SYLLABLE SSANGSIOS YE NIEUNCIEUC - ,0x9BE8 ,0xC3C2 //HANGUL SYLLABLE SSANGSIOS YE NIEUNHIEUH - ,0x9BE9 ,0xC3C3 //HANGUL SYLLABLE SSANGSIOS YE TIKEUT - ,0x9BEA ,0xC3C4 //HANGUL SYLLABLE SSANGSIOS YE RIEUL - ,0x9BEB ,0xC3C5 //HANGUL SYLLABLE SSANGSIOS YE RIEULKIYEOK - ,0x9BEC ,0xC3C6 //HANGUL SYLLABLE SSANGSIOS YE RIEULMIEUM - ,0x9BED ,0xC3C7 //HANGUL SYLLABLE SSANGSIOS YE RIEULPIEUP - ,0x9BEE ,0xC3C8 //HANGUL SYLLABLE SSANGSIOS YE RIEULSIOS - ,0x9BEF ,0xC3C9 //HANGUL SYLLABLE SSANGSIOS YE RIEULTHIEUTH - ,0x9BF0 ,0xC3CA //HANGUL SYLLABLE SSANGSIOS YE RIEULPHIEUPH - ,0x9BF1 ,0xC3CB //HANGUL SYLLABLE SSANGSIOS YE RIEULHIEUH - ,0x9BF2 ,0xC3CC //HANGUL SYLLABLE SSANGSIOS YE MIEUM - ,0x9BF3 ,0xC3CD //HANGUL SYLLABLE SSANGSIOS YE PIEUP - ,0x9BF4 ,0xC3CE //HANGUL SYLLABLE SSANGSIOS YE PIEUPSIOS - ,0x9BF5 ,0xC3CF //HANGUL SYLLABLE SSANGSIOS YE SIOS - ,0x9BF6 ,0xC3D0 //HANGUL SYLLABLE SSANGSIOS YE SSANGSIOS - ,0x9BF7 ,0xC3D1 //HANGUL SYLLABLE SSANGSIOS YE IEUNG - ,0x9BF8 ,0xC3D2 //HANGUL SYLLABLE SSANGSIOS YE CIEUC - ,0x9BF9 ,0xC3D3 //HANGUL SYLLABLE SSANGSIOS YE CHIEUCH - ,0x9BFA ,0xC3D4 //HANGUL SYLLABLE SSANGSIOS YE KHIEUKH - ,0x9BFB ,0xC3D5 //HANGUL SYLLABLE SSANGSIOS YE THIEUTH - ,0x9BFC ,0xC3D6 //HANGUL SYLLABLE SSANGSIOS YE PHIEUPH - ,0x9BFD ,0xC3D7 //HANGUL SYLLABLE SSANGSIOS YE HIEUH - ,0x9BFE ,0xC3DA //HANGUL SYLLABLE SSANGSIOS O SSANGKIYEOK - ,0x9C41 ,0xC3DB //HANGUL SYLLABLE SSANGSIOS O KIYEOKSIOS - ,0x9C42 ,0xC3DD //HANGUL SYLLABLE SSANGSIOS O NIEUNCIEUC - ,0x9C43 ,0xC3DE //HANGUL SYLLABLE SSANGSIOS O NIEUNHIEUH - ,0x9C44 ,0xC3E1 //HANGUL SYLLABLE SSANGSIOS O RIEULKIYEOK - ,0x9C45 ,0xC3E3 //HANGUL SYLLABLE SSANGSIOS O RIEULPIEUP - ,0x9C46 ,0xC3E4 //HANGUL SYLLABLE SSANGSIOS O RIEULSIOS - ,0x9C47 ,0xC3E5 //HANGUL SYLLABLE SSANGSIOS O RIEULTHIEUTH - ,0x9C48 ,0xC3E6 //HANGUL SYLLABLE SSANGSIOS O RIEULPHIEUPH - ,0x9C49 ,0xC3E7 //HANGUL SYLLABLE SSANGSIOS O RIEULHIEUH - ,0x9C4A ,0xC3EA //HANGUL SYLLABLE SSANGSIOS O PIEUPSIOS - ,0x9C4B ,0xC3EB //HANGUL SYLLABLE SSANGSIOS O SIOS - ,0x9C4C ,0xC3EC //HANGUL SYLLABLE SSANGSIOS O SSANGSIOS - ,0x9C4D ,0xC3EE //HANGUL SYLLABLE SSANGSIOS O CIEUC - ,0x9C4E ,0xC3EF //HANGUL SYLLABLE SSANGSIOS O CHIEUCH - ,0x9C4F ,0xC3F0 //HANGUL SYLLABLE SSANGSIOS O KHIEUKH - ,0x9C50 ,0xC3F1 //HANGUL SYLLABLE SSANGSIOS O THIEUTH - ,0x9C51 ,0xC3F2 //HANGUL SYLLABLE SSANGSIOS O PHIEUPH - ,0x9C52 ,0xC3F3 //HANGUL SYLLABLE SSANGSIOS O HIEUH - ,0x9C53 ,0xC3F6 //HANGUL SYLLABLE SSANGSIOS WA SSANGKIYEOK - ,0x9C54 ,0xC3F7 //HANGUL SYLLABLE SSANGSIOS WA KIYEOKSIOS - ,0x9C55 ,0xC3F9 //HANGUL SYLLABLE SSANGSIOS WA NIEUNCIEUC - ,0x9C56 ,0xC3FA //HANGUL SYLLABLE SSANGSIOS WA NIEUNHIEUH - ,0x9C57 ,0xC3FB //HANGUL SYLLABLE SSANGSIOS WA TIKEUT - ,0x9C58 ,0xC3FC //HANGUL SYLLABLE SSANGSIOS WA RIEUL - ,0x9C59 ,0xC3FD //HANGUL SYLLABLE SSANGSIOS WA RIEULKIYEOK - ,0x9C5A ,0xC3FE //HANGUL SYLLABLE SSANGSIOS WA RIEULMIEUM - ,0x9C61 ,0xC3FF //HANGUL SYLLABLE SSANGSIOS WA RIEULPIEUP - ,0x9C62 ,0xC400 //HANGUL SYLLABLE SSANGSIOS WA RIEULSIOS - ,0x9C63 ,0xC401 //HANGUL SYLLABLE SSANGSIOS WA RIEULTHIEUTH - ,0x9C64 ,0xC402 //HANGUL SYLLABLE SSANGSIOS WA RIEULPHIEUPH - ,0x9C65 ,0xC403 //HANGUL SYLLABLE SSANGSIOS WA RIEULHIEUH - ,0x9C66 ,0xC404 //HANGUL SYLLABLE SSANGSIOS WA MIEUM - ,0x9C67 ,0xC405 //HANGUL SYLLABLE SSANGSIOS WA PIEUP - ,0x9C68 ,0xC406 //HANGUL SYLLABLE SSANGSIOS WA PIEUPSIOS - ,0x9C69 ,0xC407 //HANGUL SYLLABLE SSANGSIOS WA SIOS - ,0x9C6A ,0xC409 //HANGUL SYLLABLE SSANGSIOS WA IEUNG - ,0x9C6B ,0xC40A //HANGUL SYLLABLE SSANGSIOS WA CIEUC - ,0x9C6C ,0xC40B //HANGUL SYLLABLE SSANGSIOS WA CHIEUCH - ,0x9C6D ,0xC40C //HANGUL SYLLABLE SSANGSIOS WA KHIEUKH - ,0x9C6E ,0xC40D //HANGUL SYLLABLE SSANGSIOS WA THIEUTH - ,0x9C6F ,0xC40E //HANGUL SYLLABLE SSANGSIOS WA PHIEUPH - ,0x9C70 ,0xC40F //HANGUL SYLLABLE SSANGSIOS WA HIEUH - ,0x9C71 ,0xC411 //HANGUL SYLLABLE SSANGSIOS WAE KIYEOK - ,0x9C72 ,0xC412 //HANGUL SYLLABLE SSANGSIOS WAE SSANGKIYEOK - ,0x9C73 ,0xC413 //HANGUL SYLLABLE SSANGSIOS WAE KIYEOKSIOS - ,0x9C74 ,0xC414 //HANGUL SYLLABLE SSANGSIOS WAE NIEUN - ,0x9C75 ,0xC415 //HANGUL SYLLABLE SSANGSIOS WAE NIEUNCIEUC - ,0x9C76 ,0xC416 //HANGUL SYLLABLE SSANGSIOS WAE NIEUNHIEUH - ,0x9C77 ,0xC417 //HANGUL SYLLABLE SSANGSIOS WAE TIKEUT - ,0x9C78 ,0xC418 //HANGUL SYLLABLE SSANGSIOS WAE RIEUL - ,0x9C79 ,0xC419 //HANGUL SYLLABLE SSANGSIOS WAE RIEULKIYEOK - ,0x9C7A ,0xC41A //HANGUL SYLLABLE SSANGSIOS WAE RIEULMIEUM - ,0x9C81 ,0xC41B //HANGUL SYLLABLE SSANGSIOS WAE RIEULPIEUP - ,0x9C82 ,0xC41C //HANGUL SYLLABLE SSANGSIOS WAE RIEULSIOS - ,0x9C83 ,0xC41D //HANGUL SYLLABLE SSANGSIOS WAE RIEULTHIEUTH - ,0x9C84 ,0xC41E //HANGUL SYLLABLE SSANGSIOS WAE RIEULPHIEUPH - ,0x9C85 ,0xC41F //HANGUL SYLLABLE SSANGSIOS WAE RIEULHIEUH - ,0x9C86 ,0xC420 //HANGUL SYLLABLE SSANGSIOS WAE MIEUM - ,0x9C87 ,0xC421 //HANGUL SYLLABLE SSANGSIOS WAE PIEUP - ,0x9C88 ,0xC422 //HANGUL SYLLABLE SSANGSIOS WAE PIEUPSIOS - ,0x9C89 ,0xC423 //HANGUL SYLLABLE SSANGSIOS WAE SIOS - ,0x9C8A ,0xC425 //HANGUL SYLLABLE SSANGSIOS WAE IEUNG - ,0x9C8B ,0xC426 //HANGUL SYLLABLE SSANGSIOS WAE CIEUC - ,0x9C8C ,0xC427 //HANGUL SYLLABLE SSANGSIOS WAE CHIEUCH - ,0x9C8D ,0xC428 //HANGUL SYLLABLE SSANGSIOS WAE KHIEUKH - ,0x9C8E ,0xC429 //HANGUL SYLLABLE SSANGSIOS WAE THIEUTH - ,0x9C8F ,0xC42A //HANGUL SYLLABLE SSANGSIOS WAE PHIEUPH - ,0x9C90 ,0xC42B //HANGUL SYLLABLE SSANGSIOS WAE HIEUH - ,0x9C91 ,0xC42D //HANGUL SYLLABLE SSANGSIOS OE KIYEOK - ,0x9C92 ,0xC42E //HANGUL SYLLABLE SSANGSIOS OE SSANGKIYEOK - ,0x9C93 ,0xC42F //HANGUL SYLLABLE SSANGSIOS OE KIYEOKSIOS - ,0x9C94 ,0xC431 //HANGUL SYLLABLE SSANGSIOS OE NIEUNCIEUC - ,0x9C95 ,0xC432 //HANGUL SYLLABLE SSANGSIOS OE NIEUNHIEUH - ,0x9C96 ,0xC433 //HANGUL SYLLABLE SSANGSIOS OE TIKEUT - ,0x9C97 ,0xC435 //HANGUL SYLLABLE SSANGSIOS OE RIEULKIYEOK - ,0x9C98 ,0xC436 //HANGUL SYLLABLE SSANGSIOS OE RIEULMIEUM - ,0x9C99 ,0xC437 //HANGUL SYLLABLE SSANGSIOS OE RIEULPIEUP - ,0x9C9A ,0xC438 //HANGUL SYLLABLE SSANGSIOS OE RIEULSIOS - ,0x9C9B ,0xC439 //HANGUL SYLLABLE SSANGSIOS OE RIEULTHIEUTH - ,0x9C9C ,0xC43A //HANGUL SYLLABLE SSANGSIOS OE RIEULPHIEUPH - ,0x9C9D ,0xC43B //HANGUL SYLLABLE SSANGSIOS OE RIEULHIEUH - ,0x9C9E ,0xC43E //HANGUL SYLLABLE SSANGSIOS OE PIEUPSIOS - ,0x9C9F ,0xC43F //HANGUL SYLLABLE SSANGSIOS OE SIOS - ,0x9CA0 ,0xC440 //HANGUL SYLLABLE SSANGSIOS OE SSANGSIOS - ,0x9CA1 ,0xC441 //HANGUL SYLLABLE SSANGSIOS OE IEUNG - ,0x9CA2 ,0xC442 //HANGUL SYLLABLE SSANGSIOS OE CIEUC - ,0x9CA3 ,0xC443 //HANGUL SYLLABLE SSANGSIOS OE CHIEUCH - ,0x9CA4 ,0xC444 //HANGUL SYLLABLE SSANGSIOS OE KHIEUKH - ,0x9CA5 ,0xC445 //HANGUL SYLLABLE SSANGSIOS OE THIEUTH - ,0x9CA6 ,0xC446 //HANGUL SYLLABLE SSANGSIOS OE PHIEUPH - ,0x9CA7 ,0xC447 //HANGUL SYLLABLE SSANGSIOS OE HIEUH - ,0x9CA8 ,0xC449 //HANGUL SYLLABLE SSANGSIOS YO KIYEOK - ,0x9CA9 ,0xC44A //HANGUL SYLLABLE SSANGSIOS YO SSANGKIYEOK - ,0x9CAA ,0xC44B //HANGUL SYLLABLE SSANGSIOS YO KIYEOKSIOS - ,0x9CAB ,0xC44C //HANGUL SYLLABLE SSANGSIOS YO NIEUN - ,0x9CAC ,0xC44D //HANGUL SYLLABLE SSANGSIOS YO NIEUNCIEUC - ,0x9CAD ,0xC44E //HANGUL SYLLABLE SSANGSIOS YO NIEUNHIEUH - ,0x9CAE ,0xC44F //HANGUL SYLLABLE SSANGSIOS YO TIKEUT - ,0x9CAF ,0xC450 //HANGUL SYLLABLE SSANGSIOS YO RIEUL - ,0x9CB0 ,0xC451 //HANGUL SYLLABLE SSANGSIOS YO RIEULKIYEOK - ,0x9CB1 ,0xC452 //HANGUL SYLLABLE SSANGSIOS YO RIEULMIEUM - ,0x9CB2 ,0xC453 //HANGUL SYLLABLE SSANGSIOS YO RIEULPIEUP - ,0x9CB3 ,0xC454 //HANGUL SYLLABLE SSANGSIOS YO RIEULSIOS - ,0x9CB4 ,0xC455 //HANGUL SYLLABLE SSANGSIOS YO RIEULTHIEUTH - ,0x9CB5 ,0xC456 //HANGUL SYLLABLE SSANGSIOS YO RIEULPHIEUPH - ,0x9CB6 ,0xC457 //HANGUL SYLLABLE SSANGSIOS YO RIEULHIEUH - ,0x9CB7 ,0xC458 //HANGUL SYLLABLE SSANGSIOS YO MIEUM - ,0x9CB8 ,0xC459 //HANGUL SYLLABLE SSANGSIOS YO PIEUP - ,0x9CB9 ,0xC45A //HANGUL SYLLABLE SSANGSIOS YO PIEUPSIOS - ,0x9CBA ,0xC45B //HANGUL SYLLABLE SSANGSIOS YO SIOS - ,0x9CBB ,0xC45C //HANGUL SYLLABLE SSANGSIOS YO SSANGSIOS - ,0x9CBC ,0xC45D //HANGUL SYLLABLE SSANGSIOS YO IEUNG - ,0x9CBD ,0xC45E //HANGUL SYLLABLE SSANGSIOS YO CIEUC - ,0x9CBE ,0xC45F //HANGUL SYLLABLE SSANGSIOS YO CHIEUCH - ,0x9CBF ,0xC460 //HANGUL SYLLABLE SSANGSIOS YO KHIEUKH - ,0x9CC0 ,0xC461 //HANGUL SYLLABLE SSANGSIOS YO THIEUTH - ,0x9CC1 ,0xC462 //HANGUL SYLLABLE SSANGSIOS YO PHIEUPH - ,0x9CC2 ,0xC463 //HANGUL SYLLABLE SSANGSIOS YO HIEUH - ,0x9CC3 ,0xC466 //HANGUL SYLLABLE SSANGSIOS U SSANGKIYEOK - ,0x9CC4 ,0xC467 //HANGUL SYLLABLE SSANGSIOS U KIYEOKSIOS - ,0x9CC5 ,0xC469 //HANGUL SYLLABLE SSANGSIOS U NIEUNCIEUC - ,0x9CC6 ,0xC46A //HANGUL SYLLABLE SSANGSIOS U NIEUNHIEUH - ,0x9CC7 ,0xC46B //HANGUL SYLLABLE SSANGSIOS U TIKEUT - ,0x9CC8 ,0xC46D //HANGUL SYLLABLE SSANGSIOS U RIEULKIYEOK - ,0x9CC9 ,0xC46E //HANGUL SYLLABLE SSANGSIOS U RIEULMIEUM - ,0x9CCA ,0xC46F //HANGUL SYLLABLE SSANGSIOS U RIEULPIEUP - ,0x9CCB ,0xC470 //HANGUL SYLLABLE SSANGSIOS U RIEULSIOS - ,0x9CCC ,0xC471 //HANGUL SYLLABLE SSANGSIOS U RIEULTHIEUTH - ,0x9CCD ,0xC472 //HANGUL SYLLABLE SSANGSIOS U RIEULPHIEUPH - ,0x9CCE ,0xC473 //HANGUL SYLLABLE SSANGSIOS U RIEULHIEUH - ,0x9CCF ,0xC476 //HANGUL SYLLABLE SSANGSIOS U PIEUPSIOS - ,0x9CD0 ,0xC477 //HANGUL SYLLABLE SSANGSIOS U SIOS - ,0x9CD1 ,0xC478 //HANGUL SYLLABLE SSANGSIOS U SSANGSIOS - ,0x9CD2 ,0xC47A //HANGUL SYLLABLE SSANGSIOS U CIEUC - ,0x9CD3 ,0xC47B //HANGUL SYLLABLE SSANGSIOS U CHIEUCH - ,0x9CD4 ,0xC47C //HANGUL SYLLABLE SSANGSIOS U KHIEUKH - ,0x9CD5 ,0xC47D //HANGUL SYLLABLE SSANGSIOS U THIEUTH - ,0x9CD6 ,0xC47E //HANGUL SYLLABLE SSANGSIOS U PHIEUPH - ,0x9CD7 ,0xC47F //HANGUL SYLLABLE SSANGSIOS U HIEUH - ,0x9CD8 ,0xC481 //HANGUL SYLLABLE SSANGSIOS WEO KIYEOK - ,0x9CD9 ,0xC482 //HANGUL SYLLABLE SSANGSIOS WEO SSANGKIYEOK - ,0x9CDA ,0xC483 //HANGUL SYLLABLE SSANGSIOS WEO KIYEOKSIOS - ,0x9CDB ,0xC484 //HANGUL SYLLABLE SSANGSIOS WEO NIEUN - ,0x9CDC ,0xC485 //HANGUL SYLLABLE SSANGSIOS WEO NIEUNCIEUC - ,0x9CDD ,0xC486 //HANGUL SYLLABLE SSANGSIOS WEO NIEUNHIEUH - ,0x9CDE ,0xC487 //HANGUL SYLLABLE SSANGSIOS WEO TIKEUT - ,0x9CDF ,0xC488 //HANGUL SYLLABLE SSANGSIOS WEO RIEUL - ,0x9CE0 ,0xC489 //HANGUL SYLLABLE SSANGSIOS WEO RIEULKIYEOK - ,0x9CE1 ,0xC48A //HANGUL SYLLABLE SSANGSIOS WEO RIEULMIEUM - ,0x9CE2 ,0xC48B //HANGUL SYLLABLE SSANGSIOS WEO RIEULPIEUP - ,0x9CE3 ,0xC48C //HANGUL SYLLABLE SSANGSIOS WEO RIEULSIOS - ,0x9CE4 ,0xC48D //HANGUL SYLLABLE SSANGSIOS WEO RIEULTHIEUTH - ,0x9CE5 ,0xC48E //HANGUL SYLLABLE SSANGSIOS WEO RIEULPHIEUPH - ,0x9CE6 ,0xC48F //HANGUL SYLLABLE SSANGSIOS WEO RIEULHIEUH - ,0x9CE7 ,0xC490 //HANGUL SYLLABLE SSANGSIOS WEO MIEUM - ,0x9CE8 ,0xC491 //HANGUL SYLLABLE SSANGSIOS WEO PIEUP - ,0x9CE9 ,0xC492 //HANGUL SYLLABLE SSANGSIOS WEO PIEUPSIOS - ,0x9CEA ,0xC493 //HANGUL SYLLABLE SSANGSIOS WEO SIOS - ,0x9CEB ,0xC495 //HANGUL SYLLABLE SSANGSIOS WEO IEUNG - ,0x9CEC ,0xC496 //HANGUL SYLLABLE SSANGSIOS WEO CIEUC - ,0x9CED ,0xC497 //HANGUL SYLLABLE SSANGSIOS WEO CHIEUCH - ,0x9CEE ,0xC498 //HANGUL SYLLABLE SSANGSIOS WEO KHIEUKH - ,0x9CEF ,0xC499 //HANGUL SYLLABLE SSANGSIOS WEO THIEUTH - ,0x9CF0 ,0xC49A //HANGUL SYLLABLE SSANGSIOS WEO PHIEUPH - ,0x9CF1 ,0xC49B //HANGUL SYLLABLE SSANGSIOS WEO HIEUH - ,0x9CF2 ,0xC49D //HANGUL SYLLABLE SSANGSIOS WE KIYEOK - ,0x9CF3 ,0xC49E //HANGUL SYLLABLE SSANGSIOS WE SSANGKIYEOK - ,0x9CF4 ,0xC49F //HANGUL SYLLABLE SSANGSIOS WE KIYEOKSIOS - ,0x9CF5 ,0xC4A0 //HANGUL SYLLABLE SSANGSIOS WE NIEUN - ,0x9CF6 ,0xC4A1 //HANGUL SYLLABLE SSANGSIOS WE NIEUNCIEUC - ,0x9CF7 ,0xC4A2 //HANGUL SYLLABLE SSANGSIOS WE NIEUNHIEUH - ,0x9CF8 ,0xC4A3 //HANGUL SYLLABLE SSANGSIOS WE TIKEUT - ,0x9CF9 ,0xC4A4 //HANGUL SYLLABLE SSANGSIOS WE RIEUL - ,0x9CFA ,0xC4A5 //HANGUL SYLLABLE SSANGSIOS WE RIEULKIYEOK - ,0x9CFB ,0xC4A6 //HANGUL SYLLABLE SSANGSIOS WE RIEULMIEUM - ,0x9CFC ,0xC4A7 //HANGUL SYLLABLE SSANGSIOS WE RIEULPIEUP - ,0x9CFD ,0xC4A8 //HANGUL SYLLABLE SSANGSIOS WE RIEULSIOS - ,0x9CFE ,0xC4A9 //HANGUL SYLLABLE SSANGSIOS WE RIEULTHIEUTH - ,0x9D41 ,0xC4AA //HANGUL SYLLABLE SSANGSIOS WE RIEULPHIEUPH - ,0x9D42 ,0xC4AB //HANGUL SYLLABLE SSANGSIOS WE RIEULHIEUH - ,0x9D43 ,0xC4AC //HANGUL SYLLABLE SSANGSIOS WE MIEUM - ,0x9D44 ,0xC4AD //HANGUL SYLLABLE SSANGSIOS WE PIEUP - ,0x9D45 ,0xC4AE //HANGUL SYLLABLE SSANGSIOS WE PIEUPSIOS - ,0x9D46 ,0xC4AF //HANGUL SYLLABLE SSANGSIOS WE SIOS - ,0x9D47 ,0xC4B0 //HANGUL SYLLABLE SSANGSIOS WE SSANGSIOS - ,0x9D48 ,0xC4B1 //HANGUL SYLLABLE SSANGSIOS WE IEUNG - ,0x9D49 ,0xC4B2 //HANGUL SYLLABLE SSANGSIOS WE CIEUC - ,0x9D4A ,0xC4B3 //HANGUL SYLLABLE SSANGSIOS WE CHIEUCH - ,0x9D4B ,0xC4B4 //HANGUL SYLLABLE SSANGSIOS WE KHIEUKH - ,0x9D4C ,0xC4B5 //HANGUL SYLLABLE SSANGSIOS WE THIEUTH - ,0x9D4D ,0xC4B6 //HANGUL SYLLABLE SSANGSIOS WE PHIEUPH - ,0x9D4E ,0xC4B7 //HANGUL SYLLABLE SSANGSIOS WE HIEUH - ,0x9D4F ,0xC4B9 //HANGUL SYLLABLE SSANGSIOS WI KIYEOK - ,0x9D50 ,0xC4BA //HANGUL SYLLABLE SSANGSIOS WI SSANGKIYEOK - ,0x9D51 ,0xC4BB //HANGUL SYLLABLE SSANGSIOS WI KIYEOKSIOS - ,0x9D52 ,0xC4BD //HANGUL SYLLABLE SSANGSIOS WI NIEUNCIEUC - ,0x9D53 ,0xC4BE //HANGUL SYLLABLE SSANGSIOS WI NIEUNHIEUH - ,0x9D54 ,0xC4BF //HANGUL SYLLABLE SSANGSIOS WI TIKEUT - ,0x9D55 ,0xC4C0 //HANGUL SYLLABLE SSANGSIOS WI RIEUL - ,0x9D56 ,0xC4C1 //HANGUL SYLLABLE SSANGSIOS WI RIEULKIYEOK - ,0x9D57 ,0xC4C2 //HANGUL SYLLABLE SSANGSIOS WI RIEULMIEUM - ,0x9D58 ,0xC4C3 //HANGUL SYLLABLE SSANGSIOS WI RIEULPIEUP - ,0x9D59 ,0xC4C4 //HANGUL SYLLABLE SSANGSIOS WI RIEULSIOS - ,0x9D5A ,0xC4C5 //HANGUL SYLLABLE SSANGSIOS WI RIEULTHIEUTH - ,0x9D61 ,0xC4C6 //HANGUL SYLLABLE SSANGSIOS WI RIEULPHIEUPH - ,0x9D62 ,0xC4C7 //HANGUL SYLLABLE SSANGSIOS WI RIEULHIEUH - ,0x9D63 ,0xC4C8 //HANGUL SYLLABLE SSANGSIOS WI MIEUM - ,0x9D64 ,0xC4C9 //HANGUL SYLLABLE SSANGSIOS WI PIEUP - ,0x9D65 ,0xC4CA //HANGUL SYLLABLE SSANGSIOS WI PIEUPSIOS - ,0x9D66 ,0xC4CB //HANGUL SYLLABLE SSANGSIOS WI SIOS - ,0x9D67 ,0xC4CC //HANGUL SYLLABLE SSANGSIOS WI SSANGSIOS - ,0x9D68 ,0xC4CD //HANGUL SYLLABLE SSANGSIOS WI IEUNG - ,0x9D69 ,0xC4CE //HANGUL SYLLABLE SSANGSIOS WI CIEUC - ,0x9D6A ,0xC4CF //HANGUL SYLLABLE SSANGSIOS WI CHIEUCH - ,0x9D6B ,0xC4D0 //HANGUL SYLLABLE SSANGSIOS WI KHIEUKH - ,0x9D6C ,0xC4D1 //HANGUL SYLLABLE SSANGSIOS WI THIEUTH - ,0x9D6D ,0xC4D2 //HANGUL SYLLABLE SSANGSIOS WI PHIEUPH - ,0x9D6E ,0xC4D3 //HANGUL SYLLABLE SSANGSIOS WI HIEUH - ,0x9D6F ,0xC4D4 //HANGUL SYLLABLE SSANGSIOS YU - ,0x9D70 ,0xC4D5 //HANGUL SYLLABLE SSANGSIOS YU KIYEOK - ,0x9D71 ,0xC4D6 //HANGUL SYLLABLE SSANGSIOS YU SSANGKIYEOK - ,0x9D72 ,0xC4D7 //HANGUL SYLLABLE SSANGSIOS YU KIYEOKSIOS - ,0x9D73 ,0xC4D8 //HANGUL SYLLABLE SSANGSIOS YU NIEUN - ,0x9D74 ,0xC4D9 //HANGUL SYLLABLE SSANGSIOS YU NIEUNCIEUC - ,0x9D75 ,0xC4DA //HANGUL SYLLABLE SSANGSIOS YU NIEUNHIEUH - ,0x9D76 ,0xC4DB //HANGUL SYLLABLE SSANGSIOS YU TIKEUT - ,0x9D77 ,0xC4DC //HANGUL SYLLABLE SSANGSIOS YU RIEUL - ,0x9D78 ,0xC4DD //HANGUL SYLLABLE SSANGSIOS YU RIEULKIYEOK - ,0x9D79 ,0xC4DE //HANGUL SYLLABLE SSANGSIOS YU RIEULMIEUM - ,0x9D7A ,0xC4DF //HANGUL SYLLABLE SSANGSIOS YU RIEULPIEUP - ,0x9D81 ,0xC4E0 //HANGUL SYLLABLE SSANGSIOS YU RIEULSIOS - ,0x9D82 ,0xC4E1 //HANGUL SYLLABLE SSANGSIOS YU RIEULTHIEUTH - ,0x9D83 ,0xC4E2 //HANGUL SYLLABLE SSANGSIOS YU RIEULPHIEUPH - ,0x9D84 ,0xC4E3 //HANGUL SYLLABLE SSANGSIOS YU RIEULHIEUH - ,0x9D85 ,0xC4E4 //HANGUL SYLLABLE SSANGSIOS YU MIEUM - ,0x9D86 ,0xC4E5 //HANGUL SYLLABLE SSANGSIOS YU PIEUP - ,0x9D87 ,0xC4E6 //HANGUL SYLLABLE SSANGSIOS YU PIEUPSIOS - ,0x9D88 ,0xC4E7 //HANGUL SYLLABLE SSANGSIOS YU SIOS - ,0x9D89 ,0xC4E8 //HANGUL SYLLABLE SSANGSIOS YU SSANGSIOS - ,0x9D8A ,0xC4EA //HANGUL SYLLABLE SSANGSIOS YU CIEUC - ,0x9D8B ,0xC4EB //HANGUL SYLLABLE SSANGSIOS YU CHIEUCH - ,0x9D8C ,0xC4EC //HANGUL SYLLABLE SSANGSIOS YU KHIEUKH - ,0x9D8D ,0xC4ED //HANGUL SYLLABLE SSANGSIOS YU THIEUTH - ,0x9D8E ,0xC4EE //HANGUL SYLLABLE SSANGSIOS YU PHIEUPH - ,0x9D8F ,0xC4EF //HANGUL SYLLABLE SSANGSIOS YU HIEUH - ,0x9D90 ,0xC4F2 //HANGUL SYLLABLE SSANGSIOS EU SSANGKIYEOK - ,0x9D91 ,0xC4F3 //HANGUL SYLLABLE SSANGSIOS EU KIYEOKSIOS - ,0x9D92 ,0xC4F5 //HANGUL SYLLABLE SSANGSIOS EU NIEUNCIEUC - ,0x9D93 ,0xC4F6 //HANGUL SYLLABLE SSANGSIOS EU NIEUNHIEUH - ,0x9D94 ,0xC4F7 //HANGUL SYLLABLE SSANGSIOS EU TIKEUT - ,0x9D95 ,0xC4F9 //HANGUL SYLLABLE SSANGSIOS EU RIEULKIYEOK - ,0x9D96 ,0xC4FB //HANGUL SYLLABLE SSANGSIOS EU RIEULPIEUP - ,0x9D97 ,0xC4FC //HANGUL SYLLABLE SSANGSIOS EU RIEULSIOS - ,0x9D98 ,0xC4FD //HANGUL SYLLABLE SSANGSIOS EU RIEULTHIEUTH - ,0x9D99 ,0xC4FE //HANGUL SYLLABLE SSANGSIOS EU RIEULPHIEUPH - ,0x9D9A ,0xC502 //HANGUL SYLLABLE SSANGSIOS EU PIEUPSIOS - ,0x9D9B ,0xC503 //HANGUL SYLLABLE SSANGSIOS EU SIOS - ,0x9D9C ,0xC504 //HANGUL SYLLABLE SSANGSIOS EU SSANGSIOS - ,0x9D9D ,0xC505 //HANGUL SYLLABLE SSANGSIOS EU IEUNG - ,0x9D9E ,0xC506 //HANGUL SYLLABLE SSANGSIOS EU CIEUC - ,0x9D9F ,0xC507 //HANGUL SYLLABLE SSANGSIOS EU CHIEUCH - ,0x9DA0 ,0xC508 //HANGUL SYLLABLE SSANGSIOS EU KHIEUKH - ,0x9DA1 ,0xC509 //HANGUL SYLLABLE SSANGSIOS EU THIEUTH - ,0x9DA2 ,0xC50A //HANGUL SYLLABLE SSANGSIOS EU PHIEUPH - ,0x9DA3 ,0xC50B //HANGUL SYLLABLE SSANGSIOS EU HIEUH - ,0x9DA4 ,0xC50D //HANGUL SYLLABLE SSANGSIOS YI KIYEOK - ,0x9DA5 ,0xC50E //HANGUL SYLLABLE SSANGSIOS YI SSANGKIYEOK - ,0x9DA6 ,0xC50F //HANGUL SYLLABLE SSANGSIOS YI KIYEOKSIOS - ,0x9DA7 ,0xC511 //HANGUL SYLLABLE SSANGSIOS YI NIEUNCIEUC - ,0x9DA8 ,0xC512 //HANGUL SYLLABLE SSANGSIOS YI NIEUNHIEUH - ,0x9DA9 ,0xC513 //HANGUL SYLLABLE SSANGSIOS YI TIKEUT - ,0x9DAA ,0xC515 //HANGUL SYLLABLE SSANGSIOS YI RIEULKIYEOK - ,0x9DAB ,0xC516 //HANGUL SYLLABLE SSANGSIOS YI RIEULMIEUM - ,0x9DAC ,0xC517 //HANGUL SYLLABLE SSANGSIOS YI RIEULPIEUP - ,0x9DAD ,0xC518 //HANGUL SYLLABLE SSANGSIOS YI RIEULSIOS - ,0x9DAE ,0xC519 //HANGUL SYLLABLE SSANGSIOS YI RIEULTHIEUTH - ,0x9DAF ,0xC51A //HANGUL SYLLABLE SSANGSIOS YI RIEULPHIEUPH - ,0x9DB0 ,0xC51B //HANGUL SYLLABLE SSANGSIOS YI RIEULHIEUH - ,0x9DB1 ,0xC51D //HANGUL SYLLABLE SSANGSIOS YI PIEUP - ,0x9DB2 ,0xC51E //HANGUL SYLLABLE SSANGSIOS YI PIEUPSIOS - ,0x9DB3 ,0xC51F //HANGUL SYLLABLE SSANGSIOS YI SIOS - ,0x9DB4 ,0xC520 //HANGUL SYLLABLE SSANGSIOS YI SSANGSIOS - ,0x9DB5 ,0xC521 //HANGUL SYLLABLE SSANGSIOS YI IEUNG - ,0x9DB6 ,0xC522 //HANGUL SYLLABLE SSANGSIOS YI CIEUC - ,0x9DB7 ,0xC523 //HANGUL SYLLABLE SSANGSIOS YI CHIEUCH - ,0x9DB8 ,0xC524 //HANGUL SYLLABLE SSANGSIOS YI KHIEUKH - ,0x9DB9 ,0xC525 //HANGUL SYLLABLE SSANGSIOS YI THIEUTH - ,0x9DBA ,0xC526 //HANGUL SYLLABLE SSANGSIOS YI PHIEUPH - ,0x9DBB ,0xC527 //HANGUL SYLLABLE SSANGSIOS YI HIEUH - ,0x9DBC ,0xC52A //HANGUL SYLLABLE SSANGSIOS I SSANGKIYEOK - ,0x9DBD ,0xC52B //HANGUL SYLLABLE SSANGSIOS I KIYEOKSIOS - ,0x9DBE ,0xC52D //HANGUL SYLLABLE SSANGSIOS I NIEUNCIEUC - ,0x9DBF ,0xC52E //HANGUL SYLLABLE SSANGSIOS I NIEUNHIEUH - ,0x9DC0 ,0xC52F //HANGUL SYLLABLE SSANGSIOS I TIKEUT - ,0x9DC1 ,0xC531 //HANGUL SYLLABLE SSANGSIOS I RIEULKIYEOK - ,0x9DC2 ,0xC532 //HANGUL SYLLABLE SSANGSIOS I RIEULMIEUM - ,0x9DC3 ,0xC533 //HANGUL SYLLABLE SSANGSIOS I RIEULPIEUP - ,0x9DC4 ,0xC534 //HANGUL SYLLABLE SSANGSIOS I RIEULSIOS - ,0x9DC5 ,0xC535 //HANGUL SYLLABLE SSANGSIOS I RIEULTHIEUTH - ,0x9DC6 ,0xC536 //HANGUL SYLLABLE SSANGSIOS I RIEULPHIEUPH - ,0x9DC7 ,0xC537 //HANGUL SYLLABLE SSANGSIOS I RIEULHIEUH - ,0x9DC8 ,0xC53A //HANGUL SYLLABLE SSANGSIOS I PIEUPSIOS - ,0x9DC9 ,0xC53C //HANGUL SYLLABLE SSANGSIOS I SSANGSIOS - ,0x9DCA ,0xC53E //HANGUL SYLLABLE SSANGSIOS I CIEUC - ,0x9DCB ,0xC53F //HANGUL SYLLABLE SSANGSIOS I CHIEUCH - ,0x9DCC ,0xC540 //HANGUL SYLLABLE SSANGSIOS I KHIEUKH - ,0x9DCD ,0xC541 //HANGUL SYLLABLE SSANGSIOS I THIEUTH - ,0x9DCE ,0xC542 //HANGUL SYLLABLE SSANGSIOS I PHIEUPH - ,0x9DCF ,0xC543 //HANGUL SYLLABLE SSANGSIOS I HIEUH - ,0x9DD0 ,0xC546 //HANGUL SYLLABLE IEUNG A SSANGKIYEOK - ,0x9DD1 ,0xC547 //HANGUL SYLLABLE IEUNG A KIYEOKSIOS - ,0x9DD2 ,0xC54B //HANGUL SYLLABLE IEUNG A TIKEUT - ,0x9DD3 ,0xC54F //HANGUL SYLLABLE IEUNG A RIEULPIEUP - ,0x9DD4 ,0xC550 //HANGUL SYLLABLE IEUNG A RIEULSIOS - ,0x9DD5 ,0xC551 //HANGUL SYLLABLE IEUNG A RIEULTHIEUTH - ,0x9DD6 ,0xC552 //HANGUL SYLLABLE IEUNG A RIEULPHIEUPH - ,0x9DD7 ,0xC556 //HANGUL SYLLABLE IEUNG A PIEUPSIOS - ,0x9DD8 ,0xC55A //HANGUL SYLLABLE IEUNG A CIEUC - ,0x9DD9 ,0xC55B //HANGUL SYLLABLE IEUNG A CHIEUCH - ,0x9DDA ,0xC55C //HANGUL SYLLABLE IEUNG A KHIEUKH - ,0x9DDB ,0xC55F //HANGUL SYLLABLE IEUNG A HIEUH - ,0x9DDC ,0xC562 //HANGUL SYLLABLE IEUNG AE SSANGKIYEOK - ,0x9DDD ,0xC563 //HANGUL SYLLABLE IEUNG AE KIYEOKSIOS - ,0x9DDE ,0xC565 //HANGUL SYLLABLE IEUNG AE NIEUNCIEUC - ,0x9DDF ,0xC566 //HANGUL SYLLABLE IEUNG AE NIEUNHIEUH - ,0x9DE0 ,0xC567 //HANGUL SYLLABLE IEUNG AE TIKEUT - ,0x9DE1 ,0xC569 //HANGUL SYLLABLE IEUNG AE RIEULKIYEOK - ,0x9DE2 ,0xC56A //HANGUL SYLLABLE IEUNG AE RIEULMIEUM - ,0x9DE3 ,0xC56B //HANGUL SYLLABLE IEUNG AE RIEULPIEUP - ,0x9DE4 ,0xC56C //HANGUL SYLLABLE IEUNG AE RIEULSIOS - ,0x9DE5 ,0xC56D //HANGUL SYLLABLE IEUNG AE RIEULTHIEUTH - ,0x9DE6 ,0xC56E //HANGUL SYLLABLE IEUNG AE RIEULPHIEUPH - ,0x9DE7 ,0xC56F //HANGUL SYLLABLE IEUNG AE RIEULHIEUH - ,0x9DE8 ,0xC572 //HANGUL SYLLABLE IEUNG AE PIEUPSIOS - ,0x9DE9 ,0xC576 //HANGUL SYLLABLE IEUNG AE CIEUC - ,0x9DEA ,0xC577 //HANGUL SYLLABLE IEUNG AE CHIEUCH - ,0x9DEB ,0xC578 //HANGUL SYLLABLE IEUNG AE KHIEUKH - ,0x9DEC ,0xC579 //HANGUL SYLLABLE IEUNG AE THIEUTH - ,0x9DED ,0xC57A //HANGUL SYLLABLE IEUNG AE PHIEUPH - ,0x9DEE ,0xC57B //HANGUL SYLLABLE IEUNG AE HIEUH - ,0x9DEF ,0xC57E //HANGUL SYLLABLE IEUNG YA SSANGKIYEOK - ,0x9DF0 ,0xC57F //HANGUL SYLLABLE IEUNG YA KIYEOKSIOS - ,0x9DF1 ,0xC581 //HANGUL SYLLABLE IEUNG YA NIEUNCIEUC - ,0x9DF2 ,0xC582 //HANGUL SYLLABLE IEUNG YA NIEUNHIEUH - ,0x9DF3 ,0xC583 //HANGUL SYLLABLE IEUNG YA TIKEUT - ,0x9DF4 ,0xC585 //HANGUL SYLLABLE IEUNG YA RIEULKIYEOK - ,0x9DF5 ,0xC586 //HANGUL SYLLABLE IEUNG YA RIEULMIEUM - ,0x9DF6 ,0xC588 //HANGUL SYLLABLE IEUNG YA RIEULSIOS - ,0x9DF7 ,0xC589 //HANGUL SYLLABLE IEUNG YA RIEULTHIEUTH - ,0x9DF8 ,0xC58A //HANGUL SYLLABLE IEUNG YA RIEULPHIEUPH - ,0x9DF9 ,0xC58B //HANGUL SYLLABLE IEUNG YA RIEULHIEUH - ,0x9DFA ,0xC58E //HANGUL SYLLABLE IEUNG YA PIEUPSIOS - ,0x9DFB ,0xC590 //HANGUL SYLLABLE IEUNG YA SSANGSIOS - ,0x9DFC ,0xC592 //HANGUL SYLLABLE IEUNG YA CIEUC - ,0x9DFD ,0xC593 //HANGUL SYLLABLE IEUNG YA CHIEUCH - ,0x9DFE ,0xC594 //HANGUL SYLLABLE IEUNG YA KHIEUKH - ,0x9E41 ,0xC596 //HANGUL SYLLABLE IEUNG YA PHIEUPH - ,0x9E42 ,0xC599 //HANGUL SYLLABLE IEUNG YAE KIYEOK - ,0x9E43 ,0xC59A //HANGUL SYLLABLE IEUNG YAE SSANGKIYEOK - ,0x9E44 ,0xC59B //HANGUL SYLLABLE IEUNG YAE KIYEOKSIOS - ,0x9E45 ,0xC59D //HANGUL SYLLABLE IEUNG YAE NIEUNCIEUC - ,0x9E46 ,0xC59E //HANGUL SYLLABLE IEUNG YAE NIEUNHIEUH - ,0x9E47 ,0xC59F //HANGUL SYLLABLE IEUNG YAE TIKEUT - ,0x9E48 ,0xC5A1 //HANGUL SYLLABLE IEUNG YAE RIEULKIYEOK - ,0x9E49 ,0xC5A2 //HANGUL SYLLABLE IEUNG YAE RIEULMIEUM - ,0x9E4A ,0xC5A3 //HANGUL SYLLABLE IEUNG YAE RIEULPIEUP - ,0x9E4B ,0xC5A4 //HANGUL SYLLABLE IEUNG YAE RIEULSIOS - ,0x9E4C ,0xC5A5 //HANGUL SYLLABLE IEUNG YAE RIEULTHIEUTH - ,0x9E4D ,0xC5A6 //HANGUL SYLLABLE IEUNG YAE RIEULPHIEUPH - ,0x9E4E ,0xC5A7 //HANGUL SYLLABLE IEUNG YAE RIEULHIEUH - ,0x9E4F ,0xC5A8 //HANGUL SYLLABLE IEUNG YAE MIEUM - ,0x9E50 ,0xC5AA //HANGUL SYLLABLE IEUNG YAE PIEUPSIOS - ,0x9E51 ,0xC5AB //HANGUL SYLLABLE IEUNG YAE SIOS - ,0x9E52 ,0xC5AC //HANGUL SYLLABLE IEUNG YAE SSANGSIOS - ,0x9E53 ,0xC5AD //HANGUL SYLLABLE IEUNG YAE IEUNG - ,0x9E54 ,0xC5AE //HANGUL SYLLABLE IEUNG YAE CIEUC - ,0x9E55 ,0xC5AF //HANGUL SYLLABLE IEUNG YAE CHIEUCH - ,0x9E56 ,0xC5B0 //HANGUL SYLLABLE IEUNG YAE KHIEUKH - ,0x9E57 ,0xC5B1 //HANGUL SYLLABLE IEUNG YAE THIEUTH - ,0x9E58 ,0xC5B2 //HANGUL SYLLABLE IEUNG YAE PHIEUPH - ,0x9E59 ,0xC5B3 //HANGUL SYLLABLE IEUNG YAE HIEUH - ,0x9E5A ,0xC5B6 //HANGUL SYLLABLE IEUNG EO SSANGKIYEOK - ,0x9E61 ,0xC5B7 //HANGUL SYLLABLE IEUNG EO KIYEOKSIOS - ,0x9E62 ,0xC5BA //HANGUL SYLLABLE IEUNG EO NIEUNHIEUH - ,0x9E63 ,0xC5BF //HANGUL SYLLABLE IEUNG EO RIEULPIEUP - ,0x9E64 ,0xC5C0 //HANGUL SYLLABLE IEUNG EO RIEULSIOS - ,0x9E65 ,0xC5C1 //HANGUL SYLLABLE IEUNG EO RIEULTHIEUTH - ,0x9E66 ,0xC5C2 //HANGUL SYLLABLE IEUNG EO RIEULPHIEUPH - ,0x9E67 ,0xC5C3 //HANGUL SYLLABLE IEUNG EO RIEULHIEUH - ,0x9E68 ,0xC5CB //HANGUL SYLLABLE IEUNG EO CHIEUCH - ,0x9E69 ,0xC5CD //HANGUL SYLLABLE IEUNG EO THIEUTH - ,0x9E6A ,0xC5CF //HANGUL SYLLABLE IEUNG EO HIEUH - ,0x9E6B ,0xC5D2 //HANGUL SYLLABLE IEUNG E SSANGKIYEOK - ,0x9E6C ,0xC5D3 //HANGUL SYLLABLE IEUNG E KIYEOKSIOS - ,0x9E6D ,0xC5D5 //HANGUL SYLLABLE IEUNG E NIEUNCIEUC - ,0x9E6E ,0xC5D6 //HANGUL SYLLABLE IEUNG E NIEUNHIEUH - ,0x9E6F ,0xC5D7 //HANGUL SYLLABLE IEUNG E TIKEUT - ,0x9E70 ,0xC5D9 //HANGUL SYLLABLE IEUNG E RIEULKIYEOK - ,0x9E71 ,0xC5DA //HANGUL SYLLABLE IEUNG E RIEULMIEUM - ,0x9E72 ,0xC5DB //HANGUL SYLLABLE IEUNG E RIEULPIEUP - ,0x9E73 ,0xC5DC //HANGUL SYLLABLE IEUNG E RIEULSIOS - ,0x9E74 ,0xC5DD //HANGUL SYLLABLE IEUNG E RIEULTHIEUTH - ,0x9E75 ,0xC5DE //HANGUL SYLLABLE IEUNG E RIEULPHIEUPH - ,0x9E76 ,0xC5DF //HANGUL SYLLABLE IEUNG E RIEULHIEUH - ,0x9E77 ,0xC5E2 //HANGUL SYLLABLE IEUNG E PIEUPSIOS - ,0x9E78 ,0xC5E4 //HANGUL SYLLABLE IEUNG E SSANGSIOS - ,0x9E79 ,0xC5E6 //HANGUL SYLLABLE IEUNG E CIEUC - ,0x9E7A ,0xC5E7 //HANGUL SYLLABLE IEUNG E CHIEUCH - ,0x9E81 ,0xC5E8 //HANGUL SYLLABLE IEUNG E KHIEUKH - ,0x9E82 ,0xC5E9 //HANGUL SYLLABLE IEUNG E THIEUTH - ,0x9E83 ,0xC5EA //HANGUL SYLLABLE IEUNG E PHIEUPH - ,0x9E84 ,0xC5EB //HANGUL SYLLABLE IEUNG E HIEUH - ,0x9E85 ,0xC5EF //HANGUL SYLLABLE IEUNG YEO KIYEOKSIOS - ,0x9E86 ,0xC5F1 //HANGUL SYLLABLE IEUNG YEO NIEUNCIEUC - ,0x9E87 ,0xC5F2 //HANGUL SYLLABLE IEUNG YEO NIEUNHIEUH - ,0x9E88 ,0xC5F3 //HANGUL SYLLABLE IEUNG YEO TIKEUT - ,0x9E89 ,0xC5F5 //HANGUL SYLLABLE IEUNG YEO RIEULKIYEOK - ,0x9E8A ,0xC5F8 //HANGUL SYLLABLE IEUNG YEO RIEULSIOS - ,0x9E8B ,0xC5F9 //HANGUL SYLLABLE IEUNG YEO RIEULTHIEUTH - ,0x9E8C ,0xC5FA //HANGUL SYLLABLE IEUNG YEO RIEULPHIEUPH - ,0x9E8D ,0xC5FB //HANGUL SYLLABLE IEUNG YEO RIEULHIEUH - ,0x9E8E ,0xC602 //HANGUL SYLLABLE IEUNG YEO CIEUC - ,0x9E8F ,0xC603 //HANGUL SYLLABLE IEUNG YEO CHIEUCH - ,0x9E90 ,0xC604 //HANGUL SYLLABLE IEUNG YEO KHIEUKH - ,0x9E91 ,0xC609 //HANGUL SYLLABLE IEUNG YE KIYEOK - ,0x9E92 ,0xC60A //HANGUL SYLLABLE IEUNG YE SSANGKIYEOK - ,0x9E93 ,0xC60B //HANGUL SYLLABLE IEUNG YE KIYEOKSIOS - ,0x9E94 ,0xC60D //HANGUL SYLLABLE IEUNG YE NIEUNCIEUC - ,0x9E95 ,0xC60E //HANGUL SYLLABLE IEUNG YE NIEUNHIEUH - ,0x9E96 ,0xC60F //HANGUL SYLLABLE IEUNG YE TIKEUT - ,0x9E97 ,0xC611 //HANGUL SYLLABLE IEUNG YE RIEULKIYEOK - ,0x9E98 ,0xC612 //HANGUL SYLLABLE IEUNG YE RIEULMIEUM - ,0x9E99 ,0xC613 //HANGUL SYLLABLE IEUNG YE RIEULPIEUP - ,0x9E9A ,0xC614 //HANGUL SYLLABLE IEUNG YE RIEULSIOS - ,0x9E9B ,0xC615 //HANGUL SYLLABLE IEUNG YE RIEULTHIEUTH - ,0x9E9C ,0xC616 //HANGUL SYLLABLE IEUNG YE RIEULPHIEUPH - ,0x9E9D ,0xC617 //HANGUL SYLLABLE IEUNG YE RIEULHIEUH - ,0x9E9E ,0xC61A //HANGUL SYLLABLE IEUNG YE PIEUPSIOS - ,0x9E9F ,0xC61D //HANGUL SYLLABLE IEUNG YE IEUNG - ,0x9EA0 ,0xC61E //HANGUL SYLLABLE IEUNG YE CIEUC - ,0x9EA1 ,0xC61F //HANGUL SYLLABLE IEUNG YE CHIEUCH - ,0x9EA2 ,0xC620 //HANGUL SYLLABLE IEUNG YE KHIEUKH - ,0x9EA3 ,0xC621 //HANGUL SYLLABLE IEUNG YE THIEUTH - ,0x9EA4 ,0xC622 //HANGUL SYLLABLE IEUNG YE PHIEUPH - ,0x9EA5 ,0xC623 //HANGUL SYLLABLE IEUNG YE HIEUH - ,0x9EA6 ,0xC626 //HANGUL SYLLABLE IEUNG O SSANGKIYEOK - ,0x9EA7 ,0xC627 //HANGUL SYLLABLE IEUNG O KIYEOKSIOS - ,0x9EA8 ,0xC629 //HANGUL SYLLABLE IEUNG O NIEUNCIEUC - ,0x9EA9 ,0xC62A //HANGUL SYLLABLE IEUNG O NIEUNHIEUH - ,0x9EAA ,0xC62B //HANGUL SYLLABLE IEUNG O TIKEUT - ,0x9EAB ,0xC62F //HANGUL SYLLABLE IEUNG O RIEULPIEUP - ,0x9EAC ,0xC631 //HANGUL SYLLABLE IEUNG O RIEULTHIEUTH - ,0x9EAD ,0xC632 //HANGUL SYLLABLE IEUNG O RIEULPHIEUPH - ,0x9EAE ,0xC636 //HANGUL SYLLABLE IEUNG O PIEUPSIOS - ,0x9EAF ,0xC638 //HANGUL SYLLABLE IEUNG O SSANGSIOS - ,0x9EB0 ,0xC63A //HANGUL SYLLABLE IEUNG O CIEUC - ,0x9EB1 ,0xC63C //HANGUL SYLLABLE IEUNG O KHIEUKH - ,0x9EB2 ,0xC63D //HANGUL SYLLABLE IEUNG O THIEUTH - ,0x9EB3 ,0xC63E //HANGUL SYLLABLE IEUNG O PHIEUPH - ,0x9EB4 ,0xC63F //HANGUL SYLLABLE IEUNG O HIEUH - ,0x9EB5 ,0xC642 //HANGUL SYLLABLE IEUNG WA SSANGKIYEOK - ,0x9EB6 ,0xC643 //HANGUL SYLLABLE IEUNG WA KIYEOKSIOS - ,0x9EB7 ,0xC645 //HANGUL SYLLABLE IEUNG WA NIEUNCIEUC - ,0x9EB8 ,0xC646 //HANGUL SYLLABLE IEUNG WA NIEUNHIEUH - ,0x9EB9 ,0xC647 //HANGUL SYLLABLE IEUNG WA TIKEUT - ,0x9EBA ,0xC649 //HANGUL SYLLABLE IEUNG WA RIEULKIYEOK - ,0x9EBB ,0xC64A //HANGUL SYLLABLE IEUNG WA RIEULMIEUM - ,0x9EBC ,0xC64B //HANGUL SYLLABLE IEUNG WA RIEULPIEUP - ,0x9EBD ,0xC64C //HANGUL SYLLABLE IEUNG WA RIEULSIOS - ,0x9EBE ,0xC64D //HANGUL SYLLABLE IEUNG WA RIEULTHIEUTH - ,0x9EBF ,0xC64E //HANGUL SYLLABLE IEUNG WA RIEULPHIEUPH - ,0x9EC0 ,0xC64F //HANGUL SYLLABLE IEUNG WA RIEULHIEUH - ,0x9EC1 ,0xC652 //HANGUL SYLLABLE IEUNG WA PIEUPSIOS - ,0x9EC2 ,0xC656 //HANGUL SYLLABLE IEUNG WA CIEUC - ,0x9EC3 ,0xC657 //HANGUL SYLLABLE IEUNG WA CHIEUCH - ,0x9EC4 ,0xC658 //HANGUL SYLLABLE IEUNG WA KHIEUKH - ,0x9EC5 ,0xC659 //HANGUL SYLLABLE IEUNG WA THIEUTH - ,0x9EC6 ,0xC65A //HANGUL SYLLABLE IEUNG WA PHIEUPH - ,0x9EC7 ,0xC65B //HANGUL SYLLABLE IEUNG WA HIEUH - ,0x9EC8 ,0xC65E //HANGUL SYLLABLE IEUNG WAE SSANGKIYEOK - ,0x9EC9 ,0xC65F //HANGUL SYLLABLE IEUNG WAE KIYEOKSIOS - ,0x9ECA ,0xC661 //HANGUL SYLLABLE IEUNG WAE NIEUNCIEUC - ,0x9ECB ,0xC662 //HANGUL SYLLABLE IEUNG WAE NIEUNHIEUH - ,0x9ECC ,0xC663 //HANGUL SYLLABLE IEUNG WAE TIKEUT - ,0x9ECD ,0xC664 //HANGUL SYLLABLE IEUNG WAE RIEUL - ,0x9ECE ,0xC665 //HANGUL SYLLABLE IEUNG WAE RIEULKIYEOK - ,0x9ECF ,0xC666 //HANGUL SYLLABLE IEUNG WAE RIEULMIEUM - ,0x9ED0 ,0xC667 //HANGUL SYLLABLE IEUNG WAE RIEULPIEUP - ,0x9ED1 ,0xC668 //HANGUL SYLLABLE IEUNG WAE RIEULSIOS - ,0x9ED2 ,0xC669 //HANGUL SYLLABLE IEUNG WAE RIEULTHIEUTH - ,0x9ED3 ,0xC66A //HANGUL SYLLABLE IEUNG WAE RIEULPHIEUPH - ,0x9ED4 ,0xC66B //HANGUL SYLLABLE IEUNG WAE RIEULHIEUH - ,0x9ED5 ,0xC66D //HANGUL SYLLABLE IEUNG WAE PIEUP - ,0x9ED6 ,0xC66E //HANGUL SYLLABLE IEUNG WAE PIEUPSIOS - ,0x9ED7 ,0xC670 //HANGUL SYLLABLE IEUNG WAE SSANGSIOS - ,0x9ED8 ,0xC672 //HANGUL SYLLABLE IEUNG WAE CIEUC - ,0x9ED9 ,0xC673 //HANGUL SYLLABLE IEUNG WAE CHIEUCH - ,0x9EDA ,0xC674 //HANGUL SYLLABLE IEUNG WAE KHIEUKH - ,0x9EDB ,0xC675 //HANGUL SYLLABLE IEUNG WAE THIEUTH - ,0x9EDC ,0xC676 //HANGUL SYLLABLE IEUNG WAE PHIEUPH - ,0x9EDD ,0xC677 //HANGUL SYLLABLE IEUNG WAE HIEUH - ,0x9EDE ,0xC67A //HANGUL SYLLABLE IEUNG OE SSANGKIYEOK - ,0x9EDF ,0xC67B //HANGUL SYLLABLE IEUNG OE KIYEOKSIOS - ,0x9EE0 ,0xC67D //HANGUL SYLLABLE IEUNG OE NIEUNCIEUC - ,0x9EE1 ,0xC67E //HANGUL SYLLABLE IEUNG OE NIEUNHIEUH - ,0x9EE2 ,0xC67F //HANGUL SYLLABLE IEUNG OE TIKEUT - ,0x9EE3 ,0xC681 //HANGUL SYLLABLE IEUNG OE RIEULKIYEOK - ,0x9EE4 ,0xC682 //HANGUL SYLLABLE IEUNG OE RIEULMIEUM - ,0x9EE5 ,0xC683 //HANGUL SYLLABLE IEUNG OE RIEULPIEUP - ,0x9EE6 ,0xC684 //HANGUL SYLLABLE IEUNG OE RIEULSIOS - ,0x9EE7 ,0xC685 //HANGUL SYLLABLE IEUNG OE RIEULTHIEUTH - ,0x9EE8 ,0xC686 //HANGUL SYLLABLE IEUNG OE RIEULPHIEUPH - ,0x9EE9 ,0xC687 //HANGUL SYLLABLE IEUNG OE RIEULHIEUH - ,0x9EEA ,0xC68A //HANGUL SYLLABLE IEUNG OE PIEUPSIOS - ,0x9EEB ,0xC68C //HANGUL SYLLABLE IEUNG OE SSANGSIOS - ,0x9EEC ,0xC68E //HANGUL SYLLABLE IEUNG OE CIEUC - ,0x9EED ,0xC68F //HANGUL SYLLABLE IEUNG OE CHIEUCH - ,0x9EEE ,0xC690 //HANGUL SYLLABLE IEUNG OE KHIEUKH - ,0x9EEF ,0xC691 //HANGUL SYLLABLE IEUNG OE THIEUTH - ,0x9EF0 ,0xC692 //HANGUL SYLLABLE IEUNG OE PHIEUPH - ,0x9EF1 ,0xC693 //HANGUL SYLLABLE IEUNG OE HIEUH - ,0x9EF2 ,0xC696 //HANGUL SYLLABLE IEUNG YO SSANGKIYEOK - ,0x9EF3 ,0xC697 //HANGUL SYLLABLE IEUNG YO KIYEOKSIOS - ,0x9EF4 ,0xC699 //HANGUL SYLLABLE IEUNG YO NIEUNCIEUC - ,0x9EF5 ,0xC69A //HANGUL SYLLABLE IEUNG YO NIEUNHIEUH - ,0x9EF6 ,0xC69B //HANGUL SYLLABLE IEUNG YO TIKEUT - ,0x9EF7 ,0xC69D //HANGUL SYLLABLE IEUNG YO RIEULKIYEOK - ,0x9EF8 ,0xC69E //HANGUL SYLLABLE IEUNG YO RIEULMIEUM - ,0x9EF9 ,0xC69F //HANGUL SYLLABLE IEUNG YO RIEULPIEUP - ,0x9EFA ,0xC6A0 //HANGUL SYLLABLE IEUNG YO RIEULSIOS - ,0x9EFB ,0xC6A1 //HANGUL SYLLABLE IEUNG YO RIEULTHIEUTH - ,0x9EFC ,0xC6A2 //HANGUL SYLLABLE IEUNG YO RIEULPHIEUPH - ,0x9EFD ,0xC6A3 //HANGUL SYLLABLE IEUNG YO RIEULHIEUH - ,0x9EFE ,0xC6A6 //HANGUL SYLLABLE IEUNG YO PIEUPSIOS - ,0x9F41 ,0xC6A8 //HANGUL SYLLABLE IEUNG YO SSANGSIOS - ,0x9F42 ,0xC6AA //HANGUL SYLLABLE IEUNG YO CIEUC - ,0x9F43 ,0xC6AB //HANGUL SYLLABLE IEUNG YO CHIEUCH - ,0x9F44 ,0xC6AC //HANGUL SYLLABLE IEUNG YO KHIEUKH - ,0x9F45 ,0xC6AD //HANGUL SYLLABLE IEUNG YO THIEUTH - ,0x9F46 ,0xC6AE //HANGUL SYLLABLE IEUNG YO PHIEUPH - ,0x9F47 ,0xC6AF //HANGUL SYLLABLE IEUNG YO HIEUH - ,0x9F48 ,0xC6B2 //HANGUL SYLLABLE IEUNG U SSANGKIYEOK - ,0x9F49 ,0xC6B3 //HANGUL SYLLABLE IEUNG U KIYEOKSIOS - ,0x9F4A ,0xC6B5 //HANGUL SYLLABLE IEUNG U NIEUNCIEUC - ,0x9F4B ,0xC6B6 //HANGUL SYLLABLE IEUNG U NIEUNHIEUH - ,0x9F4C ,0xC6B7 //HANGUL SYLLABLE IEUNG U TIKEUT - ,0x9F4D ,0xC6BB //HANGUL SYLLABLE IEUNG U RIEULPIEUP - ,0x9F4E ,0xC6BC //HANGUL SYLLABLE IEUNG U RIEULSIOS - ,0x9F4F ,0xC6BD //HANGUL SYLLABLE IEUNG U RIEULTHIEUTH - ,0x9F50 ,0xC6BE //HANGUL SYLLABLE IEUNG U RIEULPHIEUPH - ,0x9F51 ,0xC6BF //HANGUL SYLLABLE IEUNG U RIEULHIEUH - ,0x9F52 ,0xC6C2 //HANGUL SYLLABLE IEUNG U PIEUPSIOS - ,0x9F53 ,0xC6C4 //HANGUL SYLLABLE IEUNG U SSANGSIOS - ,0x9F54 ,0xC6C6 //HANGUL SYLLABLE IEUNG U CIEUC - ,0x9F55 ,0xC6C7 //HANGUL SYLLABLE IEUNG U CHIEUCH - ,0x9F56 ,0xC6C8 //HANGUL SYLLABLE IEUNG U KHIEUKH - ,0x9F57 ,0xC6C9 //HANGUL SYLLABLE IEUNG U THIEUTH - ,0x9F58 ,0xC6CA //HANGUL SYLLABLE IEUNG U PHIEUPH - ,0x9F59 ,0xC6CB //HANGUL SYLLABLE IEUNG U HIEUH - ,0x9F5A ,0xC6CE //HANGUL SYLLABLE IEUNG WEO SSANGKIYEOK - ,0x9F61 ,0xC6CF //HANGUL SYLLABLE IEUNG WEO KIYEOKSIOS - ,0x9F62 ,0xC6D1 //HANGUL SYLLABLE IEUNG WEO NIEUNCIEUC - ,0x9F63 ,0xC6D2 //HANGUL SYLLABLE IEUNG WEO NIEUNHIEUH - ,0x9F64 ,0xC6D3 //HANGUL SYLLABLE IEUNG WEO TIKEUT - ,0x9F65 ,0xC6D5 //HANGUL SYLLABLE IEUNG WEO RIEULKIYEOK - ,0x9F66 ,0xC6D6 //HANGUL SYLLABLE IEUNG WEO RIEULMIEUM - ,0x9F67 ,0xC6D7 //HANGUL SYLLABLE IEUNG WEO RIEULPIEUP - ,0x9F68 ,0xC6D8 //HANGUL SYLLABLE IEUNG WEO RIEULSIOS - ,0x9F69 ,0xC6D9 //HANGUL SYLLABLE IEUNG WEO RIEULTHIEUTH - ,0x9F6A ,0xC6DA //HANGUL SYLLABLE IEUNG WEO RIEULPHIEUPH - ,0x9F6B ,0xC6DB //HANGUL SYLLABLE IEUNG WEO RIEULHIEUH - ,0x9F6C ,0xC6DE //HANGUL SYLLABLE IEUNG WEO PIEUPSIOS - ,0x9F6D ,0xC6DF //HANGUL SYLLABLE IEUNG WEO SIOS - ,0x9F6E ,0xC6E2 //HANGUL SYLLABLE IEUNG WEO CIEUC - ,0x9F6F ,0xC6E3 //HANGUL SYLLABLE IEUNG WEO CHIEUCH - ,0x9F70 ,0xC6E4 //HANGUL SYLLABLE IEUNG WEO KHIEUKH - ,0x9F71 ,0xC6E5 //HANGUL SYLLABLE IEUNG WEO THIEUTH - ,0x9F72 ,0xC6E6 //HANGUL SYLLABLE IEUNG WEO PHIEUPH - ,0x9F73 ,0xC6E7 //HANGUL SYLLABLE IEUNG WEO HIEUH - ,0x9F74 ,0xC6EA //HANGUL SYLLABLE IEUNG WE SSANGKIYEOK - ,0x9F75 ,0xC6EB //HANGUL SYLLABLE IEUNG WE KIYEOKSIOS - ,0x9F76 ,0xC6ED //HANGUL SYLLABLE IEUNG WE NIEUNCIEUC - ,0x9F77 ,0xC6EE //HANGUL SYLLABLE IEUNG WE NIEUNHIEUH - ,0x9F78 ,0xC6EF //HANGUL SYLLABLE IEUNG WE TIKEUT - ,0x9F79 ,0xC6F1 //HANGUL SYLLABLE IEUNG WE RIEULKIYEOK - ,0x9F7A ,0xC6F2 //HANGUL SYLLABLE IEUNG WE RIEULMIEUM - ,0x9F81 ,0xC6F3 //HANGUL SYLLABLE IEUNG WE RIEULPIEUP - ,0x9F82 ,0xC6F4 //HANGUL SYLLABLE IEUNG WE RIEULSIOS - ,0x9F83 ,0xC6F5 //HANGUL SYLLABLE IEUNG WE RIEULTHIEUTH - ,0x9F84 ,0xC6F6 //HANGUL SYLLABLE IEUNG WE RIEULPHIEUPH - ,0x9F85 ,0xC6F7 //HANGUL SYLLABLE IEUNG WE RIEULHIEUH - ,0x9F86 ,0xC6FA //HANGUL SYLLABLE IEUNG WE PIEUPSIOS - ,0x9F87 ,0xC6FB //HANGUL SYLLABLE IEUNG WE SIOS - ,0x9F88 ,0xC6FC //HANGUL SYLLABLE IEUNG WE SSANGSIOS - ,0x9F89 ,0xC6FE //HANGUL SYLLABLE IEUNG WE CIEUC - ,0x9F8A ,0xC6FF //HANGUL SYLLABLE IEUNG WE CHIEUCH - ,0x9F8B ,0xC700 //HANGUL SYLLABLE IEUNG WE KHIEUKH - ,0x9F8C ,0xC701 //HANGUL SYLLABLE IEUNG WE THIEUTH - ,0x9F8D ,0xC702 //HANGUL SYLLABLE IEUNG WE PHIEUPH - ,0x9F8E ,0xC703 //HANGUL SYLLABLE IEUNG WE HIEUH - ,0x9F8F ,0xC706 //HANGUL SYLLABLE IEUNG WI SSANGKIYEOK - ,0x9F90 ,0xC707 //HANGUL SYLLABLE IEUNG WI KIYEOKSIOS - ,0x9F91 ,0xC709 //HANGUL SYLLABLE IEUNG WI NIEUNCIEUC - ,0x9F92 ,0xC70A //HANGUL SYLLABLE IEUNG WI NIEUNHIEUH - ,0x9F93 ,0xC70B //HANGUL SYLLABLE IEUNG WI TIKEUT - ,0x9F94 ,0xC70D //HANGUL SYLLABLE IEUNG WI RIEULKIYEOK - ,0x9F95 ,0xC70E //HANGUL SYLLABLE IEUNG WI RIEULMIEUM - ,0x9F96 ,0xC70F //HANGUL SYLLABLE IEUNG WI RIEULPIEUP - ,0x9F97 ,0xC710 //HANGUL SYLLABLE IEUNG WI RIEULSIOS - ,0x9F98 ,0xC711 //HANGUL SYLLABLE IEUNG WI RIEULTHIEUTH - ,0x9F99 ,0xC712 //HANGUL SYLLABLE IEUNG WI RIEULPHIEUPH - ,0x9F9A ,0xC713 //HANGUL SYLLABLE IEUNG WI RIEULHIEUH - ,0x9F9B ,0xC716 //HANGUL SYLLABLE IEUNG WI PIEUPSIOS - ,0x9F9C ,0xC718 //HANGUL SYLLABLE IEUNG WI SSANGSIOS - ,0x9F9D ,0xC71A //HANGUL SYLLABLE IEUNG WI CIEUC - ,0x9F9E ,0xC71B //HANGUL SYLLABLE IEUNG WI CHIEUCH - ,0x9F9F ,0xC71C //HANGUL SYLLABLE IEUNG WI KHIEUKH - ,0x9FA0 ,0xC71D //HANGUL SYLLABLE IEUNG WI THIEUTH - ,0x9FA1 ,0xC71E //HANGUL SYLLABLE IEUNG WI PHIEUPH - ,0x9FA2 ,0xC71F //HANGUL SYLLABLE IEUNG WI HIEUH - ,0x9FA3 ,0xC722 //HANGUL SYLLABLE IEUNG YU SSANGKIYEOK - ,0x9FA4 ,0xC723 //HANGUL SYLLABLE IEUNG YU KIYEOKSIOS - ,0x9FA5 ,0xC725 //HANGUL SYLLABLE IEUNG YU NIEUNCIEUC - ,0x9FA6 ,0xC726 //HANGUL SYLLABLE IEUNG YU NIEUNHIEUH - ,0x9FA7 ,0xC727 //HANGUL SYLLABLE IEUNG YU TIKEUT - ,0x9FA8 ,0xC729 //HANGUL SYLLABLE IEUNG YU RIEULKIYEOK - ,0x9FA9 ,0xC72A //HANGUL SYLLABLE IEUNG YU RIEULMIEUM - ,0x9FAA ,0xC72B //HANGUL SYLLABLE IEUNG YU RIEULPIEUP - ,0x9FAB ,0xC72C //HANGUL SYLLABLE IEUNG YU RIEULSIOS - ,0x9FAC ,0xC72D //HANGUL SYLLABLE IEUNG YU RIEULTHIEUTH - ,0x9FAD ,0xC72E //HANGUL SYLLABLE IEUNG YU RIEULPHIEUPH - ,0x9FAE ,0xC72F //HANGUL SYLLABLE IEUNG YU RIEULHIEUH - ,0x9FAF ,0xC732 //HANGUL SYLLABLE IEUNG YU PIEUPSIOS - ,0x9FB0 ,0xC734 //HANGUL SYLLABLE IEUNG YU SSANGSIOS - ,0x9FB1 ,0xC736 //HANGUL SYLLABLE IEUNG YU CIEUC - ,0x9FB2 ,0xC738 //HANGUL SYLLABLE IEUNG YU KHIEUKH - ,0x9FB3 ,0xC739 //HANGUL SYLLABLE IEUNG YU THIEUTH - ,0x9FB4 ,0xC73A //HANGUL SYLLABLE IEUNG YU PHIEUPH - ,0x9FB5 ,0xC73B //HANGUL SYLLABLE IEUNG YU HIEUH - ,0x9FB6 ,0xC73E //HANGUL SYLLABLE IEUNG EU SSANGKIYEOK - ,0x9FB7 ,0xC73F //HANGUL SYLLABLE IEUNG EU KIYEOKSIOS - ,0x9FB8 ,0xC741 //HANGUL SYLLABLE IEUNG EU NIEUNCIEUC - ,0x9FB9 ,0xC742 //HANGUL SYLLABLE IEUNG EU NIEUNHIEUH - ,0x9FBA ,0xC743 //HANGUL SYLLABLE IEUNG EU TIKEUT - ,0x9FBB ,0xC745 //HANGUL SYLLABLE IEUNG EU RIEULKIYEOK - ,0x9FBC ,0xC746 //HANGUL SYLLABLE IEUNG EU RIEULMIEUM - ,0x9FBD ,0xC747 //HANGUL SYLLABLE IEUNG EU RIEULPIEUP - ,0x9FBE ,0xC748 //HANGUL SYLLABLE IEUNG EU RIEULSIOS - ,0x9FBF ,0xC749 //HANGUL SYLLABLE IEUNG EU RIEULTHIEUTH - ,0x9FC0 ,0xC74B //HANGUL SYLLABLE IEUNG EU RIEULHIEUH - ,0x9FC1 ,0xC74E //HANGUL SYLLABLE IEUNG EU PIEUPSIOS - ,0x9FC2 ,0xC750 //HANGUL SYLLABLE IEUNG EU SSANGSIOS - ,0x9FC3 ,0xC759 //HANGUL SYLLABLE IEUNG YI KIYEOK - ,0x9FC4 ,0xC75A //HANGUL SYLLABLE IEUNG YI SSANGKIYEOK - ,0x9FC5 ,0xC75B //HANGUL SYLLABLE IEUNG YI KIYEOKSIOS - ,0x9FC6 ,0xC75D //HANGUL SYLLABLE IEUNG YI NIEUNCIEUC - ,0x9FC7 ,0xC75E //HANGUL SYLLABLE IEUNG YI NIEUNHIEUH - ,0x9FC8 ,0xC75F //HANGUL SYLLABLE IEUNG YI TIKEUT - ,0x9FC9 ,0xC761 //HANGUL SYLLABLE IEUNG YI RIEULKIYEOK - ,0x9FCA ,0xC762 //HANGUL SYLLABLE IEUNG YI RIEULMIEUM - ,0x9FCB ,0xC763 //HANGUL SYLLABLE IEUNG YI RIEULPIEUP - ,0x9FCC ,0xC764 //HANGUL SYLLABLE IEUNG YI RIEULSIOS - ,0x9FCD ,0xC765 //HANGUL SYLLABLE IEUNG YI RIEULTHIEUTH - ,0x9FCE ,0xC766 //HANGUL SYLLABLE IEUNG YI RIEULPHIEUPH - ,0x9FCF ,0xC767 //HANGUL SYLLABLE IEUNG YI RIEULHIEUH - ,0x9FD0 ,0xC769 //HANGUL SYLLABLE IEUNG YI PIEUP - ,0x9FD1 ,0xC76A //HANGUL SYLLABLE IEUNG YI PIEUPSIOS - ,0x9FD2 ,0xC76C //HANGUL SYLLABLE IEUNG YI SSANGSIOS - ,0x9FD3 ,0xC76D //HANGUL SYLLABLE IEUNG YI IEUNG - ,0x9FD4 ,0xC76E //HANGUL SYLLABLE IEUNG YI CIEUC - ,0x9FD5 ,0xC76F //HANGUL SYLLABLE IEUNG YI CHIEUCH - ,0x9FD6 ,0xC770 //HANGUL SYLLABLE IEUNG YI KHIEUKH - ,0x9FD7 ,0xC771 //HANGUL SYLLABLE IEUNG YI THIEUTH - ,0x9FD8 ,0xC772 //HANGUL SYLLABLE IEUNG YI PHIEUPH - ,0x9FD9 ,0xC773 //HANGUL SYLLABLE IEUNG YI HIEUH - ,0x9FDA ,0xC776 //HANGUL SYLLABLE IEUNG I SSANGKIYEOK - ,0x9FDB ,0xC777 //HANGUL SYLLABLE IEUNG I KIYEOKSIOS - ,0x9FDC ,0xC779 //HANGUL SYLLABLE IEUNG I NIEUNCIEUC - ,0x9FDD ,0xC77A //HANGUL SYLLABLE IEUNG I NIEUNHIEUH - ,0x9FDE ,0xC77B //HANGUL SYLLABLE IEUNG I TIKEUT - ,0x9FDF ,0xC77F //HANGUL SYLLABLE IEUNG I RIEULPIEUP - ,0x9FE0 ,0xC780 //HANGUL SYLLABLE IEUNG I RIEULSIOS - ,0x9FE1 ,0xC781 //HANGUL SYLLABLE IEUNG I RIEULTHIEUTH - ,0x9FE2 ,0xC782 //HANGUL SYLLABLE IEUNG I RIEULPHIEUPH - ,0x9FE3 ,0xC786 //HANGUL SYLLABLE IEUNG I PIEUPSIOS - ,0x9FE4 ,0xC78B //HANGUL SYLLABLE IEUNG I CHIEUCH - ,0x9FE5 ,0xC78C //HANGUL SYLLABLE IEUNG I KHIEUKH - ,0x9FE6 ,0xC78D //HANGUL SYLLABLE IEUNG I THIEUTH - ,0x9FE7 ,0xC78F //HANGUL SYLLABLE IEUNG I HIEUH - ,0x9FE8 ,0xC792 //HANGUL SYLLABLE CIEUC A SSANGKIYEOK - ,0x9FE9 ,0xC793 //HANGUL SYLLABLE CIEUC A KIYEOKSIOS - ,0x9FEA ,0xC795 //HANGUL SYLLABLE CIEUC A NIEUNCIEUC - ,0x9FEB ,0xC799 //HANGUL SYLLABLE CIEUC A RIEULKIYEOK - ,0x9FEC ,0xC79B //HANGUL SYLLABLE CIEUC A RIEULPIEUP - ,0x9FED ,0xC79C //HANGUL SYLLABLE CIEUC A RIEULSIOS - ,0x9FEE ,0xC79D //HANGUL SYLLABLE CIEUC A RIEULTHIEUTH - ,0x9FEF ,0xC79E //HANGUL SYLLABLE CIEUC A RIEULPHIEUPH - ,0x9FF0 ,0xC79F //HANGUL SYLLABLE CIEUC A RIEULHIEUH - ,0x9FF1 ,0xC7A2 //HANGUL SYLLABLE CIEUC A PIEUPSIOS - ,0x9FF2 ,0xC7A7 //HANGUL SYLLABLE CIEUC A CHIEUCH - ,0x9FF3 ,0xC7A8 //HANGUL SYLLABLE CIEUC A KHIEUKH - ,0x9FF4 ,0xC7A9 //HANGUL SYLLABLE CIEUC A THIEUTH - ,0x9FF5 ,0xC7AA //HANGUL SYLLABLE CIEUC A PHIEUPH - ,0x9FF6 ,0xC7AB //HANGUL SYLLABLE CIEUC A HIEUH - ,0x9FF7 ,0xC7AE //HANGUL SYLLABLE CIEUC AE SSANGKIYEOK - ,0x9FF8 ,0xC7AF //HANGUL SYLLABLE CIEUC AE KIYEOKSIOS - ,0x9FF9 ,0xC7B1 //HANGUL SYLLABLE CIEUC AE NIEUNCIEUC - ,0x9FFA ,0xC7B2 //HANGUL SYLLABLE CIEUC AE NIEUNHIEUH - ,0x9FFB ,0xC7B3 //HANGUL SYLLABLE CIEUC AE TIKEUT - ,0x9FFC ,0xC7B5 //HANGUL SYLLABLE CIEUC AE RIEULKIYEOK - ,0x9FFD ,0xC7B6 //HANGUL SYLLABLE CIEUC AE RIEULMIEUM - ,0x9FFE ,0xC7B7 //HANGUL SYLLABLE CIEUC AE RIEULPIEUP - ,0xA041 ,0xC7B8 //HANGUL SYLLABLE CIEUC AE RIEULSIOS - ,0xA042 ,0xC7B9 //HANGUL SYLLABLE CIEUC AE RIEULTHIEUTH - ,0xA043 ,0xC7BA //HANGUL SYLLABLE CIEUC AE RIEULPHIEUPH - ,0xA044 ,0xC7BB //HANGUL SYLLABLE CIEUC AE RIEULHIEUH - ,0xA045 ,0xC7BE //HANGUL SYLLABLE CIEUC AE PIEUPSIOS - ,0xA046 ,0xC7C2 //HANGUL SYLLABLE CIEUC AE CIEUC - ,0xA047 ,0xC7C3 //HANGUL SYLLABLE CIEUC AE CHIEUCH - ,0xA048 ,0xC7C4 //HANGUL SYLLABLE CIEUC AE KHIEUKH - ,0xA049 ,0xC7C5 //HANGUL SYLLABLE CIEUC AE THIEUTH - ,0xA04A ,0xC7C6 //HANGUL SYLLABLE CIEUC AE PHIEUPH - ,0xA04B ,0xC7C7 //HANGUL SYLLABLE CIEUC AE HIEUH - ,0xA04C ,0xC7CA //HANGUL SYLLABLE CIEUC YA SSANGKIYEOK - ,0xA04D ,0xC7CB //HANGUL SYLLABLE CIEUC YA KIYEOKSIOS - ,0xA04E ,0xC7CD //HANGUL SYLLABLE CIEUC YA NIEUNCIEUC - ,0xA04F ,0xC7CF //HANGUL SYLLABLE CIEUC YA TIKEUT - ,0xA050 ,0xC7D1 //HANGUL SYLLABLE CIEUC YA RIEULKIYEOK - ,0xA051 ,0xC7D2 //HANGUL SYLLABLE CIEUC YA RIEULMIEUM - ,0xA052 ,0xC7D3 //HANGUL SYLLABLE CIEUC YA RIEULPIEUP - ,0xA053 ,0xC7D4 //HANGUL SYLLABLE CIEUC YA RIEULSIOS - ,0xA054 ,0xC7D5 //HANGUL SYLLABLE CIEUC YA RIEULTHIEUTH - ,0xA055 ,0xC7D6 //HANGUL SYLLABLE CIEUC YA RIEULPHIEUPH - ,0xA056 ,0xC7D7 //HANGUL SYLLABLE CIEUC YA RIEULHIEUH - ,0xA057 ,0xC7D9 //HANGUL SYLLABLE CIEUC YA PIEUP - ,0xA058 ,0xC7DA //HANGUL SYLLABLE CIEUC YA PIEUPSIOS - ,0xA059 ,0xC7DB //HANGUL SYLLABLE CIEUC YA SIOS - ,0xA05A ,0xC7DC //HANGUL SYLLABLE CIEUC YA SSANGSIOS - ,0xA061 ,0xC7DE //HANGUL SYLLABLE CIEUC YA CIEUC - ,0xA062 ,0xC7DF //HANGUL SYLLABLE CIEUC YA CHIEUCH - ,0xA063 ,0xC7E0 //HANGUL SYLLABLE CIEUC YA KHIEUKH - ,0xA064 ,0xC7E1 //HANGUL SYLLABLE CIEUC YA THIEUTH - ,0xA065 ,0xC7E2 //HANGUL SYLLABLE CIEUC YA PHIEUPH - ,0xA066 ,0xC7E3 //HANGUL SYLLABLE CIEUC YA HIEUH - ,0xA067 ,0xC7E5 //HANGUL SYLLABLE CIEUC YAE KIYEOK - ,0xA068 ,0xC7E6 //HANGUL SYLLABLE CIEUC YAE SSANGKIYEOK - ,0xA069 ,0xC7E7 //HANGUL SYLLABLE CIEUC YAE KIYEOKSIOS - ,0xA06A ,0xC7E9 //HANGUL SYLLABLE CIEUC YAE NIEUNCIEUC - ,0xA06B ,0xC7EA //HANGUL SYLLABLE CIEUC YAE NIEUNHIEUH - ,0xA06C ,0xC7EB //HANGUL SYLLABLE CIEUC YAE TIKEUT - ,0xA06D ,0xC7ED //HANGUL SYLLABLE CIEUC YAE RIEULKIYEOK - ,0xA06E ,0xC7EE //HANGUL SYLLABLE CIEUC YAE RIEULMIEUM - ,0xA06F ,0xC7EF //HANGUL SYLLABLE CIEUC YAE RIEULPIEUP - ,0xA070 ,0xC7F0 //HANGUL SYLLABLE CIEUC YAE RIEULSIOS - ,0xA071 ,0xC7F1 //HANGUL SYLLABLE CIEUC YAE RIEULTHIEUTH - ,0xA072 ,0xC7F2 //HANGUL SYLLABLE CIEUC YAE RIEULPHIEUPH - ,0xA073 ,0xC7F3 //HANGUL SYLLABLE CIEUC YAE RIEULHIEUH - ,0xA074 ,0xC7F4 //HANGUL SYLLABLE CIEUC YAE MIEUM - ,0xA075 ,0xC7F5 //HANGUL SYLLABLE CIEUC YAE PIEUP - ,0xA076 ,0xC7F6 //HANGUL SYLLABLE CIEUC YAE PIEUPSIOS - ,0xA077 ,0xC7F7 //HANGUL SYLLABLE CIEUC YAE SIOS - ,0xA078 ,0xC7F8 //HANGUL SYLLABLE CIEUC YAE SSANGSIOS - ,0xA079 ,0xC7F9 //HANGUL SYLLABLE CIEUC YAE IEUNG - ,0xA07A ,0xC7FA //HANGUL SYLLABLE CIEUC YAE CIEUC - ,0xA081 ,0xC7FB //HANGUL SYLLABLE CIEUC YAE CHIEUCH - ,0xA082 ,0xC7FC //HANGUL SYLLABLE CIEUC YAE KHIEUKH - ,0xA083 ,0xC7FD //HANGUL SYLLABLE CIEUC YAE THIEUTH - ,0xA084 ,0xC7FE //HANGUL SYLLABLE CIEUC YAE PHIEUPH - ,0xA085 ,0xC7FF //HANGUL SYLLABLE CIEUC YAE HIEUH - ,0xA086 ,0xC802 //HANGUL SYLLABLE CIEUC EO SSANGKIYEOK - ,0xA087 ,0xC803 //HANGUL SYLLABLE CIEUC EO KIYEOKSIOS - ,0xA088 ,0xC805 //HANGUL SYLLABLE CIEUC EO NIEUNCIEUC - ,0xA089 ,0xC806 //HANGUL SYLLABLE CIEUC EO NIEUNHIEUH - ,0xA08A ,0xC807 //HANGUL SYLLABLE CIEUC EO TIKEUT - ,0xA08B ,0xC809 //HANGUL SYLLABLE CIEUC EO RIEULKIYEOK - ,0xA08C ,0xC80B //HANGUL SYLLABLE CIEUC EO RIEULPIEUP - ,0xA08D ,0xC80C //HANGUL SYLLABLE CIEUC EO RIEULSIOS - ,0xA08E ,0xC80D //HANGUL SYLLABLE CIEUC EO RIEULTHIEUTH - ,0xA08F ,0xC80E //HANGUL SYLLABLE CIEUC EO RIEULPHIEUPH - ,0xA090 ,0xC80F //HANGUL SYLLABLE CIEUC EO RIEULHIEUH - ,0xA091 ,0xC812 //HANGUL SYLLABLE CIEUC EO PIEUPSIOS - ,0xA092 ,0xC814 //HANGUL SYLLABLE CIEUC EO SSANGSIOS - ,0xA093 ,0xC817 //HANGUL SYLLABLE CIEUC EO CHIEUCH - ,0xA094 ,0xC818 //HANGUL SYLLABLE CIEUC EO KHIEUKH - ,0xA095 ,0xC819 //HANGUL SYLLABLE CIEUC EO THIEUTH - ,0xA096 ,0xC81A //HANGUL SYLLABLE CIEUC EO PHIEUPH - ,0xA097 ,0xC81B //HANGUL SYLLABLE CIEUC EO HIEUH - ,0xA098 ,0xC81E //HANGUL SYLLABLE CIEUC E SSANGKIYEOK - ,0xA099 ,0xC81F //HANGUL SYLLABLE CIEUC E KIYEOKSIOS - ,0xA09A ,0xC821 //HANGUL SYLLABLE CIEUC E NIEUNCIEUC - ,0xA09B ,0xC822 //HANGUL SYLLABLE CIEUC E NIEUNHIEUH - ,0xA09C ,0xC823 //HANGUL SYLLABLE CIEUC E TIKEUT - ,0xA09D ,0xC825 //HANGUL SYLLABLE CIEUC E RIEULKIYEOK - ,0xA09E ,0xC826 //HANGUL SYLLABLE CIEUC E RIEULMIEUM - ,0xA09F ,0xC827 //HANGUL SYLLABLE CIEUC E RIEULPIEUP - ,0xA0A0 ,0xC828 //HANGUL SYLLABLE CIEUC E RIEULSIOS - ,0xA0A1 ,0xC829 //HANGUL SYLLABLE CIEUC E RIEULTHIEUTH - ,0xA0A2 ,0xC82A //HANGUL SYLLABLE CIEUC E RIEULPHIEUPH - ,0xA0A3 ,0xC82B //HANGUL SYLLABLE CIEUC E RIEULHIEUH - ,0xA0A4 ,0xC82E //HANGUL SYLLABLE CIEUC E PIEUPSIOS - ,0xA0A5 ,0xC830 //HANGUL SYLLABLE CIEUC E SSANGSIOS - ,0xA0A6 ,0xC832 //HANGUL SYLLABLE CIEUC E CIEUC - ,0xA0A7 ,0xC833 //HANGUL SYLLABLE CIEUC E CHIEUCH - ,0xA0A8 ,0xC834 //HANGUL SYLLABLE CIEUC E KHIEUKH - ,0xA0A9 ,0xC835 //HANGUL SYLLABLE CIEUC E THIEUTH - ,0xA0AA ,0xC836 //HANGUL SYLLABLE CIEUC E PHIEUPH - ,0xA0AB ,0xC837 //HANGUL SYLLABLE CIEUC E HIEUH - ,0xA0AC ,0xC839 //HANGUL SYLLABLE CIEUC YEO KIYEOK - ,0xA0AD ,0xC83A //HANGUL SYLLABLE CIEUC YEO SSANGKIYEOK - ,0xA0AE ,0xC83B //HANGUL SYLLABLE CIEUC YEO KIYEOKSIOS - ,0xA0AF ,0xC83D //HANGUL SYLLABLE CIEUC YEO NIEUNCIEUC - ,0xA0B0 ,0xC83E //HANGUL SYLLABLE CIEUC YEO NIEUNHIEUH - ,0xA0B1 ,0xC83F //HANGUL SYLLABLE CIEUC YEO TIKEUT - ,0xA0B2 ,0xC841 //HANGUL SYLLABLE CIEUC YEO RIEULKIYEOK - ,0xA0B3 ,0xC842 //HANGUL SYLLABLE CIEUC YEO RIEULMIEUM - ,0xA0B4 ,0xC843 //HANGUL SYLLABLE CIEUC YEO RIEULPIEUP - ,0xA0B5 ,0xC844 //HANGUL SYLLABLE CIEUC YEO RIEULSIOS - ,0xA0B6 ,0xC845 //HANGUL SYLLABLE CIEUC YEO RIEULTHIEUTH - ,0xA0B7 ,0xC846 //HANGUL SYLLABLE CIEUC YEO RIEULPHIEUPH - ,0xA0B8 ,0xC847 //HANGUL SYLLABLE CIEUC YEO RIEULHIEUH - ,0xA0B9 ,0xC84A //HANGUL SYLLABLE CIEUC YEO PIEUPSIOS - ,0xA0BA ,0xC84B //HANGUL SYLLABLE CIEUC YEO SIOS - ,0xA0BB ,0xC84E //HANGUL SYLLABLE CIEUC YEO CIEUC - ,0xA0BC ,0xC84F //HANGUL SYLLABLE CIEUC YEO CHIEUCH - ,0xA0BD ,0xC850 //HANGUL SYLLABLE CIEUC YEO KHIEUKH - ,0xA0BE ,0xC851 //HANGUL SYLLABLE CIEUC YEO THIEUTH - ,0xA0BF ,0xC852 //HANGUL SYLLABLE CIEUC YEO PHIEUPH - ,0xA0C0 ,0xC853 //HANGUL SYLLABLE CIEUC YEO HIEUH - ,0xA0C1 ,0xC855 //HANGUL SYLLABLE CIEUC YE KIYEOK - ,0xA0C2 ,0xC856 //HANGUL SYLLABLE CIEUC YE SSANGKIYEOK - ,0xA0C3 ,0xC857 //HANGUL SYLLABLE CIEUC YE KIYEOKSIOS - ,0xA0C4 ,0xC858 //HANGUL SYLLABLE CIEUC YE NIEUN - ,0xA0C5 ,0xC859 //HANGUL SYLLABLE CIEUC YE NIEUNCIEUC - ,0xA0C6 ,0xC85A //HANGUL SYLLABLE CIEUC YE NIEUNHIEUH - ,0xA0C7 ,0xC85B //HANGUL SYLLABLE CIEUC YE TIKEUT - ,0xA0C8 ,0xC85C //HANGUL SYLLABLE CIEUC YE RIEUL - ,0xA0C9 ,0xC85D //HANGUL SYLLABLE CIEUC YE RIEULKIYEOK - ,0xA0CA ,0xC85E //HANGUL SYLLABLE CIEUC YE RIEULMIEUM - ,0xA0CB ,0xC85F //HANGUL SYLLABLE CIEUC YE RIEULPIEUP - ,0xA0CC ,0xC860 //HANGUL SYLLABLE CIEUC YE RIEULSIOS - ,0xA0CD ,0xC861 //HANGUL SYLLABLE CIEUC YE RIEULTHIEUTH - ,0xA0CE ,0xC862 //HANGUL SYLLABLE CIEUC YE RIEULPHIEUPH - ,0xA0CF ,0xC863 //HANGUL SYLLABLE CIEUC YE RIEULHIEUH - ,0xA0D0 ,0xC864 //HANGUL SYLLABLE CIEUC YE MIEUM - ,0xA0D1 ,0xC865 //HANGUL SYLLABLE CIEUC YE PIEUP - ,0xA0D2 ,0xC866 //HANGUL SYLLABLE CIEUC YE PIEUPSIOS - ,0xA0D3 ,0xC867 //HANGUL SYLLABLE CIEUC YE SIOS - ,0xA0D4 ,0xC868 //HANGUL SYLLABLE CIEUC YE SSANGSIOS - ,0xA0D5 ,0xC869 //HANGUL SYLLABLE CIEUC YE IEUNG - ,0xA0D6 ,0xC86A //HANGUL SYLLABLE CIEUC YE CIEUC - ,0xA0D7 ,0xC86B //HANGUL SYLLABLE CIEUC YE CHIEUCH - ,0xA0D8 ,0xC86C //HANGUL SYLLABLE CIEUC YE KHIEUKH - ,0xA0D9 ,0xC86D //HANGUL SYLLABLE CIEUC YE THIEUTH - ,0xA0DA ,0xC86E //HANGUL SYLLABLE CIEUC YE PHIEUPH - ,0xA0DB ,0xC86F //HANGUL SYLLABLE CIEUC YE HIEUH - ,0xA0DC ,0xC872 //HANGUL SYLLABLE CIEUC O SSANGKIYEOK - ,0xA0DD ,0xC873 //HANGUL SYLLABLE CIEUC O KIYEOKSIOS - ,0xA0DE ,0xC875 //HANGUL SYLLABLE CIEUC O NIEUNCIEUC - ,0xA0DF ,0xC876 //HANGUL SYLLABLE CIEUC O NIEUNHIEUH - ,0xA0E0 ,0xC877 //HANGUL SYLLABLE CIEUC O TIKEUT - ,0xA0E1 ,0xC879 //HANGUL SYLLABLE CIEUC O RIEULKIYEOK - ,0xA0E2 ,0xC87B //HANGUL SYLLABLE CIEUC O RIEULPIEUP - ,0xA0E3 ,0xC87C //HANGUL SYLLABLE CIEUC O RIEULSIOS - ,0xA0E4 ,0xC87D //HANGUL SYLLABLE CIEUC O RIEULTHIEUTH - ,0xA0E5 ,0xC87E //HANGUL SYLLABLE CIEUC O RIEULPHIEUPH - ,0xA0E6 ,0xC87F //HANGUL SYLLABLE CIEUC O RIEULHIEUH - ,0xA0E7 ,0xC882 //HANGUL SYLLABLE CIEUC O PIEUPSIOS - ,0xA0E8 ,0xC884 //HANGUL SYLLABLE CIEUC O SSANGSIOS - ,0xA0E9 ,0xC888 //HANGUL SYLLABLE CIEUC O KHIEUKH - ,0xA0EA ,0xC889 //HANGUL SYLLABLE CIEUC O THIEUTH - ,0xA0EB ,0xC88A //HANGUL SYLLABLE CIEUC O PHIEUPH - ,0xA0EC ,0xC88E //HANGUL SYLLABLE CIEUC WA SSANGKIYEOK - ,0xA0ED ,0xC88F //HANGUL SYLLABLE CIEUC WA KIYEOKSIOS - ,0xA0EE ,0xC890 //HANGUL SYLLABLE CIEUC WA NIEUN - ,0xA0EF ,0xC891 //HANGUL SYLLABLE CIEUC WA NIEUNCIEUC - ,0xA0F0 ,0xC892 //HANGUL SYLLABLE CIEUC WA NIEUNHIEUH - ,0xA0F1 ,0xC893 //HANGUL SYLLABLE CIEUC WA TIKEUT - ,0xA0F2 ,0xC895 //HANGUL SYLLABLE CIEUC WA RIEULKIYEOK - ,0xA0F3 ,0xC896 //HANGUL SYLLABLE CIEUC WA RIEULMIEUM - ,0xA0F4 ,0xC897 //HANGUL SYLLABLE CIEUC WA RIEULPIEUP - ,0xA0F5 ,0xC898 //HANGUL SYLLABLE CIEUC WA RIEULSIOS - ,0xA0F6 ,0xC899 //HANGUL SYLLABLE CIEUC WA RIEULTHIEUTH - ,0xA0F7 ,0xC89A //HANGUL SYLLABLE CIEUC WA RIEULPHIEUPH - ,0xA0F8 ,0xC89B //HANGUL SYLLABLE CIEUC WA RIEULHIEUH - ,0xA0F9 ,0xC89C //HANGUL SYLLABLE CIEUC WA MIEUM - ,0xA0FA ,0xC89E //HANGUL SYLLABLE CIEUC WA PIEUPSIOS - ,0xA0FB ,0xC8A0 //HANGUL SYLLABLE CIEUC WA SSANGSIOS - ,0xA0FC ,0xC8A2 //HANGUL SYLLABLE CIEUC WA CIEUC - ,0xA0FD ,0xC8A3 //HANGUL SYLLABLE CIEUC WA CHIEUCH - ,0xA0FE ,0xC8A4 //HANGUL SYLLABLE CIEUC WA KHIEUKH - ,0xA141 ,0xC8A5 //HANGUL SYLLABLE CIEUC WA THIEUTH - ,0xA142 ,0xC8A6 //HANGUL SYLLABLE CIEUC WA PHIEUPH - ,0xA143 ,0xC8A7 //HANGUL SYLLABLE CIEUC WA HIEUH - ,0xA144 ,0xC8A9 //HANGUL SYLLABLE CIEUC WAE KIYEOK - ,0xA145 ,0xC8AA //HANGUL SYLLABLE CIEUC WAE SSANGKIYEOK - ,0xA146 ,0xC8AB //HANGUL SYLLABLE CIEUC WAE KIYEOKSIOS - ,0xA147 ,0xC8AC //HANGUL SYLLABLE CIEUC WAE NIEUN - ,0xA148 ,0xC8AD //HANGUL SYLLABLE CIEUC WAE NIEUNCIEUC - ,0xA149 ,0xC8AE //HANGUL SYLLABLE CIEUC WAE NIEUNHIEUH - ,0xA14A ,0xC8AF //HANGUL SYLLABLE CIEUC WAE TIKEUT - ,0xA14B ,0xC8B0 //HANGUL SYLLABLE CIEUC WAE RIEUL - ,0xA14C ,0xC8B1 //HANGUL SYLLABLE CIEUC WAE RIEULKIYEOK - ,0xA14D ,0xC8B2 //HANGUL SYLLABLE CIEUC WAE RIEULMIEUM - ,0xA14E ,0xC8B3 //HANGUL SYLLABLE CIEUC WAE RIEULPIEUP - ,0xA14F ,0xC8B4 //HANGUL SYLLABLE CIEUC WAE RIEULSIOS - ,0xA150 ,0xC8B5 //HANGUL SYLLABLE CIEUC WAE RIEULTHIEUTH - ,0xA151 ,0xC8B6 //HANGUL SYLLABLE CIEUC WAE RIEULPHIEUPH - ,0xA152 ,0xC8B7 //HANGUL SYLLABLE CIEUC WAE RIEULHIEUH - ,0xA153 ,0xC8B8 //HANGUL SYLLABLE CIEUC WAE MIEUM - ,0xA154 ,0xC8B9 //HANGUL SYLLABLE CIEUC WAE PIEUP - ,0xA155 ,0xC8BA //HANGUL SYLLABLE CIEUC WAE PIEUPSIOS - ,0xA156 ,0xC8BB //HANGUL SYLLABLE CIEUC WAE SIOS - ,0xA157 ,0xC8BE //HANGUL SYLLABLE CIEUC WAE CIEUC - ,0xA158 ,0xC8BF //HANGUL SYLLABLE CIEUC WAE CHIEUCH - ,0xA159 ,0xC8C0 //HANGUL SYLLABLE CIEUC WAE KHIEUKH - ,0xA15A ,0xC8C1 //HANGUL SYLLABLE CIEUC WAE THIEUTH - ,0xA161 ,0xC8C2 //HANGUL SYLLABLE CIEUC WAE PHIEUPH - ,0xA162 ,0xC8C3 //HANGUL SYLLABLE CIEUC WAE HIEUH - ,0xA163 ,0xC8C5 //HANGUL SYLLABLE CIEUC OE KIYEOK - ,0xA164 ,0xC8C6 //HANGUL SYLLABLE CIEUC OE SSANGKIYEOK - ,0xA165 ,0xC8C7 //HANGUL SYLLABLE CIEUC OE KIYEOKSIOS - ,0xA166 ,0xC8C9 //HANGUL SYLLABLE CIEUC OE NIEUNCIEUC - ,0xA167 ,0xC8CA //HANGUL SYLLABLE CIEUC OE NIEUNHIEUH - ,0xA168 ,0xC8CB //HANGUL SYLLABLE CIEUC OE TIKEUT - ,0xA169 ,0xC8CD //HANGUL SYLLABLE CIEUC OE RIEULKIYEOK - ,0xA16A ,0xC8CE //HANGUL SYLLABLE CIEUC OE RIEULMIEUM - ,0xA16B ,0xC8CF //HANGUL SYLLABLE CIEUC OE RIEULPIEUP - ,0xA16C ,0xC8D0 //HANGUL SYLLABLE CIEUC OE RIEULSIOS - ,0xA16D ,0xC8D1 //HANGUL SYLLABLE CIEUC OE RIEULTHIEUTH - ,0xA16E ,0xC8D2 //HANGUL SYLLABLE CIEUC OE RIEULPHIEUPH - ,0xA16F ,0xC8D3 //HANGUL SYLLABLE CIEUC OE RIEULHIEUH - ,0xA170 ,0xC8D6 //HANGUL SYLLABLE CIEUC OE PIEUPSIOS - ,0xA171 ,0xC8D8 //HANGUL SYLLABLE CIEUC OE SSANGSIOS - ,0xA172 ,0xC8DA //HANGUL SYLLABLE CIEUC OE CIEUC - ,0xA173 ,0xC8DB //HANGUL SYLLABLE CIEUC OE CHIEUCH - ,0xA174 ,0xC8DC //HANGUL SYLLABLE CIEUC OE KHIEUKH - ,0xA175 ,0xC8DD //HANGUL SYLLABLE CIEUC OE THIEUTH - ,0xA176 ,0xC8DE //HANGUL SYLLABLE CIEUC OE PHIEUPH - ,0xA177 ,0xC8DF //HANGUL SYLLABLE CIEUC OE HIEUH - ,0xA178 ,0xC8E2 //HANGUL SYLLABLE CIEUC YO SSANGKIYEOK - ,0xA179 ,0xC8E3 //HANGUL SYLLABLE CIEUC YO KIYEOKSIOS - ,0xA17A ,0xC8E5 //HANGUL SYLLABLE CIEUC YO NIEUNCIEUC - ,0xA181 ,0xC8E6 //HANGUL SYLLABLE CIEUC YO NIEUNHIEUH - ,0xA182 ,0xC8E7 //HANGUL SYLLABLE CIEUC YO TIKEUT - ,0xA183 ,0xC8E8 //HANGUL SYLLABLE CIEUC YO RIEUL - ,0xA184 ,0xC8E9 //HANGUL SYLLABLE CIEUC YO RIEULKIYEOK - ,0xA185 ,0xC8EA //HANGUL SYLLABLE CIEUC YO RIEULMIEUM - ,0xA186 ,0xC8EB //HANGUL SYLLABLE CIEUC YO RIEULPIEUP - ,0xA187 ,0xC8EC //HANGUL SYLLABLE CIEUC YO RIEULSIOS - ,0xA188 ,0xC8ED //HANGUL SYLLABLE CIEUC YO RIEULTHIEUTH - ,0xA189 ,0xC8EE //HANGUL SYLLABLE CIEUC YO RIEULPHIEUPH - ,0xA18A ,0xC8EF //HANGUL SYLLABLE CIEUC YO RIEULHIEUH - ,0xA18B ,0xC8F0 //HANGUL SYLLABLE CIEUC YO MIEUM - ,0xA18C ,0xC8F1 //HANGUL SYLLABLE CIEUC YO PIEUP - ,0xA18D ,0xC8F2 //HANGUL SYLLABLE CIEUC YO PIEUPSIOS - ,0xA18E ,0xC8F3 //HANGUL SYLLABLE CIEUC YO SIOS - ,0xA18F ,0xC8F4 //HANGUL SYLLABLE CIEUC YO SSANGSIOS - ,0xA190 ,0xC8F6 //HANGUL SYLLABLE CIEUC YO CIEUC - ,0xA191 ,0xC8F7 //HANGUL SYLLABLE CIEUC YO CHIEUCH - ,0xA192 ,0xC8F8 //HANGUL SYLLABLE CIEUC YO KHIEUKH - ,0xA193 ,0xC8F9 //HANGUL SYLLABLE CIEUC YO THIEUTH - ,0xA194 ,0xC8FA //HANGUL SYLLABLE CIEUC YO PHIEUPH - ,0xA195 ,0xC8FB //HANGUL SYLLABLE CIEUC YO HIEUH - ,0xA196 ,0xC8FE //HANGUL SYLLABLE CIEUC U SSANGKIYEOK - ,0xA197 ,0xC8FF //HANGUL SYLLABLE CIEUC U KIYEOKSIOS - ,0xA198 ,0xC901 //HANGUL SYLLABLE CIEUC U NIEUNCIEUC - ,0xA199 ,0xC902 //HANGUL SYLLABLE CIEUC U NIEUNHIEUH - ,0xA19A ,0xC903 //HANGUL SYLLABLE CIEUC U TIKEUT - ,0xA19B ,0xC907 //HANGUL SYLLABLE CIEUC U RIEULPIEUP - ,0xA19C ,0xC908 //HANGUL SYLLABLE CIEUC U RIEULSIOS - ,0xA19D ,0xC909 //HANGUL SYLLABLE CIEUC U RIEULTHIEUTH - ,0xA19E ,0xC90A //HANGUL SYLLABLE CIEUC U RIEULPHIEUPH - ,0xA19F ,0xC90B //HANGUL SYLLABLE CIEUC U RIEULHIEUH - ,0xA1A0 ,0xC90E //HANGUL SYLLABLE CIEUC U PIEUPSIOS - ,0xA1A1 ,0x3000 //IDEOGRAPHIC SPACE - ,0xA1A2 ,0x3001 //IDEOGRAPHIC COMMA - ,0xA1A3 ,0x3002 //IDEOGRAPHIC FULL STOP - ,0xA1A4 ,0x00B7 //MIDDLE DOT - ,0xA1A5 ,0x2025 //TWO DOT LEADER - ,0xA1A6 ,0x2026 //HORIZONTAL ELLIPSIS - ,0xA1A7 ,0x00A8 //DIAERESIS - ,0xA1A8 ,0x3003 //DITTO MARK - ,0xA1A9 ,0x00AD //SOFT HYPHEN - ,0xA1AA ,0x2015 //HORIZONTAL BAR - ,0xA1AB ,0x2225 //PARALLEL TO - ,0xA1AC ,0xFF3C //FULLWIDTH REVERSE SOLIDUS - ,0xA1AD ,0x223C //TILDE OPERATOR - ,0xA1AE ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0xA1AF ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0xA1B0 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0xA1B1 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0xA1B2 ,0x3014 //LEFT TORTOISE SHELL BRACKET - ,0xA1B3 ,0x3015 //RIGHT TORTOISE SHELL BRACKET - ,0xA1B4 ,0x3008 //LEFT ANGLE BRACKET - ,0xA1B5 ,0x3009 //RIGHT ANGLE BRACKET - ,0xA1B6 ,0x300A //LEFT DOUBLE ANGLE BRACKET - ,0xA1B7 ,0x300B //RIGHT DOUBLE ANGLE BRACKET - ,0xA1B8 ,0x300C //LEFT CORNER BRACKET - ,0xA1B9 ,0x300D //RIGHT CORNER BRACKET - ,0xA1BA ,0x300E //LEFT WHITE CORNER BRACKET - ,0xA1BB ,0x300F //RIGHT WHITE CORNER BRACKET - ,0xA1BC ,0x3010 //LEFT BLACK LENTICULAR BRACKET - ,0xA1BD ,0x3011 //RIGHT BLACK LENTICULAR BRACKET - ,0xA1BE ,0x00B1 //PLUS-MINUS SIGN - ,0xA1BF ,0x00D7 //MULTIPLICATION SIGN - ,0xA1C0 ,0x00F7 //DIVISION SIGN - ,0xA1C1 ,0x2260 //NOT EQUAL TO - ,0xA1C2 ,0x2264 //LESS-THAN OR EQUAL TO - ,0xA1C3 ,0x2265 //GREATER-THAN OR EQUAL TO - ,0xA1C4 ,0x221E //INFINITY - ,0xA1C5 ,0x2234 //THEREFORE - ,0xA1C6 ,0x00B0 //DEGREE SIGN - ,0xA1C7 ,0x2032 //PRIME - ,0xA1C8 ,0x2033 //DOUBLE PRIME - ,0xA1C9 ,0x2103 //DEGREE CELSIUS - ,0xA1CA ,0x212B //ANGSTROM SIGN - ,0xA1CB ,0xFFE0 //FULLWIDTH CENT SIGN - ,0xA1CC ,0xFFE1 //FULLWIDTH POUND SIGN - ,0xA1CD ,0xFFE5 //FULLWIDTH YEN SIGN - ,0xA1CE ,0x2642 //MALE SIGN - ,0xA1CF ,0x2640 //FEMALE SIGN - ,0xA1D0 ,0x2220 //ANGLE - ,0xA1D1 ,0x22A5 //UP TACK - ,0xA1D2 ,0x2312 //ARC - ,0xA1D3 ,0x2202 //PARTIAL DIFFERENTIAL - ,0xA1D4 ,0x2207 //NABLA - ,0xA1D5 ,0x2261 //IDENTICAL TO - ,0xA1D6 ,0x2252 //APPROXIMATELY EQUAL TO OR THE IMAGE OF - ,0xA1D7 ,0x00A7 //SECTION SIGN - ,0xA1D8 ,0x203B //REFERENCE MARK - ,0xA1D9 ,0x2606 //WHITE STAR - ,0xA1DA ,0x2605 //BLACK STAR - ,0xA1DB ,0x25CB //WHITE CIRCLE - ,0xA1DC ,0x25CF //BLACK CIRCLE - ,0xA1DD ,0x25CE //BULLSEYE - ,0xA1DE ,0x25C7 //WHITE DIAMOND - ,0xA1DF ,0x25C6 //BLACK DIAMOND - ,0xA1E0 ,0x25A1 //WHITE SQUARE - ,0xA1E1 ,0x25A0 //BLACK SQUARE - ,0xA1E2 ,0x25B3 //WHITE UP-POINTING TRIANGLE - ,0xA1E3 ,0x25B2 //BLACK UP-POINTING TRIANGLE - ,0xA1E4 ,0x25BD //WHITE DOWN-POINTING TRIANGLE - ,0xA1E5 ,0x25BC //BLACK DOWN-POINTING TRIANGLE - ,0xA1E6 ,0x2192 //RIGHTWARDS ARROW - ,0xA1E7 ,0x2190 //LEFTWARDS ARROW - ,0xA1E8 ,0x2191 //UPWARDS ARROW - ,0xA1E9 ,0x2193 //DOWNWARDS ARROW - ,0xA1EA ,0x2194 //LEFT RIGHT ARROW - ,0xA1EB ,0x3013 //GETA MARK - ,0xA1EC ,0x226A //MUCH LESS-THAN - ,0xA1ED ,0x226B //MUCH GREATER-THAN - ,0xA1EE ,0x221A //SQUARE ROOT - ,0xA1EF ,0x223D //REVERSED TILDE - ,0xA1F0 ,0x221D //PROPORTIONAL TO - ,0xA1F1 ,0x2235 //BECAUSE - ,0xA1F2 ,0x222B //INTEGRAL - ,0xA1F3 ,0x222C //DOUBLE INTEGRAL - ,0xA1F4 ,0x2208 //ELEMENT OF - ,0xA1F5 ,0x220B //CONTAINS AS MEMBER - ,0xA1F6 ,0x2286 //SUBSET OF OR EQUAL TO - ,0xA1F7 ,0x2287 //SUPERSET OF OR EQUAL TO - ,0xA1F8 ,0x2282 //SUBSET OF - ,0xA1F9 ,0x2283 //SUPERSET OF - ,0xA1FA ,0x222A //UNION - ,0xA1FB ,0x2229 //INTERSECTION - ,0xA1FC ,0x2227 //LOGICAL AND - ,0xA1FD ,0x2228 //LOGICAL OR - ,0xA1FE ,0xFFE2 //FULLWIDTH NOT SIGN - ,0xA241 ,0xC910 //HANGUL SYLLABLE CIEUC U SSANGSIOS - ,0xA242 ,0xC912 //HANGUL SYLLABLE CIEUC U CIEUC - ,0xA243 ,0xC913 //HANGUL SYLLABLE CIEUC U CHIEUCH - ,0xA244 ,0xC914 //HANGUL SYLLABLE CIEUC U KHIEUKH - ,0xA245 ,0xC915 //HANGUL SYLLABLE CIEUC U THIEUTH - ,0xA246 ,0xC916 //HANGUL SYLLABLE CIEUC U PHIEUPH - ,0xA247 ,0xC917 //HANGUL SYLLABLE CIEUC U HIEUH - ,0xA248 ,0xC919 //HANGUL SYLLABLE CIEUC WEO KIYEOK - ,0xA249 ,0xC91A //HANGUL SYLLABLE CIEUC WEO SSANGKIYEOK - ,0xA24A ,0xC91B //HANGUL SYLLABLE CIEUC WEO KIYEOKSIOS - ,0xA24B ,0xC91C //HANGUL SYLLABLE CIEUC WEO NIEUN - ,0xA24C ,0xC91D //HANGUL SYLLABLE CIEUC WEO NIEUNCIEUC - ,0xA24D ,0xC91E //HANGUL SYLLABLE CIEUC WEO NIEUNHIEUH - ,0xA24E ,0xC91F //HANGUL SYLLABLE CIEUC WEO TIKEUT - ,0xA24F ,0xC920 //HANGUL SYLLABLE CIEUC WEO RIEUL - ,0xA250 ,0xC921 //HANGUL SYLLABLE CIEUC WEO RIEULKIYEOK - ,0xA251 ,0xC922 //HANGUL SYLLABLE CIEUC WEO RIEULMIEUM - ,0xA252 ,0xC923 //HANGUL SYLLABLE CIEUC WEO RIEULPIEUP - ,0xA253 ,0xC924 //HANGUL SYLLABLE CIEUC WEO RIEULSIOS - ,0xA254 ,0xC925 //HANGUL SYLLABLE CIEUC WEO RIEULTHIEUTH - ,0xA255 ,0xC926 //HANGUL SYLLABLE CIEUC WEO RIEULPHIEUPH - ,0xA256 ,0xC927 //HANGUL SYLLABLE CIEUC WEO RIEULHIEUH - ,0xA257 ,0xC928 //HANGUL SYLLABLE CIEUC WEO MIEUM - ,0xA258 ,0xC929 //HANGUL SYLLABLE CIEUC WEO PIEUP - ,0xA259 ,0xC92A //HANGUL SYLLABLE CIEUC WEO PIEUPSIOS - ,0xA25A ,0xC92B //HANGUL SYLLABLE CIEUC WEO SIOS - ,0xA261 ,0xC92D //HANGUL SYLLABLE CIEUC WEO IEUNG - ,0xA262 ,0xC92E //HANGUL SYLLABLE CIEUC WEO CIEUC - ,0xA263 ,0xC92F //HANGUL SYLLABLE CIEUC WEO CHIEUCH - ,0xA264 ,0xC930 //HANGUL SYLLABLE CIEUC WEO KHIEUKH - ,0xA265 ,0xC931 //HANGUL SYLLABLE CIEUC WEO THIEUTH - ,0xA266 ,0xC932 //HANGUL SYLLABLE CIEUC WEO PHIEUPH - ,0xA267 ,0xC933 //HANGUL SYLLABLE CIEUC WEO HIEUH - ,0xA268 ,0xC935 //HANGUL SYLLABLE CIEUC WE KIYEOK - ,0xA269 ,0xC936 //HANGUL SYLLABLE CIEUC WE SSANGKIYEOK - ,0xA26A ,0xC937 //HANGUL SYLLABLE CIEUC WE KIYEOKSIOS - ,0xA26B ,0xC938 //HANGUL SYLLABLE CIEUC WE NIEUN - ,0xA26C ,0xC939 //HANGUL SYLLABLE CIEUC WE NIEUNCIEUC - ,0xA26D ,0xC93A //HANGUL SYLLABLE CIEUC WE NIEUNHIEUH - ,0xA26E ,0xC93B //HANGUL SYLLABLE CIEUC WE TIKEUT - ,0xA26F ,0xC93C //HANGUL SYLLABLE CIEUC WE RIEUL - ,0xA270 ,0xC93D //HANGUL SYLLABLE CIEUC WE RIEULKIYEOK - ,0xA271 ,0xC93E //HANGUL SYLLABLE CIEUC WE RIEULMIEUM - ,0xA272 ,0xC93F //HANGUL SYLLABLE CIEUC WE RIEULPIEUP - ,0xA273 ,0xC940 //HANGUL SYLLABLE CIEUC WE RIEULSIOS - ,0xA274 ,0xC941 //HANGUL SYLLABLE CIEUC WE RIEULTHIEUTH - ,0xA275 ,0xC942 //HANGUL SYLLABLE CIEUC WE RIEULPHIEUPH - ,0xA276 ,0xC943 //HANGUL SYLLABLE CIEUC WE RIEULHIEUH - ,0xA277 ,0xC944 //HANGUL SYLLABLE CIEUC WE MIEUM - ,0xA278 ,0xC945 //HANGUL SYLLABLE CIEUC WE PIEUP - ,0xA279 ,0xC946 //HANGUL SYLLABLE CIEUC WE PIEUPSIOS - ,0xA27A ,0xC947 //HANGUL SYLLABLE CIEUC WE SIOS - ,0xA281 ,0xC948 //HANGUL SYLLABLE CIEUC WE SSANGSIOS - ,0xA282 ,0xC949 //HANGUL SYLLABLE CIEUC WE IEUNG - ,0xA283 ,0xC94A //HANGUL SYLLABLE CIEUC WE CIEUC - ,0xA284 ,0xC94B //HANGUL SYLLABLE CIEUC WE CHIEUCH - ,0xA285 ,0xC94C //HANGUL SYLLABLE CIEUC WE KHIEUKH - ,0xA286 ,0xC94D //HANGUL SYLLABLE CIEUC WE THIEUTH - ,0xA287 ,0xC94E //HANGUL SYLLABLE CIEUC WE PHIEUPH - ,0xA288 ,0xC94F //HANGUL SYLLABLE CIEUC WE HIEUH - ,0xA289 ,0xC952 //HANGUL SYLLABLE CIEUC WI SSANGKIYEOK - ,0xA28A ,0xC953 //HANGUL SYLLABLE CIEUC WI KIYEOKSIOS - ,0xA28B ,0xC955 //HANGUL SYLLABLE CIEUC WI NIEUNCIEUC - ,0xA28C ,0xC956 //HANGUL SYLLABLE CIEUC WI NIEUNHIEUH - ,0xA28D ,0xC957 //HANGUL SYLLABLE CIEUC WI TIKEUT - ,0xA28E ,0xC959 //HANGUL SYLLABLE CIEUC WI RIEULKIYEOK - ,0xA28F ,0xC95A //HANGUL SYLLABLE CIEUC WI RIEULMIEUM - ,0xA290 ,0xC95B //HANGUL SYLLABLE CIEUC WI RIEULPIEUP - ,0xA291 ,0xC95C //HANGUL SYLLABLE CIEUC WI RIEULSIOS - ,0xA292 ,0xC95D //HANGUL SYLLABLE CIEUC WI RIEULTHIEUTH - ,0xA293 ,0xC95E //HANGUL SYLLABLE CIEUC WI RIEULPHIEUPH - ,0xA294 ,0xC95F //HANGUL SYLLABLE CIEUC WI RIEULHIEUH - ,0xA295 ,0xC962 //HANGUL SYLLABLE CIEUC WI PIEUPSIOS - ,0xA296 ,0xC964 //HANGUL SYLLABLE CIEUC WI SSANGSIOS - ,0xA297 ,0xC965 //HANGUL SYLLABLE CIEUC WI IEUNG - ,0xA298 ,0xC966 //HANGUL SYLLABLE CIEUC WI CIEUC - ,0xA299 ,0xC967 //HANGUL SYLLABLE CIEUC WI CHIEUCH - ,0xA29A ,0xC968 //HANGUL SYLLABLE CIEUC WI KHIEUKH - ,0xA29B ,0xC969 //HANGUL SYLLABLE CIEUC WI THIEUTH - ,0xA29C ,0xC96A //HANGUL SYLLABLE CIEUC WI PHIEUPH - ,0xA29D ,0xC96B //HANGUL SYLLABLE CIEUC WI HIEUH - ,0xA29E ,0xC96D //HANGUL SYLLABLE CIEUC YU KIYEOK - ,0xA29F ,0xC96E //HANGUL SYLLABLE CIEUC YU SSANGKIYEOK - ,0xA2A0 ,0xC96F //HANGUL SYLLABLE CIEUC YU KIYEOKSIOS - ,0xA2A1 ,0x21D2 //RIGHTWARDS DOUBLE ARROW - ,0xA2A2 ,0x21D4 //LEFT RIGHT DOUBLE ARROW - ,0xA2A3 ,0x2200 //FOR ALL - ,0xA2A4 ,0x2203 //THERE EXISTS - ,0xA2A5 ,0x00B4 //ACUTE ACCENT - ,0xA2A6 ,0xFF5E //FULLWIDTH TILDE - ,0xA2A7 ,0x02C7 //CARON - ,0xA2A8 ,0x02D8 //BREVE - ,0xA2A9 ,0x02DD //DOUBLE ACUTE ACCENT - ,0xA2AA ,0x02DA //RING ABOVE - ,0xA2AB ,0x02D9 //DOT ABOVE - ,0xA2AC ,0x00B8 //CEDILLA - ,0xA2AD ,0x02DB //OGONEK - ,0xA2AE ,0x00A1 //INVERTED EXCLAMATION MARK - ,0xA2AF ,0x00BF //INVERTED QUESTION MARK - ,0xA2B0 ,0x02D0 //MODIFIER LETTER TRIANGULAR COLON - ,0xA2B1 ,0x222E //CONTOUR INTEGRAL - ,0xA2B2 ,0x2211 //N-ARY SUMMATION - ,0xA2B3 ,0x220F //N-ARY PRODUCT - ,0xA2B4 ,0x00A4 //CURRENCY SIGN - ,0xA2B5 ,0x2109 //DEGREE FAHRENHEIT - ,0xA2B6 ,0x2030 //PER MILLE SIGN - ,0xA2B7 ,0x25C1 //WHITE LEFT-POINTING TRIANGLE - ,0xA2B8 ,0x25C0 //BLACK LEFT-POINTING TRIANGLE - ,0xA2B9 ,0x25B7 //WHITE RIGHT-POINTING TRIANGLE - ,0xA2BA ,0x25B6 //BLACK RIGHT-POINTING TRIANGLE - ,0xA2BB ,0x2664 //WHITE SPADE SUIT - ,0xA2BC ,0x2660 //BLACK SPADE SUIT - ,0xA2BD ,0x2661 //WHITE HEART SUIT - ,0xA2BE ,0x2665 //BLACK HEART SUIT - ,0xA2BF ,0x2667 //WHITE CLUB SUIT - ,0xA2C0 ,0x2663 //BLACK CLUB SUIT - ,0xA2C1 ,0x2299 //CIRCLED DOT OPERATOR - ,0xA2C2 ,0x25C8 //WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND - ,0xA2C3 ,0x25A3 //WHITE SQUARE CONTAINING BLACK SMALL SQUARE - ,0xA2C4 ,0x25D0 //CIRCLE WITH LEFT HALF BLACK - ,0xA2C5 ,0x25D1 //CIRCLE WITH RIGHT HALF BLACK - ,0xA2C6 ,0x2592 //MEDIUM SHADE - ,0xA2C7 ,0x25A4 //SQUARE WITH HORIZONTAL FILL - ,0xA2C8 ,0x25A5 //SQUARE WITH VERTICAL FILL - ,0xA2C9 ,0x25A8 //SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL - ,0xA2CA ,0x25A7 //SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL - ,0xA2CB ,0x25A6 //SQUARE WITH ORTHOGONAL CROSSHATCH FILL - ,0xA2CC ,0x25A9 //SQUARE WITH DIAGONAL CROSSHATCH FILL - ,0xA2CD ,0x2668 //HOT SPRINGS - ,0xA2CE ,0x260F //WHITE TELEPHONE - ,0xA2CF ,0x260E //BLACK TELEPHONE - ,0xA2D0 ,0x261C //WHITE LEFT POINTING INDEX - ,0xA2D1 ,0x261E //WHITE RIGHT POINTING INDEX - ,0xA2D2 ,0x00B6 //PILCROW SIGN - ,0xA2D3 ,0x2020 //DAGGER - ,0xA2D4 ,0x2021 //DOUBLE DAGGER - ,0xA2D5 ,0x2195 //UP DOWN ARROW - ,0xA2D6 ,0x2197 //NORTH EAST ARROW - ,0xA2D7 ,0x2199 //SOUTH WEST ARROW - ,0xA2D8 ,0x2196 //NORTH WEST ARROW - ,0xA2D9 ,0x2198 //SOUTH EAST ARROW - ,0xA2DA ,0x266D //MUSIC FLAT SIGN - ,0xA2DB ,0x2669 //QUARTER NOTE - ,0xA2DC ,0x266A //EIGHTH NOTE - ,0xA2DD ,0x266C //BEAMED SIXTEENTH NOTES - ,0xA2DE ,0x327F //KOREAN STANDARD SYMBOL - ,0xA2DF ,0x321C //PARENTHESIZED HANGUL CIEUC U - ,0xA2E0 ,0x2116 //NUMERO SIGN - ,0xA2E1 ,0x33C7 //SQUARE CO - ,0xA2E2 ,0x2122 //TRADE MARK SIGN - ,0xA2E3 ,0x33C2 //SQUARE AM - ,0xA2E4 ,0x33D8 //SQUARE PM - ,0xA2E5 ,0x2121 //TELEPHONE SIGN - ,0xA2E6 ,0x20AC //EURO SIGN - ,0xA2E7 ,0x00AE //REGISTERED SIGN - ,0xA341 ,0xC971 //HANGUL SYLLABLE CIEUC YU NIEUNCIEUC - ,0xA342 ,0xC972 //HANGUL SYLLABLE CIEUC YU NIEUNHIEUH - ,0xA343 ,0xC973 //HANGUL SYLLABLE CIEUC YU TIKEUT - ,0xA344 ,0xC975 //HANGUL SYLLABLE CIEUC YU RIEULKIYEOK - ,0xA345 ,0xC976 //HANGUL SYLLABLE CIEUC YU RIEULMIEUM - ,0xA346 ,0xC977 //HANGUL SYLLABLE CIEUC YU RIEULPIEUP - ,0xA347 ,0xC978 //HANGUL SYLLABLE CIEUC YU RIEULSIOS - ,0xA348 ,0xC979 //HANGUL SYLLABLE CIEUC YU RIEULTHIEUTH - ,0xA349 ,0xC97A //HANGUL SYLLABLE CIEUC YU RIEULPHIEUPH - ,0xA34A ,0xC97B //HANGUL SYLLABLE CIEUC YU RIEULHIEUH - ,0xA34B ,0xC97D //HANGUL SYLLABLE CIEUC YU PIEUP - ,0xA34C ,0xC97E //HANGUL SYLLABLE CIEUC YU PIEUPSIOS - ,0xA34D ,0xC97F //HANGUL SYLLABLE CIEUC YU SIOS - ,0xA34E ,0xC980 //HANGUL SYLLABLE CIEUC YU SSANGSIOS - ,0xA34F ,0xC981 //HANGUL SYLLABLE CIEUC YU IEUNG - ,0xA350 ,0xC982 //HANGUL SYLLABLE CIEUC YU CIEUC - ,0xA351 ,0xC983 //HANGUL SYLLABLE CIEUC YU CHIEUCH - ,0xA352 ,0xC984 //HANGUL SYLLABLE CIEUC YU KHIEUKH - ,0xA353 ,0xC985 //HANGUL SYLLABLE CIEUC YU THIEUTH - ,0xA354 ,0xC986 //HANGUL SYLLABLE CIEUC YU PHIEUPH - ,0xA355 ,0xC987 //HANGUL SYLLABLE CIEUC YU HIEUH - ,0xA356 ,0xC98A //HANGUL SYLLABLE CIEUC EU SSANGKIYEOK - ,0xA357 ,0xC98B //HANGUL SYLLABLE CIEUC EU KIYEOKSIOS - ,0xA358 ,0xC98D //HANGUL SYLLABLE CIEUC EU NIEUNCIEUC - ,0xA359 ,0xC98E //HANGUL SYLLABLE CIEUC EU NIEUNHIEUH - ,0xA35A ,0xC98F //HANGUL SYLLABLE CIEUC EU TIKEUT - ,0xA361 ,0xC991 //HANGUL SYLLABLE CIEUC EU RIEULKIYEOK - ,0xA362 ,0xC992 //HANGUL SYLLABLE CIEUC EU RIEULMIEUM - ,0xA363 ,0xC993 //HANGUL SYLLABLE CIEUC EU RIEULPIEUP - ,0xA364 ,0xC994 //HANGUL SYLLABLE CIEUC EU RIEULSIOS - ,0xA365 ,0xC995 //HANGUL SYLLABLE CIEUC EU RIEULTHIEUTH - ,0xA366 ,0xC996 //HANGUL SYLLABLE CIEUC EU RIEULPHIEUPH - ,0xA367 ,0xC997 //HANGUL SYLLABLE CIEUC EU RIEULHIEUH - ,0xA368 ,0xC99A //HANGUL SYLLABLE CIEUC EU PIEUPSIOS - ,0xA369 ,0xC99C //HANGUL SYLLABLE CIEUC EU SSANGSIOS - ,0xA36A ,0xC99E //HANGUL SYLLABLE CIEUC EU CIEUC - ,0xA36B ,0xC99F //HANGUL SYLLABLE CIEUC EU CHIEUCH - ,0xA36C ,0xC9A0 //HANGUL SYLLABLE CIEUC EU KHIEUKH - ,0xA36D ,0xC9A1 //HANGUL SYLLABLE CIEUC EU THIEUTH - ,0xA36E ,0xC9A2 //HANGUL SYLLABLE CIEUC EU PHIEUPH - ,0xA36F ,0xC9A3 //HANGUL SYLLABLE CIEUC EU HIEUH - ,0xA370 ,0xC9A4 //HANGUL SYLLABLE CIEUC YI - ,0xA371 ,0xC9A5 //HANGUL SYLLABLE CIEUC YI KIYEOK - ,0xA372 ,0xC9A6 //HANGUL SYLLABLE CIEUC YI SSANGKIYEOK - ,0xA373 ,0xC9A7 //HANGUL SYLLABLE CIEUC YI KIYEOKSIOS - ,0xA374 ,0xC9A8 //HANGUL SYLLABLE CIEUC YI NIEUN - ,0xA375 ,0xC9A9 //HANGUL SYLLABLE CIEUC YI NIEUNCIEUC - ,0xA376 ,0xC9AA //HANGUL SYLLABLE CIEUC YI NIEUNHIEUH - ,0xA377 ,0xC9AB //HANGUL SYLLABLE CIEUC YI TIKEUT - ,0xA378 ,0xC9AC //HANGUL SYLLABLE CIEUC YI RIEUL - ,0xA379 ,0xC9AD //HANGUL SYLLABLE CIEUC YI RIEULKIYEOK - ,0xA37A ,0xC9AE //HANGUL SYLLABLE CIEUC YI RIEULMIEUM - ,0xA381 ,0xC9AF //HANGUL SYLLABLE CIEUC YI RIEULPIEUP - ,0xA382 ,0xC9B0 //HANGUL SYLLABLE CIEUC YI RIEULSIOS - ,0xA383 ,0xC9B1 //HANGUL SYLLABLE CIEUC YI RIEULTHIEUTH - ,0xA384 ,0xC9B2 //HANGUL SYLLABLE CIEUC YI RIEULPHIEUPH - ,0xA385 ,0xC9B3 //HANGUL SYLLABLE CIEUC YI RIEULHIEUH - ,0xA386 ,0xC9B4 //HANGUL SYLLABLE CIEUC YI MIEUM - ,0xA387 ,0xC9B5 //HANGUL SYLLABLE CIEUC YI PIEUP - ,0xA388 ,0xC9B6 //HANGUL SYLLABLE CIEUC YI PIEUPSIOS - ,0xA389 ,0xC9B7 //HANGUL SYLLABLE CIEUC YI SIOS - ,0xA38A ,0xC9B8 //HANGUL SYLLABLE CIEUC YI SSANGSIOS - ,0xA38B ,0xC9B9 //HANGUL SYLLABLE CIEUC YI IEUNG - ,0xA38C ,0xC9BA //HANGUL SYLLABLE CIEUC YI CIEUC - ,0xA38D ,0xC9BB //HANGUL SYLLABLE CIEUC YI CHIEUCH - ,0xA38E ,0xC9BC //HANGUL SYLLABLE CIEUC YI KHIEUKH - ,0xA38F ,0xC9BD //HANGUL SYLLABLE CIEUC YI THIEUTH - ,0xA390 ,0xC9BE //HANGUL SYLLABLE CIEUC YI PHIEUPH - ,0xA391 ,0xC9BF //HANGUL SYLLABLE CIEUC YI HIEUH - ,0xA392 ,0xC9C2 //HANGUL SYLLABLE CIEUC I SSANGKIYEOK - ,0xA393 ,0xC9C3 //HANGUL SYLLABLE CIEUC I KIYEOKSIOS - ,0xA394 ,0xC9C5 //HANGUL SYLLABLE CIEUC I NIEUNCIEUC - ,0xA395 ,0xC9C6 //HANGUL SYLLABLE CIEUC I NIEUNHIEUH - ,0xA396 ,0xC9C9 //HANGUL SYLLABLE CIEUC I RIEULKIYEOK - ,0xA397 ,0xC9CB //HANGUL SYLLABLE CIEUC I RIEULPIEUP - ,0xA398 ,0xC9CC //HANGUL SYLLABLE CIEUC I RIEULSIOS - ,0xA399 ,0xC9CD //HANGUL SYLLABLE CIEUC I RIEULTHIEUTH - ,0xA39A ,0xC9CE //HANGUL SYLLABLE CIEUC I RIEULPHIEUPH - ,0xA39B ,0xC9CF //HANGUL SYLLABLE CIEUC I RIEULHIEUH - ,0xA39C ,0xC9D2 //HANGUL SYLLABLE CIEUC I PIEUPSIOS - ,0xA39D ,0xC9D4 //HANGUL SYLLABLE CIEUC I SSANGSIOS - ,0xA39E ,0xC9D7 //HANGUL SYLLABLE CIEUC I CHIEUCH - ,0xA39F ,0xC9D8 //HANGUL SYLLABLE CIEUC I KHIEUKH - ,0xA3A0 ,0xC9DB //HANGUL SYLLABLE CIEUC I HIEUH - ,0xA3A1 ,0xFF01 //FULLWIDTH EXCLAMATION MARK - ,0xA3A2 ,0xFF02 //FULLWIDTH QUOTATION MARK - ,0xA3A3 ,0xFF03 //FULLWIDTH NUMBER SIGN - ,0xA3A4 ,0xFF04 //FULLWIDTH DOLLAR SIGN - ,0xA3A5 ,0xFF05 //FULLWIDTH PERCENT SIGN - ,0xA3A6 ,0xFF06 //FULLWIDTH AMPERSAND - ,0xA3A7 ,0xFF07 //FULLWIDTH APOSTROPHE - ,0xA3A8 ,0xFF08 //FULLWIDTH LEFT PARENTHESIS - ,0xA3A9 ,0xFF09 //FULLWIDTH RIGHT PARENTHESIS - ,0xA3AA ,0xFF0A //FULLWIDTH ASTERISK - ,0xA3AB ,0xFF0B //FULLWIDTH PLUS SIGN - ,0xA3AC ,0xFF0C //FULLWIDTH COMMA - ,0xA3AD ,0xFF0D //FULLWIDTH HYPHEN-MINUS - ,0xA3AE ,0xFF0E //FULLWIDTH FULL STOP - ,0xA3AF ,0xFF0F //FULLWIDTH SOLIDUS - ,0xA3B0 ,0xFF10 //FULLWIDTH DIGIT ZERO - ,0xA3B1 ,0xFF11 //FULLWIDTH DIGIT ONE - ,0xA3B2 ,0xFF12 //FULLWIDTH DIGIT TWO - ,0xA3B3 ,0xFF13 //FULLWIDTH DIGIT THREE - ,0xA3B4 ,0xFF14 //FULLWIDTH DIGIT FOUR - ,0xA3B5 ,0xFF15 //FULLWIDTH DIGIT FIVE - ,0xA3B6 ,0xFF16 //FULLWIDTH DIGIT SIX - ,0xA3B7 ,0xFF17 //FULLWIDTH DIGIT SEVEN - ,0xA3B8 ,0xFF18 //FULLWIDTH DIGIT EIGHT - ,0xA3B9 ,0xFF19 //FULLWIDTH DIGIT NINE - ,0xA3BA ,0xFF1A //FULLWIDTH COLON - ,0xA3BB ,0xFF1B //FULLWIDTH SEMICOLON - ,0xA3BC ,0xFF1C //FULLWIDTH LESS-THAN SIGN - ,0xA3BD ,0xFF1D //FULLWIDTH EQUALS SIGN - ,0xA3BE ,0xFF1E //FULLWIDTH GREATER-THAN SIGN - ,0xA3BF ,0xFF1F //FULLWIDTH QUESTION MARK - ,0xA3C0 ,0xFF20 //FULLWIDTH COMMERCIAL AT - ,0xA3C1 ,0xFF21 //FULLWIDTH LATIN CAPITAL LETTER A - ,0xA3C2 ,0xFF22 //FULLWIDTH LATIN CAPITAL LETTER B - ,0xA3C3 ,0xFF23 //FULLWIDTH LATIN CAPITAL LETTER C - ,0xA3C4 ,0xFF24 //FULLWIDTH LATIN CAPITAL LETTER D - ,0xA3C5 ,0xFF25 //FULLWIDTH LATIN CAPITAL LETTER E - ,0xA3C6 ,0xFF26 //FULLWIDTH LATIN CAPITAL LETTER F - ,0xA3C7 ,0xFF27 //FULLWIDTH LATIN CAPITAL LETTER G - ,0xA3C8 ,0xFF28 //FULLWIDTH LATIN CAPITAL LETTER H - ,0xA3C9 ,0xFF29 //FULLWIDTH LATIN CAPITAL LETTER I - ,0xA3CA ,0xFF2A //FULLWIDTH LATIN CAPITAL LETTER J - ,0xA3CB ,0xFF2B //FULLWIDTH LATIN CAPITAL LETTER K - ,0xA3CC ,0xFF2C //FULLWIDTH LATIN CAPITAL LETTER L - ,0xA3CD ,0xFF2D //FULLWIDTH LATIN CAPITAL LETTER M - ,0xA3CE ,0xFF2E //FULLWIDTH LATIN CAPITAL LETTER N - ,0xA3CF ,0xFF2F //FULLWIDTH LATIN CAPITAL LETTER O - ,0xA3D0 ,0xFF30 //FULLWIDTH LATIN CAPITAL LETTER P - ,0xA3D1 ,0xFF31 //FULLWIDTH LATIN CAPITAL LETTER Q - ,0xA3D2 ,0xFF32 //FULLWIDTH LATIN CAPITAL LETTER R - ,0xA3D3 ,0xFF33 //FULLWIDTH LATIN CAPITAL LETTER S - ,0xA3D4 ,0xFF34 //FULLWIDTH LATIN CAPITAL LETTER T - ,0xA3D5 ,0xFF35 //FULLWIDTH LATIN CAPITAL LETTER U - ,0xA3D6 ,0xFF36 //FULLWIDTH LATIN CAPITAL LETTER V - ,0xA3D7 ,0xFF37 //FULLWIDTH LATIN CAPITAL LETTER W - ,0xA3D8 ,0xFF38 //FULLWIDTH LATIN CAPITAL LETTER X - ,0xA3D9 ,0xFF39 //FULLWIDTH LATIN CAPITAL LETTER Y - ,0xA3DA ,0xFF3A //FULLWIDTH LATIN CAPITAL LETTER Z - ,0xA3DB ,0xFF3B //FULLWIDTH LEFT SQUARE BRACKET - ,0xA3DC ,0xFFE6 //FULLWIDTH WON SIGN - ,0xA3DD ,0xFF3D //FULLWIDTH RIGHT SQUARE BRACKET - ,0xA3DE ,0xFF3E //FULLWIDTH CIRCUMFLEX ACCENT - ,0xA3DF ,0xFF3F //FULLWIDTH LOW LINE - ,0xA3E0 ,0xFF40 //FULLWIDTH GRAVE ACCENT - ,0xA3E1 ,0xFF41 //FULLWIDTH LATIN SMALL LETTER A - ,0xA3E2 ,0xFF42 //FULLWIDTH LATIN SMALL LETTER B - ,0xA3E3 ,0xFF43 //FULLWIDTH LATIN SMALL LETTER C - ,0xA3E4 ,0xFF44 //FULLWIDTH LATIN SMALL LETTER D - ,0xA3E5 ,0xFF45 //FULLWIDTH LATIN SMALL LETTER E - ,0xA3E6 ,0xFF46 //FULLWIDTH LATIN SMALL LETTER F - ,0xA3E7 ,0xFF47 //FULLWIDTH LATIN SMALL LETTER G - ,0xA3E8 ,0xFF48 //FULLWIDTH LATIN SMALL LETTER H - ,0xA3E9 ,0xFF49 //FULLWIDTH LATIN SMALL LETTER I - ,0xA3EA ,0xFF4A //FULLWIDTH LATIN SMALL LETTER J - ,0xA3EB ,0xFF4B //FULLWIDTH LATIN SMALL LETTER K - ,0xA3EC ,0xFF4C //FULLWIDTH LATIN SMALL LETTER L - ,0xA3ED ,0xFF4D //FULLWIDTH LATIN SMALL LETTER M - ,0xA3EE ,0xFF4E //FULLWIDTH LATIN SMALL LETTER N - ,0xA3EF ,0xFF4F //FULLWIDTH LATIN SMALL LETTER O - ,0xA3F0 ,0xFF50 //FULLWIDTH LATIN SMALL LETTER P - ,0xA3F1 ,0xFF51 //FULLWIDTH LATIN SMALL LETTER Q - ,0xA3F2 ,0xFF52 //FULLWIDTH LATIN SMALL LETTER R - ,0xA3F3 ,0xFF53 //FULLWIDTH LATIN SMALL LETTER S - ,0xA3F4 ,0xFF54 //FULLWIDTH LATIN SMALL LETTER T - ,0xA3F5 ,0xFF55 //FULLWIDTH LATIN SMALL LETTER U - ,0xA3F6 ,0xFF56 //FULLWIDTH LATIN SMALL LETTER V - ,0xA3F7 ,0xFF57 //FULLWIDTH LATIN SMALL LETTER W - ,0xA3F8 ,0xFF58 //FULLWIDTH LATIN SMALL LETTER X - ,0xA3F9 ,0xFF59 //FULLWIDTH LATIN SMALL LETTER Y - ,0xA3FA ,0xFF5A //FULLWIDTH LATIN SMALL LETTER Z - ,0xA3FB ,0xFF5B //FULLWIDTH LEFT CURLY BRACKET - ,0xA3FC ,0xFF5C //FULLWIDTH VERTICAL LINE - ,0xA3FD ,0xFF5D //FULLWIDTH RIGHT CURLY BRACKET - ,0xA3FE ,0xFFE3 //FULLWIDTH MACRON - ,0xA441 ,0xC9DE //HANGUL SYLLABLE SSANGCIEUC A SSANGKIYEOK - ,0xA442 ,0xC9DF //HANGUL SYLLABLE SSANGCIEUC A KIYEOKSIOS - ,0xA443 ,0xC9E1 //HANGUL SYLLABLE SSANGCIEUC A NIEUNCIEUC - ,0xA444 ,0xC9E3 //HANGUL SYLLABLE SSANGCIEUC A TIKEUT - ,0xA445 ,0xC9E5 //HANGUL SYLLABLE SSANGCIEUC A RIEULKIYEOK - ,0xA446 ,0xC9E6 //HANGUL SYLLABLE SSANGCIEUC A RIEULMIEUM - ,0xA447 ,0xC9E8 //HANGUL SYLLABLE SSANGCIEUC A RIEULSIOS - ,0xA448 ,0xC9E9 //HANGUL SYLLABLE SSANGCIEUC A RIEULTHIEUTH - ,0xA449 ,0xC9EA //HANGUL SYLLABLE SSANGCIEUC A RIEULPHIEUPH - ,0xA44A ,0xC9EB //HANGUL SYLLABLE SSANGCIEUC A RIEULHIEUH - ,0xA44B ,0xC9EE //HANGUL SYLLABLE SSANGCIEUC A PIEUPSIOS - ,0xA44C ,0xC9F2 //HANGUL SYLLABLE SSANGCIEUC A CIEUC - ,0xA44D ,0xC9F3 //HANGUL SYLLABLE SSANGCIEUC A CHIEUCH - ,0xA44E ,0xC9F4 //HANGUL SYLLABLE SSANGCIEUC A KHIEUKH - ,0xA44F ,0xC9F5 //HANGUL SYLLABLE SSANGCIEUC A THIEUTH - ,0xA450 ,0xC9F6 //HANGUL SYLLABLE SSANGCIEUC A PHIEUPH - ,0xA451 ,0xC9F7 //HANGUL SYLLABLE SSANGCIEUC A HIEUH - ,0xA452 ,0xC9FA //HANGUL SYLLABLE SSANGCIEUC AE SSANGKIYEOK - ,0xA453 ,0xC9FB //HANGUL SYLLABLE SSANGCIEUC AE KIYEOKSIOS - ,0xA454 ,0xC9FD //HANGUL SYLLABLE SSANGCIEUC AE NIEUNCIEUC - ,0xA455 ,0xC9FE //HANGUL SYLLABLE SSANGCIEUC AE NIEUNHIEUH - ,0xA456 ,0xC9FF //HANGUL SYLLABLE SSANGCIEUC AE TIKEUT - ,0xA457 ,0xCA01 //HANGUL SYLLABLE SSANGCIEUC AE RIEULKIYEOK - ,0xA458 ,0xCA02 //HANGUL SYLLABLE SSANGCIEUC AE RIEULMIEUM - ,0xA459 ,0xCA03 //HANGUL SYLLABLE SSANGCIEUC AE RIEULPIEUP - ,0xA45A ,0xCA04 //HANGUL SYLLABLE SSANGCIEUC AE RIEULSIOS - ,0xA461 ,0xCA05 //HANGUL SYLLABLE SSANGCIEUC AE RIEULTHIEUTH - ,0xA462 ,0xCA06 //HANGUL SYLLABLE SSANGCIEUC AE RIEULPHIEUPH - ,0xA463 ,0xCA07 //HANGUL SYLLABLE SSANGCIEUC AE RIEULHIEUH - ,0xA464 ,0xCA0A //HANGUL SYLLABLE SSANGCIEUC AE PIEUPSIOS - ,0xA465 ,0xCA0E //HANGUL SYLLABLE SSANGCIEUC AE CIEUC - ,0xA466 ,0xCA0F //HANGUL SYLLABLE SSANGCIEUC AE CHIEUCH - ,0xA467 ,0xCA10 //HANGUL SYLLABLE SSANGCIEUC AE KHIEUKH - ,0xA468 ,0xCA11 //HANGUL SYLLABLE SSANGCIEUC AE THIEUTH - ,0xA469 ,0xCA12 //HANGUL SYLLABLE SSANGCIEUC AE PHIEUPH - ,0xA46A ,0xCA13 //HANGUL SYLLABLE SSANGCIEUC AE HIEUH - ,0xA46B ,0xCA15 //HANGUL SYLLABLE SSANGCIEUC YA KIYEOK - ,0xA46C ,0xCA16 //HANGUL SYLLABLE SSANGCIEUC YA SSANGKIYEOK - ,0xA46D ,0xCA17 //HANGUL SYLLABLE SSANGCIEUC YA KIYEOKSIOS - ,0xA46E ,0xCA19 //HANGUL SYLLABLE SSANGCIEUC YA NIEUNCIEUC - ,0xA46F ,0xCA1A //HANGUL SYLLABLE SSANGCIEUC YA NIEUNHIEUH - ,0xA470 ,0xCA1B //HANGUL SYLLABLE SSANGCIEUC YA TIKEUT - ,0xA471 ,0xCA1C //HANGUL SYLLABLE SSANGCIEUC YA RIEUL - ,0xA472 ,0xCA1D //HANGUL SYLLABLE SSANGCIEUC YA RIEULKIYEOK - ,0xA473 ,0xCA1E //HANGUL SYLLABLE SSANGCIEUC YA RIEULMIEUM - ,0xA474 ,0xCA1F //HANGUL SYLLABLE SSANGCIEUC YA RIEULPIEUP - ,0xA475 ,0xCA20 //HANGUL SYLLABLE SSANGCIEUC YA RIEULSIOS - ,0xA476 ,0xCA21 //HANGUL SYLLABLE SSANGCIEUC YA RIEULTHIEUTH - ,0xA477 ,0xCA22 //HANGUL SYLLABLE SSANGCIEUC YA RIEULPHIEUPH - ,0xA478 ,0xCA23 //HANGUL SYLLABLE SSANGCIEUC YA RIEULHIEUH - ,0xA479 ,0xCA24 //HANGUL SYLLABLE SSANGCIEUC YA MIEUM - ,0xA47A ,0xCA25 //HANGUL SYLLABLE SSANGCIEUC YA PIEUP - ,0xA481 ,0xCA26 //HANGUL SYLLABLE SSANGCIEUC YA PIEUPSIOS - ,0xA482 ,0xCA27 //HANGUL SYLLABLE SSANGCIEUC YA SIOS - ,0xA483 ,0xCA28 //HANGUL SYLLABLE SSANGCIEUC YA SSANGSIOS - ,0xA484 ,0xCA2A //HANGUL SYLLABLE SSANGCIEUC YA CIEUC - ,0xA485 ,0xCA2B //HANGUL SYLLABLE SSANGCIEUC YA CHIEUCH - ,0xA486 ,0xCA2C //HANGUL SYLLABLE SSANGCIEUC YA KHIEUKH - ,0xA487 ,0xCA2D //HANGUL SYLLABLE SSANGCIEUC YA THIEUTH - ,0xA488 ,0xCA2E //HANGUL SYLLABLE SSANGCIEUC YA PHIEUPH - ,0xA489 ,0xCA2F //HANGUL SYLLABLE SSANGCIEUC YA HIEUH - ,0xA48A ,0xCA30 //HANGUL SYLLABLE SSANGCIEUC YAE - ,0xA48B ,0xCA31 //HANGUL SYLLABLE SSANGCIEUC YAE KIYEOK - ,0xA48C ,0xCA32 //HANGUL SYLLABLE SSANGCIEUC YAE SSANGKIYEOK - ,0xA48D ,0xCA33 //HANGUL SYLLABLE SSANGCIEUC YAE KIYEOKSIOS - ,0xA48E ,0xCA34 //HANGUL SYLLABLE SSANGCIEUC YAE NIEUN - ,0xA48F ,0xCA35 //HANGUL SYLLABLE SSANGCIEUC YAE NIEUNCIEUC - ,0xA490 ,0xCA36 //HANGUL SYLLABLE SSANGCIEUC YAE NIEUNHIEUH - ,0xA491 ,0xCA37 //HANGUL SYLLABLE SSANGCIEUC YAE TIKEUT - ,0xA492 ,0xCA38 //HANGUL SYLLABLE SSANGCIEUC YAE RIEUL - ,0xA493 ,0xCA39 //HANGUL SYLLABLE SSANGCIEUC YAE RIEULKIYEOK - ,0xA494 ,0xCA3A //HANGUL SYLLABLE SSANGCIEUC YAE RIEULMIEUM - ,0xA495 ,0xCA3B //HANGUL SYLLABLE SSANGCIEUC YAE RIEULPIEUP - ,0xA496 ,0xCA3C //HANGUL SYLLABLE SSANGCIEUC YAE RIEULSIOS - ,0xA497 ,0xCA3D //HANGUL SYLLABLE SSANGCIEUC YAE RIEULTHIEUTH - ,0xA498 ,0xCA3E //HANGUL SYLLABLE SSANGCIEUC YAE RIEULPHIEUPH - ,0xA499 ,0xCA3F //HANGUL SYLLABLE SSANGCIEUC YAE RIEULHIEUH - ,0xA49A ,0xCA40 //HANGUL SYLLABLE SSANGCIEUC YAE MIEUM - ,0xA49B ,0xCA41 //HANGUL SYLLABLE SSANGCIEUC YAE PIEUP - ,0xA49C ,0xCA42 //HANGUL SYLLABLE SSANGCIEUC YAE PIEUPSIOS - ,0xA49D ,0xCA43 //HANGUL SYLLABLE SSANGCIEUC YAE SIOS - ,0xA49E ,0xCA44 //HANGUL SYLLABLE SSANGCIEUC YAE SSANGSIOS - ,0xA49F ,0xCA45 //HANGUL SYLLABLE SSANGCIEUC YAE IEUNG - ,0xA4A0 ,0xCA46 //HANGUL SYLLABLE SSANGCIEUC YAE CIEUC - ,0xA4A1 ,0x3131 //HANGUL LETTER KIYEOK - ,0xA4A2 ,0x3132 //HANGUL LETTER SSANGKIYEOK - ,0xA4A3 ,0x3133 //HANGUL LETTER KIYEOK-SIOS - ,0xA4A4 ,0x3134 //HANGUL LETTER NIEUN - ,0xA4A5 ,0x3135 //HANGUL LETTER NIEUN-CIEUC - ,0xA4A6 ,0x3136 //HANGUL LETTER NIEUN-HIEUH - ,0xA4A7 ,0x3137 //HANGUL LETTER TIKEUT - ,0xA4A8 ,0x3138 //HANGUL LETTER SSANGTIKEUT - ,0xA4A9 ,0x3139 //HANGUL LETTER RIEUL - ,0xA4AA ,0x313A //HANGUL LETTER RIEUL-KIYEOK - ,0xA4AB ,0x313B //HANGUL LETTER RIEUL-MIEUM - ,0xA4AC ,0x313C //HANGUL LETTER RIEUL-PIEUP - ,0xA4AD ,0x313D //HANGUL LETTER RIEUL-SIOS - ,0xA4AE ,0x313E //HANGUL LETTER RIEUL-THIEUTH - ,0xA4AF ,0x313F //HANGUL LETTER RIEUL-PHIEUPH - ,0xA4B0 ,0x3140 //HANGUL LETTER RIEUL-HIEUH - ,0xA4B1 ,0x3141 //HANGUL LETTER MIEUM - ,0xA4B2 ,0x3142 //HANGUL LETTER PIEUP - ,0xA4B3 ,0x3143 //HANGUL LETTER SSANGPIEUP - ,0xA4B4 ,0x3144 //HANGUL LETTER PIEUP-SIOS - ,0xA4B5 ,0x3145 //HANGUL LETTER SIOS - ,0xA4B6 ,0x3146 //HANGUL LETTER SSANGSIOS - ,0xA4B7 ,0x3147 //HANGUL LETTER IEUNG - ,0xA4B8 ,0x3148 //HANGUL LETTER CIEUC - ,0xA4B9 ,0x3149 //HANGUL LETTER SSANGCIEUC - ,0xA4BA ,0x314A //HANGUL LETTER CHIEUCH - ,0xA4BB ,0x314B //HANGUL LETTER KHIEUKH - ,0xA4BC ,0x314C //HANGUL LETTER THIEUTH - ,0xA4BD ,0x314D //HANGUL LETTER PHIEUPH - ,0xA4BE ,0x314E //HANGUL LETTER HIEUH - ,0xA4BF ,0x314F //HANGUL LETTER A - ,0xA4C0 ,0x3150 //HANGUL LETTER AE - ,0xA4C1 ,0x3151 //HANGUL LETTER YA - ,0xA4C2 ,0x3152 //HANGUL LETTER YAE - ,0xA4C3 ,0x3153 //HANGUL LETTER EO - ,0xA4C4 ,0x3154 //HANGUL LETTER E - ,0xA4C5 ,0x3155 //HANGUL LETTER YEO - ,0xA4C6 ,0x3156 //HANGUL LETTER YE - ,0xA4C7 ,0x3157 //HANGUL LETTER O - ,0xA4C8 ,0x3158 //HANGUL LETTER WA - ,0xA4C9 ,0x3159 //HANGUL LETTER WAE - ,0xA4CA ,0x315A //HANGUL LETTER OE - ,0xA4CB ,0x315B //HANGUL LETTER YO - ,0xA4CC ,0x315C //HANGUL LETTER U - ,0xA4CD ,0x315D //HANGUL LETTER WEO - ,0xA4CE ,0x315E //HANGUL LETTER WE - ,0xA4CF ,0x315F //HANGUL LETTER WI - ,0xA4D0 ,0x3160 //HANGUL LETTER YU - ,0xA4D1 ,0x3161 //HANGUL LETTER EU - ,0xA4D2 ,0x3162 //HANGUL LETTER YI - ,0xA4D3 ,0x3163 //HANGUL LETTER I - ,0xA4D4 ,0x3164 //HANGUL FILLER - ,0xA4D5 ,0x3165 //HANGUL LETTER SSANGNIEUN - ,0xA4D6 ,0x3166 //HANGUL LETTER NIEUN-TIKEUT - ,0xA4D7 ,0x3167 //HANGUL LETTER NIEUN-SIOS - ,0xA4D8 ,0x3168 //HANGUL LETTER NIEUN-PANSIOS - ,0xA4D9 ,0x3169 //HANGUL LETTER RIEUL-KIYEOK-SIOS - ,0xA4DA ,0x316A //HANGUL LETTER RIEUL-TIKEUT - ,0xA4DB ,0x316B //HANGUL LETTER RIEUL-PIEUP-SIOS - ,0xA4DC ,0x316C //HANGUL LETTER RIEUL-PANSIOS - ,0xA4DD ,0x316D //HANGUL LETTER RIEUL-YEORINHIEUH - ,0xA4DE ,0x316E //HANGUL LETTER MIEUM-PIEUP - ,0xA4DF ,0x316F //HANGUL LETTER MIEUM-SIOS - ,0xA4E0 ,0x3170 //HANGUL LETTER MIEUM-PANSIOS - ,0xA4E1 ,0x3171 //HANGUL LETTER KAPYEOUNMIEUM - ,0xA4E2 ,0x3172 //HANGUL LETTER PIEUP-KIYEOK - ,0xA4E3 ,0x3173 //HANGUL LETTER PIEUP-TIKEUT - ,0xA4E4 ,0x3174 //HANGUL LETTER PIEUP-SIOS-KIYEOK - ,0xA4E5 ,0x3175 //HANGUL LETTER PIEUP-SIOS-TIKEUT - ,0xA4E6 ,0x3176 //HANGUL LETTER PIEUP-CIEUC - ,0xA4E7 ,0x3177 //HANGUL LETTER PIEUP-THIEUTH - ,0xA4E8 ,0x3178 //HANGUL LETTER KAPYEOUNPIEUP - ,0xA4E9 ,0x3179 //HANGUL LETTER KAPYEOUNSSANGPIEUP - ,0xA4EA ,0x317A //HANGUL LETTER SIOS-KIYEOK - ,0xA4EB ,0x317B //HANGUL LETTER SIOS-NIEUN - ,0xA4EC ,0x317C //HANGUL LETTER SIOS-TIKEUT - ,0xA4ED ,0x317D //HANGUL LETTER SIOS-PIEUP - ,0xA4EE ,0x317E //HANGUL LETTER SIOS-CIEUC - ,0xA4EF ,0x317F //HANGUL LETTER PANSIOS - ,0xA4F0 ,0x3180 //HANGUL LETTER SSANGIEUNG - ,0xA4F1 ,0x3181 //HANGUL LETTER YESIEUNG - ,0xA4F2 ,0x3182 //HANGUL LETTER YESIEUNG-SIOS - ,0xA4F3 ,0x3183 //HANGUL LETTER YESIEUNG-PANSIOS - ,0xA4F4 ,0x3184 //HANGUL LETTER KAPYEOUNPHIEUPH - ,0xA4F5 ,0x3185 //HANGUL LETTER SSANGHIEUH - ,0xA4F6 ,0x3186 //HANGUL LETTER YEORINHIEUH - ,0xA4F7 ,0x3187 //HANGUL LETTER YO-YA - ,0xA4F8 ,0x3188 //HANGUL LETTER YO-YAE - ,0xA4F9 ,0x3189 //HANGUL LETTER YO-I - ,0xA4FA ,0x318A //HANGUL LETTER YU-YEO - ,0xA4FB ,0x318B //HANGUL LETTER YU-YE - ,0xA4FC ,0x318C //HANGUL LETTER YU-I - ,0xA4FD ,0x318D //HANGUL LETTER ARAEA - ,0xA4FE ,0x318E //HANGUL LETTER ARAEAE - ,0xA541 ,0xCA47 //HANGUL SYLLABLE SSANGCIEUC YAE CHIEUCH - ,0xA542 ,0xCA48 //HANGUL SYLLABLE SSANGCIEUC YAE KHIEUKH - ,0xA543 ,0xCA49 //HANGUL SYLLABLE SSANGCIEUC YAE THIEUTH - ,0xA544 ,0xCA4A //HANGUL SYLLABLE SSANGCIEUC YAE PHIEUPH - ,0xA545 ,0xCA4B //HANGUL SYLLABLE SSANGCIEUC YAE HIEUH - ,0xA546 ,0xCA4E //HANGUL SYLLABLE SSANGCIEUC EO SSANGKIYEOK - ,0xA547 ,0xCA4F //HANGUL SYLLABLE SSANGCIEUC EO KIYEOKSIOS - ,0xA548 ,0xCA51 //HANGUL SYLLABLE SSANGCIEUC EO NIEUNCIEUC - ,0xA549 ,0xCA52 //HANGUL SYLLABLE SSANGCIEUC EO NIEUNHIEUH - ,0xA54A ,0xCA53 //HANGUL SYLLABLE SSANGCIEUC EO TIKEUT - ,0xA54B ,0xCA55 //HANGUL SYLLABLE SSANGCIEUC EO RIEULKIYEOK - ,0xA54C ,0xCA56 //HANGUL SYLLABLE SSANGCIEUC EO RIEULMIEUM - ,0xA54D ,0xCA57 //HANGUL SYLLABLE SSANGCIEUC EO RIEULPIEUP - ,0xA54E ,0xCA58 //HANGUL SYLLABLE SSANGCIEUC EO RIEULSIOS - ,0xA54F ,0xCA59 //HANGUL SYLLABLE SSANGCIEUC EO RIEULTHIEUTH - ,0xA550 ,0xCA5A //HANGUL SYLLABLE SSANGCIEUC EO RIEULPHIEUPH - ,0xA551 ,0xCA5B //HANGUL SYLLABLE SSANGCIEUC EO RIEULHIEUH - ,0xA552 ,0xCA5E //HANGUL SYLLABLE SSANGCIEUC EO PIEUPSIOS - ,0xA553 ,0xCA62 //HANGUL SYLLABLE SSANGCIEUC EO CIEUC - ,0xA554 ,0xCA63 //HANGUL SYLLABLE SSANGCIEUC EO CHIEUCH - ,0xA555 ,0xCA64 //HANGUL SYLLABLE SSANGCIEUC EO KHIEUKH - ,0xA556 ,0xCA65 //HANGUL SYLLABLE SSANGCIEUC EO THIEUTH - ,0xA557 ,0xCA66 //HANGUL SYLLABLE SSANGCIEUC EO PHIEUPH - ,0xA558 ,0xCA67 //HANGUL SYLLABLE SSANGCIEUC EO HIEUH - ,0xA559 ,0xCA69 //HANGUL SYLLABLE SSANGCIEUC E KIYEOK - ,0xA55A ,0xCA6A //HANGUL SYLLABLE SSANGCIEUC E SSANGKIYEOK - ,0xA561 ,0xCA6B //HANGUL SYLLABLE SSANGCIEUC E KIYEOKSIOS - ,0xA562 ,0xCA6C //HANGUL SYLLABLE SSANGCIEUC E NIEUN - ,0xA563 ,0xCA6D //HANGUL SYLLABLE SSANGCIEUC E NIEUNCIEUC - ,0xA564 ,0xCA6E //HANGUL SYLLABLE SSANGCIEUC E NIEUNHIEUH - ,0xA565 ,0xCA6F //HANGUL SYLLABLE SSANGCIEUC E TIKEUT - ,0xA566 ,0xCA70 //HANGUL SYLLABLE SSANGCIEUC E RIEUL - ,0xA567 ,0xCA71 //HANGUL SYLLABLE SSANGCIEUC E RIEULKIYEOK - ,0xA568 ,0xCA72 //HANGUL SYLLABLE SSANGCIEUC E RIEULMIEUM - ,0xA569 ,0xCA73 //HANGUL SYLLABLE SSANGCIEUC E RIEULPIEUP - ,0xA56A ,0xCA74 //HANGUL SYLLABLE SSANGCIEUC E RIEULSIOS - ,0xA56B ,0xCA75 //HANGUL SYLLABLE SSANGCIEUC E RIEULTHIEUTH - ,0xA56C ,0xCA76 //HANGUL SYLLABLE SSANGCIEUC E RIEULPHIEUPH - ,0xA56D ,0xCA77 //HANGUL SYLLABLE SSANGCIEUC E RIEULHIEUH - ,0xA56E ,0xCA78 //HANGUL SYLLABLE SSANGCIEUC E MIEUM - ,0xA56F ,0xCA79 //HANGUL SYLLABLE SSANGCIEUC E PIEUP - ,0xA570 ,0xCA7A //HANGUL SYLLABLE SSANGCIEUC E PIEUPSIOS - ,0xA571 ,0xCA7B //HANGUL SYLLABLE SSANGCIEUC E SIOS - ,0xA572 ,0xCA7C //HANGUL SYLLABLE SSANGCIEUC E SSANGSIOS - ,0xA573 ,0xCA7E //HANGUL SYLLABLE SSANGCIEUC E CIEUC - ,0xA574 ,0xCA7F //HANGUL SYLLABLE SSANGCIEUC E CHIEUCH - ,0xA575 ,0xCA80 //HANGUL SYLLABLE SSANGCIEUC E KHIEUKH - ,0xA576 ,0xCA81 //HANGUL SYLLABLE SSANGCIEUC E THIEUTH - ,0xA577 ,0xCA82 //HANGUL SYLLABLE SSANGCIEUC E PHIEUPH - ,0xA578 ,0xCA83 //HANGUL SYLLABLE SSANGCIEUC E HIEUH - ,0xA579 ,0xCA85 //HANGUL SYLLABLE SSANGCIEUC YEO KIYEOK - ,0xA57A ,0xCA86 //HANGUL SYLLABLE SSANGCIEUC YEO SSANGKIYEOK - ,0xA581 ,0xCA87 //HANGUL SYLLABLE SSANGCIEUC YEO KIYEOKSIOS - ,0xA582 ,0xCA88 //HANGUL SYLLABLE SSANGCIEUC YEO NIEUN - ,0xA583 ,0xCA89 //HANGUL SYLLABLE SSANGCIEUC YEO NIEUNCIEUC - ,0xA584 ,0xCA8A //HANGUL SYLLABLE SSANGCIEUC YEO NIEUNHIEUH - ,0xA585 ,0xCA8B //HANGUL SYLLABLE SSANGCIEUC YEO TIKEUT - ,0xA586 ,0xCA8C //HANGUL SYLLABLE SSANGCIEUC YEO RIEUL - ,0xA587 ,0xCA8D //HANGUL SYLLABLE SSANGCIEUC YEO RIEULKIYEOK - ,0xA588 ,0xCA8E //HANGUL SYLLABLE SSANGCIEUC YEO RIEULMIEUM - ,0xA589 ,0xCA8F //HANGUL SYLLABLE SSANGCIEUC YEO RIEULPIEUP - ,0xA58A ,0xCA90 //HANGUL SYLLABLE SSANGCIEUC YEO RIEULSIOS - ,0xA58B ,0xCA91 //HANGUL SYLLABLE SSANGCIEUC YEO RIEULTHIEUTH - ,0xA58C ,0xCA92 //HANGUL SYLLABLE SSANGCIEUC YEO RIEULPHIEUPH - ,0xA58D ,0xCA93 //HANGUL SYLLABLE SSANGCIEUC YEO RIEULHIEUH - ,0xA58E ,0xCA94 //HANGUL SYLLABLE SSANGCIEUC YEO MIEUM - ,0xA58F ,0xCA95 //HANGUL SYLLABLE SSANGCIEUC YEO PIEUP - ,0xA590 ,0xCA96 //HANGUL SYLLABLE SSANGCIEUC YEO PIEUPSIOS - ,0xA591 ,0xCA97 //HANGUL SYLLABLE SSANGCIEUC YEO SIOS - ,0xA592 ,0xCA99 //HANGUL SYLLABLE SSANGCIEUC YEO IEUNG - ,0xA593 ,0xCA9A //HANGUL SYLLABLE SSANGCIEUC YEO CIEUC - ,0xA594 ,0xCA9B //HANGUL SYLLABLE SSANGCIEUC YEO CHIEUCH - ,0xA595 ,0xCA9C //HANGUL SYLLABLE SSANGCIEUC YEO KHIEUKH - ,0xA596 ,0xCA9D //HANGUL SYLLABLE SSANGCIEUC YEO THIEUTH - ,0xA597 ,0xCA9E //HANGUL SYLLABLE SSANGCIEUC YEO PHIEUPH - ,0xA598 ,0xCA9F //HANGUL SYLLABLE SSANGCIEUC YEO HIEUH - ,0xA599 ,0xCAA0 //HANGUL SYLLABLE SSANGCIEUC YE - ,0xA59A ,0xCAA1 //HANGUL SYLLABLE SSANGCIEUC YE KIYEOK - ,0xA59B ,0xCAA2 //HANGUL SYLLABLE SSANGCIEUC YE SSANGKIYEOK - ,0xA59C ,0xCAA3 //HANGUL SYLLABLE SSANGCIEUC YE KIYEOKSIOS - ,0xA59D ,0xCAA4 //HANGUL SYLLABLE SSANGCIEUC YE NIEUN - ,0xA59E ,0xCAA5 //HANGUL SYLLABLE SSANGCIEUC YE NIEUNCIEUC - ,0xA59F ,0xCAA6 //HANGUL SYLLABLE SSANGCIEUC YE NIEUNHIEUH - ,0xA5A0 ,0xCAA7 //HANGUL SYLLABLE SSANGCIEUC YE TIKEUT - ,0xA5A1 ,0x2170 //SMALL ROMAN NUMERAL ONE - ,0xA5A2 ,0x2171 //SMALL ROMAN NUMERAL TWO - ,0xA5A3 ,0x2172 //SMALL ROMAN NUMERAL THREE - ,0xA5A4 ,0x2173 //SMALL ROMAN NUMERAL FOUR - ,0xA5A5 ,0x2174 //SMALL ROMAN NUMERAL FIVE - ,0xA5A6 ,0x2175 //SMALL ROMAN NUMERAL SIX - ,0xA5A7 ,0x2176 //SMALL ROMAN NUMERAL SEVEN - ,0xA5A8 ,0x2177 //SMALL ROMAN NUMERAL EIGHT - ,0xA5A9 ,0x2178 //SMALL ROMAN NUMERAL NINE - ,0xA5AA ,0x2179 //SMALL ROMAN NUMERAL TEN - ,0xA5B0 ,0x2160 //ROMAN NUMERAL ONE - ,0xA5B1 ,0x2161 //ROMAN NUMERAL TWO - ,0xA5B2 ,0x2162 //ROMAN NUMERAL THREE - ,0xA5B3 ,0x2163 //ROMAN NUMERAL FOUR - ,0xA5B4 ,0x2164 //ROMAN NUMERAL FIVE - ,0xA5B5 ,0x2165 //ROMAN NUMERAL SIX - ,0xA5B6 ,0x2166 //ROMAN NUMERAL SEVEN - ,0xA5B7 ,0x2167 //ROMAN NUMERAL EIGHT - ,0xA5B8 ,0x2168 //ROMAN NUMERAL NINE - ,0xA5B9 ,0x2169 //ROMAN NUMERAL TEN - ,0xA5C1 ,0x0391 //GREEK CAPITAL LETTER ALPHA - ,0xA5C2 ,0x0392 //GREEK CAPITAL LETTER BETA - ,0xA5C3 ,0x0393 //GREEK CAPITAL LETTER GAMMA - ,0xA5C4 ,0x0394 //GREEK CAPITAL LETTER DELTA - ,0xA5C5 ,0x0395 //GREEK CAPITAL LETTER EPSILON - ,0xA5C6 ,0x0396 //GREEK CAPITAL LETTER ZETA - ,0xA5C7 ,0x0397 //GREEK CAPITAL LETTER ETA - ,0xA5C8 ,0x0398 //GREEK CAPITAL LETTER THETA - ,0xA5C9 ,0x0399 //GREEK CAPITAL LETTER IOTA - ,0xA5CA ,0x039A //GREEK CAPITAL LETTER KAPPA - ,0xA5CB ,0x039B //GREEK CAPITAL LETTER LAMDA - ,0xA5CC ,0x039C //GREEK CAPITAL LETTER MU - ,0xA5CD ,0x039D //GREEK CAPITAL LETTER NU - ,0xA5CE ,0x039E //GREEK CAPITAL LETTER XI - ,0xA5CF ,0x039F //GREEK CAPITAL LETTER OMICRON - ,0xA5D0 ,0x03A0 //GREEK CAPITAL LETTER PI - ,0xA5D1 ,0x03A1 //GREEK CAPITAL LETTER RHO - ,0xA5D2 ,0x03A3 //GREEK CAPITAL LETTER SIGMA - ,0xA5D3 ,0x03A4 //GREEK CAPITAL LETTER TAU - ,0xA5D4 ,0x03A5 //GREEK CAPITAL LETTER UPSILON - ,0xA5D5 ,0x03A6 //GREEK CAPITAL LETTER PHI - ,0xA5D6 ,0x03A7 //GREEK CAPITAL LETTER CHI - ,0xA5D7 ,0x03A8 //GREEK CAPITAL LETTER PSI - ,0xA5D8 ,0x03A9 //GREEK CAPITAL LETTER OMEGA - ,0xA5E1 ,0x03B1 //GREEK SMALL LETTER ALPHA - ,0xA5E2 ,0x03B2 //GREEK SMALL LETTER BETA - ,0xA5E3 ,0x03B3 //GREEK SMALL LETTER GAMMA - ,0xA5E4 ,0x03B4 //GREEK SMALL LETTER DELTA - ,0xA5E5 ,0x03B5 //GREEK SMALL LETTER EPSILON - ,0xA5E6 ,0x03B6 //GREEK SMALL LETTER ZETA - ,0xA5E7 ,0x03B7 //GREEK SMALL LETTER ETA - ,0xA5E8 ,0x03B8 //GREEK SMALL LETTER THETA - ,0xA5E9 ,0x03B9 //GREEK SMALL LETTER IOTA - ,0xA5EA ,0x03BA //GREEK SMALL LETTER KAPPA - ,0xA5EB ,0x03BB //GREEK SMALL LETTER LAMDA - ,0xA5EC ,0x03BC //GREEK SMALL LETTER MU - ,0xA5ED ,0x03BD //GREEK SMALL LETTER NU - ,0xA5EE ,0x03BE //GREEK SMALL LETTER XI - ,0xA5EF ,0x03BF //GREEK SMALL LETTER OMICRON - ,0xA5F0 ,0x03C0 //GREEK SMALL LETTER PI - ,0xA5F1 ,0x03C1 //GREEK SMALL LETTER RHO - ,0xA5F2 ,0x03C3 //GREEK SMALL LETTER SIGMA - ,0xA5F3 ,0x03C4 //GREEK SMALL LETTER TAU - ,0xA5F4 ,0x03C5 //GREEK SMALL LETTER UPSILON - ,0xA5F5 ,0x03C6 //GREEK SMALL LETTER PHI - ,0xA5F6 ,0x03C7 //GREEK SMALL LETTER CHI - ,0xA5F7 ,0x03C8 //GREEK SMALL LETTER PSI - ,0xA5F8 ,0x03C9 //GREEK SMALL LETTER OMEGA - ,0xA641 ,0xCAA8 //HANGUL SYLLABLE SSANGCIEUC YE RIEUL - ,0xA642 ,0xCAA9 //HANGUL SYLLABLE SSANGCIEUC YE RIEULKIYEOK - ,0xA643 ,0xCAAA //HANGUL SYLLABLE SSANGCIEUC YE RIEULMIEUM - ,0xA644 ,0xCAAB //HANGUL SYLLABLE SSANGCIEUC YE RIEULPIEUP - ,0xA645 ,0xCAAC //HANGUL SYLLABLE SSANGCIEUC YE RIEULSIOS - ,0xA646 ,0xCAAD //HANGUL SYLLABLE SSANGCIEUC YE RIEULTHIEUTH - ,0xA647 ,0xCAAE //HANGUL SYLLABLE SSANGCIEUC YE RIEULPHIEUPH - ,0xA648 ,0xCAAF //HANGUL SYLLABLE SSANGCIEUC YE RIEULHIEUH - ,0xA649 ,0xCAB0 //HANGUL SYLLABLE SSANGCIEUC YE MIEUM - ,0xA64A ,0xCAB1 //HANGUL SYLLABLE SSANGCIEUC YE PIEUP - ,0xA64B ,0xCAB2 //HANGUL SYLLABLE SSANGCIEUC YE PIEUPSIOS - ,0xA64C ,0xCAB3 //HANGUL SYLLABLE SSANGCIEUC YE SIOS - ,0xA64D ,0xCAB4 //HANGUL SYLLABLE SSANGCIEUC YE SSANGSIOS - ,0xA64E ,0xCAB5 //HANGUL SYLLABLE SSANGCIEUC YE IEUNG - ,0xA64F ,0xCAB6 //HANGUL SYLLABLE SSANGCIEUC YE CIEUC - ,0xA650 ,0xCAB7 //HANGUL SYLLABLE SSANGCIEUC YE CHIEUCH - ,0xA651 ,0xCAB8 //HANGUL SYLLABLE SSANGCIEUC YE KHIEUKH - ,0xA652 ,0xCAB9 //HANGUL SYLLABLE SSANGCIEUC YE THIEUTH - ,0xA653 ,0xCABA //HANGUL SYLLABLE SSANGCIEUC YE PHIEUPH - ,0xA654 ,0xCABB //HANGUL SYLLABLE SSANGCIEUC YE HIEUH - ,0xA655 ,0xCABE //HANGUL SYLLABLE SSANGCIEUC O SSANGKIYEOK - ,0xA656 ,0xCABF //HANGUL SYLLABLE SSANGCIEUC O KIYEOKSIOS - ,0xA657 ,0xCAC1 //HANGUL SYLLABLE SSANGCIEUC O NIEUNCIEUC - ,0xA658 ,0xCAC2 //HANGUL SYLLABLE SSANGCIEUC O NIEUNHIEUH - ,0xA659 ,0xCAC3 //HANGUL SYLLABLE SSANGCIEUC O TIKEUT - ,0xA65A ,0xCAC5 //HANGUL SYLLABLE SSANGCIEUC O RIEULKIYEOK - ,0xA661 ,0xCAC6 //HANGUL SYLLABLE SSANGCIEUC O RIEULMIEUM - ,0xA662 ,0xCAC7 //HANGUL SYLLABLE SSANGCIEUC O RIEULPIEUP - ,0xA663 ,0xCAC8 //HANGUL SYLLABLE SSANGCIEUC O RIEULSIOS - ,0xA664 ,0xCAC9 //HANGUL SYLLABLE SSANGCIEUC O RIEULTHIEUTH - ,0xA665 ,0xCACA //HANGUL SYLLABLE SSANGCIEUC O RIEULPHIEUPH - ,0xA666 ,0xCACB //HANGUL SYLLABLE SSANGCIEUC O RIEULHIEUH - ,0xA667 ,0xCACE //HANGUL SYLLABLE SSANGCIEUC O PIEUPSIOS - ,0xA668 ,0xCAD0 //HANGUL SYLLABLE SSANGCIEUC O SSANGSIOS - ,0xA669 ,0xCAD2 //HANGUL SYLLABLE SSANGCIEUC O CIEUC - ,0xA66A ,0xCAD4 //HANGUL SYLLABLE SSANGCIEUC O KHIEUKH - ,0xA66B ,0xCAD5 //HANGUL SYLLABLE SSANGCIEUC O THIEUTH - ,0xA66C ,0xCAD6 //HANGUL SYLLABLE SSANGCIEUC O PHIEUPH - ,0xA66D ,0xCAD7 //HANGUL SYLLABLE SSANGCIEUC O HIEUH - ,0xA66E ,0xCADA //HANGUL SYLLABLE SSANGCIEUC WA SSANGKIYEOK - ,0xA66F ,0xCADB //HANGUL SYLLABLE SSANGCIEUC WA KIYEOKSIOS - ,0xA670 ,0xCADC //HANGUL SYLLABLE SSANGCIEUC WA NIEUN - ,0xA671 ,0xCADD //HANGUL SYLLABLE SSANGCIEUC WA NIEUNCIEUC - ,0xA672 ,0xCADE //HANGUL SYLLABLE SSANGCIEUC WA NIEUNHIEUH - ,0xA673 ,0xCADF //HANGUL SYLLABLE SSANGCIEUC WA TIKEUT - ,0xA674 ,0xCAE1 //HANGUL SYLLABLE SSANGCIEUC WA RIEULKIYEOK - ,0xA675 ,0xCAE2 //HANGUL SYLLABLE SSANGCIEUC WA RIEULMIEUM - ,0xA676 ,0xCAE3 //HANGUL SYLLABLE SSANGCIEUC WA RIEULPIEUP - ,0xA677 ,0xCAE4 //HANGUL SYLLABLE SSANGCIEUC WA RIEULSIOS - ,0xA678 ,0xCAE5 //HANGUL SYLLABLE SSANGCIEUC WA RIEULTHIEUTH - ,0xA679 ,0xCAE6 //HANGUL SYLLABLE SSANGCIEUC WA RIEULPHIEUPH - ,0xA67A ,0xCAE7 //HANGUL SYLLABLE SSANGCIEUC WA RIEULHIEUH - ,0xA681 ,0xCAE8 //HANGUL SYLLABLE SSANGCIEUC WA MIEUM - ,0xA682 ,0xCAE9 //HANGUL SYLLABLE SSANGCIEUC WA PIEUP - ,0xA683 ,0xCAEA //HANGUL SYLLABLE SSANGCIEUC WA PIEUPSIOS - ,0xA684 ,0xCAEB //HANGUL SYLLABLE SSANGCIEUC WA SIOS - ,0xA685 ,0xCAED //HANGUL SYLLABLE SSANGCIEUC WA IEUNG - ,0xA686 ,0xCAEE //HANGUL SYLLABLE SSANGCIEUC WA CIEUC - ,0xA687 ,0xCAEF //HANGUL SYLLABLE SSANGCIEUC WA CHIEUCH - ,0xA688 ,0xCAF0 //HANGUL SYLLABLE SSANGCIEUC WA KHIEUKH - ,0xA689 ,0xCAF1 //HANGUL SYLLABLE SSANGCIEUC WA THIEUTH - ,0xA68A ,0xCAF2 //HANGUL SYLLABLE SSANGCIEUC WA PHIEUPH - ,0xA68B ,0xCAF3 //HANGUL SYLLABLE SSANGCIEUC WA HIEUH - ,0xA68C ,0xCAF5 //HANGUL SYLLABLE SSANGCIEUC WAE KIYEOK - ,0xA68D ,0xCAF6 //HANGUL SYLLABLE SSANGCIEUC WAE SSANGKIYEOK - ,0xA68E ,0xCAF7 //HANGUL SYLLABLE SSANGCIEUC WAE KIYEOKSIOS - ,0xA68F ,0xCAF8 //HANGUL SYLLABLE SSANGCIEUC WAE NIEUN - ,0xA690 ,0xCAF9 //HANGUL SYLLABLE SSANGCIEUC WAE NIEUNCIEUC - ,0xA691 ,0xCAFA //HANGUL SYLLABLE SSANGCIEUC WAE NIEUNHIEUH - ,0xA692 ,0xCAFB //HANGUL SYLLABLE SSANGCIEUC WAE TIKEUT - ,0xA693 ,0xCAFC //HANGUL SYLLABLE SSANGCIEUC WAE RIEUL - ,0xA694 ,0xCAFD //HANGUL SYLLABLE SSANGCIEUC WAE RIEULKIYEOK - ,0xA695 ,0xCAFE //HANGUL SYLLABLE SSANGCIEUC WAE RIEULMIEUM - ,0xA696 ,0xCAFF //HANGUL SYLLABLE SSANGCIEUC WAE RIEULPIEUP - ,0xA697 ,0xCB00 //HANGUL SYLLABLE SSANGCIEUC WAE RIEULSIOS - ,0xA698 ,0xCB01 //HANGUL SYLLABLE SSANGCIEUC WAE RIEULTHIEUTH - ,0xA699 ,0xCB02 //HANGUL SYLLABLE SSANGCIEUC WAE RIEULPHIEUPH - ,0xA69A ,0xCB03 //HANGUL SYLLABLE SSANGCIEUC WAE RIEULHIEUH - ,0xA69B ,0xCB04 //HANGUL SYLLABLE SSANGCIEUC WAE MIEUM - ,0xA69C ,0xCB05 //HANGUL SYLLABLE SSANGCIEUC WAE PIEUP - ,0xA69D ,0xCB06 //HANGUL SYLLABLE SSANGCIEUC WAE PIEUPSIOS - ,0xA69E ,0xCB07 //HANGUL SYLLABLE SSANGCIEUC WAE SIOS - ,0xA69F ,0xCB09 //HANGUL SYLLABLE SSANGCIEUC WAE IEUNG - ,0xA6A0 ,0xCB0A //HANGUL SYLLABLE SSANGCIEUC WAE CIEUC - ,0xA6A1 ,0x2500 //BOX DRAWINGS LIGHT HORIZONTAL - ,0xA6A2 ,0x2502 //BOX DRAWINGS LIGHT VERTICAL - ,0xA6A3 ,0x250C //BOX DRAWINGS LIGHT DOWN AND RIGHT - ,0xA6A4 ,0x2510 //BOX DRAWINGS LIGHT DOWN AND LEFT - ,0xA6A5 ,0x2518 //BOX DRAWINGS LIGHT UP AND LEFT - ,0xA6A6 ,0x2514 //BOX DRAWINGS LIGHT UP AND RIGHT - ,0xA6A7 ,0x251C //BOX DRAWINGS LIGHT VERTICAL AND RIGHT - ,0xA6A8 ,0x252C //BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - ,0xA6A9 ,0x2524 //BOX DRAWINGS LIGHT VERTICAL AND LEFT - ,0xA6AA ,0x2534 //BOX DRAWINGS LIGHT UP AND HORIZONTAL - ,0xA6AB ,0x253C //BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - ,0xA6AC ,0x2501 //BOX DRAWINGS HEAVY HORIZONTAL - ,0xA6AD ,0x2503 //BOX DRAWINGS HEAVY VERTICAL - ,0xA6AE ,0x250F //BOX DRAWINGS HEAVY DOWN AND RIGHT - ,0xA6AF ,0x2513 //BOX DRAWINGS HEAVY DOWN AND LEFT - ,0xA6B0 ,0x251B //BOX DRAWINGS HEAVY UP AND LEFT - ,0xA6B1 ,0x2517 //BOX DRAWINGS HEAVY UP AND RIGHT - ,0xA6B2 ,0x2523 //BOX DRAWINGS HEAVY VERTICAL AND RIGHT - ,0xA6B3 ,0x2533 //BOX DRAWINGS HEAVY DOWN AND HORIZONTAL - ,0xA6B4 ,0x252B //BOX DRAWINGS HEAVY VERTICAL AND LEFT - ,0xA6B5 ,0x253B //BOX DRAWINGS HEAVY UP AND HORIZONTAL - ,0xA6B6 ,0x254B //BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL - ,0xA6B7 ,0x2520 //BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT - ,0xA6B8 ,0x252F //BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY - ,0xA6B9 ,0x2528 //BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT - ,0xA6BA ,0x2537 //BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY - ,0xA6BB ,0x253F //BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY - ,0xA6BC ,0x251D //BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY - ,0xA6BD ,0x2530 //BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT - ,0xA6BE ,0x2525 //BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY - ,0xA6BF ,0x2538 //BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT - ,0xA6C0 ,0x2542 //BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT - ,0xA6C1 ,0x2512 //BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT - ,0xA6C2 ,0x2511 //BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY - ,0xA6C3 ,0x251A //BOX DRAWINGS UP HEAVY AND LEFT LIGHT - ,0xA6C4 ,0x2519 //BOX DRAWINGS UP LIGHT AND LEFT HEAVY - ,0xA6C5 ,0x2516 //BOX DRAWINGS UP HEAVY AND RIGHT LIGHT - ,0xA6C6 ,0x2515 //BOX DRAWINGS UP LIGHT AND RIGHT HEAVY - ,0xA6C7 ,0x250E //BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT - ,0xA6C8 ,0x250D //BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY - ,0xA6C9 ,0x251E //BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT - ,0xA6CA ,0x251F //BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT - ,0xA6CB ,0x2521 //BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY - ,0xA6CC ,0x2522 //BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY - ,0xA6CD ,0x2526 //BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT - ,0xA6CE ,0x2527 //BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT - ,0xA6CF ,0x2529 //BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY - ,0xA6D0 ,0x252A //BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY - ,0xA6D1 ,0x252D //BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT - ,0xA6D2 ,0x252E //BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT - ,0xA6D3 ,0x2531 //BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY - ,0xA6D4 ,0x2532 //BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY - ,0xA6D5 ,0x2535 //BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT - ,0xA6D6 ,0x2536 //BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT - ,0xA6D7 ,0x2539 //BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY - ,0xA6D8 ,0x253A //BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY - ,0xA6D9 ,0x253D //BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT - ,0xA6DA ,0x253E //BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT - ,0xA6DB ,0x2540 //BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT - ,0xA6DC ,0x2541 //BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT - ,0xA6DD ,0x2543 //BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT - ,0xA6DE ,0x2544 //BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT - ,0xA6DF ,0x2545 //BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT - ,0xA6E0 ,0x2546 //BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT - ,0xA6E1 ,0x2547 //BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY - ,0xA6E2 ,0x2548 //BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY - ,0xA6E3 ,0x2549 //BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY - ,0xA6E4 ,0x254A //BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY - ,0xA741 ,0xCB0B //HANGUL SYLLABLE SSANGCIEUC WAE CHIEUCH - ,0xA742 ,0xCB0C //HANGUL SYLLABLE SSANGCIEUC WAE KHIEUKH - ,0xA743 ,0xCB0D //HANGUL SYLLABLE SSANGCIEUC WAE THIEUTH - ,0xA744 ,0xCB0E //HANGUL SYLLABLE SSANGCIEUC WAE PHIEUPH - ,0xA745 ,0xCB0F //HANGUL SYLLABLE SSANGCIEUC WAE HIEUH - ,0xA746 ,0xCB11 //HANGUL SYLLABLE SSANGCIEUC OE KIYEOK - ,0xA747 ,0xCB12 //HANGUL SYLLABLE SSANGCIEUC OE SSANGKIYEOK - ,0xA748 ,0xCB13 //HANGUL SYLLABLE SSANGCIEUC OE KIYEOKSIOS - ,0xA749 ,0xCB15 //HANGUL SYLLABLE SSANGCIEUC OE NIEUNCIEUC - ,0xA74A ,0xCB16 //HANGUL SYLLABLE SSANGCIEUC OE NIEUNHIEUH - ,0xA74B ,0xCB17 //HANGUL SYLLABLE SSANGCIEUC OE TIKEUT - ,0xA74C ,0xCB19 //HANGUL SYLLABLE SSANGCIEUC OE RIEULKIYEOK - ,0xA74D ,0xCB1A //HANGUL SYLLABLE SSANGCIEUC OE RIEULMIEUM - ,0xA74E ,0xCB1B //HANGUL SYLLABLE SSANGCIEUC OE RIEULPIEUP - ,0xA74F ,0xCB1C //HANGUL SYLLABLE SSANGCIEUC OE RIEULSIOS - ,0xA750 ,0xCB1D //HANGUL SYLLABLE SSANGCIEUC OE RIEULTHIEUTH - ,0xA751 ,0xCB1E //HANGUL SYLLABLE SSANGCIEUC OE RIEULPHIEUPH - ,0xA752 ,0xCB1F //HANGUL SYLLABLE SSANGCIEUC OE RIEULHIEUH - ,0xA753 ,0xCB22 //HANGUL SYLLABLE SSANGCIEUC OE PIEUPSIOS - ,0xA754 ,0xCB23 //HANGUL SYLLABLE SSANGCIEUC OE SIOS - ,0xA755 ,0xCB24 //HANGUL SYLLABLE SSANGCIEUC OE SSANGSIOS - ,0xA756 ,0xCB25 //HANGUL SYLLABLE SSANGCIEUC OE IEUNG - ,0xA757 ,0xCB26 //HANGUL SYLLABLE SSANGCIEUC OE CIEUC - ,0xA758 ,0xCB27 //HANGUL SYLLABLE SSANGCIEUC OE CHIEUCH - ,0xA759 ,0xCB28 //HANGUL SYLLABLE SSANGCIEUC OE KHIEUKH - ,0xA75A ,0xCB29 //HANGUL SYLLABLE SSANGCIEUC OE THIEUTH - ,0xA761 ,0xCB2A //HANGUL SYLLABLE SSANGCIEUC OE PHIEUPH - ,0xA762 ,0xCB2B //HANGUL SYLLABLE SSANGCIEUC OE HIEUH - ,0xA763 ,0xCB2C //HANGUL SYLLABLE SSANGCIEUC YO - ,0xA764 ,0xCB2D //HANGUL SYLLABLE SSANGCIEUC YO KIYEOK - ,0xA765 ,0xCB2E //HANGUL SYLLABLE SSANGCIEUC YO SSANGKIYEOK - ,0xA766 ,0xCB2F //HANGUL SYLLABLE SSANGCIEUC YO KIYEOKSIOS - ,0xA767 ,0xCB30 //HANGUL SYLLABLE SSANGCIEUC YO NIEUN - ,0xA768 ,0xCB31 //HANGUL SYLLABLE SSANGCIEUC YO NIEUNCIEUC - ,0xA769 ,0xCB32 //HANGUL SYLLABLE SSANGCIEUC YO NIEUNHIEUH - ,0xA76A ,0xCB33 //HANGUL SYLLABLE SSANGCIEUC YO TIKEUT - ,0xA76B ,0xCB34 //HANGUL SYLLABLE SSANGCIEUC YO RIEUL - ,0xA76C ,0xCB35 //HANGUL SYLLABLE SSANGCIEUC YO RIEULKIYEOK - ,0xA76D ,0xCB36 //HANGUL SYLLABLE SSANGCIEUC YO RIEULMIEUM - ,0xA76E ,0xCB37 //HANGUL SYLLABLE SSANGCIEUC YO RIEULPIEUP - ,0xA76F ,0xCB38 //HANGUL SYLLABLE SSANGCIEUC YO RIEULSIOS - ,0xA770 ,0xCB39 //HANGUL SYLLABLE SSANGCIEUC YO RIEULTHIEUTH - ,0xA771 ,0xCB3A //HANGUL SYLLABLE SSANGCIEUC YO RIEULPHIEUPH - ,0xA772 ,0xCB3B //HANGUL SYLLABLE SSANGCIEUC YO RIEULHIEUH - ,0xA773 ,0xCB3C //HANGUL SYLLABLE SSANGCIEUC YO MIEUM - ,0xA774 ,0xCB3D //HANGUL SYLLABLE SSANGCIEUC YO PIEUP - ,0xA775 ,0xCB3E //HANGUL SYLLABLE SSANGCIEUC YO PIEUPSIOS - ,0xA776 ,0xCB3F //HANGUL SYLLABLE SSANGCIEUC YO SIOS - ,0xA777 ,0xCB40 //HANGUL SYLLABLE SSANGCIEUC YO SSANGSIOS - ,0xA778 ,0xCB42 //HANGUL SYLLABLE SSANGCIEUC YO CIEUC - ,0xA779 ,0xCB43 //HANGUL SYLLABLE SSANGCIEUC YO CHIEUCH - ,0xA77A ,0xCB44 //HANGUL SYLLABLE SSANGCIEUC YO KHIEUKH - ,0xA781 ,0xCB45 //HANGUL SYLLABLE SSANGCIEUC YO THIEUTH - ,0xA782 ,0xCB46 //HANGUL SYLLABLE SSANGCIEUC YO PHIEUPH - ,0xA783 ,0xCB47 //HANGUL SYLLABLE SSANGCIEUC YO HIEUH - ,0xA784 ,0xCB4A //HANGUL SYLLABLE SSANGCIEUC U SSANGKIYEOK - ,0xA785 ,0xCB4B //HANGUL SYLLABLE SSANGCIEUC U KIYEOKSIOS - ,0xA786 ,0xCB4D //HANGUL SYLLABLE SSANGCIEUC U NIEUNCIEUC - ,0xA787 ,0xCB4E //HANGUL SYLLABLE SSANGCIEUC U NIEUNHIEUH - ,0xA788 ,0xCB4F //HANGUL SYLLABLE SSANGCIEUC U TIKEUT - ,0xA789 ,0xCB51 //HANGUL SYLLABLE SSANGCIEUC U RIEULKIYEOK - ,0xA78A ,0xCB52 //HANGUL SYLLABLE SSANGCIEUC U RIEULMIEUM - ,0xA78B ,0xCB53 //HANGUL SYLLABLE SSANGCIEUC U RIEULPIEUP - ,0xA78C ,0xCB54 //HANGUL SYLLABLE SSANGCIEUC U RIEULSIOS - ,0xA78D ,0xCB55 //HANGUL SYLLABLE SSANGCIEUC U RIEULTHIEUTH - ,0xA78E ,0xCB56 //HANGUL SYLLABLE SSANGCIEUC U RIEULPHIEUPH - ,0xA78F ,0xCB57 //HANGUL SYLLABLE SSANGCIEUC U RIEULHIEUH - ,0xA790 ,0xCB5A //HANGUL SYLLABLE SSANGCIEUC U PIEUPSIOS - ,0xA791 ,0xCB5B //HANGUL SYLLABLE SSANGCIEUC U SIOS - ,0xA792 ,0xCB5C //HANGUL SYLLABLE SSANGCIEUC U SSANGSIOS - ,0xA793 ,0xCB5E //HANGUL SYLLABLE SSANGCIEUC U CIEUC - ,0xA794 ,0xCB5F //HANGUL SYLLABLE SSANGCIEUC U CHIEUCH - ,0xA795 ,0xCB60 //HANGUL SYLLABLE SSANGCIEUC U KHIEUKH - ,0xA796 ,0xCB61 //HANGUL SYLLABLE SSANGCIEUC U THIEUTH - ,0xA797 ,0xCB62 //HANGUL SYLLABLE SSANGCIEUC U PHIEUPH - ,0xA798 ,0xCB63 //HANGUL SYLLABLE SSANGCIEUC U HIEUH - ,0xA799 ,0xCB65 //HANGUL SYLLABLE SSANGCIEUC WEO KIYEOK - ,0xA79A ,0xCB66 //HANGUL SYLLABLE SSANGCIEUC WEO SSANGKIYEOK - ,0xA79B ,0xCB67 //HANGUL SYLLABLE SSANGCIEUC WEO KIYEOKSIOS - ,0xA79C ,0xCB68 //HANGUL SYLLABLE SSANGCIEUC WEO NIEUN - ,0xA79D ,0xCB69 //HANGUL SYLLABLE SSANGCIEUC WEO NIEUNCIEUC - ,0xA79E ,0xCB6A //HANGUL SYLLABLE SSANGCIEUC WEO NIEUNHIEUH - ,0xA79F ,0xCB6B //HANGUL SYLLABLE SSANGCIEUC WEO TIKEUT - ,0xA7A0 ,0xCB6C //HANGUL SYLLABLE SSANGCIEUC WEO RIEUL - ,0xA7A1 ,0x3395 //SQUARE MU L - ,0xA7A2 ,0x3396 //SQUARE ML - ,0xA7A3 ,0x3397 //SQUARE DL - ,0xA7A4 ,0x2113 //SCRIPT SMALL L - ,0xA7A5 ,0x3398 //SQUARE KL - ,0xA7A6 ,0x33C4 //SQUARE CC - ,0xA7A7 ,0x33A3 //SQUARE MM CUBED - ,0xA7A8 ,0x33A4 //SQUARE CM CUBED - ,0xA7A9 ,0x33A5 //SQUARE M CUBED - ,0xA7AA ,0x33A6 //SQUARE KM CUBED - ,0xA7AB ,0x3399 //SQUARE FM - ,0xA7AC ,0x339A //SQUARE NM - ,0xA7AD ,0x339B //SQUARE MU M - ,0xA7AE ,0x339C //SQUARE MM - ,0xA7AF ,0x339D //SQUARE CM - ,0xA7B0 ,0x339E //SQUARE KM - ,0xA7B1 ,0x339F //SQUARE MM SQUARED - ,0xA7B2 ,0x33A0 //SQUARE CM SQUARED - ,0xA7B3 ,0x33A1 //SQUARE M SQUARED - ,0xA7B4 ,0x33A2 //SQUARE KM SQUARED - ,0xA7B5 ,0x33CA //SQUARE HA - ,0xA7B6 ,0x338D //SQUARE MU G - ,0xA7B7 ,0x338E //SQUARE MG - ,0xA7B8 ,0x338F //SQUARE KG - ,0xA7B9 ,0x33CF //SQUARE KT - ,0xA7BA ,0x3388 //SQUARE CAL - ,0xA7BB ,0x3389 //SQUARE KCAL - ,0xA7BC ,0x33C8 //SQUARE DB - ,0xA7BD ,0x33A7 //SQUARE M OVER S - ,0xA7BE ,0x33A8 //SQUARE M OVER S SQUARED - ,0xA7BF ,0x33B0 //SQUARE PS - ,0xA7C0 ,0x33B1 //SQUARE NS - ,0xA7C1 ,0x33B2 //SQUARE MU S - ,0xA7C2 ,0x33B3 //SQUARE MS - ,0xA7C3 ,0x33B4 //SQUARE PV - ,0xA7C4 ,0x33B5 //SQUARE NV - ,0xA7C5 ,0x33B6 //SQUARE MU V - ,0xA7C6 ,0x33B7 //SQUARE MV - ,0xA7C7 ,0x33B8 //SQUARE KV - ,0xA7C8 ,0x33B9 //SQUARE MV MEGA - ,0xA7C9 ,0x3380 //SQUARE PA AMPS - ,0xA7CA ,0x3381 //SQUARE NA - ,0xA7CB ,0x3382 //SQUARE MU A - ,0xA7CC ,0x3383 //SQUARE MA - ,0xA7CD ,0x3384 //SQUARE KA - ,0xA7CE ,0x33BA //SQUARE PW - ,0xA7CF ,0x33BB //SQUARE NW - ,0xA7D0 ,0x33BC //SQUARE MU W - ,0xA7D1 ,0x33BD //SQUARE MW - ,0xA7D2 ,0x33BE //SQUARE KW - ,0xA7D3 ,0x33BF //SQUARE MW MEGA - ,0xA7D4 ,0x3390 //SQUARE HZ - ,0xA7D5 ,0x3391 //SQUARE KHZ - ,0xA7D6 ,0x3392 //SQUARE MHZ - ,0xA7D7 ,0x3393 //SQUARE GHZ - ,0xA7D8 ,0x3394 //SQUARE THZ - ,0xA7D9 ,0x2126 //OHM SIGN - ,0xA7DA ,0x33C0 //SQUARE K OHM - ,0xA7DB ,0x33C1 //SQUARE M OHM - ,0xA7DC ,0x338A //SQUARE PF - ,0xA7DD ,0x338B //SQUARE NF - ,0xA7DE ,0x338C //SQUARE MU F - ,0xA7DF ,0x33D6 //SQUARE MOL - ,0xA7E0 ,0x33C5 //SQUARE CD - ,0xA7E1 ,0x33AD //SQUARE RAD - ,0xA7E2 ,0x33AE //SQUARE RAD OVER S - ,0xA7E3 ,0x33AF //SQUARE RAD OVER S SQUARED - ,0xA7E4 ,0x33DB //SQUARE SR - ,0xA7E5 ,0x33A9 //SQUARE PA - ,0xA7E6 ,0x33AA //SQUARE KPA - ,0xA7E7 ,0x33AB //SQUARE MPA - ,0xA7E8 ,0x33AC //SQUARE GPA - ,0xA7E9 ,0x33DD //SQUARE WB - ,0xA7EA ,0x33D0 //SQUARE LM - ,0xA7EB ,0x33D3 //SQUARE LX - ,0xA7EC ,0x33C3 //SQUARE BQ - ,0xA7ED ,0x33C9 //SQUARE GY - ,0xA7EE ,0x33DC //SQUARE SV - ,0xA7EF ,0x33C6 //SQUARE C OVER KG - ,0xA841 ,0xCB6D //HANGUL SYLLABLE SSANGCIEUC WEO RIEULKIYEOK - ,0xA842 ,0xCB6E //HANGUL SYLLABLE SSANGCIEUC WEO RIEULMIEUM - ,0xA843 ,0xCB6F //HANGUL SYLLABLE SSANGCIEUC WEO RIEULPIEUP - ,0xA844 ,0xCB70 //HANGUL SYLLABLE SSANGCIEUC WEO RIEULSIOS - ,0xA845 ,0xCB71 //HANGUL SYLLABLE SSANGCIEUC WEO RIEULTHIEUTH - ,0xA846 ,0xCB72 //HANGUL SYLLABLE SSANGCIEUC WEO RIEULPHIEUPH - ,0xA847 ,0xCB73 //HANGUL SYLLABLE SSANGCIEUC WEO RIEULHIEUH - ,0xA848 ,0xCB74 //HANGUL SYLLABLE SSANGCIEUC WEO MIEUM - ,0xA849 ,0xCB75 //HANGUL SYLLABLE SSANGCIEUC WEO PIEUP - ,0xA84A ,0xCB76 //HANGUL SYLLABLE SSANGCIEUC WEO PIEUPSIOS - ,0xA84B ,0xCB77 //HANGUL SYLLABLE SSANGCIEUC WEO SIOS - ,0xA84C ,0xCB7A //HANGUL SYLLABLE SSANGCIEUC WEO CIEUC - ,0xA84D ,0xCB7B //HANGUL SYLLABLE SSANGCIEUC WEO CHIEUCH - ,0xA84E ,0xCB7C //HANGUL SYLLABLE SSANGCIEUC WEO KHIEUKH - ,0xA84F ,0xCB7D //HANGUL SYLLABLE SSANGCIEUC WEO THIEUTH - ,0xA850 ,0xCB7E //HANGUL SYLLABLE SSANGCIEUC WEO PHIEUPH - ,0xA851 ,0xCB7F //HANGUL SYLLABLE SSANGCIEUC WEO HIEUH - ,0xA852 ,0xCB80 //HANGUL SYLLABLE SSANGCIEUC WE - ,0xA853 ,0xCB81 //HANGUL SYLLABLE SSANGCIEUC WE KIYEOK - ,0xA854 ,0xCB82 //HANGUL SYLLABLE SSANGCIEUC WE SSANGKIYEOK - ,0xA855 ,0xCB83 //HANGUL SYLLABLE SSANGCIEUC WE KIYEOKSIOS - ,0xA856 ,0xCB84 //HANGUL SYLLABLE SSANGCIEUC WE NIEUN - ,0xA857 ,0xCB85 //HANGUL SYLLABLE SSANGCIEUC WE NIEUNCIEUC - ,0xA858 ,0xCB86 //HANGUL SYLLABLE SSANGCIEUC WE NIEUNHIEUH - ,0xA859 ,0xCB87 //HANGUL SYLLABLE SSANGCIEUC WE TIKEUT - ,0xA85A ,0xCB88 //HANGUL SYLLABLE SSANGCIEUC WE RIEUL - ,0xA861 ,0xCB89 //HANGUL SYLLABLE SSANGCIEUC WE RIEULKIYEOK - ,0xA862 ,0xCB8A //HANGUL SYLLABLE SSANGCIEUC WE RIEULMIEUM - ,0xA863 ,0xCB8B //HANGUL SYLLABLE SSANGCIEUC WE RIEULPIEUP - ,0xA864 ,0xCB8C //HANGUL SYLLABLE SSANGCIEUC WE RIEULSIOS - ,0xA865 ,0xCB8D //HANGUL SYLLABLE SSANGCIEUC WE RIEULTHIEUTH - ,0xA866 ,0xCB8E //HANGUL SYLLABLE SSANGCIEUC WE RIEULPHIEUPH - ,0xA867 ,0xCB8F //HANGUL SYLLABLE SSANGCIEUC WE RIEULHIEUH - ,0xA868 ,0xCB90 //HANGUL SYLLABLE SSANGCIEUC WE MIEUM - ,0xA869 ,0xCB91 //HANGUL SYLLABLE SSANGCIEUC WE PIEUP - ,0xA86A ,0xCB92 //HANGUL SYLLABLE SSANGCIEUC WE PIEUPSIOS - ,0xA86B ,0xCB93 //HANGUL SYLLABLE SSANGCIEUC WE SIOS - ,0xA86C ,0xCB94 //HANGUL SYLLABLE SSANGCIEUC WE SSANGSIOS - ,0xA86D ,0xCB95 //HANGUL SYLLABLE SSANGCIEUC WE IEUNG - ,0xA86E ,0xCB96 //HANGUL SYLLABLE SSANGCIEUC WE CIEUC - ,0xA86F ,0xCB97 //HANGUL SYLLABLE SSANGCIEUC WE CHIEUCH - ,0xA870 ,0xCB98 //HANGUL SYLLABLE SSANGCIEUC WE KHIEUKH - ,0xA871 ,0xCB99 //HANGUL SYLLABLE SSANGCIEUC WE THIEUTH - ,0xA872 ,0xCB9A //HANGUL SYLLABLE SSANGCIEUC WE PHIEUPH - ,0xA873 ,0xCB9B //HANGUL SYLLABLE SSANGCIEUC WE HIEUH - ,0xA874 ,0xCB9D //HANGUL SYLLABLE SSANGCIEUC WI KIYEOK - ,0xA875 ,0xCB9E //HANGUL SYLLABLE SSANGCIEUC WI SSANGKIYEOK - ,0xA876 ,0xCB9F //HANGUL SYLLABLE SSANGCIEUC WI KIYEOKSIOS - ,0xA877 ,0xCBA0 //HANGUL SYLLABLE SSANGCIEUC WI NIEUN - ,0xA878 ,0xCBA1 //HANGUL SYLLABLE SSANGCIEUC WI NIEUNCIEUC - ,0xA879 ,0xCBA2 //HANGUL SYLLABLE SSANGCIEUC WI NIEUNHIEUH - ,0xA87A ,0xCBA3 //HANGUL SYLLABLE SSANGCIEUC WI TIKEUT - ,0xA881 ,0xCBA4 //HANGUL SYLLABLE SSANGCIEUC WI RIEUL - ,0xA882 ,0xCBA5 //HANGUL SYLLABLE SSANGCIEUC WI RIEULKIYEOK - ,0xA883 ,0xCBA6 //HANGUL SYLLABLE SSANGCIEUC WI RIEULMIEUM - ,0xA884 ,0xCBA7 //HANGUL SYLLABLE SSANGCIEUC WI RIEULPIEUP - ,0xA885 ,0xCBA8 //HANGUL SYLLABLE SSANGCIEUC WI RIEULSIOS - ,0xA886 ,0xCBA9 //HANGUL SYLLABLE SSANGCIEUC WI RIEULTHIEUTH - ,0xA887 ,0xCBAA //HANGUL SYLLABLE SSANGCIEUC WI RIEULPHIEUPH - ,0xA888 ,0xCBAB //HANGUL SYLLABLE SSANGCIEUC WI RIEULHIEUH - ,0xA889 ,0xCBAC //HANGUL SYLLABLE SSANGCIEUC WI MIEUM - ,0xA88A ,0xCBAD //HANGUL SYLLABLE SSANGCIEUC WI PIEUP - ,0xA88B ,0xCBAE //HANGUL SYLLABLE SSANGCIEUC WI PIEUPSIOS - ,0xA88C ,0xCBAF //HANGUL SYLLABLE SSANGCIEUC WI SIOS - ,0xA88D ,0xCBB0 //HANGUL SYLLABLE SSANGCIEUC WI SSANGSIOS - ,0xA88E ,0xCBB1 //HANGUL SYLLABLE SSANGCIEUC WI IEUNG - ,0xA88F ,0xCBB2 //HANGUL SYLLABLE SSANGCIEUC WI CIEUC - ,0xA890 ,0xCBB3 //HANGUL SYLLABLE SSANGCIEUC WI CHIEUCH - ,0xA891 ,0xCBB4 //HANGUL SYLLABLE SSANGCIEUC WI KHIEUKH - ,0xA892 ,0xCBB5 //HANGUL SYLLABLE SSANGCIEUC WI THIEUTH - ,0xA893 ,0xCBB6 //HANGUL SYLLABLE SSANGCIEUC WI PHIEUPH - ,0xA894 ,0xCBB7 //HANGUL SYLLABLE SSANGCIEUC WI HIEUH - ,0xA895 ,0xCBB9 //HANGUL SYLLABLE SSANGCIEUC YU KIYEOK - ,0xA896 ,0xCBBA //HANGUL SYLLABLE SSANGCIEUC YU SSANGKIYEOK - ,0xA897 ,0xCBBB //HANGUL SYLLABLE SSANGCIEUC YU KIYEOKSIOS - ,0xA898 ,0xCBBC //HANGUL SYLLABLE SSANGCIEUC YU NIEUN - ,0xA899 ,0xCBBD //HANGUL SYLLABLE SSANGCIEUC YU NIEUNCIEUC - ,0xA89A ,0xCBBE //HANGUL SYLLABLE SSANGCIEUC YU NIEUNHIEUH - ,0xA89B ,0xCBBF //HANGUL SYLLABLE SSANGCIEUC YU TIKEUT - ,0xA89C ,0xCBC0 //HANGUL SYLLABLE SSANGCIEUC YU RIEUL - ,0xA89D ,0xCBC1 //HANGUL SYLLABLE SSANGCIEUC YU RIEULKIYEOK - ,0xA89E ,0xCBC2 //HANGUL SYLLABLE SSANGCIEUC YU RIEULMIEUM - ,0xA89F ,0xCBC3 //HANGUL SYLLABLE SSANGCIEUC YU RIEULPIEUP - ,0xA8A0 ,0xCBC4 //HANGUL SYLLABLE SSANGCIEUC YU RIEULSIOS - ,0xA8A1 ,0x00C6 //LATIN CAPITAL LETTER AE - ,0xA8A2 ,0x00D0 //LATIN CAPITAL LETTER ETH - ,0xA8A3 ,0x00AA //FEMININE ORDINAL INDICATOR - ,0xA8A4 ,0x0126 //LATIN CAPITAL LETTER H WITH STROKE - ,0xA8A6 ,0x0132 //LATIN CAPITAL LIGATURE IJ - ,0xA8A8 ,0x013F //LATIN CAPITAL LETTER L WITH MIDDLE DOT - ,0xA8A9 ,0x0141 //LATIN CAPITAL LETTER L WITH STROKE - ,0xA8AA ,0x00D8 //LATIN CAPITAL LETTER O WITH STROKE - ,0xA8AB ,0x0152 //LATIN CAPITAL LIGATURE OE - ,0xA8AC ,0x00BA //MASCULINE ORDINAL INDICATOR - ,0xA8AD ,0x00DE //LATIN CAPITAL LETTER THORN - ,0xA8AE ,0x0166 //LATIN CAPITAL LETTER T WITH STROKE - ,0xA8AF ,0x014A //LATIN CAPITAL LETTER ENG - ,0xA8B1 ,0x3260 //CIRCLED HANGUL KIYEOK - ,0xA8B2 ,0x3261 //CIRCLED HANGUL NIEUN - ,0xA8B3 ,0x3262 //CIRCLED HANGUL TIKEUT - ,0xA8B4 ,0x3263 //CIRCLED HANGUL RIEUL - ,0xA8B5 ,0x3264 //CIRCLED HANGUL MIEUM - ,0xA8B6 ,0x3265 //CIRCLED HANGUL PIEUP - ,0xA8B7 ,0x3266 //CIRCLED HANGUL SIOS - ,0xA8B8 ,0x3267 //CIRCLED HANGUL IEUNG - ,0xA8B9 ,0x3268 //CIRCLED HANGUL CIEUC - ,0xA8BA ,0x3269 //CIRCLED HANGUL CHIEUCH - ,0xA8BB ,0x326A //CIRCLED HANGUL KHIEUKH - ,0xA8BC ,0x326B //CIRCLED HANGUL THIEUTH - ,0xA8BD ,0x326C //CIRCLED HANGUL PHIEUPH - ,0xA8BE ,0x326D //CIRCLED HANGUL HIEUH - ,0xA8BF ,0x326E //CIRCLED HANGUL KIYEOK A - ,0xA8C0 ,0x326F //CIRCLED HANGUL NIEUN A - ,0xA8C1 ,0x3270 //CIRCLED HANGUL TIKEUT A - ,0xA8C2 ,0x3271 //CIRCLED HANGUL RIEUL A - ,0xA8C3 ,0x3272 //CIRCLED HANGUL MIEUM A - ,0xA8C4 ,0x3273 //CIRCLED HANGUL PIEUP A - ,0xA8C5 ,0x3274 //CIRCLED HANGUL SIOS A - ,0xA8C6 ,0x3275 //CIRCLED HANGUL IEUNG A - ,0xA8C7 ,0x3276 //CIRCLED HANGUL CIEUC A - ,0xA8C8 ,0x3277 //CIRCLED HANGUL CHIEUCH A - ,0xA8C9 ,0x3278 //CIRCLED HANGUL KHIEUKH A - ,0xA8CA ,0x3279 //CIRCLED HANGUL THIEUTH A - ,0xA8CB ,0x327A //CIRCLED HANGUL PHIEUPH A - ,0xA8CC ,0x327B //CIRCLED HANGUL HIEUH A - ,0xA8CD ,0x24D0 //CIRCLED LATIN SMALL LETTER A - ,0xA8CE ,0x24D1 //CIRCLED LATIN SMALL LETTER B - ,0xA8CF ,0x24D2 //CIRCLED LATIN SMALL LETTER C - ,0xA8D0 ,0x24D3 //CIRCLED LATIN SMALL LETTER D - ,0xA8D1 ,0x24D4 //CIRCLED LATIN SMALL LETTER E - ,0xA8D2 ,0x24D5 //CIRCLED LATIN SMALL LETTER F - ,0xA8D3 ,0x24D6 //CIRCLED LATIN SMALL LETTER G - ,0xA8D4 ,0x24D7 //CIRCLED LATIN SMALL LETTER H - ,0xA8D5 ,0x24D8 //CIRCLED LATIN SMALL LETTER I - ,0xA8D6 ,0x24D9 //CIRCLED LATIN SMALL LETTER J - ,0xA8D7 ,0x24DA //CIRCLED LATIN SMALL LETTER K - ,0xA8D8 ,0x24DB //CIRCLED LATIN SMALL LETTER L - ,0xA8D9 ,0x24DC //CIRCLED LATIN SMALL LETTER M - ,0xA8DA ,0x24DD //CIRCLED LATIN SMALL LETTER N - ,0xA8DB ,0x24DE //CIRCLED LATIN SMALL LETTER O - ,0xA8DC ,0x24DF //CIRCLED LATIN SMALL LETTER P - ,0xA8DD ,0x24E0 //CIRCLED LATIN SMALL LETTER Q - ,0xA8DE ,0x24E1 //CIRCLED LATIN SMALL LETTER R - ,0xA8DF ,0x24E2 //CIRCLED LATIN SMALL LETTER S - ,0xA8E0 ,0x24E3 //CIRCLED LATIN SMALL LETTER T - ,0xA8E1 ,0x24E4 //CIRCLED LATIN SMALL LETTER U - ,0xA8E2 ,0x24E5 //CIRCLED LATIN SMALL LETTER V - ,0xA8E3 ,0x24E6 //CIRCLED LATIN SMALL LETTER W - ,0xA8E4 ,0x24E7 //CIRCLED LATIN SMALL LETTER X - ,0xA8E5 ,0x24E8 //CIRCLED LATIN SMALL LETTER Y - ,0xA8E6 ,0x24E9 //CIRCLED LATIN SMALL LETTER Z - ,0xA8E7 ,0x2460 //CIRCLED DIGIT ONE - ,0xA8E8 ,0x2461 //CIRCLED DIGIT TWO - ,0xA8E9 ,0x2462 //CIRCLED DIGIT THREE - ,0xA8EA ,0x2463 //CIRCLED DIGIT FOUR - ,0xA8EB ,0x2464 //CIRCLED DIGIT FIVE - ,0xA8EC ,0x2465 //CIRCLED DIGIT SIX - ,0xA8ED ,0x2466 //CIRCLED DIGIT SEVEN - ,0xA8EE ,0x2467 //CIRCLED DIGIT EIGHT - ,0xA8EF ,0x2468 //CIRCLED DIGIT NINE - ,0xA8F0 ,0x2469 //CIRCLED NUMBER TEN - ,0xA8F1 ,0x246A //CIRCLED NUMBER ELEVEN - ,0xA8F2 ,0x246B //CIRCLED NUMBER TWELVE - ,0xA8F3 ,0x246C //CIRCLED NUMBER THIRTEEN - ,0xA8F4 ,0x246D //CIRCLED NUMBER FOURTEEN - ,0xA8F5 ,0x246E //CIRCLED NUMBER FIFTEEN - ,0xA8F6 ,0x00BD //VULGAR FRACTION ONE HALF - ,0xA8F7 ,0x2153 //VULGAR FRACTION ONE THIRD - ,0xA8F8 ,0x2154 //VULGAR FRACTION TWO THIRDS - ,0xA8F9 ,0x00BC //VULGAR FRACTION ONE QUARTER - ,0xA8FA ,0x00BE //VULGAR FRACTION THREE QUARTERS - ,0xA8FB ,0x215B //VULGAR FRACTION ONE EIGHTH - ,0xA8FC ,0x215C //VULGAR FRACTION THREE EIGHTHS - ,0xA8FD ,0x215D //VULGAR FRACTION FIVE EIGHTHS - ,0xA8FE ,0x215E //VULGAR FRACTION SEVEN EIGHTHS - ,0xA941 ,0xCBC5 //HANGUL SYLLABLE SSANGCIEUC YU RIEULTHIEUTH - ,0xA942 ,0xCBC6 //HANGUL SYLLABLE SSANGCIEUC YU RIEULPHIEUPH - ,0xA943 ,0xCBC7 //HANGUL SYLLABLE SSANGCIEUC YU RIEULHIEUH - ,0xA944 ,0xCBC8 //HANGUL SYLLABLE SSANGCIEUC YU MIEUM - ,0xA945 ,0xCBC9 //HANGUL SYLLABLE SSANGCIEUC YU PIEUP - ,0xA946 ,0xCBCA //HANGUL SYLLABLE SSANGCIEUC YU PIEUPSIOS - ,0xA947 ,0xCBCB //HANGUL SYLLABLE SSANGCIEUC YU SIOS - ,0xA948 ,0xCBCC //HANGUL SYLLABLE SSANGCIEUC YU SSANGSIOS - ,0xA949 ,0xCBCD //HANGUL SYLLABLE SSANGCIEUC YU IEUNG - ,0xA94A ,0xCBCE //HANGUL SYLLABLE SSANGCIEUC YU CIEUC - ,0xA94B ,0xCBCF //HANGUL SYLLABLE SSANGCIEUC YU CHIEUCH - ,0xA94C ,0xCBD0 //HANGUL SYLLABLE SSANGCIEUC YU KHIEUKH - ,0xA94D ,0xCBD1 //HANGUL SYLLABLE SSANGCIEUC YU THIEUTH - ,0xA94E ,0xCBD2 //HANGUL SYLLABLE SSANGCIEUC YU PHIEUPH - ,0xA94F ,0xCBD3 //HANGUL SYLLABLE SSANGCIEUC YU HIEUH - ,0xA950 ,0xCBD5 //HANGUL SYLLABLE SSANGCIEUC EU KIYEOK - ,0xA951 ,0xCBD6 //HANGUL SYLLABLE SSANGCIEUC EU SSANGKIYEOK - ,0xA952 ,0xCBD7 //HANGUL SYLLABLE SSANGCIEUC EU KIYEOKSIOS - ,0xA953 ,0xCBD8 //HANGUL SYLLABLE SSANGCIEUC EU NIEUN - ,0xA954 ,0xCBD9 //HANGUL SYLLABLE SSANGCIEUC EU NIEUNCIEUC - ,0xA955 ,0xCBDA //HANGUL SYLLABLE SSANGCIEUC EU NIEUNHIEUH - ,0xA956 ,0xCBDB //HANGUL SYLLABLE SSANGCIEUC EU TIKEUT - ,0xA957 ,0xCBDC //HANGUL SYLLABLE SSANGCIEUC EU RIEUL - ,0xA958 ,0xCBDD //HANGUL SYLLABLE SSANGCIEUC EU RIEULKIYEOK - ,0xA959 ,0xCBDE //HANGUL SYLLABLE SSANGCIEUC EU RIEULMIEUM - ,0xA95A ,0xCBDF //HANGUL SYLLABLE SSANGCIEUC EU RIEULPIEUP - ,0xA961 ,0xCBE0 //HANGUL SYLLABLE SSANGCIEUC EU RIEULSIOS - ,0xA962 ,0xCBE1 //HANGUL SYLLABLE SSANGCIEUC EU RIEULTHIEUTH - ,0xA963 ,0xCBE2 //HANGUL SYLLABLE SSANGCIEUC EU RIEULPHIEUPH - ,0xA964 ,0xCBE3 //HANGUL SYLLABLE SSANGCIEUC EU RIEULHIEUH - ,0xA965 ,0xCBE5 //HANGUL SYLLABLE SSANGCIEUC EU PIEUP - ,0xA966 ,0xCBE6 //HANGUL SYLLABLE SSANGCIEUC EU PIEUPSIOS - ,0xA967 ,0xCBE8 //HANGUL SYLLABLE SSANGCIEUC EU SSANGSIOS - ,0xA968 ,0xCBEA //HANGUL SYLLABLE SSANGCIEUC EU CIEUC - ,0xA969 ,0xCBEB //HANGUL SYLLABLE SSANGCIEUC EU CHIEUCH - ,0xA96A ,0xCBEC //HANGUL SYLLABLE SSANGCIEUC EU KHIEUKH - ,0xA96B ,0xCBED //HANGUL SYLLABLE SSANGCIEUC EU THIEUTH - ,0xA96C ,0xCBEE //HANGUL SYLLABLE SSANGCIEUC EU PHIEUPH - ,0xA96D ,0xCBEF //HANGUL SYLLABLE SSANGCIEUC EU HIEUH - ,0xA96E ,0xCBF0 //HANGUL SYLLABLE SSANGCIEUC YI - ,0xA96F ,0xCBF1 //HANGUL SYLLABLE SSANGCIEUC YI KIYEOK - ,0xA970 ,0xCBF2 //HANGUL SYLLABLE SSANGCIEUC YI SSANGKIYEOK - ,0xA971 ,0xCBF3 //HANGUL SYLLABLE SSANGCIEUC YI KIYEOKSIOS - ,0xA972 ,0xCBF4 //HANGUL SYLLABLE SSANGCIEUC YI NIEUN - ,0xA973 ,0xCBF5 //HANGUL SYLLABLE SSANGCIEUC YI NIEUNCIEUC - ,0xA974 ,0xCBF6 //HANGUL SYLLABLE SSANGCIEUC YI NIEUNHIEUH - ,0xA975 ,0xCBF7 //HANGUL SYLLABLE SSANGCIEUC YI TIKEUT - ,0xA976 ,0xCBF8 //HANGUL SYLLABLE SSANGCIEUC YI RIEUL - ,0xA977 ,0xCBF9 //HANGUL SYLLABLE SSANGCIEUC YI RIEULKIYEOK - ,0xA978 ,0xCBFA //HANGUL SYLLABLE SSANGCIEUC YI RIEULMIEUM - ,0xA979 ,0xCBFB //HANGUL SYLLABLE SSANGCIEUC YI RIEULPIEUP - ,0xA97A ,0xCBFC //HANGUL SYLLABLE SSANGCIEUC YI RIEULSIOS - ,0xA981 ,0xCBFD //HANGUL SYLLABLE SSANGCIEUC YI RIEULTHIEUTH - ,0xA982 ,0xCBFE //HANGUL SYLLABLE SSANGCIEUC YI RIEULPHIEUPH - ,0xA983 ,0xCBFF //HANGUL SYLLABLE SSANGCIEUC YI RIEULHIEUH - ,0xA984 ,0xCC00 //HANGUL SYLLABLE SSANGCIEUC YI MIEUM - ,0xA985 ,0xCC01 //HANGUL SYLLABLE SSANGCIEUC YI PIEUP - ,0xA986 ,0xCC02 //HANGUL SYLLABLE SSANGCIEUC YI PIEUPSIOS - ,0xA987 ,0xCC03 //HANGUL SYLLABLE SSANGCIEUC YI SIOS - ,0xA988 ,0xCC04 //HANGUL SYLLABLE SSANGCIEUC YI SSANGSIOS - ,0xA989 ,0xCC05 //HANGUL SYLLABLE SSANGCIEUC YI IEUNG - ,0xA98A ,0xCC06 //HANGUL SYLLABLE SSANGCIEUC YI CIEUC - ,0xA98B ,0xCC07 //HANGUL SYLLABLE SSANGCIEUC YI CHIEUCH - ,0xA98C ,0xCC08 //HANGUL SYLLABLE SSANGCIEUC YI KHIEUKH - ,0xA98D ,0xCC09 //HANGUL SYLLABLE SSANGCIEUC YI THIEUTH - ,0xA98E ,0xCC0A //HANGUL SYLLABLE SSANGCIEUC YI PHIEUPH - ,0xA98F ,0xCC0B //HANGUL SYLLABLE SSANGCIEUC YI HIEUH - ,0xA990 ,0xCC0E //HANGUL SYLLABLE SSANGCIEUC I SSANGKIYEOK - ,0xA991 ,0xCC0F //HANGUL SYLLABLE SSANGCIEUC I KIYEOKSIOS - ,0xA992 ,0xCC11 //HANGUL SYLLABLE SSANGCIEUC I NIEUNCIEUC - ,0xA993 ,0xCC12 //HANGUL SYLLABLE SSANGCIEUC I NIEUNHIEUH - ,0xA994 ,0xCC13 //HANGUL SYLLABLE SSANGCIEUC I TIKEUT - ,0xA995 ,0xCC15 //HANGUL SYLLABLE SSANGCIEUC I RIEULKIYEOK - ,0xA996 ,0xCC16 //HANGUL SYLLABLE SSANGCIEUC I RIEULMIEUM - ,0xA997 ,0xCC17 //HANGUL SYLLABLE SSANGCIEUC I RIEULPIEUP - ,0xA998 ,0xCC18 //HANGUL SYLLABLE SSANGCIEUC I RIEULSIOS - ,0xA999 ,0xCC19 //HANGUL SYLLABLE SSANGCIEUC I RIEULTHIEUTH - ,0xA99A ,0xCC1A //HANGUL SYLLABLE SSANGCIEUC I RIEULPHIEUPH - ,0xA99B ,0xCC1B //HANGUL SYLLABLE SSANGCIEUC I RIEULHIEUH - ,0xA99C ,0xCC1E //HANGUL SYLLABLE SSANGCIEUC I PIEUPSIOS - ,0xA99D ,0xCC1F //HANGUL SYLLABLE SSANGCIEUC I SIOS - ,0xA99E ,0xCC20 //HANGUL SYLLABLE SSANGCIEUC I SSANGSIOS - ,0xA99F ,0xCC23 //HANGUL SYLLABLE SSANGCIEUC I CHIEUCH - ,0xA9A0 ,0xCC24 //HANGUL SYLLABLE SSANGCIEUC I KHIEUKH - ,0xA9A1 ,0x00E6 //LATIN SMALL LETTER AE - ,0xA9A2 ,0x0111 //LATIN SMALL LETTER D WITH STROKE - ,0xA9A3 ,0x00F0 //LATIN SMALL LETTER ETH - ,0xA9A4 ,0x0127 //LATIN SMALL LETTER H WITH STROKE - ,0xA9A5 ,0x0131 //LATIN SMALL LETTER DOTLESS I - ,0xA9A6 ,0x0133 //LATIN SMALL LIGATURE IJ - ,0xA9A7 ,0x0138 //LATIN SMALL LETTER KRA - ,0xA9A8 ,0x0140 //LATIN SMALL LETTER L WITH MIDDLE DOT - ,0xA9A9 ,0x0142 //LATIN SMALL LETTER L WITH STROKE - ,0xA9AA ,0x00F8 //LATIN SMALL LETTER O WITH STROKE - ,0xA9AB ,0x0153 //LATIN SMALL LIGATURE OE - ,0xA9AC ,0x00DF //LATIN SMALL LETTER SHARP S - ,0xA9AD ,0x00FE //LATIN SMALL LETTER THORN - ,0xA9AE ,0x0167 //LATIN SMALL LETTER T WITH STROKE - ,0xA9AF ,0x014B //LATIN SMALL LETTER ENG - ,0xA9B0 ,0x0149 //LATIN SMALL LETTER N PRECEDED BY APOSTROPHE - ,0xA9B1 ,0x3200 //PARENTHESIZED HANGUL KIYEOK - ,0xA9B2 ,0x3201 //PARENTHESIZED HANGUL NIEUN - ,0xA9B3 ,0x3202 //PARENTHESIZED HANGUL TIKEUT - ,0xA9B4 ,0x3203 //PARENTHESIZED HANGUL RIEUL - ,0xA9B5 ,0x3204 //PARENTHESIZED HANGUL MIEUM - ,0xA9B6 ,0x3205 //PARENTHESIZED HANGUL PIEUP - ,0xA9B7 ,0x3206 //PARENTHESIZED HANGUL SIOS - ,0xA9B8 ,0x3207 //PARENTHESIZED HANGUL IEUNG - ,0xA9B9 ,0x3208 //PARENTHESIZED HANGUL CIEUC - ,0xA9BA ,0x3209 //PARENTHESIZED HANGUL CHIEUCH - ,0xA9BB ,0x320A //PARENTHESIZED HANGUL KHIEUKH - ,0xA9BC ,0x320B //PARENTHESIZED HANGUL THIEUTH - ,0xA9BD ,0x320C //PARENTHESIZED HANGUL PHIEUPH - ,0xA9BE ,0x320D //PARENTHESIZED HANGUL HIEUH - ,0xA9BF ,0x320E //PARENTHESIZED HANGUL KIYEOK A - ,0xA9C0 ,0x320F //PARENTHESIZED HANGUL NIEUN A - ,0xA9C1 ,0x3210 //PARENTHESIZED HANGUL TIKEUT A - ,0xA9C2 ,0x3211 //PARENTHESIZED HANGUL RIEUL A - ,0xA9C3 ,0x3212 //PARENTHESIZED HANGUL MIEUM A - ,0xA9C4 ,0x3213 //PARENTHESIZED HANGUL PIEUP A - ,0xA9C5 ,0x3214 //PARENTHESIZED HANGUL SIOS A - ,0xA9C6 ,0x3215 //PARENTHESIZED HANGUL IEUNG A - ,0xA9C7 ,0x3216 //PARENTHESIZED HANGUL CIEUC A - ,0xA9C8 ,0x3217 //PARENTHESIZED HANGUL CHIEUCH A - ,0xA9C9 ,0x3218 //PARENTHESIZED HANGUL KHIEUKH A - ,0xA9CA ,0x3219 //PARENTHESIZED HANGUL THIEUTH A - ,0xA9CB ,0x321A //PARENTHESIZED HANGUL PHIEUPH A - ,0xA9CC ,0x321B //PARENTHESIZED HANGUL HIEUH A - ,0xA9CD ,0x249C //PARENTHESIZED LATIN SMALL LETTER A - ,0xA9CE ,0x249D //PARENTHESIZED LATIN SMALL LETTER B - ,0xA9CF ,0x249E //PARENTHESIZED LATIN SMALL LETTER C - ,0xA9D0 ,0x249F //PARENTHESIZED LATIN SMALL LETTER D - ,0xA9D1 ,0x24A0 //PARENTHESIZED LATIN SMALL LETTER E - ,0xA9D2 ,0x24A1 //PARENTHESIZED LATIN SMALL LETTER F - ,0xA9D3 ,0x24A2 //PARENTHESIZED LATIN SMALL LETTER G - ,0xA9D4 ,0x24A3 //PARENTHESIZED LATIN SMALL LETTER H - ,0xA9D5 ,0x24A4 //PARENTHESIZED LATIN SMALL LETTER I - ,0xA9D6 ,0x24A5 //PARENTHESIZED LATIN SMALL LETTER J - ,0xA9D7 ,0x24A6 //PARENTHESIZED LATIN SMALL LETTER K - ,0xA9D8 ,0x24A7 //PARENTHESIZED LATIN SMALL LETTER L - ,0xA9D9 ,0x24A8 //PARENTHESIZED LATIN SMALL LETTER M - ,0xA9DA ,0x24A9 //PARENTHESIZED LATIN SMALL LETTER N - ,0xA9DB ,0x24AA //PARENTHESIZED LATIN SMALL LETTER O - ,0xA9DC ,0x24AB //PARENTHESIZED LATIN SMALL LETTER P - ,0xA9DD ,0x24AC //PARENTHESIZED LATIN SMALL LETTER Q - ,0xA9DE ,0x24AD //PARENTHESIZED LATIN SMALL LETTER R - ,0xA9DF ,0x24AE //PARENTHESIZED LATIN SMALL LETTER S - ,0xA9E0 ,0x24AF //PARENTHESIZED LATIN SMALL LETTER T - ,0xA9E1 ,0x24B0 //PARENTHESIZED LATIN SMALL LETTER U - ,0xA9E2 ,0x24B1 //PARENTHESIZED LATIN SMALL LETTER V - ,0xA9E3 ,0x24B2 //PARENTHESIZED LATIN SMALL LETTER W - ,0xA9E4 ,0x24B3 //PARENTHESIZED LATIN SMALL LETTER X - ,0xA9E5 ,0x24B4 //PARENTHESIZED LATIN SMALL LETTER Y - ,0xA9E6 ,0x24B5 //PARENTHESIZED LATIN SMALL LETTER Z - ,0xA9E7 ,0x2474 //PARENTHESIZED DIGIT ONE - ,0xA9E8 ,0x2475 //PARENTHESIZED DIGIT TWO - ,0xA9E9 ,0x2476 //PARENTHESIZED DIGIT THREE - ,0xA9EA ,0x2477 //PARENTHESIZED DIGIT FOUR - ,0xA9EB ,0x2478 //PARENTHESIZED DIGIT FIVE - ,0xA9EC ,0x2479 //PARENTHESIZED DIGIT SIX - ,0xA9ED ,0x247A //PARENTHESIZED DIGIT SEVEN - ,0xA9EE ,0x247B //PARENTHESIZED DIGIT EIGHT - ,0xA9EF ,0x247C //PARENTHESIZED DIGIT NINE - ,0xA9F0 ,0x247D //PARENTHESIZED NUMBER TEN - ,0xA9F1 ,0x247E //PARENTHESIZED NUMBER ELEVEN - ,0xA9F2 ,0x247F //PARENTHESIZED NUMBER TWELVE - ,0xA9F3 ,0x2480 //PARENTHESIZED NUMBER THIRTEEN - ,0xA9F4 ,0x2481 //PARENTHESIZED NUMBER FOURTEEN - ,0xA9F5 ,0x2482 //PARENTHESIZED NUMBER FIFTEEN - ,0xA9F6 ,0x00B9 //SUPERSCRIPT ONE - ,0xA9F7 ,0x00B2 //SUPERSCRIPT TWO - ,0xA9F8 ,0x00B3 //SUPERSCRIPT THREE - ,0xA9F9 ,0x2074 //SUPERSCRIPT FOUR - ,0xA9FA ,0x207F //SUPERSCRIPT LATIN SMALL LETTER N - ,0xA9FB ,0x2081 //SUBSCRIPT ONE - ,0xA9FC ,0x2082 //SUBSCRIPT TWO - ,0xA9FD ,0x2083 //SUBSCRIPT THREE - ,0xA9FE ,0x2084 //SUBSCRIPT FOUR - ,0xAA41 ,0xCC25 //HANGUL SYLLABLE SSANGCIEUC I THIEUTH - ,0xAA42 ,0xCC26 //HANGUL SYLLABLE SSANGCIEUC I PHIEUPH - ,0xAA43 ,0xCC2A //HANGUL SYLLABLE CHIEUCH A SSANGKIYEOK - ,0xAA44 ,0xCC2B //HANGUL SYLLABLE CHIEUCH A KIYEOKSIOS - ,0xAA45 ,0xCC2D //HANGUL SYLLABLE CHIEUCH A NIEUNCIEUC - ,0xAA46 ,0xCC2F //HANGUL SYLLABLE CHIEUCH A TIKEUT - ,0xAA47 ,0xCC31 //HANGUL SYLLABLE CHIEUCH A RIEULKIYEOK - ,0xAA48 ,0xCC32 //HANGUL SYLLABLE CHIEUCH A RIEULMIEUM - ,0xAA49 ,0xCC33 //HANGUL SYLLABLE CHIEUCH A RIEULPIEUP - ,0xAA4A ,0xCC34 //HANGUL SYLLABLE CHIEUCH A RIEULSIOS - ,0xAA4B ,0xCC35 //HANGUL SYLLABLE CHIEUCH A RIEULTHIEUTH - ,0xAA4C ,0xCC36 //HANGUL SYLLABLE CHIEUCH A RIEULPHIEUPH - ,0xAA4D ,0xCC37 //HANGUL SYLLABLE CHIEUCH A RIEULHIEUH - ,0xAA4E ,0xCC3A //HANGUL SYLLABLE CHIEUCH A PIEUPSIOS - ,0xAA4F ,0xCC3F //HANGUL SYLLABLE CHIEUCH A CHIEUCH - ,0xAA50 ,0xCC40 //HANGUL SYLLABLE CHIEUCH A KHIEUKH - ,0xAA51 ,0xCC41 //HANGUL SYLLABLE CHIEUCH A THIEUTH - ,0xAA52 ,0xCC42 //HANGUL SYLLABLE CHIEUCH A PHIEUPH - ,0xAA53 ,0xCC43 //HANGUL SYLLABLE CHIEUCH A HIEUH - ,0xAA54 ,0xCC46 //HANGUL SYLLABLE CHIEUCH AE SSANGKIYEOK - ,0xAA55 ,0xCC47 //HANGUL SYLLABLE CHIEUCH AE KIYEOKSIOS - ,0xAA56 ,0xCC49 //HANGUL SYLLABLE CHIEUCH AE NIEUNCIEUC - ,0xAA57 ,0xCC4A //HANGUL SYLLABLE CHIEUCH AE NIEUNHIEUH - ,0xAA58 ,0xCC4B //HANGUL SYLLABLE CHIEUCH AE TIKEUT - ,0xAA59 ,0xCC4D //HANGUL SYLLABLE CHIEUCH AE RIEULKIYEOK - ,0xAA5A ,0xCC4E //HANGUL SYLLABLE CHIEUCH AE RIEULMIEUM - ,0xAA61 ,0xCC4F //HANGUL SYLLABLE CHIEUCH AE RIEULPIEUP - ,0xAA62 ,0xCC50 //HANGUL SYLLABLE CHIEUCH AE RIEULSIOS - ,0xAA63 ,0xCC51 //HANGUL SYLLABLE CHIEUCH AE RIEULTHIEUTH - ,0xAA64 ,0xCC52 //HANGUL SYLLABLE CHIEUCH AE RIEULPHIEUPH - ,0xAA65 ,0xCC53 //HANGUL SYLLABLE CHIEUCH AE RIEULHIEUH - ,0xAA66 ,0xCC56 //HANGUL SYLLABLE CHIEUCH AE PIEUPSIOS - ,0xAA67 ,0xCC5A //HANGUL SYLLABLE CHIEUCH AE CIEUC - ,0xAA68 ,0xCC5B //HANGUL SYLLABLE CHIEUCH AE CHIEUCH - ,0xAA69 ,0xCC5C //HANGUL SYLLABLE CHIEUCH AE KHIEUKH - ,0xAA6A ,0xCC5D //HANGUL SYLLABLE CHIEUCH AE THIEUTH - ,0xAA6B ,0xCC5E //HANGUL SYLLABLE CHIEUCH AE PHIEUPH - ,0xAA6C ,0xCC5F //HANGUL SYLLABLE CHIEUCH AE HIEUH - ,0xAA6D ,0xCC61 //HANGUL SYLLABLE CHIEUCH YA KIYEOK - ,0xAA6E ,0xCC62 //HANGUL SYLLABLE CHIEUCH YA SSANGKIYEOK - ,0xAA6F ,0xCC63 //HANGUL SYLLABLE CHIEUCH YA KIYEOKSIOS - ,0xAA70 ,0xCC65 //HANGUL SYLLABLE CHIEUCH YA NIEUNCIEUC - ,0xAA71 ,0xCC67 //HANGUL SYLLABLE CHIEUCH YA TIKEUT - ,0xAA72 ,0xCC69 //HANGUL SYLLABLE CHIEUCH YA RIEULKIYEOK - ,0xAA73 ,0xCC6A //HANGUL SYLLABLE CHIEUCH YA RIEULMIEUM - ,0xAA74 ,0xCC6B //HANGUL SYLLABLE CHIEUCH YA RIEULPIEUP - ,0xAA75 ,0xCC6C //HANGUL SYLLABLE CHIEUCH YA RIEULSIOS - ,0xAA76 ,0xCC6D //HANGUL SYLLABLE CHIEUCH YA RIEULTHIEUTH - ,0xAA77 ,0xCC6E //HANGUL SYLLABLE CHIEUCH YA RIEULPHIEUPH - ,0xAA78 ,0xCC6F //HANGUL SYLLABLE CHIEUCH YA RIEULHIEUH - ,0xAA79 ,0xCC71 //HANGUL SYLLABLE CHIEUCH YA PIEUP - ,0xAA7A ,0xCC72 //HANGUL SYLLABLE CHIEUCH YA PIEUPSIOS - ,0xAA81 ,0xCC73 //HANGUL SYLLABLE CHIEUCH YA SIOS - ,0xAA82 ,0xCC74 //HANGUL SYLLABLE CHIEUCH YA SSANGSIOS - ,0xAA83 ,0xCC76 //HANGUL SYLLABLE CHIEUCH YA CIEUC - ,0xAA84 ,0xCC77 //HANGUL SYLLABLE CHIEUCH YA CHIEUCH - ,0xAA85 ,0xCC78 //HANGUL SYLLABLE CHIEUCH YA KHIEUKH - ,0xAA86 ,0xCC79 //HANGUL SYLLABLE CHIEUCH YA THIEUTH - ,0xAA87 ,0xCC7A //HANGUL SYLLABLE CHIEUCH YA PHIEUPH - ,0xAA88 ,0xCC7B //HANGUL SYLLABLE CHIEUCH YA HIEUH - ,0xAA89 ,0xCC7C //HANGUL SYLLABLE CHIEUCH YAE - ,0xAA8A ,0xCC7D //HANGUL SYLLABLE CHIEUCH YAE KIYEOK - ,0xAA8B ,0xCC7E //HANGUL SYLLABLE CHIEUCH YAE SSANGKIYEOK - ,0xAA8C ,0xCC7F //HANGUL SYLLABLE CHIEUCH YAE KIYEOKSIOS - ,0xAA8D ,0xCC80 //HANGUL SYLLABLE CHIEUCH YAE NIEUN - ,0xAA8E ,0xCC81 //HANGUL SYLLABLE CHIEUCH YAE NIEUNCIEUC - ,0xAA8F ,0xCC82 //HANGUL SYLLABLE CHIEUCH YAE NIEUNHIEUH - ,0xAA90 ,0xCC83 //HANGUL SYLLABLE CHIEUCH YAE TIKEUT - ,0xAA91 ,0xCC84 //HANGUL SYLLABLE CHIEUCH YAE RIEUL - ,0xAA92 ,0xCC85 //HANGUL SYLLABLE CHIEUCH YAE RIEULKIYEOK - ,0xAA93 ,0xCC86 //HANGUL SYLLABLE CHIEUCH YAE RIEULMIEUM - ,0xAA94 ,0xCC87 //HANGUL SYLLABLE CHIEUCH YAE RIEULPIEUP - ,0xAA95 ,0xCC88 //HANGUL SYLLABLE CHIEUCH YAE RIEULSIOS - ,0xAA96 ,0xCC89 //HANGUL SYLLABLE CHIEUCH YAE RIEULTHIEUTH - ,0xAA97 ,0xCC8A //HANGUL SYLLABLE CHIEUCH YAE RIEULPHIEUPH - ,0xAA98 ,0xCC8B //HANGUL SYLLABLE CHIEUCH YAE RIEULHIEUH - ,0xAA99 ,0xCC8C //HANGUL SYLLABLE CHIEUCH YAE MIEUM - ,0xAA9A ,0xCC8D //HANGUL SYLLABLE CHIEUCH YAE PIEUP - ,0xAA9B ,0xCC8E //HANGUL SYLLABLE CHIEUCH YAE PIEUPSIOS - ,0xAA9C ,0xCC8F //HANGUL SYLLABLE CHIEUCH YAE SIOS - ,0xAA9D ,0xCC90 //HANGUL SYLLABLE CHIEUCH YAE SSANGSIOS - ,0xAA9E ,0xCC91 //HANGUL SYLLABLE CHIEUCH YAE IEUNG - ,0xAA9F ,0xCC92 //HANGUL SYLLABLE CHIEUCH YAE CIEUC - ,0xAAA0 ,0xCC93 //HANGUL SYLLABLE CHIEUCH YAE CHIEUCH - ,0xAAA1 ,0x3041 //HIRAGANA LETTER SMALL A - ,0xAAA2 ,0x3042 //HIRAGANA LETTER A - ,0xAAA3 ,0x3043 //HIRAGANA LETTER SMALL I - ,0xAAA4 ,0x3044 //HIRAGANA LETTER I - ,0xAAA5 ,0x3045 //HIRAGANA LETTER SMALL U - ,0xAAA6 ,0x3046 //HIRAGANA LETTER U - ,0xAAA7 ,0x3047 //HIRAGANA LETTER SMALL E - ,0xAAA8 ,0x3048 //HIRAGANA LETTER E - ,0xAAA9 ,0x3049 //HIRAGANA LETTER SMALL O - ,0xAAAA ,0x304A //HIRAGANA LETTER O - ,0xAAAB ,0x304B //HIRAGANA LETTER KA - ,0xAAAC ,0x304C //HIRAGANA LETTER GA - ,0xAAAD ,0x304D //HIRAGANA LETTER KI - ,0xAAAE ,0x304E //HIRAGANA LETTER GI - ,0xAAAF ,0x304F //HIRAGANA LETTER KU - ,0xAAB0 ,0x3050 //HIRAGANA LETTER GU - ,0xAAB1 ,0x3051 //HIRAGANA LETTER KE - ,0xAAB2 ,0x3052 //HIRAGANA LETTER GE - ,0xAAB3 ,0x3053 //HIRAGANA LETTER KO - ,0xAAB4 ,0x3054 //HIRAGANA LETTER GO - ,0xAAB5 ,0x3055 //HIRAGANA LETTER SA - ,0xAAB6 ,0x3056 //HIRAGANA LETTER ZA - ,0xAAB7 ,0x3057 //HIRAGANA LETTER SI - ,0xAAB8 ,0x3058 //HIRAGANA LETTER ZI - ,0xAAB9 ,0x3059 //HIRAGANA LETTER SU - ,0xAABA ,0x305A //HIRAGANA LETTER ZU - ,0xAABB ,0x305B //HIRAGANA LETTER SE - ,0xAABC ,0x305C //HIRAGANA LETTER ZE - ,0xAABD ,0x305D //HIRAGANA LETTER SO - ,0xAABE ,0x305E //HIRAGANA LETTER ZO - ,0xAABF ,0x305F //HIRAGANA LETTER TA - ,0xAAC0 ,0x3060 //HIRAGANA LETTER DA - ,0xAAC1 ,0x3061 //HIRAGANA LETTER TI - ,0xAAC2 ,0x3062 //HIRAGANA LETTER DI - ,0xAAC3 ,0x3063 //HIRAGANA LETTER SMALL TU - ,0xAAC4 ,0x3064 //HIRAGANA LETTER TU - ,0xAAC5 ,0x3065 //HIRAGANA LETTER DU - ,0xAAC6 ,0x3066 //HIRAGANA LETTER TE - ,0xAAC7 ,0x3067 //HIRAGANA LETTER DE - ,0xAAC8 ,0x3068 //HIRAGANA LETTER TO - ,0xAAC9 ,0x3069 //HIRAGANA LETTER DO - ,0xAACA ,0x306A //HIRAGANA LETTER NA - ,0xAACB ,0x306B //HIRAGANA LETTER NI - ,0xAACC ,0x306C //HIRAGANA LETTER NU - ,0xAACD ,0x306D //HIRAGANA LETTER NE - ,0xAACE ,0x306E //HIRAGANA LETTER NO - ,0xAACF ,0x306F //HIRAGANA LETTER HA - ,0xAAD0 ,0x3070 //HIRAGANA LETTER BA - ,0xAAD1 ,0x3071 //HIRAGANA LETTER PA - ,0xAAD2 ,0x3072 //HIRAGANA LETTER HI - ,0xAAD3 ,0x3073 //HIRAGANA LETTER BI - ,0xAAD4 ,0x3074 //HIRAGANA LETTER PI - ,0xAAD5 ,0x3075 //HIRAGANA LETTER HU - ,0xAAD6 ,0x3076 //HIRAGANA LETTER BU - ,0xAAD7 ,0x3077 //HIRAGANA LETTER PU - ,0xAAD8 ,0x3078 //HIRAGANA LETTER HE - ,0xAAD9 ,0x3079 //HIRAGANA LETTER BE - ,0xAADA ,0x307A //HIRAGANA LETTER PE - ,0xAADB ,0x307B //HIRAGANA LETTER HO - ,0xAADC ,0x307C //HIRAGANA LETTER BO - ,0xAADD ,0x307D //HIRAGANA LETTER PO - ,0xAADE ,0x307E //HIRAGANA LETTER MA - ,0xAADF ,0x307F //HIRAGANA LETTER MI - ,0xAAE0 ,0x3080 //HIRAGANA LETTER MU - ,0xAAE1 ,0x3081 //HIRAGANA LETTER ME - ,0xAAE2 ,0x3082 //HIRAGANA LETTER MO - ,0xAAE3 ,0x3083 //HIRAGANA LETTER SMALL YA - ,0xAAE4 ,0x3084 //HIRAGANA LETTER YA - ,0xAAE5 ,0x3085 //HIRAGANA LETTER SMALL YU - ,0xAAE6 ,0x3086 //HIRAGANA LETTER YU - ,0xAAE7 ,0x3087 //HIRAGANA LETTER SMALL YO - ,0xAAE8 ,0x3088 //HIRAGANA LETTER YO - ,0xAAE9 ,0x3089 //HIRAGANA LETTER RA - ,0xAAEA ,0x308A //HIRAGANA LETTER RI - ,0xAAEB ,0x308B //HIRAGANA LETTER RU - ,0xAAEC ,0x308C //HIRAGANA LETTER RE - ,0xAAED ,0x308D //HIRAGANA LETTER RO - ,0xAAEE ,0x308E //HIRAGANA LETTER SMALL WA - ,0xAAEF ,0x308F //HIRAGANA LETTER WA - ,0xAAF0 ,0x3090 //HIRAGANA LETTER WI - ,0xAAF1 ,0x3091 //HIRAGANA LETTER WE - ,0xAAF2 ,0x3092 //HIRAGANA LETTER WO - ,0xAAF3 ,0x3093 //HIRAGANA LETTER N - ,0xAB41 ,0xCC94 //HANGUL SYLLABLE CHIEUCH YAE KHIEUKH - ,0xAB42 ,0xCC95 //HANGUL SYLLABLE CHIEUCH YAE THIEUTH - ,0xAB43 ,0xCC96 //HANGUL SYLLABLE CHIEUCH YAE PHIEUPH - ,0xAB44 ,0xCC97 //HANGUL SYLLABLE CHIEUCH YAE HIEUH - ,0xAB45 ,0xCC9A //HANGUL SYLLABLE CHIEUCH EO SSANGKIYEOK - ,0xAB46 ,0xCC9B //HANGUL SYLLABLE CHIEUCH EO KIYEOKSIOS - ,0xAB47 ,0xCC9D //HANGUL SYLLABLE CHIEUCH EO NIEUNCIEUC - ,0xAB48 ,0xCC9E //HANGUL SYLLABLE CHIEUCH EO NIEUNHIEUH - ,0xAB49 ,0xCC9F //HANGUL SYLLABLE CHIEUCH EO TIKEUT - ,0xAB4A ,0xCCA1 //HANGUL SYLLABLE CHIEUCH EO RIEULKIYEOK - ,0xAB4B ,0xCCA2 //HANGUL SYLLABLE CHIEUCH EO RIEULMIEUM - ,0xAB4C ,0xCCA3 //HANGUL SYLLABLE CHIEUCH EO RIEULPIEUP - ,0xAB4D ,0xCCA4 //HANGUL SYLLABLE CHIEUCH EO RIEULSIOS - ,0xAB4E ,0xCCA5 //HANGUL SYLLABLE CHIEUCH EO RIEULTHIEUTH - ,0xAB4F ,0xCCA6 //HANGUL SYLLABLE CHIEUCH EO RIEULPHIEUPH - ,0xAB50 ,0xCCA7 //HANGUL SYLLABLE CHIEUCH EO RIEULHIEUH - ,0xAB51 ,0xCCAA //HANGUL SYLLABLE CHIEUCH EO PIEUPSIOS - ,0xAB52 ,0xCCAE //HANGUL SYLLABLE CHIEUCH EO CIEUC - ,0xAB53 ,0xCCAF //HANGUL SYLLABLE CHIEUCH EO CHIEUCH - ,0xAB54 ,0xCCB0 //HANGUL SYLLABLE CHIEUCH EO KHIEUKH - ,0xAB55 ,0xCCB1 //HANGUL SYLLABLE CHIEUCH EO THIEUTH - ,0xAB56 ,0xCCB2 //HANGUL SYLLABLE CHIEUCH EO PHIEUPH - ,0xAB57 ,0xCCB3 //HANGUL SYLLABLE CHIEUCH EO HIEUH - ,0xAB58 ,0xCCB6 //HANGUL SYLLABLE CHIEUCH E SSANGKIYEOK - ,0xAB59 ,0xCCB7 //HANGUL SYLLABLE CHIEUCH E KIYEOKSIOS - ,0xAB5A ,0xCCB9 //HANGUL SYLLABLE CHIEUCH E NIEUNCIEUC - ,0xAB61 ,0xCCBA //HANGUL SYLLABLE CHIEUCH E NIEUNHIEUH - ,0xAB62 ,0xCCBB //HANGUL SYLLABLE CHIEUCH E TIKEUT - ,0xAB63 ,0xCCBD //HANGUL SYLLABLE CHIEUCH E RIEULKIYEOK - ,0xAB64 ,0xCCBE //HANGUL SYLLABLE CHIEUCH E RIEULMIEUM - ,0xAB65 ,0xCCBF //HANGUL SYLLABLE CHIEUCH E RIEULPIEUP - ,0xAB66 ,0xCCC0 //HANGUL SYLLABLE CHIEUCH E RIEULSIOS - ,0xAB67 ,0xCCC1 //HANGUL SYLLABLE CHIEUCH E RIEULTHIEUTH - ,0xAB68 ,0xCCC2 //HANGUL SYLLABLE CHIEUCH E RIEULPHIEUPH - ,0xAB69 ,0xCCC3 //HANGUL SYLLABLE CHIEUCH E RIEULHIEUH - ,0xAB6A ,0xCCC6 //HANGUL SYLLABLE CHIEUCH E PIEUPSIOS - ,0xAB6B ,0xCCC8 //HANGUL SYLLABLE CHIEUCH E SSANGSIOS - ,0xAB6C ,0xCCCA //HANGUL SYLLABLE CHIEUCH E CIEUC - ,0xAB6D ,0xCCCB //HANGUL SYLLABLE CHIEUCH E CHIEUCH - ,0xAB6E ,0xCCCC //HANGUL SYLLABLE CHIEUCH E KHIEUKH - ,0xAB6F ,0xCCCD //HANGUL SYLLABLE CHIEUCH E THIEUTH - ,0xAB70 ,0xCCCE //HANGUL SYLLABLE CHIEUCH E PHIEUPH - ,0xAB71 ,0xCCCF //HANGUL SYLLABLE CHIEUCH E HIEUH - ,0xAB72 ,0xCCD1 //HANGUL SYLLABLE CHIEUCH YEO KIYEOK - ,0xAB73 ,0xCCD2 //HANGUL SYLLABLE CHIEUCH YEO SSANGKIYEOK - ,0xAB74 ,0xCCD3 //HANGUL SYLLABLE CHIEUCH YEO KIYEOKSIOS - ,0xAB75 ,0xCCD5 //HANGUL SYLLABLE CHIEUCH YEO NIEUNCIEUC - ,0xAB76 ,0xCCD6 //HANGUL SYLLABLE CHIEUCH YEO NIEUNHIEUH - ,0xAB77 ,0xCCD7 //HANGUL SYLLABLE CHIEUCH YEO TIKEUT - ,0xAB78 ,0xCCD8 //HANGUL SYLLABLE CHIEUCH YEO RIEUL - ,0xAB79 ,0xCCD9 //HANGUL SYLLABLE CHIEUCH YEO RIEULKIYEOK - ,0xAB7A ,0xCCDA //HANGUL SYLLABLE CHIEUCH YEO RIEULMIEUM - ,0xAB81 ,0xCCDB //HANGUL SYLLABLE CHIEUCH YEO RIEULPIEUP - ,0xAB82 ,0xCCDC //HANGUL SYLLABLE CHIEUCH YEO RIEULSIOS - ,0xAB83 ,0xCCDD //HANGUL SYLLABLE CHIEUCH YEO RIEULTHIEUTH - ,0xAB84 ,0xCCDE //HANGUL SYLLABLE CHIEUCH YEO RIEULPHIEUPH - ,0xAB85 ,0xCCDF //HANGUL SYLLABLE CHIEUCH YEO RIEULHIEUH - ,0xAB86 ,0xCCE0 //HANGUL SYLLABLE CHIEUCH YEO MIEUM - ,0xAB87 ,0xCCE1 //HANGUL SYLLABLE CHIEUCH YEO PIEUP - ,0xAB88 ,0xCCE2 //HANGUL SYLLABLE CHIEUCH YEO PIEUPSIOS - ,0xAB89 ,0xCCE3 //HANGUL SYLLABLE CHIEUCH YEO SIOS - ,0xAB8A ,0xCCE5 //HANGUL SYLLABLE CHIEUCH YEO IEUNG - ,0xAB8B ,0xCCE6 //HANGUL SYLLABLE CHIEUCH YEO CIEUC - ,0xAB8C ,0xCCE7 //HANGUL SYLLABLE CHIEUCH YEO CHIEUCH - ,0xAB8D ,0xCCE8 //HANGUL SYLLABLE CHIEUCH YEO KHIEUKH - ,0xAB8E ,0xCCE9 //HANGUL SYLLABLE CHIEUCH YEO THIEUTH - ,0xAB8F ,0xCCEA //HANGUL SYLLABLE CHIEUCH YEO PHIEUPH - ,0xAB90 ,0xCCEB //HANGUL SYLLABLE CHIEUCH YEO HIEUH - ,0xAB91 ,0xCCED //HANGUL SYLLABLE CHIEUCH YE KIYEOK - ,0xAB92 ,0xCCEE //HANGUL SYLLABLE CHIEUCH YE SSANGKIYEOK - ,0xAB93 ,0xCCEF //HANGUL SYLLABLE CHIEUCH YE KIYEOKSIOS - ,0xAB94 ,0xCCF1 //HANGUL SYLLABLE CHIEUCH YE NIEUNCIEUC - ,0xAB95 ,0xCCF2 //HANGUL SYLLABLE CHIEUCH YE NIEUNHIEUH - ,0xAB96 ,0xCCF3 //HANGUL SYLLABLE CHIEUCH YE TIKEUT - ,0xAB97 ,0xCCF4 //HANGUL SYLLABLE CHIEUCH YE RIEUL - ,0xAB98 ,0xCCF5 //HANGUL SYLLABLE CHIEUCH YE RIEULKIYEOK - ,0xAB99 ,0xCCF6 //HANGUL SYLLABLE CHIEUCH YE RIEULMIEUM - ,0xAB9A ,0xCCF7 //HANGUL SYLLABLE CHIEUCH YE RIEULPIEUP - ,0xAB9B ,0xCCF8 //HANGUL SYLLABLE CHIEUCH YE RIEULSIOS - ,0xAB9C ,0xCCF9 //HANGUL SYLLABLE CHIEUCH YE RIEULTHIEUTH - ,0xAB9D ,0xCCFA //HANGUL SYLLABLE CHIEUCH YE RIEULPHIEUPH - ,0xAB9E ,0xCCFB //HANGUL SYLLABLE CHIEUCH YE RIEULHIEUH - ,0xAB9F ,0xCCFC //HANGUL SYLLABLE CHIEUCH YE MIEUM - ,0xABA0 ,0xCCFD //HANGUL SYLLABLE CHIEUCH YE PIEUP - ,0xABA1 ,0x30A1 //KATAKANA LETTER SMALL A - ,0xABA2 ,0x30A2 //KATAKANA LETTER A - ,0xABA3 ,0x30A3 //KATAKANA LETTER SMALL I - ,0xABA4 ,0x30A4 //KATAKANA LETTER I - ,0xABA5 ,0x30A5 //KATAKANA LETTER SMALL U - ,0xABA6 ,0x30A6 //KATAKANA LETTER U - ,0xABA7 ,0x30A7 //KATAKANA LETTER SMALL E - ,0xABA8 ,0x30A8 //KATAKANA LETTER E - ,0xABA9 ,0x30A9 //KATAKANA LETTER SMALL O - ,0xABAA ,0x30AA //KATAKANA LETTER O - ,0xABAB ,0x30AB //KATAKANA LETTER KA - ,0xABAC ,0x30AC //KATAKANA LETTER GA - ,0xABAD ,0x30AD //KATAKANA LETTER KI - ,0xABAE ,0x30AE //KATAKANA LETTER GI - ,0xABAF ,0x30AF //KATAKANA LETTER KU - ,0xABB0 ,0x30B0 //KATAKANA LETTER GU - ,0xABB1 ,0x30B1 //KATAKANA LETTER KE - ,0xABB2 ,0x30B2 //KATAKANA LETTER GE - ,0xABB3 ,0x30B3 //KATAKANA LETTER KO - ,0xABB4 ,0x30B4 //KATAKANA LETTER GO - ,0xABB5 ,0x30B5 //KATAKANA LETTER SA - ,0xABB6 ,0x30B6 //KATAKANA LETTER ZA - ,0xABB7 ,0x30B7 //KATAKANA LETTER SI - ,0xABB8 ,0x30B8 //KATAKANA LETTER ZI - ,0xABB9 ,0x30B9 //KATAKANA LETTER SU - ,0xABBA ,0x30BA //KATAKANA LETTER ZU - ,0xABBB ,0x30BB //KATAKANA LETTER SE - ,0xABBC ,0x30BC //KATAKANA LETTER ZE - ,0xABBD ,0x30BD //KATAKANA LETTER SO - ,0xABBE ,0x30BE //KATAKANA LETTER ZO - ,0xABBF ,0x30BF //KATAKANA LETTER TA - ,0xABC0 ,0x30C0 //KATAKANA LETTER DA - ,0xABC1 ,0x30C1 //KATAKANA LETTER TI - ,0xABC2 ,0x30C2 //KATAKANA LETTER DI - ,0xABC3 ,0x30C3 //KATAKANA LETTER SMALL TU - ,0xABC4 ,0x30C4 //KATAKANA LETTER TU - ,0xABC5 ,0x30C5 //KATAKANA LETTER DU - ,0xABC6 ,0x30C6 //KATAKANA LETTER TE - ,0xABC7 ,0x30C7 //KATAKANA LETTER DE - ,0xABC8 ,0x30C8 //KATAKANA LETTER TO - ,0xABC9 ,0x30C9 //KATAKANA LETTER DO - ,0xABCA ,0x30CA //KATAKANA LETTER NA - ,0xABCB ,0x30CB //KATAKANA LETTER NI - ,0xABCC ,0x30CC //KATAKANA LETTER NU - ,0xABCD ,0x30CD //KATAKANA LETTER NE - ,0xABCE ,0x30CE //KATAKANA LETTER NO - ,0xABCF ,0x30CF //KATAKANA LETTER HA - ,0xABD0 ,0x30D0 //KATAKANA LETTER BA - ,0xABD1 ,0x30D1 //KATAKANA LETTER PA - ,0xABD2 ,0x30D2 //KATAKANA LETTER HI - ,0xABD3 ,0x30D3 //KATAKANA LETTER BI - ,0xABD4 ,0x30D4 //KATAKANA LETTER PI - ,0xABD5 ,0x30D5 //KATAKANA LETTER HU - ,0xABD6 ,0x30D6 //KATAKANA LETTER BU - ,0xABD7 ,0x30D7 //KATAKANA LETTER PU - ,0xABD8 ,0x30D8 //KATAKANA LETTER HE - ,0xABD9 ,0x30D9 //KATAKANA LETTER BE - ,0xABDA ,0x30DA //KATAKANA LETTER PE - ,0xABDB ,0x30DB //KATAKANA LETTER HO - ,0xABDC ,0x30DC //KATAKANA LETTER BO - ,0xABDD ,0x30DD //KATAKANA LETTER PO - ,0xABDE ,0x30DE //KATAKANA LETTER MA - ,0xABDF ,0x30DF //KATAKANA LETTER MI - ,0xABE0 ,0x30E0 //KATAKANA LETTER MU - ,0xABE1 ,0x30E1 //KATAKANA LETTER ME - ,0xABE2 ,0x30E2 //KATAKANA LETTER MO - ,0xABE3 ,0x30E3 //KATAKANA LETTER SMALL YA - ,0xABE4 ,0x30E4 //KATAKANA LETTER YA - ,0xABE5 ,0x30E5 //KATAKANA LETTER SMALL YU - ,0xABE6 ,0x30E6 //KATAKANA LETTER YU - ,0xABE7 ,0x30E7 //KATAKANA LETTER SMALL YO - ,0xABE8 ,0x30E8 //KATAKANA LETTER YO - ,0xABE9 ,0x30E9 //KATAKANA LETTER RA - ,0xABEA ,0x30EA //KATAKANA LETTER RI - ,0xABEB ,0x30EB //KATAKANA LETTER RU - ,0xABEC ,0x30EC //KATAKANA LETTER RE - ,0xABED ,0x30ED //KATAKANA LETTER RO - ,0xABEE ,0x30EE //KATAKANA LETTER SMALL WA - ,0xABEF ,0x30EF //KATAKANA LETTER WA - ,0xABF0 ,0x30F0 //KATAKANA LETTER WI - ,0xABF1 ,0x30F1 //KATAKANA LETTER WE - ,0xABF2 ,0x30F2 //KATAKANA LETTER WO - ,0xABF3 ,0x30F3 //KATAKANA LETTER N - ,0xABF4 ,0x30F4 //KATAKANA LETTER VU - ,0xABF5 ,0x30F5 //KATAKANA LETTER SMALL KA - ,0xABF6 ,0x30F6 //KATAKANA LETTER SMALL KE - ,0xAC41 ,0xCCFE //HANGUL SYLLABLE CHIEUCH YE PIEUPSIOS - ,0xAC42 ,0xCCFF //HANGUL SYLLABLE CHIEUCH YE SIOS - ,0xAC43 ,0xCD00 //HANGUL SYLLABLE CHIEUCH YE SSANGSIOS - ,0xAC44 ,0xCD02 //HANGUL SYLLABLE CHIEUCH YE CIEUC - ,0xAC45 ,0xCD03 //HANGUL SYLLABLE CHIEUCH YE CHIEUCH - ,0xAC46 ,0xCD04 //HANGUL SYLLABLE CHIEUCH YE KHIEUKH - ,0xAC47 ,0xCD05 //HANGUL SYLLABLE CHIEUCH YE THIEUTH - ,0xAC48 ,0xCD06 //HANGUL SYLLABLE CHIEUCH YE PHIEUPH - ,0xAC49 ,0xCD07 //HANGUL SYLLABLE CHIEUCH YE HIEUH - ,0xAC4A ,0xCD0A //HANGUL SYLLABLE CHIEUCH O SSANGKIYEOK - ,0xAC4B ,0xCD0B //HANGUL SYLLABLE CHIEUCH O KIYEOKSIOS - ,0xAC4C ,0xCD0D //HANGUL SYLLABLE CHIEUCH O NIEUNCIEUC - ,0xAC4D ,0xCD0E //HANGUL SYLLABLE CHIEUCH O NIEUNHIEUH - ,0xAC4E ,0xCD0F //HANGUL SYLLABLE CHIEUCH O TIKEUT - ,0xAC4F ,0xCD11 //HANGUL SYLLABLE CHIEUCH O RIEULKIYEOK - ,0xAC50 ,0xCD12 //HANGUL SYLLABLE CHIEUCH O RIEULMIEUM - ,0xAC51 ,0xCD13 //HANGUL SYLLABLE CHIEUCH O RIEULPIEUP - ,0xAC52 ,0xCD14 //HANGUL SYLLABLE CHIEUCH O RIEULSIOS - ,0xAC53 ,0xCD15 //HANGUL SYLLABLE CHIEUCH O RIEULTHIEUTH - ,0xAC54 ,0xCD16 //HANGUL SYLLABLE CHIEUCH O RIEULPHIEUPH - ,0xAC55 ,0xCD17 //HANGUL SYLLABLE CHIEUCH O RIEULHIEUH - ,0xAC56 ,0xCD1A //HANGUL SYLLABLE CHIEUCH O PIEUPSIOS - ,0xAC57 ,0xCD1C //HANGUL SYLLABLE CHIEUCH O SSANGSIOS - ,0xAC58 ,0xCD1E //HANGUL SYLLABLE CHIEUCH O CIEUC - ,0xAC59 ,0xCD1F //HANGUL SYLLABLE CHIEUCH O CHIEUCH - ,0xAC5A ,0xCD20 //HANGUL SYLLABLE CHIEUCH O KHIEUKH - ,0xAC61 ,0xCD21 //HANGUL SYLLABLE CHIEUCH O THIEUTH - ,0xAC62 ,0xCD22 //HANGUL SYLLABLE CHIEUCH O PHIEUPH - ,0xAC63 ,0xCD23 //HANGUL SYLLABLE CHIEUCH O HIEUH - ,0xAC64 ,0xCD25 //HANGUL SYLLABLE CHIEUCH WA KIYEOK - ,0xAC65 ,0xCD26 //HANGUL SYLLABLE CHIEUCH WA SSANGKIYEOK - ,0xAC66 ,0xCD27 //HANGUL SYLLABLE CHIEUCH WA KIYEOKSIOS - ,0xAC67 ,0xCD29 //HANGUL SYLLABLE CHIEUCH WA NIEUNCIEUC - ,0xAC68 ,0xCD2A //HANGUL SYLLABLE CHIEUCH WA NIEUNHIEUH - ,0xAC69 ,0xCD2B //HANGUL SYLLABLE CHIEUCH WA TIKEUT - ,0xAC6A ,0xCD2D //HANGUL SYLLABLE CHIEUCH WA RIEULKIYEOK - ,0xAC6B ,0xCD2E //HANGUL SYLLABLE CHIEUCH WA RIEULMIEUM - ,0xAC6C ,0xCD2F //HANGUL SYLLABLE CHIEUCH WA RIEULPIEUP - ,0xAC6D ,0xCD30 //HANGUL SYLLABLE CHIEUCH WA RIEULSIOS - ,0xAC6E ,0xCD31 //HANGUL SYLLABLE CHIEUCH WA RIEULTHIEUTH - ,0xAC6F ,0xCD32 //HANGUL SYLLABLE CHIEUCH WA RIEULPHIEUPH - ,0xAC70 ,0xCD33 //HANGUL SYLLABLE CHIEUCH WA RIEULHIEUH - ,0xAC71 ,0xCD34 //HANGUL SYLLABLE CHIEUCH WA MIEUM - ,0xAC72 ,0xCD35 //HANGUL SYLLABLE CHIEUCH WA PIEUP - ,0xAC73 ,0xCD36 //HANGUL SYLLABLE CHIEUCH WA PIEUPSIOS - ,0xAC74 ,0xCD37 //HANGUL SYLLABLE CHIEUCH WA SIOS - ,0xAC75 ,0xCD38 //HANGUL SYLLABLE CHIEUCH WA SSANGSIOS - ,0xAC76 ,0xCD3A //HANGUL SYLLABLE CHIEUCH WA CIEUC - ,0xAC77 ,0xCD3B //HANGUL SYLLABLE CHIEUCH WA CHIEUCH - ,0xAC78 ,0xCD3C //HANGUL SYLLABLE CHIEUCH WA KHIEUKH - ,0xAC79 ,0xCD3D //HANGUL SYLLABLE CHIEUCH WA THIEUTH - ,0xAC7A ,0xCD3E //HANGUL SYLLABLE CHIEUCH WA PHIEUPH - ,0xAC81 ,0xCD3F //HANGUL SYLLABLE CHIEUCH WA HIEUH - ,0xAC82 ,0xCD40 //HANGUL SYLLABLE CHIEUCH WAE - ,0xAC83 ,0xCD41 //HANGUL SYLLABLE CHIEUCH WAE KIYEOK - ,0xAC84 ,0xCD42 //HANGUL SYLLABLE CHIEUCH WAE SSANGKIYEOK - ,0xAC85 ,0xCD43 //HANGUL SYLLABLE CHIEUCH WAE KIYEOKSIOS - ,0xAC86 ,0xCD44 //HANGUL SYLLABLE CHIEUCH WAE NIEUN - ,0xAC87 ,0xCD45 //HANGUL SYLLABLE CHIEUCH WAE NIEUNCIEUC - ,0xAC88 ,0xCD46 //HANGUL SYLLABLE CHIEUCH WAE NIEUNHIEUH - ,0xAC89 ,0xCD47 //HANGUL SYLLABLE CHIEUCH WAE TIKEUT - ,0xAC8A ,0xCD48 //HANGUL SYLLABLE CHIEUCH WAE RIEUL - ,0xAC8B ,0xCD49 //HANGUL SYLLABLE CHIEUCH WAE RIEULKIYEOK - ,0xAC8C ,0xCD4A //HANGUL SYLLABLE CHIEUCH WAE RIEULMIEUM - ,0xAC8D ,0xCD4B //HANGUL SYLLABLE CHIEUCH WAE RIEULPIEUP - ,0xAC8E ,0xCD4C //HANGUL SYLLABLE CHIEUCH WAE RIEULSIOS - ,0xAC8F ,0xCD4D //HANGUL SYLLABLE CHIEUCH WAE RIEULTHIEUTH - ,0xAC90 ,0xCD4E //HANGUL SYLLABLE CHIEUCH WAE RIEULPHIEUPH - ,0xAC91 ,0xCD4F //HANGUL SYLLABLE CHIEUCH WAE RIEULHIEUH - ,0xAC92 ,0xCD50 //HANGUL SYLLABLE CHIEUCH WAE MIEUM - ,0xAC93 ,0xCD51 //HANGUL SYLLABLE CHIEUCH WAE PIEUP - ,0xAC94 ,0xCD52 //HANGUL SYLLABLE CHIEUCH WAE PIEUPSIOS - ,0xAC95 ,0xCD53 //HANGUL SYLLABLE CHIEUCH WAE SIOS - ,0xAC96 ,0xCD54 //HANGUL SYLLABLE CHIEUCH WAE SSANGSIOS - ,0xAC97 ,0xCD55 //HANGUL SYLLABLE CHIEUCH WAE IEUNG - ,0xAC98 ,0xCD56 //HANGUL SYLLABLE CHIEUCH WAE CIEUC - ,0xAC99 ,0xCD57 //HANGUL SYLLABLE CHIEUCH WAE CHIEUCH - ,0xAC9A ,0xCD58 //HANGUL SYLLABLE CHIEUCH WAE KHIEUKH - ,0xAC9B ,0xCD59 //HANGUL SYLLABLE CHIEUCH WAE THIEUTH - ,0xAC9C ,0xCD5A //HANGUL SYLLABLE CHIEUCH WAE PHIEUPH - ,0xAC9D ,0xCD5B //HANGUL SYLLABLE CHIEUCH WAE HIEUH - ,0xAC9E ,0xCD5D //HANGUL SYLLABLE CHIEUCH OE KIYEOK - ,0xAC9F ,0xCD5E //HANGUL SYLLABLE CHIEUCH OE SSANGKIYEOK - ,0xACA0 ,0xCD5F //HANGUL SYLLABLE CHIEUCH OE KIYEOKSIOS - ,0xACA1 ,0x0410 //CYRILLIC CAPITAL LETTER A - ,0xACA2 ,0x0411 //CYRILLIC CAPITAL LETTER BE - ,0xACA3 ,0x0412 //CYRILLIC CAPITAL LETTER VE - ,0xACA4 ,0x0413 //CYRILLIC CAPITAL LETTER GHE - ,0xACA5 ,0x0414 //CYRILLIC CAPITAL LETTER DE - ,0xACA6 ,0x0415 //CYRILLIC CAPITAL LETTER IE - ,0xACA7 ,0x0401 //CYRILLIC CAPITAL LETTER IO - ,0xACA8 ,0x0416 //CYRILLIC CAPITAL LETTER ZHE - ,0xACA9 ,0x0417 //CYRILLIC CAPITAL LETTER ZE - ,0xACAA ,0x0418 //CYRILLIC CAPITAL LETTER I - ,0xACAB ,0x0419 //CYRILLIC CAPITAL LETTER SHORT I - ,0xACAC ,0x041A //CYRILLIC CAPITAL LETTER KA - ,0xACAD ,0x041B //CYRILLIC CAPITAL LETTER EL - ,0xACAE ,0x041C //CYRILLIC CAPITAL LETTER EM - ,0xACAF ,0x041D //CYRILLIC CAPITAL LETTER EN - ,0xACB0 ,0x041E //CYRILLIC CAPITAL LETTER O - ,0xACB1 ,0x041F //CYRILLIC CAPITAL LETTER PE - ,0xACB2 ,0x0420 //CYRILLIC CAPITAL LETTER ER - ,0xACB3 ,0x0421 //CYRILLIC CAPITAL LETTER ES - ,0xACB4 ,0x0422 //CYRILLIC CAPITAL LETTER TE - ,0xACB5 ,0x0423 //CYRILLIC CAPITAL LETTER U - ,0xACB6 ,0x0424 //CYRILLIC CAPITAL LETTER EF - ,0xACB7 ,0x0425 //CYRILLIC CAPITAL LETTER HA - ,0xACB8 ,0x0426 //CYRILLIC CAPITAL LETTER TSE - ,0xACB9 ,0x0427 //CYRILLIC CAPITAL LETTER CHE - ,0xACBA ,0x0428 //CYRILLIC CAPITAL LETTER SHA - ,0xACBB ,0x0429 //CYRILLIC CAPITAL LETTER SHCHA - ,0xACBC ,0x042A //CYRILLIC CAPITAL LETTER HARD SIGN - ,0xACBD ,0x042B //CYRILLIC CAPITAL LETTER YERU - ,0xACBE ,0x042C //CYRILLIC CAPITAL LETTER SOFT SIGN - ,0xACBF ,0x042D //CYRILLIC CAPITAL LETTER E - ,0xACC0 ,0x042E //CYRILLIC CAPITAL LETTER YU - ,0xACC1 ,0x042F //CYRILLIC CAPITAL LETTER YA - ,0xACD1 ,0x0430 //CYRILLIC SMALL LETTER A - ,0xACD2 ,0x0431 //CYRILLIC SMALL LETTER BE - ,0xACD3 ,0x0432 //CYRILLIC SMALL LETTER VE - ,0xACD4 ,0x0433 //CYRILLIC SMALL LETTER GHE - ,0xACD5 ,0x0434 //CYRILLIC SMALL LETTER DE - ,0xACD6 ,0x0435 //CYRILLIC SMALL LETTER IE - ,0xACD7 ,0x0451 //CYRILLIC SMALL LETTER IO - ,0xACD8 ,0x0436 //CYRILLIC SMALL LETTER ZHE - ,0xACD9 ,0x0437 //CYRILLIC SMALL LETTER ZE - ,0xACDA ,0x0438 //CYRILLIC SMALL LETTER I - ,0xACDB ,0x0439 //CYRILLIC SMALL LETTER SHORT I - ,0xACDC ,0x043A //CYRILLIC SMALL LETTER KA - ,0xACDD ,0x043B //CYRILLIC SMALL LETTER EL - ,0xACDE ,0x043C //CYRILLIC SMALL LETTER EM - ,0xACDF ,0x043D //CYRILLIC SMALL LETTER EN - ,0xACE0 ,0x043E //CYRILLIC SMALL LETTER O - ,0xACE1 ,0x043F //CYRILLIC SMALL LETTER PE - ,0xACE2 ,0x0440 //CYRILLIC SMALL LETTER ER - ,0xACE3 ,0x0441 //CYRILLIC SMALL LETTER ES - ,0xACE4 ,0x0442 //CYRILLIC SMALL LETTER TE - ,0xACE5 ,0x0443 //CYRILLIC SMALL LETTER U - ,0xACE6 ,0x0444 //CYRILLIC SMALL LETTER EF - ,0xACE7 ,0x0445 //CYRILLIC SMALL LETTER HA - ,0xACE8 ,0x0446 //CYRILLIC SMALL LETTER TSE - ,0xACE9 ,0x0447 //CYRILLIC SMALL LETTER CHE - ,0xACEA ,0x0448 //CYRILLIC SMALL LETTER SHA - ,0xACEB ,0x0449 //CYRILLIC SMALL LETTER SHCHA - ,0xACEC ,0x044A //CYRILLIC SMALL LETTER HARD SIGN - ,0xACED ,0x044B //CYRILLIC SMALL LETTER YERU - ,0xACEE ,0x044C //CYRILLIC SMALL LETTER SOFT SIGN - ,0xACEF ,0x044D //CYRILLIC SMALL LETTER E - ,0xACF0 ,0x044E //CYRILLIC SMALL LETTER YU - ,0xACF1 ,0x044F //CYRILLIC SMALL LETTER YA - ,0xAD41 ,0xCD61 //HANGUL SYLLABLE CHIEUCH OE NIEUNCIEUC - ,0xAD42 ,0xCD62 //HANGUL SYLLABLE CHIEUCH OE NIEUNHIEUH - ,0xAD43 ,0xCD63 //HANGUL SYLLABLE CHIEUCH OE TIKEUT - ,0xAD44 ,0xCD65 //HANGUL SYLLABLE CHIEUCH OE RIEULKIYEOK - ,0xAD45 ,0xCD66 //HANGUL SYLLABLE CHIEUCH OE RIEULMIEUM - ,0xAD46 ,0xCD67 //HANGUL SYLLABLE CHIEUCH OE RIEULPIEUP - ,0xAD47 ,0xCD68 //HANGUL SYLLABLE CHIEUCH OE RIEULSIOS - ,0xAD48 ,0xCD69 //HANGUL SYLLABLE CHIEUCH OE RIEULTHIEUTH - ,0xAD49 ,0xCD6A //HANGUL SYLLABLE CHIEUCH OE RIEULPHIEUPH - ,0xAD4A ,0xCD6B //HANGUL SYLLABLE CHIEUCH OE RIEULHIEUH - ,0xAD4B ,0xCD6E //HANGUL SYLLABLE CHIEUCH OE PIEUPSIOS - ,0xAD4C ,0xCD70 //HANGUL SYLLABLE CHIEUCH OE SSANGSIOS - ,0xAD4D ,0xCD72 //HANGUL SYLLABLE CHIEUCH OE CIEUC - ,0xAD4E ,0xCD73 //HANGUL SYLLABLE CHIEUCH OE CHIEUCH - ,0xAD4F ,0xCD74 //HANGUL SYLLABLE CHIEUCH OE KHIEUKH - ,0xAD50 ,0xCD75 //HANGUL SYLLABLE CHIEUCH OE THIEUTH - ,0xAD51 ,0xCD76 //HANGUL SYLLABLE CHIEUCH OE PHIEUPH - ,0xAD52 ,0xCD77 //HANGUL SYLLABLE CHIEUCH OE HIEUH - ,0xAD53 ,0xCD79 //HANGUL SYLLABLE CHIEUCH YO KIYEOK - ,0xAD54 ,0xCD7A //HANGUL SYLLABLE CHIEUCH YO SSANGKIYEOK - ,0xAD55 ,0xCD7B //HANGUL SYLLABLE CHIEUCH YO KIYEOKSIOS - ,0xAD56 ,0xCD7C //HANGUL SYLLABLE CHIEUCH YO NIEUN - ,0xAD57 ,0xCD7D //HANGUL SYLLABLE CHIEUCH YO NIEUNCIEUC - ,0xAD58 ,0xCD7E //HANGUL SYLLABLE CHIEUCH YO NIEUNHIEUH - ,0xAD59 ,0xCD7F //HANGUL SYLLABLE CHIEUCH YO TIKEUT - ,0xAD5A ,0xCD80 //HANGUL SYLLABLE CHIEUCH YO RIEUL - ,0xAD61 ,0xCD81 //HANGUL SYLLABLE CHIEUCH YO RIEULKIYEOK - ,0xAD62 ,0xCD82 //HANGUL SYLLABLE CHIEUCH YO RIEULMIEUM - ,0xAD63 ,0xCD83 //HANGUL SYLLABLE CHIEUCH YO RIEULPIEUP - ,0xAD64 ,0xCD84 //HANGUL SYLLABLE CHIEUCH YO RIEULSIOS - ,0xAD65 ,0xCD85 //HANGUL SYLLABLE CHIEUCH YO RIEULTHIEUTH - ,0xAD66 ,0xCD86 //HANGUL SYLLABLE CHIEUCH YO RIEULPHIEUPH - ,0xAD67 ,0xCD87 //HANGUL SYLLABLE CHIEUCH YO RIEULHIEUH - ,0xAD68 ,0xCD89 //HANGUL SYLLABLE CHIEUCH YO PIEUP - ,0xAD69 ,0xCD8A //HANGUL SYLLABLE CHIEUCH YO PIEUPSIOS - ,0xAD6A ,0xCD8B //HANGUL SYLLABLE CHIEUCH YO SIOS - ,0xAD6B ,0xCD8C //HANGUL SYLLABLE CHIEUCH YO SSANGSIOS - ,0xAD6C ,0xCD8D //HANGUL SYLLABLE CHIEUCH YO IEUNG - ,0xAD6D ,0xCD8E //HANGUL SYLLABLE CHIEUCH YO CIEUC - ,0xAD6E ,0xCD8F //HANGUL SYLLABLE CHIEUCH YO CHIEUCH - ,0xAD6F ,0xCD90 //HANGUL SYLLABLE CHIEUCH YO KHIEUKH - ,0xAD70 ,0xCD91 //HANGUL SYLLABLE CHIEUCH YO THIEUTH - ,0xAD71 ,0xCD92 //HANGUL SYLLABLE CHIEUCH YO PHIEUPH - ,0xAD72 ,0xCD93 //HANGUL SYLLABLE CHIEUCH YO HIEUH - ,0xAD73 ,0xCD96 //HANGUL SYLLABLE CHIEUCH U SSANGKIYEOK - ,0xAD74 ,0xCD97 //HANGUL SYLLABLE CHIEUCH U KIYEOKSIOS - ,0xAD75 ,0xCD99 //HANGUL SYLLABLE CHIEUCH U NIEUNCIEUC - ,0xAD76 ,0xCD9A //HANGUL SYLLABLE CHIEUCH U NIEUNHIEUH - ,0xAD77 ,0xCD9B //HANGUL SYLLABLE CHIEUCH U TIKEUT - ,0xAD78 ,0xCD9D //HANGUL SYLLABLE CHIEUCH U RIEULKIYEOK - ,0xAD79 ,0xCD9E //HANGUL SYLLABLE CHIEUCH U RIEULMIEUM - ,0xAD7A ,0xCD9F //HANGUL SYLLABLE CHIEUCH U RIEULPIEUP - ,0xAD81 ,0xCDA0 //HANGUL SYLLABLE CHIEUCH U RIEULSIOS - ,0xAD82 ,0xCDA1 //HANGUL SYLLABLE CHIEUCH U RIEULTHIEUTH - ,0xAD83 ,0xCDA2 //HANGUL SYLLABLE CHIEUCH U RIEULPHIEUPH - ,0xAD84 ,0xCDA3 //HANGUL SYLLABLE CHIEUCH U RIEULHIEUH - ,0xAD85 ,0xCDA6 //HANGUL SYLLABLE CHIEUCH U PIEUPSIOS - ,0xAD86 ,0xCDA8 //HANGUL SYLLABLE CHIEUCH U SSANGSIOS - ,0xAD87 ,0xCDAA //HANGUL SYLLABLE CHIEUCH U CIEUC - ,0xAD88 ,0xCDAB //HANGUL SYLLABLE CHIEUCH U CHIEUCH - ,0xAD89 ,0xCDAC //HANGUL SYLLABLE CHIEUCH U KHIEUKH - ,0xAD8A ,0xCDAD //HANGUL SYLLABLE CHIEUCH U THIEUTH - ,0xAD8B ,0xCDAE //HANGUL SYLLABLE CHIEUCH U PHIEUPH - ,0xAD8C ,0xCDAF //HANGUL SYLLABLE CHIEUCH U HIEUH - ,0xAD8D ,0xCDB1 //HANGUL SYLLABLE CHIEUCH WEO KIYEOK - ,0xAD8E ,0xCDB2 //HANGUL SYLLABLE CHIEUCH WEO SSANGKIYEOK - ,0xAD8F ,0xCDB3 //HANGUL SYLLABLE CHIEUCH WEO KIYEOKSIOS - ,0xAD90 ,0xCDB4 //HANGUL SYLLABLE CHIEUCH WEO NIEUN - ,0xAD91 ,0xCDB5 //HANGUL SYLLABLE CHIEUCH WEO NIEUNCIEUC - ,0xAD92 ,0xCDB6 //HANGUL SYLLABLE CHIEUCH WEO NIEUNHIEUH - ,0xAD93 ,0xCDB7 //HANGUL SYLLABLE CHIEUCH WEO TIKEUT - ,0xAD94 ,0xCDB8 //HANGUL SYLLABLE CHIEUCH WEO RIEUL - ,0xAD95 ,0xCDB9 //HANGUL SYLLABLE CHIEUCH WEO RIEULKIYEOK - ,0xAD96 ,0xCDBA //HANGUL SYLLABLE CHIEUCH WEO RIEULMIEUM - ,0xAD97 ,0xCDBB //HANGUL SYLLABLE CHIEUCH WEO RIEULPIEUP - ,0xAD98 ,0xCDBC //HANGUL SYLLABLE CHIEUCH WEO RIEULSIOS - ,0xAD99 ,0xCDBD //HANGUL SYLLABLE CHIEUCH WEO RIEULTHIEUTH - ,0xAD9A ,0xCDBE //HANGUL SYLLABLE CHIEUCH WEO RIEULPHIEUPH - ,0xAD9B ,0xCDBF //HANGUL SYLLABLE CHIEUCH WEO RIEULHIEUH - ,0xAD9C ,0xCDC0 //HANGUL SYLLABLE CHIEUCH WEO MIEUM - ,0xAD9D ,0xCDC1 //HANGUL SYLLABLE CHIEUCH WEO PIEUP - ,0xAD9E ,0xCDC2 //HANGUL SYLLABLE CHIEUCH WEO PIEUPSIOS - ,0xAD9F ,0xCDC3 //HANGUL SYLLABLE CHIEUCH WEO SIOS - ,0xADA0 ,0xCDC5 //HANGUL SYLLABLE CHIEUCH WEO IEUNG - ,0xAE41 ,0xCDC6 //HANGUL SYLLABLE CHIEUCH WEO CIEUC - ,0xAE42 ,0xCDC7 //HANGUL SYLLABLE CHIEUCH WEO CHIEUCH - ,0xAE43 ,0xCDC8 //HANGUL SYLLABLE CHIEUCH WEO KHIEUKH - ,0xAE44 ,0xCDC9 //HANGUL SYLLABLE CHIEUCH WEO THIEUTH - ,0xAE45 ,0xCDCA //HANGUL SYLLABLE CHIEUCH WEO PHIEUPH - ,0xAE46 ,0xCDCB //HANGUL SYLLABLE CHIEUCH WEO HIEUH - ,0xAE47 ,0xCDCD //HANGUL SYLLABLE CHIEUCH WE KIYEOK - ,0xAE48 ,0xCDCE //HANGUL SYLLABLE CHIEUCH WE SSANGKIYEOK - ,0xAE49 ,0xCDCF //HANGUL SYLLABLE CHIEUCH WE KIYEOKSIOS - ,0xAE4A ,0xCDD1 //HANGUL SYLLABLE CHIEUCH WE NIEUNCIEUC - ,0xAE4B ,0xCDD2 //HANGUL SYLLABLE CHIEUCH WE NIEUNHIEUH - ,0xAE4C ,0xCDD3 //HANGUL SYLLABLE CHIEUCH WE TIKEUT - ,0xAE4D ,0xCDD4 //HANGUL SYLLABLE CHIEUCH WE RIEUL - ,0xAE4E ,0xCDD5 //HANGUL SYLLABLE CHIEUCH WE RIEULKIYEOK - ,0xAE4F ,0xCDD6 //HANGUL SYLLABLE CHIEUCH WE RIEULMIEUM - ,0xAE50 ,0xCDD7 //HANGUL SYLLABLE CHIEUCH WE RIEULPIEUP - ,0xAE51 ,0xCDD8 //HANGUL SYLLABLE CHIEUCH WE RIEULSIOS - ,0xAE52 ,0xCDD9 //HANGUL SYLLABLE CHIEUCH WE RIEULTHIEUTH - ,0xAE53 ,0xCDDA //HANGUL SYLLABLE CHIEUCH WE RIEULPHIEUPH - ,0xAE54 ,0xCDDB //HANGUL SYLLABLE CHIEUCH WE RIEULHIEUH - ,0xAE55 ,0xCDDC //HANGUL SYLLABLE CHIEUCH WE MIEUM - ,0xAE56 ,0xCDDD //HANGUL SYLLABLE CHIEUCH WE PIEUP - ,0xAE57 ,0xCDDE //HANGUL SYLLABLE CHIEUCH WE PIEUPSIOS - ,0xAE58 ,0xCDDF //HANGUL SYLLABLE CHIEUCH WE SIOS - ,0xAE59 ,0xCDE0 //HANGUL SYLLABLE CHIEUCH WE SSANGSIOS - ,0xAE5A ,0xCDE1 //HANGUL SYLLABLE CHIEUCH WE IEUNG - ,0xAE61 ,0xCDE2 //HANGUL SYLLABLE CHIEUCH WE CIEUC - ,0xAE62 ,0xCDE3 //HANGUL SYLLABLE CHIEUCH WE CHIEUCH - ,0xAE63 ,0xCDE4 //HANGUL SYLLABLE CHIEUCH WE KHIEUKH - ,0xAE64 ,0xCDE5 //HANGUL SYLLABLE CHIEUCH WE THIEUTH - ,0xAE65 ,0xCDE6 //HANGUL SYLLABLE CHIEUCH WE PHIEUPH - ,0xAE66 ,0xCDE7 //HANGUL SYLLABLE CHIEUCH WE HIEUH - ,0xAE67 ,0xCDE9 //HANGUL SYLLABLE CHIEUCH WI KIYEOK - ,0xAE68 ,0xCDEA //HANGUL SYLLABLE CHIEUCH WI SSANGKIYEOK - ,0xAE69 ,0xCDEB //HANGUL SYLLABLE CHIEUCH WI KIYEOKSIOS - ,0xAE6A ,0xCDED //HANGUL SYLLABLE CHIEUCH WI NIEUNCIEUC - ,0xAE6B ,0xCDEE //HANGUL SYLLABLE CHIEUCH WI NIEUNHIEUH - ,0xAE6C ,0xCDEF //HANGUL SYLLABLE CHIEUCH WI TIKEUT - ,0xAE6D ,0xCDF1 //HANGUL SYLLABLE CHIEUCH WI RIEULKIYEOK - ,0xAE6E ,0xCDF2 //HANGUL SYLLABLE CHIEUCH WI RIEULMIEUM - ,0xAE6F ,0xCDF3 //HANGUL SYLLABLE CHIEUCH WI RIEULPIEUP - ,0xAE70 ,0xCDF4 //HANGUL SYLLABLE CHIEUCH WI RIEULSIOS - ,0xAE71 ,0xCDF5 //HANGUL SYLLABLE CHIEUCH WI RIEULTHIEUTH - ,0xAE72 ,0xCDF6 //HANGUL SYLLABLE CHIEUCH WI RIEULPHIEUPH - ,0xAE73 ,0xCDF7 //HANGUL SYLLABLE CHIEUCH WI RIEULHIEUH - ,0xAE74 ,0xCDFA //HANGUL SYLLABLE CHIEUCH WI PIEUPSIOS - ,0xAE75 ,0xCDFC //HANGUL SYLLABLE CHIEUCH WI SSANGSIOS - ,0xAE76 ,0xCDFE //HANGUL SYLLABLE CHIEUCH WI CIEUC - ,0xAE77 ,0xCDFF //HANGUL SYLLABLE CHIEUCH WI CHIEUCH - ,0xAE78 ,0xCE00 //HANGUL SYLLABLE CHIEUCH WI KHIEUKH - ,0xAE79 ,0xCE01 //HANGUL SYLLABLE CHIEUCH WI THIEUTH - ,0xAE7A ,0xCE02 //HANGUL SYLLABLE CHIEUCH WI PHIEUPH - ,0xAE81 ,0xCE03 //HANGUL SYLLABLE CHIEUCH WI HIEUH - ,0xAE82 ,0xCE05 //HANGUL SYLLABLE CHIEUCH YU KIYEOK - ,0xAE83 ,0xCE06 //HANGUL SYLLABLE CHIEUCH YU SSANGKIYEOK - ,0xAE84 ,0xCE07 //HANGUL SYLLABLE CHIEUCH YU KIYEOKSIOS - ,0xAE85 ,0xCE09 //HANGUL SYLLABLE CHIEUCH YU NIEUNCIEUC - ,0xAE86 ,0xCE0A //HANGUL SYLLABLE CHIEUCH YU NIEUNHIEUH - ,0xAE87 ,0xCE0B //HANGUL SYLLABLE CHIEUCH YU TIKEUT - ,0xAE88 ,0xCE0D //HANGUL SYLLABLE CHIEUCH YU RIEULKIYEOK - ,0xAE89 ,0xCE0E //HANGUL SYLLABLE CHIEUCH YU RIEULMIEUM - ,0xAE8A ,0xCE0F //HANGUL SYLLABLE CHIEUCH YU RIEULPIEUP - ,0xAE8B ,0xCE10 //HANGUL SYLLABLE CHIEUCH YU RIEULSIOS - ,0xAE8C ,0xCE11 //HANGUL SYLLABLE CHIEUCH YU RIEULTHIEUTH - ,0xAE8D ,0xCE12 //HANGUL SYLLABLE CHIEUCH YU RIEULPHIEUPH - ,0xAE8E ,0xCE13 //HANGUL SYLLABLE CHIEUCH YU RIEULHIEUH - ,0xAE8F ,0xCE15 //HANGUL SYLLABLE CHIEUCH YU PIEUP - ,0xAE90 ,0xCE16 //HANGUL SYLLABLE CHIEUCH YU PIEUPSIOS - ,0xAE91 ,0xCE17 //HANGUL SYLLABLE CHIEUCH YU SIOS - ,0xAE92 ,0xCE18 //HANGUL SYLLABLE CHIEUCH YU SSANGSIOS - ,0xAE93 ,0xCE1A //HANGUL SYLLABLE CHIEUCH YU CIEUC - ,0xAE94 ,0xCE1B //HANGUL SYLLABLE CHIEUCH YU CHIEUCH - ,0xAE95 ,0xCE1C //HANGUL SYLLABLE CHIEUCH YU KHIEUKH - ,0xAE96 ,0xCE1D //HANGUL SYLLABLE CHIEUCH YU THIEUTH - ,0xAE97 ,0xCE1E //HANGUL SYLLABLE CHIEUCH YU PHIEUPH - ,0xAE98 ,0xCE1F //HANGUL SYLLABLE CHIEUCH YU HIEUH - ,0xAE99 ,0xCE22 //HANGUL SYLLABLE CHIEUCH EU SSANGKIYEOK - ,0xAE9A ,0xCE23 //HANGUL SYLLABLE CHIEUCH EU KIYEOKSIOS - ,0xAE9B ,0xCE25 //HANGUL SYLLABLE CHIEUCH EU NIEUNCIEUC - ,0xAE9C ,0xCE26 //HANGUL SYLLABLE CHIEUCH EU NIEUNHIEUH - ,0xAE9D ,0xCE27 //HANGUL SYLLABLE CHIEUCH EU TIKEUT - ,0xAE9E ,0xCE29 //HANGUL SYLLABLE CHIEUCH EU RIEULKIYEOK - ,0xAE9F ,0xCE2A //HANGUL SYLLABLE CHIEUCH EU RIEULMIEUM - ,0xAEA0 ,0xCE2B //HANGUL SYLLABLE CHIEUCH EU RIEULPIEUP - ,0xAF41 ,0xCE2C //HANGUL SYLLABLE CHIEUCH EU RIEULSIOS - ,0xAF42 ,0xCE2D //HANGUL SYLLABLE CHIEUCH EU RIEULTHIEUTH - ,0xAF43 ,0xCE2E //HANGUL SYLLABLE CHIEUCH EU RIEULPHIEUPH - ,0xAF44 ,0xCE2F //HANGUL SYLLABLE CHIEUCH EU RIEULHIEUH - ,0xAF45 ,0xCE32 //HANGUL SYLLABLE CHIEUCH EU PIEUPSIOS - ,0xAF46 ,0xCE34 //HANGUL SYLLABLE CHIEUCH EU SSANGSIOS - ,0xAF47 ,0xCE36 //HANGUL SYLLABLE CHIEUCH EU CIEUC - ,0xAF48 ,0xCE37 //HANGUL SYLLABLE CHIEUCH EU CHIEUCH - ,0xAF49 ,0xCE38 //HANGUL SYLLABLE CHIEUCH EU KHIEUKH - ,0xAF4A ,0xCE39 //HANGUL SYLLABLE CHIEUCH EU THIEUTH - ,0xAF4B ,0xCE3A //HANGUL SYLLABLE CHIEUCH EU PHIEUPH - ,0xAF4C ,0xCE3B //HANGUL SYLLABLE CHIEUCH EU HIEUH - ,0xAF4D ,0xCE3C //HANGUL SYLLABLE CHIEUCH YI - ,0xAF4E ,0xCE3D //HANGUL SYLLABLE CHIEUCH YI KIYEOK - ,0xAF4F ,0xCE3E //HANGUL SYLLABLE CHIEUCH YI SSANGKIYEOK - ,0xAF50 ,0xCE3F //HANGUL SYLLABLE CHIEUCH YI KIYEOKSIOS - ,0xAF51 ,0xCE40 //HANGUL SYLLABLE CHIEUCH YI NIEUN - ,0xAF52 ,0xCE41 //HANGUL SYLLABLE CHIEUCH YI NIEUNCIEUC - ,0xAF53 ,0xCE42 //HANGUL SYLLABLE CHIEUCH YI NIEUNHIEUH - ,0xAF54 ,0xCE43 //HANGUL SYLLABLE CHIEUCH YI TIKEUT - ,0xAF55 ,0xCE44 //HANGUL SYLLABLE CHIEUCH YI RIEUL - ,0xAF56 ,0xCE45 //HANGUL SYLLABLE CHIEUCH YI RIEULKIYEOK - ,0xAF57 ,0xCE46 //HANGUL SYLLABLE CHIEUCH YI RIEULMIEUM - ,0xAF58 ,0xCE47 //HANGUL SYLLABLE CHIEUCH YI RIEULPIEUP - ,0xAF59 ,0xCE48 //HANGUL SYLLABLE CHIEUCH YI RIEULSIOS - ,0xAF5A ,0xCE49 //HANGUL SYLLABLE CHIEUCH YI RIEULTHIEUTH - ,0xAF61 ,0xCE4A //HANGUL SYLLABLE CHIEUCH YI RIEULPHIEUPH - ,0xAF62 ,0xCE4B //HANGUL SYLLABLE CHIEUCH YI RIEULHIEUH - ,0xAF63 ,0xCE4C //HANGUL SYLLABLE CHIEUCH YI MIEUM - ,0xAF64 ,0xCE4D //HANGUL SYLLABLE CHIEUCH YI PIEUP - ,0xAF65 ,0xCE4E //HANGUL SYLLABLE CHIEUCH YI PIEUPSIOS - ,0xAF66 ,0xCE4F //HANGUL SYLLABLE CHIEUCH YI SIOS - ,0xAF67 ,0xCE50 //HANGUL SYLLABLE CHIEUCH YI SSANGSIOS - ,0xAF68 ,0xCE51 //HANGUL SYLLABLE CHIEUCH YI IEUNG - ,0xAF69 ,0xCE52 //HANGUL SYLLABLE CHIEUCH YI CIEUC - ,0xAF6A ,0xCE53 //HANGUL SYLLABLE CHIEUCH YI CHIEUCH - ,0xAF6B ,0xCE54 //HANGUL SYLLABLE CHIEUCH YI KHIEUKH - ,0xAF6C ,0xCE55 //HANGUL SYLLABLE CHIEUCH YI THIEUTH - ,0xAF6D ,0xCE56 //HANGUL SYLLABLE CHIEUCH YI PHIEUPH - ,0xAF6E ,0xCE57 //HANGUL SYLLABLE CHIEUCH YI HIEUH - ,0xAF6F ,0xCE5A //HANGUL SYLLABLE CHIEUCH I SSANGKIYEOK - ,0xAF70 ,0xCE5B //HANGUL SYLLABLE CHIEUCH I KIYEOKSIOS - ,0xAF71 ,0xCE5D //HANGUL SYLLABLE CHIEUCH I NIEUNCIEUC - ,0xAF72 ,0xCE5E //HANGUL SYLLABLE CHIEUCH I NIEUNHIEUH - ,0xAF73 ,0xCE62 //HANGUL SYLLABLE CHIEUCH I RIEULMIEUM - ,0xAF74 ,0xCE63 //HANGUL SYLLABLE CHIEUCH I RIEULPIEUP - ,0xAF75 ,0xCE64 //HANGUL SYLLABLE CHIEUCH I RIEULSIOS - ,0xAF76 ,0xCE65 //HANGUL SYLLABLE CHIEUCH I RIEULTHIEUTH - ,0xAF77 ,0xCE66 //HANGUL SYLLABLE CHIEUCH I RIEULPHIEUPH - ,0xAF78 ,0xCE67 //HANGUL SYLLABLE CHIEUCH I RIEULHIEUH - ,0xAF79 ,0xCE6A //HANGUL SYLLABLE CHIEUCH I PIEUPSIOS - ,0xAF7A ,0xCE6C //HANGUL SYLLABLE CHIEUCH I SSANGSIOS - ,0xAF81 ,0xCE6E //HANGUL SYLLABLE CHIEUCH I CIEUC - ,0xAF82 ,0xCE6F //HANGUL SYLLABLE CHIEUCH I CHIEUCH - ,0xAF83 ,0xCE70 //HANGUL SYLLABLE CHIEUCH I KHIEUKH - ,0xAF84 ,0xCE71 //HANGUL SYLLABLE CHIEUCH I THIEUTH - ,0xAF85 ,0xCE72 //HANGUL SYLLABLE CHIEUCH I PHIEUPH - ,0xAF86 ,0xCE73 //HANGUL SYLLABLE CHIEUCH I HIEUH - ,0xAF87 ,0xCE76 //HANGUL SYLLABLE KHIEUKH A SSANGKIYEOK - ,0xAF88 ,0xCE77 //HANGUL SYLLABLE KHIEUKH A KIYEOKSIOS - ,0xAF89 ,0xCE79 //HANGUL SYLLABLE KHIEUKH A NIEUNCIEUC - ,0xAF8A ,0xCE7A //HANGUL SYLLABLE KHIEUKH A NIEUNHIEUH - ,0xAF8B ,0xCE7B //HANGUL SYLLABLE KHIEUKH A TIKEUT - ,0xAF8C ,0xCE7D //HANGUL SYLLABLE KHIEUKH A RIEULKIYEOK - ,0xAF8D ,0xCE7E //HANGUL SYLLABLE KHIEUKH A RIEULMIEUM - ,0xAF8E ,0xCE7F //HANGUL SYLLABLE KHIEUKH A RIEULPIEUP - ,0xAF8F ,0xCE80 //HANGUL SYLLABLE KHIEUKH A RIEULSIOS - ,0xAF90 ,0xCE81 //HANGUL SYLLABLE KHIEUKH A RIEULTHIEUTH - ,0xAF91 ,0xCE82 //HANGUL SYLLABLE KHIEUKH A RIEULPHIEUPH - ,0xAF92 ,0xCE83 //HANGUL SYLLABLE KHIEUKH A RIEULHIEUH - ,0xAF93 ,0xCE86 //HANGUL SYLLABLE KHIEUKH A PIEUPSIOS - ,0xAF94 ,0xCE88 //HANGUL SYLLABLE KHIEUKH A SSANGSIOS - ,0xAF95 ,0xCE8A //HANGUL SYLLABLE KHIEUKH A CIEUC - ,0xAF96 ,0xCE8B //HANGUL SYLLABLE KHIEUKH A CHIEUCH - ,0xAF97 ,0xCE8C //HANGUL SYLLABLE KHIEUKH A KHIEUKH - ,0xAF98 ,0xCE8D //HANGUL SYLLABLE KHIEUKH A THIEUTH - ,0xAF99 ,0xCE8E //HANGUL SYLLABLE KHIEUKH A PHIEUPH - ,0xAF9A ,0xCE8F //HANGUL SYLLABLE KHIEUKH A HIEUH - ,0xAF9B ,0xCE92 //HANGUL SYLLABLE KHIEUKH AE SSANGKIYEOK - ,0xAF9C ,0xCE93 //HANGUL SYLLABLE KHIEUKH AE KIYEOKSIOS - ,0xAF9D ,0xCE95 //HANGUL SYLLABLE KHIEUKH AE NIEUNCIEUC - ,0xAF9E ,0xCE96 //HANGUL SYLLABLE KHIEUKH AE NIEUNHIEUH - ,0xAF9F ,0xCE97 //HANGUL SYLLABLE KHIEUKH AE TIKEUT - ,0xAFA0 ,0xCE99 //HANGUL SYLLABLE KHIEUKH AE RIEULKIYEOK - ,0xB041 ,0xCE9A //HANGUL SYLLABLE KHIEUKH AE RIEULMIEUM - ,0xB042 ,0xCE9B //HANGUL SYLLABLE KHIEUKH AE RIEULPIEUP - ,0xB043 ,0xCE9C //HANGUL SYLLABLE KHIEUKH AE RIEULSIOS - ,0xB044 ,0xCE9D //HANGUL SYLLABLE KHIEUKH AE RIEULTHIEUTH - ,0xB045 ,0xCE9E //HANGUL SYLLABLE KHIEUKH AE RIEULPHIEUPH - ,0xB046 ,0xCE9F //HANGUL SYLLABLE KHIEUKH AE RIEULHIEUH - ,0xB047 ,0xCEA2 //HANGUL SYLLABLE KHIEUKH AE PIEUPSIOS - ,0xB048 ,0xCEA6 //HANGUL SYLLABLE KHIEUKH AE CIEUC - ,0xB049 ,0xCEA7 //HANGUL SYLLABLE KHIEUKH AE CHIEUCH - ,0xB04A ,0xCEA8 //HANGUL SYLLABLE KHIEUKH AE KHIEUKH - ,0xB04B ,0xCEA9 //HANGUL SYLLABLE KHIEUKH AE THIEUTH - ,0xB04C ,0xCEAA //HANGUL SYLLABLE KHIEUKH AE PHIEUPH - ,0xB04D ,0xCEAB //HANGUL SYLLABLE KHIEUKH AE HIEUH - ,0xB04E ,0xCEAE //HANGUL SYLLABLE KHIEUKH YA SSANGKIYEOK - ,0xB04F ,0xCEAF //HANGUL SYLLABLE KHIEUKH YA KIYEOKSIOS - ,0xB050 ,0xCEB0 //HANGUL SYLLABLE KHIEUKH YA NIEUN - ,0xB051 ,0xCEB1 //HANGUL SYLLABLE KHIEUKH YA NIEUNCIEUC - ,0xB052 ,0xCEB2 //HANGUL SYLLABLE KHIEUKH YA NIEUNHIEUH - ,0xB053 ,0xCEB3 //HANGUL SYLLABLE KHIEUKH YA TIKEUT - ,0xB054 ,0xCEB4 //HANGUL SYLLABLE KHIEUKH YA RIEUL - ,0xB055 ,0xCEB5 //HANGUL SYLLABLE KHIEUKH YA RIEULKIYEOK - ,0xB056 ,0xCEB6 //HANGUL SYLLABLE KHIEUKH YA RIEULMIEUM - ,0xB057 ,0xCEB7 //HANGUL SYLLABLE KHIEUKH YA RIEULPIEUP - ,0xB058 ,0xCEB8 //HANGUL SYLLABLE KHIEUKH YA RIEULSIOS - ,0xB059 ,0xCEB9 //HANGUL SYLLABLE KHIEUKH YA RIEULTHIEUTH - ,0xB05A ,0xCEBA //HANGUL SYLLABLE KHIEUKH YA RIEULPHIEUPH - ,0xB061 ,0xCEBB //HANGUL SYLLABLE KHIEUKH YA RIEULHIEUH - ,0xB062 ,0xCEBC //HANGUL SYLLABLE KHIEUKH YA MIEUM - ,0xB063 ,0xCEBD //HANGUL SYLLABLE KHIEUKH YA PIEUP - ,0xB064 ,0xCEBE //HANGUL SYLLABLE KHIEUKH YA PIEUPSIOS - ,0xB065 ,0xCEBF //HANGUL SYLLABLE KHIEUKH YA SIOS - ,0xB066 ,0xCEC0 //HANGUL SYLLABLE KHIEUKH YA SSANGSIOS - ,0xB067 ,0xCEC2 //HANGUL SYLLABLE KHIEUKH YA CIEUC - ,0xB068 ,0xCEC3 //HANGUL SYLLABLE KHIEUKH YA CHIEUCH - ,0xB069 ,0xCEC4 //HANGUL SYLLABLE KHIEUKH YA KHIEUKH - ,0xB06A ,0xCEC5 //HANGUL SYLLABLE KHIEUKH YA THIEUTH - ,0xB06B ,0xCEC6 //HANGUL SYLLABLE KHIEUKH YA PHIEUPH - ,0xB06C ,0xCEC7 //HANGUL SYLLABLE KHIEUKH YA HIEUH - ,0xB06D ,0xCEC8 //HANGUL SYLLABLE KHIEUKH YAE - ,0xB06E ,0xCEC9 //HANGUL SYLLABLE KHIEUKH YAE KIYEOK - ,0xB06F ,0xCECA //HANGUL SYLLABLE KHIEUKH YAE SSANGKIYEOK - ,0xB070 ,0xCECB //HANGUL SYLLABLE KHIEUKH YAE KIYEOKSIOS - ,0xB071 ,0xCECC //HANGUL SYLLABLE KHIEUKH YAE NIEUN - ,0xB072 ,0xCECD //HANGUL SYLLABLE KHIEUKH YAE NIEUNCIEUC - ,0xB073 ,0xCECE //HANGUL SYLLABLE KHIEUKH YAE NIEUNHIEUH - ,0xB074 ,0xCECF //HANGUL SYLLABLE KHIEUKH YAE TIKEUT - ,0xB075 ,0xCED0 //HANGUL SYLLABLE KHIEUKH YAE RIEUL - ,0xB076 ,0xCED1 //HANGUL SYLLABLE KHIEUKH YAE RIEULKIYEOK - ,0xB077 ,0xCED2 //HANGUL SYLLABLE KHIEUKH YAE RIEULMIEUM - ,0xB078 ,0xCED3 //HANGUL SYLLABLE KHIEUKH YAE RIEULPIEUP - ,0xB079 ,0xCED4 //HANGUL SYLLABLE KHIEUKH YAE RIEULSIOS - ,0xB07A ,0xCED5 //HANGUL SYLLABLE KHIEUKH YAE RIEULTHIEUTH - ,0xB081 ,0xCED6 //HANGUL SYLLABLE KHIEUKH YAE RIEULPHIEUPH - ,0xB082 ,0xCED7 //HANGUL SYLLABLE KHIEUKH YAE RIEULHIEUH - ,0xB083 ,0xCED8 //HANGUL SYLLABLE KHIEUKH YAE MIEUM - ,0xB084 ,0xCED9 //HANGUL SYLLABLE KHIEUKH YAE PIEUP - ,0xB085 ,0xCEDA //HANGUL SYLLABLE KHIEUKH YAE PIEUPSIOS - ,0xB086 ,0xCEDB //HANGUL SYLLABLE KHIEUKH YAE SIOS - ,0xB087 ,0xCEDC //HANGUL SYLLABLE KHIEUKH YAE SSANGSIOS - ,0xB088 ,0xCEDD //HANGUL SYLLABLE KHIEUKH YAE IEUNG - ,0xB089 ,0xCEDE //HANGUL SYLLABLE KHIEUKH YAE CIEUC - ,0xB08A ,0xCEDF //HANGUL SYLLABLE KHIEUKH YAE CHIEUCH - ,0xB08B ,0xCEE0 //HANGUL SYLLABLE KHIEUKH YAE KHIEUKH - ,0xB08C ,0xCEE1 //HANGUL SYLLABLE KHIEUKH YAE THIEUTH - ,0xB08D ,0xCEE2 //HANGUL SYLLABLE KHIEUKH YAE PHIEUPH - ,0xB08E ,0xCEE3 //HANGUL SYLLABLE KHIEUKH YAE HIEUH - ,0xB08F ,0xCEE6 //HANGUL SYLLABLE KHIEUKH EO SSANGKIYEOK - ,0xB090 ,0xCEE7 //HANGUL SYLLABLE KHIEUKH EO KIYEOKSIOS - ,0xB091 ,0xCEE9 //HANGUL SYLLABLE KHIEUKH EO NIEUNCIEUC - ,0xB092 ,0xCEEA //HANGUL SYLLABLE KHIEUKH EO NIEUNHIEUH - ,0xB093 ,0xCEED //HANGUL SYLLABLE KHIEUKH EO RIEULKIYEOK - ,0xB094 ,0xCEEE //HANGUL SYLLABLE KHIEUKH EO RIEULMIEUM - ,0xB095 ,0xCEEF //HANGUL SYLLABLE KHIEUKH EO RIEULPIEUP - ,0xB096 ,0xCEF0 //HANGUL SYLLABLE KHIEUKH EO RIEULSIOS - ,0xB097 ,0xCEF1 //HANGUL SYLLABLE KHIEUKH EO RIEULTHIEUTH - ,0xB098 ,0xCEF2 //HANGUL SYLLABLE KHIEUKH EO RIEULPHIEUPH - ,0xB099 ,0xCEF3 //HANGUL SYLLABLE KHIEUKH EO RIEULHIEUH - ,0xB09A ,0xCEF6 //HANGUL SYLLABLE KHIEUKH EO PIEUPSIOS - ,0xB09B ,0xCEFA //HANGUL SYLLABLE KHIEUKH EO CIEUC - ,0xB09C ,0xCEFB //HANGUL SYLLABLE KHIEUKH EO CHIEUCH - ,0xB09D ,0xCEFC //HANGUL SYLLABLE KHIEUKH EO KHIEUKH - ,0xB09E ,0xCEFD //HANGUL SYLLABLE KHIEUKH EO THIEUTH - ,0xB09F ,0xCEFE //HANGUL SYLLABLE KHIEUKH EO PHIEUPH - ,0xB0A0 ,0xCEFF //HANGUL SYLLABLE KHIEUKH EO HIEUH - ,0xB0A1 ,0xAC00 //HANGUL SYLLABLE KIYEOK A - ,0xB0A2 ,0xAC01 //HANGUL SYLLABLE KIYEOK A KIYEOK - ,0xB0A3 ,0xAC04 //HANGUL SYLLABLE KIYEOK A NIEUN - ,0xB0A4 ,0xAC07 //HANGUL SYLLABLE KIYEOK A TIKEUT - ,0xB0A5 ,0xAC08 //HANGUL SYLLABLE KIYEOK A RIEUL - ,0xB0A6 ,0xAC09 //HANGUL SYLLABLE KIYEOK A RIEULKIYEOK - ,0xB0A7 ,0xAC0A //HANGUL SYLLABLE KIYEOK A RIEULMIEUM - ,0xB0A8 ,0xAC10 //HANGUL SYLLABLE KIYEOK A MIEUM - ,0xB0A9 ,0xAC11 //HANGUL SYLLABLE KIYEOK A PIEUP - ,0xB0AA ,0xAC12 //HANGUL SYLLABLE KIYEOK A PIEUPSIOS - ,0xB0AB ,0xAC13 //HANGUL SYLLABLE KIYEOK A SIOS - ,0xB0AC ,0xAC14 //HANGUL SYLLABLE KIYEOK A SSANGSIOS - ,0xB0AD ,0xAC15 //HANGUL SYLLABLE KIYEOK A IEUNG - ,0xB0AE ,0xAC16 //HANGUL SYLLABLE KIYEOK A CIEUC - ,0xB0AF ,0xAC17 //HANGUL SYLLABLE KIYEOK A CHIEUCH - ,0xB0B0 ,0xAC19 //HANGUL SYLLABLE KIYEOK A THIEUTH - ,0xB0B1 ,0xAC1A //HANGUL SYLLABLE KIYEOK A PHIEUPH - ,0xB0B2 ,0xAC1B //HANGUL SYLLABLE KIYEOK A HIEUH - ,0xB0B3 ,0xAC1C //HANGUL SYLLABLE KIYEOK AE - ,0xB0B4 ,0xAC1D //HANGUL SYLLABLE KIYEOK AE KIYEOK - ,0xB0B5 ,0xAC20 //HANGUL SYLLABLE KIYEOK AE NIEUN - ,0xB0B6 ,0xAC24 //HANGUL SYLLABLE KIYEOK AE RIEUL - ,0xB0B7 ,0xAC2C //HANGUL SYLLABLE KIYEOK AE MIEUM - ,0xB0B8 ,0xAC2D //HANGUL SYLLABLE KIYEOK AE PIEUP - ,0xB0B9 ,0xAC2F //HANGUL SYLLABLE KIYEOK AE SIOS - ,0xB0BA ,0xAC30 //HANGUL SYLLABLE KIYEOK AE SSANGSIOS - ,0xB0BB ,0xAC31 //HANGUL SYLLABLE KIYEOK AE IEUNG - ,0xB0BC ,0xAC38 //HANGUL SYLLABLE KIYEOK YA - ,0xB0BD ,0xAC39 //HANGUL SYLLABLE KIYEOK YA KIYEOK - ,0xB0BE ,0xAC3C //HANGUL SYLLABLE KIYEOK YA NIEUN - ,0xB0BF ,0xAC40 //HANGUL SYLLABLE KIYEOK YA RIEUL - ,0xB0C0 ,0xAC4B //HANGUL SYLLABLE KIYEOK YA SIOS - ,0xB0C1 ,0xAC4D //HANGUL SYLLABLE KIYEOK YA IEUNG - ,0xB0C2 ,0xAC54 //HANGUL SYLLABLE KIYEOK YAE - ,0xB0C3 ,0xAC58 //HANGUL SYLLABLE KIYEOK YAE NIEUN - ,0xB0C4 ,0xAC5C //HANGUL SYLLABLE KIYEOK YAE RIEUL - ,0xB0C5 ,0xAC70 //HANGUL SYLLABLE KIYEOK EO - ,0xB0C6 ,0xAC71 //HANGUL SYLLABLE KIYEOK EO KIYEOK - ,0xB0C7 ,0xAC74 //HANGUL SYLLABLE KIYEOK EO NIEUN - ,0xB0C8 ,0xAC77 //HANGUL SYLLABLE KIYEOK EO TIKEUT - ,0xB0C9 ,0xAC78 //HANGUL SYLLABLE KIYEOK EO RIEUL - ,0xB0CA ,0xAC7A //HANGUL SYLLABLE KIYEOK EO RIEULMIEUM - ,0xB0CB ,0xAC80 //HANGUL SYLLABLE KIYEOK EO MIEUM - ,0xB0CC ,0xAC81 //HANGUL SYLLABLE KIYEOK EO PIEUP - ,0xB0CD ,0xAC83 //HANGUL SYLLABLE KIYEOK EO SIOS - ,0xB0CE ,0xAC84 //HANGUL SYLLABLE KIYEOK EO SSANGSIOS - ,0xB0CF ,0xAC85 //HANGUL SYLLABLE KIYEOK EO IEUNG - ,0xB0D0 ,0xAC86 //HANGUL SYLLABLE KIYEOK EO CIEUC - ,0xB0D1 ,0xAC89 //HANGUL SYLLABLE KIYEOK EO THIEUTH - ,0xB0D2 ,0xAC8A //HANGUL SYLLABLE KIYEOK EO PHIEUPH - ,0xB0D3 ,0xAC8B //HANGUL SYLLABLE KIYEOK EO HIEUH - ,0xB0D4 ,0xAC8C //HANGUL SYLLABLE KIYEOK E - ,0xB0D5 ,0xAC90 //HANGUL SYLLABLE KIYEOK E NIEUN - ,0xB0D6 ,0xAC94 //HANGUL SYLLABLE KIYEOK E RIEUL - ,0xB0D7 ,0xAC9C //HANGUL SYLLABLE KIYEOK E MIEUM - ,0xB0D8 ,0xAC9D //HANGUL SYLLABLE KIYEOK E PIEUP - ,0xB0D9 ,0xAC9F //HANGUL SYLLABLE KIYEOK E SIOS - ,0xB0DA ,0xACA0 //HANGUL SYLLABLE KIYEOK E SSANGSIOS - ,0xB0DB ,0xACA1 //HANGUL SYLLABLE KIYEOK E IEUNG - ,0xB0DC ,0xACA8 //HANGUL SYLLABLE KIYEOK YEO - ,0xB0DD ,0xACA9 //HANGUL SYLLABLE KIYEOK YEO KIYEOK - ,0xB0DE ,0xACAA //HANGUL SYLLABLE KIYEOK YEO SSANGKIYEOK - ,0xB0DF ,0xACAC //HANGUL SYLLABLE KIYEOK YEO NIEUN - ,0xB0E0 ,0xACAF //HANGUL SYLLABLE KIYEOK YEO TIKEUT - ,0xB0E1 ,0xACB0 //HANGUL SYLLABLE KIYEOK YEO RIEUL - ,0xB0E2 ,0xACB8 //HANGUL SYLLABLE KIYEOK YEO MIEUM - ,0xB0E3 ,0xACB9 //HANGUL SYLLABLE KIYEOK YEO PIEUP - ,0xB0E4 ,0xACBB //HANGUL SYLLABLE KIYEOK YEO SIOS - ,0xB0E5 ,0xACBC //HANGUL SYLLABLE KIYEOK YEO SSANGSIOS - ,0xB0E6 ,0xACBD //HANGUL SYLLABLE KIYEOK YEO IEUNG - ,0xB0E7 ,0xACC1 //HANGUL SYLLABLE KIYEOK YEO THIEUTH - ,0xB0E8 ,0xACC4 //HANGUL SYLLABLE KIYEOK YE - ,0xB0E9 ,0xACC8 //HANGUL SYLLABLE KIYEOK YE NIEUN - ,0xB0EA ,0xACCC //HANGUL SYLLABLE KIYEOK YE RIEUL - ,0xB0EB ,0xACD5 //HANGUL SYLLABLE KIYEOK YE PIEUP - ,0xB0EC ,0xACD7 //HANGUL SYLLABLE KIYEOK YE SIOS - ,0xB0ED ,0xACE0 //HANGUL SYLLABLE KIYEOK O - ,0xB0EE ,0xACE1 //HANGUL SYLLABLE KIYEOK O KIYEOK - ,0xB0EF ,0xACE4 //HANGUL SYLLABLE KIYEOK O NIEUN - ,0xB0F0 ,0xACE7 //HANGUL SYLLABLE KIYEOK O TIKEUT - ,0xB0F1 ,0xACE8 //HANGUL SYLLABLE KIYEOK O RIEUL - ,0xB0F2 ,0xACEA //HANGUL SYLLABLE KIYEOK O RIEULMIEUM - ,0xB0F3 ,0xACEC //HANGUL SYLLABLE KIYEOK O RIEULSIOS - ,0xB0F4 ,0xACEF //HANGUL SYLLABLE KIYEOK O RIEULHIEUH - ,0xB0F5 ,0xACF0 //HANGUL SYLLABLE KIYEOK O MIEUM - ,0xB0F6 ,0xACF1 //HANGUL SYLLABLE KIYEOK O PIEUP - ,0xB0F7 ,0xACF3 //HANGUL SYLLABLE KIYEOK O SIOS - ,0xB0F8 ,0xACF5 //HANGUL SYLLABLE KIYEOK O IEUNG - ,0xB0F9 ,0xACF6 //HANGUL SYLLABLE KIYEOK O CIEUC - ,0xB0FA ,0xACFC //HANGUL SYLLABLE KIYEOK WA - ,0xB0FB ,0xACFD //HANGUL SYLLABLE KIYEOK WA KIYEOK - ,0xB0FC ,0xAD00 //HANGUL SYLLABLE KIYEOK WA NIEUN - ,0xB0FD ,0xAD04 //HANGUL SYLLABLE KIYEOK WA RIEUL - ,0xB0FE ,0xAD06 //HANGUL SYLLABLE KIYEOK WA RIEULMIEUM - ,0xB141 ,0xCF02 //HANGUL SYLLABLE KHIEUKH E SSANGKIYEOK - ,0xB142 ,0xCF03 //HANGUL SYLLABLE KHIEUKH E KIYEOKSIOS - ,0xB143 ,0xCF05 //HANGUL SYLLABLE KHIEUKH E NIEUNCIEUC - ,0xB144 ,0xCF06 //HANGUL SYLLABLE KHIEUKH E NIEUNHIEUH - ,0xB145 ,0xCF07 //HANGUL SYLLABLE KHIEUKH E TIKEUT - ,0xB146 ,0xCF09 //HANGUL SYLLABLE KHIEUKH E RIEULKIYEOK - ,0xB147 ,0xCF0A //HANGUL SYLLABLE KHIEUKH E RIEULMIEUM - ,0xB148 ,0xCF0B //HANGUL SYLLABLE KHIEUKH E RIEULPIEUP - ,0xB149 ,0xCF0C //HANGUL SYLLABLE KHIEUKH E RIEULSIOS - ,0xB14A ,0xCF0D //HANGUL SYLLABLE KHIEUKH E RIEULTHIEUTH - ,0xB14B ,0xCF0E //HANGUL SYLLABLE KHIEUKH E RIEULPHIEUPH - ,0xB14C ,0xCF0F //HANGUL SYLLABLE KHIEUKH E RIEULHIEUH - ,0xB14D ,0xCF12 //HANGUL SYLLABLE KHIEUKH E PIEUPSIOS - ,0xB14E ,0xCF14 //HANGUL SYLLABLE KHIEUKH E SSANGSIOS - ,0xB14F ,0xCF16 //HANGUL SYLLABLE KHIEUKH E CIEUC - ,0xB150 ,0xCF17 //HANGUL SYLLABLE KHIEUKH E CHIEUCH - ,0xB151 ,0xCF18 //HANGUL SYLLABLE KHIEUKH E KHIEUKH - ,0xB152 ,0xCF19 //HANGUL SYLLABLE KHIEUKH E THIEUTH - ,0xB153 ,0xCF1A //HANGUL SYLLABLE KHIEUKH E PHIEUPH - ,0xB154 ,0xCF1B //HANGUL SYLLABLE KHIEUKH E HIEUH - ,0xB155 ,0xCF1D //HANGUL SYLLABLE KHIEUKH YEO KIYEOK - ,0xB156 ,0xCF1E //HANGUL SYLLABLE KHIEUKH YEO SSANGKIYEOK - ,0xB157 ,0xCF1F //HANGUL SYLLABLE KHIEUKH YEO KIYEOKSIOS - ,0xB158 ,0xCF21 //HANGUL SYLLABLE KHIEUKH YEO NIEUNCIEUC - ,0xB159 ,0xCF22 //HANGUL SYLLABLE KHIEUKH YEO NIEUNHIEUH - ,0xB15A ,0xCF23 //HANGUL SYLLABLE KHIEUKH YEO TIKEUT - ,0xB161 ,0xCF25 //HANGUL SYLLABLE KHIEUKH YEO RIEULKIYEOK - ,0xB162 ,0xCF26 //HANGUL SYLLABLE KHIEUKH YEO RIEULMIEUM - ,0xB163 ,0xCF27 //HANGUL SYLLABLE KHIEUKH YEO RIEULPIEUP - ,0xB164 ,0xCF28 //HANGUL SYLLABLE KHIEUKH YEO RIEULSIOS - ,0xB165 ,0xCF29 //HANGUL SYLLABLE KHIEUKH YEO RIEULTHIEUTH - ,0xB166 ,0xCF2A //HANGUL SYLLABLE KHIEUKH YEO RIEULPHIEUPH - ,0xB167 ,0xCF2B //HANGUL SYLLABLE KHIEUKH YEO RIEULHIEUH - ,0xB168 ,0xCF2E //HANGUL SYLLABLE KHIEUKH YEO PIEUPSIOS - ,0xB169 ,0xCF32 //HANGUL SYLLABLE KHIEUKH YEO CIEUC - ,0xB16A ,0xCF33 //HANGUL SYLLABLE KHIEUKH YEO CHIEUCH - ,0xB16B ,0xCF34 //HANGUL SYLLABLE KHIEUKH YEO KHIEUKH - ,0xB16C ,0xCF35 //HANGUL SYLLABLE KHIEUKH YEO THIEUTH - ,0xB16D ,0xCF36 //HANGUL SYLLABLE KHIEUKH YEO PHIEUPH - ,0xB16E ,0xCF37 //HANGUL SYLLABLE KHIEUKH YEO HIEUH - ,0xB16F ,0xCF39 //HANGUL SYLLABLE KHIEUKH YE KIYEOK - ,0xB170 ,0xCF3A //HANGUL SYLLABLE KHIEUKH YE SSANGKIYEOK - ,0xB171 ,0xCF3B //HANGUL SYLLABLE KHIEUKH YE KIYEOKSIOS - ,0xB172 ,0xCF3C //HANGUL SYLLABLE KHIEUKH YE NIEUN - ,0xB173 ,0xCF3D //HANGUL SYLLABLE KHIEUKH YE NIEUNCIEUC - ,0xB174 ,0xCF3E //HANGUL SYLLABLE KHIEUKH YE NIEUNHIEUH - ,0xB175 ,0xCF3F //HANGUL SYLLABLE KHIEUKH YE TIKEUT - ,0xB176 ,0xCF40 //HANGUL SYLLABLE KHIEUKH YE RIEUL - ,0xB177 ,0xCF41 //HANGUL SYLLABLE KHIEUKH YE RIEULKIYEOK - ,0xB178 ,0xCF42 //HANGUL SYLLABLE KHIEUKH YE RIEULMIEUM - ,0xB179 ,0xCF43 //HANGUL SYLLABLE KHIEUKH YE RIEULPIEUP - ,0xB17A ,0xCF44 //HANGUL SYLLABLE KHIEUKH YE RIEULSIOS - ,0xB181 ,0xCF45 //HANGUL SYLLABLE KHIEUKH YE RIEULTHIEUTH - ,0xB182 ,0xCF46 //HANGUL SYLLABLE KHIEUKH YE RIEULPHIEUPH - ,0xB183 ,0xCF47 //HANGUL SYLLABLE KHIEUKH YE RIEULHIEUH - ,0xB184 ,0xCF48 //HANGUL SYLLABLE KHIEUKH YE MIEUM - ,0xB185 ,0xCF49 //HANGUL SYLLABLE KHIEUKH YE PIEUP - ,0xB186 ,0xCF4A //HANGUL SYLLABLE KHIEUKH YE PIEUPSIOS - ,0xB187 ,0xCF4B //HANGUL SYLLABLE KHIEUKH YE SIOS - ,0xB188 ,0xCF4C //HANGUL SYLLABLE KHIEUKH YE SSANGSIOS - ,0xB189 ,0xCF4D //HANGUL SYLLABLE KHIEUKH YE IEUNG - ,0xB18A ,0xCF4E //HANGUL SYLLABLE KHIEUKH YE CIEUC - ,0xB18B ,0xCF4F //HANGUL SYLLABLE KHIEUKH YE CHIEUCH - ,0xB18C ,0xCF50 //HANGUL SYLLABLE KHIEUKH YE KHIEUKH - ,0xB18D ,0xCF51 //HANGUL SYLLABLE KHIEUKH YE THIEUTH - ,0xB18E ,0xCF52 //HANGUL SYLLABLE KHIEUKH YE PHIEUPH - ,0xB18F ,0xCF53 //HANGUL SYLLABLE KHIEUKH YE HIEUH - ,0xB190 ,0xCF56 //HANGUL SYLLABLE KHIEUKH O SSANGKIYEOK - ,0xB191 ,0xCF57 //HANGUL SYLLABLE KHIEUKH O KIYEOKSIOS - ,0xB192 ,0xCF59 //HANGUL SYLLABLE KHIEUKH O NIEUNCIEUC - ,0xB193 ,0xCF5A //HANGUL SYLLABLE KHIEUKH O NIEUNHIEUH - ,0xB194 ,0xCF5B //HANGUL SYLLABLE KHIEUKH O TIKEUT - ,0xB195 ,0xCF5D //HANGUL SYLLABLE KHIEUKH O RIEULKIYEOK - ,0xB196 ,0xCF5E //HANGUL SYLLABLE KHIEUKH O RIEULMIEUM - ,0xB197 ,0xCF5F //HANGUL SYLLABLE KHIEUKH O RIEULPIEUP - ,0xB198 ,0xCF60 //HANGUL SYLLABLE KHIEUKH O RIEULSIOS - ,0xB199 ,0xCF61 //HANGUL SYLLABLE KHIEUKH O RIEULTHIEUTH - ,0xB19A ,0xCF62 //HANGUL SYLLABLE KHIEUKH O RIEULPHIEUPH - ,0xB19B ,0xCF63 //HANGUL SYLLABLE KHIEUKH O RIEULHIEUH - ,0xB19C ,0xCF66 //HANGUL SYLLABLE KHIEUKH O PIEUPSIOS - ,0xB19D ,0xCF68 //HANGUL SYLLABLE KHIEUKH O SSANGSIOS - ,0xB19E ,0xCF6A //HANGUL SYLLABLE KHIEUKH O CIEUC - ,0xB19F ,0xCF6B //HANGUL SYLLABLE KHIEUKH O CHIEUCH - ,0xB1A0 ,0xCF6C //HANGUL SYLLABLE KHIEUKH O KHIEUKH - ,0xB1A1 ,0xAD0C //HANGUL SYLLABLE KIYEOK WA MIEUM - ,0xB1A2 ,0xAD0D //HANGUL SYLLABLE KIYEOK WA PIEUP - ,0xB1A3 ,0xAD0F //HANGUL SYLLABLE KIYEOK WA SIOS - ,0xB1A4 ,0xAD11 //HANGUL SYLLABLE KIYEOK WA IEUNG - ,0xB1A5 ,0xAD18 //HANGUL SYLLABLE KIYEOK WAE - ,0xB1A6 ,0xAD1C //HANGUL SYLLABLE KIYEOK WAE NIEUN - ,0xB1A7 ,0xAD20 //HANGUL SYLLABLE KIYEOK WAE RIEUL - ,0xB1A8 ,0xAD29 //HANGUL SYLLABLE KIYEOK WAE PIEUP - ,0xB1A9 ,0xAD2C //HANGUL SYLLABLE KIYEOK WAE SSANGSIOS - ,0xB1AA ,0xAD2D //HANGUL SYLLABLE KIYEOK WAE IEUNG - ,0xB1AB ,0xAD34 //HANGUL SYLLABLE KIYEOK OE - ,0xB1AC ,0xAD35 //HANGUL SYLLABLE KIYEOK OE KIYEOK - ,0xB1AD ,0xAD38 //HANGUL SYLLABLE KIYEOK OE NIEUN - ,0xB1AE ,0xAD3C //HANGUL SYLLABLE KIYEOK OE RIEUL - ,0xB1AF ,0xAD44 //HANGUL SYLLABLE KIYEOK OE MIEUM - ,0xB1B0 ,0xAD45 //HANGUL SYLLABLE KIYEOK OE PIEUP - ,0xB1B1 ,0xAD47 //HANGUL SYLLABLE KIYEOK OE SIOS - ,0xB1B2 ,0xAD49 //HANGUL SYLLABLE KIYEOK OE IEUNG - ,0xB1B3 ,0xAD50 //HANGUL SYLLABLE KIYEOK YO - ,0xB1B4 ,0xAD54 //HANGUL SYLLABLE KIYEOK YO NIEUN - ,0xB1B5 ,0xAD58 //HANGUL SYLLABLE KIYEOK YO RIEUL - ,0xB1B6 ,0xAD61 //HANGUL SYLLABLE KIYEOK YO PIEUP - ,0xB1B7 ,0xAD63 //HANGUL SYLLABLE KIYEOK YO SIOS - ,0xB1B8 ,0xAD6C //HANGUL SYLLABLE KIYEOK U - ,0xB1B9 ,0xAD6D //HANGUL SYLLABLE KIYEOK U KIYEOK - ,0xB1BA ,0xAD70 //HANGUL SYLLABLE KIYEOK U NIEUN - ,0xB1BB ,0xAD73 //HANGUL SYLLABLE KIYEOK U TIKEUT - ,0xB1BC ,0xAD74 //HANGUL SYLLABLE KIYEOK U RIEUL - ,0xB1BD ,0xAD75 //HANGUL SYLLABLE KIYEOK U RIEULKIYEOK - ,0xB1BE ,0xAD76 //HANGUL SYLLABLE KIYEOK U RIEULMIEUM - ,0xB1BF ,0xAD7B //HANGUL SYLLABLE KIYEOK U RIEULHIEUH - ,0xB1C0 ,0xAD7C //HANGUL SYLLABLE KIYEOK U MIEUM - ,0xB1C1 ,0xAD7D //HANGUL SYLLABLE KIYEOK U PIEUP - ,0xB1C2 ,0xAD7F //HANGUL SYLLABLE KIYEOK U SIOS - ,0xB1C3 ,0xAD81 //HANGUL SYLLABLE KIYEOK U IEUNG - ,0xB1C4 ,0xAD82 //HANGUL SYLLABLE KIYEOK U CIEUC - ,0xB1C5 ,0xAD88 //HANGUL SYLLABLE KIYEOK WEO - ,0xB1C6 ,0xAD89 //HANGUL SYLLABLE KIYEOK WEO KIYEOK - ,0xB1C7 ,0xAD8C //HANGUL SYLLABLE KIYEOK WEO NIEUN - ,0xB1C8 ,0xAD90 //HANGUL SYLLABLE KIYEOK WEO RIEUL - ,0xB1C9 ,0xAD9C //HANGUL SYLLABLE KIYEOK WEO SSANGSIOS - ,0xB1CA ,0xAD9D //HANGUL SYLLABLE KIYEOK WEO IEUNG - ,0xB1CB ,0xADA4 //HANGUL SYLLABLE KIYEOK WE - ,0xB1CC ,0xADB7 //HANGUL SYLLABLE KIYEOK WE SIOS - ,0xB1CD ,0xADC0 //HANGUL SYLLABLE KIYEOK WI - ,0xB1CE ,0xADC1 //HANGUL SYLLABLE KIYEOK WI KIYEOK - ,0xB1CF ,0xADC4 //HANGUL SYLLABLE KIYEOK WI NIEUN - ,0xB1D0 ,0xADC8 //HANGUL SYLLABLE KIYEOK WI RIEUL - ,0xB1D1 ,0xADD0 //HANGUL SYLLABLE KIYEOK WI MIEUM - ,0xB1D2 ,0xADD1 //HANGUL SYLLABLE KIYEOK WI PIEUP - ,0xB1D3 ,0xADD3 //HANGUL SYLLABLE KIYEOK WI SIOS - ,0xB1D4 ,0xADDC //HANGUL SYLLABLE KIYEOK YU - ,0xB1D5 ,0xADE0 //HANGUL SYLLABLE KIYEOK YU NIEUN - ,0xB1D6 ,0xADE4 //HANGUL SYLLABLE KIYEOK YU RIEUL - ,0xB1D7 ,0xADF8 //HANGUL SYLLABLE KIYEOK EU - ,0xB1D8 ,0xADF9 //HANGUL SYLLABLE KIYEOK EU KIYEOK - ,0xB1D9 ,0xADFC //HANGUL SYLLABLE KIYEOK EU NIEUN - ,0xB1DA ,0xADFF //HANGUL SYLLABLE KIYEOK EU TIKEUT - ,0xB1DB ,0xAE00 //HANGUL SYLLABLE KIYEOK EU RIEUL - ,0xB1DC ,0xAE01 //HANGUL SYLLABLE KIYEOK EU RIEULKIYEOK - ,0xB1DD ,0xAE08 //HANGUL SYLLABLE KIYEOK EU MIEUM - ,0xB1DE ,0xAE09 //HANGUL SYLLABLE KIYEOK EU PIEUP - ,0xB1DF ,0xAE0B //HANGUL SYLLABLE KIYEOK EU SIOS - ,0xB1E0 ,0xAE0D //HANGUL SYLLABLE KIYEOK EU IEUNG - ,0xB1E1 ,0xAE14 //HANGUL SYLLABLE KIYEOK YI - ,0xB1E2 ,0xAE30 //HANGUL SYLLABLE KIYEOK I - ,0xB1E3 ,0xAE31 //HANGUL SYLLABLE KIYEOK I KIYEOK - ,0xB1E4 ,0xAE34 //HANGUL SYLLABLE KIYEOK I NIEUN - ,0xB1E5 ,0xAE37 //HANGUL SYLLABLE KIYEOK I TIKEUT - ,0xB1E6 ,0xAE38 //HANGUL SYLLABLE KIYEOK I RIEUL - ,0xB1E7 ,0xAE3A //HANGUL SYLLABLE KIYEOK I RIEULMIEUM - ,0xB1E8 ,0xAE40 //HANGUL SYLLABLE KIYEOK I MIEUM - ,0xB1E9 ,0xAE41 //HANGUL SYLLABLE KIYEOK I PIEUP - ,0xB1EA ,0xAE43 //HANGUL SYLLABLE KIYEOK I SIOS - ,0xB1EB ,0xAE45 //HANGUL SYLLABLE KIYEOK I IEUNG - ,0xB1EC ,0xAE46 //HANGUL SYLLABLE KIYEOK I CIEUC - ,0xB1ED ,0xAE4A //HANGUL SYLLABLE KIYEOK I PHIEUPH - ,0xB1EE ,0xAE4C //HANGUL SYLLABLE SSANGKIYEOK A - ,0xB1EF ,0xAE4D //HANGUL SYLLABLE SSANGKIYEOK A KIYEOK - ,0xB1F0 ,0xAE4E //HANGUL SYLLABLE SSANGKIYEOK A SSANGKIYEOK - ,0xB1F1 ,0xAE50 //HANGUL SYLLABLE SSANGKIYEOK A NIEUN - ,0xB1F2 ,0xAE54 //HANGUL SYLLABLE SSANGKIYEOK A RIEUL - ,0xB1F3 ,0xAE56 //HANGUL SYLLABLE SSANGKIYEOK A RIEULMIEUM - ,0xB1F4 ,0xAE5C //HANGUL SYLLABLE SSANGKIYEOK A MIEUM - ,0xB1F5 ,0xAE5D //HANGUL SYLLABLE SSANGKIYEOK A PIEUP - ,0xB1F6 ,0xAE5F //HANGUL SYLLABLE SSANGKIYEOK A SIOS - ,0xB1F7 ,0xAE60 //HANGUL SYLLABLE SSANGKIYEOK A SSANGSIOS - ,0xB1F8 ,0xAE61 //HANGUL SYLLABLE SSANGKIYEOK A IEUNG - ,0xB1F9 ,0xAE65 //HANGUL SYLLABLE SSANGKIYEOK A THIEUTH - ,0xB1FA ,0xAE68 //HANGUL SYLLABLE SSANGKIYEOK AE - ,0xB1FB ,0xAE69 //HANGUL SYLLABLE SSANGKIYEOK AE KIYEOK - ,0xB1FC ,0xAE6C //HANGUL SYLLABLE SSANGKIYEOK AE NIEUN - ,0xB1FD ,0xAE70 //HANGUL SYLLABLE SSANGKIYEOK AE RIEUL - ,0xB1FE ,0xAE78 //HANGUL SYLLABLE SSANGKIYEOK AE MIEUM - ,0xB241 ,0xCF6D //HANGUL SYLLABLE KHIEUKH O THIEUTH - ,0xB242 ,0xCF6E //HANGUL SYLLABLE KHIEUKH O PHIEUPH - ,0xB243 ,0xCF6F //HANGUL SYLLABLE KHIEUKH O HIEUH - ,0xB244 ,0xCF72 //HANGUL SYLLABLE KHIEUKH WA SSANGKIYEOK - ,0xB245 ,0xCF73 //HANGUL SYLLABLE KHIEUKH WA KIYEOKSIOS - ,0xB246 ,0xCF75 //HANGUL SYLLABLE KHIEUKH WA NIEUNCIEUC - ,0xB247 ,0xCF76 //HANGUL SYLLABLE KHIEUKH WA NIEUNHIEUH - ,0xB248 ,0xCF77 //HANGUL SYLLABLE KHIEUKH WA TIKEUT - ,0xB249 ,0xCF79 //HANGUL SYLLABLE KHIEUKH WA RIEULKIYEOK - ,0xB24A ,0xCF7A //HANGUL SYLLABLE KHIEUKH WA RIEULMIEUM - ,0xB24B ,0xCF7B //HANGUL SYLLABLE KHIEUKH WA RIEULPIEUP - ,0xB24C ,0xCF7C //HANGUL SYLLABLE KHIEUKH WA RIEULSIOS - ,0xB24D ,0xCF7D //HANGUL SYLLABLE KHIEUKH WA RIEULTHIEUTH - ,0xB24E ,0xCF7E //HANGUL SYLLABLE KHIEUKH WA RIEULPHIEUPH - ,0xB24F ,0xCF7F //HANGUL SYLLABLE KHIEUKH WA RIEULHIEUH - ,0xB250 ,0xCF81 //HANGUL SYLLABLE KHIEUKH WA PIEUP - ,0xB251 ,0xCF82 //HANGUL SYLLABLE KHIEUKH WA PIEUPSIOS - ,0xB252 ,0xCF83 //HANGUL SYLLABLE KHIEUKH WA SIOS - ,0xB253 ,0xCF84 //HANGUL SYLLABLE KHIEUKH WA SSANGSIOS - ,0xB254 ,0xCF86 //HANGUL SYLLABLE KHIEUKH WA CIEUC - ,0xB255 ,0xCF87 //HANGUL SYLLABLE KHIEUKH WA CHIEUCH - ,0xB256 ,0xCF88 //HANGUL SYLLABLE KHIEUKH WA KHIEUKH - ,0xB257 ,0xCF89 //HANGUL SYLLABLE KHIEUKH WA THIEUTH - ,0xB258 ,0xCF8A //HANGUL SYLLABLE KHIEUKH WA PHIEUPH - ,0xB259 ,0xCF8B //HANGUL SYLLABLE KHIEUKH WA HIEUH - ,0xB25A ,0xCF8D //HANGUL SYLLABLE KHIEUKH WAE KIYEOK - ,0xB261 ,0xCF8E //HANGUL SYLLABLE KHIEUKH WAE SSANGKIYEOK - ,0xB262 ,0xCF8F //HANGUL SYLLABLE KHIEUKH WAE KIYEOKSIOS - ,0xB263 ,0xCF90 //HANGUL SYLLABLE KHIEUKH WAE NIEUN - ,0xB264 ,0xCF91 //HANGUL SYLLABLE KHIEUKH WAE NIEUNCIEUC - ,0xB265 ,0xCF92 //HANGUL SYLLABLE KHIEUKH WAE NIEUNHIEUH - ,0xB266 ,0xCF93 //HANGUL SYLLABLE KHIEUKH WAE TIKEUT - ,0xB267 ,0xCF94 //HANGUL SYLLABLE KHIEUKH WAE RIEUL - ,0xB268 ,0xCF95 //HANGUL SYLLABLE KHIEUKH WAE RIEULKIYEOK - ,0xB269 ,0xCF96 //HANGUL SYLLABLE KHIEUKH WAE RIEULMIEUM - ,0xB26A ,0xCF97 //HANGUL SYLLABLE KHIEUKH WAE RIEULPIEUP - ,0xB26B ,0xCF98 //HANGUL SYLLABLE KHIEUKH WAE RIEULSIOS - ,0xB26C ,0xCF99 //HANGUL SYLLABLE KHIEUKH WAE RIEULTHIEUTH - ,0xB26D ,0xCF9A //HANGUL SYLLABLE KHIEUKH WAE RIEULPHIEUPH - ,0xB26E ,0xCF9B //HANGUL SYLLABLE KHIEUKH WAE RIEULHIEUH - ,0xB26F ,0xCF9C //HANGUL SYLLABLE KHIEUKH WAE MIEUM - ,0xB270 ,0xCF9D //HANGUL SYLLABLE KHIEUKH WAE PIEUP - ,0xB271 ,0xCF9E //HANGUL SYLLABLE KHIEUKH WAE PIEUPSIOS - ,0xB272 ,0xCF9F //HANGUL SYLLABLE KHIEUKH WAE SIOS - ,0xB273 ,0xCFA0 //HANGUL SYLLABLE KHIEUKH WAE SSANGSIOS - ,0xB274 ,0xCFA2 //HANGUL SYLLABLE KHIEUKH WAE CIEUC - ,0xB275 ,0xCFA3 //HANGUL SYLLABLE KHIEUKH WAE CHIEUCH - ,0xB276 ,0xCFA4 //HANGUL SYLLABLE KHIEUKH WAE KHIEUKH - ,0xB277 ,0xCFA5 //HANGUL SYLLABLE KHIEUKH WAE THIEUTH - ,0xB278 ,0xCFA6 //HANGUL SYLLABLE KHIEUKH WAE PHIEUPH - ,0xB279 ,0xCFA7 //HANGUL SYLLABLE KHIEUKH WAE HIEUH - ,0xB27A ,0xCFA9 //HANGUL SYLLABLE KHIEUKH OE KIYEOK - ,0xB281 ,0xCFAA //HANGUL SYLLABLE KHIEUKH OE SSANGKIYEOK - ,0xB282 ,0xCFAB //HANGUL SYLLABLE KHIEUKH OE KIYEOKSIOS - ,0xB283 ,0xCFAC //HANGUL SYLLABLE KHIEUKH OE NIEUN - ,0xB284 ,0xCFAD //HANGUL SYLLABLE KHIEUKH OE NIEUNCIEUC - ,0xB285 ,0xCFAE //HANGUL SYLLABLE KHIEUKH OE NIEUNHIEUH - ,0xB286 ,0xCFAF //HANGUL SYLLABLE KHIEUKH OE TIKEUT - ,0xB287 ,0xCFB1 //HANGUL SYLLABLE KHIEUKH OE RIEULKIYEOK - ,0xB288 ,0xCFB2 //HANGUL SYLLABLE KHIEUKH OE RIEULMIEUM - ,0xB289 ,0xCFB3 //HANGUL SYLLABLE KHIEUKH OE RIEULPIEUP - ,0xB28A ,0xCFB4 //HANGUL SYLLABLE KHIEUKH OE RIEULSIOS - ,0xB28B ,0xCFB5 //HANGUL SYLLABLE KHIEUKH OE RIEULTHIEUTH - ,0xB28C ,0xCFB6 //HANGUL SYLLABLE KHIEUKH OE RIEULPHIEUPH - ,0xB28D ,0xCFB7 //HANGUL SYLLABLE KHIEUKH OE RIEULHIEUH - ,0xB28E ,0xCFB8 //HANGUL SYLLABLE KHIEUKH OE MIEUM - ,0xB28F ,0xCFB9 //HANGUL SYLLABLE KHIEUKH OE PIEUP - ,0xB290 ,0xCFBA //HANGUL SYLLABLE KHIEUKH OE PIEUPSIOS - ,0xB291 ,0xCFBB //HANGUL SYLLABLE KHIEUKH OE SIOS - ,0xB292 ,0xCFBC //HANGUL SYLLABLE KHIEUKH OE SSANGSIOS - ,0xB293 ,0xCFBD //HANGUL SYLLABLE KHIEUKH OE IEUNG - ,0xB294 ,0xCFBE //HANGUL SYLLABLE KHIEUKH OE CIEUC - ,0xB295 ,0xCFBF //HANGUL SYLLABLE KHIEUKH OE CHIEUCH - ,0xB296 ,0xCFC0 //HANGUL SYLLABLE KHIEUKH OE KHIEUKH - ,0xB297 ,0xCFC1 //HANGUL SYLLABLE KHIEUKH OE THIEUTH - ,0xB298 ,0xCFC2 //HANGUL SYLLABLE KHIEUKH OE PHIEUPH - ,0xB299 ,0xCFC3 //HANGUL SYLLABLE KHIEUKH OE HIEUH - ,0xB29A ,0xCFC5 //HANGUL SYLLABLE KHIEUKH YO KIYEOK - ,0xB29B ,0xCFC6 //HANGUL SYLLABLE KHIEUKH YO SSANGKIYEOK - ,0xB29C ,0xCFC7 //HANGUL SYLLABLE KHIEUKH YO KIYEOKSIOS - ,0xB29D ,0xCFC8 //HANGUL SYLLABLE KHIEUKH YO NIEUN - ,0xB29E ,0xCFC9 //HANGUL SYLLABLE KHIEUKH YO NIEUNCIEUC - ,0xB29F ,0xCFCA //HANGUL SYLLABLE KHIEUKH YO NIEUNHIEUH - ,0xB2A0 ,0xCFCB //HANGUL SYLLABLE KHIEUKH YO TIKEUT - ,0xB2A1 ,0xAE79 //HANGUL SYLLABLE SSANGKIYEOK AE PIEUP - ,0xB2A2 ,0xAE7B //HANGUL SYLLABLE SSANGKIYEOK AE SIOS - ,0xB2A3 ,0xAE7C //HANGUL SYLLABLE SSANGKIYEOK AE SSANGSIOS - ,0xB2A4 ,0xAE7D //HANGUL SYLLABLE SSANGKIYEOK AE IEUNG - ,0xB2A5 ,0xAE84 //HANGUL SYLLABLE SSANGKIYEOK YA - ,0xB2A6 ,0xAE85 //HANGUL SYLLABLE SSANGKIYEOK YA KIYEOK - ,0xB2A7 ,0xAE8C //HANGUL SYLLABLE SSANGKIYEOK YA RIEUL - ,0xB2A8 ,0xAEBC //HANGUL SYLLABLE SSANGKIYEOK EO - ,0xB2A9 ,0xAEBD //HANGUL SYLLABLE SSANGKIYEOK EO KIYEOK - ,0xB2AA ,0xAEBE //HANGUL SYLLABLE SSANGKIYEOK EO SSANGKIYEOK - ,0xB2AB ,0xAEC0 //HANGUL SYLLABLE SSANGKIYEOK EO NIEUN - ,0xB2AC ,0xAEC4 //HANGUL SYLLABLE SSANGKIYEOK EO RIEUL - ,0xB2AD ,0xAECC //HANGUL SYLLABLE SSANGKIYEOK EO MIEUM - ,0xB2AE ,0xAECD //HANGUL SYLLABLE SSANGKIYEOK EO PIEUP - ,0xB2AF ,0xAECF //HANGUL SYLLABLE SSANGKIYEOK EO SIOS - ,0xB2B0 ,0xAED0 //HANGUL SYLLABLE SSANGKIYEOK EO SSANGSIOS - ,0xB2B1 ,0xAED1 //HANGUL SYLLABLE SSANGKIYEOK EO IEUNG - ,0xB2B2 ,0xAED8 //HANGUL SYLLABLE SSANGKIYEOK E - ,0xB2B3 ,0xAED9 //HANGUL SYLLABLE SSANGKIYEOK E KIYEOK - ,0xB2B4 ,0xAEDC //HANGUL SYLLABLE SSANGKIYEOK E NIEUN - ,0xB2B5 ,0xAEE8 //HANGUL SYLLABLE SSANGKIYEOK E MIEUM - ,0xB2B6 ,0xAEEB //HANGUL SYLLABLE SSANGKIYEOK E SIOS - ,0xB2B7 ,0xAEED //HANGUL SYLLABLE SSANGKIYEOK E IEUNG - ,0xB2B8 ,0xAEF4 //HANGUL SYLLABLE SSANGKIYEOK YEO - ,0xB2B9 ,0xAEF8 //HANGUL SYLLABLE SSANGKIYEOK YEO NIEUN - ,0xB2BA ,0xAEFC //HANGUL SYLLABLE SSANGKIYEOK YEO RIEUL - ,0xB2BB ,0xAF07 //HANGUL SYLLABLE SSANGKIYEOK YEO SIOS - ,0xB2BC ,0xAF08 //HANGUL SYLLABLE SSANGKIYEOK YEO SSANGSIOS - ,0xB2BD ,0xAF0D //HANGUL SYLLABLE SSANGKIYEOK YEO THIEUTH - ,0xB2BE ,0xAF10 //HANGUL SYLLABLE SSANGKIYEOK YE - ,0xB2BF ,0xAF2C //HANGUL SYLLABLE SSANGKIYEOK O - ,0xB2C0 ,0xAF2D //HANGUL SYLLABLE SSANGKIYEOK O KIYEOK - ,0xB2C1 ,0xAF30 //HANGUL SYLLABLE SSANGKIYEOK O NIEUN - ,0xB2C2 ,0xAF32 //HANGUL SYLLABLE SSANGKIYEOK O NIEUNHIEUH - ,0xB2C3 ,0xAF34 //HANGUL SYLLABLE SSANGKIYEOK O RIEUL - ,0xB2C4 ,0xAF3C //HANGUL SYLLABLE SSANGKIYEOK O MIEUM - ,0xB2C5 ,0xAF3D //HANGUL SYLLABLE SSANGKIYEOK O PIEUP - ,0xB2C6 ,0xAF3F //HANGUL SYLLABLE SSANGKIYEOK O SIOS - ,0xB2C7 ,0xAF41 //HANGUL SYLLABLE SSANGKIYEOK O IEUNG - ,0xB2C8 ,0xAF42 //HANGUL SYLLABLE SSANGKIYEOK O CIEUC - ,0xB2C9 ,0xAF43 //HANGUL SYLLABLE SSANGKIYEOK O CHIEUCH - ,0xB2CA ,0xAF48 //HANGUL SYLLABLE SSANGKIYEOK WA - ,0xB2CB ,0xAF49 //HANGUL SYLLABLE SSANGKIYEOK WA KIYEOK - ,0xB2CC ,0xAF50 //HANGUL SYLLABLE SSANGKIYEOK WA RIEUL - ,0xB2CD ,0xAF5C //HANGUL SYLLABLE SSANGKIYEOK WA SSANGSIOS - ,0xB2CE ,0xAF5D //HANGUL SYLLABLE SSANGKIYEOK WA IEUNG - ,0xB2CF ,0xAF64 //HANGUL SYLLABLE SSANGKIYEOK WAE - ,0xB2D0 ,0xAF65 //HANGUL SYLLABLE SSANGKIYEOK WAE KIYEOK - ,0xB2D1 ,0xAF79 //HANGUL SYLLABLE SSANGKIYEOK WAE IEUNG - ,0xB2D2 ,0xAF80 //HANGUL SYLLABLE SSANGKIYEOK OE - ,0xB2D3 ,0xAF84 //HANGUL SYLLABLE SSANGKIYEOK OE NIEUN - ,0xB2D4 ,0xAF88 //HANGUL SYLLABLE SSANGKIYEOK OE RIEUL - ,0xB2D5 ,0xAF90 //HANGUL SYLLABLE SSANGKIYEOK OE MIEUM - ,0xB2D6 ,0xAF91 //HANGUL SYLLABLE SSANGKIYEOK OE PIEUP - ,0xB2D7 ,0xAF95 //HANGUL SYLLABLE SSANGKIYEOK OE IEUNG - ,0xB2D8 ,0xAF9C //HANGUL SYLLABLE SSANGKIYEOK YO - ,0xB2D9 ,0xAFB8 //HANGUL SYLLABLE SSANGKIYEOK U - ,0xB2DA ,0xAFB9 //HANGUL SYLLABLE SSANGKIYEOK U KIYEOK - ,0xB2DB ,0xAFBC //HANGUL SYLLABLE SSANGKIYEOK U NIEUN - ,0xB2DC ,0xAFC0 //HANGUL SYLLABLE SSANGKIYEOK U RIEUL - ,0xB2DD ,0xAFC7 //HANGUL SYLLABLE SSANGKIYEOK U RIEULHIEUH - ,0xB2DE ,0xAFC8 //HANGUL SYLLABLE SSANGKIYEOK U MIEUM - ,0xB2DF ,0xAFC9 //HANGUL SYLLABLE SSANGKIYEOK U PIEUP - ,0xB2E0 ,0xAFCB //HANGUL SYLLABLE SSANGKIYEOK U SIOS - ,0xB2E1 ,0xAFCD //HANGUL SYLLABLE SSANGKIYEOK U IEUNG - ,0xB2E2 ,0xAFCE //HANGUL SYLLABLE SSANGKIYEOK U CIEUC - ,0xB2E3 ,0xAFD4 //HANGUL SYLLABLE SSANGKIYEOK WEO - ,0xB2E4 ,0xAFDC //HANGUL SYLLABLE SSANGKIYEOK WEO RIEUL - ,0xB2E5 ,0xAFE8 //HANGUL SYLLABLE SSANGKIYEOK WEO SSANGSIOS - ,0xB2E6 ,0xAFE9 //HANGUL SYLLABLE SSANGKIYEOK WEO IEUNG - ,0xB2E7 ,0xAFF0 //HANGUL SYLLABLE SSANGKIYEOK WE - ,0xB2E8 ,0xAFF1 //HANGUL SYLLABLE SSANGKIYEOK WE KIYEOK - ,0xB2E9 ,0xAFF4 //HANGUL SYLLABLE SSANGKIYEOK WE NIEUN - ,0xB2EA ,0xAFF8 //HANGUL SYLLABLE SSANGKIYEOK WE RIEUL - ,0xB2EB ,0xB000 //HANGUL SYLLABLE SSANGKIYEOK WE MIEUM - ,0xB2EC ,0xB001 //HANGUL SYLLABLE SSANGKIYEOK WE PIEUP - ,0xB2ED ,0xB004 //HANGUL SYLLABLE SSANGKIYEOK WE SSANGSIOS - ,0xB2EE ,0xB00C //HANGUL SYLLABLE SSANGKIYEOK WI - ,0xB2EF ,0xB010 //HANGUL SYLLABLE SSANGKIYEOK WI NIEUN - ,0xB2F0 ,0xB014 //HANGUL SYLLABLE SSANGKIYEOK WI RIEUL - ,0xB2F1 ,0xB01C //HANGUL SYLLABLE SSANGKIYEOK WI MIEUM - ,0xB2F2 ,0xB01D //HANGUL SYLLABLE SSANGKIYEOK WI PIEUP - ,0xB2F3 ,0xB028 //HANGUL SYLLABLE SSANGKIYEOK YU - ,0xB2F4 ,0xB044 //HANGUL SYLLABLE SSANGKIYEOK EU - ,0xB2F5 ,0xB045 //HANGUL SYLLABLE SSANGKIYEOK EU KIYEOK - ,0xB2F6 ,0xB048 //HANGUL SYLLABLE SSANGKIYEOK EU NIEUN - ,0xB2F7 ,0xB04A //HANGUL SYLLABLE SSANGKIYEOK EU NIEUNHIEUH - ,0xB2F8 ,0xB04C //HANGUL SYLLABLE SSANGKIYEOK EU RIEUL - ,0xB2F9 ,0xB04E //HANGUL SYLLABLE SSANGKIYEOK EU RIEULMIEUM - ,0xB2FA ,0xB053 //HANGUL SYLLABLE SSANGKIYEOK EU RIEULHIEUH - ,0xB2FB ,0xB054 //HANGUL SYLLABLE SSANGKIYEOK EU MIEUM - ,0xB2FC ,0xB055 //HANGUL SYLLABLE SSANGKIYEOK EU PIEUP - ,0xB2FD ,0xB057 //HANGUL SYLLABLE SSANGKIYEOK EU SIOS - ,0xB2FE ,0xB059 //HANGUL SYLLABLE SSANGKIYEOK EU IEUNG - ,0xB341 ,0xCFCC //HANGUL SYLLABLE KHIEUKH YO RIEUL - ,0xB342 ,0xCFCD //HANGUL SYLLABLE KHIEUKH YO RIEULKIYEOK - ,0xB343 ,0xCFCE //HANGUL SYLLABLE KHIEUKH YO RIEULMIEUM - ,0xB344 ,0xCFCF //HANGUL SYLLABLE KHIEUKH YO RIEULPIEUP - ,0xB345 ,0xCFD0 //HANGUL SYLLABLE KHIEUKH YO RIEULSIOS - ,0xB346 ,0xCFD1 //HANGUL SYLLABLE KHIEUKH YO RIEULTHIEUTH - ,0xB347 ,0xCFD2 //HANGUL SYLLABLE KHIEUKH YO RIEULPHIEUPH - ,0xB348 ,0xCFD3 //HANGUL SYLLABLE KHIEUKH YO RIEULHIEUH - ,0xB349 ,0xCFD4 //HANGUL SYLLABLE KHIEUKH YO MIEUM - ,0xB34A ,0xCFD5 //HANGUL SYLLABLE KHIEUKH YO PIEUP - ,0xB34B ,0xCFD6 //HANGUL SYLLABLE KHIEUKH YO PIEUPSIOS - ,0xB34C ,0xCFD7 //HANGUL SYLLABLE KHIEUKH YO SIOS - ,0xB34D ,0xCFD8 //HANGUL SYLLABLE KHIEUKH YO SSANGSIOS - ,0xB34E ,0xCFD9 //HANGUL SYLLABLE KHIEUKH YO IEUNG - ,0xB34F ,0xCFDA //HANGUL SYLLABLE KHIEUKH YO CIEUC - ,0xB350 ,0xCFDB //HANGUL SYLLABLE KHIEUKH YO CHIEUCH - ,0xB351 ,0xCFDC //HANGUL SYLLABLE KHIEUKH YO KHIEUKH - ,0xB352 ,0xCFDD //HANGUL SYLLABLE KHIEUKH YO THIEUTH - ,0xB353 ,0xCFDE //HANGUL SYLLABLE KHIEUKH YO PHIEUPH - ,0xB354 ,0xCFDF //HANGUL SYLLABLE KHIEUKH YO HIEUH - ,0xB355 ,0xCFE2 //HANGUL SYLLABLE KHIEUKH U SSANGKIYEOK - ,0xB356 ,0xCFE3 //HANGUL SYLLABLE KHIEUKH U KIYEOKSIOS - ,0xB357 ,0xCFE5 //HANGUL SYLLABLE KHIEUKH U NIEUNCIEUC - ,0xB358 ,0xCFE6 //HANGUL SYLLABLE KHIEUKH U NIEUNHIEUH - ,0xB359 ,0xCFE7 //HANGUL SYLLABLE KHIEUKH U TIKEUT - ,0xB35A ,0xCFE9 //HANGUL SYLLABLE KHIEUKH U RIEULKIYEOK - ,0xB361 ,0xCFEA //HANGUL SYLLABLE KHIEUKH U RIEULMIEUM - ,0xB362 ,0xCFEB //HANGUL SYLLABLE KHIEUKH U RIEULPIEUP - ,0xB363 ,0xCFEC //HANGUL SYLLABLE KHIEUKH U RIEULSIOS - ,0xB364 ,0xCFED //HANGUL SYLLABLE KHIEUKH U RIEULTHIEUTH - ,0xB365 ,0xCFEE //HANGUL SYLLABLE KHIEUKH U RIEULPHIEUPH - ,0xB366 ,0xCFEF //HANGUL SYLLABLE KHIEUKH U RIEULHIEUH - ,0xB367 ,0xCFF2 //HANGUL SYLLABLE KHIEUKH U PIEUPSIOS - ,0xB368 ,0xCFF4 //HANGUL SYLLABLE KHIEUKH U SSANGSIOS - ,0xB369 ,0xCFF6 //HANGUL SYLLABLE KHIEUKH U CIEUC - ,0xB36A ,0xCFF7 //HANGUL SYLLABLE KHIEUKH U CHIEUCH - ,0xB36B ,0xCFF8 //HANGUL SYLLABLE KHIEUKH U KHIEUKH - ,0xB36C ,0xCFF9 //HANGUL SYLLABLE KHIEUKH U THIEUTH - ,0xB36D ,0xCFFA //HANGUL SYLLABLE KHIEUKH U PHIEUPH - ,0xB36E ,0xCFFB //HANGUL SYLLABLE KHIEUKH U HIEUH - ,0xB36F ,0xCFFD //HANGUL SYLLABLE KHIEUKH WEO KIYEOK - ,0xB370 ,0xCFFE //HANGUL SYLLABLE KHIEUKH WEO SSANGKIYEOK - ,0xB371 ,0xCFFF //HANGUL SYLLABLE KHIEUKH WEO KIYEOKSIOS - ,0xB372 ,0xD001 //HANGUL SYLLABLE KHIEUKH WEO NIEUNCIEUC - ,0xB373 ,0xD002 //HANGUL SYLLABLE KHIEUKH WEO NIEUNHIEUH - ,0xB374 ,0xD003 //HANGUL SYLLABLE KHIEUKH WEO TIKEUT - ,0xB375 ,0xD005 //HANGUL SYLLABLE KHIEUKH WEO RIEULKIYEOK - ,0xB376 ,0xD006 //HANGUL SYLLABLE KHIEUKH WEO RIEULMIEUM - ,0xB377 ,0xD007 //HANGUL SYLLABLE KHIEUKH WEO RIEULPIEUP - ,0xB378 ,0xD008 //HANGUL SYLLABLE KHIEUKH WEO RIEULSIOS - ,0xB379 ,0xD009 //HANGUL SYLLABLE KHIEUKH WEO RIEULTHIEUTH - ,0xB37A ,0xD00A //HANGUL SYLLABLE KHIEUKH WEO RIEULPHIEUPH - ,0xB381 ,0xD00B //HANGUL SYLLABLE KHIEUKH WEO RIEULHIEUH - ,0xB382 ,0xD00C //HANGUL SYLLABLE KHIEUKH WEO MIEUM - ,0xB383 ,0xD00D //HANGUL SYLLABLE KHIEUKH WEO PIEUP - ,0xB384 ,0xD00E //HANGUL SYLLABLE KHIEUKH WEO PIEUPSIOS - ,0xB385 ,0xD00F //HANGUL SYLLABLE KHIEUKH WEO SIOS - ,0xB386 ,0xD010 //HANGUL SYLLABLE KHIEUKH WEO SSANGSIOS - ,0xB387 ,0xD012 //HANGUL SYLLABLE KHIEUKH WEO CIEUC - ,0xB388 ,0xD013 //HANGUL SYLLABLE KHIEUKH WEO CHIEUCH - ,0xB389 ,0xD014 //HANGUL SYLLABLE KHIEUKH WEO KHIEUKH - ,0xB38A ,0xD015 //HANGUL SYLLABLE KHIEUKH WEO THIEUTH - ,0xB38B ,0xD016 //HANGUL SYLLABLE KHIEUKH WEO PHIEUPH - ,0xB38C ,0xD017 //HANGUL SYLLABLE KHIEUKH WEO HIEUH - ,0xB38D ,0xD019 //HANGUL SYLLABLE KHIEUKH WE KIYEOK - ,0xB38E ,0xD01A //HANGUL SYLLABLE KHIEUKH WE SSANGKIYEOK - ,0xB38F ,0xD01B //HANGUL SYLLABLE KHIEUKH WE KIYEOKSIOS - ,0xB390 ,0xD01C //HANGUL SYLLABLE KHIEUKH WE NIEUN - ,0xB391 ,0xD01D //HANGUL SYLLABLE KHIEUKH WE NIEUNCIEUC - ,0xB392 ,0xD01E //HANGUL SYLLABLE KHIEUKH WE NIEUNHIEUH - ,0xB393 ,0xD01F //HANGUL SYLLABLE KHIEUKH WE TIKEUT - ,0xB394 ,0xD020 //HANGUL SYLLABLE KHIEUKH WE RIEUL - ,0xB395 ,0xD021 //HANGUL SYLLABLE KHIEUKH WE RIEULKIYEOK - ,0xB396 ,0xD022 //HANGUL SYLLABLE KHIEUKH WE RIEULMIEUM - ,0xB397 ,0xD023 //HANGUL SYLLABLE KHIEUKH WE RIEULPIEUP - ,0xB398 ,0xD024 //HANGUL SYLLABLE KHIEUKH WE RIEULSIOS - ,0xB399 ,0xD025 //HANGUL SYLLABLE KHIEUKH WE RIEULTHIEUTH - ,0xB39A ,0xD026 //HANGUL SYLLABLE KHIEUKH WE RIEULPHIEUPH - ,0xB39B ,0xD027 //HANGUL SYLLABLE KHIEUKH WE RIEULHIEUH - ,0xB39C ,0xD028 //HANGUL SYLLABLE KHIEUKH WE MIEUM - ,0xB39D ,0xD029 //HANGUL SYLLABLE KHIEUKH WE PIEUP - ,0xB39E ,0xD02A //HANGUL SYLLABLE KHIEUKH WE PIEUPSIOS - ,0xB39F ,0xD02B //HANGUL SYLLABLE KHIEUKH WE SIOS - ,0xB3A0 ,0xD02C //HANGUL SYLLABLE KHIEUKH WE SSANGSIOS - ,0xB3A1 ,0xB05D //HANGUL SYLLABLE SSANGKIYEOK EU THIEUTH - ,0xB3A2 ,0xB07C //HANGUL SYLLABLE SSANGKIYEOK I - ,0xB3A3 ,0xB07D //HANGUL SYLLABLE SSANGKIYEOK I KIYEOK - ,0xB3A4 ,0xB080 //HANGUL SYLLABLE SSANGKIYEOK I NIEUN - ,0xB3A5 ,0xB084 //HANGUL SYLLABLE SSANGKIYEOK I RIEUL - ,0xB3A6 ,0xB08C //HANGUL SYLLABLE SSANGKIYEOK I MIEUM - ,0xB3A7 ,0xB08D //HANGUL SYLLABLE SSANGKIYEOK I PIEUP - ,0xB3A8 ,0xB08F //HANGUL SYLLABLE SSANGKIYEOK I SIOS - ,0xB3A9 ,0xB091 //HANGUL SYLLABLE SSANGKIYEOK I IEUNG - ,0xB3AA ,0xB098 //HANGUL SYLLABLE NIEUN A - ,0xB3AB ,0xB099 //HANGUL SYLLABLE NIEUN A KIYEOK - ,0xB3AC ,0xB09A //HANGUL SYLLABLE NIEUN A SSANGKIYEOK - ,0xB3AD ,0xB09C //HANGUL SYLLABLE NIEUN A NIEUN - ,0xB3AE ,0xB09F //HANGUL SYLLABLE NIEUN A TIKEUT - ,0xB3AF ,0xB0A0 //HANGUL SYLLABLE NIEUN A RIEUL - ,0xB3B0 ,0xB0A1 //HANGUL SYLLABLE NIEUN A RIEULKIYEOK - ,0xB3B1 ,0xB0A2 //HANGUL SYLLABLE NIEUN A RIEULMIEUM - ,0xB3B2 ,0xB0A8 //HANGUL SYLLABLE NIEUN A MIEUM - ,0xB3B3 ,0xB0A9 //HANGUL SYLLABLE NIEUN A PIEUP - ,0xB3B4 ,0xB0AB //HANGUL SYLLABLE NIEUN A SIOS - ,0xB3B5 ,0xB0AC //HANGUL SYLLABLE NIEUN A SSANGSIOS - ,0xB3B6 ,0xB0AD //HANGUL SYLLABLE NIEUN A IEUNG - ,0xB3B7 ,0xB0AE //HANGUL SYLLABLE NIEUN A CIEUC - ,0xB3B8 ,0xB0AF //HANGUL SYLLABLE NIEUN A CHIEUCH - ,0xB3B9 ,0xB0B1 //HANGUL SYLLABLE NIEUN A THIEUTH - ,0xB3BA ,0xB0B3 //HANGUL SYLLABLE NIEUN A HIEUH - ,0xB3BB ,0xB0B4 //HANGUL SYLLABLE NIEUN AE - ,0xB3BC ,0xB0B5 //HANGUL SYLLABLE NIEUN AE KIYEOK - ,0xB3BD ,0xB0B8 //HANGUL SYLLABLE NIEUN AE NIEUN - ,0xB3BE ,0xB0BC //HANGUL SYLLABLE NIEUN AE RIEUL - ,0xB3BF ,0xB0C4 //HANGUL SYLLABLE NIEUN AE MIEUM - ,0xB3C0 ,0xB0C5 //HANGUL SYLLABLE NIEUN AE PIEUP - ,0xB3C1 ,0xB0C7 //HANGUL SYLLABLE NIEUN AE SIOS - ,0xB3C2 ,0xB0C8 //HANGUL SYLLABLE NIEUN AE SSANGSIOS - ,0xB3C3 ,0xB0C9 //HANGUL SYLLABLE NIEUN AE IEUNG - ,0xB3C4 ,0xB0D0 //HANGUL SYLLABLE NIEUN YA - ,0xB3C5 ,0xB0D1 //HANGUL SYLLABLE NIEUN YA KIYEOK - ,0xB3C6 ,0xB0D4 //HANGUL SYLLABLE NIEUN YA NIEUN - ,0xB3C7 ,0xB0D8 //HANGUL SYLLABLE NIEUN YA RIEUL - ,0xB3C8 ,0xB0E0 //HANGUL SYLLABLE NIEUN YA MIEUM - ,0xB3C9 ,0xB0E5 //HANGUL SYLLABLE NIEUN YA IEUNG - ,0xB3CA ,0xB108 //HANGUL SYLLABLE NIEUN EO - ,0xB3CB ,0xB109 //HANGUL SYLLABLE NIEUN EO KIYEOK - ,0xB3CC ,0xB10B //HANGUL SYLLABLE NIEUN EO KIYEOKSIOS - ,0xB3CD ,0xB10C //HANGUL SYLLABLE NIEUN EO NIEUN - ,0xB3CE ,0xB110 //HANGUL SYLLABLE NIEUN EO RIEUL - ,0xB3CF ,0xB112 //HANGUL SYLLABLE NIEUN EO RIEULMIEUM - ,0xB3D0 ,0xB113 //HANGUL SYLLABLE NIEUN EO RIEULPIEUP - ,0xB3D1 ,0xB118 //HANGUL SYLLABLE NIEUN EO MIEUM - ,0xB3D2 ,0xB119 //HANGUL SYLLABLE NIEUN EO PIEUP - ,0xB3D3 ,0xB11B //HANGUL SYLLABLE NIEUN EO SIOS - ,0xB3D4 ,0xB11C //HANGUL SYLLABLE NIEUN EO SSANGSIOS - ,0xB3D5 ,0xB11D //HANGUL SYLLABLE NIEUN EO IEUNG - ,0xB3D6 ,0xB123 //HANGUL SYLLABLE NIEUN EO HIEUH - ,0xB3D7 ,0xB124 //HANGUL SYLLABLE NIEUN E - ,0xB3D8 ,0xB125 //HANGUL SYLLABLE NIEUN E KIYEOK - ,0xB3D9 ,0xB128 //HANGUL SYLLABLE NIEUN E NIEUN - ,0xB3DA ,0xB12C //HANGUL SYLLABLE NIEUN E RIEUL - ,0xB3DB ,0xB134 //HANGUL SYLLABLE NIEUN E MIEUM - ,0xB3DC ,0xB135 //HANGUL SYLLABLE NIEUN E PIEUP - ,0xB3DD ,0xB137 //HANGUL SYLLABLE NIEUN E SIOS - ,0xB3DE ,0xB138 //HANGUL SYLLABLE NIEUN E SSANGSIOS - ,0xB3DF ,0xB139 //HANGUL SYLLABLE NIEUN E IEUNG - ,0xB3E0 ,0xB140 //HANGUL SYLLABLE NIEUN YEO - ,0xB3E1 ,0xB141 //HANGUL SYLLABLE NIEUN YEO KIYEOK - ,0xB3E2 ,0xB144 //HANGUL SYLLABLE NIEUN YEO NIEUN - ,0xB3E3 ,0xB148 //HANGUL SYLLABLE NIEUN YEO RIEUL - ,0xB3E4 ,0xB150 //HANGUL SYLLABLE NIEUN YEO MIEUM - ,0xB3E5 ,0xB151 //HANGUL SYLLABLE NIEUN YEO PIEUP - ,0xB3E6 ,0xB154 //HANGUL SYLLABLE NIEUN YEO SSANGSIOS - ,0xB3E7 ,0xB155 //HANGUL SYLLABLE NIEUN YEO IEUNG - ,0xB3E8 ,0xB158 //HANGUL SYLLABLE NIEUN YEO KHIEUKH - ,0xB3E9 ,0xB15C //HANGUL SYLLABLE NIEUN YE - ,0xB3EA ,0xB160 //HANGUL SYLLABLE NIEUN YE NIEUN - ,0xB3EB ,0xB178 //HANGUL SYLLABLE NIEUN O - ,0xB3EC ,0xB179 //HANGUL SYLLABLE NIEUN O KIYEOK - ,0xB3ED ,0xB17C //HANGUL SYLLABLE NIEUN O NIEUN - ,0xB3EE ,0xB180 //HANGUL SYLLABLE NIEUN O RIEUL - ,0xB3EF ,0xB182 //HANGUL SYLLABLE NIEUN O RIEULMIEUM - ,0xB3F0 ,0xB188 //HANGUL SYLLABLE NIEUN O MIEUM - ,0xB3F1 ,0xB189 //HANGUL SYLLABLE NIEUN O PIEUP - ,0xB3F2 ,0xB18B //HANGUL SYLLABLE NIEUN O SIOS - ,0xB3F3 ,0xB18D //HANGUL SYLLABLE NIEUN O IEUNG - ,0xB3F4 ,0xB192 //HANGUL SYLLABLE NIEUN O PHIEUPH - ,0xB3F5 ,0xB193 //HANGUL SYLLABLE NIEUN O HIEUH - ,0xB3F6 ,0xB194 //HANGUL SYLLABLE NIEUN WA - ,0xB3F7 ,0xB198 //HANGUL SYLLABLE NIEUN WA NIEUN - ,0xB3F8 ,0xB19C //HANGUL SYLLABLE NIEUN WA RIEUL - ,0xB3F9 ,0xB1A8 //HANGUL SYLLABLE NIEUN WA SSANGSIOS - ,0xB3FA ,0xB1CC //HANGUL SYLLABLE NIEUN OE - ,0xB3FB ,0xB1D0 //HANGUL SYLLABLE NIEUN OE NIEUN - ,0xB3FC ,0xB1D4 //HANGUL SYLLABLE NIEUN OE RIEUL - ,0xB3FD ,0xB1DC //HANGUL SYLLABLE NIEUN OE MIEUM - ,0xB3FE ,0xB1DD //HANGUL SYLLABLE NIEUN OE PIEUP - ,0xB441 ,0xD02E //HANGUL SYLLABLE KHIEUKH WE CIEUC - ,0xB442 ,0xD02F //HANGUL SYLLABLE KHIEUKH WE CHIEUCH - ,0xB443 ,0xD030 //HANGUL SYLLABLE KHIEUKH WE KHIEUKH - ,0xB444 ,0xD031 //HANGUL SYLLABLE KHIEUKH WE THIEUTH - ,0xB445 ,0xD032 //HANGUL SYLLABLE KHIEUKH WE PHIEUPH - ,0xB446 ,0xD033 //HANGUL SYLLABLE KHIEUKH WE HIEUH - ,0xB447 ,0xD036 //HANGUL SYLLABLE KHIEUKH WI SSANGKIYEOK - ,0xB448 ,0xD037 //HANGUL SYLLABLE KHIEUKH WI KIYEOKSIOS - ,0xB449 ,0xD039 //HANGUL SYLLABLE KHIEUKH WI NIEUNCIEUC - ,0xB44A ,0xD03A //HANGUL SYLLABLE KHIEUKH WI NIEUNHIEUH - ,0xB44B ,0xD03B //HANGUL SYLLABLE KHIEUKH WI TIKEUT - ,0xB44C ,0xD03D //HANGUL SYLLABLE KHIEUKH WI RIEULKIYEOK - ,0xB44D ,0xD03E //HANGUL SYLLABLE KHIEUKH WI RIEULMIEUM - ,0xB44E ,0xD03F //HANGUL SYLLABLE KHIEUKH WI RIEULPIEUP - ,0xB44F ,0xD040 //HANGUL SYLLABLE KHIEUKH WI RIEULSIOS - ,0xB450 ,0xD041 //HANGUL SYLLABLE KHIEUKH WI RIEULTHIEUTH - ,0xB451 ,0xD042 //HANGUL SYLLABLE KHIEUKH WI RIEULPHIEUPH - ,0xB452 ,0xD043 //HANGUL SYLLABLE KHIEUKH WI RIEULHIEUH - ,0xB453 ,0xD046 //HANGUL SYLLABLE KHIEUKH WI PIEUPSIOS - ,0xB454 ,0xD048 //HANGUL SYLLABLE KHIEUKH WI SSANGSIOS - ,0xB455 ,0xD04A //HANGUL SYLLABLE KHIEUKH WI CIEUC - ,0xB456 ,0xD04B //HANGUL SYLLABLE KHIEUKH WI CHIEUCH - ,0xB457 ,0xD04C //HANGUL SYLLABLE KHIEUKH WI KHIEUKH - ,0xB458 ,0xD04D //HANGUL SYLLABLE KHIEUKH WI THIEUTH - ,0xB459 ,0xD04E //HANGUL SYLLABLE KHIEUKH WI PHIEUPH - ,0xB45A ,0xD04F //HANGUL SYLLABLE KHIEUKH WI HIEUH - ,0xB461 ,0xD051 //HANGUL SYLLABLE KHIEUKH YU KIYEOK - ,0xB462 ,0xD052 //HANGUL SYLLABLE KHIEUKH YU SSANGKIYEOK - ,0xB463 ,0xD053 //HANGUL SYLLABLE KHIEUKH YU KIYEOKSIOS - ,0xB464 ,0xD055 //HANGUL SYLLABLE KHIEUKH YU NIEUNCIEUC - ,0xB465 ,0xD056 //HANGUL SYLLABLE KHIEUKH YU NIEUNHIEUH - ,0xB466 ,0xD057 //HANGUL SYLLABLE KHIEUKH YU TIKEUT - ,0xB467 ,0xD059 //HANGUL SYLLABLE KHIEUKH YU RIEULKIYEOK - ,0xB468 ,0xD05A //HANGUL SYLLABLE KHIEUKH YU RIEULMIEUM - ,0xB469 ,0xD05B //HANGUL SYLLABLE KHIEUKH YU RIEULPIEUP - ,0xB46A ,0xD05C //HANGUL SYLLABLE KHIEUKH YU RIEULSIOS - ,0xB46B ,0xD05D //HANGUL SYLLABLE KHIEUKH YU RIEULTHIEUTH - ,0xB46C ,0xD05E //HANGUL SYLLABLE KHIEUKH YU RIEULPHIEUPH - ,0xB46D ,0xD05F //HANGUL SYLLABLE KHIEUKH YU RIEULHIEUH - ,0xB46E ,0xD061 //HANGUL SYLLABLE KHIEUKH YU PIEUP - ,0xB46F ,0xD062 //HANGUL SYLLABLE KHIEUKH YU PIEUPSIOS - ,0xB470 ,0xD063 //HANGUL SYLLABLE KHIEUKH YU SIOS - ,0xB471 ,0xD064 //HANGUL SYLLABLE KHIEUKH YU SSANGSIOS - ,0xB472 ,0xD065 //HANGUL SYLLABLE KHIEUKH YU IEUNG - ,0xB473 ,0xD066 //HANGUL SYLLABLE KHIEUKH YU CIEUC - ,0xB474 ,0xD067 //HANGUL SYLLABLE KHIEUKH YU CHIEUCH - ,0xB475 ,0xD068 //HANGUL SYLLABLE KHIEUKH YU KHIEUKH - ,0xB476 ,0xD069 //HANGUL SYLLABLE KHIEUKH YU THIEUTH - ,0xB477 ,0xD06A //HANGUL SYLLABLE KHIEUKH YU PHIEUPH - ,0xB478 ,0xD06B //HANGUL SYLLABLE KHIEUKH YU HIEUH - ,0xB479 ,0xD06E //HANGUL SYLLABLE KHIEUKH EU SSANGKIYEOK - ,0xB47A ,0xD06F //HANGUL SYLLABLE KHIEUKH EU KIYEOKSIOS - ,0xB481 ,0xD071 //HANGUL SYLLABLE KHIEUKH EU NIEUNCIEUC - ,0xB482 ,0xD072 //HANGUL SYLLABLE KHIEUKH EU NIEUNHIEUH - ,0xB483 ,0xD073 //HANGUL SYLLABLE KHIEUKH EU TIKEUT - ,0xB484 ,0xD075 //HANGUL SYLLABLE KHIEUKH EU RIEULKIYEOK - ,0xB485 ,0xD076 //HANGUL SYLLABLE KHIEUKH EU RIEULMIEUM - ,0xB486 ,0xD077 //HANGUL SYLLABLE KHIEUKH EU RIEULPIEUP - ,0xB487 ,0xD078 //HANGUL SYLLABLE KHIEUKH EU RIEULSIOS - ,0xB488 ,0xD079 //HANGUL SYLLABLE KHIEUKH EU RIEULTHIEUTH - ,0xB489 ,0xD07A //HANGUL SYLLABLE KHIEUKH EU RIEULPHIEUPH - ,0xB48A ,0xD07B //HANGUL SYLLABLE KHIEUKH EU RIEULHIEUH - ,0xB48B ,0xD07E //HANGUL SYLLABLE KHIEUKH EU PIEUPSIOS - ,0xB48C ,0xD07F //HANGUL SYLLABLE KHIEUKH EU SIOS - ,0xB48D ,0xD080 //HANGUL SYLLABLE KHIEUKH EU SSANGSIOS - ,0xB48E ,0xD082 //HANGUL SYLLABLE KHIEUKH EU CIEUC - ,0xB48F ,0xD083 //HANGUL SYLLABLE KHIEUKH EU CHIEUCH - ,0xB490 ,0xD084 //HANGUL SYLLABLE KHIEUKH EU KHIEUKH - ,0xB491 ,0xD085 //HANGUL SYLLABLE KHIEUKH EU THIEUTH - ,0xB492 ,0xD086 //HANGUL SYLLABLE KHIEUKH EU PHIEUPH - ,0xB493 ,0xD087 //HANGUL SYLLABLE KHIEUKH EU HIEUH - ,0xB494 ,0xD088 //HANGUL SYLLABLE KHIEUKH YI - ,0xB495 ,0xD089 //HANGUL SYLLABLE KHIEUKH YI KIYEOK - ,0xB496 ,0xD08A //HANGUL SYLLABLE KHIEUKH YI SSANGKIYEOK - ,0xB497 ,0xD08B //HANGUL SYLLABLE KHIEUKH YI KIYEOKSIOS - ,0xB498 ,0xD08C //HANGUL SYLLABLE KHIEUKH YI NIEUN - ,0xB499 ,0xD08D //HANGUL SYLLABLE KHIEUKH YI NIEUNCIEUC - ,0xB49A ,0xD08E //HANGUL SYLLABLE KHIEUKH YI NIEUNHIEUH - ,0xB49B ,0xD08F //HANGUL SYLLABLE KHIEUKH YI TIKEUT - ,0xB49C ,0xD090 //HANGUL SYLLABLE KHIEUKH YI RIEUL - ,0xB49D ,0xD091 //HANGUL SYLLABLE KHIEUKH YI RIEULKIYEOK - ,0xB49E ,0xD092 //HANGUL SYLLABLE KHIEUKH YI RIEULMIEUM - ,0xB49F ,0xD093 //HANGUL SYLLABLE KHIEUKH YI RIEULPIEUP - ,0xB4A0 ,0xD094 //HANGUL SYLLABLE KHIEUKH YI RIEULSIOS - ,0xB4A1 ,0xB1DF //HANGUL SYLLABLE NIEUN OE SIOS - ,0xB4A2 ,0xB1E8 //HANGUL SYLLABLE NIEUN YO - ,0xB4A3 ,0xB1E9 //HANGUL SYLLABLE NIEUN YO KIYEOK - ,0xB4A4 ,0xB1EC //HANGUL SYLLABLE NIEUN YO NIEUN - ,0xB4A5 ,0xB1F0 //HANGUL SYLLABLE NIEUN YO RIEUL - ,0xB4A6 ,0xB1F9 //HANGUL SYLLABLE NIEUN YO PIEUP - ,0xB4A7 ,0xB1FB //HANGUL SYLLABLE NIEUN YO SIOS - ,0xB4A8 ,0xB1FD //HANGUL SYLLABLE NIEUN YO IEUNG - ,0xB4A9 ,0xB204 //HANGUL SYLLABLE NIEUN U - ,0xB4AA ,0xB205 //HANGUL SYLLABLE NIEUN U KIYEOK - ,0xB4AB ,0xB208 //HANGUL SYLLABLE NIEUN U NIEUN - ,0xB4AC ,0xB20B //HANGUL SYLLABLE NIEUN U TIKEUT - ,0xB4AD ,0xB20C //HANGUL SYLLABLE NIEUN U RIEUL - ,0xB4AE ,0xB214 //HANGUL SYLLABLE NIEUN U MIEUM - ,0xB4AF ,0xB215 //HANGUL SYLLABLE NIEUN U PIEUP - ,0xB4B0 ,0xB217 //HANGUL SYLLABLE NIEUN U SIOS - ,0xB4B1 ,0xB219 //HANGUL SYLLABLE NIEUN U IEUNG - ,0xB4B2 ,0xB220 //HANGUL SYLLABLE NIEUN WEO - ,0xB4B3 ,0xB234 //HANGUL SYLLABLE NIEUN WEO SSANGSIOS - ,0xB4B4 ,0xB23C //HANGUL SYLLABLE NIEUN WE - ,0xB4B5 ,0xB258 //HANGUL SYLLABLE NIEUN WI - ,0xB4B6 ,0xB25C //HANGUL SYLLABLE NIEUN WI NIEUN - ,0xB4B7 ,0xB260 //HANGUL SYLLABLE NIEUN WI RIEUL - ,0xB4B8 ,0xB268 //HANGUL SYLLABLE NIEUN WI MIEUM - ,0xB4B9 ,0xB269 //HANGUL SYLLABLE NIEUN WI PIEUP - ,0xB4BA ,0xB274 //HANGUL SYLLABLE NIEUN YU - ,0xB4BB ,0xB275 //HANGUL SYLLABLE NIEUN YU KIYEOK - ,0xB4BC ,0xB27C //HANGUL SYLLABLE NIEUN YU RIEUL - ,0xB4BD ,0xB284 //HANGUL SYLLABLE NIEUN YU MIEUM - ,0xB4BE ,0xB285 //HANGUL SYLLABLE NIEUN YU PIEUP - ,0xB4BF ,0xB289 //HANGUL SYLLABLE NIEUN YU IEUNG - ,0xB4C0 ,0xB290 //HANGUL SYLLABLE NIEUN EU - ,0xB4C1 ,0xB291 //HANGUL SYLLABLE NIEUN EU KIYEOK - ,0xB4C2 ,0xB294 //HANGUL SYLLABLE NIEUN EU NIEUN - ,0xB4C3 ,0xB298 //HANGUL SYLLABLE NIEUN EU RIEUL - ,0xB4C4 ,0xB299 //HANGUL SYLLABLE NIEUN EU RIEULKIYEOK - ,0xB4C5 ,0xB29A //HANGUL SYLLABLE NIEUN EU RIEULMIEUM - ,0xB4C6 ,0xB2A0 //HANGUL SYLLABLE NIEUN EU MIEUM - ,0xB4C7 ,0xB2A1 //HANGUL SYLLABLE NIEUN EU PIEUP - ,0xB4C8 ,0xB2A3 //HANGUL SYLLABLE NIEUN EU SIOS - ,0xB4C9 ,0xB2A5 //HANGUL SYLLABLE NIEUN EU IEUNG - ,0xB4CA ,0xB2A6 //HANGUL SYLLABLE NIEUN EU CIEUC - ,0xB4CB ,0xB2AA //HANGUL SYLLABLE NIEUN EU PHIEUPH - ,0xB4CC ,0xB2AC //HANGUL SYLLABLE NIEUN YI - ,0xB4CD ,0xB2B0 //HANGUL SYLLABLE NIEUN YI NIEUN - ,0xB4CE ,0xB2B4 //HANGUL SYLLABLE NIEUN YI RIEUL - ,0xB4CF ,0xB2C8 //HANGUL SYLLABLE NIEUN I - ,0xB4D0 ,0xB2C9 //HANGUL SYLLABLE NIEUN I KIYEOK - ,0xB4D1 ,0xB2CC //HANGUL SYLLABLE NIEUN I NIEUN - ,0xB4D2 ,0xB2D0 //HANGUL SYLLABLE NIEUN I RIEUL - ,0xB4D3 ,0xB2D2 //HANGUL SYLLABLE NIEUN I RIEULMIEUM - ,0xB4D4 ,0xB2D8 //HANGUL SYLLABLE NIEUN I MIEUM - ,0xB4D5 ,0xB2D9 //HANGUL SYLLABLE NIEUN I PIEUP - ,0xB4D6 ,0xB2DB //HANGUL SYLLABLE NIEUN I SIOS - ,0xB4D7 ,0xB2DD //HANGUL SYLLABLE NIEUN I IEUNG - ,0xB4D8 ,0xB2E2 //HANGUL SYLLABLE NIEUN I PHIEUPH - ,0xB4D9 ,0xB2E4 //HANGUL SYLLABLE TIKEUT A - ,0xB4DA ,0xB2E5 //HANGUL SYLLABLE TIKEUT A KIYEOK - ,0xB4DB ,0xB2E6 //HANGUL SYLLABLE TIKEUT A SSANGKIYEOK - ,0xB4DC ,0xB2E8 //HANGUL SYLLABLE TIKEUT A NIEUN - ,0xB4DD ,0xB2EB //HANGUL SYLLABLE TIKEUT A TIKEUT - ,0xB4DE ,0xB2EC //HANGUL SYLLABLE TIKEUT A RIEUL - ,0xB4DF ,0xB2ED //HANGUL SYLLABLE TIKEUT A RIEULKIYEOK - ,0xB4E0 ,0xB2EE //HANGUL SYLLABLE TIKEUT A RIEULMIEUM - ,0xB4E1 ,0xB2EF //HANGUL SYLLABLE TIKEUT A RIEULPIEUP - ,0xB4E2 ,0xB2F3 //HANGUL SYLLABLE TIKEUT A RIEULHIEUH - ,0xB4E3 ,0xB2F4 //HANGUL SYLLABLE TIKEUT A MIEUM - ,0xB4E4 ,0xB2F5 //HANGUL SYLLABLE TIKEUT A PIEUP - ,0xB4E5 ,0xB2F7 //HANGUL SYLLABLE TIKEUT A SIOS - ,0xB4E6 ,0xB2F8 //HANGUL SYLLABLE TIKEUT A SSANGSIOS - ,0xB4E7 ,0xB2F9 //HANGUL SYLLABLE TIKEUT A IEUNG - ,0xB4E8 ,0xB2FA //HANGUL SYLLABLE TIKEUT A CIEUC - ,0xB4E9 ,0xB2FB //HANGUL SYLLABLE TIKEUT A CHIEUCH - ,0xB4EA ,0xB2FF //HANGUL SYLLABLE TIKEUT A HIEUH - ,0xB4EB ,0xB300 //HANGUL SYLLABLE TIKEUT AE - ,0xB4EC ,0xB301 //HANGUL SYLLABLE TIKEUT AE KIYEOK - ,0xB4ED ,0xB304 //HANGUL SYLLABLE TIKEUT AE NIEUN - ,0xB4EE ,0xB308 //HANGUL SYLLABLE TIKEUT AE RIEUL - ,0xB4EF ,0xB310 //HANGUL SYLLABLE TIKEUT AE MIEUM - ,0xB4F0 ,0xB311 //HANGUL SYLLABLE TIKEUT AE PIEUP - ,0xB4F1 ,0xB313 //HANGUL SYLLABLE TIKEUT AE SIOS - ,0xB4F2 ,0xB314 //HANGUL SYLLABLE TIKEUT AE SSANGSIOS - ,0xB4F3 ,0xB315 //HANGUL SYLLABLE TIKEUT AE IEUNG - ,0xB4F4 ,0xB31C //HANGUL SYLLABLE TIKEUT YA - ,0xB4F5 ,0xB354 //HANGUL SYLLABLE TIKEUT EO - ,0xB4F6 ,0xB355 //HANGUL SYLLABLE TIKEUT EO KIYEOK - ,0xB4F7 ,0xB356 //HANGUL SYLLABLE TIKEUT EO SSANGKIYEOK - ,0xB4F8 ,0xB358 //HANGUL SYLLABLE TIKEUT EO NIEUN - ,0xB4F9 ,0xB35B //HANGUL SYLLABLE TIKEUT EO TIKEUT - ,0xB4FA ,0xB35C //HANGUL SYLLABLE TIKEUT EO RIEUL - ,0xB4FB ,0xB35E //HANGUL SYLLABLE TIKEUT EO RIEULMIEUM - ,0xB4FC ,0xB35F //HANGUL SYLLABLE TIKEUT EO RIEULPIEUP - ,0xB4FD ,0xB364 //HANGUL SYLLABLE TIKEUT EO MIEUM - ,0xB4FE ,0xB365 //HANGUL SYLLABLE TIKEUT EO PIEUP - ,0xB541 ,0xD095 //HANGUL SYLLABLE KHIEUKH YI RIEULTHIEUTH - ,0xB542 ,0xD096 //HANGUL SYLLABLE KHIEUKH YI RIEULPHIEUPH - ,0xB543 ,0xD097 //HANGUL SYLLABLE KHIEUKH YI RIEULHIEUH - ,0xB544 ,0xD098 //HANGUL SYLLABLE KHIEUKH YI MIEUM - ,0xB545 ,0xD099 //HANGUL SYLLABLE KHIEUKH YI PIEUP - ,0xB546 ,0xD09A //HANGUL SYLLABLE KHIEUKH YI PIEUPSIOS - ,0xB547 ,0xD09B //HANGUL SYLLABLE KHIEUKH YI SIOS - ,0xB548 ,0xD09C //HANGUL SYLLABLE KHIEUKH YI SSANGSIOS - ,0xB549 ,0xD09D //HANGUL SYLLABLE KHIEUKH YI IEUNG - ,0xB54A ,0xD09E //HANGUL SYLLABLE KHIEUKH YI CIEUC - ,0xB54B ,0xD09F //HANGUL SYLLABLE KHIEUKH YI CHIEUCH - ,0xB54C ,0xD0A0 //HANGUL SYLLABLE KHIEUKH YI KHIEUKH - ,0xB54D ,0xD0A1 //HANGUL SYLLABLE KHIEUKH YI THIEUTH - ,0xB54E ,0xD0A2 //HANGUL SYLLABLE KHIEUKH YI PHIEUPH - ,0xB54F ,0xD0A3 //HANGUL SYLLABLE KHIEUKH YI HIEUH - ,0xB550 ,0xD0A6 //HANGUL SYLLABLE KHIEUKH I SSANGKIYEOK - ,0xB551 ,0xD0A7 //HANGUL SYLLABLE KHIEUKH I KIYEOKSIOS - ,0xB552 ,0xD0A9 //HANGUL SYLLABLE KHIEUKH I NIEUNCIEUC - ,0xB553 ,0xD0AA //HANGUL SYLLABLE KHIEUKH I NIEUNHIEUH - ,0xB554 ,0xD0AB //HANGUL SYLLABLE KHIEUKH I TIKEUT - ,0xB555 ,0xD0AD //HANGUL SYLLABLE KHIEUKH I RIEULKIYEOK - ,0xB556 ,0xD0AE //HANGUL SYLLABLE KHIEUKH I RIEULMIEUM - ,0xB557 ,0xD0AF //HANGUL SYLLABLE KHIEUKH I RIEULPIEUP - ,0xB558 ,0xD0B0 //HANGUL SYLLABLE KHIEUKH I RIEULSIOS - ,0xB559 ,0xD0B1 //HANGUL SYLLABLE KHIEUKH I RIEULTHIEUTH - ,0xB55A ,0xD0B2 //HANGUL SYLLABLE KHIEUKH I RIEULPHIEUPH - ,0xB561 ,0xD0B3 //HANGUL SYLLABLE KHIEUKH I RIEULHIEUH - ,0xB562 ,0xD0B6 //HANGUL SYLLABLE KHIEUKH I PIEUPSIOS - ,0xB563 ,0xD0B8 //HANGUL SYLLABLE KHIEUKH I SSANGSIOS - ,0xB564 ,0xD0BA //HANGUL SYLLABLE KHIEUKH I CIEUC - ,0xB565 ,0xD0BB //HANGUL SYLLABLE KHIEUKH I CHIEUCH - ,0xB566 ,0xD0BC //HANGUL SYLLABLE KHIEUKH I KHIEUKH - ,0xB567 ,0xD0BD //HANGUL SYLLABLE KHIEUKH I THIEUTH - ,0xB568 ,0xD0BE //HANGUL SYLLABLE KHIEUKH I PHIEUPH - ,0xB569 ,0xD0BF //HANGUL SYLLABLE KHIEUKH I HIEUH - ,0xB56A ,0xD0C2 //HANGUL SYLLABLE THIEUTH A SSANGKIYEOK - ,0xB56B ,0xD0C3 //HANGUL SYLLABLE THIEUTH A KIYEOKSIOS - ,0xB56C ,0xD0C5 //HANGUL SYLLABLE THIEUTH A NIEUNCIEUC - ,0xB56D ,0xD0C6 //HANGUL SYLLABLE THIEUTH A NIEUNHIEUH - ,0xB56E ,0xD0C7 //HANGUL SYLLABLE THIEUTH A TIKEUT - ,0xB56F ,0xD0CA //HANGUL SYLLABLE THIEUTH A RIEULMIEUM - ,0xB570 ,0xD0CB //HANGUL SYLLABLE THIEUTH A RIEULPIEUP - ,0xB571 ,0xD0CC //HANGUL SYLLABLE THIEUTH A RIEULSIOS - ,0xB572 ,0xD0CD //HANGUL SYLLABLE THIEUTH A RIEULTHIEUTH - ,0xB573 ,0xD0CE //HANGUL SYLLABLE THIEUTH A RIEULPHIEUPH - ,0xB574 ,0xD0CF //HANGUL SYLLABLE THIEUTH A RIEULHIEUH - ,0xB575 ,0xD0D2 //HANGUL SYLLABLE THIEUTH A PIEUPSIOS - ,0xB576 ,0xD0D6 //HANGUL SYLLABLE THIEUTH A CIEUC - ,0xB577 ,0xD0D7 //HANGUL SYLLABLE THIEUTH A CHIEUCH - ,0xB578 ,0xD0D8 //HANGUL SYLLABLE THIEUTH A KHIEUKH - ,0xB579 ,0xD0D9 //HANGUL SYLLABLE THIEUTH A THIEUTH - ,0xB57A ,0xD0DA //HANGUL SYLLABLE THIEUTH A PHIEUPH - ,0xB581 ,0xD0DB //HANGUL SYLLABLE THIEUTH A HIEUH - ,0xB582 ,0xD0DE //HANGUL SYLLABLE THIEUTH AE SSANGKIYEOK - ,0xB583 ,0xD0DF //HANGUL SYLLABLE THIEUTH AE KIYEOKSIOS - ,0xB584 ,0xD0E1 //HANGUL SYLLABLE THIEUTH AE NIEUNCIEUC - ,0xB585 ,0xD0E2 //HANGUL SYLLABLE THIEUTH AE NIEUNHIEUH - ,0xB586 ,0xD0E3 //HANGUL SYLLABLE THIEUTH AE TIKEUT - ,0xB587 ,0xD0E5 //HANGUL SYLLABLE THIEUTH AE RIEULKIYEOK - ,0xB588 ,0xD0E6 //HANGUL SYLLABLE THIEUTH AE RIEULMIEUM - ,0xB589 ,0xD0E7 //HANGUL SYLLABLE THIEUTH AE RIEULPIEUP - ,0xB58A ,0xD0E8 //HANGUL SYLLABLE THIEUTH AE RIEULSIOS - ,0xB58B ,0xD0E9 //HANGUL SYLLABLE THIEUTH AE RIEULTHIEUTH - ,0xB58C ,0xD0EA //HANGUL SYLLABLE THIEUTH AE RIEULPHIEUPH - ,0xB58D ,0xD0EB //HANGUL SYLLABLE THIEUTH AE RIEULHIEUH - ,0xB58E ,0xD0EE //HANGUL SYLLABLE THIEUTH AE PIEUPSIOS - ,0xB58F ,0xD0F2 //HANGUL SYLLABLE THIEUTH AE CIEUC - ,0xB590 ,0xD0F3 //HANGUL SYLLABLE THIEUTH AE CHIEUCH - ,0xB591 ,0xD0F4 //HANGUL SYLLABLE THIEUTH AE KHIEUKH - ,0xB592 ,0xD0F5 //HANGUL SYLLABLE THIEUTH AE THIEUTH - ,0xB593 ,0xD0F6 //HANGUL SYLLABLE THIEUTH AE PHIEUPH - ,0xB594 ,0xD0F7 //HANGUL SYLLABLE THIEUTH AE HIEUH - ,0xB595 ,0xD0F9 //HANGUL SYLLABLE THIEUTH YA KIYEOK - ,0xB596 ,0xD0FA //HANGUL SYLLABLE THIEUTH YA SSANGKIYEOK - ,0xB597 ,0xD0FB //HANGUL SYLLABLE THIEUTH YA KIYEOKSIOS - ,0xB598 ,0xD0FC //HANGUL SYLLABLE THIEUTH YA NIEUN - ,0xB599 ,0xD0FD //HANGUL SYLLABLE THIEUTH YA NIEUNCIEUC - ,0xB59A ,0xD0FE //HANGUL SYLLABLE THIEUTH YA NIEUNHIEUH - ,0xB59B ,0xD0FF //HANGUL SYLLABLE THIEUTH YA TIKEUT - ,0xB59C ,0xD100 //HANGUL SYLLABLE THIEUTH YA RIEUL - ,0xB59D ,0xD101 //HANGUL SYLLABLE THIEUTH YA RIEULKIYEOK - ,0xB59E ,0xD102 //HANGUL SYLLABLE THIEUTH YA RIEULMIEUM - ,0xB59F ,0xD103 //HANGUL SYLLABLE THIEUTH YA RIEULPIEUP - ,0xB5A0 ,0xD104 //HANGUL SYLLABLE THIEUTH YA RIEULSIOS - ,0xB5A1 ,0xB367 //HANGUL SYLLABLE TIKEUT EO SIOS - ,0xB5A2 ,0xB369 //HANGUL SYLLABLE TIKEUT EO IEUNG - ,0xB5A3 ,0xB36B //HANGUL SYLLABLE TIKEUT EO CHIEUCH - ,0xB5A4 ,0xB36E //HANGUL SYLLABLE TIKEUT EO PHIEUPH - ,0xB5A5 ,0xB370 //HANGUL SYLLABLE TIKEUT E - ,0xB5A6 ,0xB371 //HANGUL SYLLABLE TIKEUT E KIYEOK - ,0xB5A7 ,0xB374 //HANGUL SYLLABLE TIKEUT E NIEUN - ,0xB5A8 ,0xB378 //HANGUL SYLLABLE TIKEUT E RIEUL - ,0xB5A9 ,0xB380 //HANGUL SYLLABLE TIKEUT E MIEUM - ,0xB5AA ,0xB381 //HANGUL SYLLABLE TIKEUT E PIEUP - ,0xB5AB ,0xB383 //HANGUL SYLLABLE TIKEUT E SIOS - ,0xB5AC ,0xB384 //HANGUL SYLLABLE TIKEUT E SSANGSIOS - ,0xB5AD ,0xB385 //HANGUL SYLLABLE TIKEUT E IEUNG - ,0xB5AE ,0xB38C //HANGUL SYLLABLE TIKEUT YEO - ,0xB5AF ,0xB390 //HANGUL SYLLABLE TIKEUT YEO NIEUN - ,0xB5B0 ,0xB394 //HANGUL SYLLABLE TIKEUT YEO RIEUL - ,0xB5B1 ,0xB3A0 //HANGUL SYLLABLE TIKEUT YEO SSANGSIOS - ,0xB5B2 ,0xB3A1 //HANGUL SYLLABLE TIKEUT YEO IEUNG - ,0xB5B3 ,0xB3A8 //HANGUL SYLLABLE TIKEUT YE - ,0xB5B4 ,0xB3AC //HANGUL SYLLABLE TIKEUT YE NIEUN - ,0xB5B5 ,0xB3C4 //HANGUL SYLLABLE TIKEUT O - ,0xB5B6 ,0xB3C5 //HANGUL SYLLABLE TIKEUT O KIYEOK - ,0xB5B7 ,0xB3C8 //HANGUL SYLLABLE TIKEUT O NIEUN - ,0xB5B8 ,0xB3CB //HANGUL SYLLABLE TIKEUT O TIKEUT - ,0xB5B9 ,0xB3CC //HANGUL SYLLABLE TIKEUT O RIEUL - ,0xB5BA ,0xB3CE //HANGUL SYLLABLE TIKEUT O RIEULMIEUM - ,0xB5BB ,0xB3D0 //HANGUL SYLLABLE TIKEUT O RIEULSIOS - ,0xB5BC ,0xB3D4 //HANGUL SYLLABLE TIKEUT O MIEUM - ,0xB5BD ,0xB3D5 //HANGUL SYLLABLE TIKEUT O PIEUP - ,0xB5BE ,0xB3D7 //HANGUL SYLLABLE TIKEUT O SIOS - ,0xB5BF ,0xB3D9 //HANGUL SYLLABLE TIKEUT O IEUNG - ,0xB5C0 ,0xB3DB //HANGUL SYLLABLE TIKEUT O CHIEUCH - ,0xB5C1 ,0xB3DD //HANGUL SYLLABLE TIKEUT O THIEUTH - ,0xB5C2 ,0xB3E0 //HANGUL SYLLABLE TIKEUT WA - ,0xB5C3 ,0xB3E4 //HANGUL SYLLABLE TIKEUT WA NIEUN - ,0xB5C4 ,0xB3E8 //HANGUL SYLLABLE TIKEUT WA RIEUL - ,0xB5C5 ,0xB3FC //HANGUL SYLLABLE TIKEUT WAE - ,0xB5C6 ,0xB410 //HANGUL SYLLABLE TIKEUT WAE SSANGSIOS - ,0xB5C7 ,0xB418 //HANGUL SYLLABLE TIKEUT OE - ,0xB5C8 ,0xB41C //HANGUL SYLLABLE TIKEUT OE NIEUN - ,0xB5C9 ,0xB420 //HANGUL SYLLABLE TIKEUT OE RIEUL - ,0xB5CA ,0xB428 //HANGUL SYLLABLE TIKEUT OE MIEUM - ,0xB5CB ,0xB429 //HANGUL SYLLABLE TIKEUT OE PIEUP - ,0xB5CC ,0xB42B //HANGUL SYLLABLE TIKEUT OE SIOS - ,0xB5CD ,0xB434 //HANGUL SYLLABLE TIKEUT YO - ,0xB5CE ,0xB450 //HANGUL SYLLABLE TIKEUT U - ,0xB5CF ,0xB451 //HANGUL SYLLABLE TIKEUT U KIYEOK - ,0xB5D0 ,0xB454 //HANGUL SYLLABLE TIKEUT U NIEUN - ,0xB5D1 ,0xB458 //HANGUL SYLLABLE TIKEUT U RIEUL - ,0xB5D2 ,0xB460 //HANGUL SYLLABLE TIKEUT U MIEUM - ,0xB5D3 ,0xB461 //HANGUL SYLLABLE TIKEUT U PIEUP - ,0xB5D4 ,0xB463 //HANGUL SYLLABLE TIKEUT U SIOS - ,0xB5D5 ,0xB465 //HANGUL SYLLABLE TIKEUT U IEUNG - ,0xB5D6 ,0xB46C //HANGUL SYLLABLE TIKEUT WEO - ,0xB5D7 ,0xB480 //HANGUL SYLLABLE TIKEUT WEO SSANGSIOS - ,0xB5D8 ,0xB488 //HANGUL SYLLABLE TIKEUT WE - ,0xB5D9 ,0xB49D //HANGUL SYLLABLE TIKEUT WE IEUNG - ,0xB5DA ,0xB4A4 //HANGUL SYLLABLE TIKEUT WI - ,0xB5DB ,0xB4A8 //HANGUL SYLLABLE TIKEUT WI NIEUN - ,0xB5DC ,0xB4AC //HANGUL SYLLABLE TIKEUT WI RIEUL - ,0xB5DD ,0xB4B5 //HANGUL SYLLABLE TIKEUT WI PIEUP - ,0xB5DE ,0xB4B7 //HANGUL SYLLABLE TIKEUT WI SIOS - ,0xB5DF ,0xB4B9 //HANGUL SYLLABLE TIKEUT WI IEUNG - ,0xB5E0 ,0xB4C0 //HANGUL SYLLABLE TIKEUT YU - ,0xB5E1 ,0xB4C4 //HANGUL SYLLABLE TIKEUT YU NIEUN - ,0xB5E2 ,0xB4C8 //HANGUL SYLLABLE TIKEUT YU RIEUL - ,0xB5E3 ,0xB4D0 //HANGUL SYLLABLE TIKEUT YU MIEUM - ,0xB5E4 ,0xB4D5 //HANGUL SYLLABLE TIKEUT YU IEUNG - ,0xB5E5 ,0xB4DC //HANGUL SYLLABLE TIKEUT EU - ,0xB5E6 ,0xB4DD //HANGUL SYLLABLE TIKEUT EU KIYEOK - ,0xB5E7 ,0xB4E0 //HANGUL SYLLABLE TIKEUT EU NIEUN - ,0xB5E8 ,0xB4E3 //HANGUL SYLLABLE TIKEUT EU TIKEUT - ,0xB5E9 ,0xB4E4 //HANGUL SYLLABLE TIKEUT EU RIEUL - ,0xB5EA ,0xB4E6 //HANGUL SYLLABLE TIKEUT EU RIEULMIEUM - ,0xB5EB ,0xB4EC //HANGUL SYLLABLE TIKEUT EU MIEUM - ,0xB5EC ,0xB4ED //HANGUL SYLLABLE TIKEUT EU PIEUP - ,0xB5ED ,0xB4EF //HANGUL SYLLABLE TIKEUT EU SIOS - ,0xB5EE ,0xB4F1 //HANGUL SYLLABLE TIKEUT EU IEUNG - ,0xB5EF ,0xB4F8 //HANGUL SYLLABLE TIKEUT YI - ,0xB5F0 ,0xB514 //HANGUL SYLLABLE TIKEUT I - ,0xB5F1 ,0xB515 //HANGUL SYLLABLE TIKEUT I KIYEOK - ,0xB5F2 ,0xB518 //HANGUL SYLLABLE TIKEUT I NIEUN - ,0xB5F3 ,0xB51B //HANGUL SYLLABLE TIKEUT I TIKEUT - ,0xB5F4 ,0xB51C //HANGUL SYLLABLE TIKEUT I RIEUL - ,0xB5F5 ,0xB524 //HANGUL SYLLABLE TIKEUT I MIEUM - ,0xB5F6 ,0xB525 //HANGUL SYLLABLE TIKEUT I PIEUP - ,0xB5F7 ,0xB527 //HANGUL SYLLABLE TIKEUT I SIOS - ,0xB5F8 ,0xB528 //HANGUL SYLLABLE TIKEUT I SSANGSIOS - ,0xB5F9 ,0xB529 //HANGUL SYLLABLE TIKEUT I IEUNG - ,0xB5FA ,0xB52A //HANGUL SYLLABLE TIKEUT I CIEUC - ,0xB5FB ,0xB530 //HANGUL SYLLABLE SSANGTIKEUT A - ,0xB5FC ,0xB531 //HANGUL SYLLABLE SSANGTIKEUT A KIYEOK - ,0xB5FD ,0xB534 //HANGUL SYLLABLE SSANGTIKEUT A NIEUN - ,0xB5FE ,0xB538 //HANGUL SYLLABLE SSANGTIKEUT A RIEUL - ,0xB641 ,0xD105 //HANGUL SYLLABLE THIEUTH YA RIEULTHIEUTH - ,0xB642 ,0xD106 //HANGUL SYLLABLE THIEUTH YA RIEULPHIEUPH - ,0xB643 ,0xD107 //HANGUL SYLLABLE THIEUTH YA RIEULHIEUH - ,0xB644 ,0xD108 //HANGUL SYLLABLE THIEUTH YA MIEUM - ,0xB645 ,0xD109 //HANGUL SYLLABLE THIEUTH YA PIEUP - ,0xB646 ,0xD10A //HANGUL SYLLABLE THIEUTH YA PIEUPSIOS - ,0xB647 ,0xD10B //HANGUL SYLLABLE THIEUTH YA SIOS - ,0xB648 ,0xD10C //HANGUL SYLLABLE THIEUTH YA SSANGSIOS - ,0xB649 ,0xD10E //HANGUL SYLLABLE THIEUTH YA CIEUC - ,0xB64A ,0xD10F //HANGUL SYLLABLE THIEUTH YA CHIEUCH - ,0xB64B ,0xD110 //HANGUL SYLLABLE THIEUTH YA KHIEUKH - ,0xB64C ,0xD111 //HANGUL SYLLABLE THIEUTH YA THIEUTH - ,0xB64D ,0xD112 //HANGUL SYLLABLE THIEUTH YA PHIEUPH - ,0xB64E ,0xD113 //HANGUL SYLLABLE THIEUTH YA HIEUH - ,0xB64F ,0xD114 //HANGUL SYLLABLE THIEUTH YAE - ,0xB650 ,0xD115 //HANGUL SYLLABLE THIEUTH YAE KIYEOK - ,0xB651 ,0xD116 //HANGUL SYLLABLE THIEUTH YAE SSANGKIYEOK - ,0xB652 ,0xD117 //HANGUL SYLLABLE THIEUTH YAE KIYEOKSIOS - ,0xB653 ,0xD118 //HANGUL SYLLABLE THIEUTH YAE NIEUN - ,0xB654 ,0xD119 //HANGUL SYLLABLE THIEUTH YAE NIEUNCIEUC - ,0xB655 ,0xD11A //HANGUL SYLLABLE THIEUTH YAE NIEUNHIEUH - ,0xB656 ,0xD11B //HANGUL SYLLABLE THIEUTH YAE TIKEUT - ,0xB657 ,0xD11C //HANGUL SYLLABLE THIEUTH YAE RIEUL - ,0xB658 ,0xD11D //HANGUL SYLLABLE THIEUTH YAE RIEULKIYEOK - ,0xB659 ,0xD11E //HANGUL SYLLABLE THIEUTH YAE RIEULMIEUM - ,0xB65A ,0xD11F //HANGUL SYLLABLE THIEUTH YAE RIEULPIEUP - ,0xB661 ,0xD120 //HANGUL SYLLABLE THIEUTH YAE RIEULSIOS - ,0xB662 ,0xD121 //HANGUL SYLLABLE THIEUTH YAE RIEULTHIEUTH - ,0xB663 ,0xD122 //HANGUL SYLLABLE THIEUTH YAE RIEULPHIEUPH - ,0xB664 ,0xD123 //HANGUL SYLLABLE THIEUTH YAE RIEULHIEUH - ,0xB665 ,0xD124 //HANGUL SYLLABLE THIEUTH YAE MIEUM - ,0xB666 ,0xD125 //HANGUL SYLLABLE THIEUTH YAE PIEUP - ,0xB667 ,0xD126 //HANGUL SYLLABLE THIEUTH YAE PIEUPSIOS - ,0xB668 ,0xD127 //HANGUL SYLLABLE THIEUTH YAE SIOS - ,0xB669 ,0xD128 //HANGUL SYLLABLE THIEUTH YAE SSANGSIOS - ,0xB66A ,0xD129 //HANGUL SYLLABLE THIEUTH YAE IEUNG - ,0xB66B ,0xD12A //HANGUL SYLLABLE THIEUTH YAE CIEUC - ,0xB66C ,0xD12B //HANGUL SYLLABLE THIEUTH YAE CHIEUCH - ,0xB66D ,0xD12C //HANGUL SYLLABLE THIEUTH YAE KHIEUKH - ,0xB66E ,0xD12D //HANGUL SYLLABLE THIEUTH YAE THIEUTH - ,0xB66F ,0xD12E //HANGUL SYLLABLE THIEUTH YAE PHIEUPH - ,0xB670 ,0xD12F //HANGUL SYLLABLE THIEUTH YAE HIEUH - ,0xB671 ,0xD132 //HANGUL SYLLABLE THIEUTH EO SSANGKIYEOK - ,0xB672 ,0xD133 //HANGUL SYLLABLE THIEUTH EO KIYEOKSIOS - ,0xB673 ,0xD135 //HANGUL SYLLABLE THIEUTH EO NIEUNCIEUC - ,0xB674 ,0xD136 //HANGUL SYLLABLE THIEUTH EO NIEUNHIEUH - ,0xB675 ,0xD137 //HANGUL SYLLABLE THIEUTH EO TIKEUT - ,0xB676 ,0xD139 //HANGUL SYLLABLE THIEUTH EO RIEULKIYEOK - ,0xB677 ,0xD13B //HANGUL SYLLABLE THIEUTH EO RIEULPIEUP - ,0xB678 ,0xD13C //HANGUL SYLLABLE THIEUTH EO RIEULSIOS - ,0xB679 ,0xD13D //HANGUL SYLLABLE THIEUTH EO RIEULTHIEUTH - ,0xB67A ,0xD13E //HANGUL SYLLABLE THIEUTH EO RIEULPHIEUPH - ,0xB681 ,0xD13F //HANGUL SYLLABLE THIEUTH EO RIEULHIEUH - ,0xB682 ,0xD142 //HANGUL SYLLABLE THIEUTH EO PIEUPSIOS - ,0xB683 ,0xD146 //HANGUL SYLLABLE THIEUTH EO CIEUC - ,0xB684 ,0xD147 //HANGUL SYLLABLE THIEUTH EO CHIEUCH - ,0xB685 ,0xD148 //HANGUL SYLLABLE THIEUTH EO KHIEUKH - ,0xB686 ,0xD149 //HANGUL SYLLABLE THIEUTH EO THIEUTH - ,0xB687 ,0xD14A //HANGUL SYLLABLE THIEUTH EO PHIEUPH - ,0xB688 ,0xD14B //HANGUL SYLLABLE THIEUTH EO HIEUH - ,0xB689 ,0xD14E //HANGUL SYLLABLE THIEUTH E SSANGKIYEOK - ,0xB68A ,0xD14F //HANGUL SYLLABLE THIEUTH E KIYEOKSIOS - ,0xB68B ,0xD151 //HANGUL SYLLABLE THIEUTH E NIEUNCIEUC - ,0xB68C ,0xD152 //HANGUL SYLLABLE THIEUTH E NIEUNHIEUH - ,0xB68D ,0xD153 //HANGUL SYLLABLE THIEUTH E TIKEUT - ,0xB68E ,0xD155 //HANGUL SYLLABLE THIEUTH E RIEULKIYEOK - ,0xB68F ,0xD156 //HANGUL SYLLABLE THIEUTH E RIEULMIEUM - ,0xB690 ,0xD157 //HANGUL SYLLABLE THIEUTH E RIEULPIEUP - ,0xB691 ,0xD158 //HANGUL SYLLABLE THIEUTH E RIEULSIOS - ,0xB692 ,0xD159 //HANGUL SYLLABLE THIEUTH E RIEULTHIEUTH - ,0xB693 ,0xD15A //HANGUL SYLLABLE THIEUTH E RIEULPHIEUPH - ,0xB694 ,0xD15B //HANGUL SYLLABLE THIEUTH E RIEULHIEUH - ,0xB695 ,0xD15E //HANGUL SYLLABLE THIEUTH E PIEUPSIOS - ,0xB696 ,0xD160 //HANGUL SYLLABLE THIEUTH E SSANGSIOS - ,0xB697 ,0xD162 //HANGUL SYLLABLE THIEUTH E CIEUC - ,0xB698 ,0xD163 //HANGUL SYLLABLE THIEUTH E CHIEUCH - ,0xB699 ,0xD164 //HANGUL SYLLABLE THIEUTH E KHIEUKH - ,0xB69A ,0xD165 //HANGUL SYLLABLE THIEUTH E THIEUTH - ,0xB69B ,0xD166 //HANGUL SYLLABLE THIEUTH E PHIEUPH - ,0xB69C ,0xD167 //HANGUL SYLLABLE THIEUTH E HIEUH - ,0xB69D ,0xD169 //HANGUL SYLLABLE THIEUTH YEO KIYEOK - ,0xB69E ,0xD16A //HANGUL SYLLABLE THIEUTH YEO SSANGKIYEOK - ,0xB69F ,0xD16B //HANGUL SYLLABLE THIEUTH YEO KIYEOKSIOS - ,0xB6A0 ,0xD16D //HANGUL SYLLABLE THIEUTH YEO NIEUNCIEUC - ,0xB6A1 ,0xB540 //HANGUL SYLLABLE SSANGTIKEUT A MIEUM - ,0xB6A2 ,0xB541 //HANGUL SYLLABLE SSANGTIKEUT A PIEUP - ,0xB6A3 ,0xB543 //HANGUL SYLLABLE SSANGTIKEUT A SIOS - ,0xB6A4 ,0xB544 //HANGUL SYLLABLE SSANGTIKEUT A SSANGSIOS - ,0xB6A5 ,0xB545 //HANGUL SYLLABLE SSANGTIKEUT A IEUNG - ,0xB6A6 ,0xB54B //HANGUL SYLLABLE SSANGTIKEUT A HIEUH - ,0xB6A7 ,0xB54C //HANGUL SYLLABLE SSANGTIKEUT AE - ,0xB6A8 ,0xB54D //HANGUL SYLLABLE SSANGTIKEUT AE KIYEOK - ,0xB6A9 ,0xB550 //HANGUL SYLLABLE SSANGTIKEUT AE NIEUN - ,0xB6AA ,0xB554 //HANGUL SYLLABLE SSANGTIKEUT AE RIEUL - ,0xB6AB ,0xB55C //HANGUL SYLLABLE SSANGTIKEUT AE MIEUM - ,0xB6AC ,0xB55D //HANGUL SYLLABLE SSANGTIKEUT AE PIEUP - ,0xB6AD ,0xB55F //HANGUL SYLLABLE SSANGTIKEUT AE SIOS - ,0xB6AE ,0xB560 //HANGUL SYLLABLE SSANGTIKEUT AE SSANGSIOS - ,0xB6AF ,0xB561 //HANGUL SYLLABLE SSANGTIKEUT AE IEUNG - ,0xB6B0 ,0xB5A0 //HANGUL SYLLABLE SSANGTIKEUT EO - ,0xB6B1 ,0xB5A1 //HANGUL SYLLABLE SSANGTIKEUT EO KIYEOK - ,0xB6B2 ,0xB5A4 //HANGUL SYLLABLE SSANGTIKEUT EO NIEUN - ,0xB6B3 ,0xB5A8 //HANGUL SYLLABLE SSANGTIKEUT EO RIEUL - ,0xB6B4 ,0xB5AA //HANGUL SYLLABLE SSANGTIKEUT EO RIEULMIEUM - ,0xB6B5 ,0xB5AB //HANGUL SYLLABLE SSANGTIKEUT EO RIEULPIEUP - ,0xB6B6 ,0xB5B0 //HANGUL SYLLABLE SSANGTIKEUT EO MIEUM - ,0xB6B7 ,0xB5B1 //HANGUL SYLLABLE SSANGTIKEUT EO PIEUP - ,0xB6B8 ,0xB5B3 //HANGUL SYLLABLE SSANGTIKEUT EO SIOS - ,0xB6B9 ,0xB5B4 //HANGUL SYLLABLE SSANGTIKEUT EO SSANGSIOS - ,0xB6BA ,0xB5B5 //HANGUL SYLLABLE SSANGTIKEUT EO IEUNG - ,0xB6BB ,0xB5BB //HANGUL SYLLABLE SSANGTIKEUT EO HIEUH - ,0xB6BC ,0xB5BC //HANGUL SYLLABLE SSANGTIKEUT E - ,0xB6BD ,0xB5BD //HANGUL SYLLABLE SSANGTIKEUT E KIYEOK - ,0xB6BE ,0xB5C0 //HANGUL SYLLABLE SSANGTIKEUT E NIEUN - ,0xB6BF ,0xB5C4 //HANGUL SYLLABLE SSANGTIKEUT E RIEUL - ,0xB6C0 ,0xB5CC //HANGUL SYLLABLE SSANGTIKEUT E MIEUM - ,0xB6C1 ,0xB5CD //HANGUL SYLLABLE SSANGTIKEUT E PIEUP - ,0xB6C2 ,0xB5CF //HANGUL SYLLABLE SSANGTIKEUT E SIOS - ,0xB6C3 ,0xB5D0 //HANGUL SYLLABLE SSANGTIKEUT E SSANGSIOS - ,0xB6C4 ,0xB5D1 //HANGUL SYLLABLE SSANGTIKEUT E IEUNG - ,0xB6C5 ,0xB5D8 //HANGUL SYLLABLE SSANGTIKEUT YEO - ,0xB6C6 ,0xB5EC //HANGUL SYLLABLE SSANGTIKEUT YEO SSANGSIOS - ,0xB6C7 ,0xB610 //HANGUL SYLLABLE SSANGTIKEUT O - ,0xB6C8 ,0xB611 //HANGUL SYLLABLE SSANGTIKEUT O KIYEOK - ,0xB6C9 ,0xB614 //HANGUL SYLLABLE SSANGTIKEUT O NIEUN - ,0xB6CA ,0xB618 //HANGUL SYLLABLE SSANGTIKEUT O RIEUL - ,0xB6CB ,0xB625 //HANGUL SYLLABLE SSANGTIKEUT O IEUNG - ,0xB6CC ,0xB62C //HANGUL SYLLABLE SSANGTIKEUT WA - ,0xB6CD ,0xB634 //HANGUL SYLLABLE SSANGTIKEUT WA RIEUL - ,0xB6CE ,0xB648 //HANGUL SYLLABLE SSANGTIKEUT WAE - ,0xB6CF ,0xB664 //HANGUL SYLLABLE SSANGTIKEUT OE - ,0xB6D0 ,0xB668 //HANGUL SYLLABLE SSANGTIKEUT OE NIEUN - ,0xB6D1 ,0xB69C //HANGUL SYLLABLE SSANGTIKEUT U - ,0xB6D2 ,0xB69D //HANGUL SYLLABLE SSANGTIKEUT U KIYEOK - ,0xB6D3 ,0xB6A0 //HANGUL SYLLABLE SSANGTIKEUT U NIEUN - ,0xB6D4 ,0xB6A4 //HANGUL SYLLABLE SSANGTIKEUT U RIEUL - ,0xB6D5 ,0xB6AB //HANGUL SYLLABLE SSANGTIKEUT U RIEULHIEUH - ,0xB6D6 ,0xB6AC //HANGUL SYLLABLE SSANGTIKEUT U MIEUM - ,0xB6D7 ,0xB6B1 //HANGUL SYLLABLE SSANGTIKEUT U IEUNG - ,0xB6D8 ,0xB6D4 //HANGUL SYLLABLE SSANGTIKEUT WE - ,0xB6D9 ,0xB6F0 //HANGUL SYLLABLE SSANGTIKEUT WI - ,0xB6DA ,0xB6F4 //HANGUL SYLLABLE SSANGTIKEUT WI NIEUN - ,0xB6DB ,0xB6F8 //HANGUL SYLLABLE SSANGTIKEUT WI RIEUL - ,0xB6DC ,0xB700 //HANGUL SYLLABLE SSANGTIKEUT WI MIEUM - ,0xB6DD ,0xB701 //HANGUL SYLLABLE SSANGTIKEUT WI PIEUP - ,0xB6DE ,0xB705 //HANGUL SYLLABLE SSANGTIKEUT WI IEUNG - ,0xB6DF ,0xB728 //HANGUL SYLLABLE SSANGTIKEUT EU - ,0xB6E0 ,0xB729 //HANGUL SYLLABLE SSANGTIKEUT EU KIYEOK - ,0xB6E1 ,0xB72C //HANGUL SYLLABLE SSANGTIKEUT EU NIEUN - ,0xB6E2 ,0xB72F //HANGUL SYLLABLE SSANGTIKEUT EU TIKEUT - ,0xB6E3 ,0xB730 //HANGUL SYLLABLE SSANGTIKEUT EU RIEUL - ,0xB6E4 ,0xB738 //HANGUL SYLLABLE SSANGTIKEUT EU MIEUM - ,0xB6E5 ,0xB739 //HANGUL SYLLABLE SSANGTIKEUT EU PIEUP - ,0xB6E6 ,0xB73B //HANGUL SYLLABLE SSANGTIKEUT EU SIOS - ,0xB6E7 ,0xB744 //HANGUL SYLLABLE SSANGTIKEUT YI - ,0xB6E8 ,0xB748 //HANGUL SYLLABLE SSANGTIKEUT YI NIEUN - ,0xB6E9 ,0xB74C //HANGUL SYLLABLE SSANGTIKEUT YI RIEUL - ,0xB6EA ,0xB754 //HANGUL SYLLABLE SSANGTIKEUT YI MIEUM - ,0xB6EB ,0xB755 //HANGUL SYLLABLE SSANGTIKEUT YI PIEUP - ,0xB6EC ,0xB760 //HANGUL SYLLABLE SSANGTIKEUT I - ,0xB6ED ,0xB764 //HANGUL SYLLABLE SSANGTIKEUT I NIEUN - ,0xB6EE ,0xB768 //HANGUL SYLLABLE SSANGTIKEUT I RIEUL - ,0xB6EF ,0xB770 //HANGUL SYLLABLE SSANGTIKEUT I MIEUM - ,0xB6F0 ,0xB771 //HANGUL SYLLABLE SSANGTIKEUT I PIEUP - ,0xB6F1 ,0xB773 //HANGUL SYLLABLE SSANGTIKEUT I SIOS - ,0xB6F2 ,0xB775 //HANGUL SYLLABLE SSANGTIKEUT I IEUNG - ,0xB6F3 ,0xB77C //HANGUL SYLLABLE RIEUL A - ,0xB6F4 ,0xB77D //HANGUL SYLLABLE RIEUL A KIYEOK - ,0xB6F5 ,0xB780 //HANGUL SYLLABLE RIEUL A NIEUN - ,0xB6F6 ,0xB784 //HANGUL SYLLABLE RIEUL A RIEUL - ,0xB6F7 ,0xB78C //HANGUL SYLLABLE RIEUL A MIEUM - ,0xB6F8 ,0xB78D //HANGUL SYLLABLE RIEUL A PIEUP - ,0xB6F9 ,0xB78F //HANGUL SYLLABLE RIEUL A SIOS - ,0xB6FA ,0xB790 //HANGUL SYLLABLE RIEUL A SSANGSIOS - ,0xB6FB ,0xB791 //HANGUL SYLLABLE RIEUL A IEUNG - ,0xB6FC ,0xB792 //HANGUL SYLLABLE RIEUL A CIEUC - ,0xB6FD ,0xB796 //HANGUL SYLLABLE RIEUL A PHIEUPH - ,0xB6FE ,0xB797 //HANGUL SYLLABLE RIEUL A HIEUH - ,0xB741 ,0xD16E //HANGUL SYLLABLE THIEUTH YEO NIEUNHIEUH - ,0xB742 ,0xD16F //HANGUL SYLLABLE THIEUTH YEO TIKEUT - ,0xB743 ,0xD170 //HANGUL SYLLABLE THIEUTH YEO RIEUL - ,0xB744 ,0xD171 //HANGUL SYLLABLE THIEUTH YEO RIEULKIYEOK - ,0xB745 ,0xD172 //HANGUL SYLLABLE THIEUTH YEO RIEULMIEUM - ,0xB746 ,0xD173 //HANGUL SYLLABLE THIEUTH YEO RIEULPIEUP - ,0xB747 ,0xD174 //HANGUL SYLLABLE THIEUTH YEO RIEULSIOS - ,0xB748 ,0xD175 //HANGUL SYLLABLE THIEUTH YEO RIEULTHIEUTH - ,0xB749 ,0xD176 //HANGUL SYLLABLE THIEUTH YEO RIEULPHIEUPH - ,0xB74A ,0xD177 //HANGUL SYLLABLE THIEUTH YEO RIEULHIEUH - ,0xB74B ,0xD178 //HANGUL SYLLABLE THIEUTH YEO MIEUM - ,0xB74C ,0xD179 //HANGUL SYLLABLE THIEUTH YEO PIEUP - ,0xB74D ,0xD17A //HANGUL SYLLABLE THIEUTH YEO PIEUPSIOS - ,0xB74E ,0xD17B //HANGUL SYLLABLE THIEUTH YEO SIOS - ,0xB74F ,0xD17D //HANGUL SYLLABLE THIEUTH YEO IEUNG - ,0xB750 ,0xD17E //HANGUL SYLLABLE THIEUTH YEO CIEUC - ,0xB751 ,0xD17F //HANGUL SYLLABLE THIEUTH YEO CHIEUCH - ,0xB752 ,0xD180 //HANGUL SYLLABLE THIEUTH YEO KHIEUKH - ,0xB753 ,0xD181 //HANGUL SYLLABLE THIEUTH YEO THIEUTH - ,0xB754 ,0xD182 //HANGUL SYLLABLE THIEUTH YEO PHIEUPH - ,0xB755 ,0xD183 //HANGUL SYLLABLE THIEUTH YEO HIEUH - ,0xB756 ,0xD185 //HANGUL SYLLABLE THIEUTH YE KIYEOK - ,0xB757 ,0xD186 //HANGUL SYLLABLE THIEUTH YE SSANGKIYEOK - ,0xB758 ,0xD187 //HANGUL SYLLABLE THIEUTH YE KIYEOKSIOS - ,0xB759 ,0xD189 //HANGUL SYLLABLE THIEUTH YE NIEUNCIEUC - ,0xB75A ,0xD18A //HANGUL SYLLABLE THIEUTH YE NIEUNHIEUH - ,0xB761 ,0xD18B //HANGUL SYLLABLE THIEUTH YE TIKEUT - ,0xB762 ,0xD18C //HANGUL SYLLABLE THIEUTH YE RIEUL - ,0xB763 ,0xD18D //HANGUL SYLLABLE THIEUTH YE RIEULKIYEOK - ,0xB764 ,0xD18E //HANGUL SYLLABLE THIEUTH YE RIEULMIEUM - ,0xB765 ,0xD18F //HANGUL SYLLABLE THIEUTH YE RIEULPIEUP - ,0xB766 ,0xD190 //HANGUL SYLLABLE THIEUTH YE RIEULSIOS - ,0xB767 ,0xD191 //HANGUL SYLLABLE THIEUTH YE RIEULTHIEUTH - ,0xB768 ,0xD192 //HANGUL SYLLABLE THIEUTH YE RIEULPHIEUPH - ,0xB769 ,0xD193 //HANGUL SYLLABLE THIEUTH YE RIEULHIEUH - ,0xB76A ,0xD194 //HANGUL SYLLABLE THIEUTH YE MIEUM - ,0xB76B ,0xD195 //HANGUL SYLLABLE THIEUTH YE PIEUP - ,0xB76C ,0xD196 //HANGUL SYLLABLE THIEUTH YE PIEUPSIOS - ,0xB76D ,0xD197 //HANGUL SYLLABLE THIEUTH YE SIOS - ,0xB76E ,0xD198 //HANGUL SYLLABLE THIEUTH YE SSANGSIOS - ,0xB76F ,0xD199 //HANGUL SYLLABLE THIEUTH YE IEUNG - ,0xB770 ,0xD19A //HANGUL SYLLABLE THIEUTH YE CIEUC - ,0xB771 ,0xD19B //HANGUL SYLLABLE THIEUTH YE CHIEUCH - ,0xB772 ,0xD19C //HANGUL SYLLABLE THIEUTH YE KHIEUKH - ,0xB773 ,0xD19D //HANGUL SYLLABLE THIEUTH YE THIEUTH - ,0xB774 ,0xD19E //HANGUL SYLLABLE THIEUTH YE PHIEUPH - ,0xB775 ,0xD19F //HANGUL SYLLABLE THIEUTH YE HIEUH - ,0xB776 ,0xD1A2 //HANGUL SYLLABLE THIEUTH O SSANGKIYEOK - ,0xB777 ,0xD1A3 //HANGUL SYLLABLE THIEUTH O KIYEOKSIOS - ,0xB778 ,0xD1A5 //HANGUL SYLLABLE THIEUTH O NIEUNCIEUC - ,0xB779 ,0xD1A6 //HANGUL SYLLABLE THIEUTH O NIEUNHIEUH - ,0xB77A ,0xD1A7 //HANGUL SYLLABLE THIEUTH O TIKEUT - ,0xB781 ,0xD1A9 //HANGUL SYLLABLE THIEUTH O RIEULKIYEOK - ,0xB782 ,0xD1AA //HANGUL SYLLABLE THIEUTH O RIEULMIEUM - ,0xB783 ,0xD1AB //HANGUL SYLLABLE THIEUTH O RIEULPIEUP - ,0xB784 ,0xD1AC //HANGUL SYLLABLE THIEUTH O RIEULSIOS - ,0xB785 ,0xD1AD //HANGUL SYLLABLE THIEUTH O RIEULTHIEUTH - ,0xB786 ,0xD1AE //HANGUL SYLLABLE THIEUTH O RIEULPHIEUPH - ,0xB787 ,0xD1AF //HANGUL SYLLABLE THIEUTH O RIEULHIEUH - ,0xB788 ,0xD1B2 //HANGUL SYLLABLE THIEUTH O PIEUPSIOS - ,0xB789 ,0xD1B4 //HANGUL SYLLABLE THIEUTH O SSANGSIOS - ,0xB78A ,0xD1B6 //HANGUL SYLLABLE THIEUTH O CIEUC - ,0xB78B ,0xD1B7 //HANGUL SYLLABLE THIEUTH O CHIEUCH - ,0xB78C ,0xD1B8 //HANGUL SYLLABLE THIEUTH O KHIEUKH - ,0xB78D ,0xD1B9 //HANGUL SYLLABLE THIEUTH O THIEUTH - ,0xB78E ,0xD1BB //HANGUL SYLLABLE THIEUTH O HIEUH - ,0xB78F ,0xD1BD //HANGUL SYLLABLE THIEUTH WA KIYEOK - ,0xB790 ,0xD1BE //HANGUL SYLLABLE THIEUTH WA SSANGKIYEOK - ,0xB791 ,0xD1BF //HANGUL SYLLABLE THIEUTH WA KIYEOKSIOS - ,0xB792 ,0xD1C1 //HANGUL SYLLABLE THIEUTH WA NIEUNCIEUC - ,0xB793 ,0xD1C2 //HANGUL SYLLABLE THIEUTH WA NIEUNHIEUH - ,0xB794 ,0xD1C3 //HANGUL SYLLABLE THIEUTH WA TIKEUT - ,0xB795 ,0xD1C4 //HANGUL SYLLABLE THIEUTH WA RIEUL - ,0xB796 ,0xD1C5 //HANGUL SYLLABLE THIEUTH WA RIEULKIYEOK - ,0xB797 ,0xD1C6 //HANGUL SYLLABLE THIEUTH WA RIEULMIEUM - ,0xB798 ,0xD1C7 //HANGUL SYLLABLE THIEUTH WA RIEULPIEUP - ,0xB799 ,0xD1C8 //HANGUL SYLLABLE THIEUTH WA RIEULSIOS - ,0xB79A ,0xD1C9 //HANGUL SYLLABLE THIEUTH WA RIEULTHIEUTH - ,0xB79B ,0xD1CA //HANGUL SYLLABLE THIEUTH WA RIEULPHIEUPH - ,0xB79C ,0xD1CB //HANGUL SYLLABLE THIEUTH WA RIEULHIEUH - ,0xB79D ,0xD1CC //HANGUL SYLLABLE THIEUTH WA MIEUM - ,0xB79E ,0xD1CD //HANGUL SYLLABLE THIEUTH WA PIEUP - ,0xB79F ,0xD1CE //HANGUL SYLLABLE THIEUTH WA PIEUPSIOS - ,0xB7A0 ,0xD1CF //HANGUL SYLLABLE THIEUTH WA SIOS - ,0xB7A1 ,0xB798 //HANGUL SYLLABLE RIEUL AE - ,0xB7A2 ,0xB799 //HANGUL SYLLABLE RIEUL AE KIYEOK - ,0xB7A3 ,0xB79C //HANGUL SYLLABLE RIEUL AE NIEUN - ,0xB7A4 ,0xB7A0 //HANGUL SYLLABLE RIEUL AE RIEUL - ,0xB7A5 ,0xB7A8 //HANGUL SYLLABLE RIEUL AE MIEUM - ,0xB7A6 ,0xB7A9 //HANGUL SYLLABLE RIEUL AE PIEUP - ,0xB7A7 ,0xB7AB //HANGUL SYLLABLE RIEUL AE SIOS - ,0xB7A8 ,0xB7AC //HANGUL SYLLABLE RIEUL AE SSANGSIOS - ,0xB7A9 ,0xB7AD //HANGUL SYLLABLE RIEUL AE IEUNG - ,0xB7AA ,0xB7B4 //HANGUL SYLLABLE RIEUL YA - ,0xB7AB ,0xB7B5 //HANGUL SYLLABLE RIEUL YA KIYEOK - ,0xB7AC ,0xB7B8 //HANGUL SYLLABLE RIEUL YA NIEUN - ,0xB7AD ,0xB7C7 //HANGUL SYLLABLE RIEUL YA SIOS - ,0xB7AE ,0xB7C9 //HANGUL SYLLABLE RIEUL YA IEUNG - ,0xB7AF ,0xB7EC //HANGUL SYLLABLE RIEUL EO - ,0xB7B0 ,0xB7ED //HANGUL SYLLABLE RIEUL EO KIYEOK - ,0xB7B1 ,0xB7F0 //HANGUL SYLLABLE RIEUL EO NIEUN - ,0xB7B2 ,0xB7F4 //HANGUL SYLLABLE RIEUL EO RIEUL - ,0xB7B3 ,0xB7FC //HANGUL SYLLABLE RIEUL EO MIEUM - ,0xB7B4 ,0xB7FD //HANGUL SYLLABLE RIEUL EO PIEUP - ,0xB7B5 ,0xB7FF //HANGUL SYLLABLE RIEUL EO SIOS - ,0xB7B6 ,0xB800 //HANGUL SYLLABLE RIEUL EO SSANGSIOS - ,0xB7B7 ,0xB801 //HANGUL SYLLABLE RIEUL EO IEUNG - ,0xB7B8 ,0xB807 //HANGUL SYLLABLE RIEUL EO HIEUH - ,0xB7B9 ,0xB808 //HANGUL SYLLABLE RIEUL E - ,0xB7BA ,0xB809 //HANGUL SYLLABLE RIEUL E KIYEOK - ,0xB7BB ,0xB80C //HANGUL SYLLABLE RIEUL E NIEUN - ,0xB7BC ,0xB810 //HANGUL SYLLABLE RIEUL E RIEUL - ,0xB7BD ,0xB818 //HANGUL SYLLABLE RIEUL E MIEUM - ,0xB7BE ,0xB819 //HANGUL SYLLABLE RIEUL E PIEUP - ,0xB7BF ,0xB81B //HANGUL SYLLABLE RIEUL E SIOS - ,0xB7C0 ,0xB81D //HANGUL SYLLABLE RIEUL E IEUNG - ,0xB7C1 ,0xB824 //HANGUL SYLLABLE RIEUL YEO - ,0xB7C2 ,0xB825 //HANGUL SYLLABLE RIEUL YEO KIYEOK - ,0xB7C3 ,0xB828 //HANGUL SYLLABLE RIEUL YEO NIEUN - ,0xB7C4 ,0xB82C //HANGUL SYLLABLE RIEUL YEO RIEUL - ,0xB7C5 ,0xB834 //HANGUL SYLLABLE RIEUL YEO MIEUM - ,0xB7C6 ,0xB835 //HANGUL SYLLABLE RIEUL YEO PIEUP - ,0xB7C7 ,0xB837 //HANGUL SYLLABLE RIEUL YEO SIOS - ,0xB7C8 ,0xB838 //HANGUL SYLLABLE RIEUL YEO SSANGSIOS - ,0xB7C9 ,0xB839 //HANGUL SYLLABLE RIEUL YEO IEUNG - ,0xB7CA ,0xB840 //HANGUL SYLLABLE RIEUL YE - ,0xB7CB ,0xB844 //HANGUL SYLLABLE RIEUL YE NIEUN - ,0xB7CC ,0xB851 //HANGUL SYLLABLE RIEUL YE PIEUP - ,0xB7CD ,0xB853 //HANGUL SYLLABLE RIEUL YE SIOS - ,0xB7CE ,0xB85C //HANGUL SYLLABLE RIEUL O - ,0xB7CF ,0xB85D //HANGUL SYLLABLE RIEUL O KIYEOK - ,0xB7D0 ,0xB860 //HANGUL SYLLABLE RIEUL O NIEUN - ,0xB7D1 ,0xB864 //HANGUL SYLLABLE RIEUL O RIEUL - ,0xB7D2 ,0xB86C //HANGUL SYLLABLE RIEUL O MIEUM - ,0xB7D3 ,0xB86D //HANGUL SYLLABLE RIEUL O PIEUP - ,0xB7D4 ,0xB86F //HANGUL SYLLABLE RIEUL O SIOS - ,0xB7D5 ,0xB871 //HANGUL SYLLABLE RIEUL O IEUNG - ,0xB7D6 ,0xB878 //HANGUL SYLLABLE RIEUL WA - ,0xB7D7 ,0xB87C //HANGUL SYLLABLE RIEUL WA NIEUN - ,0xB7D8 ,0xB88D //HANGUL SYLLABLE RIEUL WA IEUNG - ,0xB7D9 ,0xB8A8 //HANGUL SYLLABLE RIEUL WAE SSANGSIOS - ,0xB7DA ,0xB8B0 //HANGUL SYLLABLE RIEUL OE - ,0xB7DB ,0xB8B4 //HANGUL SYLLABLE RIEUL OE NIEUN - ,0xB7DC ,0xB8B8 //HANGUL SYLLABLE RIEUL OE RIEUL - ,0xB7DD ,0xB8C0 //HANGUL SYLLABLE RIEUL OE MIEUM - ,0xB7DE ,0xB8C1 //HANGUL SYLLABLE RIEUL OE PIEUP - ,0xB7DF ,0xB8C3 //HANGUL SYLLABLE RIEUL OE SIOS - ,0xB7E0 ,0xB8C5 //HANGUL SYLLABLE RIEUL OE IEUNG - ,0xB7E1 ,0xB8CC //HANGUL SYLLABLE RIEUL YO - ,0xB7E2 ,0xB8D0 //HANGUL SYLLABLE RIEUL YO NIEUN - ,0xB7E3 ,0xB8D4 //HANGUL SYLLABLE RIEUL YO RIEUL - ,0xB7E4 ,0xB8DD //HANGUL SYLLABLE RIEUL YO PIEUP - ,0xB7E5 ,0xB8DF //HANGUL SYLLABLE RIEUL YO SIOS - ,0xB7E6 ,0xB8E1 //HANGUL SYLLABLE RIEUL YO IEUNG - ,0xB7E7 ,0xB8E8 //HANGUL SYLLABLE RIEUL U - ,0xB7E8 ,0xB8E9 //HANGUL SYLLABLE RIEUL U KIYEOK - ,0xB7E9 ,0xB8EC //HANGUL SYLLABLE RIEUL U NIEUN - ,0xB7EA ,0xB8F0 //HANGUL SYLLABLE RIEUL U RIEUL - ,0xB7EB ,0xB8F8 //HANGUL SYLLABLE RIEUL U MIEUM - ,0xB7EC ,0xB8F9 //HANGUL SYLLABLE RIEUL U PIEUP - ,0xB7ED ,0xB8FB //HANGUL SYLLABLE RIEUL U SIOS - ,0xB7EE ,0xB8FD //HANGUL SYLLABLE RIEUL U IEUNG - ,0xB7EF ,0xB904 //HANGUL SYLLABLE RIEUL WEO - ,0xB7F0 ,0xB918 //HANGUL SYLLABLE RIEUL WEO SSANGSIOS - ,0xB7F1 ,0xB920 //HANGUL SYLLABLE RIEUL WE - ,0xB7F2 ,0xB93C //HANGUL SYLLABLE RIEUL WI - ,0xB7F3 ,0xB93D //HANGUL SYLLABLE RIEUL WI KIYEOK - ,0xB7F4 ,0xB940 //HANGUL SYLLABLE RIEUL WI NIEUN - ,0xB7F5 ,0xB944 //HANGUL SYLLABLE RIEUL WI RIEUL - ,0xB7F6 ,0xB94C //HANGUL SYLLABLE RIEUL WI MIEUM - ,0xB7F7 ,0xB94F //HANGUL SYLLABLE RIEUL WI SIOS - ,0xB7F8 ,0xB951 //HANGUL SYLLABLE RIEUL WI IEUNG - ,0xB7F9 ,0xB958 //HANGUL SYLLABLE RIEUL YU - ,0xB7FA ,0xB959 //HANGUL SYLLABLE RIEUL YU KIYEOK - ,0xB7FB ,0xB95C //HANGUL SYLLABLE RIEUL YU NIEUN - ,0xB7FC ,0xB960 //HANGUL SYLLABLE RIEUL YU RIEUL - ,0xB7FD ,0xB968 //HANGUL SYLLABLE RIEUL YU MIEUM - ,0xB7FE ,0xB969 //HANGUL SYLLABLE RIEUL YU PIEUP - ,0xB841 ,0xD1D0 //HANGUL SYLLABLE THIEUTH WA SSANGSIOS - ,0xB842 ,0xD1D1 //HANGUL SYLLABLE THIEUTH WA IEUNG - ,0xB843 ,0xD1D2 //HANGUL SYLLABLE THIEUTH WA CIEUC - ,0xB844 ,0xD1D3 //HANGUL SYLLABLE THIEUTH WA CHIEUCH - ,0xB845 ,0xD1D4 //HANGUL SYLLABLE THIEUTH WA KHIEUKH - ,0xB846 ,0xD1D5 //HANGUL SYLLABLE THIEUTH WA THIEUTH - ,0xB847 ,0xD1D6 //HANGUL SYLLABLE THIEUTH WA PHIEUPH - ,0xB848 ,0xD1D7 //HANGUL SYLLABLE THIEUTH WA HIEUH - ,0xB849 ,0xD1D9 //HANGUL SYLLABLE THIEUTH WAE KIYEOK - ,0xB84A ,0xD1DA //HANGUL SYLLABLE THIEUTH WAE SSANGKIYEOK - ,0xB84B ,0xD1DB //HANGUL SYLLABLE THIEUTH WAE KIYEOKSIOS - ,0xB84C ,0xD1DC //HANGUL SYLLABLE THIEUTH WAE NIEUN - ,0xB84D ,0xD1DD //HANGUL SYLLABLE THIEUTH WAE NIEUNCIEUC - ,0xB84E ,0xD1DE //HANGUL SYLLABLE THIEUTH WAE NIEUNHIEUH - ,0xB84F ,0xD1DF //HANGUL SYLLABLE THIEUTH WAE TIKEUT - ,0xB850 ,0xD1E0 //HANGUL SYLLABLE THIEUTH WAE RIEUL - ,0xB851 ,0xD1E1 //HANGUL SYLLABLE THIEUTH WAE RIEULKIYEOK - ,0xB852 ,0xD1E2 //HANGUL SYLLABLE THIEUTH WAE RIEULMIEUM - ,0xB853 ,0xD1E3 //HANGUL SYLLABLE THIEUTH WAE RIEULPIEUP - ,0xB854 ,0xD1E4 //HANGUL SYLLABLE THIEUTH WAE RIEULSIOS - ,0xB855 ,0xD1E5 //HANGUL SYLLABLE THIEUTH WAE RIEULTHIEUTH - ,0xB856 ,0xD1E6 //HANGUL SYLLABLE THIEUTH WAE RIEULPHIEUPH - ,0xB857 ,0xD1E7 //HANGUL SYLLABLE THIEUTH WAE RIEULHIEUH - ,0xB858 ,0xD1E8 //HANGUL SYLLABLE THIEUTH WAE MIEUM - ,0xB859 ,0xD1E9 //HANGUL SYLLABLE THIEUTH WAE PIEUP - ,0xB85A ,0xD1EA //HANGUL SYLLABLE THIEUTH WAE PIEUPSIOS - ,0xB861 ,0xD1EB //HANGUL SYLLABLE THIEUTH WAE SIOS - ,0xB862 ,0xD1EC //HANGUL SYLLABLE THIEUTH WAE SSANGSIOS - ,0xB863 ,0xD1ED //HANGUL SYLLABLE THIEUTH WAE IEUNG - ,0xB864 ,0xD1EE //HANGUL SYLLABLE THIEUTH WAE CIEUC - ,0xB865 ,0xD1EF //HANGUL SYLLABLE THIEUTH WAE CHIEUCH - ,0xB866 ,0xD1F0 //HANGUL SYLLABLE THIEUTH WAE KHIEUKH - ,0xB867 ,0xD1F1 //HANGUL SYLLABLE THIEUTH WAE THIEUTH - ,0xB868 ,0xD1F2 //HANGUL SYLLABLE THIEUTH WAE PHIEUPH - ,0xB869 ,0xD1F3 //HANGUL SYLLABLE THIEUTH WAE HIEUH - ,0xB86A ,0xD1F5 //HANGUL SYLLABLE THIEUTH OE KIYEOK - ,0xB86B ,0xD1F6 //HANGUL SYLLABLE THIEUTH OE SSANGKIYEOK - ,0xB86C ,0xD1F7 //HANGUL SYLLABLE THIEUTH OE KIYEOKSIOS - ,0xB86D ,0xD1F9 //HANGUL SYLLABLE THIEUTH OE NIEUNCIEUC - ,0xB86E ,0xD1FA //HANGUL SYLLABLE THIEUTH OE NIEUNHIEUH - ,0xB86F ,0xD1FB //HANGUL SYLLABLE THIEUTH OE TIKEUT - ,0xB870 ,0xD1FC //HANGUL SYLLABLE THIEUTH OE RIEUL - ,0xB871 ,0xD1FD //HANGUL SYLLABLE THIEUTH OE RIEULKIYEOK - ,0xB872 ,0xD1FE //HANGUL SYLLABLE THIEUTH OE RIEULMIEUM - ,0xB873 ,0xD1FF //HANGUL SYLLABLE THIEUTH OE RIEULPIEUP - ,0xB874 ,0xD200 //HANGUL SYLLABLE THIEUTH OE RIEULSIOS - ,0xB875 ,0xD201 //HANGUL SYLLABLE THIEUTH OE RIEULTHIEUTH - ,0xB876 ,0xD202 //HANGUL SYLLABLE THIEUTH OE RIEULPHIEUPH - ,0xB877 ,0xD203 //HANGUL SYLLABLE THIEUTH OE RIEULHIEUH - ,0xB878 ,0xD204 //HANGUL SYLLABLE THIEUTH OE MIEUM - ,0xB879 ,0xD205 //HANGUL SYLLABLE THIEUTH OE PIEUP - ,0xB87A ,0xD206 //HANGUL SYLLABLE THIEUTH OE PIEUPSIOS - ,0xB881 ,0xD208 //HANGUL SYLLABLE THIEUTH OE SSANGSIOS - ,0xB882 ,0xD20A //HANGUL SYLLABLE THIEUTH OE CIEUC - ,0xB883 ,0xD20B //HANGUL SYLLABLE THIEUTH OE CHIEUCH - ,0xB884 ,0xD20C //HANGUL SYLLABLE THIEUTH OE KHIEUKH - ,0xB885 ,0xD20D //HANGUL SYLLABLE THIEUTH OE THIEUTH - ,0xB886 ,0xD20E //HANGUL SYLLABLE THIEUTH OE PHIEUPH - ,0xB887 ,0xD20F //HANGUL SYLLABLE THIEUTH OE HIEUH - ,0xB888 ,0xD211 //HANGUL SYLLABLE THIEUTH YO KIYEOK - ,0xB889 ,0xD212 //HANGUL SYLLABLE THIEUTH YO SSANGKIYEOK - ,0xB88A ,0xD213 //HANGUL SYLLABLE THIEUTH YO KIYEOKSIOS - ,0xB88B ,0xD214 //HANGUL SYLLABLE THIEUTH YO NIEUN - ,0xB88C ,0xD215 //HANGUL SYLLABLE THIEUTH YO NIEUNCIEUC - ,0xB88D ,0xD216 //HANGUL SYLLABLE THIEUTH YO NIEUNHIEUH - ,0xB88E ,0xD217 //HANGUL SYLLABLE THIEUTH YO TIKEUT - ,0xB88F ,0xD218 //HANGUL SYLLABLE THIEUTH YO RIEUL - ,0xB890 ,0xD219 //HANGUL SYLLABLE THIEUTH YO RIEULKIYEOK - ,0xB891 ,0xD21A //HANGUL SYLLABLE THIEUTH YO RIEULMIEUM - ,0xB892 ,0xD21B //HANGUL SYLLABLE THIEUTH YO RIEULPIEUP - ,0xB893 ,0xD21C //HANGUL SYLLABLE THIEUTH YO RIEULSIOS - ,0xB894 ,0xD21D //HANGUL SYLLABLE THIEUTH YO RIEULTHIEUTH - ,0xB895 ,0xD21E //HANGUL SYLLABLE THIEUTH YO RIEULPHIEUPH - ,0xB896 ,0xD21F //HANGUL SYLLABLE THIEUTH YO RIEULHIEUH - ,0xB897 ,0xD220 //HANGUL SYLLABLE THIEUTH YO MIEUM - ,0xB898 ,0xD221 //HANGUL SYLLABLE THIEUTH YO PIEUP - ,0xB899 ,0xD222 //HANGUL SYLLABLE THIEUTH YO PIEUPSIOS - ,0xB89A ,0xD223 //HANGUL SYLLABLE THIEUTH YO SIOS - ,0xB89B ,0xD224 //HANGUL SYLLABLE THIEUTH YO SSANGSIOS - ,0xB89C ,0xD225 //HANGUL SYLLABLE THIEUTH YO IEUNG - ,0xB89D ,0xD226 //HANGUL SYLLABLE THIEUTH YO CIEUC - ,0xB89E ,0xD227 //HANGUL SYLLABLE THIEUTH YO CHIEUCH - ,0xB89F ,0xD228 //HANGUL SYLLABLE THIEUTH YO KHIEUKH - ,0xB8A0 ,0xD229 //HANGUL SYLLABLE THIEUTH YO THIEUTH - ,0xB8A1 ,0xB96B //HANGUL SYLLABLE RIEUL YU SIOS - ,0xB8A2 ,0xB96D //HANGUL SYLLABLE RIEUL YU IEUNG - ,0xB8A3 ,0xB974 //HANGUL SYLLABLE RIEUL EU - ,0xB8A4 ,0xB975 //HANGUL SYLLABLE RIEUL EU KIYEOK - ,0xB8A5 ,0xB978 //HANGUL SYLLABLE RIEUL EU NIEUN - ,0xB8A6 ,0xB97C //HANGUL SYLLABLE RIEUL EU RIEUL - ,0xB8A7 ,0xB984 //HANGUL SYLLABLE RIEUL EU MIEUM - ,0xB8A8 ,0xB985 //HANGUL SYLLABLE RIEUL EU PIEUP - ,0xB8A9 ,0xB987 //HANGUL SYLLABLE RIEUL EU SIOS - ,0xB8AA ,0xB989 //HANGUL SYLLABLE RIEUL EU IEUNG - ,0xB8AB ,0xB98A //HANGUL SYLLABLE RIEUL EU CIEUC - ,0xB8AC ,0xB98D //HANGUL SYLLABLE RIEUL EU THIEUTH - ,0xB8AD ,0xB98E //HANGUL SYLLABLE RIEUL EU PHIEUPH - ,0xB8AE ,0xB9AC //HANGUL SYLLABLE RIEUL I - ,0xB8AF ,0xB9AD //HANGUL SYLLABLE RIEUL I KIYEOK - ,0xB8B0 ,0xB9B0 //HANGUL SYLLABLE RIEUL I NIEUN - ,0xB8B1 ,0xB9B4 //HANGUL SYLLABLE RIEUL I RIEUL - ,0xB8B2 ,0xB9BC //HANGUL SYLLABLE RIEUL I MIEUM - ,0xB8B3 ,0xB9BD //HANGUL SYLLABLE RIEUL I PIEUP - ,0xB8B4 ,0xB9BF //HANGUL SYLLABLE RIEUL I SIOS - ,0xB8B5 ,0xB9C1 //HANGUL SYLLABLE RIEUL I IEUNG - ,0xB8B6 ,0xB9C8 //HANGUL SYLLABLE MIEUM A - ,0xB8B7 ,0xB9C9 //HANGUL SYLLABLE MIEUM A KIYEOK - ,0xB8B8 ,0xB9CC //HANGUL SYLLABLE MIEUM A NIEUN - ,0xB8B9 ,0xB9CE //HANGUL SYLLABLE MIEUM A NIEUNHIEUH - ,0xB8BA ,0xB9CF //HANGUL SYLLABLE MIEUM A TIKEUT - ,0xB8BB ,0xB9D0 //HANGUL SYLLABLE MIEUM A RIEUL - ,0xB8BC ,0xB9D1 //HANGUL SYLLABLE MIEUM A RIEULKIYEOK - ,0xB8BD ,0xB9D2 //HANGUL SYLLABLE MIEUM A RIEULMIEUM - ,0xB8BE ,0xB9D8 //HANGUL SYLLABLE MIEUM A MIEUM - ,0xB8BF ,0xB9D9 //HANGUL SYLLABLE MIEUM A PIEUP - ,0xB8C0 ,0xB9DB //HANGUL SYLLABLE MIEUM A SIOS - ,0xB8C1 ,0xB9DD //HANGUL SYLLABLE MIEUM A IEUNG - ,0xB8C2 ,0xB9DE //HANGUL SYLLABLE MIEUM A CIEUC - ,0xB8C3 ,0xB9E1 //HANGUL SYLLABLE MIEUM A THIEUTH - ,0xB8C4 ,0xB9E3 //HANGUL SYLLABLE MIEUM A HIEUH - ,0xB8C5 ,0xB9E4 //HANGUL SYLLABLE MIEUM AE - ,0xB8C6 ,0xB9E5 //HANGUL SYLLABLE MIEUM AE KIYEOK - ,0xB8C7 ,0xB9E8 //HANGUL SYLLABLE MIEUM AE NIEUN - ,0xB8C8 ,0xB9EC //HANGUL SYLLABLE MIEUM AE RIEUL - ,0xB8C9 ,0xB9F4 //HANGUL SYLLABLE MIEUM AE MIEUM - ,0xB8CA ,0xB9F5 //HANGUL SYLLABLE MIEUM AE PIEUP - ,0xB8CB ,0xB9F7 //HANGUL SYLLABLE MIEUM AE SIOS - ,0xB8CC ,0xB9F8 //HANGUL SYLLABLE MIEUM AE SSANGSIOS - ,0xB8CD ,0xB9F9 //HANGUL SYLLABLE MIEUM AE IEUNG - ,0xB8CE ,0xB9FA //HANGUL SYLLABLE MIEUM AE CIEUC - ,0xB8CF ,0xBA00 //HANGUL SYLLABLE MIEUM YA - ,0xB8D0 ,0xBA01 //HANGUL SYLLABLE MIEUM YA KIYEOK - ,0xB8D1 ,0xBA08 //HANGUL SYLLABLE MIEUM YA RIEUL - ,0xB8D2 ,0xBA15 //HANGUL SYLLABLE MIEUM YA IEUNG - ,0xB8D3 ,0xBA38 //HANGUL SYLLABLE MIEUM EO - ,0xB8D4 ,0xBA39 //HANGUL SYLLABLE MIEUM EO KIYEOK - ,0xB8D5 ,0xBA3C //HANGUL SYLLABLE MIEUM EO NIEUN - ,0xB8D6 ,0xBA40 //HANGUL SYLLABLE MIEUM EO RIEUL - ,0xB8D7 ,0xBA42 //HANGUL SYLLABLE MIEUM EO RIEULMIEUM - ,0xB8D8 ,0xBA48 //HANGUL SYLLABLE MIEUM EO MIEUM - ,0xB8D9 ,0xBA49 //HANGUL SYLLABLE MIEUM EO PIEUP - ,0xB8DA ,0xBA4B //HANGUL SYLLABLE MIEUM EO SIOS - ,0xB8DB ,0xBA4D //HANGUL SYLLABLE MIEUM EO IEUNG - ,0xB8DC ,0xBA4E //HANGUL SYLLABLE MIEUM EO CIEUC - ,0xB8DD ,0xBA53 //HANGUL SYLLABLE MIEUM EO HIEUH - ,0xB8DE ,0xBA54 //HANGUL SYLLABLE MIEUM E - ,0xB8DF ,0xBA55 //HANGUL SYLLABLE MIEUM E KIYEOK - ,0xB8E0 ,0xBA58 //HANGUL SYLLABLE MIEUM E NIEUN - ,0xB8E1 ,0xBA5C //HANGUL SYLLABLE MIEUM E RIEUL - ,0xB8E2 ,0xBA64 //HANGUL SYLLABLE MIEUM E MIEUM - ,0xB8E3 ,0xBA65 //HANGUL SYLLABLE MIEUM E PIEUP - ,0xB8E4 ,0xBA67 //HANGUL SYLLABLE MIEUM E SIOS - ,0xB8E5 ,0xBA68 //HANGUL SYLLABLE MIEUM E SSANGSIOS - ,0xB8E6 ,0xBA69 //HANGUL SYLLABLE MIEUM E IEUNG - ,0xB8E7 ,0xBA70 //HANGUL SYLLABLE MIEUM YEO - ,0xB8E8 ,0xBA71 //HANGUL SYLLABLE MIEUM YEO KIYEOK - ,0xB8E9 ,0xBA74 //HANGUL SYLLABLE MIEUM YEO NIEUN - ,0xB8EA ,0xBA78 //HANGUL SYLLABLE MIEUM YEO RIEUL - ,0xB8EB ,0xBA83 //HANGUL SYLLABLE MIEUM YEO SIOS - ,0xB8EC ,0xBA84 //HANGUL SYLLABLE MIEUM YEO SSANGSIOS - ,0xB8ED ,0xBA85 //HANGUL SYLLABLE MIEUM YEO IEUNG - ,0xB8EE ,0xBA87 //HANGUL SYLLABLE MIEUM YEO CHIEUCH - ,0xB8EF ,0xBA8C //HANGUL SYLLABLE MIEUM YE - ,0xB8F0 ,0xBAA8 //HANGUL SYLLABLE MIEUM O - ,0xB8F1 ,0xBAA9 //HANGUL SYLLABLE MIEUM O KIYEOK - ,0xB8F2 ,0xBAAB //HANGUL SYLLABLE MIEUM O KIYEOKSIOS - ,0xB8F3 ,0xBAAC //HANGUL SYLLABLE MIEUM O NIEUN - ,0xB8F4 ,0xBAB0 //HANGUL SYLLABLE MIEUM O RIEUL - ,0xB8F5 ,0xBAB2 //HANGUL SYLLABLE MIEUM O RIEULMIEUM - ,0xB8F6 ,0xBAB8 //HANGUL SYLLABLE MIEUM O MIEUM - ,0xB8F7 ,0xBAB9 //HANGUL SYLLABLE MIEUM O PIEUP - ,0xB8F8 ,0xBABB //HANGUL SYLLABLE MIEUM O SIOS - ,0xB8F9 ,0xBABD //HANGUL SYLLABLE MIEUM O IEUNG - ,0xB8FA ,0xBAC4 //HANGUL SYLLABLE MIEUM WA - ,0xB8FB ,0xBAC8 //HANGUL SYLLABLE MIEUM WA NIEUN - ,0xB8FC ,0xBAD8 //HANGUL SYLLABLE MIEUM WA SSANGSIOS - ,0xB8FD ,0xBAD9 //HANGUL SYLLABLE MIEUM WA IEUNG - ,0xB8FE ,0xBAFC //HANGUL SYLLABLE MIEUM OE - ,0xB941 ,0xD22A //HANGUL SYLLABLE THIEUTH YO PHIEUPH - ,0xB942 ,0xD22B //HANGUL SYLLABLE THIEUTH YO HIEUH - ,0xB943 ,0xD22E //HANGUL SYLLABLE THIEUTH U SSANGKIYEOK - ,0xB944 ,0xD22F //HANGUL SYLLABLE THIEUTH U KIYEOKSIOS - ,0xB945 ,0xD231 //HANGUL SYLLABLE THIEUTH U NIEUNCIEUC - ,0xB946 ,0xD232 //HANGUL SYLLABLE THIEUTH U NIEUNHIEUH - ,0xB947 ,0xD233 //HANGUL SYLLABLE THIEUTH U TIKEUT - ,0xB948 ,0xD235 //HANGUL SYLLABLE THIEUTH U RIEULKIYEOK - ,0xB949 ,0xD236 //HANGUL SYLLABLE THIEUTH U RIEULMIEUM - ,0xB94A ,0xD237 //HANGUL SYLLABLE THIEUTH U RIEULPIEUP - ,0xB94B ,0xD238 //HANGUL SYLLABLE THIEUTH U RIEULSIOS - ,0xB94C ,0xD239 //HANGUL SYLLABLE THIEUTH U RIEULTHIEUTH - ,0xB94D ,0xD23A //HANGUL SYLLABLE THIEUTH U RIEULPHIEUPH - ,0xB94E ,0xD23B //HANGUL SYLLABLE THIEUTH U RIEULHIEUH - ,0xB94F ,0xD23E //HANGUL SYLLABLE THIEUTH U PIEUPSIOS - ,0xB950 ,0xD240 //HANGUL SYLLABLE THIEUTH U SSANGSIOS - ,0xB951 ,0xD242 //HANGUL SYLLABLE THIEUTH U CIEUC - ,0xB952 ,0xD243 //HANGUL SYLLABLE THIEUTH U CHIEUCH - ,0xB953 ,0xD244 //HANGUL SYLLABLE THIEUTH U KHIEUKH - ,0xB954 ,0xD245 //HANGUL SYLLABLE THIEUTH U THIEUTH - ,0xB955 ,0xD246 //HANGUL SYLLABLE THIEUTH U PHIEUPH - ,0xB956 ,0xD247 //HANGUL SYLLABLE THIEUTH U HIEUH - ,0xB957 ,0xD249 //HANGUL SYLLABLE THIEUTH WEO KIYEOK - ,0xB958 ,0xD24A //HANGUL SYLLABLE THIEUTH WEO SSANGKIYEOK - ,0xB959 ,0xD24B //HANGUL SYLLABLE THIEUTH WEO KIYEOKSIOS - ,0xB95A ,0xD24C //HANGUL SYLLABLE THIEUTH WEO NIEUN - ,0xB961 ,0xD24D //HANGUL SYLLABLE THIEUTH WEO NIEUNCIEUC - ,0xB962 ,0xD24E //HANGUL SYLLABLE THIEUTH WEO NIEUNHIEUH - ,0xB963 ,0xD24F //HANGUL SYLLABLE THIEUTH WEO TIKEUT - ,0xB964 ,0xD250 //HANGUL SYLLABLE THIEUTH WEO RIEUL - ,0xB965 ,0xD251 //HANGUL SYLLABLE THIEUTH WEO RIEULKIYEOK - ,0xB966 ,0xD252 //HANGUL SYLLABLE THIEUTH WEO RIEULMIEUM - ,0xB967 ,0xD253 //HANGUL SYLLABLE THIEUTH WEO RIEULPIEUP - ,0xB968 ,0xD254 //HANGUL SYLLABLE THIEUTH WEO RIEULSIOS - ,0xB969 ,0xD255 //HANGUL SYLLABLE THIEUTH WEO RIEULTHIEUTH - ,0xB96A ,0xD256 //HANGUL SYLLABLE THIEUTH WEO RIEULPHIEUPH - ,0xB96B ,0xD257 //HANGUL SYLLABLE THIEUTH WEO RIEULHIEUH - ,0xB96C ,0xD258 //HANGUL SYLLABLE THIEUTH WEO MIEUM - ,0xB96D ,0xD259 //HANGUL SYLLABLE THIEUTH WEO PIEUP - ,0xB96E ,0xD25A //HANGUL SYLLABLE THIEUTH WEO PIEUPSIOS - ,0xB96F ,0xD25B //HANGUL SYLLABLE THIEUTH WEO SIOS - ,0xB970 ,0xD25D //HANGUL SYLLABLE THIEUTH WEO IEUNG - ,0xB971 ,0xD25E //HANGUL SYLLABLE THIEUTH WEO CIEUC - ,0xB972 ,0xD25F //HANGUL SYLLABLE THIEUTH WEO CHIEUCH - ,0xB973 ,0xD260 //HANGUL SYLLABLE THIEUTH WEO KHIEUKH - ,0xB974 ,0xD261 //HANGUL SYLLABLE THIEUTH WEO THIEUTH - ,0xB975 ,0xD262 //HANGUL SYLLABLE THIEUTH WEO PHIEUPH - ,0xB976 ,0xD263 //HANGUL SYLLABLE THIEUTH WEO HIEUH - ,0xB977 ,0xD265 //HANGUL SYLLABLE THIEUTH WE KIYEOK - ,0xB978 ,0xD266 //HANGUL SYLLABLE THIEUTH WE SSANGKIYEOK - ,0xB979 ,0xD267 //HANGUL SYLLABLE THIEUTH WE KIYEOKSIOS - ,0xB97A ,0xD268 //HANGUL SYLLABLE THIEUTH WE NIEUN - ,0xB981 ,0xD269 //HANGUL SYLLABLE THIEUTH WE NIEUNCIEUC - ,0xB982 ,0xD26A //HANGUL SYLLABLE THIEUTH WE NIEUNHIEUH - ,0xB983 ,0xD26B //HANGUL SYLLABLE THIEUTH WE TIKEUT - ,0xB984 ,0xD26C //HANGUL SYLLABLE THIEUTH WE RIEUL - ,0xB985 ,0xD26D //HANGUL SYLLABLE THIEUTH WE RIEULKIYEOK - ,0xB986 ,0xD26E //HANGUL SYLLABLE THIEUTH WE RIEULMIEUM - ,0xB987 ,0xD26F //HANGUL SYLLABLE THIEUTH WE RIEULPIEUP - ,0xB988 ,0xD270 //HANGUL SYLLABLE THIEUTH WE RIEULSIOS - ,0xB989 ,0xD271 //HANGUL SYLLABLE THIEUTH WE RIEULTHIEUTH - ,0xB98A ,0xD272 //HANGUL SYLLABLE THIEUTH WE RIEULPHIEUPH - ,0xB98B ,0xD273 //HANGUL SYLLABLE THIEUTH WE RIEULHIEUH - ,0xB98C ,0xD274 //HANGUL SYLLABLE THIEUTH WE MIEUM - ,0xB98D ,0xD275 //HANGUL SYLLABLE THIEUTH WE PIEUP - ,0xB98E ,0xD276 //HANGUL SYLLABLE THIEUTH WE PIEUPSIOS - ,0xB98F ,0xD277 //HANGUL SYLLABLE THIEUTH WE SIOS - ,0xB990 ,0xD278 //HANGUL SYLLABLE THIEUTH WE SSANGSIOS - ,0xB991 ,0xD279 //HANGUL SYLLABLE THIEUTH WE IEUNG - ,0xB992 ,0xD27A //HANGUL SYLLABLE THIEUTH WE CIEUC - ,0xB993 ,0xD27B //HANGUL SYLLABLE THIEUTH WE CHIEUCH - ,0xB994 ,0xD27C //HANGUL SYLLABLE THIEUTH WE KHIEUKH - ,0xB995 ,0xD27D //HANGUL SYLLABLE THIEUTH WE THIEUTH - ,0xB996 ,0xD27E //HANGUL SYLLABLE THIEUTH WE PHIEUPH - ,0xB997 ,0xD27F //HANGUL SYLLABLE THIEUTH WE HIEUH - ,0xB998 ,0xD282 //HANGUL SYLLABLE THIEUTH WI SSANGKIYEOK - ,0xB999 ,0xD283 //HANGUL SYLLABLE THIEUTH WI KIYEOKSIOS - ,0xB99A ,0xD285 //HANGUL SYLLABLE THIEUTH WI NIEUNCIEUC - ,0xB99B ,0xD286 //HANGUL SYLLABLE THIEUTH WI NIEUNHIEUH - ,0xB99C ,0xD287 //HANGUL SYLLABLE THIEUTH WI TIKEUT - ,0xB99D ,0xD289 //HANGUL SYLLABLE THIEUTH WI RIEULKIYEOK - ,0xB99E ,0xD28A //HANGUL SYLLABLE THIEUTH WI RIEULMIEUM - ,0xB99F ,0xD28B //HANGUL SYLLABLE THIEUTH WI RIEULPIEUP - ,0xB9A0 ,0xD28C //HANGUL SYLLABLE THIEUTH WI RIEULSIOS - ,0xB9A1 ,0xBB00 //HANGUL SYLLABLE MIEUM OE NIEUN - ,0xB9A2 ,0xBB04 //HANGUL SYLLABLE MIEUM OE RIEUL - ,0xB9A3 ,0xBB0D //HANGUL SYLLABLE MIEUM OE PIEUP - ,0xB9A4 ,0xBB0F //HANGUL SYLLABLE MIEUM OE SIOS - ,0xB9A5 ,0xBB11 //HANGUL SYLLABLE MIEUM OE IEUNG - ,0xB9A6 ,0xBB18 //HANGUL SYLLABLE MIEUM YO - ,0xB9A7 ,0xBB1C //HANGUL SYLLABLE MIEUM YO NIEUN - ,0xB9A8 ,0xBB20 //HANGUL SYLLABLE MIEUM YO RIEUL - ,0xB9A9 ,0xBB29 //HANGUL SYLLABLE MIEUM YO PIEUP - ,0xB9AA ,0xBB2B //HANGUL SYLLABLE MIEUM YO SIOS - ,0xB9AB ,0xBB34 //HANGUL SYLLABLE MIEUM U - ,0xB9AC ,0xBB35 //HANGUL SYLLABLE MIEUM U KIYEOK - ,0xB9AD ,0xBB36 //HANGUL SYLLABLE MIEUM U SSANGKIYEOK - ,0xB9AE ,0xBB38 //HANGUL SYLLABLE MIEUM U NIEUN - ,0xB9AF ,0xBB3B //HANGUL SYLLABLE MIEUM U TIKEUT - ,0xB9B0 ,0xBB3C //HANGUL SYLLABLE MIEUM U RIEUL - ,0xB9B1 ,0xBB3D //HANGUL SYLLABLE MIEUM U RIEULKIYEOK - ,0xB9B2 ,0xBB3E //HANGUL SYLLABLE MIEUM U RIEULMIEUM - ,0xB9B3 ,0xBB44 //HANGUL SYLLABLE MIEUM U MIEUM - ,0xB9B4 ,0xBB45 //HANGUL SYLLABLE MIEUM U PIEUP - ,0xB9B5 ,0xBB47 //HANGUL SYLLABLE MIEUM U SIOS - ,0xB9B6 ,0xBB49 //HANGUL SYLLABLE MIEUM U IEUNG - ,0xB9B7 ,0xBB4D //HANGUL SYLLABLE MIEUM U THIEUTH - ,0xB9B8 ,0xBB4F //HANGUL SYLLABLE MIEUM U HIEUH - ,0xB9B9 ,0xBB50 //HANGUL SYLLABLE MIEUM WEO - ,0xB9BA ,0xBB54 //HANGUL SYLLABLE MIEUM WEO NIEUN - ,0xB9BB ,0xBB58 //HANGUL SYLLABLE MIEUM WEO RIEUL - ,0xB9BC ,0xBB61 //HANGUL SYLLABLE MIEUM WEO PIEUP - ,0xB9BD ,0xBB63 //HANGUL SYLLABLE MIEUM WEO SIOS - ,0xB9BE ,0xBB6C //HANGUL SYLLABLE MIEUM WE - ,0xB9BF ,0xBB88 //HANGUL SYLLABLE MIEUM WI - ,0xB9C0 ,0xBB8C //HANGUL SYLLABLE MIEUM WI NIEUN - ,0xB9C1 ,0xBB90 //HANGUL SYLLABLE MIEUM WI RIEUL - ,0xB9C2 ,0xBBA4 //HANGUL SYLLABLE MIEUM YU - ,0xB9C3 ,0xBBA8 //HANGUL SYLLABLE MIEUM YU NIEUN - ,0xB9C4 ,0xBBAC //HANGUL SYLLABLE MIEUM YU RIEUL - ,0xB9C5 ,0xBBB4 //HANGUL SYLLABLE MIEUM YU MIEUM - ,0xB9C6 ,0xBBB7 //HANGUL SYLLABLE MIEUM YU SIOS - ,0xB9C7 ,0xBBC0 //HANGUL SYLLABLE MIEUM EU - ,0xB9C8 ,0xBBC4 //HANGUL SYLLABLE MIEUM EU NIEUN - ,0xB9C9 ,0xBBC8 //HANGUL SYLLABLE MIEUM EU RIEUL - ,0xB9CA ,0xBBD0 //HANGUL SYLLABLE MIEUM EU MIEUM - ,0xB9CB ,0xBBD3 //HANGUL SYLLABLE MIEUM EU SIOS - ,0xB9CC ,0xBBF8 //HANGUL SYLLABLE MIEUM I - ,0xB9CD ,0xBBF9 //HANGUL SYLLABLE MIEUM I KIYEOK - ,0xB9CE ,0xBBFC //HANGUL SYLLABLE MIEUM I NIEUN - ,0xB9CF ,0xBBFF //HANGUL SYLLABLE MIEUM I TIKEUT - ,0xB9D0 ,0xBC00 //HANGUL SYLLABLE MIEUM I RIEUL - ,0xB9D1 ,0xBC02 //HANGUL SYLLABLE MIEUM I RIEULMIEUM - ,0xB9D2 ,0xBC08 //HANGUL SYLLABLE MIEUM I MIEUM - ,0xB9D3 ,0xBC09 //HANGUL SYLLABLE MIEUM I PIEUP - ,0xB9D4 ,0xBC0B //HANGUL SYLLABLE MIEUM I SIOS - ,0xB9D5 ,0xBC0C //HANGUL SYLLABLE MIEUM I SSANGSIOS - ,0xB9D6 ,0xBC0D //HANGUL SYLLABLE MIEUM I IEUNG - ,0xB9D7 ,0xBC0F //HANGUL SYLLABLE MIEUM I CHIEUCH - ,0xB9D8 ,0xBC11 //HANGUL SYLLABLE MIEUM I THIEUTH - ,0xB9D9 ,0xBC14 //HANGUL SYLLABLE PIEUP A - ,0xB9DA ,0xBC15 //HANGUL SYLLABLE PIEUP A KIYEOK - ,0xB9DB ,0xBC16 //HANGUL SYLLABLE PIEUP A SSANGKIYEOK - ,0xB9DC ,0xBC17 //HANGUL SYLLABLE PIEUP A KIYEOKSIOS - ,0xB9DD ,0xBC18 //HANGUL SYLLABLE PIEUP A NIEUN - ,0xB9DE ,0xBC1B //HANGUL SYLLABLE PIEUP A TIKEUT - ,0xB9DF ,0xBC1C //HANGUL SYLLABLE PIEUP A RIEUL - ,0xB9E0 ,0xBC1D //HANGUL SYLLABLE PIEUP A RIEULKIYEOK - ,0xB9E1 ,0xBC1E //HANGUL SYLLABLE PIEUP A RIEULMIEUM - ,0xB9E2 ,0xBC1F //HANGUL SYLLABLE PIEUP A RIEULPIEUP - ,0xB9E3 ,0xBC24 //HANGUL SYLLABLE PIEUP A MIEUM - ,0xB9E4 ,0xBC25 //HANGUL SYLLABLE PIEUP A PIEUP - ,0xB9E5 ,0xBC27 //HANGUL SYLLABLE PIEUP A SIOS - ,0xB9E6 ,0xBC29 //HANGUL SYLLABLE PIEUP A IEUNG - ,0xB9E7 ,0xBC2D //HANGUL SYLLABLE PIEUP A THIEUTH - ,0xB9E8 ,0xBC30 //HANGUL SYLLABLE PIEUP AE - ,0xB9E9 ,0xBC31 //HANGUL SYLLABLE PIEUP AE KIYEOK - ,0xB9EA ,0xBC34 //HANGUL SYLLABLE PIEUP AE NIEUN - ,0xB9EB ,0xBC38 //HANGUL SYLLABLE PIEUP AE RIEUL - ,0xB9EC ,0xBC40 //HANGUL SYLLABLE PIEUP AE MIEUM - ,0xB9ED ,0xBC41 //HANGUL SYLLABLE PIEUP AE PIEUP - ,0xB9EE ,0xBC43 //HANGUL SYLLABLE PIEUP AE SIOS - ,0xB9EF ,0xBC44 //HANGUL SYLLABLE PIEUP AE SSANGSIOS - ,0xB9F0 ,0xBC45 //HANGUL SYLLABLE PIEUP AE IEUNG - ,0xB9F1 ,0xBC49 //HANGUL SYLLABLE PIEUP AE THIEUTH - ,0xB9F2 ,0xBC4C //HANGUL SYLLABLE PIEUP YA - ,0xB9F3 ,0xBC4D //HANGUL SYLLABLE PIEUP YA KIYEOK - ,0xB9F4 ,0xBC50 //HANGUL SYLLABLE PIEUP YA NIEUN - ,0xB9F5 ,0xBC5D //HANGUL SYLLABLE PIEUP YA PIEUP - ,0xB9F6 ,0xBC84 //HANGUL SYLLABLE PIEUP EO - ,0xB9F7 ,0xBC85 //HANGUL SYLLABLE PIEUP EO KIYEOK - ,0xB9F8 ,0xBC88 //HANGUL SYLLABLE PIEUP EO NIEUN - ,0xB9F9 ,0xBC8B //HANGUL SYLLABLE PIEUP EO TIKEUT - ,0xB9FA ,0xBC8C //HANGUL SYLLABLE PIEUP EO RIEUL - ,0xB9FB ,0xBC8E //HANGUL SYLLABLE PIEUP EO RIEULMIEUM - ,0xB9FC ,0xBC94 //HANGUL SYLLABLE PIEUP EO MIEUM - ,0xB9FD ,0xBC95 //HANGUL SYLLABLE PIEUP EO PIEUP - ,0xB9FE ,0xBC97 //HANGUL SYLLABLE PIEUP EO SIOS - ,0xBA41 ,0xD28D //HANGUL SYLLABLE THIEUTH WI RIEULTHIEUTH - ,0xBA42 ,0xD28E //HANGUL SYLLABLE THIEUTH WI RIEULPHIEUPH - ,0xBA43 ,0xD28F //HANGUL SYLLABLE THIEUTH WI RIEULHIEUH - ,0xBA44 ,0xD292 //HANGUL SYLLABLE THIEUTH WI PIEUPSIOS - ,0xBA45 ,0xD293 //HANGUL SYLLABLE THIEUTH WI SIOS - ,0xBA46 ,0xD294 //HANGUL SYLLABLE THIEUTH WI SSANGSIOS - ,0xBA47 ,0xD296 //HANGUL SYLLABLE THIEUTH WI CIEUC - ,0xBA48 ,0xD297 //HANGUL SYLLABLE THIEUTH WI CHIEUCH - ,0xBA49 ,0xD298 //HANGUL SYLLABLE THIEUTH WI KHIEUKH - ,0xBA4A ,0xD299 //HANGUL SYLLABLE THIEUTH WI THIEUTH - ,0xBA4B ,0xD29A //HANGUL SYLLABLE THIEUTH WI PHIEUPH - ,0xBA4C ,0xD29B //HANGUL SYLLABLE THIEUTH WI HIEUH - ,0xBA4D ,0xD29D //HANGUL SYLLABLE THIEUTH YU KIYEOK - ,0xBA4E ,0xD29E //HANGUL SYLLABLE THIEUTH YU SSANGKIYEOK - ,0xBA4F ,0xD29F //HANGUL SYLLABLE THIEUTH YU KIYEOKSIOS - ,0xBA50 ,0xD2A1 //HANGUL SYLLABLE THIEUTH YU NIEUNCIEUC - ,0xBA51 ,0xD2A2 //HANGUL SYLLABLE THIEUTH YU NIEUNHIEUH - ,0xBA52 ,0xD2A3 //HANGUL SYLLABLE THIEUTH YU TIKEUT - ,0xBA53 ,0xD2A5 //HANGUL SYLLABLE THIEUTH YU RIEULKIYEOK - ,0xBA54 ,0xD2A6 //HANGUL SYLLABLE THIEUTH YU RIEULMIEUM - ,0xBA55 ,0xD2A7 //HANGUL SYLLABLE THIEUTH YU RIEULPIEUP - ,0xBA56 ,0xD2A8 //HANGUL SYLLABLE THIEUTH YU RIEULSIOS - ,0xBA57 ,0xD2A9 //HANGUL SYLLABLE THIEUTH YU RIEULTHIEUTH - ,0xBA58 ,0xD2AA //HANGUL SYLLABLE THIEUTH YU RIEULPHIEUPH - ,0xBA59 ,0xD2AB //HANGUL SYLLABLE THIEUTH YU RIEULHIEUH - ,0xBA5A ,0xD2AD //HANGUL SYLLABLE THIEUTH YU PIEUP - ,0xBA61 ,0xD2AE //HANGUL SYLLABLE THIEUTH YU PIEUPSIOS - ,0xBA62 ,0xD2AF //HANGUL SYLLABLE THIEUTH YU SIOS - ,0xBA63 ,0xD2B0 //HANGUL SYLLABLE THIEUTH YU SSANGSIOS - ,0xBA64 ,0xD2B2 //HANGUL SYLLABLE THIEUTH YU CIEUC - ,0xBA65 ,0xD2B3 //HANGUL SYLLABLE THIEUTH YU CHIEUCH - ,0xBA66 ,0xD2B4 //HANGUL SYLLABLE THIEUTH YU KHIEUKH - ,0xBA67 ,0xD2B5 //HANGUL SYLLABLE THIEUTH YU THIEUTH - ,0xBA68 ,0xD2B6 //HANGUL SYLLABLE THIEUTH YU PHIEUPH - ,0xBA69 ,0xD2B7 //HANGUL SYLLABLE THIEUTH YU HIEUH - ,0xBA6A ,0xD2BA //HANGUL SYLLABLE THIEUTH EU SSANGKIYEOK - ,0xBA6B ,0xD2BB //HANGUL SYLLABLE THIEUTH EU KIYEOKSIOS - ,0xBA6C ,0xD2BD //HANGUL SYLLABLE THIEUTH EU NIEUNCIEUC - ,0xBA6D ,0xD2BE //HANGUL SYLLABLE THIEUTH EU NIEUNHIEUH - ,0xBA6E ,0xD2C1 //HANGUL SYLLABLE THIEUTH EU RIEULKIYEOK - ,0xBA6F ,0xD2C3 //HANGUL SYLLABLE THIEUTH EU RIEULPIEUP - ,0xBA70 ,0xD2C4 //HANGUL SYLLABLE THIEUTH EU RIEULSIOS - ,0xBA71 ,0xD2C5 //HANGUL SYLLABLE THIEUTH EU RIEULTHIEUTH - ,0xBA72 ,0xD2C6 //HANGUL SYLLABLE THIEUTH EU RIEULPHIEUPH - ,0xBA73 ,0xD2C7 //HANGUL SYLLABLE THIEUTH EU RIEULHIEUH - ,0xBA74 ,0xD2CA //HANGUL SYLLABLE THIEUTH EU PIEUPSIOS - ,0xBA75 ,0xD2CC //HANGUL SYLLABLE THIEUTH EU SSANGSIOS - ,0xBA76 ,0xD2CD //HANGUL SYLLABLE THIEUTH EU IEUNG - ,0xBA77 ,0xD2CE //HANGUL SYLLABLE THIEUTH EU CIEUC - ,0xBA78 ,0xD2CF //HANGUL SYLLABLE THIEUTH EU CHIEUCH - ,0xBA79 ,0xD2D0 //HANGUL SYLLABLE THIEUTH EU KHIEUKH - ,0xBA7A ,0xD2D1 //HANGUL SYLLABLE THIEUTH EU THIEUTH - ,0xBA81 ,0xD2D2 //HANGUL SYLLABLE THIEUTH EU PHIEUPH - ,0xBA82 ,0xD2D3 //HANGUL SYLLABLE THIEUTH EU HIEUH - ,0xBA83 ,0xD2D5 //HANGUL SYLLABLE THIEUTH YI KIYEOK - ,0xBA84 ,0xD2D6 //HANGUL SYLLABLE THIEUTH YI SSANGKIYEOK - ,0xBA85 ,0xD2D7 //HANGUL SYLLABLE THIEUTH YI KIYEOKSIOS - ,0xBA86 ,0xD2D9 //HANGUL SYLLABLE THIEUTH YI NIEUNCIEUC - ,0xBA87 ,0xD2DA //HANGUL SYLLABLE THIEUTH YI NIEUNHIEUH - ,0xBA88 ,0xD2DB //HANGUL SYLLABLE THIEUTH YI TIKEUT - ,0xBA89 ,0xD2DD //HANGUL SYLLABLE THIEUTH YI RIEULKIYEOK - ,0xBA8A ,0xD2DE //HANGUL SYLLABLE THIEUTH YI RIEULMIEUM - ,0xBA8B ,0xD2DF //HANGUL SYLLABLE THIEUTH YI RIEULPIEUP - ,0xBA8C ,0xD2E0 //HANGUL SYLLABLE THIEUTH YI RIEULSIOS - ,0xBA8D ,0xD2E1 //HANGUL SYLLABLE THIEUTH YI RIEULTHIEUTH - ,0xBA8E ,0xD2E2 //HANGUL SYLLABLE THIEUTH YI RIEULPHIEUPH - ,0xBA8F ,0xD2E3 //HANGUL SYLLABLE THIEUTH YI RIEULHIEUH - ,0xBA90 ,0xD2E6 //HANGUL SYLLABLE THIEUTH YI PIEUPSIOS - ,0xBA91 ,0xD2E7 //HANGUL SYLLABLE THIEUTH YI SIOS - ,0xBA92 ,0xD2E8 //HANGUL SYLLABLE THIEUTH YI SSANGSIOS - ,0xBA93 ,0xD2E9 //HANGUL SYLLABLE THIEUTH YI IEUNG - ,0xBA94 ,0xD2EA //HANGUL SYLLABLE THIEUTH YI CIEUC - ,0xBA95 ,0xD2EB //HANGUL SYLLABLE THIEUTH YI CHIEUCH - ,0xBA96 ,0xD2EC //HANGUL SYLLABLE THIEUTH YI KHIEUKH - ,0xBA97 ,0xD2ED //HANGUL SYLLABLE THIEUTH YI THIEUTH - ,0xBA98 ,0xD2EE //HANGUL SYLLABLE THIEUTH YI PHIEUPH - ,0xBA99 ,0xD2EF //HANGUL SYLLABLE THIEUTH YI HIEUH - ,0xBA9A ,0xD2F2 //HANGUL SYLLABLE THIEUTH I SSANGKIYEOK - ,0xBA9B ,0xD2F3 //HANGUL SYLLABLE THIEUTH I KIYEOKSIOS - ,0xBA9C ,0xD2F5 //HANGUL SYLLABLE THIEUTH I NIEUNCIEUC - ,0xBA9D ,0xD2F6 //HANGUL SYLLABLE THIEUTH I NIEUNHIEUH - ,0xBA9E ,0xD2F7 //HANGUL SYLLABLE THIEUTH I TIKEUT - ,0xBA9F ,0xD2F9 //HANGUL SYLLABLE THIEUTH I RIEULKIYEOK - ,0xBAA0 ,0xD2FA //HANGUL SYLLABLE THIEUTH I RIEULMIEUM - ,0xBAA1 ,0xBC99 //HANGUL SYLLABLE PIEUP EO IEUNG - ,0xBAA2 ,0xBC9A //HANGUL SYLLABLE PIEUP EO CIEUC - ,0xBAA3 ,0xBCA0 //HANGUL SYLLABLE PIEUP E - ,0xBAA4 ,0xBCA1 //HANGUL SYLLABLE PIEUP E KIYEOK - ,0xBAA5 ,0xBCA4 //HANGUL SYLLABLE PIEUP E NIEUN - ,0xBAA6 ,0xBCA7 //HANGUL SYLLABLE PIEUP E TIKEUT - ,0xBAA7 ,0xBCA8 //HANGUL SYLLABLE PIEUP E RIEUL - ,0xBAA8 ,0xBCB0 //HANGUL SYLLABLE PIEUP E MIEUM - ,0xBAA9 ,0xBCB1 //HANGUL SYLLABLE PIEUP E PIEUP - ,0xBAAA ,0xBCB3 //HANGUL SYLLABLE PIEUP E SIOS - ,0xBAAB ,0xBCB4 //HANGUL SYLLABLE PIEUP E SSANGSIOS - ,0xBAAC ,0xBCB5 //HANGUL SYLLABLE PIEUP E IEUNG - ,0xBAAD ,0xBCBC //HANGUL SYLLABLE PIEUP YEO - ,0xBAAE ,0xBCBD //HANGUL SYLLABLE PIEUP YEO KIYEOK - ,0xBAAF ,0xBCC0 //HANGUL SYLLABLE PIEUP YEO NIEUN - ,0xBAB0 ,0xBCC4 //HANGUL SYLLABLE PIEUP YEO RIEUL - ,0xBAB1 ,0xBCCD //HANGUL SYLLABLE PIEUP YEO PIEUP - ,0xBAB2 ,0xBCCF //HANGUL SYLLABLE PIEUP YEO SIOS - ,0xBAB3 ,0xBCD0 //HANGUL SYLLABLE PIEUP YEO SSANGSIOS - ,0xBAB4 ,0xBCD1 //HANGUL SYLLABLE PIEUP YEO IEUNG - ,0xBAB5 ,0xBCD5 //HANGUL SYLLABLE PIEUP YEO THIEUTH - ,0xBAB6 ,0xBCD8 //HANGUL SYLLABLE PIEUP YE - ,0xBAB7 ,0xBCDC //HANGUL SYLLABLE PIEUP YE NIEUN - ,0xBAB8 ,0xBCF4 //HANGUL SYLLABLE PIEUP O - ,0xBAB9 ,0xBCF5 //HANGUL SYLLABLE PIEUP O KIYEOK - ,0xBABA ,0xBCF6 //HANGUL SYLLABLE PIEUP O SSANGKIYEOK - ,0xBABB ,0xBCF8 //HANGUL SYLLABLE PIEUP O NIEUN - ,0xBABC ,0xBCFC //HANGUL SYLLABLE PIEUP O RIEUL - ,0xBABD ,0xBD04 //HANGUL SYLLABLE PIEUP O MIEUM - ,0xBABE ,0xBD05 //HANGUL SYLLABLE PIEUP O PIEUP - ,0xBABF ,0xBD07 //HANGUL SYLLABLE PIEUP O SIOS - ,0xBAC0 ,0xBD09 //HANGUL SYLLABLE PIEUP O IEUNG - ,0xBAC1 ,0xBD10 //HANGUL SYLLABLE PIEUP WA - ,0xBAC2 ,0xBD14 //HANGUL SYLLABLE PIEUP WA NIEUN - ,0xBAC3 ,0xBD24 //HANGUL SYLLABLE PIEUP WA SSANGSIOS - ,0xBAC4 ,0xBD2C //HANGUL SYLLABLE PIEUP WAE - ,0xBAC5 ,0xBD40 //HANGUL SYLLABLE PIEUP WAE SSANGSIOS - ,0xBAC6 ,0xBD48 //HANGUL SYLLABLE PIEUP OE - ,0xBAC7 ,0xBD49 //HANGUL SYLLABLE PIEUP OE KIYEOK - ,0xBAC8 ,0xBD4C //HANGUL SYLLABLE PIEUP OE NIEUN - ,0xBAC9 ,0xBD50 //HANGUL SYLLABLE PIEUP OE RIEUL - ,0xBACA ,0xBD58 //HANGUL SYLLABLE PIEUP OE MIEUM - ,0xBACB ,0xBD59 //HANGUL SYLLABLE PIEUP OE PIEUP - ,0xBACC ,0xBD64 //HANGUL SYLLABLE PIEUP YO - ,0xBACD ,0xBD68 //HANGUL SYLLABLE PIEUP YO NIEUN - ,0xBACE ,0xBD80 //HANGUL SYLLABLE PIEUP U - ,0xBACF ,0xBD81 //HANGUL SYLLABLE PIEUP U KIYEOK - ,0xBAD0 ,0xBD84 //HANGUL SYLLABLE PIEUP U NIEUN - ,0xBAD1 ,0xBD87 //HANGUL SYLLABLE PIEUP U TIKEUT - ,0xBAD2 ,0xBD88 //HANGUL SYLLABLE PIEUP U RIEUL - ,0xBAD3 ,0xBD89 //HANGUL SYLLABLE PIEUP U RIEULKIYEOK - ,0xBAD4 ,0xBD8A //HANGUL SYLLABLE PIEUP U RIEULMIEUM - ,0xBAD5 ,0xBD90 //HANGUL SYLLABLE PIEUP U MIEUM - ,0xBAD6 ,0xBD91 //HANGUL SYLLABLE PIEUP U PIEUP - ,0xBAD7 ,0xBD93 //HANGUL SYLLABLE PIEUP U SIOS - ,0xBAD8 ,0xBD95 //HANGUL SYLLABLE PIEUP U IEUNG - ,0xBAD9 ,0xBD99 //HANGUL SYLLABLE PIEUP U THIEUTH - ,0xBADA ,0xBD9A //HANGUL SYLLABLE PIEUP U PHIEUPH - ,0xBADB ,0xBD9C //HANGUL SYLLABLE PIEUP WEO - ,0xBADC ,0xBDA4 //HANGUL SYLLABLE PIEUP WEO RIEUL - ,0xBADD ,0xBDB0 //HANGUL SYLLABLE PIEUP WEO SSANGSIOS - ,0xBADE ,0xBDB8 //HANGUL SYLLABLE PIEUP WE - ,0xBADF ,0xBDD4 //HANGUL SYLLABLE PIEUP WI - ,0xBAE0 ,0xBDD5 //HANGUL SYLLABLE PIEUP WI KIYEOK - ,0xBAE1 ,0xBDD8 //HANGUL SYLLABLE PIEUP WI NIEUN - ,0xBAE2 ,0xBDDC //HANGUL SYLLABLE PIEUP WI RIEUL - ,0xBAE3 ,0xBDE9 //HANGUL SYLLABLE PIEUP WI IEUNG - ,0xBAE4 ,0xBDF0 //HANGUL SYLLABLE PIEUP YU - ,0xBAE5 ,0xBDF4 //HANGUL SYLLABLE PIEUP YU NIEUN - ,0xBAE6 ,0xBDF8 //HANGUL SYLLABLE PIEUP YU RIEUL - ,0xBAE7 ,0xBE00 //HANGUL SYLLABLE PIEUP YU MIEUM - ,0xBAE8 ,0xBE03 //HANGUL SYLLABLE PIEUP YU SIOS - ,0xBAE9 ,0xBE05 //HANGUL SYLLABLE PIEUP YU IEUNG - ,0xBAEA ,0xBE0C //HANGUL SYLLABLE PIEUP EU - ,0xBAEB ,0xBE0D //HANGUL SYLLABLE PIEUP EU KIYEOK - ,0xBAEC ,0xBE10 //HANGUL SYLLABLE PIEUP EU NIEUN - ,0xBAED ,0xBE14 //HANGUL SYLLABLE PIEUP EU RIEUL - ,0xBAEE ,0xBE1C //HANGUL SYLLABLE PIEUP EU MIEUM - ,0xBAEF ,0xBE1D //HANGUL SYLLABLE PIEUP EU PIEUP - ,0xBAF0 ,0xBE1F //HANGUL SYLLABLE PIEUP EU SIOS - ,0xBAF1 ,0xBE44 //HANGUL SYLLABLE PIEUP I - ,0xBAF2 ,0xBE45 //HANGUL SYLLABLE PIEUP I KIYEOK - ,0xBAF3 ,0xBE48 //HANGUL SYLLABLE PIEUP I NIEUN - ,0xBAF4 ,0xBE4C //HANGUL SYLLABLE PIEUP I RIEUL - ,0xBAF5 ,0xBE4E //HANGUL SYLLABLE PIEUP I RIEULMIEUM - ,0xBAF6 ,0xBE54 //HANGUL SYLLABLE PIEUP I MIEUM - ,0xBAF7 ,0xBE55 //HANGUL SYLLABLE PIEUP I PIEUP - ,0xBAF8 ,0xBE57 //HANGUL SYLLABLE PIEUP I SIOS - ,0xBAF9 ,0xBE59 //HANGUL SYLLABLE PIEUP I IEUNG - ,0xBAFA ,0xBE5A //HANGUL SYLLABLE PIEUP I CIEUC - ,0xBAFB ,0xBE5B //HANGUL SYLLABLE PIEUP I CHIEUCH - ,0xBAFC ,0xBE60 //HANGUL SYLLABLE SSANGPIEUP A - ,0xBAFD ,0xBE61 //HANGUL SYLLABLE SSANGPIEUP A KIYEOK - ,0xBAFE ,0xBE64 //HANGUL SYLLABLE SSANGPIEUP A NIEUN - ,0xBB41 ,0xD2FB //HANGUL SYLLABLE THIEUTH I RIEULPIEUP - ,0xBB42 ,0xD2FC //HANGUL SYLLABLE THIEUTH I RIEULSIOS - ,0xBB43 ,0xD2FD //HANGUL SYLLABLE THIEUTH I RIEULTHIEUTH - ,0xBB44 ,0xD2FE //HANGUL SYLLABLE THIEUTH I RIEULPHIEUPH - ,0xBB45 ,0xD2FF //HANGUL SYLLABLE THIEUTH I RIEULHIEUH - ,0xBB46 ,0xD302 //HANGUL SYLLABLE THIEUTH I PIEUPSIOS - ,0xBB47 ,0xD304 //HANGUL SYLLABLE THIEUTH I SSANGSIOS - ,0xBB48 ,0xD306 //HANGUL SYLLABLE THIEUTH I CIEUC - ,0xBB49 ,0xD307 //HANGUL SYLLABLE THIEUTH I CHIEUCH - ,0xBB4A ,0xD308 //HANGUL SYLLABLE THIEUTH I KHIEUKH - ,0xBB4B ,0xD309 //HANGUL SYLLABLE THIEUTH I THIEUTH - ,0xBB4C ,0xD30A //HANGUL SYLLABLE THIEUTH I PHIEUPH - ,0xBB4D ,0xD30B //HANGUL SYLLABLE THIEUTH I HIEUH - ,0xBB4E ,0xD30F //HANGUL SYLLABLE PHIEUPH A KIYEOKSIOS - ,0xBB4F ,0xD311 //HANGUL SYLLABLE PHIEUPH A NIEUNCIEUC - ,0xBB50 ,0xD312 //HANGUL SYLLABLE PHIEUPH A NIEUNHIEUH - ,0xBB51 ,0xD313 //HANGUL SYLLABLE PHIEUPH A TIKEUT - ,0xBB52 ,0xD315 //HANGUL SYLLABLE PHIEUPH A RIEULKIYEOK - ,0xBB53 ,0xD317 //HANGUL SYLLABLE PHIEUPH A RIEULPIEUP - ,0xBB54 ,0xD318 //HANGUL SYLLABLE PHIEUPH A RIEULSIOS - ,0xBB55 ,0xD319 //HANGUL SYLLABLE PHIEUPH A RIEULTHIEUTH - ,0xBB56 ,0xD31A //HANGUL SYLLABLE PHIEUPH A RIEULPHIEUPH - ,0xBB57 ,0xD31B //HANGUL SYLLABLE PHIEUPH A RIEULHIEUH - ,0xBB58 ,0xD31E //HANGUL SYLLABLE PHIEUPH A PIEUPSIOS - ,0xBB59 ,0xD322 //HANGUL SYLLABLE PHIEUPH A CIEUC - ,0xBB5A ,0xD323 //HANGUL SYLLABLE PHIEUPH A CHIEUCH - ,0xBB61 ,0xD324 //HANGUL SYLLABLE PHIEUPH A KHIEUKH - ,0xBB62 ,0xD326 //HANGUL SYLLABLE PHIEUPH A PHIEUPH - ,0xBB63 ,0xD327 //HANGUL SYLLABLE PHIEUPH A HIEUH - ,0xBB64 ,0xD32A //HANGUL SYLLABLE PHIEUPH AE SSANGKIYEOK - ,0xBB65 ,0xD32B //HANGUL SYLLABLE PHIEUPH AE KIYEOKSIOS - ,0xBB66 ,0xD32D //HANGUL SYLLABLE PHIEUPH AE NIEUNCIEUC - ,0xBB67 ,0xD32E //HANGUL SYLLABLE PHIEUPH AE NIEUNHIEUH - ,0xBB68 ,0xD32F //HANGUL SYLLABLE PHIEUPH AE TIKEUT - ,0xBB69 ,0xD331 //HANGUL SYLLABLE PHIEUPH AE RIEULKIYEOK - ,0xBB6A ,0xD332 //HANGUL SYLLABLE PHIEUPH AE RIEULMIEUM - ,0xBB6B ,0xD333 //HANGUL SYLLABLE PHIEUPH AE RIEULPIEUP - ,0xBB6C ,0xD334 //HANGUL SYLLABLE PHIEUPH AE RIEULSIOS - ,0xBB6D ,0xD335 //HANGUL SYLLABLE PHIEUPH AE RIEULTHIEUTH - ,0xBB6E ,0xD336 //HANGUL SYLLABLE PHIEUPH AE RIEULPHIEUPH - ,0xBB6F ,0xD337 //HANGUL SYLLABLE PHIEUPH AE RIEULHIEUH - ,0xBB70 ,0xD33A //HANGUL SYLLABLE PHIEUPH AE PIEUPSIOS - ,0xBB71 ,0xD33E //HANGUL SYLLABLE PHIEUPH AE CIEUC - ,0xBB72 ,0xD33F //HANGUL SYLLABLE PHIEUPH AE CHIEUCH - ,0xBB73 ,0xD340 //HANGUL SYLLABLE PHIEUPH AE KHIEUKH - ,0xBB74 ,0xD341 //HANGUL SYLLABLE PHIEUPH AE THIEUTH - ,0xBB75 ,0xD342 //HANGUL SYLLABLE PHIEUPH AE PHIEUPH - ,0xBB76 ,0xD343 //HANGUL SYLLABLE PHIEUPH AE HIEUH - ,0xBB77 ,0xD346 //HANGUL SYLLABLE PHIEUPH YA SSANGKIYEOK - ,0xBB78 ,0xD347 //HANGUL SYLLABLE PHIEUPH YA KIYEOKSIOS - ,0xBB79 ,0xD348 //HANGUL SYLLABLE PHIEUPH YA NIEUN - ,0xBB7A ,0xD349 //HANGUL SYLLABLE PHIEUPH YA NIEUNCIEUC - ,0xBB81 ,0xD34A //HANGUL SYLLABLE PHIEUPH YA NIEUNHIEUH - ,0xBB82 ,0xD34B //HANGUL SYLLABLE PHIEUPH YA TIKEUT - ,0xBB83 ,0xD34C //HANGUL SYLLABLE PHIEUPH YA RIEUL - ,0xBB84 ,0xD34D //HANGUL SYLLABLE PHIEUPH YA RIEULKIYEOK - ,0xBB85 ,0xD34E //HANGUL SYLLABLE PHIEUPH YA RIEULMIEUM - ,0xBB86 ,0xD34F //HANGUL SYLLABLE PHIEUPH YA RIEULPIEUP - ,0xBB87 ,0xD350 //HANGUL SYLLABLE PHIEUPH YA RIEULSIOS - ,0xBB88 ,0xD351 //HANGUL SYLLABLE PHIEUPH YA RIEULTHIEUTH - ,0xBB89 ,0xD352 //HANGUL SYLLABLE PHIEUPH YA RIEULPHIEUPH - ,0xBB8A ,0xD353 //HANGUL SYLLABLE PHIEUPH YA RIEULHIEUH - ,0xBB8B ,0xD354 //HANGUL SYLLABLE PHIEUPH YA MIEUM - ,0xBB8C ,0xD355 //HANGUL SYLLABLE PHIEUPH YA PIEUP - ,0xBB8D ,0xD356 //HANGUL SYLLABLE PHIEUPH YA PIEUPSIOS - ,0xBB8E ,0xD357 //HANGUL SYLLABLE PHIEUPH YA SIOS - ,0xBB8F ,0xD358 //HANGUL SYLLABLE PHIEUPH YA SSANGSIOS - ,0xBB90 ,0xD359 //HANGUL SYLLABLE PHIEUPH YA IEUNG - ,0xBB91 ,0xD35A //HANGUL SYLLABLE PHIEUPH YA CIEUC - ,0xBB92 ,0xD35B //HANGUL SYLLABLE PHIEUPH YA CHIEUCH - ,0xBB93 ,0xD35C //HANGUL SYLLABLE PHIEUPH YA KHIEUKH - ,0xBB94 ,0xD35D //HANGUL SYLLABLE PHIEUPH YA THIEUTH - ,0xBB95 ,0xD35E //HANGUL SYLLABLE PHIEUPH YA PHIEUPH - ,0xBB96 ,0xD35F //HANGUL SYLLABLE PHIEUPH YA HIEUH - ,0xBB97 ,0xD360 //HANGUL SYLLABLE PHIEUPH YAE - ,0xBB98 ,0xD361 //HANGUL SYLLABLE PHIEUPH YAE KIYEOK - ,0xBB99 ,0xD362 //HANGUL SYLLABLE PHIEUPH YAE SSANGKIYEOK - ,0xBB9A ,0xD363 //HANGUL SYLLABLE PHIEUPH YAE KIYEOKSIOS - ,0xBB9B ,0xD364 //HANGUL SYLLABLE PHIEUPH YAE NIEUN - ,0xBB9C ,0xD365 //HANGUL SYLLABLE PHIEUPH YAE NIEUNCIEUC - ,0xBB9D ,0xD366 //HANGUL SYLLABLE PHIEUPH YAE NIEUNHIEUH - ,0xBB9E ,0xD367 //HANGUL SYLLABLE PHIEUPH YAE TIKEUT - ,0xBB9F ,0xD368 //HANGUL SYLLABLE PHIEUPH YAE RIEUL - ,0xBBA0 ,0xD369 //HANGUL SYLLABLE PHIEUPH YAE RIEULKIYEOK - ,0xBBA1 ,0xBE68 //HANGUL SYLLABLE SSANGPIEUP A RIEUL - ,0xBBA2 ,0xBE6A //HANGUL SYLLABLE SSANGPIEUP A RIEULMIEUM - ,0xBBA3 ,0xBE70 //HANGUL SYLLABLE SSANGPIEUP A MIEUM - ,0xBBA4 ,0xBE71 //HANGUL SYLLABLE SSANGPIEUP A PIEUP - ,0xBBA5 ,0xBE73 //HANGUL SYLLABLE SSANGPIEUP A SIOS - ,0xBBA6 ,0xBE74 //HANGUL SYLLABLE SSANGPIEUP A SSANGSIOS - ,0xBBA7 ,0xBE75 //HANGUL SYLLABLE SSANGPIEUP A IEUNG - ,0xBBA8 ,0xBE7B //HANGUL SYLLABLE SSANGPIEUP A HIEUH - ,0xBBA9 ,0xBE7C //HANGUL SYLLABLE SSANGPIEUP AE - ,0xBBAA ,0xBE7D //HANGUL SYLLABLE SSANGPIEUP AE KIYEOK - ,0xBBAB ,0xBE80 //HANGUL SYLLABLE SSANGPIEUP AE NIEUN - ,0xBBAC ,0xBE84 //HANGUL SYLLABLE SSANGPIEUP AE RIEUL - ,0xBBAD ,0xBE8C //HANGUL SYLLABLE SSANGPIEUP AE MIEUM - ,0xBBAE ,0xBE8D //HANGUL SYLLABLE SSANGPIEUP AE PIEUP - ,0xBBAF ,0xBE8F //HANGUL SYLLABLE SSANGPIEUP AE SIOS - ,0xBBB0 ,0xBE90 //HANGUL SYLLABLE SSANGPIEUP AE SSANGSIOS - ,0xBBB1 ,0xBE91 //HANGUL SYLLABLE SSANGPIEUP AE IEUNG - ,0xBBB2 ,0xBE98 //HANGUL SYLLABLE SSANGPIEUP YA - ,0xBBB3 ,0xBE99 //HANGUL SYLLABLE SSANGPIEUP YA KIYEOK - ,0xBBB4 ,0xBEA8 //HANGUL SYLLABLE SSANGPIEUP YA MIEUM - ,0xBBB5 ,0xBED0 //HANGUL SYLLABLE SSANGPIEUP EO - ,0xBBB6 ,0xBED1 //HANGUL SYLLABLE SSANGPIEUP EO KIYEOK - ,0xBBB7 ,0xBED4 //HANGUL SYLLABLE SSANGPIEUP EO NIEUN - ,0xBBB8 ,0xBED7 //HANGUL SYLLABLE SSANGPIEUP EO TIKEUT - ,0xBBB9 ,0xBED8 //HANGUL SYLLABLE SSANGPIEUP EO RIEUL - ,0xBBBA ,0xBEE0 //HANGUL SYLLABLE SSANGPIEUP EO MIEUM - ,0xBBBB ,0xBEE3 //HANGUL SYLLABLE SSANGPIEUP EO SIOS - ,0xBBBC ,0xBEE4 //HANGUL SYLLABLE SSANGPIEUP EO SSANGSIOS - ,0xBBBD ,0xBEE5 //HANGUL SYLLABLE SSANGPIEUP EO IEUNG - ,0xBBBE ,0xBEEC //HANGUL SYLLABLE SSANGPIEUP E - ,0xBBBF ,0xBF01 //HANGUL SYLLABLE SSANGPIEUP E IEUNG - ,0xBBC0 ,0xBF08 //HANGUL SYLLABLE SSANGPIEUP YEO - ,0xBBC1 ,0xBF09 //HANGUL SYLLABLE SSANGPIEUP YEO KIYEOK - ,0xBBC2 ,0xBF18 //HANGUL SYLLABLE SSANGPIEUP YEO MIEUM - ,0xBBC3 ,0xBF19 //HANGUL SYLLABLE SSANGPIEUP YEO PIEUP - ,0xBBC4 ,0xBF1B //HANGUL SYLLABLE SSANGPIEUP YEO SIOS - ,0xBBC5 ,0xBF1C //HANGUL SYLLABLE SSANGPIEUP YEO SSANGSIOS - ,0xBBC6 ,0xBF1D //HANGUL SYLLABLE SSANGPIEUP YEO IEUNG - ,0xBBC7 ,0xBF40 //HANGUL SYLLABLE SSANGPIEUP O - ,0xBBC8 ,0xBF41 //HANGUL SYLLABLE SSANGPIEUP O KIYEOK - ,0xBBC9 ,0xBF44 //HANGUL SYLLABLE SSANGPIEUP O NIEUN - ,0xBBCA ,0xBF48 //HANGUL SYLLABLE SSANGPIEUP O RIEUL - ,0xBBCB ,0xBF50 //HANGUL SYLLABLE SSANGPIEUP O MIEUM - ,0xBBCC ,0xBF51 //HANGUL SYLLABLE SSANGPIEUP O PIEUP - ,0xBBCD ,0xBF55 //HANGUL SYLLABLE SSANGPIEUP O IEUNG - ,0xBBCE ,0xBF94 //HANGUL SYLLABLE SSANGPIEUP OE - ,0xBBCF ,0xBFB0 //HANGUL SYLLABLE SSANGPIEUP YO - ,0xBBD0 ,0xBFC5 //HANGUL SYLLABLE SSANGPIEUP YO IEUNG - ,0xBBD1 ,0xBFCC //HANGUL SYLLABLE SSANGPIEUP U - ,0xBBD2 ,0xBFCD //HANGUL SYLLABLE SSANGPIEUP U KIYEOK - ,0xBBD3 ,0xBFD0 //HANGUL SYLLABLE SSANGPIEUP U NIEUN - ,0xBBD4 ,0xBFD4 //HANGUL SYLLABLE SSANGPIEUP U RIEUL - ,0xBBD5 ,0xBFDC //HANGUL SYLLABLE SSANGPIEUP U MIEUM - ,0xBBD6 ,0xBFDF //HANGUL SYLLABLE SSANGPIEUP U SIOS - ,0xBBD7 ,0xBFE1 //HANGUL SYLLABLE SSANGPIEUP U IEUNG - ,0xBBD8 ,0xC03C //HANGUL SYLLABLE SSANGPIEUP YU - ,0xBBD9 ,0xC051 //HANGUL SYLLABLE SSANGPIEUP YU IEUNG - ,0xBBDA ,0xC058 //HANGUL SYLLABLE SSANGPIEUP EU - ,0xBBDB ,0xC05C //HANGUL SYLLABLE SSANGPIEUP EU NIEUN - ,0xBBDC ,0xC060 //HANGUL SYLLABLE SSANGPIEUP EU RIEUL - ,0xBBDD ,0xC068 //HANGUL SYLLABLE SSANGPIEUP EU MIEUM - ,0xBBDE ,0xC069 //HANGUL SYLLABLE SSANGPIEUP EU PIEUP - ,0xBBDF ,0xC090 //HANGUL SYLLABLE SSANGPIEUP I - ,0xBBE0 ,0xC091 //HANGUL SYLLABLE SSANGPIEUP I KIYEOK - ,0xBBE1 ,0xC094 //HANGUL SYLLABLE SSANGPIEUP I NIEUN - ,0xBBE2 ,0xC098 //HANGUL SYLLABLE SSANGPIEUP I RIEUL - ,0xBBE3 ,0xC0A0 //HANGUL SYLLABLE SSANGPIEUP I MIEUM - ,0xBBE4 ,0xC0A1 //HANGUL SYLLABLE SSANGPIEUP I PIEUP - ,0xBBE5 ,0xC0A3 //HANGUL SYLLABLE SSANGPIEUP I SIOS - ,0xBBE6 ,0xC0A5 //HANGUL SYLLABLE SSANGPIEUP I IEUNG - ,0xBBE7 ,0xC0AC //HANGUL SYLLABLE SIOS A - ,0xBBE8 ,0xC0AD //HANGUL SYLLABLE SIOS A KIYEOK - ,0xBBE9 ,0xC0AF //HANGUL SYLLABLE SIOS A KIYEOKSIOS - ,0xBBEA ,0xC0B0 //HANGUL SYLLABLE SIOS A NIEUN - ,0xBBEB ,0xC0B3 //HANGUL SYLLABLE SIOS A TIKEUT - ,0xBBEC ,0xC0B4 //HANGUL SYLLABLE SIOS A RIEUL - ,0xBBED ,0xC0B5 //HANGUL SYLLABLE SIOS A RIEULKIYEOK - ,0xBBEE ,0xC0B6 //HANGUL SYLLABLE SIOS A RIEULMIEUM - ,0xBBEF ,0xC0BC //HANGUL SYLLABLE SIOS A MIEUM - ,0xBBF0 ,0xC0BD //HANGUL SYLLABLE SIOS A PIEUP - ,0xBBF1 ,0xC0BF //HANGUL SYLLABLE SIOS A SIOS - ,0xBBF2 ,0xC0C0 //HANGUL SYLLABLE SIOS A SSANGSIOS - ,0xBBF3 ,0xC0C1 //HANGUL SYLLABLE SIOS A IEUNG - ,0xBBF4 ,0xC0C5 //HANGUL SYLLABLE SIOS A THIEUTH - ,0xBBF5 ,0xC0C8 //HANGUL SYLLABLE SIOS AE - ,0xBBF6 ,0xC0C9 //HANGUL SYLLABLE SIOS AE KIYEOK - ,0xBBF7 ,0xC0CC //HANGUL SYLLABLE SIOS AE NIEUN - ,0xBBF8 ,0xC0D0 //HANGUL SYLLABLE SIOS AE RIEUL - ,0xBBF9 ,0xC0D8 //HANGUL SYLLABLE SIOS AE MIEUM - ,0xBBFA ,0xC0D9 //HANGUL SYLLABLE SIOS AE PIEUP - ,0xBBFB ,0xC0DB //HANGUL SYLLABLE SIOS AE SIOS - ,0xBBFC ,0xC0DC //HANGUL SYLLABLE SIOS AE SSANGSIOS - ,0xBBFD ,0xC0DD //HANGUL SYLLABLE SIOS AE IEUNG - ,0xBBFE ,0xC0E4 //HANGUL SYLLABLE SIOS YA - ,0xBC41 ,0xD36A //HANGUL SYLLABLE PHIEUPH YAE RIEULMIEUM - ,0xBC42 ,0xD36B //HANGUL SYLLABLE PHIEUPH YAE RIEULPIEUP - ,0xBC43 ,0xD36C //HANGUL SYLLABLE PHIEUPH YAE RIEULSIOS - ,0xBC44 ,0xD36D //HANGUL SYLLABLE PHIEUPH YAE RIEULTHIEUTH - ,0xBC45 ,0xD36E //HANGUL SYLLABLE PHIEUPH YAE RIEULPHIEUPH - ,0xBC46 ,0xD36F //HANGUL SYLLABLE PHIEUPH YAE RIEULHIEUH - ,0xBC47 ,0xD370 //HANGUL SYLLABLE PHIEUPH YAE MIEUM - ,0xBC48 ,0xD371 //HANGUL SYLLABLE PHIEUPH YAE PIEUP - ,0xBC49 ,0xD372 //HANGUL SYLLABLE PHIEUPH YAE PIEUPSIOS - ,0xBC4A ,0xD373 //HANGUL SYLLABLE PHIEUPH YAE SIOS - ,0xBC4B ,0xD374 //HANGUL SYLLABLE PHIEUPH YAE SSANGSIOS - ,0xBC4C ,0xD375 //HANGUL SYLLABLE PHIEUPH YAE IEUNG - ,0xBC4D ,0xD376 //HANGUL SYLLABLE PHIEUPH YAE CIEUC - ,0xBC4E ,0xD377 //HANGUL SYLLABLE PHIEUPH YAE CHIEUCH - ,0xBC4F ,0xD378 //HANGUL SYLLABLE PHIEUPH YAE KHIEUKH - ,0xBC50 ,0xD379 //HANGUL SYLLABLE PHIEUPH YAE THIEUTH - ,0xBC51 ,0xD37A //HANGUL SYLLABLE PHIEUPH YAE PHIEUPH - ,0xBC52 ,0xD37B //HANGUL SYLLABLE PHIEUPH YAE HIEUH - ,0xBC53 ,0xD37E //HANGUL SYLLABLE PHIEUPH EO SSANGKIYEOK - ,0xBC54 ,0xD37F //HANGUL SYLLABLE PHIEUPH EO KIYEOKSIOS - ,0xBC55 ,0xD381 //HANGUL SYLLABLE PHIEUPH EO NIEUNCIEUC - ,0xBC56 ,0xD382 //HANGUL SYLLABLE PHIEUPH EO NIEUNHIEUH - ,0xBC57 ,0xD383 //HANGUL SYLLABLE PHIEUPH EO TIKEUT - ,0xBC58 ,0xD385 //HANGUL SYLLABLE PHIEUPH EO RIEULKIYEOK - ,0xBC59 ,0xD386 //HANGUL SYLLABLE PHIEUPH EO RIEULMIEUM - ,0xBC5A ,0xD387 //HANGUL SYLLABLE PHIEUPH EO RIEULPIEUP - ,0xBC61 ,0xD388 //HANGUL SYLLABLE PHIEUPH EO RIEULSIOS - ,0xBC62 ,0xD389 //HANGUL SYLLABLE PHIEUPH EO RIEULTHIEUTH - ,0xBC63 ,0xD38A //HANGUL SYLLABLE PHIEUPH EO RIEULPHIEUPH - ,0xBC64 ,0xD38B //HANGUL SYLLABLE PHIEUPH EO RIEULHIEUH - ,0xBC65 ,0xD38E //HANGUL SYLLABLE PHIEUPH EO PIEUPSIOS - ,0xBC66 ,0xD392 //HANGUL SYLLABLE PHIEUPH EO CIEUC - ,0xBC67 ,0xD393 //HANGUL SYLLABLE PHIEUPH EO CHIEUCH - ,0xBC68 ,0xD394 //HANGUL SYLLABLE PHIEUPH EO KHIEUKH - ,0xBC69 ,0xD395 //HANGUL SYLLABLE PHIEUPH EO THIEUTH - ,0xBC6A ,0xD396 //HANGUL SYLLABLE PHIEUPH EO PHIEUPH - ,0xBC6B ,0xD397 //HANGUL SYLLABLE PHIEUPH EO HIEUH - ,0xBC6C ,0xD39A //HANGUL SYLLABLE PHIEUPH E SSANGKIYEOK - ,0xBC6D ,0xD39B //HANGUL SYLLABLE PHIEUPH E KIYEOKSIOS - ,0xBC6E ,0xD39D //HANGUL SYLLABLE PHIEUPH E NIEUNCIEUC - ,0xBC6F ,0xD39E //HANGUL SYLLABLE PHIEUPH E NIEUNHIEUH - ,0xBC70 ,0xD39F //HANGUL SYLLABLE PHIEUPH E TIKEUT - ,0xBC71 ,0xD3A1 //HANGUL SYLLABLE PHIEUPH E RIEULKIYEOK - ,0xBC72 ,0xD3A2 //HANGUL SYLLABLE PHIEUPH E RIEULMIEUM - ,0xBC73 ,0xD3A3 //HANGUL SYLLABLE PHIEUPH E RIEULPIEUP - ,0xBC74 ,0xD3A4 //HANGUL SYLLABLE PHIEUPH E RIEULSIOS - ,0xBC75 ,0xD3A5 //HANGUL SYLLABLE PHIEUPH E RIEULTHIEUTH - ,0xBC76 ,0xD3A6 //HANGUL SYLLABLE PHIEUPH E RIEULPHIEUPH - ,0xBC77 ,0xD3A7 //HANGUL SYLLABLE PHIEUPH E RIEULHIEUH - ,0xBC78 ,0xD3AA //HANGUL SYLLABLE PHIEUPH E PIEUPSIOS - ,0xBC79 ,0xD3AC //HANGUL SYLLABLE PHIEUPH E SSANGSIOS - ,0xBC7A ,0xD3AE //HANGUL SYLLABLE PHIEUPH E CIEUC - ,0xBC81 ,0xD3AF //HANGUL SYLLABLE PHIEUPH E CHIEUCH - ,0xBC82 ,0xD3B0 //HANGUL SYLLABLE PHIEUPH E KHIEUKH - ,0xBC83 ,0xD3B1 //HANGUL SYLLABLE PHIEUPH E THIEUTH - ,0xBC84 ,0xD3B2 //HANGUL SYLLABLE PHIEUPH E PHIEUPH - ,0xBC85 ,0xD3B3 //HANGUL SYLLABLE PHIEUPH E HIEUH - ,0xBC86 ,0xD3B5 //HANGUL SYLLABLE PHIEUPH YEO KIYEOK - ,0xBC87 ,0xD3B6 //HANGUL SYLLABLE PHIEUPH YEO SSANGKIYEOK - ,0xBC88 ,0xD3B7 //HANGUL SYLLABLE PHIEUPH YEO KIYEOKSIOS - ,0xBC89 ,0xD3B9 //HANGUL SYLLABLE PHIEUPH YEO NIEUNCIEUC - ,0xBC8A ,0xD3BA //HANGUL SYLLABLE PHIEUPH YEO NIEUNHIEUH - ,0xBC8B ,0xD3BB //HANGUL SYLLABLE PHIEUPH YEO TIKEUT - ,0xBC8C ,0xD3BD //HANGUL SYLLABLE PHIEUPH YEO RIEULKIYEOK - ,0xBC8D ,0xD3BE //HANGUL SYLLABLE PHIEUPH YEO RIEULMIEUM - ,0xBC8E ,0xD3BF //HANGUL SYLLABLE PHIEUPH YEO RIEULPIEUP - ,0xBC8F ,0xD3C0 //HANGUL SYLLABLE PHIEUPH YEO RIEULSIOS - ,0xBC90 ,0xD3C1 //HANGUL SYLLABLE PHIEUPH YEO RIEULTHIEUTH - ,0xBC91 ,0xD3C2 //HANGUL SYLLABLE PHIEUPH YEO RIEULPHIEUPH - ,0xBC92 ,0xD3C3 //HANGUL SYLLABLE PHIEUPH YEO RIEULHIEUH - ,0xBC93 ,0xD3C6 //HANGUL SYLLABLE PHIEUPH YEO PIEUPSIOS - ,0xBC94 ,0xD3C7 //HANGUL SYLLABLE PHIEUPH YEO SIOS - ,0xBC95 ,0xD3CA //HANGUL SYLLABLE PHIEUPH YEO CIEUC - ,0xBC96 ,0xD3CB //HANGUL SYLLABLE PHIEUPH YEO CHIEUCH - ,0xBC97 ,0xD3CC //HANGUL SYLLABLE PHIEUPH YEO KHIEUKH - ,0xBC98 ,0xD3CD //HANGUL SYLLABLE PHIEUPH YEO THIEUTH - ,0xBC99 ,0xD3CE //HANGUL SYLLABLE PHIEUPH YEO PHIEUPH - ,0xBC9A ,0xD3CF //HANGUL SYLLABLE PHIEUPH YEO HIEUH - ,0xBC9B ,0xD3D1 //HANGUL SYLLABLE PHIEUPH YE KIYEOK - ,0xBC9C ,0xD3D2 //HANGUL SYLLABLE PHIEUPH YE SSANGKIYEOK - ,0xBC9D ,0xD3D3 //HANGUL SYLLABLE PHIEUPH YE KIYEOKSIOS - ,0xBC9E ,0xD3D4 //HANGUL SYLLABLE PHIEUPH YE NIEUN - ,0xBC9F ,0xD3D5 //HANGUL SYLLABLE PHIEUPH YE NIEUNCIEUC - ,0xBCA0 ,0xD3D6 //HANGUL SYLLABLE PHIEUPH YE NIEUNHIEUH - ,0xBCA1 ,0xC0E5 //HANGUL SYLLABLE SIOS YA KIYEOK - ,0xBCA2 ,0xC0E8 //HANGUL SYLLABLE SIOS YA NIEUN - ,0xBCA3 ,0xC0EC //HANGUL SYLLABLE SIOS YA RIEUL - ,0xBCA4 ,0xC0F4 //HANGUL SYLLABLE SIOS YA MIEUM - ,0xBCA5 ,0xC0F5 //HANGUL SYLLABLE SIOS YA PIEUP - ,0xBCA6 ,0xC0F7 //HANGUL SYLLABLE SIOS YA SIOS - ,0xBCA7 ,0xC0F9 //HANGUL SYLLABLE SIOS YA IEUNG - ,0xBCA8 ,0xC100 //HANGUL SYLLABLE SIOS YAE - ,0xBCA9 ,0xC104 //HANGUL SYLLABLE SIOS YAE NIEUN - ,0xBCAA ,0xC108 //HANGUL SYLLABLE SIOS YAE RIEUL - ,0xBCAB ,0xC110 //HANGUL SYLLABLE SIOS YAE MIEUM - ,0xBCAC ,0xC115 //HANGUL SYLLABLE SIOS YAE IEUNG - ,0xBCAD ,0xC11C //HANGUL SYLLABLE SIOS EO - ,0xBCAE ,0xC11D //HANGUL SYLLABLE SIOS EO KIYEOK - ,0xBCAF ,0xC11E //HANGUL SYLLABLE SIOS EO SSANGKIYEOK - ,0xBCB0 ,0xC11F //HANGUL SYLLABLE SIOS EO KIYEOKSIOS - ,0xBCB1 ,0xC120 //HANGUL SYLLABLE SIOS EO NIEUN - ,0xBCB2 ,0xC123 //HANGUL SYLLABLE SIOS EO TIKEUT - ,0xBCB3 ,0xC124 //HANGUL SYLLABLE SIOS EO RIEUL - ,0xBCB4 ,0xC126 //HANGUL SYLLABLE SIOS EO RIEULMIEUM - ,0xBCB5 ,0xC127 //HANGUL SYLLABLE SIOS EO RIEULPIEUP - ,0xBCB6 ,0xC12C //HANGUL SYLLABLE SIOS EO MIEUM - ,0xBCB7 ,0xC12D //HANGUL SYLLABLE SIOS EO PIEUP - ,0xBCB8 ,0xC12F //HANGUL SYLLABLE SIOS EO SIOS - ,0xBCB9 ,0xC130 //HANGUL SYLLABLE SIOS EO SSANGSIOS - ,0xBCBA ,0xC131 //HANGUL SYLLABLE SIOS EO IEUNG - ,0xBCBB ,0xC136 //HANGUL SYLLABLE SIOS EO PHIEUPH - ,0xBCBC ,0xC138 //HANGUL SYLLABLE SIOS E - ,0xBCBD ,0xC139 //HANGUL SYLLABLE SIOS E KIYEOK - ,0xBCBE ,0xC13C //HANGUL SYLLABLE SIOS E NIEUN - ,0xBCBF ,0xC140 //HANGUL SYLLABLE SIOS E RIEUL - ,0xBCC0 ,0xC148 //HANGUL SYLLABLE SIOS E MIEUM - ,0xBCC1 ,0xC149 //HANGUL SYLLABLE SIOS E PIEUP - ,0xBCC2 ,0xC14B //HANGUL SYLLABLE SIOS E SIOS - ,0xBCC3 ,0xC14C //HANGUL SYLLABLE SIOS E SSANGSIOS - ,0xBCC4 ,0xC14D //HANGUL SYLLABLE SIOS E IEUNG - ,0xBCC5 ,0xC154 //HANGUL SYLLABLE SIOS YEO - ,0xBCC6 ,0xC155 //HANGUL SYLLABLE SIOS YEO KIYEOK - ,0xBCC7 ,0xC158 //HANGUL SYLLABLE SIOS YEO NIEUN - ,0xBCC8 ,0xC15C //HANGUL SYLLABLE SIOS YEO RIEUL - ,0xBCC9 ,0xC164 //HANGUL SYLLABLE SIOS YEO MIEUM - ,0xBCCA ,0xC165 //HANGUL SYLLABLE SIOS YEO PIEUP - ,0xBCCB ,0xC167 //HANGUL SYLLABLE SIOS YEO SIOS - ,0xBCCC ,0xC168 //HANGUL SYLLABLE SIOS YEO SSANGSIOS - ,0xBCCD ,0xC169 //HANGUL SYLLABLE SIOS YEO IEUNG - ,0xBCCE ,0xC170 //HANGUL SYLLABLE SIOS YE - ,0xBCCF ,0xC174 //HANGUL SYLLABLE SIOS YE NIEUN - ,0xBCD0 ,0xC178 //HANGUL SYLLABLE SIOS YE RIEUL - ,0xBCD1 ,0xC185 //HANGUL SYLLABLE SIOS YE IEUNG - ,0xBCD2 ,0xC18C //HANGUL SYLLABLE SIOS O - ,0xBCD3 ,0xC18D //HANGUL SYLLABLE SIOS O KIYEOK - ,0xBCD4 ,0xC18E //HANGUL SYLLABLE SIOS O SSANGKIYEOK - ,0xBCD5 ,0xC190 //HANGUL SYLLABLE SIOS O NIEUN - ,0xBCD6 ,0xC194 //HANGUL SYLLABLE SIOS O RIEUL - ,0xBCD7 ,0xC196 //HANGUL SYLLABLE SIOS O RIEULMIEUM - ,0xBCD8 ,0xC19C //HANGUL SYLLABLE SIOS O MIEUM - ,0xBCD9 ,0xC19D //HANGUL SYLLABLE SIOS O PIEUP - ,0xBCDA ,0xC19F //HANGUL SYLLABLE SIOS O SIOS - ,0xBCDB ,0xC1A1 //HANGUL SYLLABLE SIOS O IEUNG - ,0xBCDC ,0xC1A5 //HANGUL SYLLABLE SIOS O THIEUTH - ,0xBCDD ,0xC1A8 //HANGUL SYLLABLE SIOS WA - ,0xBCDE ,0xC1A9 //HANGUL SYLLABLE SIOS WA KIYEOK - ,0xBCDF ,0xC1AC //HANGUL SYLLABLE SIOS WA NIEUN - ,0xBCE0 ,0xC1B0 //HANGUL SYLLABLE SIOS WA RIEUL - ,0xBCE1 ,0xC1BD //HANGUL SYLLABLE SIOS WA IEUNG - ,0xBCE2 ,0xC1C4 //HANGUL SYLLABLE SIOS WAE - ,0xBCE3 ,0xC1C8 //HANGUL SYLLABLE SIOS WAE NIEUN - ,0xBCE4 ,0xC1CC //HANGUL SYLLABLE SIOS WAE RIEUL - ,0xBCE5 ,0xC1D4 //HANGUL SYLLABLE SIOS WAE MIEUM - ,0xBCE6 ,0xC1D7 //HANGUL SYLLABLE SIOS WAE SIOS - ,0xBCE7 ,0xC1D8 //HANGUL SYLLABLE SIOS WAE SSANGSIOS - ,0xBCE8 ,0xC1E0 //HANGUL SYLLABLE SIOS OE - ,0xBCE9 ,0xC1E4 //HANGUL SYLLABLE SIOS OE NIEUN - ,0xBCEA ,0xC1E8 //HANGUL SYLLABLE SIOS OE RIEUL - ,0xBCEB ,0xC1F0 //HANGUL SYLLABLE SIOS OE MIEUM - ,0xBCEC ,0xC1F1 //HANGUL SYLLABLE SIOS OE PIEUP - ,0xBCED ,0xC1F3 //HANGUL SYLLABLE SIOS OE SIOS - ,0xBCEE ,0xC1FC //HANGUL SYLLABLE SIOS YO - ,0xBCEF ,0xC1FD //HANGUL SYLLABLE SIOS YO KIYEOK - ,0xBCF0 ,0xC200 //HANGUL SYLLABLE SIOS YO NIEUN - ,0xBCF1 ,0xC204 //HANGUL SYLLABLE SIOS YO RIEUL - ,0xBCF2 ,0xC20C //HANGUL SYLLABLE SIOS YO MIEUM - ,0xBCF3 ,0xC20D //HANGUL SYLLABLE SIOS YO PIEUP - ,0xBCF4 ,0xC20F //HANGUL SYLLABLE SIOS YO SIOS - ,0xBCF5 ,0xC211 //HANGUL SYLLABLE SIOS YO IEUNG - ,0xBCF6 ,0xC218 //HANGUL SYLLABLE SIOS U - ,0xBCF7 ,0xC219 //HANGUL SYLLABLE SIOS U KIYEOK - ,0xBCF8 ,0xC21C //HANGUL SYLLABLE SIOS U NIEUN - ,0xBCF9 ,0xC21F //HANGUL SYLLABLE SIOS U TIKEUT - ,0xBCFA ,0xC220 //HANGUL SYLLABLE SIOS U RIEUL - ,0xBCFB ,0xC228 //HANGUL SYLLABLE SIOS U MIEUM - ,0xBCFC ,0xC229 //HANGUL SYLLABLE SIOS U PIEUP - ,0xBCFD ,0xC22B //HANGUL SYLLABLE SIOS U SIOS - ,0xBCFE ,0xC22D //HANGUL SYLLABLE SIOS U IEUNG - ,0xBD41 ,0xD3D7 //HANGUL SYLLABLE PHIEUPH YE TIKEUT - ,0xBD42 ,0xD3D9 //HANGUL SYLLABLE PHIEUPH YE RIEULKIYEOK - ,0xBD43 ,0xD3DA //HANGUL SYLLABLE PHIEUPH YE RIEULMIEUM - ,0xBD44 ,0xD3DB //HANGUL SYLLABLE PHIEUPH YE RIEULPIEUP - ,0xBD45 ,0xD3DC //HANGUL SYLLABLE PHIEUPH YE RIEULSIOS - ,0xBD46 ,0xD3DD //HANGUL SYLLABLE PHIEUPH YE RIEULTHIEUTH - ,0xBD47 ,0xD3DE //HANGUL SYLLABLE PHIEUPH YE RIEULPHIEUPH - ,0xBD48 ,0xD3DF //HANGUL SYLLABLE PHIEUPH YE RIEULHIEUH - ,0xBD49 ,0xD3E0 //HANGUL SYLLABLE PHIEUPH YE MIEUM - ,0xBD4A ,0xD3E2 //HANGUL SYLLABLE PHIEUPH YE PIEUPSIOS - ,0xBD4B ,0xD3E4 //HANGUL SYLLABLE PHIEUPH YE SSANGSIOS - ,0xBD4C ,0xD3E5 //HANGUL SYLLABLE PHIEUPH YE IEUNG - ,0xBD4D ,0xD3E6 //HANGUL SYLLABLE PHIEUPH YE CIEUC - ,0xBD4E ,0xD3E7 //HANGUL SYLLABLE PHIEUPH YE CHIEUCH - ,0xBD4F ,0xD3E8 //HANGUL SYLLABLE PHIEUPH YE KHIEUKH - ,0xBD50 ,0xD3E9 //HANGUL SYLLABLE PHIEUPH YE THIEUTH - ,0xBD51 ,0xD3EA //HANGUL SYLLABLE PHIEUPH YE PHIEUPH - ,0xBD52 ,0xD3EB //HANGUL SYLLABLE PHIEUPH YE HIEUH - ,0xBD53 ,0xD3EE //HANGUL SYLLABLE PHIEUPH O SSANGKIYEOK - ,0xBD54 ,0xD3EF //HANGUL SYLLABLE PHIEUPH O KIYEOKSIOS - ,0xBD55 ,0xD3F1 //HANGUL SYLLABLE PHIEUPH O NIEUNCIEUC - ,0xBD56 ,0xD3F2 //HANGUL SYLLABLE PHIEUPH O NIEUNHIEUH - ,0xBD57 ,0xD3F3 //HANGUL SYLLABLE PHIEUPH O TIKEUT - ,0xBD58 ,0xD3F5 //HANGUL SYLLABLE PHIEUPH O RIEULKIYEOK - ,0xBD59 ,0xD3F6 //HANGUL SYLLABLE PHIEUPH O RIEULMIEUM - ,0xBD5A ,0xD3F7 //HANGUL SYLLABLE PHIEUPH O RIEULPIEUP - ,0xBD61 ,0xD3F8 //HANGUL SYLLABLE PHIEUPH O RIEULSIOS - ,0xBD62 ,0xD3F9 //HANGUL SYLLABLE PHIEUPH O RIEULTHIEUTH - ,0xBD63 ,0xD3FA //HANGUL SYLLABLE PHIEUPH O RIEULPHIEUPH - ,0xBD64 ,0xD3FB //HANGUL SYLLABLE PHIEUPH O RIEULHIEUH - ,0xBD65 ,0xD3FE //HANGUL SYLLABLE PHIEUPH O PIEUPSIOS - ,0xBD66 ,0xD400 //HANGUL SYLLABLE PHIEUPH O SSANGSIOS - ,0xBD67 ,0xD402 //HANGUL SYLLABLE PHIEUPH O CIEUC - ,0xBD68 ,0xD403 //HANGUL SYLLABLE PHIEUPH O CHIEUCH - ,0xBD69 ,0xD404 //HANGUL SYLLABLE PHIEUPH O KHIEUKH - ,0xBD6A ,0xD405 //HANGUL SYLLABLE PHIEUPH O THIEUTH - ,0xBD6B ,0xD406 //HANGUL SYLLABLE PHIEUPH O PHIEUPH - ,0xBD6C ,0xD407 //HANGUL SYLLABLE PHIEUPH O HIEUH - ,0xBD6D ,0xD409 //HANGUL SYLLABLE PHIEUPH WA KIYEOK - ,0xBD6E ,0xD40A //HANGUL SYLLABLE PHIEUPH WA SSANGKIYEOK - ,0xBD6F ,0xD40B //HANGUL SYLLABLE PHIEUPH WA KIYEOKSIOS - ,0xBD70 ,0xD40C //HANGUL SYLLABLE PHIEUPH WA NIEUN - ,0xBD71 ,0xD40D //HANGUL SYLLABLE PHIEUPH WA NIEUNCIEUC - ,0xBD72 ,0xD40E //HANGUL SYLLABLE PHIEUPH WA NIEUNHIEUH - ,0xBD73 ,0xD40F //HANGUL SYLLABLE PHIEUPH WA TIKEUT - ,0xBD74 ,0xD410 //HANGUL SYLLABLE PHIEUPH WA RIEUL - ,0xBD75 ,0xD411 //HANGUL SYLLABLE PHIEUPH WA RIEULKIYEOK - ,0xBD76 ,0xD412 //HANGUL SYLLABLE PHIEUPH WA RIEULMIEUM - ,0xBD77 ,0xD413 //HANGUL SYLLABLE PHIEUPH WA RIEULPIEUP - ,0xBD78 ,0xD414 //HANGUL SYLLABLE PHIEUPH WA RIEULSIOS - ,0xBD79 ,0xD415 //HANGUL SYLLABLE PHIEUPH WA RIEULTHIEUTH - ,0xBD7A ,0xD416 //HANGUL SYLLABLE PHIEUPH WA RIEULPHIEUPH - ,0xBD81 ,0xD417 //HANGUL SYLLABLE PHIEUPH WA RIEULHIEUH - ,0xBD82 ,0xD418 //HANGUL SYLLABLE PHIEUPH WA MIEUM - ,0xBD83 ,0xD419 //HANGUL SYLLABLE PHIEUPH WA PIEUP - ,0xBD84 ,0xD41A //HANGUL SYLLABLE PHIEUPH WA PIEUPSIOS - ,0xBD85 ,0xD41B //HANGUL SYLLABLE PHIEUPH WA SIOS - ,0xBD86 ,0xD41C //HANGUL SYLLABLE PHIEUPH WA SSANGSIOS - ,0xBD87 ,0xD41E //HANGUL SYLLABLE PHIEUPH WA CIEUC - ,0xBD88 ,0xD41F //HANGUL SYLLABLE PHIEUPH WA CHIEUCH - ,0xBD89 ,0xD420 //HANGUL SYLLABLE PHIEUPH WA KHIEUKH - ,0xBD8A ,0xD421 //HANGUL SYLLABLE PHIEUPH WA THIEUTH - ,0xBD8B ,0xD422 //HANGUL SYLLABLE PHIEUPH WA PHIEUPH - ,0xBD8C ,0xD423 //HANGUL SYLLABLE PHIEUPH WA HIEUH - ,0xBD8D ,0xD424 //HANGUL SYLLABLE PHIEUPH WAE - ,0xBD8E ,0xD425 //HANGUL SYLLABLE PHIEUPH WAE KIYEOK - ,0xBD8F ,0xD426 //HANGUL SYLLABLE PHIEUPH WAE SSANGKIYEOK - ,0xBD90 ,0xD427 //HANGUL SYLLABLE PHIEUPH WAE KIYEOKSIOS - ,0xBD91 ,0xD428 //HANGUL SYLLABLE PHIEUPH WAE NIEUN - ,0xBD92 ,0xD429 //HANGUL SYLLABLE PHIEUPH WAE NIEUNCIEUC - ,0xBD93 ,0xD42A //HANGUL SYLLABLE PHIEUPH WAE NIEUNHIEUH - ,0xBD94 ,0xD42B //HANGUL SYLLABLE PHIEUPH WAE TIKEUT - ,0xBD95 ,0xD42C //HANGUL SYLLABLE PHIEUPH WAE RIEUL - ,0xBD96 ,0xD42D //HANGUL SYLLABLE PHIEUPH WAE RIEULKIYEOK - ,0xBD97 ,0xD42E //HANGUL SYLLABLE PHIEUPH WAE RIEULMIEUM - ,0xBD98 ,0xD42F //HANGUL SYLLABLE PHIEUPH WAE RIEULPIEUP - ,0xBD99 ,0xD430 //HANGUL SYLLABLE PHIEUPH WAE RIEULSIOS - ,0xBD9A ,0xD431 //HANGUL SYLLABLE PHIEUPH WAE RIEULTHIEUTH - ,0xBD9B ,0xD432 //HANGUL SYLLABLE PHIEUPH WAE RIEULPHIEUPH - ,0xBD9C ,0xD433 //HANGUL SYLLABLE PHIEUPH WAE RIEULHIEUH - ,0xBD9D ,0xD434 //HANGUL SYLLABLE PHIEUPH WAE MIEUM - ,0xBD9E ,0xD435 //HANGUL SYLLABLE PHIEUPH WAE PIEUP - ,0xBD9F ,0xD436 //HANGUL SYLLABLE PHIEUPH WAE PIEUPSIOS - ,0xBDA0 ,0xD437 //HANGUL SYLLABLE PHIEUPH WAE SIOS - ,0xBDA1 ,0xC22F //HANGUL SYLLABLE SIOS U CHIEUCH - ,0xBDA2 ,0xC231 //HANGUL SYLLABLE SIOS U THIEUTH - ,0xBDA3 ,0xC232 //HANGUL SYLLABLE SIOS U PHIEUPH - ,0xBDA4 ,0xC234 //HANGUL SYLLABLE SIOS WEO - ,0xBDA5 ,0xC248 //HANGUL SYLLABLE SIOS WEO SSANGSIOS - ,0xBDA6 ,0xC250 //HANGUL SYLLABLE SIOS WE - ,0xBDA7 ,0xC251 //HANGUL SYLLABLE SIOS WE KIYEOK - ,0xBDA8 ,0xC254 //HANGUL SYLLABLE SIOS WE NIEUN - ,0xBDA9 ,0xC258 //HANGUL SYLLABLE SIOS WE RIEUL - ,0xBDAA ,0xC260 //HANGUL SYLLABLE SIOS WE MIEUM - ,0xBDAB ,0xC265 //HANGUL SYLLABLE SIOS WE IEUNG - ,0xBDAC ,0xC26C //HANGUL SYLLABLE SIOS WI - ,0xBDAD ,0xC26D //HANGUL SYLLABLE SIOS WI KIYEOK - ,0xBDAE ,0xC270 //HANGUL SYLLABLE SIOS WI NIEUN - ,0xBDAF ,0xC274 //HANGUL SYLLABLE SIOS WI RIEUL - ,0xBDB0 ,0xC27C //HANGUL SYLLABLE SIOS WI MIEUM - ,0xBDB1 ,0xC27D //HANGUL SYLLABLE SIOS WI PIEUP - ,0xBDB2 ,0xC27F //HANGUL SYLLABLE SIOS WI SIOS - ,0xBDB3 ,0xC281 //HANGUL SYLLABLE SIOS WI IEUNG - ,0xBDB4 ,0xC288 //HANGUL SYLLABLE SIOS YU - ,0xBDB5 ,0xC289 //HANGUL SYLLABLE SIOS YU KIYEOK - ,0xBDB6 ,0xC290 //HANGUL SYLLABLE SIOS YU RIEUL - ,0xBDB7 ,0xC298 //HANGUL SYLLABLE SIOS YU MIEUM - ,0xBDB8 ,0xC29B //HANGUL SYLLABLE SIOS YU SIOS - ,0xBDB9 ,0xC29D //HANGUL SYLLABLE SIOS YU IEUNG - ,0xBDBA ,0xC2A4 //HANGUL SYLLABLE SIOS EU - ,0xBDBB ,0xC2A5 //HANGUL SYLLABLE SIOS EU KIYEOK - ,0xBDBC ,0xC2A8 //HANGUL SYLLABLE SIOS EU NIEUN - ,0xBDBD ,0xC2AC //HANGUL SYLLABLE SIOS EU RIEUL - ,0xBDBE ,0xC2AD //HANGUL SYLLABLE SIOS EU RIEULKIYEOK - ,0xBDBF ,0xC2B4 //HANGUL SYLLABLE SIOS EU MIEUM - ,0xBDC0 ,0xC2B5 //HANGUL SYLLABLE SIOS EU PIEUP - ,0xBDC1 ,0xC2B7 //HANGUL SYLLABLE SIOS EU SIOS - ,0xBDC2 ,0xC2B9 //HANGUL SYLLABLE SIOS EU IEUNG - ,0xBDC3 ,0xC2DC //HANGUL SYLLABLE SIOS I - ,0xBDC4 ,0xC2DD //HANGUL SYLLABLE SIOS I KIYEOK - ,0xBDC5 ,0xC2E0 //HANGUL SYLLABLE SIOS I NIEUN - ,0xBDC6 ,0xC2E3 //HANGUL SYLLABLE SIOS I TIKEUT - ,0xBDC7 ,0xC2E4 //HANGUL SYLLABLE SIOS I RIEUL - ,0xBDC8 ,0xC2EB //HANGUL SYLLABLE SIOS I RIEULHIEUH - ,0xBDC9 ,0xC2EC //HANGUL SYLLABLE SIOS I MIEUM - ,0xBDCA ,0xC2ED //HANGUL SYLLABLE SIOS I PIEUP - ,0xBDCB ,0xC2EF //HANGUL SYLLABLE SIOS I SIOS - ,0xBDCC ,0xC2F1 //HANGUL SYLLABLE SIOS I IEUNG - ,0xBDCD ,0xC2F6 //HANGUL SYLLABLE SIOS I PHIEUPH - ,0xBDCE ,0xC2F8 //HANGUL SYLLABLE SSANGSIOS A - ,0xBDCF ,0xC2F9 //HANGUL SYLLABLE SSANGSIOS A KIYEOK - ,0xBDD0 ,0xC2FB //HANGUL SYLLABLE SSANGSIOS A KIYEOKSIOS - ,0xBDD1 ,0xC2FC //HANGUL SYLLABLE SSANGSIOS A NIEUN - ,0xBDD2 ,0xC300 //HANGUL SYLLABLE SSANGSIOS A RIEUL - ,0xBDD3 ,0xC308 //HANGUL SYLLABLE SSANGSIOS A MIEUM - ,0xBDD4 ,0xC309 //HANGUL SYLLABLE SSANGSIOS A PIEUP - ,0xBDD5 ,0xC30C //HANGUL SYLLABLE SSANGSIOS A SSANGSIOS - ,0xBDD6 ,0xC30D //HANGUL SYLLABLE SSANGSIOS A IEUNG - ,0xBDD7 ,0xC313 //HANGUL SYLLABLE SSANGSIOS A HIEUH - ,0xBDD8 ,0xC314 //HANGUL SYLLABLE SSANGSIOS AE - ,0xBDD9 ,0xC315 //HANGUL SYLLABLE SSANGSIOS AE KIYEOK - ,0xBDDA ,0xC318 //HANGUL SYLLABLE SSANGSIOS AE NIEUN - ,0xBDDB ,0xC31C //HANGUL SYLLABLE SSANGSIOS AE RIEUL - ,0xBDDC ,0xC324 //HANGUL SYLLABLE SSANGSIOS AE MIEUM - ,0xBDDD ,0xC325 //HANGUL SYLLABLE SSANGSIOS AE PIEUP - ,0xBDDE ,0xC328 //HANGUL SYLLABLE SSANGSIOS AE SSANGSIOS - ,0xBDDF ,0xC329 //HANGUL SYLLABLE SSANGSIOS AE IEUNG - ,0xBDE0 ,0xC345 //HANGUL SYLLABLE SSANGSIOS YA IEUNG - ,0xBDE1 ,0xC368 //HANGUL SYLLABLE SSANGSIOS EO - ,0xBDE2 ,0xC369 //HANGUL SYLLABLE SSANGSIOS EO KIYEOK - ,0xBDE3 ,0xC36C //HANGUL SYLLABLE SSANGSIOS EO NIEUN - ,0xBDE4 ,0xC370 //HANGUL SYLLABLE SSANGSIOS EO RIEUL - ,0xBDE5 ,0xC372 //HANGUL SYLLABLE SSANGSIOS EO RIEULMIEUM - ,0xBDE6 ,0xC378 //HANGUL SYLLABLE SSANGSIOS EO MIEUM - ,0xBDE7 ,0xC379 //HANGUL SYLLABLE SSANGSIOS EO PIEUP - ,0xBDE8 ,0xC37C //HANGUL SYLLABLE SSANGSIOS EO SSANGSIOS - ,0xBDE9 ,0xC37D //HANGUL SYLLABLE SSANGSIOS EO IEUNG - ,0xBDEA ,0xC384 //HANGUL SYLLABLE SSANGSIOS E - ,0xBDEB ,0xC388 //HANGUL SYLLABLE SSANGSIOS E NIEUN - ,0xBDEC ,0xC38C //HANGUL SYLLABLE SSANGSIOS E RIEUL - ,0xBDED ,0xC3C0 //HANGUL SYLLABLE SSANGSIOS YE NIEUN - ,0xBDEE ,0xC3D8 //HANGUL SYLLABLE SSANGSIOS O - ,0xBDEF ,0xC3D9 //HANGUL SYLLABLE SSANGSIOS O KIYEOK - ,0xBDF0 ,0xC3DC //HANGUL SYLLABLE SSANGSIOS O NIEUN - ,0xBDF1 ,0xC3DF //HANGUL SYLLABLE SSANGSIOS O TIKEUT - ,0xBDF2 ,0xC3E0 //HANGUL SYLLABLE SSANGSIOS O RIEUL - ,0xBDF3 ,0xC3E2 //HANGUL SYLLABLE SSANGSIOS O RIEULMIEUM - ,0xBDF4 ,0xC3E8 //HANGUL SYLLABLE SSANGSIOS O MIEUM - ,0xBDF5 ,0xC3E9 //HANGUL SYLLABLE SSANGSIOS O PIEUP - ,0xBDF6 ,0xC3ED //HANGUL SYLLABLE SSANGSIOS O IEUNG - ,0xBDF7 ,0xC3F4 //HANGUL SYLLABLE SSANGSIOS WA - ,0xBDF8 ,0xC3F5 //HANGUL SYLLABLE SSANGSIOS WA KIYEOK - ,0xBDF9 ,0xC3F8 //HANGUL SYLLABLE SSANGSIOS WA NIEUN - ,0xBDFA ,0xC408 //HANGUL SYLLABLE SSANGSIOS WA SSANGSIOS - ,0xBDFB ,0xC410 //HANGUL SYLLABLE SSANGSIOS WAE - ,0xBDFC ,0xC424 //HANGUL SYLLABLE SSANGSIOS WAE SSANGSIOS - ,0xBDFD ,0xC42C //HANGUL SYLLABLE SSANGSIOS OE - ,0xBDFE ,0xC430 //HANGUL SYLLABLE SSANGSIOS OE NIEUN - ,0xBE41 ,0xD438 //HANGUL SYLLABLE PHIEUPH WAE SSANGSIOS - ,0xBE42 ,0xD439 //HANGUL SYLLABLE PHIEUPH WAE IEUNG - ,0xBE43 ,0xD43A //HANGUL SYLLABLE PHIEUPH WAE CIEUC - ,0xBE44 ,0xD43B //HANGUL SYLLABLE PHIEUPH WAE CHIEUCH - ,0xBE45 ,0xD43C //HANGUL SYLLABLE PHIEUPH WAE KHIEUKH - ,0xBE46 ,0xD43D //HANGUL SYLLABLE PHIEUPH WAE THIEUTH - ,0xBE47 ,0xD43E //HANGUL SYLLABLE PHIEUPH WAE PHIEUPH - ,0xBE48 ,0xD43F //HANGUL SYLLABLE PHIEUPH WAE HIEUH - ,0xBE49 ,0xD441 //HANGUL SYLLABLE PHIEUPH OE KIYEOK - ,0xBE4A ,0xD442 //HANGUL SYLLABLE PHIEUPH OE SSANGKIYEOK - ,0xBE4B ,0xD443 //HANGUL SYLLABLE PHIEUPH OE KIYEOKSIOS - ,0xBE4C ,0xD445 //HANGUL SYLLABLE PHIEUPH OE NIEUNCIEUC - ,0xBE4D ,0xD446 //HANGUL SYLLABLE PHIEUPH OE NIEUNHIEUH - ,0xBE4E ,0xD447 //HANGUL SYLLABLE PHIEUPH OE TIKEUT - ,0xBE4F ,0xD448 //HANGUL SYLLABLE PHIEUPH OE RIEUL - ,0xBE50 ,0xD449 //HANGUL SYLLABLE PHIEUPH OE RIEULKIYEOK - ,0xBE51 ,0xD44A //HANGUL SYLLABLE PHIEUPH OE RIEULMIEUM - ,0xBE52 ,0xD44B //HANGUL SYLLABLE PHIEUPH OE RIEULPIEUP - ,0xBE53 ,0xD44C //HANGUL SYLLABLE PHIEUPH OE RIEULSIOS - ,0xBE54 ,0xD44D //HANGUL SYLLABLE PHIEUPH OE RIEULTHIEUTH - ,0xBE55 ,0xD44E //HANGUL SYLLABLE PHIEUPH OE RIEULPHIEUPH - ,0xBE56 ,0xD44F //HANGUL SYLLABLE PHIEUPH OE RIEULHIEUH - ,0xBE57 ,0xD450 //HANGUL SYLLABLE PHIEUPH OE MIEUM - ,0xBE58 ,0xD451 //HANGUL SYLLABLE PHIEUPH OE PIEUP - ,0xBE59 ,0xD452 //HANGUL SYLLABLE PHIEUPH OE PIEUPSIOS - ,0xBE5A ,0xD453 //HANGUL SYLLABLE PHIEUPH OE SIOS - ,0xBE61 ,0xD454 //HANGUL SYLLABLE PHIEUPH OE SSANGSIOS - ,0xBE62 ,0xD455 //HANGUL SYLLABLE PHIEUPH OE IEUNG - ,0xBE63 ,0xD456 //HANGUL SYLLABLE PHIEUPH OE CIEUC - ,0xBE64 ,0xD457 //HANGUL SYLLABLE PHIEUPH OE CHIEUCH - ,0xBE65 ,0xD458 //HANGUL SYLLABLE PHIEUPH OE KHIEUKH - ,0xBE66 ,0xD459 //HANGUL SYLLABLE PHIEUPH OE THIEUTH - ,0xBE67 ,0xD45A //HANGUL SYLLABLE PHIEUPH OE PHIEUPH - ,0xBE68 ,0xD45B //HANGUL SYLLABLE PHIEUPH OE HIEUH - ,0xBE69 ,0xD45D //HANGUL SYLLABLE PHIEUPH YO KIYEOK - ,0xBE6A ,0xD45E //HANGUL SYLLABLE PHIEUPH YO SSANGKIYEOK - ,0xBE6B ,0xD45F //HANGUL SYLLABLE PHIEUPH YO KIYEOKSIOS - ,0xBE6C ,0xD461 //HANGUL SYLLABLE PHIEUPH YO NIEUNCIEUC - ,0xBE6D ,0xD462 //HANGUL SYLLABLE PHIEUPH YO NIEUNHIEUH - ,0xBE6E ,0xD463 //HANGUL SYLLABLE PHIEUPH YO TIKEUT - ,0xBE6F ,0xD465 //HANGUL SYLLABLE PHIEUPH YO RIEULKIYEOK - ,0xBE70 ,0xD466 //HANGUL SYLLABLE PHIEUPH YO RIEULMIEUM - ,0xBE71 ,0xD467 //HANGUL SYLLABLE PHIEUPH YO RIEULPIEUP - ,0xBE72 ,0xD468 //HANGUL SYLLABLE PHIEUPH YO RIEULSIOS - ,0xBE73 ,0xD469 //HANGUL SYLLABLE PHIEUPH YO RIEULTHIEUTH - ,0xBE74 ,0xD46A //HANGUL SYLLABLE PHIEUPH YO RIEULPHIEUPH - ,0xBE75 ,0xD46B //HANGUL SYLLABLE PHIEUPH YO RIEULHIEUH - ,0xBE76 ,0xD46C //HANGUL SYLLABLE PHIEUPH YO MIEUM - ,0xBE77 ,0xD46E //HANGUL SYLLABLE PHIEUPH YO PIEUPSIOS - ,0xBE78 ,0xD470 //HANGUL SYLLABLE PHIEUPH YO SSANGSIOS - ,0xBE79 ,0xD471 //HANGUL SYLLABLE PHIEUPH YO IEUNG - ,0xBE7A ,0xD472 //HANGUL SYLLABLE PHIEUPH YO CIEUC - ,0xBE81 ,0xD473 //HANGUL SYLLABLE PHIEUPH YO CHIEUCH - ,0xBE82 ,0xD474 //HANGUL SYLLABLE PHIEUPH YO KHIEUKH - ,0xBE83 ,0xD475 //HANGUL SYLLABLE PHIEUPH YO THIEUTH - ,0xBE84 ,0xD476 //HANGUL SYLLABLE PHIEUPH YO PHIEUPH - ,0xBE85 ,0xD477 //HANGUL SYLLABLE PHIEUPH YO HIEUH - ,0xBE86 ,0xD47A //HANGUL SYLLABLE PHIEUPH U SSANGKIYEOK - ,0xBE87 ,0xD47B //HANGUL SYLLABLE PHIEUPH U KIYEOKSIOS - ,0xBE88 ,0xD47D //HANGUL SYLLABLE PHIEUPH U NIEUNCIEUC - ,0xBE89 ,0xD47E //HANGUL SYLLABLE PHIEUPH U NIEUNHIEUH - ,0xBE8A ,0xD481 //HANGUL SYLLABLE PHIEUPH U RIEULKIYEOK - ,0xBE8B ,0xD483 //HANGUL SYLLABLE PHIEUPH U RIEULPIEUP - ,0xBE8C ,0xD484 //HANGUL SYLLABLE PHIEUPH U RIEULSIOS - ,0xBE8D ,0xD485 //HANGUL SYLLABLE PHIEUPH U RIEULTHIEUTH - ,0xBE8E ,0xD486 //HANGUL SYLLABLE PHIEUPH U RIEULPHIEUPH - ,0xBE8F ,0xD487 //HANGUL SYLLABLE PHIEUPH U RIEULHIEUH - ,0xBE90 ,0xD48A //HANGUL SYLLABLE PHIEUPH U PIEUPSIOS - ,0xBE91 ,0xD48C //HANGUL SYLLABLE PHIEUPH U SSANGSIOS - ,0xBE92 ,0xD48E //HANGUL SYLLABLE PHIEUPH U CIEUC - ,0xBE93 ,0xD48F //HANGUL SYLLABLE PHIEUPH U CHIEUCH - ,0xBE94 ,0xD490 //HANGUL SYLLABLE PHIEUPH U KHIEUKH - ,0xBE95 ,0xD491 //HANGUL SYLLABLE PHIEUPH U THIEUTH - ,0xBE96 ,0xD492 //HANGUL SYLLABLE PHIEUPH U PHIEUPH - ,0xBE97 ,0xD493 //HANGUL SYLLABLE PHIEUPH U HIEUH - ,0xBE98 ,0xD495 //HANGUL SYLLABLE PHIEUPH WEO KIYEOK - ,0xBE99 ,0xD496 //HANGUL SYLLABLE PHIEUPH WEO SSANGKIYEOK - ,0xBE9A ,0xD497 //HANGUL SYLLABLE PHIEUPH WEO KIYEOKSIOS - ,0xBE9B ,0xD498 //HANGUL SYLLABLE PHIEUPH WEO NIEUN - ,0xBE9C ,0xD499 //HANGUL SYLLABLE PHIEUPH WEO NIEUNCIEUC - ,0xBE9D ,0xD49A //HANGUL SYLLABLE PHIEUPH WEO NIEUNHIEUH - ,0xBE9E ,0xD49B //HANGUL SYLLABLE PHIEUPH WEO TIKEUT - ,0xBE9F ,0xD49C //HANGUL SYLLABLE PHIEUPH WEO RIEUL - ,0xBEA0 ,0xD49D //HANGUL SYLLABLE PHIEUPH WEO RIEULKIYEOK - ,0xBEA1 ,0xC434 //HANGUL SYLLABLE SSANGSIOS OE RIEUL - ,0xBEA2 ,0xC43C //HANGUL SYLLABLE SSANGSIOS OE MIEUM - ,0xBEA3 ,0xC43D //HANGUL SYLLABLE SSANGSIOS OE PIEUP - ,0xBEA4 ,0xC448 //HANGUL SYLLABLE SSANGSIOS YO - ,0xBEA5 ,0xC464 //HANGUL SYLLABLE SSANGSIOS U - ,0xBEA6 ,0xC465 //HANGUL SYLLABLE SSANGSIOS U KIYEOK - ,0xBEA7 ,0xC468 //HANGUL SYLLABLE SSANGSIOS U NIEUN - ,0xBEA8 ,0xC46C //HANGUL SYLLABLE SSANGSIOS U RIEUL - ,0xBEA9 ,0xC474 //HANGUL SYLLABLE SSANGSIOS U MIEUM - ,0xBEAA ,0xC475 //HANGUL SYLLABLE SSANGSIOS U PIEUP - ,0xBEAB ,0xC479 //HANGUL SYLLABLE SSANGSIOS U IEUNG - ,0xBEAC ,0xC480 //HANGUL SYLLABLE SSANGSIOS WEO - ,0xBEAD ,0xC494 //HANGUL SYLLABLE SSANGSIOS WEO SSANGSIOS - ,0xBEAE ,0xC49C //HANGUL SYLLABLE SSANGSIOS WE - ,0xBEAF ,0xC4B8 //HANGUL SYLLABLE SSANGSIOS WI - ,0xBEB0 ,0xC4BC //HANGUL SYLLABLE SSANGSIOS WI NIEUN - ,0xBEB1 ,0xC4E9 //HANGUL SYLLABLE SSANGSIOS YU IEUNG - ,0xBEB2 ,0xC4F0 //HANGUL SYLLABLE SSANGSIOS EU - ,0xBEB3 ,0xC4F1 //HANGUL SYLLABLE SSANGSIOS EU KIYEOK - ,0xBEB4 ,0xC4F4 //HANGUL SYLLABLE SSANGSIOS EU NIEUN - ,0xBEB5 ,0xC4F8 //HANGUL SYLLABLE SSANGSIOS EU RIEUL - ,0xBEB6 ,0xC4FA //HANGUL SYLLABLE SSANGSIOS EU RIEULMIEUM - ,0xBEB7 ,0xC4FF //HANGUL SYLLABLE SSANGSIOS EU RIEULHIEUH - ,0xBEB8 ,0xC500 //HANGUL SYLLABLE SSANGSIOS EU MIEUM - ,0xBEB9 ,0xC501 //HANGUL SYLLABLE SSANGSIOS EU PIEUP - ,0xBEBA ,0xC50C //HANGUL SYLLABLE SSANGSIOS YI - ,0xBEBB ,0xC510 //HANGUL SYLLABLE SSANGSIOS YI NIEUN - ,0xBEBC ,0xC514 //HANGUL SYLLABLE SSANGSIOS YI RIEUL - ,0xBEBD ,0xC51C //HANGUL SYLLABLE SSANGSIOS YI MIEUM - ,0xBEBE ,0xC528 //HANGUL SYLLABLE SSANGSIOS I - ,0xBEBF ,0xC529 //HANGUL SYLLABLE SSANGSIOS I KIYEOK - ,0xBEC0 ,0xC52C //HANGUL SYLLABLE SSANGSIOS I NIEUN - ,0xBEC1 ,0xC530 //HANGUL SYLLABLE SSANGSIOS I RIEUL - ,0xBEC2 ,0xC538 //HANGUL SYLLABLE SSANGSIOS I MIEUM - ,0xBEC3 ,0xC539 //HANGUL SYLLABLE SSANGSIOS I PIEUP - ,0xBEC4 ,0xC53B //HANGUL SYLLABLE SSANGSIOS I SIOS - ,0xBEC5 ,0xC53D //HANGUL SYLLABLE SSANGSIOS I IEUNG - ,0xBEC6 ,0xC544 //HANGUL SYLLABLE IEUNG A - ,0xBEC7 ,0xC545 //HANGUL SYLLABLE IEUNG A KIYEOK - ,0xBEC8 ,0xC548 //HANGUL SYLLABLE IEUNG A NIEUN - ,0xBEC9 ,0xC549 //HANGUL SYLLABLE IEUNG A NIEUNCIEUC - ,0xBECA ,0xC54A //HANGUL SYLLABLE IEUNG A NIEUNHIEUH - ,0xBECB ,0xC54C //HANGUL SYLLABLE IEUNG A RIEUL - ,0xBECC ,0xC54D //HANGUL SYLLABLE IEUNG A RIEULKIYEOK - ,0xBECD ,0xC54E //HANGUL SYLLABLE IEUNG A RIEULMIEUM - ,0xBECE ,0xC553 //HANGUL SYLLABLE IEUNG A RIEULHIEUH - ,0xBECF ,0xC554 //HANGUL SYLLABLE IEUNG A MIEUM - ,0xBED0 ,0xC555 //HANGUL SYLLABLE IEUNG A PIEUP - ,0xBED1 ,0xC557 //HANGUL SYLLABLE IEUNG A SIOS - ,0xBED2 ,0xC558 //HANGUL SYLLABLE IEUNG A SSANGSIOS - ,0xBED3 ,0xC559 //HANGUL SYLLABLE IEUNG A IEUNG - ,0xBED4 ,0xC55D //HANGUL SYLLABLE IEUNG A THIEUTH - ,0xBED5 ,0xC55E //HANGUL SYLLABLE IEUNG A PHIEUPH - ,0xBED6 ,0xC560 //HANGUL SYLLABLE IEUNG AE - ,0xBED7 ,0xC561 //HANGUL SYLLABLE IEUNG AE KIYEOK - ,0xBED8 ,0xC564 //HANGUL SYLLABLE IEUNG AE NIEUN - ,0xBED9 ,0xC568 //HANGUL SYLLABLE IEUNG AE RIEUL - ,0xBEDA ,0xC570 //HANGUL SYLLABLE IEUNG AE MIEUM - ,0xBEDB ,0xC571 //HANGUL SYLLABLE IEUNG AE PIEUP - ,0xBEDC ,0xC573 //HANGUL SYLLABLE IEUNG AE SIOS - ,0xBEDD ,0xC574 //HANGUL SYLLABLE IEUNG AE SSANGSIOS - ,0xBEDE ,0xC575 //HANGUL SYLLABLE IEUNG AE IEUNG - ,0xBEDF ,0xC57C //HANGUL SYLLABLE IEUNG YA - ,0xBEE0 ,0xC57D //HANGUL SYLLABLE IEUNG YA KIYEOK - ,0xBEE1 ,0xC580 //HANGUL SYLLABLE IEUNG YA NIEUN - ,0xBEE2 ,0xC584 //HANGUL SYLLABLE IEUNG YA RIEUL - ,0xBEE3 ,0xC587 //HANGUL SYLLABLE IEUNG YA RIEULPIEUP - ,0xBEE4 ,0xC58C //HANGUL SYLLABLE IEUNG YA MIEUM - ,0xBEE5 ,0xC58D //HANGUL SYLLABLE IEUNG YA PIEUP - ,0xBEE6 ,0xC58F //HANGUL SYLLABLE IEUNG YA SIOS - ,0xBEE7 ,0xC591 //HANGUL SYLLABLE IEUNG YA IEUNG - ,0xBEE8 ,0xC595 //HANGUL SYLLABLE IEUNG YA THIEUTH - ,0xBEE9 ,0xC597 //HANGUL SYLLABLE IEUNG YA HIEUH - ,0xBEEA ,0xC598 //HANGUL SYLLABLE IEUNG YAE - ,0xBEEB ,0xC59C //HANGUL SYLLABLE IEUNG YAE NIEUN - ,0xBEEC ,0xC5A0 //HANGUL SYLLABLE IEUNG YAE RIEUL - ,0xBEED ,0xC5A9 //HANGUL SYLLABLE IEUNG YAE PIEUP - ,0xBEEE ,0xC5B4 //HANGUL SYLLABLE IEUNG EO - ,0xBEEF ,0xC5B5 //HANGUL SYLLABLE IEUNG EO KIYEOK - ,0xBEF0 ,0xC5B8 //HANGUL SYLLABLE IEUNG EO NIEUN - ,0xBEF1 ,0xC5B9 //HANGUL SYLLABLE IEUNG EO NIEUNCIEUC - ,0xBEF2 ,0xC5BB //HANGUL SYLLABLE IEUNG EO TIKEUT - ,0xBEF3 ,0xC5BC //HANGUL SYLLABLE IEUNG EO RIEUL - ,0xBEF4 ,0xC5BD //HANGUL SYLLABLE IEUNG EO RIEULKIYEOK - ,0xBEF5 ,0xC5BE //HANGUL SYLLABLE IEUNG EO RIEULMIEUM - ,0xBEF6 ,0xC5C4 //HANGUL SYLLABLE IEUNG EO MIEUM - ,0xBEF7 ,0xC5C5 //HANGUL SYLLABLE IEUNG EO PIEUP - ,0xBEF8 ,0xC5C6 //HANGUL SYLLABLE IEUNG EO PIEUPSIOS - ,0xBEF9 ,0xC5C7 //HANGUL SYLLABLE IEUNG EO SIOS - ,0xBEFA ,0xC5C8 //HANGUL SYLLABLE IEUNG EO SSANGSIOS - ,0xBEFB ,0xC5C9 //HANGUL SYLLABLE IEUNG EO IEUNG - ,0xBEFC ,0xC5CA //HANGUL SYLLABLE IEUNG EO CIEUC - ,0xBEFD ,0xC5CC //HANGUL SYLLABLE IEUNG EO KHIEUKH - ,0xBEFE ,0xC5CE //HANGUL SYLLABLE IEUNG EO PHIEUPH - ,0xBF41 ,0xD49E //HANGUL SYLLABLE PHIEUPH WEO RIEULMIEUM - ,0xBF42 ,0xD49F //HANGUL SYLLABLE PHIEUPH WEO RIEULPIEUP - ,0xBF43 ,0xD4A0 //HANGUL SYLLABLE PHIEUPH WEO RIEULSIOS - ,0xBF44 ,0xD4A1 //HANGUL SYLLABLE PHIEUPH WEO RIEULTHIEUTH - ,0xBF45 ,0xD4A2 //HANGUL SYLLABLE PHIEUPH WEO RIEULPHIEUPH - ,0xBF46 ,0xD4A3 //HANGUL SYLLABLE PHIEUPH WEO RIEULHIEUH - ,0xBF47 ,0xD4A4 //HANGUL SYLLABLE PHIEUPH WEO MIEUM - ,0xBF48 ,0xD4A5 //HANGUL SYLLABLE PHIEUPH WEO PIEUP - ,0xBF49 ,0xD4A6 //HANGUL SYLLABLE PHIEUPH WEO PIEUPSIOS - ,0xBF4A ,0xD4A7 //HANGUL SYLLABLE PHIEUPH WEO SIOS - ,0xBF4B ,0xD4A8 //HANGUL SYLLABLE PHIEUPH WEO SSANGSIOS - ,0xBF4C ,0xD4AA //HANGUL SYLLABLE PHIEUPH WEO CIEUC - ,0xBF4D ,0xD4AB //HANGUL SYLLABLE PHIEUPH WEO CHIEUCH - ,0xBF4E ,0xD4AC //HANGUL SYLLABLE PHIEUPH WEO KHIEUKH - ,0xBF4F ,0xD4AD //HANGUL SYLLABLE PHIEUPH WEO THIEUTH - ,0xBF50 ,0xD4AE //HANGUL SYLLABLE PHIEUPH WEO PHIEUPH - ,0xBF51 ,0xD4AF //HANGUL SYLLABLE PHIEUPH WEO HIEUH - ,0xBF52 ,0xD4B0 //HANGUL SYLLABLE PHIEUPH WE - ,0xBF53 ,0xD4B1 //HANGUL SYLLABLE PHIEUPH WE KIYEOK - ,0xBF54 ,0xD4B2 //HANGUL SYLLABLE PHIEUPH WE SSANGKIYEOK - ,0xBF55 ,0xD4B3 //HANGUL SYLLABLE PHIEUPH WE KIYEOKSIOS - ,0xBF56 ,0xD4B4 //HANGUL SYLLABLE PHIEUPH WE NIEUN - ,0xBF57 ,0xD4B5 //HANGUL SYLLABLE PHIEUPH WE NIEUNCIEUC - ,0xBF58 ,0xD4B6 //HANGUL SYLLABLE PHIEUPH WE NIEUNHIEUH - ,0xBF59 ,0xD4B7 //HANGUL SYLLABLE PHIEUPH WE TIKEUT - ,0xBF5A ,0xD4B8 //HANGUL SYLLABLE PHIEUPH WE RIEUL - ,0xBF61 ,0xD4B9 //HANGUL SYLLABLE PHIEUPH WE RIEULKIYEOK - ,0xBF62 ,0xD4BA //HANGUL SYLLABLE PHIEUPH WE RIEULMIEUM - ,0xBF63 ,0xD4BB //HANGUL SYLLABLE PHIEUPH WE RIEULPIEUP - ,0xBF64 ,0xD4BC //HANGUL SYLLABLE PHIEUPH WE RIEULSIOS - ,0xBF65 ,0xD4BD //HANGUL SYLLABLE PHIEUPH WE RIEULTHIEUTH - ,0xBF66 ,0xD4BE //HANGUL SYLLABLE PHIEUPH WE RIEULPHIEUPH - ,0xBF67 ,0xD4BF //HANGUL SYLLABLE PHIEUPH WE RIEULHIEUH - ,0xBF68 ,0xD4C0 //HANGUL SYLLABLE PHIEUPH WE MIEUM - ,0xBF69 ,0xD4C1 //HANGUL SYLLABLE PHIEUPH WE PIEUP - ,0xBF6A ,0xD4C2 //HANGUL SYLLABLE PHIEUPH WE PIEUPSIOS - ,0xBF6B ,0xD4C3 //HANGUL SYLLABLE PHIEUPH WE SIOS - ,0xBF6C ,0xD4C4 //HANGUL SYLLABLE PHIEUPH WE SSANGSIOS - ,0xBF6D ,0xD4C5 //HANGUL SYLLABLE PHIEUPH WE IEUNG - ,0xBF6E ,0xD4C6 //HANGUL SYLLABLE PHIEUPH WE CIEUC - ,0xBF6F ,0xD4C7 //HANGUL SYLLABLE PHIEUPH WE CHIEUCH - ,0xBF70 ,0xD4C8 //HANGUL SYLLABLE PHIEUPH WE KHIEUKH - ,0xBF71 ,0xD4C9 //HANGUL SYLLABLE PHIEUPH WE THIEUTH - ,0xBF72 ,0xD4CA //HANGUL SYLLABLE PHIEUPH WE PHIEUPH - ,0xBF73 ,0xD4CB //HANGUL SYLLABLE PHIEUPH WE HIEUH - ,0xBF74 ,0xD4CD //HANGUL SYLLABLE PHIEUPH WI KIYEOK - ,0xBF75 ,0xD4CE //HANGUL SYLLABLE PHIEUPH WI SSANGKIYEOK - ,0xBF76 ,0xD4CF //HANGUL SYLLABLE PHIEUPH WI KIYEOKSIOS - ,0xBF77 ,0xD4D1 //HANGUL SYLLABLE PHIEUPH WI NIEUNCIEUC - ,0xBF78 ,0xD4D2 //HANGUL SYLLABLE PHIEUPH WI NIEUNHIEUH - ,0xBF79 ,0xD4D3 //HANGUL SYLLABLE PHIEUPH WI TIKEUT - ,0xBF7A ,0xD4D5 //HANGUL SYLLABLE PHIEUPH WI RIEULKIYEOK - ,0xBF81 ,0xD4D6 //HANGUL SYLLABLE PHIEUPH WI RIEULMIEUM - ,0xBF82 ,0xD4D7 //HANGUL SYLLABLE PHIEUPH WI RIEULPIEUP - ,0xBF83 ,0xD4D8 //HANGUL SYLLABLE PHIEUPH WI RIEULSIOS - ,0xBF84 ,0xD4D9 //HANGUL SYLLABLE PHIEUPH WI RIEULTHIEUTH - ,0xBF85 ,0xD4DA //HANGUL SYLLABLE PHIEUPH WI RIEULPHIEUPH - ,0xBF86 ,0xD4DB //HANGUL SYLLABLE PHIEUPH WI RIEULHIEUH - ,0xBF87 ,0xD4DD //HANGUL SYLLABLE PHIEUPH WI PIEUP - ,0xBF88 ,0xD4DE //HANGUL SYLLABLE PHIEUPH WI PIEUPSIOS - ,0xBF89 ,0xD4E0 //HANGUL SYLLABLE PHIEUPH WI SSANGSIOS - ,0xBF8A ,0xD4E1 //HANGUL SYLLABLE PHIEUPH WI IEUNG - ,0xBF8B ,0xD4E2 //HANGUL SYLLABLE PHIEUPH WI CIEUC - ,0xBF8C ,0xD4E3 //HANGUL SYLLABLE PHIEUPH WI CHIEUCH - ,0xBF8D ,0xD4E4 //HANGUL SYLLABLE PHIEUPH WI KHIEUKH - ,0xBF8E ,0xD4E5 //HANGUL SYLLABLE PHIEUPH WI THIEUTH - ,0xBF8F ,0xD4E6 //HANGUL SYLLABLE PHIEUPH WI PHIEUPH - ,0xBF90 ,0xD4E7 //HANGUL SYLLABLE PHIEUPH WI HIEUH - ,0xBF91 ,0xD4E9 //HANGUL SYLLABLE PHIEUPH YU KIYEOK - ,0xBF92 ,0xD4EA //HANGUL SYLLABLE PHIEUPH YU SSANGKIYEOK - ,0xBF93 ,0xD4EB //HANGUL SYLLABLE PHIEUPH YU KIYEOKSIOS - ,0xBF94 ,0xD4ED //HANGUL SYLLABLE PHIEUPH YU NIEUNCIEUC - ,0xBF95 ,0xD4EE //HANGUL SYLLABLE PHIEUPH YU NIEUNHIEUH - ,0xBF96 ,0xD4EF //HANGUL SYLLABLE PHIEUPH YU TIKEUT - ,0xBF97 ,0xD4F1 //HANGUL SYLLABLE PHIEUPH YU RIEULKIYEOK - ,0xBF98 ,0xD4F2 //HANGUL SYLLABLE PHIEUPH YU RIEULMIEUM - ,0xBF99 ,0xD4F3 //HANGUL SYLLABLE PHIEUPH YU RIEULPIEUP - ,0xBF9A ,0xD4F4 //HANGUL SYLLABLE PHIEUPH YU RIEULSIOS - ,0xBF9B ,0xD4F5 //HANGUL SYLLABLE PHIEUPH YU RIEULTHIEUTH - ,0xBF9C ,0xD4F6 //HANGUL SYLLABLE PHIEUPH YU RIEULPHIEUPH - ,0xBF9D ,0xD4F7 //HANGUL SYLLABLE PHIEUPH YU RIEULHIEUH - ,0xBF9E ,0xD4F9 //HANGUL SYLLABLE PHIEUPH YU PIEUP - ,0xBF9F ,0xD4FA //HANGUL SYLLABLE PHIEUPH YU PIEUPSIOS - ,0xBFA0 ,0xD4FC //HANGUL SYLLABLE PHIEUPH YU SSANGSIOS - ,0xBFA1 ,0xC5D0 //HANGUL SYLLABLE IEUNG E - ,0xBFA2 ,0xC5D1 //HANGUL SYLLABLE IEUNG E KIYEOK - ,0xBFA3 ,0xC5D4 //HANGUL SYLLABLE IEUNG E NIEUN - ,0xBFA4 ,0xC5D8 //HANGUL SYLLABLE IEUNG E RIEUL - ,0xBFA5 ,0xC5E0 //HANGUL SYLLABLE IEUNG E MIEUM - ,0xBFA6 ,0xC5E1 //HANGUL SYLLABLE IEUNG E PIEUP - ,0xBFA7 ,0xC5E3 //HANGUL SYLLABLE IEUNG E SIOS - ,0xBFA8 ,0xC5E5 //HANGUL SYLLABLE IEUNG E IEUNG - ,0xBFA9 ,0xC5EC //HANGUL SYLLABLE IEUNG YEO - ,0xBFAA ,0xC5ED //HANGUL SYLLABLE IEUNG YEO KIYEOK - ,0xBFAB ,0xC5EE //HANGUL SYLLABLE IEUNG YEO SSANGKIYEOK - ,0xBFAC ,0xC5F0 //HANGUL SYLLABLE IEUNG YEO NIEUN - ,0xBFAD ,0xC5F4 //HANGUL SYLLABLE IEUNG YEO RIEUL - ,0xBFAE ,0xC5F6 //HANGUL SYLLABLE IEUNG YEO RIEULMIEUM - ,0xBFAF ,0xC5F7 //HANGUL SYLLABLE IEUNG YEO RIEULPIEUP - ,0xBFB0 ,0xC5FC //HANGUL SYLLABLE IEUNG YEO MIEUM - ,0xBFB1 ,0xC5FD //HANGUL SYLLABLE IEUNG YEO PIEUP - ,0xBFB2 ,0xC5FE //HANGUL SYLLABLE IEUNG YEO PIEUPSIOS - ,0xBFB3 ,0xC5FF //HANGUL SYLLABLE IEUNG YEO SIOS - ,0xBFB4 ,0xC600 //HANGUL SYLLABLE IEUNG YEO SSANGSIOS - ,0xBFB5 ,0xC601 //HANGUL SYLLABLE IEUNG YEO IEUNG - ,0xBFB6 ,0xC605 //HANGUL SYLLABLE IEUNG YEO THIEUTH - ,0xBFB7 ,0xC606 //HANGUL SYLLABLE IEUNG YEO PHIEUPH - ,0xBFB8 ,0xC607 //HANGUL SYLLABLE IEUNG YEO HIEUH - ,0xBFB9 ,0xC608 //HANGUL SYLLABLE IEUNG YE - ,0xBFBA ,0xC60C //HANGUL SYLLABLE IEUNG YE NIEUN - ,0xBFBB ,0xC610 //HANGUL SYLLABLE IEUNG YE RIEUL - ,0xBFBC ,0xC618 //HANGUL SYLLABLE IEUNG YE MIEUM - ,0xBFBD ,0xC619 //HANGUL SYLLABLE IEUNG YE PIEUP - ,0xBFBE ,0xC61B //HANGUL SYLLABLE IEUNG YE SIOS - ,0xBFBF ,0xC61C //HANGUL SYLLABLE IEUNG YE SSANGSIOS - ,0xBFC0 ,0xC624 //HANGUL SYLLABLE IEUNG O - ,0xBFC1 ,0xC625 //HANGUL SYLLABLE IEUNG O KIYEOK - ,0xBFC2 ,0xC628 //HANGUL SYLLABLE IEUNG O NIEUN - ,0xBFC3 ,0xC62C //HANGUL SYLLABLE IEUNG O RIEUL - ,0xBFC4 ,0xC62D //HANGUL SYLLABLE IEUNG O RIEULKIYEOK - ,0xBFC5 ,0xC62E //HANGUL SYLLABLE IEUNG O RIEULMIEUM - ,0xBFC6 ,0xC630 //HANGUL SYLLABLE IEUNG O RIEULSIOS - ,0xBFC7 ,0xC633 //HANGUL SYLLABLE IEUNG O RIEULHIEUH - ,0xBFC8 ,0xC634 //HANGUL SYLLABLE IEUNG O MIEUM - ,0xBFC9 ,0xC635 //HANGUL SYLLABLE IEUNG O PIEUP - ,0xBFCA ,0xC637 //HANGUL SYLLABLE IEUNG O SIOS - ,0xBFCB ,0xC639 //HANGUL SYLLABLE IEUNG O IEUNG - ,0xBFCC ,0xC63B //HANGUL SYLLABLE IEUNG O CHIEUCH - ,0xBFCD ,0xC640 //HANGUL SYLLABLE IEUNG WA - ,0xBFCE ,0xC641 //HANGUL SYLLABLE IEUNG WA KIYEOK - ,0xBFCF ,0xC644 //HANGUL SYLLABLE IEUNG WA NIEUN - ,0xBFD0 ,0xC648 //HANGUL SYLLABLE IEUNG WA RIEUL - ,0xBFD1 ,0xC650 //HANGUL SYLLABLE IEUNG WA MIEUM - ,0xBFD2 ,0xC651 //HANGUL SYLLABLE IEUNG WA PIEUP - ,0xBFD3 ,0xC653 //HANGUL SYLLABLE IEUNG WA SIOS - ,0xBFD4 ,0xC654 //HANGUL SYLLABLE IEUNG WA SSANGSIOS - ,0xBFD5 ,0xC655 //HANGUL SYLLABLE IEUNG WA IEUNG - ,0xBFD6 ,0xC65C //HANGUL SYLLABLE IEUNG WAE - ,0xBFD7 ,0xC65D //HANGUL SYLLABLE IEUNG WAE KIYEOK - ,0xBFD8 ,0xC660 //HANGUL SYLLABLE IEUNG WAE NIEUN - ,0xBFD9 ,0xC66C //HANGUL SYLLABLE IEUNG WAE MIEUM - ,0xBFDA ,0xC66F //HANGUL SYLLABLE IEUNG WAE SIOS - ,0xBFDB ,0xC671 //HANGUL SYLLABLE IEUNG WAE IEUNG - ,0xBFDC ,0xC678 //HANGUL SYLLABLE IEUNG OE - ,0xBFDD ,0xC679 //HANGUL SYLLABLE IEUNG OE KIYEOK - ,0xBFDE ,0xC67C //HANGUL SYLLABLE IEUNG OE NIEUN - ,0xBFDF ,0xC680 //HANGUL SYLLABLE IEUNG OE RIEUL - ,0xBFE0 ,0xC688 //HANGUL SYLLABLE IEUNG OE MIEUM - ,0xBFE1 ,0xC689 //HANGUL SYLLABLE IEUNG OE PIEUP - ,0xBFE2 ,0xC68B //HANGUL SYLLABLE IEUNG OE SIOS - ,0xBFE3 ,0xC68D //HANGUL SYLLABLE IEUNG OE IEUNG - ,0xBFE4 ,0xC694 //HANGUL SYLLABLE IEUNG YO - ,0xBFE5 ,0xC695 //HANGUL SYLLABLE IEUNG YO KIYEOK - ,0xBFE6 ,0xC698 //HANGUL SYLLABLE IEUNG YO NIEUN - ,0xBFE7 ,0xC69C //HANGUL SYLLABLE IEUNG YO RIEUL - ,0xBFE8 ,0xC6A4 //HANGUL SYLLABLE IEUNG YO MIEUM - ,0xBFE9 ,0xC6A5 //HANGUL SYLLABLE IEUNG YO PIEUP - ,0xBFEA ,0xC6A7 //HANGUL SYLLABLE IEUNG YO SIOS - ,0xBFEB ,0xC6A9 //HANGUL SYLLABLE IEUNG YO IEUNG - ,0xBFEC ,0xC6B0 //HANGUL SYLLABLE IEUNG U - ,0xBFED ,0xC6B1 //HANGUL SYLLABLE IEUNG U KIYEOK - ,0xBFEE ,0xC6B4 //HANGUL SYLLABLE IEUNG U NIEUN - ,0xBFEF ,0xC6B8 //HANGUL SYLLABLE IEUNG U RIEUL - ,0xBFF0 ,0xC6B9 //HANGUL SYLLABLE IEUNG U RIEULKIYEOK - ,0xBFF1 ,0xC6BA //HANGUL SYLLABLE IEUNG U RIEULMIEUM - ,0xBFF2 ,0xC6C0 //HANGUL SYLLABLE IEUNG U MIEUM - ,0xBFF3 ,0xC6C1 //HANGUL SYLLABLE IEUNG U PIEUP - ,0xBFF4 ,0xC6C3 //HANGUL SYLLABLE IEUNG U SIOS - ,0xBFF5 ,0xC6C5 //HANGUL SYLLABLE IEUNG U IEUNG - ,0xBFF6 ,0xC6CC //HANGUL SYLLABLE IEUNG WEO - ,0xBFF7 ,0xC6CD //HANGUL SYLLABLE IEUNG WEO KIYEOK - ,0xBFF8 ,0xC6D0 //HANGUL SYLLABLE IEUNG WEO NIEUN - ,0xBFF9 ,0xC6D4 //HANGUL SYLLABLE IEUNG WEO RIEUL - ,0xBFFA ,0xC6DC //HANGUL SYLLABLE IEUNG WEO MIEUM - ,0xBFFB ,0xC6DD //HANGUL SYLLABLE IEUNG WEO PIEUP - ,0xBFFC ,0xC6E0 //HANGUL SYLLABLE IEUNG WEO SSANGSIOS - ,0xBFFD ,0xC6E1 //HANGUL SYLLABLE IEUNG WEO IEUNG - ,0xBFFE ,0xC6E8 //HANGUL SYLLABLE IEUNG WE - ,0xC041 ,0xD4FE //HANGUL SYLLABLE PHIEUPH YU CIEUC - ,0xC042 ,0xD4FF //HANGUL SYLLABLE PHIEUPH YU CHIEUCH - ,0xC043 ,0xD500 //HANGUL SYLLABLE PHIEUPH YU KHIEUKH - ,0xC044 ,0xD501 //HANGUL SYLLABLE PHIEUPH YU THIEUTH - ,0xC045 ,0xD502 //HANGUL SYLLABLE PHIEUPH YU PHIEUPH - ,0xC046 ,0xD503 //HANGUL SYLLABLE PHIEUPH YU HIEUH - ,0xC047 ,0xD505 //HANGUL SYLLABLE PHIEUPH EU KIYEOK - ,0xC048 ,0xD506 //HANGUL SYLLABLE PHIEUPH EU SSANGKIYEOK - ,0xC049 ,0xD507 //HANGUL SYLLABLE PHIEUPH EU KIYEOKSIOS - ,0xC04A ,0xD509 //HANGUL SYLLABLE PHIEUPH EU NIEUNCIEUC - ,0xC04B ,0xD50A //HANGUL SYLLABLE PHIEUPH EU NIEUNHIEUH - ,0xC04C ,0xD50B //HANGUL SYLLABLE PHIEUPH EU TIKEUT - ,0xC04D ,0xD50D //HANGUL SYLLABLE PHIEUPH EU RIEULKIYEOK - ,0xC04E ,0xD50E //HANGUL SYLLABLE PHIEUPH EU RIEULMIEUM - ,0xC04F ,0xD50F //HANGUL SYLLABLE PHIEUPH EU RIEULPIEUP - ,0xC050 ,0xD510 //HANGUL SYLLABLE PHIEUPH EU RIEULSIOS - ,0xC051 ,0xD511 //HANGUL SYLLABLE PHIEUPH EU RIEULTHIEUTH - ,0xC052 ,0xD512 //HANGUL SYLLABLE PHIEUPH EU RIEULPHIEUPH - ,0xC053 ,0xD513 //HANGUL SYLLABLE PHIEUPH EU RIEULHIEUH - ,0xC054 ,0xD516 //HANGUL SYLLABLE PHIEUPH EU PIEUPSIOS - ,0xC055 ,0xD518 //HANGUL SYLLABLE PHIEUPH EU SSANGSIOS - ,0xC056 ,0xD519 //HANGUL SYLLABLE PHIEUPH EU IEUNG - ,0xC057 ,0xD51A //HANGUL SYLLABLE PHIEUPH EU CIEUC - ,0xC058 ,0xD51B //HANGUL SYLLABLE PHIEUPH EU CHIEUCH - ,0xC059 ,0xD51C //HANGUL SYLLABLE PHIEUPH EU KHIEUKH - ,0xC05A ,0xD51D //HANGUL SYLLABLE PHIEUPH EU THIEUTH - ,0xC061 ,0xD51E //HANGUL SYLLABLE PHIEUPH EU PHIEUPH - ,0xC062 ,0xD51F //HANGUL SYLLABLE PHIEUPH EU HIEUH - ,0xC063 ,0xD520 //HANGUL SYLLABLE PHIEUPH YI - ,0xC064 ,0xD521 //HANGUL SYLLABLE PHIEUPH YI KIYEOK - ,0xC065 ,0xD522 //HANGUL SYLLABLE PHIEUPH YI SSANGKIYEOK - ,0xC066 ,0xD523 //HANGUL SYLLABLE PHIEUPH YI KIYEOKSIOS - ,0xC067 ,0xD524 //HANGUL SYLLABLE PHIEUPH YI NIEUN - ,0xC068 ,0xD525 //HANGUL SYLLABLE PHIEUPH YI NIEUNCIEUC - ,0xC069 ,0xD526 //HANGUL SYLLABLE PHIEUPH YI NIEUNHIEUH - ,0xC06A ,0xD527 //HANGUL SYLLABLE PHIEUPH YI TIKEUT - ,0xC06B ,0xD528 //HANGUL SYLLABLE PHIEUPH YI RIEUL - ,0xC06C ,0xD529 //HANGUL SYLLABLE PHIEUPH YI RIEULKIYEOK - ,0xC06D ,0xD52A //HANGUL SYLLABLE PHIEUPH YI RIEULMIEUM - ,0xC06E ,0xD52B //HANGUL SYLLABLE PHIEUPH YI RIEULPIEUP - ,0xC06F ,0xD52C //HANGUL SYLLABLE PHIEUPH YI RIEULSIOS - ,0xC070 ,0xD52D //HANGUL SYLLABLE PHIEUPH YI RIEULTHIEUTH - ,0xC071 ,0xD52E //HANGUL SYLLABLE PHIEUPH YI RIEULPHIEUPH - ,0xC072 ,0xD52F //HANGUL SYLLABLE PHIEUPH YI RIEULHIEUH - ,0xC073 ,0xD530 //HANGUL SYLLABLE PHIEUPH YI MIEUM - ,0xC074 ,0xD531 //HANGUL SYLLABLE PHIEUPH YI PIEUP - ,0xC075 ,0xD532 //HANGUL SYLLABLE PHIEUPH YI PIEUPSIOS - ,0xC076 ,0xD533 //HANGUL SYLLABLE PHIEUPH YI SIOS - ,0xC077 ,0xD534 //HANGUL SYLLABLE PHIEUPH YI SSANGSIOS - ,0xC078 ,0xD535 //HANGUL SYLLABLE PHIEUPH YI IEUNG - ,0xC079 ,0xD536 //HANGUL SYLLABLE PHIEUPH YI CIEUC - ,0xC07A ,0xD537 //HANGUL SYLLABLE PHIEUPH YI CHIEUCH - ,0xC081 ,0xD538 //HANGUL SYLLABLE PHIEUPH YI KHIEUKH - ,0xC082 ,0xD539 //HANGUL SYLLABLE PHIEUPH YI THIEUTH - ,0xC083 ,0xD53A //HANGUL SYLLABLE PHIEUPH YI PHIEUPH - ,0xC084 ,0xD53B //HANGUL SYLLABLE PHIEUPH YI HIEUH - ,0xC085 ,0xD53E //HANGUL SYLLABLE PHIEUPH I SSANGKIYEOK - ,0xC086 ,0xD53F //HANGUL SYLLABLE PHIEUPH I KIYEOKSIOS - ,0xC087 ,0xD541 //HANGUL SYLLABLE PHIEUPH I NIEUNCIEUC - ,0xC088 ,0xD542 //HANGUL SYLLABLE PHIEUPH I NIEUNHIEUH - ,0xC089 ,0xD543 //HANGUL SYLLABLE PHIEUPH I TIKEUT - ,0xC08A ,0xD545 //HANGUL SYLLABLE PHIEUPH I RIEULKIYEOK - ,0xC08B ,0xD546 //HANGUL SYLLABLE PHIEUPH I RIEULMIEUM - ,0xC08C ,0xD547 //HANGUL SYLLABLE PHIEUPH I RIEULPIEUP - ,0xC08D ,0xD548 //HANGUL SYLLABLE PHIEUPH I RIEULSIOS - ,0xC08E ,0xD549 //HANGUL SYLLABLE PHIEUPH I RIEULTHIEUTH - ,0xC08F ,0xD54A //HANGUL SYLLABLE PHIEUPH I RIEULPHIEUPH - ,0xC090 ,0xD54B //HANGUL SYLLABLE PHIEUPH I RIEULHIEUH - ,0xC091 ,0xD54E //HANGUL SYLLABLE PHIEUPH I PIEUPSIOS - ,0xC092 ,0xD550 //HANGUL SYLLABLE PHIEUPH I SSANGSIOS - ,0xC093 ,0xD552 //HANGUL SYLLABLE PHIEUPH I CIEUC - ,0xC094 ,0xD553 //HANGUL SYLLABLE PHIEUPH I CHIEUCH - ,0xC095 ,0xD554 //HANGUL SYLLABLE PHIEUPH I KHIEUKH - ,0xC096 ,0xD555 //HANGUL SYLLABLE PHIEUPH I THIEUTH - ,0xC097 ,0xD556 //HANGUL SYLLABLE PHIEUPH I PHIEUPH - ,0xC098 ,0xD557 //HANGUL SYLLABLE PHIEUPH I HIEUH - ,0xC099 ,0xD55A //HANGUL SYLLABLE HIEUH A SSANGKIYEOK - ,0xC09A ,0xD55B //HANGUL SYLLABLE HIEUH A KIYEOKSIOS - ,0xC09B ,0xD55D //HANGUL SYLLABLE HIEUH A NIEUNCIEUC - ,0xC09C ,0xD55E //HANGUL SYLLABLE HIEUH A NIEUNHIEUH - ,0xC09D ,0xD55F //HANGUL SYLLABLE HIEUH A TIKEUT - ,0xC09E ,0xD561 //HANGUL SYLLABLE HIEUH A RIEULKIYEOK - ,0xC09F ,0xD562 //HANGUL SYLLABLE HIEUH A RIEULMIEUM - ,0xC0A0 ,0xD563 //HANGUL SYLLABLE HIEUH A RIEULPIEUP - ,0xC0A1 ,0xC6E9 //HANGUL SYLLABLE IEUNG WE KIYEOK - ,0xC0A2 ,0xC6EC //HANGUL SYLLABLE IEUNG WE NIEUN - ,0xC0A3 ,0xC6F0 //HANGUL SYLLABLE IEUNG WE RIEUL - ,0xC0A4 ,0xC6F8 //HANGUL SYLLABLE IEUNG WE MIEUM - ,0xC0A5 ,0xC6F9 //HANGUL SYLLABLE IEUNG WE PIEUP - ,0xC0A6 ,0xC6FD //HANGUL SYLLABLE IEUNG WE IEUNG - ,0xC0A7 ,0xC704 //HANGUL SYLLABLE IEUNG WI - ,0xC0A8 ,0xC705 //HANGUL SYLLABLE IEUNG WI KIYEOK - ,0xC0A9 ,0xC708 //HANGUL SYLLABLE IEUNG WI NIEUN - ,0xC0AA ,0xC70C //HANGUL SYLLABLE IEUNG WI RIEUL - ,0xC0AB ,0xC714 //HANGUL SYLLABLE IEUNG WI MIEUM - ,0xC0AC ,0xC715 //HANGUL SYLLABLE IEUNG WI PIEUP - ,0xC0AD ,0xC717 //HANGUL SYLLABLE IEUNG WI SIOS - ,0xC0AE ,0xC719 //HANGUL SYLLABLE IEUNG WI IEUNG - ,0xC0AF ,0xC720 //HANGUL SYLLABLE IEUNG YU - ,0xC0B0 ,0xC721 //HANGUL SYLLABLE IEUNG YU KIYEOK - ,0xC0B1 ,0xC724 //HANGUL SYLLABLE IEUNG YU NIEUN - ,0xC0B2 ,0xC728 //HANGUL SYLLABLE IEUNG YU RIEUL - ,0xC0B3 ,0xC730 //HANGUL SYLLABLE IEUNG YU MIEUM - ,0xC0B4 ,0xC731 //HANGUL SYLLABLE IEUNG YU PIEUP - ,0xC0B5 ,0xC733 //HANGUL SYLLABLE IEUNG YU SIOS - ,0xC0B6 ,0xC735 //HANGUL SYLLABLE IEUNG YU IEUNG - ,0xC0B7 ,0xC737 //HANGUL SYLLABLE IEUNG YU CHIEUCH - ,0xC0B8 ,0xC73C //HANGUL SYLLABLE IEUNG EU - ,0xC0B9 ,0xC73D //HANGUL SYLLABLE IEUNG EU KIYEOK - ,0xC0BA ,0xC740 //HANGUL SYLLABLE IEUNG EU NIEUN - ,0xC0BB ,0xC744 //HANGUL SYLLABLE IEUNG EU RIEUL - ,0xC0BC ,0xC74A //HANGUL SYLLABLE IEUNG EU RIEULPHIEUPH - ,0xC0BD ,0xC74C //HANGUL SYLLABLE IEUNG EU MIEUM - ,0xC0BE ,0xC74D //HANGUL SYLLABLE IEUNG EU PIEUP - ,0xC0BF ,0xC74F //HANGUL SYLLABLE IEUNG EU SIOS - ,0xC0C0 ,0xC751 //HANGUL SYLLABLE IEUNG EU IEUNG - ,0xC0C1 ,0xC752 //HANGUL SYLLABLE IEUNG EU CIEUC - ,0xC0C2 ,0xC753 //HANGUL SYLLABLE IEUNG EU CHIEUCH - ,0xC0C3 ,0xC754 //HANGUL SYLLABLE IEUNG EU KHIEUKH - ,0xC0C4 ,0xC755 //HANGUL SYLLABLE IEUNG EU THIEUTH - ,0xC0C5 ,0xC756 //HANGUL SYLLABLE IEUNG EU PHIEUPH - ,0xC0C6 ,0xC757 //HANGUL SYLLABLE IEUNG EU HIEUH - ,0xC0C7 ,0xC758 //HANGUL SYLLABLE IEUNG YI - ,0xC0C8 ,0xC75C //HANGUL SYLLABLE IEUNG YI NIEUN - ,0xC0C9 ,0xC760 //HANGUL SYLLABLE IEUNG YI RIEUL - ,0xC0CA ,0xC768 //HANGUL SYLLABLE IEUNG YI MIEUM - ,0xC0CB ,0xC76B //HANGUL SYLLABLE IEUNG YI SIOS - ,0xC0CC ,0xC774 //HANGUL SYLLABLE IEUNG I - ,0xC0CD ,0xC775 //HANGUL SYLLABLE IEUNG I KIYEOK - ,0xC0CE ,0xC778 //HANGUL SYLLABLE IEUNG I NIEUN - ,0xC0CF ,0xC77C //HANGUL SYLLABLE IEUNG I RIEUL - ,0xC0D0 ,0xC77D //HANGUL SYLLABLE IEUNG I RIEULKIYEOK - ,0xC0D1 ,0xC77E //HANGUL SYLLABLE IEUNG I RIEULMIEUM - ,0xC0D2 ,0xC783 //HANGUL SYLLABLE IEUNG I RIEULHIEUH - ,0xC0D3 ,0xC784 //HANGUL SYLLABLE IEUNG I MIEUM - ,0xC0D4 ,0xC785 //HANGUL SYLLABLE IEUNG I PIEUP - ,0xC0D5 ,0xC787 //HANGUL SYLLABLE IEUNG I SIOS - ,0xC0D6 ,0xC788 //HANGUL SYLLABLE IEUNG I SSANGSIOS - ,0xC0D7 ,0xC789 //HANGUL SYLLABLE IEUNG I IEUNG - ,0xC0D8 ,0xC78A //HANGUL SYLLABLE IEUNG I CIEUC - ,0xC0D9 ,0xC78E //HANGUL SYLLABLE IEUNG I PHIEUPH - ,0xC0DA ,0xC790 //HANGUL SYLLABLE CIEUC A - ,0xC0DB ,0xC791 //HANGUL SYLLABLE CIEUC A KIYEOK - ,0xC0DC ,0xC794 //HANGUL SYLLABLE CIEUC A NIEUN - ,0xC0DD ,0xC796 //HANGUL SYLLABLE CIEUC A NIEUNHIEUH - ,0xC0DE ,0xC797 //HANGUL SYLLABLE CIEUC A TIKEUT - ,0xC0DF ,0xC798 //HANGUL SYLLABLE CIEUC A RIEUL - ,0xC0E0 ,0xC79A //HANGUL SYLLABLE CIEUC A RIEULMIEUM - ,0xC0E1 ,0xC7A0 //HANGUL SYLLABLE CIEUC A MIEUM - ,0xC0E2 ,0xC7A1 //HANGUL SYLLABLE CIEUC A PIEUP - ,0xC0E3 ,0xC7A3 //HANGUL SYLLABLE CIEUC A SIOS - ,0xC0E4 ,0xC7A4 //HANGUL SYLLABLE CIEUC A SSANGSIOS - ,0xC0E5 ,0xC7A5 //HANGUL SYLLABLE CIEUC A IEUNG - ,0xC0E6 ,0xC7A6 //HANGUL SYLLABLE CIEUC A CIEUC - ,0xC0E7 ,0xC7AC //HANGUL SYLLABLE CIEUC AE - ,0xC0E8 ,0xC7AD //HANGUL SYLLABLE CIEUC AE KIYEOK - ,0xC0E9 ,0xC7B0 //HANGUL SYLLABLE CIEUC AE NIEUN - ,0xC0EA ,0xC7B4 //HANGUL SYLLABLE CIEUC AE RIEUL - ,0xC0EB ,0xC7BC //HANGUL SYLLABLE CIEUC AE MIEUM - ,0xC0EC ,0xC7BD //HANGUL SYLLABLE CIEUC AE PIEUP - ,0xC0ED ,0xC7BF //HANGUL SYLLABLE CIEUC AE SIOS - ,0xC0EE ,0xC7C0 //HANGUL SYLLABLE CIEUC AE SSANGSIOS - ,0xC0EF ,0xC7C1 //HANGUL SYLLABLE CIEUC AE IEUNG - ,0xC0F0 ,0xC7C8 //HANGUL SYLLABLE CIEUC YA - ,0xC0F1 ,0xC7C9 //HANGUL SYLLABLE CIEUC YA KIYEOK - ,0xC0F2 ,0xC7CC //HANGUL SYLLABLE CIEUC YA NIEUN - ,0xC0F3 ,0xC7CE //HANGUL SYLLABLE CIEUC YA NIEUNHIEUH - ,0xC0F4 ,0xC7D0 //HANGUL SYLLABLE CIEUC YA RIEUL - ,0xC0F5 ,0xC7D8 //HANGUL SYLLABLE CIEUC YA MIEUM - ,0xC0F6 ,0xC7DD //HANGUL SYLLABLE CIEUC YA IEUNG - ,0xC0F7 ,0xC7E4 //HANGUL SYLLABLE CIEUC YAE - ,0xC0F8 ,0xC7E8 //HANGUL SYLLABLE CIEUC YAE NIEUN - ,0xC0F9 ,0xC7EC //HANGUL SYLLABLE CIEUC YAE RIEUL - ,0xC0FA ,0xC800 //HANGUL SYLLABLE CIEUC EO - ,0xC0FB ,0xC801 //HANGUL SYLLABLE CIEUC EO KIYEOK - ,0xC0FC ,0xC804 //HANGUL SYLLABLE CIEUC EO NIEUN - ,0xC0FD ,0xC808 //HANGUL SYLLABLE CIEUC EO RIEUL - ,0xC0FE ,0xC80A //HANGUL SYLLABLE CIEUC EO RIEULMIEUM - ,0xC141 ,0xD564 //HANGUL SYLLABLE HIEUH A RIEULSIOS - ,0xC142 ,0xD566 //HANGUL SYLLABLE HIEUH A RIEULPHIEUPH - ,0xC143 ,0xD567 //HANGUL SYLLABLE HIEUH A RIEULHIEUH - ,0xC144 ,0xD56A //HANGUL SYLLABLE HIEUH A PIEUPSIOS - ,0xC145 ,0xD56C //HANGUL SYLLABLE HIEUH A SSANGSIOS - ,0xC146 ,0xD56E //HANGUL SYLLABLE HIEUH A CIEUC - ,0xC147 ,0xD56F //HANGUL SYLLABLE HIEUH A CHIEUCH - ,0xC148 ,0xD570 //HANGUL SYLLABLE HIEUH A KHIEUKH - ,0xC149 ,0xD571 //HANGUL SYLLABLE HIEUH A THIEUTH - ,0xC14A ,0xD572 //HANGUL SYLLABLE HIEUH A PHIEUPH - ,0xC14B ,0xD573 //HANGUL SYLLABLE HIEUH A HIEUH - ,0xC14C ,0xD576 //HANGUL SYLLABLE HIEUH AE SSANGKIYEOK - ,0xC14D ,0xD577 //HANGUL SYLLABLE HIEUH AE KIYEOKSIOS - ,0xC14E ,0xD579 //HANGUL SYLLABLE HIEUH AE NIEUNCIEUC - ,0xC14F ,0xD57A //HANGUL SYLLABLE HIEUH AE NIEUNHIEUH - ,0xC150 ,0xD57B //HANGUL SYLLABLE HIEUH AE TIKEUT - ,0xC151 ,0xD57D //HANGUL SYLLABLE HIEUH AE RIEULKIYEOK - ,0xC152 ,0xD57E //HANGUL SYLLABLE HIEUH AE RIEULMIEUM - ,0xC153 ,0xD57F //HANGUL SYLLABLE HIEUH AE RIEULPIEUP - ,0xC154 ,0xD580 //HANGUL SYLLABLE HIEUH AE RIEULSIOS - ,0xC155 ,0xD581 //HANGUL SYLLABLE HIEUH AE RIEULTHIEUTH - ,0xC156 ,0xD582 //HANGUL SYLLABLE HIEUH AE RIEULPHIEUPH - ,0xC157 ,0xD583 //HANGUL SYLLABLE HIEUH AE RIEULHIEUH - ,0xC158 ,0xD586 //HANGUL SYLLABLE HIEUH AE PIEUPSIOS - ,0xC159 ,0xD58A //HANGUL SYLLABLE HIEUH AE CIEUC - ,0xC15A ,0xD58B //HANGUL SYLLABLE HIEUH AE CHIEUCH - ,0xC161 ,0xD58C //HANGUL SYLLABLE HIEUH AE KHIEUKH - ,0xC162 ,0xD58D //HANGUL SYLLABLE HIEUH AE THIEUTH - ,0xC163 ,0xD58E //HANGUL SYLLABLE HIEUH AE PHIEUPH - ,0xC164 ,0xD58F //HANGUL SYLLABLE HIEUH AE HIEUH - ,0xC165 ,0xD591 //HANGUL SYLLABLE HIEUH YA KIYEOK - ,0xC166 ,0xD592 //HANGUL SYLLABLE HIEUH YA SSANGKIYEOK - ,0xC167 ,0xD593 //HANGUL SYLLABLE HIEUH YA KIYEOKSIOS - ,0xC168 ,0xD594 //HANGUL SYLLABLE HIEUH YA NIEUN - ,0xC169 ,0xD595 //HANGUL SYLLABLE HIEUH YA NIEUNCIEUC - ,0xC16A ,0xD596 //HANGUL SYLLABLE HIEUH YA NIEUNHIEUH - ,0xC16B ,0xD597 //HANGUL SYLLABLE HIEUH YA TIKEUT - ,0xC16C ,0xD598 //HANGUL SYLLABLE HIEUH YA RIEUL - ,0xC16D ,0xD599 //HANGUL SYLLABLE HIEUH YA RIEULKIYEOK - ,0xC16E ,0xD59A //HANGUL SYLLABLE HIEUH YA RIEULMIEUM - ,0xC16F ,0xD59B //HANGUL SYLLABLE HIEUH YA RIEULPIEUP - ,0xC170 ,0xD59C //HANGUL SYLLABLE HIEUH YA RIEULSIOS - ,0xC171 ,0xD59D //HANGUL SYLLABLE HIEUH YA RIEULTHIEUTH - ,0xC172 ,0xD59E //HANGUL SYLLABLE HIEUH YA RIEULPHIEUPH - ,0xC173 ,0xD59F //HANGUL SYLLABLE HIEUH YA RIEULHIEUH - ,0xC174 ,0xD5A0 //HANGUL SYLLABLE HIEUH YA MIEUM - ,0xC175 ,0xD5A1 //HANGUL SYLLABLE HIEUH YA PIEUP - ,0xC176 ,0xD5A2 //HANGUL SYLLABLE HIEUH YA PIEUPSIOS - ,0xC177 ,0xD5A3 //HANGUL SYLLABLE HIEUH YA SIOS - ,0xC178 ,0xD5A4 //HANGUL SYLLABLE HIEUH YA SSANGSIOS - ,0xC179 ,0xD5A6 //HANGUL SYLLABLE HIEUH YA CIEUC - ,0xC17A ,0xD5A7 //HANGUL SYLLABLE HIEUH YA CHIEUCH - ,0xC181 ,0xD5A8 //HANGUL SYLLABLE HIEUH YA KHIEUKH - ,0xC182 ,0xD5A9 //HANGUL SYLLABLE HIEUH YA THIEUTH - ,0xC183 ,0xD5AA //HANGUL SYLLABLE HIEUH YA PHIEUPH - ,0xC184 ,0xD5AB //HANGUL SYLLABLE HIEUH YA HIEUH - ,0xC185 ,0xD5AC //HANGUL SYLLABLE HIEUH YAE - ,0xC186 ,0xD5AD //HANGUL SYLLABLE HIEUH YAE KIYEOK - ,0xC187 ,0xD5AE //HANGUL SYLLABLE HIEUH YAE SSANGKIYEOK - ,0xC188 ,0xD5AF //HANGUL SYLLABLE HIEUH YAE KIYEOKSIOS - ,0xC189 ,0xD5B0 //HANGUL SYLLABLE HIEUH YAE NIEUN - ,0xC18A ,0xD5B1 //HANGUL SYLLABLE HIEUH YAE NIEUNCIEUC - ,0xC18B ,0xD5B2 //HANGUL SYLLABLE HIEUH YAE NIEUNHIEUH - ,0xC18C ,0xD5B3 //HANGUL SYLLABLE HIEUH YAE TIKEUT - ,0xC18D ,0xD5B4 //HANGUL SYLLABLE HIEUH YAE RIEUL - ,0xC18E ,0xD5B5 //HANGUL SYLLABLE HIEUH YAE RIEULKIYEOK - ,0xC18F ,0xD5B6 //HANGUL SYLLABLE HIEUH YAE RIEULMIEUM - ,0xC190 ,0xD5B7 //HANGUL SYLLABLE HIEUH YAE RIEULPIEUP - ,0xC191 ,0xD5B8 //HANGUL SYLLABLE HIEUH YAE RIEULSIOS - ,0xC192 ,0xD5B9 //HANGUL SYLLABLE HIEUH YAE RIEULTHIEUTH - ,0xC193 ,0xD5BA //HANGUL SYLLABLE HIEUH YAE RIEULPHIEUPH - ,0xC194 ,0xD5BB //HANGUL SYLLABLE HIEUH YAE RIEULHIEUH - ,0xC195 ,0xD5BC //HANGUL SYLLABLE HIEUH YAE MIEUM - ,0xC196 ,0xD5BD //HANGUL SYLLABLE HIEUH YAE PIEUP - ,0xC197 ,0xD5BE //HANGUL SYLLABLE HIEUH YAE PIEUPSIOS - ,0xC198 ,0xD5BF //HANGUL SYLLABLE HIEUH YAE SIOS - ,0xC199 ,0xD5C0 //HANGUL SYLLABLE HIEUH YAE SSANGSIOS - ,0xC19A ,0xD5C1 //HANGUL SYLLABLE HIEUH YAE IEUNG - ,0xC19B ,0xD5C2 //HANGUL SYLLABLE HIEUH YAE CIEUC - ,0xC19C ,0xD5C3 //HANGUL SYLLABLE HIEUH YAE CHIEUCH - ,0xC19D ,0xD5C4 //HANGUL SYLLABLE HIEUH YAE KHIEUKH - ,0xC19E ,0xD5C5 //HANGUL SYLLABLE HIEUH YAE THIEUTH - ,0xC19F ,0xD5C6 //HANGUL SYLLABLE HIEUH YAE PHIEUPH - ,0xC1A0 ,0xD5C7 //HANGUL SYLLABLE HIEUH YAE HIEUH - ,0xC1A1 ,0xC810 //HANGUL SYLLABLE CIEUC EO MIEUM - ,0xC1A2 ,0xC811 //HANGUL SYLLABLE CIEUC EO PIEUP - ,0xC1A3 ,0xC813 //HANGUL SYLLABLE CIEUC EO SIOS - ,0xC1A4 ,0xC815 //HANGUL SYLLABLE CIEUC EO IEUNG - ,0xC1A5 ,0xC816 //HANGUL SYLLABLE CIEUC EO CIEUC - ,0xC1A6 ,0xC81C //HANGUL SYLLABLE CIEUC E - ,0xC1A7 ,0xC81D //HANGUL SYLLABLE CIEUC E KIYEOK - ,0xC1A8 ,0xC820 //HANGUL SYLLABLE CIEUC E NIEUN - ,0xC1A9 ,0xC824 //HANGUL SYLLABLE CIEUC E RIEUL - ,0xC1AA ,0xC82C //HANGUL SYLLABLE CIEUC E MIEUM - ,0xC1AB ,0xC82D //HANGUL SYLLABLE CIEUC E PIEUP - ,0xC1AC ,0xC82F //HANGUL SYLLABLE CIEUC E SIOS - ,0xC1AD ,0xC831 //HANGUL SYLLABLE CIEUC E IEUNG - ,0xC1AE ,0xC838 //HANGUL SYLLABLE CIEUC YEO - ,0xC1AF ,0xC83C //HANGUL SYLLABLE CIEUC YEO NIEUN - ,0xC1B0 ,0xC840 //HANGUL SYLLABLE CIEUC YEO RIEUL - ,0xC1B1 ,0xC848 //HANGUL SYLLABLE CIEUC YEO MIEUM - ,0xC1B2 ,0xC849 //HANGUL SYLLABLE CIEUC YEO PIEUP - ,0xC1B3 ,0xC84C //HANGUL SYLLABLE CIEUC YEO SSANGSIOS - ,0xC1B4 ,0xC84D //HANGUL SYLLABLE CIEUC YEO IEUNG - ,0xC1B5 ,0xC854 //HANGUL SYLLABLE CIEUC YE - ,0xC1B6 ,0xC870 //HANGUL SYLLABLE CIEUC O - ,0xC1B7 ,0xC871 //HANGUL SYLLABLE CIEUC O KIYEOK - ,0xC1B8 ,0xC874 //HANGUL SYLLABLE CIEUC O NIEUN - ,0xC1B9 ,0xC878 //HANGUL SYLLABLE CIEUC O RIEUL - ,0xC1BA ,0xC87A //HANGUL SYLLABLE CIEUC O RIEULMIEUM - ,0xC1BB ,0xC880 //HANGUL SYLLABLE CIEUC O MIEUM - ,0xC1BC ,0xC881 //HANGUL SYLLABLE CIEUC O PIEUP - ,0xC1BD ,0xC883 //HANGUL SYLLABLE CIEUC O SIOS - ,0xC1BE ,0xC885 //HANGUL SYLLABLE CIEUC O IEUNG - ,0xC1BF ,0xC886 //HANGUL SYLLABLE CIEUC O CIEUC - ,0xC1C0 ,0xC887 //HANGUL SYLLABLE CIEUC O CHIEUCH - ,0xC1C1 ,0xC88B //HANGUL SYLLABLE CIEUC O HIEUH - ,0xC1C2 ,0xC88C //HANGUL SYLLABLE CIEUC WA - ,0xC1C3 ,0xC88D //HANGUL SYLLABLE CIEUC WA KIYEOK - ,0xC1C4 ,0xC894 //HANGUL SYLLABLE CIEUC WA RIEUL - ,0xC1C5 ,0xC89D //HANGUL SYLLABLE CIEUC WA PIEUP - ,0xC1C6 ,0xC89F //HANGUL SYLLABLE CIEUC WA SIOS - ,0xC1C7 ,0xC8A1 //HANGUL SYLLABLE CIEUC WA IEUNG - ,0xC1C8 ,0xC8A8 //HANGUL SYLLABLE CIEUC WAE - ,0xC1C9 ,0xC8BC //HANGUL SYLLABLE CIEUC WAE SSANGSIOS - ,0xC1CA ,0xC8BD //HANGUL SYLLABLE CIEUC WAE IEUNG - ,0xC1CB ,0xC8C4 //HANGUL SYLLABLE CIEUC OE - ,0xC1CC ,0xC8C8 //HANGUL SYLLABLE CIEUC OE NIEUN - ,0xC1CD ,0xC8CC //HANGUL SYLLABLE CIEUC OE RIEUL - ,0xC1CE ,0xC8D4 //HANGUL SYLLABLE CIEUC OE MIEUM - ,0xC1CF ,0xC8D5 //HANGUL SYLLABLE CIEUC OE PIEUP - ,0xC1D0 ,0xC8D7 //HANGUL SYLLABLE CIEUC OE SIOS - ,0xC1D1 ,0xC8D9 //HANGUL SYLLABLE CIEUC OE IEUNG - ,0xC1D2 ,0xC8E0 //HANGUL SYLLABLE CIEUC YO - ,0xC1D3 ,0xC8E1 //HANGUL SYLLABLE CIEUC YO KIYEOK - ,0xC1D4 ,0xC8E4 //HANGUL SYLLABLE CIEUC YO NIEUN - ,0xC1D5 ,0xC8F5 //HANGUL SYLLABLE CIEUC YO IEUNG - ,0xC1D6 ,0xC8FC //HANGUL SYLLABLE CIEUC U - ,0xC1D7 ,0xC8FD //HANGUL SYLLABLE CIEUC U KIYEOK - ,0xC1D8 ,0xC900 //HANGUL SYLLABLE CIEUC U NIEUN - ,0xC1D9 ,0xC904 //HANGUL SYLLABLE CIEUC U RIEUL - ,0xC1DA ,0xC905 //HANGUL SYLLABLE CIEUC U RIEULKIYEOK - ,0xC1DB ,0xC906 //HANGUL SYLLABLE CIEUC U RIEULMIEUM - ,0xC1DC ,0xC90C //HANGUL SYLLABLE CIEUC U MIEUM - ,0xC1DD ,0xC90D //HANGUL SYLLABLE CIEUC U PIEUP - ,0xC1DE ,0xC90F //HANGUL SYLLABLE CIEUC U SIOS - ,0xC1DF ,0xC911 //HANGUL SYLLABLE CIEUC U IEUNG - ,0xC1E0 ,0xC918 //HANGUL SYLLABLE CIEUC WEO - ,0xC1E1 ,0xC92C //HANGUL SYLLABLE CIEUC WEO SSANGSIOS - ,0xC1E2 ,0xC934 //HANGUL SYLLABLE CIEUC WE - ,0xC1E3 ,0xC950 //HANGUL SYLLABLE CIEUC WI - ,0xC1E4 ,0xC951 //HANGUL SYLLABLE CIEUC WI KIYEOK - ,0xC1E5 ,0xC954 //HANGUL SYLLABLE CIEUC WI NIEUN - ,0xC1E6 ,0xC958 //HANGUL SYLLABLE CIEUC WI RIEUL - ,0xC1E7 ,0xC960 //HANGUL SYLLABLE CIEUC WI MIEUM - ,0xC1E8 ,0xC961 //HANGUL SYLLABLE CIEUC WI PIEUP - ,0xC1E9 ,0xC963 //HANGUL SYLLABLE CIEUC WI SIOS - ,0xC1EA ,0xC96C //HANGUL SYLLABLE CIEUC YU - ,0xC1EB ,0xC970 //HANGUL SYLLABLE CIEUC YU NIEUN - ,0xC1EC ,0xC974 //HANGUL SYLLABLE CIEUC YU RIEUL - ,0xC1ED ,0xC97C //HANGUL SYLLABLE CIEUC YU MIEUM - ,0xC1EE ,0xC988 //HANGUL SYLLABLE CIEUC EU - ,0xC1EF ,0xC989 //HANGUL SYLLABLE CIEUC EU KIYEOK - ,0xC1F0 ,0xC98C //HANGUL SYLLABLE CIEUC EU NIEUN - ,0xC1F1 ,0xC990 //HANGUL SYLLABLE CIEUC EU RIEUL - ,0xC1F2 ,0xC998 //HANGUL SYLLABLE CIEUC EU MIEUM - ,0xC1F3 ,0xC999 //HANGUL SYLLABLE CIEUC EU PIEUP - ,0xC1F4 ,0xC99B //HANGUL SYLLABLE CIEUC EU SIOS - ,0xC1F5 ,0xC99D //HANGUL SYLLABLE CIEUC EU IEUNG - ,0xC1F6 ,0xC9C0 //HANGUL SYLLABLE CIEUC I - ,0xC1F7 ,0xC9C1 //HANGUL SYLLABLE CIEUC I KIYEOK - ,0xC1F8 ,0xC9C4 //HANGUL SYLLABLE CIEUC I NIEUN - ,0xC1F9 ,0xC9C7 //HANGUL SYLLABLE CIEUC I TIKEUT - ,0xC1FA ,0xC9C8 //HANGUL SYLLABLE CIEUC I RIEUL - ,0xC1FB ,0xC9CA //HANGUL SYLLABLE CIEUC I RIEULMIEUM - ,0xC1FC ,0xC9D0 //HANGUL SYLLABLE CIEUC I MIEUM - ,0xC1FD ,0xC9D1 //HANGUL SYLLABLE CIEUC I PIEUP - ,0xC1FE ,0xC9D3 //HANGUL SYLLABLE CIEUC I SIOS - ,0xC241 ,0xD5CA //HANGUL SYLLABLE HIEUH EO SSANGKIYEOK - ,0xC242 ,0xD5CB //HANGUL SYLLABLE HIEUH EO KIYEOKSIOS - ,0xC243 ,0xD5CD //HANGUL SYLLABLE HIEUH EO NIEUNCIEUC - ,0xC244 ,0xD5CE //HANGUL SYLLABLE HIEUH EO NIEUNHIEUH - ,0xC245 ,0xD5CF //HANGUL SYLLABLE HIEUH EO TIKEUT - ,0xC246 ,0xD5D1 //HANGUL SYLLABLE HIEUH EO RIEULKIYEOK - ,0xC247 ,0xD5D3 //HANGUL SYLLABLE HIEUH EO RIEULPIEUP - ,0xC248 ,0xD5D4 //HANGUL SYLLABLE HIEUH EO RIEULSIOS - ,0xC249 ,0xD5D5 //HANGUL SYLLABLE HIEUH EO RIEULTHIEUTH - ,0xC24A ,0xD5D6 //HANGUL SYLLABLE HIEUH EO RIEULPHIEUPH - ,0xC24B ,0xD5D7 //HANGUL SYLLABLE HIEUH EO RIEULHIEUH - ,0xC24C ,0xD5DA //HANGUL SYLLABLE HIEUH EO PIEUPSIOS - ,0xC24D ,0xD5DC //HANGUL SYLLABLE HIEUH EO SSANGSIOS - ,0xC24E ,0xD5DE //HANGUL SYLLABLE HIEUH EO CIEUC - ,0xC24F ,0xD5DF //HANGUL SYLLABLE HIEUH EO CHIEUCH - ,0xC250 ,0xD5E0 //HANGUL SYLLABLE HIEUH EO KHIEUKH - ,0xC251 ,0xD5E1 //HANGUL SYLLABLE HIEUH EO THIEUTH - ,0xC252 ,0xD5E2 //HANGUL SYLLABLE HIEUH EO PHIEUPH - ,0xC253 ,0xD5E3 //HANGUL SYLLABLE HIEUH EO HIEUH - ,0xC254 ,0xD5E6 //HANGUL SYLLABLE HIEUH E SSANGKIYEOK - ,0xC255 ,0xD5E7 //HANGUL SYLLABLE HIEUH E KIYEOKSIOS - ,0xC256 ,0xD5E9 //HANGUL SYLLABLE HIEUH E NIEUNCIEUC - ,0xC257 ,0xD5EA //HANGUL SYLLABLE HIEUH E NIEUNHIEUH - ,0xC258 ,0xD5EB //HANGUL SYLLABLE HIEUH E TIKEUT - ,0xC259 ,0xD5ED //HANGUL SYLLABLE HIEUH E RIEULKIYEOK - ,0xC25A ,0xD5EE //HANGUL SYLLABLE HIEUH E RIEULMIEUM - ,0xC261 ,0xD5EF //HANGUL SYLLABLE HIEUH E RIEULPIEUP - ,0xC262 ,0xD5F0 //HANGUL SYLLABLE HIEUH E RIEULSIOS - ,0xC263 ,0xD5F1 //HANGUL SYLLABLE HIEUH E RIEULTHIEUTH - ,0xC264 ,0xD5F2 //HANGUL SYLLABLE HIEUH E RIEULPHIEUPH - ,0xC265 ,0xD5F3 //HANGUL SYLLABLE HIEUH E RIEULHIEUH - ,0xC266 ,0xD5F6 //HANGUL SYLLABLE HIEUH E PIEUPSIOS - ,0xC267 ,0xD5F8 //HANGUL SYLLABLE HIEUH E SSANGSIOS - ,0xC268 ,0xD5FA //HANGUL SYLLABLE HIEUH E CIEUC - ,0xC269 ,0xD5FB //HANGUL SYLLABLE HIEUH E CHIEUCH - ,0xC26A ,0xD5FC //HANGUL SYLLABLE HIEUH E KHIEUKH - ,0xC26B ,0xD5FD //HANGUL SYLLABLE HIEUH E THIEUTH - ,0xC26C ,0xD5FE //HANGUL SYLLABLE HIEUH E PHIEUPH - ,0xC26D ,0xD5FF //HANGUL SYLLABLE HIEUH E HIEUH - ,0xC26E ,0xD602 //HANGUL SYLLABLE HIEUH YEO SSANGKIYEOK - ,0xC26F ,0xD603 //HANGUL SYLLABLE HIEUH YEO KIYEOKSIOS - ,0xC270 ,0xD605 //HANGUL SYLLABLE HIEUH YEO NIEUNCIEUC - ,0xC271 ,0xD606 //HANGUL SYLLABLE HIEUH YEO NIEUNHIEUH - ,0xC272 ,0xD607 //HANGUL SYLLABLE HIEUH YEO TIKEUT - ,0xC273 ,0xD609 //HANGUL SYLLABLE HIEUH YEO RIEULKIYEOK - ,0xC274 ,0xD60A //HANGUL SYLLABLE HIEUH YEO RIEULMIEUM - ,0xC275 ,0xD60B //HANGUL SYLLABLE HIEUH YEO RIEULPIEUP - ,0xC276 ,0xD60C //HANGUL SYLLABLE HIEUH YEO RIEULSIOS - ,0xC277 ,0xD60D //HANGUL SYLLABLE HIEUH YEO RIEULTHIEUTH - ,0xC278 ,0xD60E //HANGUL SYLLABLE HIEUH YEO RIEULPHIEUPH - ,0xC279 ,0xD60F //HANGUL SYLLABLE HIEUH YEO RIEULHIEUH - ,0xC27A ,0xD612 //HANGUL SYLLABLE HIEUH YEO PIEUPSIOS - ,0xC281 ,0xD616 //HANGUL SYLLABLE HIEUH YEO CIEUC - ,0xC282 ,0xD617 //HANGUL SYLLABLE HIEUH YEO CHIEUCH - ,0xC283 ,0xD618 //HANGUL SYLLABLE HIEUH YEO KHIEUKH - ,0xC284 ,0xD619 //HANGUL SYLLABLE HIEUH YEO THIEUTH - ,0xC285 ,0xD61A //HANGUL SYLLABLE HIEUH YEO PHIEUPH - ,0xC286 ,0xD61B //HANGUL SYLLABLE HIEUH YEO HIEUH - ,0xC287 ,0xD61D //HANGUL SYLLABLE HIEUH YE KIYEOK - ,0xC288 ,0xD61E //HANGUL SYLLABLE HIEUH YE SSANGKIYEOK - ,0xC289 ,0xD61F //HANGUL SYLLABLE HIEUH YE KIYEOKSIOS - ,0xC28A ,0xD621 //HANGUL SYLLABLE HIEUH YE NIEUNCIEUC - ,0xC28B ,0xD622 //HANGUL SYLLABLE HIEUH YE NIEUNHIEUH - ,0xC28C ,0xD623 //HANGUL SYLLABLE HIEUH YE TIKEUT - ,0xC28D ,0xD625 //HANGUL SYLLABLE HIEUH YE RIEULKIYEOK - ,0xC28E ,0xD626 //HANGUL SYLLABLE HIEUH YE RIEULMIEUM - ,0xC28F ,0xD627 //HANGUL SYLLABLE HIEUH YE RIEULPIEUP - ,0xC290 ,0xD628 //HANGUL SYLLABLE HIEUH YE RIEULSIOS - ,0xC291 ,0xD629 //HANGUL SYLLABLE HIEUH YE RIEULTHIEUTH - ,0xC292 ,0xD62A //HANGUL SYLLABLE HIEUH YE RIEULPHIEUPH - ,0xC293 ,0xD62B //HANGUL SYLLABLE HIEUH YE RIEULHIEUH - ,0xC294 ,0xD62C //HANGUL SYLLABLE HIEUH YE MIEUM - ,0xC295 ,0xD62E //HANGUL SYLLABLE HIEUH YE PIEUPSIOS - ,0xC296 ,0xD62F //HANGUL SYLLABLE HIEUH YE SIOS - ,0xC297 ,0xD630 //HANGUL SYLLABLE HIEUH YE SSANGSIOS - ,0xC298 ,0xD631 //HANGUL SYLLABLE HIEUH YE IEUNG - ,0xC299 ,0xD632 //HANGUL SYLLABLE HIEUH YE CIEUC - ,0xC29A ,0xD633 //HANGUL SYLLABLE HIEUH YE CHIEUCH - ,0xC29B ,0xD634 //HANGUL SYLLABLE HIEUH YE KHIEUKH - ,0xC29C ,0xD635 //HANGUL SYLLABLE HIEUH YE THIEUTH - ,0xC29D ,0xD636 //HANGUL SYLLABLE HIEUH YE PHIEUPH - ,0xC29E ,0xD637 //HANGUL SYLLABLE HIEUH YE HIEUH - ,0xC29F ,0xD63A //HANGUL SYLLABLE HIEUH O SSANGKIYEOK - ,0xC2A0 ,0xD63B //HANGUL SYLLABLE HIEUH O KIYEOKSIOS - ,0xC2A1 ,0xC9D5 //HANGUL SYLLABLE CIEUC I IEUNG - ,0xC2A2 ,0xC9D6 //HANGUL SYLLABLE CIEUC I CIEUC - ,0xC2A3 ,0xC9D9 //HANGUL SYLLABLE CIEUC I THIEUTH - ,0xC2A4 ,0xC9DA //HANGUL SYLLABLE CIEUC I PHIEUPH - ,0xC2A5 ,0xC9DC //HANGUL SYLLABLE SSANGCIEUC A - ,0xC2A6 ,0xC9DD //HANGUL SYLLABLE SSANGCIEUC A KIYEOK - ,0xC2A7 ,0xC9E0 //HANGUL SYLLABLE SSANGCIEUC A NIEUN - ,0xC2A8 ,0xC9E2 //HANGUL SYLLABLE SSANGCIEUC A NIEUNHIEUH - ,0xC2A9 ,0xC9E4 //HANGUL SYLLABLE SSANGCIEUC A RIEUL - ,0xC2AA ,0xC9E7 //HANGUL SYLLABLE SSANGCIEUC A RIEULPIEUP - ,0xC2AB ,0xC9EC //HANGUL SYLLABLE SSANGCIEUC A MIEUM - ,0xC2AC ,0xC9ED //HANGUL SYLLABLE SSANGCIEUC A PIEUP - ,0xC2AD ,0xC9EF //HANGUL SYLLABLE SSANGCIEUC A SIOS - ,0xC2AE ,0xC9F0 //HANGUL SYLLABLE SSANGCIEUC A SSANGSIOS - ,0xC2AF ,0xC9F1 //HANGUL SYLLABLE SSANGCIEUC A IEUNG - ,0xC2B0 ,0xC9F8 //HANGUL SYLLABLE SSANGCIEUC AE - ,0xC2B1 ,0xC9F9 //HANGUL SYLLABLE SSANGCIEUC AE KIYEOK - ,0xC2B2 ,0xC9FC //HANGUL SYLLABLE SSANGCIEUC AE NIEUN - ,0xC2B3 ,0xCA00 //HANGUL SYLLABLE SSANGCIEUC AE RIEUL - ,0xC2B4 ,0xCA08 //HANGUL SYLLABLE SSANGCIEUC AE MIEUM - ,0xC2B5 ,0xCA09 //HANGUL SYLLABLE SSANGCIEUC AE PIEUP - ,0xC2B6 ,0xCA0B //HANGUL SYLLABLE SSANGCIEUC AE SIOS - ,0xC2B7 ,0xCA0C //HANGUL SYLLABLE SSANGCIEUC AE SSANGSIOS - ,0xC2B8 ,0xCA0D //HANGUL SYLLABLE SSANGCIEUC AE IEUNG - ,0xC2B9 ,0xCA14 //HANGUL SYLLABLE SSANGCIEUC YA - ,0xC2BA ,0xCA18 //HANGUL SYLLABLE SSANGCIEUC YA NIEUN - ,0xC2BB ,0xCA29 //HANGUL SYLLABLE SSANGCIEUC YA IEUNG - ,0xC2BC ,0xCA4C //HANGUL SYLLABLE SSANGCIEUC EO - ,0xC2BD ,0xCA4D //HANGUL SYLLABLE SSANGCIEUC EO KIYEOK - ,0xC2BE ,0xCA50 //HANGUL SYLLABLE SSANGCIEUC EO NIEUN - ,0xC2BF ,0xCA54 //HANGUL SYLLABLE SSANGCIEUC EO RIEUL - ,0xC2C0 ,0xCA5C //HANGUL SYLLABLE SSANGCIEUC EO MIEUM - ,0xC2C1 ,0xCA5D //HANGUL SYLLABLE SSANGCIEUC EO PIEUP - ,0xC2C2 ,0xCA5F //HANGUL SYLLABLE SSANGCIEUC EO SIOS - ,0xC2C3 ,0xCA60 //HANGUL SYLLABLE SSANGCIEUC EO SSANGSIOS - ,0xC2C4 ,0xCA61 //HANGUL SYLLABLE SSANGCIEUC EO IEUNG - ,0xC2C5 ,0xCA68 //HANGUL SYLLABLE SSANGCIEUC E - ,0xC2C6 ,0xCA7D //HANGUL SYLLABLE SSANGCIEUC E IEUNG - ,0xC2C7 ,0xCA84 //HANGUL SYLLABLE SSANGCIEUC YEO - ,0xC2C8 ,0xCA98 //HANGUL SYLLABLE SSANGCIEUC YEO SSANGSIOS - ,0xC2C9 ,0xCABC //HANGUL SYLLABLE SSANGCIEUC O - ,0xC2CA ,0xCABD //HANGUL SYLLABLE SSANGCIEUC O KIYEOK - ,0xC2CB ,0xCAC0 //HANGUL SYLLABLE SSANGCIEUC O NIEUN - ,0xC2CC ,0xCAC4 //HANGUL SYLLABLE SSANGCIEUC O RIEUL - ,0xC2CD ,0xCACC //HANGUL SYLLABLE SSANGCIEUC O MIEUM - ,0xC2CE ,0xCACD //HANGUL SYLLABLE SSANGCIEUC O PIEUP - ,0xC2CF ,0xCACF //HANGUL SYLLABLE SSANGCIEUC O SIOS - ,0xC2D0 ,0xCAD1 //HANGUL SYLLABLE SSANGCIEUC O IEUNG - ,0xC2D1 ,0xCAD3 //HANGUL SYLLABLE SSANGCIEUC O CHIEUCH - ,0xC2D2 ,0xCAD8 //HANGUL SYLLABLE SSANGCIEUC WA - ,0xC2D3 ,0xCAD9 //HANGUL SYLLABLE SSANGCIEUC WA KIYEOK - ,0xC2D4 ,0xCAE0 //HANGUL SYLLABLE SSANGCIEUC WA RIEUL - ,0xC2D5 ,0xCAEC //HANGUL SYLLABLE SSANGCIEUC WA SSANGSIOS - ,0xC2D6 ,0xCAF4 //HANGUL SYLLABLE SSANGCIEUC WAE - ,0xC2D7 ,0xCB08 //HANGUL SYLLABLE SSANGCIEUC WAE SSANGSIOS - ,0xC2D8 ,0xCB10 //HANGUL SYLLABLE SSANGCIEUC OE - ,0xC2D9 ,0xCB14 //HANGUL SYLLABLE SSANGCIEUC OE NIEUN - ,0xC2DA ,0xCB18 //HANGUL SYLLABLE SSANGCIEUC OE RIEUL - ,0xC2DB ,0xCB20 //HANGUL SYLLABLE SSANGCIEUC OE MIEUM - ,0xC2DC ,0xCB21 //HANGUL SYLLABLE SSANGCIEUC OE PIEUP - ,0xC2DD ,0xCB41 //HANGUL SYLLABLE SSANGCIEUC YO IEUNG - ,0xC2DE ,0xCB48 //HANGUL SYLLABLE SSANGCIEUC U - ,0xC2DF ,0xCB49 //HANGUL SYLLABLE SSANGCIEUC U KIYEOK - ,0xC2E0 ,0xCB4C //HANGUL SYLLABLE SSANGCIEUC U NIEUN - ,0xC2E1 ,0xCB50 //HANGUL SYLLABLE SSANGCIEUC U RIEUL - ,0xC2E2 ,0xCB58 //HANGUL SYLLABLE SSANGCIEUC U MIEUM - ,0xC2E3 ,0xCB59 //HANGUL SYLLABLE SSANGCIEUC U PIEUP - ,0xC2E4 ,0xCB5D //HANGUL SYLLABLE SSANGCIEUC U IEUNG - ,0xC2E5 ,0xCB64 //HANGUL SYLLABLE SSANGCIEUC WEO - ,0xC2E6 ,0xCB78 //HANGUL SYLLABLE SSANGCIEUC WEO SSANGSIOS - ,0xC2E7 ,0xCB79 //HANGUL SYLLABLE SSANGCIEUC WEO IEUNG - ,0xC2E8 ,0xCB9C //HANGUL SYLLABLE SSANGCIEUC WI - ,0xC2E9 ,0xCBB8 //HANGUL SYLLABLE SSANGCIEUC YU - ,0xC2EA ,0xCBD4 //HANGUL SYLLABLE SSANGCIEUC EU - ,0xC2EB ,0xCBE4 //HANGUL SYLLABLE SSANGCIEUC EU MIEUM - ,0xC2EC ,0xCBE7 //HANGUL SYLLABLE SSANGCIEUC EU SIOS - ,0xC2ED ,0xCBE9 //HANGUL SYLLABLE SSANGCIEUC EU IEUNG - ,0xC2EE ,0xCC0C //HANGUL SYLLABLE SSANGCIEUC I - ,0xC2EF ,0xCC0D //HANGUL SYLLABLE SSANGCIEUC I KIYEOK - ,0xC2F0 ,0xCC10 //HANGUL SYLLABLE SSANGCIEUC I NIEUN - ,0xC2F1 ,0xCC14 //HANGUL SYLLABLE SSANGCIEUC I RIEUL - ,0xC2F2 ,0xCC1C //HANGUL SYLLABLE SSANGCIEUC I MIEUM - ,0xC2F3 ,0xCC1D //HANGUL SYLLABLE SSANGCIEUC I PIEUP - ,0xC2F4 ,0xCC21 //HANGUL SYLLABLE SSANGCIEUC I IEUNG - ,0xC2F5 ,0xCC22 //HANGUL SYLLABLE SSANGCIEUC I CIEUC - ,0xC2F6 ,0xCC27 //HANGUL SYLLABLE SSANGCIEUC I HIEUH - ,0xC2F7 ,0xCC28 //HANGUL SYLLABLE CHIEUCH A - ,0xC2F8 ,0xCC29 //HANGUL SYLLABLE CHIEUCH A KIYEOK - ,0xC2F9 ,0xCC2C //HANGUL SYLLABLE CHIEUCH A NIEUN - ,0xC2FA ,0xCC2E //HANGUL SYLLABLE CHIEUCH A NIEUNHIEUH - ,0xC2FB ,0xCC30 //HANGUL SYLLABLE CHIEUCH A RIEUL - ,0xC2FC ,0xCC38 //HANGUL SYLLABLE CHIEUCH A MIEUM - ,0xC2FD ,0xCC39 //HANGUL SYLLABLE CHIEUCH A PIEUP - ,0xC2FE ,0xCC3B //HANGUL SYLLABLE CHIEUCH A SIOS - ,0xC341 ,0xD63D //HANGUL SYLLABLE HIEUH O NIEUNCIEUC - ,0xC342 ,0xD63E //HANGUL SYLLABLE HIEUH O NIEUNHIEUH - ,0xC343 ,0xD63F //HANGUL SYLLABLE HIEUH O TIKEUT - ,0xC344 ,0xD641 //HANGUL SYLLABLE HIEUH O RIEULKIYEOK - ,0xC345 ,0xD642 //HANGUL SYLLABLE HIEUH O RIEULMIEUM - ,0xC346 ,0xD643 //HANGUL SYLLABLE HIEUH O RIEULPIEUP - ,0xC347 ,0xD644 //HANGUL SYLLABLE HIEUH O RIEULSIOS - ,0xC348 ,0xD646 //HANGUL SYLLABLE HIEUH O RIEULPHIEUPH - ,0xC349 ,0xD647 //HANGUL SYLLABLE HIEUH O RIEULHIEUH - ,0xC34A ,0xD64A //HANGUL SYLLABLE HIEUH O PIEUPSIOS - ,0xC34B ,0xD64C //HANGUL SYLLABLE HIEUH O SSANGSIOS - ,0xC34C ,0xD64E //HANGUL SYLLABLE HIEUH O CIEUC - ,0xC34D ,0xD64F //HANGUL SYLLABLE HIEUH O CHIEUCH - ,0xC34E ,0xD650 //HANGUL SYLLABLE HIEUH O KHIEUKH - ,0xC34F ,0xD652 //HANGUL SYLLABLE HIEUH O PHIEUPH - ,0xC350 ,0xD653 //HANGUL SYLLABLE HIEUH O HIEUH - ,0xC351 ,0xD656 //HANGUL SYLLABLE HIEUH WA SSANGKIYEOK - ,0xC352 ,0xD657 //HANGUL SYLLABLE HIEUH WA KIYEOKSIOS - ,0xC353 ,0xD659 //HANGUL SYLLABLE HIEUH WA NIEUNCIEUC - ,0xC354 ,0xD65A //HANGUL SYLLABLE HIEUH WA NIEUNHIEUH - ,0xC355 ,0xD65B //HANGUL SYLLABLE HIEUH WA TIKEUT - ,0xC356 ,0xD65D //HANGUL SYLLABLE HIEUH WA RIEULKIYEOK - ,0xC357 ,0xD65E //HANGUL SYLLABLE HIEUH WA RIEULMIEUM - ,0xC358 ,0xD65F //HANGUL SYLLABLE HIEUH WA RIEULPIEUP - ,0xC359 ,0xD660 //HANGUL SYLLABLE HIEUH WA RIEULSIOS - ,0xC35A ,0xD661 //HANGUL SYLLABLE HIEUH WA RIEULTHIEUTH - ,0xC361 ,0xD662 //HANGUL SYLLABLE HIEUH WA RIEULPHIEUPH - ,0xC362 ,0xD663 //HANGUL SYLLABLE HIEUH WA RIEULHIEUH - ,0xC363 ,0xD664 //HANGUL SYLLABLE HIEUH WA MIEUM - ,0xC364 ,0xD665 //HANGUL SYLLABLE HIEUH WA PIEUP - ,0xC365 ,0xD666 //HANGUL SYLLABLE HIEUH WA PIEUPSIOS - ,0xC366 ,0xD668 //HANGUL SYLLABLE HIEUH WA SSANGSIOS - ,0xC367 ,0xD66A //HANGUL SYLLABLE HIEUH WA CIEUC - ,0xC368 ,0xD66B //HANGUL SYLLABLE HIEUH WA CHIEUCH - ,0xC369 ,0xD66C //HANGUL SYLLABLE HIEUH WA KHIEUKH - ,0xC36A ,0xD66D //HANGUL SYLLABLE HIEUH WA THIEUTH - ,0xC36B ,0xD66E //HANGUL SYLLABLE HIEUH WA PHIEUPH - ,0xC36C ,0xD66F //HANGUL SYLLABLE HIEUH WA HIEUH - ,0xC36D ,0xD672 //HANGUL SYLLABLE HIEUH WAE SSANGKIYEOK - ,0xC36E ,0xD673 //HANGUL SYLLABLE HIEUH WAE KIYEOKSIOS - ,0xC36F ,0xD675 //HANGUL SYLLABLE HIEUH WAE NIEUNCIEUC - ,0xC370 ,0xD676 //HANGUL SYLLABLE HIEUH WAE NIEUNHIEUH - ,0xC371 ,0xD677 //HANGUL SYLLABLE HIEUH WAE TIKEUT - ,0xC372 ,0xD678 //HANGUL SYLLABLE HIEUH WAE RIEUL - ,0xC373 ,0xD679 //HANGUL SYLLABLE HIEUH WAE RIEULKIYEOK - ,0xC374 ,0xD67A //HANGUL SYLLABLE HIEUH WAE RIEULMIEUM - ,0xC375 ,0xD67B //HANGUL SYLLABLE HIEUH WAE RIEULPIEUP - ,0xC376 ,0xD67C //HANGUL SYLLABLE HIEUH WAE RIEULSIOS - ,0xC377 ,0xD67D //HANGUL SYLLABLE HIEUH WAE RIEULTHIEUTH - ,0xC378 ,0xD67E //HANGUL SYLLABLE HIEUH WAE RIEULPHIEUPH - ,0xC379 ,0xD67F //HANGUL SYLLABLE HIEUH WAE RIEULHIEUH - ,0xC37A ,0xD680 //HANGUL SYLLABLE HIEUH WAE MIEUM - ,0xC381 ,0xD681 //HANGUL SYLLABLE HIEUH WAE PIEUP - ,0xC382 ,0xD682 //HANGUL SYLLABLE HIEUH WAE PIEUPSIOS - ,0xC383 ,0xD684 //HANGUL SYLLABLE HIEUH WAE SSANGSIOS - ,0xC384 ,0xD686 //HANGUL SYLLABLE HIEUH WAE CIEUC - ,0xC385 ,0xD687 //HANGUL SYLLABLE HIEUH WAE CHIEUCH - ,0xC386 ,0xD688 //HANGUL SYLLABLE HIEUH WAE KHIEUKH - ,0xC387 ,0xD689 //HANGUL SYLLABLE HIEUH WAE THIEUTH - ,0xC388 ,0xD68A //HANGUL SYLLABLE HIEUH WAE PHIEUPH - ,0xC389 ,0xD68B //HANGUL SYLLABLE HIEUH WAE HIEUH - ,0xC38A ,0xD68E //HANGUL SYLLABLE HIEUH OE SSANGKIYEOK - ,0xC38B ,0xD68F //HANGUL SYLLABLE HIEUH OE KIYEOKSIOS - ,0xC38C ,0xD691 //HANGUL SYLLABLE HIEUH OE NIEUNCIEUC - ,0xC38D ,0xD692 //HANGUL SYLLABLE HIEUH OE NIEUNHIEUH - ,0xC38E ,0xD693 //HANGUL SYLLABLE HIEUH OE TIKEUT - ,0xC38F ,0xD695 //HANGUL SYLLABLE HIEUH OE RIEULKIYEOK - ,0xC390 ,0xD696 //HANGUL SYLLABLE HIEUH OE RIEULMIEUM - ,0xC391 ,0xD697 //HANGUL SYLLABLE HIEUH OE RIEULPIEUP - ,0xC392 ,0xD698 //HANGUL SYLLABLE HIEUH OE RIEULSIOS - ,0xC393 ,0xD699 //HANGUL SYLLABLE HIEUH OE RIEULTHIEUTH - ,0xC394 ,0xD69A //HANGUL SYLLABLE HIEUH OE RIEULPHIEUPH - ,0xC395 ,0xD69B //HANGUL SYLLABLE HIEUH OE RIEULHIEUH - ,0xC396 ,0xD69C //HANGUL SYLLABLE HIEUH OE MIEUM - ,0xC397 ,0xD69E //HANGUL SYLLABLE HIEUH OE PIEUPSIOS - ,0xC398 ,0xD6A0 //HANGUL SYLLABLE HIEUH OE SSANGSIOS - ,0xC399 ,0xD6A2 //HANGUL SYLLABLE HIEUH OE CIEUC - ,0xC39A ,0xD6A3 //HANGUL SYLLABLE HIEUH OE CHIEUCH - ,0xC39B ,0xD6A4 //HANGUL SYLLABLE HIEUH OE KHIEUKH - ,0xC39C ,0xD6A5 //HANGUL SYLLABLE HIEUH OE THIEUTH - ,0xC39D ,0xD6A6 //HANGUL SYLLABLE HIEUH OE PHIEUPH - ,0xC39E ,0xD6A7 //HANGUL SYLLABLE HIEUH OE HIEUH - ,0xC39F ,0xD6A9 //HANGUL SYLLABLE HIEUH YO KIYEOK - ,0xC3A0 ,0xD6AA //HANGUL SYLLABLE HIEUH YO SSANGKIYEOK - ,0xC3A1 ,0xCC3C //HANGUL SYLLABLE CHIEUCH A SSANGSIOS - ,0xC3A2 ,0xCC3D //HANGUL SYLLABLE CHIEUCH A IEUNG - ,0xC3A3 ,0xCC3E //HANGUL SYLLABLE CHIEUCH A CIEUC - ,0xC3A4 ,0xCC44 //HANGUL SYLLABLE CHIEUCH AE - ,0xC3A5 ,0xCC45 //HANGUL SYLLABLE CHIEUCH AE KIYEOK - ,0xC3A6 ,0xCC48 //HANGUL SYLLABLE CHIEUCH AE NIEUN - ,0xC3A7 ,0xCC4C //HANGUL SYLLABLE CHIEUCH AE RIEUL - ,0xC3A8 ,0xCC54 //HANGUL SYLLABLE CHIEUCH AE MIEUM - ,0xC3A9 ,0xCC55 //HANGUL SYLLABLE CHIEUCH AE PIEUP - ,0xC3AA ,0xCC57 //HANGUL SYLLABLE CHIEUCH AE SIOS - ,0xC3AB ,0xCC58 //HANGUL SYLLABLE CHIEUCH AE SSANGSIOS - ,0xC3AC ,0xCC59 //HANGUL SYLLABLE CHIEUCH AE IEUNG - ,0xC3AD ,0xCC60 //HANGUL SYLLABLE CHIEUCH YA - ,0xC3AE ,0xCC64 //HANGUL SYLLABLE CHIEUCH YA NIEUN - ,0xC3AF ,0xCC66 //HANGUL SYLLABLE CHIEUCH YA NIEUNHIEUH - ,0xC3B0 ,0xCC68 //HANGUL SYLLABLE CHIEUCH YA RIEUL - ,0xC3B1 ,0xCC70 //HANGUL SYLLABLE CHIEUCH YA MIEUM - ,0xC3B2 ,0xCC75 //HANGUL SYLLABLE CHIEUCH YA IEUNG - ,0xC3B3 ,0xCC98 //HANGUL SYLLABLE CHIEUCH EO - ,0xC3B4 ,0xCC99 //HANGUL SYLLABLE CHIEUCH EO KIYEOK - ,0xC3B5 ,0xCC9C //HANGUL SYLLABLE CHIEUCH EO NIEUN - ,0xC3B6 ,0xCCA0 //HANGUL SYLLABLE CHIEUCH EO RIEUL - ,0xC3B7 ,0xCCA8 //HANGUL SYLLABLE CHIEUCH EO MIEUM - ,0xC3B8 ,0xCCA9 //HANGUL SYLLABLE CHIEUCH EO PIEUP - ,0xC3B9 ,0xCCAB //HANGUL SYLLABLE CHIEUCH EO SIOS - ,0xC3BA ,0xCCAC //HANGUL SYLLABLE CHIEUCH EO SSANGSIOS - ,0xC3BB ,0xCCAD //HANGUL SYLLABLE CHIEUCH EO IEUNG - ,0xC3BC ,0xCCB4 //HANGUL SYLLABLE CHIEUCH E - ,0xC3BD ,0xCCB5 //HANGUL SYLLABLE CHIEUCH E KIYEOK - ,0xC3BE ,0xCCB8 //HANGUL SYLLABLE CHIEUCH E NIEUN - ,0xC3BF ,0xCCBC //HANGUL SYLLABLE CHIEUCH E RIEUL - ,0xC3C0 ,0xCCC4 //HANGUL SYLLABLE CHIEUCH E MIEUM - ,0xC3C1 ,0xCCC5 //HANGUL SYLLABLE CHIEUCH E PIEUP - ,0xC3C2 ,0xCCC7 //HANGUL SYLLABLE CHIEUCH E SIOS - ,0xC3C3 ,0xCCC9 //HANGUL SYLLABLE CHIEUCH E IEUNG - ,0xC3C4 ,0xCCD0 //HANGUL SYLLABLE CHIEUCH YEO - ,0xC3C5 ,0xCCD4 //HANGUL SYLLABLE CHIEUCH YEO NIEUN - ,0xC3C6 ,0xCCE4 //HANGUL SYLLABLE CHIEUCH YEO SSANGSIOS - ,0xC3C7 ,0xCCEC //HANGUL SYLLABLE CHIEUCH YE - ,0xC3C8 ,0xCCF0 //HANGUL SYLLABLE CHIEUCH YE NIEUN - ,0xC3C9 ,0xCD01 //HANGUL SYLLABLE CHIEUCH YE IEUNG - ,0xC3CA ,0xCD08 //HANGUL SYLLABLE CHIEUCH O - ,0xC3CB ,0xCD09 //HANGUL SYLLABLE CHIEUCH O KIYEOK - ,0xC3CC ,0xCD0C //HANGUL SYLLABLE CHIEUCH O NIEUN - ,0xC3CD ,0xCD10 //HANGUL SYLLABLE CHIEUCH O RIEUL - ,0xC3CE ,0xCD18 //HANGUL SYLLABLE CHIEUCH O MIEUM - ,0xC3CF ,0xCD19 //HANGUL SYLLABLE CHIEUCH O PIEUP - ,0xC3D0 ,0xCD1B //HANGUL SYLLABLE CHIEUCH O SIOS - ,0xC3D1 ,0xCD1D //HANGUL SYLLABLE CHIEUCH O IEUNG - ,0xC3D2 ,0xCD24 //HANGUL SYLLABLE CHIEUCH WA - ,0xC3D3 ,0xCD28 //HANGUL SYLLABLE CHIEUCH WA NIEUN - ,0xC3D4 ,0xCD2C //HANGUL SYLLABLE CHIEUCH WA RIEUL - ,0xC3D5 ,0xCD39 //HANGUL SYLLABLE CHIEUCH WA IEUNG - ,0xC3D6 ,0xCD5C //HANGUL SYLLABLE CHIEUCH OE - ,0xC3D7 ,0xCD60 //HANGUL SYLLABLE CHIEUCH OE NIEUN - ,0xC3D8 ,0xCD64 //HANGUL SYLLABLE CHIEUCH OE RIEUL - ,0xC3D9 ,0xCD6C //HANGUL SYLLABLE CHIEUCH OE MIEUM - ,0xC3DA ,0xCD6D //HANGUL SYLLABLE CHIEUCH OE PIEUP - ,0xC3DB ,0xCD6F //HANGUL SYLLABLE CHIEUCH OE SIOS - ,0xC3DC ,0xCD71 //HANGUL SYLLABLE CHIEUCH OE IEUNG - ,0xC3DD ,0xCD78 //HANGUL SYLLABLE CHIEUCH YO - ,0xC3DE ,0xCD88 //HANGUL SYLLABLE CHIEUCH YO MIEUM - ,0xC3DF ,0xCD94 //HANGUL SYLLABLE CHIEUCH U - ,0xC3E0 ,0xCD95 //HANGUL SYLLABLE CHIEUCH U KIYEOK - ,0xC3E1 ,0xCD98 //HANGUL SYLLABLE CHIEUCH U NIEUN - ,0xC3E2 ,0xCD9C //HANGUL SYLLABLE CHIEUCH U RIEUL - ,0xC3E3 ,0xCDA4 //HANGUL SYLLABLE CHIEUCH U MIEUM - ,0xC3E4 ,0xCDA5 //HANGUL SYLLABLE CHIEUCH U PIEUP - ,0xC3E5 ,0xCDA7 //HANGUL SYLLABLE CHIEUCH U SIOS - ,0xC3E6 ,0xCDA9 //HANGUL SYLLABLE CHIEUCH U IEUNG - ,0xC3E7 ,0xCDB0 //HANGUL SYLLABLE CHIEUCH WEO - ,0xC3E8 ,0xCDC4 //HANGUL SYLLABLE CHIEUCH WEO SSANGSIOS - ,0xC3E9 ,0xCDCC //HANGUL SYLLABLE CHIEUCH WE - ,0xC3EA ,0xCDD0 //HANGUL SYLLABLE CHIEUCH WE NIEUN - ,0xC3EB ,0xCDE8 //HANGUL SYLLABLE CHIEUCH WI - ,0xC3EC ,0xCDEC //HANGUL SYLLABLE CHIEUCH WI NIEUN - ,0xC3ED ,0xCDF0 //HANGUL SYLLABLE CHIEUCH WI RIEUL - ,0xC3EE ,0xCDF8 //HANGUL SYLLABLE CHIEUCH WI MIEUM - ,0xC3EF ,0xCDF9 //HANGUL SYLLABLE CHIEUCH WI PIEUP - ,0xC3F0 ,0xCDFB //HANGUL SYLLABLE CHIEUCH WI SIOS - ,0xC3F1 ,0xCDFD //HANGUL SYLLABLE CHIEUCH WI IEUNG - ,0xC3F2 ,0xCE04 //HANGUL SYLLABLE CHIEUCH YU - ,0xC3F3 ,0xCE08 //HANGUL SYLLABLE CHIEUCH YU NIEUN - ,0xC3F4 ,0xCE0C //HANGUL SYLLABLE CHIEUCH YU RIEUL - ,0xC3F5 ,0xCE14 //HANGUL SYLLABLE CHIEUCH YU MIEUM - ,0xC3F6 ,0xCE19 //HANGUL SYLLABLE CHIEUCH YU IEUNG - ,0xC3F7 ,0xCE20 //HANGUL SYLLABLE CHIEUCH EU - ,0xC3F8 ,0xCE21 //HANGUL SYLLABLE CHIEUCH EU KIYEOK - ,0xC3F9 ,0xCE24 //HANGUL SYLLABLE CHIEUCH EU NIEUN - ,0xC3FA ,0xCE28 //HANGUL SYLLABLE CHIEUCH EU RIEUL - ,0xC3FB ,0xCE30 //HANGUL SYLLABLE CHIEUCH EU MIEUM - ,0xC3FC ,0xCE31 //HANGUL SYLLABLE CHIEUCH EU PIEUP - ,0xC3FD ,0xCE33 //HANGUL SYLLABLE CHIEUCH EU SIOS - ,0xC3FE ,0xCE35 //HANGUL SYLLABLE CHIEUCH EU IEUNG - ,0xC441 ,0xD6AB //HANGUL SYLLABLE HIEUH YO KIYEOKSIOS - ,0xC442 ,0xD6AD //HANGUL SYLLABLE HIEUH YO NIEUNCIEUC - ,0xC443 ,0xD6AE //HANGUL SYLLABLE HIEUH YO NIEUNHIEUH - ,0xC444 ,0xD6AF //HANGUL SYLLABLE HIEUH YO TIKEUT - ,0xC445 ,0xD6B1 //HANGUL SYLLABLE HIEUH YO RIEULKIYEOK - ,0xC446 ,0xD6B2 //HANGUL SYLLABLE HIEUH YO RIEULMIEUM - ,0xC447 ,0xD6B3 //HANGUL SYLLABLE HIEUH YO RIEULPIEUP - ,0xC448 ,0xD6B4 //HANGUL SYLLABLE HIEUH YO RIEULSIOS - ,0xC449 ,0xD6B5 //HANGUL SYLLABLE HIEUH YO RIEULTHIEUTH - ,0xC44A ,0xD6B6 //HANGUL SYLLABLE HIEUH YO RIEULPHIEUPH - ,0xC44B ,0xD6B7 //HANGUL SYLLABLE HIEUH YO RIEULHIEUH - ,0xC44C ,0xD6B8 //HANGUL SYLLABLE HIEUH YO MIEUM - ,0xC44D ,0xD6BA //HANGUL SYLLABLE HIEUH YO PIEUPSIOS - ,0xC44E ,0xD6BC //HANGUL SYLLABLE HIEUH YO SSANGSIOS - ,0xC44F ,0xD6BD //HANGUL SYLLABLE HIEUH YO IEUNG - ,0xC450 ,0xD6BE //HANGUL SYLLABLE HIEUH YO CIEUC - ,0xC451 ,0xD6BF //HANGUL SYLLABLE HIEUH YO CHIEUCH - ,0xC452 ,0xD6C0 //HANGUL SYLLABLE HIEUH YO KHIEUKH - ,0xC453 ,0xD6C1 //HANGUL SYLLABLE HIEUH YO THIEUTH - ,0xC454 ,0xD6C2 //HANGUL SYLLABLE HIEUH YO PHIEUPH - ,0xC455 ,0xD6C3 //HANGUL SYLLABLE HIEUH YO HIEUH - ,0xC456 ,0xD6C6 //HANGUL SYLLABLE HIEUH U SSANGKIYEOK - ,0xC457 ,0xD6C7 //HANGUL SYLLABLE HIEUH U KIYEOKSIOS - ,0xC458 ,0xD6C9 //HANGUL SYLLABLE HIEUH U NIEUNCIEUC - ,0xC459 ,0xD6CA //HANGUL SYLLABLE HIEUH U NIEUNHIEUH - ,0xC45A ,0xD6CB //HANGUL SYLLABLE HIEUH U TIKEUT - ,0xC461 ,0xD6CD //HANGUL SYLLABLE HIEUH U RIEULKIYEOK - ,0xC462 ,0xD6CE //HANGUL SYLLABLE HIEUH U RIEULMIEUM - ,0xC463 ,0xD6CF //HANGUL SYLLABLE HIEUH U RIEULPIEUP - ,0xC464 ,0xD6D0 //HANGUL SYLLABLE HIEUH U RIEULSIOS - ,0xC465 ,0xD6D2 //HANGUL SYLLABLE HIEUH U RIEULPHIEUPH - ,0xC466 ,0xD6D3 //HANGUL SYLLABLE HIEUH U RIEULHIEUH - ,0xC467 ,0xD6D5 //HANGUL SYLLABLE HIEUH U PIEUP - ,0xC468 ,0xD6D6 //HANGUL SYLLABLE HIEUH U PIEUPSIOS - ,0xC469 ,0xD6D8 //HANGUL SYLLABLE HIEUH U SSANGSIOS - ,0xC46A ,0xD6DA //HANGUL SYLLABLE HIEUH U CIEUC - ,0xC46B ,0xD6DB //HANGUL SYLLABLE HIEUH U CHIEUCH - ,0xC46C ,0xD6DC //HANGUL SYLLABLE HIEUH U KHIEUKH - ,0xC46D ,0xD6DD //HANGUL SYLLABLE HIEUH U THIEUTH - ,0xC46E ,0xD6DE //HANGUL SYLLABLE HIEUH U PHIEUPH - ,0xC46F ,0xD6DF //HANGUL SYLLABLE HIEUH U HIEUH - ,0xC470 ,0xD6E1 //HANGUL SYLLABLE HIEUH WEO KIYEOK - ,0xC471 ,0xD6E2 //HANGUL SYLLABLE HIEUH WEO SSANGKIYEOK - ,0xC472 ,0xD6E3 //HANGUL SYLLABLE HIEUH WEO KIYEOKSIOS - ,0xC473 ,0xD6E5 //HANGUL SYLLABLE HIEUH WEO NIEUNCIEUC - ,0xC474 ,0xD6E6 //HANGUL SYLLABLE HIEUH WEO NIEUNHIEUH - ,0xC475 ,0xD6E7 //HANGUL SYLLABLE HIEUH WEO TIKEUT - ,0xC476 ,0xD6E9 //HANGUL SYLLABLE HIEUH WEO RIEULKIYEOK - ,0xC477 ,0xD6EA //HANGUL SYLLABLE HIEUH WEO RIEULMIEUM - ,0xC478 ,0xD6EB //HANGUL SYLLABLE HIEUH WEO RIEULPIEUP - ,0xC479 ,0xD6EC //HANGUL SYLLABLE HIEUH WEO RIEULSIOS - ,0xC47A ,0xD6ED //HANGUL SYLLABLE HIEUH WEO RIEULTHIEUTH - ,0xC481 ,0xD6EE //HANGUL SYLLABLE HIEUH WEO RIEULPHIEUPH - ,0xC482 ,0xD6EF //HANGUL SYLLABLE HIEUH WEO RIEULHIEUH - ,0xC483 ,0xD6F1 //HANGUL SYLLABLE HIEUH WEO PIEUP - ,0xC484 ,0xD6F2 //HANGUL SYLLABLE HIEUH WEO PIEUPSIOS - ,0xC485 ,0xD6F3 //HANGUL SYLLABLE HIEUH WEO SIOS - ,0xC486 ,0xD6F4 //HANGUL SYLLABLE HIEUH WEO SSANGSIOS - ,0xC487 ,0xD6F6 //HANGUL SYLLABLE HIEUH WEO CIEUC - ,0xC488 ,0xD6F7 //HANGUL SYLLABLE HIEUH WEO CHIEUCH - ,0xC489 ,0xD6F8 //HANGUL SYLLABLE HIEUH WEO KHIEUKH - ,0xC48A ,0xD6F9 //HANGUL SYLLABLE HIEUH WEO THIEUTH - ,0xC48B ,0xD6FA //HANGUL SYLLABLE HIEUH WEO PHIEUPH - ,0xC48C ,0xD6FB //HANGUL SYLLABLE HIEUH WEO HIEUH - ,0xC48D ,0xD6FE //HANGUL SYLLABLE HIEUH WE SSANGKIYEOK - ,0xC48E ,0xD6FF //HANGUL SYLLABLE HIEUH WE KIYEOKSIOS - ,0xC48F ,0xD701 //HANGUL SYLLABLE HIEUH WE NIEUNCIEUC - ,0xC490 ,0xD702 //HANGUL SYLLABLE HIEUH WE NIEUNHIEUH - ,0xC491 ,0xD703 //HANGUL SYLLABLE HIEUH WE TIKEUT - ,0xC492 ,0xD705 //HANGUL SYLLABLE HIEUH WE RIEULKIYEOK - ,0xC493 ,0xD706 //HANGUL SYLLABLE HIEUH WE RIEULMIEUM - ,0xC494 ,0xD707 //HANGUL SYLLABLE HIEUH WE RIEULPIEUP - ,0xC495 ,0xD708 //HANGUL SYLLABLE HIEUH WE RIEULSIOS - ,0xC496 ,0xD709 //HANGUL SYLLABLE HIEUH WE RIEULTHIEUTH - ,0xC497 ,0xD70A //HANGUL SYLLABLE HIEUH WE RIEULPHIEUPH - ,0xC498 ,0xD70B //HANGUL SYLLABLE HIEUH WE RIEULHIEUH - ,0xC499 ,0xD70C //HANGUL SYLLABLE HIEUH WE MIEUM - ,0xC49A ,0xD70D //HANGUL SYLLABLE HIEUH WE PIEUP - ,0xC49B ,0xD70E //HANGUL SYLLABLE HIEUH WE PIEUPSIOS - ,0xC49C ,0xD70F //HANGUL SYLLABLE HIEUH WE SIOS - ,0xC49D ,0xD710 //HANGUL SYLLABLE HIEUH WE SSANGSIOS - ,0xC49E ,0xD712 //HANGUL SYLLABLE HIEUH WE CIEUC - ,0xC49F ,0xD713 //HANGUL SYLLABLE HIEUH WE CHIEUCH - ,0xC4A0 ,0xD714 //HANGUL SYLLABLE HIEUH WE KHIEUKH - ,0xC4A1 ,0xCE58 //HANGUL SYLLABLE CHIEUCH I - ,0xC4A2 ,0xCE59 //HANGUL SYLLABLE CHIEUCH I KIYEOK - ,0xC4A3 ,0xCE5C //HANGUL SYLLABLE CHIEUCH I NIEUN - ,0xC4A4 ,0xCE5F //HANGUL SYLLABLE CHIEUCH I TIKEUT - ,0xC4A5 ,0xCE60 //HANGUL SYLLABLE CHIEUCH I RIEUL - ,0xC4A6 ,0xCE61 //HANGUL SYLLABLE CHIEUCH I RIEULKIYEOK - ,0xC4A7 ,0xCE68 //HANGUL SYLLABLE CHIEUCH I MIEUM - ,0xC4A8 ,0xCE69 //HANGUL SYLLABLE CHIEUCH I PIEUP - ,0xC4A9 ,0xCE6B //HANGUL SYLLABLE CHIEUCH I SIOS - ,0xC4AA ,0xCE6D //HANGUL SYLLABLE CHIEUCH I IEUNG - ,0xC4AB ,0xCE74 //HANGUL SYLLABLE KHIEUKH A - ,0xC4AC ,0xCE75 //HANGUL SYLLABLE KHIEUKH A KIYEOK - ,0xC4AD ,0xCE78 //HANGUL SYLLABLE KHIEUKH A NIEUN - ,0xC4AE ,0xCE7C //HANGUL SYLLABLE KHIEUKH A RIEUL - ,0xC4AF ,0xCE84 //HANGUL SYLLABLE KHIEUKH A MIEUM - ,0xC4B0 ,0xCE85 //HANGUL SYLLABLE KHIEUKH A PIEUP - ,0xC4B1 ,0xCE87 //HANGUL SYLLABLE KHIEUKH A SIOS - ,0xC4B2 ,0xCE89 //HANGUL SYLLABLE KHIEUKH A IEUNG - ,0xC4B3 ,0xCE90 //HANGUL SYLLABLE KHIEUKH AE - ,0xC4B4 ,0xCE91 //HANGUL SYLLABLE KHIEUKH AE KIYEOK - ,0xC4B5 ,0xCE94 //HANGUL SYLLABLE KHIEUKH AE NIEUN - ,0xC4B6 ,0xCE98 //HANGUL SYLLABLE KHIEUKH AE RIEUL - ,0xC4B7 ,0xCEA0 //HANGUL SYLLABLE KHIEUKH AE MIEUM - ,0xC4B8 ,0xCEA1 //HANGUL SYLLABLE KHIEUKH AE PIEUP - ,0xC4B9 ,0xCEA3 //HANGUL SYLLABLE KHIEUKH AE SIOS - ,0xC4BA ,0xCEA4 //HANGUL SYLLABLE KHIEUKH AE SSANGSIOS - ,0xC4BB ,0xCEA5 //HANGUL SYLLABLE KHIEUKH AE IEUNG - ,0xC4BC ,0xCEAC //HANGUL SYLLABLE KHIEUKH YA - ,0xC4BD ,0xCEAD //HANGUL SYLLABLE KHIEUKH YA KIYEOK - ,0xC4BE ,0xCEC1 //HANGUL SYLLABLE KHIEUKH YA IEUNG - ,0xC4BF ,0xCEE4 //HANGUL SYLLABLE KHIEUKH EO - ,0xC4C0 ,0xCEE5 //HANGUL SYLLABLE KHIEUKH EO KIYEOK - ,0xC4C1 ,0xCEE8 //HANGUL SYLLABLE KHIEUKH EO NIEUN - ,0xC4C2 ,0xCEEB //HANGUL SYLLABLE KHIEUKH EO TIKEUT - ,0xC4C3 ,0xCEEC //HANGUL SYLLABLE KHIEUKH EO RIEUL - ,0xC4C4 ,0xCEF4 //HANGUL SYLLABLE KHIEUKH EO MIEUM - ,0xC4C5 ,0xCEF5 //HANGUL SYLLABLE KHIEUKH EO PIEUP - ,0xC4C6 ,0xCEF7 //HANGUL SYLLABLE KHIEUKH EO SIOS - ,0xC4C7 ,0xCEF8 //HANGUL SYLLABLE KHIEUKH EO SSANGSIOS - ,0xC4C8 ,0xCEF9 //HANGUL SYLLABLE KHIEUKH EO IEUNG - ,0xC4C9 ,0xCF00 //HANGUL SYLLABLE KHIEUKH E - ,0xC4CA ,0xCF01 //HANGUL SYLLABLE KHIEUKH E KIYEOK - ,0xC4CB ,0xCF04 //HANGUL SYLLABLE KHIEUKH E NIEUN - ,0xC4CC ,0xCF08 //HANGUL SYLLABLE KHIEUKH E RIEUL - ,0xC4CD ,0xCF10 //HANGUL SYLLABLE KHIEUKH E MIEUM - ,0xC4CE ,0xCF11 //HANGUL SYLLABLE KHIEUKH E PIEUP - ,0xC4CF ,0xCF13 //HANGUL SYLLABLE KHIEUKH E SIOS - ,0xC4D0 ,0xCF15 //HANGUL SYLLABLE KHIEUKH E IEUNG - ,0xC4D1 ,0xCF1C //HANGUL SYLLABLE KHIEUKH YEO - ,0xC4D2 ,0xCF20 //HANGUL SYLLABLE KHIEUKH YEO NIEUN - ,0xC4D3 ,0xCF24 //HANGUL SYLLABLE KHIEUKH YEO RIEUL - ,0xC4D4 ,0xCF2C //HANGUL SYLLABLE KHIEUKH YEO MIEUM - ,0xC4D5 ,0xCF2D //HANGUL SYLLABLE KHIEUKH YEO PIEUP - ,0xC4D6 ,0xCF2F //HANGUL SYLLABLE KHIEUKH YEO SIOS - ,0xC4D7 ,0xCF30 //HANGUL SYLLABLE KHIEUKH YEO SSANGSIOS - ,0xC4D8 ,0xCF31 //HANGUL SYLLABLE KHIEUKH YEO IEUNG - ,0xC4D9 ,0xCF38 //HANGUL SYLLABLE KHIEUKH YE - ,0xC4DA ,0xCF54 //HANGUL SYLLABLE KHIEUKH O - ,0xC4DB ,0xCF55 //HANGUL SYLLABLE KHIEUKH O KIYEOK - ,0xC4DC ,0xCF58 //HANGUL SYLLABLE KHIEUKH O NIEUN - ,0xC4DD ,0xCF5C //HANGUL SYLLABLE KHIEUKH O RIEUL - ,0xC4DE ,0xCF64 //HANGUL SYLLABLE KHIEUKH O MIEUM - ,0xC4DF ,0xCF65 //HANGUL SYLLABLE KHIEUKH O PIEUP - ,0xC4E0 ,0xCF67 //HANGUL SYLLABLE KHIEUKH O SIOS - ,0xC4E1 ,0xCF69 //HANGUL SYLLABLE KHIEUKH O IEUNG - ,0xC4E2 ,0xCF70 //HANGUL SYLLABLE KHIEUKH WA - ,0xC4E3 ,0xCF71 //HANGUL SYLLABLE KHIEUKH WA KIYEOK - ,0xC4E4 ,0xCF74 //HANGUL SYLLABLE KHIEUKH WA NIEUN - ,0xC4E5 ,0xCF78 //HANGUL SYLLABLE KHIEUKH WA RIEUL - ,0xC4E6 ,0xCF80 //HANGUL SYLLABLE KHIEUKH WA MIEUM - ,0xC4E7 ,0xCF85 //HANGUL SYLLABLE KHIEUKH WA IEUNG - ,0xC4E8 ,0xCF8C //HANGUL SYLLABLE KHIEUKH WAE - ,0xC4E9 ,0xCFA1 //HANGUL SYLLABLE KHIEUKH WAE IEUNG - ,0xC4EA ,0xCFA8 //HANGUL SYLLABLE KHIEUKH OE - ,0xC4EB ,0xCFB0 //HANGUL SYLLABLE KHIEUKH OE RIEUL - ,0xC4EC ,0xCFC4 //HANGUL SYLLABLE KHIEUKH YO - ,0xC4ED ,0xCFE0 //HANGUL SYLLABLE KHIEUKH U - ,0xC4EE ,0xCFE1 //HANGUL SYLLABLE KHIEUKH U KIYEOK - ,0xC4EF ,0xCFE4 //HANGUL SYLLABLE KHIEUKH U NIEUN - ,0xC4F0 ,0xCFE8 //HANGUL SYLLABLE KHIEUKH U RIEUL - ,0xC4F1 ,0xCFF0 //HANGUL SYLLABLE KHIEUKH U MIEUM - ,0xC4F2 ,0xCFF1 //HANGUL SYLLABLE KHIEUKH U PIEUP - ,0xC4F3 ,0xCFF3 //HANGUL SYLLABLE KHIEUKH U SIOS - ,0xC4F4 ,0xCFF5 //HANGUL SYLLABLE KHIEUKH U IEUNG - ,0xC4F5 ,0xCFFC //HANGUL SYLLABLE KHIEUKH WEO - ,0xC4F6 ,0xD000 //HANGUL SYLLABLE KHIEUKH WEO NIEUN - ,0xC4F7 ,0xD004 //HANGUL SYLLABLE KHIEUKH WEO RIEUL - ,0xC4F8 ,0xD011 //HANGUL SYLLABLE KHIEUKH WEO IEUNG - ,0xC4F9 ,0xD018 //HANGUL SYLLABLE KHIEUKH WE - ,0xC4FA ,0xD02D //HANGUL SYLLABLE KHIEUKH WE IEUNG - ,0xC4FB ,0xD034 //HANGUL SYLLABLE KHIEUKH WI - ,0xC4FC ,0xD035 //HANGUL SYLLABLE KHIEUKH WI KIYEOK - ,0xC4FD ,0xD038 //HANGUL SYLLABLE KHIEUKH WI NIEUN - ,0xC4FE ,0xD03C //HANGUL SYLLABLE KHIEUKH WI RIEUL - ,0xC541 ,0xD715 //HANGUL SYLLABLE HIEUH WE THIEUTH - ,0xC542 ,0xD716 //HANGUL SYLLABLE HIEUH WE PHIEUPH - ,0xC543 ,0xD717 //HANGUL SYLLABLE HIEUH WE HIEUH - ,0xC544 ,0xD71A //HANGUL SYLLABLE HIEUH WI SSANGKIYEOK - ,0xC545 ,0xD71B //HANGUL SYLLABLE HIEUH WI KIYEOKSIOS - ,0xC546 ,0xD71D //HANGUL SYLLABLE HIEUH WI NIEUNCIEUC - ,0xC547 ,0xD71E //HANGUL SYLLABLE HIEUH WI NIEUNHIEUH - ,0xC548 ,0xD71F //HANGUL SYLLABLE HIEUH WI TIKEUT - ,0xC549 ,0xD721 //HANGUL SYLLABLE HIEUH WI RIEULKIYEOK - ,0xC54A ,0xD722 //HANGUL SYLLABLE HIEUH WI RIEULMIEUM - ,0xC54B ,0xD723 //HANGUL SYLLABLE HIEUH WI RIEULPIEUP - ,0xC54C ,0xD724 //HANGUL SYLLABLE HIEUH WI RIEULSIOS - ,0xC54D ,0xD725 //HANGUL SYLLABLE HIEUH WI RIEULTHIEUTH - ,0xC54E ,0xD726 //HANGUL SYLLABLE HIEUH WI RIEULPHIEUPH - ,0xC54F ,0xD727 //HANGUL SYLLABLE HIEUH WI RIEULHIEUH - ,0xC550 ,0xD72A //HANGUL SYLLABLE HIEUH WI PIEUPSIOS - ,0xC551 ,0xD72C //HANGUL SYLLABLE HIEUH WI SSANGSIOS - ,0xC552 ,0xD72E //HANGUL SYLLABLE HIEUH WI CIEUC - ,0xC553 ,0xD72F //HANGUL SYLLABLE HIEUH WI CHIEUCH - ,0xC554 ,0xD730 //HANGUL SYLLABLE HIEUH WI KHIEUKH - ,0xC555 ,0xD731 //HANGUL SYLLABLE HIEUH WI THIEUTH - ,0xC556 ,0xD732 //HANGUL SYLLABLE HIEUH WI PHIEUPH - ,0xC557 ,0xD733 //HANGUL SYLLABLE HIEUH WI HIEUH - ,0xC558 ,0xD736 //HANGUL SYLLABLE HIEUH YU SSANGKIYEOK - ,0xC559 ,0xD737 //HANGUL SYLLABLE HIEUH YU KIYEOKSIOS - ,0xC55A ,0xD739 //HANGUL SYLLABLE HIEUH YU NIEUNCIEUC - ,0xC561 ,0xD73A //HANGUL SYLLABLE HIEUH YU NIEUNHIEUH - ,0xC562 ,0xD73B //HANGUL SYLLABLE HIEUH YU TIKEUT - ,0xC563 ,0xD73D //HANGUL SYLLABLE HIEUH YU RIEULKIYEOK - ,0xC564 ,0xD73E //HANGUL SYLLABLE HIEUH YU RIEULMIEUM - ,0xC565 ,0xD73F //HANGUL SYLLABLE HIEUH YU RIEULPIEUP - ,0xC566 ,0xD740 //HANGUL SYLLABLE HIEUH YU RIEULSIOS - ,0xC567 ,0xD741 //HANGUL SYLLABLE HIEUH YU RIEULTHIEUTH - ,0xC568 ,0xD742 //HANGUL SYLLABLE HIEUH YU RIEULPHIEUPH - ,0xC569 ,0xD743 //HANGUL SYLLABLE HIEUH YU RIEULHIEUH - ,0xC56A ,0xD745 //HANGUL SYLLABLE HIEUH YU PIEUP - ,0xC56B ,0xD746 //HANGUL SYLLABLE HIEUH YU PIEUPSIOS - ,0xC56C ,0xD748 //HANGUL SYLLABLE HIEUH YU SSANGSIOS - ,0xC56D ,0xD74A //HANGUL SYLLABLE HIEUH YU CIEUC - ,0xC56E ,0xD74B //HANGUL SYLLABLE HIEUH YU CHIEUCH - ,0xC56F ,0xD74C //HANGUL SYLLABLE HIEUH YU KHIEUKH - ,0xC570 ,0xD74D //HANGUL SYLLABLE HIEUH YU THIEUTH - ,0xC571 ,0xD74E //HANGUL SYLLABLE HIEUH YU PHIEUPH - ,0xC572 ,0xD74F //HANGUL SYLLABLE HIEUH YU HIEUH - ,0xC573 ,0xD752 //HANGUL SYLLABLE HIEUH EU SSANGKIYEOK - ,0xC574 ,0xD753 //HANGUL SYLLABLE HIEUH EU KIYEOKSIOS - ,0xC575 ,0xD755 //HANGUL SYLLABLE HIEUH EU NIEUNCIEUC - ,0xC576 ,0xD75A //HANGUL SYLLABLE HIEUH EU RIEULMIEUM - ,0xC577 ,0xD75B //HANGUL SYLLABLE HIEUH EU RIEULPIEUP - ,0xC578 ,0xD75C //HANGUL SYLLABLE HIEUH EU RIEULSIOS - ,0xC579 ,0xD75D //HANGUL SYLLABLE HIEUH EU RIEULTHIEUTH - ,0xC57A ,0xD75E //HANGUL SYLLABLE HIEUH EU RIEULPHIEUPH - ,0xC581 ,0xD75F //HANGUL SYLLABLE HIEUH EU RIEULHIEUH - ,0xC582 ,0xD762 //HANGUL SYLLABLE HIEUH EU PIEUPSIOS - ,0xC583 ,0xD764 //HANGUL SYLLABLE HIEUH EU SSANGSIOS - ,0xC584 ,0xD766 //HANGUL SYLLABLE HIEUH EU CIEUC - ,0xC585 ,0xD767 //HANGUL SYLLABLE HIEUH EU CHIEUCH - ,0xC586 ,0xD768 //HANGUL SYLLABLE HIEUH EU KHIEUKH - ,0xC587 ,0xD76A //HANGUL SYLLABLE HIEUH EU PHIEUPH - ,0xC588 ,0xD76B //HANGUL SYLLABLE HIEUH EU HIEUH - ,0xC589 ,0xD76D //HANGUL SYLLABLE HIEUH YI KIYEOK - ,0xC58A ,0xD76E //HANGUL SYLLABLE HIEUH YI SSANGKIYEOK - ,0xC58B ,0xD76F //HANGUL SYLLABLE HIEUH YI KIYEOKSIOS - ,0xC58C ,0xD771 //HANGUL SYLLABLE HIEUH YI NIEUNCIEUC - ,0xC58D ,0xD772 //HANGUL SYLLABLE HIEUH YI NIEUNHIEUH - ,0xC58E ,0xD773 //HANGUL SYLLABLE HIEUH YI TIKEUT - ,0xC58F ,0xD775 //HANGUL SYLLABLE HIEUH YI RIEULKIYEOK - ,0xC590 ,0xD776 //HANGUL SYLLABLE HIEUH YI RIEULMIEUM - ,0xC591 ,0xD777 //HANGUL SYLLABLE HIEUH YI RIEULPIEUP - ,0xC592 ,0xD778 //HANGUL SYLLABLE HIEUH YI RIEULSIOS - ,0xC593 ,0xD779 //HANGUL SYLLABLE HIEUH YI RIEULTHIEUTH - ,0xC594 ,0xD77A //HANGUL SYLLABLE HIEUH YI RIEULPHIEUPH - ,0xC595 ,0xD77B //HANGUL SYLLABLE HIEUH YI RIEULHIEUH - ,0xC596 ,0xD77E //HANGUL SYLLABLE HIEUH YI PIEUPSIOS - ,0xC597 ,0xD77F //HANGUL SYLLABLE HIEUH YI SIOS - ,0xC598 ,0xD780 //HANGUL SYLLABLE HIEUH YI SSANGSIOS - ,0xC599 ,0xD782 //HANGUL SYLLABLE HIEUH YI CIEUC - ,0xC59A ,0xD783 //HANGUL SYLLABLE HIEUH YI CHIEUCH - ,0xC59B ,0xD784 //HANGUL SYLLABLE HIEUH YI KHIEUKH - ,0xC59C ,0xD785 //HANGUL SYLLABLE HIEUH YI THIEUTH - ,0xC59D ,0xD786 //HANGUL SYLLABLE HIEUH YI PHIEUPH - ,0xC59E ,0xD787 //HANGUL SYLLABLE HIEUH YI HIEUH - ,0xC59F ,0xD78A //HANGUL SYLLABLE HIEUH I SSANGKIYEOK - ,0xC5A0 ,0xD78B //HANGUL SYLLABLE HIEUH I KIYEOKSIOS - ,0xC5A1 ,0xD044 //HANGUL SYLLABLE KHIEUKH WI MIEUM - ,0xC5A2 ,0xD045 //HANGUL SYLLABLE KHIEUKH WI PIEUP - ,0xC5A3 ,0xD047 //HANGUL SYLLABLE KHIEUKH WI SIOS - ,0xC5A4 ,0xD049 //HANGUL SYLLABLE KHIEUKH WI IEUNG - ,0xC5A5 ,0xD050 //HANGUL SYLLABLE KHIEUKH YU - ,0xC5A6 ,0xD054 //HANGUL SYLLABLE KHIEUKH YU NIEUN - ,0xC5A7 ,0xD058 //HANGUL SYLLABLE KHIEUKH YU RIEUL - ,0xC5A8 ,0xD060 //HANGUL SYLLABLE KHIEUKH YU MIEUM - ,0xC5A9 ,0xD06C //HANGUL SYLLABLE KHIEUKH EU - ,0xC5AA ,0xD06D //HANGUL SYLLABLE KHIEUKH EU KIYEOK - ,0xC5AB ,0xD070 //HANGUL SYLLABLE KHIEUKH EU NIEUN - ,0xC5AC ,0xD074 //HANGUL SYLLABLE KHIEUKH EU RIEUL - ,0xC5AD ,0xD07C //HANGUL SYLLABLE KHIEUKH EU MIEUM - ,0xC5AE ,0xD07D //HANGUL SYLLABLE KHIEUKH EU PIEUP - ,0xC5AF ,0xD081 //HANGUL SYLLABLE KHIEUKH EU IEUNG - ,0xC5B0 ,0xD0A4 //HANGUL SYLLABLE KHIEUKH I - ,0xC5B1 ,0xD0A5 //HANGUL SYLLABLE KHIEUKH I KIYEOK - ,0xC5B2 ,0xD0A8 //HANGUL SYLLABLE KHIEUKH I NIEUN - ,0xC5B3 ,0xD0AC //HANGUL SYLLABLE KHIEUKH I RIEUL - ,0xC5B4 ,0xD0B4 //HANGUL SYLLABLE KHIEUKH I MIEUM - ,0xC5B5 ,0xD0B5 //HANGUL SYLLABLE KHIEUKH I PIEUP - ,0xC5B6 ,0xD0B7 //HANGUL SYLLABLE KHIEUKH I SIOS - ,0xC5B7 ,0xD0B9 //HANGUL SYLLABLE KHIEUKH I IEUNG - ,0xC5B8 ,0xD0C0 //HANGUL SYLLABLE THIEUTH A - ,0xC5B9 ,0xD0C1 //HANGUL SYLLABLE THIEUTH A KIYEOK - ,0xC5BA ,0xD0C4 //HANGUL SYLLABLE THIEUTH A NIEUN - ,0xC5BB ,0xD0C8 //HANGUL SYLLABLE THIEUTH A RIEUL - ,0xC5BC ,0xD0C9 //HANGUL SYLLABLE THIEUTH A RIEULKIYEOK - ,0xC5BD ,0xD0D0 //HANGUL SYLLABLE THIEUTH A MIEUM - ,0xC5BE ,0xD0D1 //HANGUL SYLLABLE THIEUTH A PIEUP - ,0xC5BF ,0xD0D3 //HANGUL SYLLABLE THIEUTH A SIOS - ,0xC5C0 ,0xD0D4 //HANGUL SYLLABLE THIEUTH A SSANGSIOS - ,0xC5C1 ,0xD0D5 //HANGUL SYLLABLE THIEUTH A IEUNG - ,0xC5C2 ,0xD0DC //HANGUL SYLLABLE THIEUTH AE - ,0xC5C3 ,0xD0DD //HANGUL SYLLABLE THIEUTH AE KIYEOK - ,0xC5C4 ,0xD0E0 //HANGUL SYLLABLE THIEUTH AE NIEUN - ,0xC5C5 ,0xD0E4 //HANGUL SYLLABLE THIEUTH AE RIEUL - ,0xC5C6 ,0xD0EC //HANGUL SYLLABLE THIEUTH AE MIEUM - ,0xC5C7 ,0xD0ED //HANGUL SYLLABLE THIEUTH AE PIEUP - ,0xC5C8 ,0xD0EF //HANGUL SYLLABLE THIEUTH AE SIOS - ,0xC5C9 ,0xD0F0 //HANGUL SYLLABLE THIEUTH AE SSANGSIOS - ,0xC5CA ,0xD0F1 //HANGUL SYLLABLE THIEUTH AE IEUNG - ,0xC5CB ,0xD0F8 //HANGUL SYLLABLE THIEUTH YA - ,0xC5CC ,0xD10D //HANGUL SYLLABLE THIEUTH YA IEUNG - ,0xC5CD ,0xD130 //HANGUL SYLLABLE THIEUTH EO - ,0xC5CE ,0xD131 //HANGUL SYLLABLE THIEUTH EO KIYEOK - ,0xC5CF ,0xD134 //HANGUL SYLLABLE THIEUTH EO NIEUN - ,0xC5D0 ,0xD138 //HANGUL SYLLABLE THIEUTH EO RIEUL - ,0xC5D1 ,0xD13A //HANGUL SYLLABLE THIEUTH EO RIEULMIEUM - ,0xC5D2 ,0xD140 //HANGUL SYLLABLE THIEUTH EO MIEUM - ,0xC5D3 ,0xD141 //HANGUL SYLLABLE THIEUTH EO PIEUP - ,0xC5D4 ,0xD143 //HANGUL SYLLABLE THIEUTH EO SIOS - ,0xC5D5 ,0xD144 //HANGUL SYLLABLE THIEUTH EO SSANGSIOS - ,0xC5D6 ,0xD145 //HANGUL SYLLABLE THIEUTH EO IEUNG - ,0xC5D7 ,0xD14C //HANGUL SYLLABLE THIEUTH E - ,0xC5D8 ,0xD14D //HANGUL SYLLABLE THIEUTH E KIYEOK - ,0xC5D9 ,0xD150 //HANGUL SYLLABLE THIEUTH E NIEUN - ,0xC5DA ,0xD154 //HANGUL SYLLABLE THIEUTH E RIEUL - ,0xC5DB ,0xD15C //HANGUL SYLLABLE THIEUTH E MIEUM - ,0xC5DC ,0xD15D //HANGUL SYLLABLE THIEUTH E PIEUP - ,0xC5DD ,0xD15F //HANGUL SYLLABLE THIEUTH E SIOS - ,0xC5DE ,0xD161 //HANGUL SYLLABLE THIEUTH E IEUNG - ,0xC5DF ,0xD168 //HANGUL SYLLABLE THIEUTH YEO - ,0xC5E0 ,0xD16C //HANGUL SYLLABLE THIEUTH YEO NIEUN - ,0xC5E1 ,0xD17C //HANGUL SYLLABLE THIEUTH YEO SSANGSIOS - ,0xC5E2 ,0xD184 //HANGUL SYLLABLE THIEUTH YE - ,0xC5E3 ,0xD188 //HANGUL SYLLABLE THIEUTH YE NIEUN - ,0xC5E4 ,0xD1A0 //HANGUL SYLLABLE THIEUTH O - ,0xC5E5 ,0xD1A1 //HANGUL SYLLABLE THIEUTH O KIYEOK - ,0xC5E6 ,0xD1A4 //HANGUL SYLLABLE THIEUTH O NIEUN - ,0xC5E7 ,0xD1A8 //HANGUL SYLLABLE THIEUTH O RIEUL - ,0xC5E8 ,0xD1B0 //HANGUL SYLLABLE THIEUTH O MIEUM - ,0xC5E9 ,0xD1B1 //HANGUL SYLLABLE THIEUTH O PIEUP - ,0xC5EA ,0xD1B3 //HANGUL SYLLABLE THIEUTH O SIOS - ,0xC5EB ,0xD1B5 //HANGUL SYLLABLE THIEUTH O IEUNG - ,0xC5EC ,0xD1BA //HANGUL SYLLABLE THIEUTH O PHIEUPH - ,0xC5ED ,0xD1BC //HANGUL SYLLABLE THIEUTH WA - ,0xC5EE ,0xD1C0 //HANGUL SYLLABLE THIEUTH WA NIEUN - ,0xC5EF ,0xD1D8 //HANGUL SYLLABLE THIEUTH WAE - ,0xC5F0 ,0xD1F4 //HANGUL SYLLABLE THIEUTH OE - ,0xC5F1 ,0xD1F8 //HANGUL SYLLABLE THIEUTH OE NIEUN - ,0xC5F2 ,0xD207 //HANGUL SYLLABLE THIEUTH OE SIOS - ,0xC5F3 ,0xD209 //HANGUL SYLLABLE THIEUTH OE IEUNG - ,0xC5F4 ,0xD210 //HANGUL SYLLABLE THIEUTH YO - ,0xC5F5 ,0xD22C //HANGUL SYLLABLE THIEUTH U - ,0xC5F6 ,0xD22D //HANGUL SYLLABLE THIEUTH U KIYEOK - ,0xC5F7 ,0xD230 //HANGUL SYLLABLE THIEUTH U NIEUN - ,0xC5F8 ,0xD234 //HANGUL SYLLABLE THIEUTH U RIEUL - ,0xC5F9 ,0xD23C //HANGUL SYLLABLE THIEUTH U MIEUM - ,0xC5FA ,0xD23D //HANGUL SYLLABLE THIEUTH U PIEUP - ,0xC5FB ,0xD23F //HANGUL SYLLABLE THIEUTH U SIOS - ,0xC5FC ,0xD241 //HANGUL SYLLABLE THIEUTH U IEUNG - ,0xC5FD ,0xD248 //HANGUL SYLLABLE THIEUTH WEO - ,0xC5FE ,0xD25C //HANGUL SYLLABLE THIEUTH WEO SSANGSIOS - ,0xC641 ,0xD78D //HANGUL SYLLABLE HIEUH I NIEUNCIEUC - ,0xC642 ,0xD78E //HANGUL SYLLABLE HIEUH I NIEUNHIEUH - ,0xC643 ,0xD78F //HANGUL SYLLABLE HIEUH I TIKEUT - ,0xC644 ,0xD791 //HANGUL SYLLABLE HIEUH I RIEULKIYEOK - ,0xC645 ,0xD792 //HANGUL SYLLABLE HIEUH I RIEULMIEUM - ,0xC646 ,0xD793 //HANGUL SYLLABLE HIEUH I RIEULPIEUP - ,0xC647 ,0xD794 //HANGUL SYLLABLE HIEUH I RIEULSIOS - ,0xC648 ,0xD795 //HANGUL SYLLABLE HIEUH I RIEULTHIEUTH - ,0xC649 ,0xD796 //HANGUL SYLLABLE HIEUH I RIEULPHIEUPH - ,0xC64A ,0xD797 //HANGUL SYLLABLE HIEUH I RIEULHIEUH - ,0xC64B ,0xD79A //HANGUL SYLLABLE HIEUH I PIEUPSIOS - ,0xC64C ,0xD79C //HANGUL SYLLABLE HIEUH I SSANGSIOS - ,0xC64D ,0xD79E //HANGUL SYLLABLE HIEUH I CIEUC - ,0xC64E ,0xD79F //HANGUL SYLLABLE HIEUH I CHIEUCH - ,0xC64F ,0xD7A0 //HANGUL SYLLABLE HIEUH I KHIEUKH - ,0xC650 ,0xD7A1 //HANGUL SYLLABLE HIEUH I THIEUTH - ,0xC651 ,0xD7A2 //HANGUL SYLLABLE HIEUH I PHIEUPH - ,0xC652 ,0xD7A3 //HANGUL SYLLABLE HIEUH I HIEUH - ,0xC6A1 ,0xD264 //HANGUL SYLLABLE THIEUTH WE - ,0xC6A2 ,0xD280 //HANGUL SYLLABLE THIEUTH WI - ,0xC6A3 ,0xD281 //HANGUL SYLLABLE THIEUTH WI KIYEOK - ,0xC6A4 ,0xD284 //HANGUL SYLLABLE THIEUTH WI NIEUN - ,0xC6A5 ,0xD288 //HANGUL SYLLABLE THIEUTH WI RIEUL - ,0xC6A6 ,0xD290 //HANGUL SYLLABLE THIEUTH WI MIEUM - ,0xC6A7 ,0xD291 //HANGUL SYLLABLE THIEUTH WI PIEUP - ,0xC6A8 ,0xD295 //HANGUL SYLLABLE THIEUTH WI IEUNG - ,0xC6A9 ,0xD29C //HANGUL SYLLABLE THIEUTH YU - ,0xC6AA ,0xD2A0 //HANGUL SYLLABLE THIEUTH YU NIEUN - ,0xC6AB ,0xD2A4 //HANGUL SYLLABLE THIEUTH YU RIEUL - ,0xC6AC ,0xD2AC //HANGUL SYLLABLE THIEUTH YU MIEUM - ,0xC6AD ,0xD2B1 //HANGUL SYLLABLE THIEUTH YU IEUNG - ,0xC6AE ,0xD2B8 //HANGUL SYLLABLE THIEUTH EU - ,0xC6AF ,0xD2B9 //HANGUL SYLLABLE THIEUTH EU KIYEOK - ,0xC6B0 ,0xD2BC //HANGUL SYLLABLE THIEUTH EU NIEUN - ,0xC6B1 ,0xD2BF //HANGUL SYLLABLE THIEUTH EU TIKEUT - ,0xC6B2 ,0xD2C0 //HANGUL SYLLABLE THIEUTH EU RIEUL - ,0xC6B3 ,0xD2C2 //HANGUL SYLLABLE THIEUTH EU RIEULMIEUM - ,0xC6B4 ,0xD2C8 //HANGUL SYLLABLE THIEUTH EU MIEUM - ,0xC6B5 ,0xD2C9 //HANGUL SYLLABLE THIEUTH EU PIEUP - ,0xC6B6 ,0xD2CB //HANGUL SYLLABLE THIEUTH EU SIOS - ,0xC6B7 ,0xD2D4 //HANGUL SYLLABLE THIEUTH YI - ,0xC6B8 ,0xD2D8 //HANGUL SYLLABLE THIEUTH YI NIEUN - ,0xC6B9 ,0xD2DC //HANGUL SYLLABLE THIEUTH YI RIEUL - ,0xC6BA ,0xD2E4 //HANGUL SYLLABLE THIEUTH YI MIEUM - ,0xC6BB ,0xD2E5 //HANGUL SYLLABLE THIEUTH YI PIEUP - ,0xC6BC ,0xD2F0 //HANGUL SYLLABLE THIEUTH I - ,0xC6BD ,0xD2F1 //HANGUL SYLLABLE THIEUTH I KIYEOK - ,0xC6BE ,0xD2F4 //HANGUL SYLLABLE THIEUTH I NIEUN - ,0xC6BF ,0xD2F8 //HANGUL SYLLABLE THIEUTH I RIEUL - ,0xC6C0 ,0xD300 //HANGUL SYLLABLE THIEUTH I MIEUM - ,0xC6C1 ,0xD301 //HANGUL SYLLABLE THIEUTH I PIEUP - ,0xC6C2 ,0xD303 //HANGUL SYLLABLE THIEUTH I SIOS - ,0xC6C3 ,0xD305 //HANGUL SYLLABLE THIEUTH I IEUNG - ,0xC6C4 ,0xD30C //HANGUL SYLLABLE PHIEUPH A - ,0xC6C5 ,0xD30D //HANGUL SYLLABLE PHIEUPH A KIYEOK - ,0xC6C6 ,0xD30E //HANGUL SYLLABLE PHIEUPH A SSANGKIYEOK - ,0xC6C7 ,0xD310 //HANGUL SYLLABLE PHIEUPH A NIEUN - ,0xC6C8 ,0xD314 //HANGUL SYLLABLE PHIEUPH A RIEUL - ,0xC6C9 ,0xD316 //HANGUL SYLLABLE PHIEUPH A RIEULMIEUM - ,0xC6CA ,0xD31C //HANGUL SYLLABLE PHIEUPH A MIEUM - ,0xC6CB ,0xD31D //HANGUL SYLLABLE PHIEUPH A PIEUP - ,0xC6CC ,0xD31F //HANGUL SYLLABLE PHIEUPH A SIOS - ,0xC6CD ,0xD320 //HANGUL SYLLABLE PHIEUPH A SSANGSIOS - ,0xC6CE ,0xD321 //HANGUL SYLLABLE PHIEUPH A IEUNG - ,0xC6CF ,0xD325 //HANGUL SYLLABLE PHIEUPH A THIEUTH - ,0xC6D0 ,0xD328 //HANGUL SYLLABLE PHIEUPH AE - ,0xC6D1 ,0xD329 //HANGUL SYLLABLE PHIEUPH AE KIYEOK - ,0xC6D2 ,0xD32C //HANGUL SYLLABLE PHIEUPH AE NIEUN - ,0xC6D3 ,0xD330 //HANGUL SYLLABLE PHIEUPH AE RIEUL - ,0xC6D4 ,0xD338 //HANGUL SYLLABLE PHIEUPH AE MIEUM - ,0xC6D5 ,0xD339 //HANGUL SYLLABLE PHIEUPH AE PIEUP - ,0xC6D6 ,0xD33B //HANGUL SYLLABLE PHIEUPH AE SIOS - ,0xC6D7 ,0xD33C //HANGUL SYLLABLE PHIEUPH AE SSANGSIOS - ,0xC6D8 ,0xD33D //HANGUL SYLLABLE PHIEUPH AE IEUNG - ,0xC6D9 ,0xD344 //HANGUL SYLLABLE PHIEUPH YA - ,0xC6DA ,0xD345 //HANGUL SYLLABLE PHIEUPH YA KIYEOK - ,0xC6DB ,0xD37C //HANGUL SYLLABLE PHIEUPH EO - ,0xC6DC ,0xD37D //HANGUL SYLLABLE PHIEUPH EO KIYEOK - ,0xC6DD ,0xD380 //HANGUL SYLLABLE PHIEUPH EO NIEUN - ,0xC6DE ,0xD384 //HANGUL SYLLABLE PHIEUPH EO RIEUL - ,0xC6DF ,0xD38C //HANGUL SYLLABLE PHIEUPH EO MIEUM - ,0xC6E0 ,0xD38D //HANGUL SYLLABLE PHIEUPH EO PIEUP - ,0xC6E1 ,0xD38F //HANGUL SYLLABLE PHIEUPH EO SIOS - ,0xC6E2 ,0xD390 //HANGUL SYLLABLE PHIEUPH EO SSANGSIOS - ,0xC6E3 ,0xD391 //HANGUL SYLLABLE PHIEUPH EO IEUNG - ,0xC6E4 ,0xD398 //HANGUL SYLLABLE PHIEUPH E - ,0xC6E5 ,0xD399 //HANGUL SYLLABLE PHIEUPH E KIYEOK - ,0xC6E6 ,0xD39C //HANGUL SYLLABLE PHIEUPH E NIEUN - ,0xC6E7 ,0xD3A0 //HANGUL SYLLABLE PHIEUPH E RIEUL - ,0xC6E8 ,0xD3A8 //HANGUL SYLLABLE PHIEUPH E MIEUM - ,0xC6E9 ,0xD3A9 //HANGUL SYLLABLE PHIEUPH E PIEUP - ,0xC6EA ,0xD3AB //HANGUL SYLLABLE PHIEUPH E SIOS - ,0xC6EB ,0xD3AD //HANGUL SYLLABLE PHIEUPH E IEUNG - ,0xC6EC ,0xD3B4 //HANGUL SYLLABLE PHIEUPH YEO - ,0xC6ED ,0xD3B8 //HANGUL SYLLABLE PHIEUPH YEO NIEUN - ,0xC6EE ,0xD3BC //HANGUL SYLLABLE PHIEUPH YEO RIEUL - ,0xC6EF ,0xD3C4 //HANGUL SYLLABLE PHIEUPH YEO MIEUM - ,0xC6F0 ,0xD3C5 //HANGUL SYLLABLE PHIEUPH YEO PIEUP - ,0xC6F1 ,0xD3C8 //HANGUL SYLLABLE PHIEUPH YEO SSANGSIOS - ,0xC6F2 ,0xD3C9 //HANGUL SYLLABLE PHIEUPH YEO IEUNG - ,0xC6F3 ,0xD3D0 //HANGUL SYLLABLE PHIEUPH YE - ,0xC6F4 ,0xD3D8 //HANGUL SYLLABLE PHIEUPH YE RIEUL - ,0xC6F5 ,0xD3E1 //HANGUL SYLLABLE PHIEUPH YE PIEUP - ,0xC6F6 ,0xD3E3 //HANGUL SYLLABLE PHIEUPH YE SIOS - ,0xC6F7 ,0xD3EC //HANGUL SYLLABLE PHIEUPH O - ,0xC6F8 ,0xD3ED //HANGUL SYLLABLE PHIEUPH O KIYEOK - ,0xC6F9 ,0xD3F0 //HANGUL SYLLABLE PHIEUPH O NIEUN - ,0xC6FA ,0xD3F4 //HANGUL SYLLABLE PHIEUPH O RIEUL - ,0xC6FB ,0xD3FC //HANGUL SYLLABLE PHIEUPH O MIEUM - ,0xC6FC ,0xD3FD //HANGUL SYLLABLE PHIEUPH O PIEUP - ,0xC6FD ,0xD3FF //HANGUL SYLLABLE PHIEUPH O SIOS - ,0xC6FE ,0xD401 //HANGUL SYLLABLE PHIEUPH O IEUNG - ,0xC7A1 ,0xD408 //HANGUL SYLLABLE PHIEUPH WA - ,0xC7A2 ,0xD41D //HANGUL SYLLABLE PHIEUPH WA IEUNG - ,0xC7A3 ,0xD440 //HANGUL SYLLABLE PHIEUPH OE - ,0xC7A4 ,0xD444 //HANGUL SYLLABLE PHIEUPH OE NIEUN - ,0xC7A5 ,0xD45C //HANGUL SYLLABLE PHIEUPH YO - ,0xC7A6 ,0xD460 //HANGUL SYLLABLE PHIEUPH YO NIEUN - ,0xC7A7 ,0xD464 //HANGUL SYLLABLE PHIEUPH YO RIEUL - ,0xC7A8 ,0xD46D //HANGUL SYLLABLE PHIEUPH YO PIEUP - ,0xC7A9 ,0xD46F //HANGUL SYLLABLE PHIEUPH YO SIOS - ,0xC7AA ,0xD478 //HANGUL SYLLABLE PHIEUPH U - ,0xC7AB ,0xD479 //HANGUL SYLLABLE PHIEUPH U KIYEOK - ,0xC7AC ,0xD47C //HANGUL SYLLABLE PHIEUPH U NIEUN - ,0xC7AD ,0xD47F //HANGUL SYLLABLE PHIEUPH U TIKEUT - ,0xC7AE ,0xD480 //HANGUL SYLLABLE PHIEUPH U RIEUL - ,0xC7AF ,0xD482 //HANGUL SYLLABLE PHIEUPH U RIEULMIEUM - ,0xC7B0 ,0xD488 //HANGUL SYLLABLE PHIEUPH U MIEUM - ,0xC7B1 ,0xD489 //HANGUL SYLLABLE PHIEUPH U PIEUP - ,0xC7B2 ,0xD48B //HANGUL SYLLABLE PHIEUPH U SIOS - ,0xC7B3 ,0xD48D //HANGUL SYLLABLE PHIEUPH U IEUNG - ,0xC7B4 ,0xD494 //HANGUL SYLLABLE PHIEUPH WEO - ,0xC7B5 ,0xD4A9 //HANGUL SYLLABLE PHIEUPH WEO IEUNG - ,0xC7B6 ,0xD4CC //HANGUL SYLLABLE PHIEUPH WI - ,0xC7B7 ,0xD4D0 //HANGUL SYLLABLE PHIEUPH WI NIEUN - ,0xC7B8 ,0xD4D4 //HANGUL SYLLABLE PHIEUPH WI RIEUL - ,0xC7B9 ,0xD4DC //HANGUL SYLLABLE PHIEUPH WI MIEUM - ,0xC7BA ,0xD4DF //HANGUL SYLLABLE PHIEUPH WI SIOS - ,0xC7BB ,0xD4E8 //HANGUL SYLLABLE PHIEUPH YU - ,0xC7BC ,0xD4EC //HANGUL SYLLABLE PHIEUPH YU NIEUN - ,0xC7BD ,0xD4F0 //HANGUL SYLLABLE PHIEUPH YU RIEUL - ,0xC7BE ,0xD4F8 //HANGUL SYLLABLE PHIEUPH YU MIEUM - ,0xC7BF ,0xD4FB //HANGUL SYLLABLE PHIEUPH YU SIOS - ,0xC7C0 ,0xD4FD //HANGUL SYLLABLE PHIEUPH YU IEUNG - ,0xC7C1 ,0xD504 //HANGUL SYLLABLE PHIEUPH EU - ,0xC7C2 ,0xD508 //HANGUL SYLLABLE PHIEUPH EU NIEUN - ,0xC7C3 ,0xD50C //HANGUL SYLLABLE PHIEUPH EU RIEUL - ,0xC7C4 ,0xD514 //HANGUL SYLLABLE PHIEUPH EU MIEUM - ,0xC7C5 ,0xD515 //HANGUL SYLLABLE PHIEUPH EU PIEUP - ,0xC7C6 ,0xD517 //HANGUL SYLLABLE PHIEUPH EU SIOS - ,0xC7C7 ,0xD53C //HANGUL SYLLABLE PHIEUPH I - ,0xC7C8 ,0xD53D //HANGUL SYLLABLE PHIEUPH I KIYEOK - ,0xC7C9 ,0xD540 //HANGUL SYLLABLE PHIEUPH I NIEUN - ,0xC7CA ,0xD544 //HANGUL SYLLABLE PHIEUPH I RIEUL - ,0xC7CB ,0xD54C //HANGUL SYLLABLE PHIEUPH I MIEUM - ,0xC7CC ,0xD54D //HANGUL SYLLABLE PHIEUPH I PIEUP - ,0xC7CD ,0xD54F //HANGUL SYLLABLE PHIEUPH I SIOS - ,0xC7CE ,0xD551 //HANGUL SYLLABLE PHIEUPH I IEUNG - ,0xC7CF ,0xD558 //HANGUL SYLLABLE HIEUH A - ,0xC7D0 ,0xD559 //HANGUL SYLLABLE HIEUH A KIYEOK - ,0xC7D1 ,0xD55C //HANGUL SYLLABLE HIEUH A NIEUN - ,0xC7D2 ,0xD560 //HANGUL SYLLABLE HIEUH A RIEUL - ,0xC7D3 ,0xD565 //HANGUL SYLLABLE HIEUH A RIEULTHIEUTH - ,0xC7D4 ,0xD568 //HANGUL SYLLABLE HIEUH A MIEUM - ,0xC7D5 ,0xD569 //HANGUL SYLLABLE HIEUH A PIEUP - ,0xC7D6 ,0xD56B //HANGUL SYLLABLE HIEUH A SIOS - ,0xC7D7 ,0xD56D //HANGUL SYLLABLE HIEUH A IEUNG - ,0xC7D8 ,0xD574 //HANGUL SYLLABLE HIEUH AE - ,0xC7D9 ,0xD575 //HANGUL SYLLABLE HIEUH AE KIYEOK - ,0xC7DA ,0xD578 //HANGUL SYLLABLE HIEUH AE NIEUN - ,0xC7DB ,0xD57C //HANGUL SYLLABLE HIEUH AE RIEUL - ,0xC7DC ,0xD584 //HANGUL SYLLABLE HIEUH AE MIEUM - ,0xC7DD ,0xD585 //HANGUL SYLLABLE HIEUH AE PIEUP - ,0xC7DE ,0xD587 //HANGUL SYLLABLE HIEUH AE SIOS - ,0xC7DF ,0xD588 //HANGUL SYLLABLE HIEUH AE SSANGSIOS - ,0xC7E0 ,0xD589 //HANGUL SYLLABLE HIEUH AE IEUNG - ,0xC7E1 ,0xD590 //HANGUL SYLLABLE HIEUH YA - ,0xC7E2 ,0xD5A5 //HANGUL SYLLABLE HIEUH YA IEUNG - ,0xC7E3 ,0xD5C8 //HANGUL SYLLABLE HIEUH EO - ,0xC7E4 ,0xD5C9 //HANGUL SYLLABLE HIEUH EO KIYEOK - ,0xC7E5 ,0xD5CC //HANGUL SYLLABLE HIEUH EO NIEUN - ,0xC7E6 ,0xD5D0 //HANGUL SYLLABLE HIEUH EO RIEUL - ,0xC7E7 ,0xD5D2 //HANGUL SYLLABLE HIEUH EO RIEULMIEUM - ,0xC7E8 ,0xD5D8 //HANGUL SYLLABLE HIEUH EO MIEUM - ,0xC7E9 ,0xD5D9 //HANGUL SYLLABLE HIEUH EO PIEUP - ,0xC7EA ,0xD5DB //HANGUL SYLLABLE HIEUH EO SIOS - ,0xC7EB ,0xD5DD //HANGUL SYLLABLE HIEUH EO IEUNG - ,0xC7EC ,0xD5E4 //HANGUL SYLLABLE HIEUH E - ,0xC7ED ,0xD5E5 //HANGUL SYLLABLE HIEUH E KIYEOK - ,0xC7EE ,0xD5E8 //HANGUL SYLLABLE HIEUH E NIEUN - ,0xC7EF ,0xD5EC //HANGUL SYLLABLE HIEUH E RIEUL - ,0xC7F0 ,0xD5F4 //HANGUL SYLLABLE HIEUH E MIEUM - ,0xC7F1 ,0xD5F5 //HANGUL SYLLABLE HIEUH E PIEUP - ,0xC7F2 ,0xD5F7 //HANGUL SYLLABLE HIEUH E SIOS - ,0xC7F3 ,0xD5F9 //HANGUL SYLLABLE HIEUH E IEUNG - ,0xC7F4 ,0xD600 //HANGUL SYLLABLE HIEUH YEO - ,0xC7F5 ,0xD601 //HANGUL SYLLABLE HIEUH YEO KIYEOK - ,0xC7F6 ,0xD604 //HANGUL SYLLABLE HIEUH YEO NIEUN - ,0xC7F7 ,0xD608 //HANGUL SYLLABLE HIEUH YEO RIEUL - ,0xC7F8 ,0xD610 //HANGUL SYLLABLE HIEUH YEO MIEUM - ,0xC7F9 ,0xD611 //HANGUL SYLLABLE HIEUH YEO PIEUP - ,0xC7FA ,0xD613 //HANGUL SYLLABLE HIEUH YEO SIOS - ,0xC7FB ,0xD614 //HANGUL SYLLABLE HIEUH YEO SSANGSIOS - ,0xC7FC ,0xD615 //HANGUL SYLLABLE HIEUH YEO IEUNG - ,0xC7FD ,0xD61C //HANGUL SYLLABLE HIEUH YE - ,0xC7FE ,0xD620 //HANGUL SYLLABLE HIEUH YE NIEUN - ,0xC8A1 ,0xD624 //HANGUL SYLLABLE HIEUH YE RIEUL - ,0xC8A2 ,0xD62D //HANGUL SYLLABLE HIEUH YE PIEUP - ,0xC8A3 ,0xD638 //HANGUL SYLLABLE HIEUH O - ,0xC8A4 ,0xD639 //HANGUL SYLLABLE HIEUH O KIYEOK - ,0xC8A5 ,0xD63C //HANGUL SYLLABLE HIEUH O NIEUN - ,0xC8A6 ,0xD640 //HANGUL SYLLABLE HIEUH O RIEUL - ,0xC8A7 ,0xD645 //HANGUL SYLLABLE HIEUH O RIEULTHIEUTH - ,0xC8A8 ,0xD648 //HANGUL SYLLABLE HIEUH O MIEUM - ,0xC8A9 ,0xD649 //HANGUL SYLLABLE HIEUH O PIEUP - ,0xC8AA ,0xD64B //HANGUL SYLLABLE HIEUH O SIOS - ,0xC8AB ,0xD64D //HANGUL SYLLABLE HIEUH O IEUNG - ,0xC8AC ,0xD651 //HANGUL SYLLABLE HIEUH O THIEUTH - ,0xC8AD ,0xD654 //HANGUL SYLLABLE HIEUH WA - ,0xC8AE ,0xD655 //HANGUL SYLLABLE HIEUH WA KIYEOK - ,0xC8AF ,0xD658 //HANGUL SYLLABLE HIEUH WA NIEUN - ,0xC8B0 ,0xD65C //HANGUL SYLLABLE HIEUH WA RIEUL - ,0xC8B1 ,0xD667 //HANGUL SYLLABLE HIEUH WA SIOS - ,0xC8B2 ,0xD669 //HANGUL SYLLABLE HIEUH WA IEUNG - ,0xC8B3 ,0xD670 //HANGUL SYLLABLE HIEUH WAE - ,0xC8B4 ,0xD671 //HANGUL SYLLABLE HIEUH WAE KIYEOK - ,0xC8B5 ,0xD674 //HANGUL SYLLABLE HIEUH WAE NIEUN - ,0xC8B6 ,0xD683 //HANGUL SYLLABLE HIEUH WAE SIOS - ,0xC8B7 ,0xD685 //HANGUL SYLLABLE HIEUH WAE IEUNG - ,0xC8B8 ,0xD68C //HANGUL SYLLABLE HIEUH OE - ,0xC8B9 ,0xD68D //HANGUL SYLLABLE HIEUH OE KIYEOK - ,0xC8BA ,0xD690 //HANGUL SYLLABLE HIEUH OE NIEUN - ,0xC8BB ,0xD694 //HANGUL SYLLABLE HIEUH OE RIEUL - ,0xC8BC ,0xD69D //HANGUL SYLLABLE HIEUH OE PIEUP - ,0xC8BD ,0xD69F //HANGUL SYLLABLE HIEUH OE SIOS - ,0xC8BE ,0xD6A1 //HANGUL SYLLABLE HIEUH OE IEUNG - ,0xC8BF ,0xD6A8 //HANGUL SYLLABLE HIEUH YO - ,0xC8C0 ,0xD6AC //HANGUL SYLLABLE HIEUH YO NIEUN - ,0xC8C1 ,0xD6B0 //HANGUL SYLLABLE HIEUH YO RIEUL - ,0xC8C2 ,0xD6B9 //HANGUL SYLLABLE HIEUH YO PIEUP - ,0xC8C3 ,0xD6BB //HANGUL SYLLABLE HIEUH YO SIOS - ,0xC8C4 ,0xD6C4 //HANGUL SYLLABLE HIEUH U - ,0xC8C5 ,0xD6C5 //HANGUL SYLLABLE HIEUH U KIYEOK - ,0xC8C6 ,0xD6C8 //HANGUL SYLLABLE HIEUH U NIEUN - ,0xC8C7 ,0xD6CC //HANGUL SYLLABLE HIEUH U RIEUL - ,0xC8C8 ,0xD6D1 //HANGUL SYLLABLE HIEUH U RIEULTHIEUTH - ,0xC8C9 ,0xD6D4 //HANGUL SYLLABLE HIEUH U MIEUM - ,0xC8CA ,0xD6D7 //HANGUL SYLLABLE HIEUH U SIOS - ,0xC8CB ,0xD6D9 //HANGUL SYLLABLE HIEUH U IEUNG - ,0xC8CC ,0xD6E0 //HANGUL SYLLABLE HIEUH WEO - ,0xC8CD ,0xD6E4 //HANGUL SYLLABLE HIEUH WEO NIEUN - ,0xC8CE ,0xD6E8 //HANGUL SYLLABLE HIEUH WEO RIEUL - ,0xC8CF ,0xD6F0 //HANGUL SYLLABLE HIEUH WEO MIEUM - ,0xC8D0 ,0xD6F5 //HANGUL SYLLABLE HIEUH WEO IEUNG - ,0xC8D1 ,0xD6FC //HANGUL SYLLABLE HIEUH WE - ,0xC8D2 ,0xD6FD //HANGUL SYLLABLE HIEUH WE KIYEOK - ,0xC8D3 ,0xD700 //HANGUL SYLLABLE HIEUH WE NIEUN - ,0xC8D4 ,0xD704 //HANGUL SYLLABLE HIEUH WE RIEUL - ,0xC8D5 ,0xD711 //HANGUL SYLLABLE HIEUH WE IEUNG - ,0xC8D6 ,0xD718 //HANGUL SYLLABLE HIEUH WI - ,0xC8D7 ,0xD719 //HANGUL SYLLABLE HIEUH WI KIYEOK - ,0xC8D8 ,0xD71C //HANGUL SYLLABLE HIEUH WI NIEUN - ,0xC8D9 ,0xD720 //HANGUL SYLLABLE HIEUH WI RIEUL - ,0xC8DA ,0xD728 //HANGUL SYLLABLE HIEUH WI MIEUM - ,0xC8DB ,0xD729 //HANGUL SYLLABLE HIEUH WI PIEUP - ,0xC8DC ,0xD72B //HANGUL SYLLABLE HIEUH WI SIOS - ,0xC8DD ,0xD72D //HANGUL SYLLABLE HIEUH WI IEUNG - ,0xC8DE ,0xD734 //HANGUL SYLLABLE HIEUH YU - ,0xC8DF ,0xD735 //HANGUL SYLLABLE HIEUH YU KIYEOK - ,0xC8E0 ,0xD738 //HANGUL SYLLABLE HIEUH YU NIEUN - ,0xC8E1 ,0xD73C //HANGUL SYLLABLE HIEUH YU RIEUL - ,0xC8E2 ,0xD744 //HANGUL SYLLABLE HIEUH YU MIEUM - ,0xC8E3 ,0xD747 //HANGUL SYLLABLE HIEUH YU SIOS - ,0xC8E4 ,0xD749 //HANGUL SYLLABLE HIEUH YU IEUNG - ,0xC8E5 ,0xD750 //HANGUL SYLLABLE HIEUH EU - ,0xC8E6 ,0xD751 //HANGUL SYLLABLE HIEUH EU KIYEOK - ,0xC8E7 ,0xD754 //HANGUL SYLLABLE HIEUH EU NIEUN - ,0xC8E8 ,0xD756 //HANGUL SYLLABLE HIEUH EU NIEUNHIEUH - ,0xC8E9 ,0xD757 //HANGUL SYLLABLE HIEUH EU TIKEUT - ,0xC8EA ,0xD758 //HANGUL SYLLABLE HIEUH EU RIEUL - ,0xC8EB ,0xD759 //HANGUL SYLLABLE HIEUH EU RIEULKIYEOK - ,0xC8EC ,0xD760 //HANGUL SYLLABLE HIEUH EU MIEUM - ,0xC8ED ,0xD761 //HANGUL SYLLABLE HIEUH EU PIEUP - ,0xC8EE ,0xD763 //HANGUL SYLLABLE HIEUH EU SIOS - ,0xC8EF ,0xD765 //HANGUL SYLLABLE HIEUH EU IEUNG - ,0xC8F0 ,0xD769 //HANGUL SYLLABLE HIEUH EU THIEUTH - ,0xC8F1 ,0xD76C //HANGUL SYLLABLE HIEUH YI - ,0xC8F2 ,0xD770 //HANGUL SYLLABLE HIEUH YI NIEUN - ,0xC8F3 ,0xD774 //HANGUL SYLLABLE HIEUH YI RIEUL - ,0xC8F4 ,0xD77C //HANGUL SYLLABLE HIEUH YI MIEUM - ,0xC8F5 ,0xD77D //HANGUL SYLLABLE HIEUH YI PIEUP - ,0xC8F6 ,0xD781 //HANGUL SYLLABLE HIEUH YI IEUNG - ,0xC8F7 ,0xD788 //HANGUL SYLLABLE HIEUH I - ,0xC8F8 ,0xD789 //HANGUL SYLLABLE HIEUH I KIYEOK - ,0xC8F9 ,0xD78C //HANGUL SYLLABLE HIEUH I NIEUN - ,0xC8FA ,0xD790 //HANGUL SYLLABLE HIEUH I RIEUL - ,0xC8FB ,0xD798 //HANGUL SYLLABLE HIEUH I MIEUM - ,0xC8FC ,0xD799 //HANGUL SYLLABLE HIEUH I PIEUP - ,0xC8FD ,0xD79B //HANGUL SYLLABLE HIEUH I SIOS - ,0xC8FE ,0xD79D //HANGUL SYLLABLE HIEUH I IEUNG - ,0xCAA1 ,0x4F3D //CJK UNIFIED IDEOGRAPH - ,0xCAA2 ,0x4F73 //CJK UNIFIED IDEOGRAPH - ,0xCAA3 ,0x5047 //CJK UNIFIED IDEOGRAPH - ,0xCAA4 ,0x50F9 //CJK UNIFIED IDEOGRAPH - ,0xCAA5 ,0x52A0 //CJK UNIFIED IDEOGRAPH - ,0xCAA6 ,0x53EF //CJK UNIFIED IDEOGRAPH - ,0xCAA7 ,0x5475 //CJK UNIFIED IDEOGRAPH - ,0xCAA8 ,0x54E5 //CJK UNIFIED IDEOGRAPH - ,0xCAA9 ,0x5609 //CJK UNIFIED IDEOGRAPH - ,0xCAAA ,0x5AC1 //CJK UNIFIED IDEOGRAPH - ,0xCAAB ,0x5BB6 //CJK UNIFIED IDEOGRAPH - ,0xCAAC ,0x6687 //CJK UNIFIED IDEOGRAPH - ,0xCAAD ,0x67B6 //CJK UNIFIED IDEOGRAPH - ,0xCAAE ,0x67B7 //CJK UNIFIED IDEOGRAPH - ,0xCAAF ,0x67EF //CJK UNIFIED IDEOGRAPH - ,0xCAB0 ,0x6B4C //CJK UNIFIED IDEOGRAPH - ,0xCAB1 ,0x73C2 //CJK UNIFIED IDEOGRAPH - ,0xCAB2 ,0x75C2 //CJK UNIFIED IDEOGRAPH - ,0xCAB3 ,0x7A3C //CJK UNIFIED IDEOGRAPH - ,0xCAB4 ,0x82DB //CJK UNIFIED IDEOGRAPH - ,0xCAB5 ,0x8304 //CJK UNIFIED IDEOGRAPH - ,0xCAB6 ,0x8857 //CJK UNIFIED IDEOGRAPH - ,0xCAB7 ,0x8888 //CJK UNIFIED IDEOGRAPH - ,0xCAB8 ,0x8A36 //CJK UNIFIED IDEOGRAPH - ,0xCAB9 ,0x8CC8 //CJK UNIFIED IDEOGRAPH - ,0xCABA ,0x8DCF //CJK UNIFIED IDEOGRAPH - ,0xCABB ,0x8EFB //CJK UNIFIED IDEOGRAPH - ,0xCABC ,0x8FE6 //CJK UNIFIED IDEOGRAPH - ,0xCABD ,0x99D5 //CJK UNIFIED IDEOGRAPH - ,0xCABE ,0x523B //CJK UNIFIED IDEOGRAPH - ,0xCABF ,0x5374 //CJK UNIFIED IDEOGRAPH - ,0xCAC0 ,0x5404 //CJK UNIFIED IDEOGRAPH - ,0xCAC1 ,0x606A //CJK UNIFIED IDEOGRAPH - ,0xCAC2 ,0x6164 //CJK UNIFIED IDEOGRAPH - ,0xCAC3 ,0x6BBC //CJK UNIFIED IDEOGRAPH - ,0xCAC4 ,0x73CF //CJK UNIFIED IDEOGRAPH - ,0xCAC5 ,0x811A //CJK UNIFIED IDEOGRAPH - ,0xCAC6 ,0x89BA //CJK UNIFIED IDEOGRAPH - ,0xCAC7 ,0x89D2 //CJK UNIFIED IDEOGRAPH - ,0xCAC8 ,0x95A3 //CJK UNIFIED IDEOGRAPH - ,0xCAC9 ,0x4F83 //CJK UNIFIED IDEOGRAPH - ,0xCACA ,0x520A //CJK UNIFIED IDEOGRAPH - ,0xCACB ,0x58BE //CJK UNIFIED IDEOGRAPH - ,0xCACC ,0x5978 //CJK UNIFIED IDEOGRAPH - ,0xCACD ,0x59E6 //CJK UNIFIED IDEOGRAPH - ,0xCACE ,0x5E72 //CJK UNIFIED IDEOGRAPH - ,0xCACF ,0x5E79 //CJK UNIFIED IDEOGRAPH - ,0xCAD0 ,0x61C7 //CJK UNIFIED IDEOGRAPH - ,0xCAD1 ,0x63C0 //CJK UNIFIED IDEOGRAPH - ,0xCAD2 ,0x6746 //CJK UNIFIED IDEOGRAPH - ,0xCAD3 ,0x67EC //CJK UNIFIED IDEOGRAPH - ,0xCAD4 ,0x687F //CJK UNIFIED IDEOGRAPH - ,0xCAD5 ,0x6F97 //CJK UNIFIED IDEOGRAPH - ,0xCAD6 ,0x764E //CJK UNIFIED IDEOGRAPH - ,0xCAD7 ,0x770B //CJK UNIFIED IDEOGRAPH - ,0xCAD8 ,0x78F5 //CJK UNIFIED IDEOGRAPH - ,0xCAD9 ,0x7A08 //CJK UNIFIED IDEOGRAPH - ,0xCADA ,0x7AFF //CJK UNIFIED IDEOGRAPH - ,0xCADB ,0x7C21 //CJK UNIFIED IDEOGRAPH - ,0xCADC ,0x809D //CJK UNIFIED IDEOGRAPH - ,0xCADD ,0x826E //CJK UNIFIED IDEOGRAPH - ,0xCADE ,0x8271 //CJK UNIFIED IDEOGRAPH - ,0xCADF ,0x8AEB //CJK UNIFIED IDEOGRAPH - ,0xCAE0 ,0x9593 //CJK UNIFIED IDEOGRAPH - ,0xCAE1 ,0x4E6B //CJK UNIFIED IDEOGRAPH - ,0xCAE2 ,0x559D //CJK UNIFIED IDEOGRAPH - ,0xCAE3 ,0x66F7 //CJK UNIFIED IDEOGRAPH - ,0xCAE4 ,0x6E34 //CJK UNIFIED IDEOGRAPH - ,0xCAE5 ,0x78A3 //CJK UNIFIED IDEOGRAPH - ,0xCAE6 ,0x7AED //CJK UNIFIED IDEOGRAPH - ,0xCAE7 ,0x845B //CJK UNIFIED IDEOGRAPH - ,0xCAE8 ,0x8910 //CJK UNIFIED IDEOGRAPH - ,0xCAE9 ,0x874E //CJK UNIFIED IDEOGRAPH - ,0xCAEA ,0x97A8 //CJK UNIFIED IDEOGRAPH - ,0xCAEB ,0x52D8 //CJK UNIFIED IDEOGRAPH - ,0xCAEC ,0x574E //CJK UNIFIED IDEOGRAPH - ,0xCAED ,0x582A //CJK UNIFIED IDEOGRAPH - ,0xCAEE ,0x5D4C //CJK UNIFIED IDEOGRAPH - ,0xCAEF ,0x611F //CJK UNIFIED IDEOGRAPH - ,0xCAF0 ,0x61BE //CJK UNIFIED IDEOGRAPH - ,0xCAF1 ,0x6221 //CJK UNIFIED IDEOGRAPH - ,0xCAF2 ,0x6562 //CJK UNIFIED IDEOGRAPH - ,0xCAF3 ,0x67D1 //CJK UNIFIED IDEOGRAPH - ,0xCAF4 ,0x6A44 //CJK UNIFIED IDEOGRAPH - ,0xCAF5 ,0x6E1B //CJK UNIFIED IDEOGRAPH - ,0xCAF6 ,0x7518 //CJK UNIFIED IDEOGRAPH - ,0xCAF7 ,0x75B3 //CJK UNIFIED IDEOGRAPH - ,0xCAF8 ,0x76E3 //CJK UNIFIED IDEOGRAPH - ,0xCAF9 ,0x77B0 //CJK UNIFIED IDEOGRAPH - ,0xCAFA ,0x7D3A //CJK UNIFIED IDEOGRAPH - ,0xCAFB ,0x90AF //CJK UNIFIED IDEOGRAPH - ,0xCAFC ,0x9451 //CJK UNIFIED IDEOGRAPH - ,0xCAFD ,0x9452 //CJK UNIFIED IDEOGRAPH - ,0xCAFE ,0x9F95 //CJK UNIFIED IDEOGRAPH - ,0xCBA1 ,0x5323 //CJK UNIFIED IDEOGRAPH - ,0xCBA2 ,0x5CAC //CJK UNIFIED IDEOGRAPH - ,0xCBA3 ,0x7532 //CJK UNIFIED IDEOGRAPH - ,0xCBA4 ,0x80DB //CJK UNIFIED IDEOGRAPH - ,0xCBA5 ,0x9240 //CJK UNIFIED IDEOGRAPH - ,0xCBA6 ,0x9598 //CJK UNIFIED IDEOGRAPH - ,0xCBA7 ,0x525B //CJK UNIFIED IDEOGRAPH - ,0xCBA8 ,0x5808 //CJK UNIFIED IDEOGRAPH - ,0xCBA9 ,0x59DC //CJK UNIFIED IDEOGRAPH - ,0xCBAA ,0x5CA1 //CJK UNIFIED IDEOGRAPH - ,0xCBAB ,0x5D17 //CJK UNIFIED IDEOGRAPH - ,0xCBAC ,0x5EB7 //CJK UNIFIED IDEOGRAPH - ,0xCBAD ,0x5F3A //CJK UNIFIED IDEOGRAPH - ,0xCBAE ,0x5F4A //CJK UNIFIED IDEOGRAPH - ,0xCBAF ,0x6177 //CJK UNIFIED IDEOGRAPH - ,0xCBB0 ,0x6C5F //CJK UNIFIED IDEOGRAPH - ,0xCBB1 ,0x757A //CJK UNIFIED IDEOGRAPH - ,0xCBB2 ,0x7586 //CJK UNIFIED IDEOGRAPH - ,0xCBB3 ,0x7CE0 //CJK UNIFIED IDEOGRAPH - ,0xCBB4 ,0x7D73 //CJK UNIFIED IDEOGRAPH - ,0xCBB5 ,0x7DB1 //CJK UNIFIED IDEOGRAPH - ,0xCBB6 ,0x7F8C //CJK UNIFIED IDEOGRAPH - ,0xCBB7 ,0x8154 //CJK UNIFIED IDEOGRAPH - ,0xCBB8 ,0x8221 //CJK UNIFIED IDEOGRAPH - ,0xCBB9 ,0x8591 //CJK UNIFIED IDEOGRAPH - ,0xCBBA ,0x8941 //CJK UNIFIED IDEOGRAPH - ,0xCBBB ,0x8B1B //CJK UNIFIED IDEOGRAPH - ,0xCBBC ,0x92FC //CJK UNIFIED IDEOGRAPH - ,0xCBBD ,0x964D //CJK UNIFIED IDEOGRAPH - ,0xCBBE ,0x9C47 //CJK UNIFIED IDEOGRAPH - ,0xCBBF ,0x4ECB //CJK UNIFIED IDEOGRAPH - ,0xCBC0 ,0x4EF7 //CJK UNIFIED IDEOGRAPH - ,0xCBC1 ,0x500B //CJK UNIFIED IDEOGRAPH - ,0xCBC2 ,0x51F1 //CJK UNIFIED IDEOGRAPH - ,0xCBC3 ,0x584F //CJK UNIFIED IDEOGRAPH - ,0xCBC4 ,0x6137 //CJK UNIFIED IDEOGRAPH - ,0xCBC5 ,0x613E //CJK UNIFIED IDEOGRAPH - ,0xCBC6 ,0x6168 //CJK UNIFIED IDEOGRAPH - ,0xCBC7 ,0x6539 //CJK UNIFIED IDEOGRAPH - ,0xCBC8 ,0x69EA //CJK UNIFIED IDEOGRAPH - ,0xCBC9 ,0x6F11 //CJK UNIFIED IDEOGRAPH - ,0xCBCA ,0x75A5 //CJK UNIFIED IDEOGRAPH - ,0xCBCB ,0x7686 //CJK UNIFIED IDEOGRAPH - ,0xCBCC ,0x76D6 //CJK UNIFIED IDEOGRAPH - ,0xCBCD ,0x7B87 //CJK UNIFIED IDEOGRAPH - ,0xCBCE ,0x82A5 //CJK UNIFIED IDEOGRAPH - ,0xCBCF ,0x84CB //CJK UNIFIED IDEOGRAPH - ,0xCBD0 ,0xF900 //CJK COMPATIBILITY IDEOGRAPH - ,0xCBD1 ,0x93A7 //CJK UNIFIED IDEOGRAPH - ,0xCBD2 ,0x958B //CJK UNIFIED IDEOGRAPH - ,0xCBD3 ,0x5580 //CJK UNIFIED IDEOGRAPH - ,0xCBD4 ,0x5BA2 //CJK UNIFIED IDEOGRAPH - ,0xCBD5 ,0x5751 //CJK UNIFIED IDEOGRAPH - ,0xCBD6 ,0xF901 //CJK COMPATIBILITY IDEOGRAPH - ,0xCBD7 ,0x7CB3 //CJK UNIFIED IDEOGRAPH - ,0xCBD8 ,0x7FB9 //CJK UNIFIED IDEOGRAPH - ,0xCBD9 ,0x91B5 //CJK UNIFIED IDEOGRAPH - ,0xCBDA ,0x5028 //CJK UNIFIED IDEOGRAPH - ,0xCBDB ,0x53BB //CJK UNIFIED IDEOGRAPH - ,0xCBDC ,0x5C45 //CJK UNIFIED IDEOGRAPH - ,0xCBDD ,0x5DE8 //CJK UNIFIED IDEOGRAPH - ,0xCBDE ,0x62D2 //CJK UNIFIED IDEOGRAPH - ,0xCBDF ,0x636E //CJK UNIFIED IDEOGRAPH - ,0xCBE0 ,0x64DA //CJK UNIFIED IDEOGRAPH - ,0xCBE1 ,0x64E7 //CJK UNIFIED IDEOGRAPH - ,0xCBE2 ,0x6E20 //CJK UNIFIED IDEOGRAPH - ,0xCBE3 ,0x70AC //CJK UNIFIED IDEOGRAPH - ,0xCBE4 ,0x795B //CJK UNIFIED IDEOGRAPH - ,0xCBE5 ,0x8DDD //CJK UNIFIED IDEOGRAPH - ,0xCBE6 ,0x8E1E //CJK UNIFIED IDEOGRAPH - ,0xCBE7 ,0xF902 //CJK COMPATIBILITY IDEOGRAPH - ,0xCBE8 ,0x907D //CJK UNIFIED IDEOGRAPH - ,0xCBE9 ,0x9245 //CJK UNIFIED IDEOGRAPH - ,0xCBEA ,0x92F8 //CJK UNIFIED IDEOGRAPH - ,0xCBEB ,0x4E7E //CJK UNIFIED IDEOGRAPH - ,0xCBEC ,0x4EF6 //CJK UNIFIED IDEOGRAPH - ,0xCBED ,0x5065 //CJK UNIFIED IDEOGRAPH - ,0xCBEE ,0x5DFE //CJK UNIFIED IDEOGRAPH - ,0xCBEF ,0x5EFA //CJK UNIFIED IDEOGRAPH - ,0xCBF0 ,0x6106 //CJK UNIFIED IDEOGRAPH - ,0xCBF1 ,0x6957 //CJK UNIFIED IDEOGRAPH - ,0xCBF2 ,0x8171 //CJK UNIFIED IDEOGRAPH - ,0xCBF3 ,0x8654 //CJK UNIFIED IDEOGRAPH - ,0xCBF4 ,0x8E47 //CJK UNIFIED IDEOGRAPH - ,0xCBF5 ,0x9375 //CJK UNIFIED IDEOGRAPH - ,0xCBF6 ,0x9A2B //CJK UNIFIED IDEOGRAPH - ,0xCBF7 ,0x4E5E //CJK UNIFIED IDEOGRAPH - ,0xCBF8 ,0x5091 //CJK UNIFIED IDEOGRAPH - ,0xCBF9 ,0x6770 //CJK UNIFIED IDEOGRAPH - ,0xCBFA ,0x6840 //CJK UNIFIED IDEOGRAPH - ,0xCBFB ,0x5109 //CJK UNIFIED IDEOGRAPH - ,0xCBFC ,0x528D //CJK UNIFIED IDEOGRAPH - ,0xCBFD ,0x5292 //CJK UNIFIED IDEOGRAPH - ,0xCBFE ,0x6AA2 //CJK UNIFIED IDEOGRAPH - ,0xCCA1 ,0x77BC //CJK UNIFIED IDEOGRAPH - ,0xCCA2 ,0x9210 //CJK UNIFIED IDEOGRAPH - ,0xCCA3 ,0x9ED4 //CJK UNIFIED IDEOGRAPH - ,0xCCA4 ,0x52AB //CJK UNIFIED IDEOGRAPH - ,0xCCA5 ,0x602F //CJK UNIFIED IDEOGRAPH - ,0xCCA6 ,0x8FF2 //CJK UNIFIED IDEOGRAPH - ,0xCCA7 ,0x5048 //CJK UNIFIED IDEOGRAPH - ,0xCCA8 ,0x61A9 //CJK UNIFIED IDEOGRAPH - ,0xCCA9 ,0x63ED //CJK UNIFIED IDEOGRAPH - ,0xCCAA ,0x64CA //CJK UNIFIED IDEOGRAPH - ,0xCCAB ,0x683C //CJK UNIFIED IDEOGRAPH - ,0xCCAC ,0x6A84 //CJK UNIFIED IDEOGRAPH - ,0xCCAD ,0x6FC0 //CJK UNIFIED IDEOGRAPH - ,0xCCAE ,0x8188 //CJK UNIFIED IDEOGRAPH - ,0xCCAF ,0x89A1 //CJK UNIFIED IDEOGRAPH - ,0xCCB0 ,0x9694 //CJK UNIFIED IDEOGRAPH - ,0xCCB1 ,0x5805 //CJK UNIFIED IDEOGRAPH - ,0xCCB2 ,0x727D //CJK UNIFIED IDEOGRAPH - ,0xCCB3 ,0x72AC //CJK UNIFIED IDEOGRAPH - ,0xCCB4 ,0x7504 //CJK UNIFIED IDEOGRAPH - ,0xCCB5 ,0x7D79 //CJK UNIFIED IDEOGRAPH - ,0xCCB6 ,0x7E6D //CJK UNIFIED IDEOGRAPH - ,0xCCB7 ,0x80A9 //CJK UNIFIED IDEOGRAPH - ,0xCCB8 ,0x898B //CJK UNIFIED IDEOGRAPH - ,0xCCB9 ,0x8B74 //CJK UNIFIED IDEOGRAPH - ,0xCCBA ,0x9063 //CJK UNIFIED IDEOGRAPH - ,0xCCBB ,0x9D51 //CJK UNIFIED IDEOGRAPH - ,0xCCBC ,0x6289 //CJK UNIFIED IDEOGRAPH - ,0xCCBD ,0x6C7A //CJK UNIFIED IDEOGRAPH - ,0xCCBE ,0x6F54 //CJK UNIFIED IDEOGRAPH - ,0xCCBF ,0x7D50 //CJK UNIFIED IDEOGRAPH - ,0xCCC0 ,0x7F3A //CJK UNIFIED IDEOGRAPH - ,0xCCC1 ,0x8A23 //CJK UNIFIED IDEOGRAPH - ,0xCCC2 ,0x517C //CJK UNIFIED IDEOGRAPH - ,0xCCC3 ,0x614A //CJK UNIFIED IDEOGRAPH - ,0xCCC4 ,0x7B9D //CJK UNIFIED IDEOGRAPH - ,0xCCC5 ,0x8B19 //CJK UNIFIED IDEOGRAPH - ,0xCCC6 ,0x9257 //CJK UNIFIED IDEOGRAPH - ,0xCCC7 ,0x938C //CJK UNIFIED IDEOGRAPH - ,0xCCC8 ,0x4EAC //CJK UNIFIED IDEOGRAPH - ,0xCCC9 ,0x4FD3 //CJK UNIFIED IDEOGRAPH - ,0xCCCA ,0x501E //CJK UNIFIED IDEOGRAPH - ,0xCCCB ,0x50BE //CJK UNIFIED IDEOGRAPH - ,0xCCCC ,0x5106 //CJK UNIFIED IDEOGRAPH - ,0xCCCD ,0x52C1 //CJK UNIFIED IDEOGRAPH - ,0xCCCE ,0x52CD //CJK UNIFIED IDEOGRAPH - ,0xCCCF ,0x537F //CJK UNIFIED IDEOGRAPH - ,0xCCD0 ,0x5770 //CJK UNIFIED IDEOGRAPH - ,0xCCD1 ,0x5883 //CJK UNIFIED IDEOGRAPH - ,0xCCD2 ,0x5E9A //CJK UNIFIED IDEOGRAPH - ,0xCCD3 ,0x5F91 //CJK UNIFIED IDEOGRAPH - ,0xCCD4 ,0x6176 //CJK UNIFIED IDEOGRAPH - ,0xCCD5 ,0x61AC //CJK UNIFIED IDEOGRAPH - ,0xCCD6 ,0x64CE //CJK UNIFIED IDEOGRAPH - ,0xCCD7 ,0x656C //CJK UNIFIED IDEOGRAPH - ,0xCCD8 ,0x666F //CJK UNIFIED IDEOGRAPH - ,0xCCD9 ,0x66BB //CJK UNIFIED IDEOGRAPH - ,0xCCDA ,0x66F4 //CJK UNIFIED IDEOGRAPH - ,0xCCDB ,0x6897 //CJK UNIFIED IDEOGRAPH - ,0xCCDC ,0x6D87 //CJK UNIFIED IDEOGRAPH - ,0xCCDD ,0x7085 //CJK UNIFIED IDEOGRAPH - ,0xCCDE ,0x70F1 //CJK UNIFIED IDEOGRAPH - ,0xCCDF ,0x749F //CJK UNIFIED IDEOGRAPH - ,0xCCE0 ,0x74A5 //CJK UNIFIED IDEOGRAPH - ,0xCCE1 ,0x74CA //CJK UNIFIED IDEOGRAPH - ,0xCCE2 ,0x75D9 //CJK UNIFIED IDEOGRAPH - ,0xCCE3 ,0x786C //CJK UNIFIED IDEOGRAPH - ,0xCCE4 ,0x78EC //CJK UNIFIED IDEOGRAPH - ,0xCCE5 ,0x7ADF //CJK UNIFIED IDEOGRAPH - ,0xCCE6 ,0x7AF6 //CJK UNIFIED IDEOGRAPH - ,0xCCE7 ,0x7D45 //CJK UNIFIED IDEOGRAPH - ,0xCCE8 ,0x7D93 //CJK UNIFIED IDEOGRAPH - ,0xCCE9 ,0x8015 //CJK UNIFIED IDEOGRAPH - ,0xCCEA ,0x803F //CJK UNIFIED IDEOGRAPH - ,0xCCEB ,0x811B //CJK UNIFIED IDEOGRAPH - ,0xCCEC ,0x8396 //CJK UNIFIED IDEOGRAPH - ,0xCCED ,0x8B66 //CJK UNIFIED IDEOGRAPH - ,0xCCEE ,0x8F15 //CJK UNIFIED IDEOGRAPH - ,0xCCEF ,0x9015 //CJK UNIFIED IDEOGRAPH - ,0xCCF0 ,0x93E1 //CJK UNIFIED IDEOGRAPH - ,0xCCF1 ,0x9803 //CJK UNIFIED IDEOGRAPH - ,0xCCF2 ,0x9838 //CJK UNIFIED IDEOGRAPH - ,0xCCF3 ,0x9A5A //CJK UNIFIED IDEOGRAPH - ,0xCCF4 ,0x9BE8 //CJK UNIFIED IDEOGRAPH - ,0xCCF5 ,0x4FC2 //CJK UNIFIED IDEOGRAPH - ,0xCCF6 ,0x5553 //CJK UNIFIED IDEOGRAPH - ,0xCCF7 ,0x583A //CJK UNIFIED IDEOGRAPH - ,0xCCF8 ,0x5951 //CJK UNIFIED IDEOGRAPH - ,0xCCF9 ,0x5B63 //CJK UNIFIED IDEOGRAPH - ,0xCCFA ,0x5C46 //CJK UNIFIED IDEOGRAPH - ,0xCCFB ,0x60B8 //CJK UNIFIED IDEOGRAPH - ,0xCCFC ,0x6212 //CJK UNIFIED IDEOGRAPH - ,0xCCFD ,0x6842 //CJK UNIFIED IDEOGRAPH - ,0xCCFE ,0x68B0 //CJK UNIFIED IDEOGRAPH - ,0xCDA1 ,0x68E8 //CJK UNIFIED IDEOGRAPH - ,0xCDA2 ,0x6EAA //CJK UNIFIED IDEOGRAPH - ,0xCDA3 ,0x754C //CJK UNIFIED IDEOGRAPH - ,0xCDA4 ,0x7678 //CJK UNIFIED IDEOGRAPH - ,0xCDA5 ,0x78CE //CJK UNIFIED IDEOGRAPH - ,0xCDA6 ,0x7A3D //CJK UNIFIED IDEOGRAPH - ,0xCDA7 ,0x7CFB //CJK UNIFIED IDEOGRAPH - ,0xCDA8 ,0x7E6B //CJK UNIFIED IDEOGRAPH - ,0xCDA9 ,0x7E7C //CJK UNIFIED IDEOGRAPH - ,0xCDAA ,0x8A08 //CJK UNIFIED IDEOGRAPH - ,0xCDAB ,0x8AA1 //CJK UNIFIED IDEOGRAPH - ,0xCDAC ,0x8C3F //CJK UNIFIED IDEOGRAPH - ,0xCDAD ,0x968E //CJK UNIFIED IDEOGRAPH - ,0xCDAE ,0x9DC4 //CJK UNIFIED IDEOGRAPH - ,0xCDAF ,0x53E4 //CJK UNIFIED IDEOGRAPH - ,0xCDB0 ,0x53E9 //CJK UNIFIED IDEOGRAPH - ,0xCDB1 ,0x544A //CJK UNIFIED IDEOGRAPH - ,0xCDB2 ,0x5471 //CJK UNIFIED IDEOGRAPH - ,0xCDB3 ,0x56FA //CJK UNIFIED IDEOGRAPH - ,0xCDB4 ,0x59D1 //CJK UNIFIED IDEOGRAPH - ,0xCDB5 ,0x5B64 //CJK UNIFIED IDEOGRAPH - ,0xCDB6 ,0x5C3B //CJK UNIFIED IDEOGRAPH - ,0xCDB7 ,0x5EAB //CJK UNIFIED IDEOGRAPH - ,0xCDB8 ,0x62F7 //CJK UNIFIED IDEOGRAPH - ,0xCDB9 ,0x6537 //CJK UNIFIED IDEOGRAPH - ,0xCDBA ,0x6545 //CJK UNIFIED IDEOGRAPH - ,0xCDBB ,0x6572 //CJK UNIFIED IDEOGRAPH - ,0xCDBC ,0x66A0 //CJK UNIFIED IDEOGRAPH - ,0xCDBD ,0x67AF //CJK UNIFIED IDEOGRAPH - ,0xCDBE ,0x69C1 //CJK UNIFIED IDEOGRAPH - ,0xCDBF ,0x6CBD //CJK UNIFIED IDEOGRAPH - ,0xCDC0 ,0x75FC //CJK UNIFIED IDEOGRAPH - ,0xCDC1 ,0x7690 //CJK UNIFIED IDEOGRAPH - ,0xCDC2 ,0x777E //CJK UNIFIED IDEOGRAPH - ,0xCDC3 ,0x7A3F //CJK UNIFIED IDEOGRAPH - ,0xCDC4 ,0x7F94 //CJK UNIFIED IDEOGRAPH - ,0xCDC5 ,0x8003 //CJK UNIFIED IDEOGRAPH - ,0xCDC6 ,0x80A1 //CJK UNIFIED IDEOGRAPH - ,0xCDC7 ,0x818F //CJK UNIFIED IDEOGRAPH - ,0xCDC8 ,0x82E6 //CJK UNIFIED IDEOGRAPH - ,0xCDC9 ,0x82FD //CJK UNIFIED IDEOGRAPH - ,0xCDCA ,0x83F0 //CJK UNIFIED IDEOGRAPH - ,0xCDCB ,0x85C1 //CJK UNIFIED IDEOGRAPH - ,0xCDCC ,0x8831 //CJK UNIFIED IDEOGRAPH - ,0xCDCD ,0x88B4 //CJK UNIFIED IDEOGRAPH - ,0xCDCE ,0x8AA5 //CJK UNIFIED IDEOGRAPH - ,0xCDCF ,0xF903 //CJK COMPATIBILITY IDEOGRAPH - ,0xCDD0 ,0x8F9C //CJK UNIFIED IDEOGRAPH - ,0xCDD1 ,0x932E //CJK UNIFIED IDEOGRAPH - ,0xCDD2 ,0x96C7 //CJK UNIFIED IDEOGRAPH - ,0xCDD3 ,0x9867 //CJK UNIFIED IDEOGRAPH - ,0xCDD4 ,0x9AD8 //CJK UNIFIED IDEOGRAPH - ,0xCDD5 ,0x9F13 //CJK UNIFIED IDEOGRAPH - ,0xCDD6 ,0x54ED //CJK UNIFIED IDEOGRAPH - ,0xCDD7 ,0x659B //CJK UNIFIED IDEOGRAPH - ,0xCDD8 ,0x66F2 //CJK UNIFIED IDEOGRAPH - ,0xCDD9 ,0x688F //CJK UNIFIED IDEOGRAPH - ,0xCDDA ,0x7A40 //CJK UNIFIED IDEOGRAPH - ,0xCDDB ,0x8C37 //CJK UNIFIED IDEOGRAPH - ,0xCDDC ,0x9D60 //CJK UNIFIED IDEOGRAPH - ,0xCDDD ,0x56F0 //CJK UNIFIED IDEOGRAPH - ,0xCDDE ,0x5764 //CJK UNIFIED IDEOGRAPH - ,0xCDDF ,0x5D11 //CJK UNIFIED IDEOGRAPH - ,0xCDE0 ,0x6606 //CJK UNIFIED IDEOGRAPH - ,0xCDE1 ,0x68B1 //CJK UNIFIED IDEOGRAPH - ,0xCDE2 ,0x68CD //CJK UNIFIED IDEOGRAPH - ,0xCDE3 ,0x6EFE //CJK UNIFIED IDEOGRAPH - ,0xCDE4 ,0x7428 //CJK UNIFIED IDEOGRAPH - ,0xCDE5 ,0x889E //CJK UNIFIED IDEOGRAPH - ,0xCDE6 ,0x9BE4 //CJK UNIFIED IDEOGRAPH - ,0xCDE7 ,0x6C68 //CJK UNIFIED IDEOGRAPH - ,0xCDE8 ,0xF904 //CJK COMPATIBILITY IDEOGRAPH - ,0xCDE9 ,0x9AA8 //CJK UNIFIED IDEOGRAPH - ,0xCDEA ,0x4F9B //CJK UNIFIED IDEOGRAPH - ,0xCDEB ,0x516C //CJK UNIFIED IDEOGRAPH - ,0xCDEC ,0x5171 //CJK UNIFIED IDEOGRAPH - ,0xCDED ,0x529F //CJK UNIFIED IDEOGRAPH - ,0xCDEE ,0x5B54 //CJK UNIFIED IDEOGRAPH - ,0xCDEF ,0x5DE5 //CJK UNIFIED IDEOGRAPH - ,0xCDF0 ,0x6050 //CJK UNIFIED IDEOGRAPH - ,0xCDF1 ,0x606D //CJK UNIFIED IDEOGRAPH - ,0xCDF2 ,0x62F1 //CJK UNIFIED IDEOGRAPH - ,0xCDF3 ,0x63A7 //CJK UNIFIED IDEOGRAPH - ,0xCDF4 ,0x653B //CJK UNIFIED IDEOGRAPH - ,0xCDF5 ,0x73D9 //CJK UNIFIED IDEOGRAPH - ,0xCDF6 ,0x7A7A //CJK UNIFIED IDEOGRAPH - ,0xCDF7 ,0x86A3 //CJK UNIFIED IDEOGRAPH - ,0xCDF8 ,0x8CA2 //CJK UNIFIED IDEOGRAPH - ,0xCDF9 ,0x978F //CJK UNIFIED IDEOGRAPH - ,0xCDFA ,0x4E32 //CJK UNIFIED IDEOGRAPH - ,0xCDFB ,0x5BE1 //CJK UNIFIED IDEOGRAPH - ,0xCDFC ,0x6208 //CJK UNIFIED IDEOGRAPH - ,0xCDFD ,0x679C //CJK UNIFIED IDEOGRAPH - ,0xCDFE ,0x74DC //CJK UNIFIED IDEOGRAPH - ,0xCEA1 ,0x79D1 //CJK UNIFIED IDEOGRAPH - ,0xCEA2 ,0x83D3 //CJK UNIFIED IDEOGRAPH - ,0xCEA3 ,0x8A87 //CJK UNIFIED IDEOGRAPH - ,0xCEA4 ,0x8AB2 //CJK UNIFIED IDEOGRAPH - ,0xCEA5 ,0x8DE8 //CJK UNIFIED IDEOGRAPH - ,0xCEA6 ,0x904E //CJK UNIFIED IDEOGRAPH - ,0xCEA7 ,0x934B //CJK UNIFIED IDEOGRAPH - ,0xCEA8 ,0x9846 //CJK UNIFIED IDEOGRAPH - ,0xCEA9 ,0x5ED3 //CJK UNIFIED IDEOGRAPH - ,0xCEAA ,0x69E8 //CJK UNIFIED IDEOGRAPH - ,0xCEAB ,0x85FF //CJK UNIFIED IDEOGRAPH - ,0xCEAC ,0x90ED //CJK UNIFIED IDEOGRAPH - ,0xCEAD ,0xF905 //CJK COMPATIBILITY IDEOGRAPH - ,0xCEAE ,0x51A0 //CJK UNIFIED IDEOGRAPH - ,0xCEAF ,0x5B98 //CJK UNIFIED IDEOGRAPH - ,0xCEB0 ,0x5BEC //CJK UNIFIED IDEOGRAPH - ,0xCEB1 ,0x6163 //CJK UNIFIED IDEOGRAPH - ,0xCEB2 ,0x68FA //CJK UNIFIED IDEOGRAPH - ,0xCEB3 ,0x6B3E //CJK UNIFIED IDEOGRAPH - ,0xCEB4 ,0x704C //CJK UNIFIED IDEOGRAPH - ,0xCEB5 ,0x742F //CJK UNIFIED IDEOGRAPH - ,0xCEB6 ,0x74D8 //CJK UNIFIED IDEOGRAPH - ,0xCEB7 ,0x7BA1 //CJK UNIFIED IDEOGRAPH - ,0xCEB8 ,0x7F50 //CJK UNIFIED IDEOGRAPH - ,0xCEB9 ,0x83C5 //CJK UNIFIED IDEOGRAPH - ,0xCEBA ,0x89C0 //CJK UNIFIED IDEOGRAPH - ,0xCEBB ,0x8CAB //CJK UNIFIED IDEOGRAPH - ,0xCEBC ,0x95DC //CJK UNIFIED IDEOGRAPH - ,0xCEBD ,0x9928 //CJK UNIFIED IDEOGRAPH - ,0xCEBE ,0x522E //CJK UNIFIED IDEOGRAPH - ,0xCEBF ,0x605D //CJK UNIFIED IDEOGRAPH - ,0xCEC0 ,0x62EC //CJK UNIFIED IDEOGRAPH - ,0xCEC1 ,0x9002 //CJK UNIFIED IDEOGRAPH - ,0xCEC2 ,0x4F8A //CJK UNIFIED IDEOGRAPH - ,0xCEC3 ,0x5149 //CJK UNIFIED IDEOGRAPH - ,0xCEC4 ,0x5321 //CJK UNIFIED IDEOGRAPH - ,0xCEC5 ,0x58D9 //CJK UNIFIED IDEOGRAPH - ,0xCEC6 ,0x5EE3 //CJK UNIFIED IDEOGRAPH - ,0xCEC7 ,0x66E0 //CJK UNIFIED IDEOGRAPH - ,0xCEC8 ,0x6D38 //CJK UNIFIED IDEOGRAPH - ,0xCEC9 ,0x709A //CJK UNIFIED IDEOGRAPH - ,0xCECA ,0x72C2 //CJK UNIFIED IDEOGRAPH - ,0xCECB ,0x73D6 //CJK UNIFIED IDEOGRAPH - ,0xCECC ,0x7B50 //CJK UNIFIED IDEOGRAPH - ,0xCECD ,0x80F1 //CJK UNIFIED IDEOGRAPH - ,0xCECE ,0x945B //CJK UNIFIED IDEOGRAPH - ,0xCECF ,0x5366 //CJK UNIFIED IDEOGRAPH - ,0xCED0 ,0x639B //CJK UNIFIED IDEOGRAPH - ,0xCED1 ,0x7F6B //CJK UNIFIED IDEOGRAPH - ,0xCED2 ,0x4E56 //CJK UNIFIED IDEOGRAPH - ,0xCED3 ,0x5080 //CJK UNIFIED IDEOGRAPH - ,0xCED4 ,0x584A //CJK UNIFIED IDEOGRAPH - ,0xCED5 ,0x58DE //CJK UNIFIED IDEOGRAPH - ,0xCED6 ,0x602A //CJK UNIFIED IDEOGRAPH - ,0xCED7 ,0x6127 //CJK UNIFIED IDEOGRAPH - ,0xCED8 ,0x62D0 //CJK UNIFIED IDEOGRAPH - ,0xCED9 ,0x69D0 //CJK UNIFIED IDEOGRAPH - ,0xCEDA ,0x9B41 //CJK UNIFIED IDEOGRAPH - ,0xCEDB ,0x5B8F //CJK UNIFIED IDEOGRAPH - ,0xCEDC ,0x7D18 //CJK UNIFIED IDEOGRAPH - ,0xCEDD ,0x80B1 //CJK UNIFIED IDEOGRAPH - ,0xCEDE ,0x8F5F //CJK UNIFIED IDEOGRAPH - ,0xCEDF ,0x4EA4 //CJK UNIFIED IDEOGRAPH - ,0xCEE0 ,0x50D1 //CJK UNIFIED IDEOGRAPH - ,0xCEE1 ,0x54AC //CJK UNIFIED IDEOGRAPH - ,0xCEE2 ,0x55AC //CJK UNIFIED IDEOGRAPH - ,0xCEE3 ,0x5B0C //CJK UNIFIED IDEOGRAPH - ,0xCEE4 ,0x5DA0 //CJK UNIFIED IDEOGRAPH - ,0xCEE5 ,0x5DE7 //CJK UNIFIED IDEOGRAPH - ,0xCEE6 ,0x652A //CJK UNIFIED IDEOGRAPH - ,0xCEE7 ,0x654E //CJK UNIFIED IDEOGRAPH - ,0xCEE8 ,0x6821 //CJK UNIFIED IDEOGRAPH - ,0xCEE9 ,0x6A4B //CJK UNIFIED IDEOGRAPH - ,0xCEEA ,0x72E1 //CJK UNIFIED IDEOGRAPH - ,0xCEEB ,0x768E //CJK UNIFIED IDEOGRAPH - ,0xCEEC ,0x77EF //CJK UNIFIED IDEOGRAPH - ,0xCEED ,0x7D5E //CJK UNIFIED IDEOGRAPH - ,0xCEEE ,0x7FF9 //CJK UNIFIED IDEOGRAPH - ,0xCEEF ,0x81A0 //CJK UNIFIED IDEOGRAPH - ,0xCEF0 ,0x854E //CJK UNIFIED IDEOGRAPH - ,0xCEF1 ,0x86DF //CJK UNIFIED IDEOGRAPH - ,0xCEF2 ,0x8F03 //CJK UNIFIED IDEOGRAPH - ,0xCEF3 ,0x8F4E //CJK UNIFIED IDEOGRAPH - ,0xCEF4 ,0x90CA //CJK UNIFIED IDEOGRAPH - ,0xCEF5 ,0x9903 //CJK UNIFIED IDEOGRAPH - ,0xCEF6 ,0x9A55 //CJK UNIFIED IDEOGRAPH - ,0xCEF7 ,0x9BAB //CJK UNIFIED IDEOGRAPH - ,0xCEF8 ,0x4E18 //CJK UNIFIED IDEOGRAPH - ,0xCEF9 ,0x4E45 //CJK UNIFIED IDEOGRAPH - ,0xCEFA ,0x4E5D //CJK UNIFIED IDEOGRAPH - ,0xCEFB ,0x4EC7 //CJK UNIFIED IDEOGRAPH - ,0xCEFC ,0x4FF1 //CJK UNIFIED IDEOGRAPH - ,0xCEFD ,0x5177 //CJK UNIFIED IDEOGRAPH - ,0xCEFE ,0x52FE //CJK UNIFIED IDEOGRAPH - ,0xCFA1 ,0x5340 //CJK UNIFIED IDEOGRAPH - ,0xCFA2 ,0x53E3 //CJK UNIFIED IDEOGRAPH - ,0xCFA3 ,0x53E5 //CJK UNIFIED IDEOGRAPH - ,0xCFA4 ,0x548E //CJK UNIFIED IDEOGRAPH - ,0xCFA5 ,0x5614 //CJK UNIFIED IDEOGRAPH - ,0xCFA6 ,0x5775 //CJK UNIFIED IDEOGRAPH - ,0xCFA7 ,0x57A2 //CJK UNIFIED IDEOGRAPH - ,0xCFA8 ,0x5BC7 //CJK UNIFIED IDEOGRAPH - ,0xCFA9 ,0x5D87 //CJK UNIFIED IDEOGRAPH - ,0xCFAA ,0x5ED0 //CJK UNIFIED IDEOGRAPH - ,0xCFAB ,0x61FC //CJK UNIFIED IDEOGRAPH - ,0xCFAC ,0x62D8 //CJK UNIFIED IDEOGRAPH - ,0xCFAD ,0x6551 //CJK UNIFIED IDEOGRAPH - ,0xCFAE ,0x67B8 //CJK UNIFIED IDEOGRAPH - ,0xCFAF ,0x67E9 //CJK UNIFIED IDEOGRAPH - ,0xCFB0 ,0x69CB //CJK UNIFIED IDEOGRAPH - ,0xCFB1 ,0x6B50 //CJK UNIFIED IDEOGRAPH - ,0xCFB2 ,0x6BC6 //CJK UNIFIED IDEOGRAPH - ,0xCFB3 ,0x6BEC //CJK UNIFIED IDEOGRAPH - ,0xCFB4 ,0x6C42 //CJK UNIFIED IDEOGRAPH - ,0xCFB5 ,0x6E9D //CJK UNIFIED IDEOGRAPH - ,0xCFB6 ,0x7078 //CJK UNIFIED IDEOGRAPH - ,0xCFB7 ,0x72D7 //CJK UNIFIED IDEOGRAPH - ,0xCFB8 ,0x7396 //CJK UNIFIED IDEOGRAPH - ,0xCFB9 ,0x7403 //CJK UNIFIED IDEOGRAPH - ,0xCFBA ,0x77BF //CJK UNIFIED IDEOGRAPH - ,0xCFBB ,0x77E9 //CJK UNIFIED IDEOGRAPH - ,0xCFBC ,0x7A76 //CJK UNIFIED IDEOGRAPH - ,0xCFBD ,0x7D7F //CJK UNIFIED IDEOGRAPH - ,0xCFBE ,0x8009 //CJK UNIFIED IDEOGRAPH - ,0xCFBF ,0x81FC //CJK UNIFIED IDEOGRAPH - ,0xCFC0 ,0x8205 //CJK UNIFIED IDEOGRAPH - ,0xCFC1 ,0x820A //CJK UNIFIED IDEOGRAPH - ,0xCFC2 ,0x82DF //CJK UNIFIED IDEOGRAPH - ,0xCFC3 ,0x8862 //CJK UNIFIED IDEOGRAPH - ,0xCFC4 ,0x8B33 //CJK UNIFIED IDEOGRAPH - ,0xCFC5 ,0x8CFC //CJK UNIFIED IDEOGRAPH - ,0xCFC6 ,0x8EC0 //CJK UNIFIED IDEOGRAPH - ,0xCFC7 ,0x9011 //CJK UNIFIED IDEOGRAPH - ,0xCFC8 ,0x90B1 //CJK UNIFIED IDEOGRAPH - ,0xCFC9 ,0x9264 //CJK UNIFIED IDEOGRAPH - ,0xCFCA ,0x92B6 //CJK UNIFIED IDEOGRAPH - ,0xCFCB ,0x99D2 //CJK UNIFIED IDEOGRAPH - ,0xCFCC ,0x9A45 //CJK UNIFIED IDEOGRAPH - ,0xCFCD ,0x9CE9 //CJK UNIFIED IDEOGRAPH - ,0xCFCE ,0x9DD7 //CJK UNIFIED IDEOGRAPH - ,0xCFCF ,0x9F9C //CJK UNIFIED IDEOGRAPH - ,0xCFD0 ,0x570B //CJK UNIFIED IDEOGRAPH - ,0xCFD1 ,0x5C40 //CJK UNIFIED IDEOGRAPH - ,0xCFD2 ,0x83CA //CJK UNIFIED IDEOGRAPH - ,0xCFD3 ,0x97A0 //CJK UNIFIED IDEOGRAPH - ,0xCFD4 ,0x97AB //CJK UNIFIED IDEOGRAPH - ,0xCFD5 ,0x9EB4 //CJK UNIFIED IDEOGRAPH - ,0xCFD6 ,0x541B //CJK UNIFIED IDEOGRAPH - ,0xCFD7 ,0x7A98 //CJK UNIFIED IDEOGRAPH - ,0xCFD8 ,0x7FA4 //CJK UNIFIED IDEOGRAPH - ,0xCFD9 ,0x88D9 //CJK UNIFIED IDEOGRAPH - ,0xCFDA ,0x8ECD //CJK UNIFIED IDEOGRAPH - ,0xCFDB ,0x90E1 //CJK UNIFIED IDEOGRAPH - ,0xCFDC ,0x5800 //CJK UNIFIED IDEOGRAPH - ,0xCFDD ,0x5C48 //CJK UNIFIED IDEOGRAPH - ,0xCFDE ,0x6398 //CJK UNIFIED IDEOGRAPH - ,0xCFDF ,0x7A9F //CJK UNIFIED IDEOGRAPH - ,0xCFE0 ,0x5BAE //CJK UNIFIED IDEOGRAPH - ,0xCFE1 ,0x5F13 //CJK UNIFIED IDEOGRAPH - ,0xCFE2 ,0x7A79 //CJK UNIFIED IDEOGRAPH - ,0xCFE3 ,0x7AAE //CJK UNIFIED IDEOGRAPH - ,0xCFE4 ,0x828E //CJK UNIFIED IDEOGRAPH - ,0xCFE5 ,0x8EAC //CJK UNIFIED IDEOGRAPH - ,0xCFE6 ,0x5026 //CJK UNIFIED IDEOGRAPH - ,0xCFE7 ,0x5238 //CJK UNIFIED IDEOGRAPH - ,0xCFE8 ,0x52F8 //CJK UNIFIED IDEOGRAPH - ,0xCFE9 ,0x5377 //CJK UNIFIED IDEOGRAPH - ,0xCFEA ,0x5708 //CJK UNIFIED IDEOGRAPH - ,0xCFEB ,0x62F3 //CJK UNIFIED IDEOGRAPH - ,0xCFEC ,0x6372 //CJK UNIFIED IDEOGRAPH - ,0xCFED ,0x6B0A //CJK UNIFIED IDEOGRAPH - ,0xCFEE ,0x6DC3 //CJK UNIFIED IDEOGRAPH - ,0xCFEF ,0x7737 //CJK UNIFIED IDEOGRAPH - ,0xCFF0 ,0x53A5 //CJK UNIFIED IDEOGRAPH - ,0xCFF1 ,0x7357 //CJK UNIFIED IDEOGRAPH - ,0xCFF2 ,0x8568 //CJK UNIFIED IDEOGRAPH - ,0xCFF3 ,0x8E76 //CJK UNIFIED IDEOGRAPH - ,0xCFF4 ,0x95D5 //CJK UNIFIED IDEOGRAPH - ,0xCFF5 ,0x673A //CJK UNIFIED IDEOGRAPH - ,0xCFF6 ,0x6AC3 //CJK UNIFIED IDEOGRAPH - ,0xCFF7 ,0x6F70 //CJK UNIFIED IDEOGRAPH - ,0xCFF8 ,0x8A6D //CJK UNIFIED IDEOGRAPH - ,0xCFF9 ,0x8ECC //CJK UNIFIED IDEOGRAPH - ,0xCFFA ,0x994B //CJK UNIFIED IDEOGRAPH - ,0xCFFB ,0xF906 //CJK COMPATIBILITY IDEOGRAPH - ,0xCFFC ,0x6677 //CJK UNIFIED IDEOGRAPH - ,0xCFFD ,0x6B78 //CJK UNIFIED IDEOGRAPH - ,0xCFFE ,0x8CB4 //CJK UNIFIED IDEOGRAPH - ,0xD0A1 ,0x9B3C //CJK UNIFIED IDEOGRAPH - ,0xD0A2 ,0xF907 //CJK COMPATIBILITY IDEOGRAPH - ,0xD0A3 ,0x53EB //CJK UNIFIED IDEOGRAPH - ,0xD0A4 ,0x572D //CJK UNIFIED IDEOGRAPH - ,0xD0A5 ,0x594E //CJK UNIFIED IDEOGRAPH - ,0xD0A6 ,0x63C6 //CJK UNIFIED IDEOGRAPH - ,0xD0A7 ,0x69FB //CJK UNIFIED IDEOGRAPH - ,0xD0A8 ,0x73EA //CJK UNIFIED IDEOGRAPH - ,0xD0A9 ,0x7845 //CJK UNIFIED IDEOGRAPH - ,0xD0AA ,0x7ABA //CJK UNIFIED IDEOGRAPH - ,0xD0AB ,0x7AC5 //CJK UNIFIED IDEOGRAPH - ,0xD0AC ,0x7CFE //CJK UNIFIED IDEOGRAPH - ,0xD0AD ,0x8475 //CJK UNIFIED IDEOGRAPH - ,0xD0AE ,0x898F //CJK UNIFIED IDEOGRAPH - ,0xD0AF ,0x8D73 //CJK UNIFIED IDEOGRAPH - ,0xD0B0 ,0x9035 //CJK UNIFIED IDEOGRAPH - ,0xD0B1 ,0x95A8 //CJK UNIFIED IDEOGRAPH - ,0xD0B2 ,0x52FB //CJK UNIFIED IDEOGRAPH - ,0xD0B3 ,0x5747 //CJK UNIFIED IDEOGRAPH - ,0xD0B4 ,0x7547 //CJK UNIFIED IDEOGRAPH - ,0xD0B5 ,0x7B60 //CJK UNIFIED IDEOGRAPH - ,0xD0B6 ,0x83CC //CJK UNIFIED IDEOGRAPH - ,0xD0B7 ,0x921E //CJK UNIFIED IDEOGRAPH - ,0xD0B8 ,0xF908 //CJK COMPATIBILITY IDEOGRAPH - ,0xD0B9 ,0x6A58 //CJK UNIFIED IDEOGRAPH - ,0xD0BA ,0x514B //CJK UNIFIED IDEOGRAPH - ,0xD0BB ,0x524B //CJK UNIFIED IDEOGRAPH - ,0xD0BC ,0x5287 //CJK UNIFIED IDEOGRAPH - ,0xD0BD ,0x621F //CJK UNIFIED IDEOGRAPH - ,0xD0BE ,0x68D8 //CJK UNIFIED IDEOGRAPH - ,0xD0BF ,0x6975 //CJK UNIFIED IDEOGRAPH - ,0xD0C0 ,0x9699 //CJK UNIFIED IDEOGRAPH - ,0xD0C1 ,0x50C5 //CJK UNIFIED IDEOGRAPH - ,0xD0C2 ,0x52A4 //CJK UNIFIED IDEOGRAPH - ,0xD0C3 ,0x52E4 //CJK UNIFIED IDEOGRAPH - ,0xD0C4 ,0x61C3 //CJK UNIFIED IDEOGRAPH - ,0xD0C5 ,0x65A4 //CJK UNIFIED IDEOGRAPH - ,0xD0C6 ,0x6839 //CJK UNIFIED IDEOGRAPH - ,0xD0C7 ,0x69FF //CJK UNIFIED IDEOGRAPH - ,0xD0C8 ,0x747E //CJK UNIFIED IDEOGRAPH - ,0xD0C9 ,0x7B4B //CJK UNIFIED IDEOGRAPH - ,0xD0CA ,0x82B9 //CJK UNIFIED IDEOGRAPH - ,0xD0CB ,0x83EB //CJK UNIFIED IDEOGRAPH - ,0xD0CC ,0x89B2 //CJK UNIFIED IDEOGRAPH - ,0xD0CD ,0x8B39 //CJK UNIFIED IDEOGRAPH - ,0xD0CE ,0x8FD1 //CJK UNIFIED IDEOGRAPH - ,0xD0CF ,0x9949 //CJK UNIFIED IDEOGRAPH - ,0xD0D0 ,0xF909 //CJK COMPATIBILITY IDEOGRAPH - ,0xD0D1 ,0x4ECA //CJK UNIFIED IDEOGRAPH - ,0xD0D2 ,0x5997 //CJK UNIFIED IDEOGRAPH - ,0xD0D3 ,0x64D2 //CJK UNIFIED IDEOGRAPH - ,0xD0D4 ,0x6611 //CJK UNIFIED IDEOGRAPH - ,0xD0D5 ,0x6A8E //CJK UNIFIED IDEOGRAPH - ,0xD0D6 ,0x7434 //CJK UNIFIED IDEOGRAPH - ,0xD0D7 ,0x7981 //CJK UNIFIED IDEOGRAPH - ,0xD0D8 ,0x79BD //CJK UNIFIED IDEOGRAPH - ,0xD0D9 ,0x82A9 //CJK UNIFIED IDEOGRAPH - ,0xD0DA ,0x887E //CJK UNIFIED IDEOGRAPH - ,0xD0DB ,0x887F //CJK UNIFIED IDEOGRAPH - ,0xD0DC ,0x895F //CJK UNIFIED IDEOGRAPH - ,0xD0DD ,0xF90A //CJK COMPATIBILITY IDEOGRAPH - ,0xD0DE ,0x9326 //CJK UNIFIED IDEOGRAPH - ,0xD0DF ,0x4F0B //CJK UNIFIED IDEOGRAPH - ,0xD0E0 ,0x53CA //CJK UNIFIED IDEOGRAPH - ,0xD0E1 ,0x6025 //CJK UNIFIED IDEOGRAPH - ,0xD0E2 ,0x6271 //CJK UNIFIED IDEOGRAPH - ,0xD0E3 ,0x6C72 //CJK UNIFIED IDEOGRAPH - ,0xD0E4 ,0x7D1A //CJK UNIFIED IDEOGRAPH - ,0xD0E5 ,0x7D66 //CJK UNIFIED IDEOGRAPH - ,0xD0E6 ,0x4E98 //CJK UNIFIED IDEOGRAPH - ,0xD0E7 ,0x5162 //CJK UNIFIED IDEOGRAPH - ,0xD0E8 ,0x77DC //CJK UNIFIED IDEOGRAPH - ,0xD0E9 ,0x80AF //CJK UNIFIED IDEOGRAPH - ,0xD0EA ,0x4F01 //CJK UNIFIED IDEOGRAPH - ,0xD0EB ,0x4F0E //CJK UNIFIED IDEOGRAPH - ,0xD0EC ,0x5176 //CJK UNIFIED IDEOGRAPH - ,0xD0ED ,0x5180 //CJK UNIFIED IDEOGRAPH - ,0xD0EE ,0x55DC //CJK UNIFIED IDEOGRAPH - ,0xD0EF ,0x5668 //CJK UNIFIED IDEOGRAPH - ,0xD0F0 ,0x573B //CJK UNIFIED IDEOGRAPH - ,0xD0F1 ,0x57FA //CJK UNIFIED IDEOGRAPH - ,0xD0F2 ,0x57FC //CJK UNIFIED IDEOGRAPH - ,0xD0F3 ,0x5914 //CJK UNIFIED IDEOGRAPH - ,0xD0F4 ,0x5947 //CJK UNIFIED IDEOGRAPH - ,0xD0F5 ,0x5993 //CJK UNIFIED IDEOGRAPH - ,0xD0F6 ,0x5BC4 //CJK UNIFIED IDEOGRAPH - ,0xD0F7 ,0x5C90 //CJK UNIFIED IDEOGRAPH - ,0xD0F8 ,0x5D0E //CJK UNIFIED IDEOGRAPH - ,0xD0F9 ,0x5DF1 //CJK UNIFIED IDEOGRAPH - ,0xD0FA ,0x5E7E //CJK UNIFIED IDEOGRAPH - ,0xD0FB ,0x5FCC //CJK UNIFIED IDEOGRAPH - ,0xD0FC ,0x6280 //CJK UNIFIED IDEOGRAPH - ,0xD0FD ,0x65D7 //CJK UNIFIED IDEOGRAPH - ,0xD0FE ,0x65E3 //CJK UNIFIED IDEOGRAPH - ,0xD1A1 ,0x671E //CJK UNIFIED IDEOGRAPH - ,0xD1A2 ,0x671F //CJK UNIFIED IDEOGRAPH - ,0xD1A3 ,0x675E //CJK UNIFIED IDEOGRAPH - ,0xD1A4 ,0x68CB //CJK UNIFIED IDEOGRAPH - ,0xD1A5 ,0x68C4 //CJK UNIFIED IDEOGRAPH - ,0xD1A6 ,0x6A5F //CJK UNIFIED IDEOGRAPH - ,0xD1A7 ,0x6B3A //CJK UNIFIED IDEOGRAPH - ,0xD1A8 ,0x6C23 //CJK UNIFIED IDEOGRAPH - ,0xD1A9 ,0x6C7D //CJK UNIFIED IDEOGRAPH - ,0xD1AA ,0x6C82 //CJK UNIFIED IDEOGRAPH - ,0xD1AB ,0x6DC7 //CJK UNIFIED IDEOGRAPH - ,0xD1AC ,0x7398 //CJK UNIFIED IDEOGRAPH - ,0xD1AD ,0x7426 //CJK UNIFIED IDEOGRAPH - ,0xD1AE ,0x742A //CJK UNIFIED IDEOGRAPH - ,0xD1AF ,0x7482 //CJK UNIFIED IDEOGRAPH - ,0xD1B0 ,0x74A3 //CJK UNIFIED IDEOGRAPH - ,0xD1B1 ,0x7578 //CJK UNIFIED IDEOGRAPH - ,0xD1B2 ,0x757F //CJK UNIFIED IDEOGRAPH - ,0xD1B3 ,0x7881 //CJK UNIFIED IDEOGRAPH - ,0xD1B4 ,0x78EF //CJK UNIFIED IDEOGRAPH - ,0xD1B5 ,0x7941 //CJK UNIFIED IDEOGRAPH - ,0xD1B6 ,0x7947 //CJK UNIFIED IDEOGRAPH - ,0xD1B7 ,0x7948 //CJK UNIFIED IDEOGRAPH - ,0xD1B8 ,0x797A //CJK UNIFIED IDEOGRAPH - ,0xD1B9 ,0x7B95 //CJK UNIFIED IDEOGRAPH - ,0xD1BA ,0x7D00 //CJK UNIFIED IDEOGRAPH - ,0xD1BB ,0x7DBA //CJK UNIFIED IDEOGRAPH - ,0xD1BC ,0x7F88 //CJK UNIFIED IDEOGRAPH - ,0xD1BD ,0x8006 //CJK UNIFIED IDEOGRAPH - ,0xD1BE ,0x802D //CJK UNIFIED IDEOGRAPH - ,0xD1BF ,0x808C //CJK UNIFIED IDEOGRAPH - ,0xD1C0 ,0x8A18 //CJK UNIFIED IDEOGRAPH - ,0xD1C1 ,0x8B4F //CJK UNIFIED IDEOGRAPH - ,0xD1C2 ,0x8C48 //CJK UNIFIED IDEOGRAPH - ,0xD1C3 ,0x8D77 //CJK UNIFIED IDEOGRAPH - ,0xD1C4 ,0x9321 //CJK UNIFIED IDEOGRAPH - ,0xD1C5 ,0x9324 //CJK UNIFIED IDEOGRAPH - ,0xD1C6 ,0x98E2 //CJK UNIFIED IDEOGRAPH - ,0xD1C7 ,0x9951 //CJK UNIFIED IDEOGRAPH - ,0xD1C8 ,0x9A0E //CJK UNIFIED IDEOGRAPH - ,0xD1C9 ,0x9A0F //CJK UNIFIED IDEOGRAPH - ,0xD1CA ,0x9A65 //CJK UNIFIED IDEOGRAPH - ,0xD1CB ,0x9E92 //CJK UNIFIED IDEOGRAPH - ,0xD1CC ,0x7DCA //CJK UNIFIED IDEOGRAPH - ,0xD1CD ,0x4F76 //CJK UNIFIED IDEOGRAPH - ,0xD1CE ,0x5409 //CJK UNIFIED IDEOGRAPH - ,0xD1CF ,0x62EE //CJK UNIFIED IDEOGRAPH - ,0xD1D0 ,0x6854 //CJK UNIFIED IDEOGRAPH - ,0xD1D1 ,0x91D1 //CJK UNIFIED IDEOGRAPH - ,0xD1D2 ,0x55AB //CJK UNIFIED IDEOGRAPH - ,0xD1D3 ,0x513A //CJK UNIFIED IDEOGRAPH - ,0xD1D4 ,0xF90B //CJK COMPATIBILITY IDEOGRAPH - ,0xD1D5 ,0xF90C //CJK COMPATIBILITY IDEOGRAPH - ,0xD1D6 ,0x5A1C //CJK UNIFIED IDEOGRAPH - ,0xD1D7 ,0x61E6 //CJK UNIFIED IDEOGRAPH - ,0xD1D8 ,0xF90D //CJK COMPATIBILITY IDEOGRAPH - ,0xD1D9 ,0x62CF //CJK UNIFIED IDEOGRAPH - ,0xD1DA ,0x62FF //CJK UNIFIED IDEOGRAPH - ,0xD1DB ,0xF90E //CJK COMPATIBILITY IDEOGRAPH - ,0xD1DC ,0xF90F //CJK COMPATIBILITY IDEOGRAPH - ,0xD1DD ,0xF910 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1DE ,0xF911 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1DF ,0xF912 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E0 ,0xF913 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E1 ,0x90A3 //CJK UNIFIED IDEOGRAPH - ,0xD1E2 ,0xF914 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E3 ,0xF915 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E4 ,0xF916 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E5 ,0xF917 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E6 ,0xF918 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E7 ,0x8AFE //CJK UNIFIED IDEOGRAPH - ,0xD1E8 ,0xF919 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1E9 ,0xF91A //CJK COMPATIBILITY IDEOGRAPH - ,0xD1EA ,0xF91B //CJK COMPATIBILITY IDEOGRAPH - ,0xD1EB ,0xF91C //CJK COMPATIBILITY IDEOGRAPH - ,0xD1EC ,0x6696 //CJK UNIFIED IDEOGRAPH - ,0xD1ED ,0xF91D //CJK COMPATIBILITY IDEOGRAPH - ,0xD1EE ,0x7156 //CJK UNIFIED IDEOGRAPH - ,0xD1EF ,0xF91E //CJK COMPATIBILITY IDEOGRAPH - ,0xD1F0 ,0xF91F //CJK COMPATIBILITY IDEOGRAPH - ,0xD1F1 ,0x96E3 //CJK UNIFIED IDEOGRAPH - ,0xD1F2 ,0xF920 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1F3 ,0x634F //CJK UNIFIED IDEOGRAPH - ,0xD1F4 ,0x637A //CJK UNIFIED IDEOGRAPH - ,0xD1F5 ,0x5357 //CJK UNIFIED IDEOGRAPH - ,0xD1F6 ,0xF921 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1F7 ,0x678F //CJK UNIFIED IDEOGRAPH - ,0xD1F8 ,0x6960 //CJK UNIFIED IDEOGRAPH - ,0xD1F9 ,0x6E73 //CJK UNIFIED IDEOGRAPH - ,0xD1FA ,0xF922 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1FB ,0x7537 //CJK UNIFIED IDEOGRAPH - ,0xD1FC ,0xF923 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1FD ,0xF924 //CJK COMPATIBILITY IDEOGRAPH - ,0xD1FE ,0xF925 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2A1 ,0x7D0D //CJK UNIFIED IDEOGRAPH - ,0xD2A2 ,0xF926 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2A3 ,0xF927 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2A4 ,0x8872 //CJK UNIFIED IDEOGRAPH - ,0xD2A5 ,0x56CA //CJK UNIFIED IDEOGRAPH - ,0xD2A6 ,0x5A18 //CJK UNIFIED IDEOGRAPH - ,0xD2A7 ,0xF928 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2A8 ,0xF929 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2A9 ,0xF92A //CJK COMPATIBILITY IDEOGRAPH - ,0xD2AA ,0xF92B //CJK COMPATIBILITY IDEOGRAPH - ,0xD2AB ,0xF92C //CJK COMPATIBILITY IDEOGRAPH - ,0xD2AC ,0x4E43 //CJK UNIFIED IDEOGRAPH - ,0xD2AD ,0xF92D //CJK COMPATIBILITY IDEOGRAPH - ,0xD2AE ,0x5167 //CJK UNIFIED IDEOGRAPH - ,0xD2AF ,0x5948 //CJK UNIFIED IDEOGRAPH - ,0xD2B0 ,0x67F0 //CJK UNIFIED IDEOGRAPH - ,0xD2B1 ,0x8010 //CJK UNIFIED IDEOGRAPH - ,0xD2B2 ,0xF92E //CJK COMPATIBILITY IDEOGRAPH - ,0xD2B3 ,0x5973 //CJK UNIFIED IDEOGRAPH - ,0xD2B4 ,0x5E74 //CJK UNIFIED IDEOGRAPH - ,0xD2B5 ,0x649A //CJK UNIFIED IDEOGRAPH - ,0xD2B6 ,0x79CA //CJK UNIFIED IDEOGRAPH - ,0xD2B7 ,0x5FF5 //CJK UNIFIED IDEOGRAPH - ,0xD2B8 ,0x606C //CJK UNIFIED IDEOGRAPH - ,0xD2B9 ,0x62C8 //CJK UNIFIED IDEOGRAPH - ,0xD2BA ,0x637B //CJK UNIFIED IDEOGRAPH - ,0xD2BB ,0x5BE7 //CJK UNIFIED IDEOGRAPH - ,0xD2BC ,0x5BD7 //CJK UNIFIED IDEOGRAPH - ,0xD2BD ,0x52AA //CJK UNIFIED IDEOGRAPH - ,0xD2BE ,0xF92F //CJK COMPATIBILITY IDEOGRAPH - ,0xD2BF ,0x5974 //CJK UNIFIED IDEOGRAPH - ,0xD2C0 ,0x5F29 //CJK UNIFIED IDEOGRAPH - ,0xD2C1 ,0x6012 //CJK UNIFIED IDEOGRAPH - ,0xD2C2 ,0xF930 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2C3 ,0xF931 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2C4 ,0xF932 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2C5 ,0x7459 //CJK UNIFIED IDEOGRAPH - ,0xD2C6 ,0xF933 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2C7 ,0xF934 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2C8 ,0xF935 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2C9 ,0xF936 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2CA ,0xF937 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2CB ,0xF938 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2CC ,0x99D1 //CJK UNIFIED IDEOGRAPH - ,0xD2CD ,0xF939 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2CE ,0xF93A //CJK COMPATIBILITY IDEOGRAPH - ,0xD2CF ,0xF93B //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D0 ,0xF93C //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D1 ,0xF93D //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D2 ,0xF93E //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D3 ,0xF93F //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D4 ,0xF940 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D5 ,0xF941 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D6 ,0xF942 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D7 ,0xF943 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2D8 ,0x6FC3 //CJK UNIFIED IDEOGRAPH - ,0xD2D9 ,0xF944 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2DA ,0xF945 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2DB ,0x81BF //CJK UNIFIED IDEOGRAPH - ,0xD2DC ,0x8FB2 //CJK UNIFIED IDEOGRAPH - ,0xD2DD ,0x60F1 //CJK UNIFIED IDEOGRAPH - ,0xD2DE ,0xF946 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2DF ,0xF947 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E0 ,0x8166 //CJK UNIFIED IDEOGRAPH - ,0xD2E1 ,0xF948 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E2 ,0xF949 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E3 ,0x5C3F //CJK UNIFIED IDEOGRAPH - ,0xD2E4 ,0xF94A //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E5 ,0xF94B //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E6 ,0xF94C //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E7 ,0xF94D //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E8 ,0xF94E //CJK COMPATIBILITY IDEOGRAPH - ,0xD2E9 ,0xF94F //CJK COMPATIBILITY IDEOGRAPH - ,0xD2EA ,0xF950 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2EB ,0xF951 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2EC ,0x5AE9 //CJK UNIFIED IDEOGRAPH - ,0xD2ED ,0x8A25 //CJK UNIFIED IDEOGRAPH - ,0xD2EE ,0x677B //CJK UNIFIED IDEOGRAPH - ,0xD2EF ,0x7D10 //CJK UNIFIED IDEOGRAPH - ,0xD2F0 ,0xF952 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F1 ,0xF953 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F2 ,0xF954 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F3 ,0xF955 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F4 ,0xF956 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F5 ,0xF957 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F6 ,0x80FD //CJK UNIFIED IDEOGRAPH - ,0xD2F7 ,0xF958 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F8 ,0xF959 //CJK COMPATIBILITY IDEOGRAPH - ,0xD2F9 ,0x5C3C //CJK UNIFIED IDEOGRAPH - ,0xD2FA ,0x6CE5 //CJK UNIFIED IDEOGRAPH - ,0xD2FB ,0x533F //CJK UNIFIED IDEOGRAPH - ,0xD2FC ,0x6EBA //CJK UNIFIED IDEOGRAPH - ,0xD2FD ,0x591A //CJK UNIFIED IDEOGRAPH - ,0xD2FE ,0x8336 //CJK UNIFIED IDEOGRAPH - ,0xD3A1 ,0x4E39 //CJK UNIFIED IDEOGRAPH - ,0xD3A2 ,0x4EB6 //CJK UNIFIED IDEOGRAPH - ,0xD3A3 ,0x4F46 //CJK UNIFIED IDEOGRAPH - ,0xD3A4 ,0x55AE //CJK UNIFIED IDEOGRAPH - ,0xD3A5 ,0x5718 //CJK UNIFIED IDEOGRAPH - ,0xD3A6 ,0x58C7 //CJK UNIFIED IDEOGRAPH - ,0xD3A7 ,0x5F56 //CJK UNIFIED IDEOGRAPH - ,0xD3A8 ,0x65B7 //CJK UNIFIED IDEOGRAPH - ,0xD3A9 ,0x65E6 //CJK UNIFIED IDEOGRAPH - ,0xD3AA ,0x6A80 //CJK UNIFIED IDEOGRAPH - ,0xD3AB ,0x6BB5 //CJK UNIFIED IDEOGRAPH - ,0xD3AC ,0x6E4D //CJK UNIFIED IDEOGRAPH - ,0xD3AD ,0x77ED //CJK UNIFIED IDEOGRAPH - ,0xD3AE ,0x7AEF //CJK UNIFIED IDEOGRAPH - ,0xD3AF ,0x7C1E //CJK UNIFIED IDEOGRAPH - ,0xD3B0 ,0x7DDE //CJK UNIFIED IDEOGRAPH - ,0xD3B1 ,0x86CB //CJK UNIFIED IDEOGRAPH - ,0xD3B2 ,0x8892 //CJK UNIFIED IDEOGRAPH - ,0xD3B3 ,0x9132 //CJK UNIFIED IDEOGRAPH - ,0xD3B4 ,0x935B //CJK UNIFIED IDEOGRAPH - ,0xD3B5 ,0x64BB //CJK UNIFIED IDEOGRAPH - ,0xD3B6 ,0x6FBE //CJK UNIFIED IDEOGRAPH - ,0xD3B7 ,0x737A //CJK UNIFIED IDEOGRAPH - ,0xD3B8 ,0x75B8 //CJK UNIFIED IDEOGRAPH - ,0xD3B9 ,0x9054 //CJK UNIFIED IDEOGRAPH - ,0xD3BA ,0x5556 //CJK UNIFIED IDEOGRAPH - ,0xD3BB ,0x574D //CJK UNIFIED IDEOGRAPH - ,0xD3BC ,0x61BA //CJK UNIFIED IDEOGRAPH - ,0xD3BD ,0x64D4 //CJK UNIFIED IDEOGRAPH - ,0xD3BE ,0x66C7 //CJK UNIFIED IDEOGRAPH - ,0xD3BF ,0x6DE1 //CJK UNIFIED IDEOGRAPH - ,0xD3C0 ,0x6E5B //CJK UNIFIED IDEOGRAPH - ,0xD3C1 ,0x6F6D //CJK UNIFIED IDEOGRAPH - ,0xD3C2 ,0x6FB9 //CJK UNIFIED IDEOGRAPH - ,0xD3C3 ,0x75F0 //CJK UNIFIED IDEOGRAPH - ,0xD3C4 ,0x8043 //CJK UNIFIED IDEOGRAPH - ,0xD3C5 ,0x81BD //CJK UNIFIED IDEOGRAPH - ,0xD3C6 ,0x8541 //CJK UNIFIED IDEOGRAPH - ,0xD3C7 ,0x8983 //CJK UNIFIED IDEOGRAPH - ,0xD3C8 ,0x8AC7 //CJK UNIFIED IDEOGRAPH - ,0xD3C9 ,0x8B5A //CJK UNIFIED IDEOGRAPH - ,0xD3CA ,0x931F //CJK UNIFIED IDEOGRAPH - ,0xD3CB ,0x6C93 //CJK UNIFIED IDEOGRAPH - ,0xD3CC ,0x7553 //CJK UNIFIED IDEOGRAPH - ,0xD3CD ,0x7B54 //CJK UNIFIED IDEOGRAPH - ,0xD3CE ,0x8E0F //CJK UNIFIED IDEOGRAPH - ,0xD3CF ,0x905D //CJK UNIFIED IDEOGRAPH - ,0xD3D0 ,0x5510 //CJK UNIFIED IDEOGRAPH - ,0xD3D1 ,0x5802 //CJK UNIFIED IDEOGRAPH - ,0xD3D2 ,0x5858 //CJK UNIFIED IDEOGRAPH - ,0xD3D3 ,0x5E62 //CJK UNIFIED IDEOGRAPH - ,0xD3D4 ,0x6207 //CJK UNIFIED IDEOGRAPH - ,0xD3D5 ,0x649E //CJK UNIFIED IDEOGRAPH - ,0xD3D6 ,0x68E0 //CJK UNIFIED IDEOGRAPH - ,0xD3D7 ,0x7576 //CJK UNIFIED IDEOGRAPH - ,0xD3D8 ,0x7CD6 //CJK UNIFIED IDEOGRAPH - ,0xD3D9 ,0x87B3 //CJK UNIFIED IDEOGRAPH - ,0xD3DA ,0x9EE8 //CJK UNIFIED IDEOGRAPH - ,0xD3DB ,0x4EE3 //CJK UNIFIED IDEOGRAPH - ,0xD3DC ,0x5788 //CJK UNIFIED IDEOGRAPH - ,0xD3DD ,0x576E //CJK UNIFIED IDEOGRAPH - ,0xD3DE ,0x5927 //CJK UNIFIED IDEOGRAPH - ,0xD3DF ,0x5C0D //CJK UNIFIED IDEOGRAPH - ,0xD3E0 ,0x5CB1 //CJK UNIFIED IDEOGRAPH - ,0xD3E1 ,0x5E36 //CJK UNIFIED IDEOGRAPH - ,0xD3E2 ,0x5F85 //CJK UNIFIED IDEOGRAPH - ,0xD3E3 ,0x6234 //CJK UNIFIED IDEOGRAPH - ,0xD3E4 ,0x64E1 //CJK UNIFIED IDEOGRAPH - ,0xD3E5 ,0x73B3 //CJK UNIFIED IDEOGRAPH - ,0xD3E6 ,0x81FA //CJK UNIFIED IDEOGRAPH - ,0xD3E7 ,0x888B //CJK UNIFIED IDEOGRAPH - ,0xD3E8 ,0x8CB8 //CJK UNIFIED IDEOGRAPH - ,0xD3E9 ,0x968A //CJK UNIFIED IDEOGRAPH - ,0xD3EA ,0x9EDB //CJK UNIFIED IDEOGRAPH - ,0xD3EB ,0x5B85 //CJK UNIFIED IDEOGRAPH - ,0xD3EC ,0x5FB7 //CJK UNIFIED IDEOGRAPH - ,0xD3ED ,0x60B3 //CJK UNIFIED IDEOGRAPH - ,0xD3EE ,0x5012 //CJK UNIFIED IDEOGRAPH - ,0xD3EF ,0x5200 //CJK UNIFIED IDEOGRAPH - ,0xD3F0 ,0x5230 //CJK UNIFIED IDEOGRAPH - ,0xD3F1 ,0x5716 //CJK UNIFIED IDEOGRAPH - ,0xD3F2 ,0x5835 //CJK UNIFIED IDEOGRAPH - ,0xD3F3 ,0x5857 //CJK UNIFIED IDEOGRAPH - ,0xD3F4 ,0x5C0E //CJK UNIFIED IDEOGRAPH - ,0xD3F5 ,0x5C60 //CJK UNIFIED IDEOGRAPH - ,0xD3F6 ,0x5CF6 //CJK UNIFIED IDEOGRAPH - ,0xD3F7 ,0x5D8B //CJK UNIFIED IDEOGRAPH - ,0xD3F8 ,0x5EA6 //CJK UNIFIED IDEOGRAPH - ,0xD3F9 ,0x5F92 //CJK UNIFIED IDEOGRAPH - ,0xD3FA ,0x60BC //CJK UNIFIED IDEOGRAPH - ,0xD3FB ,0x6311 //CJK UNIFIED IDEOGRAPH - ,0xD3FC ,0x6389 //CJK UNIFIED IDEOGRAPH - ,0xD3FD ,0x6417 //CJK UNIFIED IDEOGRAPH - ,0xD3FE ,0x6843 //CJK UNIFIED IDEOGRAPH - ,0xD4A1 ,0x68F9 //CJK UNIFIED IDEOGRAPH - ,0xD4A2 ,0x6AC2 //CJK UNIFIED IDEOGRAPH - ,0xD4A3 ,0x6DD8 //CJK UNIFIED IDEOGRAPH - ,0xD4A4 ,0x6E21 //CJK UNIFIED IDEOGRAPH - ,0xD4A5 ,0x6ED4 //CJK UNIFIED IDEOGRAPH - ,0xD4A6 ,0x6FE4 //CJK UNIFIED IDEOGRAPH - ,0xD4A7 ,0x71FE //CJK UNIFIED IDEOGRAPH - ,0xD4A8 ,0x76DC //CJK UNIFIED IDEOGRAPH - ,0xD4A9 ,0x7779 //CJK UNIFIED IDEOGRAPH - ,0xD4AA ,0x79B1 //CJK UNIFIED IDEOGRAPH - ,0xD4AB ,0x7A3B //CJK UNIFIED IDEOGRAPH - ,0xD4AC ,0x8404 //CJK UNIFIED IDEOGRAPH - ,0xD4AD ,0x89A9 //CJK UNIFIED IDEOGRAPH - ,0xD4AE ,0x8CED //CJK UNIFIED IDEOGRAPH - ,0xD4AF ,0x8DF3 //CJK UNIFIED IDEOGRAPH - ,0xD4B0 ,0x8E48 //CJK UNIFIED IDEOGRAPH - ,0xD4B1 ,0x9003 //CJK UNIFIED IDEOGRAPH - ,0xD4B2 ,0x9014 //CJK UNIFIED IDEOGRAPH - ,0xD4B3 ,0x9053 //CJK UNIFIED IDEOGRAPH - ,0xD4B4 ,0x90FD //CJK UNIFIED IDEOGRAPH - ,0xD4B5 ,0x934D //CJK UNIFIED IDEOGRAPH - ,0xD4B6 ,0x9676 //CJK UNIFIED IDEOGRAPH - ,0xD4B7 ,0x97DC //CJK UNIFIED IDEOGRAPH - ,0xD4B8 ,0x6BD2 //CJK UNIFIED IDEOGRAPH - ,0xD4B9 ,0x7006 //CJK UNIFIED IDEOGRAPH - ,0xD4BA ,0x7258 //CJK UNIFIED IDEOGRAPH - ,0xD4BB ,0x72A2 //CJK UNIFIED IDEOGRAPH - ,0xD4BC ,0x7368 //CJK UNIFIED IDEOGRAPH - ,0xD4BD ,0x7763 //CJK UNIFIED IDEOGRAPH - ,0xD4BE ,0x79BF //CJK UNIFIED IDEOGRAPH - ,0xD4BF ,0x7BE4 //CJK UNIFIED IDEOGRAPH - ,0xD4C0 ,0x7E9B //CJK UNIFIED IDEOGRAPH - ,0xD4C1 ,0x8B80 //CJK UNIFIED IDEOGRAPH - ,0xD4C2 ,0x58A9 //CJK UNIFIED IDEOGRAPH - ,0xD4C3 ,0x60C7 //CJK UNIFIED IDEOGRAPH - ,0xD4C4 ,0x6566 //CJK UNIFIED IDEOGRAPH - ,0xD4C5 ,0x65FD //CJK UNIFIED IDEOGRAPH - ,0xD4C6 ,0x66BE //CJK UNIFIED IDEOGRAPH - ,0xD4C7 ,0x6C8C //CJK UNIFIED IDEOGRAPH - ,0xD4C8 ,0x711E //CJK UNIFIED IDEOGRAPH - ,0xD4C9 ,0x71C9 //CJK UNIFIED IDEOGRAPH - ,0xD4CA ,0x8C5A //CJK UNIFIED IDEOGRAPH - ,0xD4CB ,0x9813 //CJK UNIFIED IDEOGRAPH - ,0xD4CC ,0x4E6D //CJK UNIFIED IDEOGRAPH - ,0xD4CD ,0x7A81 //CJK UNIFIED IDEOGRAPH - ,0xD4CE ,0x4EDD //CJK UNIFIED IDEOGRAPH - ,0xD4CF ,0x51AC //CJK UNIFIED IDEOGRAPH - ,0xD4D0 ,0x51CD //CJK UNIFIED IDEOGRAPH - ,0xD4D1 ,0x52D5 //CJK UNIFIED IDEOGRAPH - ,0xD4D2 ,0x540C //CJK UNIFIED IDEOGRAPH - ,0xD4D3 ,0x61A7 //CJK UNIFIED IDEOGRAPH - ,0xD4D4 ,0x6771 //CJK UNIFIED IDEOGRAPH - ,0xD4D5 ,0x6850 //CJK UNIFIED IDEOGRAPH - ,0xD4D6 ,0x68DF //CJK UNIFIED IDEOGRAPH - ,0xD4D7 ,0x6D1E //CJK UNIFIED IDEOGRAPH - ,0xD4D8 ,0x6F7C //CJK UNIFIED IDEOGRAPH - ,0xD4D9 ,0x75BC //CJK UNIFIED IDEOGRAPH - ,0xD4DA ,0x77B3 //CJK UNIFIED IDEOGRAPH - ,0xD4DB ,0x7AE5 //CJK UNIFIED IDEOGRAPH - ,0xD4DC ,0x80F4 //CJK UNIFIED IDEOGRAPH - ,0xD4DD ,0x8463 //CJK UNIFIED IDEOGRAPH - ,0xD4DE ,0x9285 //CJK UNIFIED IDEOGRAPH - ,0xD4DF ,0x515C //CJK UNIFIED IDEOGRAPH - ,0xD4E0 ,0x6597 //CJK UNIFIED IDEOGRAPH - ,0xD4E1 ,0x675C //CJK UNIFIED IDEOGRAPH - ,0xD4E2 ,0x6793 //CJK UNIFIED IDEOGRAPH - ,0xD4E3 ,0x75D8 //CJK UNIFIED IDEOGRAPH - ,0xD4E4 ,0x7AC7 //CJK UNIFIED IDEOGRAPH - ,0xD4E5 ,0x8373 //CJK UNIFIED IDEOGRAPH - ,0xD4E6 ,0xF95A //CJK COMPATIBILITY IDEOGRAPH - ,0xD4E7 ,0x8C46 //CJK UNIFIED IDEOGRAPH - ,0xD4E8 ,0x9017 //CJK UNIFIED IDEOGRAPH - ,0xD4E9 ,0x982D //CJK UNIFIED IDEOGRAPH - ,0xD4EA ,0x5C6F //CJK UNIFIED IDEOGRAPH - ,0xD4EB ,0x81C0 //CJK UNIFIED IDEOGRAPH - ,0xD4EC ,0x829A //CJK UNIFIED IDEOGRAPH - ,0xD4ED ,0x9041 //CJK UNIFIED IDEOGRAPH - ,0xD4EE ,0x906F //CJK UNIFIED IDEOGRAPH - ,0xD4EF ,0x920D //CJK UNIFIED IDEOGRAPH - ,0xD4F0 ,0x5F97 //CJK UNIFIED IDEOGRAPH - ,0xD4F1 ,0x5D9D //CJK UNIFIED IDEOGRAPH - ,0xD4F2 ,0x6A59 //CJK UNIFIED IDEOGRAPH - ,0xD4F3 ,0x71C8 //CJK UNIFIED IDEOGRAPH - ,0xD4F4 ,0x767B //CJK UNIFIED IDEOGRAPH - ,0xD4F5 ,0x7B49 //CJK UNIFIED IDEOGRAPH - ,0xD4F6 ,0x85E4 //CJK UNIFIED IDEOGRAPH - ,0xD4F7 ,0x8B04 //CJK UNIFIED IDEOGRAPH - ,0xD4F8 ,0x9127 //CJK UNIFIED IDEOGRAPH - ,0xD4F9 ,0x9A30 //CJK UNIFIED IDEOGRAPH - ,0xD4FA ,0x5587 //CJK UNIFIED IDEOGRAPH - ,0xD4FB ,0x61F6 //CJK UNIFIED IDEOGRAPH - ,0xD4FC ,0xF95B //CJK COMPATIBILITY IDEOGRAPH - ,0xD4FD ,0x7669 //CJK UNIFIED IDEOGRAPH - ,0xD4FE ,0x7F85 //CJK UNIFIED IDEOGRAPH - ,0xD5A1 ,0x863F //CJK UNIFIED IDEOGRAPH - ,0xD5A2 ,0x87BA //CJK UNIFIED IDEOGRAPH - ,0xD5A3 ,0x88F8 //CJK UNIFIED IDEOGRAPH - ,0xD5A4 ,0x908F //CJK UNIFIED IDEOGRAPH - ,0xD5A5 ,0xF95C //CJK COMPATIBILITY IDEOGRAPH - ,0xD5A6 ,0x6D1B //CJK UNIFIED IDEOGRAPH - ,0xD5A7 ,0x70D9 //CJK UNIFIED IDEOGRAPH - ,0xD5A8 ,0x73DE //CJK UNIFIED IDEOGRAPH - ,0xD5A9 ,0x7D61 //CJK UNIFIED IDEOGRAPH - ,0xD5AA ,0x843D //CJK UNIFIED IDEOGRAPH - ,0xD5AB ,0xF95D //CJK COMPATIBILITY IDEOGRAPH - ,0xD5AC ,0x916A //CJK UNIFIED IDEOGRAPH - ,0xD5AD ,0x99F1 //CJK UNIFIED IDEOGRAPH - ,0xD5AE ,0xF95E //CJK COMPATIBILITY IDEOGRAPH - ,0xD5AF ,0x4E82 //CJK UNIFIED IDEOGRAPH - ,0xD5B0 ,0x5375 //CJK UNIFIED IDEOGRAPH - ,0xD5B1 ,0x6B04 //CJK UNIFIED IDEOGRAPH - ,0xD5B2 ,0x6B12 //CJK UNIFIED IDEOGRAPH - ,0xD5B3 ,0x703E //CJK UNIFIED IDEOGRAPH - ,0xD5B4 ,0x721B //CJK UNIFIED IDEOGRAPH - ,0xD5B5 ,0x862D //CJK UNIFIED IDEOGRAPH - ,0xD5B6 ,0x9E1E //CJK UNIFIED IDEOGRAPH - ,0xD5B7 ,0x524C //CJK UNIFIED IDEOGRAPH - ,0xD5B8 ,0x8FA3 //CJK UNIFIED IDEOGRAPH - ,0xD5B9 ,0x5D50 //CJK UNIFIED IDEOGRAPH - ,0xD5BA ,0x64E5 //CJK UNIFIED IDEOGRAPH - ,0xD5BB ,0x652C //CJK UNIFIED IDEOGRAPH - ,0xD5BC ,0x6B16 //CJK UNIFIED IDEOGRAPH - ,0xD5BD ,0x6FEB //CJK UNIFIED IDEOGRAPH - ,0xD5BE ,0x7C43 //CJK UNIFIED IDEOGRAPH - ,0xD5BF ,0x7E9C //CJK UNIFIED IDEOGRAPH - ,0xD5C0 ,0x85CD //CJK UNIFIED IDEOGRAPH - ,0xD5C1 ,0x8964 //CJK UNIFIED IDEOGRAPH - ,0xD5C2 ,0x89BD //CJK UNIFIED IDEOGRAPH - ,0xD5C3 ,0x62C9 //CJK UNIFIED IDEOGRAPH - ,0xD5C4 ,0x81D8 //CJK UNIFIED IDEOGRAPH - ,0xD5C5 ,0x881F //CJK UNIFIED IDEOGRAPH - ,0xD5C6 ,0x5ECA //CJK UNIFIED IDEOGRAPH - ,0xD5C7 ,0x6717 //CJK UNIFIED IDEOGRAPH - ,0xD5C8 ,0x6D6A //CJK UNIFIED IDEOGRAPH - ,0xD5C9 ,0x72FC //CJK UNIFIED IDEOGRAPH - ,0xD5CA ,0x7405 //CJK UNIFIED IDEOGRAPH - ,0xD5CB ,0x746F //CJK UNIFIED IDEOGRAPH - ,0xD5CC ,0x8782 //CJK UNIFIED IDEOGRAPH - ,0xD5CD ,0x90DE //CJK UNIFIED IDEOGRAPH - ,0xD5CE ,0x4F86 //CJK UNIFIED IDEOGRAPH - ,0xD5CF ,0x5D0D //CJK UNIFIED IDEOGRAPH - ,0xD5D0 ,0x5FA0 //CJK UNIFIED IDEOGRAPH - ,0xD5D1 ,0x840A //CJK UNIFIED IDEOGRAPH - ,0xD5D2 ,0x51B7 //CJK UNIFIED IDEOGRAPH - ,0xD5D3 ,0x63A0 //CJK UNIFIED IDEOGRAPH - ,0xD5D4 ,0x7565 //CJK UNIFIED IDEOGRAPH - ,0xD5D5 ,0x4EAE //CJK UNIFIED IDEOGRAPH - ,0xD5D6 ,0x5006 //CJK UNIFIED IDEOGRAPH - ,0xD5D7 ,0x5169 //CJK UNIFIED IDEOGRAPH - ,0xD5D8 ,0x51C9 //CJK UNIFIED IDEOGRAPH - ,0xD5D9 ,0x6881 //CJK UNIFIED IDEOGRAPH - ,0xD5DA ,0x6A11 //CJK UNIFIED IDEOGRAPH - ,0xD5DB ,0x7CAE //CJK UNIFIED IDEOGRAPH - ,0xD5DC ,0x7CB1 //CJK UNIFIED IDEOGRAPH - ,0xD5DD ,0x7CE7 //CJK UNIFIED IDEOGRAPH - ,0xD5DE ,0x826F //CJK UNIFIED IDEOGRAPH - ,0xD5DF ,0x8AD2 //CJK UNIFIED IDEOGRAPH - ,0xD5E0 ,0x8F1B //CJK UNIFIED IDEOGRAPH - ,0xD5E1 ,0x91CF //CJK UNIFIED IDEOGRAPH - ,0xD5E2 ,0x4FB6 //CJK UNIFIED IDEOGRAPH - ,0xD5E3 ,0x5137 //CJK UNIFIED IDEOGRAPH - ,0xD5E4 ,0x52F5 //CJK UNIFIED IDEOGRAPH - ,0xD5E5 ,0x5442 //CJK UNIFIED IDEOGRAPH - ,0xD5E6 ,0x5EEC //CJK UNIFIED IDEOGRAPH - ,0xD5E7 ,0x616E //CJK UNIFIED IDEOGRAPH - ,0xD5E8 ,0x623E //CJK UNIFIED IDEOGRAPH - ,0xD5E9 ,0x65C5 //CJK UNIFIED IDEOGRAPH - ,0xD5EA ,0x6ADA //CJK UNIFIED IDEOGRAPH - ,0xD5EB ,0x6FFE //CJK UNIFIED IDEOGRAPH - ,0xD5EC ,0x792A //CJK UNIFIED IDEOGRAPH - ,0xD5ED ,0x85DC //CJK UNIFIED IDEOGRAPH - ,0xD5EE ,0x8823 //CJK UNIFIED IDEOGRAPH - ,0xD5EF ,0x95AD //CJK UNIFIED IDEOGRAPH - ,0xD5F0 ,0x9A62 //CJK UNIFIED IDEOGRAPH - ,0xD5F1 ,0x9A6A //CJK UNIFIED IDEOGRAPH - ,0xD5F2 ,0x9E97 //CJK UNIFIED IDEOGRAPH - ,0xD5F3 ,0x9ECE //CJK UNIFIED IDEOGRAPH - ,0xD5F4 ,0x529B //CJK UNIFIED IDEOGRAPH - ,0xD5F5 ,0x66C6 //CJK UNIFIED IDEOGRAPH - ,0xD5F6 ,0x6B77 //CJK UNIFIED IDEOGRAPH - ,0xD5F7 ,0x701D //CJK UNIFIED IDEOGRAPH - ,0xD5F8 ,0x792B //CJK UNIFIED IDEOGRAPH - ,0xD5F9 ,0x8F62 //CJK UNIFIED IDEOGRAPH - ,0xD5FA ,0x9742 //CJK UNIFIED IDEOGRAPH - ,0xD5FB ,0x6190 //CJK UNIFIED IDEOGRAPH - ,0xD5FC ,0x6200 //CJK UNIFIED IDEOGRAPH - ,0xD5FD ,0x6523 //CJK UNIFIED IDEOGRAPH - ,0xD5FE ,0x6F23 //CJK UNIFIED IDEOGRAPH - ,0xD6A1 ,0x7149 //CJK UNIFIED IDEOGRAPH - ,0xD6A2 ,0x7489 //CJK UNIFIED IDEOGRAPH - ,0xD6A3 ,0x7DF4 //CJK UNIFIED IDEOGRAPH - ,0xD6A4 ,0x806F //CJK UNIFIED IDEOGRAPH - ,0xD6A5 ,0x84EE //CJK UNIFIED IDEOGRAPH - ,0xD6A6 ,0x8F26 //CJK UNIFIED IDEOGRAPH - ,0xD6A7 ,0x9023 //CJK UNIFIED IDEOGRAPH - ,0xD6A8 ,0x934A //CJK UNIFIED IDEOGRAPH - ,0xD6A9 ,0x51BD //CJK UNIFIED IDEOGRAPH - ,0xD6AA ,0x5217 //CJK UNIFIED IDEOGRAPH - ,0xD6AB ,0x52A3 //CJK UNIFIED IDEOGRAPH - ,0xD6AC ,0x6D0C //CJK UNIFIED IDEOGRAPH - ,0xD6AD ,0x70C8 //CJK UNIFIED IDEOGRAPH - ,0xD6AE ,0x88C2 //CJK UNIFIED IDEOGRAPH - ,0xD6AF ,0x5EC9 //CJK UNIFIED IDEOGRAPH - ,0xD6B0 ,0x6582 //CJK UNIFIED IDEOGRAPH - ,0xD6B1 ,0x6BAE //CJK UNIFIED IDEOGRAPH - ,0xD6B2 ,0x6FC2 //CJK UNIFIED IDEOGRAPH - ,0xD6B3 ,0x7C3E //CJK UNIFIED IDEOGRAPH - ,0xD6B4 ,0x7375 //CJK UNIFIED IDEOGRAPH - ,0xD6B5 ,0x4EE4 //CJK UNIFIED IDEOGRAPH - ,0xD6B6 ,0x4F36 //CJK UNIFIED IDEOGRAPH - ,0xD6B7 ,0x56F9 //CJK UNIFIED IDEOGRAPH - ,0xD6B8 ,0xF95F //CJK COMPATIBILITY IDEOGRAPH - ,0xD6B9 ,0x5CBA //CJK UNIFIED IDEOGRAPH - ,0xD6BA ,0x5DBA //CJK UNIFIED IDEOGRAPH - ,0xD6BB ,0x601C //CJK UNIFIED IDEOGRAPH - ,0xD6BC ,0x73B2 //CJK UNIFIED IDEOGRAPH - ,0xD6BD ,0x7B2D //CJK UNIFIED IDEOGRAPH - ,0xD6BE ,0x7F9A //CJK UNIFIED IDEOGRAPH - ,0xD6BF ,0x7FCE //CJK UNIFIED IDEOGRAPH - ,0xD6C0 ,0x8046 //CJK UNIFIED IDEOGRAPH - ,0xD6C1 ,0x901E //CJK UNIFIED IDEOGRAPH - ,0xD6C2 ,0x9234 //CJK UNIFIED IDEOGRAPH - ,0xD6C3 ,0x96F6 //CJK UNIFIED IDEOGRAPH - ,0xD6C4 ,0x9748 //CJK UNIFIED IDEOGRAPH - ,0xD6C5 ,0x9818 //CJK UNIFIED IDEOGRAPH - ,0xD6C6 ,0x9F61 //CJK UNIFIED IDEOGRAPH - ,0xD6C7 ,0x4F8B //CJK UNIFIED IDEOGRAPH - ,0xD6C8 ,0x6FA7 //CJK UNIFIED IDEOGRAPH - ,0xD6C9 ,0x79AE //CJK UNIFIED IDEOGRAPH - ,0xD6CA ,0x91B4 //CJK UNIFIED IDEOGRAPH - ,0xD6CB ,0x96B7 //CJK UNIFIED IDEOGRAPH - ,0xD6CC ,0x52DE //CJK UNIFIED IDEOGRAPH - ,0xD6CD ,0xF960 //CJK COMPATIBILITY IDEOGRAPH - ,0xD6CE ,0x6488 //CJK UNIFIED IDEOGRAPH - ,0xD6CF ,0x64C4 //CJK UNIFIED IDEOGRAPH - ,0xD6D0 ,0x6AD3 //CJK UNIFIED IDEOGRAPH - ,0xD6D1 ,0x6F5E //CJK UNIFIED IDEOGRAPH - ,0xD6D2 ,0x7018 //CJK UNIFIED IDEOGRAPH - ,0xD6D3 ,0x7210 //CJK UNIFIED IDEOGRAPH - ,0xD6D4 ,0x76E7 //CJK UNIFIED IDEOGRAPH - ,0xD6D5 ,0x8001 //CJK UNIFIED IDEOGRAPH - ,0xD6D6 ,0x8606 //CJK UNIFIED IDEOGRAPH - ,0xD6D7 ,0x865C //CJK UNIFIED IDEOGRAPH - ,0xD6D8 ,0x8DEF //CJK UNIFIED IDEOGRAPH - ,0xD6D9 ,0x8F05 //CJK UNIFIED IDEOGRAPH - ,0xD6DA ,0x9732 //CJK UNIFIED IDEOGRAPH - ,0xD6DB ,0x9B6F //CJK UNIFIED IDEOGRAPH - ,0xD6DC ,0x9DFA //CJK UNIFIED IDEOGRAPH - ,0xD6DD ,0x9E75 //CJK UNIFIED IDEOGRAPH - ,0xD6DE ,0x788C //CJK UNIFIED IDEOGRAPH - ,0xD6DF ,0x797F //CJK UNIFIED IDEOGRAPH - ,0xD6E0 ,0x7DA0 //CJK UNIFIED IDEOGRAPH - ,0xD6E1 ,0x83C9 //CJK UNIFIED IDEOGRAPH - ,0xD6E2 ,0x9304 //CJK UNIFIED IDEOGRAPH - ,0xD6E3 ,0x9E7F //CJK UNIFIED IDEOGRAPH - ,0xD6E4 ,0x9E93 //CJK UNIFIED IDEOGRAPH - ,0xD6E5 ,0x8AD6 //CJK UNIFIED IDEOGRAPH - ,0xD6E6 ,0x58DF //CJK UNIFIED IDEOGRAPH - ,0xD6E7 ,0x5F04 //CJK UNIFIED IDEOGRAPH - ,0xD6E8 ,0x6727 //CJK UNIFIED IDEOGRAPH - ,0xD6E9 ,0x7027 //CJK UNIFIED IDEOGRAPH - ,0xD6EA ,0x74CF //CJK UNIFIED IDEOGRAPH - ,0xD6EB ,0x7C60 //CJK UNIFIED IDEOGRAPH - ,0xD6EC ,0x807E //CJK UNIFIED IDEOGRAPH - ,0xD6ED ,0x5121 //CJK UNIFIED IDEOGRAPH - ,0xD6EE ,0x7028 //CJK UNIFIED IDEOGRAPH - ,0xD6EF ,0x7262 //CJK UNIFIED IDEOGRAPH - ,0xD6F0 ,0x78CA //CJK UNIFIED IDEOGRAPH - ,0xD6F1 ,0x8CC2 //CJK UNIFIED IDEOGRAPH - ,0xD6F2 ,0x8CDA //CJK UNIFIED IDEOGRAPH - ,0xD6F3 ,0x8CF4 //CJK UNIFIED IDEOGRAPH - ,0xD6F4 ,0x96F7 //CJK UNIFIED IDEOGRAPH - ,0xD6F5 ,0x4E86 //CJK UNIFIED IDEOGRAPH - ,0xD6F6 ,0x50DA //CJK UNIFIED IDEOGRAPH - ,0xD6F7 ,0x5BEE //CJK UNIFIED IDEOGRAPH - ,0xD6F8 ,0x5ED6 //CJK UNIFIED IDEOGRAPH - ,0xD6F9 ,0x6599 //CJK UNIFIED IDEOGRAPH - ,0xD6FA ,0x71CE //CJK UNIFIED IDEOGRAPH - ,0xD6FB ,0x7642 //CJK UNIFIED IDEOGRAPH - ,0xD6FC ,0x77AD //CJK UNIFIED IDEOGRAPH - ,0xD6FD ,0x804A //CJK UNIFIED IDEOGRAPH - ,0xD6FE ,0x84FC //CJK UNIFIED IDEOGRAPH - ,0xD7A1 ,0x907C //CJK UNIFIED IDEOGRAPH - ,0xD7A2 ,0x9B27 //CJK UNIFIED IDEOGRAPH - ,0xD7A3 ,0x9F8D //CJK UNIFIED IDEOGRAPH - ,0xD7A4 ,0x58D8 //CJK UNIFIED IDEOGRAPH - ,0xD7A5 ,0x5A41 //CJK UNIFIED IDEOGRAPH - ,0xD7A6 ,0x5C62 //CJK UNIFIED IDEOGRAPH - ,0xD7A7 ,0x6A13 //CJK UNIFIED IDEOGRAPH - ,0xD7A8 ,0x6DDA //CJK UNIFIED IDEOGRAPH - ,0xD7A9 ,0x6F0F //CJK UNIFIED IDEOGRAPH - ,0xD7AA ,0x763B //CJK UNIFIED IDEOGRAPH - ,0xD7AB ,0x7D2F //CJK UNIFIED IDEOGRAPH - ,0xD7AC ,0x7E37 //CJK UNIFIED IDEOGRAPH - ,0xD7AD ,0x851E //CJK UNIFIED IDEOGRAPH - ,0xD7AE ,0x8938 //CJK UNIFIED IDEOGRAPH - ,0xD7AF ,0x93E4 //CJK UNIFIED IDEOGRAPH - ,0xD7B0 ,0x964B //CJK UNIFIED IDEOGRAPH - ,0xD7B1 ,0x5289 //CJK UNIFIED IDEOGRAPH - ,0xD7B2 ,0x65D2 //CJK UNIFIED IDEOGRAPH - ,0xD7B3 ,0x67F3 //CJK UNIFIED IDEOGRAPH - ,0xD7B4 ,0x69B4 //CJK UNIFIED IDEOGRAPH - ,0xD7B5 ,0x6D41 //CJK UNIFIED IDEOGRAPH - ,0xD7B6 ,0x6E9C //CJK UNIFIED IDEOGRAPH - ,0xD7B7 ,0x700F //CJK UNIFIED IDEOGRAPH - ,0xD7B8 ,0x7409 //CJK UNIFIED IDEOGRAPH - ,0xD7B9 ,0x7460 //CJK UNIFIED IDEOGRAPH - ,0xD7BA ,0x7559 //CJK UNIFIED IDEOGRAPH - ,0xD7BB ,0x7624 //CJK UNIFIED IDEOGRAPH - ,0xD7BC ,0x786B //CJK UNIFIED IDEOGRAPH - ,0xD7BD ,0x8B2C //CJK UNIFIED IDEOGRAPH - ,0xD7BE ,0x985E //CJK UNIFIED IDEOGRAPH - ,0xD7BF ,0x516D //CJK UNIFIED IDEOGRAPH - ,0xD7C0 ,0x622E //CJK UNIFIED IDEOGRAPH - ,0xD7C1 ,0x9678 //CJK UNIFIED IDEOGRAPH - ,0xD7C2 ,0x4F96 //CJK UNIFIED IDEOGRAPH - ,0xD7C3 ,0x502B //CJK UNIFIED IDEOGRAPH - ,0xD7C4 ,0x5D19 //CJK UNIFIED IDEOGRAPH - ,0xD7C5 ,0x6DEA //CJK UNIFIED IDEOGRAPH - ,0xD7C6 ,0x7DB8 //CJK UNIFIED IDEOGRAPH - ,0xD7C7 ,0x8F2A //CJK UNIFIED IDEOGRAPH - ,0xD7C8 ,0x5F8B //CJK UNIFIED IDEOGRAPH - ,0xD7C9 ,0x6144 //CJK UNIFIED IDEOGRAPH - ,0xD7CA ,0x6817 //CJK UNIFIED IDEOGRAPH - ,0xD7CB ,0xF961 //CJK COMPATIBILITY IDEOGRAPH - ,0xD7CC ,0x9686 //CJK UNIFIED IDEOGRAPH - ,0xD7CD ,0x52D2 //CJK UNIFIED IDEOGRAPH - ,0xD7CE ,0x808B //CJK UNIFIED IDEOGRAPH - ,0xD7CF ,0x51DC //CJK UNIFIED IDEOGRAPH - ,0xD7D0 ,0x51CC //CJK UNIFIED IDEOGRAPH - ,0xD7D1 ,0x695E //CJK UNIFIED IDEOGRAPH - ,0xD7D2 ,0x7A1C //CJK UNIFIED IDEOGRAPH - ,0xD7D3 ,0x7DBE //CJK UNIFIED IDEOGRAPH - ,0xD7D4 ,0x83F1 //CJK UNIFIED IDEOGRAPH - ,0xD7D5 ,0x9675 //CJK UNIFIED IDEOGRAPH - ,0xD7D6 ,0x4FDA //CJK UNIFIED IDEOGRAPH - ,0xD7D7 ,0x5229 //CJK UNIFIED IDEOGRAPH - ,0xD7D8 ,0x5398 //CJK UNIFIED IDEOGRAPH - ,0xD7D9 ,0x540F //CJK UNIFIED IDEOGRAPH - ,0xD7DA ,0x550E //CJK UNIFIED IDEOGRAPH - ,0xD7DB ,0x5C65 //CJK UNIFIED IDEOGRAPH - ,0xD7DC ,0x60A7 //CJK UNIFIED IDEOGRAPH - ,0xD7DD ,0x674E //CJK UNIFIED IDEOGRAPH - ,0xD7DE ,0x68A8 //CJK UNIFIED IDEOGRAPH - ,0xD7DF ,0x6D6C //CJK UNIFIED IDEOGRAPH - ,0xD7E0 ,0x7281 //CJK UNIFIED IDEOGRAPH - ,0xD7E1 ,0x72F8 //CJK UNIFIED IDEOGRAPH - ,0xD7E2 ,0x7406 //CJK UNIFIED IDEOGRAPH - ,0xD7E3 ,0x7483 //CJK UNIFIED IDEOGRAPH - ,0xD7E4 ,0xF962 //CJK COMPATIBILITY IDEOGRAPH - ,0xD7E5 ,0x75E2 //CJK UNIFIED IDEOGRAPH - ,0xD7E6 ,0x7C6C //CJK UNIFIED IDEOGRAPH - ,0xD7E7 ,0x7F79 //CJK UNIFIED IDEOGRAPH - ,0xD7E8 ,0x7FB8 //CJK UNIFIED IDEOGRAPH - ,0xD7E9 ,0x8389 //CJK UNIFIED IDEOGRAPH - ,0xD7EA ,0x88CF //CJK UNIFIED IDEOGRAPH - ,0xD7EB ,0x88E1 //CJK UNIFIED IDEOGRAPH - ,0xD7EC ,0x91CC //CJK UNIFIED IDEOGRAPH - ,0xD7ED ,0x91D0 //CJK UNIFIED IDEOGRAPH - ,0xD7EE ,0x96E2 //CJK UNIFIED IDEOGRAPH - ,0xD7EF ,0x9BC9 //CJK UNIFIED IDEOGRAPH - ,0xD7F0 ,0x541D //CJK UNIFIED IDEOGRAPH - ,0xD7F1 ,0x6F7E //CJK UNIFIED IDEOGRAPH - ,0xD7F2 ,0x71D0 //CJK UNIFIED IDEOGRAPH - ,0xD7F3 ,0x7498 //CJK UNIFIED IDEOGRAPH - ,0xD7F4 ,0x85FA //CJK UNIFIED IDEOGRAPH - ,0xD7F5 ,0x8EAA //CJK UNIFIED IDEOGRAPH - ,0xD7F6 ,0x96A3 //CJK UNIFIED IDEOGRAPH - ,0xD7F7 ,0x9C57 //CJK UNIFIED IDEOGRAPH - ,0xD7F8 ,0x9E9F //CJK UNIFIED IDEOGRAPH - ,0xD7F9 ,0x6797 //CJK UNIFIED IDEOGRAPH - ,0xD7FA ,0x6DCB //CJK UNIFIED IDEOGRAPH - ,0xD7FB ,0x7433 //CJK UNIFIED IDEOGRAPH - ,0xD7FC ,0x81E8 //CJK UNIFIED IDEOGRAPH - ,0xD7FD ,0x9716 //CJK UNIFIED IDEOGRAPH - ,0xD7FE ,0x782C //CJK UNIFIED IDEOGRAPH - ,0xD8A1 ,0x7ACB //CJK UNIFIED IDEOGRAPH - ,0xD8A2 ,0x7B20 //CJK UNIFIED IDEOGRAPH - ,0xD8A3 ,0x7C92 //CJK UNIFIED IDEOGRAPH - ,0xD8A4 ,0x6469 //CJK UNIFIED IDEOGRAPH - ,0xD8A5 ,0x746A //CJK UNIFIED IDEOGRAPH - ,0xD8A6 ,0x75F2 //CJK UNIFIED IDEOGRAPH - ,0xD8A7 ,0x78BC //CJK UNIFIED IDEOGRAPH - ,0xD8A8 ,0x78E8 //CJK UNIFIED IDEOGRAPH - ,0xD8A9 ,0x99AC //CJK UNIFIED IDEOGRAPH - ,0xD8AA ,0x9B54 //CJK UNIFIED IDEOGRAPH - ,0xD8AB ,0x9EBB //CJK UNIFIED IDEOGRAPH - ,0xD8AC ,0x5BDE //CJK UNIFIED IDEOGRAPH - ,0xD8AD ,0x5E55 //CJK UNIFIED IDEOGRAPH - ,0xD8AE ,0x6F20 //CJK UNIFIED IDEOGRAPH - ,0xD8AF ,0x819C //CJK UNIFIED IDEOGRAPH - ,0xD8B0 ,0x83AB //CJK UNIFIED IDEOGRAPH - ,0xD8B1 ,0x9088 //CJK UNIFIED IDEOGRAPH - ,0xD8B2 ,0x4E07 //CJK UNIFIED IDEOGRAPH - ,0xD8B3 ,0x534D //CJK UNIFIED IDEOGRAPH - ,0xD8B4 ,0x5A29 //CJK UNIFIED IDEOGRAPH - ,0xD8B5 ,0x5DD2 //CJK UNIFIED IDEOGRAPH - ,0xD8B6 ,0x5F4E //CJK UNIFIED IDEOGRAPH - ,0xD8B7 ,0x6162 //CJK UNIFIED IDEOGRAPH - ,0xD8B8 ,0x633D //CJK UNIFIED IDEOGRAPH - ,0xD8B9 ,0x6669 //CJK UNIFIED IDEOGRAPH - ,0xD8BA ,0x66FC //CJK UNIFIED IDEOGRAPH - ,0xD8BB ,0x6EFF //CJK UNIFIED IDEOGRAPH - ,0xD8BC ,0x6F2B //CJK UNIFIED IDEOGRAPH - ,0xD8BD ,0x7063 //CJK UNIFIED IDEOGRAPH - ,0xD8BE ,0x779E //CJK UNIFIED IDEOGRAPH - ,0xD8BF ,0x842C //CJK UNIFIED IDEOGRAPH - ,0xD8C0 ,0x8513 //CJK UNIFIED IDEOGRAPH - ,0xD8C1 ,0x883B //CJK UNIFIED IDEOGRAPH - ,0xD8C2 ,0x8F13 //CJK UNIFIED IDEOGRAPH - ,0xD8C3 ,0x9945 //CJK UNIFIED IDEOGRAPH - ,0xD8C4 ,0x9C3B //CJK UNIFIED IDEOGRAPH - ,0xD8C5 ,0x551C //CJK UNIFIED IDEOGRAPH - ,0xD8C6 ,0x62B9 //CJK UNIFIED IDEOGRAPH - ,0xD8C7 ,0x672B //CJK UNIFIED IDEOGRAPH - ,0xD8C8 ,0x6CAB //CJK UNIFIED IDEOGRAPH - ,0xD8C9 ,0x8309 //CJK UNIFIED IDEOGRAPH - ,0xD8CA ,0x896A //CJK UNIFIED IDEOGRAPH - ,0xD8CB ,0x977A //CJK UNIFIED IDEOGRAPH - ,0xD8CC ,0x4EA1 //CJK UNIFIED IDEOGRAPH - ,0xD8CD ,0x5984 //CJK UNIFIED IDEOGRAPH - ,0xD8CE ,0x5FD8 //CJK UNIFIED IDEOGRAPH - ,0xD8CF ,0x5FD9 //CJK UNIFIED IDEOGRAPH - ,0xD8D0 ,0x671B //CJK UNIFIED IDEOGRAPH - ,0xD8D1 ,0x7DB2 //CJK UNIFIED IDEOGRAPH - ,0xD8D2 ,0x7F54 //CJK UNIFIED IDEOGRAPH - ,0xD8D3 ,0x8292 //CJK UNIFIED IDEOGRAPH - ,0xD8D4 ,0x832B //CJK UNIFIED IDEOGRAPH - ,0xD8D5 ,0x83BD //CJK UNIFIED IDEOGRAPH - ,0xD8D6 ,0x8F1E //CJK UNIFIED IDEOGRAPH - ,0xD8D7 ,0x9099 //CJK UNIFIED IDEOGRAPH - ,0xD8D8 ,0x57CB //CJK UNIFIED IDEOGRAPH - ,0xD8D9 ,0x59B9 //CJK UNIFIED IDEOGRAPH - ,0xD8DA ,0x5A92 //CJK UNIFIED IDEOGRAPH - ,0xD8DB ,0x5BD0 //CJK UNIFIED IDEOGRAPH - ,0xD8DC ,0x6627 //CJK UNIFIED IDEOGRAPH - ,0xD8DD ,0x679A //CJK UNIFIED IDEOGRAPH - ,0xD8DE ,0x6885 //CJK UNIFIED IDEOGRAPH - ,0xD8DF ,0x6BCF //CJK UNIFIED IDEOGRAPH - ,0xD8E0 ,0x7164 //CJK UNIFIED IDEOGRAPH - ,0xD8E1 ,0x7F75 //CJK UNIFIED IDEOGRAPH - ,0xD8E2 ,0x8CB7 //CJK UNIFIED IDEOGRAPH - ,0xD8E3 ,0x8CE3 //CJK UNIFIED IDEOGRAPH - ,0xD8E4 ,0x9081 //CJK UNIFIED IDEOGRAPH - ,0xD8E5 ,0x9B45 //CJK UNIFIED IDEOGRAPH - ,0xD8E6 ,0x8108 //CJK UNIFIED IDEOGRAPH - ,0xD8E7 ,0x8C8A //CJK UNIFIED IDEOGRAPH - ,0xD8E8 ,0x964C //CJK UNIFIED IDEOGRAPH - ,0xD8E9 ,0x9A40 //CJK UNIFIED IDEOGRAPH - ,0xD8EA ,0x9EA5 //CJK UNIFIED IDEOGRAPH - ,0xD8EB ,0x5B5F //CJK UNIFIED IDEOGRAPH - ,0xD8EC ,0x6C13 //CJK UNIFIED IDEOGRAPH - ,0xD8ED ,0x731B //CJK UNIFIED IDEOGRAPH - ,0xD8EE ,0x76F2 //CJK UNIFIED IDEOGRAPH - ,0xD8EF ,0x76DF //CJK UNIFIED IDEOGRAPH - ,0xD8F0 ,0x840C //CJK UNIFIED IDEOGRAPH - ,0xD8F1 ,0x51AA //CJK UNIFIED IDEOGRAPH - ,0xD8F2 ,0x8993 //CJK UNIFIED IDEOGRAPH - ,0xD8F3 ,0x514D //CJK UNIFIED IDEOGRAPH - ,0xD8F4 ,0x5195 //CJK UNIFIED IDEOGRAPH - ,0xD8F5 ,0x52C9 //CJK UNIFIED IDEOGRAPH - ,0xD8F6 ,0x68C9 //CJK UNIFIED IDEOGRAPH - ,0xD8F7 ,0x6C94 //CJK UNIFIED IDEOGRAPH - ,0xD8F8 ,0x7704 //CJK UNIFIED IDEOGRAPH - ,0xD8F9 ,0x7720 //CJK UNIFIED IDEOGRAPH - ,0xD8FA ,0x7DBF //CJK UNIFIED IDEOGRAPH - ,0xD8FB ,0x7DEC //CJK UNIFIED IDEOGRAPH - ,0xD8FC ,0x9762 //CJK UNIFIED IDEOGRAPH - ,0xD8FD ,0x9EB5 //CJK UNIFIED IDEOGRAPH - ,0xD8FE ,0x6EC5 //CJK UNIFIED IDEOGRAPH - ,0xD9A1 ,0x8511 //CJK UNIFIED IDEOGRAPH - ,0xD9A2 ,0x51A5 //CJK UNIFIED IDEOGRAPH - ,0xD9A3 ,0x540D //CJK UNIFIED IDEOGRAPH - ,0xD9A4 ,0x547D //CJK UNIFIED IDEOGRAPH - ,0xD9A5 ,0x660E //CJK UNIFIED IDEOGRAPH - ,0xD9A6 ,0x669D //CJK UNIFIED IDEOGRAPH - ,0xD9A7 ,0x6927 //CJK UNIFIED IDEOGRAPH - ,0xD9A8 ,0x6E9F //CJK UNIFIED IDEOGRAPH - ,0xD9A9 ,0x76BF //CJK UNIFIED IDEOGRAPH - ,0xD9AA ,0x7791 //CJK UNIFIED IDEOGRAPH - ,0xD9AB ,0x8317 //CJK UNIFIED IDEOGRAPH - ,0xD9AC ,0x84C2 //CJK UNIFIED IDEOGRAPH - ,0xD9AD ,0x879F //CJK UNIFIED IDEOGRAPH - ,0xD9AE ,0x9169 //CJK UNIFIED IDEOGRAPH - ,0xD9AF ,0x9298 //CJK UNIFIED IDEOGRAPH - ,0xD9B0 ,0x9CF4 //CJK UNIFIED IDEOGRAPH - ,0xD9B1 ,0x8882 //CJK UNIFIED IDEOGRAPH - ,0xD9B2 ,0x4FAE //CJK UNIFIED IDEOGRAPH - ,0xD9B3 ,0x5192 //CJK UNIFIED IDEOGRAPH - ,0xD9B4 ,0x52DF //CJK UNIFIED IDEOGRAPH - ,0xD9B5 ,0x59C6 //CJK UNIFIED IDEOGRAPH - ,0xD9B6 ,0x5E3D //CJK UNIFIED IDEOGRAPH - ,0xD9B7 ,0x6155 //CJK UNIFIED IDEOGRAPH - ,0xD9B8 ,0x6478 //CJK UNIFIED IDEOGRAPH - ,0xD9B9 ,0x6479 //CJK UNIFIED IDEOGRAPH - ,0xD9BA ,0x66AE //CJK UNIFIED IDEOGRAPH - ,0xD9BB ,0x67D0 //CJK UNIFIED IDEOGRAPH - ,0xD9BC ,0x6A21 //CJK UNIFIED IDEOGRAPH - ,0xD9BD ,0x6BCD //CJK UNIFIED IDEOGRAPH - ,0xD9BE ,0x6BDB //CJK UNIFIED IDEOGRAPH - ,0xD9BF ,0x725F //CJK UNIFIED IDEOGRAPH - ,0xD9C0 ,0x7261 //CJK UNIFIED IDEOGRAPH - ,0xD9C1 ,0x7441 //CJK UNIFIED IDEOGRAPH - ,0xD9C2 ,0x7738 //CJK UNIFIED IDEOGRAPH - ,0xD9C3 ,0x77DB //CJK UNIFIED IDEOGRAPH - ,0xD9C4 ,0x8017 //CJK UNIFIED IDEOGRAPH - ,0xD9C5 ,0x82BC //CJK UNIFIED IDEOGRAPH - ,0xD9C6 ,0x8305 //CJK UNIFIED IDEOGRAPH - ,0xD9C7 ,0x8B00 //CJK UNIFIED IDEOGRAPH - ,0xD9C8 ,0x8B28 //CJK UNIFIED IDEOGRAPH - ,0xD9C9 ,0x8C8C //CJK UNIFIED IDEOGRAPH - ,0xD9CA ,0x6728 //CJK UNIFIED IDEOGRAPH - ,0xD9CB ,0x6C90 //CJK UNIFIED IDEOGRAPH - ,0xD9CC ,0x7267 //CJK UNIFIED IDEOGRAPH - ,0xD9CD ,0x76EE //CJK UNIFIED IDEOGRAPH - ,0xD9CE ,0x7766 //CJK UNIFIED IDEOGRAPH - ,0xD9CF ,0x7A46 //CJK UNIFIED IDEOGRAPH - ,0xD9D0 ,0x9DA9 //CJK UNIFIED IDEOGRAPH - ,0xD9D1 ,0x6B7F //CJK UNIFIED IDEOGRAPH - ,0xD9D2 ,0x6C92 //CJK UNIFIED IDEOGRAPH - ,0xD9D3 ,0x5922 //CJK UNIFIED IDEOGRAPH - ,0xD9D4 ,0x6726 //CJK UNIFIED IDEOGRAPH - ,0xD9D5 ,0x8499 //CJK UNIFIED IDEOGRAPH - ,0xD9D6 ,0x536F //CJK UNIFIED IDEOGRAPH - ,0xD9D7 ,0x5893 //CJK UNIFIED IDEOGRAPH - ,0xD9D8 ,0x5999 //CJK UNIFIED IDEOGRAPH - ,0xD9D9 ,0x5EDF //CJK UNIFIED IDEOGRAPH - ,0xD9DA ,0x63CF //CJK UNIFIED IDEOGRAPH - ,0xD9DB ,0x6634 //CJK UNIFIED IDEOGRAPH - ,0xD9DC ,0x6773 //CJK UNIFIED IDEOGRAPH - ,0xD9DD ,0x6E3A //CJK UNIFIED IDEOGRAPH - ,0xD9DE ,0x732B //CJK UNIFIED IDEOGRAPH - ,0xD9DF ,0x7AD7 //CJK UNIFIED IDEOGRAPH - ,0xD9E0 ,0x82D7 //CJK UNIFIED IDEOGRAPH - ,0xD9E1 ,0x9328 //CJK UNIFIED IDEOGRAPH - ,0xD9E2 ,0x52D9 //CJK UNIFIED IDEOGRAPH - ,0xD9E3 ,0x5DEB //CJK UNIFIED IDEOGRAPH - ,0xD9E4 ,0x61AE //CJK UNIFIED IDEOGRAPH - ,0xD9E5 ,0x61CB //CJK UNIFIED IDEOGRAPH - ,0xD9E6 ,0x620A //CJK UNIFIED IDEOGRAPH - ,0xD9E7 ,0x62C7 //CJK UNIFIED IDEOGRAPH - ,0xD9E8 ,0x64AB //CJK UNIFIED IDEOGRAPH - ,0xD9E9 ,0x65E0 //CJK UNIFIED IDEOGRAPH - ,0xD9EA ,0x6959 //CJK UNIFIED IDEOGRAPH - ,0xD9EB ,0x6B66 //CJK UNIFIED IDEOGRAPH - ,0xD9EC ,0x6BCB //CJK UNIFIED IDEOGRAPH - ,0xD9ED ,0x7121 //CJK UNIFIED IDEOGRAPH - ,0xD9EE ,0x73F7 //CJK UNIFIED IDEOGRAPH - ,0xD9EF ,0x755D //CJK UNIFIED IDEOGRAPH - ,0xD9F0 ,0x7E46 //CJK UNIFIED IDEOGRAPH - ,0xD9F1 ,0x821E //CJK UNIFIED IDEOGRAPH - ,0xD9F2 ,0x8302 //CJK UNIFIED IDEOGRAPH - ,0xD9F3 ,0x856A //CJK UNIFIED IDEOGRAPH - ,0xD9F4 ,0x8AA3 //CJK UNIFIED IDEOGRAPH - ,0xD9F5 ,0x8CBF //CJK UNIFIED IDEOGRAPH - ,0xD9F6 ,0x9727 //CJK UNIFIED IDEOGRAPH - ,0xD9F7 ,0x9D61 //CJK UNIFIED IDEOGRAPH - ,0xD9F8 ,0x58A8 //CJK UNIFIED IDEOGRAPH - ,0xD9F9 ,0x9ED8 //CJK UNIFIED IDEOGRAPH - ,0xD9FA ,0x5011 //CJK UNIFIED IDEOGRAPH - ,0xD9FB ,0x520E //CJK UNIFIED IDEOGRAPH - ,0xD9FC ,0x543B //CJK UNIFIED IDEOGRAPH - ,0xD9FD ,0x554F //CJK UNIFIED IDEOGRAPH - ,0xD9FE ,0x6587 //CJK UNIFIED IDEOGRAPH - ,0xDAA1 ,0x6C76 //CJK UNIFIED IDEOGRAPH - ,0xDAA2 ,0x7D0A //CJK UNIFIED IDEOGRAPH - ,0xDAA3 ,0x7D0B //CJK UNIFIED IDEOGRAPH - ,0xDAA4 ,0x805E //CJK UNIFIED IDEOGRAPH - ,0xDAA5 ,0x868A //CJK UNIFIED IDEOGRAPH - ,0xDAA6 ,0x9580 //CJK UNIFIED IDEOGRAPH - ,0xDAA7 ,0x96EF //CJK UNIFIED IDEOGRAPH - ,0xDAA8 ,0x52FF //CJK UNIFIED IDEOGRAPH - ,0xDAA9 ,0x6C95 //CJK UNIFIED IDEOGRAPH - ,0xDAAA ,0x7269 //CJK UNIFIED IDEOGRAPH - ,0xDAAB ,0x5473 //CJK UNIFIED IDEOGRAPH - ,0xDAAC ,0x5A9A //CJK UNIFIED IDEOGRAPH - ,0xDAAD ,0x5C3E //CJK UNIFIED IDEOGRAPH - ,0xDAAE ,0x5D4B //CJK UNIFIED IDEOGRAPH - ,0xDAAF ,0x5F4C //CJK UNIFIED IDEOGRAPH - ,0xDAB0 ,0x5FAE //CJK UNIFIED IDEOGRAPH - ,0xDAB1 ,0x672A //CJK UNIFIED IDEOGRAPH - ,0xDAB2 ,0x68B6 //CJK UNIFIED IDEOGRAPH - ,0xDAB3 ,0x6963 //CJK UNIFIED IDEOGRAPH - ,0xDAB4 ,0x6E3C //CJK UNIFIED IDEOGRAPH - ,0xDAB5 ,0x6E44 //CJK UNIFIED IDEOGRAPH - ,0xDAB6 ,0x7709 //CJK UNIFIED IDEOGRAPH - ,0xDAB7 ,0x7C73 //CJK UNIFIED IDEOGRAPH - ,0xDAB8 ,0x7F8E //CJK UNIFIED IDEOGRAPH - ,0xDAB9 ,0x8587 //CJK UNIFIED IDEOGRAPH - ,0xDABA ,0x8B0E //CJK UNIFIED IDEOGRAPH - ,0xDABB ,0x8FF7 //CJK UNIFIED IDEOGRAPH - ,0xDABC ,0x9761 //CJK UNIFIED IDEOGRAPH - ,0xDABD ,0x9EF4 //CJK UNIFIED IDEOGRAPH - ,0xDABE ,0x5CB7 //CJK UNIFIED IDEOGRAPH - ,0xDABF ,0x60B6 //CJK UNIFIED IDEOGRAPH - ,0xDAC0 ,0x610D //CJK UNIFIED IDEOGRAPH - ,0xDAC1 ,0x61AB //CJK UNIFIED IDEOGRAPH - ,0xDAC2 ,0x654F //CJK UNIFIED IDEOGRAPH - ,0xDAC3 ,0x65FB //CJK UNIFIED IDEOGRAPH - ,0xDAC4 ,0x65FC //CJK UNIFIED IDEOGRAPH - ,0xDAC5 ,0x6C11 //CJK UNIFIED IDEOGRAPH - ,0xDAC6 ,0x6CEF //CJK UNIFIED IDEOGRAPH - ,0xDAC7 ,0x739F //CJK UNIFIED IDEOGRAPH - ,0xDAC8 ,0x73C9 //CJK UNIFIED IDEOGRAPH - ,0xDAC9 ,0x7DE1 //CJK UNIFIED IDEOGRAPH - ,0xDACA ,0x9594 //CJK UNIFIED IDEOGRAPH - ,0xDACB ,0x5BC6 //CJK UNIFIED IDEOGRAPH - ,0xDACC ,0x871C //CJK UNIFIED IDEOGRAPH - ,0xDACD ,0x8B10 //CJK UNIFIED IDEOGRAPH - ,0xDACE ,0x525D //CJK UNIFIED IDEOGRAPH - ,0xDACF ,0x535A //CJK UNIFIED IDEOGRAPH - ,0xDAD0 ,0x62CD //CJK UNIFIED IDEOGRAPH - ,0xDAD1 ,0x640F //CJK UNIFIED IDEOGRAPH - ,0xDAD2 ,0x64B2 //CJK UNIFIED IDEOGRAPH - ,0xDAD3 ,0x6734 //CJK UNIFIED IDEOGRAPH - ,0xDAD4 ,0x6A38 //CJK UNIFIED IDEOGRAPH - ,0xDAD5 ,0x6CCA //CJK UNIFIED IDEOGRAPH - ,0xDAD6 ,0x73C0 //CJK UNIFIED IDEOGRAPH - ,0xDAD7 ,0x749E //CJK UNIFIED IDEOGRAPH - ,0xDAD8 ,0x7B94 //CJK UNIFIED IDEOGRAPH - ,0xDAD9 ,0x7C95 //CJK UNIFIED IDEOGRAPH - ,0xDADA ,0x7E1B //CJK UNIFIED IDEOGRAPH - ,0xDADB ,0x818A //CJK UNIFIED IDEOGRAPH - ,0xDADC ,0x8236 //CJK UNIFIED IDEOGRAPH - ,0xDADD ,0x8584 //CJK UNIFIED IDEOGRAPH - ,0xDADE ,0x8FEB //CJK UNIFIED IDEOGRAPH - ,0xDADF ,0x96F9 //CJK UNIFIED IDEOGRAPH - ,0xDAE0 ,0x99C1 //CJK UNIFIED IDEOGRAPH - ,0xDAE1 ,0x4F34 //CJK UNIFIED IDEOGRAPH - ,0xDAE2 ,0x534A //CJK UNIFIED IDEOGRAPH - ,0xDAE3 ,0x53CD //CJK UNIFIED IDEOGRAPH - ,0xDAE4 ,0x53DB //CJK UNIFIED IDEOGRAPH - ,0xDAE5 ,0x62CC //CJK UNIFIED IDEOGRAPH - ,0xDAE6 ,0x642C //CJK UNIFIED IDEOGRAPH - ,0xDAE7 ,0x6500 //CJK UNIFIED IDEOGRAPH - ,0xDAE8 ,0x6591 //CJK UNIFIED IDEOGRAPH - ,0xDAE9 ,0x69C3 //CJK UNIFIED IDEOGRAPH - ,0xDAEA ,0x6CEE //CJK UNIFIED IDEOGRAPH - ,0xDAEB ,0x6F58 //CJK UNIFIED IDEOGRAPH - ,0xDAEC ,0x73ED //CJK UNIFIED IDEOGRAPH - ,0xDAED ,0x7554 //CJK UNIFIED IDEOGRAPH - ,0xDAEE ,0x7622 //CJK UNIFIED IDEOGRAPH - ,0xDAEF ,0x76E4 //CJK UNIFIED IDEOGRAPH - ,0xDAF0 ,0x76FC //CJK UNIFIED IDEOGRAPH - ,0xDAF1 ,0x78D0 //CJK UNIFIED IDEOGRAPH - ,0xDAF2 ,0x78FB //CJK UNIFIED IDEOGRAPH - ,0xDAF3 ,0x792C //CJK UNIFIED IDEOGRAPH - ,0xDAF4 ,0x7D46 //CJK UNIFIED IDEOGRAPH - ,0xDAF5 ,0x822C //CJK UNIFIED IDEOGRAPH - ,0xDAF6 ,0x87E0 //CJK UNIFIED IDEOGRAPH - ,0xDAF7 ,0x8FD4 //CJK UNIFIED IDEOGRAPH - ,0xDAF8 ,0x9812 //CJK UNIFIED IDEOGRAPH - ,0xDAF9 ,0x98EF //CJK UNIFIED IDEOGRAPH - ,0xDAFA ,0x52C3 //CJK UNIFIED IDEOGRAPH - ,0xDAFB ,0x62D4 //CJK UNIFIED IDEOGRAPH - ,0xDAFC ,0x64A5 //CJK UNIFIED IDEOGRAPH - ,0xDAFD ,0x6E24 //CJK UNIFIED IDEOGRAPH - ,0xDAFE ,0x6F51 //CJK UNIFIED IDEOGRAPH - ,0xDBA1 ,0x767C //CJK UNIFIED IDEOGRAPH - ,0xDBA2 ,0x8DCB //CJK UNIFIED IDEOGRAPH - ,0xDBA3 ,0x91B1 //CJK UNIFIED IDEOGRAPH - ,0xDBA4 ,0x9262 //CJK UNIFIED IDEOGRAPH - ,0xDBA5 ,0x9AEE //CJK UNIFIED IDEOGRAPH - ,0xDBA6 ,0x9B43 //CJK UNIFIED IDEOGRAPH - ,0xDBA7 ,0x5023 //CJK UNIFIED IDEOGRAPH - ,0xDBA8 ,0x508D //CJK UNIFIED IDEOGRAPH - ,0xDBA9 ,0x574A //CJK UNIFIED IDEOGRAPH - ,0xDBAA ,0x59A8 //CJK UNIFIED IDEOGRAPH - ,0xDBAB ,0x5C28 //CJK UNIFIED IDEOGRAPH - ,0xDBAC ,0x5E47 //CJK UNIFIED IDEOGRAPH - ,0xDBAD ,0x5F77 //CJK UNIFIED IDEOGRAPH - ,0xDBAE ,0x623F //CJK UNIFIED IDEOGRAPH - ,0xDBAF ,0x653E //CJK UNIFIED IDEOGRAPH - ,0xDBB0 ,0x65B9 //CJK UNIFIED IDEOGRAPH - ,0xDBB1 ,0x65C1 //CJK UNIFIED IDEOGRAPH - ,0xDBB2 ,0x6609 //CJK UNIFIED IDEOGRAPH - ,0xDBB3 ,0x678B //CJK UNIFIED IDEOGRAPH - ,0xDBB4 ,0x699C //CJK UNIFIED IDEOGRAPH - ,0xDBB5 ,0x6EC2 //CJK UNIFIED IDEOGRAPH - ,0xDBB6 ,0x78C5 //CJK UNIFIED IDEOGRAPH - ,0xDBB7 ,0x7D21 //CJK UNIFIED IDEOGRAPH - ,0xDBB8 ,0x80AA //CJK UNIFIED IDEOGRAPH - ,0xDBB9 ,0x8180 //CJK UNIFIED IDEOGRAPH - ,0xDBBA ,0x822B //CJK UNIFIED IDEOGRAPH - ,0xDBBB ,0x82B3 //CJK UNIFIED IDEOGRAPH - ,0xDBBC ,0x84A1 //CJK UNIFIED IDEOGRAPH - ,0xDBBD ,0x868C //CJK UNIFIED IDEOGRAPH - ,0xDBBE ,0x8A2A //CJK UNIFIED IDEOGRAPH - ,0xDBBF ,0x8B17 //CJK UNIFIED IDEOGRAPH - ,0xDBC0 ,0x90A6 //CJK UNIFIED IDEOGRAPH - ,0xDBC1 ,0x9632 //CJK UNIFIED IDEOGRAPH - ,0xDBC2 ,0x9F90 //CJK UNIFIED IDEOGRAPH - ,0xDBC3 ,0x500D //CJK UNIFIED IDEOGRAPH - ,0xDBC4 ,0x4FF3 //CJK UNIFIED IDEOGRAPH - ,0xDBC5 ,0xF963 //CJK COMPATIBILITY IDEOGRAPH - ,0xDBC6 ,0x57F9 //CJK UNIFIED IDEOGRAPH - ,0xDBC7 ,0x5F98 //CJK UNIFIED IDEOGRAPH - ,0xDBC8 ,0x62DC //CJK UNIFIED IDEOGRAPH - ,0xDBC9 ,0x6392 //CJK UNIFIED IDEOGRAPH - ,0xDBCA ,0x676F //CJK UNIFIED IDEOGRAPH - ,0xDBCB ,0x6E43 //CJK UNIFIED IDEOGRAPH - ,0xDBCC ,0x7119 //CJK UNIFIED IDEOGRAPH - ,0xDBCD ,0x76C3 //CJK UNIFIED IDEOGRAPH - ,0xDBCE ,0x80CC //CJK UNIFIED IDEOGRAPH - ,0xDBCF ,0x80DA //CJK UNIFIED IDEOGRAPH - ,0xDBD0 ,0x88F4 //CJK UNIFIED IDEOGRAPH - ,0xDBD1 ,0x88F5 //CJK UNIFIED IDEOGRAPH - ,0xDBD2 ,0x8919 //CJK UNIFIED IDEOGRAPH - ,0xDBD3 ,0x8CE0 //CJK UNIFIED IDEOGRAPH - ,0xDBD4 ,0x8F29 //CJK UNIFIED IDEOGRAPH - ,0xDBD5 ,0x914D //CJK UNIFIED IDEOGRAPH - ,0xDBD6 ,0x966A //CJK UNIFIED IDEOGRAPH - ,0xDBD7 ,0x4F2F //CJK UNIFIED IDEOGRAPH - ,0xDBD8 ,0x4F70 //CJK UNIFIED IDEOGRAPH - ,0xDBD9 ,0x5E1B //CJK UNIFIED IDEOGRAPH - ,0xDBDA ,0x67CF //CJK UNIFIED IDEOGRAPH - ,0xDBDB ,0x6822 //CJK UNIFIED IDEOGRAPH - ,0xDBDC ,0x767D //CJK UNIFIED IDEOGRAPH - ,0xDBDD ,0x767E //CJK UNIFIED IDEOGRAPH - ,0xDBDE ,0x9B44 //CJK UNIFIED IDEOGRAPH - ,0xDBDF ,0x5E61 //CJK UNIFIED IDEOGRAPH - ,0xDBE0 ,0x6A0A //CJK UNIFIED IDEOGRAPH - ,0xDBE1 ,0x7169 //CJK UNIFIED IDEOGRAPH - ,0xDBE2 ,0x71D4 //CJK UNIFIED IDEOGRAPH - ,0xDBE3 ,0x756A //CJK UNIFIED IDEOGRAPH - ,0xDBE4 ,0xF964 //CJK COMPATIBILITY IDEOGRAPH - ,0xDBE5 ,0x7E41 //CJK UNIFIED IDEOGRAPH - ,0xDBE6 ,0x8543 //CJK UNIFIED IDEOGRAPH - ,0xDBE7 ,0x85E9 //CJK UNIFIED IDEOGRAPH - ,0xDBE8 ,0x98DC //CJK UNIFIED IDEOGRAPH - ,0xDBE9 ,0x4F10 //CJK UNIFIED IDEOGRAPH - ,0xDBEA ,0x7B4F //CJK UNIFIED IDEOGRAPH - ,0xDBEB ,0x7F70 //CJK UNIFIED IDEOGRAPH - ,0xDBEC ,0x95A5 //CJK UNIFIED IDEOGRAPH - ,0xDBED ,0x51E1 //CJK UNIFIED IDEOGRAPH - ,0xDBEE ,0x5E06 //CJK UNIFIED IDEOGRAPH - ,0xDBEF ,0x68B5 //CJK UNIFIED IDEOGRAPH - ,0xDBF0 ,0x6C3E //CJK UNIFIED IDEOGRAPH - ,0xDBF1 ,0x6C4E //CJK UNIFIED IDEOGRAPH - ,0xDBF2 ,0x6CDB //CJK UNIFIED IDEOGRAPH - ,0xDBF3 ,0x72AF //CJK UNIFIED IDEOGRAPH - ,0xDBF4 ,0x7BC4 //CJK UNIFIED IDEOGRAPH - ,0xDBF5 ,0x8303 //CJK UNIFIED IDEOGRAPH - ,0xDBF6 ,0x6CD5 //CJK UNIFIED IDEOGRAPH - ,0xDBF7 ,0x743A //CJK UNIFIED IDEOGRAPH - ,0xDBF8 ,0x50FB //CJK UNIFIED IDEOGRAPH - ,0xDBF9 ,0x5288 //CJK UNIFIED IDEOGRAPH - ,0xDBFA ,0x58C1 //CJK UNIFIED IDEOGRAPH - ,0xDBFB ,0x64D8 //CJK UNIFIED IDEOGRAPH - ,0xDBFC ,0x6A97 //CJK UNIFIED IDEOGRAPH - ,0xDBFD ,0x74A7 //CJK UNIFIED IDEOGRAPH - ,0xDBFE ,0x7656 //CJK UNIFIED IDEOGRAPH - ,0xDCA1 ,0x78A7 //CJK UNIFIED IDEOGRAPH - ,0xDCA2 ,0x8617 //CJK UNIFIED IDEOGRAPH - ,0xDCA3 ,0x95E2 //CJK UNIFIED IDEOGRAPH - ,0xDCA4 ,0x9739 //CJK UNIFIED IDEOGRAPH - ,0xDCA5 ,0xF965 //CJK COMPATIBILITY IDEOGRAPH - ,0xDCA6 ,0x535E //CJK UNIFIED IDEOGRAPH - ,0xDCA7 ,0x5F01 //CJK UNIFIED IDEOGRAPH - ,0xDCA8 ,0x8B8A //CJK UNIFIED IDEOGRAPH - ,0xDCA9 ,0x8FA8 //CJK UNIFIED IDEOGRAPH - ,0xDCAA ,0x8FAF //CJK UNIFIED IDEOGRAPH - ,0xDCAB ,0x908A //CJK UNIFIED IDEOGRAPH - ,0xDCAC ,0x5225 //CJK UNIFIED IDEOGRAPH - ,0xDCAD ,0x77A5 //CJK UNIFIED IDEOGRAPH - ,0xDCAE ,0x9C49 //CJK UNIFIED IDEOGRAPH - ,0xDCAF ,0x9F08 //CJK UNIFIED IDEOGRAPH - ,0xDCB0 ,0x4E19 //CJK UNIFIED IDEOGRAPH - ,0xDCB1 ,0x5002 //CJK UNIFIED IDEOGRAPH - ,0xDCB2 ,0x5175 //CJK UNIFIED IDEOGRAPH - ,0xDCB3 ,0x5C5B //CJK UNIFIED IDEOGRAPH - ,0xDCB4 ,0x5E77 //CJK UNIFIED IDEOGRAPH - ,0xDCB5 ,0x661E //CJK UNIFIED IDEOGRAPH - ,0xDCB6 ,0x663A //CJK UNIFIED IDEOGRAPH - ,0xDCB7 ,0x67C4 //CJK UNIFIED IDEOGRAPH - ,0xDCB8 ,0x68C5 //CJK UNIFIED IDEOGRAPH - ,0xDCB9 ,0x70B3 //CJK UNIFIED IDEOGRAPH - ,0xDCBA ,0x7501 //CJK UNIFIED IDEOGRAPH - ,0xDCBB ,0x75C5 //CJK UNIFIED IDEOGRAPH - ,0xDCBC ,0x79C9 //CJK UNIFIED IDEOGRAPH - ,0xDCBD ,0x7ADD //CJK UNIFIED IDEOGRAPH - ,0xDCBE ,0x8F27 //CJK UNIFIED IDEOGRAPH - ,0xDCBF ,0x9920 //CJK UNIFIED IDEOGRAPH - ,0xDCC0 ,0x9A08 //CJK UNIFIED IDEOGRAPH - ,0xDCC1 ,0x4FDD //CJK UNIFIED IDEOGRAPH - ,0xDCC2 ,0x5821 //CJK UNIFIED IDEOGRAPH - ,0xDCC3 ,0x5831 //CJK UNIFIED IDEOGRAPH - ,0xDCC4 ,0x5BF6 //CJK UNIFIED IDEOGRAPH - ,0xDCC5 ,0x666E //CJK UNIFIED IDEOGRAPH - ,0xDCC6 ,0x6B65 //CJK UNIFIED IDEOGRAPH - ,0xDCC7 ,0x6D11 //CJK UNIFIED IDEOGRAPH - ,0xDCC8 ,0x6E7A //CJK UNIFIED IDEOGRAPH - ,0xDCC9 ,0x6F7D //CJK UNIFIED IDEOGRAPH - ,0xDCCA ,0x73E4 //CJK UNIFIED IDEOGRAPH - ,0xDCCB ,0x752B //CJK UNIFIED IDEOGRAPH - ,0xDCCC ,0x83E9 //CJK UNIFIED IDEOGRAPH - ,0xDCCD ,0x88DC //CJK UNIFIED IDEOGRAPH - ,0xDCCE ,0x8913 //CJK UNIFIED IDEOGRAPH - ,0xDCCF ,0x8B5C //CJK UNIFIED IDEOGRAPH - ,0xDCD0 ,0x8F14 //CJK UNIFIED IDEOGRAPH - ,0xDCD1 ,0x4F0F //CJK UNIFIED IDEOGRAPH - ,0xDCD2 ,0x50D5 //CJK UNIFIED IDEOGRAPH - ,0xDCD3 ,0x5310 //CJK UNIFIED IDEOGRAPH - ,0xDCD4 ,0x535C //CJK UNIFIED IDEOGRAPH - ,0xDCD5 ,0x5B93 //CJK UNIFIED IDEOGRAPH - ,0xDCD6 ,0x5FA9 //CJK UNIFIED IDEOGRAPH - ,0xDCD7 ,0x670D //CJK UNIFIED IDEOGRAPH - ,0xDCD8 ,0x798F //CJK UNIFIED IDEOGRAPH - ,0xDCD9 ,0x8179 //CJK UNIFIED IDEOGRAPH - ,0xDCDA ,0x832F //CJK UNIFIED IDEOGRAPH - ,0xDCDB ,0x8514 //CJK UNIFIED IDEOGRAPH - ,0xDCDC ,0x8907 //CJK UNIFIED IDEOGRAPH - ,0xDCDD ,0x8986 //CJK UNIFIED IDEOGRAPH - ,0xDCDE ,0x8F39 //CJK UNIFIED IDEOGRAPH - ,0xDCDF ,0x8F3B //CJK UNIFIED IDEOGRAPH - ,0xDCE0 ,0x99A5 //CJK UNIFIED IDEOGRAPH - ,0xDCE1 ,0x9C12 //CJK UNIFIED IDEOGRAPH - ,0xDCE2 ,0x672C //CJK UNIFIED IDEOGRAPH - ,0xDCE3 ,0x4E76 //CJK UNIFIED IDEOGRAPH - ,0xDCE4 ,0x4FF8 //CJK UNIFIED IDEOGRAPH - ,0xDCE5 ,0x5949 //CJK UNIFIED IDEOGRAPH - ,0xDCE6 ,0x5C01 //CJK UNIFIED IDEOGRAPH - ,0xDCE7 ,0x5CEF //CJK UNIFIED IDEOGRAPH - ,0xDCE8 ,0x5CF0 //CJK UNIFIED IDEOGRAPH - ,0xDCE9 ,0x6367 //CJK UNIFIED IDEOGRAPH - ,0xDCEA ,0x68D2 //CJK UNIFIED IDEOGRAPH - ,0xDCEB ,0x70FD //CJK UNIFIED IDEOGRAPH - ,0xDCEC ,0x71A2 //CJK UNIFIED IDEOGRAPH - ,0xDCED ,0x742B //CJK UNIFIED IDEOGRAPH - ,0xDCEE ,0x7E2B //CJK UNIFIED IDEOGRAPH - ,0xDCEF ,0x84EC //CJK UNIFIED IDEOGRAPH - ,0xDCF0 ,0x8702 //CJK UNIFIED IDEOGRAPH - ,0xDCF1 ,0x9022 //CJK UNIFIED IDEOGRAPH - ,0xDCF2 ,0x92D2 //CJK UNIFIED IDEOGRAPH - ,0xDCF3 ,0x9CF3 //CJK UNIFIED IDEOGRAPH - ,0xDCF4 ,0x4E0D //CJK UNIFIED IDEOGRAPH - ,0xDCF5 ,0x4ED8 //CJK UNIFIED IDEOGRAPH - ,0xDCF6 ,0x4FEF //CJK UNIFIED IDEOGRAPH - ,0xDCF7 ,0x5085 //CJK UNIFIED IDEOGRAPH - ,0xDCF8 ,0x5256 //CJK UNIFIED IDEOGRAPH - ,0xDCF9 ,0x526F //CJK UNIFIED IDEOGRAPH - ,0xDCFA ,0x5426 //CJK UNIFIED IDEOGRAPH - ,0xDCFB ,0x5490 //CJK UNIFIED IDEOGRAPH - ,0xDCFC ,0x57E0 //CJK UNIFIED IDEOGRAPH - ,0xDCFD ,0x592B //CJK UNIFIED IDEOGRAPH - ,0xDCFE ,0x5A66 //CJK UNIFIED IDEOGRAPH - ,0xDDA1 ,0x5B5A //CJK UNIFIED IDEOGRAPH - ,0xDDA2 ,0x5B75 //CJK UNIFIED IDEOGRAPH - ,0xDDA3 ,0x5BCC //CJK UNIFIED IDEOGRAPH - ,0xDDA4 ,0x5E9C //CJK UNIFIED IDEOGRAPH - ,0xDDA5 ,0xF966 //CJK COMPATIBILITY IDEOGRAPH - ,0xDDA6 ,0x6276 //CJK UNIFIED IDEOGRAPH - ,0xDDA7 ,0x6577 //CJK UNIFIED IDEOGRAPH - ,0xDDA8 ,0x65A7 //CJK UNIFIED IDEOGRAPH - ,0xDDA9 ,0x6D6E //CJK UNIFIED IDEOGRAPH - ,0xDDAA ,0x6EA5 //CJK UNIFIED IDEOGRAPH - ,0xDDAB ,0x7236 //CJK UNIFIED IDEOGRAPH - ,0xDDAC ,0x7B26 //CJK UNIFIED IDEOGRAPH - ,0xDDAD ,0x7C3F //CJK UNIFIED IDEOGRAPH - ,0xDDAE ,0x7F36 //CJK UNIFIED IDEOGRAPH - ,0xDDAF ,0x8150 //CJK UNIFIED IDEOGRAPH - ,0xDDB0 ,0x8151 //CJK UNIFIED IDEOGRAPH - ,0xDDB1 ,0x819A //CJK UNIFIED IDEOGRAPH - ,0xDDB2 ,0x8240 //CJK UNIFIED IDEOGRAPH - ,0xDDB3 ,0x8299 //CJK UNIFIED IDEOGRAPH - ,0xDDB4 ,0x83A9 //CJK UNIFIED IDEOGRAPH - ,0xDDB5 ,0x8A03 //CJK UNIFIED IDEOGRAPH - ,0xDDB6 ,0x8CA0 //CJK UNIFIED IDEOGRAPH - ,0xDDB7 ,0x8CE6 //CJK UNIFIED IDEOGRAPH - ,0xDDB8 ,0x8CFB //CJK UNIFIED IDEOGRAPH - ,0xDDB9 ,0x8D74 //CJK UNIFIED IDEOGRAPH - ,0xDDBA ,0x8DBA //CJK UNIFIED IDEOGRAPH - ,0xDDBB ,0x90E8 //CJK UNIFIED IDEOGRAPH - ,0xDDBC ,0x91DC //CJK UNIFIED IDEOGRAPH - ,0xDDBD ,0x961C //CJK UNIFIED IDEOGRAPH - ,0xDDBE ,0x9644 //CJK UNIFIED IDEOGRAPH - ,0xDDBF ,0x99D9 //CJK UNIFIED IDEOGRAPH - ,0xDDC0 ,0x9CE7 //CJK UNIFIED IDEOGRAPH - ,0xDDC1 ,0x5317 //CJK UNIFIED IDEOGRAPH - ,0xDDC2 ,0x5206 //CJK UNIFIED IDEOGRAPH - ,0xDDC3 ,0x5429 //CJK UNIFIED IDEOGRAPH - ,0xDDC4 ,0x5674 //CJK UNIFIED IDEOGRAPH - ,0xDDC5 ,0x58B3 //CJK UNIFIED IDEOGRAPH - ,0xDDC6 ,0x5954 //CJK UNIFIED IDEOGRAPH - ,0xDDC7 ,0x596E //CJK UNIFIED IDEOGRAPH - ,0xDDC8 ,0x5FFF //CJK UNIFIED IDEOGRAPH - ,0xDDC9 ,0x61A4 //CJK UNIFIED IDEOGRAPH - ,0xDDCA ,0x626E //CJK UNIFIED IDEOGRAPH - ,0xDDCB ,0x6610 //CJK UNIFIED IDEOGRAPH - ,0xDDCC ,0x6C7E //CJK UNIFIED IDEOGRAPH - ,0xDDCD ,0x711A //CJK UNIFIED IDEOGRAPH - ,0xDDCE ,0x76C6 //CJK UNIFIED IDEOGRAPH - ,0xDDCF ,0x7C89 //CJK UNIFIED IDEOGRAPH - ,0xDDD0 ,0x7CDE //CJK UNIFIED IDEOGRAPH - ,0xDDD1 ,0x7D1B //CJK UNIFIED IDEOGRAPH - ,0xDDD2 ,0x82AC //CJK UNIFIED IDEOGRAPH - ,0xDDD3 ,0x8CC1 //CJK UNIFIED IDEOGRAPH - ,0xDDD4 ,0x96F0 //CJK UNIFIED IDEOGRAPH - ,0xDDD5 ,0xF967 //CJK COMPATIBILITY IDEOGRAPH - ,0xDDD6 ,0x4F5B //CJK UNIFIED IDEOGRAPH - ,0xDDD7 ,0x5F17 //CJK UNIFIED IDEOGRAPH - ,0xDDD8 ,0x5F7F //CJK UNIFIED IDEOGRAPH - ,0xDDD9 ,0x62C2 //CJK UNIFIED IDEOGRAPH - ,0xDDDA ,0x5D29 //CJK UNIFIED IDEOGRAPH - ,0xDDDB ,0x670B //CJK UNIFIED IDEOGRAPH - ,0xDDDC ,0x68DA //CJK UNIFIED IDEOGRAPH - ,0xDDDD ,0x787C //CJK UNIFIED IDEOGRAPH - ,0xDDDE ,0x7E43 //CJK UNIFIED IDEOGRAPH - ,0xDDDF ,0x9D6C //CJK UNIFIED IDEOGRAPH - ,0xDDE0 ,0x4E15 //CJK UNIFIED IDEOGRAPH - ,0xDDE1 ,0x5099 //CJK UNIFIED IDEOGRAPH - ,0xDDE2 ,0x5315 //CJK UNIFIED IDEOGRAPH - ,0xDDE3 ,0x532A //CJK UNIFIED IDEOGRAPH - ,0xDDE4 ,0x5351 //CJK UNIFIED IDEOGRAPH - ,0xDDE5 ,0x5983 //CJK UNIFIED IDEOGRAPH - ,0xDDE6 ,0x5A62 //CJK UNIFIED IDEOGRAPH - ,0xDDE7 ,0x5E87 //CJK UNIFIED IDEOGRAPH - ,0xDDE8 ,0x60B2 //CJK UNIFIED IDEOGRAPH - ,0xDDE9 ,0x618A //CJK UNIFIED IDEOGRAPH - ,0xDDEA ,0x6249 //CJK UNIFIED IDEOGRAPH - ,0xDDEB ,0x6279 //CJK UNIFIED IDEOGRAPH - ,0xDDEC ,0x6590 //CJK UNIFIED IDEOGRAPH - ,0xDDED ,0x6787 //CJK UNIFIED IDEOGRAPH - ,0xDDEE ,0x69A7 //CJK UNIFIED IDEOGRAPH - ,0xDDEF ,0x6BD4 //CJK UNIFIED IDEOGRAPH - ,0xDDF0 ,0x6BD6 //CJK UNIFIED IDEOGRAPH - ,0xDDF1 ,0x6BD7 //CJK UNIFIED IDEOGRAPH - ,0xDDF2 ,0x6BD8 //CJK UNIFIED IDEOGRAPH - ,0xDDF3 ,0x6CB8 //CJK UNIFIED IDEOGRAPH - ,0xDDF4 ,0xF968 //CJK COMPATIBILITY IDEOGRAPH - ,0xDDF5 ,0x7435 //CJK UNIFIED IDEOGRAPH - ,0xDDF6 ,0x75FA //CJK UNIFIED IDEOGRAPH - ,0xDDF7 ,0x7812 //CJK UNIFIED IDEOGRAPH - ,0xDDF8 ,0x7891 //CJK UNIFIED IDEOGRAPH - ,0xDDF9 ,0x79D5 //CJK UNIFIED IDEOGRAPH - ,0xDDFA ,0x79D8 //CJK UNIFIED IDEOGRAPH - ,0xDDFB ,0x7C83 //CJK UNIFIED IDEOGRAPH - ,0xDDFC ,0x7DCB //CJK UNIFIED IDEOGRAPH - ,0xDDFD ,0x7FE1 //CJK UNIFIED IDEOGRAPH - ,0xDDFE ,0x80A5 //CJK UNIFIED IDEOGRAPH - ,0xDEA1 ,0x813E //CJK UNIFIED IDEOGRAPH - ,0xDEA2 ,0x81C2 //CJK UNIFIED IDEOGRAPH - ,0xDEA3 ,0x83F2 //CJK UNIFIED IDEOGRAPH - ,0xDEA4 ,0x871A //CJK UNIFIED IDEOGRAPH - ,0xDEA5 ,0x88E8 //CJK UNIFIED IDEOGRAPH - ,0xDEA6 ,0x8AB9 //CJK UNIFIED IDEOGRAPH - ,0xDEA7 ,0x8B6C //CJK UNIFIED IDEOGRAPH - ,0xDEA8 ,0x8CBB //CJK UNIFIED IDEOGRAPH - ,0xDEA9 ,0x9119 //CJK UNIFIED IDEOGRAPH - ,0xDEAA ,0x975E //CJK UNIFIED IDEOGRAPH - ,0xDEAB ,0x98DB //CJK UNIFIED IDEOGRAPH - ,0xDEAC ,0x9F3B //CJK UNIFIED IDEOGRAPH - ,0xDEAD ,0x56AC //CJK UNIFIED IDEOGRAPH - ,0xDEAE ,0x5B2A //CJK UNIFIED IDEOGRAPH - ,0xDEAF ,0x5F6C //CJK UNIFIED IDEOGRAPH - ,0xDEB0 ,0x658C //CJK UNIFIED IDEOGRAPH - ,0xDEB1 ,0x6AB3 //CJK UNIFIED IDEOGRAPH - ,0xDEB2 ,0x6BAF //CJK UNIFIED IDEOGRAPH - ,0xDEB3 ,0x6D5C //CJK UNIFIED IDEOGRAPH - ,0xDEB4 ,0x6FF1 //CJK UNIFIED IDEOGRAPH - ,0xDEB5 ,0x7015 //CJK UNIFIED IDEOGRAPH - ,0xDEB6 ,0x725D //CJK UNIFIED IDEOGRAPH - ,0xDEB7 ,0x73AD //CJK UNIFIED IDEOGRAPH - ,0xDEB8 ,0x8CA7 //CJK UNIFIED IDEOGRAPH - ,0xDEB9 ,0x8CD3 //CJK UNIFIED IDEOGRAPH - ,0xDEBA ,0x983B //CJK UNIFIED IDEOGRAPH - ,0xDEBB ,0x6191 //CJK UNIFIED IDEOGRAPH - ,0xDEBC ,0x6C37 //CJK UNIFIED IDEOGRAPH - ,0xDEBD ,0x8058 //CJK UNIFIED IDEOGRAPH - ,0xDEBE ,0x9A01 //CJK UNIFIED IDEOGRAPH - ,0xDEBF ,0x4E4D //CJK UNIFIED IDEOGRAPH - ,0xDEC0 ,0x4E8B //CJK UNIFIED IDEOGRAPH - ,0xDEC1 ,0x4E9B //CJK UNIFIED IDEOGRAPH - ,0xDEC2 ,0x4ED5 //CJK UNIFIED IDEOGRAPH - ,0xDEC3 ,0x4F3A //CJK UNIFIED IDEOGRAPH - ,0xDEC4 ,0x4F3C //CJK UNIFIED IDEOGRAPH - ,0xDEC5 ,0x4F7F //CJK UNIFIED IDEOGRAPH - ,0xDEC6 ,0x4FDF //CJK UNIFIED IDEOGRAPH - ,0xDEC7 ,0x50FF //CJK UNIFIED IDEOGRAPH - ,0xDEC8 ,0x53F2 //CJK UNIFIED IDEOGRAPH - ,0xDEC9 ,0x53F8 //CJK UNIFIED IDEOGRAPH - ,0xDECA ,0x5506 //CJK UNIFIED IDEOGRAPH - ,0xDECB ,0x55E3 //CJK UNIFIED IDEOGRAPH - ,0xDECC ,0x56DB //CJK UNIFIED IDEOGRAPH - ,0xDECD ,0x58EB //CJK UNIFIED IDEOGRAPH - ,0xDECE ,0x5962 //CJK UNIFIED IDEOGRAPH - ,0xDECF ,0x5A11 //CJK UNIFIED IDEOGRAPH - ,0xDED0 ,0x5BEB //CJK UNIFIED IDEOGRAPH - ,0xDED1 ,0x5BFA //CJK UNIFIED IDEOGRAPH - ,0xDED2 ,0x5C04 //CJK UNIFIED IDEOGRAPH - ,0xDED3 ,0x5DF3 //CJK UNIFIED IDEOGRAPH - ,0xDED4 ,0x5E2B //CJK UNIFIED IDEOGRAPH - ,0xDED5 ,0x5F99 //CJK UNIFIED IDEOGRAPH - ,0xDED6 ,0x601D //CJK UNIFIED IDEOGRAPH - ,0xDED7 ,0x6368 //CJK UNIFIED IDEOGRAPH - ,0xDED8 ,0x659C //CJK UNIFIED IDEOGRAPH - ,0xDED9 ,0x65AF //CJK UNIFIED IDEOGRAPH - ,0xDEDA ,0x67F6 //CJK UNIFIED IDEOGRAPH - ,0xDEDB ,0x67FB //CJK UNIFIED IDEOGRAPH - ,0xDEDC ,0x68AD //CJK UNIFIED IDEOGRAPH - ,0xDEDD ,0x6B7B //CJK UNIFIED IDEOGRAPH - ,0xDEDE ,0x6C99 //CJK UNIFIED IDEOGRAPH - ,0xDEDF ,0x6CD7 //CJK UNIFIED IDEOGRAPH - ,0xDEE0 ,0x6E23 //CJK UNIFIED IDEOGRAPH - ,0xDEE1 ,0x7009 //CJK UNIFIED IDEOGRAPH - ,0xDEE2 ,0x7345 //CJK UNIFIED IDEOGRAPH - ,0xDEE3 ,0x7802 //CJK UNIFIED IDEOGRAPH - ,0xDEE4 ,0x793E //CJK UNIFIED IDEOGRAPH - ,0xDEE5 ,0x7940 //CJK UNIFIED IDEOGRAPH - ,0xDEE6 ,0x7960 //CJK UNIFIED IDEOGRAPH - ,0xDEE7 ,0x79C1 //CJK UNIFIED IDEOGRAPH - ,0xDEE8 ,0x7BE9 //CJK UNIFIED IDEOGRAPH - ,0xDEE9 ,0x7D17 //CJK UNIFIED IDEOGRAPH - ,0xDEEA ,0x7D72 //CJK UNIFIED IDEOGRAPH - ,0xDEEB ,0x8086 //CJK UNIFIED IDEOGRAPH - ,0xDEEC ,0x820D //CJK UNIFIED IDEOGRAPH - ,0xDEED ,0x838E //CJK UNIFIED IDEOGRAPH - ,0xDEEE ,0x84D1 //CJK UNIFIED IDEOGRAPH - ,0xDEEF ,0x86C7 //CJK UNIFIED IDEOGRAPH - ,0xDEF0 ,0x88DF //CJK UNIFIED IDEOGRAPH - ,0xDEF1 ,0x8A50 //CJK UNIFIED IDEOGRAPH - ,0xDEF2 ,0x8A5E //CJK UNIFIED IDEOGRAPH - ,0xDEF3 ,0x8B1D //CJK UNIFIED IDEOGRAPH - ,0xDEF4 ,0x8CDC //CJK UNIFIED IDEOGRAPH - ,0xDEF5 ,0x8D66 //CJK UNIFIED IDEOGRAPH - ,0xDEF6 ,0x8FAD //CJK UNIFIED IDEOGRAPH - ,0xDEF7 ,0x90AA //CJK UNIFIED IDEOGRAPH - ,0xDEF8 ,0x98FC //CJK UNIFIED IDEOGRAPH - ,0xDEF9 ,0x99DF //CJK UNIFIED IDEOGRAPH - ,0xDEFA ,0x9E9D //CJK UNIFIED IDEOGRAPH - ,0xDEFB ,0x524A //CJK UNIFIED IDEOGRAPH - ,0xDEFC ,0xF969 //CJK COMPATIBILITY IDEOGRAPH - ,0xDEFD ,0x6714 //CJK UNIFIED IDEOGRAPH - ,0xDEFE ,0xF96A //CJK COMPATIBILITY IDEOGRAPH - ,0xDFA1 ,0x5098 //CJK UNIFIED IDEOGRAPH - ,0xDFA2 ,0x522A //CJK UNIFIED IDEOGRAPH - ,0xDFA3 ,0x5C71 //CJK UNIFIED IDEOGRAPH - ,0xDFA4 ,0x6563 //CJK UNIFIED IDEOGRAPH - ,0xDFA5 ,0x6C55 //CJK UNIFIED IDEOGRAPH - ,0xDFA6 ,0x73CA //CJK UNIFIED IDEOGRAPH - ,0xDFA7 ,0x7523 //CJK UNIFIED IDEOGRAPH - ,0xDFA8 ,0x759D //CJK UNIFIED IDEOGRAPH - ,0xDFA9 ,0x7B97 //CJK UNIFIED IDEOGRAPH - ,0xDFAA ,0x849C //CJK UNIFIED IDEOGRAPH - ,0xDFAB ,0x9178 //CJK UNIFIED IDEOGRAPH - ,0xDFAC ,0x9730 //CJK UNIFIED IDEOGRAPH - ,0xDFAD ,0x4E77 //CJK UNIFIED IDEOGRAPH - ,0xDFAE ,0x6492 //CJK UNIFIED IDEOGRAPH - ,0xDFAF ,0x6BBA //CJK UNIFIED IDEOGRAPH - ,0xDFB0 ,0x715E //CJK UNIFIED IDEOGRAPH - ,0xDFB1 ,0x85A9 //CJK UNIFIED IDEOGRAPH - ,0xDFB2 ,0x4E09 //CJK UNIFIED IDEOGRAPH - ,0xDFB3 ,0xF96B //CJK COMPATIBILITY IDEOGRAPH - ,0xDFB4 ,0x6749 //CJK UNIFIED IDEOGRAPH - ,0xDFB5 ,0x68EE //CJK UNIFIED IDEOGRAPH - ,0xDFB6 ,0x6E17 //CJK UNIFIED IDEOGRAPH - ,0xDFB7 ,0x829F //CJK UNIFIED IDEOGRAPH - ,0xDFB8 ,0x8518 //CJK UNIFIED IDEOGRAPH - ,0xDFB9 ,0x886B //CJK UNIFIED IDEOGRAPH - ,0xDFBA ,0x63F7 //CJK UNIFIED IDEOGRAPH - ,0xDFBB ,0x6F81 //CJK UNIFIED IDEOGRAPH - ,0xDFBC ,0x9212 //CJK UNIFIED IDEOGRAPH - ,0xDFBD ,0x98AF //CJK UNIFIED IDEOGRAPH - ,0xDFBE ,0x4E0A //CJK UNIFIED IDEOGRAPH - ,0xDFBF ,0x50B7 //CJK UNIFIED IDEOGRAPH - ,0xDFC0 ,0x50CF //CJK UNIFIED IDEOGRAPH - ,0xDFC1 ,0x511F //CJK UNIFIED IDEOGRAPH - ,0xDFC2 ,0x5546 //CJK UNIFIED IDEOGRAPH - ,0xDFC3 ,0x55AA //CJK UNIFIED IDEOGRAPH - ,0xDFC4 ,0x5617 //CJK UNIFIED IDEOGRAPH - ,0xDFC5 ,0x5B40 //CJK UNIFIED IDEOGRAPH - ,0xDFC6 ,0x5C19 //CJK UNIFIED IDEOGRAPH - ,0xDFC7 ,0x5CE0 //CJK UNIFIED IDEOGRAPH - ,0xDFC8 ,0x5E38 //CJK UNIFIED IDEOGRAPH - ,0xDFC9 ,0x5E8A //CJK UNIFIED IDEOGRAPH - ,0xDFCA ,0x5EA0 //CJK UNIFIED IDEOGRAPH - ,0xDFCB ,0x5EC2 //CJK UNIFIED IDEOGRAPH - ,0xDFCC ,0x60F3 //CJK UNIFIED IDEOGRAPH - ,0xDFCD ,0x6851 //CJK UNIFIED IDEOGRAPH - ,0xDFCE ,0x6A61 //CJK UNIFIED IDEOGRAPH - ,0xDFCF ,0x6E58 //CJK UNIFIED IDEOGRAPH - ,0xDFD0 ,0x723D //CJK UNIFIED IDEOGRAPH - ,0xDFD1 ,0x7240 //CJK UNIFIED IDEOGRAPH - ,0xDFD2 ,0x72C0 //CJK UNIFIED IDEOGRAPH - ,0xDFD3 ,0x76F8 //CJK UNIFIED IDEOGRAPH - ,0xDFD4 ,0x7965 //CJK UNIFIED IDEOGRAPH - ,0xDFD5 ,0x7BB1 //CJK UNIFIED IDEOGRAPH - ,0xDFD6 ,0x7FD4 //CJK UNIFIED IDEOGRAPH - ,0xDFD7 ,0x88F3 //CJK UNIFIED IDEOGRAPH - ,0xDFD8 ,0x89F4 //CJK UNIFIED IDEOGRAPH - ,0xDFD9 ,0x8A73 //CJK UNIFIED IDEOGRAPH - ,0xDFDA ,0x8C61 //CJK UNIFIED IDEOGRAPH - ,0xDFDB ,0x8CDE //CJK UNIFIED IDEOGRAPH - ,0xDFDC ,0x971C //CJK UNIFIED IDEOGRAPH - ,0xDFDD ,0x585E //CJK UNIFIED IDEOGRAPH - ,0xDFDE ,0x74BD //CJK UNIFIED IDEOGRAPH - ,0xDFDF ,0x8CFD //CJK UNIFIED IDEOGRAPH - ,0xDFE0 ,0x55C7 //CJK UNIFIED IDEOGRAPH - ,0xDFE1 ,0xF96C //CJK COMPATIBILITY IDEOGRAPH - ,0xDFE2 ,0x7A61 //CJK UNIFIED IDEOGRAPH - ,0xDFE3 ,0x7D22 //CJK UNIFIED IDEOGRAPH - ,0xDFE4 ,0x8272 //CJK UNIFIED IDEOGRAPH - ,0xDFE5 ,0x7272 //CJK UNIFIED IDEOGRAPH - ,0xDFE6 ,0x751F //CJK UNIFIED IDEOGRAPH - ,0xDFE7 ,0x7525 //CJK UNIFIED IDEOGRAPH - ,0xDFE8 ,0xF96D //CJK COMPATIBILITY IDEOGRAPH - ,0xDFE9 ,0x7B19 //CJK UNIFIED IDEOGRAPH - ,0xDFEA ,0x5885 //CJK UNIFIED IDEOGRAPH - ,0xDFEB ,0x58FB //CJK UNIFIED IDEOGRAPH - ,0xDFEC ,0x5DBC //CJK UNIFIED IDEOGRAPH - ,0xDFED ,0x5E8F //CJK UNIFIED IDEOGRAPH - ,0xDFEE ,0x5EB6 //CJK UNIFIED IDEOGRAPH - ,0xDFEF ,0x5F90 //CJK UNIFIED IDEOGRAPH - ,0xDFF0 ,0x6055 //CJK UNIFIED IDEOGRAPH - ,0xDFF1 ,0x6292 //CJK UNIFIED IDEOGRAPH - ,0xDFF2 ,0x637F //CJK UNIFIED IDEOGRAPH - ,0xDFF3 ,0x654D //CJK UNIFIED IDEOGRAPH - ,0xDFF4 ,0x6691 //CJK UNIFIED IDEOGRAPH - ,0xDFF5 ,0x66D9 //CJK UNIFIED IDEOGRAPH - ,0xDFF6 ,0x66F8 //CJK UNIFIED IDEOGRAPH - ,0xDFF7 ,0x6816 //CJK UNIFIED IDEOGRAPH - ,0xDFF8 ,0x68F2 //CJK UNIFIED IDEOGRAPH - ,0xDFF9 ,0x7280 //CJK UNIFIED IDEOGRAPH - ,0xDFFA ,0x745E //CJK UNIFIED IDEOGRAPH - ,0xDFFB ,0x7B6E //CJK UNIFIED IDEOGRAPH - ,0xDFFC ,0x7D6E //CJK UNIFIED IDEOGRAPH - ,0xDFFD ,0x7DD6 //CJK UNIFIED IDEOGRAPH - ,0xDFFE ,0x7F72 //CJK UNIFIED IDEOGRAPH - ,0xE0A1 ,0x80E5 //CJK UNIFIED IDEOGRAPH - ,0xE0A2 ,0x8212 //CJK UNIFIED IDEOGRAPH - ,0xE0A3 ,0x85AF //CJK UNIFIED IDEOGRAPH - ,0xE0A4 ,0x897F //CJK UNIFIED IDEOGRAPH - ,0xE0A5 ,0x8A93 //CJK UNIFIED IDEOGRAPH - ,0xE0A6 ,0x901D //CJK UNIFIED IDEOGRAPH - ,0xE0A7 ,0x92E4 //CJK UNIFIED IDEOGRAPH - ,0xE0A8 ,0x9ECD //CJK UNIFIED IDEOGRAPH - ,0xE0A9 ,0x9F20 //CJK UNIFIED IDEOGRAPH - ,0xE0AA ,0x5915 //CJK UNIFIED IDEOGRAPH - ,0xE0AB ,0x596D //CJK UNIFIED IDEOGRAPH - ,0xE0AC ,0x5E2D //CJK UNIFIED IDEOGRAPH - ,0xE0AD ,0x60DC //CJK UNIFIED IDEOGRAPH - ,0xE0AE ,0x6614 //CJK UNIFIED IDEOGRAPH - ,0xE0AF ,0x6673 //CJK UNIFIED IDEOGRAPH - ,0xE0B0 ,0x6790 //CJK UNIFIED IDEOGRAPH - ,0xE0B1 ,0x6C50 //CJK UNIFIED IDEOGRAPH - ,0xE0B2 ,0x6DC5 //CJK UNIFIED IDEOGRAPH - ,0xE0B3 ,0x6F5F //CJK UNIFIED IDEOGRAPH - ,0xE0B4 ,0x77F3 //CJK UNIFIED IDEOGRAPH - ,0xE0B5 ,0x78A9 //CJK UNIFIED IDEOGRAPH - ,0xE0B6 ,0x84C6 //CJK UNIFIED IDEOGRAPH - ,0xE0B7 ,0x91CB //CJK UNIFIED IDEOGRAPH - ,0xE0B8 ,0x932B //CJK UNIFIED IDEOGRAPH - ,0xE0B9 ,0x4ED9 //CJK UNIFIED IDEOGRAPH - ,0xE0BA ,0x50CA //CJK UNIFIED IDEOGRAPH - ,0xE0BB ,0x5148 //CJK UNIFIED IDEOGRAPH - ,0xE0BC ,0x5584 //CJK UNIFIED IDEOGRAPH - ,0xE0BD ,0x5B0B //CJK UNIFIED IDEOGRAPH - ,0xE0BE ,0x5BA3 //CJK UNIFIED IDEOGRAPH - ,0xE0BF ,0x6247 //CJK UNIFIED IDEOGRAPH - ,0xE0C0 ,0x657E //CJK UNIFIED IDEOGRAPH - ,0xE0C1 ,0x65CB //CJK UNIFIED IDEOGRAPH - ,0xE0C2 ,0x6E32 //CJK UNIFIED IDEOGRAPH - ,0xE0C3 ,0x717D //CJK UNIFIED IDEOGRAPH - ,0xE0C4 ,0x7401 //CJK UNIFIED IDEOGRAPH - ,0xE0C5 ,0x7444 //CJK UNIFIED IDEOGRAPH - ,0xE0C6 ,0x7487 //CJK UNIFIED IDEOGRAPH - ,0xE0C7 ,0x74BF //CJK UNIFIED IDEOGRAPH - ,0xE0C8 ,0x766C //CJK UNIFIED IDEOGRAPH - ,0xE0C9 ,0x79AA //CJK UNIFIED IDEOGRAPH - ,0xE0CA ,0x7DDA //CJK UNIFIED IDEOGRAPH - ,0xE0CB ,0x7E55 //CJK UNIFIED IDEOGRAPH - ,0xE0CC ,0x7FA8 //CJK UNIFIED IDEOGRAPH - ,0xE0CD ,0x817A //CJK UNIFIED IDEOGRAPH - ,0xE0CE ,0x81B3 //CJK UNIFIED IDEOGRAPH - ,0xE0CF ,0x8239 //CJK UNIFIED IDEOGRAPH - ,0xE0D0 ,0x861A //CJK UNIFIED IDEOGRAPH - ,0xE0D1 ,0x87EC //CJK UNIFIED IDEOGRAPH - ,0xE0D2 ,0x8A75 //CJK UNIFIED IDEOGRAPH - ,0xE0D3 ,0x8DE3 //CJK UNIFIED IDEOGRAPH - ,0xE0D4 ,0x9078 //CJK UNIFIED IDEOGRAPH - ,0xE0D5 ,0x9291 //CJK UNIFIED IDEOGRAPH - ,0xE0D6 ,0x9425 //CJK UNIFIED IDEOGRAPH - ,0xE0D7 ,0x994D //CJK UNIFIED IDEOGRAPH - ,0xE0D8 ,0x9BAE //CJK UNIFIED IDEOGRAPH - ,0xE0D9 ,0x5368 //CJK UNIFIED IDEOGRAPH - ,0xE0DA ,0x5C51 //CJK UNIFIED IDEOGRAPH - ,0xE0DB ,0x6954 //CJK UNIFIED IDEOGRAPH - ,0xE0DC ,0x6CC4 //CJK UNIFIED IDEOGRAPH - ,0xE0DD ,0x6D29 //CJK UNIFIED IDEOGRAPH - ,0xE0DE ,0x6E2B //CJK UNIFIED IDEOGRAPH - ,0xE0DF ,0x820C //CJK UNIFIED IDEOGRAPH - ,0xE0E0 ,0x859B //CJK UNIFIED IDEOGRAPH - ,0xE0E1 ,0x893B //CJK UNIFIED IDEOGRAPH - ,0xE0E2 ,0x8A2D //CJK UNIFIED IDEOGRAPH - ,0xE0E3 ,0x8AAA //CJK UNIFIED IDEOGRAPH - ,0xE0E4 ,0x96EA //CJK UNIFIED IDEOGRAPH - ,0xE0E5 ,0x9F67 //CJK UNIFIED IDEOGRAPH - ,0xE0E6 ,0x5261 //CJK UNIFIED IDEOGRAPH - ,0xE0E7 ,0x66B9 //CJK UNIFIED IDEOGRAPH - ,0xE0E8 ,0x6BB2 //CJK UNIFIED IDEOGRAPH - ,0xE0E9 ,0x7E96 //CJK UNIFIED IDEOGRAPH - ,0xE0EA ,0x87FE //CJK UNIFIED IDEOGRAPH - ,0xE0EB ,0x8D0D //CJK UNIFIED IDEOGRAPH - ,0xE0EC ,0x9583 //CJK UNIFIED IDEOGRAPH - ,0xE0ED ,0x965D //CJK UNIFIED IDEOGRAPH - ,0xE0EE ,0x651D //CJK UNIFIED IDEOGRAPH - ,0xE0EF ,0x6D89 //CJK UNIFIED IDEOGRAPH - ,0xE0F0 ,0x71EE //CJK UNIFIED IDEOGRAPH - ,0xE0F1 ,0xF96E //CJK COMPATIBILITY IDEOGRAPH - ,0xE0F2 ,0x57CE //CJK UNIFIED IDEOGRAPH - ,0xE0F3 ,0x59D3 //CJK UNIFIED IDEOGRAPH - ,0xE0F4 ,0x5BAC //CJK UNIFIED IDEOGRAPH - ,0xE0F5 ,0x6027 //CJK UNIFIED IDEOGRAPH - ,0xE0F6 ,0x60FA //CJK UNIFIED IDEOGRAPH - ,0xE0F7 ,0x6210 //CJK UNIFIED IDEOGRAPH - ,0xE0F8 ,0x661F //CJK UNIFIED IDEOGRAPH - ,0xE0F9 ,0x665F //CJK UNIFIED IDEOGRAPH - ,0xE0FA ,0x7329 //CJK UNIFIED IDEOGRAPH - ,0xE0FB ,0x73F9 //CJK UNIFIED IDEOGRAPH - ,0xE0FC ,0x76DB //CJK UNIFIED IDEOGRAPH - ,0xE0FD ,0x7701 //CJK UNIFIED IDEOGRAPH - ,0xE0FE ,0x7B6C //CJK UNIFIED IDEOGRAPH - ,0xE1A1 ,0x8056 //CJK UNIFIED IDEOGRAPH - ,0xE1A2 ,0x8072 //CJK UNIFIED IDEOGRAPH - ,0xE1A3 ,0x8165 //CJK UNIFIED IDEOGRAPH - ,0xE1A4 ,0x8AA0 //CJK UNIFIED IDEOGRAPH - ,0xE1A5 ,0x9192 //CJK UNIFIED IDEOGRAPH - ,0xE1A6 ,0x4E16 //CJK UNIFIED IDEOGRAPH - ,0xE1A7 ,0x52E2 //CJK UNIFIED IDEOGRAPH - ,0xE1A8 ,0x6B72 //CJK UNIFIED IDEOGRAPH - ,0xE1A9 ,0x6D17 //CJK UNIFIED IDEOGRAPH - ,0xE1AA ,0x7A05 //CJK UNIFIED IDEOGRAPH - ,0xE1AB ,0x7B39 //CJK UNIFIED IDEOGRAPH - ,0xE1AC ,0x7D30 //CJK UNIFIED IDEOGRAPH - ,0xE1AD ,0xF96F //CJK COMPATIBILITY IDEOGRAPH - ,0xE1AE ,0x8CB0 //CJK UNIFIED IDEOGRAPH - ,0xE1AF ,0x53EC //CJK UNIFIED IDEOGRAPH - ,0xE1B0 ,0x562F //CJK UNIFIED IDEOGRAPH - ,0xE1B1 ,0x5851 //CJK UNIFIED IDEOGRAPH - ,0xE1B2 ,0x5BB5 //CJK UNIFIED IDEOGRAPH - ,0xE1B3 ,0x5C0F //CJK UNIFIED IDEOGRAPH - ,0xE1B4 ,0x5C11 //CJK UNIFIED IDEOGRAPH - ,0xE1B5 ,0x5DE2 //CJK UNIFIED IDEOGRAPH - ,0xE1B6 ,0x6240 //CJK UNIFIED IDEOGRAPH - ,0xE1B7 ,0x6383 //CJK UNIFIED IDEOGRAPH - ,0xE1B8 ,0x6414 //CJK UNIFIED IDEOGRAPH - ,0xE1B9 ,0x662D //CJK UNIFIED IDEOGRAPH - ,0xE1BA ,0x68B3 //CJK UNIFIED IDEOGRAPH - ,0xE1BB ,0x6CBC //CJK UNIFIED IDEOGRAPH - ,0xE1BC ,0x6D88 //CJK UNIFIED IDEOGRAPH - ,0xE1BD ,0x6EAF //CJK UNIFIED IDEOGRAPH - ,0xE1BE ,0x701F //CJK UNIFIED IDEOGRAPH - ,0xE1BF ,0x70A4 //CJK UNIFIED IDEOGRAPH - ,0xE1C0 ,0x71D2 //CJK UNIFIED IDEOGRAPH - ,0xE1C1 ,0x7526 //CJK UNIFIED IDEOGRAPH - ,0xE1C2 ,0x758F //CJK UNIFIED IDEOGRAPH - ,0xE1C3 ,0x758E //CJK UNIFIED IDEOGRAPH - ,0xE1C4 ,0x7619 //CJK UNIFIED IDEOGRAPH - ,0xE1C5 ,0x7B11 //CJK UNIFIED IDEOGRAPH - ,0xE1C6 ,0x7BE0 //CJK UNIFIED IDEOGRAPH - ,0xE1C7 ,0x7C2B //CJK UNIFIED IDEOGRAPH - ,0xE1C8 ,0x7D20 //CJK UNIFIED IDEOGRAPH - ,0xE1C9 ,0x7D39 //CJK UNIFIED IDEOGRAPH - ,0xE1CA ,0x852C //CJK UNIFIED IDEOGRAPH - ,0xE1CB ,0x856D //CJK UNIFIED IDEOGRAPH - ,0xE1CC ,0x8607 //CJK UNIFIED IDEOGRAPH - ,0xE1CD ,0x8A34 //CJK UNIFIED IDEOGRAPH - ,0xE1CE ,0x900D //CJK UNIFIED IDEOGRAPH - ,0xE1CF ,0x9061 //CJK UNIFIED IDEOGRAPH - ,0xE1D0 ,0x90B5 //CJK UNIFIED IDEOGRAPH - ,0xE1D1 ,0x92B7 //CJK UNIFIED IDEOGRAPH - ,0xE1D2 ,0x97F6 //CJK UNIFIED IDEOGRAPH - ,0xE1D3 ,0x9A37 //CJK UNIFIED IDEOGRAPH - ,0xE1D4 ,0x4FD7 //CJK UNIFIED IDEOGRAPH - ,0xE1D5 ,0x5C6C //CJK UNIFIED IDEOGRAPH - ,0xE1D6 ,0x675F //CJK UNIFIED IDEOGRAPH - ,0xE1D7 ,0x6D91 //CJK UNIFIED IDEOGRAPH - ,0xE1D8 ,0x7C9F //CJK UNIFIED IDEOGRAPH - ,0xE1D9 ,0x7E8C //CJK UNIFIED IDEOGRAPH - ,0xE1DA ,0x8B16 //CJK UNIFIED IDEOGRAPH - ,0xE1DB ,0x8D16 //CJK UNIFIED IDEOGRAPH - ,0xE1DC ,0x901F //CJK UNIFIED IDEOGRAPH - ,0xE1DD ,0x5B6B //CJK UNIFIED IDEOGRAPH - ,0xE1DE ,0x5DFD //CJK UNIFIED IDEOGRAPH - ,0xE1DF ,0x640D //CJK UNIFIED IDEOGRAPH - ,0xE1E0 ,0x84C0 //CJK UNIFIED IDEOGRAPH - ,0xE1E1 ,0x905C //CJK UNIFIED IDEOGRAPH - ,0xE1E2 ,0x98E1 //CJK UNIFIED IDEOGRAPH - ,0xE1E3 ,0x7387 //CJK UNIFIED IDEOGRAPH - ,0xE1E4 ,0x5B8B //CJK UNIFIED IDEOGRAPH - ,0xE1E5 ,0x609A //CJK UNIFIED IDEOGRAPH - ,0xE1E6 ,0x677E //CJK UNIFIED IDEOGRAPH - ,0xE1E7 ,0x6DDE //CJK UNIFIED IDEOGRAPH - ,0xE1E8 ,0x8A1F //CJK UNIFIED IDEOGRAPH - ,0xE1E9 ,0x8AA6 //CJK UNIFIED IDEOGRAPH - ,0xE1EA ,0x9001 //CJK UNIFIED IDEOGRAPH - ,0xE1EB ,0x980C //CJK UNIFIED IDEOGRAPH - ,0xE1EC ,0x5237 //CJK UNIFIED IDEOGRAPH - ,0xE1ED ,0xF970 //CJK COMPATIBILITY IDEOGRAPH - ,0xE1EE ,0x7051 //CJK UNIFIED IDEOGRAPH - ,0xE1EF ,0x788E //CJK UNIFIED IDEOGRAPH - ,0xE1F0 ,0x9396 //CJK UNIFIED IDEOGRAPH - ,0xE1F1 ,0x8870 //CJK UNIFIED IDEOGRAPH - ,0xE1F2 ,0x91D7 //CJK UNIFIED IDEOGRAPH - ,0xE1F3 ,0x4FEE //CJK UNIFIED IDEOGRAPH - ,0xE1F4 ,0x53D7 //CJK UNIFIED IDEOGRAPH - ,0xE1F5 ,0x55FD //CJK UNIFIED IDEOGRAPH - ,0xE1F6 ,0x56DA //CJK UNIFIED IDEOGRAPH - ,0xE1F7 ,0x5782 //CJK UNIFIED IDEOGRAPH - ,0xE1F8 ,0x58FD //CJK UNIFIED IDEOGRAPH - ,0xE1F9 ,0x5AC2 //CJK UNIFIED IDEOGRAPH - ,0xE1FA ,0x5B88 //CJK UNIFIED IDEOGRAPH - ,0xE1FB ,0x5CAB //CJK UNIFIED IDEOGRAPH - ,0xE1FC ,0x5CC0 //CJK UNIFIED IDEOGRAPH - ,0xE1FD ,0x5E25 //CJK UNIFIED IDEOGRAPH - ,0xE1FE ,0x6101 //CJK UNIFIED IDEOGRAPH - ,0xE2A1 ,0x620D //CJK UNIFIED IDEOGRAPH - ,0xE2A2 ,0x624B //CJK UNIFIED IDEOGRAPH - ,0xE2A3 ,0x6388 //CJK UNIFIED IDEOGRAPH - ,0xE2A4 ,0x641C //CJK UNIFIED IDEOGRAPH - ,0xE2A5 ,0x6536 //CJK UNIFIED IDEOGRAPH - ,0xE2A6 ,0x6578 //CJK UNIFIED IDEOGRAPH - ,0xE2A7 ,0x6A39 //CJK UNIFIED IDEOGRAPH - ,0xE2A8 ,0x6B8A //CJK UNIFIED IDEOGRAPH - ,0xE2A9 ,0x6C34 //CJK UNIFIED IDEOGRAPH - ,0xE2AA ,0x6D19 //CJK UNIFIED IDEOGRAPH - ,0xE2AB ,0x6F31 //CJK UNIFIED IDEOGRAPH - ,0xE2AC ,0x71E7 //CJK UNIFIED IDEOGRAPH - ,0xE2AD ,0x72E9 //CJK UNIFIED IDEOGRAPH - ,0xE2AE ,0x7378 //CJK UNIFIED IDEOGRAPH - ,0xE2AF ,0x7407 //CJK UNIFIED IDEOGRAPH - ,0xE2B0 ,0x74B2 //CJK UNIFIED IDEOGRAPH - ,0xE2B1 ,0x7626 //CJK UNIFIED IDEOGRAPH - ,0xE2B2 ,0x7761 //CJK UNIFIED IDEOGRAPH - ,0xE2B3 ,0x79C0 //CJK UNIFIED IDEOGRAPH - ,0xE2B4 ,0x7A57 //CJK UNIFIED IDEOGRAPH - ,0xE2B5 ,0x7AEA //CJK UNIFIED IDEOGRAPH - ,0xE2B6 ,0x7CB9 //CJK UNIFIED IDEOGRAPH - ,0xE2B7 ,0x7D8F //CJK UNIFIED IDEOGRAPH - ,0xE2B8 ,0x7DAC //CJK UNIFIED IDEOGRAPH - ,0xE2B9 ,0x7E61 //CJK UNIFIED IDEOGRAPH - ,0xE2BA ,0x7F9E //CJK UNIFIED IDEOGRAPH - ,0xE2BB ,0x8129 //CJK UNIFIED IDEOGRAPH - ,0xE2BC ,0x8331 //CJK UNIFIED IDEOGRAPH - ,0xE2BD ,0x8490 //CJK UNIFIED IDEOGRAPH - ,0xE2BE ,0x84DA //CJK UNIFIED IDEOGRAPH - ,0xE2BF ,0x85EA //CJK UNIFIED IDEOGRAPH - ,0xE2C0 ,0x8896 //CJK UNIFIED IDEOGRAPH - ,0xE2C1 ,0x8AB0 //CJK UNIFIED IDEOGRAPH - ,0xE2C2 ,0x8B90 //CJK UNIFIED IDEOGRAPH - ,0xE2C3 ,0x8F38 //CJK UNIFIED IDEOGRAPH - ,0xE2C4 ,0x9042 //CJK UNIFIED IDEOGRAPH - ,0xE2C5 ,0x9083 //CJK UNIFIED IDEOGRAPH - ,0xE2C6 ,0x916C //CJK UNIFIED IDEOGRAPH - ,0xE2C7 ,0x9296 //CJK UNIFIED IDEOGRAPH - ,0xE2C8 ,0x92B9 //CJK UNIFIED IDEOGRAPH - ,0xE2C9 ,0x968B //CJK UNIFIED IDEOGRAPH - ,0xE2CA ,0x96A7 //CJK UNIFIED IDEOGRAPH - ,0xE2CB ,0x96A8 //CJK UNIFIED IDEOGRAPH - ,0xE2CC ,0x96D6 //CJK UNIFIED IDEOGRAPH - ,0xE2CD ,0x9700 //CJK UNIFIED IDEOGRAPH - ,0xE2CE ,0x9808 //CJK UNIFIED IDEOGRAPH - ,0xE2CF ,0x9996 //CJK UNIFIED IDEOGRAPH - ,0xE2D0 ,0x9AD3 //CJK UNIFIED IDEOGRAPH - ,0xE2D1 ,0x9B1A //CJK UNIFIED IDEOGRAPH - ,0xE2D2 ,0x53D4 //CJK UNIFIED IDEOGRAPH - ,0xE2D3 ,0x587E //CJK UNIFIED IDEOGRAPH - ,0xE2D4 ,0x5919 //CJK UNIFIED IDEOGRAPH - ,0xE2D5 ,0x5B70 //CJK UNIFIED IDEOGRAPH - ,0xE2D6 ,0x5BBF //CJK UNIFIED IDEOGRAPH - ,0xE2D7 ,0x6DD1 //CJK UNIFIED IDEOGRAPH - ,0xE2D8 ,0x6F5A //CJK UNIFIED IDEOGRAPH - ,0xE2D9 ,0x719F //CJK UNIFIED IDEOGRAPH - ,0xE2DA ,0x7421 //CJK UNIFIED IDEOGRAPH - ,0xE2DB ,0x74B9 //CJK UNIFIED IDEOGRAPH - ,0xE2DC ,0x8085 //CJK UNIFIED IDEOGRAPH - ,0xE2DD ,0x83FD //CJK UNIFIED IDEOGRAPH - ,0xE2DE ,0x5DE1 //CJK UNIFIED IDEOGRAPH - ,0xE2DF ,0x5F87 //CJK UNIFIED IDEOGRAPH - ,0xE2E0 ,0x5FAA //CJK UNIFIED IDEOGRAPH - ,0xE2E1 ,0x6042 //CJK UNIFIED IDEOGRAPH - ,0xE2E2 ,0x65EC //CJK UNIFIED IDEOGRAPH - ,0xE2E3 ,0x6812 //CJK UNIFIED IDEOGRAPH - ,0xE2E4 ,0x696F //CJK UNIFIED IDEOGRAPH - ,0xE2E5 ,0x6A53 //CJK UNIFIED IDEOGRAPH - ,0xE2E6 ,0x6B89 //CJK UNIFIED IDEOGRAPH - ,0xE2E7 ,0x6D35 //CJK UNIFIED IDEOGRAPH - ,0xE2E8 ,0x6DF3 //CJK UNIFIED IDEOGRAPH - ,0xE2E9 ,0x73E3 //CJK UNIFIED IDEOGRAPH - ,0xE2EA ,0x76FE //CJK UNIFIED IDEOGRAPH - ,0xE2EB ,0x77AC //CJK UNIFIED IDEOGRAPH - ,0xE2EC ,0x7B4D //CJK UNIFIED IDEOGRAPH - ,0xE2ED ,0x7D14 //CJK UNIFIED IDEOGRAPH - ,0xE2EE ,0x8123 //CJK UNIFIED IDEOGRAPH - ,0xE2EF ,0x821C //CJK UNIFIED IDEOGRAPH - ,0xE2F0 ,0x8340 //CJK UNIFIED IDEOGRAPH - ,0xE2F1 ,0x84F4 //CJK UNIFIED IDEOGRAPH - ,0xE2F2 ,0x8563 //CJK UNIFIED IDEOGRAPH - ,0xE2F3 ,0x8A62 //CJK UNIFIED IDEOGRAPH - ,0xE2F4 ,0x8AC4 //CJK UNIFIED IDEOGRAPH - ,0xE2F5 ,0x9187 //CJK UNIFIED IDEOGRAPH - ,0xE2F6 ,0x931E //CJK UNIFIED IDEOGRAPH - ,0xE2F7 ,0x9806 //CJK UNIFIED IDEOGRAPH - ,0xE2F8 ,0x99B4 //CJK UNIFIED IDEOGRAPH - ,0xE2F9 ,0x620C //CJK UNIFIED IDEOGRAPH - ,0xE2FA ,0x8853 //CJK UNIFIED IDEOGRAPH - ,0xE2FB ,0x8FF0 //CJK UNIFIED IDEOGRAPH - ,0xE2FC ,0x9265 //CJK UNIFIED IDEOGRAPH - ,0xE2FD ,0x5D07 //CJK UNIFIED IDEOGRAPH - ,0xE2FE ,0x5D27 //CJK UNIFIED IDEOGRAPH - ,0xE3A1 ,0x5D69 //CJK UNIFIED IDEOGRAPH - ,0xE3A2 ,0x745F //CJK UNIFIED IDEOGRAPH - ,0xE3A3 ,0x819D //CJK UNIFIED IDEOGRAPH - ,0xE3A4 ,0x8768 //CJK UNIFIED IDEOGRAPH - ,0xE3A5 ,0x6FD5 //CJK UNIFIED IDEOGRAPH - ,0xE3A6 ,0x62FE //CJK UNIFIED IDEOGRAPH - ,0xE3A7 ,0x7FD2 //CJK UNIFIED IDEOGRAPH - ,0xE3A8 ,0x8936 //CJK UNIFIED IDEOGRAPH - ,0xE3A9 ,0x8972 //CJK UNIFIED IDEOGRAPH - ,0xE3AA ,0x4E1E //CJK UNIFIED IDEOGRAPH - ,0xE3AB ,0x4E58 //CJK UNIFIED IDEOGRAPH - ,0xE3AC ,0x50E7 //CJK UNIFIED IDEOGRAPH - ,0xE3AD ,0x52DD //CJK UNIFIED IDEOGRAPH - ,0xE3AE ,0x5347 //CJK UNIFIED IDEOGRAPH - ,0xE3AF ,0x627F //CJK UNIFIED IDEOGRAPH - ,0xE3B0 ,0x6607 //CJK UNIFIED IDEOGRAPH - ,0xE3B1 ,0x7E69 //CJK UNIFIED IDEOGRAPH - ,0xE3B2 ,0x8805 //CJK UNIFIED IDEOGRAPH - ,0xE3B3 ,0x965E //CJK UNIFIED IDEOGRAPH - ,0xE3B4 ,0x4F8D //CJK UNIFIED IDEOGRAPH - ,0xE3B5 ,0x5319 //CJK UNIFIED IDEOGRAPH - ,0xE3B6 ,0x5636 //CJK UNIFIED IDEOGRAPH - ,0xE3B7 ,0x59CB //CJK UNIFIED IDEOGRAPH - ,0xE3B8 ,0x5AA4 //CJK UNIFIED IDEOGRAPH - ,0xE3B9 ,0x5C38 //CJK UNIFIED IDEOGRAPH - ,0xE3BA ,0x5C4E //CJK UNIFIED IDEOGRAPH - ,0xE3BB ,0x5C4D //CJK UNIFIED IDEOGRAPH - ,0xE3BC ,0x5E02 //CJK UNIFIED IDEOGRAPH - ,0xE3BD ,0x5F11 //CJK UNIFIED IDEOGRAPH - ,0xE3BE ,0x6043 //CJK UNIFIED IDEOGRAPH - ,0xE3BF ,0x65BD //CJK UNIFIED IDEOGRAPH - ,0xE3C0 ,0x662F //CJK UNIFIED IDEOGRAPH - ,0xE3C1 ,0x6642 //CJK UNIFIED IDEOGRAPH - ,0xE3C2 ,0x67BE //CJK UNIFIED IDEOGRAPH - ,0xE3C3 ,0x67F4 //CJK UNIFIED IDEOGRAPH - ,0xE3C4 ,0x731C //CJK UNIFIED IDEOGRAPH - ,0xE3C5 ,0x77E2 //CJK UNIFIED IDEOGRAPH - ,0xE3C6 ,0x793A //CJK UNIFIED IDEOGRAPH - ,0xE3C7 ,0x7FC5 //CJK UNIFIED IDEOGRAPH - ,0xE3C8 ,0x8494 //CJK UNIFIED IDEOGRAPH - ,0xE3C9 ,0x84CD //CJK UNIFIED IDEOGRAPH - ,0xE3CA ,0x8996 //CJK UNIFIED IDEOGRAPH - ,0xE3CB ,0x8A66 //CJK UNIFIED IDEOGRAPH - ,0xE3CC ,0x8A69 //CJK UNIFIED IDEOGRAPH - ,0xE3CD ,0x8AE1 //CJK UNIFIED IDEOGRAPH - ,0xE3CE ,0x8C55 //CJK UNIFIED IDEOGRAPH - ,0xE3CF ,0x8C7A //CJK UNIFIED IDEOGRAPH - ,0xE3D0 ,0x57F4 //CJK UNIFIED IDEOGRAPH - ,0xE3D1 ,0x5BD4 //CJK UNIFIED IDEOGRAPH - ,0xE3D2 ,0x5F0F //CJK UNIFIED IDEOGRAPH - ,0xE3D3 ,0x606F //CJK UNIFIED IDEOGRAPH - ,0xE3D4 ,0x62ED //CJK UNIFIED IDEOGRAPH - ,0xE3D5 ,0x690D //CJK UNIFIED IDEOGRAPH - ,0xE3D6 ,0x6B96 //CJK UNIFIED IDEOGRAPH - ,0xE3D7 ,0x6E5C //CJK UNIFIED IDEOGRAPH - ,0xE3D8 ,0x7184 //CJK UNIFIED IDEOGRAPH - ,0xE3D9 ,0x7BD2 //CJK UNIFIED IDEOGRAPH - ,0xE3DA ,0x8755 //CJK UNIFIED IDEOGRAPH - ,0xE3DB ,0x8B58 //CJK UNIFIED IDEOGRAPH - ,0xE3DC ,0x8EFE //CJK UNIFIED IDEOGRAPH - ,0xE3DD ,0x98DF //CJK UNIFIED IDEOGRAPH - ,0xE3DE ,0x98FE //CJK UNIFIED IDEOGRAPH - ,0xE3DF ,0x4F38 //CJK UNIFIED IDEOGRAPH - ,0xE3E0 ,0x4F81 //CJK UNIFIED IDEOGRAPH - ,0xE3E1 ,0x4FE1 //CJK UNIFIED IDEOGRAPH - ,0xE3E2 ,0x547B //CJK UNIFIED IDEOGRAPH - ,0xE3E3 ,0x5A20 //CJK UNIFIED IDEOGRAPH - ,0xE3E4 ,0x5BB8 //CJK UNIFIED IDEOGRAPH - ,0xE3E5 ,0x613C //CJK UNIFIED IDEOGRAPH - ,0xE3E6 ,0x65B0 //CJK UNIFIED IDEOGRAPH - ,0xE3E7 ,0x6668 //CJK UNIFIED IDEOGRAPH - ,0xE3E8 ,0x71FC //CJK UNIFIED IDEOGRAPH - ,0xE3E9 ,0x7533 //CJK UNIFIED IDEOGRAPH - ,0xE3EA ,0x795E //CJK UNIFIED IDEOGRAPH - ,0xE3EB ,0x7D33 //CJK UNIFIED IDEOGRAPH - ,0xE3EC ,0x814E //CJK UNIFIED IDEOGRAPH - ,0xE3ED ,0x81E3 //CJK UNIFIED IDEOGRAPH - ,0xE3EE ,0x8398 //CJK UNIFIED IDEOGRAPH - ,0xE3EF ,0x85AA //CJK UNIFIED IDEOGRAPH - ,0xE3F0 ,0x85CE //CJK UNIFIED IDEOGRAPH - ,0xE3F1 ,0x8703 //CJK UNIFIED IDEOGRAPH - ,0xE3F2 ,0x8A0A //CJK UNIFIED IDEOGRAPH - ,0xE3F3 ,0x8EAB //CJK UNIFIED IDEOGRAPH - ,0xE3F4 ,0x8F9B //CJK UNIFIED IDEOGRAPH - ,0xE3F5 ,0xF971 //CJK COMPATIBILITY IDEOGRAPH - ,0xE3F6 ,0x8FC5 //CJK UNIFIED IDEOGRAPH - ,0xE3F7 ,0x5931 //CJK UNIFIED IDEOGRAPH - ,0xE3F8 ,0x5BA4 //CJK UNIFIED IDEOGRAPH - ,0xE3F9 ,0x5BE6 //CJK UNIFIED IDEOGRAPH - ,0xE3FA ,0x6089 //CJK UNIFIED IDEOGRAPH - ,0xE3FB ,0x5BE9 //CJK UNIFIED IDEOGRAPH - ,0xE3FC ,0x5C0B //CJK UNIFIED IDEOGRAPH - ,0xE3FD ,0x5FC3 //CJK UNIFIED IDEOGRAPH - ,0xE3FE ,0x6C81 //CJK UNIFIED IDEOGRAPH - ,0xE4A1 ,0xF972 //CJK COMPATIBILITY IDEOGRAPH - ,0xE4A2 ,0x6DF1 //CJK UNIFIED IDEOGRAPH - ,0xE4A3 ,0x700B //CJK UNIFIED IDEOGRAPH - ,0xE4A4 ,0x751A //CJK UNIFIED IDEOGRAPH - ,0xE4A5 ,0x82AF //CJK UNIFIED IDEOGRAPH - ,0xE4A6 ,0x8AF6 //CJK UNIFIED IDEOGRAPH - ,0xE4A7 ,0x4EC0 //CJK UNIFIED IDEOGRAPH - ,0xE4A8 ,0x5341 //CJK UNIFIED IDEOGRAPH - ,0xE4A9 ,0xF973 //CJK COMPATIBILITY IDEOGRAPH - ,0xE4AA ,0x96D9 //CJK UNIFIED IDEOGRAPH - ,0xE4AB ,0x6C0F //CJK UNIFIED IDEOGRAPH - ,0xE4AC ,0x4E9E //CJK UNIFIED IDEOGRAPH - ,0xE4AD ,0x4FC4 //CJK UNIFIED IDEOGRAPH - ,0xE4AE ,0x5152 //CJK UNIFIED IDEOGRAPH - ,0xE4AF ,0x555E //CJK UNIFIED IDEOGRAPH - ,0xE4B0 ,0x5A25 //CJK UNIFIED IDEOGRAPH - ,0xE4B1 ,0x5CE8 //CJK UNIFIED IDEOGRAPH - ,0xE4B2 ,0x6211 //CJK UNIFIED IDEOGRAPH - ,0xE4B3 ,0x7259 //CJK UNIFIED IDEOGRAPH - ,0xE4B4 ,0x82BD //CJK UNIFIED IDEOGRAPH - ,0xE4B5 ,0x83AA //CJK UNIFIED IDEOGRAPH - ,0xE4B6 ,0x86FE //CJK UNIFIED IDEOGRAPH - ,0xE4B7 ,0x8859 //CJK UNIFIED IDEOGRAPH - ,0xE4B8 ,0x8A1D //CJK UNIFIED IDEOGRAPH - ,0xE4B9 ,0x963F //CJK UNIFIED IDEOGRAPH - ,0xE4BA ,0x96C5 //CJK UNIFIED IDEOGRAPH - ,0xE4BB ,0x9913 //CJK UNIFIED IDEOGRAPH - ,0xE4BC ,0x9D09 //CJK UNIFIED IDEOGRAPH - ,0xE4BD ,0x9D5D //CJK UNIFIED IDEOGRAPH - ,0xE4BE ,0x580A //CJK UNIFIED IDEOGRAPH - ,0xE4BF ,0x5CB3 //CJK UNIFIED IDEOGRAPH - ,0xE4C0 ,0x5DBD //CJK UNIFIED IDEOGRAPH - ,0xE4C1 ,0x5E44 //CJK UNIFIED IDEOGRAPH - ,0xE4C2 ,0x60E1 //CJK UNIFIED IDEOGRAPH - ,0xE4C3 ,0x6115 //CJK UNIFIED IDEOGRAPH - ,0xE4C4 ,0x63E1 //CJK UNIFIED IDEOGRAPH - ,0xE4C5 ,0x6A02 //CJK UNIFIED IDEOGRAPH - ,0xE4C6 ,0x6E25 //CJK UNIFIED IDEOGRAPH - ,0xE4C7 ,0x9102 //CJK UNIFIED IDEOGRAPH - ,0xE4C8 ,0x9354 //CJK UNIFIED IDEOGRAPH - ,0xE4C9 ,0x984E //CJK UNIFIED IDEOGRAPH - ,0xE4CA ,0x9C10 //CJK UNIFIED IDEOGRAPH - ,0xE4CB ,0x9F77 //CJK UNIFIED IDEOGRAPH - ,0xE4CC ,0x5B89 //CJK UNIFIED IDEOGRAPH - ,0xE4CD ,0x5CB8 //CJK UNIFIED IDEOGRAPH - ,0xE4CE ,0x6309 //CJK UNIFIED IDEOGRAPH - ,0xE4CF ,0x664F //CJK UNIFIED IDEOGRAPH - ,0xE4D0 ,0x6848 //CJK UNIFIED IDEOGRAPH - ,0xE4D1 ,0x773C //CJK UNIFIED IDEOGRAPH - ,0xE4D2 ,0x96C1 //CJK UNIFIED IDEOGRAPH - ,0xE4D3 ,0x978D //CJK UNIFIED IDEOGRAPH - ,0xE4D4 ,0x9854 //CJK UNIFIED IDEOGRAPH - ,0xE4D5 ,0x9B9F //CJK UNIFIED IDEOGRAPH - ,0xE4D6 ,0x65A1 //CJK UNIFIED IDEOGRAPH - ,0xE4D7 ,0x8B01 //CJK UNIFIED IDEOGRAPH - ,0xE4D8 ,0x8ECB //CJK UNIFIED IDEOGRAPH - ,0xE4D9 ,0x95BC //CJK UNIFIED IDEOGRAPH - ,0xE4DA ,0x5535 //CJK UNIFIED IDEOGRAPH - ,0xE4DB ,0x5CA9 //CJK UNIFIED IDEOGRAPH - ,0xE4DC ,0x5DD6 //CJK UNIFIED IDEOGRAPH - ,0xE4DD ,0x5EB5 //CJK UNIFIED IDEOGRAPH - ,0xE4DE ,0x6697 //CJK UNIFIED IDEOGRAPH - ,0xE4DF ,0x764C //CJK UNIFIED IDEOGRAPH - ,0xE4E0 ,0x83F4 //CJK UNIFIED IDEOGRAPH - ,0xE4E1 ,0x95C7 //CJK UNIFIED IDEOGRAPH - ,0xE4E2 ,0x58D3 //CJK UNIFIED IDEOGRAPH - ,0xE4E3 ,0x62BC //CJK UNIFIED IDEOGRAPH - ,0xE4E4 ,0x72CE //CJK UNIFIED IDEOGRAPH - ,0xE4E5 ,0x9D28 //CJK UNIFIED IDEOGRAPH - ,0xE4E6 ,0x4EF0 //CJK UNIFIED IDEOGRAPH - ,0xE4E7 ,0x592E //CJK UNIFIED IDEOGRAPH - ,0xE4E8 ,0x600F //CJK UNIFIED IDEOGRAPH - ,0xE4E9 ,0x663B //CJK UNIFIED IDEOGRAPH - ,0xE4EA ,0x6B83 //CJK UNIFIED IDEOGRAPH - ,0xE4EB ,0x79E7 //CJK UNIFIED IDEOGRAPH - ,0xE4EC ,0x9D26 //CJK UNIFIED IDEOGRAPH - ,0xE4ED ,0x5393 //CJK UNIFIED IDEOGRAPH - ,0xE4EE ,0x54C0 //CJK UNIFIED IDEOGRAPH - ,0xE4EF ,0x57C3 //CJK UNIFIED IDEOGRAPH - ,0xE4F0 ,0x5D16 //CJK UNIFIED IDEOGRAPH - ,0xE4F1 ,0x611B //CJK UNIFIED IDEOGRAPH - ,0xE4F2 ,0x66D6 //CJK UNIFIED IDEOGRAPH - ,0xE4F3 ,0x6DAF //CJK UNIFIED IDEOGRAPH - ,0xE4F4 ,0x788D //CJK UNIFIED IDEOGRAPH - ,0xE4F5 ,0x827E //CJK UNIFIED IDEOGRAPH - ,0xE4F6 ,0x9698 //CJK UNIFIED IDEOGRAPH - ,0xE4F7 ,0x9744 //CJK UNIFIED IDEOGRAPH - ,0xE4F8 ,0x5384 //CJK UNIFIED IDEOGRAPH - ,0xE4F9 ,0x627C //CJK UNIFIED IDEOGRAPH - ,0xE4FA ,0x6396 //CJK UNIFIED IDEOGRAPH - ,0xE4FB ,0x6DB2 //CJK UNIFIED IDEOGRAPH - ,0xE4FC ,0x7E0A //CJK UNIFIED IDEOGRAPH - ,0xE4FD ,0x814B //CJK UNIFIED IDEOGRAPH - ,0xE4FE ,0x984D //CJK UNIFIED IDEOGRAPH - ,0xE5A1 ,0x6AFB //CJK UNIFIED IDEOGRAPH - ,0xE5A2 ,0x7F4C //CJK UNIFIED IDEOGRAPH - ,0xE5A3 ,0x9DAF //CJK UNIFIED IDEOGRAPH - ,0xE5A4 ,0x9E1A //CJK UNIFIED IDEOGRAPH - ,0xE5A5 ,0x4E5F //CJK UNIFIED IDEOGRAPH - ,0xE5A6 ,0x503B //CJK UNIFIED IDEOGRAPH - ,0xE5A7 ,0x51B6 //CJK UNIFIED IDEOGRAPH - ,0xE5A8 ,0x591C //CJK UNIFIED IDEOGRAPH - ,0xE5A9 ,0x60F9 //CJK UNIFIED IDEOGRAPH - ,0xE5AA ,0x63F6 //CJK UNIFIED IDEOGRAPH - ,0xE5AB ,0x6930 //CJK UNIFIED IDEOGRAPH - ,0xE5AC ,0x723A //CJK UNIFIED IDEOGRAPH - ,0xE5AD ,0x8036 //CJK UNIFIED IDEOGRAPH - ,0xE5AE ,0xF974 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5AF ,0x91CE //CJK UNIFIED IDEOGRAPH - ,0xE5B0 ,0x5F31 //CJK UNIFIED IDEOGRAPH - ,0xE5B1 ,0xF975 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5B2 ,0xF976 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5B3 ,0x7D04 //CJK UNIFIED IDEOGRAPH - ,0xE5B4 ,0x82E5 //CJK UNIFIED IDEOGRAPH - ,0xE5B5 ,0x846F //CJK UNIFIED IDEOGRAPH - ,0xE5B6 ,0x84BB //CJK UNIFIED IDEOGRAPH - ,0xE5B7 ,0x85E5 //CJK UNIFIED IDEOGRAPH - ,0xE5B8 ,0x8E8D //CJK UNIFIED IDEOGRAPH - ,0xE5B9 ,0xF977 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5BA ,0x4F6F //CJK UNIFIED IDEOGRAPH - ,0xE5BB ,0xF978 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5BC ,0xF979 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5BD ,0x58E4 //CJK UNIFIED IDEOGRAPH - ,0xE5BE ,0x5B43 //CJK UNIFIED IDEOGRAPH - ,0xE5BF ,0x6059 //CJK UNIFIED IDEOGRAPH - ,0xE5C0 ,0x63DA //CJK UNIFIED IDEOGRAPH - ,0xE5C1 ,0x6518 //CJK UNIFIED IDEOGRAPH - ,0xE5C2 ,0x656D //CJK UNIFIED IDEOGRAPH - ,0xE5C3 ,0x6698 //CJK UNIFIED IDEOGRAPH - ,0xE5C4 ,0xF97A //CJK COMPATIBILITY IDEOGRAPH - ,0xE5C5 ,0x694A //CJK UNIFIED IDEOGRAPH - ,0xE5C6 ,0x6A23 //CJK UNIFIED IDEOGRAPH - ,0xE5C7 ,0x6D0B //CJK UNIFIED IDEOGRAPH - ,0xE5C8 ,0x7001 //CJK UNIFIED IDEOGRAPH - ,0xE5C9 ,0x716C //CJK UNIFIED IDEOGRAPH - ,0xE5CA ,0x75D2 //CJK UNIFIED IDEOGRAPH - ,0xE5CB ,0x760D //CJK UNIFIED IDEOGRAPH - ,0xE5CC ,0x79B3 //CJK UNIFIED IDEOGRAPH - ,0xE5CD ,0x7A70 //CJK UNIFIED IDEOGRAPH - ,0xE5CE ,0xF97B //CJK COMPATIBILITY IDEOGRAPH - ,0xE5CF ,0x7F8A //CJK UNIFIED IDEOGRAPH - ,0xE5D0 ,0xF97C //CJK COMPATIBILITY IDEOGRAPH - ,0xE5D1 ,0x8944 //CJK UNIFIED IDEOGRAPH - ,0xE5D2 ,0xF97D //CJK COMPATIBILITY IDEOGRAPH - ,0xE5D3 ,0x8B93 //CJK UNIFIED IDEOGRAPH - ,0xE5D4 ,0x91C0 //CJK UNIFIED IDEOGRAPH - ,0xE5D5 ,0x967D //CJK UNIFIED IDEOGRAPH - ,0xE5D6 ,0xF97E //CJK COMPATIBILITY IDEOGRAPH - ,0xE5D7 ,0x990A //CJK UNIFIED IDEOGRAPH - ,0xE5D8 ,0x5704 //CJK UNIFIED IDEOGRAPH - ,0xE5D9 ,0x5FA1 //CJK UNIFIED IDEOGRAPH - ,0xE5DA ,0x65BC //CJK UNIFIED IDEOGRAPH - ,0xE5DB ,0x6F01 //CJK UNIFIED IDEOGRAPH - ,0xE5DC ,0x7600 //CJK UNIFIED IDEOGRAPH - ,0xE5DD ,0x79A6 //CJK UNIFIED IDEOGRAPH - ,0xE5DE ,0x8A9E //CJK UNIFIED IDEOGRAPH - ,0xE5DF ,0x99AD //CJK UNIFIED IDEOGRAPH - ,0xE5E0 ,0x9B5A //CJK UNIFIED IDEOGRAPH - ,0xE5E1 ,0x9F6C //CJK UNIFIED IDEOGRAPH - ,0xE5E2 ,0x5104 //CJK UNIFIED IDEOGRAPH - ,0xE5E3 ,0x61B6 //CJK UNIFIED IDEOGRAPH - ,0xE5E4 ,0x6291 //CJK UNIFIED IDEOGRAPH - ,0xE5E5 ,0x6A8D //CJK UNIFIED IDEOGRAPH - ,0xE5E6 ,0x81C6 //CJK UNIFIED IDEOGRAPH - ,0xE5E7 ,0x5043 //CJK UNIFIED IDEOGRAPH - ,0xE5E8 ,0x5830 //CJK UNIFIED IDEOGRAPH - ,0xE5E9 ,0x5F66 //CJK UNIFIED IDEOGRAPH - ,0xE5EA ,0x7109 //CJK UNIFIED IDEOGRAPH - ,0xE5EB ,0x8A00 //CJK UNIFIED IDEOGRAPH - ,0xE5EC ,0x8AFA //CJK UNIFIED IDEOGRAPH - ,0xE5ED ,0x5B7C //CJK UNIFIED IDEOGRAPH - ,0xE5EE ,0x8616 //CJK UNIFIED IDEOGRAPH - ,0xE5EF ,0x4FFA //CJK UNIFIED IDEOGRAPH - ,0xE5F0 ,0x513C //CJK UNIFIED IDEOGRAPH - ,0xE5F1 ,0x56B4 //CJK UNIFIED IDEOGRAPH - ,0xE5F2 ,0x5944 //CJK UNIFIED IDEOGRAPH - ,0xE5F3 ,0x63A9 //CJK UNIFIED IDEOGRAPH - ,0xE5F4 ,0x6DF9 //CJK UNIFIED IDEOGRAPH - ,0xE5F5 ,0x5DAA //CJK UNIFIED IDEOGRAPH - ,0xE5F6 ,0x696D //CJK UNIFIED IDEOGRAPH - ,0xE5F7 ,0x5186 //CJK UNIFIED IDEOGRAPH - ,0xE5F8 ,0x4E88 //CJK UNIFIED IDEOGRAPH - ,0xE5F9 ,0x4F59 //CJK UNIFIED IDEOGRAPH - ,0xE5FA ,0xF97F //CJK COMPATIBILITY IDEOGRAPH - ,0xE5FB ,0xF980 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5FC ,0xF981 //CJK COMPATIBILITY IDEOGRAPH - ,0xE5FD ,0x5982 //CJK UNIFIED IDEOGRAPH - ,0xE5FE ,0xF982 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6A1 ,0xF983 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6A2 ,0x6B5F //CJK UNIFIED IDEOGRAPH - ,0xE6A3 ,0x6C5D //CJK UNIFIED IDEOGRAPH - ,0xE6A4 ,0xF984 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6A5 ,0x74B5 //CJK UNIFIED IDEOGRAPH - ,0xE6A6 ,0x7916 //CJK UNIFIED IDEOGRAPH - ,0xE6A7 ,0xF985 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6A8 ,0x8207 //CJK UNIFIED IDEOGRAPH - ,0xE6A9 ,0x8245 //CJK UNIFIED IDEOGRAPH - ,0xE6AA ,0x8339 //CJK UNIFIED IDEOGRAPH - ,0xE6AB ,0x8F3F //CJK UNIFIED IDEOGRAPH - ,0xE6AC ,0x8F5D //CJK UNIFIED IDEOGRAPH - ,0xE6AD ,0xF986 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6AE ,0x9918 //CJK UNIFIED IDEOGRAPH - ,0xE6AF ,0xF987 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6B0 ,0xF988 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6B1 ,0xF989 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6B2 ,0x4EA6 //CJK UNIFIED IDEOGRAPH - ,0xE6B3 ,0xF98A //CJK COMPATIBILITY IDEOGRAPH - ,0xE6B4 ,0x57DF //CJK UNIFIED IDEOGRAPH - ,0xE6B5 ,0x5F79 //CJK UNIFIED IDEOGRAPH - ,0xE6B6 ,0x6613 //CJK UNIFIED IDEOGRAPH - ,0xE6B7 ,0xF98B //CJK COMPATIBILITY IDEOGRAPH - ,0xE6B8 ,0xF98C //CJK COMPATIBILITY IDEOGRAPH - ,0xE6B9 ,0x75AB //CJK UNIFIED IDEOGRAPH - ,0xE6BA ,0x7E79 //CJK UNIFIED IDEOGRAPH - ,0xE6BB ,0x8B6F //CJK UNIFIED IDEOGRAPH - ,0xE6BC ,0xF98D //CJK COMPATIBILITY IDEOGRAPH - ,0xE6BD ,0x9006 //CJK UNIFIED IDEOGRAPH - ,0xE6BE ,0x9A5B //CJK UNIFIED IDEOGRAPH - ,0xE6BF ,0x56A5 //CJK UNIFIED IDEOGRAPH - ,0xE6C0 ,0x5827 //CJK UNIFIED IDEOGRAPH - ,0xE6C1 ,0x59F8 //CJK UNIFIED IDEOGRAPH - ,0xE6C2 ,0x5A1F //CJK UNIFIED IDEOGRAPH - ,0xE6C3 ,0x5BB4 //CJK UNIFIED IDEOGRAPH - ,0xE6C4 ,0xF98E //CJK COMPATIBILITY IDEOGRAPH - ,0xE6C5 ,0x5EF6 //CJK UNIFIED IDEOGRAPH - ,0xE6C6 ,0xF98F //CJK COMPATIBILITY IDEOGRAPH - ,0xE6C7 ,0xF990 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6C8 ,0x6350 //CJK UNIFIED IDEOGRAPH - ,0xE6C9 ,0x633B //CJK UNIFIED IDEOGRAPH - ,0xE6CA ,0xF991 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6CB ,0x693D //CJK UNIFIED IDEOGRAPH - ,0xE6CC ,0x6C87 //CJK UNIFIED IDEOGRAPH - ,0xE6CD ,0x6CBF //CJK UNIFIED IDEOGRAPH - ,0xE6CE ,0x6D8E //CJK UNIFIED IDEOGRAPH - ,0xE6CF ,0x6D93 //CJK UNIFIED IDEOGRAPH - ,0xE6D0 ,0x6DF5 //CJK UNIFIED IDEOGRAPH - ,0xE6D1 ,0x6F14 //CJK UNIFIED IDEOGRAPH - ,0xE6D2 ,0xF992 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6D3 ,0x70DF //CJK UNIFIED IDEOGRAPH - ,0xE6D4 ,0x7136 //CJK UNIFIED IDEOGRAPH - ,0xE6D5 ,0x7159 //CJK UNIFIED IDEOGRAPH - ,0xE6D6 ,0xF993 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6D7 ,0x71C3 //CJK UNIFIED IDEOGRAPH - ,0xE6D8 ,0x71D5 //CJK UNIFIED IDEOGRAPH - ,0xE6D9 ,0xF994 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6DA ,0x784F //CJK UNIFIED IDEOGRAPH - ,0xE6DB ,0x786F //CJK UNIFIED IDEOGRAPH - ,0xE6DC ,0xF995 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6DD ,0x7B75 //CJK UNIFIED IDEOGRAPH - ,0xE6DE ,0x7DE3 //CJK UNIFIED IDEOGRAPH - ,0xE6DF ,0xF996 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6E0 ,0x7E2F //CJK UNIFIED IDEOGRAPH - ,0xE6E1 ,0xF997 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6E2 ,0x884D //CJK UNIFIED IDEOGRAPH - ,0xE6E3 ,0x8EDF //CJK UNIFIED IDEOGRAPH - ,0xE6E4 ,0xF998 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6E5 ,0xF999 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6E6 ,0xF99A //CJK COMPATIBILITY IDEOGRAPH - ,0xE6E7 ,0x925B //CJK UNIFIED IDEOGRAPH - ,0xE6E8 ,0xF99B //CJK COMPATIBILITY IDEOGRAPH - ,0xE6E9 ,0x9CF6 //CJK UNIFIED IDEOGRAPH - ,0xE6EA ,0xF99C //CJK COMPATIBILITY IDEOGRAPH - ,0xE6EB ,0xF99D //CJK COMPATIBILITY IDEOGRAPH - ,0xE6EC ,0xF99E //CJK COMPATIBILITY IDEOGRAPH - ,0xE6ED ,0x6085 //CJK UNIFIED IDEOGRAPH - ,0xE6EE ,0x6D85 //CJK UNIFIED IDEOGRAPH - ,0xE6EF ,0xF99F //CJK COMPATIBILITY IDEOGRAPH - ,0xE6F0 ,0x71B1 //CJK UNIFIED IDEOGRAPH - ,0xE6F1 ,0xF9A0 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6F2 ,0xF9A1 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6F3 ,0x95B1 //CJK UNIFIED IDEOGRAPH - ,0xE6F4 ,0x53AD //CJK UNIFIED IDEOGRAPH - ,0xE6F5 ,0xF9A2 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6F6 ,0xF9A3 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6F7 ,0xF9A4 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6F8 ,0x67D3 //CJK UNIFIED IDEOGRAPH - ,0xE6F9 ,0xF9A5 //CJK COMPATIBILITY IDEOGRAPH - ,0xE6FA ,0x708E //CJK UNIFIED IDEOGRAPH - ,0xE6FB ,0x7130 //CJK UNIFIED IDEOGRAPH - ,0xE6FC ,0x7430 //CJK UNIFIED IDEOGRAPH - ,0xE6FD ,0x8276 //CJK UNIFIED IDEOGRAPH - ,0xE6FE ,0x82D2 //CJK UNIFIED IDEOGRAPH - ,0xE7A1 ,0xF9A6 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7A2 ,0x95BB //CJK UNIFIED IDEOGRAPH - ,0xE7A3 ,0x9AE5 //CJK UNIFIED IDEOGRAPH - ,0xE7A4 ,0x9E7D //CJK UNIFIED IDEOGRAPH - ,0xE7A5 ,0x66C4 //CJK UNIFIED IDEOGRAPH - ,0xE7A6 ,0xF9A7 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7A7 ,0x71C1 //CJK UNIFIED IDEOGRAPH - ,0xE7A8 ,0x8449 //CJK UNIFIED IDEOGRAPH - ,0xE7A9 ,0xF9A8 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7AA ,0xF9A9 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7AB ,0x584B //CJK UNIFIED IDEOGRAPH - ,0xE7AC ,0xF9AA //CJK COMPATIBILITY IDEOGRAPH - ,0xE7AD ,0xF9AB //CJK COMPATIBILITY IDEOGRAPH - ,0xE7AE ,0x5DB8 //CJK UNIFIED IDEOGRAPH - ,0xE7AF ,0x5F71 //CJK UNIFIED IDEOGRAPH - ,0xE7B0 ,0xF9AC //CJK COMPATIBILITY IDEOGRAPH - ,0xE7B1 ,0x6620 //CJK UNIFIED IDEOGRAPH - ,0xE7B2 ,0x668E //CJK UNIFIED IDEOGRAPH - ,0xE7B3 ,0x6979 //CJK UNIFIED IDEOGRAPH - ,0xE7B4 ,0x69AE //CJK UNIFIED IDEOGRAPH - ,0xE7B5 ,0x6C38 //CJK UNIFIED IDEOGRAPH - ,0xE7B6 ,0x6CF3 //CJK UNIFIED IDEOGRAPH - ,0xE7B7 ,0x6E36 //CJK UNIFIED IDEOGRAPH - ,0xE7B8 ,0x6F41 //CJK UNIFIED IDEOGRAPH - ,0xE7B9 ,0x6FDA //CJK UNIFIED IDEOGRAPH - ,0xE7BA ,0x701B //CJK UNIFIED IDEOGRAPH - ,0xE7BB ,0x702F //CJK UNIFIED IDEOGRAPH - ,0xE7BC ,0x7150 //CJK UNIFIED IDEOGRAPH - ,0xE7BD ,0x71DF //CJK UNIFIED IDEOGRAPH - ,0xE7BE ,0x7370 //CJK UNIFIED IDEOGRAPH - ,0xE7BF ,0xF9AD //CJK COMPATIBILITY IDEOGRAPH - ,0xE7C0 ,0x745B //CJK UNIFIED IDEOGRAPH - ,0xE7C1 ,0xF9AE //CJK COMPATIBILITY IDEOGRAPH - ,0xE7C2 ,0x74D4 //CJK UNIFIED IDEOGRAPH - ,0xE7C3 ,0x76C8 //CJK UNIFIED IDEOGRAPH - ,0xE7C4 ,0x7A4E //CJK UNIFIED IDEOGRAPH - ,0xE7C5 ,0x7E93 //CJK UNIFIED IDEOGRAPH - ,0xE7C6 ,0xF9AF //CJK COMPATIBILITY IDEOGRAPH - ,0xE7C7 ,0xF9B0 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7C8 ,0x82F1 //CJK UNIFIED IDEOGRAPH - ,0xE7C9 ,0x8A60 //CJK UNIFIED IDEOGRAPH - ,0xE7CA ,0x8FCE //CJK UNIFIED IDEOGRAPH - ,0xE7CB ,0xF9B1 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7CC ,0x9348 //CJK UNIFIED IDEOGRAPH - ,0xE7CD ,0xF9B2 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7CE ,0x9719 //CJK UNIFIED IDEOGRAPH - ,0xE7CF ,0xF9B3 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7D0 ,0xF9B4 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7D1 ,0x4E42 //CJK UNIFIED IDEOGRAPH - ,0xE7D2 ,0x502A //CJK UNIFIED IDEOGRAPH - ,0xE7D3 ,0xF9B5 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7D4 ,0x5208 //CJK UNIFIED IDEOGRAPH - ,0xE7D5 ,0x53E1 //CJK UNIFIED IDEOGRAPH - ,0xE7D6 ,0x66F3 //CJK UNIFIED IDEOGRAPH - ,0xE7D7 ,0x6C6D //CJK UNIFIED IDEOGRAPH - ,0xE7D8 ,0x6FCA //CJK UNIFIED IDEOGRAPH - ,0xE7D9 ,0x730A //CJK UNIFIED IDEOGRAPH - ,0xE7DA ,0x777F //CJK UNIFIED IDEOGRAPH - ,0xE7DB ,0x7A62 //CJK UNIFIED IDEOGRAPH - ,0xE7DC ,0x82AE //CJK UNIFIED IDEOGRAPH - ,0xE7DD ,0x85DD //CJK UNIFIED IDEOGRAPH - ,0xE7DE ,0x8602 //CJK UNIFIED IDEOGRAPH - ,0xE7DF ,0xF9B6 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7E0 ,0x88D4 //CJK UNIFIED IDEOGRAPH - ,0xE7E1 ,0x8A63 //CJK UNIFIED IDEOGRAPH - ,0xE7E2 ,0x8B7D //CJK UNIFIED IDEOGRAPH - ,0xE7E3 ,0x8C6B //CJK UNIFIED IDEOGRAPH - ,0xE7E4 ,0xF9B7 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7E5 ,0x92B3 //CJK UNIFIED IDEOGRAPH - ,0xE7E6 ,0xF9B8 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7E7 ,0x9713 //CJK UNIFIED IDEOGRAPH - ,0xE7E8 ,0x9810 //CJK UNIFIED IDEOGRAPH - ,0xE7E9 ,0x4E94 //CJK UNIFIED IDEOGRAPH - ,0xE7EA ,0x4F0D //CJK UNIFIED IDEOGRAPH - ,0xE7EB ,0x4FC9 //CJK UNIFIED IDEOGRAPH - ,0xE7EC ,0x50B2 //CJK UNIFIED IDEOGRAPH - ,0xE7ED ,0x5348 //CJK UNIFIED IDEOGRAPH - ,0xE7EE ,0x543E //CJK UNIFIED IDEOGRAPH - ,0xE7EF ,0x5433 //CJK UNIFIED IDEOGRAPH - ,0xE7F0 ,0x55DA //CJK UNIFIED IDEOGRAPH - ,0xE7F1 ,0x5862 //CJK UNIFIED IDEOGRAPH - ,0xE7F2 ,0x58BA //CJK UNIFIED IDEOGRAPH - ,0xE7F3 ,0x5967 //CJK UNIFIED IDEOGRAPH - ,0xE7F4 ,0x5A1B //CJK UNIFIED IDEOGRAPH - ,0xE7F5 ,0x5BE4 //CJK UNIFIED IDEOGRAPH - ,0xE7F6 ,0x609F //CJK UNIFIED IDEOGRAPH - ,0xE7F7 ,0xF9B9 //CJK COMPATIBILITY IDEOGRAPH - ,0xE7F8 ,0x61CA //CJK UNIFIED IDEOGRAPH - ,0xE7F9 ,0x6556 //CJK UNIFIED IDEOGRAPH - ,0xE7FA ,0x65FF //CJK UNIFIED IDEOGRAPH - ,0xE7FB ,0x6664 //CJK UNIFIED IDEOGRAPH - ,0xE7FC ,0x68A7 //CJK UNIFIED IDEOGRAPH - ,0xE7FD ,0x6C5A //CJK UNIFIED IDEOGRAPH - ,0xE7FE ,0x6FB3 //CJK UNIFIED IDEOGRAPH - ,0xE8A1 ,0x70CF //CJK UNIFIED IDEOGRAPH - ,0xE8A2 ,0x71AC //CJK UNIFIED IDEOGRAPH - ,0xE8A3 ,0x7352 //CJK UNIFIED IDEOGRAPH - ,0xE8A4 ,0x7B7D //CJK UNIFIED IDEOGRAPH - ,0xE8A5 ,0x8708 //CJK UNIFIED IDEOGRAPH - ,0xE8A6 ,0x8AA4 //CJK UNIFIED IDEOGRAPH - ,0xE8A7 ,0x9C32 //CJK UNIFIED IDEOGRAPH - ,0xE8A8 ,0x9F07 //CJK UNIFIED IDEOGRAPH - ,0xE8A9 ,0x5C4B //CJK UNIFIED IDEOGRAPH - ,0xE8AA ,0x6C83 //CJK UNIFIED IDEOGRAPH - ,0xE8AB ,0x7344 //CJK UNIFIED IDEOGRAPH - ,0xE8AC ,0x7389 //CJK UNIFIED IDEOGRAPH - ,0xE8AD ,0x923A //CJK UNIFIED IDEOGRAPH - ,0xE8AE ,0x6EAB //CJK UNIFIED IDEOGRAPH - ,0xE8AF ,0x7465 //CJK UNIFIED IDEOGRAPH - ,0xE8B0 ,0x761F //CJK UNIFIED IDEOGRAPH - ,0xE8B1 ,0x7A69 //CJK UNIFIED IDEOGRAPH - ,0xE8B2 ,0x7E15 //CJK UNIFIED IDEOGRAPH - ,0xE8B3 ,0x860A //CJK UNIFIED IDEOGRAPH - ,0xE8B4 ,0x5140 //CJK UNIFIED IDEOGRAPH - ,0xE8B5 ,0x58C5 //CJK UNIFIED IDEOGRAPH - ,0xE8B6 ,0x64C1 //CJK UNIFIED IDEOGRAPH - ,0xE8B7 ,0x74EE //CJK UNIFIED IDEOGRAPH - ,0xE8B8 ,0x7515 //CJK UNIFIED IDEOGRAPH - ,0xE8B9 ,0x7670 //CJK UNIFIED IDEOGRAPH - ,0xE8BA ,0x7FC1 //CJK UNIFIED IDEOGRAPH - ,0xE8BB ,0x9095 //CJK UNIFIED IDEOGRAPH - ,0xE8BC ,0x96CD //CJK UNIFIED IDEOGRAPH - ,0xE8BD ,0x9954 //CJK UNIFIED IDEOGRAPH - ,0xE8BE ,0x6E26 //CJK UNIFIED IDEOGRAPH - ,0xE8BF ,0x74E6 //CJK UNIFIED IDEOGRAPH - ,0xE8C0 ,0x7AA9 //CJK UNIFIED IDEOGRAPH - ,0xE8C1 ,0x7AAA //CJK UNIFIED IDEOGRAPH - ,0xE8C2 ,0x81E5 //CJK UNIFIED IDEOGRAPH - ,0xE8C3 ,0x86D9 //CJK UNIFIED IDEOGRAPH - ,0xE8C4 ,0x8778 //CJK UNIFIED IDEOGRAPH - ,0xE8C5 ,0x8A1B //CJK UNIFIED IDEOGRAPH - ,0xE8C6 ,0x5A49 //CJK UNIFIED IDEOGRAPH - ,0xE8C7 ,0x5B8C //CJK UNIFIED IDEOGRAPH - ,0xE8C8 ,0x5B9B //CJK UNIFIED IDEOGRAPH - ,0xE8C9 ,0x68A1 //CJK UNIFIED IDEOGRAPH - ,0xE8CA ,0x6900 //CJK UNIFIED IDEOGRAPH - ,0xE8CB ,0x6D63 //CJK UNIFIED IDEOGRAPH - ,0xE8CC ,0x73A9 //CJK UNIFIED IDEOGRAPH - ,0xE8CD ,0x7413 //CJK UNIFIED IDEOGRAPH - ,0xE8CE ,0x742C //CJK UNIFIED IDEOGRAPH - ,0xE8CF ,0x7897 //CJK UNIFIED IDEOGRAPH - ,0xE8D0 ,0x7DE9 //CJK UNIFIED IDEOGRAPH - ,0xE8D1 ,0x7FEB //CJK UNIFIED IDEOGRAPH - ,0xE8D2 ,0x8118 //CJK UNIFIED IDEOGRAPH - ,0xE8D3 ,0x8155 //CJK UNIFIED IDEOGRAPH - ,0xE8D4 ,0x839E //CJK UNIFIED IDEOGRAPH - ,0xE8D5 ,0x8C4C //CJK UNIFIED IDEOGRAPH - ,0xE8D6 ,0x962E //CJK UNIFIED IDEOGRAPH - ,0xE8D7 ,0x9811 //CJK UNIFIED IDEOGRAPH - ,0xE8D8 ,0x66F0 //CJK UNIFIED IDEOGRAPH - ,0xE8D9 ,0x5F80 //CJK UNIFIED IDEOGRAPH - ,0xE8DA ,0x65FA //CJK UNIFIED IDEOGRAPH - ,0xE8DB ,0x6789 //CJK UNIFIED IDEOGRAPH - ,0xE8DC ,0x6C6A //CJK UNIFIED IDEOGRAPH - ,0xE8DD ,0x738B //CJK UNIFIED IDEOGRAPH - ,0xE8DE ,0x502D //CJK UNIFIED IDEOGRAPH - ,0xE8DF ,0x5A03 //CJK UNIFIED IDEOGRAPH - ,0xE8E0 ,0x6B6A //CJK UNIFIED IDEOGRAPH - ,0xE8E1 ,0x77EE //CJK UNIFIED IDEOGRAPH - ,0xE8E2 ,0x5916 //CJK UNIFIED IDEOGRAPH - ,0xE8E3 ,0x5D6C //CJK UNIFIED IDEOGRAPH - ,0xE8E4 ,0x5DCD //CJK UNIFIED IDEOGRAPH - ,0xE8E5 ,0x7325 //CJK UNIFIED IDEOGRAPH - ,0xE8E6 ,0x754F //CJK UNIFIED IDEOGRAPH - ,0xE8E7 ,0xF9BA //CJK COMPATIBILITY IDEOGRAPH - ,0xE8E8 ,0xF9BB //CJK COMPATIBILITY IDEOGRAPH - ,0xE8E9 ,0x50E5 //CJK UNIFIED IDEOGRAPH - ,0xE8EA ,0x51F9 //CJK UNIFIED IDEOGRAPH - ,0xE8EB ,0x582F //CJK UNIFIED IDEOGRAPH - ,0xE8EC ,0x592D //CJK UNIFIED IDEOGRAPH - ,0xE8ED ,0x5996 //CJK UNIFIED IDEOGRAPH - ,0xE8EE ,0x59DA //CJK UNIFIED IDEOGRAPH - ,0xE8EF ,0x5BE5 //CJK UNIFIED IDEOGRAPH - ,0xE8F0 ,0xF9BC //CJK COMPATIBILITY IDEOGRAPH - ,0xE8F1 ,0xF9BD //CJK COMPATIBILITY IDEOGRAPH - ,0xE8F2 ,0x5DA2 //CJK UNIFIED IDEOGRAPH - ,0xE8F3 ,0x62D7 //CJK UNIFIED IDEOGRAPH - ,0xE8F4 ,0x6416 //CJK UNIFIED IDEOGRAPH - ,0xE8F5 ,0x6493 //CJK UNIFIED IDEOGRAPH - ,0xE8F6 ,0x64FE //CJK UNIFIED IDEOGRAPH - ,0xE8F7 ,0xF9BE //CJK COMPATIBILITY IDEOGRAPH - ,0xE8F8 ,0x66DC //CJK UNIFIED IDEOGRAPH - ,0xE8F9 ,0xF9BF //CJK COMPATIBILITY IDEOGRAPH - ,0xE8FA ,0x6A48 //CJK UNIFIED IDEOGRAPH - ,0xE8FB ,0xF9C0 //CJK COMPATIBILITY IDEOGRAPH - ,0xE8FC ,0x71FF //CJK UNIFIED IDEOGRAPH - ,0xE8FD ,0x7464 //CJK UNIFIED IDEOGRAPH - ,0xE8FE ,0xF9C1 //CJK COMPATIBILITY IDEOGRAPH - ,0xE9A1 ,0x7A88 //CJK UNIFIED IDEOGRAPH - ,0xE9A2 ,0x7AAF //CJK UNIFIED IDEOGRAPH - ,0xE9A3 ,0x7E47 //CJK UNIFIED IDEOGRAPH - ,0xE9A4 ,0x7E5E //CJK UNIFIED IDEOGRAPH - ,0xE9A5 ,0x8000 //CJK UNIFIED IDEOGRAPH - ,0xE9A6 ,0x8170 //CJK UNIFIED IDEOGRAPH - ,0xE9A7 ,0xF9C2 //CJK COMPATIBILITY IDEOGRAPH - ,0xE9A8 ,0x87EF //CJK UNIFIED IDEOGRAPH - ,0xE9A9 ,0x8981 //CJK UNIFIED IDEOGRAPH - ,0xE9AA ,0x8B20 //CJK UNIFIED IDEOGRAPH - ,0xE9AB ,0x9059 //CJK UNIFIED IDEOGRAPH - ,0xE9AC ,0xF9C3 //CJK COMPATIBILITY IDEOGRAPH - ,0xE9AD ,0x9080 //CJK UNIFIED IDEOGRAPH - ,0xE9AE ,0x9952 //CJK UNIFIED IDEOGRAPH - ,0xE9AF ,0x617E //CJK UNIFIED IDEOGRAPH - ,0xE9B0 ,0x6B32 //CJK UNIFIED IDEOGRAPH - ,0xE9B1 ,0x6D74 //CJK UNIFIED IDEOGRAPH - ,0xE9B2 ,0x7E1F //CJK UNIFIED IDEOGRAPH - ,0xE9B3 ,0x8925 //CJK UNIFIED IDEOGRAPH - ,0xE9B4 ,0x8FB1 //CJK UNIFIED IDEOGRAPH - ,0xE9B5 ,0x4FD1 //CJK UNIFIED IDEOGRAPH - ,0xE9B6 ,0x50AD //CJK UNIFIED IDEOGRAPH - ,0xE9B7 ,0x5197 //CJK UNIFIED IDEOGRAPH - ,0xE9B8 ,0x52C7 //CJK UNIFIED IDEOGRAPH - ,0xE9B9 ,0x57C7 //CJK UNIFIED IDEOGRAPH - ,0xE9BA ,0x5889 //CJK UNIFIED IDEOGRAPH - ,0xE9BB ,0x5BB9 //CJK UNIFIED IDEOGRAPH - ,0xE9BC ,0x5EB8 //CJK UNIFIED IDEOGRAPH - ,0xE9BD ,0x6142 //CJK UNIFIED IDEOGRAPH - ,0xE9BE ,0x6995 //CJK UNIFIED IDEOGRAPH - ,0xE9BF ,0x6D8C //CJK UNIFIED IDEOGRAPH - ,0xE9C0 ,0x6E67 //CJK UNIFIED IDEOGRAPH - ,0xE9C1 ,0x6EB6 //CJK UNIFIED IDEOGRAPH - ,0xE9C2 ,0x7194 //CJK UNIFIED IDEOGRAPH - ,0xE9C3 ,0x7462 //CJK UNIFIED IDEOGRAPH - ,0xE9C4 ,0x7528 //CJK UNIFIED IDEOGRAPH - ,0xE9C5 ,0x752C //CJK UNIFIED IDEOGRAPH - ,0xE9C6 ,0x8073 //CJK UNIFIED IDEOGRAPH - ,0xE9C7 ,0x8338 //CJK UNIFIED IDEOGRAPH - ,0xE9C8 ,0x84C9 //CJK UNIFIED IDEOGRAPH - ,0xE9C9 ,0x8E0A //CJK UNIFIED IDEOGRAPH - ,0xE9CA ,0x9394 //CJK UNIFIED IDEOGRAPH - ,0xE9CB ,0x93DE //CJK UNIFIED IDEOGRAPH - ,0xE9CC ,0xF9C4 //CJK COMPATIBILITY IDEOGRAPH - ,0xE9CD ,0x4E8E //CJK UNIFIED IDEOGRAPH - ,0xE9CE ,0x4F51 //CJK UNIFIED IDEOGRAPH - ,0xE9CF ,0x5076 //CJK UNIFIED IDEOGRAPH - ,0xE9D0 ,0x512A //CJK UNIFIED IDEOGRAPH - ,0xE9D1 ,0x53C8 //CJK UNIFIED IDEOGRAPH - ,0xE9D2 ,0x53CB //CJK UNIFIED IDEOGRAPH - ,0xE9D3 ,0x53F3 //CJK UNIFIED IDEOGRAPH - ,0xE9D4 ,0x5B87 //CJK UNIFIED IDEOGRAPH - ,0xE9D5 ,0x5BD3 //CJK UNIFIED IDEOGRAPH - ,0xE9D6 ,0x5C24 //CJK UNIFIED IDEOGRAPH - ,0xE9D7 ,0x611A //CJK UNIFIED IDEOGRAPH - ,0xE9D8 ,0x6182 //CJK UNIFIED IDEOGRAPH - ,0xE9D9 ,0x65F4 //CJK UNIFIED IDEOGRAPH - ,0xE9DA ,0x725B //CJK UNIFIED IDEOGRAPH - ,0xE9DB ,0x7397 //CJK UNIFIED IDEOGRAPH - ,0xE9DC ,0x7440 //CJK UNIFIED IDEOGRAPH - ,0xE9DD ,0x76C2 //CJK UNIFIED IDEOGRAPH - ,0xE9DE ,0x7950 //CJK UNIFIED IDEOGRAPH - ,0xE9DF ,0x7991 //CJK UNIFIED IDEOGRAPH - ,0xE9E0 ,0x79B9 //CJK UNIFIED IDEOGRAPH - ,0xE9E1 ,0x7D06 //CJK UNIFIED IDEOGRAPH - ,0xE9E2 ,0x7FBD //CJK UNIFIED IDEOGRAPH - ,0xE9E3 ,0x828B //CJK UNIFIED IDEOGRAPH - ,0xE9E4 ,0x85D5 //CJK UNIFIED IDEOGRAPH - ,0xE9E5 ,0x865E //CJK UNIFIED IDEOGRAPH - ,0xE9E6 ,0x8FC2 //CJK UNIFIED IDEOGRAPH - ,0xE9E7 ,0x9047 //CJK UNIFIED IDEOGRAPH - ,0xE9E8 ,0x90F5 //CJK UNIFIED IDEOGRAPH - ,0xE9E9 ,0x91EA //CJK UNIFIED IDEOGRAPH - ,0xE9EA ,0x9685 //CJK UNIFIED IDEOGRAPH - ,0xE9EB ,0x96E8 //CJK UNIFIED IDEOGRAPH - ,0xE9EC ,0x96E9 //CJK UNIFIED IDEOGRAPH - ,0xE9ED ,0x52D6 //CJK UNIFIED IDEOGRAPH - ,0xE9EE ,0x5F67 //CJK UNIFIED IDEOGRAPH - ,0xE9EF ,0x65ED //CJK UNIFIED IDEOGRAPH - ,0xE9F0 ,0x6631 //CJK UNIFIED IDEOGRAPH - ,0xE9F1 ,0x682F //CJK UNIFIED IDEOGRAPH - ,0xE9F2 ,0x715C //CJK UNIFIED IDEOGRAPH - ,0xE9F3 ,0x7A36 //CJK UNIFIED IDEOGRAPH - ,0xE9F4 ,0x90C1 //CJK UNIFIED IDEOGRAPH - ,0xE9F5 ,0x980A //CJK UNIFIED IDEOGRAPH - ,0xE9F6 ,0x4E91 //CJK UNIFIED IDEOGRAPH - ,0xE9F7 ,0xF9C5 //CJK COMPATIBILITY IDEOGRAPH - ,0xE9F8 ,0x6A52 //CJK UNIFIED IDEOGRAPH - ,0xE9F9 ,0x6B9E //CJK UNIFIED IDEOGRAPH - ,0xE9FA ,0x6F90 //CJK UNIFIED IDEOGRAPH - ,0xE9FB ,0x7189 //CJK UNIFIED IDEOGRAPH - ,0xE9FC ,0x8018 //CJK UNIFIED IDEOGRAPH - ,0xE9FD ,0x82B8 //CJK UNIFIED IDEOGRAPH - ,0xE9FE ,0x8553 //CJK UNIFIED IDEOGRAPH - ,0xEAA1 ,0x904B //CJK UNIFIED IDEOGRAPH - ,0xEAA2 ,0x9695 //CJK UNIFIED IDEOGRAPH - ,0xEAA3 ,0x96F2 //CJK UNIFIED IDEOGRAPH - ,0xEAA4 ,0x97FB //CJK UNIFIED IDEOGRAPH - ,0xEAA5 ,0x851A //CJK UNIFIED IDEOGRAPH - ,0xEAA6 ,0x9B31 //CJK UNIFIED IDEOGRAPH - ,0xEAA7 ,0x4E90 //CJK UNIFIED IDEOGRAPH - ,0xEAA8 ,0x718A //CJK UNIFIED IDEOGRAPH - ,0xEAA9 ,0x96C4 //CJK UNIFIED IDEOGRAPH - ,0xEAAA ,0x5143 //CJK UNIFIED IDEOGRAPH - ,0xEAAB ,0x539F //CJK UNIFIED IDEOGRAPH - ,0xEAAC ,0x54E1 //CJK UNIFIED IDEOGRAPH - ,0xEAAD ,0x5713 //CJK UNIFIED IDEOGRAPH - ,0xEAAE ,0x5712 //CJK UNIFIED IDEOGRAPH - ,0xEAAF ,0x57A3 //CJK UNIFIED IDEOGRAPH - ,0xEAB0 ,0x5A9B //CJK UNIFIED IDEOGRAPH - ,0xEAB1 ,0x5AC4 //CJK UNIFIED IDEOGRAPH - ,0xEAB2 ,0x5BC3 //CJK UNIFIED IDEOGRAPH - ,0xEAB3 ,0x6028 //CJK UNIFIED IDEOGRAPH - ,0xEAB4 ,0x613F //CJK UNIFIED IDEOGRAPH - ,0xEAB5 ,0x63F4 //CJK UNIFIED IDEOGRAPH - ,0xEAB6 ,0x6C85 //CJK UNIFIED IDEOGRAPH - ,0xEAB7 ,0x6D39 //CJK UNIFIED IDEOGRAPH - ,0xEAB8 ,0x6E72 //CJK UNIFIED IDEOGRAPH - ,0xEAB9 ,0x6E90 //CJK UNIFIED IDEOGRAPH - ,0xEABA ,0x7230 //CJK UNIFIED IDEOGRAPH - ,0xEABB ,0x733F //CJK UNIFIED IDEOGRAPH - ,0xEABC ,0x7457 //CJK UNIFIED IDEOGRAPH - ,0xEABD ,0x82D1 //CJK UNIFIED IDEOGRAPH - ,0xEABE ,0x8881 //CJK UNIFIED IDEOGRAPH - ,0xEABF ,0x8F45 //CJK UNIFIED IDEOGRAPH - ,0xEAC0 ,0x9060 //CJK UNIFIED IDEOGRAPH - ,0xEAC1 ,0xF9C6 //CJK COMPATIBILITY IDEOGRAPH - ,0xEAC2 ,0x9662 //CJK UNIFIED IDEOGRAPH - ,0xEAC3 ,0x9858 //CJK UNIFIED IDEOGRAPH - ,0xEAC4 ,0x9D1B //CJK UNIFIED IDEOGRAPH - ,0xEAC5 ,0x6708 //CJK UNIFIED IDEOGRAPH - ,0xEAC6 ,0x8D8A //CJK UNIFIED IDEOGRAPH - ,0xEAC7 ,0x925E //CJK UNIFIED IDEOGRAPH - ,0xEAC8 ,0x4F4D //CJK UNIFIED IDEOGRAPH - ,0xEAC9 ,0x5049 //CJK UNIFIED IDEOGRAPH - ,0xEACA ,0x50DE //CJK UNIFIED IDEOGRAPH - ,0xEACB ,0x5371 //CJK UNIFIED IDEOGRAPH - ,0xEACC ,0x570D //CJK UNIFIED IDEOGRAPH - ,0xEACD ,0x59D4 //CJK UNIFIED IDEOGRAPH - ,0xEACE ,0x5A01 //CJK UNIFIED IDEOGRAPH - ,0xEACF ,0x5C09 //CJK UNIFIED IDEOGRAPH - ,0xEAD0 ,0x6170 //CJK UNIFIED IDEOGRAPH - ,0xEAD1 ,0x6690 //CJK UNIFIED IDEOGRAPH - ,0xEAD2 ,0x6E2D //CJK UNIFIED IDEOGRAPH - ,0xEAD3 ,0x7232 //CJK UNIFIED IDEOGRAPH - ,0xEAD4 ,0x744B //CJK UNIFIED IDEOGRAPH - ,0xEAD5 ,0x7DEF //CJK UNIFIED IDEOGRAPH - ,0xEAD6 ,0x80C3 //CJK UNIFIED IDEOGRAPH - ,0xEAD7 ,0x840E //CJK UNIFIED IDEOGRAPH - ,0xEAD8 ,0x8466 //CJK UNIFIED IDEOGRAPH - ,0xEAD9 ,0x853F //CJK UNIFIED IDEOGRAPH - ,0xEADA ,0x875F //CJK UNIFIED IDEOGRAPH - ,0xEADB ,0x885B //CJK UNIFIED IDEOGRAPH - ,0xEADC ,0x8918 //CJK UNIFIED IDEOGRAPH - ,0xEADD ,0x8B02 //CJK UNIFIED IDEOGRAPH - ,0xEADE ,0x9055 //CJK UNIFIED IDEOGRAPH - ,0xEADF ,0x97CB //CJK UNIFIED IDEOGRAPH - ,0xEAE0 ,0x9B4F //CJK UNIFIED IDEOGRAPH - ,0xEAE1 ,0x4E73 //CJK UNIFIED IDEOGRAPH - ,0xEAE2 ,0x4F91 //CJK UNIFIED IDEOGRAPH - ,0xEAE3 ,0x5112 //CJK UNIFIED IDEOGRAPH - ,0xEAE4 ,0x516A //CJK UNIFIED IDEOGRAPH - ,0xEAE5 ,0xF9C7 //CJK COMPATIBILITY IDEOGRAPH - ,0xEAE6 ,0x552F //CJK UNIFIED IDEOGRAPH - ,0xEAE7 ,0x55A9 //CJK UNIFIED IDEOGRAPH - ,0xEAE8 ,0x5B7A //CJK UNIFIED IDEOGRAPH - ,0xEAE9 ,0x5BA5 //CJK UNIFIED IDEOGRAPH - ,0xEAEA ,0x5E7C //CJK UNIFIED IDEOGRAPH - ,0xEAEB ,0x5E7D //CJK UNIFIED IDEOGRAPH - ,0xEAEC ,0x5EBE //CJK UNIFIED IDEOGRAPH - ,0xEAED ,0x60A0 //CJK UNIFIED IDEOGRAPH - ,0xEAEE ,0x60DF //CJK UNIFIED IDEOGRAPH - ,0xEAEF ,0x6108 //CJK UNIFIED IDEOGRAPH - ,0xEAF0 ,0x6109 //CJK UNIFIED IDEOGRAPH - ,0xEAF1 ,0x63C4 //CJK UNIFIED IDEOGRAPH - ,0xEAF2 ,0x6538 //CJK UNIFIED IDEOGRAPH - ,0xEAF3 ,0x6709 //CJK UNIFIED IDEOGRAPH - ,0xEAF4 ,0xF9C8 //CJK COMPATIBILITY IDEOGRAPH - ,0xEAF5 ,0x67D4 //CJK UNIFIED IDEOGRAPH - ,0xEAF6 ,0x67DA //CJK UNIFIED IDEOGRAPH - ,0xEAF7 ,0xF9C9 //CJK COMPATIBILITY IDEOGRAPH - ,0xEAF8 ,0x6961 //CJK UNIFIED IDEOGRAPH - ,0xEAF9 ,0x6962 //CJK UNIFIED IDEOGRAPH - ,0xEAFA ,0x6CB9 //CJK UNIFIED IDEOGRAPH - ,0xEAFB ,0x6D27 //CJK UNIFIED IDEOGRAPH - ,0xEAFC ,0xF9CA //CJK COMPATIBILITY IDEOGRAPH - ,0xEAFD ,0x6E38 //CJK UNIFIED IDEOGRAPH - ,0xEAFE ,0xF9CB //CJK COMPATIBILITY IDEOGRAPH - ,0xEBA1 ,0x6FE1 //CJK UNIFIED IDEOGRAPH - ,0xEBA2 ,0x7336 //CJK UNIFIED IDEOGRAPH - ,0xEBA3 ,0x7337 //CJK UNIFIED IDEOGRAPH - ,0xEBA4 ,0xF9CC //CJK COMPATIBILITY IDEOGRAPH - ,0xEBA5 ,0x745C //CJK UNIFIED IDEOGRAPH - ,0xEBA6 ,0x7531 //CJK UNIFIED IDEOGRAPH - ,0xEBA7 ,0xF9CD //CJK COMPATIBILITY IDEOGRAPH - ,0xEBA8 ,0x7652 //CJK UNIFIED IDEOGRAPH - ,0xEBA9 ,0xF9CE //CJK COMPATIBILITY IDEOGRAPH - ,0xEBAA ,0xF9CF //CJK COMPATIBILITY IDEOGRAPH - ,0xEBAB ,0x7DAD //CJK UNIFIED IDEOGRAPH - ,0xEBAC ,0x81FE //CJK UNIFIED IDEOGRAPH - ,0xEBAD ,0x8438 //CJK UNIFIED IDEOGRAPH - ,0xEBAE ,0x88D5 //CJK UNIFIED IDEOGRAPH - ,0xEBAF ,0x8A98 //CJK UNIFIED IDEOGRAPH - ,0xEBB0 ,0x8ADB //CJK UNIFIED IDEOGRAPH - ,0xEBB1 ,0x8AED //CJK UNIFIED IDEOGRAPH - ,0xEBB2 ,0x8E30 //CJK UNIFIED IDEOGRAPH - ,0xEBB3 ,0x8E42 //CJK UNIFIED IDEOGRAPH - ,0xEBB4 ,0x904A //CJK UNIFIED IDEOGRAPH - ,0xEBB5 ,0x903E //CJK UNIFIED IDEOGRAPH - ,0xEBB6 ,0x907A //CJK UNIFIED IDEOGRAPH - ,0xEBB7 ,0x9149 //CJK UNIFIED IDEOGRAPH - ,0xEBB8 ,0x91C9 //CJK UNIFIED IDEOGRAPH - ,0xEBB9 ,0x936E //CJK UNIFIED IDEOGRAPH - ,0xEBBA ,0xF9D0 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBBB ,0xF9D1 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBBC ,0x5809 //CJK UNIFIED IDEOGRAPH - ,0xEBBD ,0xF9D2 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBBE ,0x6BD3 //CJK UNIFIED IDEOGRAPH - ,0xEBBF ,0x8089 //CJK UNIFIED IDEOGRAPH - ,0xEBC0 ,0x80B2 //CJK UNIFIED IDEOGRAPH - ,0xEBC1 ,0xF9D3 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBC2 ,0xF9D4 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBC3 ,0x5141 //CJK UNIFIED IDEOGRAPH - ,0xEBC4 ,0x596B //CJK UNIFIED IDEOGRAPH - ,0xEBC5 ,0x5C39 //CJK UNIFIED IDEOGRAPH - ,0xEBC6 ,0xF9D5 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBC7 ,0xF9D6 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBC8 ,0x6F64 //CJK UNIFIED IDEOGRAPH - ,0xEBC9 ,0x73A7 //CJK UNIFIED IDEOGRAPH - ,0xEBCA ,0x80E4 //CJK UNIFIED IDEOGRAPH - ,0xEBCB ,0x8D07 //CJK UNIFIED IDEOGRAPH - ,0xEBCC ,0xF9D7 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBCD ,0x9217 //CJK UNIFIED IDEOGRAPH - ,0xEBCE ,0x958F //CJK UNIFIED IDEOGRAPH - ,0xEBCF ,0xF9D8 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBD0 ,0xF9D9 //CJK COMPATIBILITY IDEOGRAPH - ,0xEBD1 ,0xF9DA //CJK COMPATIBILITY IDEOGRAPH - ,0xEBD2 ,0xF9DB //CJK COMPATIBILITY IDEOGRAPH - ,0xEBD3 ,0x807F //CJK UNIFIED IDEOGRAPH - ,0xEBD4 ,0x620E //CJK UNIFIED IDEOGRAPH - ,0xEBD5 ,0x701C //CJK UNIFIED IDEOGRAPH - ,0xEBD6 ,0x7D68 //CJK UNIFIED IDEOGRAPH - ,0xEBD7 ,0x878D //CJK UNIFIED IDEOGRAPH - ,0xEBD8 ,0xF9DC //CJK COMPATIBILITY IDEOGRAPH - ,0xEBD9 ,0x57A0 //CJK UNIFIED IDEOGRAPH - ,0xEBDA ,0x6069 //CJK UNIFIED IDEOGRAPH - ,0xEBDB ,0x6147 //CJK UNIFIED IDEOGRAPH - ,0xEBDC ,0x6BB7 //CJK UNIFIED IDEOGRAPH - ,0xEBDD ,0x8ABE //CJK UNIFIED IDEOGRAPH - ,0xEBDE ,0x9280 //CJK UNIFIED IDEOGRAPH - ,0xEBDF ,0x96B1 //CJK UNIFIED IDEOGRAPH - ,0xEBE0 ,0x4E59 //CJK UNIFIED IDEOGRAPH - ,0xEBE1 ,0x541F //CJK UNIFIED IDEOGRAPH - ,0xEBE2 ,0x6DEB //CJK UNIFIED IDEOGRAPH - ,0xEBE3 ,0x852D //CJK UNIFIED IDEOGRAPH - ,0xEBE4 ,0x9670 //CJK UNIFIED IDEOGRAPH - ,0xEBE5 ,0x97F3 //CJK UNIFIED IDEOGRAPH - ,0xEBE6 ,0x98EE //CJK UNIFIED IDEOGRAPH - ,0xEBE7 ,0x63D6 //CJK UNIFIED IDEOGRAPH - ,0xEBE8 ,0x6CE3 //CJK UNIFIED IDEOGRAPH - ,0xEBE9 ,0x9091 //CJK UNIFIED IDEOGRAPH - ,0xEBEA ,0x51DD //CJK UNIFIED IDEOGRAPH - ,0xEBEB ,0x61C9 //CJK UNIFIED IDEOGRAPH - ,0xEBEC ,0x81BA //CJK UNIFIED IDEOGRAPH - ,0xEBED ,0x9DF9 //CJK UNIFIED IDEOGRAPH - ,0xEBEE ,0x4F9D //CJK UNIFIED IDEOGRAPH - ,0xEBEF ,0x501A //CJK UNIFIED IDEOGRAPH - ,0xEBF0 ,0x5100 //CJK UNIFIED IDEOGRAPH - ,0xEBF1 ,0x5B9C //CJK UNIFIED IDEOGRAPH - ,0xEBF2 ,0x610F //CJK UNIFIED IDEOGRAPH - ,0xEBF3 ,0x61FF //CJK UNIFIED IDEOGRAPH - ,0xEBF4 ,0x64EC //CJK UNIFIED IDEOGRAPH - ,0xEBF5 ,0x6905 //CJK UNIFIED IDEOGRAPH - ,0xEBF6 ,0x6BC5 //CJK UNIFIED IDEOGRAPH - ,0xEBF7 ,0x7591 //CJK UNIFIED IDEOGRAPH - ,0xEBF8 ,0x77E3 //CJK UNIFIED IDEOGRAPH - ,0xEBF9 ,0x7FA9 //CJK UNIFIED IDEOGRAPH - ,0xEBFA ,0x8264 //CJK UNIFIED IDEOGRAPH - ,0xEBFB ,0x858F //CJK UNIFIED IDEOGRAPH - ,0xEBFC ,0x87FB //CJK UNIFIED IDEOGRAPH - ,0xEBFD ,0x8863 //CJK UNIFIED IDEOGRAPH - ,0xEBFE ,0x8ABC //CJK UNIFIED IDEOGRAPH - ,0xECA1 ,0x8B70 //CJK UNIFIED IDEOGRAPH - ,0xECA2 ,0x91AB //CJK UNIFIED IDEOGRAPH - ,0xECA3 ,0x4E8C //CJK UNIFIED IDEOGRAPH - ,0xECA4 ,0x4EE5 //CJK UNIFIED IDEOGRAPH - ,0xECA5 ,0x4F0A //CJK UNIFIED IDEOGRAPH - ,0xECA6 ,0xF9DD //CJK COMPATIBILITY IDEOGRAPH - ,0xECA7 ,0xF9DE //CJK COMPATIBILITY IDEOGRAPH - ,0xECA8 ,0x5937 //CJK UNIFIED IDEOGRAPH - ,0xECA9 ,0x59E8 //CJK UNIFIED IDEOGRAPH - ,0xECAA ,0xF9DF //CJK COMPATIBILITY IDEOGRAPH - ,0xECAB ,0x5DF2 //CJK UNIFIED IDEOGRAPH - ,0xECAC ,0x5F1B //CJK UNIFIED IDEOGRAPH - ,0xECAD ,0x5F5B //CJK UNIFIED IDEOGRAPH - ,0xECAE ,0x6021 //CJK UNIFIED IDEOGRAPH - ,0xECAF ,0xF9E0 //CJK COMPATIBILITY IDEOGRAPH - ,0xECB0 ,0xF9E1 //CJK COMPATIBILITY IDEOGRAPH - ,0xECB1 ,0xF9E2 //CJK COMPATIBILITY IDEOGRAPH - ,0xECB2 ,0xF9E3 //CJK COMPATIBILITY IDEOGRAPH - ,0xECB3 ,0x723E //CJK UNIFIED IDEOGRAPH - ,0xECB4 ,0x73E5 //CJK UNIFIED IDEOGRAPH - ,0xECB5 ,0xF9E4 //CJK COMPATIBILITY IDEOGRAPH - ,0xECB6 ,0x7570 //CJK UNIFIED IDEOGRAPH - ,0xECB7 ,0x75CD //CJK UNIFIED IDEOGRAPH - ,0xECB8 ,0xF9E5 //CJK COMPATIBILITY IDEOGRAPH - ,0xECB9 ,0x79FB //CJK UNIFIED IDEOGRAPH - ,0xECBA ,0xF9E6 //CJK COMPATIBILITY IDEOGRAPH - ,0xECBB ,0x800C //CJK UNIFIED IDEOGRAPH - ,0xECBC ,0x8033 //CJK UNIFIED IDEOGRAPH - ,0xECBD ,0x8084 //CJK UNIFIED IDEOGRAPH - ,0xECBE ,0x82E1 //CJK UNIFIED IDEOGRAPH - ,0xECBF ,0x8351 //CJK UNIFIED IDEOGRAPH - ,0xECC0 ,0xF9E7 //CJK COMPATIBILITY IDEOGRAPH - ,0xECC1 ,0xF9E8 //CJK COMPATIBILITY IDEOGRAPH - ,0xECC2 ,0x8CBD //CJK UNIFIED IDEOGRAPH - ,0xECC3 ,0x8CB3 //CJK UNIFIED IDEOGRAPH - ,0xECC4 ,0x9087 //CJK UNIFIED IDEOGRAPH - ,0xECC5 ,0xF9E9 //CJK COMPATIBILITY IDEOGRAPH - ,0xECC6 ,0xF9EA //CJK COMPATIBILITY IDEOGRAPH - ,0xECC7 ,0x98F4 //CJK UNIFIED IDEOGRAPH - ,0xECC8 ,0x990C //CJK UNIFIED IDEOGRAPH - ,0xECC9 ,0xF9EB //CJK COMPATIBILITY IDEOGRAPH - ,0xECCA ,0xF9EC //CJK COMPATIBILITY IDEOGRAPH - ,0xECCB ,0x7037 //CJK UNIFIED IDEOGRAPH - ,0xECCC ,0x76CA //CJK UNIFIED IDEOGRAPH - ,0xECCD ,0x7FCA //CJK UNIFIED IDEOGRAPH - ,0xECCE ,0x7FCC //CJK UNIFIED IDEOGRAPH - ,0xECCF ,0x7FFC //CJK UNIFIED IDEOGRAPH - ,0xECD0 ,0x8B1A //CJK UNIFIED IDEOGRAPH - ,0xECD1 ,0x4EBA //CJK UNIFIED IDEOGRAPH - ,0xECD2 ,0x4EC1 //CJK UNIFIED IDEOGRAPH - ,0xECD3 ,0x5203 //CJK UNIFIED IDEOGRAPH - ,0xECD4 ,0x5370 //CJK UNIFIED IDEOGRAPH - ,0xECD5 ,0xF9ED //CJK COMPATIBILITY IDEOGRAPH - ,0xECD6 ,0x54BD //CJK UNIFIED IDEOGRAPH - ,0xECD7 ,0x56E0 //CJK UNIFIED IDEOGRAPH - ,0xECD8 ,0x59FB //CJK UNIFIED IDEOGRAPH - ,0xECD9 ,0x5BC5 //CJK UNIFIED IDEOGRAPH - ,0xECDA ,0x5F15 //CJK UNIFIED IDEOGRAPH - ,0xECDB ,0x5FCD //CJK UNIFIED IDEOGRAPH - ,0xECDC ,0x6E6E //CJK UNIFIED IDEOGRAPH - ,0xECDD ,0xF9EE //CJK COMPATIBILITY IDEOGRAPH - ,0xECDE ,0xF9EF //CJK COMPATIBILITY IDEOGRAPH - ,0xECDF ,0x7D6A //CJK UNIFIED IDEOGRAPH - ,0xECE0 ,0x8335 //CJK UNIFIED IDEOGRAPH - ,0xECE1 ,0xF9F0 //CJK COMPATIBILITY IDEOGRAPH - ,0xECE2 ,0x8693 //CJK UNIFIED IDEOGRAPH - ,0xECE3 ,0x8A8D //CJK UNIFIED IDEOGRAPH - ,0xECE4 ,0xF9F1 //CJK COMPATIBILITY IDEOGRAPH - ,0xECE5 ,0x976D //CJK UNIFIED IDEOGRAPH - ,0xECE6 ,0x9777 //CJK UNIFIED IDEOGRAPH - ,0xECE7 ,0xF9F2 //CJK COMPATIBILITY IDEOGRAPH - ,0xECE8 ,0xF9F3 //CJK COMPATIBILITY IDEOGRAPH - ,0xECE9 ,0x4E00 //CJK UNIFIED IDEOGRAPH - ,0xECEA ,0x4F5A //CJK UNIFIED IDEOGRAPH - ,0xECEB ,0x4F7E //CJK UNIFIED IDEOGRAPH - ,0xECEC ,0x58F9 //CJK UNIFIED IDEOGRAPH - ,0xECED ,0x65E5 //CJK UNIFIED IDEOGRAPH - ,0xECEE ,0x6EA2 //CJK UNIFIED IDEOGRAPH - ,0xECEF ,0x9038 //CJK UNIFIED IDEOGRAPH - ,0xECF0 ,0x93B0 //CJK UNIFIED IDEOGRAPH - ,0xECF1 ,0x99B9 //CJK UNIFIED IDEOGRAPH - ,0xECF2 ,0x4EFB //CJK UNIFIED IDEOGRAPH - ,0xECF3 ,0x58EC //CJK UNIFIED IDEOGRAPH - ,0xECF4 ,0x598A //CJK UNIFIED IDEOGRAPH - ,0xECF5 ,0x59D9 //CJK UNIFIED IDEOGRAPH - ,0xECF6 ,0x6041 //CJK UNIFIED IDEOGRAPH - ,0xECF7 ,0xF9F4 //CJK COMPATIBILITY IDEOGRAPH - ,0xECF8 ,0xF9F5 //CJK COMPATIBILITY IDEOGRAPH - ,0xECF9 ,0x7A14 //CJK UNIFIED IDEOGRAPH - ,0xECFA ,0xF9F6 //CJK COMPATIBILITY IDEOGRAPH - ,0xECFB ,0x834F //CJK UNIFIED IDEOGRAPH - ,0xECFC ,0x8CC3 //CJK UNIFIED IDEOGRAPH - ,0xECFD ,0x5165 //CJK UNIFIED IDEOGRAPH - ,0xECFE ,0x5344 //CJK UNIFIED IDEOGRAPH - ,0xEDA1 ,0xF9F7 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDA2 ,0xF9F8 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDA3 ,0xF9F9 //CJK COMPATIBILITY IDEOGRAPH - ,0xEDA4 ,0x4ECD //CJK UNIFIED IDEOGRAPH - ,0xEDA5 ,0x5269 //CJK UNIFIED IDEOGRAPH - ,0xEDA6 ,0x5B55 //CJK UNIFIED IDEOGRAPH - ,0xEDA7 ,0x82BF //CJK UNIFIED IDEOGRAPH - ,0xEDA8 ,0x4ED4 //CJK UNIFIED IDEOGRAPH - ,0xEDA9 ,0x523A //CJK UNIFIED IDEOGRAPH - ,0xEDAA ,0x54A8 //CJK UNIFIED IDEOGRAPH - ,0xEDAB ,0x59C9 //CJK UNIFIED IDEOGRAPH - ,0xEDAC ,0x59FF //CJK UNIFIED IDEOGRAPH - ,0xEDAD ,0x5B50 //CJK UNIFIED IDEOGRAPH - ,0xEDAE ,0x5B57 //CJK UNIFIED IDEOGRAPH - ,0xEDAF ,0x5B5C //CJK UNIFIED IDEOGRAPH - ,0xEDB0 ,0x6063 //CJK UNIFIED IDEOGRAPH - ,0xEDB1 ,0x6148 //CJK UNIFIED IDEOGRAPH - ,0xEDB2 ,0x6ECB //CJK UNIFIED IDEOGRAPH - ,0xEDB3 ,0x7099 //CJK UNIFIED IDEOGRAPH - ,0xEDB4 ,0x716E //CJK UNIFIED IDEOGRAPH - ,0xEDB5 ,0x7386 //CJK UNIFIED IDEOGRAPH - ,0xEDB6 ,0x74F7 //CJK UNIFIED IDEOGRAPH - ,0xEDB7 ,0x75B5 //CJK UNIFIED IDEOGRAPH - ,0xEDB8 ,0x78C1 //CJK UNIFIED IDEOGRAPH - ,0xEDB9 ,0x7D2B //CJK UNIFIED IDEOGRAPH - ,0xEDBA ,0x8005 //CJK UNIFIED IDEOGRAPH - ,0xEDBB ,0x81EA //CJK UNIFIED IDEOGRAPH - ,0xEDBC ,0x8328 //CJK UNIFIED IDEOGRAPH - ,0xEDBD ,0x8517 //CJK UNIFIED IDEOGRAPH - ,0xEDBE ,0x85C9 //CJK UNIFIED IDEOGRAPH - ,0xEDBF ,0x8AEE //CJK UNIFIED IDEOGRAPH - ,0xEDC0 ,0x8CC7 //CJK UNIFIED IDEOGRAPH - ,0xEDC1 ,0x96CC //CJK UNIFIED IDEOGRAPH - ,0xEDC2 ,0x4F5C //CJK UNIFIED IDEOGRAPH - ,0xEDC3 ,0x52FA //CJK UNIFIED IDEOGRAPH - ,0xEDC4 ,0x56BC //CJK UNIFIED IDEOGRAPH - ,0xEDC5 ,0x65AB //CJK UNIFIED IDEOGRAPH - ,0xEDC6 ,0x6628 //CJK UNIFIED IDEOGRAPH - ,0xEDC7 ,0x707C //CJK UNIFIED IDEOGRAPH - ,0xEDC8 ,0x70B8 //CJK UNIFIED IDEOGRAPH - ,0xEDC9 ,0x7235 //CJK UNIFIED IDEOGRAPH - ,0xEDCA ,0x7DBD //CJK UNIFIED IDEOGRAPH - ,0xEDCB ,0x828D //CJK UNIFIED IDEOGRAPH - ,0xEDCC ,0x914C //CJK UNIFIED IDEOGRAPH - ,0xEDCD ,0x96C0 //CJK UNIFIED IDEOGRAPH - ,0xEDCE ,0x9D72 //CJK UNIFIED IDEOGRAPH - ,0xEDCF ,0x5B71 //CJK UNIFIED IDEOGRAPH - ,0xEDD0 ,0x68E7 //CJK UNIFIED IDEOGRAPH - ,0xEDD1 ,0x6B98 //CJK UNIFIED IDEOGRAPH - ,0xEDD2 ,0x6F7A //CJK UNIFIED IDEOGRAPH - ,0xEDD3 ,0x76DE //CJK UNIFIED IDEOGRAPH - ,0xEDD4 ,0x5C91 //CJK UNIFIED IDEOGRAPH - ,0xEDD5 ,0x66AB //CJK UNIFIED IDEOGRAPH - ,0xEDD6 ,0x6F5B //CJK UNIFIED IDEOGRAPH - ,0xEDD7 ,0x7BB4 //CJK UNIFIED IDEOGRAPH - ,0xEDD8 ,0x7C2A //CJK UNIFIED IDEOGRAPH - ,0xEDD9 ,0x8836 //CJK UNIFIED IDEOGRAPH - ,0xEDDA ,0x96DC //CJK UNIFIED IDEOGRAPH - ,0xEDDB ,0x4E08 //CJK UNIFIED IDEOGRAPH - ,0xEDDC ,0x4ED7 //CJK UNIFIED IDEOGRAPH - ,0xEDDD ,0x5320 //CJK UNIFIED IDEOGRAPH - ,0xEDDE ,0x5834 //CJK UNIFIED IDEOGRAPH - ,0xEDDF ,0x58BB //CJK UNIFIED IDEOGRAPH - ,0xEDE0 ,0x58EF //CJK UNIFIED IDEOGRAPH - ,0xEDE1 ,0x596C //CJK UNIFIED IDEOGRAPH - ,0xEDE2 ,0x5C07 //CJK UNIFIED IDEOGRAPH - ,0xEDE3 ,0x5E33 //CJK UNIFIED IDEOGRAPH - ,0xEDE4 ,0x5E84 //CJK UNIFIED IDEOGRAPH - ,0xEDE5 ,0x5F35 //CJK UNIFIED IDEOGRAPH - ,0xEDE6 ,0x638C //CJK UNIFIED IDEOGRAPH - ,0xEDE7 ,0x66B2 //CJK UNIFIED IDEOGRAPH - ,0xEDE8 ,0x6756 //CJK UNIFIED IDEOGRAPH - ,0xEDE9 ,0x6A1F //CJK UNIFIED IDEOGRAPH - ,0xEDEA ,0x6AA3 //CJK UNIFIED IDEOGRAPH - ,0xEDEB ,0x6B0C //CJK UNIFIED IDEOGRAPH - ,0xEDEC ,0x6F3F //CJK UNIFIED IDEOGRAPH - ,0xEDED ,0x7246 //CJK UNIFIED IDEOGRAPH - ,0xEDEE ,0xF9FA //CJK COMPATIBILITY IDEOGRAPH - ,0xEDEF ,0x7350 //CJK UNIFIED IDEOGRAPH - ,0xEDF0 ,0x748B //CJK UNIFIED IDEOGRAPH - ,0xEDF1 ,0x7AE0 //CJK UNIFIED IDEOGRAPH - ,0xEDF2 ,0x7CA7 //CJK UNIFIED IDEOGRAPH - ,0xEDF3 ,0x8178 //CJK UNIFIED IDEOGRAPH - ,0xEDF4 ,0x81DF //CJK UNIFIED IDEOGRAPH - ,0xEDF5 ,0x81E7 //CJK UNIFIED IDEOGRAPH - ,0xEDF6 ,0x838A //CJK UNIFIED IDEOGRAPH - ,0xEDF7 ,0x846C //CJK UNIFIED IDEOGRAPH - ,0xEDF8 ,0x8523 //CJK UNIFIED IDEOGRAPH - ,0xEDF9 ,0x8594 //CJK UNIFIED IDEOGRAPH - ,0xEDFA ,0x85CF //CJK UNIFIED IDEOGRAPH - ,0xEDFB ,0x88DD //CJK UNIFIED IDEOGRAPH - ,0xEDFC ,0x8D13 //CJK UNIFIED IDEOGRAPH - ,0xEDFD ,0x91AC //CJK UNIFIED IDEOGRAPH - ,0xEDFE ,0x9577 //CJK UNIFIED IDEOGRAPH - ,0xEEA1 ,0x969C //CJK UNIFIED IDEOGRAPH - ,0xEEA2 ,0x518D //CJK UNIFIED IDEOGRAPH - ,0xEEA3 ,0x54C9 //CJK UNIFIED IDEOGRAPH - ,0xEEA4 ,0x5728 //CJK UNIFIED IDEOGRAPH - ,0xEEA5 ,0x5BB0 //CJK UNIFIED IDEOGRAPH - ,0xEEA6 ,0x624D //CJK UNIFIED IDEOGRAPH - ,0xEEA7 ,0x6750 //CJK UNIFIED IDEOGRAPH - ,0xEEA8 ,0x683D //CJK UNIFIED IDEOGRAPH - ,0xEEA9 ,0x6893 //CJK UNIFIED IDEOGRAPH - ,0xEEAA ,0x6E3D //CJK UNIFIED IDEOGRAPH - ,0xEEAB ,0x6ED3 //CJK UNIFIED IDEOGRAPH - ,0xEEAC ,0x707D //CJK UNIFIED IDEOGRAPH - ,0xEEAD ,0x7E21 //CJK UNIFIED IDEOGRAPH - ,0xEEAE ,0x88C1 //CJK UNIFIED IDEOGRAPH - ,0xEEAF ,0x8CA1 //CJK UNIFIED IDEOGRAPH - ,0xEEB0 ,0x8F09 //CJK UNIFIED IDEOGRAPH - ,0xEEB1 ,0x9F4B //CJK UNIFIED IDEOGRAPH - ,0xEEB2 ,0x9F4E //CJK UNIFIED IDEOGRAPH - ,0xEEB3 ,0x722D //CJK UNIFIED IDEOGRAPH - ,0xEEB4 ,0x7B8F //CJK UNIFIED IDEOGRAPH - ,0xEEB5 ,0x8ACD //CJK UNIFIED IDEOGRAPH - ,0xEEB6 ,0x931A //CJK UNIFIED IDEOGRAPH - ,0xEEB7 ,0x4F47 //CJK UNIFIED IDEOGRAPH - ,0xEEB8 ,0x4F4E //CJK UNIFIED IDEOGRAPH - ,0xEEB9 ,0x5132 //CJK UNIFIED IDEOGRAPH - ,0xEEBA ,0x5480 //CJK UNIFIED IDEOGRAPH - ,0xEEBB ,0x59D0 //CJK UNIFIED IDEOGRAPH - ,0xEEBC ,0x5E95 //CJK UNIFIED IDEOGRAPH - ,0xEEBD ,0x62B5 //CJK UNIFIED IDEOGRAPH - ,0xEEBE ,0x6775 //CJK UNIFIED IDEOGRAPH - ,0xEEBF ,0x696E //CJK UNIFIED IDEOGRAPH - ,0xEEC0 ,0x6A17 //CJK UNIFIED IDEOGRAPH - ,0xEEC1 ,0x6CAE //CJK UNIFIED IDEOGRAPH - ,0xEEC2 ,0x6E1A //CJK UNIFIED IDEOGRAPH - ,0xEEC3 ,0x72D9 //CJK UNIFIED IDEOGRAPH - ,0xEEC4 ,0x732A //CJK UNIFIED IDEOGRAPH - ,0xEEC5 ,0x75BD //CJK UNIFIED IDEOGRAPH - ,0xEEC6 ,0x7BB8 //CJK UNIFIED IDEOGRAPH - ,0xEEC7 ,0x7D35 //CJK UNIFIED IDEOGRAPH - ,0xEEC8 ,0x82E7 //CJK UNIFIED IDEOGRAPH - ,0xEEC9 ,0x83F9 //CJK UNIFIED IDEOGRAPH - ,0xEECA ,0x8457 //CJK UNIFIED IDEOGRAPH - ,0xEECB ,0x85F7 //CJK UNIFIED IDEOGRAPH - ,0xEECC ,0x8A5B //CJK UNIFIED IDEOGRAPH - ,0xEECD ,0x8CAF //CJK UNIFIED IDEOGRAPH - ,0xEECE ,0x8E87 //CJK UNIFIED IDEOGRAPH - ,0xEECF ,0x9019 //CJK UNIFIED IDEOGRAPH - ,0xEED0 ,0x90B8 //CJK UNIFIED IDEOGRAPH - ,0xEED1 ,0x96CE //CJK UNIFIED IDEOGRAPH - ,0xEED2 ,0x9F5F //CJK UNIFIED IDEOGRAPH - ,0xEED3 ,0x52E3 //CJK UNIFIED IDEOGRAPH - ,0xEED4 ,0x540A //CJK UNIFIED IDEOGRAPH - ,0xEED5 ,0x5AE1 //CJK UNIFIED IDEOGRAPH - ,0xEED6 ,0x5BC2 //CJK UNIFIED IDEOGRAPH - ,0xEED7 ,0x6458 //CJK UNIFIED IDEOGRAPH - ,0xEED8 ,0x6575 //CJK UNIFIED IDEOGRAPH - ,0xEED9 ,0x6EF4 //CJK UNIFIED IDEOGRAPH - ,0xEEDA ,0x72C4 //CJK UNIFIED IDEOGRAPH - ,0xEEDB ,0xF9FB //CJK COMPATIBILITY IDEOGRAPH - ,0xEEDC ,0x7684 //CJK UNIFIED IDEOGRAPH - ,0xEEDD ,0x7A4D //CJK UNIFIED IDEOGRAPH - ,0xEEDE ,0x7B1B //CJK UNIFIED IDEOGRAPH - ,0xEEDF ,0x7C4D //CJK UNIFIED IDEOGRAPH - ,0xEEE0 ,0x7E3E //CJK UNIFIED IDEOGRAPH - ,0xEEE1 ,0x7FDF //CJK UNIFIED IDEOGRAPH - ,0xEEE2 ,0x837B //CJK UNIFIED IDEOGRAPH - ,0xEEE3 ,0x8B2B //CJK UNIFIED IDEOGRAPH - ,0xEEE4 ,0x8CCA //CJK UNIFIED IDEOGRAPH - ,0xEEE5 ,0x8D64 //CJK UNIFIED IDEOGRAPH - ,0xEEE6 ,0x8DE1 //CJK UNIFIED IDEOGRAPH - ,0xEEE7 ,0x8E5F //CJK UNIFIED IDEOGRAPH - ,0xEEE8 ,0x8FEA //CJK UNIFIED IDEOGRAPH - ,0xEEE9 ,0x8FF9 //CJK UNIFIED IDEOGRAPH - ,0xEEEA ,0x9069 //CJK UNIFIED IDEOGRAPH - ,0xEEEB ,0x93D1 //CJK UNIFIED IDEOGRAPH - ,0xEEEC ,0x4F43 //CJK UNIFIED IDEOGRAPH - ,0xEEED ,0x4F7A //CJK UNIFIED IDEOGRAPH - ,0xEEEE ,0x50B3 //CJK UNIFIED IDEOGRAPH - ,0xEEEF ,0x5168 //CJK UNIFIED IDEOGRAPH - ,0xEEF0 ,0x5178 //CJK UNIFIED IDEOGRAPH - ,0xEEF1 ,0x524D //CJK UNIFIED IDEOGRAPH - ,0xEEF2 ,0x526A //CJK UNIFIED IDEOGRAPH - ,0xEEF3 ,0x5861 //CJK UNIFIED IDEOGRAPH - ,0xEEF4 ,0x587C //CJK UNIFIED IDEOGRAPH - ,0xEEF5 ,0x5960 //CJK UNIFIED IDEOGRAPH - ,0xEEF6 ,0x5C08 //CJK UNIFIED IDEOGRAPH - ,0xEEF7 ,0x5C55 //CJK UNIFIED IDEOGRAPH - ,0xEEF8 ,0x5EDB //CJK UNIFIED IDEOGRAPH - ,0xEEF9 ,0x609B //CJK UNIFIED IDEOGRAPH - ,0xEEFA ,0x6230 //CJK UNIFIED IDEOGRAPH - ,0xEEFB ,0x6813 //CJK UNIFIED IDEOGRAPH - ,0xEEFC ,0x6BBF //CJK UNIFIED IDEOGRAPH - ,0xEEFD ,0x6C08 //CJK UNIFIED IDEOGRAPH - ,0xEEFE ,0x6FB1 //CJK UNIFIED IDEOGRAPH - ,0xEFA1 ,0x714E //CJK UNIFIED IDEOGRAPH - ,0xEFA2 ,0x7420 //CJK UNIFIED IDEOGRAPH - ,0xEFA3 ,0x7530 //CJK UNIFIED IDEOGRAPH - ,0xEFA4 ,0x7538 //CJK UNIFIED IDEOGRAPH - ,0xEFA5 ,0x7551 //CJK UNIFIED IDEOGRAPH - ,0xEFA6 ,0x7672 //CJK UNIFIED IDEOGRAPH - ,0xEFA7 ,0x7B4C //CJK UNIFIED IDEOGRAPH - ,0xEFA8 ,0x7B8B //CJK UNIFIED IDEOGRAPH - ,0xEFA9 ,0x7BAD //CJK UNIFIED IDEOGRAPH - ,0xEFAA ,0x7BC6 //CJK UNIFIED IDEOGRAPH - ,0xEFAB ,0x7E8F //CJK UNIFIED IDEOGRAPH - ,0xEFAC ,0x8A6E //CJK UNIFIED IDEOGRAPH - ,0xEFAD ,0x8F3E //CJK UNIFIED IDEOGRAPH - ,0xEFAE ,0x8F49 //CJK UNIFIED IDEOGRAPH - ,0xEFAF ,0x923F //CJK UNIFIED IDEOGRAPH - ,0xEFB0 ,0x9293 //CJK UNIFIED IDEOGRAPH - ,0xEFB1 ,0x9322 //CJK UNIFIED IDEOGRAPH - ,0xEFB2 ,0x942B //CJK UNIFIED IDEOGRAPH - ,0xEFB3 ,0x96FB //CJK UNIFIED IDEOGRAPH - ,0xEFB4 ,0x985A //CJK UNIFIED IDEOGRAPH - ,0xEFB5 ,0x986B //CJK UNIFIED IDEOGRAPH - ,0xEFB6 ,0x991E //CJK UNIFIED IDEOGRAPH - ,0xEFB7 ,0x5207 //CJK UNIFIED IDEOGRAPH - ,0xEFB8 ,0x622A //CJK UNIFIED IDEOGRAPH - ,0xEFB9 ,0x6298 //CJK UNIFIED IDEOGRAPH - ,0xEFBA ,0x6D59 //CJK UNIFIED IDEOGRAPH - ,0xEFBB ,0x7664 //CJK UNIFIED IDEOGRAPH - ,0xEFBC ,0x7ACA //CJK UNIFIED IDEOGRAPH - ,0xEFBD ,0x7BC0 //CJK UNIFIED IDEOGRAPH - ,0xEFBE ,0x7D76 //CJK UNIFIED IDEOGRAPH - ,0xEFBF ,0x5360 //CJK UNIFIED IDEOGRAPH - ,0xEFC0 ,0x5CBE //CJK UNIFIED IDEOGRAPH - ,0xEFC1 ,0x5E97 //CJK UNIFIED IDEOGRAPH - ,0xEFC2 ,0x6F38 //CJK UNIFIED IDEOGRAPH - ,0xEFC3 ,0x70B9 //CJK UNIFIED IDEOGRAPH - ,0xEFC4 ,0x7C98 //CJK UNIFIED IDEOGRAPH - ,0xEFC5 ,0x9711 //CJK UNIFIED IDEOGRAPH - ,0xEFC6 ,0x9B8E //CJK UNIFIED IDEOGRAPH - ,0xEFC7 ,0x9EDE //CJK UNIFIED IDEOGRAPH - ,0xEFC8 ,0x63A5 //CJK UNIFIED IDEOGRAPH - ,0xEFC9 ,0x647A //CJK UNIFIED IDEOGRAPH - ,0xEFCA ,0x8776 //CJK UNIFIED IDEOGRAPH - ,0xEFCB ,0x4E01 //CJK UNIFIED IDEOGRAPH - ,0xEFCC ,0x4E95 //CJK UNIFIED IDEOGRAPH - ,0xEFCD ,0x4EAD //CJK UNIFIED IDEOGRAPH - ,0xEFCE ,0x505C //CJK UNIFIED IDEOGRAPH - ,0xEFCF ,0x5075 //CJK UNIFIED IDEOGRAPH - ,0xEFD0 ,0x5448 //CJK UNIFIED IDEOGRAPH - ,0xEFD1 ,0x59C3 //CJK UNIFIED IDEOGRAPH - ,0xEFD2 ,0x5B9A //CJK UNIFIED IDEOGRAPH - ,0xEFD3 ,0x5E40 //CJK UNIFIED IDEOGRAPH - ,0xEFD4 ,0x5EAD //CJK UNIFIED IDEOGRAPH - ,0xEFD5 ,0x5EF7 //CJK UNIFIED IDEOGRAPH - ,0xEFD6 ,0x5F81 //CJK UNIFIED IDEOGRAPH - ,0xEFD7 ,0x60C5 //CJK UNIFIED IDEOGRAPH - ,0xEFD8 ,0x633A //CJK UNIFIED IDEOGRAPH - ,0xEFD9 ,0x653F //CJK UNIFIED IDEOGRAPH - ,0xEFDA ,0x6574 //CJK UNIFIED IDEOGRAPH - ,0xEFDB ,0x65CC //CJK UNIFIED IDEOGRAPH - ,0xEFDC ,0x6676 //CJK UNIFIED IDEOGRAPH - ,0xEFDD ,0x6678 //CJK UNIFIED IDEOGRAPH - ,0xEFDE ,0x67FE //CJK UNIFIED IDEOGRAPH - ,0xEFDF ,0x6968 //CJK UNIFIED IDEOGRAPH - ,0xEFE0 ,0x6A89 //CJK UNIFIED IDEOGRAPH - ,0xEFE1 ,0x6B63 //CJK UNIFIED IDEOGRAPH - ,0xEFE2 ,0x6C40 //CJK UNIFIED IDEOGRAPH - ,0xEFE3 ,0x6DC0 //CJK UNIFIED IDEOGRAPH - ,0xEFE4 ,0x6DE8 //CJK UNIFIED IDEOGRAPH - ,0xEFE5 ,0x6E1F //CJK UNIFIED IDEOGRAPH - ,0xEFE6 ,0x6E5E //CJK UNIFIED IDEOGRAPH - ,0xEFE7 ,0x701E //CJK UNIFIED IDEOGRAPH - ,0xEFE8 ,0x70A1 //CJK UNIFIED IDEOGRAPH - ,0xEFE9 ,0x738E //CJK UNIFIED IDEOGRAPH - ,0xEFEA ,0x73FD //CJK UNIFIED IDEOGRAPH - ,0xEFEB ,0x753A //CJK UNIFIED IDEOGRAPH - ,0xEFEC ,0x775B //CJK UNIFIED IDEOGRAPH - ,0xEFED ,0x7887 //CJK UNIFIED IDEOGRAPH - ,0xEFEE ,0x798E //CJK UNIFIED IDEOGRAPH - ,0xEFEF ,0x7A0B //CJK UNIFIED IDEOGRAPH - ,0xEFF0 ,0x7A7D //CJK UNIFIED IDEOGRAPH - ,0xEFF1 ,0x7CBE //CJK UNIFIED IDEOGRAPH - ,0xEFF2 ,0x7D8E //CJK UNIFIED IDEOGRAPH - ,0xEFF3 ,0x8247 //CJK UNIFIED IDEOGRAPH - ,0xEFF4 ,0x8A02 //CJK UNIFIED IDEOGRAPH - ,0xEFF5 ,0x8AEA //CJK UNIFIED IDEOGRAPH - ,0xEFF6 ,0x8C9E //CJK UNIFIED IDEOGRAPH - ,0xEFF7 ,0x912D //CJK UNIFIED IDEOGRAPH - ,0xEFF8 ,0x914A //CJK UNIFIED IDEOGRAPH - ,0xEFF9 ,0x91D8 //CJK UNIFIED IDEOGRAPH - ,0xEFFA ,0x9266 //CJK UNIFIED IDEOGRAPH - ,0xEFFB ,0x92CC //CJK UNIFIED IDEOGRAPH - ,0xEFFC ,0x9320 //CJK UNIFIED IDEOGRAPH - ,0xEFFD ,0x9706 //CJK UNIFIED IDEOGRAPH - ,0xEFFE ,0x9756 //CJK UNIFIED IDEOGRAPH - ,0xF0A1 ,0x975C //CJK UNIFIED IDEOGRAPH - ,0xF0A2 ,0x9802 //CJK UNIFIED IDEOGRAPH - ,0xF0A3 ,0x9F0E //CJK UNIFIED IDEOGRAPH - ,0xF0A4 ,0x5236 //CJK UNIFIED IDEOGRAPH - ,0xF0A5 ,0x5291 //CJK UNIFIED IDEOGRAPH - ,0xF0A6 ,0x557C //CJK UNIFIED IDEOGRAPH - ,0xF0A7 ,0x5824 //CJK UNIFIED IDEOGRAPH - ,0xF0A8 ,0x5E1D //CJK UNIFIED IDEOGRAPH - ,0xF0A9 ,0x5F1F //CJK UNIFIED IDEOGRAPH - ,0xF0AA ,0x608C //CJK UNIFIED IDEOGRAPH - ,0xF0AB ,0x63D0 //CJK UNIFIED IDEOGRAPH - ,0xF0AC ,0x68AF //CJK UNIFIED IDEOGRAPH - ,0xF0AD ,0x6FDF //CJK UNIFIED IDEOGRAPH - ,0xF0AE ,0x796D //CJK UNIFIED IDEOGRAPH - ,0xF0AF ,0x7B2C //CJK UNIFIED IDEOGRAPH - ,0xF0B0 ,0x81CD //CJK UNIFIED IDEOGRAPH - ,0xF0B1 ,0x85BA //CJK UNIFIED IDEOGRAPH - ,0xF0B2 ,0x88FD //CJK UNIFIED IDEOGRAPH - ,0xF0B3 ,0x8AF8 //CJK UNIFIED IDEOGRAPH - ,0xF0B4 ,0x8E44 //CJK UNIFIED IDEOGRAPH - ,0xF0B5 ,0x918D //CJK UNIFIED IDEOGRAPH - ,0xF0B6 ,0x9664 //CJK UNIFIED IDEOGRAPH - ,0xF0B7 ,0x969B //CJK UNIFIED IDEOGRAPH - ,0xF0B8 ,0x973D //CJK UNIFIED IDEOGRAPH - ,0xF0B9 ,0x984C //CJK UNIFIED IDEOGRAPH - ,0xF0BA ,0x9F4A //CJK UNIFIED IDEOGRAPH - ,0xF0BB ,0x4FCE //CJK UNIFIED IDEOGRAPH - ,0xF0BC ,0x5146 //CJK UNIFIED IDEOGRAPH - ,0xF0BD ,0x51CB //CJK UNIFIED IDEOGRAPH - ,0xF0BE ,0x52A9 //CJK UNIFIED IDEOGRAPH - ,0xF0BF ,0x5632 //CJK UNIFIED IDEOGRAPH - ,0xF0C0 ,0x5F14 //CJK UNIFIED IDEOGRAPH - ,0xF0C1 ,0x5F6B //CJK UNIFIED IDEOGRAPH - ,0xF0C2 ,0x63AA //CJK UNIFIED IDEOGRAPH - ,0xF0C3 ,0x64CD //CJK UNIFIED IDEOGRAPH - ,0xF0C4 ,0x65E9 //CJK UNIFIED IDEOGRAPH - ,0xF0C5 ,0x6641 //CJK UNIFIED IDEOGRAPH - ,0xF0C6 ,0x66FA //CJK UNIFIED IDEOGRAPH - ,0xF0C7 ,0x66F9 //CJK UNIFIED IDEOGRAPH - ,0xF0C8 ,0x671D //CJK UNIFIED IDEOGRAPH - ,0xF0C9 ,0x689D //CJK UNIFIED IDEOGRAPH - ,0xF0CA ,0x68D7 //CJK UNIFIED IDEOGRAPH - ,0xF0CB ,0x69FD //CJK UNIFIED IDEOGRAPH - ,0xF0CC ,0x6F15 //CJK UNIFIED IDEOGRAPH - ,0xF0CD ,0x6F6E //CJK UNIFIED IDEOGRAPH - ,0xF0CE ,0x7167 //CJK UNIFIED IDEOGRAPH - ,0xF0CF ,0x71E5 //CJK UNIFIED IDEOGRAPH - ,0xF0D0 ,0x722A //CJK UNIFIED IDEOGRAPH - ,0xF0D1 ,0x74AA //CJK UNIFIED IDEOGRAPH - ,0xF0D2 ,0x773A //CJK UNIFIED IDEOGRAPH - ,0xF0D3 ,0x7956 //CJK UNIFIED IDEOGRAPH - ,0xF0D4 ,0x795A //CJK UNIFIED IDEOGRAPH - ,0xF0D5 ,0x79DF //CJK UNIFIED IDEOGRAPH - ,0xF0D6 ,0x7A20 //CJK UNIFIED IDEOGRAPH - ,0xF0D7 ,0x7A95 //CJK UNIFIED IDEOGRAPH - ,0xF0D8 ,0x7C97 //CJK UNIFIED IDEOGRAPH - ,0xF0D9 ,0x7CDF //CJK UNIFIED IDEOGRAPH - ,0xF0DA ,0x7D44 //CJK UNIFIED IDEOGRAPH - ,0xF0DB ,0x7E70 //CJK UNIFIED IDEOGRAPH - ,0xF0DC ,0x8087 //CJK UNIFIED IDEOGRAPH - ,0xF0DD ,0x85FB //CJK UNIFIED IDEOGRAPH - ,0xF0DE ,0x86A4 //CJK UNIFIED IDEOGRAPH - ,0xF0DF ,0x8A54 //CJK UNIFIED IDEOGRAPH - ,0xF0E0 ,0x8ABF //CJK UNIFIED IDEOGRAPH - ,0xF0E1 ,0x8D99 //CJK UNIFIED IDEOGRAPH - ,0xF0E2 ,0x8E81 //CJK UNIFIED IDEOGRAPH - ,0xF0E3 ,0x9020 //CJK UNIFIED IDEOGRAPH - ,0xF0E4 ,0x906D //CJK UNIFIED IDEOGRAPH - ,0xF0E5 ,0x91E3 //CJK UNIFIED IDEOGRAPH - ,0xF0E6 ,0x963B //CJK UNIFIED IDEOGRAPH - ,0xF0E7 ,0x96D5 //CJK UNIFIED IDEOGRAPH - ,0xF0E8 ,0x9CE5 //CJK UNIFIED IDEOGRAPH - ,0xF0E9 ,0x65CF //CJK UNIFIED IDEOGRAPH - ,0xF0EA ,0x7C07 //CJK UNIFIED IDEOGRAPH - ,0xF0EB ,0x8DB3 //CJK UNIFIED IDEOGRAPH - ,0xF0EC ,0x93C3 //CJK UNIFIED IDEOGRAPH - ,0xF0ED ,0x5B58 //CJK UNIFIED IDEOGRAPH - ,0xF0EE ,0x5C0A //CJK UNIFIED IDEOGRAPH - ,0xF0EF ,0x5352 //CJK UNIFIED IDEOGRAPH - ,0xF0F0 ,0x62D9 //CJK UNIFIED IDEOGRAPH - ,0xF0F1 ,0x731D //CJK UNIFIED IDEOGRAPH - ,0xF0F2 ,0x5027 //CJK UNIFIED IDEOGRAPH - ,0xF0F3 ,0x5B97 //CJK UNIFIED IDEOGRAPH - ,0xF0F4 ,0x5F9E //CJK UNIFIED IDEOGRAPH - ,0xF0F5 ,0x60B0 //CJK UNIFIED IDEOGRAPH - ,0xF0F6 ,0x616B //CJK UNIFIED IDEOGRAPH - ,0xF0F7 ,0x68D5 //CJK UNIFIED IDEOGRAPH - ,0xF0F8 ,0x6DD9 //CJK UNIFIED IDEOGRAPH - ,0xF0F9 ,0x742E //CJK UNIFIED IDEOGRAPH - ,0xF0FA ,0x7A2E //CJK UNIFIED IDEOGRAPH - ,0xF0FB ,0x7D42 //CJK UNIFIED IDEOGRAPH - ,0xF0FC ,0x7D9C //CJK UNIFIED IDEOGRAPH - ,0xF0FD ,0x7E31 //CJK UNIFIED IDEOGRAPH - ,0xF0FE ,0x816B //CJK UNIFIED IDEOGRAPH - ,0xF1A1 ,0x8E2A //CJK UNIFIED IDEOGRAPH - ,0xF1A2 ,0x8E35 //CJK UNIFIED IDEOGRAPH - ,0xF1A3 ,0x937E //CJK UNIFIED IDEOGRAPH - ,0xF1A4 ,0x9418 //CJK UNIFIED IDEOGRAPH - ,0xF1A5 ,0x4F50 //CJK UNIFIED IDEOGRAPH - ,0xF1A6 ,0x5750 //CJK UNIFIED IDEOGRAPH - ,0xF1A7 ,0x5DE6 //CJK UNIFIED IDEOGRAPH - ,0xF1A8 ,0x5EA7 //CJK UNIFIED IDEOGRAPH - ,0xF1A9 ,0x632B //CJK UNIFIED IDEOGRAPH - ,0xF1AA ,0x7F6A //CJK UNIFIED IDEOGRAPH - ,0xF1AB ,0x4E3B //CJK UNIFIED IDEOGRAPH - ,0xF1AC ,0x4F4F //CJK UNIFIED IDEOGRAPH - ,0xF1AD ,0x4F8F //CJK UNIFIED IDEOGRAPH - ,0xF1AE ,0x505A //CJK UNIFIED IDEOGRAPH - ,0xF1AF ,0x59DD //CJK UNIFIED IDEOGRAPH - ,0xF1B0 ,0x80C4 //CJK UNIFIED IDEOGRAPH - ,0xF1B1 ,0x546A //CJK UNIFIED IDEOGRAPH - ,0xF1B2 ,0x5468 //CJK UNIFIED IDEOGRAPH - ,0xF1B3 ,0x55FE //CJK UNIFIED IDEOGRAPH - ,0xF1B4 ,0x594F //CJK UNIFIED IDEOGRAPH - ,0xF1B5 ,0x5B99 //CJK UNIFIED IDEOGRAPH - ,0xF1B6 ,0x5DDE //CJK UNIFIED IDEOGRAPH - ,0xF1B7 ,0x5EDA //CJK UNIFIED IDEOGRAPH - ,0xF1B8 ,0x665D //CJK UNIFIED IDEOGRAPH - ,0xF1B9 ,0x6731 //CJK UNIFIED IDEOGRAPH - ,0xF1BA ,0x67F1 //CJK UNIFIED IDEOGRAPH - ,0xF1BB ,0x682A //CJK UNIFIED IDEOGRAPH - ,0xF1BC ,0x6CE8 //CJK UNIFIED IDEOGRAPH - ,0xF1BD ,0x6D32 //CJK UNIFIED IDEOGRAPH - ,0xF1BE ,0x6E4A //CJK UNIFIED IDEOGRAPH - ,0xF1BF ,0x6F8D //CJK UNIFIED IDEOGRAPH - ,0xF1C0 ,0x70B7 //CJK UNIFIED IDEOGRAPH - ,0xF1C1 ,0x73E0 //CJK UNIFIED IDEOGRAPH - ,0xF1C2 ,0x7587 //CJK UNIFIED IDEOGRAPH - ,0xF1C3 ,0x7C4C //CJK UNIFIED IDEOGRAPH - ,0xF1C4 ,0x7D02 //CJK UNIFIED IDEOGRAPH - ,0xF1C5 ,0x7D2C //CJK UNIFIED IDEOGRAPH - ,0xF1C6 ,0x7DA2 //CJK UNIFIED IDEOGRAPH - ,0xF1C7 ,0x821F //CJK UNIFIED IDEOGRAPH - ,0xF1C8 ,0x86DB //CJK UNIFIED IDEOGRAPH - ,0xF1C9 ,0x8A3B //CJK UNIFIED IDEOGRAPH - ,0xF1CA ,0x8A85 //CJK UNIFIED IDEOGRAPH - ,0xF1CB ,0x8D70 //CJK UNIFIED IDEOGRAPH - ,0xF1CC ,0x8E8A //CJK UNIFIED IDEOGRAPH - ,0xF1CD ,0x8F33 //CJK UNIFIED IDEOGRAPH - ,0xF1CE ,0x9031 //CJK UNIFIED IDEOGRAPH - ,0xF1CF ,0x914E //CJK UNIFIED IDEOGRAPH - ,0xF1D0 ,0x9152 //CJK UNIFIED IDEOGRAPH - ,0xF1D1 ,0x9444 //CJK UNIFIED IDEOGRAPH - ,0xF1D2 ,0x99D0 //CJK UNIFIED IDEOGRAPH - ,0xF1D3 ,0x7AF9 //CJK UNIFIED IDEOGRAPH - ,0xF1D4 ,0x7CA5 //CJK UNIFIED IDEOGRAPH - ,0xF1D5 ,0x4FCA //CJK UNIFIED IDEOGRAPH - ,0xF1D6 ,0x5101 //CJK UNIFIED IDEOGRAPH - ,0xF1D7 ,0x51C6 //CJK UNIFIED IDEOGRAPH - ,0xF1D8 ,0x57C8 //CJK UNIFIED IDEOGRAPH - ,0xF1D9 ,0x5BEF //CJK UNIFIED IDEOGRAPH - ,0xF1DA ,0x5CFB //CJK UNIFIED IDEOGRAPH - ,0xF1DB ,0x6659 //CJK UNIFIED IDEOGRAPH - ,0xF1DC ,0x6A3D //CJK UNIFIED IDEOGRAPH - ,0xF1DD ,0x6D5A //CJK UNIFIED IDEOGRAPH - ,0xF1DE ,0x6E96 //CJK UNIFIED IDEOGRAPH - ,0xF1DF ,0x6FEC //CJK UNIFIED IDEOGRAPH - ,0xF1E0 ,0x710C //CJK UNIFIED IDEOGRAPH - ,0xF1E1 ,0x756F //CJK UNIFIED IDEOGRAPH - ,0xF1E2 ,0x7AE3 //CJK UNIFIED IDEOGRAPH - ,0xF1E3 ,0x8822 //CJK UNIFIED IDEOGRAPH - ,0xF1E4 ,0x9021 //CJK UNIFIED IDEOGRAPH - ,0xF1E5 ,0x9075 //CJK UNIFIED IDEOGRAPH - ,0xF1E6 ,0x96CB //CJK UNIFIED IDEOGRAPH - ,0xF1E7 ,0x99FF //CJK UNIFIED IDEOGRAPH - ,0xF1E8 ,0x8301 //CJK UNIFIED IDEOGRAPH - ,0xF1E9 ,0x4E2D //CJK UNIFIED IDEOGRAPH - ,0xF1EA ,0x4EF2 //CJK UNIFIED IDEOGRAPH - ,0xF1EB ,0x8846 //CJK UNIFIED IDEOGRAPH - ,0xF1EC ,0x91CD //CJK UNIFIED IDEOGRAPH - ,0xF1ED ,0x537D //CJK UNIFIED IDEOGRAPH - ,0xF1EE ,0x6ADB //CJK UNIFIED IDEOGRAPH - ,0xF1EF ,0x696B //CJK UNIFIED IDEOGRAPH - ,0xF1F0 ,0x6C41 //CJK UNIFIED IDEOGRAPH - ,0xF1F1 ,0x847A //CJK UNIFIED IDEOGRAPH - ,0xF1F2 ,0x589E //CJK UNIFIED IDEOGRAPH - ,0xF1F3 ,0x618E //CJK UNIFIED IDEOGRAPH - ,0xF1F4 ,0x66FE //CJK UNIFIED IDEOGRAPH - ,0xF1F5 ,0x62EF //CJK UNIFIED IDEOGRAPH - ,0xF1F6 ,0x70DD //CJK UNIFIED IDEOGRAPH - ,0xF1F7 ,0x7511 //CJK UNIFIED IDEOGRAPH - ,0xF1F8 ,0x75C7 //CJK UNIFIED IDEOGRAPH - ,0xF1F9 ,0x7E52 //CJK UNIFIED IDEOGRAPH - ,0xF1FA ,0x84B8 //CJK UNIFIED IDEOGRAPH - ,0xF1FB ,0x8B49 //CJK UNIFIED IDEOGRAPH - ,0xF1FC ,0x8D08 //CJK UNIFIED IDEOGRAPH - ,0xF1FD ,0x4E4B //CJK UNIFIED IDEOGRAPH - ,0xF1FE ,0x53EA //CJK UNIFIED IDEOGRAPH - ,0xF2A1 ,0x54AB //CJK UNIFIED IDEOGRAPH - ,0xF2A2 ,0x5730 //CJK UNIFIED IDEOGRAPH - ,0xF2A3 ,0x5740 //CJK UNIFIED IDEOGRAPH - ,0xF2A4 ,0x5FD7 //CJK UNIFIED IDEOGRAPH - ,0xF2A5 ,0x6301 //CJK UNIFIED IDEOGRAPH - ,0xF2A6 ,0x6307 //CJK UNIFIED IDEOGRAPH - ,0xF2A7 ,0x646F //CJK UNIFIED IDEOGRAPH - ,0xF2A8 ,0x652F //CJK UNIFIED IDEOGRAPH - ,0xF2A9 ,0x65E8 //CJK UNIFIED IDEOGRAPH - ,0xF2AA ,0x667A //CJK UNIFIED IDEOGRAPH - ,0xF2AB ,0x679D //CJK UNIFIED IDEOGRAPH - ,0xF2AC ,0x67B3 //CJK UNIFIED IDEOGRAPH - ,0xF2AD ,0x6B62 //CJK UNIFIED IDEOGRAPH - ,0xF2AE ,0x6C60 //CJK UNIFIED IDEOGRAPH - ,0xF2AF ,0x6C9A //CJK UNIFIED IDEOGRAPH - ,0xF2B0 ,0x6F2C //CJK UNIFIED IDEOGRAPH - ,0xF2B1 ,0x77E5 //CJK UNIFIED IDEOGRAPH - ,0xF2B2 ,0x7825 //CJK UNIFIED IDEOGRAPH - ,0xF2B3 ,0x7949 //CJK UNIFIED IDEOGRAPH - ,0xF2B4 ,0x7957 //CJK UNIFIED IDEOGRAPH - ,0xF2B5 ,0x7D19 //CJK UNIFIED IDEOGRAPH - ,0xF2B6 ,0x80A2 //CJK UNIFIED IDEOGRAPH - ,0xF2B7 ,0x8102 //CJK UNIFIED IDEOGRAPH - ,0xF2B8 ,0x81F3 //CJK UNIFIED IDEOGRAPH - ,0xF2B9 ,0x829D //CJK UNIFIED IDEOGRAPH - ,0xF2BA ,0x82B7 //CJK UNIFIED IDEOGRAPH - ,0xF2BB ,0x8718 //CJK UNIFIED IDEOGRAPH - ,0xF2BC ,0x8A8C //CJK UNIFIED IDEOGRAPH - ,0xF2BD ,0xF9FC //CJK COMPATIBILITY IDEOGRAPH - ,0xF2BE ,0x8D04 //CJK UNIFIED IDEOGRAPH - ,0xF2BF ,0x8DBE //CJK UNIFIED IDEOGRAPH - ,0xF2C0 ,0x9072 //CJK UNIFIED IDEOGRAPH - ,0xF2C1 ,0x76F4 //CJK UNIFIED IDEOGRAPH - ,0xF2C2 ,0x7A19 //CJK UNIFIED IDEOGRAPH - ,0xF2C3 ,0x7A37 //CJK UNIFIED IDEOGRAPH - ,0xF2C4 ,0x7E54 //CJK UNIFIED IDEOGRAPH - ,0xF2C5 ,0x8077 //CJK UNIFIED IDEOGRAPH - ,0xF2C6 ,0x5507 //CJK UNIFIED IDEOGRAPH - ,0xF2C7 ,0x55D4 //CJK UNIFIED IDEOGRAPH - ,0xF2C8 ,0x5875 //CJK UNIFIED IDEOGRAPH - ,0xF2C9 ,0x632F //CJK UNIFIED IDEOGRAPH - ,0xF2CA ,0x6422 //CJK UNIFIED IDEOGRAPH - ,0xF2CB ,0x6649 //CJK UNIFIED IDEOGRAPH - ,0xF2CC ,0x664B //CJK UNIFIED IDEOGRAPH - ,0xF2CD ,0x686D //CJK UNIFIED IDEOGRAPH - ,0xF2CE ,0x699B //CJK UNIFIED IDEOGRAPH - ,0xF2CF ,0x6B84 //CJK UNIFIED IDEOGRAPH - ,0xF2D0 ,0x6D25 //CJK UNIFIED IDEOGRAPH - ,0xF2D1 ,0x6EB1 //CJK UNIFIED IDEOGRAPH - ,0xF2D2 ,0x73CD //CJK UNIFIED IDEOGRAPH - ,0xF2D3 ,0x7468 //CJK UNIFIED IDEOGRAPH - ,0xF2D4 ,0x74A1 //CJK UNIFIED IDEOGRAPH - ,0xF2D5 ,0x755B //CJK UNIFIED IDEOGRAPH - ,0xF2D6 ,0x75B9 //CJK UNIFIED IDEOGRAPH - ,0xF2D7 ,0x76E1 //CJK UNIFIED IDEOGRAPH - ,0xF2D8 ,0x771E //CJK UNIFIED IDEOGRAPH - ,0xF2D9 ,0x778B //CJK UNIFIED IDEOGRAPH - ,0xF2DA ,0x79E6 //CJK UNIFIED IDEOGRAPH - ,0xF2DB ,0x7E09 //CJK UNIFIED IDEOGRAPH - ,0xF2DC ,0x7E1D //CJK UNIFIED IDEOGRAPH - ,0xF2DD ,0x81FB //CJK UNIFIED IDEOGRAPH - ,0xF2DE ,0x852F //CJK UNIFIED IDEOGRAPH - ,0xF2DF ,0x8897 //CJK UNIFIED IDEOGRAPH - ,0xF2E0 ,0x8A3A //CJK UNIFIED IDEOGRAPH - ,0xF2E1 ,0x8CD1 //CJK UNIFIED IDEOGRAPH - ,0xF2E2 ,0x8EEB //CJK UNIFIED IDEOGRAPH - ,0xF2E3 ,0x8FB0 //CJK UNIFIED IDEOGRAPH - ,0xF2E4 ,0x9032 //CJK UNIFIED IDEOGRAPH - ,0xF2E5 ,0x93AD //CJK UNIFIED IDEOGRAPH - ,0xF2E6 ,0x9663 //CJK UNIFIED IDEOGRAPH - ,0xF2E7 ,0x9673 //CJK UNIFIED IDEOGRAPH - ,0xF2E8 ,0x9707 //CJK UNIFIED IDEOGRAPH - ,0xF2E9 ,0x4F84 //CJK UNIFIED IDEOGRAPH - ,0xF2EA ,0x53F1 //CJK UNIFIED IDEOGRAPH - ,0xF2EB ,0x59EA //CJK UNIFIED IDEOGRAPH - ,0xF2EC ,0x5AC9 //CJK UNIFIED IDEOGRAPH - ,0xF2ED ,0x5E19 //CJK UNIFIED IDEOGRAPH - ,0xF2EE ,0x684E //CJK UNIFIED IDEOGRAPH - ,0xF2EF ,0x74C6 //CJK UNIFIED IDEOGRAPH - ,0xF2F0 ,0x75BE //CJK UNIFIED IDEOGRAPH - ,0xF2F1 ,0x79E9 //CJK UNIFIED IDEOGRAPH - ,0xF2F2 ,0x7A92 //CJK UNIFIED IDEOGRAPH - ,0xF2F3 ,0x81A3 //CJK UNIFIED IDEOGRAPH - ,0xF2F4 ,0x86ED //CJK UNIFIED IDEOGRAPH - ,0xF2F5 ,0x8CEA //CJK UNIFIED IDEOGRAPH - ,0xF2F6 ,0x8DCC //CJK UNIFIED IDEOGRAPH - ,0xF2F7 ,0x8FED //CJK UNIFIED IDEOGRAPH - ,0xF2F8 ,0x659F //CJK UNIFIED IDEOGRAPH - ,0xF2F9 ,0x6715 //CJK UNIFIED IDEOGRAPH - ,0xF2FA ,0xF9FD //CJK COMPATIBILITY IDEOGRAPH - ,0xF2FB ,0x57F7 //CJK UNIFIED IDEOGRAPH - ,0xF2FC ,0x6F57 //CJK UNIFIED IDEOGRAPH - ,0xF2FD ,0x7DDD //CJK UNIFIED IDEOGRAPH - ,0xF2FE ,0x8F2F //CJK UNIFIED IDEOGRAPH - ,0xF3A1 ,0x93F6 //CJK UNIFIED IDEOGRAPH - ,0xF3A2 ,0x96C6 //CJK UNIFIED IDEOGRAPH - ,0xF3A3 ,0x5FB5 //CJK UNIFIED IDEOGRAPH - ,0xF3A4 ,0x61F2 //CJK UNIFIED IDEOGRAPH - ,0xF3A5 ,0x6F84 //CJK UNIFIED IDEOGRAPH - ,0xF3A6 ,0x4E14 //CJK UNIFIED IDEOGRAPH - ,0xF3A7 ,0x4F98 //CJK UNIFIED IDEOGRAPH - ,0xF3A8 ,0x501F //CJK UNIFIED IDEOGRAPH - ,0xF3A9 ,0x53C9 //CJK UNIFIED IDEOGRAPH - ,0xF3AA ,0x55DF //CJK UNIFIED IDEOGRAPH - ,0xF3AB ,0x5D6F //CJK UNIFIED IDEOGRAPH - ,0xF3AC ,0x5DEE //CJK UNIFIED IDEOGRAPH - ,0xF3AD ,0x6B21 //CJK UNIFIED IDEOGRAPH - ,0xF3AE ,0x6B64 //CJK UNIFIED IDEOGRAPH - ,0xF3AF ,0x78CB //CJK UNIFIED IDEOGRAPH - ,0xF3B0 ,0x7B9A //CJK UNIFIED IDEOGRAPH - ,0xF3B1 ,0xF9FE //CJK COMPATIBILITY IDEOGRAPH - ,0xF3B2 ,0x8E49 //CJK UNIFIED IDEOGRAPH - ,0xF3B3 ,0x8ECA //CJK UNIFIED IDEOGRAPH - ,0xF3B4 ,0x906E //CJK UNIFIED IDEOGRAPH - ,0xF3B5 ,0x6349 //CJK UNIFIED IDEOGRAPH - ,0xF3B6 ,0x643E //CJK UNIFIED IDEOGRAPH - ,0xF3B7 ,0x7740 //CJK UNIFIED IDEOGRAPH - ,0xF3B8 ,0x7A84 //CJK UNIFIED IDEOGRAPH - ,0xF3B9 ,0x932F //CJK UNIFIED IDEOGRAPH - ,0xF3BA ,0x947F //CJK UNIFIED IDEOGRAPH - ,0xF3BB ,0x9F6A //CJK UNIFIED IDEOGRAPH - ,0xF3BC ,0x64B0 //CJK UNIFIED IDEOGRAPH - ,0xF3BD ,0x6FAF //CJK UNIFIED IDEOGRAPH - ,0xF3BE ,0x71E6 //CJK UNIFIED IDEOGRAPH - ,0xF3BF ,0x74A8 //CJK UNIFIED IDEOGRAPH - ,0xF3C0 ,0x74DA //CJK UNIFIED IDEOGRAPH - ,0xF3C1 ,0x7AC4 //CJK UNIFIED IDEOGRAPH - ,0xF3C2 ,0x7C12 //CJK UNIFIED IDEOGRAPH - ,0xF3C3 ,0x7E82 //CJK UNIFIED IDEOGRAPH - ,0xF3C4 ,0x7CB2 //CJK UNIFIED IDEOGRAPH - ,0xF3C5 ,0x7E98 //CJK UNIFIED IDEOGRAPH - ,0xF3C6 ,0x8B9A //CJK UNIFIED IDEOGRAPH - ,0xF3C7 ,0x8D0A //CJK UNIFIED IDEOGRAPH - ,0xF3C8 ,0x947D //CJK UNIFIED IDEOGRAPH - ,0xF3C9 ,0x9910 //CJK UNIFIED IDEOGRAPH - ,0xF3CA ,0x994C //CJK UNIFIED IDEOGRAPH - ,0xF3CB ,0x5239 //CJK UNIFIED IDEOGRAPH - ,0xF3CC ,0x5BDF //CJK UNIFIED IDEOGRAPH - ,0xF3CD ,0x64E6 //CJK UNIFIED IDEOGRAPH - ,0xF3CE ,0x672D //CJK UNIFIED IDEOGRAPH - ,0xF3CF ,0x7D2E //CJK UNIFIED IDEOGRAPH - ,0xF3D0 ,0x50ED //CJK UNIFIED IDEOGRAPH - ,0xF3D1 ,0x53C3 //CJK UNIFIED IDEOGRAPH - ,0xF3D2 ,0x5879 //CJK UNIFIED IDEOGRAPH - ,0xF3D3 ,0x6158 //CJK UNIFIED IDEOGRAPH - ,0xF3D4 ,0x6159 //CJK UNIFIED IDEOGRAPH - ,0xF3D5 ,0x61FA //CJK UNIFIED IDEOGRAPH - ,0xF3D6 ,0x65AC //CJK UNIFIED IDEOGRAPH - ,0xF3D7 ,0x7AD9 //CJK UNIFIED IDEOGRAPH - ,0xF3D8 ,0x8B92 //CJK UNIFIED IDEOGRAPH - ,0xF3D9 ,0x8B96 //CJK UNIFIED IDEOGRAPH - ,0xF3DA ,0x5009 //CJK UNIFIED IDEOGRAPH - ,0xF3DB ,0x5021 //CJK UNIFIED IDEOGRAPH - ,0xF3DC ,0x5275 //CJK UNIFIED IDEOGRAPH - ,0xF3DD ,0x5531 //CJK UNIFIED IDEOGRAPH - ,0xF3DE ,0x5A3C //CJK UNIFIED IDEOGRAPH - ,0xF3DF ,0x5EE0 //CJK UNIFIED IDEOGRAPH - ,0xF3E0 ,0x5F70 //CJK UNIFIED IDEOGRAPH - ,0xF3E1 ,0x6134 //CJK UNIFIED IDEOGRAPH - ,0xF3E2 ,0x655E //CJK UNIFIED IDEOGRAPH - ,0xF3E3 ,0x660C //CJK UNIFIED IDEOGRAPH - ,0xF3E4 ,0x6636 //CJK UNIFIED IDEOGRAPH - ,0xF3E5 ,0x66A2 //CJK UNIFIED IDEOGRAPH - ,0xF3E6 ,0x69CD //CJK UNIFIED IDEOGRAPH - ,0xF3E7 ,0x6EC4 //CJK UNIFIED IDEOGRAPH - ,0xF3E8 ,0x6F32 //CJK UNIFIED IDEOGRAPH - ,0xF3E9 ,0x7316 //CJK UNIFIED IDEOGRAPH - ,0xF3EA ,0x7621 //CJK UNIFIED IDEOGRAPH - ,0xF3EB ,0x7A93 //CJK UNIFIED IDEOGRAPH - ,0xF3EC ,0x8139 //CJK UNIFIED IDEOGRAPH - ,0xF3ED ,0x8259 //CJK UNIFIED IDEOGRAPH - ,0xF3EE ,0x83D6 //CJK UNIFIED IDEOGRAPH - ,0xF3EF ,0x84BC //CJK UNIFIED IDEOGRAPH - ,0xF3F0 ,0x50B5 //CJK UNIFIED IDEOGRAPH - ,0xF3F1 ,0x57F0 //CJK UNIFIED IDEOGRAPH - ,0xF3F2 ,0x5BC0 //CJK UNIFIED IDEOGRAPH - ,0xF3F3 ,0x5BE8 //CJK UNIFIED IDEOGRAPH - ,0xF3F4 ,0x5F69 //CJK UNIFIED IDEOGRAPH - ,0xF3F5 ,0x63A1 //CJK UNIFIED IDEOGRAPH - ,0xF3F6 ,0x7826 //CJK UNIFIED IDEOGRAPH - ,0xF3F7 ,0x7DB5 //CJK UNIFIED IDEOGRAPH - ,0xF3F8 ,0x83DC //CJK UNIFIED IDEOGRAPH - ,0xF3F9 ,0x8521 //CJK UNIFIED IDEOGRAPH - ,0xF3FA ,0x91C7 //CJK UNIFIED IDEOGRAPH - ,0xF3FB ,0x91F5 //CJK UNIFIED IDEOGRAPH - ,0xF3FC ,0x518A //CJK UNIFIED IDEOGRAPH - ,0xF3FD ,0x67F5 //CJK UNIFIED IDEOGRAPH - ,0xF3FE ,0x7B56 //CJK UNIFIED IDEOGRAPH - ,0xF4A1 ,0x8CAC //CJK UNIFIED IDEOGRAPH - ,0xF4A2 ,0x51C4 //CJK UNIFIED IDEOGRAPH - ,0xF4A3 ,0x59BB //CJK UNIFIED IDEOGRAPH - ,0xF4A4 ,0x60BD //CJK UNIFIED IDEOGRAPH - ,0xF4A5 ,0x8655 //CJK UNIFIED IDEOGRAPH - ,0xF4A6 ,0x501C //CJK UNIFIED IDEOGRAPH - ,0xF4A7 ,0xF9FF //CJK COMPATIBILITY IDEOGRAPH - ,0xF4A8 ,0x5254 //CJK UNIFIED IDEOGRAPH - ,0xF4A9 ,0x5C3A //CJK UNIFIED IDEOGRAPH - ,0xF4AA ,0x617D //CJK UNIFIED IDEOGRAPH - ,0xF4AB ,0x621A //CJK UNIFIED IDEOGRAPH - ,0xF4AC ,0x62D3 //CJK UNIFIED IDEOGRAPH - ,0xF4AD ,0x64F2 //CJK UNIFIED IDEOGRAPH - ,0xF4AE ,0x65A5 //CJK UNIFIED IDEOGRAPH - ,0xF4AF ,0x6ECC //CJK UNIFIED IDEOGRAPH - ,0xF4B0 ,0x7620 //CJK UNIFIED IDEOGRAPH - ,0xF4B1 ,0x810A //CJK UNIFIED IDEOGRAPH - ,0xF4B2 ,0x8E60 //CJK UNIFIED IDEOGRAPH - ,0xF4B3 ,0x965F //CJK UNIFIED IDEOGRAPH - ,0xF4B4 ,0x96BB //CJK UNIFIED IDEOGRAPH - ,0xF4B5 ,0x4EDF //CJK UNIFIED IDEOGRAPH - ,0xF4B6 ,0x5343 //CJK UNIFIED IDEOGRAPH - ,0xF4B7 ,0x5598 //CJK UNIFIED IDEOGRAPH - ,0xF4B8 ,0x5929 //CJK UNIFIED IDEOGRAPH - ,0xF4B9 ,0x5DDD //CJK UNIFIED IDEOGRAPH - ,0xF4BA ,0x64C5 //CJK UNIFIED IDEOGRAPH - ,0xF4BB ,0x6CC9 //CJK UNIFIED IDEOGRAPH - ,0xF4BC ,0x6DFA //CJK UNIFIED IDEOGRAPH - ,0xF4BD ,0x7394 //CJK UNIFIED IDEOGRAPH - ,0xF4BE ,0x7A7F //CJK UNIFIED IDEOGRAPH - ,0xF4BF ,0x821B //CJK UNIFIED IDEOGRAPH - ,0xF4C0 ,0x85A6 //CJK UNIFIED IDEOGRAPH - ,0xF4C1 ,0x8CE4 //CJK UNIFIED IDEOGRAPH - ,0xF4C2 ,0x8E10 //CJK UNIFIED IDEOGRAPH - ,0xF4C3 ,0x9077 //CJK UNIFIED IDEOGRAPH - ,0xF4C4 ,0x91E7 //CJK UNIFIED IDEOGRAPH - ,0xF4C5 ,0x95E1 //CJK UNIFIED IDEOGRAPH - ,0xF4C6 ,0x9621 //CJK UNIFIED IDEOGRAPH - ,0xF4C7 ,0x97C6 //CJK UNIFIED IDEOGRAPH - ,0xF4C8 ,0x51F8 //CJK UNIFIED IDEOGRAPH - ,0xF4C9 ,0x54F2 //CJK UNIFIED IDEOGRAPH - ,0xF4CA ,0x5586 //CJK UNIFIED IDEOGRAPH - ,0xF4CB ,0x5FB9 //CJK UNIFIED IDEOGRAPH - ,0xF4CC ,0x64A4 //CJK UNIFIED IDEOGRAPH - ,0xF4CD ,0x6F88 //CJK UNIFIED IDEOGRAPH - ,0xF4CE ,0x7DB4 //CJK UNIFIED IDEOGRAPH - ,0xF4CF ,0x8F1F //CJK UNIFIED IDEOGRAPH - ,0xF4D0 ,0x8F4D //CJK UNIFIED IDEOGRAPH - ,0xF4D1 ,0x9435 //CJK UNIFIED IDEOGRAPH - ,0xF4D2 ,0x50C9 //CJK UNIFIED IDEOGRAPH - ,0xF4D3 ,0x5C16 //CJK UNIFIED IDEOGRAPH - ,0xF4D4 ,0x6CBE //CJK UNIFIED IDEOGRAPH - ,0xF4D5 ,0x6DFB //CJK UNIFIED IDEOGRAPH - ,0xF4D6 ,0x751B //CJK UNIFIED IDEOGRAPH - ,0xF4D7 ,0x77BB //CJK UNIFIED IDEOGRAPH - ,0xF4D8 ,0x7C3D //CJK UNIFIED IDEOGRAPH - ,0xF4D9 ,0x7C64 //CJK UNIFIED IDEOGRAPH - ,0xF4DA ,0x8A79 //CJK UNIFIED IDEOGRAPH - ,0xF4DB ,0x8AC2 //CJK UNIFIED IDEOGRAPH - ,0xF4DC ,0x581E //CJK UNIFIED IDEOGRAPH - ,0xF4DD ,0x59BE //CJK UNIFIED IDEOGRAPH - ,0xF4DE ,0x5E16 //CJK UNIFIED IDEOGRAPH - ,0xF4DF ,0x6377 //CJK UNIFIED IDEOGRAPH - ,0xF4E0 ,0x7252 //CJK UNIFIED IDEOGRAPH - ,0xF4E1 ,0x758A //CJK UNIFIED IDEOGRAPH - ,0xF4E2 ,0x776B //CJK UNIFIED IDEOGRAPH - ,0xF4E3 ,0x8ADC //CJK UNIFIED IDEOGRAPH - ,0xF4E4 ,0x8CBC //CJK UNIFIED IDEOGRAPH - ,0xF4E5 ,0x8F12 //CJK UNIFIED IDEOGRAPH - ,0xF4E6 ,0x5EF3 //CJK UNIFIED IDEOGRAPH - ,0xF4E7 ,0x6674 //CJK UNIFIED IDEOGRAPH - ,0xF4E8 ,0x6DF8 //CJK UNIFIED IDEOGRAPH - ,0xF4E9 ,0x807D //CJK UNIFIED IDEOGRAPH - ,0xF4EA ,0x83C1 //CJK UNIFIED IDEOGRAPH - ,0xF4EB ,0x8ACB //CJK UNIFIED IDEOGRAPH - ,0xF4EC ,0x9751 //CJK UNIFIED IDEOGRAPH - ,0xF4ED ,0x9BD6 //CJK UNIFIED IDEOGRAPH - ,0xF4EE ,0xFA00 //CJK COMPATIBILITY IDEOGRAPH - ,0xF4EF ,0x5243 //CJK UNIFIED IDEOGRAPH - ,0xF4F0 ,0x66FF //CJK UNIFIED IDEOGRAPH - ,0xF4F1 ,0x6D95 //CJK UNIFIED IDEOGRAPH - ,0xF4F2 ,0x6EEF //CJK UNIFIED IDEOGRAPH - ,0xF4F3 ,0x7DE0 //CJK UNIFIED IDEOGRAPH - ,0xF4F4 ,0x8AE6 //CJK UNIFIED IDEOGRAPH - ,0xF4F5 ,0x902E //CJK UNIFIED IDEOGRAPH - ,0xF4F6 ,0x905E //CJK UNIFIED IDEOGRAPH - ,0xF4F7 ,0x9AD4 //CJK UNIFIED IDEOGRAPH - ,0xF4F8 ,0x521D //CJK UNIFIED IDEOGRAPH - ,0xF4F9 ,0x527F //CJK UNIFIED IDEOGRAPH - ,0xF4FA ,0x54E8 //CJK UNIFIED IDEOGRAPH - ,0xF4FB ,0x6194 //CJK UNIFIED IDEOGRAPH - ,0xF4FC ,0x6284 //CJK UNIFIED IDEOGRAPH - ,0xF4FD ,0x62DB //CJK UNIFIED IDEOGRAPH - ,0xF4FE ,0x68A2 //CJK UNIFIED IDEOGRAPH - ,0xF5A1 ,0x6912 //CJK UNIFIED IDEOGRAPH - ,0xF5A2 ,0x695A //CJK UNIFIED IDEOGRAPH - ,0xF5A3 ,0x6A35 //CJK UNIFIED IDEOGRAPH - ,0xF5A4 ,0x7092 //CJK UNIFIED IDEOGRAPH - ,0xF5A5 ,0x7126 //CJK UNIFIED IDEOGRAPH - ,0xF5A6 ,0x785D //CJK UNIFIED IDEOGRAPH - ,0xF5A7 ,0x7901 //CJK UNIFIED IDEOGRAPH - ,0xF5A8 ,0x790E //CJK UNIFIED IDEOGRAPH - ,0xF5A9 ,0x79D2 //CJK UNIFIED IDEOGRAPH - ,0xF5AA ,0x7A0D //CJK UNIFIED IDEOGRAPH - ,0xF5AB ,0x8096 //CJK UNIFIED IDEOGRAPH - ,0xF5AC ,0x8278 //CJK UNIFIED IDEOGRAPH - ,0xF5AD ,0x82D5 //CJK UNIFIED IDEOGRAPH - ,0xF5AE ,0x8349 //CJK UNIFIED IDEOGRAPH - ,0xF5AF ,0x8549 //CJK UNIFIED IDEOGRAPH - ,0xF5B0 ,0x8C82 //CJK UNIFIED IDEOGRAPH - ,0xF5B1 ,0x8D85 //CJK UNIFIED IDEOGRAPH - ,0xF5B2 ,0x9162 //CJK UNIFIED IDEOGRAPH - ,0xF5B3 ,0x918B //CJK UNIFIED IDEOGRAPH - ,0xF5B4 ,0x91AE //CJK UNIFIED IDEOGRAPH - ,0xF5B5 ,0x4FC3 //CJK UNIFIED IDEOGRAPH - ,0xF5B6 ,0x56D1 //CJK UNIFIED IDEOGRAPH - ,0xF5B7 ,0x71ED //CJK UNIFIED IDEOGRAPH - ,0xF5B8 ,0x77D7 //CJK UNIFIED IDEOGRAPH - ,0xF5B9 ,0x8700 //CJK UNIFIED IDEOGRAPH - ,0xF5BA ,0x89F8 //CJK UNIFIED IDEOGRAPH - ,0xF5BB ,0x5BF8 //CJK UNIFIED IDEOGRAPH - ,0xF5BC ,0x5FD6 //CJK UNIFIED IDEOGRAPH - ,0xF5BD ,0x6751 //CJK UNIFIED IDEOGRAPH - ,0xF5BE ,0x90A8 //CJK UNIFIED IDEOGRAPH - ,0xF5BF ,0x53E2 //CJK UNIFIED IDEOGRAPH - ,0xF5C0 ,0x585A //CJK UNIFIED IDEOGRAPH - ,0xF5C1 ,0x5BF5 //CJK UNIFIED IDEOGRAPH - ,0xF5C2 ,0x60A4 //CJK UNIFIED IDEOGRAPH - ,0xF5C3 ,0x6181 //CJK UNIFIED IDEOGRAPH - ,0xF5C4 ,0x6460 //CJK UNIFIED IDEOGRAPH - ,0xF5C5 ,0x7E3D //CJK UNIFIED IDEOGRAPH - ,0xF5C6 ,0x8070 //CJK UNIFIED IDEOGRAPH - ,0xF5C7 ,0x8525 //CJK UNIFIED IDEOGRAPH - ,0xF5C8 ,0x9283 //CJK UNIFIED IDEOGRAPH - ,0xF5C9 ,0x64AE //CJK UNIFIED IDEOGRAPH - ,0xF5CA ,0x50AC //CJK UNIFIED IDEOGRAPH - ,0xF5CB ,0x5D14 //CJK UNIFIED IDEOGRAPH - ,0xF5CC ,0x6700 //CJK UNIFIED IDEOGRAPH - ,0xF5CD ,0x589C //CJK UNIFIED IDEOGRAPH - ,0xF5CE ,0x62BD //CJK UNIFIED IDEOGRAPH - ,0xF5CF ,0x63A8 //CJK UNIFIED IDEOGRAPH - ,0xF5D0 ,0x690E //CJK UNIFIED IDEOGRAPH - ,0xF5D1 ,0x6978 //CJK UNIFIED IDEOGRAPH - ,0xF5D2 ,0x6A1E //CJK UNIFIED IDEOGRAPH - ,0xF5D3 ,0x6E6B //CJK UNIFIED IDEOGRAPH - ,0xF5D4 ,0x76BA //CJK UNIFIED IDEOGRAPH - ,0xF5D5 ,0x79CB //CJK UNIFIED IDEOGRAPH - ,0xF5D6 ,0x82BB //CJK UNIFIED IDEOGRAPH - ,0xF5D7 ,0x8429 //CJK UNIFIED IDEOGRAPH - ,0xF5D8 ,0x8ACF //CJK UNIFIED IDEOGRAPH - ,0xF5D9 ,0x8DA8 //CJK UNIFIED IDEOGRAPH - ,0xF5DA ,0x8FFD //CJK UNIFIED IDEOGRAPH - ,0xF5DB ,0x9112 //CJK UNIFIED IDEOGRAPH - ,0xF5DC ,0x914B //CJK UNIFIED IDEOGRAPH - ,0xF5DD ,0x919C //CJK UNIFIED IDEOGRAPH - ,0xF5DE ,0x9310 //CJK UNIFIED IDEOGRAPH - ,0xF5DF ,0x9318 //CJK UNIFIED IDEOGRAPH - ,0xF5E0 ,0x939A //CJK UNIFIED IDEOGRAPH - ,0xF5E1 ,0x96DB //CJK UNIFIED IDEOGRAPH - ,0xF5E2 ,0x9A36 //CJK UNIFIED IDEOGRAPH - ,0xF5E3 ,0x9C0D //CJK UNIFIED IDEOGRAPH - ,0xF5E4 ,0x4E11 //CJK UNIFIED IDEOGRAPH - ,0xF5E5 ,0x755C //CJK UNIFIED IDEOGRAPH - ,0xF5E6 ,0x795D //CJK UNIFIED IDEOGRAPH - ,0xF5E7 ,0x7AFA //CJK UNIFIED IDEOGRAPH - ,0xF5E8 ,0x7B51 //CJK UNIFIED IDEOGRAPH - ,0xF5E9 ,0x7BC9 //CJK UNIFIED IDEOGRAPH - ,0xF5EA ,0x7E2E //CJK UNIFIED IDEOGRAPH - ,0xF5EB ,0x84C4 //CJK UNIFIED IDEOGRAPH - ,0xF5EC ,0x8E59 //CJK UNIFIED IDEOGRAPH - ,0xF5ED ,0x8E74 //CJK UNIFIED IDEOGRAPH - ,0xF5EE ,0x8EF8 //CJK UNIFIED IDEOGRAPH - ,0xF5EF ,0x9010 //CJK UNIFIED IDEOGRAPH - ,0xF5F0 ,0x6625 //CJK UNIFIED IDEOGRAPH - ,0xF5F1 ,0x693F //CJK UNIFIED IDEOGRAPH - ,0xF5F2 ,0x7443 //CJK UNIFIED IDEOGRAPH - ,0xF5F3 ,0x51FA //CJK UNIFIED IDEOGRAPH - ,0xF5F4 ,0x672E //CJK UNIFIED IDEOGRAPH - ,0xF5F5 ,0x9EDC //CJK UNIFIED IDEOGRAPH - ,0xF5F6 ,0x5145 //CJK UNIFIED IDEOGRAPH - ,0xF5F7 ,0x5FE0 //CJK UNIFIED IDEOGRAPH - ,0xF5F8 ,0x6C96 //CJK UNIFIED IDEOGRAPH - ,0xF5F9 ,0x87F2 //CJK UNIFIED IDEOGRAPH - ,0xF5FA ,0x885D //CJK UNIFIED IDEOGRAPH - ,0xF5FB ,0x8877 //CJK UNIFIED IDEOGRAPH - ,0xF5FC ,0x60B4 //CJK UNIFIED IDEOGRAPH - ,0xF5FD ,0x81B5 //CJK UNIFIED IDEOGRAPH - ,0xF5FE ,0x8403 //CJK UNIFIED IDEOGRAPH - ,0xF6A1 ,0x8D05 //CJK UNIFIED IDEOGRAPH - ,0xF6A2 ,0x53D6 //CJK UNIFIED IDEOGRAPH - ,0xF6A3 ,0x5439 //CJK UNIFIED IDEOGRAPH - ,0xF6A4 ,0x5634 //CJK UNIFIED IDEOGRAPH - ,0xF6A5 ,0x5A36 //CJK UNIFIED IDEOGRAPH - ,0xF6A6 ,0x5C31 //CJK UNIFIED IDEOGRAPH - ,0xF6A7 ,0x708A //CJK UNIFIED IDEOGRAPH - ,0xF6A8 ,0x7FE0 //CJK UNIFIED IDEOGRAPH - ,0xF6A9 ,0x805A //CJK UNIFIED IDEOGRAPH - ,0xF6AA ,0x8106 //CJK UNIFIED IDEOGRAPH - ,0xF6AB ,0x81ED //CJK UNIFIED IDEOGRAPH - ,0xF6AC ,0x8DA3 //CJK UNIFIED IDEOGRAPH - ,0xF6AD ,0x9189 //CJK UNIFIED IDEOGRAPH - ,0xF6AE ,0x9A5F //CJK UNIFIED IDEOGRAPH - ,0xF6AF ,0x9DF2 //CJK UNIFIED IDEOGRAPH - ,0xF6B0 ,0x5074 //CJK UNIFIED IDEOGRAPH - ,0xF6B1 ,0x4EC4 //CJK UNIFIED IDEOGRAPH - ,0xF6B2 ,0x53A0 //CJK UNIFIED IDEOGRAPH - ,0xF6B3 ,0x60FB //CJK UNIFIED IDEOGRAPH - ,0xF6B4 ,0x6E2C //CJK UNIFIED IDEOGRAPH - ,0xF6B5 ,0x5C64 //CJK UNIFIED IDEOGRAPH - ,0xF6B6 ,0x4F88 //CJK UNIFIED IDEOGRAPH - ,0xF6B7 ,0x5024 //CJK UNIFIED IDEOGRAPH - ,0xF6B8 ,0x55E4 //CJK UNIFIED IDEOGRAPH - ,0xF6B9 ,0x5CD9 //CJK UNIFIED IDEOGRAPH - ,0xF6BA ,0x5E5F //CJK UNIFIED IDEOGRAPH - ,0xF6BB ,0x6065 //CJK UNIFIED IDEOGRAPH - ,0xF6BC ,0x6894 //CJK UNIFIED IDEOGRAPH - ,0xF6BD ,0x6CBB //CJK UNIFIED IDEOGRAPH - ,0xF6BE ,0x6DC4 //CJK UNIFIED IDEOGRAPH - ,0xF6BF ,0x71BE //CJK UNIFIED IDEOGRAPH - ,0xF6C0 ,0x75D4 //CJK UNIFIED IDEOGRAPH - ,0xF6C1 ,0x75F4 //CJK UNIFIED IDEOGRAPH - ,0xF6C2 ,0x7661 //CJK UNIFIED IDEOGRAPH - ,0xF6C3 ,0x7A1A //CJK UNIFIED IDEOGRAPH - ,0xF6C4 ,0x7A49 //CJK UNIFIED IDEOGRAPH - ,0xF6C5 ,0x7DC7 //CJK UNIFIED IDEOGRAPH - ,0xF6C6 ,0x7DFB //CJK UNIFIED IDEOGRAPH - ,0xF6C7 ,0x7F6E //CJK UNIFIED IDEOGRAPH - ,0xF6C8 ,0x81F4 //CJK UNIFIED IDEOGRAPH - ,0xF6C9 ,0x86A9 //CJK UNIFIED IDEOGRAPH - ,0xF6CA ,0x8F1C //CJK UNIFIED IDEOGRAPH - ,0xF6CB ,0x96C9 //CJK UNIFIED IDEOGRAPH - ,0xF6CC ,0x99B3 //CJK UNIFIED IDEOGRAPH - ,0xF6CD ,0x9F52 //CJK UNIFIED IDEOGRAPH - ,0xF6CE ,0x5247 //CJK UNIFIED IDEOGRAPH - ,0xF6CF ,0x52C5 //CJK UNIFIED IDEOGRAPH - ,0xF6D0 ,0x98ED //CJK UNIFIED IDEOGRAPH - ,0xF6D1 ,0x89AA //CJK UNIFIED IDEOGRAPH - ,0xF6D2 ,0x4E03 //CJK UNIFIED IDEOGRAPH - ,0xF6D3 ,0x67D2 //CJK UNIFIED IDEOGRAPH - ,0xF6D4 ,0x6F06 //CJK UNIFIED IDEOGRAPH - ,0xF6D5 ,0x4FB5 //CJK UNIFIED IDEOGRAPH - ,0xF6D6 ,0x5BE2 //CJK UNIFIED IDEOGRAPH - ,0xF6D7 ,0x6795 //CJK UNIFIED IDEOGRAPH - ,0xF6D8 ,0x6C88 //CJK UNIFIED IDEOGRAPH - ,0xF6D9 ,0x6D78 //CJK UNIFIED IDEOGRAPH - ,0xF6DA ,0x741B //CJK UNIFIED IDEOGRAPH - ,0xF6DB ,0x7827 //CJK UNIFIED IDEOGRAPH - ,0xF6DC ,0x91DD //CJK UNIFIED IDEOGRAPH - ,0xF6DD ,0x937C //CJK UNIFIED IDEOGRAPH - ,0xF6DE ,0x87C4 //CJK UNIFIED IDEOGRAPH - ,0xF6DF ,0x79E4 //CJK UNIFIED IDEOGRAPH - ,0xF6E0 ,0x7A31 //CJK UNIFIED IDEOGRAPH - ,0xF6E1 ,0x5FEB //CJK UNIFIED IDEOGRAPH - ,0xF6E2 ,0x4ED6 //CJK UNIFIED IDEOGRAPH - ,0xF6E3 ,0x54A4 //CJK UNIFIED IDEOGRAPH - ,0xF6E4 ,0x553E //CJK UNIFIED IDEOGRAPH - ,0xF6E5 ,0x58AE //CJK UNIFIED IDEOGRAPH - ,0xF6E6 ,0x59A5 //CJK UNIFIED IDEOGRAPH - ,0xF6E7 ,0x60F0 //CJK UNIFIED IDEOGRAPH - ,0xF6E8 ,0x6253 //CJK UNIFIED IDEOGRAPH - ,0xF6E9 ,0x62D6 //CJK UNIFIED IDEOGRAPH - ,0xF6EA ,0x6736 //CJK UNIFIED IDEOGRAPH - ,0xF6EB ,0x6955 //CJK UNIFIED IDEOGRAPH - ,0xF6EC ,0x8235 //CJK UNIFIED IDEOGRAPH - ,0xF6ED ,0x9640 //CJK UNIFIED IDEOGRAPH - ,0xF6EE ,0x99B1 //CJK UNIFIED IDEOGRAPH - ,0xF6EF ,0x99DD //CJK UNIFIED IDEOGRAPH - ,0xF6F0 ,0x502C //CJK UNIFIED IDEOGRAPH - ,0xF6F1 ,0x5353 //CJK UNIFIED IDEOGRAPH - ,0xF6F2 ,0x5544 //CJK UNIFIED IDEOGRAPH - ,0xF6F3 ,0x577C //CJK UNIFIED IDEOGRAPH - ,0xF6F4 ,0xFA01 //CJK COMPATIBILITY IDEOGRAPH - ,0xF6F5 ,0x6258 //CJK UNIFIED IDEOGRAPH - ,0xF6F6 ,0xFA02 //CJK COMPATIBILITY IDEOGRAPH - ,0xF6F7 ,0x64E2 //CJK UNIFIED IDEOGRAPH - ,0xF6F8 ,0x666B //CJK UNIFIED IDEOGRAPH - ,0xF6F9 ,0x67DD //CJK UNIFIED IDEOGRAPH - ,0xF6FA ,0x6FC1 //CJK UNIFIED IDEOGRAPH - ,0xF6FB ,0x6FEF //CJK UNIFIED IDEOGRAPH - ,0xF6FC ,0x7422 //CJK UNIFIED IDEOGRAPH - ,0xF6FD ,0x7438 //CJK UNIFIED IDEOGRAPH - ,0xF6FE ,0x8A17 //CJK UNIFIED IDEOGRAPH - ,0xF7A1 ,0x9438 //CJK UNIFIED IDEOGRAPH - ,0xF7A2 ,0x5451 //CJK UNIFIED IDEOGRAPH - ,0xF7A3 ,0x5606 //CJK UNIFIED IDEOGRAPH - ,0xF7A4 ,0x5766 //CJK UNIFIED IDEOGRAPH - ,0xF7A5 ,0x5F48 //CJK UNIFIED IDEOGRAPH - ,0xF7A6 ,0x619A //CJK UNIFIED IDEOGRAPH - ,0xF7A7 ,0x6B4E //CJK UNIFIED IDEOGRAPH - ,0xF7A8 ,0x7058 //CJK UNIFIED IDEOGRAPH - ,0xF7A9 ,0x70AD //CJK UNIFIED IDEOGRAPH - ,0xF7AA ,0x7DBB //CJK UNIFIED IDEOGRAPH - ,0xF7AB ,0x8A95 //CJK UNIFIED IDEOGRAPH - ,0xF7AC ,0x596A //CJK UNIFIED IDEOGRAPH - ,0xF7AD ,0x812B //CJK UNIFIED IDEOGRAPH - ,0xF7AE ,0x63A2 //CJK UNIFIED IDEOGRAPH - ,0xF7AF ,0x7708 //CJK UNIFIED IDEOGRAPH - ,0xF7B0 ,0x803D //CJK UNIFIED IDEOGRAPH - ,0xF7B1 ,0x8CAA //CJK UNIFIED IDEOGRAPH - ,0xF7B2 ,0x5854 //CJK UNIFIED IDEOGRAPH - ,0xF7B3 ,0x642D //CJK UNIFIED IDEOGRAPH - ,0xF7B4 ,0x69BB //CJK UNIFIED IDEOGRAPH - ,0xF7B5 ,0x5B95 //CJK UNIFIED IDEOGRAPH - ,0xF7B6 ,0x5E11 //CJK UNIFIED IDEOGRAPH - ,0xF7B7 ,0x6E6F //CJK UNIFIED IDEOGRAPH - ,0xF7B8 ,0xFA03 //CJK COMPATIBILITY IDEOGRAPH - ,0xF7B9 ,0x8569 //CJK UNIFIED IDEOGRAPH - ,0xF7BA ,0x514C //CJK UNIFIED IDEOGRAPH - ,0xF7BB ,0x53F0 //CJK UNIFIED IDEOGRAPH - ,0xF7BC ,0x592A //CJK UNIFIED IDEOGRAPH - ,0xF7BD ,0x6020 //CJK UNIFIED IDEOGRAPH - ,0xF7BE ,0x614B //CJK UNIFIED IDEOGRAPH - ,0xF7BF ,0x6B86 //CJK UNIFIED IDEOGRAPH - ,0xF7C0 ,0x6C70 //CJK UNIFIED IDEOGRAPH - ,0xF7C1 ,0x6CF0 //CJK UNIFIED IDEOGRAPH - ,0xF7C2 ,0x7B1E //CJK UNIFIED IDEOGRAPH - ,0xF7C3 ,0x80CE //CJK UNIFIED IDEOGRAPH - ,0xF7C4 ,0x82D4 //CJK UNIFIED IDEOGRAPH - ,0xF7C5 ,0x8DC6 //CJK UNIFIED IDEOGRAPH - ,0xF7C6 ,0x90B0 //CJK UNIFIED IDEOGRAPH - ,0xF7C7 ,0x98B1 //CJK UNIFIED IDEOGRAPH - ,0xF7C8 ,0xFA04 //CJK COMPATIBILITY IDEOGRAPH - ,0xF7C9 ,0x64C7 //CJK UNIFIED IDEOGRAPH - ,0xF7CA ,0x6FA4 //CJK UNIFIED IDEOGRAPH - ,0xF7CB ,0x6491 //CJK UNIFIED IDEOGRAPH - ,0xF7CC ,0x6504 //CJK UNIFIED IDEOGRAPH - ,0xF7CD ,0x514E //CJK UNIFIED IDEOGRAPH - ,0xF7CE ,0x5410 //CJK UNIFIED IDEOGRAPH - ,0xF7CF ,0x571F //CJK UNIFIED IDEOGRAPH - ,0xF7D0 ,0x8A0E //CJK UNIFIED IDEOGRAPH - ,0xF7D1 ,0x615F //CJK UNIFIED IDEOGRAPH - ,0xF7D2 ,0x6876 //CJK UNIFIED IDEOGRAPH - ,0xF7D3 ,0xFA05 //CJK COMPATIBILITY IDEOGRAPH - ,0xF7D4 ,0x75DB //CJK UNIFIED IDEOGRAPH - ,0xF7D5 ,0x7B52 //CJK UNIFIED IDEOGRAPH - ,0xF7D6 ,0x7D71 //CJK UNIFIED IDEOGRAPH - ,0xF7D7 ,0x901A //CJK UNIFIED IDEOGRAPH - ,0xF7D8 ,0x5806 //CJK UNIFIED IDEOGRAPH - ,0xF7D9 ,0x69CC //CJK UNIFIED IDEOGRAPH - ,0xF7DA ,0x817F //CJK UNIFIED IDEOGRAPH - ,0xF7DB ,0x892A //CJK UNIFIED IDEOGRAPH - ,0xF7DC ,0x9000 //CJK UNIFIED IDEOGRAPH - ,0xF7DD ,0x9839 //CJK UNIFIED IDEOGRAPH - ,0xF7DE ,0x5078 //CJK UNIFIED IDEOGRAPH - ,0xF7DF ,0x5957 //CJK UNIFIED IDEOGRAPH - ,0xF7E0 ,0x59AC //CJK UNIFIED IDEOGRAPH - ,0xF7E1 ,0x6295 //CJK UNIFIED IDEOGRAPH - ,0xF7E2 ,0x900F //CJK UNIFIED IDEOGRAPH - ,0xF7E3 ,0x9B2A //CJK UNIFIED IDEOGRAPH - ,0xF7E4 ,0x615D //CJK UNIFIED IDEOGRAPH - ,0xF7E5 ,0x7279 //CJK UNIFIED IDEOGRAPH - ,0xF7E6 ,0x95D6 //CJK UNIFIED IDEOGRAPH - ,0xF7E7 ,0x5761 //CJK UNIFIED IDEOGRAPH - ,0xF7E8 ,0x5A46 //CJK UNIFIED IDEOGRAPH - ,0xF7E9 ,0x5DF4 //CJK UNIFIED IDEOGRAPH - ,0xF7EA ,0x628A //CJK UNIFIED IDEOGRAPH - ,0xF7EB ,0x64AD //CJK UNIFIED IDEOGRAPH - ,0xF7EC ,0x64FA //CJK UNIFIED IDEOGRAPH - ,0xF7ED ,0x6777 //CJK UNIFIED IDEOGRAPH - ,0xF7EE ,0x6CE2 //CJK UNIFIED IDEOGRAPH - ,0xF7EF ,0x6D3E //CJK UNIFIED IDEOGRAPH - ,0xF7F0 ,0x722C //CJK UNIFIED IDEOGRAPH - ,0xF7F1 ,0x7436 //CJK UNIFIED IDEOGRAPH - ,0xF7F2 ,0x7834 //CJK UNIFIED IDEOGRAPH - ,0xF7F3 ,0x7F77 //CJK UNIFIED IDEOGRAPH - ,0xF7F4 ,0x82AD //CJK UNIFIED IDEOGRAPH - ,0xF7F5 ,0x8DDB //CJK UNIFIED IDEOGRAPH - ,0xF7F6 ,0x9817 //CJK UNIFIED IDEOGRAPH - ,0xF7F7 ,0x5224 //CJK UNIFIED IDEOGRAPH - ,0xF7F8 ,0x5742 //CJK UNIFIED IDEOGRAPH - ,0xF7F9 ,0x677F //CJK UNIFIED IDEOGRAPH - ,0xF7FA ,0x7248 //CJK UNIFIED IDEOGRAPH - ,0xF7FB ,0x74E3 //CJK UNIFIED IDEOGRAPH - ,0xF7FC ,0x8CA9 //CJK UNIFIED IDEOGRAPH - ,0xF7FD ,0x8FA6 //CJK UNIFIED IDEOGRAPH - ,0xF7FE ,0x9211 //CJK UNIFIED IDEOGRAPH - ,0xF8A1 ,0x962A //CJK UNIFIED IDEOGRAPH - ,0xF8A2 ,0x516B //CJK UNIFIED IDEOGRAPH - ,0xF8A3 ,0x53ED //CJK UNIFIED IDEOGRAPH - ,0xF8A4 ,0x634C //CJK UNIFIED IDEOGRAPH - ,0xF8A5 ,0x4F69 //CJK UNIFIED IDEOGRAPH - ,0xF8A6 ,0x5504 //CJK UNIFIED IDEOGRAPH - ,0xF8A7 ,0x6096 //CJK UNIFIED IDEOGRAPH - ,0xF8A8 ,0x6557 //CJK UNIFIED IDEOGRAPH - ,0xF8A9 ,0x6C9B //CJK UNIFIED IDEOGRAPH - ,0xF8AA ,0x6D7F //CJK UNIFIED IDEOGRAPH - ,0xF8AB ,0x724C //CJK UNIFIED IDEOGRAPH - ,0xF8AC ,0x72FD //CJK UNIFIED IDEOGRAPH - ,0xF8AD ,0x7A17 //CJK UNIFIED IDEOGRAPH - ,0xF8AE ,0x8987 //CJK UNIFIED IDEOGRAPH - ,0xF8AF ,0x8C9D //CJK UNIFIED IDEOGRAPH - ,0xF8B0 ,0x5F6D //CJK UNIFIED IDEOGRAPH - ,0xF8B1 ,0x6F8E //CJK UNIFIED IDEOGRAPH - ,0xF8B2 ,0x70F9 //CJK UNIFIED IDEOGRAPH - ,0xF8B3 ,0x81A8 //CJK UNIFIED IDEOGRAPH - ,0xF8B4 ,0x610E //CJK UNIFIED IDEOGRAPH - ,0xF8B5 ,0x4FBF //CJK UNIFIED IDEOGRAPH - ,0xF8B6 ,0x504F //CJK UNIFIED IDEOGRAPH - ,0xF8B7 ,0x6241 //CJK UNIFIED IDEOGRAPH - ,0xF8B8 ,0x7247 //CJK UNIFIED IDEOGRAPH - ,0xF8B9 ,0x7BC7 //CJK UNIFIED IDEOGRAPH - ,0xF8BA ,0x7DE8 //CJK UNIFIED IDEOGRAPH - ,0xF8BB ,0x7FE9 //CJK UNIFIED IDEOGRAPH - ,0xF8BC ,0x904D //CJK UNIFIED IDEOGRAPH - ,0xF8BD ,0x97AD //CJK UNIFIED IDEOGRAPH - ,0xF8BE ,0x9A19 //CJK UNIFIED IDEOGRAPH - ,0xF8BF ,0x8CB6 //CJK UNIFIED IDEOGRAPH - ,0xF8C0 ,0x576A //CJK UNIFIED IDEOGRAPH - ,0xF8C1 ,0x5E73 //CJK UNIFIED IDEOGRAPH - ,0xF8C2 ,0x67B0 //CJK UNIFIED IDEOGRAPH - ,0xF8C3 ,0x840D //CJK UNIFIED IDEOGRAPH - ,0xF8C4 ,0x8A55 //CJK UNIFIED IDEOGRAPH - ,0xF8C5 ,0x5420 //CJK UNIFIED IDEOGRAPH - ,0xF8C6 ,0x5B16 //CJK UNIFIED IDEOGRAPH - ,0xF8C7 ,0x5E63 //CJK UNIFIED IDEOGRAPH - ,0xF8C8 ,0x5EE2 //CJK UNIFIED IDEOGRAPH - ,0xF8C9 ,0x5F0A //CJK UNIFIED IDEOGRAPH - ,0xF8CA ,0x6583 //CJK UNIFIED IDEOGRAPH - ,0xF8CB ,0x80BA //CJK UNIFIED IDEOGRAPH - ,0xF8CC ,0x853D //CJK UNIFIED IDEOGRAPH - ,0xF8CD ,0x9589 //CJK UNIFIED IDEOGRAPH - ,0xF8CE ,0x965B //CJK UNIFIED IDEOGRAPH - ,0xF8CF ,0x4F48 //CJK UNIFIED IDEOGRAPH - ,0xF8D0 ,0x5305 //CJK UNIFIED IDEOGRAPH - ,0xF8D1 ,0x530D //CJK UNIFIED IDEOGRAPH - ,0xF8D2 ,0x530F //CJK UNIFIED IDEOGRAPH - ,0xF8D3 ,0x5486 //CJK UNIFIED IDEOGRAPH - ,0xF8D4 ,0x54FA //CJK UNIFIED IDEOGRAPH - ,0xF8D5 ,0x5703 //CJK UNIFIED IDEOGRAPH - ,0xF8D6 ,0x5E03 //CJK UNIFIED IDEOGRAPH - ,0xF8D7 ,0x6016 //CJK UNIFIED IDEOGRAPH - ,0xF8D8 ,0x629B //CJK UNIFIED IDEOGRAPH - ,0xF8D9 ,0x62B1 //CJK UNIFIED IDEOGRAPH - ,0xF8DA ,0x6355 //CJK UNIFIED IDEOGRAPH - ,0xF8DB ,0xFA06 //CJK COMPATIBILITY IDEOGRAPH - ,0xF8DC ,0x6CE1 //CJK UNIFIED IDEOGRAPH - ,0xF8DD ,0x6D66 //CJK UNIFIED IDEOGRAPH - ,0xF8DE ,0x75B1 //CJK UNIFIED IDEOGRAPH - ,0xF8DF ,0x7832 //CJK UNIFIED IDEOGRAPH - ,0xF8E0 ,0x80DE //CJK UNIFIED IDEOGRAPH - ,0xF8E1 ,0x812F //CJK UNIFIED IDEOGRAPH - ,0xF8E2 ,0x82DE //CJK UNIFIED IDEOGRAPH - ,0xF8E3 ,0x8461 //CJK UNIFIED IDEOGRAPH - ,0xF8E4 ,0x84B2 //CJK UNIFIED IDEOGRAPH - ,0xF8E5 ,0x888D //CJK UNIFIED IDEOGRAPH - ,0xF8E6 ,0x8912 //CJK UNIFIED IDEOGRAPH - ,0xF8E7 ,0x900B //CJK UNIFIED IDEOGRAPH - ,0xF8E8 ,0x92EA //CJK UNIFIED IDEOGRAPH - ,0xF8E9 ,0x98FD //CJK UNIFIED IDEOGRAPH - ,0xF8EA ,0x9B91 //CJK UNIFIED IDEOGRAPH - ,0xF8EB ,0x5E45 //CJK UNIFIED IDEOGRAPH - ,0xF8EC ,0x66B4 //CJK UNIFIED IDEOGRAPH - ,0xF8ED ,0x66DD //CJK UNIFIED IDEOGRAPH - ,0xF8EE ,0x7011 //CJK UNIFIED IDEOGRAPH - ,0xF8EF ,0x7206 //CJK UNIFIED IDEOGRAPH - ,0xF8F0 ,0xFA07 //CJK COMPATIBILITY IDEOGRAPH - ,0xF8F1 ,0x4FF5 //CJK UNIFIED IDEOGRAPH - ,0xF8F2 ,0x527D //CJK UNIFIED IDEOGRAPH - ,0xF8F3 ,0x5F6A //CJK UNIFIED IDEOGRAPH - ,0xF8F4 ,0x6153 //CJK UNIFIED IDEOGRAPH - ,0xF8F5 ,0x6753 //CJK UNIFIED IDEOGRAPH - ,0xF8F6 ,0x6A19 //CJK UNIFIED IDEOGRAPH - ,0xF8F7 ,0x6F02 //CJK UNIFIED IDEOGRAPH - ,0xF8F8 ,0x74E2 //CJK UNIFIED IDEOGRAPH - ,0xF8F9 ,0x7968 //CJK UNIFIED IDEOGRAPH - ,0xF8FA ,0x8868 //CJK UNIFIED IDEOGRAPH - ,0xF8FB ,0x8C79 //CJK UNIFIED IDEOGRAPH - ,0xF8FC ,0x98C7 //CJK UNIFIED IDEOGRAPH - ,0xF8FD ,0x98C4 //CJK UNIFIED IDEOGRAPH - ,0xF8FE ,0x9A43 //CJK UNIFIED IDEOGRAPH - ,0xF9A1 ,0x54C1 //CJK UNIFIED IDEOGRAPH - ,0xF9A2 ,0x7A1F //CJK UNIFIED IDEOGRAPH - ,0xF9A3 ,0x6953 //CJK UNIFIED IDEOGRAPH - ,0xF9A4 ,0x8AF7 //CJK UNIFIED IDEOGRAPH - ,0xF9A5 ,0x8C4A //CJK UNIFIED IDEOGRAPH - ,0xF9A6 ,0x98A8 //CJK UNIFIED IDEOGRAPH - ,0xF9A7 ,0x99AE //CJK UNIFIED IDEOGRAPH - ,0xF9A8 ,0x5F7C //CJK UNIFIED IDEOGRAPH - ,0xF9A9 ,0x62AB //CJK UNIFIED IDEOGRAPH - ,0xF9AA ,0x75B2 //CJK UNIFIED IDEOGRAPH - ,0xF9AB ,0x76AE //CJK UNIFIED IDEOGRAPH - ,0xF9AC ,0x88AB //CJK UNIFIED IDEOGRAPH - ,0xF9AD ,0x907F //CJK UNIFIED IDEOGRAPH - ,0xF9AE ,0x9642 //CJK UNIFIED IDEOGRAPH - ,0xF9AF ,0x5339 //CJK UNIFIED IDEOGRAPH - ,0xF9B0 ,0x5F3C //CJK UNIFIED IDEOGRAPH - ,0xF9B1 ,0x5FC5 //CJK UNIFIED IDEOGRAPH - ,0xF9B2 ,0x6CCC //CJK UNIFIED IDEOGRAPH - ,0xF9B3 ,0x73CC //CJK UNIFIED IDEOGRAPH - ,0xF9B4 ,0x7562 //CJK UNIFIED IDEOGRAPH - ,0xF9B5 ,0x758B //CJK UNIFIED IDEOGRAPH - ,0xF9B6 ,0x7B46 //CJK UNIFIED IDEOGRAPH - ,0xF9B7 ,0x82FE //CJK UNIFIED IDEOGRAPH - ,0xF9B8 ,0x999D //CJK UNIFIED IDEOGRAPH - ,0xF9B9 ,0x4E4F //CJK UNIFIED IDEOGRAPH - ,0xF9BA ,0x903C //CJK UNIFIED IDEOGRAPH - ,0xF9BB ,0x4E0B //CJK UNIFIED IDEOGRAPH - ,0xF9BC ,0x4F55 //CJK UNIFIED IDEOGRAPH - ,0xF9BD ,0x53A6 //CJK UNIFIED IDEOGRAPH - ,0xF9BE ,0x590F //CJK UNIFIED IDEOGRAPH - ,0xF9BF ,0x5EC8 //CJK UNIFIED IDEOGRAPH - ,0xF9C0 ,0x6630 //CJK UNIFIED IDEOGRAPH - ,0xF9C1 ,0x6CB3 //CJK UNIFIED IDEOGRAPH - ,0xF9C2 ,0x7455 //CJK UNIFIED IDEOGRAPH - ,0xF9C3 ,0x8377 //CJK UNIFIED IDEOGRAPH - ,0xF9C4 ,0x8766 //CJK UNIFIED IDEOGRAPH - ,0xF9C5 ,0x8CC0 //CJK UNIFIED IDEOGRAPH - ,0xF9C6 ,0x9050 //CJK UNIFIED IDEOGRAPH - ,0xF9C7 ,0x971E //CJK UNIFIED IDEOGRAPH - ,0xF9C8 ,0x9C15 //CJK UNIFIED IDEOGRAPH - ,0xF9C9 ,0x58D1 //CJK UNIFIED IDEOGRAPH - ,0xF9CA ,0x5B78 //CJK UNIFIED IDEOGRAPH - ,0xF9CB ,0x8650 //CJK UNIFIED IDEOGRAPH - ,0xF9CC ,0x8B14 //CJK UNIFIED IDEOGRAPH - ,0xF9CD ,0x9DB4 //CJK UNIFIED IDEOGRAPH - ,0xF9CE ,0x5BD2 //CJK UNIFIED IDEOGRAPH - ,0xF9CF ,0x6068 //CJK UNIFIED IDEOGRAPH - ,0xF9D0 ,0x608D //CJK UNIFIED IDEOGRAPH - ,0xF9D1 ,0x65F1 //CJK UNIFIED IDEOGRAPH - ,0xF9D2 ,0x6C57 //CJK UNIFIED IDEOGRAPH - ,0xF9D3 ,0x6F22 //CJK UNIFIED IDEOGRAPH - ,0xF9D4 ,0x6FA3 //CJK UNIFIED IDEOGRAPH - ,0xF9D5 ,0x701A //CJK UNIFIED IDEOGRAPH - ,0xF9D6 ,0x7F55 //CJK UNIFIED IDEOGRAPH - ,0xF9D7 ,0x7FF0 //CJK UNIFIED IDEOGRAPH - ,0xF9D8 ,0x9591 //CJK UNIFIED IDEOGRAPH - ,0xF9D9 ,0x9592 //CJK UNIFIED IDEOGRAPH - ,0xF9DA ,0x9650 //CJK UNIFIED IDEOGRAPH - ,0xF9DB ,0x97D3 //CJK UNIFIED IDEOGRAPH - ,0xF9DC ,0x5272 //CJK UNIFIED IDEOGRAPH - ,0xF9DD ,0x8F44 //CJK UNIFIED IDEOGRAPH - ,0xF9DE ,0x51FD //CJK UNIFIED IDEOGRAPH - ,0xF9DF ,0x542B //CJK UNIFIED IDEOGRAPH - ,0xF9E0 ,0x54B8 //CJK UNIFIED IDEOGRAPH - ,0xF9E1 ,0x5563 //CJK UNIFIED IDEOGRAPH - ,0xF9E2 ,0x558A //CJK UNIFIED IDEOGRAPH - ,0xF9E3 ,0x6ABB //CJK UNIFIED IDEOGRAPH - ,0xF9E4 ,0x6DB5 //CJK UNIFIED IDEOGRAPH - ,0xF9E5 ,0x7DD8 //CJK UNIFIED IDEOGRAPH - ,0xF9E6 ,0x8266 //CJK UNIFIED IDEOGRAPH - ,0xF9E7 ,0x929C //CJK UNIFIED IDEOGRAPH - ,0xF9E8 ,0x9677 //CJK UNIFIED IDEOGRAPH - ,0xF9E9 ,0x9E79 //CJK UNIFIED IDEOGRAPH - ,0xF9EA ,0x5408 //CJK UNIFIED IDEOGRAPH - ,0xF9EB ,0x54C8 //CJK UNIFIED IDEOGRAPH - ,0xF9EC ,0x76D2 //CJK UNIFIED IDEOGRAPH - ,0xF9ED ,0x86E4 //CJK UNIFIED IDEOGRAPH - ,0xF9EE ,0x95A4 //CJK UNIFIED IDEOGRAPH - ,0xF9EF ,0x95D4 //CJK UNIFIED IDEOGRAPH - ,0xF9F0 ,0x965C //CJK UNIFIED IDEOGRAPH - ,0xF9F1 ,0x4EA2 //CJK UNIFIED IDEOGRAPH - ,0xF9F2 ,0x4F09 //CJK UNIFIED IDEOGRAPH - ,0xF9F3 ,0x59EE //CJK UNIFIED IDEOGRAPH - ,0xF9F4 ,0x5AE6 //CJK UNIFIED IDEOGRAPH - ,0xF9F5 ,0x5DF7 //CJK UNIFIED IDEOGRAPH - ,0xF9F6 ,0x6052 //CJK UNIFIED IDEOGRAPH - ,0xF9F7 ,0x6297 //CJK UNIFIED IDEOGRAPH - ,0xF9F8 ,0x676D //CJK UNIFIED IDEOGRAPH - ,0xF9F9 ,0x6841 //CJK UNIFIED IDEOGRAPH - ,0xF9FA ,0x6C86 //CJK UNIFIED IDEOGRAPH - ,0xF9FB ,0x6E2F //CJK UNIFIED IDEOGRAPH - ,0xF9FC ,0x7F38 //CJK UNIFIED IDEOGRAPH - ,0xF9FD ,0x809B //CJK UNIFIED IDEOGRAPH - ,0xF9FE ,0x822A //CJK UNIFIED IDEOGRAPH - ,0xFAA1 ,0xFA08 //CJK COMPATIBILITY IDEOGRAPH - ,0xFAA2 ,0xFA09 //CJK COMPATIBILITY IDEOGRAPH - ,0xFAA3 ,0x9805 //CJK UNIFIED IDEOGRAPH - ,0xFAA4 ,0x4EA5 //CJK UNIFIED IDEOGRAPH - ,0xFAA5 ,0x5055 //CJK UNIFIED IDEOGRAPH - ,0xFAA6 ,0x54B3 //CJK UNIFIED IDEOGRAPH - ,0xFAA7 ,0x5793 //CJK UNIFIED IDEOGRAPH - ,0xFAA8 ,0x595A //CJK UNIFIED IDEOGRAPH - ,0xFAA9 ,0x5B69 //CJK UNIFIED IDEOGRAPH - ,0xFAAA ,0x5BB3 //CJK UNIFIED IDEOGRAPH - ,0xFAAB ,0x61C8 //CJK UNIFIED IDEOGRAPH - ,0xFAAC ,0x6977 //CJK UNIFIED IDEOGRAPH - ,0xFAAD ,0x6D77 //CJK UNIFIED IDEOGRAPH - ,0xFAAE ,0x7023 //CJK UNIFIED IDEOGRAPH - ,0xFAAF ,0x87F9 //CJK UNIFIED IDEOGRAPH - ,0xFAB0 ,0x89E3 //CJK UNIFIED IDEOGRAPH - ,0xFAB1 ,0x8A72 //CJK UNIFIED IDEOGRAPH - ,0xFAB2 ,0x8AE7 //CJK UNIFIED IDEOGRAPH - ,0xFAB3 ,0x9082 //CJK UNIFIED IDEOGRAPH - ,0xFAB4 ,0x99ED //CJK UNIFIED IDEOGRAPH - ,0xFAB5 ,0x9AB8 //CJK UNIFIED IDEOGRAPH - ,0xFAB6 ,0x52BE //CJK UNIFIED IDEOGRAPH - ,0xFAB7 ,0x6838 //CJK UNIFIED IDEOGRAPH - ,0xFAB8 ,0x5016 //CJK UNIFIED IDEOGRAPH - ,0xFAB9 ,0x5E78 //CJK UNIFIED IDEOGRAPH - ,0xFABA ,0x674F //CJK UNIFIED IDEOGRAPH - ,0xFABB ,0x8347 //CJK UNIFIED IDEOGRAPH - ,0xFABC ,0x884C //CJK UNIFIED IDEOGRAPH - ,0xFABD ,0x4EAB //CJK UNIFIED IDEOGRAPH - ,0xFABE ,0x5411 //CJK UNIFIED IDEOGRAPH - ,0xFABF ,0x56AE //CJK UNIFIED IDEOGRAPH - ,0xFAC0 ,0x73E6 //CJK UNIFIED IDEOGRAPH - ,0xFAC1 ,0x9115 //CJK UNIFIED IDEOGRAPH - ,0xFAC2 ,0x97FF //CJK UNIFIED IDEOGRAPH - ,0xFAC3 ,0x9909 //CJK UNIFIED IDEOGRAPH - ,0xFAC4 ,0x9957 //CJK UNIFIED IDEOGRAPH - ,0xFAC5 ,0x9999 //CJK UNIFIED IDEOGRAPH - ,0xFAC6 ,0x5653 //CJK UNIFIED IDEOGRAPH - ,0xFAC7 ,0x589F //CJK UNIFIED IDEOGRAPH - ,0xFAC8 ,0x865B //CJK UNIFIED IDEOGRAPH - ,0xFAC9 ,0x8A31 //CJK UNIFIED IDEOGRAPH - ,0xFACA ,0x61B2 //CJK UNIFIED IDEOGRAPH - ,0xFACB ,0x6AF6 //CJK UNIFIED IDEOGRAPH - ,0xFACC ,0x737B //CJK UNIFIED IDEOGRAPH - ,0xFACD ,0x8ED2 //CJK UNIFIED IDEOGRAPH - ,0xFACE ,0x6B47 //CJK UNIFIED IDEOGRAPH - ,0xFACF ,0x96AA //CJK UNIFIED IDEOGRAPH - ,0xFAD0 ,0x9A57 //CJK UNIFIED IDEOGRAPH - ,0xFAD1 ,0x5955 //CJK UNIFIED IDEOGRAPH - ,0xFAD2 ,0x7200 //CJK UNIFIED IDEOGRAPH - ,0xFAD3 ,0x8D6B //CJK UNIFIED IDEOGRAPH - ,0xFAD4 ,0x9769 //CJK UNIFIED IDEOGRAPH - ,0xFAD5 ,0x4FD4 //CJK UNIFIED IDEOGRAPH - ,0xFAD6 ,0x5CF4 //CJK UNIFIED IDEOGRAPH - ,0xFAD7 ,0x5F26 //CJK UNIFIED IDEOGRAPH - ,0xFAD8 ,0x61F8 //CJK UNIFIED IDEOGRAPH - ,0xFAD9 ,0x665B //CJK UNIFIED IDEOGRAPH - ,0xFADA ,0x6CEB //CJK UNIFIED IDEOGRAPH - ,0xFADB ,0x70AB //CJK UNIFIED IDEOGRAPH - ,0xFADC ,0x7384 //CJK UNIFIED IDEOGRAPH - ,0xFADD ,0x73B9 //CJK UNIFIED IDEOGRAPH - ,0xFADE ,0x73FE //CJK UNIFIED IDEOGRAPH - ,0xFADF ,0x7729 //CJK UNIFIED IDEOGRAPH - ,0xFAE0 ,0x774D //CJK UNIFIED IDEOGRAPH - ,0xFAE1 ,0x7D43 //CJK UNIFIED IDEOGRAPH - ,0xFAE2 ,0x7D62 //CJK UNIFIED IDEOGRAPH - ,0xFAE3 ,0x7E23 //CJK UNIFIED IDEOGRAPH - ,0xFAE4 ,0x8237 //CJK UNIFIED IDEOGRAPH - ,0xFAE5 ,0x8852 //CJK UNIFIED IDEOGRAPH - ,0xFAE6 ,0xFA0A //CJK COMPATIBILITY IDEOGRAPH - ,0xFAE7 ,0x8CE2 //CJK UNIFIED IDEOGRAPH - ,0xFAE8 ,0x9249 //CJK UNIFIED IDEOGRAPH - ,0xFAE9 ,0x986F //CJK UNIFIED IDEOGRAPH - ,0xFAEA ,0x5B51 //CJK UNIFIED IDEOGRAPH - ,0xFAEB ,0x7A74 //CJK UNIFIED IDEOGRAPH - ,0xFAEC ,0x8840 //CJK UNIFIED IDEOGRAPH - ,0xFAED ,0x9801 //CJK UNIFIED IDEOGRAPH - ,0xFAEE ,0x5ACC //CJK UNIFIED IDEOGRAPH - ,0xFAEF ,0x4FE0 //CJK UNIFIED IDEOGRAPH - ,0xFAF0 ,0x5354 //CJK UNIFIED IDEOGRAPH - ,0xFAF1 ,0x593E //CJK UNIFIED IDEOGRAPH - ,0xFAF2 ,0x5CFD //CJK UNIFIED IDEOGRAPH - ,0xFAF3 ,0x633E //CJK UNIFIED IDEOGRAPH - ,0xFAF4 ,0x6D79 //CJK UNIFIED IDEOGRAPH - ,0xFAF5 ,0x72F9 //CJK UNIFIED IDEOGRAPH - ,0xFAF6 ,0x8105 //CJK UNIFIED IDEOGRAPH - ,0xFAF7 ,0x8107 //CJK UNIFIED IDEOGRAPH - ,0xFAF8 ,0x83A2 //CJK UNIFIED IDEOGRAPH - ,0xFAF9 ,0x92CF //CJK UNIFIED IDEOGRAPH - ,0xFAFA ,0x9830 //CJK UNIFIED IDEOGRAPH - ,0xFAFB ,0x4EA8 //CJK UNIFIED IDEOGRAPH - ,0xFAFC ,0x5144 //CJK UNIFIED IDEOGRAPH - ,0xFAFD ,0x5211 //CJK UNIFIED IDEOGRAPH - ,0xFAFE ,0x578B //CJK UNIFIED IDEOGRAPH - ,0xFBA1 ,0x5F62 //CJK UNIFIED IDEOGRAPH - ,0xFBA2 ,0x6CC2 //CJK UNIFIED IDEOGRAPH - ,0xFBA3 ,0x6ECE //CJK UNIFIED IDEOGRAPH - ,0xFBA4 ,0x7005 //CJK UNIFIED IDEOGRAPH - ,0xFBA5 ,0x7050 //CJK UNIFIED IDEOGRAPH - ,0xFBA6 ,0x70AF //CJK UNIFIED IDEOGRAPH - ,0xFBA7 ,0x7192 //CJK UNIFIED IDEOGRAPH - ,0xFBA8 ,0x73E9 //CJK UNIFIED IDEOGRAPH - ,0xFBA9 ,0x7469 //CJK UNIFIED IDEOGRAPH - ,0xFBAA ,0x834A //CJK UNIFIED IDEOGRAPH - ,0xFBAB ,0x87A2 //CJK UNIFIED IDEOGRAPH - ,0xFBAC ,0x8861 //CJK UNIFIED IDEOGRAPH - ,0xFBAD ,0x9008 //CJK UNIFIED IDEOGRAPH - ,0xFBAE ,0x90A2 //CJK UNIFIED IDEOGRAPH - ,0xFBAF ,0x93A3 //CJK UNIFIED IDEOGRAPH - ,0xFBB0 ,0x99A8 //CJK UNIFIED IDEOGRAPH - ,0xFBB1 ,0x516E //CJK UNIFIED IDEOGRAPH - ,0xFBB2 ,0x5F57 //CJK UNIFIED IDEOGRAPH - ,0xFBB3 ,0x60E0 //CJK UNIFIED IDEOGRAPH - ,0xFBB4 ,0x6167 //CJK UNIFIED IDEOGRAPH - ,0xFBB5 ,0x66B3 //CJK UNIFIED IDEOGRAPH - ,0xFBB6 ,0x8559 //CJK UNIFIED IDEOGRAPH - ,0xFBB7 ,0x8E4A //CJK UNIFIED IDEOGRAPH - ,0xFBB8 ,0x91AF //CJK UNIFIED IDEOGRAPH - ,0xFBB9 ,0x978B //CJK UNIFIED IDEOGRAPH - ,0xFBBA ,0x4E4E //CJK UNIFIED IDEOGRAPH - ,0xFBBB ,0x4E92 //CJK UNIFIED IDEOGRAPH - ,0xFBBC ,0x547C //CJK UNIFIED IDEOGRAPH - ,0xFBBD ,0x58D5 //CJK UNIFIED IDEOGRAPH - ,0xFBBE ,0x58FA //CJK UNIFIED IDEOGRAPH - ,0xFBBF ,0x597D //CJK UNIFIED IDEOGRAPH - ,0xFBC0 ,0x5CB5 //CJK UNIFIED IDEOGRAPH - ,0xFBC1 ,0x5F27 //CJK UNIFIED IDEOGRAPH - ,0xFBC2 ,0x6236 //CJK UNIFIED IDEOGRAPH - ,0xFBC3 ,0x6248 //CJK UNIFIED IDEOGRAPH - ,0xFBC4 ,0x660A //CJK UNIFIED IDEOGRAPH - ,0xFBC5 ,0x6667 //CJK UNIFIED IDEOGRAPH - ,0xFBC6 ,0x6BEB //CJK UNIFIED IDEOGRAPH - ,0xFBC7 ,0x6D69 //CJK UNIFIED IDEOGRAPH - ,0xFBC8 ,0x6DCF //CJK UNIFIED IDEOGRAPH - ,0xFBC9 ,0x6E56 //CJK UNIFIED IDEOGRAPH - ,0xFBCA ,0x6EF8 //CJK UNIFIED IDEOGRAPH - ,0xFBCB ,0x6F94 //CJK UNIFIED IDEOGRAPH - ,0xFBCC ,0x6FE0 //CJK UNIFIED IDEOGRAPH - ,0xFBCD ,0x6FE9 //CJK UNIFIED IDEOGRAPH - ,0xFBCE ,0x705D //CJK UNIFIED IDEOGRAPH - ,0xFBCF ,0x72D0 //CJK UNIFIED IDEOGRAPH - ,0xFBD0 ,0x7425 //CJK UNIFIED IDEOGRAPH - ,0xFBD1 ,0x745A //CJK UNIFIED IDEOGRAPH - ,0xFBD2 ,0x74E0 //CJK UNIFIED IDEOGRAPH - ,0xFBD3 ,0x7693 //CJK UNIFIED IDEOGRAPH - ,0xFBD4 ,0x795C //CJK UNIFIED IDEOGRAPH - ,0xFBD5 ,0x7CCA //CJK UNIFIED IDEOGRAPH - ,0xFBD6 ,0x7E1E //CJK UNIFIED IDEOGRAPH - ,0xFBD7 ,0x80E1 //CJK UNIFIED IDEOGRAPH - ,0xFBD8 ,0x82A6 //CJK UNIFIED IDEOGRAPH - ,0xFBD9 ,0x846B //CJK UNIFIED IDEOGRAPH - ,0xFBDA ,0x84BF //CJK UNIFIED IDEOGRAPH - ,0xFBDB ,0x864E //CJK UNIFIED IDEOGRAPH - ,0xFBDC ,0x865F //CJK UNIFIED IDEOGRAPH - ,0xFBDD ,0x8774 //CJK UNIFIED IDEOGRAPH - ,0xFBDE ,0x8B77 //CJK UNIFIED IDEOGRAPH - ,0xFBDF ,0x8C6A //CJK UNIFIED IDEOGRAPH - ,0xFBE0 ,0x93AC //CJK UNIFIED IDEOGRAPH - ,0xFBE1 ,0x9800 //CJK UNIFIED IDEOGRAPH - ,0xFBE2 ,0x9865 //CJK UNIFIED IDEOGRAPH - ,0xFBE3 ,0x60D1 //CJK UNIFIED IDEOGRAPH - ,0xFBE4 ,0x6216 //CJK UNIFIED IDEOGRAPH - ,0xFBE5 ,0x9177 //CJK UNIFIED IDEOGRAPH - ,0xFBE6 ,0x5A5A //CJK UNIFIED IDEOGRAPH - ,0xFBE7 ,0x660F //CJK UNIFIED IDEOGRAPH - ,0xFBE8 ,0x6DF7 //CJK UNIFIED IDEOGRAPH - ,0xFBE9 ,0x6E3E //CJK UNIFIED IDEOGRAPH - ,0xFBEA ,0x743F //CJK UNIFIED IDEOGRAPH - ,0xFBEB ,0x9B42 //CJK UNIFIED IDEOGRAPH - ,0xFBEC ,0x5FFD //CJK UNIFIED IDEOGRAPH - ,0xFBED ,0x60DA //CJK UNIFIED IDEOGRAPH - ,0xFBEE ,0x7B0F //CJK UNIFIED IDEOGRAPH - ,0xFBEF ,0x54C4 //CJK UNIFIED IDEOGRAPH - ,0xFBF0 ,0x5F18 //CJK UNIFIED IDEOGRAPH - ,0xFBF1 ,0x6C5E //CJK UNIFIED IDEOGRAPH - ,0xFBF2 ,0x6CD3 //CJK UNIFIED IDEOGRAPH - ,0xFBF3 ,0x6D2A //CJK UNIFIED IDEOGRAPH - ,0xFBF4 ,0x70D8 //CJK UNIFIED IDEOGRAPH - ,0xFBF5 ,0x7D05 //CJK UNIFIED IDEOGRAPH - ,0xFBF6 ,0x8679 //CJK UNIFIED IDEOGRAPH - ,0xFBF7 ,0x8A0C //CJK UNIFIED IDEOGRAPH - ,0xFBF8 ,0x9D3B //CJK UNIFIED IDEOGRAPH - ,0xFBF9 ,0x5316 //CJK UNIFIED IDEOGRAPH - ,0xFBFA ,0x548C //CJK UNIFIED IDEOGRAPH - ,0xFBFB ,0x5B05 //CJK UNIFIED IDEOGRAPH - ,0xFBFC ,0x6A3A //CJK UNIFIED IDEOGRAPH - ,0xFBFD ,0x706B //CJK UNIFIED IDEOGRAPH - ,0xFBFE ,0x7575 //CJK UNIFIED IDEOGRAPH - ,0xFCA1 ,0x798D //CJK UNIFIED IDEOGRAPH - ,0xFCA2 ,0x79BE //CJK UNIFIED IDEOGRAPH - ,0xFCA3 ,0x82B1 //CJK UNIFIED IDEOGRAPH - ,0xFCA4 ,0x83EF //CJK UNIFIED IDEOGRAPH - ,0xFCA5 ,0x8A71 //CJK UNIFIED IDEOGRAPH - ,0xFCA6 ,0x8B41 //CJK UNIFIED IDEOGRAPH - ,0xFCA7 ,0x8CA8 //CJK UNIFIED IDEOGRAPH - ,0xFCA8 ,0x9774 //CJK UNIFIED IDEOGRAPH - ,0xFCA9 ,0xFA0B //CJK COMPATIBILITY IDEOGRAPH - ,0xFCAA ,0x64F4 //CJK UNIFIED IDEOGRAPH - ,0xFCAB ,0x652B //CJK UNIFIED IDEOGRAPH - ,0xFCAC ,0x78BA //CJK UNIFIED IDEOGRAPH - ,0xFCAD ,0x78BB //CJK UNIFIED IDEOGRAPH - ,0xFCAE ,0x7A6B //CJK UNIFIED IDEOGRAPH - ,0xFCAF ,0x4E38 //CJK UNIFIED IDEOGRAPH - ,0xFCB0 ,0x559A //CJK UNIFIED IDEOGRAPH - ,0xFCB1 ,0x5950 //CJK UNIFIED IDEOGRAPH - ,0xFCB2 ,0x5BA6 //CJK UNIFIED IDEOGRAPH - ,0xFCB3 ,0x5E7B //CJK UNIFIED IDEOGRAPH - ,0xFCB4 ,0x60A3 //CJK UNIFIED IDEOGRAPH - ,0xFCB5 ,0x63DB //CJK UNIFIED IDEOGRAPH - ,0xFCB6 ,0x6B61 //CJK UNIFIED IDEOGRAPH - ,0xFCB7 ,0x6665 //CJK UNIFIED IDEOGRAPH - ,0xFCB8 ,0x6853 //CJK UNIFIED IDEOGRAPH - ,0xFCB9 ,0x6E19 //CJK UNIFIED IDEOGRAPH - ,0xFCBA ,0x7165 //CJK UNIFIED IDEOGRAPH - ,0xFCBB ,0x74B0 //CJK UNIFIED IDEOGRAPH - ,0xFCBC ,0x7D08 //CJK UNIFIED IDEOGRAPH - ,0xFCBD ,0x9084 //CJK UNIFIED IDEOGRAPH - ,0xFCBE ,0x9A69 //CJK UNIFIED IDEOGRAPH - ,0xFCBF ,0x9C25 //CJK UNIFIED IDEOGRAPH - ,0xFCC0 ,0x6D3B //CJK UNIFIED IDEOGRAPH - ,0xFCC1 ,0x6ED1 //CJK UNIFIED IDEOGRAPH - ,0xFCC2 ,0x733E //CJK UNIFIED IDEOGRAPH - ,0xFCC3 ,0x8C41 //CJK UNIFIED IDEOGRAPH - ,0xFCC4 ,0x95CA //CJK UNIFIED IDEOGRAPH - ,0xFCC5 ,0x51F0 //CJK UNIFIED IDEOGRAPH - ,0xFCC6 ,0x5E4C //CJK UNIFIED IDEOGRAPH - ,0xFCC7 ,0x5FA8 //CJK UNIFIED IDEOGRAPH - ,0xFCC8 ,0x604D //CJK UNIFIED IDEOGRAPH - ,0xFCC9 ,0x60F6 //CJK UNIFIED IDEOGRAPH - ,0xFCCA ,0x6130 //CJK UNIFIED IDEOGRAPH - ,0xFCCB ,0x614C //CJK UNIFIED IDEOGRAPH - ,0xFCCC ,0x6643 //CJK UNIFIED IDEOGRAPH - ,0xFCCD ,0x6644 //CJK UNIFIED IDEOGRAPH - ,0xFCCE ,0x69A5 //CJK UNIFIED IDEOGRAPH - ,0xFCCF ,0x6CC1 //CJK UNIFIED IDEOGRAPH - ,0xFCD0 ,0x6E5F //CJK UNIFIED IDEOGRAPH - ,0xFCD1 ,0x6EC9 //CJK UNIFIED IDEOGRAPH - ,0xFCD2 ,0x6F62 //CJK UNIFIED IDEOGRAPH - ,0xFCD3 ,0x714C //CJK UNIFIED IDEOGRAPH - ,0xFCD4 ,0x749C //CJK UNIFIED IDEOGRAPH - ,0xFCD5 ,0x7687 //CJK UNIFIED IDEOGRAPH - ,0xFCD6 ,0x7BC1 //CJK UNIFIED IDEOGRAPH - ,0xFCD7 ,0x7C27 //CJK UNIFIED IDEOGRAPH - ,0xFCD8 ,0x8352 //CJK UNIFIED IDEOGRAPH - ,0xFCD9 ,0x8757 //CJK UNIFIED IDEOGRAPH - ,0xFCDA ,0x9051 //CJK UNIFIED IDEOGRAPH - ,0xFCDB ,0x968D //CJK UNIFIED IDEOGRAPH - ,0xFCDC ,0x9EC3 //CJK UNIFIED IDEOGRAPH - ,0xFCDD ,0x532F //CJK UNIFIED IDEOGRAPH - ,0xFCDE ,0x56DE //CJK UNIFIED IDEOGRAPH - ,0xFCDF ,0x5EFB //CJK UNIFIED IDEOGRAPH - ,0xFCE0 ,0x5F8A //CJK UNIFIED IDEOGRAPH - ,0xFCE1 ,0x6062 //CJK UNIFIED IDEOGRAPH - ,0xFCE2 ,0x6094 //CJK UNIFIED IDEOGRAPH - ,0xFCE3 ,0x61F7 //CJK UNIFIED IDEOGRAPH - ,0xFCE4 ,0x6666 //CJK UNIFIED IDEOGRAPH - ,0xFCE5 ,0x6703 //CJK UNIFIED IDEOGRAPH - ,0xFCE6 ,0x6A9C //CJK UNIFIED IDEOGRAPH - ,0xFCE7 ,0x6DEE //CJK UNIFIED IDEOGRAPH - ,0xFCE8 ,0x6FAE //CJK UNIFIED IDEOGRAPH - ,0xFCE9 ,0x7070 //CJK UNIFIED IDEOGRAPH - ,0xFCEA ,0x736A //CJK UNIFIED IDEOGRAPH - ,0xFCEB ,0x7E6A //CJK UNIFIED IDEOGRAPH - ,0xFCEC ,0x81BE //CJK UNIFIED IDEOGRAPH - ,0xFCED ,0x8334 //CJK UNIFIED IDEOGRAPH - ,0xFCEE ,0x86D4 //CJK UNIFIED IDEOGRAPH - ,0xFCEF ,0x8AA8 //CJK UNIFIED IDEOGRAPH - ,0xFCF0 ,0x8CC4 //CJK UNIFIED IDEOGRAPH - ,0xFCF1 ,0x5283 //CJK UNIFIED IDEOGRAPH - ,0xFCF2 ,0x7372 //CJK UNIFIED IDEOGRAPH - ,0xFCF3 ,0x5B96 //CJK UNIFIED IDEOGRAPH - ,0xFCF4 ,0x6A6B //CJK UNIFIED IDEOGRAPH - ,0xFCF5 ,0x9404 //CJK UNIFIED IDEOGRAPH - ,0xFCF6 ,0x54EE //CJK UNIFIED IDEOGRAPH - ,0xFCF7 ,0x5686 //CJK UNIFIED IDEOGRAPH - ,0xFCF8 ,0x5B5D //CJK UNIFIED IDEOGRAPH - ,0xFCF9 ,0x6548 //CJK UNIFIED IDEOGRAPH - ,0xFCFA ,0x6585 //CJK UNIFIED IDEOGRAPH - ,0xFCFB ,0x66C9 //CJK UNIFIED IDEOGRAPH - ,0xFCFC ,0x689F //CJK UNIFIED IDEOGRAPH - ,0xFCFD ,0x6D8D //CJK UNIFIED IDEOGRAPH - ,0xFCFE ,0x6DC6 //CJK UNIFIED IDEOGRAPH - ,0xFDA1 ,0x723B //CJK UNIFIED IDEOGRAPH - ,0xFDA2 ,0x80B4 //CJK UNIFIED IDEOGRAPH - ,0xFDA3 ,0x9175 //CJK UNIFIED IDEOGRAPH - ,0xFDA4 ,0x9A4D //CJK UNIFIED IDEOGRAPH - ,0xFDA5 ,0x4FAF //CJK UNIFIED IDEOGRAPH - ,0xFDA6 ,0x5019 //CJK UNIFIED IDEOGRAPH - ,0xFDA7 ,0x539A //CJK UNIFIED IDEOGRAPH - ,0xFDA8 ,0x540E //CJK UNIFIED IDEOGRAPH - ,0xFDA9 ,0x543C //CJK UNIFIED IDEOGRAPH - ,0xFDAA ,0x5589 //CJK UNIFIED IDEOGRAPH - ,0xFDAB ,0x55C5 //CJK UNIFIED IDEOGRAPH - ,0xFDAC ,0x5E3F //CJK UNIFIED IDEOGRAPH - ,0xFDAD ,0x5F8C //CJK UNIFIED IDEOGRAPH - ,0xFDAE ,0x673D //CJK UNIFIED IDEOGRAPH - ,0xFDAF ,0x7166 //CJK UNIFIED IDEOGRAPH - ,0xFDB0 ,0x73DD //CJK UNIFIED IDEOGRAPH - ,0xFDB1 ,0x9005 //CJK UNIFIED IDEOGRAPH - ,0xFDB2 ,0x52DB //CJK UNIFIED IDEOGRAPH - ,0xFDB3 ,0x52F3 //CJK UNIFIED IDEOGRAPH - ,0xFDB4 ,0x5864 //CJK UNIFIED IDEOGRAPH - ,0xFDB5 ,0x58CE //CJK UNIFIED IDEOGRAPH - ,0xFDB6 ,0x7104 //CJK UNIFIED IDEOGRAPH - ,0xFDB7 ,0x718F //CJK UNIFIED IDEOGRAPH - ,0xFDB8 ,0x71FB //CJK UNIFIED IDEOGRAPH - ,0xFDB9 ,0x85B0 //CJK UNIFIED IDEOGRAPH - ,0xFDBA ,0x8A13 //CJK UNIFIED IDEOGRAPH - ,0xFDBB ,0x6688 //CJK UNIFIED IDEOGRAPH - ,0xFDBC ,0x85A8 //CJK UNIFIED IDEOGRAPH - ,0xFDBD ,0x55A7 //CJK UNIFIED IDEOGRAPH - ,0xFDBE ,0x6684 //CJK UNIFIED IDEOGRAPH - ,0xFDBF ,0x714A //CJK UNIFIED IDEOGRAPH - ,0xFDC0 ,0x8431 //CJK UNIFIED IDEOGRAPH - ,0xFDC1 ,0x5349 //CJK UNIFIED IDEOGRAPH - ,0xFDC2 ,0x5599 //CJK UNIFIED IDEOGRAPH - ,0xFDC3 ,0x6BC1 //CJK UNIFIED IDEOGRAPH - ,0xFDC4 ,0x5F59 //CJK UNIFIED IDEOGRAPH - ,0xFDC5 ,0x5FBD //CJK UNIFIED IDEOGRAPH - ,0xFDC6 ,0x63EE //CJK UNIFIED IDEOGRAPH - ,0xFDC7 ,0x6689 //CJK UNIFIED IDEOGRAPH - ,0xFDC8 ,0x7147 //CJK UNIFIED IDEOGRAPH - ,0xFDC9 ,0x8AF1 //CJK UNIFIED IDEOGRAPH - ,0xFDCA ,0x8F1D //CJK UNIFIED IDEOGRAPH - ,0xFDCB ,0x9EBE //CJK UNIFIED IDEOGRAPH - ,0xFDCC ,0x4F11 //CJK UNIFIED IDEOGRAPH - ,0xFDCD ,0x643A //CJK UNIFIED IDEOGRAPH - ,0xFDCE ,0x70CB //CJK UNIFIED IDEOGRAPH - ,0xFDCF ,0x7566 //CJK UNIFIED IDEOGRAPH - ,0xFDD0 ,0x8667 //CJK UNIFIED IDEOGRAPH - ,0xFDD1 ,0x6064 //CJK UNIFIED IDEOGRAPH - ,0xFDD2 ,0x8B4E //CJK UNIFIED IDEOGRAPH - ,0xFDD3 ,0x9DF8 //CJK UNIFIED IDEOGRAPH - ,0xFDD4 ,0x5147 //CJK UNIFIED IDEOGRAPH - ,0xFDD5 ,0x51F6 //CJK UNIFIED IDEOGRAPH - ,0xFDD6 ,0x5308 //CJK UNIFIED IDEOGRAPH - ,0xFDD7 ,0x6D36 //CJK UNIFIED IDEOGRAPH - ,0xFDD8 ,0x80F8 //CJK UNIFIED IDEOGRAPH - ,0xFDD9 ,0x9ED1 //CJK UNIFIED IDEOGRAPH - ,0xFDDA ,0x6615 //CJK UNIFIED IDEOGRAPH - ,0xFDDB ,0x6B23 //CJK UNIFIED IDEOGRAPH - ,0xFDDC ,0x7098 //CJK UNIFIED IDEOGRAPH - ,0xFDDD ,0x75D5 //CJK UNIFIED IDEOGRAPH - ,0xFDDE ,0x5403 //CJK UNIFIED IDEOGRAPH - ,0xFDDF ,0x5C79 //CJK UNIFIED IDEOGRAPH - ,0xFDE0 ,0x7D07 //CJK UNIFIED IDEOGRAPH - ,0xFDE1 ,0x8A16 //CJK UNIFIED IDEOGRAPH - ,0xFDE2 ,0x6B20 //CJK UNIFIED IDEOGRAPH - ,0xFDE3 ,0x6B3D //CJK UNIFIED IDEOGRAPH - ,0xFDE4 ,0x6B46 //CJK UNIFIED IDEOGRAPH - ,0xFDE5 ,0x5438 //CJK UNIFIED IDEOGRAPH - ,0xFDE6 ,0x6070 //CJK UNIFIED IDEOGRAPH - ,0xFDE7 ,0x6D3D //CJK UNIFIED IDEOGRAPH - ,0xFDE8 ,0x7FD5 //CJK UNIFIED IDEOGRAPH - ,0xFDE9 ,0x8208 //CJK UNIFIED IDEOGRAPH - ,0xFDEA ,0x50D6 //CJK UNIFIED IDEOGRAPH - ,0xFDEB ,0x51DE //CJK UNIFIED IDEOGRAPH - ,0xFDEC ,0x559C //CJK UNIFIED IDEOGRAPH - ,0xFDED ,0x566B //CJK UNIFIED IDEOGRAPH - ,0xFDEE ,0x56CD //CJK UNIFIED IDEOGRAPH - ,0xFDEF ,0x59EC //CJK UNIFIED IDEOGRAPH - ,0xFDF0 ,0x5B09 //CJK UNIFIED IDEOGRAPH - ,0xFDF1 ,0x5E0C //CJK UNIFIED IDEOGRAPH - ,0xFDF2 ,0x6199 //CJK UNIFIED IDEOGRAPH - ,0xFDF3 ,0x6198 //CJK UNIFIED IDEOGRAPH - ,0xFDF4 ,0x6231 //CJK UNIFIED IDEOGRAPH - ,0xFDF5 ,0x665E //CJK UNIFIED IDEOGRAPH - ,0xFDF6 ,0x66E6 //CJK UNIFIED IDEOGRAPH - ,0xFDF7 ,0x7199 //CJK UNIFIED IDEOGRAPH - ,0xFDF8 ,0x71B9 //CJK UNIFIED IDEOGRAPH - ,0xFDF9 ,0x71BA //CJK UNIFIED IDEOGRAPH - ,0xFDFA ,0x72A7 //CJK UNIFIED IDEOGRAPH - ,0xFDFB ,0x79A7 //CJK UNIFIED IDEOGRAPH - ,0xFDFC ,0x7A00 //CJK UNIFIED IDEOGRAPH - ,0xFDFD ,0x7FB2 //CJK UNIFIED IDEOGRAPH - ,0xFDFE ,0x8A70 //CJK UNIFIED IDEOGRAPH - ,-1,-1 -}; -// clang-format on - -NSEncodingRegistration(cp949, kCFStringEncodingDOSKorean); diff --git a/Foundation/NSString/Encoding/CP950.h b/Foundation/NSString/Encoding/CP950.h deleted file mode 100644 index 78d999cd..00000000 --- a/Foundation/NSString/Encoding/CP950.h +++ /dev/null @@ -1,13767 +0,0 @@ -// clang-format off -// cp950 to Unicode table -// Derived from the tables available at unicode.org - -static uint16_t cp950[] = { - 0x00 ,0x0000 //NULL - ,0x01 ,0x0001 //START OF HEADING - ,0x02 ,0x0002 //START OF TEXT - ,0x03 ,0x0003 //END OF TEXT - ,0x04 ,0x0004 //END OF TRANSMISSION - ,0x05 ,0x0005 //ENQUIRY - ,0x06 ,0x0006 //ACKNOWLEDGE - ,0x07 ,0x0007 //BELL - ,0x08 ,0x0008 //BACKSPACE - ,0x09 ,0x0009 //HORIZONTAL TABULATION - ,0x0A ,0x000A //LINE FEED - ,0x0B ,0x000B //VERTICAL TABULATION - ,0x0C ,0x000C //FORM FEED - ,0x0D ,0x000D //CARRIAGE RETURN - ,0x0E ,0x000E //SHIFT OUT - ,0x0F ,0x000F //SHIFT IN - ,0x10 ,0x0010 //DATA LINK ESCAPE - ,0x11 ,0x0011 //DEVICE CONTROL ONE - ,0x12 ,0x0012 //DEVICE CONTROL TWO - ,0x13 ,0x0013 //DEVICE CONTROL THREE - ,0x14 ,0x0014 //DEVICE CONTROL FOUR - ,0x15 ,0x0015 //NEGATIVE ACKNOWLEDGE - ,0x16 ,0x0016 //SYNCHRONOUS IDLE - ,0x17 ,0x0017 //END OF TRANSMISSION BLOCK - ,0x18 ,0x0018 //CANCEL - ,0x19 ,0x0019 //END OF MEDIUM - ,0x1A ,0x001A //SUBSTITUTE - ,0x1B ,0x001B //ESCAPE - ,0x1C ,0x001C //FILE SEPARATOR - ,0x1D ,0x001D //GROUP SEPARATOR - ,0x1E ,0x001E //RECORD SEPARATOR - ,0x1F ,0x001F //UNIT SEPARATOR - ,0x20 ,0x0020 //SPACE - ,0x21 ,0x0021 //EXCLAMATION MARK - ,0x22 ,0x0022 //QUOTATION MARK - ,0x23 ,0x0023 //NUMBER SIGN - ,0x24 ,0x0024 //DOLLAR SIGN - ,0x25 ,0x0025 //PERCENT SIGN - ,0x26 ,0x0026 //AMPERSAND - ,0x27 ,0x0027 //APOSTROPHE - ,0x28 ,0x0028 //LEFT PARENTHESIS - ,0x29 ,0x0029 //RIGHT PARENTHESIS - ,0x2A ,0x002A //ASTERISK - ,0x2B ,0x002B //PLUS SIGN - ,0x2C ,0x002C //COMMA - ,0x2D ,0x002D //HYPHEN-MINUS - ,0x2E ,0x002E //FULL STOP - ,0x2F ,0x002F //SOLIDUS - ,0x30 ,0x0030 //DIGIT ZERO - ,0x31 ,0x0031 //DIGIT ONE - ,0x32 ,0x0032 //DIGIT TWO - ,0x33 ,0x0033 //DIGIT THREE - ,0x34 ,0x0034 //DIGIT FOUR - ,0x35 ,0x0035 //DIGIT FIVE - ,0x36 ,0x0036 //DIGIT SIX - ,0x37 ,0x0037 //DIGIT SEVEN - ,0x38 ,0x0038 //DIGIT EIGHT - ,0x39 ,0x0039 //DIGIT NINE - ,0x3A ,0x003A //COLON - ,0x3B ,0x003B //SEMICOLON - ,0x3C ,0x003C //LESS-THAN SIGN - ,0x3D ,0x003D //EQUALS SIGN - ,0x3E ,0x003E //GREATER-THAN SIGN - ,0x3F ,0x003F //QUESTION MARK - ,0x40 ,0x0040 //COMMERCIAL AT - ,0x41 ,0x0041 //LATIN CAPITAL LETTER A - ,0x42 ,0x0042 //LATIN CAPITAL LETTER B - ,0x43 ,0x0043 //LATIN CAPITAL LETTER C - ,0x44 ,0x0044 //LATIN CAPITAL LETTER D - ,0x45 ,0x0045 //LATIN CAPITAL LETTER E - ,0x46 ,0x0046 //LATIN CAPITAL LETTER F - ,0x47 ,0x0047 //LATIN CAPITAL LETTER G - ,0x48 ,0x0048 //LATIN CAPITAL LETTER H - ,0x49 ,0x0049 //LATIN CAPITAL LETTER I - ,0x4A ,0x004A //LATIN CAPITAL LETTER J - ,0x4B ,0x004B //LATIN CAPITAL LETTER K - ,0x4C ,0x004C //LATIN CAPITAL LETTER L - ,0x4D ,0x004D //LATIN CAPITAL LETTER M - ,0x4E ,0x004E //LATIN CAPITAL LETTER N - ,0x4F ,0x004F //LATIN CAPITAL LETTER O - ,0x50 ,0x0050 //LATIN CAPITAL LETTER P - ,0x51 ,0x0051 //LATIN CAPITAL LETTER Q - ,0x52 ,0x0052 //LATIN CAPITAL LETTER R - ,0x53 ,0x0053 //LATIN CAPITAL LETTER S - ,0x54 ,0x0054 //LATIN CAPITAL LETTER T - ,0x55 ,0x0055 //LATIN CAPITAL LETTER U - ,0x56 ,0x0056 //LATIN CAPITAL LETTER V - ,0x57 ,0x0057 //LATIN CAPITAL LETTER W - ,0x58 ,0x0058 //LATIN CAPITAL LETTER X - ,0x59 ,0x0059 //LATIN CAPITAL LETTER Y - ,0x5A ,0x005A //LATIN CAPITAL LETTER Z - ,0x5B ,0x005B //LEFT SQUARE BRACKET - ,0x5C ,0x005C //REVERSE SOLIDUS - ,0x5D ,0x005D //RIGHT SQUARE BRACKET - ,0x5E ,0x005E //CIRCUMFLEX ACCENT - ,0x5F ,0x005F //LOW LINE - ,0x60 ,0x0060 //GRAVE ACCENT - ,0x61 ,0x0061 //LATIN SMALL LETTER A - ,0x62 ,0x0062 //LATIN SMALL LETTER B - ,0x63 ,0x0063 //LATIN SMALL LETTER C - ,0x64 ,0x0064 //LATIN SMALL LETTER D - ,0x65 ,0x0065 //LATIN SMALL LETTER E - ,0x66 ,0x0066 //LATIN SMALL LETTER F - ,0x67 ,0x0067 //LATIN SMALL LETTER G - ,0x68 ,0x0068 //LATIN SMALL LETTER H - ,0x69 ,0x0069 //LATIN SMALL LETTER I - ,0x6A ,0x006A //LATIN SMALL LETTER J - ,0x6B ,0x006B //LATIN SMALL LETTER K - ,0x6C ,0x006C //LATIN SMALL LETTER L - ,0x6D ,0x006D //LATIN SMALL LETTER M - ,0x6E ,0x006E //LATIN SMALL LETTER N - ,0x6F ,0x006F //LATIN SMALL LETTER O - ,0x70 ,0x0070 //LATIN SMALL LETTER P - ,0x71 ,0x0071 //LATIN SMALL LETTER Q - ,0x72 ,0x0072 //LATIN SMALL LETTER R - ,0x73 ,0x0073 //LATIN SMALL LETTER S - ,0x74 ,0x0074 //LATIN SMALL LETTER T - ,0x75 ,0x0075 //LATIN SMALL LETTER U - ,0x76 ,0x0076 //LATIN SMALL LETTER V - ,0x77 ,0x0077 //LATIN SMALL LETTER W - ,0x78 ,0x0078 //LATIN SMALL LETTER X - ,0x79 ,0x0079 //LATIN SMALL LETTER Y - ,0x7A ,0x007A //LATIN SMALL LETTER Z - ,0x7B ,0x007B //LEFT CURLY BRACKET - ,0x7C ,0x007C //VERTICAL LINE - ,0x7D ,0x007D //RIGHT CURLY BRACKET - ,0x7E ,0x007E //TILDE - ,0x7F ,0x007F //DELETE - ,0x81 ,0xFFFF //DBCS LEAD BYTE - ,0x82 ,0xFFFF //DBCS LEAD BYTE - ,0x83 ,0xFFFF //DBCS LEAD BYTE - ,0x84 ,0xFFFF //DBCS LEAD BYTE - ,0x85 ,0xFFFF //DBCS LEAD BYTE - ,0x86 ,0xFFFF //DBCS LEAD BYTE - ,0x87 ,0xFFFF //DBCS LEAD BYTE - ,0x88 ,0xFFFF //DBCS LEAD BYTE - ,0x89 ,0xFFFF //DBCS LEAD BYTE - ,0x8A ,0xFFFF //DBCS LEAD BYTE - ,0x8B ,0xFFFF //DBCS LEAD BYTE - ,0x8C ,0xFFFF //DBCS LEAD BYTE - ,0x8D ,0xFFFF //DBCS LEAD BYTE - ,0x8E ,0xFFFF //DBCS LEAD BYTE - ,0x8F ,0xFFFF //DBCS LEAD BYTE - ,0x90 ,0xFFFF //DBCS LEAD BYTE - ,0x91 ,0xFFFF //DBCS LEAD BYTE - ,0x92 ,0xFFFF //DBCS LEAD BYTE - ,0x93 ,0xFFFF //DBCS LEAD BYTE - ,0x94 ,0xFFFF //DBCS LEAD BYTE - ,0x95 ,0xFFFF //DBCS LEAD BYTE - ,0x96 ,0xFFFF //DBCS LEAD BYTE - ,0x97 ,0xFFFF //DBCS LEAD BYTE - ,0x98 ,0xFFFF //DBCS LEAD BYTE - ,0x99 ,0xFFFF //DBCS LEAD BYTE - ,0x9A ,0xFFFF //DBCS LEAD BYTE - ,0x9B ,0xFFFF //DBCS LEAD BYTE - ,0x9C ,0xFFFF //DBCS LEAD BYTE - ,0x9D ,0xFFFF //DBCS LEAD BYTE - ,0x9E ,0xFFFF //DBCS LEAD BYTE - ,0x9F ,0xFFFF //DBCS LEAD BYTE - ,0xA0 ,0xFFFF //DBCS LEAD BYTE - ,0xA1 ,0xFFFF //DBCS LEAD BYTE - ,0xA2 ,0xFFFF //DBCS LEAD BYTE - ,0xA3 ,0xFFFF //DBCS LEAD BYTE - ,0xA4 ,0xFFFF //DBCS LEAD BYTE - ,0xA5 ,0xFFFF //DBCS LEAD BYTE - ,0xA6 ,0xFFFF //DBCS LEAD BYTE - ,0xA7 ,0xFFFF //DBCS LEAD BYTE - ,0xA8 ,0xFFFF //DBCS LEAD BYTE - ,0xA9 ,0xFFFF //DBCS LEAD BYTE - ,0xAA ,0xFFFF //DBCS LEAD BYTE - ,0xAB ,0xFFFF //DBCS LEAD BYTE - ,0xAC ,0xFFFF //DBCS LEAD BYTE - ,0xAD ,0xFFFF //DBCS LEAD BYTE - ,0xAE ,0xFFFF //DBCS LEAD BYTE - ,0xAF ,0xFFFF //DBCS LEAD BYTE - ,0xB0 ,0xFFFF //DBCS LEAD BYTE - ,0xB1 ,0xFFFF //DBCS LEAD BYTE - ,0xB2 ,0xFFFF //DBCS LEAD BYTE - ,0xB3 ,0xFFFF //DBCS LEAD BYTE - ,0xB4 ,0xFFFF //DBCS LEAD BYTE - ,0xB5 ,0xFFFF //DBCS LEAD BYTE - ,0xB6 ,0xFFFF //DBCS LEAD BYTE - ,0xB7 ,0xFFFF //DBCS LEAD BYTE - ,0xB8 ,0xFFFF //DBCS LEAD BYTE - ,0xB9 ,0xFFFF //DBCS LEAD BYTE - ,0xBA ,0xFFFF //DBCS LEAD BYTE - ,0xBB ,0xFFFF //DBCS LEAD BYTE - ,0xBC ,0xFFFF //DBCS LEAD BYTE - ,0xBD ,0xFFFF //DBCS LEAD BYTE - ,0xBE ,0xFFFF //DBCS LEAD BYTE - ,0xBF ,0xFFFF //DBCS LEAD BYTE - ,0xC0 ,0xFFFF //DBCS LEAD BYTE - ,0xC1 ,0xFFFF //DBCS LEAD BYTE - ,0xC2 ,0xFFFF //DBCS LEAD BYTE - ,0xC3 ,0xFFFF //DBCS LEAD BYTE - ,0xC4 ,0xFFFF //DBCS LEAD BYTE - ,0xC5 ,0xFFFF //DBCS LEAD BYTE - ,0xC6 ,0xFFFF //DBCS LEAD BYTE - ,0xC7 ,0xFFFF //DBCS LEAD BYTE - ,0xC8 ,0xFFFF //DBCS LEAD BYTE - ,0xC9 ,0xFFFF //DBCS LEAD BYTE - ,0xCA ,0xFFFF //DBCS LEAD BYTE - ,0xCB ,0xFFFF //DBCS LEAD BYTE - ,0xCC ,0xFFFF //DBCS LEAD BYTE - ,0xCD ,0xFFFF //DBCS LEAD BYTE - ,0xCE ,0xFFFF //DBCS LEAD BYTE - ,0xCF ,0xFFFF //DBCS LEAD BYTE - ,0xD0 ,0xFFFF //DBCS LEAD BYTE - ,0xD1 ,0xFFFF //DBCS LEAD BYTE - ,0xD2 ,0xFFFF //DBCS LEAD BYTE - ,0xD3 ,0xFFFF //DBCS LEAD BYTE - ,0xD4 ,0xFFFF //DBCS LEAD BYTE - ,0xD5 ,0xFFFF //DBCS LEAD BYTE - ,0xD6 ,0xFFFF //DBCS LEAD BYTE - ,0xD7 ,0xFFFF //DBCS LEAD BYTE - ,0xD8 ,0xFFFF //DBCS LEAD BYTE - ,0xD9 ,0xFFFF //DBCS LEAD BYTE - ,0xDA ,0xFFFF //DBCS LEAD BYTE - ,0xDB ,0xFFFF //DBCS LEAD BYTE - ,0xDC ,0xFFFF //DBCS LEAD BYTE - ,0xDD ,0xFFFF //DBCS LEAD BYTE - ,0xDE ,0xFFFF //DBCS LEAD BYTE - ,0xDF ,0xFFFF //DBCS LEAD BYTE - ,0xE0 ,0xFFFF //DBCS LEAD BYTE - ,0xE1 ,0xFFFF //DBCS LEAD BYTE - ,0xE2 ,0xFFFF //DBCS LEAD BYTE - ,0xE3 ,0xFFFF //DBCS LEAD BYTE - ,0xE4 ,0xFFFF //DBCS LEAD BYTE - ,0xE5 ,0xFFFF //DBCS LEAD BYTE - ,0xE6 ,0xFFFF //DBCS LEAD BYTE - ,0xE7 ,0xFFFF //DBCS LEAD BYTE - ,0xE8 ,0xFFFF //DBCS LEAD BYTE - ,0xE9 ,0xFFFF //DBCS LEAD BYTE - ,0xEA ,0xFFFF //DBCS LEAD BYTE - ,0xEB ,0xFFFF //DBCS LEAD BYTE - ,0xEC ,0xFFFF //DBCS LEAD BYTE - ,0xED ,0xFFFF //DBCS LEAD BYTE - ,0xEE ,0xFFFF //DBCS LEAD BYTE - ,0xEF ,0xFFFF //DBCS LEAD BYTE - ,0xF0 ,0xFFFF //DBCS LEAD BYTE - ,0xF1 ,0xFFFF //DBCS LEAD BYTE - ,0xF2 ,0xFFFF //DBCS LEAD BYTE - ,0xF3 ,0xFFFF //DBCS LEAD BYTE - ,0xF4 ,0xFFFF //DBCS LEAD BYTE - ,0xF5 ,0xFFFF //DBCS LEAD BYTE - ,0xF6 ,0xFFFF //DBCS LEAD BYTE - ,0xF7 ,0xFFFF //DBCS LEAD BYTE - ,0xF8 ,0xFFFF //DBCS LEAD BYTE - ,0xF9 ,0xFFFF //DBCS LEAD BYTE - ,0xFA ,0xFFFF //DBCS LEAD BYTE - ,0xFB ,0xFFFF //DBCS LEAD BYTE - ,0xFC ,0xFFFF //DBCS LEAD BYTE - ,0xFD ,0xFFFF //DBCS LEAD BYTE - ,0xFE ,0xFFFF //DBCS LEAD BYTE - ,0xA140 ,0x3000 //IDEOGRAPHIC SPACE - ,0xA141 ,0xFF0C //FULLWIDTH COMMA - ,0xA142 ,0x3001 //IDEOGRAPHIC COMMA - ,0xA143 ,0x3002 //IDEOGRAPHIC FULL STOP - ,0xA144 ,0xFF0E //FULLWIDTH FULL STOP - ,0xA145 ,0x2027 //HYPHENATION POINT - ,0xA146 ,0xFF1B //FULLWIDTH SEMICOLON - ,0xA147 ,0xFF1A //FULLWIDTH COLON - ,0xA148 ,0xFF1F //FULLWIDTH QUESTION MARK - ,0xA149 ,0xFF01 //FULLWIDTH EXCLAMATION MARK - ,0xA14A ,0xFE30 //PRESENTATION FORM FOR VERTICAL TWO DOT LEADER - ,0xA14B ,0x2026 //HORIZONTAL ELLIPSIS - ,0xA14C ,0x2025 //TWO DOT LEADER - ,0xA14D ,0xFE50 //SMALL COMMA - ,0xA14E ,0xFE51 //SMALL IDEOGRAPHIC COMMA - ,0xA14F ,0xFE52 //SMALL FULL STOP - ,0xA150 ,0x00B7 //MIDDLE DOT - ,0xA151 ,0xFE54 //SMALL SEMICOLON - ,0xA152 ,0xFE55 //SMALL COLON - ,0xA153 ,0xFE56 //SMALL QUESTION MARK - ,0xA154 ,0xFE57 //SMALL EXCLAMATION MARK - ,0xA155 ,0xFF5C //FULLWIDTH VERTICAL LINE - ,0xA156 ,0x2013 //EN DASH - ,0xA157 ,0xFE31 //PRESENTATION FORM FOR VERTICAL EM DASH - ,0xA158 ,0x2014 //EM DASH - ,0xA159 ,0xFE33 //PRESENTATION FORM FOR VERTICAL LOW LINE - ,0xA15A ,0x2574 //BOX DRAWINGS LIGHT LEFT - ,0xA15B ,0xFE34 //PRESENTATION FORM FOR VERTICAL WAVY LOW LINE - ,0xA15C ,0xFE4F //WAVY LOW LINE - ,0xA15D ,0xFF08 //FULLWIDTH LEFT PARENTHESIS - ,0xA15E ,0xFF09 //FULLWIDTH RIGHT PARENTHESIS - ,0xA15F ,0xFE35 //PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS - ,0xA160 ,0xFE36 //PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS - ,0xA161 ,0xFF5B //FULLWIDTH LEFT CURLY BRACKET - ,0xA162 ,0xFF5D //FULLWIDTH RIGHT CURLY BRACKET - ,0xA163 ,0xFE37 //PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET - ,0xA164 ,0xFE38 //PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET - ,0xA165 ,0x3014 //LEFT TORTOISE SHELL BRACKET - ,0xA166 ,0x3015 //RIGHT TORTOISE SHELL BRACKET - ,0xA167 ,0xFE39 //PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET - ,0xA168 ,0xFE3A //PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET - ,0xA169 ,0x3010 //LEFT BLACK LENTICULAR BRACKET - ,0xA16A ,0x3011 //RIGHT BLACK LENTICULAR BRACKET - ,0xA16B ,0xFE3B //PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET - ,0xA16C ,0xFE3C //PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET - ,0xA16D ,0x300A //LEFT DOUBLE ANGLE BRACKET - ,0xA16E ,0x300B //RIGHT DOUBLE ANGLE BRACKET - ,0xA16F ,0xFE3D //PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET - ,0xA170 ,0xFE3E //PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET - ,0xA171 ,0x3008 //LEFT ANGLE BRACKET - ,0xA172 ,0x3009 //RIGHT ANGLE BRACKET - ,0xA173 ,0xFE3F //PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET - ,0xA174 ,0xFE40 //PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET - ,0xA175 ,0x300C //LEFT CORNER BRACKET - ,0xA176 ,0x300D //RIGHT CORNER BRACKET - ,0xA177 ,0xFE41 //PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET - ,0xA178 ,0xFE42 //PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET - ,0xA179 ,0x300E //LEFT WHITE CORNER BRACKET - ,0xA17A ,0x300F //RIGHT WHITE CORNER BRACKET - ,0xA17B ,0xFE43 //PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET - ,0xA17C ,0xFE44 //PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET - ,0xA17D ,0xFE59 //SMALL LEFT PARENTHESIS - ,0xA17E ,0xFE5A //SMALL RIGHT PARENTHESIS - ,0xA1A1 ,0xFE5B //SMALL LEFT CURLY BRACKET - ,0xA1A2 ,0xFE5C //SMALL RIGHT CURLY BRACKET - ,0xA1A3 ,0xFE5D //SMALL LEFT TORTOISE SHELL BRACKET - ,0xA1A4 ,0xFE5E //SMALL RIGHT TORTOISE SHELL BRACKET - ,0xA1A5 ,0x2018 //LEFT SINGLE QUOTATION MARK - ,0xA1A6 ,0x2019 //RIGHT SINGLE QUOTATION MARK - ,0xA1A7 ,0x201C //LEFT DOUBLE QUOTATION MARK - ,0xA1A8 ,0x201D //RIGHT DOUBLE QUOTATION MARK - ,0xA1A9 ,0x301D //REVERSED DOUBLE PRIME QUOTATION MARK - ,0xA1AA ,0x301E //DOUBLE PRIME QUOTATION MARK - ,0xA1AB ,0x2035 //REVERSED PRIME - ,0xA1AC ,0x2032 //PRIME - ,0xA1AD ,0xFF03 //FULLWIDTH NUMBER SIGN - ,0xA1AE ,0xFF06 //FULLWIDTH AMPERSAND - ,0xA1AF ,0xFF0A //FULLWIDTH ASTERISK - ,0xA1B0 ,0x203B //REFERENCE MARK - ,0xA1B1 ,0x00A7 //SECTION SIGN - ,0xA1B2 ,0x3003 //DITTO MARK - ,0xA1B3 ,0x25CB //WHITE CIRCLE - ,0xA1B4 ,0x25CF //BLACK CIRCLE - ,0xA1B5 ,0x25B3 //WHITE UP-POINTING TRIANGLE - ,0xA1B6 ,0x25B2 //BLACK UP-POINTING TRIANGLE - ,0xA1B7 ,0x25CE //BULLSEYE - ,0xA1B8 ,0x2606 //WHITE STAR - ,0xA1B9 ,0x2605 //BLACK STAR - ,0xA1BA ,0x25C7 //WHITE DIAMOND - ,0xA1BB ,0x25C6 //BLACK DIAMOND - ,0xA1BC ,0x25A1 //WHITE SQUARE - ,0xA1BD ,0x25A0 //BLACK SQUARE - ,0xA1BE ,0x25BD //WHITE DOWN-POINTING TRIANGLE - ,0xA1BF ,0x25BC //BLACK DOWN-POINTING TRIANGLE - ,0xA1C0 ,0x32A3 //CIRCLED IDEOGRAPH CORRECT - ,0xA1C1 ,0x2105 //CARE OF - ,0xA1C2 ,0x00AF //MACRON - ,0xA1C3 ,0xFFE3 //FULLWIDTH MACRON - ,0xA1C4 ,0xFF3F //FULLWIDTH LOW LINE - ,0xA1C5 ,0x02CD //MODIFIER LETTER LOW MACRON - ,0xA1C6 ,0xFE49 //DASHED OVERLINE - ,0xA1C7 ,0xFE4A //CENTRELINE OVERLINE - ,0xA1C8 ,0xFE4D //DASHED LOW LINE - ,0xA1C9 ,0xFE4E //CENTRELINE LOW LINE - ,0xA1CA ,0xFE4B //WAVY OVERLINE - ,0xA1CB ,0xFE4C //DOUBLE WAVY OVERLINE - ,0xA1CC ,0xFE5F //SMALL NUMBER SIGN - ,0xA1CD ,0xFE60 //SMALL AMPERSAND - ,0xA1CE ,0xFE61 //SMALL ASTERISK - ,0xA1CF ,0xFF0B //FULLWIDTH PLUS SIGN - ,0xA1D0 ,0xFF0D //FULLWIDTH HYPHEN-MINUS - ,0xA1D1 ,0x00D7 //MULTIPLICATION SIGN - ,0xA1D2 ,0x00F7 //DIVISION SIGN - ,0xA1D3 ,0x00B1 //PLUS-MINUS SIGN - ,0xA1D4 ,0x221A //SQUARE ROOT - ,0xA1D5 ,0xFF1C //FULLWIDTH LESS-THAN SIGN - ,0xA1D6 ,0xFF1E //FULLWIDTH GREATER-THAN SIGN - ,0xA1D7 ,0xFF1D //FULLWIDTH EQUALS SIGN - ,0xA1D8 ,0x2266 //LESS-THAN OVER EQUAL TO - ,0xA1D9 ,0x2267 //GREATER-THAN OVER EQUAL TO - ,0xA1DA ,0x2260 //NOT EQUAL TO - ,0xA1DB ,0x221E //INFINITY - ,0xA1DC ,0x2252 //APPROXIMATELY EQUAL TO OR THE IMAGE OF - ,0xA1DD ,0x2261 //IDENTICAL TO - ,0xA1DE ,0xFE62 //SMALL PLUS SIGN - ,0xA1DF ,0xFE63 //SMALL HYPHEN-MINUS - ,0xA1E0 ,0xFE64 //SMALL LESS-THAN SIGN - ,0xA1E1 ,0xFE65 //SMALL GREATER-THAN SIGN - ,0xA1E2 ,0xFE66 //SMALL EQUALS SIGN - ,0xA1E3 ,0xFF5E //FULLWIDTH TILDE - ,0xA1E4 ,0x2229 //INTERSECTION - ,0xA1E5 ,0x222A //UNION - ,0xA1E6 ,0x22A5 //UP TACK - ,0xA1E7 ,0x2220 //ANGLE - ,0xA1E8 ,0x221F //RIGHT ANGLE - ,0xA1E9 ,0x22BF //RIGHT TRIANGLE - ,0xA1EA ,0x33D2 //SQUARE LOG - ,0xA1EB ,0x33D1 //SQUARE LN - ,0xA1EC ,0x222B //INTEGRAL - ,0xA1ED ,0x222E //CONTOUR INTEGRAL - ,0xA1EE ,0x2235 //BECAUSE - ,0xA1EF ,0x2234 //THEREFORE - ,0xA1F0 ,0x2640 //FEMALE SIGN - ,0xA1F1 ,0x2642 //MALE SIGN - ,0xA1F2 ,0x2295 //CIRCLED PLUS - ,0xA1F3 ,0x2299 //CIRCLED DOT OPERATOR - ,0xA1F4 ,0x2191 //UPWARDS ARROW - ,0xA1F5 ,0x2193 //DOWNWARDS ARROW - ,0xA1F6 ,0x2190 //LEFTWARDS ARROW - ,0xA1F7 ,0x2192 //RIGHTWARDS ARROW - ,0xA1F8 ,0x2196 //NORTH WEST ARROW - ,0xA1F9 ,0x2197 //NORTH EAST ARROW - ,0xA1FA ,0x2199 //SOUTH WEST ARROW - ,0xA1FB ,0x2198 //SOUTH EAST ARROW - ,0xA1FC ,0x2225 //PARALLEL TO - ,0xA1FD ,0x2223 //DIVIDES - ,0xA1FE ,0xFF0F //FULLWIDTH SOLIDUS - ,0xA240 ,0xFF3C //FULLWIDTH REVERSE SOLIDUS - ,0xA241 ,0x2215 //DIVISION SLASH - ,0xA242 ,0xFE68 //SMALL REVERSE SOLIDUS - ,0xA243 ,0xFF04 //FULLWIDTH DOLLAR SIGN - ,0xA244 ,0xFFE5 //FULLWIDTH YEN SIGN - ,0xA245 ,0x3012 //POSTAL MARK - ,0xA246 ,0xFFE0 //FULLWIDTH CENT SIGN - ,0xA247 ,0xFFE1 //FULLWIDTH POUND SIGN - ,0xA248 ,0xFF05 //FULLWIDTH PERCENT SIGN - ,0xA249 ,0xFF20 //FULLWIDTH COMMERCIAL AT - ,0xA24A ,0x2103 //DEGREE CELSIUS - ,0xA24B ,0x2109 //DEGREE FAHRENHEIT - ,0xA24C ,0xFE69 //SMALL DOLLAR SIGN - ,0xA24D ,0xFE6A //SMALL PERCENT SIGN - ,0xA24E ,0xFE6B //SMALL COMMERCIAL AT - ,0xA24F ,0x33D5 //SQUARE MIL - ,0xA250 ,0x339C //SQUARE MM - ,0xA251 ,0x339D //SQUARE CM - ,0xA252 ,0x339E //SQUARE KM - ,0xA253 ,0x33CE //SQUARE KM CAPITAL - ,0xA254 ,0x33A1 //SQUARE M SQUARED - ,0xA255 ,0x338E //SQUARE MG - ,0xA256 ,0x338F //SQUARE KG - ,0xA257 ,0x33C4 //SQUARE CC - ,0xA258 ,0x00B0 //DEGREE SIGN - ,0xA259 ,0x5159 //CJK UNIFIED IDEOGRAPH - ,0xA25A ,0x515B //CJK UNIFIED IDEOGRAPH - ,0xA25B ,0x515E //CJK UNIFIED IDEOGRAPH - ,0xA25C ,0x515D //CJK UNIFIED IDEOGRAPH - ,0xA25D ,0x5161 //CJK UNIFIED IDEOGRAPH - ,0xA25E ,0x5163 //CJK UNIFIED IDEOGRAPH - ,0xA25F ,0x55E7 //CJK UNIFIED IDEOGRAPH - ,0xA260 ,0x74E9 //CJK UNIFIED IDEOGRAPH - ,0xA261 ,0x7CCE //CJK UNIFIED IDEOGRAPH - ,0xA262 ,0x2581 //LOWER ONE EIGHTH BLOCK - ,0xA263 ,0x2582 //LOWER ONE QUARTER BLOCK - ,0xA264 ,0x2583 //LOWER THREE EIGHTHS BLOCK - ,0xA265 ,0x2584 //LOWER HALF BLOCK - ,0xA266 ,0x2585 //LOWER FIVE EIGHTHS BLOCK - ,0xA267 ,0x2586 //LOWER THREE QUARTERS BLOCK - ,0xA268 ,0x2587 //LOWER SEVEN EIGHTHS BLOCK - ,0xA269 ,0x2588 //FULL BLOCK - ,0xA26A ,0x258F //LEFT ONE EIGHTH BLOCK - ,0xA26B ,0x258E //LEFT ONE QUARTER BLOCK - ,0xA26C ,0x258D //LEFT THREE EIGHTHS BLOCK - ,0xA26D ,0x258C //LEFT HALF BLOCK - ,0xA26E ,0x258B //LEFT FIVE EIGHTHS BLOCK - ,0xA26F ,0x258A //LEFT THREE QUARTERS BLOCK - ,0xA270 ,0x2589 //LEFT SEVEN EIGHTHS BLOCK - ,0xA271 ,0x253C //BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL - ,0xA272 ,0x2534 //BOX DRAWINGS LIGHT UP AND HORIZONTAL - ,0xA273 ,0x252C //BOX DRAWINGS LIGHT DOWN AND HORIZONTAL - ,0xA274 ,0x2524 //BOX DRAWINGS LIGHT VERTICAL AND LEFT - ,0xA275 ,0x251C //BOX DRAWINGS LIGHT VERTICAL AND RIGHT - ,0xA276 ,0x2594 //UPPER ONE EIGHTH BLOCK - ,0xA277 ,0x2500 //BOX DRAWINGS LIGHT HORIZONTAL - ,0xA278 ,0x2502 //BOX DRAWINGS LIGHT VERTICAL - ,0xA279 ,0x2595 //RIGHT ONE EIGHTH BLOCK - ,0xA27A ,0x250C //BOX DRAWINGS LIGHT DOWN AND RIGHT - ,0xA27B ,0x2510 //BOX DRAWINGS LIGHT DOWN AND LEFT - ,0xA27C ,0x2514 //BOX DRAWINGS LIGHT UP AND RIGHT - ,0xA27D ,0x2518 //BOX DRAWINGS LIGHT UP AND LEFT - ,0xA27E ,0x256D //BOX DRAWINGS LIGHT ARC DOWN AND RIGHT - ,0xA2A1 ,0x256E //BOX DRAWINGS LIGHT ARC DOWN AND LEFT - ,0xA2A2 ,0x2570 //BOX DRAWINGS LIGHT ARC UP AND RIGHT - ,0xA2A3 ,0x256F //BOX DRAWINGS LIGHT ARC UP AND LEFT - ,0xA2A4 ,0x2550 //BOX DRAWINGS DOUBLE HORIZONTAL - ,0xA2A5 ,0x255E //BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - ,0xA2A6 ,0x256A //BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - ,0xA2A7 ,0x2561 //BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - ,0xA2A8 ,0x25E2 //BLACK LOWER RIGHT TRIANGLE - ,0xA2A9 ,0x25E3 //BLACK LOWER LEFT TRIANGLE - ,0xA2AA ,0x25E5 //BLACK UPPER RIGHT TRIANGLE - ,0xA2AB ,0x25E4 //BLACK UPPER LEFT TRIANGLE - ,0xA2AC ,0x2571 //BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT - ,0xA2AD ,0x2572 //BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT - ,0xA2AE ,0x2573 //BOX DRAWINGS LIGHT DIAGONAL CROSS - ,0xA2AF ,0xFF10 //FULLWIDTH DIGIT ZERO - ,0xA2B0 ,0xFF11 //FULLWIDTH DIGIT ONE - ,0xA2B1 ,0xFF12 //FULLWIDTH DIGIT TWO - ,0xA2B2 ,0xFF13 //FULLWIDTH DIGIT THREE - ,0xA2B3 ,0xFF14 //FULLWIDTH DIGIT FOUR - ,0xA2B4 ,0xFF15 //FULLWIDTH DIGIT FIVE - ,0xA2B5 ,0xFF16 //FULLWIDTH DIGIT SIX - ,0xA2B6 ,0xFF17 //FULLWIDTH DIGIT SEVEN - ,0xA2B7 ,0xFF18 //FULLWIDTH DIGIT EIGHT - ,0xA2B8 ,0xFF19 //FULLWIDTH DIGIT NINE - ,0xA2B9 ,0x2160 //ROMAN NUMERAL ONE - ,0xA2BA ,0x2161 //ROMAN NUMERAL TWO - ,0xA2BB ,0x2162 //ROMAN NUMERAL THREE - ,0xA2BC ,0x2163 //ROMAN NUMERAL FOUR - ,0xA2BD ,0x2164 //ROMAN NUMERAL FIVE - ,0xA2BE ,0x2165 //ROMAN NUMERAL SIX - ,0xA2BF ,0x2166 //ROMAN NUMERAL SEVEN - ,0xA2C0 ,0x2167 //ROMAN NUMERAL EIGHT - ,0xA2C1 ,0x2168 //ROMAN NUMERAL NINE - ,0xA2C2 ,0x2169 //ROMAN NUMERAL TEN - ,0xA2C3 ,0x3021 //HANGZHOU NUMERAL ONE - ,0xA2C4 ,0x3022 //HANGZHOU NUMERAL TWO - ,0xA2C5 ,0x3023 //HANGZHOU NUMERAL THREE - ,0xA2C6 ,0x3024 //HANGZHOU NUMERAL FOUR - ,0xA2C7 ,0x3025 //HANGZHOU NUMERAL FIVE - ,0xA2C8 ,0x3026 //HANGZHOU NUMERAL SIX - ,0xA2C9 ,0x3027 //HANGZHOU NUMERAL SEVEN - ,0xA2CA ,0x3028 //HANGZHOU NUMERAL EIGHT - ,0xA2CB ,0x3029 //HANGZHOU NUMERAL NINE - ,0xA2CC ,0x5341 //CJK UNIFIED IDEOGRAPH - ,0xA2CD ,0x5344 //CJK UNIFIED IDEOGRAPH - ,0xA2CE ,0x5345 //CJK UNIFIED IDEOGRAPH - ,0xA2CF ,0xFF21 //FULLWIDTH LATIN CAPITAL LETTER A - ,0xA2D0 ,0xFF22 //FULLWIDTH LATIN CAPITAL LETTER B - ,0xA2D1 ,0xFF23 //FULLWIDTH LATIN CAPITAL LETTER C - ,0xA2D2 ,0xFF24 //FULLWIDTH LATIN CAPITAL LETTER D - ,0xA2D3 ,0xFF25 //FULLWIDTH LATIN CAPITAL LETTER E - ,0xA2D4 ,0xFF26 //FULLWIDTH LATIN CAPITAL LETTER F - ,0xA2D5 ,0xFF27 //FULLWIDTH LATIN CAPITAL LETTER G - ,0xA2D6 ,0xFF28 //FULLWIDTH LATIN CAPITAL LETTER H - ,0xA2D7 ,0xFF29 //FULLWIDTH LATIN CAPITAL LETTER I - ,0xA2D8 ,0xFF2A //FULLWIDTH LATIN CAPITAL LETTER J - ,0xA2D9 ,0xFF2B //FULLWIDTH LATIN CAPITAL LETTER K - ,0xA2DA ,0xFF2C //FULLWIDTH LATIN CAPITAL LETTER L - ,0xA2DB ,0xFF2D //FULLWIDTH LATIN CAPITAL LETTER M - ,0xA2DC ,0xFF2E //FULLWIDTH LATIN CAPITAL LETTER N - ,0xA2DD ,0xFF2F //FULLWIDTH LATIN CAPITAL LETTER O - ,0xA2DE ,0xFF30 //FULLWIDTH LATIN CAPITAL LETTER P - ,0xA2DF ,0xFF31 //FULLWIDTH LATIN CAPITAL LETTER Q - ,0xA2E0 ,0xFF32 //FULLWIDTH LATIN CAPITAL LETTER R - ,0xA2E1 ,0xFF33 //FULLWIDTH LATIN CAPITAL LETTER S - ,0xA2E2 ,0xFF34 //FULLWIDTH LATIN CAPITAL LETTER T - ,0xA2E3 ,0xFF35 //FULLWIDTH LATIN CAPITAL LETTER U - ,0xA2E4 ,0xFF36 //FULLWIDTH LATIN CAPITAL LETTER V - ,0xA2E5 ,0xFF37 //FULLWIDTH LATIN CAPITAL LETTER W - ,0xA2E6 ,0xFF38 //FULLWIDTH LATIN CAPITAL LETTER X - ,0xA2E7 ,0xFF39 //FULLWIDTH LATIN CAPITAL LETTER Y - ,0xA2E8 ,0xFF3A //FULLWIDTH LATIN CAPITAL LETTER Z - ,0xA2E9 ,0xFF41 //FULLWIDTH LATIN SMALL LETTER A - ,0xA2EA ,0xFF42 //FULLWIDTH LATIN SMALL LETTER B - ,0xA2EB ,0xFF43 //FULLWIDTH LATIN SMALL LETTER C - ,0xA2EC ,0xFF44 //FULLWIDTH LATIN SMALL LETTER D - ,0xA2ED ,0xFF45 //FULLWIDTH LATIN SMALL LETTER E - ,0xA2EE ,0xFF46 //FULLWIDTH LATIN SMALL LETTER F - ,0xA2EF ,0xFF47 //FULLWIDTH LATIN SMALL LETTER G - ,0xA2F0 ,0xFF48 //FULLWIDTH LATIN SMALL LETTER H - ,0xA2F1 ,0xFF49 //FULLWIDTH LATIN SMALL LETTER I - ,0xA2F2 ,0xFF4A //FULLWIDTH LATIN SMALL LETTER J - ,0xA2F3 ,0xFF4B //FULLWIDTH LATIN SMALL LETTER K - ,0xA2F4 ,0xFF4C //FULLWIDTH LATIN SMALL LETTER L - ,0xA2F5 ,0xFF4D //FULLWIDTH LATIN SMALL LETTER M - ,0xA2F6 ,0xFF4E //FULLWIDTH LATIN SMALL LETTER N - ,0xA2F7 ,0xFF4F //FULLWIDTH LATIN SMALL LETTER O - ,0xA2F8 ,0xFF50 //FULLWIDTH LATIN SMALL LETTER P - ,0xA2F9 ,0xFF51 //FULLWIDTH LATIN SMALL LETTER Q - ,0xA2FA ,0xFF52 //FULLWIDTH LATIN SMALL LETTER R - ,0xA2FB ,0xFF53 //FULLWIDTH LATIN SMALL LETTER S - ,0xA2FC ,0xFF54 //FULLWIDTH LATIN SMALL LETTER T - ,0xA2FD ,0xFF55 //FULLWIDTH LATIN SMALL LETTER U - ,0xA2FE ,0xFF56 //FULLWIDTH LATIN SMALL LETTER V - ,0xA340 ,0xFF57 //FULLWIDTH LATIN SMALL LETTER W - ,0xA341 ,0xFF58 //FULLWIDTH LATIN SMALL LETTER X - ,0xA342 ,0xFF59 //FULLWIDTH LATIN SMALL LETTER Y - ,0xA343 ,0xFF5A //FULLWIDTH LATIN SMALL LETTER Z - ,0xA344 ,0x0391 //GREEK CAPITAL LETTER ALPHA - ,0xA345 ,0x0392 //GREEK CAPITAL LETTER BETA - ,0xA346 ,0x0393 //GREEK CAPITAL LETTER GAMMA - ,0xA347 ,0x0394 //GREEK CAPITAL LETTER DELTA - ,0xA348 ,0x0395 //GREEK CAPITAL LETTER EPSILON - ,0xA349 ,0x0396 //GREEK CAPITAL LETTER ZETA - ,0xA34A ,0x0397 //GREEK CAPITAL LETTER ETA - ,0xA34B ,0x0398 //GREEK CAPITAL LETTER THETA - ,0xA34C ,0x0399 //GREEK CAPITAL LETTER IOTA - ,0xA34D ,0x039A //GREEK CAPITAL LETTER KAPPA - ,0xA34E ,0x039B //GREEK CAPITAL LETTER LAMDA - ,0xA34F ,0x039C //GREEK CAPITAL LETTER MU - ,0xA350 ,0x039D //GREEK CAPITAL LETTER NU - ,0xA351 ,0x039E //GREEK CAPITAL LETTER XI - ,0xA352 ,0x039F //GREEK CAPITAL LETTER OMICRON - ,0xA353 ,0x03A0 //GREEK CAPITAL LETTER PI - ,0xA354 ,0x03A1 //GREEK CAPITAL LETTER RHO - ,0xA355 ,0x03A3 //GREEK CAPITAL LETTER SIGMA - ,0xA356 ,0x03A4 //GREEK CAPITAL LETTER TAU - ,0xA357 ,0x03A5 //GREEK CAPITAL LETTER UPSILON - ,0xA358 ,0x03A6 //GREEK CAPITAL LETTER PHI - ,0xA359 ,0x03A7 //GREEK CAPITAL LETTER CHI - ,0xA35A ,0x03A8 //GREEK CAPITAL LETTER PSI - ,0xA35B ,0x03A9 //GREEK CAPITAL LETTER OMEGA - ,0xA35C ,0x03B1 //GREEK SMALL LETTER ALPHA - ,0xA35D ,0x03B2 //GREEK SMALL LETTER BETA - ,0xA35E ,0x03B3 //GREEK SMALL LETTER GAMMA - ,0xA35F ,0x03B4 //GREEK SMALL LETTER DELTA - ,0xA360 ,0x03B5 //GREEK SMALL LETTER EPSILON - ,0xA361 ,0x03B6 //GREEK SMALL LETTER ZETA - ,0xA362 ,0x03B7 //GREEK SMALL LETTER ETA - ,0xA363 ,0x03B8 //GREEK SMALL LETTER THETA - ,0xA364 ,0x03B9 //GREEK SMALL LETTER IOTA - ,0xA365 ,0x03BA //GREEK SMALL LETTER KAPPA - ,0xA366 ,0x03BB //GREEK SMALL LETTER LAMDA - ,0xA367 ,0x03BC //GREEK SMALL LETTER MU - ,0xA368 ,0x03BD //GREEK SMALL LETTER NU - ,0xA369 ,0x03BE //GREEK SMALL LETTER XI - ,0xA36A ,0x03BF //GREEK SMALL LETTER OMICRON - ,0xA36B ,0x03C0 //GREEK SMALL LETTER PI - ,0xA36C ,0x03C1 //GREEK SMALL LETTER RHO - ,0xA36D ,0x03C3 //GREEK SMALL LETTER SIGMA - ,0xA36E ,0x03C4 //GREEK SMALL LETTER TAU - ,0xA36F ,0x03C5 //GREEK SMALL LETTER UPSILON - ,0xA370 ,0x03C6 //GREEK SMALL LETTER PHI - ,0xA371 ,0x03C7 //GREEK SMALL LETTER CHI - ,0xA372 ,0x03C8 //GREEK SMALL LETTER PSI - ,0xA373 ,0x03C9 //GREEK SMALL LETTER OMEGA - ,0xA374 ,0x3105 //BOPOMOFO LETTER B - ,0xA375 ,0x3106 //BOPOMOFO LETTER P - ,0xA376 ,0x3107 //BOPOMOFO LETTER M - ,0xA377 ,0x3108 //BOPOMOFO LETTER F - ,0xA378 ,0x3109 //BOPOMOFO LETTER D - ,0xA379 ,0x310A //BOPOMOFO LETTER T - ,0xA37A ,0x310B //BOPOMOFO LETTER N - ,0xA37B ,0x310C //BOPOMOFO LETTER L - ,0xA37C ,0x310D //BOPOMOFO LETTER G - ,0xA37D ,0x310E //BOPOMOFO LETTER K - ,0xA37E ,0x310F //BOPOMOFO LETTER H - ,0xA3A1 ,0x3110 //BOPOMOFO LETTER J - ,0xA3A2 ,0x3111 //BOPOMOFO LETTER Q - ,0xA3A3 ,0x3112 //BOPOMOFO LETTER X - ,0xA3A4 ,0x3113 //BOPOMOFO LETTER ZH - ,0xA3A5 ,0x3114 //BOPOMOFO LETTER CH - ,0xA3A6 ,0x3115 //BOPOMOFO LETTER SH - ,0xA3A7 ,0x3116 //BOPOMOFO LETTER R - ,0xA3A8 ,0x3117 //BOPOMOFO LETTER Z - ,0xA3A9 ,0x3118 //BOPOMOFO LETTER C - ,0xA3AA ,0x3119 //BOPOMOFO LETTER S - ,0xA3AB ,0x311A //BOPOMOFO LETTER A - ,0xA3AC ,0x311B //BOPOMOFO LETTER O - ,0xA3AD ,0x311C //BOPOMOFO LETTER E - ,0xA3AE ,0x311D //BOPOMOFO LETTER EH - ,0xA3AF ,0x311E //BOPOMOFO LETTER AI - ,0xA3B0 ,0x311F //BOPOMOFO LETTER EI - ,0xA3B1 ,0x3120 //BOPOMOFO LETTER AU - ,0xA3B2 ,0x3121 //BOPOMOFO LETTER OU - ,0xA3B3 ,0x3122 //BOPOMOFO LETTER AN - ,0xA3B4 ,0x3123 //BOPOMOFO LETTER EN - ,0xA3B5 ,0x3124 //BOPOMOFO LETTER ANG - ,0xA3B6 ,0x3125 //BOPOMOFO LETTER ENG - ,0xA3B7 ,0x3126 //BOPOMOFO LETTER ER - ,0xA3B8 ,0x3127 //BOPOMOFO LETTER I - ,0xA3B9 ,0x3128 //BOPOMOFO LETTER U - ,0xA3BA ,0x3129 //BOPOMOFO LETTER IU - ,0xA3BB ,0x02D9 //DOT ABOVE - ,0xA3BC ,0x02C9 //MODIFIER LETTER MACRON - ,0xA3BD ,0x02CA //MODIFIER LETTER ACUTE ACCENT - ,0xA3BE ,0x02C7 //CARON - ,0xA3BF ,0x02CB //MODIFIER LETTER GRAVE ACCENT - ,0xA3E1 ,0x20AC //EURO SIGN - ,0xA440 ,0x4E00 //CJK UNIFIED IDEOGRAPH - ,0xA441 ,0x4E59 //CJK UNIFIED IDEOGRAPH - ,0xA442 ,0x4E01 //CJK UNIFIED IDEOGRAPH - ,0xA443 ,0x4E03 //CJK UNIFIED IDEOGRAPH - ,0xA444 ,0x4E43 //CJK UNIFIED IDEOGRAPH - ,0xA445 ,0x4E5D //CJK UNIFIED IDEOGRAPH - ,0xA446 ,0x4E86 //CJK UNIFIED IDEOGRAPH - ,0xA447 ,0x4E8C //CJK UNIFIED IDEOGRAPH - ,0xA448 ,0x4EBA //CJK UNIFIED IDEOGRAPH - ,0xA449 ,0x513F //CJK UNIFIED IDEOGRAPH - ,0xA44A ,0x5165 //CJK UNIFIED IDEOGRAPH - ,0xA44B ,0x516B //CJK UNIFIED IDEOGRAPH - ,0xA44C ,0x51E0 //CJK UNIFIED IDEOGRAPH - ,0xA44D ,0x5200 //CJK UNIFIED IDEOGRAPH - ,0xA44E ,0x5201 //CJK UNIFIED IDEOGRAPH - ,0xA44F ,0x529B //CJK UNIFIED IDEOGRAPH - ,0xA450 ,0x5315 //CJK UNIFIED IDEOGRAPH - ,0xA451 ,0x5341 //CJK UNIFIED IDEOGRAPH - ,0xA452 ,0x535C //CJK UNIFIED IDEOGRAPH - ,0xA453 ,0x53C8 //CJK UNIFIED IDEOGRAPH - ,0xA454 ,0x4E09 //CJK UNIFIED IDEOGRAPH - ,0xA455 ,0x4E0B //CJK UNIFIED IDEOGRAPH - ,0xA456 ,0x4E08 //CJK UNIFIED IDEOGRAPH - ,0xA457 ,0x4E0A //CJK UNIFIED IDEOGRAPH - ,0xA458 ,0x4E2B //CJK UNIFIED IDEOGRAPH - ,0xA459 ,0x4E38 //CJK UNIFIED IDEOGRAPH - ,0xA45A ,0x51E1 //CJK UNIFIED IDEOGRAPH - ,0xA45B ,0x4E45 //CJK UNIFIED IDEOGRAPH - ,0xA45C ,0x4E48 //CJK UNIFIED IDEOGRAPH - ,0xA45D ,0x4E5F //CJK UNIFIED IDEOGRAPH - ,0xA45E ,0x4E5E //CJK UNIFIED IDEOGRAPH - ,0xA45F ,0x4E8E //CJK UNIFIED IDEOGRAPH - ,0xA460 ,0x4EA1 //CJK UNIFIED IDEOGRAPH - ,0xA461 ,0x5140 //CJK UNIFIED IDEOGRAPH - ,0xA462 ,0x5203 //CJK UNIFIED IDEOGRAPH - ,0xA463 ,0x52FA //CJK UNIFIED IDEOGRAPH - ,0xA464 ,0x5343 //CJK UNIFIED IDEOGRAPH - ,0xA465 ,0x53C9 //CJK UNIFIED IDEOGRAPH - ,0xA466 ,0x53E3 //CJK UNIFIED IDEOGRAPH - ,0xA467 ,0x571F //CJK UNIFIED IDEOGRAPH - ,0xA468 ,0x58EB //CJK UNIFIED IDEOGRAPH - ,0xA469 ,0x5915 //CJK UNIFIED IDEOGRAPH - ,0xA46A ,0x5927 //CJK UNIFIED IDEOGRAPH - ,0xA46B ,0x5973 //CJK UNIFIED IDEOGRAPH - ,0xA46C ,0x5B50 //CJK UNIFIED IDEOGRAPH - ,0xA46D ,0x5B51 //CJK UNIFIED IDEOGRAPH - ,0xA46E ,0x5B53 //CJK UNIFIED IDEOGRAPH - ,0xA46F ,0x5BF8 //CJK UNIFIED IDEOGRAPH - ,0xA470 ,0x5C0F //CJK UNIFIED IDEOGRAPH - ,0xA471 ,0x5C22 //CJK UNIFIED IDEOGRAPH - ,0xA472 ,0x5C38 //CJK UNIFIED IDEOGRAPH - ,0xA473 ,0x5C71 //CJK UNIFIED IDEOGRAPH - ,0xA474 ,0x5DDD //CJK UNIFIED IDEOGRAPH - ,0xA475 ,0x5DE5 //CJK UNIFIED IDEOGRAPH - ,0xA476 ,0x5DF1 //CJK UNIFIED IDEOGRAPH - ,0xA477 ,0x5DF2 //CJK UNIFIED IDEOGRAPH - ,0xA478 ,0x5DF3 //CJK UNIFIED IDEOGRAPH - ,0xA479 ,0x5DFE //CJK UNIFIED IDEOGRAPH - ,0xA47A ,0x5E72 //CJK UNIFIED IDEOGRAPH - ,0xA47B ,0x5EFE //CJK UNIFIED IDEOGRAPH - ,0xA47C ,0x5F0B //CJK UNIFIED IDEOGRAPH - ,0xA47D ,0x5F13 //CJK UNIFIED IDEOGRAPH - ,0xA47E ,0x624D //CJK UNIFIED IDEOGRAPH - ,0xA4A1 ,0x4E11 //CJK UNIFIED IDEOGRAPH - ,0xA4A2 ,0x4E10 //CJK UNIFIED IDEOGRAPH - ,0xA4A3 ,0x4E0D //CJK UNIFIED IDEOGRAPH - ,0xA4A4 ,0x4E2D //CJK UNIFIED IDEOGRAPH - ,0xA4A5 ,0x4E30 //CJK UNIFIED IDEOGRAPH - ,0xA4A6 ,0x4E39 //CJK UNIFIED IDEOGRAPH - ,0xA4A7 ,0x4E4B //CJK UNIFIED IDEOGRAPH - ,0xA4A8 ,0x5C39 //CJK UNIFIED IDEOGRAPH - ,0xA4A9 ,0x4E88 //CJK UNIFIED IDEOGRAPH - ,0xA4AA ,0x4E91 //CJK UNIFIED IDEOGRAPH - ,0xA4AB ,0x4E95 //CJK UNIFIED IDEOGRAPH - ,0xA4AC ,0x4E92 //CJK UNIFIED IDEOGRAPH - ,0xA4AD ,0x4E94 //CJK UNIFIED IDEOGRAPH - ,0xA4AE ,0x4EA2 //CJK UNIFIED IDEOGRAPH - ,0xA4AF ,0x4EC1 //CJK UNIFIED IDEOGRAPH - ,0xA4B0 ,0x4EC0 //CJK UNIFIED IDEOGRAPH - ,0xA4B1 ,0x4EC3 //CJK UNIFIED IDEOGRAPH - ,0xA4B2 ,0x4EC6 //CJK UNIFIED IDEOGRAPH - ,0xA4B3 ,0x4EC7 //CJK UNIFIED IDEOGRAPH - ,0xA4B4 ,0x4ECD //CJK UNIFIED IDEOGRAPH - ,0xA4B5 ,0x4ECA //CJK UNIFIED IDEOGRAPH - ,0xA4B6 ,0x4ECB //CJK UNIFIED IDEOGRAPH - ,0xA4B7 ,0x4EC4 //CJK UNIFIED IDEOGRAPH - ,0xA4B8 ,0x5143 //CJK UNIFIED IDEOGRAPH - ,0xA4B9 ,0x5141 //CJK UNIFIED IDEOGRAPH - ,0xA4BA ,0x5167 //CJK UNIFIED IDEOGRAPH - ,0xA4BB ,0x516D //CJK UNIFIED IDEOGRAPH - ,0xA4BC ,0x516E //CJK UNIFIED IDEOGRAPH - ,0xA4BD ,0x516C //CJK UNIFIED IDEOGRAPH - ,0xA4BE ,0x5197 //CJK UNIFIED IDEOGRAPH - ,0xA4BF ,0x51F6 //CJK UNIFIED IDEOGRAPH - ,0xA4C0 ,0x5206 //CJK UNIFIED IDEOGRAPH - ,0xA4C1 ,0x5207 //CJK UNIFIED IDEOGRAPH - ,0xA4C2 ,0x5208 //CJK UNIFIED IDEOGRAPH - ,0xA4C3 ,0x52FB //CJK UNIFIED IDEOGRAPH - ,0xA4C4 ,0x52FE //CJK UNIFIED IDEOGRAPH - ,0xA4C5 ,0x52FF //CJK UNIFIED IDEOGRAPH - ,0xA4C6 ,0x5316 //CJK UNIFIED IDEOGRAPH - ,0xA4C7 ,0x5339 //CJK UNIFIED IDEOGRAPH - ,0xA4C8 ,0x5348 //CJK UNIFIED IDEOGRAPH - ,0xA4C9 ,0x5347 //CJK UNIFIED IDEOGRAPH - ,0xA4CA ,0x5345 //CJK UNIFIED IDEOGRAPH - ,0xA4CB ,0x535E //CJK UNIFIED IDEOGRAPH - ,0xA4CC ,0x5384 //CJK UNIFIED IDEOGRAPH - ,0xA4CD ,0x53CB //CJK UNIFIED IDEOGRAPH - ,0xA4CE ,0x53CA //CJK UNIFIED IDEOGRAPH - ,0xA4CF ,0x53CD //CJK UNIFIED IDEOGRAPH - ,0xA4D0 ,0x58EC //CJK UNIFIED IDEOGRAPH - ,0xA4D1 ,0x5929 //CJK UNIFIED IDEOGRAPH - ,0xA4D2 ,0x592B //CJK UNIFIED IDEOGRAPH - ,0xA4D3 ,0x592A //CJK UNIFIED IDEOGRAPH - ,0xA4D4 ,0x592D //CJK UNIFIED IDEOGRAPH - ,0xA4D5 ,0x5B54 //CJK UNIFIED IDEOGRAPH - ,0xA4D6 ,0x5C11 //CJK UNIFIED IDEOGRAPH - ,0xA4D7 ,0x5C24 //CJK UNIFIED IDEOGRAPH - ,0xA4D8 ,0x5C3A //CJK UNIFIED IDEOGRAPH - ,0xA4D9 ,0x5C6F //CJK UNIFIED IDEOGRAPH - ,0xA4DA ,0x5DF4 //CJK UNIFIED IDEOGRAPH - ,0xA4DB ,0x5E7B //CJK UNIFIED IDEOGRAPH - ,0xA4DC ,0x5EFF //CJK UNIFIED IDEOGRAPH - ,0xA4DD ,0x5F14 //CJK UNIFIED IDEOGRAPH - ,0xA4DE ,0x5F15 //CJK UNIFIED IDEOGRAPH - ,0xA4DF ,0x5FC3 //CJK UNIFIED IDEOGRAPH - ,0xA4E0 ,0x6208 //CJK UNIFIED IDEOGRAPH - ,0xA4E1 ,0x6236 //CJK UNIFIED IDEOGRAPH - ,0xA4E2 ,0x624B //CJK UNIFIED IDEOGRAPH - ,0xA4E3 ,0x624E //CJK UNIFIED IDEOGRAPH - ,0xA4E4 ,0x652F //CJK UNIFIED IDEOGRAPH - ,0xA4E5 ,0x6587 //CJK UNIFIED IDEOGRAPH - ,0xA4E6 ,0x6597 //CJK UNIFIED IDEOGRAPH - ,0xA4E7 ,0x65A4 //CJK UNIFIED IDEOGRAPH - ,0xA4E8 ,0x65B9 //CJK UNIFIED IDEOGRAPH - ,0xA4E9 ,0x65E5 //CJK UNIFIED IDEOGRAPH - ,0xA4EA ,0x66F0 //CJK UNIFIED IDEOGRAPH - ,0xA4EB ,0x6708 //CJK UNIFIED IDEOGRAPH - ,0xA4EC ,0x6728 //CJK UNIFIED IDEOGRAPH - ,0xA4ED ,0x6B20 //CJK UNIFIED IDEOGRAPH - ,0xA4EE ,0x6B62 //CJK UNIFIED IDEOGRAPH - ,0xA4EF ,0x6B79 //CJK UNIFIED IDEOGRAPH - ,0xA4F0 ,0x6BCB //CJK UNIFIED IDEOGRAPH - ,0xA4F1 ,0x6BD4 //CJK UNIFIED IDEOGRAPH - ,0xA4F2 ,0x6BDB //CJK UNIFIED IDEOGRAPH - ,0xA4F3 ,0x6C0F //CJK UNIFIED IDEOGRAPH - ,0xA4F4 ,0x6C34 //CJK UNIFIED IDEOGRAPH - ,0xA4F5 ,0x706B //CJK UNIFIED IDEOGRAPH - ,0xA4F6 ,0x722A //CJK UNIFIED IDEOGRAPH - ,0xA4F7 ,0x7236 //CJK UNIFIED IDEOGRAPH - ,0xA4F8 ,0x723B //CJK UNIFIED IDEOGRAPH - ,0xA4F9 ,0x7247 //CJK UNIFIED IDEOGRAPH - ,0xA4FA ,0x7259 //CJK UNIFIED IDEOGRAPH - ,0xA4FB ,0x725B //CJK UNIFIED IDEOGRAPH - ,0xA4FC ,0x72AC //CJK UNIFIED IDEOGRAPH - ,0xA4FD ,0x738B //CJK UNIFIED IDEOGRAPH - ,0xA4FE ,0x4E19 //CJK UNIFIED IDEOGRAPH - ,0xA540 ,0x4E16 //CJK UNIFIED IDEOGRAPH - ,0xA541 ,0x4E15 //CJK UNIFIED IDEOGRAPH - ,0xA542 ,0x4E14 //CJK UNIFIED IDEOGRAPH - ,0xA543 ,0x4E18 //CJK UNIFIED IDEOGRAPH - ,0xA544 ,0x4E3B //CJK UNIFIED IDEOGRAPH - ,0xA545 ,0x4E4D //CJK UNIFIED IDEOGRAPH - ,0xA546 ,0x4E4F //CJK UNIFIED IDEOGRAPH - ,0xA547 ,0x4E4E //CJK UNIFIED IDEOGRAPH - ,0xA548 ,0x4EE5 //CJK UNIFIED IDEOGRAPH - ,0xA549 ,0x4ED8 //CJK UNIFIED IDEOGRAPH - ,0xA54A ,0x4ED4 //CJK UNIFIED IDEOGRAPH - ,0xA54B ,0x4ED5 //CJK UNIFIED IDEOGRAPH - ,0xA54C ,0x4ED6 //CJK UNIFIED IDEOGRAPH - ,0xA54D ,0x4ED7 //CJK UNIFIED IDEOGRAPH - ,0xA54E ,0x4EE3 //CJK UNIFIED IDEOGRAPH - ,0xA54F ,0x4EE4 //CJK UNIFIED IDEOGRAPH - ,0xA550 ,0x4ED9 //CJK UNIFIED IDEOGRAPH - ,0xA551 ,0x4EDE //CJK UNIFIED IDEOGRAPH - ,0xA552 ,0x5145 //CJK UNIFIED IDEOGRAPH - ,0xA553 ,0x5144 //CJK UNIFIED IDEOGRAPH - ,0xA554 ,0x5189 //CJK UNIFIED IDEOGRAPH - ,0xA555 ,0x518A //CJK UNIFIED IDEOGRAPH - ,0xA556 ,0x51AC //CJK UNIFIED IDEOGRAPH - ,0xA557 ,0x51F9 //CJK UNIFIED IDEOGRAPH - ,0xA558 ,0x51FA //CJK UNIFIED IDEOGRAPH - ,0xA559 ,0x51F8 //CJK UNIFIED IDEOGRAPH - ,0xA55A ,0x520A //CJK UNIFIED IDEOGRAPH - ,0xA55B ,0x52A0 //CJK UNIFIED IDEOGRAPH - ,0xA55C ,0x529F //CJK UNIFIED IDEOGRAPH - ,0xA55D ,0x5305 //CJK UNIFIED IDEOGRAPH - ,0xA55E ,0x5306 //CJK UNIFIED IDEOGRAPH - ,0xA55F ,0x5317 //CJK UNIFIED IDEOGRAPH - ,0xA560 ,0x531D //CJK UNIFIED IDEOGRAPH - ,0xA561 ,0x4EDF //CJK UNIFIED IDEOGRAPH - ,0xA562 ,0x534A //CJK UNIFIED IDEOGRAPH - ,0xA563 ,0x5349 //CJK UNIFIED IDEOGRAPH - ,0xA564 ,0x5361 //CJK UNIFIED IDEOGRAPH - ,0xA565 ,0x5360 //CJK UNIFIED IDEOGRAPH - ,0xA566 ,0x536F //CJK UNIFIED IDEOGRAPH - ,0xA567 ,0x536E //CJK UNIFIED IDEOGRAPH - ,0xA568 ,0x53BB //CJK UNIFIED IDEOGRAPH - ,0xA569 ,0x53EF //CJK UNIFIED IDEOGRAPH - ,0xA56A ,0x53E4 //CJK UNIFIED IDEOGRAPH - ,0xA56B ,0x53F3 //CJK UNIFIED IDEOGRAPH - ,0xA56C ,0x53EC //CJK UNIFIED IDEOGRAPH - ,0xA56D ,0x53EE //CJK UNIFIED IDEOGRAPH - ,0xA56E ,0x53E9 //CJK UNIFIED IDEOGRAPH - ,0xA56F ,0x53E8 //CJK UNIFIED IDEOGRAPH - ,0xA570 ,0x53FC //CJK UNIFIED IDEOGRAPH - ,0xA571 ,0x53F8 //CJK UNIFIED IDEOGRAPH - ,0xA572 ,0x53F5 //CJK UNIFIED IDEOGRAPH - ,0xA573 ,0x53EB //CJK UNIFIED IDEOGRAPH - ,0xA574 ,0x53E6 //CJK UNIFIED IDEOGRAPH - ,0xA575 ,0x53EA //CJK UNIFIED IDEOGRAPH - ,0xA576 ,0x53F2 //CJK UNIFIED IDEOGRAPH - ,0xA577 ,0x53F1 //CJK UNIFIED IDEOGRAPH - ,0xA578 ,0x53F0 //CJK UNIFIED IDEOGRAPH - ,0xA579 ,0x53E5 //CJK UNIFIED IDEOGRAPH - ,0xA57A ,0x53ED //CJK UNIFIED IDEOGRAPH - ,0xA57B ,0x53FB //CJK UNIFIED IDEOGRAPH - ,0xA57C ,0x56DB //CJK UNIFIED IDEOGRAPH - ,0xA57D ,0x56DA //CJK UNIFIED IDEOGRAPH - ,0xA57E ,0x5916 //CJK UNIFIED IDEOGRAPH - ,0xA5A1 ,0x592E //CJK UNIFIED IDEOGRAPH - ,0xA5A2 ,0x5931 //CJK UNIFIED IDEOGRAPH - ,0xA5A3 ,0x5974 //CJK UNIFIED IDEOGRAPH - ,0xA5A4 ,0x5976 //CJK UNIFIED IDEOGRAPH - ,0xA5A5 ,0x5B55 //CJK UNIFIED IDEOGRAPH - ,0xA5A6 ,0x5B83 //CJK UNIFIED IDEOGRAPH - ,0xA5A7 ,0x5C3C //CJK UNIFIED IDEOGRAPH - ,0xA5A8 ,0x5DE8 //CJK UNIFIED IDEOGRAPH - ,0xA5A9 ,0x5DE7 //CJK UNIFIED IDEOGRAPH - ,0xA5AA ,0x5DE6 //CJK UNIFIED IDEOGRAPH - ,0xA5AB ,0x5E02 //CJK UNIFIED IDEOGRAPH - ,0xA5AC ,0x5E03 //CJK UNIFIED IDEOGRAPH - ,0xA5AD ,0x5E73 //CJK UNIFIED IDEOGRAPH - ,0xA5AE ,0x5E7C //CJK UNIFIED IDEOGRAPH - ,0xA5AF ,0x5F01 //CJK UNIFIED IDEOGRAPH - ,0xA5B0 ,0x5F18 //CJK UNIFIED IDEOGRAPH - ,0xA5B1 ,0x5F17 //CJK UNIFIED IDEOGRAPH - ,0xA5B2 ,0x5FC5 //CJK UNIFIED IDEOGRAPH - ,0xA5B3 ,0x620A //CJK UNIFIED IDEOGRAPH - ,0xA5B4 ,0x6253 //CJK UNIFIED IDEOGRAPH - ,0xA5B5 ,0x6254 //CJK UNIFIED IDEOGRAPH - ,0xA5B6 ,0x6252 //CJK UNIFIED IDEOGRAPH - ,0xA5B7 ,0x6251 //CJK UNIFIED IDEOGRAPH - ,0xA5B8 ,0x65A5 //CJK UNIFIED IDEOGRAPH - ,0xA5B9 ,0x65E6 //CJK UNIFIED IDEOGRAPH - ,0xA5BA ,0x672E //CJK UNIFIED IDEOGRAPH - ,0xA5BB ,0x672C //CJK UNIFIED IDEOGRAPH - ,0xA5BC ,0x672A //CJK UNIFIED IDEOGRAPH - ,0xA5BD ,0x672B //CJK UNIFIED IDEOGRAPH - ,0xA5BE ,0x672D //CJK UNIFIED IDEOGRAPH - ,0xA5BF ,0x6B63 //CJK UNIFIED IDEOGRAPH - ,0xA5C0 ,0x6BCD //CJK UNIFIED IDEOGRAPH - ,0xA5C1 ,0x6C11 //CJK UNIFIED IDEOGRAPH - ,0xA5C2 ,0x6C10 //CJK UNIFIED IDEOGRAPH - ,0xA5C3 ,0x6C38 //CJK UNIFIED IDEOGRAPH - ,0xA5C4 ,0x6C41 //CJK UNIFIED IDEOGRAPH - ,0xA5C5 ,0x6C40 //CJK UNIFIED IDEOGRAPH - ,0xA5C6 ,0x6C3E //CJK UNIFIED IDEOGRAPH - ,0xA5C7 ,0x72AF //CJK UNIFIED IDEOGRAPH - ,0xA5C8 ,0x7384 //CJK UNIFIED IDEOGRAPH - ,0xA5C9 ,0x7389 //CJK UNIFIED IDEOGRAPH - ,0xA5CA ,0x74DC //CJK UNIFIED IDEOGRAPH - ,0xA5CB ,0x74E6 //CJK UNIFIED IDEOGRAPH - ,0xA5CC ,0x7518 //CJK UNIFIED IDEOGRAPH - ,0xA5CD ,0x751F //CJK UNIFIED IDEOGRAPH - ,0xA5CE ,0x7528 //CJK UNIFIED IDEOGRAPH - ,0xA5CF ,0x7529 //CJK UNIFIED IDEOGRAPH - ,0xA5D0 ,0x7530 //CJK UNIFIED IDEOGRAPH - ,0xA5D1 ,0x7531 //CJK UNIFIED IDEOGRAPH - ,0xA5D2 ,0x7532 //CJK UNIFIED IDEOGRAPH - ,0xA5D3 ,0x7533 //CJK UNIFIED IDEOGRAPH - ,0xA5D4 ,0x758B //CJK UNIFIED IDEOGRAPH - ,0xA5D5 ,0x767D //CJK UNIFIED IDEOGRAPH - ,0xA5D6 ,0x76AE //CJK UNIFIED IDEOGRAPH - ,0xA5D7 ,0x76BF //CJK UNIFIED IDEOGRAPH - ,0xA5D8 ,0x76EE //CJK UNIFIED IDEOGRAPH - ,0xA5D9 ,0x77DB //CJK UNIFIED IDEOGRAPH - ,0xA5DA ,0x77E2 //CJK UNIFIED IDEOGRAPH - ,0xA5DB ,0x77F3 //CJK UNIFIED IDEOGRAPH - ,0xA5DC ,0x793A //CJK UNIFIED IDEOGRAPH - ,0xA5DD ,0x79BE //CJK UNIFIED IDEOGRAPH - ,0xA5DE ,0x7A74 //CJK UNIFIED IDEOGRAPH - ,0xA5DF ,0x7ACB //CJK UNIFIED IDEOGRAPH - ,0xA5E0 ,0x4E1E //CJK UNIFIED IDEOGRAPH - ,0xA5E1 ,0x4E1F //CJK UNIFIED IDEOGRAPH - ,0xA5E2 ,0x4E52 //CJK UNIFIED IDEOGRAPH - ,0xA5E3 ,0x4E53 //CJK UNIFIED IDEOGRAPH - ,0xA5E4 ,0x4E69 //CJK UNIFIED IDEOGRAPH - ,0xA5E5 ,0x4E99 //CJK UNIFIED IDEOGRAPH - ,0xA5E6 ,0x4EA4 //CJK UNIFIED IDEOGRAPH - ,0xA5E7 ,0x4EA6 //CJK UNIFIED IDEOGRAPH - ,0xA5E8 ,0x4EA5 //CJK UNIFIED IDEOGRAPH - ,0xA5E9 ,0x4EFF //CJK UNIFIED IDEOGRAPH - ,0xA5EA ,0x4F09 //CJK UNIFIED IDEOGRAPH - ,0xA5EB ,0x4F19 //CJK UNIFIED IDEOGRAPH - ,0xA5EC ,0x4F0A //CJK UNIFIED IDEOGRAPH - ,0xA5ED ,0x4F15 //CJK UNIFIED IDEOGRAPH - ,0xA5EE ,0x4F0D //CJK UNIFIED IDEOGRAPH - ,0xA5EF ,0x4F10 //CJK UNIFIED IDEOGRAPH - ,0xA5F0 ,0x4F11 //CJK UNIFIED IDEOGRAPH - ,0xA5F1 ,0x4F0F //CJK UNIFIED IDEOGRAPH - ,0xA5F2 ,0x4EF2 //CJK UNIFIED IDEOGRAPH - ,0xA5F3 ,0x4EF6 //CJK UNIFIED IDEOGRAPH - ,0xA5F4 ,0x4EFB //CJK UNIFIED IDEOGRAPH - ,0xA5F5 ,0x4EF0 //CJK UNIFIED IDEOGRAPH - ,0xA5F6 ,0x4EF3 //CJK UNIFIED IDEOGRAPH - ,0xA5F7 ,0x4EFD //CJK UNIFIED IDEOGRAPH - ,0xA5F8 ,0x4F01 //CJK UNIFIED IDEOGRAPH - ,0xA5F9 ,0x4F0B //CJK UNIFIED IDEOGRAPH - ,0xA5FA ,0x5149 //CJK UNIFIED IDEOGRAPH - ,0xA5FB ,0x5147 //CJK UNIFIED IDEOGRAPH - ,0xA5FC ,0x5146 //CJK UNIFIED IDEOGRAPH - ,0xA5FD ,0x5148 //CJK UNIFIED IDEOGRAPH - ,0xA5FE ,0x5168 //CJK UNIFIED IDEOGRAPH - ,0xA640 ,0x5171 //CJK UNIFIED IDEOGRAPH - ,0xA641 ,0x518D //CJK UNIFIED IDEOGRAPH - ,0xA642 ,0x51B0 //CJK UNIFIED IDEOGRAPH - ,0xA643 ,0x5217 //CJK UNIFIED IDEOGRAPH - ,0xA644 ,0x5211 //CJK UNIFIED IDEOGRAPH - ,0xA645 ,0x5212 //CJK UNIFIED IDEOGRAPH - ,0xA646 ,0x520E //CJK UNIFIED IDEOGRAPH - ,0xA647 ,0x5216 //CJK UNIFIED IDEOGRAPH - ,0xA648 ,0x52A3 //CJK UNIFIED IDEOGRAPH - ,0xA649 ,0x5308 //CJK UNIFIED IDEOGRAPH - ,0xA64A ,0x5321 //CJK UNIFIED IDEOGRAPH - ,0xA64B ,0x5320 //CJK UNIFIED IDEOGRAPH - ,0xA64C ,0x5370 //CJK UNIFIED IDEOGRAPH - ,0xA64D ,0x5371 //CJK UNIFIED IDEOGRAPH - ,0xA64E ,0x5409 //CJK UNIFIED IDEOGRAPH - ,0xA64F ,0x540F //CJK UNIFIED IDEOGRAPH - ,0xA650 ,0x540C //CJK UNIFIED IDEOGRAPH - ,0xA651 ,0x540A //CJK UNIFIED IDEOGRAPH - ,0xA652 ,0x5410 //CJK UNIFIED IDEOGRAPH - ,0xA653 ,0x5401 //CJK UNIFIED IDEOGRAPH - ,0xA654 ,0x540B //CJK UNIFIED IDEOGRAPH - ,0xA655 ,0x5404 //CJK UNIFIED IDEOGRAPH - ,0xA656 ,0x5411 //CJK UNIFIED IDEOGRAPH - ,0xA657 ,0x540D //CJK UNIFIED IDEOGRAPH - ,0xA658 ,0x5408 //CJK UNIFIED IDEOGRAPH - ,0xA659 ,0x5403 //CJK UNIFIED IDEOGRAPH - ,0xA65A ,0x540E //CJK UNIFIED IDEOGRAPH - ,0xA65B ,0x5406 //CJK UNIFIED IDEOGRAPH - ,0xA65C ,0x5412 //CJK UNIFIED IDEOGRAPH - ,0xA65D ,0x56E0 //CJK UNIFIED IDEOGRAPH - ,0xA65E ,0x56DE //CJK UNIFIED IDEOGRAPH - ,0xA65F ,0x56DD //CJK UNIFIED IDEOGRAPH - ,0xA660 ,0x5733 //CJK UNIFIED IDEOGRAPH - ,0xA661 ,0x5730 //CJK UNIFIED IDEOGRAPH - ,0xA662 ,0x5728 //CJK UNIFIED IDEOGRAPH - ,0xA663 ,0x572D //CJK UNIFIED IDEOGRAPH - ,0xA664 ,0x572C //CJK UNIFIED IDEOGRAPH - ,0xA665 ,0x572F //CJK UNIFIED IDEOGRAPH - ,0xA666 ,0x5729 //CJK UNIFIED IDEOGRAPH - ,0xA667 ,0x5919 //CJK UNIFIED IDEOGRAPH - ,0xA668 ,0x591A //CJK UNIFIED IDEOGRAPH - ,0xA669 ,0x5937 //CJK UNIFIED IDEOGRAPH - ,0xA66A ,0x5938 //CJK UNIFIED IDEOGRAPH - ,0xA66B ,0x5984 //CJK UNIFIED IDEOGRAPH - ,0xA66C ,0x5978 //CJK UNIFIED IDEOGRAPH - ,0xA66D ,0x5983 //CJK UNIFIED IDEOGRAPH - ,0xA66E ,0x597D //CJK UNIFIED IDEOGRAPH - ,0xA66F ,0x5979 //CJK UNIFIED IDEOGRAPH - ,0xA670 ,0x5982 //CJK UNIFIED IDEOGRAPH - ,0xA671 ,0x5981 //CJK UNIFIED IDEOGRAPH - ,0xA672 ,0x5B57 //CJK UNIFIED IDEOGRAPH - ,0xA673 ,0x5B58 //CJK UNIFIED IDEOGRAPH - ,0xA674 ,0x5B87 //CJK UNIFIED IDEOGRAPH - ,0xA675 ,0x5B88 //CJK UNIFIED IDEOGRAPH - ,0xA676 ,0x5B85 //CJK UNIFIED IDEOGRAPH - ,0xA677 ,0x5B89 //CJK UNIFIED IDEOGRAPH - ,0xA678 ,0x5BFA //CJK UNIFIED IDEOGRAPH - ,0xA679 ,0x5C16 //CJK UNIFIED IDEOGRAPH - ,0xA67A ,0x5C79 //CJK UNIFIED IDEOGRAPH - ,0xA67B ,0x5DDE //CJK UNIFIED IDEOGRAPH - ,0xA67C ,0x5E06 //CJK UNIFIED IDEOGRAPH - ,0xA67D ,0x5E76 //CJK UNIFIED IDEOGRAPH - ,0xA67E ,0x5E74 //CJK UNIFIED IDEOGRAPH - ,0xA6A1 ,0x5F0F //CJK UNIFIED IDEOGRAPH - ,0xA6A2 ,0x5F1B //CJK UNIFIED IDEOGRAPH - ,0xA6A3 ,0x5FD9 //CJK UNIFIED IDEOGRAPH - ,0xA6A4 ,0x5FD6 //CJK UNIFIED IDEOGRAPH - ,0xA6A5 ,0x620E //CJK UNIFIED IDEOGRAPH - ,0xA6A6 ,0x620C //CJK UNIFIED IDEOGRAPH - ,0xA6A7 ,0x620D //CJK UNIFIED IDEOGRAPH - ,0xA6A8 ,0x6210 //CJK UNIFIED IDEOGRAPH - ,0xA6A9 ,0x6263 //CJK UNIFIED IDEOGRAPH - ,0xA6AA ,0x625B //CJK UNIFIED IDEOGRAPH - ,0xA6AB ,0x6258 //CJK UNIFIED IDEOGRAPH - ,0xA6AC ,0x6536 //CJK UNIFIED IDEOGRAPH - ,0xA6AD ,0x65E9 //CJK UNIFIED IDEOGRAPH - ,0xA6AE ,0x65E8 //CJK UNIFIED IDEOGRAPH - ,0xA6AF ,0x65EC //CJK UNIFIED IDEOGRAPH - ,0xA6B0 ,0x65ED //CJK UNIFIED IDEOGRAPH - ,0xA6B1 ,0x66F2 //CJK UNIFIED IDEOGRAPH - ,0xA6B2 ,0x66F3 //CJK UNIFIED IDEOGRAPH - ,0xA6B3 ,0x6709 //CJK UNIFIED IDEOGRAPH - ,0xA6B4 ,0x673D //CJK UNIFIED IDEOGRAPH - ,0xA6B5 ,0x6734 //CJK UNIFIED IDEOGRAPH - ,0xA6B6 ,0x6731 //CJK UNIFIED IDEOGRAPH - ,0xA6B7 ,0x6735 //CJK UNIFIED IDEOGRAPH - ,0xA6B8 ,0x6B21 //CJK UNIFIED IDEOGRAPH - ,0xA6B9 ,0x6B64 //CJK UNIFIED IDEOGRAPH - ,0xA6BA ,0x6B7B //CJK UNIFIED IDEOGRAPH - ,0xA6BB ,0x6C16 //CJK UNIFIED IDEOGRAPH - ,0xA6BC ,0x6C5D //CJK UNIFIED IDEOGRAPH - ,0xA6BD ,0x6C57 //CJK UNIFIED IDEOGRAPH - ,0xA6BE ,0x6C59 //CJK UNIFIED IDEOGRAPH - ,0xA6BF ,0x6C5F //CJK UNIFIED IDEOGRAPH - ,0xA6C0 ,0x6C60 //CJK UNIFIED IDEOGRAPH - ,0xA6C1 ,0x6C50 //CJK UNIFIED IDEOGRAPH - ,0xA6C2 ,0x6C55 //CJK UNIFIED IDEOGRAPH - ,0xA6C3 ,0x6C61 //CJK UNIFIED IDEOGRAPH - ,0xA6C4 ,0x6C5B //CJK UNIFIED IDEOGRAPH - ,0xA6C5 ,0x6C4D //CJK UNIFIED IDEOGRAPH - ,0xA6C6 ,0x6C4E //CJK UNIFIED IDEOGRAPH - ,0xA6C7 ,0x7070 //CJK UNIFIED IDEOGRAPH - ,0xA6C8 ,0x725F //CJK UNIFIED IDEOGRAPH - ,0xA6C9 ,0x725D //CJK UNIFIED IDEOGRAPH - ,0xA6CA ,0x767E //CJK UNIFIED IDEOGRAPH - ,0xA6CB ,0x7AF9 //CJK UNIFIED IDEOGRAPH - ,0xA6CC ,0x7C73 //CJK UNIFIED IDEOGRAPH - ,0xA6CD ,0x7CF8 //CJK UNIFIED IDEOGRAPH - ,0xA6CE ,0x7F36 //CJK UNIFIED IDEOGRAPH - ,0xA6CF ,0x7F8A //CJK UNIFIED IDEOGRAPH - ,0xA6D0 ,0x7FBD //CJK UNIFIED IDEOGRAPH - ,0xA6D1 ,0x8001 //CJK UNIFIED IDEOGRAPH - ,0xA6D2 ,0x8003 //CJK UNIFIED IDEOGRAPH - ,0xA6D3 ,0x800C //CJK UNIFIED IDEOGRAPH - ,0xA6D4 ,0x8012 //CJK UNIFIED IDEOGRAPH - ,0xA6D5 ,0x8033 //CJK UNIFIED IDEOGRAPH - ,0xA6D6 ,0x807F //CJK UNIFIED IDEOGRAPH - ,0xA6D7 ,0x8089 //CJK UNIFIED IDEOGRAPH - ,0xA6D8 ,0x808B //CJK UNIFIED IDEOGRAPH - ,0xA6D9 ,0x808C //CJK UNIFIED IDEOGRAPH - ,0xA6DA ,0x81E3 //CJK UNIFIED IDEOGRAPH - ,0xA6DB ,0x81EA //CJK UNIFIED IDEOGRAPH - ,0xA6DC ,0x81F3 //CJK UNIFIED IDEOGRAPH - ,0xA6DD ,0x81FC //CJK UNIFIED IDEOGRAPH - ,0xA6DE ,0x820C //CJK UNIFIED IDEOGRAPH - ,0xA6DF ,0x821B //CJK UNIFIED IDEOGRAPH - ,0xA6E0 ,0x821F //CJK UNIFIED IDEOGRAPH - ,0xA6E1 ,0x826E //CJK UNIFIED IDEOGRAPH - ,0xA6E2 ,0x8272 //CJK UNIFIED IDEOGRAPH - ,0xA6E3 ,0x827E //CJK UNIFIED IDEOGRAPH - ,0xA6E4 ,0x866B //CJK UNIFIED IDEOGRAPH - ,0xA6E5 ,0x8840 //CJK UNIFIED IDEOGRAPH - ,0xA6E6 ,0x884C //CJK UNIFIED IDEOGRAPH - ,0xA6E7 ,0x8863 //CJK UNIFIED IDEOGRAPH - ,0xA6E8 ,0x897F //CJK UNIFIED IDEOGRAPH - ,0xA6E9 ,0x9621 //CJK UNIFIED IDEOGRAPH - ,0xA6EA ,0x4E32 //CJK UNIFIED IDEOGRAPH - ,0xA6EB ,0x4EA8 //CJK UNIFIED IDEOGRAPH - ,0xA6EC ,0x4F4D //CJK UNIFIED IDEOGRAPH - ,0xA6ED ,0x4F4F //CJK UNIFIED IDEOGRAPH - ,0xA6EE ,0x4F47 //CJK UNIFIED IDEOGRAPH - ,0xA6EF ,0x4F57 //CJK UNIFIED IDEOGRAPH - ,0xA6F0 ,0x4F5E //CJK UNIFIED IDEOGRAPH - ,0xA6F1 ,0x4F34 //CJK UNIFIED IDEOGRAPH - ,0xA6F2 ,0x4F5B //CJK UNIFIED IDEOGRAPH - ,0xA6F3 ,0x4F55 //CJK UNIFIED IDEOGRAPH - ,0xA6F4 ,0x4F30 //CJK UNIFIED IDEOGRAPH - ,0xA6F5 ,0x4F50 //CJK UNIFIED IDEOGRAPH - ,0xA6F6 ,0x4F51 //CJK UNIFIED IDEOGRAPH - ,0xA6F7 ,0x4F3D //CJK UNIFIED IDEOGRAPH - ,0xA6F8 ,0x4F3A //CJK UNIFIED IDEOGRAPH - ,0xA6F9 ,0x4F38 //CJK UNIFIED IDEOGRAPH - ,0xA6FA ,0x4F43 //CJK UNIFIED IDEOGRAPH - ,0xA6FB ,0x4F54 //CJK UNIFIED IDEOGRAPH - ,0xA6FC ,0x4F3C //CJK UNIFIED IDEOGRAPH - ,0xA6FD ,0x4F46 //CJK UNIFIED IDEOGRAPH - ,0xA6FE ,0x4F63 //CJK UNIFIED IDEOGRAPH - ,0xA740 ,0x4F5C //CJK UNIFIED IDEOGRAPH - ,0xA741 ,0x4F60 //CJK UNIFIED IDEOGRAPH - ,0xA742 ,0x4F2F //CJK UNIFIED IDEOGRAPH - ,0xA743 ,0x4F4E //CJK UNIFIED IDEOGRAPH - ,0xA744 ,0x4F36 //CJK UNIFIED IDEOGRAPH - ,0xA745 ,0x4F59 //CJK UNIFIED IDEOGRAPH - ,0xA746 ,0x4F5D //CJK UNIFIED IDEOGRAPH - ,0xA747 ,0x4F48 //CJK UNIFIED IDEOGRAPH - ,0xA748 ,0x4F5A //CJK UNIFIED IDEOGRAPH - ,0xA749 ,0x514C //CJK UNIFIED IDEOGRAPH - ,0xA74A ,0x514B //CJK UNIFIED IDEOGRAPH - ,0xA74B ,0x514D //CJK UNIFIED IDEOGRAPH - ,0xA74C ,0x5175 //CJK UNIFIED IDEOGRAPH - ,0xA74D ,0x51B6 //CJK UNIFIED IDEOGRAPH - ,0xA74E ,0x51B7 //CJK UNIFIED IDEOGRAPH - ,0xA74F ,0x5225 //CJK UNIFIED IDEOGRAPH - ,0xA750 ,0x5224 //CJK UNIFIED IDEOGRAPH - ,0xA751 ,0x5229 //CJK UNIFIED IDEOGRAPH - ,0xA752 ,0x522A //CJK UNIFIED IDEOGRAPH - ,0xA753 ,0x5228 //CJK UNIFIED IDEOGRAPH - ,0xA754 ,0x52AB //CJK UNIFIED IDEOGRAPH - ,0xA755 ,0x52A9 //CJK UNIFIED IDEOGRAPH - ,0xA756 ,0x52AA //CJK UNIFIED IDEOGRAPH - ,0xA757 ,0x52AC //CJK UNIFIED IDEOGRAPH - ,0xA758 ,0x5323 //CJK UNIFIED IDEOGRAPH - ,0xA759 ,0x5373 //CJK UNIFIED IDEOGRAPH - ,0xA75A ,0x5375 //CJK UNIFIED IDEOGRAPH - ,0xA75B ,0x541D //CJK UNIFIED IDEOGRAPH - ,0xA75C ,0x542D //CJK UNIFIED IDEOGRAPH - ,0xA75D ,0x541E //CJK UNIFIED IDEOGRAPH - ,0xA75E ,0x543E //CJK UNIFIED IDEOGRAPH - ,0xA75F ,0x5426 //CJK UNIFIED IDEOGRAPH - ,0xA760 ,0x544E //CJK UNIFIED IDEOGRAPH - ,0xA761 ,0x5427 //CJK UNIFIED IDEOGRAPH - ,0xA762 ,0x5446 //CJK UNIFIED IDEOGRAPH - ,0xA763 ,0x5443 //CJK UNIFIED IDEOGRAPH - ,0xA764 ,0x5433 //CJK UNIFIED IDEOGRAPH - ,0xA765 ,0x5448 //CJK UNIFIED IDEOGRAPH - ,0xA766 ,0x5442 //CJK UNIFIED IDEOGRAPH - ,0xA767 ,0x541B //CJK UNIFIED IDEOGRAPH - ,0xA768 ,0x5429 //CJK UNIFIED IDEOGRAPH - ,0xA769 ,0x544A //CJK UNIFIED IDEOGRAPH - ,0xA76A ,0x5439 //CJK UNIFIED IDEOGRAPH - ,0xA76B ,0x543B //CJK UNIFIED IDEOGRAPH - ,0xA76C ,0x5438 //CJK UNIFIED IDEOGRAPH - ,0xA76D ,0x542E //CJK UNIFIED IDEOGRAPH - ,0xA76E ,0x5435 //CJK UNIFIED IDEOGRAPH - ,0xA76F ,0x5436 //CJK UNIFIED IDEOGRAPH - ,0xA770 ,0x5420 //CJK UNIFIED IDEOGRAPH - ,0xA771 ,0x543C //CJK UNIFIED IDEOGRAPH - ,0xA772 ,0x5440 //CJK UNIFIED IDEOGRAPH - ,0xA773 ,0x5431 //CJK UNIFIED IDEOGRAPH - ,0xA774 ,0x542B //CJK UNIFIED IDEOGRAPH - ,0xA775 ,0x541F //CJK UNIFIED IDEOGRAPH - ,0xA776 ,0x542C //CJK UNIFIED IDEOGRAPH - ,0xA777 ,0x56EA //CJK UNIFIED IDEOGRAPH - ,0xA778 ,0x56F0 //CJK UNIFIED IDEOGRAPH - ,0xA779 ,0x56E4 //CJK UNIFIED IDEOGRAPH - ,0xA77A ,0x56EB //CJK UNIFIED IDEOGRAPH - ,0xA77B ,0x574A //CJK UNIFIED IDEOGRAPH - ,0xA77C ,0x5751 //CJK UNIFIED IDEOGRAPH - ,0xA77D ,0x5740 //CJK UNIFIED IDEOGRAPH - ,0xA77E ,0x574D //CJK UNIFIED IDEOGRAPH - ,0xA7A1 ,0x5747 //CJK UNIFIED IDEOGRAPH - ,0xA7A2 ,0x574E //CJK UNIFIED IDEOGRAPH - ,0xA7A3 ,0x573E //CJK UNIFIED IDEOGRAPH - ,0xA7A4 ,0x5750 //CJK UNIFIED IDEOGRAPH - ,0xA7A5 ,0x574F //CJK UNIFIED IDEOGRAPH - ,0xA7A6 ,0x573B //CJK UNIFIED IDEOGRAPH - ,0xA7A7 ,0x58EF //CJK UNIFIED IDEOGRAPH - ,0xA7A8 ,0x593E //CJK UNIFIED IDEOGRAPH - ,0xA7A9 ,0x599D //CJK UNIFIED IDEOGRAPH - ,0xA7AA ,0x5992 //CJK UNIFIED IDEOGRAPH - ,0xA7AB ,0x59A8 //CJK UNIFIED IDEOGRAPH - ,0xA7AC ,0x599E //CJK UNIFIED IDEOGRAPH - ,0xA7AD ,0x59A3 //CJK UNIFIED IDEOGRAPH - ,0xA7AE ,0x5999 //CJK UNIFIED IDEOGRAPH - ,0xA7AF ,0x5996 //CJK UNIFIED IDEOGRAPH - ,0xA7B0 ,0x598D //CJK UNIFIED IDEOGRAPH - ,0xA7B1 ,0x59A4 //CJK UNIFIED IDEOGRAPH - ,0xA7B2 ,0x5993 //CJK UNIFIED IDEOGRAPH - ,0xA7B3 ,0x598A //CJK UNIFIED IDEOGRAPH - ,0xA7B4 ,0x59A5 //CJK UNIFIED IDEOGRAPH - ,0xA7B5 ,0x5B5D //CJK UNIFIED IDEOGRAPH - ,0xA7B6 ,0x5B5C //CJK UNIFIED IDEOGRAPH - ,0xA7B7 ,0x5B5A //CJK UNIFIED IDEOGRAPH - ,0xA7B8 ,0x5B5B //CJK UNIFIED IDEOGRAPH - ,0xA7B9 ,0x5B8C //CJK UNIFIED IDEOGRAPH - ,0xA7BA ,0x5B8B //CJK UNIFIED IDEOGRAPH - ,0xA7BB ,0x5B8F //CJK UNIFIED IDEOGRAPH - ,0xA7BC ,0x5C2C //CJK UNIFIED IDEOGRAPH - ,0xA7BD ,0x5C40 //CJK UNIFIED IDEOGRAPH - ,0xA7BE ,0x5C41 //CJK UNIFIED IDEOGRAPH - ,0xA7BF ,0x5C3F //CJK UNIFIED IDEOGRAPH - ,0xA7C0 ,0x5C3E //CJK UNIFIED IDEOGRAPH - ,0xA7C1 ,0x5C90 //CJK UNIFIED IDEOGRAPH - ,0xA7C2 ,0x5C91 //CJK UNIFIED IDEOGRAPH - ,0xA7C3 ,0x5C94 //CJK UNIFIED IDEOGRAPH - ,0xA7C4 ,0x5C8C //CJK UNIFIED IDEOGRAPH - ,0xA7C5 ,0x5DEB //CJK UNIFIED IDEOGRAPH - ,0xA7C6 ,0x5E0C //CJK UNIFIED IDEOGRAPH - ,0xA7C7 ,0x5E8F //CJK UNIFIED IDEOGRAPH - ,0xA7C8 ,0x5E87 //CJK UNIFIED IDEOGRAPH - ,0xA7C9 ,0x5E8A //CJK UNIFIED IDEOGRAPH - ,0xA7CA ,0x5EF7 //CJK UNIFIED IDEOGRAPH - ,0xA7CB ,0x5F04 //CJK UNIFIED IDEOGRAPH - ,0xA7CC ,0x5F1F //CJK UNIFIED IDEOGRAPH - ,0xA7CD ,0x5F64 //CJK UNIFIED IDEOGRAPH - ,0xA7CE ,0x5F62 //CJK UNIFIED IDEOGRAPH - ,0xA7CF ,0x5F77 //CJK UNIFIED IDEOGRAPH - ,0xA7D0 ,0x5F79 //CJK UNIFIED IDEOGRAPH - ,0xA7D1 ,0x5FD8 //CJK UNIFIED IDEOGRAPH - ,0xA7D2 ,0x5FCC //CJK UNIFIED IDEOGRAPH - ,0xA7D3 ,0x5FD7 //CJK UNIFIED IDEOGRAPH - ,0xA7D4 ,0x5FCD //CJK UNIFIED IDEOGRAPH - ,0xA7D5 ,0x5FF1 //CJK UNIFIED IDEOGRAPH - ,0xA7D6 ,0x5FEB //CJK UNIFIED IDEOGRAPH - ,0xA7D7 ,0x5FF8 //CJK UNIFIED IDEOGRAPH - ,0xA7D8 ,0x5FEA //CJK UNIFIED IDEOGRAPH - ,0xA7D9 ,0x6212 //CJK UNIFIED IDEOGRAPH - ,0xA7DA ,0x6211 //CJK UNIFIED IDEOGRAPH - ,0xA7DB ,0x6284 //CJK UNIFIED IDEOGRAPH - ,0xA7DC ,0x6297 //CJK UNIFIED IDEOGRAPH - ,0xA7DD ,0x6296 //CJK UNIFIED IDEOGRAPH - ,0xA7DE ,0x6280 //CJK UNIFIED IDEOGRAPH - ,0xA7DF ,0x6276 //CJK UNIFIED IDEOGRAPH - ,0xA7E0 ,0x6289 //CJK UNIFIED IDEOGRAPH - ,0xA7E1 ,0x626D //CJK UNIFIED IDEOGRAPH - ,0xA7E2 ,0x628A //CJK UNIFIED IDEOGRAPH - ,0xA7E3 ,0x627C //CJK UNIFIED IDEOGRAPH - ,0xA7E4 ,0x627E //CJK UNIFIED IDEOGRAPH - ,0xA7E5 ,0x6279 //CJK UNIFIED IDEOGRAPH - ,0xA7E6 ,0x6273 //CJK UNIFIED IDEOGRAPH - ,0xA7E7 ,0x6292 //CJK UNIFIED IDEOGRAPH - ,0xA7E8 ,0x626F //CJK UNIFIED IDEOGRAPH - ,0xA7E9 ,0x6298 //CJK UNIFIED IDEOGRAPH - ,0xA7EA ,0x626E //CJK UNIFIED IDEOGRAPH - ,0xA7EB ,0x6295 //CJK UNIFIED IDEOGRAPH - ,0xA7EC ,0x6293 //CJK UNIFIED IDEOGRAPH - ,0xA7ED ,0x6291 //CJK UNIFIED IDEOGRAPH - ,0xA7EE ,0x6286 //CJK UNIFIED IDEOGRAPH - ,0xA7EF ,0x6539 //CJK UNIFIED IDEOGRAPH - ,0xA7F0 ,0x653B //CJK UNIFIED IDEOGRAPH - ,0xA7F1 ,0x6538 //CJK UNIFIED IDEOGRAPH - ,0xA7F2 ,0x65F1 //CJK UNIFIED IDEOGRAPH - ,0xA7F3 ,0x66F4 //CJK UNIFIED IDEOGRAPH - ,0xA7F4 ,0x675F //CJK UNIFIED IDEOGRAPH - ,0xA7F5 ,0x674E //CJK UNIFIED IDEOGRAPH - ,0xA7F6 ,0x674F //CJK UNIFIED IDEOGRAPH - ,0xA7F7 ,0x6750 //CJK UNIFIED IDEOGRAPH - ,0xA7F8 ,0x6751 //CJK UNIFIED IDEOGRAPH - ,0xA7F9 ,0x675C //CJK UNIFIED IDEOGRAPH - ,0xA7FA ,0x6756 //CJK UNIFIED IDEOGRAPH - ,0xA7FB ,0x675E //CJK UNIFIED IDEOGRAPH - ,0xA7FC ,0x6749 //CJK UNIFIED IDEOGRAPH - ,0xA7FD ,0x6746 //CJK UNIFIED IDEOGRAPH - ,0xA7FE ,0x6760 //CJK UNIFIED IDEOGRAPH - ,0xA840 ,0x6753 //CJK UNIFIED IDEOGRAPH - ,0xA841 ,0x6757 //CJK UNIFIED IDEOGRAPH - ,0xA842 ,0x6B65 //CJK UNIFIED IDEOGRAPH - ,0xA843 ,0x6BCF //CJK UNIFIED IDEOGRAPH - ,0xA844 ,0x6C42 //CJK UNIFIED IDEOGRAPH - ,0xA845 ,0x6C5E //CJK UNIFIED IDEOGRAPH - ,0xA846 ,0x6C99 //CJK UNIFIED IDEOGRAPH - ,0xA847 ,0x6C81 //CJK UNIFIED IDEOGRAPH - ,0xA848 ,0x6C88 //CJK UNIFIED IDEOGRAPH - ,0xA849 ,0x6C89 //CJK UNIFIED IDEOGRAPH - ,0xA84A ,0x6C85 //CJK UNIFIED IDEOGRAPH - ,0xA84B ,0x6C9B //CJK UNIFIED IDEOGRAPH - ,0xA84C ,0x6C6A //CJK UNIFIED IDEOGRAPH - ,0xA84D ,0x6C7A //CJK UNIFIED IDEOGRAPH - ,0xA84E ,0x6C90 //CJK UNIFIED IDEOGRAPH - ,0xA84F ,0x6C70 //CJK UNIFIED IDEOGRAPH - ,0xA850 ,0x6C8C //CJK UNIFIED IDEOGRAPH - ,0xA851 ,0x6C68 //CJK UNIFIED IDEOGRAPH - ,0xA852 ,0x6C96 //CJK UNIFIED IDEOGRAPH - ,0xA853 ,0x6C92 //CJK UNIFIED IDEOGRAPH - ,0xA854 ,0x6C7D //CJK UNIFIED IDEOGRAPH - ,0xA855 ,0x6C83 //CJK UNIFIED IDEOGRAPH - ,0xA856 ,0x6C72 //CJK UNIFIED IDEOGRAPH - ,0xA857 ,0x6C7E //CJK UNIFIED IDEOGRAPH - ,0xA858 ,0x6C74 //CJK UNIFIED IDEOGRAPH - ,0xA859 ,0x6C86 //CJK UNIFIED IDEOGRAPH - ,0xA85A ,0x6C76 //CJK UNIFIED IDEOGRAPH - ,0xA85B ,0x6C8D //CJK UNIFIED IDEOGRAPH - ,0xA85C ,0x6C94 //CJK UNIFIED IDEOGRAPH - ,0xA85D ,0x6C98 //CJK UNIFIED IDEOGRAPH - ,0xA85E ,0x6C82 //CJK UNIFIED IDEOGRAPH - ,0xA85F ,0x7076 //CJK UNIFIED IDEOGRAPH - ,0xA860 ,0x707C //CJK UNIFIED IDEOGRAPH - ,0xA861 ,0x707D //CJK UNIFIED IDEOGRAPH - ,0xA862 ,0x7078 //CJK UNIFIED IDEOGRAPH - ,0xA863 ,0x7262 //CJK UNIFIED IDEOGRAPH - ,0xA864 ,0x7261 //CJK UNIFIED IDEOGRAPH - ,0xA865 ,0x7260 //CJK UNIFIED IDEOGRAPH - ,0xA866 ,0x72C4 //CJK UNIFIED IDEOGRAPH - ,0xA867 ,0x72C2 //CJK UNIFIED IDEOGRAPH - ,0xA868 ,0x7396 //CJK UNIFIED IDEOGRAPH - ,0xA869 ,0x752C //CJK UNIFIED IDEOGRAPH - ,0xA86A ,0x752B //CJK UNIFIED IDEOGRAPH - ,0xA86B ,0x7537 //CJK UNIFIED IDEOGRAPH - ,0xA86C ,0x7538 //CJK UNIFIED IDEOGRAPH - ,0xA86D ,0x7682 //CJK UNIFIED IDEOGRAPH - ,0xA86E ,0x76EF //CJK UNIFIED IDEOGRAPH - ,0xA86F ,0x77E3 //CJK UNIFIED IDEOGRAPH - ,0xA870 ,0x79C1 //CJK UNIFIED IDEOGRAPH - ,0xA871 ,0x79C0 //CJK UNIFIED IDEOGRAPH - ,0xA872 ,0x79BF //CJK UNIFIED IDEOGRAPH - ,0xA873 ,0x7A76 //CJK UNIFIED IDEOGRAPH - ,0xA874 ,0x7CFB //CJK UNIFIED IDEOGRAPH - ,0xA875 ,0x7F55 //CJK UNIFIED IDEOGRAPH - ,0xA876 ,0x8096 //CJK UNIFIED IDEOGRAPH - ,0xA877 ,0x8093 //CJK UNIFIED IDEOGRAPH - ,0xA878 ,0x809D //CJK UNIFIED IDEOGRAPH - ,0xA879 ,0x8098 //CJK UNIFIED IDEOGRAPH - ,0xA87A ,0x809B //CJK UNIFIED IDEOGRAPH - ,0xA87B ,0x809A //CJK UNIFIED IDEOGRAPH - ,0xA87C ,0x80B2 //CJK UNIFIED IDEOGRAPH - ,0xA87D ,0x826F //CJK UNIFIED IDEOGRAPH - ,0xA87E ,0x8292 //CJK UNIFIED IDEOGRAPH - ,0xA8A1 ,0x828B //CJK UNIFIED IDEOGRAPH - ,0xA8A2 ,0x828D //CJK UNIFIED IDEOGRAPH - ,0xA8A3 ,0x898B //CJK UNIFIED IDEOGRAPH - ,0xA8A4 ,0x89D2 //CJK UNIFIED IDEOGRAPH - ,0xA8A5 ,0x8A00 //CJK UNIFIED IDEOGRAPH - ,0xA8A6 ,0x8C37 //CJK UNIFIED IDEOGRAPH - ,0xA8A7 ,0x8C46 //CJK UNIFIED IDEOGRAPH - ,0xA8A8 ,0x8C55 //CJK UNIFIED IDEOGRAPH - ,0xA8A9 ,0x8C9D //CJK UNIFIED IDEOGRAPH - ,0xA8AA ,0x8D64 //CJK UNIFIED IDEOGRAPH - ,0xA8AB ,0x8D70 //CJK UNIFIED IDEOGRAPH - ,0xA8AC ,0x8DB3 //CJK UNIFIED IDEOGRAPH - ,0xA8AD ,0x8EAB //CJK UNIFIED IDEOGRAPH - ,0xA8AE ,0x8ECA //CJK UNIFIED IDEOGRAPH - ,0xA8AF ,0x8F9B //CJK UNIFIED IDEOGRAPH - ,0xA8B0 ,0x8FB0 //CJK UNIFIED IDEOGRAPH - ,0xA8B1 ,0x8FC2 //CJK UNIFIED IDEOGRAPH - ,0xA8B2 ,0x8FC6 //CJK UNIFIED IDEOGRAPH - ,0xA8B3 ,0x8FC5 //CJK UNIFIED IDEOGRAPH - ,0xA8B4 ,0x8FC4 //CJK UNIFIED IDEOGRAPH - ,0xA8B5 ,0x5DE1 //CJK UNIFIED IDEOGRAPH - ,0xA8B6 ,0x9091 //CJK UNIFIED IDEOGRAPH - ,0xA8B7 ,0x90A2 //CJK UNIFIED IDEOGRAPH - ,0xA8B8 ,0x90AA //CJK UNIFIED IDEOGRAPH - ,0xA8B9 ,0x90A6 //CJK UNIFIED IDEOGRAPH - ,0xA8BA ,0x90A3 //CJK UNIFIED IDEOGRAPH - ,0xA8BB ,0x9149 //CJK UNIFIED IDEOGRAPH - ,0xA8BC ,0x91C6 //CJK UNIFIED IDEOGRAPH - ,0xA8BD ,0x91CC //CJK UNIFIED IDEOGRAPH - ,0xA8BE ,0x9632 //CJK UNIFIED IDEOGRAPH - ,0xA8BF ,0x962E //CJK UNIFIED IDEOGRAPH - ,0xA8C0 ,0x9631 //CJK UNIFIED IDEOGRAPH - ,0xA8C1 ,0x962A //CJK UNIFIED IDEOGRAPH - ,0xA8C2 ,0x962C //CJK UNIFIED IDEOGRAPH - ,0xA8C3 ,0x4E26 //CJK UNIFIED IDEOGRAPH - ,0xA8C4 ,0x4E56 //CJK UNIFIED IDEOGRAPH - ,0xA8C5 ,0x4E73 //CJK UNIFIED IDEOGRAPH - ,0xA8C6 ,0x4E8B //CJK UNIFIED IDEOGRAPH - ,0xA8C7 ,0x4E9B //CJK UNIFIED IDEOGRAPH - ,0xA8C8 ,0x4E9E //CJK UNIFIED IDEOGRAPH - ,0xA8C9 ,0x4EAB //CJK UNIFIED IDEOGRAPH - ,0xA8CA ,0x4EAC //CJK UNIFIED IDEOGRAPH - ,0xA8CB ,0x4F6F //CJK UNIFIED IDEOGRAPH - ,0xA8CC ,0x4F9D //CJK UNIFIED IDEOGRAPH - ,0xA8CD ,0x4F8D //CJK UNIFIED IDEOGRAPH - ,0xA8CE ,0x4F73 //CJK UNIFIED IDEOGRAPH - ,0xA8CF ,0x4F7F //CJK UNIFIED IDEOGRAPH - ,0xA8D0 ,0x4F6C //CJK UNIFIED IDEOGRAPH - ,0xA8D1 ,0x4F9B //CJK UNIFIED IDEOGRAPH - ,0xA8D2 ,0x4F8B //CJK UNIFIED IDEOGRAPH - ,0xA8D3 ,0x4F86 //CJK UNIFIED IDEOGRAPH - ,0xA8D4 ,0x4F83 //CJK UNIFIED IDEOGRAPH - ,0xA8D5 ,0x4F70 //CJK UNIFIED IDEOGRAPH - ,0xA8D6 ,0x4F75 //CJK UNIFIED IDEOGRAPH - ,0xA8D7 ,0x4F88 //CJK UNIFIED IDEOGRAPH - ,0xA8D8 ,0x4F69 //CJK UNIFIED IDEOGRAPH - ,0xA8D9 ,0x4F7B //CJK UNIFIED IDEOGRAPH - ,0xA8DA ,0x4F96 //CJK UNIFIED IDEOGRAPH - ,0xA8DB ,0x4F7E //CJK UNIFIED IDEOGRAPH - ,0xA8DC ,0x4F8F //CJK UNIFIED IDEOGRAPH - ,0xA8DD ,0x4F91 //CJK UNIFIED IDEOGRAPH - ,0xA8DE ,0x4F7A //CJK UNIFIED IDEOGRAPH - ,0xA8DF ,0x5154 //CJK UNIFIED IDEOGRAPH - ,0xA8E0 ,0x5152 //CJK UNIFIED IDEOGRAPH - ,0xA8E1 ,0x5155 //CJK UNIFIED IDEOGRAPH - ,0xA8E2 ,0x5169 //CJK UNIFIED IDEOGRAPH - ,0xA8E3 ,0x5177 //CJK UNIFIED IDEOGRAPH - ,0xA8E4 ,0x5176 //CJK UNIFIED IDEOGRAPH - ,0xA8E5 ,0x5178 //CJK UNIFIED IDEOGRAPH - ,0xA8E6 ,0x51BD //CJK UNIFIED IDEOGRAPH - ,0xA8E7 ,0x51FD //CJK UNIFIED IDEOGRAPH - ,0xA8E8 ,0x523B //CJK UNIFIED IDEOGRAPH - ,0xA8E9 ,0x5238 //CJK UNIFIED IDEOGRAPH - ,0xA8EA ,0x5237 //CJK UNIFIED IDEOGRAPH - ,0xA8EB ,0x523A //CJK UNIFIED IDEOGRAPH - ,0xA8EC ,0x5230 //CJK UNIFIED IDEOGRAPH - ,0xA8ED ,0x522E //CJK UNIFIED IDEOGRAPH - ,0xA8EE ,0x5236 //CJK UNIFIED IDEOGRAPH - ,0xA8EF ,0x5241 //CJK UNIFIED IDEOGRAPH - ,0xA8F0 ,0x52BE //CJK UNIFIED IDEOGRAPH - ,0xA8F1 ,0x52BB //CJK UNIFIED IDEOGRAPH - ,0xA8F2 ,0x5352 //CJK UNIFIED IDEOGRAPH - ,0xA8F3 ,0x5354 //CJK UNIFIED IDEOGRAPH - ,0xA8F4 ,0x5353 //CJK UNIFIED IDEOGRAPH - ,0xA8F5 ,0x5351 //CJK UNIFIED IDEOGRAPH - ,0xA8F6 ,0x5366 //CJK UNIFIED IDEOGRAPH - ,0xA8F7 ,0x5377 //CJK UNIFIED IDEOGRAPH - ,0xA8F8 ,0x5378 //CJK UNIFIED IDEOGRAPH - ,0xA8F9 ,0x5379 //CJK UNIFIED IDEOGRAPH - ,0xA8FA ,0x53D6 //CJK UNIFIED IDEOGRAPH - ,0xA8FB ,0x53D4 //CJK UNIFIED IDEOGRAPH - ,0xA8FC ,0x53D7 //CJK UNIFIED IDEOGRAPH - ,0xA8FD ,0x5473 //CJK UNIFIED IDEOGRAPH - ,0xA8FE ,0x5475 //CJK UNIFIED IDEOGRAPH - ,0xA940 ,0x5496 //CJK UNIFIED IDEOGRAPH - ,0xA941 ,0x5478 //CJK UNIFIED IDEOGRAPH - ,0xA942 ,0x5495 //CJK UNIFIED IDEOGRAPH - ,0xA943 ,0x5480 //CJK UNIFIED IDEOGRAPH - ,0xA944 ,0x547B //CJK UNIFIED IDEOGRAPH - ,0xA945 ,0x5477 //CJK UNIFIED IDEOGRAPH - ,0xA946 ,0x5484 //CJK UNIFIED IDEOGRAPH - ,0xA947 ,0x5492 //CJK UNIFIED IDEOGRAPH - ,0xA948 ,0x5486 //CJK UNIFIED IDEOGRAPH - ,0xA949 ,0x547C //CJK UNIFIED IDEOGRAPH - ,0xA94A ,0x5490 //CJK UNIFIED IDEOGRAPH - ,0xA94B ,0x5471 //CJK UNIFIED IDEOGRAPH - ,0xA94C ,0x5476 //CJK UNIFIED IDEOGRAPH - ,0xA94D ,0x548C //CJK UNIFIED IDEOGRAPH - ,0xA94E ,0x549A //CJK UNIFIED IDEOGRAPH - ,0xA94F ,0x5462 //CJK UNIFIED IDEOGRAPH - ,0xA950 ,0x5468 //CJK UNIFIED IDEOGRAPH - ,0xA951 ,0x548B //CJK UNIFIED IDEOGRAPH - ,0xA952 ,0x547D //CJK UNIFIED IDEOGRAPH - ,0xA953 ,0x548E //CJK UNIFIED IDEOGRAPH - ,0xA954 ,0x56FA //CJK UNIFIED IDEOGRAPH - ,0xA955 ,0x5783 //CJK UNIFIED IDEOGRAPH - ,0xA956 ,0x5777 //CJK UNIFIED IDEOGRAPH - ,0xA957 ,0x576A //CJK UNIFIED IDEOGRAPH - ,0xA958 ,0x5769 //CJK UNIFIED IDEOGRAPH - ,0xA959 ,0x5761 //CJK UNIFIED IDEOGRAPH - ,0xA95A ,0x5766 //CJK UNIFIED IDEOGRAPH - ,0xA95B ,0x5764 //CJK UNIFIED IDEOGRAPH - ,0xA95C ,0x577C //CJK UNIFIED IDEOGRAPH - ,0xA95D ,0x591C //CJK UNIFIED IDEOGRAPH - ,0xA95E ,0x5949 //CJK UNIFIED IDEOGRAPH - ,0xA95F ,0x5947 //CJK UNIFIED IDEOGRAPH - ,0xA960 ,0x5948 //CJK UNIFIED IDEOGRAPH - ,0xA961 ,0x5944 //CJK UNIFIED IDEOGRAPH - ,0xA962 ,0x5954 //CJK UNIFIED IDEOGRAPH - ,0xA963 ,0x59BE //CJK UNIFIED IDEOGRAPH - ,0xA964 ,0x59BB //CJK UNIFIED IDEOGRAPH - ,0xA965 ,0x59D4 //CJK UNIFIED IDEOGRAPH - ,0xA966 ,0x59B9 //CJK UNIFIED IDEOGRAPH - ,0xA967 ,0x59AE //CJK UNIFIED IDEOGRAPH - ,0xA968 ,0x59D1 //CJK UNIFIED IDEOGRAPH - ,0xA969 ,0x59C6 //CJK UNIFIED IDEOGRAPH - ,0xA96A ,0x59D0 //CJK UNIFIED IDEOGRAPH - ,0xA96B ,0x59CD //CJK UNIFIED IDEOGRAPH - ,0xA96C ,0x59CB //CJK UNIFIED IDEOGRAPH - ,0xA96D ,0x59D3 //CJK UNIFIED IDEOGRAPH - ,0xA96E ,0x59CA //CJK UNIFIED IDEOGRAPH - ,0xA96F ,0x59AF //CJK UNIFIED IDEOGRAPH - ,0xA970 ,0x59B3 //CJK UNIFIED IDEOGRAPH - ,0xA971 ,0x59D2 //CJK UNIFIED IDEOGRAPH - ,0xA972 ,0x59C5 //CJK UNIFIED IDEOGRAPH - ,0xA973 ,0x5B5F //CJK UNIFIED IDEOGRAPH - ,0xA974 ,0x5B64 //CJK UNIFIED IDEOGRAPH - ,0xA975 ,0x5B63 //CJK UNIFIED IDEOGRAPH - ,0xA976 ,0x5B97 //CJK UNIFIED IDEOGRAPH - ,0xA977 ,0x5B9A //CJK UNIFIED IDEOGRAPH - ,0xA978 ,0x5B98 //CJK UNIFIED IDEOGRAPH - ,0xA979 ,0x5B9C //CJK UNIFIED IDEOGRAPH - ,0xA97A ,0x5B99 //CJK UNIFIED IDEOGRAPH - ,0xA97B ,0x5B9B //CJK UNIFIED IDEOGRAPH - ,0xA97C ,0x5C1A //CJK UNIFIED IDEOGRAPH - ,0xA97D ,0x5C48 //CJK UNIFIED IDEOGRAPH - ,0xA97E ,0x5C45 //CJK UNIFIED IDEOGRAPH - ,0xA9A1 ,0x5C46 //CJK UNIFIED IDEOGRAPH - ,0xA9A2 ,0x5CB7 //CJK UNIFIED IDEOGRAPH - ,0xA9A3 ,0x5CA1 //CJK UNIFIED IDEOGRAPH - ,0xA9A4 ,0x5CB8 //CJK UNIFIED IDEOGRAPH - ,0xA9A5 ,0x5CA9 //CJK UNIFIED IDEOGRAPH - ,0xA9A6 ,0x5CAB //CJK UNIFIED IDEOGRAPH - ,0xA9A7 ,0x5CB1 //CJK UNIFIED IDEOGRAPH - ,0xA9A8 ,0x5CB3 //CJK UNIFIED IDEOGRAPH - ,0xA9A9 ,0x5E18 //CJK UNIFIED IDEOGRAPH - ,0xA9AA ,0x5E1A //CJK UNIFIED IDEOGRAPH - ,0xA9AB ,0x5E16 //CJK UNIFIED IDEOGRAPH - ,0xA9AC ,0x5E15 //CJK UNIFIED IDEOGRAPH - ,0xA9AD ,0x5E1B //CJK UNIFIED IDEOGRAPH - ,0xA9AE ,0x5E11 //CJK UNIFIED IDEOGRAPH - ,0xA9AF ,0x5E78 //CJK UNIFIED IDEOGRAPH - ,0xA9B0 ,0x5E9A //CJK UNIFIED IDEOGRAPH - ,0xA9B1 ,0x5E97 //CJK UNIFIED IDEOGRAPH - ,0xA9B2 ,0x5E9C //CJK UNIFIED IDEOGRAPH - ,0xA9B3 ,0x5E95 //CJK UNIFIED IDEOGRAPH - ,0xA9B4 ,0x5E96 //CJK UNIFIED IDEOGRAPH - ,0xA9B5 ,0x5EF6 //CJK UNIFIED IDEOGRAPH - ,0xA9B6 ,0x5F26 //CJK UNIFIED IDEOGRAPH - ,0xA9B7 ,0x5F27 //CJK UNIFIED IDEOGRAPH - ,0xA9B8 ,0x5F29 //CJK UNIFIED IDEOGRAPH - ,0xA9B9 ,0x5F80 //CJK UNIFIED IDEOGRAPH - ,0xA9BA ,0x5F81 //CJK UNIFIED IDEOGRAPH - ,0xA9BB ,0x5F7F //CJK UNIFIED IDEOGRAPH - ,0xA9BC ,0x5F7C //CJK UNIFIED IDEOGRAPH - ,0xA9BD ,0x5FDD //CJK UNIFIED IDEOGRAPH - ,0xA9BE ,0x5FE0 //CJK UNIFIED IDEOGRAPH - ,0xA9BF ,0x5FFD //CJK UNIFIED IDEOGRAPH - ,0xA9C0 ,0x5FF5 //CJK UNIFIED IDEOGRAPH - ,0xA9C1 ,0x5FFF //CJK UNIFIED IDEOGRAPH - ,0xA9C2 ,0x600F //CJK UNIFIED IDEOGRAPH - ,0xA9C3 ,0x6014 //CJK UNIFIED IDEOGRAPH - ,0xA9C4 ,0x602F //CJK UNIFIED IDEOGRAPH - ,0xA9C5 ,0x6035 //CJK UNIFIED IDEOGRAPH - ,0xA9C6 ,0x6016 //CJK UNIFIED IDEOGRAPH - ,0xA9C7 ,0x602A //CJK UNIFIED IDEOGRAPH - ,0xA9C8 ,0x6015 //CJK UNIFIED IDEOGRAPH - ,0xA9C9 ,0x6021 //CJK UNIFIED IDEOGRAPH - ,0xA9CA ,0x6027 //CJK UNIFIED IDEOGRAPH - ,0xA9CB ,0x6029 //CJK UNIFIED IDEOGRAPH - ,0xA9CC ,0x602B //CJK UNIFIED IDEOGRAPH - ,0xA9CD ,0x601B //CJK UNIFIED IDEOGRAPH - ,0xA9CE ,0x6216 //CJK UNIFIED IDEOGRAPH - ,0xA9CF ,0x6215 //CJK UNIFIED IDEOGRAPH - ,0xA9D0 ,0x623F //CJK UNIFIED IDEOGRAPH - ,0xA9D1 ,0x623E //CJK UNIFIED IDEOGRAPH - ,0xA9D2 ,0x6240 //CJK UNIFIED IDEOGRAPH - ,0xA9D3 ,0x627F //CJK UNIFIED IDEOGRAPH - ,0xA9D4 ,0x62C9 //CJK UNIFIED IDEOGRAPH - ,0xA9D5 ,0x62CC //CJK UNIFIED IDEOGRAPH - ,0xA9D6 ,0x62C4 //CJK UNIFIED IDEOGRAPH - ,0xA9D7 ,0x62BF //CJK UNIFIED IDEOGRAPH - ,0xA9D8 ,0x62C2 //CJK UNIFIED IDEOGRAPH - ,0xA9D9 ,0x62B9 //CJK UNIFIED IDEOGRAPH - ,0xA9DA ,0x62D2 //CJK UNIFIED IDEOGRAPH - ,0xA9DB ,0x62DB //CJK UNIFIED IDEOGRAPH - ,0xA9DC ,0x62AB //CJK UNIFIED IDEOGRAPH - ,0xA9DD ,0x62D3 //CJK UNIFIED IDEOGRAPH - ,0xA9DE ,0x62D4 //CJK UNIFIED IDEOGRAPH - ,0xA9DF ,0x62CB //CJK UNIFIED IDEOGRAPH - ,0xA9E0 ,0x62C8 //CJK UNIFIED IDEOGRAPH - ,0xA9E1 ,0x62A8 //CJK UNIFIED IDEOGRAPH - ,0xA9E2 ,0x62BD //CJK UNIFIED IDEOGRAPH - ,0xA9E3 ,0x62BC //CJK UNIFIED IDEOGRAPH - ,0xA9E4 ,0x62D0 //CJK UNIFIED IDEOGRAPH - ,0xA9E5 ,0x62D9 //CJK UNIFIED IDEOGRAPH - ,0xA9E6 ,0x62C7 //CJK UNIFIED IDEOGRAPH - ,0xA9E7 ,0x62CD //CJK UNIFIED IDEOGRAPH - ,0xA9E8 ,0x62B5 //CJK UNIFIED IDEOGRAPH - ,0xA9E9 ,0x62DA //CJK UNIFIED IDEOGRAPH - ,0xA9EA ,0x62B1 //CJK UNIFIED IDEOGRAPH - ,0xA9EB ,0x62D8 //CJK UNIFIED IDEOGRAPH - ,0xA9EC ,0x62D6 //CJK UNIFIED IDEOGRAPH - ,0xA9ED ,0x62D7 //CJK UNIFIED IDEOGRAPH - ,0xA9EE ,0x62C6 //CJK UNIFIED IDEOGRAPH - ,0xA9EF ,0x62AC //CJK UNIFIED IDEOGRAPH - ,0xA9F0 ,0x62CE //CJK UNIFIED IDEOGRAPH - ,0xA9F1 ,0x653E //CJK UNIFIED IDEOGRAPH - ,0xA9F2 ,0x65A7 //CJK UNIFIED IDEOGRAPH - ,0xA9F3 ,0x65BC //CJK UNIFIED IDEOGRAPH - ,0xA9F4 ,0x65FA //CJK UNIFIED IDEOGRAPH - ,0xA9F5 ,0x6614 //CJK UNIFIED IDEOGRAPH - ,0xA9F6 ,0x6613 //CJK UNIFIED IDEOGRAPH - ,0xA9F7 ,0x660C //CJK UNIFIED IDEOGRAPH - ,0xA9F8 ,0x6606 //CJK UNIFIED IDEOGRAPH - ,0xA9F9 ,0x6602 //CJK UNIFIED IDEOGRAPH - ,0xA9FA ,0x660E //CJK UNIFIED IDEOGRAPH - ,0xA9FB ,0x6600 //CJK UNIFIED IDEOGRAPH - ,0xA9FC ,0x660F //CJK UNIFIED IDEOGRAPH - ,0xA9FD ,0x6615 //CJK UNIFIED IDEOGRAPH - ,0xA9FE ,0x660A //CJK UNIFIED IDEOGRAPH - ,0xAA40 ,0x6607 //CJK UNIFIED IDEOGRAPH - ,0xAA41 ,0x670D //CJK UNIFIED IDEOGRAPH - ,0xAA42 ,0x670B //CJK UNIFIED IDEOGRAPH - ,0xAA43 ,0x676D //CJK UNIFIED IDEOGRAPH - ,0xAA44 ,0x678B //CJK UNIFIED IDEOGRAPH - ,0xAA45 ,0x6795 //CJK UNIFIED IDEOGRAPH - ,0xAA46 ,0x6771 //CJK UNIFIED IDEOGRAPH - ,0xAA47 ,0x679C //CJK UNIFIED IDEOGRAPH - ,0xAA48 ,0x6773 //CJK UNIFIED IDEOGRAPH - ,0xAA49 ,0x6777 //CJK UNIFIED IDEOGRAPH - ,0xAA4A ,0x6787 //CJK UNIFIED IDEOGRAPH - ,0xAA4B ,0x679D //CJK UNIFIED IDEOGRAPH - ,0xAA4C ,0x6797 //CJK UNIFIED IDEOGRAPH - ,0xAA4D ,0x676F //CJK UNIFIED IDEOGRAPH - ,0xAA4E ,0x6770 //CJK UNIFIED IDEOGRAPH - ,0xAA4F ,0x677F //CJK UNIFIED IDEOGRAPH - ,0xAA50 ,0x6789 //CJK UNIFIED IDEOGRAPH - ,0xAA51 ,0x677E //CJK UNIFIED IDEOGRAPH - ,0xAA52 ,0x6790 //CJK UNIFIED IDEOGRAPH - ,0xAA53 ,0x6775 //CJK UNIFIED IDEOGRAPH - ,0xAA54 ,0x679A //CJK UNIFIED IDEOGRAPH - ,0xAA55 ,0x6793 //CJK UNIFIED IDEOGRAPH - ,0xAA56 ,0x677C //CJK UNIFIED IDEOGRAPH - ,0xAA57 ,0x676A //CJK UNIFIED IDEOGRAPH - ,0xAA58 ,0x6772 //CJK UNIFIED IDEOGRAPH - ,0xAA59 ,0x6B23 //CJK UNIFIED IDEOGRAPH - ,0xAA5A ,0x6B66 //CJK UNIFIED IDEOGRAPH - ,0xAA5B ,0x6B67 //CJK UNIFIED IDEOGRAPH - ,0xAA5C ,0x6B7F //CJK UNIFIED IDEOGRAPH - ,0xAA5D ,0x6C13 //CJK UNIFIED IDEOGRAPH - ,0xAA5E ,0x6C1B //CJK UNIFIED IDEOGRAPH - ,0xAA5F ,0x6CE3 //CJK UNIFIED IDEOGRAPH - ,0xAA60 ,0x6CE8 //CJK UNIFIED IDEOGRAPH - ,0xAA61 ,0x6CF3 //CJK UNIFIED IDEOGRAPH - ,0xAA62 ,0x6CB1 //CJK UNIFIED IDEOGRAPH - ,0xAA63 ,0x6CCC //CJK UNIFIED IDEOGRAPH - ,0xAA64 ,0x6CE5 //CJK UNIFIED IDEOGRAPH - ,0xAA65 ,0x6CB3 //CJK UNIFIED IDEOGRAPH - ,0xAA66 ,0x6CBD //CJK UNIFIED IDEOGRAPH - ,0xAA67 ,0x6CBE //CJK UNIFIED IDEOGRAPH - ,0xAA68 ,0x6CBC //CJK UNIFIED IDEOGRAPH - ,0xAA69 ,0x6CE2 //CJK UNIFIED IDEOGRAPH - ,0xAA6A ,0x6CAB //CJK UNIFIED IDEOGRAPH - ,0xAA6B ,0x6CD5 //CJK UNIFIED IDEOGRAPH - ,0xAA6C ,0x6CD3 //CJK UNIFIED IDEOGRAPH - ,0xAA6D ,0x6CB8 //CJK UNIFIED IDEOGRAPH - ,0xAA6E ,0x6CC4 //CJK UNIFIED IDEOGRAPH - ,0xAA6F ,0x6CB9 //CJK UNIFIED IDEOGRAPH - ,0xAA70 ,0x6CC1 //CJK UNIFIED IDEOGRAPH - ,0xAA71 ,0x6CAE //CJK UNIFIED IDEOGRAPH - ,0xAA72 ,0x6CD7 //CJK UNIFIED IDEOGRAPH - ,0xAA73 ,0x6CC5 //CJK UNIFIED IDEOGRAPH - ,0xAA74 ,0x6CF1 //CJK UNIFIED IDEOGRAPH - ,0xAA75 ,0x6CBF //CJK UNIFIED IDEOGRAPH - ,0xAA76 ,0x6CBB //CJK UNIFIED IDEOGRAPH - ,0xAA77 ,0x6CE1 //CJK UNIFIED IDEOGRAPH - ,0xAA78 ,0x6CDB //CJK UNIFIED IDEOGRAPH - ,0xAA79 ,0x6CCA //CJK UNIFIED IDEOGRAPH - ,0xAA7A ,0x6CAC //CJK UNIFIED IDEOGRAPH - ,0xAA7B ,0x6CEF //CJK UNIFIED IDEOGRAPH - ,0xAA7C ,0x6CDC //CJK UNIFIED IDEOGRAPH - ,0xAA7D ,0x6CD6 //CJK UNIFIED IDEOGRAPH - ,0xAA7E ,0x6CE0 //CJK UNIFIED IDEOGRAPH - ,0xAAA1 ,0x7095 //CJK UNIFIED IDEOGRAPH - ,0xAAA2 ,0x708E //CJK UNIFIED IDEOGRAPH - ,0xAAA3 ,0x7092 //CJK UNIFIED IDEOGRAPH - ,0xAAA4 ,0x708A //CJK UNIFIED IDEOGRAPH - ,0xAAA5 ,0x7099 //CJK UNIFIED IDEOGRAPH - ,0xAAA6 ,0x722C //CJK UNIFIED IDEOGRAPH - ,0xAAA7 ,0x722D //CJK UNIFIED IDEOGRAPH - ,0xAAA8 ,0x7238 //CJK UNIFIED IDEOGRAPH - ,0xAAA9 ,0x7248 //CJK UNIFIED IDEOGRAPH - ,0xAAAA ,0x7267 //CJK UNIFIED IDEOGRAPH - ,0xAAAB ,0x7269 //CJK UNIFIED IDEOGRAPH - ,0xAAAC ,0x72C0 //CJK UNIFIED IDEOGRAPH - ,0xAAAD ,0x72CE //CJK UNIFIED IDEOGRAPH - ,0xAAAE ,0x72D9 //CJK UNIFIED IDEOGRAPH - ,0xAAAF ,0x72D7 //CJK UNIFIED IDEOGRAPH - ,0xAAB0 ,0x72D0 //CJK UNIFIED IDEOGRAPH - ,0xAAB1 ,0x73A9 //CJK UNIFIED IDEOGRAPH - ,0xAAB2 ,0x73A8 //CJK UNIFIED IDEOGRAPH - ,0xAAB3 ,0x739F //CJK UNIFIED IDEOGRAPH - ,0xAAB4 ,0x73AB //CJK UNIFIED IDEOGRAPH - ,0xAAB5 ,0x73A5 //CJK UNIFIED IDEOGRAPH - ,0xAAB6 ,0x753D //CJK UNIFIED IDEOGRAPH - ,0xAAB7 ,0x759D //CJK UNIFIED IDEOGRAPH - ,0xAAB8 ,0x7599 //CJK UNIFIED IDEOGRAPH - ,0xAAB9 ,0x759A //CJK UNIFIED IDEOGRAPH - ,0xAABA ,0x7684 //CJK UNIFIED IDEOGRAPH - ,0xAABB ,0x76C2 //CJK UNIFIED IDEOGRAPH - ,0xAABC ,0x76F2 //CJK UNIFIED IDEOGRAPH - ,0xAABD ,0x76F4 //CJK UNIFIED IDEOGRAPH - ,0xAABE ,0x77E5 //CJK UNIFIED IDEOGRAPH - ,0xAABF ,0x77FD //CJK UNIFIED IDEOGRAPH - ,0xAAC0 ,0x793E //CJK UNIFIED IDEOGRAPH - ,0xAAC1 ,0x7940 //CJK UNIFIED IDEOGRAPH - ,0xAAC2 ,0x7941 //CJK UNIFIED IDEOGRAPH - ,0xAAC3 ,0x79C9 //CJK UNIFIED IDEOGRAPH - ,0xAAC4 ,0x79C8 //CJK UNIFIED IDEOGRAPH - ,0xAAC5 ,0x7A7A //CJK UNIFIED IDEOGRAPH - ,0xAAC6 ,0x7A79 //CJK UNIFIED IDEOGRAPH - ,0xAAC7 ,0x7AFA //CJK UNIFIED IDEOGRAPH - ,0xAAC8 ,0x7CFE //CJK UNIFIED IDEOGRAPH - ,0xAAC9 ,0x7F54 //CJK UNIFIED IDEOGRAPH - ,0xAACA ,0x7F8C //CJK UNIFIED IDEOGRAPH - ,0xAACB ,0x7F8B //CJK UNIFIED IDEOGRAPH - ,0xAACC ,0x8005 //CJK UNIFIED IDEOGRAPH - ,0xAACD ,0x80BA //CJK UNIFIED IDEOGRAPH - ,0xAACE ,0x80A5 //CJK UNIFIED IDEOGRAPH - ,0xAACF ,0x80A2 //CJK UNIFIED IDEOGRAPH - ,0xAAD0 ,0x80B1 //CJK UNIFIED IDEOGRAPH - ,0xAAD1 ,0x80A1 //CJK UNIFIED IDEOGRAPH - ,0xAAD2 ,0x80AB //CJK UNIFIED IDEOGRAPH - ,0xAAD3 ,0x80A9 //CJK UNIFIED IDEOGRAPH - ,0xAAD4 ,0x80B4 //CJK UNIFIED IDEOGRAPH - ,0xAAD5 ,0x80AA //CJK UNIFIED IDEOGRAPH - ,0xAAD6 ,0x80AF //CJK UNIFIED IDEOGRAPH - ,0xAAD7 ,0x81E5 //CJK UNIFIED IDEOGRAPH - ,0xAAD8 ,0x81FE //CJK UNIFIED IDEOGRAPH - ,0xAAD9 ,0x820D //CJK UNIFIED IDEOGRAPH - ,0xAADA ,0x82B3 //CJK UNIFIED IDEOGRAPH - ,0xAADB ,0x829D //CJK UNIFIED IDEOGRAPH - ,0xAADC ,0x8299 //CJK UNIFIED IDEOGRAPH - ,0xAADD ,0x82AD //CJK UNIFIED IDEOGRAPH - ,0xAADE ,0x82BD //CJK UNIFIED IDEOGRAPH - ,0xAADF ,0x829F //CJK UNIFIED IDEOGRAPH - ,0xAAE0 ,0x82B9 //CJK UNIFIED IDEOGRAPH - ,0xAAE1 ,0x82B1 //CJK UNIFIED IDEOGRAPH - ,0xAAE2 ,0x82AC //CJK UNIFIED IDEOGRAPH - ,0xAAE3 ,0x82A5 //CJK UNIFIED IDEOGRAPH - ,0xAAE4 ,0x82AF //CJK UNIFIED IDEOGRAPH - ,0xAAE5 ,0x82B8 //CJK UNIFIED IDEOGRAPH - ,0xAAE6 ,0x82A3 //CJK UNIFIED IDEOGRAPH - ,0xAAE7 ,0x82B0 //CJK UNIFIED IDEOGRAPH - ,0xAAE8 ,0x82BE //CJK UNIFIED IDEOGRAPH - ,0xAAE9 ,0x82B7 //CJK UNIFIED IDEOGRAPH - ,0xAAEA ,0x864E //CJK UNIFIED IDEOGRAPH - ,0xAAEB ,0x8671 //CJK UNIFIED IDEOGRAPH - ,0xAAEC ,0x521D //CJK UNIFIED IDEOGRAPH - ,0xAAED ,0x8868 //CJK UNIFIED IDEOGRAPH - ,0xAAEE ,0x8ECB //CJK UNIFIED IDEOGRAPH - ,0xAAEF ,0x8FCE //CJK UNIFIED IDEOGRAPH - ,0xAAF0 ,0x8FD4 //CJK UNIFIED IDEOGRAPH - ,0xAAF1 ,0x8FD1 //CJK UNIFIED IDEOGRAPH - ,0xAAF2 ,0x90B5 //CJK UNIFIED IDEOGRAPH - ,0xAAF3 ,0x90B8 //CJK UNIFIED IDEOGRAPH - ,0xAAF4 ,0x90B1 //CJK UNIFIED IDEOGRAPH - ,0xAAF5 ,0x90B6 //CJK UNIFIED IDEOGRAPH - ,0xAAF6 ,0x91C7 //CJK UNIFIED IDEOGRAPH - ,0xAAF7 ,0x91D1 //CJK UNIFIED IDEOGRAPH - ,0xAAF8 ,0x9577 //CJK UNIFIED IDEOGRAPH - ,0xAAF9 ,0x9580 //CJK UNIFIED IDEOGRAPH - ,0xAAFA ,0x961C //CJK UNIFIED IDEOGRAPH - ,0xAAFB ,0x9640 //CJK UNIFIED IDEOGRAPH - ,0xAAFC ,0x963F //CJK UNIFIED IDEOGRAPH - ,0xAAFD ,0x963B //CJK UNIFIED IDEOGRAPH - ,0xAAFE ,0x9644 //CJK UNIFIED IDEOGRAPH - ,0xAB40 ,0x9642 //CJK UNIFIED IDEOGRAPH - ,0xAB41 ,0x96B9 //CJK UNIFIED IDEOGRAPH - ,0xAB42 ,0x96E8 //CJK UNIFIED IDEOGRAPH - ,0xAB43 ,0x9752 //CJK UNIFIED IDEOGRAPH - ,0xAB44 ,0x975E //CJK UNIFIED IDEOGRAPH - ,0xAB45 ,0x4E9F //CJK UNIFIED IDEOGRAPH - ,0xAB46 ,0x4EAD //CJK UNIFIED IDEOGRAPH - ,0xAB47 ,0x4EAE //CJK UNIFIED IDEOGRAPH - ,0xAB48 ,0x4FE1 //CJK UNIFIED IDEOGRAPH - ,0xAB49 ,0x4FB5 //CJK UNIFIED IDEOGRAPH - ,0xAB4A ,0x4FAF //CJK UNIFIED IDEOGRAPH - ,0xAB4B ,0x4FBF //CJK UNIFIED IDEOGRAPH - ,0xAB4C ,0x4FE0 //CJK UNIFIED IDEOGRAPH - ,0xAB4D ,0x4FD1 //CJK UNIFIED IDEOGRAPH - ,0xAB4E ,0x4FCF //CJK UNIFIED IDEOGRAPH - ,0xAB4F ,0x4FDD //CJK UNIFIED IDEOGRAPH - ,0xAB50 ,0x4FC3 //CJK UNIFIED IDEOGRAPH - ,0xAB51 ,0x4FB6 //CJK UNIFIED IDEOGRAPH - ,0xAB52 ,0x4FD8 //CJK UNIFIED IDEOGRAPH - ,0xAB53 ,0x4FDF //CJK UNIFIED IDEOGRAPH - ,0xAB54 ,0x4FCA //CJK UNIFIED IDEOGRAPH - ,0xAB55 ,0x4FD7 //CJK UNIFIED IDEOGRAPH - ,0xAB56 ,0x4FAE //CJK UNIFIED IDEOGRAPH - ,0xAB57 ,0x4FD0 //CJK UNIFIED IDEOGRAPH - ,0xAB58 ,0x4FC4 //CJK UNIFIED IDEOGRAPH - ,0xAB59 ,0x4FC2 //CJK UNIFIED IDEOGRAPH - ,0xAB5A ,0x4FDA //CJK UNIFIED IDEOGRAPH - ,0xAB5B ,0x4FCE //CJK UNIFIED IDEOGRAPH - ,0xAB5C ,0x4FDE //CJK UNIFIED IDEOGRAPH - ,0xAB5D ,0x4FB7 //CJK UNIFIED IDEOGRAPH - ,0xAB5E ,0x5157 //CJK UNIFIED IDEOGRAPH - ,0xAB5F ,0x5192 //CJK UNIFIED IDEOGRAPH - ,0xAB60 ,0x5191 //CJK UNIFIED IDEOGRAPH - ,0xAB61 ,0x51A0 //CJK UNIFIED IDEOGRAPH - ,0xAB62 ,0x524E //CJK UNIFIED IDEOGRAPH - ,0xAB63 ,0x5243 //CJK UNIFIED IDEOGRAPH - ,0xAB64 ,0x524A //CJK UNIFIED IDEOGRAPH - ,0xAB65 ,0x524D //CJK UNIFIED IDEOGRAPH - ,0xAB66 ,0x524C //CJK UNIFIED IDEOGRAPH - ,0xAB67 ,0x524B //CJK UNIFIED IDEOGRAPH - ,0xAB68 ,0x5247 //CJK UNIFIED IDEOGRAPH - ,0xAB69 ,0x52C7 //CJK UNIFIED IDEOGRAPH - ,0xAB6A ,0x52C9 //CJK UNIFIED IDEOGRAPH - ,0xAB6B ,0x52C3 //CJK UNIFIED IDEOGRAPH - ,0xAB6C ,0x52C1 //CJK UNIFIED IDEOGRAPH - ,0xAB6D ,0x530D //CJK UNIFIED IDEOGRAPH - ,0xAB6E ,0x5357 //CJK UNIFIED IDEOGRAPH - ,0xAB6F ,0x537B //CJK UNIFIED IDEOGRAPH - ,0xAB70 ,0x539A //CJK UNIFIED IDEOGRAPH - ,0xAB71 ,0x53DB //CJK UNIFIED IDEOGRAPH - ,0xAB72 ,0x54AC //CJK UNIFIED IDEOGRAPH - ,0xAB73 ,0x54C0 //CJK UNIFIED IDEOGRAPH - ,0xAB74 ,0x54A8 //CJK UNIFIED IDEOGRAPH - ,0xAB75 ,0x54CE //CJK UNIFIED IDEOGRAPH - ,0xAB76 ,0x54C9 //CJK UNIFIED IDEOGRAPH - ,0xAB77 ,0x54B8 //CJK UNIFIED IDEOGRAPH - ,0xAB78 ,0x54A6 //CJK UNIFIED IDEOGRAPH - ,0xAB79 ,0x54B3 //CJK UNIFIED IDEOGRAPH - ,0xAB7A ,0x54C7 //CJK UNIFIED IDEOGRAPH - ,0xAB7B ,0x54C2 //CJK UNIFIED IDEOGRAPH - ,0xAB7C ,0x54BD //CJK UNIFIED IDEOGRAPH - ,0xAB7D ,0x54AA //CJK UNIFIED IDEOGRAPH - ,0xAB7E ,0x54C1 //CJK UNIFIED IDEOGRAPH - ,0xABA1 ,0x54C4 //CJK UNIFIED IDEOGRAPH - ,0xABA2 ,0x54C8 //CJK UNIFIED IDEOGRAPH - ,0xABA3 ,0x54AF //CJK UNIFIED IDEOGRAPH - ,0xABA4 ,0x54AB //CJK UNIFIED IDEOGRAPH - ,0xABA5 ,0x54B1 //CJK UNIFIED IDEOGRAPH - ,0xABA6 ,0x54BB //CJK UNIFIED IDEOGRAPH - ,0xABA7 ,0x54A9 //CJK UNIFIED IDEOGRAPH - ,0xABA8 ,0x54A7 //CJK UNIFIED IDEOGRAPH - ,0xABA9 ,0x54BF //CJK UNIFIED IDEOGRAPH - ,0xABAA ,0x56FF //CJK UNIFIED IDEOGRAPH - ,0xABAB ,0x5782 //CJK UNIFIED IDEOGRAPH - ,0xABAC ,0x578B //CJK UNIFIED IDEOGRAPH - ,0xABAD ,0x57A0 //CJK UNIFIED IDEOGRAPH - ,0xABAE ,0x57A3 //CJK UNIFIED IDEOGRAPH - ,0xABAF ,0x57A2 //CJK UNIFIED IDEOGRAPH - ,0xABB0 ,0x57CE //CJK UNIFIED IDEOGRAPH - ,0xABB1 ,0x57AE //CJK UNIFIED IDEOGRAPH - ,0xABB2 ,0x5793 //CJK UNIFIED IDEOGRAPH - ,0xABB3 ,0x5955 //CJK UNIFIED IDEOGRAPH - ,0xABB4 ,0x5951 //CJK UNIFIED IDEOGRAPH - ,0xABB5 ,0x594F //CJK UNIFIED IDEOGRAPH - ,0xABB6 ,0x594E //CJK UNIFIED IDEOGRAPH - ,0xABB7 ,0x5950 //CJK UNIFIED IDEOGRAPH - ,0xABB8 ,0x59DC //CJK UNIFIED IDEOGRAPH - ,0xABB9 ,0x59D8 //CJK UNIFIED IDEOGRAPH - ,0xABBA ,0x59FF //CJK UNIFIED IDEOGRAPH - ,0xABBB ,0x59E3 //CJK UNIFIED IDEOGRAPH - ,0xABBC ,0x59E8 //CJK UNIFIED IDEOGRAPH - ,0xABBD ,0x5A03 //CJK UNIFIED IDEOGRAPH - ,0xABBE ,0x59E5 //CJK UNIFIED IDEOGRAPH - ,0xABBF ,0x59EA //CJK UNIFIED IDEOGRAPH - ,0xABC0 ,0x59DA //CJK UNIFIED IDEOGRAPH - ,0xABC1 ,0x59E6 //CJK UNIFIED IDEOGRAPH - ,0xABC2 ,0x5A01 //CJK UNIFIED IDEOGRAPH - ,0xABC3 ,0x59FB //CJK UNIFIED IDEOGRAPH - ,0xABC4 ,0x5B69 //CJK UNIFIED IDEOGRAPH - ,0xABC5 ,0x5BA3 //CJK UNIFIED IDEOGRAPH - ,0xABC6 ,0x5BA6 //CJK UNIFIED IDEOGRAPH - ,0xABC7 ,0x5BA4 //CJK UNIFIED IDEOGRAPH - ,0xABC8 ,0x5BA2 //CJK UNIFIED IDEOGRAPH - ,0xABC9 ,0x5BA5 //CJK UNIFIED IDEOGRAPH - ,0xABCA ,0x5C01 //CJK UNIFIED IDEOGRAPH - ,0xABCB ,0x5C4E //CJK UNIFIED IDEOGRAPH - ,0xABCC ,0x5C4F //CJK UNIFIED IDEOGRAPH - ,0xABCD ,0x5C4D //CJK UNIFIED IDEOGRAPH - ,0xABCE ,0x5C4B //CJK UNIFIED IDEOGRAPH - ,0xABCF ,0x5CD9 //CJK UNIFIED IDEOGRAPH - ,0xABD0 ,0x5CD2 //CJK UNIFIED IDEOGRAPH - ,0xABD1 ,0x5DF7 //CJK UNIFIED IDEOGRAPH - ,0xABD2 ,0x5E1D //CJK UNIFIED IDEOGRAPH - ,0xABD3 ,0x5E25 //CJK UNIFIED IDEOGRAPH - ,0xABD4 ,0x5E1F //CJK UNIFIED IDEOGRAPH - ,0xABD5 ,0x5E7D //CJK UNIFIED IDEOGRAPH - ,0xABD6 ,0x5EA0 //CJK UNIFIED IDEOGRAPH - ,0xABD7 ,0x5EA6 //CJK UNIFIED IDEOGRAPH - ,0xABD8 ,0x5EFA //CJK UNIFIED IDEOGRAPH - ,0xABD9 ,0x5F08 //CJK UNIFIED IDEOGRAPH - ,0xABDA ,0x5F2D //CJK UNIFIED IDEOGRAPH - ,0xABDB ,0x5F65 //CJK UNIFIED IDEOGRAPH - ,0xABDC ,0x5F88 //CJK UNIFIED IDEOGRAPH - ,0xABDD ,0x5F85 //CJK UNIFIED IDEOGRAPH - ,0xABDE ,0x5F8A //CJK UNIFIED IDEOGRAPH - ,0xABDF ,0x5F8B //CJK UNIFIED IDEOGRAPH - ,0xABE0 ,0x5F87 //CJK UNIFIED IDEOGRAPH - ,0xABE1 ,0x5F8C //CJK UNIFIED IDEOGRAPH - ,0xABE2 ,0x5F89 //CJK UNIFIED IDEOGRAPH - ,0xABE3 ,0x6012 //CJK UNIFIED IDEOGRAPH - ,0xABE4 ,0x601D //CJK UNIFIED IDEOGRAPH - ,0xABE5 ,0x6020 //CJK UNIFIED IDEOGRAPH - ,0xABE6 ,0x6025 //CJK UNIFIED IDEOGRAPH - ,0xABE7 ,0x600E //CJK UNIFIED IDEOGRAPH - ,0xABE8 ,0x6028 //CJK UNIFIED IDEOGRAPH - ,0xABE9 ,0x604D //CJK UNIFIED IDEOGRAPH - ,0xABEA ,0x6070 //CJK UNIFIED IDEOGRAPH - ,0xABEB ,0x6068 //CJK UNIFIED IDEOGRAPH - ,0xABEC ,0x6062 //CJK UNIFIED IDEOGRAPH - ,0xABED ,0x6046 //CJK UNIFIED IDEOGRAPH - ,0xABEE ,0x6043 //CJK UNIFIED IDEOGRAPH - ,0xABEF ,0x606C //CJK UNIFIED IDEOGRAPH - ,0xABF0 ,0x606B //CJK UNIFIED IDEOGRAPH - ,0xABF1 ,0x606A //CJK UNIFIED IDEOGRAPH - ,0xABF2 ,0x6064 //CJK UNIFIED IDEOGRAPH - ,0xABF3 ,0x6241 //CJK UNIFIED IDEOGRAPH - ,0xABF4 ,0x62DC //CJK UNIFIED IDEOGRAPH - ,0xABF5 ,0x6316 //CJK UNIFIED IDEOGRAPH - ,0xABF6 ,0x6309 //CJK UNIFIED IDEOGRAPH - ,0xABF7 ,0x62FC //CJK UNIFIED IDEOGRAPH - ,0xABF8 ,0x62ED //CJK UNIFIED IDEOGRAPH - ,0xABF9 ,0x6301 //CJK UNIFIED IDEOGRAPH - ,0xABFA ,0x62EE //CJK UNIFIED IDEOGRAPH - ,0xABFB ,0x62FD //CJK UNIFIED IDEOGRAPH - ,0xABFC ,0x6307 //CJK UNIFIED IDEOGRAPH - ,0xABFD ,0x62F1 //CJK UNIFIED IDEOGRAPH - ,0xABFE ,0x62F7 //CJK UNIFIED IDEOGRAPH - ,0xAC40 ,0x62EF //CJK UNIFIED IDEOGRAPH - ,0xAC41 ,0x62EC //CJK UNIFIED IDEOGRAPH - ,0xAC42 ,0x62FE //CJK UNIFIED IDEOGRAPH - ,0xAC43 ,0x62F4 //CJK UNIFIED IDEOGRAPH - ,0xAC44 ,0x6311 //CJK UNIFIED IDEOGRAPH - ,0xAC45 ,0x6302 //CJK UNIFIED IDEOGRAPH - ,0xAC46 ,0x653F //CJK UNIFIED IDEOGRAPH - ,0xAC47 ,0x6545 //CJK UNIFIED IDEOGRAPH - ,0xAC48 ,0x65AB //CJK UNIFIED IDEOGRAPH - ,0xAC49 ,0x65BD //CJK UNIFIED IDEOGRAPH - ,0xAC4A ,0x65E2 //CJK UNIFIED IDEOGRAPH - ,0xAC4B ,0x6625 //CJK UNIFIED IDEOGRAPH - ,0xAC4C ,0x662D //CJK UNIFIED IDEOGRAPH - ,0xAC4D ,0x6620 //CJK UNIFIED IDEOGRAPH - ,0xAC4E ,0x6627 //CJK UNIFIED IDEOGRAPH - ,0xAC4F ,0x662F //CJK UNIFIED IDEOGRAPH - ,0xAC50 ,0x661F //CJK UNIFIED IDEOGRAPH - ,0xAC51 ,0x6628 //CJK UNIFIED IDEOGRAPH - ,0xAC52 ,0x6631 //CJK UNIFIED IDEOGRAPH - ,0xAC53 ,0x6624 //CJK UNIFIED IDEOGRAPH - ,0xAC54 ,0x66F7 //CJK UNIFIED IDEOGRAPH - ,0xAC55 ,0x67FF //CJK UNIFIED IDEOGRAPH - ,0xAC56 ,0x67D3 //CJK UNIFIED IDEOGRAPH - ,0xAC57 ,0x67F1 //CJK UNIFIED IDEOGRAPH - ,0xAC58 ,0x67D4 //CJK UNIFIED IDEOGRAPH - ,0xAC59 ,0x67D0 //CJK UNIFIED IDEOGRAPH - ,0xAC5A ,0x67EC //CJK UNIFIED IDEOGRAPH - ,0xAC5B ,0x67B6 //CJK UNIFIED IDEOGRAPH - ,0xAC5C ,0x67AF //CJK UNIFIED IDEOGRAPH - ,0xAC5D ,0x67F5 //CJK UNIFIED IDEOGRAPH - ,0xAC5E ,0x67E9 //CJK UNIFIED IDEOGRAPH - ,0xAC5F ,0x67EF //CJK UNIFIED IDEOGRAPH - ,0xAC60 ,0x67C4 //CJK UNIFIED IDEOGRAPH - ,0xAC61 ,0x67D1 //CJK UNIFIED IDEOGRAPH - ,0xAC62 ,0x67B4 //CJK UNIFIED IDEOGRAPH - ,0xAC63 ,0x67DA //CJK UNIFIED IDEOGRAPH - ,0xAC64 ,0x67E5 //CJK UNIFIED IDEOGRAPH - ,0xAC65 ,0x67B8 //CJK UNIFIED IDEOGRAPH - ,0xAC66 ,0x67CF //CJK UNIFIED IDEOGRAPH - ,0xAC67 ,0x67DE //CJK UNIFIED IDEOGRAPH - ,0xAC68 ,0x67F3 //CJK UNIFIED IDEOGRAPH - ,0xAC69 ,0x67B0 //CJK UNIFIED IDEOGRAPH - ,0xAC6A ,0x67D9 //CJK UNIFIED IDEOGRAPH - ,0xAC6B ,0x67E2 //CJK UNIFIED IDEOGRAPH - ,0xAC6C ,0x67DD //CJK UNIFIED IDEOGRAPH - ,0xAC6D ,0x67D2 //CJK UNIFIED IDEOGRAPH - ,0xAC6E ,0x6B6A //CJK UNIFIED IDEOGRAPH - ,0xAC6F ,0x6B83 //CJK UNIFIED IDEOGRAPH - ,0xAC70 ,0x6B86 //CJK UNIFIED IDEOGRAPH - ,0xAC71 ,0x6BB5 //CJK UNIFIED IDEOGRAPH - ,0xAC72 ,0x6BD2 //CJK UNIFIED IDEOGRAPH - ,0xAC73 ,0x6BD7 //CJK UNIFIED IDEOGRAPH - ,0xAC74 ,0x6C1F //CJK UNIFIED IDEOGRAPH - ,0xAC75 ,0x6CC9 //CJK UNIFIED IDEOGRAPH - ,0xAC76 ,0x6D0B //CJK UNIFIED IDEOGRAPH - ,0xAC77 ,0x6D32 //CJK UNIFIED IDEOGRAPH - ,0xAC78 ,0x6D2A //CJK UNIFIED IDEOGRAPH - ,0xAC79 ,0x6D41 //CJK UNIFIED IDEOGRAPH - ,0xAC7A ,0x6D25 //CJK UNIFIED IDEOGRAPH - ,0xAC7B ,0x6D0C //CJK UNIFIED IDEOGRAPH - ,0xAC7C ,0x6D31 //CJK UNIFIED IDEOGRAPH - ,0xAC7D ,0x6D1E //CJK UNIFIED IDEOGRAPH - ,0xAC7E ,0x6D17 //CJK UNIFIED IDEOGRAPH - ,0xACA1 ,0x6D3B //CJK UNIFIED IDEOGRAPH - ,0xACA2 ,0x6D3D //CJK UNIFIED IDEOGRAPH - ,0xACA3 ,0x6D3E //CJK UNIFIED IDEOGRAPH - ,0xACA4 ,0x6D36 //CJK UNIFIED IDEOGRAPH - ,0xACA5 ,0x6D1B //CJK UNIFIED IDEOGRAPH - ,0xACA6 ,0x6CF5 //CJK UNIFIED IDEOGRAPH - ,0xACA7 ,0x6D39 //CJK UNIFIED IDEOGRAPH - ,0xACA8 ,0x6D27 //CJK UNIFIED IDEOGRAPH - ,0xACA9 ,0x6D38 //CJK UNIFIED IDEOGRAPH - ,0xACAA ,0x6D29 //CJK UNIFIED IDEOGRAPH - ,0xACAB ,0x6D2E //CJK UNIFIED IDEOGRAPH - ,0xACAC ,0x6D35 //CJK UNIFIED IDEOGRAPH - ,0xACAD ,0x6D0E //CJK UNIFIED IDEOGRAPH - ,0xACAE ,0x6D2B //CJK UNIFIED IDEOGRAPH - ,0xACAF ,0x70AB //CJK UNIFIED IDEOGRAPH - ,0xACB0 ,0x70BA //CJK UNIFIED IDEOGRAPH - ,0xACB1 ,0x70B3 //CJK UNIFIED IDEOGRAPH - ,0xACB2 ,0x70AC //CJK UNIFIED IDEOGRAPH - ,0xACB3 ,0x70AF //CJK UNIFIED IDEOGRAPH - ,0xACB4 ,0x70AD //CJK UNIFIED IDEOGRAPH - ,0xACB5 ,0x70B8 //CJK UNIFIED IDEOGRAPH - ,0xACB6 ,0x70AE //CJK UNIFIED IDEOGRAPH - ,0xACB7 ,0x70A4 //CJK UNIFIED IDEOGRAPH - ,0xACB8 ,0x7230 //CJK UNIFIED IDEOGRAPH - ,0xACB9 ,0x7272 //CJK UNIFIED IDEOGRAPH - ,0xACBA ,0x726F //CJK UNIFIED IDEOGRAPH - ,0xACBB ,0x7274 //CJK UNIFIED IDEOGRAPH - ,0xACBC ,0x72E9 //CJK UNIFIED IDEOGRAPH - ,0xACBD ,0x72E0 //CJK UNIFIED IDEOGRAPH - ,0xACBE ,0x72E1 //CJK UNIFIED IDEOGRAPH - ,0xACBF ,0x73B7 //CJK UNIFIED IDEOGRAPH - ,0xACC0 ,0x73CA //CJK UNIFIED IDEOGRAPH - ,0xACC1 ,0x73BB //CJK UNIFIED IDEOGRAPH - ,0xACC2 ,0x73B2 //CJK UNIFIED IDEOGRAPH - ,0xACC3 ,0x73CD //CJK UNIFIED IDEOGRAPH - ,0xACC4 ,0x73C0 //CJK UNIFIED IDEOGRAPH - ,0xACC5 ,0x73B3 //CJK UNIFIED IDEOGRAPH - ,0xACC6 ,0x751A //CJK UNIFIED IDEOGRAPH - ,0xACC7 ,0x752D //CJK UNIFIED IDEOGRAPH - ,0xACC8 ,0x754F //CJK UNIFIED IDEOGRAPH - ,0xACC9 ,0x754C //CJK UNIFIED IDEOGRAPH - ,0xACCA ,0x754E //CJK UNIFIED IDEOGRAPH - ,0xACCB ,0x754B //CJK UNIFIED IDEOGRAPH - ,0xACCC ,0x75AB //CJK UNIFIED IDEOGRAPH - ,0xACCD ,0x75A4 //CJK UNIFIED IDEOGRAPH - ,0xACCE ,0x75A5 //CJK UNIFIED IDEOGRAPH - ,0xACCF ,0x75A2 //CJK UNIFIED IDEOGRAPH - ,0xACD0 ,0x75A3 //CJK UNIFIED IDEOGRAPH - ,0xACD1 ,0x7678 //CJK UNIFIED IDEOGRAPH - ,0xACD2 ,0x7686 //CJK UNIFIED IDEOGRAPH - ,0xACD3 ,0x7687 //CJK UNIFIED IDEOGRAPH - ,0xACD4 ,0x7688 //CJK UNIFIED IDEOGRAPH - ,0xACD5 ,0x76C8 //CJK UNIFIED IDEOGRAPH - ,0xACD6 ,0x76C6 //CJK UNIFIED IDEOGRAPH - ,0xACD7 ,0x76C3 //CJK UNIFIED IDEOGRAPH - ,0xACD8 ,0x76C5 //CJK UNIFIED IDEOGRAPH - ,0xACD9 ,0x7701 //CJK UNIFIED IDEOGRAPH - ,0xACDA ,0x76F9 //CJK UNIFIED IDEOGRAPH - ,0xACDB ,0x76F8 //CJK UNIFIED IDEOGRAPH - ,0xACDC ,0x7709 //CJK UNIFIED IDEOGRAPH - ,0xACDD ,0x770B //CJK UNIFIED IDEOGRAPH - ,0xACDE ,0x76FE //CJK UNIFIED IDEOGRAPH - ,0xACDF ,0x76FC //CJK UNIFIED IDEOGRAPH - ,0xACE0 ,0x7707 //CJK UNIFIED IDEOGRAPH - ,0xACE1 ,0x77DC //CJK UNIFIED IDEOGRAPH - ,0xACE2 ,0x7802 //CJK UNIFIED IDEOGRAPH - ,0xACE3 ,0x7814 //CJK UNIFIED IDEOGRAPH - ,0xACE4 ,0x780C //CJK UNIFIED IDEOGRAPH - ,0xACE5 ,0x780D //CJK UNIFIED IDEOGRAPH - ,0xACE6 ,0x7946 //CJK UNIFIED IDEOGRAPH - ,0xACE7 ,0x7949 //CJK UNIFIED IDEOGRAPH - ,0xACE8 ,0x7948 //CJK UNIFIED IDEOGRAPH - ,0xACE9 ,0x7947 //CJK UNIFIED IDEOGRAPH - ,0xACEA ,0x79B9 //CJK UNIFIED IDEOGRAPH - ,0xACEB ,0x79BA //CJK UNIFIED IDEOGRAPH - ,0xACEC ,0x79D1 //CJK UNIFIED IDEOGRAPH - ,0xACED ,0x79D2 //CJK UNIFIED IDEOGRAPH - ,0xACEE ,0x79CB //CJK UNIFIED IDEOGRAPH - ,0xACEF ,0x7A7F //CJK UNIFIED IDEOGRAPH - ,0xACF0 ,0x7A81 //CJK UNIFIED IDEOGRAPH - ,0xACF1 ,0x7AFF //CJK UNIFIED IDEOGRAPH - ,0xACF2 ,0x7AFD //CJK UNIFIED IDEOGRAPH - ,0xACF3 ,0x7C7D //CJK UNIFIED IDEOGRAPH - ,0xACF4 ,0x7D02 //CJK UNIFIED IDEOGRAPH - ,0xACF5 ,0x7D05 //CJK UNIFIED IDEOGRAPH - ,0xACF6 ,0x7D00 //CJK UNIFIED IDEOGRAPH - ,0xACF7 ,0x7D09 //CJK UNIFIED IDEOGRAPH - ,0xACF8 ,0x7D07 //CJK UNIFIED IDEOGRAPH - ,0xACF9 ,0x7D04 //CJK UNIFIED IDEOGRAPH - ,0xACFA ,0x7D06 //CJK UNIFIED IDEOGRAPH - ,0xACFB ,0x7F38 //CJK UNIFIED IDEOGRAPH - ,0xACFC ,0x7F8E //CJK UNIFIED IDEOGRAPH - ,0xACFD ,0x7FBF //CJK UNIFIED IDEOGRAPH - ,0xACFE ,0x8004 //CJK UNIFIED IDEOGRAPH - ,0xAD40 ,0x8010 //CJK UNIFIED IDEOGRAPH - ,0xAD41 ,0x800D //CJK UNIFIED IDEOGRAPH - ,0xAD42 ,0x8011 //CJK UNIFIED IDEOGRAPH - ,0xAD43 ,0x8036 //CJK UNIFIED IDEOGRAPH - ,0xAD44 ,0x80D6 //CJK UNIFIED IDEOGRAPH - ,0xAD45 ,0x80E5 //CJK UNIFIED IDEOGRAPH - ,0xAD46 ,0x80DA //CJK UNIFIED IDEOGRAPH - ,0xAD47 ,0x80C3 //CJK UNIFIED IDEOGRAPH - ,0xAD48 ,0x80C4 //CJK UNIFIED IDEOGRAPH - ,0xAD49 ,0x80CC //CJK UNIFIED IDEOGRAPH - ,0xAD4A ,0x80E1 //CJK UNIFIED IDEOGRAPH - ,0xAD4B ,0x80DB //CJK UNIFIED IDEOGRAPH - ,0xAD4C ,0x80CE //CJK UNIFIED IDEOGRAPH - ,0xAD4D ,0x80DE //CJK UNIFIED IDEOGRAPH - ,0xAD4E ,0x80E4 //CJK UNIFIED IDEOGRAPH - ,0xAD4F ,0x80DD //CJK UNIFIED IDEOGRAPH - ,0xAD50 ,0x81F4 //CJK UNIFIED IDEOGRAPH - ,0xAD51 ,0x8222 //CJK UNIFIED IDEOGRAPH - ,0xAD52 ,0x82E7 //CJK UNIFIED IDEOGRAPH - ,0xAD53 ,0x8303 //CJK UNIFIED IDEOGRAPH - ,0xAD54 ,0x8305 //CJK UNIFIED IDEOGRAPH - ,0xAD55 ,0x82E3 //CJK UNIFIED IDEOGRAPH - ,0xAD56 ,0x82DB //CJK UNIFIED IDEOGRAPH - ,0xAD57 ,0x82E6 //CJK UNIFIED IDEOGRAPH - ,0xAD58 ,0x8304 //CJK UNIFIED IDEOGRAPH - ,0xAD59 ,0x82E5 //CJK UNIFIED IDEOGRAPH - ,0xAD5A ,0x8302 //CJK UNIFIED IDEOGRAPH - ,0xAD5B ,0x8309 //CJK UNIFIED IDEOGRAPH - ,0xAD5C ,0x82D2 //CJK UNIFIED IDEOGRAPH - ,0xAD5D ,0x82D7 //CJK UNIFIED IDEOGRAPH - ,0xAD5E ,0x82F1 //CJK UNIFIED IDEOGRAPH - ,0xAD5F ,0x8301 //CJK UNIFIED IDEOGRAPH - ,0xAD60 ,0x82DC //CJK UNIFIED IDEOGRAPH - ,0xAD61 ,0x82D4 //CJK UNIFIED IDEOGRAPH - ,0xAD62 ,0x82D1 //CJK UNIFIED IDEOGRAPH - ,0xAD63 ,0x82DE //CJK UNIFIED IDEOGRAPH - ,0xAD64 ,0x82D3 //CJK UNIFIED IDEOGRAPH - ,0xAD65 ,0x82DF //CJK UNIFIED IDEOGRAPH - ,0xAD66 ,0x82EF //CJK UNIFIED IDEOGRAPH - ,0xAD67 ,0x8306 //CJK UNIFIED IDEOGRAPH - ,0xAD68 ,0x8650 //CJK UNIFIED IDEOGRAPH - ,0xAD69 ,0x8679 //CJK UNIFIED IDEOGRAPH - ,0xAD6A ,0x867B //CJK UNIFIED IDEOGRAPH - ,0xAD6B ,0x867A //CJK UNIFIED IDEOGRAPH - ,0xAD6C ,0x884D //CJK UNIFIED IDEOGRAPH - ,0xAD6D ,0x886B //CJK UNIFIED IDEOGRAPH - ,0xAD6E ,0x8981 //CJK UNIFIED IDEOGRAPH - ,0xAD6F ,0x89D4 //CJK UNIFIED IDEOGRAPH - ,0xAD70 ,0x8A08 //CJK UNIFIED IDEOGRAPH - ,0xAD71 ,0x8A02 //CJK UNIFIED IDEOGRAPH - ,0xAD72 ,0x8A03 //CJK UNIFIED IDEOGRAPH - ,0xAD73 ,0x8C9E //CJK UNIFIED IDEOGRAPH - ,0xAD74 ,0x8CA0 //CJK UNIFIED IDEOGRAPH - ,0xAD75 ,0x8D74 //CJK UNIFIED IDEOGRAPH - ,0xAD76 ,0x8D73 //CJK UNIFIED IDEOGRAPH - ,0xAD77 ,0x8DB4 //CJK UNIFIED IDEOGRAPH - ,0xAD78 ,0x8ECD //CJK UNIFIED IDEOGRAPH - ,0xAD79 ,0x8ECC //CJK UNIFIED IDEOGRAPH - ,0xAD7A ,0x8FF0 //CJK UNIFIED IDEOGRAPH - ,0xAD7B ,0x8FE6 //CJK UNIFIED IDEOGRAPH - ,0xAD7C ,0x8FE2 //CJK UNIFIED IDEOGRAPH - ,0xAD7D ,0x8FEA //CJK UNIFIED IDEOGRAPH - ,0xAD7E ,0x8FE5 //CJK UNIFIED IDEOGRAPH - ,0xADA1 ,0x8FED //CJK UNIFIED IDEOGRAPH - ,0xADA2 ,0x8FEB //CJK UNIFIED IDEOGRAPH - ,0xADA3 ,0x8FE4 //CJK UNIFIED IDEOGRAPH - ,0xADA4 ,0x8FE8 //CJK UNIFIED IDEOGRAPH - ,0xADA5 ,0x90CA //CJK UNIFIED IDEOGRAPH - ,0xADA6 ,0x90CE //CJK UNIFIED IDEOGRAPH - ,0xADA7 ,0x90C1 //CJK UNIFIED IDEOGRAPH - ,0xADA8 ,0x90C3 //CJK UNIFIED IDEOGRAPH - ,0xADA9 ,0x914B //CJK UNIFIED IDEOGRAPH - ,0xADAA ,0x914A //CJK UNIFIED IDEOGRAPH - ,0xADAB ,0x91CD //CJK UNIFIED IDEOGRAPH - ,0xADAC ,0x9582 //CJK UNIFIED IDEOGRAPH - ,0xADAD ,0x9650 //CJK UNIFIED IDEOGRAPH - ,0xADAE ,0x964B //CJK UNIFIED IDEOGRAPH - ,0xADAF ,0x964C //CJK UNIFIED IDEOGRAPH - ,0xADB0 ,0x964D //CJK UNIFIED IDEOGRAPH - ,0xADB1 ,0x9762 //CJK UNIFIED IDEOGRAPH - ,0xADB2 ,0x9769 //CJK UNIFIED IDEOGRAPH - ,0xADB3 ,0x97CB //CJK UNIFIED IDEOGRAPH - ,0xADB4 ,0x97ED //CJK UNIFIED IDEOGRAPH - ,0xADB5 ,0x97F3 //CJK UNIFIED IDEOGRAPH - ,0xADB6 ,0x9801 //CJK UNIFIED IDEOGRAPH - ,0xADB7 ,0x98A8 //CJK UNIFIED IDEOGRAPH - ,0xADB8 ,0x98DB //CJK UNIFIED IDEOGRAPH - ,0xADB9 ,0x98DF //CJK UNIFIED IDEOGRAPH - ,0xADBA ,0x9996 //CJK UNIFIED IDEOGRAPH - ,0xADBB ,0x9999 //CJK UNIFIED IDEOGRAPH - ,0xADBC ,0x4E58 //CJK UNIFIED IDEOGRAPH - ,0xADBD ,0x4EB3 //CJK UNIFIED IDEOGRAPH - ,0xADBE ,0x500C //CJK UNIFIED IDEOGRAPH - ,0xADBF ,0x500D //CJK UNIFIED IDEOGRAPH - ,0xADC0 ,0x5023 //CJK UNIFIED IDEOGRAPH - ,0xADC1 ,0x4FEF //CJK UNIFIED IDEOGRAPH - ,0xADC2 ,0x5026 //CJK UNIFIED IDEOGRAPH - ,0xADC3 ,0x5025 //CJK UNIFIED IDEOGRAPH - ,0xADC4 ,0x4FF8 //CJK UNIFIED IDEOGRAPH - ,0xADC5 ,0x5029 //CJK UNIFIED IDEOGRAPH - ,0xADC6 ,0x5016 //CJK UNIFIED IDEOGRAPH - ,0xADC7 ,0x5006 //CJK UNIFIED IDEOGRAPH - ,0xADC8 ,0x503C //CJK UNIFIED IDEOGRAPH - ,0xADC9 ,0x501F //CJK UNIFIED IDEOGRAPH - ,0xADCA ,0x501A //CJK UNIFIED IDEOGRAPH - ,0xADCB ,0x5012 //CJK UNIFIED IDEOGRAPH - ,0xADCC ,0x5011 //CJK UNIFIED IDEOGRAPH - ,0xADCD ,0x4FFA //CJK UNIFIED IDEOGRAPH - ,0xADCE ,0x5000 //CJK UNIFIED IDEOGRAPH - ,0xADCF ,0x5014 //CJK UNIFIED IDEOGRAPH - ,0xADD0 ,0x5028 //CJK UNIFIED IDEOGRAPH - ,0xADD1 ,0x4FF1 //CJK UNIFIED IDEOGRAPH - ,0xADD2 ,0x5021 //CJK UNIFIED IDEOGRAPH - ,0xADD3 ,0x500B //CJK UNIFIED IDEOGRAPH - ,0xADD4 ,0x5019 //CJK UNIFIED IDEOGRAPH - ,0xADD5 ,0x5018 //CJK UNIFIED IDEOGRAPH - ,0xADD6 ,0x4FF3 //CJK UNIFIED IDEOGRAPH - ,0xADD7 ,0x4FEE //CJK UNIFIED IDEOGRAPH - ,0xADD8 ,0x502D //CJK UNIFIED IDEOGRAPH - ,0xADD9 ,0x502A //CJK UNIFIED IDEOGRAPH - ,0xADDA ,0x4FFE //CJK UNIFIED IDEOGRAPH - ,0xADDB ,0x502B //CJK UNIFIED IDEOGRAPH - ,0xADDC ,0x5009 //CJK UNIFIED IDEOGRAPH - ,0xADDD ,0x517C //CJK UNIFIED IDEOGRAPH - ,0xADDE ,0x51A4 //CJK UNIFIED IDEOGRAPH - ,0xADDF ,0x51A5 //CJK UNIFIED IDEOGRAPH - ,0xADE0 ,0x51A2 //CJK UNIFIED IDEOGRAPH - ,0xADE1 ,0x51CD //CJK UNIFIED IDEOGRAPH - ,0xADE2 ,0x51CC //CJK UNIFIED IDEOGRAPH - ,0xADE3 ,0x51C6 //CJK UNIFIED IDEOGRAPH - ,0xADE4 ,0x51CB //CJK UNIFIED IDEOGRAPH - ,0xADE5 ,0x5256 //CJK UNIFIED IDEOGRAPH - ,0xADE6 ,0x525C //CJK UNIFIED IDEOGRAPH - ,0xADE7 ,0x5254 //CJK UNIFIED IDEOGRAPH - ,0xADE8 ,0x525B //CJK UNIFIED IDEOGRAPH - ,0xADE9 ,0x525D //CJK UNIFIED IDEOGRAPH - ,0xADEA ,0x532A //CJK UNIFIED IDEOGRAPH - ,0xADEB ,0x537F //CJK UNIFIED IDEOGRAPH - ,0xADEC ,0x539F //CJK UNIFIED IDEOGRAPH - ,0xADED ,0x539D //CJK UNIFIED IDEOGRAPH - ,0xADEE ,0x53DF //CJK UNIFIED IDEOGRAPH - ,0xADEF ,0x54E8 //CJK UNIFIED IDEOGRAPH - ,0xADF0 ,0x5510 //CJK UNIFIED IDEOGRAPH - ,0xADF1 ,0x5501 //CJK UNIFIED IDEOGRAPH - ,0xADF2 ,0x5537 //CJK UNIFIED IDEOGRAPH - ,0xADF3 ,0x54FC //CJK UNIFIED IDEOGRAPH - ,0xADF4 ,0x54E5 //CJK UNIFIED IDEOGRAPH - ,0xADF5 ,0x54F2 //CJK UNIFIED IDEOGRAPH - ,0xADF6 ,0x5506 //CJK UNIFIED IDEOGRAPH - ,0xADF7 ,0x54FA //CJK UNIFIED IDEOGRAPH - ,0xADF8 ,0x5514 //CJK UNIFIED IDEOGRAPH - ,0xADF9 ,0x54E9 //CJK UNIFIED IDEOGRAPH - ,0xADFA ,0x54ED //CJK UNIFIED IDEOGRAPH - ,0xADFB ,0x54E1 //CJK UNIFIED IDEOGRAPH - ,0xADFC ,0x5509 //CJK UNIFIED IDEOGRAPH - ,0xADFD ,0x54EE //CJK UNIFIED IDEOGRAPH - ,0xADFE ,0x54EA //CJK UNIFIED IDEOGRAPH - ,0xAE40 ,0x54E6 //CJK UNIFIED IDEOGRAPH - ,0xAE41 ,0x5527 //CJK UNIFIED IDEOGRAPH - ,0xAE42 ,0x5507 //CJK UNIFIED IDEOGRAPH - ,0xAE43 ,0x54FD //CJK UNIFIED IDEOGRAPH - ,0xAE44 ,0x550F //CJK UNIFIED IDEOGRAPH - ,0xAE45 ,0x5703 //CJK UNIFIED IDEOGRAPH - ,0xAE46 ,0x5704 //CJK UNIFIED IDEOGRAPH - ,0xAE47 ,0x57C2 //CJK UNIFIED IDEOGRAPH - ,0xAE48 ,0x57D4 //CJK UNIFIED IDEOGRAPH - ,0xAE49 ,0x57CB //CJK UNIFIED IDEOGRAPH - ,0xAE4A ,0x57C3 //CJK UNIFIED IDEOGRAPH - ,0xAE4B ,0x5809 //CJK UNIFIED IDEOGRAPH - ,0xAE4C ,0x590F //CJK UNIFIED IDEOGRAPH - ,0xAE4D ,0x5957 //CJK UNIFIED IDEOGRAPH - ,0xAE4E ,0x5958 //CJK UNIFIED IDEOGRAPH - ,0xAE4F ,0x595A //CJK UNIFIED IDEOGRAPH - ,0xAE50 ,0x5A11 //CJK UNIFIED IDEOGRAPH - ,0xAE51 ,0x5A18 //CJK UNIFIED IDEOGRAPH - ,0xAE52 ,0x5A1C //CJK UNIFIED IDEOGRAPH - ,0xAE53 ,0x5A1F //CJK UNIFIED IDEOGRAPH - ,0xAE54 ,0x5A1B //CJK UNIFIED IDEOGRAPH - ,0xAE55 ,0x5A13 //CJK UNIFIED IDEOGRAPH - ,0xAE56 ,0x59EC //CJK UNIFIED IDEOGRAPH - ,0xAE57 ,0x5A20 //CJK UNIFIED IDEOGRAPH - ,0xAE58 ,0x5A23 //CJK UNIFIED IDEOGRAPH - ,0xAE59 ,0x5A29 //CJK UNIFIED IDEOGRAPH - ,0xAE5A ,0x5A25 //CJK UNIFIED IDEOGRAPH - ,0xAE5B ,0x5A0C //CJK UNIFIED IDEOGRAPH - ,0xAE5C ,0x5A09 //CJK UNIFIED IDEOGRAPH - ,0xAE5D ,0x5B6B //CJK UNIFIED IDEOGRAPH - ,0xAE5E ,0x5C58 //CJK UNIFIED IDEOGRAPH - ,0xAE5F ,0x5BB0 //CJK UNIFIED IDEOGRAPH - ,0xAE60 ,0x5BB3 //CJK UNIFIED IDEOGRAPH - ,0xAE61 ,0x5BB6 //CJK UNIFIED IDEOGRAPH - ,0xAE62 ,0x5BB4 //CJK UNIFIED IDEOGRAPH - ,0xAE63 ,0x5BAE //CJK UNIFIED IDEOGRAPH - ,0xAE64 ,0x5BB5 //CJK UNIFIED IDEOGRAPH - ,0xAE65 ,0x5BB9 //CJK UNIFIED IDEOGRAPH - ,0xAE66 ,0x5BB8 //CJK UNIFIED IDEOGRAPH - ,0xAE67 ,0x5C04 //CJK UNIFIED IDEOGRAPH - ,0xAE68 ,0x5C51 //CJK UNIFIED IDEOGRAPH - ,0xAE69 ,0x5C55 //CJK UNIFIED IDEOGRAPH - ,0xAE6A ,0x5C50 //CJK UNIFIED IDEOGRAPH - ,0xAE6B ,0x5CED //CJK UNIFIED IDEOGRAPH - ,0xAE6C ,0x5CFD //CJK UNIFIED IDEOGRAPH - ,0xAE6D ,0x5CFB //CJK UNIFIED IDEOGRAPH - ,0xAE6E ,0x5CEA //CJK UNIFIED IDEOGRAPH - ,0xAE6F ,0x5CE8 //CJK UNIFIED IDEOGRAPH - ,0xAE70 ,0x5CF0 //CJK UNIFIED IDEOGRAPH - ,0xAE71 ,0x5CF6 //CJK UNIFIED IDEOGRAPH - ,0xAE72 ,0x5D01 //CJK UNIFIED IDEOGRAPH - ,0xAE73 ,0x5CF4 //CJK UNIFIED IDEOGRAPH - ,0xAE74 ,0x5DEE //CJK UNIFIED IDEOGRAPH - ,0xAE75 ,0x5E2D //CJK UNIFIED IDEOGRAPH - ,0xAE76 ,0x5E2B //CJK UNIFIED IDEOGRAPH - ,0xAE77 ,0x5EAB //CJK UNIFIED IDEOGRAPH - ,0xAE78 ,0x5EAD //CJK UNIFIED IDEOGRAPH - ,0xAE79 ,0x5EA7 //CJK UNIFIED IDEOGRAPH - ,0xAE7A ,0x5F31 //CJK UNIFIED IDEOGRAPH - ,0xAE7B ,0x5F92 //CJK UNIFIED IDEOGRAPH - ,0xAE7C ,0x5F91 //CJK UNIFIED IDEOGRAPH - ,0xAE7D ,0x5F90 //CJK UNIFIED IDEOGRAPH - ,0xAE7E ,0x6059 //CJK UNIFIED IDEOGRAPH - ,0xAEA1 ,0x6063 //CJK UNIFIED IDEOGRAPH - ,0xAEA2 ,0x6065 //CJK UNIFIED IDEOGRAPH - ,0xAEA3 ,0x6050 //CJK UNIFIED IDEOGRAPH - ,0xAEA4 ,0x6055 //CJK UNIFIED IDEOGRAPH - ,0xAEA5 ,0x606D //CJK UNIFIED IDEOGRAPH - ,0xAEA6 ,0x6069 //CJK UNIFIED IDEOGRAPH - ,0xAEA7 ,0x606F //CJK UNIFIED IDEOGRAPH - ,0xAEA8 ,0x6084 //CJK UNIFIED IDEOGRAPH - ,0xAEA9 ,0x609F //CJK UNIFIED IDEOGRAPH - ,0xAEAA ,0x609A //CJK UNIFIED IDEOGRAPH - ,0xAEAB ,0x608D //CJK UNIFIED IDEOGRAPH - ,0xAEAC ,0x6094 //CJK UNIFIED IDEOGRAPH - ,0xAEAD ,0x608C //CJK UNIFIED IDEOGRAPH - ,0xAEAE ,0x6085 //CJK UNIFIED IDEOGRAPH - ,0xAEAF ,0x6096 //CJK UNIFIED IDEOGRAPH - ,0xAEB0 ,0x6247 //CJK UNIFIED IDEOGRAPH - ,0xAEB1 ,0x62F3 //CJK UNIFIED IDEOGRAPH - ,0xAEB2 ,0x6308 //CJK UNIFIED IDEOGRAPH - ,0xAEB3 ,0x62FF //CJK UNIFIED IDEOGRAPH - ,0xAEB4 ,0x634E //CJK UNIFIED IDEOGRAPH - ,0xAEB5 ,0x633E //CJK UNIFIED IDEOGRAPH - ,0xAEB6 ,0x632F //CJK UNIFIED IDEOGRAPH - ,0xAEB7 ,0x6355 //CJK UNIFIED IDEOGRAPH - ,0xAEB8 ,0x6342 //CJK UNIFIED IDEOGRAPH - ,0xAEB9 ,0x6346 //CJK UNIFIED IDEOGRAPH - ,0xAEBA ,0x634F //CJK UNIFIED IDEOGRAPH - ,0xAEBB ,0x6349 //CJK UNIFIED IDEOGRAPH - ,0xAEBC ,0x633A //CJK UNIFIED IDEOGRAPH - ,0xAEBD ,0x6350 //CJK UNIFIED IDEOGRAPH - ,0xAEBE ,0x633D //CJK UNIFIED IDEOGRAPH - ,0xAEBF ,0x632A //CJK UNIFIED IDEOGRAPH - ,0xAEC0 ,0x632B //CJK UNIFIED IDEOGRAPH - ,0xAEC1 ,0x6328 //CJK UNIFIED IDEOGRAPH - ,0xAEC2 ,0x634D //CJK UNIFIED IDEOGRAPH - ,0xAEC3 ,0x634C //CJK UNIFIED IDEOGRAPH - ,0xAEC4 ,0x6548 //CJK UNIFIED IDEOGRAPH - ,0xAEC5 ,0x6549 //CJK UNIFIED IDEOGRAPH - ,0xAEC6 ,0x6599 //CJK UNIFIED IDEOGRAPH - ,0xAEC7 ,0x65C1 //CJK UNIFIED IDEOGRAPH - ,0xAEC8 ,0x65C5 //CJK UNIFIED IDEOGRAPH - ,0xAEC9 ,0x6642 //CJK UNIFIED IDEOGRAPH - ,0xAECA ,0x6649 //CJK UNIFIED IDEOGRAPH - ,0xAECB ,0x664F //CJK UNIFIED IDEOGRAPH - ,0xAECC ,0x6643 //CJK UNIFIED IDEOGRAPH - ,0xAECD ,0x6652 //CJK UNIFIED IDEOGRAPH - ,0xAECE ,0x664C //CJK UNIFIED IDEOGRAPH - ,0xAECF ,0x6645 //CJK UNIFIED IDEOGRAPH - ,0xAED0 ,0x6641 //CJK UNIFIED IDEOGRAPH - ,0xAED1 ,0x66F8 //CJK UNIFIED IDEOGRAPH - ,0xAED2 ,0x6714 //CJK UNIFIED IDEOGRAPH - ,0xAED3 ,0x6715 //CJK UNIFIED IDEOGRAPH - ,0xAED4 ,0x6717 //CJK UNIFIED IDEOGRAPH - ,0xAED5 ,0x6821 //CJK UNIFIED IDEOGRAPH - ,0xAED6 ,0x6838 //CJK UNIFIED IDEOGRAPH - ,0xAED7 ,0x6848 //CJK UNIFIED IDEOGRAPH - ,0xAED8 ,0x6846 //CJK UNIFIED IDEOGRAPH - ,0xAED9 ,0x6853 //CJK UNIFIED IDEOGRAPH - ,0xAEDA ,0x6839 //CJK UNIFIED IDEOGRAPH - ,0xAEDB ,0x6842 //CJK UNIFIED IDEOGRAPH - ,0xAEDC ,0x6854 //CJK UNIFIED IDEOGRAPH - ,0xAEDD ,0x6829 //CJK UNIFIED IDEOGRAPH - ,0xAEDE ,0x68B3 //CJK UNIFIED IDEOGRAPH - ,0xAEDF ,0x6817 //CJK UNIFIED IDEOGRAPH - ,0xAEE0 ,0x684C //CJK UNIFIED IDEOGRAPH - ,0xAEE1 ,0x6851 //CJK UNIFIED IDEOGRAPH - ,0xAEE2 ,0x683D //CJK UNIFIED IDEOGRAPH - ,0xAEE3 ,0x67F4 //CJK UNIFIED IDEOGRAPH - ,0xAEE4 ,0x6850 //CJK UNIFIED IDEOGRAPH - ,0xAEE5 ,0x6840 //CJK UNIFIED IDEOGRAPH - ,0xAEE6 ,0x683C //CJK UNIFIED IDEOGRAPH - ,0xAEE7 ,0x6843 //CJK UNIFIED IDEOGRAPH - ,0xAEE8 ,0x682A //CJK UNIFIED IDEOGRAPH - ,0xAEE9 ,0x6845 //CJK UNIFIED IDEOGRAPH - ,0xAEEA ,0x6813 //CJK UNIFIED IDEOGRAPH - ,0xAEEB ,0x6818 //CJK UNIFIED IDEOGRAPH - ,0xAEEC ,0x6841 //CJK UNIFIED IDEOGRAPH - ,0xAEED ,0x6B8A //CJK UNIFIED IDEOGRAPH - ,0xAEEE ,0x6B89 //CJK UNIFIED IDEOGRAPH - ,0xAEEF ,0x6BB7 //CJK UNIFIED IDEOGRAPH - ,0xAEF0 ,0x6C23 //CJK UNIFIED IDEOGRAPH - ,0xAEF1 ,0x6C27 //CJK UNIFIED IDEOGRAPH - ,0xAEF2 ,0x6C28 //CJK UNIFIED IDEOGRAPH - ,0xAEF3 ,0x6C26 //CJK UNIFIED IDEOGRAPH - ,0xAEF4 ,0x6C24 //CJK UNIFIED IDEOGRAPH - ,0xAEF5 ,0x6CF0 //CJK UNIFIED IDEOGRAPH - ,0xAEF6 ,0x6D6A //CJK UNIFIED IDEOGRAPH - ,0xAEF7 ,0x6D95 //CJK UNIFIED IDEOGRAPH - ,0xAEF8 ,0x6D88 //CJK UNIFIED IDEOGRAPH - ,0xAEF9 ,0x6D87 //CJK UNIFIED IDEOGRAPH - ,0xAEFA ,0x6D66 //CJK UNIFIED IDEOGRAPH - ,0xAEFB ,0x6D78 //CJK UNIFIED IDEOGRAPH - ,0xAEFC ,0x6D77 //CJK UNIFIED IDEOGRAPH - ,0xAEFD ,0x6D59 //CJK UNIFIED IDEOGRAPH - ,0xAEFE ,0x6D93 //CJK UNIFIED IDEOGRAPH - ,0xAF40 ,0x6D6C //CJK UNIFIED IDEOGRAPH - ,0xAF41 ,0x6D89 //CJK UNIFIED IDEOGRAPH - ,0xAF42 ,0x6D6E //CJK UNIFIED IDEOGRAPH - ,0xAF43 ,0x6D5A //CJK UNIFIED IDEOGRAPH - ,0xAF44 ,0x6D74 //CJK UNIFIED IDEOGRAPH - ,0xAF45 ,0x6D69 //CJK UNIFIED IDEOGRAPH - ,0xAF46 ,0x6D8C //CJK UNIFIED IDEOGRAPH - ,0xAF47 ,0x6D8A //CJK UNIFIED IDEOGRAPH - ,0xAF48 ,0x6D79 //CJK UNIFIED IDEOGRAPH - ,0xAF49 ,0x6D85 //CJK UNIFIED IDEOGRAPH - ,0xAF4A ,0x6D65 //CJK UNIFIED IDEOGRAPH - ,0xAF4B ,0x6D94 //CJK UNIFIED IDEOGRAPH - ,0xAF4C ,0x70CA //CJK UNIFIED IDEOGRAPH - ,0xAF4D ,0x70D8 //CJK UNIFIED IDEOGRAPH - ,0xAF4E ,0x70E4 //CJK UNIFIED IDEOGRAPH - ,0xAF4F ,0x70D9 //CJK UNIFIED IDEOGRAPH - ,0xAF50 ,0x70C8 //CJK UNIFIED IDEOGRAPH - ,0xAF51 ,0x70CF //CJK UNIFIED IDEOGRAPH - ,0xAF52 ,0x7239 //CJK UNIFIED IDEOGRAPH - ,0xAF53 ,0x7279 //CJK UNIFIED IDEOGRAPH - ,0xAF54 ,0x72FC //CJK UNIFIED IDEOGRAPH - ,0xAF55 ,0x72F9 //CJK UNIFIED IDEOGRAPH - ,0xAF56 ,0x72FD //CJK UNIFIED IDEOGRAPH - ,0xAF57 ,0x72F8 //CJK UNIFIED IDEOGRAPH - ,0xAF58 ,0x72F7 //CJK UNIFIED IDEOGRAPH - ,0xAF59 ,0x7386 //CJK UNIFIED IDEOGRAPH - ,0xAF5A ,0x73ED //CJK UNIFIED IDEOGRAPH - ,0xAF5B ,0x7409 //CJK UNIFIED IDEOGRAPH - ,0xAF5C ,0x73EE //CJK UNIFIED IDEOGRAPH - ,0xAF5D ,0x73E0 //CJK UNIFIED IDEOGRAPH - ,0xAF5E ,0x73EA //CJK UNIFIED IDEOGRAPH - ,0xAF5F ,0x73DE //CJK UNIFIED IDEOGRAPH - ,0xAF60 ,0x7554 //CJK UNIFIED IDEOGRAPH - ,0xAF61 ,0x755D //CJK UNIFIED IDEOGRAPH - ,0xAF62 ,0x755C //CJK UNIFIED IDEOGRAPH - ,0xAF63 ,0x755A //CJK UNIFIED IDEOGRAPH - ,0xAF64 ,0x7559 //CJK UNIFIED IDEOGRAPH - ,0xAF65 ,0x75BE //CJK UNIFIED IDEOGRAPH - ,0xAF66 ,0x75C5 //CJK UNIFIED IDEOGRAPH - ,0xAF67 ,0x75C7 //CJK UNIFIED IDEOGRAPH - ,0xAF68 ,0x75B2 //CJK UNIFIED IDEOGRAPH - ,0xAF69 ,0x75B3 //CJK UNIFIED IDEOGRAPH - ,0xAF6A ,0x75BD //CJK UNIFIED IDEOGRAPH - ,0xAF6B ,0x75BC //CJK UNIFIED IDEOGRAPH - ,0xAF6C ,0x75B9 //CJK UNIFIED IDEOGRAPH - ,0xAF6D ,0x75C2 //CJK UNIFIED IDEOGRAPH - ,0xAF6E ,0x75B8 //CJK UNIFIED IDEOGRAPH - ,0xAF6F ,0x768B //CJK UNIFIED IDEOGRAPH - ,0xAF70 ,0x76B0 //CJK UNIFIED IDEOGRAPH - ,0xAF71 ,0x76CA //CJK UNIFIED IDEOGRAPH - ,0xAF72 ,0x76CD //CJK UNIFIED IDEOGRAPH - ,0xAF73 ,0x76CE //CJK UNIFIED IDEOGRAPH - ,0xAF74 ,0x7729 //CJK UNIFIED IDEOGRAPH - ,0xAF75 ,0x771F //CJK UNIFIED IDEOGRAPH - ,0xAF76 ,0x7720 //CJK UNIFIED IDEOGRAPH - ,0xAF77 ,0x7728 //CJK UNIFIED IDEOGRAPH - ,0xAF78 ,0x77E9 //CJK UNIFIED IDEOGRAPH - ,0xAF79 ,0x7830 //CJK UNIFIED IDEOGRAPH - ,0xAF7A ,0x7827 //CJK UNIFIED IDEOGRAPH - ,0xAF7B ,0x7838 //CJK UNIFIED IDEOGRAPH - ,0xAF7C ,0x781D //CJK UNIFIED IDEOGRAPH - ,0xAF7D ,0x7834 //CJK UNIFIED IDEOGRAPH - ,0xAF7E ,0x7837 //CJK UNIFIED IDEOGRAPH - ,0xAFA1 ,0x7825 //CJK UNIFIED IDEOGRAPH - ,0xAFA2 ,0x782D //CJK UNIFIED IDEOGRAPH - ,0xAFA3 ,0x7820 //CJK UNIFIED IDEOGRAPH - ,0xAFA4 ,0x781F //CJK UNIFIED IDEOGRAPH - ,0xAFA5 ,0x7832 //CJK UNIFIED IDEOGRAPH - ,0xAFA6 ,0x7955 //CJK UNIFIED IDEOGRAPH - ,0xAFA7 ,0x7950 //CJK UNIFIED IDEOGRAPH - ,0xAFA8 ,0x7960 //CJK UNIFIED IDEOGRAPH - ,0xAFA9 ,0x795F //CJK UNIFIED IDEOGRAPH - ,0xAFAA ,0x7956 //CJK UNIFIED IDEOGRAPH - ,0xAFAB ,0x795E //CJK UNIFIED IDEOGRAPH - ,0xAFAC ,0x795D //CJK UNIFIED IDEOGRAPH - ,0xAFAD ,0x7957 //CJK UNIFIED IDEOGRAPH - ,0xAFAE ,0x795A //CJK UNIFIED IDEOGRAPH - ,0xAFAF ,0x79E4 //CJK UNIFIED IDEOGRAPH - ,0xAFB0 ,0x79E3 //CJK UNIFIED IDEOGRAPH - ,0xAFB1 ,0x79E7 //CJK UNIFIED IDEOGRAPH - ,0xAFB2 ,0x79DF //CJK UNIFIED IDEOGRAPH - ,0xAFB3 ,0x79E6 //CJK UNIFIED IDEOGRAPH - ,0xAFB4 ,0x79E9 //CJK UNIFIED IDEOGRAPH - ,0xAFB5 ,0x79D8 //CJK UNIFIED IDEOGRAPH - ,0xAFB6 ,0x7A84 //CJK UNIFIED IDEOGRAPH - ,0xAFB7 ,0x7A88 //CJK UNIFIED IDEOGRAPH - ,0xAFB8 ,0x7AD9 //CJK UNIFIED IDEOGRAPH - ,0xAFB9 ,0x7B06 //CJK UNIFIED IDEOGRAPH - ,0xAFBA ,0x7B11 //CJK UNIFIED IDEOGRAPH - ,0xAFBB ,0x7C89 //CJK UNIFIED IDEOGRAPH - ,0xAFBC ,0x7D21 //CJK UNIFIED IDEOGRAPH - ,0xAFBD ,0x7D17 //CJK UNIFIED IDEOGRAPH - ,0xAFBE ,0x7D0B //CJK UNIFIED IDEOGRAPH - ,0xAFBF ,0x7D0A //CJK UNIFIED IDEOGRAPH - ,0xAFC0 ,0x7D20 //CJK UNIFIED IDEOGRAPH - ,0xAFC1 ,0x7D22 //CJK UNIFIED IDEOGRAPH - ,0xAFC2 ,0x7D14 //CJK UNIFIED IDEOGRAPH - ,0xAFC3 ,0x7D10 //CJK UNIFIED IDEOGRAPH - ,0xAFC4 ,0x7D15 //CJK UNIFIED IDEOGRAPH - ,0xAFC5 ,0x7D1A //CJK UNIFIED IDEOGRAPH - ,0xAFC6 ,0x7D1C //CJK UNIFIED IDEOGRAPH - ,0xAFC7 ,0x7D0D //CJK UNIFIED IDEOGRAPH - ,0xAFC8 ,0x7D19 //CJK UNIFIED IDEOGRAPH - ,0xAFC9 ,0x7D1B //CJK UNIFIED IDEOGRAPH - ,0xAFCA ,0x7F3A //CJK UNIFIED IDEOGRAPH - ,0xAFCB ,0x7F5F //CJK UNIFIED IDEOGRAPH - ,0xAFCC ,0x7F94 //CJK UNIFIED IDEOGRAPH - ,0xAFCD ,0x7FC5 //CJK UNIFIED IDEOGRAPH - ,0xAFCE ,0x7FC1 //CJK UNIFIED IDEOGRAPH - ,0xAFCF ,0x8006 //CJK UNIFIED IDEOGRAPH - ,0xAFD0 ,0x8018 //CJK UNIFIED IDEOGRAPH - ,0xAFD1 ,0x8015 //CJK UNIFIED IDEOGRAPH - ,0xAFD2 ,0x8019 //CJK UNIFIED IDEOGRAPH - ,0xAFD3 ,0x8017 //CJK UNIFIED IDEOGRAPH - ,0xAFD4 ,0x803D //CJK UNIFIED IDEOGRAPH - ,0xAFD5 ,0x803F //CJK UNIFIED IDEOGRAPH - ,0xAFD6 ,0x80F1 //CJK UNIFIED IDEOGRAPH - ,0xAFD7 ,0x8102 //CJK UNIFIED IDEOGRAPH - ,0xAFD8 ,0x80F0 //CJK UNIFIED IDEOGRAPH - ,0xAFD9 ,0x8105 //CJK UNIFIED IDEOGRAPH - ,0xAFDA ,0x80ED //CJK UNIFIED IDEOGRAPH - ,0xAFDB ,0x80F4 //CJK UNIFIED IDEOGRAPH - ,0xAFDC ,0x8106 //CJK UNIFIED IDEOGRAPH - ,0xAFDD ,0x80F8 //CJK UNIFIED IDEOGRAPH - ,0xAFDE ,0x80F3 //CJK UNIFIED IDEOGRAPH - ,0xAFDF ,0x8108 //CJK UNIFIED IDEOGRAPH - ,0xAFE0 ,0x80FD //CJK UNIFIED IDEOGRAPH - ,0xAFE1 ,0x810A //CJK UNIFIED IDEOGRAPH - ,0xAFE2 ,0x80FC //CJK UNIFIED IDEOGRAPH - ,0xAFE3 ,0x80EF //CJK UNIFIED IDEOGRAPH - ,0xAFE4 ,0x81ED //CJK UNIFIED IDEOGRAPH - ,0xAFE5 ,0x81EC //CJK UNIFIED IDEOGRAPH - ,0xAFE6 ,0x8200 //CJK UNIFIED IDEOGRAPH - ,0xAFE7 ,0x8210 //CJK UNIFIED IDEOGRAPH - ,0xAFE8 ,0x822A //CJK UNIFIED IDEOGRAPH - ,0xAFE9 ,0x822B //CJK UNIFIED IDEOGRAPH - ,0xAFEA ,0x8228 //CJK UNIFIED IDEOGRAPH - ,0xAFEB ,0x822C //CJK UNIFIED IDEOGRAPH - ,0xAFEC ,0x82BB //CJK UNIFIED IDEOGRAPH - ,0xAFED ,0x832B //CJK UNIFIED IDEOGRAPH - ,0xAFEE ,0x8352 //CJK UNIFIED IDEOGRAPH - ,0xAFEF ,0x8354 //CJK UNIFIED IDEOGRAPH - ,0xAFF0 ,0x834A //CJK UNIFIED IDEOGRAPH - ,0xAFF1 ,0x8338 //CJK UNIFIED IDEOGRAPH - ,0xAFF2 ,0x8350 //CJK UNIFIED IDEOGRAPH - ,0xAFF3 ,0x8349 //CJK UNIFIED IDEOGRAPH - ,0xAFF4 ,0x8335 //CJK UNIFIED IDEOGRAPH - ,0xAFF5 ,0x8334 //CJK UNIFIED IDEOGRAPH - ,0xAFF6 ,0x834F //CJK UNIFIED IDEOGRAPH - ,0xAFF7 ,0x8332 //CJK UNIFIED IDEOGRAPH - ,0xAFF8 ,0x8339 //CJK UNIFIED IDEOGRAPH - ,0xAFF9 ,0x8336 //CJK UNIFIED IDEOGRAPH - ,0xAFFA ,0x8317 //CJK UNIFIED IDEOGRAPH - ,0xAFFB ,0x8340 //CJK UNIFIED IDEOGRAPH - ,0xAFFC ,0x8331 //CJK UNIFIED IDEOGRAPH - ,0xAFFD ,0x8328 //CJK UNIFIED IDEOGRAPH - ,0xAFFE ,0x8343 //CJK UNIFIED IDEOGRAPH - ,0xB040 ,0x8654 //CJK UNIFIED IDEOGRAPH - ,0xB041 ,0x868A //CJK UNIFIED IDEOGRAPH - ,0xB042 ,0x86AA //CJK UNIFIED IDEOGRAPH - ,0xB043 ,0x8693 //CJK UNIFIED IDEOGRAPH - ,0xB044 ,0x86A4 //CJK UNIFIED IDEOGRAPH - ,0xB045 ,0x86A9 //CJK UNIFIED IDEOGRAPH - ,0xB046 ,0x868C //CJK UNIFIED IDEOGRAPH - ,0xB047 ,0x86A3 //CJK UNIFIED IDEOGRAPH - ,0xB048 ,0x869C //CJK UNIFIED IDEOGRAPH - ,0xB049 ,0x8870 //CJK UNIFIED IDEOGRAPH - ,0xB04A ,0x8877 //CJK UNIFIED IDEOGRAPH - ,0xB04B ,0x8881 //CJK UNIFIED IDEOGRAPH - ,0xB04C ,0x8882 //CJK UNIFIED IDEOGRAPH - ,0xB04D ,0x887D //CJK UNIFIED IDEOGRAPH - ,0xB04E ,0x8879 //CJK UNIFIED IDEOGRAPH - ,0xB04F ,0x8A18 //CJK UNIFIED IDEOGRAPH - ,0xB050 ,0x8A10 //CJK UNIFIED IDEOGRAPH - ,0xB051 ,0x8A0E //CJK UNIFIED IDEOGRAPH - ,0xB052 ,0x8A0C //CJK UNIFIED IDEOGRAPH - ,0xB053 ,0x8A15 //CJK UNIFIED IDEOGRAPH - ,0xB054 ,0x8A0A //CJK UNIFIED IDEOGRAPH - ,0xB055 ,0x8A17 //CJK UNIFIED IDEOGRAPH - ,0xB056 ,0x8A13 //CJK UNIFIED IDEOGRAPH - ,0xB057 ,0x8A16 //CJK UNIFIED IDEOGRAPH - ,0xB058 ,0x8A0F //CJK UNIFIED IDEOGRAPH - ,0xB059 ,0x8A11 //CJK UNIFIED IDEOGRAPH - ,0xB05A ,0x8C48 //CJK UNIFIED IDEOGRAPH - ,0xB05B ,0x8C7A //CJK UNIFIED IDEOGRAPH - ,0xB05C ,0x8C79 //CJK UNIFIED IDEOGRAPH - ,0xB05D ,0x8CA1 //CJK UNIFIED IDEOGRAPH - ,0xB05E ,0x8CA2 //CJK UNIFIED IDEOGRAPH - ,0xB05F ,0x8D77 //CJK UNIFIED IDEOGRAPH - ,0xB060 ,0x8EAC //CJK UNIFIED IDEOGRAPH - ,0xB061 ,0x8ED2 //CJK UNIFIED IDEOGRAPH - ,0xB062 ,0x8ED4 //CJK UNIFIED IDEOGRAPH - ,0xB063 ,0x8ECF //CJK UNIFIED IDEOGRAPH - ,0xB064 ,0x8FB1 //CJK UNIFIED IDEOGRAPH - ,0xB065 ,0x9001 //CJK UNIFIED IDEOGRAPH - ,0xB066 ,0x9006 //CJK UNIFIED IDEOGRAPH - ,0xB067 ,0x8FF7 //CJK UNIFIED IDEOGRAPH - ,0xB068 ,0x9000 //CJK UNIFIED IDEOGRAPH - ,0xB069 ,0x8FFA //CJK UNIFIED IDEOGRAPH - ,0xB06A ,0x8FF4 //CJK UNIFIED IDEOGRAPH - ,0xB06B ,0x9003 //CJK UNIFIED IDEOGRAPH - ,0xB06C ,0x8FFD //CJK UNIFIED IDEOGRAPH - ,0xB06D ,0x9005 //CJK UNIFIED IDEOGRAPH - ,0xB06E ,0x8FF8 //CJK UNIFIED IDEOGRAPH - ,0xB06F ,0x9095 //CJK UNIFIED IDEOGRAPH - ,0xB070 ,0x90E1 //CJK UNIFIED IDEOGRAPH - ,0xB071 ,0x90DD //CJK UNIFIED IDEOGRAPH - ,0xB072 ,0x90E2 //CJK UNIFIED IDEOGRAPH - ,0xB073 ,0x9152 //CJK UNIFIED IDEOGRAPH - ,0xB074 ,0x914D //CJK UNIFIED IDEOGRAPH - ,0xB075 ,0x914C //CJK UNIFIED IDEOGRAPH - ,0xB076 ,0x91D8 //CJK UNIFIED IDEOGRAPH - ,0xB077 ,0x91DD //CJK UNIFIED IDEOGRAPH - ,0xB078 ,0x91D7 //CJK UNIFIED IDEOGRAPH - ,0xB079 ,0x91DC //CJK UNIFIED IDEOGRAPH - ,0xB07A ,0x91D9 //CJK UNIFIED IDEOGRAPH - ,0xB07B ,0x9583 //CJK UNIFIED IDEOGRAPH - ,0xB07C ,0x9662 //CJK UNIFIED IDEOGRAPH - ,0xB07D ,0x9663 //CJK UNIFIED IDEOGRAPH - ,0xB07E ,0x9661 //CJK UNIFIED IDEOGRAPH - ,0xB0A1 ,0x965B //CJK UNIFIED IDEOGRAPH - ,0xB0A2 ,0x965D //CJK UNIFIED IDEOGRAPH - ,0xB0A3 ,0x9664 //CJK UNIFIED IDEOGRAPH - ,0xB0A4 ,0x9658 //CJK UNIFIED IDEOGRAPH - ,0xB0A5 ,0x965E //CJK UNIFIED IDEOGRAPH - ,0xB0A6 ,0x96BB //CJK UNIFIED IDEOGRAPH - ,0xB0A7 ,0x98E2 //CJK UNIFIED IDEOGRAPH - ,0xB0A8 ,0x99AC //CJK UNIFIED IDEOGRAPH - ,0xB0A9 ,0x9AA8 //CJK UNIFIED IDEOGRAPH - ,0xB0AA ,0x9AD8 //CJK UNIFIED IDEOGRAPH - ,0xB0AB ,0x9B25 //CJK UNIFIED IDEOGRAPH - ,0xB0AC ,0x9B32 //CJK UNIFIED IDEOGRAPH - ,0xB0AD ,0x9B3C //CJK UNIFIED IDEOGRAPH - ,0xB0AE ,0x4E7E //CJK UNIFIED IDEOGRAPH - ,0xB0AF ,0x507A //CJK UNIFIED IDEOGRAPH - ,0xB0B0 ,0x507D //CJK UNIFIED IDEOGRAPH - ,0xB0B1 ,0x505C //CJK UNIFIED IDEOGRAPH - ,0xB0B2 ,0x5047 //CJK UNIFIED IDEOGRAPH - ,0xB0B3 ,0x5043 //CJK UNIFIED IDEOGRAPH - ,0xB0B4 ,0x504C //CJK UNIFIED IDEOGRAPH - ,0xB0B5 ,0x505A //CJK UNIFIED IDEOGRAPH - ,0xB0B6 ,0x5049 //CJK UNIFIED IDEOGRAPH - ,0xB0B7 ,0x5065 //CJK UNIFIED IDEOGRAPH - ,0xB0B8 ,0x5076 //CJK UNIFIED IDEOGRAPH - ,0xB0B9 ,0x504E //CJK UNIFIED IDEOGRAPH - ,0xB0BA ,0x5055 //CJK UNIFIED IDEOGRAPH - ,0xB0BB ,0x5075 //CJK UNIFIED IDEOGRAPH - ,0xB0BC ,0x5074 //CJK UNIFIED IDEOGRAPH - ,0xB0BD ,0x5077 //CJK UNIFIED IDEOGRAPH - ,0xB0BE ,0x504F //CJK UNIFIED IDEOGRAPH - ,0xB0BF ,0x500F //CJK UNIFIED IDEOGRAPH - ,0xB0C0 ,0x506F //CJK UNIFIED IDEOGRAPH - ,0xB0C1 ,0x506D //CJK UNIFIED IDEOGRAPH - ,0xB0C2 ,0x515C //CJK UNIFIED IDEOGRAPH - ,0xB0C3 ,0x5195 //CJK UNIFIED IDEOGRAPH - ,0xB0C4 ,0x51F0 //CJK UNIFIED IDEOGRAPH - ,0xB0C5 ,0x526A //CJK UNIFIED IDEOGRAPH - ,0xB0C6 ,0x526F //CJK UNIFIED IDEOGRAPH - ,0xB0C7 ,0x52D2 //CJK UNIFIED IDEOGRAPH - ,0xB0C8 ,0x52D9 //CJK UNIFIED IDEOGRAPH - ,0xB0C9 ,0x52D8 //CJK UNIFIED IDEOGRAPH - ,0xB0CA ,0x52D5 //CJK UNIFIED IDEOGRAPH - ,0xB0CB ,0x5310 //CJK UNIFIED IDEOGRAPH - ,0xB0CC ,0x530F //CJK UNIFIED IDEOGRAPH - ,0xB0CD ,0x5319 //CJK UNIFIED IDEOGRAPH - ,0xB0CE ,0x533F //CJK UNIFIED IDEOGRAPH - ,0xB0CF ,0x5340 //CJK UNIFIED IDEOGRAPH - ,0xB0D0 ,0x533E //CJK UNIFIED IDEOGRAPH - ,0xB0D1 ,0x53C3 //CJK UNIFIED IDEOGRAPH - ,0xB0D2 ,0x66FC //CJK UNIFIED IDEOGRAPH - ,0xB0D3 ,0x5546 //CJK UNIFIED IDEOGRAPH - ,0xB0D4 ,0x556A //CJK UNIFIED IDEOGRAPH - ,0xB0D5 ,0x5566 //CJK UNIFIED IDEOGRAPH - ,0xB0D6 ,0x5544 //CJK UNIFIED IDEOGRAPH - ,0xB0D7 ,0x555E //CJK UNIFIED IDEOGRAPH - ,0xB0D8 ,0x5561 //CJK UNIFIED IDEOGRAPH - ,0xB0D9 ,0x5543 //CJK UNIFIED IDEOGRAPH - ,0xB0DA ,0x554A //CJK UNIFIED IDEOGRAPH - ,0xB0DB ,0x5531 //CJK UNIFIED IDEOGRAPH - ,0xB0DC ,0x5556 //CJK UNIFIED IDEOGRAPH - ,0xB0DD ,0x554F //CJK UNIFIED IDEOGRAPH - ,0xB0DE ,0x5555 //CJK UNIFIED IDEOGRAPH - ,0xB0DF ,0x552F //CJK UNIFIED IDEOGRAPH - ,0xB0E0 ,0x5564 //CJK UNIFIED IDEOGRAPH - ,0xB0E1 ,0x5538 //CJK UNIFIED IDEOGRAPH - ,0xB0E2 ,0x552E //CJK UNIFIED IDEOGRAPH - ,0xB0E3 ,0x555C //CJK UNIFIED IDEOGRAPH - ,0xB0E4 ,0x552C //CJK UNIFIED IDEOGRAPH - ,0xB0E5 ,0x5563 //CJK UNIFIED IDEOGRAPH - ,0xB0E6 ,0x5533 //CJK UNIFIED IDEOGRAPH - ,0xB0E7 ,0x5541 //CJK UNIFIED IDEOGRAPH - ,0xB0E8 ,0x5557 //CJK UNIFIED IDEOGRAPH - ,0xB0E9 ,0x5708 //CJK UNIFIED IDEOGRAPH - ,0xB0EA ,0x570B //CJK UNIFIED IDEOGRAPH - ,0xB0EB ,0x5709 //CJK UNIFIED IDEOGRAPH - ,0xB0EC ,0x57DF //CJK UNIFIED IDEOGRAPH - ,0xB0ED ,0x5805 //CJK UNIFIED IDEOGRAPH - ,0xB0EE ,0x580A //CJK UNIFIED IDEOGRAPH - ,0xB0EF ,0x5806 //CJK UNIFIED IDEOGRAPH - ,0xB0F0 ,0x57E0 //CJK UNIFIED IDEOGRAPH - ,0xB0F1 ,0x57E4 //CJK UNIFIED IDEOGRAPH - ,0xB0F2 ,0x57FA //CJK UNIFIED IDEOGRAPH - ,0xB0F3 ,0x5802 //CJK UNIFIED IDEOGRAPH - ,0xB0F4 ,0x5835 //CJK UNIFIED IDEOGRAPH - ,0xB0F5 ,0x57F7 //CJK UNIFIED IDEOGRAPH - ,0xB0F6 ,0x57F9 //CJK UNIFIED IDEOGRAPH - ,0xB0F7 ,0x5920 //CJK UNIFIED IDEOGRAPH - ,0xB0F8 ,0x5962 //CJK UNIFIED IDEOGRAPH - ,0xB0F9 ,0x5A36 //CJK UNIFIED IDEOGRAPH - ,0xB0FA ,0x5A41 //CJK UNIFIED IDEOGRAPH - ,0xB0FB ,0x5A49 //CJK UNIFIED IDEOGRAPH - ,0xB0FC ,0x5A66 //CJK UNIFIED IDEOGRAPH - ,0xB0FD ,0x5A6A //CJK UNIFIED IDEOGRAPH - ,0xB0FE ,0x5A40 //CJK UNIFIED IDEOGRAPH - ,0xB140 ,0x5A3C //CJK UNIFIED IDEOGRAPH - ,0xB141 ,0x5A62 //CJK UNIFIED IDEOGRAPH - ,0xB142 ,0x5A5A //CJK UNIFIED IDEOGRAPH - ,0xB143 ,0x5A46 //CJK UNIFIED IDEOGRAPH - ,0xB144 ,0x5A4A //CJK UNIFIED IDEOGRAPH - ,0xB145 ,0x5B70 //CJK UNIFIED IDEOGRAPH - ,0xB146 ,0x5BC7 //CJK UNIFIED IDEOGRAPH - ,0xB147 ,0x5BC5 //CJK UNIFIED IDEOGRAPH - ,0xB148 ,0x5BC4 //CJK UNIFIED IDEOGRAPH - ,0xB149 ,0x5BC2 //CJK UNIFIED IDEOGRAPH - ,0xB14A ,0x5BBF //CJK UNIFIED IDEOGRAPH - ,0xB14B ,0x5BC6 //CJK UNIFIED IDEOGRAPH - ,0xB14C ,0x5C09 //CJK UNIFIED IDEOGRAPH - ,0xB14D ,0x5C08 //CJK UNIFIED IDEOGRAPH - ,0xB14E ,0x5C07 //CJK UNIFIED IDEOGRAPH - ,0xB14F ,0x5C60 //CJK UNIFIED IDEOGRAPH - ,0xB150 ,0x5C5C //CJK UNIFIED IDEOGRAPH - ,0xB151 ,0x5C5D //CJK UNIFIED IDEOGRAPH - ,0xB152 ,0x5D07 //CJK UNIFIED IDEOGRAPH - ,0xB153 ,0x5D06 //CJK UNIFIED IDEOGRAPH - ,0xB154 ,0x5D0E //CJK UNIFIED IDEOGRAPH - ,0xB155 ,0x5D1B //CJK UNIFIED IDEOGRAPH - ,0xB156 ,0x5D16 //CJK UNIFIED IDEOGRAPH - ,0xB157 ,0x5D22 //CJK UNIFIED IDEOGRAPH - ,0xB158 ,0x5D11 //CJK UNIFIED IDEOGRAPH - ,0xB159 ,0x5D29 //CJK UNIFIED IDEOGRAPH - ,0xB15A ,0x5D14 //CJK UNIFIED IDEOGRAPH - ,0xB15B ,0x5D19 //CJK UNIFIED IDEOGRAPH - ,0xB15C ,0x5D24 //CJK UNIFIED IDEOGRAPH - ,0xB15D ,0x5D27 //CJK UNIFIED IDEOGRAPH - ,0xB15E ,0x5D17 //CJK UNIFIED IDEOGRAPH - ,0xB15F ,0x5DE2 //CJK UNIFIED IDEOGRAPH - ,0xB160 ,0x5E38 //CJK UNIFIED IDEOGRAPH - ,0xB161 ,0x5E36 //CJK UNIFIED IDEOGRAPH - ,0xB162 ,0x5E33 //CJK UNIFIED IDEOGRAPH - ,0xB163 ,0x5E37 //CJK UNIFIED IDEOGRAPH - ,0xB164 ,0x5EB7 //CJK UNIFIED IDEOGRAPH - ,0xB165 ,0x5EB8 //CJK UNIFIED IDEOGRAPH - ,0xB166 ,0x5EB6 //CJK UNIFIED IDEOGRAPH - ,0xB167 ,0x5EB5 //CJK UNIFIED IDEOGRAPH - ,0xB168 ,0x5EBE //CJK UNIFIED IDEOGRAPH - ,0xB169 ,0x5F35 //CJK UNIFIED IDEOGRAPH - ,0xB16A ,0x5F37 //CJK UNIFIED IDEOGRAPH - ,0xB16B ,0x5F57 //CJK UNIFIED IDEOGRAPH - ,0xB16C ,0x5F6C //CJK UNIFIED IDEOGRAPH - ,0xB16D ,0x5F69 //CJK UNIFIED IDEOGRAPH - ,0xB16E ,0x5F6B //CJK UNIFIED IDEOGRAPH - ,0xB16F ,0x5F97 //CJK UNIFIED IDEOGRAPH - ,0xB170 ,0x5F99 //CJK UNIFIED IDEOGRAPH - ,0xB171 ,0x5F9E //CJK UNIFIED IDEOGRAPH - ,0xB172 ,0x5F98 //CJK UNIFIED IDEOGRAPH - ,0xB173 ,0x5FA1 //CJK UNIFIED IDEOGRAPH - ,0xB174 ,0x5FA0 //CJK UNIFIED IDEOGRAPH - ,0xB175 ,0x5F9C //CJK UNIFIED IDEOGRAPH - ,0xB176 ,0x607F //CJK UNIFIED IDEOGRAPH - ,0xB177 ,0x60A3 //CJK UNIFIED IDEOGRAPH - ,0xB178 ,0x6089 //CJK UNIFIED IDEOGRAPH - ,0xB179 ,0x60A0 //CJK UNIFIED IDEOGRAPH - ,0xB17A ,0x60A8 //CJK UNIFIED IDEOGRAPH - ,0xB17B ,0x60CB //CJK UNIFIED IDEOGRAPH - ,0xB17C ,0x60B4 //CJK UNIFIED IDEOGRAPH - ,0xB17D ,0x60E6 //CJK UNIFIED IDEOGRAPH - ,0xB17E ,0x60BD //CJK UNIFIED IDEOGRAPH - ,0xB1A1 ,0x60C5 //CJK UNIFIED IDEOGRAPH - ,0xB1A2 ,0x60BB //CJK UNIFIED IDEOGRAPH - ,0xB1A3 ,0x60B5 //CJK UNIFIED IDEOGRAPH - ,0xB1A4 ,0x60DC //CJK UNIFIED IDEOGRAPH - ,0xB1A5 ,0x60BC //CJK UNIFIED IDEOGRAPH - ,0xB1A6 ,0x60D8 //CJK UNIFIED IDEOGRAPH - ,0xB1A7 ,0x60D5 //CJK UNIFIED IDEOGRAPH - ,0xB1A8 ,0x60C6 //CJK UNIFIED IDEOGRAPH - ,0xB1A9 ,0x60DF //CJK UNIFIED IDEOGRAPH - ,0xB1AA ,0x60B8 //CJK UNIFIED IDEOGRAPH - ,0xB1AB ,0x60DA //CJK UNIFIED IDEOGRAPH - ,0xB1AC ,0x60C7 //CJK UNIFIED IDEOGRAPH - ,0xB1AD ,0x621A //CJK UNIFIED IDEOGRAPH - ,0xB1AE ,0x621B //CJK UNIFIED IDEOGRAPH - ,0xB1AF ,0x6248 //CJK UNIFIED IDEOGRAPH - ,0xB1B0 ,0x63A0 //CJK UNIFIED IDEOGRAPH - ,0xB1B1 ,0x63A7 //CJK UNIFIED IDEOGRAPH - ,0xB1B2 ,0x6372 //CJK UNIFIED IDEOGRAPH - ,0xB1B3 ,0x6396 //CJK UNIFIED IDEOGRAPH - ,0xB1B4 ,0x63A2 //CJK UNIFIED IDEOGRAPH - ,0xB1B5 ,0x63A5 //CJK UNIFIED IDEOGRAPH - ,0xB1B6 ,0x6377 //CJK UNIFIED IDEOGRAPH - ,0xB1B7 ,0x6367 //CJK UNIFIED IDEOGRAPH - ,0xB1B8 ,0x6398 //CJK UNIFIED IDEOGRAPH - ,0xB1B9 ,0x63AA //CJK UNIFIED IDEOGRAPH - ,0xB1BA ,0x6371 //CJK UNIFIED IDEOGRAPH - ,0xB1BB ,0x63A9 //CJK UNIFIED IDEOGRAPH - ,0xB1BC ,0x6389 //CJK UNIFIED IDEOGRAPH - ,0xB1BD ,0x6383 //CJK UNIFIED IDEOGRAPH - ,0xB1BE ,0x639B //CJK UNIFIED IDEOGRAPH - ,0xB1BF ,0x636B //CJK UNIFIED IDEOGRAPH - ,0xB1C0 ,0x63A8 //CJK UNIFIED IDEOGRAPH - ,0xB1C1 ,0x6384 //CJK UNIFIED IDEOGRAPH - ,0xB1C2 ,0x6388 //CJK UNIFIED IDEOGRAPH - ,0xB1C3 ,0x6399 //CJK UNIFIED IDEOGRAPH - ,0xB1C4 ,0x63A1 //CJK UNIFIED IDEOGRAPH - ,0xB1C5 ,0x63AC //CJK UNIFIED IDEOGRAPH - ,0xB1C6 ,0x6392 //CJK UNIFIED IDEOGRAPH - ,0xB1C7 ,0x638F //CJK UNIFIED IDEOGRAPH - ,0xB1C8 ,0x6380 //CJK UNIFIED IDEOGRAPH - ,0xB1C9 ,0x637B //CJK UNIFIED IDEOGRAPH - ,0xB1CA ,0x6369 //CJK UNIFIED IDEOGRAPH - ,0xB1CB ,0x6368 //CJK UNIFIED IDEOGRAPH - ,0xB1CC ,0x637A //CJK UNIFIED IDEOGRAPH - ,0xB1CD ,0x655D //CJK UNIFIED IDEOGRAPH - ,0xB1CE ,0x6556 //CJK UNIFIED IDEOGRAPH - ,0xB1CF ,0x6551 //CJK UNIFIED IDEOGRAPH - ,0xB1D0 ,0x6559 //CJK UNIFIED IDEOGRAPH - ,0xB1D1 ,0x6557 //CJK UNIFIED IDEOGRAPH - ,0xB1D2 ,0x555F //CJK UNIFIED IDEOGRAPH - ,0xB1D3 ,0x654F //CJK UNIFIED IDEOGRAPH - ,0xB1D4 ,0x6558 //CJK UNIFIED IDEOGRAPH - ,0xB1D5 ,0x6555 //CJK UNIFIED IDEOGRAPH - ,0xB1D6 ,0x6554 //CJK UNIFIED IDEOGRAPH - ,0xB1D7 ,0x659C //CJK UNIFIED IDEOGRAPH - ,0xB1D8 ,0x659B //CJK UNIFIED IDEOGRAPH - ,0xB1D9 ,0x65AC //CJK UNIFIED IDEOGRAPH - ,0xB1DA ,0x65CF //CJK UNIFIED IDEOGRAPH - ,0xB1DB ,0x65CB //CJK UNIFIED IDEOGRAPH - ,0xB1DC ,0x65CC //CJK UNIFIED IDEOGRAPH - ,0xB1DD ,0x65CE //CJK UNIFIED IDEOGRAPH - ,0xB1DE ,0x665D //CJK UNIFIED IDEOGRAPH - ,0xB1DF ,0x665A //CJK UNIFIED IDEOGRAPH - ,0xB1E0 ,0x6664 //CJK UNIFIED IDEOGRAPH - ,0xB1E1 ,0x6668 //CJK UNIFIED IDEOGRAPH - ,0xB1E2 ,0x6666 //CJK UNIFIED IDEOGRAPH - ,0xB1E3 ,0x665E //CJK UNIFIED IDEOGRAPH - ,0xB1E4 ,0x66F9 //CJK UNIFIED IDEOGRAPH - ,0xB1E5 ,0x52D7 //CJK UNIFIED IDEOGRAPH - ,0xB1E6 ,0x671B //CJK UNIFIED IDEOGRAPH - ,0xB1E7 ,0x6881 //CJK UNIFIED IDEOGRAPH - ,0xB1E8 ,0x68AF //CJK UNIFIED IDEOGRAPH - ,0xB1E9 ,0x68A2 //CJK UNIFIED IDEOGRAPH - ,0xB1EA ,0x6893 //CJK UNIFIED IDEOGRAPH - ,0xB1EB ,0x68B5 //CJK UNIFIED IDEOGRAPH - ,0xB1EC ,0x687F //CJK UNIFIED IDEOGRAPH - ,0xB1ED ,0x6876 //CJK UNIFIED IDEOGRAPH - ,0xB1EE ,0x68B1 //CJK UNIFIED IDEOGRAPH - ,0xB1EF ,0x68A7 //CJK UNIFIED IDEOGRAPH - ,0xB1F0 ,0x6897 //CJK UNIFIED IDEOGRAPH - ,0xB1F1 ,0x68B0 //CJK UNIFIED IDEOGRAPH - ,0xB1F2 ,0x6883 //CJK UNIFIED IDEOGRAPH - ,0xB1F3 ,0x68C4 //CJK UNIFIED IDEOGRAPH - ,0xB1F4 ,0x68AD //CJK UNIFIED IDEOGRAPH - ,0xB1F5 ,0x6886 //CJK UNIFIED IDEOGRAPH - ,0xB1F6 ,0x6885 //CJK UNIFIED IDEOGRAPH - ,0xB1F7 ,0x6894 //CJK UNIFIED IDEOGRAPH - ,0xB1F8 ,0x689D //CJK UNIFIED IDEOGRAPH - ,0xB1F9 ,0x68A8 //CJK UNIFIED IDEOGRAPH - ,0xB1FA ,0x689F //CJK UNIFIED IDEOGRAPH - ,0xB1FB ,0x68A1 //CJK UNIFIED IDEOGRAPH - ,0xB1FC ,0x6882 //CJK UNIFIED IDEOGRAPH - ,0xB1FD ,0x6B32 //CJK UNIFIED IDEOGRAPH - ,0xB1FE ,0x6BBA //CJK UNIFIED IDEOGRAPH - ,0xB240 ,0x6BEB //CJK UNIFIED IDEOGRAPH - ,0xB241 ,0x6BEC //CJK UNIFIED IDEOGRAPH - ,0xB242 ,0x6C2B //CJK UNIFIED IDEOGRAPH - ,0xB243 ,0x6D8E //CJK UNIFIED IDEOGRAPH - ,0xB244 ,0x6DBC //CJK UNIFIED IDEOGRAPH - ,0xB245 ,0x6DF3 //CJK UNIFIED IDEOGRAPH - ,0xB246 ,0x6DD9 //CJK UNIFIED IDEOGRAPH - ,0xB247 ,0x6DB2 //CJK UNIFIED IDEOGRAPH - ,0xB248 ,0x6DE1 //CJK UNIFIED IDEOGRAPH - ,0xB249 ,0x6DCC //CJK UNIFIED IDEOGRAPH - ,0xB24A ,0x6DE4 //CJK UNIFIED IDEOGRAPH - ,0xB24B ,0x6DFB //CJK UNIFIED IDEOGRAPH - ,0xB24C ,0x6DFA //CJK UNIFIED IDEOGRAPH - ,0xB24D ,0x6E05 //CJK UNIFIED IDEOGRAPH - ,0xB24E ,0x6DC7 //CJK UNIFIED IDEOGRAPH - ,0xB24F ,0x6DCB //CJK UNIFIED IDEOGRAPH - ,0xB250 ,0x6DAF //CJK UNIFIED IDEOGRAPH - ,0xB251 ,0x6DD1 //CJK UNIFIED IDEOGRAPH - ,0xB252 ,0x6DAE //CJK UNIFIED IDEOGRAPH - ,0xB253 ,0x6DDE //CJK UNIFIED IDEOGRAPH - ,0xB254 ,0x6DF9 //CJK UNIFIED IDEOGRAPH - ,0xB255 ,0x6DB8 //CJK UNIFIED IDEOGRAPH - ,0xB256 ,0x6DF7 //CJK UNIFIED IDEOGRAPH - ,0xB257 ,0x6DF5 //CJK UNIFIED IDEOGRAPH - ,0xB258 ,0x6DC5 //CJK UNIFIED IDEOGRAPH - ,0xB259 ,0x6DD2 //CJK UNIFIED IDEOGRAPH - ,0xB25A ,0x6E1A //CJK UNIFIED IDEOGRAPH - ,0xB25B ,0x6DB5 //CJK UNIFIED IDEOGRAPH - ,0xB25C ,0x6DDA //CJK UNIFIED IDEOGRAPH - ,0xB25D ,0x6DEB //CJK UNIFIED IDEOGRAPH - ,0xB25E ,0x6DD8 //CJK UNIFIED IDEOGRAPH - ,0xB25F ,0x6DEA //CJK UNIFIED IDEOGRAPH - ,0xB260 ,0x6DF1 //CJK UNIFIED IDEOGRAPH - ,0xB261 ,0x6DEE //CJK UNIFIED IDEOGRAPH - ,0xB262 ,0x6DE8 //CJK UNIFIED IDEOGRAPH - ,0xB263 ,0x6DC6 //CJK UNIFIED IDEOGRAPH - ,0xB264 ,0x6DC4 //CJK UNIFIED IDEOGRAPH - ,0xB265 ,0x6DAA //CJK UNIFIED IDEOGRAPH - ,0xB266 ,0x6DEC //CJK UNIFIED IDEOGRAPH - ,0xB267 ,0x6DBF //CJK UNIFIED IDEOGRAPH - ,0xB268 ,0x6DE6 //CJK UNIFIED IDEOGRAPH - ,0xB269 ,0x70F9 //CJK UNIFIED IDEOGRAPH - ,0xB26A ,0x7109 //CJK UNIFIED IDEOGRAPH - ,0xB26B ,0x710A //CJK UNIFIED IDEOGRAPH - ,0xB26C ,0x70FD //CJK UNIFIED IDEOGRAPH - ,0xB26D ,0x70EF //CJK UNIFIED IDEOGRAPH - ,0xB26E ,0x723D //CJK UNIFIED IDEOGRAPH - ,0xB26F ,0x727D //CJK UNIFIED IDEOGRAPH - ,0xB270 ,0x7281 //CJK UNIFIED IDEOGRAPH - ,0xB271 ,0x731C //CJK UNIFIED IDEOGRAPH - ,0xB272 ,0x731B //CJK UNIFIED IDEOGRAPH - ,0xB273 ,0x7316 //CJK UNIFIED IDEOGRAPH - ,0xB274 ,0x7313 //CJK UNIFIED IDEOGRAPH - ,0xB275 ,0x7319 //CJK UNIFIED IDEOGRAPH - ,0xB276 ,0x7387 //CJK UNIFIED IDEOGRAPH - ,0xB277 ,0x7405 //CJK UNIFIED IDEOGRAPH - ,0xB278 ,0x740A //CJK UNIFIED IDEOGRAPH - ,0xB279 ,0x7403 //CJK UNIFIED IDEOGRAPH - ,0xB27A ,0x7406 //CJK UNIFIED IDEOGRAPH - ,0xB27B ,0x73FE //CJK UNIFIED IDEOGRAPH - ,0xB27C ,0x740D //CJK UNIFIED IDEOGRAPH - ,0xB27D ,0x74E0 //CJK UNIFIED IDEOGRAPH - ,0xB27E ,0x74F6 //CJK UNIFIED IDEOGRAPH - ,0xB2A1 ,0x74F7 //CJK UNIFIED IDEOGRAPH - ,0xB2A2 ,0x751C //CJK UNIFIED IDEOGRAPH - ,0xB2A3 ,0x7522 //CJK UNIFIED IDEOGRAPH - ,0xB2A4 ,0x7565 //CJK UNIFIED IDEOGRAPH - ,0xB2A5 ,0x7566 //CJK UNIFIED IDEOGRAPH - ,0xB2A6 ,0x7562 //CJK UNIFIED IDEOGRAPH - ,0xB2A7 ,0x7570 //CJK UNIFIED IDEOGRAPH - ,0xB2A8 ,0x758F //CJK UNIFIED IDEOGRAPH - ,0xB2A9 ,0x75D4 //CJK UNIFIED IDEOGRAPH - ,0xB2AA ,0x75D5 //CJK UNIFIED IDEOGRAPH - ,0xB2AB ,0x75B5 //CJK UNIFIED IDEOGRAPH - ,0xB2AC ,0x75CA //CJK UNIFIED IDEOGRAPH - ,0xB2AD ,0x75CD //CJK UNIFIED IDEOGRAPH - ,0xB2AE ,0x768E //CJK UNIFIED IDEOGRAPH - ,0xB2AF ,0x76D4 //CJK UNIFIED IDEOGRAPH - ,0xB2B0 ,0x76D2 //CJK UNIFIED IDEOGRAPH - ,0xB2B1 ,0x76DB //CJK UNIFIED IDEOGRAPH - ,0xB2B2 ,0x7737 //CJK UNIFIED IDEOGRAPH - ,0xB2B3 ,0x773E //CJK UNIFIED IDEOGRAPH - ,0xB2B4 ,0x773C //CJK UNIFIED IDEOGRAPH - ,0xB2B5 ,0x7736 //CJK UNIFIED IDEOGRAPH - ,0xB2B6 ,0x7738 //CJK UNIFIED IDEOGRAPH - ,0xB2B7 ,0x773A //CJK UNIFIED IDEOGRAPH - ,0xB2B8 ,0x786B //CJK UNIFIED IDEOGRAPH - ,0xB2B9 ,0x7843 //CJK UNIFIED IDEOGRAPH - ,0xB2BA ,0x784E //CJK UNIFIED IDEOGRAPH - ,0xB2BB ,0x7965 //CJK UNIFIED IDEOGRAPH - ,0xB2BC ,0x7968 //CJK UNIFIED IDEOGRAPH - ,0xB2BD ,0x796D //CJK UNIFIED IDEOGRAPH - ,0xB2BE ,0x79FB //CJK UNIFIED IDEOGRAPH - ,0xB2BF ,0x7A92 //CJK UNIFIED IDEOGRAPH - ,0xB2C0 ,0x7A95 //CJK UNIFIED IDEOGRAPH - ,0xB2C1 ,0x7B20 //CJK UNIFIED IDEOGRAPH - ,0xB2C2 ,0x7B28 //CJK UNIFIED IDEOGRAPH - ,0xB2C3 ,0x7B1B //CJK UNIFIED IDEOGRAPH - ,0xB2C4 ,0x7B2C //CJK UNIFIED IDEOGRAPH - ,0xB2C5 ,0x7B26 //CJK UNIFIED IDEOGRAPH - ,0xB2C6 ,0x7B19 //CJK UNIFIED IDEOGRAPH - ,0xB2C7 ,0x7B1E //CJK UNIFIED IDEOGRAPH - ,0xB2C8 ,0x7B2E //CJK UNIFIED IDEOGRAPH - ,0xB2C9 ,0x7C92 //CJK UNIFIED IDEOGRAPH - ,0xB2CA ,0x7C97 //CJK UNIFIED IDEOGRAPH - ,0xB2CB ,0x7C95 //CJK UNIFIED IDEOGRAPH - ,0xB2CC ,0x7D46 //CJK UNIFIED IDEOGRAPH - ,0xB2CD ,0x7D43 //CJK UNIFIED IDEOGRAPH - ,0xB2CE ,0x7D71 //CJK UNIFIED IDEOGRAPH - ,0xB2CF ,0x7D2E //CJK UNIFIED IDEOGRAPH - ,0xB2D0 ,0x7D39 //CJK UNIFIED IDEOGRAPH - ,0xB2D1 ,0x7D3C //CJK UNIFIED IDEOGRAPH - ,0xB2D2 ,0x7D40 //CJK UNIFIED IDEOGRAPH - ,0xB2D3 ,0x7D30 //CJK UNIFIED IDEOGRAPH - ,0xB2D4 ,0x7D33 //CJK UNIFIED IDEOGRAPH - ,0xB2D5 ,0x7D44 //CJK UNIFIED IDEOGRAPH - ,0xB2D6 ,0x7D2F //CJK UNIFIED IDEOGRAPH - ,0xB2D7 ,0x7D42 //CJK UNIFIED IDEOGRAPH - ,0xB2D8 ,0x7D32 //CJK UNIFIED IDEOGRAPH - ,0xB2D9 ,0x7D31 //CJK UNIFIED IDEOGRAPH - ,0xB2DA ,0x7F3D //CJK UNIFIED IDEOGRAPH - ,0xB2DB ,0x7F9E //CJK UNIFIED IDEOGRAPH - ,0xB2DC ,0x7F9A //CJK UNIFIED IDEOGRAPH - ,0xB2DD ,0x7FCC //CJK UNIFIED IDEOGRAPH - ,0xB2DE ,0x7FCE //CJK UNIFIED IDEOGRAPH - ,0xB2DF ,0x7FD2 //CJK UNIFIED IDEOGRAPH - ,0xB2E0 ,0x801C //CJK UNIFIED IDEOGRAPH - ,0xB2E1 ,0x804A //CJK UNIFIED IDEOGRAPH - ,0xB2E2 ,0x8046 //CJK UNIFIED IDEOGRAPH - ,0xB2E3 ,0x812F //CJK UNIFIED IDEOGRAPH - ,0xB2E4 ,0x8116 //CJK UNIFIED IDEOGRAPH - ,0xB2E5 ,0x8123 //CJK UNIFIED IDEOGRAPH - ,0xB2E6 ,0x812B //CJK UNIFIED IDEOGRAPH - ,0xB2E7 ,0x8129 //CJK UNIFIED IDEOGRAPH - ,0xB2E8 ,0x8130 //CJK UNIFIED IDEOGRAPH - ,0xB2E9 ,0x8124 //CJK UNIFIED IDEOGRAPH - ,0xB2EA ,0x8202 //CJK UNIFIED IDEOGRAPH - ,0xB2EB ,0x8235 //CJK UNIFIED IDEOGRAPH - ,0xB2EC ,0x8237 //CJK UNIFIED IDEOGRAPH - ,0xB2ED ,0x8236 //CJK UNIFIED IDEOGRAPH - ,0xB2EE ,0x8239 //CJK UNIFIED IDEOGRAPH - ,0xB2EF ,0x838E //CJK UNIFIED IDEOGRAPH - ,0xB2F0 ,0x839E //CJK UNIFIED IDEOGRAPH - ,0xB2F1 ,0x8398 //CJK UNIFIED IDEOGRAPH - ,0xB2F2 ,0x8378 //CJK UNIFIED IDEOGRAPH - ,0xB2F3 ,0x83A2 //CJK UNIFIED IDEOGRAPH - ,0xB2F4 ,0x8396 //CJK UNIFIED IDEOGRAPH - ,0xB2F5 ,0x83BD //CJK UNIFIED IDEOGRAPH - ,0xB2F6 ,0x83AB //CJK UNIFIED IDEOGRAPH - ,0xB2F7 ,0x8392 //CJK UNIFIED IDEOGRAPH - ,0xB2F8 ,0x838A //CJK UNIFIED IDEOGRAPH - ,0xB2F9 ,0x8393 //CJK UNIFIED IDEOGRAPH - ,0xB2FA ,0x8389 //CJK UNIFIED IDEOGRAPH - ,0xB2FB ,0x83A0 //CJK UNIFIED IDEOGRAPH - ,0xB2FC ,0x8377 //CJK UNIFIED IDEOGRAPH - ,0xB2FD ,0x837B //CJK UNIFIED IDEOGRAPH - ,0xB2FE ,0x837C //CJK UNIFIED IDEOGRAPH - ,0xB340 ,0x8386 //CJK UNIFIED IDEOGRAPH - ,0xB341 ,0x83A7 //CJK UNIFIED IDEOGRAPH - ,0xB342 ,0x8655 //CJK UNIFIED IDEOGRAPH - ,0xB343 ,0x5F6A //CJK UNIFIED IDEOGRAPH - ,0xB344 ,0x86C7 //CJK UNIFIED IDEOGRAPH - ,0xB345 ,0x86C0 //CJK UNIFIED IDEOGRAPH - ,0xB346 ,0x86B6 //CJK UNIFIED IDEOGRAPH - ,0xB347 ,0x86C4 //CJK UNIFIED IDEOGRAPH - ,0xB348 ,0x86B5 //CJK UNIFIED IDEOGRAPH - ,0xB349 ,0x86C6 //CJK UNIFIED IDEOGRAPH - ,0xB34A ,0x86CB //CJK UNIFIED IDEOGRAPH - ,0xB34B ,0x86B1 //CJK UNIFIED IDEOGRAPH - ,0xB34C ,0x86AF //CJK UNIFIED IDEOGRAPH - ,0xB34D ,0x86C9 //CJK UNIFIED IDEOGRAPH - ,0xB34E ,0x8853 //CJK UNIFIED IDEOGRAPH - ,0xB34F ,0x889E //CJK UNIFIED IDEOGRAPH - ,0xB350 ,0x8888 //CJK UNIFIED IDEOGRAPH - ,0xB351 ,0x88AB //CJK UNIFIED IDEOGRAPH - ,0xB352 ,0x8892 //CJK UNIFIED IDEOGRAPH - ,0xB353 ,0x8896 //CJK UNIFIED IDEOGRAPH - ,0xB354 ,0x888D //CJK UNIFIED IDEOGRAPH - ,0xB355 ,0x888B //CJK UNIFIED IDEOGRAPH - ,0xB356 ,0x8993 //CJK UNIFIED IDEOGRAPH - ,0xB357 ,0x898F //CJK UNIFIED IDEOGRAPH - ,0xB358 ,0x8A2A //CJK UNIFIED IDEOGRAPH - ,0xB359 ,0x8A1D //CJK UNIFIED IDEOGRAPH - ,0xB35A ,0x8A23 //CJK UNIFIED IDEOGRAPH - ,0xB35B ,0x8A25 //CJK UNIFIED IDEOGRAPH - ,0xB35C ,0x8A31 //CJK UNIFIED IDEOGRAPH - ,0xB35D ,0x8A2D //CJK UNIFIED IDEOGRAPH - ,0xB35E ,0x8A1F //CJK UNIFIED IDEOGRAPH - ,0xB35F ,0x8A1B //CJK UNIFIED IDEOGRAPH - ,0xB360 ,0x8A22 //CJK UNIFIED IDEOGRAPH - ,0xB361 ,0x8C49 //CJK UNIFIED IDEOGRAPH - ,0xB362 ,0x8C5A //CJK UNIFIED IDEOGRAPH - ,0xB363 ,0x8CA9 //CJK UNIFIED IDEOGRAPH - ,0xB364 ,0x8CAC //CJK UNIFIED IDEOGRAPH - ,0xB365 ,0x8CAB //CJK UNIFIED IDEOGRAPH - ,0xB366 ,0x8CA8 //CJK UNIFIED IDEOGRAPH - ,0xB367 ,0x8CAA //CJK UNIFIED IDEOGRAPH - ,0xB368 ,0x8CA7 //CJK UNIFIED IDEOGRAPH - ,0xB369 ,0x8D67 //CJK UNIFIED IDEOGRAPH - ,0xB36A ,0x8D66 //CJK UNIFIED IDEOGRAPH - ,0xB36B ,0x8DBE //CJK UNIFIED IDEOGRAPH - ,0xB36C ,0x8DBA //CJK UNIFIED IDEOGRAPH - ,0xB36D ,0x8EDB //CJK UNIFIED IDEOGRAPH - ,0xB36E ,0x8EDF //CJK UNIFIED IDEOGRAPH - ,0xB36F ,0x9019 //CJK UNIFIED IDEOGRAPH - ,0xB370 ,0x900D //CJK UNIFIED IDEOGRAPH - ,0xB371 ,0x901A //CJK UNIFIED IDEOGRAPH - ,0xB372 ,0x9017 //CJK UNIFIED IDEOGRAPH - ,0xB373 ,0x9023 //CJK UNIFIED IDEOGRAPH - ,0xB374 ,0x901F //CJK UNIFIED IDEOGRAPH - ,0xB375 ,0x901D //CJK UNIFIED IDEOGRAPH - ,0xB376 ,0x9010 //CJK UNIFIED IDEOGRAPH - ,0xB377 ,0x9015 //CJK UNIFIED IDEOGRAPH - ,0xB378 ,0x901E //CJK UNIFIED IDEOGRAPH - ,0xB379 ,0x9020 //CJK UNIFIED IDEOGRAPH - ,0xB37A ,0x900F //CJK UNIFIED IDEOGRAPH - ,0xB37B ,0x9022 //CJK UNIFIED IDEOGRAPH - ,0xB37C ,0x9016 //CJK UNIFIED IDEOGRAPH - ,0xB37D ,0x901B //CJK UNIFIED IDEOGRAPH - ,0xB37E ,0x9014 //CJK UNIFIED IDEOGRAPH - ,0xB3A1 ,0x90E8 //CJK UNIFIED IDEOGRAPH - ,0xB3A2 ,0x90ED //CJK UNIFIED IDEOGRAPH - ,0xB3A3 ,0x90FD //CJK UNIFIED IDEOGRAPH - ,0xB3A4 ,0x9157 //CJK UNIFIED IDEOGRAPH - ,0xB3A5 ,0x91CE //CJK UNIFIED IDEOGRAPH - ,0xB3A6 ,0x91F5 //CJK UNIFIED IDEOGRAPH - ,0xB3A7 ,0x91E6 //CJK UNIFIED IDEOGRAPH - ,0xB3A8 ,0x91E3 //CJK UNIFIED IDEOGRAPH - ,0xB3A9 ,0x91E7 //CJK UNIFIED IDEOGRAPH - ,0xB3AA ,0x91ED //CJK UNIFIED IDEOGRAPH - ,0xB3AB ,0x91E9 //CJK UNIFIED IDEOGRAPH - ,0xB3AC ,0x9589 //CJK UNIFIED IDEOGRAPH - ,0xB3AD ,0x966A //CJK UNIFIED IDEOGRAPH - ,0xB3AE ,0x9675 //CJK UNIFIED IDEOGRAPH - ,0xB3AF ,0x9673 //CJK UNIFIED IDEOGRAPH - ,0xB3B0 ,0x9678 //CJK UNIFIED IDEOGRAPH - ,0xB3B1 ,0x9670 //CJK UNIFIED IDEOGRAPH - ,0xB3B2 ,0x9674 //CJK UNIFIED IDEOGRAPH - ,0xB3B3 ,0x9676 //CJK UNIFIED IDEOGRAPH - ,0xB3B4 ,0x9677 //CJK UNIFIED IDEOGRAPH - ,0xB3B5 ,0x966C //CJK UNIFIED IDEOGRAPH - ,0xB3B6 ,0x96C0 //CJK UNIFIED IDEOGRAPH - ,0xB3B7 ,0x96EA //CJK UNIFIED IDEOGRAPH - ,0xB3B8 ,0x96E9 //CJK UNIFIED IDEOGRAPH - ,0xB3B9 ,0x7AE0 //CJK UNIFIED IDEOGRAPH - ,0xB3BA ,0x7ADF //CJK UNIFIED IDEOGRAPH - ,0xB3BB ,0x9802 //CJK UNIFIED IDEOGRAPH - ,0xB3BC ,0x9803 //CJK UNIFIED IDEOGRAPH - ,0xB3BD ,0x9B5A //CJK UNIFIED IDEOGRAPH - ,0xB3BE ,0x9CE5 //CJK UNIFIED IDEOGRAPH - ,0xB3BF ,0x9E75 //CJK UNIFIED IDEOGRAPH - ,0xB3C0 ,0x9E7F //CJK UNIFIED IDEOGRAPH - ,0xB3C1 ,0x9EA5 //CJK UNIFIED IDEOGRAPH - ,0xB3C2 ,0x9EBB //CJK UNIFIED IDEOGRAPH - ,0xB3C3 ,0x50A2 //CJK UNIFIED IDEOGRAPH - ,0xB3C4 ,0x508D //CJK UNIFIED IDEOGRAPH - ,0xB3C5 ,0x5085 //CJK UNIFIED IDEOGRAPH - ,0xB3C6 ,0x5099 //CJK UNIFIED IDEOGRAPH - ,0xB3C7 ,0x5091 //CJK UNIFIED IDEOGRAPH - ,0xB3C8 ,0x5080 //CJK UNIFIED IDEOGRAPH - ,0xB3C9 ,0x5096 //CJK UNIFIED IDEOGRAPH - ,0xB3CA ,0x5098 //CJK UNIFIED IDEOGRAPH - ,0xB3CB ,0x509A //CJK UNIFIED IDEOGRAPH - ,0xB3CC ,0x6700 //CJK UNIFIED IDEOGRAPH - ,0xB3CD ,0x51F1 //CJK UNIFIED IDEOGRAPH - ,0xB3CE ,0x5272 //CJK UNIFIED IDEOGRAPH - ,0xB3CF ,0x5274 //CJK UNIFIED IDEOGRAPH - ,0xB3D0 ,0x5275 //CJK UNIFIED IDEOGRAPH - ,0xB3D1 ,0x5269 //CJK UNIFIED IDEOGRAPH - ,0xB3D2 ,0x52DE //CJK UNIFIED IDEOGRAPH - ,0xB3D3 ,0x52DD //CJK UNIFIED IDEOGRAPH - ,0xB3D4 ,0x52DB //CJK UNIFIED IDEOGRAPH - ,0xB3D5 ,0x535A //CJK UNIFIED IDEOGRAPH - ,0xB3D6 ,0x53A5 //CJK UNIFIED IDEOGRAPH - ,0xB3D7 ,0x557B //CJK UNIFIED IDEOGRAPH - ,0xB3D8 ,0x5580 //CJK UNIFIED IDEOGRAPH - ,0xB3D9 ,0x55A7 //CJK UNIFIED IDEOGRAPH - ,0xB3DA ,0x557C //CJK UNIFIED IDEOGRAPH - ,0xB3DB ,0x558A //CJK UNIFIED IDEOGRAPH - ,0xB3DC ,0x559D //CJK UNIFIED IDEOGRAPH - ,0xB3DD ,0x5598 //CJK UNIFIED IDEOGRAPH - ,0xB3DE ,0x5582 //CJK UNIFIED IDEOGRAPH - ,0xB3DF ,0x559C //CJK UNIFIED IDEOGRAPH - ,0xB3E0 ,0x55AA //CJK UNIFIED IDEOGRAPH - ,0xB3E1 ,0x5594 //CJK UNIFIED IDEOGRAPH - ,0xB3E2 ,0x5587 //CJK UNIFIED IDEOGRAPH - ,0xB3E3 ,0x558B //CJK UNIFIED IDEOGRAPH - ,0xB3E4 ,0x5583 //CJK UNIFIED IDEOGRAPH - ,0xB3E5 ,0x55B3 //CJK UNIFIED IDEOGRAPH - ,0xB3E6 ,0x55AE //CJK UNIFIED IDEOGRAPH - ,0xB3E7 ,0x559F //CJK UNIFIED IDEOGRAPH - ,0xB3E8 ,0x553E //CJK UNIFIED IDEOGRAPH - ,0xB3E9 ,0x55B2 //CJK UNIFIED IDEOGRAPH - ,0xB3EA ,0x559A //CJK UNIFIED IDEOGRAPH - ,0xB3EB ,0x55BB //CJK UNIFIED IDEOGRAPH - ,0xB3EC ,0x55AC //CJK UNIFIED IDEOGRAPH - ,0xB3ED ,0x55B1 //CJK UNIFIED IDEOGRAPH - ,0xB3EE ,0x557E //CJK UNIFIED IDEOGRAPH - ,0xB3EF ,0x5589 //CJK UNIFIED IDEOGRAPH - ,0xB3F0 ,0x55AB //CJK UNIFIED IDEOGRAPH - ,0xB3F1 ,0x5599 //CJK UNIFIED IDEOGRAPH - ,0xB3F2 ,0x570D //CJK UNIFIED IDEOGRAPH - ,0xB3F3 ,0x582F //CJK UNIFIED IDEOGRAPH - ,0xB3F4 ,0x582A //CJK UNIFIED IDEOGRAPH - ,0xB3F5 ,0x5834 //CJK UNIFIED IDEOGRAPH - ,0xB3F6 ,0x5824 //CJK UNIFIED IDEOGRAPH - ,0xB3F7 ,0x5830 //CJK UNIFIED IDEOGRAPH - ,0xB3F8 ,0x5831 //CJK UNIFIED IDEOGRAPH - ,0xB3F9 ,0x5821 //CJK UNIFIED IDEOGRAPH - ,0xB3FA ,0x581D //CJK UNIFIED IDEOGRAPH - ,0xB3FB ,0x5820 //CJK UNIFIED IDEOGRAPH - ,0xB3FC ,0x58F9 //CJK UNIFIED IDEOGRAPH - ,0xB3FD ,0x58FA //CJK UNIFIED IDEOGRAPH - ,0xB3FE ,0x5960 //CJK UNIFIED IDEOGRAPH - ,0xB440 ,0x5A77 //CJK UNIFIED IDEOGRAPH - ,0xB441 ,0x5A9A //CJK UNIFIED IDEOGRAPH - ,0xB442 ,0x5A7F //CJK UNIFIED IDEOGRAPH - ,0xB443 ,0x5A92 //CJK UNIFIED IDEOGRAPH - ,0xB444 ,0x5A9B //CJK UNIFIED IDEOGRAPH - ,0xB445 ,0x5AA7 //CJK UNIFIED IDEOGRAPH - ,0xB446 ,0x5B73 //CJK UNIFIED IDEOGRAPH - ,0xB447 ,0x5B71 //CJK UNIFIED IDEOGRAPH - ,0xB448 ,0x5BD2 //CJK UNIFIED IDEOGRAPH - ,0xB449 ,0x5BCC //CJK UNIFIED IDEOGRAPH - ,0xB44A ,0x5BD3 //CJK UNIFIED IDEOGRAPH - ,0xB44B ,0x5BD0 //CJK UNIFIED IDEOGRAPH - ,0xB44C ,0x5C0A //CJK UNIFIED IDEOGRAPH - ,0xB44D ,0x5C0B //CJK UNIFIED IDEOGRAPH - ,0xB44E ,0x5C31 //CJK UNIFIED IDEOGRAPH - ,0xB44F ,0x5D4C //CJK UNIFIED IDEOGRAPH - ,0xB450 ,0x5D50 //CJK UNIFIED IDEOGRAPH - ,0xB451 ,0x5D34 //CJK UNIFIED IDEOGRAPH - ,0xB452 ,0x5D47 //CJK UNIFIED IDEOGRAPH - ,0xB453 ,0x5DFD //CJK UNIFIED IDEOGRAPH - ,0xB454 ,0x5E45 //CJK UNIFIED IDEOGRAPH - ,0xB455 ,0x5E3D //CJK UNIFIED IDEOGRAPH - ,0xB456 ,0x5E40 //CJK UNIFIED IDEOGRAPH - ,0xB457 ,0x5E43 //CJK UNIFIED IDEOGRAPH - ,0xB458 ,0x5E7E //CJK UNIFIED IDEOGRAPH - ,0xB459 ,0x5ECA //CJK UNIFIED IDEOGRAPH - ,0xB45A ,0x5EC1 //CJK UNIFIED IDEOGRAPH - ,0xB45B ,0x5EC2 //CJK UNIFIED IDEOGRAPH - ,0xB45C ,0x5EC4 //CJK UNIFIED IDEOGRAPH - ,0xB45D ,0x5F3C //CJK UNIFIED IDEOGRAPH - ,0xB45E ,0x5F6D //CJK UNIFIED IDEOGRAPH - ,0xB45F ,0x5FA9 //CJK UNIFIED IDEOGRAPH - ,0xB460 ,0x5FAA //CJK UNIFIED IDEOGRAPH - ,0xB461 ,0x5FA8 //CJK UNIFIED IDEOGRAPH - ,0xB462 ,0x60D1 //CJK UNIFIED IDEOGRAPH - ,0xB463 ,0x60E1 //CJK UNIFIED IDEOGRAPH - ,0xB464 ,0x60B2 //CJK UNIFIED IDEOGRAPH - ,0xB465 ,0x60B6 //CJK UNIFIED IDEOGRAPH - ,0xB466 ,0x60E0 //CJK UNIFIED IDEOGRAPH - ,0xB467 ,0x611C //CJK UNIFIED IDEOGRAPH - ,0xB468 ,0x6123 //CJK UNIFIED IDEOGRAPH - ,0xB469 ,0x60FA //CJK UNIFIED IDEOGRAPH - ,0xB46A ,0x6115 //CJK UNIFIED IDEOGRAPH - ,0xB46B ,0x60F0 //CJK UNIFIED IDEOGRAPH - ,0xB46C ,0x60FB //CJK UNIFIED IDEOGRAPH - ,0xB46D ,0x60F4 //CJK UNIFIED IDEOGRAPH - ,0xB46E ,0x6168 //CJK UNIFIED IDEOGRAPH - ,0xB46F ,0x60F1 //CJK UNIFIED IDEOGRAPH - ,0xB470 ,0x610E //CJK UNIFIED IDEOGRAPH - ,0xB471 ,0x60F6 //CJK UNIFIED IDEOGRAPH - ,0xB472 ,0x6109 //CJK UNIFIED IDEOGRAPH - ,0xB473 ,0x6100 //CJK UNIFIED IDEOGRAPH - ,0xB474 ,0x6112 //CJK UNIFIED IDEOGRAPH - ,0xB475 ,0x621F //CJK UNIFIED IDEOGRAPH - ,0xB476 ,0x6249 //CJK UNIFIED IDEOGRAPH - ,0xB477 ,0x63A3 //CJK UNIFIED IDEOGRAPH - ,0xB478 ,0x638C //CJK UNIFIED IDEOGRAPH - ,0xB479 ,0x63CF //CJK UNIFIED IDEOGRAPH - ,0xB47A ,0x63C0 //CJK UNIFIED IDEOGRAPH - ,0xB47B ,0x63E9 //CJK UNIFIED IDEOGRAPH - ,0xB47C ,0x63C9 //CJK UNIFIED IDEOGRAPH - ,0xB47D ,0x63C6 //CJK UNIFIED IDEOGRAPH - ,0xB47E ,0x63CD //CJK UNIFIED IDEOGRAPH - ,0xB4A1 ,0x63D2 //CJK UNIFIED IDEOGRAPH - ,0xB4A2 ,0x63E3 //CJK UNIFIED IDEOGRAPH - ,0xB4A3 ,0x63D0 //CJK UNIFIED IDEOGRAPH - ,0xB4A4 ,0x63E1 //CJK UNIFIED IDEOGRAPH - ,0xB4A5 ,0x63D6 //CJK UNIFIED IDEOGRAPH - ,0xB4A6 ,0x63ED //CJK UNIFIED IDEOGRAPH - ,0xB4A7 ,0x63EE //CJK UNIFIED IDEOGRAPH - ,0xB4A8 ,0x6376 //CJK UNIFIED IDEOGRAPH - ,0xB4A9 ,0x63F4 //CJK UNIFIED IDEOGRAPH - ,0xB4AA ,0x63EA //CJK UNIFIED IDEOGRAPH - ,0xB4AB ,0x63DB //CJK UNIFIED IDEOGRAPH - ,0xB4AC ,0x6452 //CJK UNIFIED IDEOGRAPH - ,0xB4AD ,0x63DA //CJK UNIFIED IDEOGRAPH - ,0xB4AE ,0x63F9 //CJK UNIFIED IDEOGRAPH - ,0xB4AF ,0x655E //CJK UNIFIED IDEOGRAPH - ,0xB4B0 ,0x6566 //CJK UNIFIED IDEOGRAPH - ,0xB4B1 ,0x6562 //CJK UNIFIED IDEOGRAPH - ,0xB4B2 ,0x6563 //CJK UNIFIED IDEOGRAPH - ,0xB4B3 ,0x6591 //CJK UNIFIED IDEOGRAPH - ,0xB4B4 ,0x6590 //CJK UNIFIED IDEOGRAPH - ,0xB4B5 ,0x65AF //CJK UNIFIED IDEOGRAPH - ,0xB4B6 ,0x666E //CJK UNIFIED IDEOGRAPH - ,0xB4B7 ,0x6670 //CJK UNIFIED IDEOGRAPH - ,0xB4B8 ,0x6674 //CJK UNIFIED IDEOGRAPH - ,0xB4B9 ,0x6676 //CJK UNIFIED IDEOGRAPH - ,0xB4BA ,0x666F //CJK UNIFIED IDEOGRAPH - ,0xB4BB ,0x6691 //CJK UNIFIED IDEOGRAPH - ,0xB4BC ,0x667A //CJK UNIFIED IDEOGRAPH - ,0xB4BD ,0x667E //CJK UNIFIED IDEOGRAPH - ,0xB4BE ,0x6677 //CJK UNIFIED IDEOGRAPH - ,0xB4BF ,0x66FE //CJK UNIFIED IDEOGRAPH - ,0xB4C0 ,0x66FF //CJK UNIFIED IDEOGRAPH - ,0xB4C1 ,0x671F //CJK UNIFIED IDEOGRAPH - ,0xB4C2 ,0x671D //CJK UNIFIED IDEOGRAPH - ,0xB4C3 ,0x68FA //CJK UNIFIED IDEOGRAPH - ,0xB4C4 ,0x68D5 //CJK UNIFIED IDEOGRAPH - ,0xB4C5 ,0x68E0 //CJK UNIFIED IDEOGRAPH - ,0xB4C6 ,0x68D8 //CJK UNIFIED IDEOGRAPH - ,0xB4C7 ,0x68D7 //CJK UNIFIED IDEOGRAPH - ,0xB4C8 ,0x6905 //CJK UNIFIED IDEOGRAPH - ,0xB4C9 ,0x68DF //CJK UNIFIED IDEOGRAPH - ,0xB4CA ,0x68F5 //CJK UNIFIED IDEOGRAPH - ,0xB4CB ,0x68EE //CJK UNIFIED IDEOGRAPH - ,0xB4CC ,0x68E7 //CJK UNIFIED IDEOGRAPH - ,0xB4CD ,0x68F9 //CJK UNIFIED IDEOGRAPH - ,0xB4CE ,0x68D2 //CJK UNIFIED IDEOGRAPH - ,0xB4CF ,0x68F2 //CJK UNIFIED IDEOGRAPH - ,0xB4D0 ,0x68E3 //CJK UNIFIED IDEOGRAPH - ,0xB4D1 ,0x68CB //CJK UNIFIED IDEOGRAPH - ,0xB4D2 ,0x68CD //CJK UNIFIED IDEOGRAPH - ,0xB4D3 ,0x690D //CJK UNIFIED IDEOGRAPH - ,0xB4D4 ,0x6912 //CJK UNIFIED IDEOGRAPH - ,0xB4D5 ,0x690E //CJK UNIFIED IDEOGRAPH - ,0xB4D6 ,0x68C9 //CJK UNIFIED IDEOGRAPH - ,0xB4D7 ,0x68DA //CJK UNIFIED IDEOGRAPH - ,0xB4D8 ,0x696E //CJK UNIFIED IDEOGRAPH - ,0xB4D9 ,0x68FB //CJK UNIFIED IDEOGRAPH - ,0xB4DA ,0x6B3E //CJK UNIFIED IDEOGRAPH - ,0xB4DB ,0x6B3A //CJK UNIFIED IDEOGRAPH - ,0xB4DC ,0x6B3D //CJK UNIFIED IDEOGRAPH - ,0xB4DD ,0x6B98 //CJK UNIFIED IDEOGRAPH - ,0xB4DE ,0x6B96 //CJK UNIFIED IDEOGRAPH - ,0xB4DF ,0x6BBC //CJK UNIFIED IDEOGRAPH - ,0xB4E0 ,0x6BEF //CJK UNIFIED IDEOGRAPH - ,0xB4E1 ,0x6C2E //CJK UNIFIED IDEOGRAPH - ,0xB4E2 ,0x6C2F //CJK UNIFIED IDEOGRAPH - ,0xB4E3 ,0x6C2C //CJK UNIFIED IDEOGRAPH - ,0xB4E4 ,0x6E2F //CJK UNIFIED IDEOGRAPH - ,0xB4E5 ,0x6E38 //CJK UNIFIED IDEOGRAPH - ,0xB4E6 ,0x6E54 //CJK UNIFIED IDEOGRAPH - ,0xB4E7 ,0x6E21 //CJK UNIFIED IDEOGRAPH - ,0xB4E8 ,0x6E32 //CJK UNIFIED IDEOGRAPH - ,0xB4E9 ,0x6E67 //CJK UNIFIED IDEOGRAPH - ,0xB4EA ,0x6E4A //CJK UNIFIED IDEOGRAPH - ,0xB4EB ,0x6E20 //CJK UNIFIED IDEOGRAPH - ,0xB4EC ,0x6E25 //CJK UNIFIED IDEOGRAPH - ,0xB4ED ,0x6E23 //CJK UNIFIED IDEOGRAPH - ,0xB4EE ,0x6E1B //CJK UNIFIED IDEOGRAPH - ,0xB4EF ,0x6E5B //CJK UNIFIED IDEOGRAPH - ,0xB4F0 ,0x6E58 //CJK UNIFIED IDEOGRAPH - ,0xB4F1 ,0x6E24 //CJK UNIFIED IDEOGRAPH - ,0xB4F2 ,0x6E56 //CJK UNIFIED IDEOGRAPH - ,0xB4F3 ,0x6E6E //CJK UNIFIED IDEOGRAPH - ,0xB4F4 ,0x6E2D //CJK UNIFIED IDEOGRAPH - ,0xB4F5 ,0x6E26 //CJK UNIFIED IDEOGRAPH - ,0xB4F6 ,0x6E6F //CJK UNIFIED IDEOGRAPH - ,0xB4F7 ,0x6E34 //CJK UNIFIED IDEOGRAPH - ,0xB4F8 ,0x6E4D //CJK UNIFIED IDEOGRAPH - ,0xB4F9 ,0x6E3A //CJK UNIFIED IDEOGRAPH - ,0xB4FA ,0x6E2C //CJK UNIFIED IDEOGRAPH - ,0xB4FB ,0x6E43 //CJK UNIFIED IDEOGRAPH - ,0xB4FC ,0x6E1D //CJK UNIFIED IDEOGRAPH - ,0xB4FD ,0x6E3E //CJK UNIFIED IDEOGRAPH - ,0xB4FE ,0x6ECB //CJK UNIFIED IDEOGRAPH - ,0xB540 ,0x6E89 //CJK UNIFIED IDEOGRAPH - ,0xB541 ,0x6E19 //CJK UNIFIED IDEOGRAPH - ,0xB542 ,0x6E4E //CJK UNIFIED IDEOGRAPH - ,0xB543 ,0x6E63 //CJK UNIFIED IDEOGRAPH - ,0xB544 ,0x6E44 //CJK UNIFIED IDEOGRAPH - ,0xB545 ,0x6E72 //CJK UNIFIED IDEOGRAPH - ,0xB546 ,0x6E69 //CJK UNIFIED IDEOGRAPH - ,0xB547 ,0x6E5F //CJK UNIFIED IDEOGRAPH - ,0xB548 ,0x7119 //CJK UNIFIED IDEOGRAPH - ,0xB549 ,0x711A //CJK UNIFIED IDEOGRAPH - ,0xB54A ,0x7126 //CJK UNIFIED IDEOGRAPH - ,0xB54B ,0x7130 //CJK UNIFIED IDEOGRAPH - ,0xB54C ,0x7121 //CJK UNIFIED IDEOGRAPH - ,0xB54D ,0x7136 //CJK UNIFIED IDEOGRAPH - ,0xB54E ,0x716E //CJK UNIFIED IDEOGRAPH - ,0xB54F ,0x711C //CJK UNIFIED IDEOGRAPH - ,0xB550 ,0x724C //CJK UNIFIED IDEOGRAPH - ,0xB551 ,0x7284 //CJK UNIFIED IDEOGRAPH - ,0xB552 ,0x7280 //CJK UNIFIED IDEOGRAPH - ,0xB553 ,0x7336 //CJK UNIFIED IDEOGRAPH - ,0xB554 ,0x7325 //CJK UNIFIED IDEOGRAPH - ,0xB555 ,0x7334 //CJK UNIFIED IDEOGRAPH - ,0xB556 ,0x7329 //CJK UNIFIED IDEOGRAPH - ,0xB557 ,0x743A //CJK UNIFIED IDEOGRAPH - ,0xB558 ,0x742A //CJK UNIFIED IDEOGRAPH - ,0xB559 ,0x7433 //CJK UNIFIED IDEOGRAPH - ,0xB55A ,0x7422 //CJK UNIFIED IDEOGRAPH - ,0xB55B ,0x7425 //CJK UNIFIED IDEOGRAPH - ,0xB55C ,0x7435 //CJK UNIFIED IDEOGRAPH - ,0xB55D ,0x7436 //CJK UNIFIED IDEOGRAPH - ,0xB55E ,0x7434 //CJK UNIFIED IDEOGRAPH - ,0xB55F ,0x742F //CJK UNIFIED IDEOGRAPH - ,0xB560 ,0x741B //CJK UNIFIED IDEOGRAPH - ,0xB561 ,0x7426 //CJK UNIFIED IDEOGRAPH - ,0xB562 ,0x7428 //CJK UNIFIED IDEOGRAPH - ,0xB563 ,0x7525 //CJK UNIFIED IDEOGRAPH - ,0xB564 ,0x7526 //CJK UNIFIED IDEOGRAPH - ,0xB565 ,0x756B //CJK UNIFIED IDEOGRAPH - ,0xB566 ,0x756A //CJK UNIFIED IDEOGRAPH - ,0xB567 ,0x75E2 //CJK UNIFIED IDEOGRAPH - ,0xB568 ,0x75DB //CJK UNIFIED IDEOGRAPH - ,0xB569 ,0x75E3 //CJK UNIFIED IDEOGRAPH - ,0xB56A ,0x75D9 //CJK UNIFIED IDEOGRAPH - ,0xB56B ,0x75D8 //CJK UNIFIED IDEOGRAPH - ,0xB56C ,0x75DE //CJK UNIFIED IDEOGRAPH - ,0xB56D ,0x75E0 //CJK UNIFIED IDEOGRAPH - ,0xB56E ,0x767B //CJK UNIFIED IDEOGRAPH - ,0xB56F ,0x767C //CJK UNIFIED IDEOGRAPH - ,0xB570 ,0x7696 //CJK UNIFIED IDEOGRAPH - ,0xB571 ,0x7693 //CJK UNIFIED IDEOGRAPH - ,0xB572 ,0x76B4 //CJK UNIFIED IDEOGRAPH - ,0xB573 ,0x76DC //CJK UNIFIED IDEOGRAPH - ,0xB574 ,0x774F //CJK UNIFIED IDEOGRAPH - ,0xB575 ,0x77ED //CJK UNIFIED IDEOGRAPH - ,0xB576 ,0x785D //CJK UNIFIED IDEOGRAPH - ,0xB577 ,0x786C //CJK UNIFIED IDEOGRAPH - ,0xB578 ,0x786F //CJK UNIFIED IDEOGRAPH - ,0xB579 ,0x7A0D //CJK UNIFIED IDEOGRAPH - ,0xB57A ,0x7A08 //CJK UNIFIED IDEOGRAPH - ,0xB57B ,0x7A0B //CJK UNIFIED IDEOGRAPH - ,0xB57C ,0x7A05 //CJK UNIFIED IDEOGRAPH - ,0xB57D ,0x7A00 //CJK UNIFIED IDEOGRAPH - ,0xB57E ,0x7A98 //CJK UNIFIED IDEOGRAPH - ,0xB5A1 ,0x7A97 //CJK UNIFIED IDEOGRAPH - ,0xB5A2 ,0x7A96 //CJK UNIFIED IDEOGRAPH - ,0xB5A3 ,0x7AE5 //CJK UNIFIED IDEOGRAPH - ,0xB5A4 ,0x7AE3 //CJK UNIFIED IDEOGRAPH - ,0xB5A5 ,0x7B49 //CJK UNIFIED IDEOGRAPH - ,0xB5A6 ,0x7B56 //CJK UNIFIED IDEOGRAPH - ,0xB5A7 ,0x7B46 //CJK UNIFIED IDEOGRAPH - ,0xB5A8 ,0x7B50 //CJK UNIFIED IDEOGRAPH - ,0xB5A9 ,0x7B52 //CJK UNIFIED IDEOGRAPH - ,0xB5AA ,0x7B54 //CJK UNIFIED IDEOGRAPH - ,0xB5AB ,0x7B4D //CJK UNIFIED IDEOGRAPH - ,0xB5AC ,0x7B4B //CJK UNIFIED IDEOGRAPH - ,0xB5AD ,0x7B4F //CJK UNIFIED IDEOGRAPH - ,0xB5AE ,0x7B51 //CJK UNIFIED IDEOGRAPH - ,0xB5AF ,0x7C9F //CJK UNIFIED IDEOGRAPH - ,0xB5B0 ,0x7CA5 //CJK UNIFIED IDEOGRAPH - ,0xB5B1 ,0x7D5E //CJK UNIFIED IDEOGRAPH - ,0xB5B2 ,0x7D50 //CJK UNIFIED IDEOGRAPH - ,0xB5B3 ,0x7D68 //CJK UNIFIED IDEOGRAPH - ,0xB5B4 ,0x7D55 //CJK UNIFIED IDEOGRAPH - ,0xB5B5 ,0x7D2B //CJK UNIFIED IDEOGRAPH - ,0xB5B6 ,0x7D6E //CJK UNIFIED IDEOGRAPH - ,0xB5B7 ,0x7D72 //CJK UNIFIED IDEOGRAPH - ,0xB5B8 ,0x7D61 //CJK UNIFIED IDEOGRAPH - ,0xB5B9 ,0x7D66 //CJK UNIFIED IDEOGRAPH - ,0xB5BA ,0x7D62 //CJK UNIFIED IDEOGRAPH - ,0xB5BB ,0x7D70 //CJK UNIFIED IDEOGRAPH - ,0xB5BC ,0x7D73 //CJK UNIFIED IDEOGRAPH - ,0xB5BD ,0x5584 //CJK UNIFIED IDEOGRAPH - ,0xB5BE ,0x7FD4 //CJK UNIFIED IDEOGRAPH - ,0xB5BF ,0x7FD5 //CJK UNIFIED IDEOGRAPH - ,0xB5C0 ,0x800B //CJK UNIFIED IDEOGRAPH - ,0xB5C1 ,0x8052 //CJK UNIFIED IDEOGRAPH - ,0xB5C2 ,0x8085 //CJK UNIFIED IDEOGRAPH - ,0xB5C3 ,0x8155 //CJK UNIFIED IDEOGRAPH - ,0xB5C4 ,0x8154 //CJK UNIFIED IDEOGRAPH - ,0xB5C5 ,0x814B //CJK UNIFIED IDEOGRAPH - ,0xB5C6 ,0x8151 //CJK UNIFIED IDEOGRAPH - ,0xB5C7 ,0x814E //CJK UNIFIED IDEOGRAPH - ,0xB5C8 ,0x8139 //CJK UNIFIED IDEOGRAPH - ,0xB5C9 ,0x8146 //CJK UNIFIED IDEOGRAPH - ,0xB5CA ,0x813E //CJK UNIFIED IDEOGRAPH - ,0xB5CB ,0x814C //CJK UNIFIED IDEOGRAPH - ,0xB5CC ,0x8153 //CJK UNIFIED IDEOGRAPH - ,0xB5CD ,0x8174 //CJK UNIFIED IDEOGRAPH - ,0xB5CE ,0x8212 //CJK UNIFIED IDEOGRAPH - ,0xB5CF ,0x821C //CJK UNIFIED IDEOGRAPH - ,0xB5D0 ,0x83E9 //CJK UNIFIED IDEOGRAPH - ,0xB5D1 ,0x8403 //CJK UNIFIED IDEOGRAPH - ,0xB5D2 ,0x83F8 //CJK UNIFIED IDEOGRAPH - ,0xB5D3 ,0x840D //CJK UNIFIED IDEOGRAPH - ,0xB5D4 ,0x83E0 //CJK UNIFIED IDEOGRAPH - ,0xB5D5 ,0x83C5 //CJK UNIFIED IDEOGRAPH - ,0xB5D6 ,0x840B //CJK UNIFIED IDEOGRAPH - ,0xB5D7 ,0x83C1 //CJK UNIFIED IDEOGRAPH - ,0xB5D8 ,0x83EF //CJK UNIFIED IDEOGRAPH - ,0xB5D9 ,0x83F1 //CJK UNIFIED IDEOGRAPH - ,0xB5DA ,0x83F4 //CJK UNIFIED IDEOGRAPH - ,0xB5DB ,0x8457 //CJK UNIFIED IDEOGRAPH - ,0xB5DC ,0x840A //CJK UNIFIED IDEOGRAPH - ,0xB5DD ,0x83F0 //CJK UNIFIED IDEOGRAPH - ,0xB5DE ,0x840C //CJK UNIFIED IDEOGRAPH - ,0xB5DF ,0x83CC //CJK UNIFIED IDEOGRAPH - ,0xB5E0 ,0x83FD //CJK UNIFIED IDEOGRAPH - ,0xB5E1 ,0x83F2 //CJK UNIFIED IDEOGRAPH - ,0xB5E2 ,0x83CA //CJK UNIFIED IDEOGRAPH - ,0xB5E3 ,0x8438 //CJK UNIFIED IDEOGRAPH - ,0xB5E4 ,0x840E //CJK UNIFIED IDEOGRAPH - ,0xB5E5 ,0x8404 //CJK UNIFIED IDEOGRAPH - ,0xB5E6 ,0x83DC //CJK UNIFIED IDEOGRAPH - ,0xB5E7 ,0x8407 //CJK UNIFIED IDEOGRAPH - ,0xB5E8 ,0x83D4 //CJK UNIFIED IDEOGRAPH - ,0xB5E9 ,0x83DF //CJK UNIFIED IDEOGRAPH - ,0xB5EA ,0x865B //CJK UNIFIED IDEOGRAPH - ,0xB5EB ,0x86DF //CJK UNIFIED IDEOGRAPH - ,0xB5EC ,0x86D9 //CJK UNIFIED IDEOGRAPH - ,0xB5ED ,0x86ED //CJK UNIFIED IDEOGRAPH - ,0xB5EE ,0x86D4 //CJK UNIFIED IDEOGRAPH - ,0xB5EF ,0x86DB //CJK UNIFIED IDEOGRAPH - ,0xB5F0 ,0x86E4 //CJK UNIFIED IDEOGRAPH - ,0xB5F1 ,0x86D0 //CJK UNIFIED IDEOGRAPH - ,0xB5F2 ,0x86DE //CJK UNIFIED IDEOGRAPH - ,0xB5F3 ,0x8857 //CJK UNIFIED IDEOGRAPH - ,0xB5F4 ,0x88C1 //CJK UNIFIED IDEOGRAPH - ,0xB5F5 ,0x88C2 //CJK UNIFIED IDEOGRAPH - ,0xB5F6 ,0x88B1 //CJK UNIFIED IDEOGRAPH - ,0xB5F7 ,0x8983 //CJK UNIFIED IDEOGRAPH - ,0xB5F8 ,0x8996 //CJK UNIFIED IDEOGRAPH - ,0xB5F9 ,0x8A3B //CJK UNIFIED IDEOGRAPH - ,0xB5FA ,0x8A60 //CJK UNIFIED IDEOGRAPH - ,0xB5FB ,0x8A55 //CJK UNIFIED IDEOGRAPH - ,0xB5FC ,0x8A5E //CJK UNIFIED IDEOGRAPH - ,0xB5FD ,0x8A3C //CJK UNIFIED IDEOGRAPH - ,0xB5FE ,0x8A41 //CJK UNIFIED IDEOGRAPH - ,0xB640 ,0x8A54 //CJK UNIFIED IDEOGRAPH - ,0xB641 ,0x8A5B //CJK UNIFIED IDEOGRAPH - ,0xB642 ,0x8A50 //CJK UNIFIED IDEOGRAPH - ,0xB643 ,0x8A46 //CJK UNIFIED IDEOGRAPH - ,0xB644 ,0x8A34 //CJK UNIFIED IDEOGRAPH - ,0xB645 ,0x8A3A //CJK UNIFIED IDEOGRAPH - ,0xB646 ,0x8A36 //CJK UNIFIED IDEOGRAPH - ,0xB647 ,0x8A56 //CJK UNIFIED IDEOGRAPH - ,0xB648 ,0x8C61 //CJK UNIFIED IDEOGRAPH - ,0xB649 ,0x8C82 //CJK UNIFIED IDEOGRAPH - ,0xB64A ,0x8CAF //CJK UNIFIED IDEOGRAPH - ,0xB64B ,0x8CBC //CJK UNIFIED IDEOGRAPH - ,0xB64C ,0x8CB3 //CJK UNIFIED IDEOGRAPH - ,0xB64D ,0x8CBD //CJK UNIFIED IDEOGRAPH - ,0xB64E ,0x8CC1 //CJK UNIFIED IDEOGRAPH - ,0xB64F ,0x8CBB //CJK UNIFIED IDEOGRAPH - ,0xB650 ,0x8CC0 //CJK UNIFIED IDEOGRAPH - ,0xB651 ,0x8CB4 //CJK UNIFIED IDEOGRAPH - ,0xB652 ,0x8CB7 //CJK UNIFIED IDEOGRAPH - ,0xB653 ,0x8CB6 //CJK UNIFIED IDEOGRAPH - ,0xB654 ,0x8CBF //CJK UNIFIED IDEOGRAPH - ,0xB655 ,0x8CB8 //CJK UNIFIED IDEOGRAPH - ,0xB656 ,0x8D8A //CJK UNIFIED IDEOGRAPH - ,0xB657 ,0x8D85 //CJK UNIFIED IDEOGRAPH - ,0xB658 ,0x8D81 //CJK UNIFIED IDEOGRAPH - ,0xB659 ,0x8DCE //CJK UNIFIED IDEOGRAPH - ,0xB65A ,0x8DDD //CJK UNIFIED IDEOGRAPH - ,0xB65B ,0x8DCB //CJK UNIFIED IDEOGRAPH - ,0xB65C ,0x8DDA //CJK UNIFIED IDEOGRAPH - ,0xB65D ,0x8DD1 //CJK UNIFIED IDEOGRAPH - ,0xB65E ,0x8DCC //CJK UNIFIED IDEOGRAPH - ,0xB65F ,0x8DDB //CJK UNIFIED IDEOGRAPH - ,0xB660 ,0x8DC6 //CJK UNIFIED IDEOGRAPH - ,0xB661 ,0x8EFB //CJK UNIFIED IDEOGRAPH - ,0xB662 ,0x8EF8 //CJK UNIFIED IDEOGRAPH - ,0xB663 ,0x8EFC //CJK UNIFIED IDEOGRAPH - ,0xB664 ,0x8F9C //CJK UNIFIED IDEOGRAPH - ,0xB665 ,0x902E //CJK UNIFIED IDEOGRAPH - ,0xB666 ,0x9035 //CJK UNIFIED IDEOGRAPH - ,0xB667 ,0x9031 //CJK UNIFIED IDEOGRAPH - ,0xB668 ,0x9038 //CJK UNIFIED IDEOGRAPH - ,0xB669 ,0x9032 //CJK UNIFIED IDEOGRAPH - ,0xB66A ,0x9036 //CJK UNIFIED IDEOGRAPH - ,0xB66B ,0x9102 //CJK UNIFIED IDEOGRAPH - ,0xB66C ,0x90F5 //CJK UNIFIED IDEOGRAPH - ,0xB66D ,0x9109 //CJK UNIFIED IDEOGRAPH - ,0xB66E ,0x90FE //CJK UNIFIED IDEOGRAPH - ,0xB66F ,0x9163 //CJK UNIFIED IDEOGRAPH - ,0xB670 ,0x9165 //CJK UNIFIED IDEOGRAPH - ,0xB671 ,0x91CF //CJK UNIFIED IDEOGRAPH - ,0xB672 ,0x9214 //CJK UNIFIED IDEOGRAPH - ,0xB673 ,0x9215 //CJK UNIFIED IDEOGRAPH - ,0xB674 ,0x9223 //CJK UNIFIED IDEOGRAPH - ,0xB675 ,0x9209 //CJK UNIFIED IDEOGRAPH - ,0xB676 ,0x921E //CJK UNIFIED IDEOGRAPH - ,0xB677 ,0x920D //CJK UNIFIED IDEOGRAPH - ,0xB678 ,0x9210 //CJK UNIFIED IDEOGRAPH - ,0xB679 ,0x9207 //CJK UNIFIED IDEOGRAPH - ,0xB67A ,0x9211 //CJK UNIFIED IDEOGRAPH - ,0xB67B ,0x9594 //CJK UNIFIED IDEOGRAPH - ,0xB67C ,0x958F //CJK UNIFIED IDEOGRAPH - ,0xB67D ,0x958B //CJK UNIFIED IDEOGRAPH - ,0xB67E ,0x9591 //CJK UNIFIED IDEOGRAPH - ,0xB6A1 ,0x9593 //CJK UNIFIED IDEOGRAPH - ,0xB6A2 ,0x9592 //CJK UNIFIED IDEOGRAPH - ,0xB6A3 ,0x958E //CJK UNIFIED IDEOGRAPH - ,0xB6A4 ,0x968A //CJK UNIFIED IDEOGRAPH - ,0xB6A5 ,0x968E //CJK UNIFIED IDEOGRAPH - ,0xB6A6 ,0x968B //CJK UNIFIED IDEOGRAPH - ,0xB6A7 ,0x967D //CJK UNIFIED IDEOGRAPH - ,0xB6A8 ,0x9685 //CJK UNIFIED IDEOGRAPH - ,0xB6A9 ,0x9686 //CJK UNIFIED IDEOGRAPH - ,0xB6AA ,0x968D //CJK UNIFIED IDEOGRAPH - ,0xB6AB ,0x9672 //CJK UNIFIED IDEOGRAPH - ,0xB6AC ,0x9684 //CJK UNIFIED IDEOGRAPH - ,0xB6AD ,0x96C1 //CJK UNIFIED IDEOGRAPH - ,0xB6AE ,0x96C5 //CJK UNIFIED IDEOGRAPH - ,0xB6AF ,0x96C4 //CJK UNIFIED IDEOGRAPH - ,0xB6B0 ,0x96C6 //CJK UNIFIED IDEOGRAPH - ,0xB6B1 ,0x96C7 //CJK UNIFIED IDEOGRAPH - ,0xB6B2 ,0x96EF //CJK UNIFIED IDEOGRAPH - ,0xB6B3 ,0x96F2 //CJK UNIFIED IDEOGRAPH - ,0xB6B4 ,0x97CC //CJK UNIFIED IDEOGRAPH - ,0xB6B5 ,0x9805 //CJK UNIFIED IDEOGRAPH - ,0xB6B6 ,0x9806 //CJK UNIFIED IDEOGRAPH - ,0xB6B7 ,0x9808 //CJK UNIFIED IDEOGRAPH - ,0xB6B8 ,0x98E7 //CJK UNIFIED IDEOGRAPH - ,0xB6B9 ,0x98EA //CJK UNIFIED IDEOGRAPH - ,0xB6BA ,0x98EF //CJK UNIFIED IDEOGRAPH - ,0xB6BB ,0x98E9 //CJK UNIFIED IDEOGRAPH - ,0xB6BC ,0x98F2 //CJK UNIFIED IDEOGRAPH - ,0xB6BD ,0x98ED //CJK UNIFIED IDEOGRAPH - ,0xB6BE ,0x99AE //CJK UNIFIED IDEOGRAPH - ,0xB6BF ,0x99AD //CJK UNIFIED IDEOGRAPH - ,0xB6C0 ,0x9EC3 //CJK UNIFIED IDEOGRAPH - ,0xB6C1 ,0x9ECD //CJK UNIFIED IDEOGRAPH - ,0xB6C2 ,0x9ED1 //CJK UNIFIED IDEOGRAPH - ,0xB6C3 ,0x4E82 //CJK UNIFIED IDEOGRAPH - ,0xB6C4 ,0x50AD //CJK UNIFIED IDEOGRAPH - ,0xB6C5 ,0x50B5 //CJK UNIFIED IDEOGRAPH - ,0xB6C6 ,0x50B2 //CJK UNIFIED IDEOGRAPH - ,0xB6C7 ,0x50B3 //CJK UNIFIED IDEOGRAPH - ,0xB6C8 ,0x50C5 //CJK UNIFIED IDEOGRAPH - ,0xB6C9 ,0x50BE //CJK UNIFIED IDEOGRAPH - ,0xB6CA ,0x50AC //CJK UNIFIED IDEOGRAPH - ,0xB6CB ,0x50B7 //CJK UNIFIED IDEOGRAPH - ,0xB6CC ,0x50BB //CJK UNIFIED IDEOGRAPH - ,0xB6CD ,0x50AF //CJK UNIFIED IDEOGRAPH - ,0xB6CE ,0x50C7 //CJK UNIFIED IDEOGRAPH - ,0xB6CF ,0x527F //CJK UNIFIED IDEOGRAPH - ,0xB6D0 ,0x5277 //CJK UNIFIED IDEOGRAPH - ,0xB6D1 ,0x527D //CJK UNIFIED IDEOGRAPH - ,0xB6D2 ,0x52DF //CJK UNIFIED IDEOGRAPH - ,0xB6D3 ,0x52E6 //CJK UNIFIED IDEOGRAPH - ,0xB6D4 ,0x52E4 //CJK UNIFIED IDEOGRAPH - ,0xB6D5 ,0x52E2 //CJK UNIFIED IDEOGRAPH - ,0xB6D6 ,0x52E3 //CJK UNIFIED IDEOGRAPH - ,0xB6D7 ,0x532F //CJK UNIFIED IDEOGRAPH - ,0xB6D8 ,0x55DF //CJK UNIFIED IDEOGRAPH - ,0xB6D9 ,0x55E8 //CJK UNIFIED IDEOGRAPH - ,0xB6DA ,0x55D3 //CJK UNIFIED IDEOGRAPH - ,0xB6DB ,0x55E6 //CJK UNIFIED IDEOGRAPH - ,0xB6DC ,0x55CE //CJK UNIFIED IDEOGRAPH - ,0xB6DD ,0x55DC //CJK UNIFIED IDEOGRAPH - ,0xB6DE ,0x55C7 //CJK UNIFIED IDEOGRAPH - ,0xB6DF ,0x55D1 //CJK UNIFIED IDEOGRAPH - ,0xB6E0 ,0x55E3 //CJK UNIFIED IDEOGRAPH - ,0xB6E1 ,0x55E4 //CJK UNIFIED IDEOGRAPH - ,0xB6E2 ,0x55EF //CJK UNIFIED IDEOGRAPH - ,0xB6E3 ,0x55DA //CJK UNIFIED IDEOGRAPH - ,0xB6E4 ,0x55E1 //CJK UNIFIED IDEOGRAPH - ,0xB6E5 ,0x55C5 //CJK UNIFIED IDEOGRAPH - ,0xB6E6 ,0x55C6 //CJK UNIFIED IDEOGRAPH - ,0xB6E7 ,0x55E5 //CJK UNIFIED IDEOGRAPH - ,0xB6E8 ,0x55C9 //CJK UNIFIED IDEOGRAPH - ,0xB6E9 ,0x5712 //CJK UNIFIED IDEOGRAPH - ,0xB6EA ,0x5713 //CJK UNIFIED IDEOGRAPH - ,0xB6EB ,0x585E //CJK UNIFIED IDEOGRAPH - ,0xB6EC ,0x5851 //CJK UNIFIED IDEOGRAPH - ,0xB6ED ,0x5858 //CJK UNIFIED IDEOGRAPH - ,0xB6EE ,0x5857 //CJK UNIFIED IDEOGRAPH - ,0xB6EF ,0x585A //CJK UNIFIED IDEOGRAPH - ,0xB6F0 ,0x5854 //CJK UNIFIED IDEOGRAPH - ,0xB6F1 ,0x586B //CJK UNIFIED IDEOGRAPH - ,0xB6F2 ,0x584C //CJK UNIFIED IDEOGRAPH - ,0xB6F3 ,0x586D //CJK UNIFIED IDEOGRAPH - ,0xB6F4 ,0x584A //CJK UNIFIED IDEOGRAPH - ,0xB6F5 ,0x5862 //CJK UNIFIED IDEOGRAPH - ,0xB6F6 ,0x5852 //CJK UNIFIED IDEOGRAPH - ,0xB6F7 ,0x584B //CJK UNIFIED IDEOGRAPH - ,0xB6F8 ,0x5967 //CJK UNIFIED IDEOGRAPH - ,0xB6F9 ,0x5AC1 //CJK UNIFIED IDEOGRAPH - ,0xB6FA ,0x5AC9 //CJK UNIFIED IDEOGRAPH - ,0xB6FB ,0x5ACC //CJK UNIFIED IDEOGRAPH - ,0xB6FC ,0x5ABE //CJK UNIFIED IDEOGRAPH - ,0xB6FD ,0x5ABD //CJK UNIFIED IDEOGRAPH - ,0xB6FE ,0x5ABC //CJK UNIFIED IDEOGRAPH - ,0xB740 ,0x5AB3 //CJK UNIFIED IDEOGRAPH - ,0xB741 ,0x5AC2 //CJK UNIFIED IDEOGRAPH - ,0xB742 ,0x5AB2 //CJK UNIFIED IDEOGRAPH - ,0xB743 ,0x5D69 //CJK UNIFIED IDEOGRAPH - ,0xB744 ,0x5D6F //CJK UNIFIED IDEOGRAPH - ,0xB745 ,0x5E4C //CJK UNIFIED IDEOGRAPH - ,0xB746 ,0x5E79 //CJK UNIFIED IDEOGRAPH - ,0xB747 ,0x5EC9 //CJK UNIFIED IDEOGRAPH - ,0xB748 ,0x5EC8 //CJK UNIFIED IDEOGRAPH - ,0xB749 ,0x5F12 //CJK UNIFIED IDEOGRAPH - ,0xB74A ,0x5F59 //CJK UNIFIED IDEOGRAPH - ,0xB74B ,0x5FAC //CJK UNIFIED IDEOGRAPH - ,0xB74C ,0x5FAE //CJK UNIFIED IDEOGRAPH - ,0xB74D ,0x611A //CJK UNIFIED IDEOGRAPH - ,0xB74E ,0x610F //CJK UNIFIED IDEOGRAPH - ,0xB74F ,0x6148 //CJK UNIFIED IDEOGRAPH - ,0xB750 ,0x611F //CJK UNIFIED IDEOGRAPH - ,0xB751 ,0x60F3 //CJK UNIFIED IDEOGRAPH - ,0xB752 ,0x611B //CJK UNIFIED IDEOGRAPH - ,0xB753 ,0x60F9 //CJK UNIFIED IDEOGRAPH - ,0xB754 ,0x6101 //CJK UNIFIED IDEOGRAPH - ,0xB755 ,0x6108 //CJK UNIFIED IDEOGRAPH - ,0xB756 ,0x614E //CJK UNIFIED IDEOGRAPH - ,0xB757 ,0x614C //CJK UNIFIED IDEOGRAPH - ,0xB758 ,0x6144 //CJK UNIFIED IDEOGRAPH - ,0xB759 ,0x614D //CJK UNIFIED IDEOGRAPH - ,0xB75A ,0x613E //CJK UNIFIED IDEOGRAPH - ,0xB75B ,0x6134 //CJK UNIFIED IDEOGRAPH - ,0xB75C ,0x6127 //CJK UNIFIED IDEOGRAPH - ,0xB75D ,0x610D //CJK UNIFIED IDEOGRAPH - ,0xB75E ,0x6106 //CJK UNIFIED IDEOGRAPH - ,0xB75F ,0x6137 //CJK UNIFIED IDEOGRAPH - ,0xB760 ,0x6221 //CJK UNIFIED IDEOGRAPH - ,0xB761 ,0x6222 //CJK UNIFIED IDEOGRAPH - ,0xB762 ,0x6413 //CJK UNIFIED IDEOGRAPH - ,0xB763 ,0x643E //CJK UNIFIED IDEOGRAPH - ,0xB764 ,0x641E //CJK UNIFIED IDEOGRAPH - ,0xB765 ,0x642A //CJK UNIFIED IDEOGRAPH - ,0xB766 ,0x642D //CJK UNIFIED IDEOGRAPH - ,0xB767 ,0x643D //CJK UNIFIED IDEOGRAPH - ,0xB768 ,0x642C //CJK UNIFIED IDEOGRAPH - ,0xB769 ,0x640F //CJK UNIFIED IDEOGRAPH - ,0xB76A ,0x641C //CJK UNIFIED IDEOGRAPH - ,0xB76B ,0x6414 //CJK UNIFIED IDEOGRAPH - ,0xB76C ,0x640D //CJK UNIFIED IDEOGRAPH - ,0xB76D ,0x6436 //CJK UNIFIED IDEOGRAPH - ,0xB76E ,0x6416 //CJK UNIFIED IDEOGRAPH - ,0xB76F ,0x6417 //CJK UNIFIED IDEOGRAPH - ,0xB770 ,0x6406 //CJK UNIFIED IDEOGRAPH - ,0xB771 ,0x656C //CJK UNIFIED IDEOGRAPH - ,0xB772 ,0x659F //CJK UNIFIED IDEOGRAPH - ,0xB773 ,0x65B0 //CJK UNIFIED IDEOGRAPH - ,0xB774 ,0x6697 //CJK UNIFIED IDEOGRAPH - ,0xB775 ,0x6689 //CJK UNIFIED IDEOGRAPH - ,0xB776 ,0x6687 //CJK UNIFIED IDEOGRAPH - ,0xB777 ,0x6688 //CJK UNIFIED IDEOGRAPH - ,0xB778 ,0x6696 //CJK UNIFIED IDEOGRAPH - ,0xB779 ,0x6684 //CJK UNIFIED IDEOGRAPH - ,0xB77A ,0x6698 //CJK UNIFIED IDEOGRAPH - ,0xB77B ,0x668D //CJK UNIFIED IDEOGRAPH - ,0xB77C ,0x6703 //CJK UNIFIED IDEOGRAPH - ,0xB77D ,0x6994 //CJK UNIFIED IDEOGRAPH - ,0xB77E ,0x696D //CJK UNIFIED IDEOGRAPH - ,0xB7A1 ,0x695A //CJK UNIFIED IDEOGRAPH - ,0xB7A2 ,0x6977 //CJK UNIFIED IDEOGRAPH - ,0xB7A3 ,0x6960 //CJK UNIFIED IDEOGRAPH - ,0xB7A4 ,0x6954 //CJK UNIFIED IDEOGRAPH - ,0xB7A5 ,0x6975 //CJK UNIFIED IDEOGRAPH - ,0xB7A6 ,0x6930 //CJK UNIFIED IDEOGRAPH - ,0xB7A7 ,0x6982 //CJK UNIFIED IDEOGRAPH - ,0xB7A8 ,0x694A //CJK UNIFIED IDEOGRAPH - ,0xB7A9 ,0x6968 //CJK UNIFIED IDEOGRAPH - ,0xB7AA ,0x696B //CJK UNIFIED IDEOGRAPH - ,0xB7AB ,0x695E //CJK UNIFIED IDEOGRAPH - ,0xB7AC ,0x6953 //CJK UNIFIED IDEOGRAPH - ,0xB7AD ,0x6979 //CJK UNIFIED IDEOGRAPH - ,0xB7AE ,0x6986 //CJK UNIFIED IDEOGRAPH - ,0xB7AF ,0x695D //CJK UNIFIED IDEOGRAPH - ,0xB7B0 ,0x6963 //CJK UNIFIED IDEOGRAPH - ,0xB7B1 ,0x695B //CJK UNIFIED IDEOGRAPH - ,0xB7B2 ,0x6B47 //CJK UNIFIED IDEOGRAPH - ,0xB7B3 ,0x6B72 //CJK UNIFIED IDEOGRAPH - ,0xB7B4 ,0x6BC0 //CJK UNIFIED IDEOGRAPH - ,0xB7B5 ,0x6BBF //CJK UNIFIED IDEOGRAPH - ,0xB7B6 ,0x6BD3 //CJK UNIFIED IDEOGRAPH - ,0xB7B7 ,0x6BFD //CJK UNIFIED IDEOGRAPH - ,0xB7B8 ,0x6EA2 //CJK UNIFIED IDEOGRAPH - ,0xB7B9 ,0x6EAF //CJK UNIFIED IDEOGRAPH - ,0xB7BA ,0x6ED3 //CJK UNIFIED IDEOGRAPH - ,0xB7BB ,0x6EB6 //CJK UNIFIED IDEOGRAPH - ,0xB7BC ,0x6EC2 //CJK UNIFIED IDEOGRAPH - ,0xB7BD ,0x6E90 //CJK UNIFIED IDEOGRAPH - ,0xB7BE ,0x6E9D //CJK UNIFIED IDEOGRAPH - ,0xB7BF ,0x6EC7 //CJK UNIFIED IDEOGRAPH - ,0xB7C0 ,0x6EC5 //CJK UNIFIED IDEOGRAPH - ,0xB7C1 ,0x6EA5 //CJK UNIFIED IDEOGRAPH - ,0xB7C2 ,0x6E98 //CJK UNIFIED IDEOGRAPH - ,0xB7C3 ,0x6EBC //CJK UNIFIED IDEOGRAPH - ,0xB7C4 ,0x6EBA //CJK UNIFIED IDEOGRAPH - ,0xB7C5 ,0x6EAB //CJK UNIFIED IDEOGRAPH - ,0xB7C6 ,0x6ED1 //CJK UNIFIED IDEOGRAPH - ,0xB7C7 ,0x6E96 //CJK UNIFIED IDEOGRAPH - ,0xB7C8 ,0x6E9C //CJK UNIFIED IDEOGRAPH - ,0xB7C9 ,0x6EC4 //CJK UNIFIED IDEOGRAPH - ,0xB7CA ,0x6ED4 //CJK UNIFIED IDEOGRAPH - ,0xB7CB ,0x6EAA //CJK UNIFIED IDEOGRAPH - ,0xB7CC ,0x6EA7 //CJK UNIFIED IDEOGRAPH - ,0xB7CD ,0x6EB4 //CJK UNIFIED IDEOGRAPH - ,0xB7CE ,0x714E //CJK UNIFIED IDEOGRAPH - ,0xB7CF ,0x7159 //CJK UNIFIED IDEOGRAPH - ,0xB7D0 ,0x7169 //CJK UNIFIED IDEOGRAPH - ,0xB7D1 ,0x7164 //CJK UNIFIED IDEOGRAPH - ,0xB7D2 ,0x7149 //CJK UNIFIED IDEOGRAPH - ,0xB7D3 ,0x7167 //CJK UNIFIED IDEOGRAPH - ,0xB7D4 ,0x715C //CJK UNIFIED IDEOGRAPH - ,0xB7D5 ,0x716C //CJK UNIFIED IDEOGRAPH - ,0xB7D6 ,0x7166 //CJK UNIFIED IDEOGRAPH - ,0xB7D7 ,0x714C //CJK UNIFIED IDEOGRAPH - ,0xB7D8 ,0x7165 //CJK UNIFIED IDEOGRAPH - ,0xB7D9 ,0x715E //CJK UNIFIED IDEOGRAPH - ,0xB7DA ,0x7146 //CJK UNIFIED IDEOGRAPH - ,0xB7DB ,0x7168 //CJK UNIFIED IDEOGRAPH - ,0xB7DC ,0x7156 //CJK UNIFIED IDEOGRAPH - ,0xB7DD ,0x723A //CJK UNIFIED IDEOGRAPH - ,0xB7DE ,0x7252 //CJK UNIFIED IDEOGRAPH - ,0xB7DF ,0x7337 //CJK UNIFIED IDEOGRAPH - ,0xB7E0 ,0x7345 //CJK UNIFIED IDEOGRAPH - ,0xB7E1 ,0x733F //CJK UNIFIED IDEOGRAPH - ,0xB7E2 ,0x733E //CJK UNIFIED IDEOGRAPH - ,0xB7E3 ,0x746F //CJK UNIFIED IDEOGRAPH - ,0xB7E4 ,0x745A //CJK UNIFIED IDEOGRAPH - ,0xB7E5 ,0x7455 //CJK UNIFIED IDEOGRAPH - ,0xB7E6 ,0x745F //CJK UNIFIED IDEOGRAPH - ,0xB7E7 ,0x745E //CJK UNIFIED IDEOGRAPH - ,0xB7E8 ,0x7441 //CJK UNIFIED IDEOGRAPH - ,0xB7E9 ,0x743F //CJK UNIFIED IDEOGRAPH - ,0xB7EA ,0x7459 //CJK UNIFIED IDEOGRAPH - ,0xB7EB ,0x745B //CJK UNIFIED IDEOGRAPH - ,0xB7EC ,0x745C //CJK UNIFIED IDEOGRAPH - ,0xB7ED ,0x7576 //CJK UNIFIED IDEOGRAPH - ,0xB7EE ,0x7578 //CJK UNIFIED IDEOGRAPH - ,0xB7EF ,0x7600 //CJK UNIFIED IDEOGRAPH - ,0xB7F0 ,0x75F0 //CJK UNIFIED IDEOGRAPH - ,0xB7F1 ,0x7601 //CJK UNIFIED IDEOGRAPH - ,0xB7F2 ,0x75F2 //CJK UNIFIED IDEOGRAPH - ,0xB7F3 ,0x75F1 //CJK UNIFIED IDEOGRAPH - ,0xB7F4 ,0x75FA //CJK UNIFIED IDEOGRAPH - ,0xB7F5 ,0x75FF //CJK UNIFIED IDEOGRAPH - ,0xB7F6 ,0x75F4 //CJK UNIFIED IDEOGRAPH - ,0xB7F7 ,0x75F3 //CJK UNIFIED IDEOGRAPH - ,0xB7F8 ,0x76DE //CJK UNIFIED IDEOGRAPH - ,0xB7F9 ,0x76DF //CJK UNIFIED IDEOGRAPH - ,0xB7FA ,0x775B //CJK UNIFIED IDEOGRAPH - ,0xB7FB ,0x776B //CJK UNIFIED IDEOGRAPH - ,0xB7FC ,0x7766 //CJK UNIFIED IDEOGRAPH - ,0xB7FD ,0x775E //CJK UNIFIED IDEOGRAPH - ,0xB7FE ,0x7763 //CJK UNIFIED IDEOGRAPH - ,0xB840 ,0x7779 //CJK UNIFIED IDEOGRAPH - ,0xB841 ,0x776A //CJK UNIFIED IDEOGRAPH - ,0xB842 ,0x776C //CJK UNIFIED IDEOGRAPH - ,0xB843 ,0x775C //CJK UNIFIED IDEOGRAPH - ,0xB844 ,0x7765 //CJK UNIFIED IDEOGRAPH - ,0xB845 ,0x7768 //CJK UNIFIED IDEOGRAPH - ,0xB846 ,0x7762 //CJK UNIFIED IDEOGRAPH - ,0xB847 ,0x77EE //CJK UNIFIED IDEOGRAPH - ,0xB848 ,0x788E //CJK UNIFIED IDEOGRAPH - ,0xB849 ,0x78B0 //CJK UNIFIED IDEOGRAPH - ,0xB84A ,0x7897 //CJK UNIFIED IDEOGRAPH - ,0xB84B ,0x7898 //CJK UNIFIED IDEOGRAPH - ,0xB84C ,0x788C //CJK UNIFIED IDEOGRAPH - ,0xB84D ,0x7889 //CJK UNIFIED IDEOGRAPH - ,0xB84E ,0x787C //CJK UNIFIED IDEOGRAPH - ,0xB84F ,0x7891 //CJK UNIFIED IDEOGRAPH - ,0xB850 ,0x7893 //CJK UNIFIED IDEOGRAPH - ,0xB851 ,0x787F //CJK UNIFIED IDEOGRAPH - ,0xB852 ,0x797A //CJK UNIFIED IDEOGRAPH - ,0xB853 ,0x797F //CJK UNIFIED IDEOGRAPH - ,0xB854 ,0x7981 //CJK UNIFIED IDEOGRAPH - ,0xB855 ,0x842C //CJK UNIFIED IDEOGRAPH - ,0xB856 ,0x79BD //CJK UNIFIED IDEOGRAPH - ,0xB857 ,0x7A1C //CJK UNIFIED IDEOGRAPH - ,0xB858 ,0x7A1A //CJK UNIFIED IDEOGRAPH - ,0xB859 ,0x7A20 //CJK UNIFIED IDEOGRAPH - ,0xB85A ,0x7A14 //CJK UNIFIED IDEOGRAPH - ,0xB85B ,0x7A1F //CJK UNIFIED IDEOGRAPH - ,0xB85C ,0x7A1E //CJK UNIFIED IDEOGRAPH - ,0xB85D ,0x7A9F //CJK UNIFIED IDEOGRAPH - ,0xB85E ,0x7AA0 //CJK UNIFIED IDEOGRAPH - ,0xB85F ,0x7B77 //CJK UNIFIED IDEOGRAPH - ,0xB860 ,0x7BC0 //CJK UNIFIED IDEOGRAPH - ,0xB861 ,0x7B60 //CJK UNIFIED IDEOGRAPH - ,0xB862 ,0x7B6E //CJK UNIFIED IDEOGRAPH - ,0xB863 ,0x7B67 //CJK UNIFIED IDEOGRAPH - ,0xB864 ,0x7CB1 //CJK UNIFIED IDEOGRAPH - ,0xB865 ,0x7CB3 //CJK UNIFIED IDEOGRAPH - ,0xB866 ,0x7CB5 //CJK UNIFIED IDEOGRAPH - ,0xB867 ,0x7D93 //CJK UNIFIED IDEOGRAPH - ,0xB868 ,0x7D79 //CJK UNIFIED IDEOGRAPH - ,0xB869 ,0x7D91 //CJK UNIFIED IDEOGRAPH - ,0xB86A ,0x7D81 //CJK UNIFIED IDEOGRAPH - ,0xB86B ,0x7D8F //CJK UNIFIED IDEOGRAPH - ,0xB86C ,0x7D5B //CJK UNIFIED IDEOGRAPH - ,0xB86D ,0x7F6E //CJK UNIFIED IDEOGRAPH - ,0xB86E ,0x7F69 //CJK UNIFIED IDEOGRAPH - ,0xB86F ,0x7F6A //CJK UNIFIED IDEOGRAPH - ,0xB870 ,0x7F72 //CJK UNIFIED IDEOGRAPH - ,0xB871 ,0x7FA9 //CJK UNIFIED IDEOGRAPH - ,0xB872 ,0x7FA8 //CJK UNIFIED IDEOGRAPH - ,0xB873 ,0x7FA4 //CJK UNIFIED IDEOGRAPH - ,0xB874 ,0x8056 //CJK UNIFIED IDEOGRAPH - ,0xB875 ,0x8058 //CJK UNIFIED IDEOGRAPH - ,0xB876 ,0x8086 //CJK UNIFIED IDEOGRAPH - ,0xB877 ,0x8084 //CJK UNIFIED IDEOGRAPH - ,0xB878 ,0x8171 //CJK UNIFIED IDEOGRAPH - ,0xB879 ,0x8170 //CJK UNIFIED IDEOGRAPH - ,0xB87A ,0x8178 //CJK UNIFIED IDEOGRAPH - ,0xB87B ,0x8165 //CJK UNIFIED IDEOGRAPH - ,0xB87C ,0x816E //CJK UNIFIED IDEOGRAPH - ,0xB87D ,0x8173 //CJK UNIFIED IDEOGRAPH - ,0xB87E ,0x816B //CJK UNIFIED IDEOGRAPH - ,0xB8A1 ,0x8179 //CJK UNIFIED IDEOGRAPH - ,0xB8A2 ,0x817A //CJK UNIFIED IDEOGRAPH - ,0xB8A3 ,0x8166 //CJK UNIFIED IDEOGRAPH - ,0xB8A4 ,0x8205 //CJK UNIFIED IDEOGRAPH - ,0xB8A5 ,0x8247 //CJK UNIFIED IDEOGRAPH - ,0xB8A6 ,0x8482 //CJK UNIFIED IDEOGRAPH - ,0xB8A7 ,0x8477 //CJK UNIFIED IDEOGRAPH - ,0xB8A8 ,0x843D //CJK UNIFIED IDEOGRAPH - ,0xB8A9 ,0x8431 //CJK UNIFIED IDEOGRAPH - ,0xB8AA ,0x8475 //CJK UNIFIED IDEOGRAPH - ,0xB8AB ,0x8466 //CJK UNIFIED IDEOGRAPH - ,0xB8AC ,0x846B //CJK UNIFIED IDEOGRAPH - ,0xB8AD ,0x8449 //CJK UNIFIED IDEOGRAPH - ,0xB8AE ,0x846C //CJK UNIFIED IDEOGRAPH - ,0xB8AF ,0x845B //CJK UNIFIED IDEOGRAPH - ,0xB8B0 ,0x843C //CJK UNIFIED IDEOGRAPH - ,0xB8B1 ,0x8435 //CJK UNIFIED IDEOGRAPH - ,0xB8B2 ,0x8461 //CJK UNIFIED IDEOGRAPH - ,0xB8B3 ,0x8463 //CJK UNIFIED IDEOGRAPH - ,0xB8B4 ,0x8469 //CJK UNIFIED IDEOGRAPH - ,0xB8B5 ,0x846D //CJK UNIFIED IDEOGRAPH - ,0xB8B6 ,0x8446 //CJK UNIFIED IDEOGRAPH - ,0xB8B7 ,0x865E //CJK UNIFIED IDEOGRAPH - ,0xB8B8 ,0x865C //CJK UNIFIED IDEOGRAPH - ,0xB8B9 ,0x865F //CJK UNIFIED IDEOGRAPH - ,0xB8BA ,0x86F9 //CJK UNIFIED IDEOGRAPH - ,0xB8BB ,0x8713 //CJK UNIFIED IDEOGRAPH - ,0xB8BC ,0x8708 //CJK UNIFIED IDEOGRAPH - ,0xB8BD ,0x8707 //CJK UNIFIED IDEOGRAPH - ,0xB8BE ,0x8700 //CJK UNIFIED IDEOGRAPH - ,0xB8BF ,0x86FE //CJK UNIFIED IDEOGRAPH - ,0xB8C0 ,0x86FB //CJK UNIFIED IDEOGRAPH - ,0xB8C1 ,0x8702 //CJK UNIFIED IDEOGRAPH - ,0xB8C2 ,0x8703 //CJK UNIFIED IDEOGRAPH - ,0xB8C3 ,0x8706 //CJK UNIFIED IDEOGRAPH - ,0xB8C4 ,0x870A //CJK UNIFIED IDEOGRAPH - ,0xB8C5 ,0x8859 //CJK UNIFIED IDEOGRAPH - ,0xB8C6 ,0x88DF //CJK UNIFIED IDEOGRAPH - ,0xB8C7 ,0x88D4 //CJK UNIFIED IDEOGRAPH - ,0xB8C8 ,0x88D9 //CJK UNIFIED IDEOGRAPH - ,0xB8C9 ,0x88DC //CJK UNIFIED IDEOGRAPH - ,0xB8CA ,0x88D8 //CJK UNIFIED IDEOGRAPH - ,0xB8CB ,0x88DD //CJK UNIFIED IDEOGRAPH - ,0xB8CC ,0x88E1 //CJK UNIFIED IDEOGRAPH - ,0xB8CD ,0x88CA //CJK UNIFIED IDEOGRAPH - ,0xB8CE ,0x88D5 //CJK UNIFIED IDEOGRAPH - ,0xB8CF ,0x88D2 //CJK UNIFIED IDEOGRAPH - ,0xB8D0 ,0x899C //CJK UNIFIED IDEOGRAPH - ,0xB8D1 ,0x89E3 //CJK UNIFIED IDEOGRAPH - ,0xB8D2 ,0x8A6B //CJK UNIFIED IDEOGRAPH - ,0xB8D3 ,0x8A72 //CJK UNIFIED IDEOGRAPH - ,0xB8D4 ,0x8A73 //CJK UNIFIED IDEOGRAPH - ,0xB8D5 ,0x8A66 //CJK UNIFIED IDEOGRAPH - ,0xB8D6 ,0x8A69 //CJK UNIFIED IDEOGRAPH - ,0xB8D7 ,0x8A70 //CJK UNIFIED IDEOGRAPH - ,0xB8D8 ,0x8A87 //CJK UNIFIED IDEOGRAPH - ,0xB8D9 ,0x8A7C //CJK UNIFIED IDEOGRAPH - ,0xB8DA ,0x8A63 //CJK UNIFIED IDEOGRAPH - ,0xB8DB ,0x8AA0 //CJK UNIFIED IDEOGRAPH - ,0xB8DC ,0x8A71 //CJK UNIFIED IDEOGRAPH - ,0xB8DD ,0x8A85 //CJK UNIFIED IDEOGRAPH - ,0xB8DE ,0x8A6D //CJK UNIFIED IDEOGRAPH - ,0xB8DF ,0x8A62 //CJK UNIFIED IDEOGRAPH - ,0xB8E0 ,0x8A6E //CJK UNIFIED IDEOGRAPH - ,0xB8E1 ,0x8A6C //CJK UNIFIED IDEOGRAPH - ,0xB8E2 ,0x8A79 //CJK UNIFIED IDEOGRAPH - ,0xB8E3 ,0x8A7B //CJK UNIFIED IDEOGRAPH - ,0xB8E4 ,0x8A3E //CJK UNIFIED IDEOGRAPH - ,0xB8E5 ,0x8A68 //CJK UNIFIED IDEOGRAPH - ,0xB8E6 ,0x8C62 //CJK UNIFIED IDEOGRAPH - ,0xB8E7 ,0x8C8A //CJK UNIFIED IDEOGRAPH - ,0xB8E8 ,0x8C89 //CJK UNIFIED IDEOGRAPH - ,0xB8E9 ,0x8CCA //CJK UNIFIED IDEOGRAPH - ,0xB8EA ,0x8CC7 //CJK UNIFIED IDEOGRAPH - ,0xB8EB ,0x8CC8 //CJK UNIFIED IDEOGRAPH - ,0xB8EC ,0x8CC4 //CJK UNIFIED IDEOGRAPH - ,0xB8ED ,0x8CB2 //CJK UNIFIED IDEOGRAPH - ,0xB8EE ,0x8CC3 //CJK UNIFIED IDEOGRAPH - ,0xB8EF ,0x8CC2 //CJK UNIFIED IDEOGRAPH - ,0xB8F0 ,0x8CC5 //CJK UNIFIED IDEOGRAPH - ,0xB8F1 ,0x8DE1 //CJK UNIFIED IDEOGRAPH - ,0xB8F2 ,0x8DDF //CJK UNIFIED IDEOGRAPH - ,0xB8F3 ,0x8DE8 //CJK UNIFIED IDEOGRAPH - ,0xB8F4 ,0x8DEF //CJK UNIFIED IDEOGRAPH - ,0xB8F5 ,0x8DF3 //CJK UNIFIED IDEOGRAPH - ,0xB8F6 ,0x8DFA //CJK UNIFIED IDEOGRAPH - ,0xB8F7 ,0x8DEA //CJK UNIFIED IDEOGRAPH - ,0xB8F8 ,0x8DE4 //CJK UNIFIED IDEOGRAPH - ,0xB8F9 ,0x8DE6 //CJK UNIFIED IDEOGRAPH - ,0xB8FA ,0x8EB2 //CJK UNIFIED IDEOGRAPH - ,0xB8FB ,0x8F03 //CJK UNIFIED IDEOGRAPH - ,0xB8FC ,0x8F09 //CJK UNIFIED IDEOGRAPH - ,0xB8FD ,0x8EFE //CJK UNIFIED IDEOGRAPH - ,0xB8FE ,0x8F0A //CJK UNIFIED IDEOGRAPH - ,0xB940 ,0x8F9F //CJK UNIFIED IDEOGRAPH - ,0xB941 ,0x8FB2 //CJK UNIFIED IDEOGRAPH - ,0xB942 ,0x904B //CJK UNIFIED IDEOGRAPH - ,0xB943 ,0x904A //CJK UNIFIED IDEOGRAPH - ,0xB944 ,0x9053 //CJK UNIFIED IDEOGRAPH - ,0xB945 ,0x9042 //CJK UNIFIED IDEOGRAPH - ,0xB946 ,0x9054 //CJK UNIFIED IDEOGRAPH - ,0xB947 ,0x903C //CJK UNIFIED IDEOGRAPH - ,0xB948 ,0x9055 //CJK UNIFIED IDEOGRAPH - ,0xB949 ,0x9050 //CJK UNIFIED IDEOGRAPH - ,0xB94A ,0x9047 //CJK UNIFIED IDEOGRAPH - ,0xB94B ,0x904F //CJK UNIFIED IDEOGRAPH - ,0xB94C ,0x904E //CJK UNIFIED IDEOGRAPH - ,0xB94D ,0x904D //CJK UNIFIED IDEOGRAPH - ,0xB94E ,0x9051 //CJK UNIFIED IDEOGRAPH - ,0xB94F ,0x903E //CJK UNIFIED IDEOGRAPH - ,0xB950 ,0x9041 //CJK UNIFIED IDEOGRAPH - ,0xB951 ,0x9112 //CJK UNIFIED IDEOGRAPH - ,0xB952 ,0x9117 //CJK UNIFIED IDEOGRAPH - ,0xB953 ,0x916C //CJK UNIFIED IDEOGRAPH - ,0xB954 ,0x916A //CJK UNIFIED IDEOGRAPH - ,0xB955 ,0x9169 //CJK UNIFIED IDEOGRAPH - ,0xB956 ,0x91C9 //CJK UNIFIED IDEOGRAPH - ,0xB957 ,0x9237 //CJK UNIFIED IDEOGRAPH - ,0xB958 ,0x9257 //CJK UNIFIED IDEOGRAPH - ,0xB959 ,0x9238 //CJK UNIFIED IDEOGRAPH - ,0xB95A ,0x923D //CJK UNIFIED IDEOGRAPH - ,0xB95B ,0x9240 //CJK UNIFIED IDEOGRAPH - ,0xB95C ,0x923E //CJK UNIFIED IDEOGRAPH - ,0xB95D ,0x925B //CJK UNIFIED IDEOGRAPH - ,0xB95E ,0x924B //CJK UNIFIED IDEOGRAPH - ,0xB95F ,0x9264 //CJK UNIFIED IDEOGRAPH - ,0xB960 ,0x9251 //CJK UNIFIED IDEOGRAPH - ,0xB961 ,0x9234 //CJK UNIFIED IDEOGRAPH - ,0xB962 ,0x9249 //CJK UNIFIED IDEOGRAPH - ,0xB963 ,0x924D //CJK UNIFIED IDEOGRAPH - ,0xB964 ,0x9245 //CJK UNIFIED IDEOGRAPH - ,0xB965 ,0x9239 //CJK UNIFIED IDEOGRAPH - ,0xB966 ,0x923F //CJK UNIFIED IDEOGRAPH - ,0xB967 ,0x925A //CJK UNIFIED IDEOGRAPH - ,0xB968 ,0x9598 //CJK UNIFIED IDEOGRAPH - ,0xB969 ,0x9698 //CJK UNIFIED IDEOGRAPH - ,0xB96A ,0x9694 //CJK UNIFIED IDEOGRAPH - ,0xB96B ,0x9695 //CJK UNIFIED IDEOGRAPH - ,0xB96C ,0x96CD //CJK UNIFIED IDEOGRAPH - ,0xB96D ,0x96CB //CJK UNIFIED IDEOGRAPH - ,0xB96E ,0x96C9 //CJK UNIFIED IDEOGRAPH - ,0xB96F ,0x96CA //CJK UNIFIED IDEOGRAPH - ,0xB970 ,0x96F7 //CJK UNIFIED IDEOGRAPH - ,0xB971 ,0x96FB //CJK UNIFIED IDEOGRAPH - ,0xB972 ,0x96F9 //CJK UNIFIED IDEOGRAPH - ,0xB973 ,0x96F6 //CJK UNIFIED IDEOGRAPH - ,0xB974 ,0x9756 //CJK UNIFIED IDEOGRAPH - ,0xB975 ,0x9774 //CJK UNIFIED IDEOGRAPH - ,0xB976 ,0x9776 //CJK UNIFIED IDEOGRAPH - ,0xB977 ,0x9810 //CJK UNIFIED IDEOGRAPH - ,0xB978 ,0x9811 //CJK UNIFIED IDEOGRAPH - ,0xB979 ,0x9813 //CJK UNIFIED IDEOGRAPH - ,0xB97A ,0x980A //CJK UNIFIED IDEOGRAPH - ,0xB97B ,0x9812 //CJK UNIFIED IDEOGRAPH - ,0xB97C ,0x980C //CJK UNIFIED IDEOGRAPH - ,0xB97D ,0x98FC //CJK UNIFIED IDEOGRAPH - ,0xB97E ,0x98F4 //CJK UNIFIED IDEOGRAPH - ,0xB9A1 ,0x98FD //CJK UNIFIED IDEOGRAPH - ,0xB9A2 ,0x98FE //CJK UNIFIED IDEOGRAPH - ,0xB9A3 ,0x99B3 //CJK UNIFIED IDEOGRAPH - ,0xB9A4 ,0x99B1 //CJK UNIFIED IDEOGRAPH - ,0xB9A5 ,0x99B4 //CJK UNIFIED IDEOGRAPH - ,0xB9A6 ,0x9AE1 //CJK UNIFIED IDEOGRAPH - ,0xB9A7 ,0x9CE9 //CJK UNIFIED IDEOGRAPH - ,0xB9A8 ,0x9E82 //CJK UNIFIED IDEOGRAPH - ,0xB9A9 ,0x9F0E //CJK UNIFIED IDEOGRAPH - ,0xB9AA ,0x9F13 //CJK UNIFIED IDEOGRAPH - ,0xB9AB ,0x9F20 //CJK UNIFIED IDEOGRAPH - ,0xB9AC ,0x50E7 //CJK UNIFIED IDEOGRAPH - ,0xB9AD ,0x50EE //CJK UNIFIED IDEOGRAPH - ,0xB9AE ,0x50E5 //CJK UNIFIED IDEOGRAPH - ,0xB9AF ,0x50D6 //CJK UNIFIED IDEOGRAPH - ,0xB9B0 ,0x50ED //CJK UNIFIED IDEOGRAPH - ,0xB9B1 ,0x50DA //CJK UNIFIED IDEOGRAPH - ,0xB9B2 ,0x50D5 //CJK UNIFIED IDEOGRAPH - ,0xB9B3 ,0x50CF //CJK UNIFIED IDEOGRAPH - ,0xB9B4 ,0x50D1 //CJK UNIFIED IDEOGRAPH - ,0xB9B5 ,0x50F1 //CJK UNIFIED IDEOGRAPH - ,0xB9B6 ,0x50CE //CJK UNIFIED IDEOGRAPH - ,0xB9B7 ,0x50E9 //CJK UNIFIED IDEOGRAPH - ,0xB9B8 ,0x5162 //CJK UNIFIED IDEOGRAPH - ,0xB9B9 ,0x51F3 //CJK UNIFIED IDEOGRAPH - ,0xB9BA ,0x5283 //CJK UNIFIED IDEOGRAPH - ,0xB9BB ,0x5282 //CJK UNIFIED IDEOGRAPH - ,0xB9BC ,0x5331 //CJK UNIFIED IDEOGRAPH - ,0xB9BD ,0x53AD //CJK UNIFIED IDEOGRAPH - ,0xB9BE ,0x55FE //CJK UNIFIED IDEOGRAPH - ,0xB9BF ,0x5600 //CJK UNIFIED IDEOGRAPH - ,0xB9C0 ,0x561B //CJK UNIFIED IDEOGRAPH - ,0xB9C1 ,0x5617 //CJK UNIFIED IDEOGRAPH - ,0xB9C2 ,0x55FD //CJK UNIFIED IDEOGRAPH - ,0xB9C3 ,0x5614 //CJK UNIFIED IDEOGRAPH - ,0xB9C4 ,0x5606 //CJK UNIFIED IDEOGRAPH - ,0xB9C5 ,0x5609 //CJK UNIFIED IDEOGRAPH - ,0xB9C6 ,0x560D //CJK UNIFIED IDEOGRAPH - ,0xB9C7 ,0x560E //CJK UNIFIED IDEOGRAPH - ,0xB9C8 ,0x55F7 //CJK UNIFIED IDEOGRAPH - ,0xB9C9 ,0x5616 //CJK UNIFIED IDEOGRAPH - ,0xB9CA ,0x561F //CJK UNIFIED IDEOGRAPH - ,0xB9CB ,0x5608 //CJK UNIFIED IDEOGRAPH - ,0xB9CC ,0x5610 //CJK UNIFIED IDEOGRAPH - ,0xB9CD ,0x55F6 //CJK UNIFIED IDEOGRAPH - ,0xB9CE ,0x5718 //CJK UNIFIED IDEOGRAPH - ,0xB9CF ,0x5716 //CJK UNIFIED IDEOGRAPH - ,0xB9D0 ,0x5875 //CJK UNIFIED IDEOGRAPH - ,0xB9D1 ,0x587E //CJK UNIFIED IDEOGRAPH - ,0xB9D2 ,0x5883 //CJK UNIFIED IDEOGRAPH - ,0xB9D3 ,0x5893 //CJK UNIFIED IDEOGRAPH - ,0xB9D4 ,0x588A //CJK UNIFIED IDEOGRAPH - ,0xB9D5 ,0x5879 //CJK UNIFIED IDEOGRAPH - ,0xB9D6 ,0x5885 //CJK UNIFIED IDEOGRAPH - ,0xB9D7 ,0x587D //CJK UNIFIED IDEOGRAPH - ,0xB9D8 ,0x58FD //CJK UNIFIED IDEOGRAPH - ,0xB9D9 ,0x5925 //CJK UNIFIED IDEOGRAPH - ,0xB9DA ,0x5922 //CJK UNIFIED IDEOGRAPH - ,0xB9DB ,0x5924 //CJK UNIFIED IDEOGRAPH - ,0xB9DC ,0x596A //CJK UNIFIED IDEOGRAPH - ,0xB9DD ,0x5969 //CJK UNIFIED IDEOGRAPH - ,0xB9DE ,0x5AE1 //CJK UNIFIED IDEOGRAPH - ,0xB9DF ,0x5AE6 //CJK UNIFIED IDEOGRAPH - ,0xB9E0 ,0x5AE9 //CJK UNIFIED IDEOGRAPH - ,0xB9E1 ,0x5AD7 //CJK UNIFIED IDEOGRAPH - ,0xB9E2 ,0x5AD6 //CJK UNIFIED IDEOGRAPH - ,0xB9E3 ,0x5AD8 //CJK UNIFIED IDEOGRAPH - ,0xB9E4 ,0x5AE3 //CJK UNIFIED IDEOGRAPH - ,0xB9E5 ,0x5B75 //CJK UNIFIED IDEOGRAPH - ,0xB9E6 ,0x5BDE //CJK UNIFIED IDEOGRAPH - ,0xB9E7 ,0x5BE7 //CJK UNIFIED IDEOGRAPH - ,0xB9E8 ,0x5BE1 //CJK UNIFIED IDEOGRAPH - ,0xB9E9 ,0x5BE5 //CJK UNIFIED IDEOGRAPH - ,0xB9EA ,0x5BE6 //CJK UNIFIED IDEOGRAPH - ,0xB9EB ,0x5BE8 //CJK UNIFIED IDEOGRAPH - ,0xB9EC ,0x5BE2 //CJK UNIFIED IDEOGRAPH - ,0xB9ED ,0x5BE4 //CJK UNIFIED IDEOGRAPH - ,0xB9EE ,0x5BDF //CJK UNIFIED IDEOGRAPH - ,0xB9EF ,0x5C0D //CJK UNIFIED IDEOGRAPH - ,0xB9F0 ,0x5C62 //CJK UNIFIED IDEOGRAPH - ,0xB9F1 ,0x5D84 //CJK UNIFIED IDEOGRAPH - ,0xB9F2 ,0x5D87 //CJK UNIFIED IDEOGRAPH - ,0xB9F3 ,0x5E5B //CJK UNIFIED IDEOGRAPH - ,0xB9F4 ,0x5E63 //CJK UNIFIED IDEOGRAPH - ,0xB9F5 ,0x5E55 //CJK UNIFIED IDEOGRAPH - ,0xB9F6 ,0x5E57 //CJK UNIFIED IDEOGRAPH - ,0xB9F7 ,0x5E54 //CJK UNIFIED IDEOGRAPH - ,0xB9F8 ,0x5ED3 //CJK UNIFIED IDEOGRAPH - ,0xB9F9 ,0x5ED6 //CJK UNIFIED IDEOGRAPH - ,0xB9FA ,0x5F0A //CJK UNIFIED IDEOGRAPH - ,0xB9FB ,0x5F46 //CJK UNIFIED IDEOGRAPH - ,0xB9FC ,0x5F70 //CJK UNIFIED IDEOGRAPH - ,0xB9FD ,0x5FB9 //CJK UNIFIED IDEOGRAPH - ,0xB9FE ,0x6147 //CJK UNIFIED IDEOGRAPH - ,0xBA40 ,0x613F //CJK UNIFIED IDEOGRAPH - ,0xBA41 ,0x614B //CJK UNIFIED IDEOGRAPH - ,0xBA42 ,0x6177 //CJK UNIFIED IDEOGRAPH - ,0xBA43 ,0x6162 //CJK UNIFIED IDEOGRAPH - ,0xBA44 ,0x6163 //CJK UNIFIED IDEOGRAPH - ,0xBA45 ,0x615F //CJK UNIFIED IDEOGRAPH - ,0xBA46 ,0x615A //CJK UNIFIED IDEOGRAPH - ,0xBA47 ,0x6158 //CJK UNIFIED IDEOGRAPH - ,0xBA48 ,0x6175 //CJK UNIFIED IDEOGRAPH - ,0xBA49 ,0x622A //CJK UNIFIED IDEOGRAPH - ,0xBA4A ,0x6487 //CJK UNIFIED IDEOGRAPH - ,0xBA4B ,0x6458 //CJK UNIFIED IDEOGRAPH - ,0xBA4C ,0x6454 //CJK UNIFIED IDEOGRAPH - ,0xBA4D ,0x64A4 //CJK UNIFIED IDEOGRAPH - ,0xBA4E ,0x6478 //CJK UNIFIED IDEOGRAPH - ,0xBA4F ,0x645F //CJK UNIFIED IDEOGRAPH - ,0xBA50 ,0x647A //CJK UNIFIED IDEOGRAPH - ,0xBA51 ,0x6451 //CJK UNIFIED IDEOGRAPH - ,0xBA52 ,0x6467 //CJK UNIFIED IDEOGRAPH - ,0xBA53 ,0x6434 //CJK UNIFIED IDEOGRAPH - ,0xBA54 ,0x646D //CJK UNIFIED IDEOGRAPH - ,0xBA55 ,0x647B //CJK UNIFIED IDEOGRAPH - ,0xBA56 ,0x6572 //CJK UNIFIED IDEOGRAPH - ,0xBA57 ,0x65A1 //CJK UNIFIED IDEOGRAPH - ,0xBA58 ,0x65D7 //CJK UNIFIED IDEOGRAPH - ,0xBA59 ,0x65D6 //CJK UNIFIED IDEOGRAPH - ,0xBA5A ,0x66A2 //CJK UNIFIED IDEOGRAPH - ,0xBA5B ,0x66A8 //CJK UNIFIED IDEOGRAPH - ,0xBA5C ,0x669D //CJK UNIFIED IDEOGRAPH - ,0xBA5D ,0x699C //CJK UNIFIED IDEOGRAPH - ,0xBA5E ,0x69A8 //CJK UNIFIED IDEOGRAPH - ,0xBA5F ,0x6995 //CJK UNIFIED IDEOGRAPH - ,0xBA60 ,0x69C1 //CJK UNIFIED IDEOGRAPH - ,0xBA61 ,0x69AE //CJK UNIFIED IDEOGRAPH - ,0xBA62 ,0x69D3 //CJK UNIFIED IDEOGRAPH - ,0xBA63 ,0x69CB //CJK UNIFIED IDEOGRAPH - ,0xBA64 ,0x699B //CJK UNIFIED IDEOGRAPH - ,0xBA65 ,0x69B7 //CJK UNIFIED IDEOGRAPH - ,0xBA66 ,0x69BB //CJK UNIFIED IDEOGRAPH - ,0xBA67 ,0x69AB //CJK UNIFIED IDEOGRAPH - ,0xBA68 ,0x69B4 //CJK UNIFIED IDEOGRAPH - ,0xBA69 ,0x69D0 //CJK UNIFIED IDEOGRAPH - ,0xBA6A ,0x69CD //CJK UNIFIED IDEOGRAPH - ,0xBA6B ,0x69AD //CJK UNIFIED IDEOGRAPH - ,0xBA6C ,0x69CC //CJK UNIFIED IDEOGRAPH - ,0xBA6D ,0x69A6 //CJK UNIFIED IDEOGRAPH - ,0xBA6E ,0x69C3 //CJK UNIFIED IDEOGRAPH - ,0xBA6F ,0x69A3 //CJK UNIFIED IDEOGRAPH - ,0xBA70 ,0x6B49 //CJK UNIFIED IDEOGRAPH - ,0xBA71 ,0x6B4C //CJK UNIFIED IDEOGRAPH - ,0xBA72 ,0x6C33 //CJK UNIFIED IDEOGRAPH - ,0xBA73 ,0x6F33 //CJK UNIFIED IDEOGRAPH - ,0xBA74 ,0x6F14 //CJK UNIFIED IDEOGRAPH - ,0xBA75 ,0x6EFE //CJK UNIFIED IDEOGRAPH - ,0xBA76 ,0x6F13 //CJK UNIFIED IDEOGRAPH - ,0xBA77 ,0x6EF4 //CJK UNIFIED IDEOGRAPH - ,0xBA78 ,0x6F29 //CJK UNIFIED IDEOGRAPH - ,0xBA79 ,0x6F3E //CJK UNIFIED IDEOGRAPH - ,0xBA7A ,0x6F20 //CJK UNIFIED IDEOGRAPH - ,0xBA7B ,0x6F2C //CJK UNIFIED IDEOGRAPH - ,0xBA7C ,0x6F0F //CJK UNIFIED IDEOGRAPH - ,0xBA7D ,0x6F02 //CJK UNIFIED IDEOGRAPH - ,0xBA7E ,0x6F22 //CJK UNIFIED IDEOGRAPH - ,0xBAA1 ,0x6EFF //CJK UNIFIED IDEOGRAPH - ,0xBAA2 ,0x6EEF //CJK UNIFIED IDEOGRAPH - ,0xBAA3 ,0x6F06 //CJK UNIFIED IDEOGRAPH - ,0xBAA4 ,0x6F31 //CJK UNIFIED IDEOGRAPH - ,0xBAA5 ,0x6F38 //CJK UNIFIED IDEOGRAPH - ,0xBAA6 ,0x6F32 //CJK UNIFIED IDEOGRAPH - ,0xBAA7 ,0x6F23 //CJK UNIFIED IDEOGRAPH - ,0xBAA8 ,0x6F15 //CJK UNIFIED IDEOGRAPH - ,0xBAA9 ,0x6F2B //CJK UNIFIED IDEOGRAPH - ,0xBAAA ,0x6F2F //CJK UNIFIED IDEOGRAPH - ,0xBAAB ,0x6F88 //CJK UNIFIED IDEOGRAPH - ,0xBAAC ,0x6F2A //CJK UNIFIED IDEOGRAPH - ,0xBAAD ,0x6EEC //CJK UNIFIED IDEOGRAPH - ,0xBAAE ,0x6F01 //CJK UNIFIED IDEOGRAPH - ,0xBAAF ,0x6EF2 //CJK UNIFIED IDEOGRAPH - ,0xBAB0 ,0x6ECC //CJK UNIFIED IDEOGRAPH - ,0xBAB1 ,0x6EF7 //CJK UNIFIED IDEOGRAPH - ,0xBAB2 ,0x7194 //CJK UNIFIED IDEOGRAPH - ,0xBAB3 ,0x7199 //CJK UNIFIED IDEOGRAPH - ,0xBAB4 ,0x717D //CJK UNIFIED IDEOGRAPH - ,0xBAB5 ,0x718A //CJK UNIFIED IDEOGRAPH - ,0xBAB6 ,0x7184 //CJK UNIFIED IDEOGRAPH - ,0xBAB7 ,0x7192 //CJK UNIFIED IDEOGRAPH - ,0xBAB8 ,0x723E //CJK UNIFIED IDEOGRAPH - ,0xBAB9 ,0x7292 //CJK UNIFIED IDEOGRAPH - ,0xBABA ,0x7296 //CJK UNIFIED IDEOGRAPH - ,0xBABB ,0x7344 //CJK UNIFIED IDEOGRAPH - ,0xBABC ,0x7350 //CJK UNIFIED IDEOGRAPH - ,0xBABD ,0x7464 //CJK UNIFIED IDEOGRAPH - ,0xBABE ,0x7463 //CJK UNIFIED IDEOGRAPH - ,0xBABF ,0x746A //CJK UNIFIED IDEOGRAPH - ,0xBAC0 ,0x7470 //CJK UNIFIED IDEOGRAPH - ,0xBAC1 ,0x746D //CJK UNIFIED IDEOGRAPH - ,0xBAC2 ,0x7504 //CJK UNIFIED IDEOGRAPH - ,0xBAC3 ,0x7591 //CJK UNIFIED IDEOGRAPH - ,0xBAC4 ,0x7627 //CJK UNIFIED IDEOGRAPH - ,0xBAC5 ,0x760D //CJK UNIFIED IDEOGRAPH - ,0xBAC6 ,0x760B //CJK UNIFIED IDEOGRAPH - ,0xBAC7 ,0x7609 //CJK UNIFIED IDEOGRAPH - ,0xBAC8 ,0x7613 //CJK UNIFIED IDEOGRAPH - ,0xBAC9 ,0x76E1 //CJK UNIFIED IDEOGRAPH - ,0xBACA ,0x76E3 //CJK UNIFIED IDEOGRAPH - ,0xBACB ,0x7784 //CJK UNIFIED IDEOGRAPH - ,0xBACC ,0x777D //CJK UNIFIED IDEOGRAPH - ,0xBACD ,0x777F //CJK UNIFIED IDEOGRAPH - ,0xBACE ,0x7761 //CJK UNIFIED IDEOGRAPH - ,0xBACF ,0x78C1 //CJK UNIFIED IDEOGRAPH - ,0xBAD0 ,0x789F //CJK UNIFIED IDEOGRAPH - ,0xBAD1 ,0x78A7 //CJK UNIFIED IDEOGRAPH - ,0xBAD2 ,0x78B3 //CJK UNIFIED IDEOGRAPH - ,0xBAD3 ,0x78A9 //CJK UNIFIED IDEOGRAPH - ,0xBAD4 ,0x78A3 //CJK UNIFIED IDEOGRAPH - ,0xBAD5 ,0x798E //CJK UNIFIED IDEOGRAPH - ,0xBAD6 ,0x798F //CJK UNIFIED IDEOGRAPH - ,0xBAD7 ,0x798D //CJK UNIFIED IDEOGRAPH - ,0xBAD8 ,0x7A2E //CJK UNIFIED IDEOGRAPH - ,0xBAD9 ,0x7A31 //CJK UNIFIED IDEOGRAPH - ,0xBADA ,0x7AAA //CJK UNIFIED IDEOGRAPH - ,0xBADB ,0x7AA9 //CJK UNIFIED IDEOGRAPH - ,0xBADC ,0x7AED //CJK UNIFIED IDEOGRAPH - ,0xBADD ,0x7AEF //CJK UNIFIED IDEOGRAPH - ,0xBADE ,0x7BA1 //CJK UNIFIED IDEOGRAPH - ,0xBADF ,0x7B95 //CJK UNIFIED IDEOGRAPH - ,0xBAE0 ,0x7B8B //CJK UNIFIED IDEOGRAPH - ,0xBAE1 ,0x7B75 //CJK UNIFIED IDEOGRAPH - ,0xBAE2 ,0x7B97 //CJK UNIFIED IDEOGRAPH - ,0xBAE3 ,0x7B9D //CJK UNIFIED IDEOGRAPH - ,0xBAE4 ,0x7B94 //CJK UNIFIED IDEOGRAPH - ,0xBAE5 ,0x7B8F //CJK UNIFIED IDEOGRAPH - ,0xBAE6 ,0x7BB8 //CJK UNIFIED IDEOGRAPH - ,0xBAE7 ,0x7B87 //CJK UNIFIED IDEOGRAPH - ,0xBAE8 ,0x7B84 //CJK UNIFIED IDEOGRAPH - ,0xBAE9 ,0x7CB9 //CJK UNIFIED IDEOGRAPH - ,0xBAEA ,0x7CBD //CJK UNIFIED IDEOGRAPH - ,0xBAEB ,0x7CBE //CJK UNIFIED IDEOGRAPH - ,0xBAEC ,0x7DBB //CJK UNIFIED IDEOGRAPH - ,0xBAED ,0x7DB0 //CJK UNIFIED IDEOGRAPH - ,0xBAEE ,0x7D9C //CJK UNIFIED IDEOGRAPH - ,0xBAEF ,0x7DBD //CJK UNIFIED IDEOGRAPH - ,0xBAF0 ,0x7DBE //CJK UNIFIED IDEOGRAPH - ,0xBAF1 ,0x7DA0 //CJK UNIFIED IDEOGRAPH - ,0xBAF2 ,0x7DCA //CJK UNIFIED IDEOGRAPH - ,0xBAF3 ,0x7DB4 //CJK UNIFIED IDEOGRAPH - ,0xBAF4 ,0x7DB2 //CJK UNIFIED IDEOGRAPH - ,0xBAF5 ,0x7DB1 //CJK UNIFIED IDEOGRAPH - ,0xBAF6 ,0x7DBA //CJK UNIFIED IDEOGRAPH - ,0xBAF7 ,0x7DA2 //CJK UNIFIED IDEOGRAPH - ,0xBAF8 ,0x7DBF //CJK UNIFIED IDEOGRAPH - ,0xBAF9 ,0x7DB5 //CJK UNIFIED IDEOGRAPH - ,0xBAFA ,0x7DB8 //CJK UNIFIED IDEOGRAPH - ,0xBAFB ,0x7DAD //CJK UNIFIED IDEOGRAPH - ,0xBAFC ,0x7DD2 //CJK UNIFIED IDEOGRAPH - ,0xBAFD ,0x7DC7 //CJK UNIFIED IDEOGRAPH - ,0xBAFE ,0x7DAC //CJK UNIFIED IDEOGRAPH - ,0xBB40 ,0x7F70 //CJK UNIFIED IDEOGRAPH - ,0xBB41 ,0x7FE0 //CJK UNIFIED IDEOGRAPH - ,0xBB42 ,0x7FE1 //CJK UNIFIED IDEOGRAPH - ,0xBB43 ,0x7FDF //CJK UNIFIED IDEOGRAPH - ,0xBB44 ,0x805E //CJK UNIFIED IDEOGRAPH - ,0xBB45 ,0x805A //CJK UNIFIED IDEOGRAPH - ,0xBB46 ,0x8087 //CJK UNIFIED IDEOGRAPH - ,0xBB47 ,0x8150 //CJK UNIFIED IDEOGRAPH - ,0xBB48 ,0x8180 //CJK UNIFIED IDEOGRAPH - ,0xBB49 ,0x818F //CJK UNIFIED IDEOGRAPH - ,0xBB4A ,0x8188 //CJK UNIFIED IDEOGRAPH - ,0xBB4B ,0x818A //CJK UNIFIED IDEOGRAPH - ,0xBB4C ,0x817F //CJK UNIFIED IDEOGRAPH - ,0xBB4D ,0x8182 //CJK UNIFIED IDEOGRAPH - ,0xBB4E ,0x81E7 //CJK UNIFIED IDEOGRAPH - ,0xBB4F ,0x81FA //CJK UNIFIED IDEOGRAPH - ,0xBB50 ,0x8207 //CJK UNIFIED IDEOGRAPH - ,0xBB51 ,0x8214 //CJK UNIFIED IDEOGRAPH - ,0xBB52 ,0x821E //CJK UNIFIED IDEOGRAPH - ,0xBB53 ,0x824B //CJK UNIFIED IDEOGRAPH - ,0xBB54 ,0x84C9 //CJK UNIFIED IDEOGRAPH - ,0xBB55 ,0x84BF //CJK UNIFIED IDEOGRAPH - ,0xBB56 ,0x84C6 //CJK UNIFIED IDEOGRAPH - ,0xBB57 ,0x84C4 //CJK UNIFIED IDEOGRAPH - ,0xBB58 ,0x8499 //CJK UNIFIED IDEOGRAPH - ,0xBB59 ,0x849E //CJK UNIFIED IDEOGRAPH - ,0xBB5A ,0x84B2 //CJK UNIFIED IDEOGRAPH - ,0xBB5B ,0x849C //CJK UNIFIED IDEOGRAPH - ,0xBB5C ,0x84CB //CJK UNIFIED IDEOGRAPH - ,0xBB5D ,0x84B8 //CJK UNIFIED IDEOGRAPH - ,0xBB5E ,0x84C0 //CJK UNIFIED IDEOGRAPH - ,0xBB5F ,0x84D3 //CJK UNIFIED IDEOGRAPH - ,0xBB60 ,0x8490 //CJK UNIFIED IDEOGRAPH - ,0xBB61 ,0x84BC //CJK UNIFIED IDEOGRAPH - ,0xBB62 ,0x84D1 //CJK UNIFIED IDEOGRAPH - ,0xBB63 ,0x84CA //CJK UNIFIED IDEOGRAPH - ,0xBB64 ,0x873F //CJK UNIFIED IDEOGRAPH - ,0xBB65 ,0x871C //CJK UNIFIED IDEOGRAPH - ,0xBB66 ,0x873B //CJK UNIFIED IDEOGRAPH - ,0xBB67 ,0x8722 //CJK UNIFIED IDEOGRAPH - ,0xBB68 ,0x8725 //CJK UNIFIED IDEOGRAPH - ,0xBB69 ,0x8734 //CJK UNIFIED IDEOGRAPH - ,0xBB6A ,0x8718 //CJK UNIFIED IDEOGRAPH - ,0xBB6B ,0x8755 //CJK UNIFIED IDEOGRAPH - ,0xBB6C ,0x8737 //CJK UNIFIED IDEOGRAPH - ,0xBB6D ,0x8729 //CJK UNIFIED IDEOGRAPH - ,0xBB6E ,0x88F3 //CJK UNIFIED IDEOGRAPH - ,0xBB6F ,0x8902 //CJK UNIFIED IDEOGRAPH - ,0xBB70 ,0x88F4 //CJK UNIFIED IDEOGRAPH - ,0xBB71 ,0x88F9 //CJK UNIFIED IDEOGRAPH - ,0xBB72 ,0x88F8 //CJK UNIFIED IDEOGRAPH - ,0xBB73 ,0x88FD //CJK UNIFIED IDEOGRAPH - ,0xBB74 ,0x88E8 //CJK UNIFIED IDEOGRAPH - ,0xBB75 ,0x891A //CJK UNIFIED IDEOGRAPH - ,0xBB76 ,0x88EF //CJK UNIFIED IDEOGRAPH - ,0xBB77 ,0x8AA6 //CJK UNIFIED IDEOGRAPH - ,0xBB78 ,0x8A8C //CJK UNIFIED IDEOGRAPH - ,0xBB79 ,0x8A9E //CJK UNIFIED IDEOGRAPH - ,0xBB7A ,0x8AA3 //CJK UNIFIED IDEOGRAPH - ,0xBB7B ,0x8A8D //CJK UNIFIED IDEOGRAPH - ,0xBB7C ,0x8AA1 //CJK UNIFIED IDEOGRAPH - ,0xBB7D ,0x8A93 //CJK UNIFIED IDEOGRAPH - ,0xBB7E ,0x8AA4 //CJK UNIFIED IDEOGRAPH - ,0xBBA1 ,0x8AAA //CJK UNIFIED IDEOGRAPH - ,0xBBA2 ,0x8AA5 //CJK UNIFIED IDEOGRAPH - ,0xBBA3 ,0x8AA8 //CJK UNIFIED IDEOGRAPH - ,0xBBA4 ,0x8A98 //CJK UNIFIED IDEOGRAPH - ,0xBBA5 ,0x8A91 //CJK UNIFIED IDEOGRAPH - ,0xBBA6 ,0x8A9A //CJK UNIFIED IDEOGRAPH - ,0xBBA7 ,0x8AA7 //CJK UNIFIED IDEOGRAPH - ,0xBBA8 ,0x8C6A //CJK UNIFIED IDEOGRAPH - ,0xBBA9 ,0x8C8D //CJK UNIFIED IDEOGRAPH - ,0xBBAA ,0x8C8C //CJK UNIFIED IDEOGRAPH - ,0xBBAB ,0x8CD3 //CJK UNIFIED IDEOGRAPH - ,0xBBAC ,0x8CD1 //CJK UNIFIED IDEOGRAPH - ,0xBBAD ,0x8CD2 //CJK UNIFIED IDEOGRAPH - ,0xBBAE ,0x8D6B //CJK UNIFIED IDEOGRAPH - ,0xBBAF ,0x8D99 //CJK UNIFIED IDEOGRAPH - ,0xBBB0 ,0x8D95 //CJK UNIFIED IDEOGRAPH - ,0xBBB1 ,0x8DFC //CJK UNIFIED IDEOGRAPH - ,0xBBB2 ,0x8F14 //CJK UNIFIED IDEOGRAPH - ,0xBBB3 ,0x8F12 //CJK UNIFIED IDEOGRAPH - ,0xBBB4 ,0x8F15 //CJK UNIFIED IDEOGRAPH - ,0xBBB5 ,0x8F13 //CJK UNIFIED IDEOGRAPH - ,0xBBB6 ,0x8FA3 //CJK UNIFIED IDEOGRAPH - ,0xBBB7 ,0x9060 //CJK UNIFIED IDEOGRAPH - ,0xBBB8 ,0x9058 //CJK UNIFIED IDEOGRAPH - ,0xBBB9 ,0x905C //CJK UNIFIED IDEOGRAPH - ,0xBBBA ,0x9063 //CJK UNIFIED IDEOGRAPH - ,0xBBBB ,0x9059 //CJK UNIFIED IDEOGRAPH - ,0xBBBC ,0x905E //CJK UNIFIED IDEOGRAPH - ,0xBBBD ,0x9062 //CJK UNIFIED IDEOGRAPH - ,0xBBBE ,0x905D //CJK UNIFIED IDEOGRAPH - ,0xBBBF ,0x905B //CJK UNIFIED IDEOGRAPH - ,0xBBC0 ,0x9119 //CJK UNIFIED IDEOGRAPH - ,0xBBC1 ,0x9118 //CJK UNIFIED IDEOGRAPH - ,0xBBC2 ,0x911E //CJK UNIFIED IDEOGRAPH - ,0xBBC3 ,0x9175 //CJK UNIFIED IDEOGRAPH - ,0xBBC4 ,0x9178 //CJK UNIFIED IDEOGRAPH - ,0xBBC5 ,0x9177 //CJK UNIFIED IDEOGRAPH - ,0xBBC6 ,0x9174 //CJK UNIFIED IDEOGRAPH - ,0xBBC7 ,0x9278 //CJK UNIFIED IDEOGRAPH - ,0xBBC8 ,0x9280 //CJK UNIFIED IDEOGRAPH - ,0xBBC9 ,0x9285 //CJK UNIFIED IDEOGRAPH - ,0xBBCA ,0x9298 //CJK UNIFIED IDEOGRAPH - ,0xBBCB ,0x9296 //CJK UNIFIED IDEOGRAPH - ,0xBBCC ,0x927B //CJK UNIFIED IDEOGRAPH - ,0xBBCD ,0x9293 //CJK UNIFIED IDEOGRAPH - ,0xBBCE ,0x929C //CJK UNIFIED IDEOGRAPH - ,0xBBCF ,0x92A8 //CJK UNIFIED IDEOGRAPH - ,0xBBD0 ,0x927C //CJK UNIFIED IDEOGRAPH - ,0xBBD1 ,0x9291 //CJK UNIFIED IDEOGRAPH - ,0xBBD2 ,0x95A1 //CJK UNIFIED IDEOGRAPH - ,0xBBD3 ,0x95A8 //CJK UNIFIED IDEOGRAPH - ,0xBBD4 ,0x95A9 //CJK UNIFIED IDEOGRAPH - ,0xBBD5 ,0x95A3 //CJK UNIFIED IDEOGRAPH - ,0xBBD6 ,0x95A5 //CJK UNIFIED IDEOGRAPH - ,0xBBD7 ,0x95A4 //CJK UNIFIED IDEOGRAPH - ,0xBBD8 ,0x9699 //CJK UNIFIED IDEOGRAPH - ,0xBBD9 ,0x969C //CJK UNIFIED IDEOGRAPH - ,0xBBDA ,0x969B //CJK UNIFIED IDEOGRAPH - ,0xBBDB ,0x96CC //CJK UNIFIED IDEOGRAPH - ,0xBBDC ,0x96D2 //CJK UNIFIED IDEOGRAPH - ,0xBBDD ,0x9700 //CJK UNIFIED IDEOGRAPH - ,0xBBDE ,0x977C //CJK UNIFIED IDEOGRAPH - ,0xBBDF ,0x9785 //CJK UNIFIED IDEOGRAPH - ,0xBBE0 ,0x97F6 //CJK UNIFIED IDEOGRAPH - ,0xBBE1 ,0x9817 //CJK UNIFIED IDEOGRAPH - ,0xBBE2 ,0x9818 //CJK UNIFIED IDEOGRAPH - ,0xBBE3 ,0x98AF //CJK UNIFIED IDEOGRAPH - ,0xBBE4 ,0x98B1 //CJK UNIFIED IDEOGRAPH - ,0xBBE5 ,0x9903 //CJK UNIFIED IDEOGRAPH - ,0xBBE6 ,0x9905 //CJK UNIFIED IDEOGRAPH - ,0xBBE7 ,0x990C //CJK UNIFIED IDEOGRAPH - ,0xBBE8 ,0x9909 //CJK UNIFIED IDEOGRAPH - ,0xBBE9 ,0x99C1 //CJK UNIFIED IDEOGRAPH - ,0xBBEA ,0x9AAF //CJK UNIFIED IDEOGRAPH - ,0xBBEB ,0x9AB0 //CJK UNIFIED IDEOGRAPH - ,0xBBEC ,0x9AE6 //CJK UNIFIED IDEOGRAPH - ,0xBBED ,0x9B41 //CJK UNIFIED IDEOGRAPH - ,0xBBEE ,0x9B42 //CJK UNIFIED IDEOGRAPH - ,0xBBEF ,0x9CF4 //CJK UNIFIED IDEOGRAPH - ,0xBBF0 ,0x9CF6 //CJK UNIFIED IDEOGRAPH - ,0xBBF1 ,0x9CF3 //CJK UNIFIED IDEOGRAPH - ,0xBBF2 ,0x9EBC //CJK UNIFIED IDEOGRAPH - ,0xBBF3 ,0x9F3B //CJK UNIFIED IDEOGRAPH - ,0xBBF4 ,0x9F4A //CJK UNIFIED IDEOGRAPH - ,0xBBF5 ,0x5104 //CJK UNIFIED IDEOGRAPH - ,0xBBF6 ,0x5100 //CJK UNIFIED IDEOGRAPH - ,0xBBF7 ,0x50FB //CJK UNIFIED IDEOGRAPH - ,0xBBF8 ,0x50F5 //CJK UNIFIED IDEOGRAPH - ,0xBBF9 ,0x50F9 //CJK UNIFIED IDEOGRAPH - ,0xBBFA ,0x5102 //CJK UNIFIED IDEOGRAPH - ,0xBBFB ,0x5108 //CJK UNIFIED IDEOGRAPH - ,0xBBFC ,0x5109 //CJK UNIFIED IDEOGRAPH - ,0xBBFD ,0x5105 //CJK UNIFIED IDEOGRAPH - ,0xBBFE ,0x51DC //CJK UNIFIED IDEOGRAPH - ,0xBC40 ,0x5287 //CJK UNIFIED IDEOGRAPH - ,0xBC41 ,0x5288 //CJK UNIFIED IDEOGRAPH - ,0xBC42 ,0x5289 //CJK UNIFIED IDEOGRAPH - ,0xBC43 ,0x528D //CJK UNIFIED IDEOGRAPH - ,0xBC44 ,0x528A //CJK UNIFIED IDEOGRAPH - ,0xBC45 ,0x52F0 //CJK UNIFIED IDEOGRAPH - ,0xBC46 ,0x53B2 //CJK UNIFIED IDEOGRAPH - ,0xBC47 ,0x562E //CJK UNIFIED IDEOGRAPH - ,0xBC48 ,0x563B //CJK UNIFIED IDEOGRAPH - ,0xBC49 ,0x5639 //CJK UNIFIED IDEOGRAPH - ,0xBC4A ,0x5632 //CJK UNIFIED IDEOGRAPH - ,0xBC4B ,0x563F //CJK UNIFIED IDEOGRAPH - ,0xBC4C ,0x5634 //CJK UNIFIED IDEOGRAPH - ,0xBC4D ,0x5629 //CJK UNIFIED IDEOGRAPH - ,0xBC4E ,0x5653 //CJK UNIFIED IDEOGRAPH - ,0xBC4F ,0x564E //CJK UNIFIED IDEOGRAPH - ,0xBC50 ,0x5657 //CJK UNIFIED IDEOGRAPH - ,0xBC51 ,0x5674 //CJK UNIFIED IDEOGRAPH - ,0xBC52 ,0x5636 //CJK UNIFIED IDEOGRAPH - ,0xBC53 ,0x562F //CJK UNIFIED IDEOGRAPH - ,0xBC54 ,0x5630 //CJK UNIFIED IDEOGRAPH - ,0xBC55 ,0x5880 //CJK UNIFIED IDEOGRAPH - ,0xBC56 ,0x589F //CJK UNIFIED IDEOGRAPH - ,0xBC57 ,0x589E //CJK UNIFIED IDEOGRAPH - ,0xBC58 ,0x58B3 //CJK UNIFIED IDEOGRAPH - ,0xBC59 ,0x589C //CJK UNIFIED IDEOGRAPH - ,0xBC5A ,0x58AE //CJK UNIFIED IDEOGRAPH - ,0xBC5B ,0x58A9 //CJK UNIFIED IDEOGRAPH - ,0xBC5C ,0x58A6 //CJK UNIFIED IDEOGRAPH - ,0xBC5D ,0x596D //CJK UNIFIED IDEOGRAPH - ,0xBC5E ,0x5B09 //CJK UNIFIED IDEOGRAPH - ,0xBC5F ,0x5AFB //CJK UNIFIED IDEOGRAPH - ,0xBC60 ,0x5B0B //CJK UNIFIED IDEOGRAPH - ,0xBC61 ,0x5AF5 //CJK UNIFIED IDEOGRAPH - ,0xBC62 ,0x5B0C //CJK UNIFIED IDEOGRAPH - ,0xBC63 ,0x5B08 //CJK UNIFIED IDEOGRAPH - ,0xBC64 ,0x5BEE //CJK UNIFIED IDEOGRAPH - ,0xBC65 ,0x5BEC //CJK UNIFIED IDEOGRAPH - ,0xBC66 ,0x5BE9 //CJK UNIFIED IDEOGRAPH - ,0xBC67 ,0x5BEB //CJK UNIFIED IDEOGRAPH - ,0xBC68 ,0x5C64 //CJK UNIFIED IDEOGRAPH - ,0xBC69 ,0x5C65 //CJK UNIFIED IDEOGRAPH - ,0xBC6A ,0x5D9D //CJK UNIFIED IDEOGRAPH - ,0xBC6B ,0x5D94 //CJK UNIFIED IDEOGRAPH - ,0xBC6C ,0x5E62 //CJK UNIFIED IDEOGRAPH - ,0xBC6D ,0x5E5F //CJK UNIFIED IDEOGRAPH - ,0xBC6E ,0x5E61 //CJK UNIFIED IDEOGRAPH - ,0xBC6F ,0x5EE2 //CJK UNIFIED IDEOGRAPH - ,0xBC70 ,0x5EDA //CJK UNIFIED IDEOGRAPH - ,0xBC71 ,0x5EDF //CJK UNIFIED IDEOGRAPH - ,0xBC72 ,0x5EDD //CJK UNIFIED IDEOGRAPH - ,0xBC73 ,0x5EE3 //CJK UNIFIED IDEOGRAPH - ,0xBC74 ,0x5EE0 //CJK UNIFIED IDEOGRAPH - ,0xBC75 ,0x5F48 //CJK UNIFIED IDEOGRAPH - ,0xBC76 ,0x5F71 //CJK UNIFIED IDEOGRAPH - ,0xBC77 ,0x5FB7 //CJK UNIFIED IDEOGRAPH - ,0xBC78 ,0x5FB5 //CJK UNIFIED IDEOGRAPH - ,0xBC79 ,0x6176 //CJK UNIFIED IDEOGRAPH - ,0xBC7A ,0x6167 //CJK UNIFIED IDEOGRAPH - ,0xBC7B ,0x616E //CJK UNIFIED IDEOGRAPH - ,0xBC7C ,0x615D //CJK UNIFIED IDEOGRAPH - ,0xBC7D ,0x6155 //CJK UNIFIED IDEOGRAPH - ,0xBC7E ,0x6182 //CJK UNIFIED IDEOGRAPH - ,0xBCA1 ,0x617C //CJK UNIFIED IDEOGRAPH - ,0xBCA2 ,0x6170 //CJK UNIFIED IDEOGRAPH - ,0xBCA3 ,0x616B //CJK UNIFIED IDEOGRAPH - ,0xBCA4 ,0x617E //CJK UNIFIED IDEOGRAPH - ,0xBCA5 ,0x61A7 //CJK UNIFIED IDEOGRAPH - ,0xBCA6 ,0x6190 //CJK UNIFIED IDEOGRAPH - ,0xBCA7 ,0x61AB //CJK UNIFIED IDEOGRAPH - ,0xBCA8 ,0x618E //CJK UNIFIED IDEOGRAPH - ,0xBCA9 ,0x61AC //CJK UNIFIED IDEOGRAPH - ,0xBCAA ,0x619A //CJK UNIFIED IDEOGRAPH - ,0xBCAB ,0x61A4 //CJK UNIFIED IDEOGRAPH - ,0xBCAC ,0x6194 //CJK UNIFIED IDEOGRAPH - ,0xBCAD ,0x61AE //CJK UNIFIED IDEOGRAPH - ,0xBCAE ,0x622E //CJK UNIFIED IDEOGRAPH - ,0xBCAF ,0x6469 //CJK UNIFIED IDEOGRAPH - ,0xBCB0 ,0x646F //CJK UNIFIED IDEOGRAPH - ,0xBCB1 ,0x6479 //CJK UNIFIED IDEOGRAPH - ,0xBCB2 ,0x649E //CJK UNIFIED IDEOGRAPH - ,0xBCB3 ,0x64B2 //CJK UNIFIED IDEOGRAPH - ,0xBCB4 ,0x6488 //CJK UNIFIED IDEOGRAPH - ,0xBCB5 ,0x6490 //CJK UNIFIED IDEOGRAPH - ,0xBCB6 ,0x64B0 //CJK UNIFIED IDEOGRAPH - ,0xBCB7 ,0x64A5 //CJK UNIFIED IDEOGRAPH - ,0xBCB8 ,0x6493 //CJK UNIFIED IDEOGRAPH - ,0xBCB9 ,0x6495 //CJK UNIFIED IDEOGRAPH - ,0xBCBA ,0x64A9 //CJK UNIFIED IDEOGRAPH - ,0xBCBB ,0x6492 //CJK UNIFIED IDEOGRAPH - ,0xBCBC ,0x64AE //CJK UNIFIED IDEOGRAPH - ,0xBCBD ,0x64AD //CJK UNIFIED IDEOGRAPH - ,0xBCBE ,0x64AB //CJK UNIFIED IDEOGRAPH - ,0xBCBF ,0x649A //CJK UNIFIED IDEOGRAPH - ,0xBCC0 ,0x64AC //CJK UNIFIED IDEOGRAPH - ,0xBCC1 ,0x6499 //CJK UNIFIED IDEOGRAPH - ,0xBCC2 ,0x64A2 //CJK UNIFIED IDEOGRAPH - ,0xBCC3 ,0x64B3 //CJK UNIFIED IDEOGRAPH - ,0xBCC4 ,0x6575 //CJK UNIFIED IDEOGRAPH - ,0xBCC5 ,0x6577 //CJK UNIFIED IDEOGRAPH - ,0xBCC6 ,0x6578 //CJK UNIFIED IDEOGRAPH - ,0xBCC7 ,0x66AE //CJK UNIFIED IDEOGRAPH - ,0xBCC8 ,0x66AB //CJK UNIFIED IDEOGRAPH - ,0xBCC9 ,0x66B4 //CJK UNIFIED IDEOGRAPH - ,0xBCCA ,0x66B1 //CJK UNIFIED IDEOGRAPH - ,0xBCCB ,0x6A23 //CJK UNIFIED IDEOGRAPH - ,0xBCCC ,0x6A1F //CJK UNIFIED IDEOGRAPH - ,0xBCCD ,0x69E8 //CJK UNIFIED IDEOGRAPH - ,0xBCCE ,0x6A01 //CJK UNIFIED IDEOGRAPH - ,0xBCCF ,0x6A1E //CJK UNIFIED IDEOGRAPH - ,0xBCD0 ,0x6A19 //CJK UNIFIED IDEOGRAPH - ,0xBCD1 ,0x69FD //CJK UNIFIED IDEOGRAPH - ,0xBCD2 ,0x6A21 //CJK UNIFIED IDEOGRAPH - ,0xBCD3 ,0x6A13 //CJK UNIFIED IDEOGRAPH - ,0xBCD4 ,0x6A0A //CJK UNIFIED IDEOGRAPH - ,0xBCD5 ,0x69F3 //CJK UNIFIED IDEOGRAPH - ,0xBCD6 ,0x6A02 //CJK UNIFIED IDEOGRAPH - ,0xBCD7 ,0x6A05 //CJK UNIFIED IDEOGRAPH - ,0xBCD8 ,0x69ED //CJK UNIFIED IDEOGRAPH - ,0xBCD9 ,0x6A11 //CJK UNIFIED IDEOGRAPH - ,0xBCDA ,0x6B50 //CJK UNIFIED IDEOGRAPH - ,0xBCDB ,0x6B4E //CJK UNIFIED IDEOGRAPH - ,0xBCDC ,0x6BA4 //CJK UNIFIED IDEOGRAPH - ,0xBCDD ,0x6BC5 //CJK UNIFIED IDEOGRAPH - ,0xBCDE ,0x6BC6 //CJK UNIFIED IDEOGRAPH - ,0xBCDF ,0x6F3F //CJK UNIFIED IDEOGRAPH - ,0xBCE0 ,0x6F7C //CJK UNIFIED IDEOGRAPH - ,0xBCE1 ,0x6F84 //CJK UNIFIED IDEOGRAPH - ,0xBCE2 ,0x6F51 //CJK UNIFIED IDEOGRAPH - ,0xBCE3 ,0x6F66 //CJK UNIFIED IDEOGRAPH - ,0xBCE4 ,0x6F54 //CJK UNIFIED IDEOGRAPH - ,0xBCE5 ,0x6F86 //CJK UNIFIED IDEOGRAPH - ,0xBCE6 ,0x6F6D //CJK UNIFIED IDEOGRAPH - ,0xBCE7 ,0x6F5B //CJK UNIFIED IDEOGRAPH - ,0xBCE8 ,0x6F78 //CJK UNIFIED IDEOGRAPH - ,0xBCE9 ,0x6F6E //CJK UNIFIED IDEOGRAPH - ,0xBCEA ,0x6F8E //CJK UNIFIED IDEOGRAPH - ,0xBCEB ,0x6F7A //CJK UNIFIED IDEOGRAPH - ,0xBCEC ,0x6F70 //CJK UNIFIED IDEOGRAPH - ,0xBCED ,0x6F64 //CJK UNIFIED IDEOGRAPH - ,0xBCEE ,0x6F97 //CJK UNIFIED IDEOGRAPH - ,0xBCEF ,0x6F58 //CJK UNIFIED IDEOGRAPH - ,0xBCF0 ,0x6ED5 //CJK UNIFIED IDEOGRAPH - ,0xBCF1 ,0x6F6F //CJK UNIFIED IDEOGRAPH - ,0xBCF2 ,0x6F60 //CJK UNIFIED IDEOGRAPH - ,0xBCF3 ,0x6F5F //CJK UNIFIED IDEOGRAPH - ,0xBCF4 ,0x719F //CJK UNIFIED IDEOGRAPH - ,0xBCF5 ,0x71AC //CJK UNIFIED IDEOGRAPH - ,0xBCF6 ,0x71B1 //CJK UNIFIED IDEOGRAPH - ,0xBCF7 ,0x71A8 //CJK UNIFIED IDEOGRAPH - ,0xBCF8 ,0x7256 //CJK UNIFIED IDEOGRAPH - ,0xBCF9 ,0x729B //CJK UNIFIED IDEOGRAPH - ,0xBCFA ,0x734E //CJK UNIFIED IDEOGRAPH - ,0xBCFB ,0x7357 //CJK UNIFIED IDEOGRAPH - ,0xBCFC ,0x7469 //CJK UNIFIED IDEOGRAPH - ,0xBCFD ,0x748B //CJK UNIFIED IDEOGRAPH - ,0xBCFE ,0x7483 //CJK UNIFIED IDEOGRAPH - ,0xBD40 ,0x747E //CJK UNIFIED IDEOGRAPH - ,0xBD41 ,0x7480 //CJK UNIFIED IDEOGRAPH - ,0xBD42 ,0x757F //CJK UNIFIED IDEOGRAPH - ,0xBD43 ,0x7620 //CJK UNIFIED IDEOGRAPH - ,0xBD44 ,0x7629 //CJK UNIFIED IDEOGRAPH - ,0xBD45 ,0x761F //CJK UNIFIED IDEOGRAPH - ,0xBD46 ,0x7624 //CJK UNIFIED IDEOGRAPH - ,0xBD47 ,0x7626 //CJK UNIFIED IDEOGRAPH - ,0xBD48 ,0x7621 //CJK UNIFIED IDEOGRAPH - ,0xBD49 ,0x7622 //CJK UNIFIED IDEOGRAPH - ,0xBD4A ,0x769A //CJK UNIFIED IDEOGRAPH - ,0xBD4B ,0x76BA //CJK UNIFIED IDEOGRAPH - ,0xBD4C ,0x76E4 //CJK UNIFIED IDEOGRAPH - ,0xBD4D ,0x778E //CJK UNIFIED IDEOGRAPH - ,0xBD4E ,0x7787 //CJK UNIFIED IDEOGRAPH - ,0xBD4F ,0x778C //CJK UNIFIED IDEOGRAPH - ,0xBD50 ,0x7791 //CJK UNIFIED IDEOGRAPH - ,0xBD51 ,0x778B //CJK UNIFIED IDEOGRAPH - ,0xBD52 ,0x78CB //CJK UNIFIED IDEOGRAPH - ,0xBD53 ,0x78C5 //CJK UNIFIED IDEOGRAPH - ,0xBD54 ,0x78BA //CJK UNIFIED IDEOGRAPH - ,0xBD55 ,0x78CA //CJK UNIFIED IDEOGRAPH - ,0xBD56 ,0x78BE //CJK UNIFIED IDEOGRAPH - ,0xBD57 ,0x78D5 //CJK UNIFIED IDEOGRAPH - ,0xBD58 ,0x78BC //CJK UNIFIED IDEOGRAPH - ,0xBD59 ,0x78D0 //CJK UNIFIED IDEOGRAPH - ,0xBD5A ,0x7A3F //CJK UNIFIED IDEOGRAPH - ,0xBD5B ,0x7A3C //CJK UNIFIED IDEOGRAPH - ,0xBD5C ,0x7A40 //CJK UNIFIED IDEOGRAPH - ,0xBD5D ,0x7A3D //CJK UNIFIED IDEOGRAPH - ,0xBD5E ,0x7A37 //CJK UNIFIED IDEOGRAPH - ,0xBD5F ,0x7A3B //CJK UNIFIED IDEOGRAPH - ,0xBD60 ,0x7AAF //CJK UNIFIED IDEOGRAPH - ,0xBD61 ,0x7AAE //CJK UNIFIED IDEOGRAPH - ,0xBD62 ,0x7BAD //CJK UNIFIED IDEOGRAPH - ,0xBD63 ,0x7BB1 //CJK UNIFIED IDEOGRAPH - ,0xBD64 ,0x7BC4 //CJK UNIFIED IDEOGRAPH - ,0xBD65 ,0x7BB4 //CJK UNIFIED IDEOGRAPH - ,0xBD66 ,0x7BC6 //CJK UNIFIED IDEOGRAPH - ,0xBD67 ,0x7BC7 //CJK UNIFIED IDEOGRAPH - ,0xBD68 ,0x7BC1 //CJK UNIFIED IDEOGRAPH - ,0xBD69 ,0x7BA0 //CJK UNIFIED IDEOGRAPH - ,0xBD6A ,0x7BCC //CJK UNIFIED IDEOGRAPH - ,0xBD6B ,0x7CCA //CJK UNIFIED IDEOGRAPH - ,0xBD6C ,0x7DE0 //CJK UNIFIED IDEOGRAPH - ,0xBD6D ,0x7DF4 //CJK UNIFIED IDEOGRAPH - ,0xBD6E ,0x7DEF //CJK UNIFIED IDEOGRAPH - ,0xBD6F ,0x7DFB //CJK UNIFIED IDEOGRAPH - ,0xBD70 ,0x7DD8 //CJK UNIFIED IDEOGRAPH - ,0xBD71 ,0x7DEC //CJK UNIFIED IDEOGRAPH - ,0xBD72 ,0x7DDD //CJK UNIFIED IDEOGRAPH - ,0xBD73 ,0x7DE8 //CJK UNIFIED IDEOGRAPH - ,0xBD74 ,0x7DE3 //CJK UNIFIED IDEOGRAPH - ,0xBD75 ,0x7DDA //CJK UNIFIED IDEOGRAPH - ,0xBD76 ,0x7DDE //CJK UNIFIED IDEOGRAPH - ,0xBD77 ,0x7DE9 //CJK UNIFIED IDEOGRAPH - ,0xBD78 ,0x7D9E //CJK UNIFIED IDEOGRAPH - ,0xBD79 ,0x7DD9 //CJK UNIFIED IDEOGRAPH - ,0xBD7A ,0x7DF2 //CJK UNIFIED IDEOGRAPH - ,0xBD7B ,0x7DF9 //CJK UNIFIED IDEOGRAPH - ,0xBD7C ,0x7F75 //CJK UNIFIED IDEOGRAPH - ,0xBD7D ,0x7F77 //CJK UNIFIED IDEOGRAPH - ,0xBD7E ,0x7FAF //CJK UNIFIED IDEOGRAPH - ,0xBDA1 ,0x7FE9 //CJK UNIFIED IDEOGRAPH - ,0xBDA2 ,0x8026 //CJK UNIFIED IDEOGRAPH - ,0xBDA3 ,0x819B //CJK UNIFIED IDEOGRAPH - ,0xBDA4 ,0x819C //CJK UNIFIED IDEOGRAPH - ,0xBDA5 ,0x819D //CJK UNIFIED IDEOGRAPH - ,0xBDA6 ,0x81A0 //CJK UNIFIED IDEOGRAPH - ,0xBDA7 ,0x819A //CJK UNIFIED IDEOGRAPH - ,0xBDA8 ,0x8198 //CJK UNIFIED IDEOGRAPH - ,0xBDA9 ,0x8517 //CJK UNIFIED IDEOGRAPH - ,0xBDAA ,0x853D //CJK UNIFIED IDEOGRAPH - ,0xBDAB ,0x851A //CJK UNIFIED IDEOGRAPH - ,0xBDAC ,0x84EE //CJK UNIFIED IDEOGRAPH - ,0xBDAD ,0x852C //CJK UNIFIED IDEOGRAPH - ,0xBDAE ,0x852D //CJK UNIFIED IDEOGRAPH - ,0xBDAF ,0x8513 //CJK UNIFIED IDEOGRAPH - ,0xBDB0 ,0x8511 //CJK UNIFIED IDEOGRAPH - ,0xBDB1 ,0x8523 //CJK UNIFIED IDEOGRAPH - ,0xBDB2 ,0x8521 //CJK UNIFIED IDEOGRAPH - ,0xBDB3 ,0x8514 //CJK UNIFIED IDEOGRAPH - ,0xBDB4 ,0x84EC //CJK UNIFIED IDEOGRAPH - ,0xBDB5 ,0x8525 //CJK UNIFIED IDEOGRAPH - ,0xBDB6 ,0x84FF //CJK UNIFIED IDEOGRAPH - ,0xBDB7 ,0x8506 //CJK UNIFIED IDEOGRAPH - ,0xBDB8 ,0x8782 //CJK UNIFIED IDEOGRAPH - ,0xBDB9 ,0x8774 //CJK UNIFIED IDEOGRAPH - ,0xBDBA ,0x8776 //CJK UNIFIED IDEOGRAPH - ,0xBDBB ,0x8760 //CJK UNIFIED IDEOGRAPH - ,0xBDBC ,0x8766 //CJK UNIFIED IDEOGRAPH - ,0xBDBD ,0x8778 //CJK UNIFIED IDEOGRAPH - ,0xBDBE ,0x8768 //CJK UNIFIED IDEOGRAPH - ,0xBDBF ,0x8759 //CJK UNIFIED IDEOGRAPH - ,0xBDC0 ,0x8757 //CJK UNIFIED IDEOGRAPH - ,0xBDC1 ,0x874C //CJK UNIFIED IDEOGRAPH - ,0xBDC2 ,0x8753 //CJK UNIFIED IDEOGRAPH - ,0xBDC3 ,0x885B //CJK UNIFIED IDEOGRAPH - ,0xBDC4 ,0x885D //CJK UNIFIED IDEOGRAPH - ,0xBDC5 ,0x8910 //CJK UNIFIED IDEOGRAPH - ,0xBDC6 ,0x8907 //CJK UNIFIED IDEOGRAPH - ,0xBDC7 ,0x8912 //CJK UNIFIED IDEOGRAPH - ,0xBDC8 ,0x8913 //CJK UNIFIED IDEOGRAPH - ,0xBDC9 ,0x8915 //CJK UNIFIED IDEOGRAPH - ,0xBDCA ,0x890A //CJK UNIFIED IDEOGRAPH - ,0xBDCB ,0x8ABC //CJK UNIFIED IDEOGRAPH - ,0xBDCC ,0x8AD2 //CJK UNIFIED IDEOGRAPH - ,0xBDCD ,0x8AC7 //CJK UNIFIED IDEOGRAPH - ,0xBDCE ,0x8AC4 //CJK UNIFIED IDEOGRAPH - ,0xBDCF ,0x8A95 //CJK UNIFIED IDEOGRAPH - ,0xBDD0 ,0x8ACB //CJK UNIFIED IDEOGRAPH - ,0xBDD1 ,0x8AF8 //CJK UNIFIED IDEOGRAPH - ,0xBDD2 ,0x8AB2 //CJK UNIFIED IDEOGRAPH - ,0xBDD3 ,0x8AC9 //CJK UNIFIED IDEOGRAPH - ,0xBDD4 ,0x8AC2 //CJK UNIFIED IDEOGRAPH - ,0xBDD5 ,0x8ABF //CJK UNIFIED IDEOGRAPH - ,0xBDD6 ,0x8AB0 //CJK UNIFIED IDEOGRAPH - ,0xBDD7 ,0x8AD6 //CJK UNIFIED IDEOGRAPH - ,0xBDD8 ,0x8ACD //CJK UNIFIED IDEOGRAPH - ,0xBDD9 ,0x8AB6 //CJK UNIFIED IDEOGRAPH - ,0xBDDA ,0x8AB9 //CJK UNIFIED IDEOGRAPH - ,0xBDDB ,0x8ADB //CJK UNIFIED IDEOGRAPH - ,0xBDDC ,0x8C4C //CJK UNIFIED IDEOGRAPH - ,0xBDDD ,0x8C4E //CJK UNIFIED IDEOGRAPH - ,0xBDDE ,0x8C6C //CJK UNIFIED IDEOGRAPH - ,0xBDDF ,0x8CE0 //CJK UNIFIED IDEOGRAPH - ,0xBDE0 ,0x8CDE //CJK UNIFIED IDEOGRAPH - ,0xBDE1 ,0x8CE6 //CJK UNIFIED IDEOGRAPH - ,0xBDE2 ,0x8CE4 //CJK UNIFIED IDEOGRAPH - ,0xBDE3 ,0x8CEC //CJK UNIFIED IDEOGRAPH - ,0xBDE4 ,0x8CED //CJK UNIFIED IDEOGRAPH - ,0xBDE5 ,0x8CE2 //CJK UNIFIED IDEOGRAPH - ,0xBDE6 ,0x8CE3 //CJK UNIFIED IDEOGRAPH - ,0xBDE7 ,0x8CDC //CJK UNIFIED IDEOGRAPH - ,0xBDE8 ,0x8CEA //CJK UNIFIED IDEOGRAPH - ,0xBDE9 ,0x8CE1 //CJK UNIFIED IDEOGRAPH - ,0xBDEA ,0x8D6D //CJK UNIFIED IDEOGRAPH - ,0xBDEB ,0x8D9F //CJK UNIFIED IDEOGRAPH - ,0xBDEC ,0x8DA3 //CJK UNIFIED IDEOGRAPH - ,0xBDED ,0x8E2B //CJK UNIFIED IDEOGRAPH - ,0xBDEE ,0x8E10 //CJK UNIFIED IDEOGRAPH - ,0xBDEF ,0x8E1D //CJK UNIFIED IDEOGRAPH - ,0xBDF0 ,0x8E22 //CJK UNIFIED IDEOGRAPH - ,0xBDF1 ,0x8E0F //CJK UNIFIED IDEOGRAPH - ,0xBDF2 ,0x8E29 //CJK UNIFIED IDEOGRAPH - ,0xBDF3 ,0x8E1F //CJK UNIFIED IDEOGRAPH - ,0xBDF4 ,0x8E21 //CJK UNIFIED IDEOGRAPH - ,0xBDF5 ,0x8E1E //CJK UNIFIED IDEOGRAPH - ,0xBDF6 ,0x8EBA //CJK UNIFIED IDEOGRAPH - ,0xBDF7 ,0x8F1D //CJK UNIFIED IDEOGRAPH - ,0xBDF8 ,0x8F1B //CJK UNIFIED IDEOGRAPH - ,0xBDF9 ,0x8F1F //CJK UNIFIED IDEOGRAPH - ,0xBDFA ,0x8F29 //CJK UNIFIED IDEOGRAPH - ,0xBDFB ,0x8F26 //CJK UNIFIED IDEOGRAPH - ,0xBDFC ,0x8F2A //CJK UNIFIED IDEOGRAPH - ,0xBDFD ,0x8F1C //CJK UNIFIED IDEOGRAPH - ,0xBDFE ,0x8F1E //CJK UNIFIED IDEOGRAPH - ,0xBE40 ,0x8F25 //CJK UNIFIED IDEOGRAPH - ,0xBE41 ,0x9069 //CJK UNIFIED IDEOGRAPH - ,0xBE42 ,0x906E //CJK UNIFIED IDEOGRAPH - ,0xBE43 ,0x9068 //CJK UNIFIED IDEOGRAPH - ,0xBE44 ,0x906D //CJK UNIFIED IDEOGRAPH - ,0xBE45 ,0x9077 //CJK UNIFIED IDEOGRAPH - ,0xBE46 ,0x9130 //CJK UNIFIED IDEOGRAPH - ,0xBE47 ,0x912D //CJK UNIFIED IDEOGRAPH - ,0xBE48 ,0x9127 //CJK UNIFIED IDEOGRAPH - ,0xBE49 ,0x9131 //CJK UNIFIED IDEOGRAPH - ,0xBE4A ,0x9187 //CJK UNIFIED IDEOGRAPH - ,0xBE4B ,0x9189 //CJK UNIFIED IDEOGRAPH - ,0xBE4C ,0x918B //CJK UNIFIED IDEOGRAPH - ,0xBE4D ,0x9183 //CJK UNIFIED IDEOGRAPH - ,0xBE4E ,0x92C5 //CJK UNIFIED IDEOGRAPH - ,0xBE4F ,0x92BB //CJK UNIFIED IDEOGRAPH - ,0xBE50 ,0x92B7 //CJK UNIFIED IDEOGRAPH - ,0xBE51 ,0x92EA //CJK UNIFIED IDEOGRAPH - ,0xBE52 ,0x92AC //CJK UNIFIED IDEOGRAPH - ,0xBE53 ,0x92E4 //CJK UNIFIED IDEOGRAPH - ,0xBE54 ,0x92C1 //CJK UNIFIED IDEOGRAPH - ,0xBE55 ,0x92B3 //CJK UNIFIED IDEOGRAPH - ,0xBE56 ,0x92BC //CJK UNIFIED IDEOGRAPH - ,0xBE57 ,0x92D2 //CJK UNIFIED IDEOGRAPH - ,0xBE58 ,0x92C7 //CJK UNIFIED IDEOGRAPH - ,0xBE59 ,0x92F0 //CJK UNIFIED IDEOGRAPH - ,0xBE5A ,0x92B2 //CJK UNIFIED IDEOGRAPH - ,0xBE5B ,0x95AD //CJK UNIFIED IDEOGRAPH - ,0xBE5C ,0x95B1 //CJK UNIFIED IDEOGRAPH - ,0xBE5D ,0x9704 //CJK UNIFIED IDEOGRAPH - ,0xBE5E ,0x9706 //CJK UNIFIED IDEOGRAPH - ,0xBE5F ,0x9707 //CJK UNIFIED IDEOGRAPH - ,0xBE60 ,0x9709 //CJK UNIFIED IDEOGRAPH - ,0xBE61 ,0x9760 //CJK UNIFIED IDEOGRAPH - ,0xBE62 ,0x978D //CJK UNIFIED IDEOGRAPH - ,0xBE63 ,0x978B //CJK UNIFIED IDEOGRAPH - ,0xBE64 ,0x978F //CJK UNIFIED IDEOGRAPH - ,0xBE65 ,0x9821 //CJK UNIFIED IDEOGRAPH - ,0xBE66 ,0x982B //CJK UNIFIED IDEOGRAPH - ,0xBE67 ,0x981C //CJK UNIFIED IDEOGRAPH - ,0xBE68 ,0x98B3 //CJK UNIFIED IDEOGRAPH - ,0xBE69 ,0x990A //CJK UNIFIED IDEOGRAPH - ,0xBE6A ,0x9913 //CJK UNIFIED IDEOGRAPH - ,0xBE6B ,0x9912 //CJK UNIFIED IDEOGRAPH - ,0xBE6C ,0x9918 //CJK UNIFIED IDEOGRAPH - ,0xBE6D ,0x99DD //CJK UNIFIED IDEOGRAPH - ,0xBE6E ,0x99D0 //CJK UNIFIED IDEOGRAPH - ,0xBE6F ,0x99DF //CJK UNIFIED IDEOGRAPH - ,0xBE70 ,0x99DB //CJK UNIFIED IDEOGRAPH - ,0xBE71 ,0x99D1 //CJK UNIFIED IDEOGRAPH - ,0xBE72 ,0x99D5 //CJK UNIFIED IDEOGRAPH - ,0xBE73 ,0x99D2 //CJK UNIFIED IDEOGRAPH - ,0xBE74 ,0x99D9 //CJK UNIFIED IDEOGRAPH - ,0xBE75 ,0x9AB7 //CJK UNIFIED IDEOGRAPH - ,0xBE76 ,0x9AEE //CJK UNIFIED IDEOGRAPH - ,0xBE77 ,0x9AEF //CJK UNIFIED IDEOGRAPH - ,0xBE78 ,0x9B27 //CJK UNIFIED IDEOGRAPH - ,0xBE79 ,0x9B45 //CJK UNIFIED IDEOGRAPH - ,0xBE7A ,0x9B44 //CJK UNIFIED IDEOGRAPH - ,0xBE7B ,0x9B77 //CJK UNIFIED IDEOGRAPH - ,0xBE7C ,0x9B6F //CJK UNIFIED IDEOGRAPH - ,0xBE7D ,0x9D06 //CJK UNIFIED IDEOGRAPH - ,0xBE7E ,0x9D09 //CJK UNIFIED IDEOGRAPH - ,0xBEA1 ,0x9D03 //CJK UNIFIED IDEOGRAPH - ,0xBEA2 ,0x9EA9 //CJK UNIFIED IDEOGRAPH - ,0xBEA3 ,0x9EBE //CJK UNIFIED IDEOGRAPH - ,0xBEA4 ,0x9ECE //CJK UNIFIED IDEOGRAPH - ,0xBEA5 ,0x58A8 //CJK UNIFIED IDEOGRAPH - ,0xBEA6 ,0x9F52 //CJK UNIFIED IDEOGRAPH - ,0xBEA7 ,0x5112 //CJK UNIFIED IDEOGRAPH - ,0xBEA8 ,0x5118 //CJK UNIFIED IDEOGRAPH - ,0xBEA9 ,0x5114 //CJK UNIFIED IDEOGRAPH - ,0xBEAA ,0x5110 //CJK UNIFIED IDEOGRAPH - ,0xBEAB ,0x5115 //CJK UNIFIED IDEOGRAPH - ,0xBEAC ,0x5180 //CJK UNIFIED IDEOGRAPH - ,0xBEAD ,0x51AA //CJK UNIFIED IDEOGRAPH - ,0xBEAE ,0x51DD //CJK UNIFIED IDEOGRAPH - ,0xBEAF ,0x5291 //CJK UNIFIED IDEOGRAPH - ,0xBEB0 ,0x5293 //CJK UNIFIED IDEOGRAPH - ,0xBEB1 ,0x52F3 //CJK UNIFIED IDEOGRAPH - ,0xBEB2 ,0x5659 //CJK UNIFIED IDEOGRAPH - ,0xBEB3 ,0x566B //CJK UNIFIED IDEOGRAPH - ,0xBEB4 ,0x5679 //CJK UNIFIED IDEOGRAPH - ,0xBEB5 ,0x5669 //CJK UNIFIED IDEOGRAPH - ,0xBEB6 ,0x5664 //CJK UNIFIED IDEOGRAPH - ,0xBEB7 ,0x5678 //CJK UNIFIED IDEOGRAPH - ,0xBEB8 ,0x566A //CJK UNIFIED IDEOGRAPH - ,0xBEB9 ,0x5668 //CJK UNIFIED IDEOGRAPH - ,0xBEBA ,0x5665 //CJK UNIFIED IDEOGRAPH - ,0xBEBB ,0x5671 //CJK UNIFIED IDEOGRAPH - ,0xBEBC ,0x566F //CJK UNIFIED IDEOGRAPH - ,0xBEBD ,0x566C //CJK UNIFIED IDEOGRAPH - ,0xBEBE ,0x5662 //CJK UNIFIED IDEOGRAPH - ,0xBEBF ,0x5676 //CJK UNIFIED IDEOGRAPH - ,0xBEC0 ,0x58C1 //CJK UNIFIED IDEOGRAPH - ,0xBEC1 ,0x58BE //CJK UNIFIED IDEOGRAPH - ,0xBEC2 ,0x58C7 //CJK UNIFIED IDEOGRAPH - ,0xBEC3 ,0x58C5 //CJK UNIFIED IDEOGRAPH - ,0xBEC4 ,0x596E //CJK UNIFIED IDEOGRAPH - ,0xBEC5 ,0x5B1D //CJK UNIFIED IDEOGRAPH - ,0xBEC6 ,0x5B34 //CJK UNIFIED IDEOGRAPH - ,0xBEC7 ,0x5B78 //CJK UNIFIED IDEOGRAPH - ,0xBEC8 ,0x5BF0 //CJK UNIFIED IDEOGRAPH - ,0xBEC9 ,0x5C0E //CJK UNIFIED IDEOGRAPH - ,0xBECA ,0x5F4A //CJK UNIFIED IDEOGRAPH - ,0xBECB ,0x61B2 //CJK UNIFIED IDEOGRAPH - ,0xBECC ,0x6191 //CJK UNIFIED IDEOGRAPH - ,0xBECD ,0x61A9 //CJK UNIFIED IDEOGRAPH - ,0xBECE ,0x618A //CJK UNIFIED IDEOGRAPH - ,0xBECF ,0x61CD //CJK UNIFIED IDEOGRAPH - ,0xBED0 ,0x61B6 //CJK UNIFIED IDEOGRAPH - ,0xBED1 ,0x61BE //CJK UNIFIED IDEOGRAPH - ,0xBED2 ,0x61CA //CJK UNIFIED IDEOGRAPH - ,0xBED3 ,0x61C8 //CJK UNIFIED IDEOGRAPH - ,0xBED4 ,0x6230 //CJK UNIFIED IDEOGRAPH - ,0xBED5 ,0x64C5 //CJK UNIFIED IDEOGRAPH - ,0xBED6 ,0x64C1 //CJK UNIFIED IDEOGRAPH - ,0xBED7 ,0x64CB //CJK UNIFIED IDEOGRAPH - ,0xBED8 ,0x64BB //CJK UNIFIED IDEOGRAPH - ,0xBED9 ,0x64BC //CJK UNIFIED IDEOGRAPH - ,0xBEDA ,0x64DA //CJK UNIFIED IDEOGRAPH - ,0xBEDB ,0x64C4 //CJK UNIFIED IDEOGRAPH - ,0xBEDC ,0x64C7 //CJK UNIFIED IDEOGRAPH - ,0xBEDD ,0x64C2 //CJK UNIFIED IDEOGRAPH - ,0xBEDE ,0x64CD //CJK UNIFIED IDEOGRAPH - ,0xBEDF ,0x64BF //CJK UNIFIED IDEOGRAPH - ,0xBEE0 ,0x64D2 //CJK UNIFIED IDEOGRAPH - ,0xBEE1 ,0x64D4 //CJK UNIFIED IDEOGRAPH - ,0xBEE2 ,0x64BE //CJK UNIFIED IDEOGRAPH - ,0xBEE3 ,0x6574 //CJK UNIFIED IDEOGRAPH - ,0xBEE4 ,0x66C6 //CJK UNIFIED IDEOGRAPH - ,0xBEE5 ,0x66C9 //CJK UNIFIED IDEOGRAPH - ,0xBEE6 ,0x66B9 //CJK UNIFIED IDEOGRAPH - ,0xBEE7 ,0x66C4 //CJK UNIFIED IDEOGRAPH - ,0xBEE8 ,0x66C7 //CJK UNIFIED IDEOGRAPH - ,0xBEE9 ,0x66B8 //CJK UNIFIED IDEOGRAPH - ,0xBEEA ,0x6A3D //CJK UNIFIED IDEOGRAPH - ,0xBEEB ,0x6A38 //CJK UNIFIED IDEOGRAPH - ,0xBEEC ,0x6A3A //CJK UNIFIED IDEOGRAPH - ,0xBEED ,0x6A59 //CJK UNIFIED IDEOGRAPH - ,0xBEEE ,0x6A6B //CJK UNIFIED IDEOGRAPH - ,0xBEEF ,0x6A58 //CJK UNIFIED IDEOGRAPH - ,0xBEF0 ,0x6A39 //CJK UNIFIED IDEOGRAPH - ,0xBEF1 ,0x6A44 //CJK UNIFIED IDEOGRAPH - ,0xBEF2 ,0x6A62 //CJK UNIFIED IDEOGRAPH - ,0xBEF3 ,0x6A61 //CJK UNIFIED IDEOGRAPH - ,0xBEF4 ,0x6A4B //CJK UNIFIED IDEOGRAPH - ,0xBEF5 ,0x6A47 //CJK UNIFIED IDEOGRAPH - ,0xBEF6 ,0x6A35 //CJK UNIFIED IDEOGRAPH - ,0xBEF7 ,0x6A5F //CJK UNIFIED IDEOGRAPH - ,0xBEF8 ,0x6A48 //CJK UNIFIED IDEOGRAPH - ,0xBEF9 ,0x6B59 //CJK UNIFIED IDEOGRAPH - ,0xBEFA ,0x6B77 //CJK UNIFIED IDEOGRAPH - ,0xBEFB ,0x6C05 //CJK UNIFIED IDEOGRAPH - ,0xBEFC ,0x6FC2 //CJK UNIFIED IDEOGRAPH - ,0xBEFD ,0x6FB1 //CJK UNIFIED IDEOGRAPH - ,0xBEFE ,0x6FA1 //CJK UNIFIED IDEOGRAPH - ,0xBF40 ,0x6FC3 //CJK UNIFIED IDEOGRAPH - ,0xBF41 ,0x6FA4 //CJK UNIFIED IDEOGRAPH - ,0xBF42 ,0x6FC1 //CJK UNIFIED IDEOGRAPH - ,0xBF43 ,0x6FA7 //CJK UNIFIED IDEOGRAPH - ,0xBF44 ,0x6FB3 //CJK UNIFIED IDEOGRAPH - ,0xBF45 ,0x6FC0 //CJK UNIFIED IDEOGRAPH - ,0xBF46 ,0x6FB9 //CJK UNIFIED IDEOGRAPH - ,0xBF47 ,0x6FB6 //CJK UNIFIED IDEOGRAPH - ,0xBF48 ,0x6FA6 //CJK UNIFIED IDEOGRAPH - ,0xBF49 ,0x6FA0 //CJK UNIFIED IDEOGRAPH - ,0xBF4A ,0x6FB4 //CJK UNIFIED IDEOGRAPH - ,0xBF4B ,0x71BE //CJK UNIFIED IDEOGRAPH - ,0xBF4C ,0x71C9 //CJK UNIFIED IDEOGRAPH - ,0xBF4D ,0x71D0 //CJK UNIFIED IDEOGRAPH - ,0xBF4E ,0x71D2 //CJK UNIFIED IDEOGRAPH - ,0xBF4F ,0x71C8 //CJK UNIFIED IDEOGRAPH - ,0xBF50 ,0x71D5 //CJK UNIFIED IDEOGRAPH - ,0xBF51 ,0x71B9 //CJK UNIFIED IDEOGRAPH - ,0xBF52 ,0x71CE //CJK UNIFIED IDEOGRAPH - ,0xBF53 ,0x71D9 //CJK UNIFIED IDEOGRAPH - ,0xBF54 ,0x71DC //CJK UNIFIED IDEOGRAPH - ,0xBF55 ,0x71C3 //CJK UNIFIED IDEOGRAPH - ,0xBF56 ,0x71C4 //CJK UNIFIED IDEOGRAPH - ,0xBF57 ,0x7368 //CJK UNIFIED IDEOGRAPH - ,0xBF58 ,0x749C //CJK UNIFIED IDEOGRAPH - ,0xBF59 ,0x74A3 //CJK UNIFIED IDEOGRAPH - ,0xBF5A ,0x7498 //CJK UNIFIED IDEOGRAPH - ,0xBF5B ,0x749F //CJK UNIFIED IDEOGRAPH - ,0xBF5C ,0x749E //CJK UNIFIED IDEOGRAPH - ,0xBF5D ,0x74E2 //CJK UNIFIED IDEOGRAPH - ,0xBF5E ,0x750C //CJK UNIFIED IDEOGRAPH - ,0xBF5F ,0x750D //CJK UNIFIED IDEOGRAPH - ,0xBF60 ,0x7634 //CJK UNIFIED IDEOGRAPH - ,0xBF61 ,0x7638 //CJK UNIFIED IDEOGRAPH - ,0xBF62 ,0x763A //CJK UNIFIED IDEOGRAPH - ,0xBF63 ,0x76E7 //CJK UNIFIED IDEOGRAPH - ,0xBF64 ,0x76E5 //CJK UNIFIED IDEOGRAPH - ,0xBF65 ,0x77A0 //CJK UNIFIED IDEOGRAPH - ,0xBF66 ,0x779E //CJK UNIFIED IDEOGRAPH - ,0xBF67 ,0x779F //CJK UNIFIED IDEOGRAPH - ,0xBF68 ,0x77A5 //CJK UNIFIED IDEOGRAPH - ,0xBF69 ,0x78E8 //CJK UNIFIED IDEOGRAPH - ,0xBF6A ,0x78DA //CJK UNIFIED IDEOGRAPH - ,0xBF6B ,0x78EC //CJK UNIFIED IDEOGRAPH - ,0xBF6C ,0x78E7 //CJK UNIFIED IDEOGRAPH - ,0xBF6D ,0x79A6 //CJK UNIFIED IDEOGRAPH - ,0xBF6E ,0x7A4D //CJK UNIFIED IDEOGRAPH - ,0xBF6F ,0x7A4E //CJK UNIFIED IDEOGRAPH - ,0xBF70 ,0x7A46 //CJK UNIFIED IDEOGRAPH - ,0xBF71 ,0x7A4C //CJK UNIFIED IDEOGRAPH - ,0xBF72 ,0x7A4B //CJK UNIFIED IDEOGRAPH - ,0xBF73 ,0x7ABA //CJK UNIFIED IDEOGRAPH - ,0xBF74 ,0x7BD9 //CJK UNIFIED IDEOGRAPH - ,0xBF75 ,0x7C11 //CJK UNIFIED IDEOGRAPH - ,0xBF76 ,0x7BC9 //CJK UNIFIED IDEOGRAPH - ,0xBF77 ,0x7BE4 //CJK UNIFIED IDEOGRAPH - ,0xBF78 ,0x7BDB //CJK UNIFIED IDEOGRAPH - ,0xBF79 ,0x7BE1 //CJK UNIFIED IDEOGRAPH - ,0xBF7A ,0x7BE9 //CJK UNIFIED IDEOGRAPH - ,0xBF7B ,0x7BE6 //CJK UNIFIED IDEOGRAPH - ,0xBF7C ,0x7CD5 //CJK UNIFIED IDEOGRAPH - ,0xBF7D ,0x7CD6 //CJK UNIFIED IDEOGRAPH - ,0xBF7E ,0x7E0A //CJK UNIFIED IDEOGRAPH - ,0xBFA1 ,0x7E11 //CJK UNIFIED IDEOGRAPH - ,0xBFA2 ,0x7E08 //CJK UNIFIED IDEOGRAPH - ,0xBFA3 ,0x7E1B //CJK UNIFIED IDEOGRAPH - ,0xBFA4 ,0x7E23 //CJK UNIFIED IDEOGRAPH - ,0xBFA5 ,0x7E1E //CJK UNIFIED IDEOGRAPH - ,0xBFA6 ,0x7E1D //CJK UNIFIED IDEOGRAPH - ,0xBFA7 ,0x7E09 //CJK UNIFIED IDEOGRAPH - ,0xBFA8 ,0x7E10 //CJK UNIFIED IDEOGRAPH - ,0xBFA9 ,0x7F79 //CJK UNIFIED IDEOGRAPH - ,0xBFAA ,0x7FB2 //CJK UNIFIED IDEOGRAPH - ,0xBFAB ,0x7FF0 //CJK UNIFIED IDEOGRAPH - ,0xBFAC ,0x7FF1 //CJK UNIFIED IDEOGRAPH - ,0xBFAD ,0x7FEE //CJK UNIFIED IDEOGRAPH - ,0xBFAE ,0x8028 //CJK UNIFIED IDEOGRAPH - ,0xBFAF ,0x81B3 //CJK UNIFIED IDEOGRAPH - ,0xBFB0 ,0x81A9 //CJK UNIFIED IDEOGRAPH - ,0xBFB1 ,0x81A8 //CJK UNIFIED IDEOGRAPH - ,0xBFB2 ,0x81FB //CJK UNIFIED IDEOGRAPH - ,0xBFB3 ,0x8208 //CJK UNIFIED IDEOGRAPH - ,0xBFB4 ,0x8258 //CJK UNIFIED IDEOGRAPH - ,0xBFB5 ,0x8259 //CJK UNIFIED IDEOGRAPH - ,0xBFB6 ,0x854A //CJK UNIFIED IDEOGRAPH - ,0xBFB7 ,0x8559 //CJK UNIFIED IDEOGRAPH - ,0xBFB8 ,0x8548 //CJK UNIFIED IDEOGRAPH - ,0xBFB9 ,0x8568 //CJK UNIFIED IDEOGRAPH - ,0xBFBA ,0x8569 //CJK UNIFIED IDEOGRAPH - ,0xBFBB ,0x8543 //CJK UNIFIED IDEOGRAPH - ,0xBFBC ,0x8549 //CJK UNIFIED IDEOGRAPH - ,0xBFBD ,0x856D //CJK UNIFIED IDEOGRAPH - ,0xBFBE ,0x856A //CJK UNIFIED IDEOGRAPH - ,0xBFBF ,0x855E //CJK UNIFIED IDEOGRAPH - ,0xBFC0 ,0x8783 //CJK UNIFIED IDEOGRAPH - ,0xBFC1 ,0x879F //CJK UNIFIED IDEOGRAPH - ,0xBFC2 ,0x879E //CJK UNIFIED IDEOGRAPH - ,0xBFC3 ,0x87A2 //CJK UNIFIED IDEOGRAPH - ,0xBFC4 ,0x878D //CJK UNIFIED IDEOGRAPH - ,0xBFC5 ,0x8861 //CJK UNIFIED IDEOGRAPH - ,0xBFC6 ,0x892A //CJK UNIFIED IDEOGRAPH - ,0xBFC7 ,0x8932 //CJK UNIFIED IDEOGRAPH - ,0xBFC8 ,0x8925 //CJK UNIFIED IDEOGRAPH - ,0xBFC9 ,0x892B //CJK UNIFIED IDEOGRAPH - ,0xBFCA ,0x8921 //CJK UNIFIED IDEOGRAPH - ,0xBFCB ,0x89AA //CJK UNIFIED IDEOGRAPH - ,0xBFCC ,0x89A6 //CJK UNIFIED IDEOGRAPH - ,0xBFCD ,0x8AE6 //CJK UNIFIED IDEOGRAPH - ,0xBFCE ,0x8AFA //CJK UNIFIED IDEOGRAPH - ,0xBFCF ,0x8AEB //CJK UNIFIED IDEOGRAPH - ,0xBFD0 ,0x8AF1 //CJK UNIFIED IDEOGRAPH - ,0xBFD1 ,0x8B00 //CJK UNIFIED IDEOGRAPH - ,0xBFD2 ,0x8ADC //CJK UNIFIED IDEOGRAPH - ,0xBFD3 ,0x8AE7 //CJK UNIFIED IDEOGRAPH - ,0xBFD4 ,0x8AEE //CJK UNIFIED IDEOGRAPH - ,0xBFD5 ,0x8AFE //CJK UNIFIED IDEOGRAPH - ,0xBFD6 ,0x8B01 //CJK UNIFIED IDEOGRAPH - ,0xBFD7 ,0x8B02 //CJK UNIFIED IDEOGRAPH - ,0xBFD8 ,0x8AF7 //CJK UNIFIED IDEOGRAPH - ,0xBFD9 ,0x8AED //CJK UNIFIED IDEOGRAPH - ,0xBFDA ,0x8AF3 //CJK UNIFIED IDEOGRAPH - ,0xBFDB ,0x8AF6 //CJK UNIFIED IDEOGRAPH - ,0xBFDC ,0x8AFC //CJK UNIFIED IDEOGRAPH - ,0xBFDD ,0x8C6B //CJK UNIFIED IDEOGRAPH - ,0xBFDE ,0x8C6D //CJK UNIFIED IDEOGRAPH - ,0xBFDF ,0x8C93 //CJK UNIFIED IDEOGRAPH - ,0xBFE0 ,0x8CF4 //CJK UNIFIED IDEOGRAPH - ,0xBFE1 ,0x8E44 //CJK UNIFIED IDEOGRAPH - ,0xBFE2 ,0x8E31 //CJK UNIFIED IDEOGRAPH - ,0xBFE3 ,0x8E34 //CJK UNIFIED IDEOGRAPH - ,0xBFE4 ,0x8E42 //CJK UNIFIED IDEOGRAPH - ,0xBFE5 ,0x8E39 //CJK UNIFIED IDEOGRAPH - ,0xBFE6 ,0x8E35 //CJK UNIFIED IDEOGRAPH - ,0xBFE7 ,0x8F3B //CJK UNIFIED IDEOGRAPH - ,0xBFE8 ,0x8F2F //CJK UNIFIED IDEOGRAPH - ,0xBFE9 ,0x8F38 //CJK UNIFIED IDEOGRAPH - ,0xBFEA ,0x8F33 //CJK UNIFIED IDEOGRAPH - ,0xBFEB ,0x8FA8 //CJK UNIFIED IDEOGRAPH - ,0xBFEC ,0x8FA6 //CJK UNIFIED IDEOGRAPH - ,0xBFED ,0x9075 //CJK UNIFIED IDEOGRAPH - ,0xBFEE ,0x9074 //CJK UNIFIED IDEOGRAPH - ,0xBFEF ,0x9078 //CJK UNIFIED IDEOGRAPH - ,0xBFF0 ,0x9072 //CJK UNIFIED IDEOGRAPH - ,0xBFF1 ,0x907C //CJK UNIFIED IDEOGRAPH - ,0xBFF2 ,0x907A //CJK UNIFIED IDEOGRAPH - ,0xBFF3 ,0x9134 //CJK UNIFIED IDEOGRAPH - ,0xBFF4 ,0x9192 //CJK UNIFIED IDEOGRAPH - ,0xBFF5 ,0x9320 //CJK UNIFIED IDEOGRAPH - ,0xBFF6 ,0x9336 //CJK UNIFIED IDEOGRAPH - ,0xBFF7 ,0x92F8 //CJK UNIFIED IDEOGRAPH - ,0xBFF8 ,0x9333 //CJK UNIFIED IDEOGRAPH - ,0xBFF9 ,0x932F //CJK UNIFIED IDEOGRAPH - ,0xBFFA ,0x9322 //CJK UNIFIED IDEOGRAPH - ,0xBFFB ,0x92FC //CJK UNIFIED IDEOGRAPH - ,0xBFFC ,0x932B //CJK UNIFIED IDEOGRAPH - ,0xBFFD ,0x9304 //CJK UNIFIED IDEOGRAPH - ,0xBFFE ,0x931A //CJK UNIFIED IDEOGRAPH - ,0xC040 ,0x9310 //CJK UNIFIED IDEOGRAPH - ,0xC041 ,0x9326 //CJK UNIFIED IDEOGRAPH - ,0xC042 ,0x9321 //CJK UNIFIED IDEOGRAPH - ,0xC043 ,0x9315 //CJK UNIFIED IDEOGRAPH - ,0xC044 ,0x932E //CJK UNIFIED IDEOGRAPH - ,0xC045 ,0x9319 //CJK UNIFIED IDEOGRAPH - ,0xC046 ,0x95BB //CJK UNIFIED IDEOGRAPH - ,0xC047 ,0x96A7 //CJK UNIFIED IDEOGRAPH - ,0xC048 ,0x96A8 //CJK UNIFIED IDEOGRAPH - ,0xC049 ,0x96AA //CJK UNIFIED IDEOGRAPH - ,0xC04A ,0x96D5 //CJK UNIFIED IDEOGRAPH - ,0xC04B ,0x970E //CJK UNIFIED IDEOGRAPH - ,0xC04C ,0x9711 //CJK UNIFIED IDEOGRAPH - ,0xC04D ,0x9716 //CJK UNIFIED IDEOGRAPH - ,0xC04E ,0x970D //CJK UNIFIED IDEOGRAPH - ,0xC04F ,0x9713 //CJK UNIFIED IDEOGRAPH - ,0xC050 ,0x970F //CJK UNIFIED IDEOGRAPH - ,0xC051 ,0x975B //CJK UNIFIED IDEOGRAPH - ,0xC052 ,0x975C //CJK UNIFIED IDEOGRAPH - ,0xC053 ,0x9766 //CJK UNIFIED IDEOGRAPH - ,0xC054 ,0x9798 //CJK UNIFIED IDEOGRAPH - ,0xC055 ,0x9830 //CJK UNIFIED IDEOGRAPH - ,0xC056 ,0x9838 //CJK UNIFIED IDEOGRAPH - ,0xC057 ,0x983B //CJK UNIFIED IDEOGRAPH - ,0xC058 ,0x9837 //CJK UNIFIED IDEOGRAPH - ,0xC059 ,0x982D //CJK UNIFIED IDEOGRAPH - ,0xC05A ,0x9839 //CJK UNIFIED IDEOGRAPH - ,0xC05B ,0x9824 //CJK UNIFIED IDEOGRAPH - ,0xC05C ,0x9910 //CJK UNIFIED IDEOGRAPH - ,0xC05D ,0x9928 //CJK UNIFIED IDEOGRAPH - ,0xC05E ,0x991E //CJK UNIFIED IDEOGRAPH - ,0xC05F ,0x991B //CJK UNIFIED IDEOGRAPH - ,0xC060 ,0x9921 //CJK UNIFIED IDEOGRAPH - ,0xC061 ,0x991A //CJK UNIFIED IDEOGRAPH - ,0xC062 ,0x99ED //CJK UNIFIED IDEOGRAPH - ,0xC063 ,0x99E2 //CJK UNIFIED IDEOGRAPH - ,0xC064 ,0x99F1 //CJK UNIFIED IDEOGRAPH - ,0xC065 ,0x9AB8 //CJK UNIFIED IDEOGRAPH - ,0xC066 ,0x9ABC //CJK UNIFIED IDEOGRAPH - ,0xC067 ,0x9AFB //CJK UNIFIED IDEOGRAPH - ,0xC068 ,0x9AED //CJK UNIFIED IDEOGRAPH - ,0xC069 ,0x9B28 //CJK UNIFIED IDEOGRAPH - ,0xC06A ,0x9B91 //CJK UNIFIED IDEOGRAPH - ,0xC06B ,0x9D15 //CJK UNIFIED IDEOGRAPH - ,0xC06C ,0x9D23 //CJK UNIFIED IDEOGRAPH - ,0xC06D ,0x9D26 //CJK UNIFIED IDEOGRAPH - ,0xC06E ,0x9D28 //CJK UNIFIED IDEOGRAPH - ,0xC06F ,0x9D12 //CJK UNIFIED IDEOGRAPH - ,0xC070 ,0x9D1B //CJK UNIFIED IDEOGRAPH - ,0xC071 ,0x9ED8 //CJK UNIFIED IDEOGRAPH - ,0xC072 ,0x9ED4 //CJK UNIFIED IDEOGRAPH - ,0xC073 ,0x9F8D //CJK UNIFIED IDEOGRAPH - ,0xC074 ,0x9F9C //CJK UNIFIED IDEOGRAPH - ,0xC075 ,0x512A //CJK UNIFIED IDEOGRAPH - ,0xC076 ,0x511F //CJK UNIFIED IDEOGRAPH - ,0xC077 ,0x5121 //CJK UNIFIED IDEOGRAPH - ,0xC078 ,0x5132 //CJK UNIFIED IDEOGRAPH - ,0xC079 ,0x52F5 //CJK UNIFIED IDEOGRAPH - ,0xC07A ,0x568E //CJK UNIFIED IDEOGRAPH - ,0xC07B ,0x5680 //CJK UNIFIED IDEOGRAPH - ,0xC07C ,0x5690 //CJK UNIFIED IDEOGRAPH - ,0xC07D ,0x5685 //CJK UNIFIED IDEOGRAPH - ,0xC07E ,0x5687 //CJK UNIFIED IDEOGRAPH - ,0xC0A1 ,0x568F //CJK UNIFIED IDEOGRAPH - ,0xC0A2 ,0x58D5 //CJK UNIFIED IDEOGRAPH - ,0xC0A3 ,0x58D3 //CJK UNIFIED IDEOGRAPH - ,0xC0A4 ,0x58D1 //CJK UNIFIED IDEOGRAPH - ,0xC0A5 ,0x58CE //CJK UNIFIED IDEOGRAPH - ,0xC0A6 ,0x5B30 //CJK UNIFIED IDEOGRAPH - ,0xC0A7 ,0x5B2A //CJK UNIFIED IDEOGRAPH - ,0xC0A8 ,0x5B24 //CJK UNIFIED IDEOGRAPH - ,0xC0A9 ,0x5B7A //CJK UNIFIED IDEOGRAPH - ,0xC0AA ,0x5C37 //CJK UNIFIED IDEOGRAPH - ,0xC0AB ,0x5C68 //CJK UNIFIED IDEOGRAPH - ,0xC0AC ,0x5DBC //CJK UNIFIED IDEOGRAPH - ,0xC0AD ,0x5DBA //CJK UNIFIED IDEOGRAPH - ,0xC0AE ,0x5DBD //CJK UNIFIED IDEOGRAPH - ,0xC0AF ,0x5DB8 //CJK UNIFIED IDEOGRAPH - ,0xC0B0 ,0x5E6B //CJK UNIFIED IDEOGRAPH - ,0xC0B1 ,0x5F4C //CJK UNIFIED IDEOGRAPH - ,0xC0B2 ,0x5FBD //CJK UNIFIED IDEOGRAPH - ,0xC0B3 ,0x61C9 //CJK UNIFIED IDEOGRAPH - ,0xC0B4 ,0x61C2 //CJK UNIFIED IDEOGRAPH - ,0xC0B5 ,0x61C7 //CJK UNIFIED IDEOGRAPH - ,0xC0B6 ,0x61E6 //CJK UNIFIED IDEOGRAPH - ,0xC0B7 ,0x61CB //CJK UNIFIED IDEOGRAPH - ,0xC0B8 ,0x6232 //CJK UNIFIED IDEOGRAPH - ,0xC0B9 ,0x6234 //CJK UNIFIED IDEOGRAPH - ,0xC0BA ,0x64CE //CJK UNIFIED IDEOGRAPH - ,0xC0BB ,0x64CA //CJK UNIFIED IDEOGRAPH - ,0xC0BC ,0x64D8 //CJK UNIFIED IDEOGRAPH - ,0xC0BD ,0x64E0 //CJK UNIFIED IDEOGRAPH - ,0xC0BE ,0x64F0 //CJK UNIFIED IDEOGRAPH - ,0xC0BF ,0x64E6 //CJK UNIFIED IDEOGRAPH - ,0xC0C0 ,0x64EC //CJK UNIFIED IDEOGRAPH - ,0xC0C1 ,0x64F1 //CJK UNIFIED IDEOGRAPH - ,0xC0C2 ,0x64E2 //CJK UNIFIED IDEOGRAPH - ,0xC0C3 ,0x64ED //CJK UNIFIED IDEOGRAPH - ,0xC0C4 ,0x6582 //CJK UNIFIED IDEOGRAPH - ,0xC0C5 ,0x6583 //CJK UNIFIED IDEOGRAPH - ,0xC0C6 ,0x66D9 //CJK UNIFIED IDEOGRAPH - ,0xC0C7 ,0x66D6 //CJK UNIFIED IDEOGRAPH - ,0xC0C8 ,0x6A80 //CJK UNIFIED IDEOGRAPH - ,0xC0C9 ,0x6A94 //CJK UNIFIED IDEOGRAPH - ,0xC0CA ,0x6A84 //CJK UNIFIED IDEOGRAPH - ,0xC0CB ,0x6AA2 //CJK UNIFIED IDEOGRAPH - ,0xC0CC ,0x6A9C //CJK UNIFIED IDEOGRAPH - ,0xC0CD ,0x6ADB //CJK UNIFIED IDEOGRAPH - ,0xC0CE ,0x6AA3 //CJK UNIFIED IDEOGRAPH - ,0xC0CF ,0x6A7E //CJK UNIFIED IDEOGRAPH - ,0xC0D0 ,0x6A97 //CJK UNIFIED IDEOGRAPH - ,0xC0D1 ,0x6A90 //CJK UNIFIED IDEOGRAPH - ,0xC0D2 ,0x6AA0 //CJK UNIFIED IDEOGRAPH - ,0xC0D3 ,0x6B5C //CJK UNIFIED IDEOGRAPH - ,0xC0D4 ,0x6BAE //CJK UNIFIED IDEOGRAPH - ,0xC0D5 ,0x6BDA //CJK UNIFIED IDEOGRAPH - ,0xC0D6 ,0x6C08 //CJK UNIFIED IDEOGRAPH - ,0xC0D7 ,0x6FD8 //CJK UNIFIED IDEOGRAPH - ,0xC0D8 ,0x6FF1 //CJK UNIFIED IDEOGRAPH - ,0xC0D9 ,0x6FDF //CJK UNIFIED IDEOGRAPH - ,0xC0DA ,0x6FE0 //CJK UNIFIED IDEOGRAPH - ,0xC0DB ,0x6FDB //CJK UNIFIED IDEOGRAPH - ,0xC0DC ,0x6FE4 //CJK UNIFIED IDEOGRAPH - ,0xC0DD ,0x6FEB //CJK UNIFIED IDEOGRAPH - ,0xC0DE ,0x6FEF //CJK UNIFIED IDEOGRAPH - ,0xC0DF ,0x6F80 //CJK UNIFIED IDEOGRAPH - ,0xC0E0 ,0x6FEC //CJK UNIFIED IDEOGRAPH - ,0xC0E1 ,0x6FE1 //CJK UNIFIED IDEOGRAPH - ,0xC0E2 ,0x6FE9 //CJK UNIFIED IDEOGRAPH - ,0xC0E3 ,0x6FD5 //CJK UNIFIED IDEOGRAPH - ,0xC0E4 ,0x6FEE //CJK UNIFIED IDEOGRAPH - ,0xC0E5 ,0x6FF0 //CJK UNIFIED IDEOGRAPH - ,0xC0E6 ,0x71E7 //CJK UNIFIED IDEOGRAPH - ,0xC0E7 ,0x71DF //CJK UNIFIED IDEOGRAPH - ,0xC0E8 ,0x71EE //CJK UNIFIED IDEOGRAPH - ,0xC0E9 ,0x71E6 //CJK UNIFIED IDEOGRAPH - ,0xC0EA ,0x71E5 //CJK UNIFIED IDEOGRAPH - ,0xC0EB ,0x71ED //CJK UNIFIED IDEOGRAPH - ,0xC0EC ,0x71EC //CJK UNIFIED IDEOGRAPH - ,0xC0ED ,0x71F4 //CJK UNIFIED IDEOGRAPH - ,0xC0EE ,0x71E0 //CJK UNIFIED IDEOGRAPH - ,0xC0EF ,0x7235 //CJK UNIFIED IDEOGRAPH - ,0xC0F0 ,0x7246 //CJK UNIFIED IDEOGRAPH - ,0xC0F1 ,0x7370 //CJK UNIFIED IDEOGRAPH - ,0xC0F2 ,0x7372 //CJK UNIFIED IDEOGRAPH - ,0xC0F3 ,0x74A9 //CJK UNIFIED IDEOGRAPH - ,0xC0F4 ,0x74B0 //CJK UNIFIED IDEOGRAPH - ,0xC0F5 ,0x74A6 //CJK UNIFIED IDEOGRAPH - ,0xC0F6 ,0x74A8 //CJK UNIFIED IDEOGRAPH - ,0xC0F7 ,0x7646 //CJK UNIFIED IDEOGRAPH - ,0xC0F8 ,0x7642 //CJK UNIFIED IDEOGRAPH - ,0xC0F9 ,0x764C //CJK UNIFIED IDEOGRAPH - ,0xC0FA ,0x76EA //CJK UNIFIED IDEOGRAPH - ,0xC0FB ,0x77B3 //CJK UNIFIED IDEOGRAPH - ,0xC0FC ,0x77AA //CJK UNIFIED IDEOGRAPH - ,0xC0FD ,0x77B0 //CJK UNIFIED IDEOGRAPH - ,0xC0FE ,0x77AC //CJK UNIFIED IDEOGRAPH - ,0xC140 ,0x77A7 //CJK UNIFIED IDEOGRAPH - ,0xC141 ,0x77AD //CJK UNIFIED IDEOGRAPH - ,0xC142 ,0x77EF //CJK UNIFIED IDEOGRAPH - ,0xC143 ,0x78F7 //CJK UNIFIED IDEOGRAPH - ,0xC144 ,0x78FA //CJK UNIFIED IDEOGRAPH - ,0xC145 ,0x78F4 //CJK UNIFIED IDEOGRAPH - ,0xC146 ,0x78EF //CJK UNIFIED IDEOGRAPH - ,0xC147 ,0x7901 //CJK UNIFIED IDEOGRAPH - ,0xC148 ,0x79A7 //CJK UNIFIED IDEOGRAPH - ,0xC149 ,0x79AA //CJK UNIFIED IDEOGRAPH - ,0xC14A ,0x7A57 //CJK UNIFIED IDEOGRAPH - ,0xC14B ,0x7ABF //CJK UNIFIED IDEOGRAPH - ,0xC14C ,0x7C07 //CJK UNIFIED IDEOGRAPH - ,0xC14D ,0x7C0D //CJK UNIFIED IDEOGRAPH - ,0xC14E ,0x7BFE //CJK UNIFIED IDEOGRAPH - ,0xC14F ,0x7BF7 //CJK UNIFIED IDEOGRAPH - ,0xC150 ,0x7C0C //CJK UNIFIED IDEOGRAPH - ,0xC151 ,0x7BE0 //CJK UNIFIED IDEOGRAPH - ,0xC152 ,0x7CE0 //CJK UNIFIED IDEOGRAPH - ,0xC153 ,0x7CDC //CJK UNIFIED IDEOGRAPH - ,0xC154 ,0x7CDE //CJK UNIFIED IDEOGRAPH - ,0xC155 ,0x7CE2 //CJK UNIFIED IDEOGRAPH - ,0xC156 ,0x7CDF //CJK UNIFIED IDEOGRAPH - ,0xC157 ,0x7CD9 //CJK UNIFIED IDEOGRAPH - ,0xC158 ,0x7CDD //CJK UNIFIED IDEOGRAPH - ,0xC159 ,0x7E2E //CJK UNIFIED IDEOGRAPH - ,0xC15A ,0x7E3E //CJK UNIFIED IDEOGRAPH - ,0xC15B ,0x7E46 //CJK UNIFIED IDEOGRAPH - ,0xC15C ,0x7E37 //CJK UNIFIED IDEOGRAPH - ,0xC15D ,0x7E32 //CJK UNIFIED IDEOGRAPH - ,0xC15E ,0x7E43 //CJK UNIFIED IDEOGRAPH - ,0xC15F ,0x7E2B //CJK UNIFIED IDEOGRAPH - ,0xC160 ,0x7E3D //CJK UNIFIED IDEOGRAPH - ,0xC161 ,0x7E31 //CJK UNIFIED IDEOGRAPH - ,0xC162 ,0x7E45 //CJK UNIFIED IDEOGRAPH - ,0xC163 ,0x7E41 //CJK UNIFIED IDEOGRAPH - ,0xC164 ,0x7E34 //CJK UNIFIED IDEOGRAPH - ,0xC165 ,0x7E39 //CJK UNIFIED IDEOGRAPH - ,0xC166 ,0x7E48 //CJK UNIFIED IDEOGRAPH - ,0xC167 ,0x7E35 //CJK UNIFIED IDEOGRAPH - ,0xC168 ,0x7E3F //CJK UNIFIED IDEOGRAPH - ,0xC169 ,0x7E2F //CJK UNIFIED IDEOGRAPH - ,0xC16A ,0x7F44 //CJK UNIFIED IDEOGRAPH - ,0xC16B ,0x7FF3 //CJK UNIFIED IDEOGRAPH - ,0xC16C ,0x7FFC //CJK UNIFIED IDEOGRAPH - ,0xC16D ,0x8071 //CJK UNIFIED IDEOGRAPH - ,0xC16E ,0x8072 //CJK UNIFIED IDEOGRAPH - ,0xC16F ,0x8070 //CJK UNIFIED IDEOGRAPH - ,0xC170 ,0x806F //CJK UNIFIED IDEOGRAPH - ,0xC171 ,0x8073 //CJK UNIFIED IDEOGRAPH - ,0xC172 ,0x81C6 //CJK UNIFIED IDEOGRAPH - ,0xC173 ,0x81C3 //CJK UNIFIED IDEOGRAPH - ,0xC174 ,0x81BA //CJK UNIFIED IDEOGRAPH - ,0xC175 ,0x81C2 //CJK UNIFIED IDEOGRAPH - ,0xC176 ,0x81C0 //CJK UNIFIED IDEOGRAPH - ,0xC177 ,0x81BF //CJK UNIFIED IDEOGRAPH - ,0xC178 ,0x81BD //CJK UNIFIED IDEOGRAPH - ,0xC179 ,0x81C9 //CJK UNIFIED IDEOGRAPH - ,0xC17A ,0x81BE //CJK UNIFIED IDEOGRAPH - ,0xC17B ,0x81E8 //CJK UNIFIED IDEOGRAPH - ,0xC17C ,0x8209 //CJK UNIFIED IDEOGRAPH - ,0xC17D ,0x8271 //CJK UNIFIED IDEOGRAPH - ,0xC17E ,0x85AA //CJK UNIFIED IDEOGRAPH - ,0xC1A1 ,0x8584 //CJK UNIFIED IDEOGRAPH - ,0xC1A2 ,0x857E //CJK UNIFIED IDEOGRAPH - ,0xC1A3 ,0x859C //CJK UNIFIED IDEOGRAPH - ,0xC1A4 ,0x8591 //CJK UNIFIED IDEOGRAPH - ,0xC1A5 ,0x8594 //CJK UNIFIED IDEOGRAPH - ,0xC1A6 ,0x85AF //CJK UNIFIED IDEOGRAPH - ,0xC1A7 ,0x859B //CJK UNIFIED IDEOGRAPH - ,0xC1A8 ,0x8587 //CJK UNIFIED IDEOGRAPH - ,0xC1A9 ,0x85A8 //CJK UNIFIED IDEOGRAPH - ,0xC1AA ,0x858A //CJK UNIFIED IDEOGRAPH - ,0xC1AB ,0x8667 //CJK UNIFIED IDEOGRAPH - ,0xC1AC ,0x87C0 //CJK UNIFIED IDEOGRAPH - ,0xC1AD ,0x87D1 //CJK UNIFIED IDEOGRAPH - ,0xC1AE ,0x87B3 //CJK UNIFIED IDEOGRAPH - ,0xC1AF ,0x87D2 //CJK UNIFIED IDEOGRAPH - ,0xC1B0 ,0x87C6 //CJK UNIFIED IDEOGRAPH - ,0xC1B1 ,0x87AB //CJK UNIFIED IDEOGRAPH - ,0xC1B2 ,0x87BB //CJK UNIFIED IDEOGRAPH - ,0xC1B3 ,0x87BA //CJK UNIFIED IDEOGRAPH - ,0xC1B4 ,0x87C8 //CJK UNIFIED IDEOGRAPH - ,0xC1B5 ,0x87CB //CJK UNIFIED IDEOGRAPH - ,0xC1B6 ,0x893B //CJK UNIFIED IDEOGRAPH - ,0xC1B7 ,0x8936 //CJK UNIFIED IDEOGRAPH - ,0xC1B8 ,0x8944 //CJK UNIFIED IDEOGRAPH - ,0xC1B9 ,0x8938 //CJK UNIFIED IDEOGRAPH - ,0xC1BA ,0x893D //CJK UNIFIED IDEOGRAPH - ,0xC1BB ,0x89AC //CJK UNIFIED IDEOGRAPH - ,0xC1BC ,0x8B0E //CJK UNIFIED IDEOGRAPH - ,0xC1BD ,0x8B17 //CJK UNIFIED IDEOGRAPH - ,0xC1BE ,0x8B19 //CJK UNIFIED IDEOGRAPH - ,0xC1BF ,0x8B1B //CJK UNIFIED IDEOGRAPH - ,0xC1C0 ,0x8B0A //CJK UNIFIED IDEOGRAPH - ,0xC1C1 ,0x8B20 //CJK UNIFIED IDEOGRAPH - ,0xC1C2 ,0x8B1D //CJK UNIFIED IDEOGRAPH - ,0xC1C3 ,0x8B04 //CJK UNIFIED IDEOGRAPH - ,0xC1C4 ,0x8B10 //CJK UNIFIED IDEOGRAPH - ,0xC1C5 ,0x8C41 //CJK UNIFIED IDEOGRAPH - ,0xC1C6 ,0x8C3F //CJK UNIFIED IDEOGRAPH - ,0xC1C7 ,0x8C73 //CJK UNIFIED IDEOGRAPH - ,0xC1C8 ,0x8CFA //CJK UNIFIED IDEOGRAPH - ,0xC1C9 ,0x8CFD //CJK UNIFIED IDEOGRAPH - ,0xC1CA ,0x8CFC //CJK UNIFIED IDEOGRAPH - ,0xC1CB ,0x8CF8 //CJK UNIFIED IDEOGRAPH - ,0xC1CC ,0x8CFB //CJK UNIFIED IDEOGRAPH - ,0xC1CD ,0x8DA8 //CJK UNIFIED IDEOGRAPH - ,0xC1CE ,0x8E49 //CJK UNIFIED IDEOGRAPH - ,0xC1CF ,0x8E4B //CJK UNIFIED IDEOGRAPH - ,0xC1D0 ,0x8E48 //CJK UNIFIED IDEOGRAPH - ,0xC1D1 ,0x8E4A //CJK UNIFIED IDEOGRAPH - ,0xC1D2 ,0x8F44 //CJK UNIFIED IDEOGRAPH - ,0xC1D3 ,0x8F3E //CJK UNIFIED IDEOGRAPH - ,0xC1D4 ,0x8F42 //CJK UNIFIED IDEOGRAPH - ,0xC1D5 ,0x8F45 //CJK UNIFIED IDEOGRAPH - ,0xC1D6 ,0x8F3F //CJK UNIFIED IDEOGRAPH - ,0xC1D7 ,0x907F //CJK UNIFIED IDEOGRAPH - ,0xC1D8 ,0x907D //CJK UNIFIED IDEOGRAPH - ,0xC1D9 ,0x9084 //CJK UNIFIED IDEOGRAPH - ,0xC1DA ,0x9081 //CJK UNIFIED IDEOGRAPH - ,0xC1DB ,0x9082 //CJK UNIFIED IDEOGRAPH - ,0xC1DC ,0x9080 //CJK UNIFIED IDEOGRAPH - ,0xC1DD ,0x9139 //CJK UNIFIED IDEOGRAPH - ,0xC1DE ,0x91A3 //CJK UNIFIED IDEOGRAPH - ,0xC1DF ,0x919E //CJK UNIFIED IDEOGRAPH - ,0xC1E0 ,0x919C //CJK UNIFIED IDEOGRAPH - ,0xC1E1 ,0x934D //CJK UNIFIED IDEOGRAPH - ,0xC1E2 ,0x9382 //CJK UNIFIED IDEOGRAPH - ,0xC1E3 ,0x9328 //CJK UNIFIED IDEOGRAPH - ,0xC1E4 ,0x9375 //CJK UNIFIED IDEOGRAPH - ,0xC1E5 ,0x934A //CJK UNIFIED IDEOGRAPH - ,0xC1E6 ,0x9365 //CJK UNIFIED IDEOGRAPH - ,0xC1E7 ,0x934B //CJK UNIFIED IDEOGRAPH - ,0xC1E8 ,0x9318 //CJK UNIFIED IDEOGRAPH - ,0xC1E9 ,0x937E //CJK UNIFIED IDEOGRAPH - ,0xC1EA ,0x936C //CJK UNIFIED IDEOGRAPH - ,0xC1EB ,0x935B //CJK UNIFIED IDEOGRAPH - ,0xC1EC ,0x9370 //CJK UNIFIED IDEOGRAPH - ,0xC1ED ,0x935A //CJK UNIFIED IDEOGRAPH - ,0xC1EE ,0x9354 //CJK UNIFIED IDEOGRAPH - ,0xC1EF ,0x95CA //CJK UNIFIED IDEOGRAPH - ,0xC1F0 ,0x95CB //CJK UNIFIED IDEOGRAPH - ,0xC1F1 ,0x95CC //CJK UNIFIED IDEOGRAPH - ,0xC1F2 ,0x95C8 //CJK UNIFIED IDEOGRAPH - ,0xC1F3 ,0x95C6 //CJK UNIFIED IDEOGRAPH - ,0xC1F4 ,0x96B1 //CJK UNIFIED IDEOGRAPH - ,0xC1F5 ,0x96B8 //CJK UNIFIED IDEOGRAPH - ,0xC1F6 ,0x96D6 //CJK UNIFIED IDEOGRAPH - ,0xC1F7 ,0x971C //CJK UNIFIED IDEOGRAPH - ,0xC1F8 ,0x971E //CJK UNIFIED IDEOGRAPH - ,0xC1F9 ,0x97A0 //CJK UNIFIED IDEOGRAPH - ,0xC1FA ,0x97D3 //CJK UNIFIED IDEOGRAPH - ,0xC1FB ,0x9846 //CJK UNIFIED IDEOGRAPH - ,0xC1FC ,0x98B6 //CJK UNIFIED IDEOGRAPH - ,0xC1FD ,0x9935 //CJK UNIFIED IDEOGRAPH - ,0xC1FE ,0x9A01 //CJK UNIFIED IDEOGRAPH - ,0xC240 ,0x99FF //CJK UNIFIED IDEOGRAPH - ,0xC241 ,0x9BAE //CJK UNIFIED IDEOGRAPH - ,0xC242 ,0x9BAB //CJK UNIFIED IDEOGRAPH - ,0xC243 ,0x9BAA //CJK UNIFIED IDEOGRAPH - ,0xC244 ,0x9BAD //CJK UNIFIED IDEOGRAPH - ,0xC245 ,0x9D3B //CJK UNIFIED IDEOGRAPH - ,0xC246 ,0x9D3F //CJK UNIFIED IDEOGRAPH - ,0xC247 ,0x9E8B //CJK UNIFIED IDEOGRAPH - ,0xC248 ,0x9ECF //CJK UNIFIED IDEOGRAPH - ,0xC249 ,0x9EDE //CJK UNIFIED IDEOGRAPH - ,0xC24A ,0x9EDC //CJK UNIFIED IDEOGRAPH - ,0xC24B ,0x9EDD //CJK UNIFIED IDEOGRAPH - ,0xC24C ,0x9EDB //CJK UNIFIED IDEOGRAPH - ,0xC24D ,0x9F3E //CJK UNIFIED IDEOGRAPH - ,0xC24E ,0x9F4B //CJK UNIFIED IDEOGRAPH - ,0xC24F ,0x53E2 //CJK UNIFIED IDEOGRAPH - ,0xC250 ,0x5695 //CJK UNIFIED IDEOGRAPH - ,0xC251 ,0x56AE //CJK UNIFIED IDEOGRAPH - ,0xC252 ,0x58D9 //CJK UNIFIED IDEOGRAPH - ,0xC253 ,0x58D8 //CJK UNIFIED IDEOGRAPH - ,0xC254 ,0x5B38 //CJK UNIFIED IDEOGRAPH - ,0xC255 ,0x5F5D //CJK UNIFIED IDEOGRAPH - ,0xC256 ,0x61E3 //CJK UNIFIED IDEOGRAPH - ,0xC257 ,0x6233 //CJK UNIFIED IDEOGRAPH - ,0xC258 ,0x64F4 //CJK UNIFIED IDEOGRAPH - ,0xC259 ,0x64F2 //CJK UNIFIED IDEOGRAPH - ,0xC25A ,0x64FE //CJK UNIFIED IDEOGRAPH - ,0xC25B ,0x6506 //CJK UNIFIED IDEOGRAPH - ,0xC25C ,0x64FA //CJK UNIFIED IDEOGRAPH - ,0xC25D ,0x64FB //CJK UNIFIED IDEOGRAPH - ,0xC25E ,0x64F7 //CJK UNIFIED IDEOGRAPH - ,0xC25F ,0x65B7 //CJK UNIFIED IDEOGRAPH - ,0xC260 ,0x66DC //CJK UNIFIED IDEOGRAPH - ,0xC261 ,0x6726 //CJK UNIFIED IDEOGRAPH - ,0xC262 ,0x6AB3 //CJK UNIFIED IDEOGRAPH - ,0xC263 ,0x6AAC //CJK UNIFIED IDEOGRAPH - ,0xC264 ,0x6AC3 //CJK UNIFIED IDEOGRAPH - ,0xC265 ,0x6ABB //CJK UNIFIED IDEOGRAPH - ,0xC266 ,0x6AB8 //CJK UNIFIED IDEOGRAPH - ,0xC267 ,0x6AC2 //CJK UNIFIED IDEOGRAPH - ,0xC268 ,0x6AAE //CJK UNIFIED IDEOGRAPH - ,0xC269 ,0x6AAF //CJK UNIFIED IDEOGRAPH - ,0xC26A ,0x6B5F //CJK UNIFIED IDEOGRAPH - ,0xC26B ,0x6B78 //CJK UNIFIED IDEOGRAPH - ,0xC26C ,0x6BAF //CJK UNIFIED IDEOGRAPH - ,0xC26D ,0x7009 //CJK UNIFIED IDEOGRAPH - ,0xC26E ,0x700B //CJK UNIFIED IDEOGRAPH - ,0xC26F ,0x6FFE //CJK UNIFIED IDEOGRAPH - ,0xC270 ,0x7006 //CJK UNIFIED IDEOGRAPH - ,0xC271 ,0x6FFA //CJK UNIFIED IDEOGRAPH - ,0xC272 ,0x7011 //CJK UNIFIED IDEOGRAPH - ,0xC273 ,0x700F //CJK UNIFIED IDEOGRAPH - ,0xC274 ,0x71FB //CJK UNIFIED IDEOGRAPH - ,0xC275 ,0x71FC //CJK UNIFIED IDEOGRAPH - ,0xC276 ,0x71FE //CJK UNIFIED IDEOGRAPH - ,0xC277 ,0x71F8 //CJK UNIFIED IDEOGRAPH - ,0xC278 ,0x7377 //CJK UNIFIED IDEOGRAPH - ,0xC279 ,0x7375 //CJK UNIFIED IDEOGRAPH - ,0xC27A ,0x74A7 //CJK UNIFIED IDEOGRAPH - ,0xC27B ,0x74BF //CJK UNIFIED IDEOGRAPH - ,0xC27C ,0x7515 //CJK UNIFIED IDEOGRAPH - ,0xC27D ,0x7656 //CJK UNIFIED IDEOGRAPH - ,0xC27E ,0x7658 //CJK UNIFIED IDEOGRAPH - ,0xC2A1 ,0x7652 //CJK UNIFIED IDEOGRAPH - ,0xC2A2 ,0x77BD //CJK UNIFIED IDEOGRAPH - ,0xC2A3 ,0x77BF //CJK UNIFIED IDEOGRAPH - ,0xC2A4 ,0x77BB //CJK UNIFIED IDEOGRAPH - ,0xC2A5 ,0x77BC //CJK UNIFIED IDEOGRAPH - ,0xC2A6 ,0x790E //CJK UNIFIED IDEOGRAPH - ,0xC2A7 ,0x79AE //CJK UNIFIED IDEOGRAPH - ,0xC2A8 ,0x7A61 //CJK UNIFIED IDEOGRAPH - ,0xC2A9 ,0x7A62 //CJK UNIFIED IDEOGRAPH - ,0xC2AA ,0x7A60 //CJK UNIFIED IDEOGRAPH - ,0xC2AB ,0x7AC4 //CJK UNIFIED IDEOGRAPH - ,0xC2AC ,0x7AC5 //CJK UNIFIED IDEOGRAPH - ,0xC2AD ,0x7C2B //CJK UNIFIED IDEOGRAPH - ,0xC2AE ,0x7C27 //CJK UNIFIED IDEOGRAPH - ,0xC2AF ,0x7C2A //CJK UNIFIED IDEOGRAPH - ,0xC2B0 ,0x7C1E //CJK UNIFIED IDEOGRAPH - ,0xC2B1 ,0x7C23 //CJK UNIFIED IDEOGRAPH - ,0xC2B2 ,0x7C21 //CJK UNIFIED IDEOGRAPH - ,0xC2B3 ,0x7CE7 //CJK UNIFIED IDEOGRAPH - ,0xC2B4 ,0x7E54 //CJK UNIFIED IDEOGRAPH - ,0xC2B5 ,0x7E55 //CJK UNIFIED IDEOGRAPH - ,0xC2B6 ,0x7E5E //CJK UNIFIED IDEOGRAPH - ,0xC2B7 ,0x7E5A //CJK UNIFIED IDEOGRAPH - ,0xC2B8 ,0x7E61 //CJK UNIFIED IDEOGRAPH - ,0xC2B9 ,0x7E52 //CJK UNIFIED IDEOGRAPH - ,0xC2BA ,0x7E59 //CJK UNIFIED IDEOGRAPH - ,0xC2BB ,0x7F48 //CJK UNIFIED IDEOGRAPH - ,0xC2BC ,0x7FF9 //CJK UNIFIED IDEOGRAPH - ,0xC2BD ,0x7FFB //CJK UNIFIED IDEOGRAPH - ,0xC2BE ,0x8077 //CJK UNIFIED IDEOGRAPH - ,0xC2BF ,0x8076 //CJK UNIFIED IDEOGRAPH - ,0xC2C0 ,0x81CD //CJK UNIFIED IDEOGRAPH - ,0xC2C1 ,0x81CF //CJK UNIFIED IDEOGRAPH - ,0xC2C2 ,0x820A //CJK UNIFIED IDEOGRAPH - ,0xC2C3 ,0x85CF //CJK UNIFIED IDEOGRAPH - ,0xC2C4 ,0x85A9 //CJK UNIFIED IDEOGRAPH - ,0xC2C5 ,0x85CD //CJK UNIFIED IDEOGRAPH - ,0xC2C6 ,0x85D0 //CJK UNIFIED IDEOGRAPH - ,0xC2C7 ,0x85C9 //CJK UNIFIED IDEOGRAPH - ,0xC2C8 ,0x85B0 //CJK UNIFIED IDEOGRAPH - ,0xC2C9 ,0x85BA //CJK UNIFIED IDEOGRAPH - ,0xC2CA ,0x85B9 //CJK UNIFIED IDEOGRAPH - ,0xC2CB ,0x85A6 //CJK UNIFIED IDEOGRAPH - ,0xC2CC ,0x87EF //CJK UNIFIED IDEOGRAPH - ,0xC2CD ,0x87EC //CJK UNIFIED IDEOGRAPH - ,0xC2CE ,0x87F2 //CJK UNIFIED IDEOGRAPH - ,0xC2CF ,0x87E0 //CJK UNIFIED IDEOGRAPH - ,0xC2D0 ,0x8986 //CJK UNIFIED IDEOGRAPH - ,0xC2D1 ,0x89B2 //CJK UNIFIED IDEOGRAPH - ,0xC2D2 ,0x89F4 //CJK UNIFIED IDEOGRAPH - ,0xC2D3 ,0x8B28 //CJK UNIFIED IDEOGRAPH - ,0xC2D4 ,0x8B39 //CJK UNIFIED IDEOGRAPH - ,0xC2D5 ,0x8B2C //CJK UNIFIED IDEOGRAPH - ,0xC2D6 ,0x8B2B //CJK UNIFIED IDEOGRAPH - ,0xC2D7 ,0x8C50 //CJK UNIFIED IDEOGRAPH - ,0xC2D8 ,0x8D05 //CJK UNIFIED IDEOGRAPH - ,0xC2D9 ,0x8E59 //CJK UNIFIED IDEOGRAPH - ,0xC2DA ,0x8E63 //CJK UNIFIED IDEOGRAPH - ,0xC2DB ,0x8E66 //CJK UNIFIED IDEOGRAPH - ,0xC2DC ,0x8E64 //CJK UNIFIED IDEOGRAPH - ,0xC2DD ,0x8E5F //CJK UNIFIED IDEOGRAPH - ,0xC2DE ,0x8E55 //CJK UNIFIED IDEOGRAPH - ,0xC2DF ,0x8EC0 //CJK UNIFIED IDEOGRAPH - ,0xC2E0 ,0x8F49 //CJK UNIFIED IDEOGRAPH - ,0xC2E1 ,0x8F4D //CJK UNIFIED IDEOGRAPH - ,0xC2E2 ,0x9087 //CJK UNIFIED IDEOGRAPH - ,0xC2E3 ,0x9083 //CJK UNIFIED IDEOGRAPH - ,0xC2E4 ,0x9088 //CJK UNIFIED IDEOGRAPH - ,0xC2E5 ,0x91AB //CJK UNIFIED IDEOGRAPH - ,0xC2E6 ,0x91AC //CJK UNIFIED IDEOGRAPH - ,0xC2E7 ,0x91D0 //CJK UNIFIED IDEOGRAPH - ,0xC2E8 ,0x9394 //CJK UNIFIED IDEOGRAPH - ,0xC2E9 ,0x938A //CJK UNIFIED IDEOGRAPH - ,0xC2EA ,0x9396 //CJK UNIFIED IDEOGRAPH - ,0xC2EB ,0x93A2 //CJK UNIFIED IDEOGRAPH - ,0xC2EC ,0x93B3 //CJK UNIFIED IDEOGRAPH - ,0xC2ED ,0x93AE //CJK UNIFIED IDEOGRAPH - ,0xC2EE ,0x93AC //CJK UNIFIED IDEOGRAPH - ,0xC2EF ,0x93B0 //CJK UNIFIED IDEOGRAPH - ,0xC2F0 ,0x9398 //CJK UNIFIED IDEOGRAPH - ,0xC2F1 ,0x939A //CJK UNIFIED IDEOGRAPH - ,0xC2F2 ,0x9397 //CJK UNIFIED IDEOGRAPH - ,0xC2F3 ,0x95D4 //CJK UNIFIED IDEOGRAPH - ,0xC2F4 ,0x95D6 //CJK UNIFIED IDEOGRAPH - ,0xC2F5 ,0x95D0 //CJK UNIFIED IDEOGRAPH - ,0xC2F6 ,0x95D5 //CJK UNIFIED IDEOGRAPH - ,0xC2F7 ,0x96E2 //CJK UNIFIED IDEOGRAPH - ,0xC2F8 ,0x96DC //CJK UNIFIED IDEOGRAPH - ,0xC2F9 ,0x96D9 //CJK UNIFIED IDEOGRAPH - ,0xC2FA ,0x96DB //CJK UNIFIED IDEOGRAPH - ,0xC2FB ,0x96DE //CJK UNIFIED IDEOGRAPH - ,0xC2FC ,0x9724 //CJK UNIFIED IDEOGRAPH - ,0xC2FD ,0x97A3 //CJK UNIFIED IDEOGRAPH - ,0xC2FE ,0x97A6 //CJK UNIFIED IDEOGRAPH - ,0xC340 ,0x97AD //CJK UNIFIED IDEOGRAPH - ,0xC341 ,0x97F9 //CJK UNIFIED IDEOGRAPH - ,0xC342 ,0x984D //CJK UNIFIED IDEOGRAPH - ,0xC343 ,0x984F //CJK UNIFIED IDEOGRAPH - ,0xC344 ,0x984C //CJK UNIFIED IDEOGRAPH - ,0xC345 ,0x984E //CJK UNIFIED IDEOGRAPH - ,0xC346 ,0x9853 //CJK UNIFIED IDEOGRAPH - ,0xC347 ,0x98BA //CJK UNIFIED IDEOGRAPH - ,0xC348 ,0x993E //CJK UNIFIED IDEOGRAPH - ,0xC349 ,0x993F //CJK UNIFIED IDEOGRAPH - ,0xC34A ,0x993D //CJK UNIFIED IDEOGRAPH - ,0xC34B ,0x992E //CJK UNIFIED IDEOGRAPH - ,0xC34C ,0x99A5 //CJK UNIFIED IDEOGRAPH - ,0xC34D ,0x9A0E //CJK UNIFIED IDEOGRAPH - ,0xC34E ,0x9AC1 //CJK UNIFIED IDEOGRAPH - ,0xC34F ,0x9B03 //CJK UNIFIED IDEOGRAPH - ,0xC350 ,0x9B06 //CJK UNIFIED IDEOGRAPH - ,0xC351 ,0x9B4F //CJK UNIFIED IDEOGRAPH - ,0xC352 ,0x9B4E //CJK UNIFIED IDEOGRAPH - ,0xC353 ,0x9B4D //CJK UNIFIED IDEOGRAPH - ,0xC354 ,0x9BCA //CJK UNIFIED IDEOGRAPH - ,0xC355 ,0x9BC9 //CJK UNIFIED IDEOGRAPH - ,0xC356 ,0x9BFD //CJK UNIFIED IDEOGRAPH - ,0xC357 ,0x9BC8 //CJK UNIFIED IDEOGRAPH - ,0xC358 ,0x9BC0 //CJK UNIFIED IDEOGRAPH - ,0xC359 ,0x9D51 //CJK UNIFIED IDEOGRAPH - ,0xC35A ,0x9D5D //CJK UNIFIED IDEOGRAPH - ,0xC35B ,0x9D60 //CJK UNIFIED IDEOGRAPH - ,0xC35C ,0x9EE0 //CJK UNIFIED IDEOGRAPH - ,0xC35D ,0x9F15 //CJK UNIFIED IDEOGRAPH - ,0xC35E ,0x9F2C //CJK UNIFIED IDEOGRAPH - ,0xC35F ,0x5133 //CJK UNIFIED IDEOGRAPH - ,0xC360 ,0x56A5 //CJK UNIFIED IDEOGRAPH - ,0xC361 ,0x58DE //CJK UNIFIED IDEOGRAPH - ,0xC362 ,0x58DF //CJK UNIFIED IDEOGRAPH - ,0xC363 ,0x58E2 //CJK UNIFIED IDEOGRAPH - ,0xC364 ,0x5BF5 //CJK UNIFIED IDEOGRAPH - ,0xC365 ,0x9F90 //CJK UNIFIED IDEOGRAPH - ,0xC366 ,0x5EEC //CJK UNIFIED IDEOGRAPH - ,0xC367 ,0x61F2 //CJK UNIFIED IDEOGRAPH - ,0xC368 ,0x61F7 //CJK UNIFIED IDEOGRAPH - ,0xC369 ,0x61F6 //CJK UNIFIED IDEOGRAPH - ,0xC36A ,0x61F5 //CJK UNIFIED IDEOGRAPH - ,0xC36B ,0x6500 //CJK UNIFIED IDEOGRAPH - ,0xC36C ,0x650F //CJK UNIFIED IDEOGRAPH - ,0xC36D ,0x66E0 //CJK UNIFIED IDEOGRAPH - ,0xC36E ,0x66DD //CJK UNIFIED IDEOGRAPH - ,0xC36F ,0x6AE5 //CJK UNIFIED IDEOGRAPH - ,0xC370 ,0x6ADD //CJK UNIFIED IDEOGRAPH - ,0xC371 ,0x6ADA //CJK UNIFIED IDEOGRAPH - ,0xC372 ,0x6AD3 //CJK UNIFIED IDEOGRAPH - ,0xC373 ,0x701B //CJK UNIFIED IDEOGRAPH - ,0xC374 ,0x701F //CJK UNIFIED IDEOGRAPH - ,0xC375 ,0x7028 //CJK UNIFIED IDEOGRAPH - ,0xC376 ,0x701A //CJK UNIFIED IDEOGRAPH - ,0xC377 ,0x701D //CJK UNIFIED IDEOGRAPH - ,0xC378 ,0x7015 //CJK UNIFIED IDEOGRAPH - ,0xC379 ,0x7018 //CJK UNIFIED IDEOGRAPH - ,0xC37A ,0x7206 //CJK UNIFIED IDEOGRAPH - ,0xC37B ,0x720D //CJK UNIFIED IDEOGRAPH - ,0xC37C ,0x7258 //CJK UNIFIED IDEOGRAPH - ,0xC37D ,0x72A2 //CJK UNIFIED IDEOGRAPH - ,0xC37E ,0x7378 //CJK UNIFIED IDEOGRAPH - ,0xC3A1 ,0x737A //CJK UNIFIED IDEOGRAPH - ,0xC3A2 ,0x74BD //CJK UNIFIED IDEOGRAPH - ,0xC3A3 ,0x74CA //CJK UNIFIED IDEOGRAPH - ,0xC3A4 ,0x74E3 //CJK UNIFIED IDEOGRAPH - ,0xC3A5 ,0x7587 //CJK UNIFIED IDEOGRAPH - ,0xC3A6 ,0x7586 //CJK UNIFIED IDEOGRAPH - ,0xC3A7 ,0x765F //CJK UNIFIED IDEOGRAPH - ,0xC3A8 ,0x7661 //CJK UNIFIED IDEOGRAPH - ,0xC3A9 ,0x77C7 //CJK UNIFIED IDEOGRAPH - ,0xC3AA ,0x7919 //CJK UNIFIED IDEOGRAPH - ,0xC3AB ,0x79B1 //CJK UNIFIED IDEOGRAPH - ,0xC3AC ,0x7A6B //CJK UNIFIED IDEOGRAPH - ,0xC3AD ,0x7A69 //CJK UNIFIED IDEOGRAPH - ,0xC3AE ,0x7C3E //CJK UNIFIED IDEOGRAPH - ,0xC3AF ,0x7C3F //CJK UNIFIED IDEOGRAPH - ,0xC3B0 ,0x7C38 //CJK UNIFIED IDEOGRAPH - ,0xC3B1 ,0x7C3D //CJK UNIFIED IDEOGRAPH - ,0xC3B2 ,0x7C37 //CJK UNIFIED IDEOGRAPH - ,0xC3B3 ,0x7C40 //CJK UNIFIED IDEOGRAPH - ,0xC3B4 ,0x7E6B //CJK UNIFIED IDEOGRAPH - ,0xC3B5 ,0x7E6D //CJK UNIFIED IDEOGRAPH - ,0xC3B6 ,0x7E79 //CJK UNIFIED IDEOGRAPH - ,0xC3B7 ,0x7E69 //CJK UNIFIED IDEOGRAPH - ,0xC3B8 ,0x7E6A //CJK UNIFIED IDEOGRAPH - ,0xC3B9 ,0x7F85 //CJK UNIFIED IDEOGRAPH - ,0xC3BA ,0x7E73 //CJK UNIFIED IDEOGRAPH - ,0xC3BB ,0x7FB6 //CJK UNIFIED IDEOGRAPH - ,0xC3BC ,0x7FB9 //CJK UNIFIED IDEOGRAPH - ,0xC3BD ,0x7FB8 //CJK UNIFIED IDEOGRAPH - ,0xC3BE ,0x81D8 //CJK UNIFIED IDEOGRAPH - ,0xC3BF ,0x85E9 //CJK UNIFIED IDEOGRAPH - ,0xC3C0 ,0x85DD //CJK UNIFIED IDEOGRAPH - ,0xC3C1 ,0x85EA //CJK UNIFIED IDEOGRAPH - ,0xC3C2 ,0x85D5 //CJK UNIFIED IDEOGRAPH - ,0xC3C3 ,0x85E4 //CJK UNIFIED IDEOGRAPH - ,0xC3C4 ,0x85E5 //CJK UNIFIED IDEOGRAPH - ,0xC3C5 ,0x85F7 //CJK UNIFIED IDEOGRAPH - ,0xC3C6 ,0x87FB //CJK UNIFIED IDEOGRAPH - ,0xC3C7 ,0x8805 //CJK UNIFIED IDEOGRAPH - ,0xC3C8 ,0x880D //CJK UNIFIED IDEOGRAPH - ,0xC3C9 ,0x87F9 //CJK UNIFIED IDEOGRAPH - ,0xC3CA ,0x87FE //CJK UNIFIED IDEOGRAPH - ,0xC3CB ,0x8960 //CJK UNIFIED IDEOGRAPH - ,0xC3CC ,0x895F //CJK UNIFIED IDEOGRAPH - ,0xC3CD ,0x8956 //CJK UNIFIED IDEOGRAPH - ,0xC3CE ,0x895E //CJK UNIFIED IDEOGRAPH - ,0xC3CF ,0x8B41 //CJK UNIFIED IDEOGRAPH - ,0xC3D0 ,0x8B5C //CJK UNIFIED IDEOGRAPH - ,0xC3D1 ,0x8B58 //CJK UNIFIED IDEOGRAPH - ,0xC3D2 ,0x8B49 //CJK UNIFIED IDEOGRAPH - ,0xC3D3 ,0x8B5A //CJK UNIFIED IDEOGRAPH - ,0xC3D4 ,0x8B4E //CJK UNIFIED IDEOGRAPH - ,0xC3D5 ,0x8B4F //CJK UNIFIED IDEOGRAPH - ,0xC3D6 ,0x8B46 //CJK UNIFIED IDEOGRAPH - ,0xC3D7 ,0x8B59 //CJK UNIFIED IDEOGRAPH - ,0xC3D8 ,0x8D08 //CJK UNIFIED IDEOGRAPH - ,0xC3D9 ,0x8D0A //CJK UNIFIED IDEOGRAPH - ,0xC3DA ,0x8E7C //CJK UNIFIED IDEOGRAPH - ,0xC3DB ,0x8E72 //CJK UNIFIED IDEOGRAPH - ,0xC3DC ,0x8E87 //CJK UNIFIED IDEOGRAPH - ,0xC3DD ,0x8E76 //CJK UNIFIED IDEOGRAPH - ,0xC3DE ,0x8E6C //CJK UNIFIED IDEOGRAPH - ,0xC3DF ,0x8E7A //CJK UNIFIED IDEOGRAPH - ,0xC3E0 ,0x8E74 //CJK UNIFIED IDEOGRAPH - ,0xC3E1 ,0x8F54 //CJK UNIFIED IDEOGRAPH - ,0xC3E2 ,0x8F4E //CJK UNIFIED IDEOGRAPH - ,0xC3E3 ,0x8FAD //CJK UNIFIED IDEOGRAPH - ,0xC3E4 ,0x908A //CJK UNIFIED IDEOGRAPH - ,0xC3E5 ,0x908B //CJK UNIFIED IDEOGRAPH - ,0xC3E6 ,0x91B1 //CJK UNIFIED IDEOGRAPH - ,0xC3E7 ,0x91AE //CJK UNIFIED IDEOGRAPH - ,0xC3E8 ,0x93E1 //CJK UNIFIED IDEOGRAPH - ,0xC3E9 ,0x93D1 //CJK UNIFIED IDEOGRAPH - ,0xC3EA ,0x93DF //CJK UNIFIED IDEOGRAPH - ,0xC3EB ,0x93C3 //CJK UNIFIED IDEOGRAPH - ,0xC3EC ,0x93C8 //CJK UNIFIED IDEOGRAPH - ,0xC3ED ,0x93DC //CJK UNIFIED IDEOGRAPH - ,0xC3EE ,0x93DD //CJK UNIFIED IDEOGRAPH - ,0xC3EF ,0x93D6 //CJK UNIFIED IDEOGRAPH - ,0xC3F0 ,0x93E2 //CJK UNIFIED IDEOGRAPH - ,0xC3F1 ,0x93CD //CJK UNIFIED IDEOGRAPH - ,0xC3F2 ,0x93D8 //CJK UNIFIED IDEOGRAPH - ,0xC3F3 ,0x93E4 //CJK UNIFIED IDEOGRAPH - ,0xC3F4 ,0x93D7 //CJK UNIFIED IDEOGRAPH - ,0xC3F5 ,0x93E8 //CJK UNIFIED IDEOGRAPH - ,0xC3F6 ,0x95DC //CJK UNIFIED IDEOGRAPH - ,0xC3F7 ,0x96B4 //CJK UNIFIED IDEOGRAPH - ,0xC3F8 ,0x96E3 //CJK UNIFIED IDEOGRAPH - ,0xC3F9 ,0x972A //CJK UNIFIED IDEOGRAPH - ,0xC3FA ,0x9727 //CJK UNIFIED IDEOGRAPH - ,0xC3FB ,0x9761 //CJK UNIFIED IDEOGRAPH - ,0xC3FC ,0x97DC //CJK UNIFIED IDEOGRAPH - ,0xC3FD ,0x97FB //CJK UNIFIED IDEOGRAPH - ,0xC3FE ,0x985E //CJK UNIFIED IDEOGRAPH - ,0xC440 ,0x9858 //CJK UNIFIED IDEOGRAPH - ,0xC441 ,0x985B //CJK UNIFIED IDEOGRAPH - ,0xC442 ,0x98BC //CJK UNIFIED IDEOGRAPH - ,0xC443 ,0x9945 //CJK UNIFIED IDEOGRAPH - ,0xC444 ,0x9949 //CJK UNIFIED IDEOGRAPH - ,0xC445 ,0x9A16 //CJK UNIFIED IDEOGRAPH - ,0xC446 ,0x9A19 //CJK UNIFIED IDEOGRAPH - ,0xC447 ,0x9B0D //CJK UNIFIED IDEOGRAPH - ,0xC448 ,0x9BE8 //CJK UNIFIED IDEOGRAPH - ,0xC449 ,0x9BE7 //CJK UNIFIED IDEOGRAPH - ,0xC44A ,0x9BD6 //CJK UNIFIED IDEOGRAPH - ,0xC44B ,0x9BDB //CJK UNIFIED IDEOGRAPH - ,0xC44C ,0x9D89 //CJK UNIFIED IDEOGRAPH - ,0xC44D ,0x9D61 //CJK UNIFIED IDEOGRAPH - ,0xC44E ,0x9D72 //CJK UNIFIED IDEOGRAPH - ,0xC44F ,0x9D6A //CJK UNIFIED IDEOGRAPH - ,0xC450 ,0x9D6C //CJK UNIFIED IDEOGRAPH - ,0xC451 ,0x9E92 //CJK UNIFIED IDEOGRAPH - ,0xC452 ,0x9E97 //CJK UNIFIED IDEOGRAPH - ,0xC453 ,0x9E93 //CJK UNIFIED IDEOGRAPH - ,0xC454 ,0x9EB4 //CJK UNIFIED IDEOGRAPH - ,0xC455 ,0x52F8 //CJK UNIFIED IDEOGRAPH - ,0xC456 ,0x56A8 //CJK UNIFIED IDEOGRAPH - ,0xC457 ,0x56B7 //CJK UNIFIED IDEOGRAPH - ,0xC458 ,0x56B6 //CJK UNIFIED IDEOGRAPH - ,0xC459 ,0x56B4 //CJK UNIFIED IDEOGRAPH - ,0xC45A ,0x56BC //CJK UNIFIED IDEOGRAPH - ,0xC45B ,0x58E4 //CJK UNIFIED IDEOGRAPH - ,0xC45C ,0x5B40 //CJK UNIFIED IDEOGRAPH - ,0xC45D ,0x5B43 //CJK UNIFIED IDEOGRAPH - ,0xC45E ,0x5B7D //CJK UNIFIED IDEOGRAPH - ,0xC45F ,0x5BF6 //CJK UNIFIED IDEOGRAPH - ,0xC460 ,0x5DC9 //CJK UNIFIED IDEOGRAPH - ,0xC461 ,0x61F8 //CJK UNIFIED IDEOGRAPH - ,0xC462 ,0x61FA //CJK UNIFIED IDEOGRAPH - ,0xC463 ,0x6518 //CJK UNIFIED IDEOGRAPH - ,0xC464 ,0x6514 //CJK UNIFIED IDEOGRAPH - ,0xC465 ,0x6519 //CJK UNIFIED IDEOGRAPH - ,0xC466 ,0x66E6 //CJK UNIFIED IDEOGRAPH - ,0xC467 ,0x6727 //CJK UNIFIED IDEOGRAPH - ,0xC468 ,0x6AEC //CJK UNIFIED IDEOGRAPH - ,0xC469 ,0x703E //CJK UNIFIED IDEOGRAPH - ,0xC46A ,0x7030 //CJK UNIFIED IDEOGRAPH - ,0xC46B ,0x7032 //CJK UNIFIED IDEOGRAPH - ,0xC46C ,0x7210 //CJK UNIFIED IDEOGRAPH - ,0xC46D ,0x737B //CJK UNIFIED IDEOGRAPH - ,0xC46E ,0x74CF //CJK UNIFIED IDEOGRAPH - ,0xC46F ,0x7662 //CJK UNIFIED IDEOGRAPH - ,0xC470 ,0x7665 //CJK UNIFIED IDEOGRAPH - ,0xC471 ,0x7926 //CJK UNIFIED IDEOGRAPH - ,0xC472 ,0x792A //CJK UNIFIED IDEOGRAPH - ,0xC473 ,0x792C //CJK UNIFIED IDEOGRAPH - ,0xC474 ,0x792B //CJK UNIFIED IDEOGRAPH - ,0xC475 ,0x7AC7 //CJK UNIFIED IDEOGRAPH - ,0xC476 ,0x7AF6 //CJK UNIFIED IDEOGRAPH - ,0xC477 ,0x7C4C //CJK UNIFIED IDEOGRAPH - ,0xC478 ,0x7C43 //CJK UNIFIED IDEOGRAPH - ,0xC479 ,0x7C4D //CJK UNIFIED IDEOGRAPH - ,0xC47A ,0x7CEF //CJK UNIFIED IDEOGRAPH - ,0xC47B ,0x7CF0 //CJK UNIFIED IDEOGRAPH - ,0xC47C ,0x8FAE //CJK UNIFIED IDEOGRAPH - ,0xC47D ,0x7E7D //CJK UNIFIED IDEOGRAPH - ,0xC47E ,0x7E7C //CJK UNIFIED IDEOGRAPH - ,0xC4A1 ,0x7E82 //CJK UNIFIED IDEOGRAPH - ,0xC4A2 ,0x7F4C //CJK UNIFIED IDEOGRAPH - ,0xC4A3 ,0x8000 //CJK UNIFIED IDEOGRAPH - ,0xC4A4 ,0x81DA //CJK UNIFIED IDEOGRAPH - ,0xC4A5 ,0x8266 //CJK UNIFIED IDEOGRAPH - ,0xC4A6 ,0x85FB //CJK UNIFIED IDEOGRAPH - ,0xC4A7 ,0x85F9 //CJK UNIFIED IDEOGRAPH - ,0xC4A8 ,0x8611 //CJK UNIFIED IDEOGRAPH - ,0xC4A9 ,0x85FA //CJK UNIFIED IDEOGRAPH - ,0xC4AA ,0x8606 //CJK UNIFIED IDEOGRAPH - ,0xC4AB ,0x860B //CJK UNIFIED IDEOGRAPH - ,0xC4AC ,0x8607 //CJK UNIFIED IDEOGRAPH - ,0xC4AD ,0x860A //CJK UNIFIED IDEOGRAPH - ,0xC4AE ,0x8814 //CJK UNIFIED IDEOGRAPH - ,0xC4AF ,0x8815 //CJK UNIFIED IDEOGRAPH - ,0xC4B0 ,0x8964 //CJK UNIFIED IDEOGRAPH - ,0xC4B1 ,0x89BA //CJK UNIFIED IDEOGRAPH - ,0xC4B2 ,0x89F8 //CJK UNIFIED IDEOGRAPH - ,0xC4B3 ,0x8B70 //CJK UNIFIED IDEOGRAPH - ,0xC4B4 ,0x8B6C //CJK UNIFIED IDEOGRAPH - ,0xC4B5 ,0x8B66 //CJK UNIFIED IDEOGRAPH - ,0xC4B6 ,0x8B6F //CJK UNIFIED IDEOGRAPH - ,0xC4B7 ,0x8B5F //CJK UNIFIED IDEOGRAPH - ,0xC4B8 ,0x8B6B //CJK UNIFIED IDEOGRAPH - ,0xC4B9 ,0x8D0F //CJK UNIFIED IDEOGRAPH - ,0xC4BA ,0x8D0D //CJK UNIFIED IDEOGRAPH - ,0xC4BB ,0x8E89 //CJK UNIFIED IDEOGRAPH - ,0xC4BC ,0x8E81 //CJK UNIFIED IDEOGRAPH - ,0xC4BD ,0x8E85 //CJK UNIFIED IDEOGRAPH - ,0xC4BE ,0x8E82 //CJK UNIFIED IDEOGRAPH - ,0xC4BF ,0x91B4 //CJK UNIFIED IDEOGRAPH - ,0xC4C0 ,0x91CB //CJK UNIFIED IDEOGRAPH - ,0xC4C1 ,0x9418 //CJK UNIFIED IDEOGRAPH - ,0xC4C2 ,0x9403 //CJK UNIFIED IDEOGRAPH - ,0xC4C3 ,0x93FD //CJK UNIFIED IDEOGRAPH - ,0xC4C4 ,0x95E1 //CJK UNIFIED IDEOGRAPH - ,0xC4C5 ,0x9730 //CJK UNIFIED IDEOGRAPH - ,0xC4C6 ,0x98C4 //CJK UNIFIED IDEOGRAPH - ,0xC4C7 ,0x9952 //CJK UNIFIED IDEOGRAPH - ,0xC4C8 ,0x9951 //CJK UNIFIED IDEOGRAPH - ,0xC4C9 ,0x99A8 //CJK UNIFIED IDEOGRAPH - ,0xC4CA ,0x9A2B //CJK UNIFIED IDEOGRAPH - ,0xC4CB ,0x9A30 //CJK UNIFIED IDEOGRAPH - ,0xC4CC ,0x9A37 //CJK UNIFIED IDEOGRAPH - ,0xC4CD ,0x9A35 //CJK UNIFIED IDEOGRAPH - ,0xC4CE ,0x9C13 //CJK UNIFIED IDEOGRAPH - ,0xC4CF ,0x9C0D //CJK UNIFIED IDEOGRAPH - ,0xC4D0 ,0x9E79 //CJK UNIFIED IDEOGRAPH - ,0xC4D1 ,0x9EB5 //CJK UNIFIED IDEOGRAPH - ,0xC4D2 ,0x9EE8 //CJK UNIFIED IDEOGRAPH - ,0xC4D3 ,0x9F2F //CJK UNIFIED IDEOGRAPH - ,0xC4D4 ,0x9F5F //CJK UNIFIED IDEOGRAPH - ,0xC4D5 ,0x9F63 //CJK UNIFIED IDEOGRAPH - ,0xC4D6 ,0x9F61 //CJK UNIFIED IDEOGRAPH - ,0xC4D7 ,0x5137 //CJK UNIFIED IDEOGRAPH - ,0xC4D8 ,0x5138 //CJK UNIFIED IDEOGRAPH - ,0xC4D9 ,0x56C1 //CJK UNIFIED IDEOGRAPH - ,0xC4DA ,0x56C0 //CJK UNIFIED IDEOGRAPH - ,0xC4DB ,0x56C2 //CJK UNIFIED IDEOGRAPH - ,0xC4DC ,0x5914 //CJK UNIFIED IDEOGRAPH - ,0xC4DD ,0x5C6C //CJK UNIFIED IDEOGRAPH - ,0xC4DE ,0x5DCD //CJK UNIFIED IDEOGRAPH - ,0xC4DF ,0x61FC //CJK UNIFIED IDEOGRAPH - ,0xC4E0 ,0x61FE //CJK UNIFIED IDEOGRAPH - ,0xC4E1 ,0x651D //CJK UNIFIED IDEOGRAPH - ,0xC4E2 ,0x651C //CJK UNIFIED IDEOGRAPH - ,0xC4E3 ,0x6595 //CJK UNIFIED IDEOGRAPH - ,0xC4E4 ,0x66E9 //CJK UNIFIED IDEOGRAPH - ,0xC4E5 ,0x6AFB //CJK UNIFIED IDEOGRAPH - ,0xC4E6 ,0x6B04 //CJK UNIFIED IDEOGRAPH - ,0xC4E7 ,0x6AFA //CJK UNIFIED IDEOGRAPH - ,0xC4E8 ,0x6BB2 //CJK UNIFIED IDEOGRAPH - ,0xC4E9 ,0x704C //CJK UNIFIED IDEOGRAPH - ,0xC4EA ,0x721B //CJK UNIFIED IDEOGRAPH - ,0xC4EB ,0x72A7 //CJK UNIFIED IDEOGRAPH - ,0xC4EC ,0x74D6 //CJK UNIFIED IDEOGRAPH - ,0xC4ED ,0x74D4 //CJK UNIFIED IDEOGRAPH - ,0xC4EE ,0x7669 //CJK UNIFIED IDEOGRAPH - ,0xC4EF ,0x77D3 //CJK UNIFIED IDEOGRAPH - ,0xC4F0 ,0x7C50 //CJK UNIFIED IDEOGRAPH - ,0xC4F1 ,0x7E8F //CJK UNIFIED IDEOGRAPH - ,0xC4F2 ,0x7E8C //CJK UNIFIED IDEOGRAPH - ,0xC4F3 ,0x7FBC //CJK UNIFIED IDEOGRAPH - ,0xC4F4 ,0x8617 //CJK UNIFIED IDEOGRAPH - ,0xC4F5 ,0x862D //CJK UNIFIED IDEOGRAPH - ,0xC4F6 ,0x861A //CJK UNIFIED IDEOGRAPH - ,0xC4F7 ,0x8823 //CJK UNIFIED IDEOGRAPH - ,0xC4F8 ,0x8822 //CJK UNIFIED IDEOGRAPH - ,0xC4F9 ,0x8821 //CJK UNIFIED IDEOGRAPH - ,0xC4FA ,0x881F //CJK UNIFIED IDEOGRAPH - ,0xC4FB ,0x896A //CJK UNIFIED IDEOGRAPH - ,0xC4FC ,0x896C //CJK UNIFIED IDEOGRAPH - ,0xC4FD ,0x89BD //CJK UNIFIED IDEOGRAPH - ,0xC4FE ,0x8B74 //CJK UNIFIED IDEOGRAPH - ,0xC540 ,0x8B77 //CJK UNIFIED IDEOGRAPH - ,0xC541 ,0x8B7D //CJK UNIFIED IDEOGRAPH - ,0xC542 ,0x8D13 //CJK UNIFIED IDEOGRAPH - ,0xC543 ,0x8E8A //CJK UNIFIED IDEOGRAPH - ,0xC544 ,0x8E8D //CJK UNIFIED IDEOGRAPH - ,0xC545 ,0x8E8B //CJK UNIFIED IDEOGRAPH - ,0xC546 ,0x8F5F //CJK UNIFIED IDEOGRAPH - ,0xC547 ,0x8FAF //CJK UNIFIED IDEOGRAPH - ,0xC548 ,0x91BA //CJK UNIFIED IDEOGRAPH - ,0xC549 ,0x942E //CJK UNIFIED IDEOGRAPH - ,0xC54A ,0x9433 //CJK UNIFIED IDEOGRAPH - ,0xC54B ,0x9435 //CJK UNIFIED IDEOGRAPH - ,0xC54C ,0x943A //CJK UNIFIED IDEOGRAPH - ,0xC54D ,0x9438 //CJK UNIFIED IDEOGRAPH - ,0xC54E ,0x9432 //CJK UNIFIED IDEOGRAPH - ,0xC54F ,0x942B //CJK UNIFIED IDEOGRAPH - ,0xC550 ,0x95E2 //CJK UNIFIED IDEOGRAPH - ,0xC551 ,0x9738 //CJK UNIFIED IDEOGRAPH - ,0xC552 ,0x9739 //CJK UNIFIED IDEOGRAPH - ,0xC553 ,0x9732 //CJK UNIFIED IDEOGRAPH - ,0xC554 ,0x97FF //CJK UNIFIED IDEOGRAPH - ,0xC555 ,0x9867 //CJK UNIFIED IDEOGRAPH - ,0xC556 ,0x9865 //CJK UNIFIED IDEOGRAPH - ,0xC557 ,0x9957 //CJK UNIFIED IDEOGRAPH - ,0xC558 ,0x9A45 //CJK UNIFIED IDEOGRAPH - ,0xC559 ,0x9A43 //CJK UNIFIED IDEOGRAPH - ,0xC55A ,0x9A40 //CJK UNIFIED IDEOGRAPH - ,0xC55B ,0x9A3E //CJK UNIFIED IDEOGRAPH - ,0xC55C ,0x9ACF //CJK UNIFIED IDEOGRAPH - ,0xC55D ,0x9B54 //CJK UNIFIED IDEOGRAPH - ,0xC55E ,0x9B51 //CJK UNIFIED IDEOGRAPH - ,0xC55F ,0x9C2D //CJK UNIFIED IDEOGRAPH - ,0xC560 ,0x9C25 //CJK UNIFIED IDEOGRAPH - ,0xC561 ,0x9DAF //CJK UNIFIED IDEOGRAPH - ,0xC562 ,0x9DB4 //CJK UNIFIED IDEOGRAPH - ,0xC563 ,0x9DC2 //CJK UNIFIED IDEOGRAPH - ,0xC564 ,0x9DB8 //CJK UNIFIED IDEOGRAPH - ,0xC565 ,0x9E9D //CJK UNIFIED IDEOGRAPH - ,0xC566 ,0x9EEF //CJK UNIFIED IDEOGRAPH - ,0xC567 ,0x9F19 //CJK UNIFIED IDEOGRAPH - ,0xC568 ,0x9F5C //CJK UNIFIED IDEOGRAPH - ,0xC569 ,0x9F66 //CJK UNIFIED IDEOGRAPH - ,0xC56A ,0x9F67 //CJK UNIFIED IDEOGRAPH - ,0xC56B ,0x513C //CJK UNIFIED IDEOGRAPH - ,0xC56C ,0x513B //CJK UNIFIED IDEOGRAPH - ,0xC56D ,0x56C8 //CJK UNIFIED IDEOGRAPH - ,0xC56E ,0x56CA //CJK UNIFIED IDEOGRAPH - ,0xC56F ,0x56C9 //CJK UNIFIED IDEOGRAPH - ,0xC570 ,0x5B7F //CJK UNIFIED IDEOGRAPH - ,0xC571 ,0x5DD4 //CJK UNIFIED IDEOGRAPH - ,0xC572 ,0x5DD2 //CJK UNIFIED IDEOGRAPH - ,0xC573 ,0x5F4E //CJK UNIFIED IDEOGRAPH - ,0xC574 ,0x61FF //CJK UNIFIED IDEOGRAPH - ,0xC575 ,0x6524 //CJK UNIFIED IDEOGRAPH - ,0xC576 ,0x6B0A //CJK UNIFIED IDEOGRAPH - ,0xC577 ,0x6B61 //CJK UNIFIED IDEOGRAPH - ,0xC578 ,0x7051 //CJK UNIFIED IDEOGRAPH - ,0xC579 ,0x7058 //CJK UNIFIED IDEOGRAPH - ,0xC57A ,0x7380 //CJK UNIFIED IDEOGRAPH - ,0xC57B ,0x74E4 //CJK UNIFIED IDEOGRAPH - ,0xC57C ,0x758A //CJK UNIFIED IDEOGRAPH - ,0xC57D ,0x766E //CJK UNIFIED IDEOGRAPH - ,0xC57E ,0x766C //CJK UNIFIED IDEOGRAPH - ,0xC5A1 ,0x79B3 //CJK UNIFIED IDEOGRAPH - ,0xC5A2 ,0x7C60 //CJK UNIFIED IDEOGRAPH - ,0xC5A3 ,0x7C5F //CJK UNIFIED IDEOGRAPH - ,0xC5A4 ,0x807E //CJK UNIFIED IDEOGRAPH - ,0xC5A5 ,0x807D //CJK UNIFIED IDEOGRAPH - ,0xC5A6 ,0x81DF //CJK UNIFIED IDEOGRAPH - ,0xC5A7 ,0x8972 //CJK UNIFIED IDEOGRAPH - ,0xC5A8 ,0x896F //CJK UNIFIED IDEOGRAPH - ,0xC5A9 ,0x89FC //CJK UNIFIED IDEOGRAPH - ,0xC5AA ,0x8B80 //CJK UNIFIED IDEOGRAPH - ,0xC5AB ,0x8D16 //CJK UNIFIED IDEOGRAPH - ,0xC5AC ,0x8D17 //CJK UNIFIED IDEOGRAPH - ,0xC5AD ,0x8E91 //CJK UNIFIED IDEOGRAPH - ,0xC5AE ,0x8E93 //CJK UNIFIED IDEOGRAPH - ,0xC5AF ,0x8F61 //CJK UNIFIED IDEOGRAPH - ,0xC5B0 ,0x9148 //CJK UNIFIED IDEOGRAPH - ,0xC5B1 ,0x9444 //CJK UNIFIED IDEOGRAPH - ,0xC5B2 ,0x9451 //CJK UNIFIED IDEOGRAPH - ,0xC5B3 ,0x9452 //CJK UNIFIED IDEOGRAPH - ,0xC5B4 ,0x973D //CJK UNIFIED IDEOGRAPH - ,0xC5B5 ,0x973E //CJK UNIFIED IDEOGRAPH - ,0xC5B6 ,0x97C3 //CJK UNIFIED IDEOGRAPH - ,0xC5B7 ,0x97C1 //CJK UNIFIED IDEOGRAPH - ,0xC5B8 ,0x986B //CJK UNIFIED IDEOGRAPH - ,0xC5B9 ,0x9955 //CJK UNIFIED IDEOGRAPH - ,0xC5BA ,0x9A55 //CJK UNIFIED IDEOGRAPH - ,0xC5BB ,0x9A4D //CJK UNIFIED IDEOGRAPH - ,0xC5BC ,0x9AD2 //CJK UNIFIED IDEOGRAPH - ,0xC5BD ,0x9B1A //CJK UNIFIED IDEOGRAPH - ,0xC5BE ,0x9C49 //CJK UNIFIED IDEOGRAPH - ,0xC5BF ,0x9C31 //CJK UNIFIED IDEOGRAPH - ,0xC5C0 ,0x9C3E //CJK UNIFIED IDEOGRAPH - ,0xC5C1 ,0x9C3B //CJK UNIFIED IDEOGRAPH - ,0xC5C2 ,0x9DD3 //CJK UNIFIED IDEOGRAPH - ,0xC5C3 ,0x9DD7 //CJK UNIFIED IDEOGRAPH - ,0xC5C4 ,0x9F34 //CJK UNIFIED IDEOGRAPH - ,0xC5C5 ,0x9F6C //CJK UNIFIED IDEOGRAPH - ,0xC5C6 ,0x9F6A //CJK UNIFIED IDEOGRAPH - ,0xC5C7 ,0x9F94 //CJK UNIFIED IDEOGRAPH - ,0xC5C8 ,0x56CC //CJK UNIFIED IDEOGRAPH - ,0xC5C9 ,0x5DD6 //CJK UNIFIED IDEOGRAPH - ,0xC5CA ,0x6200 //CJK UNIFIED IDEOGRAPH - ,0xC5CB ,0x6523 //CJK UNIFIED IDEOGRAPH - ,0xC5CC ,0x652B //CJK UNIFIED IDEOGRAPH - ,0xC5CD ,0x652A //CJK UNIFIED IDEOGRAPH - ,0xC5CE ,0x66EC //CJK UNIFIED IDEOGRAPH - ,0xC5CF ,0x6B10 //CJK UNIFIED IDEOGRAPH - ,0xC5D0 ,0x74DA //CJK UNIFIED IDEOGRAPH - ,0xC5D1 ,0x7ACA //CJK UNIFIED IDEOGRAPH - ,0xC5D2 ,0x7C64 //CJK UNIFIED IDEOGRAPH - ,0xC5D3 ,0x7C63 //CJK UNIFIED IDEOGRAPH - ,0xC5D4 ,0x7C65 //CJK UNIFIED IDEOGRAPH - ,0xC5D5 ,0x7E93 //CJK UNIFIED IDEOGRAPH - ,0xC5D6 ,0x7E96 //CJK UNIFIED IDEOGRAPH - ,0xC5D7 ,0x7E94 //CJK UNIFIED IDEOGRAPH - ,0xC5D8 ,0x81E2 //CJK UNIFIED IDEOGRAPH - ,0xC5D9 ,0x8638 //CJK UNIFIED IDEOGRAPH - ,0xC5DA ,0x863F //CJK UNIFIED IDEOGRAPH - ,0xC5DB ,0x8831 //CJK UNIFIED IDEOGRAPH - ,0xC5DC ,0x8B8A //CJK UNIFIED IDEOGRAPH - ,0xC5DD ,0x9090 //CJK UNIFIED IDEOGRAPH - ,0xC5DE ,0x908F //CJK UNIFIED IDEOGRAPH - ,0xC5DF ,0x9463 //CJK UNIFIED IDEOGRAPH - ,0xC5E0 ,0x9460 //CJK UNIFIED IDEOGRAPH - ,0xC5E1 ,0x9464 //CJK UNIFIED IDEOGRAPH - ,0xC5E2 ,0x9768 //CJK UNIFIED IDEOGRAPH - ,0xC5E3 ,0x986F //CJK UNIFIED IDEOGRAPH - ,0xC5E4 ,0x995C //CJK UNIFIED IDEOGRAPH - ,0xC5E5 ,0x9A5A //CJK UNIFIED IDEOGRAPH - ,0xC5E6 ,0x9A5B //CJK UNIFIED IDEOGRAPH - ,0xC5E7 ,0x9A57 //CJK UNIFIED IDEOGRAPH - ,0xC5E8 ,0x9AD3 //CJK UNIFIED IDEOGRAPH - ,0xC5E9 ,0x9AD4 //CJK UNIFIED IDEOGRAPH - ,0xC5EA ,0x9AD1 //CJK UNIFIED IDEOGRAPH - ,0xC5EB ,0x9C54 //CJK UNIFIED IDEOGRAPH - ,0xC5EC ,0x9C57 //CJK UNIFIED IDEOGRAPH - ,0xC5ED ,0x9C56 //CJK UNIFIED IDEOGRAPH - ,0xC5EE ,0x9DE5 //CJK UNIFIED IDEOGRAPH - ,0xC5EF ,0x9E9F //CJK UNIFIED IDEOGRAPH - ,0xC5F0 ,0x9EF4 //CJK UNIFIED IDEOGRAPH - ,0xC5F1 ,0x56D1 //CJK UNIFIED IDEOGRAPH - ,0xC5F2 ,0x58E9 //CJK UNIFIED IDEOGRAPH - ,0xC5F3 ,0x652C //CJK UNIFIED IDEOGRAPH - ,0xC5F4 ,0x705E //CJK UNIFIED IDEOGRAPH - ,0xC5F5 ,0x7671 //CJK UNIFIED IDEOGRAPH - ,0xC5F6 ,0x7672 //CJK UNIFIED IDEOGRAPH - ,0xC5F7 ,0x77D7 //CJK UNIFIED IDEOGRAPH - ,0xC5F8 ,0x7F50 //CJK UNIFIED IDEOGRAPH - ,0xC5F9 ,0x7F88 //CJK UNIFIED IDEOGRAPH - ,0xC5FA ,0x8836 //CJK UNIFIED IDEOGRAPH - ,0xC5FB ,0x8839 //CJK UNIFIED IDEOGRAPH - ,0xC5FC ,0x8862 //CJK UNIFIED IDEOGRAPH - ,0xC5FD ,0x8B93 //CJK UNIFIED IDEOGRAPH - ,0xC5FE ,0x8B92 //CJK UNIFIED IDEOGRAPH - ,0xC640 ,0x8B96 //CJK UNIFIED IDEOGRAPH - ,0xC641 ,0x8277 //CJK UNIFIED IDEOGRAPH - ,0xC642 ,0x8D1B //CJK UNIFIED IDEOGRAPH - ,0xC643 ,0x91C0 //CJK UNIFIED IDEOGRAPH - ,0xC644 ,0x946A //CJK UNIFIED IDEOGRAPH - ,0xC645 ,0x9742 //CJK UNIFIED IDEOGRAPH - ,0xC646 ,0x9748 //CJK UNIFIED IDEOGRAPH - ,0xC647 ,0x9744 //CJK UNIFIED IDEOGRAPH - ,0xC648 ,0x97C6 //CJK UNIFIED IDEOGRAPH - ,0xC649 ,0x9870 //CJK UNIFIED IDEOGRAPH - ,0xC64A ,0x9A5F //CJK UNIFIED IDEOGRAPH - ,0xC64B ,0x9B22 //CJK UNIFIED IDEOGRAPH - ,0xC64C ,0x9B58 //CJK UNIFIED IDEOGRAPH - ,0xC64D ,0x9C5F //CJK UNIFIED IDEOGRAPH - ,0xC64E ,0x9DF9 //CJK UNIFIED IDEOGRAPH - ,0xC64F ,0x9DFA //CJK UNIFIED IDEOGRAPH - ,0xC650 ,0x9E7C //CJK UNIFIED IDEOGRAPH - ,0xC651 ,0x9E7D //CJK UNIFIED IDEOGRAPH - ,0xC652 ,0x9F07 //CJK UNIFIED IDEOGRAPH - ,0xC653 ,0x9F77 //CJK UNIFIED IDEOGRAPH - ,0xC654 ,0x9F72 //CJK UNIFIED IDEOGRAPH - ,0xC655 ,0x5EF3 //CJK UNIFIED IDEOGRAPH - ,0xC656 ,0x6B16 //CJK UNIFIED IDEOGRAPH - ,0xC657 ,0x7063 //CJK UNIFIED IDEOGRAPH - ,0xC658 ,0x7C6C //CJK UNIFIED IDEOGRAPH - ,0xC659 ,0x7C6E //CJK UNIFIED IDEOGRAPH - ,0xC65A ,0x883B //CJK UNIFIED IDEOGRAPH - ,0xC65B ,0x89C0 //CJK UNIFIED IDEOGRAPH - ,0xC65C ,0x8EA1 //CJK UNIFIED IDEOGRAPH - ,0xC65D ,0x91C1 //CJK UNIFIED IDEOGRAPH - ,0xC65E ,0x9472 //CJK UNIFIED IDEOGRAPH - ,0xC65F ,0x9470 //CJK UNIFIED IDEOGRAPH - ,0xC660 ,0x9871 //CJK UNIFIED IDEOGRAPH - ,0xC661 ,0x995E //CJK UNIFIED IDEOGRAPH - ,0xC662 ,0x9AD6 //CJK UNIFIED IDEOGRAPH - ,0xC663 ,0x9B23 //CJK UNIFIED IDEOGRAPH - ,0xC664 ,0x9ECC //CJK UNIFIED IDEOGRAPH - ,0xC665 ,0x7064 //CJK UNIFIED IDEOGRAPH - ,0xC666 ,0x77DA //CJK UNIFIED IDEOGRAPH - ,0xC667 ,0x8B9A //CJK UNIFIED IDEOGRAPH - ,0xC668 ,0x9477 //CJK UNIFIED IDEOGRAPH - ,0xC669 ,0x97C9 //CJK UNIFIED IDEOGRAPH - ,0xC66A ,0x9A62 //CJK UNIFIED IDEOGRAPH - ,0xC66B ,0x9A65 //CJK UNIFIED IDEOGRAPH - ,0xC66C ,0x7E9C //CJK UNIFIED IDEOGRAPH - ,0xC66D ,0x8B9C //CJK UNIFIED IDEOGRAPH - ,0xC66E ,0x8EAA //CJK UNIFIED IDEOGRAPH - ,0xC66F ,0x91C5 //CJK UNIFIED IDEOGRAPH - ,0xC670 ,0x947D //CJK UNIFIED IDEOGRAPH - ,0xC671 ,0x947E //CJK UNIFIED IDEOGRAPH - ,0xC672 ,0x947C //CJK UNIFIED IDEOGRAPH - ,0xC673 ,0x9C77 //CJK UNIFIED IDEOGRAPH - ,0xC674 ,0x9C78 //CJK UNIFIED IDEOGRAPH - ,0xC675 ,0x9EF7 //CJK UNIFIED IDEOGRAPH - ,0xC676 ,0x8C54 //CJK UNIFIED IDEOGRAPH - ,0xC677 ,0x947F //CJK UNIFIED IDEOGRAPH - ,0xC678 ,0x9E1A //CJK UNIFIED IDEOGRAPH - ,0xC679 ,0x7228 //CJK UNIFIED IDEOGRAPH - ,0xC67A ,0x9A6A //CJK UNIFIED IDEOGRAPH - ,0xC67B ,0x9B31 //CJK UNIFIED IDEOGRAPH - ,0xC67C ,0x9E1B //CJK UNIFIED IDEOGRAPH - ,0xC67D ,0x9E1E //CJK UNIFIED IDEOGRAPH - ,0xC67E ,0x7C72 //CJK UNIFIED IDEOGRAPH - ,0xC940 ,0x4E42 //CJK UNIFIED IDEOGRAPH - ,0xC941 ,0x4E5C //CJK UNIFIED IDEOGRAPH - ,0xC942 ,0x51F5 //CJK UNIFIED IDEOGRAPH - ,0xC943 ,0x531A //CJK UNIFIED IDEOGRAPH - ,0xC944 ,0x5382 //CJK UNIFIED IDEOGRAPH - ,0xC945 ,0x4E07 //CJK UNIFIED IDEOGRAPH - ,0xC946 ,0x4E0C //CJK UNIFIED IDEOGRAPH - ,0xC947 ,0x4E47 //CJK UNIFIED IDEOGRAPH - ,0xC948 ,0x4E8D //CJK UNIFIED IDEOGRAPH - ,0xC949 ,0x56D7 //CJK UNIFIED IDEOGRAPH - ,0xC94A ,0xFA0C //CJK COMPATIBILITY IDEOGRAPH - ,0xC94B ,0x5C6E //CJK UNIFIED IDEOGRAPH - ,0xC94C ,0x5F73 //CJK UNIFIED IDEOGRAPH - ,0xC94D ,0x4E0F //CJK UNIFIED IDEOGRAPH - ,0xC94E ,0x5187 //CJK UNIFIED IDEOGRAPH - ,0xC94F ,0x4E0E //CJK UNIFIED IDEOGRAPH - ,0xC950 ,0x4E2E //CJK UNIFIED IDEOGRAPH - ,0xC951 ,0x4E93 //CJK UNIFIED IDEOGRAPH - ,0xC952 ,0x4EC2 //CJK UNIFIED IDEOGRAPH - ,0xC953 ,0x4EC9 //CJK UNIFIED IDEOGRAPH - ,0xC954 ,0x4EC8 //CJK UNIFIED IDEOGRAPH - ,0xC955 ,0x5198 //CJK UNIFIED IDEOGRAPH - ,0xC956 ,0x52FC //CJK UNIFIED IDEOGRAPH - ,0xC957 ,0x536C //CJK UNIFIED IDEOGRAPH - ,0xC958 ,0x53B9 //CJK UNIFIED IDEOGRAPH - ,0xC959 ,0x5720 //CJK UNIFIED IDEOGRAPH - ,0xC95A ,0x5903 //CJK UNIFIED IDEOGRAPH - ,0xC95B ,0x592C //CJK UNIFIED IDEOGRAPH - ,0xC95C ,0x5C10 //CJK UNIFIED IDEOGRAPH - ,0xC95D ,0x5DFF //CJK UNIFIED IDEOGRAPH - ,0xC95E ,0x65E1 //CJK UNIFIED IDEOGRAPH - ,0xC95F ,0x6BB3 //CJK UNIFIED IDEOGRAPH - ,0xC960 ,0x6BCC //CJK UNIFIED IDEOGRAPH - ,0xC961 ,0x6C14 //CJK UNIFIED IDEOGRAPH - ,0xC962 ,0x723F //CJK UNIFIED IDEOGRAPH - ,0xC963 ,0x4E31 //CJK UNIFIED IDEOGRAPH - ,0xC964 ,0x4E3C //CJK UNIFIED IDEOGRAPH - ,0xC965 ,0x4EE8 //CJK UNIFIED IDEOGRAPH - ,0xC966 ,0x4EDC //CJK UNIFIED IDEOGRAPH - ,0xC967 ,0x4EE9 //CJK UNIFIED IDEOGRAPH - ,0xC968 ,0x4EE1 //CJK UNIFIED IDEOGRAPH - ,0xC969 ,0x4EDD //CJK UNIFIED IDEOGRAPH - ,0xC96A ,0x4EDA //CJK UNIFIED IDEOGRAPH - ,0xC96B ,0x520C //CJK UNIFIED IDEOGRAPH - ,0xC96C ,0x531C //CJK UNIFIED IDEOGRAPH - ,0xC96D ,0x534C //CJK UNIFIED IDEOGRAPH - ,0xC96E ,0x5722 //CJK UNIFIED IDEOGRAPH - ,0xC96F ,0x5723 //CJK UNIFIED IDEOGRAPH - ,0xC970 ,0x5917 //CJK UNIFIED IDEOGRAPH - ,0xC971 ,0x592F //CJK UNIFIED IDEOGRAPH - ,0xC972 ,0x5B81 //CJK UNIFIED IDEOGRAPH - ,0xC973 ,0x5B84 //CJK UNIFIED IDEOGRAPH - ,0xC974 ,0x5C12 //CJK UNIFIED IDEOGRAPH - ,0xC975 ,0x5C3B //CJK UNIFIED IDEOGRAPH - ,0xC976 ,0x5C74 //CJK UNIFIED IDEOGRAPH - ,0xC977 ,0x5C73 //CJK UNIFIED IDEOGRAPH - ,0xC978 ,0x5E04 //CJK UNIFIED IDEOGRAPH - ,0xC979 ,0x5E80 //CJK UNIFIED IDEOGRAPH - ,0xC97A ,0x5E82 //CJK UNIFIED IDEOGRAPH - ,0xC97B ,0x5FC9 //CJK UNIFIED IDEOGRAPH - ,0xC97C ,0x6209 //CJK UNIFIED IDEOGRAPH - ,0xC97D ,0x6250 //CJK UNIFIED IDEOGRAPH - ,0xC97E ,0x6C15 //CJK UNIFIED IDEOGRAPH - ,0xC9A1 ,0x6C36 //CJK UNIFIED IDEOGRAPH - ,0xC9A2 ,0x6C43 //CJK UNIFIED IDEOGRAPH - ,0xC9A3 ,0x6C3F //CJK UNIFIED IDEOGRAPH - ,0xC9A4 ,0x6C3B //CJK UNIFIED IDEOGRAPH - ,0xC9A5 ,0x72AE //CJK UNIFIED IDEOGRAPH - ,0xC9A6 ,0x72B0 //CJK UNIFIED IDEOGRAPH - ,0xC9A7 ,0x738A //CJK UNIFIED IDEOGRAPH - ,0xC9A8 ,0x79B8 //CJK UNIFIED IDEOGRAPH - ,0xC9A9 ,0x808A //CJK UNIFIED IDEOGRAPH - ,0xC9AA ,0x961E //CJK UNIFIED IDEOGRAPH - ,0xC9AB ,0x4F0E //CJK UNIFIED IDEOGRAPH - ,0xC9AC ,0x4F18 //CJK UNIFIED IDEOGRAPH - ,0xC9AD ,0x4F2C //CJK UNIFIED IDEOGRAPH - ,0xC9AE ,0x4EF5 //CJK UNIFIED IDEOGRAPH - ,0xC9AF ,0x4F14 //CJK UNIFIED IDEOGRAPH - ,0xC9B0 ,0x4EF1 //CJK UNIFIED IDEOGRAPH - ,0xC9B1 ,0x4F00 //CJK UNIFIED IDEOGRAPH - ,0xC9B2 ,0x4EF7 //CJK UNIFIED IDEOGRAPH - ,0xC9B3 ,0x4F08 //CJK UNIFIED IDEOGRAPH - ,0xC9B4 ,0x4F1D //CJK UNIFIED IDEOGRAPH - ,0xC9B5 ,0x4F02 //CJK UNIFIED IDEOGRAPH - ,0xC9B6 ,0x4F05 //CJK UNIFIED IDEOGRAPH - ,0xC9B7 ,0x4F22 //CJK UNIFIED IDEOGRAPH - ,0xC9B8 ,0x4F13 //CJK UNIFIED IDEOGRAPH - ,0xC9B9 ,0x4F04 //CJK UNIFIED IDEOGRAPH - ,0xC9BA ,0x4EF4 //CJK UNIFIED IDEOGRAPH - ,0xC9BB ,0x4F12 //CJK UNIFIED IDEOGRAPH - ,0xC9BC ,0x51B1 //CJK UNIFIED IDEOGRAPH - ,0xC9BD ,0x5213 //CJK UNIFIED IDEOGRAPH - ,0xC9BE ,0x5209 //CJK UNIFIED IDEOGRAPH - ,0xC9BF ,0x5210 //CJK UNIFIED IDEOGRAPH - ,0xC9C0 ,0x52A6 //CJK UNIFIED IDEOGRAPH - ,0xC9C1 ,0x5322 //CJK UNIFIED IDEOGRAPH - ,0xC9C2 ,0x531F //CJK UNIFIED IDEOGRAPH - ,0xC9C3 ,0x534D //CJK UNIFIED IDEOGRAPH - ,0xC9C4 ,0x538A //CJK UNIFIED IDEOGRAPH - ,0xC9C5 ,0x5407 //CJK UNIFIED IDEOGRAPH - ,0xC9C6 ,0x56E1 //CJK UNIFIED IDEOGRAPH - ,0xC9C7 ,0x56DF //CJK UNIFIED IDEOGRAPH - ,0xC9C8 ,0x572E //CJK UNIFIED IDEOGRAPH - ,0xC9C9 ,0x572A //CJK UNIFIED IDEOGRAPH - ,0xC9CA ,0x5734 //CJK UNIFIED IDEOGRAPH - ,0xC9CB ,0x593C //CJK UNIFIED IDEOGRAPH - ,0xC9CC ,0x5980 //CJK UNIFIED IDEOGRAPH - ,0xC9CD ,0x597C //CJK UNIFIED IDEOGRAPH - ,0xC9CE ,0x5985 //CJK UNIFIED IDEOGRAPH - ,0xC9CF ,0x597B //CJK UNIFIED IDEOGRAPH - ,0xC9D0 ,0x597E //CJK UNIFIED IDEOGRAPH - ,0xC9D1 ,0x5977 //CJK UNIFIED IDEOGRAPH - ,0xC9D2 ,0x597F //CJK UNIFIED IDEOGRAPH - ,0xC9D3 ,0x5B56 //CJK UNIFIED IDEOGRAPH - ,0xC9D4 ,0x5C15 //CJK UNIFIED IDEOGRAPH - ,0xC9D5 ,0x5C25 //CJK UNIFIED IDEOGRAPH - ,0xC9D6 ,0x5C7C //CJK UNIFIED IDEOGRAPH - ,0xC9D7 ,0x5C7A //CJK UNIFIED IDEOGRAPH - ,0xC9D8 ,0x5C7B //CJK UNIFIED IDEOGRAPH - ,0xC9D9 ,0x5C7E //CJK UNIFIED IDEOGRAPH - ,0xC9DA ,0x5DDF //CJK UNIFIED IDEOGRAPH - ,0xC9DB ,0x5E75 //CJK UNIFIED IDEOGRAPH - ,0xC9DC ,0x5E84 //CJK UNIFIED IDEOGRAPH - ,0xC9DD ,0x5F02 //CJK UNIFIED IDEOGRAPH - ,0xC9DE ,0x5F1A //CJK UNIFIED IDEOGRAPH - ,0xC9DF ,0x5F74 //CJK UNIFIED IDEOGRAPH - ,0xC9E0 ,0x5FD5 //CJK UNIFIED IDEOGRAPH - ,0xC9E1 ,0x5FD4 //CJK UNIFIED IDEOGRAPH - ,0xC9E2 ,0x5FCF //CJK UNIFIED IDEOGRAPH - ,0xC9E3 ,0x625C //CJK UNIFIED IDEOGRAPH - ,0xC9E4 ,0x625E //CJK UNIFIED IDEOGRAPH - ,0xC9E5 ,0x6264 //CJK UNIFIED IDEOGRAPH - ,0xC9E6 ,0x6261 //CJK UNIFIED IDEOGRAPH - ,0xC9E7 ,0x6266 //CJK UNIFIED IDEOGRAPH - ,0xC9E8 ,0x6262 //CJK UNIFIED IDEOGRAPH - ,0xC9E9 ,0x6259 //CJK UNIFIED IDEOGRAPH - ,0xC9EA ,0x6260 //CJK UNIFIED IDEOGRAPH - ,0xC9EB ,0x625A //CJK UNIFIED IDEOGRAPH - ,0xC9EC ,0x6265 //CJK UNIFIED IDEOGRAPH - ,0xC9ED ,0x65EF //CJK UNIFIED IDEOGRAPH - ,0xC9EE ,0x65EE //CJK UNIFIED IDEOGRAPH - ,0xC9EF ,0x673E //CJK UNIFIED IDEOGRAPH - ,0xC9F0 ,0x6739 //CJK UNIFIED IDEOGRAPH - ,0xC9F1 ,0x6738 //CJK UNIFIED IDEOGRAPH - ,0xC9F2 ,0x673B //CJK UNIFIED IDEOGRAPH - ,0xC9F3 ,0x673A //CJK UNIFIED IDEOGRAPH - ,0xC9F4 ,0x673F //CJK UNIFIED IDEOGRAPH - ,0xC9F5 ,0x673C //CJK UNIFIED IDEOGRAPH - ,0xC9F6 ,0x6733 //CJK UNIFIED IDEOGRAPH - ,0xC9F7 ,0x6C18 //CJK UNIFIED IDEOGRAPH - ,0xC9F8 ,0x6C46 //CJK UNIFIED IDEOGRAPH - ,0xC9F9 ,0x6C52 //CJK UNIFIED IDEOGRAPH - ,0xC9FA ,0x6C5C //CJK UNIFIED IDEOGRAPH - ,0xC9FB ,0x6C4F //CJK UNIFIED IDEOGRAPH - ,0xC9FC ,0x6C4A //CJK UNIFIED IDEOGRAPH - ,0xC9FD ,0x6C54 //CJK UNIFIED IDEOGRAPH - ,0xC9FE ,0x6C4B //CJK UNIFIED IDEOGRAPH - ,0xCA40 ,0x6C4C //CJK UNIFIED IDEOGRAPH - ,0xCA41 ,0x7071 //CJK UNIFIED IDEOGRAPH - ,0xCA42 ,0x725E //CJK UNIFIED IDEOGRAPH - ,0xCA43 ,0x72B4 //CJK UNIFIED IDEOGRAPH - ,0xCA44 ,0x72B5 //CJK UNIFIED IDEOGRAPH - ,0xCA45 ,0x738E //CJK UNIFIED IDEOGRAPH - ,0xCA46 ,0x752A //CJK UNIFIED IDEOGRAPH - ,0xCA47 ,0x767F //CJK UNIFIED IDEOGRAPH - ,0xCA48 ,0x7A75 //CJK UNIFIED IDEOGRAPH - ,0xCA49 ,0x7F51 //CJK UNIFIED IDEOGRAPH - ,0xCA4A ,0x8278 //CJK UNIFIED IDEOGRAPH - ,0xCA4B ,0x827C //CJK UNIFIED IDEOGRAPH - ,0xCA4C ,0x8280 //CJK UNIFIED IDEOGRAPH - ,0xCA4D ,0x827D //CJK UNIFIED IDEOGRAPH - ,0xCA4E ,0x827F //CJK UNIFIED IDEOGRAPH - ,0xCA4F ,0x864D //CJK UNIFIED IDEOGRAPH - ,0xCA50 ,0x897E //CJK UNIFIED IDEOGRAPH - ,0xCA51 ,0x9099 //CJK UNIFIED IDEOGRAPH - ,0xCA52 ,0x9097 //CJK UNIFIED IDEOGRAPH - ,0xCA53 ,0x9098 //CJK UNIFIED IDEOGRAPH - ,0xCA54 ,0x909B //CJK UNIFIED IDEOGRAPH - ,0xCA55 ,0x9094 //CJK UNIFIED IDEOGRAPH - ,0xCA56 ,0x9622 //CJK UNIFIED IDEOGRAPH - ,0xCA57 ,0x9624 //CJK UNIFIED IDEOGRAPH - ,0xCA58 ,0x9620 //CJK UNIFIED IDEOGRAPH - ,0xCA59 ,0x9623 //CJK UNIFIED IDEOGRAPH - ,0xCA5A ,0x4F56 //CJK UNIFIED IDEOGRAPH - ,0xCA5B ,0x4F3B //CJK UNIFIED IDEOGRAPH - ,0xCA5C ,0x4F62 //CJK UNIFIED IDEOGRAPH - ,0xCA5D ,0x4F49 //CJK UNIFIED IDEOGRAPH - ,0xCA5E ,0x4F53 //CJK UNIFIED IDEOGRAPH - ,0xCA5F ,0x4F64 //CJK UNIFIED IDEOGRAPH - ,0xCA60 ,0x4F3E //CJK UNIFIED IDEOGRAPH - ,0xCA61 ,0x4F67 //CJK UNIFIED IDEOGRAPH - ,0xCA62 ,0x4F52 //CJK UNIFIED IDEOGRAPH - ,0xCA63 ,0x4F5F //CJK UNIFIED IDEOGRAPH - ,0xCA64 ,0x4F41 //CJK UNIFIED IDEOGRAPH - ,0xCA65 ,0x4F58 //CJK UNIFIED IDEOGRAPH - ,0xCA66 ,0x4F2D //CJK UNIFIED IDEOGRAPH - ,0xCA67 ,0x4F33 //CJK UNIFIED IDEOGRAPH - ,0xCA68 ,0x4F3F //CJK UNIFIED IDEOGRAPH - ,0xCA69 ,0x4F61 //CJK UNIFIED IDEOGRAPH - ,0xCA6A ,0x518F //CJK UNIFIED IDEOGRAPH - ,0xCA6B ,0x51B9 //CJK UNIFIED IDEOGRAPH - ,0xCA6C ,0x521C //CJK UNIFIED IDEOGRAPH - ,0xCA6D ,0x521E //CJK UNIFIED IDEOGRAPH - ,0xCA6E ,0x5221 //CJK UNIFIED IDEOGRAPH - ,0xCA6F ,0x52AD //CJK UNIFIED IDEOGRAPH - ,0xCA70 ,0x52AE //CJK UNIFIED IDEOGRAPH - ,0xCA71 ,0x5309 //CJK UNIFIED IDEOGRAPH - ,0xCA72 ,0x5363 //CJK UNIFIED IDEOGRAPH - ,0xCA73 ,0x5372 //CJK UNIFIED IDEOGRAPH - ,0xCA74 ,0x538E //CJK UNIFIED IDEOGRAPH - ,0xCA75 ,0x538F //CJK UNIFIED IDEOGRAPH - ,0xCA76 ,0x5430 //CJK UNIFIED IDEOGRAPH - ,0xCA77 ,0x5437 //CJK UNIFIED IDEOGRAPH - ,0xCA78 ,0x542A //CJK UNIFIED IDEOGRAPH - ,0xCA79 ,0x5454 //CJK UNIFIED IDEOGRAPH - ,0xCA7A ,0x5445 //CJK UNIFIED IDEOGRAPH - ,0xCA7B ,0x5419 //CJK UNIFIED IDEOGRAPH - ,0xCA7C ,0x541C //CJK UNIFIED IDEOGRAPH - ,0xCA7D ,0x5425 //CJK UNIFIED IDEOGRAPH - ,0xCA7E ,0x5418 //CJK UNIFIED IDEOGRAPH - ,0xCAA1 ,0x543D //CJK UNIFIED IDEOGRAPH - ,0xCAA2 ,0x544F //CJK UNIFIED IDEOGRAPH - ,0xCAA3 ,0x5441 //CJK UNIFIED IDEOGRAPH - ,0xCAA4 ,0x5428 //CJK UNIFIED IDEOGRAPH - ,0xCAA5 ,0x5424 //CJK UNIFIED IDEOGRAPH - ,0xCAA6 ,0x5447 //CJK UNIFIED IDEOGRAPH - ,0xCAA7 ,0x56EE //CJK UNIFIED IDEOGRAPH - ,0xCAA8 ,0x56E7 //CJK UNIFIED IDEOGRAPH - ,0xCAA9 ,0x56E5 //CJK UNIFIED IDEOGRAPH - ,0xCAAA ,0x5741 //CJK UNIFIED IDEOGRAPH - ,0xCAAB ,0x5745 //CJK UNIFIED IDEOGRAPH - ,0xCAAC ,0x574C //CJK UNIFIED IDEOGRAPH - ,0xCAAD ,0x5749 //CJK UNIFIED IDEOGRAPH - ,0xCAAE ,0x574B //CJK UNIFIED IDEOGRAPH - ,0xCAAF ,0x5752 //CJK UNIFIED IDEOGRAPH - ,0xCAB0 ,0x5906 //CJK UNIFIED IDEOGRAPH - ,0xCAB1 ,0x5940 //CJK UNIFIED IDEOGRAPH - ,0xCAB2 ,0x59A6 //CJK UNIFIED IDEOGRAPH - ,0xCAB3 ,0x5998 //CJK UNIFIED IDEOGRAPH - ,0xCAB4 ,0x59A0 //CJK UNIFIED IDEOGRAPH - ,0xCAB5 ,0x5997 //CJK UNIFIED IDEOGRAPH - ,0xCAB6 ,0x598E //CJK UNIFIED IDEOGRAPH - ,0xCAB7 ,0x59A2 //CJK UNIFIED IDEOGRAPH - ,0xCAB8 ,0x5990 //CJK UNIFIED IDEOGRAPH - ,0xCAB9 ,0x598F //CJK UNIFIED IDEOGRAPH - ,0xCABA ,0x59A7 //CJK UNIFIED IDEOGRAPH - ,0xCABB ,0x59A1 //CJK UNIFIED IDEOGRAPH - ,0xCABC ,0x5B8E //CJK UNIFIED IDEOGRAPH - ,0xCABD ,0x5B92 //CJK UNIFIED IDEOGRAPH - ,0xCABE ,0x5C28 //CJK UNIFIED IDEOGRAPH - ,0xCABF ,0x5C2A //CJK UNIFIED IDEOGRAPH - ,0xCAC0 ,0x5C8D //CJK UNIFIED IDEOGRAPH - ,0xCAC1 ,0x5C8F //CJK UNIFIED IDEOGRAPH - ,0xCAC2 ,0x5C88 //CJK UNIFIED IDEOGRAPH - ,0xCAC3 ,0x5C8B //CJK UNIFIED IDEOGRAPH - ,0xCAC4 ,0x5C89 //CJK UNIFIED IDEOGRAPH - ,0xCAC5 ,0x5C92 //CJK UNIFIED IDEOGRAPH - ,0xCAC6 ,0x5C8A //CJK UNIFIED IDEOGRAPH - ,0xCAC7 ,0x5C86 //CJK UNIFIED IDEOGRAPH - ,0xCAC8 ,0x5C93 //CJK UNIFIED IDEOGRAPH - ,0xCAC9 ,0x5C95 //CJK UNIFIED IDEOGRAPH - ,0xCACA ,0x5DE0 //CJK UNIFIED IDEOGRAPH - ,0xCACB ,0x5E0A //CJK UNIFIED IDEOGRAPH - ,0xCACC ,0x5E0E //CJK UNIFIED IDEOGRAPH - ,0xCACD ,0x5E8B //CJK UNIFIED IDEOGRAPH - ,0xCACE ,0x5E89 //CJK UNIFIED IDEOGRAPH - ,0xCACF ,0x5E8C //CJK UNIFIED IDEOGRAPH - ,0xCAD0 ,0x5E88 //CJK UNIFIED IDEOGRAPH - ,0xCAD1 ,0x5E8D //CJK UNIFIED IDEOGRAPH - ,0xCAD2 ,0x5F05 //CJK UNIFIED IDEOGRAPH - ,0xCAD3 ,0x5F1D //CJK UNIFIED IDEOGRAPH - ,0xCAD4 ,0x5F78 //CJK UNIFIED IDEOGRAPH - ,0xCAD5 ,0x5F76 //CJK UNIFIED IDEOGRAPH - ,0xCAD6 ,0x5FD2 //CJK UNIFIED IDEOGRAPH - ,0xCAD7 ,0x5FD1 //CJK UNIFIED IDEOGRAPH - ,0xCAD8 ,0x5FD0 //CJK UNIFIED IDEOGRAPH - ,0xCAD9 ,0x5FED //CJK UNIFIED IDEOGRAPH - ,0xCADA ,0x5FE8 //CJK UNIFIED IDEOGRAPH - ,0xCADB ,0x5FEE //CJK UNIFIED IDEOGRAPH - ,0xCADC ,0x5FF3 //CJK UNIFIED IDEOGRAPH - ,0xCADD ,0x5FE1 //CJK UNIFIED IDEOGRAPH - ,0xCADE ,0x5FE4 //CJK UNIFIED IDEOGRAPH - ,0xCADF ,0x5FE3 //CJK UNIFIED IDEOGRAPH - ,0xCAE0 ,0x5FFA //CJK UNIFIED IDEOGRAPH - ,0xCAE1 ,0x5FEF //CJK UNIFIED IDEOGRAPH - ,0xCAE2 ,0x5FF7 //CJK UNIFIED IDEOGRAPH - ,0xCAE3 ,0x5FFB //CJK UNIFIED IDEOGRAPH - ,0xCAE4 ,0x6000 //CJK UNIFIED IDEOGRAPH - ,0xCAE5 ,0x5FF4 //CJK UNIFIED IDEOGRAPH - ,0xCAE6 ,0x623A //CJK UNIFIED IDEOGRAPH - ,0xCAE7 ,0x6283 //CJK UNIFIED IDEOGRAPH - ,0xCAE8 ,0x628C //CJK UNIFIED IDEOGRAPH - ,0xCAE9 ,0x628E //CJK UNIFIED IDEOGRAPH - ,0xCAEA ,0x628F //CJK UNIFIED IDEOGRAPH - ,0xCAEB ,0x6294 //CJK UNIFIED IDEOGRAPH - ,0xCAEC ,0x6287 //CJK UNIFIED IDEOGRAPH - ,0xCAED ,0x6271 //CJK UNIFIED IDEOGRAPH - ,0xCAEE ,0x627B //CJK UNIFIED IDEOGRAPH - ,0xCAEF ,0x627A //CJK UNIFIED IDEOGRAPH - ,0xCAF0 ,0x6270 //CJK UNIFIED IDEOGRAPH - ,0xCAF1 ,0x6281 //CJK UNIFIED IDEOGRAPH - ,0xCAF2 ,0x6288 //CJK UNIFIED IDEOGRAPH - ,0xCAF3 ,0x6277 //CJK UNIFIED IDEOGRAPH - ,0xCAF4 ,0x627D //CJK UNIFIED IDEOGRAPH - ,0xCAF5 ,0x6272 //CJK UNIFIED IDEOGRAPH - ,0xCAF6 ,0x6274 //CJK UNIFIED IDEOGRAPH - ,0xCAF7 ,0x6537 //CJK UNIFIED IDEOGRAPH - ,0xCAF8 ,0x65F0 //CJK UNIFIED IDEOGRAPH - ,0xCAF9 ,0x65F4 //CJK UNIFIED IDEOGRAPH - ,0xCAFA ,0x65F3 //CJK UNIFIED IDEOGRAPH - ,0xCAFB ,0x65F2 //CJK UNIFIED IDEOGRAPH - ,0xCAFC ,0x65F5 //CJK UNIFIED IDEOGRAPH - ,0xCAFD ,0x6745 //CJK UNIFIED IDEOGRAPH - ,0xCAFE ,0x6747 //CJK UNIFIED IDEOGRAPH - ,0xCB40 ,0x6759 //CJK UNIFIED IDEOGRAPH - ,0xCB41 ,0x6755 //CJK UNIFIED IDEOGRAPH - ,0xCB42 ,0x674C //CJK UNIFIED IDEOGRAPH - ,0xCB43 ,0x6748 //CJK UNIFIED IDEOGRAPH - ,0xCB44 ,0x675D //CJK UNIFIED IDEOGRAPH - ,0xCB45 ,0x674D //CJK UNIFIED IDEOGRAPH - ,0xCB46 ,0x675A //CJK UNIFIED IDEOGRAPH - ,0xCB47 ,0x674B //CJK UNIFIED IDEOGRAPH - ,0xCB48 ,0x6BD0 //CJK UNIFIED IDEOGRAPH - ,0xCB49 ,0x6C19 //CJK UNIFIED IDEOGRAPH - ,0xCB4A ,0x6C1A //CJK UNIFIED IDEOGRAPH - ,0xCB4B ,0x6C78 //CJK UNIFIED IDEOGRAPH - ,0xCB4C ,0x6C67 //CJK UNIFIED IDEOGRAPH - ,0xCB4D ,0x6C6B //CJK UNIFIED IDEOGRAPH - ,0xCB4E ,0x6C84 //CJK UNIFIED IDEOGRAPH - ,0xCB4F ,0x6C8B //CJK UNIFIED IDEOGRAPH - ,0xCB50 ,0x6C8F //CJK UNIFIED IDEOGRAPH - ,0xCB51 ,0x6C71 //CJK UNIFIED IDEOGRAPH - ,0xCB52 ,0x6C6F //CJK UNIFIED IDEOGRAPH - ,0xCB53 ,0x6C69 //CJK UNIFIED IDEOGRAPH - ,0xCB54 ,0x6C9A //CJK UNIFIED IDEOGRAPH - ,0xCB55 ,0x6C6D //CJK UNIFIED IDEOGRAPH - ,0xCB56 ,0x6C87 //CJK UNIFIED IDEOGRAPH - ,0xCB57 ,0x6C95 //CJK UNIFIED IDEOGRAPH - ,0xCB58 ,0x6C9C //CJK UNIFIED IDEOGRAPH - ,0xCB59 ,0x6C66 //CJK UNIFIED IDEOGRAPH - ,0xCB5A ,0x6C73 //CJK UNIFIED IDEOGRAPH - ,0xCB5B ,0x6C65 //CJK UNIFIED IDEOGRAPH - ,0xCB5C ,0x6C7B //CJK UNIFIED IDEOGRAPH - ,0xCB5D ,0x6C8E //CJK UNIFIED IDEOGRAPH - ,0xCB5E ,0x7074 //CJK UNIFIED IDEOGRAPH - ,0xCB5F ,0x707A //CJK UNIFIED IDEOGRAPH - ,0xCB60 ,0x7263 //CJK UNIFIED IDEOGRAPH - ,0xCB61 ,0x72BF //CJK UNIFIED IDEOGRAPH - ,0xCB62 ,0x72BD //CJK UNIFIED IDEOGRAPH - ,0xCB63 ,0x72C3 //CJK UNIFIED IDEOGRAPH - ,0xCB64 ,0x72C6 //CJK UNIFIED IDEOGRAPH - ,0xCB65 ,0x72C1 //CJK UNIFIED IDEOGRAPH - ,0xCB66 ,0x72BA //CJK UNIFIED IDEOGRAPH - ,0xCB67 ,0x72C5 //CJK UNIFIED IDEOGRAPH - ,0xCB68 ,0x7395 //CJK UNIFIED IDEOGRAPH - ,0xCB69 ,0x7397 //CJK UNIFIED IDEOGRAPH - ,0xCB6A ,0x7393 //CJK UNIFIED IDEOGRAPH - ,0xCB6B ,0x7394 //CJK UNIFIED IDEOGRAPH - ,0xCB6C ,0x7392 //CJK UNIFIED IDEOGRAPH - ,0xCB6D ,0x753A //CJK UNIFIED IDEOGRAPH - ,0xCB6E ,0x7539 //CJK UNIFIED IDEOGRAPH - ,0xCB6F ,0x7594 //CJK UNIFIED IDEOGRAPH - ,0xCB70 ,0x7595 //CJK UNIFIED IDEOGRAPH - ,0xCB71 ,0x7681 //CJK UNIFIED IDEOGRAPH - ,0xCB72 ,0x793D //CJK UNIFIED IDEOGRAPH - ,0xCB73 ,0x8034 //CJK UNIFIED IDEOGRAPH - ,0xCB74 ,0x8095 //CJK UNIFIED IDEOGRAPH - ,0xCB75 ,0x8099 //CJK UNIFIED IDEOGRAPH - ,0xCB76 ,0x8090 //CJK UNIFIED IDEOGRAPH - ,0xCB77 ,0x8092 //CJK UNIFIED IDEOGRAPH - ,0xCB78 ,0x809C //CJK UNIFIED IDEOGRAPH - ,0xCB79 ,0x8290 //CJK UNIFIED IDEOGRAPH - ,0xCB7A ,0x828F //CJK UNIFIED IDEOGRAPH - ,0xCB7B ,0x8285 //CJK UNIFIED IDEOGRAPH - ,0xCB7C ,0x828E //CJK UNIFIED IDEOGRAPH - ,0xCB7D ,0x8291 //CJK UNIFIED IDEOGRAPH - ,0xCB7E ,0x8293 //CJK UNIFIED IDEOGRAPH - ,0xCBA1 ,0x828A //CJK UNIFIED IDEOGRAPH - ,0xCBA2 ,0x8283 //CJK UNIFIED IDEOGRAPH - ,0xCBA3 ,0x8284 //CJK UNIFIED IDEOGRAPH - ,0xCBA4 ,0x8C78 //CJK UNIFIED IDEOGRAPH - ,0xCBA5 ,0x8FC9 //CJK UNIFIED IDEOGRAPH - ,0xCBA6 ,0x8FBF //CJK UNIFIED IDEOGRAPH - ,0xCBA7 ,0x909F //CJK UNIFIED IDEOGRAPH - ,0xCBA8 ,0x90A1 //CJK UNIFIED IDEOGRAPH - ,0xCBA9 ,0x90A5 //CJK UNIFIED IDEOGRAPH - ,0xCBAA ,0x909E //CJK UNIFIED IDEOGRAPH - ,0xCBAB ,0x90A7 //CJK UNIFIED IDEOGRAPH - ,0xCBAC ,0x90A0 //CJK UNIFIED IDEOGRAPH - ,0xCBAD ,0x9630 //CJK UNIFIED IDEOGRAPH - ,0xCBAE ,0x9628 //CJK UNIFIED IDEOGRAPH - ,0xCBAF ,0x962F //CJK UNIFIED IDEOGRAPH - ,0xCBB0 ,0x962D //CJK UNIFIED IDEOGRAPH - ,0xCBB1 ,0x4E33 //CJK UNIFIED IDEOGRAPH - ,0xCBB2 ,0x4F98 //CJK UNIFIED IDEOGRAPH - ,0xCBB3 ,0x4F7C //CJK UNIFIED IDEOGRAPH - ,0xCBB4 ,0x4F85 //CJK UNIFIED IDEOGRAPH - ,0xCBB5 ,0x4F7D //CJK UNIFIED IDEOGRAPH - ,0xCBB6 ,0x4F80 //CJK UNIFIED IDEOGRAPH - ,0xCBB7 ,0x4F87 //CJK UNIFIED IDEOGRAPH - ,0xCBB8 ,0x4F76 //CJK UNIFIED IDEOGRAPH - ,0xCBB9 ,0x4F74 //CJK UNIFIED IDEOGRAPH - ,0xCBBA ,0x4F89 //CJK UNIFIED IDEOGRAPH - ,0xCBBB ,0x4F84 //CJK UNIFIED IDEOGRAPH - ,0xCBBC ,0x4F77 //CJK UNIFIED IDEOGRAPH - ,0xCBBD ,0x4F4C //CJK UNIFIED IDEOGRAPH - ,0xCBBE ,0x4F97 //CJK UNIFIED IDEOGRAPH - ,0xCBBF ,0x4F6A //CJK UNIFIED IDEOGRAPH - ,0xCBC0 ,0x4F9A //CJK UNIFIED IDEOGRAPH - ,0xCBC1 ,0x4F79 //CJK UNIFIED IDEOGRAPH - ,0xCBC2 ,0x4F81 //CJK UNIFIED IDEOGRAPH - ,0xCBC3 ,0x4F78 //CJK UNIFIED IDEOGRAPH - ,0xCBC4 ,0x4F90 //CJK UNIFIED IDEOGRAPH - ,0xCBC5 ,0x4F9C //CJK UNIFIED IDEOGRAPH - ,0xCBC6 ,0x4F94 //CJK UNIFIED IDEOGRAPH - ,0xCBC7 ,0x4F9E //CJK UNIFIED IDEOGRAPH - ,0xCBC8 ,0x4F92 //CJK UNIFIED IDEOGRAPH - ,0xCBC9 ,0x4F82 //CJK UNIFIED IDEOGRAPH - ,0xCBCA ,0x4F95 //CJK UNIFIED IDEOGRAPH - ,0xCBCB ,0x4F6B //CJK UNIFIED IDEOGRAPH - ,0xCBCC ,0x4F6E //CJK UNIFIED IDEOGRAPH - ,0xCBCD ,0x519E //CJK UNIFIED IDEOGRAPH - ,0xCBCE ,0x51BC //CJK UNIFIED IDEOGRAPH - ,0xCBCF ,0x51BE //CJK UNIFIED IDEOGRAPH - ,0xCBD0 ,0x5235 //CJK UNIFIED IDEOGRAPH - ,0xCBD1 ,0x5232 //CJK UNIFIED IDEOGRAPH - ,0xCBD2 ,0x5233 //CJK UNIFIED IDEOGRAPH - ,0xCBD3 ,0x5246 //CJK UNIFIED IDEOGRAPH - ,0xCBD4 ,0x5231 //CJK UNIFIED IDEOGRAPH - ,0xCBD5 ,0x52BC //CJK UNIFIED IDEOGRAPH - ,0xCBD6 ,0x530A //CJK UNIFIED IDEOGRAPH - ,0xCBD7 ,0x530B //CJK UNIFIED IDEOGRAPH - ,0xCBD8 ,0x533C //CJK UNIFIED IDEOGRAPH - ,0xCBD9 ,0x5392 //CJK UNIFIED IDEOGRAPH - ,0xCBDA ,0x5394 //CJK UNIFIED IDEOGRAPH - ,0xCBDB ,0x5487 //CJK UNIFIED IDEOGRAPH - ,0xCBDC ,0x547F //CJK UNIFIED IDEOGRAPH - ,0xCBDD ,0x5481 //CJK UNIFIED IDEOGRAPH - ,0xCBDE ,0x5491 //CJK UNIFIED IDEOGRAPH - ,0xCBDF ,0x5482 //CJK UNIFIED IDEOGRAPH - ,0xCBE0 ,0x5488 //CJK UNIFIED IDEOGRAPH - ,0xCBE1 ,0x546B //CJK UNIFIED IDEOGRAPH - ,0xCBE2 ,0x547A //CJK UNIFIED IDEOGRAPH - ,0xCBE3 ,0x547E //CJK UNIFIED IDEOGRAPH - ,0xCBE4 ,0x5465 //CJK UNIFIED IDEOGRAPH - ,0xCBE5 ,0x546C //CJK UNIFIED IDEOGRAPH - ,0xCBE6 ,0x5474 //CJK UNIFIED IDEOGRAPH - ,0xCBE7 ,0x5466 //CJK UNIFIED IDEOGRAPH - ,0xCBE8 ,0x548D //CJK UNIFIED IDEOGRAPH - ,0xCBE9 ,0x546F //CJK UNIFIED IDEOGRAPH - ,0xCBEA ,0x5461 //CJK UNIFIED IDEOGRAPH - ,0xCBEB ,0x5460 //CJK UNIFIED IDEOGRAPH - ,0xCBEC ,0x5498 //CJK UNIFIED IDEOGRAPH - ,0xCBED ,0x5463 //CJK UNIFIED IDEOGRAPH - ,0xCBEE ,0x5467 //CJK UNIFIED IDEOGRAPH - ,0xCBEF ,0x5464 //CJK UNIFIED IDEOGRAPH - ,0xCBF0 ,0x56F7 //CJK UNIFIED IDEOGRAPH - ,0xCBF1 ,0x56F9 //CJK UNIFIED IDEOGRAPH - ,0xCBF2 ,0x576F //CJK UNIFIED IDEOGRAPH - ,0xCBF3 ,0x5772 //CJK UNIFIED IDEOGRAPH - ,0xCBF4 ,0x576D //CJK UNIFIED IDEOGRAPH - ,0xCBF5 ,0x576B //CJK UNIFIED IDEOGRAPH - ,0xCBF6 ,0x5771 //CJK UNIFIED IDEOGRAPH - ,0xCBF7 ,0x5770 //CJK UNIFIED IDEOGRAPH - ,0xCBF8 ,0x5776 //CJK UNIFIED IDEOGRAPH - ,0xCBF9 ,0x5780 //CJK UNIFIED IDEOGRAPH - ,0xCBFA ,0x5775 //CJK UNIFIED IDEOGRAPH - ,0xCBFB ,0x577B //CJK UNIFIED IDEOGRAPH - ,0xCBFC ,0x5773 //CJK UNIFIED IDEOGRAPH - ,0xCBFD ,0x5774 //CJK UNIFIED IDEOGRAPH - ,0xCBFE ,0x5762 //CJK UNIFIED IDEOGRAPH - ,0xCC40 ,0x5768 //CJK UNIFIED IDEOGRAPH - ,0xCC41 ,0x577D //CJK UNIFIED IDEOGRAPH - ,0xCC42 ,0x590C //CJK UNIFIED IDEOGRAPH - ,0xCC43 ,0x5945 //CJK UNIFIED IDEOGRAPH - ,0xCC44 ,0x59B5 //CJK UNIFIED IDEOGRAPH - ,0xCC45 ,0x59BA //CJK UNIFIED IDEOGRAPH - ,0xCC46 ,0x59CF //CJK UNIFIED IDEOGRAPH - ,0xCC47 ,0x59CE //CJK UNIFIED IDEOGRAPH - ,0xCC48 ,0x59B2 //CJK UNIFIED IDEOGRAPH - ,0xCC49 ,0x59CC //CJK UNIFIED IDEOGRAPH - ,0xCC4A ,0x59C1 //CJK UNIFIED IDEOGRAPH - ,0xCC4B ,0x59B6 //CJK UNIFIED IDEOGRAPH - ,0xCC4C ,0x59BC //CJK UNIFIED IDEOGRAPH - ,0xCC4D ,0x59C3 //CJK UNIFIED IDEOGRAPH - ,0xCC4E ,0x59D6 //CJK UNIFIED IDEOGRAPH - ,0xCC4F ,0x59B1 //CJK UNIFIED IDEOGRAPH - ,0xCC50 ,0x59BD //CJK UNIFIED IDEOGRAPH - ,0xCC51 ,0x59C0 //CJK UNIFIED IDEOGRAPH - ,0xCC52 ,0x59C8 //CJK UNIFIED IDEOGRAPH - ,0xCC53 ,0x59B4 //CJK UNIFIED IDEOGRAPH - ,0xCC54 ,0x59C7 //CJK UNIFIED IDEOGRAPH - ,0xCC55 ,0x5B62 //CJK UNIFIED IDEOGRAPH - ,0xCC56 ,0x5B65 //CJK UNIFIED IDEOGRAPH - ,0xCC57 ,0x5B93 //CJK UNIFIED IDEOGRAPH - ,0xCC58 ,0x5B95 //CJK UNIFIED IDEOGRAPH - ,0xCC59 ,0x5C44 //CJK UNIFIED IDEOGRAPH - ,0xCC5A ,0x5C47 //CJK UNIFIED IDEOGRAPH - ,0xCC5B ,0x5CAE //CJK UNIFIED IDEOGRAPH - ,0xCC5C ,0x5CA4 //CJK UNIFIED IDEOGRAPH - ,0xCC5D ,0x5CA0 //CJK UNIFIED IDEOGRAPH - ,0xCC5E ,0x5CB5 //CJK UNIFIED IDEOGRAPH - ,0xCC5F ,0x5CAF //CJK UNIFIED IDEOGRAPH - ,0xCC60 ,0x5CA8 //CJK UNIFIED IDEOGRAPH - ,0xCC61 ,0x5CAC //CJK UNIFIED IDEOGRAPH - ,0xCC62 ,0x5C9F //CJK UNIFIED IDEOGRAPH - ,0xCC63 ,0x5CA3 //CJK UNIFIED IDEOGRAPH - ,0xCC64 ,0x5CAD //CJK UNIFIED IDEOGRAPH - ,0xCC65 ,0x5CA2 //CJK UNIFIED IDEOGRAPH - ,0xCC66 ,0x5CAA //CJK UNIFIED IDEOGRAPH - ,0xCC67 ,0x5CA7 //CJK UNIFIED IDEOGRAPH - ,0xCC68 ,0x5C9D //CJK UNIFIED IDEOGRAPH - ,0xCC69 ,0x5CA5 //CJK UNIFIED IDEOGRAPH - ,0xCC6A ,0x5CB6 //CJK UNIFIED IDEOGRAPH - ,0xCC6B ,0x5CB0 //CJK UNIFIED IDEOGRAPH - ,0xCC6C ,0x5CA6 //CJK UNIFIED IDEOGRAPH - ,0xCC6D ,0x5E17 //CJK UNIFIED IDEOGRAPH - ,0xCC6E ,0x5E14 //CJK UNIFIED IDEOGRAPH - ,0xCC6F ,0x5E19 //CJK UNIFIED IDEOGRAPH - ,0xCC70 ,0x5F28 //CJK UNIFIED IDEOGRAPH - ,0xCC71 ,0x5F22 //CJK UNIFIED IDEOGRAPH - ,0xCC72 ,0x5F23 //CJK UNIFIED IDEOGRAPH - ,0xCC73 ,0x5F24 //CJK UNIFIED IDEOGRAPH - ,0xCC74 ,0x5F54 //CJK UNIFIED IDEOGRAPH - ,0xCC75 ,0x5F82 //CJK UNIFIED IDEOGRAPH - ,0xCC76 ,0x5F7E //CJK UNIFIED IDEOGRAPH - ,0xCC77 ,0x5F7D //CJK UNIFIED IDEOGRAPH - ,0xCC78 ,0x5FDE //CJK UNIFIED IDEOGRAPH - ,0xCC79 ,0x5FE5 //CJK UNIFIED IDEOGRAPH - ,0xCC7A ,0x602D //CJK UNIFIED IDEOGRAPH - ,0xCC7B ,0x6026 //CJK UNIFIED IDEOGRAPH - ,0xCC7C ,0x6019 //CJK UNIFIED IDEOGRAPH - ,0xCC7D ,0x6032 //CJK UNIFIED IDEOGRAPH - ,0xCC7E ,0x600B //CJK UNIFIED IDEOGRAPH - ,0xCCA1 ,0x6034 //CJK UNIFIED IDEOGRAPH - ,0xCCA2 ,0x600A //CJK UNIFIED IDEOGRAPH - ,0xCCA3 ,0x6017 //CJK UNIFIED IDEOGRAPH - ,0xCCA4 ,0x6033 //CJK UNIFIED IDEOGRAPH - ,0xCCA5 ,0x601A //CJK UNIFIED IDEOGRAPH - ,0xCCA6 ,0x601E //CJK UNIFIED IDEOGRAPH - ,0xCCA7 ,0x602C //CJK UNIFIED IDEOGRAPH - ,0xCCA8 ,0x6022 //CJK UNIFIED IDEOGRAPH - ,0xCCA9 ,0x600D //CJK UNIFIED IDEOGRAPH - ,0xCCAA ,0x6010 //CJK UNIFIED IDEOGRAPH - ,0xCCAB ,0x602E //CJK UNIFIED IDEOGRAPH - ,0xCCAC ,0x6013 //CJK UNIFIED IDEOGRAPH - ,0xCCAD ,0x6011 //CJK UNIFIED IDEOGRAPH - ,0xCCAE ,0x600C //CJK UNIFIED IDEOGRAPH - ,0xCCAF ,0x6009 //CJK UNIFIED IDEOGRAPH - ,0xCCB0 ,0x601C //CJK UNIFIED IDEOGRAPH - ,0xCCB1 ,0x6214 //CJK UNIFIED IDEOGRAPH - ,0xCCB2 ,0x623D //CJK UNIFIED IDEOGRAPH - ,0xCCB3 ,0x62AD //CJK UNIFIED IDEOGRAPH - ,0xCCB4 ,0x62B4 //CJK UNIFIED IDEOGRAPH - ,0xCCB5 ,0x62D1 //CJK UNIFIED IDEOGRAPH - ,0xCCB6 ,0x62BE //CJK UNIFIED IDEOGRAPH - ,0xCCB7 ,0x62AA //CJK UNIFIED IDEOGRAPH - ,0xCCB8 ,0x62B6 //CJK UNIFIED IDEOGRAPH - ,0xCCB9 ,0x62CA //CJK UNIFIED IDEOGRAPH - ,0xCCBA ,0x62AE //CJK UNIFIED IDEOGRAPH - ,0xCCBB ,0x62B3 //CJK UNIFIED IDEOGRAPH - ,0xCCBC ,0x62AF //CJK UNIFIED IDEOGRAPH - ,0xCCBD ,0x62BB //CJK UNIFIED IDEOGRAPH - ,0xCCBE ,0x62A9 //CJK UNIFIED IDEOGRAPH - ,0xCCBF ,0x62B0 //CJK UNIFIED IDEOGRAPH - ,0xCCC0 ,0x62B8 //CJK UNIFIED IDEOGRAPH - ,0xCCC1 ,0x653D //CJK UNIFIED IDEOGRAPH - ,0xCCC2 ,0x65A8 //CJK UNIFIED IDEOGRAPH - ,0xCCC3 ,0x65BB //CJK UNIFIED IDEOGRAPH - ,0xCCC4 ,0x6609 //CJK UNIFIED IDEOGRAPH - ,0xCCC5 ,0x65FC //CJK UNIFIED IDEOGRAPH - ,0xCCC6 ,0x6604 //CJK UNIFIED IDEOGRAPH - ,0xCCC7 ,0x6612 //CJK UNIFIED IDEOGRAPH - ,0xCCC8 ,0x6608 //CJK UNIFIED IDEOGRAPH - ,0xCCC9 ,0x65FB //CJK UNIFIED IDEOGRAPH - ,0xCCCA ,0x6603 //CJK UNIFIED IDEOGRAPH - ,0xCCCB ,0x660B //CJK UNIFIED IDEOGRAPH - ,0xCCCC ,0x660D //CJK UNIFIED IDEOGRAPH - ,0xCCCD ,0x6605 //CJK UNIFIED IDEOGRAPH - ,0xCCCE ,0x65FD //CJK UNIFIED IDEOGRAPH - ,0xCCCF ,0x6611 //CJK UNIFIED IDEOGRAPH - ,0xCCD0 ,0x6610 //CJK UNIFIED IDEOGRAPH - ,0xCCD1 ,0x66F6 //CJK UNIFIED IDEOGRAPH - ,0xCCD2 ,0x670A //CJK UNIFIED IDEOGRAPH - ,0xCCD3 ,0x6785 //CJK UNIFIED IDEOGRAPH - ,0xCCD4 ,0x676C //CJK UNIFIED IDEOGRAPH - ,0xCCD5 ,0x678E //CJK UNIFIED IDEOGRAPH - ,0xCCD6 ,0x6792 //CJK UNIFIED IDEOGRAPH - ,0xCCD7 ,0x6776 //CJK UNIFIED IDEOGRAPH - ,0xCCD8 ,0x677B //CJK UNIFIED IDEOGRAPH - ,0xCCD9 ,0x6798 //CJK UNIFIED IDEOGRAPH - ,0xCCDA ,0x6786 //CJK UNIFIED IDEOGRAPH - ,0xCCDB ,0x6784 //CJK UNIFIED IDEOGRAPH - ,0xCCDC ,0x6774 //CJK UNIFIED IDEOGRAPH - ,0xCCDD ,0x678D //CJK UNIFIED IDEOGRAPH - ,0xCCDE ,0x678C //CJK UNIFIED IDEOGRAPH - ,0xCCDF ,0x677A //CJK UNIFIED IDEOGRAPH - ,0xCCE0 ,0x679F //CJK UNIFIED IDEOGRAPH - ,0xCCE1 ,0x6791 //CJK UNIFIED IDEOGRAPH - ,0xCCE2 ,0x6799 //CJK UNIFIED IDEOGRAPH - ,0xCCE3 ,0x6783 //CJK UNIFIED IDEOGRAPH - ,0xCCE4 ,0x677D //CJK UNIFIED IDEOGRAPH - ,0xCCE5 ,0x6781 //CJK UNIFIED IDEOGRAPH - ,0xCCE6 ,0x6778 //CJK UNIFIED IDEOGRAPH - ,0xCCE7 ,0x6779 //CJK UNIFIED IDEOGRAPH - ,0xCCE8 ,0x6794 //CJK UNIFIED IDEOGRAPH - ,0xCCE9 ,0x6B25 //CJK UNIFIED IDEOGRAPH - ,0xCCEA ,0x6B80 //CJK UNIFIED IDEOGRAPH - ,0xCCEB ,0x6B7E //CJK UNIFIED IDEOGRAPH - ,0xCCEC ,0x6BDE //CJK UNIFIED IDEOGRAPH - ,0xCCED ,0x6C1D //CJK UNIFIED IDEOGRAPH - ,0xCCEE ,0x6C93 //CJK UNIFIED IDEOGRAPH - ,0xCCEF ,0x6CEC //CJK UNIFIED IDEOGRAPH - ,0xCCF0 ,0x6CEB //CJK UNIFIED IDEOGRAPH - ,0xCCF1 ,0x6CEE //CJK UNIFIED IDEOGRAPH - ,0xCCF2 ,0x6CD9 //CJK UNIFIED IDEOGRAPH - ,0xCCF3 ,0x6CB6 //CJK UNIFIED IDEOGRAPH - ,0xCCF4 ,0x6CD4 //CJK UNIFIED IDEOGRAPH - ,0xCCF5 ,0x6CAD //CJK UNIFIED IDEOGRAPH - ,0xCCF6 ,0x6CE7 //CJK UNIFIED IDEOGRAPH - ,0xCCF7 ,0x6CB7 //CJK UNIFIED IDEOGRAPH - ,0xCCF8 ,0x6CD0 //CJK UNIFIED IDEOGRAPH - ,0xCCF9 ,0x6CC2 //CJK UNIFIED IDEOGRAPH - ,0xCCFA ,0x6CBA //CJK UNIFIED IDEOGRAPH - ,0xCCFB ,0x6CC3 //CJK UNIFIED IDEOGRAPH - ,0xCCFC ,0x6CC6 //CJK UNIFIED IDEOGRAPH - ,0xCCFD ,0x6CED //CJK UNIFIED IDEOGRAPH - ,0xCCFE ,0x6CF2 //CJK UNIFIED IDEOGRAPH - ,0xCD40 ,0x6CD2 //CJK UNIFIED IDEOGRAPH - ,0xCD41 ,0x6CDD //CJK UNIFIED IDEOGRAPH - ,0xCD42 ,0x6CB4 //CJK UNIFIED IDEOGRAPH - ,0xCD43 ,0x6C8A //CJK UNIFIED IDEOGRAPH - ,0xCD44 ,0x6C9D //CJK UNIFIED IDEOGRAPH - ,0xCD45 ,0x6C80 //CJK UNIFIED IDEOGRAPH - ,0xCD46 ,0x6CDE //CJK UNIFIED IDEOGRAPH - ,0xCD47 ,0x6CC0 //CJK UNIFIED IDEOGRAPH - ,0xCD48 ,0x6D30 //CJK UNIFIED IDEOGRAPH - ,0xCD49 ,0x6CCD //CJK UNIFIED IDEOGRAPH - ,0xCD4A ,0x6CC7 //CJK UNIFIED IDEOGRAPH - ,0xCD4B ,0x6CB0 //CJK UNIFIED IDEOGRAPH - ,0xCD4C ,0x6CF9 //CJK UNIFIED IDEOGRAPH - ,0xCD4D ,0x6CCF //CJK UNIFIED IDEOGRAPH - ,0xCD4E ,0x6CE9 //CJK UNIFIED IDEOGRAPH - ,0xCD4F ,0x6CD1 //CJK UNIFIED IDEOGRAPH - ,0xCD50 ,0x7094 //CJK UNIFIED IDEOGRAPH - ,0xCD51 ,0x7098 //CJK UNIFIED IDEOGRAPH - ,0xCD52 ,0x7085 //CJK UNIFIED IDEOGRAPH - ,0xCD53 ,0x7093 //CJK UNIFIED IDEOGRAPH - ,0xCD54 ,0x7086 //CJK UNIFIED IDEOGRAPH - ,0xCD55 ,0x7084 //CJK UNIFIED IDEOGRAPH - ,0xCD56 ,0x7091 //CJK UNIFIED IDEOGRAPH - ,0xCD57 ,0x7096 //CJK UNIFIED IDEOGRAPH - ,0xCD58 ,0x7082 //CJK UNIFIED IDEOGRAPH - ,0xCD59 ,0x709A //CJK UNIFIED IDEOGRAPH - ,0xCD5A ,0x7083 //CJK UNIFIED IDEOGRAPH - ,0xCD5B ,0x726A //CJK UNIFIED IDEOGRAPH - ,0xCD5C ,0x72D6 //CJK UNIFIED IDEOGRAPH - ,0xCD5D ,0x72CB //CJK UNIFIED IDEOGRAPH - ,0xCD5E ,0x72D8 //CJK UNIFIED IDEOGRAPH - ,0xCD5F ,0x72C9 //CJK UNIFIED IDEOGRAPH - ,0xCD60 ,0x72DC //CJK UNIFIED IDEOGRAPH - ,0xCD61 ,0x72D2 //CJK UNIFIED IDEOGRAPH - ,0xCD62 ,0x72D4 //CJK UNIFIED IDEOGRAPH - ,0xCD63 ,0x72DA //CJK UNIFIED IDEOGRAPH - ,0xCD64 ,0x72CC //CJK UNIFIED IDEOGRAPH - ,0xCD65 ,0x72D1 //CJK UNIFIED IDEOGRAPH - ,0xCD66 ,0x73A4 //CJK UNIFIED IDEOGRAPH - ,0xCD67 ,0x73A1 //CJK UNIFIED IDEOGRAPH - ,0xCD68 ,0x73AD //CJK UNIFIED IDEOGRAPH - ,0xCD69 ,0x73A6 //CJK UNIFIED IDEOGRAPH - ,0xCD6A ,0x73A2 //CJK UNIFIED IDEOGRAPH - ,0xCD6B ,0x73A0 //CJK UNIFIED IDEOGRAPH - ,0xCD6C ,0x73AC //CJK UNIFIED IDEOGRAPH - ,0xCD6D ,0x739D //CJK UNIFIED IDEOGRAPH - ,0xCD6E ,0x74DD //CJK UNIFIED IDEOGRAPH - ,0xCD6F ,0x74E8 //CJK UNIFIED IDEOGRAPH - ,0xCD70 ,0x753F //CJK UNIFIED IDEOGRAPH - ,0xCD71 ,0x7540 //CJK UNIFIED IDEOGRAPH - ,0xCD72 ,0x753E //CJK UNIFIED IDEOGRAPH - ,0xCD73 ,0x758C //CJK UNIFIED IDEOGRAPH - ,0xCD74 ,0x7598 //CJK UNIFIED IDEOGRAPH - ,0xCD75 ,0x76AF //CJK UNIFIED IDEOGRAPH - ,0xCD76 ,0x76F3 //CJK UNIFIED IDEOGRAPH - ,0xCD77 ,0x76F1 //CJK UNIFIED IDEOGRAPH - ,0xCD78 ,0x76F0 //CJK UNIFIED IDEOGRAPH - ,0xCD79 ,0x76F5 //CJK UNIFIED IDEOGRAPH - ,0xCD7A ,0x77F8 //CJK UNIFIED IDEOGRAPH - ,0xCD7B ,0x77FC //CJK UNIFIED IDEOGRAPH - ,0xCD7C ,0x77F9 //CJK UNIFIED IDEOGRAPH - ,0xCD7D ,0x77FB //CJK UNIFIED IDEOGRAPH - ,0xCD7E ,0x77FA //CJK UNIFIED IDEOGRAPH - ,0xCDA1 ,0x77F7 //CJK UNIFIED IDEOGRAPH - ,0xCDA2 ,0x7942 //CJK UNIFIED IDEOGRAPH - ,0xCDA3 ,0x793F //CJK UNIFIED IDEOGRAPH - ,0xCDA4 ,0x79C5 //CJK UNIFIED IDEOGRAPH - ,0xCDA5 ,0x7A78 //CJK UNIFIED IDEOGRAPH - ,0xCDA6 ,0x7A7B //CJK UNIFIED IDEOGRAPH - ,0xCDA7 ,0x7AFB //CJK UNIFIED IDEOGRAPH - ,0xCDA8 ,0x7C75 //CJK UNIFIED IDEOGRAPH - ,0xCDA9 ,0x7CFD //CJK UNIFIED IDEOGRAPH - ,0xCDAA ,0x8035 //CJK UNIFIED IDEOGRAPH - ,0xCDAB ,0x808F //CJK UNIFIED IDEOGRAPH - ,0xCDAC ,0x80AE //CJK UNIFIED IDEOGRAPH - ,0xCDAD ,0x80A3 //CJK UNIFIED IDEOGRAPH - ,0xCDAE ,0x80B8 //CJK UNIFIED IDEOGRAPH - ,0xCDAF ,0x80B5 //CJK UNIFIED IDEOGRAPH - ,0xCDB0 ,0x80AD //CJK UNIFIED IDEOGRAPH - ,0xCDB1 ,0x8220 //CJK UNIFIED IDEOGRAPH - ,0xCDB2 ,0x82A0 //CJK UNIFIED IDEOGRAPH - ,0xCDB3 ,0x82C0 //CJK UNIFIED IDEOGRAPH - ,0xCDB4 ,0x82AB //CJK UNIFIED IDEOGRAPH - ,0xCDB5 ,0x829A //CJK UNIFIED IDEOGRAPH - ,0xCDB6 ,0x8298 //CJK UNIFIED IDEOGRAPH - ,0xCDB7 ,0x829B //CJK UNIFIED IDEOGRAPH - ,0xCDB8 ,0x82B5 //CJK UNIFIED IDEOGRAPH - ,0xCDB9 ,0x82A7 //CJK UNIFIED IDEOGRAPH - ,0xCDBA ,0x82AE //CJK UNIFIED IDEOGRAPH - ,0xCDBB ,0x82BC //CJK UNIFIED IDEOGRAPH - ,0xCDBC ,0x829E //CJK UNIFIED IDEOGRAPH - ,0xCDBD ,0x82BA //CJK UNIFIED IDEOGRAPH - ,0xCDBE ,0x82B4 //CJK UNIFIED IDEOGRAPH - ,0xCDBF ,0x82A8 //CJK UNIFIED IDEOGRAPH - ,0xCDC0 ,0x82A1 //CJK UNIFIED IDEOGRAPH - ,0xCDC1 ,0x82A9 //CJK UNIFIED IDEOGRAPH - ,0xCDC2 ,0x82C2 //CJK UNIFIED IDEOGRAPH - ,0xCDC3 ,0x82A4 //CJK UNIFIED IDEOGRAPH - ,0xCDC4 ,0x82C3 //CJK UNIFIED IDEOGRAPH - ,0xCDC5 ,0x82B6 //CJK UNIFIED IDEOGRAPH - ,0xCDC6 ,0x82A2 //CJK UNIFIED IDEOGRAPH - ,0xCDC7 ,0x8670 //CJK UNIFIED IDEOGRAPH - ,0xCDC8 ,0x866F //CJK UNIFIED IDEOGRAPH - ,0xCDC9 ,0x866D //CJK UNIFIED IDEOGRAPH - ,0xCDCA ,0x866E //CJK UNIFIED IDEOGRAPH - ,0xCDCB ,0x8C56 //CJK UNIFIED IDEOGRAPH - ,0xCDCC ,0x8FD2 //CJK UNIFIED IDEOGRAPH - ,0xCDCD ,0x8FCB //CJK UNIFIED IDEOGRAPH - ,0xCDCE ,0x8FD3 //CJK UNIFIED IDEOGRAPH - ,0xCDCF ,0x8FCD //CJK UNIFIED IDEOGRAPH - ,0xCDD0 ,0x8FD6 //CJK UNIFIED IDEOGRAPH - ,0xCDD1 ,0x8FD5 //CJK UNIFIED IDEOGRAPH - ,0xCDD2 ,0x8FD7 //CJK UNIFIED IDEOGRAPH - ,0xCDD3 ,0x90B2 //CJK UNIFIED IDEOGRAPH - ,0xCDD4 ,0x90B4 //CJK UNIFIED IDEOGRAPH - ,0xCDD5 ,0x90AF //CJK UNIFIED IDEOGRAPH - ,0xCDD6 ,0x90B3 //CJK UNIFIED IDEOGRAPH - ,0xCDD7 ,0x90B0 //CJK UNIFIED IDEOGRAPH - ,0xCDD8 ,0x9639 //CJK UNIFIED IDEOGRAPH - ,0xCDD9 ,0x963D //CJK UNIFIED IDEOGRAPH - ,0xCDDA ,0x963C //CJK UNIFIED IDEOGRAPH - ,0xCDDB ,0x963A //CJK UNIFIED IDEOGRAPH - ,0xCDDC ,0x9643 //CJK UNIFIED IDEOGRAPH - ,0xCDDD ,0x4FCD //CJK UNIFIED IDEOGRAPH - ,0xCDDE ,0x4FC5 //CJK UNIFIED IDEOGRAPH - ,0xCDDF ,0x4FD3 //CJK UNIFIED IDEOGRAPH - ,0xCDE0 ,0x4FB2 //CJK UNIFIED IDEOGRAPH - ,0xCDE1 ,0x4FC9 //CJK UNIFIED IDEOGRAPH - ,0xCDE2 ,0x4FCB //CJK UNIFIED IDEOGRAPH - ,0xCDE3 ,0x4FC1 //CJK UNIFIED IDEOGRAPH - ,0xCDE4 ,0x4FD4 //CJK UNIFIED IDEOGRAPH - ,0xCDE5 ,0x4FDC //CJK UNIFIED IDEOGRAPH - ,0xCDE6 ,0x4FD9 //CJK UNIFIED IDEOGRAPH - ,0xCDE7 ,0x4FBB //CJK UNIFIED IDEOGRAPH - ,0xCDE8 ,0x4FB3 //CJK UNIFIED IDEOGRAPH - ,0xCDE9 ,0x4FDB //CJK UNIFIED IDEOGRAPH - ,0xCDEA ,0x4FC7 //CJK UNIFIED IDEOGRAPH - ,0xCDEB ,0x4FD6 //CJK UNIFIED IDEOGRAPH - ,0xCDEC ,0x4FBA //CJK UNIFIED IDEOGRAPH - ,0xCDED ,0x4FC0 //CJK UNIFIED IDEOGRAPH - ,0xCDEE ,0x4FB9 //CJK UNIFIED IDEOGRAPH - ,0xCDEF ,0x4FEC //CJK UNIFIED IDEOGRAPH - ,0xCDF0 ,0x5244 //CJK UNIFIED IDEOGRAPH - ,0xCDF1 ,0x5249 //CJK UNIFIED IDEOGRAPH - ,0xCDF2 ,0x52C0 //CJK UNIFIED IDEOGRAPH - ,0xCDF3 ,0x52C2 //CJK UNIFIED IDEOGRAPH - ,0xCDF4 ,0x533D //CJK UNIFIED IDEOGRAPH - ,0xCDF5 ,0x537C //CJK UNIFIED IDEOGRAPH - ,0xCDF6 ,0x5397 //CJK UNIFIED IDEOGRAPH - ,0xCDF7 ,0x5396 //CJK UNIFIED IDEOGRAPH - ,0xCDF8 ,0x5399 //CJK UNIFIED IDEOGRAPH - ,0xCDF9 ,0x5398 //CJK UNIFIED IDEOGRAPH - ,0xCDFA ,0x54BA //CJK UNIFIED IDEOGRAPH - ,0xCDFB ,0x54A1 //CJK UNIFIED IDEOGRAPH - ,0xCDFC ,0x54AD //CJK UNIFIED IDEOGRAPH - ,0xCDFD ,0x54A5 //CJK UNIFIED IDEOGRAPH - ,0xCDFE ,0x54CF //CJK UNIFIED IDEOGRAPH - ,0xCE40 ,0x54C3 //CJK UNIFIED IDEOGRAPH - ,0xCE41 ,0x830D //CJK UNIFIED IDEOGRAPH - ,0xCE42 ,0x54B7 //CJK UNIFIED IDEOGRAPH - ,0xCE43 ,0x54AE //CJK UNIFIED IDEOGRAPH - ,0xCE44 ,0x54D6 //CJK UNIFIED IDEOGRAPH - ,0xCE45 ,0x54B6 //CJK UNIFIED IDEOGRAPH - ,0xCE46 ,0x54C5 //CJK UNIFIED IDEOGRAPH - ,0xCE47 ,0x54C6 //CJK UNIFIED IDEOGRAPH - ,0xCE48 ,0x54A0 //CJK UNIFIED IDEOGRAPH - ,0xCE49 ,0x5470 //CJK UNIFIED IDEOGRAPH - ,0xCE4A ,0x54BC //CJK UNIFIED IDEOGRAPH - ,0xCE4B ,0x54A2 //CJK UNIFIED IDEOGRAPH - ,0xCE4C ,0x54BE //CJK UNIFIED IDEOGRAPH - ,0xCE4D ,0x5472 //CJK UNIFIED IDEOGRAPH - ,0xCE4E ,0x54DE //CJK UNIFIED IDEOGRAPH - ,0xCE4F ,0x54B0 //CJK UNIFIED IDEOGRAPH - ,0xCE50 ,0x57B5 //CJK UNIFIED IDEOGRAPH - ,0xCE51 ,0x579E //CJK UNIFIED IDEOGRAPH - ,0xCE52 ,0x579F //CJK UNIFIED IDEOGRAPH - ,0xCE53 ,0x57A4 //CJK UNIFIED IDEOGRAPH - ,0xCE54 ,0x578C //CJK UNIFIED IDEOGRAPH - ,0xCE55 ,0x5797 //CJK UNIFIED IDEOGRAPH - ,0xCE56 ,0x579D //CJK UNIFIED IDEOGRAPH - ,0xCE57 ,0x579B //CJK UNIFIED IDEOGRAPH - ,0xCE58 ,0x5794 //CJK UNIFIED IDEOGRAPH - ,0xCE59 ,0x5798 //CJK UNIFIED IDEOGRAPH - ,0xCE5A ,0x578F //CJK UNIFIED IDEOGRAPH - ,0xCE5B ,0x5799 //CJK UNIFIED IDEOGRAPH - ,0xCE5C ,0x57A5 //CJK UNIFIED IDEOGRAPH - ,0xCE5D ,0x579A //CJK UNIFIED IDEOGRAPH - ,0xCE5E ,0x5795 //CJK UNIFIED IDEOGRAPH - ,0xCE5F ,0x58F4 //CJK UNIFIED IDEOGRAPH - ,0xCE60 ,0x590D //CJK UNIFIED IDEOGRAPH - ,0xCE61 ,0x5953 //CJK UNIFIED IDEOGRAPH - ,0xCE62 ,0x59E1 //CJK UNIFIED IDEOGRAPH - ,0xCE63 ,0x59DE //CJK UNIFIED IDEOGRAPH - ,0xCE64 ,0x59EE //CJK UNIFIED IDEOGRAPH - ,0xCE65 ,0x5A00 //CJK UNIFIED IDEOGRAPH - ,0xCE66 ,0x59F1 //CJK UNIFIED IDEOGRAPH - ,0xCE67 ,0x59DD //CJK UNIFIED IDEOGRAPH - ,0xCE68 ,0x59FA //CJK UNIFIED IDEOGRAPH - ,0xCE69 ,0x59FD //CJK UNIFIED IDEOGRAPH - ,0xCE6A ,0x59FC //CJK UNIFIED IDEOGRAPH - ,0xCE6B ,0x59F6 //CJK UNIFIED IDEOGRAPH - ,0xCE6C ,0x59E4 //CJK UNIFIED IDEOGRAPH - ,0xCE6D ,0x59F2 //CJK UNIFIED IDEOGRAPH - ,0xCE6E ,0x59F7 //CJK UNIFIED IDEOGRAPH - ,0xCE6F ,0x59DB //CJK UNIFIED IDEOGRAPH - ,0xCE70 ,0x59E9 //CJK UNIFIED IDEOGRAPH - ,0xCE71 ,0x59F3 //CJK UNIFIED IDEOGRAPH - ,0xCE72 ,0x59F5 //CJK UNIFIED IDEOGRAPH - ,0xCE73 ,0x59E0 //CJK UNIFIED IDEOGRAPH - ,0xCE74 ,0x59FE //CJK UNIFIED IDEOGRAPH - ,0xCE75 ,0x59F4 //CJK UNIFIED IDEOGRAPH - ,0xCE76 ,0x59ED //CJK UNIFIED IDEOGRAPH - ,0xCE77 ,0x5BA8 //CJK UNIFIED IDEOGRAPH - ,0xCE78 ,0x5C4C //CJK UNIFIED IDEOGRAPH - ,0xCE79 ,0x5CD0 //CJK UNIFIED IDEOGRAPH - ,0xCE7A ,0x5CD8 //CJK UNIFIED IDEOGRAPH - ,0xCE7B ,0x5CCC //CJK UNIFIED IDEOGRAPH - ,0xCE7C ,0x5CD7 //CJK UNIFIED IDEOGRAPH - ,0xCE7D ,0x5CCB //CJK UNIFIED IDEOGRAPH - ,0xCE7E ,0x5CDB //CJK UNIFIED IDEOGRAPH - ,0xCEA1 ,0x5CDE //CJK UNIFIED IDEOGRAPH - ,0xCEA2 ,0x5CDA //CJK UNIFIED IDEOGRAPH - ,0xCEA3 ,0x5CC9 //CJK UNIFIED IDEOGRAPH - ,0xCEA4 ,0x5CC7 //CJK UNIFIED IDEOGRAPH - ,0xCEA5 ,0x5CCA //CJK UNIFIED IDEOGRAPH - ,0xCEA6 ,0x5CD6 //CJK UNIFIED IDEOGRAPH - ,0xCEA7 ,0x5CD3 //CJK UNIFIED IDEOGRAPH - ,0xCEA8 ,0x5CD4 //CJK UNIFIED IDEOGRAPH - ,0xCEA9 ,0x5CCF //CJK UNIFIED IDEOGRAPH - ,0xCEAA ,0x5CC8 //CJK UNIFIED IDEOGRAPH - ,0xCEAB ,0x5CC6 //CJK UNIFIED IDEOGRAPH - ,0xCEAC ,0x5CCE //CJK UNIFIED IDEOGRAPH - ,0xCEAD ,0x5CDF //CJK UNIFIED IDEOGRAPH - ,0xCEAE ,0x5CF8 //CJK UNIFIED IDEOGRAPH - ,0xCEAF ,0x5DF9 //CJK UNIFIED IDEOGRAPH - ,0xCEB0 ,0x5E21 //CJK UNIFIED IDEOGRAPH - ,0xCEB1 ,0x5E22 //CJK UNIFIED IDEOGRAPH - ,0xCEB2 ,0x5E23 //CJK UNIFIED IDEOGRAPH - ,0xCEB3 ,0x5E20 //CJK UNIFIED IDEOGRAPH - ,0xCEB4 ,0x5E24 //CJK UNIFIED IDEOGRAPH - ,0xCEB5 ,0x5EB0 //CJK UNIFIED IDEOGRAPH - ,0xCEB6 ,0x5EA4 //CJK UNIFIED IDEOGRAPH - ,0xCEB7 ,0x5EA2 //CJK UNIFIED IDEOGRAPH - ,0xCEB8 ,0x5E9B //CJK UNIFIED IDEOGRAPH - ,0xCEB9 ,0x5EA3 //CJK UNIFIED IDEOGRAPH - ,0xCEBA ,0x5EA5 //CJK UNIFIED IDEOGRAPH - ,0xCEBB ,0x5F07 //CJK UNIFIED IDEOGRAPH - ,0xCEBC ,0x5F2E //CJK UNIFIED IDEOGRAPH - ,0xCEBD ,0x5F56 //CJK UNIFIED IDEOGRAPH - ,0xCEBE ,0x5F86 //CJK UNIFIED IDEOGRAPH - ,0xCEBF ,0x6037 //CJK UNIFIED IDEOGRAPH - ,0xCEC0 ,0x6039 //CJK UNIFIED IDEOGRAPH - ,0xCEC1 ,0x6054 //CJK UNIFIED IDEOGRAPH - ,0xCEC2 ,0x6072 //CJK UNIFIED IDEOGRAPH - ,0xCEC3 ,0x605E //CJK UNIFIED IDEOGRAPH - ,0xCEC4 ,0x6045 //CJK UNIFIED IDEOGRAPH - ,0xCEC5 ,0x6053 //CJK UNIFIED IDEOGRAPH - ,0xCEC6 ,0x6047 //CJK UNIFIED IDEOGRAPH - ,0xCEC7 ,0x6049 //CJK UNIFIED IDEOGRAPH - ,0xCEC8 ,0x605B //CJK UNIFIED IDEOGRAPH - ,0xCEC9 ,0x604C //CJK UNIFIED IDEOGRAPH - ,0xCECA ,0x6040 //CJK UNIFIED IDEOGRAPH - ,0xCECB ,0x6042 //CJK UNIFIED IDEOGRAPH - ,0xCECC ,0x605F //CJK UNIFIED IDEOGRAPH - ,0xCECD ,0x6024 //CJK UNIFIED IDEOGRAPH - ,0xCECE ,0x6044 //CJK UNIFIED IDEOGRAPH - ,0xCECF ,0x6058 //CJK UNIFIED IDEOGRAPH - ,0xCED0 ,0x6066 //CJK UNIFIED IDEOGRAPH - ,0xCED1 ,0x606E //CJK UNIFIED IDEOGRAPH - ,0xCED2 ,0x6242 //CJK UNIFIED IDEOGRAPH - ,0xCED3 ,0x6243 //CJK UNIFIED IDEOGRAPH - ,0xCED4 ,0x62CF //CJK UNIFIED IDEOGRAPH - ,0xCED5 ,0x630D //CJK UNIFIED IDEOGRAPH - ,0xCED6 ,0x630B //CJK UNIFIED IDEOGRAPH - ,0xCED7 ,0x62F5 //CJK UNIFIED IDEOGRAPH - ,0xCED8 ,0x630E //CJK UNIFIED IDEOGRAPH - ,0xCED9 ,0x6303 //CJK UNIFIED IDEOGRAPH - ,0xCEDA ,0x62EB //CJK UNIFIED IDEOGRAPH - ,0xCEDB ,0x62F9 //CJK UNIFIED IDEOGRAPH - ,0xCEDC ,0x630F //CJK UNIFIED IDEOGRAPH - ,0xCEDD ,0x630C //CJK UNIFIED IDEOGRAPH - ,0xCEDE ,0x62F8 //CJK UNIFIED IDEOGRAPH - ,0xCEDF ,0x62F6 //CJK UNIFIED IDEOGRAPH - ,0xCEE0 ,0x6300 //CJK UNIFIED IDEOGRAPH - ,0xCEE1 ,0x6313 //CJK UNIFIED IDEOGRAPH - ,0xCEE2 ,0x6314 //CJK UNIFIED IDEOGRAPH - ,0xCEE3 ,0x62FA //CJK UNIFIED IDEOGRAPH - ,0xCEE4 ,0x6315 //CJK UNIFIED IDEOGRAPH - ,0xCEE5 ,0x62FB //CJK UNIFIED IDEOGRAPH - ,0xCEE6 ,0x62F0 //CJK UNIFIED IDEOGRAPH - ,0xCEE7 ,0x6541 //CJK UNIFIED IDEOGRAPH - ,0xCEE8 ,0x6543 //CJK UNIFIED IDEOGRAPH - ,0xCEE9 ,0x65AA //CJK UNIFIED IDEOGRAPH - ,0xCEEA ,0x65BF //CJK UNIFIED IDEOGRAPH - ,0xCEEB ,0x6636 //CJK UNIFIED IDEOGRAPH - ,0xCEEC ,0x6621 //CJK UNIFIED IDEOGRAPH - ,0xCEED ,0x6632 //CJK UNIFIED IDEOGRAPH - ,0xCEEE ,0x6635 //CJK UNIFIED IDEOGRAPH - ,0xCEEF ,0x661C //CJK UNIFIED IDEOGRAPH - ,0xCEF0 ,0x6626 //CJK UNIFIED IDEOGRAPH - ,0xCEF1 ,0x6622 //CJK UNIFIED IDEOGRAPH - ,0xCEF2 ,0x6633 //CJK UNIFIED IDEOGRAPH - ,0xCEF3 ,0x662B //CJK UNIFIED IDEOGRAPH - ,0xCEF4 ,0x663A //CJK UNIFIED IDEOGRAPH - ,0xCEF5 ,0x661D //CJK UNIFIED IDEOGRAPH - ,0xCEF6 ,0x6634 //CJK UNIFIED IDEOGRAPH - ,0xCEF7 ,0x6639 //CJK UNIFIED IDEOGRAPH - ,0xCEF8 ,0x662E //CJK UNIFIED IDEOGRAPH - ,0xCEF9 ,0x670F //CJK UNIFIED IDEOGRAPH - ,0xCEFA ,0x6710 //CJK UNIFIED IDEOGRAPH - ,0xCEFB ,0x67C1 //CJK UNIFIED IDEOGRAPH - ,0xCEFC ,0x67F2 //CJK UNIFIED IDEOGRAPH - ,0xCEFD ,0x67C8 //CJK UNIFIED IDEOGRAPH - ,0xCEFE ,0x67BA //CJK UNIFIED IDEOGRAPH - ,0xCF40 ,0x67DC //CJK UNIFIED IDEOGRAPH - ,0xCF41 ,0x67BB //CJK UNIFIED IDEOGRAPH - ,0xCF42 ,0x67F8 //CJK UNIFIED IDEOGRAPH - ,0xCF43 ,0x67D8 //CJK UNIFIED IDEOGRAPH - ,0xCF44 ,0x67C0 //CJK UNIFIED IDEOGRAPH - ,0xCF45 ,0x67B7 //CJK UNIFIED IDEOGRAPH - ,0xCF46 ,0x67C5 //CJK UNIFIED IDEOGRAPH - ,0xCF47 ,0x67EB //CJK UNIFIED IDEOGRAPH - ,0xCF48 ,0x67E4 //CJK UNIFIED IDEOGRAPH - ,0xCF49 ,0x67DF //CJK UNIFIED IDEOGRAPH - ,0xCF4A ,0x67B5 //CJK UNIFIED IDEOGRAPH - ,0xCF4B ,0x67CD //CJK UNIFIED IDEOGRAPH - ,0xCF4C ,0x67B3 //CJK UNIFIED IDEOGRAPH - ,0xCF4D ,0x67F7 //CJK UNIFIED IDEOGRAPH - ,0xCF4E ,0x67F6 //CJK UNIFIED IDEOGRAPH - ,0xCF4F ,0x67EE //CJK UNIFIED IDEOGRAPH - ,0xCF50 ,0x67E3 //CJK UNIFIED IDEOGRAPH - ,0xCF51 ,0x67C2 //CJK UNIFIED IDEOGRAPH - ,0xCF52 ,0x67B9 //CJK UNIFIED IDEOGRAPH - ,0xCF53 ,0x67CE //CJK UNIFIED IDEOGRAPH - ,0xCF54 ,0x67E7 //CJK UNIFIED IDEOGRAPH - ,0xCF55 ,0x67F0 //CJK UNIFIED IDEOGRAPH - ,0xCF56 ,0x67B2 //CJK UNIFIED IDEOGRAPH - ,0xCF57 ,0x67FC //CJK UNIFIED IDEOGRAPH - ,0xCF58 ,0x67C6 //CJK UNIFIED IDEOGRAPH - ,0xCF59 ,0x67ED //CJK UNIFIED IDEOGRAPH - ,0xCF5A ,0x67CC //CJK UNIFIED IDEOGRAPH - ,0xCF5B ,0x67AE //CJK UNIFIED IDEOGRAPH - ,0xCF5C ,0x67E6 //CJK UNIFIED IDEOGRAPH - ,0xCF5D ,0x67DB //CJK UNIFIED IDEOGRAPH - ,0xCF5E ,0x67FA //CJK UNIFIED IDEOGRAPH - ,0xCF5F ,0x67C9 //CJK UNIFIED IDEOGRAPH - ,0xCF60 ,0x67CA //CJK UNIFIED IDEOGRAPH - ,0xCF61 ,0x67C3 //CJK UNIFIED IDEOGRAPH - ,0xCF62 ,0x67EA //CJK UNIFIED IDEOGRAPH - ,0xCF63 ,0x67CB //CJK UNIFIED IDEOGRAPH - ,0xCF64 ,0x6B28 //CJK UNIFIED IDEOGRAPH - ,0xCF65 ,0x6B82 //CJK UNIFIED IDEOGRAPH - ,0xCF66 ,0x6B84 //CJK UNIFIED IDEOGRAPH - ,0xCF67 ,0x6BB6 //CJK UNIFIED IDEOGRAPH - ,0xCF68 ,0x6BD6 //CJK UNIFIED IDEOGRAPH - ,0xCF69 ,0x6BD8 //CJK UNIFIED IDEOGRAPH - ,0xCF6A ,0x6BE0 //CJK UNIFIED IDEOGRAPH - ,0xCF6B ,0x6C20 //CJK UNIFIED IDEOGRAPH - ,0xCF6C ,0x6C21 //CJK UNIFIED IDEOGRAPH - ,0xCF6D ,0x6D28 //CJK UNIFIED IDEOGRAPH - ,0xCF6E ,0x6D34 //CJK UNIFIED IDEOGRAPH - ,0xCF6F ,0x6D2D //CJK UNIFIED IDEOGRAPH - ,0xCF70 ,0x6D1F //CJK UNIFIED IDEOGRAPH - ,0xCF71 ,0x6D3C //CJK UNIFIED IDEOGRAPH - ,0xCF72 ,0x6D3F //CJK UNIFIED IDEOGRAPH - ,0xCF73 ,0x6D12 //CJK UNIFIED IDEOGRAPH - ,0xCF74 ,0x6D0A //CJK UNIFIED IDEOGRAPH - ,0xCF75 ,0x6CDA //CJK UNIFIED IDEOGRAPH - ,0xCF76 ,0x6D33 //CJK UNIFIED IDEOGRAPH - ,0xCF77 ,0x6D04 //CJK UNIFIED IDEOGRAPH - ,0xCF78 ,0x6D19 //CJK UNIFIED IDEOGRAPH - ,0xCF79 ,0x6D3A //CJK UNIFIED IDEOGRAPH - ,0xCF7A ,0x6D1A //CJK UNIFIED IDEOGRAPH - ,0xCF7B ,0x6D11 //CJK UNIFIED IDEOGRAPH - ,0xCF7C ,0x6D00 //CJK UNIFIED IDEOGRAPH - ,0xCF7D ,0x6D1D //CJK UNIFIED IDEOGRAPH - ,0xCF7E ,0x6D42 //CJK UNIFIED IDEOGRAPH - ,0xCFA1 ,0x6D01 //CJK UNIFIED IDEOGRAPH - ,0xCFA2 ,0x6D18 //CJK UNIFIED IDEOGRAPH - ,0xCFA3 ,0x6D37 //CJK UNIFIED IDEOGRAPH - ,0xCFA4 ,0x6D03 //CJK UNIFIED IDEOGRAPH - ,0xCFA5 ,0x6D0F //CJK UNIFIED IDEOGRAPH - ,0xCFA6 ,0x6D40 //CJK UNIFIED IDEOGRAPH - ,0xCFA7 ,0x6D07 //CJK UNIFIED IDEOGRAPH - ,0xCFA8 ,0x6D20 //CJK UNIFIED IDEOGRAPH - ,0xCFA9 ,0x6D2C //CJK UNIFIED IDEOGRAPH - ,0xCFAA ,0x6D08 //CJK UNIFIED IDEOGRAPH - ,0xCFAB ,0x6D22 //CJK UNIFIED IDEOGRAPH - ,0xCFAC ,0x6D09 //CJK UNIFIED IDEOGRAPH - ,0xCFAD ,0x6D10 //CJK UNIFIED IDEOGRAPH - ,0xCFAE ,0x70B7 //CJK UNIFIED IDEOGRAPH - ,0xCFAF ,0x709F //CJK UNIFIED IDEOGRAPH - ,0xCFB0 ,0x70BE //CJK UNIFIED IDEOGRAPH - ,0xCFB1 ,0x70B1 //CJK UNIFIED IDEOGRAPH - ,0xCFB2 ,0x70B0 //CJK UNIFIED IDEOGRAPH - ,0xCFB3 ,0x70A1 //CJK UNIFIED IDEOGRAPH - ,0xCFB4 ,0x70B4 //CJK UNIFIED IDEOGRAPH - ,0xCFB5 ,0x70B5 //CJK UNIFIED IDEOGRAPH - ,0xCFB6 ,0x70A9 //CJK UNIFIED IDEOGRAPH - ,0xCFB7 ,0x7241 //CJK UNIFIED IDEOGRAPH - ,0xCFB8 ,0x7249 //CJK UNIFIED IDEOGRAPH - ,0xCFB9 ,0x724A //CJK UNIFIED IDEOGRAPH - ,0xCFBA ,0x726C //CJK UNIFIED IDEOGRAPH - ,0xCFBB ,0x7270 //CJK UNIFIED IDEOGRAPH - ,0xCFBC ,0x7273 //CJK UNIFIED IDEOGRAPH - ,0xCFBD ,0x726E //CJK UNIFIED IDEOGRAPH - ,0xCFBE ,0x72CA //CJK UNIFIED IDEOGRAPH - ,0xCFBF ,0x72E4 //CJK UNIFIED IDEOGRAPH - ,0xCFC0 ,0x72E8 //CJK UNIFIED IDEOGRAPH - ,0xCFC1 ,0x72EB //CJK UNIFIED IDEOGRAPH - ,0xCFC2 ,0x72DF //CJK UNIFIED IDEOGRAPH - ,0xCFC3 ,0x72EA //CJK UNIFIED IDEOGRAPH - ,0xCFC4 ,0x72E6 //CJK UNIFIED IDEOGRAPH - ,0xCFC5 ,0x72E3 //CJK UNIFIED IDEOGRAPH - ,0xCFC6 ,0x7385 //CJK UNIFIED IDEOGRAPH - ,0xCFC7 ,0x73CC //CJK UNIFIED IDEOGRAPH - ,0xCFC8 ,0x73C2 //CJK UNIFIED IDEOGRAPH - ,0xCFC9 ,0x73C8 //CJK UNIFIED IDEOGRAPH - ,0xCFCA ,0x73C5 //CJK UNIFIED IDEOGRAPH - ,0xCFCB ,0x73B9 //CJK UNIFIED IDEOGRAPH - ,0xCFCC ,0x73B6 //CJK UNIFIED IDEOGRAPH - ,0xCFCD ,0x73B5 //CJK UNIFIED IDEOGRAPH - ,0xCFCE ,0x73B4 //CJK UNIFIED IDEOGRAPH - ,0xCFCF ,0x73EB //CJK UNIFIED IDEOGRAPH - ,0xCFD0 ,0x73BF //CJK UNIFIED IDEOGRAPH - ,0xCFD1 ,0x73C7 //CJK UNIFIED IDEOGRAPH - ,0xCFD2 ,0x73BE //CJK UNIFIED IDEOGRAPH - ,0xCFD3 ,0x73C3 //CJK UNIFIED IDEOGRAPH - ,0xCFD4 ,0x73C6 //CJK UNIFIED IDEOGRAPH - ,0xCFD5 ,0x73B8 //CJK UNIFIED IDEOGRAPH - ,0xCFD6 ,0x73CB //CJK UNIFIED IDEOGRAPH - ,0xCFD7 ,0x74EC //CJK UNIFIED IDEOGRAPH - ,0xCFD8 ,0x74EE //CJK UNIFIED IDEOGRAPH - ,0xCFD9 ,0x752E //CJK UNIFIED IDEOGRAPH - ,0xCFDA ,0x7547 //CJK UNIFIED IDEOGRAPH - ,0xCFDB ,0x7548 //CJK UNIFIED IDEOGRAPH - ,0xCFDC ,0x75A7 //CJK UNIFIED IDEOGRAPH - ,0xCFDD ,0x75AA //CJK UNIFIED IDEOGRAPH - ,0xCFDE ,0x7679 //CJK UNIFIED IDEOGRAPH - ,0xCFDF ,0x76C4 //CJK UNIFIED IDEOGRAPH - ,0xCFE0 ,0x7708 //CJK UNIFIED IDEOGRAPH - ,0xCFE1 ,0x7703 //CJK UNIFIED IDEOGRAPH - ,0xCFE2 ,0x7704 //CJK UNIFIED IDEOGRAPH - ,0xCFE3 ,0x7705 //CJK UNIFIED IDEOGRAPH - ,0xCFE4 ,0x770A //CJK UNIFIED IDEOGRAPH - ,0xCFE5 ,0x76F7 //CJK UNIFIED IDEOGRAPH - ,0xCFE6 ,0x76FB //CJK UNIFIED IDEOGRAPH - ,0xCFE7 ,0x76FA //CJK UNIFIED IDEOGRAPH - ,0xCFE8 ,0x77E7 //CJK UNIFIED IDEOGRAPH - ,0xCFE9 ,0x77E8 //CJK UNIFIED IDEOGRAPH - ,0xCFEA ,0x7806 //CJK UNIFIED IDEOGRAPH - ,0xCFEB ,0x7811 //CJK UNIFIED IDEOGRAPH - ,0xCFEC ,0x7812 //CJK UNIFIED IDEOGRAPH - ,0xCFED ,0x7805 //CJK UNIFIED IDEOGRAPH - ,0xCFEE ,0x7810 //CJK UNIFIED IDEOGRAPH - ,0xCFEF ,0x780F //CJK UNIFIED IDEOGRAPH - ,0xCFF0 ,0x780E //CJK UNIFIED IDEOGRAPH - ,0xCFF1 ,0x7809 //CJK UNIFIED IDEOGRAPH - ,0xCFF2 ,0x7803 //CJK UNIFIED IDEOGRAPH - ,0xCFF3 ,0x7813 //CJK UNIFIED IDEOGRAPH - ,0xCFF4 ,0x794A //CJK UNIFIED IDEOGRAPH - ,0xCFF5 ,0x794C //CJK UNIFIED IDEOGRAPH - ,0xCFF6 ,0x794B //CJK UNIFIED IDEOGRAPH - ,0xCFF7 ,0x7945 //CJK UNIFIED IDEOGRAPH - ,0xCFF8 ,0x7944 //CJK UNIFIED IDEOGRAPH - ,0xCFF9 ,0x79D5 //CJK UNIFIED IDEOGRAPH - ,0xCFFA ,0x79CD //CJK UNIFIED IDEOGRAPH - ,0xCFFB ,0x79CF //CJK UNIFIED IDEOGRAPH - ,0xCFFC ,0x79D6 //CJK UNIFIED IDEOGRAPH - ,0xCFFD ,0x79CE //CJK UNIFIED IDEOGRAPH - ,0xCFFE ,0x7A80 //CJK UNIFIED IDEOGRAPH - ,0xD040 ,0x7A7E //CJK UNIFIED IDEOGRAPH - ,0xD041 ,0x7AD1 //CJK UNIFIED IDEOGRAPH - ,0xD042 ,0x7B00 //CJK UNIFIED IDEOGRAPH - ,0xD043 ,0x7B01 //CJK UNIFIED IDEOGRAPH - ,0xD044 ,0x7C7A //CJK UNIFIED IDEOGRAPH - ,0xD045 ,0x7C78 //CJK UNIFIED IDEOGRAPH - ,0xD046 ,0x7C79 //CJK UNIFIED IDEOGRAPH - ,0xD047 ,0x7C7F //CJK UNIFIED IDEOGRAPH - ,0xD048 ,0x7C80 //CJK UNIFIED IDEOGRAPH - ,0xD049 ,0x7C81 //CJK UNIFIED IDEOGRAPH - ,0xD04A ,0x7D03 //CJK UNIFIED IDEOGRAPH - ,0xD04B ,0x7D08 //CJK UNIFIED IDEOGRAPH - ,0xD04C ,0x7D01 //CJK UNIFIED IDEOGRAPH - ,0xD04D ,0x7F58 //CJK UNIFIED IDEOGRAPH - ,0xD04E ,0x7F91 //CJK UNIFIED IDEOGRAPH - ,0xD04F ,0x7F8D //CJK UNIFIED IDEOGRAPH - ,0xD050 ,0x7FBE //CJK UNIFIED IDEOGRAPH - ,0xD051 ,0x8007 //CJK UNIFIED IDEOGRAPH - ,0xD052 ,0x800E //CJK UNIFIED IDEOGRAPH - ,0xD053 ,0x800F //CJK UNIFIED IDEOGRAPH - ,0xD054 ,0x8014 //CJK UNIFIED IDEOGRAPH - ,0xD055 ,0x8037 //CJK UNIFIED IDEOGRAPH - ,0xD056 ,0x80D8 //CJK UNIFIED IDEOGRAPH - ,0xD057 ,0x80C7 //CJK UNIFIED IDEOGRAPH - ,0xD058 ,0x80E0 //CJK UNIFIED IDEOGRAPH - ,0xD059 ,0x80D1 //CJK UNIFIED IDEOGRAPH - ,0xD05A ,0x80C8 //CJK UNIFIED IDEOGRAPH - ,0xD05B ,0x80C2 //CJK UNIFIED IDEOGRAPH - ,0xD05C ,0x80D0 //CJK UNIFIED IDEOGRAPH - ,0xD05D ,0x80C5 //CJK UNIFIED IDEOGRAPH - ,0xD05E ,0x80E3 //CJK UNIFIED IDEOGRAPH - ,0xD05F ,0x80D9 //CJK UNIFIED IDEOGRAPH - ,0xD060 ,0x80DC //CJK UNIFIED IDEOGRAPH - ,0xD061 ,0x80CA //CJK UNIFIED IDEOGRAPH - ,0xD062 ,0x80D5 //CJK UNIFIED IDEOGRAPH - ,0xD063 ,0x80C9 //CJK UNIFIED IDEOGRAPH - ,0xD064 ,0x80CF //CJK UNIFIED IDEOGRAPH - ,0xD065 ,0x80D7 //CJK UNIFIED IDEOGRAPH - ,0xD066 ,0x80E6 //CJK UNIFIED IDEOGRAPH - ,0xD067 ,0x80CD //CJK UNIFIED IDEOGRAPH - ,0xD068 ,0x81FF //CJK UNIFIED IDEOGRAPH - ,0xD069 ,0x8221 //CJK UNIFIED IDEOGRAPH - ,0xD06A ,0x8294 //CJK UNIFIED IDEOGRAPH - ,0xD06B ,0x82D9 //CJK UNIFIED IDEOGRAPH - ,0xD06C ,0x82FE //CJK UNIFIED IDEOGRAPH - ,0xD06D ,0x82F9 //CJK UNIFIED IDEOGRAPH - ,0xD06E ,0x8307 //CJK UNIFIED IDEOGRAPH - ,0xD06F ,0x82E8 //CJK UNIFIED IDEOGRAPH - ,0xD070 ,0x8300 //CJK UNIFIED IDEOGRAPH - ,0xD071 ,0x82D5 //CJK UNIFIED IDEOGRAPH - ,0xD072 ,0x833A //CJK UNIFIED IDEOGRAPH - ,0xD073 ,0x82EB //CJK UNIFIED IDEOGRAPH - ,0xD074 ,0x82D6 //CJK UNIFIED IDEOGRAPH - ,0xD075 ,0x82F4 //CJK UNIFIED IDEOGRAPH - ,0xD076 ,0x82EC //CJK UNIFIED IDEOGRAPH - ,0xD077 ,0x82E1 //CJK UNIFIED IDEOGRAPH - ,0xD078 ,0x82F2 //CJK UNIFIED IDEOGRAPH - ,0xD079 ,0x82F5 //CJK UNIFIED IDEOGRAPH - ,0xD07A ,0x830C //CJK UNIFIED IDEOGRAPH - ,0xD07B ,0x82FB //CJK UNIFIED IDEOGRAPH - ,0xD07C ,0x82F6 //CJK UNIFIED IDEOGRAPH - ,0xD07D ,0x82F0 //CJK UNIFIED IDEOGRAPH - ,0xD07E ,0x82EA //CJK UNIFIED IDEOGRAPH - ,0xD0A1 ,0x82E4 //CJK UNIFIED IDEOGRAPH - ,0xD0A2 ,0x82E0 //CJK UNIFIED IDEOGRAPH - ,0xD0A3 ,0x82FA //CJK UNIFIED IDEOGRAPH - ,0xD0A4 ,0x82F3 //CJK UNIFIED IDEOGRAPH - ,0xD0A5 ,0x82ED //CJK UNIFIED IDEOGRAPH - ,0xD0A6 ,0x8677 //CJK UNIFIED IDEOGRAPH - ,0xD0A7 ,0x8674 //CJK UNIFIED IDEOGRAPH - ,0xD0A8 ,0x867C //CJK UNIFIED IDEOGRAPH - ,0xD0A9 ,0x8673 //CJK UNIFIED IDEOGRAPH - ,0xD0AA ,0x8841 //CJK UNIFIED IDEOGRAPH - ,0xD0AB ,0x884E //CJK UNIFIED IDEOGRAPH - ,0xD0AC ,0x8867 //CJK UNIFIED IDEOGRAPH - ,0xD0AD ,0x886A //CJK UNIFIED IDEOGRAPH - ,0xD0AE ,0x8869 //CJK UNIFIED IDEOGRAPH - ,0xD0AF ,0x89D3 //CJK UNIFIED IDEOGRAPH - ,0xD0B0 ,0x8A04 //CJK UNIFIED IDEOGRAPH - ,0xD0B1 ,0x8A07 //CJK UNIFIED IDEOGRAPH - ,0xD0B2 ,0x8D72 //CJK UNIFIED IDEOGRAPH - ,0xD0B3 ,0x8FE3 //CJK UNIFIED IDEOGRAPH - ,0xD0B4 ,0x8FE1 //CJK UNIFIED IDEOGRAPH - ,0xD0B5 ,0x8FEE //CJK UNIFIED IDEOGRAPH - ,0xD0B6 ,0x8FE0 //CJK UNIFIED IDEOGRAPH - ,0xD0B7 ,0x90F1 //CJK UNIFIED IDEOGRAPH - ,0xD0B8 ,0x90BD //CJK UNIFIED IDEOGRAPH - ,0xD0B9 ,0x90BF //CJK UNIFIED IDEOGRAPH - ,0xD0BA ,0x90D5 //CJK UNIFIED IDEOGRAPH - ,0xD0BB ,0x90C5 //CJK UNIFIED IDEOGRAPH - ,0xD0BC ,0x90BE //CJK UNIFIED IDEOGRAPH - ,0xD0BD ,0x90C7 //CJK UNIFIED IDEOGRAPH - ,0xD0BE ,0x90CB //CJK UNIFIED IDEOGRAPH - ,0xD0BF ,0x90C8 //CJK UNIFIED IDEOGRAPH - ,0xD0C0 ,0x91D4 //CJK UNIFIED IDEOGRAPH - ,0xD0C1 ,0x91D3 //CJK UNIFIED IDEOGRAPH - ,0xD0C2 ,0x9654 //CJK UNIFIED IDEOGRAPH - ,0xD0C3 ,0x964F //CJK UNIFIED IDEOGRAPH - ,0xD0C4 ,0x9651 //CJK UNIFIED IDEOGRAPH - ,0xD0C5 ,0x9653 //CJK UNIFIED IDEOGRAPH - ,0xD0C6 ,0x964A //CJK UNIFIED IDEOGRAPH - ,0xD0C7 ,0x964E //CJK UNIFIED IDEOGRAPH - ,0xD0C8 ,0x501E //CJK UNIFIED IDEOGRAPH - ,0xD0C9 ,0x5005 //CJK UNIFIED IDEOGRAPH - ,0xD0CA ,0x5007 //CJK UNIFIED IDEOGRAPH - ,0xD0CB ,0x5013 //CJK UNIFIED IDEOGRAPH - ,0xD0CC ,0x5022 //CJK UNIFIED IDEOGRAPH - ,0xD0CD ,0x5030 //CJK UNIFIED IDEOGRAPH - ,0xD0CE ,0x501B //CJK UNIFIED IDEOGRAPH - ,0xD0CF ,0x4FF5 //CJK UNIFIED IDEOGRAPH - ,0xD0D0 ,0x4FF4 //CJK UNIFIED IDEOGRAPH - ,0xD0D1 ,0x5033 //CJK UNIFIED IDEOGRAPH - ,0xD0D2 ,0x5037 //CJK UNIFIED IDEOGRAPH - ,0xD0D3 ,0x502C //CJK UNIFIED IDEOGRAPH - ,0xD0D4 ,0x4FF6 //CJK UNIFIED IDEOGRAPH - ,0xD0D5 ,0x4FF7 //CJK UNIFIED IDEOGRAPH - ,0xD0D6 ,0x5017 //CJK UNIFIED IDEOGRAPH - ,0xD0D7 ,0x501C //CJK UNIFIED IDEOGRAPH - ,0xD0D8 ,0x5020 //CJK UNIFIED IDEOGRAPH - ,0xD0D9 ,0x5027 //CJK UNIFIED IDEOGRAPH - ,0xD0DA ,0x5035 //CJK UNIFIED IDEOGRAPH - ,0xD0DB ,0x502F //CJK UNIFIED IDEOGRAPH - ,0xD0DC ,0x5031 //CJK UNIFIED IDEOGRAPH - ,0xD0DD ,0x500E //CJK UNIFIED IDEOGRAPH - ,0xD0DE ,0x515A //CJK UNIFIED IDEOGRAPH - ,0xD0DF ,0x5194 //CJK UNIFIED IDEOGRAPH - ,0xD0E0 ,0x5193 //CJK UNIFIED IDEOGRAPH - ,0xD0E1 ,0x51CA //CJK UNIFIED IDEOGRAPH - ,0xD0E2 ,0x51C4 //CJK UNIFIED IDEOGRAPH - ,0xD0E3 ,0x51C5 //CJK UNIFIED IDEOGRAPH - ,0xD0E4 ,0x51C8 //CJK UNIFIED IDEOGRAPH - ,0xD0E5 ,0x51CE //CJK UNIFIED IDEOGRAPH - ,0xD0E6 ,0x5261 //CJK UNIFIED IDEOGRAPH - ,0xD0E7 ,0x525A //CJK UNIFIED IDEOGRAPH - ,0xD0E8 ,0x5252 //CJK UNIFIED IDEOGRAPH - ,0xD0E9 ,0x525E //CJK UNIFIED IDEOGRAPH - ,0xD0EA ,0x525F //CJK UNIFIED IDEOGRAPH - ,0xD0EB ,0x5255 //CJK UNIFIED IDEOGRAPH - ,0xD0EC ,0x5262 //CJK UNIFIED IDEOGRAPH - ,0xD0ED ,0x52CD //CJK UNIFIED IDEOGRAPH - ,0xD0EE ,0x530E //CJK UNIFIED IDEOGRAPH - ,0xD0EF ,0x539E //CJK UNIFIED IDEOGRAPH - ,0xD0F0 ,0x5526 //CJK UNIFIED IDEOGRAPH - ,0xD0F1 ,0x54E2 //CJK UNIFIED IDEOGRAPH - ,0xD0F2 ,0x5517 //CJK UNIFIED IDEOGRAPH - ,0xD0F3 ,0x5512 //CJK UNIFIED IDEOGRAPH - ,0xD0F4 ,0x54E7 //CJK UNIFIED IDEOGRAPH - ,0xD0F5 ,0x54F3 //CJK UNIFIED IDEOGRAPH - ,0xD0F6 ,0x54E4 //CJK UNIFIED IDEOGRAPH - ,0xD0F7 ,0x551A //CJK UNIFIED IDEOGRAPH - ,0xD0F8 ,0x54FF //CJK UNIFIED IDEOGRAPH - ,0xD0F9 ,0x5504 //CJK UNIFIED IDEOGRAPH - ,0xD0FA ,0x5508 //CJK UNIFIED IDEOGRAPH - ,0xD0FB ,0x54EB //CJK UNIFIED IDEOGRAPH - ,0xD0FC ,0x5511 //CJK UNIFIED IDEOGRAPH - ,0xD0FD ,0x5505 //CJK UNIFIED IDEOGRAPH - ,0xD0FE ,0x54F1 //CJK UNIFIED IDEOGRAPH - ,0xD140 ,0x550A //CJK UNIFIED IDEOGRAPH - ,0xD141 ,0x54FB //CJK UNIFIED IDEOGRAPH - ,0xD142 ,0x54F7 //CJK UNIFIED IDEOGRAPH - ,0xD143 ,0x54F8 //CJK UNIFIED IDEOGRAPH - ,0xD144 ,0x54E0 //CJK UNIFIED IDEOGRAPH - ,0xD145 ,0x550E //CJK UNIFIED IDEOGRAPH - ,0xD146 ,0x5503 //CJK UNIFIED IDEOGRAPH - ,0xD147 ,0x550B //CJK UNIFIED IDEOGRAPH - ,0xD148 ,0x5701 //CJK UNIFIED IDEOGRAPH - ,0xD149 ,0x5702 //CJK UNIFIED IDEOGRAPH - ,0xD14A ,0x57CC //CJK UNIFIED IDEOGRAPH - ,0xD14B ,0x5832 //CJK UNIFIED IDEOGRAPH - ,0xD14C ,0x57D5 //CJK UNIFIED IDEOGRAPH - ,0xD14D ,0x57D2 //CJK UNIFIED IDEOGRAPH - ,0xD14E ,0x57BA //CJK UNIFIED IDEOGRAPH - ,0xD14F ,0x57C6 //CJK UNIFIED IDEOGRAPH - ,0xD150 ,0x57BD //CJK UNIFIED IDEOGRAPH - ,0xD151 ,0x57BC //CJK UNIFIED IDEOGRAPH - ,0xD152 ,0x57B8 //CJK UNIFIED IDEOGRAPH - ,0xD153 ,0x57B6 //CJK UNIFIED IDEOGRAPH - ,0xD154 ,0x57BF //CJK UNIFIED IDEOGRAPH - ,0xD155 ,0x57C7 //CJK UNIFIED IDEOGRAPH - ,0xD156 ,0x57D0 //CJK UNIFIED IDEOGRAPH - ,0xD157 ,0x57B9 //CJK UNIFIED IDEOGRAPH - ,0xD158 ,0x57C1 //CJK UNIFIED IDEOGRAPH - ,0xD159 ,0x590E //CJK UNIFIED IDEOGRAPH - ,0xD15A ,0x594A //CJK UNIFIED IDEOGRAPH - ,0xD15B ,0x5A19 //CJK UNIFIED IDEOGRAPH - ,0xD15C ,0x5A16 //CJK UNIFIED IDEOGRAPH - ,0xD15D ,0x5A2D //CJK UNIFIED IDEOGRAPH - ,0xD15E ,0x5A2E //CJK UNIFIED IDEOGRAPH - ,0xD15F ,0x5A15 //CJK UNIFIED IDEOGRAPH - ,0xD160 ,0x5A0F //CJK UNIFIED IDEOGRAPH - ,0xD161 ,0x5A17 //CJK UNIFIED IDEOGRAPH - ,0xD162 ,0x5A0A //CJK UNIFIED IDEOGRAPH - ,0xD163 ,0x5A1E //CJK UNIFIED IDEOGRAPH - ,0xD164 ,0x5A33 //CJK UNIFIED IDEOGRAPH - ,0xD165 ,0x5B6C //CJK UNIFIED IDEOGRAPH - ,0xD166 ,0x5BA7 //CJK UNIFIED IDEOGRAPH - ,0xD167 ,0x5BAD //CJK UNIFIED IDEOGRAPH - ,0xD168 ,0x5BAC //CJK UNIFIED IDEOGRAPH - ,0xD169 ,0x5C03 //CJK UNIFIED IDEOGRAPH - ,0xD16A ,0x5C56 //CJK UNIFIED IDEOGRAPH - ,0xD16B ,0x5C54 //CJK UNIFIED IDEOGRAPH - ,0xD16C ,0x5CEC //CJK UNIFIED IDEOGRAPH - ,0xD16D ,0x5CFF //CJK UNIFIED IDEOGRAPH - ,0xD16E ,0x5CEE //CJK UNIFIED IDEOGRAPH - ,0xD16F ,0x5CF1 //CJK UNIFIED IDEOGRAPH - ,0xD170 ,0x5CF7 //CJK UNIFIED IDEOGRAPH - ,0xD171 ,0x5D00 //CJK UNIFIED IDEOGRAPH - ,0xD172 ,0x5CF9 //CJK UNIFIED IDEOGRAPH - ,0xD173 ,0x5E29 //CJK UNIFIED IDEOGRAPH - ,0xD174 ,0x5E28 //CJK UNIFIED IDEOGRAPH - ,0xD175 ,0x5EA8 //CJK UNIFIED IDEOGRAPH - ,0xD176 ,0x5EAE //CJK UNIFIED IDEOGRAPH - ,0xD177 ,0x5EAA //CJK UNIFIED IDEOGRAPH - ,0xD178 ,0x5EAC //CJK UNIFIED IDEOGRAPH - ,0xD179 ,0x5F33 //CJK UNIFIED IDEOGRAPH - ,0xD17A ,0x5F30 //CJK UNIFIED IDEOGRAPH - ,0xD17B ,0x5F67 //CJK UNIFIED IDEOGRAPH - ,0xD17C ,0x605D //CJK UNIFIED IDEOGRAPH - ,0xD17D ,0x605A //CJK UNIFIED IDEOGRAPH - ,0xD17E ,0x6067 //CJK UNIFIED IDEOGRAPH - ,0xD1A1 ,0x6041 //CJK UNIFIED IDEOGRAPH - ,0xD1A2 ,0x60A2 //CJK UNIFIED IDEOGRAPH - ,0xD1A3 ,0x6088 //CJK UNIFIED IDEOGRAPH - ,0xD1A4 ,0x6080 //CJK UNIFIED IDEOGRAPH - ,0xD1A5 ,0x6092 //CJK UNIFIED IDEOGRAPH - ,0xD1A6 ,0x6081 //CJK UNIFIED IDEOGRAPH - ,0xD1A7 ,0x609D //CJK UNIFIED IDEOGRAPH - ,0xD1A8 ,0x6083 //CJK UNIFIED IDEOGRAPH - ,0xD1A9 ,0x6095 //CJK UNIFIED IDEOGRAPH - ,0xD1AA ,0x609B //CJK UNIFIED IDEOGRAPH - ,0xD1AB ,0x6097 //CJK UNIFIED IDEOGRAPH - ,0xD1AC ,0x6087 //CJK UNIFIED IDEOGRAPH - ,0xD1AD ,0x609C //CJK UNIFIED IDEOGRAPH - ,0xD1AE ,0x608E //CJK UNIFIED IDEOGRAPH - ,0xD1AF ,0x6219 //CJK UNIFIED IDEOGRAPH - ,0xD1B0 ,0x6246 //CJK UNIFIED IDEOGRAPH - ,0xD1B1 ,0x62F2 //CJK UNIFIED IDEOGRAPH - ,0xD1B2 ,0x6310 //CJK UNIFIED IDEOGRAPH - ,0xD1B3 ,0x6356 //CJK UNIFIED IDEOGRAPH - ,0xD1B4 ,0x632C //CJK UNIFIED IDEOGRAPH - ,0xD1B5 ,0x6344 //CJK UNIFIED IDEOGRAPH - ,0xD1B6 ,0x6345 //CJK UNIFIED IDEOGRAPH - ,0xD1B7 ,0x6336 //CJK UNIFIED IDEOGRAPH - ,0xD1B8 ,0x6343 //CJK UNIFIED IDEOGRAPH - ,0xD1B9 ,0x63E4 //CJK UNIFIED IDEOGRAPH - ,0xD1BA ,0x6339 //CJK UNIFIED IDEOGRAPH - ,0xD1BB ,0x634B //CJK UNIFIED IDEOGRAPH - ,0xD1BC ,0x634A //CJK UNIFIED IDEOGRAPH - ,0xD1BD ,0x633C //CJK UNIFIED IDEOGRAPH - ,0xD1BE ,0x6329 //CJK UNIFIED IDEOGRAPH - ,0xD1BF ,0x6341 //CJK UNIFIED IDEOGRAPH - ,0xD1C0 ,0x6334 //CJK UNIFIED IDEOGRAPH - ,0xD1C1 ,0x6358 //CJK UNIFIED IDEOGRAPH - ,0xD1C2 ,0x6354 //CJK UNIFIED IDEOGRAPH - ,0xD1C3 ,0x6359 //CJK UNIFIED IDEOGRAPH - ,0xD1C4 ,0x632D //CJK UNIFIED IDEOGRAPH - ,0xD1C5 ,0x6347 //CJK UNIFIED IDEOGRAPH - ,0xD1C6 ,0x6333 //CJK UNIFIED IDEOGRAPH - ,0xD1C7 ,0x635A //CJK UNIFIED IDEOGRAPH - ,0xD1C8 ,0x6351 //CJK UNIFIED IDEOGRAPH - ,0xD1C9 ,0x6338 //CJK UNIFIED IDEOGRAPH - ,0xD1CA ,0x6357 //CJK UNIFIED IDEOGRAPH - ,0xD1CB ,0x6340 //CJK UNIFIED IDEOGRAPH - ,0xD1CC ,0x6348 //CJK UNIFIED IDEOGRAPH - ,0xD1CD ,0x654A //CJK UNIFIED IDEOGRAPH - ,0xD1CE ,0x6546 //CJK UNIFIED IDEOGRAPH - ,0xD1CF ,0x65C6 //CJK UNIFIED IDEOGRAPH - ,0xD1D0 ,0x65C3 //CJK UNIFIED IDEOGRAPH - ,0xD1D1 ,0x65C4 //CJK UNIFIED IDEOGRAPH - ,0xD1D2 ,0x65C2 //CJK UNIFIED IDEOGRAPH - ,0xD1D3 ,0x664A //CJK UNIFIED IDEOGRAPH - ,0xD1D4 ,0x665F //CJK UNIFIED IDEOGRAPH - ,0xD1D5 ,0x6647 //CJK UNIFIED IDEOGRAPH - ,0xD1D6 ,0x6651 //CJK UNIFIED IDEOGRAPH - ,0xD1D7 ,0x6712 //CJK UNIFIED IDEOGRAPH - ,0xD1D8 ,0x6713 //CJK UNIFIED IDEOGRAPH - ,0xD1D9 ,0x681F //CJK UNIFIED IDEOGRAPH - ,0xD1DA ,0x681A //CJK UNIFIED IDEOGRAPH - ,0xD1DB ,0x6849 //CJK UNIFIED IDEOGRAPH - ,0xD1DC ,0x6832 //CJK UNIFIED IDEOGRAPH - ,0xD1DD ,0x6833 //CJK UNIFIED IDEOGRAPH - ,0xD1DE ,0x683B //CJK UNIFIED IDEOGRAPH - ,0xD1DF ,0x684B //CJK UNIFIED IDEOGRAPH - ,0xD1E0 ,0x684F //CJK UNIFIED IDEOGRAPH - ,0xD1E1 ,0x6816 //CJK UNIFIED IDEOGRAPH - ,0xD1E2 ,0x6831 //CJK UNIFIED IDEOGRAPH - ,0xD1E3 ,0x681C //CJK UNIFIED IDEOGRAPH - ,0xD1E4 ,0x6835 //CJK UNIFIED IDEOGRAPH - ,0xD1E5 ,0x682B //CJK UNIFIED IDEOGRAPH - ,0xD1E6 ,0x682D //CJK UNIFIED IDEOGRAPH - ,0xD1E7 ,0x682F //CJK UNIFIED IDEOGRAPH - ,0xD1E8 ,0x684E //CJK UNIFIED IDEOGRAPH - ,0xD1E9 ,0x6844 //CJK UNIFIED IDEOGRAPH - ,0xD1EA ,0x6834 //CJK UNIFIED IDEOGRAPH - ,0xD1EB ,0x681D //CJK UNIFIED IDEOGRAPH - ,0xD1EC ,0x6812 //CJK UNIFIED IDEOGRAPH - ,0xD1ED ,0x6814 //CJK UNIFIED IDEOGRAPH - ,0xD1EE ,0x6826 //CJK UNIFIED IDEOGRAPH - ,0xD1EF ,0x6828 //CJK UNIFIED IDEOGRAPH - ,0xD1F0 ,0x682E //CJK UNIFIED IDEOGRAPH - ,0xD1F1 ,0x684D //CJK UNIFIED IDEOGRAPH - ,0xD1F2 ,0x683A //CJK UNIFIED IDEOGRAPH - ,0xD1F3 ,0x6825 //CJK UNIFIED IDEOGRAPH - ,0xD1F4 ,0x6820 //CJK UNIFIED IDEOGRAPH - ,0xD1F5 ,0x6B2C //CJK UNIFIED IDEOGRAPH - ,0xD1F6 ,0x6B2F //CJK UNIFIED IDEOGRAPH - ,0xD1F7 ,0x6B2D //CJK UNIFIED IDEOGRAPH - ,0xD1F8 ,0x6B31 //CJK UNIFIED IDEOGRAPH - ,0xD1F9 ,0x6B34 //CJK UNIFIED IDEOGRAPH - ,0xD1FA ,0x6B6D //CJK UNIFIED IDEOGRAPH - ,0xD1FB ,0x8082 //CJK UNIFIED IDEOGRAPH - ,0xD1FC ,0x6B88 //CJK UNIFIED IDEOGRAPH - ,0xD1FD ,0x6BE6 //CJK UNIFIED IDEOGRAPH - ,0xD1FE ,0x6BE4 //CJK UNIFIED IDEOGRAPH - ,0xD240 ,0x6BE8 //CJK UNIFIED IDEOGRAPH - ,0xD241 ,0x6BE3 //CJK UNIFIED IDEOGRAPH - ,0xD242 ,0x6BE2 //CJK UNIFIED IDEOGRAPH - ,0xD243 ,0x6BE7 //CJK UNIFIED IDEOGRAPH - ,0xD244 ,0x6C25 //CJK UNIFIED IDEOGRAPH - ,0xD245 ,0x6D7A //CJK UNIFIED IDEOGRAPH - ,0xD246 ,0x6D63 //CJK UNIFIED IDEOGRAPH - ,0xD247 ,0x6D64 //CJK UNIFIED IDEOGRAPH - ,0xD248 ,0x6D76 //CJK UNIFIED IDEOGRAPH - ,0xD249 ,0x6D0D //CJK UNIFIED IDEOGRAPH - ,0xD24A ,0x6D61 //CJK UNIFIED IDEOGRAPH - ,0xD24B ,0x6D92 //CJK UNIFIED IDEOGRAPH - ,0xD24C ,0x6D58 //CJK UNIFIED IDEOGRAPH - ,0xD24D ,0x6D62 //CJK UNIFIED IDEOGRAPH - ,0xD24E ,0x6D6D //CJK UNIFIED IDEOGRAPH - ,0xD24F ,0x6D6F //CJK UNIFIED IDEOGRAPH - ,0xD250 ,0x6D91 //CJK UNIFIED IDEOGRAPH - ,0xD251 ,0x6D8D //CJK UNIFIED IDEOGRAPH - ,0xD252 ,0x6DEF //CJK UNIFIED IDEOGRAPH - ,0xD253 ,0x6D7F //CJK UNIFIED IDEOGRAPH - ,0xD254 ,0x6D86 //CJK UNIFIED IDEOGRAPH - ,0xD255 ,0x6D5E //CJK UNIFIED IDEOGRAPH - ,0xD256 ,0x6D67 //CJK UNIFIED IDEOGRAPH - ,0xD257 ,0x6D60 //CJK UNIFIED IDEOGRAPH - ,0xD258 ,0x6D97 //CJK UNIFIED IDEOGRAPH - ,0xD259 ,0x6D70 //CJK UNIFIED IDEOGRAPH - ,0xD25A ,0x6D7C //CJK UNIFIED IDEOGRAPH - ,0xD25B ,0x6D5F //CJK UNIFIED IDEOGRAPH - ,0xD25C ,0x6D82 //CJK UNIFIED IDEOGRAPH - ,0xD25D ,0x6D98 //CJK UNIFIED IDEOGRAPH - ,0xD25E ,0x6D2F //CJK UNIFIED IDEOGRAPH - ,0xD25F ,0x6D68 //CJK UNIFIED IDEOGRAPH - ,0xD260 ,0x6D8B //CJK UNIFIED IDEOGRAPH - ,0xD261 ,0x6D7E //CJK UNIFIED IDEOGRAPH - ,0xD262 ,0x6D80 //CJK UNIFIED IDEOGRAPH - ,0xD263 ,0x6D84 //CJK UNIFIED IDEOGRAPH - ,0xD264 ,0x6D16 //CJK UNIFIED IDEOGRAPH - ,0xD265 ,0x6D83 //CJK UNIFIED IDEOGRAPH - ,0xD266 ,0x6D7B //CJK UNIFIED IDEOGRAPH - ,0xD267 ,0x6D7D //CJK UNIFIED IDEOGRAPH - ,0xD268 ,0x6D75 //CJK UNIFIED IDEOGRAPH - ,0xD269 ,0x6D90 //CJK UNIFIED IDEOGRAPH - ,0xD26A ,0x70DC //CJK UNIFIED IDEOGRAPH - ,0xD26B ,0x70D3 //CJK UNIFIED IDEOGRAPH - ,0xD26C ,0x70D1 //CJK UNIFIED IDEOGRAPH - ,0xD26D ,0x70DD //CJK UNIFIED IDEOGRAPH - ,0xD26E ,0x70CB //CJK UNIFIED IDEOGRAPH - ,0xD26F ,0x7F39 //CJK UNIFIED IDEOGRAPH - ,0xD270 ,0x70E2 //CJK UNIFIED IDEOGRAPH - ,0xD271 ,0x70D7 //CJK UNIFIED IDEOGRAPH - ,0xD272 ,0x70D2 //CJK UNIFIED IDEOGRAPH - ,0xD273 ,0x70DE //CJK UNIFIED IDEOGRAPH - ,0xD274 ,0x70E0 //CJK UNIFIED IDEOGRAPH - ,0xD275 ,0x70D4 //CJK UNIFIED IDEOGRAPH - ,0xD276 ,0x70CD //CJK UNIFIED IDEOGRAPH - ,0xD277 ,0x70C5 //CJK UNIFIED IDEOGRAPH - ,0xD278 ,0x70C6 //CJK UNIFIED IDEOGRAPH - ,0xD279 ,0x70C7 //CJK UNIFIED IDEOGRAPH - ,0xD27A ,0x70DA //CJK UNIFIED IDEOGRAPH - ,0xD27B ,0x70CE //CJK UNIFIED IDEOGRAPH - ,0xD27C ,0x70E1 //CJK UNIFIED IDEOGRAPH - ,0xD27D ,0x7242 //CJK UNIFIED IDEOGRAPH - ,0xD27E ,0x7278 //CJK UNIFIED IDEOGRAPH - ,0xD2A1 ,0x7277 //CJK UNIFIED IDEOGRAPH - ,0xD2A2 ,0x7276 //CJK UNIFIED IDEOGRAPH - ,0xD2A3 ,0x7300 //CJK UNIFIED IDEOGRAPH - ,0xD2A4 ,0x72FA //CJK UNIFIED IDEOGRAPH - ,0xD2A5 ,0x72F4 //CJK UNIFIED IDEOGRAPH - ,0xD2A6 ,0x72FE //CJK UNIFIED IDEOGRAPH - ,0xD2A7 ,0x72F6 //CJK UNIFIED IDEOGRAPH - ,0xD2A8 ,0x72F3 //CJK UNIFIED IDEOGRAPH - ,0xD2A9 ,0x72FB //CJK UNIFIED IDEOGRAPH - ,0xD2AA ,0x7301 //CJK UNIFIED IDEOGRAPH - ,0xD2AB ,0x73D3 //CJK UNIFIED IDEOGRAPH - ,0xD2AC ,0x73D9 //CJK UNIFIED IDEOGRAPH - ,0xD2AD ,0x73E5 //CJK UNIFIED IDEOGRAPH - ,0xD2AE ,0x73D6 //CJK UNIFIED IDEOGRAPH - ,0xD2AF ,0x73BC //CJK UNIFIED IDEOGRAPH - ,0xD2B0 ,0x73E7 //CJK UNIFIED IDEOGRAPH - ,0xD2B1 ,0x73E3 //CJK UNIFIED IDEOGRAPH - ,0xD2B2 ,0x73E9 //CJK UNIFIED IDEOGRAPH - ,0xD2B3 ,0x73DC //CJK UNIFIED IDEOGRAPH - ,0xD2B4 ,0x73D2 //CJK UNIFIED IDEOGRAPH - ,0xD2B5 ,0x73DB //CJK UNIFIED IDEOGRAPH - ,0xD2B6 ,0x73D4 //CJK UNIFIED IDEOGRAPH - ,0xD2B7 ,0x73DD //CJK UNIFIED IDEOGRAPH - ,0xD2B8 ,0x73DA //CJK UNIFIED IDEOGRAPH - ,0xD2B9 ,0x73D7 //CJK UNIFIED IDEOGRAPH - ,0xD2BA ,0x73D8 //CJK UNIFIED IDEOGRAPH - ,0xD2BB ,0x73E8 //CJK UNIFIED IDEOGRAPH - ,0xD2BC ,0x74DE //CJK UNIFIED IDEOGRAPH - ,0xD2BD ,0x74DF //CJK UNIFIED IDEOGRAPH - ,0xD2BE ,0x74F4 //CJK UNIFIED IDEOGRAPH - ,0xD2BF ,0x74F5 //CJK UNIFIED IDEOGRAPH - ,0xD2C0 ,0x7521 //CJK UNIFIED IDEOGRAPH - ,0xD2C1 ,0x755B //CJK UNIFIED IDEOGRAPH - ,0xD2C2 ,0x755F //CJK UNIFIED IDEOGRAPH - ,0xD2C3 ,0x75B0 //CJK UNIFIED IDEOGRAPH - ,0xD2C4 ,0x75C1 //CJK UNIFIED IDEOGRAPH - ,0xD2C5 ,0x75BB //CJK UNIFIED IDEOGRAPH - ,0xD2C6 ,0x75C4 //CJK UNIFIED IDEOGRAPH - ,0xD2C7 ,0x75C0 //CJK UNIFIED IDEOGRAPH - ,0xD2C8 ,0x75BF //CJK UNIFIED IDEOGRAPH - ,0xD2C9 ,0x75B6 //CJK UNIFIED IDEOGRAPH - ,0xD2CA ,0x75BA //CJK UNIFIED IDEOGRAPH - ,0xD2CB ,0x768A //CJK UNIFIED IDEOGRAPH - ,0xD2CC ,0x76C9 //CJK UNIFIED IDEOGRAPH - ,0xD2CD ,0x771D //CJK UNIFIED IDEOGRAPH - ,0xD2CE ,0x771B //CJK UNIFIED IDEOGRAPH - ,0xD2CF ,0x7710 //CJK UNIFIED IDEOGRAPH - ,0xD2D0 ,0x7713 //CJK UNIFIED IDEOGRAPH - ,0xD2D1 ,0x7712 //CJK UNIFIED IDEOGRAPH - ,0xD2D2 ,0x7723 //CJK UNIFIED IDEOGRAPH - ,0xD2D3 ,0x7711 //CJK UNIFIED IDEOGRAPH - ,0xD2D4 ,0x7715 //CJK UNIFIED IDEOGRAPH - ,0xD2D5 ,0x7719 //CJK UNIFIED IDEOGRAPH - ,0xD2D6 ,0x771A //CJK UNIFIED IDEOGRAPH - ,0xD2D7 ,0x7722 //CJK UNIFIED IDEOGRAPH - ,0xD2D8 ,0x7727 //CJK UNIFIED IDEOGRAPH - ,0xD2D9 ,0x7823 //CJK UNIFIED IDEOGRAPH - ,0xD2DA ,0x782C //CJK UNIFIED IDEOGRAPH - ,0xD2DB ,0x7822 //CJK UNIFIED IDEOGRAPH - ,0xD2DC ,0x7835 //CJK UNIFIED IDEOGRAPH - ,0xD2DD ,0x782F //CJK UNIFIED IDEOGRAPH - ,0xD2DE ,0x7828 //CJK UNIFIED IDEOGRAPH - ,0xD2DF ,0x782E //CJK UNIFIED IDEOGRAPH - ,0xD2E0 ,0x782B //CJK UNIFIED IDEOGRAPH - ,0xD2E1 ,0x7821 //CJK UNIFIED IDEOGRAPH - ,0xD2E2 ,0x7829 //CJK UNIFIED IDEOGRAPH - ,0xD2E3 ,0x7833 //CJK UNIFIED IDEOGRAPH - ,0xD2E4 ,0x782A //CJK UNIFIED IDEOGRAPH - ,0xD2E5 ,0x7831 //CJK UNIFIED IDEOGRAPH - ,0xD2E6 ,0x7954 //CJK UNIFIED IDEOGRAPH - ,0xD2E7 ,0x795B //CJK UNIFIED IDEOGRAPH - ,0xD2E8 ,0x794F //CJK UNIFIED IDEOGRAPH - ,0xD2E9 ,0x795C //CJK UNIFIED IDEOGRAPH - ,0xD2EA ,0x7953 //CJK UNIFIED IDEOGRAPH - ,0xD2EB ,0x7952 //CJK UNIFIED IDEOGRAPH - ,0xD2EC ,0x7951 //CJK UNIFIED IDEOGRAPH - ,0xD2ED ,0x79EB //CJK UNIFIED IDEOGRAPH - ,0xD2EE ,0x79EC //CJK UNIFIED IDEOGRAPH - ,0xD2EF ,0x79E0 //CJK UNIFIED IDEOGRAPH - ,0xD2F0 ,0x79EE //CJK UNIFIED IDEOGRAPH - ,0xD2F1 ,0x79ED //CJK UNIFIED IDEOGRAPH - ,0xD2F2 ,0x79EA //CJK UNIFIED IDEOGRAPH - ,0xD2F3 ,0x79DC //CJK UNIFIED IDEOGRAPH - ,0xD2F4 ,0x79DE //CJK UNIFIED IDEOGRAPH - ,0xD2F5 ,0x79DD //CJK UNIFIED IDEOGRAPH - ,0xD2F6 ,0x7A86 //CJK UNIFIED IDEOGRAPH - ,0xD2F7 ,0x7A89 //CJK UNIFIED IDEOGRAPH - ,0xD2F8 ,0x7A85 //CJK UNIFIED IDEOGRAPH - ,0xD2F9 ,0x7A8B //CJK UNIFIED IDEOGRAPH - ,0xD2FA ,0x7A8C //CJK UNIFIED IDEOGRAPH - ,0xD2FB ,0x7A8A //CJK UNIFIED IDEOGRAPH - ,0xD2FC ,0x7A87 //CJK UNIFIED IDEOGRAPH - ,0xD2FD ,0x7AD8 //CJK UNIFIED IDEOGRAPH - ,0xD2FE ,0x7B10 //CJK UNIFIED IDEOGRAPH - ,0xD340 ,0x7B04 //CJK UNIFIED IDEOGRAPH - ,0xD341 ,0x7B13 //CJK UNIFIED IDEOGRAPH - ,0xD342 ,0x7B05 //CJK UNIFIED IDEOGRAPH - ,0xD343 ,0x7B0F //CJK UNIFIED IDEOGRAPH - ,0xD344 ,0x7B08 //CJK UNIFIED IDEOGRAPH - ,0xD345 ,0x7B0A //CJK UNIFIED IDEOGRAPH - ,0xD346 ,0x7B0E //CJK UNIFIED IDEOGRAPH - ,0xD347 ,0x7B09 //CJK UNIFIED IDEOGRAPH - ,0xD348 ,0x7B12 //CJK UNIFIED IDEOGRAPH - ,0xD349 ,0x7C84 //CJK UNIFIED IDEOGRAPH - ,0xD34A ,0x7C91 //CJK UNIFIED IDEOGRAPH - ,0xD34B ,0x7C8A //CJK UNIFIED IDEOGRAPH - ,0xD34C ,0x7C8C //CJK UNIFIED IDEOGRAPH - ,0xD34D ,0x7C88 //CJK UNIFIED IDEOGRAPH - ,0xD34E ,0x7C8D //CJK UNIFIED IDEOGRAPH - ,0xD34F ,0x7C85 //CJK UNIFIED IDEOGRAPH - ,0xD350 ,0x7D1E //CJK UNIFIED IDEOGRAPH - ,0xD351 ,0x7D1D //CJK UNIFIED IDEOGRAPH - ,0xD352 ,0x7D11 //CJK UNIFIED IDEOGRAPH - ,0xD353 ,0x7D0E //CJK UNIFIED IDEOGRAPH - ,0xD354 ,0x7D18 //CJK UNIFIED IDEOGRAPH - ,0xD355 ,0x7D16 //CJK UNIFIED IDEOGRAPH - ,0xD356 ,0x7D13 //CJK UNIFIED IDEOGRAPH - ,0xD357 ,0x7D1F //CJK UNIFIED IDEOGRAPH - ,0xD358 ,0x7D12 //CJK UNIFIED IDEOGRAPH - ,0xD359 ,0x7D0F //CJK UNIFIED IDEOGRAPH - ,0xD35A ,0x7D0C //CJK UNIFIED IDEOGRAPH - ,0xD35B ,0x7F5C //CJK UNIFIED IDEOGRAPH - ,0xD35C ,0x7F61 //CJK UNIFIED IDEOGRAPH - ,0xD35D ,0x7F5E //CJK UNIFIED IDEOGRAPH - ,0xD35E ,0x7F60 //CJK UNIFIED IDEOGRAPH - ,0xD35F ,0x7F5D //CJK UNIFIED IDEOGRAPH - ,0xD360 ,0x7F5B //CJK UNIFIED IDEOGRAPH - ,0xD361 ,0x7F96 //CJK UNIFIED IDEOGRAPH - ,0xD362 ,0x7F92 //CJK UNIFIED IDEOGRAPH - ,0xD363 ,0x7FC3 //CJK UNIFIED IDEOGRAPH - ,0xD364 ,0x7FC2 //CJK UNIFIED IDEOGRAPH - ,0xD365 ,0x7FC0 //CJK UNIFIED IDEOGRAPH - ,0xD366 ,0x8016 //CJK UNIFIED IDEOGRAPH - ,0xD367 ,0x803E //CJK UNIFIED IDEOGRAPH - ,0xD368 ,0x8039 //CJK UNIFIED IDEOGRAPH - ,0xD369 ,0x80FA //CJK UNIFIED IDEOGRAPH - ,0xD36A ,0x80F2 //CJK UNIFIED IDEOGRAPH - ,0xD36B ,0x80F9 //CJK UNIFIED IDEOGRAPH - ,0xD36C ,0x80F5 //CJK UNIFIED IDEOGRAPH - ,0xD36D ,0x8101 //CJK UNIFIED IDEOGRAPH - ,0xD36E ,0x80FB //CJK UNIFIED IDEOGRAPH - ,0xD36F ,0x8100 //CJK UNIFIED IDEOGRAPH - ,0xD370 ,0x8201 //CJK UNIFIED IDEOGRAPH - ,0xD371 ,0x822F //CJK UNIFIED IDEOGRAPH - ,0xD372 ,0x8225 //CJK UNIFIED IDEOGRAPH - ,0xD373 ,0x8333 //CJK UNIFIED IDEOGRAPH - ,0xD374 ,0x832D //CJK UNIFIED IDEOGRAPH - ,0xD375 ,0x8344 //CJK UNIFIED IDEOGRAPH - ,0xD376 ,0x8319 //CJK UNIFIED IDEOGRAPH - ,0xD377 ,0x8351 //CJK UNIFIED IDEOGRAPH - ,0xD378 ,0x8325 //CJK UNIFIED IDEOGRAPH - ,0xD379 ,0x8356 //CJK UNIFIED IDEOGRAPH - ,0xD37A ,0x833F //CJK UNIFIED IDEOGRAPH - ,0xD37B ,0x8341 //CJK UNIFIED IDEOGRAPH - ,0xD37C ,0x8326 //CJK UNIFIED IDEOGRAPH - ,0xD37D ,0x831C //CJK UNIFIED IDEOGRAPH - ,0xD37E ,0x8322 //CJK UNIFIED IDEOGRAPH - ,0xD3A1 ,0x8342 //CJK UNIFIED IDEOGRAPH - ,0xD3A2 ,0x834E //CJK UNIFIED IDEOGRAPH - ,0xD3A3 ,0x831B //CJK UNIFIED IDEOGRAPH - ,0xD3A4 ,0x832A //CJK UNIFIED IDEOGRAPH - ,0xD3A5 ,0x8308 //CJK UNIFIED IDEOGRAPH - ,0xD3A6 ,0x833C //CJK UNIFIED IDEOGRAPH - ,0xD3A7 ,0x834D //CJK UNIFIED IDEOGRAPH - ,0xD3A8 ,0x8316 //CJK UNIFIED IDEOGRAPH - ,0xD3A9 ,0x8324 //CJK UNIFIED IDEOGRAPH - ,0xD3AA ,0x8320 //CJK UNIFIED IDEOGRAPH - ,0xD3AB ,0x8337 //CJK UNIFIED IDEOGRAPH - ,0xD3AC ,0x832F //CJK UNIFIED IDEOGRAPH - ,0xD3AD ,0x8329 //CJK UNIFIED IDEOGRAPH - ,0xD3AE ,0x8347 //CJK UNIFIED IDEOGRAPH - ,0xD3AF ,0x8345 //CJK UNIFIED IDEOGRAPH - ,0xD3B0 ,0x834C //CJK UNIFIED IDEOGRAPH - ,0xD3B1 ,0x8353 //CJK UNIFIED IDEOGRAPH - ,0xD3B2 ,0x831E //CJK UNIFIED IDEOGRAPH - ,0xD3B3 ,0x832C //CJK UNIFIED IDEOGRAPH - ,0xD3B4 ,0x834B //CJK UNIFIED IDEOGRAPH - ,0xD3B5 ,0x8327 //CJK UNIFIED IDEOGRAPH - ,0xD3B6 ,0x8348 //CJK UNIFIED IDEOGRAPH - ,0xD3B7 ,0x8653 //CJK UNIFIED IDEOGRAPH - ,0xD3B8 ,0x8652 //CJK UNIFIED IDEOGRAPH - ,0xD3B9 ,0x86A2 //CJK UNIFIED IDEOGRAPH - ,0xD3BA ,0x86A8 //CJK UNIFIED IDEOGRAPH - ,0xD3BB ,0x8696 //CJK UNIFIED IDEOGRAPH - ,0xD3BC ,0x868D //CJK UNIFIED IDEOGRAPH - ,0xD3BD ,0x8691 //CJK UNIFIED IDEOGRAPH - ,0xD3BE ,0x869E //CJK UNIFIED IDEOGRAPH - ,0xD3BF ,0x8687 //CJK UNIFIED IDEOGRAPH - ,0xD3C0 ,0x8697 //CJK UNIFIED IDEOGRAPH - ,0xD3C1 ,0x8686 //CJK UNIFIED IDEOGRAPH - ,0xD3C2 ,0x868B //CJK UNIFIED IDEOGRAPH - ,0xD3C3 ,0x869A //CJK UNIFIED IDEOGRAPH - ,0xD3C4 ,0x8685 //CJK UNIFIED IDEOGRAPH - ,0xD3C5 ,0x86A5 //CJK UNIFIED IDEOGRAPH - ,0xD3C6 ,0x8699 //CJK UNIFIED IDEOGRAPH - ,0xD3C7 ,0x86A1 //CJK UNIFIED IDEOGRAPH - ,0xD3C8 ,0x86A7 //CJK UNIFIED IDEOGRAPH - ,0xD3C9 ,0x8695 //CJK UNIFIED IDEOGRAPH - ,0xD3CA ,0x8698 //CJK UNIFIED IDEOGRAPH - ,0xD3CB ,0x868E //CJK UNIFIED IDEOGRAPH - ,0xD3CC ,0x869D //CJK UNIFIED IDEOGRAPH - ,0xD3CD ,0x8690 //CJK UNIFIED IDEOGRAPH - ,0xD3CE ,0x8694 //CJK UNIFIED IDEOGRAPH - ,0xD3CF ,0x8843 //CJK UNIFIED IDEOGRAPH - ,0xD3D0 ,0x8844 //CJK UNIFIED IDEOGRAPH - ,0xD3D1 ,0x886D //CJK UNIFIED IDEOGRAPH - ,0xD3D2 ,0x8875 //CJK UNIFIED IDEOGRAPH - ,0xD3D3 ,0x8876 //CJK UNIFIED IDEOGRAPH - ,0xD3D4 ,0x8872 //CJK UNIFIED IDEOGRAPH - ,0xD3D5 ,0x8880 //CJK UNIFIED IDEOGRAPH - ,0xD3D6 ,0x8871 //CJK UNIFIED IDEOGRAPH - ,0xD3D7 ,0x887F //CJK UNIFIED IDEOGRAPH - ,0xD3D8 ,0x886F //CJK UNIFIED IDEOGRAPH - ,0xD3D9 ,0x8883 //CJK UNIFIED IDEOGRAPH - ,0xD3DA ,0x887E //CJK UNIFIED IDEOGRAPH - ,0xD3DB ,0x8874 //CJK UNIFIED IDEOGRAPH - ,0xD3DC ,0x887C //CJK UNIFIED IDEOGRAPH - ,0xD3DD ,0x8A12 //CJK UNIFIED IDEOGRAPH - ,0xD3DE ,0x8C47 //CJK UNIFIED IDEOGRAPH - ,0xD3DF ,0x8C57 //CJK UNIFIED IDEOGRAPH - ,0xD3E0 ,0x8C7B //CJK UNIFIED IDEOGRAPH - ,0xD3E1 ,0x8CA4 //CJK UNIFIED IDEOGRAPH - ,0xD3E2 ,0x8CA3 //CJK UNIFIED IDEOGRAPH - ,0xD3E3 ,0x8D76 //CJK UNIFIED IDEOGRAPH - ,0xD3E4 ,0x8D78 //CJK UNIFIED IDEOGRAPH - ,0xD3E5 ,0x8DB5 //CJK UNIFIED IDEOGRAPH - ,0xD3E6 ,0x8DB7 //CJK UNIFIED IDEOGRAPH - ,0xD3E7 ,0x8DB6 //CJK UNIFIED IDEOGRAPH - ,0xD3E8 ,0x8ED1 //CJK UNIFIED IDEOGRAPH - ,0xD3E9 ,0x8ED3 //CJK UNIFIED IDEOGRAPH - ,0xD3EA ,0x8FFE //CJK UNIFIED IDEOGRAPH - ,0xD3EB ,0x8FF5 //CJK UNIFIED IDEOGRAPH - ,0xD3EC ,0x9002 //CJK UNIFIED IDEOGRAPH - ,0xD3ED ,0x8FFF //CJK UNIFIED IDEOGRAPH - ,0xD3EE ,0x8FFB //CJK UNIFIED IDEOGRAPH - ,0xD3EF ,0x9004 //CJK UNIFIED IDEOGRAPH - ,0xD3F0 ,0x8FFC //CJK UNIFIED IDEOGRAPH - ,0xD3F1 ,0x8FF6 //CJK UNIFIED IDEOGRAPH - ,0xD3F2 ,0x90D6 //CJK UNIFIED IDEOGRAPH - ,0xD3F3 ,0x90E0 //CJK UNIFIED IDEOGRAPH - ,0xD3F4 ,0x90D9 //CJK UNIFIED IDEOGRAPH - ,0xD3F5 ,0x90DA //CJK UNIFIED IDEOGRAPH - ,0xD3F6 ,0x90E3 //CJK UNIFIED IDEOGRAPH - ,0xD3F7 ,0x90DF //CJK UNIFIED IDEOGRAPH - ,0xD3F8 ,0x90E5 //CJK UNIFIED IDEOGRAPH - ,0xD3F9 ,0x90D8 //CJK UNIFIED IDEOGRAPH - ,0xD3FA ,0x90DB //CJK UNIFIED IDEOGRAPH - ,0xD3FB ,0x90D7 //CJK UNIFIED IDEOGRAPH - ,0xD3FC ,0x90DC //CJK UNIFIED IDEOGRAPH - ,0xD3FD ,0x90E4 //CJK UNIFIED IDEOGRAPH - ,0xD3FE ,0x9150 //CJK UNIFIED IDEOGRAPH - ,0xD440 ,0x914E //CJK UNIFIED IDEOGRAPH - ,0xD441 ,0x914F //CJK UNIFIED IDEOGRAPH - ,0xD442 ,0x91D5 //CJK UNIFIED IDEOGRAPH - ,0xD443 ,0x91E2 //CJK UNIFIED IDEOGRAPH - ,0xD444 ,0x91DA //CJK UNIFIED IDEOGRAPH - ,0xD445 ,0x965C //CJK UNIFIED IDEOGRAPH - ,0xD446 ,0x965F //CJK UNIFIED IDEOGRAPH - ,0xD447 ,0x96BC //CJK UNIFIED IDEOGRAPH - ,0xD448 ,0x98E3 //CJK UNIFIED IDEOGRAPH - ,0xD449 ,0x9ADF //CJK UNIFIED IDEOGRAPH - ,0xD44A ,0x9B2F //CJK UNIFIED IDEOGRAPH - ,0xD44B ,0x4E7F //CJK UNIFIED IDEOGRAPH - ,0xD44C ,0x5070 //CJK UNIFIED IDEOGRAPH - ,0xD44D ,0x506A //CJK UNIFIED IDEOGRAPH - ,0xD44E ,0x5061 //CJK UNIFIED IDEOGRAPH - ,0xD44F ,0x505E //CJK UNIFIED IDEOGRAPH - ,0xD450 ,0x5060 //CJK UNIFIED IDEOGRAPH - ,0xD451 ,0x5053 //CJK UNIFIED IDEOGRAPH - ,0xD452 ,0x504B //CJK UNIFIED IDEOGRAPH - ,0xD453 ,0x505D //CJK UNIFIED IDEOGRAPH - ,0xD454 ,0x5072 //CJK UNIFIED IDEOGRAPH - ,0xD455 ,0x5048 //CJK UNIFIED IDEOGRAPH - ,0xD456 ,0x504D //CJK UNIFIED IDEOGRAPH - ,0xD457 ,0x5041 //CJK UNIFIED IDEOGRAPH - ,0xD458 ,0x505B //CJK UNIFIED IDEOGRAPH - ,0xD459 ,0x504A //CJK UNIFIED IDEOGRAPH - ,0xD45A ,0x5062 //CJK UNIFIED IDEOGRAPH - ,0xD45B ,0x5015 //CJK UNIFIED IDEOGRAPH - ,0xD45C ,0x5045 //CJK UNIFIED IDEOGRAPH - ,0xD45D ,0x505F //CJK UNIFIED IDEOGRAPH - ,0xD45E ,0x5069 //CJK UNIFIED IDEOGRAPH - ,0xD45F ,0x506B //CJK UNIFIED IDEOGRAPH - ,0xD460 ,0x5063 //CJK UNIFIED IDEOGRAPH - ,0xD461 ,0x5064 //CJK UNIFIED IDEOGRAPH - ,0xD462 ,0x5046 //CJK UNIFIED IDEOGRAPH - ,0xD463 ,0x5040 //CJK UNIFIED IDEOGRAPH - ,0xD464 ,0x506E //CJK UNIFIED IDEOGRAPH - ,0xD465 ,0x5073 //CJK UNIFIED IDEOGRAPH - ,0xD466 ,0x5057 //CJK UNIFIED IDEOGRAPH - ,0xD467 ,0x5051 //CJK UNIFIED IDEOGRAPH - ,0xD468 ,0x51D0 //CJK UNIFIED IDEOGRAPH - ,0xD469 ,0x526B //CJK UNIFIED IDEOGRAPH - ,0xD46A ,0x526D //CJK UNIFIED IDEOGRAPH - ,0xD46B ,0x526C //CJK UNIFIED IDEOGRAPH - ,0xD46C ,0x526E //CJK UNIFIED IDEOGRAPH - ,0xD46D ,0x52D6 //CJK UNIFIED IDEOGRAPH - ,0xD46E ,0x52D3 //CJK UNIFIED IDEOGRAPH - ,0xD46F ,0x532D //CJK UNIFIED IDEOGRAPH - ,0xD470 ,0x539C //CJK UNIFIED IDEOGRAPH - ,0xD471 ,0x5575 //CJK UNIFIED IDEOGRAPH - ,0xD472 ,0x5576 //CJK UNIFIED IDEOGRAPH - ,0xD473 ,0x553C //CJK UNIFIED IDEOGRAPH - ,0xD474 ,0x554D //CJK UNIFIED IDEOGRAPH - ,0xD475 ,0x5550 //CJK UNIFIED IDEOGRAPH - ,0xD476 ,0x5534 //CJK UNIFIED IDEOGRAPH - ,0xD477 ,0x552A //CJK UNIFIED IDEOGRAPH - ,0xD478 ,0x5551 //CJK UNIFIED IDEOGRAPH - ,0xD479 ,0x5562 //CJK UNIFIED IDEOGRAPH - ,0xD47A ,0x5536 //CJK UNIFIED IDEOGRAPH - ,0xD47B ,0x5535 //CJK UNIFIED IDEOGRAPH - ,0xD47C ,0x5530 //CJK UNIFIED IDEOGRAPH - ,0xD47D ,0x5552 //CJK UNIFIED IDEOGRAPH - ,0xD47E ,0x5545 //CJK UNIFIED IDEOGRAPH - ,0xD4A1 ,0x550C //CJK UNIFIED IDEOGRAPH - ,0xD4A2 ,0x5532 //CJK UNIFIED IDEOGRAPH - ,0xD4A3 ,0x5565 //CJK UNIFIED IDEOGRAPH - ,0xD4A4 ,0x554E //CJK UNIFIED IDEOGRAPH - ,0xD4A5 ,0x5539 //CJK UNIFIED IDEOGRAPH - ,0xD4A6 ,0x5548 //CJK UNIFIED IDEOGRAPH - ,0xD4A7 ,0x552D //CJK UNIFIED IDEOGRAPH - ,0xD4A8 ,0x553B //CJK UNIFIED IDEOGRAPH - ,0xD4A9 ,0x5540 //CJK UNIFIED IDEOGRAPH - ,0xD4AA ,0x554B //CJK UNIFIED IDEOGRAPH - ,0xD4AB ,0x570A //CJK UNIFIED IDEOGRAPH - ,0xD4AC ,0x5707 //CJK UNIFIED IDEOGRAPH - ,0xD4AD ,0x57FB //CJK UNIFIED IDEOGRAPH - ,0xD4AE ,0x5814 //CJK UNIFIED IDEOGRAPH - ,0xD4AF ,0x57E2 //CJK UNIFIED IDEOGRAPH - ,0xD4B0 ,0x57F6 //CJK UNIFIED IDEOGRAPH - ,0xD4B1 ,0x57DC //CJK UNIFIED IDEOGRAPH - ,0xD4B2 ,0x57F4 //CJK UNIFIED IDEOGRAPH - ,0xD4B3 ,0x5800 //CJK UNIFIED IDEOGRAPH - ,0xD4B4 ,0x57ED //CJK UNIFIED IDEOGRAPH - ,0xD4B5 ,0x57FD //CJK UNIFIED IDEOGRAPH - ,0xD4B6 ,0x5808 //CJK UNIFIED IDEOGRAPH - ,0xD4B7 ,0x57F8 //CJK UNIFIED IDEOGRAPH - ,0xD4B8 ,0x580B //CJK UNIFIED IDEOGRAPH - ,0xD4B9 ,0x57F3 //CJK UNIFIED IDEOGRAPH - ,0xD4BA ,0x57CF //CJK UNIFIED IDEOGRAPH - ,0xD4BB ,0x5807 //CJK UNIFIED IDEOGRAPH - ,0xD4BC ,0x57EE //CJK UNIFIED IDEOGRAPH - ,0xD4BD ,0x57E3 //CJK UNIFIED IDEOGRAPH - ,0xD4BE ,0x57F2 //CJK UNIFIED IDEOGRAPH - ,0xD4BF ,0x57E5 //CJK UNIFIED IDEOGRAPH - ,0xD4C0 ,0x57EC //CJK UNIFIED IDEOGRAPH - ,0xD4C1 ,0x57E1 //CJK UNIFIED IDEOGRAPH - ,0xD4C2 ,0x580E //CJK UNIFIED IDEOGRAPH - ,0xD4C3 ,0x57FC //CJK UNIFIED IDEOGRAPH - ,0xD4C4 ,0x5810 //CJK UNIFIED IDEOGRAPH - ,0xD4C5 ,0x57E7 //CJK UNIFIED IDEOGRAPH - ,0xD4C6 ,0x5801 //CJK UNIFIED IDEOGRAPH - ,0xD4C7 ,0x580C //CJK UNIFIED IDEOGRAPH - ,0xD4C8 ,0x57F1 //CJK UNIFIED IDEOGRAPH - ,0xD4C9 ,0x57E9 //CJK UNIFIED IDEOGRAPH - ,0xD4CA ,0x57F0 //CJK UNIFIED IDEOGRAPH - ,0xD4CB ,0x580D //CJK UNIFIED IDEOGRAPH - ,0xD4CC ,0x5804 //CJK UNIFIED IDEOGRAPH - ,0xD4CD ,0x595C //CJK UNIFIED IDEOGRAPH - ,0xD4CE ,0x5A60 //CJK UNIFIED IDEOGRAPH - ,0xD4CF ,0x5A58 //CJK UNIFIED IDEOGRAPH - ,0xD4D0 ,0x5A55 //CJK UNIFIED IDEOGRAPH - ,0xD4D1 ,0x5A67 //CJK UNIFIED IDEOGRAPH - ,0xD4D2 ,0x5A5E //CJK UNIFIED IDEOGRAPH - ,0xD4D3 ,0x5A38 //CJK UNIFIED IDEOGRAPH - ,0xD4D4 ,0x5A35 //CJK UNIFIED IDEOGRAPH - ,0xD4D5 ,0x5A6D //CJK UNIFIED IDEOGRAPH - ,0xD4D6 ,0x5A50 //CJK UNIFIED IDEOGRAPH - ,0xD4D7 ,0x5A5F //CJK UNIFIED IDEOGRAPH - ,0xD4D8 ,0x5A65 //CJK UNIFIED IDEOGRAPH - ,0xD4D9 ,0x5A6C //CJK UNIFIED IDEOGRAPH - ,0xD4DA ,0x5A53 //CJK UNIFIED IDEOGRAPH - ,0xD4DB ,0x5A64 //CJK UNIFIED IDEOGRAPH - ,0xD4DC ,0x5A57 //CJK UNIFIED IDEOGRAPH - ,0xD4DD ,0x5A43 //CJK UNIFIED IDEOGRAPH - ,0xD4DE ,0x5A5D //CJK UNIFIED IDEOGRAPH - ,0xD4DF ,0x5A52 //CJK UNIFIED IDEOGRAPH - ,0xD4E0 ,0x5A44 //CJK UNIFIED IDEOGRAPH - ,0xD4E1 ,0x5A5B //CJK UNIFIED IDEOGRAPH - ,0xD4E2 ,0x5A48 //CJK UNIFIED IDEOGRAPH - ,0xD4E3 ,0x5A8E //CJK UNIFIED IDEOGRAPH - ,0xD4E4 ,0x5A3E //CJK UNIFIED IDEOGRAPH - ,0xD4E5 ,0x5A4D //CJK UNIFIED IDEOGRAPH - ,0xD4E6 ,0x5A39 //CJK UNIFIED IDEOGRAPH - ,0xD4E7 ,0x5A4C //CJK UNIFIED IDEOGRAPH - ,0xD4E8 ,0x5A70 //CJK UNIFIED IDEOGRAPH - ,0xD4E9 ,0x5A69 //CJK UNIFIED IDEOGRAPH - ,0xD4EA ,0x5A47 //CJK UNIFIED IDEOGRAPH - ,0xD4EB ,0x5A51 //CJK UNIFIED IDEOGRAPH - ,0xD4EC ,0x5A56 //CJK UNIFIED IDEOGRAPH - ,0xD4ED ,0x5A42 //CJK UNIFIED IDEOGRAPH - ,0xD4EE ,0x5A5C //CJK UNIFIED IDEOGRAPH - ,0xD4EF ,0x5B72 //CJK UNIFIED IDEOGRAPH - ,0xD4F0 ,0x5B6E //CJK UNIFIED IDEOGRAPH - ,0xD4F1 ,0x5BC1 //CJK UNIFIED IDEOGRAPH - ,0xD4F2 ,0x5BC0 //CJK UNIFIED IDEOGRAPH - ,0xD4F3 ,0x5C59 //CJK UNIFIED IDEOGRAPH - ,0xD4F4 ,0x5D1E //CJK UNIFIED IDEOGRAPH - ,0xD4F5 ,0x5D0B //CJK UNIFIED IDEOGRAPH - ,0xD4F6 ,0x5D1D //CJK UNIFIED IDEOGRAPH - ,0xD4F7 ,0x5D1A //CJK UNIFIED IDEOGRAPH - ,0xD4F8 ,0x5D20 //CJK UNIFIED IDEOGRAPH - ,0xD4F9 ,0x5D0C //CJK UNIFIED IDEOGRAPH - ,0xD4FA ,0x5D28 //CJK UNIFIED IDEOGRAPH - ,0xD4FB ,0x5D0D //CJK UNIFIED IDEOGRAPH - ,0xD4FC ,0x5D26 //CJK UNIFIED IDEOGRAPH - ,0xD4FD ,0x5D25 //CJK UNIFIED IDEOGRAPH - ,0xD4FE ,0x5D0F //CJK UNIFIED IDEOGRAPH - ,0xD540 ,0x5D30 //CJK UNIFIED IDEOGRAPH - ,0xD541 ,0x5D12 //CJK UNIFIED IDEOGRAPH - ,0xD542 ,0x5D23 //CJK UNIFIED IDEOGRAPH - ,0xD543 ,0x5D1F //CJK UNIFIED IDEOGRAPH - ,0xD544 ,0x5D2E //CJK UNIFIED IDEOGRAPH - ,0xD545 ,0x5E3E //CJK UNIFIED IDEOGRAPH - ,0xD546 ,0x5E34 //CJK UNIFIED IDEOGRAPH - ,0xD547 ,0x5EB1 //CJK UNIFIED IDEOGRAPH - ,0xD548 ,0x5EB4 //CJK UNIFIED IDEOGRAPH - ,0xD549 ,0x5EB9 //CJK UNIFIED IDEOGRAPH - ,0xD54A ,0x5EB2 //CJK UNIFIED IDEOGRAPH - ,0xD54B ,0x5EB3 //CJK UNIFIED IDEOGRAPH - ,0xD54C ,0x5F36 //CJK UNIFIED IDEOGRAPH - ,0xD54D ,0x5F38 //CJK UNIFIED IDEOGRAPH - ,0xD54E ,0x5F9B //CJK UNIFIED IDEOGRAPH - ,0xD54F ,0x5F96 //CJK UNIFIED IDEOGRAPH - ,0xD550 ,0x5F9F //CJK UNIFIED IDEOGRAPH - ,0xD551 ,0x608A //CJK UNIFIED IDEOGRAPH - ,0xD552 ,0x6090 //CJK UNIFIED IDEOGRAPH - ,0xD553 ,0x6086 //CJK UNIFIED IDEOGRAPH - ,0xD554 ,0x60BE //CJK UNIFIED IDEOGRAPH - ,0xD555 ,0x60B0 //CJK UNIFIED IDEOGRAPH - ,0xD556 ,0x60BA //CJK UNIFIED IDEOGRAPH - ,0xD557 ,0x60D3 //CJK UNIFIED IDEOGRAPH - ,0xD558 ,0x60D4 //CJK UNIFIED IDEOGRAPH - ,0xD559 ,0x60CF //CJK UNIFIED IDEOGRAPH - ,0xD55A ,0x60E4 //CJK UNIFIED IDEOGRAPH - ,0xD55B ,0x60D9 //CJK UNIFIED IDEOGRAPH - ,0xD55C ,0x60DD //CJK UNIFIED IDEOGRAPH - ,0xD55D ,0x60C8 //CJK UNIFIED IDEOGRAPH - ,0xD55E ,0x60B1 //CJK UNIFIED IDEOGRAPH - ,0xD55F ,0x60DB //CJK UNIFIED IDEOGRAPH - ,0xD560 ,0x60B7 //CJK UNIFIED IDEOGRAPH - ,0xD561 ,0x60CA //CJK UNIFIED IDEOGRAPH - ,0xD562 ,0x60BF //CJK UNIFIED IDEOGRAPH - ,0xD563 ,0x60C3 //CJK UNIFIED IDEOGRAPH - ,0xD564 ,0x60CD //CJK UNIFIED IDEOGRAPH - ,0xD565 ,0x60C0 //CJK UNIFIED IDEOGRAPH - ,0xD566 ,0x6332 //CJK UNIFIED IDEOGRAPH - ,0xD567 ,0x6365 //CJK UNIFIED IDEOGRAPH - ,0xD568 ,0x638A //CJK UNIFIED IDEOGRAPH - ,0xD569 ,0x6382 //CJK UNIFIED IDEOGRAPH - ,0xD56A ,0x637D //CJK UNIFIED IDEOGRAPH - ,0xD56B ,0x63BD //CJK UNIFIED IDEOGRAPH - ,0xD56C ,0x639E //CJK UNIFIED IDEOGRAPH - ,0xD56D ,0x63AD //CJK UNIFIED IDEOGRAPH - ,0xD56E ,0x639D //CJK UNIFIED IDEOGRAPH - ,0xD56F ,0x6397 //CJK UNIFIED IDEOGRAPH - ,0xD570 ,0x63AB //CJK UNIFIED IDEOGRAPH - ,0xD571 ,0x638E //CJK UNIFIED IDEOGRAPH - ,0xD572 ,0x636F //CJK UNIFIED IDEOGRAPH - ,0xD573 ,0x6387 //CJK UNIFIED IDEOGRAPH - ,0xD574 ,0x6390 //CJK UNIFIED IDEOGRAPH - ,0xD575 ,0x636E //CJK UNIFIED IDEOGRAPH - ,0xD576 ,0x63AF //CJK UNIFIED IDEOGRAPH - ,0xD577 ,0x6375 //CJK UNIFIED IDEOGRAPH - ,0xD578 ,0x639C //CJK UNIFIED IDEOGRAPH - ,0xD579 ,0x636D //CJK UNIFIED IDEOGRAPH - ,0xD57A ,0x63AE //CJK UNIFIED IDEOGRAPH - ,0xD57B ,0x637C //CJK UNIFIED IDEOGRAPH - ,0xD57C ,0x63A4 //CJK UNIFIED IDEOGRAPH - ,0xD57D ,0x633B //CJK UNIFIED IDEOGRAPH - ,0xD57E ,0x639F //CJK UNIFIED IDEOGRAPH - ,0xD5A1 ,0x6378 //CJK UNIFIED IDEOGRAPH - ,0xD5A2 ,0x6385 //CJK UNIFIED IDEOGRAPH - ,0xD5A3 ,0x6381 //CJK UNIFIED IDEOGRAPH - ,0xD5A4 ,0x6391 //CJK UNIFIED IDEOGRAPH - ,0xD5A5 ,0x638D //CJK UNIFIED IDEOGRAPH - ,0xD5A6 ,0x6370 //CJK UNIFIED IDEOGRAPH - ,0xD5A7 ,0x6553 //CJK UNIFIED IDEOGRAPH - ,0xD5A8 ,0x65CD //CJK UNIFIED IDEOGRAPH - ,0xD5A9 ,0x6665 //CJK UNIFIED IDEOGRAPH - ,0xD5AA ,0x6661 //CJK UNIFIED IDEOGRAPH - ,0xD5AB ,0x665B //CJK UNIFIED IDEOGRAPH - ,0xD5AC ,0x6659 //CJK UNIFIED IDEOGRAPH - ,0xD5AD ,0x665C //CJK UNIFIED IDEOGRAPH - ,0xD5AE ,0x6662 //CJK UNIFIED IDEOGRAPH - ,0xD5AF ,0x6718 //CJK UNIFIED IDEOGRAPH - ,0xD5B0 ,0x6879 //CJK UNIFIED IDEOGRAPH - ,0xD5B1 ,0x6887 //CJK UNIFIED IDEOGRAPH - ,0xD5B2 ,0x6890 //CJK UNIFIED IDEOGRAPH - ,0xD5B3 ,0x689C //CJK UNIFIED IDEOGRAPH - ,0xD5B4 ,0x686D //CJK UNIFIED IDEOGRAPH - ,0xD5B5 ,0x686E //CJK UNIFIED IDEOGRAPH - ,0xD5B6 ,0x68AE //CJK UNIFIED IDEOGRAPH - ,0xD5B7 ,0x68AB //CJK UNIFIED IDEOGRAPH - ,0xD5B8 ,0x6956 //CJK UNIFIED IDEOGRAPH - ,0xD5B9 ,0x686F //CJK UNIFIED IDEOGRAPH - ,0xD5BA ,0x68A3 //CJK UNIFIED IDEOGRAPH - ,0xD5BB ,0x68AC //CJK UNIFIED IDEOGRAPH - ,0xD5BC ,0x68A9 //CJK UNIFIED IDEOGRAPH - ,0xD5BD ,0x6875 //CJK UNIFIED IDEOGRAPH - ,0xD5BE ,0x6874 //CJK UNIFIED IDEOGRAPH - ,0xD5BF ,0x68B2 //CJK UNIFIED IDEOGRAPH - ,0xD5C0 ,0x688F //CJK UNIFIED IDEOGRAPH - ,0xD5C1 ,0x6877 //CJK UNIFIED IDEOGRAPH - ,0xD5C2 ,0x6892 //CJK UNIFIED IDEOGRAPH - ,0xD5C3 ,0x687C //CJK UNIFIED IDEOGRAPH - ,0xD5C4 ,0x686B //CJK UNIFIED IDEOGRAPH - ,0xD5C5 ,0x6872 //CJK UNIFIED IDEOGRAPH - ,0xD5C6 ,0x68AA //CJK UNIFIED IDEOGRAPH - ,0xD5C7 ,0x6880 //CJK UNIFIED IDEOGRAPH - ,0xD5C8 ,0x6871 //CJK UNIFIED IDEOGRAPH - ,0xD5C9 ,0x687E //CJK UNIFIED IDEOGRAPH - ,0xD5CA ,0x689B //CJK UNIFIED IDEOGRAPH - ,0xD5CB ,0x6896 //CJK UNIFIED IDEOGRAPH - ,0xD5CC ,0x688B //CJK UNIFIED IDEOGRAPH - ,0xD5CD ,0x68A0 //CJK UNIFIED IDEOGRAPH - ,0xD5CE ,0x6889 //CJK UNIFIED IDEOGRAPH - ,0xD5CF ,0x68A4 //CJK UNIFIED IDEOGRAPH - ,0xD5D0 ,0x6878 //CJK UNIFIED IDEOGRAPH - ,0xD5D1 ,0x687B //CJK UNIFIED IDEOGRAPH - ,0xD5D2 ,0x6891 //CJK UNIFIED IDEOGRAPH - ,0xD5D3 ,0x688C //CJK UNIFIED IDEOGRAPH - ,0xD5D4 ,0x688A //CJK UNIFIED IDEOGRAPH - ,0xD5D5 ,0x687D //CJK UNIFIED IDEOGRAPH - ,0xD5D6 ,0x6B36 //CJK UNIFIED IDEOGRAPH - ,0xD5D7 ,0x6B33 //CJK UNIFIED IDEOGRAPH - ,0xD5D8 ,0x6B37 //CJK UNIFIED IDEOGRAPH - ,0xD5D9 ,0x6B38 //CJK UNIFIED IDEOGRAPH - ,0xD5DA ,0x6B91 //CJK UNIFIED IDEOGRAPH - ,0xD5DB ,0x6B8F //CJK UNIFIED IDEOGRAPH - ,0xD5DC ,0x6B8D //CJK UNIFIED IDEOGRAPH - ,0xD5DD ,0x6B8E //CJK UNIFIED IDEOGRAPH - ,0xD5DE ,0x6B8C //CJK UNIFIED IDEOGRAPH - ,0xD5DF ,0x6C2A //CJK UNIFIED IDEOGRAPH - ,0xD5E0 ,0x6DC0 //CJK UNIFIED IDEOGRAPH - ,0xD5E1 ,0x6DAB //CJK UNIFIED IDEOGRAPH - ,0xD5E2 ,0x6DB4 //CJK UNIFIED IDEOGRAPH - ,0xD5E3 ,0x6DB3 //CJK UNIFIED IDEOGRAPH - ,0xD5E4 ,0x6E74 //CJK UNIFIED IDEOGRAPH - ,0xD5E5 ,0x6DAC //CJK UNIFIED IDEOGRAPH - ,0xD5E6 ,0x6DE9 //CJK UNIFIED IDEOGRAPH - ,0xD5E7 ,0x6DE2 //CJK UNIFIED IDEOGRAPH - ,0xD5E8 ,0x6DB7 //CJK UNIFIED IDEOGRAPH - ,0xD5E9 ,0x6DF6 //CJK UNIFIED IDEOGRAPH - ,0xD5EA ,0x6DD4 //CJK UNIFIED IDEOGRAPH - ,0xD5EB ,0x6E00 //CJK UNIFIED IDEOGRAPH - ,0xD5EC ,0x6DC8 //CJK UNIFIED IDEOGRAPH - ,0xD5ED ,0x6DE0 //CJK UNIFIED IDEOGRAPH - ,0xD5EE ,0x6DDF //CJK UNIFIED IDEOGRAPH - ,0xD5EF ,0x6DD6 //CJK UNIFIED IDEOGRAPH - ,0xD5F0 ,0x6DBE //CJK UNIFIED IDEOGRAPH - ,0xD5F1 ,0x6DE5 //CJK UNIFIED IDEOGRAPH - ,0xD5F2 ,0x6DDC //CJK UNIFIED IDEOGRAPH - ,0xD5F3 ,0x6DDD //CJK UNIFIED IDEOGRAPH - ,0xD5F4 ,0x6DDB //CJK UNIFIED IDEOGRAPH - ,0xD5F5 ,0x6DF4 //CJK UNIFIED IDEOGRAPH - ,0xD5F6 ,0x6DCA //CJK UNIFIED IDEOGRAPH - ,0xD5F7 ,0x6DBD //CJK UNIFIED IDEOGRAPH - ,0xD5F8 ,0x6DED //CJK UNIFIED IDEOGRAPH - ,0xD5F9 ,0x6DF0 //CJK UNIFIED IDEOGRAPH - ,0xD5FA ,0x6DBA //CJK UNIFIED IDEOGRAPH - ,0xD5FB ,0x6DD5 //CJK UNIFIED IDEOGRAPH - ,0xD5FC ,0x6DC2 //CJK UNIFIED IDEOGRAPH - ,0xD5FD ,0x6DCF //CJK UNIFIED IDEOGRAPH - ,0xD5FE ,0x6DC9 //CJK UNIFIED IDEOGRAPH - ,0xD640 ,0x6DD0 //CJK UNIFIED IDEOGRAPH - ,0xD641 ,0x6DF2 //CJK UNIFIED IDEOGRAPH - ,0xD642 ,0x6DD3 //CJK UNIFIED IDEOGRAPH - ,0xD643 ,0x6DFD //CJK UNIFIED IDEOGRAPH - ,0xD644 ,0x6DD7 //CJK UNIFIED IDEOGRAPH - ,0xD645 ,0x6DCD //CJK UNIFIED IDEOGRAPH - ,0xD646 ,0x6DE3 //CJK UNIFIED IDEOGRAPH - ,0xD647 ,0x6DBB //CJK UNIFIED IDEOGRAPH - ,0xD648 ,0x70FA //CJK UNIFIED IDEOGRAPH - ,0xD649 ,0x710D //CJK UNIFIED IDEOGRAPH - ,0xD64A ,0x70F7 //CJK UNIFIED IDEOGRAPH - ,0xD64B ,0x7117 //CJK UNIFIED IDEOGRAPH - ,0xD64C ,0x70F4 //CJK UNIFIED IDEOGRAPH - ,0xD64D ,0x710C //CJK UNIFIED IDEOGRAPH - ,0xD64E ,0x70F0 //CJK UNIFIED IDEOGRAPH - ,0xD64F ,0x7104 //CJK UNIFIED IDEOGRAPH - ,0xD650 ,0x70F3 //CJK UNIFIED IDEOGRAPH - ,0xD651 ,0x7110 //CJK UNIFIED IDEOGRAPH - ,0xD652 ,0x70FC //CJK UNIFIED IDEOGRAPH - ,0xD653 ,0x70FF //CJK UNIFIED IDEOGRAPH - ,0xD654 ,0x7106 //CJK UNIFIED IDEOGRAPH - ,0xD655 ,0x7113 //CJK UNIFIED IDEOGRAPH - ,0xD656 ,0x7100 //CJK UNIFIED IDEOGRAPH - ,0xD657 ,0x70F8 //CJK UNIFIED IDEOGRAPH - ,0xD658 ,0x70F6 //CJK UNIFIED IDEOGRAPH - ,0xD659 ,0x710B //CJK UNIFIED IDEOGRAPH - ,0xD65A ,0x7102 //CJK UNIFIED IDEOGRAPH - ,0xD65B ,0x710E //CJK UNIFIED IDEOGRAPH - ,0xD65C ,0x727E //CJK UNIFIED IDEOGRAPH - ,0xD65D ,0x727B //CJK UNIFIED IDEOGRAPH - ,0xD65E ,0x727C //CJK UNIFIED IDEOGRAPH - ,0xD65F ,0x727F //CJK UNIFIED IDEOGRAPH - ,0xD660 ,0x731D //CJK UNIFIED IDEOGRAPH - ,0xD661 ,0x7317 //CJK UNIFIED IDEOGRAPH - ,0xD662 ,0x7307 //CJK UNIFIED IDEOGRAPH - ,0xD663 ,0x7311 //CJK UNIFIED IDEOGRAPH - ,0xD664 ,0x7318 //CJK UNIFIED IDEOGRAPH - ,0xD665 ,0x730A //CJK UNIFIED IDEOGRAPH - ,0xD666 ,0x7308 //CJK UNIFIED IDEOGRAPH - ,0xD667 ,0x72FF //CJK UNIFIED IDEOGRAPH - ,0xD668 ,0x730F //CJK UNIFIED IDEOGRAPH - ,0xD669 ,0x731E //CJK UNIFIED IDEOGRAPH - ,0xD66A ,0x7388 //CJK UNIFIED IDEOGRAPH - ,0xD66B ,0x73F6 //CJK UNIFIED IDEOGRAPH - ,0xD66C ,0x73F8 //CJK UNIFIED IDEOGRAPH - ,0xD66D ,0x73F5 //CJK UNIFIED IDEOGRAPH - ,0xD66E ,0x7404 //CJK UNIFIED IDEOGRAPH - ,0xD66F ,0x7401 //CJK UNIFIED IDEOGRAPH - ,0xD670 ,0x73FD //CJK UNIFIED IDEOGRAPH - ,0xD671 ,0x7407 //CJK UNIFIED IDEOGRAPH - ,0xD672 ,0x7400 //CJK UNIFIED IDEOGRAPH - ,0xD673 ,0x73FA //CJK UNIFIED IDEOGRAPH - ,0xD674 ,0x73FC //CJK UNIFIED IDEOGRAPH - ,0xD675 ,0x73FF //CJK UNIFIED IDEOGRAPH - ,0xD676 ,0x740C //CJK UNIFIED IDEOGRAPH - ,0xD677 ,0x740B //CJK UNIFIED IDEOGRAPH - ,0xD678 ,0x73F4 //CJK UNIFIED IDEOGRAPH - ,0xD679 ,0x7408 //CJK UNIFIED IDEOGRAPH - ,0xD67A ,0x7564 //CJK UNIFIED IDEOGRAPH - ,0xD67B ,0x7563 //CJK UNIFIED IDEOGRAPH - ,0xD67C ,0x75CE //CJK UNIFIED IDEOGRAPH - ,0xD67D ,0x75D2 //CJK UNIFIED IDEOGRAPH - ,0xD67E ,0x75CF //CJK UNIFIED IDEOGRAPH - ,0xD6A1 ,0x75CB //CJK UNIFIED IDEOGRAPH - ,0xD6A2 ,0x75CC //CJK UNIFIED IDEOGRAPH - ,0xD6A3 ,0x75D1 //CJK UNIFIED IDEOGRAPH - ,0xD6A4 ,0x75D0 //CJK UNIFIED IDEOGRAPH - ,0xD6A5 ,0x768F //CJK UNIFIED IDEOGRAPH - ,0xD6A6 ,0x7689 //CJK UNIFIED IDEOGRAPH - ,0xD6A7 ,0x76D3 //CJK UNIFIED IDEOGRAPH - ,0xD6A8 ,0x7739 //CJK UNIFIED IDEOGRAPH - ,0xD6A9 ,0x772F //CJK UNIFIED IDEOGRAPH - ,0xD6AA ,0x772D //CJK UNIFIED IDEOGRAPH - ,0xD6AB ,0x7731 //CJK UNIFIED IDEOGRAPH - ,0xD6AC ,0x7732 //CJK UNIFIED IDEOGRAPH - ,0xD6AD ,0x7734 //CJK UNIFIED IDEOGRAPH - ,0xD6AE ,0x7733 //CJK UNIFIED IDEOGRAPH - ,0xD6AF ,0x773D //CJK UNIFIED IDEOGRAPH - ,0xD6B0 ,0x7725 //CJK UNIFIED IDEOGRAPH - ,0xD6B1 ,0x773B //CJK UNIFIED IDEOGRAPH - ,0xD6B2 ,0x7735 //CJK UNIFIED IDEOGRAPH - ,0xD6B3 ,0x7848 //CJK UNIFIED IDEOGRAPH - ,0xD6B4 ,0x7852 //CJK UNIFIED IDEOGRAPH - ,0xD6B5 ,0x7849 //CJK UNIFIED IDEOGRAPH - ,0xD6B6 ,0x784D //CJK UNIFIED IDEOGRAPH - ,0xD6B7 ,0x784A //CJK UNIFIED IDEOGRAPH - ,0xD6B8 ,0x784C //CJK UNIFIED IDEOGRAPH - ,0xD6B9 ,0x7826 //CJK UNIFIED IDEOGRAPH - ,0xD6BA ,0x7845 //CJK UNIFIED IDEOGRAPH - ,0xD6BB ,0x7850 //CJK UNIFIED IDEOGRAPH - ,0xD6BC ,0x7964 //CJK UNIFIED IDEOGRAPH - ,0xD6BD ,0x7967 //CJK UNIFIED IDEOGRAPH - ,0xD6BE ,0x7969 //CJK UNIFIED IDEOGRAPH - ,0xD6BF ,0x796A //CJK UNIFIED IDEOGRAPH - ,0xD6C0 ,0x7963 //CJK UNIFIED IDEOGRAPH - ,0xD6C1 ,0x796B //CJK UNIFIED IDEOGRAPH - ,0xD6C2 ,0x7961 //CJK UNIFIED IDEOGRAPH - ,0xD6C3 ,0x79BB //CJK UNIFIED IDEOGRAPH - ,0xD6C4 ,0x79FA //CJK UNIFIED IDEOGRAPH - ,0xD6C5 ,0x79F8 //CJK UNIFIED IDEOGRAPH - ,0xD6C6 ,0x79F6 //CJK UNIFIED IDEOGRAPH - ,0xD6C7 ,0x79F7 //CJK UNIFIED IDEOGRAPH - ,0xD6C8 ,0x7A8F //CJK UNIFIED IDEOGRAPH - ,0xD6C9 ,0x7A94 //CJK UNIFIED IDEOGRAPH - ,0xD6CA ,0x7A90 //CJK UNIFIED IDEOGRAPH - ,0xD6CB ,0x7B35 //CJK UNIFIED IDEOGRAPH - ,0xD6CC ,0x7B47 //CJK UNIFIED IDEOGRAPH - ,0xD6CD ,0x7B34 //CJK UNIFIED IDEOGRAPH - ,0xD6CE ,0x7B25 //CJK UNIFIED IDEOGRAPH - ,0xD6CF ,0x7B30 //CJK UNIFIED IDEOGRAPH - ,0xD6D0 ,0x7B22 //CJK UNIFIED IDEOGRAPH - ,0xD6D1 ,0x7B24 //CJK UNIFIED IDEOGRAPH - ,0xD6D2 ,0x7B33 //CJK UNIFIED IDEOGRAPH - ,0xD6D3 ,0x7B18 //CJK UNIFIED IDEOGRAPH - ,0xD6D4 ,0x7B2A //CJK UNIFIED IDEOGRAPH - ,0xD6D5 ,0x7B1D //CJK UNIFIED IDEOGRAPH - ,0xD6D6 ,0x7B31 //CJK UNIFIED IDEOGRAPH - ,0xD6D7 ,0x7B2B //CJK UNIFIED IDEOGRAPH - ,0xD6D8 ,0x7B2D //CJK UNIFIED IDEOGRAPH - ,0xD6D9 ,0x7B2F //CJK UNIFIED IDEOGRAPH - ,0xD6DA ,0x7B32 //CJK UNIFIED IDEOGRAPH - ,0xD6DB ,0x7B38 //CJK UNIFIED IDEOGRAPH - ,0xD6DC ,0x7B1A //CJK UNIFIED IDEOGRAPH - ,0xD6DD ,0x7B23 //CJK UNIFIED IDEOGRAPH - ,0xD6DE ,0x7C94 //CJK UNIFIED IDEOGRAPH - ,0xD6DF ,0x7C98 //CJK UNIFIED IDEOGRAPH - ,0xD6E0 ,0x7C96 //CJK UNIFIED IDEOGRAPH - ,0xD6E1 ,0x7CA3 //CJK UNIFIED IDEOGRAPH - ,0xD6E2 ,0x7D35 //CJK UNIFIED IDEOGRAPH - ,0xD6E3 ,0x7D3D //CJK UNIFIED IDEOGRAPH - ,0xD6E4 ,0x7D38 //CJK UNIFIED IDEOGRAPH - ,0xD6E5 ,0x7D36 //CJK UNIFIED IDEOGRAPH - ,0xD6E6 ,0x7D3A //CJK UNIFIED IDEOGRAPH - ,0xD6E7 ,0x7D45 //CJK UNIFIED IDEOGRAPH - ,0xD6E8 ,0x7D2C //CJK UNIFIED IDEOGRAPH - ,0xD6E9 ,0x7D29 //CJK UNIFIED IDEOGRAPH - ,0xD6EA ,0x7D41 //CJK UNIFIED IDEOGRAPH - ,0xD6EB ,0x7D47 //CJK UNIFIED IDEOGRAPH - ,0xD6EC ,0x7D3E //CJK UNIFIED IDEOGRAPH - ,0xD6ED ,0x7D3F //CJK UNIFIED IDEOGRAPH - ,0xD6EE ,0x7D4A //CJK UNIFIED IDEOGRAPH - ,0xD6EF ,0x7D3B //CJK UNIFIED IDEOGRAPH - ,0xD6F0 ,0x7D28 //CJK UNIFIED IDEOGRAPH - ,0xD6F1 ,0x7F63 //CJK UNIFIED IDEOGRAPH - ,0xD6F2 ,0x7F95 //CJK UNIFIED IDEOGRAPH - ,0xD6F3 ,0x7F9C //CJK UNIFIED IDEOGRAPH - ,0xD6F4 ,0x7F9D //CJK UNIFIED IDEOGRAPH - ,0xD6F5 ,0x7F9B //CJK UNIFIED IDEOGRAPH - ,0xD6F6 ,0x7FCA //CJK UNIFIED IDEOGRAPH - ,0xD6F7 ,0x7FCB //CJK UNIFIED IDEOGRAPH - ,0xD6F8 ,0x7FCD //CJK UNIFIED IDEOGRAPH - ,0xD6F9 ,0x7FD0 //CJK UNIFIED IDEOGRAPH - ,0xD6FA ,0x7FD1 //CJK UNIFIED IDEOGRAPH - ,0xD6FB ,0x7FC7 //CJK UNIFIED IDEOGRAPH - ,0xD6FC ,0x7FCF //CJK UNIFIED IDEOGRAPH - ,0xD6FD ,0x7FC9 //CJK UNIFIED IDEOGRAPH - ,0xD6FE ,0x801F //CJK UNIFIED IDEOGRAPH - ,0xD740 ,0x801E //CJK UNIFIED IDEOGRAPH - ,0xD741 ,0x801B //CJK UNIFIED IDEOGRAPH - ,0xD742 ,0x8047 //CJK UNIFIED IDEOGRAPH - ,0xD743 ,0x8043 //CJK UNIFIED IDEOGRAPH - ,0xD744 ,0x8048 //CJK UNIFIED IDEOGRAPH - ,0xD745 ,0x8118 //CJK UNIFIED IDEOGRAPH - ,0xD746 ,0x8125 //CJK UNIFIED IDEOGRAPH - ,0xD747 ,0x8119 //CJK UNIFIED IDEOGRAPH - ,0xD748 ,0x811B //CJK UNIFIED IDEOGRAPH - ,0xD749 ,0x812D //CJK UNIFIED IDEOGRAPH - ,0xD74A ,0x811F //CJK UNIFIED IDEOGRAPH - ,0xD74B ,0x812C //CJK UNIFIED IDEOGRAPH - ,0xD74C ,0x811E //CJK UNIFIED IDEOGRAPH - ,0xD74D ,0x8121 //CJK UNIFIED IDEOGRAPH - ,0xD74E ,0x8115 //CJK UNIFIED IDEOGRAPH - ,0xD74F ,0x8127 //CJK UNIFIED IDEOGRAPH - ,0xD750 ,0x811D //CJK UNIFIED IDEOGRAPH - ,0xD751 ,0x8122 //CJK UNIFIED IDEOGRAPH - ,0xD752 ,0x8211 //CJK UNIFIED IDEOGRAPH - ,0xD753 ,0x8238 //CJK UNIFIED IDEOGRAPH - ,0xD754 ,0x8233 //CJK UNIFIED IDEOGRAPH - ,0xD755 ,0x823A //CJK UNIFIED IDEOGRAPH - ,0xD756 ,0x8234 //CJK UNIFIED IDEOGRAPH - ,0xD757 ,0x8232 //CJK UNIFIED IDEOGRAPH - ,0xD758 ,0x8274 //CJK UNIFIED IDEOGRAPH - ,0xD759 ,0x8390 //CJK UNIFIED IDEOGRAPH - ,0xD75A ,0x83A3 //CJK UNIFIED IDEOGRAPH - ,0xD75B ,0x83A8 //CJK UNIFIED IDEOGRAPH - ,0xD75C ,0x838D //CJK UNIFIED IDEOGRAPH - ,0xD75D ,0x837A //CJK UNIFIED IDEOGRAPH - ,0xD75E ,0x8373 //CJK UNIFIED IDEOGRAPH - ,0xD75F ,0x83A4 //CJK UNIFIED IDEOGRAPH - ,0xD760 ,0x8374 //CJK UNIFIED IDEOGRAPH - ,0xD761 ,0x838F //CJK UNIFIED IDEOGRAPH - ,0xD762 ,0x8381 //CJK UNIFIED IDEOGRAPH - ,0xD763 ,0x8395 //CJK UNIFIED IDEOGRAPH - ,0xD764 ,0x8399 //CJK UNIFIED IDEOGRAPH - ,0xD765 ,0x8375 //CJK UNIFIED IDEOGRAPH - ,0xD766 ,0x8394 //CJK UNIFIED IDEOGRAPH - ,0xD767 ,0x83A9 //CJK UNIFIED IDEOGRAPH - ,0xD768 ,0x837D //CJK UNIFIED IDEOGRAPH - ,0xD769 ,0x8383 //CJK UNIFIED IDEOGRAPH - ,0xD76A ,0x838C //CJK UNIFIED IDEOGRAPH - ,0xD76B ,0x839D //CJK UNIFIED IDEOGRAPH - ,0xD76C ,0x839B //CJK UNIFIED IDEOGRAPH - ,0xD76D ,0x83AA //CJK UNIFIED IDEOGRAPH - ,0xD76E ,0x838B //CJK UNIFIED IDEOGRAPH - ,0xD76F ,0x837E //CJK UNIFIED IDEOGRAPH - ,0xD770 ,0x83A5 //CJK UNIFIED IDEOGRAPH - ,0xD771 ,0x83AF //CJK UNIFIED IDEOGRAPH - ,0xD772 ,0x8388 //CJK UNIFIED IDEOGRAPH - ,0xD773 ,0x8397 //CJK UNIFIED IDEOGRAPH - ,0xD774 ,0x83B0 //CJK UNIFIED IDEOGRAPH - ,0xD775 ,0x837F //CJK UNIFIED IDEOGRAPH - ,0xD776 ,0x83A6 //CJK UNIFIED IDEOGRAPH - ,0xD777 ,0x8387 //CJK UNIFIED IDEOGRAPH - ,0xD778 ,0x83AE //CJK UNIFIED IDEOGRAPH - ,0xD779 ,0x8376 //CJK UNIFIED IDEOGRAPH - ,0xD77A ,0x839A //CJK UNIFIED IDEOGRAPH - ,0xD77B ,0x8659 //CJK UNIFIED IDEOGRAPH - ,0xD77C ,0x8656 //CJK UNIFIED IDEOGRAPH - ,0xD77D ,0x86BF //CJK UNIFIED IDEOGRAPH - ,0xD77E ,0x86B7 //CJK UNIFIED IDEOGRAPH - ,0xD7A1 ,0x86C2 //CJK UNIFIED IDEOGRAPH - ,0xD7A2 ,0x86C1 //CJK UNIFIED IDEOGRAPH - ,0xD7A3 ,0x86C5 //CJK UNIFIED IDEOGRAPH - ,0xD7A4 ,0x86BA //CJK UNIFIED IDEOGRAPH - ,0xD7A5 ,0x86B0 //CJK UNIFIED IDEOGRAPH - ,0xD7A6 ,0x86C8 //CJK UNIFIED IDEOGRAPH - ,0xD7A7 ,0x86B9 //CJK UNIFIED IDEOGRAPH - ,0xD7A8 ,0x86B3 //CJK UNIFIED IDEOGRAPH - ,0xD7A9 ,0x86B8 //CJK UNIFIED IDEOGRAPH - ,0xD7AA ,0x86CC //CJK UNIFIED IDEOGRAPH - ,0xD7AB ,0x86B4 //CJK UNIFIED IDEOGRAPH - ,0xD7AC ,0x86BB //CJK UNIFIED IDEOGRAPH - ,0xD7AD ,0x86BC //CJK UNIFIED IDEOGRAPH - ,0xD7AE ,0x86C3 //CJK UNIFIED IDEOGRAPH - ,0xD7AF ,0x86BD //CJK UNIFIED IDEOGRAPH - ,0xD7B0 ,0x86BE //CJK UNIFIED IDEOGRAPH - ,0xD7B1 ,0x8852 //CJK UNIFIED IDEOGRAPH - ,0xD7B2 ,0x8889 //CJK UNIFIED IDEOGRAPH - ,0xD7B3 ,0x8895 //CJK UNIFIED IDEOGRAPH - ,0xD7B4 ,0x88A8 //CJK UNIFIED IDEOGRAPH - ,0xD7B5 ,0x88A2 //CJK UNIFIED IDEOGRAPH - ,0xD7B6 ,0x88AA //CJK UNIFIED IDEOGRAPH - ,0xD7B7 ,0x889A //CJK UNIFIED IDEOGRAPH - ,0xD7B8 ,0x8891 //CJK UNIFIED IDEOGRAPH - ,0xD7B9 ,0x88A1 //CJK UNIFIED IDEOGRAPH - ,0xD7BA ,0x889F //CJK UNIFIED IDEOGRAPH - ,0xD7BB ,0x8898 //CJK UNIFIED IDEOGRAPH - ,0xD7BC ,0x88A7 //CJK UNIFIED IDEOGRAPH - ,0xD7BD ,0x8899 //CJK UNIFIED IDEOGRAPH - ,0xD7BE ,0x889B //CJK UNIFIED IDEOGRAPH - ,0xD7BF ,0x8897 //CJK UNIFIED IDEOGRAPH - ,0xD7C0 ,0x88A4 //CJK UNIFIED IDEOGRAPH - ,0xD7C1 ,0x88AC //CJK UNIFIED IDEOGRAPH - ,0xD7C2 ,0x888C //CJK UNIFIED IDEOGRAPH - ,0xD7C3 ,0x8893 //CJK UNIFIED IDEOGRAPH - ,0xD7C4 ,0x888E //CJK UNIFIED IDEOGRAPH - ,0xD7C5 ,0x8982 //CJK UNIFIED IDEOGRAPH - ,0xD7C6 ,0x89D6 //CJK UNIFIED IDEOGRAPH - ,0xD7C7 ,0x89D9 //CJK UNIFIED IDEOGRAPH - ,0xD7C8 ,0x89D5 //CJK UNIFIED IDEOGRAPH - ,0xD7C9 ,0x8A30 //CJK UNIFIED IDEOGRAPH - ,0xD7CA ,0x8A27 //CJK UNIFIED IDEOGRAPH - ,0xD7CB ,0x8A2C //CJK UNIFIED IDEOGRAPH - ,0xD7CC ,0x8A1E //CJK UNIFIED IDEOGRAPH - ,0xD7CD ,0x8C39 //CJK UNIFIED IDEOGRAPH - ,0xD7CE ,0x8C3B //CJK UNIFIED IDEOGRAPH - ,0xD7CF ,0x8C5C //CJK UNIFIED IDEOGRAPH - ,0xD7D0 ,0x8C5D //CJK UNIFIED IDEOGRAPH - ,0xD7D1 ,0x8C7D //CJK UNIFIED IDEOGRAPH - ,0xD7D2 ,0x8CA5 //CJK UNIFIED IDEOGRAPH - ,0xD7D3 ,0x8D7D //CJK UNIFIED IDEOGRAPH - ,0xD7D4 ,0x8D7B //CJK UNIFIED IDEOGRAPH - ,0xD7D5 ,0x8D79 //CJK UNIFIED IDEOGRAPH - ,0xD7D6 ,0x8DBC //CJK UNIFIED IDEOGRAPH - ,0xD7D7 ,0x8DC2 //CJK UNIFIED IDEOGRAPH - ,0xD7D8 ,0x8DB9 //CJK UNIFIED IDEOGRAPH - ,0xD7D9 ,0x8DBF //CJK UNIFIED IDEOGRAPH - ,0xD7DA ,0x8DC1 //CJK UNIFIED IDEOGRAPH - ,0xD7DB ,0x8ED8 //CJK UNIFIED IDEOGRAPH - ,0xD7DC ,0x8EDE //CJK UNIFIED IDEOGRAPH - ,0xD7DD ,0x8EDD //CJK UNIFIED IDEOGRAPH - ,0xD7DE ,0x8EDC //CJK UNIFIED IDEOGRAPH - ,0xD7DF ,0x8ED7 //CJK UNIFIED IDEOGRAPH - ,0xD7E0 ,0x8EE0 //CJK UNIFIED IDEOGRAPH - ,0xD7E1 ,0x8EE1 //CJK UNIFIED IDEOGRAPH - ,0xD7E2 ,0x9024 //CJK UNIFIED IDEOGRAPH - ,0xD7E3 ,0x900B //CJK UNIFIED IDEOGRAPH - ,0xD7E4 ,0x9011 //CJK UNIFIED IDEOGRAPH - ,0xD7E5 ,0x901C //CJK UNIFIED IDEOGRAPH - ,0xD7E6 ,0x900C //CJK UNIFIED IDEOGRAPH - ,0xD7E7 ,0x9021 //CJK UNIFIED IDEOGRAPH - ,0xD7E8 ,0x90EF //CJK UNIFIED IDEOGRAPH - ,0xD7E9 ,0x90EA //CJK UNIFIED IDEOGRAPH - ,0xD7EA ,0x90F0 //CJK UNIFIED IDEOGRAPH - ,0xD7EB ,0x90F4 //CJK UNIFIED IDEOGRAPH - ,0xD7EC ,0x90F2 //CJK UNIFIED IDEOGRAPH - ,0xD7ED ,0x90F3 //CJK UNIFIED IDEOGRAPH - ,0xD7EE ,0x90D4 //CJK UNIFIED IDEOGRAPH - ,0xD7EF ,0x90EB //CJK UNIFIED IDEOGRAPH - ,0xD7F0 ,0x90EC //CJK UNIFIED IDEOGRAPH - ,0xD7F1 ,0x90E9 //CJK UNIFIED IDEOGRAPH - ,0xD7F2 ,0x9156 //CJK UNIFIED IDEOGRAPH - ,0xD7F3 ,0x9158 //CJK UNIFIED IDEOGRAPH - ,0xD7F4 ,0x915A //CJK UNIFIED IDEOGRAPH - ,0xD7F5 ,0x9153 //CJK UNIFIED IDEOGRAPH - ,0xD7F6 ,0x9155 //CJK UNIFIED IDEOGRAPH - ,0xD7F7 ,0x91EC //CJK UNIFIED IDEOGRAPH - ,0xD7F8 ,0x91F4 //CJK UNIFIED IDEOGRAPH - ,0xD7F9 ,0x91F1 //CJK UNIFIED IDEOGRAPH - ,0xD7FA ,0x91F3 //CJK UNIFIED IDEOGRAPH - ,0xD7FB ,0x91F8 //CJK UNIFIED IDEOGRAPH - ,0xD7FC ,0x91E4 //CJK UNIFIED IDEOGRAPH - ,0xD7FD ,0x91F9 //CJK UNIFIED IDEOGRAPH - ,0xD7FE ,0x91EA //CJK UNIFIED IDEOGRAPH - ,0xD840 ,0x91EB //CJK UNIFIED IDEOGRAPH - ,0xD841 ,0x91F7 //CJK UNIFIED IDEOGRAPH - ,0xD842 ,0x91E8 //CJK UNIFIED IDEOGRAPH - ,0xD843 ,0x91EE //CJK UNIFIED IDEOGRAPH - ,0xD844 ,0x957A //CJK UNIFIED IDEOGRAPH - ,0xD845 ,0x9586 //CJK UNIFIED IDEOGRAPH - ,0xD846 ,0x9588 //CJK UNIFIED IDEOGRAPH - ,0xD847 ,0x967C //CJK UNIFIED IDEOGRAPH - ,0xD848 ,0x966D //CJK UNIFIED IDEOGRAPH - ,0xD849 ,0x966B //CJK UNIFIED IDEOGRAPH - ,0xD84A ,0x9671 //CJK UNIFIED IDEOGRAPH - ,0xD84B ,0x966F //CJK UNIFIED IDEOGRAPH - ,0xD84C ,0x96BF //CJK UNIFIED IDEOGRAPH - ,0xD84D ,0x976A //CJK UNIFIED IDEOGRAPH - ,0xD84E ,0x9804 //CJK UNIFIED IDEOGRAPH - ,0xD84F ,0x98E5 //CJK UNIFIED IDEOGRAPH - ,0xD850 ,0x9997 //CJK UNIFIED IDEOGRAPH - ,0xD851 ,0x509B //CJK UNIFIED IDEOGRAPH - ,0xD852 ,0x5095 //CJK UNIFIED IDEOGRAPH - ,0xD853 ,0x5094 //CJK UNIFIED IDEOGRAPH - ,0xD854 ,0x509E //CJK UNIFIED IDEOGRAPH - ,0xD855 ,0x508B //CJK UNIFIED IDEOGRAPH - ,0xD856 ,0x50A3 //CJK UNIFIED IDEOGRAPH - ,0xD857 ,0x5083 //CJK UNIFIED IDEOGRAPH - ,0xD858 ,0x508C //CJK UNIFIED IDEOGRAPH - ,0xD859 ,0x508E //CJK UNIFIED IDEOGRAPH - ,0xD85A ,0x509D //CJK UNIFIED IDEOGRAPH - ,0xD85B ,0x5068 //CJK UNIFIED IDEOGRAPH - ,0xD85C ,0x509C //CJK UNIFIED IDEOGRAPH - ,0xD85D ,0x5092 //CJK UNIFIED IDEOGRAPH - ,0xD85E ,0x5082 //CJK UNIFIED IDEOGRAPH - ,0xD85F ,0x5087 //CJK UNIFIED IDEOGRAPH - ,0xD860 ,0x515F //CJK UNIFIED IDEOGRAPH - ,0xD861 ,0x51D4 //CJK UNIFIED IDEOGRAPH - ,0xD862 ,0x5312 //CJK UNIFIED IDEOGRAPH - ,0xD863 ,0x5311 //CJK UNIFIED IDEOGRAPH - ,0xD864 ,0x53A4 //CJK UNIFIED IDEOGRAPH - ,0xD865 ,0x53A7 //CJK UNIFIED IDEOGRAPH - ,0xD866 ,0x5591 //CJK UNIFIED IDEOGRAPH - ,0xD867 ,0x55A8 //CJK UNIFIED IDEOGRAPH - ,0xD868 ,0x55A5 //CJK UNIFIED IDEOGRAPH - ,0xD869 ,0x55AD //CJK UNIFIED IDEOGRAPH - ,0xD86A ,0x5577 //CJK UNIFIED IDEOGRAPH - ,0xD86B ,0x5645 //CJK UNIFIED IDEOGRAPH - ,0xD86C ,0x55A2 //CJK UNIFIED IDEOGRAPH - ,0xD86D ,0x5593 //CJK UNIFIED IDEOGRAPH - ,0xD86E ,0x5588 //CJK UNIFIED IDEOGRAPH - ,0xD86F ,0x558F //CJK UNIFIED IDEOGRAPH - ,0xD870 ,0x55B5 //CJK UNIFIED IDEOGRAPH - ,0xD871 ,0x5581 //CJK UNIFIED IDEOGRAPH - ,0xD872 ,0x55A3 //CJK UNIFIED IDEOGRAPH - ,0xD873 ,0x5592 //CJK UNIFIED IDEOGRAPH - ,0xD874 ,0x55A4 //CJK UNIFIED IDEOGRAPH - ,0xD875 ,0x557D //CJK UNIFIED IDEOGRAPH - ,0xD876 ,0x558C //CJK UNIFIED IDEOGRAPH - ,0xD877 ,0x55A6 //CJK UNIFIED IDEOGRAPH - ,0xD878 ,0x557F //CJK UNIFIED IDEOGRAPH - ,0xD879 ,0x5595 //CJK UNIFIED IDEOGRAPH - ,0xD87A ,0x55A1 //CJK UNIFIED IDEOGRAPH - ,0xD87B ,0x558E //CJK UNIFIED IDEOGRAPH - ,0xD87C ,0x570C //CJK UNIFIED IDEOGRAPH - ,0xD87D ,0x5829 //CJK UNIFIED IDEOGRAPH - ,0xD87E ,0x5837 //CJK UNIFIED IDEOGRAPH - ,0xD8A1 ,0x5819 //CJK UNIFIED IDEOGRAPH - ,0xD8A2 ,0x581E //CJK UNIFIED IDEOGRAPH - ,0xD8A3 ,0x5827 //CJK UNIFIED IDEOGRAPH - ,0xD8A4 ,0x5823 //CJK UNIFIED IDEOGRAPH - ,0xD8A5 ,0x5828 //CJK UNIFIED IDEOGRAPH - ,0xD8A6 ,0x57F5 //CJK UNIFIED IDEOGRAPH - ,0xD8A7 ,0x5848 //CJK UNIFIED IDEOGRAPH - ,0xD8A8 ,0x5825 //CJK UNIFIED IDEOGRAPH - ,0xD8A9 ,0x581C //CJK UNIFIED IDEOGRAPH - ,0xD8AA ,0x581B //CJK UNIFIED IDEOGRAPH - ,0xD8AB ,0x5833 //CJK UNIFIED IDEOGRAPH - ,0xD8AC ,0x583F //CJK UNIFIED IDEOGRAPH - ,0xD8AD ,0x5836 //CJK UNIFIED IDEOGRAPH - ,0xD8AE ,0x582E //CJK UNIFIED IDEOGRAPH - ,0xD8AF ,0x5839 //CJK UNIFIED IDEOGRAPH - ,0xD8B0 ,0x5838 //CJK UNIFIED IDEOGRAPH - ,0xD8B1 ,0x582D //CJK UNIFIED IDEOGRAPH - ,0xD8B2 ,0x582C //CJK UNIFIED IDEOGRAPH - ,0xD8B3 ,0x583B //CJK UNIFIED IDEOGRAPH - ,0xD8B4 ,0x5961 //CJK UNIFIED IDEOGRAPH - ,0xD8B5 ,0x5AAF //CJK UNIFIED IDEOGRAPH - ,0xD8B6 ,0x5A94 //CJK UNIFIED IDEOGRAPH - ,0xD8B7 ,0x5A9F //CJK UNIFIED IDEOGRAPH - ,0xD8B8 ,0x5A7A //CJK UNIFIED IDEOGRAPH - ,0xD8B9 ,0x5AA2 //CJK UNIFIED IDEOGRAPH - ,0xD8BA ,0x5A9E //CJK UNIFIED IDEOGRAPH - ,0xD8BB ,0x5A78 //CJK UNIFIED IDEOGRAPH - ,0xD8BC ,0x5AA6 //CJK UNIFIED IDEOGRAPH - ,0xD8BD ,0x5A7C //CJK UNIFIED IDEOGRAPH - ,0xD8BE ,0x5AA5 //CJK UNIFIED IDEOGRAPH - ,0xD8BF ,0x5AAC //CJK UNIFIED IDEOGRAPH - ,0xD8C0 ,0x5A95 //CJK UNIFIED IDEOGRAPH - ,0xD8C1 ,0x5AAE //CJK UNIFIED IDEOGRAPH - ,0xD8C2 ,0x5A37 //CJK UNIFIED IDEOGRAPH - ,0xD8C3 ,0x5A84 //CJK UNIFIED IDEOGRAPH - ,0xD8C4 ,0x5A8A //CJK UNIFIED IDEOGRAPH - ,0xD8C5 ,0x5A97 //CJK UNIFIED IDEOGRAPH - ,0xD8C6 ,0x5A83 //CJK UNIFIED IDEOGRAPH - ,0xD8C7 ,0x5A8B //CJK UNIFIED IDEOGRAPH - ,0xD8C8 ,0x5AA9 //CJK UNIFIED IDEOGRAPH - ,0xD8C9 ,0x5A7B //CJK UNIFIED IDEOGRAPH - ,0xD8CA ,0x5A7D //CJK UNIFIED IDEOGRAPH - ,0xD8CB ,0x5A8C //CJK UNIFIED IDEOGRAPH - ,0xD8CC ,0x5A9C //CJK UNIFIED IDEOGRAPH - ,0xD8CD ,0x5A8F //CJK UNIFIED IDEOGRAPH - ,0xD8CE ,0x5A93 //CJK UNIFIED IDEOGRAPH - ,0xD8CF ,0x5A9D //CJK UNIFIED IDEOGRAPH - ,0xD8D0 ,0x5BEA //CJK UNIFIED IDEOGRAPH - ,0xD8D1 ,0x5BCD //CJK UNIFIED IDEOGRAPH - ,0xD8D2 ,0x5BCB //CJK UNIFIED IDEOGRAPH - ,0xD8D3 ,0x5BD4 //CJK UNIFIED IDEOGRAPH - ,0xD8D4 ,0x5BD1 //CJK UNIFIED IDEOGRAPH - ,0xD8D5 ,0x5BCA //CJK UNIFIED IDEOGRAPH - ,0xD8D6 ,0x5BCE //CJK UNIFIED IDEOGRAPH - ,0xD8D7 ,0x5C0C //CJK UNIFIED IDEOGRAPH - ,0xD8D8 ,0x5C30 //CJK UNIFIED IDEOGRAPH - ,0xD8D9 ,0x5D37 //CJK UNIFIED IDEOGRAPH - ,0xD8DA ,0x5D43 //CJK UNIFIED IDEOGRAPH - ,0xD8DB ,0x5D6B //CJK UNIFIED IDEOGRAPH - ,0xD8DC ,0x5D41 //CJK UNIFIED IDEOGRAPH - ,0xD8DD ,0x5D4B //CJK UNIFIED IDEOGRAPH - ,0xD8DE ,0x5D3F //CJK UNIFIED IDEOGRAPH - ,0xD8DF ,0x5D35 //CJK UNIFIED IDEOGRAPH - ,0xD8E0 ,0x5D51 //CJK UNIFIED IDEOGRAPH - ,0xD8E1 ,0x5D4E //CJK UNIFIED IDEOGRAPH - ,0xD8E2 ,0x5D55 //CJK UNIFIED IDEOGRAPH - ,0xD8E3 ,0x5D33 //CJK UNIFIED IDEOGRAPH - ,0xD8E4 ,0x5D3A //CJK UNIFIED IDEOGRAPH - ,0xD8E5 ,0x5D52 //CJK UNIFIED IDEOGRAPH - ,0xD8E6 ,0x5D3D //CJK UNIFIED IDEOGRAPH - ,0xD8E7 ,0x5D31 //CJK UNIFIED IDEOGRAPH - ,0xD8E8 ,0x5D59 //CJK UNIFIED IDEOGRAPH - ,0xD8E9 ,0x5D42 //CJK UNIFIED IDEOGRAPH - ,0xD8EA ,0x5D39 //CJK UNIFIED IDEOGRAPH - ,0xD8EB ,0x5D49 //CJK UNIFIED IDEOGRAPH - ,0xD8EC ,0x5D38 //CJK UNIFIED IDEOGRAPH - ,0xD8ED ,0x5D3C //CJK UNIFIED IDEOGRAPH - ,0xD8EE ,0x5D32 //CJK UNIFIED IDEOGRAPH - ,0xD8EF ,0x5D36 //CJK UNIFIED IDEOGRAPH - ,0xD8F0 ,0x5D40 //CJK UNIFIED IDEOGRAPH - ,0xD8F1 ,0x5D45 //CJK UNIFIED IDEOGRAPH - ,0xD8F2 ,0x5E44 //CJK UNIFIED IDEOGRAPH - ,0xD8F3 ,0x5E41 //CJK UNIFIED IDEOGRAPH - ,0xD8F4 ,0x5F58 //CJK UNIFIED IDEOGRAPH - ,0xD8F5 ,0x5FA6 //CJK UNIFIED IDEOGRAPH - ,0xD8F6 ,0x5FA5 //CJK UNIFIED IDEOGRAPH - ,0xD8F7 ,0x5FAB //CJK UNIFIED IDEOGRAPH - ,0xD8F8 ,0x60C9 //CJK UNIFIED IDEOGRAPH - ,0xD8F9 ,0x60B9 //CJK UNIFIED IDEOGRAPH - ,0xD8FA ,0x60CC //CJK UNIFIED IDEOGRAPH - ,0xD8FB ,0x60E2 //CJK UNIFIED IDEOGRAPH - ,0xD8FC ,0x60CE //CJK UNIFIED IDEOGRAPH - ,0xD8FD ,0x60C4 //CJK UNIFIED IDEOGRAPH - ,0xD8FE ,0x6114 //CJK UNIFIED IDEOGRAPH - ,0xD940 ,0x60F2 //CJK UNIFIED IDEOGRAPH - ,0xD941 ,0x610A //CJK UNIFIED IDEOGRAPH - ,0xD942 ,0x6116 //CJK UNIFIED IDEOGRAPH - ,0xD943 ,0x6105 //CJK UNIFIED IDEOGRAPH - ,0xD944 ,0x60F5 //CJK UNIFIED IDEOGRAPH - ,0xD945 ,0x6113 //CJK UNIFIED IDEOGRAPH - ,0xD946 ,0x60F8 //CJK UNIFIED IDEOGRAPH - ,0xD947 ,0x60FC //CJK UNIFIED IDEOGRAPH - ,0xD948 ,0x60FE //CJK UNIFIED IDEOGRAPH - ,0xD949 ,0x60C1 //CJK UNIFIED IDEOGRAPH - ,0xD94A ,0x6103 //CJK UNIFIED IDEOGRAPH - ,0xD94B ,0x6118 //CJK UNIFIED IDEOGRAPH - ,0xD94C ,0x611D //CJK UNIFIED IDEOGRAPH - ,0xD94D ,0x6110 //CJK UNIFIED IDEOGRAPH - ,0xD94E ,0x60FF //CJK UNIFIED IDEOGRAPH - ,0xD94F ,0x6104 //CJK UNIFIED IDEOGRAPH - ,0xD950 ,0x610B //CJK UNIFIED IDEOGRAPH - ,0xD951 ,0x624A //CJK UNIFIED IDEOGRAPH - ,0xD952 ,0x6394 //CJK UNIFIED IDEOGRAPH - ,0xD953 ,0x63B1 //CJK UNIFIED IDEOGRAPH - ,0xD954 ,0x63B0 //CJK UNIFIED IDEOGRAPH - ,0xD955 ,0x63CE //CJK UNIFIED IDEOGRAPH - ,0xD956 ,0x63E5 //CJK UNIFIED IDEOGRAPH - ,0xD957 ,0x63E8 //CJK UNIFIED IDEOGRAPH - ,0xD958 ,0x63EF //CJK UNIFIED IDEOGRAPH - ,0xD959 ,0x63C3 //CJK UNIFIED IDEOGRAPH - ,0xD95A ,0x649D //CJK UNIFIED IDEOGRAPH - ,0xD95B ,0x63F3 //CJK UNIFIED IDEOGRAPH - ,0xD95C ,0x63CA //CJK UNIFIED IDEOGRAPH - ,0xD95D ,0x63E0 //CJK UNIFIED IDEOGRAPH - ,0xD95E ,0x63F6 //CJK UNIFIED IDEOGRAPH - ,0xD95F ,0x63D5 //CJK UNIFIED IDEOGRAPH - ,0xD960 ,0x63F2 //CJK UNIFIED IDEOGRAPH - ,0xD961 ,0x63F5 //CJK UNIFIED IDEOGRAPH - ,0xD962 ,0x6461 //CJK UNIFIED IDEOGRAPH - ,0xD963 ,0x63DF //CJK UNIFIED IDEOGRAPH - ,0xD964 ,0x63BE //CJK UNIFIED IDEOGRAPH - ,0xD965 ,0x63DD //CJK UNIFIED IDEOGRAPH - ,0xD966 ,0x63DC //CJK UNIFIED IDEOGRAPH - ,0xD967 ,0x63C4 //CJK UNIFIED IDEOGRAPH - ,0xD968 ,0x63D8 //CJK UNIFIED IDEOGRAPH - ,0xD969 ,0x63D3 //CJK UNIFIED IDEOGRAPH - ,0xD96A ,0x63C2 //CJK UNIFIED IDEOGRAPH - ,0xD96B ,0x63C7 //CJK UNIFIED IDEOGRAPH - ,0xD96C ,0x63CC //CJK UNIFIED IDEOGRAPH - ,0xD96D ,0x63CB //CJK UNIFIED IDEOGRAPH - ,0xD96E ,0x63C8 //CJK UNIFIED IDEOGRAPH - ,0xD96F ,0x63F0 //CJK UNIFIED IDEOGRAPH - ,0xD970 ,0x63D7 //CJK UNIFIED IDEOGRAPH - ,0xD971 ,0x63D9 //CJK UNIFIED IDEOGRAPH - ,0xD972 ,0x6532 //CJK UNIFIED IDEOGRAPH - ,0xD973 ,0x6567 //CJK UNIFIED IDEOGRAPH - ,0xD974 ,0x656A //CJK UNIFIED IDEOGRAPH - ,0xD975 ,0x6564 //CJK UNIFIED IDEOGRAPH - ,0xD976 ,0x655C //CJK UNIFIED IDEOGRAPH - ,0xD977 ,0x6568 //CJK UNIFIED IDEOGRAPH - ,0xD978 ,0x6565 //CJK UNIFIED IDEOGRAPH - ,0xD979 ,0x658C //CJK UNIFIED IDEOGRAPH - ,0xD97A ,0x659D //CJK UNIFIED IDEOGRAPH - ,0xD97B ,0x659E //CJK UNIFIED IDEOGRAPH - ,0xD97C ,0x65AE //CJK UNIFIED IDEOGRAPH - ,0xD97D ,0x65D0 //CJK UNIFIED IDEOGRAPH - ,0xD97E ,0x65D2 //CJK UNIFIED IDEOGRAPH - ,0xD9A1 ,0x667C //CJK UNIFIED IDEOGRAPH - ,0xD9A2 ,0x666C //CJK UNIFIED IDEOGRAPH - ,0xD9A3 ,0x667B //CJK UNIFIED IDEOGRAPH - ,0xD9A4 ,0x6680 //CJK UNIFIED IDEOGRAPH - ,0xD9A5 ,0x6671 //CJK UNIFIED IDEOGRAPH - ,0xD9A6 ,0x6679 //CJK UNIFIED IDEOGRAPH - ,0xD9A7 ,0x666A //CJK UNIFIED IDEOGRAPH - ,0xD9A8 ,0x6672 //CJK UNIFIED IDEOGRAPH - ,0xD9A9 ,0x6701 //CJK UNIFIED IDEOGRAPH - ,0xD9AA ,0x690C //CJK UNIFIED IDEOGRAPH - ,0xD9AB ,0x68D3 //CJK UNIFIED IDEOGRAPH - ,0xD9AC ,0x6904 //CJK UNIFIED IDEOGRAPH - ,0xD9AD ,0x68DC //CJK UNIFIED IDEOGRAPH - ,0xD9AE ,0x692A //CJK UNIFIED IDEOGRAPH - ,0xD9AF ,0x68EC //CJK UNIFIED IDEOGRAPH - ,0xD9B0 ,0x68EA //CJK UNIFIED IDEOGRAPH - ,0xD9B1 ,0x68F1 //CJK UNIFIED IDEOGRAPH - ,0xD9B2 ,0x690F //CJK UNIFIED IDEOGRAPH - ,0xD9B3 ,0x68D6 //CJK UNIFIED IDEOGRAPH - ,0xD9B4 ,0x68F7 //CJK UNIFIED IDEOGRAPH - ,0xD9B5 ,0x68EB //CJK UNIFIED IDEOGRAPH - ,0xD9B6 ,0x68E4 //CJK UNIFIED IDEOGRAPH - ,0xD9B7 ,0x68F6 //CJK UNIFIED IDEOGRAPH - ,0xD9B8 ,0x6913 //CJK UNIFIED IDEOGRAPH - ,0xD9B9 ,0x6910 //CJK UNIFIED IDEOGRAPH - ,0xD9BA ,0x68F3 //CJK UNIFIED IDEOGRAPH - ,0xD9BB ,0x68E1 //CJK UNIFIED IDEOGRAPH - ,0xD9BC ,0x6907 //CJK UNIFIED IDEOGRAPH - ,0xD9BD ,0x68CC //CJK UNIFIED IDEOGRAPH - ,0xD9BE ,0x6908 //CJK UNIFIED IDEOGRAPH - ,0xD9BF ,0x6970 //CJK UNIFIED IDEOGRAPH - ,0xD9C0 ,0x68B4 //CJK UNIFIED IDEOGRAPH - ,0xD9C1 ,0x6911 //CJK UNIFIED IDEOGRAPH - ,0xD9C2 ,0x68EF //CJK UNIFIED IDEOGRAPH - ,0xD9C3 ,0x68C6 //CJK UNIFIED IDEOGRAPH - ,0xD9C4 ,0x6914 //CJK UNIFIED IDEOGRAPH - ,0xD9C5 ,0x68F8 //CJK UNIFIED IDEOGRAPH - ,0xD9C6 ,0x68D0 //CJK UNIFIED IDEOGRAPH - ,0xD9C7 ,0x68FD //CJK UNIFIED IDEOGRAPH - ,0xD9C8 ,0x68FC //CJK UNIFIED IDEOGRAPH - ,0xD9C9 ,0x68E8 //CJK UNIFIED IDEOGRAPH - ,0xD9CA ,0x690B //CJK UNIFIED IDEOGRAPH - ,0xD9CB ,0x690A //CJK UNIFIED IDEOGRAPH - ,0xD9CC ,0x6917 //CJK UNIFIED IDEOGRAPH - ,0xD9CD ,0x68CE //CJK UNIFIED IDEOGRAPH - ,0xD9CE ,0x68C8 //CJK UNIFIED IDEOGRAPH - ,0xD9CF ,0x68DD //CJK UNIFIED IDEOGRAPH - ,0xD9D0 ,0x68DE //CJK UNIFIED IDEOGRAPH - ,0xD9D1 ,0x68E6 //CJK UNIFIED IDEOGRAPH - ,0xD9D2 ,0x68F4 //CJK UNIFIED IDEOGRAPH - ,0xD9D3 ,0x68D1 //CJK UNIFIED IDEOGRAPH - ,0xD9D4 ,0x6906 //CJK UNIFIED IDEOGRAPH - ,0xD9D5 ,0x68D4 //CJK UNIFIED IDEOGRAPH - ,0xD9D6 ,0x68E9 //CJK UNIFIED IDEOGRAPH - ,0xD9D7 ,0x6915 //CJK UNIFIED IDEOGRAPH - ,0xD9D8 ,0x6925 //CJK UNIFIED IDEOGRAPH - ,0xD9D9 ,0x68C7 //CJK UNIFIED IDEOGRAPH - ,0xD9DA ,0x6B39 //CJK UNIFIED IDEOGRAPH - ,0xD9DB ,0x6B3B //CJK UNIFIED IDEOGRAPH - ,0xD9DC ,0x6B3F //CJK UNIFIED IDEOGRAPH - ,0xD9DD ,0x6B3C //CJK UNIFIED IDEOGRAPH - ,0xD9DE ,0x6B94 //CJK UNIFIED IDEOGRAPH - ,0xD9DF ,0x6B97 //CJK UNIFIED IDEOGRAPH - ,0xD9E0 ,0x6B99 //CJK UNIFIED IDEOGRAPH - ,0xD9E1 ,0x6B95 //CJK UNIFIED IDEOGRAPH - ,0xD9E2 ,0x6BBD //CJK UNIFIED IDEOGRAPH - ,0xD9E3 ,0x6BF0 //CJK UNIFIED IDEOGRAPH - ,0xD9E4 ,0x6BF2 //CJK UNIFIED IDEOGRAPH - ,0xD9E5 ,0x6BF3 //CJK UNIFIED IDEOGRAPH - ,0xD9E6 ,0x6C30 //CJK UNIFIED IDEOGRAPH - ,0xD9E7 ,0x6DFC //CJK UNIFIED IDEOGRAPH - ,0xD9E8 ,0x6E46 //CJK UNIFIED IDEOGRAPH - ,0xD9E9 ,0x6E47 //CJK UNIFIED IDEOGRAPH - ,0xD9EA ,0x6E1F //CJK UNIFIED IDEOGRAPH - ,0xD9EB ,0x6E49 //CJK UNIFIED IDEOGRAPH - ,0xD9EC ,0x6E88 //CJK UNIFIED IDEOGRAPH - ,0xD9ED ,0x6E3C //CJK UNIFIED IDEOGRAPH - ,0xD9EE ,0x6E3D //CJK UNIFIED IDEOGRAPH - ,0xD9EF ,0x6E45 //CJK UNIFIED IDEOGRAPH - ,0xD9F0 ,0x6E62 //CJK UNIFIED IDEOGRAPH - ,0xD9F1 ,0x6E2B //CJK UNIFIED IDEOGRAPH - ,0xD9F2 ,0x6E3F //CJK UNIFIED IDEOGRAPH - ,0xD9F3 ,0x6E41 //CJK UNIFIED IDEOGRAPH - ,0xD9F4 ,0x6E5D //CJK UNIFIED IDEOGRAPH - ,0xD9F5 ,0x6E73 //CJK UNIFIED IDEOGRAPH - ,0xD9F6 ,0x6E1C //CJK UNIFIED IDEOGRAPH - ,0xD9F7 ,0x6E33 //CJK UNIFIED IDEOGRAPH - ,0xD9F8 ,0x6E4B //CJK UNIFIED IDEOGRAPH - ,0xD9F9 ,0x6E40 //CJK UNIFIED IDEOGRAPH - ,0xD9FA ,0x6E51 //CJK UNIFIED IDEOGRAPH - ,0xD9FB ,0x6E3B //CJK UNIFIED IDEOGRAPH - ,0xD9FC ,0x6E03 //CJK UNIFIED IDEOGRAPH - ,0xD9FD ,0x6E2E //CJK UNIFIED IDEOGRAPH - ,0xD9FE ,0x6E5E //CJK UNIFIED IDEOGRAPH - ,0xDA40 ,0x6E68 //CJK UNIFIED IDEOGRAPH - ,0xDA41 ,0x6E5C //CJK UNIFIED IDEOGRAPH - ,0xDA42 ,0x6E61 //CJK UNIFIED IDEOGRAPH - ,0xDA43 ,0x6E31 //CJK UNIFIED IDEOGRAPH - ,0xDA44 ,0x6E28 //CJK UNIFIED IDEOGRAPH - ,0xDA45 ,0x6E60 //CJK UNIFIED IDEOGRAPH - ,0xDA46 ,0x6E71 //CJK UNIFIED IDEOGRAPH - ,0xDA47 ,0x6E6B //CJK UNIFIED IDEOGRAPH - ,0xDA48 ,0x6E39 //CJK UNIFIED IDEOGRAPH - ,0xDA49 ,0x6E22 //CJK UNIFIED IDEOGRAPH - ,0xDA4A ,0x6E30 //CJK UNIFIED IDEOGRAPH - ,0xDA4B ,0x6E53 //CJK UNIFIED IDEOGRAPH - ,0xDA4C ,0x6E65 //CJK UNIFIED IDEOGRAPH - ,0xDA4D ,0x6E27 //CJK UNIFIED IDEOGRAPH - ,0xDA4E ,0x6E78 //CJK UNIFIED IDEOGRAPH - ,0xDA4F ,0x6E64 //CJK UNIFIED IDEOGRAPH - ,0xDA50 ,0x6E77 //CJK UNIFIED IDEOGRAPH - ,0xDA51 ,0x6E55 //CJK UNIFIED IDEOGRAPH - ,0xDA52 ,0x6E79 //CJK UNIFIED IDEOGRAPH - ,0xDA53 ,0x6E52 //CJK UNIFIED IDEOGRAPH - ,0xDA54 ,0x6E66 //CJK UNIFIED IDEOGRAPH - ,0xDA55 ,0x6E35 //CJK UNIFIED IDEOGRAPH - ,0xDA56 ,0x6E36 //CJK UNIFIED IDEOGRAPH - ,0xDA57 ,0x6E5A //CJK UNIFIED IDEOGRAPH - ,0xDA58 ,0x7120 //CJK UNIFIED IDEOGRAPH - ,0xDA59 ,0x711E //CJK UNIFIED IDEOGRAPH - ,0xDA5A ,0x712F //CJK UNIFIED IDEOGRAPH - ,0xDA5B ,0x70FB //CJK UNIFIED IDEOGRAPH - ,0xDA5C ,0x712E //CJK UNIFIED IDEOGRAPH - ,0xDA5D ,0x7131 //CJK UNIFIED IDEOGRAPH - ,0xDA5E ,0x7123 //CJK UNIFIED IDEOGRAPH - ,0xDA5F ,0x7125 //CJK UNIFIED IDEOGRAPH - ,0xDA60 ,0x7122 //CJK UNIFIED IDEOGRAPH - ,0xDA61 ,0x7132 //CJK UNIFIED IDEOGRAPH - ,0xDA62 ,0x711F //CJK UNIFIED IDEOGRAPH - ,0xDA63 ,0x7128 //CJK UNIFIED IDEOGRAPH - ,0xDA64 ,0x713A //CJK UNIFIED IDEOGRAPH - ,0xDA65 ,0x711B //CJK UNIFIED IDEOGRAPH - ,0xDA66 ,0x724B //CJK UNIFIED IDEOGRAPH - ,0xDA67 ,0x725A //CJK UNIFIED IDEOGRAPH - ,0xDA68 ,0x7288 //CJK UNIFIED IDEOGRAPH - ,0xDA69 ,0x7289 //CJK UNIFIED IDEOGRAPH - ,0xDA6A ,0x7286 //CJK UNIFIED IDEOGRAPH - ,0xDA6B ,0x7285 //CJK UNIFIED IDEOGRAPH - ,0xDA6C ,0x728B //CJK UNIFIED IDEOGRAPH - ,0xDA6D ,0x7312 //CJK UNIFIED IDEOGRAPH - ,0xDA6E ,0x730B //CJK UNIFIED IDEOGRAPH - ,0xDA6F ,0x7330 //CJK UNIFIED IDEOGRAPH - ,0xDA70 ,0x7322 //CJK UNIFIED IDEOGRAPH - ,0xDA71 ,0x7331 //CJK UNIFIED IDEOGRAPH - ,0xDA72 ,0x7333 //CJK UNIFIED IDEOGRAPH - ,0xDA73 ,0x7327 //CJK UNIFIED IDEOGRAPH - ,0xDA74 ,0x7332 //CJK UNIFIED IDEOGRAPH - ,0xDA75 ,0x732D //CJK UNIFIED IDEOGRAPH - ,0xDA76 ,0x7326 //CJK UNIFIED IDEOGRAPH - ,0xDA77 ,0x7323 //CJK UNIFIED IDEOGRAPH - ,0xDA78 ,0x7335 //CJK UNIFIED IDEOGRAPH - ,0xDA79 ,0x730C //CJK UNIFIED IDEOGRAPH - ,0xDA7A ,0x742E //CJK UNIFIED IDEOGRAPH - ,0xDA7B ,0x742C //CJK UNIFIED IDEOGRAPH - ,0xDA7C ,0x7430 //CJK UNIFIED IDEOGRAPH - ,0xDA7D ,0x742B //CJK UNIFIED IDEOGRAPH - ,0xDA7E ,0x7416 //CJK UNIFIED IDEOGRAPH - ,0xDAA1 ,0x741A //CJK UNIFIED IDEOGRAPH - ,0xDAA2 ,0x7421 //CJK UNIFIED IDEOGRAPH - ,0xDAA3 ,0x742D //CJK UNIFIED IDEOGRAPH - ,0xDAA4 ,0x7431 //CJK UNIFIED IDEOGRAPH - ,0xDAA5 ,0x7424 //CJK UNIFIED IDEOGRAPH - ,0xDAA6 ,0x7423 //CJK UNIFIED IDEOGRAPH - ,0xDAA7 ,0x741D //CJK UNIFIED IDEOGRAPH - ,0xDAA8 ,0x7429 //CJK UNIFIED IDEOGRAPH - ,0xDAA9 ,0x7420 //CJK UNIFIED IDEOGRAPH - ,0xDAAA ,0x7432 //CJK UNIFIED IDEOGRAPH - ,0xDAAB ,0x74FB //CJK UNIFIED IDEOGRAPH - ,0xDAAC ,0x752F //CJK UNIFIED IDEOGRAPH - ,0xDAAD ,0x756F //CJK UNIFIED IDEOGRAPH - ,0xDAAE ,0x756C //CJK UNIFIED IDEOGRAPH - ,0xDAAF ,0x75E7 //CJK UNIFIED IDEOGRAPH - ,0xDAB0 ,0x75DA //CJK UNIFIED IDEOGRAPH - ,0xDAB1 ,0x75E1 //CJK UNIFIED IDEOGRAPH - ,0xDAB2 ,0x75E6 //CJK UNIFIED IDEOGRAPH - ,0xDAB3 ,0x75DD //CJK UNIFIED IDEOGRAPH - ,0xDAB4 ,0x75DF //CJK UNIFIED IDEOGRAPH - ,0xDAB5 ,0x75E4 //CJK UNIFIED IDEOGRAPH - ,0xDAB6 ,0x75D7 //CJK UNIFIED IDEOGRAPH - ,0xDAB7 ,0x7695 //CJK UNIFIED IDEOGRAPH - ,0xDAB8 ,0x7692 //CJK UNIFIED IDEOGRAPH - ,0xDAB9 ,0x76DA //CJK UNIFIED IDEOGRAPH - ,0xDABA ,0x7746 //CJK UNIFIED IDEOGRAPH - ,0xDABB ,0x7747 //CJK UNIFIED IDEOGRAPH - ,0xDABC ,0x7744 //CJK UNIFIED IDEOGRAPH - ,0xDABD ,0x774D //CJK UNIFIED IDEOGRAPH - ,0xDABE ,0x7745 //CJK UNIFIED IDEOGRAPH - ,0xDABF ,0x774A //CJK UNIFIED IDEOGRAPH - ,0xDAC0 ,0x774E //CJK UNIFIED IDEOGRAPH - ,0xDAC1 ,0x774B //CJK UNIFIED IDEOGRAPH - ,0xDAC2 ,0x774C //CJK UNIFIED IDEOGRAPH - ,0xDAC3 ,0x77DE //CJK UNIFIED IDEOGRAPH - ,0xDAC4 ,0x77EC //CJK UNIFIED IDEOGRAPH - ,0xDAC5 ,0x7860 //CJK UNIFIED IDEOGRAPH - ,0xDAC6 ,0x7864 //CJK UNIFIED IDEOGRAPH - ,0xDAC7 ,0x7865 //CJK UNIFIED IDEOGRAPH - ,0xDAC8 ,0x785C //CJK UNIFIED IDEOGRAPH - ,0xDAC9 ,0x786D //CJK UNIFIED IDEOGRAPH - ,0xDACA ,0x7871 //CJK UNIFIED IDEOGRAPH - ,0xDACB ,0x786A //CJK UNIFIED IDEOGRAPH - ,0xDACC ,0x786E //CJK UNIFIED IDEOGRAPH - ,0xDACD ,0x7870 //CJK UNIFIED IDEOGRAPH - ,0xDACE ,0x7869 //CJK UNIFIED IDEOGRAPH - ,0xDACF ,0x7868 //CJK UNIFIED IDEOGRAPH - ,0xDAD0 ,0x785E //CJK UNIFIED IDEOGRAPH - ,0xDAD1 ,0x7862 //CJK UNIFIED IDEOGRAPH - ,0xDAD2 ,0x7974 //CJK UNIFIED IDEOGRAPH - ,0xDAD3 ,0x7973 //CJK UNIFIED IDEOGRAPH - ,0xDAD4 ,0x7972 //CJK UNIFIED IDEOGRAPH - ,0xDAD5 ,0x7970 //CJK UNIFIED IDEOGRAPH - ,0xDAD6 ,0x7A02 //CJK UNIFIED IDEOGRAPH - ,0xDAD7 ,0x7A0A //CJK UNIFIED IDEOGRAPH - ,0xDAD8 ,0x7A03 //CJK UNIFIED IDEOGRAPH - ,0xDAD9 ,0x7A0C //CJK UNIFIED IDEOGRAPH - ,0xDADA ,0x7A04 //CJK UNIFIED IDEOGRAPH - ,0xDADB ,0x7A99 //CJK UNIFIED IDEOGRAPH - ,0xDADC ,0x7AE6 //CJK UNIFIED IDEOGRAPH - ,0xDADD ,0x7AE4 //CJK UNIFIED IDEOGRAPH - ,0xDADE ,0x7B4A //CJK UNIFIED IDEOGRAPH - ,0xDADF ,0x7B3B //CJK UNIFIED IDEOGRAPH - ,0xDAE0 ,0x7B44 //CJK UNIFIED IDEOGRAPH - ,0xDAE1 ,0x7B48 //CJK UNIFIED IDEOGRAPH - ,0xDAE2 ,0x7B4C //CJK UNIFIED IDEOGRAPH - ,0xDAE3 ,0x7B4E //CJK UNIFIED IDEOGRAPH - ,0xDAE4 ,0x7B40 //CJK UNIFIED IDEOGRAPH - ,0xDAE5 ,0x7B58 //CJK UNIFIED IDEOGRAPH - ,0xDAE6 ,0x7B45 //CJK UNIFIED IDEOGRAPH - ,0xDAE7 ,0x7CA2 //CJK UNIFIED IDEOGRAPH - ,0xDAE8 ,0x7C9E //CJK UNIFIED IDEOGRAPH - ,0xDAE9 ,0x7CA8 //CJK UNIFIED IDEOGRAPH - ,0xDAEA ,0x7CA1 //CJK UNIFIED IDEOGRAPH - ,0xDAEB ,0x7D58 //CJK UNIFIED IDEOGRAPH - ,0xDAEC ,0x7D6F //CJK UNIFIED IDEOGRAPH - ,0xDAED ,0x7D63 //CJK UNIFIED IDEOGRAPH - ,0xDAEE ,0x7D53 //CJK UNIFIED IDEOGRAPH - ,0xDAEF ,0x7D56 //CJK UNIFIED IDEOGRAPH - ,0xDAF0 ,0x7D67 //CJK UNIFIED IDEOGRAPH - ,0xDAF1 ,0x7D6A //CJK UNIFIED IDEOGRAPH - ,0xDAF2 ,0x7D4F //CJK UNIFIED IDEOGRAPH - ,0xDAF3 ,0x7D6D //CJK UNIFIED IDEOGRAPH - ,0xDAF4 ,0x7D5C //CJK UNIFIED IDEOGRAPH - ,0xDAF5 ,0x7D6B //CJK UNIFIED IDEOGRAPH - ,0xDAF6 ,0x7D52 //CJK UNIFIED IDEOGRAPH - ,0xDAF7 ,0x7D54 //CJK UNIFIED IDEOGRAPH - ,0xDAF8 ,0x7D69 //CJK UNIFIED IDEOGRAPH - ,0xDAF9 ,0x7D51 //CJK UNIFIED IDEOGRAPH - ,0xDAFA ,0x7D5F //CJK UNIFIED IDEOGRAPH - ,0xDAFB ,0x7D4E //CJK UNIFIED IDEOGRAPH - ,0xDAFC ,0x7F3E //CJK UNIFIED IDEOGRAPH - ,0xDAFD ,0x7F3F //CJK UNIFIED IDEOGRAPH - ,0xDAFE ,0x7F65 //CJK UNIFIED IDEOGRAPH - ,0xDB40 ,0x7F66 //CJK UNIFIED IDEOGRAPH - ,0xDB41 ,0x7FA2 //CJK UNIFIED IDEOGRAPH - ,0xDB42 ,0x7FA0 //CJK UNIFIED IDEOGRAPH - ,0xDB43 ,0x7FA1 //CJK UNIFIED IDEOGRAPH - ,0xDB44 ,0x7FD7 //CJK UNIFIED IDEOGRAPH - ,0xDB45 ,0x8051 //CJK UNIFIED IDEOGRAPH - ,0xDB46 ,0x804F //CJK UNIFIED IDEOGRAPH - ,0xDB47 ,0x8050 //CJK UNIFIED IDEOGRAPH - ,0xDB48 ,0x80FE //CJK UNIFIED IDEOGRAPH - ,0xDB49 ,0x80D4 //CJK UNIFIED IDEOGRAPH - ,0xDB4A ,0x8143 //CJK UNIFIED IDEOGRAPH - ,0xDB4B ,0x814A //CJK UNIFIED IDEOGRAPH - ,0xDB4C ,0x8152 //CJK UNIFIED IDEOGRAPH - ,0xDB4D ,0x814F //CJK UNIFIED IDEOGRAPH - ,0xDB4E ,0x8147 //CJK UNIFIED IDEOGRAPH - ,0xDB4F ,0x813D //CJK UNIFIED IDEOGRAPH - ,0xDB50 ,0x814D //CJK UNIFIED IDEOGRAPH - ,0xDB51 ,0x813A //CJK UNIFIED IDEOGRAPH - ,0xDB52 ,0x81E6 //CJK UNIFIED IDEOGRAPH - ,0xDB53 ,0x81EE //CJK UNIFIED IDEOGRAPH - ,0xDB54 ,0x81F7 //CJK UNIFIED IDEOGRAPH - ,0xDB55 ,0x81F8 //CJK UNIFIED IDEOGRAPH - ,0xDB56 ,0x81F9 //CJK UNIFIED IDEOGRAPH - ,0xDB57 ,0x8204 //CJK UNIFIED IDEOGRAPH - ,0xDB58 ,0x823C //CJK UNIFIED IDEOGRAPH - ,0xDB59 ,0x823D //CJK UNIFIED IDEOGRAPH - ,0xDB5A ,0x823F //CJK UNIFIED IDEOGRAPH - ,0xDB5B ,0x8275 //CJK UNIFIED IDEOGRAPH - ,0xDB5C ,0x833B //CJK UNIFIED IDEOGRAPH - ,0xDB5D ,0x83CF //CJK UNIFIED IDEOGRAPH - ,0xDB5E ,0x83F9 //CJK UNIFIED IDEOGRAPH - ,0xDB5F ,0x8423 //CJK UNIFIED IDEOGRAPH - ,0xDB60 ,0x83C0 //CJK UNIFIED IDEOGRAPH - ,0xDB61 ,0x83E8 //CJK UNIFIED IDEOGRAPH - ,0xDB62 ,0x8412 //CJK UNIFIED IDEOGRAPH - ,0xDB63 ,0x83E7 //CJK UNIFIED IDEOGRAPH - ,0xDB64 ,0x83E4 //CJK UNIFIED IDEOGRAPH - ,0xDB65 ,0x83FC //CJK UNIFIED IDEOGRAPH - ,0xDB66 ,0x83F6 //CJK UNIFIED IDEOGRAPH - ,0xDB67 ,0x8410 //CJK UNIFIED IDEOGRAPH - ,0xDB68 ,0x83C6 //CJK UNIFIED IDEOGRAPH - ,0xDB69 ,0x83C8 //CJK UNIFIED IDEOGRAPH - ,0xDB6A ,0x83EB //CJK UNIFIED IDEOGRAPH - ,0xDB6B ,0x83E3 //CJK UNIFIED IDEOGRAPH - ,0xDB6C ,0x83BF //CJK UNIFIED IDEOGRAPH - ,0xDB6D ,0x8401 //CJK UNIFIED IDEOGRAPH - ,0xDB6E ,0x83DD //CJK UNIFIED IDEOGRAPH - ,0xDB6F ,0x83E5 //CJK UNIFIED IDEOGRAPH - ,0xDB70 ,0x83D8 //CJK UNIFIED IDEOGRAPH - ,0xDB71 ,0x83FF //CJK UNIFIED IDEOGRAPH - ,0xDB72 ,0x83E1 //CJK UNIFIED IDEOGRAPH - ,0xDB73 ,0x83CB //CJK UNIFIED IDEOGRAPH - ,0xDB74 ,0x83CE //CJK UNIFIED IDEOGRAPH - ,0xDB75 ,0x83D6 //CJK UNIFIED IDEOGRAPH - ,0xDB76 ,0x83F5 //CJK UNIFIED IDEOGRAPH - ,0xDB77 ,0x83C9 //CJK UNIFIED IDEOGRAPH - ,0xDB78 ,0x8409 //CJK UNIFIED IDEOGRAPH - ,0xDB79 ,0x840F //CJK UNIFIED IDEOGRAPH - ,0xDB7A ,0x83DE //CJK UNIFIED IDEOGRAPH - ,0xDB7B ,0x8411 //CJK UNIFIED IDEOGRAPH - ,0xDB7C ,0x8406 //CJK UNIFIED IDEOGRAPH - ,0xDB7D ,0x83C2 //CJK UNIFIED IDEOGRAPH - ,0xDB7E ,0x83F3 //CJK UNIFIED IDEOGRAPH - ,0xDBA1 ,0x83D5 //CJK UNIFIED IDEOGRAPH - ,0xDBA2 ,0x83FA //CJK UNIFIED IDEOGRAPH - ,0xDBA3 ,0x83C7 //CJK UNIFIED IDEOGRAPH - ,0xDBA4 ,0x83D1 //CJK UNIFIED IDEOGRAPH - ,0xDBA5 ,0x83EA //CJK UNIFIED IDEOGRAPH - ,0xDBA6 ,0x8413 //CJK UNIFIED IDEOGRAPH - ,0xDBA7 ,0x83C3 //CJK UNIFIED IDEOGRAPH - ,0xDBA8 ,0x83EC //CJK UNIFIED IDEOGRAPH - ,0xDBA9 ,0x83EE //CJK UNIFIED IDEOGRAPH - ,0xDBAA ,0x83C4 //CJK UNIFIED IDEOGRAPH - ,0xDBAB ,0x83FB //CJK UNIFIED IDEOGRAPH - ,0xDBAC ,0x83D7 //CJK UNIFIED IDEOGRAPH - ,0xDBAD ,0x83E2 //CJK UNIFIED IDEOGRAPH - ,0xDBAE ,0x841B //CJK UNIFIED IDEOGRAPH - ,0xDBAF ,0x83DB //CJK UNIFIED IDEOGRAPH - ,0xDBB0 ,0x83FE //CJK UNIFIED IDEOGRAPH - ,0xDBB1 ,0x86D8 //CJK UNIFIED IDEOGRAPH - ,0xDBB2 ,0x86E2 //CJK UNIFIED IDEOGRAPH - ,0xDBB3 ,0x86E6 //CJK UNIFIED IDEOGRAPH - ,0xDBB4 ,0x86D3 //CJK UNIFIED IDEOGRAPH - ,0xDBB5 ,0x86E3 //CJK UNIFIED IDEOGRAPH - ,0xDBB6 ,0x86DA //CJK UNIFIED IDEOGRAPH - ,0xDBB7 ,0x86EA //CJK UNIFIED IDEOGRAPH - ,0xDBB8 ,0x86DD //CJK UNIFIED IDEOGRAPH - ,0xDBB9 ,0x86EB //CJK UNIFIED IDEOGRAPH - ,0xDBBA ,0x86DC //CJK UNIFIED IDEOGRAPH - ,0xDBBB ,0x86EC //CJK UNIFIED IDEOGRAPH - ,0xDBBC ,0x86E9 //CJK UNIFIED IDEOGRAPH - ,0xDBBD ,0x86D7 //CJK UNIFIED IDEOGRAPH - ,0xDBBE ,0x86E8 //CJK UNIFIED IDEOGRAPH - ,0xDBBF ,0x86D1 //CJK UNIFIED IDEOGRAPH - ,0xDBC0 ,0x8848 //CJK UNIFIED IDEOGRAPH - ,0xDBC1 ,0x8856 //CJK UNIFIED IDEOGRAPH - ,0xDBC2 ,0x8855 //CJK UNIFIED IDEOGRAPH - ,0xDBC3 ,0x88BA //CJK UNIFIED IDEOGRAPH - ,0xDBC4 ,0x88D7 //CJK UNIFIED IDEOGRAPH - ,0xDBC5 ,0x88B9 //CJK UNIFIED IDEOGRAPH - ,0xDBC6 ,0x88B8 //CJK UNIFIED IDEOGRAPH - ,0xDBC7 ,0x88C0 //CJK UNIFIED IDEOGRAPH - ,0xDBC8 ,0x88BE //CJK UNIFIED IDEOGRAPH - ,0xDBC9 ,0x88B6 //CJK UNIFIED IDEOGRAPH - ,0xDBCA ,0x88BC //CJK UNIFIED IDEOGRAPH - ,0xDBCB ,0x88B7 //CJK UNIFIED IDEOGRAPH - ,0xDBCC ,0x88BD //CJK UNIFIED IDEOGRAPH - ,0xDBCD ,0x88B2 //CJK UNIFIED IDEOGRAPH - ,0xDBCE ,0x8901 //CJK UNIFIED IDEOGRAPH - ,0xDBCF ,0x88C9 //CJK UNIFIED IDEOGRAPH - ,0xDBD0 ,0x8995 //CJK UNIFIED IDEOGRAPH - ,0xDBD1 ,0x8998 //CJK UNIFIED IDEOGRAPH - ,0xDBD2 ,0x8997 //CJK UNIFIED IDEOGRAPH - ,0xDBD3 ,0x89DD //CJK UNIFIED IDEOGRAPH - ,0xDBD4 ,0x89DA //CJK UNIFIED IDEOGRAPH - ,0xDBD5 ,0x89DB //CJK UNIFIED IDEOGRAPH - ,0xDBD6 ,0x8A4E //CJK UNIFIED IDEOGRAPH - ,0xDBD7 ,0x8A4D //CJK UNIFIED IDEOGRAPH - ,0xDBD8 ,0x8A39 //CJK UNIFIED IDEOGRAPH - ,0xDBD9 ,0x8A59 //CJK UNIFIED IDEOGRAPH - ,0xDBDA ,0x8A40 //CJK UNIFIED IDEOGRAPH - ,0xDBDB ,0x8A57 //CJK UNIFIED IDEOGRAPH - ,0xDBDC ,0x8A58 //CJK UNIFIED IDEOGRAPH - ,0xDBDD ,0x8A44 //CJK UNIFIED IDEOGRAPH - ,0xDBDE ,0x8A45 //CJK UNIFIED IDEOGRAPH - ,0xDBDF ,0x8A52 //CJK UNIFIED IDEOGRAPH - ,0xDBE0 ,0x8A48 //CJK UNIFIED IDEOGRAPH - ,0xDBE1 ,0x8A51 //CJK UNIFIED IDEOGRAPH - ,0xDBE2 ,0x8A4A //CJK UNIFIED IDEOGRAPH - ,0xDBE3 ,0x8A4C //CJK UNIFIED IDEOGRAPH - ,0xDBE4 ,0x8A4F //CJK UNIFIED IDEOGRAPH - ,0xDBE5 ,0x8C5F //CJK UNIFIED IDEOGRAPH - ,0xDBE6 ,0x8C81 //CJK UNIFIED IDEOGRAPH - ,0xDBE7 ,0x8C80 //CJK UNIFIED IDEOGRAPH - ,0xDBE8 ,0x8CBA //CJK UNIFIED IDEOGRAPH - ,0xDBE9 ,0x8CBE //CJK UNIFIED IDEOGRAPH - ,0xDBEA ,0x8CB0 //CJK UNIFIED IDEOGRAPH - ,0xDBEB ,0x8CB9 //CJK UNIFIED IDEOGRAPH - ,0xDBEC ,0x8CB5 //CJK UNIFIED IDEOGRAPH - ,0xDBED ,0x8D84 //CJK UNIFIED IDEOGRAPH - ,0xDBEE ,0x8D80 //CJK UNIFIED IDEOGRAPH - ,0xDBEF ,0x8D89 //CJK UNIFIED IDEOGRAPH - ,0xDBF0 ,0x8DD8 //CJK UNIFIED IDEOGRAPH - ,0xDBF1 ,0x8DD3 //CJK UNIFIED IDEOGRAPH - ,0xDBF2 ,0x8DCD //CJK UNIFIED IDEOGRAPH - ,0xDBF3 ,0x8DC7 //CJK UNIFIED IDEOGRAPH - ,0xDBF4 ,0x8DD6 //CJK UNIFIED IDEOGRAPH - ,0xDBF5 ,0x8DDC //CJK UNIFIED IDEOGRAPH - ,0xDBF6 ,0x8DCF //CJK UNIFIED IDEOGRAPH - ,0xDBF7 ,0x8DD5 //CJK UNIFIED IDEOGRAPH - ,0xDBF8 ,0x8DD9 //CJK UNIFIED IDEOGRAPH - ,0xDBF9 ,0x8DC8 //CJK UNIFIED IDEOGRAPH - ,0xDBFA ,0x8DD7 //CJK UNIFIED IDEOGRAPH - ,0xDBFB ,0x8DC5 //CJK UNIFIED IDEOGRAPH - ,0xDBFC ,0x8EEF //CJK UNIFIED IDEOGRAPH - ,0xDBFD ,0x8EF7 //CJK UNIFIED IDEOGRAPH - ,0xDBFE ,0x8EFA //CJK UNIFIED IDEOGRAPH - ,0xDC40 ,0x8EF9 //CJK UNIFIED IDEOGRAPH - ,0xDC41 ,0x8EE6 //CJK UNIFIED IDEOGRAPH - ,0xDC42 ,0x8EEE //CJK UNIFIED IDEOGRAPH - ,0xDC43 ,0x8EE5 //CJK UNIFIED IDEOGRAPH - ,0xDC44 ,0x8EF5 //CJK UNIFIED IDEOGRAPH - ,0xDC45 ,0x8EE7 //CJK UNIFIED IDEOGRAPH - ,0xDC46 ,0x8EE8 //CJK UNIFIED IDEOGRAPH - ,0xDC47 ,0x8EF6 //CJK UNIFIED IDEOGRAPH - ,0xDC48 ,0x8EEB //CJK UNIFIED IDEOGRAPH - ,0xDC49 ,0x8EF1 //CJK UNIFIED IDEOGRAPH - ,0xDC4A ,0x8EEC //CJK UNIFIED IDEOGRAPH - ,0xDC4B ,0x8EF4 //CJK UNIFIED IDEOGRAPH - ,0xDC4C ,0x8EE9 //CJK UNIFIED IDEOGRAPH - ,0xDC4D ,0x902D //CJK UNIFIED IDEOGRAPH - ,0xDC4E ,0x9034 //CJK UNIFIED IDEOGRAPH - ,0xDC4F ,0x902F //CJK UNIFIED IDEOGRAPH - ,0xDC50 ,0x9106 //CJK UNIFIED IDEOGRAPH - ,0xDC51 ,0x912C //CJK UNIFIED IDEOGRAPH - ,0xDC52 ,0x9104 //CJK UNIFIED IDEOGRAPH - ,0xDC53 ,0x90FF //CJK UNIFIED IDEOGRAPH - ,0xDC54 ,0x90FC //CJK UNIFIED IDEOGRAPH - ,0xDC55 ,0x9108 //CJK UNIFIED IDEOGRAPH - ,0xDC56 ,0x90F9 //CJK UNIFIED IDEOGRAPH - ,0xDC57 ,0x90FB //CJK UNIFIED IDEOGRAPH - ,0xDC58 ,0x9101 //CJK UNIFIED IDEOGRAPH - ,0xDC59 ,0x9100 //CJK UNIFIED IDEOGRAPH - ,0xDC5A ,0x9107 //CJK UNIFIED IDEOGRAPH - ,0xDC5B ,0x9105 //CJK UNIFIED IDEOGRAPH - ,0xDC5C ,0x9103 //CJK UNIFIED IDEOGRAPH - ,0xDC5D ,0x9161 //CJK UNIFIED IDEOGRAPH - ,0xDC5E ,0x9164 //CJK UNIFIED IDEOGRAPH - ,0xDC5F ,0x915F //CJK UNIFIED IDEOGRAPH - ,0xDC60 ,0x9162 //CJK UNIFIED IDEOGRAPH - ,0xDC61 ,0x9160 //CJK UNIFIED IDEOGRAPH - ,0xDC62 ,0x9201 //CJK UNIFIED IDEOGRAPH - ,0xDC63 ,0x920A //CJK UNIFIED IDEOGRAPH - ,0xDC64 ,0x9225 //CJK UNIFIED IDEOGRAPH - ,0xDC65 ,0x9203 //CJK UNIFIED IDEOGRAPH - ,0xDC66 ,0x921A //CJK UNIFIED IDEOGRAPH - ,0xDC67 ,0x9226 //CJK UNIFIED IDEOGRAPH - ,0xDC68 ,0x920F //CJK UNIFIED IDEOGRAPH - ,0xDC69 ,0x920C //CJK UNIFIED IDEOGRAPH - ,0xDC6A ,0x9200 //CJK UNIFIED IDEOGRAPH - ,0xDC6B ,0x9212 //CJK UNIFIED IDEOGRAPH - ,0xDC6C ,0x91FF //CJK UNIFIED IDEOGRAPH - ,0xDC6D ,0x91FD //CJK UNIFIED IDEOGRAPH - ,0xDC6E ,0x9206 //CJK UNIFIED IDEOGRAPH - ,0xDC6F ,0x9204 //CJK UNIFIED IDEOGRAPH - ,0xDC70 ,0x9227 //CJK UNIFIED IDEOGRAPH - ,0xDC71 ,0x9202 //CJK UNIFIED IDEOGRAPH - ,0xDC72 ,0x921C //CJK UNIFIED IDEOGRAPH - ,0xDC73 ,0x9224 //CJK UNIFIED IDEOGRAPH - ,0xDC74 ,0x9219 //CJK UNIFIED IDEOGRAPH - ,0xDC75 ,0x9217 //CJK UNIFIED IDEOGRAPH - ,0xDC76 ,0x9205 //CJK UNIFIED IDEOGRAPH - ,0xDC77 ,0x9216 //CJK UNIFIED IDEOGRAPH - ,0xDC78 ,0x957B //CJK UNIFIED IDEOGRAPH - ,0xDC79 ,0x958D //CJK UNIFIED IDEOGRAPH - ,0xDC7A ,0x958C //CJK UNIFIED IDEOGRAPH - ,0xDC7B ,0x9590 //CJK UNIFIED IDEOGRAPH - ,0xDC7C ,0x9687 //CJK UNIFIED IDEOGRAPH - ,0xDC7D ,0x967E //CJK UNIFIED IDEOGRAPH - ,0xDC7E ,0x9688 //CJK UNIFIED IDEOGRAPH - ,0xDCA1 ,0x9689 //CJK UNIFIED IDEOGRAPH - ,0xDCA2 ,0x9683 //CJK UNIFIED IDEOGRAPH - ,0xDCA3 ,0x9680 //CJK UNIFIED IDEOGRAPH - ,0xDCA4 ,0x96C2 //CJK UNIFIED IDEOGRAPH - ,0xDCA5 ,0x96C8 //CJK UNIFIED IDEOGRAPH - ,0xDCA6 ,0x96C3 //CJK UNIFIED IDEOGRAPH - ,0xDCA7 ,0x96F1 //CJK UNIFIED IDEOGRAPH - ,0xDCA8 ,0x96F0 //CJK UNIFIED IDEOGRAPH - ,0xDCA9 ,0x976C //CJK UNIFIED IDEOGRAPH - ,0xDCAA ,0x9770 //CJK UNIFIED IDEOGRAPH - ,0xDCAB ,0x976E //CJK UNIFIED IDEOGRAPH - ,0xDCAC ,0x9807 //CJK UNIFIED IDEOGRAPH - ,0xDCAD ,0x98A9 //CJK UNIFIED IDEOGRAPH - ,0xDCAE ,0x98EB //CJK UNIFIED IDEOGRAPH - ,0xDCAF ,0x9CE6 //CJK UNIFIED IDEOGRAPH - ,0xDCB0 ,0x9EF9 //CJK UNIFIED IDEOGRAPH - ,0xDCB1 ,0x4E83 //CJK UNIFIED IDEOGRAPH - ,0xDCB2 ,0x4E84 //CJK UNIFIED IDEOGRAPH - ,0xDCB3 ,0x4EB6 //CJK UNIFIED IDEOGRAPH - ,0xDCB4 ,0x50BD //CJK UNIFIED IDEOGRAPH - ,0xDCB5 ,0x50BF //CJK UNIFIED IDEOGRAPH - ,0xDCB6 ,0x50C6 //CJK UNIFIED IDEOGRAPH - ,0xDCB7 ,0x50AE //CJK UNIFIED IDEOGRAPH - ,0xDCB8 ,0x50C4 //CJK UNIFIED IDEOGRAPH - ,0xDCB9 ,0x50CA //CJK UNIFIED IDEOGRAPH - ,0xDCBA ,0x50B4 //CJK UNIFIED IDEOGRAPH - ,0xDCBB ,0x50C8 //CJK UNIFIED IDEOGRAPH - ,0xDCBC ,0x50C2 //CJK UNIFIED IDEOGRAPH - ,0xDCBD ,0x50B0 //CJK UNIFIED IDEOGRAPH - ,0xDCBE ,0x50C1 //CJK UNIFIED IDEOGRAPH - ,0xDCBF ,0x50BA //CJK UNIFIED IDEOGRAPH - ,0xDCC0 ,0x50B1 //CJK UNIFIED IDEOGRAPH - ,0xDCC1 ,0x50CB //CJK UNIFIED IDEOGRAPH - ,0xDCC2 ,0x50C9 //CJK UNIFIED IDEOGRAPH - ,0xDCC3 ,0x50B6 //CJK UNIFIED IDEOGRAPH - ,0xDCC4 ,0x50B8 //CJK UNIFIED IDEOGRAPH - ,0xDCC5 ,0x51D7 //CJK UNIFIED IDEOGRAPH - ,0xDCC6 ,0x527A //CJK UNIFIED IDEOGRAPH - ,0xDCC7 ,0x5278 //CJK UNIFIED IDEOGRAPH - ,0xDCC8 ,0x527B //CJK UNIFIED IDEOGRAPH - ,0xDCC9 ,0x527C //CJK UNIFIED IDEOGRAPH - ,0xDCCA ,0x55C3 //CJK UNIFIED IDEOGRAPH - ,0xDCCB ,0x55DB //CJK UNIFIED IDEOGRAPH - ,0xDCCC ,0x55CC //CJK UNIFIED IDEOGRAPH - ,0xDCCD ,0x55D0 //CJK UNIFIED IDEOGRAPH - ,0xDCCE ,0x55CB //CJK UNIFIED IDEOGRAPH - ,0xDCCF ,0x55CA //CJK UNIFIED IDEOGRAPH - ,0xDCD0 ,0x55DD //CJK UNIFIED IDEOGRAPH - ,0xDCD1 ,0x55C0 //CJK UNIFIED IDEOGRAPH - ,0xDCD2 ,0x55D4 //CJK UNIFIED IDEOGRAPH - ,0xDCD3 ,0x55C4 //CJK UNIFIED IDEOGRAPH - ,0xDCD4 ,0x55E9 //CJK UNIFIED IDEOGRAPH - ,0xDCD5 ,0x55BF //CJK UNIFIED IDEOGRAPH - ,0xDCD6 ,0x55D2 //CJK UNIFIED IDEOGRAPH - ,0xDCD7 ,0x558D //CJK UNIFIED IDEOGRAPH - ,0xDCD8 ,0x55CF //CJK UNIFIED IDEOGRAPH - ,0xDCD9 ,0x55D5 //CJK UNIFIED IDEOGRAPH - ,0xDCDA ,0x55E2 //CJK UNIFIED IDEOGRAPH - ,0xDCDB ,0x55D6 //CJK UNIFIED IDEOGRAPH - ,0xDCDC ,0x55C8 //CJK UNIFIED IDEOGRAPH - ,0xDCDD ,0x55F2 //CJK UNIFIED IDEOGRAPH - ,0xDCDE ,0x55CD //CJK UNIFIED IDEOGRAPH - ,0xDCDF ,0x55D9 //CJK UNIFIED IDEOGRAPH - ,0xDCE0 ,0x55C2 //CJK UNIFIED IDEOGRAPH - ,0xDCE1 ,0x5714 //CJK UNIFIED IDEOGRAPH - ,0xDCE2 ,0x5853 //CJK UNIFIED IDEOGRAPH - ,0xDCE3 ,0x5868 //CJK UNIFIED IDEOGRAPH - ,0xDCE4 ,0x5864 //CJK UNIFIED IDEOGRAPH - ,0xDCE5 ,0x584F //CJK UNIFIED IDEOGRAPH - ,0xDCE6 ,0x584D //CJK UNIFIED IDEOGRAPH - ,0xDCE7 ,0x5849 //CJK UNIFIED IDEOGRAPH - ,0xDCE8 ,0x586F //CJK UNIFIED IDEOGRAPH - ,0xDCE9 ,0x5855 //CJK UNIFIED IDEOGRAPH - ,0xDCEA ,0x584E //CJK UNIFIED IDEOGRAPH - ,0xDCEB ,0x585D //CJK UNIFIED IDEOGRAPH - ,0xDCEC ,0x5859 //CJK UNIFIED IDEOGRAPH - ,0xDCED ,0x5865 //CJK UNIFIED IDEOGRAPH - ,0xDCEE ,0x585B //CJK UNIFIED IDEOGRAPH - ,0xDCEF ,0x583D //CJK UNIFIED IDEOGRAPH - ,0xDCF0 ,0x5863 //CJK UNIFIED IDEOGRAPH - ,0xDCF1 ,0x5871 //CJK UNIFIED IDEOGRAPH - ,0xDCF2 ,0x58FC //CJK UNIFIED IDEOGRAPH - ,0xDCF3 ,0x5AC7 //CJK UNIFIED IDEOGRAPH - ,0xDCF4 ,0x5AC4 //CJK UNIFIED IDEOGRAPH - ,0xDCF5 ,0x5ACB //CJK UNIFIED IDEOGRAPH - ,0xDCF6 ,0x5ABA //CJK UNIFIED IDEOGRAPH - ,0xDCF7 ,0x5AB8 //CJK UNIFIED IDEOGRAPH - ,0xDCF8 ,0x5AB1 //CJK UNIFIED IDEOGRAPH - ,0xDCF9 ,0x5AB5 //CJK UNIFIED IDEOGRAPH - ,0xDCFA ,0x5AB0 //CJK UNIFIED IDEOGRAPH - ,0xDCFB ,0x5ABF //CJK UNIFIED IDEOGRAPH - ,0xDCFC ,0x5AC8 //CJK UNIFIED IDEOGRAPH - ,0xDCFD ,0x5ABB //CJK UNIFIED IDEOGRAPH - ,0xDCFE ,0x5AC6 //CJK UNIFIED IDEOGRAPH - ,0xDD40 ,0x5AB7 //CJK UNIFIED IDEOGRAPH - ,0xDD41 ,0x5AC0 //CJK UNIFIED IDEOGRAPH - ,0xDD42 ,0x5ACA //CJK UNIFIED IDEOGRAPH - ,0xDD43 ,0x5AB4 //CJK UNIFIED IDEOGRAPH - ,0xDD44 ,0x5AB6 //CJK UNIFIED IDEOGRAPH - ,0xDD45 ,0x5ACD //CJK UNIFIED IDEOGRAPH - ,0xDD46 ,0x5AB9 //CJK UNIFIED IDEOGRAPH - ,0xDD47 ,0x5A90 //CJK UNIFIED IDEOGRAPH - ,0xDD48 ,0x5BD6 //CJK UNIFIED IDEOGRAPH - ,0xDD49 ,0x5BD8 //CJK UNIFIED IDEOGRAPH - ,0xDD4A ,0x5BD9 //CJK UNIFIED IDEOGRAPH - ,0xDD4B ,0x5C1F //CJK UNIFIED IDEOGRAPH - ,0xDD4C ,0x5C33 //CJK UNIFIED IDEOGRAPH - ,0xDD4D ,0x5D71 //CJK UNIFIED IDEOGRAPH - ,0xDD4E ,0x5D63 //CJK UNIFIED IDEOGRAPH - ,0xDD4F ,0x5D4A //CJK UNIFIED IDEOGRAPH - ,0xDD50 ,0x5D65 //CJK UNIFIED IDEOGRAPH - ,0xDD51 ,0x5D72 //CJK UNIFIED IDEOGRAPH - ,0xDD52 ,0x5D6C //CJK UNIFIED IDEOGRAPH - ,0xDD53 ,0x5D5E //CJK UNIFIED IDEOGRAPH - ,0xDD54 ,0x5D68 //CJK UNIFIED IDEOGRAPH - ,0xDD55 ,0x5D67 //CJK UNIFIED IDEOGRAPH - ,0xDD56 ,0x5D62 //CJK UNIFIED IDEOGRAPH - ,0xDD57 ,0x5DF0 //CJK UNIFIED IDEOGRAPH - ,0xDD58 ,0x5E4F //CJK UNIFIED IDEOGRAPH - ,0xDD59 ,0x5E4E //CJK UNIFIED IDEOGRAPH - ,0xDD5A ,0x5E4A //CJK UNIFIED IDEOGRAPH - ,0xDD5B ,0x5E4D //CJK UNIFIED IDEOGRAPH - ,0xDD5C ,0x5E4B //CJK UNIFIED IDEOGRAPH - ,0xDD5D ,0x5EC5 //CJK UNIFIED IDEOGRAPH - ,0xDD5E ,0x5ECC //CJK UNIFIED IDEOGRAPH - ,0xDD5F ,0x5EC6 //CJK UNIFIED IDEOGRAPH - ,0xDD60 ,0x5ECB //CJK UNIFIED IDEOGRAPH - ,0xDD61 ,0x5EC7 //CJK UNIFIED IDEOGRAPH - ,0xDD62 ,0x5F40 //CJK UNIFIED IDEOGRAPH - ,0xDD63 ,0x5FAF //CJK UNIFIED IDEOGRAPH - ,0xDD64 ,0x5FAD //CJK UNIFIED IDEOGRAPH - ,0xDD65 ,0x60F7 //CJK UNIFIED IDEOGRAPH - ,0xDD66 ,0x6149 //CJK UNIFIED IDEOGRAPH - ,0xDD67 ,0x614A //CJK UNIFIED IDEOGRAPH - ,0xDD68 ,0x612B //CJK UNIFIED IDEOGRAPH - ,0xDD69 ,0x6145 //CJK UNIFIED IDEOGRAPH - ,0xDD6A ,0x6136 //CJK UNIFIED IDEOGRAPH - ,0xDD6B ,0x6132 //CJK UNIFIED IDEOGRAPH - ,0xDD6C ,0x612E //CJK UNIFIED IDEOGRAPH - ,0xDD6D ,0x6146 //CJK UNIFIED IDEOGRAPH - ,0xDD6E ,0x612F //CJK UNIFIED IDEOGRAPH - ,0xDD6F ,0x614F //CJK UNIFIED IDEOGRAPH - ,0xDD70 ,0x6129 //CJK UNIFIED IDEOGRAPH - ,0xDD71 ,0x6140 //CJK UNIFIED IDEOGRAPH - ,0xDD72 ,0x6220 //CJK UNIFIED IDEOGRAPH - ,0xDD73 ,0x9168 //CJK UNIFIED IDEOGRAPH - ,0xDD74 ,0x6223 //CJK UNIFIED IDEOGRAPH - ,0xDD75 ,0x6225 //CJK UNIFIED IDEOGRAPH - ,0xDD76 ,0x6224 //CJK UNIFIED IDEOGRAPH - ,0xDD77 ,0x63C5 //CJK UNIFIED IDEOGRAPH - ,0xDD78 ,0x63F1 //CJK UNIFIED IDEOGRAPH - ,0xDD79 ,0x63EB //CJK UNIFIED IDEOGRAPH - ,0xDD7A ,0x6410 //CJK UNIFIED IDEOGRAPH - ,0xDD7B ,0x6412 //CJK UNIFIED IDEOGRAPH - ,0xDD7C ,0x6409 //CJK UNIFIED IDEOGRAPH - ,0xDD7D ,0x6420 //CJK UNIFIED IDEOGRAPH - ,0xDD7E ,0x6424 //CJK UNIFIED IDEOGRAPH - ,0xDDA1 ,0x6433 //CJK UNIFIED IDEOGRAPH - ,0xDDA2 ,0x6443 //CJK UNIFIED IDEOGRAPH - ,0xDDA3 ,0x641F //CJK UNIFIED IDEOGRAPH - ,0xDDA4 ,0x6415 //CJK UNIFIED IDEOGRAPH - ,0xDDA5 ,0x6418 //CJK UNIFIED IDEOGRAPH - ,0xDDA6 ,0x6439 //CJK UNIFIED IDEOGRAPH - ,0xDDA7 ,0x6437 //CJK UNIFIED IDEOGRAPH - ,0xDDA8 ,0x6422 //CJK UNIFIED IDEOGRAPH - ,0xDDA9 ,0x6423 //CJK UNIFIED IDEOGRAPH - ,0xDDAA ,0x640C //CJK UNIFIED IDEOGRAPH - ,0xDDAB ,0x6426 //CJK UNIFIED IDEOGRAPH - ,0xDDAC ,0x6430 //CJK UNIFIED IDEOGRAPH - ,0xDDAD ,0x6428 //CJK UNIFIED IDEOGRAPH - ,0xDDAE ,0x6441 //CJK UNIFIED IDEOGRAPH - ,0xDDAF ,0x6435 //CJK UNIFIED IDEOGRAPH - ,0xDDB0 ,0x642F //CJK UNIFIED IDEOGRAPH - ,0xDDB1 ,0x640A //CJK UNIFIED IDEOGRAPH - ,0xDDB2 ,0x641A //CJK UNIFIED IDEOGRAPH - ,0xDDB3 ,0x6440 //CJK UNIFIED IDEOGRAPH - ,0xDDB4 ,0x6425 //CJK UNIFIED IDEOGRAPH - ,0xDDB5 ,0x6427 //CJK UNIFIED IDEOGRAPH - ,0xDDB6 ,0x640B //CJK UNIFIED IDEOGRAPH - ,0xDDB7 ,0x63E7 //CJK UNIFIED IDEOGRAPH - ,0xDDB8 ,0x641B //CJK UNIFIED IDEOGRAPH - ,0xDDB9 ,0x642E //CJK UNIFIED IDEOGRAPH - ,0xDDBA ,0x6421 //CJK UNIFIED IDEOGRAPH - ,0xDDBB ,0x640E //CJK UNIFIED IDEOGRAPH - ,0xDDBC ,0x656F //CJK UNIFIED IDEOGRAPH - ,0xDDBD ,0x6592 //CJK UNIFIED IDEOGRAPH - ,0xDDBE ,0x65D3 //CJK UNIFIED IDEOGRAPH - ,0xDDBF ,0x6686 //CJK UNIFIED IDEOGRAPH - ,0xDDC0 ,0x668C //CJK UNIFIED IDEOGRAPH - ,0xDDC1 ,0x6695 //CJK UNIFIED IDEOGRAPH - ,0xDDC2 ,0x6690 //CJK UNIFIED IDEOGRAPH - ,0xDDC3 ,0x668B //CJK UNIFIED IDEOGRAPH - ,0xDDC4 ,0x668A //CJK UNIFIED IDEOGRAPH - ,0xDDC5 ,0x6699 //CJK UNIFIED IDEOGRAPH - ,0xDDC6 ,0x6694 //CJK UNIFIED IDEOGRAPH - ,0xDDC7 ,0x6678 //CJK UNIFIED IDEOGRAPH - ,0xDDC8 ,0x6720 //CJK UNIFIED IDEOGRAPH - ,0xDDC9 ,0x6966 //CJK UNIFIED IDEOGRAPH - ,0xDDCA ,0x695F //CJK UNIFIED IDEOGRAPH - ,0xDDCB ,0x6938 //CJK UNIFIED IDEOGRAPH - ,0xDDCC ,0x694E //CJK UNIFIED IDEOGRAPH - ,0xDDCD ,0x6962 //CJK UNIFIED IDEOGRAPH - ,0xDDCE ,0x6971 //CJK UNIFIED IDEOGRAPH - ,0xDDCF ,0x693F //CJK UNIFIED IDEOGRAPH - ,0xDDD0 ,0x6945 //CJK UNIFIED IDEOGRAPH - ,0xDDD1 ,0x696A //CJK UNIFIED IDEOGRAPH - ,0xDDD2 ,0x6939 //CJK UNIFIED IDEOGRAPH - ,0xDDD3 ,0x6942 //CJK UNIFIED IDEOGRAPH - ,0xDDD4 ,0x6957 //CJK UNIFIED IDEOGRAPH - ,0xDDD5 ,0x6959 //CJK UNIFIED IDEOGRAPH - ,0xDDD6 ,0x697A //CJK UNIFIED IDEOGRAPH - ,0xDDD7 ,0x6948 //CJK UNIFIED IDEOGRAPH - ,0xDDD8 ,0x6949 //CJK UNIFIED IDEOGRAPH - ,0xDDD9 ,0x6935 //CJK UNIFIED IDEOGRAPH - ,0xDDDA ,0x696C //CJK UNIFIED IDEOGRAPH - ,0xDDDB ,0x6933 //CJK UNIFIED IDEOGRAPH - ,0xDDDC ,0x693D //CJK UNIFIED IDEOGRAPH - ,0xDDDD ,0x6965 //CJK UNIFIED IDEOGRAPH - ,0xDDDE ,0x68F0 //CJK UNIFIED IDEOGRAPH - ,0xDDDF ,0x6978 //CJK UNIFIED IDEOGRAPH - ,0xDDE0 ,0x6934 //CJK UNIFIED IDEOGRAPH - ,0xDDE1 ,0x6969 //CJK UNIFIED IDEOGRAPH - ,0xDDE2 ,0x6940 //CJK UNIFIED IDEOGRAPH - ,0xDDE3 ,0x696F //CJK UNIFIED IDEOGRAPH - ,0xDDE4 ,0x6944 //CJK UNIFIED IDEOGRAPH - ,0xDDE5 ,0x6976 //CJK UNIFIED IDEOGRAPH - ,0xDDE6 ,0x6958 //CJK UNIFIED IDEOGRAPH - ,0xDDE7 ,0x6941 //CJK UNIFIED IDEOGRAPH - ,0xDDE8 ,0x6974 //CJK UNIFIED IDEOGRAPH - ,0xDDE9 ,0x694C //CJK UNIFIED IDEOGRAPH - ,0xDDEA ,0x693B //CJK UNIFIED IDEOGRAPH - ,0xDDEB ,0x694B //CJK UNIFIED IDEOGRAPH - ,0xDDEC ,0x6937 //CJK UNIFIED IDEOGRAPH - ,0xDDED ,0x695C //CJK UNIFIED IDEOGRAPH - ,0xDDEE ,0x694F //CJK UNIFIED IDEOGRAPH - ,0xDDEF ,0x6951 //CJK UNIFIED IDEOGRAPH - ,0xDDF0 ,0x6932 //CJK UNIFIED IDEOGRAPH - ,0xDDF1 ,0x6952 //CJK UNIFIED IDEOGRAPH - ,0xDDF2 ,0x692F //CJK UNIFIED IDEOGRAPH - ,0xDDF3 ,0x697B //CJK UNIFIED IDEOGRAPH - ,0xDDF4 ,0x693C //CJK UNIFIED IDEOGRAPH - ,0xDDF5 ,0x6B46 //CJK UNIFIED IDEOGRAPH - ,0xDDF6 ,0x6B45 //CJK UNIFIED IDEOGRAPH - ,0xDDF7 ,0x6B43 //CJK UNIFIED IDEOGRAPH - ,0xDDF8 ,0x6B42 //CJK UNIFIED IDEOGRAPH - ,0xDDF9 ,0x6B48 //CJK UNIFIED IDEOGRAPH - ,0xDDFA ,0x6B41 //CJK UNIFIED IDEOGRAPH - ,0xDDFB ,0x6B9B //CJK UNIFIED IDEOGRAPH - ,0xDDFC ,0xFA0D //CJK COMPATIBILITY IDEOGRAPH - ,0xDDFD ,0x6BFB //CJK UNIFIED IDEOGRAPH - ,0xDDFE ,0x6BFC //CJK UNIFIED IDEOGRAPH - ,0xDE40 ,0x6BF9 //CJK UNIFIED IDEOGRAPH - ,0xDE41 ,0x6BF7 //CJK UNIFIED IDEOGRAPH - ,0xDE42 ,0x6BF8 //CJK UNIFIED IDEOGRAPH - ,0xDE43 ,0x6E9B //CJK UNIFIED IDEOGRAPH - ,0xDE44 ,0x6ED6 //CJK UNIFIED IDEOGRAPH - ,0xDE45 ,0x6EC8 //CJK UNIFIED IDEOGRAPH - ,0xDE46 ,0x6E8F //CJK UNIFIED IDEOGRAPH - ,0xDE47 ,0x6EC0 //CJK UNIFIED IDEOGRAPH - ,0xDE48 ,0x6E9F //CJK UNIFIED IDEOGRAPH - ,0xDE49 ,0x6E93 //CJK UNIFIED IDEOGRAPH - ,0xDE4A ,0x6E94 //CJK UNIFIED IDEOGRAPH - ,0xDE4B ,0x6EA0 //CJK UNIFIED IDEOGRAPH - ,0xDE4C ,0x6EB1 //CJK UNIFIED IDEOGRAPH - ,0xDE4D ,0x6EB9 //CJK UNIFIED IDEOGRAPH - ,0xDE4E ,0x6EC6 //CJK UNIFIED IDEOGRAPH - ,0xDE4F ,0x6ED2 //CJK UNIFIED IDEOGRAPH - ,0xDE50 ,0x6EBD //CJK UNIFIED IDEOGRAPH - ,0xDE51 ,0x6EC1 //CJK UNIFIED IDEOGRAPH - ,0xDE52 ,0x6E9E //CJK UNIFIED IDEOGRAPH - ,0xDE53 ,0x6EC9 //CJK UNIFIED IDEOGRAPH - ,0xDE54 ,0x6EB7 //CJK UNIFIED IDEOGRAPH - ,0xDE55 ,0x6EB0 //CJK UNIFIED IDEOGRAPH - ,0xDE56 ,0x6ECD //CJK UNIFIED IDEOGRAPH - ,0xDE57 ,0x6EA6 //CJK UNIFIED IDEOGRAPH - ,0xDE58 ,0x6ECF //CJK UNIFIED IDEOGRAPH - ,0xDE59 ,0x6EB2 //CJK UNIFIED IDEOGRAPH - ,0xDE5A ,0x6EBE //CJK UNIFIED IDEOGRAPH - ,0xDE5B ,0x6EC3 //CJK UNIFIED IDEOGRAPH - ,0xDE5C ,0x6EDC //CJK UNIFIED IDEOGRAPH - ,0xDE5D ,0x6ED8 //CJK UNIFIED IDEOGRAPH - ,0xDE5E ,0x6E99 //CJK UNIFIED IDEOGRAPH - ,0xDE5F ,0x6E92 //CJK UNIFIED IDEOGRAPH - ,0xDE60 ,0x6E8E //CJK UNIFIED IDEOGRAPH - ,0xDE61 ,0x6E8D //CJK UNIFIED IDEOGRAPH - ,0xDE62 ,0x6EA4 //CJK UNIFIED IDEOGRAPH - ,0xDE63 ,0x6EA1 //CJK UNIFIED IDEOGRAPH - ,0xDE64 ,0x6EBF //CJK UNIFIED IDEOGRAPH - ,0xDE65 ,0x6EB3 //CJK UNIFIED IDEOGRAPH - ,0xDE66 ,0x6ED0 //CJK UNIFIED IDEOGRAPH - ,0xDE67 ,0x6ECA //CJK UNIFIED IDEOGRAPH - ,0xDE68 ,0x6E97 //CJK UNIFIED IDEOGRAPH - ,0xDE69 ,0x6EAE //CJK UNIFIED IDEOGRAPH - ,0xDE6A ,0x6EA3 //CJK UNIFIED IDEOGRAPH - ,0xDE6B ,0x7147 //CJK UNIFIED IDEOGRAPH - ,0xDE6C ,0x7154 //CJK UNIFIED IDEOGRAPH - ,0xDE6D ,0x7152 //CJK UNIFIED IDEOGRAPH - ,0xDE6E ,0x7163 //CJK UNIFIED IDEOGRAPH - ,0xDE6F ,0x7160 //CJK UNIFIED IDEOGRAPH - ,0xDE70 ,0x7141 //CJK UNIFIED IDEOGRAPH - ,0xDE71 ,0x715D //CJK UNIFIED IDEOGRAPH - ,0xDE72 ,0x7162 //CJK UNIFIED IDEOGRAPH - ,0xDE73 ,0x7172 //CJK UNIFIED IDEOGRAPH - ,0xDE74 ,0x7178 //CJK UNIFIED IDEOGRAPH - ,0xDE75 ,0x716A //CJK UNIFIED IDEOGRAPH - ,0xDE76 ,0x7161 //CJK UNIFIED IDEOGRAPH - ,0xDE77 ,0x7142 //CJK UNIFIED IDEOGRAPH - ,0xDE78 ,0x7158 //CJK UNIFIED IDEOGRAPH - ,0xDE79 ,0x7143 //CJK UNIFIED IDEOGRAPH - ,0xDE7A ,0x714B //CJK UNIFIED IDEOGRAPH - ,0xDE7B ,0x7170 //CJK UNIFIED IDEOGRAPH - ,0xDE7C ,0x715F //CJK UNIFIED IDEOGRAPH - ,0xDE7D ,0x7150 //CJK UNIFIED IDEOGRAPH - ,0xDE7E ,0x7153 //CJK UNIFIED IDEOGRAPH - ,0xDEA1 ,0x7144 //CJK UNIFIED IDEOGRAPH - ,0xDEA2 ,0x714D //CJK UNIFIED IDEOGRAPH - ,0xDEA3 ,0x715A //CJK UNIFIED IDEOGRAPH - ,0xDEA4 ,0x724F //CJK UNIFIED IDEOGRAPH - ,0xDEA5 ,0x728D //CJK UNIFIED IDEOGRAPH - ,0xDEA6 ,0x728C //CJK UNIFIED IDEOGRAPH - ,0xDEA7 ,0x7291 //CJK UNIFIED IDEOGRAPH - ,0xDEA8 ,0x7290 //CJK UNIFIED IDEOGRAPH - ,0xDEA9 ,0x728E //CJK UNIFIED IDEOGRAPH - ,0xDEAA ,0x733C //CJK UNIFIED IDEOGRAPH - ,0xDEAB ,0x7342 //CJK UNIFIED IDEOGRAPH - ,0xDEAC ,0x733B //CJK UNIFIED IDEOGRAPH - ,0xDEAD ,0x733A //CJK UNIFIED IDEOGRAPH - ,0xDEAE ,0x7340 //CJK UNIFIED IDEOGRAPH - ,0xDEAF ,0x734A //CJK UNIFIED IDEOGRAPH - ,0xDEB0 ,0x7349 //CJK UNIFIED IDEOGRAPH - ,0xDEB1 ,0x7444 //CJK UNIFIED IDEOGRAPH - ,0xDEB2 ,0x744A //CJK UNIFIED IDEOGRAPH - ,0xDEB3 ,0x744B //CJK UNIFIED IDEOGRAPH - ,0xDEB4 ,0x7452 //CJK UNIFIED IDEOGRAPH - ,0xDEB5 ,0x7451 //CJK UNIFIED IDEOGRAPH - ,0xDEB6 ,0x7457 //CJK UNIFIED IDEOGRAPH - ,0xDEB7 ,0x7440 //CJK UNIFIED IDEOGRAPH - ,0xDEB8 ,0x744F //CJK UNIFIED IDEOGRAPH - ,0xDEB9 ,0x7450 //CJK UNIFIED IDEOGRAPH - ,0xDEBA ,0x744E //CJK UNIFIED IDEOGRAPH - ,0xDEBB ,0x7442 //CJK UNIFIED IDEOGRAPH - ,0xDEBC ,0x7446 //CJK UNIFIED IDEOGRAPH - ,0xDEBD ,0x744D //CJK UNIFIED IDEOGRAPH - ,0xDEBE ,0x7454 //CJK UNIFIED IDEOGRAPH - ,0xDEBF ,0x74E1 //CJK UNIFIED IDEOGRAPH - ,0xDEC0 ,0x74FF //CJK UNIFIED IDEOGRAPH - ,0xDEC1 ,0x74FE //CJK UNIFIED IDEOGRAPH - ,0xDEC2 ,0x74FD //CJK UNIFIED IDEOGRAPH - ,0xDEC3 ,0x751D //CJK UNIFIED IDEOGRAPH - ,0xDEC4 ,0x7579 //CJK UNIFIED IDEOGRAPH - ,0xDEC5 ,0x7577 //CJK UNIFIED IDEOGRAPH - ,0xDEC6 ,0x6983 //CJK UNIFIED IDEOGRAPH - ,0xDEC7 ,0x75EF //CJK UNIFIED IDEOGRAPH - ,0xDEC8 ,0x760F //CJK UNIFIED IDEOGRAPH - ,0xDEC9 ,0x7603 //CJK UNIFIED IDEOGRAPH - ,0xDECA ,0x75F7 //CJK UNIFIED IDEOGRAPH - ,0xDECB ,0x75FE //CJK UNIFIED IDEOGRAPH - ,0xDECC ,0x75FC //CJK UNIFIED IDEOGRAPH - ,0xDECD ,0x75F9 //CJK UNIFIED IDEOGRAPH - ,0xDECE ,0x75F8 //CJK UNIFIED IDEOGRAPH - ,0xDECF ,0x7610 //CJK UNIFIED IDEOGRAPH - ,0xDED0 ,0x75FB //CJK UNIFIED IDEOGRAPH - ,0xDED1 ,0x75F6 //CJK UNIFIED IDEOGRAPH - ,0xDED2 ,0x75ED //CJK UNIFIED IDEOGRAPH - ,0xDED3 ,0x75F5 //CJK UNIFIED IDEOGRAPH - ,0xDED4 ,0x75FD //CJK UNIFIED IDEOGRAPH - ,0xDED5 ,0x7699 //CJK UNIFIED IDEOGRAPH - ,0xDED6 ,0x76B5 //CJK UNIFIED IDEOGRAPH - ,0xDED7 ,0x76DD //CJK UNIFIED IDEOGRAPH - ,0xDED8 ,0x7755 //CJK UNIFIED IDEOGRAPH - ,0xDED9 ,0x775F //CJK UNIFIED IDEOGRAPH - ,0xDEDA ,0x7760 //CJK UNIFIED IDEOGRAPH - ,0xDEDB ,0x7752 //CJK UNIFIED IDEOGRAPH - ,0xDEDC ,0x7756 //CJK UNIFIED IDEOGRAPH - ,0xDEDD ,0x775A //CJK UNIFIED IDEOGRAPH - ,0xDEDE ,0x7769 //CJK UNIFIED IDEOGRAPH - ,0xDEDF ,0x7767 //CJK UNIFIED IDEOGRAPH - ,0xDEE0 ,0x7754 //CJK UNIFIED IDEOGRAPH - ,0xDEE1 ,0x7759 //CJK UNIFIED IDEOGRAPH - ,0xDEE2 ,0x776D //CJK UNIFIED IDEOGRAPH - ,0xDEE3 ,0x77E0 //CJK UNIFIED IDEOGRAPH - ,0xDEE4 ,0x7887 //CJK UNIFIED IDEOGRAPH - ,0xDEE5 ,0x789A //CJK UNIFIED IDEOGRAPH - ,0xDEE6 ,0x7894 //CJK UNIFIED IDEOGRAPH - ,0xDEE7 ,0x788F //CJK UNIFIED IDEOGRAPH - ,0xDEE8 ,0x7884 //CJK UNIFIED IDEOGRAPH - ,0xDEE9 ,0x7895 //CJK UNIFIED IDEOGRAPH - ,0xDEEA ,0x7885 //CJK UNIFIED IDEOGRAPH - ,0xDEEB ,0x7886 //CJK UNIFIED IDEOGRAPH - ,0xDEEC ,0x78A1 //CJK UNIFIED IDEOGRAPH - ,0xDEED ,0x7883 //CJK UNIFIED IDEOGRAPH - ,0xDEEE ,0x7879 //CJK UNIFIED IDEOGRAPH - ,0xDEEF ,0x7899 //CJK UNIFIED IDEOGRAPH - ,0xDEF0 ,0x7880 //CJK UNIFIED IDEOGRAPH - ,0xDEF1 ,0x7896 //CJK UNIFIED IDEOGRAPH - ,0xDEF2 ,0x787B //CJK UNIFIED IDEOGRAPH - ,0xDEF3 ,0x797C //CJK UNIFIED IDEOGRAPH - ,0xDEF4 ,0x7982 //CJK UNIFIED IDEOGRAPH - ,0xDEF5 ,0x797D //CJK UNIFIED IDEOGRAPH - ,0xDEF6 ,0x7979 //CJK UNIFIED IDEOGRAPH - ,0xDEF7 ,0x7A11 //CJK UNIFIED IDEOGRAPH - ,0xDEF8 ,0x7A18 //CJK UNIFIED IDEOGRAPH - ,0xDEF9 ,0x7A19 //CJK UNIFIED IDEOGRAPH - ,0xDEFA ,0x7A12 //CJK UNIFIED IDEOGRAPH - ,0xDEFB ,0x7A17 //CJK UNIFIED IDEOGRAPH - ,0xDEFC ,0x7A15 //CJK UNIFIED IDEOGRAPH - ,0xDEFD ,0x7A22 //CJK UNIFIED IDEOGRAPH - ,0xDEFE ,0x7A13 //CJK UNIFIED IDEOGRAPH - ,0xDF40 ,0x7A1B //CJK UNIFIED IDEOGRAPH - ,0xDF41 ,0x7A10 //CJK UNIFIED IDEOGRAPH - ,0xDF42 ,0x7AA3 //CJK UNIFIED IDEOGRAPH - ,0xDF43 ,0x7AA2 //CJK UNIFIED IDEOGRAPH - ,0xDF44 ,0x7A9E //CJK UNIFIED IDEOGRAPH - ,0xDF45 ,0x7AEB //CJK UNIFIED IDEOGRAPH - ,0xDF46 ,0x7B66 //CJK UNIFIED IDEOGRAPH - ,0xDF47 ,0x7B64 //CJK UNIFIED IDEOGRAPH - ,0xDF48 ,0x7B6D //CJK UNIFIED IDEOGRAPH - ,0xDF49 ,0x7B74 //CJK UNIFIED IDEOGRAPH - ,0xDF4A ,0x7B69 //CJK UNIFIED IDEOGRAPH - ,0xDF4B ,0x7B72 //CJK UNIFIED IDEOGRAPH - ,0xDF4C ,0x7B65 //CJK UNIFIED IDEOGRAPH - ,0xDF4D ,0x7B73 //CJK UNIFIED IDEOGRAPH - ,0xDF4E ,0x7B71 //CJK UNIFIED IDEOGRAPH - ,0xDF4F ,0x7B70 //CJK UNIFIED IDEOGRAPH - ,0xDF50 ,0x7B61 //CJK UNIFIED IDEOGRAPH - ,0xDF51 ,0x7B78 //CJK UNIFIED IDEOGRAPH - ,0xDF52 ,0x7B76 //CJK UNIFIED IDEOGRAPH - ,0xDF53 ,0x7B63 //CJK UNIFIED IDEOGRAPH - ,0xDF54 ,0x7CB2 //CJK UNIFIED IDEOGRAPH - ,0xDF55 ,0x7CB4 //CJK UNIFIED IDEOGRAPH - ,0xDF56 ,0x7CAF //CJK UNIFIED IDEOGRAPH - ,0xDF57 ,0x7D88 //CJK UNIFIED IDEOGRAPH - ,0xDF58 ,0x7D86 //CJK UNIFIED IDEOGRAPH - ,0xDF59 ,0x7D80 //CJK UNIFIED IDEOGRAPH - ,0xDF5A ,0x7D8D //CJK UNIFIED IDEOGRAPH - ,0xDF5B ,0x7D7F //CJK UNIFIED IDEOGRAPH - ,0xDF5C ,0x7D85 //CJK UNIFIED IDEOGRAPH - ,0xDF5D ,0x7D7A //CJK UNIFIED IDEOGRAPH - ,0xDF5E ,0x7D8E //CJK UNIFIED IDEOGRAPH - ,0xDF5F ,0x7D7B //CJK UNIFIED IDEOGRAPH - ,0xDF60 ,0x7D83 //CJK UNIFIED IDEOGRAPH - ,0xDF61 ,0x7D7C //CJK UNIFIED IDEOGRAPH - ,0xDF62 ,0x7D8C //CJK UNIFIED IDEOGRAPH - ,0xDF63 ,0x7D94 //CJK UNIFIED IDEOGRAPH - ,0xDF64 ,0x7D84 //CJK UNIFIED IDEOGRAPH - ,0xDF65 ,0x7D7D //CJK UNIFIED IDEOGRAPH - ,0xDF66 ,0x7D92 //CJK UNIFIED IDEOGRAPH - ,0xDF67 ,0x7F6D //CJK UNIFIED IDEOGRAPH - ,0xDF68 ,0x7F6B //CJK UNIFIED IDEOGRAPH - ,0xDF69 ,0x7F67 //CJK UNIFIED IDEOGRAPH - ,0xDF6A ,0x7F68 //CJK UNIFIED IDEOGRAPH - ,0xDF6B ,0x7F6C //CJK UNIFIED IDEOGRAPH - ,0xDF6C ,0x7FA6 //CJK UNIFIED IDEOGRAPH - ,0xDF6D ,0x7FA5 //CJK UNIFIED IDEOGRAPH - ,0xDF6E ,0x7FA7 //CJK UNIFIED IDEOGRAPH - ,0xDF6F ,0x7FDB //CJK UNIFIED IDEOGRAPH - ,0xDF70 ,0x7FDC //CJK UNIFIED IDEOGRAPH - ,0xDF71 ,0x8021 //CJK UNIFIED IDEOGRAPH - ,0xDF72 ,0x8164 //CJK UNIFIED IDEOGRAPH - ,0xDF73 ,0x8160 //CJK UNIFIED IDEOGRAPH - ,0xDF74 ,0x8177 //CJK UNIFIED IDEOGRAPH - ,0xDF75 ,0x815C //CJK UNIFIED IDEOGRAPH - ,0xDF76 ,0x8169 //CJK UNIFIED IDEOGRAPH - ,0xDF77 ,0x815B //CJK UNIFIED IDEOGRAPH - ,0xDF78 ,0x8162 //CJK UNIFIED IDEOGRAPH - ,0xDF79 ,0x8172 //CJK UNIFIED IDEOGRAPH - ,0xDF7A ,0x6721 //CJK UNIFIED IDEOGRAPH - ,0xDF7B ,0x815E //CJK UNIFIED IDEOGRAPH - ,0xDF7C ,0x8176 //CJK UNIFIED IDEOGRAPH - ,0xDF7D ,0x8167 //CJK UNIFIED IDEOGRAPH - ,0xDF7E ,0x816F //CJK UNIFIED IDEOGRAPH - ,0xDFA1 ,0x8144 //CJK UNIFIED IDEOGRAPH - ,0xDFA2 ,0x8161 //CJK UNIFIED IDEOGRAPH - ,0xDFA3 ,0x821D //CJK UNIFIED IDEOGRAPH - ,0xDFA4 ,0x8249 //CJK UNIFIED IDEOGRAPH - ,0xDFA5 ,0x8244 //CJK UNIFIED IDEOGRAPH - ,0xDFA6 ,0x8240 //CJK UNIFIED IDEOGRAPH - ,0xDFA7 ,0x8242 //CJK UNIFIED IDEOGRAPH - ,0xDFA8 ,0x8245 //CJK UNIFIED IDEOGRAPH - ,0xDFA9 ,0x84F1 //CJK UNIFIED IDEOGRAPH - ,0xDFAA ,0x843F //CJK UNIFIED IDEOGRAPH - ,0xDFAB ,0x8456 //CJK UNIFIED IDEOGRAPH - ,0xDFAC ,0x8476 //CJK UNIFIED IDEOGRAPH - ,0xDFAD ,0x8479 //CJK UNIFIED IDEOGRAPH - ,0xDFAE ,0x848F //CJK UNIFIED IDEOGRAPH - ,0xDFAF ,0x848D //CJK UNIFIED IDEOGRAPH - ,0xDFB0 ,0x8465 //CJK UNIFIED IDEOGRAPH - ,0xDFB1 ,0x8451 //CJK UNIFIED IDEOGRAPH - ,0xDFB2 ,0x8440 //CJK UNIFIED IDEOGRAPH - ,0xDFB3 ,0x8486 //CJK UNIFIED IDEOGRAPH - ,0xDFB4 ,0x8467 //CJK UNIFIED IDEOGRAPH - ,0xDFB5 ,0x8430 //CJK UNIFIED IDEOGRAPH - ,0xDFB6 ,0x844D //CJK UNIFIED IDEOGRAPH - ,0xDFB7 ,0x847D //CJK UNIFIED IDEOGRAPH - ,0xDFB8 ,0x845A //CJK UNIFIED IDEOGRAPH - ,0xDFB9 ,0x8459 //CJK UNIFIED IDEOGRAPH - ,0xDFBA ,0x8474 //CJK UNIFIED IDEOGRAPH - ,0xDFBB ,0x8473 //CJK UNIFIED IDEOGRAPH - ,0xDFBC ,0x845D //CJK UNIFIED IDEOGRAPH - ,0xDFBD ,0x8507 //CJK UNIFIED IDEOGRAPH - ,0xDFBE ,0x845E //CJK UNIFIED IDEOGRAPH - ,0xDFBF ,0x8437 //CJK UNIFIED IDEOGRAPH - ,0xDFC0 ,0x843A //CJK UNIFIED IDEOGRAPH - ,0xDFC1 ,0x8434 //CJK UNIFIED IDEOGRAPH - ,0xDFC2 ,0x847A //CJK UNIFIED IDEOGRAPH - ,0xDFC3 ,0x8443 //CJK UNIFIED IDEOGRAPH - ,0xDFC4 ,0x8478 //CJK UNIFIED IDEOGRAPH - ,0xDFC5 ,0x8432 //CJK UNIFIED IDEOGRAPH - ,0xDFC6 ,0x8445 //CJK UNIFIED IDEOGRAPH - ,0xDFC7 ,0x8429 //CJK UNIFIED IDEOGRAPH - ,0xDFC8 ,0x83D9 //CJK UNIFIED IDEOGRAPH - ,0xDFC9 ,0x844B //CJK UNIFIED IDEOGRAPH - ,0xDFCA ,0x842F //CJK UNIFIED IDEOGRAPH - ,0xDFCB ,0x8442 //CJK UNIFIED IDEOGRAPH - ,0xDFCC ,0x842D //CJK UNIFIED IDEOGRAPH - ,0xDFCD ,0x845F //CJK UNIFIED IDEOGRAPH - ,0xDFCE ,0x8470 //CJK UNIFIED IDEOGRAPH - ,0xDFCF ,0x8439 //CJK UNIFIED IDEOGRAPH - ,0xDFD0 ,0x844E //CJK UNIFIED IDEOGRAPH - ,0xDFD1 ,0x844C //CJK UNIFIED IDEOGRAPH - ,0xDFD2 ,0x8452 //CJK UNIFIED IDEOGRAPH - ,0xDFD3 ,0x846F //CJK UNIFIED IDEOGRAPH - ,0xDFD4 ,0x84C5 //CJK UNIFIED IDEOGRAPH - ,0xDFD5 ,0x848E //CJK UNIFIED IDEOGRAPH - ,0xDFD6 ,0x843B //CJK UNIFIED IDEOGRAPH - ,0xDFD7 ,0x8447 //CJK UNIFIED IDEOGRAPH - ,0xDFD8 ,0x8436 //CJK UNIFIED IDEOGRAPH - ,0xDFD9 ,0x8433 //CJK UNIFIED IDEOGRAPH - ,0xDFDA ,0x8468 //CJK UNIFIED IDEOGRAPH - ,0xDFDB ,0x847E //CJK UNIFIED IDEOGRAPH - ,0xDFDC ,0x8444 //CJK UNIFIED IDEOGRAPH - ,0xDFDD ,0x842B //CJK UNIFIED IDEOGRAPH - ,0xDFDE ,0x8460 //CJK UNIFIED IDEOGRAPH - ,0xDFDF ,0x8454 //CJK UNIFIED IDEOGRAPH - ,0xDFE0 ,0x846E //CJK UNIFIED IDEOGRAPH - ,0xDFE1 ,0x8450 //CJK UNIFIED IDEOGRAPH - ,0xDFE2 ,0x870B //CJK UNIFIED IDEOGRAPH - ,0xDFE3 ,0x8704 //CJK UNIFIED IDEOGRAPH - ,0xDFE4 ,0x86F7 //CJK UNIFIED IDEOGRAPH - ,0xDFE5 ,0x870C //CJK UNIFIED IDEOGRAPH - ,0xDFE6 ,0x86FA //CJK UNIFIED IDEOGRAPH - ,0xDFE7 ,0x86D6 //CJK UNIFIED IDEOGRAPH - ,0xDFE8 ,0x86F5 //CJK UNIFIED IDEOGRAPH - ,0xDFE9 ,0x874D //CJK UNIFIED IDEOGRAPH - ,0xDFEA ,0x86F8 //CJK UNIFIED IDEOGRAPH - ,0xDFEB ,0x870E //CJK UNIFIED IDEOGRAPH - ,0xDFEC ,0x8709 //CJK UNIFIED IDEOGRAPH - ,0xDFED ,0x8701 //CJK UNIFIED IDEOGRAPH - ,0xDFEE ,0x86F6 //CJK UNIFIED IDEOGRAPH - ,0xDFEF ,0x870D //CJK UNIFIED IDEOGRAPH - ,0xDFF0 ,0x8705 //CJK UNIFIED IDEOGRAPH - ,0xDFF1 ,0x88D6 //CJK UNIFIED IDEOGRAPH - ,0xDFF2 ,0x88CB //CJK UNIFIED IDEOGRAPH - ,0xDFF3 ,0x88CD //CJK UNIFIED IDEOGRAPH - ,0xDFF4 ,0x88CE //CJK UNIFIED IDEOGRAPH - ,0xDFF5 ,0x88DE //CJK UNIFIED IDEOGRAPH - ,0xDFF6 ,0x88DB //CJK UNIFIED IDEOGRAPH - ,0xDFF7 ,0x88DA //CJK UNIFIED IDEOGRAPH - ,0xDFF8 ,0x88CC //CJK UNIFIED IDEOGRAPH - ,0xDFF9 ,0x88D0 //CJK UNIFIED IDEOGRAPH - ,0xDFFA ,0x8985 //CJK UNIFIED IDEOGRAPH - ,0xDFFB ,0x899B //CJK UNIFIED IDEOGRAPH - ,0xDFFC ,0x89DF //CJK UNIFIED IDEOGRAPH - ,0xDFFD ,0x89E5 //CJK UNIFIED IDEOGRAPH - ,0xDFFE ,0x89E4 //CJK UNIFIED IDEOGRAPH - ,0xE040 ,0x89E1 //CJK UNIFIED IDEOGRAPH - ,0xE041 ,0x89E0 //CJK UNIFIED IDEOGRAPH - ,0xE042 ,0x89E2 //CJK UNIFIED IDEOGRAPH - ,0xE043 ,0x89DC //CJK UNIFIED IDEOGRAPH - ,0xE044 ,0x89E6 //CJK UNIFIED IDEOGRAPH - ,0xE045 ,0x8A76 //CJK UNIFIED IDEOGRAPH - ,0xE046 ,0x8A86 //CJK UNIFIED IDEOGRAPH - ,0xE047 ,0x8A7F //CJK UNIFIED IDEOGRAPH - ,0xE048 ,0x8A61 //CJK UNIFIED IDEOGRAPH - ,0xE049 ,0x8A3F //CJK UNIFIED IDEOGRAPH - ,0xE04A ,0x8A77 //CJK UNIFIED IDEOGRAPH - ,0xE04B ,0x8A82 //CJK UNIFIED IDEOGRAPH - ,0xE04C ,0x8A84 //CJK UNIFIED IDEOGRAPH - ,0xE04D ,0x8A75 //CJK UNIFIED IDEOGRAPH - ,0xE04E ,0x8A83 //CJK UNIFIED IDEOGRAPH - ,0xE04F ,0x8A81 //CJK UNIFIED IDEOGRAPH - ,0xE050 ,0x8A74 //CJK UNIFIED IDEOGRAPH - ,0xE051 ,0x8A7A //CJK UNIFIED IDEOGRAPH - ,0xE052 ,0x8C3C //CJK UNIFIED IDEOGRAPH - ,0xE053 ,0x8C4B //CJK UNIFIED IDEOGRAPH - ,0xE054 ,0x8C4A //CJK UNIFIED IDEOGRAPH - ,0xE055 ,0x8C65 //CJK UNIFIED IDEOGRAPH - ,0xE056 ,0x8C64 //CJK UNIFIED IDEOGRAPH - ,0xE057 ,0x8C66 //CJK UNIFIED IDEOGRAPH - ,0xE058 ,0x8C86 //CJK UNIFIED IDEOGRAPH - ,0xE059 ,0x8C84 //CJK UNIFIED IDEOGRAPH - ,0xE05A ,0x8C85 //CJK UNIFIED IDEOGRAPH - ,0xE05B ,0x8CCC //CJK UNIFIED IDEOGRAPH - ,0xE05C ,0x8D68 //CJK UNIFIED IDEOGRAPH - ,0xE05D ,0x8D69 //CJK UNIFIED IDEOGRAPH - ,0xE05E ,0x8D91 //CJK UNIFIED IDEOGRAPH - ,0xE05F ,0x8D8C //CJK UNIFIED IDEOGRAPH - ,0xE060 ,0x8D8E //CJK UNIFIED IDEOGRAPH - ,0xE061 ,0x8D8F //CJK UNIFIED IDEOGRAPH - ,0xE062 ,0x8D8D //CJK UNIFIED IDEOGRAPH - ,0xE063 ,0x8D93 //CJK UNIFIED IDEOGRAPH - ,0xE064 ,0x8D94 //CJK UNIFIED IDEOGRAPH - ,0xE065 ,0x8D90 //CJK UNIFIED IDEOGRAPH - ,0xE066 ,0x8D92 //CJK UNIFIED IDEOGRAPH - ,0xE067 ,0x8DF0 //CJK UNIFIED IDEOGRAPH - ,0xE068 ,0x8DE0 //CJK UNIFIED IDEOGRAPH - ,0xE069 ,0x8DEC //CJK UNIFIED IDEOGRAPH - ,0xE06A ,0x8DF1 //CJK UNIFIED IDEOGRAPH - ,0xE06B ,0x8DEE //CJK UNIFIED IDEOGRAPH - ,0xE06C ,0x8DD0 //CJK UNIFIED IDEOGRAPH - ,0xE06D ,0x8DE9 //CJK UNIFIED IDEOGRAPH - ,0xE06E ,0x8DE3 //CJK UNIFIED IDEOGRAPH - ,0xE06F ,0x8DE2 //CJK UNIFIED IDEOGRAPH - ,0xE070 ,0x8DE7 //CJK UNIFIED IDEOGRAPH - ,0xE071 ,0x8DF2 //CJK UNIFIED IDEOGRAPH - ,0xE072 ,0x8DEB //CJK UNIFIED IDEOGRAPH - ,0xE073 ,0x8DF4 //CJK UNIFIED IDEOGRAPH - ,0xE074 ,0x8F06 //CJK UNIFIED IDEOGRAPH - ,0xE075 ,0x8EFF //CJK UNIFIED IDEOGRAPH - ,0xE076 ,0x8F01 //CJK UNIFIED IDEOGRAPH - ,0xE077 ,0x8F00 //CJK UNIFIED IDEOGRAPH - ,0xE078 ,0x8F05 //CJK UNIFIED IDEOGRAPH - ,0xE079 ,0x8F07 //CJK UNIFIED IDEOGRAPH - ,0xE07A ,0x8F08 //CJK UNIFIED IDEOGRAPH - ,0xE07B ,0x8F02 //CJK UNIFIED IDEOGRAPH - ,0xE07C ,0x8F0B //CJK UNIFIED IDEOGRAPH - ,0xE07D ,0x9052 //CJK UNIFIED IDEOGRAPH - ,0xE07E ,0x903F //CJK UNIFIED IDEOGRAPH - ,0xE0A1 ,0x9044 //CJK UNIFIED IDEOGRAPH - ,0xE0A2 ,0x9049 //CJK UNIFIED IDEOGRAPH - ,0xE0A3 ,0x903D //CJK UNIFIED IDEOGRAPH - ,0xE0A4 ,0x9110 //CJK UNIFIED IDEOGRAPH - ,0xE0A5 ,0x910D //CJK UNIFIED IDEOGRAPH - ,0xE0A6 ,0x910F //CJK UNIFIED IDEOGRAPH - ,0xE0A7 ,0x9111 //CJK UNIFIED IDEOGRAPH - ,0xE0A8 ,0x9116 //CJK UNIFIED IDEOGRAPH - ,0xE0A9 ,0x9114 //CJK UNIFIED IDEOGRAPH - ,0xE0AA ,0x910B //CJK UNIFIED IDEOGRAPH - ,0xE0AB ,0x910E //CJK UNIFIED IDEOGRAPH - ,0xE0AC ,0x916E //CJK UNIFIED IDEOGRAPH - ,0xE0AD ,0x916F //CJK UNIFIED IDEOGRAPH - ,0xE0AE ,0x9248 //CJK UNIFIED IDEOGRAPH - ,0xE0AF ,0x9252 //CJK UNIFIED IDEOGRAPH - ,0xE0B0 ,0x9230 //CJK UNIFIED IDEOGRAPH - ,0xE0B1 ,0x923A //CJK UNIFIED IDEOGRAPH - ,0xE0B2 ,0x9266 //CJK UNIFIED IDEOGRAPH - ,0xE0B3 ,0x9233 //CJK UNIFIED IDEOGRAPH - ,0xE0B4 ,0x9265 //CJK UNIFIED IDEOGRAPH - ,0xE0B5 ,0x925E //CJK UNIFIED IDEOGRAPH - ,0xE0B6 ,0x9283 //CJK UNIFIED IDEOGRAPH - ,0xE0B7 ,0x922E //CJK UNIFIED IDEOGRAPH - ,0xE0B8 ,0x924A //CJK UNIFIED IDEOGRAPH - ,0xE0B9 ,0x9246 //CJK UNIFIED IDEOGRAPH - ,0xE0BA ,0x926D //CJK UNIFIED IDEOGRAPH - ,0xE0BB ,0x926C //CJK UNIFIED IDEOGRAPH - ,0xE0BC ,0x924F //CJK UNIFIED IDEOGRAPH - ,0xE0BD ,0x9260 //CJK UNIFIED IDEOGRAPH - ,0xE0BE ,0x9267 //CJK UNIFIED IDEOGRAPH - ,0xE0BF ,0x926F //CJK UNIFIED IDEOGRAPH - ,0xE0C0 ,0x9236 //CJK UNIFIED IDEOGRAPH - ,0xE0C1 ,0x9261 //CJK UNIFIED IDEOGRAPH - ,0xE0C2 ,0x9270 //CJK UNIFIED IDEOGRAPH - ,0xE0C3 ,0x9231 //CJK UNIFIED IDEOGRAPH - ,0xE0C4 ,0x9254 //CJK UNIFIED IDEOGRAPH - ,0xE0C5 ,0x9263 //CJK UNIFIED IDEOGRAPH - ,0xE0C6 ,0x9250 //CJK UNIFIED IDEOGRAPH - ,0xE0C7 ,0x9272 //CJK UNIFIED IDEOGRAPH - ,0xE0C8 ,0x924E //CJK UNIFIED IDEOGRAPH - ,0xE0C9 ,0x9253 //CJK UNIFIED IDEOGRAPH - ,0xE0CA ,0x924C //CJK UNIFIED IDEOGRAPH - ,0xE0CB ,0x9256 //CJK UNIFIED IDEOGRAPH - ,0xE0CC ,0x9232 //CJK UNIFIED IDEOGRAPH - ,0xE0CD ,0x959F //CJK UNIFIED IDEOGRAPH - ,0xE0CE ,0x959C //CJK UNIFIED IDEOGRAPH - ,0xE0CF ,0x959E //CJK UNIFIED IDEOGRAPH - ,0xE0D0 ,0x959B //CJK UNIFIED IDEOGRAPH - ,0xE0D1 ,0x9692 //CJK UNIFIED IDEOGRAPH - ,0xE0D2 ,0x9693 //CJK UNIFIED IDEOGRAPH - ,0xE0D3 ,0x9691 //CJK UNIFIED IDEOGRAPH - ,0xE0D4 ,0x9697 //CJK UNIFIED IDEOGRAPH - ,0xE0D5 ,0x96CE //CJK UNIFIED IDEOGRAPH - ,0xE0D6 ,0x96FA //CJK UNIFIED IDEOGRAPH - ,0xE0D7 ,0x96FD //CJK UNIFIED IDEOGRAPH - ,0xE0D8 ,0x96F8 //CJK UNIFIED IDEOGRAPH - ,0xE0D9 ,0x96F5 //CJK UNIFIED IDEOGRAPH - ,0xE0DA ,0x9773 //CJK UNIFIED IDEOGRAPH - ,0xE0DB ,0x9777 //CJK UNIFIED IDEOGRAPH - ,0xE0DC ,0x9778 //CJK UNIFIED IDEOGRAPH - ,0xE0DD ,0x9772 //CJK UNIFIED IDEOGRAPH - ,0xE0DE ,0x980F //CJK UNIFIED IDEOGRAPH - ,0xE0DF ,0x980D //CJK UNIFIED IDEOGRAPH - ,0xE0E0 ,0x980E //CJK UNIFIED IDEOGRAPH - ,0xE0E1 ,0x98AC //CJK UNIFIED IDEOGRAPH - ,0xE0E2 ,0x98F6 //CJK UNIFIED IDEOGRAPH - ,0xE0E3 ,0x98F9 //CJK UNIFIED IDEOGRAPH - ,0xE0E4 ,0x99AF //CJK UNIFIED IDEOGRAPH - ,0xE0E5 ,0x99B2 //CJK UNIFIED IDEOGRAPH - ,0xE0E6 ,0x99B0 //CJK UNIFIED IDEOGRAPH - ,0xE0E7 ,0x99B5 //CJK UNIFIED IDEOGRAPH - ,0xE0E8 ,0x9AAD //CJK UNIFIED IDEOGRAPH - ,0xE0E9 ,0x9AAB //CJK UNIFIED IDEOGRAPH - ,0xE0EA ,0x9B5B //CJK UNIFIED IDEOGRAPH - ,0xE0EB ,0x9CEA //CJK UNIFIED IDEOGRAPH - ,0xE0EC ,0x9CED //CJK UNIFIED IDEOGRAPH - ,0xE0ED ,0x9CE7 //CJK UNIFIED IDEOGRAPH - ,0xE0EE ,0x9E80 //CJK UNIFIED IDEOGRAPH - ,0xE0EF ,0x9EFD //CJK UNIFIED IDEOGRAPH - ,0xE0F0 ,0x50E6 //CJK UNIFIED IDEOGRAPH - ,0xE0F1 ,0x50D4 //CJK UNIFIED IDEOGRAPH - ,0xE0F2 ,0x50D7 //CJK UNIFIED IDEOGRAPH - ,0xE0F3 ,0x50E8 //CJK UNIFIED IDEOGRAPH - ,0xE0F4 ,0x50F3 //CJK UNIFIED IDEOGRAPH - ,0xE0F5 ,0x50DB //CJK UNIFIED IDEOGRAPH - ,0xE0F6 ,0x50EA //CJK UNIFIED IDEOGRAPH - ,0xE0F7 ,0x50DD //CJK UNIFIED IDEOGRAPH - ,0xE0F8 ,0x50E4 //CJK UNIFIED IDEOGRAPH - ,0xE0F9 ,0x50D3 //CJK UNIFIED IDEOGRAPH - ,0xE0FA ,0x50EC //CJK UNIFIED IDEOGRAPH - ,0xE0FB ,0x50F0 //CJK UNIFIED IDEOGRAPH - ,0xE0FC ,0x50EF //CJK UNIFIED IDEOGRAPH - ,0xE0FD ,0x50E3 //CJK UNIFIED IDEOGRAPH - ,0xE0FE ,0x50E0 //CJK UNIFIED IDEOGRAPH - ,0xE140 ,0x51D8 //CJK UNIFIED IDEOGRAPH - ,0xE141 ,0x5280 //CJK UNIFIED IDEOGRAPH - ,0xE142 ,0x5281 //CJK UNIFIED IDEOGRAPH - ,0xE143 ,0x52E9 //CJK UNIFIED IDEOGRAPH - ,0xE144 ,0x52EB //CJK UNIFIED IDEOGRAPH - ,0xE145 ,0x5330 //CJK UNIFIED IDEOGRAPH - ,0xE146 ,0x53AC //CJK UNIFIED IDEOGRAPH - ,0xE147 ,0x5627 //CJK UNIFIED IDEOGRAPH - ,0xE148 ,0x5615 //CJK UNIFIED IDEOGRAPH - ,0xE149 ,0x560C //CJK UNIFIED IDEOGRAPH - ,0xE14A ,0x5612 //CJK UNIFIED IDEOGRAPH - ,0xE14B ,0x55FC //CJK UNIFIED IDEOGRAPH - ,0xE14C ,0x560F //CJK UNIFIED IDEOGRAPH - ,0xE14D ,0x561C //CJK UNIFIED IDEOGRAPH - ,0xE14E ,0x5601 //CJK UNIFIED IDEOGRAPH - ,0xE14F ,0x5613 //CJK UNIFIED IDEOGRAPH - ,0xE150 ,0x5602 //CJK UNIFIED IDEOGRAPH - ,0xE151 ,0x55FA //CJK UNIFIED IDEOGRAPH - ,0xE152 ,0x561D //CJK UNIFIED IDEOGRAPH - ,0xE153 ,0x5604 //CJK UNIFIED IDEOGRAPH - ,0xE154 ,0x55FF //CJK UNIFIED IDEOGRAPH - ,0xE155 ,0x55F9 //CJK UNIFIED IDEOGRAPH - ,0xE156 ,0x5889 //CJK UNIFIED IDEOGRAPH - ,0xE157 ,0x587C //CJK UNIFIED IDEOGRAPH - ,0xE158 ,0x5890 //CJK UNIFIED IDEOGRAPH - ,0xE159 ,0x5898 //CJK UNIFIED IDEOGRAPH - ,0xE15A ,0x5886 //CJK UNIFIED IDEOGRAPH - ,0xE15B ,0x5881 //CJK UNIFIED IDEOGRAPH - ,0xE15C ,0x587F //CJK UNIFIED IDEOGRAPH - ,0xE15D ,0x5874 //CJK UNIFIED IDEOGRAPH - ,0xE15E ,0x588B //CJK UNIFIED IDEOGRAPH - ,0xE15F ,0x587A //CJK UNIFIED IDEOGRAPH - ,0xE160 ,0x5887 //CJK UNIFIED IDEOGRAPH - ,0xE161 ,0x5891 //CJK UNIFIED IDEOGRAPH - ,0xE162 ,0x588E //CJK UNIFIED IDEOGRAPH - ,0xE163 ,0x5876 //CJK UNIFIED IDEOGRAPH - ,0xE164 ,0x5882 //CJK UNIFIED IDEOGRAPH - ,0xE165 ,0x5888 //CJK UNIFIED IDEOGRAPH - ,0xE166 ,0x587B //CJK UNIFIED IDEOGRAPH - ,0xE167 ,0x5894 //CJK UNIFIED IDEOGRAPH - ,0xE168 ,0x588F //CJK UNIFIED IDEOGRAPH - ,0xE169 ,0x58FE //CJK UNIFIED IDEOGRAPH - ,0xE16A ,0x596B //CJK UNIFIED IDEOGRAPH - ,0xE16B ,0x5ADC //CJK UNIFIED IDEOGRAPH - ,0xE16C ,0x5AEE //CJK UNIFIED IDEOGRAPH - ,0xE16D ,0x5AE5 //CJK UNIFIED IDEOGRAPH - ,0xE16E ,0x5AD5 //CJK UNIFIED IDEOGRAPH - ,0xE16F ,0x5AEA //CJK UNIFIED IDEOGRAPH - ,0xE170 ,0x5ADA //CJK UNIFIED IDEOGRAPH - ,0xE171 ,0x5AED //CJK UNIFIED IDEOGRAPH - ,0xE172 ,0x5AEB //CJK UNIFIED IDEOGRAPH - ,0xE173 ,0x5AF3 //CJK UNIFIED IDEOGRAPH - ,0xE174 ,0x5AE2 //CJK UNIFIED IDEOGRAPH - ,0xE175 ,0x5AE0 //CJK UNIFIED IDEOGRAPH - ,0xE176 ,0x5ADB //CJK UNIFIED IDEOGRAPH - ,0xE177 ,0x5AEC //CJK UNIFIED IDEOGRAPH - ,0xE178 ,0x5ADE //CJK UNIFIED IDEOGRAPH - ,0xE179 ,0x5ADD //CJK UNIFIED IDEOGRAPH - ,0xE17A ,0x5AD9 //CJK UNIFIED IDEOGRAPH - ,0xE17B ,0x5AE8 //CJK UNIFIED IDEOGRAPH - ,0xE17C ,0x5ADF //CJK UNIFIED IDEOGRAPH - ,0xE17D ,0x5B77 //CJK UNIFIED IDEOGRAPH - ,0xE17E ,0x5BE0 //CJK UNIFIED IDEOGRAPH - ,0xE1A1 ,0x5BE3 //CJK UNIFIED IDEOGRAPH - ,0xE1A2 ,0x5C63 //CJK UNIFIED IDEOGRAPH - ,0xE1A3 ,0x5D82 //CJK UNIFIED IDEOGRAPH - ,0xE1A4 ,0x5D80 //CJK UNIFIED IDEOGRAPH - ,0xE1A5 ,0x5D7D //CJK UNIFIED IDEOGRAPH - ,0xE1A6 ,0x5D86 //CJK UNIFIED IDEOGRAPH - ,0xE1A7 ,0x5D7A //CJK UNIFIED IDEOGRAPH - ,0xE1A8 ,0x5D81 //CJK UNIFIED IDEOGRAPH - ,0xE1A9 ,0x5D77 //CJK UNIFIED IDEOGRAPH - ,0xE1AA ,0x5D8A //CJK UNIFIED IDEOGRAPH - ,0xE1AB ,0x5D89 //CJK UNIFIED IDEOGRAPH - ,0xE1AC ,0x5D88 //CJK UNIFIED IDEOGRAPH - ,0xE1AD ,0x5D7E //CJK UNIFIED IDEOGRAPH - ,0xE1AE ,0x5D7C //CJK UNIFIED IDEOGRAPH - ,0xE1AF ,0x5D8D //CJK UNIFIED IDEOGRAPH - ,0xE1B0 ,0x5D79 //CJK UNIFIED IDEOGRAPH - ,0xE1B1 ,0x5D7F //CJK UNIFIED IDEOGRAPH - ,0xE1B2 ,0x5E58 //CJK UNIFIED IDEOGRAPH - ,0xE1B3 ,0x5E59 //CJK UNIFIED IDEOGRAPH - ,0xE1B4 ,0x5E53 //CJK UNIFIED IDEOGRAPH - ,0xE1B5 ,0x5ED8 //CJK UNIFIED IDEOGRAPH - ,0xE1B6 ,0x5ED1 //CJK UNIFIED IDEOGRAPH - ,0xE1B7 ,0x5ED7 //CJK UNIFIED IDEOGRAPH - ,0xE1B8 ,0x5ECE //CJK UNIFIED IDEOGRAPH - ,0xE1B9 ,0x5EDC //CJK UNIFIED IDEOGRAPH - ,0xE1BA ,0x5ED5 //CJK UNIFIED IDEOGRAPH - ,0xE1BB ,0x5ED9 //CJK UNIFIED IDEOGRAPH - ,0xE1BC ,0x5ED2 //CJK UNIFIED IDEOGRAPH - ,0xE1BD ,0x5ED4 //CJK UNIFIED IDEOGRAPH - ,0xE1BE ,0x5F44 //CJK UNIFIED IDEOGRAPH - ,0xE1BF ,0x5F43 //CJK UNIFIED IDEOGRAPH - ,0xE1C0 ,0x5F6F //CJK UNIFIED IDEOGRAPH - ,0xE1C1 ,0x5FB6 //CJK UNIFIED IDEOGRAPH - ,0xE1C2 ,0x612C //CJK UNIFIED IDEOGRAPH - ,0xE1C3 ,0x6128 //CJK UNIFIED IDEOGRAPH - ,0xE1C4 ,0x6141 //CJK UNIFIED IDEOGRAPH - ,0xE1C5 ,0x615E //CJK UNIFIED IDEOGRAPH - ,0xE1C6 ,0x6171 //CJK UNIFIED IDEOGRAPH - ,0xE1C7 ,0x6173 //CJK UNIFIED IDEOGRAPH - ,0xE1C8 ,0x6152 //CJK UNIFIED IDEOGRAPH - ,0xE1C9 ,0x6153 //CJK UNIFIED IDEOGRAPH - ,0xE1CA ,0x6172 //CJK UNIFIED IDEOGRAPH - ,0xE1CB ,0x616C //CJK UNIFIED IDEOGRAPH - ,0xE1CC ,0x6180 //CJK UNIFIED IDEOGRAPH - ,0xE1CD ,0x6174 //CJK UNIFIED IDEOGRAPH - ,0xE1CE ,0x6154 //CJK UNIFIED IDEOGRAPH - ,0xE1CF ,0x617A //CJK UNIFIED IDEOGRAPH - ,0xE1D0 ,0x615B //CJK UNIFIED IDEOGRAPH - ,0xE1D1 ,0x6165 //CJK UNIFIED IDEOGRAPH - ,0xE1D2 ,0x613B //CJK UNIFIED IDEOGRAPH - ,0xE1D3 ,0x616A //CJK UNIFIED IDEOGRAPH - ,0xE1D4 ,0x6161 //CJK UNIFIED IDEOGRAPH - ,0xE1D5 ,0x6156 //CJK UNIFIED IDEOGRAPH - ,0xE1D6 ,0x6229 //CJK UNIFIED IDEOGRAPH - ,0xE1D7 ,0x6227 //CJK UNIFIED IDEOGRAPH - ,0xE1D8 ,0x622B //CJK UNIFIED IDEOGRAPH - ,0xE1D9 ,0x642B //CJK UNIFIED IDEOGRAPH - ,0xE1DA ,0x644D //CJK UNIFIED IDEOGRAPH - ,0xE1DB ,0x645B //CJK UNIFIED IDEOGRAPH - ,0xE1DC ,0x645D //CJK UNIFIED IDEOGRAPH - ,0xE1DD ,0x6474 //CJK UNIFIED IDEOGRAPH - ,0xE1DE ,0x6476 //CJK UNIFIED IDEOGRAPH - ,0xE1DF ,0x6472 //CJK UNIFIED IDEOGRAPH - ,0xE1E0 ,0x6473 //CJK UNIFIED IDEOGRAPH - ,0xE1E1 ,0x647D //CJK UNIFIED IDEOGRAPH - ,0xE1E2 ,0x6475 //CJK UNIFIED IDEOGRAPH - ,0xE1E3 ,0x6466 //CJK UNIFIED IDEOGRAPH - ,0xE1E4 ,0x64A6 //CJK UNIFIED IDEOGRAPH - ,0xE1E5 ,0x644E //CJK UNIFIED IDEOGRAPH - ,0xE1E6 ,0x6482 //CJK UNIFIED IDEOGRAPH - ,0xE1E7 ,0x645E //CJK UNIFIED IDEOGRAPH - ,0xE1E8 ,0x645C //CJK UNIFIED IDEOGRAPH - ,0xE1E9 ,0x644B //CJK UNIFIED IDEOGRAPH - ,0xE1EA ,0x6453 //CJK UNIFIED IDEOGRAPH - ,0xE1EB ,0x6460 //CJK UNIFIED IDEOGRAPH - ,0xE1EC ,0x6450 //CJK UNIFIED IDEOGRAPH - ,0xE1ED ,0x647F //CJK UNIFIED IDEOGRAPH - ,0xE1EE ,0x643F //CJK UNIFIED IDEOGRAPH - ,0xE1EF ,0x646C //CJK UNIFIED IDEOGRAPH - ,0xE1F0 ,0x646B //CJK UNIFIED IDEOGRAPH - ,0xE1F1 ,0x6459 //CJK UNIFIED IDEOGRAPH - ,0xE1F2 ,0x6465 //CJK UNIFIED IDEOGRAPH - ,0xE1F3 ,0x6477 //CJK UNIFIED IDEOGRAPH - ,0xE1F4 ,0x6573 //CJK UNIFIED IDEOGRAPH - ,0xE1F5 ,0x65A0 //CJK UNIFIED IDEOGRAPH - ,0xE1F6 ,0x66A1 //CJK UNIFIED IDEOGRAPH - ,0xE1F7 ,0x66A0 //CJK UNIFIED IDEOGRAPH - ,0xE1F8 ,0x669F //CJK UNIFIED IDEOGRAPH - ,0xE1F9 ,0x6705 //CJK UNIFIED IDEOGRAPH - ,0xE1FA ,0x6704 //CJK UNIFIED IDEOGRAPH - ,0xE1FB ,0x6722 //CJK UNIFIED IDEOGRAPH - ,0xE1FC ,0x69B1 //CJK UNIFIED IDEOGRAPH - ,0xE1FD ,0x69B6 //CJK UNIFIED IDEOGRAPH - ,0xE1FE ,0x69C9 //CJK UNIFIED IDEOGRAPH - ,0xE240 ,0x69A0 //CJK UNIFIED IDEOGRAPH - ,0xE241 ,0x69CE //CJK UNIFIED IDEOGRAPH - ,0xE242 ,0x6996 //CJK UNIFIED IDEOGRAPH - ,0xE243 ,0x69B0 //CJK UNIFIED IDEOGRAPH - ,0xE244 ,0x69AC //CJK UNIFIED IDEOGRAPH - ,0xE245 ,0x69BC //CJK UNIFIED IDEOGRAPH - ,0xE246 ,0x6991 //CJK UNIFIED IDEOGRAPH - ,0xE247 ,0x6999 //CJK UNIFIED IDEOGRAPH - ,0xE248 ,0x698E //CJK UNIFIED IDEOGRAPH - ,0xE249 ,0x69A7 //CJK UNIFIED IDEOGRAPH - ,0xE24A ,0x698D //CJK UNIFIED IDEOGRAPH - ,0xE24B ,0x69A9 //CJK UNIFIED IDEOGRAPH - ,0xE24C ,0x69BE //CJK UNIFIED IDEOGRAPH - ,0xE24D ,0x69AF //CJK UNIFIED IDEOGRAPH - ,0xE24E ,0x69BF //CJK UNIFIED IDEOGRAPH - ,0xE24F ,0x69C4 //CJK UNIFIED IDEOGRAPH - ,0xE250 ,0x69BD //CJK UNIFIED IDEOGRAPH - ,0xE251 ,0x69A4 //CJK UNIFIED IDEOGRAPH - ,0xE252 ,0x69D4 //CJK UNIFIED IDEOGRAPH - ,0xE253 ,0x69B9 //CJK UNIFIED IDEOGRAPH - ,0xE254 ,0x69CA //CJK UNIFIED IDEOGRAPH - ,0xE255 ,0x699A //CJK UNIFIED IDEOGRAPH - ,0xE256 ,0x69CF //CJK UNIFIED IDEOGRAPH - ,0xE257 ,0x69B3 //CJK UNIFIED IDEOGRAPH - ,0xE258 ,0x6993 //CJK UNIFIED IDEOGRAPH - ,0xE259 ,0x69AA //CJK UNIFIED IDEOGRAPH - ,0xE25A ,0x69A1 //CJK UNIFIED IDEOGRAPH - ,0xE25B ,0x699E //CJK UNIFIED IDEOGRAPH - ,0xE25C ,0x69D9 //CJK UNIFIED IDEOGRAPH - ,0xE25D ,0x6997 //CJK UNIFIED IDEOGRAPH - ,0xE25E ,0x6990 //CJK UNIFIED IDEOGRAPH - ,0xE25F ,0x69C2 //CJK UNIFIED IDEOGRAPH - ,0xE260 ,0x69B5 //CJK UNIFIED IDEOGRAPH - ,0xE261 ,0x69A5 //CJK UNIFIED IDEOGRAPH - ,0xE262 ,0x69C6 //CJK UNIFIED IDEOGRAPH - ,0xE263 ,0x6B4A //CJK UNIFIED IDEOGRAPH - ,0xE264 ,0x6B4D //CJK UNIFIED IDEOGRAPH - ,0xE265 ,0x6B4B //CJK UNIFIED IDEOGRAPH - ,0xE266 ,0x6B9E //CJK UNIFIED IDEOGRAPH - ,0xE267 ,0x6B9F //CJK UNIFIED IDEOGRAPH - ,0xE268 ,0x6BA0 //CJK UNIFIED IDEOGRAPH - ,0xE269 ,0x6BC3 //CJK UNIFIED IDEOGRAPH - ,0xE26A ,0x6BC4 //CJK UNIFIED IDEOGRAPH - ,0xE26B ,0x6BFE //CJK UNIFIED IDEOGRAPH - ,0xE26C ,0x6ECE //CJK UNIFIED IDEOGRAPH - ,0xE26D ,0x6EF5 //CJK UNIFIED IDEOGRAPH - ,0xE26E ,0x6EF1 //CJK UNIFIED IDEOGRAPH - ,0xE26F ,0x6F03 //CJK UNIFIED IDEOGRAPH - ,0xE270 ,0x6F25 //CJK UNIFIED IDEOGRAPH - ,0xE271 ,0x6EF8 //CJK UNIFIED IDEOGRAPH - ,0xE272 ,0x6F37 //CJK UNIFIED IDEOGRAPH - ,0xE273 ,0x6EFB //CJK UNIFIED IDEOGRAPH - ,0xE274 ,0x6F2E //CJK UNIFIED IDEOGRAPH - ,0xE275 ,0x6F09 //CJK UNIFIED IDEOGRAPH - ,0xE276 ,0x6F4E //CJK UNIFIED IDEOGRAPH - ,0xE277 ,0x6F19 //CJK UNIFIED IDEOGRAPH - ,0xE278 ,0x6F1A //CJK UNIFIED IDEOGRAPH - ,0xE279 ,0x6F27 //CJK UNIFIED IDEOGRAPH - ,0xE27A ,0x6F18 //CJK UNIFIED IDEOGRAPH - ,0xE27B ,0x6F3B //CJK UNIFIED IDEOGRAPH - ,0xE27C ,0x6F12 //CJK UNIFIED IDEOGRAPH - ,0xE27D ,0x6EED //CJK UNIFIED IDEOGRAPH - ,0xE27E ,0x6F0A //CJK UNIFIED IDEOGRAPH - ,0xE2A1 ,0x6F36 //CJK UNIFIED IDEOGRAPH - ,0xE2A2 ,0x6F73 //CJK UNIFIED IDEOGRAPH - ,0xE2A3 ,0x6EF9 //CJK UNIFIED IDEOGRAPH - ,0xE2A4 ,0x6EEE //CJK UNIFIED IDEOGRAPH - ,0xE2A5 ,0x6F2D //CJK UNIFIED IDEOGRAPH - ,0xE2A6 ,0x6F40 //CJK UNIFIED IDEOGRAPH - ,0xE2A7 ,0x6F30 //CJK UNIFIED IDEOGRAPH - ,0xE2A8 ,0x6F3C //CJK UNIFIED IDEOGRAPH - ,0xE2A9 ,0x6F35 //CJK UNIFIED IDEOGRAPH - ,0xE2AA ,0x6EEB //CJK UNIFIED IDEOGRAPH - ,0xE2AB ,0x6F07 //CJK UNIFIED IDEOGRAPH - ,0xE2AC ,0x6F0E //CJK UNIFIED IDEOGRAPH - ,0xE2AD ,0x6F43 //CJK UNIFIED IDEOGRAPH - ,0xE2AE ,0x6F05 //CJK UNIFIED IDEOGRAPH - ,0xE2AF ,0x6EFD //CJK UNIFIED IDEOGRAPH - ,0xE2B0 ,0x6EF6 //CJK UNIFIED IDEOGRAPH - ,0xE2B1 ,0x6F39 //CJK UNIFIED IDEOGRAPH - ,0xE2B2 ,0x6F1C //CJK UNIFIED IDEOGRAPH - ,0xE2B3 ,0x6EFC //CJK UNIFIED IDEOGRAPH - ,0xE2B4 ,0x6F3A //CJK UNIFIED IDEOGRAPH - ,0xE2B5 ,0x6F1F //CJK UNIFIED IDEOGRAPH - ,0xE2B6 ,0x6F0D //CJK UNIFIED IDEOGRAPH - ,0xE2B7 ,0x6F1E //CJK UNIFIED IDEOGRAPH - ,0xE2B8 ,0x6F08 //CJK UNIFIED IDEOGRAPH - ,0xE2B9 ,0x6F21 //CJK UNIFIED IDEOGRAPH - ,0xE2BA ,0x7187 //CJK UNIFIED IDEOGRAPH - ,0xE2BB ,0x7190 //CJK UNIFIED IDEOGRAPH - ,0xE2BC ,0x7189 //CJK UNIFIED IDEOGRAPH - ,0xE2BD ,0x7180 //CJK UNIFIED IDEOGRAPH - ,0xE2BE ,0x7185 //CJK UNIFIED IDEOGRAPH - ,0xE2BF ,0x7182 //CJK UNIFIED IDEOGRAPH - ,0xE2C0 ,0x718F //CJK UNIFIED IDEOGRAPH - ,0xE2C1 ,0x717B //CJK UNIFIED IDEOGRAPH - ,0xE2C2 ,0x7186 //CJK UNIFIED IDEOGRAPH - ,0xE2C3 ,0x7181 //CJK UNIFIED IDEOGRAPH - ,0xE2C4 ,0x7197 //CJK UNIFIED IDEOGRAPH - ,0xE2C5 ,0x7244 //CJK UNIFIED IDEOGRAPH - ,0xE2C6 ,0x7253 //CJK UNIFIED IDEOGRAPH - ,0xE2C7 ,0x7297 //CJK UNIFIED IDEOGRAPH - ,0xE2C8 ,0x7295 //CJK UNIFIED IDEOGRAPH - ,0xE2C9 ,0x7293 //CJK UNIFIED IDEOGRAPH - ,0xE2CA ,0x7343 //CJK UNIFIED IDEOGRAPH - ,0xE2CB ,0x734D //CJK UNIFIED IDEOGRAPH - ,0xE2CC ,0x7351 //CJK UNIFIED IDEOGRAPH - ,0xE2CD ,0x734C //CJK UNIFIED IDEOGRAPH - ,0xE2CE ,0x7462 //CJK UNIFIED IDEOGRAPH - ,0xE2CF ,0x7473 //CJK UNIFIED IDEOGRAPH - ,0xE2D0 ,0x7471 //CJK UNIFIED IDEOGRAPH - ,0xE2D1 ,0x7475 //CJK UNIFIED IDEOGRAPH - ,0xE2D2 ,0x7472 //CJK UNIFIED IDEOGRAPH - ,0xE2D3 ,0x7467 //CJK UNIFIED IDEOGRAPH - ,0xE2D4 ,0x746E //CJK UNIFIED IDEOGRAPH - ,0xE2D5 ,0x7500 //CJK UNIFIED IDEOGRAPH - ,0xE2D6 ,0x7502 //CJK UNIFIED IDEOGRAPH - ,0xE2D7 ,0x7503 //CJK UNIFIED IDEOGRAPH - ,0xE2D8 ,0x757D //CJK UNIFIED IDEOGRAPH - ,0xE2D9 ,0x7590 //CJK UNIFIED IDEOGRAPH - ,0xE2DA ,0x7616 //CJK UNIFIED IDEOGRAPH - ,0xE2DB ,0x7608 //CJK UNIFIED IDEOGRAPH - ,0xE2DC ,0x760C //CJK UNIFIED IDEOGRAPH - ,0xE2DD ,0x7615 //CJK UNIFIED IDEOGRAPH - ,0xE2DE ,0x7611 //CJK UNIFIED IDEOGRAPH - ,0xE2DF ,0x760A //CJK UNIFIED IDEOGRAPH - ,0xE2E0 ,0x7614 //CJK UNIFIED IDEOGRAPH - ,0xE2E1 ,0x76B8 //CJK UNIFIED IDEOGRAPH - ,0xE2E2 ,0x7781 //CJK UNIFIED IDEOGRAPH - ,0xE2E3 ,0x777C //CJK UNIFIED IDEOGRAPH - ,0xE2E4 ,0x7785 //CJK UNIFIED IDEOGRAPH - ,0xE2E5 ,0x7782 //CJK UNIFIED IDEOGRAPH - ,0xE2E6 ,0x776E //CJK UNIFIED IDEOGRAPH - ,0xE2E7 ,0x7780 //CJK UNIFIED IDEOGRAPH - ,0xE2E8 ,0x776F //CJK UNIFIED IDEOGRAPH - ,0xE2E9 ,0x777E //CJK UNIFIED IDEOGRAPH - ,0xE2EA ,0x7783 //CJK UNIFIED IDEOGRAPH - ,0xE2EB ,0x78B2 //CJK UNIFIED IDEOGRAPH - ,0xE2EC ,0x78AA //CJK UNIFIED IDEOGRAPH - ,0xE2ED ,0x78B4 //CJK UNIFIED IDEOGRAPH - ,0xE2EE ,0x78AD //CJK UNIFIED IDEOGRAPH - ,0xE2EF ,0x78A8 //CJK UNIFIED IDEOGRAPH - ,0xE2F0 ,0x787E //CJK UNIFIED IDEOGRAPH - ,0xE2F1 ,0x78AB //CJK UNIFIED IDEOGRAPH - ,0xE2F2 ,0x789E //CJK UNIFIED IDEOGRAPH - ,0xE2F3 ,0x78A5 //CJK UNIFIED IDEOGRAPH - ,0xE2F4 ,0x78A0 //CJK UNIFIED IDEOGRAPH - ,0xE2F5 ,0x78AC //CJK UNIFIED IDEOGRAPH - ,0xE2F6 ,0x78A2 //CJK UNIFIED IDEOGRAPH - ,0xE2F7 ,0x78A4 //CJK UNIFIED IDEOGRAPH - ,0xE2F8 ,0x7998 //CJK UNIFIED IDEOGRAPH - ,0xE2F9 ,0x798A //CJK UNIFIED IDEOGRAPH - ,0xE2FA ,0x798B //CJK UNIFIED IDEOGRAPH - ,0xE2FB ,0x7996 //CJK UNIFIED IDEOGRAPH - ,0xE2FC ,0x7995 //CJK UNIFIED IDEOGRAPH - ,0xE2FD ,0x7994 //CJK UNIFIED IDEOGRAPH - ,0xE2FE ,0x7993 //CJK UNIFIED IDEOGRAPH - ,0xE340 ,0x7997 //CJK UNIFIED IDEOGRAPH - ,0xE341 ,0x7988 //CJK UNIFIED IDEOGRAPH - ,0xE342 ,0x7992 //CJK UNIFIED IDEOGRAPH - ,0xE343 ,0x7990 //CJK UNIFIED IDEOGRAPH - ,0xE344 ,0x7A2B //CJK UNIFIED IDEOGRAPH - ,0xE345 ,0x7A4A //CJK UNIFIED IDEOGRAPH - ,0xE346 ,0x7A30 //CJK UNIFIED IDEOGRAPH - ,0xE347 ,0x7A2F //CJK UNIFIED IDEOGRAPH - ,0xE348 ,0x7A28 //CJK UNIFIED IDEOGRAPH - ,0xE349 ,0x7A26 //CJK UNIFIED IDEOGRAPH - ,0xE34A ,0x7AA8 //CJK UNIFIED IDEOGRAPH - ,0xE34B ,0x7AAB //CJK UNIFIED IDEOGRAPH - ,0xE34C ,0x7AAC //CJK UNIFIED IDEOGRAPH - ,0xE34D ,0x7AEE //CJK UNIFIED IDEOGRAPH - ,0xE34E ,0x7B88 //CJK UNIFIED IDEOGRAPH - ,0xE34F ,0x7B9C //CJK UNIFIED IDEOGRAPH - ,0xE350 ,0x7B8A //CJK UNIFIED IDEOGRAPH - ,0xE351 ,0x7B91 //CJK UNIFIED IDEOGRAPH - ,0xE352 ,0x7B90 //CJK UNIFIED IDEOGRAPH - ,0xE353 ,0x7B96 //CJK UNIFIED IDEOGRAPH - ,0xE354 ,0x7B8D //CJK UNIFIED IDEOGRAPH - ,0xE355 ,0x7B8C //CJK UNIFIED IDEOGRAPH - ,0xE356 ,0x7B9B //CJK UNIFIED IDEOGRAPH - ,0xE357 ,0x7B8E //CJK UNIFIED IDEOGRAPH - ,0xE358 ,0x7B85 //CJK UNIFIED IDEOGRAPH - ,0xE359 ,0x7B98 //CJK UNIFIED IDEOGRAPH - ,0xE35A ,0x5284 //CJK UNIFIED IDEOGRAPH - ,0xE35B ,0x7B99 //CJK UNIFIED IDEOGRAPH - ,0xE35C ,0x7BA4 //CJK UNIFIED IDEOGRAPH - ,0xE35D ,0x7B82 //CJK UNIFIED IDEOGRAPH - ,0xE35E ,0x7CBB //CJK UNIFIED IDEOGRAPH - ,0xE35F ,0x7CBF //CJK UNIFIED IDEOGRAPH - ,0xE360 ,0x7CBC //CJK UNIFIED IDEOGRAPH - ,0xE361 ,0x7CBA //CJK UNIFIED IDEOGRAPH - ,0xE362 ,0x7DA7 //CJK UNIFIED IDEOGRAPH - ,0xE363 ,0x7DB7 //CJK UNIFIED IDEOGRAPH - ,0xE364 ,0x7DC2 //CJK UNIFIED IDEOGRAPH - ,0xE365 ,0x7DA3 //CJK UNIFIED IDEOGRAPH - ,0xE366 ,0x7DAA //CJK UNIFIED IDEOGRAPH - ,0xE367 ,0x7DC1 //CJK UNIFIED IDEOGRAPH - ,0xE368 ,0x7DC0 //CJK UNIFIED IDEOGRAPH - ,0xE369 ,0x7DC5 //CJK UNIFIED IDEOGRAPH - ,0xE36A ,0x7D9D //CJK UNIFIED IDEOGRAPH - ,0xE36B ,0x7DCE //CJK UNIFIED IDEOGRAPH - ,0xE36C ,0x7DC4 //CJK UNIFIED IDEOGRAPH - ,0xE36D ,0x7DC6 //CJK UNIFIED IDEOGRAPH - ,0xE36E ,0x7DCB //CJK UNIFIED IDEOGRAPH - ,0xE36F ,0x7DCC //CJK UNIFIED IDEOGRAPH - ,0xE370 ,0x7DAF //CJK UNIFIED IDEOGRAPH - ,0xE371 ,0x7DB9 //CJK UNIFIED IDEOGRAPH - ,0xE372 ,0x7D96 //CJK UNIFIED IDEOGRAPH - ,0xE373 ,0x7DBC //CJK UNIFIED IDEOGRAPH - ,0xE374 ,0x7D9F //CJK UNIFIED IDEOGRAPH - ,0xE375 ,0x7DA6 //CJK UNIFIED IDEOGRAPH - ,0xE376 ,0x7DAE //CJK UNIFIED IDEOGRAPH - ,0xE377 ,0x7DA9 //CJK UNIFIED IDEOGRAPH - ,0xE378 ,0x7DA1 //CJK UNIFIED IDEOGRAPH - ,0xE379 ,0x7DC9 //CJK UNIFIED IDEOGRAPH - ,0xE37A ,0x7F73 //CJK UNIFIED IDEOGRAPH - ,0xE37B ,0x7FE2 //CJK UNIFIED IDEOGRAPH - ,0xE37C ,0x7FE3 //CJK UNIFIED IDEOGRAPH - ,0xE37D ,0x7FE5 //CJK UNIFIED IDEOGRAPH - ,0xE37E ,0x7FDE //CJK UNIFIED IDEOGRAPH - ,0xE3A1 ,0x8024 //CJK UNIFIED IDEOGRAPH - ,0xE3A2 ,0x805D //CJK UNIFIED IDEOGRAPH - ,0xE3A3 ,0x805C //CJK UNIFIED IDEOGRAPH - ,0xE3A4 ,0x8189 //CJK UNIFIED IDEOGRAPH - ,0xE3A5 ,0x8186 //CJK UNIFIED IDEOGRAPH - ,0xE3A6 ,0x8183 //CJK UNIFIED IDEOGRAPH - ,0xE3A7 ,0x8187 //CJK UNIFIED IDEOGRAPH - ,0xE3A8 ,0x818D //CJK UNIFIED IDEOGRAPH - ,0xE3A9 ,0x818C //CJK UNIFIED IDEOGRAPH - ,0xE3AA ,0x818B //CJK UNIFIED IDEOGRAPH - ,0xE3AB ,0x8215 //CJK UNIFIED IDEOGRAPH - ,0xE3AC ,0x8497 //CJK UNIFIED IDEOGRAPH - ,0xE3AD ,0x84A4 //CJK UNIFIED IDEOGRAPH - ,0xE3AE ,0x84A1 //CJK UNIFIED IDEOGRAPH - ,0xE3AF ,0x849F //CJK UNIFIED IDEOGRAPH - ,0xE3B0 ,0x84BA //CJK UNIFIED IDEOGRAPH - ,0xE3B1 ,0x84CE //CJK UNIFIED IDEOGRAPH - ,0xE3B2 ,0x84C2 //CJK UNIFIED IDEOGRAPH - ,0xE3B3 ,0x84AC //CJK UNIFIED IDEOGRAPH - ,0xE3B4 ,0x84AE //CJK UNIFIED IDEOGRAPH - ,0xE3B5 ,0x84AB //CJK UNIFIED IDEOGRAPH - ,0xE3B6 ,0x84B9 //CJK UNIFIED IDEOGRAPH - ,0xE3B7 ,0x84B4 //CJK UNIFIED IDEOGRAPH - ,0xE3B8 ,0x84C1 //CJK UNIFIED IDEOGRAPH - ,0xE3B9 ,0x84CD //CJK UNIFIED IDEOGRAPH - ,0xE3BA ,0x84AA //CJK UNIFIED IDEOGRAPH - ,0xE3BB ,0x849A //CJK UNIFIED IDEOGRAPH - ,0xE3BC ,0x84B1 //CJK UNIFIED IDEOGRAPH - ,0xE3BD ,0x84D0 //CJK UNIFIED IDEOGRAPH - ,0xE3BE ,0x849D //CJK UNIFIED IDEOGRAPH - ,0xE3BF ,0x84A7 //CJK UNIFIED IDEOGRAPH - ,0xE3C0 ,0x84BB //CJK UNIFIED IDEOGRAPH - ,0xE3C1 ,0x84A2 //CJK UNIFIED IDEOGRAPH - ,0xE3C2 ,0x8494 //CJK UNIFIED IDEOGRAPH - ,0xE3C3 ,0x84C7 //CJK UNIFIED IDEOGRAPH - ,0xE3C4 ,0x84CC //CJK UNIFIED IDEOGRAPH - ,0xE3C5 ,0x849B //CJK UNIFIED IDEOGRAPH - ,0xE3C6 ,0x84A9 //CJK UNIFIED IDEOGRAPH - ,0xE3C7 ,0x84AF //CJK UNIFIED IDEOGRAPH - ,0xE3C8 ,0x84A8 //CJK UNIFIED IDEOGRAPH - ,0xE3C9 ,0x84D6 //CJK UNIFIED IDEOGRAPH - ,0xE3CA ,0x8498 //CJK UNIFIED IDEOGRAPH - ,0xE3CB ,0x84B6 //CJK UNIFIED IDEOGRAPH - ,0xE3CC ,0x84CF //CJK UNIFIED IDEOGRAPH - ,0xE3CD ,0x84A0 //CJK UNIFIED IDEOGRAPH - ,0xE3CE ,0x84D7 //CJK UNIFIED IDEOGRAPH - ,0xE3CF ,0x84D4 //CJK UNIFIED IDEOGRAPH - ,0xE3D0 ,0x84D2 //CJK UNIFIED IDEOGRAPH - ,0xE3D1 ,0x84DB //CJK UNIFIED IDEOGRAPH - ,0xE3D2 ,0x84B0 //CJK UNIFIED IDEOGRAPH - ,0xE3D3 ,0x8491 //CJK UNIFIED IDEOGRAPH - ,0xE3D4 ,0x8661 //CJK UNIFIED IDEOGRAPH - ,0xE3D5 ,0x8733 //CJK UNIFIED IDEOGRAPH - ,0xE3D6 ,0x8723 //CJK UNIFIED IDEOGRAPH - ,0xE3D7 ,0x8728 //CJK UNIFIED IDEOGRAPH - ,0xE3D8 ,0x876B //CJK UNIFIED IDEOGRAPH - ,0xE3D9 ,0x8740 //CJK UNIFIED IDEOGRAPH - ,0xE3DA ,0x872E //CJK UNIFIED IDEOGRAPH - ,0xE3DB ,0x871E //CJK UNIFIED IDEOGRAPH - ,0xE3DC ,0x8721 //CJK UNIFIED IDEOGRAPH - ,0xE3DD ,0x8719 //CJK UNIFIED IDEOGRAPH - ,0xE3DE ,0x871B //CJK UNIFIED IDEOGRAPH - ,0xE3DF ,0x8743 //CJK UNIFIED IDEOGRAPH - ,0xE3E0 ,0x872C //CJK UNIFIED IDEOGRAPH - ,0xE3E1 ,0x8741 //CJK UNIFIED IDEOGRAPH - ,0xE3E2 ,0x873E //CJK UNIFIED IDEOGRAPH - ,0xE3E3 ,0x8746 //CJK UNIFIED IDEOGRAPH - ,0xE3E4 ,0x8720 //CJK UNIFIED IDEOGRAPH - ,0xE3E5 ,0x8732 //CJK UNIFIED IDEOGRAPH - ,0xE3E6 ,0x872A //CJK UNIFIED IDEOGRAPH - ,0xE3E7 ,0x872D //CJK UNIFIED IDEOGRAPH - ,0xE3E8 ,0x873C //CJK UNIFIED IDEOGRAPH - ,0xE3E9 ,0x8712 //CJK UNIFIED IDEOGRAPH - ,0xE3EA ,0x873A //CJK UNIFIED IDEOGRAPH - ,0xE3EB ,0x8731 //CJK UNIFIED IDEOGRAPH - ,0xE3EC ,0x8735 //CJK UNIFIED IDEOGRAPH - ,0xE3ED ,0x8742 //CJK UNIFIED IDEOGRAPH - ,0xE3EE ,0x8726 //CJK UNIFIED IDEOGRAPH - ,0xE3EF ,0x8727 //CJK UNIFIED IDEOGRAPH - ,0xE3F0 ,0x8738 //CJK UNIFIED IDEOGRAPH - ,0xE3F1 ,0x8724 //CJK UNIFIED IDEOGRAPH - ,0xE3F2 ,0x871A //CJK UNIFIED IDEOGRAPH - ,0xE3F3 ,0x8730 //CJK UNIFIED IDEOGRAPH - ,0xE3F4 ,0x8711 //CJK UNIFIED IDEOGRAPH - ,0xE3F5 ,0x88F7 //CJK UNIFIED IDEOGRAPH - ,0xE3F6 ,0x88E7 //CJK UNIFIED IDEOGRAPH - ,0xE3F7 ,0x88F1 //CJK UNIFIED IDEOGRAPH - ,0xE3F8 ,0x88F2 //CJK UNIFIED IDEOGRAPH - ,0xE3F9 ,0x88FA //CJK UNIFIED IDEOGRAPH - ,0xE3FA ,0x88FE //CJK UNIFIED IDEOGRAPH - ,0xE3FB ,0x88EE //CJK UNIFIED IDEOGRAPH - ,0xE3FC ,0x88FC //CJK UNIFIED IDEOGRAPH - ,0xE3FD ,0x88F6 //CJK UNIFIED IDEOGRAPH - ,0xE3FE ,0x88FB //CJK UNIFIED IDEOGRAPH - ,0xE440 ,0x88F0 //CJK UNIFIED IDEOGRAPH - ,0xE441 ,0x88EC //CJK UNIFIED IDEOGRAPH - ,0xE442 ,0x88EB //CJK UNIFIED IDEOGRAPH - ,0xE443 ,0x899D //CJK UNIFIED IDEOGRAPH - ,0xE444 ,0x89A1 //CJK UNIFIED IDEOGRAPH - ,0xE445 ,0x899F //CJK UNIFIED IDEOGRAPH - ,0xE446 ,0x899E //CJK UNIFIED IDEOGRAPH - ,0xE447 ,0x89E9 //CJK UNIFIED IDEOGRAPH - ,0xE448 ,0x89EB //CJK UNIFIED IDEOGRAPH - ,0xE449 ,0x89E8 //CJK UNIFIED IDEOGRAPH - ,0xE44A ,0x8AAB //CJK UNIFIED IDEOGRAPH - ,0xE44B ,0x8A99 //CJK UNIFIED IDEOGRAPH - ,0xE44C ,0x8A8B //CJK UNIFIED IDEOGRAPH - ,0xE44D ,0x8A92 //CJK UNIFIED IDEOGRAPH - ,0xE44E ,0x8A8F //CJK UNIFIED IDEOGRAPH - ,0xE44F ,0x8A96 //CJK UNIFIED IDEOGRAPH - ,0xE450 ,0x8C3D //CJK UNIFIED IDEOGRAPH - ,0xE451 ,0x8C68 //CJK UNIFIED IDEOGRAPH - ,0xE452 ,0x8C69 //CJK UNIFIED IDEOGRAPH - ,0xE453 ,0x8CD5 //CJK UNIFIED IDEOGRAPH - ,0xE454 ,0x8CCF //CJK UNIFIED IDEOGRAPH - ,0xE455 ,0x8CD7 //CJK UNIFIED IDEOGRAPH - ,0xE456 ,0x8D96 //CJK UNIFIED IDEOGRAPH - ,0xE457 ,0x8E09 //CJK UNIFIED IDEOGRAPH - ,0xE458 ,0x8E02 //CJK UNIFIED IDEOGRAPH - ,0xE459 ,0x8DFF //CJK UNIFIED IDEOGRAPH - ,0xE45A ,0x8E0D //CJK UNIFIED IDEOGRAPH - ,0xE45B ,0x8DFD //CJK UNIFIED IDEOGRAPH - ,0xE45C ,0x8E0A //CJK UNIFIED IDEOGRAPH - ,0xE45D ,0x8E03 //CJK UNIFIED IDEOGRAPH - ,0xE45E ,0x8E07 //CJK UNIFIED IDEOGRAPH - ,0xE45F ,0x8E06 //CJK UNIFIED IDEOGRAPH - ,0xE460 ,0x8E05 //CJK UNIFIED IDEOGRAPH - ,0xE461 ,0x8DFE //CJK UNIFIED IDEOGRAPH - ,0xE462 ,0x8E00 //CJK UNIFIED IDEOGRAPH - ,0xE463 ,0x8E04 //CJK UNIFIED IDEOGRAPH - ,0xE464 ,0x8F10 //CJK UNIFIED IDEOGRAPH - ,0xE465 ,0x8F11 //CJK UNIFIED IDEOGRAPH - ,0xE466 ,0x8F0E //CJK UNIFIED IDEOGRAPH - ,0xE467 ,0x8F0D //CJK UNIFIED IDEOGRAPH - ,0xE468 ,0x9123 //CJK UNIFIED IDEOGRAPH - ,0xE469 ,0x911C //CJK UNIFIED IDEOGRAPH - ,0xE46A ,0x9120 //CJK UNIFIED IDEOGRAPH - ,0xE46B ,0x9122 //CJK UNIFIED IDEOGRAPH - ,0xE46C ,0x911F //CJK UNIFIED IDEOGRAPH - ,0xE46D ,0x911D //CJK UNIFIED IDEOGRAPH - ,0xE46E ,0x911A //CJK UNIFIED IDEOGRAPH - ,0xE46F ,0x9124 //CJK UNIFIED IDEOGRAPH - ,0xE470 ,0x9121 //CJK UNIFIED IDEOGRAPH - ,0xE471 ,0x911B //CJK UNIFIED IDEOGRAPH - ,0xE472 ,0x917A //CJK UNIFIED IDEOGRAPH - ,0xE473 ,0x9172 //CJK UNIFIED IDEOGRAPH - ,0xE474 ,0x9179 //CJK UNIFIED IDEOGRAPH - ,0xE475 ,0x9173 //CJK UNIFIED IDEOGRAPH - ,0xE476 ,0x92A5 //CJK UNIFIED IDEOGRAPH - ,0xE477 ,0x92A4 //CJK UNIFIED IDEOGRAPH - ,0xE478 ,0x9276 //CJK UNIFIED IDEOGRAPH - ,0xE479 ,0x929B //CJK UNIFIED IDEOGRAPH - ,0xE47A ,0x927A //CJK UNIFIED IDEOGRAPH - ,0xE47B ,0x92A0 //CJK UNIFIED IDEOGRAPH - ,0xE47C ,0x9294 //CJK UNIFIED IDEOGRAPH - ,0xE47D ,0x92AA //CJK UNIFIED IDEOGRAPH - ,0xE47E ,0x928D //CJK UNIFIED IDEOGRAPH - ,0xE4A1 ,0x92A6 //CJK UNIFIED IDEOGRAPH - ,0xE4A2 ,0x929A //CJK UNIFIED IDEOGRAPH - ,0xE4A3 ,0x92AB //CJK UNIFIED IDEOGRAPH - ,0xE4A4 ,0x9279 //CJK UNIFIED IDEOGRAPH - ,0xE4A5 ,0x9297 //CJK UNIFIED IDEOGRAPH - ,0xE4A6 ,0x927F //CJK UNIFIED IDEOGRAPH - ,0xE4A7 ,0x92A3 //CJK UNIFIED IDEOGRAPH - ,0xE4A8 ,0x92EE //CJK UNIFIED IDEOGRAPH - ,0xE4A9 ,0x928E //CJK UNIFIED IDEOGRAPH - ,0xE4AA ,0x9282 //CJK UNIFIED IDEOGRAPH - ,0xE4AB ,0x9295 //CJK UNIFIED IDEOGRAPH - ,0xE4AC ,0x92A2 //CJK UNIFIED IDEOGRAPH - ,0xE4AD ,0x927D //CJK UNIFIED IDEOGRAPH - ,0xE4AE ,0x9288 //CJK UNIFIED IDEOGRAPH - ,0xE4AF ,0x92A1 //CJK UNIFIED IDEOGRAPH - ,0xE4B0 ,0x928A //CJK UNIFIED IDEOGRAPH - ,0xE4B1 ,0x9286 //CJK UNIFIED IDEOGRAPH - ,0xE4B2 ,0x928C //CJK UNIFIED IDEOGRAPH - ,0xE4B3 ,0x9299 //CJK UNIFIED IDEOGRAPH - ,0xE4B4 ,0x92A7 //CJK UNIFIED IDEOGRAPH - ,0xE4B5 ,0x927E //CJK UNIFIED IDEOGRAPH - ,0xE4B6 ,0x9287 //CJK UNIFIED IDEOGRAPH - ,0xE4B7 ,0x92A9 //CJK UNIFIED IDEOGRAPH - ,0xE4B8 ,0x929D //CJK UNIFIED IDEOGRAPH - ,0xE4B9 ,0x928B //CJK UNIFIED IDEOGRAPH - ,0xE4BA ,0x922D //CJK UNIFIED IDEOGRAPH - ,0xE4BB ,0x969E //CJK UNIFIED IDEOGRAPH - ,0xE4BC ,0x96A1 //CJK UNIFIED IDEOGRAPH - ,0xE4BD ,0x96FF //CJK UNIFIED IDEOGRAPH - ,0xE4BE ,0x9758 //CJK UNIFIED IDEOGRAPH - ,0xE4BF ,0x977D //CJK UNIFIED IDEOGRAPH - ,0xE4C0 ,0x977A //CJK UNIFIED IDEOGRAPH - ,0xE4C1 ,0x977E //CJK UNIFIED IDEOGRAPH - ,0xE4C2 ,0x9783 //CJK UNIFIED IDEOGRAPH - ,0xE4C3 ,0x9780 //CJK UNIFIED IDEOGRAPH - ,0xE4C4 ,0x9782 //CJK UNIFIED IDEOGRAPH - ,0xE4C5 ,0x977B //CJK UNIFIED IDEOGRAPH - ,0xE4C6 ,0x9784 //CJK UNIFIED IDEOGRAPH - ,0xE4C7 ,0x9781 //CJK UNIFIED IDEOGRAPH - ,0xE4C8 ,0x977F //CJK UNIFIED IDEOGRAPH - ,0xE4C9 ,0x97CE //CJK UNIFIED IDEOGRAPH - ,0xE4CA ,0x97CD //CJK UNIFIED IDEOGRAPH - ,0xE4CB ,0x9816 //CJK UNIFIED IDEOGRAPH - ,0xE4CC ,0x98AD //CJK UNIFIED IDEOGRAPH - ,0xE4CD ,0x98AE //CJK UNIFIED IDEOGRAPH - ,0xE4CE ,0x9902 //CJK UNIFIED IDEOGRAPH - ,0xE4CF ,0x9900 //CJK UNIFIED IDEOGRAPH - ,0xE4D0 ,0x9907 //CJK UNIFIED IDEOGRAPH - ,0xE4D1 ,0x999D //CJK UNIFIED IDEOGRAPH - ,0xE4D2 ,0x999C //CJK UNIFIED IDEOGRAPH - ,0xE4D3 ,0x99C3 //CJK UNIFIED IDEOGRAPH - ,0xE4D4 ,0x99B9 //CJK UNIFIED IDEOGRAPH - ,0xE4D5 ,0x99BB //CJK UNIFIED IDEOGRAPH - ,0xE4D6 ,0x99BA //CJK UNIFIED IDEOGRAPH - ,0xE4D7 ,0x99C2 //CJK UNIFIED IDEOGRAPH - ,0xE4D8 ,0x99BD //CJK UNIFIED IDEOGRAPH - ,0xE4D9 ,0x99C7 //CJK UNIFIED IDEOGRAPH - ,0xE4DA ,0x9AB1 //CJK UNIFIED IDEOGRAPH - ,0xE4DB ,0x9AE3 //CJK UNIFIED IDEOGRAPH - ,0xE4DC ,0x9AE7 //CJK UNIFIED IDEOGRAPH - ,0xE4DD ,0x9B3E //CJK UNIFIED IDEOGRAPH - ,0xE4DE ,0x9B3F //CJK UNIFIED IDEOGRAPH - ,0xE4DF ,0x9B60 //CJK UNIFIED IDEOGRAPH - ,0xE4E0 ,0x9B61 //CJK UNIFIED IDEOGRAPH - ,0xE4E1 ,0x9B5F //CJK UNIFIED IDEOGRAPH - ,0xE4E2 ,0x9CF1 //CJK UNIFIED IDEOGRAPH - ,0xE4E3 ,0x9CF2 //CJK UNIFIED IDEOGRAPH - ,0xE4E4 ,0x9CF5 //CJK UNIFIED IDEOGRAPH - ,0xE4E5 ,0x9EA7 //CJK UNIFIED IDEOGRAPH - ,0xE4E6 ,0x50FF //CJK UNIFIED IDEOGRAPH - ,0xE4E7 ,0x5103 //CJK UNIFIED IDEOGRAPH - ,0xE4E8 ,0x5130 //CJK UNIFIED IDEOGRAPH - ,0xE4E9 ,0x50F8 //CJK UNIFIED IDEOGRAPH - ,0xE4EA ,0x5106 //CJK UNIFIED IDEOGRAPH - ,0xE4EB ,0x5107 //CJK UNIFIED IDEOGRAPH - ,0xE4EC ,0x50F6 //CJK UNIFIED IDEOGRAPH - ,0xE4ED ,0x50FE //CJK UNIFIED IDEOGRAPH - ,0xE4EE ,0x510B //CJK UNIFIED IDEOGRAPH - ,0xE4EF ,0x510C //CJK UNIFIED IDEOGRAPH - ,0xE4F0 ,0x50FD //CJK UNIFIED IDEOGRAPH - ,0xE4F1 ,0x510A //CJK UNIFIED IDEOGRAPH - ,0xE4F2 ,0x528B //CJK UNIFIED IDEOGRAPH - ,0xE4F3 ,0x528C //CJK UNIFIED IDEOGRAPH - ,0xE4F4 ,0x52F1 //CJK UNIFIED IDEOGRAPH - ,0xE4F5 ,0x52EF //CJK UNIFIED IDEOGRAPH - ,0xE4F6 ,0x5648 //CJK UNIFIED IDEOGRAPH - ,0xE4F7 ,0x5642 //CJK UNIFIED IDEOGRAPH - ,0xE4F8 ,0x564C //CJK UNIFIED IDEOGRAPH - ,0xE4F9 ,0x5635 //CJK UNIFIED IDEOGRAPH - ,0xE4FA ,0x5641 //CJK UNIFIED IDEOGRAPH - ,0xE4FB ,0x564A //CJK UNIFIED IDEOGRAPH - ,0xE4FC ,0x5649 //CJK UNIFIED IDEOGRAPH - ,0xE4FD ,0x5646 //CJK UNIFIED IDEOGRAPH - ,0xE4FE ,0x5658 //CJK UNIFIED IDEOGRAPH - ,0xE540 ,0x565A //CJK UNIFIED IDEOGRAPH - ,0xE541 ,0x5640 //CJK UNIFIED IDEOGRAPH - ,0xE542 ,0x5633 //CJK UNIFIED IDEOGRAPH - ,0xE543 ,0x563D //CJK UNIFIED IDEOGRAPH - ,0xE544 ,0x562C //CJK UNIFIED IDEOGRAPH - ,0xE545 ,0x563E //CJK UNIFIED IDEOGRAPH - ,0xE546 ,0x5638 //CJK UNIFIED IDEOGRAPH - ,0xE547 ,0x562A //CJK UNIFIED IDEOGRAPH - ,0xE548 ,0x563A //CJK UNIFIED IDEOGRAPH - ,0xE549 ,0x571A //CJK UNIFIED IDEOGRAPH - ,0xE54A ,0x58AB //CJK UNIFIED IDEOGRAPH - ,0xE54B ,0x589D //CJK UNIFIED IDEOGRAPH - ,0xE54C ,0x58B1 //CJK UNIFIED IDEOGRAPH - ,0xE54D ,0x58A0 //CJK UNIFIED IDEOGRAPH - ,0xE54E ,0x58A3 //CJK UNIFIED IDEOGRAPH - ,0xE54F ,0x58AF //CJK UNIFIED IDEOGRAPH - ,0xE550 ,0x58AC //CJK UNIFIED IDEOGRAPH - ,0xE551 ,0x58A5 //CJK UNIFIED IDEOGRAPH - ,0xE552 ,0x58A1 //CJK UNIFIED IDEOGRAPH - ,0xE553 ,0x58FF //CJK UNIFIED IDEOGRAPH - ,0xE554 ,0x5AFF //CJK UNIFIED IDEOGRAPH - ,0xE555 ,0x5AF4 //CJK UNIFIED IDEOGRAPH - ,0xE556 ,0x5AFD //CJK UNIFIED IDEOGRAPH - ,0xE557 ,0x5AF7 //CJK UNIFIED IDEOGRAPH - ,0xE558 ,0x5AF6 //CJK UNIFIED IDEOGRAPH - ,0xE559 ,0x5B03 //CJK UNIFIED IDEOGRAPH - ,0xE55A ,0x5AF8 //CJK UNIFIED IDEOGRAPH - ,0xE55B ,0x5B02 //CJK UNIFIED IDEOGRAPH - ,0xE55C ,0x5AF9 //CJK UNIFIED IDEOGRAPH - ,0xE55D ,0x5B01 //CJK UNIFIED IDEOGRAPH - ,0xE55E ,0x5B07 //CJK UNIFIED IDEOGRAPH - ,0xE55F ,0x5B05 //CJK UNIFIED IDEOGRAPH - ,0xE560 ,0x5B0F //CJK UNIFIED IDEOGRAPH - ,0xE561 ,0x5C67 //CJK UNIFIED IDEOGRAPH - ,0xE562 ,0x5D99 //CJK UNIFIED IDEOGRAPH - ,0xE563 ,0x5D97 //CJK UNIFIED IDEOGRAPH - ,0xE564 ,0x5D9F //CJK UNIFIED IDEOGRAPH - ,0xE565 ,0x5D92 //CJK UNIFIED IDEOGRAPH - ,0xE566 ,0x5DA2 //CJK UNIFIED IDEOGRAPH - ,0xE567 ,0x5D93 //CJK UNIFIED IDEOGRAPH - ,0xE568 ,0x5D95 //CJK UNIFIED IDEOGRAPH - ,0xE569 ,0x5DA0 //CJK UNIFIED IDEOGRAPH - ,0xE56A ,0x5D9C //CJK UNIFIED IDEOGRAPH - ,0xE56B ,0x5DA1 //CJK UNIFIED IDEOGRAPH - ,0xE56C ,0x5D9A //CJK UNIFIED IDEOGRAPH - ,0xE56D ,0x5D9E //CJK UNIFIED IDEOGRAPH - ,0xE56E ,0x5E69 //CJK UNIFIED IDEOGRAPH - ,0xE56F ,0x5E5D //CJK UNIFIED IDEOGRAPH - ,0xE570 ,0x5E60 //CJK UNIFIED IDEOGRAPH - ,0xE571 ,0x5E5C //CJK UNIFIED IDEOGRAPH - ,0xE572 ,0x7DF3 //CJK UNIFIED IDEOGRAPH - ,0xE573 ,0x5EDB //CJK UNIFIED IDEOGRAPH - ,0xE574 ,0x5EDE //CJK UNIFIED IDEOGRAPH - ,0xE575 ,0x5EE1 //CJK UNIFIED IDEOGRAPH - ,0xE576 ,0x5F49 //CJK UNIFIED IDEOGRAPH - ,0xE577 ,0x5FB2 //CJK UNIFIED IDEOGRAPH - ,0xE578 ,0x618B //CJK UNIFIED IDEOGRAPH - ,0xE579 ,0x6183 //CJK UNIFIED IDEOGRAPH - ,0xE57A ,0x6179 //CJK UNIFIED IDEOGRAPH - ,0xE57B ,0x61B1 //CJK UNIFIED IDEOGRAPH - ,0xE57C ,0x61B0 //CJK UNIFIED IDEOGRAPH - ,0xE57D ,0x61A2 //CJK UNIFIED IDEOGRAPH - ,0xE57E ,0x6189 //CJK UNIFIED IDEOGRAPH - ,0xE5A1 ,0x619B //CJK UNIFIED IDEOGRAPH - ,0xE5A2 ,0x6193 //CJK UNIFIED IDEOGRAPH - ,0xE5A3 ,0x61AF //CJK UNIFIED IDEOGRAPH - ,0xE5A4 ,0x61AD //CJK UNIFIED IDEOGRAPH - ,0xE5A5 ,0x619F //CJK UNIFIED IDEOGRAPH - ,0xE5A6 ,0x6192 //CJK UNIFIED IDEOGRAPH - ,0xE5A7 ,0x61AA //CJK UNIFIED IDEOGRAPH - ,0xE5A8 ,0x61A1 //CJK UNIFIED IDEOGRAPH - ,0xE5A9 ,0x618D //CJK UNIFIED IDEOGRAPH - ,0xE5AA ,0x6166 //CJK UNIFIED IDEOGRAPH - ,0xE5AB ,0x61B3 //CJK UNIFIED IDEOGRAPH - ,0xE5AC ,0x622D //CJK UNIFIED IDEOGRAPH - ,0xE5AD ,0x646E //CJK UNIFIED IDEOGRAPH - ,0xE5AE ,0x6470 //CJK UNIFIED IDEOGRAPH - ,0xE5AF ,0x6496 //CJK UNIFIED IDEOGRAPH - ,0xE5B0 ,0x64A0 //CJK UNIFIED IDEOGRAPH - ,0xE5B1 ,0x6485 //CJK UNIFIED IDEOGRAPH - ,0xE5B2 ,0x6497 //CJK UNIFIED IDEOGRAPH - ,0xE5B3 ,0x649C //CJK UNIFIED IDEOGRAPH - ,0xE5B4 ,0x648F //CJK UNIFIED IDEOGRAPH - ,0xE5B5 ,0x648B //CJK UNIFIED IDEOGRAPH - ,0xE5B6 ,0x648A //CJK UNIFIED IDEOGRAPH - ,0xE5B7 ,0x648C //CJK UNIFIED IDEOGRAPH - ,0xE5B8 ,0x64A3 //CJK UNIFIED IDEOGRAPH - ,0xE5B9 ,0x649F //CJK UNIFIED IDEOGRAPH - ,0xE5BA ,0x6468 //CJK UNIFIED IDEOGRAPH - ,0xE5BB ,0x64B1 //CJK UNIFIED IDEOGRAPH - ,0xE5BC ,0x6498 //CJK UNIFIED IDEOGRAPH - ,0xE5BD ,0x6576 //CJK UNIFIED IDEOGRAPH - ,0xE5BE ,0x657A //CJK UNIFIED IDEOGRAPH - ,0xE5BF ,0x6579 //CJK UNIFIED IDEOGRAPH - ,0xE5C0 ,0x657B //CJK UNIFIED IDEOGRAPH - ,0xE5C1 ,0x65B2 //CJK UNIFIED IDEOGRAPH - ,0xE5C2 ,0x65B3 //CJK UNIFIED IDEOGRAPH - ,0xE5C3 ,0x66B5 //CJK UNIFIED IDEOGRAPH - ,0xE5C4 ,0x66B0 //CJK UNIFIED IDEOGRAPH - ,0xE5C5 ,0x66A9 //CJK UNIFIED IDEOGRAPH - ,0xE5C6 ,0x66B2 //CJK UNIFIED IDEOGRAPH - ,0xE5C7 ,0x66B7 //CJK UNIFIED IDEOGRAPH - ,0xE5C8 ,0x66AA //CJK UNIFIED IDEOGRAPH - ,0xE5C9 ,0x66AF //CJK UNIFIED IDEOGRAPH - ,0xE5CA ,0x6A00 //CJK UNIFIED IDEOGRAPH - ,0xE5CB ,0x6A06 //CJK UNIFIED IDEOGRAPH - ,0xE5CC ,0x6A17 //CJK UNIFIED IDEOGRAPH - ,0xE5CD ,0x69E5 //CJK UNIFIED IDEOGRAPH - ,0xE5CE ,0x69F8 //CJK UNIFIED IDEOGRAPH - ,0xE5CF ,0x6A15 //CJK UNIFIED IDEOGRAPH - ,0xE5D0 ,0x69F1 //CJK UNIFIED IDEOGRAPH - ,0xE5D1 ,0x69E4 //CJK UNIFIED IDEOGRAPH - ,0xE5D2 ,0x6A20 //CJK UNIFIED IDEOGRAPH - ,0xE5D3 ,0x69FF //CJK UNIFIED IDEOGRAPH - ,0xE5D4 ,0x69EC //CJK UNIFIED IDEOGRAPH - ,0xE5D5 ,0x69E2 //CJK UNIFIED IDEOGRAPH - ,0xE5D6 ,0x6A1B //CJK UNIFIED IDEOGRAPH - ,0xE5D7 ,0x6A1D //CJK UNIFIED IDEOGRAPH - ,0xE5D8 ,0x69FE //CJK UNIFIED IDEOGRAPH - ,0xE5D9 ,0x6A27 //CJK UNIFIED IDEOGRAPH - ,0xE5DA ,0x69F2 //CJK UNIFIED IDEOGRAPH - ,0xE5DB ,0x69EE //CJK UNIFIED IDEOGRAPH - ,0xE5DC ,0x6A14 //CJK UNIFIED IDEOGRAPH - ,0xE5DD ,0x69F7 //CJK UNIFIED IDEOGRAPH - ,0xE5DE ,0x69E7 //CJK UNIFIED IDEOGRAPH - ,0xE5DF ,0x6A40 //CJK UNIFIED IDEOGRAPH - ,0xE5E0 ,0x6A08 //CJK UNIFIED IDEOGRAPH - ,0xE5E1 ,0x69E6 //CJK UNIFIED IDEOGRAPH - ,0xE5E2 ,0x69FB //CJK UNIFIED IDEOGRAPH - ,0xE5E3 ,0x6A0D //CJK UNIFIED IDEOGRAPH - ,0xE5E4 ,0x69FC //CJK UNIFIED IDEOGRAPH - ,0xE5E5 ,0x69EB //CJK UNIFIED IDEOGRAPH - ,0xE5E6 ,0x6A09 //CJK UNIFIED IDEOGRAPH - ,0xE5E7 ,0x6A04 //CJK UNIFIED IDEOGRAPH - ,0xE5E8 ,0x6A18 //CJK UNIFIED IDEOGRAPH - ,0xE5E9 ,0x6A25 //CJK UNIFIED IDEOGRAPH - ,0xE5EA ,0x6A0F //CJK UNIFIED IDEOGRAPH - ,0xE5EB ,0x69F6 //CJK UNIFIED IDEOGRAPH - ,0xE5EC ,0x6A26 //CJK UNIFIED IDEOGRAPH - ,0xE5ED ,0x6A07 //CJK UNIFIED IDEOGRAPH - ,0xE5EE ,0x69F4 //CJK UNIFIED IDEOGRAPH - ,0xE5EF ,0x6A16 //CJK UNIFIED IDEOGRAPH - ,0xE5F0 ,0x6B51 //CJK UNIFIED IDEOGRAPH - ,0xE5F1 ,0x6BA5 //CJK UNIFIED IDEOGRAPH - ,0xE5F2 ,0x6BA3 //CJK UNIFIED IDEOGRAPH - ,0xE5F3 ,0x6BA2 //CJK UNIFIED IDEOGRAPH - ,0xE5F4 ,0x6BA6 //CJK UNIFIED IDEOGRAPH - ,0xE5F5 ,0x6C01 //CJK UNIFIED IDEOGRAPH - ,0xE5F6 ,0x6C00 //CJK UNIFIED IDEOGRAPH - ,0xE5F7 ,0x6BFF //CJK UNIFIED IDEOGRAPH - ,0xE5F8 ,0x6C02 //CJK UNIFIED IDEOGRAPH - ,0xE5F9 ,0x6F41 //CJK UNIFIED IDEOGRAPH - ,0xE5FA ,0x6F26 //CJK UNIFIED IDEOGRAPH - ,0xE5FB ,0x6F7E //CJK UNIFIED IDEOGRAPH - ,0xE5FC ,0x6F87 //CJK UNIFIED IDEOGRAPH - ,0xE5FD ,0x6FC6 //CJK UNIFIED IDEOGRAPH - ,0xE5FE ,0x6F92 //CJK UNIFIED IDEOGRAPH - ,0xE640 ,0x6F8D //CJK UNIFIED IDEOGRAPH - ,0xE641 ,0x6F89 //CJK UNIFIED IDEOGRAPH - ,0xE642 ,0x6F8C //CJK UNIFIED IDEOGRAPH - ,0xE643 ,0x6F62 //CJK UNIFIED IDEOGRAPH - ,0xE644 ,0x6F4F //CJK UNIFIED IDEOGRAPH - ,0xE645 ,0x6F85 //CJK UNIFIED IDEOGRAPH - ,0xE646 ,0x6F5A //CJK UNIFIED IDEOGRAPH - ,0xE647 ,0x6F96 //CJK UNIFIED IDEOGRAPH - ,0xE648 ,0x6F76 //CJK UNIFIED IDEOGRAPH - ,0xE649 ,0x6F6C //CJK UNIFIED IDEOGRAPH - ,0xE64A ,0x6F82 //CJK UNIFIED IDEOGRAPH - ,0xE64B ,0x6F55 //CJK UNIFIED IDEOGRAPH - ,0xE64C ,0x6F72 //CJK UNIFIED IDEOGRAPH - ,0xE64D ,0x6F52 //CJK UNIFIED IDEOGRAPH - ,0xE64E ,0x6F50 //CJK UNIFIED IDEOGRAPH - ,0xE64F ,0x6F57 //CJK UNIFIED IDEOGRAPH - ,0xE650 ,0x6F94 //CJK UNIFIED IDEOGRAPH - ,0xE651 ,0x6F93 //CJK UNIFIED IDEOGRAPH - ,0xE652 ,0x6F5D //CJK UNIFIED IDEOGRAPH - ,0xE653 ,0x6F00 //CJK UNIFIED IDEOGRAPH - ,0xE654 ,0x6F61 //CJK UNIFIED IDEOGRAPH - ,0xE655 ,0x6F6B //CJK UNIFIED IDEOGRAPH - ,0xE656 ,0x6F7D //CJK UNIFIED IDEOGRAPH - ,0xE657 ,0x6F67 //CJK UNIFIED IDEOGRAPH - ,0xE658 ,0x6F90 //CJK UNIFIED IDEOGRAPH - ,0xE659 ,0x6F53 //CJK UNIFIED IDEOGRAPH - ,0xE65A ,0x6F8B //CJK UNIFIED IDEOGRAPH - ,0xE65B ,0x6F69 //CJK UNIFIED IDEOGRAPH - ,0xE65C ,0x6F7F //CJK UNIFIED IDEOGRAPH - ,0xE65D ,0x6F95 //CJK UNIFIED IDEOGRAPH - ,0xE65E ,0x6F63 //CJK UNIFIED IDEOGRAPH - ,0xE65F ,0x6F77 //CJK UNIFIED IDEOGRAPH - ,0xE660 ,0x6F6A //CJK UNIFIED IDEOGRAPH - ,0xE661 ,0x6F7B //CJK UNIFIED IDEOGRAPH - ,0xE662 ,0x71B2 //CJK UNIFIED IDEOGRAPH - ,0xE663 ,0x71AF //CJK UNIFIED IDEOGRAPH - ,0xE664 ,0x719B //CJK UNIFIED IDEOGRAPH - ,0xE665 ,0x71B0 //CJK UNIFIED IDEOGRAPH - ,0xE666 ,0x71A0 //CJK UNIFIED IDEOGRAPH - ,0xE667 ,0x719A //CJK UNIFIED IDEOGRAPH - ,0xE668 ,0x71A9 //CJK UNIFIED IDEOGRAPH - ,0xE669 ,0x71B5 //CJK UNIFIED IDEOGRAPH - ,0xE66A ,0x719D //CJK UNIFIED IDEOGRAPH - ,0xE66B ,0x71A5 //CJK UNIFIED IDEOGRAPH - ,0xE66C ,0x719E //CJK UNIFIED IDEOGRAPH - ,0xE66D ,0x71A4 //CJK UNIFIED IDEOGRAPH - ,0xE66E ,0x71A1 //CJK UNIFIED IDEOGRAPH - ,0xE66F ,0x71AA //CJK UNIFIED IDEOGRAPH - ,0xE670 ,0x719C //CJK UNIFIED IDEOGRAPH - ,0xE671 ,0x71A7 //CJK UNIFIED IDEOGRAPH - ,0xE672 ,0x71B3 //CJK UNIFIED IDEOGRAPH - ,0xE673 ,0x7298 //CJK UNIFIED IDEOGRAPH - ,0xE674 ,0x729A //CJK UNIFIED IDEOGRAPH - ,0xE675 ,0x7358 //CJK UNIFIED IDEOGRAPH - ,0xE676 ,0x7352 //CJK UNIFIED IDEOGRAPH - ,0xE677 ,0x735E //CJK UNIFIED IDEOGRAPH - ,0xE678 ,0x735F //CJK UNIFIED IDEOGRAPH - ,0xE679 ,0x7360 //CJK UNIFIED IDEOGRAPH - ,0xE67A ,0x735D //CJK UNIFIED IDEOGRAPH - ,0xE67B ,0x735B //CJK UNIFIED IDEOGRAPH - ,0xE67C ,0x7361 //CJK UNIFIED IDEOGRAPH - ,0xE67D ,0x735A //CJK UNIFIED IDEOGRAPH - ,0xE67E ,0x7359 //CJK UNIFIED IDEOGRAPH - ,0xE6A1 ,0x7362 //CJK UNIFIED IDEOGRAPH - ,0xE6A2 ,0x7487 //CJK UNIFIED IDEOGRAPH - ,0xE6A3 ,0x7489 //CJK UNIFIED IDEOGRAPH - ,0xE6A4 ,0x748A //CJK UNIFIED IDEOGRAPH - ,0xE6A5 ,0x7486 //CJK UNIFIED IDEOGRAPH - ,0xE6A6 ,0x7481 //CJK UNIFIED IDEOGRAPH - ,0xE6A7 ,0x747D //CJK UNIFIED IDEOGRAPH - ,0xE6A8 ,0x7485 //CJK UNIFIED IDEOGRAPH - ,0xE6A9 ,0x7488 //CJK UNIFIED IDEOGRAPH - ,0xE6AA ,0x747C //CJK UNIFIED IDEOGRAPH - ,0xE6AB ,0x7479 //CJK UNIFIED IDEOGRAPH - ,0xE6AC ,0x7508 //CJK UNIFIED IDEOGRAPH - ,0xE6AD ,0x7507 //CJK UNIFIED IDEOGRAPH - ,0xE6AE ,0x757E //CJK UNIFIED IDEOGRAPH - ,0xE6AF ,0x7625 //CJK UNIFIED IDEOGRAPH - ,0xE6B0 ,0x761E //CJK UNIFIED IDEOGRAPH - ,0xE6B1 ,0x7619 //CJK UNIFIED IDEOGRAPH - ,0xE6B2 ,0x761D //CJK UNIFIED IDEOGRAPH - ,0xE6B3 ,0x761C //CJK UNIFIED IDEOGRAPH - ,0xE6B4 ,0x7623 //CJK UNIFIED IDEOGRAPH - ,0xE6B5 ,0x761A //CJK UNIFIED IDEOGRAPH - ,0xE6B6 ,0x7628 //CJK UNIFIED IDEOGRAPH - ,0xE6B7 ,0x761B //CJK UNIFIED IDEOGRAPH - ,0xE6B8 ,0x769C //CJK UNIFIED IDEOGRAPH - ,0xE6B9 ,0x769D //CJK UNIFIED IDEOGRAPH - ,0xE6BA ,0x769E //CJK UNIFIED IDEOGRAPH - ,0xE6BB ,0x769B //CJK UNIFIED IDEOGRAPH - ,0xE6BC ,0x778D //CJK UNIFIED IDEOGRAPH - ,0xE6BD ,0x778F //CJK UNIFIED IDEOGRAPH - ,0xE6BE ,0x7789 //CJK UNIFIED IDEOGRAPH - ,0xE6BF ,0x7788 //CJK UNIFIED IDEOGRAPH - ,0xE6C0 ,0x78CD //CJK UNIFIED IDEOGRAPH - ,0xE6C1 ,0x78BB //CJK UNIFIED IDEOGRAPH - ,0xE6C2 ,0x78CF //CJK UNIFIED IDEOGRAPH - ,0xE6C3 ,0x78CC //CJK UNIFIED IDEOGRAPH - ,0xE6C4 ,0x78D1 //CJK UNIFIED IDEOGRAPH - ,0xE6C5 ,0x78CE //CJK UNIFIED IDEOGRAPH - ,0xE6C6 ,0x78D4 //CJK UNIFIED IDEOGRAPH - ,0xE6C7 ,0x78C8 //CJK UNIFIED IDEOGRAPH - ,0xE6C8 ,0x78C3 //CJK UNIFIED IDEOGRAPH - ,0xE6C9 ,0x78C4 //CJK UNIFIED IDEOGRAPH - ,0xE6CA ,0x78C9 //CJK UNIFIED IDEOGRAPH - ,0xE6CB ,0x799A //CJK UNIFIED IDEOGRAPH - ,0xE6CC ,0x79A1 //CJK UNIFIED IDEOGRAPH - ,0xE6CD ,0x79A0 //CJK UNIFIED IDEOGRAPH - ,0xE6CE ,0x799C //CJK UNIFIED IDEOGRAPH - ,0xE6CF ,0x79A2 //CJK UNIFIED IDEOGRAPH - ,0xE6D0 ,0x799B //CJK UNIFIED IDEOGRAPH - ,0xE6D1 ,0x6B76 //CJK UNIFIED IDEOGRAPH - ,0xE6D2 ,0x7A39 //CJK UNIFIED IDEOGRAPH - ,0xE6D3 ,0x7AB2 //CJK UNIFIED IDEOGRAPH - ,0xE6D4 ,0x7AB4 //CJK UNIFIED IDEOGRAPH - ,0xE6D5 ,0x7AB3 //CJK UNIFIED IDEOGRAPH - ,0xE6D6 ,0x7BB7 //CJK UNIFIED IDEOGRAPH - ,0xE6D7 ,0x7BCB //CJK UNIFIED IDEOGRAPH - ,0xE6D8 ,0x7BBE //CJK UNIFIED IDEOGRAPH - ,0xE6D9 ,0x7BAC //CJK UNIFIED IDEOGRAPH - ,0xE6DA ,0x7BCE //CJK UNIFIED IDEOGRAPH - ,0xE6DB ,0x7BAF //CJK UNIFIED IDEOGRAPH - ,0xE6DC ,0x7BB9 //CJK UNIFIED IDEOGRAPH - ,0xE6DD ,0x7BCA //CJK UNIFIED IDEOGRAPH - ,0xE6DE ,0x7BB5 //CJK UNIFIED IDEOGRAPH - ,0xE6DF ,0x7CC5 //CJK UNIFIED IDEOGRAPH - ,0xE6E0 ,0x7CC8 //CJK UNIFIED IDEOGRAPH - ,0xE6E1 ,0x7CCC //CJK UNIFIED IDEOGRAPH - ,0xE6E2 ,0x7CCB //CJK UNIFIED IDEOGRAPH - ,0xE6E3 ,0x7DF7 //CJK UNIFIED IDEOGRAPH - ,0xE6E4 ,0x7DDB //CJK UNIFIED IDEOGRAPH - ,0xE6E5 ,0x7DEA //CJK UNIFIED IDEOGRAPH - ,0xE6E6 ,0x7DE7 //CJK UNIFIED IDEOGRAPH - ,0xE6E7 ,0x7DD7 //CJK UNIFIED IDEOGRAPH - ,0xE6E8 ,0x7DE1 //CJK UNIFIED IDEOGRAPH - ,0xE6E9 ,0x7E03 //CJK UNIFIED IDEOGRAPH - ,0xE6EA ,0x7DFA //CJK UNIFIED IDEOGRAPH - ,0xE6EB ,0x7DE6 //CJK UNIFIED IDEOGRAPH - ,0xE6EC ,0x7DF6 //CJK UNIFIED IDEOGRAPH - ,0xE6ED ,0x7DF1 //CJK UNIFIED IDEOGRAPH - ,0xE6EE ,0x7DF0 //CJK UNIFIED IDEOGRAPH - ,0xE6EF ,0x7DEE //CJK UNIFIED IDEOGRAPH - ,0xE6F0 ,0x7DDF //CJK UNIFIED IDEOGRAPH - ,0xE6F1 ,0x7F76 //CJK UNIFIED IDEOGRAPH - ,0xE6F2 ,0x7FAC //CJK UNIFIED IDEOGRAPH - ,0xE6F3 ,0x7FB0 //CJK UNIFIED IDEOGRAPH - ,0xE6F4 ,0x7FAD //CJK UNIFIED IDEOGRAPH - ,0xE6F5 ,0x7FED //CJK UNIFIED IDEOGRAPH - ,0xE6F6 ,0x7FEB //CJK UNIFIED IDEOGRAPH - ,0xE6F7 ,0x7FEA //CJK UNIFIED IDEOGRAPH - ,0xE6F8 ,0x7FEC //CJK UNIFIED IDEOGRAPH - ,0xE6F9 ,0x7FE6 //CJK UNIFIED IDEOGRAPH - ,0xE6FA ,0x7FE8 //CJK UNIFIED IDEOGRAPH - ,0xE6FB ,0x8064 //CJK UNIFIED IDEOGRAPH - ,0xE6FC ,0x8067 //CJK UNIFIED IDEOGRAPH - ,0xE6FD ,0x81A3 //CJK UNIFIED IDEOGRAPH - ,0xE6FE ,0x819F //CJK UNIFIED IDEOGRAPH - ,0xE740 ,0x819E //CJK UNIFIED IDEOGRAPH - ,0xE741 ,0x8195 //CJK UNIFIED IDEOGRAPH - ,0xE742 ,0x81A2 //CJK UNIFIED IDEOGRAPH - ,0xE743 ,0x8199 //CJK UNIFIED IDEOGRAPH - ,0xE744 ,0x8197 //CJK UNIFIED IDEOGRAPH - ,0xE745 ,0x8216 //CJK UNIFIED IDEOGRAPH - ,0xE746 ,0x824F //CJK UNIFIED IDEOGRAPH - ,0xE747 ,0x8253 //CJK UNIFIED IDEOGRAPH - ,0xE748 ,0x8252 //CJK UNIFIED IDEOGRAPH - ,0xE749 ,0x8250 //CJK UNIFIED IDEOGRAPH - ,0xE74A ,0x824E //CJK UNIFIED IDEOGRAPH - ,0xE74B ,0x8251 //CJK UNIFIED IDEOGRAPH - ,0xE74C ,0x8524 //CJK UNIFIED IDEOGRAPH - ,0xE74D ,0x853B //CJK UNIFIED IDEOGRAPH - ,0xE74E ,0x850F //CJK UNIFIED IDEOGRAPH - ,0xE74F ,0x8500 //CJK UNIFIED IDEOGRAPH - ,0xE750 ,0x8529 //CJK UNIFIED IDEOGRAPH - ,0xE751 ,0x850E //CJK UNIFIED IDEOGRAPH - ,0xE752 ,0x8509 //CJK UNIFIED IDEOGRAPH - ,0xE753 ,0x850D //CJK UNIFIED IDEOGRAPH - ,0xE754 ,0x851F //CJK UNIFIED IDEOGRAPH - ,0xE755 ,0x850A //CJK UNIFIED IDEOGRAPH - ,0xE756 ,0x8527 //CJK UNIFIED IDEOGRAPH - ,0xE757 ,0x851C //CJK UNIFIED IDEOGRAPH - ,0xE758 ,0x84FB //CJK UNIFIED IDEOGRAPH - ,0xE759 ,0x852B //CJK UNIFIED IDEOGRAPH - ,0xE75A ,0x84FA //CJK UNIFIED IDEOGRAPH - ,0xE75B ,0x8508 //CJK UNIFIED IDEOGRAPH - ,0xE75C ,0x850C //CJK UNIFIED IDEOGRAPH - ,0xE75D ,0x84F4 //CJK UNIFIED IDEOGRAPH - ,0xE75E ,0x852A //CJK UNIFIED IDEOGRAPH - ,0xE75F ,0x84F2 //CJK UNIFIED IDEOGRAPH - ,0xE760 ,0x8515 //CJK UNIFIED IDEOGRAPH - ,0xE761 ,0x84F7 //CJK UNIFIED IDEOGRAPH - ,0xE762 ,0x84EB //CJK UNIFIED IDEOGRAPH - ,0xE763 ,0x84F3 //CJK UNIFIED IDEOGRAPH - ,0xE764 ,0x84FC //CJK UNIFIED IDEOGRAPH - ,0xE765 ,0x8512 //CJK UNIFIED IDEOGRAPH - ,0xE766 ,0x84EA //CJK UNIFIED IDEOGRAPH - ,0xE767 ,0x84E9 //CJK UNIFIED IDEOGRAPH - ,0xE768 ,0x8516 //CJK UNIFIED IDEOGRAPH - ,0xE769 ,0x84FE //CJK UNIFIED IDEOGRAPH - ,0xE76A ,0x8528 //CJK UNIFIED IDEOGRAPH - ,0xE76B ,0x851D //CJK UNIFIED IDEOGRAPH - ,0xE76C ,0x852E //CJK UNIFIED IDEOGRAPH - ,0xE76D ,0x8502 //CJK UNIFIED IDEOGRAPH - ,0xE76E ,0x84FD //CJK UNIFIED IDEOGRAPH - ,0xE76F ,0x851E //CJK UNIFIED IDEOGRAPH - ,0xE770 ,0x84F6 //CJK UNIFIED IDEOGRAPH - ,0xE771 ,0x8531 //CJK UNIFIED IDEOGRAPH - ,0xE772 ,0x8526 //CJK UNIFIED IDEOGRAPH - ,0xE773 ,0x84E7 //CJK UNIFIED IDEOGRAPH - ,0xE774 ,0x84E8 //CJK UNIFIED IDEOGRAPH - ,0xE775 ,0x84F0 //CJK UNIFIED IDEOGRAPH - ,0xE776 ,0x84EF //CJK UNIFIED IDEOGRAPH - ,0xE777 ,0x84F9 //CJK UNIFIED IDEOGRAPH - ,0xE778 ,0x8518 //CJK UNIFIED IDEOGRAPH - ,0xE779 ,0x8520 //CJK UNIFIED IDEOGRAPH - ,0xE77A ,0x8530 //CJK UNIFIED IDEOGRAPH - ,0xE77B ,0x850B //CJK UNIFIED IDEOGRAPH - ,0xE77C ,0x8519 //CJK UNIFIED IDEOGRAPH - ,0xE77D ,0x852F //CJK UNIFIED IDEOGRAPH - ,0xE77E ,0x8662 //CJK UNIFIED IDEOGRAPH - ,0xE7A1 ,0x8756 //CJK UNIFIED IDEOGRAPH - ,0xE7A2 ,0x8763 //CJK UNIFIED IDEOGRAPH - ,0xE7A3 ,0x8764 //CJK UNIFIED IDEOGRAPH - ,0xE7A4 ,0x8777 //CJK UNIFIED IDEOGRAPH - ,0xE7A5 ,0x87E1 //CJK UNIFIED IDEOGRAPH - ,0xE7A6 ,0x8773 //CJK UNIFIED IDEOGRAPH - ,0xE7A7 ,0x8758 //CJK UNIFIED IDEOGRAPH - ,0xE7A8 ,0x8754 //CJK UNIFIED IDEOGRAPH - ,0xE7A9 ,0x875B //CJK UNIFIED IDEOGRAPH - ,0xE7AA ,0x8752 //CJK UNIFIED IDEOGRAPH - ,0xE7AB ,0x8761 //CJK UNIFIED IDEOGRAPH - ,0xE7AC ,0x875A //CJK UNIFIED IDEOGRAPH - ,0xE7AD ,0x8751 //CJK UNIFIED IDEOGRAPH - ,0xE7AE ,0x875E //CJK UNIFIED IDEOGRAPH - ,0xE7AF ,0x876D //CJK UNIFIED IDEOGRAPH - ,0xE7B0 ,0x876A //CJK UNIFIED IDEOGRAPH - ,0xE7B1 ,0x8750 //CJK UNIFIED IDEOGRAPH - ,0xE7B2 ,0x874E //CJK UNIFIED IDEOGRAPH - ,0xE7B3 ,0x875F //CJK UNIFIED IDEOGRAPH - ,0xE7B4 ,0x875D //CJK UNIFIED IDEOGRAPH - ,0xE7B5 ,0x876F //CJK UNIFIED IDEOGRAPH - ,0xE7B6 ,0x876C //CJK UNIFIED IDEOGRAPH - ,0xE7B7 ,0x877A //CJK UNIFIED IDEOGRAPH - ,0xE7B8 ,0x876E //CJK UNIFIED IDEOGRAPH - ,0xE7B9 ,0x875C //CJK UNIFIED IDEOGRAPH - ,0xE7BA ,0x8765 //CJK UNIFIED IDEOGRAPH - ,0xE7BB ,0x874F //CJK UNIFIED IDEOGRAPH - ,0xE7BC ,0x877B //CJK UNIFIED IDEOGRAPH - ,0xE7BD ,0x8775 //CJK UNIFIED IDEOGRAPH - ,0xE7BE ,0x8762 //CJK UNIFIED IDEOGRAPH - ,0xE7BF ,0x8767 //CJK UNIFIED IDEOGRAPH - ,0xE7C0 ,0x8769 //CJK UNIFIED IDEOGRAPH - ,0xE7C1 ,0x885A //CJK UNIFIED IDEOGRAPH - ,0xE7C2 ,0x8905 //CJK UNIFIED IDEOGRAPH - ,0xE7C3 ,0x890C //CJK UNIFIED IDEOGRAPH - ,0xE7C4 ,0x8914 //CJK UNIFIED IDEOGRAPH - ,0xE7C5 ,0x890B //CJK UNIFIED IDEOGRAPH - ,0xE7C6 ,0x8917 //CJK UNIFIED IDEOGRAPH - ,0xE7C7 ,0x8918 //CJK UNIFIED IDEOGRAPH - ,0xE7C8 ,0x8919 //CJK UNIFIED IDEOGRAPH - ,0xE7C9 ,0x8906 //CJK UNIFIED IDEOGRAPH - ,0xE7CA ,0x8916 //CJK UNIFIED IDEOGRAPH - ,0xE7CB ,0x8911 //CJK UNIFIED IDEOGRAPH - ,0xE7CC ,0x890E //CJK UNIFIED IDEOGRAPH - ,0xE7CD ,0x8909 //CJK UNIFIED IDEOGRAPH - ,0xE7CE ,0x89A2 //CJK UNIFIED IDEOGRAPH - ,0xE7CF ,0x89A4 //CJK UNIFIED IDEOGRAPH - ,0xE7D0 ,0x89A3 //CJK UNIFIED IDEOGRAPH - ,0xE7D1 ,0x89ED //CJK UNIFIED IDEOGRAPH - ,0xE7D2 ,0x89F0 //CJK UNIFIED IDEOGRAPH - ,0xE7D3 ,0x89EC //CJK UNIFIED IDEOGRAPH - ,0xE7D4 ,0x8ACF //CJK UNIFIED IDEOGRAPH - ,0xE7D5 ,0x8AC6 //CJK UNIFIED IDEOGRAPH - ,0xE7D6 ,0x8AB8 //CJK UNIFIED IDEOGRAPH - ,0xE7D7 ,0x8AD3 //CJK UNIFIED IDEOGRAPH - ,0xE7D8 ,0x8AD1 //CJK UNIFIED IDEOGRAPH - ,0xE7D9 ,0x8AD4 //CJK UNIFIED IDEOGRAPH - ,0xE7DA ,0x8AD5 //CJK UNIFIED IDEOGRAPH - ,0xE7DB ,0x8ABB //CJK UNIFIED IDEOGRAPH - ,0xE7DC ,0x8AD7 //CJK UNIFIED IDEOGRAPH - ,0xE7DD ,0x8ABE //CJK UNIFIED IDEOGRAPH - ,0xE7DE ,0x8AC0 //CJK UNIFIED IDEOGRAPH - ,0xE7DF ,0x8AC5 //CJK UNIFIED IDEOGRAPH - ,0xE7E0 ,0x8AD8 //CJK UNIFIED IDEOGRAPH - ,0xE7E1 ,0x8AC3 //CJK UNIFIED IDEOGRAPH - ,0xE7E2 ,0x8ABA //CJK UNIFIED IDEOGRAPH - ,0xE7E3 ,0x8ABD //CJK UNIFIED IDEOGRAPH - ,0xE7E4 ,0x8AD9 //CJK UNIFIED IDEOGRAPH - ,0xE7E5 ,0x8C3E //CJK UNIFIED IDEOGRAPH - ,0xE7E6 ,0x8C4D //CJK UNIFIED IDEOGRAPH - ,0xE7E7 ,0x8C8F //CJK UNIFIED IDEOGRAPH - ,0xE7E8 ,0x8CE5 //CJK UNIFIED IDEOGRAPH - ,0xE7E9 ,0x8CDF //CJK UNIFIED IDEOGRAPH - ,0xE7EA ,0x8CD9 //CJK UNIFIED IDEOGRAPH - ,0xE7EB ,0x8CE8 //CJK UNIFIED IDEOGRAPH - ,0xE7EC ,0x8CDA //CJK UNIFIED IDEOGRAPH - ,0xE7ED ,0x8CDD //CJK UNIFIED IDEOGRAPH - ,0xE7EE ,0x8CE7 //CJK UNIFIED IDEOGRAPH - ,0xE7EF ,0x8DA0 //CJK UNIFIED IDEOGRAPH - ,0xE7F0 ,0x8D9C //CJK UNIFIED IDEOGRAPH - ,0xE7F1 ,0x8DA1 //CJK UNIFIED IDEOGRAPH - ,0xE7F2 ,0x8D9B //CJK UNIFIED IDEOGRAPH - ,0xE7F3 ,0x8E20 //CJK UNIFIED IDEOGRAPH - ,0xE7F4 ,0x8E23 //CJK UNIFIED IDEOGRAPH - ,0xE7F5 ,0x8E25 //CJK UNIFIED IDEOGRAPH - ,0xE7F6 ,0x8E24 //CJK UNIFIED IDEOGRAPH - ,0xE7F7 ,0x8E2E //CJK UNIFIED IDEOGRAPH - ,0xE7F8 ,0x8E15 //CJK UNIFIED IDEOGRAPH - ,0xE7F9 ,0x8E1B //CJK UNIFIED IDEOGRAPH - ,0xE7FA ,0x8E16 //CJK UNIFIED IDEOGRAPH - ,0xE7FB ,0x8E11 //CJK UNIFIED IDEOGRAPH - ,0xE7FC ,0x8E19 //CJK UNIFIED IDEOGRAPH - ,0xE7FD ,0x8E26 //CJK UNIFIED IDEOGRAPH - ,0xE7FE ,0x8E27 //CJK UNIFIED IDEOGRAPH - ,0xE840 ,0x8E14 //CJK UNIFIED IDEOGRAPH - ,0xE841 ,0x8E12 //CJK UNIFIED IDEOGRAPH - ,0xE842 ,0x8E18 //CJK UNIFIED IDEOGRAPH - ,0xE843 ,0x8E13 //CJK UNIFIED IDEOGRAPH - ,0xE844 ,0x8E1C //CJK UNIFIED IDEOGRAPH - ,0xE845 ,0x8E17 //CJK UNIFIED IDEOGRAPH - ,0xE846 ,0x8E1A //CJK UNIFIED IDEOGRAPH - ,0xE847 ,0x8F2C //CJK UNIFIED IDEOGRAPH - ,0xE848 ,0x8F24 //CJK UNIFIED IDEOGRAPH - ,0xE849 ,0x8F18 //CJK UNIFIED IDEOGRAPH - ,0xE84A ,0x8F1A //CJK UNIFIED IDEOGRAPH - ,0xE84B ,0x8F20 //CJK UNIFIED IDEOGRAPH - ,0xE84C ,0x8F23 //CJK UNIFIED IDEOGRAPH - ,0xE84D ,0x8F16 //CJK UNIFIED IDEOGRAPH - ,0xE84E ,0x8F17 //CJK UNIFIED IDEOGRAPH - ,0xE84F ,0x9073 //CJK UNIFIED IDEOGRAPH - ,0xE850 ,0x9070 //CJK UNIFIED IDEOGRAPH - ,0xE851 ,0x906F //CJK UNIFIED IDEOGRAPH - ,0xE852 ,0x9067 //CJK UNIFIED IDEOGRAPH - ,0xE853 ,0x906B //CJK UNIFIED IDEOGRAPH - ,0xE854 ,0x912F //CJK UNIFIED IDEOGRAPH - ,0xE855 ,0x912B //CJK UNIFIED IDEOGRAPH - ,0xE856 ,0x9129 //CJK UNIFIED IDEOGRAPH - ,0xE857 ,0x912A //CJK UNIFIED IDEOGRAPH - ,0xE858 ,0x9132 //CJK UNIFIED IDEOGRAPH - ,0xE859 ,0x9126 //CJK UNIFIED IDEOGRAPH - ,0xE85A ,0x912E //CJK UNIFIED IDEOGRAPH - ,0xE85B ,0x9185 //CJK UNIFIED IDEOGRAPH - ,0xE85C ,0x9186 //CJK UNIFIED IDEOGRAPH - ,0xE85D ,0x918A //CJK UNIFIED IDEOGRAPH - ,0xE85E ,0x9181 //CJK UNIFIED IDEOGRAPH - ,0xE85F ,0x9182 //CJK UNIFIED IDEOGRAPH - ,0xE860 ,0x9184 //CJK UNIFIED IDEOGRAPH - ,0xE861 ,0x9180 //CJK UNIFIED IDEOGRAPH - ,0xE862 ,0x92D0 //CJK UNIFIED IDEOGRAPH - ,0xE863 ,0x92C3 //CJK UNIFIED IDEOGRAPH - ,0xE864 ,0x92C4 //CJK UNIFIED IDEOGRAPH - ,0xE865 ,0x92C0 //CJK UNIFIED IDEOGRAPH - ,0xE866 ,0x92D9 //CJK UNIFIED IDEOGRAPH - ,0xE867 ,0x92B6 //CJK UNIFIED IDEOGRAPH - ,0xE868 ,0x92CF //CJK UNIFIED IDEOGRAPH - ,0xE869 ,0x92F1 //CJK UNIFIED IDEOGRAPH - ,0xE86A ,0x92DF //CJK UNIFIED IDEOGRAPH - ,0xE86B ,0x92D8 //CJK UNIFIED IDEOGRAPH - ,0xE86C ,0x92E9 //CJK UNIFIED IDEOGRAPH - ,0xE86D ,0x92D7 //CJK UNIFIED IDEOGRAPH - ,0xE86E ,0x92DD //CJK UNIFIED IDEOGRAPH - ,0xE86F ,0x92CC //CJK UNIFIED IDEOGRAPH - ,0xE870 ,0x92EF //CJK UNIFIED IDEOGRAPH - ,0xE871 ,0x92C2 //CJK UNIFIED IDEOGRAPH - ,0xE872 ,0x92E8 //CJK UNIFIED IDEOGRAPH - ,0xE873 ,0x92CA //CJK UNIFIED IDEOGRAPH - ,0xE874 ,0x92C8 //CJK UNIFIED IDEOGRAPH - ,0xE875 ,0x92CE //CJK UNIFIED IDEOGRAPH - ,0xE876 ,0x92E6 //CJK UNIFIED IDEOGRAPH - ,0xE877 ,0x92CD //CJK UNIFIED IDEOGRAPH - ,0xE878 ,0x92D5 //CJK UNIFIED IDEOGRAPH - ,0xE879 ,0x92C9 //CJK UNIFIED IDEOGRAPH - ,0xE87A ,0x92E0 //CJK UNIFIED IDEOGRAPH - ,0xE87B ,0x92DE //CJK UNIFIED IDEOGRAPH - ,0xE87C ,0x92E7 //CJK UNIFIED IDEOGRAPH - ,0xE87D ,0x92D1 //CJK UNIFIED IDEOGRAPH - ,0xE87E ,0x92D3 //CJK UNIFIED IDEOGRAPH - ,0xE8A1 ,0x92B5 //CJK UNIFIED IDEOGRAPH - ,0xE8A2 ,0x92E1 //CJK UNIFIED IDEOGRAPH - ,0xE8A3 ,0x92C6 //CJK UNIFIED IDEOGRAPH - ,0xE8A4 ,0x92B4 //CJK UNIFIED IDEOGRAPH - ,0xE8A5 ,0x957C //CJK UNIFIED IDEOGRAPH - ,0xE8A6 ,0x95AC //CJK UNIFIED IDEOGRAPH - ,0xE8A7 ,0x95AB //CJK UNIFIED IDEOGRAPH - ,0xE8A8 ,0x95AE //CJK UNIFIED IDEOGRAPH - ,0xE8A9 ,0x95B0 //CJK UNIFIED IDEOGRAPH - ,0xE8AA ,0x96A4 //CJK UNIFIED IDEOGRAPH - ,0xE8AB ,0x96A2 //CJK UNIFIED IDEOGRAPH - ,0xE8AC ,0x96D3 //CJK UNIFIED IDEOGRAPH - ,0xE8AD ,0x9705 //CJK UNIFIED IDEOGRAPH - ,0xE8AE ,0x9708 //CJK UNIFIED IDEOGRAPH - ,0xE8AF ,0x9702 //CJK UNIFIED IDEOGRAPH - ,0xE8B0 ,0x975A //CJK UNIFIED IDEOGRAPH - ,0xE8B1 ,0x978A //CJK UNIFIED IDEOGRAPH - ,0xE8B2 ,0x978E //CJK UNIFIED IDEOGRAPH - ,0xE8B3 ,0x9788 //CJK UNIFIED IDEOGRAPH - ,0xE8B4 ,0x97D0 //CJK UNIFIED IDEOGRAPH - ,0xE8B5 ,0x97CF //CJK UNIFIED IDEOGRAPH - ,0xE8B6 ,0x981E //CJK UNIFIED IDEOGRAPH - ,0xE8B7 ,0x981D //CJK UNIFIED IDEOGRAPH - ,0xE8B8 ,0x9826 //CJK UNIFIED IDEOGRAPH - ,0xE8B9 ,0x9829 //CJK UNIFIED IDEOGRAPH - ,0xE8BA ,0x9828 //CJK UNIFIED IDEOGRAPH - ,0xE8BB ,0x9820 //CJK UNIFIED IDEOGRAPH - ,0xE8BC ,0x981B //CJK UNIFIED IDEOGRAPH - ,0xE8BD ,0x9827 //CJK UNIFIED IDEOGRAPH - ,0xE8BE ,0x98B2 //CJK UNIFIED IDEOGRAPH - ,0xE8BF ,0x9908 //CJK UNIFIED IDEOGRAPH - ,0xE8C0 ,0x98FA //CJK UNIFIED IDEOGRAPH - ,0xE8C1 ,0x9911 //CJK UNIFIED IDEOGRAPH - ,0xE8C2 ,0x9914 //CJK UNIFIED IDEOGRAPH - ,0xE8C3 ,0x9916 //CJK UNIFIED IDEOGRAPH - ,0xE8C4 ,0x9917 //CJK UNIFIED IDEOGRAPH - ,0xE8C5 ,0x9915 //CJK UNIFIED IDEOGRAPH - ,0xE8C6 ,0x99DC //CJK UNIFIED IDEOGRAPH - ,0xE8C7 ,0x99CD //CJK UNIFIED IDEOGRAPH - ,0xE8C8 ,0x99CF //CJK UNIFIED IDEOGRAPH - ,0xE8C9 ,0x99D3 //CJK UNIFIED IDEOGRAPH - ,0xE8CA ,0x99D4 //CJK UNIFIED IDEOGRAPH - ,0xE8CB ,0x99CE //CJK UNIFIED IDEOGRAPH - ,0xE8CC ,0x99C9 //CJK UNIFIED IDEOGRAPH - ,0xE8CD ,0x99D6 //CJK UNIFIED IDEOGRAPH - ,0xE8CE ,0x99D8 //CJK UNIFIED IDEOGRAPH - ,0xE8CF ,0x99CB //CJK UNIFIED IDEOGRAPH - ,0xE8D0 ,0x99D7 //CJK UNIFIED IDEOGRAPH - ,0xE8D1 ,0x99CC //CJK UNIFIED IDEOGRAPH - ,0xE8D2 ,0x9AB3 //CJK UNIFIED IDEOGRAPH - ,0xE8D3 ,0x9AEC //CJK UNIFIED IDEOGRAPH - ,0xE8D4 ,0x9AEB //CJK UNIFIED IDEOGRAPH - ,0xE8D5 ,0x9AF3 //CJK UNIFIED IDEOGRAPH - ,0xE8D6 ,0x9AF2 //CJK UNIFIED IDEOGRAPH - ,0xE8D7 ,0x9AF1 //CJK UNIFIED IDEOGRAPH - ,0xE8D8 ,0x9B46 //CJK UNIFIED IDEOGRAPH - ,0xE8D9 ,0x9B43 //CJK UNIFIED IDEOGRAPH - ,0xE8DA ,0x9B67 //CJK UNIFIED IDEOGRAPH - ,0xE8DB ,0x9B74 //CJK UNIFIED IDEOGRAPH - ,0xE8DC ,0x9B71 //CJK UNIFIED IDEOGRAPH - ,0xE8DD ,0x9B66 //CJK UNIFIED IDEOGRAPH - ,0xE8DE ,0x9B76 //CJK UNIFIED IDEOGRAPH - ,0xE8DF ,0x9B75 //CJK UNIFIED IDEOGRAPH - ,0xE8E0 ,0x9B70 //CJK UNIFIED IDEOGRAPH - ,0xE8E1 ,0x9B68 //CJK UNIFIED IDEOGRAPH - ,0xE8E2 ,0x9B64 //CJK UNIFIED IDEOGRAPH - ,0xE8E3 ,0x9B6C //CJK UNIFIED IDEOGRAPH - ,0xE8E4 ,0x9CFC //CJK UNIFIED IDEOGRAPH - ,0xE8E5 ,0x9CFA //CJK UNIFIED IDEOGRAPH - ,0xE8E6 ,0x9CFD //CJK UNIFIED IDEOGRAPH - ,0xE8E7 ,0x9CFF //CJK UNIFIED IDEOGRAPH - ,0xE8E8 ,0x9CF7 //CJK UNIFIED IDEOGRAPH - ,0xE8E9 ,0x9D07 //CJK UNIFIED IDEOGRAPH - ,0xE8EA ,0x9D00 //CJK UNIFIED IDEOGRAPH - ,0xE8EB ,0x9CF9 //CJK UNIFIED IDEOGRAPH - ,0xE8EC ,0x9CFB //CJK UNIFIED IDEOGRAPH - ,0xE8ED ,0x9D08 //CJK UNIFIED IDEOGRAPH - ,0xE8EE ,0x9D05 //CJK UNIFIED IDEOGRAPH - ,0xE8EF ,0x9D04 //CJK UNIFIED IDEOGRAPH - ,0xE8F0 ,0x9E83 //CJK UNIFIED IDEOGRAPH - ,0xE8F1 ,0x9ED3 //CJK UNIFIED IDEOGRAPH - ,0xE8F2 ,0x9F0F //CJK UNIFIED IDEOGRAPH - ,0xE8F3 ,0x9F10 //CJK UNIFIED IDEOGRAPH - ,0xE8F4 ,0x511C //CJK UNIFIED IDEOGRAPH - ,0xE8F5 ,0x5113 //CJK UNIFIED IDEOGRAPH - ,0xE8F6 ,0x5117 //CJK UNIFIED IDEOGRAPH - ,0xE8F7 ,0x511A //CJK UNIFIED IDEOGRAPH - ,0xE8F8 ,0x5111 //CJK UNIFIED IDEOGRAPH - ,0xE8F9 ,0x51DE //CJK UNIFIED IDEOGRAPH - ,0xE8FA ,0x5334 //CJK UNIFIED IDEOGRAPH - ,0xE8FB ,0x53E1 //CJK UNIFIED IDEOGRAPH - ,0xE8FC ,0x5670 //CJK UNIFIED IDEOGRAPH - ,0xE8FD ,0x5660 //CJK UNIFIED IDEOGRAPH - ,0xE8FE ,0x566E //CJK UNIFIED IDEOGRAPH - ,0xE940 ,0x5673 //CJK UNIFIED IDEOGRAPH - ,0xE941 ,0x5666 //CJK UNIFIED IDEOGRAPH - ,0xE942 ,0x5663 //CJK UNIFIED IDEOGRAPH - ,0xE943 ,0x566D //CJK UNIFIED IDEOGRAPH - ,0xE944 ,0x5672 //CJK UNIFIED IDEOGRAPH - ,0xE945 ,0x565E //CJK UNIFIED IDEOGRAPH - ,0xE946 ,0x5677 //CJK UNIFIED IDEOGRAPH - ,0xE947 ,0x571C //CJK UNIFIED IDEOGRAPH - ,0xE948 ,0x571B //CJK UNIFIED IDEOGRAPH - ,0xE949 ,0x58C8 //CJK UNIFIED IDEOGRAPH - ,0xE94A ,0x58BD //CJK UNIFIED IDEOGRAPH - ,0xE94B ,0x58C9 //CJK UNIFIED IDEOGRAPH - ,0xE94C ,0x58BF //CJK UNIFIED IDEOGRAPH - ,0xE94D ,0x58BA //CJK UNIFIED IDEOGRAPH - ,0xE94E ,0x58C2 //CJK UNIFIED IDEOGRAPH - ,0xE94F ,0x58BC //CJK UNIFIED IDEOGRAPH - ,0xE950 ,0x58C6 //CJK UNIFIED IDEOGRAPH - ,0xE951 ,0x5B17 //CJK UNIFIED IDEOGRAPH - ,0xE952 ,0x5B19 //CJK UNIFIED IDEOGRAPH - ,0xE953 ,0x5B1B //CJK UNIFIED IDEOGRAPH - ,0xE954 ,0x5B21 //CJK UNIFIED IDEOGRAPH - ,0xE955 ,0x5B14 //CJK UNIFIED IDEOGRAPH - ,0xE956 ,0x5B13 //CJK UNIFIED IDEOGRAPH - ,0xE957 ,0x5B10 //CJK UNIFIED IDEOGRAPH - ,0xE958 ,0x5B16 //CJK UNIFIED IDEOGRAPH - ,0xE959 ,0x5B28 //CJK UNIFIED IDEOGRAPH - ,0xE95A ,0x5B1A //CJK UNIFIED IDEOGRAPH - ,0xE95B ,0x5B20 //CJK UNIFIED IDEOGRAPH - ,0xE95C ,0x5B1E //CJK UNIFIED IDEOGRAPH - ,0xE95D ,0x5BEF //CJK UNIFIED IDEOGRAPH - ,0xE95E ,0x5DAC //CJK UNIFIED IDEOGRAPH - ,0xE95F ,0x5DB1 //CJK UNIFIED IDEOGRAPH - ,0xE960 ,0x5DA9 //CJK UNIFIED IDEOGRAPH - ,0xE961 ,0x5DA7 //CJK UNIFIED IDEOGRAPH - ,0xE962 ,0x5DB5 //CJK UNIFIED IDEOGRAPH - ,0xE963 ,0x5DB0 //CJK UNIFIED IDEOGRAPH - ,0xE964 ,0x5DAE //CJK UNIFIED IDEOGRAPH - ,0xE965 ,0x5DAA //CJK UNIFIED IDEOGRAPH - ,0xE966 ,0x5DA8 //CJK UNIFIED IDEOGRAPH - ,0xE967 ,0x5DB2 //CJK UNIFIED IDEOGRAPH - ,0xE968 ,0x5DAD //CJK UNIFIED IDEOGRAPH - ,0xE969 ,0x5DAF //CJK UNIFIED IDEOGRAPH - ,0xE96A ,0x5DB4 //CJK UNIFIED IDEOGRAPH - ,0xE96B ,0x5E67 //CJK UNIFIED IDEOGRAPH - ,0xE96C ,0x5E68 //CJK UNIFIED IDEOGRAPH - ,0xE96D ,0x5E66 //CJK UNIFIED IDEOGRAPH - ,0xE96E ,0x5E6F //CJK UNIFIED IDEOGRAPH - ,0xE96F ,0x5EE9 //CJK UNIFIED IDEOGRAPH - ,0xE970 ,0x5EE7 //CJK UNIFIED IDEOGRAPH - ,0xE971 ,0x5EE6 //CJK UNIFIED IDEOGRAPH - ,0xE972 ,0x5EE8 //CJK UNIFIED IDEOGRAPH - ,0xE973 ,0x5EE5 //CJK UNIFIED IDEOGRAPH - ,0xE974 ,0x5F4B //CJK UNIFIED IDEOGRAPH - ,0xE975 ,0x5FBC //CJK UNIFIED IDEOGRAPH - ,0xE976 ,0x619D //CJK UNIFIED IDEOGRAPH - ,0xE977 ,0x61A8 //CJK UNIFIED IDEOGRAPH - ,0xE978 ,0x6196 //CJK UNIFIED IDEOGRAPH - ,0xE979 ,0x61C5 //CJK UNIFIED IDEOGRAPH - ,0xE97A ,0x61B4 //CJK UNIFIED IDEOGRAPH - ,0xE97B ,0x61C6 //CJK UNIFIED IDEOGRAPH - ,0xE97C ,0x61C1 //CJK UNIFIED IDEOGRAPH - ,0xE97D ,0x61CC //CJK UNIFIED IDEOGRAPH - ,0xE97E ,0x61BA //CJK UNIFIED IDEOGRAPH - ,0xE9A1 ,0x61BF //CJK UNIFIED IDEOGRAPH - ,0xE9A2 ,0x61B8 //CJK UNIFIED IDEOGRAPH - ,0xE9A3 ,0x618C //CJK UNIFIED IDEOGRAPH - ,0xE9A4 ,0x64D7 //CJK UNIFIED IDEOGRAPH - ,0xE9A5 ,0x64D6 //CJK UNIFIED IDEOGRAPH - ,0xE9A6 ,0x64D0 //CJK UNIFIED IDEOGRAPH - ,0xE9A7 ,0x64CF //CJK UNIFIED IDEOGRAPH - ,0xE9A8 ,0x64C9 //CJK UNIFIED IDEOGRAPH - ,0xE9A9 ,0x64BD //CJK UNIFIED IDEOGRAPH - ,0xE9AA ,0x6489 //CJK UNIFIED IDEOGRAPH - ,0xE9AB ,0x64C3 //CJK UNIFIED IDEOGRAPH - ,0xE9AC ,0x64DB //CJK UNIFIED IDEOGRAPH - ,0xE9AD ,0x64F3 //CJK UNIFIED IDEOGRAPH - ,0xE9AE ,0x64D9 //CJK UNIFIED IDEOGRAPH - ,0xE9AF ,0x6533 //CJK UNIFIED IDEOGRAPH - ,0xE9B0 ,0x657F //CJK UNIFIED IDEOGRAPH - ,0xE9B1 ,0x657C //CJK UNIFIED IDEOGRAPH - ,0xE9B2 ,0x65A2 //CJK UNIFIED IDEOGRAPH - ,0xE9B3 ,0x66C8 //CJK UNIFIED IDEOGRAPH - ,0xE9B4 ,0x66BE //CJK UNIFIED IDEOGRAPH - ,0xE9B5 ,0x66C0 //CJK UNIFIED IDEOGRAPH - ,0xE9B6 ,0x66CA //CJK UNIFIED IDEOGRAPH - ,0xE9B7 ,0x66CB //CJK UNIFIED IDEOGRAPH - ,0xE9B8 ,0x66CF //CJK UNIFIED IDEOGRAPH - ,0xE9B9 ,0x66BD //CJK UNIFIED IDEOGRAPH - ,0xE9BA ,0x66BB //CJK UNIFIED IDEOGRAPH - ,0xE9BB ,0x66BA //CJK UNIFIED IDEOGRAPH - ,0xE9BC ,0x66CC //CJK UNIFIED IDEOGRAPH - ,0xE9BD ,0x6723 //CJK UNIFIED IDEOGRAPH - ,0xE9BE ,0x6A34 //CJK UNIFIED IDEOGRAPH - ,0xE9BF ,0x6A66 //CJK UNIFIED IDEOGRAPH - ,0xE9C0 ,0x6A49 //CJK UNIFIED IDEOGRAPH - ,0xE9C1 ,0x6A67 //CJK UNIFIED IDEOGRAPH - ,0xE9C2 ,0x6A32 //CJK UNIFIED IDEOGRAPH - ,0xE9C3 ,0x6A68 //CJK UNIFIED IDEOGRAPH - ,0xE9C4 ,0x6A3E //CJK UNIFIED IDEOGRAPH - ,0xE9C5 ,0x6A5D //CJK UNIFIED IDEOGRAPH - ,0xE9C6 ,0x6A6D //CJK UNIFIED IDEOGRAPH - ,0xE9C7 ,0x6A76 //CJK UNIFIED IDEOGRAPH - ,0xE9C8 ,0x6A5B //CJK UNIFIED IDEOGRAPH - ,0xE9C9 ,0x6A51 //CJK UNIFIED IDEOGRAPH - ,0xE9CA ,0x6A28 //CJK UNIFIED IDEOGRAPH - ,0xE9CB ,0x6A5A //CJK UNIFIED IDEOGRAPH - ,0xE9CC ,0x6A3B //CJK UNIFIED IDEOGRAPH - ,0xE9CD ,0x6A3F //CJK UNIFIED IDEOGRAPH - ,0xE9CE ,0x6A41 //CJK UNIFIED IDEOGRAPH - ,0xE9CF ,0x6A6A //CJK UNIFIED IDEOGRAPH - ,0xE9D0 ,0x6A64 //CJK UNIFIED IDEOGRAPH - ,0xE9D1 ,0x6A50 //CJK UNIFIED IDEOGRAPH - ,0xE9D2 ,0x6A4F //CJK UNIFIED IDEOGRAPH - ,0xE9D3 ,0x6A54 //CJK UNIFIED IDEOGRAPH - ,0xE9D4 ,0x6A6F //CJK UNIFIED IDEOGRAPH - ,0xE9D5 ,0x6A69 //CJK UNIFIED IDEOGRAPH - ,0xE9D6 ,0x6A60 //CJK UNIFIED IDEOGRAPH - ,0xE9D7 ,0x6A3C //CJK UNIFIED IDEOGRAPH - ,0xE9D8 ,0x6A5E //CJK UNIFIED IDEOGRAPH - ,0xE9D9 ,0x6A56 //CJK UNIFIED IDEOGRAPH - ,0xE9DA ,0x6A55 //CJK UNIFIED IDEOGRAPH - ,0xE9DB ,0x6A4D //CJK UNIFIED IDEOGRAPH - ,0xE9DC ,0x6A4E //CJK UNIFIED IDEOGRAPH - ,0xE9DD ,0x6A46 //CJK UNIFIED IDEOGRAPH - ,0xE9DE ,0x6B55 //CJK UNIFIED IDEOGRAPH - ,0xE9DF ,0x6B54 //CJK UNIFIED IDEOGRAPH - ,0xE9E0 ,0x6B56 //CJK UNIFIED IDEOGRAPH - ,0xE9E1 ,0x6BA7 //CJK UNIFIED IDEOGRAPH - ,0xE9E2 ,0x6BAA //CJK UNIFIED IDEOGRAPH - ,0xE9E3 ,0x6BAB //CJK UNIFIED IDEOGRAPH - ,0xE9E4 ,0x6BC8 //CJK UNIFIED IDEOGRAPH - ,0xE9E5 ,0x6BC7 //CJK UNIFIED IDEOGRAPH - ,0xE9E6 ,0x6C04 //CJK UNIFIED IDEOGRAPH - ,0xE9E7 ,0x6C03 //CJK UNIFIED IDEOGRAPH - ,0xE9E8 ,0x6C06 //CJK UNIFIED IDEOGRAPH - ,0xE9E9 ,0x6FAD //CJK UNIFIED IDEOGRAPH - ,0xE9EA ,0x6FCB //CJK UNIFIED IDEOGRAPH - ,0xE9EB ,0x6FA3 //CJK UNIFIED IDEOGRAPH - ,0xE9EC ,0x6FC7 //CJK UNIFIED IDEOGRAPH - ,0xE9ED ,0x6FBC //CJK UNIFIED IDEOGRAPH - ,0xE9EE ,0x6FCE //CJK UNIFIED IDEOGRAPH - ,0xE9EF ,0x6FC8 //CJK UNIFIED IDEOGRAPH - ,0xE9F0 ,0x6F5E //CJK UNIFIED IDEOGRAPH - ,0xE9F1 ,0x6FC4 //CJK UNIFIED IDEOGRAPH - ,0xE9F2 ,0x6FBD //CJK UNIFIED IDEOGRAPH - ,0xE9F3 ,0x6F9E //CJK UNIFIED IDEOGRAPH - ,0xE9F4 ,0x6FCA //CJK UNIFIED IDEOGRAPH - ,0xE9F5 ,0x6FA8 //CJK UNIFIED IDEOGRAPH - ,0xE9F6 ,0x7004 //CJK UNIFIED IDEOGRAPH - ,0xE9F7 ,0x6FA5 //CJK UNIFIED IDEOGRAPH - ,0xE9F8 ,0x6FAE //CJK UNIFIED IDEOGRAPH - ,0xE9F9 ,0x6FBA //CJK UNIFIED IDEOGRAPH - ,0xE9FA ,0x6FAC //CJK UNIFIED IDEOGRAPH - ,0xE9FB ,0x6FAA //CJK UNIFIED IDEOGRAPH - ,0xE9FC ,0x6FCF //CJK UNIFIED IDEOGRAPH - ,0xE9FD ,0x6FBF //CJK UNIFIED IDEOGRAPH - ,0xE9FE ,0x6FB8 //CJK UNIFIED IDEOGRAPH - ,0xEA40 ,0x6FA2 //CJK UNIFIED IDEOGRAPH - ,0xEA41 ,0x6FC9 //CJK UNIFIED IDEOGRAPH - ,0xEA42 ,0x6FAB //CJK UNIFIED IDEOGRAPH - ,0xEA43 ,0x6FCD //CJK UNIFIED IDEOGRAPH - ,0xEA44 ,0x6FAF //CJK UNIFIED IDEOGRAPH - ,0xEA45 ,0x6FB2 //CJK UNIFIED IDEOGRAPH - ,0xEA46 ,0x6FB0 //CJK UNIFIED IDEOGRAPH - ,0xEA47 ,0x71C5 //CJK UNIFIED IDEOGRAPH - ,0xEA48 ,0x71C2 //CJK UNIFIED IDEOGRAPH - ,0xEA49 ,0x71BF //CJK UNIFIED IDEOGRAPH - ,0xEA4A ,0x71B8 //CJK UNIFIED IDEOGRAPH - ,0xEA4B ,0x71D6 //CJK UNIFIED IDEOGRAPH - ,0xEA4C ,0x71C0 //CJK UNIFIED IDEOGRAPH - ,0xEA4D ,0x71C1 //CJK UNIFIED IDEOGRAPH - ,0xEA4E ,0x71CB //CJK UNIFIED IDEOGRAPH - ,0xEA4F ,0x71D4 //CJK UNIFIED IDEOGRAPH - ,0xEA50 ,0x71CA //CJK UNIFIED IDEOGRAPH - ,0xEA51 ,0x71C7 //CJK UNIFIED IDEOGRAPH - ,0xEA52 ,0x71CF //CJK UNIFIED IDEOGRAPH - ,0xEA53 ,0x71BD //CJK UNIFIED IDEOGRAPH - ,0xEA54 ,0x71D8 //CJK UNIFIED IDEOGRAPH - ,0xEA55 ,0x71BC //CJK UNIFIED IDEOGRAPH - ,0xEA56 ,0x71C6 //CJK UNIFIED IDEOGRAPH - ,0xEA57 ,0x71DA //CJK UNIFIED IDEOGRAPH - ,0xEA58 ,0x71DB //CJK UNIFIED IDEOGRAPH - ,0xEA59 ,0x729D //CJK UNIFIED IDEOGRAPH - ,0xEA5A ,0x729E //CJK UNIFIED IDEOGRAPH - ,0xEA5B ,0x7369 //CJK UNIFIED IDEOGRAPH - ,0xEA5C ,0x7366 //CJK UNIFIED IDEOGRAPH - ,0xEA5D ,0x7367 //CJK UNIFIED IDEOGRAPH - ,0xEA5E ,0x736C //CJK UNIFIED IDEOGRAPH - ,0xEA5F ,0x7365 //CJK UNIFIED IDEOGRAPH - ,0xEA60 ,0x736B //CJK UNIFIED IDEOGRAPH - ,0xEA61 ,0x736A //CJK UNIFIED IDEOGRAPH - ,0xEA62 ,0x747F //CJK UNIFIED IDEOGRAPH - ,0xEA63 ,0x749A //CJK UNIFIED IDEOGRAPH - ,0xEA64 ,0x74A0 //CJK UNIFIED IDEOGRAPH - ,0xEA65 ,0x7494 //CJK UNIFIED IDEOGRAPH - ,0xEA66 ,0x7492 //CJK UNIFIED IDEOGRAPH - ,0xEA67 ,0x7495 //CJK UNIFIED IDEOGRAPH - ,0xEA68 ,0x74A1 //CJK UNIFIED IDEOGRAPH - ,0xEA69 ,0x750B //CJK UNIFIED IDEOGRAPH - ,0xEA6A ,0x7580 //CJK UNIFIED IDEOGRAPH - ,0xEA6B ,0x762F //CJK UNIFIED IDEOGRAPH - ,0xEA6C ,0x762D //CJK UNIFIED IDEOGRAPH - ,0xEA6D ,0x7631 //CJK UNIFIED IDEOGRAPH - ,0xEA6E ,0x763D //CJK UNIFIED IDEOGRAPH - ,0xEA6F ,0x7633 //CJK UNIFIED IDEOGRAPH - ,0xEA70 ,0x763C //CJK UNIFIED IDEOGRAPH - ,0xEA71 ,0x7635 //CJK UNIFIED IDEOGRAPH - ,0xEA72 ,0x7632 //CJK UNIFIED IDEOGRAPH - ,0xEA73 ,0x7630 //CJK UNIFIED IDEOGRAPH - ,0xEA74 ,0x76BB //CJK UNIFIED IDEOGRAPH - ,0xEA75 ,0x76E6 //CJK UNIFIED IDEOGRAPH - ,0xEA76 ,0x779A //CJK UNIFIED IDEOGRAPH - ,0xEA77 ,0x779D //CJK UNIFIED IDEOGRAPH - ,0xEA78 ,0x77A1 //CJK UNIFIED IDEOGRAPH - ,0xEA79 ,0x779C //CJK UNIFIED IDEOGRAPH - ,0xEA7A ,0x779B //CJK UNIFIED IDEOGRAPH - ,0xEA7B ,0x77A2 //CJK UNIFIED IDEOGRAPH - ,0xEA7C ,0x77A3 //CJK UNIFIED IDEOGRAPH - ,0xEA7D ,0x7795 //CJK UNIFIED IDEOGRAPH - ,0xEA7E ,0x7799 //CJK UNIFIED IDEOGRAPH - ,0xEAA1 ,0x7797 //CJK UNIFIED IDEOGRAPH - ,0xEAA2 ,0x78DD //CJK UNIFIED IDEOGRAPH - ,0xEAA3 ,0x78E9 //CJK UNIFIED IDEOGRAPH - ,0xEAA4 ,0x78E5 //CJK UNIFIED IDEOGRAPH - ,0xEAA5 ,0x78EA //CJK UNIFIED IDEOGRAPH - ,0xEAA6 ,0x78DE //CJK UNIFIED IDEOGRAPH - ,0xEAA7 ,0x78E3 //CJK UNIFIED IDEOGRAPH - ,0xEAA8 ,0x78DB //CJK UNIFIED IDEOGRAPH - ,0xEAA9 ,0x78E1 //CJK UNIFIED IDEOGRAPH - ,0xEAAA ,0x78E2 //CJK UNIFIED IDEOGRAPH - ,0xEAAB ,0x78ED //CJK UNIFIED IDEOGRAPH - ,0xEAAC ,0x78DF //CJK UNIFIED IDEOGRAPH - ,0xEAAD ,0x78E0 //CJK UNIFIED IDEOGRAPH - ,0xEAAE ,0x79A4 //CJK UNIFIED IDEOGRAPH - ,0xEAAF ,0x7A44 //CJK UNIFIED IDEOGRAPH - ,0xEAB0 ,0x7A48 //CJK UNIFIED IDEOGRAPH - ,0xEAB1 ,0x7A47 //CJK UNIFIED IDEOGRAPH - ,0xEAB2 ,0x7AB6 //CJK UNIFIED IDEOGRAPH - ,0xEAB3 ,0x7AB8 //CJK UNIFIED IDEOGRAPH - ,0xEAB4 ,0x7AB5 //CJK UNIFIED IDEOGRAPH - ,0xEAB5 ,0x7AB1 //CJK UNIFIED IDEOGRAPH - ,0xEAB6 ,0x7AB7 //CJK UNIFIED IDEOGRAPH - ,0xEAB7 ,0x7BDE //CJK UNIFIED IDEOGRAPH - ,0xEAB8 ,0x7BE3 //CJK UNIFIED IDEOGRAPH - ,0xEAB9 ,0x7BE7 //CJK UNIFIED IDEOGRAPH - ,0xEABA ,0x7BDD //CJK UNIFIED IDEOGRAPH - ,0xEABB ,0x7BD5 //CJK UNIFIED IDEOGRAPH - ,0xEABC ,0x7BE5 //CJK UNIFIED IDEOGRAPH - ,0xEABD ,0x7BDA //CJK UNIFIED IDEOGRAPH - ,0xEABE ,0x7BE8 //CJK UNIFIED IDEOGRAPH - ,0xEABF ,0x7BF9 //CJK UNIFIED IDEOGRAPH - ,0xEAC0 ,0x7BD4 //CJK UNIFIED IDEOGRAPH - ,0xEAC1 ,0x7BEA //CJK UNIFIED IDEOGRAPH - ,0xEAC2 ,0x7BE2 //CJK UNIFIED IDEOGRAPH - ,0xEAC3 ,0x7BDC //CJK UNIFIED IDEOGRAPH - ,0xEAC4 ,0x7BEB //CJK UNIFIED IDEOGRAPH - ,0xEAC5 ,0x7BD8 //CJK UNIFIED IDEOGRAPH - ,0xEAC6 ,0x7BDF //CJK UNIFIED IDEOGRAPH - ,0xEAC7 ,0x7CD2 //CJK UNIFIED IDEOGRAPH - ,0xEAC8 ,0x7CD4 //CJK UNIFIED IDEOGRAPH - ,0xEAC9 ,0x7CD7 //CJK UNIFIED IDEOGRAPH - ,0xEACA ,0x7CD0 //CJK UNIFIED IDEOGRAPH - ,0xEACB ,0x7CD1 //CJK UNIFIED IDEOGRAPH - ,0xEACC ,0x7E12 //CJK UNIFIED IDEOGRAPH - ,0xEACD ,0x7E21 //CJK UNIFIED IDEOGRAPH - ,0xEACE ,0x7E17 //CJK UNIFIED IDEOGRAPH - ,0xEACF ,0x7E0C //CJK UNIFIED IDEOGRAPH - ,0xEAD0 ,0x7E1F //CJK UNIFIED IDEOGRAPH - ,0xEAD1 ,0x7E20 //CJK UNIFIED IDEOGRAPH - ,0xEAD2 ,0x7E13 //CJK UNIFIED IDEOGRAPH - ,0xEAD3 ,0x7E0E //CJK UNIFIED IDEOGRAPH - ,0xEAD4 ,0x7E1C //CJK UNIFIED IDEOGRAPH - ,0xEAD5 ,0x7E15 //CJK UNIFIED IDEOGRAPH - ,0xEAD6 ,0x7E1A //CJK UNIFIED IDEOGRAPH - ,0xEAD7 ,0x7E22 //CJK UNIFIED IDEOGRAPH - ,0xEAD8 ,0x7E0B //CJK UNIFIED IDEOGRAPH - ,0xEAD9 ,0x7E0F //CJK UNIFIED IDEOGRAPH - ,0xEADA ,0x7E16 //CJK UNIFIED IDEOGRAPH - ,0xEADB ,0x7E0D //CJK UNIFIED IDEOGRAPH - ,0xEADC ,0x7E14 //CJK UNIFIED IDEOGRAPH - ,0xEADD ,0x7E25 //CJK UNIFIED IDEOGRAPH - ,0xEADE ,0x7E24 //CJK UNIFIED IDEOGRAPH - ,0xEADF ,0x7F43 //CJK UNIFIED IDEOGRAPH - ,0xEAE0 ,0x7F7B //CJK UNIFIED IDEOGRAPH - ,0xEAE1 ,0x7F7C //CJK UNIFIED IDEOGRAPH - ,0xEAE2 ,0x7F7A //CJK UNIFIED IDEOGRAPH - ,0xEAE3 ,0x7FB1 //CJK UNIFIED IDEOGRAPH - ,0xEAE4 ,0x7FEF //CJK UNIFIED IDEOGRAPH - ,0xEAE5 ,0x802A //CJK UNIFIED IDEOGRAPH - ,0xEAE6 ,0x8029 //CJK UNIFIED IDEOGRAPH - ,0xEAE7 ,0x806C //CJK UNIFIED IDEOGRAPH - ,0xEAE8 ,0x81B1 //CJK UNIFIED IDEOGRAPH - ,0xEAE9 ,0x81A6 //CJK UNIFIED IDEOGRAPH - ,0xEAEA ,0x81AE //CJK UNIFIED IDEOGRAPH - ,0xEAEB ,0x81B9 //CJK UNIFIED IDEOGRAPH - ,0xEAEC ,0x81B5 //CJK UNIFIED IDEOGRAPH - ,0xEAED ,0x81AB //CJK UNIFIED IDEOGRAPH - ,0xEAEE ,0x81B0 //CJK UNIFIED IDEOGRAPH - ,0xEAEF ,0x81AC //CJK UNIFIED IDEOGRAPH - ,0xEAF0 ,0x81B4 //CJK UNIFIED IDEOGRAPH - ,0xEAF1 ,0x81B2 //CJK UNIFIED IDEOGRAPH - ,0xEAF2 ,0x81B7 //CJK UNIFIED IDEOGRAPH - ,0xEAF3 ,0x81A7 //CJK UNIFIED IDEOGRAPH - ,0xEAF4 ,0x81F2 //CJK UNIFIED IDEOGRAPH - ,0xEAF5 ,0x8255 //CJK UNIFIED IDEOGRAPH - ,0xEAF6 ,0x8256 //CJK UNIFIED IDEOGRAPH - ,0xEAF7 ,0x8257 //CJK UNIFIED IDEOGRAPH - ,0xEAF8 ,0x8556 //CJK UNIFIED IDEOGRAPH - ,0xEAF9 ,0x8545 //CJK UNIFIED IDEOGRAPH - ,0xEAFA ,0x856B //CJK UNIFIED IDEOGRAPH - ,0xEAFB ,0x854D //CJK UNIFIED IDEOGRAPH - ,0xEAFC ,0x8553 //CJK UNIFIED IDEOGRAPH - ,0xEAFD ,0x8561 //CJK UNIFIED IDEOGRAPH - ,0xEAFE ,0x8558 //CJK UNIFIED IDEOGRAPH - ,0xEB40 ,0x8540 //CJK UNIFIED IDEOGRAPH - ,0xEB41 ,0x8546 //CJK UNIFIED IDEOGRAPH - ,0xEB42 ,0x8564 //CJK UNIFIED IDEOGRAPH - ,0xEB43 ,0x8541 //CJK UNIFIED IDEOGRAPH - ,0xEB44 ,0x8562 //CJK UNIFIED IDEOGRAPH - ,0xEB45 ,0x8544 //CJK UNIFIED IDEOGRAPH - ,0xEB46 ,0x8551 //CJK UNIFIED IDEOGRAPH - ,0xEB47 ,0x8547 //CJK UNIFIED IDEOGRAPH - ,0xEB48 ,0x8563 //CJK UNIFIED IDEOGRAPH - ,0xEB49 ,0x853E //CJK UNIFIED IDEOGRAPH - ,0xEB4A ,0x855B //CJK UNIFIED IDEOGRAPH - ,0xEB4B ,0x8571 //CJK UNIFIED IDEOGRAPH - ,0xEB4C ,0x854E //CJK UNIFIED IDEOGRAPH - ,0xEB4D ,0x856E //CJK UNIFIED IDEOGRAPH - ,0xEB4E ,0x8575 //CJK UNIFIED IDEOGRAPH - ,0xEB4F ,0x8555 //CJK UNIFIED IDEOGRAPH - ,0xEB50 ,0x8567 //CJK UNIFIED IDEOGRAPH - ,0xEB51 ,0x8560 //CJK UNIFIED IDEOGRAPH - ,0xEB52 ,0x858C //CJK UNIFIED IDEOGRAPH - ,0xEB53 ,0x8566 //CJK UNIFIED IDEOGRAPH - ,0xEB54 ,0x855D //CJK UNIFIED IDEOGRAPH - ,0xEB55 ,0x8554 //CJK UNIFIED IDEOGRAPH - ,0xEB56 ,0x8565 //CJK UNIFIED IDEOGRAPH - ,0xEB57 ,0x856C //CJK UNIFIED IDEOGRAPH - ,0xEB58 ,0x8663 //CJK UNIFIED IDEOGRAPH - ,0xEB59 ,0x8665 //CJK UNIFIED IDEOGRAPH - ,0xEB5A ,0x8664 //CJK UNIFIED IDEOGRAPH - ,0xEB5B ,0x879B //CJK UNIFIED IDEOGRAPH - ,0xEB5C ,0x878F //CJK UNIFIED IDEOGRAPH - ,0xEB5D ,0x8797 //CJK UNIFIED IDEOGRAPH - ,0xEB5E ,0x8793 //CJK UNIFIED IDEOGRAPH - ,0xEB5F ,0x8792 //CJK UNIFIED IDEOGRAPH - ,0xEB60 ,0x8788 //CJK UNIFIED IDEOGRAPH - ,0xEB61 ,0x8781 //CJK UNIFIED IDEOGRAPH - ,0xEB62 ,0x8796 //CJK UNIFIED IDEOGRAPH - ,0xEB63 ,0x8798 //CJK UNIFIED IDEOGRAPH - ,0xEB64 ,0x8779 //CJK UNIFIED IDEOGRAPH - ,0xEB65 ,0x8787 //CJK UNIFIED IDEOGRAPH - ,0xEB66 ,0x87A3 //CJK UNIFIED IDEOGRAPH - ,0xEB67 ,0x8785 //CJK UNIFIED IDEOGRAPH - ,0xEB68 ,0x8790 //CJK UNIFIED IDEOGRAPH - ,0xEB69 ,0x8791 //CJK UNIFIED IDEOGRAPH - ,0xEB6A ,0x879D //CJK UNIFIED IDEOGRAPH - ,0xEB6B ,0x8784 //CJK UNIFIED IDEOGRAPH - ,0xEB6C ,0x8794 //CJK UNIFIED IDEOGRAPH - ,0xEB6D ,0x879C //CJK UNIFIED IDEOGRAPH - ,0xEB6E ,0x879A //CJK UNIFIED IDEOGRAPH - ,0xEB6F ,0x8789 //CJK UNIFIED IDEOGRAPH - ,0xEB70 ,0x891E //CJK UNIFIED IDEOGRAPH - ,0xEB71 ,0x8926 //CJK UNIFIED IDEOGRAPH - ,0xEB72 ,0x8930 //CJK UNIFIED IDEOGRAPH - ,0xEB73 ,0x892D //CJK UNIFIED IDEOGRAPH - ,0xEB74 ,0x892E //CJK UNIFIED IDEOGRAPH - ,0xEB75 ,0x8927 //CJK UNIFIED IDEOGRAPH - ,0xEB76 ,0x8931 //CJK UNIFIED IDEOGRAPH - ,0xEB77 ,0x8922 //CJK UNIFIED IDEOGRAPH - ,0xEB78 ,0x8929 //CJK UNIFIED IDEOGRAPH - ,0xEB79 ,0x8923 //CJK UNIFIED IDEOGRAPH - ,0xEB7A ,0x892F //CJK UNIFIED IDEOGRAPH - ,0xEB7B ,0x892C //CJK UNIFIED IDEOGRAPH - ,0xEB7C ,0x891F //CJK UNIFIED IDEOGRAPH - ,0xEB7D ,0x89F1 //CJK UNIFIED IDEOGRAPH - ,0xEB7E ,0x8AE0 //CJK UNIFIED IDEOGRAPH - ,0xEBA1 ,0x8AE2 //CJK UNIFIED IDEOGRAPH - ,0xEBA2 ,0x8AF2 //CJK UNIFIED IDEOGRAPH - ,0xEBA3 ,0x8AF4 //CJK UNIFIED IDEOGRAPH - ,0xEBA4 ,0x8AF5 //CJK UNIFIED IDEOGRAPH - ,0xEBA5 ,0x8ADD //CJK UNIFIED IDEOGRAPH - ,0xEBA6 ,0x8B14 //CJK UNIFIED IDEOGRAPH - ,0xEBA7 ,0x8AE4 //CJK UNIFIED IDEOGRAPH - ,0xEBA8 ,0x8ADF //CJK UNIFIED IDEOGRAPH - ,0xEBA9 ,0x8AF0 //CJK UNIFIED IDEOGRAPH - ,0xEBAA ,0x8AC8 //CJK UNIFIED IDEOGRAPH - ,0xEBAB ,0x8ADE //CJK UNIFIED IDEOGRAPH - ,0xEBAC ,0x8AE1 //CJK UNIFIED IDEOGRAPH - ,0xEBAD ,0x8AE8 //CJK UNIFIED IDEOGRAPH - ,0xEBAE ,0x8AFF //CJK UNIFIED IDEOGRAPH - ,0xEBAF ,0x8AEF //CJK UNIFIED IDEOGRAPH - ,0xEBB0 ,0x8AFB //CJK UNIFIED IDEOGRAPH - ,0xEBB1 ,0x8C91 //CJK UNIFIED IDEOGRAPH - ,0xEBB2 ,0x8C92 //CJK UNIFIED IDEOGRAPH - ,0xEBB3 ,0x8C90 //CJK UNIFIED IDEOGRAPH - ,0xEBB4 ,0x8CF5 //CJK UNIFIED IDEOGRAPH - ,0xEBB5 ,0x8CEE //CJK UNIFIED IDEOGRAPH - ,0xEBB6 ,0x8CF1 //CJK UNIFIED IDEOGRAPH - ,0xEBB7 ,0x8CF0 //CJK UNIFIED IDEOGRAPH - ,0xEBB8 ,0x8CF3 //CJK UNIFIED IDEOGRAPH - ,0xEBB9 ,0x8D6C //CJK UNIFIED IDEOGRAPH - ,0xEBBA ,0x8D6E //CJK UNIFIED IDEOGRAPH - ,0xEBBB ,0x8DA5 //CJK UNIFIED IDEOGRAPH - ,0xEBBC ,0x8DA7 //CJK UNIFIED IDEOGRAPH - ,0xEBBD ,0x8E33 //CJK UNIFIED IDEOGRAPH - ,0xEBBE ,0x8E3E //CJK UNIFIED IDEOGRAPH - ,0xEBBF ,0x8E38 //CJK UNIFIED IDEOGRAPH - ,0xEBC0 ,0x8E40 //CJK UNIFIED IDEOGRAPH - ,0xEBC1 ,0x8E45 //CJK UNIFIED IDEOGRAPH - ,0xEBC2 ,0x8E36 //CJK UNIFIED IDEOGRAPH - ,0xEBC3 ,0x8E3C //CJK UNIFIED IDEOGRAPH - ,0xEBC4 ,0x8E3D //CJK UNIFIED IDEOGRAPH - ,0xEBC5 ,0x8E41 //CJK UNIFIED IDEOGRAPH - ,0xEBC6 ,0x8E30 //CJK UNIFIED IDEOGRAPH - ,0xEBC7 ,0x8E3F //CJK UNIFIED IDEOGRAPH - ,0xEBC8 ,0x8EBD //CJK UNIFIED IDEOGRAPH - ,0xEBC9 ,0x8F36 //CJK UNIFIED IDEOGRAPH - ,0xEBCA ,0x8F2E //CJK UNIFIED IDEOGRAPH - ,0xEBCB ,0x8F35 //CJK UNIFIED IDEOGRAPH - ,0xEBCC ,0x8F32 //CJK UNIFIED IDEOGRAPH - ,0xEBCD ,0x8F39 //CJK UNIFIED IDEOGRAPH - ,0xEBCE ,0x8F37 //CJK UNIFIED IDEOGRAPH - ,0xEBCF ,0x8F34 //CJK UNIFIED IDEOGRAPH - ,0xEBD0 ,0x9076 //CJK UNIFIED IDEOGRAPH - ,0xEBD1 ,0x9079 //CJK UNIFIED IDEOGRAPH - ,0xEBD2 ,0x907B //CJK UNIFIED IDEOGRAPH - ,0xEBD3 ,0x9086 //CJK UNIFIED IDEOGRAPH - ,0xEBD4 ,0x90FA //CJK UNIFIED IDEOGRAPH - ,0xEBD5 ,0x9133 //CJK UNIFIED IDEOGRAPH - ,0xEBD6 ,0x9135 //CJK UNIFIED IDEOGRAPH - ,0xEBD7 ,0x9136 //CJK UNIFIED IDEOGRAPH - ,0xEBD8 ,0x9193 //CJK UNIFIED IDEOGRAPH - ,0xEBD9 ,0x9190 //CJK UNIFIED IDEOGRAPH - ,0xEBDA ,0x9191 //CJK UNIFIED IDEOGRAPH - ,0xEBDB ,0x918D //CJK UNIFIED IDEOGRAPH - ,0xEBDC ,0x918F //CJK UNIFIED IDEOGRAPH - ,0xEBDD ,0x9327 //CJK UNIFIED IDEOGRAPH - ,0xEBDE ,0x931E //CJK UNIFIED IDEOGRAPH - ,0xEBDF ,0x9308 //CJK UNIFIED IDEOGRAPH - ,0xEBE0 ,0x931F //CJK UNIFIED IDEOGRAPH - ,0xEBE1 ,0x9306 //CJK UNIFIED IDEOGRAPH - ,0xEBE2 ,0x930F //CJK UNIFIED IDEOGRAPH - ,0xEBE3 ,0x937A //CJK UNIFIED IDEOGRAPH - ,0xEBE4 ,0x9338 //CJK UNIFIED IDEOGRAPH - ,0xEBE5 ,0x933C //CJK UNIFIED IDEOGRAPH - ,0xEBE6 ,0x931B //CJK UNIFIED IDEOGRAPH - ,0xEBE7 ,0x9323 //CJK UNIFIED IDEOGRAPH - ,0xEBE8 ,0x9312 //CJK UNIFIED IDEOGRAPH - ,0xEBE9 ,0x9301 //CJK UNIFIED IDEOGRAPH - ,0xEBEA ,0x9346 //CJK UNIFIED IDEOGRAPH - ,0xEBEB ,0x932D //CJK UNIFIED IDEOGRAPH - ,0xEBEC ,0x930E //CJK UNIFIED IDEOGRAPH - ,0xEBED ,0x930D //CJK UNIFIED IDEOGRAPH - ,0xEBEE ,0x92CB //CJK UNIFIED IDEOGRAPH - ,0xEBEF ,0x931D //CJK UNIFIED IDEOGRAPH - ,0xEBF0 ,0x92FA //CJK UNIFIED IDEOGRAPH - ,0xEBF1 ,0x9325 //CJK UNIFIED IDEOGRAPH - ,0xEBF2 ,0x9313 //CJK UNIFIED IDEOGRAPH - ,0xEBF3 ,0x92F9 //CJK UNIFIED IDEOGRAPH - ,0xEBF4 ,0x92F7 //CJK UNIFIED IDEOGRAPH - ,0xEBF5 ,0x9334 //CJK UNIFIED IDEOGRAPH - ,0xEBF6 ,0x9302 //CJK UNIFIED IDEOGRAPH - ,0xEBF7 ,0x9324 //CJK UNIFIED IDEOGRAPH - ,0xEBF8 ,0x92FF //CJK UNIFIED IDEOGRAPH - ,0xEBF9 ,0x9329 //CJK UNIFIED IDEOGRAPH - ,0xEBFA ,0x9339 //CJK UNIFIED IDEOGRAPH - ,0xEBFB ,0x9335 //CJK UNIFIED IDEOGRAPH - ,0xEBFC ,0x932A //CJK UNIFIED IDEOGRAPH - ,0xEBFD ,0x9314 //CJK UNIFIED IDEOGRAPH - ,0xEBFE ,0x930C //CJK UNIFIED IDEOGRAPH - ,0xEC40 ,0x930B //CJK UNIFIED IDEOGRAPH - ,0xEC41 ,0x92FE //CJK UNIFIED IDEOGRAPH - ,0xEC42 ,0x9309 //CJK UNIFIED IDEOGRAPH - ,0xEC43 ,0x9300 //CJK UNIFIED IDEOGRAPH - ,0xEC44 ,0x92FB //CJK UNIFIED IDEOGRAPH - ,0xEC45 ,0x9316 //CJK UNIFIED IDEOGRAPH - ,0xEC46 ,0x95BC //CJK UNIFIED IDEOGRAPH - ,0xEC47 ,0x95CD //CJK UNIFIED IDEOGRAPH - ,0xEC48 ,0x95BE //CJK UNIFIED IDEOGRAPH - ,0xEC49 ,0x95B9 //CJK UNIFIED IDEOGRAPH - ,0xEC4A ,0x95BA //CJK UNIFIED IDEOGRAPH - ,0xEC4B ,0x95B6 //CJK UNIFIED IDEOGRAPH - ,0xEC4C ,0x95BF //CJK UNIFIED IDEOGRAPH - ,0xEC4D ,0x95B5 //CJK UNIFIED IDEOGRAPH - ,0xEC4E ,0x95BD //CJK UNIFIED IDEOGRAPH - ,0xEC4F ,0x96A9 //CJK UNIFIED IDEOGRAPH - ,0xEC50 ,0x96D4 //CJK UNIFIED IDEOGRAPH - ,0xEC51 ,0x970B //CJK UNIFIED IDEOGRAPH - ,0xEC52 ,0x9712 //CJK UNIFIED IDEOGRAPH - ,0xEC53 ,0x9710 //CJK UNIFIED IDEOGRAPH - ,0xEC54 ,0x9799 //CJK UNIFIED IDEOGRAPH - ,0xEC55 ,0x9797 //CJK UNIFIED IDEOGRAPH - ,0xEC56 ,0x9794 //CJK UNIFIED IDEOGRAPH - ,0xEC57 ,0x97F0 //CJK UNIFIED IDEOGRAPH - ,0xEC58 ,0x97F8 //CJK UNIFIED IDEOGRAPH - ,0xEC59 ,0x9835 //CJK UNIFIED IDEOGRAPH - ,0xEC5A ,0x982F //CJK UNIFIED IDEOGRAPH - ,0xEC5B ,0x9832 //CJK UNIFIED IDEOGRAPH - ,0xEC5C ,0x9924 //CJK UNIFIED IDEOGRAPH - ,0xEC5D ,0x991F //CJK UNIFIED IDEOGRAPH - ,0xEC5E ,0x9927 //CJK UNIFIED IDEOGRAPH - ,0xEC5F ,0x9929 //CJK UNIFIED IDEOGRAPH - ,0xEC60 ,0x999E //CJK UNIFIED IDEOGRAPH - ,0xEC61 ,0x99EE //CJK UNIFIED IDEOGRAPH - ,0xEC62 ,0x99EC //CJK UNIFIED IDEOGRAPH - ,0xEC63 ,0x99E5 //CJK UNIFIED IDEOGRAPH - ,0xEC64 ,0x99E4 //CJK UNIFIED IDEOGRAPH - ,0xEC65 ,0x99F0 //CJK UNIFIED IDEOGRAPH - ,0xEC66 ,0x99E3 //CJK UNIFIED IDEOGRAPH - ,0xEC67 ,0x99EA //CJK UNIFIED IDEOGRAPH - ,0xEC68 ,0x99E9 //CJK UNIFIED IDEOGRAPH - ,0xEC69 ,0x99E7 //CJK UNIFIED IDEOGRAPH - ,0xEC6A ,0x9AB9 //CJK UNIFIED IDEOGRAPH - ,0xEC6B ,0x9ABF //CJK UNIFIED IDEOGRAPH - ,0xEC6C ,0x9AB4 //CJK UNIFIED IDEOGRAPH - ,0xEC6D ,0x9ABB //CJK UNIFIED IDEOGRAPH - ,0xEC6E ,0x9AF6 //CJK UNIFIED IDEOGRAPH - ,0xEC6F ,0x9AFA //CJK UNIFIED IDEOGRAPH - ,0xEC70 ,0x9AF9 //CJK UNIFIED IDEOGRAPH - ,0xEC71 ,0x9AF7 //CJK UNIFIED IDEOGRAPH - ,0xEC72 ,0x9B33 //CJK UNIFIED IDEOGRAPH - ,0xEC73 ,0x9B80 //CJK UNIFIED IDEOGRAPH - ,0xEC74 ,0x9B85 //CJK UNIFIED IDEOGRAPH - ,0xEC75 ,0x9B87 //CJK UNIFIED IDEOGRAPH - ,0xEC76 ,0x9B7C //CJK UNIFIED IDEOGRAPH - ,0xEC77 ,0x9B7E //CJK UNIFIED IDEOGRAPH - ,0xEC78 ,0x9B7B //CJK UNIFIED IDEOGRAPH - ,0xEC79 ,0x9B82 //CJK UNIFIED IDEOGRAPH - ,0xEC7A ,0x9B93 //CJK UNIFIED IDEOGRAPH - ,0xEC7B ,0x9B92 //CJK UNIFIED IDEOGRAPH - ,0xEC7C ,0x9B90 //CJK UNIFIED IDEOGRAPH - ,0xEC7D ,0x9B7A //CJK UNIFIED IDEOGRAPH - ,0xEC7E ,0x9B95 //CJK UNIFIED IDEOGRAPH - ,0xECA1 ,0x9B7D //CJK UNIFIED IDEOGRAPH - ,0xECA2 ,0x9B88 //CJK UNIFIED IDEOGRAPH - ,0xECA3 ,0x9D25 //CJK UNIFIED IDEOGRAPH - ,0xECA4 ,0x9D17 //CJK UNIFIED IDEOGRAPH - ,0xECA5 ,0x9D20 //CJK UNIFIED IDEOGRAPH - ,0xECA6 ,0x9D1E //CJK UNIFIED IDEOGRAPH - ,0xECA7 ,0x9D14 //CJK UNIFIED IDEOGRAPH - ,0xECA8 ,0x9D29 //CJK UNIFIED IDEOGRAPH - ,0xECA9 ,0x9D1D //CJK UNIFIED IDEOGRAPH - ,0xECAA ,0x9D18 //CJK UNIFIED IDEOGRAPH - ,0xECAB ,0x9D22 //CJK UNIFIED IDEOGRAPH - ,0xECAC ,0x9D10 //CJK UNIFIED IDEOGRAPH - ,0xECAD ,0x9D19 //CJK UNIFIED IDEOGRAPH - ,0xECAE ,0x9D1F //CJK UNIFIED IDEOGRAPH - ,0xECAF ,0x9E88 //CJK UNIFIED IDEOGRAPH - ,0xECB0 ,0x9E86 //CJK UNIFIED IDEOGRAPH - ,0xECB1 ,0x9E87 //CJK UNIFIED IDEOGRAPH - ,0xECB2 ,0x9EAE //CJK UNIFIED IDEOGRAPH - ,0xECB3 ,0x9EAD //CJK UNIFIED IDEOGRAPH - ,0xECB4 ,0x9ED5 //CJK UNIFIED IDEOGRAPH - ,0xECB5 ,0x9ED6 //CJK UNIFIED IDEOGRAPH - ,0xECB6 ,0x9EFA //CJK UNIFIED IDEOGRAPH - ,0xECB7 ,0x9F12 //CJK UNIFIED IDEOGRAPH - ,0xECB8 ,0x9F3D //CJK UNIFIED IDEOGRAPH - ,0xECB9 ,0x5126 //CJK UNIFIED IDEOGRAPH - ,0xECBA ,0x5125 //CJK UNIFIED IDEOGRAPH - ,0xECBB ,0x5122 //CJK UNIFIED IDEOGRAPH - ,0xECBC ,0x5124 //CJK UNIFIED IDEOGRAPH - ,0xECBD ,0x5120 //CJK UNIFIED IDEOGRAPH - ,0xECBE ,0x5129 //CJK UNIFIED IDEOGRAPH - ,0xECBF ,0x52F4 //CJK UNIFIED IDEOGRAPH - ,0xECC0 ,0x5693 //CJK UNIFIED IDEOGRAPH - ,0xECC1 ,0x568C //CJK UNIFIED IDEOGRAPH - ,0xECC2 ,0x568D //CJK UNIFIED IDEOGRAPH - ,0xECC3 ,0x5686 //CJK UNIFIED IDEOGRAPH - ,0xECC4 ,0x5684 //CJK UNIFIED IDEOGRAPH - ,0xECC5 ,0x5683 //CJK UNIFIED IDEOGRAPH - ,0xECC6 ,0x567E //CJK UNIFIED IDEOGRAPH - ,0xECC7 ,0x5682 //CJK UNIFIED IDEOGRAPH - ,0xECC8 ,0x567F //CJK UNIFIED IDEOGRAPH - ,0xECC9 ,0x5681 //CJK UNIFIED IDEOGRAPH - ,0xECCA ,0x58D6 //CJK UNIFIED IDEOGRAPH - ,0xECCB ,0x58D4 //CJK UNIFIED IDEOGRAPH - ,0xECCC ,0x58CF //CJK UNIFIED IDEOGRAPH - ,0xECCD ,0x58D2 //CJK UNIFIED IDEOGRAPH - ,0xECCE ,0x5B2D //CJK UNIFIED IDEOGRAPH - ,0xECCF ,0x5B25 //CJK UNIFIED IDEOGRAPH - ,0xECD0 ,0x5B32 //CJK UNIFIED IDEOGRAPH - ,0xECD1 ,0x5B23 //CJK UNIFIED IDEOGRAPH - ,0xECD2 ,0x5B2C //CJK UNIFIED IDEOGRAPH - ,0xECD3 ,0x5B27 //CJK UNIFIED IDEOGRAPH - ,0xECD4 ,0x5B26 //CJK UNIFIED IDEOGRAPH - ,0xECD5 ,0x5B2F //CJK UNIFIED IDEOGRAPH - ,0xECD6 ,0x5B2E //CJK UNIFIED IDEOGRAPH - ,0xECD7 ,0x5B7B //CJK UNIFIED IDEOGRAPH - ,0xECD8 ,0x5BF1 //CJK UNIFIED IDEOGRAPH - ,0xECD9 ,0x5BF2 //CJK UNIFIED IDEOGRAPH - ,0xECDA ,0x5DB7 //CJK UNIFIED IDEOGRAPH - ,0xECDB ,0x5E6C //CJK UNIFIED IDEOGRAPH - ,0xECDC ,0x5E6A //CJK UNIFIED IDEOGRAPH - ,0xECDD ,0x5FBE //CJK UNIFIED IDEOGRAPH - ,0xECDE ,0x5FBB //CJK UNIFIED IDEOGRAPH - ,0xECDF ,0x61C3 //CJK UNIFIED IDEOGRAPH - ,0xECE0 ,0x61B5 //CJK UNIFIED IDEOGRAPH - ,0xECE1 ,0x61BC //CJK UNIFIED IDEOGRAPH - ,0xECE2 ,0x61E7 //CJK UNIFIED IDEOGRAPH - ,0xECE3 ,0x61E0 //CJK UNIFIED IDEOGRAPH - ,0xECE4 ,0x61E5 //CJK UNIFIED IDEOGRAPH - ,0xECE5 ,0x61E4 //CJK UNIFIED IDEOGRAPH - ,0xECE6 ,0x61E8 //CJK UNIFIED IDEOGRAPH - ,0xECE7 ,0x61DE //CJK UNIFIED IDEOGRAPH - ,0xECE8 ,0x64EF //CJK UNIFIED IDEOGRAPH - ,0xECE9 ,0x64E9 //CJK UNIFIED IDEOGRAPH - ,0xECEA ,0x64E3 //CJK UNIFIED IDEOGRAPH - ,0xECEB ,0x64EB //CJK UNIFIED IDEOGRAPH - ,0xECEC ,0x64E4 //CJK UNIFIED IDEOGRAPH - ,0xECED ,0x64E8 //CJK UNIFIED IDEOGRAPH - ,0xECEE ,0x6581 //CJK UNIFIED IDEOGRAPH - ,0xECEF ,0x6580 //CJK UNIFIED IDEOGRAPH - ,0xECF0 ,0x65B6 //CJK UNIFIED IDEOGRAPH - ,0xECF1 ,0x65DA //CJK UNIFIED IDEOGRAPH - ,0xECF2 ,0x66D2 //CJK UNIFIED IDEOGRAPH - ,0xECF3 ,0x6A8D //CJK UNIFIED IDEOGRAPH - ,0xECF4 ,0x6A96 //CJK UNIFIED IDEOGRAPH - ,0xECF5 ,0x6A81 //CJK UNIFIED IDEOGRAPH - ,0xECF6 ,0x6AA5 //CJK UNIFIED IDEOGRAPH - ,0xECF7 ,0x6A89 //CJK UNIFIED IDEOGRAPH - ,0xECF8 ,0x6A9F //CJK UNIFIED IDEOGRAPH - ,0xECF9 ,0x6A9B //CJK UNIFIED IDEOGRAPH - ,0xECFA ,0x6AA1 //CJK UNIFIED IDEOGRAPH - ,0xECFB ,0x6A9E //CJK UNIFIED IDEOGRAPH - ,0xECFC ,0x6A87 //CJK UNIFIED IDEOGRAPH - ,0xECFD ,0x6A93 //CJK UNIFIED IDEOGRAPH - ,0xECFE ,0x6A8E //CJK UNIFIED IDEOGRAPH - ,0xED40 ,0x6A95 //CJK UNIFIED IDEOGRAPH - ,0xED41 ,0x6A83 //CJK UNIFIED IDEOGRAPH - ,0xED42 ,0x6AA8 //CJK UNIFIED IDEOGRAPH - ,0xED43 ,0x6AA4 //CJK UNIFIED IDEOGRAPH - ,0xED44 ,0x6A91 //CJK UNIFIED IDEOGRAPH - ,0xED45 ,0x6A7F //CJK UNIFIED IDEOGRAPH - ,0xED46 ,0x6AA6 //CJK UNIFIED IDEOGRAPH - ,0xED47 ,0x6A9A //CJK UNIFIED IDEOGRAPH - ,0xED48 ,0x6A85 //CJK UNIFIED IDEOGRAPH - ,0xED49 ,0x6A8C //CJK UNIFIED IDEOGRAPH - ,0xED4A ,0x6A92 //CJK UNIFIED IDEOGRAPH - ,0xED4B ,0x6B5B //CJK UNIFIED IDEOGRAPH - ,0xED4C ,0x6BAD //CJK UNIFIED IDEOGRAPH - ,0xED4D ,0x6C09 //CJK UNIFIED IDEOGRAPH - ,0xED4E ,0x6FCC //CJK UNIFIED IDEOGRAPH - ,0xED4F ,0x6FA9 //CJK UNIFIED IDEOGRAPH - ,0xED50 ,0x6FF4 //CJK UNIFIED IDEOGRAPH - ,0xED51 ,0x6FD4 //CJK UNIFIED IDEOGRAPH - ,0xED52 ,0x6FE3 //CJK UNIFIED IDEOGRAPH - ,0xED53 ,0x6FDC //CJK UNIFIED IDEOGRAPH - ,0xED54 ,0x6FED //CJK UNIFIED IDEOGRAPH - ,0xED55 ,0x6FE7 //CJK UNIFIED IDEOGRAPH - ,0xED56 ,0x6FE6 //CJK UNIFIED IDEOGRAPH - ,0xED57 ,0x6FDE //CJK UNIFIED IDEOGRAPH - ,0xED58 ,0x6FF2 //CJK UNIFIED IDEOGRAPH - ,0xED59 ,0x6FDD //CJK UNIFIED IDEOGRAPH - ,0xED5A ,0x6FE2 //CJK UNIFIED IDEOGRAPH - ,0xED5B ,0x6FE8 //CJK UNIFIED IDEOGRAPH - ,0xED5C ,0x71E1 //CJK UNIFIED IDEOGRAPH - ,0xED5D ,0x71F1 //CJK UNIFIED IDEOGRAPH - ,0xED5E ,0x71E8 //CJK UNIFIED IDEOGRAPH - ,0xED5F ,0x71F2 //CJK UNIFIED IDEOGRAPH - ,0xED60 ,0x71E4 //CJK UNIFIED IDEOGRAPH - ,0xED61 ,0x71F0 //CJK UNIFIED IDEOGRAPH - ,0xED62 ,0x71E2 //CJK UNIFIED IDEOGRAPH - ,0xED63 ,0x7373 //CJK UNIFIED IDEOGRAPH - ,0xED64 ,0x736E //CJK UNIFIED IDEOGRAPH - ,0xED65 ,0x736F //CJK UNIFIED IDEOGRAPH - ,0xED66 ,0x7497 //CJK UNIFIED IDEOGRAPH - ,0xED67 ,0x74B2 //CJK UNIFIED IDEOGRAPH - ,0xED68 ,0x74AB //CJK UNIFIED IDEOGRAPH - ,0xED69 ,0x7490 //CJK UNIFIED IDEOGRAPH - ,0xED6A ,0x74AA //CJK UNIFIED IDEOGRAPH - ,0xED6B ,0x74AD //CJK UNIFIED IDEOGRAPH - ,0xED6C ,0x74B1 //CJK UNIFIED IDEOGRAPH - ,0xED6D ,0x74A5 //CJK UNIFIED IDEOGRAPH - ,0xED6E ,0x74AF //CJK UNIFIED IDEOGRAPH - ,0xED6F ,0x7510 //CJK UNIFIED IDEOGRAPH - ,0xED70 ,0x7511 //CJK UNIFIED IDEOGRAPH - ,0xED71 ,0x7512 //CJK UNIFIED IDEOGRAPH - ,0xED72 ,0x750F //CJK UNIFIED IDEOGRAPH - ,0xED73 ,0x7584 //CJK UNIFIED IDEOGRAPH - ,0xED74 ,0x7643 //CJK UNIFIED IDEOGRAPH - ,0xED75 ,0x7648 //CJK UNIFIED IDEOGRAPH - ,0xED76 ,0x7649 //CJK UNIFIED IDEOGRAPH - ,0xED77 ,0x7647 //CJK UNIFIED IDEOGRAPH - ,0xED78 ,0x76A4 //CJK UNIFIED IDEOGRAPH - ,0xED79 ,0x76E9 //CJK UNIFIED IDEOGRAPH - ,0xED7A ,0x77B5 //CJK UNIFIED IDEOGRAPH - ,0xED7B ,0x77AB //CJK UNIFIED IDEOGRAPH - ,0xED7C ,0x77B2 //CJK UNIFIED IDEOGRAPH - ,0xED7D ,0x77B7 //CJK UNIFIED IDEOGRAPH - ,0xED7E ,0x77B6 //CJK UNIFIED IDEOGRAPH - ,0xEDA1 ,0x77B4 //CJK UNIFIED IDEOGRAPH - ,0xEDA2 ,0x77B1 //CJK UNIFIED IDEOGRAPH - ,0xEDA3 ,0x77A8 //CJK UNIFIED IDEOGRAPH - ,0xEDA4 ,0x77F0 //CJK UNIFIED IDEOGRAPH - ,0xEDA5 ,0x78F3 //CJK UNIFIED IDEOGRAPH - ,0xEDA6 ,0x78FD //CJK UNIFIED IDEOGRAPH - ,0xEDA7 ,0x7902 //CJK UNIFIED IDEOGRAPH - ,0xEDA8 ,0x78FB //CJK UNIFIED IDEOGRAPH - ,0xEDA9 ,0x78FC //CJK UNIFIED IDEOGRAPH - ,0xEDAA ,0x78F2 //CJK UNIFIED IDEOGRAPH - ,0xEDAB ,0x7905 //CJK UNIFIED IDEOGRAPH - ,0xEDAC ,0x78F9 //CJK UNIFIED IDEOGRAPH - ,0xEDAD ,0x78FE //CJK UNIFIED IDEOGRAPH - ,0xEDAE ,0x7904 //CJK UNIFIED IDEOGRAPH - ,0xEDAF ,0x79AB //CJK UNIFIED IDEOGRAPH - ,0xEDB0 ,0x79A8 //CJK UNIFIED IDEOGRAPH - ,0xEDB1 ,0x7A5C //CJK UNIFIED IDEOGRAPH - ,0xEDB2 ,0x7A5B //CJK UNIFIED IDEOGRAPH - ,0xEDB3 ,0x7A56 //CJK UNIFIED IDEOGRAPH - ,0xEDB4 ,0x7A58 //CJK UNIFIED IDEOGRAPH - ,0xEDB5 ,0x7A54 //CJK UNIFIED IDEOGRAPH - ,0xEDB6 ,0x7A5A //CJK UNIFIED IDEOGRAPH - ,0xEDB7 ,0x7ABE //CJK UNIFIED IDEOGRAPH - ,0xEDB8 ,0x7AC0 //CJK UNIFIED IDEOGRAPH - ,0xEDB9 ,0x7AC1 //CJK UNIFIED IDEOGRAPH - ,0xEDBA ,0x7C05 //CJK UNIFIED IDEOGRAPH - ,0xEDBB ,0x7C0F //CJK UNIFIED IDEOGRAPH - ,0xEDBC ,0x7BF2 //CJK UNIFIED IDEOGRAPH - ,0xEDBD ,0x7C00 //CJK UNIFIED IDEOGRAPH - ,0xEDBE ,0x7BFF //CJK UNIFIED IDEOGRAPH - ,0xEDBF ,0x7BFB //CJK UNIFIED IDEOGRAPH - ,0xEDC0 ,0x7C0E //CJK UNIFIED IDEOGRAPH - ,0xEDC1 ,0x7BF4 //CJK UNIFIED IDEOGRAPH - ,0xEDC2 ,0x7C0B //CJK UNIFIED IDEOGRAPH - ,0xEDC3 ,0x7BF3 //CJK UNIFIED IDEOGRAPH - ,0xEDC4 ,0x7C02 //CJK UNIFIED IDEOGRAPH - ,0xEDC5 ,0x7C09 //CJK UNIFIED IDEOGRAPH - ,0xEDC6 ,0x7C03 //CJK UNIFIED IDEOGRAPH - ,0xEDC7 ,0x7C01 //CJK UNIFIED IDEOGRAPH - ,0xEDC8 ,0x7BF8 //CJK UNIFIED IDEOGRAPH - ,0xEDC9 ,0x7BFD //CJK UNIFIED IDEOGRAPH - ,0xEDCA ,0x7C06 //CJK UNIFIED IDEOGRAPH - ,0xEDCB ,0x7BF0 //CJK UNIFIED IDEOGRAPH - ,0xEDCC ,0x7BF1 //CJK UNIFIED IDEOGRAPH - ,0xEDCD ,0x7C10 //CJK UNIFIED IDEOGRAPH - ,0xEDCE ,0x7C0A //CJK UNIFIED IDEOGRAPH - ,0xEDCF ,0x7CE8 //CJK UNIFIED IDEOGRAPH - ,0xEDD0 ,0x7E2D //CJK UNIFIED IDEOGRAPH - ,0xEDD1 ,0x7E3C //CJK UNIFIED IDEOGRAPH - ,0xEDD2 ,0x7E42 //CJK UNIFIED IDEOGRAPH - ,0xEDD3 ,0x7E33 //CJK UNIFIED IDEOGRAPH - ,0xEDD4 ,0x9848 //CJK UNIFIED IDEOGRAPH - ,0xEDD5 ,0x7E38 //CJK UNIFIED IDEOGRAPH - ,0xEDD6 ,0x7E2A //CJK UNIFIED IDEOGRAPH - ,0xEDD7 ,0x7E49 //CJK UNIFIED IDEOGRAPH - ,0xEDD8 ,0x7E40 //CJK UNIFIED IDEOGRAPH - ,0xEDD9 ,0x7E47 //CJK UNIFIED IDEOGRAPH - ,0xEDDA ,0x7E29 //CJK UNIFIED IDEOGRAPH - ,0xEDDB ,0x7E4C //CJK UNIFIED IDEOGRAPH - ,0xEDDC ,0x7E30 //CJK UNIFIED IDEOGRAPH - ,0xEDDD ,0x7E3B //CJK UNIFIED IDEOGRAPH - ,0xEDDE ,0x7E36 //CJK UNIFIED IDEOGRAPH - ,0xEDDF ,0x7E44 //CJK UNIFIED IDEOGRAPH - ,0xEDE0 ,0x7E3A //CJK UNIFIED IDEOGRAPH - ,0xEDE1 ,0x7F45 //CJK UNIFIED IDEOGRAPH - ,0xEDE2 ,0x7F7F //CJK UNIFIED IDEOGRAPH - ,0xEDE3 ,0x7F7E //CJK UNIFIED IDEOGRAPH - ,0xEDE4 ,0x7F7D //CJK UNIFIED IDEOGRAPH - ,0xEDE5 ,0x7FF4 //CJK UNIFIED IDEOGRAPH - ,0xEDE6 ,0x7FF2 //CJK UNIFIED IDEOGRAPH - ,0xEDE7 ,0x802C //CJK UNIFIED IDEOGRAPH - ,0xEDE8 ,0x81BB //CJK UNIFIED IDEOGRAPH - ,0xEDE9 ,0x81C4 //CJK UNIFIED IDEOGRAPH - ,0xEDEA ,0x81CC //CJK UNIFIED IDEOGRAPH - ,0xEDEB ,0x81CA //CJK UNIFIED IDEOGRAPH - ,0xEDEC ,0x81C5 //CJK UNIFIED IDEOGRAPH - ,0xEDED ,0x81C7 //CJK UNIFIED IDEOGRAPH - ,0xEDEE ,0x81BC //CJK UNIFIED IDEOGRAPH - ,0xEDEF ,0x81E9 //CJK UNIFIED IDEOGRAPH - ,0xEDF0 ,0x825B //CJK UNIFIED IDEOGRAPH - ,0xEDF1 ,0x825A //CJK UNIFIED IDEOGRAPH - ,0xEDF2 ,0x825C //CJK UNIFIED IDEOGRAPH - ,0xEDF3 ,0x8583 //CJK UNIFIED IDEOGRAPH - ,0xEDF4 ,0x8580 //CJK UNIFIED IDEOGRAPH - ,0xEDF5 ,0x858F //CJK UNIFIED IDEOGRAPH - ,0xEDF6 ,0x85A7 //CJK UNIFIED IDEOGRAPH - ,0xEDF7 ,0x8595 //CJK UNIFIED IDEOGRAPH - ,0xEDF8 ,0x85A0 //CJK UNIFIED IDEOGRAPH - ,0xEDF9 ,0x858B //CJK UNIFIED IDEOGRAPH - ,0xEDFA ,0x85A3 //CJK UNIFIED IDEOGRAPH - ,0xEDFB ,0x857B //CJK UNIFIED IDEOGRAPH - ,0xEDFC ,0x85A4 //CJK UNIFIED IDEOGRAPH - ,0xEDFD ,0x859A //CJK UNIFIED IDEOGRAPH - ,0xEDFE ,0x859E //CJK UNIFIED IDEOGRAPH - ,0xEE40 ,0x8577 //CJK UNIFIED IDEOGRAPH - ,0xEE41 ,0x857C //CJK UNIFIED IDEOGRAPH - ,0xEE42 ,0x8589 //CJK UNIFIED IDEOGRAPH - ,0xEE43 ,0x85A1 //CJK UNIFIED IDEOGRAPH - ,0xEE44 ,0x857A //CJK UNIFIED IDEOGRAPH - ,0xEE45 ,0x8578 //CJK UNIFIED IDEOGRAPH - ,0xEE46 ,0x8557 //CJK UNIFIED IDEOGRAPH - ,0xEE47 ,0x858E //CJK UNIFIED IDEOGRAPH - ,0xEE48 ,0x8596 //CJK UNIFIED IDEOGRAPH - ,0xEE49 ,0x8586 //CJK UNIFIED IDEOGRAPH - ,0xEE4A ,0x858D //CJK UNIFIED IDEOGRAPH - ,0xEE4B ,0x8599 //CJK UNIFIED IDEOGRAPH - ,0xEE4C ,0x859D //CJK UNIFIED IDEOGRAPH - ,0xEE4D ,0x8581 //CJK UNIFIED IDEOGRAPH - ,0xEE4E ,0x85A2 //CJK UNIFIED IDEOGRAPH - ,0xEE4F ,0x8582 //CJK UNIFIED IDEOGRAPH - ,0xEE50 ,0x8588 //CJK UNIFIED IDEOGRAPH - ,0xEE51 ,0x8585 //CJK UNIFIED IDEOGRAPH - ,0xEE52 ,0x8579 //CJK UNIFIED IDEOGRAPH - ,0xEE53 ,0x8576 //CJK UNIFIED IDEOGRAPH - ,0xEE54 ,0x8598 //CJK UNIFIED IDEOGRAPH - ,0xEE55 ,0x8590 //CJK UNIFIED IDEOGRAPH - ,0xEE56 ,0x859F //CJK UNIFIED IDEOGRAPH - ,0xEE57 ,0x8668 //CJK UNIFIED IDEOGRAPH - ,0xEE58 ,0x87BE //CJK UNIFIED IDEOGRAPH - ,0xEE59 ,0x87AA //CJK UNIFIED IDEOGRAPH - ,0xEE5A ,0x87AD //CJK UNIFIED IDEOGRAPH - ,0xEE5B ,0x87C5 //CJK UNIFIED IDEOGRAPH - ,0xEE5C ,0x87B0 //CJK UNIFIED IDEOGRAPH - ,0xEE5D ,0x87AC //CJK UNIFIED IDEOGRAPH - ,0xEE5E ,0x87B9 //CJK UNIFIED IDEOGRAPH - ,0xEE5F ,0x87B5 //CJK UNIFIED IDEOGRAPH - ,0xEE60 ,0x87BC //CJK UNIFIED IDEOGRAPH - ,0xEE61 ,0x87AE //CJK UNIFIED IDEOGRAPH - ,0xEE62 ,0x87C9 //CJK UNIFIED IDEOGRAPH - ,0xEE63 ,0x87C3 //CJK UNIFIED IDEOGRAPH - ,0xEE64 ,0x87C2 //CJK UNIFIED IDEOGRAPH - ,0xEE65 ,0x87CC //CJK UNIFIED IDEOGRAPH - ,0xEE66 ,0x87B7 //CJK UNIFIED IDEOGRAPH - ,0xEE67 ,0x87AF //CJK UNIFIED IDEOGRAPH - ,0xEE68 ,0x87C4 //CJK UNIFIED IDEOGRAPH - ,0xEE69 ,0x87CA //CJK UNIFIED IDEOGRAPH - ,0xEE6A ,0x87B4 //CJK UNIFIED IDEOGRAPH - ,0xEE6B ,0x87B6 //CJK UNIFIED IDEOGRAPH - ,0xEE6C ,0x87BF //CJK UNIFIED IDEOGRAPH - ,0xEE6D ,0x87B8 //CJK UNIFIED IDEOGRAPH - ,0xEE6E ,0x87BD //CJK UNIFIED IDEOGRAPH - ,0xEE6F ,0x87DE //CJK UNIFIED IDEOGRAPH - ,0xEE70 ,0x87B2 //CJK UNIFIED IDEOGRAPH - ,0xEE71 ,0x8935 //CJK UNIFIED IDEOGRAPH - ,0xEE72 ,0x8933 //CJK UNIFIED IDEOGRAPH - ,0xEE73 ,0x893C //CJK UNIFIED IDEOGRAPH - ,0xEE74 ,0x893E //CJK UNIFIED IDEOGRAPH - ,0xEE75 ,0x8941 //CJK UNIFIED IDEOGRAPH - ,0xEE76 ,0x8952 //CJK UNIFIED IDEOGRAPH - ,0xEE77 ,0x8937 //CJK UNIFIED IDEOGRAPH - ,0xEE78 ,0x8942 //CJK UNIFIED IDEOGRAPH - ,0xEE79 ,0x89AD //CJK UNIFIED IDEOGRAPH - ,0xEE7A ,0x89AF //CJK UNIFIED IDEOGRAPH - ,0xEE7B ,0x89AE //CJK UNIFIED IDEOGRAPH - ,0xEE7C ,0x89F2 //CJK UNIFIED IDEOGRAPH - ,0xEE7D ,0x89F3 //CJK UNIFIED IDEOGRAPH - ,0xEE7E ,0x8B1E //CJK UNIFIED IDEOGRAPH - ,0xEEA1 ,0x8B18 //CJK UNIFIED IDEOGRAPH - ,0xEEA2 ,0x8B16 //CJK UNIFIED IDEOGRAPH - ,0xEEA3 ,0x8B11 //CJK UNIFIED IDEOGRAPH - ,0xEEA4 ,0x8B05 //CJK UNIFIED IDEOGRAPH - ,0xEEA5 ,0x8B0B //CJK UNIFIED IDEOGRAPH - ,0xEEA6 ,0x8B22 //CJK UNIFIED IDEOGRAPH - ,0xEEA7 ,0x8B0F //CJK UNIFIED IDEOGRAPH - ,0xEEA8 ,0x8B12 //CJK UNIFIED IDEOGRAPH - ,0xEEA9 ,0x8B15 //CJK UNIFIED IDEOGRAPH - ,0xEEAA ,0x8B07 //CJK UNIFIED IDEOGRAPH - ,0xEEAB ,0x8B0D //CJK UNIFIED IDEOGRAPH - ,0xEEAC ,0x8B08 //CJK UNIFIED IDEOGRAPH - ,0xEEAD ,0x8B06 //CJK UNIFIED IDEOGRAPH - ,0xEEAE ,0x8B1C //CJK UNIFIED IDEOGRAPH - ,0xEEAF ,0x8B13 //CJK UNIFIED IDEOGRAPH - ,0xEEB0 ,0x8B1A //CJK UNIFIED IDEOGRAPH - ,0xEEB1 ,0x8C4F //CJK UNIFIED IDEOGRAPH - ,0xEEB2 ,0x8C70 //CJK UNIFIED IDEOGRAPH - ,0xEEB3 ,0x8C72 //CJK UNIFIED IDEOGRAPH - ,0xEEB4 ,0x8C71 //CJK UNIFIED IDEOGRAPH - ,0xEEB5 ,0x8C6F //CJK UNIFIED IDEOGRAPH - ,0xEEB6 ,0x8C95 //CJK UNIFIED IDEOGRAPH - ,0xEEB7 ,0x8C94 //CJK UNIFIED IDEOGRAPH - ,0xEEB8 ,0x8CF9 //CJK UNIFIED IDEOGRAPH - ,0xEEB9 ,0x8D6F //CJK UNIFIED IDEOGRAPH - ,0xEEBA ,0x8E4E //CJK UNIFIED IDEOGRAPH - ,0xEEBB ,0x8E4D //CJK UNIFIED IDEOGRAPH - ,0xEEBC ,0x8E53 //CJK UNIFIED IDEOGRAPH - ,0xEEBD ,0x8E50 //CJK UNIFIED IDEOGRAPH - ,0xEEBE ,0x8E4C //CJK UNIFIED IDEOGRAPH - ,0xEEBF ,0x8E47 //CJK UNIFIED IDEOGRAPH - ,0xEEC0 ,0x8F43 //CJK UNIFIED IDEOGRAPH - ,0xEEC1 ,0x8F40 //CJK UNIFIED IDEOGRAPH - ,0xEEC2 ,0x9085 //CJK UNIFIED IDEOGRAPH - ,0xEEC3 ,0x907E //CJK UNIFIED IDEOGRAPH - ,0xEEC4 ,0x9138 //CJK UNIFIED IDEOGRAPH - ,0xEEC5 ,0x919A //CJK UNIFIED IDEOGRAPH - ,0xEEC6 ,0x91A2 //CJK UNIFIED IDEOGRAPH - ,0xEEC7 ,0x919B //CJK UNIFIED IDEOGRAPH - ,0xEEC8 ,0x9199 //CJK UNIFIED IDEOGRAPH - ,0xEEC9 ,0x919F //CJK UNIFIED IDEOGRAPH - ,0xEECA ,0x91A1 //CJK UNIFIED IDEOGRAPH - ,0xEECB ,0x919D //CJK UNIFIED IDEOGRAPH - ,0xEECC ,0x91A0 //CJK UNIFIED IDEOGRAPH - ,0xEECD ,0x93A1 //CJK UNIFIED IDEOGRAPH - ,0xEECE ,0x9383 //CJK UNIFIED IDEOGRAPH - ,0xEECF ,0x93AF //CJK UNIFIED IDEOGRAPH - ,0xEED0 ,0x9364 //CJK UNIFIED IDEOGRAPH - ,0xEED1 ,0x9356 //CJK UNIFIED IDEOGRAPH - ,0xEED2 ,0x9347 //CJK UNIFIED IDEOGRAPH - ,0xEED3 ,0x937C //CJK UNIFIED IDEOGRAPH - ,0xEED4 ,0x9358 //CJK UNIFIED IDEOGRAPH - ,0xEED5 ,0x935C //CJK UNIFIED IDEOGRAPH - ,0xEED6 ,0x9376 //CJK UNIFIED IDEOGRAPH - ,0xEED7 ,0x9349 //CJK UNIFIED IDEOGRAPH - ,0xEED8 ,0x9350 //CJK UNIFIED IDEOGRAPH - ,0xEED9 ,0x9351 //CJK UNIFIED IDEOGRAPH - ,0xEEDA ,0x9360 //CJK UNIFIED IDEOGRAPH - ,0xEEDB ,0x936D //CJK UNIFIED IDEOGRAPH - ,0xEEDC ,0x938F //CJK UNIFIED IDEOGRAPH - ,0xEEDD ,0x934C //CJK UNIFIED IDEOGRAPH - ,0xEEDE ,0x936A //CJK UNIFIED IDEOGRAPH - ,0xEEDF ,0x9379 //CJK UNIFIED IDEOGRAPH - ,0xEEE0 ,0x9357 //CJK UNIFIED IDEOGRAPH - ,0xEEE1 ,0x9355 //CJK UNIFIED IDEOGRAPH - ,0xEEE2 ,0x9352 //CJK UNIFIED IDEOGRAPH - ,0xEEE3 ,0x934F //CJK UNIFIED IDEOGRAPH - ,0xEEE4 ,0x9371 //CJK UNIFIED IDEOGRAPH - ,0xEEE5 ,0x9377 //CJK UNIFIED IDEOGRAPH - ,0xEEE6 ,0x937B //CJK UNIFIED IDEOGRAPH - ,0xEEE7 ,0x9361 //CJK UNIFIED IDEOGRAPH - ,0xEEE8 ,0x935E //CJK UNIFIED IDEOGRAPH - ,0xEEE9 ,0x9363 //CJK UNIFIED IDEOGRAPH - ,0xEEEA ,0x9367 //CJK UNIFIED IDEOGRAPH - ,0xEEEB ,0x9380 //CJK UNIFIED IDEOGRAPH - ,0xEEEC ,0x934E //CJK UNIFIED IDEOGRAPH - ,0xEEED ,0x9359 //CJK UNIFIED IDEOGRAPH - ,0xEEEE ,0x95C7 //CJK UNIFIED IDEOGRAPH - ,0xEEEF ,0x95C0 //CJK UNIFIED IDEOGRAPH - ,0xEEF0 ,0x95C9 //CJK UNIFIED IDEOGRAPH - ,0xEEF1 ,0x95C3 //CJK UNIFIED IDEOGRAPH - ,0xEEF2 ,0x95C5 //CJK UNIFIED IDEOGRAPH - ,0xEEF3 ,0x95B7 //CJK UNIFIED IDEOGRAPH - ,0xEEF4 ,0x96AE //CJK UNIFIED IDEOGRAPH - ,0xEEF5 ,0x96B0 //CJK UNIFIED IDEOGRAPH - ,0xEEF6 ,0x96AC //CJK UNIFIED IDEOGRAPH - ,0xEEF7 ,0x9720 //CJK UNIFIED IDEOGRAPH - ,0xEEF8 ,0x971F //CJK UNIFIED IDEOGRAPH - ,0xEEF9 ,0x9718 //CJK UNIFIED IDEOGRAPH - ,0xEEFA ,0x971D //CJK UNIFIED IDEOGRAPH - ,0xEEFB ,0x9719 //CJK UNIFIED IDEOGRAPH - ,0xEEFC ,0x979A //CJK UNIFIED IDEOGRAPH - ,0xEEFD ,0x97A1 //CJK UNIFIED IDEOGRAPH - ,0xEEFE ,0x979C //CJK UNIFIED IDEOGRAPH - ,0xEF40 ,0x979E //CJK UNIFIED IDEOGRAPH - ,0xEF41 ,0x979D //CJK UNIFIED IDEOGRAPH - ,0xEF42 ,0x97D5 //CJK UNIFIED IDEOGRAPH - ,0xEF43 ,0x97D4 //CJK UNIFIED IDEOGRAPH - ,0xEF44 ,0x97F1 //CJK UNIFIED IDEOGRAPH - ,0xEF45 ,0x9841 //CJK UNIFIED IDEOGRAPH - ,0xEF46 ,0x9844 //CJK UNIFIED IDEOGRAPH - ,0xEF47 ,0x984A //CJK UNIFIED IDEOGRAPH - ,0xEF48 ,0x9849 //CJK UNIFIED IDEOGRAPH - ,0xEF49 ,0x9845 //CJK UNIFIED IDEOGRAPH - ,0xEF4A ,0x9843 //CJK UNIFIED IDEOGRAPH - ,0xEF4B ,0x9925 //CJK UNIFIED IDEOGRAPH - ,0xEF4C ,0x992B //CJK UNIFIED IDEOGRAPH - ,0xEF4D ,0x992C //CJK UNIFIED IDEOGRAPH - ,0xEF4E ,0x992A //CJK UNIFIED IDEOGRAPH - ,0xEF4F ,0x9933 //CJK UNIFIED IDEOGRAPH - ,0xEF50 ,0x9932 //CJK UNIFIED IDEOGRAPH - ,0xEF51 ,0x992F //CJK UNIFIED IDEOGRAPH - ,0xEF52 ,0x992D //CJK UNIFIED IDEOGRAPH - ,0xEF53 ,0x9931 //CJK UNIFIED IDEOGRAPH - ,0xEF54 ,0x9930 //CJK UNIFIED IDEOGRAPH - ,0xEF55 ,0x9998 //CJK UNIFIED IDEOGRAPH - ,0xEF56 ,0x99A3 //CJK UNIFIED IDEOGRAPH - ,0xEF57 ,0x99A1 //CJK UNIFIED IDEOGRAPH - ,0xEF58 ,0x9A02 //CJK UNIFIED IDEOGRAPH - ,0xEF59 ,0x99FA //CJK UNIFIED IDEOGRAPH - ,0xEF5A ,0x99F4 //CJK UNIFIED IDEOGRAPH - ,0xEF5B ,0x99F7 //CJK UNIFIED IDEOGRAPH - ,0xEF5C ,0x99F9 //CJK UNIFIED IDEOGRAPH - ,0xEF5D ,0x99F8 //CJK UNIFIED IDEOGRAPH - ,0xEF5E ,0x99F6 //CJK UNIFIED IDEOGRAPH - ,0xEF5F ,0x99FB //CJK UNIFIED IDEOGRAPH - ,0xEF60 ,0x99FD //CJK UNIFIED IDEOGRAPH - ,0xEF61 ,0x99FE //CJK UNIFIED IDEOGRAPH - ,0xEF62 ,0x99FC //CJK UNIFIED IDEOGRAPH - ,0xEF63 ,0x9A03 //CJK UNIFIED IDEOGRAPH - ,0xEF64 ,0x9ABE //CJK UNIFIED IDEOGRAPH - ,0xEF65 ,0x9AFE //CJK UNIFIED IDEOGRAPH - ,0xEF66 ,0x9AFD //CJK UNIFIED IDEOGRAPH - ,0xEF67 ,0x9B01 //CJK UNIFIED IDEOGRAPH - ,0xEF68 ,0x9AFC //CJK UNIFIED IDEOGRAPH - ,0xEF69 ,0x9B48 //CJK UNIFIED IDEOGRAPH - ,0xEF6A ,0x9B9A //CJK UNIFIED IDEOGRAPH - ,0xEF6B ,0x9BA8 //CJK UNIFIED IDEOGRAPH - ,0xEF6C ,0x9B9E //CJK UNIFIED IDEOGRAPH - ,0xEF6D ,0x9B9B //CJK UNIFIED IDEOGRAPH - ,0xEF6E ,0x9BA6 //CJK UNIFIED IDEOGRAPH - ,0xEF6F ,0x9BA1 //CJK UNIFIED IDEOGRAPH - ,0xEF70 ,0x9BA5 //CJK UNIFIED IDEOGRAPH - ,0xEF71 ,0x9BA4 //CJK UNIFIED IDEOGRAPH - ,0xEF72 ,0x9B86 //CJK UNIFIED IDEOGRAPH - ,0xEF73 ,0x9BA2 //CJK UNIFIED IDEOGRAPH - ,0xEF74 ,0x9BA0 //CJK UNIFIED IDEOGRAPH - ,0xEF75 ,0x9BAF //CJK UNIFIED IDEOGRAPH - ,0xEF76 ,0x9D33 //CJK UNIFIED IDEOGRAPH - ,0xEF77 ,0x9D41 //CJK UNIFIED IDEOGRAPH - ,0xEF78 ,0x9D67 //CJK UNIFIED IDEOGRAPH - ,0xEF79 ,0x9D36 //CJK UNIFIED IDEOGRAPH - ,0xEF7A ,0x9D2E //CJK UNIFIED IDEOGRAPH - ,0xEF7B ,0x9D2F //CJK UNIFIED IDEOGRAPH - ,0xEF7C ,0x9D31 //CJK UNIFIED IDEOGRAPH - ,0xEF7D ,0x9D38 //CJK UNIFIED IDEOGRAPH - ,0xEF7E ,0x9D30 //CJK UNIFIED IDEOGRAPH - ,0xEFA1 ,0x9D45 //CJK UNIFIED IDEOGRAPH - ,0xEFA2 ,0x9D42 //CJK UNIFIED IDEOGRAPH - ,0xEFA3 ,0x9D43 //CJK UNIFIED IDEOGRAPH - ,0xEFA4 ,0x9D3E //CJK UNIFIED IDEOGRAPH - ,0xEFA5 ,0x9D37 //CJK UNIFIED IDEOGRAPH - ,0xEFA6 ,0x9D40 //CJK UNIFIED IDEOGRAPH - ,0xEFA7 ,0x9D3D //CJK UNIFIED IDEOGRAPH - ,0xEFA8 ,0x7FF5 //CJK UNIFIED IDEOGRAPH - ,0xEFA9 ,0x9D2D //CJK UNIFIED IDEOGRAPH - ,0xEFAA ,0x9E8A //CJK UNIFIED IDEOGRAPH - ,0xEFAB ,0x9E89 //CJK UNIFIED IDEOGRAPH - ,0xEFAC ,0x9E8D //CJK UNIFIED IDEOGRAPH - ,0xEFAD ,0x9EB0 //CJK UNIFIED IDEOGRAPH - ,0xEFAE ,0x9EC8 //CJK UNIFIED IDEOGRAPH - ,0xEFAF ,0x9EDA //CJK UNIFIED IDEOGRAPH - ,0xEFB0 ,0x9EFB //CJK UNIFIED IDEOGRAPH - ,0xEFB1 ,0x9EFF //CJK UNIFIED IDEOGRAPH - ,0xEFB2 ,0x9F24 //CJK UNIFIED IDEOGRAPH - ,0xEFB3 ,0x9F23 //CJK UNIFIED IDEOGRAPH - ,0xEFB4 ,0x9F22 //CJK UNIFIED IDEOGRAPH - ,0xEFB5 ,0x9F54 //CJK UNIFIED IDEOGRAPH - ,0xEFB6 ,0x9FA0 //CJK UNIFIED IDEOGRAPH - ,0xEFB7 ,0x5131 //CJK UNIFIED IDEOGRAPH - ,0xEFB8 ,0x512D //CJK UNIFIED IDEOGRAPH - ,0xEFB9 ,0x512E //CJK UNIFIED IDEOGRAPH - ,0xEFBA ,0x5698 //CJK UNIFIED IDEOGRAPH - ,0xEFBB ,0x569C //CJK UNIFIED IDEOGRAPH - ,0xEFBC ,0x5697 //CJK UNIFIED IDEOGRAPH - ,0xEFBD ,0x569A //CJK UNIFIED IDEOGRAPH - ,0xEFBE ,0x569D //CJK UNIFIED IDEOGRAPH - ,0xEFBF ,0x5699 //CJK UNIFIED IDEOGRAPH - ,0xEFC0 ,0x5970 //CJK UNIFIED IDEOGRAPH - ,0xEFC1 ,0x5B3C //CJK UNIFIED IDEOGRAPH - ,0xEFC2 ,0x5C69 //CJK UNIFIED IDEOGRAPH - ,0xEFC3 ,0x5C6A //CJK UNIFIED IDEOGRAPH - ,0xEFC4 ,0x5DC0 //CJK UNIFIED IDEOGRAPH - ,0xEFC5 ,0x5E6D //CJK UNIFIED IDEOGRAPH - ,0xEFC6 ,0x5E6E //CJK UNIFIED IDEOGRAPH - ,0xEFC7 ,0x61D8 //CJK UNIFIED IDEOGRAPH - ,0xEFC8 ,0x61DF //CJK UNIFIED IDEOGRAPH - ,0xEFC9 ,0x61ED //CJK UNIFIED IDEOGRAPH - ,0xEFCA ,0x61EE //CJK UNIFIED IDEOGRAPH - ,0xEFCB ,0x61F1 //CJK UNIFIED IDEOGRAPH - ,0xEFCC ,0x61EA //CJK UNIFIED IDEOGRAPH - ,0xEFCD ,0x61F0 //CJK UNIFIED IDEOGRAPH - ,0xEFCE ,0x61EB //CJK UNIFIED IDEOGRAPH - ,0xEFCF ,0x61D6 //CJK UNIFIED IDEOGRAPH - ,0xEFD0 ,0x61E9 //CJK UNIFIED IDEOGRAPH - ,0xEFD1 ,0x64FF //CJK UNIFIED IDEOGRAPH - ,0xEFD2 ,0x6504 //CJK UNIFIED IDEOGRAPH - ,0xEFD3 ,0x64FD //CJK UNIFIED IDEOGRAPH - ,0xEFD4 ,0x64F8 //CJK UNIFIED IDEOGRAPH - ,0xEFD5 ,0x6501 //CJK UNIFIED IDEOGRAPH - ,0xEFD6 ,0x6503 //CJK UNIFIED IDEOGRAPH - ,0xEFD7 ,0x64FC //CJK UNIFIED IDEOGRAPH - ,0xEFD8 ,0x6594 //CJK UNIFIED IDEOGRAPH - ,0xEFD9 ,0x65DB //CJK UNIFIED IDEOGRAPH - ,0xEFDA ,0x66DA //CJK UNIFIED IDEOGRAPH - ,0xEFDB ,0x66DB //CJK UNIFIED IDEOGRAPH - ,0xEFDC ,0x66D8 //CJK UNIFIED IDEOGRAPH - ,0xEFDD ,0x6AC5 //CJK UNIFIED IDEOGRAPH - ,0xEFDE ,0x6AB9 //CJK UNIFIED IDEOGRAPH - ,0xEFDF ,0x6ABD //CJK UNIFIED IDEOGRAPH - ,0xEFE0 ,0x6AE1 //CJK UNIFIED IDEOGRAPH - ,0xEFE1 ,0x6AC6 //CJK UNIFIED IDEOGRAPH - ,0xEFE2 ,0x6ABA //CJK UNIFIED IDEOGRAPH - ,0xEFE3 ,0x6AB6 //CJK UNIFIED IDEOGRAPH - ,0xEFE4 ,0x6AB7 //CJK UNIFIED IDEOGRAPH - ,0xEFE5 ,0x6AC7 //CJK UNIFIED IDEOGRAPH - ,0xEFE6 ,0x6AB4 //CJK UNIFIED IDEOGRAPH - ,0xEFE7 ,0x6AAD //CJK UNIFIED IDEOGRAPH - ,0xEFE8 ,0x6B5E //CJK UNIFIED IDEOGRAPH - ,0xEFE9 ,0x6BC9 //CJK UNIFIED IDEOGRAPH - ,0xEFEA ,0x6C0B //CJK UNIFIED IDEOGRAPH - ,0xEFEB ,0x7007 //CJK UNIFIED IDEOGRAPH - ,0xEFEC ,0x700C //CJK UNIFIED IDEOGRAPH - ,0xEFED ,0x700D //CJK UNIFIED IDEOGRAPH - ,0xEFEE ,0x7001 //CJK UNIFIED IDEOGRAPH - ,0xEFEF ,0x7005 //CJK UNIFIED IDEOGRAPH - ,0xEFF0 ,0x7014 //CJK UNIFIED IDEOGRAPH - ,0xEFF1 ,0x700E //CJK UNIFIED IDEOGRAPH - ,0xEFF2 ,0x6FFF //CJK UNIFIED IDEOGRAPH - ,0xEFF3 ,0x7000 //CJK UNIFIED IDEOGRAPH - ,0xEFF4 ,0x6FFB //CJK UNIFIED IDEOGRAPH - ,0xEFF5 ,0x7026 //CJK UNIFIED IDEOGRAPH - ,0xEFF6 ,0x6FFC //CJK UNIFIED IDEOGRAPH - ,0xEFF7 ,0x6FF7 //CJK UNIFIED IDEOGRAPH - ,0xEFF8 ,0x700A //CJK UNIFIED IDEOGRAPH - ,0xEFF9 ,0x7201 //CJK UNIFIED IDEOGRAPH - ,0xEFFA ,0x71FF //CJK UNIFIED IDEOGRAPH - ,0xEFFB ,0x71F9 //CJK UNIFIED IDEOGRAPH - ,0xEFFC ,0x7203 //CJK UNIFIED IDEOGRAPH - ,0xEFFD ,0x71FD //CJK UNIFIED IDEOGRAPH - ,0xEFFE ,0x7376 //CJK UNIFIED IDEOGRAPH - ,0xF040 ,0x74B8 //CJK UNIFIED IDEOGRAPH - ,0xF041 ,0x74C0 //CJK UNIFIED IDEOGRAPH - ,0xF042 ,0x74B5 //CJK UNIFIED IDEOGRAPH - ,0xF043 ,0x74C1 //CJK UNIFIED IDEOGRAPH - ,0xF044 ,0x74BE //CJK UNIFIED IDEOGRAPH - ,0xF045 ,0x74B6 //CJK UNIFIED IDEOGRAPH - ,0xF046 ,0x74BB //CJK UNIFIED IDEOGRAPH - ,0xF047 ,0x74C2 //CJK UNIFIED IDEOGRAPH - ,0xF048 ,0x7514 //CJK UNIFIED IDEOGRAPH - ,0xF049 ,0x7513 //CJK UNIFIED IDEOGRAPH - ,0xF04A ,0x765C //CJK UNIFIED IDEOGRAPH - ,0xF04B ,0x7664 //CJK UNIFIED IDEOGRAPH - ,0xF04C ,0x7659 //CJK UNIFIED IDEOGRAPH - ,0xF04D ,0x7650 //CJK UNIFIED IDEOGRAPH - ,0xF04E ,0x7653 //CJK UNIFIED IDEOGRAPH - ,0xF04F ,0x7657 //CJK UNIFIED IDEOGRAPH - ,0xF050 ,0x765A //CJK UNIFIED IDEOGRAPH - ,0xF051 ,0x76A6 //CJK UNIFIED IDEOGRAPH - ,0xF052 ,0x76BD //CJK UNIFIED IDEOGRAPH - ,0xF053 ,0x76EC //CJK UNIFIED IDEOGRAPH - ,0xF054 ,0x77C2 //CJK UNIFIED IDEOGRAPH - ,0xF055 ,0x77BA //CJK UNIFIED IDEOGRAPH - ,0xF056 ,0x78FF //CJK UNIFIED IDEOGRAPH - ,0xF057 ,0x790C //CJK UNIFIED IDEOGRAPH - ,0xF058 ,0x7913 //CJK UNIFIED IDEOGRAPH - ,0xF059 ,0x7914 //CJK UNIFIED IDEOGRAPH - ,0xF05A ,0x7909 //CJK UNIFIED IDEOGRAPH - ,0xF05B ,0x7910 //CJK UNIFIED IDEOGRAPH - ,0xF05C ,0x7912 //CJK UNIFIED IDEOGRAPH - ,0xF05D ,0x7911 //CJK UNIFIED IDEOGRAPH - ,0xF05E ,0x79AD //CJK UNIFIED IDEOGRAPH - ,0xF05F ,0x79AC //CJK UNIFIED IDEOGRAPH - ,0xF060 ,0x7A5F //CJK UNIFIED IDEOGRAPH - ,0xF061 ,0x7C1C //CJK UNIFIED IDEOGRAPH - ,0xF062 ,0x7C29 //CJK UNIFIED IDEOGRAPH - ,0xF063 ,0x7C19 //CJK UNIFIED IDEOGRAPH - ,0xF064 ,0x7C20 //CJK UNIFIED IDEOGRAPH - ,0xF065 ,0x7C1F //CJK UNIFIED IDEOGRAPH - ,0xF066 ,0x7C2D //CJK UNIFIED IDEOGRAPH - ,0xF067 ,0x7C1D //CJK UNIFIED IDEOGRAPH - ,0xF068 ,0x7C26 //CJK UNIFIED IDEOGRAPH - ,0xF069 ,0x7C28 //CJK UNIFIED IDEOGRAPH - ,0xF06A ,0x7C22 //CJK UNIFIED IDEOGRAPH - ,0xF06B ,0x7C25 //CJK UNIFIED IDEOGRAPH - ,0xF06C ,0x7C30 //CJK UNIFIED IDEOGRAPH - ,0xF06D ,0x7E5C //CJK UNIFIED IDEOGRAPH - ,0xF06E ,0x7E50 //CJK UNIFIED IDEOGRAPH - ,0xF06F ,0x7E56 //CJK UNIFIED IDEOGRAPH - ,0xF070 ,0x7E63 //CJK UNIFIED IDEOGRAPH - ,0xF071 ,0x7E58 //CJK UNIFIED IDEOGRAPH - ,0xF072 ,0x7E62 //CJK UNIFIED IDEOGRAPH - ,0xF073 ,0x7E5F //CJK UNIFIED IDEOGRAPH - ,0xF074 ,0x7E51 //CJK UNIFIED IDEOGRAPH - ,0xF075 ,0x7E60 //CJK UNIFIED IDEOGRAPH - ,0xF076 ,0x7E57 //CJK UNIFIED IDEOGRAPH - ,0xF077 ,0x7E53 //CJK UNIFIED IDEOGRAPH - ,0xF078 ,0x7FB5 //CJK UNIFIED IDEOGRAPH - ,0xF079 ,0x7FB3 //CJK UNIFIED IDEOGRAPH - ,0xF07A ,0x7FF7 //CJK UNIFIED IDEOGRAPH - ,0xF07B ,0x7FF8 //CJK UNIFIED IDEOGRAPH - ,0xF07C ,0x8075 //CJK UNIFIED IDEOGRAPH - ,0xF07D ,0x81D1 //CJK UNIFIED IDEOGRAPH - ,0xF07E ,0x81D2 //CJK UNIFIED IDEOGRAPH - ,0xF0A1 ,0x81D0 //CJK UNIFIED IDEOGRAPH - ,0xF0A2 ,0x825F //CJK UNIFIED IDEOGRAPH - ,0xF0A3 ,0x825E //CJK UNIFIED IDEOGRAPH - ,0xF0A4 ,0x85B4 //CJK UNIFIED IDEOGRAPH - ,0xF0A5 ,0x85C6 //CJK UNIFIED IDEOGRAPH - ,0xF0A6 ,0x85C0 //CJK UNIFIED IDEOGRAPH - ,0xF0A7 ,0x85C3 //CJK UNIFIED IDEOGRAPH - ,0xF0A8 ,0x85C2 //CJK UNIFIED IDEOGRAPH - ,0xF0A9 ,0x85B3 //CJK UNIFIED IDEOGRAPH - ,0xF0AA ,0x85B5 //CJK UNIFIED IDEOGRAPH - ,0xF0AB ,0x85BD //CJK UNIFIED IDEOGRAPH - ,0xF0AC ,0x85C7 //CJK UNIFIED IDEOGRAPH - ,0xF0AD ,0x85C4 //CJK UNIFIED IDEOGRAPH - ,0xF0AE ,0x85BF //CJK UNIFIED IDEOGRAPH - ,0xF0AF ,0x85CB //CJK UNIFIED IDEOGRAPH - ,0xF0B0 ,0x85CE //CJK UNIFIED IDEOGRAPH - ,0xF0B1 ,0x85C8 //CJK UNIFIED IDEOGRAPH - ,0xF0B2 ,0x85C5 //CJK UNIFIED IDEOGRAPH - ,0xF0B3 ,0x85B1 //CJK UNIFIED IDEOGRAPH - ,0xF0B4 ,0x85B6 //CJK UNIFIED IDEOGRAPH - ,0xF0B5 ,0x85D2 //CJK UNIFIED IDEOGRAPH - ,0xF0B6 ,0x8624 //CJK UNIFIED IDEOGRAPH - ,0xF0B7 ,0x85B8 //CJK UNIFIED IDEOGRAPH - ,0xF0B8 ,0x85B7 //CJK UNIFIED IDEOGRAPH - ,0xF0B9 ,0x85BE //CJK UNIFIED IDEOGRAPH - ,0xF0BA ,0x8669 //CJK UNIFIED IDEOGRAPH - ,0xF0BB ,0x87E7 //CJK UNIFIED IDEOGRAPH - ,0xF0BC ,0x87E6 //CJK UNIFIED IDEOGRAPH - ,0xF0BD ,0x87E2 //CJK UNIFIED IDEOGRAPH - ,0xF0BE ,0x87DB //CJK UNIFIED IDEOGRAPH - ,0xF0BF ,0x87EB //CJK UNIFIED IDEOGRAPH - ,0xF0C0 ,0x87EA //CJK UNIFIED IDEOGRAPH - ,0xF0C1 ,0x87E5 //CJK UNIFIED IDEOGRAPH - ,0xF0C2 ,0x87DF //CJK UNIFIED IDEOGRAPH - ,0xF0C3 ,0x87F3 //CJK UNIFIED IDEOGRAPH - ,0xF0C4 ,0x87E4 //CJK UNIFIED IDEOGRAPH - ,0xF0C5 ,0x87D4 //CJK UNIFIED IDEOGRAPH - ,0xF0C6 ,0x87DC //CJK UNIFIED IDEOGRAPH - ,0xF0C7 ,0x87D3 //CJK UNIFIED IDEOGRAPH - ,0xF0C8 ,0x87ED //CJK UNIFIED IDEOGRAPH - ,0xF0C9 ,0x87D8 //CJK UNIFIED IDEOGRAPH - ,0xF0CA ,0x87E3 //CJK UNIFIED IDEOGRAPH - ,0xF0CB ,0x87A4 //CJK UNIFIED IDEOGRAPH - ,0xF0CC ,0x87D7 //CJK UNIFIED IDEOGRAPH - ,0xF0CD ,0x87D9 //CJK UNIFIED IDEOGRAPH - ,0xF0CE ,0x8801 //CJK UNIFIED IDEOGRAPH - ,0xF0CF ,0x87F4 //CJK UNIFIED IDEOGRAPH - ,0xF0D0 ,0x87E8 //CJK UNIFIED IDEOGRAPH - ,0xF0D1 ,0x87DD //CJK UNIFIED IDEOGRAPH - ,0xF0D2 ,0x8953 //CJK UNIFIED IDEOGRAPH - ,0xF0D3 ,0x894B //CJK UNIFIED IDEOGRAPH - ,0xF0D4 ,0x894F //CJK UNIFIED IDEOGRAPH - ,0xF0D5 ,0x894C //CJK UNIFIED IDEOGRAPH - ,0xF0D6 ,0x8946 //CJK UNIFIED IDEOGRAPH - ,0xF0D7 ,0x8950 //CJK UNIFIED IDEOGRAPH - ,0xF0D8 ,0x8951 //CJK UNIFIED IDEOGRAPH - ,0xF0D9 ,0x8949 //CJK UNIFIED IDEOGRAPH - ,0xF0DA ,0x8B2A //CJK UNIFIED IDEOGRAPH - ,0xF0DB ,0x8B27 //CJK UNIFIED IDEOGRAPH - ,0xF0DC ,0x8B23 //CJK UNIFIED IDEOGRAPH - ,0xF0DD ,0x8B33 //CJK UNIFIED IDEOGRAPH - ,0xF0DE ,0x8B30 //CJK UNIFIED IDEOGRAPH - ,0xF0DF ,0x8B35 //CJK UNIFIED IDEOGRAPH - ,0xF0E0 ,0x8B47 //CJK UNIFIED IDEOGRAPH - ,0xF0E1 ,0x8B2F //CJK UNIFIED IDEOGRAPH - ,0xF0E2 ,0x8B3C //CJK UNIFIED IDEOGRAPH - ,0xF0E3 ,0x8B3E //CJK UNIFIED IDEOGRAPH - ,0xF0E4 ,0x8B31 //CJK UNIFIED IDEOGRAPH - ,0xF0E5 ,0x8B25 //CJK UNIFIED IDEOGRAPH - ,0xF0E6 ,0x8B37 //CJK UNIFIED IDEOGRAPH - ,0xF0E7 ,0x8B26 //CJK UNIFIED IDEOGRAPH - ,0xF0E8 ,0x8B36 //CJK UNIFIED IDEOGRAPH - ,0xF0E9 ,0x8B2E //CJK UNIFIED IDEOGRAPH - ,0xF0EA ,0x8B24 //CJK UNIFIED IDEOGRAPH - ,0xF0EB ,0x8B3B //CJK UNIFIED IDEOGRAPH - ,0xF0EC ,0x8B3D //CJK UNIFIED IDEOGRAPH - ,0xF0ED ,0x8B3A //CJK UNIFIED IDEOGRAPH - ,0xF0EE ,0x8C42 //CJK UNIFIED IDEOGRAPH - ,0xF0EF ,0x8C75 //CJK UNIFIED IDEOGRAPH - ,0xF0F0 ,0x8C99 //CJK UNIFIED IDEOGRAPH - ,0xF0F1 ,0x8C98 //CJK UNIFIED IDEOGRAPH - ,0xF0F2 ,0x8C97 //CJK UNIFIED IDEOGRAPH - ,0xF0F3 ,0x8CFE //CJK UNIFIED IDEOGRAPH - ,0xF0F4 ,0x8D04 //CJK UNIFIED IDEOGRAPH - ,0xF0F5 ,0x8D02 //CJK UNIFIED IDEOGRAPH - ,0xF0F6 ,0x8D00 //CJK UNIFIED IDEOGRAPH - ,0xF0F7 ,0x8E5C //CJK UNIFIED IDEOGRAPH - ,0xF0F8 ,0x8E62 //CJK UNIFIED IDEOGRAPH - ,0xF0F9 ,0x8E60 //CJK UNIFIED IDEOGRAPH - ,0xF0FA ,0x8E57 //CJK UNIFIED IDEOGRAPH - ,0xF0FB ,0x8E56 //CJK UNIFIED IDEOGRAPH - ,0xF0FC ,0x8E5E //CJK UNIFIED IDEOGRAPH - ,0xF0FD ,0x8E65 //CJK UNIFIED IDEOGRAPH - ,0xF0FE ,0x8E67 //CJK UNIFIED IDEOGRAPH - ,0xF140 ,0x8E5B //CJK UNIFIED IDEOGRAPH - ,0xF141 ,0x8E5A //CJK UNIFIED IDEOGRAPH - ,0xF142 ,0x8E61 //CJK UNIFIED IDEOGRAPH - ,0xF143 ,0x8E5D //CJK UNIFIED IDEOGRAPH - ,0xF144 ,0x8E69 //CJK UNIFIED IDEOGRAPH - ,0xF145 ,0x8E54 //CJK UNIFIED IDEOGRAPH - ,0xF146 ,0x8F46 //CJK UNIFIED IDEOGRAPH - ,0xF147 ,0x8F47 //CJK UNIFIED IDEOGRAPH - ,0xF148 ,0x8F48 //CJK UNIFIED IDEOGRAPH - ,0xF149 ,0x8F4B //CJK UNIFIED IDEOGRAPH - ,0xF14A ,0x9128 //CJK UNIFIED IDEOGRAPH - ,0xF14B ,0x913A //CJK UNIFIED IDEOGRAPH - ,0xF14C ,0x913B //CJK UNIFIED IDEOGRAPH - ,0xF14D ,0x913E //CJK UNIFIED IDEOGRAPH - ,0xF14E ,0x91A8 //CJK UNIFIED IDEOGRAPH - ,0xF14F ,0x91A5 //CJK UNIFIED IDEOGRAPH - ,0xF150 ,0x91A7 //CJK UNIFIED IDEOGRAPH - ,0xF151 ,0x91AF //CJK UNIFIED IDEOGRAPH - ,0xF152 ,0x91AA //CJK UNIFIED IDEOGRAPH - ,0xF153 ,0x93B5 //CJK UNIFIED IDEOGRAPH - ,0xF154 ,0x938C //CJK UNIFIED IDEOGRAPH - ,0xF155 ,0x9392 //CJK UNIFIED IDEOGRAPH - ,0xF156 ,0x93B7 //CJK UNIFIED IDEOGRAPH - ,0xF157 ,0x939B //CJK UNIFIED IDEOGRAPH - ,0xF158 ,0x939D //CJK UNIFIED IDEOGRAPH - ,0xF159 ,0x9389 //CJK UNIFIED IDEOGRAPH - ,0xF15A ,0x93A7 //CJK UNIFIED IDEOGRAPH - ,0xF15B ,0x938E //CJK UNIFIED IDEOGRAPH - ,0xF15C ,0x93AA //CJK UNIFIED IDEOGRAPH - ,0xF15D ,0x939E //CJK UNIFIED IDEOGRAPH - ,0xF15E ,0x93A6 //CJK UNIFIED IDEOGRAPH - ,0xF15F ,0x9395 //CJK UNIFIED IDEOGRAPH - ,0xF160 ,0x9388 //CJK UNIFIED IDEOGRAPH - ,0xF161 ,0x9399 //CJK UNIFIED IDEOGRAPH - ,0xF162 ,0x939F //CJK UNIFIED IDEOGRAPH - ,0xF163 ,0x938D //CJK UNIFIED IDEOGRAPH - ,0xF164 ,0x93B1 //CJK UNIFIED IDEOGRAPH - ,0xF165 ,0x9391 //CJK UNIFIED IDEOGRAPH - ,0xF166 ,0x93B2 //CJK UNIFIED IDEOGRAPH - ,0xF167 ,0x93A4 //CJK UNIFIED IDEOGRAPH - ,0xF168 ,0x93A8 //CJK UNIFIED IDEOGRAPH - ,0xF169 ,0x93B4 //CJK UNIFIED IDEOGRAPH - ,0xF16A ,0x93A3 //CJK UNIFIED IDEOGRAPH - ,0xF16B ,0x93A5 //CJK UNIFIED IDEOGRAPH - ,0xF16C ,0x95D2 //CJK UNIFIED IDEOGRAPH - ,0xF16D ,0x95D3 //CJK UNIFIED IDEOGRAPH - ,0xF16E ,0x95D1 //CJK UNIFIED IDEOGRAPH - ,0xF16F ,0x96B3 //CJK UNIFIED IDEOGRAPH - ,0xF170 ,0x96D7 //CJK UNIFIED IDEOGRAPH - ,0xF171 ,0x96DA //CJK UNIFIED IDEOGRAPH - ,0xF172 ,0x5DC2 //CJK UNIFIED IDEOGRAPH - ,0xF173 ,0x96DF //CJK UNIFIED IDEOGRAPH - ,0xF174 ,0x96D8 //CJK UNIFIED IDEOGRAPH - ,0xF175 ,0x96DD //CJK UNIFIED IDEOGRAPH - ,0xF176 ,0x9723 //CJK UNIFIED IDEOGRAPH - ,0xF177 ,0x9722 //CJK UNIFIED IDEOGRAPH - ,0xF178 ,0x9725 //CJK UNIFIED IDEOGRAPH - ,0xF179 ,0x97AC //CJK UNIFIED IDEOGRAPH - ,0xF17A ,0x97AE //CJK UNIFIED IDEOGRAPH - ,0xF17B ,0x97A8 //CJK UNIFIED IDEOGRAPH - ,0xF17C ,0x97AB //CJK UNIFIED IDEOGRAPH - ,0xF17D ,0x97A4 //CJK UNIFIED IDEOGRAPH - ,0xF17E ,0x97AA //CJK UNIFIED IDEOGRAPH - ,0xF1A1 ,0x97A2 //CJK UNIFIED IDEOGRAPH - ,0xF1A2 ,0x97A5 //CJK UNIFIED IDEOGRAPH - ,0xF1A3 ,0x97D7 //CJK UNIFIED IDEOGRAPH - ,0xF1A4 ,0x97D9 //CJK UNIFIED IDEOGRAPH - ,0xF1A5 ,0x97D6 //CJK UNIFIED IDEOGRAPH - ,0xF1A6 ,0x97D8 //CJK UNIFIED IDEOGRAPH - ,0xF1A7 ,0x97FA //CJK UNIFIED IDEOGRAPH - ,0xF1A8 ,0x9850 //CJK UNIFIED IDEOGRAPH - ,0xF1A9 ,0x9851 //CJK UNIFIED IDEOGRAPH - ,0xF1AA ,0x9852 //CJK UNIFIED IDEOGRAPH - ,0xF1AB ,0x98B8 //CJK UNIFIED IDEOGRAPH - ,0xF1AC ,0x9941 //CJK UNIFIED IDEOGRAPH - ,0xF1AD ,0x993C //CJK UNIFIED IDEOGRAPH - ,0xF1AE ,0x993A //CJK UNIFIED IDEOGRAPH - ,0xF1AF ,0x9A0F //CJK UNIFIED IDEOGRAPH - ,0xF1B0 ,0x9A0B //CJK UNIFIED IDEOGRAPH - ,0xF1B1 ,0x9A09 //CJK UNIFIED IDEOGRAPH - ,0xF1B2 ,0x9A0D //CJK UNIFIED IDEOGRAPH - ,0xF1B3 ,0x9A04 //CJK UNIFIED IDEOGRAPH - ,0xF1B4 ,0x9A11 //CJK UNIFIED IDEOGRAPH - ,0xF1B5 ,0x9A0A //CJK UNIFIED IDEOGRAPH - ,0xF1B6 ,0x9A05 //CJK UNIFIED IDEOGRAPH - ,0xF1B7 ,0x9A07 //CJK UNIFIED IDEOGRAPH - ,0xF1B8 ,0x9A06 //CJK UNIFIED IDEOGRAPH - ,0xF1B9 ,0x9AC0 //CJK UNIFIED IDEOGRAPH - ,0xF1BA ,0x9ADC //CJK UNIFIED IDEOGRAPH - ,0xF1BB ,0x9B08 //CJK UNIFIED IDEOGRAPH - ,0xF1BC ,0x9B04 //CJK UNIFIED IDEOGRAPH - ,0xF1BD ,0x9B05 //CJK UNIFIED IDEOGRAPH - ,0xF1BE ,0x9B29 //CJK UNIFIED IDEOGRAPH - ,0xF1BF ,0x9B35 //CJK UNIFIED IDEOGRAPH - ,0xF1C0 ,0x9B4A //CJK UNIFIED IDEOGRAPH - ,0xF1C1 ,0x9B4C //CJK UNIFIED IDEOGRAPH - ,0xF1C2 ,0x9B4B //CJK UNIFIED IDEOGRAPH - ,0xF1C3 ,0x9BC7 //CJK UNIFIED IDEOGRAPH - ,0xF1C4 ,0x9BC6 //CJK UNIFIED IDEOGRAPH - ,0xF1C5 ,0x9BC3 //CJK UNIFIED IDEOGRAPH - ,0xF1C6 ,0x9BBF //CJK UNIFIED IDEOGRAPH - ,0xF1C7 ,0x9BC1 //CJK UNIFIED IDEOGRAPH - ,0xF1C8 ,0x9BB5 //CJK UNIFIED IDEOGRAPH - ,0xF1C9 ,0x9BB8 //CJK UNIFIED IDEOGRAPH - ,0xF1CA ,0x9BD3 //CJK UNIFIED IDEOGRAPH - ,0xF1CB ,0x9BB6 //CJK UNIFIED IDEOGRAPH - ,0xF1CC ,0x9BC4 //CJK UNIFIED IDEOGRAPH - ,0xF1CD ,0x9BB9 //CJK UNIFIED IDEOGRAPH - ,0xF1CE ,0x9BBD //CJK UNIFIED IDEOGRAPH - ,0xF1CF ,0x9D5C //CJK UNIFIED IDEOGRAPH - ,0xF1D0 ,0x9D53 //CJK UNIFIED IDEOGRAPH - ,0xF1D1 ,0x9D4F //CJK UNIFIED IDEOGRAPH - ,0xF1D2 ,0x9D4A //CJK UNIFIED IDEOGRAPH - ,0xF1D3 ,0x9D5B //CJK UNIFIED IDEOGRAPH - ,0xF1D4 ,0x9D4B //CJK UNIFIED IDEOGRAPH - ,0xF1D5 ,0x9D59 //CJK UNIFIED IDEOGRAPH - ,0xF1D6 ,0x9D56 //CJK UNIFIED IDEOGRAPH - ,0xF1D7 ,0x9D4C //CJK UNIFIED IDEOGRAPH - ,0xF1D8 ,0x9D57 //CJK UNIFIED IDEOGRAPH - ,0xF1D9 ,0x9D52 //CJK UNIFIED IDEOGRAPH - ,0xF1DA ,0x9D54 //CJK UNIFIED IDEOGRAPH - ,0xF1DB ,0x9D5F //CJK UNIFIED IDEOGRAPH - ,0xF1DC ,0x9D58 //CJK UNIFIED IDEOGRAPH - ,0xF1DD ,0x9D5A //CJK UNIFIED IDEOGRAPH - ,0xF1DE ,0x9E8E //CJK UNIFIED IDEOGRAPH - ,0xF1DF ,0x9E8C //CJK UNIFIED IDEOGRAPH - ,0xF1E0 ,0x9EDF //CJK UNIFIED IDEOGRAPH - ,0xF1E1 ,0x9F01 //CJK UNIFIED IDEOGRAPH - ,0xF1E2 ,0x9F00 //CJK UNIFIED IDEOGRAPH - ,0xF1E3 ,0x9F16 //CJK UNIFIED IDEOGRAPH - ,0xF1E4 ,0x9F25 //CJK UNIFIED IDEOGRAPH - ,0xF1E5 ,0x9F2B //CJK UNIFIED IDEOGRAPH - ,0xF1E6 ,0x9F2A //CJK UNIFIED IDEOGRAPH - ,0xF1E7 ,0x9F29 //CJK UNIFIED IDEOGRAPH - ,0xF1E8 ,0x9F28 //CJK UNIFIED IDEOGRAPH - ,0xF1E9 ,0x9F4C //CJK UNIFIED IDEOGRAPH - ,0xF1EA ,0x9F55 //CJK UNIFIED IDEOGRAPH - ,0xF1EB ,0x5134 //CJK UNIFIED IDEOGRAPH - ,0xF1EC ,0x5135 //CJK UNIFIED IDEOGRAPH - ,0xF1ED ,0x5296 //CJK UNIFIED IDEOGRAPH - ,0xF1EE ,0x52F7 //CJK UNIFIED IDEOGRAPH - ,0xF1EF ,0x53B4 //CJK UNIFIED IDEOGRAPH - ,0xF1F0 ,0x56AB //CJK UNIFIED IDEOGRAPH - ,0xF1F1 ,0x56AD //CJK UNIFIED IDEOGRAPH - ,0xF1F2 ,0x56A6 //CJK UNIFIED IDEOGRAPH - ,0xF1F3 ,0x56A7 //CJK UNIFIED IDEOGRAPH - ,0xF1F4 ,0x56AA //CJK UNIFIED IDEOGRAPH - ,0xF1F5 ,0x56AC //CJK UNIFIED IDEOGRAPH - ,0xF1F6 ,0x58DA //CJK UNIFIED IDEOGRAPH - ,0xF1F7 ,0x58DD //CJK UNIFIED IDEOGRAPH - ,0xF1F8 ,0x58DB //CJK UNIFIED IDEOGRAPH - ,0xF1F9 ,0x5912 //CJK UNIFIED IDEOGRAPH - ,0xF1FA ,0x5B3D //CJK UNIFIED IDEOGRAPH - ,0xF1FB ,0x5B3E //CJK UNIFIED IDEOGRAPH - ,0xF1FC ,0x5B3F //CJK UNIFIED IDEOGRAPH - ,0xF1FD ,0x5DC3 //CJK UNIFIED IDEOGRAPH - ,0xF1FE ,0x5E70 //CJK UNIFIED IDEOGRAPH - ,0xF240 ,0x5FBF //CJK UNIFIED IDEOGRAPH - ,0xF241 ,0x61FB //CJK UNIFIED IDEOGRAPH - ,0xF242 ,0x6507 //CJK UNIFIED IDEOGRAPH - ,0xF243 ,0x6510 //CJK UNIFIED IDEOGRAPH - ,0xF244 ,0x650D //CJK UNIFIED IDEOGRAPH - ,0xF245 ,0x6509 //CJK UNIFIED IDEOGRAPH - ,0xF246 ,0x650C //CJK UNIFIED IDEOGRAPH - ,0xF247 ,0x650E //CJK UNIFIED IDEOGRAPH - ,0xF248 ,0x6584 //CJK UNIFIED IDEOGRAPH - ,0xF249 ,0x65DE //CJK UNIFIED IDEOGRAPH - ,0xF24A ,0x65DD //CJK UNIFIED IDEOGRAPH - ,0xF24B ,0x66DE //CJK UNIFIED IDEOGRAPH - ,0xF24C ,0x6AE7 //CJK UNIFIED IDEOGRAPH - ,0xF24D ,0x6AE0 //CJK UNIFIED IDEOGRAPH - ,0xF24E ,0x6ACC //CJK UNIFIED IDEOGRAPH - ,0xF24F ,0x6AD1 //CJK UNIFIED IDEOGRAPH - ,0xF250 ,0x6AD9 //CJK UNIFIED IDEOGRAPH - ,0xF251 ,0x6ACB //CJK UNIFIED IDEOGRAPH - ,0xF252 ,0x6ADF //CJK UNIFIED IDEOGRAPH - ,0xF253 ,0x6ADC //CJK UNIFIED IDEOGRAPH - ,0xF254 ,0x6AD0 //CJK UNIFIED IDEOGRAPH - ,0xF255 ,0x6AEB //CJK UNIFIED IDEOGRAPH - ,0xF256 ,0x6ACF //CJK UNIFIED IDEOGRAPH - ,0xF257 ,0x6ACD //CJK UNIFIED IDEOGRAPH - ,0xF258 ,0x6ADE //CJK UNIFIED IDEOGRAPH - ,0xF259 ,0x6B60 //CJK UNIFIED IDEOGRAPH - ,0xF25A ,0x6BB0 //CJK UNIFIED IDEOGRAPH - ,0xF25B ,0x6C0C //CJK UNIFIED IDEOGRAPH - ,0xF25C ,0x7019 //CJK UNIFIED IDEOGRAPH - ,0xF25D ,0x7027 //CJK UNIFIED IDEOGRAPH - ,0xF25E ,0x7020 //CJK UNIFIED IDEOGRAPH - ,0xF25F ,0x7016 //CJK UNIFIED IDEOGRAPH - ,0xF260 ,0x702B //CJK UNIFIED IDEOGRAPH - ,0xF261 ,0x7021 //CJK UNIFIED IDEOGRAPH - ,0xF262 ,0x7022 //CJK UNIFIED IDEOGRAPH - ,0xF263 ,0x7023 //CJK UNIFIED IDEOGRAPH - ,0xF264 ,0x7029 //CJK UNIFIED IDEOGRAPH - ,0xF265 ,0x7017 //CJK UNIFIED IDEOGRAPH - ,0xF266 ,0x7024 //CJK UNIFIED IDEOGRAPH - ,0xF267 ,0x701C //CJK UNIFIED IDEOGRAPH - ,0xF268 ,0x702A //CJK UNIFIED IDEOGRAPH - ,0xF269 ,0x720C //CJK UNIFIED IDEOGRAPH - ,0xF26A ,0x720A //CJK UNIFIED IDEOGRAPH - ,0xF26B ,0x7207 //CJK UNIFIED IDEOGRAPH - ,0xF26C ,0x7202 //CJK UNIFIED IDEOGRAPH - ,0xF26D ,0x7205 //CJK UNIFIED IDEOGRAPH - ,0xF26E ,0x72A5 //CJK UNIFIED IDEOGRAPH - ,0xF26F ,0x72A6 //CJK UNIFIED IDEOGRAPH - ,0xF270 ,0x72A4 //CJK UNIFIED IDEOGRAPH - ,0xF271 ,0x72A3 //CJK UNIFIED IDEOGRAPH - ,0xF272 ,0x72A1 //CJK UNIFIED IDEOGRAPH - ,0xF273 ,0x74CB //CJK UNIFIED IDEOGRAPH - ,0xF274 ,0x74C5 //CJK UNIFIED IDEOGRAPH - ,0xF275 ,0x74B7 //CJK UNIFIED IDEOGRAPH - ,0xF276 ,0x74C3 //CJK UNIFIED IDEOGRAPH - ,0xF277 ,0x7516 //CJK UNIFIED IDEOGRAPH - ,0xF278 ,0x7660 //CJK UNIFIED IDEOGRAPH - ,0xF279 ,0x77C9 //CJK UNIFIED IDEOGRAPH - ,0xF27A ,0x77CA //CJK UNIFIED IDEOGRAPH - ,0xF27B ,0x77C4 //CJK UNIFIED IDEOGRAPH - ,0xF27C ,0x77F1 //CJK UNIFIED IDEOGRAPH - ,0xF27D ,0x791D //CJK UNIFIED IDEOGRAPH - ,0xF27E ,0x791B //CJK UNIFIED IDEOGRAPH - ,0xF2A1 ,0x7921 //CJK UNIFIED IDEOGRAPH - ,0xF2A2 ,0x791C //CJK UNIFIED IDEOGRAPH - ,0xF2A3 ,0x7917 //CJK UNIFIED IDEOGRAPH - ,0xF2A4 ,0x791E //CJK UNIFIED IDEOGRAPH - ,0xF2A5 ,0x79B0 //CJK UNIFIED IDEOGRAPH - ,0xF2A6 ,0x7A67 //CJK UNIFIED IDEOGRAPH - ,0xF2A7 ,0x7A68 //CJK UNIFIED IDEOGRAPH - ,0xF2A8 ,0x7C33 //CJK UNIFIED IDEOGRAPH - ,0xF2A9 ,0x7C3C //CJK UNIFIED IDEOGRAPH - ,0xF2AA ,0x7C39 //CJK UNIFIED IDEOGRAPH - ,0xF2AB ,0x7C2C //CJK UNIFIED IDEOGRAPH - ,0xF2AC ,0x7C3B //CJK UNIFIED IDEOGRAPH - ,0xF2AD ,0x7CEC //CJK UNIFIED IDEOGRAPH - ,0xF2AE ,0x7CEA //CJK UNIFIED IDEOGRAPH - ,0xF2AF ,0x7E76 //CJK UNIFIED IDEOGRAPH - ,0xF2B0 ,0x7E75 //CJK UNIFIED IDEOGRAPH - ,0xF2B1 ,0x7E78 //CJK UNIFIED IDEOGRAPH - ,0xF2B2 ,0x7E70 //CJK UNIFIED IDEOGRAPH - ,0xF2B3 ,0x7E77 //CJK UNIFIED IDEOGRAPH - ,0xF2B4 ,0x7E6F //CJK UNIFIED IDEOGRAPH - ,0xF2B5 ,0x7E7A //CJK UNIFIED IDEOGRAPH - ,0xF2B6 ,0x7E72 //CJK UNIFIED IDEOGRAPH - ,0xF2B7 ,0x7E74 //CJK UNIFIED IDEOGRAPH - ,0xF2B8 ,0x7E68 //CJK UNIFIED IDEOGRAPH - ,0xF2B9 ,0x7F4B //CJK UNIFIED IDEOGRAPH - ,0xF2BA ,0x7F4A //CJK UNIFIED IDEOGRAPH - ,0xF2BB ,0x7F83 //CJK UNIFIED IDEOGRAPH - ,0xF2BC ,0x7F86 //CJK UNIFIED IDEOGRAPH - ,0xF2BD ,0x7FB7 //CJK UNIFIED IDEOGRAPH - ,0xF2BE ,0x7FFD //CJK UNIFIED IDEOGRAPH - ,0xF2BF ,0x7FFE //CJK UNIFIED IDEOGRAPH - ,0xF2C0 ,0x8078 //CJK UNIFIED IDEOGRAPH - ,0xF2C1 ,0x81D7 //CJK UNIFIED IDEOGRAPH - ,0xF2C2 ,0x81D5 //CJK UNIFIED IDEOGRAPH - ,0xF2C3 ,0x8264 //CJK UNIFIED IDEOGRAPH - ,0xF2C4 ,0x8261 //CJK UNIFIED IDEOGRAPH - ,0xF2C5 ,0x8263 //CJK UNIFIED IDEOGRAPH - ,0xF2C6 ,0x85EB //CJK UNIFIED IDEOGRAPH - ,0xF2C7 ,0x85F1 //CJK UNIFIED IDEOGRAPH - ,0xF2C8 ,0x85ED //CJK UNIFIED IDEOGRAPH - ,0xF2C9 ,0x85D9 //CJK UNIFIED IDEOGRAPH - ,0xF2CA ,0x85E1 //CJK UNIFIED IDEOGRAPH - ,0xF2CB ,0x85E8 //CJK UNIFIED IDEOGRAPH - ,0xF2CC ,0x85DA //CJK UNIFIED IDEOGRAPH - ,0xF2CD ,0x85D7 //CJK UNIFIED IDEOGRAPH - ,0xF2CE ,0x85EC //CJK UNIFIED IDEOGRAPH - ,0xF2CF ,0x85F2 //CJK UNIFIED IDEOGRAPH - ,0xF2D0 ,0x85F8 //CJK UNIFIED IDEOGRAPH - ,0xF2D1 ,0x85D8 //CJK UNIFIED IDEOGRAPH - ,0xF2D2 ,0x85DF //CJK UNIFIED IDEOGRAPH - ,0xF2D3 ,0x85E3 //CJK UNIFIED IDEOGRAPH - ,0xF2D4 ,0x85DC //CJK UNIFIED IDEOGRAPH - ,0xF2D5 ,0x85D1 //CJK UNIFIED IDEOGRAPH - ,0xF2D6 ,0x85F0 //CJK UNIFIED IDEOGRAPH - ,0xF2D7 ,0x85E6 //CJK UNIFIED IDEOGRAPH - ,0xF2D8 ,0x85EF //CJK UNIFIED IDEOGRAPH - ,0xF2D9 ,0x85DE //CJK UNIFIED IDEOGRAPH - ,0xF2DA ,0x85E2 //CJK UNIFIED IDEOGRAPH - ,0xF2DB ,0x8800 //CJK UNIFIED IDEOGRAPH - ,0xF2DC ,0x87FA //CJK UNIFIED IDEOGRAPH - ,0xF2DD ,0x8803 //CJK UNIFIED IDEOGRAPH - ,0xF2DE ,0x87F6 //CJK UNIFIED IDEOGRAPH - ,0xF2DF ,0x87F7 //CJK UNIFIED IDEOGRAPH - ,0xF2E0 ,0x8809 //CJK UNIFIED IDEOGRAPH - ,0xF2E1 ,0x880C //CJK UNIFIED IDEOGRAPH - ,0xF2E2 ,0x880B //CJK UNIFIED IDEOGRAPH - ,0xF2E3 ,0x8806 //CJK UNIFIED IDEOGRAPH - ,0xF2E4 ,0x87FC //CJK UNIFIED IDEOGRAPH - ,0xF2E5 ,0x8808 //CJK UNIFIED IDEOGRAPH - ,0xF2E6 ,0x87FF //CJK UNIFIED IDEOGRAPH - ,0xF2E7 ,0x880A //CJK UNIFIED IDEOGRAPH - ,0xF2E8 ,0x8802 //CJK UNIFIED IDEOGRAPH - ,0xF2E9 ,0x8962 //CJK UNIFIED IDEOGRAPH - ,0xF2EA ,0x895A //CJK UNIFIED IDEOGRAPH - ,0xF2EB ,0x895B //CJK UNIFIED IDEOGRAPH - ,0xF2EC ,0x8957 //CJK UNIFIED IDEOGRAPH - ,0xF2ED ,0x8961 //CJK UNIFIED IDEOGRAPH - ,0xF2EE ,0x895C //CJK UNIFIED IDEOGRAPH - ,0xF2EF ,0x8958 //CJK UNIFIED IDEOGRAPH - ,0xF2F0 ,0x895D //CJK UNIFIED IDEOGRAPH - ,0xF2F1 ,0x8959 //CJK UNIFIED IDEOGRAPH - ,0xF2F2 ,0x8988 //CJK UNIFIED IDEOGRAPH - ,0xF2F3 ,0x89B7 //CJK UNIFIED IDEOGRAPH - ,0xF2F4 ,0x89B6 //CJK UNIFIED IDEOGRAPH - ,0xF2F5 ,0x89F6 //CJK UNIFIED IDEOGRAPH - ,0xF2F6 ,0x8B50 //CJK UNIFIED IDEOGRAPH - ,0xF2F7 ,0x8B48 //CJK UNIFIED IDEOGRAPH - ,0xF2F8 ,0x8B4A //CJK UNIFIED IDEOGRAPH - ,0xF2F9 ,0x8B40 //CJK UNIFIED IDEOGRAPH - ,0xF2FA ,0x8B53 //CJK UNIFIED IDEOGRAPH - ,0xF2FB ,0x8B56 //CJK UNIFIED IDEOGRAPH - ,0xF2FC ,0x8B54 //CJK UNIFIED IDEOGRAPH - ,0xF2FD ,0x8B4B //CJK UNIFIED IDEOGRAPH - ,0xF2FE ,0x8B55 //CJK UNIFIED IDEOGRAPH - ,0xF340 ,0x8B51 //CJK UNIFIED IDEOGRAPH - ,0xF341 ,0x8B42 //CJK UNIFIED IDEOGRAPH - ,0xF342 ,0x8B52 //CJK UNIFIED IDEOGRAPH - ,0xF343 ,0x8B57 //CJK UNIFIED IDEOGRAPH - ,0xF344 ,0x8C43 //CJK UNIFIED IDEOGRAPH - ,0xF345 ,0x8C77 //CJK UNIFIED IDEOGRAPH - ,0xF346 ,0x8C76 //CJK UNIFIED IDEOGRAPH - ,0xF347 ,0x8C9A //CJK UNIFIED IDEOGRAPH - ,0xF348 ,0x8D06 //CJK UNIFIED IDEOGRAPH - ,0xF349 ,0x8D07 //CJK UNIFIED IDEOGRAPH - ,0xF34A ,0x8D09 //CJK UNIFIED IDEOGRAPH - ,0xF34B ,0x8DAC //CJK UNIFIED IDEOGRAPH - ,0xF34C ,0x8DAA //CJK UNIFIED IDEOGRAPH - ,0xF34D ,0x8DAD //CJK UNIFIED IDEOGRAPH - ,0xF34E ,0x8DAB //CJK UNIFIED IDEOGRAPH - ,0xF34F ,0x8E6D //CJK UNIFIED IDEOGRAPH - ,0xF350 ,0x8E78 //CJK UNIFIED IDEOGRAPH - ,0xF351 ,0x8E73 //CJK UNIFIED IDEOGRAPH - ,0xF352 ,0x8E6A //CJK UNIFIED IDEOGRAPH - ,0xF353 ,0x8E6F //CJK UNIFIED IDEOGRAPH - ,0xF354 ,0x8E7B //CJK UNIFIED IDEOGRAPH - ,0xF355 ,0x8EC2 //CJK UNIFIED IDEOGRAPH - ,0xF356 ,0x8F52 //CJK UNIFIED IDEOGRAPH - ,0xF357 ,0x8F51 //CJK UNIFIED IDEOGRAPH - ,0xF358 ,0x8F4F //CJK UNIFIED IDEOGRAPH - ,0xF359 ,0x8F50 //CJK UNIFIED IDEOGRAPH - ,0xF35A ,0x8F53 //CJK UNIFIED IDEOGRAPH - ,0xF35B ,0x8FB4 //CJK UNIFIED IDEOGRAPH - ,0xF35C ,0x9140 //CJK UNIFIED IDEOGRAPH - ,0xF35D ,0x913F //CJK UNIFIED IDEOGRAPH - ,0xF35E ,0x91B0 //CJK UNIFIED IDEOGRAPH - ,0xF35F ,0x91AD //CJK UNIFIED IDEOGRAPH - ,0xF360 ,0x93DE //CJK UNIFIED IDEOGRAPH - ,0xF361 ,0x93C7 //CJK UNIFIED IDEOGRAPH - ,0xF362 ,0x93CF //CJK UNIFIED IDEOGRAPH - ,0xF363 ,0x93C2 //CJK UNIFIED IDEOGRAPH - ,0xF364 ,0x93DA //CJK UNIFIED IDEOGRAPH - ,0xF365 ,0x93D0 //CJK UNIFIED IDEOGRAPH - ,0xF366 ,0x93F9 //CJK UNIFIED IDEOGRAPH - ,0xF367 ,0x93EC //CJK UNIFIED IDEOGRAPH - ,0xF368 ,0x93CC //CJK UNIFIED IDEOGRAPH - ,0xF369 ,0x93D9 //CJK UNIFIED IDEOGRAPH - ,0xF36A ,0x93A9 //CJK UNIFIED IDEOGRAPH - ,0xF36B ,0x93E6 //CJK UNIFIED IDEOGRAPH - ,0xF36C ,0x93CA //CJK UNIFIED IDEOGRAPH - ,0xF36D ,0x93D4 //CJK UNIFIED IDEOGRAPH - ,0xF36E ,0x93EE //CJK UNIFIED IDEOGRAPH - ,0xF36F ,0x93E3 //CJK UNIFIED IDEOGRAPH - ,0xF370 ,0x93D5 //CJK UNIFIED IDEOGRAPH - ,0xF371 ,0x93C4 //CJK UNIFIED IDEOGRAPH - ,0xF372 ,0x93CE //CJK UNIFIED IDEOGRAPH - ,0xF373 ,0x93C0 //CJK UNIFIED IDEOGRAPH - ,0xF374 ,0x93D2 //CJK UNIFIED IDEOGRAPH - ,0xF375 ,0x93E7 //CJK UNIFIED IDEOGRAPH - ,0xF376 ,0x957D //CJK UNIFIED IDEOGRAPH - ,0xF377 ,0x95DA //CJK UNIFIED IDEOGRAPH - ,0xF378 ,0x95DB //CJK UNIFIED IDEOGRAPH - ,0xF379 ,0x96E1 //CJK UNIFIED IDEOGRAPH - ,0xF37A ,0x9729 //CJK UNIFIED IDEOGRAPH - ,0xF37B ,0x972B //CJK UNIFIED IDEOGRAPH - ,0xF37C ,0x972C //CJK UNIFIED IDEOGRAPH - ,0xF37D ,0x9728 //CJK UNIFIED IDEOGRAPH - ,0xF37E ,0x9726 //CJK UNIFIED IDEOGRAPH - ,0xF3A1 ,0x97B3 //CJK UNIFIED IDEOGRAPH - ,0xF3A2 ,0x97B7 //CJK UNIFIED IDEOGRAPH - ,0xF3A3 ,0x97B6 //CJK UNIFIED IDEOGRAPH - ,0xF3A4 ,0x97DD //CJK UNIFIED IDEOGRAPH - ,0xF3A5 ,0x97DE //CJK UNIFIED IDEOGRAPH - ,0xF3A6 ,0x97DF //CJK UNIFIED IDEOGRAPH - ,0xF3A7 ,0x985C //CJK UNIFIED IDEOGRAPH - ,0xF3A8 ,0x9859 //CJK UNIFIED IDEOGRAPH - ,0xF3A9 ,0x985D //CJK UNIFIED IDEOGRAPH - ,0xF3AA ,0x9857 //CJK UNIFIED IDEOGRAPH - ,0xF3AB ,0x98BF //CJK UNIFIED IDEOGRAPH - ,0xF3AC ,0x98BD //CJK UNIFIED IDEOGRAPH - ,0xF3AD ,0x98BB //CJK UNIFIED IDEOGRAPH - ,0xF3AE ,0x98BE //CJK UNIFIED IDEOGRAPH - ,0xF3AF ,0x9948 //CJK UNIFIED IDEOGRAPH - ,0xF3B0 ,0x9947 //CJK UNIFIED IDEOGRAPH - ,0xF3B1 ,0x9943 //CJK UNIFIED IDEOGRAPH - ,0xF3B2 ,0x99A6 //CJK UNIFIED IDEOGRAPH - ,0xF3B3 ,0x99A7 //CJK UNIFIED IDEOGRAPH - ,0xF3B4 ,0x9A1A //CJK UNIFIED IDEOGRAPH - ,0xF3B5 ,0x9A15 //CJK UNIFIED IDEOGRAPH - ,0xF3B6 ,0x9A25 //CJK UNIFIED IDEOGRAPH - ,0xF3B7 ,0x9A1D //CJK UNIFIED IDEOGRAPH - ,0xF3B8 ,0x9A24 //CJK UNIFIED IDEOGRAPH - ,0xF3B9 ,0x9A1B //CJK UNIFIED IDEOGRAPH - ,0xF3BA ,0x9A22 //CJK UNIFIED IDEOGRAPH - ,0xF3BB ,0x9A20 //CJK UNIFIED IDEOGRAPH - ,0xF3BC ,0x9A27 //CJK UNIFIED IDEOGRAPH - ,0xF3BD ,0x9A23 //CJK UNIFIED IDEOGRAPH - ,0xF3BE ,0x9A1E //CJK UNIFIED IDEOGRAPH - ,0xF3BF ,0x9A1C //CJK UNIFIED IDEOGRAPH - ,0xF3C0 ,0x9A14 //CJK UNIFIED IDEOGRAPH - ,0xF3C1 ,0x9AC2 //CJK UNIFIED IDEOGRAPH - ,0xF3C2 ,0x9B0B //CJK UNIFIED IDEOGRAPH - ,0xF3C3 ,0x9B0A //CJK UNIFIED IDEOGRAPH - ,0xF3C4 ,0x9B0E //CJK UNIFIED IDEOGRAPH - ,0xF3C5 ,0x9B0C //CJK UNIFIED IDEOGRAPH - ,0xF3C6 ,0x9B37 //CJK UNIFIED IDEOGRAPH - ,0xF3C7 ,0x9BEA //CJK UNIFIED IDEOGRAPH - ,0xF3C8 ,0x9BEB //CJK UNIFIED IDEOGRAPH - ,0xF3C9 ,0x9BE0 //CJK UNIFIED IDEOGRAPH - ,0xF3CA ,0x9BDE //CJK UNIFIED IDEOGRAPH - ,0xF3CB ,0x9BE4 //CJK UNIFIED IDEOGRAPH - ,0xF3CC ,0x9BE6 //CJK UNIFIED IDEOGRAPH - ,0xF3CD ,0x9BE2 //CJK UNIFIED IDEOGRAPH - ,0xF3CE ,0x9BF0 //CJK UNIFIED IDEOGRAPH - ,0xF3CF ,0x9BD4 //CJK UNIFIED IDEOGRAPH - ,0xF3D0 ,0x9BD7 //CJK UNIFIED IDEOGRAPH - ,0xF3D1 ,0x9BEC //CJK UNIFIED IDEOGRAPH - ,0xF3D2 ,0x9BDC //CJK UNIFIED IDEOGRAPH - ,0xF3D3 ,0x9BD9 //CJK UNIFIED IDEOGRAPH - ,0xF3D4 ,0x9BE5 //CJK UNIFIED IDEOGRAPH - ,0xF3D5 ,0x9BD5 //CJK UNIFIED IDEOGRAPH - ,0xF3D6 ,0x9BE1 //CJK UNIFIED IDEOGRAPH - ,0xF3D7 ,0x9BDA //CJK UNIFIED IDEOGRAPH - ,0xF3D8 ,0x9D77 //CJK UNIFIED IDEOGRAPH - ,0xF3D9 ,0x9D81 //CJK UNIFIED IDEOGRAPH - ,0xF3DA ,0x9D8A //CJK UNIFIED IDEOGRAPH - ,0xF3DB ,0x9D84 //CJK UNIFIED IDEOGRAPH - ,0xF3DC ,0x9D88 //CJK UNIFIED IDEOGRAPH - ,0xF3DD ,0x9D71 //CJK UNIFIED IDEOGRAPH - ,0xF3DE ,0x9D80 //CJK UNIFIED IDEOGRAPH - ,0xF3DF ,0x9D78 //CJK UNIFIED IDEOGRAPH - ,0xF3E0 ,0x9D86 //CJK UNIFIED IDEOGRAPH - ,0xF3E1 ,0x9D8B //CJK UNIFIED IDEOGRAPH - ,0xF3E2 ,0x9D8C //CJK UNIFIED IDEOGRAPH - ,0xF3E3 ,0x9D7D //CJK UNIFIED IDEOGRAPH - ,0xF3E4 ,0x9D6B //CJK UNIFIED IDEOGRAPH - ,0xF3E5 ,0x9D74 //CJK UNIFIED IDEOGRAPH - ,0xF3E6 ,0x9D75 //CJK UNIFIED IDEOGRAPH - ,0xF3E7 ,0x9D70 //CJK UNIFIED IDEOGRAPH - ,0xF3E8 ,0x9D69 //CJK UNIFIED IDEOGRAPH - ,0xF3E9 ,0x9D85 //CJK UNIFIED IDEOGRAPH - ,0xF3EA ,0x9D73 //CJK UNIFIED IDEOGRAPH - ,0xF3EB ,0x9D7B //CJK UNIFIED IDEOGRAPH - ,0xF3EC ,0x9D82 //CJK UNIFIED IDEOGRAPH - ,0xF3ED ,0x9D6F //CJK UNIFIED IDEOGRAPH - ,0xF3EE ,0x9D79 //CJK UNIFIED IDEOGRAPH - ,0xF3EF ,0x9D7F //CJK UNIFIED IDEOGRAPH - ,0xF3F0 ,0x9D87 //CJK UNIFIED IDEOGRAPH - ,0xF3F1 ,0x9D68 //CJK UNIFIED IDEOGRAPH - ,0xF3F2 ,0x9E94 //CJK UNIFIED IDEOGRAPH - ,0xF3F3 ,0x9E91 //CJK UNIFIED IDEOGRAPH - ,0xF3F4 ,0x9EC0 //CJK UNIFIED IDEOGRAPH - ,0xF3F5 ,0x9EFC //CJK UNIFIED IDEOGRAPH - ,0xF3F6 ,0x9F2D //CJK UNIFIED IDEOGRAPH - ,0xF3F7 ,0x9F40 //CJK UNIFIED IDEOGRAPH - ,0xF3F8 ,0x9F41 //CJK UNIFIED IDEOGRAPH - ,0xF3F9 ,0x9F4D //CJK UNIFIED IDEOGRAPH - ,0xF3FA ,0x9F56 //CJK UNIFIED IDEOGRAPH - ,0xF3FB ,0x9F57 //CJK UNIFIED IDEOGRAPH - ,0xF3FC ,0x9F58 //CJK UNIFIED IDEOGRAPH - ,0xF3FD ,0x5337 //CJK UNIFIED IDEOGRAPH - ,0xF3FE ,0x56B2 //CJK UNIFIED IDEOGRAPH - ,0xF440 ,0x56B5 //CJK UNIFIED IDEOGRAPH - ,0xF441 ,0x56B3 //CJK UNIFIED IDEOGRAPH - ,0xF442 ,0x58E3 //CJK UNIFIED IDEOGRAPH - ,0xF443 ,0x5B45 //CJK UNIFIED IDEOGRAPH - ,0xF444 ,0x5DC6 //CJK UNIFIED IDEOGRAPH - ,0xF445 ,0x5DC7 //CJK UNIFIED IDEOGRAPH - ,0xF446 ,0x5EEE //CJK UNIFIED IDEOGRAPH - ,0xF447 ,0x5EEF //CJK UNIFIED IDEOGRAPH - ,0xF448 ,0x5FC0 //CJK UNIFIED IDEOGRAPH - ,0xF449 ,0x5FC1 //CJK UNIFIED IDEOGRAPH - ,0xF44A ,0x61F9 //CJK UNIFIED IDEOGRAPH - ,0xF44B ,0x6517 //CJK UNIFIED IDEOGRAPH - ,0xF44C ,0x6516 //CJK UNIFIED IDEOGRAPH - ,0xF44D ,0x6515 //CJK UNIFIED IDEOGRAPH - ,0xF44E ,0x6513 //CJK UNIFIED IDEOGRAPH - ,0xF44F ,0x65DF //CJK UNIFIED IDEOGRAPH - ,0xF450 ,0x66E8 //CJK UNIFIED IDEOGRAPH - ,0xF451 ,0x66E3 //CJK UNIFIED IDEOGRAPH - ,0xF452 ,0x66E4 //CJK UNIFIED IDEOGRAPH - ,0xF453 ,0x6AF3 //CJK UNIFIED IDEOGRAPH - ,0xF454 ,0x6AF0 //CJK UNIFIED IDEOGRAPH - ,0xF455 ,0x6AEA //CJK UNIFIED IDEOGRAPH - ,0xF456 ,0x6AE8 //CJK UNIFIED IDEOGRAPH - ,0xF457 ,0x6AF9 //CJK UNIFIED IDEOGRAPH - ,0xF458 ,0x6AF1 //CJK UNIFIED IDEOGRAPH - ,0xF459 ,0x6AEE //CJK UNIFIED IDEOGRAPH - ,0xF45A ,0x6AEF //CJK UNIFIED IDEOGRAPH - ,0xF45B ,0x703C //CJK UNIFIED IDEOGRAPH - ,0xF45C ,0x7035 //CJK UNIFIED IDEOGRAPH - ,0xF45D ,0x702F //CJK UNIFIED IDEOGRAPH - ,0xF45E ,0x7037 //CJK UNIFIED IDEOGRAPH - ,0xF45F ,0x7034 //CJK UNIFIED IDEOGRAPH - ,0xF460 ,0x7031 //CJK UNIFIED IDEOGRAPH - ,0xF461 ,0x7042 //CJK UNIFIED IDEOGRAPH - ,0xF462 ,0x7038 //CJK UNIFIED IDEOGRAPH - ,0xF463 ,0x703F //CJK UNIFIED IDEOGRAPH - ,0xF464 ,0x703A //CJK UNIFIED IDEOGRAPH - ,0xF465 ,0x7039 //CJK UNIFIED IDEOGRAPH - ,0xF466 ,0x7040 //CJK UNIFIED IDEOGRAPH - ,0xF467 ,0x703B //CJK UNIFIED IDEOGRAPH - ,0xF468 ,0x7033 //CJK UNIFIED IDEOGRAPH - ,0xF469 ,0x7041 //CJK UNIFIED IDEOGRAPH - ,0xF46A ,0x7213 //CJK UNIFIED IDEOGRAPH - ,0xF46B ,0x7214 //CJK UNIFIED IDEOGRAPH - ,0xF46C ,0x72A8 //CJK UNIFIED IDEOGRAPH - ,0xF46D ,0x737D //CJK UNIFIED IDEOGRAPH - ,0xF46E ,0x737C //CJK UNIFIED IDEOGRAPH - ,0xF46F ,0x74BA //CJK UNIFIED IDEOGRAPH - ,0xF470 ,0x76AB //CJK UNIFIED IDEOGRAPH - ,0xF471 ,0x76AA //CJK UNIFIED IDEOGRAPH - ,0xF472 ,0x76BE //CJK UNIFIED IDEOGRAPH - ,0xF473 ,0x76ED //CJK UNIFIED IDEOGRAPH - ,0xF474 ,0x77CC //CJK UNIFIED IDEOGRAPH - ,0xF475 ,0x77CE //CJK UNIFIED IDEOGRAPH - ,0xF476 ,0x77CF //CJK UNIFIED IDEOGRAPH - ,0xF477 ,0x77CD //CJK UNIFIED IDEOGRAPH - ,0xF478 ,0x77F2 //CJK UNIFIED IDEOGRAPH - ,0xF479 ,0x7925 //CJK UNIFIED IDEOGRAPH - ,0xF47A ,0x7923 //CJK UNIFIED IDEOGRAPH - ,0xF47B ,0x7927 //CJK UNIFIED IDEOGRAPH - ,0xF47C ,0x7928 //CJK UNIFIED IDEOGRAPH - ,0xF47D ,0x7924 //CJK UNIFIED IDEOGRAPH - ,0xF47E ,0x7929 //CJK UNIFIED IDEOGRAPH - ,0xF4A1 ,0x79B2 //CJK UNIFIED IDEOGRAPH - ,0xF4A2 ,0x7A6E //CJK UNIFIED IDEOGRAPH - ,0xF4A3 ,0x7A6C //CJK UNIFIED IDEOGRAPH - ,0xF4A4 ,0x7A6D //CJK UNIFIED IDEOGRAPH - ,0xF4A5 ,0x7AF7 //CJK UNIFIED IDEOGRAPH - ,0xF4A6 ,0x7C49 //CJK UNIFIED IDEOGRAPH - ,0xF4A7 ,0x7C48 //CJK UNIFIED IDEOGRAPH - ,0xF4A8 ,0x7C4A //CJK UNIFIED IDEOGRAPH - ,0xF4A9 ,0x7C47 //CJK UNIFIED IDEOGRAPH - ,0xF4AA ,0x7C45 //CJK UNIFIED IDEOGRAPH - ,0xF4AB ,0x7CEE //CJK UNIFIED IDEOGRAPH - ,0xF4AC ,0x7E7B //CJK UNIFIED IDEOGRAPH - ,0xF4AD ,0x7E7E //CJK UNIFIED IDEOGRAPH - ,0xF4AE ,0x7E81 //CJK UNIFIED IDEOGRAPH - ,0xF4AF ,0x7E80 //CJK UNIFIED IDEOGRAPH - ,0xF4B0 ,0x7FBA //CJK UNIFIED IDEOGRAPH - ,0xF4B1 ,0x7FFF //CJK UNIFIED IDEOGRAPH - ,0xF4B2 ,0x8079 //CJK UNIFIED IDEOGRAPH - ,0xF4B3 ,0x81DB //CJK UNIFIED IDEOGRAPH - ,0xF4B4 ,0x81D9 //CJK UNIFIED IDEOGRAPH - ,0xF4B5 ,0x820B //CJK UNIFIED IDEOGRAPH - ,0xF4B6 ,0x8268 //CJK UNIFIED IDEOGRAPH - ,0xF4B7 ,0x8269 //CJK UNIFIED IDEOGRAPH - ,0xF4B8 ,0x8622 //CJK UNIFIED IDEOGRAPH - ,0xF4B9 ,0x85FF //CJK UNIFIED IDEOGRAPH - ,0xF4BA ,0x8601 //CJK UNIFIED IDEOGRAPH - ,0xF4BB ,0x85FE //CJK UNIFIED IDEOGRAPH - ,0xF4BC ,0x861B //CJK UNIFIED IDEOGRAPH - ,0xF4BD ,0x8600 //CJK UNIFIED IDEOGRAPH - ,0xF4BE ,0x85F6 //CJK UNIFIED IDEOGRAPH - ,0xF4BF ,0x8604 //CJK UNIFIED IDEOGRAPH - ,0xF4C0 ,0x8609 //CJK UNIFIED IDEOGRAPH - ,0xF4C1 ,0x8605 //CJK UNIFIED IDEOGRAPH - ,0xF4C2 ,0x860C //CJK UNIFIED IDEOGRAPH - ,0xF4C3 ,0x85FD //CJK UNIFIED IDEOGRAPH - ,0xF4C4 ,0x8819 //CJK UNIFIED IDEOGRAPH - ,0xF4C5 ,0x8810 //CJK UNIFIED IDEOGRAPH - ,0xF4C6 ,0x8811 //CJK UNIFIED IDEOGRAPH - ,0xF4C7 ,0x8817 //CJK UNIFIED IDEOGRAPH - ,0xF4C8 ,0x8813 //CJK UNIFIED IDEOGRAPH - ,0xF4C9 ,0x8816 //CJK UNIFIED IDEOGRAPH - ,0xF4CA ,0x8963 //CJK UNIFIED IDEOGRAPH - ,0xF4CB ,0x8966 //CJK UNIFIED IDEOGRAPH - ,0xF4CC ,0x89B9 //CJK UNIFIED IDEOGRAPH - ,0xF4CD ,0x89F7 //CJK UNIFIED IDEOGRAPH - ,0xF4CE ,0x8B60 //CJK UNIFIED IDEOGRAPH - ,0xF4CF ,0x8B6A //CJK UNIFIED IDEOGRAPH - ,0xF4D0 ,0x8B5D //CJK UNIFIED IDEOGRAPH - ,0xF4D1 ,0x8B68 //CJK UNIFIED IDEOGRAPH - ,0xF4D2 ,0x8B63 //CJK UNIFIED IDEOGRAPH - ,0xF4D3 ,0x8B65 //CJK UNIFIED IDEOGRAPH - ,0xF4D4 ,0x8B67 //CJK UNIFIED IDEOGRAPH - ,0xF4D5 ,0x8B6D //CJK UNIFIED IDEOGRAPH - ,0xF4D6 ,0x8DAE //CJK UNIFIED IDEOGRAPH - ,0xF4D7 ,0x8E86 //CJK UNIFIED IDEOGRAPH - ,0xF4D8 ,0x8E88 //CJK UNIFIED IDEOGRAPH - ,0xF4D9 ,0x8E84 //CJK UNIFIED IDEOGRAPH - ,0xF4DA ,0x8F59 //CJK UNIFIED IDEOGRAPH - ,0xF4DB ,0x8F56 //CJK UNIFIED IDEOGRAPH - ,0xF4DC ,0x8F57 //CJK UNIFIED IDEOGRAPH - ,0xF4DD ,0x8F55 //CJK UNIFIED IDEOGRAPH - ,0xF4DE ,0x8F58 //CJK UNIFIED IDEOGRAPH - ,0xF4DF ,0x8F5A //CJK UNIFIED IDEOGRAPH - ,0xF4E0 ,0x908D //CJK UNIFIED IDEOGRAPH - ,0xF4E1 ,0x9143 //CJK UNIFIED IDEOGRAPH - ,0xF4E2 ,0x9141 //CJK UNIFIED IDEOGRAPH - ,0xF4E3 ,0x91B7 //CJK UNIFIED IDEOGRAPH - ,0xF4E4 ,0x91B5 //CJK UNIFIED IDEOGRAPH - ,0xF4E5 ,0x91B2 //CJK UNIFIED IDEOGRAPH - ,0xF4E6 ,0x91B3 //CJK UNIFIED IDEOGRAPH - ,0xF4E7 ,0x940B //CJK UNIFIED IDEOGRAPH - ,0xF4E8 ,0x9413 //CJK UNIFIED IDEOGRAPH - ,0xF4E9 ,0x93FB //CJK UNIFIED IDEOGRAPH - ,0xF4EA ,0x9420 //CJK UNIFIED IDEOGRAPH - ,0xF4EB ,0x940F //CJK UNIFIED IDEOGRAPH - ,0xF4EC ,0x9414 //CJK UNIFIED IDEOGRAPH - ,0xF4ED ,0x93FE //CJK UNIFIED IDEOGRAPH - ,0xF4EE ,0x9415 //CJK UNIFIED IDEOGRAPH - ,0xF4EF ,0x9410 //CJK UNIFIED IDEOGRAPH - ,0xF4F0 ,0x9428 //CJK UNIFIED IDEOGRAPH - ,0xF4F1 ,0x9419 //CJK UNIFIED IDEOGRAPH - ,0xF4F2 ,0x940D //CJK UNIFIED IDEOGRAPH - ,0xF4F3 ,0x93F5 //CJK UNIFIED IDEOGRAPH - ,0xF4F4 ,0x9400 //CJK UNIFIED IDEOGRAPH - ,0xF4F5 ,0x93F7 //CJK UNIFIED IDEOGRAPH - ,0xF4F6 ,0x9407 //CJK UNIFIED IDEOGRAPH - ,0xF4F7 ,0x940E //CJK UNIFIED IDEOGRAPH - ,0xF4F8 ,0x9416 //CJK UNIFIED IDEOGRAPH - ,0xF4F9 ,0x9412 //CJK UNIFIED IDEOGRAPH - ,0xF4FA ,0x93FA //CJK UNIFIED IDEOGRAPH - ,0xF4FB ,0x9409 //CJK UNIFIED IDEOGRAPH - ,0xF4FC ,0x93F8 //CJK UNIFIED IDEOGRAPH - ,0xF4FD ,0x940A //CJK UNIFIED IDEOGRAPH - ,0xF4FE ,0x93FF //CJK UNIFIED IDEOGRAPH - ,0xF540 ,0x93FC //CJK UNIFIED IDEOGRAPH - ,0xF541 ,0x940C //CJK UNIFIED IDEOGRAPH - ,0xF542 ,0x93F6 //CJK UNIFIED IDEOGRAPH - ,0xF543 ,0x9411 //CJK UNIFIED IDEOGRAPH - ,0xF544 ,0x9406 //CJK UNIFIED IDEOGRAPH - ,0xF545 ,0x95DE //CJK UNIFIED IDEOGRAPH - ,0xF546 ,0x95E0 //CJK UNIFIED IDEOGRAPH - ,0xF547 ,0x95DF //CJK UNIFIED IDEOGRAPH - ,0xF548 ,0x972E //CJK UNIFIED IDEOGRAPH - ,0xF549 ,0x972F //CJK UNIFIED IDEOGRAPH - ,0xF54A ,0x97B9 //CJK UNIFIED IDEOGRAPH - ,0xF54B ,0x97BB //CJK UNIFIED IDEOGRAPH - ,0xF54C ,0x97FD //CJK UNIFIED IDEOGRAPH - ,0xF54D ,0x97FE //CJK UNIFIED IDEOGRAPH - ,0xF54E ,0x9860 //CJK UNIFIED IDEOGRAPH - ,0xF54F ,0x9862 //CJK UNIFIED IDEOGRAPH - ,0xF550 ,0x9863 //CJK UNIFIED IDEOGRAPH - ,0xF551 ,0x985F //CJK UNIFIED IDEOGRAPH - ,0xF552 ,0x98C1 //CJK UNIFIED IDEOGRAPH - ,0xF553 ,0x98C2 //CJK UNIFIED IDEOGRAPH - ,0xF554 ,0x9950 //CJK UNIFIED IDEOGRAPH - ,0xF555 ,0x994E //CJK UNIFIED IDEOGRAPH - ,0xF556 ,0x9959 //CJK UNIFIED IDEOGRAPH - ,0xF557 ,0x994C //CJK UNIFIED IDEOGRAPH - ,0xF558 ,0x994B //CJK UNIFIED IDEOGRAPH - ,0xF559 ,0x9953 //CJK UNIFIED IDEOGRAPH - ,0xF55A ,0x9A32 //CJK UNIFIED IDEOGRAPH - ,0xF55B ,0x9A34 //CJK UNIFIED IDEOGRAPH - ,0xF55C ,0x9A31 //CJK UNIFIED IDEOGRAPH - ,0xF55D ,0x9A2C //CJK UNIFIED IDEOGRAPH - ,0xF55E ,0x9A2A //CJK UNIFIED IDEOGRAPH - ,0xF55F ,0x9A36 //CJK UNIFIED IDEOGRAPH - ,0xF560 ,0x9A29 //CJK UNIFIED IDEOGRAPH - ,0xF561 ,0x9A2E //CJK UNIFIED IDEOGRAPH - ,0xF562 ,0x9A38 //CJK UNIFIED IDEOGRAPH - ,0xF563 ,0x9A2D //CJK UNIFIED IDEOGRAPH - ,0xF564 ,0x9AC7 //CJK UNIFIED IDEOGRAPH - ,0xF565 ,0x9ACA //CJK UNIFIED IDEOGRAPH - ,0xF566 ,0x9AC6 //CJK UNIFIED IDEOGRAPH - ,0xF567 ,0x9B10 //CJK UNIFIED IDEOGRAPH - ,0xF568 ,0x9B12 //CJK UNIFIED IDEOGRAPH - ,0xF569 ,0x9B11 //CJK UNIFIED IDEOGRAPH - ,0xF56A ,0x9C0B //CJK UNIFIED IDEOGRAPH - ,0xF56B ,0x9C08 //CJK UNIFIED IDEOGRAPH - ,0xF56C ,0x9BF7 //CJK UNIFIED IDEOGRAPH - ,0xF56D ,0x9C05 //CJK UNIFIED IDEOGRAPH - ,0xF56E ,0x9C12 //CJK UNIFIED IDEOGRAPH - ,0xF56F ,0x9BF8 //CJK UNIFIED IDEOGRAPH - ,0xF570 ,0x9C40 //CJK UNIFIED IDEOGRAPH - ,0xF571 ,0x9C07 //CJK UNIFIED IDEOGRAPH - ,0xF572 ,0x9C0E //CJK UNIFIED IDEOGRAPH - ,0xF573 ,0x9C06 //CJK UNIFIED IDEOGRAPH - ,0xF574 ,0x9C17 //CJK UNIFIED IDEOGRAPH - ,0xF575 ,0x9C14 //CJK UNIFIED IDEOGRAPH - ,0xF576 ,0x9C09 //CJK UNIFIED IDEOGRAPH - ,0xF577 ,0x9D9F //CJK UNIFIED IDEOGRAPH - ,0xF578 ,0x9D99 //CJK UNIFIED IDEOGRAPH - ,0xF579 ,0x9DA4 //CJK UNIFIED IDEOGRAPH - ,0xF57A ,0x9D9D //CJK UNIFIED IDEOGRAPH - ,0xF57B ,0x9D92 //CJK UNIFIED IDEOGRAPH - ,0xF57C ,0x9D98 //CJK UNIFIED IDEOGRAPH - ,0xF57D ,0x9D90 //CJK UNIFIED IDEOGRAPH - ,0xF57E ,0x9D9B //CJK UNIFIED IDEOGRAPH - ,0xF5A1 ,0x9DA0 //CJK UNIFIED IDEOGRAPH - ,0xF5A2 ,0x9D94 //CJK UNIFIED IDEOGRAPH - ,0xF5A3 ,0x9D9C //CJK UNIFIED IDEOGRAPH - ,0xF5A4 ,0x9DAA //CJK UNIFIED IDEOGRAPH - ,0xF5A5 ,0x9D97 //CJK UNIFIED IDEOGRAPH - ,0xF5A6 ,0x9DA1 //CJK UNIFIED IDEOGRAPH - ,0xF5A7 ,0x9D9A //CJK UNIFIED IDEOGRAPH - ,0xF5A8 ,0x9DA2 //CJK UNIFIED IDEOGRAPH - ,0xF5A9 ,0x9DA8 //CJK UNIFIED IDEOGRAPH - ,0xF5AA ,0x9D9E //CJK UNIFIED IDEOGRAPH - ,0xF5AB ,0x9DA3 //CJK UNIFIED IDEOGRAPH - ,0xF5AC ,0x9DBF //CJK UNIFIED IDEOGRAPH - ,0xF5AD ,0x9DA9 //CJK UNIFIED IDEOGRAPH - ,0xF5AE ,0x9D96 //CJK UNIFIED IDEOGRAPH - ,0xF5AF ,0x9DA6 //CJK UNIFIED IDEOGRAPH - ,0xF5B0 ,0x9DA7 //CJK UNIFIED IDEOGRAPH - ,0xF5B1 ,0x9E99 //CJK UNIFIED IDEOGRAPH - ,0xF5B2 ,0x9E9B //CJK UNIFIED IDEOGRAPH - ,0xF5B3 ,0x9E9A //CJK UNIFIED IDEOGRAPH - ,0xF5B4 ,0x9EE5 //CJK UNIFIED IDEOGRAPH - ,0xF5B5 ,0x9EE4 //CJK UNIFIED IDEOGRAPH - ,0xF5B6 ,0x9EE7 //CJK UNIFIED IDEOGRAPH - ,0xF5B7 ,0x9EE6 //CJK UNIFIED IDEOGRAPH - ,0xF5B8 ,0x9F30 //CJK UNIFIED IDEOGRAPH - ,0xF5B9 ,0x9F2E //CJK UNIFIED IDEOGRAPH - ,0xF5BA ,0x9F5B //CJK UNIFIED IDEOGRAPH - ,0xF5BB ,0x9F60 //CJK UNIFIED IDEOGRAPH - ,0xF5BC ,0x9F5E //CJK UNIFIED IDEOGRAPH - ,0xF5BD ,0x9F5D //CJK UNIFIED IDEOGRAPH - ,0xF5BE ,0x9F59 //CJK UNIFIED IDEOGRAPH - ,0xF5BF ,0x9F91 //CJK UNIFIED IDEOGRAPH - ,0xF5C0 ,0x513A //CJK UNIFIED IDEOGRAPH - ,0xF5C1 ,0x5139 //CJK UNIFIED IDEOGRAPH - ,0xF5C2 ,0x5298 //CJK UNIFIED IDEOGRAPH - ,0xF5C3 ,0x5297 //CJK UNIFIED IDEOGRAPH - ,0xF5C4 ,0x56C3 //CJK UNIFIED IDEOGRAPH - ,0xF5C5 ,0x56BD //CJK UNIFIED IDEOGRAPH - ,0xF5C6 ,0x56BE //CJK UNIFIED IDEOGRAPH - ,0xF5C7 ,0x5B48 //CJK UNIFIED IDEOGRAPH - ,0xF5C8 ,0x5B47 //CJK UNIFIED IDEOGRAPH - ,0xF5C9 ,0x5DCB //CJK UNIFIED IDEOGRAPH - ,0xF5CA ,0x5DCF //CJK UNIFIED IDEOGRAPH - ,0xF5CB ,0x5EF1 //CJK UNIFIED IDEOGRAPH - ,0xF5CC ,0x61FD //CJK UNIFIED IDEOGRAPH - ,0xF5CD ,0x651B //CJK UNIFIED IDEOGRAPH - ,0xF5CE ,0x6B02 //CJK UNIFIED IDEOGRAPH - ,0xF5CF ,0x6AFC //CJK UNIFIED IDEOGRAPH - ,0xF5D0 ,0x6B03 //CJK UNIFIED IDEOGRAPH - ,0xF5D1 ,0x6AF8 //CJK UNIFIED IDEOGRAPH - ,0xF5D2 ,0x6B00 //CJK UNIFIED IDEOGRAPH - ,0xF5D3 ,0x7043 //CJK UNIFIED IDEOGRAPH - ,0xF5D4 ,0x7044 //CJK UNIFIED IDEOGRAPH - ,0xF5D5 ,0x704A //CJK UNIFIED IDEOGRAPH - ,0xF5D6 ,0x7048 //CJK UNIFIED IDEOGRAPH - ,0xF5D7 ,0x7049 //CJK UNIFIED IDEOGRAPH - ,0xF5D8 ,0x7045 //CJK UNIFIED IDEOGRAPH - ,0xF5D9 ,0x7046 //CJK UNIFIED IDEOGRAPH - ,0xF5DA ,0x721D //CJK UNIFIED IDEOGRAPH - ,0xF5DB ,0x721A //CJK UNIFIED IDEOGRAPH - ,0xF5DC ,0x7219 //CJK UNIFIED IDEOGRAPH - ,0xF5DD ,0x737E //CJK UNIFIED IDEOGRAPH - ,0xF5DE ,0x7517 //CJK UNIFIED IDEOGRAPH - ,0xF5DF ,0x766A //CJK UNIFIED IDEOGRAPH - ,0xF5E0 ,0x77D0 //CJK UNIFIED IDEOGRAPH - ,0xF5E1 ,0x792D //CJK UNIFIED IDEOGRAPH - ,0xF5E2 ,0x7931 //CJK UNIFIED IDEOGRAPH - ,0xF5E3 ,0x792F //CJK UNIFIED IDEOGRAPH - ,0xF5E4 ,0x7C54 //CJK UNIFIED IDEOGRAPH - ,0xF5E5 ,0x7C53 //CJK UNIFIED IDEOGRAPH - ,0xF5E6 ,0x7CF2 //CJK UNIFIED IDEOGRAPH - ,0xF5E7 ,0x7E8A //CJK UNIFIED IDEOGRAPH - ,0xF5E8 ,0x7E87 //CJK UNIFIED IDEOGRAPH - ,0xF5E9 ,0x7E88 //CJK UNIFIED IDEOGRAPH - ,0xF5EA ,0x7E8B //CJK UNIFIED IDEOGRAPH - ,0xF5EB ,0x7E86 //CJK UNIFIED IDEOGRAPH - ,0xF5EC ,0x7E8D //CJK UNIFIED IDEOGRAPH - ,0xF5ED ,0x7F4D //CJK UNIFIED IDEOGRAPH - ,0xF5EE ,0x7FBB //CJK UNIFIED IDEOGRAPH - ,0xF5EF ,0x8030 //CJK UNIFIED IDEOGRAPH - ,0xF5F0 ,0x81DD //CJK UNIFIED IDEOGRAPH - ,0xF5F1 ,0x8618 //CJK UNIFIED IDEOGRAPH - ,0xF5F2 ,0x862A //CJK UNIFIED IDEOGRAPH - ,0xF5F3 ,0x8626 //CJK UNIFIED IDEOGRAPH - ,0xF5F4 ,0x861F //CJK UNIFIED IDEOGRAPH - ,0xF5F5 ,0x8623 //CJK UNIFIED IDEOGRAPH - ,0xF5F6 ,0x861C //CJK UNIFIED IDEOGRAPH - ,0xF5F7 ,0x8619 //CJK UNIFIED IDEOGRAPH - ,0xF5F8 ,0x8627 //CJK UNIFIED IDEOGRAPH - ,0xF5F9 ,0x862E //CJK UNIFIED IDEOGRAPH - ,0xF5FA ,0x8621 //CJK UNIFIED IDEOGRAPH - ,0xF5FB ,0x8620 //CJK UNIFIED IDEOGRAPH - ,0xF5FC ,0x8629 //CJK UNIFIED IDEOGRAPH - ,0xF5FD ,0x861E //CJK UNIFIED IDEOGRAPH - ,0xF5FE ,0x8625 //CJK UNIFIED IDEOGRAPH - ,0xF640 ,0x8829 //CJK UNIFIED IDEOGRAPH - ,0xF641 ,0x881D //CJK UNIFIED IDEOGRAPH - ,0xF642 ,0x881B //CJK UNIFIED IDEOGRAPH - ,0xF643 ,0x8820 //CJK UNIFIED IDEOGRAPH - ,0xF644 ,0x8824 //CJK UNIFIED IDEOGRAPH - ,0xF645 ,0x881C //CJK UNIFIED IDEOGRAPH - ,0xF646 ,0x882B //CJK UNIFIED IDEOGRAPH - ,0xF647 ,0x884A //CJK UNIFIED IDEOGRAPH - ,0xF648 ,0x896D //CJK UNIFIED IDEOGRAPH - ,0xF649 ,0x8969 //CJK UNIFIED IDEOGRAPH - ,0xF64A ,0x896E //CJK UNIFIED IDEOGRAPH - ,0xF64B ,0x896B //CJK UNIFIED IDEOGRAPH - ,0xF64C ,0x89FA //CJK UNIFIED IDEOGRAPH - ,0xF64D ,0x8B79 //CJK UNIFIED IDEOGRAPH - ,0xF64E ,0x8B78 //CJK UNIFIED IDEOGRAPH - ,0xF64F ,0x8B45 //CJK UNIFIED IDEOGRAPH - ,0xF650 ,0x8B7A //CJK UNIFIED IDEOGRAPH - ,0xF651 ,0x8B7B //CJK UNIFIED IDEOGRAPH - ,0xF652 ,0x8D10 //CJK UNIFIED IDEOGRAPH - ,0xF653 ,0x8D14 //CJK UNIFIED IDEOGRAPH - ,0xF654 ,0x8DAF //CJK UNIFIED IDEOGRAPH - ,0xF655 ,0x8E8E //CJK UNIFIED IDEOGRAPH - ,0xF656 ,0x8E8C //CJK UNIFIED IDEOGRAPH - ,0xF657 ,0x8F5E //CJK UNIFIED IDEOGRAPH - ,0xF658 ,0x8F5B //CJK UNIFIED IDEOGRAPH - ,0xF659 ,0x8F5D //CJK UNIFIED IDEOGRAPH - ,0xF65A ,0x9146 //CJK UNIFIED IDEOGRAPH - ,0xF65B ,0x9144 //CJK UNIFIED IDEOGRAPH - ,0xF65C ,0x9145 //CJK UNIFIED IDEOGRAPH - ,0xF65D ,0x91B9 //CJK UNIFIED IDEOGRAPH - ,0xF65E ,0x943F //CJK UNIFIED IDEOGRAPH - ,0xF65F ,0x943B //CJK UNIFIED IDEOGRAPH - ,0xF660 ,0x9436 //CJK UNIFIED IDEOGRAPH - ,0xF661 ,0x9429 //CJK UNIFIED IDEOGRAPH - ,0xF662 ,0x943D //CJK UNIFIED IDEOGRAPH - ,0xF663 ,0x943C //CJK UNIFIED IDEOGRAPH - ,0xF664 ,0x9430 //CJK UNIFIED IDEOGRAPH - ,0xF665 ,0x9439 //CJK UNIFIED IDEOGRAPH - ,0xF666 ,0x942A //CJK UNIFIED IDEOGRAPH - ,0xF667 ,0x9437 //CJK UNIFIED IDEOGRAPH - ,0xF668 ,0x942C //CJK UNIFIED IDEOGRAPH - ,0xF669 ,0x9440 //CJK UNIFIED IDEOGRAPH - ,0xF66A ,0x9431 //CJK UNIFIED IDEOGRAPH - ,0xF66B ,0x95E5 //CJK UNIFIED IDEOGRAPH - ,0xF66C ,0x95E4 //CJK UNIFIED IDEOGRAPH - ,0xF66D ,0x95E3 //CJK UNIFIED IDEOGRAPH - ,0xF66E ,0x9735 //CJK UNIFIED IDEOGRAPH - ,0xF66F ,0x973A //CJK UNIFIED IDEOGRAPH - ,0xF670 ,0x97BF //CJK UNIFIED IDEOGRAPH - ,0xF671 ,0x97E1 //CJK UNIFIED IDEOGRAPH - ,0xF672 ,0x9864 //CJK UNIFIED IDEOGRAPH - ,0xF673 ,0x98C9 //CJK UNIFIED IDEOGRAPH - ,0xF674 ,0x98C6 //CJK UNIFIED IDEOGRAPH - ,0xF675 ,0x98C0 //CJK UNIFIED IDEOGRAPH - ,0xF676 ,0x9958 //CJK UNIFIED IDEOGRAPH - ,0xF677 ,0x9956 //CJK UNIFIED IDEOGRAPH - ,0xF678 ,0x9A39 //CJK UNIFIED IDEOGRAPH - ,0xF679 ,0x9A3D //CJK UNIFIED IDEOGRAPH - ,0xF67A ,0x9A46 //CJK UNIFIED IDEOGRAPH - ,0xF67B ,0x9A44 //CJK UNIFIED IDEOGRAPH - ,0xF67C ,0x9A42 //CJK UNIFIED IDEOGRAPH - ,0xF67D ,0x9A41 //CJK UNIFIED IDEOGRAPH - ,0xF67E ,0x9A3A //CJK UNIFIED IDEOGRAPH - ,0xF6A1 ,0x9A3F //CJK UNIFIED IDEOGRAPH - ,0xF6A2 ,0x9ACD //CJK UNIFIED IDEOGRAPH - ,0xF6A3 ,0x9B15 //CJK UNIFIED IDEOGRAPH - ,0xF6A4 ,0x9B17 //CJK UNIFIED IDEOGRAPH - ,0xF6A5 ,0x9B18 //CJK UNIFIED IDEOGRAPH - ,0xF6A6 ,0x9B16 //CJK UNIFIED IDEOGRAPH - ,0xF6A7 ,0x9B3A //CJK UNIFIED IDEOGRAPH - ,0xF6A8 ,0x9B52 //CJK UNIFIED IDEOGRAPH - ,0xF6A9 ,0x9C2B //CJK UNIFIED IDEOGRAPH - ,0xF6AA ,0x9C1D //CJK UNIFIED IDEOGRAPH - ,0xF6AB ,0x9C1C //CJK UNIFIED IDEOGRAPH - ,0xF6AC ,0x9C2C //CJK UNIFIED IDEOGRAPH - ,0xF6AD ,0x9C23 //CJK UNIFIED IDEOGRAPH - ,0xF6AE ,0x9C28 //CJK UNIFIED IDEOGRAPH - ,0xF6AF ,0x9C29 //CJK UNIFIED IDEOGRAPH - ,0xF6B0 ,0x9C24 //CJK UNIFIED IDEOGRAPH - ,0xF6B1 ,0x9C21 //CJK UNIFIED IDEOGRAPH - ,0xF6B2 ,0x9DB7 //CJK UNIFIED IDEOGRAPH - ,0xF6B3 ,0x9DB6 //CJK UNIFIED IDEOGRAPH - ,0xF6B4 ,0x9DBC //CJK UNIFIED IDEOGRAPH - ,0xF6B5 ,0x9DC1 //CJK UNIFIED IDEOGRAPH - ,0xF6B6 ,0x9DC7 //CJK UNIFIED IDEOGRAPH - ,0xF6B7 ,0x9DCA //CJK UNIFIED IDEOGRAPH - ,0xF6B8 ,0x9DCF //CJK UNIFIED IDEOGRAPH - ,0xF6B9 ,0x9DBE //CJK UNIFIED IDEOGRAPH - ,0xF6BA ,0x9DC5 //CJK UNIFIED IDEOGRAPH - ,0xF6BB ,0x9DC3 //CJK UNIFIED IDEOGRAPH - ,0xF6BC ,0x9DBB //CJK UNIFIED IDEOGRAPH - ,0xF6BD ,0x9DB5 //CJK UNIFIED IDEOGRAPH - ,0xF6BE ,0x9DCE //CJK UNIFIED IDEOGRAPH - ,0xF6BF ,0x9DB9 //CJK UNIFIED IDEOGRAPH - ,0xF6C0 ,0x9DBA //CJK UNIFIED IDEOGRAPH - ,0xF6C1 ,0x9DAC //CJK UNIFIED IDEOGRAPH - ,0xF6C2 ,0x9DC8 //CJK UNIFIED IDEOGRAPH - ,0xF6C3 ,0x9DB1 //CJK UNIFIED IDEOGRAPH - ,0xF6C4 ,0x9DAD //CJK UNIFIED IDEOGRAPH - ,0xF6C5 ,0x9DCC //CJK UNIFIED IDEOGRAPH - ,0xF6C6 ,0x9DB3 //CJK UNIFIED IDEOGRAPH - ,0xF6C7 ,0x9DCD //CJK UNIFIED IDEOGRAPH - ,0xF6C8 ,0x9DB2 //CJK UNIFIED IDEOGRAPH - ,0xF6C9 ,0x9E7A //CJK UNIFIED IDEOGRAPH - ,0xF6CA ,0x9E9C //CJK UNIFIED IDEOGRAPH - ,0xF6CB ,0x9EEB //CJK UNIFIED IDEOGRAPH - ,0xF6CC ,0x9EEE //CJK UNIFIED IDEOGRAPH - ,0xF6CD ,0x9EED //CJK UNIFIED IDEOGRAPH - ,0xF6CE ,0x9F1B //CJK UNIFIED IDEOGRAPH - ,0xF6CF ,0x9F18 //CJK UNIFIED IDEOGRAPH - ,0xF6D0 ,0x9F1A //CJK UNIFIED IDEOGRAPH - ,0xF6D1 ,0x9F31 //CJK UNIFIED IDEOGRAPH - ,0xF6D2 ,0x9F4E //CJK UNIFIED IDEOGRAPH - ,0xF6D3 ,0x9F65 //CJK UNIFIED IDEOGRAPH - ,0xF6D4 ,0x9F64 //CJK UNIFIED IDEOGRAPH - ,0xF6D5 ,0x9F92 //CJK UNIFIED IDEOGRAPH - ,0xF6D6 ,0x4EB9 //CJK UNIFIED IDEOGRAPH - ,0xF6D7 ,0x56C6 //CJK UNIFIED IDEOGRAPH - ,0xF6D8 ,0x56C5 //CJK UNIFIED IDEOGRAPH - ,0xF6D9 ,0x56CB //CJK UNIFIED IDEOGRAPH - ,0xF6DA ,0x5971 //CJK UNIFIED IDEOGRAPH - ,0xF6DB ,0x5B4B //CJK UNIFIED IDEOGRAPH - ,0xF6DC ,0x5B4C //CJK UNIFIED IDEOGRAPH - ,0xF6DD ,0x5DD5 //CJK UNIFIED IDEOGRAPH - ,0xF6DE ,0x5DD1 //CJK UNIFIED IDEOGRAPH - ,0xF6DF ,0x5EF2 //CJK UNIFIED IDEOGRAPH - ,0xF6E0 ,0x6521 //CJK UNIFIED IDEOGRAPH - ,0xF6E1 ,0x6520 //CJK UNIFIED IDEOGRAPH - ,0xF6E2 ,0x6526 //CJK UNIFIED IDEOGRAPH - ,0xF6E3 ,0x6522 //CJK UNIFIED IDEOGRAPH - ,0xF6E4 ,0x6B0B //CJK UNIFIED IDEOGRAPH - ,0xF6E5 ,0x6B08 //CJK UNIFIED IDEOGRAPH - ,0xF6E6 ,0x6B09 //CJK UNIFIED IDEOGRAPH - ,0xF6E7 ,0x6C0D //CJK UNIFIED IDEOGRAPH - ,0xF6E8 ,0x7055 //CJK UNIFIED IDEOGRAPH - ,0xF6E9 ,0x7056 //CJK UNIFIED IDEOGRAPH - ,0xF6EA ,0x7057 //CJK UNIFIED IDEOGRAPH - ,0xF6EB ,0x7052 //CJK UNIFIED IDEOGRAPH - ,0xF6EC ,0x721E //CJK UNIFIED IDEOGRAPH - ,0xF6ED ,0x721F //CJK UNIFIED IDEOGRAPH - ,0xF6EE ,0x72A9 //CJK UNIFIED IDEOGRAPH - ,0xF6EF ,0x737F //CJK UNIFIED IDEOGRAPH - ,0xF6F0 ,0x74D8 //CJK UNIFIED IDEOGRAPH - ,0xF6F1 ,0x74D5 //CJK UNIFIED IDEOGRAPH - ,0xF6F2 ,0x74D9 //CJK UNIFIED IDEOGRAPH - ,0xF6F3 ,0x74D7 //CJK UNIFIED IDEOGRAPH - ,0xF6F4 ,0x766D //CJK UNIFIED IDEOGRAPH - ,0xF6F5 ,0x76AD //CJK UNIFIED IDEOGRAPH - ,0xF6F6 ,0x7935 //CJK UNIFIED IDEOGRAPH - ,0xF6F7 ,0x79B4 //CJK UNIFIED IDEOGRAPH - ,0xF6F8 ,0x7A70 //CJK UNIFIED IDEOGRAPH - ,0xF6F9 ,0x7A71 //CJK UNIFIED IDEOGRAPH - ,0xF6FA ,0x7C57 //CJK UNIFIED IDEOGRAPH - ,0xF6FB ,0x7C5C //CJK UNIFIED IDEOGRAPH - ,0xF6FC ,0x7C59 //CJK UNIFIED IDEOGRAPH - ,0xF6FD ,0x7C5B //CJK UNIFIED IDEOGRAPH - ,0xF6FE ,0x7C5A //CJK UNIFIED IDEOGRAPH - ,0xF740 ,0x7CF4 //CJK UNIFIED IDEOGRAPH - ,0xF741 ,0x7CF1 //CJK UNIFIED IDEOGRAPH - ,0xF742 ,0x7E91 //CJK UNIFIED IDEOGRAPH - ,0xF743 ,0x7F4F //CJK UNIFIED IDEOGRAPH - ,0xF744 ,0x7F87 //CJK UNIFIED IDEOGRAPH - ,0xF745 ,0x81DE //CJK UNIFIED IDEOGRAPH - ,0xF746 ,0x826B //CJK UNIFIED IDEOGRAPH - ,0xF747 ,0x8634 //CJK UNIFIED IDEOGRAPH - ,0xF748 ,0x8635 //CJK UNIFIED IDEOGRAPH - ,0xF749 ,0x8633 //CJK UNIFIED IDEOGRAPH - ,0xF74A ,0x862C //CJK UNIFIED IDEOGRAPH - ,0xF74B ,0x8632 //CJK UNIFIED IDEOGRAPH - ,0xF74C ,0x8636 //CJK UNIFIED IDEOGRAPH - ,0xF74D ,0x882C //CJK UNIFIED IDEOGRAPH - ,0xF74E ,0x8828 //CJK UNIFIED IDEOGRAPH - ,0xF74F ,0x8826 //CJK UNIFIED IDEOGRAPH - ,0xF750 ,0x882A //CJK UNIFIED IDEOGRAPH - ,0xF751 ,0x8825 //CJK UNIFIED IDEOGRAPH - ,0xF752 ,0x8971 //CJK UNIFIED IDEOGRAPH - ,0xF753 ,0x89BF //CJK UNIFIED IDEOGRAPH - ,0xF754 ,0x89BE //CJK UNIFIED IDEOGRAPH - ,0xF755 ,0x89FB //CJK UNIFIED IDEOGRAPH - ,0xF756 ,0x8B7E //CJK UNIFIED IDEOGRAPH - ,0xF757 ,0x8B84 //CJK UNIFIED IDEOGRAPH - ,0xF758 ,0x8B82 //CJK UNIFIED IDEOGRAPH - ,0xF759 ,0x8B86 //CJK UNIFIED IDEOGRAPH - ,0xF75A ,0x8B85 //CJK UNIFIED IDEOGRAPH - ,0xF75B ,0x8B7F //CJK UNIFIED IDEOGRAPH - ,0xF75C ,0x8D15 //CJK UNIFIED IDEOGRAPH - ,0xF75D ,0x8E95 //CJK UNIFIED IDEOGRAPH - ,0xF75E ,0x8E94 //CJK UNIFIED IDEOGRAPH - ,0xF75F ,0x8E9A //CJK UNIFIED IDEOGRAPH - ,0xF760 ,0x8E92 //CJK UNIFIED IDEOGRAPH - ,0xF761 ,0x8E90 //CJK UNIFIED IDEOGRAPH - ,0xF762 ,0x8E96 //CJK UNIFIED IDEOGRAPH - ,0xF763 ,0x8E97 //CJK UNIFIED IDEOGRAPH - ,0xF764 ,0x8F60 //CJK UNIFIED IDEOGRAPH - ,0xF765 ,0x8F62 //CJK UNIFIED IDEOGRAPH - ,0xF766 ,0x9147 //CJK UNIFIED IDEOGRAPH - ,0xF767 ,0x944C //CJK UNIFIED IDEOGRAPH - ,0xF768 ,0x9450 //CJK UNIFIED IDEOGRAPH - ,0xF769 ,0x944A //CJK UNIFIED IDEOGRAPH - ,0xF76A ,0x944B //CJK UNIFIED IDEOGRAPH - ,0xF76B ,0x944F //CJK UNIFIED IDEOGRAPH - ,0xF76C ,0x9447 //CJK UNIFIED IDEOGRAPH - ,0xF76D ,0x9445 //CJK UNIFIED IDEOGRAPH - ,0xF76E ,0x9448 //CJK UNIFIED IDEOGRAPH - ,0xF76F ,0x9449 //CJK UNIFIED IDEOGRAPH - ,0xF770 ,0x9446 //CJK UNIFIED IDEOGRAPH - ,0xF771 ,0x973F //CJK UNIFIED IDEOGRAPH - ,0xF772 ,0x97E3 //CJK UNIFIED IDEOGRAPH - ,0xF773 ,0x986A //CJK UNIFIED IDEOGRAPH - ,0xF774 ,0x9869 //CJK UNIFIED IDEOGRAPH - ,0xF775 ,0x98CB //CJK UNIFIED IDEOGRAPH - ,0xF776 ,0x9954 //CJK UNIFIED IDEOGRAPH - ,0xF777 ,0x995B //CJK UNIFIED IDEOGRAPH - ,0xF778 ,0x9A4E //CJK UNIFIED IDEOGRAPH - ,0xF779 ,0x9A53 //CJK UNIFIED IDEOGRAPH - ,0xF77A ,0x9A54 //CJK UNIFIED IDEOGRAPH - ,0xF77B ,0x9A4C //CJK UNIFIED IDEOGRAPH - ,0xF77C ,0x9A4F //CJK UNIFIED IDEOGRAPH - ,0xF77D ,0x9A48 //CJK UNIFIED IDEOGRAPH - ,0xF77E ,0x9A4A //CJK UNIFIED IDEOGRAPH - ,0xF7A1 ,0x9A49 //CJK UNIFIED IDEOGRAPH - ,0xF7A2 ,0x9A52 //CJK UNIFIED IDEOGRAPH - ,0xF7A3 ,0x9A50 //CJK UNIFIED IDEOGRAPH - ,0xF7A4 ,0x9AD0 //CJK UNIFIED IDEOGRAPH - ,0xF7A5 ,0x9B19 //CJK UNIFIED IDEOGRAPH - ,0xF7A6 ,0x9B2B //CJK UNIFIED IDEOGRAPH - ,0xF7A7 ,0x9B3B //CJK UNIFIED IDEOGRAPH - ,0xF7A8 ,0x9B56 //CJK UNIFIED IDEOGRAPH - ,0xF7A9 ,0x9B55 //CJK UNIFIED IDEOGRAPH - ,0xF7AA ,0x9C46 //CJK UNIFIED IDEOGRAPH - ,0xF7AB ,0x9C48 //CJK UNIFIED IDEOGRAPH - ,0xF7AC ,0x9C3F //CJK UNIFIED IDEOGRAPH - ,0xF7AD ,0x9C44 //CJK UNIFIED IDEOGRAPH - ,0xF7AE ,0x9C39 //CJK UNIFIED IDEOGRAPH - ,0xF7AF ,0x9C33 //CJK UNIFIED IDEOGRAPH - ,0xF7B0 ,0x9C41 //CJK UNIFIED IDEOGRAPH - ,0xF7B1 ,0x9C3C //CJK UNIFIED IDEOGRAPH - ,0xF7B2 ,0x9C37 //CJK UNIFIED IDEOGRAPH - ,0xF7B3 ,0x9C34 //CJK UNIFIED IDEOGRAPH - ,0xF7B4 ,0x9C32 //CJK UNIFIED IDEOGRAPH - ,0xF7B5 ,0x9C3D //CJK UNIFIED IDEOGRAPH - ,0xF7B6 ,0x9C36 //CJK UNIFIED IDEOGRAPH - ,0xF7B7 ,0x9DDB //CJK UNIFIED IDEOGRAPH - ,0xF7B8 ,0x9DD2 //CJK UNIFIED IDEOGRAPH - ,0xF7B9 ,0x9DDE //CJK UNIFIED IDEOGRAPH - ,0xF7BA ,0x9DDA //CJK UNIFIED IDEOGRAPH - ,0xF7BB ,0x9DCB //CJK UNIFIED IDEOGRAPH - ,0xF7BC ,0x9DD0 //CJK UNIFIED IDEOGRAPH - ,0xF7BD ,0x9DDC //CJK UNIFIED IDEOGRAPH - ,0xF7BE ,0x9DD1 //CJK UNIFIED IDEOGRAPH - ,0xF7BF ,0x9DDF //CJK UNIFIED IDEOGRAPH - ,0xF7C0 ,0x9DE9 //CJK UNIFIED IDEOGRAPH - ,0xF7C1 ,0x9DD9 //CJK UNIFIED IDEOGRAPH - ,0xF7C2 ,0x9DD8 //CJK UNIFIED IDEOGRAPH - ,0xF7C3 ,0x9DD6 //CJK UNIFIED IDEOGRAPH - ,0xF7C4 ,0x9DF5 //CJK UNIFIED IDEOGRAPH - ,0xF7C5 ,0x9DD5 //CJK UNIFIED IDEOGRAPH - ,0xF7C6 ,0x9DDD //CJK UNIFIED IDEOGRAPH - ,0xF7C7 ,0x9EB6 //CJK UNIFIED IDEOGRAPH - ,0xF7C8 ,0x9EF0 //CJK UNIFIED IDEOGRAPH - ,0xF7C9 ,0x9F35 //CJK UNIFIED IDEOGRAPH - ,0xF7CA ,0x9F33 //CJK UNIFIED IDEOGRAPH - ,0xF7CB ,0x9F32 //CJK UNIFIED IDEOGRAPH - ,0xF7CC ,0x9F42 //CJK UNIFIED IDEOGRAPH - ,0xF7CD ,0x9F6B //CJK UNIFIED IDEOGRAPH - ,0xF7CE ,0x9F95 //CJK UNIFIED IDEOGRAPH - ,0xF7CF ,0x9FA2 //CJK UNIFIED IDEOGRAPH - ,0xF7D0 ,0x513D //CJK UNIFIED IDEOGRAPH - ,0xF7D1 ,0x5299 //CJK UNIFIED IDEOGRAPH - ,0xF7D2 ,0x58E8 //CJK UNIFIED IDEOGRAPH - ,0xF7D3 ,0x58E7 //CJK UNIFIED IDEOGRAPH - ,0xF7D4 ,0x5972 //CJK UNIFIED IDEOGRAPH - ,0xF7D5 ,0x5B4D //CJK UNIFIED IDEOGRAPH - ,0xF7D6 ,0x5DD8 //CJK UNIFIED IDEOGRAPH - ,0xF7D7 ,0x882F //CJK UNIFIED IDEOGRAPH - ,0xF7D8 ,0x5F4F //CJK UNIFIED IDEOGRAPH - ,0xF7D9 ,0x6201 //CJK UNIFIED IDEOGRAPH - ,0xF7DA ,0x6203 //CJK UNIFIED IDEOGRAPH - ,0xF7DB ,0x6204 //CJK UNIFIED IDEOGRAPH - ,0xF7DC ,0x6529 //CJK UNIFIED IDEOGRAPH - ,0xF7DD ,0x6525 //CJK UNIFIED IDEOGRAPH - ,0xF7DE ,0x6596 //CJK UNIFIED IDEOGRAPH - ,0xF7DF ,0x66EB //CJK UNIFIED IDEOGRAPH - ,0xF7E0 ,0x6B11 //CJK UNIFIED IDEOGRAPH - ,0xF7E1 ,0x6B12 //CJK UNIFIED IDEOGRAPH - ,0xF7E2 ,0x6B0F //CJK UNIFIED IDEOGRAPH - ,0xF7E3 ,0x6BCA //CJK UNIFIED IDEOGRAPH - ,0xF7E4 ,0x705B //CJK UNIFIED IDEOGRAPH - ,0xF7E5 ,0x705A //CJK UNIFIED IDEOGRAPH - ,0xF7E6 ,0x7222 //CJK UNIFIED IDEOGRAPH - ,0xF7E7 ,0x7382 //CJK UNIFIED IDEOGRAPH - ,0xF7E8 ,0x7381 //CJK UNIFIED IDEOGRAPH - ,0xF7E9 ,0x7383 //CJK UNIFIED IDEOGRAPH - ,0xF7EA ,0x7670 //CJK UNIFIED IDEOGRAPH - ,0xF7EB ,0x77D4 //CJK UNIFIED IDEOGRAPH - ,0xF7EC ,0x7C67 //CJK UNIFIED IDEOGRAPH - ,0xF7ED ,0x7C66 //CJK UNIFIED IDEOGRAPH - ,0xF7EE ,0x7E95 //CJK UNIFIED IDEOGRAPH - ,0xF7EF ,0x826C //CJK UNIFIED IDEOGRAPH - ,0xF7F0 ,0x863A //CJK UNIFIED IDEOGRAPH - ,0xF7F1 ,0x8640 //CJK UNIFIED IDEOGRAPH - ,0xF7F2 ,0x8639 //CJK UNIFIED IDEOGRAPH - ,0xF7F3 ,0x863C //CJK UNIFIED IDEOGRAPH - ,0xF7F4 ,0x8631 //CJK UNIFIED IDEOGRAPH - ,0xF7F5 ,0x863B //CJK UNIFIED IDEOGRAPH - ,0xF7F6 ,0x863E //CJK UNIFIED IDEOGRAPH - ,0xF7F7 ,0x8830 //CJK UNIFIED IDEOGRAPH - ,0xF7F8 ,0x8832 //CJK UNIFIED IDEOGRAPH - ,0xF7F9 ,0x882E //CJK UNIFIED IDEOGRAPH - ,0xF7FA ,0x8833 //CJK UNIFIED IDEOGRAPH - ,0xF7FB ,0x8976 //CJK UNIFIED IDEOGRAPH - ,0xF7FC ,0x8974 //CJK UNIFIED IDEOGRAPH - ,0xF7FD ,0x8973 //CJK UNIFIED IDEOGRAPH - ,0xF7FE ,0x89FE //CJK UNIFIED IDEOGRAPH - ,0xF840 ,0x8B8C //CJK UNIFIED IDEOGRAPH - ,0xF841 ,0x8B8E //CJK UNIFIED IDEOGRAPH - ,0xF842 ,0x8B8B //CJK UNIFIED IDEOGRAPH - ,0xF843 ,0x8B88 //CJK UNIFIED IDEOGRAPH - ,0xF844 ,0x8C45 //CJK UNIFIED IDEOGRAPH - ,0xF845 ,0x8D19 //CJK UNIFIED IDEOGRAPH - ,0xF846 ,0x8E98 //CJK UNIFIED IDEOGRAPH - ,0xF847 ,0x8F64 //CJK UNIFIED IDEOGRAPH - ,0xF848 ,0x8F63 //CJK UNIFIED IDEOGRAPH - ,0xF849 ,0x91BC //CJK UNIFIED IDEOGRAPH - ,0xF84A ,0x9462 //CJK UNIFIED IDEOGRAPH - ,0xF84B ,0x9455 //CJK UNIFIED IDEOGRAPH - ,0xF84C ,0x945D //CJK UNIFIED IDEOGRAPH - ,0xF84D ,0x9457 //CJK UNIFIED IDEOGRAPH - ,0xF84E ,0x945E //CJK UNIFIED IDEOGRAPH - ,0xF84F ,0x97C4 //CJK UNIFIED IDEOGRAPH - ,0xF850 ,0x97C5 //CJK UNIFIED IDEOGRAPH - ,0xF851 ,0x9800 //CJK UNIFIED IDEOGRAPH - ,0xF852 ,0x9A56 //CJK UNIFIED IDEOGRAPH - ,0xF853 ,0x9A59 //CJK UNIFIED IDEOGRAPH - ,0xF854 ,0x9B1E //CJK UNIFIED IDEOGRAPH - ,0xF855 ,0x9B1F //CJK UNIFIED IDEOGRAPH - ,0xF856 ,0x9B20 //CJK UNIFIED IDEOGRAPH - ,0xF857 ,0x9C52 //CJK UNIFIED IDEOGRAPH - ,0xF858 ,0x9C58 //CJK UNIFIED IDEOGRAPH - ,0xF859 ,0x9C50 //CJK UNIFIED IDEOGRAPH - ,0xF85A ,0x9C4A //CJK UNIFIED IDEOGRAPH - ,0xF85B ,0x9C4D //CJK UNIFIED IDEOGRAPH - ,0xF85C ,0x9C4B //CJK UNIFIED IDEOGRAPH - ,0xF85D ,0x9C55 //CJK UNIFIED IDEOGRAPH - ,0xF85E ,0x9C59 //CJK UNIFIED IDEOGRAPH - ,0xF85F ,0x9C4C //CJK UNIFIED IDEOGRAPH - ,0xF860 ,0x9C4E //CJK UNIFIED IDEOGRAPH - ,0xF861 ,0x9DFB //CJK UNIFIED IDEOGRAPH - ,0xF862 ,0x9DF7 //CJK UNIFIED IDEOGRAPH - ,0xF863 ,0x9DEF //CJK UNIFIED IDEOGRAPH - ,0xF864 ,0x9DE3 //CJK UNIFIED IDEOGRAPH - ,0xF865 ,0x9DEB //CJK UNIFIED IDEOGRAPH - ,0xF866 ,0x9DF8 //CJK UNIFIED IDEOGRAPH - ,0xF867 ,0x9DE4 //CJK UNIFIED IDEOGRAPH - ,0xF868 ,0x9DF6 //CJK UNIFIED IDEOGRAPH - ,0xF869 ,0x9DE1 //CJK UNIFIED IDEOGRAPH - ,0xF86A ,0x9DEE //CJK UNIFIED IDEOGRAPH - ,0xF86B ,0x9DE6 //CJK UNIFIED IDEOGRAPH - ,0xF86C ,0x9DF2 //CJK UNIFIED IDEOGRAPH - ,0xF86D ,0x9DF0 //CJK UNIFIED IDEOGRAPH - ,0xF86E ,0x9DE2 //CJK UNIFIED IDEOGRAPH - ,0xF86F ,0x9DEC //CJK UNIFIED IDEOGRAPH - ,0xF870 ,0x9DF4 //CJK UNIFIED IDEOGRAPH - ,0xF871 ,0x9DF3 //CJK UNIFIED IDEOGRAPH - ,0xF872 ,0x9DE8 //CJK UNIFIED IDEOGRAPH - ,0xF873 ,0x9DED //CJK UNIFIED IDEOGRAPH - ,0xF874 ,0x9EC2 //CJK UNIFIED IDEOGRAPH - ,0xF875 ,0x9ED0 //CJK UNIFIED IDEOGRAPH - ,0xF876 ,0x9EF2 //CJK UNIFIED IDEOGRAPH - ,0xF877 ,0x9EF3 //CJK UNIFIED IDEOGRAPH - ,0xF878 ,0x9F06 //CJK UNIFIED IDEOGRAPH - ,0xF879 ,0x9F1C //CJK UNIFIED IDEOGRAPH - ,0xF87A ,0x9F38 //CJK UNIFIED IDEOGRAPH - ,0xF87B ,0x9F37 //CJK UNIFIED IDEOGRAPH - ,0xF87C ,0x9F36 //CJK UNIFIED IDEOGRAPH - ,0xF87D ,0x9F43 //CJK UNIFIED IDEOGRAPH - ,0xF87E ,0x9F4F //CJK UNIFIED IDEOGRAPH - ,0xF8A1 ,0x9F71 //CJK UNIFIED IDEOGRAPH - ,0xF8A2 ,0x9F70 //CJK UNIFIED IDEOGRAPH - ,0xF8A3 ,0x9F6E //CJK UNIFIED IDEOGRAPH - ,0xF8A4 ,0x9F6F //CJK UNIFIED IDEOGRAPH - ,0xF8A5 ,0x56D3 //CJK UNIFIED IDEOGRAPH - ,0xF8A6 ,0x56CD //CJK UNIFIED IDEOGRAPH - ,0xF8A7 ,0x5B4E //CJK UNIFIED IDEOGRAPH - ,0xF8A8 ,0x5C6D //CJK UNIFIED IDEOGRAPH - ,0xF8A9 ,0x652D //CJK UNIFIED IDEOGRAPH - ,0xF8AA ,0x66ED //CJK UNIFIED IDEOGRAPH - ,0xF8AB ,0x66EE //CJK UNIFIED IDEOGRAPH - ,0xF8AC ,0x6B13 //CJK UNIFIED IDEOGRAPH - ,0xF8AD ,0x705F //CJK UNIFIED IDEOGRAPH - ,0xF8AE ,0x7061 //CJK UNIFIED IDEOGRAPH - ,0xF8AF ,0x705D //CJK UNIFIED IDEOGRAPH - ,0xF8B0 ,0x7060 //CJK UNIFIED IDEOGRAPH - ,0xF8B1 ,0x7223 //CJK UNIFIED IDEOGRAPH - ,0xF8B2 ,0x74DB //CJK UNIFIED IDEOGRAPH - ,0xF8B3 ,0x74E5 //CJK UNIFIED IDEOGRAPH - ,0xF8B4 ,0x77D5 //CJK UNIFIED IDEOGRAPH - ,0xF8B5 ,0x7938 //CJK UNIFIED IDEOGRAPH - ,0xF8B6 ,0x79B7 //CJK UNIFIED IDEOGRAPH - ,0xF8B7 ,0x79B6 //CJK UNIFIED IDEOGRAPH - ,0xF8B8 ,0x7C6A //CJK UNIFIED IDEOGRAPH - ,0xF8B9 ,0x7E97 //CJK UNIFIED IDEOGRAPH - ,0xF8BA ,0x7F89 //CJK UNIFIED IDEOGRAPH - ,0xF8BB ,0x826D //CJK UNIFIED IDEOGRAPH - ,0xF8BC ,0x8643 //CJK UNIFIED IDEOGRAPH - ,0xF8BD ,0x8838 //CJK UNIFIED IDEOGRAPH - ,0xF8BE ,0x8837 //CJK UNIFIED IDEOGRAPH - ,0xF8BF ,0x8835 //CJK UNIFIED IDEOGRAPH - ,0xF8C0 ,0x884B //CJK UNIFIED IDEOGRAPH - ,0xF8C1 ,0x8B94 //CJK UNIFIED IDEOGRAPH - ,0xF8C2 ,0x8B95 //CJK UNIFIED IDEOGRAPH - ,0xF8C3 ,0x8E9E //CJK UNIFIED IDEOGRAPH - ,0xF8C4 ,0x8E9F //CJK UNIFIED IDEOGRAPH - ,0xF8C5 ,0x8EA0 //CJK UNIFIED IDEOGRAPH - ,0xF8C6 ,0x8E9D //CJK UNIFIED IDEOGRAPH - ,0xF8C7 ,0x91BE //CJK UNIFIED IDEOGRAPH - ,0xF8C8 ,0x91BD //CJK UNIFIED IDEOGRAPH - ,0xF8C9 ,0x91C2 //CJK UNIFIED IDEOGRAPH - ,0xF8CA ,0x946B //CJK UNIFIED IDEOGRAPH - ,0xF8CB ,0x9468 //CJK UNIFIED IDEOGRAPH - ,0xF8CC ,0x9469 //CJK UNIFIED IDEOGRAPH - ,0xF8CD ,0x96E5 //CJK UNIFIED IDEOGRAPH - ,0xF8CE ,0x9746 //CJK UNIFIED IDEOGRAPH - ,0xF8CF ,0x9743 //CJK UNIFIED IDEOGRAPH - ,0xF8D0 ,0x9747 //CJK UNIFIED IDEOGRAPH - ,0xF8D1 ,0x97C7 //CJK UNIFIED IDEOGRAPH - ,0xF8D2 ,0x97E5 //CJK UNIFIED IDEOGRAPH - ,0xF8D3 ,0x9A5E //CJK UNIFIED IDEOGRAPH - ,0xF8D4 ,0x9AD5 //CJK UNIFIED IDEOGRAPH - ,0xF8D5 ,0x9B59 //CJK UNIFIED IDEOGRAPH - ,0xF8D6 ,0x9C63 //CJK UNIFIED IDEOGRAPH - ,0xF8D7 ,0x9C67 //CJK UNIFIED IDEOGRAPH - ,0xF8D8 ,0x9C66 //CJK UNIFIED IDEOGRAPH - ,0xF8D9 ,0x9C62 //CJK UNIFIED IDEOGRAPH - ,0xF8DA ,0x9C5E //CJK UNIFIED IDEOGRAPH - ,0xF8DB ,0x9C60 //CJK UNIFIED IDEOGRAPH - ,0xF8DC ,0x9E02 //CJK UNIFIED IDEOGRAPH - ,0xF8DD ,0x9DFE //CJK UNIFIED IDEOGRAPH - ,0xF8DE ,0x9E07 //CJK UNIFIED IDEOGRAPH - ,0xF8DF ,0x9E03 //CJK UNIFIED IDEOGRAPH - ,0xF8E0 ,0x9E06 //CJK UNIFIED IDEOGRAPH - ,0xF8E1 ,0x9E05 //CJK UNIFIED IDEOGRAPH - ,0xF8E2 ,0x9E00 //CJK UNIFIED IDEOGRAPH - ,0xF8E3 ,0x9E01 //CJK UNIFIED IDEOGRAPH - ,0xF8E4 ,0x9E09 //CJK UNIFIED IDEOGRAPH - ,0xF8E5 ,0x9DFF //CJK UNIFIED IDEOGRAPH - ,0xF8E6 ,0x9DFD //CJK UNIFIED IDEOGRAPH - ,0xF8E7 ,0x9E04 //CJK UNIFIED IDEOGRAPH - ,0xF8E8 ,0x9EA0 //CJK UNIFIED IDEOGRAPH - ,0xF8E9 ,0x9F1E //CJK UNIFIED IDEOGRAPH - ,0xF8EA ,0x9F46 //CJK UNIFIED IDEOGRAPH - ,0xF8EB ,0x9F74 //CJK UNIFIED IDEOGRAPH - ,0xF8EC ,0x9F75 //CJK UNIFIED IDEOGRAPH - ,0xF8ED ,0x9F76 //CJK UNIFIED IDEOGRAPH - ,0xF8EE ,0x56D4 //CJK UNIFIED IDEOGRAPH - ,0xF8EF ,0x652E //CJK UNIFIED IDEOGRAPH - ,0xF8F0 ,0x65B8 //CJK UNIFIED IDEOGRAPH - ,0xF8F1 ,0x6B18 //CJK UNIFIED IDEOGRAPH - ,0xF8F2 ,0x6B19 //CJK UNIFIED IDEOGRAPH - ,0xF8F3 ,0x6B17 //CJK UNIFIED IDEOGRAPH - ,0xF8F4 ,0x6B1A //CJK UNIFIED IDEOGRAPH - ,0xF8F5 ,0x7062 //CJK UNIFIED IDEOGRAPH - ,0xF8F6 ,0x7226 //CJK UNIFIED IDEOGRAPH - ,0xF8F7 ,0x72AA //CJK UNIFIED IDEOGRAPH - ,0xF8F8 ,0x77D8 //CJK UNIFIED IDEOGRAPH - ,0xF8F9 ,0x77D9 //CJK UNIFIED IDEOGRAPH - ,0xF8FA ,0x7939 //CJK UNIFIED IDEOGRAPH - ,0xF8FB ,0x7C69 //CJK UNIFIED IDEOGRAPH - ,0xF8FC ,0x7C6B //CJK UNIFIED IDEOGRAPH - ,0xF8FD ,0x7CF6 //CJK UNIFIED IDEOGRAPH - ,0xF8FE ,0x7E9A //CJK UNIFIED IDEOGRAPH - ,0xF940 ,0x7E98 //CJK UNIFIED IDEOGRAPH - ,0xF941 ,0x7E9B //CJK UNIFIED IDEOGRAPH - ,0xF942 ,0x7E99 //CJK UNIFIED IDEOGRAPH - ,0xF943 ,0x81E0 //CJK UNIFIED IDEOGRAPH - ,0xF944 ,0x81E1 //CJK UNIFIED IDEOGRAPH - ,0xF945 ,0x8646 //CJK UNIFIED IDEOGRAPH - ,0xF946 ,0x8647 //CJK UNIFIED IDEOGRAPH - ,0xF947 ,0x8648 //CJK UNIFIED IDEOGRAPH - ,0xF948 ,0x8979 //CJK UNIFIED IDEOGRAPH - ,0xF949 ,0x897A //CJK UNIFIED IDEOGRAPH - ,0xF94A ,0x897C //CJK UNIFIED IDEOGRAPH - ,0xF94B ,0x897B //CJK UNIFIED IDEOGRAPH - ,0xF94C ,0x89FF //CJK UNIFIED IDEOGRAPH - ,0xF94D ,0x8B98 //CJK UNIFIED IDEOGRAPH - ,0xF94E ,0x8B99 //CJK UNIFIED IDEOGRAPH - ,0xF94F ,0x8EA5 //CJK UNIFIED IDEOGRAPH - ,0xF950 ,0x8EA4 //CJK UNIFIED IDEOGRAPH - ,0xF951 ,0x8EA3 //CJK UNIFIED IDEOGRAPH - ,0xF952 ,0x946E //CJK UNIFIED IDEOGRAPH - ,0xF953 ,0x946D //CJK UNIFIED IDEOGRAPH - ,0xF954 ,0x946F //CJK UNIFIED IDEOGRAPH - ,0xF955 ,0x9471 //CJK UNIFIED IDEOGRAPH - ,0xF956 ,0x9473 //CJK UNIFIED IDEOGRAPH - ,0xF957 ,0x9749 //CJK UNIFIED IDEOGRAPH - ,0xF958 ,0x9872 //CJK UNIFIED IDEOGRAPH - ,0xF959 ,0x995F //CJK UNIFIED IDEOGRAPH - ,0xF95A ,0x9C68 //CJK UNIFIED IDEOGRAPH - ,0xF95B ,0x9C6E //CJK UNIFIED IDEOGRAPH - ,0xF95C ,0x9C6D //CJK UNIFIED IDEOGRAPH - ,0xF95D ,0x9E0B //CJK UNIFIED IDEOGRAPH - ,0xF95E ,0x9E0D //CJK UNIFIED IDEOGRAPH - ,0xF95F ,0x9E10 //CJK UNIFIED IDEOGRAPH - ,0xF960 ,0x9E0F //CJK UNIFIED IDEOGRAPH - ,0xF961 ,0x9E12 //CJK UNIFIED IDEOGRAPH - ,0xF962 ,0x9E11 //CJK UNIFIED IDEOGRAPH - ,0xF963 ,0x9EA1 //CJK UNIFIED IDEOGRAPH - ,0xF964 ,0x9EF5 //CJK UNIFIED IDEOGRAPH - ,0xF965 ,0x9F09 //CJK UNIFIED IDEOGRAPH - ,0xF966 ,0x9F47 //CJK UNIFIED IDEOGRAPH - ,0xF967 ,0x9F78 //CJK UNIFIED IDEOGRAPH - ,0xF968 ,0x9F7B //CJK UNIFIED IDEOGRAPH - ,0xF969 ,0x9F7A //CJK UNIFIED IDEOGRAPH - ,0xF96A ,0x9F79 //CJK UNIFIED IDEOGRAPH - ,0xF96B ,0x571E //CJK UNIFIED IDEOGRAPH - ,0xF96C ,0x7066 //CJK UNIFIED IDEOGRAPH - ,0xF96D ,0x7C6F //CJK UNIFIED IDEOGRAPH - ,0xF96E ,0x883C //CJK UNIFIED IDEOGRAPH - ,0xF96F ,0x8DB2 //CJK UNIFIED IDEOGRAPH - ,0xF970 ,0x8EA6 //CJK UNIFIED IDEOGRAPH - ,0xF971 ,0x91C3 //CJK UNIFIED IDEOGRAPH - ,0xF972 ,0x9474 //CJK UNIFIED IDEOGRAPH - ,0xF973 ,0x9478 //CJK UNIFIED IDEOGRAPH - ,0xF974 ,0x9476 //CJK UNIFIED IDEOGRAPH - ,0xF975 ,0x9475 //CJK UNIFIED IDEOGRAPH - ,0xF976 ,0x9A60 //CJK UNIFIED IDEOGRAPH - ,0xF977 ,0x9C74 //CJK UNIFIED IDEOGRAPH - ,0xF978 ,0x9C73 //CJK UNIFIED IDEOGRAPH - ,0xF979 ,0x9C71 //CJK UNIFIED IDEOGRAPH - ,0xF97A ,0x9C75 //CJK UNIFIED IDEOGRAPH - ,0xF97B ,0x9E14 //CJK UNIFIED IDEOGRAPH - ,0xF97C ,0x9E13 //CJK UNIFIED IDEOGRAPH - ,0xF97D ,0x9EF6 //CJK UNIFIED IDEOGRAPH - ,0xF97E ,0x9F0A //CJK UNIFIED IDEOGRAPH - ,0xF9A1 ,0x9FA4 //CJK UNIFIED IDEOGRAPH - ,0xF9A2 ,0x7068 //CJK UNIFIED IDEOGRAPH - ,0xF9A3 ,0x7065 //CJK UNIFIED IDEOGRAPH - ,0xF9A4 ,0x7CF7 //CJK UNIFIED IDEOGRAPH - ,0xF9A5 ,0x866A //CJK UNIFIED IDEOGRAPH - ,0xF9A6 ,0x883E //CJK UNIFIED IDEOGRAPH - ,0xF9A7 ,0x883D //CJK UNIFIED IDEOGRAPH - ,0xF9A8 ,0x883F //CJK UNIFIED IDEOGRAPH - ,0xF9A9 ,0x8B9E //CJK UNIFIED IDEOGRAPH - ,0xF9AA ,0x8C9C //CJK UNIFIED IDEOGRAPH - ,0xF9AB ,0x8EA9 //CJK UNIFIED IDEOGRAPH - ,0xF9AC ,0x8EC9 //CJK UNIFIED IDEOGRAPH - ,0xF9AD ,0x974B //CJK UNIFIED IDEOGRAPH - ,0xF9AE ,0x9873 //CJK UNIFIED IDEOGRAPH - ,0xF9AF ,0x9874 //CJK UNIFIED IDEOGRAPH - ,0xF9B0 ,0x98CC //CJK UNIFIED IDEOGRAPH - ,0xF9B1 ,0x9961 //CJK UNIFIED IDEOGRAPH - ,0xF9B2 ,0x99AB //CJK UNIFIED IDEOGRAPH - ,0xF9B3 ,0x9A64 //CJK UNIFIED IDEOGRAPH - ,0xF9B4 ,0x9A66 //CJK UNIFIED IDEOGRAPH - ,0xF9B5 ,0x9A67 //CJK UNIFIED IDEOGRAPH - ,0xF9B6 ,0x9B24 //CJK UNIFIED IDEOGRAPH - ,0xF9B7 ,0x9E15 //CJK UNIFIED IDEOGRAPH - ,0xF9B8 ,0x9E17 //CJK UNIFIED IDEOGRAPH - ,0xF9B9 ,0x9F48 //CJK UNIFIED IDEOGRAPH - ,0xF9BA ,0x6207 //CJK UNIFIED IDEOGRAPH - ,0xF9BB ,0x6B1E //CJK UNIFIED IDEOGRAPH - ,0xF9BC ,0x7227 //CJK UNIFIED IDEOGRAPH - ,0xF9BD ,0x864C //CJK UNIFIED IDEOGRAPH - ,0xF9BE ,0x8EA8 //CJK UNIFIED IDEOGRAPH - ,0xF9BF ,0x9482 //CJK UNIFIED IDEOGRAPH - ,0xF9C0 ,0x9480 //CJK UNIFIED IDEOGRAPH - ,0xF9C1 ,0x9481 //CJK UNIFIED IDEOGRAPH - ,0xF9C2 ,0x9A69 //CJK UNIFIED IDEOGRAPH - ,0xF9C3 ,0x9A68 //CJK UNIFIED IDEOGRAPH - ,0xF9C4 ,0x9B2E //CJK UNIFIED IDEOGRAPH - ,0xF9C5 ,0x9E19 //CJK UNIFIED IDEOGRAPH - ,0xF9C6 ,0x7229 //CJK UNIFIED IDEOGRAPH - ,0xF9C7 ,0x864B //CJK UNIFIED IDEOGRAPH - ,0xF9C8 ,0x8B9F //CJK UNIFIED IDEOGRAPH - ,0xF9C9 ,0x9483 //CJK UNIFIED IDEOGRAPH - ,0xF9CA ,0x9C79 //CJK UNIFIED IDEOGRAPH - ,0xF9CB ,0x9EB7 //CJK UNIFIED IDEOGRAPH - ,0xF9CC ,0x7675 //CJK UNIFIED IDEOGRAPH - ,0xF9CD ,0x9A6B //CJK UNIFIED IDEOGRAPH - ,0xF9CE ,0x9C7A //CJK UNIFIED IDEOGRAPH - ,0xF9CF ,0x9E1D //CJK UNIFIED IDEOGRAPH - ,0xF9D0 ,0x7069 //CJK UNIFIED IDEOGRAPH - ,0xF9D1 ,0x706A //CJK UNIFIED IDEOGRAPH - ,0xF9D2 ,0x9EA4 //CJK UNIFIED IDEOGRAPH - ,0xF9D3 ,0x9F7E //CJK UNIFIED IDEOGRAPH - ,0xF9D4 ,0x9F49 //CJK UNIFIED IDEOGRAPH - ,0xF9D5 ,0x9F98 //CJK UNIFIED IDEOGRAPH - ,0xF9D6 ,0x7881 //CJK UNIFIED IDEOGRAPH - ,0xF9D7 ,0x92B9 //CJK UNIFIED IDEOGRAPH - ,0xF9D8 ,0x88CF //CJK UNIFIED IDEOGRAPH - ,0xF9D9 ,0x58BB //CJK UNIFIED IDEOGRAPH - ,0xF9DA ,0x6052 //CJK UNIFIED IDEOGRAPH - ,0xF9DB ,0x7CA7 //CJK UNIFIED IDEOGRAPH - ,0xF9DC ,0x5AFA //CJK UNIFIED IDEOGRAPH - ,0xF9DD ,0x2554 //BOX DRAWINGS DOUBLE DOWN AND RIGHT - ,0xF9DE ,0x2566 //BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - ,0xF9DF ,0x2557 //BOX DRAWINGS DOUBLE DOWN AND LEFT - ,0xF9E0 ,0x2560 //BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - ,0xF9E1 ,0x256C //BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL - ,0xF9E2 ,0x2563 //BOX DRAWINGS DOUBLE VERTICAL AND LEFT - ,0xF9E3 ,0x255A //BOX DRAWINGS DOUBLE UP AND RIGHT - ,0xF9E4 ,0x2569 //BOX DRAWINGS DOUBLE UP AND HORIZONTAL - ,0xF9E5 ,0x255D //BOX DRAWINGS DOUBLE UP AND LEFT - ,0xF9E6 ,0x2552 //BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE - ,0xF9E7 ,0x2564 //BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE - ,0xF9E8 ,0x2555 //BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE - ,0xF9E9 ,0x255E //BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - ,0xF9EA ,0x256A //BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - ,0xF9EB ,0x2561 //BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - ,0xF9EC ,0x2558 //BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE - ,0xF9ED ,0x2567 //BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - ,0xF9EE ,0x255B //BOX DRAWINGS UP SINGLE AND LEFT DOUBLE - ,0xF9EF ,0x2553 //BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE - ,0xF9F0 ,0x2565 //BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE - ,0xF9F1 ,0x2556 //BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE - ,0xF9F2 ,0x255F //BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - ,0xF9F3 ,0x256B //BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE - ,0xF9F4 ,0x2562 //BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE - ,0xF9F5 ,0x2559 //BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE - ,0xF9F6 ,0x2568 //BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - ,0xF9F7 ,0x255C //BOX DRAWINGS UP DOUBLE AND LEFT SINGLE - ,0xF9F8 ,0x2551 //BOX DRAWINGS DOUBLE VERTICAL - ,0xF9F9 ,0x2550 //BOX DRAWINGS DOUBLE HORIZONTAL - ,0xF9FA ,0x256D //BOX DRAWINGS LIGHT ARC DOWN AND RIGHT - ,0xF9FB ,0x256E //BOX DRAWINGS LIGHT ARC DOWN AND LEFT - ,0xF9FC ,0x2570 //BOX DRAWINGS LIGHT ARC UP AND RIGHT - ,0xF9FD ,0x256F //BOX DRAWINGS LIGHT ARC UP AND LEFT - ,0xF9FE ,0x2593 //DARK SHADE - ,-1, -1 -}; -// clang-format on - -NSEncodingRegistration(cp950, kCFStringEncodingDOSChineseTrad); diff --git a/Foundation/NSString/English.lproj/NSStringEncodingNames.plist b/Foundation/NSString/English.lproj/NSStringEncodingNames.plist deleted file mode 100644 index 8fd28f0c..00000000 --- a/Foundation/NSString/English.lproj/NSStringEncodingNames.plist +++ /dev/null @@ -1,25 +0,0 @@ -{ - 0x00000001 = ASCII; - 0x00000002 = NEXTSTEP; - 0x00000003 = "Japanese EUC"; - 0x00000004 = UTF8; - 0x00000005 = "ISO Latin 1"; - 0x00000006 = Symbol; - 0x00000007 = ASCII; - 0x00000008 = "Shift JIS"; - 0x00000009 = "ISO Latin 2"; - 0x0000000A = Unicode; - 0x0000000B = "Windows CP1251"; - 0x0000000C = "Windows CP1252"; - 0x0000000D = "Windows CP1253"; - 0x0000000E = "Windows CP1254"; - 0x0000000F = "Windows CP1250"; - 0x00000015 = "ISO 2022 JP"; - 0x0000001E = "Mac Roman"; - 0x00010000 = Proprietary; - 0x90000100 = "UTF-16 BE"; - 0x94000100 = "UTF-16 LE"; - 0x8C000100 = "UTF-32"; - 0x98000100 = "UTF-32 BE"; - 0x9C000100 = "UTF-32 LE"; -} \ No newline at end of file diff --git a/Foundation/NSString/NSConstantString-Impl.m b/Foundation/NSString/NSConstantString-Impl.m deleted file mode 100644 index 0dfa6842..00000000 --- a/Foundation/NSString/NSConstantString-Impl.m +++ /dev/null @@ -1,189 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -/* Constant strings are stored as UTF8, but this is expensive for NSString's, so - we optimize for ASCII only strings by marking the string as such. - */ -#define STORAGE_ASCII 0x40000000 -#define STORAGE_UTF8 0x80000000 -#define STORAGE_MASK (~(STORAGE_ASCII | STORAGE_UTF8)) - -@implementation NSConstantString (Impl) - -static inline void resolveStorageIfNeeded(NSConstantString *self) { - // FIX: There might be some hazard here modifying self->_length with - // multiple threads - uint32_t length = self->_length; - - if ((length & (STORAGE_ASCII | STORAGE_UTF8)) == 0) { - NSInteger check = NSConvertUTF8toUTF16(self->_bytes, length, NULL); - - if (check == length) - self->_length |= STORAGE_ASCII; - else - self->_length |= STORAGE_UTF8; - } -} - -static BOOL storageIsASCII(NSConstantString *self) { - return (self->_length & STORAGE_ASCII) ? YES : NO; -} - -static inline NSUInteger lengthOfBytes(NSConstantString *self) { - return self->_length & STORAGE_MASK; -} - -static inline NSUInteger lengthOfASCII(NSConstantString *self) { - return self->_length & STORAGE_MASK; -} - -static inline NSUInteger lengthOfUTF8(NSConstantString *self) { - return NSConvertUTF8toUTF16(self->_bytes, lengthOfBytes(self), NULL); -} - -static inline NSUInteger lengthInUnicode(NSConstantString *self) { - resolveStorageIfNeeded(self); - - if (storageIsASCII(self)) - return lengthOfASCII(self); - else - return lengthOfUTF8(self); -} - -- copy { - return self; -} - -- copyWithZone: (NSZone *) zone { - return self; -} - -- retain { - return self; -} - -- (void) release { -} - -- autorelease { - return self; -} - -- (NSUInteger) retainCount { - return UINT_MAX; -} - -- (void) dealloc { - return; - [super dealloc]; -} - -- (NSUInteger) length { - return lengthInUnicode(self); -} - -- (NSUInteger) lengthOfBytesUsingEncoding: (NSStringEncoding) encoding { - switch (encoding) { - case NSUTF8StringEncoding: - case NSASCIIStringEncoding: - return lengthOfBytes(self); - default: - NSUnimplementedMethod(); - return 0; - } -} - -- (unichar) characterAtIndex: (NSUInteger) location { - NSUInteger length = lengthInUnicode(self); - - if (location >= length) - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, length); - - if (storageIsASCII(self)) - return ((uint8_t *) _bytes)[location]; - else { - unichar unicode[length]; - // NSInteger check= - NSConvertUTF8toUTF16(self->_bytes, lengthOfBytes(self), unicode); - - return unicode[location]; - } -} - -- (void) getCharacters: (unichar *) buffer { - NSUInteger i, length = lengthInUnicode(self); - - if (storageIsASCII(self)) { - for (i = 0; i < length; i++) - buffer[i] = ((uint8_t *) _bytes)[i]; - } else { - unichar unicode[length]; - // NSInteger check= - NSConvertUTF8toUTF16(self->_bytes, lengthOfBytes(self), unicode); - - for (i = 0; i < length; i++) - buffer[i] = unicode[i]; - } -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSUInteger length = lengthInUnicode(self); - - if (NSMaxRange(range) > length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - length); - } - - NSInteger i, loc = range.location, len = range.length; - - if (storageIsASCII(self)) { - for (i = 0; i < len; i++) - buffer[i] = ((uint8_t *) _bytes)[loc + i]; - } else { - unichar unicode[length]; - // NSInteger check= - NSConvertUTF8toUTF16(self->_bytes, lengthOfBytes(self), unicode); - - for (i = 0; i < len; i++) - buffer[i] = unicode[loc + i]; - } -} - -- (NSUInteger) hash { - NSUInteger length = lengthInUnicode(self); - - if (storageIsASCII(self)) - return NSStringHashASCII(_bytes, MIN(length, NSHashStringLength)); - else { - unichar unicode[length]; - // NSInteger check= - NSConvertUTF8toUTF16(self->_bytes, lengthOfBytes(self), unicode); - - return NSStringHashUnicode(unicode, MIN(length, NSHashStringLength)); - } -} - -@end diff --git a/Foundation/NSString/NSDarwinString.h b/Foundation/NSString/NSDarwinString.h deleted file mode 100644 index 67c50f1b..00000000 --- a/Foundation/NSString/NSDarwinString.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -// This is a string type generated by gcc on OS X. The layout is that of -// NSCFString. NSInitializeProcess assigns this to -// __CFConstantStringClassReference. The flags specify the encoding etc., but we -// ignore them for now. - -@interface NSDarwinString : NSString { - NSUInteger _flags; - char *_bytes; - unsigned _length; -} -@end diff --git a/Foundation/NSString/NSDarwinString.m b/Foundation/NSString/NSDarwinString.m deleted file mode 100644 index 8b14391f..00000000 --- a/Foundation/NSString/NSDarwinString.m +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NSDarwinString.h" - -#if __APPLE__ -#import -#import -#import - -// only needed for Darwin ppc -struct objc_class _NSConstantStringClassReference; - -// only needed for Darwin i386/x86 -#if __LP64__ -int __CFConstantStringClassReference[24] = {0}; -#else -int __CFConstantStringClassReference[12] = {0}; -#endif - -@implementation NSDarwinString - -- copy { - return self; -} - -- copyWithZone: (NSZone *) zone { - return self; -} - -- retain { - return self; -} - -- (oneway void) release { -} - -- autorelease { - return self; -} - -- (void) dealloc { - return; - [super dealloc]; -} - -- (NSUInteger) length { - return _length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _bytes[location]; -} - -- (void) getCharacters: (unichar *) buffer { - int i; - - for (i = 0; i < _length; i++) - buffer[i] = _bytes[i]; -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, loc = range.location, len = range.length; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < len; i++) - buffer[i] = _bytes[loc + i]; -} - -- (NSUInteger) hash { - return NSStringHashASCII(_bytes, MIN(_length, NSHashStringLength)); -} - -@end - -#endif diff --git a/Foundation/NSString/NSMutableString.h b/Foundation/NSString/NSMutableString.h deleted file mode 100644 index 24240f91..00000000 --- a/Foundation/NSString/NSMutableString.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableString : NSString - -- initWithCapacity: (NSUInteger) capacity; - -+ string; -+ stringWithCapacity: (NSUInteger) capacity; - -- (void) appendString: (NSString *) string; -- (void) appendFormat: (NSString *) format, ...; - -- (void) deleteCharactersInRange: (NSRange) range; - -- (void) insertString: (NSString *) string atIndex: (NSUInteger) index; - -- (void) replaceCharactersInRange: (NSRange) range - withString: (NSString *) string; -- (void) setString: (NSString *) string; - -- (NSUInteger) replaceOccurrencesOfString: (NSString *) target - withString: (NSString *) replacement - options: (NSStringCompareOptions) opts - range: (NSRange) searchRange; - -@end diff --git a/Foundation/NSString/NSMutableString.m b/Foundation/NSString/NSMutableString.m deleted file mode 100644 index eafde545..00000000 --- a/Foundation/NSString/NSMutableString.m +++ /dev/null @@ -1,214 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#include - -@implementation NSMutableString : NSString - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSMutableString")) - return NSAllocateObject(objc_lookUpClass("NSMutableString_unicodePtr"), - 0, zone); - - return NSAllocateObject(self, 0, zone); -} - -- initWithCapacity: (NSUInteger) capacity { - NSInvalidAbstractInvocation(); - return nil; -} - -- copy { - return [[NSString allocWithZone: NULL] initWithString: self]; -} - -- copyWithZone: (NSZone *) zone { - return [[NSString allocWithZone: zone] initWithString: self]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSMutableString"); -} - -+ string { - return NSAutorelease(NSMutableString_unicodePtrNew(NULL, NULL, 0)); -} - -+ stringWithCharacters: (const unichar *) unicode length: (NSUInteger) length { - return NSAutorelease(NSMutableString_unicodePtrNew(NULL, unicode, length)); -} - -+ stringWithCString: (const char *) bytes length: (NSUInteger) length { - return NSAutorelease( - NSMutableString_unicodePtrNewWithCString(NULL, bytes, length)); -} - -+ stringWithCString: (const char *) bytes { - return NSAutorelease(NSMutableString_unicodePtrNewWithCString( - NULL, bytes, strlen(bytes))); -} - -+ stringWithFormat: (NSString *) format, ... { - va_list arguments; - NSUInteger length; - unichar *unicode; - - va_start(arguments, format); - - unicode = NSCharactersNewWithFormat(format, nil, arguments, &length, NULL); - va_end(arguments); - - return NSAutorelease( - NSMutableString_unicodePtrNewNoCopy(NULL, unicode, length)); -} - -+ stringWithContentsOfFile: (NSString *) path { - NSUInteger length; - unichar *unicode; - - if ((unicode = NSCharactersWithContentsOfFile(path, &length, NULL)) == NULL) - return nil; - - return NSAutorelease( - NSMutableString_unicodePtrNewNoCopy(NULL, unicode, length)); -} - -+ localizedStringWithFormat: (NSString *) format, ... { - va_list arguments; - NSUInteger length; - unichar *unicode; - - va_start(arguments, format); - - unicode = NSCharactersNewWithFormat(format, nil, arguments, &length, NULL); - va_end(arguments); - - return NSAutorelease( - NSMutableString_unicodePtrNewNoCopy(NULL, unicode, length)); -} - -+ stringWithCapacity: (NSUInteger) capacity { - return NSAutorelease( - NSMutableString_unicodePtrNewWithCapacity(NULL, capacity)); -} - -- (void) appendString: (NSString *) string { - NSRange range = {[self length], 0}; - - [self replaceCharactersInRange: range withString: string]; -} - -- (void) appendFormat: (NSString *) format, ... { - NSString *string; - NSRange range = {[self length], 0}; - va_list arguments; - - va_start(arguments, format); - - string = NSAutorelease(NSStringNewWithFormat(format, nil, arguments, NULL)); - va_end(arguments); - - [self replaceCharactersInRange: range withString: string]; -} - -- (void) deleteCharactersInRange: (NSRange) range { - if (NSMaxRange(range) > [self length]) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - [self replaceCharactersInRange: range withString: @""]; -} - -- (void) insertString: (NSString *) string atIndex: (NSUInteger) index { - NSRange range = {index, 0}; - - if (index > [self length]) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", index, [self length]); - } - - [self replaceCharactersInRange: range withString: string]; -} - -- (void) replaceCharactersInRange: (NSRange) range - withString: (NSString *) string -{ - NSInvalidAbstractInvocation(); -} - -- (void) setString: (NSString *) string { - NSRange range = {0, [self length]}; - - [self replaceCharactersInRange: range withString: string]; -} - -// returns the number of replacements performed -- (NSUInteger) replaceOccurrencesOfString: (NSString *) target - withString: (NSString *) replacement - options: (NSStringCompareOptions) opts - range: (NSRange) searchRange -{ - if (target == nil) { - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"nil target object"); - } - if (replacement == nil) { - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"nil replacement object"); - } - if (searchRange.location + searchRange.length > [self length]) { - NSRaiseException(NSRangeException, self, _cmd, - @"end of search range %d beyond length %d", - searchRange.location + searchRange.length, - [self length]); - } - - const BOOL isBackwards = (opts & NSBackwardsSearch) ? YES : NO; - const NSUInteger replacementLen = [replacement length]; - NSRange subrange; - - NSUInteger n = 0; - while ((subrange = [self rangeOfString: target - options: opts - range: searchRange]) - .location != NSNotFound) { - [self replaceCharactersInRange: subrange withString: replacement]; - - if (!isBackwards) { - searchRange.length -= (subrange.location - searchRange.location) + - subrange.length; - searchRange.location = subrange.location + replacementLen; - } else { - searchRange.length = subrange.location - searchRange.location; - } - - n++; - } - return n; -} - -@end diff --git a/Foundation/NSString/NSMutableString_unicodePtr.h b/Foundation/NSString/NSMutableString_unicodePtr.h deleted file mode 100644 index 57d04a37..00000000 --- a/Foundation/NSString/NSMutableString_unicodePtr.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSMutableString_unicodePtr : NSMutableString { - NSUInteger _length, _capacity; - unichar *_unicode; -} -@end - -NSString *NSMutableString_unicodePtrNewWithCString(NSZone *zone, - const char *bytes, - NSUInteger length); - -NSString *NSMutableString_unicodePtrNew(NSZone *zone, const unichar *unicode, - NSUInteger length); - -NSString *NSMutableString_unicodePtrNewNoCopy(NSZone *zone, unichar *unicode, - NSUInteger length); - -NSString *NSMutableString_unicodePtrNewWithCapacity(NSZone *zone, - NSUInteger capacity); diff --git a/Foundation/NSString/NSMutableString_unicodePtr.m b/Foundation/NSString/NSMutableString_unicodePtr.m deleted file mode 100644 index ed5fdd7c..00000000 --- a/Foundation/NSString/NSMutableString_unicodePtr.m +++ /dev/null @@ -1,401 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -@implementation NSMutableString_unicodePtr - -- (NSUInteger) length { - return _length; -} - -- (NSUInteger) lengthOfBytesUsingEncoding: (NSStringEncoding) encoding { - switch (encoding) { - case NSUTF8StringEncoding: - return NSConvertUTF16toUTF8(_unicode, _length, NULL); - case NSUnicodeStringEncoding: - return _length; - - default: - NSUnimplementedMethod(); - NSLog(@"For encoding: %i", encoding); - return 0; - } -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _unicode[location]; -} - -- (void) getCharacters: (unichar *) buffer { - memcpy(buffer, _unicode, _length * sizeof(unichar)); -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, loc = range.location; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - memcpy(buffer, _unicode + loc, range.length * sizeof(unichar)); -} - -- (void) replaceCharactersInRange: (NSRange) range - withString: (NSString *) string -{ - NSUInteger otherlength = [string length]; - NSUInteger i, loc = range.location; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - if (range.length < otherlength) { // make room - NSUInteger delta = otherlength - range.length; - - _length += delta; - - if (_length > _capacity) { - if (_capacity == 0) - _capacity = 1; - - while (_length > _capacity) - _capacity *= 2; - - _unicode = NSZoneRealloc(NSZoneFromPointer(_unicode), _unicode, - sizeof(unichar) * _capacity); - } - - for (i = _length; --i >= loc + otherlength;) - _unicode[i] = _unicode[i - delta]; - } else if (range.length > otherlength) { // delete some - NSUInteger delta = range.length - otherlength; - - _length -= delta; - - for (i = loc + otherlength; i < _length; i++) - _unicode[i] = _unicode[i + delta]; - } - - [string getCharacters: _unicode + loc range: NSMakeRange(0, otherlength)]; -} - -- (NSUInteger) hash { - return NSStringHashUnicode(_unicode, MIN(_length, NSHashStringLength)); -} - -static inline NSUInteger roundCapacityUp(NSUInteger capacity) { - return (capacity < 4) ? 4 : capacity; -} - -NSMutableString_unicodePtr * -NSMutableString_unicodePtrInitWithCString(NSMutableString_unicodePtr *self, - const char *cString, - NSUInteger length, NSZone *zone) -{ - self->_unicode = - NSCharactersFromCString(cString, length, &(self->_length), zone); - self->_capacity = self->_length; - - return self; -} - -NSMutableString_unicodePtr * -NSMutableString_unicodePtrInit(NSMutableString_unicodePtr *self, - const unichar *unicode, NSUInteger length, - NSZone *zone) -{ - NSInteger i; - - self->_length = length; - self->_capacity = roundCapacityUp(length); - self->_unicode = NSZoneMalloc(zone, sizeof(unichar) * self->_capacity); - for (i = 0; i < length; i++) { - self->_unicode[i] = unicode[i]; - } - - return self; -} - -NSMutableString_unicodePtr * -NSMutableString_unicodePtrInitNoCopy(NSMutableString_unicodePtr *self, - unichar *unicode, NSUInteger length, - NSZone *zone) -{ - self->_length = length; - self->_capacity = length; - self->_unicode = unicode; - - return self; -} - -NSMutableString_unicodePtr * -NSMutableString_unicodePtrInitWithCapacity(NSMutableString_unicodePtr *self, - NSUInteger capacity, NSZone *zone) -{ - self->_length = 0; - self->_capacity = roundCapacityUp(capacity); - self->_unicode = NSZoneMalloc(zone, sizeof(unichar) * self->_capacity); - - return self; -} - -NSString *NSMutableString_unicodePtrNewWithCString(NSZone *zone, - const char *cString, - NSUInteger length) -{ - NSMutableString_unicodePtr *self = NSAllocateObject( - objc_lookUpClass("NSMutableString_unicodePtr"), 0, zone); - if (self) { - self = NSMutableString_unicodePtrInitWithCString(self, cString, length, - zone); - } - return self; -} - -NSString *NSMutableString_unicodePtrNew(NSZone *zone, const unichar *unicode, - NSUInteger length) -{ - NSMutableString_unicodePtr *self = NSAllocateObject( - objc_lookUpClass("NSMutableString_unicodePtr"), 0, zone); - if (self) { - self = NSMutableString_unicodePtrInit(self, unicode, length, zone); - } - return self; -} - -NSString *NSMutableString_unicodePtrNewNoCopy(NSZone *zone, unichar *unicode, - NSUInteger length) -{ - NSMutableString_unicodePtr *self; - - self = NSAllocateObject(objc_lookUpClass("NSMutableString_unicodePtr"), 0, - zone); - if (self) { - self = NSMutableString_unicodePtrInitNoCopy(self, unicode, length, - zone); - } - return self; -} - -NSString *NSMutableString_unicodePtrNewWithCapacity(NSZone *zone, - NSUInteger capacity) -{ - NSMutableString_unicodePtr *self; - - self = NSAllocateObject(objc_lookUpClass("NSMutableString_unicodePtr"), 0, - zone); - if (self) { - self = NSMutableString_unicodePtrInitWithCapacity(self, capacity, zone); - } - return self; -} - -- (void) dealloc { - NSZoneFree(NSZoneFromPointer(self->_unicode), self->_unicode); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- init { - return NSMutableString_unicodePtrInitWithCapacity(self, 0, - NSZoneFromPointer(self)); -} - -- initWithCharactersNoCopy: (unichar *) characters - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - NSMutableString_unicodePtr *string = NSMutableString_unicodePtrInit( - self, characters, length, NSZoneFromPointer(self)); - - if (freeWhenDone) { - NSZoneFree(NSZoneFromPointer(characters), characters); - } - - return string; -} - -- initWithCharacters: (const unichar *) characters length: (NSUInteger) length { - return NSMutableString_unicodePtrInit(self, characters, length, - NSZoneFromPointer(self)); -} - -- initWithCStringNoCopy: (char *) bytes - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - NSMutableString_unicodePtr *string = - NSMutableString_unicodePtrInitWithCString(self, bytes, length, - NSZoneFromPointer(self)); - - if (freeWhenDone) { - NSZoneFree(NSZoneFromPointer(bytes), bytes); - } - - return string; -} - -- initWithCString: (const char *) bytes length: (NSUInteger) length { - return NSMutableString_unicodePtrInitWithCString(self, bytes, length, - NSZoneFromPointer(self)); -} - -- initWithCString: (const char *) bytes { - NSUInteger length = strlen(bytes); - - return NSMutableString_unicodePtrInitWithCString(self, bytes, length, - NSZoneFromPointer(self)); -} - -- initWithString: (NSString *) string { - NSUInteger length = [string length]; - unichar *unicode = NSZoneMalloc(NULL, sizeof(unichar) * length); - if (unicode) { - [string getCharacters: unicode]; - - self = NSMutableString_unicodePtrInit(self, unicode, length, - NSZoneFromPointer(self)); - free(unicode); - } else { - [self release]; - self = nil; - } - return self; -} - -- initWithFormat: (NSString *) format, ... { - va_list arguments; - NSUInteger length; - unichar *unicode; - - va_start(arguments, format); - - unicode = NSCharactersNewWithFormat(format, nil, arguments, &length, - NSZoneFromPointer(self)); - va_end(arguments); - - return NSMutableString_unicodePtrInitNoCopy(self, unicode, length, - NSZoneFromPointer(self)); -} - -- initWithFormat: (NSString *) format arguments: (va_list) arguments { - NSUInteger length; - unichar *unicode; - - unicode = NSCharactersNewWithFormat(format, nil, arguments, &length, - NSZoneFromPointer(self)); - - return NSMutableString_unicodePtrInitNoCopy(self, unicode, length, - NSZoneFromPointer(self)); -} - -- initWithFormat: (NSString *) format locale: (NSDictionary *) locale, ... { - va_list arguments; - NSUInteger length; - unichar *unicode; - - va_start(arguments, locale); - - unicode = NSCharactersNewWithFormat(format, locale, arguments, &length, - NSZoneFromPointer(self)); - va_end(arguments); - - return NSMutableString_unicodePtrInitNoCopy(self, unicode, length, - NSZoneFromPointer(self)); -} - -- initWithBytes: (const void *) bytes - length: (NSUInteger) length - encoding: (NSStringEncoding) encoding -{ - NSUInteger resultLength; - unichar *characters; - - characters = NSString_anyCStringToUnicode( - encoding, bytes, length, &resultLength, NSZoneFromPointer(self)); - - return NSMutableString_unicodePtrInitNoCopy(self, characters, resultLength, - NSZoneFromPointer(self)); -} - -- initWithFormat: (NSString *) format - locale: (NSDictionary *) locale - arguments: (va_list) arguments -{ - NSUInteger length; - unichar *unicode; - - unicode = NSCharactersNewWithFormat(format, locale, arguments, &length, - NSZoneFromPointer(self)); - - return NSMutableString_unicodePtrInitNoCopy(self, unicode, length, - NSZoneFromPointer(self)); -} - -- initWithData: (NSData *) data encoding: (NSStringEncoding) encoding { - return [self initWithBytes: [data bytes] - length: [data length] - encoding: encoding]; -} - -- initWithContentsOfFile: (NSString *) path { - NSUInteger length; - unichar *unicode; - - if ((unicode = NSCharactersWithContentsOfFile( - path, &length, NSZoneFromPointer(self))) == NULL) { - NSDeallocateObject(self); - return nil; - } - - return NSMutableString_unicodePtrInitNoCopy(self, unicode, length, - NSZoneFromPointer(self)); -} - -- initWithCapacity: (NSUInteger) capacity { - return NSMutableString_unicodePtrInitWithCapacity(self, capacity, - NSZoneFromPointer(self)); -} - -@end diff --git a/Foundation/NSString/NSPathUtilities.h b/Foundation/NSString/NSPathUtilities.h deleted file mode 100644 index 54ce62cf..00000000 --- a/Foundation/NSString/NSPathUtilities.h +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString (NSString_pathUtilities) - -+ (NSString *) pathWithComponents: (NSArray *) components; -- (NSArray *) pathComponents; - -- (NSString *) lastPathComponent; - -- (NSString *) pathExtension; - -- (NSString *) stringByAppendingPathComponent: (NSString *) string; -- (NSString *) stringByAppendingPathExtension: (NSString *) string; -- (NSArray *) stringsByAppendingPaths: (NSArray *) paths; - -- (NSString *) stringByDeletingLastPathComponent; -- (NSString *) stringByDeletingPathExtension; - -- (NSString *) stringByExpandingTildeInPath; -- (NSString *) stringByAbbreviatingWithTildeInPath; - -- (NSString *) stringByStandardizingPath; -- (NSString *) stringByResolvingSymlinksInPath; - -- (BOOL) isAbsolutePath; - -- (const char *) fileSystemRepresentation; -- (const uint16_t *) fileSystemRepresentationW; -- (BOOL) getFileSystemRepresentation: (char *) bytes - maxLength: (NSUInteger) maxLength; - -- (NSUInteger) completePathIntoString: (NSString **) string - caseSensitive: (BOOL) caseSensitive - matchesIntoArray: (NSArray **) array - filterTypes: (NSArray *) types; - -@end - -enum { - NSLibraryDirectory = 5, - NSCachesDirectory = 13, - NSApplicationSupportDirectory = 14, -}; - -typedef NSUInteger NSSearchPathDirectory; - -enum { - NSUserDomainMask = 0x0001, - NSLocalDomainMask = 0x0002, - NSNetworkDomainMask = 0x0004, - NSSystemDomainMask = 0x0008, - NSAllDomainsMask = 0xffff, -}; - -typedef NSUInteger NSSearchPathDomainMask; - -FOUNDATION_EXPORT NSArray * -NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory d, - NSSearchPathDomainMask mask, BOOL expand); - -FOUNDATION_EXPORT NSString *NSHomeDirectory(void); - -FOUNDATION_EXPORT NSString *NSTemporaryDirectory(void); - -FOUNDATION_EXPORT NSString *NSUserName(void); -FOUNDATION_EXPORT NSString *NSFullUserName(void); diff --git a/Foundation/NSString/NSPathUtilities.m b/Foundation/NSString/NSPathUtilities.m deleted file mode 100644 index d518460a..00000000 --- a/Foundation/NSString/NSPathUtilities.m +++ /dev/null @@ -1,390 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import - -#include -#include - -/* The rule of slash is to always use / for slash. All calls to platform API's - must convert between the / and the platform slash. All public API, down to - the Objective-C C string image name calls must use /. - - As of now, this is not true, but that is where it is going. The main reason - being that URL's expect all paths to use /, and there is a trend in Cocoa - code to mix filesystem path strings and NSURL strings. If we accept \ in file - system path strings at the Cocoa layer, you end up with broken URL's. - - We understand \ when present in a string to be a /, but we don't put them in - strings. - - */ - -#define ISSLASH(X) ((X) == '/' || (X) == '\\') - -#define SLASH '/' - -@implementation NSString (NSStringPathUtilities) - -+ (NSString *) pathWithComponents: (NSArray *) components { - return [components componentsJoinedByString: @"/"]; -} - -- (NSArray *) pathComponents { - NSMutableArray *array = [NSMutableArray array]; - NSUInteger length = [self length]; - unichar unicode[length]; - NSString *string; - int b, e; - - [self getCharacters: unicode]; - - e = 0; - do { - b = e; - while (e < length && unicode[e] != '\\' && unicode[e] != '/') - e++; - string = [NSString stringWithCharacters: unicode + b length: e - b]; - if ([string length]) - [array addObject: string]; - e++; // skip sepchar - } while (e < length); - - return array; -} - -- (NSString *) lastPathComponent { - NSUInteger length = [self length]; - unichar buffer[length]; - NSInteger i; - - [self getCharacters: buffer]; - - if (length > 1 && ISSLASH(buffer[length - 1])) - length--; - - for (i = length; --i >= 0;) - if (ISSLASH(buffer[i]) && i < length - 1) - return [NSString stringWithCharacters: buffer + i + 1 - length: (length - i) - 1]; - - return [NSString stringWithCharacters: buffer length: length]; -} - -- (NSString *) pathExtension { - NSUInteger length = [self length]; - unichar buffer[length]; - NSInteger i; - - [self getCharacters: buffer]; - - if (length > 0 && ISSLASH(buffer[length - 1])) - length--; - - for (i = length; --i >= 0;) { - if (ISSLASH(buffer[i])) - return @""; - if (buffer[i] == '.') - return [NSString stringWithCharacters: buffer + i + 1 - length: (length - i) - 1]; - } - - return @""; -} - -- (NSString *) stringByAppendingPathComponent: (NSString *) other { - NSUInteger selfLength = [self length]; - - if (selfLength == 0) { - if (other) { - return [NSString stringWithString: other]; - } else { - return @""; - } - } - - NSUInteger otherLength = [other length]; - NSUInteger totalLength = selfLength + 1 + otherLength; - unichar characters[totalLength]; - - [self getCharacters: characters]; - NSUInteger p = selfLength; - while (--p > 0 && ISSLASH(characters[p])) - ; - if (!ISSLASH(characters[p])) { - ++p; - } - characters[p] = SLASH; - NSUInteger q = 0; - while (q < otherLength && ISSLASH([other characterAtIndex: q])) { - q++; - } - [other getCharacters: characters + p + 1 - range: NSMakeRange(q, otherLength - q)]; - - return [NSString stringWithCharacters: characters - length: p + 1 - q + otherLength]; -} - -- (NSString *) stringByAppendingPathExtension: (NSString *) other { - if ([other length] > 0) { - NSUInteger selfLength = [self length]; - if (selfLength && [self characterAtIndex: selfLength - 1] == SLASH) - selfLength--; - NSUInteger otherLength = [other length]; - NSUInteger totalLength = selfLength + 1 + otherLength; - unichar characters[totalLength]; - - [self getCharacters: characters]; - characters[selfLength] = '.'; - [other getCharacters: characters + selfLength + 1]; - - return [NSString stringWithCharacters: characters length: totalLength]; - } else { - return self; - } -} - -- (NSString *) stringByDeletingLastPathComponent { - NSUInteger length = [self length]; - unichar buffer[length]; - NSInteger i; - - [self getCharacters: buffer]; - - for (i = length; --i >= 0;) - if (ISSLASH(buffer[i])) { - if (i == 0) - return @"/"; - else if (i + 1 < length) - return [NSString stringWithCharacters: buffer length: i]; - } - - return @""; -} - -- (NSString *) stringByDeletingPathExtension { - NSUInteger length = [self length]; - unichar buffer[length]; - NSInteger i; - - [self getCharacters: buffer]; - - if (length > 1 && ISSLASH(buffer[length - 1])) - length--; - - for (i = length; --i > 0;) { - if (ISSLASH(buffer[i]) || ISSLASH(buffer[i - 1])) - break; - else if (buffer[i] == '.') - return [NSString stringWithCharacters: buffer length: i]; - } - - return [NSString stringWithCharacters: buffer length: length]; -} - -- (NSString *) stringByExpandingTildeInPath { - NSString *homedir, *rest; - NSUInteger length = [self length]; - unichar buffer[length]; - int i; - - [self getCharacters: buffer]; - - if (length == 0) - return @""; - else if (buffer[0] != '~') - return [NSString stringWithCharacters: buffer length: length]; - - for (i = 1; !ISSLASH(buffer[i]) && i < length; i++) - ; - - if (i == 1) - homedir = NSHomeDirectory(); - else { - // NSString *user=[NSString stringWithCharacters:buffer+1 length:i-1]; - homedir = nil; // NSHomeDirectoryForUser(user); - } - - if (homedir == nil) - return [NSString stringWithCharacters: buffer length: length]; - - rest = [NSString stringWithCharacters: buffer + i length: length - i]; - - return [homedir stringByAppendingString: rest]; -} - -- (NSString *) stringByAbbreviatingWithTildeInPath { - NSString *homedir = NSHomeDirectory(), *rest; - NSUInteger length = [self length], homelength = [homedir length]; - unichar buffer[length], homebuffer[homelength]; - int i; - - [self getCharacters: buffer]; - if (homedir == nil) - return [NSString stringWithCharacters: buffer length: length]; - - [homedir getCharacters: homebuffer]; - - if (length < homelength || - (length > homelength && !ISSLASH(buffer[homelength]))) - return [NSString stringWithCharacters: buffer length: length]; - - for (i = 0; i < homelength; i++) - if (buffer[i] != homebuffer[i]) - return [NSString stringWithCharacters: buffer length: length]; - - rest = [NSString stringWithCharacters: buffer + homelength - length: length - homelength]; - - return [@"~" stringByAppendingString: rest]; -} - -- (NSString *) stringByStandardizingPath { - NSUInteger length = [self length]; - if (length < 1) - return @""; - - // expand tilde - NSString *standardPath = self; - if ([self characterAtIndex: 0] == '~') { - standardPath = [standardPath stringByExpandingTildeInPath]; - length = [standardPath length]; - } - - unichar buffer[length]; - unichar cleanedBuffer[length]; - int cleanedN = 0; - int i; - - [standardPath getCharacters: buffer]; - - for (i = 0; i < length; i++) { - cleanedBuffer[cleanedN++] = buffer[i]; - - if (ISSLASH(buffer[i])) { - while (i + 1 < length && ISSLASH(buffer[i + 1])) { - i++; // skip past all following slashes - } - if (i + 2 < length && buffer[i + 1] == '.' && - ISSLASH(buffer[i + 2])) - i += 2; // skip past "./" sequence - } - } - - // this implementation doesn't do all transformations described in Cocoa - // documentation - - return [NSString stringWithCharacters: cleanedBuffer length: cleanedN]; -} - -- (BOOL) isAbsolutePath { - if ([self length] > 0) { - if (ISSLASH([self characterAtIndex: 0])) - return YES; - - if ([self length] > 1) { - if ([self characterAtIndex: 1] == ':') - return YES; - } - } - - return NO; -} - -- (const char *) fileSystemRepresentation { - return [[NSFileManager defaultManager] - fileSystemRepresentationWithPath: self]; -} - -- (const uint16_t *) fileSystemRepresentationW { - return [[NSFileManager defaultManager] - fileSystemRepresentationWithPathW: self]; -} - -@end - -NSArray *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, - NSSearchPathDomainMask mask, - BOOL expand) -{ - if (mask != NSUserDomainMask) - NSUnimplementedFunction(); - - /* Callers expect the directories to exist, so create them if needed. - */ - - if (directory == NSLibraryDirectory) { - NSString *path = [[NSPlatform currentPlatform] libraryDirectory]; - - [[NSFileManager defaultManager] createDirectoryAtPath: path - withIntermediateDirectories: YES - attributes: nil - error: NULL]; - - return [NSArray arrayWithObject: path]; - } - - if (directory == NSCachesDirectory) { - NSString *path = [[[NSPlatform currentPlatform] libraryDirectory] - stringByAppendingPathComponent: @"Caches"]; - - [[NSFileManager defaultManager] createDirectoryAtPath: path - withIntermediateDirectories: YES - attributes: nil - error: NULL]; - - return [NSArray arrayWithObject: path]; - } - - if (directory == NSApplicationSupportDirectory) { - NSString *path = [[[NSPlatform currentPlatform] libraryDirectory] - stringByAppendingPathComponent: @"Application Support"]; - - [[NSFileManager defaultManager] createDirectoryAtPath: path - withIntermediateDirectories: YES - attributes: nil - error: NULL]; - - return [NSArray arrayWithObject: path]; - } - - return nil; -} - -NSString *NSHomeDirectory(void) { - return [[NSPlatform currentPlatform] homeDirectory]; -} - -NSString *NSTemporaryDirectory(void) { - return [[NSPlatform currentPlatform] temporaryDirectory]; -} - -NSString *NSUserName(void) { - return [[NSPlatform currentPlatform] userName]; -} - -NSString *NSFullUserName(void) { - return [[NSPlatform currentPlatform] fullUserName]; -} diff --git a/Foundation/NSString/NSString.h b/Foundation/NSString/NSString.h deleted file mode 100644 index aa442c73..00000000 --- a/Foundation/NSString/NSString.h +++ /dev/null @@ -1,324 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSArray, NSData, NSDictionary, NSCharacterSet, NSError, NSLocale, NSURL; - -typedef uint16_t unichar; - -typedef enum { - NSASCIIStringEncoding = 1, - NSNEXTSTEPStringEncoding = 2, - NSJapaneseEUCStringEncoding = 3, - NSUTF8StringEncoding = 4, - NSISOLatin1StringEncoding = 5, - NSSymbolStringEncoding = 6, - NSNonLossyASCIIStringEncoding = 7, - NSShiftJISStringEncoding = 8, - NSISOLatin2StringEncoding = 9, - NSUnicodeStringEncoding = 10, - NSWindowsCP1251StringEncoding = 11, - NSWindowsCP1252StringEncoding = 12, - NSWindowsCP1253StringEncoding = 13, - NSWindowsCP1254StringEncoding = 14, - NSWindowsCP1250StringEncoding = 15, - NSISO2022JPStringEncoding = 21, - NSMacOSRomanStringEncoding = 30, - NSProprietaryStringEncoding = 0x00010000, - NSUTF16BigEndianStringEncoding = 0x90000100, - NSUTF16LittleEndianStringEncoding = 0x94000100, - NSUTF32StringEncoding = 0x8c000100, - NSUTF32BigEndianStringEncoding = 0x98000100, - NSUTF32LittleEndianStringEncoding = 0x9c000100, -} NSStringEncoding; - -enum { - NSCaseInsensitiveSearch = 0x01, - NSLiteralSearch = 0x02, - NSBackwardsSearch = 0x04, - NSAnchoredSearch = 0x08, - NSNumericSearch = 0x40, -}; - -enum { - NSStringEncodingConversionAllowLossy = 1, - NSStringEncodingConversionExternalRepresentation = 2 -}; - -typedef NSUInteger NSStringCompareOptions; -typedef NSUInteger NSStringEncodingConversionOptions; - -FOUNDATION_EXPORT const NSUInteger NSMaximumStringLength; - -@interface NSString : NSObject - -+ (const NSStringEncoding *) availableStringEncodings; -+ (NSString *) localizedNameOfStringEncoding: (NSStringEncoding) encoding; - -+ stringWithCharacters: (const unichar *) unicode length: (NSUInteger) length; -+ string; -+ stringWithCString: (const char *) cString length: (NSUInteger) length; -+ stringWithCString: (const char *) cString; -+ stringWithString: (NSString *) string; -+ stringWithFormat: (NSString *) format, ...; -+ stringWithContentsOfFile: (NSString *) path; -+ stringWithContentsOfFile: (NSString *) path - encoding: (NSStringEncoding) encoding - error: (NSError **) error; -+ stringWithContentsOfFile: (NSString *) path - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error; -+ stringWithContentsOfURL: (NSURL *) url - encoding: (NSStringEncoding) encoding - error: (NSError **) error; -+ stringWithContentsOfURL: (NSURL *) url - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error; -+ stringWithCString: (const char *) cString - encoding: (NSStringEncoding) encoding; -+ stringWithUTF8String: (const char *) utf8; - -+ localizedStringWithFormat: (NSString *) format, ...; - -- initWithCharactersNoCopy: (unichar *) unicode - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone; -- initWithCharacters: (const unichar *) unicode length: (NSUInteger) length; -- init; - -- initWithCStringNoCopy: (char *) cString - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone; -- initWithCString: (const char *) cString length: (NSUInteger) length; -- initWithCString: (const char *) cString; -- initWithCString: (const char *) cString encoding: (NSStringEncoding) encoding; - -- initWithString: (NSString *) string; - -- initWithFormat: (NSString *) format - locale: (id) locale - arguments: (va_list) arguments; -- initWithFormat: (NSString *) format locale: (id) locale, ...; -- initWithFormat: (NSString *) format arguments: (va_list) arguments; -- initWithFormat: (NSString *) format, ...; - -- initWithData: (NSData *) data encoding: (NSStringEncoding) encoding; -- initWithUTF8String: (const char *) utf8; -- initWithBytes: (const void *) bytes - length: (NSUInteger) length - encoding: (NSStringEncoding) encoding; -- initWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - encoding: (NSStringEncoding) encoding - freeWhenDone: (BOOL) freeWhenDone; -- initWithContentsOfFile: (NSString *) path - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error; - -- initWithContentsOfFile: (NSString *) path; -- initWithContentsOfFile: (NSString *) path - encoding: (NSStringEncoding) encoding - error: (NSError **) error; -- initWithContentsOfFile: (NSString *) path - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error; -- initWithContentsOfURL: (NSURL *) url - encoding: (NSStringEncoding) encoding - error: (NSError **) error; -- initWithContentsOfURL: (NSURL *) url - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error; - -- (unichar) characterAtIndex: (NSUInteger) location; -- (NSUInteger) length; - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range; -- (void) getCharacters: (unichar *) buffer; - -- (NSComparisonResult) compare: (NSString *) other - options: (NSStringCompareOptions) options - range: (NSRange) range - locale: (NSLocale *) locale; -- (NSComparisonResult) compare: (NSString *) other - options: (NSStringCompareOptions) options - range: (NSRange) range; -- (NSComparisonResult) compare: (NSString *) other - options: (NSStringCompareOptions) options; -- (NSComparisonResult) compare: (NSString *) other; -- (NSComparisonResult) caseInsensitiveCompare: (NSString *) other; -- (NSComparisonResult) localizedCompare: (NSString *) other; -- (NSComparisonResult) localizedCaseInsensitiveCompare: (NSString *) other; - -- (BOOL) isEqualToString: (NSString *) string; - -- (BOOL) hasPrefix: (NSString *) string; -- (BOOL) hasSuffix: (NSString *) string; -- (NSRange) rangeOfString: (NSString *) string - options: (NSStringCompareOptions) options - range: (NSRange) range - locale: (NSLocale *) locale; -- (NSRange) rangeOfString: (NSString *) string - options: (NSStringCompareOptions) options - range: (NSRange) range; -- (NSRange) rangeOfString: (NSString *) string - options: (NSStringCompareOptions) options; -- (NSRange) rangeOfString: (NSString *) string; - -- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet *) set - options: (NSStringCompareOptions) options - range: (NSRange) range; -- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet *) set - options: (NSStringCompareOptions) options; -- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet *) set; - -- (void) getLineStart: (NSUInteger *) startp - end: (NSUInteger *) endp - contentsEnd: (NSUInteger *) contentsEndp - forRange: (NSRange) range; -- (NSRange) lineRangeForRange: (NSRange) range; - -- (void) getParagraphStart: (NSUInteger *) startp - end: (NSUInteger *) endp - contentsEnd: (NSUInteger *) contentsEndp - forRange: (NSRange) range; -- (NSRange) paragraphRangeForRange: (NSRange) range; - -- (NSString *) substringWithRange: (NSRange) range; -- (NSString *) substringFromIndex: (NSUInteger) location; -- (NSString *) substringToIndex: (NSUInteger) location; - -- (BOOL) boolValue; -- (int) intValue; -- (NSInteger) integerValue; -- (long long) longLongValue; -- (float) floatValue; -- (double) doubleValue; - -- (NSString *) lowercaseString; -- (NSString *) uppercaseString; -- (NSString *) capitalizedString; - -- (NSString *) stringByAppendingFormat: (NSString *) format, ...; -- (NSString *) stringByAppendingString: (NSString *) string; - -- (NSArray *) componentsSeparatedByString: (NSString *) separator; -- (NSArray *) componentsSeparatedByCharactersInSet: (NSCharacterSet *) set; - -- (NSString *) commonPrefixWithString: (NSString *) other - options: (NSStringCompareOptions) options; -- (NSString *) stringByPaddingToLength: (NSUInteger) length - withString: (NSString *) padding - startingAtIndex: (NSUInteger) index; -- (NSString *) stringByReplacingCharactersInRange: (NSRange) range - withString: (NSString *) substitute; -- (NSString *) stringByReplacingOccurrencesOfString: (NSString *) original - withString: (NSString *) substitute; -- (NSString *) - stringByReplacingOccurrencesOfString: (NSString *) original - withString: (NSString *) substitute - options: (NSStringCompareOptions) options - range: (NSRange) range; - -- (NSString *) stringByFoldingWithOptions: (NSStringCompareOptions) options - locale: (NSLocale *) locale; - -- (NSRange) rangeOfComposedCharacterSequenceAtIndex: (NSUInteger) index; -- (NSRange) rangeOfComposedCharacterSequencesForRange: (NSRange) range; - -- (NSString *) precomposedStringWithCanonicalMapping; -- (NSString *) decomposedStringWithCanonicalMapping; -- (NSString *) precomposedStringWithCompatibilityMapping; -- (NSString *) decomposedStringWithCompatibilityMapping; - -- propertyList; -- (NSDictionary *) propertyListFromStringsFileFormat; - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically; -- (BOOL) writeToFile: (NSString *) path - atomically: (BOOL) atomically - encoding: (NSStringEncoding) encoding - error: (NSError **) error; -- (BOOL) writeToURL: (NSURL *) url - atomically: (BOOL) atomically - encoding: (NSStringEncoding) encoding - error: (NSError **) error; - -- (NSStringEncoding) fastestEncoding; -- (NSStringEncoding) smallestEncoding; - -- (BOOL) canBeConvertedToEncoding: (NSStringEncoding) encoding; -- (NSUInteger) lengthOfBytesUsingEncoding: (NSStringEncoding) encoding; -- (NSUInteger) maximumLengthOfBytesUsingEncoding: (NSStringEncoding) encoding; - -- (NSData *) dataUsingEncoding: (NSStringEncoding) encoding - allowLossyConversion: (BOOL) lossy; -- (NSData *) dataUsingEncoding: (NSStringEncoding) encoding; - -- (BOOL) getBytes: (void *) buffer - maxLength: (NSUInteger) maxLength - usedLength: (NSUInteger *) usedLength - encoding: (NSStringEncoding) encoding - options: (NSStringEncodingConversionOptions) options - range: (NSRange) range - remainingRange: (NSRange *) remainingRange; - -- (const char *) UTF8String; - -- (NSString *) stringByReplacingPercentEscapesUsingEncoding: - (NSStringEncoding) encoding; -- (NSString *) stringByAddingPercentEscapesUsingEncoding: - (NSStringEncoding) encoding; - -- (NSString *) stringByTrimmingCharactersInSet: (NSCharacterSet *) set; - -- (const char *) cStringUsingEncoding: (NSStringEncoding) encoding; -- (BOOL) getCString: (char *) cString - maxLength: (NSUInteger) maxLength - encoding: (NSStringEncoding) encoding; - -- (NSString *) description; - -+ (NSStringEncoding) defaultCStringEncoding; - -- (void) getCString: (char *) buffer - maxLength: (NSUInteger) maxLength - range: (NSRange) range - remainingRange: (NSRange *) remainingRange; -- (void) getCString: (char *) buffer maxLength: (NSUInteger) maxLength; -- (void) getCString: (char *) buffer; - -- (NSUInteger) cStringLength; -- (const char *) cString; -- (const char *) lossyCString; - -@end - -@interface NSConstantString : NSString { - void *_bytes; - uint32_t _length; -} -@end - -// only needed for Darwin ppc -// extern struct objc_class _NSConstantStringClassReference; - -#import diff --git a/Foundation/NSString/NSString.m b/Foundation/NSString/NSString.m deleted file mode 100644 index 7e0f4502..00000000 --- a/Foundation/NSString/NSString.m +++ /dev/null @@ -1,2127 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - 2009 Markus Hitter - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -/* For maximum subclassing compatibility with Mac OS X, this class should depend -on the following NSString methods only: - --initWithCharactersNoCopy:(unichar *)characters length:(NSUInteger)length -freeWhenDone:(BOOL)freeWhenDone; - --initWithBytes:(const void *)bytes length:(NSUInteger)length -encoding:(NSStringEncoding)encoding; - --initWithFormat:(NSString *)format locale:(id)locale -arguments:(va_list)arguments; - --(unichar)characterAtIndex:(NSUInteger)location; - --(NSUInteger)length; - - All other methods should use at most the above methods, at least as a fallback. -*/ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import -#import -#import -#import -#import - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include -#include - -extern BOOL NSObjectIsKindOfClass(id object, Class kindOf); - -const NSUInteger NSMaximumStringLength = INT_MAX - 1; - -NSString *const NSCharacterConversionException = - @"NSCharacterConversionException"; - -// only needed for Darwin ppc -struct objc_class _NSConstantStringClassReference; -// only needed for Darwin i386 -int __CFConstantStringClassReference[1]; - -@implementation NSString - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSString")) - return NSAllocateObject(objc_lookUpClass("NSString_placeholder"), 0, - NULL); - - return NSAllocateObject(self, 0, zone); -} - -- initWithCharactersNoCopy: (unichar *) characters - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithCharacters: (const unichar *) characters length: (NSUInteger) length { - unichar *copy = NSZoneMalloc(NULL, length * sizeof(unichar)); - NSInteger i; - - for (i = 0; i < length; i++) - copy[i] = characters[i]; - - return [self initWithCharactersNoCopy: copy - length: length - freeWhenDone: YES]; -} - -- init { - return self; -} - -- initWithCStringNoCopy: (char *) cString - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - NSString *string = [self initWithBytes: cString - length: length - encoding: defaultEncoding()]; - - if (freeWhenDone) - NSZoneFree(NSZoneFromPointer(cString), cString); - - return string; -} - -- initWithCString: (const char *) cString length: (NSUInteger) length { - return [self initWithBytes: cString - length: length - encoding: defaultEncoding()]; -} - -- initWithCString: (const char *) cString { - return [self initWithBytes: cString - length: strlen(cString) - encoding: defaultEncoding()]; -} - -- initWithCString: (const char *) cString - encoding: (NSStringEncoding) encoding -{ - return [self initWithBytes: cString - length: strlen(cString) - encoding: encoding]; -} - -- initWithString: (NSString *) string { - NSUInteger length = [string length]; - unichar *unicode = NSZoneMalloc(NULL, sizeof(unichar) * length); - - [string getCharacters: unicode]; - - return [self initWithCharactersNoCopy: unicode - length: length - freeWhenDone: YES]; -} - -- initWithFormat: (NSString *) format - locale: (id) locale - arguments: (va_list) arguments -{ - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithFormat: (NSString *) format locale: (id) locale, ... { - va_list arguments; - - va_start(arguments, locale); - id result = [self initWithFormat: format - locale: locale - arguments: arguments]; - va_end(arguments); - - return result; -} - -- initWithFormat: (NSString *) format arguments: (va_list) arguments { - return [self initWithFormat: format locale: nil arguments: arguments]; -} - -- initWithFormat: (NSString *) format, ... { - va_list arguments; - - va_start(arguments, format); - id result = [self initWithFormat: format locale: nil arguments: arguments]; - va_end(arguments); - - return result; -} - -- initWithData: (NSData *) data encoding: (NSStringEncoding) encoding { - return [self initWithBytes: [data bytes] - length: [data length] - encoding: encoding]; -} - -- initWithFileData: (NSData *) data - encoding: (NSStringEncoding) encoding - error: (NSError **) error -{ - NSString *string = [self initWithBytes: [data bytes] - length: [data length] - encoding: encoding]; - if (string == nil) { - // TODO: Should fill the NSError here with something about "encoding - // failed". - } - - return string; -} - -- initWithFileData: (NSData *) data - usedEncoding: (NSStringEncoding *) encodingp - error: (NSError **) error -{ - NSStringEncoding encoding = NSNEXTSTEPStringEncoding; - NSString *string; - - const unsigned char *bytes = [data bytes]; - NSUInteger length = [data length]; - - // guess encoding - if ((length >= 2) && ((bytes[0] == 0xFE && bytes[1] == 0xFF) || - (bytes[0] == 0xFF && bytes[1] == 0xFE))) - // UTF16 BOM - encoding = NSUnicodeStringEncoding; - - // No BOM, (probably wrongly) assume NEXTSTEP encoding - // TODO: check for UTF8, or assume UTF8 but use another one if it fails - - string = [self initWithBytes: bytes length: length encoding: encoding]; - if (string == nil) { - // TODO: Should fill the NSError here with something about "no encoding - // found". - } - - if (encodingp != NULL) - *encodingp = encoding; - - return string; -} - -- initWithUTF8String: (const char *) utf8 { - return [self initWithBytes: utf8 - length: strlen(utf8) - encoding: NSUTF8StringEncoding]; -} - -- initWithBytes: (const void *) bytes - length: (NSUInteger) length - encoding: (NSStringEncoding) encoding -{ - NSInvalidAbstractInvocation(); - return 0; -} - -- initWithBytesNoCopy: (void *) bytes - length: (NSUInteger) length - encoding: (NSStringEncoding) encoding - freeWhenDone: (BOOL) freeWhenDone -{ - NSString *string = [self initWithBytes: bytes - length: length - encoding: encoding]; - - if (freeWhenDone) - NSZoneFree(NSZoneFromPointer(bytes), bytes); - - return string; -} - -- initWithContentsOfFile: (NSString *) path { - return [self initWithContentsOfFile: path usedEncoding: NULL error: NULL]; -} - -- initWithContentsOfFile: (NSString *) path - encoding: (NSStringEncoding) encoding - error: (NSError **) error -{ - NSData *data = [NSData dataWithContentsOfFile: path - options: 0 - error: error]; - - if (data == nil) { - [self dealloc]; - return nil; // error should contain the reason already. - } - - return [self initWithFileData: data encoding: encoding error: error]; -} - -- initWithContentsOfFile: (NSString *) path - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error -{ - NSData *data = [NSData dataWithContentsOfFile: path - options: 0 - error: error]; - - if (data == nil) { - [self dealloc]; - return nil; - } - - return [self initWithFileData: data usedEncoding: encoding error: error]; -} - -- initWithContentsOfURL: (NSURL *) url - encoding: (NSStringEncoding) encoding - error: (NSError **) error -{ - NSData *data = [NSData dataWithContentsOfURL: url options: 0 error: error]; - - if (data == nil) { - [self dealloc]; - return nil; - } - - return [self initWithFileData: data encoding: encoding error: error]; -} - -- initWithContentsOfURL: (NSURL *) url - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error -{ - NSData *data = [NSData dataWithContentsOfURL: url options: 0 error: error]; - - if (data == nil) { - [self dealloc]; - return nil; - } - - return [self initWithFileData: data usedEncoding: encoding error: error]; -} - -+ (const NSStringEncoding *) availableStringEncodings { - static NSStringEncoding *stringEncodings = NULL; - - if (!stringEncodings) { - NSString *path = [[NSBundle bundleForClass: self] - pathForResource: @"NSStringEncodingNames" - ofType: @"plist"]; - if (path != nil) { - NSDictionary *plist = - [[NSDictionary alloc] initWithContentsOfFile: path]; - - stringEncodings = - malloc(sizeof(NSStringEncoding) * [plist count] + 1); - - NSEnumerator *keyEnumerator = [plist keyEnumerator]; - int index = 0; - NSString *key = nil; - - while ((key = [keyEnumerator nextObject])) { - stringEncodings[index++] = [key intValue]; - } - - stringEncodings[index] = 0; - - [plist release]; - } else { - stringEncodings = malloc(sizeof(NSStringEncoding) * 1); - stringEncodings[0] = 0; - } - } - - return stringEncodings; -} - -+ (NSString *) localizedNameOfStringEncoding: (NSStringEncoding) encoding { - NSString *result = [NSString stringWithFormat: @"0x%08X", encoding]; - NSString *path = [[NSBundle bundleForClass: self] - pathForResource: @"NSStringEncodingNames" - ofType: @"plist"]; - - if (path != nil) { - NSDictionary *plist = - [[NSDictionary alloc] initWithContentsOfFile: path]; - NSString *check = [plist objectForKey: result]; - - if (check != nil) - result = [[check retain] autorelease]; - - [plist release]; - } - - return result; -} - -+ stringWithCharacters: (const unichar *) unicode length: (NSUInteger) length { - return [[[self allocWithZone: NULL] initWithCharacters: unicode - length: length] - autorelease]; -} - -+ string { - return [[[self allocWithZone: NULL] init] autorelease]; -} - -+ stringWithCString: (const char *) cString length: (NSUInteger) length { - return [[[self allocWithZone: NULL] initWithCString: cString - length: length] autorelease]; -} - -+ stringWithCString: (const char *) cString - encoding: (NSStringEncoding) encoding -{ - return [[[self allocWithZone: NULL] initWithCString: cString - encoding: encoding] autorelease]; -} - -+ stringWithCString: (const char *) cString { - return [[[self allocWithZone: NULL] initWithCString: cString] autorelease]; -} - -+ stringWithString: (NSString *) string { - return [[[self allocWithZone: NULL] initWithString: string] autorelease]; -} - -+ stringWithFormat: (NSString *) format, ... { - va_list arguments; - - va_start(arguments, format); - id result; - - result = [[[self allocWithZone: NULL] initWithFormat: format - arguments: arguments] - autorelease]; - - va_end(arguments); - - return result; -} - -+ stringWithContentsOfFile: (NSString *) path { - return [[[self allocWithZone: NULL] initWithContentsOfFile: path] - autorelease]; -} - -+ stringWithContentsOfFile: (NSString *) path - encoding: (NSStringEncoding) encoding - error: (NSError **) error -{ - return [[[self allocWithZone: NULL] initWithContentsOfFile: path - encoding: encoding - error: error] - autorelease]; -} - -+ stringWithContentsOfFile: (NSString *) path - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error -{ - return [[[self allocWithZone: NULL] initWithContentsOfFile: path - usedEncoding: encoding - error: error] - autorelease]; -} - -+ stringWithContentsOfURL: (NSURL *) url - encoding: (NSStringEncoding) encoding - error: (NSError **) error -{ - return [[[self allocWithZone: NULL] initWithContentsOfURL: url - encoding: encoding - error: error] - autorelease]; -} - -+ stringWithContentsOfURL: (NSURL *) url - usedEncoding: (NSStringEncoding *) encoding - error: (NSError **) error -{ - return [[[self allocWithZone: NULL] initWithContentsOfURL: url - usedEncoding: encoding - error: error] - autorelease]; -} - -+ stringWithUTF8String: (const char *) utf8 { - return [[[NSString allocWithZone: NULL] initWithUTF8String: utf8] - autorelease]; -} - -+ localizedStringWithFormat: (NSString *) format, ... { - va_list arguments; - - va_start(arguments, format); - - id result = NSAutorelease(NSStringNewWithFormat( - format, [NSLocale currentLocale], arguments, NULL)); - - va_end(arguments); - - return result; -} - -- copy { - return [self retain]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopy { - return [[NSMutableString allocWithZone: NULL] initWithString: self]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableString allocWithZone: zone] initWithString: self]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSString"); -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - NSString *string = [keyed decodeObjectForKey: @"NS.string"]; - - return [self initWithString: string]; - } else { - NSUInteger length; - char *bytes; - - [self dealloc]; - - bytes = [coder decodeBytesWithReturnedLength: &length]; - - if (NSUTF8IsASCII(bytes, length)) - return NSString_cStringNewWithBytes(NULL, bytes, length); - else { - NSUInteger resultLength; - unichar *characters = - NSUTF8ToUnicode(bytes, length, &resultLength, NULL); - - return NSString_unicodePtrNewNoCopy(NULL, characters, resultLength, - YES); - } - } -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedArchiver class]]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - - [keyed encodeObject: [NSString stringWithString: self] - forKey: @"NS.string"]; - } else { - NSUInteger length = [self length], utf8Length; - unichar *buffer = NSZoneMalloc(NULL, sizeof(unichar) * length); - char *utf8; - - [self getCharacters: buffer]; - utf8 = NSUnicodeToUTF8(buffer, length, NO, &utf8Length, NULL, NO); - [coder encodeBytes: utf8 length: utf8Length]; - NSZoneFree(NSZoneFromPointer(utf8), utf8); - - NSZoneFree(NULL, buffer); - } -} - -- (unichar) characterAtIndex: (NSUInteger) location { - NSInvalidAbstractInvocation(); - return 0; -} - -- (NSUInteger) length { - NSInvalidAbstractInvocation(); - return 0; -} - -- (void) getCharacters: (unichar *) unicode range: (NSRange) range { - NSInteger i, loc = range.location, len = range.length; - - for (i = 0; i < len; i++) - unicode[i] = [self characterAtIndex: loc + i]; -} - -- (void) getCharacters: (unichar *) unicode { - NSRange range = {0, [self length]}; - [self getCharacters: unicode range: range]; -} - -static inline BOOL isNumChar(unichar c) { - return ('0' <= c && c <= '9'); -} - -static inline unsigned uctoi(unichar *c, NSUInteger *len) { - NSUInteger i = 0; - NSUInteger n = *len; - char num[n + 1]; - - while (i < n && isNumChar(c[i])) { - num[i] = c[i]; - i++; - } - num[i] = '\0'; - *len = i; - return atoi(num); -} - -static NSComparisonResult compareWithOptions(NSString *self, NSString *other, - NSStringCompareOptions options, - NSRange range) -{ - NSUInteger i, j, il, jl; - NSUInteger otherLength = [other length]; - int numResult; - unichar selfBuf[range.length], otherBuf[otherLength]; - - [self getCharacters: selfBuf range: range]; - [other getCharacters: otherBuf]; - - if (options & NSCaseInsensitiveSearch) { - NSUnicodeToUppercase(selfBuf, range.length); - NSUnicodeToUppercase(otherBuf, otherLength); - } - - if (options & NSNumericSearch) { - for (i = 0, j = 0; i < range.length && j < otherLength; i++, j++) { - if (isNumChar(selfBuf[i]) && isNumChar(otherBuf[j])) { - il = range.length; - jl = otherLength; - numResult = uctoi(&selfBuf[i], &il) - uctoi(&otherBuf[j], &jl); - if (numResult < 0) - return NSOrderedAscending; - else if (numResult > 0) - return NSOrderedDescending; - i += il; - j += jl; - } - if (selfBuf[i] < otherBuf[j]) - return NSOrderedAscending; - else if (selfBuf[i] > otherBuf[j]) - return NSOrderedDescending; - } - } else { - for (i = 0; i < range.length && i < otherLength; i++) - if (selfBuf[i] < otherBuf[i]) - return NSOrderedAscending; - else if (selfBuf[i] > otherBuf[i]) - return NSOrderedDescending; - } - - if (range.length == otherLength) - return NSOrderedSame; - - return (i < otherLength) ? NSOrderedAscending : NSOrderedDescending; -} - -- (NSComparisonResult) compare: (NSString *) other - options: (NSStringCompareOptions) options - range: (NSRange) range - locale: (NSLocale *) locale -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSComparisonResult) compare: (NSString *) other - options: (NSStringCompareOptions) options - range: (NSRange) range -{ - return compareWithOptions(self, other, options, range); -} - -// but improve the case conversion -- (NSComparisonResult) compare: (NSString *) other - options: (NSStringCompareOptions) options -{ - return compareWithOptions(self, other, options, - NSMakeRange(0, [self length])); -} - -- (NSComparisonResult) compare: (NSString *) other { - return compareWithOptions(self, other, 0, NSMakeRange(0, [self length])); -} - -- (NSComparisonResult) caseInsensitiveCompare: (NSString *) other { - return compareWithOptions(self, other, NSCaseInsensitiveSearch, - NSMakeRange(0, [self length])); -} - -- (NSComparisonResult) localizedCompare: (NSString *) other { - NSUnimplementedMethod(); - return 0; -} -- (NSComparisonResult) localizedCaseInsensitiveCompare: (NSString *) other { - NSUnimplementedMethod(); - return 0; -} - -- (NSUInteger) hash { - NSRange range = {0, [self length]}; - unichar unicode[NSHashStringLength]; - - if (range.length > NSHashStringLength) - range.length = NSHashStringLength; - - [self getCharacters: unicode range: range]; - - return NSStringHashUnicode(unicode, range.length); -} - -static inline BOOL isEqualString(NSString *str1, NSString *str2) { - if (str2 == nil) - return NO; - if (str1 == str2) - return YES; - else { - NSUInteger length1 = [str1 length], length2 = [str2 length]; - - if (length1 != length2) - return NO; - if (length1 == 0) - return YES; - else { - unichar *buffer1 = NSZoneMalloc(NULL, sizeof(unichar) * length1); - unichar *buffer2 = NSZoneMalloc(NULL, sizeof(unichar) * length2); - - int i; - - [str1 getCharacters: buffer1]; - [str2 getCharacters: buffer2]; - - for (i = 0; i < length1; i++) { - if (buffer1[i] != buffer2[i]) { - NSZoneFree(NULL, buffer1); - NSZoneFree(NULL, buffer2); - return NO; - } - } - NSZoneFree(NULL, buffer1); - NSZoneFree(NULL, buffer2); - return YES; - } - } -} - -- (BOOL) isEqual: other { - if (self == other) - return YES; - - if (other == nil) - return NO; - -#if 1 - if ([other _cfTypeID] != kNSCFTypeString) - return NO; -#else - if (!NSObjectIsKindOfClass(other, objc_lookUpClass("NSString"))) - return NO; -#endif - - return isEqualString(self, other); -} - -- (BOOL) isEqualToString: (NSString *) other { - return isEqualString(self, other); -} - -- (BOOL) hasPrefix: (NSString *) prefix { - NSUInteger i, selfLength = [self length], prefixLength = [prefix length]; - unichar *selfBuf = NSZoneMalloc(NULL, sizeof(unichar) * selfLength); - unichar *prefixBuf = NSZoneMalloc(NULL, sizeof(unichar) * prefixLength); - - if (prefixLength > selfLength) { - NSZoneFree(NULL, selfBuf); - NSZoneFree(NULL, prefixBuf); - return NO; - } - - [self getCharacters: selfBuf]; - [prefix getCharacters: prefixBuf]; - - for (i = 0; i < prefixLength; i++) { - if (selfBuf[i] != prefixBuf[i]) { - NSZoneFree(NULL, selfBuf); - NSZoneFree(NULL, prefixBuf); - - return NO; - } - } - NSZoneFree(NULL, selfBuf); - NSZoneFree(NULL, prefixBuf); - return YES; -} - -- (BOOL) hasSuffix: (NSString *) suffix { - NSUInteger i, selfLength = [self length], suffixLength = [suffix length]; - NSUInteger offset = selfLength - suffixLength; - unichar *selfBuf = NSZoneMalloc(NULL, sizeof(unichar) * selfLength); - unichar *suffixBuf = NSZoneMalloc(NULL, sizeof(unichar) * suffixLength); - - [self getCharacters: selfBuf]; - [suffix getCharacters: suffixBuf]; - - if (suffixLength > selfLength) { - NSZoneFree(NULL, selfBuf); - NSZoneFree(NULL, suffixBuf); - return NO; - } - - for (i = 0; i < suffixLength; i++) { - if (selfBuf[offset + i] != suffixBuf[i]) { - NSZoneFree(NULL, selfBuf); - NSZoneFree(NULL, suffixBuf); - return NO; - } - } - - NSZoneFree(NULL, selfBuf); - NSZoneFree(NULL, suffixBuf); - return YES; -} - -// Knuth-Morris-Pratt string search -static inline void computeNext(NSInteger next[], unichar patbuffer[], - NSInteger patlength) -{ - NSInteger i = 0, j = -1; - - next[i] = j; - while (i < patlength) { - while (j >= 0 && patbuffer[j] != patbuffer[i]) { - j = next[j]; - } - - i++; - j++; - next[i] = j; - } -} - -static inline NSRange rangeOfPatternNext(unichar *buffer, unichar *patbuffer, - NSInteger *next, NSUInteger patlength, - NSRange range) -{ - NSInteger i = range.location, j = 0; - NSInteger end = range.location + range.length; - - while (i < end) { - while (j >= 0 && buffer[i] != patbuffer[j]) { - j = next[j]; - } - - i++; - j++; - - if (j == patlength) { - return NSMakeRange(i - patlength, patlength); - } - } - - return NSMakeRange(NSNotFound, 0); -} - -static inline void reverseString(unichar *buf, NSUInteger len) { - NSUInteger i; - NSUInteger half = len / 2; - for (i = 0; i < half; i++) { - unichar t = buf[len - 1 - i]; - buf[len - 1 - i] = buf[i]; - buf[i] = t; - } -} - -- (NSRange) rangeOfString: (NSString *) string - options: (NSStringCompareOptions) options - range: (NSRange) range - locale: (NSLocale *) locale -{ - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSRange) rangeOfString: (NSString *) pattern - options: (NSStringCompareOptions) options - range: (NSRange) range -{ - NSUInteger length = [self length]; - NSUInteger patlength = [pattern length]; - NSInteger next[patlength + 1]; - - if (patlength == 0) { - return NSMakeRange(NSNotFound, 0); - } - - if (range.location + range.length > [self length]) { - [NSException raise: NSRangeException - format: @"-[%@ %s] range %d,%d beyond length %d", - [self class], sel_getName(_cmd), range.location, - range.length, [self length]]; - } - - unichar *buffer = NSZoneMalloc(NULL, sizeof(unichar) * length); - unichar *patbuffer = NSZoneMalloc(NULL, sizeof(unichar) * patlength + 1); - - [self getCharacters: buffer]; - [pattern getCharacters: patbuffer]; - - // it seems that this search is always literal anyway, so the - // NSLiteralSearch option can be ignored...? - options &= ~((unsigned) NSLiteralSearch); - - if (options & NSCaseInsensitiveSearch) { - NSUnicodeToUppercase(buffer, length); - NSUnicodeToUppercase(patbuffer, patlength); - } - - if (options & NSBackwardsSearch) { - reverseString(buffer, length); - reverseString(patbuffer, patlength); - range.location = length - (range.location + range.length); - } - - computeNext(next, patbuffer, patlength); - - NSRange foundRange = - rangeOfPatternNext(buffer, patbuffer, next, patlength, range); - if (options & NSAnchoredSearch && foundRange.location != 0) { - NSZoneFree(NULL, buffer); - NSZoneFree(NULL, patbuffer); - return NSMakeRange(NSNotFound, 0); - } - - if ((options & NSBackwardsSearch) && foundRange.location != NSNotFound) { - foundRange.location = length - foundRange.location - foundRange.length; - } - NSZoneFree(NULL, buffer); - NSZoneFree(NULL, patbuffer); - return foundRange; -} - -- (NSRange) rangeOfString: (NSString *) string - options: (NSStringCompareOptions) options -{ - NSRange range = NSMakeRange(0, [self length]); - - return [self rangeOfString: string options: options range: range]; -} - -- (NSRange) rangeOfString: (NSString *) string { - return [self rangeOfString: string options: 0]; -} - -- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet *) set - options: (NSStringCompareOptions) options - range: (NSRange) range -{ - NSRange result = NSMakeRange(NSNotFound, 0); - - if (range.length < 1) - return result; - - unichar *buffer = NSZoneMalloc(NULL, sizeof(unichar) * range.length); - - NSUInteger i; - - // unused - // const BOOL isLiteral = (options & NSLiteralSearch) ? YES : NO; - const BOOL isBackwards = (options & NSBackwardsSearch) ? YES : NO; - options &= ~((unsigned) NSLiteralSearch); - options &= ~((unsigned) NSBackwardsSearch); - - if (options != 0) - NSUnimplementedMethod(); - - [self getCharacters: buffer range: range]; - - // Cocoa documentation suggests that the returned range's length is always - // expected to be 1? The backwards search uses this assumption. - - if (isBackwards) { - for (i = range.length; i > 0; i--) { - if ([set characterIsMember: buffer[i - 1]]) { - NSZoneFree(NULL, buffer); - return NSMakeRange(range.location + (i - 1), 1); - } - } - } else { - for (i = 0; i < range.length; i++) { - if ([set characterIsMember: buffer[i]]) { - result.location = i; - - for (; i < range.length; i++) - if (![set characterIsMember: buffer[i]]) - break; - - result.length = i - result.location; - result.location += range.location; - NSZoneFree(NULL, buffer); - - return result; - } - } - } - - NSZoneFree(NULL, buffer); - return NSMakeRange(NSNotFound, 0); -} - -// FIX -- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet *) set - options: (NSStringCompareOptions) options -{ - return [self rangeOfCharacterFromSet: set - options: options - range: NSMakeRange(0, [self length])]; -} - -- (NSRange) rangeOfCharacterFromSet: (NSCharacterSet *) set { - return [self rangeOfCharacterFromSet: set options: 0]; -} - -- (void) getLineStart: (NSUInteger *) startp - end: (NSUInteger *) endp - contentsEnd: (NSUInteger *) contentsEndp - forRange: (NSRange) range -{ - NSUInteger start = range.location; - NSUInteger maxRange = NSMaxRange(range); - if (maxRange == 0) { - maxRange = 1; - } - NSUInteger end = maxRange - 1; - NSUInteger contentsEnd = end; - NSUInteger length = [self length]; - unichar *buffer = NSZoneMalloc(NULL, sizeof(unichar) * length); - - enum { scanning, gotR, done } state = scanning; - - [self getCharacters: buffer]; - - /* - U+000D (\r or CR), U+2028 (Unicode line separator), U+000A (\n or LF) - U+2029 (Unicode paragraph separator), \r\n, in that order (also known as - CRLF) - */ - - for (; start != 0; start--) { - unichar check = buffer[start - 1]; - - if (check == 0x2028 || check == 0x000A || check == 0x2029) - break; - - if (check == 0x000D && buffer[start] != 0x000A) - break; - } - - for (; end < length && state != done; end++) { - unichar check = buffer[end]; - - if (state == scanning) { - if (check == 0x000D) { - contentsEnd = end; - state = gotR; - } - // 0x0085 is undocumented, unicode next line - else if (check == 0x2028 || check == 0x000A || check == 0x2029 || - check == 0x0085) { - contentsEnd = end; - state = done; - } - } else if (state == gotR) { - if (check != 0x000A) { - end--; - } - state = done; - } - } - - if ((end >= length) && (state != done)) { - contentsEnd = end; - } - - if (startp != NULL) - *startp = start; - if (endp != NULL) - *endp = end; - if (contentsEndp != NULL) - *contentsEndp = contentsEnd; - - NSZoneFree(NULL, buffer); -} - -- (NSRange) lineRangeForRange: (NSRange) range { - NSRange result; - NSUInteger start, end; - - [self getLineStart: &start end: &end contentsEnd: NULL forRange: range]; - result.location = start; - result.length = end - start; - - return result; -} - -- (void) getParagraphStart: (NSUInteger *) startp - end: (NSUInteger *) endp - contentsEnd: (NSUInteger *) contentsEndp - forRange: (NSRange) range -{ - /* - Documentation does not specify exact getParagraphStart: behavior, only - mentioning it is similar to getLineStart: The difference is that - getParagraphStart: does not delimit on line terminators 0x0085 and 0x2028 - */ - NSUInteger start = range.location; - NSUInteger maxRange = NSMaxRange(range); - if (maxRange == 0) { - maxRange = 1; - } - NSUInteger end = maxRange - 1; - NSUInteger contentsEnd = end; - NSUInteger length = [self length]; - unichar *buffer = NSZoneMalloc(NULL, sizeof(unichar) * length); - - enum { scanning, gotR, done } state = scanning; - - [self getCharacters: buffer]; - - for (; start != 0; start--) { - unichar check = buffer[start - 1]; - - if (check == 0x2028 || check == 0x000A || check == 0x2029) - break; - - if (check == 0x000D && buffer[start] != 0x000A) - break; - } - - for (; end < length && state != done; end++) { - unichar check = buffer[end]; - - if (state == scanning) { - if (check == 0x000D) { - contentsEnd = end; - state = gotR; - } else if (check == 0x000A || check == 0x2029) { - contentsEnd = end; - state = done; - } - } else if (state == gotR) { - if (check != 0x000A) { - end--; - } - state = done; - } - } - - if ((end >= length) && (state != done)) { - contentsEnd = end; - } - - if (startp != NULL) - *startp = start; - if (endp != NULL) - *endp = end; - if (contentsEndp != NULL) - *contentsEndp = contentsEnd; - - NSZoneFree(NULL, buffer); -} - -- (NSRange) paragraphRangeForRange: (NSRange) range { - NSRange result; - NSUInteger start, end; - - [self getParagraphStart: &start - end: &end - contentsEnd: NULL - forRange: range]; - result.location = start; - result.length = end - start; - - return result; -} - -- (NSString *) substringWithRange: (NSRange) range { - unichar *unicode; - - if (NSMaxRange(range) > [self length]) - [NSException raise: NSRangeException - format: @"-[%@ %s] range %d,%d beyond length %d", - [self class], sel_getName(_cmd), range.location, - range.length, [self length]]; - - if (range.length == 0) - return @""; - - unicode = NSZoneMalloc(NULL, sizeof(unichar) * range.length); - - [self getCharacters: unicode range: range]; - - return [[[NSString alloc] initWithCharactersNoCopy: unicode - length: range.length - freeWhenDone: YES] autorelease]; -} - -- (NSString *) substringFromIndex: (NSUInteger) location { - NSRange range = {location, [self length] - location}; - - if (location > [self length]) - [NSException raise: NSRangeException - format: @"-[%@ %s] index %d beyond length %d", [self class], - sel_getName(_cmd), location, [self length]]; - - return [self substringWithRange: range]; -} - -- (NSString *) substringToIndex: (NSUInteger) location { - NSRange range = {0, location}; - - if (location == [self length]) - return [[self copy] autorelease]; - - if (location > [self length]) - [NSException raise: NSRangeException - format: @"-[%@ %s] index %d beyond length %d", [self class], - sel_getName(_cmd), location, [self length]]; - - return [self substringWithRange: range]; -} - -- (BOOL) boolValue { - NSUInteger i, length = [self length]; - - if (length == 0) { - return NO; - } - unichar *buffer = NSZoneMalloc(NULL, sizeof(unichar) * length); - - [self getCharacters: buffer]; - NSCharacterSet *set = [NSCharacterSet whitespaceCharacterSet]; - - for (i = 0; i < length; i++) - if (![set characterIsMember: buffer[i]]) - break; - - if (i == length) { - NSZoneFree(NULL, buffer); - return NO; - } - - if (buffer[i] == 'Y' || buffer[i] == 'y' || buffer[i] == 'T' || - buffer[i] == 't') { - NSZoneFree(NULL, buffer); - return YES; - } - - if (buffer[i] == '-' || buffer[i] == '+') - i++; - - for (; i < length; i++) - if (buffer[i] != '0') - break; - - if (i == length) { - NSZoneFree(NULL, buffer); - return NO; - } - - if (buffer[i] >= '1' && buffer[i] <= '9') { - NSZoneFree(NULL, buffer); - return YES; - } - - NSZoneFree(NULL, buffer); - return NO; -} - -- (int) intValue { - long long llvalue = [self longLongValue]; - - if (llvalue > INT_MAX) - llvalue = INT_MAX; - if (llvalue < INT_MIN) - llvalue = INT_MIN; - - return llvalue; -} - -- (NSInteger) integerValue { - return [self intValue]; -} - -- (long long) longLongValue { - NSUInteger pos, length = [self length]; - int sign = 1; - long long value = 0; - - if (length == 0) - return 0; - - unichar *unicode = NSZoneMalloc(NULL, sizeof(unichar) * length); - [self getCharacters: unicode]; - - for (pos = 0; pos < length; pos++) - if (unicode[pos] > ' ') - break; - - if (unicode[0] == '-') { - sign = -1; - pos++; - } else if (unicode[0] == '+') { - sign = 1; - pos++; - } - - for (; pos < length; pos++) { - if (unicode[pos] < '0' || unicode[pos] > '9') - break; - - value *= 10; - value += unicode[pos] - '0'; - } - - NSZoneFree(NULL, unicode); - return sign * value; -} - -- (float) floatValue { - return (float) [self doubleValue]; -} - -- (double) doubleValue { - NSUInteger pos, length = [self length]; - double sign = 1, value = 0; - - if (length == 0) - return 0.0; - - unichar *unicode = NSZoneMalloc(NULL, sizeof(unichar) * length); - - [self getCharacters: unicode]; - - // skip any leading whitespaces - for (pos = 0; pos < length; pos++) - if (unicode[pos] > ' ') - break; - - if (unicode[pos] == '-') { - sign = -1; - pos++; - } else if (unicode[pos] == '+') { - sign = 1; - pos++; - } - - for (; pos < length; pos++) { - if (unicode[pos] < '0' || unicode[pos] > '9') - break; - - value *= 10; - value += unicode[pos] - '0'; - } - - if (pos < length && unicode[pos] == '.') { - double multiplier = 1; - - pos++; - for (; pos < length; pos++) { - if (unicode[pos] < '0' || unicode[pos] > '9') - break; - - multiplier /= 10.0; - value += (unicode[pos] - '0') * multiplier; - } - } - // Optional exponent part ([eE]{[+-]}nnnn) - if (pos < length && (unicode[pos] == 'e' || unicode[pos] == 'E')) { - pos++; - - double multiplier = 1; - int exponent = 0; - int exponentSign = 1; - if (unicode[pos] == '-') { - exponentSign = -1; - pos++; - } else if (unicode[pos] == '+') { - exponentSign = 1; - pos++; - } - - for (; pos < length; pos++) { - if (unicode[pos] < '0' || unicode[pos] > '9') { - break; - } - exponent *= 10; - exponent += (unicode[pos] - '0'); - } - value *= pow(10., exponent * exponentSign); - } - - NSZoneFree(NULL, unicode); - - return sign * value; -} - -- (NSString *) lowercaseString { - NSUInteger length = [self length]; - unichar *unicode = NSZoneMalloc(NULL, (length) * sizeof(unichar)); - - [self getCharacters: unicode]; - - NSUnicodeToLowercase(unicode, length); - - NSString *ret = [NSString stringWithCharacters: unicode length: length]; - NSZoneFree(NULL, unicode); - return ret; -} - -- (NSString *) uppercaseString { - NSUInteger length = [self length]; - unichar *unicode = NSZoneMalloc(NULL, (length) * sizeof(unichar)); - - [self getCharacters: unicode]; - - NSUnicodeToUppercase(unicode, length); - - NSString *ret = [NSString stringWithCharacters: unicode length: length]; - NSZoneFree(NULL, unicode); - return ret; -} - -- (NSString *) capitalizedString { - NSUInteger length = [self length]; - unichar *unicode = NSZoneMalloc(NULL, (length) * sizeof(unichar)); - - [self getCharacters: unicode]; - - NSUnicodeToCapitalized(unicode, length); - - NSString *ret = [NSString stringWithCharacters: unicode length: length]; - NSZoneFree(NULL, unicode); - return ret; -} - -- (NSString *) stringByAppendingFormat: (NSString *) format, ... { - NSString *append, *result; - va_list list; - - va_start(list, format); - - append = [[NSString allocWithZone: NULL] initWithFormat: format - arguments: list]; - result = [self stringByAppendingString: append]; - [append release]; - va_end(list); - - return result; -} - -- (NSString *) stringByAppendingString: (NSString *) other { - NSUInteger selfLength = [self length]; - NSUInteger otherLength = [other length]; - NSUInteger totalLength = selfLength + otherLength; - unichar *unicode = NSZoneMalloc(NULL, sizeof(unichar) * totalLength); - - [self getCharacters: unicode]; - [other getCharacters: unicode + selfLength]; - - return [[[NSString alloc] initWithCharactersNoCopy: unicode - length: totalLength - freeWhenDone: YES] autorelease]; -} - -- (NSArray *) componentsSeparatedByString: (NSString *) pattern { - NSMutableArray *result = [NSMutableArray array]; - NSUInteger length = [self length]; - unichar *buffer; - unichar *patbuffer; - NSUInteger patlength = [pattern length]; - NSInteger next[patlength + 1]; - NSRange search = NSMakeRange(0, length), where; - - if (length == 0) { - [result addObject: self]; - return result; - } - - buffer = NSZoneMalloc(NULL, sizeof(unichar) * length); - patbuffer = NSZoneMalloc(NULL, sizeof(unichar) * patlength + 1); - - [self getCharacters: buffer]; - [pattern getCharacters: patbuffer]; - - computeNext(next, patbuffer, patlength); - - do { - where = rangeOfPatternNext(buffer, patbuffer, next, patlength, search); - - if (where.length > 0) { - NSString *piece = [self - substringWithRange: NSMakeRange(search.location, - where.location - - search.location)]; - - [result addObject: piece]; - search.location = where.location + where.length; - search.length = length - search.location; - } - } while (where.length > 0); - - NSZoneFree(NULL, buffer); - NSZoneFree(NULL, patbuffer); - - [result addObject: [self substringWithRange: search]]; - - return result; -} - -- (NSArray *) componentsSeparatedByCharactersInSet: (NSCharacterSet *) set { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - NSMutableArray *result = [NSMutableArray array]; - NSScanner *scanner = [NSScanner scannerWithString: self]; - NSString *chunk = nil; - NSString *sepScan; - BOOL found, sepFound; - [scanner setCharactersToBeSkipped: nil]; - sepFound = [scanner - scanCharactersFromSet: set - intoString: &sepScan]; // skip any preceding separators - if (sepFound) { // if initial separator(s), start with empty component(s) - NSInteger sepCount = [sepScan length]; - while (sepCount--) { - [result addObject: @""]; - } - } - - while ((found = [scanner scanUpToCharactersFromSet: set - intoString: &chunk])) { - [result addObject: chunk]; - sepFound = [scanner scanCharactersFromSet: set intoString: &sepScan]; - if (sepFound) { - NSInteger sepCount = [sepScan length] - 1; - while (sepCount--) { - [result addObject: @""]; - } - } - } - if (sepFound) { // if final separator, end with empty component - [result addObject: @""]; - } - result = [result copy]; - [pool release]; - result = [result autorelease]; - return result; -} - -- (NSString *) commonPrefixWithString: (NSString *) other - options: (NSStringCompareOptions) options -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) stringByPaddingToLength: (NSUInteger) length - withString: (NSString *) padding - startingAtIndex: (NSUInteger) index -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) stringByReplacingCharactersInRange: (NSRange) range - withString: (NSString *) substitute -{ - NSString *first = [self substringToIndex: range.location]; - NSString *last = [self substringFromIndex: NSMaxRange(range)]; - - return [[first stringByAppendingString: substitute] - stringByAppendingString: last]; -} - -- (NSString *) stringByReplacingOccurrencesOfString: (NSString *) original - withString: (NSString *) substitute -{ - NSMutableString *s = [self mutableCopy]; - [s replaceOccurrencesOfString: original - withString: substitute - options: 0 - range: NSMakeRange(0, [s length])]; - - NSMutableString *ret = [[s copy] autorelease]; - [s release]; - return ret; -} - -- (NSString *) - stringByReplacingOccurrencesOfString: (NSString *) original - withString: (NSString *) substitute - options: (NSStringCompareOptions) options - range: (NSRange) range -{ - NSMutableString *s = [self mutableCopy]; - [s replaceOccurrencesOfString: original - withString: substitute - options: options - range: range]; - - NSMutableString *ret = [[s copy] autorelease]; - [s release]; - return ret; -} - -- (NSString *) stringByFoldingWithOptions: (NSStringCompareOptions) options - locale: (NSLocale *) locale -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSRange) rangeOfComposedCharacterSequenceAtIndex: (NSUInteger) index { - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSRange) rangeOfComposedCharacterSequencesForRange: (NSRange) range { - NSUnimplementedMethod(); - return NSMakeRange(0, 0); -} - -- (NSString *) precomposedStringWithCanonicalMapping { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) decomposedStringWithCanonicalMapping { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) precomposedStringWithCompatibilityMapping { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) decomposedStringWithCompatibilityMapping { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) description { - return self; -} - -- propertyList { - return [NSPropertyListReader propertyListFromString: self]; -} - -- (NSDictionary *) propertyListFromStringsFileFormat { - return NSDictionaryFromStringsFormatString(self); -} - -- (BOOL) writeToFile: (NSString *) path atomically: (BOOL) atomically { - NSData *data = [self dataUsingEncoding: [NSString defaultCStringEncoding]]; - return [data writeToFile: path atomically: atomically]; -} - -- (BOOL) writeToFile: (NSString *) path - atomically: (BOOL) atomically - encoding: (NSStringEncoding) encoding - error: (NSError **) error -{ - NSData *data = [self dataUsingEncoding: encoding]; - NSUInteger options = 0; - if (atomically) - options = NSAtomicWrite; - return [data writeToFile: path options: options error: error]; -} - -- (BOOL) writeToURL: (NSURL *) url - atomically: (BOOL) atomically - encoding: (NSStringEncoding) encoding - error: (NSError **) error -{ - NSData *data = [self dataUsingEncoding: encoding]; - NSUInteger options = 0; - if (atomically) - options = NSAtomicWrite; - return [data writeToURL: url options: options error: error]; -} - -- (NSStringEncoding) fastestEncoding { - NSUnimplementedMethod(); - return 0; -} - -- (NSStringEncoding) smallestEncoding { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) canBeConvertedToEncoding: (NSStringEncoding) encoding { - return ([self dataUsingEncoding: encoding] != nil) ? YES : NO; -} - -- (NSUInteger) lengthOfBytesUsingEncoding: (NSStringEncoding) encoding { - return [[self dataUsingEncoding: encoding] length]; -} - -- (NSUInteger) maximumLengthOfBytesUsingEncoding: (NSStringEncoding) encoding { - NSUnimplementedMethod(); - return 0; -} - -// FIX, not complete -- (NSData *) dataUsingEncoding: (NSStringEncoding) encoding - allowLossyConversion: (BOOL) lossy -{ - NSZone *zone = [self zone]; - NSUInteger length = [self length]; - unichar *buffer = NSZoneMalloc(NULL, (1 + length) * sizeof(unichar)); - unichar *unicode = buffer + 1; - NSUInteger byteLength = 0; - char *bytes = NULL; - - [self getCharacters: unicode]; - if (encoding == NSUnicodeStringEncoding) { - buffer[0] = 0xFEFF; - NSData *result = [NSData dataWithBytes: buffer - length: (1 + length) * sizeof(unichar)]; - NSZoneFree(NULL, buffer); - return result; - } else { - bytes = NSString_unicodeToAnyCString(encoding, unicode, length, lossy, - &byteLength, zone, NO); - } - if (bytes == NULL) { - NSZoneFree(NULL, buffer); - return nil; - } - - NSData *result = [NSData dataWithBytesNoCopy: bytes length: byteLength]; - NSZoneFree(NULL, buffer); - return result; -} - -- (NSData *) dataUsingEncoding: (NSStringEncoding) encoding { - return [self dataUsingEncoding: encoding allowLossyConversion: NO]; -} - -- (BOOL) getBytes: (void *) buffer - maxLength: (NSUInteger) maxLength - usedLength: (NSUInteger *) usedLength - encoding: (NSStringEncoding) encoding - options: (NSStringEncodingConversionOptions) options - range: (NSRange) range - remainingRange: (NSRange *) remainingRange -{ - unichar *unibuffer = - NSZoneMalloc(NULL, (1 + range.length) * sizeof(unichar)); - char *bytes = NULL; - NSUInteger byteLength = 0; - - [self getCharacters: unibuffer range: range]; - - bytes = NSString_unicodeToAnyCString( - encoding, unibuffer, range.length, - options & NSStringEncodingConversionAllowLossy ? YES : NO, - &byteLength, [self zone], NO); - if (bytes == NULL) { - NSZoneFree(NULL, unibuffer); - return NO; - } - - if (usedLength != NULL) { - *usedLength = maxLength < byteLength ? maxLength : byteLength; - } - if (remainingRange != NULL) { - remainingRange->length = 0; - if (maxLength < byteLength) { - remainingRange->length = byteLength - maxLength; - } - remainingRange->location = - range.location + range.length - remainingRange->length; - } - - memcpy(buffer, bytes, maxLength < byteLength ? maxLength : byteLength); - NSZoneFree(NULL, unibuffer); - NSZoneFree(NULL, bytes); - - return YES; -} - -- (const char *) UTF8String { - NSZone *zone = [self zone]; - NSUInteger length = [self length]; - unichar *buffer = NSZoneMalloc(NULL, (1 + length) * sizeof(unichar)); - NSUInteger byteLength = 0; - char *bytes = NULL; - - [self getCharacters: buffer]; - bytes = NSString_unicodeToAnyCString(NSUTF8StringEncoding, buffer, length, - NO, &byteLength, zone, YES); - if (bytes == NULL) { - NSZoneFree(NULL, buffer); - return NULL; - } - - // FIXME obviously the char* shall be handled by the autorelease pool or - // garbage collector - // that's bad design - NSData *result = [NSData dataWithBytesNoCopy: bytes length: byteLength]; - NSZoneFree(NULL, buffer); - return [result bytes]; -} - -- (NSString *) stringByReplacingPercentEscapesUsingEncoding: - (NSStringEncoding) encoding -{ - // Note : this is supposed to return nil if the escaped char don't make a - // valid string for the encoding - this is not checked - enum { - STATE_NORMAL, - STATE_PERCENT, - STATE_HEX1, - } state = STATE_NORMAL; - - // TODO : this is only really working for 8-bits encoding, but we usually - // want UTF-8 here - NSString *string = nil; - NSData *data = [self dataUsingEncoding: encoding]; - if (data) { - NSUInteger length = [data length], resultLength = 0; - const unsigned char *buffer = [data bytes]; - unsigned char firstCharacter = 0, firstNibble = 0; - unsigned char *result = NSZoneMalloc( - NULL, sizeof(unsigned char) * length); // We can't grow - if (result == NULL) { - NSLog(@"%@: failed to allocate buffer of size %d", - NSStringFromSelector(_cmd), length); - } else { - - for (NSUInteger i = 0; i < length; i++) { - unsigned char check = buffer[i]; - switch (state) { - case STATE_NORMAL: - if (check == '%') - state = STATE_PERCENT; - else - result[resultLength++] = check; - break; - - case STATE_PERCENT: - state = STATE_HEX1; - if (check >= '0' && check <= '9') { - firstCharacter = check; - firstNibble = (firstCharacter - '0'); - } else if (check >= 'a' && check <= 'f') { - firstCharacter = check; - firstNibble = (firstCharacter - 'a') + 10; - } else if (check >= 'A' && check <= 'F') { - firstCharacter = check; - firstNibble = (firstCharacter - 'A') + 10; - } else { - result[resultLength++] = '%'; - result[resultLength++] = check; - state = STATE_NORMAL; - } - break; - - case STATE_HEX1: - if (check >= '0' && check <= '9') - result[resultLength++] = firstNibble * 16 + check - '0'; - else if (check >= 'a' && check <= 'f') - result[resultLength++] = - firstNibble * 16 + (check - 'a') + 10; - else if (check >= 'A' && check <= 'F') - result[resultLength++] = - firstNibble * 16 + (check - 'A') + 10; - else { - result[resultLength++] = '%'; - result[resultLength++] = firstCharacter; - result[resultLength++] = check; - } - state = STATE_NORMAL; - break; - } - } - string = [[[NSString alloc] initWithBytes: result - length: resultLength - encoding: encoding] autorelease]; - NSZoneFree(NULL, result); - } - } - return string; -} - -- (NSString *) stringByAddingPercentEscapesUsingEncoding: - (NSStringEncoding) encoding -{ - const char *hex = "0123456789ABCDEF"; - - // TODO : this is only really working for 8-bits encoding, but we usually - // want UTF-8 here - NSString *string = nil; - NSData *data = [self dataUsingEncoding: encoding]; - if (data) { - NSUInteger length = [data length], resultLength = 0; - const unsigned char *buffer = [data bytes]; - unsigned char result[length * 3]; - - for (NSUInteger i = 0; i < length; i++) { - char code = buffer[i]; - - if ((code <= 0x20) || (code == 0x22) || (code == 0x23) || - (code == 0x25) || (code == 0x3C) || (code == 0x3E) || - (code == 0x5B) || (code == 0x5C) || (code == 0x5D) || - (code == 0x5E) || (code == 0x60) || (code == 0x7B) || - (code == 0x7C) || (code == 0x7D) || (code & 0x80)) { - result[resultLength++] = '%'; - result[resultLength++] = hex[(code >> 4) & 0xF]; - result[resultLength++] = hex[code & 0xF]; - } else { - result[resultLength++] = code; - } - } - string = [[[NSString alloc] initWithBytes: result - length: resultLength - encoding: NSASCIIStringEncoding] - autorelease]; - } - return string; -} - -- (NSString *) stringByTrimmingCharactersInSet: (NSCharacterSet *) set { - NSUInteger length = [self length]; - NSUInteger location = 0; - unichar *buffer = NSZoneMalloc(NULL, length * sizeof(unichar)); - - [self getCharacters: buffer]; - for (; location < length; location++) - if (![set characterIsMember: buffer[location]]) - break; - - while (length > location) { - if (![set characterIsMember: buffer[length - 1]]) - break; - - length--; - } - NSZoneFree(NULL, buffer); - - return [self substringWithRange: NSMakeRange(location, length - location)]; -} - -- (const char *) cStringUsingEncoding: (NSStringEncoding) encoding { - NSUInteger length = [self length]; - unichar *buffer = NSZoneMalloc(NULL, length * sizeof(unichar)); - NSUInteger resultLength; - - [self getCharacters: buffer]; - char *cstr = NSString_unicodeToAnyCString(encoding, buffer, length, NO, - &resultLength, NULL, YES); - - NSZoneFree(NULL, buffer); - - if (cstr) { - // FIXME obviously the char* should be handled by the autorelease pool - // or garbage collector - // that's bad design - // NSData *data= - NSData *data = [NSData dataWithBytesNoCopy: cstr - length: resultLength - freeWhenDone: YES]; - return cstr; - } else { - return NULL; - } -} - -- (BOOL) getCString: (char *) cString - maxLength: (NSUInteger) maxLength - encoding: (NSStringEncoding) encoding -{ - NSRange range = {0, [self length]}; - unichar *unicode = NSZoneMalloc(NULL, range.length * sizeof(unichar)); - NSUInteger location; - [self getCharacters: unicode range: range]; - if (NSGetAnyCStringWithMaxLength(encoding, unicode, range.length, - &range.location, cString, maxLength, - NO) == NSNotFound) { - NSZoneFree(NULL, unicode); - return NO; - } - NSZoneFree(NULL, unicode); - return YES; -} - -+ (NSStringEncoding) defaultCStringEncoding { - return defaultEncoding(); -} - -- (void) getCString: (char *) cString - maxLength: (NSUInteger) maxLength - range: (NSRange) range - remainingRange: (NSRange *) leftoverRange -{ - unichar *unicode = NSZoneMalloc(NULL, range.length * sizeof(unichar)); - NSUInteger location; - - [self getCharacters: unicode range: range]; - - if (NSGetCStringWithMaxLength(unicode, range.length, &location, cString, - maxLength + 1, NO) == NSNotFound) { - NSZoneFree(NULL, unicode); - - [NSException raise: NSCharacterConversionException - format: @"Can't get cString from Unicode string"]; - } - - NSZoneFree(NULL, unicode); - - if (leftoverRange != NULL) { - leftoverRange->location = range.location + location; - leftoverRange->length = range.length - location; - } -} - -- (void) getCString: (char *) cString maxLength: (NSUInteger) maxLength { - NSRange range = {0, [self length]}; - [self getCString: cString - maxLength: maxLength + 1 - range: range - remainingRange: NULL]; -} - -- (void) getCString: (char *) cString { - NSInteger length = [self length]; - NSUInteger location; - unichar *unicode = NSZoneMalloc(NULL, length * sizeof(unichar)); - - [self getCharacters: unicode]; - - if (NSGetCStringWithMaxLength(unicode, length, &location, cString, - NSMaximumStringLength + 1, - NO) == NSNotFound) { - NSZoneFree(NULL, unicode); - - [NSException raise: NSCharacterConversionException - format: @"Can't get cString from Unicode string"]; - } - NSZoneFree(NULL, unicode); -} - -- (NSUInteger) cStringLength { - NSUInteger length = [self length]; - unichar *unicode = NSZoneMalloc(NULL, length * sizeof(unichar)); - if (unicode == NULL) { - NSLog(@"%@: failed to allocate buffer of size %d", - NSStringFromSelector(_cmd), length); - return 0; - } - - NSUInteger cStringLength; - char *cString; - - [self getCharacters: unicode]; - - cString = NSString_cStringFromCharacters(unicode, length, YES, - &cStringLength, NULL, NO); - - NSZoneFree(NULL, unicode); - - if (cString) { - NSZoneFree(NULL, cString); - } else { - [NSException raise: NSCharacterConversionException - format: @"Can't get cString from Unicode string"]; - } - - return cStringLength; -} - -- (const char *) cString { - return [self cStringUsingEncoding: defaultEncoding()]; -} - -- (const char *) lossyCString { - NSUInteger length = [self length]; - unichar *buffer = NSZoneMalloc(NULL, length * sizeof(unichar)); - NSUInteger resultLength; - - [self getCharacters: buffer]; - char *cstr = NSString_unicodeToAnyCString(defaultEncoding(), buffer, length, - YES, &resultLength, NULL, YES); - NSZoneFree(NULL, buffer); - - if (cstr) { - NSData *data = [NSData dataWithBytesNoCopy: cstr - length: resultLength - freeWhenDone: YES]; - return cstr; - } else { - [NSException raise: NSCharacterConversionException - format: @"Can't get cString from Unicode string"]; - return NULL; - } -} - -@end - -#import - -@implementation NSString (CFTypeID) - -- (unsigned) _cfTypeID { - return kNSCFTypeString; -} - -@end diff --git a/Foundation/NSString/NSStringEncoder.h b/Foundation/NSString/NSStringEncoder.h deleted file mode 100644 index 3c3e7c79..00000000 --- a/Foundation/NSString/NSStringEncoder.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2013 Aiy André - plasq - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -// returns a buffer with a Unicode representation of string made from the bytes -// using the given encoding the caller is responsible to free the returned -// buffer when done *resultLength will contain the number of unichar of the -// result -unichar *NSBytesToUnicode(const unsigned char *bytes, NSUInteger length, - NSStringEncoding encoding, NSUInteger *resultLength, - NSZone *zone); - -// returns a buffer with a char representation of string made from the unichar -// using the given encoding the caller is responsible to free the returned -// buffer when done *resultLength will contain the number of unichar of the -// result -unsigned char *NSBytesFromUnicode(const unichar *characters, NSUInteger length, - NSStringEncoding encoding, BOOL lossy, - NSUInteger *resultLength, NSZone *zone); diff --git a/Foundation/NSString/NSStringEncoder.m b/Foundation/NSString/NSStringEncoder.m deleted file mode 100644 index 96712d06..00000000 --- a/Foundation/NSString/NSStringEncoder.m +++ /dev/null @@ -1,284 +0,0 @@ -/* Copyright (c) 2013 Aiy André - plasq - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "NSStringEncoder.h" - -#import -#import -#import -#import -#import -#import -#import - -@interface _NSEncodingRegistration -+ (void) registerTable: (uint16_t *) table - forEncoding: (CFStringEncoding) encoding; -+ (uint16_t *) tableForEncoding: (CFStringEncoding) encoding; -@end - -@implementation _NSEncodingRegistration -static NSMapTable *sTables = nil; - -+ (void) registerTable: (uint16_t *) table - forEncoding: (CFStringEncoding) encoding -{ - if (sTables == nil) { - sTables = NSCreateMapTable(NSIntegerMapKeyCallBacks, - NSNonOwnedPointerMapValueCallBacks, 20); - } - NSMapInsert(sTables, (void *) encoding, table); -} - -+ (void) registerEncoding { -} - -+ (void) registerTables { - int num = objc_getClassList(NULL, 0); - Class classList[num]; - - num = objc_getClassList(classList, num); - for (int i = 0; i < num; i++) { - Class class = classList[i]; - if (class_getSuperclass(class) == self) { - [class registerEncoding]; - } - } -} - -+ (uint16_t *) tableForEncoding: (CFStringEncoding) encoding { - if (sTables == nil) { - [self registerTables]; - } - return NSMapGet(sTables, (void *) encoding); -} -@end - -// See the end of the following .h file to see how to use this macro to -// automatically register an encoding table -#define NSEncodingRegistration(x, y) \ - @interface _NSEncodingRegistration \ - ##y : _NSEncodingRegistration; \ - @end \ - @implementation _NSEncodingRegistration \ - ##y + (void) registerEncoding { \ - [self registerTable: x forEncoding: y]; \ - } \ - @end - -#import "Encoding/8859-1.h" -#import "Encoding/8859-10.h" -#import "Encoding/8859-11.h" -#import "Encoding/8859-13.h" -#import "Encoding/8859-14.h" -#import "Encoding/8859-15.h" -#import "Encoding/8859-16.h" -#import "Encoding/8859-2.h" -#import "Encoding/8859-3.h" -#import "Encoding/8859-4.h" -#import "Encoding/8859-5.h" -#import "Encoding/8859-6.h" -#import "Encoding/8859-7.h" -#import "Encoding/8859-8.h" -#import "Encoding/8859-9.h" -#import "Encoding/CP1250.h" -#import "Encoding/CP1251.h" -#import "Encoding/CP1252.h" -#import "Encoding/CP1253.h" -#import "Encoding/CP1254.h" -#import "Encoding/CP1255.h" -#import "Encoding/CP1256.h" -#import "Encoding/CP1257.h" -#import "Encoding/CP1258.h" -#import "Encoding/CP874.h" -#import "Encoding/CP932.h" -#import "Encoding/CP936.h" -#import "Encoding/CP949.h" -#import "Encoding/CP950.h" - -// Returns the -static const uint16_t *tableForCFEncoding(CFStringEncoding encoding) { - return [_NSEncodingRegistration tableForEncoding: encoding]; -} - -static const uint16_t *tableForNSEncoding(NSStringEncoding encoding) { - CFStringEncoding cfencoding = - CFStringConvertNSStringEncodingToEncoding(encoding); - return tableForCFEncoding(cfencoding); -} - -static NSDictionary *dictionaryForEncoding(NSStringEncoding encoding) { - NSMutableDictionary *dict = nil; - static NSMutableDictionary *sAllDicts = nil; - @synchronized(sAllDicts) { - if (sAllDicts == nil) { - sAllDicts = [[NSMutableDictionary alloc] init]; - } - dict = [sAllDicts objectForKey: [NSNumber numberWithInteger: encoding]]; - if (dict == nil) { - const uint16_t *table = tableForNSEncoding(encoding); - if (table) { - dict = [NSMutableDictionary dictionary]; - for (int i = 0; table[i] != (uint16_t) -1; i += 2) { - [dict setObject: [NSNumber - numberWithUnsignedShort: table[i + - 1]] - forKey: [NSNumber numberWithUnsignedShort: - table[i]]]; - } - [sAllDicts setObject: dict - forKey: [NSNumber numberWithInteger: encoding]]; - } - } - } - return dict; -} - -static NSDictionary *dictionaryForDecoding(NSStringEncoding encoding) { - NSMutableDictionary *dict = nil; - static NSMutableDictionary *sAllDicts = nil; - @synchronized(sAllDicts) { - if (sAllDicts == nil) { - sAllDicts = [[NSMutableDictionary alloc] init]; - } - dict = [sAllDicts objectForKey: [NSNumber numberWithInteger: encoding]]; - if (dict == nil) { - const uint16_t *table = tableForNSEncoding(encoding); - if (table) { - dict = [NSMutableDictionary dictionary]; - for (int i = 0; table[i] != (uint16_t) -1; i += 2) { - if (table[i] != 0xffff) { - [dict setObject: [NSNumber numberWithUnsignedShort: - table[i]] - forKey: [NSNumber numberWithUnsignedShort: - table[i + 1]]]; - } - } - [sAllDicts setObject: dict - forKey: [NSNumber numberWithInteger: encoding]]; - } - } - } - return dict; -} - -unichar *NSBytesToUnicode(const unsigned char *bytes, NSUInteger length, - NSStringEncoding encoding, NSUInteger *resultLength, - NSZone *zone) -{ - unichar *data = NULL; - NSDictionary *dict = dictionaryForEncoding(encoding); - if (dict) { - NSUInteger unicodeLength = 0; - unichar *unibuffer = malloc(sizeof(unichar) * length); - unichar current = 0; - for (NSUInteger i = 0; i < length; ++i) { - // mask the byte with any pending one (for 2-bytes char translation) - current |= bytes[i]; - NSNumber *n = [dict - objectForKey: [NSNumber numberWithUnsignedShort: current]]; - if (n) { - uint16_t u = [n unsignedShortValue]; - if (u == (uint16_t) -1) { - // 2-bytes char - current <<= 8; - } else { - unibuffer[unicodeLength++] = [n unsignedShortValue]; - current = 0; - } - } else { - // Unknown code - NSCLog("NSBytesToUnicode : unknown code 0x%X for encoding 0x%X", - current, encoding); - current = 0; - } - } - data = NSZoneMalloc(zone, sizeof(unichar) * unicodeLength); - if (resultLength) { - *resultLength = unicodeLength; - } - bcopy(unibuffer, data, sizeof(unichar) * unicodeLength); - free(unibuffer); - } else { - static int unknownEncodingLogged = 0; - if (unknownEncodingLogged < 5) { - unknownEncodingLogged++; - NSCLog("NSBytesToUnicode : encoding %d (%x) to unicode not (yet) " - "implemented", - encoding, encoding); - } - } - return data; -} - -unsigned char *NSBytesFromUnicode(const unichar *characters, NSUInteger length, - NSStringEncoding encoding, BOOL lossy, - NSUInteger *resultLength, NSZone *zone) -{ - unsigned char *data = NULL; - NSDictionary *dict = dictionaryForDecoding(encoding); - if (dict) { - NSUInteger charLength = 0; - unsigned char *buffer = - NSZoneMalloc(NULL, sizeof(unsigned char) * (length * 2)); - if (buffer == NULL) { - NSCLog("NSBytesFromUnicode: can't allocate buffer of size %d", - length * 2); - return NULL; - } - for (NSUInteger i = 0; i < length; ++i) { - // mask the byte with any pending one (for 2-bytes char translation) - NSNumber *n = [dict objectForKey: [NSNumber numberWithUnsignedShort: - characters[i]]]; - if (n) { - uint16_t u = [n unsignedShortValue]; - if (u >= 0x100) { - // 2-bytes char - buffer[charLength++] = u >> 8; - buffer[charLength++] = u & 0xff; - } else { - buffer[charLength++] = u; - } - } else { - if (lossy) { - // Just ignore the unknown unicode char - } else { - free(buffer); - return NULL; - } - } - } - buffer[charLength++] = 0; - data = NSZoneMalloc(zone, sizeof(unsigned char) * charLength); - if (resultLength) { - *resultLength = charLength; - } - bcopy(buffer, data, sizeof(unsigned char) * charLength); - NSZoneFree(NULL, buffer); - } else { - static int unknownEncodingLogged = 0; - if (unknownEncodingLogged < 5) { - unknownEncodingLogged++; - NSCLog("NSBytesFromUnicode : encoding %d (%x) to unicode not (yet) " - "implemented", - encoding, encoding); - } - } - return data; -} diff --git a/Foundation/NSString/NSStringFileIO.h b/Foundation/NSString/NSStringFileIO.h deleted file mode 100644 index d50f6cf6..00000000 --- a/Foundation/NSString/NSStringFileIO.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -unichar *NSCharactersWithContentsOfFile(NSString *path, NSUInteger *length, - NSZone *zone); diff --git a/Foundation/NSString/NSStringFileIO.m b/Foundation/NSString/NSStringFileIO.m deleted file mode 100644 index 6743ac96..00000000 --- a/Foundation/NSString/NSStringFileIO.m +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import - -// FIX, inefficient -unichar *NSCharactersWithContentsOfFile(NSString *path, NSUInteger *length, - NSZone *zone) -{ - NSData *data = [NSData dataWithContentsOfFile: path]; - - if (data == nil) - return NULL; - - // guess encoding - const unsigned char *bytes = [data bytes]; - NSUInteger dataLength = [data length]; - - if ((dataLength >= 2) && ((bytes[0] == 0xFE && bytes[1] == 0xFF) || - (bytes[0] == 0xFF && bytes[1] == 0xFE))) - // UTF16 BOM - return NSUnicodeFromBytes(bytes, dataLength, length); - else - // No BOM, (probably wrongly) assume NEXTSTEP encoding - // TODO: check for UTF8, or assume UTF8 but use another one if it fails - return NSNEXTSTEPToUnicode([data bytes], [data length], length, zone); -} diff --git a/Foundation/NSString/NSStringFormatter.h b/Foundation/NSString/NSStringFormatter.h deleted file mode 100644 index 9324e3fc..00000000 --- a/Foundation/NSString/NSStringFormatter.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -unichar *NSCharactersNewWithFormat(NSString *format, NSDictionary *locale, - va_list arguments, NSUInteger *lengthp, - NSZone *zone); -unichar *NSCharactersNewWithFormatAndGrouping(NSString *format, - NSDictionary *locale, - va_list arguments, - NSUInteger *lengthp, NSZone *zone, - NSString *grouping, - NSInteger groupingSize); - -NSString *NSStringNewWithFormat(NSString *format, NSDictionary *locale, - va_list arguments, NSZone *zone); - -NSString *NSStringWithFormat(NSString *format, ...); -NSString *NSStringWithFormatArguments(NSString *format, va_list arguments); -NSString *NSStringWithFormatAndLocale(NSString *format, NSDictionary *locale, - ...); diff --git a/Foundation/NSString/NSStringFormatter.m b/Foundation/NSString/NSStringFormatter.m deleted file mode 100644 index e830c9a2..00000000 --- a/Foundation/NSString/NSStringFormatter.m +++ /dev/null @@ -1,818 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "unibuffer.h" -#import -#import -#import -#import -#import //appendCString -#import - -#include -#include -#include - -typedef struct { - NSZone *zone; - unsigned max, length; - unichar *characters; -} NSStringBuffer; - -static inline void prepForUse(NSStringBuffer *buffer, NSZone *zone) { - buffer->zone = zone; - buffer->max = 1024; - buffer->length = 0; - buffer->characters = - NSZoneMalloc(buffer->zone, sizeof(unichar) * buffer->max); -} - -static inline void makeRoomForNcharacters(NSStringBuffer *buffer, NSUInteger n) -{ - if (buffer->length + n > buffer->max) { - while (buffer->length + n > buffer->max) - buffer->max *= 2; - - buffer->characters = NSZoneRealloc(buffer->zone, buffer->characters, - sizeof(unichar) * buffer->max); - } -} - -static inline void appendCharacter(NSStringBuffer *buffer, unichar unicode) { - makeRoomForNcharacters(buffer, 1); - - buffer->characters[buffer->length++] = unicode; -} - -static inline void appendCharacters(NSStringBuffer *buffer, unichar *characters, - NSUInteger length, unichar fillChar, - BOOL leftAdj, int fieldWidth) -{ - NSUInteger i; - - makeRoomForNcharacters(buffer, (fieldWidth > length) ? fieldWidth : length); - - if (!leftAdj && fieldWidth > length) { - for (i = 0; i < fieldWidth - length; i++) - buffer->characters[buffer->length++] = fillChar; - } - - for (i = 0; i < length; i++) - buffer->characters[buffer->length++] = characters[i]; - - if (leftAdj && fieldWidth > length) { - for (i = 0; i < fieldWidth - length; i++) - buffer->characters[buffer->length++] = ' '; - } -} - -static inline void appendUnichar(NSStringBuffer *buffer, unichar code, - unichar fillChar, BOOL leftAdj, int fieldWidth) -{ - appendCharacters(buffer, &code, 1, fillChar, leftAdj, fieldWidth); -} - -static inline void appendUnicodeString(NSStringBuffer *buffer, - unichar *characters, unichar fillChar, - BOOL leftAdj, int fieldWidth) -{ - NSInteger length; - - for (length = 0; characters[length] != 0x0000; length++) - ; - appendCharacters(buffer, characters, length, fillChar, leftAdj, fieldWidth); -} - -static inline void reverseCharacters(unichar *characters, unsigned length) { - unsigned i; - unichar tmp; - - // reverse chars - for (i = 0; i < length / 2; i++) { - tmp = characters[i]; - characters[i] = characters[(length - 1) - i]; - characters[(length - 1) - i] = tmp; - } -} - -static inline void appendReversed(NSStringBuffer *buffer, unichar *characters, - unsigned length, unichar fillChar, - BOOL leftAdj, int fieldWidth) -{ - reverseCharacters(characters, length); - appendCharacters(buffer, characters, length, fillChar, leftAdj, fieldWidth); -} - -static inline void appendDecimal(NSStringBuffer *buffer, long long value, - unichar fillChar, BOOL leftAdj, BOOL plusSign, - BOOL spaceSign, int fieldWidth, - NSString *groupingSeparator, - NSUInteger groupingSize) -{ - unsigned length = 0, numberOfIntegralDigits = 0; - unichar characters[100]; - unichar sign = (value < 0) ? '-' : plusSign ? '+' : spaceSign ? ' ' : '\0'; - NSUInteger groupingLength = [groupingSeparator length]; - unichar groupingBuffer[groupingLength]; - - [groupingSeparator getCharacters: groupingBuffer]; - - if (value < 0) - value = -value; - - while (value) { - numberOfIntegralDigits++; - characters[length++] = (value % 10) + '0'; - value /= 10; - - if (groupingSize) { - if ((numberOfIntegralDigits % groupingSize) == 0) { - NSInteger count = groupingLength; // we append backwards because - // the string gets reversed - - while (--count >= 0) - characters[length++] = groupingBuffer[count]; - } - } - } - - if (length == 0) - characters[length++] = '0'; - else if (sign) - characters[length++] = sign; - - appendReversed(buffer, characters, length, fillChar, leftAdj, fieldWidth); -} - -static inline void appendOctal(NSStringBuffer *buffer, unsigned long long value, - unichar fillChar, BOOL leftAdj, int fieldWidth) -{ - unsigned length = 0; - unichar characters[100]; - - while (value) { - characters[length++] = (value & 0x07) + '0'; - value >>= 3; - } - - if (length == 0) - characters[length++] = '0'; - - appendReversed(buffer, characters, length, fillChar, leftAdj, fieldWidth); -} - -static inline void appendHex(NSStringBuffer *buffer, unsigned long long value, - unichar fillChar, BOOL leftAdj, int fieldWidth, - const char *hexes) -{ - unsigned length = 0; - unichar characters[100]; - - while (value) { - characters[length++] = hexes[value & 0x0F]; - value >>= 4; - } - - if (length == 0) - characters[length++] = '0'; - - appendReversed(buffer, characters, length, fillChar, leftAdj, fieldWidth); -} - -static inline void appendUnsigned(NSStringBuffer *buffer, - unsigned long long value, unichar fillChar, - BOOL leftAdj, int fieldWidth, - NSString *groupingSeparator, - NSUInteger groupingSize) -{ - unsigned length = 0, numberOfIntegralDigits = 0; - unichar characters[100]; - NSUInteger groupingLength = [groupingSeparator length]; - unichar groupingBuffer[groupingLength]; - - [groupingSeparator getCharacters: groupingBuffer]; - - while (value) { - numberOfIntegralDigits++; - characters[length++] = (value % 10) + '0'; - value /= 10; - - if (groupingSize) { - if ((numberOfIntegralDigits % groupingSize) == 0) { - NSInteger count = groupingLength; // we append backwards because - // the string gets reversed - - while (--count >= 0) - characters[length++] = groupingBuffer[count]; - } - } - } - - if (length == 0) - characters[length++] = '0'; - - appendReversed(buffer, characters, length, fillChar, leftAdj, fieldWidth); -} - -static inline void appendCString(NSStringBuffer *buffer, const char *cString, - unichar fillChar, BOOL leftAdj, int fieldWidth) -{ - NSUInteger length; - unichar *characters; - - if (cString == NULL) - cString = "(null pointer)"; - - characters = NSString_anyCStringToUnicode(NSASCIIStringEncoding, cString, - strlen(cString), &length, NULL); - appendCharacters(buffer, characters, length, fillChar, leftAdj, fieldWidth); - - NSZoneFree(NULL, characters); -} - -static inline void appendCStringChar(NSStringBuffer *buffer, char c, - unichar fillChar, BOOL leftAdj, - int fieldWidth) -{ - char cString[2] = {c, '\0'}; - appendCString(buffer, cString, fillChar, leftAdj, fieldWidth); -} - -double roundDouble(double value) { - char *p = (char *) &value; - -#ifdef WINDOWS - value = round(value); -#else - // some OS's don't have round(), Linux? - value = (value < 0.0) ? ceil(value - 0.5) : floor(value + 0.5); -#endif - -#ifdef __LITTLE_ENDIAN__ - p[0] |= 0x01; -#else - p[7] |= 0x01; -#endif - - return value; -} - -static inline void appendFloat(NSStringBuffer *buffer, double value, - unichar fillChar, BOOL leftAdj, BOOL plusSign, - BOOL spaceSign, int fieldWidth, int precision, - BOOL gFormat, BOOL altForm, NSDictionary *locale, - NSString *groupingSeparator, - NSUInteger groupingSize) -{ - int valueType = fpclassify(value); - - if (valueType == FP_INFINITE) - appendCString(buffer, (value > 0.0) ? "inf" : "-inf", ' ', leftAdj, - fieldWidth); - else if (valueType == FP_NAN) - appendCString(buffer, "nan", ' ', leftAdj, fieldWidth); - else { - double integral, fractional, power; - unsigned i, j, length = 0, numberOfIntegralDigits = 0; - unichar characters[100]; - // copysign will give the correct result for negatve zero - unichar sign = (copysign(1.0, value) < 0) - ? '-' - : plusSign ? '+' : spaceSign ? ' ' : '\0'; - NSUInteger groupingLength = [groupingSeparator length]; - unichar groupingBuffer[groupingLength]; - - [groupingSeparator getCharacters: groupingBuffer]; - - if (value != 0.0) { - value = fabs(value); - if (!gFormat) - power = pow(10.0, precision); - else - power = pow(10.0, precision - 1 - floor(log10(value))); - - // Using modf to get the integral part is giving us some precision - // problems for the fractional part leading to 1.2 being printed - // as 1.1999999.. So let's do it our own way - integral = trunc(value); - fractional = roundDouble(power * (value - integral)) / power; - ; - // Add some epsilon smaller than the precision to fix rounding - // problems - fractional += pow(10., -precision - 2); - if (fractional >= 1.) { - // Rounding to next integral - integral++; - fractional = 0; - } - } else { - integral = fractional = 0.; - } - - BOOL intZero = integral < 1.0; - - while (integral >= 1.0) { - numberOfIntegralDigits++; - characters[length++] = (unichar) fmod(integral, 10.0) + '0'; - integral /= 10.0; - - if (groupingSize) { - if ((numberOfIntegralDigits % groupingSize) == 0) { - NSInteger count = - groupingLength; // we append backwards because the - // string gets reversed - - while (--count >= 0) - characters[length++] = groupingBuffer[count]; - } - } - } - - if (gFormat) - precision -= numberOfIntegralDigits; - - if (length == 0) - characters[length++] = '0'; - if (sign) - characters[length++] = sign; - - reverseCharacters(characters, length); - - if (precision > 0) { - NSString *seperatorString; - unichar decimalSeperator; - - if (locale) - seperatorString = - [locale objectForKey: NSLocaleDecimalSeparator]; - else - seperatorString = [[NSLocale systemLocale] - objectForKey: NSLocaleDecimalSeparator]; - - decimalSeperator = ([seperatorString length] > 0) - ? [seperatorString characterAtIndex: 0] - : '.'; - - unsigned start = length; - BOOL fractZero = YES; - characters[length++] = decimalSeperator; - for (i = 0, j = 0; i < precision; i++, j++, length++) { - fractional *= 10.0; - if ((characters[length] = - (unichar) fmod(fractional, 10.0) + '0') != '0') - fractZero = NO; - else if (gFormat && intZero && fractZero && (j - i) < 5) - i--; - } - - if (gFormat) { - if (intZero && fractZero) - if (altForm) - length = start + precision; - else - length = start; - - else if (!altForm) { - while (characters[length - 1] == '0') - length--; - if (characters[length - 1] == decimalSeperator) - length--; - } - } - } - - appendCharacters(buffer, characters, length, fillChar, leftAdj, - fieldWidth); - } -} - -static inline void appendObject(NSStringBuffer *buffer, id object, - unichar fillChar, BOOL leftAdj, int fieldWidth) -{ - if (object == nil) - appendCString(buffer, "*nil*", fillChar, leftAdj, fieldWidth); - else { - NSString *string = [object description]; - unibuffer ubuffer = NewUnibufferWithString(string); - - appendCharacters(buffer, ubuffer.characters, ubuffer.length, fillChar, - leftAdj, fieldWidth); - - FreeUnibuffer(ubuffer); - } -} - -static inline unichar *prepForReturn(NSStringBuffer *buffer, - NSUInteger *lengthp) -{ - - *lengthp = buffer->max = buffer->length; - buffer->characters = NSZoneRealloc(buffer->zone, buffer->characters, - sizeof(unichar) * buffer->max); - - return buffer->characters; -} - -unichar *NSCharactersNewWithFormat(NSString *format, NSDictionary *locale, - va_list arguments, NSUInteger *lengthp, - NSZone *zone) -{ - return NSCharactersNewWithFormatAndGrouping(format, locale, arguments, - lengthp, zone, nil, 0); -} - -unichar *NSCharactersNewWithFormatAndGrouping(NSString *format, - NSDictionary *locale, - va_list arguments, - NSUInteger *lengthp, NSZone *zone, - NSString *groupingSeparator, - NSInteger groupingSize) -{ - NSUInteger pos, fmtLength = [format length]; - unichar fmtBuffer[fmtLength], unicode; - NSStringBuffer result; - - unichar fillChar = ' ', dwModify = ' '; - BOOL altForm = NO, leftAdj = NO, plusSign = NO, spaceSign = NO; - int fieldWidth = 0, precision = 6; - - enum { - STATE_SCANNING, - STATE_PERCENT, - STATE_FIELDWIDTH, - STATE_PRECISION, - STATE_MODIFIER, - STATE_CONVERSION - } state = STATE_SCANNING; - - [format getCharacters: fmtBuffer]; - - prepForUse(&result, zone); - - for (pos = 0; pos < fmtLength; pos++) { - unicode = fmtBuffer[pos]; - - switch (state) { - - case STATE_SCANNING: - if (unicode != '%') - appendCharacter(&result, unicode); - else { - fillChar = dwModify = ' '; - altForm = leftAdj = plusSign = spaceSign = NO; - fieldWidth = 0; - precision = 6; - state = STATE_PERCENT; - } - break; - - case STATE_PERCENT: - switch (unicode) { - - case '#': - altForm = YES; - break; - case '0': - fillChar = '0'; - break; - case '-': - leftAdj = YES; - break; - case '+': - plusSign = YES; - break; - case ' ': - spaceSign = YES; - break; - - default: - pos--; - state = STATE_FIELDWIDTH; - break; - } - break; - - case STATE_FIELDWIDTH: - switch (unicode) { - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - fieldWidth = fieldWidth * 10 + (unicode - '0'); - break; - - case '*': - fieldWidth = va_arg(arguments, int); - if (fieldWidth < 0) { - leftAdj = YES; - fieldWidth = -fieldWidth; - } - break; - - case '$': // FIXME: argument index for localization - state = STATE_MODIFIER; - break; - - case '.': - precision = 0; - state = STATE_PRECISION; - break; - - default: - pos--; - state = STATE_MODIFIER; - break; - } - break; - - case STATE_PRECISION: - switch (unicode) { - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - precision = precision * 10 + (unicode - '0'); - break; - - case '*': // fix - precision = va_arg(arguments, int); - break; - - default: - pos--; - state = STATE_MODIFIER; - break; - } - break; - - case STATE_MODIFIER: - switch (unicode) { - - case 'h': - case 'l': - case 'q': - // New Cocoa special modes for NSInteger and NSUInteger - case 'z': - case 't': - dwModify = unicode; - break; - - default: - pos--; - state = STATE_CONVERSION; - break; - } - break; - - case STATE_CONVERSION: - switch (unicode) { - - case 'd': - case 'D': - case 'i': { - long long value; - - if (dwModify == 'h') - value = (short) va_arg(arguments, int); - else if (dwModify == 'l') - value = va_arg(arguments, long); - else if (dwModify == 'q') - value = va_arg(arguments, long long); - else if (dwModify == 'z') - value = va_arg(arguments, NSInteger); - else - value = va_arg(arguments, int); - - appendDecimal(&result, value, fillChar, leftAdj, plusSign, - spaceSign, fieldWidth, groupingSeparator, - groupingSize); - } break; - - case 'o': { - unsigned long long value; - - if (dwModify == 'h') - value = (unsigned short) va_arg(arguments, int); - else if (dwModify == 'l') - value = va_arg(arguments, unsigned long); - else if (dwModify == 'q') - value = va_arg(arguments, unsigned long long); - else - value = va_arg(arguments, unsigned int); - - appendOctal(&result, value, fillChar, leftAdj, fieldWidth); - } break; - - case 'x': { - unsigned long long value; - - if (dwModify == 'h') - value = (unsigned short) va_arg(arguments, int); - else if (dwModify == 'l') - value = va_arg(arguments, unsigned long); - else if (dwModify == 'q') - value = va_arg(arguments, unsigned long long); - else if (dwModify == 't') - value = va_arg(arguments, NSUInteger); - else - value = va_arg(arguments, unsigned int); - - appendHex(&result, value, fillChar, leftAdj, fieldWidth, - "0123456789abcdef"); - } break; - - case 'X': { - unsigned long long value; - - if (dwModify == 'h') - value = (unsigned short) va_arg(arguments, int); - else if (dwModify == 'l') - value = va_arg(arguments, unsigned long); - else if (dwModify == 'q') - value = va_arg(arguments, unsigned long long); - else if (dwModify == 't') - value = va_arg(arguments, NSUInteger); - else - value = va_arg(arguments, unsigned int); - - appendHex(&result, value, fillChar, leftAdj, fieldWidth, - "0123456789ABCDEF"); - } break; - - case 'u': - case 'U': { - unsigned long long value; - - if (dwModify == 'h') - value = (unsigned short) va_arg(arguments, int); - else if (dwModify == 'l') - value = va_arg(arguments, unsigned long); - else if (dwModify == 'q') - value = va_arg(arguments, unsigned long long); - else if (dwModify == 't') - value = va_arg(arguments, NSUInteger); - else - value = va_arg(arguments, unsigned int); - - appendUnsigned(&result, value, fillChar, leftAdj, fieldWidth, - groupingSeparator, groupingSize); - } break; - - case 'c': - appendCStringChar(&result, va_arg(arguments, int), fillChar, - leftAdj, fieldWidth); - break; - - case 'C': - appendUnichar(&result, va_arg(arguments, int), fillChar, - leftAdj, fieldWidth); - break; - - case 's': - appendCString(&result, va_arg(arguments, char *), fillChar, - leftAdj, fieldWidth); - break; - - case 'S': - appendUnicodeString(&result, va_arg(arguments, unichar *), - fillChar, leftAdj, fieldWidth); - break; - - case 'f': { - double value; - - if (dwModify == 'l') - value = va_arg(arguments, double); - else - value = va_arg(arguments, double); - - appendFloat(&result, value, fillChar, leftAdj, plusSign, - spaceSign, fieldWidth, precision, NO, NO, locale, - groupingSeparator, groupingSize); - } break; - - case 'e': - case 'E': { - double value; - - if (dwModify == 'l') - value = va_arg(arguments, double); - else - value = va_arg(arguments, double); - - appendFloat(&result, value, fillChar, leftAdj, plusSign, - spaceSign, fieldWidth, precision, NO, NO, locale, - groupingSeparator, groupingSize); - } break; - - case 'g': - case 'G': { - double value; - - if (dwModify == 'l') - value = va_arg(arguments, double); - else - value = va_arg(arguments, double); - - appendFloat(&result, value, fillChar, leftAdj, plusSign, - spaceSign, fieldWidth, precision, YES, altForm, - locale, groupingSeparator, groupingSize); - } break; - - case 'p': - appendHex(&result, (long) va_arg(arguments, void *), fillChar, - leftAdj, fieldWidth, "0123456789ABCDEF"); - break; - - case 'n': - *va_arg(arguments, int *) = result.length; - break; - - case '@': - appendObject(&result, va_arg(arguments, id), fillChar, leftAdj, - fieldWidth); - break; - - case '%': - appendCharacter(&result, '%'); - break; - } - state = STATE_SCANNING; - break; - } - } - - return prepForReturn(&result, lengthp); -} - -NSString *NSStringNewWithFormat(NSString *format, NSDictionary *locale, - va_list arguments, NSZone *zone) -{ - NSUInteger length; - unichar *unicode; - - unicode = - NSCharactersNewWithFormat(format, locale, arguments, &length, NULL); - - return NSString_unicodePtrNewNoCopy(zone, unicode, length, YES); -} - -NSString *NSStringWithFormat(NSString *format, ...) { - va_list arguments; - - va_start(arguments, format); - - NSString *result = - NSAutorelease(NSStringNewWithFormat(format, nil, arguments, NULL)); - va_end(arguments); - return result; -} - -NSString *NSStringWithFormatArguments(NSString *format, va_list arguments) { - return NSAutorelease(NSStringNewWithFormat(format, nil, arguments, NULL)); -} - -NSString *NSStringWithFormatAndLocale(NSString *format, NSDictionary *locale, - ...) -{ - va_list arguments; - - va_start(arguments, locale); - - NSString *result = NSAutorelease( - NSStringNewWithFormat(format, locale, arguments, NULL)); - - va_end(arguments); - - return result; -} diff --git a/Foundation/NSString/NSStringHashing.h b/Foundation/NSString/NSStringHashing.h deleted file mode 100644 index 4d326c17..00000000 --- a/Foundation/NSString/NSStringHashing.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#define NSHashStringLength 63 - -// djb2 - -static inline NSUInteger NSStringHashUnicode(const unichar *buffer, - NSUInteger length) -{ - NSUInteger i, result = 5381; - - for (i = 0; i < length; i++) - result = ((result << 5) + result) + buffer[i]; // hash*33+c - - return result; -} - -static inline NSUInteger NSStringHashASCII(const char *buffer, - NSUInteger length) -{ - NSUInteger i, result = 5381; - - for (i = 0; i < length; i++) - result = - ((result << 5) + result) + (NSUInteger)(buffer[i]); // hash*33+c - - return result; -} - -static inline NSUInteger NSStringHashZeroTerminatedASCII(const char *buffer) { - NSUInteger i, result = 5381; - - for (i = 0; buffer[i] != '\0'; i++) - result = - ((result << 5) + result) + (NSUInteger)(buffer[i]); // hash*33+c - - return result; -} diff --git a/Foundation/NSString/NSStringSymbol.h b/Foundation/NSString/NSStringSymbol.h deleted file mode 100644 index 8656ef10..00000000 --- a/Foundation/NSString/NSStringSymbol.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -unichar *NSSymbolToUnicode(const char *symbols, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -FOUNDATION_EXPORT char *NSUnicodeToSymbol(const unichar *characters, - NSUInteger length, BOOL lossy, - NSUInteger *resultLength, - NSZone *zone, BOOL zeroTerminate); diff --git a/Foundation/NSString/NSStringSymbol.m b/Foundation/NSString/NSStringSymbol.m deleted file mode 100644 index 5faf59fc..00000000 --- a/Foundation/NSString/NSStringSymbol.m +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import - -static const unichar SymbolToUnicode[256] = { - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0020, 0x0021, 0x2200, 0x0023, - 0x2203, 0x0025, 0x0026, 0x220B, 0x0028, 0x0029, 0x2217, 0x002B, 0x002C, - 0x2212, 0x002E, 0x002F, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, - 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, - 0x003F, 0x2245, 0x0391, 0x0392, 0x03A7, 0x0394, 0x0395, 0x03A6, 0x0393, - 0x0397, 0x0399, 0x03D1, 0x039A, 0x039B, 0x039C, 0x039D, 0x039F, 0x03A0, - 0x0398, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03C2, 0x03A9, 0x039E, 0x03A8, - 0x0396, 0x005B, 0x2234, 0x005D, 0x22A5, 0x005F, 0x203E, 0x03B1, 0x03B2, - 0x03C7, 0x03B4, 0x03B5, 0x03C6, 0x03B3, 0x03B7, 0x03B9, 0x03D5, 0x03BA, - 0x03BB, 0x03BC, 0x03BD, 0x03BF, 0x03C0, 0x03B8, 0x03C1, 0x03C3, 0x03C4, - 0x03C5, 0x03D6, 0x03C9, 0x03BE, 0x03C8, 0x03B6, 0x007B, 0x007C, 0x007D, - 0x223C, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x03D2, - 0x2032, 0x2264, 0x2215, 0x221E, 0x0192, 0x2663, 0x2666, 0x2665, 0x2660, - 0x2194, 0x2190, 0x2191, 0x2192, 0x2193, 0x00B0, 0x00B1, 0x2033, 0x2265, - 0x00D7, 0x221D, 0x2202, 0x2022, 0x00F7, 0x2260, 0x2261, 0x2248, 0x2026, - 0xFFFD, 0xFFFD, 0x21B5, 0x2135, 0x2111, 0x211C, 0x2118, 0x2297, 0x2295, - 0x2205, 0x2229, 0x222A, 0x2283, 0x2287, 0x2284, 0x2282, 0x2286, 0x2208, - 0x2209, 0x2220, 0x2207, 0x00AE, 0x00A9, 0x2122, 0x220F, 0x221A, 0x22C5, - 0x00AC, 0x2227, 0x2228, 0x21D4, 0x21D0, 0x21D1, 0x21D2, 0x21D3, 0x25CA, - 0x2329, 0x00AE, 0x00A9, 0x2122, 0x2211, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x232A, 0x222B, - 0x2320, 0xFFFD, 0x2321, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, - 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, -}; - -unichar *NSSymbolToUnicode(const char *symbols, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - unichar *characters = NSZoneMalloc(zone, sizeof(unichar) * length); - int i; - - for (i = 0; i < length; i++) - characters[i] = SymbolToUnicode[((unsigned char *) symbols)[i]]; - - *resultLength = i; - return characters; -} - -char *NSUnicodeToSymbol(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - char *symbols = NSZoneMalloc( - zone, sizeof(char) * (length + (zeroTerminate == YES ? 1 : 0))); - int i, j; - - for (i = 0; i < length; i++) { - - for (j = 0; j < 256; j++) - if (characters[i] == SymbolToUnicode[j]) - break; - - if (j < 256) - symbols[i] = j; - else if (lossy) - symbols[i] = '\0'; - else { - NSZoneFree(zone, symbols); - return NULL; - } - } - - if (zeroTerminate == YES) { - symbols[i++] = '\0'; - } - - *resultLength = i; - return symbols; -} diff --git a/Foundation/NSString/NSStringUTF8.h b/Foundation/NSString/NSStringUTF8.h deleted file mode 100644 index ca781dc9..00000000 --- a/Foundation/NSString/NSStringUTF8.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -NSUInteger NSConvertUTF16toUTF8(const unichar *utf16, NSUInteger utf16Length, - uint8_t *utf8); - -unichar *NSUTF8ToUnicode(const char *utf8, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -NSUInteger NSGetUTF8CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, char *cString, - NSUInteger maxLength); -char *NSUnicodeToUTF8(const unichar *characters, NSUInteger length, BOOL lossy, - NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); - -NSUInteger NSConvertUTF8toUTF16(const unsigned char *utf8, - NSUInteger utf8Length, unichar *utf16); - -BOOL NSUTF8IsASCII(const char *utf8, NSUInteger length); diff --git a/Foundation/NSString/NSStringUTF8.m b/Foundation/NSString/NSStringUTF8.m deleted file mode 100644 index 59f45797..00000000 --- a/Foundation/NSString/NSStringUTF8.m +++ /dev/null @@ -1,220 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -NSUInteger _NSGetUTF8CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, char *cString, - NSUInteger maxLength, - BOOL zeroTerminate) -{ - NSUInteger utf8Length = 0; - NSUInteger i; - - for (i = 0; i < length; i++) { - uint32_t code32 = characters[i]; - uint8_t tmp[4]; - int tmpLength = 0; - - if (code32 < 0x80) - tmp[tmpLength++] = code32; - else if (code32 < 0x800) { - tmp[tmpLength++] = 0x80 | (code32 & 0x3F); - tmp[tmpLength++] = 0xC0 | (code32 >> 6); - } else if (code32 < 0x10000) { - tmp[tmpLength++] = 0x80 | (code32 & 0x3F); - tmp[tmpLength++] = 0x80 | ((code32 >> 6) & 0x3F); - tmp[tmpLength++] = 0xE0 | ((code32 >> 12) & 0x0F); - } else { - tmp[tmpLength++] = 0x80 | (code32 & 0x3F); - tmp[tmpLength++] = 0x80 | ((code32 >> 6) & 0x3F); - tmp[tmpLength++] = 0x80 | ((code32 >> 12) & 0x3F); - tmp[tmpLength++] = 0xF0 | ((code32 >> 18) & 0x07); - } - - if (cString == NULL) - utf8Length += tmpLength; - else { - if (tmpLength + utf8Length <= maxLength) { - while (--tmpLength >= 0) { - cString[utf8Length++] = tmp[tmpLength]; - } - } else { - cString[0] = '\0'; - // buffer too small - return NSNotFound; - } - } - } - - if (location != NULL) { - *location = i; - } - - if (zeroTerminate && cString) { - // check if zero termination has space - if (maxLength <= utf8Length) { - cString[0] = '\0'; - return NSNotFound; - } - - cString[utf8Length] = '\0'; - } - - return utf8Length; -} - -NSUInteger NSConvertUTF16toUTF8(const unichar *utf16, NSUInteger utf16Length, - uint8_t *utf8) -{ - NSUInteger utf8Length = 0; - NSUInteger i; - - for (i = 0; i < utf16Length; i++) { - uint32_t code32 = utf16[i]; - uint8_t tmp[4]; - int tmpLength = 0; - - if (code32 < 0x80) - tmp[tmpLength++] = code32; - else if (code32 < 0x800) { - tmp[tmpLength++] = 0x80 | (code32 & 0x3F); - tmp[tmpLength++] = 0xC0 | (code32 >> 6); - } else if (code32 < 0x10000) { - tmp[tmpLength++] = 0x80 | (code32 & 0x3F); - tmp[tmpLength++] = 0x80 | ((code32 >> 6) & 0x3F); - tmp[tmpLength++] = 0xE0 | ((code32 >> 12) & 0x0F); - } else { - tmp[tmpLength++] = 0x80 | (code32 & 0x3F); - tmp[tmpLength++] = 0x80 | ((code32 >> 6) & 0x3F); - tmp[tmpLength++] = 0x80 | ((code32 >> 12) & 0x3F); - tmp[tmpLength++] = 0xF0 | ((code32 >> 18) & 0x07); - } - - if (utf8 == NULL) - utf8Length += tmpLength; - else { - while (--tmpLength >= 0) - utf8[utf8Length++] = tmp[tmpLength]; - } - } - - return utf8Length; -} - -NSUInteger NSGetUTF8CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, char *cString, - NSUInteger maxLength) -{ - return _NSGetUTF8CStringWithMaxLength(characters, length, location, cString, - maxLength, YES); -} - -char *NSUnicodeToUTF8(const unichar *characters, NSUInteger length, BOOL lossy, - NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - NSUInteger utf8Length = _NSGetUTF8CStringWithMaxLength( - characters, length, NULL, NULL, UINT_MAX, NO); - NSUInteger maxLength = utf8Length + (zeroTerminate ? 1 : 0); - char *utf8 = NSZoneMalloc(NULL, maxLength * sizeof(unsigned char)); - - *resultLength = _NSGetUTF8CStringWithMaxLength( - characters, length, NULL, utf8, maxLength, zeroTerminate); - if (zeroTerminate) { - (*resultLength)++; - } - - return utf8; -} - -NSUInteger NSConvertUTF8toUTF16(const unsigned char *utf8, - NSUInteger utf8Length, unichar *utf16) -{ - NSUInteger i, utf16Length = 0; - uint32_t code32 = 0; - enum { - stateThreeLeft, - stateTwoLeft, - stateOneLeft, - stateFirstByte, - } state = stateFirstByte; - - for (i = 0; i < utf8Length; i++) { - unsigned char code8 = utf8[i]; - - switch (state) { - - case stateThreeLeft: - case stateTwoLeft: - case stateOneLeft: - code32 <<= 6; - code32 |= code8 & 0x7F; - state++; - break; - - case stateFirstByte: - if (code8 < 0x80) - code32 = code8; - else if ((code8 & 0xF0) == 0xF0) { - code32 = code8 & 0x0F; - state = stateThreeLeft; - } else if ((code8 & 0xE0) == 0xE0) { - code32 = code8 & 0x1F; - state = stateTwoLeft; - } else if ((code8 & 0xC0) == 0xC0) { - code32 = code8 & 0x3F; - state = stateOneLeft; - } - break; - } - if (state == stateFirstByte) { - if (utf16 != NULL) - utf16[utf16Length] = code32; - utf16Length++; - } - } - - return utf16Length; -} - -unichar *NSUTF8ToUnicode(const char *utf8, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - NSUInteger utf16Length = - NSConvertUTF8toUTF16((unsigned char *) utf8, length, NULL); - unichar *utf16 = NSZoneMalloc(NULL, utf16Length * sizeof(unichar)); - - *resultLength = NSConvertUTF8toUTF16((unsigned char *) utf8, length, utf16); - - return utf16; -} - -BOOL NSUTF8IsASCII(const char *utf8, NSUInteger length) { - int i; - - for (i = 0; i < length; i++) - if (utf8[i] & 0x80) - return NO; - - return YES; -} diff --git a/Foundation/NSString/NSString_cString.h b/Foundation/NSString/NSString_cString.h deleted file mode 100644 index e4e25a61..00000000 --- a/Foundation/NSString/NSString_cString.h +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -unichar *NSCharactersFromCString(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -char *NSString_cStringFromCharacters(const unichar *characters, - NSUInteger length, BOOL lossy, - NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); - -NSUInteger NSGetCStringWithMaxLength(const unichar *characters, - NSUInteger length, NSUInteger *location, - char *cString, NSUInteger maxLength, - BOOL lossy); - -NSString *NSString_cStringNewWithBytesAndZero(NSZone *zone, const char *bytes); - -NSString *NSString_cStringNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length); - -NSString *NSString_cStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy); - -NSString *NSString_cStringNewWithCapacity(NSZone *zone, NSUInteger capacity, - char **ptr); - -NSString *NSString_cStringWithBytesAndZero(NSZone *zone, const char *bytes); - -unichar *NSString_anyCStringToUnicode(NSStringEncoding encoding, - const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -char *NSString_unicodeToAnyCString(NSStringEncoding encoding, - const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, - NSZone *zone, BOOL zeroTerminate); - -NSString *NSString_anyCStringNewWithBytes(NSStringEncoding encoding, - NSZone *zone, const char *bytes, - NSUInteger length); - -NSString *NSString_anyCStringNewWithCharacters(NSStringEncoding encoding, - NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy); - -NSUInteger NSGetAnyCStringWithMaxLength(NSStringEncoding encoding, - const unichar *characters, - NSUInteger length, NSUInteger *location, - char *cString, NSUInteger maxLength, - BOOL lossy); diff --git a/Foundation/NSString/NSString_cString.m b/Foundation/NSString/NSString_cString.m deleted file mode 100644 index c8509282..00000000 --- a/Foundation/NSString/NSString_cString.m +++ /dev/null @@ -1,317 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import "NSStringEncoder.h" - -#include - -// Note: we are falling back to NeXTSTEP encoding for unsupported ones, and log -// a message only once -// And before supporting non ASCII based ones, we should probably first -// clean any use of NSString<->C string conversion with no explicit -// encoding because some place probably really expect some kind of ASCII - -// Only the first messages about unsupported encoding are logged so we don't -// spend our time and fill the disk logging these errors (just logging the first -// one seem not enough - the first messages seem lost in space) -#define logEncodingError(encoding) { \ - if (encoding != defaultEncoding()) { \ - static int unsupportedEncodingLogged = 0; \ - if (unsupportedEncodingLogged < 10) { \ - unsupportedEncodingLogged++; \ - NSCLog("Use of unknown encoding %d", encoding); \ - } \ - } else { \ - static int unsupportedDefaultEncodingLogged = 0; \ - if (unsupportedDefaultEncodingLogged < 10) { \ - unsupportedDefaultEncodingLogged++; \ - NSCLog("Unsupported default encoding %d", encoding); \ - NSCLog("%s() unimplemented in %s at %d", __PRETTY_FUNCTION__, \ - __FILE__, __LINE__); \ - } \ - } \ - } - -unichar *NSCharactersFromCString(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - return NSString_anyCStringToUnicode(defaultEncoding(), cString, length, - resultLength, zone); -} - -char *NSString_cStringFromCharacters(const unichar *characters, - NSUInteger length, BOOL lossy, - NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - return NSString_unicodeToAnyCString(defaultEncoding(), characters, length, - lossy, resultLength, zone, - zeroTerminate); -} - -NSUInteger NSGetCStringWithMaxLength(const unichar *characters, - NSUInteger length, NSUInteger *location, - char *cString, NSUInteger maxLength, - BOOL lossy) -{ - return NSGetAnyCStringWithMaxLength(defaultEncoding(), characters, length, - location, cString, maxLength, lossy); -} - -NSString *NSString_cStringNewWithBytesAndZero(NSZone *zone, const char *bytes) { - int length = 0; - - while (bytes[length] != '\0') - length++; - - return NSString_cStringNewWithBytes(zone, bytes, length); -} - -NSString *NSString_cStringNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length) -{ - return NSString_anyCStringNewWithBytes(defaultEncoding(), zone, bytes, - length); -} - -NSString *NSString_cStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy) -{ - return NSString_anyCStringNewWithCharacters(defaultEncoding(), zone, - characters, length, lossy); -} - -NSString *NSString_cStringNewWithCapacity(NSZone *zone, NSUInteger capacity, - char **ptr) -{ - return NSNEXTSTEPCStringNewWithCapacity(zone, capacity, ptr); -} - -NSString *NSString_cStringWithBytesAndZero(NSZone *zone, const char *bytes) { - return NSAutorelease(NSString_cStringNewWithBytesAndZero(zone, bytes)); -} -unichar *NSString_anyCStringToUnicode(NSStringEncoding encoding, - const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - switch (encoding) { - case NSNEXTSTEPStringEncoding: - return NSNEXTSTEPToUnicode(cString, length, resultLength, zone); - case NSASCIIStringEncoding: - case NSISOLatin1StringEncoding: - return NSISOLatin1ToUnicode(cString, length, resultLength, zone); - case NSISOLatin2StringEncoding: - return NSISOLatin2ToUnicode(cString, length, resultLength, zone); - case NSWindowsCP1252StringEncoding: - return NSWin1252ToUnicode(cString, length, resultLength, zone); - case NSMacOSRomanStringEncoding: - return NSMacOSRomanToUnicode(cString, length, resultLength, zone); - case NSUTF8StringEncoding: - return NSUTF8ToUnicode(cString, length, resultLength, zone); - default: { - unichar *chars = - NSBytesToUnicode(cString, length, encoding, resultLength, zone); - if (chars) { - return chars; - } - logEncodingError(encoding); - // we're using an unsupported default encoding - assuming NextSTEP - return NSNEXTSTEPToUnicode(cString, length, resultLength, zone); - } - } -} - -char *NSString_unicodeToAnyCString(NSStringEncoding encoding, - const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, - NSZone *zone, BOOL zeroTerminate) -{ - switch (encoding) { - case NSNEXTSTEPStringEncoding: - return NSUnicodeToNEXTSTEP(characters, length, lossy, resultLength, - zone, zeroTerminate); - case NSUTF8StringEncoding: - return NSUnicodeToUTF8(characters, length, lossy, resultLength, zone, - zeroTerminate); - case NSMacOSRomanStringEncoding: - return NSUnicodeToMacOSRoman(characters, length, lossy, resultLength, - zone, zeroTerminate); - case NSASCIIStringEncoding: - case NSISOLatin1StringEncoding: - return NSUnicodeToISOLatin1(characters, length, lossy, resultLength, - zone, zeroTerminate); - case NSISOLatin2StringEncoding: - return NSUnicodeToISOLatin2(characters, length, lossy, resultLength, - zone, zeroTerminate); - case NSWindowsCP1252StringEncoding: - return NSUnicodeToWin1252(characters, length, lossy, resultLength, zone, - zeroTerminate); - case NSSymbolStringEncoding: - return NSUnicodeToSymbol(characters, length, lossy, resultLength, zone, - zeroTerminate); - case NSUnicodeStringEncoding: - return NSUnicodeToUnicode(characters, length, resultLength, zone, - zeroTerminate); - default: { - unsigned char *bytes = NSBytesFromUnicode(characters, length, encoding, - lossy, resultLength, zone); - if (bytes) { - return bytes; - } - logEncodingError(encoding); - // we're using an unsupported default encoding - assuming NextSTEP - return NSUnicodeToNEXTSTEP(characters, length, lossy, resultLength, - zone, zeroTerminate); - } - } -} - -NSString *NSString_anyCStringNewWithBytes(NSStringEncoding encoding, - NSZone *zone, const char *bytes, - NSUInteger length) -{ - switch (encoding) { - case NSNEXTSTEPStringEncoding: - return NSNEXTSTEPCStringNewWithBytes(zone, bytes, length); - case NSMacOSRomanStringEncoding: - return NSString_macOSRomanNewWithBytes(zone, bytes, length); - case NSASCIIStringEncoding: - case NSISOLatin1StringEncoding: - return NSString_isoLatin1NewWithBytes(zone, bytes, length); - case NSISOLatin2StringEncoding: - return NSString_isoLatin2NewWithBytes(zone, bytes, length); - case NSWindowsCP1252StringEncoding: - return NSString_win1252NewWithBytes(zone, bytes, length); - default: { - NSUInteger decodedLength = 0; - unichar *chars = - NSBytesToUnicode(bytes, length, encoding, &decodedLength, zone); - if (chars) { - NSString *result = [[NSString allocWithZone: zone] - initWithCharacters: chars - length: decodedLength]; - NSZoneFree(zone, chars); - return result; - } - - logEncodingError(encoding); - // we're using an unsupported default encoding - assuming NextSTEP - return NSNEXTSTEPCStringNewWithBytes(zone, bytes, length); - } - } -} - -// Not sure what's the goal of the method and why we wouldn't just return a -// NSString made from the unichar It seems unused anyway -NSString *NSString_anyCStringNewWithCharacters(NSStringEncoding encoding, - NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy) -{ - switch (encoding) { - case NSNEXTSTEPStringEncoding: - return NSNEXTSTEPCStringNewWithCharacters(zone, characters, length, - lossy); - case NSWindowsCP1252StringEncoding: - return NSWin1252CStringNewWithCharacters(zone, characters, length, - lossy); - case NSMacOSRomanStringEncoding: - return NSMacOSRomanCStringNewWithCharacters(zone, characters, length, - lossy); - case NSASCIIStringEncoding: - case NSISOLatin1StringEncoding: - return NSISOLatin1CStringNewWithCharacters(zone, characters, length, - lossy); - case NSISOLatin2StringEncoding: - return NSISOLatin2CStringNewWithCharacters(zone, characters, length, - lossy); - default: - return [[NSString allocWithZone: zone] initWithCharacters: characters - length: length]; - } - return nil; -} - -NSUInteger NSGetAnyCStringWithMaxLength(NSStringEncoding encoding, - const unichar *characters, - NSUInteger length, NSUInteger *location, - char *cString, NSUInteger maxLength, - BOOL lossy) -{ - if (cString == NULL || maxLength == 0) { - return NSNotFound; - } - - switch (encoding) { - case NSNEXTSTEPStringEncoding: - return NSGetNEXTSTEPCStringWithMaxLength(characters, length, location, - cString, maxLength, lossy); - case NSUnicodeStringEncoding: - return NSGetUnicodeCStringWithMaxLength(characters, length, location, - cString, maxLength); - case NSISOLatin1StringEncoding: - case NSASCIIStringEncoding: - return NSGetISOLatin1CStringWithMaxLength(characters, length, location, - cString, maxLength, lossy); - case NSISOLatin2StringEncoding: - return NSGetISOLatin2CStringWithMaxLength(characters, length, location, - cString, maxLength, lossy); - case NSMacOSRomanStringEncoding: - return NSGetMacOSRomanCStringWithMaxLength(characters, length, location, - cString, maxLength, lossy); - case NSWindowsCP1252StringEncoding: - return NSGetWin1252CStringWithMaxLength(characters, length, location, - cString, maxLength, lossy); - case NSUTF8StringEncoding: - return NSGetUTF8CStringWithMaxLength(characters, length, location, - cString, maxLength); - default: { - NSUInteger decodedLength = 0; - unsigned char *bytes = NSBytesFromUnicode(characters, length, encoding, - lossy, &decodedLength, nil); - if (bytes == NULL) { - logEncodingError(encoding); - // we're using an unsupported default encoding - assuming NextSTEP - return NSGetNEXTSTEPCStringWithMaxLength( - characters, length, location, cString, maxLength, lossy); - } else { - NSUInteger len = MIN(decodedLength, maxLength); - memcpy(cString, bytes, len); - *location = len; - NSZoneFree(nil, bytes); - return len; - } - } - } -} diff --git a/Foundation/NSString/NSString_defaultEncoding.h b/Foundation/NSString/NSString_defaultEncoding.h deleted file mode 100644 index 18545c75..00000000 --- a/Foundation/NSString/NSString_defaultEncoding.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -NSStringEncoding defaultEncoding(); diff --git a/Foundation/NSString/NSString_isoLatin1.h b/Foundation/NSString/NSString_isoLatin1.h deleted file mode 100644 index 14b501d7..00000000 --- a/Foundation/NSString/NSString_isoLatin1.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString_isoLatin1 : NSString { - NSUInteger _length; - unsigned char _bytes[1]; -} - -@end - -unichar *NSISOLatin1ToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -char *NSUnicodeToISOLatin1(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); - -void NSString_isoLatin1Initialize(void); -NSString *NSString_isoLatin1NewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length); - -NSUInteger NSGetISOLatin1CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, - char *cString, - NSUInteger maxLength, BOOL lossy); - -NSString *NSISOLatin1CStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy); \ No newline at end of file diff --git a/Foundation/NSString/NSString_isoLatin1.m b/Foundation/NSString/NSString_isoLatin1.m deleted file mode 100644 index 27b17c85..00000000 --- a/Foundation/NSString/NSString_isoLatin1.m +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -unichar *NSISOLatin1ToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - unichar *characters = NSZoneMalloc(zone, sizeof(unichar) * length); - int i; - - for (i = 0; i < length; i++) - characters[i] = ((uint8_t *) cString)[i]; - - *resultLength = i; - return characters; -} - -char *NSUnicodeToISOLatin1(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - char *isolatin1 = NSZoneMalloc( - zone, sizeof(char) * (length + (zeroTerminate == YES ? 1 : 0))); - int i; - - for (i = 0; i < length; i++) { - - if (characters[i] < 256) - isolatin1[i] = characters[i]; - else if (lossy) - isolatin1[i] = '\0'; - else { - NSZoneFree(zone, isolatin1); - return NULL; - } - } - if (zeroTerminate == YES) { - isolatin1[i++] = '\0'; - } - *resultLength = i; - - return isolatin1; -} - -NSUInteger NSGetISOLatin1CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, - char *cString, - NSUInteger maxLength, BOOL lossy) -{ - NSUInteger i, result = 0; - - if (length + 1 > maxLength) { - cString[0] = '\0'; - return NSNotFound; - } - for (i = 0; i < length && result <= maxLength; i++) { - const unichar code = characters[i]; - - if (code < 256) - cString[result++] = code; - else { - if (lossy) - cString[result++] = '\0'; - else { - return NSNotFound; - } - } - } - - cString[result] = '\0'; - - *location = i; - - return result; -} - -NSString *NSISOLatin1CStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy) -{ - NSString *string; - NSUInteger bytesLength; - char *bytes; - - bytes = NSUnicodeToISOLatin1(characters, length, lossy, &bytesLength, zone, - NO); - - if (bytes == NULL) - string = nil; - else { - string = NSString_isoLatin1NewWithBytes(zone, bytes, bytesLength); - NSZoneFree(zone, bytes); - } - - return string; -} - -@implementation NSString_isoLatin1 - -NSString *NSString_isoLatin1NewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length) -{ - - NSString_isoLatin1 *self = NSAllocateObject([NSString_isoLatin1 class], - length * sizeof(char), zone); - if (self) { - self->_length = length; - int i; - for (i = 0; i < length; i++) - self->_bytes[i] = ((uint8_t *) bytes)[i]; - self->_bytes[i] = '\0'; - } - return self; -} - -- (NSUInteger) length { - return _length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _bytes[location]; -} - -- (void) getCharacters: (unichar *) buffer { - int i; - - for (i = 0; i < _length; i++) - buffer[i] = _bytes[i]; -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, loc = range.location, len = range.length; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < len; i++) - buffer[i] = _bytes[loc + i]; -} - -@end diff --git a/Foundation/NSString/NSString_isoLatin2.h b/Foundation/NSString/NSString_isoLatin2.h deleted file mode 100644 index 0d98a6f3..00000000 --- a/Foundation/NSString/NSString_isoLatin2.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2012 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface NSString_isoLatin2 : NSString { - NSUInteger _length; - unsigned char _bytes[1]; -} - -@end - -unichar *NSISOLatin2ToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -char *NSUnicodeToISOLatin2(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); - -NSString *NSString_isoLatin2NewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length); - -NSString *NSISOLatin2CStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy); - -NSUInteger NSGetISOLatin2CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, - char *cString, - NSUInteger maxLength, BOOL lossy); diff --git a/Foundation/NSString/NSString_isoLatin2.m b/Foundation/NSString/NSString_isoLatin2.m deleted file mode 100644 index dc82c691..00000000 --- a/Foundation/NSString/NSString_isoLatin2.m +++ /dev/null @@ -1,393 +0,0 @@ -/* Copyright (c) 2012 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#import -#import -#import - -typedef struct { - const unsigned char latin2; - const unichar unicode; -} CharMapping; - -static CharMapping mapping_array[] = { - {(const unsigned char) 0xA1, - (const unichar) 0x0104}, // LATIN CAPITAL LETTER A WITH OGONEK - {(const unsigned char) 0xA2, (const unichar) 0x02D8}, // BREVE - {(const unsigned char) 0xA3, - (const unichar) 0x0141}, // LATIN CAPITAL LETTER L WITH STROKE - {(const unsigned char) 0xA4, (const unichar) 0x00A4}, // CURRENCY SIGN - {(const unsigned char) 0xA5, - (const unichar) 0x013D}, // LATIN CAPITAL LETTER L WITH CARON - {(const unsigned char) 0xA6, - (const unichar) 0x015A}, // LATIN CAPITAL LETTER S WITH ACUTE - {(const unsigned char) 0xA7, (const unichar) 0x00A7}, // SECTION SIGN - {(const unsigned char) 0xA8, (const unichar) 0x00A8}, // DIAERESIS - {(const unsigned char) 0xA9, - (const unichar) 0x0160}, // LATIN CAPITAL LETTER S WITH CARON - {(const unsigned char) 0xAA, - (const unichar) 0x015E}, // LATIN CAPITAL LETTER S WITH CEDILLA - {(const unsigned char) 0xAB, - (const unichar) 0x0164}, // LATIN CAPITAL LETTER T WITH CARON - {(const unsigned char) 0xAC, - (const unichar) 0x0179}, // LATIN CAPITAL LETTER Z WITH ACUTE - {(const unsigned char) 0xAD, (const unichar) 0x00AD}, // SOFT HYPHEN - {(const unsigned char) 0xAE, - (const unichar) 0x017D}, // LATIN CAPITAL LETTER Z WITH CARON - {(const unsigned char) 0xAF, - (const unichar) 0x017B}, // LATIN CAPITAL LETTER Z WITH DOT ABOVE - {(const unsigned char) 0xB0, (const unichar) 0x00B0}, // DEGREE SIGN - {(const unsigned char) 0xB1, - (const unichar) 0x0105}, // LATIN SMALL LETTER A WITH OGONEK - {(const unsigned char) 0xB2, (const unichar) 0x02DB}, // OGONEK - {(const unsigned char) 0xB3, - (const unichar) 0x0142}, // LATIN SMALL LETTER L WITH STROKE - {(const unsigned char) 0xB4, (const unichar) 0x00B4}, // ACUTE ACCENT - {(const unsigned char) 0xB5, - (const unichar) 0x013E}, // LATIN SMALL LETTER L WITH CARON - {(const unsigned char) 0xB6, - (const unichar) 0x015B}, // LATIN SMALL LETTER S WITH ACUTE - {(const unsigned char) 0xB7, (const unichar) 0x02C7}, // CARON - {(const unsigned char) 0xB8, (const unichar) 0x00B8}, // CEDILLA - {(const unsigned char) 0xB9, - (const unichar) 0x0161}, // LATIN SMALL LETTER S WITH CARON - {(const unsigned char) 0xBA, - (const unichar) 0x015F}, // LATIN SMALL LETTER S WITH CEDILLA - {(const unsigned char) 0xBB, - (const unichar) 0x0165}, // LATIN SMALL LETTER T WITH CARON - {(const unsigned char) 0xBC, - (const unichar) 0x017A}, // LATIN SMALL LETTER Z WITH ACUTE - {(const unsigned char) 0xBD, - (const unichar) 0x02DD}, // DOUBLE ACUTE ACCENT - {(const unsigned char) 0xBE, - (const unichar) 0x017E}, // LATIN SMALL LETTER Z WITH CARON - {(const unsigned char) 0xBF, - (const unichar) 0x017C}, // LATIN SMALL LETTER Z WITH DOT ABOVE - {(const unsigned char) 0xC0, - (const unichar) 0x0154}, // LATIN CAPITAL LETTER R WITH ACUTE - {(const unsigned char) 0xC1, - (const unichar) 0x00C1}, // LATIN CAPITAL LETTER A WITH ACUTE - {(const unsigned char) 0xC2, - (const unichar) 0x00C2}, // LATIN CAPITAL LETTER A WITH CIRCUMFLEX - {(const unsigned char) 0xC3, - (const unichar) 0x0102}, // LATIN CAPITAL LETTER A WITH BREVE - {(const unsigned char) 0xC4, - (const unichar) 0x00C4}, // LATIN CAPITAL LETTER A WITH DIAERESIS - {(const unsigned char) 0xC5, - (const unichar) 0x0139}, // LATIN CAPITAL LETTER L WITH ACUTE - {(const unsigned char) 0xC6, - (const unichar) 0x0106}, // LATIN CAPITAL LETTER C WITH ACUTE - {(const unsigned char) 0xC7, - (const unichar) 0x00C7}, // LATIN CAPITAL LETTER C WITH CEDILLA - {(const unsigned char) 0xC8, - (const unichar) 0x010C}, // LATIN CAPITAL LETTER C WITH CARON - {(const unsigned char) 0xC9, - (const unichar) 0x00C9}, // LATIN CAPITAL LETTER E WITH ACUTE - {(const unsigned char) 0xCA, - (const unichar) 0x0118}, // LATIN CAPITAL LETTER E WITH OGONEK - {(const unsigned char) 0xCB, - (const unichar) 0x00CB}, // LATIN CAPITAL LETTER E WITH DIAERESIS - {(const unsigned char) 0xCC, - (const unichar) 0x011A}, // LATIN CAPITAL LETTER E WITH CARON - {(const unsigned char) 0xCD, - (const unichar) 0x00CD}, // LATIN CAPITAL LETTER I WITH ACUTE - {(const unsigned char) 0xCE, - (const unichar) 0x00CE}, // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - {(const unsigned char) 0xCF, - (const unichar) 0x010E}, // LATIN CAPITAL LETTER D WITH CARON - {(const unsigned char) 0xD0, - (const unichar) 0x0110}, // LATIN CAPITAL LETTER D WITH STROKE - {(const unsigned char) 0xD1, - (const unichar) 0x0143}, // LATIN CAPITAL LETTER N WITH ACUTE - {(const unsigned char) 0xD2, - (const unichar) 0x0147}, // LATIN CAPITAL LETTER N WITH CARON - {(const unsigned char) 0xD3, - (const unichar) 0x00D3}, // LATIN CAPITAL LETTER O WITH ACUTE - {(const unsigned char) 0xD4, - (const unichar) 0x00D4}, // LATIN CAPITAL LETTER O WITH CIRCUMFLEX - {(const unsigned char) 0xD5, - (const unichar) 0x0150}, // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - {(const unsigned char) 0xD6, - (const unichar) 0x00D6}, // LATIN CAPITAL LETTER O WITH DIAERESIS - {(const unsigned char) 0xD7, - (const unichar) 0x00D7}, // MULTIPLICATION SIGN - {(const unsigned char) 0xD8, - (const unichar) 0x0158}, // LATIN CAPITAL LETTER R WITH CARON - {(const unsigned char) 0xD9, - (const unichar) 0x016E}, // LATIN CAPITAL LETTER U WITH RING ABOVE - {(const unsigned char) 0xDA, - (const unichar) 0x00DA}, // LATIN CAPITAL LETTER U WITH ACUTE - {(const unsigned char) 0xDB, - (const unichar) 0x0170}, // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - {(const unsigned char) 0xDC, - (const unichar) 0x00DC}, // LATIN CAPITAL LETTER U WITH DIAERESIS - {(const unsigned char) 0xDD, - (const unichar) 0x00DD}, // LATIN CAPITAL LETTER Y WITH ACUTE - {(const unsigned char) 0xDE, - (const unichar) 0x0162}, // LATIN CAPITAL LETTER T WITH CEDILLA - {(const unsigned char) 0xDF, - (const unichar) 0x00DF}, // LATIN SMALL LETTER SHARP S - {(const unsigned char) 0xE0, - (const unichar) 0x0155}, // LATIN SMALL LETTER R WITH ACUTE - {(const unsigned char) 0xE1, - (const unichar) 0x00E1}, // LATIN SMALL LETTER A WITH ACUTE - {(const unsigned char) 0xE2, - (const unichar) 0x00E2}, // LATIN SMALL LETTER A WITH CIRCUMFLEX - {(const unsigned char) 0xE3, - (const unichar) 0x0103}, // LATIN SMALL LETTER A WITH BREVE - {(const unsigned char) 0xE4, - (const unichar) 0x00E4}, // LATIN SMALL LETTER A WITH DIAERESIS - {(const unsigned char) 0xE5, - (const unichar) 0x013A}, // LATIN SMALL LETTER L WITH ACUTE - {(const unsigned char) 0xE6, - (const unichar) 0x0107}, // LATIN SMALL LETTER C WITH ACUTE - {(const unsigned char) 0xE7, - (const unichar) 0x00E7}, // LATIN SMALL LETTER C WITH CEDILLA - {(const unsigned char) 0xE8, - (const unichar) 0x010D}, // LATIN SMALL LETTER C WITH CARON - {(const unsigned char) 0xE9, - (const unichar) 0x00E9}, // LATIN SMALL LETTER E WITH ACUTE - {(const unsigned char) 0xEA, - (const unichar) 0x0119}, // LATIN SMALL LETTER E WITH OGONEK - {(const unsigned char) 0xEB, - (const unichar) 0x00EB}, // LATIN SMALL LETTER E WITH DIAERESIS - {(const unsigned char) 0xEC, - (const unichar) 0x011B}, // LATIN SMALL LETTER E WITH CARON - {(const unsigned char) 0xED, - (const unichar) 0x00ED}, // LATIN SMALL LETTER I WITH ACUTE - {(const unsigned char) 0xEE, - (const unichar) 0x00EE}, // LATIN SMALL LETTER I WITH CIRCUMFLEX - {(const unsigned char) 0xEF, - (const unichar) 0x010F}, // LATIN SMALL LETTER D WITH CARON - {(const unsigned char) 0xF0, - (const unichar) 0x0111}, // LATIN SMALL LETTER D WITH STROKE - {(const unsigned char) 0xF1, - (const unichar) 0x0144}, // LATIN SMALL LETTER N WITH ACUTE - {(const unsigned char) 0xF2, - (const unichar) 0x0148}, // LATIN SMALL LETTER N WITH CARON - {(const unsigned char) 0xF3, - (const unichar) 0x00F3}, // LATIN SMALL LETTER O WITH ACUTE - {(const unsigned char) 0xF4, - (const unichar) 0x00F4}, // LATIN SMALL LETTER O WITH CIRCUMFLEX - {(const unsigned char) 0xF5, - (const unichar) 0x0151}, // LATIN SMALL LETTER O WITH DOUBLE ACUTE - {(const unsigned char) 0xF6, - (const unichar) 0x00F6}, // LATIN SMALL LETTER O WITH DIAERESIS - {(const unsigned char) 0xF7, (const unichar) 0x00F7}, // DIVISION SIGN - {(const unsigned char) 0xF8, - (const unichar) 0x0159}, // LATIN SMALL LETTER R WITH CARON - {(const unsigned char) 0xF9, - (const unichar) 0x016F}, // LATIN SMALL LETTER U WITH RING ABOVE - {(const unsigned char) 0xFA, - (const unichar) 0x00FA}, // LATIN SMALL LETTER U WITH ACUTE - {(const unsigned char) 0xFB, - (const unichar) 0x0171}, // LATIN SMALL LETTER U WITH DOUBLE ACUTE - {(const unsigned char) 0xFC, - (const unichar) 0x00FC}, // LATIN SMALL LETTER U WITH DIAERESIS - {(const unsigned char) 0xFD, - (const unichar) 0x00FD}, // LATIN SMALL LETTER Y WITH ACUTE - {(const unsigned char) 0xFE, - (const unichar) 0x0163}, // LATIN SMALL LETTER T WITH CEDILLA - {(const unsigned char) 0xFF, (const unichar) 0x02D9} // DOT ABOVE -}; - -const unichar _mapISOLatin2ToUnichar(const unsigned char c) { - if (c >= 0xA1) { - return mapping_array[c - 0xA1].unicode; - } - - return c; -} -unichar *NSISOLatin2ToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - unichar *characters = NSZoneMalloc(zone, sizeof(unichar) * length); - int i; - - for (i = 0; i < length; i++) { - characters[i] = _mapISOLatin2ToUnichar(cString[i]); - } - - *resultLength = i; - return characters; -} - -char *NSUnicodeToISOLatin2(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - char *isolatin2 = NSZoneMalloc( - zone, sizeof(char) * (length + (zeroTerminate == YES ? 1 : 0))); - int i; - - for (i = 0; i < length; i++) { - - if (characters[i] < 0xA1) - isolatin2[i] = characters[i]; - else { - - static int size = sizeof(mapping_array) / sizeof(mapping_array[0]); - int j = 0; - BOOL found = NO; - - for (; j < size; j++) { - if (mapping_array[j].unicode == characters[i]) { - isolatin2[i] = mapping_array[j].latin2; - found = YES; - break; - } - } - if (!found) { - if (lossy) - isolatin2[i] = '\0'; - else { - NSZoneFree(zone, isolatin2); - return NULL; - } - } - } - } - if (zeroTerminate == YES) { - isolatin2[i++] = '\0'; - } - *resultLength = i; - - return isolatin2; -} - -NSString *NSISOLatin2CStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy) -{ - NSString *string; - NSUInteger bytesLength; - char *bytes; - - bytes = NSUnicodeToISOLatin2(characters, length, lossy, &bytesLength, zone, - NO); - - if (bytes == NULL) - string = nil; - else { - string = NSString_isoLatin2NewWithBytes(zone, bytes, bytesLength); - NSZoneFree(zone, bytes); - } - - return string; -} - -NSUInteger NSGetISOLatin2CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, - char *cString, - NSUInteger maxLength, BOOL lossy) -{ - NSUInteger i, result = 0; - - if (length + 1 > maxLength) { - cString[0] = '\0'; - return NSNotFound; - } - for (i = 0; i < length && result <= maxLength; i++) { - const unichar code = characters[i]; - - if (code < 0xA1) - cString[result++] = code; - else { - unsigned char j; - BOOL found = NO; - for (j = 0xA0; j < 0xFF; j++) { - if (code == _mapISOLatin2ToUnichar(j + 1)) { - found = YES; - break; - } - } - - if (found == YES) - cString[result++] = j + 1; - else if (lossy) - cString[result++] = '\0'; - else { - return NSNotFound; - } - } - } - - cString[result] = '\0'; - - *location = i; - - return result; -} - -@implementation NSString_isoLatin2 - -NSString *NSString_isoLatin2NewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length) -{ - NSString_isoLatin2 *string; - int i; - - string = NSAllocateObject([NSString_isoLatin2 class], length * sizeof(char), - zone); - - string->_length = length; - for (i = 0; i < length; i++) { - unsigned char c = ((uint8_t *) bytes)[i]; - string->_bytes[i] = c; - } - string->_bytes[i] = '\0'; - - return string; -} - -- (NSUInteger) length { - return _length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _mapISOLatin2ToUnichar(_bytes[location]); -} - -- (void) getCharacters: (unichar *) buffer { - int i; - - for (i = 0; i < _length; i++) - buffer[i] = _mapISOLatin2ToUnichar(_bytes[i]); -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, loc = range.location, len = range.length; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < len; i++) - buffer[i] = _mapISOLatin2ToUnichar(_bytes[loc + i]); -} - -@end diff --git a/Foundation/NSString/NSString_macOSRoman.h b/Foundation/NSString/NSString_macOSRoman.h deleted file mode 100644 index 419c58b9..00000000 --- a/Foundation/NSString/NSString_macOSRoman.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface NSString_macOSRoman : NSString { - NSUInteger _length; - unsigned char _bytes[1]; -} - -@end - -unichar *NSMacOSRomanToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -char *NSUnicodeToMacOSRoman(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); - -NSString *NSString_macOSRomanNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length); - -NSString *NSMacOSRomanCStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy); - -NSUInteger NSGetMacOSRomanCStringWithMaxLength( - const unichar *characters, NSUInteger length, NSUInteger *location, - char *cString, NSUInteger maxLength, BOOL lossy); diff --git a/Foundation/NSString/NSString_macOSRoman.m b/Foundation/NSString/NSString_macOSRoman.m deleted file mode 100644 index f72271d7..00000000 --- a/Foundation/NSString/NSString_macOSRoman.m +++ /dev/null @@ -1,336 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#import -#import -#import - -typedef struct { - const unsigned char macOSRoman; - const unichar unicode; -} CharMapping; - -static CharMapping mapping_array[] = { - {(const unsigned char) 0x80, (const unichar) 0x00C4}, - {(const unsigned char) 0x81, (const unichar) 0x00C5}, - {(const unsigned char) 0x82, (const unichar) 0x00C7}, - {(const unsigned char) 0x83, (const unichar) 0x00C9}, - {(const unsigned char) 0x84, (const unichar) 0x00D1}, - {(const unsigned char) 0x85, (const unichar) 0x00D6}, - {(const unsigned char) 0x86, (const unichar) 0x00DC}, - {(const unsigned char) 0x87, (const unichar) 0x00E1}, - {(const unsigned char) 0x88, (const unichar) 0x00E0}, - {(const unsigned char) 0x89, (const unichar) 0x00E2}, - {(const unsigned char) 0x8A, (const unichar) 0x00E4}, - {(const unsigned char) 0x8B, (const unichar) 0x00E3}, - {(const unsigned char) 0x8C, (const unichar) 0x00E5}, - {(const unsigned char) 0x8D, (const unichar) 0x00E7}, - {(const unsigned char) 0x8E, (const unichar) 0x00E9}, - {(const unsigned char) 0x8F, (const unichar) 0x00E8}, - {(const unsigned char) 0x90, (const unichar) 0x00EA}, - {(const unsigned char) 0x91, (const unichar) 0x00EB}, - {(const unsigned char) 0x92, (const unichar) 0x00ED}, - {(const unsigned char) 0x93, (const unichar) 0x00EC}, - {(const unsigned char) 0x94, (const unichar) 0x00EE}, - {(const unsigned char) 0x95, (const unichar) 0x00EF}, - {(const unsigned char) 0x96, (const unichar) 0x00F1}, - {(const unsigned char) 0x97, (const unichar) 0x00F3}, - {(const unsigned char) 0x98, (const unichar) 0x00F2}, - {(const unsigned char) 0x99, (const unichar) 0x00F4}, - {(const unsigned char) 0x9A, (const unichar) 0x00F6}, - {(const unsigned char) 0x9B, (const unichar) 0x00F5}, - {(const unsigned char) 0x9C, (const unichar) 0x00FA}, - {(const unsigned char) 0x9D, (const unichar) 0x00F9}, - {(const unsigned char) 0x9E, (const unichar) 0x00FB}, - {(const unsigned char) 0x9F, (const unichar) 0x00FC}, - {(const unsigned char) 0xA0, (const unichar) 0x2020}, - {(const unsigned char) 0xA1, (const unichar) 0x00B0}, - {(const unsigned char) 0xA2, (const unichar) 0x00A2}, - {(const unsigned char) 0xA3, (const unichar) 0x00A3}, - {(const unsigned char) 0xA4, (const unichar) 0x00A7}, - {(const unsigned char) 0xA5, (const unichar) 0x2022}, - {(const unsigned char) 0xA6, (const unichar) 0x00B6}, - {(const unsigned char) 0xA7, (const unichar) 0x00DF}, - {(const unsigned char) 0xA8, (const unichar) 0x00AE}, - {(const unsigned char) 0xA9, (const unichar) 0x00A9}, - {(const unsigned char) 0xAA, (const unichar) 0x2122}, - {(const unsigned char) 0xAB, (const unichar) 0x00B4}, - {(const unsigned char) 0xAC, (const unichar) 0x00A8}, - {(const unsigned char) 0xAD, (const unichar) 0x2260}, - {(const unsigned char) 0xAE, (const unichar) 0x00C6}, - {(const unsigned char) 0xAF, (const unichar) 0x00D8}, - {(const unsigned char) 0xB0, (const unichar) 0x221E}, - {(const unsigned char) 0xB1, (const unichar) 0x00B1}, - {(const unsigned char) 0xB2, (const unichar) 0x2264}, - {(const unsigned char) 0xB3, (const unichar) 0x2265}, - {(const unsigned char) 0xB4, (const unichar) 0x00A5}, - {(const unsigned char) 0xB5, (const unichar) 0x00B5}, - {(const unsigned char) 0xB6, (const unichar) 0x2202}, - {(const unsigned char) 0xB7, (const unichar) 0x2211}, - {(const unsigned char) 0xB8, (const unichar) 0x220F}, - {(const unsigned char) 0xB9, (const unichar) 0x03C0}, - {(const unsigned char) 0xBA, (const unichar) 0x222B}, - {(const unsigned char) 0xBB, (const unichar) 0x00AA}, - {(const unsigned char) 0xBC, (const unichar) 0x00BA}, - {(const unsigned char) 0xBD, (const unichar) 0x03A9}, - {(const unsigned char) 0xBE, (const unichar) 0x00E6}, - {(const unsigned char) 0xBF, (const unichar) 0x00F8}, - {(const unsigned char) 0xC0, (const unichar) 0x00BF}, - {(const unsigned char) 0xC1, (const unichar) 0x00A1}, - {(const unsigned char) 0xC2, (const unichar) 0x00AC}, - {(const unsigned char) 0xC3, (const unichar) 0x221A}, - {(const unsigned char) 0xC4, (const unichar) 0x0192}, - {(const unsigned char) 0xC5, (const unichar) 0x2248}, - {(const unsigned char) 0xC6, (const unichar) 0x2206}, - {(const unsigned char) 0xC7, (const unichar) 0x00AB}, - {(const unsigned char) 0xC8, (const unichar) 0x00BB}, - {(const unsigned char) 0xC9, (const unichar) 0x2026}, - {(const unsigned char) 0xCA, (const unichar) 0x00A0}, - {(const unsigned char) 0xCB, (const unichar) 0x00C0}, - {(const unsigned char) 0xCC, (const unichar) 0x00C3}, - {(const unsigned char) 0xCD, (const unichar) 0x00D5}, - {(const unsigned char) 0xCE, (const unichar) 0x0152}, - {(const unsigned char) 0xCF, (const unichar) 0x0153}, - {(const unsigned char) 0xD0, (const unichar) 0x2013}, - {(const unsigned char) 0xD1, (const unichar) 0x2014}, - {(const unsigned char) 0xD2, (const unichar) 0x201C}, - {(const unsigned char) 0xD3, (const unichar) 0x201D}, - {(const unsigned char) 0xD4, (const unichar) 0x2018}, - {(const unsigned char) 0xD5, (const unichar) 0x2019}, - {(const unsigned char) 0xD6, (const unichar) 0x00F7}, - {(const unsigned char) 0xD7, (const unichar) 0x25CA}, - {(const unsigned char) 0xD8, (const unichar) 0x00FF}, - {(const unsigned char) 0xD9, (const unichar) 0x0178}, - {(const unsigned char) 0xDA, (const unichar) 0x2044}, - {(const unsigned char) 0xDB, (const unichar) 0x20AC}, - {(const unsigned char) 0xDC, (const unichar) 0x2039}, - {(const unsigned char) 0xDD, (const unichar) 0x203A}, - {(const unsigned char) 0xDE, (const unichar) 0xFB01}, - {(const unsigned char) 0xDF, (const unichar) 0xFB02}, - {(const unsigned char) 0xE0, (const unichar) 0x2021}, - {(const unsigned char) 0xE1, (const unichar) 0x00B7}, - {(const unsigned char) 0xE2, (const unichar) 0x201A}, - {(const unsigned char) 0xE3, (const unichar) 0x201E}, - {(const unsigned char) 0xE4, (const unichar) 0x2030}, - {(const unsigned char) 0xE5, (const unichar) 0x00C2}, - {(const unsigned char) 0xE6, (const unichar) 0x00CA}, - {(const unsigned char) 0xE7, (const unichar) 0x00C1}, - {(const unsigned char) 0xE8, (const unichar) 0x00CB}, - {(const unsigned char) 0xE9, (const unichar) 0x00C8}, - {(const unsigned char) 0xEA, (const unichar) 0x00CD}, - {(const unsigned char) 0xEB, (const unichar) 0x00CE}, - {(const unsigned char) 0xEC, (const unichar) 0x00CF}, - {(const unsigned char) 0xED, (const unichar) 0x00CC}, - {(const unsigned char) 0xEE, (const unichar) 0x00D3}, - {(const unsigned char) 0xEF, (const unichar) 0x00D4}, - {(const unsigned char) 0xF0, (const unichar) 0xF8FF}, - {(const unsigned char) 0xF1, (const unichar) 0x00D2}, - {(const unsigned char) 0xF2, (const unichar) 0x00DA}, - {(const unsigned char) 0xF3, (const unichar) 0x00DB}, - {(const unsigned char) 0xF4, (const unichar) 0x00D9}, - {(const unsigned char) 0xF5, (const unichar) 0x0131}, - {(const unsigned char) 0xF6, (const unichar) 0x02C6}, - {(const unsigned char) 0xF7, (const unichar) 0x02DC}, - {(const unsigned char) 0xF8, (const unichar) 0x00AF}, - {(const unsigned char) 0xF9, (const unichar) 0x02D8}, - {(const unsigned char) 0xFA, (const unichar) 0x02D9}, - {(const unsigned char) 0xFB, (const unichar) 0x02DA}, - {(const unsigned char) 0xFC, (const unichar) 0x00B8}, - {(const unsigned char) 0xFD, (const unichar) 0x02DD}, - {(const unsigned char) 0xFE, (const unichar) 0x02DB}, - {(const unsigned char) 0xFF, (const unichar) 0x02C7}}; - -const unichar _mapMacOSRomanToUnichar(const unsigned char c) { - if (c >= 0x80) { - return mapping_array[c - 0x80].unicode; - } - - return c; -} -unichar *NSMacOSRomanToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - unichar *characters = NSZoneMalloc(zone, sizeof(unichar) * length); - int i; - - for (i = 0; i < length; i++) { - characters[i] = _mapMacOSRomanToUnichar(cString[i]); - } - - *resultLength = i; - return characters; -} - -char *NSUnicodeToMacOSRoman(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - char *macOSRoman = NSZoneMalloc( - zone, sizeof(char) * (length + (zeroTerminate == YES ? 1 : 0))); - int i; - - for (i = 0; i < length; i++) { - - if (characters[i] < 0x80) - macOSRoman[i] = characters[i]; - else { - - static int size = sizeof(mapping_array) / sizeof(mapping_array[0]); - int j = 0; - BOOL found = NO; - - for (; j < size; j++) { - if (mapping_array[j].unicode == characters[i]) { - macOSRoman[i] = mapping_array[j].macOSRoman; - found = YES; - break; - } - } - if (!found) { - if (lossy) - macOSRoman[i] = '\0'; - else { - NSZoneFree(zone, macOSRoman); - return NULL; - } - } - } - } - if (zeroTerminate == YES) { - macOSRoman[i++] = '\0'; - } - *resultLength = i; - - return macOSRoman; -} - -NSString *NSMacOSRomanCStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy) -{ - NSString *string; - NSUInteger bytesLength; - char *bytes; - - bytes = NSUnicodeToMacOSRoman(characters, length, lossy, &bytesLength, zone, - NO); - - if (bytes == NULL) - string = nil; - else { - string = NSString_macOSRomanNewWithBytes(zone, bytes, bytesLength); - NSZoneFree(zone, bytes); - } - - return string; -} - -NSUInteger NSGetMacOSRomanCStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, - char *cString, - NSUInteger maxLength, BOOL lossy) -{ - NSUInteger i, result = 0; - - if (length + 1 > maxLength) { - cString[0] = '\0'; - return NSNotFound; - } - for (i = 0; i < length && result <= maxLength; i++) { - const unichar code = characters[i]; - - if (code < 0x80) - cString[result++] = code; - else { - unsigned int j; - - for (j = 0x80; j <= 0xFF; j++) - if (code == _mapMacOSRomanToUnichar(j)) - break; - - if (j <= 0xFF) - cString[result++] = j; - else if (lossy) - cString[result++] = '\0'; - else { - return NSNotFound; - } - } - } - - cString[result] = '\0'; - - *location = i; - - return result; -} - -@implementation NSString_macOSRoman - -NSString *NSString_macOSRomanNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length) -{ - NSString_macOSRoman *self = NSAllocateObject([NSString_macOSRoman class], - length * sizeof(char), zone); - - if (self) { - self->_length = length; - int i; - for (i = 0; i < length; i++) - self->_bytes[i] = ((uint8_t *) bytes)[i]; - self->_bytes[i] = '\0'; - } - return self; -} - -- (NSUInteger) length { - return _length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _mapMacOSRomanToUnichar(_bytes[location]); -} - -- (void) getCharacters: (unichar *) buffer { - int i; - - for (i = 0; i < _length; i++) - buffer[i] = _mapMacOSRomanToUnichar(_bytes[i]); -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, loc = range.location, len = range.length; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < len; i++) - buffer[i] = _mapMacOSRomanToUnichar(_bytes[loc + i]); -} - -@end diff --git a/Foundation/NSString/NSString_nextstep.h b/Foundation/NSString/NSString_nextstep.h deleted file mode 100644 index ac65c0f4..00000000 --- a/Foundation/NSString/NSString_nextstep.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString_nextstep : NSString { - NSUInteger _length; - char _bytes[1]; -} -@end - -unichar *NSNEXTSTEPToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -char *NSUnicodeToNEXTSTEP(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); - -NSString *NSNEXTSTEPStringNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length); - -NSUInteger NSGetNEXTSTEPCStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, - char *cString, - NSUInteger maxLength, BOOL lossy); diff --git a/Foundation/NSString/NSString_nextstep.m b/Foundation/NSString/NSString_nextstep.m deleted file mode 100644 index 4427ec4b..00000000 --- a/Foundation/NSString/NSString_nextstep.m +++ /dev/null @@ -1,200 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import -#import - -static const unichar NEXTSTEPToUnicode[256] = { - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, - 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, - 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, - 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, - 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, - 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, - 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, - 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, - 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, - 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, - 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, - 0x007e, 0x007f, - - 0x00a0, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7, 0x00c8, - 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, - 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d9, 0x00da, 0x00db, 0x00dc, - 0x00dd, 0x00de, 0x00b5, 0x00d7, 0x00f7, 0x00a9, 0x00a1, 0x00a2, 0x00a3, - 0x2044, 0x00a5, 0x0192, 0x00a7, 0x00a4, 0x2019, 0x201c, 0x00ab, 0x2039, - 0x203a, 0xfb01, 0xfb02, 0x00ae, 0x2013, 0x2020, 0x2021, 0x00b7, 0x00a6, - 0x00b6, 0x2022, 0x201a, 0x201e, 0x201d, 0x00bb, 0x2026, 0x2030, 0x00ac, - 0x00bf, 0x00b9, 0x02cb, 0x00b4, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, - 0x00a8, 0x00b2, 0x02da, 0x00b8, 0x00b3, 0x02dd, 0x02db, 0x02c7, 0x2014, - 0x00b1, 0x00bc, 0x00bd, 0x00be, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, - 0x00e5, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00c6, 0x00ed, - 0x00aa, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x0141, 0x00d8, 0x0152, 0x00ba, - 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00e6, 0x00f9, 0x00fa, 0x00fb, - 0x0131, 0x00fc, 0x00fd, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x00ff, - 0xfffd, 0xfffd}; - -unichar *NSNEXTSTEPToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - unichar *characters = NSZoneMalloc(zone, sizeof(unichar) * length); - int i; - - for (i = 0; i < length; i++) - characters[i] = NEXTSTEPToUnicode[((unsigned char *) cString)[i]]; - - *resultLength = i; - return characters; -} - -char *NSUnicodeToNEXTSTEP(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - char *nextstep = NSZoneMalloc( - zone, sizeof(char) * (length + (zeroTerminate == YES ? 1 : 0))); - int i, j; - - for (i = 0; i < length; i++) { - - if (characters[i] < 128) - nextstep[i] = characters[i]; - else { - - for (j = 128; j < 256; j++) - if (characters[i] == NEXTSTEPToUnicode[j]) - break; - - if (j < 256) - nextstep[i] = j; - else if (lossy) - nextstep[i] = '\0'; - else { - NSZoneFree(zone, nextstep); - return NULL; - } - } - } - if (zeroTerminate == YES) { - nextstep[i++] = '\0'; - } - *resultLength = i; - - return nextstep; -} - -NSUInteger NSGetNEXTSTEPCStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, - char *cString, - NSUInteger maxLength, BOOL lossy) -{ - NSUInteger i, result = 0; - - if (length + 1 > maxLength) { - cString[0] = '\0'; - return NSNotFound; - } - for (i = 0; i < length && result <= maxLength; i++) { - unichar code = characters[i]; - - if (code < 128) - cString[result++] = code; - else { - int j; - - for (j = 128; j < 256; j++) - if (code == NEXTSTEPToUnicode[j]) - break; - - if (j < 256) - cString[result++] = j; - else if (lossy) - cString[result++] = '\0'; - else { - return NSNotFound; - } - } - } - - cString[result] = '\0'; - - *location = i; - - return result; -} - -@implementation NSString_nextstep - -NSString *NSNEXTSTEPStringNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length) -{ - - NSString_nextstep *self = NSAllocateObject([NSString_nextstep class], - length * sizeof(char), zone); - - if (self) { - self->_length = length; - NSInteger i; - for (i = 0; i < length; i++) - self->_bytes[i] = bytes[i]; - self->_bytes[i] = '\0'; - } - return self; -} - -- (NSUInteger) length { - return _length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return NEXTSTEPToUnicode[((unsigned char *) _bytes)[location]]; -} - -- (void) getCharacters: (unichar *) buffer { - int i; - - for (i = 0; i < _length; i++) - buffer[i] = NEXTSTEPToUnicode[((unsigned char *) _bytes)[i]]; -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, loc = range.location, len = range.length; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < len; i++) - buffer[i] = NEXTSTEPToUnicode[((unsigned char *) _bytes)[loc + i]]; -} - -@end diff --git a/Foundation/NSString/NSString_nextstepCString.h b/Foundation/NSString/NSString_nextstepCString.h deleted file mode 100644 index f0e75422..00000000 --- a/Foundation/NSString/NSString_nextstepCString.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString_nextstepCString : NSString_nextstep - -@end - -NSString *NSNEXTSTEPCStringNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length); - -NSString *NSNEXTSTEPCStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy); - -NSString *NSNEXTSTEPCStringNewWithCapacity(NSZone *zone, NSUInteger capacity, - char **ptr); diff --git a/Foundation/NSString/NSString_nextstepCString.m b/Foundation/NSString/NSString_nextstepCString.m deleted file mode 100644 index 212def52..00000000 --- a/Foundation/NSString/NSString_nextstepCString.m +++ /dev/null @@ -1,117 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#include - -@implementation NSString_nextstepCString - -- (const char *) cString { - return _bytes; -} - -- (const char *) lossyCString { - return _bytes; -} - -- (NSUInteger) cStringLength { - return _length; -} - -- (void) getCString: (char *) buffer - maxLength: (NSUInteger) maxLength - range: (NSRange) range - remainingRange: (NSRange *) leftoverRange -{ - NSInteger i, rloc; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0, rloc = range.location; i < range.length && i < maxLength; - i++, rloc++) - buffer[i] = _bytes[rloc]; - buffer[i] = '\0'; - - if (leftoverRange != NULL) { - leftoverRange->location = rloc; - leftoverRange->length = _length - rloc; - } -} - -NSString *NSNEXTSTEPCStringNewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length) -{ - NSString_nextstepCString *self = - NSAllocateObject(objc_lookUpClass("NSString_nextstepCString"), - length * sizeof(char), zone); - - if (self) { - self->_length = length; - NSInteger i; - for (i = 0; i < length; i++) - self->_bytes[i] = bytes[i]; - self->_bytes[i] = '\0'; - } - return self; -} - -NSString *NSNEXTSTEPCStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy) -{ - NSString *string; - NSUInteger bytesLength; - char *bytes; - - bytes = NSUnicodeToNEXTSTEP(characters, length, lossy, &bytesLength, zone, - NO); - - if (bytes == NULL) - string = nil; - else { - string = NSNEXTSTEPCStringNewWithBytes(zone, bytes, bytesLength); - NSZoneFree(zone, bytes); - } - - return string; -} - -NSString *NSNEXTSTEPCStringNewWithCapacity(NSZone *zone, NSUInteger capacity, - char **ptr) -{ - NSString_nextstepCString *self = - NSAllocateObject(objc_lookUpClass("NSString_nextstepCString"), - capacity * sizeof(char), zone); - - if (self) { - self->_length = capacity; - *ptr = self->_bytes; - - self->_bytes[capacity] = '\0'; - } - return self; -} - -@end diff --git a/Foundation/NSString/NSString_placeholder.h b/Foundation/NSString/NSString_placeholder.h deleted file mode 100644 index 8dbf8ac7..00000000 --- a/Foundation/NSString/NSString_placeholder.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString_placeholder : NSString - -// For maximum compatibility with Mac OS X, this is the minimum set: -- initWithBytes: (const void *) bytes - length: (NSUInteger) length - encoding: (NSStringEncoding) encoding; -- initWithCharactersNoCopy: (unichar *) characters - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone; -- initWithFormat: (NSString *) format - locale: (NSDictionary *) locale - arguments: (va_list) arguments; - -@end diff --git a/Foundation/NSString/NSString_placeholder.m b/Foundation/NSString/NSString_placeholder.m deleted file mode 100644 index 2b8ae635..00000000 --- a/Foundation/NSString/NSString_placeholder.m +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - 2009 Markus Hitter - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import "NSStringEncoder.h" - -#import -#import -#include - -@implementation NSString_placeholder - -- init { - NSDeallocateObject(self); - return (NSString_placeholder *) @""; -} - -- initWithCharactersNoCopy: (unichar *) characters - length: (NSUInteger) length - freeWhenDone: (BOOL) freeWhenDone -{ - NSDeallocateObject(self); - return (NSString_placeholder *) NSString_unicodePtrNewNoCopy( - NULL, characters, length, freeWhenDone); -} - -// Copied from former -initWithData:(NSData *)data -// encoding:(NSStringEncoding)encoding; -- initWithBytes: (const void *) bytes - length: (NSUInteger) length - encoding: (NSStringEncoding) encoding -{ - NSDeallocateObject(self); - - if (encoding == defaultEncoding()) { - return (NSString_placeholder *) NSString_cStringNewWithBytes( - NULL, bytes, length); - } - - switch (encoding) { - NSUInteger resultLength; - unichar *characters; - - case NSUnicodeStringEncoding: - characters = NSUnicodeFromBytes(bytes, length, &resultLength); - return (NSString_placeholder *) NSString_unicodePtrNewNoCopy( - NULL, characters, resultLength, YES); - - case NSNEXTSTEPStringEncoding: - return (NSString_placeholder *) NSNEXTSTEPStringNewWithBytes( - NULL, bytes, length); - - // FIX, not nextstep - case NSASCIIStringEncoding: - case NSNonLossyASCIIStringEncoding: - return (NSString_placeholder *) NSNEXTSTEPStringNewWithBytes( - NULL, bytes, length); - - case NSISOLatin1StringEncoding: - return (NSString_placeholder *) NSString_isoLatin1NewWithBytes( - NULL, bytes, length); - - case NSSymbolStringEncoding: - characters = NSSymbolToUnicode(bytes, length, &resultLength, NULL); - return (NSString_placeholder *) NSString_unicodePtrNewNoCopy( - NULL, characters, resultLength, YES); - - case NSUTF8StringEncoding: - characters = NSUTF8ToUnicode(bytes, length, &resultLength, NULL); - return (NSString_placeholder *) NSString_unicodePtrNewNoCopy( - NULL, characters, resultLength, YES); - - case NSWindowsCP1252StringEncoding: - return (NSString_placeholder *) NSString_win1252NewWithBytes( - NULL, bytes, length); - - case NSMacOSRomanStringEncoding: - return (NSString_placeholder *) NSString_macOSRomanNewWithBytes( - NULL, bytes, length); - - case NSUTF16LittleEndianStringEncoding: - characters = NSUnicodeFromBytesUTF16LittleEndian(bytes, length, - &resultLength); - return (NSString_placeholder *) NSString_unicodePtrNewNoCopy( - NULL, characters, resultLength, YES); - - case NSUTF16BigEndianStringEncoding: - characters = - NSUnicodeFromBytesUTF16BigEndian(bytes, length, &resultLength); - return (NSString_placeholder *) NSString_unicodePtrNewNoCopy( - NULL, characters, resultLength, YES); - - default: { - // Let's convert the encoding to unicode and use that - unichar *unicodePtr = - NSBytesToUnicode(bytes, length, encoding, &resultLength, NULL); - if (unicodePtr) { - return (NSString_placeholder *) NSString_unicodePtrNewNoCopy( - NULL, unicodePtr, resultLength, YES); - } - } break; - } - - NSRaiseException(NSInvalidArgumentException, nil, _cmd, - @"encoding %d not (yet) implemented", encoding); - return nil; -} - -- initWithFormat: (NSString *) format - locale: (NSDictionary *) locale - arguments: (va_list) arguments -{ - NSDeallocateObject(self); - - return (NSString_placeholder *) NSStringNewWithFormat(format, locale, - arguments, NULL); -} - -@end diff --git a/Foundation/NSString/NSString_unicode.h b/Foundation/NSString/NSString_unicode.h deleted file mode 100644 index 68465a82..00000000 --- a/Foundation/NSString/NSString_unicode.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString_unicode : NSString { - NSUInteger _length; - unichar _unicode[0]; -} - -@end - -void NSString_unicodeInitialize(void); -NSString *NSString_unicodeNew(NSZone *zone, const unichar *unicode, - NSUInteger length); - -NSUInteger NSGetUnicodeCStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, char *cString, - NSUInteger maxLength); -char *NSUnicodeToUnicode(const unichar *characters, NSUInteger length, - NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); \ No newline at end of file diff --git a/Foundation/NSString/NSString_unicode.m b/Foundation/NSString/NSString_unicode.m deleted file mode 100644 index ada729a2..00000000 --- a/Foundation/NSString/NSString_unicode.m +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#include - -@implementation NSString_unicode - -NSString *NSString_unicodeNew(NSZone *zone, const unichar *unicode, - NSUInteger length) -{ - NSString_unicode *self = NSAllocateObject([NSString_unicode class], - length * sizeof(unichar), zone); - - if (self) { - self->_length = length; - NSInteger i; - for (i = 0; i < length; i++) - self->_unicode[i] = unicode[i]; - } - return self; -} - -NSUInteger NSGetUnicodeCStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, char *cString, - NSUInteger maxLength) -{ - if ((length + 1) * 2 > maxLength) { - cString[0] = '\0'; - return NSNotFound; - } - - NSUInteger ucByteLen = length * sizeof(unichar); - memcpy(cString, characters, ucByteLen); - *((unichar *) (cString + ucByteLen)) = 0; - return ucByteLen; -} - -char *NSUnicodeToUnicode(const unichar *characters, NSUInteger length, - NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - unichar *unicode = NSZoneMalloc( - zone, sizeof(unichar) * (length + (zeroTerminate ? 1 : 0))); - - memcpy(unicode, characters, length * sizeof(unichar)); - - if (zeroTerminate) { - unicode[length++] = '\0'; - } - *resultLength = length; - - return (char *) unicode; -} - -- (NSUInteger) length { - return _length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _unicode[location]; -} - -- (void) getCharacters: (unichar *) buffer { - memcpy(buffer, _unicode, _length * sizeof(unichar)); -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, len = range.length, loc = range.location; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - memcpy(buffer, _unicode + loc, len * sizeof(unichar)); -} - -- (NSUInteger) hash { - return NSStringHashUnicode(_unicode, MIN(_length, NSHashStringLength)); -} - -@end diff --git a/Foundation/NSString/NSString_unicodePtr.h b/Foundation/NSString/NSString_unicodePtr.h deleted file mode 100644 index 3d022f94..00000000 --- a/Foundation/NSString/NSString_unicodePtr.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSString_unicodePtr : NSString { - NSUInteger _length; - BOOL _freeWhenDone; - const unichar *_unicode; -} - -@end - -NSString *NSString_unicodePtrNewNoCopy(NSZone *zone, const unichar *unicode, - NSUInteger length, BOOL freeWhenDone); -NSString *NSString_unicodePtrNew(NSZone *zone, const unichar *unicode, - NSUInteger length); diff --git a/Foundation/NSString/NSString_unicodePtr.m b/Foundation/NSString/NSString_unicodePtr.m deleted file mode 100644 index cafe2149..00000000 --- a/Foundation/NSString/NSString_unicodePtr.m +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -@implementation NSString_unicodePtr - -NSString *NSString_unicodePtrNewNoCopy(NSZone *zone, const unichar *unicode, - NSUInteger length, BOOL freeWhenDone) -{ - NSString_unicodePtr *self = - NSAllocateObject([NSString_unicodePtr class], 0, zone); - - if (self) { - self->_length = length; - self->_freeWhenDone = freeWhenDone; - self->_unicode = unicode; - } - return self; -} - -NSString *NSString_unicodePtrNew(NSZone *zone, const unichar *unicode, - NSUInteger length) -{ - unichar *copy = NSZoneMalloc(NULL, length * sizeof(unichar)); - int i; - - for (i = 0; i < length; i++) - copy[i] = unicode[i]; - - return NSString_unicodePtrNewNoCopy(zone, copy, length, YES); -} - -- (void) dealloc { - if (_freeWhenDone) - NSZoneFree(NSZoneFromPointer((void *) _unicode), (void *) _unicode); - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (NSUInteger) length { - return _length; -} - -- (NSUInteger) lengthOfBytesUsingEncoding: (NSStringEncoding) encoding { - switch (encoding) { - case NSUTF8StringEncoding: - return NSConvertUTF16toUTF8(_unicode, _length, NULL); - case NSUnicodeStringEncoding: - return _length; - - default: - NSUnimplementedMethod(); - NSLog(@"For encoding: %i", encoding); - return 0; - } -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _unicode[location]; -} - -- (void) getCharacters: (unichar *) buffer { - int i; - - for (i = 0; i < _length; i++) - buffer[i] = _unicode[i]; -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, len = range.length, loc = range.location; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < len; i++) - buffer[i] = _unicode[loc + i]; -} - -- (NSUInteger) hash { - return NSStringHashUnicode(_unicode, MIN(_length, NSHashStringLength)); -} - -@end diff --git a/Foundation/NSString/NSString_win1252.h b/Foundation/NSString/NSString_win1252.h deleted file mode 100644 index 9048deba..00000000 --- a/Foundation/NSString/NSString_win1252.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface NSString_win1252 : NSString { - NSUInteger _length; - unsigned char _bytes[1]; -} - -@end - -unichar *NSWin1252ToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone); - -char *NSUnicodeToWin1252(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate); - -NSString *NSString_win1252NewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length); - -NSString *NSWin1252CStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy); - -NSUInteger NSGetWin1252CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, char *cString, - NSUInteger maxLength, BOOL lossy); diff --git a/Foundation/NSString/NSString_win1252.m b/Foundation/NSString/NSString_win1252.m deleted file mode 100644 index 0b103c22..00000000 --- a/Foundation/NSString/NSString_win1252.m +++ /dev/null @@ -1,249 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#import -#import -#import - -#define UNDEFINED_UNICODE 0xFFFD - -typedef struct { - const unsigned char win1252; - const unichar unicode; -} CharMapping; - -static CharMapping mapping_array[] = { - {(const unsigned char) 0x80, (const unichar) 0x20AC}, - {(const unsigned char) 0x81, (const unichar) UNDEFINED_UNICODE}, - {(const unsigned char) 0x82, (const unichar) 0x201A}, - {(const unsigned char) 0x83, (const unichar) 0x0192}, - {(const unsigned char) 0x84, (const unichar) 0x201E}, - {(const unsigned char) 0x85, (const unichar) 0x2026}, - {(const unsigned char) 0x86, (const unichar) 0x2020}, - {(const unsigned char) 0x87, (const unichar) 0x2021}, - {(const unsigned char) 0x88, (const unichar) 0x02C6}, - {(const unsigned char) 0x89, (const unichar) 0x2030}, - {(const unsigned char) 0x8A, (const unichar) 0x0160}, - {(const unsigned char) 0x8B, (const unichar) 0x2039}, - {(const unsigned char) 0x8C, (const unichar) 0x0152}, - {(const unsigned char) 0x8D, (const unichar) UNDEFINED_UNICODE}, - {(const unsigned char) 0x8E, (const unichar) 0x017D}, - {(const unsigned char) 0x8F, (const unichar) UNDEFINED_UNICODE}, - {(const unsigned char) 0x90, (const unichar) UNDEFINED_UNICODE}, - {(const unsigned char) 0x91, (const unichar) 0x2018}, - {(const unsigned char) 0x92, (const unichar) 0x2019}, - {(const unsigned char) 0x93, (const unichar) 0x201C}, - {(const unsigned char) 0x94, (const unichar) 0x201D}, - {(const unsigned char) 0x95, (const unichar) 0x2022}, - {(const unsigned char) 0x96, (const unichar) 0x2013}, - {(const unsigned char) 0x97, (const unichar) 0x2014}, - {(const unsigned char) 0x98, (const unichar) 0x02DC}, - {(const unsigned char) 0x99, (const unichar) 0x2122}, - {(const unsigned char) 0x9A, (const unichar) 0x0161}, - {(const unsigned char) 0x9B, (const unichar) 0x203A}, - {(const unsigned char) 0x9C, (const unichar) 0x0153}, - {(const unsigned char) 0x9D, (const unichar) UNDEFINED_UNICODE}, - {(const unsigned char) 0x9E, (const unichar) 0x017E}, - {(const unsigned char) 0x9F, (const unichar) 0x0178}}; - -const unichar _mapWin1252ToUnichar(const unsigned char c) { - if (c >= 0x80 && c <= 0x9F) { - return mapping_array[c - 0x80].unicode; - } - - return c; -} -unichar *NSWin1252ToUnicode(const char *cString, NSUInteger length, - NSUInteger *resultLength, NSZone *zone) -{ - unichar *characters = NSZoneMalloc(zone, sizeof(unichar) * length); - int i; - - for (i = 0; i < length; i++) { - characters[i] = _mapWin1252ToUnichar(cString[i]); - } - - *resultLength = i; - return characters; -} - -char *NSUnicodeToWin1252(const unichar *characters, NSUInteger length, - BOOL lossy, NSUInteger *resultLength, NSZone *zone, - BOOL zeroTerminate) -{ - char *win1252 = NSZoneMalloc( - zone, sizeof(char) * (length + (zeroTerminate == YES ? 1 : 0))); - int i; - - for (i = 0; i < length; i++) { - - if (characters[i] <= 256 && - !(characters[i] >= 0x80 && characters[i] <= 0x9F)) - win1252[i] = characters[i]; - else { - - static int size = sizeof(mapping_array) / sizeof(mapping_array[0]); - int j = 0; - BOOL found = NO; - - for (; j < size; j++) { - if (mapping_array[j].unicode == characters[i] && - characters[i] != UNDEFINED_UNICODE) { - win1252[i] = mapping_array[j].win1252; - found = YES; - break; - } - } - if (!found) { - if (lossy) - win1252[i] = '\0'; - else { - NSZoneFree(zone, win1252); - return NULL; - } - } - } - } - if (zeroTerminate == YES) { - win1252[i++] = '\0'; - } - *resultLength = i; - - return win1252; -} - -NSString *NSWin1252CStringNewWithCharacters(NSZone *zone, - const unichar *characters, - NSUInteger length, BOOL lossy) -{ - NSString *string; - NSUInteger bytesLength; - char *bytes; - - bytes = NSUnicodeToWin1252(characters, length, lossy, &bytesLength, zone, - NO); - - if (bytes == NULL) - string = nil; - else { - string = NSString_win1252NewWithBytes(zone, bytes, bytesLength); - NSZoneFree(zone, bytes); - } - - return string; -} - -NSUInteger NSGetWin1252CStringWithMaxLength(const unichar *characters, - NSUInteger length, - NSUInteger *location, char *cString, - NSUInteger maxLength, BOOL lossy) -{ - NSUInteger i, result = 0; - - if (length + 1 > maxLength) { - cString[0] = '\0'; - return NSNotFound; - } - for (i = 0; i < length && result <= maxLength; i++) { - const unichar code = characters[i]; - - if (code <= 256 && !(code >= 0x80 && code <= 0x9F)) - cString[result++] = code; - else { - unsigned char j; - - for (j = 0x80; j <= 0x9F; j++) - if (code == _mapWin1252ToUnichar(j)) - break; - - if (j <= 0x9F) - cString[result++] = j; - else if (lossy) - cString[result++] = '\0'; - else { - return NSNotFound; - } - } - } - - cString[result] = '\0'; - - *location = i; - - return result; -} - -@implementation NSString_win1252 - -NSString *NSString_win1252NewWithBytes(NSZone *zone, const char *bytes, - NSUInteger length) -{ - NSString_win1252 *self = NSAllocateObject([NSString_win1252 class], - length * sizeof(char), zone); - - if (self) { - self->_length = length; - int i; - for (i = 0; i < length; i++) { - unsigned char c = ((uint8_t *) bytes)[i]; - self->_bytes[i] = c; - if (_mapWin1252ToUnichar(c) == UNDEFINED_UNICODE) { - [self release]; - return nil; - } - } - self->_bytes[i] = '\0'; - } - return self; -} - -- (NSUInteger) length { - return _length; -} - -- (unichar) characterAtIndex: (NSUInteger) location { - if (location >= _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"index %d beyond length %d", location, [self length]); - } - - return _mapWin1252ToUnichar(_bytes[location]); -} - -- (void) getCharacters: (unichar *) buffer { - int i; - - for (i = 0; i < _length; i++) - buffer[i] = _mapWin1252ToUnichar(_bytes[i]); -} - -- (void) getCharacters: (unichar *) buffer range: (NSRange) range { - NSInteger i, loc = range.location, len = range.length; - - if (NSMaxRange(range) > _length) { - NSRaiseException(NSRangeException, self, _cmd, - @"range %@ beyond length %d", NSStringFromRange(range), - [self length]); - } - - for (i = 0; i < len; i++) - buffer[i] = _mapWin1252ToUnichar(_bytes[loc + i]); -} - -@end diff --git a/Foundation/NSString/NSUnicodeCaseMapping.h b/Foundation/NSString/NSUnicodeCaseMapping.h deleted file mode 100644 index 6069282e..00000000 --- a/Foundation/NSString/NSUnicodeCaseMapping.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -void NSUnicodeToUppercase(unichar *characters, NSUInteger length); -void NSUnicodeToLowercase(unichar *characters, NSUInteger length); -void NSUnicodeToCapitalized(unichar *characters, NSUInteger length); - -unichar *NSUnicodeFromBytes(const unsigned char *bytes, NSUInteger length, - NSUInteger *resultLengthp); -unichar *NSUnicodeFromBytesUTF16BigEndian(const unsigned char *bytes, - NSUInteger length, - NSUInteger *resultLengthp); -unichar *NSUnicodeFromBytesUTF16LittleEndian(const unsigned char *bytes, - NSUInteger length, - NSUInteger *resultLengthp); diff --git a/Foundation/NSString/NSUnicodeCaseMapping.m b/Foundation/NSString/NSUnicodeCaseMapping.m deleted file mode 100644 index 2e10e361..00000000 --- a/Foundation/NSString/NSUnicodeCaseMapping.m +++ /dev/null @@ -1,858 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -// Unicode 1.1.5 - -#if 0 -0061 0041 -0062 0042 -0063 0043 -0064 0044 -0065 0045 -0066 0046 -0067 0047 -0068 0048 -0069 0049 -006A 004A -006B 004B -006C 004C -006D 004D -006E 004E -006F 004F -0070 0050 -0071 0051 -0072 0052 -0073 0053 -0074 0054 -0075 0055 -0076 0056 -0077 0057 -0078 0058 -0079 0059 -007A 005A - -00E0 00C0 -00E1 00C1 -00E2 00C2 -00E3 00C3 -00E4 00C4 -00E5 00C5 -00E6 00C6 -00E7 00C7 -00E8 00C8 -00E9 00C9 -00EA 00CA -00EB 00CB -00EC 00CC -00ED 00CD -00EE 00CE -00EF 00CF -00F0 00D0 -00F1 00D1 -00F2 00D2 -00F3 00D3 -00F4 00D4 -00F5 00D5 -00F6 00D6 -00F8 00D8 -00F9 00D9 -00FA 00DA -00FB 00DB -00FC 00DC -00FD 00DD -00FE 00DE -00FF 0178 - -0101 0100 -0103 0102 -0105 0104 -0107 0106 -0109 0108 -010B 010A -010D 010C -010F 010E -0111 0110 -0113 0112 -0115 0114 -0117 0116 -0119 0118 -011B 011A -011D 011C -011F 011E -0121 0120 -0123 0122 -0125 0124 -0127 0126 -0129 0128 -012B 012A -012D 012C -012F 012E -0133 0132 -0135 0134 -0137 0136 -013A 0139 -013C 013B -013E 013D -0140 013F -0142 0141 -0144 0143 -0146 0145 -0148 0147 -014B 014A -014D 014C -014F 014E -0151 0150 -0153 0152 -0155 0154 -0157 0156 -0159 0158 -015B 015A -015D 015C -015F 015E -0161 0160 -0163 0162 -0165 0164 -0167 0166 -0169 0168 -016B 016A -016D 016C -016F 016E -0171 0170 -0173 0172 -0175 0174 -0177 0176 -017A 0179 -017C 017B -017E 017D -017F 0053 -0183 0182 -0185 0184 -0188 0187 -018C 018B -0192 0191 -0199 0198 -01A1 01A0 -01A3 01A2 -01A5 01A4 -01A8 01A7 -01AD 01AC -01B0 01AF -01B4 01B3 -01B6 01B5 -01B9 01B8 -01BD 01BC -01C5 01C4 -01C6 01C4 -01C8 01C7 -01C9 01C7 -01CB 01CA -01CC 01CA -01CE 01CD -01D0 01CF -01D2 01D1 -01D4 01D3 -01D6 01D5 -01D8 01D7 -01DA 01D9 -01DC 01DB -01DF 01DE -01E1 01E0 -01E3 01E2 -01E5 01E4 -01E7 01E6 -01E9 01E8 -01EB 01EA -01ED 01EC -01EF 01EE -01F2 01F1 -01F3 01F1 -01F5 01F4 -01FB 01FA -01FD 01FC -01FF 01FE - -0201 0200 -0203 0202 -0205 0204 -0207 0206 -0209 0208 -020B 020A -020D 020C -020F 020E -0211 0210 -0213 0212 -0215 0214 -0217 0216 -0253 0181 -0254 0186 -0257 018A -0258 018E -0259 018F -025B 0190 -0260 0193 -0263 0194 -0268 0197 -0269 0196 -026F 019C -0272 019D -0283 01A9 -0288 01AE -028A 01B1 -028B 01B2 -0292 01B7 -03AC 0386 -03AD 0388 -03AE 0389 -03AF 038A -03B1 0391 -03B2 0392 -03B3 0393 -03B4 0394 -03B5 0395 -03B6 0396 -03B7 0397 -03B8 0398 -03B9 0399 -03BA 039A -03BB 039B -03BC 039C -03BD 039D -03BE 039E -03BF 039F -03C0 03A0 -03C1 03A1 -03C3 03A3 -03C4 03A4 -03C5 03A5 -03C6 03A6 -03C7 03A7 -03C8 03A8 -03C9 03A9 -03CA 03AA -03CB 03AB -03CC 038C -03CD 038E -03CE 038F -03D0 0392 -03D1 0398 -03D5 03A6 -03D6 03A0 -03E3 03E2 -03E5 03E4 -03E7 03E6 -03E9 03E8 -03EB 03EA -03ED 03EC -03EF 03EE -03F0 039A -03F1 03A1 -0430 0410 -0431 0411 -0432 0412 -0433 0413 -0434 0414 -0435 0415 -0436 0416 -0437 0417 -0438 0418 -0439 0419 -043A 041A -043B 041B -043C 041C -043D 041D -043E 041E -043F 041F -0440 0420 -0441 0421 -0442 0422 -0443 0423 -0444 0424 -0445 0425 -0446 0426 -0447 0427 -0448 0428 -0449 0429 -044A 042A -044B 042B -044C 042C -044D 042D -044E 042E -044F 042F -0451 0401 -0452 0402 -0453 0403 -0454 0404 -0455 0405 -0456 0406 -0457 0407 -0458 0408 -0459 0409 -045A 040A -045B 040B -045C 040C -045E 040E -045F 040F -0461 0460 -0463 0462 -0465 0464 -0467 0466 -0469 0468 -046B 046A -046D 046C -046F 046E -0471 0470 -0473 0472 -0475 0474 -0477 0476 -0479 0478 -047B 047A -047D 047C -047F 047E -0481 0480 -0491 0490 -0493 0492 -0495 0494 -0497 0496 -0499 0498 -049B 049A -049D 049C -049F 049E -04A1 04A0 -04A3 04A2 -04A5 04A4 -04A7 04A6 -04A9 04A8 -04AB 04AA -04AD 04AC -04AF 04AE -04B1 04B0 -04B3 04B2 -04B5 04B4 -04B7 04B6 -04B9 04B8 -04BB 04BA -04BD 04BC -04BF 04BE -04C2 04C1 -04C4 04C3 -04C8 04C7 -04CC 04CB -04D1 04D0 -04D3 04D2 -04D5 04D4 -04D7 04D6 -04D9 04D8 -04DB 04DA -04DD 04DC -04DF 04DE -04E1 04E0 -04E3 04E2 -04E5 04E4 -04E7 04E6 -04E9 04E8 -04EB 04EA -04EF 04EE -04F1 04F0 -04F3 04F2 -04F5 04F4 -04F9 04F8 -0561 0531 -0562 0532 -0563 0533 -0564 0534 -0565 0535 -0566 0536 -0567 0537 -0568 0538 -0569 0539 -056A 053A -056B 053B -056C 053C -056D 053D -056E 053E -056F 053F -0570 0540 -0571 0541 -0572 0542 -0573 0543 -0574 0544 -0575 0545 -0576 0546 -0577 0547 -0578 0548 -0579 0549 -057A 054A -057B 054B -057C 054C -057D 054D -057E 054E -057F 054F -0580 0550 -0581 0551 -0582 0552 -0583 0553 -0584 0554 -0585 0555 -0586 0556 -1E01 1E00 -1E03 1E02 -1E05 1E04 -1E07 1E06 -1E09 1E08 -1E0B 1E0A -1E0D 1E0C -1E0F 1E0E -1E11 1E10 -1E13 1E12 -1E15 1E14 -1E17 1E16 -1E19 1E18 -1E1B 1E1A -1E1D 1E1C -1E1F 1E1E -1E21 1E20 -1E23 1E22 -1E25 1E24 -1E27 1E26 -1E29 1E28 -1E2B 1E2A -1E2D 1E2C -1E2F 1E2E -1E31 1E30 -1E33 1E32 -1E35 1E34 -1E37 1E36 -1E39 1E38 -1E3B 1E3A -1E3D 1E3C -1E3F 1E3E -1E41 1E40 -1E43 1E42 -1E45 1E44 -1E47 1E46 -1E49 1E48 -1E4B 1E4A -1E4D 1E4C -1E4F 1E4E -1E51 1E50 -1E53 1E52 -1E55 1E54 -1E57 1E56 -1E59 1E58 -1E5B 1E5A -1E5D 1E5C -1E5F 1E5E -1E61 1E60 -1E63 1E62 -1E65 1E64 -1E67 1E66 -1E69 1E68 -1E6B 1E6A -1E6D 1E6C -1E6F 1E6E -1E71 1E70 -1E73 1E72 -1E75 1E74 -1E77 1E76 -1E79 1E78 -1E7B 1E7A -1E7D 1E7C -1E7F 1E7E -1E81 1E80 -1E83 1E82 -1E85 1E84 -1E87 1E86 -1E89 1E88 -1E8B 1E8A -1E8D 1E8C -1E8F 1E8E -1E91 1E90 -1E93 1E92 -1E95 1E94 -1EA1 1EA0 -1EA3 1EA2 -1EA5 1EA4 -1EA7 1EA6 -1EA9 1EA8 -1EAB 1EAA -1EAD 1EAC -1EAF 1EAE -1EB1 1EB0 -1EB3 1EB2 -1EB5 1EB4 -1EB7 1EB6 -1EB9 1EB8 -1EBB 1EBA -1EBD 1EBC -1EBF 1EBE -1EC1 1EC0 -1EC3 1EC2 -1EC5 1EC4 -1EC7 1EC6 -1EC9 1EC8 -1ECB 1ECA -1ECD 1ECC -1ECF 1ECE -1ED1 1ED0 -1ED3 1ED2 -1ED5 1ED4 -1ED7 1ED6 -1ED9 1ED8 -1EDB 1EDA -1EDD 1EDC -1EDF 1EDE -1EE1 1EE0 -1EE3 1EE2 -1EE5 1EE4 -1EE7 1EE6 -1EE9 1EE8 -1EEB 1EEA -1EED 1EEC -1EEF 1EEE -1EF1 1EF0 -1EF3 1EF2 -1EF5 1EF4 -1EF7 1EF6 -1EF9 1EF8 -1F00 1F08 -1F01 1F09 -1F02 1F0A -1F03 1F0B -1F04 1F0C -1F05 1F0D -1F06 1F0E -1F07 1F0F -1F10 1F18 -1F11 1F19 -1F12 1F1A -1F13 1F1B -1F14 1F1C -1F15 1F1D -1F20 1F28 -1F21 1F29 -1F22 1F2A -1F23 1F2B -1F24 1F2C -1F25 1F2D -1F26 1F2E -1F27 1F2F -1F30 1F38 -1F31 1F39 -1F32 1F3A -1F33 1F3B -1F34 1F3C -1F35 1F3D -1F36 1F3E -1F37 1F3F -1F40 1F48 -1F41 1F49 -1F42 1F4A -1F43 1F4B -1F44 1F4C -1F45 1F4D -1F51 1F59 -1F53 1F5B -1F55 1F5D -1F57 1F5F -1F60 1F68 -1F61 1F69 -1F62 1F6A -1F63 1F6B -1F64 1F6C -1F65 1F6D -1F66 1F6E -1F67 1F6F -1F70 1FBA -1F71 1FBB -1F72 1FC8 -1F73 1FC9 -1F74 1FCA -1F75 1FCB -1F76 1FDA -1F77 1FDB -1F78 1FF8 -1F79 1FF9 -1F7A 1FEA -1F7B 1FEB -1F7C 1FFA -1F7D 1FFB -1F80 1F88 -1F81 1F89 -1F82 1F8A -1F83 1F8B -1F84 1F8C -1F85 1F8D -1F86 1F8E -1F87 1F8F -1F90 1F98 -1F91 1F99 -1F92 1F9A -1F93 1F9B -1F94 1F9C -1F95 1F9D -1F96 1F9E -1F97 1F9F -1FA0 1FA8 -1FA1 1FA9 -1FA2 1FAA -1FA3 1FAB -1FA4 1FAC -1FA5 1FAD -1FA6 1FAE -1FA7 1FAF -1FB0 1FB8 -1FB1 1FB9 -1FB3 1FBC -1FC3 1FCC -1FD0 1FD8 -1FD1 1FD9 -1FE0 1FE8 -1FE1 1FE9 -1FE5 1FEC -1FF3 1FFC -2170 2160 -2171 2161 -2172 2162 -2173 2163 -2174 2164 -2175 2165 -2176 2166 -2177 2167 -2178 2168 -2179 2169 -217A 216A -217B 216B -217C 216C -217D 216D -217E 216E -217F 216F -24D0 24B6 -24D1 24B7 -24D2 24B8 -24D3 24B9 -24D4 24BA -24D5 24BB -24D6 24BC -24D7 24BD -24D8 24BE -24D9 24BF -24DA 24C0 -24DB 24C1 -24DC 24C2 -24DD 24C3 -24DE 24C4 -24DF 24C5 -24E0 24C6 -24E1 24C7 -24E2 24C8 -24E3 24C9 -24E4 24CA -24E5 24CB -24E6 24CC -24E7 24CD -24E8 24CE -24E9 24CF - -FF41 FF21 -FF42 FF22 -FF43 FF23 -FF44 FF24 -FF45 FF25 -FF46 FF26 -FF47 FF27 -FF48 FF28 -FF49 FF29 -FF4A FF2A -FF4B FF2B -FF4C FF2C -FF4D FF2D -FF4E FF2E -FF4F FF2F -FF50 FF30 -FF51 FF31 -FF52 FF32 -FF53 FF33 -FF54 FF34 -FF55 FF35 -FF56 FF36 -FF57 FF37 -FF58 FF38 -FF59 FF39 -FF5A FF3A -#endif - -static unichar _toUpperCase(unichar character) { - if (character >= 'a' && character <= 'z') - return character - ('a' - 'A'); - return character; -} - -// FIX -void NSUnicodeToUppercase(unichar *characters, NSUInteger length) { - NSUInteger i; - - for (i = 0; i < length; i++) - characters[i] = _toUpperCase(characters[i]); -} - -static unichar _toLowerCase(unichar character) { - if (character >= 'A' && character <= 'Z') - return character + ('a' - 'A'); - return character; -} - -// FIX -void NSUnicodeToLowercase(unichar *characters, NSUInteger length) { - NSUInteger i; - - for (i = 0; i < length; i++) - characters[i] = _toLowerCase(characters[i]); -} - -void NSUnicodeToCapitalized(unichar *characters, NSUInteger length) { - NSUInteger i; - unichar prev = ' '; - - for (i = 0; i < length; i++) { - if (prev == ' ') - characters[i] = _toUpperCase(characters[i]); - else - characters[i] = characters[i]; - - prev = characters[i]; - } -} - -unichar *NSUnicodeFromBytes(const unsigned char *bytes, NSUInteger length, - NSUInteger *resultLengthp) -{ - NSUInteger i, resultLength, resultIndex = 0; - BOOL swap = NO; - unichar *result; - - if (length % 2 != 0) - [NSException raise: NSInvalidArgumentException - format: @"length of unicode NSData is not even (length=%d)", - length]; - - if (length < 2) - i = 0; - else if (bytes[0] == 0xFE && bytes[1] == 0xFF) - i = 2; - else if (bytes[0] == 0xFF && bytes[1] == 0xFE) { - swap = YES; - i = 2; - } else - i = 0; - - resultLength = (length - i) / 2; - result = NSZoneMalloc(NULL, sizeof(unichar) * resultLength); - - if (!swap) { - for (; i < length; i += 2) { - unichar high = bytes[i]; - unichar low = bytes[i + 1]; - - result[resultIndex++] = (high << 8) | low; - } - } else { - for (; i < length; i += 2) { - unichar low = bytes[i]; - unichar high = bytes[i + 1]; - - result[resultIndex++] = (high << 8) | low; - } - } - - *resultLengthp = resultLength; - - return result; -} - -unichar *NSUnicodeFromBytesUTF16BigEndian(const unsigned char *bytes, - NSUInteger length, - NSUInteger *resultLengthp) -{ - NSUInteger i, resultLength, resultIndex = 0; - unichar *result; - - if (length % 2 != 0) - [NSException raise: NSInvalidArgumentException - format: @"length of unicode NSData is not even (length=%d)", - length]; - - resultLength = length / 2; - result = NSZoneMalloc(NULL, sizeof(unichar) * resultLength); - - i = 0; - BOOL skippedMarker = NO; - if (bytes[0] == 0xFE && bytes[1] == 0xFF) { - i = 2; // Skip the marker word - internal Unicode rep doesn't use it. - skippedMarker = YES; - } - for (; i < length; i += 2) { - unichar high = bytes[i]; - unichar low = bytes[i + 1]; - - result[resultIndex++] = (high << 8) | low; - } - - *resultLengthp = resultLength - - ((skippedMarker) ? 2 : 0); // we skipped the marker word - - return result; -} - -unichar *NSUnicodeFromBytesUTF16LittleEndian(const unsigned char *bytes, - NSUInteger length, - NSUInteger *resultLengthp) -{ - NSUInteger i, resultLength, resultIndex = 0; - unichar *result; - - if (length % 2 != 0) - [NSException raise: NSInvalidArgumentException - format: @"length of unicode NSData is not even (length=%d)", - length]; - - resultLength = length / 2; - result = NSZoneMalloc(NULL, sizeof(unichar) * resultLength); - - i = 0; - BOOL skippedMarker = NO; - if (bytes[0] == 0xFF && bytes[1] == 0xFE) { - i = 2; // Skip the marker word - internal Unicode rep doesn't use it. - skippedMarker = YES; - } - for (; i < length; i += 2) { - unichar high = bytes[i + 1]; - unichar low = bytes[i]; - - result[resultIndex++] = (high << 8) | low; - } - - *resultLengthp = resultLength - - ((skippedMarker) ? 2 : 0); // we skipped the marker word - - return result; -} diff --git a/Foundation/NSString/unibuffer.h b/Foundation/NSString/unibuffer.h deleted file mode 100644 index 34cfefae..00000000 --- a/Foundation/NSString/unibuffer.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -typedef struct { - NSUInteger length; - unichar *characters; -} unibuffer; - -static inline unibuffer NewUnibufferWithString(NSString *string) { - unibuffer result; - - result.length = [string length]; - result.characters = NSZoneMalloc(NSDefaultMallocZone(), - sizeof(unichar) * result.length); - - [string getCharacters: result.characters]; - - return result; -} - -static inline void FreeUnibuffer(unibuffer buffer) { - NSZoneFree(NSDefaultMallocZone(), buffer.characters); -} diff --git a/Foundation/NSString/unibuffer.m b/Foundation/NSString/unibuffer.m deleted file mode 100644 index bf357953..00000000 --- a/Foundation/NSString/unibuffer.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/Foundation/NSStringsFileFormat/NSStringsFileParser.h b/Foundation/NSStringsFileFormat/NSStringsFileParser.h deleted file mode 100644 index 59775195..00000000 --- a/Foundation/NSStringsFileFormat/NSStringsFileParser.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDictionary; - -NSDictionary *NSDictionaryFromStringsFormatString(NSString *string); -NSDictionary *NSDictionaryFromStringsFormatFile(NSString *path); diff --git a/Foundation/NSStringsFileFormat/NSStringsFileParser.m b/Foundation/NSStringsFileFormat/NSStringsFileParser.m deleted file mode 100644 index b4ba1018..00000000 --- a/Foundation/NSStringsFileFormat/NSStringsFileParser.m +++ /dev/null @@ -1,385 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import - -static inline unsigned short SwapWord(unsigned short w) { - unsigned short hi = w >> 8; - unsigned short lo = w & 0xFF; - - return (lo << 8) | hi; -} - -static inline unsigned short PickWord(unsigned short w) { - return w; -} - -static NSArray *error(NSArray *array, unichar *buffer, NSString *fmt, ...) { - va_list list; - va_start(list, fmt); - - [array release]; - if (buffer != NULL) - NSZoneFree(NSZoneFromPointer(buffer), buffer); - - NSLogv(fmt, list); - va_end(list); - - return nil; -} - -static NSArray *stringListFromBytes(const unichar unicode[], NSInteger length) { - NSMutableArray *array = - [[NSMutableArray allocWithZone: NULL] initWithCapacity: 1024]; - NSInteger index; - NSUInteger bufferCount = 0, bufferCapacity = 2048; - unichar *buffer = NSZoneMalloc(NSDefaultMallocZone(), - bufferCapacity * sizeof(unichar)); - - enum { - STATE_WHITESPACE, - STATE_COMMENT_SLASH, - STATE_COMMENT, - STATE_COMMENT_STAR, - STATE_STRING, - STATE_STRING_KEY, - STATE_STRING_SLASH, - STATE_STRING_SLASH_X00, - STATE_STRING_SLASH_XX0 - } state = STATE_WHITESPACE; - enum { - EXPECT_KEY, - EXPECT_EQUAL_SEMI, - EXPECT_VAL, - EXPECT_SEMI - } expect = EXPECT_KEY; - - unichar (*mapUC)(unichar); - if (unicode[0] == 0xFFFE) { - // reverse endianness - mapUC = SwapWord; - index = 1; - } else if (unicode[0] == 0xFEFF) { - // native endianness - mapUC = PickWord; - index = 1; - } else { - // no BOM, assume native endianness - mapUC = PickWord; - index = 0; - } - - // Remove the linefeed at the end of the file (if there is one) - // Not sure what the length >>= 1 is doing for us - length is the right - // number - if (mapUC(unicode[(length >>= 1) - 1]) == 0x0A) - length--; - - // Now iterate over the unichar words skipping the endianness marker word if - // necessary) - for (; index < length; index++) { - - // Get the unichar in native format - unichar code = mapUC(unicode[index]); - - switch (state) { - - case STATE_WHITESPACE: - // We're looking for anything non-whitespace - if (code == '/') - // Found what looks like the start of a comment; a '*" should - // come next - state = STATE_COMMENT_SLASH; - // An '=' in the middle of whitespace is only valid if we're looking - // for the value after finding a key - else if (code == '=') { - if (expect == EXPECT_EQUAL_SEMI) - expect = EXPECT_VAL; - else - return error(array, buffer, - @"unexpected character %02X '%C' at %d", code, - code, index); - } else if (code == ';') { - // A semi-colon means we're at the end of a key value pair so - // start expecting a new key - if (expect == EXPECT_SEMI) - expect = EXPECT_KEY; - else if (expect == EXPECT_EQUAL_SEMI) { - // Special case where the value is the same as the key (and - // thus not present in the file) not sure if this is a bodge - // or what but we just add the key again as the value And - // start expecting a new key - expect = EXPECT_KEY; - [array addObject: [array lastObject]]; - } else - return error(array, buffer, - @"unexpected character %02X '%C' at %d", code, - code, index); - } else if (code == '\"') { - // A quote by itself that's not starting a key or value is a big - // no no - if (expect != EXPECT_KEY && expect != EXPECT_VAL) - return error(array, buffer, - @"unexpected character %02X '%C' at %d", code, - code, index); - - // Start looking for string within the quotes - bufferCount = 0; - state = STATE_STRING; - } else if (code > ' ') { - // Not sure what non-white space really should mean - but we're - // interpreting as a STATE_STRING_KEY - if (expect != EXPECT_KEY) - return error(array, buffer, - @"unexpected character %02X '%C' at %d", code, - code, index); - - buffer[0] = code; - bufferCount = 1; - state = STATE_STRING_KEY; - } - break; - - case STATE_COMMENT_SLASH: - if (code == '*') - // Looks like we've found a comment - state = STATE_COMMENT; - else - return error(array, buffer, - @"unexpected character %02X '%C',after /", code, - code); - break; - - case STATE_COMMENT: - if (code == '*') - // Perhaps we're hitting the end of the comment? - state = STATE_COMMENT_STAR; - break; - - case STATE_COMMENT_STAR: - if (code == '/') - // Yep we're at the end - switch back to looking at whitespace - state = STATE_WHITESPACE; - else if (code != '*') - // I guess we're not there yet - state = STATE_COMMENT; - break; - - case STATE_STRING_KEY: - switch (code) { - // I guess a '"' is not valid in this special state? - case '\"': - return error(array, buffer, - @"unexpected character %02X '%C' at %d", code, - code, index); - case '=': - // Uh-oh we're going backwards now... - index -= 2; - case ' ': - // And now we're diddling the code - STATE_STRING_KEY is very - // magic! - code = '\"'; - } - case STATE_STRING: - if (code == '\"') { - // We've found a key or value - NSString *string = [[NSString allocWithZone: NULL] - initWithCharacters: buffer - length: bufferCount]; - - // So save it off - [array addObject: string]; - [string release]; - // Switch back to looking at whitespace - state = STATE_WHITESPACE; - - if (expect == EXPECT_KEY) - // If we found a key then we're looking for "=" or ";" - expect = EXPECT_EQUAL_SEMI; - else - // Else we found a value so look for a ";" - expect = EXPECT_SEMI; - } else { - // accumulate the unichars of the string in a buffer - if (bufferCount >= bufferCapacity) { - bufferCapacity *= 2; - buffer = NSZoneRealloc(NSZoneFromPointer(buffer), buffer, - bufferCapacity * sizeof(unichar)); - } - if (code == '\\') - // Apparently escaped chars can be embedded in the string so - // look for that - state = STATE_STRING_SLASH; - else - buffer[bufferCount++] = code; - } - break; - - case STATE_STRING_SLASH: - switch (code) { - // Handle the escaped char in the string - case 'a': - buffer[bufferCount++] = '\a'; - state = STATE_STRING; - break; - case 'b': - buffer[bufferCount++] = '\b'; - state = STATE_STRING; - break; - case 'f': - buffer[bufferCount++] = '\f'; - state = STATE_STRING; - break; - case 'n': - buffer[bufferCount++] = '\n'; - state = STATE_STRING; - break; - case 'r': - buffer[bufferCount++] = '\r'; - state = STATE_STRING; - break; - case 't': - buffer[bufferCount++] = '\t'; - state = STATE_STRING; - break; - case 'v': - buffer[bufferCount++] = '\v'; - state = STATE_STRING; - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - buffer[bufferCount++] = code - '0'; - state = STATE_STRING_SLASH_X00; - break; - - default: - buffer[bufferCount++] = code; - state = STATE_STRING; - break; - } - break; - - case STATE_STRING_SLASH_X00: - if (code < '0' || code > '7') { - state = STATE_STRING; - index--; - } else { - state = STATE_STRING_SLASH_XX0; - buffer[bufferCount - 1] *= 8; - buffer[bufferCount - 1] += code - '0'; - } - break; - - case STATE_STRING_SLASH_XX0: - state = STATE_STRING; - if (code < '0' || code > '7') - index--; - else { - buffer[bufferCount - 1] *= 8; - buffer[bufferCount - 1] += code - '0'; - } - break; - } - } - - NSZoneFree(NSZoneFromPointer(buffer), buffer); - - // We better not be in the middle of parsing something important when we ran - // out of chars! - if (state != STATE_WHITESPACE) - return error(array, NULL, @"unexpected EOF\n"); - - // or expecting something important either - switch (expect) { - case EXPECT_EQUAL_SEMI: - return error(array, NULL, @"unexpected EOF, expecting = or ;"); - - case EXPECT_VAL: - return error(array, NULL, @"unexpected EOF, expecting value"); - - case EXPECT_SEMI: - return error(array, NULL, @"unexpected EOF, expecting ;"); - - default: - break; - } - - return array; -} - -NSDictionary *NSDictionaryFromStringsFormatData(NSData *data) { - NSArray *array = - stringListFromBytes((unichar *) [data bytes], [data length]); - NSDictionary *dictionary; - id *keys, *values; - NSInteger i, count; - - if (array == nil) - return nil; - - count = [array count] / 2; - - keys = __builtin_alloca(sizeof(id) * count); - values = __builtin_alloca(sizeof(id) * count); - - for (i = 0; i < count; i++) { - keys[i] = [array objectAtIndex: i * 2]; - values[i] = [array objectAtIndex: i * 2 + 1]; - } - - dictionary = [[[NSDictionary allocWithZone: NULL] initWithObjects: values - forKeys: keys - count: count] - autorelease]; - - [array release]; - - return dictionary; -} - -NSDictionary *NSDictionaryFromStringsFormatString(NSString *string) { - NSData *data = [string dataUsingEncoding: NSUnicodeStringEncoding]; - return NSDictionaryFromStringsFormatData(data); -} - -NSDictionary *NSDictionaryFromStringsFormatFile(NSString *path) { - NSData *data; - NSDictionary *dictionary; - - if ((data = [[NSData allocWithZone: NULL] - initWithContentsOfMappedFile: path]) == nil) - return nil; - - dictionary = NSDictionaryFromStringsFormatData(data); - - [data release]; - - return dictionary; -} diff --git a/Foundation/NSTask.h b/Foundation/NSTask.h deleted file mode 100644 index 3744449b..00000000 --- a/Foundation/NSTask.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSDictionary; - -FOUNDATION_EXPORT NSString *const NSTaskDidTerminateNotification; - -@interface NSTask : NSObject { - NSString *launchPath; - NSArray *arguments; - NSString *currentDirectoryPath; - NSDictionary *environment; - - id standardInput; - id standardOutput; - id standardError; -} - -+ (NSTask *) launchedTaskWithLaunchPath: (NSString *) path - arguments: (NSArray *) arguments; - -- init; - -- (NSString *) currentDirectoryPath; -- (NSString *) launchPath; -- (NSArray *) arguments; -- (NSDictionary *) environment; - -- (id) standardError; -- (id) standardInput; -- (id) standardOutput; - -- (void) setCurrentDirectoryPath: (NSString *) path; -- (void) setLaunchPath: (NSString *) path; -- (void) setArguments: (NSArray *) arguments; -- (void) setEnvironment: (NSDictionary *) values; - -- (void) setStandardInput: (id) input; -- (void) setStandardOutput: (id) output; -- (void) setStandardError: (id) error; - -- (void) launch; -- (BOOL) isRunning; - -- (void) interrupt; - -- (BOOL) suspend; -- (BOOL) resume; - -- (void) terminate; -- (int) terminationStatus; - -- (void) waitUntilExit; - -- (int) processIdentifier; - -@end diff --git a/Foundation/NSTask.m b/Foundation/NSTask.m deleted file mode 100644 index 87c4211b..00000000 --- a/Foundation/NSTask.m +++ /dev/null @@ -1,183 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - 2009 Markus Hitter - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import - -NSString *const NSTaskDidTerminateNotification = - @"NSTaskDidTerminateNotification"; - -@implementation NSTask - -+ allocWithZone: (NSZone *) zone { - if (self == [NSTask class]) - return NSAllocateObject([[NSPlatform currentPlatform] taskClass], 0, - zone); - else - return NSAllocateObject(self, 0, zone); -} - -+ (NSTask *) launchedTaskWithLaunchPath: (NSString *) path - arguments: (NSArray *) arguments -{ - NSTask *task = [[NSTask new] autorelease]; - [task setLaunchPath: path]; - [task setArguments: arguments]; - [task launch]; - return task; -} - -- init { - self = [super init]; - if (self != nil) { - launchPath = nil; - arguments = nil; - currentDirectoryPath = - [[[NSFileManager defaultManager] currentDirectoryPath] copy]; - standardInput = nil; - standardOutput = nil; - standardError = nil; - } - return self; -} - -- (void) dealloc { - [launchPath release]; - [arguments release]; - [currentDirectoryPath release]; - [standardInput release]; - [standardOutput release]; - [standardError release]; - [environment release]; - [super dealloc]; -} - -- (NSString *) currentDirectoryPath { - return currentDirectoryPath; -} - -- (NSString *) launchPath { - return launchPath; -} - -- (NSArray *) arguments { - return arguments; -} - -- (NSDictionary *) environment { - return environment; -} - -- (id) standardError { - return standardError; -} - -- (id) standardInput { - return standardInput; -} - -- (id) standardOutput { - return standardOutput; -} - -- (void) setCurrentDirectoryPath: (NSString *) path { - [currentDirectoryPath autorelease]; - currentDirectoryPath = [path copy]; -} - -- (void) setLaunchPath: (NSString *) path { - [launchPath autorelease]; - launchPath = [path copy]; -} - -- (void) setArguments: (NSArray *) args { - [arguments autorelease]; - arguments = [args copy]; -} - -- (void) setEnvironment: (NSDictionary *) values { - [environment autorelease]; - environment = [values copy]; -} - -- (void) setStandardInput: (id) input { - [standardInput autorelease]; - standardInput = [input retain]; -} - -- (void) setStandardOutput: (id) output { - [standardOutput autorelease]; - standardOutput = [output retain]; -} - -- (void) setStandardError: (id) error { - [standardError autorelease]; - standardError = [error retain]; -} - -- (void) launch { - NSInvalidAbstractInvocation(); -} - -- (BOOL) isRunning { - NSInvalidAbstractInvocation(); - return NO; -} - -- (void) interrupt { - NSInvalidAbstractInvocation(); -} - -- (BOOL) suspend { - NSInvalidAbstractInvocation(); - return NO; -} - -- (BOOL) resume { - NSInvalidAbstractInvocation(); - return NO; -} - -- (void) terminate { - NSInvalidAbstractInvocation(); -} - -- (int) terminationStatus { - NSInvalidAbstractInvocation(); - return -1; -} - -- (void) waitUntilExit { - while ([self isRunning]) { - [[NSRunLoop currentRunLoop] - runMode: NSDefaultRunLoopMode - beforeDate: [NSDate dateWithTimeIntervalSinceNow: 0.25]]; - } -} - -- (int) processIdentifier { - NSInvalidAbstractInvocation(); - return -1; -} - -@end diff --git a/Foundation/NSTextCheckingResult.h b/Foundation/NSTextCheckingResult.h deleted file mode 100644 index 1b22c471..00000000 --- a/Foundation/NSTextCheckingResult.h +++ /dev/null @@ -1,87 +0,0 @@ -#import -#import -#import - -@class NSDictionary, NSURL, NSOrthography; - -FOUNDATION_EXPORT NSString *const NSTextCheckingNameKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingJobTitleKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingOrganizationKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingStreetKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingCityKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingStateKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingZIPKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingCountryKey; -FOUNDATION_EXPORT NSString *const NSTextCheckingPhoneKey; - -enum { - NSTextCheckingTypeOrthography = 1ULL << 0, - NSTextCheckingTypeSpelling = 1ULL << 1, - NSTextCheckingTypeGrammar = 1ULL << 2, - NSTextCheckingTypeDate = 1ULL << 3, - NSTextCheckingTypeAddress = 1ULL << 4, - NSTextCheckingTypeLink = 1ULL << 5, - NSTextCheckingTypeQuote = 1ULL << 6, - NSTextCheckingTypeDash = 1ULL << 7, - NSTextCheckingTypeReplacement = 1ULL << 8, - NSTextCheckingTypeCorrection = 1ULL << 9, -}; -typedef uint64_t NSTextCheckingType; - -enum { - NSTextCheckingAllSystemTypes = 0xffffffffULL, - NSTextCheckingAllCustomTypes = 0xffffffffULL << 32, - NSTextCheckingAllTypes = - (NSTextCheckingAllSystemTypes | NSTextCheckingAllCustomTypes), -}; -typedef uint64_t NSTextCheckingTypes; - -@interface NSTextCheckingResult : NSObject { - NSTextCheckingType _resultType; - NSRange _range; - NSDictionary *_properties; -} - -+ (NSTextCheckingResult *) addressCheckingResultWithRange: (NSRange) range - components: (NSDictionary *) - components; -+ (NSTextCheckingResult *) correctionCheckingResultWithRange: (NSRange) range - replacementString: - (NSString *) replacement; -+ (NSTextCheckingResult *) dashCheckingResultWithRange: (NSRange) range - replacementString: - (NSString *) replacement; -+ (NSTextCheckingResult *) dateCheckingResultWithRange: (NSRange) range - date: (NSDate *) date; -+ (NSTextCheckingResult *) dateCheckingResultWithRange: (NSRange) range - date: (NSDate *) date - timeZone: (NSTimeZone *) timeZone - duration: - (NSTimeInterval) duration; -+ (NSTextCheckingResult *) grammarCheckingResultWithRange: (NSRange) range - details: (NSArray *) details; -+ (NSTextCheckingResult *) linkCheckingResultWithRange: (NSRange) range - URL: (NSURL *) url; -+ (NSTextCheckingResult *) - orthographyCheckingResultWithRange: (NSRange) range - orthography: (NSOrthography *) orthography; -+ (NSTextCheckingResult *) quoteCheckingResultWithRange: (NSRange) range - replacementString: - (NSString *) replacement; -+ (NSTextCheckingResult *) replacementCheckingResultWithRange: (NSRange) range - replacementString: - (NSString *) replacement; -+ (NSTextCheckingResult *) spellCheckingResultWithRange: (NSRange) range; - -@property(readonly) NSDictionary *addressComponents; -@property(readonly) NSDate *date; -@property(readonly) NSTimeInterval duration; -@property(readonly) NSArray *grammarDetails; -@property(readonly) NSOrthography *orthography; -@property(readonly) NSRange range; -@property(readonly) NSString *replacementString; -@property(readonly) NSTextCheckingType resultType; -@property(readonly) NSTimeZone *timeZone; -@property(readonly) NSURL *URL; - -@end diff --git a/Foundation/NSTextCheckingResult.m b/Foundation/NSTextCheckingResult.m deleted file mode 100644 index ae33b4a5..00000000 --- a/Foundation/NSTextCheckingResult.m +++ /dev/null @@ -1,167 +0,0 @@ -#import -#import -#import - -@implementation NSTextCheckingResult - -- initWithResultType: (NSTextCheckingType) resultType - range: (NSRange) range - properties: (NSDictionary *) properties -{ - _resultType = resultType; - _range = range; - _properties = [properties copy]; - return self; -} - -- initWithResultType: (NSTextCheckingType) resultType - range: (NSRange) range - property: property - name: (NSString *) name -{ - NSDictionary *properties = [NSDictionary dictionaryWithObject: property - forKey: name]; - - return [self initWithResultType: resultType - range: range - properties: properties]; -} - -- (void) dealloc { - [_properties release]; - [super dealloc]; -} - -+ (NSTextCheckingResult *) addressCheckingResultWithRange: (NSRange) range - components: (NSDictionary *) - components -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) correctionCheckingResultWithRange: (NSRange) range - replacementString: - (NSString *) replacement -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) dashCheckingResultWithRange: (NSRange) range - replacementString: (NSString *) replacement -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) dateCheckingResultWithRange: (NSRange) range - date: (NSDate *) date -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) dateCheckingResultWithRange: (NSRange) range - date: (NSDate *) date - timeZone: (NSTimeZone *) timeZone - duration: - (NSTimeInterval) duration -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) grammarCheckingResultWithRange: (NSRange) range - details: (NSArray *) details -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) linkCheckingResultWithRange: (NSRange) range - URL: (NSURL *) url -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) - orthographyCheckingResultWithRange: (NSRange) range - orthography: (NSOrthography *) orthography -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) quoteCheckingResultWithRange: (NSRange) range - replacementString: - (NSString *) replacement -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) replacementCheckingResultWithRange: (NSRange) range - replacementString: - (NSString *) replacement -{ - NSUnimplementedMethod(); - return nil; -} - -+ (NSTextCheckingResult *) spellCheckingResultWithRange: (NSRange) range { - return [[[self alloc] initWithResultType: NSTextCheckingTypeSpelling - range: range - properties: nil] autorelease]; -} - -- (NSDictionary *) addressComponents { - NSUnimplementedMethod(); - return nil; -} - -- (NSDate *) date { - NSUnimplementedMethod(); - return nil; -} - -- (NSTimeInterval) duration { - NSUnimplementedMethod(); - return 0; -} - -- (NSArray *) grammarDetails { - NSUnimplementedMethod(); - return nil; -} - -- (NSOrthography *) orthography { - NSUnimplementedMethod(); - return nil; -} - -- (NSRange) range { - return _range; -} - -- (NSString *) replacementString { - NSUnimplementedMethod(); - return nil; -} - -- (NSTextCheckingType) resultType { - return _resultType; -} - -- (NSTimeZone *) timeZone { - NSUnimplementedMethod(); - return nil; -} - -- (NSURL *) URL { - NSUnimplementedMethod(); - return nil; -} - -@end diff --git a/Foundation/NSThread/NSThread-Private.h b/Foundation/NSThread/NSThread-Private.h deleted file mode 100644 index 927359dd..00000000 --- a/Foundation/NSThread/NSThread-Private.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSThread (NSThread_private) - -NSAutoreleasePool *NSThreadCurrentPool(void); -void NSThreadSetCurrentPool(NSAutoreleasePool *pool); - -NSExceptionFrame *NSThreadCurrentHandler(void); -void NSThreadSetCurrentHandler(NSExceptionFrame *handler); - -NSUncaughtExceptionHandler *NSThreadUncaughtExceptionHandler(void); -void NSThreadSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *function); - -- sharedObjectForClassName: (NSString *) className; - -- (void) setExecuting: (BOOL) executing; -- (void) setFinished: (BOOL) finished; -@end diff --git a/Foundation/NSThread/NSThread.h b/Foundation/NSThread/NSThread.h deleted file mode 100644 index 7e912a0e..00000000 --- a/Foundation/NSThread/NSThread.h +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSDictionary, NSMutableDictionary, NSAutoreleasePool, NSLock; - -FOUNDATION_EXPORT NSString *const NSDidBecomeSingleThreadedNotification; -FOUNDATION_EXPORT NSString *const NSWillBecomeMultiThreadedNotification; -FOUNDATION_EXPORT NSString *const NSThreadWillExitNotification; - -@interface NSThread : NSObject { - NSMutableDictionary *_dictionary; - NSMutableDictionary *_sharedObjects; - NSLock *_sharedObjectLock; - NSAutoreleasePool *_currentPool; - NSExceptionFrame *_currentHandler; - NSString *_name; - SEL _selector; - id _argument; - id _target; - BOOL _cancelled; - BOOL _executing; - BOOL _finished; -} - -+ (BOOL) isMultiThreaded; -+ (BOOL) isMainThread; - -+ (NSThread *) mainThread; - -+ (void) detachNewThreadSelector: (SEL) selector - toTarget: target - withObject: argument; - -+ (NSThread *) currentThread; -+ (NSArray *) callStackReturnAddresses; -+ (NSArray *) callStackSymbols; - -+ (double) threadPriority; -+ (BOOL) setThreadPriority: (double) value; - -+ (void) sleepUntilDate: (NSDate *) date; -+ (void) sleepForTimeInterval: (NSTimeInterval) value; - -+ (void) exit; - -- init; -- initWithTarget: target selector: (SEL) selector object: argument; - -- (BOOL) isMainThread; -- (BOOL) isCancelled; -- (BOOL) isExecuting; -- (BOOL) isFinished; - -- (void) start; -- (void) cancel; -- (void) main; - -- (NSString *) name; -- (NSUInteger) stackSize; - -- (NSMutableDictionary *) threadDictionary; - -- (void) setName: (NSString *) value; -- (void) setStackSize: (NSUInteger) value; - -// private -- (NSMutableDictionary *) sharedDictionary; -- (void) setSharedObject: object forClassName: (NSString *) className; - -@end - -@interface NSObject (NSThread) -- (void) performSelector: (SEL) selector - onThread: (NSThread *) thread - withObject: (id) object - waitUntilDone: (BOOL) waitUntilDone - modes: (NSArray *) modes; -- (void) performSelector: (SEL) selector - onThread: (NSThread *) thread - withObject: (id) object - waitUntilDone: (BOOL) waitUntilDone; -- (void) performSelectorOnMainThread: (SEL) selector - withObject: object - waitUntilDone: (BOOL) waitUntilDone - modes: (NSArray *) modes; -- (void) performSelectorOnMainThread: (SEL) selector - withObject: object - waitUntilDone: (BOOL) waitUntilDone; -- (void) performSelectorInBackground: (SEL) selector withObject: object; -@end - -// PRIVATE -FOUNDATION_EXPORT NSThread *NSCurrentThread(void); -FOUNDATION_EXPORT id NSThreadSharedInstance(NSString *className); -FOUNDATION_EXPORT id NSThreadSharedInstanceDoNotCreate(NSString *className); diff --git a/Foundation/NSThread/NSThread.m b/Foundation/NSThread/NSThread.m deleted file mode 100644 index 41fdeeab..00000000 --- a/Foundation/NSThread/NSThread.m +++ /dev/null @@ -1,501 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd, 2008 Johannes Fortmann - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#if !defined(GCC_RUNTIME_3) && !defined(APPLE_RUNTIME_4) -#import -#endif -//#import -#import -#include - -#if defined(LINUX) || defined(__APPLE__) || defined(FREEBSD) -#include -#include -#endif - -NSString *const NSDidBecomeSingleThreadedNotification = - @"NSDidBecomeSingleThreadedNotification"; -NSString *const NSWillBecomeMultiThreadedNotification = - @"NSWillBecomeMultiThreadedNotification"; -NSString *const NSThreadWillExitNotification = @"NSThreadWillExitNotification"; - -@implementation NSThread - -static BOOL isMultiThreaded = NO; -static NSThread *mainThread = nil; - -+ (void) initialize { - if (self == [NSThread class]) { - if (!mainThread) { - mainThread = [NSThread new]; - NSPlatformSetCurrentThread(mainThread); - } - } -} - -+ (BOOL) isMultiThreaded { - return isMultiThreaded; -} - -+ (BOOL) isMainThread { - return NSCurrentThread() == mainThread; -} - -+ (NSThread *) mainThread { - return mainThread; -} - -- (id) initWithTarget: (id) aTarget - selector: (SEL) aSelector - object: (id) anArgument -{ - [self init]; - _target = [aTarget retain]; - _selector = aSelector; - _argument = [anArgument retain]; - return self; -} - -- (void) main { - [_target performSelector: _selector withObject: _argument]; -} - -#ifdef WINDOWS -// Be sure the stack is aligned in case the thread wants to do exotic things -// like SSE2 -static __attribute__(( - force_align_arg_pointer)) unsigned __stdcall nsThreadStartThread(void *t) -#else -static void *nsThreadStartThread(void *t) -#endif -{ - NSThread *thread = t; - NSPlatformSetCurrentThread(thread); - [thread setExecuting: YES]; - NSCooperativeThreadWaiting(); - @try { - [thread main]; - } @catch (NSException *e) { - NSLog(@"Exception occured : %@", [e description]); - } - [thread setExecuting: NO]; - [thread setFinished: YES]; - - NSSelectSetShutdownForCurrentThread(); - - // We need a pool here in case release triggers some autoreleased object - // allocations so they won't stay in limbo - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - [thread release]; - NSPlatformSetCurrentThread(nil); - [pool drain]; - - return 0; -} - -+ (void) detachNewThreadSelector: (SEL) selector - toTarget: target - withObject: argument -{ - id newThread = [[self alloc] initWithTarget: target - selector: selector - object: argument]; - [newThread start]; - [newThread release]; -} - -+ (NSThread *) currentThread { - return NSPlatformCurrentThread(); -} - -+ (NSArray *) callStackReturnAddresses { - NSMutableArray *ret = [NSMutableArray array]; - - void *callstack[128]; - int i, frameCount = backtrace(callstack, 128); - // ignore current frame - for (i = 1; i < frameCount; i++) { - [ret addObject: [NSValue valueWithPointer: callstack[i]]]; - } - - return ret; -} - -+ (NSArray *) callStackSymbols { - NSMutableArray *ret = [NSMutableArray array]; - void *callstack[128]; - int i, frameCount = backtrace(callstack, 128); - char **symbols = backtrace_symbols(callstack, frameCount); - // ignore current frame - for (i = 1; i < frameCount; ++i) { - [ret addObject: [NSString - stringWithCString: callstack[i] - encoding: NSISOLatin1StringEncoding]]; - } - free(symbols); - - return ret; -} - -+ (double) threadPriority { - NSUnimplementedMethod(); - return 0; -} - -+ (BOOL) setThreadPriority: (double) value { - struct sched_param scheduling; - - value = MAX(0, MIN(value, 1.0)); - - int policy; - - pthread_getschedparam(pthread_self(), &policy, &scheduling); - int min = sched_get_priority_min(policy); - int max = sched_get_priority_min(policy); - - scheduling.sched_priority = min + (max - min) * value; - - pthread_setschedparam(pthread_self(), policy, &scheduling); - - return YES; -} - -+ (void) sleepUntilDate: (NSDate *) date { - NSTimeInterval interval = [date timeIntervalSinceNow]; - - NSCooperativeThreadBlocking(); - NSPlatformSleepThreadForTimeInterval(interval); - NSCooperativeThreadWaiting(); -} - -+ (void) sleepForTimeInterval: (NSTimeInterval) value { - NSCooperativeThreadBlocking(); - NSPlatformSleepThreadForTimeInterval(value); - NSCooperativeThreadWaiting(); -} - -+ (void) exit { - NSUnimplementedMethod(); -} - -- init { - _dictionary = [NSMutableDictionary new]; - _sharedObjects = [NSMutableDictionary new]; - if (isMultiThreaded) - _sharedObjectLock = [NSLock new]; - return self; -} - -- (void) dealloc { - if ([self isExecuting]) - [NSException raise: NSInternalInconsistencyException - format: @"trying to dealloc thread %@ while it's running", - self]; - [_dictionary release]; - _dictionary = nil; - - id oldSharedObjects = _sharedObjects; - _sharedObjects = nil; - [oldSharedObjects release]; - - [_sharedObjectLock release]; - _sharedObjectLock = nil; - [_name release]; - _name = nil; - [_argument release]; - _argument = nil; - [_target release]; - _target = nil; - [super dealloc]; -} - -- (void) start { - [self retain]; // balanced by release in nsThreadStartThread - - if (!isMultiThreaded) { - [[NSNotificationCenter defaultCenter] - postNotificationName: NSWillBecomeMultiThreadedNotification - object: nil - userInfo: nil]; - isMultiThreaded = YES; - // lazily initialize mainThread's lock - mainThread->_sharedObjectLock = [NSLock new]; -#if !defined(GCC_RUNTIME_3) && !defined(APPLE_RUNTIME_4) - _NSInitializeSynchronizedDirective(); -#endif - } - // if we were init'ed before didBecomeMultithreaded, we won't have a lock - // either - if (!_sharedObjectLock) - _sharedObjectLock = [NSLock new]; - NSError *error = nil; - if (NSPlatformDetachThread(&nsThreadStartThread, self, &error) == 0) { - // No thread has been created. Don't leak: - [self release]; - [NSException - raise: @"NSThreadCreationFailedException" - format: @"Creation of Objective-C thread failed [%@].", error]; - } -} - -- (BOOL) isMainThread { - return self == mainThread; -} - -- (BOOL) isCancelled { - return _cancelled; -} - -- (BOOL) isExecuting { - return _executing; -} - -- (BOOL) isFinished { - return _finished; -} - -- (void) cancel { - _cancelled = YES; -} - -- (NSString *) name { - return _name; -} - -- (void) setExecuting: (BOOL) executing { - _executing = executing; -} - -- (void) setFinished: (BOOL) finished { - _finished = finished; -} - -- (NSUInteger) stackSize { - NSUnimplementedMethod(); - return 0; -} - -- (NSMutableDictionary *) threadDictionary { - return _dictionary; -} - -- (void) setName: (NSString *) value { - if (value != _name) { - [_name release]; - _name = [value copy]; - } -} - -- (void) setStackSize: (NSUInteger) value { - NSUnimplementedMethod(); -} - -- (NSMutableDictionary *) sharedDictionary { - return _sharedObjects; -} - -static inline id _NSThreadSharedInstance(NSThread *thread, NSString *className, - BOOL create) -{ - NSMutableDictionary *shared = thread->_sharedObjects; - if (!shared) - return nil; - id result = nil; - [thread->_sharedObjectLock lock]; - result = [shared objectForKey: className]; - [thread->_sharedObjectLock unlock]; - - if (result == nil && create) { - // do not hold lock during object allocation - result = [NSClassFromString(className) new]; - [thread->_sharedObjectLock lock]; - [shared setObject: result forKey: className]; - [thread->_sharedObjectLock unlock]; - [result release]; - } - - return result; -} - -FOUNDATION_EXPORT id NSThreadSharedInstance(NSString *className) { - return _NSThreadSharedInstance(NSPlatformCurrentThread(), className, YES); -} - -FOUNDATION_EXPORT id NSThreadSharedInstanceDoNotCreate(NSString *className) { - return _NSThreadSharedInstance(NSPlatformCurrentThread(), className, NO); -} - -- sharedObjectForClassName: (NSString *) className { - return _NSThreadSharedInstance(self, className, YES); -} - -- (void) setSharedObject: object forClassName: (NSString *) className { - [_sharedObjectLock lock]; - if (object == nil) - [_sharedObjects removeObjectForKey: className]; - else - [_sharedObjects setObject: object forKey: className]; - [_sharedObjectLock unlock]; -} - -- (NSString *) description { - return [NSString - stringWithFormat: - @"<%@[0x%lx] threadDictionary: %@ currentPool: %@>", - [self class], self, _dictionary, _currentPool]; -} - -NSAutoreleasePool *NSThreadCurrentPool(void) { - return NSPlatformCurrentThread()->_currentPool; -} - -void NSThreadSetCurrentPool(NSAutoreleasePool *pool) { - NSPlatformCurrentThread()->_currentPool = pool; -} - -@end - -@implementation NSObject (NSThread) - -- (void) _performSelectorOnThreadHelper: (NSArray *) selectorAndArguments { - NSConditionLock *waitingLock = [selectorAndArguments objectAtIndex: 0]; - SEL selector = - NSSelectorFromString([selectorAndArguments objectAtIndex: 1]); - id object = [[selectorAndArguments objectAtIndex: 2] pointerValue]; - - [waitingLock lockWhenCondition: 0]; - - [self performSelector: selector withObject: object]; - - [waitingLock unlockWithCondition: 1]; - [selectorAndArguments release]; -} - -- (void) performSelector: (SEL) selector - onThread: (NSThread *) thread - withObject: (id) object - waitUntilDone: (BOOL) waitUntilDone - modes: (NSArray *) modes -{ - if (thread == nil) { - [NSException raise: NSInvalidArgumentException - format: @"Thread is nil"]; - return; - } - id runloop = _NSThreadSharedInstance(thread, @"NSRunLoop", NO); - if (waitUntilDone) { - if (thread == [NSThread currentThread]) { - [self performSelector: selector withObject: object]; - } else { - if (!runloop) - [NSException raise: NSInvalidArgumentException - format: @"thread %@ has no runloop in %@", thread, - NSStringFromSelector(_cmd)]; - NSConditionLock *waitingLock = - [[NSConditionLock alloc] initWithCondition: 0]; - - // array retain balanced in _performSelectorOnThreadHelper: - [runloop performSelector: @selector(_performSelectorOnThreadHelper:) - target: self - argument: [[NSArray - arrayWithObjects: - waitingLock, - NSStringFromSelector( - selector), - [NSValue valueWithPointer: - object], - nil] retain] - order: 0 - modes: modes]; - - [waitingLock lockWhenCondition: 1]; - [waitingLock unlock]; - [waitingLock release]; - } - } else { - if (!runloop) - [NSException raise: NSInvalidArgumentException - format: @"thread %@ has no runloop in %@", thread, - NSStringFromSelector(_cmd)]; - - [runloop performSelector: selector - target: self - argument: object - order: 0 - modes: modes]; - } -} - -- (void) performSelector: (SEL) selector - onThread: (NSThread *) thread - withObject: (id) object - waitUntilDone: (BOOL) waitUntilDone -{ - [self performSelector: selector - onThread: thread - withObject: object - waitUntilDone: waitUntilDone - modes: [NSArray arrayWithObject: NSRunLoopCommonModes]]; -} - -- (void) performSelectorOnMainThread: (SEL) selector - withObject: (id) object - waitUntilDone: (BOOL) waitUntilDone - modes: (NSArray *) modes -{ - [self performSelector: selector - onThread: [NSThread mainThread] - withObject: object - waitUntilDone: waitUntilDone - modes: modes]; -} - -- (void) performSelectorOnMainThread: (SEL) selector - withObject: (id) object - waitUntilDone: (BOOL) waitUntilDone -{ - [self performSelectorOnMainThread: selector - withObject: object - waitUntilDone: waitUntilDone - modes: [NSArray arrayWithObject: - NSRunLoopCommonModes]]; -} - -- (void) performSelectorInBackground: (SEL) selector withObject: object { - [NSThread detachNewThreadSelector: selector - toTarget: self - withObject: object]; -} - -@end - -FOUNDATION_EXPORT NSThread *NSCurrentThread(void) { - return NSPlatformCurrentThread(); -} diff --git a/Foundation/NSTimeZone/NSTimeZone.h b/Foundation/NSTimeZone/NSTimeZone.h deleted file mode 100644 index b01ad0b7..00000000 --- a/Foundation/NSTimeZone/NSTimeZone.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSArray, NSDate, NSData, NSDictionary, NSLocale, NSString, - NSMutableArray; - -typedef NSInteger NSTimeZoneNameStyle; - -FOUNDATION_EXPORT NSString *const NSSystemTimeZoneDidChangeNotification; - -@interface NSTimeZone : NSObject { - NSString *_name; - NSData *_data; -} - -+ (NSTimeZone *) localTimeZone; -+ (NSTimeZone *) systemTimeZone; -+ (NSTimeZone *) defaultTimeZone; - -+ (void) resetSystemTimeZone; - -+ (void) setDefaultTimeZone: (NSTimeZone *) timeZone; - -+ (NSArray *) knownTimeZoneNames; - -+ (NSDictionary *) abbreviationDictionary; - -- initWithName: (NSString *) name data: (NSData *) data; -- initWithName: (NSString *) name; - -+ (NSTimeZone *) timeZoneWithName: (NSString *) name data: (NSData *) data; -+ (NSTimeZone *) timeZoneWithName: (NSString *) name; - -+ (NSTimeZone *) timeZoneForSecondsFromGMT: (NSInteger) seconds; -+ (NSTimeZone *) timeZoneWithAbbreviation: (NSString *) abbreviation; - -- (NSString *) name; -- (NSData *) data; - -- (BOOL) isEqualToTimeZone: (NSTimeZone *) timeZone; - -- (NSInteger) secondsFromGMT; -- (NSString *) abbreviation; -- (BOOL) isDaylightSavingTime; -- (NSTimeInterval) daylightSavingTimeOffset; -- (NSDate *) nextDaylightSavingTimeTransition; - -- (NSInteger) secondsFromGMTForDate: (NSDate *) date; -- (NSString *) abbreviationForDate: (NSDate *) date; -- (BOOL) isDaylightSavingTimeForDate: (NSDate *) date; -- (NSTimeInterval) daylightSavingTimeOffsetForDate: (NSDate *) date; -- (NSDate *) nextDaylightSavingTimeTransitionAfterDate: (NSDate *) date; - -- (NSString *) localizedName: (NSTimeZoneNameStyle) style - locale: (NSLocale *) locale; - -- (NSString *) description; - -@end diff --git a/Foundation/NSTimeZone/NSTimeZone.m b/Foundation/NSTimeZone/NSTimeZone.m deleted file mode 100644 index c59c7cce..00000000 --- a/Foundation/NSTimeZone/NSTimeZone.m +++ /dev/null @@ -1,252 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -NSString *const NSSystemTimeZoneDidChangeNotification = - @"NSSystemTimeZoneDidChangeNotification"; - -static NSTimeZone *_systemTimeZone = nil; -static NSTimeZone *_defaultTimeZone = nil; -static NSTimeZone *_localTimeZone = nil; - -@implementation NSTimeZone - -+ allocWithZone: (NSZone *) zone { - if (self == [NSTimeZone class]) - return NSAllocateObject([[NSPlatform currentPlatform] timeZoneClass], 0, - zone); - else - return NSAllocateObject(self, 0, zone); -} - -+ (NSTimeZone *) localTimeZone { - if (_localTimeZone == nil) - _localTimeZone = [self defaultTimeZone]; - - return _localTimeZone; -} - -+ (NSTimeZone *) systemTimeZone { - if (_systemTimeZone == nil) { - _systemTimeZone = [[[[NSPlatform currentPlatform] timeZoneClass] - systemTimeZone] retain]; - } - - return _systemTimeZone; -} - -+ (NSTimeZone *) defaultTimeZone { - if (_defaultTimeZone == nil) - _defaultTimeZone = [[self systemTimeZone] retain]; - - return _defaultTimeZone; -} - -+ (void) resetSystemTimeZone { - [_systemTimeZone release]; - _systemTimeZone = nil; -} - -+ (void) setDefaultTimeZone: (NSTimeZone *) timeZone { - [_defaultTimeZone autorelease]; - _defaultTimeZone = [timeZone retain]; -} - -+ (NSArray *) knownTimeZoneNames { - - return nil; - - /* static NSDictionary *_regionsDictionary = nil; - if (_regionsDictionary == nil) { - NSString *pathToPlist = [[NSBundle bundleForClass:self] - pathForResource:@"NSTimeZoneRegions" ofType:@"plist"]; _regionsDictionary - = [[NSDictionary allocWithZone:NULL] initWithContentsOfFile:pathToPlist]; - } - - return [_regionsDictionary allKeys];*/ -} - -+ (NSDictionary *) abbreviationDictionary { - static NSDictionary *_abbreviationDictionary = nil; - if (_abbreviationDictionary == nil) { - NSString *pathToPlist = [[NSBundle bundleForClass: self] - pathForResource: @"NSTimeZoneAbbreviations" - ofType: @"plist"]; - _abbreviationDictionary = [[NSDictionary allocWithZone: NULL] - initWithContentsOfFile: pathToPlist]; - } - - return _abbreviationDictionary; -} - -- initWithName: (NSString *) name data: (NSData *) data { - NSInvalidAbstractInvocation(); - return nil; -} - -- initWithName: (NSString *) name { - return [self initWithName: name data: nil]; -} - -+ (NSTimeZone *) timeZoneWithName: (NSString *) name data: (NSData *) data { - return [[[self allocWithZone: NULL] initWithName: name - data: data] autorelease]; -} - -+ (NSTimeZone *) timeZoneWithName: (NSString *) name { - return [[[self allocWithZone: NULL] initWithName: name] autorelease]; -} - -+ (NSTimeZone *) timeZoneForSecondsFromGMT: (NSInteger) seconds { - return [[[NSTimeZone_absolute allocWithZone: NULL] - initWithSecondsFromGMT: seconds] autorelease]; -} - -+ (NSTimeZone *) timeZoneWithAbbreviation: (NSString *) abbreviation { - NSString *fullName = - [[self abbreviationDictionary] objectForKey: abbreviation]; - - if (fullName != nil) - return [self timeZoneWithName: fullName]; - - return nil; -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - _name = [[coder decodeObjectForKey: @"NS.name"] copy]; - _data = [[coder decodeObjectForKey: @"NS.data"] copy]; - } else { - NSInvalidAbstractInvocation(); - return nil; - } - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - [coder encodeObject: [self name] forKey: @"NS.name"]; - [coder encodeObject: [self data] forKey: @"NS.data"]; - } else { - NSInvalidAbstractInvocation(); - } -} - -- copyWithZone: (NSZone *) zone { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSString *) name { - return _name; -} - -- (NSData *) data { - return _data; -} - -- (BOOL) isEqual: other { - if (self == other) - return YES; - - if ([other isKindOfClass: [NSTimeZone class]]) - return [self isEqualToTimeZone: other]; - - return NO; -} - -- (BOOL) isEqualToTimeZone: (NSTimeZone *) timeZone { - if (self == timeZone) - return YES; - - if ([[timeZone name] isEqualToString: [self name]]) - return YES; - - return NO; -} - -- (NSInteger) secondsFromGMT { - return [self secondsFromGMTForDate: [NSDate date]]; -} - -- (NSString *) abbreviation { - return [self abbreviationForDate: [NSDate date]]; -} - -- (BOOL) isDaylightSavingTime { - return [self isDaylightSavingTimeForDate: [NSDate date]]; -} - -- (NSTimeInterval) daylightSavingTimeOffset { - return [self daylightSavingTimeOffsetForDate: [NSDate date]]; -} - -- (NSDate *) nextDaylightSavingTimeTransition { - return [self nextDaylightSavingTimeTransitionAfterDate: [NSDate date]]; -} - -- (NSInteger) secondsFromGMTForDate: (NSDate *) date { - NSInvalidAbstractInvocation(); - return -1; -} - -- (NSString *) abbreviationForDate: (NSDate *) date { - NSInvalidAbstractInvocation(); - return nil; -} - -- (BOOL) isDaylightSavingTimeForDate: (NSDate *) date { - NSInvalidAbstractInvocation(); - return NO; -} - -- (NSTimeInterval) daylightSavingTimeOffsetForDate: (NSDate *) date { - NSUnimplementedMethod(); - return 0; -} - -- (NSDate *) nextDaylightSavingTimeTransitionAfterDate: (NSDate *) date { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) localizedName: (NSTimeZoneNameStyle) style - locale: (NSLocale *) locale -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@[0x%lx] name: %@>", [self class], - self, [self name]]; -} - -@end diff --git a/Foundation/NSTimeZone/NSTimeZoneAbbreviations.plist b/Foundation/NSTimeZone/NSTimeZoneAbbreviations.plist deleted file mode 100755 index e37578ee..00000000 --- a/Foundation/NSTimeZone/NSTimeZoneAbbreviations.plist +++ /dev/null @@ -1,4 +0,0 @@ -{ - UTC = UTC; - CET = "Europe/Zurich"; -} \ No newline at end of file diff --git a/Foundation/NSTimeZone/NSTimeZoneRegions.plist b/Foundation/NSTimeZone/NSTimeZoneRegions.plist deleted file mode 100755 index 6a59db06..00000000 --- a/Foundation/NSTimeZone/NSTimeZoneRegions.plist +++ /dev/null @@ -1,553 +0,0 @@ -{ - "Africa/Algiers" = 0; - "Africa/Luanda" = 0; - "Africa/Porto-Novo" = 0; - "Africa/Douala" = 0; - "Africa/Malabo" = 0; - "Africa/Libreville" = 0; - "Africa/Tripoli" = 0; - "Africa/Niamey" = 0; - "Africa/Lagos" = 0; - "Africa/Lome" = 0; - "Africa/Tunis" = 0; - "Africa/Ceuta" = 0; - "Indian/Kerguelen" = 0; - "Antarctica/Casey" = 0; - "Antarctica/Davis" = 0; - "Antarctica/Mawson" = 0; - "Antarctica/DumontDUrville" = 0; - "Antarctica/Syowa" = 0; - "Antarctica/Palmer" = 0; - "Antarctica/McMurdo" = 0; - "Antarctica/South_Pole" = 0; - "Europe/London" = 0; - "Europe/Andorra" = 0; - "Europe/Brussels" = 0; - "Europe/Paris" = 0; - "Europe/Gibraltar" = 0; - "Europe/Luxembourg" = 0; - "Europe/Monaco" = 0; - "Europe/Amsterdam" = 0; - "Europe/Madrid" = 0; - "WET" = 0; - "Etc/GMT" = 0; - "Etc/UTC" = 0; - "Etc/UCT" = 0; - "Etc/Universal" = 0; - "Etc/Zulu" = 0; - "Etc/Greenwich" = 0; - "Etc/GMT-0" = 0; - "Etc/GMT+0" = 0; - "Etc/GMT0" = 0; - "GMT" = 0; - "Universal" = 0; - "Zulu" = 0; - "Greenwich" = 0; - "GMT-0" = 0; - "GMT+0" = 0; - "GMT0" = 0; - "GB" = 0; - "GB-Eire" = 0; - "Libya" = 0; - "UCT" = 0; - "UTC" = 0; - "Africa/Bangui" = 1; - "Africa/Ndjamena" = 1; - "Africa/Kinshasa" = 1; - "Africa/Brazzaville" = 1; - "Africa/Maseru" = 1; - "Africa/Windhoek" = 1; - "Africa/Johannesburg" = 1; - "Africa/Lusaka" = 1; - "Asia/Istanbul" = 1; - "Europe/Tirane" = 1; - "Europe/Vienna" = 1; - "Europe/Minsk" = 1; - "Europe/Prague" = 1; - "Europe/Copenhagen" = 1; - "Europe/Tallinn" = 1; - "Europe/Helsinki" = 1; - "Europe/Berlin" = 1; - "Europe/Athens" = 1; - "Europe/Budapest" = 1; - "Europe/Rome" = 1; - "Europe/Riga" = 1; - "Europe/Vaduz" = 1; - "Europe/Vilnius" = 1; - "Europe/Malta" = 1; - "Europe/Chisinau" = 1; - "Europe/Tiraspol" = 1; - "Europe/Oslo" = 1; - "Europe/Warsaw" = 1; - "Europe/Bucharest" = 1; - "Europe/Kaliningrad" = 1; - "Europe/Stockholm" = 1; - "Europe/Zurich" = 1; - "Europe/Istanbul" = 1; - "Europe/Uzhgorod" = 1; - "Europe/Belgrade" = 1; - "Europe/Vatican" = 1; - "Europe/San_Marino" = 1; - "Europe/Bratislava" = 1; - "Europe/Ljubljana" = 1; - "Europe/Sarajevo" = 1; - "Europe/Skopje" = 1; - "Europe/Zagreb" = 1; - "CET" = 1; - "MET" = 1; - "Etc/GMT-1" = 1; - "GMT+1" = 1; - "Arctic/Longyearbyen" = 1; - "Poland" = 1; - "Turkey" = 1; - "Africa/Gaborone" = 2; - "Africa/Bujumbura" = 2; - "Africa/Lubumbashi" = 2; - "Africa/Djibouti" = 2; - "Africa/Cairo" = 2; - "Africa/Asmera" = 2; - "Africa/Addis_Ababa" = 2; - "Africa/Nairobi" = 2; - "Africa/Blantyre" = 2; - "Africa/Maputo" = 2; - "Africa/Kigali" = 2; - "Africa/Khartoum" = 2; - "Africa/Mbabane" = 2; - "Africa/Dar_es_Salaam" = 2; - "Africa/Kampala" = 2; - "Africa/Harare" = 2; - "Indian/Comoro" = 2; - "Asia/Yerevan" = 2; - "Asia/Nicosia" = 2; - "Asia/Tbilisi" = 2; - "Asia/Baghdad" = 2; - "Asia/Jerusalem" = 2; - "Asia/Amman" = 2; - "Asia/Beirut" = 2; - "Asia/Gaza" = 2; - "Asia/Damascus" = 2; - "Asia/Tel_Aviv" = 2; - "Europe/Sofia" = 2; - "Europe/Moscow" = 2; - "Europe/Kiev" = 2; - "Europe/Zaporozhye" = 2; - "Europe/Simferopol" = 2; - "Europe/Nicosia" = 2; - "EET" = 2; - "Etc/GMT-2" = 2; - "GMT+2" = 2; - "Egypt" = 2; - "Israel" = 2; - "W-SU" = 2; - "Africa/Mogadishu" = 3; - "Indian/Antananarivo" = 3; - "Indian/Mauritius" = 3; - "Indian/Mayotte" = 3; - "Indian/Reunion" = 3; - "Indian/Mahe" = 3; - "Asia/Baku" = 3; - "Asia/Bahrain" = 3; - "Asia/Tehran" = 3; - "Asia/Aqtobe" = 3; - "Asia/Aqtau" = 3; - "Asia/Kuwait" = 3; - "Asia/Muscat" = 3; - "Asia/Qatar" = 3; - "Asia/Riyadh" = 3; - "Asia/Ashgabat" = 3; - "Asia/Dubai" = 3; - "Asia/Aden" = 3; - "Asia/Riyadh87" = 3; - "Asia/Riyadh88" = 3; - "Asia/Riyadh89" = 3; - "Asia/Ashkhabad" = 3; - "Europe/Samara" = 3; - "Etc/GMT-3" = 3; - "GMT+3" = 3; - "Iran" = 3; - "Mideast/Riyadh87" = 3; - "Mideast/Riyadh88" = 3; - "Mideast/Riyadh89" = 3; - "Indian/Maldives" = 4; - "Asia/Kabul" = 4; - "Asia/Bishkek" = 4; - "Asia/Karachi" = 4; - "Asia/Dushanbe" = 4; - "Asia/Samarkand" = 4; - "Asia/Tashkent" = 4; - "Asia/Yekaterinburg" = 4; - "Asia/Omsk" = 4; - "Etc/GMT-4" = 4; - "GMT+4" = 4; - "Indian/Chagos" = 5; - "Asia/Dhaka" = 5; - "Asia/Thimphu" = 5; - "Asia/Urumqi" = 5; - "Asia/Kashgar" = 5; - "Asia/Calcutta" = 5; - "Asia/Almaty" = 5; - "Asia/Katmandu" = 5; - "Asia/Colombo" = 5; - "Asia/Novosibirsk" = 5; - "Asia/Dacca" = 5; - "Asia/Thimbu" = 5; - "Etc/GMT-5" = 5; - "GMT+5" = 5; - "Indian/Cocos" = 6; - "Asia/Rangoon" = 6; - "Asia/Phnom_Penh" = 6; - "Asia/Vientiane" = 6; - "Asia/Kuala_Lumpur" = 6; - "Asia/Hovd" = 6; - "Asia/Singapore" = 6; - "Asia/Bangkok" = 6; - "Asia/Krasnoyarsk" = 6; - "Asia/Irkutsk" = 6; - "Etc/GMT-6" = 6; - "GMT+6" = 6; - "Singapore" = 6; - "Indian/Christmas" = 7; - "Asia/Brunei" = 7; - "Asia/Chungking" = 7; - "Asia/Hong_Kong" = 7; - "Asia/Macao" = 7; - "Asia/Jakarta" = 7; - "Asia/Ujung_Pandang" = 7; - "Asia/Kuching" = 7; - "Asia/Ulaanbaatar" = 7; - "Asia/Saigon" = 7; - "Asia/Ulan_Bator" = 7; - "Etc/GMT-7" = 7; - "GMT+7" = 7; - "Hongkong" = 7; - "Asia/Harbin" = 8; - "Asia/Shanghai" = 8; - "Asia/Taipei" = 8; - "Asia/Dili" = 8; - "Asia/Seoul" = 8; - "Asia/Pyongyang" = 8; - "Asia/Manila" = 8; - "Asia/Yakutsk" = 8; - "Asia/Vladivostok" = 8; - "Australia/Perth" = 8; - "Australia/West" = 8; - "Etc/GMT-8" = 8; - "GMT+8" = 8; - "PRC" = 8; - "ROC" = 8; - "ROK" = 8; - "Asia/Jayapura" = 9; - "Asia/Tokyo" = 9; - "Australia/Darwin" = 9; - "Australia/Adelaide" = 9; - "Australia/Broken_Hill" = 9; - "Australia/North" = 9; - "Australia/South" = 9; - "Australia/Yancowinna" = 9; - "Pacific/Saipan" = 9; - "Pacific/Yap" = 9; - "Pacific/Palau" = 9; - "Etc/GMT-9" = 9; - "GMT+9" = 9; - "Japan" = 9; - "Asia/Magadan" = 10; - "Asia/Kamchatka" = 10; - "Australia/Brisbane" = 10; - "Australia/Lindeman" = 10; - "Australia/Hobart" = 10; - "Australia/Melbourne" = 10; - "Australia/Sydney" = 10; - "Australia/Lord_Howe" = 10; - "Australia/ACT" = 10; - "Australia/Canberra" = 10; - "Australia/LHI" = 10; - "Australia/NSW" = 10; - "Australia/Queensland" = 10; - "Australia/Tasmania" = 10; - "Australia/Victoria" = 10; - "Pacific/Guam" = 10; - "Pacific/Truk" = 10; - "Pacific/Port_Moresby" = 10; - "Pacific/Guadalcanal" = 10; - "Etc/GMT-10" = 10; - "GMT-14" = 10; - "GMT+10" = 10; - "Asia/Anadyr" = 11; - "Pacific/Fiji" = 11; - "Pacific/Majuro" = 11; - "Pacific/Kwajalein" = 11; - "Pacific/Ponape" = 11; - "Pacific/Kosrae" = 11; - "Pacific/Nauru" = 11; - "Pacific/Noumea" = 11; - "Pacific/Auckland" = 11; - "Pacific/Norfolk" = 11; - "Pacific/Efate" = 11; - "Etc/GMT-11" = 11; - "GMT-13" = 11; - "GMT+11" = 11; - "Kwajalein" = 11; - "NZ" = 11; - "Pacific/Tarawa" = 12; - "Pacific/Enderbury" = 12; - "Pacific/Chatham" = 12; - "Pacific/Niue" = 12; - "Pacific/Pago_Pago" = 12; - "Pacific/Apia" = 12; - "Pacific/Tongatapu" = 12; - "Pacific/Funafuti" = 12; - "Pacific/Wake" = 12; - "Pacific/Wallis" = 12; - "Pacific/Samoa" = 12; - "Etc/GMT-12" = 12; - "Etc/GMT+12" = 12; - "GMT-12" = 12; - "GMT+12" = 12; - "US/Samoa" = 12; - "NZ-CHAT" = 12; - "Pacific/Rarotonga" = 13; - "Pacific/Kiritimati" = 13; - "Pacific/Midway" = 13; - "Pacific/Honolulu" = 13; - "America/Nome" = 13; - "America/Adak" = 13; - "America/Atka" = 13; - "Etc/GMT-13" = 13; - "Etc/GMT+11" = 13; - "GMT-11" = 13; - "GMT+13" = 13; - "HST" = 13; - "US/Aleutian" = 13; - "US/Hawaii" = 13; - "Pacific/Marquesas" = 14; - "Pacific/Tahiti" = 14; - "Pacific/Fakaofo" = 14; - "Pacific/Johnston" = 14; - "America/Anchorage" = 14; - "Etc/GMT-14" = 14; - "Etc/GMT+10" = 14; - "GMT-10" = 14; - "GMT+14" = 14; - "SystemV/HST10" = 14; - "US/Alaska" = 14; - "Pacific/Gambier" = 15; - "Pacific/Pitcairn" = 15; - "America/Yakutat" = 15; - "America/Whitehorse" = 15; - "America/Dawson" = 15; - "Etc/GMT+9" = 15; - "GMT-9" = 15; - "SystemV/YST9YDT" = 15; - "SystemV/YST9" = 15; - "Canada/Yukon" = 15; - "Pacific/Easter" = 16; - "America/Los_Angeles" = 16; - "America/Juneau" = 16; - "America/Boise" = 16; - "America/Swift_Current" = 16; - "America/Edmonton" = 16; - "America/Vancouver" = 16; - "America/Dawson_Creek" = 16; - "America/Inuvik" = 16; - "America/Chihuahua" = 16; - "America/Hermosillo" = 16; - "America/Mazatlan" = 16; - "America/Tijuana" = 16; - "America/Ensenada" = 16; - "Etc/GMT+8" = 16; - "GMT-8" = 16; - "SystemV/PST8PDT" = 16; - "SystemV/PST8" = 16; - "PST8PDT" = 16; - "US/Pacific-New" = 16; - "US/Pacific" = 16; - "Canada/Mountain" = 16; - "Canada/Pacific" = 16; - "Chile/EasterIsland" = 16; - "Mexico/BajaNorte" = 16; - "Mexico/BajaSur" = 16; - "America/Denver" = 17; - "America/Phoenix" = 17; - "America/Regina" = 17; - "America/Cambridge_Bay" = 17; - "America/Yellowknife" = 17; - "America/Monterrey" = 17; - "America/Mexico_City" = 17; - "America/Guatemala" = 17; - "America/Shiprock" = 17; - "Etc/GMT+7" = 17; - "GMT-7" = 17; - "SystemV/MST7MDT" = 17; - "SystemV/MST7" = 17; - "MST7MDT" = 17; - "MST" = 17; - "US/Arizona" = 17; - "US/Mountain" = 17; - "Canada/East-Saskatchewan" = 17; - "Canada/Saskatchewan" = 17; - "Mexico/General" = 17; - "Navajo" = 17; - "Pacific/Galapagos" = 18; - "America/Chicago" = 18; - "America/Indianapolis" = 18; - "America/Indiana/Marengo" = 18; - "America/Indiana/Knox" = 18; - "America/Indiana/Vevay" = 18; - "America/Indiana/Indianapolis" = 18; - "America/Louisville" = 18; - "America/Kentucky/Monticello" = 18; - "America/Kentucky/Louisville" = 18; - "America/Detroit" = 18; - "America/Menominee" = 18; - "America/Rainy_River" = 18; - "America/Winnipeg" = 18; - "America/Rankin_Inlet" = 18; - "America/Cancun" = 18; - "America/Merida" = 18; - "America/Nassau" = 18; - "America/Belize" = 18; - "America/Cayman" = 18; - "America/Costa_Rica" = 18; - "America/Havana" = 18; - "America/El_Salvador" = 18; - "America/Tegucigalpa" = 18; - "America/Jamaica" = 18; - "America/Managua" = 18; - "America/Panama" = 18; - "America/Grand_Turk" = 18; - "America/Guayaquil" = 18; - "America/Lima" = 18; - "America/Fort_Wayne" = 18; - "America/Knox_IN" = 18; - "Etc/GMT+6" = 18; - "GMT-6" = 18; - "SystemV/CST6CDT" = 18; - "SystemV/CST6" = 18; - "CST6CDT" = 18; - "EST" = 18; - "US/Central" = 18; - "US/East-Indiana" = 18; - "US/Indiana-Starke" = 18; - "US/Michigan" = 18; - "Canada/Central" = 18; - "Cuba" = 18; - "Jamaica" = 18; - "Atlantic/Bermuda" = 19; - "America/Thule" = 19; - "America/New_York" = 19; - "America/Halifax" = 19; - "America/Montreal" = 19; - "America/Thunder_Bay" = 19; - "America/Nipigon" = 19; - "America/Iqaluit" = 19; - "America/Anguilla" = 19; - "America/Antigua" = 19; - "America/Dominica" = 19; - "America/Santo_Domingo" = 19; - "America/Grenada" = 19; - "America/Guadeloupe" = 19; - "America/Port-au-Prince" = 19; - "America/Martinique" = 19; - "America/Montserrat" = 19; - "America/St_Kitts" = 19; - "America/St_Lucia" = 19; - "America/St_Vincent" = 19; - "America/Tortola" = 19; - "America/St_Thomas" = 19; - "America/Buenos_Aires" = 19; - "America/Rosario" = 19; - "America/Cordoba" = 19; - "America/Jujuy" = 19; - "America/Catamarca" = 19; - "America/Mendoza" = 19; - "America/Aruba" = 19; - "America/La_Paz" = 19; - "America/Porto_Velho" = 19; - "America/Boa_Vista" = 19; - "America/Manaus" = 19; - "America/Eirunepe" = 19; - "America/Porto_Acre" = 19; - "America/Santiago" = 19; - "America/Bogota" = 19; - "America/Curacao" = 19; - "America/Port_of_Spain" = 19; - "America/Caracas" = 19; - "America/Virgin" = 19; - "Etc/GMT+5" = 19; - "GMT-5" = 19; - "SystemV/EST5EDT" = 19; - "SystemV/EST5" = 19; - "EST5EDT" = 19; - "US/Eastern" = 19; - "Brazil/Acre" = 19; - "Brazil/West" = 19; - "Canada/Atlantic" = 19; - "Canada/Eastern" = 19; - "Chile/Continental" = 19; - "Atlantic/Stanley" = 20; - "America/Godthab" = 20; - "America/St_Johns" = 20; - "America/Goose_Bay" = 20; - "America/Glace_Bay" = 20; - "America/Pangnirtung" = 20; - "America/Barbados" = 20; - "America/Puerto_Rico" = 20; - "America/Miquelon" = 20; - "America/Belem" = 20; - "America/Araguaina" = 20; - "America/Sao_Paulo" = 20; - "America/Cuiaba" = 20; - "America/Cayenne" = 20; - "America/Guyana" = 20; - "America/Asuncion" = 20; - "America/Paramaribo" = 20; - "America/Montevideo" = 20; - "Etc/GMT+4" = 20; - "GMT-4" = 20; - "SystemV/AST4ADT" = 20; - "SystemV/AST4" = 20; - "Brazil/East" = 20; - "Canada/Newfoundland" = 20; - "America/Noronha" = 21; - "America/Fortaleza" = 21; - "America/Recife" = 21; - "America/Maceio" = 21; - "Etc/GMT+3" = 21; - "GMT-3" = 21; - "Brazil/DeNoronha" = 21; - "Africa/Banjul" = 22; - "Africa/Bissau" = 22; - "Africa/Nouakchott" = 22; - "Africa/Dakar" = 22; - "Atlantic/Cape_Verde" = 22; - "Atlantic/Reykjavik" = 22; - "Atlantic/Azores" = 22; - "Atlantic/Madeira" = 22; - "Atlantic/Canary" = 22; - "Atlantic/South_Georgia" = 22; - "America/Scoresbysund" = 22; - "Etc/GMT+2" = 22; - "GMT-2" = 22; - "Iceland" = 22; - "Africa/Ouagadougou" = 23; - "Africa/Abidjan" = 23; - "Africa/Accra" = 23; - "Africa/Conakry" = 23; - "Africa/Monrovia" = 23; - "Africa/Bamako" = 23; - "Africa/Timbuktu" = 23; - "Africa/Casablanca" = 23; - "Africa/El_Aaiun" = 23; - "Africa/Sao_Tome" = 23; - "Africa/Freetown" = 23; - "Atlantic/St_Helena" = 23; - "Atlantic/Faeroe" = 23; - "Atlantic/Jan_Mayen" = 23; - "Europe/Belfast" = 23; - "Europe/Dublin" = 23; - "Europe/Lisbon" = 23; - "Etc/GMT+1" = 23; - "GMT-1" = 23; - "Eire" = 23; - "Portugal" = 23; -} diff --git a/Foundation/NSTimeZone/NSTimeZoneTransition.h b/Foundation/NSTimeZone/NSTimeZoneTransition.h deleted file mode 100644 index f648dfdb..00000000 --- a/Foundation/NSTimeZone/NSTimeZoneTransition.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSDate; - -@interface NSTimeZoneTransition : NSObject { - NSDate *_transitionDate; - unsigned _typeIndex; -} - -+ (NSTimeZoneTransition *) - timeZoneTransitionWithTransitionDate: (NSDate *) transitionDate - typeIndex: (unsigned) typeIndex; - -- initWithTransitionDate: (NSDate *) transitionDate - typeIndex: (unsigned) typeIndex; - -- (NSDate *) transitionDate; -- (unsigned) typeIndex; - -@end diff --git a/Foundation/NSTimeZone/NSTimeZoneTransition.m b/Foundation/NSTimeZone/NSTimeZoneTransition.m deleted file mode 100644 index 51dc9265..00000000 --- a/Foundation/NSTimeZone/NSTimeZoneTransition.m +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - David Young -#import -#import -#import -#import - -@implementation NSTimeZoneTransition - -+ (NSTimeZoneTransition *) - timeZoneTransitionWithTransitionDate: (NSDate *) transitionDate - typeIndex: (unsigned) typeIndex -{ - return [[[self allocWithZone: NULL] initWithTransitionDate: transitionDate - typeIndex: typeIndex] - autorelease]; -} - -- initWithTransitionDate: (NSDate *) transitionDate - typeIndex: (unsigned) typeIndex -{ - _transitionDate = [transitionDate retain]; - _typeIndex = typeIndex; - return self; -} - -- (NSDate *) transitionDate { - return _transitionDate; -} - -- (unsigned) typeIndex { - return _typeIndex; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - [coder encodeObject: _transitionDate]; - [coder encodeValueOfObjCType: @encode(unsigned) at: &_typeIndex]; -} - -- initWithCoder: (NSCoder *) coder { - _transitionDate = [[coder decodeObject] retain]; - [coder decodeValueOfObjCType: @encode(unsigned) at: &_typeIndex]; - - return self; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@[0x%lx] transitionDate: %@ typeIndex: %d", - [self class], self, _transitionDate, _typeIndex]; -} - -@end diff --git a/Foundation/NSTimeZone/NSTimeZoneType.h b/Foundation/NSTimeZone/NSTimeZoneType.h deleted file mode 100644 index eab37f20..00000000 --- a/Foundation/NSTimeZone/NSTimeZoneType.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSString; - -@interface NSTimeZoneType : NSObject { - NSInteger _secondsFromGMT; - BOOL _isDaylightSavingTime; - NSString *_abbreviation; -} - -+ (NSTimeZoneType *) timeZoneTypeWithSecondsFromGMT: (NSInteger) seconds - isDaylightSavingTime: (BOOL) isDST - abbreviation: (NSString *) abbreviation; - -- initWithSecondsFromGMT: (NSInteger) seconds - isDaylightSavingTime: (BOOL) isDST - abbreviation: (NSString *) abbreviation; - -- (NSInteger) secondsFromGMT; -- (BOOL) isDaylightSavingTime; -- (NSString *) abbreviation; - -@end diff --git a/Foundation/NSTimeZone/NSTimeZoneType.m b/Foundation/NSTimeZone/NSTimeZoneType.m deleted file mode 100644 index d7826388..00000000 --- a/Foundation/NSTimeZone/NSTimeZoneType.m +++ /dev/null @@ -1,94 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSTimeZoneType - -+ (NSTimeZoneType *) timeZoneTypeWithSecondsFromGMT: (NSInteger) seconds - isDaylightSavingTime: (BOOL) isDST - abbreviation: (NSString *) abbreviation -{ - return [[[self allocWithZone: NULL] initWithSecondsFromGMT: seconds - isDaylightSavingTime: isDST - abbreviation: abbreviation] - autorelease]; -} - -- initWithSecondsFromGMT: (NSInteger) seconds - isDaylightSavingTime: (BOOL) isDST - abbreviation: (NSString *) abbreviation -{ - _secondsFromGMT = seconds; - _isDaylightSavingTime = isDST; - _abbreviation = [abbreviation retain]; - - return self; -} - -- (void) dealloc { - [_abbreviation release]; - - [super dealloc]; -} - -- (NSInteger) secondsFromGMT { - return _secondsFromGMT; -} - -- (BOOL) isDaylightSavingTime { - return _isDaylightSavingTime; -} - -- (NSString *) abbreviation { - return _abbreviation; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@[0x%lx] secondsFromGMT: %d " - @"isDaylightSavingTime: %@ abbreviation: %@>", - [self class], self, _secondsFromGMT, - _isDaylightSavingTime ? @"YES" : @"NO", - _abbreviation]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - int value = (int) _secondsFromGMT; - [coder encodeValueOfObjCType: @encode(int) at: &value]; - [coder encodeValueOfObjCType: @encode(BOOL) at: &_isDaylightSavingTime]; - [coder encodeObject: _abbreviation]; -} - -- initWithCoder: (NSCoder *) coder { - int value = 0; - [coder decodeValueOfObjCType: @encode(int) at: &value]; - _secondsFromGMT = value; - [coder decodeValueOfObjCType: @encode(BOOL) at: &_isDaylightSavingTime]; - _abbreviation = [[coder decodeObject] retain]; - - return self; -} - -@end diff --git a/Foundation/NSTimeZone/NSTimeZoneWindowsZones.plist b/Foundation/NSTimeZone/NSTimeZoneWindowsZones.plist deleted file mode 100644 index 4d76efb8..00000000 --- a/Foundation/NSTimeZone/NSTimeZoneWindowsZones.plist +++ /dev/null @@ -1,29 +0,0 @@ -{ - "Central European Standard Time" = ( - "Europe/Brussels", - "Europe/Budapest", - "Europe/Copenhagen", - "Europe/Gibraltar", - "Europe/Luxembourg", - "Europe/Madrid", - "Europe/Malta", - "Europe/Monaco", - "Europe/Oslo", - "Europe/Paris", - "Europe/Prague", - "Europe/Tirane", - "Europe/Vienna", - "Europe/Warsaw", - "Europe/Zurich", - MET, - ); - "Central Europe Standard Time" = ( - "Africa/Algiers", - "Africa/Ceuta", - "Africa/Tunis", - CET, - "Europe/Andorra", - "Europe/Belgrade", - "Etc/GMT-1", - ); -} \ No newline at end of file diff --git a/Foundation/NSTimeZone/NSTimeZone_absolute.h b/Foundation/NSTimeZone/NSTimeZone_absolute.h deleted file mode 100644 index 7dd80279..00000000 --- a/Foundation/NSTimeZone/NSTimeZone_absolute.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSTimeZone_absolute : NSTimeZone { - NSString *_abbreviation; - NSInteger _secondsFromGMT; -} - -- initWithSecondsFromGMT: (NSInteger) seconds; - -@end diff --git a/Foundation/NSTimeZone/NSTimeZone_absolute.m b/Foundation/NSTimeZone/NSTimeZone_absolute.m deleted file mode 100644 index a43818c8..00000000 --- a/Foundation/NSTimeZone/NSTimeZone_absolute.m +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSTimeZone_absolute - -- initWithSecondsFromGMT: (NSInteger) seconds { - [super init]; - _secondsFromGMT = seconds; - _name = [[NSString allocWithZone: NULL] - initWithFormat: @"GMT %@%02d%02d", (seconds >= 0 ? @"+" : @""), - seconds / 3600, (seconds % 3600) / 60]; - _abbreviation = [[NSString allocWithZone: NULL] - initWithFormat: @"%@%02d%02d", (seconds >= 0 ? @"+" : @""), - seconds / 3600, (seconds % 3600) / 60]; - - return self; -} - -- (void) dealloc { - [_name release]; - [_abbreviation release]; - - [super dealloc]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - int value = (int) _secondsFromGMT; - [coder encodeValueOfObjCType: @encode(int) at: &value]; - [coder encodeObject: _name]; - [coder encodeObject: _abbreviation]; -} - -- initWithCoder: (NSCoder *) coder { - int value = 0; - [coder decodeValueOfObjCType: @encode(int) at: &value]; - _secondsFromGMT = value; - _name = [[coder decodeObject] retain]; - _abbreviation = [[coder decodeObject] retain]; - - return self; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (NSString *) name { - return _name; -} - -- (NSData *) data { - return nil; -} - -- (NSInteger) secondsFromGMTForDate: (NSDate *) date { - return _secondsFromGMT; -} - -- (NSString *) abbreviationForDate: (NSDate *) date { - return _abbreviation; -} - -- (BOOL) isDaylightSavingTimeForDate: (NSDate *) date { - return NO; -} - -@end diff --git a/Foundation/NSTimer/NSTimer.h b/Foundation/NSTimer/NSTimer.h deleted file mode 100644 index b8b65f6b..00000000 --- a/Foundation/NSTimer/NSTimer.h +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSTimer : NSObject - -- initWithFireDate: (NSDate *) date - interval: (NSTimeInterval) interval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats; - -+ (NSTimer *) timerWithTimeInterval: (NSTimeInterval) timeInterval - invocation: (NSInvocation *) invocation - repeats: (BOOL) repeats; - -+ (NSTimer *) timerWithTimeInterval: (NSTimeInterval) timeInterval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats; - -+ (NSTimer *) scheduledTimerWithTimeInterval: (NSTimeInterval) timeInterval - invocation: (NSInvocation *) invocation - repeats: (BOOL) repeats; - -+ (NSTimer *) scheduledTimerWithTimeInterval: (NSTimeInterval) timeInterval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats; - -- (NSDate *) fireDate; - -- (NSTimeInterval) timeInterval; - -- userInfo; - -- (void) setFireDate: (NSDate *) date; - -- (void) fire; - -- (void) invalidate; -- (BOOL) isValid; - -@end diff --git a/Foundation/NSTimer/NSTimer.m b/Foundation/NSTimer/NSTimer.m deleted file mode 100644 index 9946dfdf..00000000 --- a/Foundation/NSTimer/NSTimer.m +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import - -@implementation NSTimer : NSObject - -+ allocWithZone: (NSZone *) zone { - if (self == objc_lookUpClass("NSTimer")) - return NSAllocateObject([NSTimer_targetAction class], 0, NULL); - - return NSAllocateObject(self, 0, zone); -} - -- initWithFireDate: (NSDate *) date - interval: (NSTimeInterval) interval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats -{ - NSInvalidAbstractInvocation(); - return self; -} - -+ (NSTimer *) timerWithTimeInterval: (NSTimeInterval) timeInterval - invocation: (NSInvocation *) invocation - repeats: (BOOL) repeats -{ - - return NSAutorelease([NSAllocateObject([NSTimer_invocation class], 0, NULL) - initWithTimeInterval: timeInterval - repeats: repeats - invocation: invocation]); -} - -+ (NSTimer *) timerWithTimeInterval: (NSTimeInterval) timeInterval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats -{ - - return NSAutorelease( - [NSAllocateObject([NSTimer_targetAction class], 0, NULL) - initWithTimeInterval: timeInterval - repeats: repeats - userInfo: userInfo - target: target - selector: selector]); -} - -+ (NSTimer *) scheduledTimerWithTimeInterval: (NSTimeInterval) timeInterval - invocation: (NSInvocation *) invocation - repeats: (BOOL) repeats -{ - NSTimer *result = [self timerWithTimeInterval: timeInterval - invocation: invocation - repeats: repeats]; - - [[NSRunLoop currentRunLoop] addTimer: result forMode: NSDefaultRunLoopMode]; - - return result; -} - -+ (NSTimer *) scheduledTimerWithTimeInterval: (NSTimeInterval) timeInterval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats -{ - NSTimer *result = [self timerWithTimeInterval: timeInterval - target: target - selector: selector - userInfo: userInfo - repeats: repeats]; - - [[NSRunLoop currentRunLoop] addTimer: result forMode: NSDefaultRunLoopMode]; - - return result; -} - -- (NSDate *) fireDate { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSTimeInterval) timeInterval { - NSInvalidAbstractInvocation(); - return 0; -} - -- userInfo { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) setFireDate: (NSDate *) date { - NSInvalidAbstractInvocation(); -} - -- (void) fire { - NSInvalidAbstractInvocation(); -} - -- (void) invalidate { - NSInvalidAbstractInvocation(); -} - -- (BOOL) isValid { - NSInvalidAbstractInvocation(); - return NO; -} - -@end diff --git a/Foundation/NSTimer/NSTimer_concrete.h b/Foundation/NSTimer/NSTimer_concrete.h deleted file mode 100644 index ecf19f04..00000000 --- a/Foundation/NSTimer/NSTimer_concrete.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSTimer_concrete : NSTimer { - NSTimeInterval _timeInterval; - NSDate *_fireDate; - BOOL _isValid : 1; - BOOL _repeats : 1; -} - -- initWithFireDate: (NSDate *) date - interval: (NSTimeInterval) timeInterval - repeats: (BOOL) repeats; -- initWithTimeInterval: (NSTimeInterval) timeInterval repeats: (BOOL) repeats; - -@end diff --git a/Foundation/NSTimer/NSTimer_concrete.m b/Foundation/NSTimer/NSTimer_concrete.m deleted file mode 100644 index 315a2d84..00000000 --- a/Foundation/NSTimer/NSTimer_concrete.m +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSTimer_concrete - -- initWithFireDate: (NSDate *) date - interval: (NSTimeInterval) interval - repeats: (BOOL) repeats -{ - _timeInterval = interval; - _fireDate = [date copy]; - - _isValid = YES; - _repeats = repeats; - - return self; -} - -- initWithTimeInterval: (NSTimeInterval) interval repeats: (BOOL) repeats { - - _timeInterval = interval; - _fireDate = [[[NSDate date] addTimeInterval: _timeInterval] retain]; - - _isValid = YES; - _repeats = repeats; - - return self; -} - -- (void) dealloc { - [_fireDate release]; - NSDeallocateObject(self); - return; - [super dealloc]; -} - -- (void) fire { - if (!_repeats) - [self invalidate]; - else if (_isValid) { - NSDate *lastFire = _fireDate; - // We add to the current time to get the next time, if we add to the - // fire date and the timer is a long running task, the timer is always - // behind and always catching up - _fireDate = [[[NSDate date] addTimeInterval: _timeInterval] retain]; - [lastFire release]; - } -} - -- (NSDate *) fireDate { - return _fireDate; -} - -- (NSTimeInterval) timeInterval { - return _timeInterval; -} - -- userInfo { - return nil; -} - -- (void) setFireDate: (NSDate *) date { - date = [date copy]; - [_fireDate release]; - _fireDate = date; -} - -- (BOOL) isValid { - return _isValid; -} - -@end diff --git a/Foundation/NSTimer/NSTimer_invocation.h b/Foundation/NSTimer/NSTimer_invocation.h deleted file mode 100644 index fe01910e..00000000 --- a/Foundation/NSTimer/NSTimer_invocation.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSTimer_invocation : NSTimer_concrete { - NSInvocation *_invocation; -} - -- initWithTimeInterval: (NSTimeInterval) timeInterval - repeats: (BOOL) repeats - invocation: (NSInvocation *) invocation; - -@end diff --git a/Foundation/NSTimer/NSTimer_invocation.m b/Foundation/NSTimer/NSTimer_invocation.m deleted file mode 100644 index c5398a8c..00000000 --- a/Foundation/NSTimer/NSTimer_invocation.m +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSTimer_invocation - -- initWithTimeInterval: (NSTimeInterval) timeInterval - repeats: (BOOL) repeats - invocation: (NSInvocation *) invocation -{ - - [super initWithTimeInterval: timeInterval repeats: repeats]; - - _invocation = [invocation retain]; - - return self; -} - -- (void) dealloc { - [_invocation release]; - [super dealloc]; -} - -- (void) fire { - [_invocation invoke]; - [super fire]; -} - -- (void) invalidate { - _isValid = NO; - [_invocation release]; - _invocation = nil; -} - -@end diff --git a/Foundation/NSTimer/NSTimer_targetAction.h b/Foundation/NSTimer/NSTimer_targetAction.h deleted file mode 100644 index 32e15ca8..00000000 --- a/Foundation/NSTimer/NSTimer_targetAction.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSTimer_targetAction : NSTimer_concrete { - id _userInfo; - id _target; - SEL _selector; -} - -- initWithFireDate: (NSDate *) date - interval: (NSTimeInterval) interval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats; - -- initWithTimeInterval: (NSTimeInterval) timeInterval - repeats: (BOOL) repeats - userInfo: userInfo - target: target - selector: (SEL) selector; - -@end diff --git a/Foundation/NSTimer/NSTimer_targetAction.m b/Foundation/NSTimer/NSTimer_targetAction.m deleted file mode 100644 index 70932517..00000000 --- a/Foundation/NSTimer/NSTimer_targetAction.m +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSTimer_targetAction - -- initWithFireDate: (NSDate *) date - interval: (NSTimeInterval) interval - target: target - selector: (SEL) selector - userInfo: userInfo - repeats: (BOOL) repeats -{ - [super initWithFireDate: date interval: interval repeats: repeats]; - - _userInfo = [userInfo retain]; - _target = [target retain]; // Apple docs say it's retained - _selector = selector; - - return self; -} - -- initWithTimeInterval: (NSTimeInterval) timeInterval - repeats: (BOOL) repeats - userInfo: userInfo - target: target - selector: (SEL) selector -{ - - [super initWithTimeInterval: timeInterval repeats: repeats]; - - _userInfo = [userInfo retain]; - _target = [target retain]; // Apple docs say it's retained - _selector = selector; - - return self; -} - -- (void) dealloc { - [_userInfo release]; - _userInfo = nil; - [_target release]; - _target = nil; - [super dealloc]; -} - -- (void) fire { - [_target performSelector: _selector withObject: self]; - [super fire]; -} - -- (void) invalidate { - _isValid = NO; - [_userInfo release]; - _userInfo = nil; - [_target release]; - _target = nil; - _selector = NULL; -} - -- userInfo { - return _userInfo; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@ 0x%x: %s>", [self class], self, - sel_getName(_selector)]; -} - -@end diff --git a/Foundation/NSURL/NSCachedURLResponse.h b/Foundation/NSURL/NSCachedURLResponse.h deleted file mode 100644 index dc9d6304..00000000 --- a/Foundation/NSURL/NSCachedURLResponse.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@class NSURLResponse, NSData, NSDictionary; - -@interface NSCachedURLResponse : NSObject { - NSURLResponse *_response; - NSData *_data; - NSDictionary *_userInfo; - NSURLCacheStoragePolicy _storagePolicy; -} - -- initWithResponse: (NSURLResponse *) response - data: (NSData *) data - userInfo: (NSDictionary *) userInfo - storagePolicy: (NSURLCacheStoragePolicy) storagePolicy; -- initWithResponse: (NSURLResponse *) response data: (NSData *) data; - -- (NSURLResponse *) response; -- (NSData *) data; -- (NSDictionary *) userInfo; -- (NSURLCacheStoragePolicy) storagePolicy; - -@end diff --git a/Foundation/NSURL/NSCachedURLResponse.m b/Foundation/NSURL/NSCachedURLResponse.m deleted file mode 100644 index 6d8ab7b4..00000000 --- a/Foundation/NSURL/NSCachedURLResponse.m +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@implementation NSCachedURLResponse - -- initWithResponse: (NSURLResponse *) response - data: (NSData *) data - userInfo: (NSDictionary *) userInfo - storagePolicy: (NSURLCacheStoragePolicy) storagePolicy -{ - _response = [response copy]; - _data = [data copy]; - _userInfo = [userInfo copy]; - _storagePolicy = storagePolicy; - return self; -} - -- initWithResponse: (NSURLResponse *) response data: (NSData *) data { - return [self initWithResponse: response - data: data - userInfo: nil - storagePolicy: NSURLCacheStorageAllowed]; -} - -- (void) dealloc { - [_response release]; - [_data release]; - [_userInfo release]; - [super dealloc]; -} - -- (NSURLResponse *) response { - return _response; -} - -- (NSData *) data { - return _data; -} - -- (NSDictionary *) userInfo { - return _userInfo; -} - -- (NSURLCacheStoragePolicy) storagePolicy { - return _storagePolicy; -} - -@end diff --git a/Foundation/NSURL/NSHTTPURLResponse.h b/Foundation/NSURL/NSHTTPURLResponse.h deleted file mode 100644 index 5584210b..00000000 --- a/Foundation/NSURL/NSHTTPURLResponse.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSDictionary; - -@interface NSHTTPURLResponse : NSURLResponse { - NSInteger _statusCode; - NSDictionary *_allHeaderFields; -} - -+ (NSString *) localizedStringForStatusCode: (NSInteger) statusCode; - -- (NSDictionary *) allHeaderFields; -- (NSInteger) statusCode; - -@end diff --git a/Foundation/NSURL/NSHTTPURLResponse.m b/Foundation/NSURL/NSHTTPURLResponse.m deleted file mode 100644 index 6c60a0fc..00000000 --- a/Foundation/NSURL/NSHTTPURLResponse.m +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import - -@implementation NSHTTPURLResponse - -static NSString *valueInHeaders(NSDictionary *headers, NSString *key) { - NSEnumerator *state = [headers keyEnumerator]; - NSString *checkKey; - - key = [key lowercaseString]; - - while ((checkKey = [state nextObject]) != nil) { - if ([[checkKey lowercaseString] isEqualToString: key]) - return [headers objectForKey: checkKey]; - } - - return nil; -} - -static NSString *mimeTypeFromContentType(NSString *contentType) { - // FIXME - return contentType; -} - -static NSString *textEncodingNameFromContentType(NSString *contentType) { - // FIXME - return contentType; -} - -- initWithURL: (NSURL *) url - statusCode: (NSInteger) statusCode - headers: (NSDictionary *) headers -{ - NSString *contentType = valueInHeaders(headers, @"content-type"); - NSInteger contentLength = - [valueInHeaders(headers, @"content-length") integerValue]; - NSString *mimeType = mimeTypeFromContentType(contentType); - NSString *textEncodingName = textEncodingNameFromContentType(contentType); - - [super initWithURL: url - MIMEType: mimeType - expectedContentLength: contentLength - textEncodingName: textEncodingName]; - - _statusCode = statusCode; - _allHeaderFields = [headers retain]; - return self; -} - -+ (NSString *) localizedStringForStatusCode: (NSInteger) statusCode { - NSUnimplementedMethod(); - return nil; -} - -- (NSDictionary *) allHeaderFields { - return _allHeaderFields; -} - -- (NSInteger) statusCode { - return _statusCode; -} - -@end diff --git a/Foundation/NSURL/NSMutableURLRequest.h b/Foundation/NSURL/NSMutableURLRequest.h deleted file mode 100644 index f5478b80..00000000 --- a/Foundation/NSURL/NSMutableURLRequest.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSMutableURLRequest : NSURLRequest - -- (void) setURL: (NSURL *) value; -- (void) setCachePolicy: (NSURLRequestCachePolicy) value; -- (void) setTimeoutInterval: (NSTimeInterval) value; - -- (void) setHTTPMethod: (NSString *) value; - -- (void) setHTTPBody: (NSData *) value; -- (void) setHTTPBodyStream: (NSInputStream *) value; - -- (void) setAllHTTPHeaderFields: (NSDictionary *) allValues; -- (void) setValue: (NSString *) value forHTTPHeaderField: (NSString *) field; -- (void) addValue: (NSString *) value forHTTPHeaderField: (NSString *) field; - -- (void) setHTTPShouldHandleCookies: (BOOL) value; - -- (void) setMainDocumentURL: (NSURL *) value; - -@end diff --git a/Foundation/NSURL/NSMutableURLRequest.m b/Foundation/NSURL/NSMutableURLRequest.m deleted file mode 100644 index 375810cf..00000000 --- a/Foundation/NSURL/NSMutableURLRequest.m +++ /dev/null @@ -1,108 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import - -@interface NSURLRequest (private) -- initWithURLRequest: (NSURLRequest *) other; -@end - -@implementation NSMutableURLRequest : NSURLRequest - -- copyWithZone: (NSZone *) zone { - return [[NSURLRequest alloc] initWithURLRequest: self]; -} - -- (void) setURL: (NSURL *) value { - value = [value copy]; - [_url release]; - _url = value; -} - -- (void) setCachePolicy: (NSURLRequestCachePolicy) value { - _cachePolicy = value; -} - -- (void) setTimeoutInterval: (NSTimeInterval) value { - _timeoutInterval = value; -} - -- (void) setHTTPMethod: (NSString *) value { - value = [value copy]; - [_method release]; - _method = value; -} - -- (void) setHTTPBody: (NSData *) value { - value = [value copy]; - [_bodyDataOrStream release]; - _bodyDataOrStream = value; -} - -- (void) setHTTPBodyStream: (NSInputStream *) value { - value = [value retain]; - [_bodyDataOrStream release]; - _bodyDataOrStream = value; -} - -- (void) setAllHTTPHeaderFields: (NSDictionary *) allValues { - NSEnumerator *state = [allValues keyEnumerator]; - NSString *key; - - [_headerFields removeAllObjects]; - while ((key = [state nextObject]) != nil) { - NSString *value = [allValues objectForKey: key]; - - if ([key isKindOfClass: [NSString class]] && - [value isKindOfClass: [NSString class]]) - [_headerFields setObject: value forKey: key]; - } -} - -- (void) setValue: (NSString *) value forHTTPHeaderField: (NSString *) field { - [_headerFields setObject: value forKey: field]; -} - -- (void) addValue: (NSString *) value forHTTPHeaderField: (NSString *) field { - NSString *existing; - - existing = [_headerFields objectForKey: field]; - if (existing != nil) - value = [[existing stringByAppendingString: @","] - stringByAppendingString: value]; - - [_headerFields setObject: value forKey: field]; -} - -- (void) setHTTPShouldHandleCookies: (BOOL) value { - _handleCookies = value; -} - -- (void) setMainDocumentURL: (NSURL *) value { - value = [value copy]; - [_mainDocumentURL release]; - _mainDocumentURL = value; -} - -@end diff --git a/Foundation/NSURL/NSURL.h b/Foundation/NSURL/NSURL.h deleted file mode 100644 index 364ebc9a..00000000 --- a/Foundation/NSURL/NSURL.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSURLHandle, NSNumber, NSData, NSArray; - -FOUNDATION_EXPORT NSString *const NSURLFileScheme; - -@interface NSURL : NSObject { - NSURL *_baseURL; - NSString *_string; - NSString *_scheme; - NSString *_host; - NSNumber *_port; - NSString *_user; - NSString *_password; - NSString *_path; - NSString *_parameter; - NSString *_query; - NSString *_fragment; -} - -- initWithScheme: (NSString *) scheme - host: (NSString *) host - path: (NSString *) path; -- initFileURLWithPath: (NSString *) path; -- initWithString: (NSString *) string; -- initWithString: (NSString *) string relativeToURL: (NSURL *) parent; - -+ fileURLWithPath: (NSString *) path; -+ URLWithString: (NSString *) string; -+ URLWithString: (NSString *) string relativeToURL: (NSURL *) parent; - -- (NSString *) absoluteString; -- (NSString *) parameterString; -- propertyForKey: (NSString *) key; - -- (NSString *) scheme; -- (NSString *) host; -- (NSString *) user; -- (NSString *) password; -- (NSString *) fragment; -- (NSString *) path; -- (NSNumber *) port; -- (NSString *) query; -- (NSString *) relativePath; -- (NSString *) relativeString; -- (NSString *) resourceSpecifier; - -- (BOOL) isFileURL; - -- (NSURL *) standardizedURL; -- (NSURL *) absoluteURL; -- (NSURL *) baseURL; - -- (NSURL *) URLByAppendingPathComponent: (NSString *) pathComponent; -- (NSURL *) URLByAppendingPathExtension: (NSString *) pathExtension; -- (NSURL *) URLByDeletingLastPathComponent; -- (NSURL *) URLByDeletingPathExtension; -- (NSString *) lastPathComponent; -- (NSString *) pathExtension; - -- (BOOL) setProperty: property forKey: (NSString *) key; - -- (BOOL) setResourceData: (NSData *) data; - -- (NSData *) resourceDataUsingCache: (BOOL) useCache; -- (NSURLHandle *) URLHandleUsingCache: (BOOL) useCache; -- (void) loadResourceDataNotifyingClient: client usingCache: (BOOL) useCache; - -@end - -@interface NSURL (NSURLPathUtilities) - -+ (NSURL *) fileURLWithPathComponents: (NSArray *) components; -- (NSArray *) pathComponents; -- (NSURL *) URLByAppendingPathComponent: (NSString *) pathComponent - isDirectory: (BOOL) isDirectory; -- (NSURL *) URLByAppendingPathExtension: (NSString *) pathExtension; -- (NSURL *) URLByDeletingPathExtension; - -- (NSURL *) URLByStandardizingPath; -- (NSURL *) URLByResolvingSymlinksInPath; - -@end diff --git a/Foundation/NSURL/NSURL.m b/Foundation/NSURL/NSURL.m deleted file mode 100644 index 70fd74fc..00000000 --- a/Foundation/NSURL/NSURL.m +++ /dev/null @@ -1,967 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import - -NSString *const NSURLFileScheme = @"file"; - -/* RFC 1808, no IPV6 - - RFC1808 says ? is part of net_loc prior to / abs_path - Apple treats ? in net_loc as a query without /, seems reasonable - */ - -@implementation NSURL - -typedef struct { - NSString *original; - NSInteger length; - unichar *unicode; - NSInteger position; - unichar *part; - NSInteger partLength; - NSInteger partPosition; -} urlScanner; - -static void initScanner(urlScanner *scanner, NSString *string) { - scanner->original = string; - scanner->length = [string length]; - scanner->unicode = NSZoneMalloc(NULL, sizeof(unichar) * scanner->length); - [string getCharacters: scanner->unicode]; - scanner->position = 0; - scanner->part = NSZoneMalloc(NULL, sizeof(unichar) * scanner->length); - scanner->partLength = 0; - scanner->partPosition = 0; -} - -static void deallocScanner(urlScanner *scanner) { - NSZoneFree(NULL, scanner->unicode); - NSZoneFree(NULL, scanner->part); -} - -static void beginPartScan(urlScanner *scanner) { - scanner->partLength = 0; - scanner->partPosition = scanner->position; -} - -static BOOL resetPartScan(urlScanner *scanner) { - scanner->position = scanner->partPosition; - return NO; -} - -static BOOL more_characters(urlScanner *scanner) { - return (scanner->position < scanner->length) ? YES : NO; -} - -static int peekCharacter(urlScanner *scanner) { - if (!more_characters(scanner)) - return -1; - - return scanner->unicode[scanner->position]; -} - -static int nextCharacter(urlScanner *scanner) { - if (!more_characters(scanner)) - return -1; - - return scanner->unicode[scanner->position++]; -} - -static void backupCharacter(urlScanner *scanner) { - if (scanner->position == 0) - [NSException raise: @"NSURLInternalErrorException" - format: @"scanning before string in backupCharacter()"]; - - scanner->position--; -} - -static void internPartCharacter(urlScanner *scanner, unichar code) { - scanner->part[scanner->partLength++] = code; -} - -static void consume_next(urlScanner *scanner) { - internPartCharacter(scanner, nextCharacter(scanner)); -} - -static NSString *allocPart(urlScanner *scanner) { - if (scanner->partLength > 0) - return [[NSString alloc] initWithCharacters: scanner->part - length: scanner->partLength]; - else - return nil; -} - -static BOOL consume_reserved(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - unichar check = peekCharacter(scanner); - - if ((check == ';') || (check == '/') || (check == '?') || - (check == ':') || (check == '@') || (check == '&') || - (check == '=')) { - result = YES; - consume_next(scanner); - } else - break; - } - - return result; -} - -static BOOL consume_extra(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - unichar check = peekCharacter(scanner); - - if ((check == '!') || (check == '*') || (check == '\'') || - (check == '(') || (check == ')') || (check == ',')) { - result = YES; - consume_next(scanner); - } else - break; - } - - return result; -} - -static BOOL consume_safe(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - unichar check = peekCharacter(scanner); - - if ((check == '$') || (check == '-') || (check == '_') || - (check == '.') || (check == '+')) { - result = YES; - consume_next(scanner); - } else - break; - } - - return result; -} - -static BOOL consume_digit(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - unichar check = peekCharacter(scanner); - - if (check >= '0' && check <= '9') { - result = YES; - consume_next(scanner); - } else - break; - } - - return result; -} - -static BOOL consume_alpha(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - unichar check = peekCharacter(scanner); - - if ((check >= 'A' && check <= 'Z') || (check >= 'a' && check <= 'z')) { - result = YES; - consume_next(scanner); - } else - break; - } - - return result; -} - -static BOOL isHex(unichar code) { - if (code >= 'a' && code <= 'f') - return YES; - if (code >= 'A' && code <= 'F') - return YES; - if (code >= '0' && code <= '9') - return YES; - - return NO; -} - -static BOOL consume_escape_hex(urlScanner *scanner) { - if (!more_characters(scanner)) - return NO; - if (!isHex(peekCharacter(scanner))) - return NO; - - consume_next(scanner); - - if (!more_characters(scanner)) - return NO; - if (!isHex(peekCharacter(scanner))) - return NO; - - consume_next(scanner); - - return YES; -} - -static BOOL consume_unreserved(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - BOOL alpha = consume_alpha(scanner); - BOOL digit = consume_digit(scanner); - BOOL safe = consume_safe(scanner); - BOOL extra = consume_extra(scanner); - - if (alpha || digit || safe || extra) - result = YES; - else - break; - } - return result; -} - -static BOOL consume_uchar(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - if (consume_unreserved(scanner)) - result = YES; - else { - if (peekCharacter(scanner) == '%') { - consume_next(scanner); - if (!consume_escape_hex(scanner)) - return NO; - else - result = YES; - } else - break; - } - } - - return result; -} - -static BOOL consume_pchar(urlScanner *scanner) { - BOOL result = NO; - - while (more_characters(scanner)) { - if (consume_uchar(scanner)) - result = YES; - - unichar code = peekCharacter(scanner); - if (code == ':' || code == '@' || code == '&' || code == '=') { - result = YES; - consume_next(scanner); - } else - break; - } - - return result; -} - -static void scan_fragment(urlScanner *scanner, NSURL *url) { - if (peekCharacter(scanner) != '#') - return; - - nextCharacter(scanner); - - beginPartScan(scanner); - - while (more_characters(scanner)) { - BOOL uchar = consume_uchar(scanner); - BOOL reserved = consume_reserved(scanner); - - if (!(uchar || reserved)) - break; - } - - url->_fragment = allocPart(scanner); -} - -static void scan_query(urlScanner *scanner, NSURL *url) { - if (peekCharacter(scanner) != '?') - return; - - nextCharacter(scanner); - - beginPartScan(scanner); - - while (more_characters(scanner)) { - BOOL uchar = consume_uchar(scanner); - BOOL reserved = consume_reserved(scanner); - - if (!(uchar || reserved)) - break; - } - - url->_query = allocPart(scanner); -} - -static void scan_net_loc(urlScanner *scanner, NSURL *url) { - if (peekCharacter(scanner) != '/') - return; - - nextCharacter(scanner); - if (peekCharacter(scanner) != '/') { - backupCharacter(scanner); - return; - } - nextCharacter(scanner); - - beginPartScan(scanner); - - while (more_characters(scanner)) { - consume_pchar(scanner); - - unichar code = peekCharacter(scanner); - - if (code == ';') - consume_next(scanner); - else - break; - } - - // split into user:pw@host:port - NSInteger hostEnd = scanner->partLength; - int host = 0; - int login; - - for (login = 0; login < scanner->partLength; login++) - if (scanner->part[login] == '@') - break; - - if (login < scanner->partLength) { - host = login + 1; - - int user; - - for (user = 0; user < login; user++) - if (scanner->part[user] == ':') - break; - - url->_user = [[NSString alloc] initWithCharacters: scanner->part - length: user]; - if (user < login) - url->_password = [[NSString alloc] - initWithCharacters: scanner->part + user + 1 - length: login - (user + 1)]; - } - - NSInteger portEnd = scanner->partLength; - int port; - - for (port = host; port < scanner->partLength; port++) - if (scanner->part[port] == ':') - break; - - if (port < scanner->partLength) { - hostEnd = port; - - port++; - NSString *string = - [[NSString alloc] initWithCharacters: scanner->part + port - length: portEnd - port]; - NSScanner *portScanner = [[NSScanner alloc] initWithString: string]; - int portNumber; - - if ([portScanner scanInt: &portNumber] && [portScanner isAtEnd]) - url->_port = [[NSNumber alloc] initWithInt: portNumber]; - - [portScanner release]; - [string release]; - } - - if (hostEnd - host > 0) - url->_host = [[NSString alloc] initWithCharacters: scanner->part + host - length: hostEnd - host]; -} - -static BOOL scan_scheme(urlScanner *scanner, NSURL *url) { - beginPartScan(scanner); - - while (more_characters(scanner)) { - BOOL alpha = consume_alpha(scanner); - BOOL digit = consume_digit(scanner); - - if (!(alpha || digit)) { - unichar check = peekCharacter(scanner); - - if ((check == '+') || (check == '-') || (check == '.')) - consume_next(scanner); - else if (check == ':') { - nextCharacter(scanner); - url->_scheme = allocPart(scanner); - return YES; - } else - break; - } - } - - resetPartScan(scanner); - return NO; -} - -static void scan_params(urlScanner *scanner, NSURL *url) { - if (!more_characters(scanner)) - return; - - if (peekCharacter(scanner) != ';') - return; - - nextCharacter(scanner); - - beginPartScan(scanner); - - while (more_characters(scanner)) { - consume_pchar(scanner); - - unichar check = peekCharacter(scanner); - if ((check == '/') || (check == ';')) - consume_next(scanner); - else - break; - } - - url->_parameter = allocPart(scanner); -} - -static void scan_rel_path(urlScanner *scanner, NSURL *url) { - beginPartScan(scanner); - - while (more_characters(scanner)) { - consume_pchar(scanner); - - unichar check = peekCharacter(scanner); - if (check == '/') - consume_next(scanner); - else - break; - } - - url->_path = allocPart(scanner); - - scan_params(scanner, url); - scan_query(scanner, url); -} - -static void scan_abs_path(urlScanner *scanner, NSURL *url) { - scan_rel_path(scanner, url); -} - -static void scan_net_path(urlScanner *scanner, NSURL *url) { - scan_net_loc(scanner, url); - scan_abs_path(scanner, url); -} - -static BOOL scanURL(urlScanner *scanner, NSURL *url) { - scan_scheme(scanner, url); - scan_net_path(scanner, url); - scan_fragment(scanner, url); - - return more_characters(scanner) ? NO : YES; -} - -- initWithScheme: (NSString *) scheme - host: (NSString *) host - path: (NSString *) path -{ - _scheme = [scheme copy]; - _host = [host copy]; - _path = [path copy]; - return self; -} - -- initFileURLWithPath: (NSString *) path { - if (![path hasPrefix: @"/"]) - path = [@"/" stringByAppendingString: path]; - - return [self initWithScheme: NSURLFileScheme host: @"localhost" path: path]; -} - -- initWithString: (NSString *) string { - return [self initWithString: string relativeToURL: nil]; -} - -- initWithString: (NSString *) string relativeToURL: (NSURL *) parent { - urlScanner scannerStruct, *scanner = &scannerStruct; - - if (string == nil) { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] string == nil", [self class], - sel_getName(_cmd)]; - } - - initScanner(scanner, string); - - if (!scanURL(scanner, self)) { - [self dealloc]; - return nil; - } - - _baseURL = [parent copy]; - _string = [string copy]; - - deallocScanner(scanner); - return self; -} - -+ fileURLWithPath: (NSString *) path { - return [[[self alloc] initFileURLWithPath: path] autorelease]; -} - -+ URLWithString: (NSString *) string { - return [[[self alloc] initWithString: string] autorelease]; -} - -+ URLWithString: (NSString *) string relativeToURL: (NSURL *) parent { - return [[[self alloc] initWithString: string - relativeToURL: parent] autorelease]; -} - -- (void) dealloc { - [_baseURL release]; - [_string release]; - [_scheme release]; - [_host release]; - [_user release]; - [_password release]; - [_fragment release]; - [_path release]; - [_port release]; - [_query release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- initWithCoder: (NSCoder *) coder { - if ([coder allowsKeyedCoding]) { - NSKeyedUnarchiver *keyed = (NSKeyedUnarchiver *) coder; - NSString *rel = [keyed decodeObjectForKey: @"NS.relative"]; - - BOOL isLocalFileURL = NO; - if (rel) { - NSRange range; - if ((range = [rel rangeOfString: @"file://localhost"]).location == - 0) { - rel = [rel substringFromIndex: range.length]; - isLocalFileURL = YES; - } - } - if (isLocalFileURL) - [self initFileURLWithPath: rel]; - else - [self initWithString: rel - relativeToURL: [keyed decodeObjectForKey: @"NS.base"]]; - - return self; - } else { - NSLog(@"NSURL only supports keyed unarchiving"); - [self release]; - return nil; - } -} - -- (void) encodeWithCoder: (NSCoder *) coder { - if ([coder isKindOfClass: [NSKeyedArchiver class]]) { - NSKeyedArchiver *keyed = (NSKeyedArchiver *) coder; - NSString *rel = _string; - - if ([self isFileURL] && [_path length] > 0) { - NSString *path = _path; - if (![path hasPrefix: @"/"]) - path = [@"/" stringByAppendingString: path]; - - rel = [NSString stringWithFormat: @"file://localhost%@", path]; - } - - if (_baseURL) - [keyed encodeObject: _baseURL forKey: @"NS.base"]; - if (rel) - [keyed encodeObject: rel forKey: @"NS.relative"]; - } else { - NSLog(@"NSURL only supports keyed archiving"); - } -} - -- (NSUInteger) hash { - return [_path hash]; -} - -- (BOOL) isEqual: other { - NSURL *otherURL; - - if (self == other) - return YES; - - if (![other isKindOfClass: [NSURL class]]) - return NO; - - otherURL = other; - if (![otherURL->_scheme isEqual: _scheme]) - return NO; - - if (otherURL->_host != _host && ![otherURL->_host isEqual: _host]) - return NO; - - if (otherURL->_path != _path && ![otherURL->_path isEqual: _path]) - return NO; - - return YES; -} - -- (NSString *) _baseHost { - if (!_scheme && !_host) - return [_baseURL _baseHost]; - - else - return _host; -} - -- (NSString *) _baseUser { - if (!_user && !_host && !_scheme) - return [_baseURL _baseUser]; - - else - return _user; -} - -- (NSString *) _basePassword { - if (!_password && !_user && !_host && !_scheme) - return [_baseURL _basePassword]; - - return _password; -} - -static NSString *NormalizePath(NSString *path) { - NSArray *components = [path componentsSeparatedByString: @"/"]; - NSMutableArray *actualComponents = - [NSMutableArray arrayWithCapacity: [components count]]; - - NSString *lastComponent = [components lastObject]; - if (![lastComponent isEqualToString: @".."]) - components = [components - subarrayWithRange: NSMakeRange(0, [components count] - 1)]; - - for (NSString *part in components) { - if ([part isEqualToString: @".."]) { - if ([actualComponents count] > 0 && - ![[actualComponents lastObject] isEqualToString: @".."]) - [actualComponents removeLastObject]; - else - [actualComponents addObject: part]; - } else if (![part isEqualToString: @"."] && - ![part isEqualToString: @""]) { - [actualComponents addObject: part]; - } - } - - if ([lastComponent isEqualToString: @"."] || - [lastComponent isEqualToString: @".."]) { - [actualComponents addObject: @""]; - } else { - [actualComponents addObject: lastComponent]; - } - - return [actualComponents componentsJoinedByString: @"/"]; -} - -- (NSString *) _basePath { - NSString *result = _path; - - if (!_host && !_scheme && _baseURL && ![_path hasPrefix: @"/"]) { - result = [_baseURL _basePath]; - - if (_path) { - if (![result hasSuffix: @"/"]) - result = [result stringByDeletingLastPathComponent]; - result = [result stringByAppendingFormat: @"/%@", _path]; - } - - result = NormalizePath(result); - - result = [@"/" stringByAppendingString: result]; - } - - return result; -} - -static void AppendValueWithPrefix(NSMutableString *orig, NSString *prefix, - NSString *value) -{ - if (nil != value) { - [orig appendString: prefix]; - [orig appendString: value]; - } -} - -static NSMutableString * -AssembleResourceSpecifier(NSMutableString *result, NSString *host, - NSString *user, NSString *password, NSString *path, - NSString *parameterString, NSString *query, - NSString *fragment) -{ - if (host) { - [result appendString: @"//"]; - if (user) { - [result appendString: user]; - if (password) { - [result appendString: @":"]; - [result appendString: password]; - } - [result appendString: @"@"]; - } - [result appendString: host]; - } - - [result appendString: path]; - - AppendValueWithPrefix(result, @";", parameterString); - AppendValueWithPrefix(result, @"?", query); - AppendValueWithPrefix(result, @"#", fragment); - - return result; -} - -- (NSString *) _buildResourceSpecifier { - NSString *host = [self _baseHost]; - NSString *user = [self _baseUser]; - NSString *password = [self _basePassword]; - NSString *path = [self _basePath]; - NSString *parameterString = [self parameterString]; - NSString *query = [self query]; - NSString *fragment = [self fragment]; - - return AssembleResourceSpecifier([NSMutableString string], host, user, - password, path, parameterString, query, - fragment); -} - -- (NSString *) absoluteString { - if (_scheme && _string) { - return _string; - } else { - NSMutableString *result = [NSMutableString string]; - - NSString *scheme = [self scheme]; - if (scheme) { - [result appendString: scheme]; - [result appendString: @":"]; - } - [result appendString: [self _buildResourceSpecifier]]; - - return result; - } -} - -- (NSString *) parameterString { - if (!_scheme && !_host && !_path && !_parameter) - return [_baseURL parameterString]; - else - return _parameter; -} - -- propertyForKey: (NSString *) key { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) scheme { - if (!_scheme) - return [_baseURL scheme]; - else - return _scheme; -} - -- (NSString *) host { - return [self _baseHost]; -} - -- (NSString *) user { - return [self _baseUser]; -} - -- (NSString *) password { - return [self _basePassword]; -} - -- (NSString *) fragment { - if (!_fragment && !_query && !_parameter && !_path && !_scheme && !_host) - return [_baseURL fragment]; - else - return _fragment; -} - -- (NSString *) path { - NSString *result = [self _basePath]; - - if ([result length] > 1 && [result hasSuffix: @"/"]) - result = [result substringToIndex: [result length] - 1]; - - return result; -} - -- (NSNumber *) port { - if (_port == nil) - return [_baseURL port]; - - return _port; -} - -- (NSString *) query { - if (!_scheme && !_host && !_path && !_parameter && !_query) - return [_baseURL query]; - else - return _query; -} - -- (NSString *) relativePath { - NSString *result = [_path - stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; - - if ([result length] > 1 && [result hasSuffix: @"/"]) - result = [result substringToIndex: [result length] - 1]; - - return result; -} - -- (NSString *) relativeString { - return _string; -} - -- (NSString *) resourceSpecifier { - if (_baseURL && !_scheme) - return _string; - else - return [self _buildResourceSpecifier]; -} - -- (BOOL) isFileURL { - return [_scheme isEqualToString: NSURLFileScheme]; -} - -- (NSURL *) standardizedURL { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) description; { - return [self absoluteString]; -} - -- (NSURL *) absoluteURL { - if (_baseURL == nil) - return self; - - return [NSURL URLWithString: [self absoluteString]]; -} - -- (NSURL *) baseURL { - return _baseURL; -} - -- (BOOL) setProperty: property forKey: (NSString *) key { - NSUnimplementedMethod(); - return NO; -} - -- (BOOL) setResourceData: (NSData *) data { - NSUnimplementedMethod(); - return NO; -} - -- (NSData *) resourceDataUsingCache: (BOOL) useCache { - NSUnimplementedMethod(); - return nil; -} - -- (NSURLHandle *) URLHandleUsingCache: (BOOL) useCache { - NSUnimplementedMethod(); - return nil; -} - -- (void) loadResourceDataNotifyingClient: client usingCache: (BOOL) useCache { - NSUnimplementedMethod(); -} - -- (NSURL *) URLByAppendingPathComponent: (NSString *) pathComponent { - NSString *url = [[self absoluteString] - stringByAppendingPathComponent: pathComponent]; - return [NSURL URLWithString: url]; -} - -- (NSURL *) URLByAppendingPathExtension: (NSString *) pathExtension { - NSString *url = [[self absoluteString] - stringByAppendingPathExtension: pathExtension]; - return [NSURL URLWithString: url]; -} - -- (NSURL *) URLByDeletingLastPathComponent { - NSString *url = [[self absoluteString] stringByDeletingLastPathComponent]; - return [NSURL URLWithString: url]; -} - -- (NSURL *) URLByDeletingPathExtension { - NSString *url = [[self absoluteString] stringByDeletingPathExtension]; - return [NSURL URLWithString: url]; -} - -- (NSString *) lastPathComponent { - return [[self absoluteString] lastPathComponent]; -} - -- (NSString *) pathExtension { - return [[self absoluteString] pathExtension]; -} - -@end - -@implementation NSURL (NSURLPathUtilities) - -+ (NSURL *) fileURLWithPathComponents: (NSArray *) components { - return [NSURL fileURLWithPath: [NSString pathWithComponents: components]]; -} - -- (NSArray *) pathComponents { - return [[self path] pathComponents]; -} - -- (NSURL *) URLByAppendingPathComponent: (NSString *) pathComponent - isDirectory: (BOOL) isDirectory -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSURL *) URLByStandardizingPath { - return [NSURL fileURLWithPath: [[self path] stringByStandardizingPath]]; -} - -- (NSURL *) URLByResolvingSymlinksInPath { - return [NSURL - fileURLWithPath: [[self path] stringByResolvingSymlinksInPath]]; -} - -@end diff --git a/Foundation/NSURL/NSURLAuthenticationChallenge.h b/Foundation/NSURL/NSURLAuthenticationChallenge.h deleted file mode 100644 index ed5f1fde..00000000 --- a/Foundation/NSURL/NSURLAuthenticationChallenge.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSError, NSURLResponse, NSURLProtectionSpace, NSURLCredential; - -@protocol NSURLAuthenticationChallengeSender -@end - -@interface NSURLAuthenticationChallenge : NSObject { - NSURLProtectionSpace *_protectionSpace; - NSURLCredential *_proposedCredential; - int _failureCount; - NSURLResponse *_failureResponse; - NSError *_error; - id _sender; -} - -- initWithProtectionSpace: (NSURLProtectionSpace *) space - proposedCredential: (NSURLCredential *) credential - previousFailureCount: (int) failureCount - failureResponse: (NSURLResponse *) failureResponse - error: (NSError *) error - sender: (id) sender; - -- initWithAuthenticationChallenge: (NSURLAuthenticationChallenge *) challenge - sender: (id) - sender; - -- (NSURLProtectionSpace *) protectionSpace; -- (NSURLCredential *) proposedCredential; -- (NSUInteger) previousFailureCount; -- (NSURLResponse *) failureResponse; -- (NSError *) error; -- (id) sender; - -@end diff --git a/Foundation/NSURL/NSURLAuthenticationChallenge.m b/Foundation/NSURL/NSURLAuthenticationChallenge.m deleted file mode 100644 index c9d553da..00000000 --- a/Foundation/NSURL/NSURLAuthenticationChallenge.m +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import - -@implementation NSURLAuthenticationChallenge - -- initWithProtectionSpace: (NSURLProtectionSpace *) space - proposedCredential: (NSURLCredential *) credential - previousFailureCount: (int) failureCount - failureResponse: (NSURLResponse *) failureResponse - error: (NSError *) error - sender: (id) sender -{ - _protectionSpace = [space copy]; - _proposedCredential = [credential copy]; - _failureCount = failureCount; - _failureResponse = [failureResponse copy]; - _sender = [sender retain]; - return self; -} - -- initWithAuthenticationChallenge: (NSURLAuthenticationChallenge *) challenge - sender: (id) - sender -{ - return [self initWithProtectionSpace: [challenge protectionSpace] - proposedCredential: [challenge proposedCredential] - previousFailureCount: [challenge previousFailureCount] - failureResponse: [challenge failureResponse] - error: [challenge error] - sender: sender]; - return self; -} - -- (void) dealloc { - [_protectionSpace release]; - [_proposedCredential release]; - [_failureResponse release]; - [_error release]; - [_sender release]; - [super dealloc]; -} - -- (NSURLProtectionSpace *) protectionSpace { - return _protectionSpace; -} - -- (NSURLCredential *) proposedCredential { - return _proposedCredential; -} - -- (NSUInteger) previousFailureCount { - return _failureCount; -} - -- (NSURLResponse *) failureResponse { - return _failureResponse; -} - -- (NSError *) error { - return _error; -} - -- (id) sender { - return _sender; -} - -@end diff --git a/Foundation/NSURL/NSURLCache.h b/Foundation/NSURL/NSURLCache.h deleted file mode 100644 index 82e3b7cf..00000000 --- a/Foundation/NSURL/NSURLCache.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSCachedURLResponse, NSURLRequest, NSMutableDictionary, NSMutableArray; - -typedef enum { - NSURLCacheStorageAllowed, - NSURLCacheStorageAllowedInMemoryOnly, - NSURLCacheStorageNotAllowed, -} NSURLCacheStoragePolicy; - -@interface NSURLCache : NSObject { - NSString *_path; - NSUInteger _memoryCapacity; - NSUInteger _diskCapacity; - - NSUInteger _currentMemoryUsage; - NSMutableDictionary *_memoryCache; - NSMutableArray *_memoryAccess; - - NSUInteger _currentDiskUsage; - NSMutableDictionary *_diskCache; -} - -+ (NSURLCache *) sharedURLCache; -+ (void) setSharedURLCache: (NSURLCache *) cache; - -- initWithMemoryCapacity: (NSUInteger) memoryCapacity - diskCapacity: (NSUInteger) diskCapacity - diskPath: (NSString *) diskPath; - -- (NSUInteger) memoryCapacity; -- (NSUInteger) diskCapacity; - -- (NSUInteger) currentDiskUsage; -- (NSUInteger) currentMemoryUsage; - -- (NSCachedURLResponse *) cachedResponseForRequest: (NSURLRequest *) request; - -- (void) setMemoryCapacity: (NSUInteger) memoryCapacity; -- (void) setDiskCapacity: (NSUInteger) diskCapacity; - -- (void) storeCachedResponse: (NSCachedURLResponse *) response - forRequest: (NSURLRequest *) request; - -- (void) removeAllCachedResponses; -- (void) removeCachedResponseForRequest: (NSURLRequest *) request; - -@end diff --git a/Foundation/NSURL/NSURLCache.m b/Foundation/NSURL/NSURLCache.m deleted file mode 100644 index 6dbb9080..00000000 --- a/Foundation/NSURL/NSURLCache.m +++ /dev/null @@ -1,330 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@interface NSHTTPURLResponse (private) -- initWithURL: (NSURL *) url - statusCode: (NSInteger) statusCode - headers: (NSDictionary *) headers; -@end - -@implementation NSURLCache - -static NSURLCache *shared = nil; - -+ (NSURLCache *) sharedURLCache { - if (shared == nil) { - NSString *path = [NSSearchPathForDirectoriesInDomains( - NSCachesDirectory, NSUserDomainMask, YES) lastObject]; - - path = [path stringByAppendingPathComponent: @"NSURLCache"]; - - [[NSFileManager defaultManager] createDirectoryAtPath: path - withIntermediateDirectories: YES - attributes: nil - error: NULL]; - - shared = [[NSURLCache alloc] initWithMemoryCapacity: 1024 * 512 - diskCapacity: 1024 * 1024 * 20 - diskPath: path]; - } - - return shared; -} - -+ (void) setSharedURLCache: (NSURLCache *) cache { - cache = [cache retain]; - [shared release]; - shared = cache; -} - -- initWithMemoryCapacity: (NSUInteger) memoryCapacity - diskCapacity: (NSUInteger) diskCapacity - diskPath: (NSString *) diskPath -{ - _path = [diskPath copy]; - _memoryCapacity = memoryCapacity; - _diskCapacity = diskCapacity; - _memoryCache = [[NSMutableDictionary alloc] init]; - _memoryAccess = [[NSMutableArray alloc] init]; - - _diskCache = [[NSMutableDictionary alloc] - initWithContentsOfFile: - [_path stringByAppendingPathComponent: @"cache"]]; - - if (_diskCache == nil) - _diskCache = [[NSMutableDictionary alloc] init]; - - return self; -} - -- (void) dealloc { - [_path release]; - [_memoryCache release]; - [_memoryAccess release]; - [_diskCache release]; - [super dealloc]; -} - -- (NSUInteger) memoryCapacity { - return _memoryCapacity; -} - -- (NSUInteger) diskCapacity { - return _diskCapacity; -} - -- (NSUInteger) currentDiskUsage { - return _currentDiskUsage; -} - -- (NSUInteger) currentMemoryUsage { - return _currentMemoryUsage; -} - -- (NSCachedURLResponse *) cachedResponseForRequest: (NSURLRequest *) request { - NSCachedURLResponse *result = [_memoryCache objectForKey: [request URL]]; - - if (result == nil) { - NSMutableDictionary *properties = - [_diskCache objectForKey: [[request URL] absoluteString]]; - - if (properties != nil) { - NSString *dataPath = - [[_path stringByAppendingPathComponent: - [properties objectForKey: @"file"]] - stringByAppendingPathExtension: @"data"]; - NSData *data = [NSData dataWithContentsOfFile: dataPath]; - NSString *headerPath = - [[_path stringByAppendingPathComponent: - [properties objectForKey: @"file"]] - stringByAppendingPathExtension: @"headers"]; - NSDictionary *headers = - [NSDictionary dictionaryWithContentsOfFile: headerPath]; - - if (data != nil && headers != nil) { - NSHTTPURLResponse *response = [[[NSHTTPURLResponse alloc] - initWithURL: [request URL] - statusCode: 200 - headers: headers] autorelease]; - - result = [[[NSCachedURLResponse alloc] - initWithResponse: response - data: data - userInfo: nil - storagePolicy: NSURLCacheStorageNotAllowed] - autorelease]; - - properties = [[properties mutableCopy] autorelease]; - [properties - setObject: - [NSString - stringWithFormat: - @"%f", - [[NSDate date] - timeIntervalSinceReferenceDate]] - forKey: @"lastAccess"]; - - [_diskCache setObject: properties - forKey: [[request URL] absoluteString]]; - - if (![_diskCache - writeToFile: [_path stringByAppendingPathComponent: - @"cache"] - atomically: YES]) { - } - } - } - } - - return result; -} - -- (void) setMemoryCapacity: (NSUInteger) memoryCapacity { - _memoryCapacity = memoryCapacity; -} - -- (void) setDiskCapacity: (NSUInteger) diskCapacity { - _diskCapacity = diskCapacity; -} - -- (NSString *) nextFileForDiskCache { - CFUUIDRef uuid = CFUUIDCreate(NULL); - NSString *result = - [(NSString *) CFUUIDCreateString(NULL, uuid) autorelease]; - - CFRelease(uuid); - - return result; -} - -- (void) reduceDiskCacheForSize: (NSUInteger) chunk { - // just remove the excess entries from the cache, the removal of invalid - // files will purge them - NSMutableArray *bySize = [[[_diskCache allValues] mutableCopy] autorelease]; - NSSortDescriptor *sort = - [NSSortDescriptor sortDescriptorWithKey: @"lastAccess" - ascending: NO]; - - [bySize sortUsingDescriptors: [NSArray arrayWithObject: sort]]; - - NSInteger i, count = [bySize count]; - NSInteger total = 0; - - for (i = 0; i < count; i++) { - NSDictionary *check = [bySize objectAtIndex: i]; - NSInteger size = [[check objectForKey: @"size"] integerValue]; - - if (total + size + chunk > _diskCapacity) - break; - - total += size; - } - - for (; i < count; i++) { - NSDictionary *check = [bySize objectAtIndex: i]; - - [_diskCache removeObjectForKey: [check objectForKey: @"url"]]; - } - - NSMutableSet *allValidFiles = [[[NSMutableSet alloc] init] autorelease]; - - [allValidFiles addObject: @"cache"]; - - for (NSString *key in _diskCache) { - NSDictionary *properties = [_diskCache objectForKey: key]; - - [allValidFiles - addObject: [[properties objectForKey: @"file"] - stringByAppendingPathExtension: @"headers"]]; - [allValidFiles - addObject: [[properties objectForKey: @"file"] - stringByAppendingPathExtension: @"data"]]; - } - - NSArray *allFiles = - [[NSFileManager defaultManager] contentsOfDirectoryAtPath: _path - error: NULL]; - - for (NSString *check in allFiles) { - - if (![allValidFiles containsObject: check]) { - NSString *fullPath = [_path stringByAppendingPathComponent: check]; - - [[NSFileManager defaultManager] removeItemAtPath: fullPath - error: NULL]; - } - } -} - -- (void) storeDiskCachedResponse: (NSCachedURLResponse *) cachedResponse - forRequest: (NSURLRequest *) request -{ - NSMutableDictionary *properties = [NSMutableDictionary dictionary]; - NSURLResponse *response = [cachedResponse response]; - NSData *data = [cachedResponse data]; - - [self reduceDiskCacheForSize: [data length]]; - - [properties setObject: [NSString stringWithFormat: @"%d", [data length]] - forKey: @"size"]; - NSString *file = [self nextFileForDiskCache]; - [properties setObject: file forKey: @"file"]; - [properties - setObject: [NSString - stringWithFormat: - @"%f", - [[NSDate date] - timeIntervalSinceReferenceDate]] - forKey: @"lastAccess"]; - // duplicative but makes cache purging simpler - [properties setObject: [[request URL] absoluteString] forKey: @"url"]; - - NSString *headersPath = [[_path stringByAppendingPathComponent: file] - stringByAppendingPathExtension: @"headers"]; - NSString *dataPath = [[_path stringByAppendingPathComponent: file] - stringByAppendingPathExtension: @"data"]; - - if (![[(NSHTTPURLResponse *) response allHeaderFields] - writeToFile: headersPath - atomically: YES]) { - return; - } - - if (![data writeToFile: dataPath atomically: YES]) { - return; - } - - [_diskCache setObject: properties forKey: [[request URL] absoluteString]]; - - if (![_diskCache - writeToFile: [_path stringByAppendingPathComponent: @"cache"] - atomically: YES]) { - } -} - -- (void) storeCachedResponse: (NSCachedURLResponse *) response - forRequest: (NSURLRequest *) request -{ - switch ([response storagePolicy]) { - - case NSURLCacheStorageAllowed: - [self storeDiskCachedResponse: response forRequest: request]; - break; - - case NSURLCacheStorageAllowedInMemoryOnly: - [_memoryCache setObject: response forKey: [request URL]]; - break; - - case NSURLCacheStorageNotAllowed: - break; - } -} - -- (void) removeAllCachedResponses { - NSUnimplementedMethod(); -} - -- (void) removeCachedResponseForRequest: (NSURLRequest *) request { - [_memoryCache removeObjectForKey: [request URL]]; - - [_diskCache removeObjectForKey: [[request URL] absoluteString]]; - - if (![_diskCache - writeToFile: [_path stringByAppendingPathComponent: @"cache"] - atomically: YES]) { - } -} - -@end diff --git a/Foundation/NSURL/NSURLConnection.h b/Foundation/NSURL/NSURLConnection.h deleted file mode 100644 index 3f43608a..00000000 --- a/Foundation/NSURL/NSURLConnection.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@class NSInputStream, NSOutputStream, NSRunLoop, NSURLRequest, NSData, - NSURLResponse, NSError, NSMutableArray, NSURLAuthenticationChallenge, - NSCachedURLResponse, NSURLProtocol, NSMutableData; - -@interface NSURLConnection : NSObject { - NSURLRequest *_request; - NSURLProtocol *_protocol; - id _delegate; - NSURLResponse *_response; - NSURLCacheStoragePolicy _storagePolicy; - NSMutableData *_mutableData; -} - -+ (BOOL) canHandleRequest: (NSURLRequest *) request; -+ (NSData *) sendSynchronousRequest: (NSURLRequest *) request - returningResponse: (NSURLResponse **) response - error: (NSError **) error; - -+ (NSURLConnection *) connectionWithRequest: (NSURLRequest *) request - delegate: delegate; - -- initWithRequest: (NSURLRequest *) request - delegate: delegate - startImmediately: (BOOL) startLoading; -- initWithRequest: (NSURLRequest *) request delegate: delegate; - -- (void) start; -- (void) cancel; - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; -- (void) unscheduleFromRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode; - -@end - -@interface NSObject (NSURLConnectionDelegate) -- (void) connection: (NSURLConnection *) connection - didFailWithError: (NSError *) error; -- (void) connection: (NSURLConnection *) connection - didReceiveAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge; -- (void) connection: (NSURLConnection *) connection - didCancelAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge; -- (void) connection: (NSURLConnection *) connection - didReceiveData: (NSData *) data; -- (void) connection: (NSURLConnection *) connection - didReceiveResponse: (NSURLResponse *) response; -- (NSCachedURLResponse *) connection: (NSURLConnection *) connection - willCacheResponse: (NSCachedURLResponse *) response; -- (NSURLRequest *) connection: (NSURLConnection *) connection - willSendRequest: (NSURLRequest *) request - redirectResponse: (NSURLResponse *) response; -- (void) connectionDidFinishLoading: (NSURLConnection *) connection; - -@end diff --git a/Foundation/NSURL/NSURLConnection.m b/Foundation/NSURL/NSURLConnection.m deleted file mode 100644 index 9090ebc6..00000000 --- a/Foundation/NSURL/NSURLConnection.m +++ /dev/null @@ -1,300 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSURLConnectionState.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@interface NSURLProtocol (private) -+ (Class) _URLProtocolClassForRequest: (NSURLRequest *) request; -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode; -- (void) unscheduleFromRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode; -@end -; - -@interface NSURLConnection (private) -@end - -@implementation NSURLConnection - -+ (BOOL) canHandleRequest: (NSURLRequest *) request { - return ([NSURLProtocol _URLProtocolClassForRequest: request] != nil) ? YES - : NO; -} - -+ (NSData *) sendSynchronousRequest: (NSURLRequest *) request - returningResponse: (NSURLResponse **) responsep - error: (NSError **) errorp -{ - NSURLConnectionState *state = - [[[NSURLConnectionState alloc] init] autorelease]; - NSURLConnection *connection = [[self alloc] initWithRequest: request - delegate: state]; - - if (connection == nil) { - - if (errorp != NULL) { - *errorp = [NSError errorWithDomain: NSURLErrorDomain - code: NSURLErrorCannotConnectToHost - userInfo: nil]; - } - - return nil; - } - - NSString *mode = @"NSURLConnectionRequestMode"; - - [connection scheduleInRunLoop: [NSRunLoop currentRunLoop] forMode: mode]; - - [state receiveAllDataInMode: mode]; - [connection unscheduleFromRunLoop: [NSRunLoop currentRunLoop] - forMode: mode]; - - [connection cancel]; - - // Now let's see what we should return to the caller... - - NSData *result = nil; - - if ([state error]) { - if (errorp) { - *errorp = [state error]; - } else { - NSLog(@"error occurred during request: %@", [state error]); - } - } else { - // Looks good - give them the data - result = [[connection->_mutableData retain] autorelease]; - } - - if (responsep != NULL) - *responsep = [[connection->_response retain] autorelease]; - - // The memory management isn't clear - NSURLConnection wants to request - // autorelease of self in some cases (see URLProtocolDidFinishLoading: But - // that conflicts with this explicit release - which matches the alloc of - // the connection above. - [connection release]; - - return result; -} - -+ (NSURLConnection *) connectionWithRequest: (NSURLRequest *) request - delegate: delegate -{ - return [[[self alloc] initWithRequest: request - delegate: delegate] autorelease]; -} - -- initWithRequest: (NSURLRequest *) request - delegate: delegate - startImmediately: (BOOL) startLoading -{ - _request = [request copy]; - Class cls = [NSURLProtocol _URLProtocolClassForRequest: request]; - - if ((_protocol = [[cls alloc] - initWithRequest: _request - cachedResponse: [[NSURLCache sharedURLCache] - cachedResponseForRequest: _request] - client: self]) == nil) { - [self dealloc]; - return nil; - } - - _delegate = [delegate retain]; - - [self retain]; - - if (startLoading) - [self start]; - - return self; -} - -- initWithRequest: (NSURLRequest *) request delegate: delegate { - return [self initWithRequest: request - delegate: delegate - startImmediately: YES]; -} - -- (void) dealloc { - [_request release]; - [_protocol release]; - [_delegate release]; - [_response release]; - [_mutableData release]; - [super dealloc]; -} - -- (void) start { - [_protocol startLoading]; -} - -- (void) cancel { - [_protocol stopLoading]; -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - [_protocol scheduleInRunLoop: runLoop forMode: mode]; -} - -- (void) unscheduleFromRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode -{ - [_protocol unscheduleFromRunLoop: runLoop forMode: mode]; -} - -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - wasRedirectedToRequest: (NSURLRequest *) request - redirectResponse: (NSURLResponse *) redirect -{ -#if DEBUG - NSLog(@"wasRedirectedToRequest: %@", request); -#endif - [_delegate connection: self - willSendRequest: request - redirectResponse: redirect]; -} - -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didReceiveAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge -{ -#if DEBUG - NSLog(@"didReceiveAuthenticationChallenge: %@", challenge); -#endif - // [_delegate connection:self didReceiveAuthenticationChallenge]; -} - -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didCancelAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge -{ -#if DEBUG - NSLog(@"didCancelAuthenticationChallenge: %@", challenge); -#endif - // [_delegate connection:self didCancelAuthenticationChallenge]; -} - -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didReceiveResponse: (NSURLResponse *) response - cacheStoragePolicy: (NSURLCacheStoragePolicy) policy -{ -#if DEBUG - NSLog(@"didReceiveResponse: %@", response); -#endif - _response = [response retain]; - _storagePolicy = policy; - - if ([_delegate respondsToSelector: @selector(connection: - didReceiveResponse:)]) - [_delegate connection: self didReceiveResponse: response]; -} - -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - cachedResponseIsValid: (NSCachedURLResponse *) cachedResponse -{ -#if DEBUG - NSLog(@"cachedResponseIsValid: %@", cachedResponse); -#endif -} - -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didLoadData: (NSData *) data -{ - -#if DEBUG - NSString *str = - [[[NSString alloc] initWithData: data - encoding: NSUTF8StringEncoding] autorelease]; - NSLog(@"didLoadData: %@", str); -#endif - - if (_mutableData == nil) - _mutableData = [[NSMutableData alloc] init]; - - [_mutableData appendData: data]; - - [_delegate connection: self didReceiveData: data]; -} - -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didFailWithError: (NSError *) error -{ -#if DEBUG - NSLog(@"didFailWithError: %@", error); -#endif - - [_delegate connection: self didFailWithError: error]; - - // The memory-management isn't clear - see sendSynchronousRequest: - it - // explicitly releases the connection - so this autorelease means it will be - // over-released if there's an error (like a 404 code) and crash [self - // autorelease]; -} - -- (void) URLProtocolDidFinishLoading: (NSURLProtocol *) urlProtocol { -#if DEBUG - NSLog(@"URLProtocolDidFinishLoading: %@", urlProtocol); -#endif - if (_storagePolicy == NSURLCacheStorageNotAllowed) { - [[NSURLCache sharedURLCache] removeCachedResponseForRequest: _request]; - } else { - NSCachedURLResponse *cachedResponse = - [[NSCachedURLResponse alloc] initWithResponse: _response - data: _mutableData - userInfo: nil - storagePolicy: _storagePolicy]; - - if ([_delegate respondsToSelector: @selector(connection: - willCacheResponse:)]) - cachedResponse = [_delegate connection: self - willCacheResponse: cachedResponse]; - - if (cachedResponse != nil) { - [[NSURLCache sharedURLCache] storeCachedResponse: cachedResponse - forRequest: _request]; - } - } - - if ([_delegate respondsToSelector: @selector(connectionDidFinishLoading:)]) - [_delegate performSelector: @selector(connectionDidFinishLoading:) - withObject: self]; - - // The memory-management isn't clear - see sendSynchronousRequest: - it - // explicitly releases the connection - so this autorelease means it will - // most likely be over-released on a successful download and crash [self - // autorelease]; -} - -@end diff --git a/Foundation/NSURL/NSURLConnectionState.h b/Foundation/NSURL/NSURLConnectionState.h deleted file mode 100644 index 01cc3bd7..00000000 --- a/Foundation/NSURL/NSURLConnectionState.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -/* Private class which maintains NSURLConnection state during a synchronous - * request */ -@class NSMutableData, NSURLResponse, NSError; - -@interface NSURLConnectionState : NSObject { - BOOL _isRunning; - NSError *_error; -} - -- (BOOL) isRunning; -- (void) receiveAllDataInMode: (NSString *) mode; -- (NSError *) error; - -@end diff --git a/Foundation/NSURL/NSURLConnectionState.m b/Foundation/NSURL/NSURLConnectionState.m deleted file mode 100644 index 261d912f..00000000 --- a/Foundation/NSURL/NSURLConnectionState.m +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSURLConnectionState.h" -#import -#import -#import -#import -#import -#import - -@implementation NSURLConnectionState - -- init { - _isRunning = YES; - _error = nil; - return self; -} - -- (void) dealloc { - [_error release]; - [super dealloc]; -} - -- (BOOL) isRunning { - return _isRunning; -} - -- (void) receiveAllDataInMode: (NSString *) mode { - while ([self isRunning]) { - [[NSRunLoop currentRunLoop] runMode: mode - beforeDate: [NSDate distantFuture]]; - } -} - -- (void) connection: (NSURLConnection *) connection - didReceiveData: (NSData *) data -{ -} - -- (NSError *) error { - return _error; -} - -- (void) connection: (NSURLConnection *) connection - didFailWithError: (NSError *) error -{ - _isRunning = NO; - _error = [error retain]; -} - -- (void) connectionDidFinishLoading: (NSURLConnection *) connection { - _isRunning = NO; -} - -@end diff --git a/Foundation/NSURL/NSURLCredential.h b/Foundation/NSURL/NSURLCredential.h deleted file mode 100644 index 9637c6a3..00000000 --- a/Foundation/NSURL/NSURLCredential.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -typedef int NSURLCredentialPersistence; - -@interface NSURLCredential : NSObject { - NSString *_user; - NSString *_password; - NSURLCredentialPersistence _persistence; -} - -+ (NSURLCredential *) credentialWithUser: (NSString *) user - password: (NSString *) password - persistence: - (NSURLCredentialPersistence) persistence; - -- initWithUser: (NSString *) user - password: (NSString *) password - persistence: (NSURLCredentialPersistence) persistence; - -- (NSString *) user; -- (NSString *) password; -- (NSURLCredentialPersistence) persistence; - -- (BOOL) hasPassword; - -@end diff --git a/Foundation/NSURL/NSURLCredential.m b/Foundation/NSURL/NSURLCredential.m deleted file mode 100644 index 01791b76..00000000 --- a/Foundation/NSURL/NSURLCredential.m +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSURLCredential - -+ (NSURLCredential *) credentialWithUser: (NSString *) user - password: (NSString *) password - persistence: - (NSURLCredentialPersistence) persistence -{ - return [[[self alloc] initWithUser: user - password: password - persistence: persistence] autorelease]; -} - -- initWithUser: (NSString *) user - password: (NSString *) password - persistence: (NSURLCredentialPersistence) persistence -{ - _user = [user copy]; - _password = [password copy]; - _persistence = persistence; - return self; -} - -- (void) dealloc { - [_user release]; - [_password release]; - [super dealloc]; -} - -// probably wrong -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (NSString *) user { - return _user; -} - -- (NSString *) password { - return _password; -} - -- (NSURLCredentialPersistence) persistence { - return _persistence; -} - -- (BOOL) hasPassword { - return (_password != nil) ? YES : NO; -} - -@end diff --git a/Foundation/NSURL/NSURLCredentialStorage.h b/Foundation/NSURL/NSURLCredentialStorage.h deleted file mode 100644 index 93397cde..00000000 --- a/Foundation/NSURL/NSURLCredentialStorage.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSDictionary, NSURLCredential, NSURLProtectionSpace; - -FOUNDATION_EXPORT NSString *const NSURLCredentialStorageChangedNotification; - -@interface NSURLCredentialStorage : NSObject { -} - -+ (NSURLCredentialStorage *) sharedCredentialStorage; - -- (NSDictionary *) allCredentials; -- (NSDictionary *) credentialsForProtectionSpace: - (NSURLProtectionSpace *) protectionSpace; -- (NSURLCredential *) defaultCredentialForProtectionSpace: - (NSURLProtectionSpace *) protectionSpace; - -- (void) setCredential: (NSURLCredential *) credential - forProtectionSpace: (NSURLProtectionSpace *) protectionSpace; -- (void) setDefaultCredential: (NSURLCredential *) credential - forProtectionSpace: (NSURLProtectionSpace *) protectionSpace; - -- (void) removeCredential: (NSURLCredential *) credential - forProtectionSpace: (NSURLProtectionSpace *) protectionSpace; - -@end diff --git a/Foundation/NSURL/NSURLCredentialStorage.m b/Foundation/NSURL/NSURLCredentialStorage.m deleted file mode 100644 index 528463eb..00000000 --- a/Foundation/NSURL/NSURLCredentialStorage.m +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -NSString *const NSURLCredentialStorageChangedNotification = - @"NSURLCredentialStorageChangedNotification"; - -@implementation NSURLCredentialStorage - -+ (NSURLCredentialStorage *) sharedCredentialStorage { - NSUnimplementedMethod(); - return nil; -} - -- init { - NSUnimplementedMethod(); - return nil; -} - -- (NSDictionary *) allCredentials { - NSUnimplementedMethod(); - return nil; -} - -- (NSDictionary *) credentialsForProtectionSpace: - (NSURLProtectionSpace *) protectionSpace -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSURLCredential *) defaultCredentialForProtectionSpace: - (NSURLProtectionSpace *) protectionSpace -{ - NSUnimplementedMethod(); - return nil; -} - -- (void) setCredential: (NSURLCredential *) credential - forProtectionSpace: (NSURLProtectionSpace *) protectionSpace -{ - NSUnimplementedMethod(); -} - -- (void) setDefaultCredential: (NSURLCredential *) credential - forProtectionSpace: (NSURLProtectionSpace *) protectionSpace -{ - NSUnimplementedMethod(); -} - -- (void) removeCredential: (NSURLCredential *) credential - forProtectionSpace: (NSURLProtectionSpace *) protectionSpace -{ - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSURL/NSURLDownload.h b/Foundation/NSURL/NSURLDownload.h deleted file mode 100644 index e58a4656..00000000 --- a/Foundation/NSURL/NSURLDownload.h +++ /dev/null @@ -1,88 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSURLRequest, NSURLResponse, NSURLAuthenticationChallenge, NSData, - NSError, NSURLConnection, NSOutputStream; - -@interface NSURLDownload : NSObject { - NSURLRequest *_request; - id _delegate; - BOOL _deletesOnFailure; - NSString *_path; - BOOL _allowOverwrite; - NSURLConnection *_connection; - NSOutputStream *_fileStream; -} - -+ (BOOL) canResumeDownloadDecodedWithEncodingMIMEType: (NSString *) mimeType; - -- initWithRequest: (NSURLRequest *) requst delegate: delegate; -- initWithResumeData: (NSData *) data - delegate: delegate - path: (NSString *) path; - -- (NSURLRequest *) request; -- (NSData *) resumeData; - -- (BOOL) deletesFileUponFailure; - -- (void) setDeletesFileUponFailure: (BOOL) flag; -- (void) setDestination: (NSString *) path - allowOverwrite: (BOOL) allowOverwrite; - -- (void) cancel; - -@end - -@interface NSObject (NSURLDownloadDelegate) -- (void) downloadDidBegin: (NSURLDownload *) download; -- (NSURLRequest *) download: (NSURLDownload *) download - willSendRequest: (NSURLRequest *) request - redirectResponse: (NSURLResponse *) redirect; -- (void) download: (NSURLDownload *) download - didReceiveAuthenticationChallenge: - (NSURLAuthenticationChallenge *) authChallenge; -- (void) download: (NSURLDownload *) download - didCancelAuthenticationChallenge: - (NSURLAuthenticationChallenge *) authChallenge; -- (void) download: (NSURLDownload *) download - didReceiveResponse: (NSURLResponse *) response; -- (void) download: (NSURLDownload *) download - didReceiveDataOfLength: (NSUInteger) length; - -- (void) download: (NSURLDownload *) download - didFailWithError: (NSError *) error; -- (void) downloadDidFinish: (NSURLDownload *) download; - -- (void) download: (NSURLDownload *) download - decideDestinationWithSuggestedFilename: (NSString *) suggested; -- (void) download: (NSURLDownload *) download - didCreateDestination: (NSString *) destPath; -- (BOOL) download: (NSURLDownload *) download - shouldDecodeSourceDataOfMIMEType: (NSString *) mimeType; - -- (void) download: (NSURLDownload *) download - willResumeWithResponse: (NSURLResponse *) response - fromByte: (long long) position; - -- (void) download: (NSURLDownload *) download - didReceiveDataOfLength: (NSUInteger) length; - -@end diff --git a/Foundation/NSURL/NSURLDownload.m b/Foundation/NSURL/NSURLDownload.m deleted file mode 100644 index 685d3303..00000000 --- a/Foundation/NSURL/NSURLDownload.m +++ /dev/null @@ -1,180 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSURLDownload - -+ (BOOL) canResumeDownloadDecodedWithEncodingMIMEType: (NSString *) mimeType { - return YES; -} - -- initWithRequest: (NSURLRequest *) request delegate: delegate { - _request = [request copy]; - _delegate = delegate; - _connection = [[NSURLConnection alloc] initWithRequest: _request - delegate: self - startImmediately: YES]; - return self; -} - -- initWithResumeData: (NSData *) data - delegate: delegate - path: (NSString *) path -{ - NSUnimplementedMethod(); - return NO; -} - -- (NSURLRequest *) request { - return _request; -} - -- (NSData *) resumeData { - NSUnimplementedMethod(); - return NO; -} - -- (BOOL) deletesFileUponFailure { - return _deletesOnFailure; -} - -- (void) setDeletesFileUponFailure: (BOOL) flag { - _deletesOnFailure = flag; -} - -- (void) setDestination: (NSString *) path - allowOverwrite: (BOOL) allowOverwrite -{ - _path = [path copy]; - _allowOverwrite = allowOverwrite; -} - -- (void) cancel { - [_connection cancel]; -} - -- (void) connection: (NSURLConnection *) connection - didFailWithError: (NSError *) error -{ - if ([_delegate respondsToSelector: @selector(download:didFailWithError:)]) - [_delegate download: self didFailWithError: error]; -} - -- (void) connection: (NSURLConnection *) connection - didReceiveAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge -{ - if ([_delegate respondsToSelector: @selector - (download:didReceiveAuthenticationChallenge:)]) - [_delegate download: self didReceiveAuthenticationChallenge: challenge]; -} - -- (void) connection: (NSURLConnection *) connection - didCancelAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge -{ - if ([_delegate respondsToSelector: @selector - (download:didCancelAuthenticationChallenge:)]) - [_delegate download: self didCancelAuthenticationChallenge: challenge]; -} - -- (void) _createFileStreamIfNeeded { - if (_fileStream != nil) - return; - - NSString *check = _path; - - if (!_allowOverwrite) { - if ([[NSFileManager defaultManager] fileExistsAtPath: check]) { - NSString *tryThis; - NSInteger i; - - for (i = 0;; i++) { - tryThis = [check stringByDeletingPathExtension]; - tryThis = [tryThis stringByAppendingFormat: @"-%d", i]; - tryThis = [tryThis - stringByAppendingPathExtension: [check pathExtension]]; - - if (![[NSFileManager defaultManager] - fileExistsAtPath: tryThis]) { - check = tryThis; - break; - } - } - } - } - - _fileStream = [[NSOutputStream alloc] initToFileAtPath: check append: NO]; - - if ([_delegate respondsToSelector: @selector(download: - didCreateDestination:)]) - [_delegate download: self didCreateDestination: check]; -} - -- (void) connection: (NSURLConnection *) connection - didReceiveData: (NSData *) data -{ - [self _createFileStreamIfNeeded]; - [_fileStream write: [data bytes] maxLength: [data length]]; - - if ([_delegate respondsToSelector: @selector(download: - didReceiveDataOfLength:)]) - [_delegate download: self didReceiveDataOfLength: [data length]]; -} - -- (void) connection: (NSURLConnection *) connection - didReceiveResponse: (NSURLResponse *) response -{ - if ([_delegate respondsToSelector: @selector(download:didReceiveResponse:)]) - [_delegate download: self didReceiveResponse: response]; -} - -- (NSCachedURLResponse *) connection: (NSURLConnection *) connection - willCacheResponse: (NSCachedURLResponse *) response -{ - return nil; -} - -- (NSURLRequest *) connection: (NSURLConnection *) connection - willSendRequest: (NSURLRequest *) request - redirectResponse: (NSURLResponse *) response -{ - if ([_delegate respondsToSelector: @selector - (download:willSendRequest:redirectResponse:)]) - return [_delegate download: self - willSendRequest: request - redirectResponse: response]; - - return request; -} - -- (void) connectionDidFinishLoading: (NSURLConnection *) connection { - if ([_delegate respondsToSelector: @selector(downloadDidFinish:)]) - [_delegate downloadDidFinish: self]; -} - -@end diff --git a/Foundation/NSURL/NSURLError.h b/Foundation/NSURL/NSURLError.h deleted file mode 100644 index cc9c81da..00000000 --- a/Foundation/NSURL/NSURLError.h +++ /dev/null @@ -1,46 +0,0 @@ -#import - -enum { - NSURLErrorUnknown = -1, - NSURLErrorCancelled = -999, - NSURLErrorBadURL = -1000, - NSURLErrorTimedOut = -1001, - NSURLErrorUnsupportedURL = -1002, - NSURLErrorCannotFindHost = -1003, - NSURLErrorCannotConnectToHost = -1004, - NSURLErrorNetworkConnectionLost = -1005, - NSURLErrorDNSLookupFailed = -1006, - NSURLErrorHTTPTooManyRedirects = -1007, - NSURLErrorResourceUnavailable = -1008, - NSURLErrorNotConnectedToInternet = -1009, - NSURLErrorRedirectToNonExistentLocation = -1010, - NSURLErrorBadServerResponse = -1011, - NSURLErrorUserCancelledAuthentication = -1012, - NSURLErrorUserAuthenticationRequired = -1013, - NSURLErrorZeroByteResource = -1014, - NSURLErrorCannotDecodeRawData = -1015, - NSURLErrorCannotDecodeContentData = -1016, - NSURLErrorCannotParseResponse = -1017, - NSURLErrorFileDoesNotExist = -1100, - NSURLErrorFileIsDirectory = -1101, - NSURLErrorNoPermissionsToReadFile = -1102, - NSURLErrorDataLengthExceedsMaximum = -1103, - NSURLErrorSecureConnectionFailed = -1200, - NSURLErrorServerCertificateHasBadDate = -1201, - NSURLErrorServerCertificateUntrusted = -1202, - NSURLErrorServerCertificateHasUnknownRoot = -1203, - NSURLErrorServerCertificateNotYetValid = -1204, - NSURLErrorClientCertificateRejected = -1205, - NSURLErrorClientCertificateRequired = -1206, - NSURLErrorCannotLoadFromNetwork = -2000, - NSURLErrorCannotCreateFile = -3000, - NSURLErrorCannotOpenFile = -3001, - NSURLErrorCannotCloseFile = -3002, - NSURLErrorCannotWriteToFile = -3003, - NSURLErrorCannotRemoveFile = -3004, - NSURLErrorCannotMoveFile = -3005, - NSURLErrorDownloadDecodingFailedMidStream = -3006, - NSURLErrorDownloadDecodingFailedToComplete = -3007, -}; - -FOUNDATION_EXPORT NSString *const NSURLErrorDomain; diff --git a/Foundation/NSURL/NSURLError.m b/Foundation/NSURL/NSURLError.m deleted file mode 100644 index b3fd6102..00000000 --- a/Foundation/NSURL/NSURLError.m +++ /dev/null @@ -1,4 +0,0 @@ -#import -#import - -NSString *const NSURLErrorDomain = @"NSURLErrorDomain"; diff --git a/Foundation/NSURL/NSURLHandle.h b/Foundation/NSURL/NSURLHandle.h deleted file mode 100644 index d8171013..00000000 --- a/Foundation/NSURL/NSURLHandle.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -// this is deprecated - -@interface NSURLHandle : NSObject { -} - -@end diff --git a/Foundation/NSURL/NSURLHandle.m b/Foundation/NSURL/NSURLHandle.m deleted file mode 100644 index c0a13b98..00000000 --- a/Foundation/NSURL/NSURLHandle.m +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@implementation NSURLHandle - -@end diff --git a/Foundation/NSURL/NSURLProtectionSpace.h b/Foundation/NSURL/NSURLProtectionSpace.h deleted file mode 100644 index c295b02b..00000000 --- a/Foundation/NSURL/NSURLProtectionSpace.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSURLProtectionSpace : NSObject { - NSString *_host; - int _port; - NSString *_protocol; - NSString *_realm; - NSString *_authenticationMethod; - BOOL _isProxy; -} - -- initWithHost: (NSString *) host - port: (int) port - protocol: (NSString *) protocol - realm: (NSString *) realm - authenticationMethod: (NSString *) authenticationMethod; -- initWithProxyHost: (NSString *) host - port: (int) port - protocol: (NSString *) protocol - realm: (NSString *) realm - authenticationMethod: (NSString *) authenticationMethod; - -- (NSString *) host; -- (int) port; -- (NSString *) protocol; -- (NSString *) realm; -- (NSString *) authenticationMethod; - -- (NSString *) proxyType; - -- (BOOL) receivesCredentialsSecurely; -- (BOOL) isProxy; - -@end diff --git a/Foundation/NSURL/NSURLProtectionSpace.m b/Foundation/NSURL/NSURLProtectionSpace.m deleted file mode 100644 index 9e3c0908..00000000 --- a/Foundation/NSURL/NSURLProtectionSpace.m +++ /dev/null @@ -1,100 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSURLProtectionSpace - -- initWithHost: (NSString *) host - port: (int) port - protocol: (NSString *) protocol - realm: (NSString *) realm - authenticationMethod: (NSString *) authenticationMethod -{ - _host = [host copy]; - _port = port; - _protocol = [protocol copy]; - _realm = [realm copy]; - _authenticationMethod = [authenticationMethod copy]; - _isProxy = NO; - return self; -} - -- initWithProxyHost: (NSString *) host - port: (int) port - protocol: (NSString *) protocol - realm: (NSString *) realm - authenticationMethod: (NSString *) authenticationMethod -{ - _host = [host copy]; - _port = port; - _protocol = [protocol copy]; - _realm = [realm copy]; - _authenticationMethod = [authenticationMethod copy]; - _isProxy = YES; - return self; -} - -- (void) dealloc { - [_host release]; - [_protocol release]; - [_realm release]; - [_authenticationMethod release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (NSString *) host { - return _host; -} - -- (int) port { - return _port; -} - -- (NSString *) protocol { - return _protocol; -} - -- (NSString *) realm { - return _realm; -} - -- (NSString *) authenticationMethod { - return _authenticationMethod; -} - -- (NSString *) proxyType { - NSUnimplementedMethod(); - return nil; -} - -- (BOOL) receivesCredentialsSecurely { - NSUnimplementedMethod(); - return NO; -} - -- (BOOL) isProxy { - return _isProxy; -} - -@end diff --git a/Foundation/NSURL/NSURLProtocol.h b/Foundation/NSURL/NSURLProtocol.h deleted file mode 100644 index 11780825..00000000 --- a/Foundation/NSURL/NSURLProtocol.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@class NSURLProtocol, NSURLRequest, NSURLResponse, NSURLAuthenticationChallenge, - NSCachedURLResponse, NSData, NSError, NSMutableURLRequest; - -@protocol NSURLProtocolClient -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - wasRedirectedToRequest: (NSURLRequest *) request - redirectResponse: (NSURLResponse *) redirect; -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didReceiveAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge; -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didCancelAuthenticationChallenge: - (NSURLAuthenticationChallenge *) challenge; -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didReceiveResponse: (NSURLResponse *) response - cacheStoragePolicy: (NSURLCacheStoragePolicy) policy; -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - cachedResponseIsValid: (NSCachedURLResponse *) response; -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didLoadData: (NSData *) data; -- (void) URLProtocol: (NSURLProtocol *) urlProtocol - didFailWithError: (NSError *) error; -- (void) URLProtocolDidFinishLoading: (NSURLProtocol *) urlProtocol; -@end - -@interface NSURLProtocol : NSObject { - NSURLRequest *_request; - NSCachedURLResponse *_cachedResponse; - id _client; -} - -+ (BOOL) registerClass: (Class) cls; -+ (void) unregisterClass: (Class) cls; - -+ propertyForKey: (NSString *) key inRequest: (NSURLRequest *) request; -+ (void) removePropertyForKey: (NSString *) key - inRequest: (NSMutableURLRequest *) request; -+ (void) setProperty: value - forKey: (NSString *) key - inRequest: (NSMutableURLRequest *) request; - -+ (BOOL) canInitWithRequest: (NSURLRequest *) request; -+ (NSURLRequest *) canonicalRequestForRequest: (NSURLRequest *) request; -+ (BOOL) requestIsCacheEquivalent: (NSURLRequest *) request - toRequest: (NSURLRequest *) other; - -- initWithRequest: (NSURLRequest *) request - cachedResponse: (NSCachedURLResponse *) response - client: (id) client; - -- (NSURLRequest *) request; -- (NSCachedURLResponse *) cachedResponse; -- (id) client; - -- (void) startLoading; -- (void) stopLoading; - -@end diff --git a/Foundation/NSURL/NSURLProtocol.m b/Foundation/NSURL/NSURLProtocol.m deleted file mode 100644 index 4839bd23..00000000 --- a/Foundation/NSURL/NSURLProtocol.m +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSURLProtocol_http.h" -#import -#import -#import - -@implementation NSURLProtocol - -static NSMutableArray *_registeredClasses = nil; - -+ (void) initialize { - if (self == [NSURLProtocol class]) { - _registeredClasses = [NSMutableArray new]; - [_registeredClasses addObject: [NSURLProtocol_http class]]; - } -} - -+ (NSArray *) _registeredClasses { - return _registeredClasses; -} - -+ (BOOL) registerClass: (Class) cls { - [_registeredClasses addObject: cls]; - return YES; -} - -+ (Class) _URLProtocolClassForRequest: (NSURLRequest *) request { - NSArray *classes = [NSURLProtocol _registeredClasses]; - NSInteger count = [classes count]; - - while (--count >= 0) { - Class check = [classes objectAtIndex: count]; - - if ([check canInitWithRequest: request]) - return check; - } - return nil; -} - -+ (void) unregisterClass: (Class) cls { - [_registeredClasses removeObjectIdenticalTo: cls]; -} - -+ propertyForKey: (NSString *) key inRequest: (NSURLRequest *) request { - NSUnimplementedMethod(); - return 0; -} - -+ (void) removePropertyForKey: (NSString *) key - inRequest: (NSMutableURLRequest *) request -{ - NSUnimplementedMethod(); -} - -+ (void) setProperty: value - forKey: (NSString *) key - inRequest: (NSMutableURLRequest *) request -{ - NSUnimplementedMethod(); -} - -+ (BOOL) canInitWithRequest: (NSURLRequest *) request { - NSUnimplementedMethod(); - return 0; -} - -+ (NSURLRequest *) canonicalRequestForRequest: (NSURLRequest *) request { - NSUnimplementedMethod(); - return 0; -} - -+ (BOOL) requestIsCacheEquivalent: (NSURLRequest *) request - toRequest: (NSURLRequest *) other -{ - NSUnimplementedMethod(); - return 0; -} - -- initWithRequest: (NSURLRequest *) request - cachedResponse: (NSCachedURLResponse *) response - client: (id) client -{ - _request = [request retain]; - _cachedResponse = [response retain]; - // Unknown whether the client should be retained - // It will create a retain loop with NSURLConnection if it is, so if you - // retain it Clear the loop at some point or itll leak - _client = client; - return self; -} - -- (void) dealloc { - [_request release]; - [_cachedResponse release]; - [super dealloc]; -} - -- (NSURLRequest *) request { - return _request; -} - -- (NSCachedURLResponse *) cachedResponse { - return _cachedResponse; -} - -- (id) client { - return _client; -} - -- (void) startLoading { - NSUnimplementedMethod(); -} - -- (void) stopLoading { - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSURL/NSURLProtocol_http.h b/Foundation/NSURL/NSURLProtocol_http.h deleted file mode 100644 index b4a1301a..00000000 --- a/Foundation/NSURL/NSURLProtocol_http.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSInputStream, NSOutputStream, NSMutableData, NSMutableDictionary, - NSMutableArray, NSTimer; - -@interface NSURLProtocol_http : NSURLProtocol { - NSMutableArray *_modes; - NSInputStream *_inputStream; - NSOutputStream *_outputStream; - NSTimer *_timeout; - - // output state - NSMutableArray *_outputQueue; - NSInteger _outputNextOffset; - - // parsing state - NSMutableData *_data; - const uint8_t *_bytes; - NSUInteger _length; - int _state; - NSRange _range; - - NSInteger _statusCode; - NSString *_currentKey; - NSMutableDictionary *_rawHeaders; - NSMutableDictionary *_headers; - NSInteger _expectedContentLength; - NSInteger _totalContentReceived; - - NSInteger _chunkSize; -} - -@end diff --git a/Foundation/NSURL/NSURLProtocol_http.m b/Foundation/NSURL/NSURLProtocol_http.m deleted file mode 100644 index 091d7194..00000000 --- a/Foundation/NSURL/NSURLProtocol_http.m +++ /dev/null @@ -1,755 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSURLProtocol_http.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#include - -enum { - STATE_waitingForStatusVersion, - STATE_waitingForStatusCode, - STATE_waitingForStatusReport, - STATE_waitingForStatusCR, - STATE_waitingForStatusLF, - STATE_waitingForHeader, - STATE_waitingForContinuationCR, - STATE_waitingForContinuationLF, - STATE_waitingForHeaderColon, - STATE_waitingForSpaceAfterHeaderColon, - STATE_waitingForHeaderCR, - STATE_waitingForHeaderLF, - STATE_waitingForLastLF, - STATE_waitingForChunkSize, - STATE_waitingForChunkSizeLF, - STATE_waitingForChunkCompletion, - STATE_waitingForChunkCompletionLF, - STATE_entity_body_check_for_lf, - STATE_entity_body, - STATE_didFinishLoading, -}; - -@interface NSHTTPURLResponse (private) -- initWithURL: (NSURL *) url - statusCode: (NSInteger) statusCode - headers: (NSDictionary *) headers; -@end - -@implementation NSURLProtocol_http - -- (void) statusVersion: (NSString *) string { -} - -- (void) headers: (NSDictionary *) headers { -#if 0 - if(NSDebugEnabled) - NSLog(@"statusCode=%d headers: %@",_statusCode,headers); -#endif - - if (_statusCode >= 200 && _statusCode < 300) { - NSURL *url = [_request URL]; - NSHTTPURLResponse *response = - [[[NSHTTPURLResponse alloc] initWithURL: url - statusCode: _statusCode - headers: headers] autorelease]; - NSURLCacheStoragePolicy cachePolicy = NSURLCacheStorageNotAllowed; - - if ([[_request HTTPMethod] isEqualToString: @"GET"]) { - if ([[url scheme] isEqualToString: @"http"]) - cachePolicy = NSURLCacheStorageAllowed; - else if ([[url scheme] isEqualToString: @"https"]) - cachePolicy = NSURLCacheStorageAllowedInMemoryOnly; - } - - [_client URLProtocol: self - didReceiveResponse: response - cacheStoragePolicy: cachePolicy]; - } else if (_statusCode == 304) { - [_client URLProtocol: self cachedResponseIsValid: _cachedResponse]; - - [_client URLProtocol: self - didReceiveResponse: [_cachedResponse response] - cacheStoragePolicy: NSURLCacheStorageNotAllowed]; - - [_client URLProtocol: self didLoadData: [_cachedResponse data]]; - } else { - NSDictionary *userInfo = [NSDictionary - dictionaryWithObject: - [NSString stringWithFormat: @"HTTP status code = %d", - _statusCode] - forKey: NSLocalizedDescriptionKey]; - - NSError *error = [NSError errorWithDomain: NSURLErrorDomain - code: NSURLErrorBadServerResponse - userInfo: userInfo]; - [self stopLoading]; - [_client URLProtocol: self didFailWithError: error]; - } -} - -- (NSString *) normalizedHeaderWithName: (NSString *) theName { - // Normalize headers like Cocoa does: Make the first - // character and any character after '-' uppercase - // and the rest, lowercase. - if ([theName length]) { - char *name = strdup([theName UTF8String]); - int length = strlen(name); - int ii; - name[0] &= ~(1 << 5); - char c = name[0]; - for (ii = 1; ii < length; c = name[ii++]) { - if (c == '-') { - name[ii] &= ~(1 << 5); - } else { - name[ii] |= 1 << 5; - } - } - return [[[NSString alloc] initWithBytesNoCopy: name - length: length - encoding: NSUTF8StringEncoding - freeWhenDone: YES] autorelease]; - } - return theName; -} - -- (void) _headerKey { - [_currentKey autorelease]; - _currentKey = - [[NSString alloc] initWithCString: (char *) _bytes + _range.location - length: _range.length]; -} - -- (void) _headerValue { - NSString *value = - [NSString stringWithCString: (char *) _bytes + _range.location - length: _range.length - 1]; - NSString *oldValue; - NSString *normalized = [self normalizedHeaderWithName: _currentKey]; - if ((oldValue = [_headers objectForKey: normalized]) != nil) - value = [[oldValue stringByAppendingString: @" "] - stringByAppendingString: value]; - - [_rawHeaders setObject: value forKey: _currentKey]; - [_headers setObject: value forKey: normalized]; -} - -- (void) _continuation { - NSString *value = - [NSString stringWithCString: (char *) _bytes + _range.location - length: _range.length - 1]; - NSString *normalized = [self normalizedHeaderWithName: _currentKey]; - NSString *oldValue = [_headers objectForKey: normalized]; - - value = [[oldValue stringByAppendingString: @" "] - stringByAppendingString: value]; - - [_rawHeaders setObject: value forKey: _currentKey]; - [_headers setObject: value forKey: normalized]; -} - -- (BOOL) contentIsChunked { - return [[_headers objectForKey: @"Transfer-Encoding"] isEqual: @"chunked"]; -} - -- (NSInteger) contentLength { - return [[_headers objectForKey: @"Content-Length"] integerValue]; -} - -- (void) didFinishLoading { - if (_state == STATE_didFinishLoading) - return; - - _state = STATE_didFinishLoading; - [self stopLoading]; - [_client URLProtocolDidFinishLoading: self]; -} - -- (void) didLoadData: (NSData *) data { - // NSLog(@"didLoadData %@",[[[NSString alloc] initWithData:data - // encoding:NSUTF8StringEncoding] autorelease]); - - _totalContentReceived += [data length]; - - [_client URLProtocol: self didLoadData: data]; - - if (_expectedContentLength > 0 && - _totalContentReceived >= _expectedContentLength) - [self didFinishLoading]; -} - -- (void) advanceStateWithData: (NSData *) data { - - if (_state == STATE_didFinishLoading) - return; - - if ([data length] == 0) { - [self didFinishLoading]; - return; - } - - if (_state == STATE_entity_body) { - [self didLoadData: data]; - return; - } - - [_data appendData: data]; - _bytes = [_data bytes]; - _length = [_data length]; - - while (NSMaxRange(_range) < _length) { - uint8_t code = _bytes[NSMaxRange(_range)]; - enum { - extendLength, - advanceLocationToNext, - advanceLocationToCurrent, - } rangeAction = extendLength; - - switch (_state) { - - case STATE_waitingForStatusVersion: - if (code == ' ') { - [self statusVersion: [NSString - stringWithCString: (char *) - _bytes + - _range.location - length: _range.length - - 1]]; - rangeAction = advanceLocationToNext; - _state = STATE_waitingForStatusCode; - _statusCode = 0; - } else if (code == '\015') { - [self statusVersion: [NSString - stringWithCString: (char *) - _bytes + - _range.location - length: _range.length - - 1]]; - _state = STATE_waitingForStatusLF; - } - break; - - case STATE_waitingForStatusCode: - if (code >= '0' && code <= '9') - _statusCode = _statusCode * 10 + code - '0'; - else if (code == '\015') { - _state = STATE_waitingForStatusLF; - } else { - _state = STATE_waitingForStatusReport; - rangeAction = advanceLocationToNext; - } - break; - - case STATE_waitingForStatusReport: - if (code == '\015') { - _state = STATE_waitingForStatusLF; - } - break; - - case STATE_waitingForStatusCR: - if (code == '\015') - _state = STATE_waitingForStatusLF; - break; - - case STATE_waitingForStatusLF: - if (code != '\012') - _state = STATE_waitingForStatusCR; - else { - _state = STATE_waitingForHeader; - rangeAction = advanceLocationToNext; - } - break; - - case STATE_waitingForHeader: - if (code == ' ' || code == '\t') - _state = STATE_waitingForContinuationCR; - else if (code == '\015') - _state = STATE_waitingForLastLF; - else - _state = STATE_waitingForHeaderColon; - break; - - case STATE_waitingForContinuationCR: - if (code == '\015') - _state = STATE_waitingForContinuationLF; - break; - - case STATE_waitingForContinuationLF: - if (code != '\012') - _state = STATE_waitingForContinuationCR; - else { - [self _continuation]; - _state = STATE_waitingForHeader; - rangeAction = advanceLocationToNext; - } - break; - - case STATE_waitingForHeaderColon: - if (code == ':') { - [self _headerKey]; - _state = STATE_waitingForSpaceAfterHeaderColon; - rangeAction = advanceLocationToNext; - } - break; - - case STATE_waitingForSpaceAfterHeaderColon: - if (code == ' ') { - rangeAction = advanceLocationToNext; - break; - } - _state = STATE_waitingForHeaderCR; - // fallthru - - case STATE_waitingForHeaderCR: - if (code == '\015') - _state = STATE_waitingForHeaderLF; - break; - - case STATE_waitingForHeaderLF: - if (code != '\012') - _state = STATE_waitingForHeaderCR; - else { - [self _headerValue]; - _state = STATE_waitingForHeader; - rangeAction = advanceLocationToNext; - } - break; - - case STATE_waitingForLastLF: - [self headers: _headers]; - if ([self contentIsChunked]) { - _state = STATE_waitingForChunkSize; - _chunkSize = 0; - rangeAction = advanceLocationToNext; - break; - } else if ([self contentLength] == 0) { - [self didFinishLoading]; - return; - } else { - _expectedContentLength = [self contentLength]; - _totalContentReceived = 0; - _state = STATE_entity_body_check_for_lf; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_waitingForChunkSize: - if (code >= '0' && code <= '9') - _chunkSize = _chunkSize * 16 + (code - '0'); - else if (code >= 'a' && code <= 'f') - _chunkSize = _chunkSize * 16 + (code - 'a') + 10; - else if (code >= 'A' && code <= 'F') - _chunkSize = _chunkSize * 16 + (code - 'A') + 10; - else if (code == '\015') - _state = STATE_waitingForChunkSizeLF; - else { - NSLog(@"parse error %d %o", __LINE__, code); - } - break; - - case STATE_waitingForChunkSizeLF: - if (code == '\012') { - if (_chunkSize == 0) { - [self didFinishLoading]; - return; - NSLog(@"zero chunk"); - } else { - NSLog(@"chunk=%d", _chunkSize); - _state = STATE_waitingForChunkCompletion; - rangeAction = advanceLocationToNext; - } - } else { - NSLog(@"parse error %d", __LINE__); - } - break; - - case STATE_waitingForChunkCompletion: - if (_range.length == _chunkSize) { - _state = STATE_waitingForChunkCompletionLF; - _chunkSize = 0; - if (code == '\015') - NSLog(@"got cr"); - NSLog(@"chunk done"); - [self didLoadData: [NSData dataWithBytes: _bytes + - _range.location - length: _range.length]]; - _range.location = NSMaxRange(_range); - _range.length = 0; - } - break; - - case STATE_waitingForChunkCompletionLF: - if (code == '\012') - NSLog(@"got lf"); - _state = STATE_waitingForChunkSize; - break; - - case STATE_entity_body_check_for_lf: - if (code == '\012') { - _state = STATE_entity_body; - rangeAction = advanceLocationToNext; - // _expectedContentLength--; - break; - } - // fallthrough - - case STATE_entity_body:; - NSInteger pieceLength = _length - _range.location; - _range.length = pieceLength; - - [self didLoadData: [NSData dataWithBytes: _bytes + _range.location - length: pieceLength]]; - return; - } - - switch (rangeAction) { - case extendLength: - _range.length++; - break; - - case advanceLocationToNext: - _range.location = NSMaxRange(_range) + 1; - _range.length = 0; - break; - - case advanceLocationToCurrent: - _range.location = NSMaxRange(_range); - _range.length = 0; - break; - } - } -} - -- (void) loadOutputQueue { - NSURL *url = [_request URL]; - NSString *path = [url relativePath]; - NSString *query = [url query]; - - if ([query length]) - path = [NSString stringWithFormat: @"%@?%@", path, query]; - - NSString *host = [url host]; - NSMutableString *string = [NSMutableString string]; - - [string appendFormat: @"%@ %@ HTTP/1.1\015\012", [_request HTTPMethod], - path]; - [string appendFormat: @"Host: %@\015\012", host]; - [string appendFormat: @"Accept: */*\015\012"]; - - NSMutableDictionary *headers = - [[[_request allHTTPHeaderFields] mutableCopy] autorelease]; - NSEnumerator *state = [headers keyEnumerator]; - NSString *key; - - BOOL contentLengthHeaderSetExplicitly = NO; - - while ((key = [state nextObject]) != nil) { - NSString *value = [headers objectForKey: key]; - [string appendFormat: @"%@: %@\015\012", key, value]; - if ([key isEqualToString: @"Content-Length"]) { - contentLengthHeaderSetExplicitly = YES; - } - } - - if (contentLengthHeaderSetExplicitly == NO && - [[_request HTTPBody] length] > 0) { - // Many web-servers need to know the Content-Length before they're - // prepared to accept a POST. - [string appendFormat: @"Content-Length: %d\015\012", - [[_request HTTPBody] length]]; - } - - if (_cachedResponse != nil) { - NSHTTPURLResponse *response = - (NSHTTPURLResponse *) [_cachedResponse response]; - NSDictionary *headers = [response allHeaderFields]; - NSString *lastModified = nil; - NSString *etag = nil; - - for (NSString *key in headers) { - if ([key caseInsensitiveCompare: @"last-modified"] == NSOrderedSame) - lastModified = [headers objectForKey: key]; - - if ([key caseInsensitiveCompare: @"etag"] == NSOrderedSame) - etag = [headers objectForKey: key]; - } - - if (lastModified != nil) - [string appendFormat: @"If-Modified-Since: %@\015\012", - lastModified]; - - if (etag != nil) - [string appendFormat: @"If-None-Match: %@\015\012", etag]; - } - - [string appendString: @"\015\012"]; - - if (NSDebugEnabled) { -#if 0 - NSLog(@"HTTP request=%@",string); - NSLog(@"body=%@",[[[NSString alloc] initWithData:[_request HTTPBody] encoding:NSUTF8StringEncoding] autorelease]); -#endif - } - NSData *data = [string dataUsingEncoding: NSUTF8StringEncoding]; - [_outputQueue addObject: data]; - if ([[_request HTTPBody] length]) { - [_outputQueue addObject: [_request HTTPBody]]; - } -} - -- (void) startLoading { - [self loadOutputQueue]; -} - -- (void) stopLoading { - [_inputStream setDelegate: nil]; - [_outputStream setDelegate: nil]; - for (NSString *mode in _modes) { - [_inputStream removeFromRunLoop: [NSRunLoop currentRunLoop] - forMode: mode]; - [_outputStream removeFromRunLoop: [NSRunLoop currentRunLoop] - forMode: mode]; - } - [_inputStream close]; - [_inputStream release]; - _inputStream = nil; - [_outputStream close]; - [_outputStream release]; - _outputStream = nil; - - [_timeout invalidate]; - [_timeout release]; - _timeout = nil; -} - -- (void) timeout: (NSTimer *) timer { - NSDictionary *userInfo = - [NSDictionary dictionaryWithObject: @"Connection timed out" - forKey: NSLocalizedDescriptionKey]; - NSError *error = [NSError errorWithDomain: NSURLErrorDomain - code: NSURLErrorTimedOut - userInfo: userInfo]; - - [self stopLoading]; - - [_client URLProtocol: self didFailWithError: error]; -} - -- (void) inputStream: (NSInputStream *) stream - handleEvent: (NSStreamEvent) streamEvent -{ - switch (streamEvent) { - - case NSStreamEventHasBytesAvailable: { - uint8_t buffer[8192]; - NSInteger size = [stream read: buffer maxLength: 8192]; - switch (size) { - case 0: // We're actually at the end - the stream was lying - case -1: // Or the stream is not even open - so no data for us. - [self advanceStateWithData: [NSData data]]; - break; - default: - [self advanceStateWithData: [NSData dataWithBytes: buffer - length: size]]; - break; - } - } break; - - case NSStreamEventEndEncountered: - [self advanceStateWithData: [NSData data]]; - break; - - default: - break; - } -} - -- (void) outputStream: (NSOutputStream *) stream - handleEvent: (NSStreamEvent) streamEvent -{ - if (streamEvent == NSStreamEventHasSpaceAvailable) { - if ([_outputQueue count] == 0) { - } else { - NSData *data = [_outputQueue objectAtIndex: 0]; - uint8_t buffer[8192]; - NSInteger length = [data length] - _outputNextOffset; - - length = MIN(length, 8192); - - [data getBytes: buffer - range: NSMakeRange(_outputNextOffset, length)]; - - _outputNextOffset += length; - if (([data length] - _outputNextOffset) == 0) { - [_outputQueue removeObjectAtIndex: 0]; - _outputNextOffset = 0; - } - - [stream write: buffer maxLength: length]; -#ifdef DEBUG - length = MIN(length, 256); - NSData *dump = [NSData dataWithBytes: buffer length: length]; - NSString *str = [[[NSString alloc] - initWithData: dump - encoding: NSUTF8StringEncoding] autorelease]; - NSLog(@"sent: %@ ...", str); -#endif - } - } -} - -- (void) stream: (NSStream *) stream handleEvent: (NSStreamEvent) streamEvent { - if ([stream isKindOfClass: [NSInputStream class]]) - [self inputStream: (NSInputStream *) stream handleEvent: streamEvent]; - else if ([stream isKindOfClass: [NSOutputStream class]]) - [self outputStream: (NSOutputStream *) stream handleEvent: streamEvent]; -} - -+ (BOOL) canInitWithRequest: (NSURLRequest *) request { - NSString *scheme = [[request URL] scheme]; - - if ([scheme isEqualToString: @"http"]) - return YES; - if ([scheme isEqualToString: @"https"]) - return YES; - - return NO; -} -- initWithRequest: (NSURLRequest *) request - cachedResponse: (NSCachedURLResponse *) response - client: (id) client -{ - [super initWithRequest: request cachedResponse: response client: client]; - - _modes = [[NSMutableArray arrayWithObject: NSDefaultRunLoopMode] retain]; - _outputQueue = [[NSMutableArray alloc] init]; - _outputNextOffset = 0; - - NSURL *url = [_request URL]; - NSString *scheme = [url scheme]; - NSString *hostName = [url host]; - NSNumber *portNumber = [url port]; - - if (portNumber == nil) { - if ([scheme isEqualToString: @"https"]) - portNumber = [NSNumber numberWithInt: 443]; - else - portNumber = [NSNumber numberWithInt: 80]; - } - - NSHost *host = [NSHost hostWithName: hostName]; - - [NSStream getStreamsToHost: host - port: [portNumber intValue] - inputStream: &_inputStream - outputStream: &_outputStream]; - - if (_inputStream == nil || _outputStream == nil) { - [self dealloc]; - return nil; - } - - if ([scheme isEqualToString: @"https"]) { - NSMutableDictionary *sslProperties = [NSMutableDictionary new]; - - [sslProperties setObject: NSStreamSocketSecurityLevelNegotiatedSSL - forKey: NSStreamSocketSecurityLevelKey]; - - [_inputStream setProperty: sslProperties - forKey: (NSString *) kCFStreamPropertySSLSettings]; - [_outputStream setProperty: sslProperties - forKey: (NSString *) kCFStreamPropertySSLSettings]; - } - - [_inputStream setDelegate: self]; - [_outputStream setDelegate: self]; - - _timeout = [[NSTimer timerWithTimeInterval: [request timeoutInterval] - target: self - selector: @selector(timeout:) - userInfo: nil - repeats: NO] retain]; - - for (NSString *mode in _modes) { - [_inputStream scheduleInRunLoop: [NSRunLoop currentRunLoop] - forMode: mode]; - [_outputStream scheduleInRunLoop: [NSRunLoop currentRunLoop] - forMode: mode]; - [[NSRunLoop currentRunLoop] addTimer: _timeout forMode: mode]; - } - - [_inputStream retain]; - [_outputStream retain]; - [_inputStream open]; - [_outputStream open]; - - _data = [NSMutableData new]; - _range = NSMakeRange(0, 0); - _rawHeaders = [NSMutableDictionary new]; - _headers = [NSMutableDictionary new]; - return self; -} - -- (void) dealloc { - [_modes release]; - [_inputStream close]; - [_inputStream release]; - [_outputStream close]; - [_outputStream release]; - - [_timeout invalidate]; - [_timeout release]; - - [_data release]; - [_rawHeaders release]; - [_headers release]; - - [super dealloc]; -} - -- (void) scheduleInRunLoop: (NSRunLoop *) runLoop forMode: (NSString *) mode { - [_inputStream scheduleInRunLoop: runLoop forMode: mode]; - [_outputStream scheduleInRunLoop: runLoop forMode: mode]; - [[NSRunLoop currentRunLoop] addTimer: _timeout forMode: mode]; -} - -- (void) unscheduleFromRunLoop: (NSRunLoop *) runLoop - forMode: (NSString *) mode -{ - [_inputStream removeFromRunLoop: runLoop forMode: mode]; - [_outputStream removeFromRunLoop: runLoop forMode: mode]; - // FIXME: no official way to remove timer -} - -@end diff --git a/Foundation/NSURL/NSURLRequest.h b/Foundation/NSURL/NSURLRequest.h deleted file mode 100644 index 33c2cfd3..00000000 --- a/Foundation/NSURL/NSURLRequest.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@class NSURL, NSInputStream, NSMutableDictionary; - -typedef enum { - NSURLRequestUseProtocolCachePolicy, - NSURLRequestReloadIgnoringCacheData, - NSURLRequestReturnCacheDataElseLoad, - NSURLRequestReturnCacheDataDontLoad -} NSURLRequestCachePolicy; - -@interface NSURLRequest : NSObject { - NSURL *_url; - NSURLRequestCachePolicy _cachePolicy; - NSTimeInterval _timeoutInterval; - NSString *_method; - id _bodyDataOrStream; - NSMutableDictionary *_headerFields; - NSURL *_mainDocumentURL; - BOOL _handleCookies; -} - -- initWithURL: (NSURL *) url; -- initWithURL: (NSURL *) url - cachePolicy: (NSURLRequestCachePolicy) cachePolicy - timeoutInterval: (NSTimeInterval) timeout; - -+ requestWithURL: (NSURL *) url; -+ requestWithURL: (NSURL *) url - cachePolicy: (NSURLRequestCachePolicy) cachePolicy - timeoutInterval: (NSTimeInterval) timeout; - -- (NSURL *) URL; -- (NSURLRequestCachePolicy) cachePolicy; -- (NSTimeInterval) timeoutInterval; - -- (NSString *) HTTPMethod; -- (NSData *) HTTPBody; -- (NSInputStream *) HTTPBodyStream; - -- (NSDictionary *) allHTTPHeaderFields; -- (NSString *) valueForHTTPHeaderField: (NSString *) field; - -- (NSURL *) mainDocumentURL; - -- (BOOL) HTTPShouldHandleCookies; - -@end diff --git a/Foundation/NSURL/NSURLRequest.m b/Foundation/NSURL/NSURLRequest.m deleted file mode 100644 index b41a8fa4..00000000 --- a/Foundation/NSURL/NSURLRequest.m +++ /dev/null @@ -1,153 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import - -@implementation NSURLRequest - -- initWithURLRequest: (NSURLRequest *) other { - _url = [[other URL] copy]; - _cachePolicy = [other cachePolicy]; - _timeoutInterval = [other timeoutInterval]; - - NSData *data = [other HTTPBody]; - if (data != nil) - _bodyDataOrStream = [data copy]; - else - _bodyDataOrStream = [[other HTTPBodyStream] retain]; - - _headerFields = [[other allHTTPHeaderFields] mutableCopy]; - _method = [other HTTPMethod]; - _handleCookies = [other HTTPShouldHandleCookies]; - return self; -} - -- initWithURL: (NSURL *) url { - // apparently the default is 4 minutes - return [self initWithURL: url - cachePolicy: NSURLRequestUseProtocolCachePolicy - timeoutInterval: 60 * 4]; -} - -- initWithURL: (NSURL *) url - cachePolicy: (NSURLRequestCachePolicy) cachePolicy - timeoutInterval: (NSTimeInterval) timeout -{ - _url = [url copy]; - _cachePolicy = cachePolicy; - _timeoutInterval = timeout; - _bodyDataOrStream = nil; - _headerFields = [NSMutableDictionary new]; - _method = @"GET"; - _handleCookies = YES; - return self; -} - -- init { - return [self initWithURL: nil]; -} - -- (void) dealloc { - [_url release]; - [_bodyDataOrStream release]; - [_headerFields release]; - [_method release]; - [super dealloc]; -} - -+ requestWithURL: (NSURL *) url { - return [[[self alloc] initWithURL: url] autorelease]; -} - -+ requestWithURL: (NSURL *) url - cachePolicy: (NSURLRequestCachePolicy) cachePolicy - timeoutInterval: (NSTimeInterval) timeout -{ - return [[[self alloc] initWithURL: url - cachePolicy: cachePolicy - timeoutInterval: timeout] autorelease]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- mutableCopyWithZone: (NSZone *) zone { - return [[NSMutableURLRequest alloc] initWithURLRequest: self]; -} - -- (NSURL *) URL { - return _url; -} - -- (NSURLRequestCachePolicy) cachePolicy { - return _cachePolicy; -} - -- (NSTimeInterval) timeoutInterval { - return _timeoutInterval; -} - -- (NSString *) HTTPMethod { - return _method; -} - -- (NSData *) HTTPBody { - if ([_bodyDataOrStream isKindOfClass: [NSData class]]) - return _bodyDataOrStream; - - return nil; -} - -- (NSInputStream *) HTTPBodyStream { - if ([_bodyDataOrStream isKindOfClass: [NSInputStream class]]) - return _bodyDataOrStream; - - return nil; -} - -- (NSDictionary *) allHTTPHeaderFields { - return _headerFields; -} - -- (NSString *) valueForHTTPHeaderField: (NSString *) field { - field = [field uppercaseString]; - - return [_headerFields objectForKey: field]; -} - -- (NSURL *) mainDocumentURL { - return _mainDocumentURL; -} - -- (BOOL) HTTPShouldHandleCookies { - return _handleCookies; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@ %x: url=%@>", [self class], self, _url]; -} - -@end diff --git a/Foundation/NSURL/NSURLResponse.h b/Foundation/NSURL/NSURLResponse.h deleted file mode 100644 index 41856f92..00000000 --- a/Foundation/NSURL/NSURLResponse.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSURL; - -@interface NSURLResponse : NSObject { - NSURL *_url; - NSString *_mimeType; - NSInteger _expectedContentLength; - NSString *_encoding; -} - -- initWithURL: (NSURL *) url - MIMEType: (NSString *) mimeType - expectedContentLength: (NSInteger) expectedLength - textEncodingName: (NSString *) encoding; - -- (NSURL *) URL; -- (NSString *) MIMEType; -- (long long) expectedContentLength; -- (NSString *) textEncodingName; - -- (NSString *) suggestedFilename; - -@end diff --git a/Foundation/NSURL/NSURLResponse.m b/Foundation/NSURL/NSURLResponse.m deleted file mode 100644 index de912178..00000000 --- a/Foundation/NSURL/NSURLResponse.m +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -@implementation NSURLResponse - -- initWithURL: (NSURL *) url - MIMEType: (NSString *) mimeType - expectedContentLength: (NSInteger) expectedLength - textEncodingName: (NSString *) encoding -{ - _url = [url retain]; - _mimeType = [mimeType retain]; - _expectedContentLength = expectedLength; - _encoding = [encoding retain]; - return self; -} - -- (void) dealloc { - [_url release]; - [_mimeType release]; - [_encoding release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return nil; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- (NSURL *) URL { - return _url; -} - -- (NSString *) MIMEType { - return _mimeType; -} - -- (long long) expectedContentLength { - return _expectedContentLength; -} - -- (NSString *) textEncodingName { - return _encoding; -} - -- (NSString *) suggestedFilename { - NSUnimplementedMethod(); - return nil; -} - -@end diff --git a/Foundation/NSUnarchiver.h b/Foundation/NSUnarchiver.h deleted file mode 100644 index 552b6f22..00000000 --- a/Foundation/NSUnarchiver.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSMutableArray; - -@interface NSUnarchiver : NSCoder { - NSData *_data; - const uint8_t *_bytes; - NSUInteger _position, _length; - NSZone *_objectZone; - - uint32_t _version; - NSMapTable *_objects; - NSMapTable *_classes; - NSMapTable *_cStrings; - NSMapTable *_classVersions; - NSMutableArray *_allObjects; -} - -+ unarchiveObjectWithData: (NSData *) data; -+ unarchiveObjectWithFile: (NSString *) path; - -+ (void) decodeClassName: (NSString *) archiveName - asClassName: (NSString *) runtimeName; -+ (NSString *) classNameDecodedForArchiveClassName: (NSString *) className; - -- (void) decodeValueOfObjCType: (const char *) type at: (void *) data; -- (NSData *) decodeDataObject; -- (NSInteger) versionForClassName: (NSString *) className; - -- initForReadingWithData: (NSData *) data; - -- (BOOL) isAtEnd; -- (NSZone *) objectZone; -- (void) setObjectZone: (NSZone *) zone; - -- (void) decodeClassName: (NSString *) archiveName - asClassName: (NSString *) runtimeName; -- (NSString *) classNameDecodedForArchiveClassName: (NSString *) className; - -- (void) replaceObject: original withObject: replacement; - -@end diff --git a/Foundation/NSUnarchiver.m b/Foundation/NSUnarchiver.m deleted file mode 100644 index 6afd3a1d..00000000 --- a/Foundation/NSUnarchiver.m +++ /dev/null @@ -1,496 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#include - -@implementation NSUnarchiver - -- (void) cannotDecodeType: (const char *) type { - [NSException raise: @"NSUnarchiverCannotDecodeException" - format: @"NSUnarchiver cannot decode type=%s", type]; -} - -- (void) _ensureLength: (NSUInteger) length { - if (_position + length > _length) - [NSException raise: @"NSUnarchiverBadArchiveException" - format: @"NSUnarchiver attempt to read beyond length"]; -} - -- (uint8_t) _extractWordOne { - [self _ensureLength: 1]; - return _bytes[_position++]; -} - -- (uint16_t) _extractWordTwo { - uint16_t result; - - [self _ensureLength: 2]; - - result = _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - - return result; -} - -- (unsigned int) _extractWordFour { - unsigned int result; - - [self _ensureLength: 4]; - - result = _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - - return result; -} - -- (unsigned long long) _extractWordEight { - unsigned long long result; - - [self _ensureLength: 8]; - - result = _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - result <<= 8; - result |= _bytes[_position++]; - - return result; -} - -- (float) _extractDataFloat { - NSSwappedFloat swapped; - - swapped.floatWord = [self _extractWordFour]; - - return NSConvertSwappedFloatToHost(swapped); -} - -- (double) _extractDataDouble { - NSSwappedDouble swapped; - - swapped.doubleWord = [self _extractWordEight]; - - return NSConvertSwappedDoubleToHost(swapped); -} - -- (NSString *) _extractCStringBytes { - NSString *result; - NSUInteger length = 0; - - while ((_position + length) < _length && - (_bytes[_position + length] != '\0')) - length++; - - result = [NSString stringWithCString: (char *) (_bytes + _position) - length: length]; - _position += length + 1; - - return result; -} - -- (NSUInteger) _extractReference { - return (NSUInteger)[self _extractWordFour]; -} - -- (NSString *) _extractCStringString { - NSUInteger ref = [self _extractReference]; - NSString *result = NSMapGet(_cStrings, (void *) ref); - - if (result == nil) { - result = [self _extractCStringBytes]; - NSMapInsert(_cStrings, (void *) ref, result); - } - - return result; -} - -- (const char *) _extractCString { - return [[self _extractCStringString] cString]; -} - -- (Class) _extractClass { - NSUInteger ref = [self _extractReference]; - Class result; - - if (ref == 0) - return [NSObject class]; - else if ((result = NSMapGet(_classes, (void *) ref)) != Nil) - return result; - else { - NSString *className = [self _extractCStringString]; - NSUInteger version = [self _extractWordFour]; - - result = NSClassFromString(className); - - NSMapInsert(_classes, (void *) ref, result); - NSMapInsert(_classVersions, className, (void *) version); - - [self _extractClass]; - - return result; - } -} - -- (id) _extractObject { - NSUInteger ref = [self _extractReference]; - id result; - - if (ref == 0) - return nil; - else if ((result = NSMapGet(_objects, (void *) ref)) != nil) - [result retain]; - else { - Class class = [self _extractClass]; - - result = [class allocWithZone: NULL]; - NSMapInsert(_objects, (void *) ref, result); - result = [result initWithCoder: self]; - result = [result awakeAfterUsingCoder: self]; - - NSMapInsert(_objects, (void *) ref, result); - - [_allObjects addObject: result]; - } - - return result; -} - -- (void) _extractArrayOfObjCType: (const char *) type - length: (NSUInteger) length - at: (void *) addr -{ - - switch (*type) { - case 'c': - case 'C': { - unsigned char *values = addr; - int i; - - for (i = 0; i < length; i++) - values[i] = [self _extractWordOne]; - } break; - - case 's': - case 'S': { - unsigned short *values = addr; - int i; - - for (i = 0; i < length; i++) - values[i] = [self _extractWordTwo]; - } break; - - default: - [self cannotDecodeType: type]; - break; - } -} - -- (void) decodeValueOfObjCType: (const char *) type at: (void *) addr { - const char *checkType = [self _extractCString]; - - if (strcmp(checkType, type) != 0) - [NSException - raise: @"NSUnarchiverTypeMismatchException" - format: @"NSUnarchiver type mismatch decoding %s, contains %s", - type, checkType]; - - switch (*type) { - case 'c': - case 'C': { - unsigned char *value = addr; - *value = [self _extractWordOne]; - } break; - - case 's': - case 'S': { - unsigned short *value = addr; - *value = [self _extractWordTwo]; - } break; - - case 'i': - case 'I': { - unsigned int *value = addr; - *value = [self _extractWordFour]; - } break; - - case 'l': - case 'L': { - unsigned long *value = addr; - *value = [self _extractWordFour]; - } break; - - case 'q': - case 'Q': { - unsigned long long *value = addr; - *value = [self _extractWordEight]; - } break; - - case 'f': { - float *value = addr; - *value = [self _extractDataFloat]; - } break; - - case 'd': { - double *value = addr; - *value = [self _extractDataDouble]; - } break; - - case '*': { - char **cString = addr; - NSString *string = [self _extractCStringString]; - - *cString = - NSZoneMalloc(NSDefaultMallocZone(), [string cStringLength] + 1); - [string getCString: *cString]; - } break; - - case '@': { - id *object = addr; - - *object = [self _extractObject]; - } break; - - case '#': - [self cannotDecodeType: type]; - break; - - case ':': { - SEL *value = addr; - NSString *string = [self _extractCStringString]; - - *value = NSSelectorFromString(string); - } break; - - case '[': { - const char *tmp = type; - NSUInteger length = 0; - - tmp++; // skip [ - for (; *tmp >= '0' && *tmp <= '9'; tmp++) - length = (length * 10) + (*tmp - '0'); - - [self _extractArrayOfObjCType: tmp length: length at: addr]; - } break; - - case '{': - if (strcmp(type, "{?=II}") == 0) { - NSRange *value = addr; - - value->location = [self _extractWordFour]; - value->length = [self _extractWordFour]; - break; - } - if (strcmp(type, @encode(NSPoint)) == 0) { - NSPoint *value = addr; - - value->x = [self _extractDataFloat]; - value->y = [self _extractDataFloat]; - break; - } - if (strcmp(type, @encode(NSSize)) == 0) { - NSSize *value = addr; - - value->width = [self _extractDataFloat]; - value->height = [self _extractDataFloat]; - break; - } - if (strcmp(type, @encode(NSRect)) == 0) { - NSRect *value = addr; - - value->origin.x = [self _extractDataFloat]; - value->origin.y = [self _extractDataFloat]; - value->size.width = [self _extractDataFloat]; - value->size.height = [self _extractDataFloat]; - break; - } - [self cannotDecodeType: type]; - break; - - case '(': - case 'b': - case '^': - case '?': - default: - [self cannotDecodeType: type]; - break; - } -} - -- (void *) decodeBytesWithReturnedLength: (NSUInteger *) lengthp { - void *result; - unsigned length = [self _extractWordFour]; - - [self _ensureLength: length]; - result = (void *) (_bytes + _position); - _position += length; - - *lengthp = length; - - return result; -} - -- (NSData *) decodeDataObject { - [self cannotDecodeType: "decodeDataObject"]; - return nil; -} - -- (NSInteger) versionForClassName: (NSString *) className { - void *oKey, *oVal; - - if (!NSMapMember(_classVersions, className, &oKey, &oVal)) { - // NSLog(@"no version for %@",className); - } - - return (NSInteger) NSMapGet(_classVersions, className); -} - -- (BOOL) invalidHeader { - NSString *label; - - if (_length < strlen("~V1~") + 1 + 4) - return YES; - - label = [self _extractCStringBytes]; - if (![label isEqualToString: @"~V1~"]) - return YES; - - _version = [self _extractWordFour]; - if (_version > 0) - [NSException - raise: @"NSUnarchiverInvalidVersionException" - format: @"NSUnarchiver cannot unarchive version %d", _version]; - - return NO; -} - -- initForReadingWithData: (NSData *) data { - _data = [data copy]; - _bytes = [data bytes]; - _position = 0; - _length = [data length]; - - _objectZone = NSDefaultMallocZone(); - _version = 0; - _objects = NSCreateMapTable(NSIntMapKeyCallBacks, - NSNonRetainedObjectMapValueCallBacks, 0); - _classes = NSCreateMapTable(NSIntMapKeyCallBacks, - NSNonRetainedObjectMapValueCallBacks, 0); - _cStrings = NSCreateMapTable(NSIntMapKeyCallBacks, - NSObjectMapValueCallBacks, 0); - _classVersions = NSCreateMapTable(NSObjectMapKeyCallBacks, - NSIntMapValueCallBacks, 0); - - _allObjects = [NSMutableArray new]; - - if ([self invalidHeader]) { - [self dealloc]; - return nil; - } - return self; -} - -- (void) dealloc { - [_data release]; - NSFreeMapTable(_objects); - NSFreeMapTable(_classes); - NSFreeMapTable(_cStrings); - NSFreeMapTable(_classVersions); - [_allObjects release]; - [super dealloc]; -} - -+ (id) unarchiveObjectWithData: (NSData *) data { - NSUnarchiver *unarchiver = [[[NSUnarchiver allocWithZone: NULL] - initForReadingWithData: data] autorelease]; - - return [unarchiver decodeObject]; -} - -+ (id) unarchiveObjectWithFile: (NSString *) path { - NSData *data = [NSData dataWithContentsOfFile: path]; - NSUnarchiver *unarchiver; - - if (data == nil) - return nil; - - unarchiver = [[[NSUnarchiver allocWithZone: NULL] - initForReadingWithData: data] autorelease]; - - return [unarchiver decodeObject]; -} - -- (BOOL) isAtEnd { - return (_position < _length) ? NO : YES; -} - -- (NSZone *) objectZone { - return _objectZone; -} - -- (void) setObjectZone: (NSZone *) zone { - _objectZone = zone; -} - -- (void) decodeClassName: (NSString *) archiveName - asClassName: (NSString *) runtimeName -{ - NSUnimplementedMethod(); -} - -- (NSString *) classNameDecodedForArchiveClassName: (NSString *) className { - NSUnimplementedMethod(); - return 0; -} - -+ (void) decodeClassName: (NSString *) archiveName - asClassName: (NSString *) runtimeName -{ - NSUnimplementedMethod(); -} - -+ (NSString *) classNameDecodedForArchiveClassName: (NSString *) className { - NSUnimplementedMethod(); - return 0; -} - -- (void) replaceObject: original withObject: replacement { - NSUnimplementedMethod(); -} - -@end diff --git a/Foundation/NSUndoManager/NSUndoGroup.h b/Foundation/NSUndoManager/NSUndoGroup.h deleted file mode 100644 index da37dc0a..00000000 --- a/Foundation/NSUndoManager/NSUndoGroup.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSMutableArray, NSInvocation; - -@interface NSUndoGroup : NSObject { - NSUndoGroup *_parentGroup; - NSMutableArray *_invocations; -} - -+ (NSUndoGroup *) undoGroupWithParentGroup: (NSUndoGroup *) parentGroup; -- (id) initWithParentGroup: (NSUndoGroup *) parentGroup; - -- (NSUndoGroup *) parentGroup; - -- (void) addInvocation: (NSInvocation *) invocation; -- (void) addInvocationsFromArray: (NSArray *) array; -- (NSArray *) invocations; - -- (void) removeInvocationsWithTarget: (id) target; - -- (void) invokeInvocations; - -@end diff --git a/Foundation/NSUndoManager/NSUndoGroup.m b/Foundation/NSUndoManager/NSUndoGroup.m deleted file mode 100644 index d0816c87..00000000 --- a/Foundation/NSUndoManager/NSUndoGroup.m +++ /dev/null @@ -1,85 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - David Young -#import -#import -#import -#import - -@implementation NSUndoGroup - -+ (NSUndoGroup *) undoGroupWithParentGroup: (NSUndoGroup *) parentGroup { - return [[[self alloc] initWithParentGroup: parentGroup] autorelease]; -} - -- (id) initWithParentGroup: (NSUndoGroup *) parentGroup { - _parentGroup = [parentGroup retain]; - _invocations = [[NSMutableArray alloc] init]; - - return self; -} - -- (void) dealloc { - [_parentGroup release]; - [_invocations release]; - - [super dealloc]; -} - -- (NSUndoGroup *) parentGroup { - return _parentGroup; -} - -- (void) addInvocation: (NSInvocation *) invocation { - [_invocations addObject: invocation]; -} - -- (void) addInvocationsFromArray: (NSArray *) array { - [_invocations addObjectsFromArray: array]; -} - -- (NSArray *) invocations { - return _invocations; -} - -- (void) removeInvocationsWithTarget: (id) target { - int i; - - for (i = 0; i < [_invocations count]; ++i) - if ([[_invocations objectAtIndex: i] target] == target) - [_invocations removeObjectAtIndex: i]; -} - -- (void) invokeInvocations { - // LIFO - while ([_invocations count] > 0) { - [[_invocations lastObject] invoke]; - [_invocations removeLastObject]; - } -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@[0x%lx] parentGroup: %@, %d invocations>", - [self class], self, _parentGroup, - [_invocations count]]; -} - -@end diff --git a/Foundation/NSUndoManager/NSUndoManager.h b/Foundation/NSUndoManager/NSUndoManager.h deleted file mode 100644 index d899f65c..00000000 --- a/Foundation/NSUndoManager/NSUndoManager.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSMutableArray, NSInvocation; - -enum { - NSUndoCloseGroupingRunLoopOrdering = 350000, -}; - -FOUNDATION_EXPORT NSString *const NSUndoManagerCheckpointNotification; - -FOUNDATION_EXPORT NSString *const NSUndoManagerDidOpenUndoGroupNotification; -FOUNDATION_EXPORT NSString *const NSUndoManagerWillCloseUndoGroupNotification; - -FOUNDATION_EXPORT NSString *const NSUndoManagerWillUndoChangeNotification; -FOUNDATION_EXPORT NSString *const NSUndoManagerDidUndoChangeNotification; - -FOUNDATION_EXPORT NSString *const NSUndoManagerWillRedoChangeNotification; -FOUNDATION_EXPORT NSString *const NSUndoManagerDidRedoChangeNotification; - -@interface NSUndoManager : NSObject { - NSMutableArray *_undoStack; - NSMutableArray *_redoStack; - BOOL _groupsByEvent; - NSArray *_modes; - int _disableCount; - NSInteger _levelsOfUndo; - id _currentGroup; - int _state; - NSString *_actionName; - id _preparedTarget; - BOOL _performRegistered; -} - -- (NSArray *) runLoopModes; -- (NSUInteger) levelsOfUndo; -- (BOOL) groupsByEvent; - -- (void) setRunLoopModes: (NSArray *) modes; -- (void) setLevelsOfUndo: (NSUInteger) levels; -- (void) setGroupsByEvent: (BOOL) flag; - -- (BOOL) isUndoRegistrationEnabled; -- (void) disableUndoRegistration; -- (void) enableUndoRegistration; - -- (void) beginUndoGrouping; -- (void) endUndoGrouping; - -- (NSInteger) groupingLevel; - -- (BOOL) canUndo; -- (void) undo; -- (void) undoNestedGroup; -- (BOOL) isUndoing; - -- (BOOL) canRedo; -- (void) redo; -- (BOOL) isRedoing; - -- (void) registerUndoWithTarget: (id) target - selector: (SEL) selector - object: (id) object; - -- (void) removeAllActions; -- (void) removeAllActionsWithTarget: (id) target; - -- (id) prepareWithInvocationTarget: (id) target; -- (void) forwardInvocation: (NSInvocation *) invocation; - -- (NSString *) undoActionName; -- (NSString *) undoMenuItemTitle; -- (NSString *) undoMenuTitleForUndoActionName: (NSString *) name; -- (void) setActionName: (NSString *) name; - -- (NSString *) redoActionName; -- (NSString *) redoMenuItemTitle; -- (NSString *) redoMenuTitleForUndoActionName: (NSString *) name; - -- (void) clearRedoStackIfStateIsNormal; -@end diff --git a/Foundation/NSUndoManager/NSUndoManager.m b/Foundation/NSUndoManager/NSUndoManager.m deleted file mode 100644 index 7b19d507..00000000 --- a/Foundation/NSUndoManager/NSUndoManager.m +++ /dev/null @@ -1,477 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import -#import -#import -#import -#import -#import - -enum _NSUndoManagerState { - NSUndoManagerNormal, - NSUndoManagerUndoing, - NSUndoManagerRedoing -}; - -NSString *const NSUndoManagerCheckpointNotification = - @"NSUndoManagerCheckpointNotification"; -NSString *const NSUndoManagerDidOpenUndoGroupNotification = - @"NSUndoManagerDidOpenUndoGroupNotification"; -NSString *const NSUndoManagerWillCloseUndoGroupNotification = - @"NSUndoManagerWillCloseUndoGroupNotification"; -NSString *const NSUndoManagerWillUndoChangeNotification = - @"NSUndoManagerWillUndoChangeNotification"; -NSString *const NSUndoManagerDidUndoChangeNotification = - @"NSUndoManagerDidUndoChangeNotification"; -NSString *const NSUndoManagerWillRedoChangeNotification = - @"NSUndoManagerWillRedoChangeNotification"; -NSString *const NSUndoManagerDidRedoChangeNotification = - @"NSUndoManagerDidRedoChangeNotification"; - -@implementation NSUndoManager - -- (void) _registerPerform { - if (!_performRegistered) { - _performRegistered = YES; - [[NSRunLoop currentRunLoop] - performSelector: @selector(runLoopUndo:) - target: self - argument: nil - order: NSUndoCloseGroupingRunLoopOrdering - modes: _modes]; - } -} - -- (void) _unregisterPerform { - if (_performRegistered) { - _performRegistered = NO; - [[NSRunLoop currentRunLoop] - cancelPerformSelector: @selector(runLoopUndo:) - target: self - argument: nil]; - } -} - -- (id) init { - _undoStack = [[NSMutableArray alloc] init]; - _redoStack = [[NSMutableArray alloc] init]; - _state = NSUndoManagerNormal; - - [self setRunLoopModes: [NSArray arrayWithObject: NSDefaultRunLoopMode]]; - [self setGroupsByEvent: YES]; - _performRegistered = NO; - - return self; -} - -- (void) dealloc { - [self _unregisterPerform]; - - [_undoStack release]; - [_redoStack release]; - [_currentGroup release]; - [_modes release]; - [_actionName release]; - - [super dealloc]; -} - -- (NSArray *) runLoopModes { - return _modes; -} - -- (NSUInteger) levelsOfUndo { - return _levelsOfUndo; -} - -- (BOOL) groupsByEvent { - return _groupsByEvent; -} - -- (void) setRunLoopModes: (NSArray *) modes { - [_modes release]; - _modes = [modes retain]; - [self _unregisterPerform]; - if (_groupsByEvent) - [self _registerPerform]; -} - -- (void) setLevelsOfUndo: (NSUInteger) levels { - _levelsOfUndo = levels; - while ([_undoStack count] > _levelsOfUndo) - [_undoStack removeObjectAtIndex: 0]; - while ([_redoStack count] > _levelsOfUndo) - [_redoStack removeObjectAtIndex: 0]; -} - -- (void) setGroupsByEvent: (BOOL) flag { - _groupsByEvent = flag; - if (_groupsByEvent) - [self _registerPerform]; - else - [self _unregisterPerform]; -} - -- (BOOL) isUndoRegistrationEnabled { - return (_disableCount == 0); -} - -- (void) disableUndoRegistration { - _disableCount++; -} - -- (void) enableUndoRegistration { - if (_disableCount == 0) - [NSException raise: NSInternalInconsistencyException - format: @"Attempt to enable registration with no disable " - @"message in effect"]; - - _disableCount--; -} - -- (void) beginUndoGrouping { - NSUndoGroup *undoGroup = - [NSUndoGroup undoGroupWithParentGroup: _currentGroup]; - - if (!([_currentGroup parentGroup] == nil && _state == NSUndoManagerUndoing)) - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerCheckpointNotification - object: self]; - - [_currentGroup release]; - _currentGroup = [undoGroup retain]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerDidOpenUndoGroupNotification - object: self]; -} - -- (void) endUndoGrouping { - NSMutableArray *stack = nil; - NSUndoGroup *parentGroup = [[_currentGroup parentGroup] retain]; - - if (_currentGroup == nil) - [NSException raise: NSInternalInconsistencyException - format: @"endUndoGrouping called without first calling " - @"beginUndoGrouping"]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerCheckpointNotification - object: self]; - - if (parentGroup == nil && [[_currentGroup invocations] count] > 0) { - switch (_state) { - case NSUndoManagerNormal: - [[NSNotificationCenter defaultCenter] - postNotificationName: - NSUndoManagerWillCloseUndoGroupNotification - object: self]; - - case NSUndoManagerRedoing: - stack = _undoStack; - break; - - case NSUndoManagerUndoing: - stack = _redoStack; - break; - } - - [stack addObject: _currentGroup]; - if (_levelsOfUndo > 0) - if ([stack count] > _levelsOfUndo) - [stack removeObjectAtIndex: 0]; - } else { - // a nested group was closed. fold its invocations into its parent, - // preserving the order for future changes on the parent. - [parentGroup addInvocationsFromArray: [_currentGroup invocations]]; - } - - [_currentGroup release]; - _currentGroup = parentGroup; -} - -- (NSInteger) groupingLevel { - NSUndoGroup *temp = _currentGroup; - int level = (_currentGroup != nil); - - while ((temp = [temp parentGroup]) != nil) - level++; - - return level; -} - -- (void) runLoopUndo: (id) dummy { - if (_groupsByEvent == YES) { - if (_currentGroup != nil) - [self endUndoGrouping]; - _performRegistered = NO; - } -} - -- (BOOL) canUndo { - if ([_undoStack count] > 0) - return YES; - - if ([[_currentGroup invocations] count] > 0) - return YES; - - return NO; -} - -- (void) undoNestedGroup { - NSUndoGroup *undoGroup; - - if (_currentGroup != nil) - [NSException raise: NSInternalInconsistencyException - format: @"undo called with open nested group"]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerCheckpointNotification - object: self]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerWillUndoChangeNotification - object: self]; - - _state = NSUndoManagerUndoing; - undoGroup = [[_undoStack lastObject] retain]; - [_undoStack removeLastObject]; - [self beginUndoGrouping]; - [undoGroup invokeInvocations]; - [self endUndoGrouping]; - [undoGroup release]; - _state = NSUndoManagerNormal; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerDidUndoChangeNotification - object: self]; -} - -- (void) undo { - if ([self groupingLevel] == 1) - [self endUndoGrouping]; - - [self undoNestedGroup]; -} - -- (BOOL) isUndoing { - return (_state == NSUndoManagerUndoing); -} - -- (BOOL) canRedo { - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerCheckpointNotification - object: self]; - return ([_redoStack count] > 0); -} - -- (void) redo { - NSUndoGroup *undoGroup; - - if (_state == NSUndoManagerUndoing) - [NSException raise: NSInternalInconsistencyException - format: @"redo called while undoing"]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerCheckpointNotification - object: self]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerWillRedoChangeNotification - object: self]; - - _state = NSUndoManagerRedoing; - undoGroup = [[_redoStack lastObject] retain]; - [_redoStack removeLastObject]; - [self beginUndoGrouping]; - [undoGroup invokeInvocations]; - [self endUndoGrouping]; - [undoGroup release]; - _state = NSUndoManagerNormal; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUndoManagerDidRedoChangeNotification - object: self]; -} - -- (BOOL) isRedoing { - return (_state == NSUndoManagerRedoing); -} - -- (void) registerUndoWithTarget: (id) target - selector: (SEL) selector - object: (id) object -{ - NSInvocation *invocation; - NSMethodSignature *signature; - - if (_disableCount > 0) - return; - - if (_groupsByEvent && _currentGroup == nil) { - [self _registerPerform]; - [self beginUndoGrouping]; - } - - if (_currentGroup == nil) - [NSException raise: NSInternalInconsistencyException - format: @"forwardInvocation called without first opening " - @"an undo group"]; - - signature = [target methodSignatureForSelector: selector]; - invocation = [NSInvocation invocationWithMethodSignature: signature]; - - [invocation setTarget: target]; - [invocation setSelector: selector]; - [invocation setArgument: &object atIndex: 2]; - [invocation retainArguments]; - - [_currentGroup addInvocation: invocation]; - - if (_state == NSUndoManagerNormal) - [_redoStack removeAllObjects]; -} - -- (void) removeAllActions { - [_undoStack removeAllObjects]; - [_redoStack removeAllObjects]; - _disableCount = 0; -} - -- (void) removeAllActionsWithTarget: (id) target { - NSUndoGroup *undoGroup; - int i; - - [_currentGroup removeInvocationsWithTarget: target]; - - for (i = 0; i < [_undoStack count]; ++i) { - undoGroup = [_undoStack objectAtIndex: i]; - - [undoGroup removeInvocationsWithTarget: target]; - if ([[undoGroup invocations] count] == 0) - [_undoStack removeObject: undoGroup]; - } - for (i = 0; i < [_redoStack count]; ++i) { - undoGroup = [_redoStack objectAtIndex: i]; - - [undoGroup removeInvocationsWithTarget: target]; - if ([[undoGroup invocations] count] == 0) - [_redoStack removeObject: undoGroup]; - } -} - -- (id) prepareWithInvocationTarget: (id) target { - _preparedTarget = [target retain]; - - return self; -} - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) selector { - return [_preparedTarget methodSignatureForSelector: selector]; -} - -- (void) forwardInvocation: (NSInvocation *) invocation { - if (_disableCount > 0) - return; - - if (_preparedTarget == nil) - [NSException raise: NSInternalInconsistencyException - format: @"forwardInvocation called without first preparing " - @"a target"]; - - if (_groupsByEvent && _currentGroup == nil) { - [self _registerPerform]; - [self beginUndoGrouping]; - } - - if (_currentGroup == nil) - [NSException raise: NSInternalInconsistencyException - format: @"forwardInvocation called without first opening " - @"an undo group"]; - - [invocation setTarget: _preparedTarget]; - [_currentGroup addInvocation: invocation]; - [invocation retainArguments]; - - if (_state == NSUndoManagerNormal) - [_redoStack removeAllObjects]; - - [_preparedTarget release]; - _preparedTarget = nil; -} - -- (void) setActionName: (NSString *) name { - [_actionName release]; - _actionName = [name retain]; -} - -- (NSString *) undoActionName { - if ([self canUndo]) - return _actionName; - - return nil; -} - -- (NSString *) undoMenuItemTitle { - return [self undoMenuTitleForUndoActionName: [self undoActionName]]; -} - -// needs localization -- (NSString *) undoMenuTitleForUndoActionName: (NSString *) name { - if (name != nil) { - if ([name length] > 0) - return [NSString stringWithFormat: @"Undo %@", name]; - - return @"Undo"; - } - - return name; -} - -- (NSString *) redoActionName { - if ([self canRedo]) - return _actionName; - - return nil; -} - -- (NSString *) redoMenuItemTitle { - return [self redoMenuTitleForUndoActionName: [self redoActionName]]; -} - -- (NSString *) redoMenuTitleForUndoActionName: (NSString *) name { - if (name != nil) { - if ([name length] > 0) - return [NSString stringWithFormat: @"Redo %@", name]; - - return @"Redo"; - } - - return name; -} - -- (void) clearRedoStackIfStateIsNormal { - if (_state == NSUndoManagerNormal) - [_redoStack removeAllObjects]; -} - -@end diff --git a/Foundation/NSUserDefaults/NSPersistantDomain.h b/Foundation/NSUserDefaults/NSPersistantDomain.h deleted file mode 100644 index 5c594002..00000000 --- a/Foundation/NSUserDefaults/NSPersistantDomain.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSEnumerator; - -@interface NSPersistantDomain : NSObject - -+ (NSPersistantDomain *) persistantDomainWithName: (NSString *) name; - -- (NSArray *) allKeys; -- (NSEnumerator *) keyEnumerator; -- objectForKey: (NSString *) key; -- (void) setObject: object forKey: (NSString *) key; -- (void) removeObjectForKey: (NSString *) key; - -@end diff --git a/Foundation/NSUserDefaults/NSPersistantDomain.m b/Foundation/NSUserDefaults/NSPersistantDomain.m deleted file mode 100644 index 3bd01109..00000000 --- a/Foundation/NSUserDefaults/NSPersistantDomain.m +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSPersistantDomain - -+ (NSPersistantDomain *) persistantDomainWithName: (NSString *) name { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSArray *) allKeys { - NSInvalidAbstractInvocation(); - return nil; -} - -- (NSEnumerator *) keyEnumerator { - NSInvalidAbstractInvocation(); - return nil; -} - -- objectForKey: (NSString *) key { - NSInvalidAbstractInvocation(); - return nil; -} - -- (void) setObject: object forKey: (NSString *) key { - NSInvalidAbstractInvocation(); -} - -- (void) removeObjectForKey: (NSString *) key { - NSInvalidAbstractInvocation(); -} - -@end diff --git a/Foundation/NSUserDefaults/NSUserDefaults.h b/Foundation/NSUserDefaults/NSUserDefaults.h deleted file mode 100644 index a4c9f9e6..00000000 --- a/Foundation/NSUserDefaults/NSUserDefaults.h +++ /dev/null @@ -1,103 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSArray, NSData, NSMutableDictionary, NSDictionary, NSMutableArray; - -FOUNDATION_EXPORT NSString *const NSGlobalDomain; -FOUNDATION_EXPORT NSString *const NSArgumentDomain; -FOUNDATION_EXPORT NSString *const NSRegistrationDomain; - -FOUNDATION_EXPORT NSString *const NSMonthNameArray; -FOUNDATION_EXPORT NSString *const NSWeekDayNameArray; -FOUNDATION_EXPORT NSString *const NSTimeFormatString; -FOUNDATION_EXPORT NSString *const NSDateFormatString; -FOUNDATION_EXPORT NSString *const NSAMPMDesignation; - -FOUNDATION_EXPORT NSString *const NSTimeDateFormatString; - -FOUNDATION_EXPORT NSString *const NSShortWeekDayNameArray; -FOUNDATION_EXPORT NSString *const NSShortMonthNameArray; - -FOUNDATION_EXPORT NSString *const NSUserDefaultsDidChangeNotification; - -@interface NSUserDefaults : NSObject { - NSMutableDictionary *_domains; - NSArray *_searchList; - NSDictionary *_dictionaryRep; -} - -- init; -- initWithUser: (NSString *) user; - -+ (NSUserDefaults *) standardUserDefaults; -+ (void) resetStandardUserDefaults; - -/** returns YES if the standardUserDefaults */ -+ (BOOL) standardUserDefaultsAvailable; - -- (void) addSuiteNamed: (NSString *) name; -- (void) removeSuiteNamed: (NSString *) name; - -- (NSArray *) searchList; -- (void) setSearchList: (NSArray *) array; - -- (NSDictionary *) dictionaryRepresentation; - -- (void) registerDefaults: (NSDictionary *) values; - -- (NSArray *) volatileDomainNames; -- (NSArray *) persistentDomainNames; - -- (NSDictionary *) volatileDomainForName: (NSString *) name; -- (NSDictionary *) persistentDomainForName: (NSString *) name; - -- (void) setVolatileDomain: (NSDictionary *) domain forName: (NSString *) name; -- (void) setPersistentDomain: (NSDictionary *) domain - forName: (NSString *) name; - -- (void) removeVolatileDomainForName: (NSString *) name; -- (void) removePersistentDomainForName: (NSString *) name; - -- (BOOL) synchronize; - -- objectForKey: (NSString *) key; -- (NSData *) dataForKey: (NSString *) key; -- (NSString *) stringForKey: (NSString *) key; -- (NSArray *) arrayForKey: (NSString *) key; -- (NSDictionary *) dictionaryForKey: (NSString *) key; -- (NSArray *) stringArrayForKey: (NSString *) key; -- (BOOL) boolForKey: (NSString *) key; -- (NSInteger) integerForKey: (NSString *) key; -- (float) floatForKey: (NSString *) key; -- (double) doubleForKey: (NSString *) key; - -- (void) setObject: value forKey: (NSString *) key; -- (void) setBool: (BOOL) value forKey: (NSString *) key; -- (void) setInteger: (NSInteger) value forKey: (NSString *) key; -- (void) setFloat: (float) value forKey: (NSString *) key; -- (void) setDouble: (double) value forKey: (NSString *) key; - -- (void) removeObjectForKey: (NSString *) key; - -- (BOOL) objectIsForcedForKey: (NSString *) key; -- (BOOL) objectIsForcedForKey: (NSString *) key inDomain: (NSString *) domain; - -@end diff --git a/Foundation/NSUserDefaults/NSUserDefaults.m b/Foundation/NSUserDefaults/NSUserDefaults.m deleted file mode 100644 index 273cd48f..00000000 --- a/Foundation/NSUserDefaults/NSUserDefaults.m +++ /dev/null @@ -1,457 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -NSString *const NSGlobalDomain = @"NSGlobalDomain"; -NSString *const NSArgumentDomain = @"NSArgumentDomain"; -NSString *const NSRegistrationDomain = @"NSRegistrationDomain"; - -NSString *const NSMonthNameArray = @"NSMonthNameArray"; -NSString *const NSWeekDayNameArray = @"NSWeekDayNameArray"; -NSString *const NSTimeFormatString = @"NSTimeFormatString"; -NSString *const NSDateFormatString = @"NSDateFormatString"; -NSString *const NSAMPMDesignation = @"NSAMPMDesignation"; -NSString *const NSTimeDateFormatString = @"NSTimeDateFormatString"; - -NSString *const NSShortWeekDayNameArray = @"NSShortWeekDayNameArray"; -NSString *const NSShortMonthNameArray = @"NSShortMonthNameArray"; - -NSString *const NSUserDefaultsDidChangeNotification = - @"NSUserDefaultsDidChangeNotification"; - -@implementation NSUserDefaults - -- (void) registerArgumentDefaults { - NSMutableDictionary *reg = [NSMutableDictionary dictionary]; - NSArray *args = [[NSProcessInfo processInfo] arguments]; - NSInteger i, count = [args count]; - - for (i = 1; i < count - 1; i += 2) { - NSString *key = [args objectAtIndex: i]; - NSString *val = [args objectAtIndex: i + 1]; - NSString *pval; - - if ([key length] == 0 || [key characterAtIndex: 0] != '-') - break; - - key = [key substringFromIndex: 1]; - - NS_DURING - if ((pval = [val propertyList]) == nil) - pval = val; - - NS_HANDLER - pval = val; - NS_ENDHANDLER - - [reg setObject: pval forKey: key]; - } - - [_domains setObject: reg forKey: NSArgumentDomain]; -} - -- (void) registerFoundationDefaults { - NSString *path = [[NSBundle bundleForClass: [self class]] - pathForResource: @"NSUserDefaults" - ofType: @"plist"]; - NSDictionary *plist = [NSDictionary dictionaryWithContentsOfFile: path]; - - if (plist == nil) - NSCLog("internal error, unable to locate NSUserDefaults.plist, " - "path=%s, bundle at %s", - path == nil ? "" : [path UTF8String], - [[[NSBundle bundleForClass: [self class]] resourcePath] - UTF8String]); - else - [_domains setObject: plist forKey: @"Foundation"]; -} - -- (void) registerProcessNameDefaults { -#if 0 - NSString *directory=[[_domains objectForKey:@"Foundation"] objectForKey:@"NSUserDefaultsUserDirectory"]; - NSString *path=[[[directory stringByAppendingPathComponent:[[NSProcessInfo processInfo] processName]] stringByAppendingPathExtension:@"plist"] stringByExpandingTildeInPath]; - - if(path!=nil){ - NSDictionary *plist=[NSDictionary dictionaryWithContentsOfFile:path]; - - [_domains setObject:plist forKey:[[NSProcessInfo processInfo] processName]]; - } -#else - NSString *name = [[NSBundle mainBundle] bundleIdentifier]; - NSPersistantDomain *domain; - - if (name == nil) - name = [NSString - stringWithFormat: @"noid.%@", - [[NSProcessInfo processInfo] processName]]; - - domain = [[[NSPlatform currentPlatform] persistantDomainClass] - persistantDomainWithName: name]; - - [_domains setObject: domain - forKey: [[NSProcessInfo processInfo] processName]]; -#endif -} - -- init { - _domains = [NSMutableDictionary new]; - _searchList = [[NSArray allocWithZone: NULL] - initWithObjects: NSArgumentDomain, - [[NSProcessInfo processInfo] processName], - NSGlobalDomain, NSRegistrationDomain, - @"Foundation", nil]; - - [[NSProcessInfo processInfo] environment]; - - [self registerFoundationDefaults]; - - [self registerArgumentDefaults]; - [self registerProcessNameDefaults]; - - [_domains setObject: [NSMutableDictionary dictionary] - forKey: NSRegistrationDomain]; - - return self; -} - -- initWithUser: (NSString *) user { - NSUnimplementedMethod(); - return nil; -} - -static NSUserDefaults *stdUserDefaults = nil; - -+ (NSUserDefaults *) standardUserDefaults { - @synchronized(self) { - if (nil == stdUserDefaults) { - stdUserDefaults = [[NSUserDefaults alloc] init]; - } - } - return stdUserDefaults; -} - -+ (void) resetStandardUserDefaults { - NSUnimplementedMethod(); -} - -+ (BOOL) standardUserDefaultsAvailable { - return stdUserDefaults != nil; -} - -- (void) addSuiteNamed: (NSString *) name { - NSUnimplementedMethod(); -} - -- (void) removeSuiteNamed: (NSString *) name { - NSUnimplementedMethod(); -} - -- (NSArray *) searchList { - return _searchList; -} - -- (void) setSearchList: (NSArray *) array { - @synchronized(self) { - [array retain]; - [_searchList release]; - _searchList = array; - } -} - -- (NSDictionary *) _buildDictionaryRep { - NSMutableDictionary *result = [NSMutableDictionary dictionary]; - @synchronized(self) { - NSInteger i, count = [_searchList count]; - - for (i = 0; i < count; i++) { - NSDictionary *domain = - [_domains objectForKey: [_searchList objectAtIndex: i]]; - NSEnumerator *state = [domain keyEnumerator]; - id key; - - while ((key = [state nextObject]) != nil) { - id value = [domain objectForKey: key]; - - // NSPersistantDomain may return nil, addEntriesFromDictionary - // doesn't do that test - if (value != nil) - [result setObject: value forKey: key]; - } - } - } - return result; -} - -- (NSDictionary *) dictionaryRepresentation { - NSDictionary *dictRep = nil; - @synchronized(self) { - if (_dictionaryRep == nil) - _dictionaryRep = [[self _buildDictionaryRep] retain]; - - dictRep = _dictionaryRep; - } - return dictRep; -} - -- (void) registerDefaults: (NSDictionary *) values { - @synchronized(self) { - [[_domains objectForKey: NSRegistrationDomain] - addEntriesFromDictionary: values]; - } -} - -- (NSArray *) volatileDomainNames { - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) persistentDomainNames { - return [NSArray arrayWithObject: [[NSProcessInfo processInfo] processName]]; -} - -- (NSDictionary *) volatileDomainForName: (NSString *) name { - NSUnimplementedMethod(); - return nil; -} - -- (NSDictionary *) persistentDomainForName: (NSString *) name { - NSMutableDictionary *result = [NSMutableDictionary dictionary]; - NSPersistantDomain *domain = [[[NSPlatform currentPlatform] - persistantDomainClass] persistantDomainWithName: name]; - NSArray *allKeys = [domain allKeys]; - NSInteger i, count = [allKeys count]; - - for (i = 0; i < count; i++) { - NSString *key = [allKeys objectAtIndex: i]; - id value = [domain objectForKey: key]; - if (value) { - [result setObject: value forKey: key]; - } - } - - return result; -} - -- (void) setVolatileDomain: (NSDictionary *) domain forName: (NSString *) name { - NSUnimplementedMethod(); -} - -- (void) setPersistentDomain: (NSDictionary *) domain - forName: (NSString *) name -{ - NSUnimplementedMethod(); -} - -- (void) removeVolatileDomainForName: (NSString *) name { - NSUnimplementedMethod(); -} - -- (void) removePersistentDomainForName: (NSString *) name { - NSUnimplementedMethod(); -} - -- (BOOL) synchronize { - return 0; -} - -- (NSMutableDictionary *) persistantDomain { - NSMutableDictionary *dict = nil; - @synchronized(self) { - dict = [_domains - objectForKey: [[NSProcessInfo processInfo] processName]]; - [[dict retain] autorelease]; - } - return dict; -} - -- objectForKey: (NSString *) defaultName { - @synchronized(self) { - NSInteger i, count = [_searchList count]; - - for (i = 0; i < count; i++) { - NSDictionary *domain = - [_domains objectForKey: [_searchList objectAtIndex: i]]; - id object = [domain objectForKey: defaultName]; - - if (object != nil) - return object; - } - } - return nil; -} - -- (NSData *) dataForKey: (NSString *) defaultName { - NSData *data = [self objectForKey: defaultName]; - - return [data isKindOfClass: objc_lookUpClass("NSData")] ? data - : (NSData *) nil; -} - -- (NSString *) stringForKey: (NSString *) defaultName { - NSString *string = [self objectForKey: defaultName]; - - return [string isKindOfClass: objc_lookUpClass("NSString")] - ? string - : (NSString *) nil; -} - -- (NSArray *) arrayForKey: (NSString *) defaultName { - NSArray *array = [self objectForKey: defaultName]; - - return [array isKindOfClass: objc_lookUpClass("NSArray")] ? array - : (NSArray *) nil; -} - -- (NSDictionary *) dictionaryForKey: (NSString *) defaultName { - NSDictionary *dictionary = [self objectForKey: defaultName]; - - return [dictionary isKindOfClass: objc_lookUpClass("NSDictionary")] - ? dictionary - : (NSDictionary *) nil; -} - -- (NSArray *) stringArrayForKey: (NSString *) defaultName { - NSArray *array = [self objectForKey: defaultName]; - NSInteger count; - - if (![array isKindOfClass: objc_lookUpClass("NSArray")]) - return nil; - - count = [array count]; - while (--count >= 0) - if (![[array objectAtIndex: count] - isKindOfClass: objc_lookUpClass("NSString")]) - return nil; - - return array; -} - -- (BOOL) boolForKey: (NSString *) defaultName { - id object = [self objectForKey: defaultName]; - - if ([object isKindOfClass: [NSNumber class]] || - [object isKindOfClass: [NSString class]]) - return [object boolValue]; - - return NO; -} - -- (NSInteger) integerForKey: (NSString *) defaultName { - id number = [self objectForKey: defaultName]; - - return [number isKindOfClass: objc_lookUpClass("NSString")] - ? [(NSString *) number intValue] - : ([number isKindOfClass: objc_lookUpClass("NSNumber")] - ? [(NSNumber *) number intValue] - : 0); -} - -- (float) floatForKey: (NSString *) defaultName { - id number = [self objectForKey: defaultName]; - - return [number isKindOfClass: objc_lookUpClass("NSString")] - ? [(NSString *) number floatValue] - : ([number isKindOfClass: objc_lookUpClass("NSNumber")] - ? [(NSNumber *) number floatValue] - : 0.0); -} - -- (double) doubleForKey: (NSString *) defaultName { - id number = [self objectForKey: defaultName]; - - return [number isKindOfClass: objc_lookUpClass("NSString")] - ? [(NSString *) number doubleValue] - : ([number isKindOfClass: objc_lookUpClass("NSNumber")] - ? [(NSNumber *) number doubleValue] - : 0.0); -} - -- (void) setObject: value forKey: (NSString *) key { - @synchronized(self) { - // We'll remove from the persistant domain the values that are equal to - // the registered one Cocoa does that - even if the method documentation - // says nothing about it - if ([value isEqual: [[_domains objectForKey: NSRegistrationDomain] - objectForKey: key]]) { - value = nil; - } - if (value) { - [[self persistantDomain] setObject: value forKey: key]; - } else { - [[self persistantDomain] removeObjectForKey: key]; - } - [_dictionaryRep autorelease]; - _dictionaryRep = nil; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUserDefaultsDidChangeNotification - object: self]; - } -} - -- (void) setBool: (BOOL) value forKey: (NSString *) defaultName { - [self setObject: value ? @"YES" : @"NO" forKey: defaultName]; -} - -- (void) setInteger: (NSInteger) value forKey: (NSString *) defaultName { - [self setObject: [NSNumber numberWithInteger: value] forKey: defaultName]; -} - -- (void) setFloat: (float) value forKey: (NSString *) defaultName { - [self setObject: [NSNumber numberWithFloat: value] forKey: defaultName]; -} - -- (void) setDouble: (double) value forKey: (NSString *) defaultName { - [self setObject: [NSNumber numberWithDouble: value] forKey: defaultName]; -} - -- (void) removeObjectForKey: (NSString *) key { - @synchronized(self) { - [[self persistantDomain] removeObjectForKey: key]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSUserDefaultsDidChangeNotification - object: self]; - } -} - -- (BOOL) objectIsForcedForKey: (NSString *) key { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) objectIsForcedForKey: (NSString *) key inDomain: (NSString *) domain { - NSUnimplementedMethod(); - return 0; -} - -@end diff --git a/Foundation/NSValue/NSValue.h b/Foundation/NSValue/NSValue.h deleted file mode 100644 index 254d7fa5..00000000 --- a/Foundation/NSValue/NSValue.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@interface NSValue : NSObject - -- initWithBytes: (const void *) value objCType: (const char *) type; -+ (NSValue *) valueWithBytes: (const void *) value - objCType: (const char *) type; -+ (NSValue *) value: (const void *) value withObjCType: (const char *) type; - -+ (NSValue *) valueWithNonretainedObject: object; -+ (NSValue *) valueWithPointer: (const void *) pointer; -+ (NSValue *) valueWithPoint: (NSPoint) point; -+ (NSValue *) valueWithSize: (NSSize) size; -+ (NSValue *) valueWithRect: (NSRect) rect; -+ (NSValue *) valueWithRange: (NSRange) range; - -- (BOOL) isEqualToValue: (NSValue *) other; - -- (void) getValue: (void *) value; -- (const char *) objCType; - -- nonretainedObjectValue; - -- (void *) pointerValue; - -- (NSPoint) pointValue; -- (NSSize) sizeValue; -- (NSRect) rectValue; -- (NSRange) rangeValue; - -@end - -#import diff --git a/Foundation/NSValue/NSValue.m b/Foundation/NSValue/NSValue.m deleted file mode 100644 index 3463a051..00000000 --- a/Foundation/NSValue/NSValue.m +++ /dev/null @@ -1,201 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -@implementation NSValue - -+ allocWithZone: (NSZone *) zone { - if (self == [NSValue class]) - return NSAllocateObject([NSValue_placeholder class], 0, NULL); - - return NSAllocateObject(self, 0, zone); -} - -- initWithBytes: (const void *) value objCType: (const char *) type { - NSInvalidAbstractInvocation(); - return nil; -} - -+ (NSValue *) valueWithBytes: (const void *) value - objCType: (const char *) type -{ - if (self == [NSValue class]) - return NSAutorelease(NSValue_concreteNew(NULL, value, type)); - - return [[[self allocWithZone: NULL] initWithBytes: value - objCType: type] autorelease]; -} - -+ (NSValue *) value: (const void *) value withObjCType: (const char *) type { - if (self == [NSValue class]) - return NSAutorelease(NSValue_concreteNew(NULL, value, type)); - - return [[[self allocWithZone: NULL] initWithBytes: value - objCType: type] autorelease]; -} - -+ (NSValue *) valueWithNonretainedObject: object { - return [[[NSValue_nonRetainedObject allocWithZone: NULL] - initWithObject: object] autorelease]; -} - -+ (NSValue *) valueWithPointer: (const void *) pointer { - return [[[NSValue_pointer allocWithZone: NULL] initWithPointer: pointer] - autorelease]; -} - -+ (NSValue *) valueWithPoint: (NSPoint) point { - return [NSValue value: &point withObjCType: @encode(NSPoint)]; -} - -+ (NSValue *) valueWithSize: (NSSize) size { - return [NSValue value: &size withObjCType: @encode(NSSize)]; -} - -+ (NSValue *) valueWithRect: (NSRect) rect { - return [NSValue value: &rect withObjCType: @encode(NSRect)]; -} - -+ (NSValue *) valueWithRange: (NSRange) range { - return [NSValue value: &range withObjCType: @encode(NSRange)]; -} - -- (BOOL) isEqual: other { - if (![other isKindOfClass: [NSValue class]]) - return NO; - - return [self isEqualToValue: other]; -} - -- (BOOL) isEqualToValue: (NSValue *) other { - const char *type = [self objCType]; - NSUInteger size, alignment; - void *selfData, *otherData; - - if (self == other) - return YES; - - if (strcmp(type, [other objCType]) != 0) - return NO; - - NSGetSizeAndAlignment(type, &size, &alignment); - selfData = __builtin_alloca(size); - otherData = __builtin_alloca(size); - - [self getValue: selfData]; - [other getValue: otherData]; - - return NSBytesEqual(selfData, otherData, size); -} - -- (void) getValue: (void *) value { - NSInvalidAbstractInvocation(); -} - -- (const char *) objCType { - NSInvalidAbstractInvocation(); - return NULL; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (Class) classForCoder { - return objc_lookUpClass("NSValue"); -} - -- initWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); - return self; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSUnimplementedMethod(); -} - -- nonretainedObjectValue { - const char *type = [self objCType]; - NSUInteger size, alignment; - id value; - - NSGetSizeAndAlignment(type, &size, &alignment); - if (size != sizeof(id)) - return nil; - - [self getValue: &value]; - return value; -} - -- (void *) pointerValue { - const char *type = [self objCType]; - NSUInteger size, alignment; - void *value; - - NSGetSizeAndAlignment(type, &size, &alignment); - if (size != sizeof(void *)) - return NULL; - - [self getValue: &value]; - return value; -} - -- (NSPoint) pointValue { - NSPoint point; - [self getValue: &point]; - return point; -} - -- (NSSize) sizeValue { - NSSize size; - [self getValue: &size]; - return size; -} - -- (NSRange) rangeValue { - NSRange range; - [self getValue: &range]; - return range; -} - -- (NSRect) rectValue { - NSRect rect; - [self getValue: &rect]; - return rect; -} - -- (id) descriptionWithLocale: (id) locale { - return [self description]; -} - -- (id) description { - return [NSString stringWithFormat: @"<%@, %s>", [super description], - [self objCType]]; -} -@end diff --git a/Foundation/NSValue/NSValue_concrete.h b/Foundation/NSValue/NSValue_concrete.h deleted file mode 100644 index 1f36406e..00000000 --- a/Foundation/NSValue/NSValue_concrete.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSValue_concrete : NSValue { - char _bytes[0]; // type \0 value -} - -@end - -NSValue *NSValue_concreteNew(NSZone *zone, const void *value, const char *type); diff --git a/Foundation/NSValue/NSValue_concrete.m b/Foundation/NSValue/NSValue_concrete.m deleted file mode 100644 index 764478df..00000000 --- a/Foundation/NSValue/NSValue_concrete.m +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#include - -@implementation NSValue_concrete - -NSValue *NSValue_concreteNew(NSZone *zone, const void *value, const char *type) -{ - NSValue_concrete *self; - NSUInteger size, alignment, typelen = strlen(type); - - NSGetSizeAndAlignment(type, &size, &alignment); - - self = NSAllocateObject([NSValue_concrete class], typelen + 1 + size, zone); - if (self) { - NSByteCopy(type, self->_bytes, typelen + 1); - NSByteCopy(value, self->_bytes + typelen + 1, size); - } - return self; -} - -- (void) getValue: (void *) value { - NSUInteger size, alignment, typelen = strlen(_bytes); - - NSGetSizeAndAlignment(_bytes, &size, &alignment); - - NSByteCopy(_bytes + typelen + 1, value, size); -} - -- (const char *) objCType { - return _bytes; -} - -@end diff --git a/Foundation/NSValue/NSValue_nonRetainedObject.h b/Foundation/NSValue/NSValue_nonRetainedObject.h deleted file mode 100644 index e7b83e37..00000000 --- a/Foundation/NSValue/NSValue_nonRetainedObject.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSValue_nonRetainedObject : NSValue { - id _object; -} - -- initWithObject: object; - -@end diff --git a/Foundation/NSValue/NSValue_nonRetainedObject.m b/Foundation/NSValue/NSValue_nonRetainedObject.m deleted file mode 100644 index e33ccb38..00000000 --- a/Foundation/NSValue/NSValue_nonRetainedObject.m +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@implementation NSValue_nonRetainedObject - -- initWithObject: object { - _object = object; - return self; -} - -- (NSUInteger) hash { - return (NSUInteger)[self nonretainedObjectValue]; -} - -- (BOOL) isEqual: (id) other { - if ([other isKindOfClass: [NSValue class]] && - [other nonretainedObjectValue] == [self nonretainedObjectValue]) - return YES; - return NO; -} - -- (void) getValue: (void *) value { - *((id *) value) = _object; -} - -- (const char *) objCType { - return @encode(id); -} - -- nonretainedObjectValue { - return _object; -} - -@end diff --git a/Foundation/NSValue/NSValue_placeholder.h b/Foundation/NSValue/NSValue_placeholder.h deleted file mode 100644 index 1c46cea2..00000000 --- a/Foundation/NSValue/NSValue_placeholder.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSValue_placeholder : NSValue - -@end diff --git a/Foundation/NSValue/NSValue_placeholder.m b/Foundation/NSValue/NSValue_placeholder.m deleted file mode 100644 index 1785a8a9..00000000 --- a/Foundation/NSValue/NSValue_placeholder.m +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// Original - Christopher Lloyd -#import -#import - -@implementation NSValue_placeholder - -- initWithBytes: (const void *) value objCType: (const char *) type { - [self dealloc]; - return (NSValue_placeholder *) NSValue_concreteNew(NULL, value, type); -} - -@end diff --git a/Foundation/NSValue/NSValue_pointer.h b/Foundation/NSValue/NSValue_pointer.h deleted file mode 100644 index 13d72f9c..00000000 --- a/Foundation/NSValue/NSValue_pointer.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSValue_pointer : NSValue { - const void *_pointer; -} - -- initWithPointer: (const void *) pointer; - -@end diff --git a/Foundation/NSValue/NSValue_pointer.m b/Foundation/NSValue/NSValue_pointer.m deleted file mode 100644 index 5c31575d..00000000 --- a/Foundation/NSValue/NSValue_pointer.m +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import - -@implementation NSValue_pointer - -- initWithPointer: (const void *) pointer { - _pointer = pointer; - return self; -} - -- (NSUInteger) hash { - return (NSUInteger)[self pointerValue]; -} - -- (BOOL) isEqual: (id) other { - if ([other isKindOfClass: [NSValue class]] && - [other pointerValue] == _pointer) - return YES; - return NO; -} - -- (void) getValue: (void *) value { - *((const void **) value) = _pointer; -} - -- (const char *) objCType { - return @encode(void *); -} - -- (void *) pointerValue { - return (void *) _pointer; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"0x%p", _pointer]; -} -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer.h b/Foundation/NSValueTransformer/NSValueTransformer.h deleted file mode 100644 index 03cf3cb7..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@class NSArray; - -FOUNDATION_EXPORT NSString *const NSIsNilTransformerName; -FOUNDATION_EXPORT NSString *const NSIsNotNilTransformerName; -FOUNDATION_EXPORT NSString *const NSNegateBooleanTransformerName; -FOUNDATION_EXPORT NSString *const NSUnarchiveFromDataTransformerName; -FOUNDATION_EXPORT NSString *const NSKeyedUnarchiveFromDataTransformerName; - -@interface NSValueTransformer : NSObject - -+ (NSArray *) valueTransformerNames; - -+ (NSValueTransformer *) valueTransformerForName: (NSString *) name; - -+ (void) setValueTransformer: (NSValueTransformer *) transformer - forName: (NSString *) name; - -+ (Class) transformedValueClass; -+ (BOOL) allowsReverseTransformation; - -- transformedValue: value; -- reverseTransformedValue: value; - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer.m b/Foundation/NSValueTransformer/NSValueTransformer.m deleted file mode 100644 index 44f34bcc..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer.m +++ /dev/null @@ -1,97 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSValueTransformer_IsNil.h" -#import "NSValueTransformer_IsNotNil.h" -#import "NSValueTransformer_KeyedUnarchiveFromData.h" -#import "NSValueTransformer_NegateBoolean.h" -#import "NSValueTransformer_UnarchiveFromData.h" -#import -#import -#import -#import - -// Do not change these values -NSString *const NSIsNilTransformerName = @"NSIsNil"; -NSString *const NSIsNotNilTransformerName = @"NSIsNotNil"; -NSString *const NSNegateBooleanTransformerName = @"NSNegateBoolean"; -NSString *const NSUnarchiveFromDataTransformerName = @"NSUnarchiveFromData"; -NSString *const NSKeyedUnarchiveFromDataTransformerName = - @"NSKeyedUnarchiveFromData"; - -@implementation NSValueTransformer - -static NSMapTable *_nameToTransformer = NULL; - -+ (void) initialize { - if (self == [NSValueTransformer class]) { - _nameToTransformer = NSCreateMapTable(NSObjectMapKeyCallBacks, - NSObjectMapValueCallBacks, 0); - NSMapInsert(_nameToTransformer, NSIsNilTransformerName, - [[[NSValueTransformer_IsNil alloc] init] autorelease]); - NSMapInsert(_nameToTransformer, NSIsNotNilTransformerName, - [[[NSValueTransformer_IsNotNil alloc] init] autorelease]); - NSMapInsert( - _nameToTransformer, NSNegateBooleanTransformerName, - [[[NSValueTransformer_NegateBoolean alloc] init] autorelease]); - NSMapInsert(_nameToTransformer, NSUnarchiveFromDataTransformerName, - [[[NSValueTransformer_UnarchiveFromData alloc] init] - autorelease]); - NSMapInsert(_nameToTransformer, NSKeyedUnarchiveFromDataTransformerName, - [[[NSValueTransformer_KeyedUnarchiveFromData alloc] init] - autorelease]); - } -} - -+ (NSArray *) valueTransformerNames { - return NSAllMapTableKeys(_nameToTransformer); -} - -+ (NSValueTransformer *) valueTransformerForName: (NSString *) name { - return NSMapGet(_nameToTransformer, name); -} - -+ (void) setValueTransformer: (NSValueTransformer *) transformer - forName: (NSString *) name -{ - NSMapInsert(_nameToTransformer, name, transformer); -} - -+ (Class) transformedValueClass { - return Nil; -} - -+ (BOOL) allowsReverseTransformation { - return NO; -} - -- transformedValue: value { - return value; -} - -- reverseTransformedValue: value { - if (![[self class] allowsReverseTransformation]) - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] on value transformer which returns NO " - @"allowsReverseTransformation", - [self class], sel_getName(_cmd)]; - - return [self transformedValue: value]; -} - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_IsNil.h b/Foundation/NSValueTransformer/NSValueTransformer_IsNil.h deleted file mode 100644 index f67a935c..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_IsNil.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSValueTransformer_IsNil : NSValueTransformer - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_IsNil.m b/Foundation/NSValueTransformer/NSValueTransformer_IsNil.m deleted file mode 100644 index e7af9663..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_IsNil.m +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSValueTransformer_IsNil.h" -#import - -@implementation NSValueTransformer_IsNil - -+ (Class) transformedValueClass { - return [NSNumber class]; -} - -- transformedValue: value { - BOOL result = (value == nil) ? YES : NO; - - return [NSNumber numberWithBool: result]; -} - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.h b/Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.h deleted file mode 100644 index 97d16069..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSValueTransformer_IsNotNil : NSValueTransformer - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.m b/Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.m deleted file mode 100644 index cbc04c8b..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_IsNotNil.m +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSValueTransformer_IsNotNil.h" -#import - -@implementation NSValueTransformer_IsNotNil - -+ (Class) transformedValueClass { - return [NSNumber class]; -} - -- transformedValue: value { - BOOL result = (value != nil) ? YES : NO; - - return [NSNumber numberWithBool: result]; -} - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.h b/Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.h deleted file mode 100644 index b9db875d..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSValueTransformer_KeyedUnarchiveFromData : NSValueTransformer - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.m b/Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.m deleted file mode 100644 index 142dede0..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_KeyedUnarchiveFromData.m +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSValueTransformer_KeyedUnarchiveFromData.h" -#import -#import -#import - -@implementation NSValueTransformer_KeyedUnarchiveFromData - -+ (Class) transformedValueClass { - return nil; -} - -+ (BOOL) allowsReverseTransformation { - return YES; -} - -- transformedValue: value { - if ([value isKindOfClass: [NSData class]]) - return [NSKeyedUnarchiver unarchiveObjectWithData: value]; - - return value; -} - -- reverseTransformedValue: value { - return [NSKeyedArchiver archivedDataWithRootObject: value]; -} - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.h b/Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.h deleted file mode 100644 index 4dd32467..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSValueTransformer_NegateBoolean : NSValueTransformer - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.m b/Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.m deleted file mode 100644 index e777b22d..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_NegateBoolean.m +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSValueTransformer_NegateBoolean.h" -#import - -@implementation NSValueTransformer_NegateBoolean - -+ (Class) transformedValueClass { - return [NSNumber class]; -} - -+ (BOOL) allowsReverseTransformation { - return YES; -} - -- transformedValue: value { - BOOL result = ![value boolValue]; - - return [NSNumber numberWithBool: result]; -} - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.h b/Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.h deleted file mode 100644 index 87485276..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSValueTransformer_UnarchiveFromData : NSValueTransformer - -@end diff --git a/Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.m b/Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.m deleted file mode 100644 index a3072236..00000000 --- a/Foundation/NSValueTransformer/NSValueTransformer_UnarchiveFromData.m +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "NSValueTransformer_UnarchiveFromData.h" -#import - -@implementation NSValueTransformer_UnarchiveFromData - -+ (Class) transformedValueClass { - return nil; -} - -+ (BOOL) allowsReverseTransformation { - return YES; -} - -- transformedValue: value { - return [NSUnarchiver unarchiveObjectWithData: value]; -} - -- reverseTransformedValue: value { - return [NSArchiver archivedDataWithRootObject: value]; -} - -@end diff --git a/Foundation/NSZone/NSVirtualMemory.m b/Foundation/NSZone/NSVirtualMemory.m deleted file mode 100644 index 3db0f9df..00000000 --- a/Foundation/NSZone/NSVirtualMemory.m +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2006-2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -// NSPageSize implemented in platform subproject - -NSUInteger NSLogPageSize(void) { - NSUInteger log, pageSize = NSPageSize(); - - for (log = 0; (pageSize & 1) == 0; log++, pageSize >>= 1) - ; - - return log; -} - -NSUInteger NSRoundDownToMultipleOfPageSize(NSUInteger byteCount) { - NSUInteger pageSize = NSPageSize(); - - return (byteCount / pageSize) * pageSize; -} - -NSUInteger NSRoundUpToMultipleOfPageSize(NSUInteger byteCount) { - NSUInteger pageSize = NSPageSize(); - - return ((byteCount + (pageSize - 1)) / pageSize) * pageSize; -} - -// NSAllocateMemoryPages implemented in platform subproject -// NSDeallocateMemoryPages implemented in platform subproject -// NSCopyMemoryPages implemented in platform subproject -// NSRealMemoryAvailable implemented in platform subproject diff --git a/Foundation/NSZone/NSZone.h b/Foundation/NSZone/NSZone.h deleted file mode 100644 index ff079569..00000000 --- a/Foundation/NSZone/NSZone.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006-2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSString; - -typedef void *NSZone; - -FOUNDATION_EXPORT NSUInteger NSPageSize(void); -FOUNDATION_EXPORT NSUInteger NSLogPageSize(void); -FOUNDATION_EXPORT NSUInteger -NSRoundDownToMultipleOfPageSize(NSUInteger byteCount); -FOUNDATION_EXPORT NSUInteger -NSRoundUpToMultipleOfPageSize(NSUInteger byteCount); -FOUNDATION_EXPORT NSUInteger NSRealMemoryAvailable(void); - -FOUNDATION_EXPORT void *NSAllocateMemoryPages(NSUInteger byteCount); -FOUNDATION_EXPORT void NSDeallocateMemoryPages(void *pointer, - NSUInteger byteCount); -FOUNDATION_EXPORT void NSCopyMemoryPages(const void *src, void *dst, - NSUInteger byteCount); - -FOUNDATION_EXPORT NSZone *NSCreateZone(NSUInteger startSize, - NSUInteger granularity, BOOL canFree); -FOUNDATION_EXPORT NSZone *NSDefaultMallocZone(void); -FOUNDATION_EXPORT void NSRecycleZone(NSZone *zone); -FOUNDATION_EXPORT void NSSetZoneName(NSZone *zone, NSString *name); -FOUNDATION_EXPORT NSString *NSZoneName(NSZone *zone); -FOUNDATION_EXPORT NSZone *NSZoneFromPointer(void *pointer); - -FOUNDATION_EXPORT void *NSZoneCalloc(NSZone *zone, NSUInteger numElems, - NSUInteger numBytes); -FOUNDATION_EXPORT void NSZoneFree(NSZone *zone, void *pointer); -FOUNDATION_EXPORT void *NSZoneMalloc(NSZone *zone, NSUInteger size); -FOUNDATION_EXPORT void *NSZoneRealloc(NSZone *zone, void *pointer, - NSUInteger size); - -FOUNDATION_EXPORT id NSAllocateObject(Class aClass, NSUInteger extraBytes, - NSZone *zone); -FOUNDATION_EXPORT void NSDeallocateObject(id object); -FOUNDATION_EXPORT id NSCopyObject(id object, NSUInteger extraBytes, - NSZone *zone); -FOUNDATION_EXPORT BOOL NSShouldRetainWithZone(id object, NSZone *zone); - -FOUNDATION_EXPORT void NSIncrementExtraRefCount(id object); -FOUNDATION_EXPORT BOOL NSDecrementExtraRefCountWasZero(id object); -FOUNDATION_EXPORT NSUInteger NSExtraRefCount(id object); diff --git a/Foundation/NSZone/NSZone.m b/Foundation/NSZone/NSZone.m deleted file mode 100644 index 310866b6..00000000 --- a/Foundation/NSZone/NSZone.m +++ /dev/null @@ -1,139 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import -#include -#ifdef WIN32 -#include -#else -#include -#endif - -// NSZone functions implemented in platform subproject - -void NSIncrementExtraRefCount(id object) { - object_incrementExternalRefCount(object); -} - -BOOL NSDecrementExtraRefCountWasZero(id object) { - return object_decrementExternalRefCount(object); -} - -NSUInteger NSExtraRefCount(id object) { - return object_externalRefCount(object); -} - -BOOL NSShouldRetainWithZone(id object, NSZone *zone) { - return (zone == NULL || zone == NSDefaultMallocZone() || - zone == [object zone]) - ? YES - : NO; -} - -static void (*__NSAllocateObjectHook)(id object) = 0; - -void NSSetAllocateObjectHook(void (*hook)(id object)) { - __NSAllocateObjectHook = hook; -} - -id NSAllocateObject(Class class, NSUInteger extraBytes, NSZone *zone) { - id result; - - if (zone == NULL) { - zone = NSDefaultMallocZone(); - } - - result = NSZoneCalloc(zone, 1, class_getInstanceSize(class) + extraBytes); - - if (result) { -#if defined(GCC_RUNTIME_3) - object_setClass(result, class); - // TODO As of gcc 4.6.2 the GCC runtime does not have support for C++ - // constructor calling. -#elif defined(APPLE_RUNTIME_4) - objc_constructInstance(class, result); -#else - object_setClass(result, class); - - if (!object_cxxConstruct(result, result->[self class])) { - NSZoneFree(zone, result); - result = nil; - } -#endif - - if (__NSAllocateObjectHook) { - __NSAllocateObjectHook(result); - } - } - - return result; -} - -void NSDeallocateObject(id object) { -#if defined(GCC_RUNTIME_3) - // TODO As of gcc 4.6.2 the GCC runtime does not have support for C++ - // destructor calling. -#elif defined(APPLE_RUNTIME_4) - objc_destructInstance(object); -#else - object_cxxDestruct(object, object->[self class]); -#endif - -#if !defined(APPLE_RUNTIME_4) - // delete associations - objc_removeAssociatedObjects(object); -#endif - - if (NSZombieEnabled) { - NSRegisterZombie(object); - } else { - NSZone *zone = NULL; - - if (zone == NULL) { - zone = NSDefaultMallocZone(); - } - -#if !defined(GCC_RUNTIME_3) && !defined(APPLE_RUNTIME_4) - object->[self class] = 0; -#endif - - NSZoneFree(zone, object); - } -} - -id NSCopyObject(id object, NSUInteger extraBytes, NSZone *zone) { - if (object == nil) { - return nil; - } - - id result = NSAllocateObject(object_getClass(object), extraBytes, zone); - - if (result) { - memcpy(result, object, - class_getInstanceSize(object_getClass(object)) + extraBytes); - } - - return result; -} diff --git a/Foundation/platform_bsd/NSMemoryFunctions_bsd.m b/Foundation/platform_bsd/NSMemoryFunctions_bsd.m deleted file mode 100644 index 40df563c..00000000 --- a/Foundation/platform_bsd/NSMemoryFunctions_bsd.m +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2009 Vladimir Kirillov - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#import - -#include - -NSUInteger NSPageSize(void) { - return (NSUInteger) sysconf(_SC_PAGESIZE); -} - -NSUInteger NSRealMemoryAvailable(void) { -#ifdef FREEBSD - // FIXME: - return 0; -#else - return (NSUInteger) sysconf(_SC_AVPHYS_PAGES) * - (NSUInteger) sysconf(_SC_PAGESIZE); -#endif -} diff --git a/Foundation/platform_bsd/NSPlatform_bsd.h b/Foundation/platform_bsd/NSPlatform_bsd.h deleted file mode 100644 index 8999da57..00000000 --- a/Foundation/platform_bsd/NSPlatform_bsd.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2009 Vladimir Kirillov - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#import -#import - -@interface NSPlatform_bsd : NSPlatform_posix { -} - -@end diff --git a/Foundation/platform_bsd/NSPlatform_bsd.m b/Foundation/platform_bsd/NSPlatform_bsd.m deleted file mode 100644 index 325219d2..00000000 --- a/Foundation/platform_bsd/NSPlatform_bsd.m +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2006-2007 Christopher J. W. Lloyd - * Copyright (c) 2009 Vladimir Kirillov - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -/* - * Original - David Young - * based on NSPlatform_linux port - */ - -#import -#import -#import - -#include -#include -#include - -NSString *NSPlatformClassName = @"NSPlatform_bsd"; - -@implementation NSPlatform_bsd - -void NSPlatformSleepThreadForTimeInterval(NSTimeInterval interval) { - if (interval <= 0.0) - return; - - if (interval > 1.0) - sleep((unsigned int) interval); - else - usleep((unsigned long) (1000000.0 * interval)); -} - -- (NSString *) hostName { - char buf[MAXHOSTNAMELEN]; - - gethostname(buf, MAXHOSTNAMELEN); - return [NSString stringWithCString: buf]; -} - -- (NSString *) DNSHostName { - return [self hostName]; -} - -NSString *const NSPlatformExecutableDirectory = @"BSD"; -NSString *const NSPlatformResourceNameSuffix = @"bsd"; - -NSString *const NSPlatformExecutableFileExtension = @""; -NSString *const NSPlatformLoadableObjectFileExtension = @"so"; -NSString *const NSPlatformLoadableObjectFilePrefix = @"lib"; - -@end - -char **NSPlatform_environ() { - extern char **environ; - return environ; -} diff --git a/Foundation/platform_bsd/libmain.m b/Foundation/platform_bsd/libmain.m deleted file mode 100644 index 03c84c80..00000000 --- a/Foundation/platform_bsd/libmain.m +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (c) 2010-2011 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#include -#include -#include -#include -#include -#include -#include - -#import - -FOUNDATION_EXPORT void __attribute__((constructor)) libmain(void) { - char args[sysconf(_SC_ARG_MAX)]; - int managementInfoBase[4]; - size_t len; - int argc = 0; - unsigned int last = 0; - - managementInfoBase[0] = CTL_KERN; - managementInfoBase[1] = KERN_PROC; - managementInfoBase[2] = KERN_PROC_ARGS; - managementInfoBase[3] = getpid(); - - len = sizeof(args); - if (sysctl(managementInfoBase, 4, args, &len, NULL, 0) == -1) { - fprintf(stderr, "Error during Cocotron initialization: Unable to read " - "argument list of the process"); - abort(); - } - - int allocated = 5; - const char **argv = (const char **) calloc(allocated, sizeof(char *)); - - for (unsigned int i = 0; i < len; i++) { - if (args[i] == '\0') { - - char *arg = strdup(&args[last]); - - if (allocated <= argc) { - allocated *= 2; - argv = realloc(argv, sizeof(char *) * allocated); - } - - argv[argc] = arg; - last = i + 1; - argc++; - } - } - - __NSInitializeProcess(argc, argv); -} diff --git a/Foundation/platform_darwin/DarwinMemoryFunctions.m b/Foundation/platform_darwin/DarwinMemoryFunctions.m deleted file mode 100644 index 60588044..00000000 --- a/Foundation/platform_darwin/DarwinMemoryFunctions.m +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#include - -NSUInteger NSPageSize(void) { - return getpagesize(); -} - -NSUInteger NSRealMemoryAvailable(void) { - uint64_t memsize = 0; - size_t len = sizeof(uint64_t); - sysctlbyname("hw.memsize", &memsize, &len, NULL, 0); - - return (memsize); -} diff --git a/Foundation/platform_darwin/NSPlatform_darwin.h b/Foundation/platform_darwin/NSPlatform_darwin.h deleted file mode 100644 index 903b031d..00000000 --- a/Foundation/platform_darwin/NSPlatform_darwin.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSPlatform_darwin : NSPlatform_posix { -} - -@end diff --git a/Foundation/platform_darwin/NSPlatform_darwin.m b/Foundation/platform_darwin/NSPlatform_darwin.m deleted file mode 100644 index c3b112d5..00000000 --- a/Foundation/platform_darwin/NSPlatform_darwin.m +++ /dev/null @@ -1,158 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef __APPLE__ -#import -#import -#import - -#include -#include -#import -#import -#import -#include -#include - -// Handy functions for extracting various values from sysctl. -// These should work on FreeBSD as well, though the sysctl names might be -// different. - -static int int32SysctlByName(const char *sysctlName) { - int32_t sysctlInt32Value = 0; - size_t len = sizeof(int32_t); - sysctlbyname(sysctlName, &sysctlInt32Value, &len, NULL, 0); - return (sysctlInt32Value); -} - -static int64_t int64SysctlByName(const char *sysctlName) { - int64_t sysctlInt64Value = 0; - size_t len = sizeof(int64_t); - sysctlbyname(sysctlName, &sysctlInt64Value, &len, NULL, 0); - return (sysctlInt64Value); -} - -static NSString *stringSysctlByName(const char *sysctlName) { - char sysctlBuffer[1024]; - size_t len = 1020; - memset(sysctlBuffer, 0, 1024); - sysctlbyname(sysctlName, &sysctlBuffer[0], &len, NULL, 0); - return ([NSString stringWithUTF8String: sysctlBuffer]); -} - -NSString *NSPlatformClassName = @"NSPlatform_darwin"; - -@implementation NSPlatform_darwin - -// nanosleep() is IEEE Std 1003.1b-1993, POSIX.1 -// This can probably move down to NSPlatform_posix - -void NSPlatformSleepThreadForTimeInterval(NSTimeInterval interval) { - double intervalIntegralPart, intervalFractionalPart; - struct timespec intervalTimeSpec; - - intervalFractionalPart = modf((double) interval, &intervalIntegralPart); - intervalTimeSpec.tv_sec = (long) (intervalIntegralPart); - intervalTimeSpec.tv_nsec = (long) (intervalFractionalPart * 1.0E9); - - nanosleep(&intervalTimeSpec, NULL); -} - -/* - SVr4, 4.4BSD (this function first appeared in 4.2BSD). - POSIX.1 does not define these functions, but ISO/IEC - 9945-1:1990 mentions them in B.4.4.1. - */ -- (NSString *) hostName { - char buf[MAXHOSTNAMELEN]; - gethostname(buf, MAXHOSTNAMELEN); - return [NSString stringWithCString: buf]; -} - -- (NSString *) DNSHostName { - // if we wanted to get crazy, we could open a dummy socket - // and then get its local address, the do a gethostbyaddr on that... - return [self hostName]; -} - -NSString *const NSPlatformExecutableDirectory = @"Darwin"; -NSString *const NSPlatformResourceNameSuffix = @"darwin"; - -NSString *const NSPlatformExecutableFileExtension = @""; -NSString *const NSPlatformLoadableObjectFileExtension = @"dylib"; -NSString *const NSPlatformLoadableObjectFilePrefix = @""; - -- (NSUInteger) processorCount { - return ((NSUInteger) int32SysctlByName("hw.ncpu")); -} - -- (NSUInteger) activeProcessorCount { - return ((NSUInteger) int32SysctlByName("hw.activecpu")); -} - -- (uint64_t) physicalMemory { - return ((uint64_t) int64SysctlByName("hw.memsize")); -} - -- (NSUInteger) operatingSystem { - return (NSMACHOperatingSystem); -} - -- (NSString *) operatingSystemName { - return (@"NSMACHOperatingSystem"); -} - -- (NSString *) operatingSystemVersionString { - static NSString *operatingSystemVersionString = NULL; - - if (operatingSystemVersionString == NULL) { - NSDictionary *operatingSystemVersionDictionary = [NSDictionary - dictionaryWithContentsOfFile: - @"/System/Library/CoreServices/SystemVersion.plist"]; - if (operatingSystemVersionDictionary == NULL) { - operatingSystemVersionDictionary = - [NSDictionary dictionaryWithContentsOfFile: - @"/System/Library/CoreServices/" - @"ServerVersion.plist"]; - } - if (operatingSystemVersionDictionary != NULL) { - operatingSystemVersionString = [[NSString alloc] - initWithFormat: - @"Version %@ (Build %@)", - [operatingSystemVersionDictionary - objectForKey: @"ProductVersion"], - [operatingSystemVersionDictionary - objectForKey: @"ProductBuildVersion"]]; - } else { - operatingSystemVersionString = [[NSString alloc] - initWithFormat: @"%@ Version %@ (Build %@)", - stringSysctlByName("kern.ostype"), - stringSysctlByName("kern.osrelease"), - stringSysctlByName("kern.osversion")]; - } - } - - return (operatingSystemVersionString); -} - -@end - -char **NSPlatform_environ() { - return *_NSGetEnviron(); -} -#endif diff --git a/Foundation/platform_darwin/NSString_defaultEncoding_darwin.m b/Foundation/platform_darwin/NSString_defaultEncoding_darwin.m deleted file mode 100644 index 01139830..00000000 --- a/Foundation/platform_darwin/NSString_defaultEncoding_darwin.m +++ /dev/null @@ -1,106 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#include -#include -#include -#include - -NSStringEncoding defaultEncoding() { - // don't use objc calls because they call often defaultCStringEncoding - - static int defaultEncoding = -1; - - if (defaultEncoding == -1) { - static struct passwd *pwent = NULL; - char filename[255] = {0}; - FILE *fhandle; - if (pwent == NULL) { - pwent = getpwuid(getuid()); - } - strcpy(filename, pwent->pw_dir); - strcat(filename, "/.CFUserTextEncoding"); - - fhandle = fopen(filename, "r"); - if (fhandle != NULL) { - int enc; - fscanf(fhandle, "%X", &enc); - fclose(fhandle); - - switch (enc) { - case 0: - defaultEncoding = NSMacOSRomanStringEncoding; - break; - case 0x0500: - defaultEncoding = NSWindowsCP1252StringEncoding; - break; - case 0x0201: - defaultEncoding = NSISOLatin1StringEncoding; - break; - case 0x0202: - defaultEncoding = NSISOLatin2StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - break; - case 0x0B01: - defaultEncoding = NSNEXTSTEPStringEncoding; - break; - case 0x0600: - defaultEncoding = NSASCIIStringEncoding; - break; - case 0x0100: - defaultEncoding = NSUnicodeStringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - break; - case 0x08000100: - defaultEncoding = NSUTF8StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - break; - case 0x0BFF: - defaultEncoding = NSNonLossyASCIIStringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - break; - case 0x0A01: - defaultEncoding = NSShiftJISStringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - break; - case 0x0920: - defaultEncoding = NSJapaneseEUCStringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - break; - default: - defaultEncoding = NSMacOSRomanStringEncoding; - break; - } - } - if (defaultEncoding == -1) { - defaultEncoding = NSMacOSRomanStringEncoding; - } - } - - return defaultEncoding; -} diff --git a/Foundation/platform_darwin/libmain.m b/Foundation/platform_darwin/libmain.m deleted file mode 100644 index 1008d964..00000000 --- a/Foundation/platform_darwin/libmain.m +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2010 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -extern int *_NSGetArgc(void); -extern char ***_NSGetArgv(void); - -FOUNDATION_EXPORT void __attribute__((constructor)) libmain(void) { - int *i = _NSGetArgc(); - char ***v = _NSGetArgv(); - __NSInitializeProcess(*i, (const char **) *v); -} diff --git a/Foundation/platform_linux/NSMemoryFunctions_linux.m b/Foundation/platform_linux/NSMemoryFunctions_linux.m deleted file mode 100644 index 532851a1..00000000 --- a/Foundation/platform_linux/NSMemoryFunctions_linux.m +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef LINUX -#import -#import -#import - -// on Linux, page size is a compiled constant in the kernel -NSUInteger NSPageSize(void) { - return getpagesize(); -} - -NSUInteger NSRealMemoryAvailable(void) { - struct sysinfo sysInfo; - - if (sysinfo(&sysInfo) != 0) // sysinfo is a pretty cool call - return -1; // dox don't say what an error return value might be - - return sysInfo.freeram * sysInfo.mem_unit; -} -#endif diff --git a/Foundation/platform_linux/NSPlatform_linux.h b/Foundation/platform_linux/NSPlatform_linux.h deleted file mode 100644 index aeb0110b..00000000 --- a/Foundation/platform_linux/NSPlatform_linux.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSPlatform_linux : NSPlatform_posix { -} - -@end diff --git a/Foundation/platform_linux/NSPlatform_linux.m b/Foundation/platform_linux/NSPlatform_linux.m deleted file mode 100644 index 279e3858..00000000 --- a/Foundation/platform_linux/NSPlatform_linux.m +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef LINUX -#import "NSPlatform_linux.h" -#import -#import - -#import // for MAXHOSTNAMELEN, why is that there? -#include -#include - -#ifdef LINUX -// messy -extern void tzset(void) __THROW; -#endif - -NSString *NSPlatformClassName = @"NSPlatform_linux"; - -@implementation NSPlatform_linux - -/* - BSD 4.3. The SUSv2 version returns int, and this is also - the prototype used by glibc 2.2.2. Only the EINVAL error - return is documented by SUSv2. - */ -void NSPlatformSleepThreadForTimeInterval(NSTimeInterval interval) { - if (interval <= 0.0) - return; - - if (interval > 1.0) - sleep((unsigned int) interval); - else - usleep((unsigned long) (1000000.0 * interval)); -} - -/* - SVr4, 4.4BSD (this function first appeared in 4.2BSD). - POSIX.1 does not define these functions, but ISO/IEC - 9945-1:1990 mentions them in B.4.4.1. - */ -- (NSString *) hostName { - char buf[MAXHOSTNAMELEN]; - gethostname(buf, MAXHOSTNAMELEN); - return [NSString stringWithCString: buf]; -} - -- (NSString *) DNSHostName { - // if we wanted to get crazy, we could open a dummy socket - // and then get its local address, the do a gethostbyaddr on that... - return [self hostName]; -} - -NSString *const NSPlatformExecutableDirectory = @"Linux"; -NSString *const NSPlatformResourceNameSuffix = @"linux"; - -NSString *const NSPlatformExecutableFileExtension = @""; -NSString *const NSPlatformLoadableObjectFileExtension = @"so"; -NSString *const NSPlatformLoadableObjectFilePrefix = @"lib"; - -@end - -char **NSPlatform_environ() { - return __environ; -} -#endif diff --git a/Foundation/platform_linux/libmain.m b/Foundation/platform_linux/libmain.m deleted file mode 100644 index 018646aa..00000000 --- a/Foundation/platform_linux/libmain.m +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (c) 2010 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef LINUX -#import -#import -#import - -#define READ_BUFFER_SIZE 2048 - -FOUNDATION_EXPORT void __attribute__((constructor)) libmain(void) { - - char **argValues = NULL; - static char **nArgValues = NULL; - - FILE *commandLineFile; - - char psinfofile[32] = {0}; - - commandLineFile = fopen("/proc/self/cmdline", "r"); - if (commandLineFile == NULL) { - fprintf(stderr, "Error during Cocotron initialization: Failed to open " - "command line file [/proc/self/cmdline]"); - abort(); - } - - char buffer[READ_BUFFER_SIZE]; - int argCount = 0; - - while (fgets(buffer, READ_BUFFER_SIZE, commandLineFile)) { - size_t n = 0; - while (n < READ_BUFFER_SIZE && buffer[n] != '\0') { - argCount++; - n += strlen(buffer + n) + 1; - } - } - - fseek(commandLineFile, 0, SEEK_SET); - - nArgValues = (char **) malloc(sizeof(char *) * (argCount)); - - int c = 0; - while (fgets(buffer, READ_BUFFER_SIZE, commandLineFile)) { - size_t n = 0; - while (n < READ_BUFFER_SIZE && buffer[n] != '\0') { - nArgValues[c] = (char *) strdup(buffer + n); - n += strlen(buffer + n) + 1; - c++; - } - } - - __NSInitializeProcess(argCount, (const char **) nArgValues); -} -#endif diff --git a/Foundation/platform_posix/NSCancelInputSource_posix.h b/Foundation/platform_posix/NSCancelInputSource_posix.h deleted file mode 100644 index b503e1ad..00000000 --- a/Foundation/platform_posix/NSCancelInputSource_posix.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import - -@class NSSocket; - -@interface NSCancelInputSource_posix : NSSelectInputSource { - NSSocket *_cancelRead; - NSSocket *_cancelWrite; - BOOL _hasCanceled; -} -@end diff --git a/Foundation/platform_posix/NSCancelInputSource_posix.m b/Foundation/platform_posix/NSCancelInputSource_posix.m deleted file mode 100644 index 76874a53..00000000 --- a/Foundation/platform_posix/NSCancelInputSource_posix.m +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX - -#import "NSCancelInputSource_posix.h" -#import -#import -#import - -@implementation NSCancelInputSource_posix -- (id) init { - _cancelWrite = [[NSSocket alloc] initConnectedToSocket: &_cancelRead]; - [_cancelRead retain]; - - [self initWithSocket: _cancelRead]; - [self setSelectEventMask: NSSelectReadEvent]; - return self; -} - -- (void) dealloc { - [_cancelRead release]; - [_cancelWrite release]; - [super dealloc]; -} - -/* --(NSUInteger)processImmediateEvents:(NSUInteger)selectEvent { - if(selectEvent & NSSelectReadEvent) { - uint8_t buf[256]; - [_cancelRead read:buf maxLength:256]; - _hasCanceled=NO; - return NSSelectReadEvent; - } - return 0; -}*/ - -- (void) cancel { - if (!_hasCanceled) { - uint8_t buf[] = "x"; - _hasCanceled = YES; - [_cancelWrite write: buf maxLength: 1]; - } -} - -@end -#endif diff --git a/Foundation/platform_posix/NSConditionLock_posix.h b/Foundation/platform_posix/NSConditionLock_posix.h deleted file mode 100644 index 49db99ca..00000000 --- a/Foundation/platform_posix/NSConditionLock_posix.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#include - -@class NSThread; - -@interface NSConditionLock_posix : NSConditionLock { - pthread_cond_t _cond; - pthread_mutex_t _mutex; - NSInteger _value; - NSThread *_lockingThread; -} - -@end diff --git a/Foundation/platform_posix/NSConditionLock_posix.m b/Foundation/platform_posix/NSConditionLock_posix.m deleted file mode 100644 index 63ab02da..00000000 --- a/Foundation/platform_posix/NSConditionLock_posix.m +++ /dev/null @@ -1,246 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#import -#import -#import -#import -#import -#include -#include -#include - -@implementation NSConditionLock_posix -- (id) init { - return [self initWithCondition: 0]; -} - -- (id) initWithCondition: (NSInteger) value { - if ((self = [super init])) { - pthread_cond_init(&_cond, NULL); - pthread_mutex_init(&_mutex, NULL); - _value = value; - } - return self; -} - -- (void) dealloc { - pthread_mutex_destroy(&_mutex); - pthread_cond_destroy(&_cond); - [_name release]; - _name = nil; - [super dealloc]; -} - -- (NSInteger) condition { - return _value; -} - -- (void) lock { - int rc; - if ((rc = pthread_mutex_lock(&_mutex)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to lock %@ (errno: %d)", self, rc]; - } - _lockingThread = NSCurrentThread(); -} - -- (void) unlock { - if (_lockingThread != NSCurrentThread()) { - NSCLog("trying to unlock 0x%x from thread 0x%x, was locked from 0x%x", - self, NSCurrentThread(), _lockingThread); - return; - } - - _lockingThread = nil; - pthread_mutex_unlock(&_mutex); -} - -- (BOOL) tryLock { - if (pthread_mutex_trylock(&_mutex)) - return NO; - _lockingThread = NSCurrentThread(); - return YES; -} - -- (BOOL) tryLockWhenCondition: (NSInteger) condition { - if ([self tryLock]) { - return NO; - } - - if (_value == condition) { - return YES; - } - [self unlock]; - return NO; -} - -- (void) lockWhenCondition: (NSInteger) condition { - - int rc; - - if ((rc = pthread_mutex_lock(&_mutex)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to lock %@ (errno: %d)", self, rc]; - } - - while (_value != condition) { - switch ((rc = pthread_cond_wait(&_cond, &_mutex))) { - case 0: - break; - default: { - int r; - if ((r = pthread_mutex_unlock(&_mutex)) != 0) { - [NSException - raise: NSInvalidArgumentException - format: @"failed to unlock %@ (errno: %d)", self, r]; - } - [NSException raise: NSInvalidArgumentException - format: @"failed to lock %@ (errno: %d)", self, rc]; - } - } - } - - _lockingThread = NSCurrentThread(); -} - -- (void) unlockWithCondition: (NSInteger) condition { - if (_lockingThread != NSCurrentThread()) { - NSCLog("trying to unlock 0x%x from thread 0x%x, was locked from 0x%x", - self, NSCurrentThread(), _lockingThread); - return; - } - - _lockingThread = nil; - _value = condition; - int rc; - if ((rc = pthread_mutex_unlock(&_mutex)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to unlock %@ (errno: %d)", self, rc]; - } - if ((rc = pthread_cond_broadcast(&_cond)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to broadcast %@ (errno: %d)", self, rc]; - } -} - -- (BOOL) lockBeforeDate: (NSDate *) date { - struct timeval tv; - struct timespec t; - int rc; - gettimeofday(&tv, NULL); - NSTimeInterval d = [date timeIntervalSinceNow]; - t.tv_sec = tv.tv_sec + (unsigned int) d; - t.tv_nsec = tv.tv_usec * 1000 + fmod(d, 1.0) * 1000000.0; - - if (t.tv_nsec >= 1000000000) { - t.tv_sec++; - t.tv_nsec -= 1000000000; - } - - if ((rc = pthread_mutex_lock(&_mutex)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to lock %@ (errno: %d)", self, rc]; - } - - switch ((rc = pthread_cond_timedwait(&_cond, &_mutex, &t))) { - case 0: - _lockingThread = NSCurrentThread(); - return YES; - case ETIMEDOUT: - if ((rc = pthread_mutex_unlock(&_mutex)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to unlock %@ (errno: %d)", self, rc]; - } - return NO; - default: { - int r; - if ((r = pthread_mutex_unlock(&_mutex)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to unlock %@ (errno: %d)", self, r]; - } - [NSException raise: NSInvalidArgumentException - format: @"failed to lock %@ before date %@ (errno: %d)", - self, date, rc]; - return NO; - } - } -} - -- (BOOL) lockWhenCondition: (NSInteger) condition beforeDate: (NSDate *) date { - struct timeval tv; - struct timespec t; - int rc; - gettimeofday(&tv, NULL); - NSTimeInterval d = [date timeIntervalSinceNow]; - t.tv_sec = tv.tv_sec + (unsigned int) d; - t.tv_nsec = tv.tv_usec * 1000 + fmod(d, 1.0) * 1000000.0; - - if (t.tv_nsec >= 1000000000) { - t.tv_sec++; - t.tv_nsec -= 1000000000; - } - - if ((rc = pthread_mutex_lock(&_mutex)) != 0) { - [NSException raise: NSInvalidArgumentException - format: @"failed to lock %@ (errno: %d)", self, rc]; - } - - while (_value != condition) { - switch ((rc = pthread_cond_timedwait(&_cond, &_mutex, &t))) { - case 0: - break; - case ETIMEDOUT: - if ((rc = pthread_mutex_unlock(&_mutex)) != 0) { - [NSException - raise: NSInvalidArgumentException - format: @"failed to unlock %@ (errno: %d)", self, rc]; - } - return NO; - default: { - int r; - if ((r = pthread_mutex_unlock(&_mutex)) != 0) { - [NSException - raise: NSInvalidArgumentException - format: @"failed to unlock %@ (errno: %d)", self, r]; - } - [NSException raise: NSInvalidArgumentException - format: @"failed to lock %@ before date %@ (errno: %d)", - self, date, rc]; - return NO; - } - } - } - - _lockingThread = NSCurrentThread(); - return YES; -} - -- (NSString *) name { - return _name; -} - -- (void) setName: (NSString *) name { - [_name release]; - _name = [name copy]; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSCondition_posix.h b/Foundation/platform_posix/NSCondition_posix.h deleted file mode 100644 index f46220bc..00000000 --- a/Foundation/platform_posix/NSCondition_posix.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// NSCondition_posix.h -// Foundation -// -// Created by Sven Weidauer on 08.03.10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import -#include - -@interface NSCondition_posix : NSCondition { - pthread_mutex_t mutex; - pthread_cond_t condition; -} - -@end diff --git a/Foundation/platform_posix/NSCondition_posix.m b/Foundation/platform_posix/NSCondition_posix.m deleted file mode 100644 index 34ed5acb..00000000 --- a/Foundation/platform_posix/NSCondition_posix.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// NSCondition_posix.m -// Foundation -// -// Created by Sven Weidauer on 08.03.10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// -#ifdef PLATFORM_IS_POSIX - -#import "NSCondition_posix.h" - -@implementation NSCondition_posix - -- init; { - if ([super init] == nil) - return nil; - - pthread_mutex_init(&mutex, 0); - pthread_cond_init(&condition, 0); - - return self; -} - -- (void) dealloc; { - pthread_cond_destroy(&condition); - pthread_mutex_destroy(&mutex); - [super dealloc]; -} - -- (void) lock; { - pthread_mutex_lock(&mutex); -} - -- (void) unlock; { - pthread_mutex_unlock(&mutex); -} - -- (void) signal; { - pthread_cond_signal(&condition); -} - -- (void) broadcast; { - pthread_cond_broadcast(&condition); -} - -- (void) wait; { - pthread_cond_wait(&condition, &mutex); -} - -@end -#endif diff --git a/Foundation/platform_posix/NSConstantString.m b/Foundation/platform_posix/NSConstantString.m deleted file mode 100644 index ec28e1b5..00000000 --- a/Foundation/platform_posix/NSConstantString.m +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -@interface NSString { - Class[self class]; -} -@end - -@interface NSConstantString : NSString { - char *_bytes; - unsigned _length; -} -@end - -@implementation NSConstantString - -@end - -#ifdef __clang__ -#ifndef __APPLE__ -@interface NXConstantString : NSConstantString - -@end - -@implementation NXConstantString - -@end -#endif -#endif diff --git a/Foundation/platform_posix/NSFileHandle_posix.h b/Foundation/platform_posix/NSFileHandle_posix.h deleted file mode 100644 index e0d63c9d..00000000 --- a/Foundation/platform_posix/NSFileHandle_posix.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSSelectInputSource; - -@interface NSFileHandle_posix : NSFileHandle { - int _fileDescriptor; - BOOL _closeOnDealloc; - NSSelectInputSource *_inputSource; - NSArray *_backgroundModes; -} - -- (id) initWithFileDescriptor: (int) fileDescriptor - closeOnDealloc: (BOOL) closeOnDealloc; -- (int) fileDescriptor; - -- (void) cancelBackgroundMonitoring; - -@end diff --git a/Foundation/platform_posix/NSFileHandle_posix.m b/Foundation/platform_posix/NSFileHandle_posix.m deleted file mode 100644 index e935b79b..00000000 --- a/Foundation/platform_posix/NSFileHandle_posix.m +++ /dev/null @@ -1,466 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#import "NSSocket_bsd.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#include -#include -#import -#include -#include -#import -#include -#include -#import -#include - -@implementation NSFileHandle (ImplementedInSubclass) - -+ (Class) concreteSubclass { - return [NSFileHandle_posix class]; -} - -@end - -@implementation NSFileHandle_posix - -- (id) initWithFileDescriptor: (int) fileDescriptor - closeOnDealloc: (BOOL) closeOnDealloc -{ - _fileDescriptor = fileDescriptor; - _closeOnDealloc = closeOnDealloc; - - return self; -} - -- (void) dealloc { - if (_inputSource != nil) - [self cancelBackgroundMonitoring]; - - if (_closeOnDealloc == YES) - [self closeFile]; - - [super dealloc]; -} - -static int descriptorForPath(NSString *path, int modes) { - NSDictionary *fileAttributes = - [[NSFileManager defaultManager] fileAttributesAtPath: path - traverseLink: YES]; - - if (fileAttributes == nil) - return -1; - - if ([[fileAttributes objectForKey: NSFileType] isEqual: NSFileTypeSocket]) { - int fd; - - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) - return -1; - else { - socklen_t len; - struct sockaddr_un remote; - - remote.sun_family = AF_UNIX; - strcpy(remote.sun_path, [path fileSystemRepresentation]); - len = (socklen_t)(strlen(remote.sun_path) + - sizeof(remote.sun_family)); - if (connect(fd, (struct sockaddr *) &remote, len) == -1) { - close(fd); - return -1; - } - } - return fd; - } else { - return open([path fileSystemRepresentation], modes, - FOUNDATION_FILE_MODE); - } -} - -+ fileHandleForReadingAtPath: (NSString *) path { - int fd = descriptorForPath(path, O_RDONLY); - - if (fd == -1) - return nil; - - return [[[self allocWithZone: NULL] initWithFileDescriptor: fd] - autorelease]; -} - -+ fileHandleForWritingAtPath: (NSString *) path { - int fd = descriptorForPath(path, O_WRONLY | O_CREAT); - - if (fd == -1) - return nil; - - return [[[self allocWithZone: NULL] initWithFileDescriptor: fd] - autorelease]; -} - -+ fileHandleForUpdatingAtPath: (NSString *) path { - int fd = descriptorForPath(path, O_RDWR); - - if (fd == -1) - return nil; - - return [[[self allocWithZone: NULL] initWithFileDescriptor: fd] - autorelease]; -} - -+ fileHandleWithNullDevice { - return [self fileHandleForUpdatingAtPath: @"/dev/null"]; -} - -+ fileHandleWithStandardInput { - return [[[self allocWithZone: NULL] initWithFileDescriptor: STDIN_FILENO - closeOnDealloc: NO] - autorelease]; -} - -+ fileHandleWithStandardOutput { - return [[[self allocWithZone: NULL] initWithFileDescriptor: STDOUT_FILENO - closeOnDealloc: NO] - autorelease]; -} - -+ fileHandleWithStandardError { - return [[[self allocWithZone: NULL] initWithFileDescriptor: STDERR_FILENO - closeOnDealloc: NO] - autorelease]; -} - -/* -CONFORMING TO - POSIX.1b (formerly POSIX.4) - */ -- (void) closeFile { - if (_fileDescriptor == -1) - return; - if (close(_fileDescriptor) == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"close(%d): %s", _fileDescriptor, strerror(errno)); - } - _fileDescriptor = -1; -} - -- (void) synchronizeFile { - if (fsync(_fileDescriptor) == -1) - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"fsync(%d): %s", _fileDescriptor, strerror(errno)); -} - -- (uint64_t) offsetInFile { - uint64_t result = lseek(_fileDescriptor, 0, SEEK_CUR); - - if (result == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"lseek(%d):", _fileDescriptor, strerror(errno)); - return -1; - } - - return result; -} - -- (void) seekToFileOffset: (uint64_t) offset { - if (lseek(_fileDescriptor, offset, SEEK_SET) == -1) - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"lseek(%d): %s", _fileDescriptor, strerror(errno)); -} - -- (uint64_t) seekToEndOfFile { - uint64_t result = lseek(_fileDescriptor, 0, SEEK_END); - if (result == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"lseek(%d): %s", _fileDescriptor, strerror(errno)); - return -1; - } - - return result; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@[0x%lx] fileDescriptor: %d>", - [[self class] description], self, - _fileDescriptor]; -} - -// private method for NSTask... this method is actually exposed in OSX 10.2. -- (int) fileDescriptor { - return _fileDescriptor; -} - -// POSIX programmer's guide p. 272 -- (BOOL) isNonBlocking { - int flags = fcntl(_fileDescriptor, F_GETFL); - if (flags == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"isNonBlocking: %s", strerror(errno)); - } - - return (flags & O_NONBLOCK) ? YES : NO; -} - -- (void) setNonBlocking: (BOOL) flag { - int flags = fcntl(_fileDescriptor, F_GETFL); - if (flags == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"setNonBlocking(GETFL)(%d): %s", flag, - strerror(errno)); - } - - if (flag) - flags |= O_NONBLOCK; - else - flags &= ~O_NONBLOCK; - - if (fcntl(_fileDescriptor, F_SETFL, flags) == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"setNonBlocking(SETFL)(%d): %s", flag, - strerror(errno)); - } -} - -- (NSData *) readDataOfLength: (NSUInteger) length { - NSMutableData *mutableData = [NSMutableData dataWithLength: length]; - ssize_t count, total = 0; - - [self setNonBlocking: NO]; - - do { - count = read(_fileDescriptor, [mutableData mutableBytes] + total, - length - total); - if (count == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"read(%d): %s", _fileDescriptor, strerror(errno)); - return nil; - } - - if (count == 0) { // end of file - [mutableData setLength: total]; - break; - } - - total += count; - } while (total < length); - - return mutableData; -} - -- (NSData *) readDataToEndOfFile { - NSMutableData *mutableData = [NSMutableData dataWithLength: 4096]; - ssize_t count, total = 0; - - [self setNonBlocking: NO]; - - do { - count = read(_fileDescriptor, [mutableData mutableBytes] + total, 4096); - if (count == -1) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"read(%d): %s", _fileDescriptor, strerror(errno)); - return nil; - } - - if (count == 0) { // end of file - [mutableData setLength: total]; - break; - } - - [mutableData increaseLengthBy: 4096]; - - total += count; - } while (YES); - - return mutableData; -} - -- (NSData *) availableData { - NSMutableData *mutableData = [NSMutableData dataWithLength: 0]; - int count; - int length = 0; - int err; - - do { - [mutableData increaseLengthBy: 4096]; - [self setNonBlocking: YES]; - count = read(_fileDescriptor, - &((char *) [mutableData mutableBytes])[length], 4096); - err = errno; // preserved so that the next fcntl doesn't clobber it - - [self setNonBlocking: NO]; - - if (count <= 0) { - while (err == EAGAIN || err == EINTR) { - [self setNonBlocking: NO]; - count = read(_fileDescriptor, - &((char *) [mutableData mutableBytes])[length], 1); - err = errno; // preserved so that the next fcntl doesn't clobber - // it - [self setNonBlocking: YES]; - if (count > 0) { - count = read( - _fileDescriptor, - &((char *) [mutableData mutableBytes])[length + 1], - 4096 - 1); - if (count > 0) { - count += 1; - } else { - count = 1; - } - break; - } else if (count == 0) { - // no more data available - break; - } - } - } - - if (count < 0) { - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"read(%d): %s", _fileDescriptor, strerror(err)); - } - - length += count; - - } while (count == 4096); - - [mutableData setLength: length]; - - return mutableData; -} - -- (void) writeData: (NSData *) data { - const void *bytes = [data bytes]; - NSUInteger length = [data length], total = 0; - size_t count; - - do { - count = write(_fileDescriptor, bytes + total, length - total); - if (count == -1) - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"write(%d): %s", _fileDescriptor, - strerror(errno)); - - total += count; - } while (total < length); -} - -- (void) truncateFileAtOffset: (uint64_t) offset { - if (ftruncate(_fileDescriptor, offset) != 0) { - NSLog(@"NSFileHandle: could not truncate file: (%d) %s", errno, - strerror(errno)); - } -} - -- (void) cancelBackgroundMonitoring { - NSInteger i, count = [_backgroundModes count]; - - for (i = 0; i < count; ++i) - [[NSRunLoop currentRunLoop] - removeInputSource: _inputSource - forMode: [_backgroundModes objectAtIndex: i]]; - - // we never actually retain the monitor, the run loop does--so we don't need - // to release it. - _inputSource = nil; - [_backgroundModes release]; - _backgroundModes = nil; -} - -- (void) readInBackgroundAndNotifyForModes: (NSArray *) modes { - NSInteger i, count = [modes count]; - - if (_inputSource != nil) - [NSException raise: NSInternalInconsistencyException - format: @"%@ already has background activity", - [self description]]; - - _inputSource = [NSSelectInputSource - socketInputSourceWithSocket: - [NSSocket_bsd socketWithDescriptor: _fileDescriptor]]; - [_inputSource setSelectEventMask: NSSelectReadEvent]; - [_inputSource setDelegate: self]; - _backgroundModes = [modes retain]; - - for (i = 0; i < count; ++i) - [[NSRunLoop currentRunLoop] addInputSource: _inputSource - forMode: [modes objectAtIndex: i]]; -} - -- (void) _acceptConnectionInBackgroundAndNotifyForModes: (NSArray *) modes { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - - struct sockaddr_in addr; - socklen_t len = sizeof(addr); - getsockname(_fileDescriptor, (struct sockaddr *) &addr, &len); - - listen(_fileDescriptor, 1); - accept(_fileDescriptor, (struct sockaddr *) &addr, &len); - - NSNotification *note = [NSNotification - notificationWithName: NSFileHandleConnectionAcceptedNotification - object: self]; - [[NSNotificationCenter defaultCenter] postNotification: note]; - - [pool drain]; -} - -- (void) acceptConnectionInBackgroundAndNotifyForModes: (NSArray *) modes { - [NSThread detachNewThreadSelector: @selector - (_acceptConnectionInBackgroundAndNotifyForModes:) - toTarget: self - withObject: modes]; -} - -- (void) selectInputSource: (NSSelectInputSource *) inputSource - selectEvent: (NSUInteger) selectEvent -{ - NSData *availableData = [self availableData]; - NSDictionary *userInfo; - NSNotification *note; - - [self cancelBackgroundMonitoring]; - - userInfo = [NSDictionary - dictionaryWithObject: availableData - forKey: NSFileHandleNotificationDataItem]; - note = [NSNotification - notificationWithName: NSFileHandleReadCompletionNotification - object: self - userInfo: userInfo]; - - [[NSNotificationCenter defaultCenter] postNotification: note]; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSFileManager_posix.h b/Foundation/platform_posix/NSFileManager_posix.h deleted file mode 100644 index dbd11fb0..00000000 --- a/Foundation/platform_posix/NSFileManager_posix.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSFileManager_posix : NSFileManager - -@end diff --git a/Foundation/platform_posix/NSFileManager_posix.m b/Foundation/platform_posix/NSFileManager_posix.m deleted file mode 100644 index 3026b379..00000000 --- a/Foundation/platform_posix/NSFileManager_posix.m +++ /dev/null @@ -1,519 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -@implementation NSFileManager (posix) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSFileManager_posix class], 0, NULL); -} - -@end - -@implementation NSFileManager_posix - -- (BOOL) createFileAtPath: (NSString *) path - contents: (NSData *) data - attributes: (NSDictionary *) attributes -{ - return [[NSPlatform currentPlatform] writeContentsOfFile: path - bytes: [data bytes] - length: [data length] - options: NSAtomicWrite - error: NULL]; -} - -- (NSArray *) directoryContentsAtPath: (NSString *) path { - return [self contentsOfDirectoryAtPath: path error: NULL]; -} - -- (NSArray *) contentsOfDirectoryAtPath: (NSString *) path - error: (NSError **) error -{ - // TODO fill error - NSMutableArray *result = nil; - DIR *dirp = NULL; - struct dirent *dire; - - if (path == nil) { - return nil; - } - - dirp = opendir([path fileSystemRepresentation]); - - if (dirp == NULL) - return nil; - - result = [NSMutableArray array]; - - while ((dire = readdir(dirp))) { - if (strcmp(".", dire->d_name) == 0) - continue; - if (strcmp("..", dire->d_name) == 0) - continue; - [result addObject: [NSString stringWithCString: dire->d_name]]; - } - - closedir(dirp); - - return result; -} - -- (BOOL) createDirectoryAtPath: (NSString *) path - attributes: (NSDictionary *) attributes -{ - // you can set all these, but we don't respect 'em all yet - // NSDate *date = [attributes objectForKey:NSFileModificationDate]; - // NSString *owner = [attributes objectForKey:NSFileOwnerAccountName]; - // NSString *group = [attributes objectForKey:NSFileGroupOwnerAccountName]; - int mode = [[attributes objectForKey: NSFilePosixPermissions] intValue]; - - if (mode == 0) - mode = FOUNDATION_DIR_MODE; - - return (mkdir([path fileSystemRepresentation], mode) == 0); -} - -- (BOOL) fileExistsAtPath: (NSString *) path isDirectory: (BOOL *) isDirectory { - struct stat buf; - - if (stat([path fileSystemRepresentation], &buf) < 0) - return NO; - - if (isDirectory != NULL) - *isDirectory = S_ISDIR(buf.st_mode); - - return YES; -} - -// we dont want to use fileExists... because it chases links -- (BOOL) _isDirectory: (NSString *) path { - struct stat buf; - - if (lstat([path fileSystemRepresentation], &buf) < 0) - return NO; - - if (buf.st_mode & S_IFDIR && !(buf.st_mode & S_IFLNK)) - return YES; - - return NO; -} - -- (BOOL) _errorHandler: handler - src: (NSString *) src - dest: (NSString *) dest - operation: (NSString *) op -{ - if ([handler respondsToSelector: @selector(fileManager: - shouldProceedAfterError:)]) { - NSDictionary *errorInfo = [NSDictionary - dictionaryWithObjectsAndKeys: - src, @"Path", - [NSString stringWithFormat: @"%@: %s", op, - strerror(errno)], - @"Error", dest, @"ToPath", nil]; - - if ([handler fileManager: self shouldProceedAfterError: errorInfo]) - return YES; - } - - return NO; -} - -- (BOOL) removeItemAtPath: (NSString *) path error: (NSError **) error { - if ([path isEqualToString: @"."] || [path isEqualToString: @".."]) - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"%@: invalid path", path); - - if (![self _isDirectory: path]) { - if (remove([path fileSystemRepresentation]) == -1) { - if (error != NULL) - *error = nil; // TODO set error - return NO; - } - } else { - NSArray *contents = [self directoryContentsAtPath: path]; - NSInteger i, count = [contents count]; - - for (i = 0; i < count; i++) { - NSString *name = [contents objectAtIndex: i]; - NSString *fullPath; - - if ([name isEqualToString: @"."] || [name isEqualToString: @".."]) - continue; - - fullPath = [path stringByAppendingPathComponent: name]; - if (![self removeItemAtPath: fullPath error: error]) { - if (error != NULL) - *error = nil; // TODO set error - return NO; - } - } - - if (rmdir([path fileSystemRepresentation]) == -1) { - if (error != NULL) - *error = nil; // TODO set error - return NO; - } - } - return YES; -} - -- (BOOL) removeFileAtPath: (NSString *) path handler: handler { - NSError *error = nil; - - if ([handler respondsToSelector: @selector(fileManager:willProcessPath:)]) - [handler fileManager: self willProcessPath: path]; - - if ([self removeItemAtPath: path error: &error] == NO && handler != nil) { - [self _errorHandler: handler - src: path - dest: @"" - operation: [error description]]; - return NO; - } - - return YES; -} - -- (BOOL) movePath: (NSString *) src toPath: (NSString *) dest handler: handler { - NSError *error = nil; - - if ([handler respondsToSelector: @selector(fileManager:willProcessPath:)]) - [handler fileManager: self willProcessPath: src]; - - if ([self moveItemAtPath: src toPath: dest error: &error] == NO && - handler != nil) { - [self _errorHandler: handler - src: src - dest: dest - operation: [error description]]; - return NO; - } - - return YES; -} - -- (BOOL) moveItemAtPath: (NSString *) srcPath - toPath: (NSString *) dstPath - error: (NSError **) error -{ - - /* - It's not this easy... - return rename([src fileSystemRepresentation],[dest - fileSystemRepresentation])?NO:YES; - */ - - BOOL isDirectory; - - // TODO fill error - - if ([self fileExistsAtPath: srcPath isDirectory: &isDirectory] == NO) - return NO; - if ([self fileExistsAtPath: dstPath isDirectory: &isDirectory] == YES) - return NO; - - if ([self copyPath: srcPath toPath: dstPath handler: nil] == NO) { - [self removeFileAtPath: dstPath handler: nil]; - return NO; - } - - // not much we can do if this fails - [self removeFileAtPath: srcPath handler: nil]; - - return YES; -} - -- (BOOL) copyPath: (NSString *) src toPath: (NSString *) dest handler: handler { - NSError *error = nil; - if ([self copyItemAtPath: src toPath: dest error: &error] == NO && - handler != nil) { - [self _errorHandler: handler - src: src - dest: dest - operation: [error description]]; - return NO; - } - - return YES; -} - -- (BOOL) copyItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error -{ - BOOL isDirectory; - - if (![self fileExistsAtPath: fromPath isDirectory: &isDirectory]) { - if (error != NULL) { - // TODO set error - } - return NO; - } - - if (!isDirectory) { - int r, w; - char buf[4096]; - size_t count; - - if ((w = open([toPath fileSystemRepresentation], O_WRONLY | O_CREAT, - FOUNDATION_FILE_MODE)) == -1) { - if (error != NULL) { - // TODO set error - } - return NO; - } - if ((r = open([fromPath fileSystemRepresentation], O_RDONLY)) == -1) { - if (error != NULL) { - // TODO set error - } - close(w); - return NO; - } - - while ((count = read(r, &buf, sizeof(buf))) > 0) { - if (count == -1) - break; - - if (write(w, &buf, count) != count) { - count = -1; - break; - } - } - - close(w); - close(r); - - if (count == -1) { - if (error != NULL) { - // TODO set error - } - return NO; - } else - return YES; - } else { - NSArray *files; - NSInteger i, count; - - if (mkdir([toPath fileSystemRepresentation], FOUNDATION_DIR_MODE) != - 0) { - if (error != NULL) { - // TODO set error - } - return NO; - } - - // if (chdir([dest fileSystemRepresentation]) != 0) - // return [self _errorHandler:handler src:src dest:dest - // operation:@"copyPath: chdir(subdir)"]; - - files = [self directoryContentsAtPath: fromPath]; - count = [files count]; - - for (i = 0; i < count; i++) { - NSString *name = [files objectAtIndex: i]; - NSString *subsrc, *subdst; - - if ([name isEqualToString: @"."] || [name isEqualToString: @".."]) - continue; - - subsrc = [fromPath stringByAppendingPathComponent: name]; - subdst = [toPath stringByAppendingPathComponent: name]; - - if ([self copyItemAtPath: subsrc toPath: subdst - error: error] == NO) { - if (error != NULL) { - // TODO set error - } - return NO; - } - } - - // if (chdir("..") != 0) - // return [self _errorHandler:handler src:src dest:dest - // operation:@"copyPath: chdir(..)"]; - } - - return YES; -} -- (NSString *) currentDirectoryPath { - char path[MAXPATHLEN + 1]; - - if (getcwd(path, sizeof(path)) != NULL) - return [NSString stringWithCString: path]; - - return nil; -} - -- (NSString *) pathContentOfSymbolicLinkAtPath: (NSString *) path { - char linkbuf[MAXPATHLEN + 1]; - size_t length; - - length = readlink([path fileSystemRepresentation], linkbuf, MAXPATHLEN); - if (length == -1) - return nil; - - linkbuf[length] = 0; - return [NSString stringWithCString: linkbuf]; -} - -- (NSDictionary *) fileAttributesAtPath: (NSString *) path - traverseLink: (BOOL) traverse -{ - NSMutableDictionary *result = [NSMutableDictionary dictionary]; - struct stat statBuf; - struct passwd *pwd; - struct group *grp; - - if (lstat([path fileSystemRepresentation], &statBuf) != 0) - return nil; - - // (Not in POSIX.1-1996.) - if (S_ISLNK(statBuf.st_mode) && traverse) { - NSString *linkContents = [self pathContentOfSymbolicLinkAtPath: path]; - return [self fileAttributesAtPath: linkContents traverseLink: traverse]; - } - - [result setObject: [NSNumber numberWithUnsignedLong: statBuf.st_size] - forKey: NSFileSize]; - [result setObject: [NSDate dateWithTimeIntervalSince1970: statBuf.st_mtime] - forKey: NSFileModificationDate]; - - // User/group names don't always exist for the IDs in the filesystem. - // If we don't check for NULLs, we'll segfault. - pwd = getpwuid(statBuf.st_uid); - if (pwd != NULL) - [result setObject: [NSString stringWithCString: pwd->pw_name] - forKey: NSFileOwnerAccountName]; - - grp = getgrgid(statBuf.st_gid); - if (grp != NULL) - [result setObject: [NSString stringWithCString: grp->gr_name] - forKey: NSFileGroupOwnerAccountName]; - - [result setObject: [NSNumber numberWithUnsignedLong: statBuf.st_nlink] - forKey: NSFileReferenceCount]; - [result setObject: [NSNumber numberWithUnsignedLong: statBuf.st_ino] - forKey: NSFileIdentifier]; - [result setObject: [NSNumber numberWithUnsignedLong: statBuf.st_dev] - forKey: NSFileDeviceIdentifier]; - [result setObject: [NSNumber numberWithUnsignedLong: statBuf.st_mode] - forKey: NSFilePosixPermissions]; - - // ugh.. skip this if we can - if (!S_ISREG(statBuf.st_mode)) { - if (S_ISDIR(statBuf.st_mode)) - [result setObject: NSFileTypeDirectory forKey: NSFileType]; - else if (S_ISCHR(statBuf.st_mode)) - [result setObject: NSFileTypeCharacterSpecial forKey: NSFileType]; - else if (S_ISBLK(statBuf.st_mode)) - [result setObject: NSFileTypeBlockSpecial forKey: NSFileType]; - else if (S_ISFIFO(statBuf.st_mode)) - [result setObject: NSFileTypeFIFO forKey: NSFileType]; - else if (S_ISLNK(statBuf.st_mode)) - [result setObject: NSFileTypeSymbolicLink forKey: NSFileType]; - else if (S_ISSOCK(statBuf.st_mode)) - [result setObject: NSFileTypeSocket forKey: NSFileType]; - } else - [result setObject: NSFileTypeRegular forKey: NSFileType]; - - return result; -} - -- (BOOL) isReadableFileAtPath: (NSString *) path { - return access([path fileSystemRepresentation], R_OK) ? NO : YES; -} - -- (BOOL) isWritableFileAtPath: (NSString *) path { - return access([path fileSystemRepresentation], W_OK) ? NO : YES; -} - -- (BOOL) isExecutableFileAtPath: (NSString *) path { - return access([path fileSystemRepresentation], X_OK) ? NO : YES; -} - -- (BOOL) createSymbolicLinkAtPath: (NSString *) path - pathContent: (NSString *) otherPath -{ - return (symlink([otherPath fileSystemRepresentation], - [path fileSystemRepresentation]) == 0); -} - -- (BOOL) setAttributes: (NSDictionary *) attributes - ofItemAtPath: (NSString *) path - error: (NSError **) error -{ - if (error != NULL) { - // TODO set error - } - - return NO; -} - -- (const char *) fileSystemRepresentationWithPath: (NSString *) path { - return [path cStringUsingEncoding: NSUTF8StringEncoding]; -} - -- (NSString *) destinationOfSymbolicLinkAtPath: (NSString *) path - error: (NSError **) error -{ - char destination[MAXPATHLEN + 1]; - ssize_t bytes; - - bytes = readlink([path fileSystemRepresentation], destination, MAXPATHLEN); - - if (bytes == -1) { - // TODO fill error - return nil; - } - - destination[bytes] = 0; - - return [NSString stringWithCString: destination - encoding: NSUTF8StringEncoding]; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSLock_posix.h b/Foundation/platform_posix/NSLock_posix.h deleted file mode 100644 index 4c69e0ee..00000000 --- a/Foundation/platform_posix/NSLock_posix.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#include - -@interface NSLock_posix : NSLock { - pthread_mutex_t _mutex; -} - -@end diff --git a/Foundation/platform_posix/NSLock_posix.m b/Foundation/platform_posix/NSLock_posix.m deleted file mode 100644 index c3ca0cdb..00000000 --- a/Foundation/platform_posix/NSLock_posix.m +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#include - -#import -#import -#import - -@implementation NSLock_posix - -- init { - if (pthread_mutex_init(&_mutex, NULL) != 0) { - [self autorelease]; - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"pthread_mutex_lock() returned -1"); - } - - return self; -} - -- (void) dealloc { - pthread_mutex_destroy(&_mutex); - [super dealloc]; -} - -- (void) lock { - if (pthread_mutex_lock(&_mutex) != 0) - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"pthread_mutex_lock() returned -1"); -} - -- (void) unlock { - if (pthread_mutex_unlock(&_mutex) != 0) - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"pthread_mutex_lock() returned -1"); -} - -@end -#endif diff --git a/Foundation/platform_posix/NSMemoryFunctions_posix.m b/Foundation/platform_posix/NSMemoryFunctions_posix.m deleted file mode 100644 index ccbeddef..00000000 --- a/Foundation/platform_posix/NSMemoryFunctions_posix.m +++ /dev/null @@ -1,169 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#import -#import -#import -#import -#import -#import -#import - -#include -#include -#include -#include -#include - -// some notes: -// - this uses POSIX thread local storage functions -// - there is no zone support - -void *NSAllocateMemoryPages(NSUInteger byteCount) { - void *buffer = malloc(byteCount); - if (buffer == NULL) { - fprintf(stderr, "NSAllocateMemoryPages(%u) failed. Error: %s\n", - byteCount, strerror(errno)); - } - return buffer; -} - -void NSDeallocateMemoryPages(void *pointer, NSUInteger byteCount) { - free(pointer); -} - -void NSCopyMemoryPages(const void *src, void *dst, NSUInteger byteCount) { - const uint8_t *srcb = src; - uint8_t *dstb = dst; - NSUInteger i; - - for (i = 0; i < byteCount; i++) - dstb[i] = srcb[i]; -} - -NSZone *NSCreateZone(NSUInteger startSize, NSUInteger granularity, BOOL canFree) -{ - return NULL; -} - -NSZone *NSDefaultMallocZone(void) { - return NULL; -} - -void NSRecycleZone(NSZone *zone) { -} - -void NSSetZoneName(NSZone *zone, NSString *name) { -} - -NSString *NSZoneName(NSZone *zone) { - return @"zone"; -} - -NSZone *NSZoneFromPointer(void *pointer) { - return NULL; -} - -void *NSZoneCalloc(NSZone *zone, NSUInteger numElems, NSUInteger numBytes) { - void *buffer = calloc(numElems, numBytes); - if (buffer == NULL) { - fprintf(stderr, "NSZoneCalloc(zone, %u, %u) failed. Error: %s\n", - numElems, numBytes, strerror(errno)); - } - return buffer; -} - -void NSZoneFree(NSZone *zone, void *pointer) { - free(pointer); -} - -void *NSZoneMalloc(NSZone *zone, NSUInteger size) { - void *buffer = malloc(size); - if (buffer == NULL) { - fprintf(stderr, "NSZoneMalloc(zone, %u) failed. Error: %s\n", size, - strerror(errno)); - } - return buffer; -} - -void *NSZoneRealloc(NSZone *zone, void *pointer, NSUInteger size) { - void *buffer = realloc(pointer, size); - if (buffer == NULL && size > 0) { - fprintf(stderr, "NSZoneRealloc(zone, %p, %u) failed. Error: %s\n", - pointer, size, strerror(errno)); - } - return buffer; -} - -static pthread_key_t _NSThreadInstanceKey() { - static pthread_key_t key = -1; - if (key == -1) { - if (pthread_key_create(&key, NULL) != 0) - [NSException raise: NSInternalInconsistencyException - format: @"pthread_key_create failed"]; - } - - return key; -} - -void NSPlatformSetCurrentThread(NSThread *thread) { - pthread_setspecific(_NSThreadInstanceKey(), thread); -} - -NSThread *NSPlatformCurrentThread() { - NSThread *thread = pthread_getspecific(_NSThreadInstanceKey()); - - if (!thread) { - // maybe NSThread is not +initialize'd - [NSThread class]; - thread = pthread_getspecific(_NSThreadInstanceKey()); - if (!thread) { - thread = [NSThread alloc]; - if (thread) { - NSPlatformSetCurrentThread(thread); { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - [thread init]; - [pool release]; - } - } - } - if (!thread) { - [NSException raise: NSInternalInconsistencyException - format: @"No current thread"]; - } - } - - return thread; -} - -NSUInteger NSPlatformDetachThread(void *(*func)(void *arg), void *arg, - NSError **errorp) -{ - pthread_t thread; - int err; - if ((err = pthread_create(&thread, NULL, func, arg)) != 0) { - if (errorp) - *errorp = [NSError errorWithDomain: NSPOSIXErrorDomain - code: err - userInfo: nil]; - return 0; - } - return (NSUInteger) thread; -} -#endif diff --git a/Foundation/platform_posix/NSPersistantDomain_posix.h b/Foundation/platform_posix/NSPersistantDomain_posix.h deleted file mode 100644 index 35065492..00000000 --- a/Foundation/platform_posix/NSPersistantDomain_posix.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -#define POSIX_ENVIRONMENT_BASE @"HOME" - -@class NSArray, NSDictionary; - -@interface NSPersistantDomain_posix : NSPersistantDomain { - NSString *_path; - NSMutableDictionary *_mutableDomain; -} - -+ (NSPersistantDomain_posix *) persistantDomainWithName: (NSString *) name; - -- (NSArray *) allKeys; -- (NSEnumerator *) keyEnumerator; -- objectForKey: (NSString *) key; -- (void) setObject: object forKey: (NSString *) key; -- (void) removeObjectForKey: (NSString *) key; - -- (void) synchronize; - -@end diff --git a/Foundation/platform_posix/NSPersistantDomain_posix.m b/Foundation/platform_posix/NSPersistantDomain_posix.m deleted file mode 100644 index ce6cd0c8..00000000 --- a/Foundation/platform_posix/NSPersistantDomain_posix.m +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifdef PLATFORM_IS_POSIX -#import -#import -#import -#import -#import -#import -#import - -@implementation NSPersistantDomain_posix - -- initWithName: (NSString *) name { - NSDictionary *serializedDictionary; - - _path = [NSHomeDirectory() stringByAppendingPathComponent: @"Library"]; - _path = [_path stringByAppendingPathComponent: @"NSUserDefaults"]; - _path = [_path stringByAppendingPathComponent: name]; - _path = [[_path stringByAppendingPathExtension: @"plist"] retain]; - - serializedDictionary = - [NSPropertyListReader dictionaryWithContentsOfFile: _path]; - if (serializedDictionary != nil) - _mutableDomain = [serializedDictionary mutableCopy]; - else - _mutableDomain = [[NSMutableDictionary alloc] init]; - - return self; -} - -- (void) dealloc { - [_mutableDomain release]; - [_path release]; - - [super dealloc]; -} - -+ (NSPersistantDomain_posix *) persistantDomainWithName: (NSString *) name { - return [[[self allocWithZone: NULL] initWithName: name] autorelease]; -} - -- (NSArray *) allKeys { - return [_mutableDomain allKeys]; -} - -- (NSEnumerator *) keyEnumerator { - return [[self allKeys] objectEnumerator]; -} - -- objectForKey: (NSString *) key { - return [_mutableDomain objectForKey: key]; -} - -- (void) setObject: object forKey: (NSString *) key { - [_mutableDomain setObject: object forKey: key]; -} - -- (void) removeObjectForKey: (NSString *) key { - [_mutableDomain removeObjectForKey: key]; -} - -- (void) createUserDefaultsDirectoryIfNeeded { - BOOL isDirectory; - NSArray *components = [_path pathComponents]; - NSInteger i, count = [components count]; - NSString *check = @""; - - for (i = 0; i < count; i++) { - // leave the error checking up to -synchronize - check = [check - stringByAppendingPathComponent: [components objectAtIndex: i]]; - if (i > 0 && - ![[NSFileManager defaultManager] fileExistsAtPath: check - isDirectory: &isDirectory]) { - [[NSFileManager defaultManager] createDirectoryAtPath: check - attributes: nil]; - } - } -} - -- (void) synchronize { - [self createUserDefaultsDirectoryIfNeeded]; - if ([NSPropertyListWriter_vintage writePropertyList: _mutableDomain - toFile: _path - atomically: YES] == NO) - [NSException raise: NSInternalInconsistencyException - format: @"Cannot synchronize NSUserDefaults to %@", _path]; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSPipe_posix.h b/Foundation/platform_posix/NSPipe_posix.h deleted file mode 100644 index 1cdf07eb..00000000 --- a/Foundation/platform_posix/NSPipe_posix.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSPipe_posix : NSPipe { - NSFileHandle *_fileHandleForReading; - NSFileHandle *_fileHandleForWriting; -} - -@end diff --git a/Foundation/platform_posix/NSPipe_posix.m b/Foundation/platform_posix/NSPipe_posix.m deleted file mode 100644 index a17889fd..00000000 --- a/Foundation/platform_posix/NSPipe_posix.m +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#import -#import -#import -#import - -#include -#include - -@implementation NSPipe_posix - -- init { - int fds[2]; - - if (pipe(fds) == -1) - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"pipe() failed: %s", strerror(errno)); - - _fileHandleForReading = - [[NSFileHandle_posix alloc] initWithFileDescriptor: fds[0]]; - _fileHandleForWriting = - [[NSFileHandle_posix alloc] initWithFileDescriptor: fds[1]]; - - return self; -} - -- (void) dealloc { - [_fileHandleForReading release]; - [_fileHandleForWriting release]; - - [super dealloc]; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@[0x%lx] readfd: %d writefd: %d>", - [[self class] description], self, - [(NSFileHandle_posix *) _fileHandleForReading - fileDescriptor], - [(NSFileHandle_posix *) _fileHandleForWriting - fileDescriptor]]; -} - -- (NSFileHandle *) fileHandleForReading { - return _fileHandleForReading; -} - -- (NSFileHandle *) fileHandleForWriting { - return _fileHandleForWriting; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSPlatform_posix.h b/Foundation/platform_posix/NSPlatform_posix.h deleted file mode 100644 index af1562e6..00000000 --- a/Foundation/platform_posix/NSPlatform_posix.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#define FOUNDATION_FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define FOUNDATION_DIR_MODE \ - S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH - -@interface NSPlatform_posix : NSPlatform { -} - -@end - -extern char **NSPlatform_environ(); diff --git a/Foundation/platform_posix/NSPlatform_posix.m b/Foundation/platform_posix/NSPlatform_posix.m deleted file mode 100644 index bb8f5ffd..00000000 --- a/Foundation/platform_posix/NSPlatform_posix.m +++ /dev/null @@ -1,405 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#if defined(LINUX) || defined(__APPLE__) -#import -#import - -#ifndef DARLING -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#endif - -#import -#import - -#include -#include -#include -#include -#include -#include -#include -#include -#import -#include -#include -#include -#import -#include -#include -#include -#include -#include - -BOOL NSCurrentLocaleIsMetric() { - return NO; -} - -@implementation NSPlatform_posix - -#ifndef DARLING -- (Class) taskClass { - return [NSTask_posix class]; -} - -- (Class) socketPortClass { - return [NSSocketPort_posix class]; -} - -- (Class) pipeClass { - return [NSPipe_posix class]; -} - -- (Class) lockClass { - return [NSLock_posix class]; -} - -- (Class) conditionLockClass { - return [NSConditionLock_posix class]; -} - -- (Class) recursiveLockClass { - return [NSRecursiveLock_posix class]; -} - -- (Class) persistantDomainClass { - return [NSPersistantDomain_posix class]; -} - -- (Class) timeZoneClass { - return [NSTimeZone_posix class]; -} - -- (Class) conditionClass { - return [NSCondition_posix class]; -} -#endif - -static struct passwd *pwent = NULL; - -- (void) _checkAndGetPWEnt { - if (pwent == NULL) { - pwent = getpwuid(getuid()); - if (pwent == NULL) - NSRaiseException(NSInternalInconsistencyException, self, _cmd, - @"Can't obtain user's information from system"); - } -} - -- (NSString *) userName { - [self _checkAndGetPWEnt]; - return [NSString stringWithCString: pwent->pw_name]; -} - -- (NSString *) fullUserName { - [self _checkAndGetPWEnt]; - return [NSString stringWithCString: pwent->pw_gecos]; -} - -- (NSString *) homeDirectory { - [self _checkAndGetPWEnt]; - return [NSString stringWithCString: pwent->pw_dir]; -} - -- (NSString *) libraryDirectory { - return [[self homeDirectory] - stringByAppendingPathComponent: @".CocotronLibrary"]; -} - -- (NSString *) temporaryDirectory { - return @"/tmp"; -} - -- (NSArray *) arguments { -#ifndef DARLING - extern int NSProcessInfoArgc; - extern const char *const *NSProcessInfoArgv; - NSMutableArray *result = [NSMutableArray array]; - int i; - - for (i = 0; i < NSProcessInfoArgc; i++) - [result addObject: [NSString stringWithCString: NSProcessInfoArgv[i]]]; - - return result; -#else - // this is only called from Cocotron's NSProcessInfo, - // whereas ours takes argc/argv directly from libsystem's - // _NSGetArgc and _NSGetArgv (just like on the real macOS) - return nil; -#endif -} - -- (NSDictionary *) environment { - id *objects, *keys; - NSUInteger count; - - char **env; - char *keyValue; - NSInteger i, len, max; - - env = NSPlatform_environ(); - - max = 0; - for (count = 0; env[count]; count++) - if ((len = strlen(env[count])) > max) - max = len; - - keyValue = __builtin_alloca(max + 1); - objects = __builtin_alloca(sizeof(id) * count); - keys = __builtin_alloca(sizeof(id) * count); - - for (count = 0; env[count]; count++) { - len = strlen(strcpy(keyValue, env[count])); - - for (i = 0; i < len; i++) - if (keyValue[i] == '=') - break; - keyValue[i] = '\0'; - - objects[count] = [NSString stringWithCString: keyValue + i + 1]; - keys[count] = [NSString stringWithCString: keyValue]; - - [self checkEnvironmentKey: keys[count] value: objects[count]]; - } - - return [[NSDictionary allocWithZone: NULL] initWithObjects: objects - forKeys: keys - count: count]; -} - -// silly me, we need microsecond granularity! -NSTimeInterval NSPlatformTimeIntervalSinceReferenceDate() { - NSTimeInterval result; - struct timeval tp; - - gettimeofday(&tp, NULL); - result = (((NSTimeInterval) tp.tv_sec) - NSTimeIntervalSince1970); - result += (((NSTimeInterval) tp.tv_usec) / ((NSTimeInterval) 1000000.0)); - - return result; -} - -int NSPlatformProcessID() { - return getpid(); -} - -NSUInteger NSPlatformThreadID() { - return (NSUInteger) pthread_self(); -} - -- (NSArray *) addressesForDNSHostName: (NSString *) name { - NSMutableArray *result = [NSMutableArray array]; - char cString[MAXHOSTNAMELEN + 1]; - struct hostent *hp; - - [name getCString: cString maxLength: MAXHOSTNAMELEN]; - - if ((hp = gethostbyname(cString)) == NULL) { - return nil; - } else { - uint32_t **addr_list = (uint32_t **) hp->h_addr_list; - int i; - - for (i = 0; addr_list[i] != NULL; i++) { - struct in_addr addr; - NSString *string; - - addr.s_addr = *addr_list[i]; - - string = [NSString stringWithCString: inet_ntoa(addr)]; - - [result addObject: string]; - } - - return result; - } -} - -- (NSString *) hostNameByAddress: (NSString *) address { - struct in_addr addr; - struct hostent *remoteHost; - - if ([address length] == 0) { - return nil; - } - - addr.s_addr = inet_addr([address cString]); - if (addr.s_addr == INADDR_NONE) { - return nil; - } - remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET); - if (remoteHost == NULL) - return nil; - - return [NSString stringWithCString: remoteHost->h_name]; -} - -void NSPlatformLogString(NSString *string) { - fprintf(stderr, "%s\n", [string UTF8String]); -} - -void *NSPlatformContentsOfFile(NSString *path, NSUInteger *lengthp) { - int fd = open([path fileSystemRepresentation], O_RDONLY); - char *buf; - off_t pos, total = 0; - - *lengthp = 0; - - if (fd == -1) - return NULL; - - pos = lseek(fd, 0, SEEK_END); - if (pos == -1) - return NULL; - - if (lseek(fd, 0, SEEK_SET) == -1) - return NULL; - - if ((buf = malloc(pos)) == NULL) - return NULL; - - do { - off_t bytesRead = read(fd, buf + total, pos); - - if (bytesRead == -1) { - close(fd); - return NULL; - } - - total += bytesRead; - } while (total < pos); - - close(fd); - - *lengthp = pos; - - return buf; -} - -/* - SVr4, POSIX.1b (formerly POSIX.4), 4.4BSD. Svr4 documents - additional error codes ENXIO and ENODEV. - */ -- (void *) mapContentsOfFile: (NSString *) path length: (NSUInteger *) lengthp { - int fd = open([path fileSystemRepresentation], O_RDONLY); - void *result; - - *lengthp = 0; - if (fd == -1) - return NULL; - - *lengthp = lseek(fd, 0, SEEK_END); - lseek(fd, 0, SEEK_SET); - - result = mmap(NULL, *lengthp, PROT_READ, MAP_SHARED, fd, 0); - if (result == MAP_FAILED) - result = NULL; - - close(fd); - - return result; -} - -- (void) unmapAddress: (void *) ptr length: (NSUInteger) length { - if (length > 0) { - if (munmap(ptr, length) == -1) - NSRaiseException(NSInvalidArgumentException, self, _cmd, - @"munmap() returned -1"); - } -} - -- (BOOL) writeContentsOfFile: (NSString *) path - bytes: (const void *) bytes - length: (NSUInteger) length - options: (NSUInteger) options - error: (NSError **) errorp -{ - BOOL atomically = (options & NSAtomicWrite); - NSString *atomic = nil; - int fd; - size_t total = 0; - - if (atomically) { - do { - atomic = [path stringByAppendingString: @"1"]; - } while ([[NSFileManager defaultManager] fileExistsAtPath: atomic] == - YES); - - fd = open([atomic fileSystemRepresentation], O_WRONLY | O_CREAT, - FOUNDATION_FILE_MODE); - if (fd == -1) { - if (errorp) - *errorp = [NSError errorWithDomain: NSPOSIXErrorDomain - code: errno - userInfo: nil]; - return NO; - } - } else { - fd = open([path fileSystemRepresentation], O_WRONLY | O_CREAT, - FOUNDATION_FILE_MODE); - if (fd == -1) { - if (errorp) - *errorp = [NSError errorWithDomain: NSPOSIXErrorDomain - code: errno - userInfo: nil]; - return NO; - } - } - - do { - size_t written = write(fd, bytes + total, length); - - if (written == -1) { - if (errorp) - *errorp = [NSError errorWithDomain: NSPOSIXErrorDomain - code: errno - userInfo: nil]; - close(fd); - return NO; - } - - total += written; - } while (total < length); - - close(fd); - - if (atomically) - if (rename([atomic fileSystemRepresentation], - [path fileSystemRepresentation]) == -1) { - if (errorp) - *errorp = [NSError errorWithDomain: NSPOSIXErrorDomain - code: errno - userInfo: nil]; - return NO; - } - - return YES; -} -@end -#endif diff --git a/Foundation/platform_posix/NSRecursiveLock_posix.h b/Foundation/platform_posix/NSRecursiveLock_posix.h deleted file mode 100644 index 8a611794..00000000 --- a/Foundation/platform_posix/NSRecursiveLock_posix.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#import -#import - -@interface NSRecursiveLock_posix : NSRecursiveLock { - NSLock *_lock; - volatile NSThread *_lockingThread; - volatile int _numberOfLocks; -} - -- (BOOL) tryLock; -- (BOOL) lockBeforeDate: (NSDate *) value; -@end - -@interface NSRecursiveLock (Private) -- (BOOL) isLocked; -@end diff --git a/Foundation/platform_posix/NSRecursiveLock_posix.m b/Foundation/platform_posix/NSRecursiveLock_posix.m deleted file mode 100644 index 1b8da9b2..00000000 --- a/Foundation/platform_posix/NSRecursiveLock_posix.m +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#import "NSRecursiveLock_posix.h" -#import -#import -#import - -@implementation NSRecursiveLock_posix - -- (id) init { - _lock = [NSLock new]; - - return self; -} - -- (void) dealloc { - [_lock release]; - [super dealloc]; -} - -- (void) lock { - if (_lockingThread == [NSThread currentThread]) { - _numberOfLocks++; - return; - } - - [_lock lock]; - // got the lock. so it's ours now - _lockingThread = [NSThread currentThread]; - _numberOfLocks = 1; -} - -- (void) unlock { - if (_lockingThread == [NSThread currentThread]) { - _numberOfLocks--; - if (_numberOfLocks == 0) { - _lockingThread = nil; - [_lock unlock]; - } - } else - NSCLog("tried to unlock lock 0x%x owned by thread 0x%x from thread " - "0x%x", - self, _lockingThread, [NSThread currentThread]); -} - -- (BOOL) tryLock { - BOOL ret = [_lock tryLock]; - if (ret) { - // got the lock. so it's ours now - _lockingThread = [NSThread currentThread]; - _numberOfLocks = 1; - return YES; - } else if (_lockingThread == [NSThread currentThread]) { - // didn't get the lock, but just because our thread already had it - _numberOfLocks++; - return YES; - } - return NO; -} - -- (BOOL) lockBeforeDate: (NSDate *) value; { - if ([self tryLock]) - return YES; - // tryLock failed. That means someone else owns the lock. So we wait it out: - BOOL ret = [_lock lockBeforeDate: value]; - if (ret) { - _lockingThread = [NSThread currentThread]; - _numberOfLocks = 1; - } - return ret; -} - -- (BOOL) isLocked { - return _numberOfLocks != 0; -} - -- (id) description { - return [NSString stringWithFormat: @"(%@, name %@, locked %i times", - [super description], _name, - _numberOfLocks]; -} -@end -#endif diff --git a/Foundation/platform_posix/NSRunLoopState_posix.h b/Foundation/platform_posix/NSRunLoopState_posix.h deleted file mode 100644 index a5d0f691..00000000 --- a/Foundation/platform_posix/NSRunLoopState_posix.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface NSRunLoopState_posix : NSRunLoopState - -@end diff --git a/Foundation/platform_posix/NSRunLoopState_posix.m b/Foundation/platform_posix/NSRunLoopState_posix.m deleted file mode 100644 index 06b47e4c..00000000 --- a/Foundation/platform_posix/NSRunLoopState_posix.m +++ /dev/null @@ -1,35 +0,0 @@ -#ifdef PLATFORM_IS_POSIX -#import "NSRunLoopState_posix.h" -#import "NSCancelInputSource_posix.h" -#import "NSTask_posix.h" -#import -#import - -@implementation NSRunLoopState (posix) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSRunLoopState_posix class], 0, NULL); -} - -@end - -@implementation NSRunLoopState_posix - -- init { - _inputSourceSet = [[NSSelectInputSourceSet alloc] init]; - _asyncInputSourceSets = [[NSArray alloc] init]; - _timers = [NSMutableArray new]; - _cancelSource = [[NSCancelInputSource_posix alloc] init]; - [self addInputSource: _cancelSource]; - return self; -} - -- (BOOL) waitForSingleInputForMode: (NSString *) mode - beforeDate: (NSDate *) date -{ - waitForTaskChildProcess(); - return [super waitForSingleInputForMode: mode beforeDate: date]; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSSelectSet_bsd.h b/Foundation/platform_posix/NSSelectSet_bsd.h deleted file mode 100644 index c6280075..00000000 --- a/Foundation/platform_posix/NSSelectSet_bsd.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSSelectSet_bsd : NSSelectSet { -} - -@end diff --git a/Foundation/platform_posix/NSSelectSet_bsd.m b/Foundation/platform_posix/NSSelectSet_bsd.m deleted file mode 100644 index e610c66c..00000000 --- a/Foundation/platform_posix/NSSelectSet_bsd.m +++ /dev/null @@ -1,245 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef PLATFORM_USES_BSD_SOCKETS -#import "NSSelectSet_bsd.h" -#import "NSSocket_bsd.h" -#import -#import -#import -#import -#import -#import -#import -#import - -#include -#import -#import - -@implementation NSSelectSet (bsd) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSSelectSet_bsd class], 0, NULL); -} - -@end - -@implementation NSSelectSet_bsd - -typedef struct { - int max; - fd_set *fdset; -} native_set; - -native_set *native_set_new(int max) { - native_set *result = NSZoneCalloc(NULL, 1, sizeof(native_set)); - - result->max = FD_SETSIZE; - while (result->max < max) - result->max *= 2; - result->fdset = - NSZoneCalloc(NULL, 1, sizeof(fd_mask) * (result->max / NFDBITS)); - - return result; -} - -void native_set_free(native_set *set) { - NSZoneFree(NULL, set->fdset); - NSZoneFree(NULL, set); -} - -void native_set_clear(native_set *set, int descriptor) { -#if defined(LINUX) - __FDS_BITS(set->fdset) - [descriptor / NFDBITS] &= ~(1 << (descriptor % NFDBITS)); -#else - set->fdset->fds_bits[descriptor / NFDBITS] &= - ~(1 << (descriptor % NFDBITS)); -#endif -} - -void native_set_set(native_set *set, int descriptor) { - while (descriptor > set->max) { - int clear = set->max; - - set->max *= 2; - set->fdset = NSZoneRealloc(NULL, set->fdset, - sizeof(fd_mask) * (set->max / NFDBITS)); - - for (; clear < set->max; clear++) - native_set_clear(set, clear); - } - -#ifdef LINUX - __FDS_BITS(set->fdset) - [descriptor / NFDBITS] |= (1 << (descriptor % NFDBITS)); -#else - set->fdset->fds_bits[descriptor / NFDBITS] |= (1 << (descriptor % NFDBITS)); -#endif -} - -BOOL native_set_is_set(native_set *native, int descriptor) { - if (descriptor > native->max) - return NO; - -#ifdef LINUX - return (__FDS_BITS(native->fdset)[descriptor / NFDBITS] & - (1 << (descriptor % NFDBITS))) - ? YES - : NO; -#else - return (native->fdset->fds_bits[descriptor / NFDBITS] & - (1 << (descriptor % NFDBITS))) - ? YES - : NO; -#endif -} - -static int maxDescriptorInSet(NSSet *set) { - int result = -1; - NSEnumerator *state = [set objectEnumerator]; - NSSocket_bsd *socket; - - while ((socket = [state nextObject]) != nil) { - int check = [socket descriptor]; - - if (check > result) - result = check; - } - - return result; -} - -static int maxDescriptorInThreeSets(NSSet *set1, NSSet *set2, NSSet *set3) { - int check, result = maxDescriptorInSet(set1); - - check = maxDescriptorInSet(set2); - if (check > result) - result = check; - - check = maxDescriptorInSet(set3); - if (check > result) - result = check; - - return result; -} - -void NSSelectSetShutdownForCurrentThread() { - // do nothing -} - -static void transferSetToNative(NSSet *set, native_set *native) { - NSEnumerator *state = [set objectEnumerator]; - NSSocket_bsd *socket; - - while ((socket = [state nextObject]) != nil) - native_set_set(native, [socket descriptor]); -} - -static void transferNativeToSetWithOriginals(native_set *sset, - NSMutableSet *set, NSSet *original, - NSSocket_bsd *cheater) -{ - int i; - - for (i = 0; i < sset->max; i++) { - if (native_set_is_set(sset, i)) { - [cheater setDescriptor: i]; - [set addObject: [original member: cheater]]; - } - } -} - -- (NSError *) waitForSelectWithOutputSet: (NSSelectSet **) outputSetX - beforeDate: (NSDate *) beforeDate -{ - NSError *result = nil; - NSSocket_bsd *cheater = [NSSocket_bsd socketWithDescriptor: -1]; - int maxDescriptor = - maxDescriptorInThreeSets(_readSet, _writeSet, _exceptionSet); - native_set *activeRead = native_set_new(maxDescriptor); - native_set *activeWrite = native_set_new(maxDescriptor); - native_set *activeExcept = native_set_new(maxDescriptor); - struct timeval timeval; - NSTimeInterval interval = 1.0; - - // See NSTask_linux.m - int numFds = 0; - while (result == nil && numFds == 0 && interval > 0.0) { - transferSetToNative(_readSet, activeRead); - transferSetToNative(_writeSet, activeWrite); - transferSetToNative(_exceptionSet, activeExcept); - - interval = [beforeDate timeIntervalSinceNow]; - - if (interval > 1000000) { - interval = 1000000; - } - if (interval < 0) { - interval = 0; - } - - timeval.tv_sec = interval; - interval -= timeval.tv_sec; - timeval.tv_usec = (typeof(timeval.tv_usec))(interval * 1000); - - if ((numFds = select(maxDescriptor + 1, activeRead->fdset, - activeWrite->fdset, activeExcept->fdset, - &timeval)) < 0) { - if (errno != EINTR) { - result = [NSError errorWithDomain: NSPOSIXErrorDomain - code: errno - userInfo: nil]; - } - } - - if (NSDebugEnabled) { - interval = [beforeDate timeIntervalSinceNow]; - if (interval > 0.0) { - NSLog(@"in %@: select returned 0 before timeout ended. Did you " - @"wait on a non-blocking socket?", - NSStringFromSelector(_cmd)); - } - } - } - - if (result == nil) { - NSSelectSet_bsd *outputSet = - (NSSelectSet_bsd *) [[[NSSelectSet alloc] init] autorelease]; - if (numFds) { - transferNativeToSetWithOriginals(activeRead, outputSet->_readSet, - _readSet, cheater); - transferNativeToSetWithOriginals(activeWrite, outputSet->_writeSet, - _writeSet, cheater); - transferNativeToSetWithOriginals(activeExcept, - outputSet->_exceptionSet, - _exceptionSet, cheater); - } - *outputSetX = outputSet; - } - - native_set_free(activeRead); - native_set_free(activeWrite); - native_set_free(activeExcept); - - return result; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSSocketPort_posix.h b/Foundation/platform_posix/NSSocketPort_posix.h deleted file mode 100644 index 3b36a1f7..00000000 --- a/Foundation/platform_posix/NSSocketPort_posix.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2012 Andy Van Ness - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface NSSocketPort_posix : NSSocketPort { - NSSocketNativeHandle _socket; -} - -- initWithTCPPort: (unsigned short) port; -- (NSSocketNativeHandle) socket; - -@end diff --git a/Foundation/platform_posix/NSSocketPort_posix.m b/Foundation/platform_posix/NSSocketPort_posix.m deleted file mode 100644 index bb6b15ee..00000000 --- a/Foundation/platform_posix/NSSocketPort_posix.m +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2012 Andy Van Ness - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX -#import "NSSocketPort_posix.h" - -#import -#include -#import -#include -#import -#import -#import -#include - -@implementation NSSocketPort_posix - -- initWithTCPPort: (unsigned short) port { - struct sockaddr_in address; - address.sin_family = PF_INET; - address.sin_port = htons(port); - address.sin_addr.s_addr = htonl(INADDR_ANY); - _socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - bzero(&address.sin_zero, sizeof(address.sin_zero)); - - if (bind(_socket, (struct sockaddr *) &address, sizeof(address)) < 0) { - [self release]; - return nil; - } - - return self; -} - -- (NSSocketNativeHandle) socket { - return _socket; -} - -@end -#endif diff --git a/Foundation/platform_posix/NSSocket_bsd.h b/Foundation/platform_posix/NSSocket_bsd.h deleted file mode 100644 index b5b887cf..00000000 --- a/Foundation/platform_posix/NSSocket_bsd.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@interface NSSocket_bsd : NSSocket { - int _descriptor; -} - -- initWithDescriptor: (int) descriptor; -+ socketWithDescriptor: (int) descriptor; - -- (int) descriptor; -// for cheating only; -- (void) setDescriptor: (int) descriptor; - -@end diff --git a/Foundation/platform_posix/NSSocket_bsd.m b/Foundation/platform_posix/NSSocket_bsd.m deleted file mode 100644 index 43401e9a..00000000 --- a/Foundation/platform_posix/NSSocket_bsd.m +++ /dev/null @@ -1,277 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef PLATFORM_USES_BSD_SOCKETS -#import "NSSocket_bsd.h" -#import -#import -#import -#import - -#import -#include -#import -#import -#import -#import -#include - -#ifdef __svr4__ // Solaris -#import -#import -#endif - -@implementation NSSocket (bsd) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSSocket_bsd class], 0, NULL); -} - -@end - -@implementation NSSocket_bsd - -static inline void byteZero(void *vsrc, size_t size) { - uint8_t *src = vsrc; - size_t i; - - for (i = 0; i < size; i++) - src[i] = 0; -} - -+ (void) initialize { -#ifdef __svr4__ // Solaris - sigignore(SIGPIPE); -#endif -} - -- initWithDescriptor: (int) descriptor { - _descriptor = descriptor; - return self; -} - -- initWithFileDescriptor: (int) fd { - return [self initWithDescriptor: fd]; -} - -+ socketWithDescriptor: (int) descriptor { - return [[[self alloc] initWithDescriptor: descriptor] autorelease]; -} - -- (NSError *) errorForReturnValue: (int) returnValue { - if (returnValue < 0) { - return [NSError errorWithDomain: NSPOSIXErrorDomain - code: errno - userInfo: nil]; - } - return nil; -} - -- initTCPStream { - NSError *error = [self - errorForReturnValue: _descriptor = socket(PF_INET, SOCK_STREAM, - IPPROTO_TCP)]; - if (error != nil) { - [self dealloc]; - return nil; - } - return self; -} - -- initUDPStream { - NSError *error = - [self errorForReturnValue: _descriptor = socket(PF_INET, SOCK_DGRAM, - IPPROTO_UDP)]; - if (error != nil) { - [self dealloc]; - return nil; - } - return self; -} - -- (void) closeAndDealloc { - [self close]; - [self dealloc]; -} - -- initConnectedToSocket: (NSSocket **) otherX { - int pipes[2]; - if (pipe(pipes)) { - *otherX = [[[[self class] alloc] initWithDescriptor: pipes[0]] - autorelease]; - return [self initWithDescriptor: pipes[1]]; - } else { - NSLog(@"NSSocket: could not create pipe: (%d) %s", errno, - strerror(errno)); - [self release]; - return nil; - } -} - -- (int) descriptor { - return _descriptor; -} - -- (int) fileDescriptor { - return _descriptor; -} - -- (void) setDescriptor: (int) descriptor { - _descriptor = descriptor; -} - -- (NSUInteger) hash { - return (NSUInteger) _descriptor; -} - -- (BOOL) isEqual: other { - if (![other isKindOfClass: [NSSocket_bsd class]]) - return NO; - - return (_descriptor == ((NSSocket_bsd *) other)->_descriptor) ? YES : NO; -} - -- (NSError *) close { - return [self errorForReturnValue: close(_descriptor)]; -} - -- (NSError *) setOperationWouldBlock: (BOOL) blocks { - u_long onoff = blocks ? NO : YES; - - return [self errorForReturnValue: ioctl(_descriptor, FIONBIO, &onoff)]; -} - -- (BOOL) operationWouldBlock { - return (errno == EINPROGRESS); -} - -- (NSError *) connectToHost: (NSHost *) host - port: (NSInteger) portNumber - immediate: (BOOL *) immediate -{ - BOOL block = NO; - NSArray *addresses = [host addresses]; - NSInteger i, count = [addresses count]; - NSError *error = nil; - - *immediate = NO; - - if (!block) { - if ((error = [self setOperationWouldBlock: NO]) != nil) - return error; - } - - for (i = 0; i < count; i++) { - struct sockaddr_in - try - ; - NSString *stringAddress = [addresses objectAtIndex: i]; - char cString[[stringAddress cStringLength] + 1]; - in_addr_t address; - - [stringAddress getCString: cString]; - if ((address = inet_addr(cString)) == -1) { - // FIX - } - - byteZero(&try, sizeof(struct sockaddr_in)); - try - .sin_addr.s_addr = address; - try - .sin_family = AF_INET; - try - .sin_port = htons(portNumber); - - if (connect(_descriptor, (struct sockaddr *) &try, - (socklen_t) sizeof(try)) == 0) { - if (!block) { - if ((error = [self setOperationWouldBlock: YES]) != nil) - return error; - } - *immediate = YES; - return nil; - } else if ([self operationWouldBlock]) { - if (!block) { - if ((error = [self setOperationWouldBlock: YES]) != nil) - return error; - } - return nil; - } else { - error = [self errorForReturnValue: -1]; - } - } - - if (error == nil) - error = [NSError errorWithDomain: NSPOSIXErrorDomain - code: EHOSTUNREACH - userInfo: nil]; - - return error; -} - -- (BOOL) hasBytesAvailable { - struct timeval t; - t.tv_sec = 0; - t.tv_usec = 0; - - fd_set s; - FD_ZERO(&s); - FD_SET(_descriptor, &s); - - return (select(0, &s, NULL, NULL, &t) == 1) ? YES : NO; -} - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) length { - NSInteger i = recv(_descriptor, (void *) buffer, length, 0); - - return i; -} - -- (NSInteger) write: (const uint8_t *) buffer maxLength: (NSUInteger) length { - return send(_descriptor, (void *) buffer, length, 0); -} - -- (NSSocket *) acceptWithError: (NSError **) errorp { - struct sockaddr addr; - socklen_t addrlen = (socklen_t) sizeof(struct sockaddr); - int newSocket; - NSError *error; - - error = [self errorForReturnValue: newSocket = accept(_descriptor, &addr, - &addrlen)]; - if (errorp != NULL) - *errorp = error; - - return (error != nil) ? nil - : [[[NSSocket_bsd alloc] - initWithDescriptor: newSocket] autorelease]; -} - -- (CFSSLHandler *) sslHandler { - return nil; -} - -@end - -NSData *NSSocketAddressDataForNetworkOrderAddressBytesAndPort( - const void *address, NSUInteger length, uint16_t port, - uint32_t interface) -{ - return nil; -} -#endif diff --git a/Foundation/platform_posix/NSString_defaultEncoding_posix.m b/Foundation/platform_posix/NSString_defaultEncoding_posix.m deleted file mode 100644 index d92f8678..00000000 --- a/Foundation/platform_posix/NSString_defaultEncoding_posix.m +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef PLATFORM_IS_POSIX - -#import -#import -#include -#include -#include - -NSStringEncoding defaultEncoding() { - // don't use objc calls because they call often defaultCStringEncoding - - static int defaultEncoding = -1; - - if (defaultEncoding == -1) { - - char *lang = getenv("LANG"); - if (lang && *lang) { - const char *firstpart = strtok(lang, "."); - if (firstpart != NULL) { - char *secondpart = strtok(NULL, "\0"); - if (secondpart != NULL) { - int i; - - // make all upper - for (i = 0; i < strlen(secondpart); i++) { - secondpart[i] = toupper(secondpart[i]); - } - if (strcmp(secondpart, "UTF-8") == 0 || - strcmp(secondpart, "UTF8") == 0) { - defaultEncoding = NSUTF8StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - } else if (strcmp(secondpart, "ISO8859-1") == 0 || - strcmp(secondpart, "ISO88591") == 0) { - defaultEncoding = NSISOLatin1StringEncoding; - } else if (strcmp(secondpart, "ISO8859-2") == 0 || - strcmp(secondpart, "ISO88592") == 0) { - defaultEncoding = NSISOLatin2StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - } else if (strcmp(secondpart, "EUCJP") == 0) { - defaultEncoding = NSJapaneseEUCStringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - } else if (strcmp(secondpart, "CP1250") == 0) { - defaultEncoding = NSWindowsCP1250StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - } else if (strcmp(secondpart, "CP1251") == 0) { - defaultEncoding = NSWindowsCP1251StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - } else if (strcmp(secondpart, "CP1252") == 0) { - defaultEncoding = NSWindowsCP1252StringEncoding; - } else if (strcmp(secondpart, "CP1253") == 0) { - defaultEncoding = NSWindowsCP1253StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - } else if (strcmp(secondpart, "CP1254") == 0) { - defaultEncoding = NSWindowsCP1254StringEncoding; - // FIXME: use until the right encoding is implemented - defaultEncoding = NSISOLatin1StringEncoding; - } - - // TODO: add more encodings - } - } - } - - if (defaultEncoding == -1) { - // set the default to ASCII - defaultEncoding = - NSISOLatin1StringEncoding; // FIXME: should be utf8? - } - } - - return defaultEncoding; -} -#endif diff --git a/Foundation/platform_posix/NSTask_posix.h b/Foundation/platform_posix/NSTask_posix.h deleted file mode 100644 index b429094b..00000000 --- a/Foundation/platform_posix/NSTask_posix.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -void waitForTaskChildProcess(); - -@interface NSTask_posix : NSTask { - int _processID; - int _terminationStatus; -} - -- (void) launch; -- (BOOL) isRunning; -- (void) terminate; - -- (void) setTerminationStatus: (int) terminationStatus; -- (void) taskFinished; - -@end diff --git a/Foundation/platform_posix/NSTask_posix.m b/Foundation/platform_posix/NSTask_posix.m deleted file mode 100644 index 3dd7cd82..00000000 --- a/Foundation/platform_posix/NSTask_posix.m +++ /dev/null @@ -1,277 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifdef PLATFORM_IS_POSIX -#import -#import -#import -#import -#import -#import -#import - -#include -#include -#include -#include -#include -#include -#include - -static NSMutableArray *_liveTasks = nil; -static BOOL _taskFinished = NO; - -@implementation NSTask_posix - -void waitForTaskChildProcess() { - NSTask_posix *task; - pid_t pid; - int status; - - // if (_taskFinished == YES) { - // _taskFinished = NO; - while (YES) { - pid = wait3(&status, WNOHANG, NULL); - - if (pid < 0) { - if (errno == ECHILD) { - break; // no child exists - } else if (errno == EINTR) { - continue; - } - - NSCLog("Invalid wait3 result [%s] in child signal handler", - strerror(errno)); - } else if (pid == 0) { - // no child exited - break; - } else { - @synchronized(_liveTasks) { - NSEnumerator *taskEnumerator = [_liveTasks objectEnumerator]; - while (task = [taskEnumerator nextObject]) { - if ([task processIdentifier] == pid) { - if (WIFEXITED(status)) - [task setTerminationStatus: WEXITSTATUS(status)]; - else - [task setTerminationStatus: -1]; - - [task retain]; - [task taskFinished]; - - [[NSNotificationCenter defaultCenter] - postNotification: - [NSNotification - notificationWithName: - NSTaskDidTerminateNotification - object: task]]; - [task release]; - } - } - } - } - } - //} -} - -void childSignalHandler(int sig) { - if (sig == SIGCHLD) { - _taskFinished = YES; - } -} - -+ (void) initialize { - if (self == [NSTask_posix class]) { - _liveTasks = [[NSMutableArray alloc] init]; - struct sigaction sa; - sigaction(SIGCHLD, (struct sigaction *) 0, &sa); - sa.sa_flags |= SA_RESTART; - sa.sa_handler = childSignalHandler; - sigaction(SIGCHLD, &sa, (struct sigaction *) 0); - } -} - -- (int) processIdentifier { - return _processID; -} - -- (void) launch { - if ([self isRunning]) { - [NSException raise: NSInvalidArgumentException - format: @"NSTask already launched"]; - } - - if (launchPath == nil) - [NSException raise: NSInvalidArgumentException - format: @"NSTask launchPath is nil"]; - - NSArray *array = arguments; - NSInteger i, count = [array count]; - const char *args[count + 2]; - const char *path = [launchPath fileSystemRepresentation]; - - if (array == nil) - array = [NSArray array]; - - args[0] = path; - for (i = 0; i < count; i++) - args[i + 1] = (char *) [[[array objectAtIndex: i] description] cString]; - args[count + 1] = NULL; - - NSDictionary *env; - if (environment == nil) { - env = [[NSProcessInfo processInfo] environment]; - } else { - env = environment; - } - const char *cenv[[env count] + 1]; - - NSString *key; - i = 0; - - for (key in env) { - id value = [env objectForKey: key]; - NSString *entry; - if (value) { - entry = [NSString stringWithFormat: @"%@=%@", key, value]; - } else { - entry = [NSString stringWithFormat: @"%@=", key]; - } - - cenv[i] = [entry cString]; - i++; - } - - cenv[[env count]] = NULL; - - const char *pwd = [currentDirectoryPath fileSystemRepresentation]; - - _processID = fork(); - if (_processID == 0) { // child process - if ([standardInput isKindOfClass: [NSFileHandle class]] || - [standardInput isKindOfClass: [NSPipe class]]) { - int fd = -1; - - if ([standardInput isKindOfClass: [NSFileHandle class]]) { - fd = [(NSFileHandle_posix *) standardInput fileDescriptor]; - } else { - fd = [(NSFileHandle_posix *) - [standardInput fileHandleForReading] - fileDescriptor]; - } - dup2(fd, STDIN_FILENO); - } else { - close(STDIN_FILENO); - } - if ([standardOutput isKindOfClass: [NSFileHandle class]] || - [standardOutput isKindOfClass: [NSPipe class]]) { - int fd = -1; - - if ([standardOutput isKindOfClass: [NSFileHandle class]]) { - fd = [(NSFileHandle_posix *) standardOutput fileDescriptor]; - } else { - fd = [(NSFileHandle_posix *) - [standardOutput fileHandleForWriting] - fileDescriptor]; - } - dup2(fd, STDOUT_FILENO); - } else { - close(STDOUT_FILENO); - } - if ([standardError isKindOfClass: [NSFileHandle class]] || - [standardError isKindOfClass: [NSPipe class]]) { - int fd = -1; - - if ([standardError isKindOfClass: [NSFileHandle class]]) { - fd = [(NSFileHandle_posix *) standardError fileDescriptor]; - } else { - fd = [(NSFileHandle_posix *) - [standardError fileHandleForWriting] - fileDescriptor]; - } - dup2(fd, STDERR_FILENO); - } else { - close(STDERR_FILENO); - } - - for (i = 3; i < getdtablesize(); i++) { - close(i); - } - - for (i = 0; i < 32; i++) { - signal(i, SIG_DFL); - } - - chdir(pwd); - - execve(path, (char **) args, (char **) cenv); - exit(-1); - } else if (_processID != -1) { - @synchronized(_liveTasks) { - [_liveTasks addObject: self]; - } - - if ([standardInput isKindOfClass: [NSPipe class]]) { - [[standardInput fileHandleForReading] closeFile]; - } - if ([standardOutput isKindOfClass: [NSPipe class]]) { - [[standardOutput fileHandleForWriting] closeFile]; - } - if ([standardError isKindOfClass: [NSPipe class]]) { - [[standardError fileHandleForWriting] closeFile]; - } - } else { - [NSException raise: NSInvalidArgumentException - format: @"fork() failed: %s", strerror(errno)]; - } -} - -- (BOOL) isRunning { - if (_processID != 0) { - if (kill(_processID, 0) == 0) { - return YES; - } else { - return NO; - } - } else { - return NO; - } -} - -- (void) terminate { - kill(_processID, SIGTERM); - @synchronized(_liveTasks) { - [_liveTasks removeObject: self]; - } -} - -- (int) terminationStatus { - return _terminationStatus; -} // OSX specs this -- (void) setTerminationStatus: (int) terminationStatus { - _terminationStatus = terminationStatus; -} - -- (void) taskFinished { - @synchronized(_liveTasks) { - [_liveTasks removeObject: self]; - } -} - -@end -#endif diff --git a/Foundation/platform_posix/NSTimeZone_posix.h b/Foundation/platform_posix/NSTimeZone_posix.h deleted file mode 100644 index b55c7af4..00000000 --- a/Foundation/platform_posix/NSTimeZone_posix.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSTimeZone_posix : NSTimeZone { - NSArray *_timeZoneTransitions; - NSArray *_timeZoneTypes; -} - -// interface for providing alternate time zone data sources... -- initWithName: (NSString *) name - data: (NSData *) data - transitions: (NSArray *) transitions - types: (NSArray *) types; - -+ (NSString *) _zoneinfoPath; - -@end diff --git a/Foundation/platform_posix/NSTimeZone_posix.m b/Foundation/platform_posix/NSTimeZone_posix.m deleted file mode 100644 index 9cab329b..00000000 --- a/Foundation/platform_posix/NSTimeZone_posix.m +++ /dev/null @@ -1,387 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifdef PLATFORM_IS_POSIX -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -// structures in tzfiles are big-endian -// for definition of file format see -// http://www.kernel.org/doc/man-pages/online/pages/man5/tzfile.5.html - -#define TZ_MAGIC "TZif" - -#pragma pack(push) -#pragma pack(1) -struct tzhead { - char tzh_magic[4]; /* TZ_MAGIC */ - char tzh_version[1]; /* version of the file's format (as of 2005, either an - ASCII NUL ('\0') or a '2') */ - char tzh_reserved[15]; /* reserved for future use */ - int32_t tzh_ttisgmtcnt; /* coded number of trans. time flags */ - int32_t tzh_ttisstdcnt; /* coded number of trans. time flags */ - int32_t tzh_leapcnt; /* coded number of leap seconds */ - int32_t tzh_timecnt; /* coded number of transition times */ - int32_t tzh_typecnt; /* coded number of local time types */ - int32_t tzh_charcnt; /* coded number of abbr. chars */ -}; - -struct tzType { - uint32_t offset; - uint8_t isDST; - uint8_t abbrevIndex; -}; -#pragma pack(pop) - -// private classes -#import -#import - -@implementation NSTimeZone_posix - -NSInteger sortTransitions(id trans1, id trans2, void *context) { - NSDate *d1 = [trans1 transitionDate]; - NSDate *d2 = [trans2 transitionDate]; - - return [d1 compare: d2]; -} - -- initWithName: (NSString *) name data: (NSData *) data { - NSMutableArray *transitions, *types; - NSArray *sortedTransitions; - const struct tzhead *tzHeader; - const char *tzData; - const char *typeIndices; - // unused - // int numberOfGMTFlags, numberOfStandardFlags, - // numberOfAbbreviationCharacters; - int numberOfTransitionTimes, numberOfLocalTimes; - int i; - - const struct tzType *tzTypes; - const char *tzTypesBytes; - const char *abbreviations; - - if (data == nil) { - NSString *zonePath = [NSTimeZone_posix _zoneinfoPath]; - zonePath = [zonePath stringByAppendingPathComponent: name]; - data = [NSData dataWithContentsOfFile: zonePath]; - } - if (data == nil) { - [self release]; - return nil; - } - - transitions = [NSMutableArray array]; - sortedTransitions = [NSArray array]; - types = [NSMutableArray array]; - - tzHeader = (struct tzhead *) [data bytes]; - tzData = (const char *) tzHeader + sizeof(struct tzhead); - - // unused - // numberOfGMTFlags = NSSwapBigIntToHost(tzHeader->tzh_ttisgmtcnt); - // numberOfStandardFlags = NSSwapBigIntToHost(tzHeader->tzh_ttisstdcnt); - // numberOfAbbreviationCharacters = - // NSSwapBigIntToHost(tzHeader->tzh_charcnt); - numberOfTransitionTimes = NSSwapBigIntToHost(tzHeader->tzh_timecnt); - numberOfLocalTimes = NSSwapBigIntToHost(tzHeader->tzh_typecnt); - - typeIndices = tzData + (numberOfTransitionTimes * 4); - for (i = 0; i < numberOfTransitionTimes; ++i) { - NSDate *d1 = [NSDate - dateWithTimeIntervalSince1970: NSSwapBigIntToHost( - ((int *) tzData)[i])]; - [transitions - addObject: - [NSTimeZoneTransition - timeZoneTransitionWithTransitionDate: d1 - typeIndex: - typeIndices - [i]]]; - } - - // sort date array - sortedTransitions = [transitions sortedArrayUsingFunction: sortTransitions - context: NULL]; - - // this is a bit more awkward, but i want to support non-3 character - // abbreviations theoretically. - tzTypesBytes = (tzData + (numberOfTransitionTimes * 5)); - abbreviations = tzTypesBytes + numberOfLocalTimes * sizeof(struct tzType); - for (i = 0; i < numberOfLocalTimes; ++i) { - tzTypes = (struct tzType *) tzTypesBytes; - NSString *abb = [NSString - stringWithCString: abbreviations + tzTypes->abbrevIndex]; - if (name == nil) { - name = abb; - } - [types addObject: - [NSTimeZoneType - timeZoneTypeWithSecondsFromGMT: - NSSwapBigIntToHost(tzTypes->offset) - isDaylightSavingTime: tzTypes->isDST - abbreviation: - [NSString - stringWithCString: - abbreviations + - tzTypes-> - abbrevIndex]]]; - tzTypesBytes += sizeof(struct tzType); - } - - return [self initWithName: name - data: data - transitions: sortedTransitions - types: types]; -} - -- initWithName: (NSString *) name - data: (NSData *) data - transitions: (NSArray *) transitions - types: (NSArray *) types -{ - _name = [name retain]; - _data = [data retain]; - _timeZoneTransitions = [transitions retain]; - _timeZoneTypes = [types retain]; - - return self; -} - -- (void) dealloc { - [_name release]; - [_data release]; - [_timeZoneTransitions release]; - [_timeZoneTypes release]; - - [super dealloc]; -} - -- (NSString *) name { - return _name; -} - -- (NSData *) data { - return _data; -} - -+ (NSTimeZone *) systemTimeZone { - NSTimeZone *systemTimeZone = nil; - NSString *timeZoneName; - - if ([[NSFileManager defaultManager] fileExistsAtPath: @"/etc/localtime"] == - YES) { - NSError *error; - NSString *path = [[NSFileManager defaultManager] - destinationOfSymbolicLinkAtPath: @"/etc/localtime" - error: &error]; - - if (path != nil) { - // localtime is a symlink - timeZoneName = [path - stringByReplacingOccurrencesOfString: - [NSString stringWithFormat: @"%@/", - [NSTimeZone_posix - _zoneinfoPath]] - withString: @""]; - systemTimeZone = [self timeZoneWithName: timeZoneName]; - } else { - // localtime is a file - systemTimeZone = [[[NSTimeZone alloc] - initWithName: nil - data: [NSData dataWithContentsOfFile: - @"/etc/localtime"]] - autorelease]; - } - } - - if (systemTimeZone == nil) { - // try to use TZ environment variable - const char *envTimeZoneName = getenv("TZ"); - - if (envTimeZoneName != NULL) { - systemTimeZone = [self - timeZoneWithName: - [NSString stringWithCString: envTimeZoneName]]; - } - } - - if (systemTimeZone == nil) { - NSString *abbreviation; - - tzset(); - abbreviation = [NSString stringWithCString: tzname[0]]; - - systemTimeZone = [self timeZoneWithAbbreviation: abbreviation]; - -#ifdef LINUX - if (systemTimeZone == nil) { - // check if the error is because of a missing entry in - // NSTimeZoneAbbreviations.plist (only for logging) - if ([[self abbreviationDictionary] objectForKey: abbreviation] == - nil) { - NSCLog("Abbreviation [%s] not found in " - "NSTimeZoneAbbreviations.plist -> using absolute " - "timezone (no daylight saving)", - [abbreviation cString]); - } else { - NSCLog("TimeZone [%s] not instantiable -> using absolute " - "timezone (no daylight saving)", - [[[self abbreviationDictionary] - objectForKey: abbreviation] cString]); - } - - systemTimeZone = [NSTimeZone timeZoneForSecondsFromGMT: timezone]; - } -#endif - } - - return systemTimeZone; -} - -- (NSTimeZoneType *) timeZoneTypeForDate: (NSDate *) date { - if ([_timeZoneTransitions count] == 0 || - [date compare: [[_timeZoneTransitions objectAtIndex: 0] - transitionDate]] == NSOrderedAscending) { - - NSEnumerator *timeZoneTypeEnumerator = - [_timeZoneTypes objectEnumerator]; - NSTimeZoneType *type; - - while ((type = [timeZoneTypeEnumerator nextObject]) != nil) { - if (![type isDaylightSavingTime]) - return type; - } - - return [_timeZoneTypes objectAtIndex: 0]; - } else { - NSEnumerator *timeZoneTransitionEnumerator = - [_timeZoneTransitions objectEnumerator]; - NSTimeZoneTransition *transition, *previousTransition = nil; - - while ((transition = [timeZoneTransitionEnumerator nextObject]) != - nil) { - if ([date compare: [transition transitionDate]] == - NSOrderedDescending) { - previousTransition = transition; - } else - return [_timeZoneTypes - objectAtIndex: [previousTransition typeIndex]]; - } - - return [_timeZoneTypes lastObject]; - } - // don't use date description in exception text, because of recursion - [NSException raise: NSInternalInconsistencyException - format: @"%@ could not determine seconds from GMT for " - @"timeInterval %d since reference date", - self, [date timeIntervalSinceReferenceDate]]; - return nil; -} - -- (NSInteger) secondsFromGMTForDate: (NSDate *) date { - return [[self timeZoneTypeForDate: date] secondsFromGMT]; -} - -- (NSString *) abbreviationForDate: (NSDate *) date { - return [[self timeZoneTypeForDate: date] abbreviation]; -} - -- (BOOL) isDaylightSavingTimeForDate: (NSDate *) date { - return [[self timeZoneTypeForDate: date] isDaylightSavingTime]; -} - -- (NSString *) description { - return [NSString - stringWithFormat: @"<%@[0x%lx] name: %@ secondsFromGMT: %d " - @"isDaylightSavingTime: %@ abbreviation: %@>", - [self class], self, [self name], - [self secondsFromGMT], - [self isDaylightSavingTime] ? @"YES" : @"NO", - [self abbreviation]]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - [coder encodeObject: _name]; - [coder encodeObject: _data]; - [coder encodeObject: _timeZoneTransitions]; - [coder encodeObject: _timeZoneTypes]; -} - -- initWithCoder: (NSCoder *) coder { - _name = [[coder decodeObject] retain]; - _data = [[coder decodeObject] retain]; - _timeZoneTransitions = [[coder decodeObject] retain]; - _timeZoneTypes = [[coder decodeObject] retain]; - - return self; -} - -+ (NSString *) _zoneinfoPath { - static NSString *zoneinfoPath = nil; - if (zoneinfoPath == nil) { - BOOL isDir; - NSFileManager *fileManager = [NSFileManager defaultManager]; - - // we can create some subclasses for all os or a method on NSPlatform - // instead of this if else cascade - if ([fileManager fileExistsAtPath: @"/usr/share/zoneinfo" - isDirectory: &isDir] && - isDir) { // os x & linux - return @"/usr/share/zoneinfo"; - } else if ([fileManager fileExistsAtPath: @"/usr/share/lib/zoneinfo" - isDirectory: &isDir] && - isDir) { // solaris - return @"/usr/share/lib/zoneinfo"; - } else if ([fileManager fileExistsAtPath: @"/usr/lib/zoneinfo" - isDirectory: &isDir] && - isDir) { // older linux - return @"/usr/lib/zoneinfo"; - } else { - [NSException raise: NSInternalInconsistencyException - format: @"could not find zoneinfo directory"]; - // compiler does not know if NSException+raise:… throws - return nil; - } - } else { - return zoneinfoPath; - } -} - -@end -#endif diff --git a/Foundation/platform_solaris/NSBacktraceFunctions_solaris.m b/Foundation/platform_solaris/NSBacktraceFunctions_solaris.m deleted file mode 100644 index 0b2b709e..00000000 --- a/Foundation/platform_solaris/NSBacktraceFunctions_solaris.m +++ /dev/null @@ -1,80 +0,0 @@ -/* Copyright (c) 2012 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -#include -#include -#include -#include - -struct _backtracearray { - void **array; - int size; - int currentPos; -}; - -int _fillarray(uintptr_t pc, int sig, void *usrarg) { - struct _backtracearray *a = (struct _backtracearray *) usrarg; - int i = 0; - - if (a->currentPos >= a->size) { - return -1; - } - - a->array[a->currentPos++] = (void *) pc; - - return 0; -} - -int backtrace(void **array, int size) { - struct _backtracearray a; - a.array = array; - a.size = size; - a.currentPos = 0; - ucontext_t ucp; - if (getcontext(&ucp)) { - return 0; - } else { - walkcontext(&ucp, &_fillarray, &a); - } - - return a.currentPos; -} - -char **backtrace_symbols(void *const *array, int size) { - NSUnimplementedFunction(); - return 0; - /* - char** ret = malloc(size); - - for (int i = 0 ; i < size; ++i) { - Dl_info info; - dladdr(array[i], &info); - if (info.dli_sname != NULL) { - ret[i] = strdup(info.dli_sname); - } - else { - ret[i] = NULL; - } - } - - return ret;*/ -} \ No newline at end of file diff --git a/Foundation/platform_solaris/NSPlatform_solaris.h b/Foundation/platform_solaris/NSPlatform_solaris.h deleted file mode 100644 index 1411fbbe..00000000 --- a/Foundation/platform_solaris/NSPlatform_solaris.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface NSPlatform_solaris : NSPlatform_posix { -} - -@end diff --git a/Foundation/platform_solaris/NSPlatform_solaris.m b/Foundation/platform_solaris/NSPlatform_solaris.m deleted file mode 100644 index d5b63262..00000000 --- a/Foundation/platform_solaris/NSPlatform_solaris.m +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import - -#include -#import -#include -#include - -NSString *NSPlatformClassName = @"NSPlatform_solaris"; - -@implementation NSPlatform_solaris - -/* - BSD 4.3. The SUSv2 version returns int, and this is also - the prototype used by glibc 2.2.2. Only the EINVAL error - return is documented by SUSv2. - */ -void NSPlatformSleepThreadForTimeInterval(NSTimeInterval interval) { - if (interval <= 0.0) - return; - - if (interval > 1.0) - sleep((unsigned int) interval); - else { - unsigned long value = 1000.0 * interval; - poll(NULL, 0, value); - } -} - -/* - SVr4, 4.4BSD (this function first appeared in 4.2BSD). - POSIX.1 does not define these functions, but ISO/IEC - 9945-1:1990 mentions them in B.4.4.1. - */ -- (NSString *) hostName { - char buf[MAXHOSTNAMELEN]; - gethostname(buf, MAXHOSTNAMELEN); - return [NSString stringWithUTF8String: buf]; -} - -- (NSString *) DNSHostName { - // if we wanted to get crazy, we could open a dummy socket - // and then get its local address, the do a gethostbyaddr on that... - return [self hostName]; -} - -NSString *const NSPlatformExecutableDirectory = @"Solaris"; -NSString *const NSPlatformResourceNameSuffix = @"solaris"; - -NSString *const NSPlatformExecutableFileExtension = @""; -NSString *const NSPlatformLoadableObjectFileExtension = @"so"; -NSString *const NSPlatformLoadableObjectFilePrefix = @"lib"; - -@end - -char **NSPlatform_environ() { - extern char **environ; - - return environ; -} diff --git a/Foundation/platform_solaris/SolarisMemoryFunctions.m b/Foundation/platform_solaris/SolarisMemoryFunctions.m deleted file mode 100644 index a59eb65c..00000000 --- a/Foundation/platform_solaris/SolarisMemoryFunctions.m +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -NSUInteger NSPageSize(void) { - return getpagesize(); -} - -NSUInteger NSRealMemoryAvailable(void) { - // is this accurate? - return sysconf(_SC_AVPHYS_PAGES) * getpagesize(); -} diff --git a/Foundation/platform_solaris/libmain.m b/Foundation/platform_solaris/libmain.m deleted file mode 100644 index a6cb39ae..00000000 --- a/Foundation/platform_solaris/libmain.m +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2010 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -#define _STRUCTURED_PROC 1 -#import -#include -#include -#import -#include - -FOUNDATION_EXPORT void __attribute__((constructor)) libmain(void) { - - char **argValues = NULL; - static char **nArgValues = NULL; - char psinfoFile[80]; - psinfo_t pinfo; - int argCount = 0; - pid_t p = getpid(); - - sprintf(psinfoFile, "/proc/%d/psinfo", p); - FILE *f = fopen(psinfoFile, "r"); - if (f == NULL) { - fprintf(stderr, - "Error during Cocotron initialization: Failed to open ps info " - "file for pid [%d]", - p); - abort(); - } - - fread(&pinfo, sizeof(pinfo), 1, f); - fclose(f); - - argValues = (char **) pinfo.pr_argv; - while (argValues[argCount] != NULL) { - argCount++; - } - - nArgValues = (char **) malloc(sizeof(char *) * (argCount)); - - for (int i = 0; i < argCount; i++) { - nArgValues[i] = (char *) strdup(argValues[i]); - } - - __NSInitializeProcess(argCount, (const char **) nArgValues); -} \ No newline at end of file diff --git a/Foundation/platform_windows/NSBacktraceFunctions_win32.m b/Foundation/platform_windows/NSBacktraceFunctions_win32.m deleted file mode 100644 index 22b8df45..00000000 --- a/Foundation/platform_windows/NSBacktraceFunctions_win32.m +++ /dev/null @@ -1,151 +0,0 @@ -#ifdef WINDOWS -/* Copyright (c) 2012 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -#define _NS_FRAME_ADDRESS_BACKTRACE(x) \ - case x: \ - array[level] = __builtin_frame_address(x + 1); \ - break; - -int backtrace(void **array, int size) { - int level = 0; - - for (; level < size; level++) { - switch (level) { - _NS_FRAME_ADDRESS_BACKTRACE(0); - _NS_FRAME_ADDRESS_BACKTRACE(1); - _NS_FRAME_ADDRESS_BACKTRACE(2); - _NS_FRAME_ADDRESS_BACKTRACE(3); - _NS_FRAME_ADDRESS_BACKTRACE(4); - _NS_FRAME_ADDRESS_BACKTRACE(5); - _NS_FRAME_ADDRESS_BACKTRACE(6); - _NS_FRAME_ADDRESS_BACKTRACE(7); - _NS_FRAME_ADDRESS_BACKTRACE(8); - _NS_FRAME_ADDRESS_BACKTRACE(9); - _NS_FRAME_ADDRESS_BACKTRACE(10); - _NS_FRAME_ADDRESS_BACKTRACE(11); - _NS_FRAME_ADDRESS_BACKTRACE(12); - _NS_FRAME_ADDRESS_BACKTRACE(13); - _NS_FRAME_ADDRESS_BACKTRACE(14); - _NS_FRAME_ADDRESS_BACKTRACE(15); - _NS_FRAME_ADDRESS_BACKTRACE(16); - _NS_FRAME_ADDRESS_BACKTRACE(17); - _NS_FRAME_ADDRESS_BACKTRACE(18); - _NS_FRAME_ADDRESS_BACKTRACE(19); - _NS_FRAME_ADDRESS_BACKTRACE(20); - _NS_FRAME_ADDRESS_BACKTRACE(21); - _NS_FRAME_ADDRESS_BACKTRACE(22); - _NS_FRAME_ADDRESS_BACKTRACE(23); - _NS_FRAME_ADDRESS_BACKTRACE(24); - _NS_FRAME_ADDRESS_BACKTRACE(25); - _NS_FRAME_ADDRESS_BACKTRACE(26); - _NS_FRAME_ADDRESS_BACKTRACE(27); - _NS_FRAME_ADDRESS_BACKTRACE(28); - _NS_FRAME_ADDRESS_BACKTRACE(29); - _NS_FRAME_ADDRESS_BACKTRACE(30); - _NS_FRAME_ADDRESS_BACKTRACE(31); - _NS_FRAME_ADDRESS_BACKTRACE(32); - _NS_FRAME_ADDRESS_BACKTRACE(33); - _NS_FRAME_ADDRESS_BACKTRACE(34); - _NS_FRAME_ADDRESS_BACKTRACE(35); - _NS_FRAME_ADDRESS_BACKTRACE(36); - _NS_FRAME_ADDRESS_BACKTRACE(37); - _NS_FRAME_ADDRESS_BACKTRACE(38); - _NS_FRAME_ADDRESS_BACKTRACE(39); - _NS_FRAME_ADDRESS_BACKTRACE(40); - _NS_FRAME_ADDRESS_BACKTRACE(41); - _NS_FRAME_ADDRESS_BACKTRACE(42); - _NS_FRAME_ADDRESS_BACKTRACE(43); - _NS_FRAME_ADDRESS_BACKTRACE(44); - _NS_FRAME_ADDRESS_BACKTRACE(45); - _NS_FRAME_ADDRESS_BACKTRACE(46); - _NS_FRAME_ADDRESS_BACKTRACE(47); - _NS_FRAME_ADDRESS_BACKTRACE(48); - _NS_FRAME_ADDRESS_BACKTRACE(49); - _NS_FRAME_ADDRESS_BACKTRACE(50); - _NS_FRAME_ADDRESS_BACKTRACE(51); - _NS_FRAME_ADDRESS_BACKTRACE(52); - _NS_FRAME_ADDRESS_BACKTRACE(53); - _NS_FRAME_ADDRESS_BACKTRACE(54); - _NS_FRAME_ADDRESS_BACKTRACE(55); - _NS_FRAME_ADDRESS_BACKTRACE(56); - _NS_FRAME_ADDRESS_BACKTRACE(57); - _NS_FRAME_ADDRESS_BACKTRACE(58); - _NS_FRAME_ADDRESS_BACKTRACE(59); - _NS_FRAME_ADDRESS_BACKTRACE(60); - _NS_FRAME_ADDRESS_BACKTRACE(61); - _NS_FRAME_ADDRESS_BACKTRACE(62); - _NS_FRAME_ADDRESS_BACKTRACE(63); - _NS_FRAME_ADDRESS_BACKTRACE(64); - _NS_FRAME_ADDRESS_BACKTRACE(65); - _NS_FRAME_ADDRESS_BACKTRACE(66); - _NS_FRAME_ADDRESS_BACKTRACE(67); - _NS_FRAME_ADDRESS_BACKTRACE(68); - _NS_FRAME_ADDRESS_BACKTRACE(69); - _NS_FRAME_ADDRESS_BACKTRACE(70); - _NS_FRAME_ADDRESS_BACKTRACE(71); - _NS_FRAME_ADDRESS_BACKTRACE(72); - _NS_FRAME_ADDRESS_BACKTRACE(73); - _NS_FRAME_ADDRESS_BACKTRACE(74); - _NS_FRAME_ADDRESS_BACKTRACE(75); - _NS_FRAME_ADDRESS_BACKTRACE(76); - _NS_FRAME_ADDRESS_BACKTRACE(77); - _NS_FRAME_ADDRESS_BACKTRACE(78); - _NS_FRAME_ADDRESS_BACKTRACE(79); - _NS_FRAME_ADDRESS_BACKTRACE(80); - _NS_FRAME_ADDRESS_BACKTRACE(81); - _NS_FRAME_ADDRESS_BACKTRACE(82); - _NS_FRAME_ADDRESS_BACKTRACE(83); - _NS_FRAME_ADDRESS_BACKTRACE(84); - _NS_FRAME_ADDRESS_BACKTRACE(85); - _NS_FRAME_ADDRESS_BACKTRACE(86); - _NS_FRAME_ADDRESS_BACKTRACE(87); - _NS_FRAME_ADDRESS_BACKTRACE(88); - _NS_FRAME_ADDRESS_BACKTRACE(89); - _NS_FRAME_ADDRESS_BACKTRACE(90); - _NS_FRAME_ADDRESS_BACKTRACE(91); - _NS_FRAME_ADDRESS_BACKTRACE(92); - _NS_FRAME_ADDRESS_BACKTRACE(93); - _NS_FRAME_ADDRESS_BACKTRACE(94); - _NS_FRAME_ADDRESS_BACKTRACE(95); - _NS_FRAME_ADDRESS_BACKTRACE(96); - _NS_FRAME_ADDRESS_BACKTRACE(97); - _NS_FRAME_ADDRESS_BACKTRACE(98); - _NS_FRAME_ADDRESS_BACKTRACE(99); - - default: - return size; - } - - if (array[level] == 0) { - return level - 1; - } - } - - return level; -} - -char **backtrace_symbols(void *const *array, int size) { - NSUnimplementedFunction(); - return 0; -} -#endif diff --git a/Foundation/platform_windows/NSCancelInputSource_win32.h b/Foundation/platform_windows/NSCancelInputSource_win32.h deleted file mode 100644 index b4788269..00000000 --- a/Foundation/platform_windows/NSCancelInputSource_win32.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import - -@interface NSCancelInputSource_win32 : NSHandleMonitor_win32 { -} - -@end diff --git a/Foundation/platform_windows/NSCancelInputSource_win32.m b/Foundation/platform_windows/NSCancelInputSource_win32.m deleted file mode 100644 index 21825c3d..00000000 --- a/Foundation/platform_windows/NSCancelInputSource_win32.m +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef WINDOWS - -#import "NSCancelInputSource_win32.h" - -#include - -@implementation NSCancelInputSource_win32 -- (id) init { - HANDLE eventHandle = CreateEvent(NULL, FALSE, FALSE, NULL); - [self initWithHandle: eventHandle]; - [self setDelegate: self]; - return self; -} - -- (void) dealloc { - CloseHandle(_handle); - [super dealloc]; -} - -- (void) handleMonitorIndicatesSignaled: (NSHandleMonitor_win32 *) monitor { - ResetEvent(_handle); -} - -- (void) cancel { - SetEvent(_handle); -} - -@end -#endif diff --git a/Foundation/platform_windows/NSConditionLock_win32.h b/Foundation/platform_windows/NSConditionLock_win32.h deleted file mode 100644 index 4ce6381a..00000000 --- a/Foundation/platform_windows/NSConditionLock_win32.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#include - -@interface NSConditionLock_win32 : NSConditionLock { - BOOL _conditionWasBroadcast; - NSUInteger _numberOfWaiters; - HANDLE _semaphore; - HANDLE _waitersDone; - HANDLE _mutex; - CRITICAL_SECTION _waitersNumber; - NSInteger _value; -} - -@end diff --git a/Foundation/platform_windows/NSConditionLock_win32.m b/Foundation/platform_windows/NSConditionLock_win32.m deleted file mode 100644 index 86fde1ee..00000000 --- a/Foundation/platform_windows/NSConditionLock_win32.m +++ /dev/null @@ -1,179 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#ifdef WINDOWS - -#import -#import -#import -#import - -#define UPDATE_TIME \ - time = MIN(MAX([date timeIntervalSinceNow] * 1000.0, 0), INFINITE) - -@implementation NSConditionLock_win32 - -- (BOOL) _waitForConditionBeforeDate: (NSDate *) date { - NSUInteger time = 0; - - EnterCriticalSection(&_waitersNumber); - _numberOfWaiters++; - LeaveCriticalSection(&_waitersNumber); - - UPDATE_TIME; - - if (SignalObjectAndWait(_mutex, _semaphore, time, NO)) { - EnterCriticalSection(&_waitersNumber); - _numberOfWaiters--; - LeaveCriticalSection(&_waitersNumber); - - return NO; - } - - EnterCriticalSection(&_waitersNumber); - - _numberOfWaiters--; - BOOL wereLast = _numberOfWaiters == 0 && _conditionWasBroadcast; - - LeaveCriticalSection(&_waitersNumber); - - UPDATE_TIME; - - if (wereLast) { - NSCooperativeThreadBlocking(); - DWORD result = SignalObjectAndWait(_waitersDone, _mutex, time, NO); - NSCooperativeThreadWaiting(); - - if (result) - return NO; - } else { - NSCooperativeThreadBlocking(); - DWORD result = WaitForSingleObject(_mutex, time); - NSCooperativeThreadWaiting(); - - if (result) - return NO; - } - return YES; -} - -- (void) _broadcastCondition { - EnterCriticalSection(&_waitersNumber); - _conditionWasBroadcast = _numberOfWaiters > 0; - - if (_conditionWasBroadcast) { - ReleaseSemaphore(_semaphore, _numberOfWaiters, 0); - LeaveCriticalSection(&_waitersNumber); - NSCooperativeThreadBlocking(); - WaitForSingleObject(_waitersDone, INFINITE); - NSCooperativeThreadWaiting(); - _conditionWasBroadcast = NO; - } else - LeaveCriticalSection(&_waitersNumber); -} - -- (void) lockWhenCondition: (NSInteger) condition { - [self lockWhenCondition: condition beforeDate: [NSDate distantFuture]]; -} - -- (void) tryLockWhenCondition: (NSInteger) condition { - [self lockWhenCondition: condition beforeDate: [NSDate date]]; -} - -- (BOOL) lockWhenCondition: (NSInteger) condition beforeDate: (NSDate *) date; { - NSUInteger time = 0; - UPDATE_TIME; - - DWORD result; - - NSCooperativeThreadBlocking(); - result = WaitForSingleObject(_mutex, time); - NSCooperativeThreadWaiting(); - - if (result != 0) - return NO; - - while (_value != condition) { - if (![self _waitForConditionBeforeDate: date]) { - return NO; - } - } - return YES; -} - -- (BOOL) lockBeforeDate: (NSDate *) date { - NSUInteger time = 0; - UPDATE_TIME; - - DWORD result; - - NSCooperativeThreadBlocking(); - result = WaitForSingleObject(_mutex, time); - NSCooperativeThreadWaiting(); - - if (result != 0) - return NO; - - return YES; -} - -- (void) lock { - [self lockBeforeDate: [NSDate distantFuture]]; -} - -- (void) unlockWithCondition: (NSInteger) condition { - _value = condition; - [self _broadcastCondition]; - ReleaseMutex(_mutex); -} - -- (void) unlock { - [self unlockWithCondition: _value]; -} - -- (id) init { - return [self initWithCondition: 0]; -} - -- (id) initWithCondition: (NSInteger) value { - if ((self = [super init]) != nil) { - _value = value; - _semaphore = CreateSemaphore(NULL, 0, INT_MAX, NULL); - _waitersDone = CreateEvent(NULL, NO, NO, NULL); - _mutex = CreateMutex(NULL, NO, NULL); - InitializeCriticalSection(&_waitersNumber); - } - return self; -} - -- (void) dealloc { - CloseHandle(_semaphore); - CloseHandle(_waitersDone); - CloseHandle(_mutex); - DeleteCriticalSection(&_waitersNumber); - [_name release]; - [super dealloc]; -} - -- (NSInteger) condition { - return _value; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSCondition_win32.h b/Foundation/platform_windows/NSCondition_win32.h deleted file mode 100644 index 96b9910b..00000000 --- a/Foundation/platform_windows/NSCondition_win32.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 1010 Sven Weidauer - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#include - -enum { Event_Signal = 0, Event_Broadcast = 1, Event_Count = 2 }; - -@interface NSCondition_win32 : NSCondition { - volatile LONG waitersCount; - CRITICAL_SECTION lock; - HANDLE events[Event_Count]; -} - -@end diff --git a/Foundation/platform_windows/NSCondition_win32.m b/Foundation/platform_windows/NSCondition_win32.m deleted file mode 100644 index d34dc8e3..00000000 --- a/Foundation/platform_windows/NSCondition_win32.m +++ /dev/null @@ -1,94 +0,0 @@ -#ifdef WINDOWS -/* Copyright (c) 1010 Sven Weidauer - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NSCondition_win32.h" -#import - -@implementation NSCondition_win32 - -- init { - if (nil == [super init]) - return nil; - - InitializeCriticalSection(&lock); - - events[Event_Signal] = CreateEvent(0, FALSE, FALSE, 0); - events[Event_Broadcast] = CreateEvent(0, TRUE, FALSE, 0); - waitersCount = 0; - - return self; -} - -- (void) dealloc { - [self lock]; - CloseHandle(events[Event_Signal]); - CloseHandle(events[Event_Broadcast]); - [self unlock]; - DeleteCriticalSection(&lock); - - [super dealloc]; -} - -- (void) lock { - EnterCriticalSection(&lock); -} - -- (void) unlock { - LeaveCriticalSection(&lock); -} - -- (void) wait { - InterlockedIncrement(&waitersCount); - - [self unlock]; - - NSCooperativeThreadBlocking(); - - int result = WaitForMultipleObjects(Event_Count, events, FALSE, INFINITE); - - NSCooperativeThreadWaiting(); - - LONG newWaitersCount = InterlockedDecrement(&waitersCount); - BOOL lastWaiter = (result == WAIT_OBJECT_0 + Event_Broadcast) && - (0 == newWaitersCount); - - if (lastWaiter) - ResetEvent(events[Event_Broadcast]); - - [self lock]; -} - -- (void) signal; { - BOOL haveWaiters = waitersCount > 0; - - if (haveWaiters) - SetEvent(events[Event_Signal]); -} - -- (void) broadcast; { - BOOL haveWaiters = waitersCount > 0; - - if (haveWaiters) - SetEvent(events[Event_Broadcast]); -} - -@end -#endif diff --git a/Foundation/platform_windows/NSFileHandle_win32.h b/Foundation/platform_windows/NSFileHandle_win32.h deleted file mode 100644 index 66e35ed5..00000000 --- a/Foundation/platform_windows/NSFileHandle_win32.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#include - -@interface NSFileHandle_win32 : NSFileHandle { - HANDLE _handle; - BOOL _closeOnDealloc; - - id _background; -} - -- initWithHandle: (HANDLE) handle closeOnDealloc: (BOOL) closeOnDealloc; - -- (HANDLE) fileHandle; - -@end diff --git a/Foundation/platform_windows/NSFileHandle_win32.m b/Foundation/platform_windows/NSFileHandle_win32.m deleted file mode 100644 index c076e83b..00000000 --- a/Foundation/platform_windows/NSFileHandle_win32.m +++ /dev/null @@ -1,309 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -@implementation NSFileHandle (ImplementedInSubclass) - -+ (Class) concreteSubclass { - return [NSFileHandle_win32 class]; -} - -@end - -@implementation NSFileHandle_win32 - -- initWithHandle: (HANDLE) handle closeOnDealloc: (BOOL) closeOnDealloc { - _handle = handle; - _closeOnDealloc = closeOnDealloc; - return self; -} - -- initWithFileDescriptor: (int) descriptor - closeOnDealloc: (BOOL) closeOnDealloc -{ - _handle = (HANDLE) descriptor; - _closeOnDealloc = closeOnDealloc; - return self; -} - -- (void) dealloc { - if (_closeOnDealloc) - [self closeFile]; - - [_background detach]; - - [super dealloc]; -} - -+ fileHandleForReadingAtPath: (NSString *) path { - HANDLE handle = - CreateFileW([path fileSystemRepresentationW], GENERIC_READ, 0, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - - if (handle == NULL) - return nil; - - return [[[self allocWithZone: NULL] initWithHandle: handle - closeOnDealloc: YES] autorelease]; -} - -+ fileHandleForWritingAtPath: (NSString *) path { - HANDLE handle = - CreateFileW([path fileSystemRepresentationW], GENERIC_WRITE, 0, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - - if (handle == NULL) - return nil; - - return [[[self allocWithZone: NULL] initWithHandle: handle - closeOnDealloc: YES] autorelease]; -} - -+ fileHandleForUpdatingAtPath: (NSString *) path { - HANDLE handle = CreateFileW([path fileSystemRepresentationW], - GENERIC_WRITE | GENERIC_READ, 0, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - - if (handle == NULL) - return nil; - - return [[[self allocWithZone: NULL] initWithHandle: handle - closeOnDealloc: YES] autorelease]; -} - -+ fileHandleWithNullDevice { - NSUnimplementedMethod(); - return nil; -} - -+ fileHandleWithStandardInput { - return [[[self allocWithZone: NULL] - initWithHandle: GetStdHandle(STD_INPUT_HANDLE) - closeOnDealloc: NO] autorelease]; -} - -+ fileHandleWithStandardOutput { - return [[[self allocWithZone: NULL] - initWithHandle: GetStdHandle(STD_OUTPUT_HANDLE) - closeOnDealloc: NO] autorelease]; -} - -+ fileHandleWithStandardError { - return [[[self allocWithZone: NULL] - initWithHandle: GetStdHandle(STD_ERROR_HANDLE) - closeOnDealloc: NO] autorelease]; -} - -- (HANDLE) fileHandle { - return _handle; -} - -- (void) closeFile { - if (_handle != NULL) { - CloseHandle(_handle); - _handle = NULL; - } -} - -- (void) synchronizeFile { - if (!FlushFileBuffers(_handle)) - Win32Assert("FlushFileBuffers"); -} - -- (uint64_t) offsetInFile { - LARGE_INTEGER li; - - li.QuadPart = 0; - - li.LowPart = - SetFilePointer(_handle, li.LowPart, &li.HighPart, FILE_CURRENT); - - if (li.LowPart == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR) - [NSException raise: NSInvalidArgumentException - format: @"GetLastError()=%d", GetLastError()]; - - return li.QuadPart; -} - -- (void) seekToFileOffset: (uint64_t) offset { - LONG highWord = offset >> 32; - - SetFilePointer(_handle, offset & 0xFFFFFFFF, &highWord, FILE_BEGIN); - - // Win32Assert("SetFilePointer"); -} - -- (uint64_t) seekToEndOfFile { - uint64_t result = 0; - LONG highWord = 0; - DWORD lowWord = SetFilePointer(_handle, 0, &highWord, FILE_END); - - if (lowWord == INVALID_SET_FILE_POINTER) - Win32Assert("SetFilePointer"); - - result = highWord; - result <<= 32; - result |= lowWord; - - return result; -} - -- (NSData *) readDataOfLength: (NSUInteger) length { - NSMutableData *result = [NSMutableData dataWithLength: length]; - DWORD readLength; - - if (!ReadFile(_handle, [result mutableBytes], length, &readLength, NULL)) { - return nil; - } - - [result setLength: readLength]; - - return result; -} - -- (NSData *) readDataToEndOfFile { -#define B 4096 - NSMutableData *result = [NSMutableData dataWithLength: B]; - DWORD readLength = 0; - DWORD sum = 0; - DWORD error; - LPVOID lpMsgBuf; - - while (GetLastError() != ERROR_BROKEN_PIPE && - ReadFile(_handle, [result mutableBytes] + sum, B, &readLength, - NULL)) { - //[result appendBytes:buffer length:readLength]; - sum += readLength; - [result increaseLengthBy: B]; - } - [result setLength: sum]; -#undef B - - error = GetLastError(); - if (error != ERROR_BROKEN_PIPE) { - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, 0, NULL); - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"read(%d) %s", _handle, lpMsgBuf); - return nil; - } - - return result; -} - -- (NSData *) availableData { - NSMutableData *mutableData = [NSMutableData dataWithLength: 0]; - DWORD count = 0; - int length = 0; - DWORD error; - LPVOID lpMsgBuf; - - do { - [mutableData increaseLengthBy: 4096]; - if (!ReadFile(_handle, &((char *) [mutableData mutableBytes])[length], - 4096, &count, NULL)) { - error = GetLastError(); - if (error == ERROR_BROKEN_PIPE || error == ERROR_HANDLE_EOF) { - break; - } else { - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, error, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &lpMsgBuf, 0, NULL); - NSRaiseException(NSFileHandleOperationException, self, _cmd, - @"read(%d) %s", _handle, lpMsgBuf); - return nil; - } - } - - length += count; - - if (count < 4096 && GetFileType(_handle) == FILE_TYPE_DISK) { - // end of file - break; - } - - } while (length <= 0 || count == 4096); - - [mutableData setLength: length]; - - return mutableData; -} - -- (void) writeData: (NSData *) data { - DWORD bytesWritten = 0; - - if (!WriteFile(_handle, [data bytes], [data length], &bytesWritten, NULL)) - Win32Assert("WriteFile"); -} - -- (void) truncateFileAtOffset: (uint64_t) offset { - LONG highWord = offset >> 32; - - SetFilePointer(_handle, offset & 0xFFFFFFFF, &highWord, FILE_BEGIN); - SetEndOfFile(_handle); -} - -- (void) readInBackground: (NSReadInBackground_win32 *) rib - data: (NSData *) data -{ - NSDictionary *userInfo; - NSNotification *note; - - userInfo = [NSDictionary - dictionaryWithObject: data - forKey: NSFileHandleNotificationDataItem]; - note = [NSNotification - notificationWithName: NSFileHandleReadCompletionNotification - object: self - userInfo: userInfo]; - - [_background detach]; - _background = nil; - - [[NSNotificationCenter defaultCenter] postNotification: note]; -} - -- (void) readInBackgroundAndNotifyForModes: (NSArray *) modes { - if (_background != nil) - [NSException raise: NSInternalInconsistencyException - format: @"file handle has background activity already"]; - - _background = - [NSReadInBackground_win32 readInBackgroundWithFileHandle: self - modes: modes]; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSFileManager_win32.h b/Foundation/platform_windows/NSFileManager_win32.h deleted file mode 100644 index ed6a1dab..00000000 --- a/Foundation/platform_windows/NSFileManager_win32.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSFileManager_win32 : NSFileManager { - id _delegate; -} - -@end diff --git a/Foundation/platform_windows/NSFileManager_win32.m b/Foundation/platform_windows/NSFileManager_win32.m deleted file mode 100644 index 9993e998..00000000 --- a/Foundation/platform_windows/NSFileManager_win32.m +++ /dev/null @@ -1,940 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - 2009 Markus Hitter - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import -#import - -#include -#include -#include -#include -#include - -#pragma mark - -#pragma mark Utility Methods - -// Adapted from http://pastebin.com/bEkJVQx9 -static int CopyDirectoryW(CONST WCHAR *cszFrom, CONST WCHAR *cszTo) { - int success = CreateDirectoryW(cszTo, NULL) != 0; - if (success) { - WIN32_FIND_DATAW FindFileData; - HANDLE hFindFile; - - WCHAR cszDirectoryFindPattern[1024] = {0}; - swprintf(cszDirectoryFindPattern, L"\\\\?\\%s\\*", cszFrom); - - if ((hFindFile = - FindFirstFileW(cszDirectoryFindPattern, &FindFileData)) != - INVALID_HANDLE_VALUE) { - do { - if (*FindFileData.cFileName == '.') - continue; - - WCHAR cszFileOrDirectoryFrom[1024] = {0}; - WCHAR cszFileOrDirectoryTo[1024] = {0}; - swprintf(cszFileOrDirectoryFrom, L"%s\\%s", cszFrom, - FindFileData.cFileName); - swprintf(cszFileOrDirectoryTo, L"%s\\%s", cszTo, - FindFileData.cFileName); - - if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { - success = CopyDirectoryW(cszFileOrDirectoryFrom, - cszFileOrDirectoryTo); - } else { - success = CopyFileW(cszFileOrDirectoryFrom, - cszFileOrDirectoryTo, YES); - } - if (success == 0) { - break; - } - } while (FindNextFileW(hFindFile, &FindFileData)); - FindClose(hFindFile); - } - } - return success; -} - -static NSString *TranslatePath(NSString *path) { - NSInteger i, length = [path length], resultLength = 0; - unichar buffer[length], result[length]; - - [path getCharacters: buffer]; - - for (i = 0; i < length; i++) { - - if (i == 0) { - if (buffer[0] == '/' || buffer[0] == '\\') { - // A leading "//" is actually legal for some network paths so - // don't skip them - if (length < 2 || buffer[1] != buffer[0]) - continue; - } - } - - if (resultLength == 1 && buffer[i] == '|') { - result[resultLength++] = ':'; - continue; - } - - if (buffer[i] == '/') - result[resultLength++] = '\\'; - else - result[resultLength++] = buffer[i]; - } - - return [NSString stringWithCharacters: result length: resultLength]; -} - -static NSString *DriveLetterInPath(NSString *path) { - NSArray *components = [path componentsSeparatedByString: @":"]; - if ([components count] > 0) { - NSString *driveLetter = [NSString - stringWithFormat: @"%@:\\", [components objectAtIndex: 0]]; - return driveLetter; - } - return nil; -} - -static NSError *NSErrorForGetLastErrorCode(DWORD code) { - NSString *localizedDescription = - @"NSErrorForGetLastError localizedDescription"; - unichar *message; - - FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPWSTR) &message, 0, NULL); - localizedDescription = NSStringFromNullTerminatedUnicode(message); - - LocalFree(message); - - return [NSError - errorWithDomain: NSWin32ErrorDomain - code: code - userInfo: - [NSDictionary - dictionaryWithObject: localizedDescription - forKey: NSLocalizedDescriptionKey]]; -} - -static NSError *NSErrorForGetLastError() { - return NSErrorForGetLastErrorCode(GetLastError()); -} - -static BOOL _NSCreateDirectory(NSString *path, NSError **errorp) { - if (CreateDirectoryW([path fileSystemRepresentationW], NULL) == 0) { - DWORD error = GetLastError(); - - if (error != ERROR_ALREADY_EXISTS) { - if (errorp != nil) - *errorp = NSErrorForGetLastError(); - - return NO; - } - } - - return YES; -} - -#pragma mark - -@implementation NSFileManager (windows) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSFileManager_win32 class], 0, NULL); -} - -@end - -#pragma mark - -@implementation NSFileManager_win32 - -// we dont want to use fileExists... because it chases links -- (BOOL) _isDirectory: (NSString *) path { - if (path == nil) { - return NO; - } - DWORD attributes = GetFileAttributesW([path fileSystemRepresentationW]); - - if (attributes == 0xFFFFFFFF) - return NO; - - return (attributes & FILE_ATTRIBUTE_DIRECTORY) ? YES : NO; -} - -#pragma mark - -#pragma mark Moving an item - -- (BOOL) moveItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error -{ - if (fromPath == nil || toPath == nil) { - return NO; - } - - return MoveFileW([fromPath fileSystemRepresentationW], - [toPath fileSystemRepresentationW]) - ? YES - : NO; -} - -- (BOOL) movePath: (NSString *) src toPath: (NSString *) dest handler: handler { - NSError *error = nil; - if ([self moveItemAtPath: src toPath: dest error: &error] == NO && - handler != nil) { - //[self _errorHandler:handler src:src dest:dest operation:[error - // description]]; - return NO; - } - - return YES; -} - -#pragma mark - -#pragma mark Copying an item - -- (BOOL) copyItemAtPath: (NSString *) fromPath - toPath: (NSString *) toPath - error: (NSError **) error -{ - NSDictionary *srcAttributes = [self attributesOfItemAtPath: fromPath - error: error]; - - if (srcAttributes == nil) { - return NO; - } - - if ([[srcAttributes fileType] isEqual: NSFileTypeRegular] == NO && - [[srcAttributes fileType] isEqual: NSFileTypeDirectory] == NO) { - return NO; - } - - if ([self fileExistsAtPath: toPath] == YES) { - if (error != NULL) { - NSDictionary *userInfo = [NSDictionary - dictionaryWithObject: @"File exists" - forKey: NSLocalizedDescriptionKey]; - - *error = [NSError errorWithDomain: NSPOSIXErrorDomain - code: 17 - userInfo: userInfo]; - } - return NO; - } - - BOOL isDirectory = NO; - if ([self fileExistsAtPath: fromPath isDirectory: &isDirectory] && - isDirectory) { - if (!CopyDirectoryW([fromPath fileSystemRepresentationW], - [toPath fileSystemRepresentationW])) { - if (error != NULL) { - NSString *msg = [NSString - stringWithFormat: @"Copy error (%d)", GetLastError()]; - NSDictionary *userInfo = [NSDictionary - dictionaryWithObject: msg - forKey: NSLocalizedDescriptionKey]; - *error = [NSError errorWithDomain: NSPOSIXErrorDomain - code: 17 - userInfo: userInfo]; - } - NSLog(@"FILE Error %@ %@ %d", fromPath, toPath, GetLastError()); - return NO; - } - } else { - if (!CopyFileW([fromPath fileSystemRepresentationW], - [toPath fileSystemRepresentationW], YES)) { - if (error != NULL) { - NSString *msg = [NSString - stringWithFormat: @"Copy error (%d)", GetLastError()]; - NSDictionary *userInfo = [NSDictionary - dictionaryWithObject: msg - forKey: NSLocalizedDescriptionKey]; - *error = [NSError errorWithDomain: NSPOSIXErrorDomain - code: 17 - userInfo: userInfo]; - } - NSLog(@"FILE Error %@ %@ %d", fromPath, toPath, GetLastError()); - return NO; - } - } - return YES; -} - -- (BOOL) copyPath: (NSString *) src toPath: (NSString *) dest handler: handler { - NSError *error = nil; - if ([self copyItemAtPath: src toPath: dest error: &error] == NO && - handler != nil) { - //[self _errorHandler:handler src:src dest:dest operation:[error - // description]]; - return NO; - } - - return YES; -} - -#pragma mark - -#pragma mark Removing an item - -- (BOOL) removeItemAtPath: (NSString *) path error: (NSError **) error { - if (path == nil) { - return NO; - } - - const unichar *fsrep = [path fileSystemRepresentationW]; - DWORD attribute = GetFileAttributesW(fsrep); - - if ([path isEqualToString: @"."] || [path isEqualToString: @".."]) { - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] path should not be . or ..", - [self class], sel_getName(_cmd)]; - return NO; - } - - if (attribute == 0xFFFFFFFF) { - if (error != NULL) - *error = NSErrorForGetLastError(); - return NO; - } - - if (attribute & FILE_ATTRIBUTE_READONLY) { - attribute &= ~FILE_ATTRIBUTE_READONLY; - if (!SetFileAttributesW(fsrep, attribute)) { - if (error != NULL) - *error = NSErrorForGetLastError(); - return NO; - } - } - - if (![self _isDirectory: path]) { - if (_delegate != nil) { - if (![_delegate fileManager: self shouldRemoveItemAtPath: path]) { - if (error != NULL) - *error = nil; // FIXME; is there a Cocoa error for the - // delegate cancelling? - return NO; - } - } - - if (!DeleteFileW(fsrep)) { - if (error != NULL) - *error = NSErrorForGetLastError(); - return NO; - } - } else { - NSArray *contents = [self directoryContentsAtPath: path]; - NSInteger i, count = [contents count]; - - for (i = 0; i < count; i++) { - NSString *fullPath = [path - stringByAppendingPathComponent: [contents - objectAtIndex: i]]; - if (_delegate != nil) { - if (![_delegate fileManager: self - shouldRemoveItemAtPath: fullPath]) { - if (error != NULL) - *error = nil; // FIXME; is there a Cocoa error for the - // delegate cancelling? - return NO; - } - } - if ([self removeItemAtPath: fullPath error: error] == NO) { - return NO; - } - } - - if (!RemoveDirectoryW(fsrep)) { - if (error != NULL) - *error = NSErrorForGetLastError(); - return NO; - } - } - - return YES; -} - -- (BOOL) removeFileAtPath: (NSString *) path handler: handler { - NSError *error = nil; - if ([self removeItemAtPath: path error: &error] == NO && handler != nil) { - //[self _errorHandler:handler src:src dest:dest operation:[error - // description]]; - return NO; - } - - return YES; -} - -#pragma mark - -#pragma mark Creating an item - -- (BOOL) createDirectoryAtPath: (NSString *) path - withIntermediateDirectories: (BOOL) intermediates - attributes: (NSDictionary *) attributes - error: (NSError **) error -{ - if (intermediates) { - NSArray *components = [path pathComponents]; - NSInteger i, count = [components count]; - NSString *check = @""; - - for (i = 0; i < count - 1; i++) { - check = [check - stringByAppendingPathComponent: [components - objectAtIndex: i]]; - // ignore errors on intermediates since we're not handling all - // possible error codes. - _NSCreateDirectory(check, NULL); - } - } - - return _NSCreateDirectory(path, error); -} - -- (BOOL) createFileAtPath: (NSString *) path - contents: (NSData *) data - attributes: (NSDictionary *) attributes -{ - return [[NSPlatform currentPlatform] writeContentsOfFile: path - bytes: [data bytes] - length: [data length] - options: NSAtomicWrite - error: NULL]; -} - -- (BOOL) createDirectoryAtPath: (NSString *) path - attributes: (NSDictionary *) attributes -{ - return CreateDirectoryW([path fileSystemRepresentationW], NULL) ? YES : NO; -} - -#pragma mark - -#pragma mark Symbolic-Link Operations - -- (NSString *) destinationOfSymbolicLinkAtPath: (NSString *) path - error: (NSError **) error -{ - // Code found at: http://www.catch22.net/tuts/tips2 - IShellLinkW *psl; - - SHFILEINFOW info; - - IPersistFile *ppf; - - int nPathLen = [path length]; - WCHAR pszFilePath[1024]; - WCHAR *pszShortcut = (WCHAR *) [path fileSystemRepresentationW]; - - // assume failure - if ((SHGetFileInfoW(pszShortcut, 0, &info, sizeof(info), - SHGFI_ATTRIBUTES) == 0)) { - - // NSLog(@"failed to get attributes for %S", pszShortcut); - DWORD errNum = GetLastError(); - if (errNum != ERROR_ALREADY_EXISTS && error != nil) { - *error = NSErrorForGetLastError(); - } - return nil; - } - - // not a shortcut? - - if (!(info.dwAttributes & SFGAO_LINK)) { - - // Docs say return nil on failure - return nil; - } - - // obtain the IShellLink interface - - if (FAILED(CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, - &IID_IShellLinkW, (LPVOID *) &psl))) { - - NSLog(@"IShellLink CoCreateInstance failed"); - DWORD errNum = GetLastError(); - - if (errNum != ERROR_ALREADY_EXISTS && error != nil) { - *error = NSErrorForGetLastError(); - } - return nil; - } - - if (SUCCEEDED(psl->lpVtbl->QueryInterface(psl, &IID_IPersistFile, - (LPVOID *) &ppf))) { - - if (SUCCEEDED(ppf->lpVtbl->Load(ppf, pszShortcut, STGM_READ))) { - - // Resolve the link, this may post UI to find the link - if (SUCCEEDED(psl->lpVtbl->Resolve(psl, 0, SLR_NO_UI))) { - psl->lpVtbl->GetPath(psl, pszFilePath, 1024, NULL, 0); - - ppf->lpVtbl->Release(ppf); - - psl->lpVtbl->Release(psl); - - NSString *resolvedPath = - [NSString stringWithFormat: @"%S", pszFilePath]; - // Mac-ify the path - resolvedPath = [resolvedPath - stringByReplacingOccurrencesOfString: @"\\" - withString: @"/"]; - return resolvedPath; - } else { - NSLog(@"Unable to resolve link"); - DWORD errNum = GetLastError(); - - if (errNum != ERROR_ALREADY_EXISTS && error != nil) { - *error = NSErrorForGetLastError(); - } - } - - } else { - NSLog(@"IPersistFile->Load failed for: %S", pszShortcut); - DWORD errNum = GetLastError(); - - if (errNum != ERROR_ALREADY_EXISTS && error != nil) { - *error = NSErrorForGetLastError(); - } - } - - ppf->lpVtbl->Release(ppf); - - } else { - NSLog(@"IShellLink->QueryInterface() for IPersistFile failed"); - DWORD errNum = GetLastError(); - - if (errNum != ERROR_ALREADY_EXISTS && error != nil) { - *error = NSErrorForGetLastError(); - } - } - - psl->lpVtbl->Release(psl); - - return nil; -} - -#pragma mark - -#pragma mark Discovering Directory Contents - -- (NSArray *) contentsOfDirectoryAtPath: (NSString *) path - error: (NSError **) error -{ - NSMutableArray *result = [NSMutableArray array]; - WIN32_FIND_DATAW findData; - HANDLE handle; - - if (path == nil) { - return nil; - } - - handle = FindFirstFileW([[path stringByAppendingString: @"\\*.*"] - fileSystemRepresentationW], - &findData); - - if (handle == INVALID_HANDLE_VALUE) - return nil; - - do { - if (wcscmp(findData.cFileName, L".") != 0 && - wcscmp(findData.cFileName, L"..") != 0) - [result addObject: - [NSString - stringWithCharacters: findData.cFileName - length: wcslen(findData.cFileName)]]; - } while (FindNextFileW(handle, &findData)); - - FindClose(handle); - - return result; -} - -- (NSArray *) directoryContentsAtPath: (NSString *) path { - NSMutableArray *result = [NSMutableArray array]; - WIN32_FIND_DATAW findData; - HANDLE handle; - - if (path == nil) { - return nil; - } - - handle = FindFirstFileW([[path stringByAppendingString: @"\\*.*"] - fileSystemRepresentationW], - &findData); - - if (handle == INVALID_HANDLE_VALUE) - return nil; - - do { - if (wcscmp(findData.cFileName, L".") != 0 && - wcscmp(findData.cFileName, L"..") != 0) - [result addObject: - [NSString - stringWithCharacters: findData.cFileName - length: wcslen(findData.cFileName)]]; - } while (FindNextFileW(handle, &findData)); - - FindClose(handle); - - return result; -} - -#pragma mark - -#pragma mark Getting and Setting Attributes - -- (NSDictionary *) attributesOfFileSystemForPath: (NSString *) path - error: (NSError **) errorp -{ - DWORD serialNumber; - - if (path == nil) { - return nil; - } - - path = TranslatePath(path); - - if (![path hasSuffix: @"\\"]) { - path = [path stringByAppendingString: @"\\"]; - } - - NSMutableDictionary *attrs = - [NSMutableDictionary dictionaryWithCapacity: 3]; - - const uint16_t *wPath = [path fileSystemRepresentationW]; - ULARGE_INTEGER freeBytesAvailable; - ULARGE_INTEGER - totalNumberOfBytes; // This seems to be the same as freeBytesAvailable - ULARGE_INTEGER totalNumberOfFreeBytes; - - if (GetDiskFreeSpaceExW(wPath, &freeBytesAvailable, &totalNumberOfBytes, - &totalNumberOfBytes) != 0) { - [attrs setObject: [NSNumber - numberWithUnsignedLongLong: freeBytesAvailable - .QuadPart] - forKey: NSFileSystemFreeSize]; - [attrs setObject: [NSNumber numberWithUnsignedLongLong: - totalNumberOfFreeBytes.QuadPart] - forKey: NSFileSystemSize]; - } else { - NSError *error = NSErrorForGetLastError(); - NSLog(@"GetDiskFreeSpaceExW failed for path: '%@' with error: %@", path, - error); - if (errorp) { - *errorp = error; - } - return nil; - } - - NSString *driveLetter = DriveLetterInPath(path); - if (driveLetter) { - wPath = [driveLetter fileSystemRepresentationW]; - } - // This seems to prefer Drive Letters to full paths - if (GetVolumeInformationW(wPath, NULL, 0, &serialNumber, NULL, NULL, NULL, - 0) != 0) { - [attrs setObject: [NSNumber numberWithInt: serialNumber] - forKey: NSFileSystemNumber]; - } else { - NSError *error = NSErrorForGetLastError(); - NSLog(@"GetVolumeInformationW failed for path: '%@' with error: %@", - path, error); - if (errorp) { - *errorp = error; - } - return nil; - } - - return attrs; -} - -- (NSDictionary *) attributesOfItemAtPath: (NSString *) path - error: (NSError **) error -{ - WIN32_FILE_ATTRIBUTE_DATA fileData; - - if (path == nil) { - return nil; - } - - if (!GetFileAttributesExW([path fileSystemRepresentationW], - GetFileExInfoStandard, &fileData)) { - // TODO: set error - return nil; - } - - char pSecurityDescriptor[128]; - DWORD lengthNeeded; - - NSMutableDictionary *result = [NSMutableDictionary dictionary]; - NSDate *date = [NSDate - dateWithTimeIntervalSinceReferenceDate: - Win32TimeIntervalFromFileTime(fileData.ftLastWriteTime)]; - [result setObject: date forKey: NSFileModificationDate]; - - NSString *fileType = NSFileTypeRegular; - if (fileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - fileType = NSFileTypeDirectory; - - if (GetFileSecurityW([path fileSystemRepresentationW], - OWNER_SECURITY_INFORMATION, - (SECURITY_DESCRIPTOR *) pSecurityDescriptor, 128, - &lengthNeeded) != 0) { - PSID sid = NULL; - DWORD lpbOwnerDefaulted; - char lpName[128]; - DWORD len = 128; - SID_NAME_USE nameUse; - char referencedDomainName[128]; - DWORD domainLen = 128; - - if (GetSecurityDescriptorOwner( - (SECURITY_DESCRIPTOR *) pSecurityDescriptor, &sid, - ((LPBOOL)(&lpbOwnerDefaulted))) != 0) { - if (LookupAccountSid(NULL, sid, lpName, &len, referencedDomainName, - &domainLen, &nameUse) != 0) { - NSString *owner = [[[NSString alloc] initWithCString: lpName] - autorelease]; - - if (referencedDomainName != NULL) { - [result setObject: - [NSString - stringWithFormat: - @"%@\\%@", - [[[NSString alloc] - initWithCString: - referencedDomainName] - autorelease], - owner] - forKey: NSFileOwnerAccountName]; - } else { - [result setObject: owner forKey: NSFileOwnerAccountName]; - } - } else { - DWORD lastError = GetLastError(); - // 1332 means that the sid is not resolvable (an old one/or on a - // network drive) - if (lastError == 1332) { - /*LPWSTR str = NULL; - if (ConvertSidToStringSidW(sid, &str) == TRUE) { - NSString *owner = - NSStringFromNullTerminatedUnicode(str); LocalFree(str); - [result setObject:owner forKey:NSFileOwnerAccountName]; - } - else { - if (error != nil) { - *error = NSErrorForGetLastErrorCode(lastError); - } - return nil; - }*/ - } else { - if (error != nil) { - *error = NSErrorForGetLastErrorCode(lastError); - } - return nil; - } - } - } - /* FIXME: GetFileSecurityW(path, OWNER_SECURITY_INFORMATION, ...) - retunrs for files on network shares on Windows 7 HP 32bit always 0, - and because of this the present function would returns nil below. So - files on network shares could not be accessed. See: - https://github.com/cjwl/cocotron/issues/5 - } else { - // TODO: set error - return nil; - */ - } - - [result setObject: fileType forKey: NSFileType]; - [result setObject: @"" forKey: NSFileGroupOwnerAccountName]; - [result setObject: [NSNumber numberWithUnsignedLong: 0666] - forKey: NSFilePosixPermissions]; - - uint64_t sizeOfFile = fileData.nFileSizeLow; - uint64_t sizeHigh = fileData.nFileSizeHigh; - sizeOfFile |= sizeHigh << 32; - - [result setObject: [NSNumber numberWithUnsignedLongLong: sizeOfFile] - forKey: NSFileSize]; - - return result; -} - -- (BOOL) setAttributes: (NSDictionary *) attributes - ofItemAtPath: (NSString *) path - error: (NSError **) error -{ - if (error != NULL) { - // TODO set error - } - - return NO; -#if 0 - NSDate *date=[attributes objectForKey:NSFileModificationDate]; - - if(date!=nil){ - time_t timep[2]={ time(NULL),[date timeIntervalSince1970] }; - if(utime((unichar *)[path fileSystemRepresentationW],timep)<0) - return NO; - } - - return YES; -#endif -} - -- (NSDictionary *) fileAttributesAtPath: (NSString *) path - traverseLink: (BOOL) traverse -{ - return [self attributesOfItemAtPath: path error: 0]; -} - -#pragma mark - -#pragma mark Determining Access To Files - -- (BOOL) fileExistsAtPath: (NSString *) path isDirectory: (BOOL *) isDirectory { - if (path == nil) { - return NO; - } - - DWORD attributes = - GetFileAttributesW([self fileSystemRepresentationWithPathW: path]); - - if (attributes == 0xFFFFFFFF) - return NO; - - if (isDirectory != NULL) - *isDirectory = (attributes & FILE_ATTRIBUTE_DIRECTORY) ? YES : NO; - - return YES; -} - -- (BOOL) isReadableFileAtPath: (NSString *) path { - if (path == nil) { - return NO; - } - DWORD attributes = GetFileAttributesW([path fileSystemRepresentationW]); - - if (attributes == -1) - return NO; - - return YES; -} - -- (BOOL) isWritableFileAtPath: (NSString *) path { - if (path == nil) { - return NO; - } - DWORD attributes = GetFileAttributesW([path fileSystemRepresentationW]); - - if (attributes == -1) - return NO; - - if (attributes & FILE_ATTRIBUTE_READONLY) - return NO; - - return YES; -} - -- (BOOL) isExecutableFileAtPath: (NSString *) path { - if (path == nil) { - return NO; - } - DWORD attributes = GetFileAttributesW([path fileSystemRepresentationW]); - - if (attributes == -1) - return NO; - - if (attributes & (FILE_ATTRIBUTE_DIRECTORY)) - return NO; - - return [[[path pathExtension] uppercaseString] isEqualToString: @"EXE"]; -} - -- (NSString *) displayNameAtPath: (NSString *) path { - NSString *result = [super displayNameAtPath: path]; - if ([result isEqualToString: [path lastPathComponent]]) { - // Check if Win32 can find a better name - const unichar *pathCString = [path fileSystemRepresentationW]; - SHFILEINFOW fileInfo; - if (SHGetFileInfoW(pathCString, FILE_ATTRIBUTE_NORMAL, &fileInfo, - sizeof(SHFILEINFOW), SHGFI_DISPLAYNAME)) { - result = [NSString stringWithFormat: @"%S", fileInfo.szDisplayName]; - } - } - return result; -} - -#pragma mark - -#pragma mark Getting Representations of File Paths - -- (NSString *) stringWithFileSystemRepresentation: (const char *) string - length: (NSUInteger) length -{ - return [NSString stringWithCString: string length: length]; -} - -- (const unichar *) fileSystemRepresentationWithPathW: (NSString *) path { - path = TranslatePath(path); - - return (const unichar *) [path - cStringUsingEncoding: NSUnicodeStringEncoding]; -} - -- (const char *) fileSystemRepresentationWithPath: (NSString *) path { - path = TranslatePath(path); - return [path cString]; -} - -#pragma mark - -#pragma mark Managing the Current Directory - -- (BOOL) changeCurrentDirectoryPath: (NSString *) path { - if (path == nil) { - return NO; - } - if (SetCurrentDirectoryW([self fileSystemRepresentationWithPathW: path])) - return YES; - Win32Assert("SetCurrentDirectory"); - - return NO; -} - -- (NSString *) currentDirectoryPath { - unichar path[MAX_PATH + 1]; - DWORD length; - - length = GetCurrentDirectoryW(MAX_PATH + 1, path); - Win32Assert("GetCurrentDirectory"); - - return [NSString stringWithCharacters: path length: length]; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSHandleMonitorSet_win32.h b/Foundation/platform_windows/NSHandleMonitorSet_win32.h deleted file mode 100644 index 92acfa0a..00000000 --- a/Foundation/platform_windows/NSHandleMonitorSet_win32.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSMutableSet; -@class NSHandleMonitor_win32; - -@interface NSHandleMonitorSet_win32 : NSInputSourceSet { - NSMutableSet *_monitors; - NSInputSource *_eventInputSource; -} - -- init; - -- (NSUInteger) count; - -- (NSHandleMonitor_win32 *) waitForHandleActivityBeforeDate: (NSDate *) date - mode: (NSString *) mode; - -@end diff --git a/Foundation/platform_windows/NSHandleMonitorSet_win32.m b/Foundation/platform_windows/NSHandleMonitorSet_win32.m deleted file mode 100644 index 3f66adfc..00000000 --- a/Foundation/platform_windows/NSHandleMonitorSet_win32.m +++ /dev/null @@ -1,183 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#include - -@interface NSInputSource (Win32EventInputSource) -- (NSUInteger) waitForEventsAndMultipleObjects: (HANDLE *) objects - count: (NSUInteger) count - milliseconds: (DWORD) milliseconds; -@end - -@implementation NSHandleMonitorSet_win32 - -- init { - [super init]; - _eventInputSource = nil; - return self; -} - -- (void) dealloc { - [_eventInputSource release]; - [super dealloc]; -} - -- (NSUInteger) count { - return [[self validInputSources] count]; -} - -- (BOOL) recognizesInputSource: (NSInputSource *) source { - if ([source isKindOfClass: [NSHandleMonitor_win32 class]]) - return YES; - if ([source respondsToSelector: @selector - (waitForEventsAndMultipleObjects:count:milliseconds:)]) - return YES; - return NO; -} - -- (void) addInputSource: (NSInputSource *) source { - [super addInputSource: source]; - - if ([source respondsToSelector: @selector - (waitForEventsAndMultipleObjects:count:milliseconds:)]) { - [_eventInputSource autorelease]; - _eventInputSource = [source retain]; - } -} - -- (void) removeInputSource: (NSInputSource *) source { - [super removeInputSource: source]; - - if (source == _eventInputSource) { - [_eventInputSource autorelease]; - _eventInputSource = nil; - } -} - -- (NSHandleMonitor_win32 *) monitorWithHandle: (void *) handle { - NSEnumerator *state = [[self validInputSources] objectEnumerator]; - NSHandleMonitor_win32 *monitor; - - while ((monitor = [state nextObject]) != nil) { - if ([monitor isKindOfClass: [NSHandleMonitor_win32 class]] && - ([monitor handle] == handle)) - return monitor; - } - return nil; -} - -- (NSHandleMonitor_win32 *) waitForHandleActivityBeforeDate: (NSDate *) date - mode: (NSString *) mode -{ - NSSet *validSources = [self validInputSources]; - NSEnumerator *state = [validSources objectEnumerator]; - NSHandleMonitor_win32 *monitor; - NSTimeInterval interval = [date timeIntervalSinceNow]; - DWORD msec; - HANDLE objectList[[validSources count]]; - int objectCount = 0; - DWORD waitResult; - - objectCount = 0; - while ((monitor = [state nextObject]) != nil) - if ([monitor isKindOfClass: [NSHandleMonitor_win32 class]]) - objectList[objectCount++] = [monitor handle]; - - if (interval > 1000000) - interval = 10000; - if (interval < 0) - interval = 0; - - msec = interval * 1000; - - NSCooperativeThreadBlocking(); - - if (_eventInputSource != nil) { - waitResult = - [_eventInputSource waitForEventsAndMultipleObjects: objectList - count: objectCount - milliseconds: msec]; - } else { - if (objectCount == 0) { - Win32ThreadSleepForTimeInterval(interval); - waitResult = WAIT_TIMEOUT; - } else { - waitResult = WaitForMultipleObjects(objectCount, objectList, FALSE, - msec); - } - } - - NSCooperativeThreadWaiting(); - - if (waitResult == WAIT_FAILED) - Win32Assert("WaitForMultipleObjects"); - - if (waitResult == WAIT_TIMEOUT) - return nil; - - if (waitResult >= WAIT_OBJECT_0 && - (waitResult < WAIT_OBJECT_0 + objectCount)) { - DWORD index = waitResult - WAIT_OBJECT_0; - NSHandleMonitor_win32 *result = - [self monitorWithHandle: objectList[index]]; - - [result setCurrentActivity: Win32HandleSignaled]; - return result; - } - - if (waitResult >= WAIT_ABANDONED_0 && - waitResult < (WAIT_ABANDONED_0 + objectCount)) { - DWORD index = waitResult - WAIT_ABANDONED_0; - NSHandleMonitor_win32 *result = - [self monitorWithHandle: objectList[index]]; - - [result setCurrentActivity: Win32HandleAbandoned]; - return result; - } - - return nil; -} - -- (BOOL) waitForInputInMode: (NSString *) mode beforeDate: (NSDate *) date { - - if ([[self validInputSources] count] > 0) { - NSHandleMonitor_win32 *monitor = - [self waitForHandleActivityBeforeDate: date mode: mode]; - - [monitor notifyDelegateOfCurrentActivity]; - - return (monitor != nil) ? YES : NO; - } - - [NSThread sleepUntilDate: date]; - return NO; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSHandleMonitor_win32.h b/Foundation/platform_windows/NSHandleMonitor_win32.h deleted file mode 100644 index 9bc837e6..00000000 --- a/Foundation/platform_windows/NSHandleMonitor_win32.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -enum { - Win32HandleSignaled = 0, - Win32HandleAbandoned = 1, -}; - -@interface NSHandleMonitor_win32 : NSInputSource { - void *_handle; - id _delegate; - NSUInteger _currentActivity; - BOOL _isValid; -} - -+ (NSHandleMonitor_win32 *) handleMonitorWithHandle: (void *) handle; - -- initWithHandle: (void *) handle; - -- (void *) handle; - -- (void) setDelegate: delegate; - -- (void) setCurrentActivity: (NSUInteger) activity; - -- (void) notifyDelegateOfCurrentActivity; - -@end - -@interface NSObject (NSHandleMonitor_win32) -- (void) handleMonitorIndicatesSignaled: (NSHandleMonitor_win32 *) monitor; -- (void) handleMonitorIndicatesAbandoned: (NSHandleMonitor_win32 *) monitor; -@end diff --git a/Foundation/platform_windows/NSHandleMonitor_win32.m b/Foundation/platform_windows/NSHandleMonitor_win32.m deleted file mode 100644 index e27c7cfc..00000000 --- a/Foundation/platform_windows/NSHandleMonitor_win32.m +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#import -#import - -#include - -@implementation NSHandleMonitor_win32 - -+ (NSHandleMonitor_win32 *) handleMonitorWithHandle: (void *) handle { - return [[[self allocWithZone: NULL] initWithHandle: handle] autorelease]; -} - -- initWithHandle: (void *) handle { - _handle = handle; - _isValid = YES; - return self; -} - -- (void *) handle { - return _handle; -} - -- (BOOL) isValid { - return _isValid; -} - -- (void) invalidate { - _isValid = NO; -} - -- (void) setDelegate: delegate { - _delegate = delegate; -} - -- (void) setCurrentActivity: (NSUInteger) activity { - _currentActivity = activity; -} - -- (void) notifyDelegateOfCurrentActivity { - - if (_currentActivity == Win32HandleSignaled) - [_delegate handleMonitorIndicatesSignaled: self]; - - if (_currentActivity == Win32HandleAbandoned) - [_delegate handleMonitorIndicatesAbandoned: self]; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSLocale+windows.h b/Foundation/platform_windows/NSLocale+windows.h deleted file mode 100644 index eeedcc24..00000000 --- a/Foundation/platform_windows/NSLocale+windows.h +++ /dev/null @@ -1,4 +0,0 @@ -#import - -@interface NSLocale (windows) -@end diff --git a/Foundation/platform_windows/NSLocale+windows.m b/Foundation/platform_windows/NSLocale+windows.m deleted file mode 100644 index 2e0c2d18..00000000 --- a/Foundation/platform_windows/NSLocale+windows.m +++ /dev/null @@ -1,102 +0,0 @@ -#ifdef WINDOWS -#import "NSLocale+windows.h" -#import -#import -#import - -#include - -@implementation NSLocale (windows) - -static NSMutableDictionary *sLocales = nil; - -static BOOL CALLBACK enumLocalesProc(LPTSTR lpLocaleString) { - // Someone at MS thought that passing a int as a string is a good idea - LCID lcid = 0; - sscanf(lpLocaleString, "%x", &lcid); - - // Gets the ISO lang and coutry for that locale and store the ISO<->LCID - // association - uint8_t langISO[9]; - GetLocaleInfo(lcid, LOCALE_SISO639LANGNAME, langISO, - sizeof(langISO) / sizeof(langISO[0])); - uint8_t countryISO[9]; - GetLocaleInfo(lcid, LOCALE_SISO3166CTRYNAME, countryISO, - sizeof(countryISO) / sizeof(countryISO[0])); - - [sLocales setObject: [NSNumber numberWithUnsignedLong: lcid] - forKey: [NSString stringWithFormat: @"%s_%s", langISO, - countryISO]]; - return YES; -} - -BOOL NSCurrentLocaleIsMetric() { - uint16_t buffer[2]; - int size = GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_IMEASURE, buffer, 2); - - if (buffer[0] == '0') - return YES; - - return NO; -} - -+ (NSDictionary *) _platformLocaleAdditionalDescriptionForIdentifier: - (NSString *) string -{ - @synchronized(self) { - if (sLocales == nil) { - // Get all of the installed locales ISO names & LCID - sLocales = [[NSMutableDictionary alloc] initWithCapacity: 50]; - EnumSystemLocales((LOCALE_ENUMPROC) enumLocalesProc, - LCID_INSTALLED); - } - } - NSMutableDictionary *desc = [NSMutableDictionary dictionary]; - - NSNumber *n = [sLocales objectForKey: string]; - if (n) { - LCID lcid = [n unsignedLongValue]; - // Gets the metrics info - uint16_t metrics[2]; - int size = GetLocaleInfoW(lcid, LOCALE_IMEASURE, metrics, - sizeof(metrics) / sizeof(metrics[0])); - if (size) { - [desc setObject: [NSNumber numberWithBool: metrics[0] == '0'] - forKey: NSLocaleUsesMetricSystem]; - } - - // Get the decimal separator - uint16_t decimal[4]; - size = GetLocaleInfoW(lcid, LOCALE_SDECIMAL, decimal, - sizeof(decimal) / sizeof(decimal[0])); - if (size) { - [desc setObject: [NSString stringWithFormat: @"%S", decimal] - forKey: NSLocaleDecimalSeparator]; - } - - // Get the currency symbol - uint16_t currency[19]; - size = GetLocaleInfoW(lcid, LOCALE_SCURRENCY, currency, - sizeof(currency) / sizeof(currency[0])); - if (size) { - [desc setObject: [NSString stringWithFormat: @"%S", currency] - forKey: NSLocaleCurrencySymbol]; - } - // TODO - gets date format, etc. - } - return desc; -} - -+ (NSString *) _platformCurrentLocaleIdentifier { - uint8_t langISO[9]; - GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, langISO, - sizeof(langISO) / sizeof(langISO[0])); - uint8_t countryISO[9]; - GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME, countryISO, - sizeof(countryISO) / sizeof(countryISO[0])); - - return [NSString stringWithFormat: @"%s_%s", langISO, countryISO]; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSLock_win32.h b/Foundation/platform_windows/NSLock_win32.h deleted file mode 100644 index c3307ac4..00000000 --- a/Foundation/platform_windows/NSLock_win32.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#include - -@interface NSLock_win32 : NSLock { - HANDLE _lock; -} - -@end diff --git a/Foundation/platform_windows/NSLock_win32.m b/Foundation/platform_windows/NSLock_win32.m deleted file mode 100644 index 92f8f545..00000000 --- a/Foundation/platform_windows/NSLock_win32.m +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#import - -@implementation NSLock_win32 - -- init { - _lock = CreateSemaphore(NULL, 1, 1, NULL); - return self; -} - -- (void) dealloc { - CloseHandle(_lock); - [super dealloc]; -} - -- (void) lock { - WaitForSingleObject(_lock, INFINITE); -} - -- (void) unlock { - ReleaseSemaphore(_lock, 1, NULL); -} - -- (BOOL) lockBeforeDate: (NSDate *) date { - DWORD timeout = [date timeIntervalSinceNow] * 1000.0; - return (WaitForSingleObject(_lock, timeout) == 0); -} - -- (BOOL) tryLock { - return (WaitForSingleObject(_lock, 0) == 0); -} -@end -#endif diff --git a/Foundation/platform_windows/NSMemoryFunctions_win32.m b/Foundation/platform_windows/NSMemoryFunctions_win32.m deleted file mode 100644 index ae1404a7..00000000 --- a/Foundation/platform_windows/NSMemoryFunctions_win32.m +++ /dev/null @@ -1,208 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS - -#import -#import -#import -#import -#import -#import - -#include -#include - -NSUInteger NSPageSize(void) { - SYSTEM_INFO info; - - GetSystemInfo(&info); - - return info.dwPageSize; -} - -void *NSAllocateMemoryPages(NSUInteger byteCount) { - void *buffer = VirtualAlloc(NULL, byteCount, MEM_RESERVE | MEM_COMMIT, - PAGE_READWRITE); - if (buffer == NULL) { - DWORD lastError = GetLastError(); - fprintf(stderr, "NSAllocateMemoryPages(%d) failed: WinErr: %d\n", - byteCount, lastError); - } - return buffer; -} - -void NSDeallocateMemoryPages(void *pointer, NSUInteger byteCount) { - VirtualFree(pointer, byteCount, MEM_RELEASE | MEM_DECOMMIT); -} - -void NSCopyMemoryPages(const void *src, void *dst, NSUInteger byteCount) { - if (src && dst) { - const uint8_t *srcb = src; - uint8_t *dstb = dst; - NSUInteger i; - - for (i = 0; i < byteCount; i++) - dstb[i] = srcb[i]; - } -} - -NSUInteger NSRealMemoryAvailable(void) { - MEMORYSTATUS status; - - status.dwLength = sizeof(status); - - GlobalMemoryStatus(&status); - - return status.dwTotalPhys; -} - -static DWORD Win32ThreadStorageIndex() { - static DWORD tlsIndex = TLS_OUT_OF_INDEXES; - - if (tlsIndex == TLS_OUT_OF_INDEXES) - tlsIndex = TlsAlloc(); - - if (tlsIndex == TLS_OUT_OF_INDEXES) - Win32Assert("TlsAlloc"); - - return tlsIndex; -} - -NSZone *NSCreateZone(NSUInteger startSize, NSUInteger granularity, BOOL canFree) -{ - return NULL; -} - -NSZone *NSDefaultMallocZone(void) { - return NULL; -} - -void NSRecycleZone(NSZone *zone) { -} - -void NSSetZoneName(NSZone *zone, NSString *name) { -} - -NSString *NSZoneName(NSZone *zone) { - return @"zone"; -} - -NSZone *NSZoneFromPointer(void *pointer) { - return NULL; -} - -void *NSZoneCalloc(NSZone *zone, NSUInteger numElems, NSUInteger numBytes) { - void *buffer = calloc(numElems, numBytes); - if (buffer == NULL) { - fprintf(stderr, "NSZoneCalloc(zone, %u, %u) failed. Error: %s\n", - numElems, numBytes, strerror(errno)); - } - return buffer; -} - -void NSZoneFree(NSZone *zone, void *pointer) { - free(pointer); -} - -void *NSZoneMalloc(NSZone *zone, NSUInteger size) { - void *buffer = malloc(size); - if (buffer == NULL) { - fprintf(stderr, "NSZoneMalloc(zone, %u) failed. Error: %s\n", size, - strerror(errno)); - } - return buffer; -} - -void *NSZoneRealloc(NSZone *zone, void *pointer, NSUInteger size) { - void *buffer = NULL; - if (pointer == NULL) { - buffer = malloc(size); - } else { - buffer = realloc(pointer, size); - } - if (buffer == NULL && size > 0) { - fprintf(stderr, "NSZoneRealloc(zone, %p, %u) failed. Error: %s\n", - pointer, size, strerror(errno)); - } - return buffer; -} - -void NSPlatformSetCurrentThread(NSThread *thread) { - TlsSetValue(Win32ThreadStorageIndex(), thread); - if (thread) { - // Thread creation - be sure we have COM initialized. Some API use it - CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); - } else { - // Uninitialize COM for the thread - CoUninitialize(); - } -} - -NSThread *NSPlatformCurrentThread() { - NSThread *thread = TlsGetValue(Win32ThreadStorageIndex()); - - if (!thread) { - // maybe NSThread is not +initialize'd - [NSThread class]; - thread = TlsGetValue(Win32ThreadStorageIndex()); - if (!thread) { - thread = [NSThread alloc]; - if (thread) { - NSPlatformSetCurrentThread(thread); { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - [thread init]; - [pool release]; - } - } - } - if (!thread) { - [NSException raise: NSInternalInconsistencyException - format: @"No current thread"]; - } - } - - return thread; -} - -/* Create a new thread of execution. */ -NSUInteger NSPlatformDetachThread(unsigned (*__stdcall func)(void *arg), - void *arg, NSError **errorp) -{ - uint32_t threadId = 0; - HANDLE win32Handle = - (HANDLE) _beginthreadex(NULL, 0, func, arg, 0, &threadId); - - if (!win32Handle) { - threadId = 0; // just to be sure - } - CloseHandle(win32Handle); - return threadId; -} - -void FoundationThreadCleanup() { - NSThread *thread = TlsGetValue(Win32ThreadStorageIndex()); - - if (thread) { - [thread setExecuting: NO]; - [thread setFinished: YES]; - [thread release]; - NSPlatformSetCurrentThread(nil); - } -} -#endif diff --git a/Foundation/platform_windows/NSParentDeathMonitor_win32.h b/Foundation/platform_windows/NSParentDeathMonitor_win32.h deleted file mode 100644 index c9a260a0..00000000 --- a/Foundation/platform_windows/NSParentDeathMonitor_win32.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#include - -@class NSHandleMonitor_win32; - -@interface NSParentDeathMonitor_win32 : NSObject { - NSHandleMonitor_win32 *_monitor; - HANDLE _parentHandle; -} - -- (NSHandleMonitor_win32 *) handleMonitor; - -@end diff --git a/Foundation/platform_windows/NSParentDeathMonitor_win32.m b/Foundation/platform_windows/NSParentDeathMonitor_win32.m deleted file mode 100644 index 8fe50fe7..00000000 --- a/Foundation/platform_windows/NSParentDeathMonitor_win32.m +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifdef WINDOWS -#import -#import -#import -#import - -@implementation NSParentDeathMonitor_win32 - -- init { - _parentHandle = NULL; - _monitor = nil; - return self; -} - -- (void) handleMonitorIndicatesSignaled: (NSHandleMonitor_win32 *) monitor { - DWORD exitCode; - - GetExitCodeProcess(_parentHandle, &exitCode); - - if (exitCode != STILL_ACTIVE) - exit(0); -} - -- (NSHandleMonitor_win32 *) handleMonitor { - if (_monitor == nil) { - int processId = [[NSUserDefaults standardUserDefaults] - integerForKey: @"ParentProcessId"]; - - if (processId == 0 || (_parentHandle = OpenProcess( - SYNCHRONIZE | PROCESS_QUERY_INFORMATION, - NO, processId)) == NULL) { - [self dealloc]; - return nil; - } - - _monitor = [[NSHandleMonitor_win32 allocWithZone: NULL] - initWithHandle: _parentHandle]; - [_monitor setDelegate: self]; - } - return _monitor; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSPersistantDomain_win32.h b/Foundation/platform_windows/NSPersistantDomain_win32.h deleted file mode 100644 index 4320aed0..00000000 --- a/Foundation/platform_windows/NSPersistantDomain_win32.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#include - -@class NSArray, NSDictionary; - -@interface NSPersistantDomain_win32 : NSPersistantDomain { - NSArray *_path; - HKEY _handle; - NSMutableDictionary *_cache; -} - -+ (NSPersistantDomain_win32 *) persistantDomainWithName: (NSString *) name; - -- (NSArray *) allKeys; -- (NSEnumerator *) keyEnumerator; -- objectForKey: (NSString *) key; -- (void) setObject: object forKey: (NSString *) key; -- (void) removeObjectForKey: (NSString *) key; - -@end diff --git a/Foundation/platform_windows/NSPersistantDomain_win32.m b/Foundation/platform_windows/NSPersistantDomain_win32.m deleted file mode 100644 index fb36f8b5..00000000 --- a/Foundation/platform_windows/NSPersistantDomain_win32.m +++ /dev/null @@ -1,189 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#import -#import -#import -#import -#import -#import -#import - -#include - -@implementation NSPersistantDomain_win32 - -- (HKEY) rootHandle { - NSInteger i, count = [_path count]; - HKEY previous = HKEY_CURRENT_USER; - HKEY current = NULL; - DWORD disposition; - LONG error; - - for (i = 0; i < count; i++) { - error = RegCreateKeyEx(previous, [[_path objectAtIndex: i] cString], 0, - "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, - NULL, ¤t, &disposition); - - if (error != ERROR_SUCCESS) - NSLog(@"RegCreateKeyEx failed %@", _path); - - if (previous != HKEY_CURRENT_USER) - RegCloseKey(previous); - - previous = current; - } - - return current; -} - -- initWithName: (NSString *) name { - // Allow software to specify a more meaningful registry group key - NSString *company = [[NSBundle mainBundle] - objectForInfoDictionaryKey: @"Win32RegistryCompanyIdentifier"]; - if (company == nil) { - company = @"Cocotron"; - } - _path = [[NSArray arrayWithObjects: @"Software", company, name, nil] - retain]; - _handle = [self rootHandle]; - _cache = [NSMutableDictionary new]; - return self; -} - -- (void) dealloc { - if (_handle != NULL) { - RegFlushKey(_handle); - RegCloseKey(_handle); - } - [_path release]; - [_cache release]; - [super dealloc]; -} - -+ (NSPersistantDomain_win32 *) persistantDomainWithName: (NSString *) name { - return [[[self allocWithZone: NULL] initWithName: name] autorelease]; -} - -- (NSArray *) allKeys { - NSMutableArray *result = [NSMutableArray array]; - LONG error; - int index; - char valueName[8192]; - DWORD length; - - for (index = 0;; index++) { - length = 8192; - error = RegEnumValue(_handle, index, valueName, &length, NULL, NULL, - NULL, NULL); - if (error != ERROR_SUCCESS) - break; - [result addObject: [NSString stringWithCString: valueName - length: length]]; - } - - return result; -} - -- (NSEnumerator *) keyEnumerator { - return [[self allKeys] objectEnumerator]; -} - -- objectForKey: (NSString *) key { - id result = [_cache objectForKey: key]; - - if (result == nil) { - const char *keyCString = [key cString]; - LONG error; - DWORD type; - void *buffer = NULL; - DWORD length = 0; - - // NSLog(@"-[%@ %s] %@ %@",[self class],sel_getName(_cmd),_path,key); - - error = RegQueryValueExA(_handle, keyCString, NULL, &type, NULL, - &length); - if (error != ERROR_SUCCESS) { - // NSLog(@"RegQueryValueEx failed %@ %@",_path,key); - return nil; - } - - buffer = NSZoneMalloc(NULL, length); - - error = RegQueryValueExA(_handle, keyCString, NULL, &type, buffer, - &length); - if (error != ERROR_SUCCESS) { - return nil; - } - - NSData *data = [NSData dataWithBytesNoCopy: buffer - length: length - freeWhenDone: YES]; - - NS_DURING - NSPropertyListFormat format; - NSString *errorDescription = nil; - - result = [NSPropertyListSerialization - propertyListFromData: data - mutabilityOption: NSPropertyListImmutable - format: &format - errorDescription: &errorDescription]; - NS_HANDLER - result = nil; - NS_ENDHANDLER - - [_cache setObject: result forKey: key]; - } - - return result; -} - -- (void) setObject: object forKey: (NSString *) key { - LONG error; - NSString *errorDescription = nil; - NSData *data = [NSPropertyListSerialization - dataFromPropertyList: object - format: NSPropertyListXMLFormat_v1_0 - errorDescription: &errorDescription]; - - [_cache removeObjectForKey: key]; - - error = RegSetValueExA(_handle, [key cString], 0, REG_SZ, [data bytes], - [data length]); - if (error != ERROR_SUCCESS) { - NSLog(@"RegSetValueEx failed %@ %@", _path, key); - } -} - -- (void) removeObjectForKey: (NSString *) key { - - if ([_cache objectForKey: key]) { - [_cache removeObjectForKey: key]; - - LONG error = RegDeleteValueA(_handle, [key cString]); - if (error != ERROR_SUCCESS) { - NSLog(@"RegDeleteValue failed %@ %@", _path, key); - } - } -} - -@end -#endif diff --git a/Foundation/platform_windows/NSPipe_win32.h b/Foundation/platform_windows/NSPipe_win32.h deleted file mode 100644 index 6ccd0245..00000000 --- a/Foundation/platform_windows/NSPipe_win32.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSFileHandle_win32; - -@interface NSPipe_win32 : NSPipe { - NSFileHandle_win32 *_fileHandleForReading; - NSFileHandle_win32 *_fileHandleForWriting; -} - -@end diff --git a/Foundation/platform_windows/NSPipe_win32.m b/Foundation/platform_windows/NSPipe_win32.m deleted file mode 100644 index 145db2b5..00000000 --- a/Foundation/platform_windows/NSPipe_win32.m +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifdef WINDOWS -#import -#import - -@implementation NSPipe_win32 - -- (NSFileHandle *) fileHandleForReading { - return _fileHandleForReading; -} - -- (NSFileHandle *) fileHandleForWriting { - return _fileHandleForWriting; -} - -- init { - HANDLE readHandle, writeHandle; - SECURITY_ATTRIBUTES sa; - - sa.nLength = sizeof(SECURITY_ATTRIBUTES); - sa.lpSecurityDescriptor = NULL; - sa.bInheritHandle = TRUE; - - if (!CreatePipe(&readHandle, &writeHandle, &sa, 0)) { - [self dealloc]; - return nil; - } - - _fileHandleForReading = - [[NSFileHandle_win32 alloc] initWithHandle: readHandle - closeOnDealloc: YES]; - _fileHandleForWriting = - [[NSFileHandle_win32 alloc] initWithHandle: writeHandle - closeOnDealloc: YES]; - - return self; -} - -- (void) dealloc { - [_fileHandleForReading release]; - [_fileHandleForWriting release]; - [super dealloc]; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSPlatform_win32.h b/Foundation/platform_windows/NSPlatform_win32.h deleted file mode 100644 index d5db6383..00000000 --- a/Foundation/platform_windows/NSPlatform_win32.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#include - -@class NSParentDeathMonitor_win32; - -@interface NSPlatform_win32 : NSPlatform { - NSParentDeathMonitor_win32 *_parentDeathMonitor; -} - -@end - -void _Win32Assert(const char *code, int line, const char *file); - -#define Win32Assert(call) _Win32Assert(call, __LINE__, __FILE__) - -NSTimeInterval Win32TimeIntervalFromFileTime(FILETIME fileTime); -void Win32ThreadSleepForTimeInterval(NSTimeInterval interval); - -BOOL NSPlatformGreaterThanOrEqualToWindowsXP(void); -BOOL NSPlatformGreaterThanOrEqualToWindows2000(void); diff --git a/Foundation/platform_windows/NSPlatform_win32.m b/Foundation/platform_windows/NSPlatform_win32.m deleted file mode 100644 index 65a0b02e..00000000 --- a/Foundation/platform_windows/NSPlatform_win32.m +++ /dev/null @@ -1,627 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include -#import -#import - -#import - -NSString *NSPlatformClassName = @"NSPlatform_win32"; - -#define MAXHOSTNAMELEN 512 - -@class NSConditionLock_win32; - -static NSString *convertBackslashToSlash(NSString *string) { - NSUInteger i, length = [string length]; - unichar buffer[length]; - - [string getCharacters: buffer]; - - for (i = 0; i < length; i++) { - if (buffer[i] == '\\') - buffer[i] = '/'; - } - - return [NSString stringWithCharacters: buffer length: length]; -} - -static NSError *NSErrorForGetLastErrorCode(DWORD code) { - NSString *localizedDescription = - @"NSErrorForGetLastError localizedDescription"; - unichar *message; - - FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPWSTR) &message, 0, NULL); - localizedDescription = NSStringFromNullTerminatedUnicode(message); - - LocalFree(message); - - return [NSError - errorWithDomain: NSWin32ErrorDomain - code: code - userInfo: - [NSDictionary - dictionaryWithObject: localizedDescription - forKey: NSLocalizedDescriptionKey]]; -} - -static NSError *NSErrorForGetLastError() { - return NSErrorForGetLastErrorCode(GetLastError()); -} - -@implementation NSPlatform_win32 - -static NSString *processName() { - return [[convertBackslashToSlash([NSString - stringWithUTF8String: objc_mainImageName()]) lastPathComponent] - stringByDeletingPathExtension]; -} - -- init { - NSString *entry; - const char *module = class_getImageName([self class]); - HKEY handle; - DWORD disposition, allowed; - int i; - - [NSSocket_windows class]; // initialize winsock - - entry = [@"SYSTEM\\CurrentControlSet\\Services\\Eventlog\\Application\\" - stringByAppendingString: processName()]; - - if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, [entry cString], 0, NULL, - REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &handle, - &disposition)) - ; // oh well, an error - - if (RegSetValueEx(handle, "EventMessageFile", 0, REG_EXPAND_SZ, - (LPBYTE) module, strlen(module) + 1)) - ; // oh well, an error - - allowed = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | - EVENTLOG_INFORMATION_TYPE; - if (RegSetValueEx(handle, "TypesSupported", 0, REG_DWORD, (LPBYTE) &allowed, - sizeof(DWORD))) - ; // oh well, an error - - RegCloseKey(handle); - - _parentDeathMonitor = [[NSParentDeathMonitor_win32 alloc] init]; - - for (i = 1; i < __argc; i++) - if (strcmp(__argv[i], "-Console") == 0) { - // we could check for presence of AttachConsole and use that instead - AllocConsole(); - } - - return self; -} - -- (NSInputSource *) parentDeathInputSource { - return [_parentDeathMonitor handleMonitor]; -} - -- (Class) taskClass { - return [NSTask_win32 class]; -} - -- (Class) pipeClass { - return [NSPipe_win32 class]; -} - -- (Class) lockClass { - return [NSLock_win32 class]; -} - -- (Class) conditionLockClass { - return [NSConditionLock_win32 class]; -} - -- (Class) recursiveLockClass { - return [NSRecursiveLock_win32 class]; -} - -- (Class) persistantDomainClass { - return [NSPersistantDomain_win32 class]; -} - -- (Class) timeZoneClass { - return [NSTimeZone_win32 class]; -} - -- (Class) conditionClass { - return [NSCondition_win32 class]; -} - -- (NSString *) userName { - NSString *result = [[[NSProcessInfo processInfo] environment] - objectForKey: @"USERNAME"]; - - if (result == nil) - [NSException raise: NSInvalidArgumentException - format: @"NSProcessInfo environment USERNAME failed"]; - - return result; -} - -- (NSString *) fullUserName { - NSString *result = [[[NSProcessInfo processInfo] environment] - objectForKey: @"USERNAME"]; - - if (result == nil) - [NSException raise: NSInvalidArgumentException - format: @"NSProcessInfo environment USERNAME failed"]; - - return result; -} - -- (NSString *) homeDirectory { - NSString *drive = [[[NSProcessInfo processInfo] environment] - objectForKey: @"HOMEDRIVE"]; - NSString *path = [[[NSProcessInfo processInfo] environment] - objectForKey: @"HOMEPATH"]; - - if (drive == nil) - return nil; - - if (path == nil) - return nil; - - return convertBackslashToSlash( - [drive stringByAppendingPathComponent: path]); -} - -- (NSString *) libraryDirectory { - NSString *appdata = [[[NSProcessInfo processInfo] environment] - objectForKey: @"APPDATA"]; - - return convertBackslashToSlash( - [appdata stringByAppendingPathComponent: @"CocotronLibrary"]); -} - -- (NSString *) temporaryDirectory { - NSString *result = - [[[NSProcessInfo processInfo] environment] objectForKey: @"TEMP"]; - - if (result == nil) - result = [[[NSProcessInfo processInfo] environment] - objectForKey: @"TMP"]; - - if (result == nil) { - result = [[[NSProcessInfo processInfo] environment] - objectForKey: @"windir"]; - result = [result stringByAppendingPathComponent: @"Temp"]; - } - - if (result == nil) - result = [[self homeDirectory] stringByAppendingPathComponent: @"Temp"]; - - return convertBackslashToSlash(result); -} - -NSString *const NSPlatformExecutableDirectory = @"Windows"; -NSString *const NSPlatformResourceNameSuffix = @"windows"; - -NSString *const NSPlatformExecutableFileExtension = @"exe"; -NSString *const NSPlatformLoadableObjectFileExtension = @"dll"; -NSString *const NSPlatformLoadableObjectFilePrefix = @""; - -- (NSArray *) arguments { - NSMutableArray *result = [NSMutableArray array]; - int i; - - // Parse the program arguments as unicode - LPWSTR cmd = GetCommandLineW(); - int argc = 0; - LPWSTR *argv = CommandLineToArgvW(cmd, &argc); - if (argv) { - for (i = 0; i < argc; i++) { - [result addObject: [NSString - stringWithCharacters: (unichar *) argv[i] - length: wcslen(argv[i])]]; - } - LocalFree(argv); - } - - return result; -} - -- (NSDictionary *) environment { - id *objects, *keys; - NSUInteger count; - - char *envString = GetEnvironmentStrings(); - char **env; - char *keyValue; - int i, len, max; - char *run; - - for (count = 0, run = envString; *run; count++) - run += strlen(run) + 1; - - env = __builtin_alloca(sizeof(char *) * (count + 1)); - for (count = 0, run = envString; *run; count++) { - env[count] = run; - run += strlen(run) + 1; - } - env[count] = NULL; - - // env is unix style environment at this point - - max = 0; - for (count = 0; env[count]; count++) - if ((len = strlen(env[count])) > max) - max = len; - - keyValue = __builtin_alloca(max + 1); - objects = __builtin_alloca(sizeof(id) * count); - keys = __builtin_alloca(sizeof(id) * count); - - for (count = 0; env[count]; count++) { - len = strlen(strcpy(keyValue, env[count])); - - for (i = 0; i < len; i++) - if (keyValue[i] == '=') - break; - keyValue[i] = '\0'; - - objects[count] = [NSString stringWithCString: keyValue + i + 1]; - keys[count] = [NSString stringWithCString: keyValue]; - [self checkEnvironmentKey: keys[count] value: objects[count]]; - } - - FreeEnvironmentStrings(envString); - - return [[NSDictionary allocWithZone: NULL] initWithObjects: objects - forKeys: keys - count: count]; -} - -NSTimeInterval NSPlatformTimeIntervalSinceReferenceDate() { - SYSTEMTIME systemTime; - FILETIME fileTime; - - GetSystemTime(&systemTime); - SystemTimeToFileTime(&systemTime, &fileTime); - - return Win32TimeIntervalFromFileTime(fileTime); -} - -int NSPlatformProcessID() { - return GetCurrentProcessId(); -} - -NSUInteger NSPlatformThreadID() { - return GetCurrentThreadId(); -} - -- (NSString *) hostName { - DWORD length = MAX_COMPUTERNAME_LENGTH; - char name[length + 1]; - - if (!GetComputerName(name, &length)) { - name[0] = '\0'; - return NO; - } - - return [NSString stringWithCString: name]; -} - -- (NSString *) DNSHostName { - char cString[MAXHOSTNAMELEN + 1]; - int err; - - cString[0] = '\0'; - - if ((err = gethostname(cString, MAXHOSTNAMELEN)) != 0) { - [NSException raise: NSInternalInconsistencyException - format: @"gethostname failed with %d", err]; - } - - if (cString[0] == '\0') { - [NSException raise: NSInternalInconsistencyException - format: @"gethostname() failed with zero-length string"]; - } - - return [NSString stringWithCString: cString]; -} - -- (NSArray *) addressesForDNSHostName: (NSString *) name { - NSMutableArray *result = [NSMutableArray array]; - char cString[MAXHOSTNAMELEN + 1]; - struct hostent *hp; - - [name getCString: cString maxLength: MAXHOSTNAMELEN]; - - if ((hp = gethostbyname(cString)) == NULL) - return nil; - else { - unsigned long **addr_list = (unsigned long **) hp->h_addr_list; - int i; - - for (i = 0; addr_list[i] != NULL; i++) { - struct in_addr addr; - NSString *string; - - addr.s_addr = *(addr_list[i]); - - string = [NSString stringWithCString: inet_ntoa(addr)]; - - [result addObject: string]; - } - - return result; - } -} - -- (NSString *) hostNameByAddress: (NSString *) address { - struct in_addr addr; - struct hostent *remoteHost; - addr.s_addr = inet_addr([address cString]); - if (addr.s_addr == INADDR_NONE) { - return nil; - } - remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET); - if (remoteHost == NULL) - return nil; - - return [NSString stringWithCString: remoteHost->h_name]; -} - -void NSPlatformSleepThreadForTimeInterval(NSTimeInterval interval) { - Win32ThreadSleepForTimeInterval(interval); -} - -void NSPlatformLogString(NSString *string) { - NSData *data = [NSPropertyListWriter_vintage - nullTerminatedASCIIDataWithString: string]; - const char *cString = [data bytes]; - NSUInteger length = [data length] - 1; // skip 0 - - fprintf(stderr, "%s", cString); - if (length == 0 || cString[length - 1] != '\n') - fprintf(stderr, "\n"); - fflush(stderr); - - // HANDLE handle=OpenEventLog(NULL,[processName() cString]); - static HANDLE eventLog = NULL; - - if (eventLog == NULL) { - eventLog = RegisterEventSource(NULL, [processName() cString]); - } - - ReportEvent(eventLog, EVENTLOG_INFORMATION_TYPE, 1, 1, NULL, 1, 0, &cString, - NULL); - // CloseEventLog(handle); -} - -void *NSPlatformContentsOfFile(NSString *path, NSUInteger *lengthp) { - HANDLE file = CreateFileW([path fileSystemRepresentationW], GENERIC_READ, - FILE_SHARE_READ, NULL, OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, - NULL); - DWORD length, readLength; - void *result; - - if (file == INVALID_HANDLE_VALUE) - return NULL; - - if (GetFileType(file) != FILE_TYPE_DISK) { - CloseHandle(file); - return NULL; - } - - length = GetFileSize(file, NULL); - if (length == 0xFFFFFFFF) { - CloseHandle(file); - return NULL; - } - - result = NSZoneMalloc(NULL, length); - - if (!ReadFile(file, result, length, &readLength, NULL)) { - NSZoneFree(NULL, result); - CloseHandle(file); - return NULL; - } - - CloseHandle(file); - - *lengthp = readLength; - return result; -} - -- (void *) mapContentsOfFile: (NSString *) path length: (NSUInteger *) lengthp { - void *result; - HANDLE file = CreateFileW([path fileSystemRepresentationW], GENERIC_READ, 0, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - HANDLE mapping; - - if (file == INVALID_HANDLE_VALUE) - return NULL; - - *lengthp = GetFileSize(file, NULL); - if (*lengthp == 0xFFFFFFFF) { - CloseHandle(file); - return NULL; - } - if (*lengthp == 0) - return ""; - - mapping = CreateFileMapping(file, NULL, PAGE_READONLY, 0, 0, NULL); - if (mapping == NULL) { - CloseHandle(file); - return NULL; - } - - result = MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, 0); - CloseHandle(mapping); - CloseHandle(file); - - return result; -} - -- (void) unmapAddress: (void *) ptr length: (NSUInteger) length { - if (length > 0) { - if (!UnmapViewOfFile(ptr)) - Win32Assert("UnmapViewOfFile()"); - } -} - -- (BOOL) writeContentsOfFile: (NSString *) path - bytes: (const void *) bytes - length: (NSUInteger) length - options: (NSUInteger) options - error: (NSError **) errorp -{ - BOOL atomically = (options & NSAtomicWrite); - HANDLE file; - DWORD wrote; - const uint16_t *pathW = [path fileSystemRepresentationW]; - - atomically = NO; - - if (atomically) { - NSString *backup = [path stringByAppendingString: @"##"]; - const uint16_t *backupW = [backup fileSystemRepresentationW]; - - file = CreateFileW(backupW, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, NULL); - if (!WriteFile(file, bytes, length, &wrote, NULL)) { - CloseHandle(file); - } else { - CloseHandle(file); - - if (wrote != length) { - DeleteFileW(backupW); - } else { - - if (MoveFileExW(backupW, pathW, MOVEFILE_REPLACE_EXISTING)) { - return YES; - } - } - } - // atomic failure drops through to non-atomic - } - - file = CreateFileW(pathW, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, NULL); - if (!WriteFile(file, bytes, length, &wrote, NULL)) { - if (errorp) - *errorp = NSErrorForGetLastError(); - CloseHandle(file); - return NO; - } - - CloseHandle(file); - - return (wrote == length) ? YES : NO; -} - -@end - -void _Win32Assert(const char *code, int line, const char *file) { - DWORD lastError = GetLastError(); - - if (lastError) - [NSException raise: @"Win32AssertFailedException" - format: @"%s failed with code %d at %s:%d", code, lastError, - file, line]; -} - -#define NSTimeIntervalSince1601 12622780800.0L -NSTimeInterval Win32TimeIntervalFromFileTime(FILETIME fileTime) { - long long file64; - NSTimeInterval interval; - - file64 = fileTime.dwHighDateTime; - file64 <<= 32; - file64 |= fileTime.dwLowDateTime; - interval = file64; - interval /= 10000000.0; - - return interval - NSTimeIntervalSince1601; -} - -void Win32ThreadSleepForTimeInterval(NSTimeInterval interval) { - while (interval > 0) { - NSTimeInterval chunk = (interval > 1000000) ? 1000000 : interval; - - Sleep(chunk * 1000); - - interval -= chunk; - } -} - -BOOL NSPlatformGreaterThanOrEqualToWindowsXP(void) { - OSVERSIONINFOEX osVersion; - - osVersion.dwOSVersionInfoSize = sizeof(osVersion); - GetVersionEx((OSVERSIONINFO *) &osVersion); - - return ((osVersion.dwMajorVersion == 5 && osVersion.dwMinorVersion >= 1) || - osVersion.dwMajorVersion > 5) - ? YES - : NO; -} - -BOOL NSPlatformGreaterThanOrEqualToWindows2000(void) { - OSVERSIONINFOEX osVersion; - - osVersion.dwOSVersionInfoSize = sizeof(osVersion); - GetVersionEx((OSVERSIONINFO *) &osVersion); - - return (osVersion.dwMajorVersion >= 5) ? YES : NO; -} - -#endif diff --git a/Foundation/platform_windows/NSReadInBackground_win32.h b/Foundation/platform_windows/NSReadInBackground_win32.h deleted file mode 100644 index 4c2c884e..00000000 --- a/Foundation/platform_windows/NSReadInBackground_win32.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#include - -@class NSHandleMonitor_win32, NSFileHandle, NSArray; - -@interface NSReadInBackground_win32 : NSObject { - NSFileHandle *_fileHandle; - HANDLE _readHandle; - NSUInteger _bufferCapacity; - NSUInteger _bufferSize; - void *_buffer; - - NSArray *_modes; - HANDLE _threadHandle; - NSHandleMonitor_win32 *_threadMonitor; -} - -+ readInBackgroundWithFileHandle: (NSFileHandle *) fileHandle - modes: (NSArray *) modes; - -- (void) detach; - -@end diff --git a/Foundation/platform_windows/NSReadInBackground_win32.m b/Foundation/platform_windows/NSReadInBackground_win32.m deleted file mode 100644 index b97c7665..00000000 --- a/Foundation/platform_windows/NSReadInBackground_win32.m +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#import -#import -#import -#import -#import -#import -#import -#include - -@implementation NSReadInBackground_win32 - -static DWORD WINAPI readInBackground(LPVOID arg) { - NSReadInBackground_win32 *self = arg; - DWORD numberRead = 0; - - self->_bufferSize = 0; - if (ReadFile(self->_readHandle, self->_buffer, self->_bufferCapacity, - &numberRead, NULL)) - self->_bufferSize = numberRead; - - return 0; -} - -- initWithFileHandle: (NSFileHandle *) fileHandle modes: (NSArray *) modes { - NSInteger i, count = [modes count]; - DWORD threadID; - - _fileHandle = fileHandle; - _readHandle = [(NSFileHandle_win32 *) _fileHandle fileHandle]; - _bufferCapacity = 4096; - _bufferSize = 0; - _buffer = NSZoneMalloc([self zone], _bufferCapacity); - - _modes = [modes copy]; - _threadHandle = CreateThread(NULL, 0, readInBackground, self, 0, &threadID); - _threadMonitor = [[NSHandleMonitor_win32 - handleMonitorWithHandle: _threadHandle] retain]; - [_threadMonitor setDelegate: self]; - - for (i = 0; i < count; i++) - [[NSRunLoop currentRunLoop] addInputSource: _threadMonitor - forMode: [modes objectAtIndex: i]]; - - return self; -} - -+ readInBackgroundWithFileHandle: (NSFileHandle *) fileHandle - modes: (NSArray *) modes -{ - // we autorelease when things are done - return [[self alloc] initWithFileHandle: fileHandle modes: modes]; -} - -- (void) dealloc { - [_threadMonitor release]; - - CloseHandle(_threadHandle); - - [_modes release]; - - NSZoneFree([self zone], _buffer); - - [super dealloc]; -} - -- (void) detach { - _fileHandle = nil; -} - -- (void) _removeFromModes { - NSInteger i, count = [_modes count]; - - for (i = 0; i < count; i++) - [[NSRunLoop currentRunLoop] - removeInputSource: _threadMonitor - forMode: [_modes objectAtIndex: i]]; - - [_threadMonitor setDelegate: nil]; -} - -- (void) handleMonitorIndicatesSignaled: (NSHandleMonitor_win32 *) monitor { - NSData *data; - - data = [NSData dataWithBytes: _buffer length: _bufferSize]; - [_fileHandle performSelector: @selector(readInBackground:data:) - withObject: self - withObject: data]; - // [_fileHandle readInBackground:self data:data]; - [self _removeFromModes]; - [self autorelease]; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSRecursiveLock_win32.h b/Foundation/platform_windows/NSRecursiveLock_win32.h deleted file mode 100644 index f4aacf78..00000000 --- a/Foundation/platform_windows/NSRecursiveLock_win32.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2010 Matt Gallagher - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#include - -@interface NSRecursiveLock_win32 : NSRecursiveLock { - CRITICAL_SECTION _lock; -} - -@end diff --git a/Foundation/platform_windows/NSRecursiveLock_win32.m b/Foundation/platform_windows/NSRecursiveLock_win32.m deleted file mode 100644 index 4028b2f2..00000000 --- a/Foundation/platform_windows/NSRecursiveLock_win32.m +++ /dev/null @@ -1,58 +0,0 @@ -#ifdef WINDOWS -/* Copyright (c) 2010 Matt Gallagher - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ -#import "NSRecursiveLock_win32.h" -#import - -@implementation NSRecursiveLock_win32 - -- (id) init { - InitializeCriticalSection(&_lock); - - return self; -} - -- (void) dealloc { - DeleteCriticalSection(&_lock); - [super dealloc]; -} - -- (void) lock { - EnterCriticalSection(&_lock); -} - -- (BOOL) tryLock { - return TryEnterCriticalSection(&_lock); -} - -- (void) unlock { - LeaveCriticalSection(&_lock); -} - -- (BOOL) lockBeforeDate: (NSDate *) value { - BOOL haveLock; - while (!(haveLock = [self tryLock]) && [value timeIntervalSinceNow] > 0) { - [NSThread sleepForTimeInterval: 0.001]; - } - return haveLock; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSRunLoopState_windows.h b/Foundation/platform_windows/NSRunLoopState_windows.h deleted file mode 100644 index a1a11a26..00000000 --- a/Foundation/platform_windows/NSRunLoopState_windows.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface NSRunLoopState_windows : NSRunLoopState - -@end diff --git a/Foundation/platform_windows/NSRunLoopState_windows.m b/Foundation/platform_windows/NSRunLoopState_windows.m deleted file mode 100644 index 890bcd60..00000000 --- a/Foundation/platform_windows/NSRunLoopState_windows.m +++ /dev/null @@ -1,31 +0,0 @@ -#ifdef WINDOWS -#import "NSRunLoopState_windows.h" -#import "NSCancelInputSource_win32.h" -#import -#import -#import - -@implementation NSRunLoopState (windows) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSRunLoopState_windows class], 0, NULL); -} - -@end - -@implementation NSRunLoopState_windows - -- init { - _inputSourceSet = [[NSHandleMonitorSet_win32 alloc] init]; - _asyncInputSourceSets = [[NSArray alloc] - initWithObjects: [[[NSSelectInputSourceSet alloc] init] - autorelease], - nil]; - _timers = [NSMutableArray new]; - _cancelSource = [[NSCancelInputSource_win32 alloc] init]; - [self addInputSource: _cancelSource]; - return self; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSSelectSet_windows.h b/Foundation/platform_windows/NSSelectSet_windows.h deleted file mode 100644 index 84dc2f2d..00000000 --- a/Foundation/platform_windows/NSSelectSet_windows.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface NSSelectSet_windows : NSSelectSet - -@end diff --git a/Foundation/platform_windows/NSSelectSet_windows.m b/Foundation/platform_windows/NSSelectSet_windows.m deleted file mode 100644 index 6a475535..00000000 --- a/Foundation/platform_windows/NSSelectSet_windows.m +++ /dev/null @@ -1,490 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import "NSSelectSet_windows.h" -#import "NSSocket_windows.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -@implementation NSSelectSet (windows) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSSelectSet_windows class], 0, NULL); -} - -@end - -@implementation NSSelectSet_windows - -typedef struct { - unsigned max; - fd_set *fdset; -} native_set; - -native_set *native_set_new() { - native_set *native = NSZoneCalloc(NULL, 1, sizeof(native_set)); - - native->max = FD_SETSIZE; - - native->fdset = NSZoneCalloc(NULL, 1, sizeof(fd_set)); - - return native; -} - -void native_set_free(native_set *native) { - NSZoneFree(NULL, native->fdset); - NSZoneFree(NULL, native); -} - -void native_set_reset(native_set *native) { - native->fdset->fd_count = 0; -} - -void native_set_set(native_set *native, SOCKET handle) { - if (native->fdset->fd_count >= native->max) { - native->max *= 2; - native->fdset = NSZoneRealloc( - NULL, native->fdset, - sizeof(fd_set) + sizeof(SOCKET) * (native->max - FD_SETSIZE)); - } - native->fdset->fd_array[native->fdset->fd_count++] = handle; -} - -void native_set_clear(native_set *native, SOCKET handle) { - int i; - - for (i = 0; i < native->fdset->fd_count; i++) { - if (native->fdset->fd_array[i] == handle) { - native->fdset->fd_count--; - while (i < native->fdset->fd_count) { - native->fdset->fd_array[i] = native->fdset->fd_array[i + 1]; - i++; - } - break; - } - } -} - -void native_set_copy(native_set *native, native_set *copy) { - int i; - - while (copy->max < native->fdset->fd_count) { - copy->max *= 2; - copy->fdset = NSZoneRealloc( - NULL, copy->fdset, - sizeof(fd_set) + sizeof(SOCKET) * (copy->max - FD_SETSIZE)); - } - - for (i = 0; i < native->fdset->fd_count; i++) - copy->fdset->fd_array[i] = native->fdset->fd_array[i]; - - copy->fdset->fd_count = i; -} - -BOOL native_set_is_set(native_set *native, SOCKET handle) { - int i; - - for (i = 0; i < native->fdset->fd_count; i++) - if (native->fdset->fd_array[i] == handle) - return YES; - - return NO; -} - -BOOL native_set_merge(native_set *native, native_set *merge) { - int i; - - for (i = 0; i < native->fdset->fd_count; i++) { - SOCKET check = native->fdset->fd_array[i]; - - if (!native_set_is_set(merge, check)) - native_set_set(merge, check); - } - return (i > 0) ? YES : NO; -} - -void native_set_remove(native_set *native, native_set *remove) { - int i; - - for (i = 0; i < native->fdset->fd_count; i++) - native_set_clear(remove, native->fdset->fd_array[i]); -} - -typedef struct NSSelectSetBackgroundInfo { - HANDLE eventHandle; - NSHandleMonitor_win32 *eventMonitor; - NSMutableArray *eventMonitorModes; - - NSSocket_windows *pingRead; - NSSocket_windows *pingWrite; - - SOCKET pingReadHandle; - SOCKET pingWriteHandle; - - CRITICAL_SECTION *lock; - - BOOL shutdown; - native_set *inputRead; - native_set *inputWrite; - native_set *inputExcept; - - native_set *outputRead; - native_set *outputWrite; - native_set *outputExcept; - native_set *outputError; -} NSSelectSetBackgroundInfo; - -static WINAPI DWORD selectThread(LPVOID arg) { - BOOL shutdown = NO; - struct NSSelectSetBackgroundInfo *async = arg; - native_set *activeRead; - native_set *activeWrite; - native_set *activeExcept; - native_set *checkForErrors; - native_set *gotErrors; - - activeRead = native_set_new(); - activeWrite = native_set_new(); - activeExcept = native_set_new(); - checkForErrors = native_set_new(); - gotErrors = native_set_new(); - - while (!shutdown) { - BOOL setEvent; - - EnterCriticalSection(async->lock); - native_set_copy(async->inputRead, activeRead); - native_set_copy(async->inputWrite, activeWrite); - native_set_copy(async->inputExcept, activeExcept); - - native_set_copy(async->inputRead, checkForErrors); - native_set_merge(async->inputWrite, checkForErrors); - native_set_merge(async->inputExcept, checkForErrors); - LeaveCriticalSection(async->lock); - - native_set_set(activeRead, async->pingReadHandle); - - setEvent = NO; - if (select(42, activeRead->fdset, activeWrite->fdset, - activeExcept->fdset, NULL) < 0) { - int i; - - native_set_reset(gotErrors); - - for (i = 0; i < checkForErrors->fdset->fd_count; i++) { - SOCKET check = checkForErrors->fdset->fd_array[i]; - int ignore, ignoreLen = sizeof(ignore); - - if (getsockopt(check, IPPROTO_TCP, SO_TYPE, (void *) &ignore, - &ignoreLen) < 0) - native_set_set(gotErrors, check); - } - - EnterCriticalSection(async->lock); - if (native_set_merge(gotErrors, async->outputError)) - setEvent = YES; - native_set_remove(gotErrors, async->inputRead); - native_set_remove(gotErrors, async->inputWrite); - native_set_remove(gotErrors, async->inputExcept); - LeaveCriticalSection(async->lock); - } else { - if (native_set_is_set(activeRead, async->pingReadHandle)) { - char buf[256]; - - native_set_clear(activeRead, async->pingReadHandle); - recv(async->pingReadHandle, buf, 256, 0); - } - - EnterCriticalSection(async->lock); - if (native_set_merge(activeRead, async->outputRead)) - setEvent = YES; - if (native_set_merge(activeWrite, async->outputWrite)) - setEvent = YES; - if (native_set_merge(activeExcept, async->outputExcept)) - setEvent = YES; - - native_set_remove(activeRead, async->inputRead); - native_set_remove(activeWrite, async->inputWrite); - native_set_remove(activeExcept, async->inputExcept); - LeaveCriticalSection(async->lock); - } - - if (setEvent) - SetEvent(async->eventHandle); - - EnterCriticalSection(async->lock); - shutdown = async->shutdown; - LeaveCriticalSection(async->lock); - } - - CloseHandle(async->eventHandle); - - [async->pingRead close]; - [async->pingRead release]; - - [async->pingWrite close]; - [async->pingWrite release]; - - native_set_free(async->inputRead); - native_set_free(async->inputWrite); - native_set_free(async->inputExcept); - - native_set_free(async->outputRead); - native_set_free(async->outputWrite); - native_set_free(async->outputExcept); - native_set_free(async->outputError); - - NSZoneFree(NULL, async->lock); - NSZoneFree(NULL, async); - - return 0; -} - -static pthread_once_t asyncThreadKeyOnce = PTHREAD_ONCE_INIT; -static pthread_key_t asyncThreadKey; - -static void asyncThreadInfoDealloc(void *asyncX) { - struct NSSelectSetBackgroundInfo *async = asyncX; -} - -static void asyncThreadKeyInitialize(void) { - pthread_key_create(&asyncThreadKey, - (void (*)(void *)) & asyncThreadInfoDealloc); -} - -static struct NSSelectSetBackgroundInfo *asyncThreadInfo() { - pthread_once(&asyncThreadKeyOnce, asyncThreadKeyInitialize); - - struct NSSelectSetBackgroundInfo *result = - pthread_getspecific(asyncThreadKey); - if (result == NULL) { - result = NSZoneMalloc(NULL, sizeof(struct NSSelectSetBackgroundInfo)); - - result->eventHandle = CreateEvent(NULL, FALSE, FALSE, NULL); - result->eventMonitor = [[NSHandleMonitor_win32 - handleMonitorWithHandle: result->eventHandle] retain]; - [result->eventMonitor setDelegate: [NSSelectSet_windows class]]; - [result->eventMonitor setCurrentActivity: Win32HandleSignaled]; - result->eventMonitorModes = [NSMutableArray new]; - - result->pingWrite = - [[NSSocket alloc] initConnectedToSocket: &result->pingRead]; - - [result->pingRead retain]; - result->pingWriteHandle = [result->pingWrite socketHandle]; - result->pingReadHandle = [result->pingRead socketHandle]; - - result->lock = NSZoneMalloc(NULL, sizeof(CRITICAL_SECTION)); - InitializeCriticalSection(result->lock); - - // We sometimes get some error from NSSocket leading to - // pingRead/pingWrite being nil No idea why but just ask to shutdown on - // that case - result->shutdown = result->pingRead == nil || result->pingWrite == nil; - ; - - result->inputRead = native_set_new(); - result->inputWrite = native_set_new(); - result->inputExcept = native_set_new(); - - result->outputRead = native_set_new(); - result->outputWrite = native_set_new(); - result->outputExcept = native_set_new(); - result->outputError = native_set_new(); - - pthread_setspecific(asyncThreadKey, result); - - DWORD threadID; - - CreateThread(NULL, 0, selectThread, result, 0, &threadID); - } - - return result; -} - -void NSSelectSetShutdownForCurrentThread() { - pthread_once(&asyncThreadKeyOnce, asyncThreadKeyInitialize); - - struct NSSelectSetBackgroundInfo *async = - pthread_getspecific(asyncThreadKey); - if (async != NULL) { - pthread_setspecific(asyncThreadKey, NULL); - - [async->eventMonitor invalidate]; - [async->eventMonitor release]; - async->eventMonitor = nil; - [async->eventMonitorModes release]; - async->eventMonitorModes = nil; - - EnterCriticalSection(async->lock); - async->shutdown = YES; - - uint8_t one[1] = {42}; - - [async->pingWrite write: one maxLength: 1]; - LeaveCriticalSection(async->lock); - } -} - -static void transferSetToNative(NSSet *set, native_set *native) { - NSEnumerator *state = [set objectEnumerator]; - NSSocket_windows *socket; - - while ((socket = [state nextObject]) != nil) - native_set_set(native, [socket socketHandle]); -} - -static void transferNativeToSet(native_set *native, NSMutableSet *set) { - int i; - - for (i = 0; i < native->fdset->fd_count; i++) - [set addObject: [[[NSSocket_windows alloc] - initWithSocketHandle: native->fdset - ->fd_array[i]] - autorelease]]; -} - -static void transferNativeToSetWithOriginals(native_set *native, - NSMutableSet *set, NSSet *original, - NSSocket_windows *cheater) -{ - int i; - - for (i = 0; i < native->fdset->fd_count; i++) { - [cheater setSocketHandle: native->fdset->fd_array[i]]; - [set addObject: [original member: cheater]]; - } -} - -+ (void) handleMonitorIndicatesSignaled: (NSHandleMonitor_win32 *) monitor { - NSSelectSet_windows *outputSet = [[[NSSelectSet alloc] init] autorelease]; - NSSelectSetBackgroundInfo *async = asyncThreadInfo(); - if (async->shutdown) { - return; - } - - EnterCriticalSection(async->lock); - transferNativeToSet(async->outputRead, outputSet->_readSet); - transferNativeToSet(async->outputWrite, outputSet->_writeSet); - transferNativeToSet(async->outputExcept, outputSet->_exceptionSet); - LeaveCriticalSection(async->lock); - - [[NSNotificationCenter defaultCenter] - postNotificationName: NSSelectSetOutputNotification - object: outputSet]; -} - -- (void) waitInBackgroundInMode: (NSString *) mode { - BOOL pingElseThread = YES; - - if ([self isEmpty]) - return; - - NSSelectSetBackgroundInfo *async = asyncThreadInfo(); - if (async->shutdown) { - return; - } - - if (![async->eventMonitorModes containsObject: mode]) { - [async->eventMonitorModes addObject: mode]; - [[NSRunLoop currentRunLoop] addInputSource: async->eventMonitor - forMode: mode]; - } - - EnterCriticalSection(async->lock); - native_set_reset(async->inputRead); - native_set_reset(async->inputWrite); - native_set_reset(async->inputExcept); - - transferSetToNative(_readSet, async->inputRead); - transferSetToNative(_writeSet, async->inputWrite); - transferSetToNative(_exceptionSet, async->inputExcept); - - native_set_reset(async->outputRead); - native_set_reset(async->outputWrite); - native_set_reset(async->outputExcept); - native_set_reset(async->outputError); - LeaveCriticalSection(async->lock); - - uint8_t one[1] = {42}; - - [async->pingWrite write: one maxLength: 1]; -} - -- (NSError *) waitForSelectWithOutputSet: (NSSelectSet **) outputSetX - beforeDate: (NSDate *) beforeDate -{ - NSError *result = nil; - NSSocket_windows *cheater = [NSSocket_windows socketWithSocketHandle: 0]; - NSTimeInterval interval = [beforeDate timeIntervalSinceNow]; - native_set *activeRead = native_set_new(); - native_set *activeWrite = native_set_new(); - native_set *activeExcept = native_set_new(); - struct timeval timeval; - - transferSetToNative(_readSet, activeRead); - transferSetToNative(_writeSet, activeWrite); - transferSetToNative(_exceptionSet, activeExcept); - - if (interval > 1000000) - interval = 1000000; - if (interval < 0) - interval = 0; - - timeval.tv_sec = interval; - interval -= timeval.tv_sec; - timeval.tv_usec = interval * 1000; - - if (select(42, activeRead->fdset, activeWrite->fdset, activeExcept->fdset, - &timeval) < 0) - result = [NSError errorWithDomain: NSWINSOCKErrorDomain - code: WSAGetLastError() - userInfo: nil]; - - if (result == nil) { - NSSelectSet_windows *outputSet = - [[[NSSelectSet alloc] init] autorelease]; - - transferNativeToSetWithOriginals(activeRead, outputSet->_readSet, - _readSet, cheater); - transferNativeToSetWithOriginals(activeWrite, outputSet->_writeSet, - _writeSet, cheater); - transferNativeToSetWithOriginals(activeExcept, outputSet->_exceptionSet, - _exceptionSet, cheater); - - *outputSetX = outputSet; - } - - native_set_free(activeRead); - native_set_free(activeWrite); - native_set_free(activeExcept); - - return result; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSSocket_windows.h b/Foundation/platform_windows/NSSocket_windows.h deleted file mode 100644 index 63ac023e..00000000 --- a/Foundation/platform_windows/NSSocket_windows.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -#include - -@interface NSSocket_windows : NSSocket { - SOCKET _handle; - CFSSLHandler *_sslHandler; -} - -- initWithSocketHandle: (SOCKET) handle; -+ socketWithSocketHandle: (SOCKET) handle; - -- (SOCKET) socketHandle; -// for cheating only -- (void) setSocketHandle: (SOCKET) handle; - -@end diff --git a/Foundation/platform_windows/NSSocket_windows.m b/Foundation/platform_windows/NSSocket_windows.m deleted file mode 100644 index ffaac789..00000000 --- a/Foundation/platform_windows/NSSocket_windows.m +++ /dev/null @@ -1,452 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import "NSSocket_windows.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#undef WINVER -#define WINVER 0x501 -#include - -// The treatment of SOCKET's as int's is lame, there should probably be a little -// more formality on the [fF]ileDescriptor methods (typedef int/SOCKET -// NSFileDescriptor?) What would be nice is enough API in NSFileHandle/NSStream -// to never need the fd - -@implementation NSSocket (windows) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([NSSocket_windows class], 0, NULL); -} - -@end - -@implementation NSSocket_windows - -static inline void byteZero(void *vsrc, size_t size) { - uint8_t *src = vsrc; - size_t i; - - for (i = 0; i < size; i++) - src[i] = 0; -} - -+ (void) initialize { - DWORD vR = MAKEWORD(2, 2); - WSADATA wsaData; - - WSAStartup(vR, &wsaData); - - NSString *path = [[NSBundle bundleForClass: [self class]] - pathForResource: @"CFSSLHandler_openssl" - ofType: @"bundle"]; - - if (path != nil) { - NSBundle *bundle = [NSBundle bundleWithPath: path]; - - [bundle load]; - } -} - -- initWithSocketHandle: (SOCKET) handle { -#ifdef DEBUG - NSCLog("NSSocket_windows -initWithSocketHandle:"); -#endif - _handle = handle; - return self; -} - -+ socketWithSocketHandle: (SOCKET) handle { -#ifdef DEBUG - NSCLog("NSSocket_windows +socketWithSocketHandle:"); -#endif - return [[[self alloc] initWithSocketHandle: handle] autorelease]; -} - -- (NSError *) errorForReturnValue: (int) returnValue { - if (returnValue < 0) { - return [NSError errorWithDomain: NSWINSOCKErrorDomain - code: WSAGetLastError() - userInfo: nil]; - } - return nil; -} - -- initTCPStream { -#ifdef DEBUG - NSCLog("NSSocket_windows -initTCPStream"); -#endif - NSError *error = - [self errorForReturnValue: _handle = socket(PF_INET, SOCK_STREAM, - IPPROTO_TCP)]; - if (error != nil) { - [self dealloc]; - return nil; - } - return self; -} - -- initUDPStream { -#ifdef DEBUG - NSCLog("NSSocket_windows -initUDPStream"); -#endif - NSError *error = - [self errorForReturnValue: _handle = socket(PF_INET, SOCK_DGRAM, - IPPROTO_UDP)]; - if (error != nil) { - [self dealloc]; - return nil; - } - return self; -} - -- initWithFileDescriptor: (int) descriptor { -#ifdef DEBUG - NSCLog("NSSocket_windows -initWithFileDescriptor:"); -#endif - SOCKET handle = (SOCKET) descriptor; - u_long arg; - - if (ioctlsocket(handle, FIONREAD, &arg) != 0) { - [self dealloc]; - return nil; - } - - return [self initWithSocketHandle: handle]; -} - -- (void) dealloc { -#ifdef DEBUG - NSCLog("dealloc"); -#endif - [_sslHandler release]; - [super dealloc]; -} - -- (void) closeAndDealloc { -#ifdef DEBUG - NSCLog("NSSocket_windows -closeAndDealloc"); -#endif - [self close]; - [self dealloc]; -} - -- initConnectedToSocket: (NSSocket **) otherX { -#ifdef DEBUG - NSCLog("NSSocket_windows -initConnectedToSocket:"); -#endif - NSSocket_windows *other; - NSError *error; - struct sockaddr_in address; - int namelen; - - *otherX = nil; - - if ([self initUDPStream] == nil) - return nil; - - if ((other = [[[NSSocket alloc] initUDPStream] autorelease]) == nil) { - [self closeAndDealloc]; - return nil; - } - - byteZero(&address, sizeof(struct sockaddr_in)); - address.sin_family = AF_INET; - address.sin_addr.s_addr = inet_addr("127.0.0.1"); - address.sin_port = 0; - if ((error = [self - errorForReturnValue: bind(other->_handle, - (struct sockaddr *) &address, - sizeof(struct sockaddr_in))]) != - nil) { - [self closeAndDealloc]; - [other closeAndDealloc]; - return nil; - } - - namelen = sizeof(address); - if ((error = [self - errorForReturnValue: getsockname(other->_handle, - (struct sockaddr *) &address, - &namelen)]) != nil) { - [self closeAndDealloc]; - [other closeAndDealloc]; - return nil; - } - - if ((error = [self - errorForReturnValue: connect(_handle, - (struct sockaddr *) &address, - sizeof(struct sockaddr_in))]) != - nil) { - [self closeAndDealloc]; - [other closeAndDealloc]; - return nil; - } - - *otherX = other; - return self; -} - -- (int) fileDescriptor { - return (int) _handle; -} - -- (SOCKET) socketHandle { - return _handle; -} - -- (void) setSocketHandle: (SOCKET) handle { -#ifdef DEBUG - NSCLog("NSSocket_windows -setSocketHandle:"); -#endif - _handle = handle; -} - -- (NSUInteger) hash { - return (NSUInteger) _handle; -} - -- (BOOL) isEqual: other { - if (![other isKindOfClass: [NSSocket_windows class]]) - return NO; - - return (_handle == ((NSSocket_windows *) other)->_handle) ? YES : NO; -} - -- (NSError *) close { -#ifdef DEBUG - NSCLog("NSSocket_windows -close"); -#endif - return [self errorForReturnValue: closesocket(_handle)]; -} - -- (NSError *) setOperationWouldBlock: (BOOL) blocks { - u_long onoff = blocks ? NO : YES; - - return [self errorForReturnValue: ioctlsocket(_handle, FIONBIO, &onoff)]; -} - -- (BOOL) operationWouldBlock { - return (WSAGetLastError() == WSAEWOULDBLOCK); -} - -- (NSError *) connectToHost: (NSHost *) host - port: (NSInteger) portNumber - immediate: (BOOL *) immediate -{ -#ifdef DEBUG - NSCLog("NSSocket_windows -connectToHost: %s port: %d immediate:", - [[host name] cStringUsingEncoding: NSASCIIStringEncoding], - (int) portNumber); -#endif - BOOL block = NO; - NSArray *addresses = [host addresses]; - int i, count = [addresses count]; - NSError *error = nil; - - *immediate = NO; - - if (!block) { - if ((error = [self setOperationWouldBlock: NO]) != nil) - return error; - } - - for (i = 0; i < count; i++) { - struct sockaddr_in - try - ; - NSString *stringAddress = [addresses objectAtIndex: i]; - char cString[[stringAddress cStringLength] + 1]; - unsigned long address; - - [stringAddress getCString: cString]; - if ((address = inet_addr(cString)) == -1) { - // FIX - } - - byteZero(&try, sizeof(struct sockaddr_in)); - try - .sin_addr.s_addr = address; - try - .sin_family = AF_INET; - short port = portNumber; - try - .sin_port = htons(port); - - if (connect(_handle, (struct sockaddr *) &try, sizeof(try)) == 0) { - if (!block) { - if ((error = [self setOperationWouldBlock: YES]) != nil) - return error; - } - - *immediate = YES; - return nil; - } else if ([self operationWouldBlock]) { - if (!block) { - if ((error = [self setOperationWouldBlock: YES]) != nil) - return error; - } - return nil; - } else { - error = [self errorForReturnValue: -1]; - } - } - - if (error == nil) - error = [NSError errorWithDomain: NSWINSOCKErrorDomain - code: WSAHOST_NOT_FOUND - userInfo: nil]; - - return error; -} - -- (BOOL) hasBytesAvailable { - struct timeval t; - t.tv_sec = 0; - t.tv_usec = 0; - - fd_set s; - FD_ZERO(&s); - FD_SET(_handle, &s); - BOOL bytesAvailable = (select(0, &s, NULL, NULL, &t) == 1) ? YES : NO; -#ifdef DEBUG - NSCLog("NSSocket_windows - hasBytesAvailable: %s", - bytesAvailable ? "YES" : "NO"); -#endif - return bytesAvailable; -} - -- (NSInteger) read: (uint8_t *) buffer maxLength: (NSUInteger) length { -#ifdef DEBUG - NSCLog("read: maxLength: %d", length); -#endif - NSInteger result; - - result = recv(_handle, (void *) buffer, length, 0); -#ifdef DEBUG - NSCLog("recv() result: %d", result); -#endif - return result; -} - -- (NSInteger) write: (const uint8_t *) buffer maxLength: (NSUInteger) length { -#ifdef DEBUG - NSCLog("NSSocket_windows - write: maxLength: %d", length); -#endif - NSInteger result; - - result = send(_handle, (void *) buffer, length, 0); -#ifdef DEBUG - NSCLog("send() result: %d", result); -#endif - - return result; -} - -- (NSSocket *) acceptWithError: (NSError **) errorp { -#ifdef DEBUG - NSCLog("NSSocket_windows - acceptWithError:"); -#endif - struct sockaddr addr; - int addrlen = sizeof(struct sockaddr); - SOCKET newSocket; - NSError *error; - - error = [self - errorForReturnValue: newSocket = accept(_handle, &addr, &addrlen)]; - if (errorp != nil) { - *errorp = error; -#ifdef DEBUG - NSCLog("accept() error: %zd", [error code]); -#endif - } - return (error != nil) - ? nil - : [[[NSSocket_windows alloc] initWithSocketHandle: newSocket] - autorelease]; -} - -- (CFSSLHandler *) sslHandler { - return _sslHandler; -} - -- (BOOL) setSSLProperties: (CFDictionaryRef) sslProperties { - - if (_sslHandler == nil) { - _sslHandler = [[NSClassFromString(@"CFSSLHandler_openssl") alloc] - initWithProperties: sslProperties]; - } else { - // FIXME: what do we do if different properties are set - } - return YES; -} - -@end - -NSData *NSSocketAddressDataForNetworkOrderAddressBytesAndPort( - const void *address, NSUInteger length, uint16_t port, - uint32_t interface) -{ - if (length == 4) { // IPV4 - struct sockaddr_in ip4; - - size_t ip4Length = sizeof(struct sockaddr_in); - - memset(&ip4, 0, ip4Length); - - ip4.sin_addr.s_addr = *(uint32_t *) address; - ip4.sin_family = AF_INET; - ip4.sin_port = port; - - return [NSData dataWithBytes: &ip4 length: ip4Length]; - } - - return nil; - - if (length == 16) { // IPV6 - struct sockaddr_in6 ip6; - - size_t ip6Length = sizeof(struct sockaddr_in6); - - memset(&ip6, 0, ip6Length); - memcpy(&ip6.sin6_addr, address, 16); - -#ifdef SIN6_LEN - ip6.sin6_len = sizeof ip6; -#endif - ip6.sin6_family = AF_INET6; - ip6.sin6_port = port; - ip6.sin6_flowinfo = 0; - ip6.sin6_scope_id = interface; - - return [NSData dataWithBytes: &ip6 length: ip6Length]; - } - - return nil; -} -#endif diff --git a/Foundation/platform_windows/NSString_defaultEncoding_windows.m b/Foundation/platform_windows/NSString_defaultEncoding_windows.m deleted file mode 100644 index 0a3e5a24..00000000 --- a/Foundation/platform_windows/NSString_defaultEncoding_windows.m +++ /dev/null @@ -1,115 +0,0 @@ -/* Copyright (c) 2009 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#ifdef WINDOWS -#import - -#import -#import -#import -#include - -NSStringEncoding defaultEncoding() { - // don't use objc calls because they call often defaultCStringEncoding - UINT codepage = GetACP(); - - CFStringEncoding encoding = - CFStringConvertWindowsCodepageToEncoding(codepage); - if (encoding != kCFStringEncodingInvalidId) { - return CFStringConvertEncodingToNSStringEncoding(encoding); - } - switch (codepage) { - case 1250: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSWindowsCP1250StringEncoding; - - case 1251: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSWindowsCP1251StringEncoding; - - case 1252: - return NSWindowsCP1252StringEncoding; - - case 1253: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSWindowsCP1253StringEncoding; - - case 1254: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSWindowsCP1254StringEncoding; - - case 50220: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSISO2022JPStringEncoding; - - case 10000: - return NSMacOSRomanStringEncoding; - - case 12000: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSUTF32LittleEndianStringEncoding; - - case 12001: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSUTF32BigEndianStringEncoding; - - case 20127: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSASCIIStringEncoding; - - case 20932: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSJapaneseEUCStringEncoding; - - case 65001: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSUTF8StringEncoding; - - case 28591: - return NSISOLatin1StringEncoding; - - case 28592: - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - return NSISOLatin2StringEncoding; - - default: { - static BOOL codePageErrorLogged = NO; - if (codePageErrorLogged == NO) { - codePageErrorLogged = YES; - NSCLog("Unknown codepage=%d", codepage); - } - } - // FIXME: use until the right encoding is implemented - return NSWindowsCP1252StringEncoding; - } -} - -#endif diff --git a/Foundation/platform_windows/NSString_win32.h b/Foundation/platform_windows/NSString_win32.h deleted file mode 100644 index f03ac1ad..00000000 --- a/Foundation/platform_windows/NSString_win32.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -FOUNDATION_EXPORT NSString * -NSStringFromNullTerminatedUnicode(const unichar *characters); - -FOUNDATION_EXPORT NSData *NSTaskArgumentDataFromString(NSString *string); -FOUNDATION_EXPORT NSData *NSTaskArgumentDataFromStringW(NSString *string); diff --git a/Foundation/platform_windows/NSString_win32.m b/Foundation/platform_windows/NSString_win32.m deleted file mode 100644 index 9c8ad885..00000000 --- a/Foundation/platform_windows/NSString_win32.m +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#import - -NSString *NSStringFromNullTerminatedUnicode(const unichar *characters) { - NSUInteger length = 0; - - while (characters[length] != 0x0000) - length++; - - return [NSString stringWithCharacters: characters length: length]; -} - -NSData *NSTaskArgumentDataFromString(NSString *string) { - NSUInteger i, length = [string length], resultLength = 0; - unichar buffer[length]; - uint8_t result[1 + length * 2 + 1]; - - [string getCharacters: buffer]; - - result[resultLength++] = '\"'; - for (i = 0; i < length; i++) { - if (buffer[i] <= ' ') { - result[resultLength++] = ' '; - } else if (buffer[i] == '\"') { - result[resultLength++] = '\\'; - result[resultLength++] = '\"'; - } else - result[resultLength++] = buffer[i]; - } - result[resultLength++] = '\"'; - - return [NSData dataWithBytes: result length: resultLength]; -} - -NSData *NSTaskArgumentDataFromStringW(NSString *string) { - NSUInteger i, length = [string length], resultLength = 0; - unichar buffer[length]; - unichar result[1 + length * 2 + 1]; - - [string getCharacters: buffer]; - - result[resultLength++] = L'\"'; - for (i = 0; i < length; i++) { - if (buffer[i] <= L' ') { - result[resultLength++] = L' '; - } else if (buffer[i] == L'\"') { - result[resultLength++] = L'\\'; - result[resultLength++] = L'\"'; - } else - result[resultLength++] = buffer[i]; - } - result[resultLength++] = L'\"'; - - return [NSData dataWithBytes: result length: resultLength * 2]; -} -#endif diff --git a/Foundation/platform_windows/NSTask_win32.h b/Foundation/platform_windows/NSTask_win32.h deleted file mode 100644 index 345f4675..00000000 --- a/Foundation/platform_windows/NSTask_win32.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#include - -@class NSHandleMonitor_win32; - -@interface NSTask_win32 : NSTask { - DWORD _exitCode; - - NSHandleMonitor_win32 *_monitor; - PROCESS_INFORMATION _processInfo; -} - -- (void) launch; -- (BOOL) isRunning; -- (void) terminate; -- (int) processIdentifier; - -@end diff --git a/Foundation/platform_windows/NSTask_win32.m b/Foundation/platform_windows/NSTask_win32.m deleted file mode 100644 index 5596d63e..00000000 --- a/Foundation/platform_windows/NSTask_win32.m +++ /dev/null @@ -1,269 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#include - -@implementation NSTask_win32 - -// private -- (void) finalizeProcess { - - if (_monitor != nil) { - [[NSRunLoop currentRunLoop] removeInputSource: _monitor - forMode: NSDefaultRunLoopMode]; - [_monitor setDelegate: nil]; - [_monitor autorelease]; - _monitor = nil; - - CloseHandle(_processInfo.hProcess); - CloseHandle(_processInfo.hThread); - } -} - -- (void) dealloc { - [self finalizeProcess]; - [super dealloc]; -} - -- (NSData *) _argumentsData { - NSMutableData *data = [NSMutableData data]; - NSInteger i, count = [arguments count]; - - if (launchPath != nil) { - [data appendData: NSTaskArgumentDataFromString(launchPath)]; - [data appendBytes: " " length: 1]; - } - - for (i = 0; i < count; i++) { - NSString *argument = [arguments objectAtIndex: i]; - - [data appendData: NSTaskArgumentDataFromString(argument)]; - [data appendBytes: " " length: 1]; - - if ([data length] > 32767) { - [NSException raise: NSInvalidArgumentException - format: @"More than 32768 bytes needed for argument " - @"list of task %@.", - launchPath]; - return nil; - } - } - - [data appendBytes: "\0" length: 1]; - - return data; -} - -- (void) launch { - if ([self isRunning]) { - [NSException raise: NSInvalidArgumentException - format: @"NSTask already launched"]; - } - STARTUPINFO startupInfo; - - // For CreateProcess it's not actually an error for the launchPath to be nil - // From the MS documentation: The lpApplicationName parameter can be NULL. - // In that case, the module name must be the first white spaceÐdelimited - // token in the lpCommandLine string. See: - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx - - ZeroMemory(&startupInfo, sizeof(startupInfo)); - startupInfo.cb = sizeof(startupInfo); - startupInfo.dwFlags |= STARTF_USESTDHANDLES; - - if (standardInput == nil) - startupInfo.hStdInput = GetStdHandle(STD_INPUT_HANDLE); - else if ([standardInput isKindOfClass: [NSPipe class]]) - startupInfo.hStdInput = - [(NSFileHandle_win32 *) [standardInput fileHandleForReading] - fileHandle]; - else - startupInfo.hStdInput = [standardInput fileHandle]; - - SetHandleInformation( - [(NSFileHandle_win32 *) [standardInput fileHandleForWriting] - fileHandle], - HANDLE_FLAG_INHERIT, 0); - - if (standardOutput == nil) - startupInfo.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); - else if ([standardOutput isKindOfClass: [NSPipe class]]) - startupInfo.hStdOutput = - [(NSFileHandle_win32 *) [standardOutput fileHandleForWriting] - fileHandle]; - else - startupInfo.hStdOutput = [standardOutput fileHandle]; - - SetHandleInformation( - [(NSFileHandle_win32 *) [standardOutput fileHandleForReading] - fileHandle], - HANDLE_FLAG_INHERIT, 0); - - if (standardError == nil) - startupInfo.hStdError = GetStdHandle(STD_ERROR_HANDLE); - else if ([standardError isKindOfClass: [NSPipe class]]) - startupInfo.hStdError = - [(NSFileHandle_win32 *) [standardError fileHandleForWriting] - fileHandle]; - else - startupInfo.hStdError = [standardError fileHandle]; - - SetHandleInformation( - [(NSFileHandle_win32 *) [standardError fileHandleForReading] - fileHandle], - HANDLE_FLAG_INHERIT, 0); - - ZeroMemory(&_processInfo, sizeof(_processInfo)); - - char *cenv = NULL, *cenvp = NULL; - if (environment != nil) { - // alloc enough space for environment - // maybe a better solution is with realloc - cenv = NSZoneMalloc( - NULL, - [[[environment description] - dataUsingEncoding: [NSString defaultCStringEncoding]] - length]); - cenvp = cenv; - - NSString *key; - - for (key in environment) { - id value = [environment objectForKey: key]; - NSData *data; - - data = [key dataUsingEncoding: [NSString defaultCStringEncoding]]; - memcpy(cenvp, [data bytes], [data length]); - cenvp += [data length]; - *cenvp++ = '='; - data = [value dataUsingEncoding: [NSString defaultCStringEncoding]]; - memcpy(cenvp, [data bytes], [data length]); - cenvp += [data length]; - *cenvp++ = 0; - } - *cenvp++ = 0; - } - - if (!CreateProcess([[self launchPath] fileSystemRepresentation], - (char *) [[self _argumentsData] bytes], NULL, NULL, TRUE, - CREATE_NO_WINDOW, cenv, - [currentDirectoryPath fileSystemRepresentation], - &startupInfo, &_processInfo)) { - - DWORD lastError = GetLastError(); - - if (cenv) { - NSZoneFree(NULL, cenv); - } - char *launchPathStr = ""; - if ([launchPath length] > 0) { - launchPathStr = (char *) [launchPath fileSystemRepresentation]; - } - [NSException raise: NSInvalidArgumentException - format: @"CreateProcess(\"%s\", \"%s\", \"%s\") failed " - @"with error: %d", - launchPathStr, [[self _argumentsData] bytes], - [currentDirectoryPath fileSystemRepresentation], - lastError]; - return; - } - if (cenv) { - NSZoneFree(NULL, cenv); - } - - if ([standardInput isKindOfClass: [NSPipe class]]) - [[standardInput fileHandleForReading] closeFile]; - if ([standardOutput isKindOfClass: [NSPipe class]]) - [[standardOutput fileHandleForWriting] closeFile]; - if ([standardError isKindOfClass: [NSPipe class]]) - [[standardError fileHandleForWriting] closeFile]; - - _monitor = [[NSHandleMonitor_win32 allocWithZone: NULL] - initWithHandle: _processInfo.hProcess]; - [_monitor setDelegate: self]; - [[NSRunLoop currentRunLoop] addInputSource: _monitor - forMode: NSDefaultRunLoopMode]; -} - -- (BOOL) isRunning { - if (_processInfo.hProcess != NULL) { - GetExitCodeProcess(_processInfo.hProcess, &_exitCode); - if (_exitCode == STILL_ACTIVE) { - return YES; - } else { - return NO; - } - } else { - return NO; - } -} - -- (void) terminate { - TerminateProcess(_processInfo.hProcess, 0); -} - -- (int) terminationStatus { - return (int) _exitCode; -} - -- (void) handleMonitorIndicatesSignaled: (NSHandleMonitor_win32 *) monitor { - - GetExitCodeProcess(_processInfo.hProcess, &_exitCode); - - if (_exitCode != STILL_ACTIVE) { - [self finalizeProcess]; - [[NSNotificationCenter defaultCenter] - postNotificationName: NSTaskDidTerminateNotification - object: self]; - } -} - -- (void) handleMonitorIndicatesAbandoned: (NSHandleMonitor_win32 *) monitor { - - NSLog(@"process abandoned ?"); - - [self finalizeProcess]; - [[NSNotificationCenter defaultCenter] - postNotificationName: NSTaskDidTerminateNotification - object: self]; -} - -- (int) processIdentifier { - return _processInfo.dwProcessId; -} - -@end -#endif diff --git a/Foundation/platform_windows/NSTimeZone_win32.h b/Foundation/platform_windows/NSTimeZone_win32.h deleted file mode 100644 index 4d425a6d..00000000 --- a/Foundation/platform_windows/NSTimeZone_win32.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2009-2010 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#include - -@class NSString, NSData; - -@interface NSTimeZone_win32 : NSTimeZone { - NSString *_abbreviation; -} - -- (TIME_ZONE_INFORMATION) _timeZoneInformation; - -+ (NSData *) _windowsDataFromRegistry: (NSString *) registryname - stdName: (NSString **) stdName - daylightName: (NSString **) daylightName; -+ (NSData *) _getDataWithWindowsName: (NSString *) name - registryName: (NSString **) registryName; -+ (NSDate *) _systemtimeToDate: (SYSTEMTIME) systime; -+ (NSDictionary *) _windowsZones; -+ (SYSTEMTIME) _dateToSystemTime: (NSDate *) date; -+ (NSString *) _registryNameToAbbreviation: (NSString *) registryName; - -@end diff --git a/Foundation/platform_windows/NSTimeZone_win32.m b/Foundation/platform_windows/NSTimeZone_win32.m deleted file mode 100644 index 3f2a7def..00000000 --- a/Foundation/platform_windows/NSTimeZone_win32.m +++ /dev/null @@ -1,457 +0,0 @@ -#ifdef WINDOWS -/* Copyright (c) 2009-2010 Glenn Ganz - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#import - -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#define MAX_KEY_LENGTH 255 -#define MAX_VALUE_NAME 16383 - -#pragma pack(1) - -typedef struct _REG_TZI_FORMAT { - LONG Bias; - LONG StandardBias; - LONG DaylightBias; - SYSTEMTIME StandardDate; - SYSTEMTIME DaylightDate; -} REG_TZI_FORMAT; - -#pragma pack() - -// TODO: -// Dynamic DST (see SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time -// Zones\\*\\Dynamic DST in registry) - -// this function (without suffix '_priv') should be in kernel32, but in mingw -// its not :-( -WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime_priv( - LPTIME_ZONE_INFORMATION lpTimeZoneInformation, LPSYSTEMTIME lpLocalTime, - LPSYSTEMTIME lpUniversalTime) -{ - DWORD dwTzID = 0; - FILETIME ft = {0}; - LONG lBias = 0; - TIME_ZONE_INFORMATION tzinfo = {0}; - ULARGE_INTEGER uliGreg = {{0}}; - - if (lpTimeZoneInformation != NULL) { - tzinfo = *lpTimeZoneInformation; - } else { - dwTzID = GetTimeZoneInformation(&tzinfo); - if ((dwTzID == TIME_ZONE_ID_UNKNOWN) || - (dwTzID == TIME_ZONE_ID_INVALID)) { - return FALSE; - } else if (dwTzID == TIME_ZONE_ID_DAYLIGHT) { - lBias = tzinfo.DaylightBias + tzinfo.Bias; - } else if (dwTzID == TIME_ZONE_ID_STANDARD) { - lBias = tzinfo.StandardBias + tzinfo.Bias; - } - } - - if (!SystemTimeToFileTime(lpLocalTime, &ft)) { - return FALSE; - } - - uliGreg.HighPart = ft.dwHighDateTime; - uliGreg.LowPart = ft.dwLowDateTime; - - uliGreg.QuadPart += (ULONGLONG) lBias * 600000000; - - ft.dwHighDateTime = uliGreg.HighPart; - ft.dwLowDateTime = uliGreg.LowPart; - - if (!FileTimeToSystemTime(&ft, lpUniversalTime)) { - return FALSE; - } - - return TRUE; -} - -@implementation NSTimeZone_win32 - -- initWithCoder: (NSCoder *) coder { - NSString *name = [coder decodeObjectForKey: @"NS.name"]; - - return [self initWithName: name data: nil]; -} - -- initWithName: (NSString *) name data: (NSData *) data { - - NSString *registryName = nil; - - if (data == nil) { - data = [NSTimeZone_win32 _getDataWithWindowsName: name - registryName: ®istryName]; - } - - if (data == nil) { - NSDictionary *abbDict = [NSTimeZone abbreviationDictionary]; - NSDictionary *windowsZones = [NSTimeZone_win32 _windowsZones]; - - for (id key in windowsZones) { - NSArray *values = [abbDict objectForKey: key]; - - if ([values indexOfObject: name] != NSNotFound) { - data = [NSTimeZone_win32 - _getDataWithWindowsName: key - registryName: ®istryName]; - break; - } - } - - if (data == nil) { - [self release]; - return nil; - } - } - - _abbreviation = [[NSTimeZone_win32 - _registryNameToAbbreviation: registryName] retain]; - _data = [data retain]; - _name = [name retain]; - - return self; -} - -- (void) dealloc { - [_abbreviation release]; - [_data release]; - [_name release]; - - [super dealloc]; -} - -- (void) encodeWithCoder: (NSCoder *) coder { - NSInvalidAbstractInvocation(); -} - -- copyWithZone: (NSZone *) zone { - NSTimeZone_win32 *result = NSCopyObject(self, 0, zone); - - result->_data = [_data copy]; - result->_name = [_name copy]; - result->_abbreviation = [_abbreviation copy]; - - return result; -} - -+ (NSTimeZone *) systemTimeZone { - TIME_ZONE_INFORMATION timeZoneInformation; - NSString *timeZoneName; - - GetTimeZoneInformation(&timeZoneInformation); - timeZoneName = - NSStringFromNullTerminatedUnicode(timeZoneInformation.StandardName); - - return [self timeZoneWithName: timeZoneName]; -} - -- (NSInteger) secondsFromGMTForDate: (NSDate *) date { - SYSTEMTIME utc; - SYSTEMTIME local = [NSTimeZone_win32 _dateToSystemTime: date]; - TIME_ZONE_INFORMATION t = [self _timeZoneInformation]; - LPTIME_ZONE_INFORMATION tzip = &t; - NSDate *utcDate, *localDate; - - TzSpecificLocalTimeToSystemTime_priv(tzip, &local, &utc); - SystemTimeToTzSpecificLocalTime(tzip, &utc, &local); - - utcDate = [NSTimeZone_win32 _systemtimeToDate: utc]; - localDate = [NSTimeZone_win32 _systemtimeToDate: local]; - - return [localDate timeIntervalSinceReferenceDate] - - [utcDate timeIntervalSinceReferenceDate]; -} - -- (NSString *) abbreviationForDate: (NSDate *) date { - return _abbreviation; -} - -- (BOOL) isDaylightSavingTimeForDate: (NSDate *) date { - NSUnimplementedMethod(); - return NO; -} - -- (NSTimeInterval) daylightSavingTimeOffsetForDate: (NSDate *) date { - NSUnimplementedMethod(); - return 0; -} - -- (NSDate *) nextDaylightSavingTimeTransitionAfterDate: (NSDate *) date { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) localizedName: (NSTimeZoneNameStyle) style - locale: (NSLocale *) locale -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) description { - return [NSString stringWithFormat: @"<%@[0x%lx] name: %@ (%@)>", - [self class], self, [self name], - [self abbreviation]]; -} - -- (TIME_ZONE_INFORMATION) _timeZoneInformation { - TIME_ZONE_INFORMATION timezoneInformation; - REG_TZI_FORMAT *tzi = (REG_TZI_FORMAT *) [self->_data bytes]; - - timezoneInformation.Bias = tzi->Bias; - timezoneInformation.StandardDate = tzi->StandardDate; - timezoneInformation.StandardBias = tzi->StandardBias; - timezoneInformation.DaylightDate = tzi->DaylightDate; - timezoneInformation.DaylightBias = tzi->DaylightBias; - - return timezoneInformation; -} - -+ (NSData *) _windowsDataFromRegistry: (NSString *) registryname - stdName: (NSString **) stdName - daylightName: (NSString **) daylightName -{ - HKEY hTimeZoneKey; - DWORD retCode; - TCHAR valueName[MAX_VALUE_NAME]; - - NSString *regPath = - [NSString stringWithFormat: @"SOFTWARE\\Microsoft\\Windows " - @"NT\\CurrentVersion\\Time Zones\\%@", - registryname]; - - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT([regPath cString]), 0, KEY_READ, - &hTimeZoneKey) == ERROR_SUCCESS) { - - @try { - DWORD subKeys; - DWORD maxSubKey; - DWORD cValues; - - RegQueryInfoKey(hTimeZoneKey, NULL, NULL, NULL, &subKeys, - &maxSubKey, NULL, &cValues, NULL, NULL, NULL, NULL); - - if (cValues) { - char stdname[200] = {0}; - char daylightname[200] = {0}; - BYTE tzdata[44] = {0}; - int j; - BOOL dataset = NO; - BOOL nameset = NO; - BOOL daylightnameset = NO; - - for (j = 0, retCode = ERROR_SUCCESS; j < cValues; j++) { - BYTE lpData[200]; - DWORD dataSize = 200; - DWORD valueLength = MAX_VALUE_NAME; - valueName[0] = '\0'; - - retCode = RegEnumValue(hTimeZoneKey, j, valueName, - &valueLength, NULL, NULL, lpData, - &dataSize); - if (retCode == ERROR_SUCCESS) { - if (strcmp(valueName, "Std") == 0) { - strcpy(stdname, lpData); - nameset = YES; - } else if (strcmp(valueName, "Dlt") == 0) { - strcpy(daylightname, lpData); - daylightnameset = YES; - } else if (strcmp(valueName, "TZI") == 0) { - if (dataSize == 44) { - memcpy(tzdata, lpData, dataSize); - dataset = YES; - } - } - - if (dataset == YES && nameset == YES && - daylightnameset == YES) { - - if (stdName != NULL) { - *stdName = - [NSString stringWithCString: stdname]; - } - if (daylightName != NULL) { - *daylightName = [NSString - stringWithCString: daylightname]; - } - RegCloseKey(hTimeZoneKey); - - return [NSData dataWithBytes: tzdata length: 44]; - } - } - } - } - - RegCloseKey(hTimeZoneKey); - } @catch (NSException *exception) { - RegCloseKey(hTimeZoneKey); - //[exception raise]; - return nil; - } - } - - return nil; -} - -+ (NSData *) _getDataWithWindowsName: (NSString *) name - registryName: (NSString **) registryName -{ - HKEY hTimeZonesKey; - - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, - TEXT("SOFTWARE\\Microsoft\\Windows " - "NT\\CurrentVersion\\Time Zones"), - 0, KEY_READ, &hTimeZonesKey) == ERROR_SUCCESS) { - @try { - TCHAR achKey[MAX_KEY_LENGTH]; // buffer for subkey name - DWORD cbName; // size of name string - DWORD cSubKeys = 0; // number of subkeys - - DWORD i; - - TCHAR achValue[MAX_VALUE_NAME]; - DWORD cchValue = MAX_VALUE_NAME; - - RegQueryInfoKey(hTimeZonesKey, NULL, NULL, NULL, &cSubKeys, NULL, - NULL, NULL, NULL, NULL, NULL, NULL); - - if (cSubKeys) { - for (i = 0; i < cSubKeys; i++) { - - NSData *data; - cbName = MAX_KEY_LENGTH; - HKEY hTimeZoneKey; - if (ERROR_SUCCESS == RegEnumKeyEx(hTimeZonesKey, i, achKey, - &cbName, NULL, NULL, NULL, - NULL)) { - - NSString *daylightName; - NSString *normname; - - if ((data = [NSTimeZone_win32 - _windowsDataFromRegistry: - [NSString - stringWithCString: achKey] - stdName: &normname - daylightName: & - daylightName]) != - nil) { - if ([name isEqualToString: - [NSString stringWithCString: - achKey]] || - [name isEqualToString: normname]) { - if (registryName != NULL) { - *registryName = [NSString - stringWithCString: achKey]; - } - return data; - } - } - } - } - } - RegCloseKey(hTimeZonesKey); - } @catch (NSException *exception) { - RegCloseKey(hTimeZonesKey); - //[exception raise]; - return nil; - } - } else { - //[NSException raise:NSInvalidArgumentException format:@"No time zone - // found in registry"]; - return nil; - } - - return nil; -} - -+ (NSDate *) _systemtimeToDate: (SYSTEMTIME) systemtime { - FILETIME filetime; - - SystemTimeToFileTime(&systemtime, &filetime); - - return [NSDate dateWithTimeIntervalSinceReferenceDate: - Win32TimeIntervalFromFileTime(filetime)]; -} - -+ (SYSTEMTIME) _dateToSystemTime: (NSDate *) date { - SYSTEMTIME systemtime; - NSTimeInterval interval = [date timeIntervalSinceReferenceDate]; - - systemtime.wYear = NSYearFromTimeInterval(interval); - systemtime.wMonth = NSMonthFromTimeInterval(interval); - systemtime.wDayOfWeek = NSWeekdayFromTimeInterval(interval) - 1; - systemtime.wDay = NSDayOfMonthFromTimeInterval(interval); - systemtime.wHour = NS24HourFromTimeInterval(interval); - systemtime.wMinute = NSMinuteFromTimeInterval(interval); - systemtime.wSecond = NSSecondFromTimeInterval(interval); - systemtime.wMilliseconds = NSMillisecondsFromTimeInterval(interval); - - return systemtime; -} - -+ (NSDictionary *) _windowsZones { - static NSDictionary *windowsZonesDictionary = nil; - - if (windowsZonesDictionary == nil) { - NSString *pathToPlist = [[NSBundle bundleForClass: self] - pathForResource: @"NSTimeZoneWindowsZones" - ofType: @"plist"]; - windowsZonesDictionary = [[NSDictionary allocWithZone: NULL] - initWithContentsOfFile: pathToPlist]; - } - - return windowsZonesDictionary; -} - -+ (NSString *) _registryNameToAbbreviation: (NSString *) registryName { - - NSArray *components; - NSMutableString *result; - - if ([registryName isEqualToString: @"UTC"]) { - return registryName; - } - - components = [registryName componentsSeparatedByString: @" "]; - result = [NSMutableString string]; - - for (NSString *element in components) { - [result appendString: [element substringToIndex: 1]]; - } - return result; -} - -@end -#endif diff --git a/Foundation/platform_windows/dllmain.m b/Foundation/platform_windows/dllmain.m deleted file mode 100644 index ecf41d71..00000000 --- a/Foundation/platform_windows/dllmain.m +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef WINDOWS -#import -#include -#include - -int OBJCRegisterDLL(HINSTANCE handle); - -int APIENTRY DllMain(HINSTANCE handle, DWORD reason, LPVOID _reserved) { - if (reason == DLL_PROCESS_ATTACH) { - __NSInitializeProcess(__argc, (const char **) __argv); - return OBJCRegisterDLL(handle); - } - - if (reason == DLL_THREAD_DETACH) { - return TRUE; - } - return TRUE; -} -#endif diff --git a/Foundation/xml/NSXMLDTD.h b/Foundation/xml/NSXMLDTD.h deleted file mode 100644 index 26c1d974..00000000 --- a/Foundation/xml/NSXMLDTD.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSXMLDTDNode, NSURL, NSData, NSMutableArray; - -@interface NSXMLDTD : NSXMLNode { - NSString *_publicID; - NSString *_systemID; -} - -+ (NSXMLDTDNode *) predefinedEntityDeclarationForName: (NSString *) name; - -- (instancetype) initWithData: (NSData *) data - options: (NSUInteger) options - error: (NSError **) error; -- (instancetype) initWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) error; - -- (NSString *) publicID; -- (NSString *) systemID; - -- (NSXMLDTDNode *) attributeDeclarationForName: (NSString *) attributeName - elementName: (NSString *) elementName; -- (NSXMLDTDNode *) elementDeclarationForName: (NSString *) name; -- (NSXMLDTDNode *) entityDeclarationForName: (NSString *) name; -- (NSXMLDTDNode *) notationDeclarationForName: (NSString *) name; - -- (void) setPublicID: (NSString *) publicID; -- (void) setSystemID: (NSString *) systemID; - -- (void) setChildren: (NSArray *) children; - -- (void) addChild: (NSXMLNode *) node; -- (void) insertChild: (NSXMLNode *) child atIndex: (NSUInteger) index; -- (void) insertChildren: (NSArray *) children atIndex: (NSUInteger) index; -- (void) removeChildAtIndex: (NSUInteger) index; -- (void) replaceChildAtIndex: (NSUInteger) index withNode: (NSXMLNode *) node; - -@end diff --git a/Foundation/xml/NSXMLDTD.m b/Foundation/xml/NSXMLDTD.m deleted file mode 100644 index 77799b92..00000000 --- a/Foundation/xml/NSXMLDTD.m +++ /dev/null @@ -1,117 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@implementation NSXMLDTD - -+ (NSXMLDTDNode *) predefinedEntityDeclarationForName: (NSString *) name { - NSUnimplementedMethod(); - return nil; -} - -- initWithData: (NSData *) data - options: (NSUInteger) options - error: (NSError **) error -{ - NSUnimplementedMethod(); - return nil; -} - -- initWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) error -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) publicID { - return _publicID; -} - -- (NSString *) systemID { - return _systemID; -} - -- (NSXMLDTDNode *) attributeDeclarationForName: (NSString *) attributeName - elementName: (NSString *) elementName -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSXMLDTDNode *) elementDeclarationForName: (NSString *) name { - NSUnimplementedMethod(); - return nil; -} - -- (NSXMLDTDNode *) entityDeclarationForName: (NSString *) name { - NSUnimplementedMethod(); - return nil; -} - -- (NSXMLDTDNode *) notationDeclarationForName: (NSString *) name { - NSUnimplementedMethod(); - return nil; -} - -- (void) setPublicID: (NSString *) publicID { - publicID = [publicID copy]; - [_publicID release]; - _publicID = publicID; -} - -- (void) setSystemID: (NSString *) systemID { - systemID = [systemID copy]; - [_systemID release]; - _systemID = systemID; -} - -- (void) setChildren: (NSArray *) children { - [_children setArray: children]; -} - -- (void) addChild: (NSXMLNode *) node { - [_children addObject: node]; -} - -- (void) insertChild: (NSXMLNode *) child atIndex: (NSUInteger) index { - [_children insertObject: child atIndex: index]; -} - -- (void) insertChildren: (NSArray *) children atIndex: (NSUInteger) index { - NSInteger i, count = [children count]; - - for (i = 0; i < count; i++) - [_children insertObject: [children objectAtIndex: i] - atIndex: index + i]; -} - -- (void) removeChildAtIndex: (NSUInteger) index { - [_children removeObjectAtIndex: index]; -} - -- (void) replaceChildAtIndex: (NSUInteger) index withNode: (NSXMLNode *) node { - [_children replaceObjectAtIndex: index withObject: node]; -} - -@end diff --git a/Foundation/xml/NSXMLDTDNode.h b/Foundation/xml/NSXMLDTDNode.h deleted file mode 100644 index d4af5518..00000000 --- a/Foundation/xml/NSXMLDTDNode.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef int NSXMLDTDNodeKind; - -@interface NSXMLDTDNode : NSXMLNode { - NSXMLDTDNodeKind _dtdKind; - NSString *_notationName; - NSString *_publicID; - NSString *_systemID; -} - -- (instancetype) initWithXMLString: (NSString *) string; - -- (NSXMLDTDNodeKind) DTDKind; -- (BOOL) isExternal; -- (NSString *) notationName; -- (NSString *) publicID; -- (NSString *) systemID; - -- (void) setDTDKind: (NSXMLDTDNodeKind) kind; -- (void) setNotationName: (NSString *) name; -- (void) setPublicID: (NSString *) publicID; -- (void) setSystemID: (NSString *) systemID; - -@end diff --git a/Foundation/xml/NSXMLDTDNode.m b/Foundation/xml/NSXMLDTDNode.m deleted file mode 100644 index 45d19f11..00000000 --- a/Foundation/xml/NSXMLDTDNode.m +++ /dev/null @@ -1,71 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@implementation NSXMLDTDNode - -- initWithXMLString: (NSString *) string { - return nil; -} - -- (NSXMLDTDNodeKind) DTDKind { - return _dtdKind; -} - -- (BOOL) isExternal { - return 0; -} - -- (NSString *) notationName { - return _notationName; -} - -- (NSString *) publicID { - return _publicID; -} - -- (NSString *) systemID { - return _systemID; -} - -- (void) setDTDKind: (NSXMLDTDNodeKind) kind { - _dtdKind = kind; -} - -- (void) setNotationName: (NSString *) name { - name = [name copy]; - [_notationName release]; - _notationName = name; -} - -- (void) setPublicID: (NSString *) publicID { - publicID = [publicID copy]; - [_publicID release]; - _publicID = publicID; -} - -- (void) setSystemID: (NSString *) systemID { - systemID = [systemID copy]; - [_systemID release]; - _systemID = systemID; -} - -@end diff --git a/Foundation/xml/NSXMLDocument.h b/Foundation/xml/NSXMLDocument.h deleted file mode 100644 index 66eff140..00000000 --- a/Foundation/xml/NSXMLDocument.h +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSXMLDTD, NSURL, NSData, NSMutableArray; - -enum { - NSXMLDocumentXMLKind = 0, - NSXMLDocumentXHTMLKind = 1, - NSXMLDocumentHTMLKind = 2, - NSXMLDocumentTextKind = 3, -}; - -typedef NSUInteger NSXMLDocumentContentKind; - -@interface NSXMLDocument : NSXMLNode { - NSXMLDocumentContentKind _contentKind; - NSString *_version; - NSString *_characterEncoding; - NSString *_mimeType; - BOOL _isStandalone; - - NSXMLElement *_rootElement; - NSXMLDTD *_dtd; - NSString *_uri; - - // parsing state, should be moved out - NSMutableArray *_elementStack; -} - -+ (Class) replacementClassForClass: (Class) aClass; - -- (instancetype) initWithRootElement: (NSXMLElement *) element; -- (instancetype) initWithXMLString: (NSString *) string - options: (NSUInteger) options - error: (NSError **) error; -- (instancetype) initWithData: (NSData *) data - options: (NSUInteger) options - error: (NSError **) error; -- (instancetype) initWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) error; - -- (NSXMLDocumentContentKind) documentContentKind; -- (NSString *) version; -- (NSString *) characterEncoding; -- (NSString *) MIMEType; -- (BOOL) isStandalone; -- (NSXMLElement *) rootElement; -- (NSXMLDTD *) DTD; -- (NSString *) URI; - -- (void) setDocumentContentKind: (NSXMLDocumentContentKind) kind; -- (void) setCharacterEncoding: (NSString *) encoding; -- (void) setVersion: (NSString *) version; -- (void) setMIMEType: (NSString *) mimeType; -- (void) setStandalone: (BOOL) flag; -- (void) setRootElement: (NSXMLNode *) element; -- (void) setDTD: (NSXMLDTD *) dtd; -- (void) setURI: (NSString *) uri; - -- (void) setChildren: (NSArray *) children; -- (void) addChild: (NSXMLNode *) child; -- (void) insertChild: (NSXMLNode *) child atIndex: (NSUInteger) index; -- (void) insertChildren: (NSArray *) children atIndex: (NSUInteger) index; -- (void) removeChildAtIndex: (NSUInteger) index; -- (void) replaceChildAtIndex: (NSUInteger) index withNode: (NSXMLNode *) node; - -- (BOOL) validateAndReturnError: (NSError **) error; - -- (NSData *) XMLData; -- (NSData *) XMLDataWithOptions: (NSUInteger) options; - -- (id) objectByApplyingXSLT: (NSData *) xslt - arguments: (NSDictionary *) arguments - error: (NSError *) error; -- (id) objectByApplyingXSLTAtURL: (NSURL *) url - arguments: (NSDictionary *) arguments - error: (NSError *) error; -- (id) objectByApplyingXSLTString: (NSString *) string - arguments: (NSDictionary *) arguments - error: (NSError *) error; - -@end diff --git a/Foundation/xml/NSXMLDocument.m b/Foundation/xml/NSXMLDocument.m deleted file mode 100644 index 4b3cdcb9..00000000 --- a/Foundation/xml/NSXMLDocument.m +++ /dev/null @@ -1,302 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import - -@implementation NSXMLDocument - -+ (Class) replacementClassForClass: (Class) class { - return class; -} - -- init { - [super initWithKind: NSXMLDocumentKind options: NSXMLNodeOptionsNone]; - return self; -} - -- initWithRootElement: (NSXMLElement *) element { - NSUnimplementedMethod(); - return nil; -} - -- initWithXMLString: (NSString *) string - options: (NSUInteger) options - error: (NSError **) error -{ - NSUnimplementedMethod(); - return nil; -} - -- (void) parser: (NSXMLParser *) parser - didStartElement: (NSString *) elementName - namespaceURI: (NSString *) namespaceURI - qualifiedName: (NSString *) qualifiedName - attributes: (NSDictionary *) attributes -{ - NSXMLElement *element = [[NSXMLElement alloc] initWithName: elementName]; - - // NSLog(@"element=%@",[element name]); - - [element setAttributesAsDictionary: attributes]; - - NSXMLElement *parent = [_elementStack lastObject]; - // NSLog(@"parent=%@",[parent name]); - [parent addChild: element]; - - [_elementStack addObject: element]; - - if ([_elementStack count] == 1) - [self addChild: element]; -} - -- (void) parser: (NSXMLParser *) parser - didEndElement: (NSString *) elementName - namespaceURI: (NSString *) namespaceURI - qualifiedName: (NSString *) qualifiedName -{ - [_elementStack removeLastObject]; -} - -- (void) parser: (NSXMLParser *) parser foundCharacters: (NSString *) string { - NSXMLElement *element = [_elementStack lastObject]; - - // NSLog(@"foundCharacters=%@",string); - [element setStringValue: [[element stringValue] - stringByAppendingString: string]]; -} - -- (void) parser: (NSXMLParser *) parser - foundIgnorableWhitespace: (NSString *) whitespace -{ - - if (_options & NSXMLDocumentTidyXML) - return; - - [self parser: parser foundCharacters: whitespace]; -} - -- initWithData: (NSData *) data - options: (NSUInteger) options - error: (NSError **) error -{ - [super initWithKind: NSXMLDocumentKind options: NSXMLNodeOptionsNone]; - // NSLog(@"xml=%@",[[[NSString alloc] initWithData:data - // encoding:NSUTF8StringEncoding] autorelease]); - NSXMLParser *parser = [[NSXMLParser alloc] initWithData: data]; - - [parser setDelegate: self]; - _options = options; - _elementStack = [[NSMutableArray alloc] init]; - - if (![parser parse]) { - [self dealloc]; - - if (error != NULL) - *error = [[[parser parserError] retain] autorelease]; - - [parser release]; - return nil; - } - - [parser release]; - - return self; -} - -- initWithContentsOfURL: (NSURL *) url - options: (NSUInteger) options - error: (NSError **) error -{ - NSData *data = [NSData dataWithContentsOfURL: url options: 0 error: error]; - - if (data == nil) { - [self dealloc]; - return nil; - } - - return [self initWithData: data options: options error: error]; -} - -- (void) dealloc { - [_elementStack release]; - [_rootElement release]; - [super dealloc]; -} - -- (NSXMLDocumentContentKind) documentContentKind { - return _contentKind; -} - -- (NSString *) version { - return _version; -} - -- (NSString *) characterEncoding { - return _characterEncoding; -} - -- (NSString *) MIMEType { - return _mimeType; -} - -- (BOOL) isStandalone { - return _isStandalone; -} - -- (NSXMLElement *) rootElement { - return [_children count] ? [_children objectAtIndex: 0] : nil; -} - -- (NSXMLDTD *) DTD { - return _dtd; -} - -- (NSString *) URI { - return _uri; -} - -- (void) setDocumentContentKind: (NSXMLDocumentContentKind) kind { - _contentKind = kind; -} - -- (void) setCharacterEncoding: (NSString *) encoding { - encoding = [encoding copy]; - [_characterEncoding release]; - _characterEncoding = encoding; -} - -- (void) setVersion: (NSString *) version { - version = [version copy]; - [_version release]; - _version = version; -} - -- (void) setMIMEType: (NSString *) mimeType { - mimeType = [mimeType copy]; - [_mimeType release]; - _mimeType = mimeType; -} - -- (void) setStandalone: (BOOL) flag { - _isStandalone = flag; -} - -- (void) setRootElement: (NSXMLNode *) element { - element = [element retain]; - [_rootElement release]; - _rootElement = (NSXMLElement *) element; -} - -- (void) setDTD: (NSXMLDTD *) dtd { - dtd = [dtd retain]; - [_dtd release]; - _dtd = dtd; -} - -- (void) setURI: (NSString *) uri { - uri = [uri copy]; - [_uri release]; - _uri = uri; -} - -- (void) setChildren: (NSArray *) children { - [_children setArray: children]; -} - -- (void) addChild: (NSXMLNode *) node { - [_children addObject: node]; -} - -- (void) insertChild: (NSXMLNode *) child atIndex: (NSUInteger) index { - [_children insertObject: child atIndex: index]; -} - -- (void) insertChildren: (NSArray *) children atIndex: (NSUInteger) index { - NSInteger i, count = [children count]; - - for (i = 0; i < count; i++) - [_children insertObject: [children objectAtIndex: i] - atIndex: index + i]; -} - -- (void) removeChildAtIndex: (NSUInteger) index { - [_children removeObjectAtIndex: index]; -} - -- (void) replaceChildAtIndex: (NSUInteger) index withNode: (NSXMLNode *) node { - [_children replaceObjectAtIndex: index withObject: node]; -} - -- (BOOL) validateAndReturnError: (NSError **) error { - NSUnimplementedMethod(); - return NO; -} - -- (NSString *) XMLStringWithOptions: (NSUInteger) options { - NSMutableString *result = [NSMutableString string]; - - [result appendString: @""]; - - for (NSXMLNode *node in _children) - [result appendString: [node XMLStringWithOptions: options]]; - - return result; -} - -- (NSData *) XMLData { - return [self XMLDataWithOptions: NSXMLNodeOptionsNone]; -} - -- (NSData *) XMLDataWithOptions: (NSUInteger) options { - NSString *string = [self XMLStringWithOptions: options]; - - return [string dataUsingEncoding: NSUTF8StringEncoding]; -} - -- objectByApplyingXSLT: (NSData *) xslt - arguments: (NSDictionary *) arguments - error: (NSError *) error -{ - NSUnimplementedMethod(); - return nil; -} - -- objectByApplyingXSLTAtURL: (NSURL *) url - arguments: (NSDictionary *) arguments - error: (NSError *) error -{ - NSUnimplementedMethod(); - return nil; -} - -- objectByApplyingXSLTString: (NSString *) string - arguments: (NSDictionary *) arguments - error: (NSError *) error -{ - NSUnimplementedMethod(); - return nil; -} - -@end diff --git a/Foundation/xml/NSXMLElement.h b/Foundation/xml/NSXMLElement.h deleted file mode 100644 index e8f8170e..00000000 --- a/Foundation/xml/NSXMLElement.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@class NSXMLNode, NSArray, NSError, NSDictionary, NSMutableDictionary, - NSMutableArray; - -@interface NSXMLElement : NSXMLNode { - NSMutableDictionary *_attributes; - NSMutableDictionary *_namespaces; -} - -- (instancetype) initWithName: (NSString *) name; -- (instancetype) initWithName: (NSString *) name - stringValue: (NSString *) string; -- (instancetype) initWithName: (NSString *) name URI: (NSString *) uri; -- (instancetype) initWithXMLString: (NSString *) xml error: (NSError **) error; - -- (NSArray *) attributes; -- (NSXMLNode *) attributeForLocalName: (NSString *) name URI: (NSString *) uri; -- (NSXMLNode *) attributeForName: (NSString *) name; -- (NSArray *) elementsForLocalName: (NSString *) localName - URI: (NSString *) uri; -- (NSArray *) elementsForName: (NSString *) name; -- (NSArray *) namespaces; -- (NSXMLNode *) namespaceForPrefix: (NSString *) prefix; - -- (void) setAttributes: (NSArray *) attributes; -- (void) setAttributesAsDictionary: (NSDictionary *) attributes; -- (void) setChildren: (NSArray *) children; -- (void) setNamespaces: (NSArray *) namespaces; - -- (void) addChild: (NSXMLNode *) child; -- (void) insertChild: (NSXMLNode *) child atIndex: (NSUInteger) index; -- (void) insertChildren: (NSArray *) children atIndex: (NSUInteger) index; -- (void) removeChildAtIndex: (NSUInteger) index; -- (void) replaceChildAtIndex: (NSUInteger) index withNode: (NSXMLNode *) node; - -- (void) addAttribute: (NSXMLNode *) attribute; -- (void) removeAttributeForName: (NSString *) name; - -- (void) addNamespace: (NSXMLNode *) aNamespace; -- (void) removeNamespaceForPrefix: (NSString *) prefix; - -- (void) resolveNamespaceForName: (NSString *) name; -- (void) resolvePrefixForNamespaceURI: (NSString *) uri; - -- (void) normalizeAdjacentTextNodesPreservingCDATA: (BOOL) preserve; - -@end diff --git a/Foundation/xml/NSXMLElement.m b/Foundation/xml/NSXMLElement.m deleted file mode 100644 index 18dfb184..00000000 --- a/Foundation/xml/NSXMLElement.m +++ /dev/null @@ -1,261 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import - -@implementation NSXMLElement - -- initWithName: (NSString *) name { - [super initWithKind: NSXMLElementKind options: NSXMLNodeOptionsNone]; - _name = [name copy]; - _attributes = [[NSMutableDictionary alloc] init]; - _namespaces = [[NSMutableDictionary alloc] init]; - return self; -} - -- initWithName: (NSString *) name stringValue: (NSString *) string { - [self initWithName: name]; - _value = [string copy]; - return self; -} - -- initWithName: (NSString *) name URI: (NSString *) uri { - NSUnimplementedMethod(); - return 0; -} - -- initWithXMLString: (NSString *) xml error: (NSError **) error { - NSUnimplementedMethod(); - return 0; -} - -- copyWithZone: (NSZone *) zone { - NSUnimplementedMethod(); - return 0; -} - -- (NSArray *) attributes { - return [_attributes allValues]; -} - -- (NSXMLNode *) attributeForLocalName: (NSString *) name URI: (NSString *) uri { - NSUnimplementedMethod(); - return 0; -} - -- (NSXMLNode *) attributeForName: (NSString *) name { - return [_attributes objectForKey: name]; -} - -- (NSArray *) elementsForLocalName: (NSString *) localName - URI: (NSString *) uri -{ - NSUnimplementedMethod(); - return 0; -} - -- (NSArray *) elementsForName: (NSString *) name { - NSMutableArray *result = [NSMutableArray array]; - - for (NSXMLNode *node in _children) - if ([[node name] isEqualToString: name]) - [result addObject: node]; - - return result; -} - -- (NSArray *) namespaces { - NSUnimplementedMethod(); - return 0; -} - -- (NSXMLNode *) namespaceForPrefix: (NSString *) prefix { - NSUnimplementedMethod(); - return 0; -} - -- (void) setAttributes: (NSArray *) attributes { - NSInteger i, count = [attributes count]; - - [_attributes removeAllObjects]; - - for (i = 0; i < count; i++) { - NSXMLNode *add = [attributes objectAtIndex: i]; - - [_attributes setObject: add forKey: [add name]]; - } -} - -- (void) setAttributesAsDictionary: (NSDictionary *) attributes { - NSEnumerator *state = [attributes keyEnumerator]; - NSString *name; - - [_attributes removeAllObjects]; - - while ((name = [state nextObject]) != nil) { - NSString *value = [attributes objectForKey: name]; - NSXMLNode *node = [NSXMLNode attributeWithName: name - stringValue: value]; - - [_attributes setObject: node forKey: name]; - } -} - -- (void) setChildren: (NSArray *) children { - [_children setArray: children]; -} - -- (void) setNamespaces: (NSArray *) namespaces { - [_namespaces removeAllObjects]; -} - -- (void) addChild: (NSXMLNode *) node { - node->_parent = self; - [_children addObject: node]; -} - -- (void) insertChild: (NSXMLNode *) child atIndex: (NSUInteger) index { - [_children insertObject: child atIndex: index]; -} - -- (void) insertChildren: (NSArray *) children atIndex: (NSUInteger) index { - NSInteger i, count = [children count]; - - for (i = 0; i < count; i++) - [_children insertObject: [children objectAtIndex: i] - atIndex: index + i]; -} - -- (void) removeChildAtIndex: (NSUInteger) index { - [_children removeObjectAtIndex: index]; -} - -- (void) replaceChildAtIndex: (NSUInteger) index withNode: (NSXMLNode *) node { - [_children replaceObjectAtIndex: index withObject: node]; -} - -- (void) addAttribute: (NSXMLNode *) attribute { - [_attributes setObject: attribute forKey: [attribute name]]; -} - -- (void) removeAttributeForName: (NSString *) name { - [_attributes removeObjectForKey: name]; -} - -- (void) addNamespace: (NSXMLNode *) namespace { - [_namespaces setObject: namespace forKey: [namespace prefix]]; -} - -- (void) removeNamespaceForPrefix: (NSString *) prefix { - [_namespaces removeObjectForKey: prefix]; -} - -- (void) resolveNamespaceForName: (NSString *) name { - NSUnimplementedMethod(); -} - -- (void) resolvePrefixForNamespaceURI: (NSString *) uri { - NSUnimplementedMethod(); -} - -- (void) normalizeAdjacentTextNodesPreservingCDATA: (BOOL) preserve { - NSUnimplementedMethod(); -} - -static void appendStringWithCharacterEntities(NSMutableString *result, - NSString *string) -{ - NSUInteger i, length = [string length], location = 0; - unichar buffer[length]; - - [string getCharacters: buffer]; - - for (i = 0; i < length; i++) { - unichar code = buffer[i]; - NSString *entity = nil; - - if (code == '<') - entity = @"<"; - else if (code == '&') - entity = @"&"; - else if (code == '>') - entity = @">"; - else if (code == '\"') - entity = @"""; - else if (code == '\'') - entity = @"'"; - - if (entity != nil) { - if (i - location > 0) { - NSString *chunk = - [[NSString alloc] initWithCharacters: buffer + location - length: i - location]; - [result appendString: chunk]; - [chunk release]; - } - - [result appendString: entity]; - location = i + 1; - } - } - - if (location == 0) - [result appendString: string]; - else if (i - location > 0) { - NSString *chunk = - [[NSString alloc] initWithCharacters: buffer + location - length: i - location]; - [result appendString: chunk]; - [chunk release]; - } -} - -- (NSString *) XMLStringWithOptions: (NSUInteger) options { - NSMutableString *result = [NSMutableString string]; - - [result appendString: @"<"]; - [result appendString: [self name]]; - - for (NSXMLNode *attribute in [self attributes]) { - [result appendString: @" "]; - [result appendString: [attribute XMLStringWithOptions: options]]; - } - - [result appendString: @">"]; - - for (NSXMLNode *element in [self children]) { - [result appendString: @" "]; - [result appendString: [element XMLStringWithOptions: options]]; - } - - appendStringWithCharacterEntities(result, [self stringValue]); - - [result appendString: @"\n"]; - - return result; -} - -@end diff --git a/Foundation/xml/NSXMLNode.h b/Foundation/xml/NSXMLNode.h deleted file mode 100644 index c4169a6d..00000000 --- a/Foundation/xml/NSXMLNode.h +++ /dev/null @@ -1,136 +0,0 @@ -/* -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@class NSArray, NSError, NSDictionary, NSXMLElement, NSXMLNode, NSXMLDocument, - NSMutableArray; - -typedef enum { - NSXMLInvalidKind, - NSXMLDocumentKind, - NSXMLElementKind, - NSXMLAttributeKind, - NSXMLNamespaceKind, - NSXMLProcessingInstructionKind, - NSXMLCommentKind, - NSXMLTextKind, - NSXMLDTDKind, - NSXMLEntityDeclarationKind, - NSXMLAttributeDeclarationKind, - NSXMLElementDeclarationKind, - NSXMLNotationDeclarationKind -} NSXMLNodeKind; - -enum { - NSXMLNodeOptionsNone, - NSXMLNodeIsCDATA, - NSXMLNodeExpandEmptyElement, - NSXMLNodeCompactEmptyElement, - NSXMLNodeUseSingleQuotes, - NSXMLNodeUseDoubleQuotes, - NSXMLNodePrettyPrint, - NSXMLNodePreserveNamespaceOrder, - NSXMLNodePreserveAttributeOrder, - NSXMLNodePreserveEntities, - NSXMLNodePreserveCharacterReferences, - NSXMLNodePreservePrefixes, - NSXMLNodePreserveCDATA, - NSXMLNodePreserveWhitespace, - NSXMLNodePreserveEmptyElements, - NSXMLNodePreserveQuotes, - NSXMLNodePreserveDTD, - NSXMLNodePreserveAll, -}; - -@interface NSXMLNode : NSObject { - NSXMLNode *_parent; - NSMutableArray *_children; - NSUInteger _index; - NSXMLNodeKind _kind; - NSUInteger _options; - NSString *_name; - id _value; -} - -+ (id) document; -+ (id) documentWithRootElement: (NSXMLElement *) element; - -+ (id) elementWithName: (NSString *) name; -+ (id) elementWithName: (NSString *) name - children: (NSArray *) children - attributes: (NSArray *) attributes; -+ (id) elementWithName: (NSString *) name stringValue: (NSString *) string; - -+ (id) attributeWithName: (NSString *) name stringValue: (NSString *) string; - -+ (id) commentWithStringValue: (NSString *) string; -+ (id) textWithStringValue: (NSString *) string; -+ (id) processingInstructionWithName: (NSString *) name - stringValue: (NSString *) string; - -+ (id) DTDNodeWithXMLString: (NSString *) string; -+ (id) namespaceWithName: (NSString *) name stringValue: (NSString *) string; -+ (NSXMLNode *) predefinedNamespaceForPrefix: (NSString *) prefix; - -+ (NSString *) prefixForName: (NSString *) name; -+ (NSString *) localNameForName: (NSString *) name; - -- (instancetype) initWithKind: (NSXMLNodeKind) kind; -- (instancetype) initWithKind: (NSXMLNodeKind) kind - options: (NSUInteger) options; - -- (NSUInteger) index; -- (NSXMLNodeKind) kind; -- (NSUInteger) level; -- (NSString *) localName; -- (NSString *) name; -- (NSXMLNode *) nextNode; -- (NSXMLNode *) nextSibling; -- (NSString *) stringValue; -- (NSString *) URI; -- (id) objectValue; -- (NSXMLNode *) parent; -- (NSString *) prefix; -- (NSXMLNode *) previousNode; -- (NSXMLNode *) previousSibling; -- (NSXMLDocument *) rootDocument; - -- (NSUInteger) childCount; -- (NSArray *) children; -- (NSXMLNode *) childAtIndex: (NSUInteger) index; - -- (void) setName: (NSString *) name; -- (void) setObjectValue: object; -- (void) setStringValue: (NSString *) string; -- (void) setStringValue: (NSString *) string - resolvingEntities: (BOOL) resolveEntities; - -- (void) detach; -- (NSArray *) nodesForXPath: (NSString *) xpath error: (NSError **) error; -- (NSArray *) objectsForXQuery: (NSString *) xquery - constants: (NSDictionary *) constants - error: (NSError **) error; -- (NSArray *) objectsForXQuery: (NSString *) xquery error: (NSError **) error; -- (NSString *) XMLString; -- (NSString *) XMLStringWithOptions: (NSUInteger) options; -- (NSString *) XPath; -- (NSString *) canonicalXMLStringPreservingComments: (BOOL) comments; - -@end diff --git a/Foundation/xml/NSXMLNode.m b/Foundation/xml/NSXMLNode.m deleted file mode 100644 index 824f8a1d..00000000 --- a/Foundation/xml/NSXMLNode.m +++ /dev/null @@ -1,389 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import - -@implementation NSXMLNode - -+ document { - return [[[NSXMLDocument alloc] init] autorelease]; -} - -+ documentWithRootElement: (NSXMLElement *) element { - return [[[NSXMLDocument alloc] initWithRootElement: element] autorelease]; -} - -+ elementWithName: (NSString *) name { - return [[[NSXMLElement alloc] initWithName: name] autorelease]; -} - -+ elementWithName: (NSString *) name - children: (NSArray *) children - attributes: (NSArray *) attributes -{ - NSXMLElement *result = - [[[NSXMLElement alloc] initWithName: name] autorelease]; - - [result setChildren: children]; - [result setAttributes: attributes]; - - return result; -} - -+ elementWithName: (NSString *) name stringValue: (NSString *) string { - return [[[NSXMLElement alloc] initWithName: name - stringValue: string] autorelease]; -} - -+ attributeWithName: (NSString *) name stringValue: (NSString *) string { - NSXMLNode *result = - [[[self alloc] initWithKind: NSXMLAttributeKind] autorelease]; - - [result setName: name]; - [result setStringValue: string]; - - return result; -} - -+ commentWithStringValue: (NSString *) string { - NSXMLNode *result = - [[[self alloc] initWithKind: NSXMLCommentKind] autorelease]; - - [result setStringValue: string]; - - return result; -} - -+ textWithStringValue: (NSString *) string { - NSXMLNode *result = - [[[self alloc] initWithKind: NSXMLTextKind] autorelease]; - - [result setStringValue: string]; - - return result; -} - -+ processingInstructionWithName: (NSString *) name - stringValue: (NSString *) string -{ - NSXMLNode *result = [[[self alloc] - initWithKind: NSXMLProcessingInstructionKind] autorelease]; - - [result setName: name]; - [result setStringValue: string]; - - return result; -} - -+ DTDNodeWithXMLString: (NSString *) string { - return [[[NSXMLDTDNode alloc] initWithXMLString: string] autorelease]; -} - -+ namespaceWithName: (NSString *) name stringValue: (NSString *) string { - NSXMLNode *result = - [[[self alloc] initWithKind: NSXMLNamespaceKind] autorelease]; - - [result setName: name]; - [result setStringValue: string]; - - return result; -} - -+ (NSXMLNode *) predefinedNamespaceForPrefix: (NSString *) prefix { - NSUnimplementedMethod(); - return nil; -} - -+ (NSString *) prefixForName: (NSString *) name { - NSUnimplementedMethod(); - return nil; -} - -+ (NSString *) localNameForName: (NSString *) name { - NSUnimplementedMethod(); - return nil; -} - -- initWithKind: (NSXMLNodeKind) kind { - return [self initWithKind: kind options: NSXMLNodeOptionsNone]; -} - -- initWithKind: (NSXMLNodeKind) kind options: (NSUInteger) options { - _parent = nil; - _children = [[NSMutableArray alloc] init]; - _index = 0; - _kind = kind; - _options = options; - _name = nil; - _value = @""; // Behavior is empty string not null - return self; -} - -- (void) dealloc { - _parent = nil; - [_children release]; - [_name release]; - [_value release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - NSXMLNode *copy = NSCopyObject(self, 0, zone); - - copy->_name = [_name copy]; - copy->_value = [_value copy]; - - return copy; -} - -- (NSUInteger) index { - return _index; -} - -- (NSXMLNodeKind) kind { - return _kind; -} - -- (NSUInteger) level { - NSUnimplementedMethod(); - return 0; -} - -- (NSString *) localName { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) name { - return _name; -} - -- (NSXMLNode *) nextNode { - NSUnimplementedMethod(); - return nil; -} - -- (NSXMLNode *) nextSibling { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) stringValue { - return _value; -} - -- (NSString *) URI { - NSUnimplementedMethod(); - return nil; -} - -- objectValue { - return _value; -} - -- (NSXMLNode *) parent { - return _parent; -} - -- (NSString *) prefix { - NSUnimplementedMethod(); - return nil; -} - -- (NSXMLNode *) previousNode { - NSUnimplementedMethod(); - return nil; -} - -- (NSXMLNode *) previousSibling { - NSUnimplementedMethod(); - return nil; -} - -- (NSXMLDocument *) rootDocument { - NSUnimplementedMethod(); - return nil; -} - -- (NSUInteger) childCount { - return [_children count]; -} - -- (NSArray *) children { - return _children; -} - -- (NSXMLNode *) childAtIndex: (NSUInteger) index { - return [_children objectAtIndex: index]; -} - -- (void) setName: (NSString *) name { - name = [name copy]; - [_name release]; - _name = name; -} - -- (void) setObjectValue: object { - object = [object retain]; - [_value release]; - _value = object; -} - -- (void) setStringValue: (NSString *) string { - string = [string copy]; - [_value release]; - _value = string; -} - -- (void) setStringValue: (NSString *) string - resolvingEntities: (BOOL) resolveEntities -{ - NSUnimplementedMethod(); -} - -- (void) detach { - // [_parent removeChild:self]; - _parent = nil; -} - -- (NSArray *) nodesForXPath: (NSString *) xpath error: (NSError **) error { - NSMutableArray *result = [NSMutableArray array]; - NSRange range = [xpath rangeOfString: @"/"]; - - if (range.location == NSNotFound) { - - for (NSXMLNode *node in _children) { - - if ([xpath isEqualToString: @"*"]) - [result addObject: node]; - - if ([xpath isEqualToString: [node name]]) - [result addObject: node]; - } - } else { - NSString *firstComponent = - [xpath substringWithRange: NSMakeRange(0, range.location)]; - NSString *remainder = [xpath substringFromIndex: NSMaxRange(range)]; - - for (NSXMLNode *node in _children) { - - if ([firstComponent isEqualToString: @"*"]) - [result addObjectsFromArray: [node nodesForXPath: remainder - error: error]]; - - if ([firstComponent isEqualToString: [node name]]) - [result addObjectsFromArray: [node nodesForXPath: remainder - error: error]]; - } - } - - return result; -} - -- (NSArray *) objectsForXQuery: (NSString *) xquery - constants: (NSDictionary *) constants - error: (NSError **) error -{ - NSUnimplementedMethod(); - return nil; -} - -- (NSArray *) objectsForXQuery: (NSString *) xquery error: (NSError **) error { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) XMLString { - return [self XMLStringWithOptions: 0]; -} - -- (NSString *) XMLStringWithOptions: (NSUInteger) options { - NSMutableString *result = [NSMutableString string]; - - switch ([self kind]) { - - case NSXMLInvalidKind: - break; - - case NSXMLDocumentKind: - // Handled in subclass - break; - - case NSXMLElementKind: - // Handled in subclass - break; - - case NSXMLAttributeKind: - [result appendString: [self name]]; - [result appendString: @"=\""]; - [result appendString: [self stringValue]]; - [result appendString: @"\""]; - break; - - case NSXMLNamespaceKind: - break; - - case NSXMLProcessingInstructionKind: - break; - - case NSXMLCommentKind: - break; - - case NSXMLTextKind: - break; - - case NSXMLDTDKind: - break; - - case NSXMLEntityDeclarationKind: - break; - - case NSXMLAttributeDeclarationKind: - break; - - case NSXMLElementDeclarationKind: - break; - - case NSXMLNotationDeclarationKind: - break; - } - - return result; -} - -- (NSString *) XPath { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) canonicalXMLStringPreservingComments: (BOOL) comments { - NSUnimplementedMethod(); - return nil; -} - -- (NSString *) description { - return [self XMLString]; -} - -@end diff --git a/Foundation/xml/NSXMLNodeOptions.h b/Foundation/xml/NSXMLNodeOptions.h deleted file mode 100644 index 8568571e..00000000 --- a/Foundation/xml/NSXMLNodeOptions.h +++ /dev/null @@ -1,4 +0,0 @@ -enum { - NSXMLDocumentTidyHTML = 1UL << 9, - NSXMLDocumentTidyXML = 1UL << 10 -}; diff --git a/Foundation/xml/NSXMLParser.h b/Foundation/xml/NSXMLParser.h deleted file mode 100644 index 45c76ae5..00000000 --- a/Foundation/xml/NSXMLParser.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -@class NSURL, NSData, NSError, NSXMLParser, NSDictionary, NSMutableArray, - NSMutableDictionary; - -@protocol NSXMLParserDelegate - -- (void) parserDidStartDocument: (NSXMLParser *) parser; -- (void) parserDidEndDocument: (NSXMLParser *) parser; - -- (void) parser: (NSXMLParser *) parser - foundElementDeclarationWithName: (NSString *) elementName - model: (NSString *) model; -- (void) parser: (NSXMLParser *) parser - didStartElement: (NSString *) elementName - namespaceURI: (NSString *) namespaceURI - qualifiedName: (NSString *) qualifiedName - attributes: (NSDictionary *) attributes; -- (void) parser: (NSXMLParser *) parser - didEndElement: (NSString *) elementName - namespaceURI: (NSString *) namespaceURI - qualifiedName: (NSString *) qualifiedName; - -- (void) parser: (NSXMLParser *) parser - foundAttributeDeclarationWithName: (NSString *) attributeName - forElement: (NSString *) elementName - type: (NSString *) type - defaultValue: (NSString *) defaultValue; - -- (void) parser: (NSXMLParser *) parser - didStartMappingPrefix: (NSString *) prefix - toURI: (NSString *) uri; -- (void) parser: (NSXMLParser *) parser - didEndMappingPrefix: (NSString *) prefix; - -- (void) parser: (NSXMLParser *) parser foundCDATA: (NSData *) cdata; -- (void) parser: (NSXMLParser *) parser foundCharacters: (NSString *) string; -- (void) parser: (NSXMLParser *) parser foundComment: (NSString *) comment; -- (void) parser: (NSXMLParser *) parser - foundIgnorableWhitespace: (NSString *) whitespace; - -- (void) parser: (NSXMLParser *) parser - foundExternalEntityDeclarationWithName: (NSString *) entityName - publicID: (NSString *) publicID - systemID: (NSString *) systemID; -- (void) parser: (NSXMLParser *) parser - foundInternalEntityDeclarationWithName: (NSString *) entityName - value: (NSString *) value; -- (void) parser: (NSXMLParser *) parser - foundNotationDeclarationWithName: (NSString *) name - publicID: (NSString *) publicID - systemID: (NSString *) systemID; -- (void) parser: (NSXMLParser *) parser - foundProcessingInstructionWithTarget: (NSString *) target - data: (NSString *) data; -- (void) parser: (NSXMLParser *) parser - foundUnparsedEntityDeclarationWithName: (NSString *) name - publicID: (NSString *) publicID - systemID: (NSString *) systemID - notationName: (NSString *) notationName; -- (void) parser: (NSXMLParser *) parser - parseErrorOccurred: (NSError *) parseError; -- (NSData *) parser: (NSXMLParser *) parser - resolveExternalEntityName: (NSString *) entityName - systemID: (NSString *) systemID; -- (void) parser: (NSXMLParser *) parser - validationErrorOccurred: (NSError *) validationError; - -@end - -@interface NSXMLParser : NSObject { - NSData *_data; - id _delegate; - BOOL _shouldProcessNamespaces; - BOOL _shouldReportNamespacePrefixes; - BOOL _shouldResolveExternalEntities; - NSError *_parserError; - NSString *_systemID; - NSString *_publicID; - NSInteger _columnNumber; - NSInteger _lineNumber; - - // parsing state - const uint8_t *_bytes; - NSUInteger _length; - NSRange _range; - - NSMutableDictionary *_entityRefContents; - - int _state; - unichar _charRef; - NSMutableArray *_elementNameStack; - NSString *_currentAttributeName; - NSMutableDictionary *_currentAttributes; -} - -- (instancetype) initWithData: (NSData *) data; -- (instancetype) initWithContentsofURL: (NSURL *) url; - -- (id) delegate; -- (BOOL) shouldProcessNamespaces; -- (BOOL) shouldReportNamespacePrefixes; -- (BOOL) shouldResolveExternalEntities; - -- (void) setDelegate: delegate; -- (void) setShouldProcessNamespaces: (BOOL) flag; -- (void) setShouldReportNamespacePrefixes: (BOOL) flag; -- (void) setShouldResolveExternalEntities: (BOOL) flag; - -- (BOOL) parse; -- (void) abortParsing; -- (NSError *) parserError; - -- (NSString *) systemID; -- (NSString *) publicID; -- (NSInteger) columnNumber; -- (NSInteger) lineNumber; - -@end diff --git a/Foundation/xml/NSXMLParser.m b/Foundation/xml/NSXMLParser.m deleted file mode 100644 index 612f4ab9..00000000 --- a/Foundation/xml/NSXMLParser.m +++ /dev/null @@ -1,588 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import -#import -#import -#import -#import - -enum { - STATE_content, - STATE_ignoreable_content, - STATE_Reference, - STATE_CharRef, - STATE_CharRef_hex, - STATE_CharRef_decimal, - STATE_EntityRef_Name, - STATE_Tag, - STATE_ignore_unhandled, - STATE_STag, - STATE_ETag, - STATE_ETag_whitespace, - STATE_Attributes, - STATE_EmptyElementTag, - STATE_Attribute_Name, - STATE_Attribute_Name_whitespace, - STATE_Attribute_Equal, - STATE_Attribute_Value, - STATE_Attribute_Value_DoubleQuote, - STATE_Attribute_Value_SingleQuote, - STATE_CDATA -}; - -@implementation NSXMLParser - -- initWithData: (NSData *) data { - _data = [data retain]; - - _bytes = [data bytes]; - _length = [data length]; - _range = NSMakeRange(0, 0); - - _entityRefContents = [NSMutableDictionary new]; - [_entityRefContents setObject: @"&" forKey: @"amp"]; - [_entityRefContents setObject: @"<" forKey: @"lt"]; - [_entityRefContents setObject: @">" forKey: @"gt"]; - [_entityRefContents setObject: @"\'" forKey: @"apos"]; - [_entityRefContents setObject: @"\"" forKey: @"quot"]; - - _state = STATE_content; - _elementNameStack = [[NSMutableArray alloc] init]; - - return self; -} - -- initWithContentsofURL: (NSURL *) url { - NSData *data = [NSData dataWithContentsOfURL: url]; - - if (data == nil) { - [self dealloc]; - return nil; - } - - return [self initWithData: data]; -} - -- (void) dealloc { - [_data release]; - [_entityRefContents release]; - [_elementNameStack release]; - [_currentAttributes release]; - [super dealloc]; -} - -- delegate { - return _delegate; -} - -- (BOOL) shouldProcessNamespaces { - return _shouldProcessNamespaces; -} - -- (BOOL) shouldReportNamespacePrefixes { - return _shouldReportNamespacePrefixes; -} - -- (BOOL) shouldResolveExternalEntities { - return _shouldResolveExternalEntities; -} - -- (void) setDelegate: delegate { - _delegate = delegate; -} - -- (void) setShouldProcessNamespaces: (BOOL) flag { - _shouldProcessNamespaces = flag; -} - -- (void) setShouldReportNamespacePrefixes: (BOOL) flag { - _shouldReportNamespacePrefixes = flag; -} - -- (void) setShouldResolveExternalEntities: (BOOL) flag { - _shouldResolveExternalEntities = flag; -} - -- (NSString *) createCurrentString { - return [[NSString alloc] initWithBytes: _bytes + _range.location - length: _range.length - encoding: NSUTF8StringEncoding]; -} - -- (void) content: (NSString *) string { - if ([_delegate respondsToSelector: @selector(parser:foundCharacters:)]) - [_delegate parser: self foundCharacters: string]; -} - -- (void) ignoreableWhitespace: (NSString *) string { - if ([_delegate respondsToSelector: @selector(parser: - foundIgnorableWhitespace:)]) - [_delegate parser: self foundIgnorableWhitespace: string]; -} - -- (void) charRef: (NSString *) charRef { - if ([_delegate respondsToSelector: @selector(parser:foundCharacters:)]) - [_delegate parser: self foundCharacters: charRef]; -} - -- (void) entityRef: (NSString *) entityRef { - NSString *key = [self createCurrentString]; - NSString *contents = [_entityRefContents objectForKey: key]; - - if (contents != nil) { - if ([_delegate respondsToSelector: @selector(parser:foundCharacters:)]) - [_delegate parser: self foundCharacters: contents]; - } else - NSLog(@"unknown entity=%@", key); - - [key release]; -} - -- (void) sTag: (NSString *) sTag { - [_elementNameStack addObject: sTag]; -} - -- (void) didStartElement { - NSString *elementName = [_elementNameStack lastObject]; - - if ([_delegate respondsToSelector: @selector - (parser: - didStartElement:namespaceURI:qualifiedName:attributes - :)]) - [_delegate parser: self - didStartElement: elementName - namespaceURI: nil - qualifiedName: nil - attributes: _currentAttributes]; - - [_currentAttributes release]; - _currentAttributes = nil; -} - -- (void) didEndElement { - NSString *elementName = [_elementNameStack lastObject]; - [_delegate parser: self - didEndElement: elementName - namespaceURI: nil - qualifiedName: nil]; - [_elementNameStack removeLastObject]; -} - -- (void) eTag: (NSString *) eTag { - // FIX, maybe double check name here - [self didEndElement]; -} - -- (void) attributeName: (NSString *) name { - _currentAttributeName = [name copy]; -} - -- (void) attributeValue: (NSString *) value { - if (_currentAttributes == nil) - _currentAttributes = [[NSMutableDictionary alloc] init]; - - [_currentAttributes setObject: value forKey: _currentAttributeName]; - - [_currentAttributeName release]; - _currentAttributeName = nil; -} - -- (NSString *) currentString { - return [[self createCurrentString] autorelease]; -} - -static inline BOOL codeIsIgnoreableWhitespace(uint8_t code) { - if (code == 0x0A || code == 0x0D || code == 0x09) - return YES; - return NO; -} - -static inline BOOL codeIsWhitespace(uint8_t code) { - if (code == 0x20 || codeIsIgnoreableWhitespace(code)) - return YES; - return NO; -} - -static inline BOOL codeIsNameStart(uint8_t code) { - if ((code >= 'A' && code <= 'Z') || (code >= 'a' && code <= 'z') || - code == ':' || code == '_') - return YES; - - return NO; -} - -static inline BOOL codeIsNameContinue(uint8_t code) { - if ((code >= 'A' && code <= 'Z') || (code >= 'a' && code <= 'z') || - code == ':' || code == '_' || (code >= '0' && code <= '9') || - code == '.' || code == '-') - return YES; - - return NO; -} - -- (void) unexpectedIn: (NSString *) state { - NSUInteger position = NSMaxRange(_range) - 1; - uint8_t code = _bytes[position]; - - [NSException raise: @"" - format: @"Unexpected character %c in %@, position=%d", code, - state, position]; -} - -- (BOOL) parse { - int createNewPool = 0; - NSAutoreleasePool *pool = nil; - - while (NSMaxRange(_range) < _length) { - - if (pool == nil) - pool = [NSAutoreleasePool new]; - - uint8_t code = _bytes[NSMaxRange(_range)]; - enum { - extendLength, - advanceLocationToNext, - advanceLocationToCurrent, - } rangeAction = extendLength; - - switch (_state) { - - case STATE_content: - if (code == '&') { - if (_range.length > 0) - [self content: [self currentString]]; - _state = STATE_Reference; - rangeAction = advanceLocationToNext; - } else if (code == '<') { - if (_range.length > 0) - [self content: [self currentString]]; - _state = STATE_Tag; - rangeAction = advanceLocationToNext; - } else if (codeIsIgnoreableWhitespace(code)) { - if (_range.length > 0) - [self content: [self currentString]]; - _state = STATE_ignoreable_content; - rangeAction = advanceLocationToCurrent; - } else { - _state = STATE_content; - } - break; - - case STATE_ignoreable_content: - if (!codeIsIgnoreableWhitespace(code)) { - if (_range.length > 0) - [self ignoreableWhitespace: [self currentString]]; - _state = STATE_content; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_Reference: - if (code == '#') { - _charRef = 0; - _state = STATE_CharRef; - rangeAction = advanceLocationToNext; - } else if (codeIsNameStart(code)) { - _state = STATE_EntityRef_Name; - rangeAction = advanceLocationToCurrent; - } else { - [self unexpectedIn: @"Reference"]; - return NO; - } - break; - - case STATE_CharRef: - if (code == 'x') { - _state = STATE_CharRef_hex; - rangeAction = advanceLocationToCurrent; - } else if (code >= '0' && code <= '9') { - _charRef = code - '0'; - _state = STATE_CharRef_decimal; - rangeAction = advanceLocationToCurrent; - } else { - [self unexpectedIn: @"CharRef"]; - return NO; - } - break; - - case STATE_CharRef_hex: - if (code >= '0' && code <= '9') { - _charRef = _charRef * 16 + code - '0'; - _state = STATE_CharRef_hex; - } else if (code >= 'a' && code <= 'z') { - _charRef = _charRef * 16 + code - 'a' + 10; - _state = STATE_CharRef_hex; - } else if (code >= 'A' && code <= 'Z') { - _charRef = _charRef * 16 + code - 'A' + 10; - _state = STATE_CharRef_hex; - } else if (code == ';') { - [self charRef: [NSString stringWithCharacters: &_charRef - length: 1]]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"hexadecimal CharRef"]; - return NO; - } - break; - - case STATE_CharRef_decimal: - if (code >= '0' && code <= '9') { - _charRef = _charRef * 10 + code - '0'; - _state = STATE_CharRef_decimal; - } else if (code == ';') { - [self charRef: [NSString stringWithCharacters: &_charRef - length: 1]]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"decimal CharRef"]; - return NO; - } - break; - - case STATE_EntityRef_Name: - if (codeIsNameContinue(code)) - _state = STATE_EntityRef_Name; - else if (code == ';') { - [self entityRef: [self currentString]]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"EntityRef Name"]; - return NO; - } - break; - - case STATE_Tag: - if (code == '/') { - _state = STATE_ETag; - rangeAction = advanceLocationToNext; - } else if (codeIsNameStart(code)) { - _state = STATE_STag; - rangeAction = advanceLocationToCurrent; - } else if (code == '?') { // FIX, to just get through ?xml - _state = STATE_ignore_unhandled; - rangeAction = advanceLocationToNext; - } else if (code == '!') { - if (NSMaxRange(_range) + 8 < _length) { - if (0 == - memcmp(_bytes + NSMaxRange(_range), "![CDATA[", 8)) { - _state = STATE_CDATA; - _range.length += 8; - rangeAction = advanceLocationToCurrent; - } - } - if (_state != STATE_CDATA) { // get through !DOCTYPE - _state = STATE_ignore_unhandled; - rangeAction = advanceLocationToNext; - } - } else { - [self unexpectedIn: @"Tag"]; - return NO; - } - break; - - case STATE_CDATA: - if (code == ']' && NSMaxRange(_range) + 3 < _length) { - if (0 == memcmp(_bytes + NSMaxRange(_range), "]]>", 3)) { - if (_range.length > 0) - [self content: [self currentString]]; - - _state = STATE_content; - _range.length += 3; - rangeAction = advanceLocationToCurrent; - } - } - break; - - case STATE_ignore_unhandled: - rangeAction = advanceLocationToNext; - if (code == '>') - _state = STATE_content; - break; - - case STATE_STag: - if (codeIsNameContinue(code)) - _state = STATE_STag; - else { - [self sTag: [self currentString]]; - _state = STATE_Attributes; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_ETag: - if (codeIsNameContinue(code)) - _state = STATE_ETag; - else { - [self eTag: [self currentString]]; - _state = STATE_ETag_whitespace; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_ETag_whitespace: - if (codeIsWhitespace(code)) - _state = STATE_ETag_whitespace; - else if (code == '>') { - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"ETag"]; - return NO; - } - break; - - case STATE_Attributes: - if (codeIsWhitespace(code)) - _state = STATE_Attributes; - else if (code == '/') - _state = STATE_EmptyElementTag; - else if (code == '>') { - [self didStartElement]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else if (codeIsNameStart(code)) { - _state = STATE_Attribute_Name; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_EmptyElementTag: - if (code == '>') { - [self didStartElement]; - [self didEndElement]; - _state = STATE_content; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"EmptyElementTag"]; - return NO; - } - break; - - case STATE_Attribute_Name: - if (codeIsNameContinue(code)) - _state = STATE_Attribute_Name; - else { - [self attributeName: [self currentString]]; - _state = STATE_Attribute_Name_whitespace; - rangeAction = advanceLocationToCurrent; - } - break; - - case STATE_Attribute_Name_whitespace: - if (codeIsWhitespace(code)) - _state = STATE_Attribute_Name_whitespace; - else if (code == '=') - _state = STATE_Attribute_Equal; - break; - - case STATE_Attribute_Equal: - if (codeIsWhitespace(code)) - _state = STATE_Attribute_Equal; - else { - rangeAction = advanceLocationToCurrent; - _state = STATE_Attribute_Value; - } - break; - - case STATE_Attribute_Value: - if (code == '\"') { - _state = STATE_Attribute_Value_DoubleQuote; - rangeAction = advanceLocationToNext; - } else if (code == '\'') { - _state = STATE_Attribute_Value_SingleQuote; - rangeAction = advanceLocationToNext; - } else { - [self unexpectedIn: @"Attribute Value"]; - return NO; - } - break; - - case STATE_Attribute_Value_DoubleQuote: - if (code == '\"') { - [self attributeValue: [self currentString]]; - _state = STATE_Attributes; - rangeAction = advanceLocationToNext; - } - break; - - case STATE_Attribute_Value_SingleQuote: - if (code == '\'') { - [self attributeValue: [self currentString]]; - _state = STATE_Attributes; - rangeAction = advanceLocationToNext; - } - break; - } - - switch (rangeAction) { - case extendLength: - _range.length++; - break; - - case advanceLocationToNext: - _range.location = NSMaxRange(_range) + 1; - _range.length = 0; - break; - - case advanceLocationToCurrent: - _range.location = NSMaxRange(_range); - _range.length = 0; - break; - } - createNewPool++; - - if ((createNewPool % 1000) == 0) { - [pool release]; - pool = nil; - } - } - return YES; -} - -- (void) abortParsing { - NSUnimplementedMethod(); -} - -- (NSError *) parserError { - return _parserError; -} - -- (NSString *) systemID { - return _systemID; -} - -- (NSString *) publicID { - return _publicID; -} - -- (NSInteger) columnNumber { - return _columnNumber; -} - -- (NSInteger) lineNumber { - return _lineNumber; -} - -@end diff --git a/IOKit/English.lproj/InfoPlist.strings b/IOKit/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/IOKit/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/IOKit/IOKit.xcodeproj/project.pbxproj b/IOKit/IOKit.xcodeproj/project.pbxproj deleted file mode 100644 index 71311b07..00000000 --- a/IOKit/IOKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,326 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - FE43030811E2669400EBDD56 /* IOKitLib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43030711E2669400EBDD56 /* IOKitLib.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE43031A11E266FD00EBDD56 /* IOEthernetController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FE43031911E266FD00EBDD56 /* IOEthernetController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE43033211E267A600EBDD56 /* IOEthernetInterface.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FE43032E11E2679F00EBDD56 /* IOEthernetInterface.h */; }; - FE43033311E267A600EBDD56 /* IONetworkInterface.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FE43032F11E2679F00EBDD56 /* IONetworkInterface.h */; }; - FE43035011E2689700EBDD56 /* IOTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43034F11E2689700EBDD56 /* IOTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEF9F111E3C97C00CA0912 /* IONetworkController.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF9F011E3C97C00CA0912 /* IONetworkController.h */; }; - FEAEFA0011E3CB1100CA0912 /* IONetworkController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FEAEF9F011E3C97C00CA0912 /* IONetworkController.h */; }; - FEAEFAD411E41B0900CA0912 /* IOKitLib.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAEFAD311E41B0900CA0912 /* IOKitLib.m */; }; - FEF5A8E411E503DB009B0041 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - FE43032811E2675700EBDD56 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = Headers/network; - dstSubfolderSpec = 1; - files = ( - FEAEFA0011E3CB1100CA0912 /* IONetworkController.h in CopyFiles */, - FE43033211E267A600EBDD56 /* IOEthernetInterface.h in CopyFiles */, - FE43033311E267A600EBDD56 /* IONetworkInterface.h in CopyFiles */, - FE43031A11E266FD00EBDD56 /* IOEthernetController.h in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* IOKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IOKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B2E91430E8780071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B2EA1430E8780071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B2EB1430E8780071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B2EC1430E8780071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B2ED1430E8780071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B2EE1430E8780071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B2EF1430E8780071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B2F01430E8780071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B2F11430E8780071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B2F21430E8780071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B2F31430E8780071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B2F41430E8780071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B2F51430E8780071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B2F61430E8780071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B2F71430E8780071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE43030711E2669400EBDD56 /* IOKitLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOKitLib.h; sourceTree = ""; }; - FE43031911E266FD00EBDD56 /* IOEthernetController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOEthernetController.h; sourceTree = ""; }; - FE43032E11E2679F00EBDD56 /* IOEthernetInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOEthernetInterface.h; sourceTree = ""; }; - FE43032F11E2679F00EBDD56 /* IONetworkInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IONetworkInterface.h; sourceTree = ""; }; - FE43034F11E2689700EBDD56 /* IOTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOTypes.h; sourceTree = ""; }; - FE7086C21431181400B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FEAEF9F011E3C97C00CA0912 /* IONetworkController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IONetworkController.h; sourceTree = ""; }; - FEAEFAD311E41B0900CA0912 /* IOKitLib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IOKitLib.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF5A8E411E503DB009B0041 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* IOKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* IOKit */ = { - isa = PBXGroup; - children = ( - FE06B2E81430E8780071169B /* xcconfig */, - FEAEFAD311E41B0900CA0912 /* IOKitLib.m */, - FE43034F11E2689700EBDD56 /* IOTypes.h */, - FE43031411E266D800EBDD56 /* network */, - FE43030711E2669400EBDD56 /* IOKitLib.h */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = IOKit; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B2E81430E8780071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE06B2E91430E8780071169B /* darwin-i386.xcconfig */, - FE06B2EA1430E8780071169B /* darwin-ppc.xcconfig */, - FE06B2EB1430E8780071169B /* darwin-x86_64.xcconfig */, - FE06B2EC1430E8780071169B /* darwin.xcconfig */, - FE06B2ED1430E8780071169B /* freebsd-i386.xcconfig */, - FE06B2EE1430E8780071169B /* freebsd.xcconfig */, - FE06B2EF1430E8780071169B /* linux-arm.xcconfig */, - FE06B2F01430E8780071169B /* linux-i386.xcconfig */, - FE06B2F11430E8780071169B /* linux-ppc.xcconfig */, - FE06B2F21430E8780071169B /* linux.xcconfig */, - FE06B2F31430E8780071169B /* platform.xcconfig */, - FE06B2F41430E8780071169B /* solaris-sparc.xcconfig */, - FE06B2F51430E8780071169B /* solaris.xcconfig */, - FE06B2F61430E8780071169B /* windows-i386.xcconfig */, - FE06B2F71430E8780071169B /* windows.xcconfig */, - FE7086C21431181400B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE43031411E266D800EBDD56 /* network */ = { - isa = PBXGroup; - children = ( - FEAEF9F011E3C97C00CA0912 /* IONetworkController.h */, - FE43032E11E2679F00EBDD56 /* IOEthernetInterface.h */, - FE43032F11E2679F00EBDD56 /* IONetworkInterface.h */, - FE43031911E266FD00EBDD56 /* IOEthernetController.h */, - ); - path = network; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE43030811E2669400EBDD56 /* IOKitLib.h in Headers */, - FE43035011E2689700EBDD56 /* IOTypes.h in Headers */, - FEAEF9F111E3C97C00CA0912 /* IONetworkController.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* IOKit-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "IOKit-Windows-i386" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - FE43032811E2675700EBDD56 /* CopyFiles */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "IOKit-Windows-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = IOKit; - productReference = 8DC2EF5B0486A6940098B216 /* IOKit.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "IOKit" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* IOKit */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* IOKit-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEAEFAD411E41B0900CA0912 /* IOKitLib.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7086C21431181400B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DIOKIT_INSIDE_BUILD=1", - "-D__LITTLE_ENDIAN__", - ); - OTHER_LDFLAGS = ( - "-shared", - "-liphlpapi", - "-Wl,--enable-auto-import", - "-Wl,--export-all-symbols", - "-Wl,--out-implib,$TARGET_BUILD_DIR/$(PRODUCT_NAME).framework/lib$(PRODUCT_NAME).a", - ); - PRODUCT_NAME = IOKit; - }; - name = Release; - }; - 1DEB91B308733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_CFLAGS = "-DIOKIT_INSIDE_BUILD=1"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "IOKit-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "IOKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/IOKit/IOKitLib.h b/IOKit/IOKitLib.h deleted file mode 100644 index de6cd336..00000000 --- a/IOKit/IOKitLib.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -IOKIT_EXPORT const mach_port_t kIOMasterPortDefault; - -// these go in IOKitKeys.h -#define kIOPlatformSerialNumberKey "IOPlatformSerialNumber" -#define kIOPropertyMatchKey "IOPropertyMatch" -#define kIOServicePlane "IOService" - -IOKIT_EXPORT CFMutableDictionaryRef IOServiceMatching(const char *name); - -IOKIT_EXPORT io_service_t IOServiceGetMatchingService(mach_port_t masterPort, CFDictionaryRef matching); -IOKIT_EXPORT kern_return_t IOServiceGetMatchingServices(mach_port_t masterPort, CFDictionaryRef matching, io_iterator_t *existing); - -IOKIT_EXPORT CFTypeRef IORegistryEntryCreateCFProperty(io_registry_entry_t entry, CFStringRef key, CFAllocatorRef allocator, IOOptionBits options); - -IOKIT_EXPORT io_object_t IOIteratorNext(io_iterator_t iterator); - -IOKIT_EXPORT kern_return_t IORegistryEntryGetParentEntry(io_registry_entry_t entry, const io_name_t plane, io_registry_entry_t *parent); - -IOKIT_EXPORT kern_return_t IOObjectRelease(io_object_t object); diff --git a/IOKit/IOKitLib.m b/IOKit/IOKitLib.m deleted file mode 100644 index f4d99398..00000000 --- a/IOKit/IOKitLib.m +++ /dev/null @@ -1,183 +0,0 @@ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -static NSData *PrimaryEthernetMAC() { - struct _IP_ADAPTER_INFO info[16], *check; - DWORD infoSize = sizeof(info); - DWORD status = GetAdaptersInfo(info, &infoSize); - - for (check = info; check != NULL; check = check->Next) { - - if (check->Type == MIB_IF_TYPE_ETHERNET) { - if (check->AddressLength == 6) { - NSData *result = - [[NSData alloc] initWithBytes: check->Address - length: check->AddressLength]; - return result; - } - } - } - return nil; -} - -@interface IOPlatformExpertDevice : NSObject - -- createCFProperty: name; - -@end - -@interface IOEthernetInterface : NSObject - -- initPrimary; - -@end - -@interface IONetworkController : NSObject - -@end - -@implementation IOPlatformExpertDevice : NSObject - -- createCFProperty: name { - - if ([name isEqual: CFSTR(kIOPlatformSerialNumberKey)]) { - NSData *data = PrimaryEthernetMAC(); - - if (data == nil) - return NULL; - else { - // **** WARNING: DO NOT CHANGE THIS. Application software may depend - // on the serial number for cryptography. The serial number is the - // primary MAC address with each nibble inverted in hex format - NSInteger i, length = [data length]; - const char *hex = "FEDCBA9876543210"; - unichar buffer[length * 2]; - const uint8_t *bytes = [data bytes]; - - for (i = 0; i < length; i++) { - uint8_t hi = bytes[i] >> 4; - uint8_t lo = bytes[i] & 0x0F; - - buffer[i * 2] = hex[hi]; - buffer[i * 2 + 1] = hex[lo]; - } - - return [[NSString alloc] initWithCharacters: buffer - length: length * 2]; - } - } - - return nil; -} - -@end - -@implementation IOEthernetInterface : NSObject - -- initPrimary { - return self; -} - -- createParentEntry: name { - if ([name isEqual: CFSTR(kIOServicePlane)]) - return [[IONetworkController alloc] initPrimary]; - - return nil; -} - -@end - -@implementation IONetworkController : NSObject - -- initPrimary { - return self; -} - -- createCFProperty: name { - - if ([name isEqual: CFSTR(kIOMACAddress)]) - return PrimaryEthernetMAC(); - - return nil; -} - -@end - -const mach_port_t kIOMasterPortDefault = 0; - -#define kIOProviderClassKey "kIOProviderClass" - -CFMutableDictionaryRef IOServiceMatching(const char *name) { - return [NSMutableDictionary - dictionaryWithObject: [NSString stringWithCString: name] - forKey: CFSTR(kIOProviderClassKey)]; -} - -io_service_t IOServiceGetMatchingService(mach_port_t masterPort, - CFDictionaryRef matching) -{ - NSString *type = [matching objectForKey: CFSTR(kIOProviderClassKey)]; - - if ([type isEqual: @"IOPlatformExpertDevice"]) - return [[IOPlatformExpertDevice alloc] init]; - - return 0; -} - -kern_return_t IOServiceGetMatchingServices(mach_port_t masterPort, - CFDictionaryRef matching, - io_iterator_t *existing) -{ - NSMutableArray *result = [NSMutableArray array]; - NSString *type = [matching objectForKey: CFSTR(kIOProviderClassKey)]; - - if ([type isEqual: @"IOEthernetInterface"]) { - NSDictionary *propertyMatch = - [matching objectForKey: CFSTR(kIOPropertyMatchKey)]; - NSNumber *isPrimary = - [propertyMatch objectForKey: CFSTR(kIOPrimaryInterface)]; - - if ([isPrimary boolValue]) { - [result addObject: [[[IOEthernetInterface alloc] initPrimary] - autorelease]]; - } - } - - *existing = [[result objectEnumerator] retain]; - - return 0; -} - -CFTypeRef IORegistryEntryCreateCFProperty(io_registry_entry_t entry, - CFStringRef key, - CFAllocatorRef allocator, - IOOptionBits options) -{ - return [entry createCFProperty: key]; -} - -io_object_t IOIteratorNext(io_iterator_t iterator) { - return [[iterator nextObject] retain]; -} - -kern_return_t IORegistryEntryGetParentEntry(io_registry_entry_t entry, - const io_name_t plane, - io_registry_entry_t *parent) -{ - *parent = [entry createParentEntry: CFSTR(plane)]; - return 0; -} - -kern_return_t IOObjectRelease(io_object_t object) { - [object release]; - return 0; -} diff --git a/IOKit/IOTypes.h b/IOKit/IOTypes.h deleted file mode 100644 index 259b2134..00000000 --- a/IOKit/IOTypes.h +++ /dev/null @@ -1,35 +0,0 @@ -#import - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(IOKIT_INSIDE_BUILD) -#define IOKIT_EXPORT extern "C" __declspec(dllexport) -#else -#define IOKIT_EXPORT extern "C" __declspec(dllimport) -#endif -#else -#define IOKIT_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(IOKIT_INSIDE_BUILD) -#define IOKIT_EXPORT __declspec(dllexport) extern -#else -#define IOKIT_EXPORT __declspec(dllimport) extern -#endif -#else -#define IOKIT_EXPORT extern -#endif - -#endif // __cplusplus - -typedef mach_port_t io_object_t; -typedef io_object_t io_service_t; -typedef io_object_t io_registry_entry_t; -typedef io_object_t io_iterator_t; -typedef io_object_t io_name_t; - -typedef UInt32 IOOptionBits; diff --git a/IOKit/Info.plist b/IOKit/Info.plist deleted file mode 100644 index 49168a1f..00000000 --- a/IOKit/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleName - ${PRODUCT_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1 - CFBundleShortVersionString - 1.0 - NSPrincipalClass - - - diff --git a/IOKit/network/IOEthernetController.h b/IOKit/network/IOEthernetController.h deleted file mode 100644 index e7151e55..00000000 --- a/IOKit/network/IOEthernetController.h +++ /dev/null @@ -1,3 +0,0 @@ -#import - -#define kIOEthernetAddressSize 6 diff --git a/IOKit/network/IOEthernetInterface.h b/IOKit/network/IOEthernetInterface.h deleted file mode 100644 index b81608a2..00000000 --- a/IOKit/network/IOEthernetInterface.h +++ /dev/null @@ -1,2 +0,0 @@ - -#define kIOEthernetInterfaceClass "IOEthernetInterface" diff --git a/IOKit/network/IONetworkController.h b/IOKit/network/IONetworkController.h deleted file mode 100644 index 0ee28e32..00000000 --- a/IOKit/network/IONetworkController.h +++ /dev/null @@ -1 +0,0 @@ -#define kIOMACAddress "IOMACAddress" diff --git a/IOKit/network/IONetworkInterface.h b/IOKit/network/IONetworkInterface.h deleted file mode 100644 index ac071eb1..00000000 --- a/IOKit/network/IONetworkInterface.h +++ /dev/null @@ -1,2 +0,0 @@ - -#define kIOPrimaryInterface "IOPrimaryInterface" diff --git a/ImageKit/English.lproj/InfoPlist.strings b/ImageKit/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/ImageKit/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/ImageKit/IKImageBrowserCell.h b/ImageKit/IKImageBrowserCell.h deleted file mode 100644 index e69de29b..00000000 diff --git a/ImageKit/IKImageBrowserCell.m b/ImageKit/IKImageBrowserCell.m deleted file mode 100644 index e69de29b..00000000 diff --git a/ImageKit/IKImageBrowserView.h b/ImageKit/IKImageBrowserView.h deleted file mode 100644 index d66441c2..00000000 --- a/ImageKit/IKImageBrowserView.h +++ /dev/null @@ -1,198 +0,0 @@ -#import -#import - -@class IKImageBrowserCell; - -IMAGEKIT_EXPORT NSString *const IKImageBrowserQuickLookPathRepresentationType; - -IMAGEKIT_EXPORT NSString *const IKImageBrowserGroupRangeKey; -IMAGEKIT_EXPORT NSString *const IKImageBrowserGroupTitleKey; -IMAGEKIT_EXPORT NSString *const IKImageBrowserGroupStyleKey; - -IMAGEKIT_EXPORT NSString *const IKImageBrowserBackgroundColorKey; - -IMAGEKIT_EXPORT NSString *const IKImageBrowserPathRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserNSURLRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserNSImageRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserCGImageRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserCGImageSourceRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserNSDataRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserNSBitmapImageRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserQTMovieRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserQTMoviePathRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserQCCompositionRepresentationType; -IMAGEKIT_EXPORT NSString - *const IKImageBrowserQCCompositionPathRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserQuickLookPathRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserIconRefPathRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserIconRefRepresentationType; -IMAGEKIT_EXPORT NSString *const IKImageBrowserPDFPageRepresentationType; - -enum { - IKGroupBezelStyle, - IKGroupDisclosureStyle, -}; - -enum { - IKCellsStyleNone = 0, - IKCellsStyleShadowed = 1, - IKCellsStyleOutlined = 2, - IKCellsStyleTitled = 4, - IKCellsStyleSubtitled = 8, -}; - -typedef enum { - IKImageBrowserDropOn = 0, - IKImageBrowserDropBefore = 1, -} IKImageBrowserDropOperation; - -@interface IKImageBrowserView : NSView { - id _delegate; - id _dataSource; - NSUInteger _numberOfColumns; - NSUInteger _numberOfRows; - NSSize _cellSize; - NSSize _intercellSpacing; - NSColor *_backgroundColor; - float _zoomValue; - BOOL _allowsDroppingOnItems; - BOOL _allowsEmptySelection; - BOOL _allowsMultipleSelection; - BOOL _allowsReordering; - BOOL _animates; - BOOL _canControlQuickLookPanel; -} - -- initWithFrame: (NSRect) frame; - -- delegate; -- dataSource; - -- (NSSize) intercellSpacing; - -- (BOOL) allowsDroppingOnItems; -- (BOOL) allowsEmptySelection; -- (BOOL) allowsMultipleSelection; -- (BOOL) allowsReordering; -- (BOOL) animates; -- (BOOL) canControlQuickLookPanel; -- (BOOL) constrainsToOriginalSize; -- (NSSize) cellSize; - -- (NSUInteger) cellsStyleMask; - -- (CALayer *) backgroundLayer; -- (CALayer *) foregroundLayer; - -- (void) setAllowsDroppingOnItems: (BOOL) value; -- (void) setAllowsEmptySelection: (BOOL) value; -- (void) setAllowsMultipleSelection: (BOOL) value; -- (void) setAllowsReordering: (BOOL) value; -- (void) setAnimates: (BOOL) value; -- (void) setCanControlQuickLookPanel: (BOOL) value; -- (void) setCellSize: (NSSize) value; -- (void) setCellsStyleMask: (NSUInteger) value; -- (void) setConstrainsToOriginalSize: (BOOL) value; -- (void) setContentResizingMask: (NSUInteger) value; - -- (void) setBackgroundLayer: (CALayer *) aLayer; - -- (void) setDataSource: source; - -- (void) setDelegate: delegate; - -- (void) setDraggingDestinationDelegate: delegate; - -- (void) setForegroundLayer: (CALayer *) layer; - -- (void) setIntercellSpacing: (NSSize) value; - -- (IKImageBrowserCell *) cellForItemAtIndex: (NSUInteger) index; - -- (void) collapseGroupAtIndex: (NSUInteger) index; - -- (NSIndexSet *) columnIndexesInRect: (NSRect) rect; - -- (NSUInteger) contentResizingMask; - -- draggingDestinationDelegate; - -- (IKImageBrowserDropOperation) dropOperation; - -- (void) expandGroupAtIndex: (NSUInteger) index; - -- (NSUInteger) indexAtLocationOfDroppedItem; - -- (NSInteger) indexOfItemAtPoint: (NSPoint) point; -- (BOOL) isGroupExpandedAtIndex: (NSUInteger) index; - -- (NSRect) itemFrameAtIndex: (NSInteger) index; - -- (IKImageBrowserCell *) newCellForRepresentedItem: item; - -- (NSUInteger) numberOfRows; -- (NSUInteger) numberOfColumns; - -- (NSRect) rectOfColumn: (NSUInteger) column; -- (NSRect) rectOfRow: (NSUInteger) rowIndex; - -- (void) reloadData; - -- (NSIndexSet *) rowIndexesInRect: (NSRect) rect; - -- (NSIndexSet *) selectionIndexes; - -- (void) setSelectionIndexes: (NSIndexSet *) value - byExtendingSelection: (BOOL) extendSelection; - -- (void) scrollIndexToVisible: (NSInteger) index; - -- (NSIndexSet *) visibleItemIndexes; - -- (float) zoomValue; -- (void) setZoomValue: (float) value; - -@end - -@interface NSObject (IKImageBrowserItem) -- (id) imageRepresentation; -- (NSString *) imageRepresentationType; -- (NSString *) imageSubtitle; -- (NSString *) imageTitle; -- (NSString *) imageUID; -- (NSUInteger) imageVersion; -- (BOOL) isSelectable; - -@end - -@interface NSObject (IKImageBrowserDelegate) - -- (void) imageBrowserSelectionDidChange: (IKImageBrowserView *) browser; - -- (void) imageBrowser: (IKImageBrowserView *) browser - backgroundWasRightClickedWithEvent: (NSEvent *) event; -- (void) imageBrowser: (IKImageBrowserView *) browser - cellWasRightClickedAtIndex: (NSUInteger) index - withEvent: (NSEvent *) event; -- (void) imageBrowser: (IKImageBrowserView *) browser - cellWasDoubleClickedAtIndex: (NSUInteger) index; -@end - -@interface NSObject (IKImageBrowserDataSource) - -- (NSDictionary *) imageBrowser: (IKImageBrowserView *) browser - groupAtIndex: (NSUInteger) index; -- imageBrowser: (IKImageBrowserView *) browser itemAtIndex: (NSUInteger) index; - -- (BOOL) imageBrowser: (IKImageBrowserView *) browser - moveItemsAtIndexes: (NSIndexSet *) indexes - toIndex: (NSUInteger) destinationIndex; -- (void) imageBrowser: (IKImageBrowserView *) browser - removeItemsAtIndexes: (NSIndexSet *) indexes; -- (NSUInteger) imageBrowser: (IKImageBrowserView *) browser - writeItemsAtIndexes: (NSIndexSet *) itemIndexes - toPasteboard: (NSPasteboard *) pasteboard; -- (NSUInteger) numberOfGroupsInImageBrowser: (IKImageBrowserView *) browser; -- (NSUInteger) numberOfItemsInImageBrowser: (IKImageBrowserView *) browser; - -@end diff --git a/ImageKit/IKImageBrowserView.m b/ImageKit/IKImageBrowserView.m deleted file mode 100644 index fd002a5e..00000000 --- a/ImageKit/IKImageBrowserView.m +++ /dev/null @@ -1,282 +0,0 @@ -#import -#import - -NSString *const IKImageBrowserQuickLookPathRepresentationType = - @"IKImageBrowserQuickLookPathRepresentationType"; - -NSString *const IKImageBrowserGroupRangeKey = @"IKImageBrowserGroupRangeKey"; -NSString *const IKImageBrowserGroupTitleKey = @"IKImageBrowserGroupTitleKey"; -NSString *const IKImageBrowserGroupStyleKey = @"IKImageBrowserGroupStyleKey"; - -NSString *const IKImageBrowserBackgroundColorKey = @"backgroundColor"; - -@implementation IKImageBrowserView - -- initWithFrame: (NSRect) frame { - [super initWithFrame: frame]; - _backgroundColor = [[NSColor whiteColor] copy]; - return self; -} - -- (void) dealloc { - [_backgroundColor release]; - [super dealloc]; -} - -- dataSource { - return _dataSource; -} - -- delegate { - return _delegate; -} - -- (NSSize) intercellSpacing { - return _intercellSpacing; -} - -- (BOOL) allowsDroppingOnItems { - return _allowsDroppingOnItems; -} - -- (BOOL) allowsEmptySelection { - return _allowsEmptySelection; -} - -- (BOOL) allowsMultipleSelection { - return _allowsMultipleSelection; -} - -- (BOOL) allowsReordering { - return _allowsReordering; -} - -- (BOOL) animates { - return _animates; -} - -- (CALayer *) backgroundLayer { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) canControlQuickLookPanel { - return _canControlQuickLookPanel; -} - -- (IKImageBrowserCell *) cellForItemAtIndex: (NSUInteger) index { - NSUnimplementedMethod(); - return 0; -} - -- (NSSize) cellSize { - return _cellSize; -} - -- (NSUInteger) cellsStyleMask { - NSUnimplementedMethod(); - return 0; -} - -- (void) collapseGroupAtIndex: (NSUInteger) index { - NSUnimplementedMethod(); -} - -- (NSIndexSet *) columnIndexesInRect: (NSRect) rect { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) constrainsToOriginalSize { - NSUnimplementedMethod(); - return 0; -} - -- (NSUInteger) contentResizingMask { - NSUnimplementedMethod(); - return 0; -} - -- draggingDestinationDelegate { - NSUnimplementedMethod(); - return 0; -} - -- (IKImageBrowserDropOperation) dropOperation { - NSUnimplementedMethod(); - return 0; -} - -- (void) expandGroupAtIndex: (NSUInteger) index { - NSUnimplementedMethod(); -} - -- (CALayer *) foregroundLayer { - NSUnimplementedMethod(); - return 0; -} - -- (NSUInteger) indexAtLocationOfDroppedItem { - NSUnimplementedMethod(); - return 0; -} - -- (NSInteger) indexOfItemAtPoint: (NSPoint) point { - NSUnimplementedMethod(); - return 0; -} - -- (BOOL) isGroupExpandedAtIndex: (NSUInteger) index { - NSUnimplementedMethod(); - return 0; -} - -- (NSRect) itemFrameAtIndex: (NSInteger) index { - NSUnimplementedMethod(); - return NSZeroRect; -} - -- (IKImageBrowserCell *) newCellForRepresentedItem: anItem { - NSUnimplementedMethod(); - return 0; -} - -- (NSUInteger) numberOfColumns { - return _numberOfColumns; -} - -- (NSUInteger) numberOfRows { - return _numberOfRows; -} - -- (NSRect) rectOfColumn: (NSUInteger) columnIndex { - NSUnimplementedMethod(); - return NSZeroRect; -} - -- (NSRect) rectOfRow: (NSUInteger) rowIndex { - NSUnimplementedMethod(); - return NSZeroRect; -} - -- (void) reloadData { - NSUnimplementedMethod(); -} - -- (NSIndexSet *) rowIndexesInRect: (NSRect) rect { - NSUnimplementedMethod(); - return 0; -} - -- (void) scrollIndexToVisible: (NSInteger) index { - NSUnimplementedMethod(); -} - -- (NSIndexSet *) selectionIndexes { - NSUnimplementedMethod(); - return 0; -} - -- (void) setAllowsDroppingOnItems: (BOOL) value { - _allowsDroppingOnItems = value; -} - -- (void) setAllowsEmptySelection: (BOOL) value { - _allowsEmptySelection = value; -} - -- (void) setAllowsMultipleSelection: (BOOL) value { - _allowsMultipleSelection = value; -} - -- (void) setAllowsReordering: (BOOL) value { - _allowsReordering = value; -} - -- (void) setAnimates: (BOOL) value { - _animates = value; -} - -- (void) setBackgroundLayer: (CALayer *) aLayer { - NSUnimplementedMethod(); -} - -- (void) setCanControlQuickLookPanel: (BOOL) value { - _canControlQuickLookPanel = value; -} - -- (void) _tile { - NSUnimplementedMethod(); -} - -- (void) setCellSize: (NSSize) size { - _cellSize = size; - [self _tile]; -} - -- (void) setCellsStyleMask: (NSUInteger) mask { - NSUnimplementedMethod(); -} - -- (void) setConstrainsToOriginalSize: (BOOL) flag { - NSUnimplementedMethod(); -} - -- (void) setContentResizingMask: (NSUInteger) mask { - NSUnimplementedMethod(); -} - -- (void) setDataSource: source { - _dataSource = source; -} - -- (void) setDelegate: delegate { - _delegate = delegate; -} - -- (void) setDraggingDestinationDelegate: delegate { - NSUnimplementedMethod(); -} - -- (void) setForegroundLayer: (CALayer *) aLayer { - NSUnimplementedMethod(); -} - -- (void) setIntercellSpacing: (NSSize) value { - _intercellSpacing = value; - [self _tile]; -} - -- (void) setSelectionIndexes: (NSIndexSet *) indexes - byExtendingSelection: (BOOL) extendSelection -{ - NSUnimplementedMethod(); -} - -- (NSIndexSet *) visibleItemIndexes { - NSUnimplementedMethod(); - return 0; -} - -- (float) zoomValue { - return _zoomValue; -} - -- (void) setZoomValue: (float) value { - _zoomValue = value; - [self setNeedsDisplay: YES]; -} - -// This is exposed through key value coding -- (void) setBackgroundColor: (NSColor *) color { - color = [color copy]; - [_backgroundColor release]; - _backgroundColor = color; -} - -- (void) drawRect: (NSRect) rect { - [_backgroundColor setFill]; - NSRectFill([self bounds]); -} - -@end diff --git a/ImageKit/ImageKit.h b/ImageKit/ImageKit.h deleted file mode 100644 index 63a76daa..00000000 --- a/ImageKit/ImageKit.h +++ /dev/null @@ -1 +0,0 @@ -#import diff --git a/ImageKit/ImageKit.xcodeproj/project.pbxproj b/ImageKit/ImageKit.xcodeproj/project.pbxproj deleted file mode 100644 index 9d77ba32..00000000 --- a/ImageKit/ImageKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,295 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - FE43024611E259D100EBDD56 /* ImageKit.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43024511E259D100EBDD56 /* ImageKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE43042F11E2746700EBDD56 /* IKImageBrowserView.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43042D11E2746700EBDD56 /* IKImageBrowserView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE43043011E2746700EBDD56 /* IKImageBrowserView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43042E11E2746700EBDD56 /* IKImageBrowserView.m */; }; - FE4306F411E39D9F00EBDD56 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - FE71DB7B11F7498E00E6F801 /* ImageKit_Framework.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71DB7A11F7498E00E6F801 /* ImageKit_Framework.m */; }; - FEAD494411E90BBE00063B34 /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAD494311E90BBE00063B34 /* dllmain.m */; }; - FEAD498411E90DF800063B34 /* ImageKitExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAD498311E90DF800063B34 /* ImageKitExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDE65AC1210A706003D3EF1 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEDE65AB1210A706003D3EF1 /* AppKit.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* ImageKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ImageKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B2B81430E8590071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B2B91430E8590071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B2BA1430E8590071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B2BB1430E8590071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B2BC1430E8590071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B2BD1430E8590071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B2BE1430E8590071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B2BF1430E8590071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B2C01430E8590071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B2C11430E8590071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B2C21430E8590071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B2C31430E8590071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B2C41430E8590071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B2C51430E8590071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B2C61430E8590071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE43024511E259D100EBDD56 /* ImageKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageKit.h; sourceTree = ""; }; - FE43042D11E2746700EBDD56 /* IKImageBrowserView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IKImageBrowserView.h; sourceTree = ""; }; - FE43042E11E2746700EBDD56 /* IKImageBrowserView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IKImageBrowserView.m; sourceTree = ""; }; - FE7086B31431180300B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE71DB7A11F7498E00E6F801 /* ImageKit_Framework.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageKit_Framework.m; sourceTree = ""; }; - FEAD494311E90BBE00063B34 /* dllmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = dllmain.m; sourceTree = ""; }; - FEAD498311E90DF800063B34 /* ImageKitExport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageKitExport.h; sourceTree = ""; }; - FEDE65AB1210A706003D3EF1 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4306F411E39D9F00EBDD56 /* Foundation.framework in Frameworks */, - FEDE65AC1210A706003D3EF1 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* ImageKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* ImageKit */ = { - isa = PBXGroup; - children = ( - FE06B2B71430E8590071169B /* xcconfig */, - FE71DB7A11F7498E00E6F801 /* ImageKit_Framework.m */, - FEAD498311E90DF800063B34 /* ImageKitExport.h */, - FEAD494311E90BBE00063B34 /* dllmain.m */, - FE43042D11E2746700EBDD56 /* IKImageBrowserView.h */, - FE43042E11E2746700EBDD56 /* IKImageBrowserView.m */, - FE43024511E259D100EBDD56 /* ImageKit.h */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = ImageKit; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - FEDE65AB1210A706003D3EF1 /* AppKit.framework */, - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B2B71430E8590071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE06B2B81430E8590071169B /* darwin-i386.xcconfig */, - FE06B2B91430E8590071169B /* darwin-ppc.xcconfig */, - FE06B2BA1430E8590071169B /* darwin-x86_64.xcconfig */, - FE06B2BB1430E8590071169B /* darwin.xcconfig */, - FE06B2BC1430E8590071169B /* freebsd-i386.xcconfig */, - FE06B2BD1430E8590071169B /* freebsd.xcconfig */, - FE06B2BE1430E8590071169B /* linux-arm.xcconfig */, - FE06B2BF1430E8590071169B /* linux-i386.xcconfig */, - FE06B2C01430E8590071169B /* linux-ppc.xcconfig */, - FE06B2C11430E8590071169B /* linux.xcconfig */, - FE06B2C21430E8590071169B /* platform.xcconfig */, - FE06B2C31430E8590071169B /* solaris-sparc.xcconfig */, - FE06B2C41430E8590071169B /* solaris.xcconfig */, - FE06B2C51430E8590071169B /* windows-i386.xcconfig */, - FE06B2C61430E8590071169B /* windows.xcconfig */, - FE7086B31431180300B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE43024611E259D100EBDD56 /* ImageKit.h in Headers */, - FE43042F11E2746700EBDD56 /* IKImageBrowserView.h in Headers */, - FEAD498411E90DF800063B34 /* ImageKitExport.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* ImageKit-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "ImageKit-Windows-i386" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "ImageKit-Windows-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = ImageKit; - productReference = 8DC2EF5B0486A6940098B216 /* ImageKit.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "ImageKit" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* ImageKit */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* ImageKit-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE43043011E2746700EBDD56 /* IKImageBrowserView.m in Sources */, - FEAD494411E90BBE00063B34 /* dllmain.m in Sources */, - FE71DB7B11F7498E00E6F801 /* ImageKit_Framework.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7086B31431180300B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DIMAGEKIT_INSIDE_BUILD=1", - "-D__LITTLE_ENDIAN__", - ); - PRODUCT_NAME = ImageKit; - }; - name = Release; - }; - 1DEB91B308733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "ImageKit-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "ImageKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/ImageKit/ImageKit.xcodeproj/xcshareddata/xcschemes/ImageKit-Windows-i386.xcscheme b/ImageKit/ImageKit.xcodeproj/xcshareddata/xcschemes/ImageKit-Windows-i386.xcscheme deleted file mode 100644 index 8459fe1d..00000000 --- a/ImageKit/ImageKit.xcodeproj/xcshareddata/xcschemes/ImageKit-Windows-i386.xcscheme +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ImageKit/ImageKitExport.h b/ImageKit/ImageKitExport.h deleted file mode 100644 index fa855c59..00000000 --- a/ImageKit/ImageKitExport.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(IMAGEKIT_INSIDE_BUILD) -#define IMAGEKIT_EXPORT extern "C" __declspec(dllexport) -#else -#define IMAGEKIT_EXPORT extern "C" __declspec(dllimport) -#endif -#else -#define IMAGEKIT_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(IMAGEKIT_INSIDE_BUILD) -#define IMAGEKIT_EXPORT __declspec(dllexport) extern -#else -#define IMAGEKIT_EXPORT __declspec(dllimport) extern -#endif -#else -#define IMAGEKIT_EXPORT extern -#endif - -#endif diff --git a/ImageKit/ImageKit_Framework.m b/ImageKit/ImageKit_Framework.m deleted file mode 100644 index 015d3b31..00000000 --- a/ImageKit/ImageKit_Framework.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// BGHUDAppKit_Framework.m -// BGHUDAppKit -// -// Created by Christopher Lloyd on 7/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -__declspec(dllexport) void ImageKit_Framework(); - -__declspec(dllexport) void ImageKit_Framework() { -} diff --git a/ImageKit/Info.plist b/ImageKit/Info.plist deleted file mode 100644 index 49168a1f..00000000 --- a/ImageKit/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleName - ${PRODUCT_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1 - CFBundleShortVersionString - 1.0 - NSPrincipalClass - - - diff --git a/ImageKit/dllmain.m b/ImageKit/dllmain.m deleted file mode 100644 index 562b3458..00000000 --- a/ImageKit/dllmain.m +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -__declspec(dllimport) int OBJCRegisterDLL(HINSTANCE handle); - -int APIENTRY DllMain(HINSTANCE handle, DWORD reason, LPVOID _reserved) { - - if (reason == DLL_PROCESS_ATTACH) - return OBJCRegisterDLL(handle); - - return TRUE; -} diff --git a/InstallCDT/Resources/Specifications/Windows.pbfilespec b/InstallCDT/Resources/Specifications/Windows.pbfilespec deleted file mode 100644 index 701caffb..00000000 --- a/InstallCDT/Resources/Specifications/Windows.pbfilespec +++ /dev/null @@ -1,10 +0,0 @@ -( - { - Identifier = sourcecode.rc; - BasedOn = sourcecode; - Name = "Windows resource files"; - Extensions = (rc); - AppliesToBuildRules = yes; - } -) - diff --git a/InstallCDT/Resources/Specifications/gcc-4.3.1.pbcompspec b/InstallCDT/Resources/Specifications/gcc-4.3.1.pbcompspec deleted file mode 100644 index 4fd7dc55..00000000 --- a/InstallCDT/Resources/Specifications/gcc-4.3.1.pbcompspec +++ /dev/null @@ -1,147 +0,0 @@ -( - { - Identifier = org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.gcc.%REPLACE%compilerVersion%REPLACE%; - BasedOn = com.apple.compilers.llvm.clang.1_0; - Name = "%REPLACE%ProductName%REPLACE% %REPLACE%ProductVersion%REPLACE% %REPLACE%Platform%REPLACE% %REPLACE%architecture%REPLACE% gcc %REPLACE%compilerVersion%REPLACE%"; - Version = "org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.gcc.%REPLACE%compilerVersion%REPLACE%"; - Vendor = "cocotron.org"; - ExecPath = "/Developer/%REPLACE%ProductName%REPLACE%/%REPLACE%ProductVersion%REPLACE%/%REPLACE%Platform%REPLACE%/%REPLACE%architecture%REPLACE%/gcc-%REPLACE%compilerVersion%REPLACE%/bin/%REPLACE%TARGET%REPLACE%-gcc"; - Architectures = (%REPLACE%architecture%REPLACE%); - - SupportsZeroLink = No; - SupportsPredictiveCompilation = No; - SupportsHeadermaps = No; - DashIFlagAcceptsHeadermaps = No; - - Options = ( - { Name = SDKROOT; - Type = Path; - CommandLineArgs = (); - }, - { - Name=%REPLACE%PRODUCTNAME%REPLACE%_FRAMEWORK_SEARCH_PATH; - Type = string; - DefaultValue = "/Developer/%REPLACE%ProductName%REPLACE%/%REPLACE%ProductVersion%REPLACE%/%REPLACE%Platform%REPLACE%/%REPLACE%architecture%REPLACE%/Frameworks"; - CommandLineArgs = ( "-F$(value)" ); - }, - { - Name=%REPLACE%PRODUCTNAME%REPLACE%_DEFINE; - Type = bool; - DefaultValue = YES; - CommandLineArgs = { YES = (-D__%REPLACE%PRODUCTNAME%REPLACE%__); NO = (); }; - }, - { Name = GCC_ENABLE_OBJC_PERIOD_SYMBOLS; - Type = bool; - DefaultValue = NO; - CommandLineArgs = { YES = (-fobjc-period-symbols); NO = (); }; - Category = CodeGeneration; - }, - { Name = GCC_PLATFORM_DEFINES; - Type = string; - DefaultValue = "-D%REPLACE%PLATFORM%REPLACE%"; - CommandLineArgs = ( "$(value)" ); - Category = CodeGeneration; - }, - { Name= GCC_CONSTANT_STRING_CLASS; - CommandLineArgs = ( "-fconstant-string-class=NSConstantString" ); - Category = CodeGeneration; - }, - /* overrides */ - { Name = arch; - CommandLineArgs = ( ); - /* despite overriding arch here, the link command still generates it, so we have to implement it in the compiler too */ - }, - { Name = USE_HEADERMAP; - Type = bool; - DefaultValue = NO; - }, - { Name = PREBINDING; /* this override doesn't work */ - Type = bool; - DefaultValue = NO; - }, - { Name = GCC_PREFIX_HEADER; /* this override doesn't work */ - CommandLineArgs = ( ); - }, - { Name = GCC_PRECOMPILE_PREFIX_HEADER; /* this override doesn't work */ - Type = bool; - DefaultValue = NO; - }, - { Name = GCC_ENABLE_PASCAL_STRINGS; - Type = bool; - DefaultValue = NO; - CommandLineArgs = { YES = (-fpascal-strings); NO = (); }; - Category = Language; - }, - { Name = GCC_CW_ASM_SYNTAX; - Type = bool; - DefaultValue = NO; - CommandLineArgs = { YES = (-fasm-blocks); NO = (); }; - AppearsAfter = GCC_ALTIVEC_EXTENSIONS; - Category = Language; - }, - { Name = GCC_MODEL_TUNING; - Type = enum; - AllowedValues = (""); - DefaultValue = ""; - CommandLineArgs = { "" = (); "<>" = (""); }; - Architectures = (); - Category = CodeGeneration; - }, - { Name = WARNING_CFLAGS; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_BOOL_CONVERSION; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_CONSTANT_CONVERSION; - CommandLineArgs = ( ); - }, - { Name = GCC_WARN_64_TO_32_BIT_CONVERSION; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_ENUM_CONVERSION; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_INT_CONVERSION; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES; - CommandLineArgs = ( ); - }, - { Name = GCC_WARN_FOUR_CHARACTER_CONSTANTS; - CommandLineArgs = ( ); - }, - { Name = GCC_WARN_ABOUT_MISSING_NEWLINE; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_OBJC_RECEIVER_WEAK; - CommandLineArgs = ( ); - }, - { Name = CLANG_MACRO_BACKTRACE_LIMIT; - CommandLineArgs = ( ); - }, - { Name = MACOSX_DEPLOYMENT_TARGET; - CommandLineArgs = ( ); - }, - { Name = print_note_include_stack; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN_CXX0X_EXTENSIONS; - CommandLineArgs = ( ); - }, - { Name = CLANG_WARN__EXIT_TIME_DESTRUCTORS; - CommandLineArgs = ( ); - }, - { Name = GCC_WARN_ABOUT_MISSING_PROTOTYPES; - CommandLineArgs = ( ); - }, - ); - - } -) diff --git a/InstallCDT/Resources/Specifications/gcc-default.pbcompspec b/InstallCDT/Resources/Specifications/gcc-default.pbcompspec deleted file mode 100644 index 63837c00..00000000 --- a/InstallCDT/Resources/Specifications/gcc-default.pbcompspec +++ /dev/null @@ -1,7 +0,0 @@ -( - { - Identifier = org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.gcc.default; - BasedOn = org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.gcc.%REPLACE%compilerVersion%REPLACE%; - Name = "%REPLACE%ProductName%REPLACE% %REPLACE%ProductVersion%REPLACE% %REPLACE%Platform%REPLACE% %REPLACE%architecture%REPLACE% gcc default (%REPLACE%compilerVersion%REPLACE%)"; - } -) diff --git a/InstallCDT/Resources/Specifications/llvm-clang-default.pbcompspec b/InstallCDT/Resources/Specifications/llvm-clang-default.pbcompspec deleted file mode 100644 index 8b05ea64..00000000 --- a/InstallCDT/Resources/Specifications/llvm-clang-default.pbcompspec +++ /dev/null @@ -1,7 +0,0 @@ -( - { - Identifier = org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.llvm.clang.default; - BasedOn = org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.llvm.clang.%REPLACE%compilerVersion%REPLACE%; - Name = "%REPLACE%ProductName%REPLACE% %REPLACE%ProductVersion%REPLACE% %REPLACE%Platform%REPLACE% %REPLACE%architecture%REPLACE% llvm-clang default (%REPLACE%compilerVersion%REPLACE%)"; - } -) diff --git a/InstallCDT/Resources/Specifications/llvm-clang-trunk.pbcompspec b/InstallCDT/Resources/Specifications/llvm-clang-trunk.pbcompspec deleted file mode 100644 index 52dfba6f..00000000 --- a/InstallCDT/Resources/Specifications/llvm-clang-trunk.pbcompspec +++ /dev/null @@ -1,53 +0,0 @@ -( - { - Identifier = org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.llvm.clang.%REPLACE%compilerVersion%REPLACE%; - BasedOn = com.apple.compilers.llvm.clang.1_0; - Name = "%REPLACE%ProductName%REPLACE% %REPLACE%ProductVersion%REPLACE% %REPLACE%Platform%REPLACE% %REPLACE%architecture%REPLACE% llvm-clang %REPLACE%compilerVersion%REPLACE%"; - Version = "org.cocotron.%REPLACE%ProductVersion%REPLACE%.%REPLACE%platform%REPLACE%.%REPLACE%architecture%REPLACE%.clang.%REPLACE%compilerVersion%REPLACE%"; - Vendor = "cocotron.org"; - ExecPath = "/Developer/%REPLACE%ProductName%REPLACE%/%REPLACE%ProductVersion%REPLACE%/%REPLACE%Platform%REPLACE%/%REPLACE%architecture%REPLACE%/llvm-clang-%REPLACE%compilerVersion%REPLACE%/bin/%REPLACE%TARGET%REPLACE%-llvm-clang"; - Architectures = (i386); - - SupportsZeroLink = No; - SupportsPredictiveCompilation = No; - SupportsHeadermaps = No; - DashIFlagAcceptsHeadermaps = No; - - Options = ( - { Name = SDKROOT; - Type = Path; - CommandLineArgs = (); - }, - { - Name=%REPLACE%PRODUCTNAME%REPLACE%_FRAMEWORK_SEARCH_PATH; - Type = string; - DefaultValue = "/Developer/%REPLACE%ProductName%REPLACE%/%REPLACE%ProductVersion%REPLACE%/%REPLACE%Platform%REPLACE%/%REPLACE%architecture%REPLACE%/Frameworks"; - CommandLineArgs = ( "-F$(value)" ); - }, - { - Name=%REPLACE%PRODUCTNAME%REPLACE%_DEFINE; - Type = bool; - DefaultValue = YES; - CommandLineArgs = { YES = (-D__%REPLACE%PRODUCTNAME%REPLACE%__); NO = (); }; - }, - /* overrides */ - { Name = arch; - CommandLineArgs = ( ); -/* despite overriding arch here, the link command still generates it, so we have to implement it in the compiler too */ - }, - { Name = USE_HEADERMAP; - Type = bool; - DefaultValue = NO; - }, - { Name = PREBINDING; /* this override doesn't work */ - Type = bool; - DefaultValue = NO; - }, - { Name = WARNING_CFLAGS; - CommandLineArgs = ( ); - }, - - ); - - } -) diff --git a/InstallCDT/Resources/scripts/createSpecifications.sh b/InstallCDT/Resources/scripts/createSpecifications.sh deleted file mode 100755 index f951aeff..00000000 --- a/InstallCDT/Resources/scripts/createSpecifications.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh -#Copyright (c) 2006 Christopher J. W. Lloyd -# -#Permission is hereby granted, free of charge, to any person obtaining a copy of this -#software and associated documentation files (the "Software"), to deal in the Software -#without restriction, including without limitation the rights to use, copy, modify, -#merge, publish, distribute, sublicense, and/or sell copies of the Software, and to -#permit persons to whom the Software is furnished to do so, subject to the following -#conditions: -# -#The above copyright notice and this permission notice shall be included in all copies -#or substantial portions of the Software. -# -#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -#INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -#PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -#TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -#OR OTHER DEALINGS IN THE SOFTWARE. -set -eu - -targetPlatform=$1 -targetArchitecture=$2 -productName=$3 -productVersion=$4 -compilerTarget=$5 -specificationTemplates=$6 -compiler=$7 -compilerVersion=$8 - - -destinationDirectory="/Library/Application Support/Developer/Shared/Xcode/Specifications" -mkdir -p "$destinationDirectory" - -hostTriple= -uppercaseProductName=`echo $productName | tr "[:lower:]" "[:upper:]"` -uppercasePlatform=`echo $targetPlatform | tr "[:lower:]" "[:upper:]"` -lowercasePlatform=`echo $targetPlatform | tr "[:upper:]" "[:lower:]"` - -outputSpecification="$destinationDirectory/$productName-$productVersion-$targetPlatform-$targetArchitecture-$compiler" -versionSpecification="$outputSpecification-$compilerVersion.pbcompspec" -defaultSpecification="$outputSpecification-default.pbcompspec" - -sed -e 's/%REPLACE%Platform%REPLACE%/'$targetPlatform'/g' < $specificationTemplates/$compiler-$compilerVersion.pbcompspec | \ -sed -e 's/%REPLACE%platform%REPLACE%/'$lowercasePlatform'/g' | \ -sed -e 's/%REPLACE%PLATFORM%REPLACE%/'$uppercasePlatform'/g' | \ -sed -e 's/%REPLACE%architecture%REPLACE%/'$targetArchitecture'/g' | \ -sed -e 's/%REPLACE%ProductName%REPLACE%/'$productName'/g' | \ -sed -e 's/%REPLACE%PRODUCTNAME%REPLACE%/'$uppercaseProductName'/g' | \ -sed -e 's/%REPLACE%ProductVersion%REPLACE%/'$productVersion'/g' | \ -sed -e 's/%REPLACE%compilerVersion%REPLACE%/'$compilerVersion'/g' | \ -sed -e 's/%REPLACE%TARGET%REPLACE%/'$compilerTarget'/g' > "$versionSpecification" - -sed -e 's/%REPLACE%Platform%REPLACE%/'$targetPlatform'/g' < $specificationTemplates/$compiler-default.pbcompspec | \ -sed -e 's/%REPLACE%platform%REPLACE%/'$lowercasePlatform'/g' | \ -sed -e 's/%REPLACE%PLATFORM%REPLACE%/'$uppercasePlatform'/g' | \ -sed -e 's/%REPLACE%architecture%REPLACE%/'$targetArchitecture'/g' | \ -sed -e 's/%REPLACE%ProductName%REPLACE%/'$productName'/g' | \ -sed -e 's/%REPLACE%PRODUCTNAME%REPLACE%/'$uppercaseProductName'/g' | \ -sed -e 's/%REPLACE%ProductVersion%REPLACE%/'$productVersion'/g' | \ -sed -e 's/%REPLACE%compilerVersion%REPLACE%/'$compilerVersion'/g' | \ -sed -e 's/%REPLACE%TARGET%REPLACE%/'$compilerTarget'/g' > "$defaultSpecification" - -if [ $targetPlatform = "Windows" ];then - cp $specificationTemplates/Windows.pbfilespec "$destinationDirectory/$productName-$productVersion-Windows.pbfilespec" -fi diff --git a/InstallCDT/Resources/scripts/downloadFilesIfNeeded.sh b/InstallCDT/Resources/scripts/downloadFilesIfNeeded.sh deleted file mode 100755 index cf346bb4..00000000 --- a/InstallCDT/Resources/scripts/downloadFilesIfNeeded.sh +++ /dev/null @@ -1,36 +0,0 @@ -#/bin/sh -#Copyright (c) 2006 Christopher J. W. Lloyd -# -#Permission is hereby granted, free of charge, to any person obtaining a copy of this -#software and associated documentation files (the "Software"), to deal in the Software -#without restriction, including without limitation the rights to use, copy, modify, -#merge, publish, distribute, sublicense, and/or sell copies of the Software, and to -#permit persons to whom the Software is furnished to do so, subject to the following -#conditions: -# -#The above copyright notice and this permission notice shall be included in all copies -#or substantial portions of the Software. -# -#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -#INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -#PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -#TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -#OR OTHER DEALINGS IN THE SOFTWARE. -set -eu -downloadFolder=$1 -listOfFiles="$2" - -mkdir -p $downloadFolder - -for locationOfFile in $listOfFiles -do - nameOfFile=`basename $locationOfFile` - - if [ -f $downloadFolder/$nameOfFile ];then - echo "No download needed for "$downloadFolder/$nameOfFile - else - echo "Downloading "$locationOfFile" ..." - curl -f -L $locationOfFile -o $downloadFolder/$nameOfFile; - fi -done diff --git a/InstallCDT/Resources/scripts/unarchiveFiles.sh b/InstallCDT/Resources/scripts/unarchiveFiles.sh deleted file mode 100755 index 5e0a67f3..00000000 --- a/InstallCDT/Resources/scripts/unarchiveFiles.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh -#Copyright (c) 2006 Christopher J. W. Lloyd -# -#Permission is hereby granted, free of charge, to any person obtaining a copy of this -#software and associated documentation files (the "Software"), to deal in the Software -#without restriction, including without limitation the rights to use, copy, modify, -#merge, publish, distribute, sublicense, and/or sell copies of the Software, and to -#permit persons to whom the Software is furnished to do so, subject to the following -#conditions: -# -#The above copyright notice and this permission notice shall be included in all copies -#or substantial portions of the Software. -# -#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -#INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -#PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -#TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -#OR OTHER DEALINGS IN THE SOFTWARE. -set -eu -sourceFolder=$1 -destinationFolder=$2 -listOfFiles="$3" - -mkdir -p $destinationFolder - -for locationOfFile in $listOfFiles -do - locationOfFile=$sourceFolder/$locationOfFile - - if [ -f $locationOfFile.tar.gz ];then - extension=".tar.gz" - unarchiveFlags="-xzf" - elif [ -f $locationOfFile.tar.bz2 ];then - extension=".tar.bz2" - unarchiveFlags="-xjf" - else - echo "Unable to determine archive format of $locationOfFile, exiting" - exit 1 - fi - - echo -n "Unarchiving $locationOfFile$extension ..." - (cd $destinationFolder;gnutar $unarchiveFlags $locationOfFile$extension) - echo " done." -done diff --git a/InstallCDT/Resources/tools/retargetBundle.m b/InstallCDT/Resources/tools/retargetBundle.m deleted file mode 100644 index cb095672..00000000 --- a/InstallCDT/Resources/tools/retargetBundle.m +++ /dev/null @@ -1,441 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -/* - retargetBundle - - Synopsis: - - Quickly copies the essential parts of a .framework in the Mac OS X layout to a - layout more suitable for Windows or Unix using the Cocotron runtime. - - Options: - - -F - - Adds a directory to the beginning of the search path. The initial search path - is the value of the environment variable FRAMEWORK_SEARCH_PATHS if present, - typically set by Xcode. The search path can not be empty. - - -framework - - Name of framework to copy, e.g. "Foundation". The path of the framework is - immediately resolved using the current search path. Subsequent changes to the - search path will not affect the resolved path of this framework. At least one - framework must be specified. - - -destination - - Directory to place the resulting files. If no directory is specified, the - current directory is used. - - Discussion: - - While the default OS X framework organization is perfectly suitable as a - compile/link time solution it poses cumbersome execution time implications on - Windows and Unix. The OS X layout would require altering the dynamic link path - or placing frameworks at absolute paths, which is inconvenient for developers - and users. - - The convention with the Cocotron runtime is locate frameworks alongside the - executables that need them, typically inside the .app wrapper, or in the same - directory as a command line tool. Both Windows and Unix have functionality - which makes this easy to accomplish provided the framework is reorganized. - - The Windows dynamic linker will automatically recognize dll's located in the - same directory as the .exe and most Unix systems allow similar behavior to be - configured using the -rpath linking option and $ORIGIN. - - retargetBundle will copy a framework's dynamic library to the destination - directory and copy the .framework directory and resources to the destination - directory. Symbolic links, headers and link libraries are not copied. - - retargetBundle is intended to be used as the final build stage in an Xcode - project, copying the essential framework pieces into a .app wrapper for - immediate execution. The copy is done efficiently, only copying changed files. - - retargetBundle will not delete files, if the framework's structure has - changed, you should clean your target and rebuild. - */ - -#import -#import - -static BOOL useSymlinks = NO; -static BOOL ignoreTime = NO; - -static void usageAndExit() { - NSLog(@"usage: retargetBundle [-link] [-force] -framework [ -F " - @" ] -destination "); - exit(-1); -} - -static void copyRegularAtInto(NSFileManager *fileManager, NSString *original, - NSString *copy) -{ - NSError *error; - - [fileManager removeItemAtPath: copy error: &error]; - - if (useSymlinks) { - if (![fileManager createSymbolicLinkAtPath: copy - withDestinationPath: original - error: &error]) - NSLog(@"createSymbolicLinkAtPath:%@ pathContent:%@ FAILED, " - @"error=%@", - copy, original, error); - } else { - if (![fileManager copyItemAtPath: original toPath: copy error: &error]) - NSLog(@"copyPath:%@ toPath:%@ FAILED, error=%@", original, copy, - error); - } -} - -static void copyPathAtInto(NSFileManager *fileManager, NSString *original, - NSString *copy, NSArray *ignore) -{ - NSError *error = nil; - - if ([ignore containsObject: original]) - return; - - NSDictionary *attributes = [fileManager attributesOfItemAtPath: original - error: &error]; - NSString *fileType = [attributes objectForKey: NSFileType]; - - if ([fileType isEqual: NSFileTypeSymbolicLink]) { - NSString *dest; - - if ((dest = [fileManager destinationOfSymbolicLinkAtPath: original - error: &error]) == - nil) { - NSLog(@"destinationOfSymbolicLinkAtPath FAILED, path=%@, error=%@", - original, error); - return; - } - original = [[original stringByDeletingLastPathComponent] - stringByAppendingPathComponent: dest]; - attributes = [fileManager attributesOfItemAtPath: original - error: &error]; - fileType = [attributes objectForKey: NSFileType]; - } - - if ([fileType isEqual: NSFileTypeRegular]) - copyRegularAtInto(fileManager, original, copy); - else if ([fileType isEqual: NSFileTypeDirectory]) { - NSArray *children = [fileManager contentsOfDirectoryAtPath: original - error: &error]; - unsigned i, count = [children count]; - - [fileManager createDirectoryAtPath: copy - withIntermediateDirectories: YES - attributes: nil - error: &error]; - - for (i = 0; i < count; i++) { - NSString *check = [children objectAtIndex: i]; - NSString *originalChild = - [original stringByAppendingPathComponent: check]; - NSString *copyChild = [copy stringByAppendingPathComponent: check]; - - copyPathAtInto(fileManager, originalChild, copyChild, ignore); - } - } -} - -static void copyChangedFilesAtInto(NSFileManager *fileManager, - NSString *original, NSString *copy, - NSArray *ignore) -{ - NSError *error; - - if ([ignore containsObject: original]) - return; - - NSDictionary *attributes = [fileManager attributesOfItemAtPath: original - error: &error]; - NSString *fileType = [attributes objectForKey: NSFileType]; - - if ([fileType isEqual: NSFileTypeSymbolicLink]) { - NSString *dest; - - if ((dest = [fileManager destinationOfSymbolicLinkAtPath: original - error: &error]) == - nil) { - NSLog(@"destinationOfSymbolicLinkAtPath FAILED, path=%@, error=%@", - original, error); - return; - } - original = [[original stringByDeletingLastPathComponent] - stringByAppendingPathComponent: dest]; - attributes = [fileManager attributesOfItemAtPath: original - error: &error]; - fileType = [attributes objectForKey: NSFileType]; - } - - if (attributes == nil) { - NSLog(@"no attributes at path %@", original); - exit(-1); - } - - NSDictionary *shouldBe = [fileManager attributesOfItemAtPath: copy - error: &error]; - BOOL duplicate = NO; - - if (shouldBe == nil) - copyPathAtInto(fileManager, original, copy, ignore); - else if (![fileType isEqual: [shouldBe objectForKey: NSFileType]]) { - NSLog(@"Unable to copy file %@ onto file %@, differing types %@!=%@", - original, copy, fileType, [shouldBe objectForKey: NSFileType]); - exit(-1); - } else if ([fileType isEqual: NSFileTypeRegular]) { - if (![[attributes objectForKey: NSFileSize] - isEqual: [shouldBe objectForKey: NSFileSize]]) - copyRegularAtInto(fileManager, original, copy); - if (ignoreTime || - ([[attributes objectForKey: NSFileModificationDate] - compare: [shouldBe - objectForKey: NSFileModificationDate]] == - NSOrderedDescending)) - copyRegularAtInto(fileManager, original, copy); - } else if ([fileType isEqual: NSFileTypeDirectory]) { - NSArray *children = [fileManager contentsOfDirectoryAtPath: original - error: &error]; - unsigned i, count = [children count]; - - for (i = 0; i < count; i++) { - NSString *check = [children objectAtIndex: i]; - NSString *originalChild = - [original stringByAppendingPathComponent: check]; - NSString *copyChild = [copy stringByAppendingPathComponent: check]; - - copyChangedFilesAtInto(fileManager, originalChild, copyChild, - ignore); - } - } else { - NSLog(@"Unable to handle file type %@ at %@", fileType, original); - exit(-1); - } -} - -static NSString *sharedObjectFileInFramework(NSFileManager *fileManager, - NSString *original) -{ - NSError *error; - NSArray *children = [fileManager contentsOfDirectoryAtPath: original - error: &error]; - int i, count = [children count]; - - for (i = 0; i < count; i++) { - NSString *check = [children objectAtIndex: i]; - NSString *extension = [check pathExtension]; - - if ([extension isEqual: @"dll"] || [extension isEqual: @"so"]) { - return check; - } - } - return nil; -} - -static NSMutableArray *ignoredFilesInFramework(NSFileManager *fileManager, - NSString *original) -{ - NSString *name = - [[original lastPathComponent] stringByDeletingPathExtension]; - NSMutableArray *result = [NSMutableArray array]; - - [result addObject: [[[original stringByAppendingPathComponent: @"lib"] - stringByAppendingString: name] - stringByAppendingPathExtension: @"a"]]; - [result addObject: [original stringByAppendingPathComponent: @"Versions"]]; - [result addObject: [original stringByAppendingPathComponent: @"Headers"]]; - [result addObject: [original stringByAppendingPathComponent: - @"PrivateHeaders"]]; - - return result; -} - -static void copyFrameworkAtIntoDirectory(NSFileManager *fileManager, - NSString *original, - NSString *destination) -{ - NSMutableArray *ignore = ignoredFilesInFramework(fileManager, original); - - NSString *soFile = sharedObjectFileInFramework(fileManager, original); - NSString *soOriginal = [original stringByAppendingPathComponent: soFile]; - NSString *soDestination = - [destination stringByAppendingPathComponent: soFile]; - - [ignore addObject: soOriginal]; - - soOriginal = [soOriginal stringByResolvingSymlinksInPath]; - copyChangedFilesAtInto(fileManager, soOriginal, soDestination, nil); - - NSString *copy = [destination - stringByAppendingPathComponent: [original lastPathComponent]]; - - if (useSymlinks) { - copyRegularAtInto(fileManager, original, copy); - } else - copyChangedFilesAtInto(fileManager, original, copy, ignore); -} - -NSString *resolveFrameworkWithPath(NSFileManager *fileManager, NSString *name, - NSArray *path) -{ - int i, count = [path count]; - - for (i = 0; i < count; i++) { - NSString *directory = [path objectAtIndex: i]; - NSString *check = [[directory stringByAppendingPathComponent: name] - stringByAppendingPathExtension: @"framework"]; - BOOL isDirectory; - - if ([fileManager fileExistsAtPath: check isDirectory: &isDirectory] && - isDirectory) - return check; - } - - return nil; -} - -int main(int argc, char **argv) { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - NSFileManager *fileManager = [NSFileManager defaultManager]; - NSMutableArray *frameworks = [NSMutableArray new]; - NSMutableArray *searchPath = [NSMutableArray new]; - NSArray *arguments = [[NSProcessInfo processInfo] arguments]; - NSDictionary *environment = [[NSProcessInfo processInfo] environment]; - NSString *destination = nil; - - NSArray *settingsPath = - [[environment objectForKey: @"FRAMEWORK_SEARCH_PATHS"] - componentsSeparatedByString: @" "]; - - [searchPath addObjectsFromArray: settingsPath]; - - unsigned i, count = [arguments count]; - - for (i = 1; i < count; i++) { - NSString *check = [arguments objectAtIndex: i]; - - if ([check isEqual: @"-framework"]) { - i++; - if (i >= count) - usageAndExit(); - else { - NSString *name = [arguments objectAtIndex: i]; - NSString *path = - resolveFrameworkWithPath(fileManager, name, searchPath); - - if (path == nil) { - NSLog(@"Unable to find -framework %@ on path %@", name, - path); - exit(-1); - } - - [frameworks addObject: path]; - } - } else if ([check isEqual: @"-F"]) { - i++; - if (i >= count) - usageAndExit(); - else { - NSString *directory = [arguments objectAtIndex: i]; - - [searchPath insertObject: directory atIndex: 0]; - } - } else if ([check isEqual: @"-destination"]) { - i++; - if (i >= count) - usageAndExit(); - else { - destination = [arguments objectAtIndex: i]; - } - } else if ([check isEqual: @"-link"]) { - useSymlinks = YES; - } else if ([check isEqual: @"-force"]) { - ignoreTime = YES; - } else { - usageAndExit(); - } - } - - if ([frameworks count] == 0) - usageAndExit(); - if ([searchPath count] == 0) - usageAndExit(); - - if (destination == nil) - destination = [[NSFileManager defaultManager] currentDirectoryPath]; - - for (i = 0; i < [frameworks count]; i++) { - NSString *original = [frameworks objectAtIndex: i]; - - copyFrameworkAtIntoDirectory(fileManager, original, destination); - } - - NSString *gdbserver = [environment objectForKey: @"GDBSERVER"]; - NSString *gdbserverPort = [environment objectForKey: @"GDBSERVER_PORT"]; - NSString *gdbserverHost = [environment objectForKey: @"GDBSERVER_HOST"]; - NSString *builtProductsDir = - [environment objectForKey: @"BUILT_PRODUCTS_DIR"]; - - if (gdbserver != nil) { - NSString *debugger = - [[destination stringByAppendingPathComponent: @"gdbserver"] - stringByAppendingPathExtension: @"exe"]; - - copyPathAtInto(fileManager, gdbserver, debugger, nil); - - if (gdbserverPort == nil) - gdbserverPort = @"999"; - - NSString *startline = [NSString - stringWithFormat: @"START \"GDBServer listening at port %@\" " - @"gdbserver --multi localhost:%@\x0D\x0A", - gdbserverPort, gdbserverPort]; - NSData *data = [startline dataUsingEncoding: NSASCIIStringEncoding]; - NSString *debug = - [[destination stringByAppendingPathComponent: @"debug"] - stringByAppendingPathExtension: @"bat"]; - - [fileManager createFileAtPath: debug contents: data attributes: nil]; - - NSString *wrapperName = [environment objectForKey: @"WRAPPER_NAME"]; - NSString *executableName = - [environment objectForKey: @"EXECUTABLE_NAME"]; - NSString *remoteTarget = [NSString - stringWithFormat: - @"cd %@/Contents/Windows\nset remote exec-file " - @"%@\ntarget extended-remote %@:%@\n", - wrapperName, executableName, gdbserverHost, - gdbserverPort]; - NSData *remoteTargetData = - [remoteTarget dataUsingEncoding: NSASCIIStringEncoding]; - NSString *remoteTargetTxt = [builtProductsDir - stringByAppendingPathComponent: @"Remote-Target.txt"]; - - [fileManager createFileAtPath: remoteTargetTxt - contents: remoteTargetData - attributes: nil]; - } - - exit(0); -} diff --git a/InstallCDT/install.sh b/InstallCDT/install.sh deleted file mode 100755 index c236b0a4..00000000 --- a/InstallCDT/install.sh +++ /dev/null @@ -1,376 +0,0 @@ -#!/bin/sh -#Copyright (c) 2006 Christopher J. W. Lloyd -# -#Permission is hereby granted, free of charge, to any person obtaining a copy of this -#software and associated documentation files (the "Software"), to deal in the Software -#without restriction, including without limitation the rights to use, copy, modify, -#merge, publish, distribute, sublicense, and/or sell copies of the Software, and to -#permit persons to whom the Software is furnished to do so, subject to the following -#conditions: -# -#The above copyright notice and this permission notice shall be included in all copies -#or substantial portions of the Software. -# -#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -#INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -#PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -#TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE -#OR OTHER DEALINGS IN THE SOFTWARE. -# -# Inspired by the build-cross.sh script by Sam Lantinga, et al -# Usage: install.sh " -# Windows i386, Linux i386, Solaris sparc - -if [ ""$1"" = "" ];then - targetPlatform="Windows" -else - targetPlatform=$1 -fi - -if [ ""$2"" = "" ];then - targetArchitecture="i386" -else - targetArchitecture=$2 -fi - -if [ ""$3"" = "" ];then - compiler="gcc" -else - compiler=$3 -fi - -gccVersion="4.3.1" - -if [ ""$4"" = "" ];then - if [ "$compiler" = "gcc" ]; then - compilerVersion=$gccVersion - elif [ "$compiler" = "llvm-clang" ]; then - compilerVersion="trunk" - else - /bin/echo "Unknown compiler "$compiler - exit 1 - fi -else - compilerVersion=$4 -fi - -if [ ""$5"" = "" ];then - if [ "$compiler" = "gcc" ]; then - compilerVersionDate="-02242010" - elif [ "$compiler" = "llvm-clang" ]; then - compilerVersionDate="-05042011" - else - /bin/echo "Unknown compiler "$compiler - exit 1 - fi -else - compilerVersionDate="-"$5 -fi - -osVersion=$6 - -if [ ""$6"" = "" ];then - if [ ""$6"" = "" -a ""$targetPlatform"" = "Solaris" ];then - osVersion="2.10" - elif [ ""$6"" = "" -a ""$targetPlatform"" = "FreeBSD" ];then - osVersion="7" - else - osVersion="" - fi -else - osVersion=$6 -fi - -if [ $targetArchitecture = "x86_64" ];then - wordSize="64" -else - wordSize="32" -fi - -/bin/echo "Welcome to The Cocotron's InstallCDT script" - -if [ -w /Library/Application\ Support/Developer/Shared/Xcode/Specifications ];then - /bin/echo "Permissions properly set up, continuing install." -else - /bin/echo "For this script to complete successfully, the directory /Library/Application Support/Developer/Shared/Xcode/Specifications must be writeable by you, and we've detected that it isn't. " - exit 1 -fi - -set -eu - -cd "`dirname \"$0\"`" -installResources=`pwd`/Resources - -if [ ! -d "$installResources" ];then - /bin/echo "Unable to locate Resources directory at "$installResources - exit 1 -fi - -enableLanguages="c,objc,c++,obj-c++" - -installFolder=/Developer -productName=Cocotron -productVersion=1.0 - -binutilsVersion=2.21-20111025 -mingwRuntimeVersion=3.20 -mingwAPIVersion=3.17-2 -gmpVersion=4.2.3 -mpfrVersion=2.3.2 - -binutilsConfigureFlags="" - -if [ $targetPlatform = "Windows" ];then - if [ $targetArchitecture = "i386" ];then - compilerTarget=i386-pc-mingw32msvc$osVersion - compilerConfigureFlags="" - else - /bin/echo "Unsupported architecture $targetArchitecture on $targetPlatform" - exit 1 - fi -elif [ $targetPlatform = "Linux" ];then - if [ $targetArchitecture = "i386" ];then - compilerTarget=i386-ubuntu-linux$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - elif [ $targetArchitecture = "arm" ];then - compilerTarget=arm-none-linux-gnueabi$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - elif [ $targetArchitecture = "ppc" ];then - compilerTarget=powerpc-unknown-linux$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - elif [ $targetArchitecture = "x86_64" ];then - compilerTarget=x86_64-pc-linux$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - binutilsConfigureFlags="--enable-64-bit-bfd" - else - /bin/echo "Unsupported architecture $targetArchitecture on $targetPlatform" - exit 1 - fi -elif [ $targetPlatform = "FreeBSD" ];then - if [ $targetArchitecture = "i386" ];then - compilerTarget=i386-pc-freebsd$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - elif [ $targetArchitecture = "x86_64" ];then - compilerTarget=x86_64-pc-freebsd$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - binutilsConfigureFlags="--enable-64-bit-bfd" - else - /bin/echo "Unsupported architecture $targetArchitecture on $targetPlatform" - exit 1 - fi -elif [ $targetPlatform = "Solaris" ];then - if [ $targetArchitecture = "sparc" ];then - compilerTarget=sparc-sun-solaris$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - else - /bin/echo "Unsupported architecture $targetArchitecture on $targetPlatform" - exit 1 - fi -elif [ $targetPlatform = "Darwin" ];then - if [ $targetArchitecture = "i386" ];then - compilerTarget=i386-unknown-darwin$osVersion - compilerConfigureFlags="--enable-version-specific-runtime-libs --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit" - else - /bin/echo "Unsupported architecture $targetArchitecture on $targetPlatform" - exit 1 - fi - -else - /bin/echo "Unsupported platform $targetPlatform" - exit 1 -fi - - -scriptResources="$installResources/scripts" -toolResources="$installResources/tools" - - - -productFolder=$installFolder/$productName/$productVersion - -downloadFolder=$productFolder/Downloads -sourceFolder=$productFolder/Source -interfaceFolder=$productFolder/PlatformInterfaces/$compilerTarget -buildFolder=$productFolder/build/$targetPlatform/$targetArchitecture -resultFolder=$productFolder/$targetPlatform/$targetArchitecture/$compiler-$compilerVersion -toolFolder=$productFolder/bin - -PATH="$resultFolder/bin:$PATH" - -downloadCompilerIfNeeded(){ - $scriptResources/downloadFilesIfNeeded.sh $downloadFolder "http://cocotron-tools-gpl3.googlecode.com/files/$compiler-$compilerVersion$compilerVersionDate.tar.bz2 http://ftp.sunet.se/pub/gnu/gmp/gmp-$gmpVersion.tar.bz2 http://cocotron-binutils-2-21.googlecode.com/files/binutils-$binutilsVersion.tar.gz http://cocotron-tools-gpl3.googlecode.com/files/mpfr-$mpfrVersion.tar.bz2" - $scriptResources/unarchiveFiles.sh $downloadFolder $sourceFolder "$compiler-$compilerVersion$compilerVersionDate binutils-$binutilsVersion gmp-$gmpVersion mpfr-$mpfrVersion" -} - -createWindowsInterfaceIfNeeded(){ - "$scriptResources/downloadFilesIfNeeded.sh" $downloadFolder "http://cocotron-tools-gpl3.googlecode.com/files/mingwrt-$mingwRuntimeVersion-mingw32-dev.tar.gz http://cocotron-tools-gpl3.googlecode.com/files/w32api-$mingwAPIVersion-mingw32-dev.tar.gz" - - "$scriptResources/unarchiveFiles.sh" $downloadFolder $interfaceFolder "mingwrt-$mingwRuntimeVersion-mingw32-dev w32api-$mingwAPIVersion-mingw32-dev" -} - -createLinuxInterfaceIfNeeded(){ -# Interface is created before script execution, see doc.s -/bin/echo "Done." -} - -createFreeBSDInterfaceIfNeeded(){ -# Interface is created before script execution, see doc.s -/bin/echo "Done." -} - -createSolarisInterfaceIfNeeded(){ -# Interface is created before script execution, see doc.s -/bin/echo "Done." -} - -createDarwinInterfaceIfNeeded(){ -# Interface is created before script execution, see doc.s -/bin/echo "Done." -} - -copyPlatformInterface(){ - if [ ! -d $interfaceFolder ];then - /bin/echo "Interface (headers, libraries, etc.) not present at "$interfaceFolder", exiting" - exit 1 - else - mkdir -p $resultFolder/$compilerTarget - (cd $interfaceFolder;gnutar -cf - *) | (cd $resultFolder/$compilerTarget;gnutar -xf -) - fi -} - -configureAndInstall_binutils() { - /bin/echo "Configuring, building and installing binutils "$binutilsVersion - rm -rf $buildFolder/binutils-$binutilsVersion - mkdir -p $buildFolder/binutils-$binutilsVersion - pushd $buildFolder/binutils-$binutilsVersion - CFLAGS="-m${wordSize} -Wformat=0 -Wno-error=deprecated-declarations -Wno-error=unused-value" $sourceFolder/binutils-$binutilsVersion/configure --prefix="$resultFolder" --target=$compilerTarget $binutilsConfigureFlags - make - make install - popd -} - -configureAndInstall_gmpAndMpfr() { - /bin/echo "Configuring and building and installing gmp "$gmpVersion - rm -rf $buildFolder/gmp-$gmpVersion - mkdir -p $buildFolder/gmp-$gmpVersion - pushd $buildFolder/gmp-$gmpVersion - ABI=${wordSize} $sourceFolder/gmp-$gmpVersion/configure --prefix="$resultFolder" - make - make install - popd - - /bin/echo "Configuring and building mpfr "$mpfrVersion - rm -rf $buildFolder/mpfr-$mpfrVersion - mkdir -p $buildFolder/mpfr-$mpfrVersion - pushd $buildFolder/mpfr-$mpfrVersion - $sourceFolder/mpfr-$mpfrVersion/configure --prefix="$resultFolder" --with-gmp-build=$buildFolder/gmp-$gmpVersion - make - make install - popd -} - -configureAndInstall_compiler() { - /bin/echo "Configuring, building and installing $compiler "$compilerVersion - -if [ "$compiler" = "gcc" ]; then - rm -rf $buildFolder/$compiler-$compilerVersion - mkdir -p $buildFolder/$compiler-$compilerVersion - pushd $buildFolder/$compiler-$compilerVersion - - CFLAGS="-m${wordSize}" $sourceFolder/$compiler-$compilerVersion/configure -v --prefix="$resultFolder" --target=$compilerTarget \ - --with-gnu-as --with-gnu-ld --with-headers=$resultFolder/$compilerTarget/include \ - --without-newlib --disable-multilib --disable-libssp --disable-nls --enable-languages="$enableLanguages" \ - --with-gmp=$buildFolder/gmp-$gmpVersion --enable-decimal-float --with-mpfr=$resultFolder --enable-checking=release \ - --enable-objc-gc \ - $compilerConfigureFlags - make - make install - popd - -elif [ "$compiler" = "llvm-clang" ]; then - if [ ! -e "$productFolder/$compiler-$compilerVersion/bin/clang" ]; then - rm -rf $productFolder/build/$compiler-$compilerVersion - mkdir -p $productFolder/build/$compiler-$compilerVersion - pushd $productFolder/build/$compiler-$compilerVersion - $sourceFolder/$compiler-$compilerVersion/configure --enable-optimized --prefix="$productFolder/$compiler-$compilerVersion" - make - make install - popd - else - /bin/echo "compiler $compiler already exists" - fi -else - /bin/echo "Unknown compiler $compiler" - exit 1 -fi - -} - -stripBinaries() { - /bin/echo -n "Stripping binaries ..." - for x in `find $resultFolder/bin -type f -print` - do - strip $x - done - for x in `find $resultFolder/$compilerTarget/bin/ -type f -print` - do - strip $x - done - if [ "$compiler" = "gcc" ]; then - for x in `find $resultFolder/libexec/$compiler/$compilerTarget/$compilerVersion -type f -print` - do - strip $x - done - fi - /bin/echo "done." -} - -"create"$targetPlatform"InterfaceIfNeeded" -downloadCompilerIfNeeded - -/bin/echo -n "Copying the platform interface. This could take a while.." -if [ $targetPlatform != "Darwin" ]; then - copyPlatformInterface -fi -/bin/echo -n "done." - -configureAndInstall_binutils - -configureAndInstall_gmpAndMpfr - -configureAndInstall_compiler - -stripBinaries - -/bin/echo -n "Creating specifications ..." -"$scriptResources/createSpecifications.sh" $targetPlatform $targetArchitecture $productName $productVersion $compilerTarget "$installResources/Specifications" $compiler $compilerVersion -/bin/echo "done." - -/bin/echo "Building tools ..." -mkdir -p $toolFolder -cc "$toolResources/retargetBundle.m" -framework Foundation -o $toolFolder/retargetBundle -/bin/echo "done." - -if [ "$compiler" = "gcc" ]; then - (cd $resultFolder/..;ln -fs $compiler-$compilerVersion g++-$compilerVersion) -elif [ "$compiler" = "llvm-clang" ]; then - (cd $resultFolder/..;ln -fs $compiler-$compilerVersion llvm-clang++-$compilerVersion) -else - /bin/echo "Unknown compiler $compiler" - exit 1 -fi - -if [ "$compiler" = "llvm-clang" ]; then -# you need to install also gcc because -ccc-gcc-name is required for cross compiling with clang (this is required for choosing the right assembler 'as' tool. -# there is no flag for referencing only this tool :-( -/bin/echo -n "Creating clang script for architecture $targetArchitecture ..." -/bin/echo '#!/bin/sh' > $installFolder/$productName/$productVersion/$targetPlatform/$targetArchitecture/llvm-clang-$compilerVersion/bin/$compilerTarget-llvm-clang -/bin/echo "$productFolder/$compiler-$compilerVersion/bin/clang -fcocotron-runtime -ccc-host-triple $compilerTarget -ccc-gcc-name $installFolder/$productName/$productVersion/$targetPlatform/$targetArchitecture/gcc-$gccVersion/bin/$compilerTarget-gcc \ --I$installFolder/$productName/$productVersion/$targetPlatform/$targetArchitecture/llvm-clang-$compilerVersion/$compilerTarget/include \"\$@\"" >> $installFolder/$productName/$productVersion/$targetPlatform/$targetArchitecture/llvm-clang-$compilerVersion/bin/$compilerTarget-llvm-clang -chmod +x $installFolder/$productName/$productVersion/$targetPlatform/$targetArchitecture/llvm-clang-$compilerVersion/bin/$compilerTarget-llvm-clang -/bin/echo "done." -fi -echo - -/bin/echo "Script completed" diff --git a/InstallCDT/install_AntiGrain.sh b/InstallCDT/install_AntiGrain.sh deleted file mode 100755 index 8a205850..00000000 --- a/InstallCDT/install_AntiGrain.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -./install_FreeType.sh - -installResources=`pwd`/Resources -scriptResources=$installResources/scripts - -productFolder=/Developer/Cocotron/1.0 -downloadFolder=$productFolder/Downloads - -if [ ""$1"" = "" ];then - AGG_VERSION=2.4 -else - AGG_VERSION=$1 -fi - -PREFIX=`pwd`/../system/i386-mingw32msvc/agg-$AGG_VERSION -BUILD=/tmp/build_AntiGrain - -$scriptResources/downloadFilesIfNeeded.sh $downloadFolder "http://www.antigrain.com/agg-$AGG_VERSION.zip" - -mkdir -p $BUILD -cd $BUILD -unzip -o $downloadFolder/agg-$AGG_VERSION.zip -cd agg-$AGG_VERSION - -cd src - -# Create a fake Cocotron uname for the build system -cat > uname < Makefile.in.Cocotron < - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - NSSpellEngine_hunspell - - diff --git a/NSSpellEngine_hunspell/NSSpellEngine_hunspell.h b/NSSpellEngine_hunspell/NSSpellEngine_hunspell.h deleted file mode 100644 index bb53edcb..00000000 --- a/NSSpellEngine_hunspell/NSSpellEngine_hunspell.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// NSSpellEngine_hunspell.h -// NSSpellEngine_hunspell -// -// Created by Christopher Lloyd on 8/29/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. -// - -#import - -@class NSMutableDictionary; - -@interface NSSpellEngine_hunspell : NSSpellEngine { - NSMutableDictionary *_dictionaries; - - NSString *_directory; - NSString *_localeIdentifier; - - void *_hunspell; -} - -- initWithContentsOfFile: (NSString *) path; - -@end diff --git a/NSSpellEngine_hunspell/NSSpellEngine_hunspell.mm b/NSSpellEngine_hunspell/NSSpellEngine_hunspell.mm deleted file mode 100644 index 084d6655..00000000 --- a/NSSpellEngine_hunspell/NSSpellEngine_hunspell.mm +++ /dev/null @@ -1,217 +0,0 @@ -// -// NSSpellEngine_hunspell.m -// NSSpellEngine_hunspell -// -// Created by Christopher Lloyd on 8/29/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. -// - -#import "NSSpellEngine_hunspell.h" -#import "NSSpellEngine_hunspellDictionary.h" -#import -#import -#import -#import -#import -#import - -@implementation NSSpellEngine_hunspell - -+ (NSArray *) spellEngines { - NSBundle *bundle = [NSBundle bundleForClass: self]; - NSString *directory = - [[bundle resourcePath] stringByAppendingPathComponent: @"Spelling"]; - - NSSpellEngine_hunspell *engine = [[[NSSpellEngine_hunspell alloc] - initWithContentsOfFile: directory] autorelease]; - - return [NSArray arrayWithObject: engine]; -} - -- initWithContentsOfFile: (NSString *) path { - NSArray *contents = - [[NSFileManager defaultManager] contentsOfDirectoryAtPath: path - error: NULL]; - - _dictionaries = [[NSMutableDictionary alloc] init]; - - for (NSString *aff in contents) { - - if ([[aff pathExtension] isEqualToString: @"aff"]) { - NSString *affPath = [path stringByAppendingPathComponent: aff]; - NSSpellEngine_hunspellDictionary *dict = - [[[NSSpellEngine_hunspellDictionary alloc] - initWithContentsOfFile: affPath] autorelease]; - - [_dictionaries setObject: dict forKey: [dict language]]; - } - } - - return self; -} - -- (NSString *) vendor { - return @"Hunspell"; -} - -- (NSArray *) languages { - NSMutableArray *result = [NSMutableArray array]; - - for (NSSpellEngine_hunspellDictionary *dict in [_dictionaries allValues]) { - [result addObject: [dict language]]; - } - - [result sortUsingSelector: @selector(caseInsensitiveCompare:)]; - - return result; -} - -- (NSSpellEngine_hunspellDictionary *) _dictionaryForLanguage: - (NSString *) language -{ - if (language == nil) { - language = [[NSLocale currentLocale] localeIdentifier]; - } - NSSpellEngine_hunspellDictionary *dict = - [_dictionaries objectForKey: language]; - if (dict == nil) { - // If the lang is "xx_YY", then try the first dict starting with "xx" - // So "fr_CA", "fr_BE"... can use the french dictionary for example if - // no canadian or belgium dictionary is available - NSArray *elements = [language componentsSeparatedByString: @"_"]; - if ([elements count] >= 1) { - NSString *langPrefix = [elements objectAtIndex: 0]; - for (NSString *lang in _dictionaries.allKeys) { - if ([lang hasPrefix: langPrefix]) { - dict = [_dictionaries objectForKey: lang]; - } - } - } - } - if (dict == nil) { - // Couldnt find any dictionary that seems interesting for the user - // Fallback to the US one - dict = [_dictionaries objectForKey: @"en_US"]; - } - return [[dict retain] autorelease]; -} - -- (NSArray *) checkString: (NSString *) stringToCheck - offset: (NSUInteger) offset - types: (NSTextCheckingTypes) checkingTypes - options: (NSDictionary *) options - orthography: (NSOrthography *) orthography - wordCount: (NSInteger *) wordCount -{ - NSMutableArray *result = [NSMutableArray array]; - - NSString *language = [orthography dominantLanguage]; - NSSpellEngine_hunspellDictionary *dict = - [self _dictionaryForLanguage: language]; - NSUInteger length = [stringToCheck length]; - - NSUInteger bufferCapacity = 10, bufferOffset = offset, bufferIndex = 0, - bufferLength = 0; - unichar buffer[bufferCapacity]; - - NSUInteger wordCapacity = 10, wordLength = 0; - unichar *wordBuffer = - (unichar *) NSZoneMalloc(NULL, sizeof(unichar) * wordCapacity); - - NSCharacterSet *letters = [NSCharacterSet letterCharacterSet]; - - // The letterCharacterSet seems to be missing some marks. Most glaringly the - // apostrophe So we'll create another character set where we can add marks - // that cause spellcheck to fail. There seems to be no easy way to update - // the binary charset representations. - static NSCharacterSet *marks = nil; - if (marks == nil) { - marks = [[NSCharacterSet characterSetWithCharactersInString: @"'"] - retain]; - } - - enum { - STATE_WHITESPACE, - STATE_WORD, - } state = STATE_WHITESPACE; - - for (; bufferOffset + bufferIndex <= length; bufferIndex++) { - BOOL appendToWord = NO; - BOOL checkWord = NO; - unichar code; - - if (bufferOffset + bufferIndex == length) - code = ' '; - else { - if (bufferIndex >= bufferLength) { - bufferOffset += bufferLength; - - bufferIndex = 0; - bufferLength = MIN(bufferCapacity, length - bufferOffset); - - [stringToCheck - getCharacters: buffer - range: NSMakeRange(bufferOffset, bufferLength)]; - } - - code = buffer[bufferIndex]; - } - - switch (state) { - - case STATE_WHITESPACE: - if (!([letters characterIsMember: code] || - [marks characterIsMember: code])) - break; - else { - state = STATE_WORD; - appendToWord = YES; - } - break; - - case STATE_WORD: - if (!([letters characterIsMember: code] || - [marks characterIsMember: code])) { - state = STATE_WHITESPACE; - checkWord = YES; - } else - appendToWord = YES; - break; - } - - if (appendToWord) { - - if (wordLength >= wordCapacity) { - wordCapacity *= 2; - wordBuffer = (unichar *) NSZoneRealloc( - NULL, wordBuffer, sizeof(unichar) * wordCapacity); - } - - wordBuffer[wordLength++] = code; - } - - if (checkWord) { - [result addObjectsFromArray: - [dict textCheckingResultWithRange: - NSMakeRange(bufferOffset + - (bufferIndex - - wordLength), - wordLength) - forCharacters: wordBuffer - length: wordLength]]; - wordLength = 0; - } - } - - return result; -} - -- (NSArray *) suggestGuessesForWord: (NSString *) word - inLanguage: (NSString *) language -{ - NSSpellEngine_hunspellDictionary *dict = - [self _dictionaryForLanguage: language]; - return [dict suggestGuessesForWord: word]; -} - -@end diff --git a/NSSpellEngine_hunspell/NSSpellEngine_hunspell.xcodeproj/project.pbxproj b/NSSpellEngine_hunspell/NSSpellEngine_hunspell.xcodeproj/project.pbxproj deleted file mode 100644 index 4e85b13b..00000000 --- a/NSSpellEngine_hunspell/NSSpellEngine_hunspell.xcodeproj/project.pbxproj +++ /dev/null @@ -1,337 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; }; - FE05C39F140C91D600B85148 /* NSSpellEngine_hunspell.mm in Sources */ = {isa = PBXBuildFile; fileRef = FE05C39E140C91D600B85148 /* NSSpellEngine_hunspell.mm */; }; - FE081A17141070CF00A3DE85 /* NSSpellEngine_hunspellDictionary.mm in Sources */ = {isa = PBXBuildFile; fileRef = FE081A16141070CF00A3DE85 /* NSSpellEngine_hunspellDictionary.mm */; }; - FE1DDDEA17112524003B3AF8 /* windows-i386-bundle.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = FE1DDDE917112524003B3AF8 /* windows-i386-bundle.xcconfig */; }; - FEC24A24140DE31100DDAC92 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 089C1672FE841209C02AAC07 /* Foundation.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8D5B49B6048680CD000E48DA /* NSSpellEngine_hunspell.spellEngine */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NSSpellEngine_hunspell.spellEngine; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FE05C39D140C91D600B85148 /* NSSpellEngine_hunspell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellEngine_hunspell.h; sourceTree = ""; }; - FE05C39E140C91D600B85148 /* NSSpellEngine_hunspell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NSSpellEngine_hunspell.mm; sourceTree = ""; }; - FE06B31A1430E89E0071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B31B1430E89E0071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B31C1430E89E0071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B31D1430E89E0071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B31E1430E89E0071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B31F1430E89E0071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B3201430E89E0071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B3211430E89E0071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B3221430E89E0071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B3231430E89E0071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B3241430E89E0071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B3251430E89E0071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B3261430E89E0071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B3271430E89E0071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B3281430E89E0071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE081A15141070CF00A3DE85 /* NSSpellEngine_hunspellDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSSpellEngine_hunspellDictionary.h; sourceTree = ""; }; - FE081A16141070CF00A3DE85 /* NSSpellEngine_hunspellDictionary.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NSSpellEngine_hunspellDictionary.mm; sourceTree = ""; }; - FE1DDDE917112524003B3AF8 /* windows-i386-bundle.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-bundle.xcconfig"; sourceTree = ""; }; - FEC0A340170934EF002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A341170934EF002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A342170934F0002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A343170934F0002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A344170934F0002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A345170934F0002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A346170934F0002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A347170934F0002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEC0A348170934F0002A60B7 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D5B49B3048680CD000E48DA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEC24A24140DE31100DDAC92 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* NSSpellEngine_hunspell */ = { - isa = PBXGroup; - children = ( - FE06B3191430E89E0071169B /* xcconfig */, - 08FB77AFFE84173DC02AAC07 /* Classes */, - 32C88E010371C26100C91783 /* Other Sources */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* Frameworks and Libraries */, - 19C28FB8FE9D52D311CA2CBB /* Products */, - ); - indentWidth = 4; - name = NSSpellEngine_hunspell; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */, - 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */, - ); - name = "Frameworks and Libraries"; - sourceTree = ""; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8D5B49B7048680CD000E48DA /* Info.plist */, - 089C167DFE841241C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AFFE84173DC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - FE05C39D140C91D600B85148 /* NSSpellEngine_hunspell.h */, - FE05C39E140C91D600B85148 /* NSSpellEngine_hunspell.mm */, - FE081A15141070CF00A3DE85 /* NSSpellEngine_hunspellDictionary.h */, - FE081A16141070CF00A3DE85 /* NSSpellEngine_hunspellDictionary.mm */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 089C1672FE841209C02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FB8FE9D52D311CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D5B49B6048680CD000E48DA /* NSSpellEngine_hunspell.spellEngine */, - ); - name = Products; - sourceTree = ""; - }; - 32C88E010371C26100C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B3191430E89E0071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE1DDDE917112524003B3AF8 /* windows-i386-bundle.xcconfig */, - FEC0A340170934EF002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A341170934EF002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A342170934F0002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A343170934F0002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A344170934F0002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A345170934F0002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A346170934F0002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A347170934F0002A60B7 /* solaris-sparc-framework.xcconfig */, - FEC0A348170934F0002A60B7 /* windows-i386-framework.xcconfig */, - FE06B31A1430E89E0071169B /* darwin-i386.xcconfig */, - FE06B31B1430E89E0071169B /* darwin-ppc.xcconfig */, - FE06B31C1430E89E0071169B /* darwin-x86_64.xcconfig */, - FE06B31D1430E89E0071169B /* darwin.xcconfig */, - FE06B31E1430E89E0071169B /* freebsd-i386.xcconfig */, - FE06B31F1430E89E0071169B /* freebsd.xcconfig */, - FE06B3201430E89E0071169B /* linux-arm.xcconfig */, - FE06B3211430E89E0071169B /* linux-i386.xcconfig */, - FE06B3221430E89E0071169B /* linux-ppc.xcconfig */, - FE06B3231430E89E0071169B /* linux.xcconfig */, - FE06B3241430E89E0071169B /* platform.xcconfig */, - FE06B3251430E89E0071169B /* solaris-sparc.xcconfig */, - FE06B3261430E89E0071169B /* solaris.xcconfig */, - FE06B3271430E89E0071169B /* windows-i386.xcconfig */, - FE06B3281430E89E0071169B /* windows.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D5B49AC048680CD000E48DA /* NSSpellEngine_hunspell */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "NSSpellEngine_hunspell" */; - buildPhases = ( - 8D5B49AF048680CD000E48DA /* Resources */, - 8D5B49B1048680CD000E48DA /* Sources */, - 8D5B49B3048680CD000E48DA /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = NSSpellEngine_hunspell; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = NSSpellEngine_hunspell; - productReference = 8D5B49B6048680CD000E48DA /* NSSpellEngine_hunspell.spellEngine */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "NSSpellEngine_hunspell" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 089C166AFE841209C02AAC07 /* NSSpellEngine_hunspell */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D5B49AC048680CD000E48DA /* NSSpellEngine_hunspell */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D5B49AF048680CD000E48DA /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */, - FE1DDDEA17112524003B3AF8 /* windows-i386-bundle.xcconfig in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D5B49B1048680CD000E48DA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE05C39F140C91D600B85148 /* NSSpellEngine_hunspell.mm in Sources */, - FE081A17141070CF00A3DE85 /* NSSpellEngine_hunspellDictionary.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C167EFE841241C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB913B08733D840010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1DDDE917112524003B3AF8 /* windows-i386-bundle.xcconfig */; - buildSettings = { - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = "$DSTROOT/hunspell-1.3.1/include"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Frameworks/Foundation.framework/Resources; - LIBRARY_SEARCH_PATHS = "$DSTROOT/hunspell-1.3.1/lib"; - OTHER_LDFLAGS = ( - "-dynamic", - "-lhunspell.1.3.1", - "-shared", - "-Wl,--enable-auto-import", - ); - PRODUCT_NAME = NSSpellEngine_hunspell; - WRAPPER_EXTENSION = spellEngine; - }; - name = Debug; - }; - 1DEB913C08733D840010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1DDDE917112524003B3AF8 /* windows-i386-bundle.xcconfig */; - buildSettings = { - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = s; - HEADER_SEARCH_PATHS = "$DSTROOT/hunspell-1.3.1/include"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Frameworks/Foundation.framework/Resources; - LIBRARY_SEARCH_PATHS = "$DSTROOT/hunspell-1.3.1/lib"; - OTHER_LDFLAGS = ( - "-dynamic", - "-lhunspell.1.3.1", - "-shared", - "-Wl,--enable-auto-import", - ); - PRODUCT_NAME = NSSpellEngine_hunspell; - WRAPPER_EXTENSION = spellEngine; - }; - name = Release; - }; - 1DEB913F08733D840010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - 1DEB914008733D840010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "NSSpellEngine_hunspell" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB913B08733D840010E9CD /* Debug */, - 1DEB913C08733D840010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "NSSpellEngine_hunspell" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB913F08733D840010E9CD /* Debug */, - 1DEB914008733D840010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.h b/NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.h deleted file mode 100644 index 8f2061c7..00000000 --- a/NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// NSSpellEngine_hunspellDictionary.h -// NSSpellEngine_hunspell -// -// Created by Christopher Lloyd on 9/1/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. -// - -#import -#import - -@interface NSSpellEngine_hunspellDictionary : NSObject { - NSString *_path; - void *_hunspell; -} - -// Path to .aff file, there must be a .dic file in the same directory - -- initWithContentsOfFile: (NSString *) path; - -- (NSString *) localeIdentifier; -- (NSString *) language; - -- (NSArray *) textCheckingResultWithRange: (NSRange) range - forCharacters: (unichar *) characters - length: (NSUInteger) length; - -- (NSArray *) suggestGuessesForWord: (NSString *) word; - -@end diff --git a/NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.mm b/NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.mm deleted file mode 100644 index d409d7f6..00000000 --- a/NSSpellEngine_hunspell/NSSpellEngine_hunspellDictionary.mm +++ /dev/null @@ -1,134 +0,0 @@ -// -// NSSpellEngine_hunspellDictionary.m -// NSSpellEngine_hunspell -// -// Created by Christopher Lloyd on 9/1/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. -// - -#import "NSSpellEngine_hunspellDictionary.h" -#import -#import -#import -#import - -/* hunspelldll.h is a rough C cover over the C++ library, if more functionality - is needed use the C++ library directly. - */ - -// hunspell includes use 'near' identifier for method name, but windows.h -// #defines near However, windows.h should not be included in public Foundation -// headers, so that needs to be cleaned up. For now we #undef near - -#undef near -#import "hunspelldll.h" - -@implementation NSSpellEngine_hunspellDictionary - -- initWithContentsOfFile: (NSString *) path { - _path = [path copy]; - NSString *affPath = _path; - NSString *dicPath = [[_path stringByDeletingPathExtension] - stringByAppendingPathExtension: @"dic"]; - - _hunspell = - hunspell_initialize((char *) [affPath fileSystemRepresentation], - (char *) [dicPath fileSystemRepresentation]); - return self; -} - -- (NSString *) localeIdentifier { - return [[_path lastPathComponent] stringByDeletingPathExtension]; -} - -- (NSString *) language { - return [self localeIdentifier]; -} - -- (char *) createHunspellStringForString: (NSString *) string { - if (string == nil) { - return NULL; - } - NSStringEncoding stringEncoding = (NSStringEncoding) 0; - char *encoding = hunspell_get_dic_encoding((Hunspell *) _hunspell); - - if (strcmp(encoding, "ISO8859-1") == 0 || - strcmp(encoding, "ISO8859-15") == 0) { - stringEncoding = NSISOLatin1StringEncoding; - } else if (encoding == NULL || strcmp(encoding, "UTF-8") == 0) { - stringEncoding = NSUTF8StringEncoding; - } - - if (stringEncoding == 0) { - NSLog(@"Unhandled hunspell dictionary encoding %s", encoding); - return NULL; - } - char *result = NULL; - const char *cstr = [string cStringUsingEncoding: stringEncoding]; - if (cstr) { - result = strdup(cstr); - } - return result; -} - -- (char *) createHunspellStringForCharacters: (unichar *) characters - length: (NSUInteger) length -{ - NSString *string = [NSString stringWithCharacters: characters - length: length]; - return [self createHunspellStringForString: string]; -} - -- (NSArray *) textCheckingResultWithRange: (NSRange) range - forCharacters: (unichar *) characters - length: (NSUInteger) length -{ - char *string = [self createHunspellStringForCharacters: characters - length: length]; - - if (string == NULL) { - /* Word contains a character outside of IS8859-1, I guess this is a - * spelling error. */ - NSTextCheckingResult *result = - [NSTextCheckingResult spellCheckingResultWithRange: range]; - - return [NSArray arrayWithObject: result]; - } else { - if (hunspell_spell((Hunspell *) _hunspell, string) == 0) { - NSTextCheckingResult *result = - [NSTextCheckingResult spellCheckingResultWithRange: range]; - - return [NSArray arrayWithObject: result]; - } - } - - return nil; -} - -- (NSArray *) suggestGuessesForWord: (NSString *) word { - NSMutableArray *result = [NSMutableArray array]; - - char **slst; - char *string = [self createHunspellStringForString: word]; - - if (string == NULL) - return nil; - - int i, len = hunspell_suggest((Hunspell *) _hunspell, string, &slst); - - free(string); - - for (i = 0; i < len && slst != NULL; i++) { - NSString *guess = [[[NSString alloc] - initWithBytes: slst[i] - length: strlen(slst[i]) - encoding: NSUTF8StringEncoding] autorelease]; - [result addObject: guess]; - } - - hunspell_suggest_free((Hunspell *) _hunspell, slst, len); - - return result; -} - -@end diff --git a/O2Context_AntiGrain/English.lproj/InfoPlist.strings b/O2Context_AntiGrain/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/O2Context_AntiGrain/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/O2Context_AntiGrain/Info.plist b/O2Context_AntiGrain/Info.plist deleted file mode 100644 index 574a97a4..00000000 --- a/O2Context_AntiGrain/Info.plist +++ /dev/null @@ -1,46 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.cocotron.O2ContentAntiGrain - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - CFPlugInDynamicRegisterFunction - - CFPlugInDynamicRegistration - NO - CFPlugInFactories - - 00000000-0000-0000-0000-000000000000 - MyFactoryFunction - - CFPlugInTypes - - 00000000-0000-0000-0000-000000000000 - - 00000000-0000-0000-0000-000000000000 - - - CFPlugInUnloadFunction - - NSPrincipalClass - O2Context_AntiGrain - - diff --git a/O2Context_AntiGrain/O2Context_AntiGrain.h b/O2Context_AntiGrain/O2Context_AntiGrain.h deleted file mode 100644 index f005434c..00000000 --- a/O2Context_AntiGrain/O2Context_AntiGrain.h +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright (c) 2011 Plasq LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -/* - To use this plug-in you must have the AntiGrain headers and static library - installed, this is done using the install_AntiGrain script in the InstallCDT - download. - */ - -#import "O2Defines_AntiGrain.h" -#import - -#ifdef ANTIGRAIN_PRESENT -#include "o2agg_pixfmt_rgba.h" -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef WINDOWS -#include "agg_font_win32_tt.h" - -typedef agg::font_engine_win32_tt_int32 font_engine_type; -typedef agg::font_cache_manager font_manager_type; -#define O2AGG_GLYPH_SUPPORT 1 -#endif - -@class O2Context_AntiGrain; - -class context_renderer; -@class KFont; - -typedef agg::pixfmt_gray8_pre pixfmt_alphaMaskType; -typedef agg::renderer_base BaseRendererWithAlphaMaskType; -typedef agg::rasterizer_scanline_aa<> - RasterizerType; // We use an anti-aliased scanline rasterizer for AGG - // rendering. -typedef agg::amask_no_clip_gray8 MaskType; - -@interface O2Context_AntiGrain : O2Context_builtin_gdi { - @public - agg::rendering_buffer *renderingBuffer; - - agg::path_storage *path; - RasterizerType *rasterizer; - - context_renderer *renderer; - - agg::scanline_u8 *scanline_u8; // used for mixed opaque/transparent - // rendering (stroking,text...) - agg::scanline_p8 *scanline_p8; // used for mostly opaque rendering (filling, - // images...) - - // Rendering buffer to use for alpha masking (bezier path clipping) - agg::rendering_buffer *rBufAlphaMask[2]; - MaskType *alphaMask[2]; - pixfmt_alphaMaskType *pixelFormatAlphaMask[2]; - BaseRendererWithAlphaMaskType *baseRendererAlphaMask[2]; - agg::renderer_scanline_aa_solid - *solidScanlineRendererAlphaMask[2]; - int currentMask; - - NSArray *savedClipPhases; - BOOL maskValid; - BOOL useMask; -} - -- (BOOL) useMask; -- (MaskType *) currentMask; -- (RasterizerType *) rasterizer; -- (context_renderer *) renderer; -- (BOOL) isPremultiplied; -@end -#else -#import - -@interface O2Context_AntiGrain : O2Context_builtin_gdi -@end - -#endif diff --git a/O2Context_AntiGrain/O2Context_AntiGrain.mm b/O2Context_AntiGrain/O2Context_AntiGrain.mm deleted file mode 100644 index 19066b58..00000000 --- a/O2Context_AntiGrain/O2Context_AntiGrain.mm +++ /dev/null @@ -1,2417 +0,0 @@ -#import "O2Context_AntiGrain.h" -#import -#import -#import -#import -#import - -#ifdef ANTIGRAIN_PRESENT - -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "partial_stack_blur.h" -#include -#ifdef WINDOWS -#include - -static inline void getcpuid(int info_type, int info[4]) { - asm volatile("pushl %%ebx \n\t" - "cpuid \n\t" - "movl %%ebx, %1 \n\t" - "popl %%ebx \n\t" - : "=a"(info[0]), "=r"(info[1]), "=c"(info[2]), "=d"(info[3]) - : "a"(info_type)); -} - -static inline bool cpuHasSSE2() { - int cpu_info[4] = {0}; - getcpuid(1, cpu_info); - return (cpu_info[3] & (1 << 26)) != 0; -} -#else -static inline bool cpuHasSSE2 { - return false; -} -#endif - -#include - -#include "o2agg_span_image_filter_rgba.h" - -typedef enum { - kImageInterpolationNone, - kImageInterpolationBilinear, - kImageInterpolationBicubic, - kImageInterpolationLanczos, - kImageInterpolationRepeat, -} ImageInterpolationType; - -//#define DEBUG - -static const int kKFontCacheSize = 100; - -static inline float fract(float f) { - return f - truncf(f); -} - -#ifdef O2AGG_GLYPH_SUPPORT -// They are shared by all the contexts -static font_engine_type *font_engine = 0; -static font_manager_type *font_manager = 0; -#endif - -// Like NSLog, but works in C++ code - format is a C strings (""), not a Obj-C -// string (@"") -#ifdef DEBUG -static void O2Log(const char *format, ...) { - va_list ap; - va_start(ap, - format); // Requires the last fixed parameter (to get the address) - NSString *f = [NSString stringWithUTF8String: format]; - NSLogv(f, ap); - va_end(ap); -} -#else -static void O2Log(const char *format, ...) { -} -#endif - -// Multiply the alpha spans with a ratio - used as a transformer to render alpha -// for non-plain color -typedef agg::scanline_u8_am scanline_mask_type; - -// render_scanlines_aa_solid with some added translation parameter - we've just -// added the "+dx, +dy" part -template -void render_scanlines_aa_solid_translate(Rasterizer &ras, Scanline &sl, - BaseRenderer &ren, const ColorT &color, - int dx, int dy) -{ - if (ras.rewind_scanlines()) { - // Explicitly convert "color" to the BaseRenderer color type. - // For example, it can be called with color type "rgba", while - // "rgba8" is needed. Otherwise it will be implicitly - // converted in the loop many times. - //---------------------- - typename BaseRenderer::color_type ren_color(color); - - sl.reset(ras.min_x(), ras.max_x()); - while (ras.sweep_scanline(sl)) { - // render_scanline_aa_solid(sl, ren, ren_color); - // - // This code is equivalent to the above call (copy/paste). - // It's just a "manual" optimization for old compilers, - // like Microsoft Visual C++ v6.0 - //------------------------------- - int y = sl.y(); - unsigned num_spans = sl.num_spans(); - typename Scanline::const_iterator span = sl.begin(); - - for (;;) { - int x = span->x; - if (span->len > 0) { - ren.blend_solid_hspan(x + dx, y + dy, (unsigned) span->len, - ren_color, span->covers); - } else { - ren.blend_hline(x + dx, y + dy, - (unsigned) (x - span->len - 1), ren_color, - *(span->covers)); - } - if (--num_spans == 0) - break; - ++span; - } - } - } -} - -// render_scanlines_aa with some added translation parameter - we've just added -// the "+dx, +dy" part -template -void render_scanline_aa_translate(const Scanline &sl, BaseRenderer &ren, - SpanAllocator &alloc, SpanGenerator &span_gen, - int dx, int dy) -{ - int y = sl.y(); - - unsigned num_spans = sl.num_spans(); - typename Scanline::const_iterator span = sl.begin(); - for (;;) { - int x = span->x; - int len = span->len; - const typename Scanline::cover_type *covers = span->covers; - - if (len < 0) - len = -len; - typename BaseRenderer::color_type *colors = alloc.allocate(len); - span_gen.generate(colors, x, y, len); - ren.blend_color_hspan(x + dx, y + dy, len, colors, - (span->len < 0) ? 0 : covers, *covers); - - if (--num_spans == 0) - break; - ++span; - } -} - -// render_scanlines_aa with some added translation parameter -template -void render_scanlines_aa_translate(Rasterizer &ras, Scanline &sl, - BaseRenderer &ren, SpanAllocator &alloc, - SpanGenerator &span_gen, int dx, int dy) -{ - if (ras.rewind_scanlines()) { - sl.reset(ras.min_x(), ras.max_x()); - span_gen.prepare(); - while (ras.sweep_scanline(sl)) { - render_scanline_aa_translate(sl, ren, alloc, span_gen, dx, dy); - } - } -} - -// Apply some alpha value to its input spans -template struct span_alpha_converter { - span_alpha_converter(float alpha, bool premultiply) - : m_alpha(alpha), m_premultiply(premultiply){}; - - void prepare() { - } - - inline void generate(color_type *span, int x, int y, unsigned len) { - if (m_alpha < 1.) { - if (m_premultiply) { - do { - span->demultiply(); - span->opacity(span->opacity() * m_alpha); - span->premultiply(); - ++span; - } while (--len); - } else { - do { - span->opacity(span->opacity() * m_alpha); - ++span; - } while (--len); - } - } - } - - private: - bool m_premultiply; - double m_alpha; -}; - -// Replace spans with a fixed color, keeping the original opacity - used as a -// transformer to render shadow with no blur, for non-plain color -class span_color_converter { - public: - span_color_converter(o2agg::rgba8 &color, bool premultiply) - : m_color(color), m_premultiply(premultiply){}; - - void prepare() { - } - - inline void generate(o2agg::rgba8 *span, int x, int y, unsigned len) { - if (m_premultiply) { - do { - // Replace the span color, with m_color * span opacity - if (span->opacity() > 0) { - o2agg::rgba8 color = m_color; - color.opacity(color.opacity() * span->opacity()); - color.premultiply(); - *span = color; - } - ++span; - } while (--len); - } else { - do { - // Replace the span color, with m_color * span opacity - if (span->opacity() > 0) { - o2agg::rgba8 color = m_color; - color.opacity(color.opacity() * span->opacity()); - *span = color; - } - ++span; - } while (--len); - } - } - - private: - bool m_premultiply; - o2agg::rgba8 m_color; -}; - -class context_renderer { - class context_renderer_helper_base { - protected: - bool premultiply; - - public: - virtual ~context_renderer_helper_base(){}; - void setPremultiply(bool pre) { - premultiply = pre; - }; - virtual bool isRGBA() { - return false; - } - virtual bool isBGRA() { - return false; - } - virtual bool isARGB() { - return false; - } - virtual bool isABGR() { - return false; - } - virtual void setBlendMode(int blendMode) = 0; - virtual void setAlpha(float alpha) = 0; - virtual void setShadowColor(o2agg::rgba color) = 0; - virtual void setShadowBlurRadius(float radius) = 0; - virtual void setShadowOffset(O2Size offset) = 0; - virtual void clipBox(int a, int b, int c, int d) = 0; - }; - - template - class context_renderer_helper : public context_renderer_helper_base { - typedef o2agg::pixfmt_custom_blend_rgba - pixfmt_type; - - typedef o2agg::pixfmt_bgra32_pre pixfmt_shadow_type; - - typedef agg::renderer_base renderer_base; - typedef agg::renderer_base renderer_shadow; - - renderer_base *ren_base; - pixfmt_type *pixelFormat; - - // Rendering buffer to use for shadow rendering - uint8_t *pixelShadowBytes; - agg::rendering_buffer *renderingBufferShadow; - - renderer_shadow *ren_shadow; - pixfmt_shadow_type *pixelFormatShadow; - - float alpha; - - o2agg::rgba shadowColor; - O2Size shadowOffset; - float shadowBlurRadius; - - public: - context_renderer *renderer; - context_renderer_helper(agg::rendering_buffer &renderingBuffer) { - pixelFormat = new pixfmt_type(renderingBuffer); - ren_base = new renderer_base(*pixelFormat); - - pixelShadowBytes = NULL; - renderingBufferShadow = NULL; - ren_shadow = NULL; - pixelFormatShadow = NULL; - - shadowColor = o2agg::rgba(0, 0, 0, 0); - - alpha = 1.; - } - - virtual ~context_renderer_helper() { - delete pixelFormat; - delete ren_base; - - if (ren_shadow) { - delete ren_shadow; - delete pixelFormatShadow; - delete renderingBufferShadow; - delete[] pixelShadowBytes; - } - } - - void setBlendMode(int blendMode) { - pixelFormat->comp_op(blendMode); - } - - void setAlpha(float a) { - alpha = a; - } - - void setShadowColor(o2agg::rgba color) { - shadowColor = color; - } - - void setShadowBlurRadius(float radius) { - shadowBlurRadius = radius; - } - - void setShadowOffset(O2Size offset) { - shadowOffset = offset; - } - - void setUpShadow() { - if (ren_shadow == NULL) { - // Use rgba32 - int height = ren_base->ren().height(); - int width = ren_base->ren().width(); - int bytesPerRow = ren_base->ren().stride(); - pixelShadowBytes = new uint8_t[height * bytesPerRow]; - renderingBufferShadow = new agg::rendering_buffer( - pixelShadowBytes, width, height, bytesPerRow); - - pixelFormatShadow = - new pixfmt_shadow_type(*renderingBufferShadow); - ren_shadow = new renderer_shadow(*pixelFormatShadow); - } - ren_shadow->reset_clipping(1); - ren_shadow->clip_box(ren_base->xmin(), ren_base->ymin(), - ren_base->xmax(), ren_base->ymax()); - } - - void clipBox(int a, int b, int c, int d) { - ren_base->reset_clipping(1); - ren_base->clip_box(a, b, c, d); - } - - // Blur the (x1,y1,x2,y2) part of the shadow buffer, and copy it to the - // main buffer - template - void blur(S &sl, float x1, float x2, float y1, float y2) - { - float xmin = ren_base->xmin(); - float ymin = ren_base->ymin(); - float xmax = ren_base->xmax(); - float ymax = ren_base->ymax(); - if (xmax <= xmin || ymax <= ymin) { - O2Log("Nothing to do - skip shadow blur"); - return; - } - - // Clip the rect to render - no need to try to blur any clipped area - xmin = max(xmin, x1); - xmax = min(xmax, x2); - ymin = max(ymin, y1); - ymax = min(ymax, y2); - - xmin = floorf(xmin); - ymin = floorf(ymin); - xmax = ceilf(xmax); - ymax = ceilf(ymax); - - // Blur the shadows - int radius = agg::iround(shadowBlurRadius); - if (radius > 0) { - // Add the blur radius to the area to blur - xmin -= radius; - xmax += radius; - ymin -= radius; - ymax += radius; - - xmin = max(xmin, 0); - ymin = max(ymin, 0); - O2Log("Shadow: blur shadow - area : ((%.0f,%.0f),(%.0f,%.0f))", - xmin, ymin, xmax - xmin, ymax - ymin); - // Stack blur - not really a gaussian one but much faster and - // good enough Blur only the current clipped area - no need to - // process pixels we won't see - if (xmax > xmin && ymax > ymin) { - float r = shadowColor.r; - float g = shadowColor.g; - float b = shadowColor.b; - // This is bluring the alpha channel and fill pixels with - // (r,g,b) premultiplied by the blured alpha * the passed - // alpha parameter - partial_stack_blur_rgba32(*pixelFormatShadow, radius, xmin, - xmax, ymin, ymax, r, g, b, - shadowColor.a * alpha); - } else { - O2Log("Skip blurring"); - } - O2Log("Shadow: done blur"); - } - - // Add the offset to the area to copy - the translated drawing only - // take the rounded translation into account So add the fractionary - // part - Ras r; - xmin += fract(shadowOffset.width); - xmax += fract(shadowOffset.width); - ymin -= fract(shadowOffset.height); - ymax -= fract(shadowOffset.height); - xmin = max(xmin, 0); - ymin = max(ymin, 0); - - xmin = floorf(xmin); - ymin = floorf(ymin); - xmax = ceilf(xmax); - ymax = ceilf(ymax); - - if (xmax <= xmin || ymax <= ymin) { - O2Log("Nothing to do - skip shadow drawing"); - return; - } - - r.clip_box(ren_base->xmin(), ren_base->ymin(), ren_base->xmax(), - ren_base->ymax()); - - // Rasterize the shadow to our main renderer - agg::path_storage aggPath; - - O2Log("Shadow: copying to area : ((%.0f,%.0f),(%.0f,%.0f))", xmin, - ymin, xmax - xmin, ymax - ymin); - // We'll use a path that cover the current used rect, and render - // that path using the shadow image - aggPath.move_to(xmin, ymin); - aggPath.line_to(xmax, ymin); - aggPath.line_to(xmax, ymax); - aggPath.line_to(xmin, ymax); - aggPath.end_poly(); - - agg::conv_curve curve(aggPath); - r.add_path(curve); - - agg::span_allocator sa; - typedef agg::image_accessor_clone - img_accessor_type; - typedef agg::span_interpolator_linear - interpolator_type; - - img_accessor_type ia(*pixelFormatShadow); - agg::trans_affine transform; - transform.translate( - -fract(shadowOffset.width), - fract(shadowOffset.height)); // Translate using the fract - // part of the shadow offset - interpolator_type interpolator(transform); - typedef agg::span_image_filter_rgba_nn - span_gen_type; - span_gen_type sg(ia, interpolator); - - unsigned oldBlendMode = pixelFormat->comp_op(); - pixelFormat->comp_op( - o2agg::comp_op_src_over); // Always use src_over when - // copying the shadow - agg::render_scanlines_aa(r, sl, *ren_base, sa, sg); - pixelFormat->comp_op(oldBlendMode); - } - - template - void render_scanlines(Ras &rasterizer, S &sl, T &type) - { - agg::render_scanlines(rasterizer, sl, type); - } - - // Used to render images & shadings - template - void render_scanlines_aa(Ras &rasterizer, S &sl, SA &span_allocator, - T &type) - { - O2Log("%p:Drawing Image", this); - if (shadowColor.a > 0.) { - setUpShadow(); - - O2Log("%p:Drawing shadow Image", this); - // Clear the shadow buffer - int x = ren_base->xmin(); - int y = ren_base->ymin(); - int xmax = ren_base->xmax(); - int ymax = ren_base->ymax(); - - ren_shadow->reset_clipping(true); - ren_shadow->copy_bar(x - shadowBlurRadius, y - shadowBlurRadius, - xmax + shadowBlurRadius, - ymax + shadowBlurRadius, - o2agg::rgba::no_color()); - ren_shadow->clip_box(ren_base->xmin(), ren_base->ymin(), - ren_base->xmax(), ren_base->ymax()); - - // Draw to our shadow buffer - if (shadowBlurRadius == 0) { - // All colors are being transformed to the shadow one since - // we can skip the blur pass which is also applying the - // color - o2agg::rgba8 color = - o2agg::rgba(shadowColor.r, shadowColor.g, - shadowColor.b, shadowColor.a * alpha); - span_color_converter color_converter(color, premultiply); - agg::span_converter converter( - type, color_converter); - - // Render to the shadow location (rounded - we are working - // with pixels here) so we're sure we can properly blur the - // shadow We'll take into account the fractional part when - // copying the shadow to the final buffer - render_scanlines_aa_translate(rasterizer, sl, *ren_shadow, - span_allocator, converter, - truncf(shadowOffset.width), - -truncf(shadowOffset.height)); - } else { - // The bluring will actually apply the right shadow color - - // no need to do any transform here - render_scanlines_aa_translate(rasterizer, sl, *ren_shadow, - span_allocator, type, - truncf(shadowOffset.width), - -truncf(shadowOffset.height)); - } - - // Blur the shadow buffer and copy it back - - // Get the used part of the rasterizer - we don't need to blur a - // bigger area than that - float x1 = rasterizer.min_x(); - float x2 = rasterizer.max_x(); - float y1 = rasterizer.min_y(); - float y2 = rasterizer.max_y(); - // Add the translation done during the rendering - x1 += truncf(shadowOffset.width); - x2 += truncf(shadowOffset.width); - y1 -= truncf(shadowOffset.height); - y2 -= truncf(shadowOffset.height); - - // Blur the shadow buffer - blur(sl, x1, x2, y1, y2); - - O2Log("%p:Done Drawing shadow Image", this); - } - - // And finally do the "normal" drawing - if (alpha >= 1) { - // No need for an alpha converter - agg::render_scanlines_aa(rasterizer, sl, *ren_base, - span_allocator, type); - } else { - span_alpha_converter alpha_converter(alpha, - premultiply); - agg::span_converter> - converter(type, alpha_converter); - agg::render_scanlines_aa(rasterizer, sl, *ren_base, - span_allocator, converter); - } - O2Log("%p:Done Drawing Image", this); - } - - // Used to render path - template - void render_scanlines_aa_solid(Ras &rasterizer, S &sl, T &type) - { - if (shadowColor.a > 0.) { - setUpShadow(); - - int x = ren_base->xmin(); - int y = ren_base->ymin(); - int xmax = ren_base->xmax(); - int ymax = ren_base->ymax(); - - ren_shadow->reset_clipping(true); - ren_shadow->copy_bar(x - shadowBlurRadius, y - shadowBlurRadius, - xmax + shadowBlurRadius, - ymax + shadowBlurRadius, - o2agg::rgba::no_color()); - ren_shadow->clip_box(ren_base->xmin(), ren_base->ymin(), - ren_base->xmax(), ren_base->ymax()); - - // TODO : render to our scratch mask buffer, then blur should - // just draw a shadow colored (* alpha) rect using that mask - /////////////////// - - // Draw using our shadow rendererer using our shadow color (and - // global alpha) - T color = - o2agg::rgba(shadowColor.r, shadowColor.g, shadowColor.b, - shadowColor.a * type.opacity()); - color.premultiply(); - - // Render to the shadow location (rounded - we are working with - // pixels here) so we're sure we can properly blur the shadow - // We'll take into account the fractional part when copying the - // shadow to the final buffer - render_scanlines_aa_solid_translate( - rasterizer, sl, *ren_shadow, color, - truncf(shadowOffset.width), - -truncf(shadowOffset.height)); - - // Get the used part of the rasterizer - we don't need to blur a - // bigger area than that - float x1 = rasterizer.min_x(); - float x2 = rasterizer.max_x(); - float y1 = rasterizer.min_y(); - float y2 = rasterizer.max_y(); - // Add the translation done during the rendering - x1 += truncf(shadowOffset.width); - x2 += truncf(shadowOffset.width); - y1 -= truncf(shadowOffset.height); - y2 -= truncf(shadowOffset.height); - - // Blur the shadow buffer - blur(sl, x1, x2, y1, y2); - } - // And finally do the "normal" drawing - T color = type; - color.opacity(color.opacity() * alpha); - if (premultiply) - color.premultiply(); - if (color.opacity() >= 1. && - pixelFormat->comp_op() == o2agg::comp_op_src_over) { - // We'll use copy instead of source over when rendering a opaque - // path - pixelFormat->comp_op(o2agg::comp_op_src); - } - agg::render_scanlines_aa_solid(rasterizer, sl, *ren_base, color); - } - - bool isRGBA() { - return NO; - }; - bool isBGRA() { - return NO; - }; - bool isARGB() { - return NO; - }; - bool isABGR() { - return NO; - }; - }; - - context_renderer_helper_base *helper; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba> - rgba_helper; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba> - bgra_helper; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba> - argb_helper; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba> - abgr_helper; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba_pre> - rgba_helper_pre; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba_pre> - bgra_helper_pre; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba_pre> - argb_helper_pre; - typedef class context_renderer_helper< - o2agg::comp_op_adaptor_rgba_pre> - abgr_helper_pre; - - public: - bool premultiplied; - O2Context_AntiGrain *context; - virtual ~context_renderer() { - delete helper; - } - template void init(agg::rendering_buffer &renderingBuffer) { - typedef o2agg::comp_op_adaptor_rgba blender_type; - premultiplied = false; - helper = new context_renderer_helper(renderingBuffer); - helper->setPremultiply(premultiplied); - } - template - void init_pre(agg::rendering_buffer &renderingBuffer) { - typedef o2agg::comp_op_adaptor_rgba_pre - blender_type; - premultiplied = true; - helper = new context_renderer_helper(renderingBuffer); - helper->setPremultiply(premultiplied); - } - - // Not sure how to better write that since we can't have virtual template - // methods and we don't know some type at compile time (like pixel format) - // But there must be some better way... - template - void render_scanlines(Ras &rasterizer, S &sl, T &type) - { - if (premultiplied) { - if (helper->isRGBA()) { - ((rgba_helper_pre *) helper) - ->render_scanlines(rasterizer, sl, type); - } else if (helper->isABGR()) { - ((abgr_helper_pre *) helper) - ->render_scanlines(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper_pre *) helper) - ->render_scanlines(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper_pre *) helper) - ->render_scanlines(rasterizer, sl, type); - } - } else { - if (helper->isRGBA()) { - ((rgba_helper *) helper) - ->render_scanlines(rasterizer, sl, type); - } else if (helper->isABGR()) { - ((abgr_helper *) helper) - ->render_scanlines(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper *) helper) - ->render_scanlines(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper *) helper) - ->render_scanlines(rasterizer, sl, type); - } - } - } - template - void render_scanlines_aa(Ras &rasterizer, S &sl, SA &span_allocator, - T &type) - { - if (premultiplied) { - if (helper->isRGBA()) { - ((rgba_helper_pre *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } else if (helper->isABGR()) { - ((abgr_helper_pre *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } else if (helper->isBGRA()) { - ((bgra_helper_pre *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } else if (helper->isBGRA()) { - ((bgra_helper_pre *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } - } else { - if (helper->isRGBA()) { - ((rgba_helper *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } else if (helper->isABGR()) { - ((abgr_helper *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } else if (helper->isBGRA()) { - ((bgra_helper *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } else if (helper->isBGRA()) { - ((bgra_helper *) helper) - ->render_scanlines_aa(rasterizer, sl, span_allocator, - type); - } - } - } - template - void render_scanlines_aa_solid(Ras &rasterizer, S &sl, T &type) - { - if (premultiplied) { - if (helper->isRGBA()) { - ((rgba_helper_pre *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } else if (helper->isABGR()) { - ((abgr_helper_pre *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper_pre *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper_pre *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } - } else { - if (helper->isRGBA()) { - ((rgba_helper *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } else if (helper->isABGR()) { - ((abgr_helper *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } else if (helper->isBGRA()) { - ((bgra_helper *) helper) - ->render_scanlines_aa_solid(rasterizer, sl, type); - } - } - } - - void setBlendMode(int blendMode) { - helper->setBlendMode(blendMode); - } - - void setShadowColor(o2agg::rgba color) { - helper->setShadowColor(color); - } - - void setShadowOffset(O2Size shadowOffset) { - helper->setShadowOffset(shadowOffset); - } - - void setShadowBlurRadius(float radius) { - helper->setShadowBlurRadius(radius); - } - - void setAlpha(float alpha) { - helper->setAlpha(alpha); - } - - void clipBox(int a, int b, int c, int d) { - helper->clipBox(a, b, c, d); - } -}; - -// Make the right type test to return true when needed -template <> bool context_renderer::rgba_helper::isRGBA() { - return true; -}; -template <> bool context_renderer::bgra_helper::isBGRA() { - return true; -}; -template <> bool context_renderer::argb_helper::isARGB() { - return true; -}; -template <> bool context_renderer::abgr_helper::isABGR() { - return true; -}; -template <> bool context_renderer::rgba_helper_pre::isRGBA() { - return true; -}; -template <> bool context_renderer::bgra_helper_pre::isBGRA() { - return true; -}; -template <> bool context_renderer::argb_helper_pre::isARGB() { - return true; -}; -template <> bool context_renderer::abgr_helper_pre::isABGR() { - return true; -}; - -class gradient_evaluator { - public: - gradient_evaluator(O2FunctionRef function, bool premultiply = true, - unsigned size = 4096) - : m_size(size) - { - // Precalculate our colors - m_colors_lut = new o2agg::rgba[size]; - float invSize = 1. / size; - for (int i = 0; i < size; ++i) { - O2Float result[4] = {1}; - O2FunctionEvaluate(function, i * invSize, result); - o2agg::rgba color; - color.r = result[0]; - color.g = result[1]; - color.b = result[2]; - color.a = result[3]; - if (premultiply) - color.premultiply(); - m_colors_lut[i] = color; - } - } - ~gradient_evaluator() { - delete[] m_colors_lut; - }; - inline int size() const { - return m_size; - } - inline o2agg::rgba operator[](unsigned v) const { - return m_colors_lut[v]; - } - - private: - o2agg::rgba *m_colors_lut; - int m_size; -}; - -template -void render_scanlines_aa(O2Context_AntiGrain *self, SpanAllocator &sa, - SpanGen &sg) -{ - if (self->useMask) { - scanline_mask_type sl(*[self currentMask]); - self->renderer->render_scanlines_aa(*self->rasterizer, sl, sa, sg); - } else { - self->renderer->render_scanlines_aa(*self->rasterizer, - *self->scanline_p8, sa, sg); - } -} - -template -void render_scanlines_aa_solid(O2Context_AntiGrain *self, Type &type, - BOOL packed = NO) -{ - if (self->useMask) { - scanline_mask_type sl(*[self currentMask]); - self->renderer->render_scanlines_aa_solid(*self->rasterizer, sl, type); - } else { - if (packed) { - self->renderer->render_scanlines_aa_solid(*self->rasterizer, - *self->scanline_p8, type); - } else { - self->renderer->render_scanlines_aa_solid(*self->rasterizer, - *self->scanline_u8, type); - } - } -} - -template -void O2AGGContextDrawShading(O2Context_AntiGrain *self, O2Shading *shading, - float x, float y, float width, float height) -{ - typedef o2agg::pixfmt_bgra32_pre - pixfmt_type; // That should be the same pixel type as the context ? - typedef pixfmt_type::color_type color_type; - typedef gradient_evaluator color_func_type; - typedef agg::span_interpolator_linear<> interpolator_type; - typedef agg::span_allocator span_allocator_type; - typedef agg::span_gradient - span_gradient_type; - - O2GState *gState = O2ContextCurrentGState(self); - O2ClipState *clipState = O2GStateClipState(gState); - O2AffineTransform deviceTransform = gState->_deviceSpaceTransform; - agg::trans_affine deviceMatrix(deviceTransform.a, deviceTransform.b, - deviceTransform.c, deviceTransform.d, - deviceTransform.tx, deviceTransform.ty); - - O2Point deviceStart = - O2PointApplyAffineTransform([shading startPoint], deviceTransform); - O2Point deviceEnd = - O2PointApplyAffineTransform([shading endPoint], deviceTransform); - - double x1 = deviceStart.x; - double y1 = deviceStart.y; - double x2 = deviceEnd.x; - double y2 = deviceEnd.y; - - float startValue = 0; - float endValue = 0; - - if ([shading isAxial]) { - startValue = 0; - endValue = agg::calc_distance(x1, y1, x2, y2); - } else { - double scale = sqrt((deviceTransform.a * deviceTransform.a) + - (deviceTransform.c * deviceTransform.c)); - startValue = scale * [shading startRadius]; - endValue = scale * [shading endRadius]; - } - int gradientSize = ceilf(endValue - startValue); - if (gradientSize < 1) { - gradientSize = 1; - } - - color_func_type color_func([shading function], [self isPremultiplied], - gradientSize); - - agg::trans_affine gradient_mtx; - gradient_mtx.reset(); - double angle = atan2(y2 - y1, x2 - x1); - gradient_mtx *= agg::trans_affine_rotation(angle); - gradient_mtx *= agg::trans_affine_translation(x1, y1); - gradient_mtx.invert(); - - interpolator_type span_interpolator(gradient_mtx); - span_allocator_type span_allocator; - gradient_func_type gradient_func; - span_gradient_type span_gradient(span_interpolator, gradient_func, - color_func, startValue, endValue); - - // The rasterizing/scanline stuff - //---------------- - agg::path_storage aggPath; - - // We'll use a path that cover the current clipped rect - aggPath.move_to(x, y); - aggPath.line_to(x + width, y); - aggPath.line_to(x + width, y + height); - aggPath.line_to(x, y + height); - aggPath.end_poly(); - - agg::conv_curve curve(aggPath); - curve.approximation_scale(deviceMatrix.scale()); - - self->rasterizer->add_path(curve); - - render_scanlines_aa(self, span_allocator, span_gradient); -} - -template -void O2AGGContextDrawImage(O2Context_AntiGrain *self, - agg::rendering_buffer &imageBuffer, - const agg::trans_affine &transform, - ImageInterpolationType interpolationType) -{ - BOOL resample = NO; - if (interpolationType != kImageInterpolationNone) { - // Enable resampling if we have some big downscaling - double x, y; - transform.scaling_abs(&x, &y); - resample = x > 1.125 || y > 1.125; - } - - agg::span_allocator sa; - pixfmt img_pixf(imageBuffer); - typedef agg::image_accessor_clone img_accessor_type; - img_accessor_type ia(img_pixf); - - typedef agg::span_interpolator_linear interpolator_type; - interpolator_type interpolator(transform); - - if (resample == NO) { - // Use a filter according to the wanted interpolation quality - no - // resampling needed - switch (interpolationType) { - case kImageInterpolationNone: { - typedef agg::span_image_filter_rgba_nn - span_gen_type; - span_gen_type sg(ia, interpolator); - - render_scanlines_aa(self, sa, sg); - } break; - default: - case kImageInterpolationBilinear: { - typedef agg::span_image_filter_rgba_bilinear - span_gen_type; - span_gen_type sg(ia, interpolator); - - render_scanlines_aa(self, sa, sg); - } break; - case kImageInterpolationBicubic: { - agg::image_filter_bicubic filter_kernel; - agg::image_filter_lut filter(filter_kernel, true); - - typedef agg::span_image_filter_rgba - span_gen_type; - span_gen_type sg(ia, interpolator, filter); - - render_scanlines_aa(self, sa, sg); - } break; -#if 0 - //unused - case kImageInterpolationLanczos: { - agg::image_filter_lanczos filter_kernel(2.f); - agg::image_filter_lut filter(filter_kernel, true); - - typedef agg::span_image_filter_rgba span_gen_type; - span_gen_type sg(ia, interpolator, filter); - - render_scanlines_aa(self, sa, sg); - } - break; -#endif - case kImageInterpolationRepeat: { - typedef agg::image_accessor_wrap - img_accessor_type; - img_accessor_type ia(img_pixf); - - typedef agg::span_image_filter_rgba_bilinear - span_gen_type; - span_gen_type sg(ia, interpolator); - - render_scanlines_aa(self, sa, sg); - } break; - } - } else { - // Use a filter according to the wanted interpolation quality - use - // resampling - switch (interpolationType) { - default: - case kImageInterpolationBilinear: { - agg::image_filter_bilinear filter_kernel; - agg::image_filter_lut filter(filter_kernel, true); - - typedef o2agg::span_image_resample_rgba_affine - span_gen_type; - span_gen_type sg(ia, interpolator, filter); - - render_scanlines_aa(self, sa, sg); - } break; - case kImageInterpolationBicubic: { - agg::image_filter_bicubic filter_kernel; - agg::image_filter_lut filter(filter_kernel, true); - - typedef o2agg::span_image_resample_rgba_affine - span_gen_type; - span_gen_type sg(ia, interpolator, filter); - - render_scanlines_aa(self, sa, sg); - } break; -#if 0 - //unused - case kImageInterpolationLanczos: { - agg::image_filter_lanczos filter_kernel(2.f); - agg::image_filter_lut filter(filter_kernel, true); - - typedef o2agg::span_image_resample_rgba_affine span_gen_type; - span_gen_type sg(ia, interpolator, filter); - - render_scanlines_aa(self, sa, sg); - } - break; -#endif - case kImageInterpolationRepeat: { - typedef agg::image_accessor_wrap - img_accessor_type; - img_accessor_type ia(img_pixf); - - agg::image_filter_bilinear filter_kernel; - agg::image_filter_lut filter(filter_kernel, true); - // !!! don't use the o2agg version with a "repeat" accessor - it - // seems some y wrapping is missing in the optimized resampling code - // - so use the slower plain AGG version for now - typedef agg::span_image_resample_rgba_affine - span_gen_type; - span_gen_type sg(ia, interpolator, filter); - - render_scanlines_aa(self, sa, sg); - } break; - } - } -} - -template -void O2AGGContextSetStroke(O2Context_AntiGrain *self, StrokeType &stroke, - const agg::trans_affine &deviceMatrix) -{ - O2GState *gState = O2ContextCurrentGState(self); - - stroke.approximation_scale(deviceMatrix.scale()); - - switch (gState->_lineJoin) { - case kO2LineJoinMiter: - stroke.line_join(agg::miter_join); - break; - - case kO2LineJoinRound: - stroke.line_join(agg::round_join); - break; - - case kO2LineJoinBevel: - stroke.line_join(agg::bevel_join); - break; - } - - switch (gState->_lineCap) { - case kO2LineCapButt: - stroke.line_cap(agg::butt_cap); - break; - - case kO2LineCapRound: - stroke.line_cap(agg::round_cap); - break; - - case kO2LineCapSquare: - stroke.line_cap(agg::square_cap); - break; - } - - stroke.width(gState->_lineWidth); -} - -template -void O2AGGContextStrokePath(O2Context_AntiGrain *self, StrokeType &stroke, - o2agg::rgba color, - const agg::trans_affine &deviceMatrix) -{ - agg::conv_transform trans(stroke, - deviceMatrix); - self->rasterizer->add_path(trans); - self->rasterizer->filling_rule(agg::fill_non_zero); - - render_scanlines_aa_solid(self, color, NO); -} - -template -void O2AGGStrokeToO2Path(O2Context_AntiGrain *self, StrokeType &stroke) -{ - double x, y; - int type; - O2ContextBeginPath(self); - while ((type = stroke.vertex(&x, &y)) != agg::path_cmd_stop) { - switch (type & agg::path_cmd_mask) { - case agg::path_cmd_move_to: { - O2ContextMoveToPoint(self, x, y); - } break; - case agg::path_cmd_line_to: { - O2ContextAddLineToPoint(self, x, y); - } - - break; - case agg::path_cmd_curve3: { - // x, y are ctrl_x, ctrl_y - double to_x, to_y; - stroke.vertex(&to_x, &to_y); - O2ContextAddQuadCurveToPoint(self, x, y, to_x, to_y); - } - - break; - case agg::path_cmd_curve4: { - // x, y are ctrl1_x, ctrl1_y - double ctrl2_x, ctrl2_y; - stroke.vertex(&ctrl2_x, &ctrl2_y); - double to_x, to_y; - stroke.vertex(&to_x, &to_y); - O2ContextAddCurveToPoint(self, x, y, ctrl2_x, ctrl2_y, to_x, to_y); - } break; - case agg::path_cmd_end_poly: { - if (type & agg::path_flags_close) { - O2ContextClosePath(self); - } - } break; - - default: - break; - } - } -} - -#endif - -@interface O2AGGGState : O2GState { - float alpha; -} - -@end - -@implementation O2Context_AntiGrain - -#ifdef ANTIGRAIN_PRESENT -// If AntiGrain is not present it will just be a non-overriding subclass of the -// builtin context, so no problems - -static void O2AGGContextFillPathWithRule(O2Context_AntiGrain *self, - o2agg::rgba color, - const agg::trans_affine &deviceMatrix, - agg::filling_rule_e fillingRule) -{ - agg::conv_curve curve(*(self->path)); - agg::conv_transform, agg::trans_affine> - trans(curve, deviceMatrix); - - curve.approximation_scale(deviceMatrix.scale()); - - self->rasterizer->add_path(trans); - self->rasterizer->filling_rule(fillingRule); - - // Use the packed scanline - better for filling solid path - render_scanlines_aa_solid(self, color, YES); -} - -static void O2AGGContextStrokePath(O2Context_AntiGrain *self, o2agg::rgba color, - const agg::trans_affine &deviceMatrix) -{ - agg::conv_curve curve(*(self->path)); - curve.approximation_scale(deviceMatrix.scale()); - - O2GState *gState = O2ContextCurrentGState(self); - if (gState->_dashLengthsCount > 1) { - agg::conv_dash> dash(curve); - agg::conv_stroke>> - stroke(dash); - dash.dash_start(gState->_dashPhase); - for (int i = 0; i < gState->_dashLengthsCount; i += 2) { - if (i == gState->_dashLengthsCount - 1) { - // Last dash without an length for the next space - dash.add_dash(gState->_dashLengths[i], 0); - } else { - dash.add_dash(gState->_dashLengths[i], - gState->_dashLengths[i + 1]); - } - } - O2AGGContextSetStroke(self, stroke, deviceMatrix); - O2AGGContextStrokePath(self, stroke, color, - deviceMatrix); - } else { - // Just stroke - agg::conv_stroke> stroke(curve); - O2AGGContextSetStroke(self, stroke, deviceMatrix); - O2AGGContextStrokePath(self, stroke, color, - deviceMatrix); - } -} - -static void O2AGGReplaceStrokedPath(O2Context_AntiGrain *self, - const agg::trans_affine &deviceMatrix) -{ - agg::conv_curve curve(*(self->path)); - curve.approximation_scale(deviceMatrix.scale()); - - O2GState *gState = O2ContextCurrentGState(self); - if (gState->_dashLengthsCount > 1) { - agg::conv_dash> dash(curve); - agg::conv_stroke>> - stroke(dash); - dash.dash_start(gState->_dashPhase); - for (int i = 0; i < gState->_dashLengthsCount; i += 2) { - if (i == gState->_dashLengthsCount - 1) { - // Last dash without an length for the next space - dash.add_dash(gState->_dashLengths[i], 0); - } else { - dash.add_dash(gState->_dashLengths[i], - gState->_dashLengths[i + 1]); - } - } - O2AGGContextSetStroke(self, stroke, deviceMatrix); - O2AGGStrokeToO2Path(self, stroke); - - } else { - // Just stroke - agg::conv_stroke> stroke(curve); - O2AGGContextSetStroke(self, stroke, deviceMatrix); - O2AGGStrokeToO2Path(self, stroke); - } -} - -/* Transfer path from Onyx2D to AGG. Not a very expensive operation, - * tessellation, stroking and rasterization are the expensive pieces - */ -static void buildAGGPathFromO2PathAndTransform(agg::path_storage *aggPath, - O2PathRef path, - const O2AffineTransform &xform) -{ - const unsigned char *elements = O2PathElements(path); - const O2Point *points = O2PathPoints(path); - unsigned i, numberOfElements = O2PathNumberOfElements(path), pointIndex; - - pointIndex = 0; - - aggPath->remove_all(); - - for (i = 0; i < numberOfElements; i++) { - - switch (elements[i]) { - - case kO2PathElementMoveToPoint: { - O2Point point = - O2PointApplyAffineTransform(points[pointIndex++], xform); - - aggPath->move_to(point.x, point.y); - } break; - - case kO2PathElementAddLineToPoint: { - O2Point point = - O2PointApplyAffineTransform(points[pointIndex++], xform); - - aggPath->line_to(point.x, point.y); - } break; - - case kO2PathElementAddCurveToPoint: { - O2Point cp1 = - O2PointApplyAffineTransform(points[pointIndex++], xform); - O2Point cp2 = - O2PointApplyAffineTransform(points[pointIndex++], xform); - O2Point end = - O2PointApplyAffineTransform(points[pointIndex++], xform); - - aggPath->curve4(cp1.x, cp1.y, cp2.x, cp2.y, end.x, end.y); - } break; - - case kO2PathElementAddQuadCurveToPoint: { - O2Point cp1 = - O2PointApplyAffineTransform(points[pointIndex++], xform); - O2Point cp2 = - O2PointApplyAffineTransform(points[pointIndex++], xform); - - aggPath->curve3(cp1.x, cp1.y, cp2.x, cp2.y); - } break; - - case kO2PathElementCloseSubpath: - aggPath->end_poly(); - break; - } - } -} - -static void transferPath(O2Context_AntiGrain *self, O2PathRef path, - const O2AffineTransform &xform) -{ - buildAGGPathFromO2PathAndTransform(self->path, path, xform); -} - -#ifdef O2AGG_GLYPH_SUPPORT - -- (KTFont *) _cachedKTFontWithFont: (O2Font *) font - name: (NSString *) name - size: (float) size -{ - static NSMutableDictionary *kfontCache = nil; - static NSMutableArray *kfontLRU = nil; - if (kfontCache == nil) { - kfontCache = - [[NSMutableDictionary alloc] initWithCapacity: kKFontCacheSize]; - } - if (kfontLRU == nil) { - kfontLRU = [[NSMutableArray alloc] initWithCapacity: kKFontCacheSize]; - } - NSString *key = [NSString stringWithFormat: @"%@-%f", name, size]; - KTFont *kfont = [kfontCache objectForKey: key]; - if (kfont) { - [kfontLRU removeObject: key]; - } - // Move the font to the top of our LRU list - [kfontLRU insertObject: key atIndex: 0]; - if (kfont == nil) { - kfont = [[[KTFont alloc] initWithFont: font size: size] autorelease]; - [kfontCache setObject: kfont forKey: key]; - // Remove the LRU if we reach the max size - if ([kfontLRU count] > kKFontCacheSize) { - id lastKey = [kfontLRU lastObject]; - [kfontCache removeObjectForKey: lastKey]; - [kfontLRU removeLastObject]; - } - } - return kfont; -} - -unsigned O2AGGContextShowGlyphs(O2Context_AntiGrain *self, - const O2Glyph *glyphs, const O2Size *advances, - unsigned count) -{ - unsigned num_glyphs = 0; - - // All context use the same font manager - protect acceses - @synchronized([self class]) { - if (font_manager == 0) { - font_engine = new font_engine_type(::GetDC(NULL)); - font_manager = new font_manager_type(*font_engine); - } - - // Pipeline to process the vectors glyph paths (curves) - typedef agg::conv_curve - conv_curve_type; - conv_curve_type curves(font_manager->path_adaptor()); - - O2GState *gState = O2ContextCurrentGState(self); - - O2Font *font = O2GStateFont(gState); - NSString *fontName = - [(NSString *) O2FontCopyFullName(font) autorelease]; - - float pointSize = O2GStatePointSize(gState); - O2AffineTransform Trm = self->_textMatrix; - - O2AffineTransform deviceTransform = gState->_deviceSpaceTransform; - agg::trans_affine deviceMatrix(deviceTransform.a, deviceTransform.b, - deviceTransform.c, deviceTransform.d, - deviceTransform.tx, deviceTransform.ty); - // Round the drawing start point - that helps at killing blury text - Trm.tx = roundf(Trm.tx); - Trm.ty = roundf(Trm.ty); - agg::trans_affine trmMatrix(Trm.a, Trm.b, Trm.c, Trm.d, Trm.tx, Trm.ty); - - agg::trans_affine transformMatrix = deviceMatrix; - transformMatrix.premultiply(trmMatrix); - - O2ColorRef fillColor = O2ColorConvertToDeviceRGB(gState->_fillColor); - const float *fillComps = O2ColorGetComponents(fillColor); - o2agg::rgba aggFillColor(fillComps[0], fillComps[1], fillComps[2], - fillComps[3]); - O2ColorRelease(fillColor); - - self->rasterizer->filling_rule(agg::fill_non_zero); - - font_engine->hinting( - false); // For some reason, it looks better without hinting... - font_engine->height((int) pointSize); - font_engine->width(0.); // Automatic width - font_engine->flip_y(false); - - self->rasterizer->reset(); - - if (font_engine->create_font([fontName UTF8String], - agg::glyph_ren_outline)) { - agg::conv_transform trans( - curves, transformMatrix); - - CGSize defaultAdvances[count]; - if (advances == NULL) { - // Using a KTFont because we need to get the advancements the - // same way the layout manager is getting them. Of course, it - // would be better if the layout manager could give us the - // advances it wants us to use... - KTFont *kfont = [self _cachedKTFontWithFont: font - name: fontName - size: pointSize]; - [kfont getAdvancements: defaultAdvances - forGlyphs: glyphs - count: count]; - for (int i = 0; i < count; i++) { - defaultAdvances[i].width += gState->_characterSpacing; - } - advances = defaultAdvances; - } - double x = 0; - double y = 0; - - const O2Glyph *p = glyphs; - - for (int i = 0; i < count; ++i) { - const agg::glyph_cache *glyph = font_manager->glyph(*p); - if (glyph) { - font_manager->init_embedded_adaptors(glyph, x, y); - switch (glyph->data_type) { - case agg::glyph_data_outline: { - self->rasterizer->add_path(trans); - break; - } - default: - // No data to process - break; - } - - // increment pen position - x += advances[i].width; - y += advances[i].height; - - ++num_glyphs; - } - ++p; - } - - render_scanlines_aa_solid(self, aggFillColor); - O2ContextConcatAdvancesToTextMatrix(self, advances, num_glyphs); - } - } - return num_glyphs; -} -#endif - -- initWithSurface: (O2Surface *) surface flipped: (BOOL) flipped { - [super initWithSurface: surface flipped: flipped]; - - if (o2agg::SSE2checked == false) { - o2agg::SSE2checked = true; - o2agg::hasSSE2 = cpuHasSSE2(); - } - - int bytesPerRow = O2SurfaceGetBytesPerRow(surface); - renderingBuffer = new agg::rendering_buffer( - (unsigned char *) O2SurfaceGetPixelBytes(surface), - O2SurfaceGetWidth(surface), O2SurfaceGetHeight(surface), - bytesPerRow); - - rasterizer = new RasterizerType(); - scanline_u8 = new agg::scanline_u8; - scanline_p8 = new agg::scanline_p8; - - // Use with the right order depending of the bitmap info of the surface - - // we'll probably want to pass a pixel type here instead of an order to - // support non 32 bits surfaces and pre/no pre - renderer = new context_renderer(); - O2BitmapInfo bitmapInfo = O2ImageGetBitmapInfo(surface); - renderer->context = self; - /* - AlphaFirst => The Alpha channel is next to the Red channel - (ARGB and BGRA are both Alpha First formats) - AlphaLast => The Alpha channel is next to the Blue channel - (RGBA and ABGR are both Alpha Last formats) - - LittleEndian => Blue comes before Red - (BGRA and ABGR are Little endian formats) - BigEndian => Red comes before Blue - (ARGB and RGBA are Big endian formats). - */ - switch (bitmapInfo & kO2BitmapByteOrderMask) { - case kO2BitmapByteOrder32Big: - switch (bitmapInfo & kO2BitmapAlphaInfoMask) { - case kO2ImageAlphaPremultipliedLast: - renderer->init_pre(*renderingBuffer); - break; - case kO2ImageAlphaLast: - renderer->init(*renderingBuffer); - break; - case kO2ImageAlphaPremultipliedFirst: - renderer->init_pre(*renderingBuffer); - break; - case kO2ImageAlphaFirst: - renderer->init(*renderingBuffer); - break; - default: - O2Log("UNKNOW ALPHA : %d", bitmapInfo & kO2BitmapAlphaInfoMask); - renderer->init(*renderingBuffer); - } - break; - case kO2BitmapByteOrderDefault: - case kO2BitmapByteOrder32Little: - switch (bitmapInfo & kO2BitmapAlphaInfoMask) { - case kO2ImageAlphaPremultipliedLast: - renderer->init_pre(*renderingBuffer); - break; - case kO2ImageAlphaLast: - renderer->init(*renderingBuffer); - break; - case kO2ImageAlphaPremultipliedFirst: - renderer->init_pre(*renderingBuffer); - break; - case kO2ImageAlphaFirst: - renderer->init(*renderingBuffer); - break; - default: - O2Log("UNKNOW ALPHA : %d", bitmapInfo & kO2BitmapAlphaInfoMask); - renderer->init(*renderingBuffer); - } - break; - default: - O2Log("UNKNOW ORDER : %x", bitmapInfo & kO2BitmapByteOrderMask); - renderer->init(*renderingBuffer); - } - - path = new agg::path_storage(); - - return self; -} - -- (void) dealloc { - [savedClipPhases release]; - - delete renderer; - delete renderingBuffer; - delete rasterizer; - delete path; - delete scanline_u8; - delete scanline_p8; - - if (baseRendererAlphaMask[0]) { - for (int i = 0; i < 2; ++i) { - free(rBufAlphaMask[i]->buf()); - delete rBufAlphaMask[i]; - delete alphaMask[i]; - delete pixelFormatAlphaMask[i]; - delete baseRendererAlphaMask[i]; - delete solidScanlineRendererAlphaMask[i]; - } - } - [super dealloc]; -} - -- (BOOL) supportsGlobalAlpha { - return YES; -} - -- (void) createMaskRenderer { - // We use two gray masks to render our alpha mask - one for the current - // mask, one to render a new clipping path using the current mask - for (int i = 0; i < 2; ++i) { - O2Surface *surface = [self surface]; - // For some still mysterious reason, if we don't allocate one additional - // line, we sometimes get some crash when rendering the mask So we'll - // just extend that buffer until we fix the problem at its root - void *alphaBuffer = malloc(O2SurfaceGetWidth(surface) * - (O2SurfaceGetHeight(surface) + 1)); - rBufAlphaMask[i] = new agg::rendering_buffer( - (unsigned char *) alphaBuffer, O2SurfaceGetWidth(surface), - O2SurfaceGetHeight(surface), O2SurfaceGetWidth(surface)); - alphaMask[i] = new MaskType(*rBufAlphaMask[i]); - pixelFormatAlphaMask[i] = new pixfmt_alphaMaskType(*rBufAlphaMask[i]); - baseRendererAlphaMask[i] = - new BaseRendererWithAlphaMaskType(*pixelFormatAlphaMask[i]); - - solidScanlineRendererAlphaMask[i] = new agg::renderer_scanline_aa_solid< - BaseRendererWithAlphaMaskType>(*baseRendererAlphaMask[i]); - solidScanlineRendererAlphaMask[i]->color(agg::gray8(255, 255)); - } -} - -- (RasterizerType *) rasterizer { - return rasterizer; -} - -- (context_renderer *) renderer; { - return renderer; -} - -- (BOOL) useMask { - return useMask; -} - -- (BOOL) isPremultiplied; { - return renderer->premultiplied; -} - -- (MaskType *) currentMask { - if (baseRendererAlphaMask[0] == NULL) { - [self createMaskRenderer]; - } - return alphaMask[currentMask]; -} - -- (void) setFillAlpha: (O2Float) alpha { - // It's actually handled by the global alpha - that's the way it's supposed - // to work in Cocoa -} - -- (void) setStrokeAlpha: (O2Float) alpha { - // It's actually handled by the global alpha - that's the way it's supposed - // to work in Cocoa -} - -- (void) updateBlendMode { - // Onyx2D -> AGG blend mode conversion - // O2Log("Setting blend mode to %d", blendMode); - enum o2agg::comp_op_e blendModeMap[28] = { - o2agg::comp_op_src_over, o2agg::comp_op_multiply, - o2agg::comp_op_screen, o2agg::comp_op_overlay, - o2agg::comp_op_darken, o2agg::comp_op_lighten, - o2agg::comp_op_color_dodge, o2agg::comp_op_color_burn, - o2agg::comp_op_hard_light, o2agg::comp_op_soft_light, - o2agg::comp_op_difference, o2agg::comp_op_exclusion, - o2agg::comp_op_src_over, // should be Hue - o2agg::comp_op_src_over, // should be Saturation - o2agg::comp_op_color, - o2agg::comp_op_src_over, // should be Luminosity - o2agg::comp_op_clear, o2agg::comp_op_src, - o2agg::comp_op_src_in, o2agg::comp_op_src_out, - o2agg::comp_op_src_atop, o2agg::comp_op_dst_over, - o2agg::comp_op_dst_in, o2agg::comp_op_dst_out, - o2agg::comp_op_dst_atop, o2agg::comp_op_xor, - o2agg::comp_op_plus_darker, - o2agg::comp_op_minus, // shoud be MinusLighter - }; - O2GState *gState = O2ContextCurrentGState(self); - - renderer->setBlendMode(blendModeMap[O2GStateBlendMode(gState)]); - renderer->setAlpha(O2GStateAlpha(gState)); - - O2ColorRef shadowColor = gState->_shadowColor; - if (shadowColor) { - shadowColor = O2ColorConvertToDeviceRGB(shadowColor); - const O2Float *components = O2ColorGetComponents(shadowColor); - renderer->setShadowColor(o2agg::rgba(components[0], components[1], - components[2], components[3])); - renderer->setShadowBlurRadius(gState->_shadowBlur); - renderer->setShadowOffset(gState->_shadowOffset); - O2ColorRelease(shadowColor); - } else { - renderer->setShadowColor(o2agg::rgba(0, 0, 0, 0)); - } -} - -// Update the AGG alpha mask from current GState clip phases -- (void) updateMask { - if (maskValid == YES) { - return; - } - currentMask = 0; - useMask = NO; - - if ([savedClipPhases count]) { - typedef agg::conv_curve conv_crv_type; - typedef agg::conv_transform transStroke; - - self->rasterizer->reset(); - self->rasterizer->clip_box(self->_vpx, self->_vpy, - self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - O2GState *gState = O2ContextCurrentGState(self); - O2AffineTransform deviceTransform = gState->_deviceSpaceTransform; - agg::trans_affine deviceMatrix(deviceTransform.a, deviceTransform.b, - deviceTransform.c, deviceTransform.d, - deviceTransform.tx, deviceTransform.ty); - - agg::path_storage aggPath; - for (int i = 0; i < [savedClipPhases count]; ++i) { - O2ClipPhase *phase = [savedClipPhases objectAtIndex: i]; - - switch (O2ClipPhasePhaseType(phase)) { - case O2ClipPhaseNonZeroPath: - case O2ClipPhaseEOPath: { - O2PathRef maskPath = O2ClipPhaseObject(phase); - // We can ignore path that are rect - the default clipping takes - // that into account - NSRect rect; - if (!O2PathIsRect(maskPath, &rect)) { - if (useMask == NO) { - // Fill the mask content on first use - useMask = YES; - if (baseRendererAlphaMask[0] == NULL) { - [self createMaskRenderer]; - } - baseRendererAlphaMask[0]->clip_box( - self->_vpx - 1, self->_vpy, - self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - // We only need to fill the clipped rect area - baseRendererAlphaMask[0]->copy_bar( - self->_vpx, self->_vpy, - self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight, - agg::gray8(255, 255)); - } - // Switch masks - currentMask = !currentMask; - // Clear the new mask - baseRendererAlphaMask[currentMask]->clip_box( - self->_vpx, self->_vpy, self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - // We only need to clear the clipped rect area - baseRendererAlphaMask[currentMask]->copy_bar( - self->_vpx, self->_vpy, self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight, agg::gray8(0)); - - buildAGGPathFromO2PathAndTransform( - &aggPath, maskPath, O2AffineTransformIdentity); - - agg::conv_curve curve(aggPath); - curve.approximation_scale(deviceMatrix.scale()); - O2ClipPhaseType phaseType = O2ClipPhasePhaseType(phase); - if (phaseType == O2ClipPhaseNonZeroPath) - rasterizer->filling_rule(agg::fill_non_zero); - else - rasterizer->filling_rule(agg::fill_even_odd); - - rasterizer->add_path(curve); - - // Render the path masked by the previous mask - scanline_mask_type sl(*self->alphaMask[!currentMask]); - renderer->render_scanlines( - *rasterizer, sl, - *solidScanlineRendererAlphaMask[currentMask]); - } - break; - } - case O2ClipPhaseMask: - O2Log("%@:Clip to mask unsupported", self); - // Unsupported for now - break; - } - } - } - maskValid = YES; -} - -// Clip the viewport with the path bounds -static void O2ContextClipViewportToPath(O2Context_builtin *self, O2Path *path) { - O2Rect viewport = - O2RectMake(self->_vpx, self->_vpy, self->_vpwidth, self->_vpheight); - O2Rect rect = O2PathGetBoundingBox(path); - - rect = O2RectIntegral(rect); - - viewport = O2RectIntersection(viewport, rect); - - self->_vpx = viewport.origin.x; - self->_vpy = viewport.origin.y; - self->_vpwidth = viewport.size.width; - self->_vpheight = viewport.size.height; -} - -static void O2ContextClipViewportToState(O2Context_builtin *self, - O2ClipState *clipState) -{ - // Note : this is basically what [O2Context_builtin clipToState:] is doing - O2GState *gState = O2ContextCurrentGState(self); - NSArray *phases = [O2GStateClipState(gState) clipPhases]; - - O2ContextDeviceClipReset_builtin(self); - for (O2ClipPhase *phase in phases) { - O2Path *path; - switch (O2ClipPhasePhaseType(phase)) { - - case O2ClipPhaseNonZeroPath: - case O2ClipPhaseEOPath: - path = O2ClipPhaseObject(phase); - O2ContextClipViewportToPath(self, path); - break; - - case O2ClipPhaseMask: - break; - } - } -} - -- (void) clipToState: (O2ClipState *) clipState { - // No need to change the clipping if the clip phases are the same as before - NSArray *clipPhases = [clipState clipPhases]; - if ([clipPhases isEqualToArray: savedClipPhases]) { - return; - } - [savedClipPhases release]; - savedClipPhases = [clipPhases copy]; - - /* - The builtin Onyx2D renderer only supports viewport clipping (one integer rect), - so once the superclass has clipped the viewport is what we want to clip to - also. The base AGG renderer also does viewport clipping, so we just set it. - */ -#ifdef O2AGG_GLYPH_SUPPORT - O2GState *gState = O2ContextCurrentGState(self); - if (gState->_shouldSmoothFonts == YES) { - // We don't call the super method because we don't care about expensive - // GDI clipping when we use no GDI for the drawing - O2ContextClipViewportToState(self, clipState); - } else -#endif - { - [super clipToState: clipState]; - } - - /// This is setting the clipping rect englobing our clipping states - // The real precise clipping mask for non-rect clipping will be built on - // demand - O2ContextClipViewportToState(self, clipState); - - renderer->clipBox(self->_vpx, self->_vpy, self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - // That will force a rebuild of the mask next time we need to draw something - // - no need to build it now as it might change again before we need it for - // drawing - maskValid = NO; -} - -- (void) drawPath: (O2PathDrawingMode) drawingMode { - renderer->premultiplied = YES; - BOOL doFill = NO; - BOOL doEOFill = NO; - BOOL doStroke = NO; - - [self updateMask]; - [self updateBlendMode]; - - rasterizer->reset(); - rasterizer->clip_box(self->_vpx, self->_vpy, self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - switch (drawingMode) { - - case kO2PathFill: - doFill = YES; - break; - - case kO2PathEOFill: - doEOFill = YES; - break; - - case kO2PathStroke: - doStroke = YES; - break; - - case kO2PathFillStroke: - doFill = YES; - doStroke = YES; - break; - - case kO2PathEOFillStroke: - doEOFill = YES; - doStroke = YES; - break; - } - - O2GState *gState = O2ContextCurrentGState(self); - - transferPath(self, (O2PathRef) _path, - O2AffineTransformInvert(gState->_userSpaceTransform)); - - O2AffineTransform deviceTransform = gState->_deviceSpaceTransform; - - agg::trans_affine aggDeviceMatrix(deviceTransform.a, deviceTransform.b, - deviceTransform.c, deviceTransform.d, - deviceTransform.tx, deviceTransform.ty); - - if (doFill || doEOFill) { - O2PatternRef pattern = O2ColorGetPattern(gState->_fillColor); - if (pattern) { - // Note: pattern support is incomplete : - // We don't make much use of the pattern phase, pattern color or - // pattern bounds - - // Create a context with the size of our pattern tile - O2Surface *surface = [self createSurfaceWithWidth: [pattern xstep] - height: [pattern ystep]]; - O2Context_AntiGrain *context = - [[self->isa alloc] initWithSurface: surface flipped: YES]; - - // Draw the pattern tile - [pattern drawInContext: context]; - O2ContextRelease(context); - - // Build the global transform from the pattern to the device - O2AffineTransform matrix = O2AffineTransformConcat( - ([pattern matrix]), - O2AffineTransformInvert(gState->_userSpaceTransform)); - - agg::trans_affine globalTransform(matrix.a, matrix.b, matrix.c, - matrix.d, matrix.tx, matrix.ty); - globalTransform.multiply(aggDeviceMatrix); - globalTransform.invert(); - - // Create an agg buffer from the Surface content - uint8_t *imgBytes = (uint8_t *) [surface pixelBytes]; - agg::rendering_buffer imageBuffer(imgBytes, - O2SurfaceGetWidth(surface), - O2SurfaceGetHeight(surface), - O2SurfaceGetBytesPerRow(surface)); - - // Fill the current agg path with the repeated tile - agg::conv_curve curve(*(self->path)); - agg::conv_transform, - agg::trans_affine> - trans(curve, aggDeviceMatrix); - self->rasterizer->add_path(trans); - renderer->premultiplied = YES; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, - kImageInterpolationRepeat); - - [surface release]; - } else { - O2ColorRef fillColor = - O2ColorConvertToDeviceRGB(gState->_fillColor); - const float *fillComps = O2ColorGetComponents(fillColor); - o2agg::rgba aggFillColor(fillComps[0], fillComps[1], fillComps[2], - fillComps[3]); - if (doFill) { - O2AGGContextFillPathWithRule(self, aggFillColor, - aggDeviceMatrix, - agg::fill_non_zero); - } else { - O2AGGContextFillPathWithRule(self, aggFillColor, - aggDeviceMatrix, - agg::fill_even_odd); - } - O2ColorRelease(fillColor); - } - } - - if (doStroke) { - // Note: pattern stroking not supported for now - O2ColorRef strokeColor = - O2ColorConvertToDeviceRGB(gState->_strokeColor); - const float *strokeComps = O2ColorGetComponents(strokeColor); - o2agg::rgba aggStrokeColor(strokeComps[0], strokeComps[1], - strokeComps[2], strokeComps[3]); - O2AGGContextStrokePath(self, aggStrokeColor, aggDeviceMatrix); - O2ColorRelease(strokeColor); - } - - O2PathReset(_path); -} - -- (void) replacePathWithStrokedPath { - O2GState *gState = O2ContextCurrentGState(self); - - transferPath(self, (O2PathRef) _path, - O2AffineTransformInvert(gState->_userSpaceTransform)); - - O2AffineTransform deviceTransform = gState->_deviceSpaceTransform; - agg::trans_affine aggDeviceMatrix(deviceTransform.a, deviceTransform.b, - deviceTransform.c, deviceTransform.d, - deviceTransform.tx, deviceTransform.ty); - - O2AGGReplaceStrokedPath(self, aggDeviceMatrix); -} - -- (void) drawImage: (O2Image *) image inRect: (O2Rect) rect { - int bpp = O2ImageGetBitsPerPixel(image); - - if (bpp == 32) { // We don't support other modes for now - int width = O2ImageGetWidth(image); - int height = O2ImageGetHeight(image); - int bytesPerRow = O2ImageGetBytesPerRow(image); - int bitmapInfo = O2ImageGetBitmapInfo(image); - - [self updateMask]; - [self updateBlendMode]; - - rasterizer->reset(); - rasterizer->clip_box(self->_vpx, self->_vpy, - self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - agg::path_storage p2; - p2.move_to(rect.origin.x, rect.origin.y); - p2.line_to(rect.origin.x + rect.size.width, rect.origin.y); - p2.line_to(rect.origin.x + rect.size.width, - rect.origin.y + rect.size.height); - p2.line_to(rect.origin.x, rect.origin.y + rect.size.height); - p2.close_polygon(); - - O2GState *gState = O2ContextCurrentGState(self); - O2AffineTransform deviceTransform = gState->_deviceSpaceTransform; - - agg::trans_affine transform(deviceTransform.a, deviceTransform.b, - deviceTransform.c, deviceTransform.d, - deviceTransform.tx, deviceTransform.ty); - - agg::conv_transform trans( - p2, transform); // Global Affine transformer - rasterizer->add_path(trans); - - // Flipped scaled transfrom from the original image bounds to the - // destination rect - O2AffineTransform imageTransform = O2AffineTransformMakeTranslation( - rect.origin.x, rect.origin.y + rect.size.height); - imageTransform = O2AffineTransformScale( - imageTransform, rect.size.width / float(width), - -rect.size.height / float(height)); - - agg::trans_affine globalTransform(imageTransform.a, imageTransform.b, - imageTransform.c, imageTransform.d, - imageTransform.tx, imageTransform.ty); - globalTransform.multiply(transform); - - // We use bilinear scaling for images that need to be shrunk. At 100% - // scale size it preserves the image better. Remember we don't even - // think about doing this for images that need to expand; those should - // always use the bicubic filter; however, - // that is user-selectable. - - bool reducedScale = true; - bool isUnity = true; - globalTransform.invert(); - - double scaleX; - double scaleY; - globalTransform.scaling_abs(&scaleX, &scaleY); - if (scaleX > .995 || scaleY > .995) { - reducedScale = false; - } - if (fabs(scaleX - 1.) > .0001 || fabs(scaleY - 1.) > .0001) { - // printf(">>>> %lf -- %lf\n",scaleX, scaleY); - isUnity = false; - } - - // Round the physical screen coordinate to an integer boundary so - // filtering works better. This seems to make images that are 1x1 - // rasterize - // exactly. Changing the pixel coordinates on smaller scaled images - // introuduces unpleasant artifacts. - if (isUnity) { - globalTransform.tx = round(globalTransform.tx); - globalTransform.ty = round(globalTransform.ty); - } - - uint8_t *imgBytes = (uint8_t *) [image directBytes]; - agg::rendering_buffer imageBuffer(imgBytes, width, height, bytesPerRow); - - BOOL noInterpolation = isUnity; - - int interpolationQuality = [gState interpolationQuality]; - if (interpolationQuality == kO2InterpolationNone) { - noInterpolation = YES; - } - - ImageInterpolationType interpolationType = kImageInterpolationBilinear; - if (interpolationQuality > kO2InterpolationHigh) { - interpolationType = kImageInterpolationBicubic; - } - - if (noInterpolation) { - interpolationType = kImageInterpolationNone; - } - /* - From David Duncan : - - AlphaFirst => The Alpha channel is next to the Red channel - (ARGB and BGRA are both Alpha First formats) - AlphaLast => The Alpha channel is next to the Blue channel - (RGBA and ABGR are both Alpha Last formats) - - LittleEndian => Blue comes before Red - (BGRA and ABGR are Little endian formats) - BigEndian => Red comes before Blue - (ARGB and RGBA are Big endian formats). - */ - switch (bitmapInfo & kO2BitmapByteOrderMask) { - // Big Endian is RB - case kO2BitmapByteOrder32Big: - switch (bitmapInfo & kO2BitmapAlphaInfoMask) { - case kO2ImageAlphaPremultipliedLast: - renderer->premultiplied = YES; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - case kO2ImageAlphaLast: - renderer->premultiplied = NO; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - case kO2ImageAlphaPremultipliedFirst: - renderer->premultiplied = YES; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - case kO2ImageAlphaFirst: - renderer->premultiplied = NO; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - default: - O2Log("UNKNOW ALPHA"); - // Fallback to the default implementation - that means path - // clipping, shadow, layers... won't work well on this one - [super drawImage: image inRect: rect]; - } - break; - // Little Endian is BG - case kO2BitmapByteOrderDefault: - case kO2BitmapByteOrder32Little: - switch (bitmapInfo & kO2BitmapAlphaInfoMask) { - case kO2ImageAlphaPremultipliedLast: - renderer->premultiplied = YES; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - case kO2ImageAlphaLast: - renderer->premultiplied = NO; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - case kO2ImageAlphaPremultipliedFirst: - renderer->premultiplied = YES; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - case kO2ImageAlphaFirst: - renderer->premultiplied = NO; - O2AGGContextDrawImage( - self, imageBuffer, globalTransform, interpolationType); - break; - default: - // Fallback to the default implementation - that means clipping, - // shadow, layers... won't work on this one - O2Log("UNKNOW ALPHA"); - [super drawImage: image inRect: rect]; - } - break; - default: - O2Log("UNKNOW ORDER"); - // Fallback to the default implementation - that means path - // clipping, shadow, layers... won't work well on this one - [super drawImage: image inRect: rect]; - break; - } - } else { - O2Log("Unsuported image format"); - // Fallback to the default implementation - that means path clipping, - // shadow, layers... won't work well on this one - [super drawImage: image inRect: rect]; - } -} - -- (void) drawShading: (O2Shading *) shading { - renderer->premultiplied = YES; - [self updateMask]; - [self updateBlendMode]; - - rasterizer->reset(); - rasterizer->clip_box(self->_vpx, self->_vpy, self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - if ([shading isAxial]) { - O2AGGContextDrawShading(self, shading, _vpx, _vpy, - _vpwidth, _vpheight); - } else { - // Note: we only support circle gradient for now where startPoint = - // endPoint - O2AGGContextDrawShading(self, shading, _vpx, _vpy, - _vpwidth, _vpheight); - } -} - -- (void) beginTransparencyLayerWithInfo: (NSDictionary *) unused { - // NOTE: We could create a new context with only the current clipping size, - // and offset all clipping/drawing from the clipping origin - O2LayerRef layer = O2LayerCreateWithContext(self, [self size], unused); - - [self->_layerStack addObject: layer]; - O2LayerRelease(layer); - - // Attach to the layer surface - O2Surface *surface = O2LayerGetSurface(layer); - renderingBuffer->attach((unsigned char *) O2SurfaceGetPixelBytes(surface), - O2SurfaceGetWidth(surface), - O2SurfaceGetHeight(surface), - O2SurfaceGetBytesPerRow(surface)); - - O2ContextSaveGState(self); // Save the pre layer-time context - - /** - * From Cocoa doc : - * graphics state parameters remain unchanged except for alpha (which is set - * to 1), shadow (which is turned off), blend mode (which is set to normal), - * and other parameters that affect the final composite. - */ - - O2ContextResetClip(self); // Starts with a clean clipping region - O2GStateSetBlendMode(O2ContextCurrentGState(self), kO2BlendModeNormal); - O2GStateSetAlpha(O2ContextCurrentGState(self), 1.); - - // No shadow from now - [O2ContextCurrentGState(self) setShadowOffset: O2SizeZero - blur: 0. - color: nil]; -} - -- (void) endTransparencyLayer { - O2LayerRef layer = O2LayerRetain([self->_layerStack lastObject]); - - [self->_layerStack removeLastObject]; - - O2Size size = [self size]; - - // Reattach the renderer to the top surface (either to the new top layer if - // any or the context one) - O2LayerRef newTopLayer = [self->_layerStack lastObject]; - O2Surface *surface = - newTopLayer ? O2LayerGetSurface(newTopLayer) : _surface; - renderingBuffer->attach((unsigned char *) O2SurfaceGetPixelBytes(surface), - O2SurfaceGetWidth(surface), - O2SurfaceGetHeight(surface), - O2SurfaceGetBytesPerRow(surface)); - - O2ContextRestoreGState(self); // Restore the clean state - - // Draw the layer content into our surface - O2ContextSaveGState(self); - // We want no transform here as the layer surface matches the context one - O2ContextConcatCTM(self, O2AffineTransformInvert(O2ContextGetCTM(self))); - [self drawImage: O2LayerGetSurface(layer) - inRect: O2RectMake(0, 0, size.width, size.height)]; - O2ContextRestoreGState(self); - - O2LayerRelease(layer); -} - -#ifdef O2AGG_GLYPH_SUPPORT -- (void) showGlyphs: (const O2Glyph *) glyphs - advances: (const O2Size *) advances - count: (unsigned) count -{ - // Use Win text rendering if the context shouldSmoothFonts isn't set - // (default value) Note that Win text rendering currently doesn't support - // some advanced features like non-rect clipping, shadows... There are also - // some issues when the context is scaled But rendering is faster - O2GState *gState = O2ContextCurrentGState(self); - if (gState->_shouldSmoothFonts == NO) { - [super showGlyphs: glyphs advances: advances count: count]; - return; - } - renderer->premultiplied = YES; - [self updateMask]; - [self updateBlendMode]; - - rasterizer->reset(); - rasterizer->clip_box(self->_vpx, self->_vpy, self->_vpx + self->_vpwidth, - self->_vpy + self->_vpheight); - - O2AGGContextShowGlyphs(self, glyphs, advances, count); -} -#endif -#endif -@end diff --git a/O2Context_AntiGrain/O2Context_AntiGrain.xcodeproj/project.pbxproj b/O2Context_AntiGrain/O2Context_AntiGrain.xcodeproj/project.pbxproj deleted file mode 100644 index a5203487..00000000 --- a/O2Context_AntiGrain/O2Context_AntiGrain.xcodeproj/project.pbxproj +++ /dev/null @@ -1,455 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 494DA9A0145C0C320001E307 /* agg_font_win32_tt.mm in Sources */ = {isa = PBXBuildFile; fileRef = 494DA99F145C0C320001E307 /* agg_font_win32_tt.mm */; }; - 494DA9A9145C0D290001E307 /* libgdi32.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 494DA9A8145C0D290001E307 /* libgdi32.a */; }; - 8D576314048677EA00EA77CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* Foundation.framework */; }; - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; }; - FE5C8314121D81470063E96F /* O2Context_AntiGrain.mm in Sources */ = {isa = PBXBuildFile; fileRef = FE5C8313121D81470063E96F /* O2Context_AntiGrain.mm */; }; - FEE163EA137C6DAD00B2F340 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEE163E9137C6DAD00B2F340 /* AppKit.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXBuildRule section */ - 49B6AC24147BB10900429D06 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; - 49B6AC25147BB10900429D06 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.asm; - isEditable = 1; - outputFiles = ( - ); - }; - FE5C82FA121D67BB0063E96F /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; - FEB99E5B138417F20072F784 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.cpp; - isEditable = 1; - outputFiles = ( - ); - }; -/* End PBXBuildRule section */ - -/* Begin PBXContainerItemProxy section */ - FE0819091386F94F00C06956 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEE163EC137C6DC600B2F340 /* AppKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A8070C5D9BCB00AEA51A; - remoteInfo = "AppKit-Windows-i386"; - }; - FEE16435137C6DC800B2F340 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEE163EC137C6DC600B2F340 /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AAC10C5D9BCB00AEA51A; - remoteInfo = "AppKit-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 0AA1909FFE8422F4C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 4920AE1B145EABE9007999E6 /* agg_font_cache_manager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = agg_font_cache_manager.h; sourceTree = ""; }; - 4931E7B913B1042600CEF331 /* partial_stack_blur.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = partial_stack_blur.h; sourceTree = ""; }; - 494DA99F145C0C320001E307 /* agg_font_win32_tt.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = agg_font_win32_tt.mm; sourceTree = ""; }; - 494DA9A8145C0D290001E307 /* libgdi32.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgdi32.a; path = "/Developer/Cocotron/1.0/PlatformInterfaces/i386-pc-mingw32msvc/lib/libgdi32.a"; sourceTree = ""; }; - 494DA9C8145C114C0001E307 /* agg_font_win32_tt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = agg_font_win32_tt.h; sourceTree = ""; }; - 49B5B92B18B92CB3008AD8F3 /* o2agg_span_image_filter_rgba.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = o2agg_span_image_filter_rgba.h; sourceTree = ""; }; - 49B6B97C147BE9E700429D06 /* o2agg_pixfmt_rgba.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = o2agg_pixfmt_rgba.h; sourceTree = ""; }; - 8D576316048677EA00EA77CD /* O2Context_AntiGrain.cgContext */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = O2Context_AntiGrain.cgContext; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - FE06B39A1430E8DC0071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B39B1430E8DC0071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B39C1430E8DC0071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B39D1430E8DC0071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B39E1430E8DC0071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B39F1430E8DC0071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B3A01430E8DC0071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B3A11430E8DC0071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B3A21430E8DC0071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B3A31430E8DC0071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B3A41430E8DC0071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B3A51430E8DC0071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B3A61430E8DC0071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B3A71430E8DC0071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B3A81430E8DC0071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE1DDD52171110D9003B3AF8 /* windows-i386-bundle.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-bundle.xcconfig"; sourceTree = ""; }; - FE5C8312121D81470063E96F /* O2Context_AntiGrain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_AntiGrain.h; sourceTree = ""; }; - FE5C8313121D81470063E96F /* O2Context_AntiGrain.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = O2Context_AntiGrain.mm; sourceTree = ""; }; - FEC0A352170934FE002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A353170934FE002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A354170934FE002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A355170934FE002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A356170934FE002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A357170934FE002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A358170934FE002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A359170934FE002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEC0A35A170934FE002A60B7 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FEE163E9137C6DAD00B2F340 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - FEE163EC137C6DC600B2F340 /* AppKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AppKit.xcodeproj; path = ../AppKit/AppKit.xcodeproj; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D576313048677EA00EA77CD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D576314048677EA00EA77CD /* Foundation.framework in Frameworks */, - FEE163EA137C6DAD00B2F340 /* AppKit.framework in Frameworks */, - 494DA9A9145C0D290001E307 /* libgdi32.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* O2Context_AntiGrain */ = { - isa = PBXGroup; - children = ( - FE06B3991430E8DC0071169B /* xcconfig */, - FEE163EC137C6DC600B2F340 /* AppKit.xcodeproj */, - 4931E7B913B1042600CEF331 /* partial_stack_blur.h */, - FE5C8312121D81470063E96F /* O2Context_AntiGrain.h */, - FE5C8313121D81470063E96F /* O2Context_AntiGrain.mm */, - 49B6B97C147BE9E700429D06 /* o2agg_pixfmt_rgba.h */, - 49B5B92B18B92CB3008AD8F3 /* o2agg_span_image_filter_rgba.h */, - 494DA99F145C0C320001E307 /* agg_font_win32_tt.mm */, - 494DA9C8145C114C0001E307 /* agg_font_win32_tt.h */, - 4920AE1B145EABE9007999E6 /* agg_font_cache_manager.h */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - ); - indentWidth = 4; - name = O2Context_AntiGrain; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 494DA9A8145C0D290001E307 /* libgdi32.a */, - 0AA1909FFE8422F4C02AAC07 /* Foundation.framework */, - FEE163E9137C6DAD00B2F340 /* AppKit.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8D576317048677EA00EA77CD /* Info.plist */, - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* O2Context_AntiGrain.cgContext */, - ); - name = Products; - sourceTree = ""; - }; - FE06B3991430E8DC0071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE1DDD52171110D9003B3AF8 /* windows-i386-bundle.xcconfig */, - FEC0A352170934FE002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A353170934FE002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A354170934FE002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A355170934FE002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A356170934FE002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A357170934FE002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A358170934FE002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A359170934FE002A60B7 /* solaris-sparc-framework.xcconfig */, - FEC0A35A170934FE002A60B7 /* windows-i386-framework.xcconfig */, - FE06B39A1430E8DC0071169B /* darwin-i386.xcconfig */, - FE06B39B1430E8DC0071169B /* darwin-ppc.xcconfig */, - FE06B39C1430E8DC0071169B /* darwin-x86_64.xcconfig */, - FE06B39D1430E8DC0071169B /* darwin.xcconfig */, - FE06B39E1430E8DC0071169B /* freebsd-i386.xcconfig */, - FE06B39F1430E8DC0071169B /* freebsd.xcconfig */, - FE06B3A01430E8DC0071169B /* linux-arm.xcconfig */, - FE06B3A11430E8DC0071169B /* linux-i386.xcconfig */, - FE06B3A21430E8DC0071169B /* linux-ppc.xcconfig */, - FE06B3A31430E8DC0071169B /* linux.xcconfig */, - FE06B3A41430E8DC0071169B /* platform.xcconfig */, - FE06B3A51430E8DC0071169B /* solaris-sparc.xcconfig */, - FE06B3A61430E8DC0071169B /* solaris.xcconfig */, - FE06B3A71430E8DC0071169B /* windows-i386.xcconfig */, - FE06B3A81430E8DC0071169B /* windows.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FEE163ED137C6DC600B2F340 /* Products */ = { - isa = PBXGroup; - children = ( - FEE16436137C6DC800B2F340 /* AppKit.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* O2Context_AntiGrain-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB911A08733D790010E9CD /* Build configuration list for PBXNativeTarget "O2Context_AntiGrain-Windows-i386" */; - buildPhases = ( - FEE16442137C6DDA00B2F340 /* Check for AntiGrain Library */, - 8D57630F048677EA00EA77CD /* Resources */, - 8D576311048677EA00EA77CD /* Sources */, - 8D576313048677EA00EA77CD /* Frameworks */, - ); - buildRules = ( - 49B6AC24147BB10900429D06 /* PBXBuildRule */, - 49B6AC25147BB10900429D06 /* PBXBuildRule */, - FEB99E5B138417F20072F784 /* PBXBuildRule */, - FE5C82FA121D67BB0063E96F /* PBXBuildRule */, - ); - dependencies = ( - FE08190A1386F94F00C06956 /* PBXTargetDependency */, - ); - name = "O2Context_AntiGrain-Windows-i386"; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = O2Context_AntiGrain; - productReference = 8D576316048677EA00EA77CD /* O2Context_AntiGrain.cgContext */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB911E08733D790010E9CD /* Build configuration list for PBXProject "O2Context_AntiGrain" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 089C166AFE841209C02AAC07 /* O2Context_AntiGrain */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FEE163ED137C6DC600B2F340 /* Products */; - ProjectRef = FEE163EC137C6DC600B2F340 /* AppKit.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D57630D048677EA00EA77CD /* O2Context_AntiGrain-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FEE16436137C6DC800B2F340 /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = FEE16435137C6DC800B2F340 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D57630F048677EA00EA77CD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FEE16442137C6DDA00B2F340 /* Check for AntiGrain Library */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check for AntiGrain Library"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/O2Defines_AntiGrain.h", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "#!/bin/sh\necho \"\" > $DERIVED_FILE_DIR/O2Defines_AntiGrain.h\n\nif [ -d ../system/i386-mingw32msvc/agg-2.5 ]; then\n echo \"#define ANTIGRAIN_2_5 1\" >> $DERIVED_FILE_DIR/O2Defines_AntiGrain.h\n ANTIGRAIN_PRESENT=YES\n cd ../system/i386-mingw32msvc\n rm -f agg\n ln -s agg-2.5 agg\n echo \"2.5 present!\"\nfi\n\nif [ -d ../system/i386-mingw32msvc/agg-2.4 ]; then\n echo \"#define ANTIGRAIN_2_4 1\" >> $DERIVED_FILE_DIR/O2Defines_AntiGrain.h\n ANTIGRAIN_PRESENT=YES\n cd ../system/i386-mingw32msvc\n rm -f agg\n ln -s agg-2.4 agg\n echo \"2.4 present!\"\nfi\n\nif [ \"$ANTIGRAIN_PRESENT\" = \"YES\" ];then\n echo \"#define ANTIGRAIN_PRESENT 1\" >> $DERIVED_FILE_DIR/O2Defines_AntiGrain.h\nelse\n# Create empty libagg for link phase\n touch $DERIVED_FILE_DIR/libagg.c\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-gcc $DERIVED_FILE_DIR/libagg.c -c -o $DERIVED_FILE_DIR/libagg.o\n /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-pc-mingw32msvc-ar cr $DERIVED_FILE_DIR/libagg.a $DERIVED_FILE_DIR/libagg.o\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D576311048677EA00EA77CD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE5C8314121D81470063E96F /* O2Context_AntiGrain.mm in Sources */, - 494DA9A0145C0C320001E307 /* agg_font_win32_tt.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE08190A1386F94F00C06956 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AppKit-Windows-i386"; - targetProxy = FE0819091386F94F00C06956 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C167EFE841241C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB911B08733D790010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1DDD52171110D9003B3AF8 /* windows-i386-bundle.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .1.0.dll; - GCC_ENABLE_SSE3_EXTENSIONS = YES; - HEADER_SEARCH_PATHS = ( - "$DSTROOT/include", - "$DSTROOT/agg/include/", - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Frameworks/AppKit.framework/Resources; - LIBRARY_SEARCH_PATHS = ( - "$DSTROOT/agg", - "$(DERIVED_FILE_DIR)", - "\"$(DEVELOPER_DIR)/Cocotron/1.0/PlatformInterfaces/i386-mingw32msvc/lib\"", - ); - OTHER_CFLAGS = ( - "-D__SSE2__", - "-D__SSE__", - "-D__LITTLE_ENDIAN__", - ); - OTHER_LDFLAGS = ( - "-static", - "-lagg", - $OTHER_LDFLAGS, - ); - PRODUCT_NAME = O2Context_AntiGrain; - WRAPPER_EXTENSION = cgContext; - }; - name = Debug; - }; - 1DEB911C08733D790010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE1DDD52171110D9003B3AF8 /* windows-i386-bundle.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .1.0.dll; - GCC_ENABLE_SSE3_EXTENSIONS = YES; - HEADER_SEARCH_PATHS = ( - "$DSTROOT/include", - "$DSTROOT/agg/include/", - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Frameworks/AppKit.framework/Resources; - LIBRARY_SEARCH_PATHS = ( - "$DSTROOT/agg", - "$(DERIVED_FILE_DIR)", - "\"$(DEVELOPER_DIR)/Cocotron/1.0/PlatformInterfaces/i386-mingw32msvc/lib\"", - ); - OTHER_CFLAGS = ( - "-D__SSE2__", - "-D__SSE__", - "-D__LITTLE_ENDIAN__", - ); - OTHER_LDFLAGS = ( - "-static", - "-lagg", - $OTHER_LDFLAGS, - ); - PRODUCT_NAME = O2Context_AntiGrain; - WRAPPER_EXTENSION = cgContext; - }; - name = Release; - }; - 1DEB911F08733D790010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_OPTIMIZATION_LEVEL = 0; - }; - name = Debug; - }; - 1DEB912008733D790010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_OPTIMIZATION_LEVEL = 3; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB911A08733D790010E9CD /* Build configuration list for PBXNativeTarget "O2Context_AntiGrain-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB911B08733D790010E9CD /* Debug */, - 1DEB911C08733D790010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB911E08733D790010E9CD /* Build configuration list for PBXProject "O2Context_AntiGrain" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB911F08733D790010E9CD /* Debug */, - 1DEB912008733D790010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/O2Context_AntiGrain/agg_font_cache_manager.h b/O2Context_AntiGrain/agg_font_cache_manager.h deleted file mode 100644 index a230f6fa..00000000 --- a/O2Context_AntiGrain/agg_font_cache_manager.h +++ /dev/null @@ -1,369 +0,0 @@ -//---------------------------------------------------------------------------- -// Anti-Grain Geometry - Version 2.4 -// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) -// -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. -// -//---------------------------------------------------------------------------- -// Contact: mcseem@antigrain.com -// mcseemagg@yahoo.com -// http://www.antigrain.com -//---------------------------------------------------------------------------- - -#ifndef AGG_FONT_CACHE_MANAGER_INCLUDED -#define AGG_FONT_CACHE_MANAGER_INCLUDED - -#include "agg_array.h" -#include - -namespace agg { - -//---------------------------------------------------------glyph_data_type -enum glyph_data_type { - glyph_data_invalid = 0, - glyph_data_mono = 1, - glyph_data_gray8 = 2, - glyph_data_outline = 3 -}; - -//-------------------------------------------------------------glyph_cache -struct glyph_cache { - unsigned glyph_index; - int8u *data; - unsigned data_size; - glyph_data_type data_type; - rect_i bounds; - double advance_x; - double advance_y; -}; - -//--------------------------------------------------------------font_cache -class font_cache { - public: - enum block_size_e { block_size = 16384 - 16 }; - - //-------------------------------------------------------------------- - font_cache() - : m_allocator(block_size), - m_font_signature(0) { - } - - //-------------------------------------------------------------------- - void signature(const char *font_signature) { - m_font_signature = (char *)m_allocator.allocate(strlen(font_signature) + 1); - strcpy(m_font_signature, font_signature); - memset(m_glyphs, 0, sizeof(m_glyphs)); - } - - //-------------------------------------------------------------------- - bool font_is(const char *font_signature) const { - return strcmp(font_signature, m_font_signature) == 0; - } - - //-------------------------------------------------------------------- - const glyph_cache *find_glyph(unsigned glyph_code) const { - unsigned msb = (glyph_code >> 8) & 0xFF; - if(m_glyphs[msb]) { - return m_glyphs[msb][glyph_code & 0xFF]; - } - return 0; - } - - //-------------------------------------------------------------------- - glyph_cache *cache_glyph(unsigned glyph_code, - unsigned glyph_index, - unsigned data_size, - glyph_data_type data_type, - const rect_i &bounds, - double advance_x, - double advance_y) { - unsigned msb = (glyph_code >> 8) & 0xFF; - if(m_glyphs[msb] == 0) { - m_glyphs[msb] = - (glyph_cache **)m_allocator.allocate(sizeof(glyph_cache *) * 256, - sizeof(glyph_cache *)); - memset(m_glyphs[msb], 0, sizeof(glyph_cache *) * 256); - } - - unsigned lsb = glyph_code & 0xFF; - if(m_glyphs[msb][lsb]) - return 0; // Already exists, do not overwrite - - glyph_cache *glyph = - (glyph_cache *)m_allocator.allocate(sizeof(glyph_cache), - sizeof(double)); - - glyph->glyph_index = glyph_index; - glyph->data = m_allocator.allocate(data_size); - glyph->data_size = data_size; - glyph->data_type = data_type; - glyph->bounds = bounds; - glyph->advance_x = advance_x; - glyph->advance_y = advance_y; - return m_glyphs[msb][lsb] = glyph; - } - - private: - block_allocator m_allocator; - glyph_cache **m_glyphs[256]; - char *m_font_signature; -}; - -//---------------------------------------------------------font_cache_pool -class font_cache_pool { - public: - //-------------------------------------------------------------------- - ~font_cache_pool() { - unsigned i; - for(i = 0; i < m_num_fonts; ++i) { - obj_allocator::deallocate(m_fonts[i]); - } - pod_allocator::deallocate(m_fonts, m_max_fonts); - } - - //-------------------------------------------------------------------- - font_cache_pool(unsigned max_fonts = 32) - : m_fonts(pod_allocator::allocate(max_fonts)), - m_max_fonts(max_fonts), - m_num_fonts(0), - m_cur_font(0) { - } - - //-------------------------------------------------------------------- - void font(const char *font_signature, bool reset_cache = false) { - int idx = find_font(font_signature); - if(idx >= 0) { - if(reset_cache) { - obj_allocator::deallocate(m_fonts[idx]); - m_fonts[idx] = obj_allocator::allocate(); - m_fonts[idx]->signature(font_signature); - } - m_cur_font = m_fonts[idx]; - } else { - if(m_num_fonts >= m_max_fonts) { - obj_allocator::deallocate(m_fonts[0]); - memmove(m_fonts, - m_fonts + 1, - (m_max_fonts - 1) * sizeof(font_cache *)); - m_num_fonts = m_max_fonts - 1; - } - m_fonts[m_num_fonts] = obj_allocator::allocate(); - m_fonts[m_num_fonts]->signature(font_signature); - m_cur_font = m_fonts[m_num_fonts]; - ++m_num_fonts; - } - } - - //-------------------------------------------------------------------- - const font_cache *font() const { - return m_cur_font; - } - - //-------------------------------------------------------------------- - const glyph_cache *find_glyph(unsigned glyph_code) const { - if(m_cur_font) - return m_cur_font->find_glyph(glyph_code); - return 0; - } - - //-------------------------------------------------------------------- - glyph_cache *cache_glyph(unsigned glyph_code, - unsigned glyph_index, - unsigned data_size, - glyph_data_type data_type, - const rect_i &bounds, - double advance_x, - double advance_y) { - if(m_cur_font) { - return m_cur_font->cache_glyph(glyph_code, - glyph_index, - data_size, - data_type, - bounds, - advance_x, - advance_y); - } - return 0; - } - - //-------------------------------------------------------------------- - int find_font(const char *font_signature) { - unsigned i; - for(i = 0; i < m_num_fonts; i++) { - if(m_fonts[i]->font_is(font_signature)) - return int(i); - } - return -1; - } - - private: - font_cache **m_fonts; - unsigned m_max_fonts; - unsigned m_num_fonts; - font_cache *m_cur_font; -}; - -//------------------------------------------------------------------------ -enum glyph_rendering { - glyph_ren_native_mono, - glyph_ren_native_gray8, - glyph_ren_outline, - glyph_ren_agg_mono, - glyph_ren_agg_gray8 -}; - -//------------------------------------------------------font_cache_manager -template -class font_cache_manager { - public: - typedef FontEngine font_engine_type; - typedef font_cache_manager self_type; - typedef typename font_engine_type::path_adaptor_type path_adaptor_type; - typedef typename font_engine_type::gray8_adaptor_type gray8_adaptor_type; - typedef typename gray8_adaptor_type::embedded_scanline gray8_scanline_type; - typedef typename font_engine_type::mono_adaptor_type mono_adaptor_type; - typedef typename mono_adaptor_type::embedded_scanline mono_scanline_type; - - //-------------------------------------------------------------------- - font_cache_manager(font_engine_type &engine, unsigned max_fonts = 32) - : m_fonts(max_fonts), - m_engine(engine), - m_change_stamp(-1), - m_prev_glyph(0), - m_last_glyph(0) { - } - - //-------------------------------------------------------------------- - void reset_last_glyph() { - m_prev_glyph = m_last_glyph = 0; - } - - //-------------------------------------------------------------------- - const glyph_cache *glyph(unsigned glyph_code) { - synchronize(); - const glyph_cache *gl = m_fonts.find_glyph(glyph_code); - if(gl) { - m_prev_glyph = m_last_glyph; - return m_last_glyph = gl; - } else { - if(m_engine.prepare_glyph(glyph_code)) { - m_prev_glyph = m_last_glyph; - m_last_glyph = m_fonts.cache_glyph(glyph_code, - m_engine.glyph_index(), - m_engine.data_size(), - m_engine.data_type(), - m_engine.bounds(), - m_engine.advance_x(), - m_engine.advance_y()); - m_engine.write_glyph_to(m_last_glyph->data); - return m_last_glyph; - } - } - return 0; - } - - //-------------------------------------------------------------------- - void init_embedded_adaptors(const glyph_cache *gl, - double x, double y, - double scale = 1.0) { - if(gl) { - switch(gl->data_type) { - default: - return; - case glyph_data_mono: - m_mono_adaptor.init(gl->data, gl->data_size, x, y); - break; - - case glyph_data_gray8: - m_gray8_adaptor.init(gl->data, gl->data_size, x, y); - break; - - case glyph_data_outline: - m_path_adaptor.init(gl->data, gl->data_size, x, y, scale); - break; - } - } - } - - //-------------------------------------------------------------------- - path_adaptor_type &path_adaptor() { - return m_path_adaptor; - } - gray8_adaptor_type &gray8_adaptor() { - return m_gray8_adaptor; - } - gray8_scanline_type &gray8_scanline() { - return m_gray8_scanline; - } - mono_adaptor_type &mono_adaptor() { - return m_mono_adaptor; - } - mono_scanline_type &mono_scanline() { - return m_mono_scanline; - } - - //-------------------------------------------------------------------- - const glyph_cache *perv_glyph() const { - return m_prev_glyph; - } - const glyph_cache *last_glyph() const { - return m_last_glyph; - } - - //-------------------------------------------------------------------- - bool add_kerning(double *x, double *y) { - if(m_prev_glyph && m_last_glyph) { - return m_engine.add_kerning(m_prev_glyph->glyph_index, - m_last_glyph->glyph_index, - x, y); - } - return false; - } - - //-------------------------------------------------------------------- - void precache(unsigned from, unsigned to) { - for(; from <= to; ++from) - glyph(from); - } - - //-------------------------------------------------------------------- - void reset_cache() { - m_fonts.font(m_engine.font_signature(), true); - m_change_stamp = m_engine.change_stamp(); - m_prev_glyph = m_last_glyph = 0; - } - - private: - //-------------------------------------------------------------------- - font_cache_manager(const self_type &); - const self_type &operator=(const self_type &); - - //-------------------------------------------------------------------- - void synchronize() { - if(m_change_stamp != m_engine.change_stamp()) { - m_fonts.font(m_engine.font_signature()); - m_change_stamp = m_engine.change_stamp(); - m_prev_glyph = m_last_glyph = 0; - } - } - - font_cache_pool m_fonts; - font_engine_type &m_engine; - int m_change_stamp; - double m_dx; - double m_dy; - const glyph_cache *m_prev_glyph; - const glyph_cache *m_last_glyph; - path_adaptor_type m_path_adaptor; - gray8_adaptor_type m_gray8_adaptor; - gray8_scanline_type m_gray8_scanline; - mono_adaptor_type m_mono_adaptor; - mono_scanline_type m_mono_scanline; -}; - -} // namespace agg - -#endif diff --git a/O2Context_AntiGrain/agg_font_win32_tt.h b/O2Context_AntiGrain/agg_font_win32_tt.h deleted file mode 100644 index fef6bdcf..00000000 --- a/O2Context_AntiGrain/agg_font_win32_tt.h +++ /dev/null @@ -1,263 +0,0 @@ -//---------------------------------------------------------------------------- -// Anti-Grain Geometry - Version 2.4 -// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) -// -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. -// -//---------------------------------------------------------------------------- -// Contact: mcseem@antigrain.com -// mcseemagg@yahoo.com -// http://www.antigrain.com -//---------------------------------------------------------------------------- - -#ifndef AGG_FONT_WIN32_TT_INCLUDED -#define AGG_FONT_WIN32_TT_INCLUDED - -#include "agg_conv_curve.h" -#include "agg_font_cache_manager.h" -#include "agg_path_storage_integer.h" -#include "agg_rasterizer_scanline_aa.h" -#include "agg_scanline_bin.h" -#include "agg_scanline_storage_aa.h" -#include "agg_scanline_storage_bin.h" -#include "agg_scanline_u.h" -#include "agg_trans_affine.h" -#include - -// Modified for O2Context_AntiGran to match default Cocotron GDI fonts default value -// and to get glyph by glyph index, and not ASCII code - -namespace agg { - -//-----------------------------------------------font_engine_win32_tt_base -class font_engine_win32_tt_base { - enum { buf_size = 32768 - 32 }; - - public: - //-------------------------------------------------------------------- - typedef serialized_scanlines_adaptor_aa gray8_adaptor_type; - typedef serialized_scanlines_adaptor_bin mono_adaptor_type; - typedef scanline_storage_aa8 scanlines_aa_type; - typedef scanline_storage_bin scanlines_bin_type; - - //-------------------------------------------------------------------- - ~font_engine_win32_tt_base(); - font_engine_win32_tt_base(bool flag32, HDC dc, unsigned max_fonts = 32); - - // Set font parameters - //-------------------------------------------------------------------- - void resolution(unsigned dpi) { - m_resolution = unsigned(dpi); - } - void height(double h) { - m_height = unsigned(h); - } - void width(double w) { - m_width = unsigned(w); - } - void weight(int w) { - m_weight = w; - } - void italic(bool it) { - m_italic = it; - } - void char_set(DWORD c) { - m_char_set = c; - } - void pitch_and_family(DWORD p) { - m_pitch_and_family = p; - } - void flip_y(bool flip) { - m_flip_y = flip; - } - void hinting(bool h) { - m_hinting = h; - } - bool create_font(const char *typeface_, glyph_rendering ren_type); - - bool create_font(const char *typeface_, - glyph_rendering ren_type, - double height_, - double width_ = 0.0, - int weight_ = FW_REGULAR, - bool italic_ = false, - DWORD char_set_ = DEFAULT_CHARSET, - DWORD pitch_and_family_ = DEFAULT_PITCH | FF_DONTCARE); - - // Set Gamma - //-------------------------------------------------------------------- - template - void gamma(const GammaF &f) { - m_rasterizer.gamma(f); - } - - //-------------------------------------------------------------------- - void transform(const agg::trans_affine &mtx) { - m_affine = mtx; - } - - // Accessors - //-------------------------------------------------------------------- - unsigned resolution() const { - return m_resolution; - } - const char *typeface() const { - return m_typeface; - } - double height() const { - return m_height; - } - double width() const { - return m_width; - } - int weight() const { - return m_weight; - } - bool italic() const { - return m_italic; - } - DWORD char_set() const { - return m_char_set; - } - DWORD pitch_and_family() const { - return m_pitch_and_family; - } - bool hinting() const { - return m_hinting; - } - bool flip_y() const { - return m_flip_y; - } - - // Interface mandatory to implement for font_cache_manager - //-------------------------------------------------------------------- - const char *font_signature() const { - return m_signature; - } - int change_stamp() const { - return m_change_stamp; - } - - bool prepare_glyph(unsigned glyph_code); - unsigned glyph_index() const { - return m_glyph_index; - } - unsigned data_size() const { - return m_data_size; - } - glyph_data_type data_type() const { - return m_data_type; - } - const rect_i &bounds() const { - return m_bounds; - } - double advance_x() const { - return m_advance_x; - } - double advance_y() const { - return m_advance_y; - } - void write_glyph_to(int8u *data) const; - bool add_kerning(unsigned first, unsigned second, - double *x, double *y); - - private: - font_engine_win32_tt_base(const font_engine_win32_tt_base &); - const font_engine_win32_tt_base &operator=(const font_engine_win32_tt_base &); - - void update_signature(); - void load_kerning_pairs(); - void sort_kerning_pairs(); - int find_font(const char *name) const; - - bool m_flag32; - HDC m_dc; - HFONT m_old_font; - HFONT *m_fonts; - unsigned m_num_fonts; - unsigned m_max_fonts; - char **m_font_names; - HFONT m_cur_font; - - int m_change_stamp; - char *m_typeface; - unsigned m_typeface_len; - char *m_signature; - unsigned m_height; - unsigned m_width; - int m_weight; - bool m_italic; - DWORD m_char_set; - DWORD m_pitch_and_family; - bool m_hinting; - bool m_flip_y; - - bool m_font_created; - unsigned m_resolution; - glyph_rendering m_glyph_rendering; - unsigned m_glyph_index; - unsigned m_data_size; - glyph_data_type m_data_type; - rect_i m_bounds; - double m_advance_x; - double m_advance_y; - MAT2 m_matrix; - char *m_gbuf; - KERNINGPAIR *m_kerning_pairs; - unsigned m_num_kerning_pairs; - unsigned m_max_kerning_pairs; - trans_affine m_affine; - - path_storage_integer m_path16; - path_storage_integer m_path32; - conv_curve> m_curves16; - conv_curve> m_curves32; - scanline_u8 m_scanline_aa; - scanline_bin m_scanline_bin; - scanlines_aa_type m_scanlines_aa; - scanlines_bin_type m_scanlines_bin; - rasterizer_scanline_aa<> m_rasterizer; -}; - -//------------------------------------------------font_engine_win32_tt_int16 -// This class uses values of type int16 (10.6 format) for the vector cache. -// The vector cache is compact, but when rendering glyphs of height -// more that 200 there integer overflow can occur. -// -class font_engine_win32_tt_int16 : public font_engine_win32_tt_base { - public: - typedef serialized_integer_path_adaptor path_adaptor_type; - typedef font_engine_win32_tt_base::gray8_adaptor_type gray8_adaptor_type; - typedef font_engine_win32_tt_base::mono_adaptor_type mono_adaptor_type; - typedef font_engine_win32_tt_base::scanlines_aa_type scanlines_aa_type; - typedef font_engine_win32_tt_base::scanlines_bin_type scanlines_bin_type; - - font_engine_win32_tt_int16(HDC dc, unsigned max_fonts = 32) - : font_engine_win32_tt_base(false, dc, max_fonts) { - } -}; - -//------------------------------------------------font_engine_win32_tt_int32 -// This class uses values of type int32 (26.6 format) for the vector cache. -// The vector cache is twice larger than in font_engine_win32_tt_int16, -// but it allows you to render glyphs of very large sizes. -// -class font_engine_win32_tt_int32 : public font_engine_win32_tt_base { - public: - typedef serialized_integer_path_adaptor path_adaptor_type; - typedef font_engine_win32_tt_base::gray8_adaptor_type gray8_adaptor_type; - typedef font_engine_win32_tt_base::mono_adaptor_type mono_adaptor_type; - typedef font_engine_win32_tt_base::scanlines_aa_type scanlines_aa_type; - typedef font_engine_win32_tt_base::scanlines_bin_type scanlines_bin_type; - - font_engine_win32_tt_int32(HDC dc, unsigned max_fonts = 32) - : font_engine_win32_tt_base(true, dc, max_fonts) { - } -}; - -} // namespace agg - -#endif diff --git a/O2Context_AntiGrain/agg_font_win32_tt.mm b/O2Context_AntiGrain/agg_font_win32_tt.mm deleted file mode 100644 index 1fd5b3bb..00000000 --- a/O2Context_AntiGrain/agg_font_win32_tt.mm +++ /dev/null @@ -1,745 +0,0 @@ -//---------------------------------------------------------------------------- -// Anti-Grain Geometry - Version 2.4 -// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) -// -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. -// -//---------------------------------------------------------------------------- -// Contact: mcseem@antigrain.com -// mcseemagg@yahoo.com -// http://www.antigrain.com -//---------------------------------------------------------------------------- - -#include "agg_font_win32_tt.h" -#include "agg_bitset_iterator.h" -#include "agg_renderer_scanline.h" -#include - -// Modified for O2Context_AntiGran to match default Cocotron GDI fonts default -// value and to get glyph by glyph index, and not ASCII code - -#ifdef AGG_WIN9X_COMPLIANT -#define GetGlyphOutlineX GetGlyphOutline -#else -#define GetGlyphOutlineX GetGlyphOutlineW -#endif - -#ifndef CLEARTYPE_QUALITY -#define CLEARTYPE_QUALITY 5 -#endif -#ifndef CLEARTYPE_NATURAL_QUALITY -#define CLEARTYPE_NATURAL_QUALITY 6 -#endif - -namespace agg { - -//------------------------------------------------------------------------------ -// -// This code implements the AUTODIN II polynomial -// The variable corresponding to the macro argument "crc" should -// be an unsigned long. -// Oroginal code by Spencer Garrett -// - -// generated using the AUTODIN II polynomial -// x^32 + x^26 + x^23 + x^22 + x^16 + -// x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1 -// -//------------------------------------------------------------------------------ - -static const unsigned crc32tab[256] = { - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, - 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, - 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, - 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, - 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, - 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, - 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, - 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, - 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, - 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, - 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, - 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, - 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, - 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, - 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, - 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, - 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, - 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, - 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, - 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, - 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, - 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, -}; - -//------------------------------------------------------------------------------ -static unsigned calc_crc32(const unsigned char *buf, unsigned size) { - unsigned crc = (unsigned) ~0; - const unsigned char *p; - unsigned len = 0; - unsigned nr = size; - - for (len += nr, p = buf; nr--; ++p) { - crc = (crc >> 8) ^ crc32tab[(crc ^ *p) & 0xff]; - } - return ~crc; -} - -//------------------------------------------------------------------------ -static inline FIXED dbl_to_fx(double d) { - int l; - l = int(d * 65536.0); - return *(FIXED *) &l; -} - -//------------------------------------------------------------------------ -static inline int dbl_to_plain_fx(double d) { - return int(d * 65536.0); -} - -//------------------------------------------------------------------------ -static inline FIXED negate_fx(const FIXED &fx) { - int l = -(*(int *) (&fx)); - return *(FIXED *) &l; -} - -//------------------------------------------------------------------------ -static inline double fx_to_dbl(const FIXED &p) { - return double(p.value) + double(p.fract) * (1.0 / 65536.0); -} - -//------------------------------------------------------------------------ -static inline int fx_to_plain_int(const FIXED &fx) { - return *(int *) (&fx); -} - -//------------------------------------------------------------------------ -static inline int fx_to_int26p6(const FIXED &p) { - return (int(p.value) << 6) + (int(p.fract) >> 10); -} - -//------------------------------------------------------------------------ -static inline int dbl_to_int26p6(double p) { - return int(p * 64.0 + 0.5); -} - -//------------------------------------------------------------------------ -template -void decompose_win32_glyph_bitmap_mono(const char *gbuf, int w, int h, int x, - int y, bool flip_y, Scanline &sl, - ScanlineStorage &storage) -{ - int i; - int pitch = ((w + 31) >> 5) << 2; - const int8u *buf = (const int8u *) gbuf; - sl.reset(x, x + w); - storage.prepare(); - if (flip_y) { - buf += pitch * (h - 1); - y += h; - pitch = -pitch; - } - for (i = 0; i < h; i++) { - sl.reset_spans(); - bitset_iterator bits(buf, 0); - int j; - for (j = 0; j < w; j++) { - if (bits.bit()) - sl.add_cell(x + j, cover_full); - ++bits; - } - buf += pitch; - if (sl.num_spans()) { - sl.finalize(y - i - 1); - storage.render(sl); - } - } -} - -//------------------------------------------------------------------------ -template -void decompose_win32_glyph_bitmap_gray8(const char *gbuf, int w, int h, int x, - int y, bool flip_y, Rasterizer &ras, - Scanline &sl, ScanlineStorage &storage) -{ - int i, j; - int pitch = ((w + 3) >> 2) << 2; - const int8u *buf = (const int8u *) gbuf; - sl.reset(x, x + w); - storage.prepare(); - if (flip_y) { - buf += pitch * (h - 1); - y += h; - pitch = -pitch; - } - for (i = 0; i < h; i++) { - sl.reset_spans(); - const int8u *p = buf; - for (j = 0; j < w; j++) { - if (*p) { - unsigned v = *p; - if (v == 64) - v = 255; - else - v <<= 2; - sl.add_cell(x + j, ras.apply_gamma(v)); - } - ++p; - } - buf += pitch; - if (sl.num_spans()) { - sl.finalize(y - i - 1); - storage.render(sl); - } - } -} - -//------------------------------------------------------------------------ -template -bool decompose_win32_glyph_outline(const char *gbuf, unsigned total_size, - bool flip_y, const trans_affine &mtx, - PathStorage &path) -{ - const char *cur_glyph = gbuf; - const char *end_glyph = gbuf + total_size; - double x, y; - typedef typename PathStorage::value_type value_type; - - while (cur_glyph < end_glyph) { - const TTPOLYGONHEADER *th = (TTPOLYGONHEADER *) cur_glyph; - - const char *end_poly = cur_glyph + th->cb; - const char *cur_poly = cur_glyph + sizeof(TTPOLYGONHEADER); - - x = fx_to_dbl(th->pfxStart.x); - y = fx_to_dbl(th->pfxStart.y); - if (flip_y) - y = -y; - mtx.transform(&x, &y); - path.move_to(value_type(dbl_to_int26p6(x)), - value_type(dbl_to_int26p6(y))); - - while (cur_poly < end_poly) { - const TTPOLYCURVE *pc = (const TTPOLYCURVE *) cur_poly; - - if (pc->wType == TT_PRIM_LINE) { - int i; - for (i = 0; i < pc->cpfx; i++) { - x = fx_to_dbl(pc->apfx[i].x); - y = fx_to_dbl(pc->apfx[i].y); - if (flip_y) - y = -y; - mtx.transform(&x, &y); - path.line_to(value_type(dbl_to_int26p6(x)), - value_type(dbl_to_int26p6(y))); - } - } - - if (pc->wType == TT_PRIM_QSPLINE) { - int u; - for (u = 0; u < pc->cpfx - 1; - u++) // Walk through points in spline - { - POINTFX pnt_b = - pc->apfx[u]; // B is always the current point - POINTFX pnt_c = pc->apfx[u + 1]; - - if (u < pc->cpfx - 2) // If not on last spline, compute C - { - // midpoint (x,y) - *(int *) &pnt_c.x = - (*(int *) &pnt_b.x + *(int *) &pnt_c.x) / 2; - *(int *) &pnt_c.y = - (*(int *) &pnt_b.y + *(int *) &pnt_c.y) / 2; - } - - double x2, y2; - x = fx_to_dbl(pnt_b.x); - y = fx_to_dbl(pnt_b.y); - x2 = fx_to_dbl(pnt_c.x); - y2 = fx_to_dbl(pnt_c.y); - if (flip_y) { - y = -y; - y2 = -y2; - } - mtx.transform(&x, &y); - mtx.transform(&x2, &y2); - path.curve3(value_type(dbl_to_int26p6(x)), - value_type(dbl_to_int26p6(y)), - value_type(dbl_to_int26p6(x2)), - value_type(dbl_to_int26p6(y2))); - } - } - cur_poly += sizeof(WORD) * 2 + sizeof(POINTFX) * pc->cpfx; - } - cur_glyph += th->cb; - } - return true; -} - -//------------------------------------------------------------------------ -font_engine_win32_tt_base::~font_engine_win32_tt_base() { - delete[] m_kerning_pairs; - delete[] m_gbuf; - delete[] m_signature; - delete[] m_typeface; - if (m_dc && m_old_font) - ::SelectObject(m_dc, m_old_font); - unsigned i; - for (i = 0; i < m_num_fonts; ++i) { - delete[] m_font_names[i]; - ::DeleteObject(m_fonts[i]); - } - delete[] m_font_names; - delete[] m_fonts; -} - -//------------------------------------------------------------------------ -font_engine_win32_tt_base::font_engine_win32_tt_base(bool flag32, HDC dc, - unsigned max_fonts) - : m_flag32(flag32), m_dc(dc), - m_old_font(m_dc ? (HFONT)::GetCurrentObject(m_dc, OBJ_FONT) : 0), - m_fonts(new HFONT[max_fonts]), m_num_fonts(0), m_max_fonts(max_fonts), - m_font_names(new char *[max_fonts]), m_cur_font(0), - - m_change_stamp(0), m_typeface(new char[256 - 16]), - m_typeface_len(256 - 16 - 1), m_signature(new char[256 + 256 - 16]), - m_height(0), m_width(0), m_weight(FW_REGULAR), m_italic(false), - m_char_set(DEFAULT_CHARSET), - m_pitch_and_family(DEFAULT_PITCH | FF_DONTCARE), m_hinting(true), - m_flip_y(false), m_font_created(false), m_resolution(0), - m_glyph_rendering(glyph_ren_native_gray8), m_glyph_index(0), - m_data_size(0), m_data_type(glyph_data_invalid), m_bounds(1, 1, 0, 0), - m_advance_x(0.0), m_advance_y(0.0), m_gbuf(new char[buf_size]), - m_kerning_pairs(0), m_num_kerning_pairs(0), m_max_kerning_pairs(0), - - m_path16(), m_path32(), m_curves16(m_path16), m_curves32(m_path32), - m_scanline_aa(), m_scanline_bin(), m_scanlines_aa(), m_scanlines_bin(), - m_rasterizer() -{ - m_curves16.approximation_scale(4.0); - m_curves32.approximation_scale(4.0); - memset(&m_matrix, 0, sizeof(m_matrix)); - m_matrix.eM11.value = 1; - m_matrix.eM22.value = 1; -} - -//------------------------------------------------------------------------ -int font_engine_win32_tt_base::find_font(const char *name) const { - unsigned i; - for (i = 0; i < m_num_fonts; ++i) { - if (strcmp(name, m_font_names[i]) == 0) - return i; - } - return -1; -} - -//------------------------------------------------------------------------ -bool font_engine_win32_tt_base::create_font(const char *typeface_, - glyph_rendering ren_type) -{ - if (m_dc) { - unsigned len = strlen(typeface_); - if (len > m_typeface_len) { - delete[] m_signature; - delete[] m_typeface; - m_typeface = new char[len + 32]; - m_signature = new char[len + 32 + 256]; - m_typeface_len = len + 32 - 1; - } - - strcpy(m_typeface, typeface_); - - int h = m_height; - int w = m_width; - - if (m_resolution) { - h = ::MulDiv(m_height, m_resolution, 72); - w = ::MulDiv(m_width, m_resolution, 72); - } - - m_glyph_rendering = ren_type; - update_signature(); - int idx = find_font(m_signature); - if (idx >= 0) { - m_cur_font = m_fonts[idx]; - ::SelectObject(m_dc, m_cur_font); - m_num_kerning_pairs = 0; - return true; - } else { - m_cur_font = ::CreateFont(-h, // height of font - w, // average character width - 0, // angle of escapement - 0, // base-line orientation angle - m_weight, // font weight - m_italic, // italic attribute option - 0, // underline attribute option - 0, // strikeout attribute option - m_char_set, // character set identifier - OUT_TT_PRECIS, // output precision - CLIP_DEFAULT_PRECIS, // clipping precision - CLEARTYPE_QUALITY, // output quality - m_pitch_and_family, // pitch and family - m_typeface); // typeface name - if (m_cur_font) { - if (m_num_fonts >= m_max_fonts) { - delete[] m_font_names[0]; - if (m_old_font) - ::SelectObject(m_dc, m_old_font); - ::DeleteObject(m_fonts[0]); - memmove(m_fonts, m_fonts + 1, - (m_max_fonts - 1) * sizeof(HFONT)); - memmove(m_font_names, m_font_names + 1, - (m_max_fonts - 1) * sizeof(char *)); - m_num_fonts = m_max_fonts - 1; - } - - update_signature(); - m_font_names[m_num_fonts] = new char[strlen(m_signature) + 1]; - strcpy(m_font_names[m_num_fonts], m_signature); - m_fonts[m_num_fonts] = m_cur_font; - ++m_num_fonts; - ::SelectObject(m_dc, m_cur_font); - m_num_kerning_pairs = 0; - return true; - } - } - } - return false; -} - -//------------------------------------------------------------------------ -bool font_engine_win32_tt_base::create_font(const char *typeface_, - glyph_rendering ren_type, - double height_, double width_, - int weight_, bool italic_, - DWORD char_set_, - DWORD pitch_and_family_) -{ - height(height_); - width(width_); - weight(weight_); - italic(italic_); - char_set(char_set_); - pitch_and_family(pitch_and_family_); - return create_font(typeface_, ren_type); -} - -//------------------------------------------------------------------------ -void font_engine_win32_tt_base::update_signature() { - m_signature[0] = 0; - if (m_dc && m_cur_font) { - unsigned gamma_hash = 0; - if (m_glyph_rendering == glyph_ren_native_gray8 || - m_glyph_rendering == glyph_ren_agg_mono || - m_glyph_rendering == glyph_ren_agg_gray8) { - unsigned char gamma_table[rasterizer_scanline_aa<>::aa_scale]; - unsigned i; - for (i = 0; i < rasterizer_scanline_aa<>::aa_scale; ++i) { - gamma_table[i] = m_rasterizer.apply_gamma(i); - } - gamma_hash = calc_crc32(gamma_table, sizeof(gamma_table)); - } - - sprintf(m_signature, "%s,%u,%d,%d:%dx%d,%d,%d,%d,%d,%d,%08X", - m_typeface, m_char_set, int(m_glyph_rendering), m_resolution, - m_height, m_width, m_weight, int(m_italic), int(m_hinting), - int(m_flip_y), int(m_pitch_and_family), gamma_hash); - - if (m_glyph_rendering == glyph_ren_outline || - m_glyph_rendering == glyph_ren_agg_mono || - m_glyph_rendering == glyph_ren_agg_gray8) { - double mtx[6]; - char buf[100]; - m_affine.store_to(mtx); - sprintf(buf, ",%08X%08X%08X%08X%08X%08X", dbl_to_plain_fx(mtx[0]), - dbl_to_plain_fx(mtx[1]), dbl_to_plain_fx(mtx[2]), - dbl_to_plain_fx(mtx[3]), dbl_to_plain_fx(mtx[4]), - dbl_to_plain_fx(mtx[5])); - strcat(m_signature, buf); - } - ++m_change_stamp; - } -} - -//------------------------------------------------------------------------ -bool font_engine_win32_tt_base::prepare_glyph(unsigned glyph_code) { - if (m_dc && m_cur_font) { - int format = GGO_BITMAP | GGO_GLYPH_INDEX; - - switch (m_glyph_rendering) { - case glyph_ren_native_gray8: - format = GGO_GRAY8_BITMAP | GGO_GLYPH_INDEX; - break; - - case glyph_ren_outline: - case glyph_ren_agg_mono: - case glyph_ren_agg_gray8: - format = GGO_NATIVE | GGO_GLYPH_INDEX; - break; - } - -#ifndef GGO_UNHINTED // For compatibility with old SDKs. -#define GGO_UNHINTED 0x0100 -#endif - if (!m_hinting) - format |= GGO_UNHINTED; - - GLYPHMETRICS gm; - int total_size = GetGlyphOutlineX(m_dc, glyph_code, format, &gm, - buf_size, (void *) m_gbuf, &m_matrix); - - if (total_size < 0) { - // GetGlyphOutline() fails when being called for - // GGO_GRAY8_BITMAP and white space (stupid Microsoft). - // It doesn't even initialize the glyph metrics - // structure. So, we have to query the metrics - // separately (basically we need gmCellIncX). - int total_size = GetGlyphOutlineX( - m_dc, glyph_code, GGO_METRICS | GGO_GLYPH_INDEX, &gm, - buf_size, (void *) m_gbuf, &m_matrix); - - if (total_size < 0) - return false; - gm.gmBlackBoxX = gm.gmBlackBoxY = 0; - total_size = 0; - } - - m_glyph_index = glyph_code; - m_advance_x = gm.gmCellIncX; - m_advance_y = -gm.gmCellIncY; - - switch (m_glyph_rendering) { - case glyph_ren_native_mono: - decompose_win32_glyph_bitmap_mono( - m_gbuf, gm.gmBlackBoxX, gm.gmBlackBoxY, - gm.gmptGlyphOrigin.x, - m_flip_y ? -gm.gmptGlyphOrigin.y : gm.gmptGlyphOrigin.y, - m_flip_y, m_scanline_bin, m_scanlines_bin); - m_bounds.x1 = m_scanlines_bin.min_x(); - m_bounds.y1 = m_scanlines_bin.min_y(); - m_bounds.x2 = m_scanlines_bin.max_x() + 1; - m_bounds.y2 = m_scanlines_bin.max_y() + 1; - m_data_size = m_scanlines_bin.byte_size(); - m_data_type = glyph_data_mono; - return true; - - case glyph_ren_native_gray8: - decompose_win32_glyph_bitmap_gray8( - m_gbuf, gm.gmBlackBoxX, gm.gmBlackBoxY, - gm.gmptGlyphOrigin.x, - m_flip_y ? -gm.gmptGlyphOrigin.y : gm.gmptGlyphOrigin.y, - m_flip_y, m_rasterizer, m_scanline_aa, m_scanlines_aa); - m_bounds.x1 = m_scanlines_aa.min_x(); - m_bounds.y1 = m_scanlines_aa.min_y(); - m_bounds.x2 = m_scanlines_aa.max_x() + 1; - m_bounds.y2 = m_scanlines_aa.max_y() + 1; - m_data_size = m_scanlines_aa.byte_size(); - m_data_type = glyph_data_gray8; - return true; - - case glyph_ren_outline: - m_affine.transform(&m_advance_x, &m_advance_y); - if (m_flag32) { - m_path32.remove_all(); - if (decompose_win32_glyph_outline(m_gbuf, total_size, m_flip_y, - m_affine, m_path32)) { - rect_d bnd = m_path32.bounding_rect(); - m_data_size = m_path32.byte_size(); - m_data_type = glyph_data_outline; - m_bounds.x1 = int(floor(bnd.x1)); - m_bounds.y1 = int(floor(bnd.y1)); - m_bounds.x2 = int(ceil(bnd.x2)); - m_bounds.y2 = int(ceil(bnd.y2)); - return true; - } - } else { - m_path16.remove_all(); - if (decompose_win32_glyph_outline(m_gbuf, total_size, m_flip_y, - m_affine, m_path16)) { - rect_d bnd = m_path16.bounding_rect(); - m_data_size = m_path16.byte_size(); - m_data_type = glyph_data_outline; - m_bounds.x1 = int(floor(bnd.x1)); - m_bounds.y1 = int(floor(bnd.y1)); - m_bounds.x2 = int(ceil(bnd.x2)); - m_bounds.y2 = int(ceil(bnd.y2)); - return true; - } - } - break; - - case glyph_ren_agg_mono: - m_rasterizer.reset(); - m_affine.transform(&m_advance_x, &m_advance_y); - if (m_flag32) { - m_path32.remove_all(); - decompose_win32_glyph_outline(m_gbuf, total_size, m_flip_y, - m_affine, m_path32); - m_rasterizer.add_path(m_curves32); - } else { - m_path16.remove_all(); - decompose_win32_glyph_outline(m_gbuf, total_size, m_flip_y, - m_affine, m_path16); - m_rasterizer.add_path(m_curves16); - } - m_scanlines_bin.prepare(); // Remove all - render_scanlines(m_rasterizer, m_scanline_bin, m_scanlines_bin); - m_bounds.x1 = m_scanlines_bin.min_x(); - m_bounds.y1 = m_scanlines_bin.min_y(); - m_bounds.x2 = m_scanlines_bin.max_x() + 1; - m_bounds.y2 = m_scanlines_bin.max_y() + 1; - m_data_size = m_scanlines_bin.byte_size(); - m_data_type = glyph_data_mono; - return true; - - case glyph_ren_agg_gray8: - m_rasterizer.reset(); - m_affine.transform(&m_advance_x, &m_advance_y); - if (m_flag32) { - m_path32.remove_all(); - decompose_win32_glyph_outline(m_gbuf, total_size, m_flip_y, - m_affine, m_path32); - m_rasterizer.add_path(m_curves32); - } else { - m_path16.remove_all(); - decompose_win32_glyph_outline(m_gbuf, total_size, m_flip_y, - m_affine, m_path16); - m_rasterizer.add_path(m_curves16); - } - m_scanlines_aa.prepare(); // Remove all - render_scanlines(m_rasterizer, m_scanline_aa, m_scanlines_aa); - m_bounds.x1 = m_scanlines_aa.min_x(); - m_bounds.y1 = m_scanlines_aa.min_y(); - m_bounds.x2 = m_scanlines_aa.max_x() + 1; - m_bounds.y2 = m_scanlines_aa.max_y() + 1; - m_data_size = m_scanlines_aa.byte_size(); - m_data_type = glyph_data_gray8; - return true; - } - } - return false; -} - -//------------------------------------------------------------------------ -void font_engine_win32_tt_base::write_glyph_to(int8u *data) const { - if (data && m_data_size) { - switch (m_data_type) { - case glyph_data_mono: - m_scanlines_bin.serialize(data); - break; - case glyph_data_gray8: - m_scanlines_aa.serialize(data); - break; - case glyph_data_outline: - if (m_flag32) { - m_path32.serialize(data); - } else { - m_path16.serialize(data); - } - break; - } - } -} - -//------------------------------------------------------------------------ -static bool pair_less(const KERNINGPAIR &v1, const KERNINGPAIR &v2) { - if (v1.wFirst != v2.wFirst) - return v1.wFirst < v2.wFirst; - return v1.wSecond < v2.wSecond; -} - -//------------------------------------------------------------------------ -void font_engine_win32_tt_base::sort_kerning_pairs() { - pod_array_adaptor pairs(m_kerning_pairs, m_num_kerning_pairs); - quick_sort(pairs, pair_less); -} - -//------------------------------------------------------------------------ -void font_engine_win32_tt_base::load_kerning_pairs() { - if (m_dc && m_cur_font) { - if (m_kerning_pairs == 0) { - m_kerning_pairs = new KERNINGPAIR[16384 - 16]; - m_max_kerning_pairs = 16384 - 16; - } - m_num_kerning_pairs = - ::GetKerningPairs(m_dc, m_max_kerning_pairs, m_kerning_pairs); - - if (m_num_kerning_pairs) { - // Check to see if the kerning pairs are sorted and - // sort them if they are not. - //---------------- - unsigned i; - for (i = 1; i < m_num_kerning_pairs; ++i) { - if (!pair_less(m_kerning_pairs[i - 1], m_kerning_pairs[i])) { - sort_kerning_pairs(); - break; - } - } - } - } -} - -//------------------------------------------------------------------------ -bool font_engine_win32_tt_base::add_kerning(unsigned first, unsigned second, - double *x, double *y) -{ - if (m_dc && m_cur_font) { - if (m_num_kerning_pairs == 0) { - load_kerning_pairs(); - } - - int end = m_num_kerning_pairs - 1; - int beg = 0; - KERNINGPAIR t; - t.wFirst = (WORD) first; - t.wSecond = (WORD) second; - while (beg <= end) { - int mid = (end + beg) / 2; - if (m_kerning_pairs[mid].wFirst == t.wFirst && - m_kerning_pairs[mid].wSecond == t.wSecond) { - double dx = m_kerning_pairs[mid].iKernAmount; - double dy = 0.0; - if (m_glyph_rendering == glyph_ren_outline || - m_glyph_rendering == glyph_ren_agg_mono || - m_glyph_rendering == glyph_ren_agg_gray8) { - m_affine.transform_2x2(&dx, &dy); - } - *x += dx; - *y += dy; - return true; - } else if (pair_less(t, m_kerning_pairs[mid])) { - end = mid - 1; - } else { - beg = mid + 1; - } - } - return false; - } - return false; -} -} diff --git a/O2Context_AntiGrain/o2agg_pixfmt_rgba.h b/O2Context_AntiGrain/o2agg_pixfmt_rgba.h deleted file mode 100644 index c05a2893..00000000 --- a/O2Context_AntiGrain/o2agg_pixfmt_rgba.h +++ /dev/null @@ -1,2995 +0,0 @@ -//---------------------------------------------------------------------------- -// Anti-Grain Geometry - Version 2.4 -// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) -// -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. -// -//---------------------------------------------------------------------------- -// Contact: mcseem@antigrain.com -// mcseemagg@yahoo.com -// http://www.antigrain.com -//---------------------------------------------------------------------------- -// -// Adaptation for high precision colors has been sponsored by -// Liberty Technology Systems, Inc., visit http://lib-sys.com -// -// Liberty Technology Systems, Inc. is the provider of -// PostScript and PDF technology for software developers. -// -//---------------------------------------------------------------------------- - -// That's the AGG agg_pixfmt_rgba.h file modified for Cocotron use -// - -#ifndef O2AGG_PIXFMT_RGBA_INCLUDED -#define O2AGG_PIXFMT_RGBA_INCLUDED - -#include -#include -#include -#include -#include - -#ifdef __SSE2__ -#include -#endif - -static inline void copy_color_sse(int count, uint32_t *dst, uint32_t color) { - // the compiler seems to do better at that simple loop that any other attempt - while(count--) { - *dst++ = color; - } -} - -static inline void memmove_sse(int count, uint8_t *dst, const uint8_t *src) { - // memmove seems superfast - at least the Mac & the mingw versions - just use that - // memcpy is very slow in gcc 4.3.1/mingw - it's inlined to "REP MOVSB" which is terribly slow on some CPU - // which is totally stupid as memmove is supposed to be less safe than memcpy so has no reason to - // be slower - memmove(dst, src, count); -} - -namespace o2agg { - -using namespace agg; - -static bool SSE2checked = false; -static bool hasSSE2 = false; - -// Supported byte orders for RGB and RGBA pixel formats -//======================================================================= -struct order_rgb { - enum rgb_e { R = 0, - G = 1, - B = 2, - rgb_tag }; -}; //----order_rgb -struct order_bgr { - enum bgr_e { B = 0, - G = 1, - R = 2, - rgb_tag }; -}; //----order_bgr -struct order_rgba { - enum rgba_e { R = 0, - G = 1, - B = 2, - A = 3, - rgba_tag }; -}; //----order_rgba -struct order_argb { - enum argb_e { A = 0, - R = 1, - G = 2, - B = 3, - rgba_tag }; -}; //----order_argb -struct order_abgr { - enum abgr_e { A = 0, - B = 1, - G = 2, - R = 3, - rgba_tag }; -}; //----order_abgr -struct order_bgra { - enum bgra_e { B = 0, - G = 1, - R = 2, - A = 3, - rgba_tag }; -}; //----order_bgra - -typedef agg::rgba rgba; -typedef agg::rgba8 rgba8; - -//=========================================================multiplier_rgba -template -struct multiplier_rgba { - typedef typename ColorT::value_type value_type; - typedef typename ColorT::calc_type calc_type; - - //-------------------------------------------------------------------- - static AGG_INLINE void premultiply(value_type *p) { - calc_type a = p[Order::A]; - if(a < ColorT::base_mask) { - if(a == 0) { - p[Order::R] = p[Order::G] = p[Order::B] = 0; - return; - } - p[Order::R] = value_type((p[Order::R] * a + ColorT::base_mask) >> ColorT::base_shift); - p[Order::G] = value_type((p[Order::G] * a + ColorT::base_mask) >> ColorT::base_shift); - p[Order::B] = value_type((p[Order::B] * a + ColorT::base_mask) >> ColorT::base_shift); - } - } - - //-------------------------------------------------------------------- - static AGG_INLINE void demultiply(value_type *p) { - calc_type a = p[Order::A]; - if(a < ColorT::base_mask) { - if(a == 0) { - p[Order::R] = p[Order::G] = p[Order::B] = 0; - return; - } - calc_type r = (calc_type(p[Order::R]) * ColorT::base_mask) / a; - calc_type g = (calc_type(p[Order::G]) * ColorT::base_mask) / a; - calc_type b = (calc_type(p[Order::B]) * ColorT::base_mask) / a; - p[Order::R] = value_type((r > ColorT::base_mask) ? ColorT::base_mask : r); - p[Order::G] = value_type((g > ColorT::base_mask) ? ColorT::base_mask : g); - p[Order::B] = value_type((b > ColorT::base_mask) ? ColorT::base_mask : b); - } - } -}; - -//=====================================================apply_gamma_dir_rgba -template -class apply_gamma_dir_rgba { - public: - typedef typename ColorT::value_type value_type; - - apply_gamma_dir_rgba(const GammaLut &gamma) - : m_gamma(gamma) { - } - - AGG_INLINE void operator()(value_type *p) { - p[Order::R] = m_gamma.dir(p[Order::R]); - p[Order::G] = m_gamma.dir(p[Order::G]); - p[Order::B] = m_gamma.dir(p[Order::B]); - } - - private: - const GammaLut &m_gamma; -}; - -//=====================================================apply_gamma_inv_rgba -template -class apply_gamma_inv_rgba { - public: - typedef typename ColorT::value_type value_type; - - apply_gamma_inv_rgba(const GammaLut &gamma) - : m_gamma(gamma) { - } - - AGG_INLINE void operator()(value_type *p) { - p[Order::R] = m_gamma.inv(p[Order::R]); - p[Order::G] = m_gamma.inv(p[Order::G]); - p[Order::B] = m_gamma.inv(p[Order::B]); - } - - private: - const GammaLut &m_gamma; -}; - -//=============================================================blender_rgba -template -struct blender_rgba { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - //-------------------------------------------------------------------- - static AGG_INLINE void blend_pix(value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned alpha, - unsigned cover = 0) { - calc_type r = p[Order::R]; - calc_type g = p[Order::G]; - calc_type b = p[Order::B]; - calc_type a = p[Order::A]; - p[Order::R] = (value_type)(((cr - r) * alpha + (r << base_shift)) >> base_shift); - p[Order::G] = (value_type)(((cg - g) * alpha + (g << base_shift)) >> base_shift); - p[Order::B] = (value_type)(((cb - b) * alpha + (b << base_shift)) >> base_shift); - p[Order::A] = (value_type)((alpha + a) - ((alpha * a + base_mask) >> base_shift)); - } -}; - -//=========================================================blender_rgba_pre -template -struct blender_rgba_pre { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - //-------------------------------------------------------------------- - static AGG_INLINE void blend_pix(value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned alpha, - unsigned cover) { - alpha = color_type::base_mask - alpha; - cover = (cover + 1) << (base_shift - 8); - p[Order::R] = (value_type)((p[Order::R] * alpha + cr * cover) >> base_shift); - p[Order::G] = (value_type)((p[Order::G] * alpha + cg * cover) >> base_shift); - p[Order::B] = (value_type)((p[Order::B] * alpha + cb * cover) >> base_shift); - p[Order::A] = (value_type)(base_mask - ((alpha * (base_mask - p[Order::A])) >> base_shift)); - } - - //-------------------------------------------------------------------- - static AGG_INLINE void blend_pix(value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned alpha) { - alpha = color_type::base_mask - alpha; - p[Order::R] = (value_type)(((p[Order::R] * alpha) >> base_shift) + cr); - p[Order::G] = (value_type)(((p[Order::G] * alpha) >> base_shift) + cg); - p[Order::B] = (value_type)(((p[Order::B] * alpha) >> base_shift) + cb); - p[Order::A] = (value_type)(base_mask - ((alpha * (base_mask - p[Order::A])) >> base_shift)); - } -}; - -//======================================================blender_rgba_plain -template -struct blender_rgba_plain { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { base_shift = color_type::base_shift }; - - //-------------------------------------------------------------------- - static AGG_INLINE void blend_pix(value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned alpha, - unsigned cover = 0) { - if(alpha == 0) - return; - calc_type a = p[Order::A]; - calc_type r = p[Order::R] * a; - calc_type g = p[Order::G] * a; - calc_type b = p[Order::B] * a; - a = ((alpha + a) << base_shift) - alpha * a; - p[Order::A] = (value_type)(a >> base_shift); - p[Order::R] = (value_type)((((cr << base_shift) - r) * alpha + (r << base_shift)) / a); - p[Order::G] = (value_type)((((cg << base_shift) - g) * alpha + (g << base_shift)) / a); - p[Order::B] = (value_type)((((cb << base_shift) - b) * alpha + (b << base_shift)) / a); - } -}; - -//=========================================================comp_op_rgba_clear -template -struct comp_op_rgba_clear { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(value_type *p, - unsigned, unsigned, unsigned, unsigned, - unsigned cover) { - if(cover < 255) { - cover = 255 - cover; - p[Order::R] = (value_type)((p[Order::R] * cover + 255) >> 8); - p[Order::G] = (value_type)((p[Order::G] * cover + 255) >> 8); - p[Order::B] = (value_type)((p[Order::B] * cover + 255) >> 8); - p[Order::A] = (value_type)((p[Order::A] * cover + 255) >> 8); - } else { - p[0] = p[1] = p[2] = p[3] = 0; - } - } -}; - -//===========================================================comp_op_rgba_src -template -struct comp_op_rgba_src { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover == 0) { - return; - } - if(cover < 255) { - unsigned alpha = 255 - cover; - p[Order::R] = (value_type)(((p[Order::R] * alpha + 255) >> 8) + ((sr * cover + 255) >> 8)); - p[Order::G] = (value_type)(((p[Order::G] * alpha + 255) >> 8) + ((sg * cover + 255) >> 8)); - p[Order::B] = (value_type)(((p[Order::B] * alpha + 255) >> 8) + ((sb * cover + 255) >> 8)); - p[Order::A] = (value_type)(((p[Order::A] * alpha + 255) >> 8) + ((sa * cover + 255) >> 8)); - } else { - p[Order::R] = sr; - p[Order::G] = sg; - p[Order::B] = sb; - p[Order::A] = sa; - } - } -}; - -//===========================================================comp_op_rgba_dst -template -struct comp_op_rgba_dst { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - - static AGG_INLINE void blend_pix(value_type *, - unsigned, unsigned, unsigned, - unsigned, unsigned) { - } -}; - -//======================================================comp_op_rgba_src_over -template -struct comp_op_rgba_src_over { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca + Dca.(1 - Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - // Nothing to do if the source is fully transparent - if(sa) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa == base_mask) { - // Just copy the pixel if the source is fully opaque - p[Order::R] = sr; - p[Order::G] = sg; - p[Order::B] = sb; - p[Order::A] = sa; - } else { - calc_type s1a = base_mask - sa; - p[Order::R] = (value_type)(sr + ((p[Order::R] * s1a + base_mask) >> base_shift)); - p[Order::G] = (value_type)(sg + ((p[Order::G] * s1a + base_mask) >> base_shift)); - p[Order::B] = (value_type)(sb + ((p[Order::B] * s1a + base_mask) >> base_shift)); - p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift)); - } - } - } -}; - -//======================================================comp_op_rgba_dst_over -template -struct comp_op_rgba_dst_over { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Dca + Sca.(1 - Da) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - calc_type d1a = base_mask - p[Order::A]; - p[Order::R] = (value_type)(p[Order::R] + ((sr * d1a + base_mask) >> base_shift)); - p[Order::G] = (value_type)(p[Order::G] + ((sg * d1a + base_mask) >> base_shift)); - p[Order::B] = (value_type)(p[Order::B] + ((sb * d1a + base_mask) >> base_shift)); - p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift)); - } -}; - -//======================================================comp_op_rgba_src_in -template -struct comp_op_rgba_src_in { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca.Da - // Da' = Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - calc_type da = p[Order::A]; - if(cover < 255) { - unsigned alpha = 255 - cover; - p[Order::R] = (value_type)(((p[Order::R] * alpha + 255) >> 8) + ((((sr * da + base_mask) >> base_shift) * cover + 255) >> 8)); - p[Order::G] = (value_type)(((p[Order::G] * alpha + 255) >> 8) + ((((sg * da + base_mask) >> base_shift) * cover + 255) >> 8)); - p[Order::B] = (value_type)(((p[Order::B] * alpha + 255) >> 8) + ((((sb * da + base_mask) >> base_shift) * cover + 255) >> 8)); - p[Order::A] = (value_type)(((p[Order::A] * alpha + 255) >> 8) + ((((sa * da + base_mask) >> base_shift) * cover + 255) >> 8)); - } else { - p[Order::R] = (value_type)((sr * da + base_mask) >> base_shift); - p[Order::G] = (value_type)((sg * da + base_mask) >> base_shift); - p[Order::B] = (value_type)((sb * da + base_mask) >> base_shift); - p[Order::A] = (value_type)((sa * da + base_mask) >> base_shift); - } - } -}; - -//======================================================comp_op_rgba_dst_in -template -struct comp_op_rgba_dst_in { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Dca.Sa - // Da' = Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned, unsigned, unsigned, - unsigned sa, unsigned cover) { - if(cover < 255) { - sa = base_mask - ((cover * (base_mask - sa) + 255) >> 8); - } - p[Order::R] = (value_type)((p[Order::R] * sa + base_mask) >> base_shift); - p[Order::G] = (value_type)((p[Order::G] * sa + base_mask) >> base_shift); - p[Order::B] = (value_type)((p[Order::B] * sa + base_mask) >> base_shift); - p[Order::A] = (value_type)((p[Order::A] * sa + base_mask) >> base_shift); - } -}; - -//======================================================comp_op_rgba_src_out -template -struct comp_op_rgba_src_out { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca.(1 - Da) - // Da' = Sa.(1 - Da) - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - calc_type da = base_mask - p[Order::A]; - if(cover < 255) { - unsigned alpha = 255 - cover; - p[Order::R] = (value_type)(((p[Order::R] * alpha + 255) >> 8) + ((((sr * da + base_mask) >> base_shift) * cover + 255) >> 8)); - p[Order::G] = (value_type)(((p[Order::G] * alpha + 255) >> 8) + ((((sg * da + base_mask) >> base_shift) * cover + 255) >> 8)); - p[Order::B] = (value_type)(((p[Order::B] * alpha + 255) >> 8) + ((((sb * da + base_mask) >> base_shift) * cover + 255) >> 8)); - p[Order::A] = (value_type)(((p[Order::A] * alpha + 255) >> 8) + ((((sa * da + base_mask) >> base_shift) * cover + 255) >> 8)); - } else { - p[Order::R] = (value_type)((sr * da + base_mask) >> base_shift); - p[Order::G] = (value_type)((sg * da + base_mask) >> base_shift); - p[Order::B] = (value_type)((sb * da + base_mask) >> base_shift); - p[Order::A] = (value_type)((sa * da + base_mask) >> base_shift); - } - } -}; - -//======================================================comp_op_rgba_dst_out -template -struct comp_op_rgba_dst_out { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Dca.(1 - Sa) - // Da' = Da.(1 - Sa) - static AGG_INLINE void blend_pix(value_type *p, - unsigned, unsigned, unsigned, - unsigned sa, unsigned cover) { - if(cover < 255) { - sa = (sa * cover + 255) >> 8; - } - sa = base_mask - sa; - p[Order::R] = (value_type)((p[Order::R] * sa + base_shift) >> base_shift); - p[Order::G] = (value_type)((p[Order::G] * sa + base_shift) >> base_shift); - p[Order::B] = (value_type)((p[Order::B] * sa + base_shift) >> base_shift); - p[Order::A] = (value_type)((p[Order::A] * sa + base_shift) >> base_shift); - } -}; - -//=====================================================comp_op_rgba_src_atop -template -struct comp_op_rgba_src_atop { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca.Da + Dca.(1 - Sa) - // Da' = Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - calc_type da = p[Order::A]; - sa = base_mask - sa; - p[Order::R] = (value_type)((sr * da + p[Order::R] * sa + base_mask) >> base_shift); - p[Order::G] = (value_type)((sg * da + p[Order::G] * sa + base_mask) >> base_shift); - p[Order::B] = (value_type)((sb * da + p[Order::B] * sa + base_mask) >> base_shift); - } -}; - -//=====================================================comp_op_rgba_dst_atop -template -struct comp_op_rgba_dst_atop { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Dca.Sa + Sca.(1 - Da) - // Da' = Sa - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - calc_type da = base_mask - p[Order::A]; - if(cover < 255) { - unsigned alpha = 255 - cover; - sr = (p[Order::R] * sa + sr * da + base_mask) >> base_shift; - sg = (p[Order::G] * sa + sg * da + base_mask) >> base_shift; - sb = (p[Order::B] * sa + sb * da + base_mask) >> base_shift; - p[Order::R] = (value_type)(((p[Order::R] * alpha + 255) >> 8) + ((sr * cover + 255) >> 8)); - p[Order::G] = (value_type)(((p[Order::G] * alpha + 255) >> 8) + ((sg * cover + 255) >> 8)); - p[Order::B] = (value_type)(((p[Order::B] * alpha + 255) >> 8) + ((sb * cover + 255) >> 8)); - p[Order::A] = (value_type)(((p[Order::A] * alpha + 255) >> 8) + ((sa * cover + 255) >> 8)); - - } else { - p[Order::R] = (value_type)((p[Order::R] * sa + sr * da + base_mask) >> base_shift); - p[Order::G] = (value_type)((p[Order::G] * sa + sg * da + base_mask) >> base_shift); - p[Order::B] = (value_type)((p[Order::B] * sa + sb * da + base_mask) >> base_shift); - p[Order::A] = (value_type)sa; - } - } -}; - -//=========================================================comp_op_rgba_xor -template -struct comp_op_rgba_xor { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca.(1 - Da) + Dca.(1 - Sa) - // Da' = Sa + Da - 2.Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type s1a = base_mask - sa; - calc_type d1a = base_mask - p[Order::A]; - p[Order::R] = (value_type)((p[Order::R] * s1a + sr * d1a + base_mask) >> base_shift); - p[Order::G] = (value_type)((p[Order::G] * s1a + sg * d1a + base_mask) >> base_shift); - p[Order::B] = (value_type)((p[Order::B] * s1a + sb * d1a + base_mask) >> base_shift); - p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask / 2) >> (base_shift - 1))); - } - } -}; - -//=========================================================comp_op_rgba_plus -template -struct comp_op_rgba_plus { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca + Dca - // Da' = Sa + Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type dr = p[Order::R] + sr; - calc_type dg = p[Order::G] + sg; - calc_type db = p[Order::B] + sb; - calc_type da = p[Order::A] + sa; - p[Order::R] = (dr > base_mask) ? (value_type)base_mask : dr; - p[Order::G] = (dg > base_mask) ? (value_type)base_mask : dg; - p[Order::B] = (db > base_mask) ? (value_type)base_mask : db; - p[Order::A] = (da > base_mask) ? (value_type)base_mask : da; - } - } -}; - -//========================================================comp_op_rgba_minus -template -struct comp_op_rgba_minus { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Dca - Sca - // Da' = 1 - (1 - Sa).(1 - Da) - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type dr = p[Order::R] - sr; - calc_type dg = p[Order::G] - sg; - calc_type db = p[Order::B] - sb; - p[Order::R] = (dr > base_mask) ? 0 : dr; - p[Order::G] = (dg > base_mask) ? 0 : dg; - p[Order::B] = (db > base_mask) ? 0 : db; - p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift)); - //p[Order::A] = (value_type)(base_mask - (((base_mask - sa) * (base_mask - p[Order::A]) + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_multiply -template -struct comp_op_rgba_multiply { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca.Dca + Sca.(1 - Da) + Dca.(1 - Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type s1a = base_mask - sa; - calc_type d1a = base_mask - p[Order::A]; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - p[Order::R] = (value_type)((sr * dr + sr * d1a + dr * s1a + base_mask) >> base_shift); - p[Order::G] = (value_type)((sg * dg + sg * d1a + dg * s1a + base_mask) >> base_shift); - p[Order::B] = (value_type)((sb * db + sb * d1a + db * s1a + base_mask) >> base_shift); - p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_screen -template -struct comp_op_rgba_screen { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = Sca + Dca - Sca.Dca - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - p[Order::R] = (value_type)(sr + dr - ((sr * dr + base_mask) >> base_shift)); - p[Order::G] = (value_type)(sg + dg - ((sg * dg + base_mask) >> base_shift)); - p[Order::B] = (value_type)(sb + db - ((sb * db + base_mask) >> base_shift)); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_overlay -template -struct comp_op_rgba_overlay { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // if 2.Dca < Da - // Dca' = 2.Sca.Dca + Sca.(1 - Da) + Dca.(1 - Sa) - // otherwise - // Dca' = Sa.Da - 2.(Da - Dca).(Sa - Sca) + Sca.(1 - Da) + Dca.(1 - Sa) - // - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type d1a = base_mask - p[Order::A]; - calc_type s1a = base_mask - sa; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - calc_type sada = sa * p[Order::A]; - - p[Order::R] = (value_type)(((2 * dr < da) ? 2 * sr * dr + sr * d1a + dr * s1a : sada - 2 * (da - dr) * (sa - sr) + sr * d1a + dr * s1a + base_mask) >> base_shift); - - p[Order::G] = (value_type)(((2 * dg < da) ? 2 * sg * dg + sg * d1a + dg * s1a : sada - 2 * (da - dg) * (sa - sg) + sg * d1a + dg * s1a + base_mask) >> base_shift); - - p[Order::B] = (value_type)(((2 * db < da) ? 2 * sb * db + sb * d1a + db * s1a : sada - 2 * (da - db) * (sa - sb) + sb * d1a + db * s1a + base_mask) >> base_shift); - - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -template -inline T sd_min(T a, T b) { - return (a < b) ? a : b; -} -template -inline T sd_max(T a, T b) { - return (a > b) ? a : b; -} - -//=====================================================comp_op_rgba_darken -template -struct comp_op_rgba_darken { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = min(Sca.Da, Dca.Sa) + Sca.(1 - Da) + Dca.(1 - Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type d1a = base_mask - p[Order::A]; - calc_type s1a = base_mask - sa; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - - p[Order::R] = (value_type)((sd_min(sr * da, dr * sa) + sr * d1a + dr * s1a + base_mask) >> base_shift); - p[Order::G] = (value_type)((sd_min(sg * da, dg * sa) + sg * d1a + dg * s1a + base_mask) >> base_shift); - p[Order::B] = (value_type)((sd_min(sb * da, db * sa) + sb * d1a + db * s1a + base_mask) >> base_shift); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_lighten -template -struct comp_op_rgba_lighten { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = max(Sca.Da, Dca.Sa) + Sca.(1 - Da) + Dca.(1 - Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type d1a = base_mask - p[Order::A]; - calc_type s1a = base_mask - sa; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - - p[Order::R] = (value_type)((sd_max(sr * da, dr * sa) + sr * d1a + dr * s1a + base_mask) >> base_shift); - p[Order::G] = (value_type)((sd_max(sg * da, dg * sa) + sg * d1a + dg * s1a + base_mask) >> base_shift); - p[Order::B] = (value_type)((sd_max(sb * da, db * sa) + sb * d1a + db * s1a + base_mask) >> base_shift); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_color_dodge -template -struct comp_op_rgba_color_dodge { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // if Sca.Da + Dca.Sa >= Sa.Da - // Dca' = Sa.Da + Sca.(1 - Da) + Dca.(1 - Sa) - // otherwise - // Dca' = Dca.Sa/(1-Sca/Sa) + Sca.(1 - Da) + Dca.(1 - Sa) - // - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type d1a = base_mask - p[Order::A]; - calc_type s1a = base_mask - sa; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - long_type drsa = dr * sa; - long_type dgsa = dg * sa; - long_type dbsa = db * sa; - long_type srda = sr * da; - long_type sgda = sg * da; - long_type sbda = sb * da; - long_type sada = sa * da; - - p[Order::R] = (value_type)((srda + drsa >= sada) ? (sada + sr * d1a + dr * s1a + base_mask) >> base_shift : drsa / (base_mask - (sr << base_shift) / sa) + ((sr * d1a + dr * s1a + base_mask) >> base_shift)); - - p[Order::G] = (value_type)((sgda + dgsa >= sada) ? (sada + sg * d1a + dg * s1a + base_mask) >> base_shift : dgsa / (base_mask - (sg << base_shift) / sa) + ((sg * d1a + dg * s1a + base_mask) >> base_shift)); - - p[Order::B] = (value_type)((sbda + dbsa >= sada) ? (sada + sb * d1a + db * s1a + base_mask) >> base_shift : dbsa / (base_mask - (sb << base_shift) / sa) + ((sb * d1a + db * s1a + base_mask) >> base_shift)); - - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_color_burn -template -struct comp_op_rgba_color_burn { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // if Sca.Da + Dca.Sa <= Sa.Da - // Dca' = Sca.(1 - Da) + Dca.(1 - Sa) - // otherwise - // Dca' = Sa.(Sca.Da + Dca.Sa - Sa.Da)/Sca + Sca.(1 - Da) + Dca.(1 - Sa) - // - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type d1a = base_mask - p[Order::A]; - calc_type s1a = base_mask - sa; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - long_type drsa = dr * sa; - long_type dgsa = dg * sa; - long_type dbsa = db * sa; - long_type srda = sr * da; - long_type sgda = sg * da; - long_type sbda = sb * da; - long_type sada = sa * da; - - p[Order::R] = (value_type)(((srda + drsa <= sada) ? sr * d1a + dr * s1a : sa * (srda + drsa - sada) / sr + sr * d1a + dr * s1a + base_mask) >> base_shift); - - p[Order::G] = (value_type)(((sgda + dgsa <= sada) ? sg * d1a + dg * s1a : sa * (sgda + dgsa - sada) / sg + sg * d1a + dg * s1a + base_mask) >> base_shift); - - p[Order::B] = (value_type)(((sbda + dbsa <= sada) ? sb * d1a + db * s1a : sa * (sbda + dbsa - sada) / sb + sb * d1a + db * s1a + base_mask) >> base_shift); - - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_hard_light -template -struct comp_op_rgba_hard_light { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // if 2.Sca < Sa - // Dca' = 2.Sca.Dca + Sca.(1 - Da) + Dca.(1 - Sa) - // otherwise - // Dca' = Sa.Da - 2.(Da - Dca).(Sa - Sca) + Sca.(1 - Da) + Dca.(1 - Sa) - // - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type d1a = base_mask - p[Order::A]; - calc_type s1a = base_mask - sa; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - calc_type sada = sa * da; - - p[Order::R] = (value_type)(((2 * sr < sa) ? 2 * sr * dr + sr * d1a + dr * s1a : sada - 2 * (da - dr) * (sa - sr) + sr * d1a + dr * s1a + base_mask) >> base_shift); - - p[Order::G] = (value_type)(((2 * sg < sa) ? 2 * sg * dg + sg * d1a + dg * s1a : sada - 2 * (da - dg) * (sa - sg) + sg * d1a + dg * s1a + base_mask) >> base_shift); - - p[Order::B] = (value_type)(((2 * sb < sa) ? 2 * sb * db + sb * d1a + db * s1a : sada - 2 * (da - db) * (sa - sb) + sb * d1a + db * s1a + base_mask) >> base_shift); - - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_soft_light -template -struct comp_op_rgba_soft_light { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // if 2.Sca < Sa - // Dca' = Dca.(Sa + (1 - Dca/Da).(2.Sca - Sa)) + Sca.(1 - Da) + Dca.(1 - Sa) - // otherwise if 8.Dca <= Da - // Dca' = Dca.(Sa + (1 - Dca/Da).(2.Sca - Sa).(3 - 8.Dca/Da)) + Sca.(1 - Da) + Dca.(1 - Sa) - // otherwise - // Dca' = (Dca.Sa + ((Dca/Da)^(0.5).Da - Dca).(2.Sca - Sa)) + Sca.(1 - Da) + Dca.(1 - Sa) - // - // Da' = Sa + Da - Sa.Da - - static AGG_INLINE void blend_pix(value_type *p, - unsigned r, unsigned g, unsigned b, - unsigned a, unsigned cover) { - double sr = double(r * cover) / (base_mask * 255); - double sg = double(g * cover) / (base_mask * 255); - double sb = double(b * cover) / (base_mask * 255); - double sa = double(a * cover) / (base_mask * 255); - if(sa > 0) { - double dr = double(p[Order::R]) / base_mask; - double dg = double(p[Order::G]) / base_mask; - double db = double(p[Order::B]) / base_mask; - double da = double(p[Order::A] ? p[Order::A] : 1) / base_mask; - if(cover < 255) { - a = (a * cover + 255) >> 8; - } - - if(2 * sr < sa) - dr = dr * (sa + (1 - dr / da) * (2 * sr - sa)) + sr * (1 - da) + dr * (1 - sa); - else if(8 * dr <= da) - dr = dr * (sa + (1 - dr / da) * (2 * sr - sa) * (3 - 8 * dr / da)) + sr * (1 - da) + dr * (1 - sa); - else - dr = (dr * sa + (sqrt(dr / da) * da - dr) * (2 * sr - sa)) + sr * (1 - da) + dr * (1 - sa); - - if(2 * sg < sa) - dg = dg * (sa + (1 - dg / da) * (2 * sg - sa)) + sg * (1 - da) + dg * (1 - sa); - else if(8 * dg <= da) - dg = dg * (sa + (1 - dg / da) * (2 * sg - sa) * (3 - 8 * dg / da)) + sg * (1 - da) + dg * (1 - sa); - else - dg = (dg * sa + (sqrt(dg / da) * da - dg) * (2 * sg - sa)) + sg * (1 - da) + dg * (1 - sa); - - if(2 * sb < sa) - db = db * (sa + (1 - db / da) * (2 * sb - sa)) + sb * (1 - da) + db * (1 - sa); - else if(8 * db <= da) - db = db * (sa + (1 - db / da) * (2 * sb - sa) * (3 - 8 * db / da)) + sb * (1 - da) + db * (1 - sa); - else - db = (db * sa + (sqrt(db / da) * da - db) * (2 * sb - sa)) + sb * (1 - da) + db * (1 - sa); - - p[Order::R] = (value_type)uround(dr * base_mask); - p[Order::G] = (value_type)uround(dg * base_mask); - p[Order::B] = (value_type)uround(db * base_mask); - p[Order::A] = (value_type)(a + p[Order::A] - ((a * p[Order::A] + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_difference -template -struct comp_op_rgba_difference { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_scale = color_type::base_scale, - base_mask = color_type::base_mask - }; - - // Dca' = Sca + Dca - 2.min(Sca.Da, Dca.Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - p[Order::R] = (value_type)(sr + dr - ((2 * sd_min(sr * da, dr * sa) + base_mask) >> base_shift)); - p[Order::G] = (value_type)(sg + dg - ((2 * sd_min(sg * da, dg * sa) + base_mask) >> base_shift)); - p[Order::B] = (value_type)(sb + db - ((2 * sd_min(sb * da, db * sa) + base_mask) >> base_shift)); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_exclusion -template -struct comp_op_rgba_exclusion { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = (Sca.Da + Dca.Sa - 2.Sca.Dca) + Sca.(1 - Da) + Dca.(1 - Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type d1a = base_mask - p[Order::A]; - calc_type s1a = base_mask - sa; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - p[Order::R] = (value_type)((sr * da + dr * sa - 2 * sr * dr + sr * d1a + dr * s1a + base_mask) >> base_shift); - p[Order::G] = (value_type)((sg * da + dg * sa - 2 * sg * dg + sg * d1a + dg * s1a + base_mask) >> base_shift); - p[Order::B] = (value_type)((sb * da + db * sa - 2 * sb * db + sb * d1a + db * s1a + base_mask) >> base_shift); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=====================================================comp_op_rgba_contrast -template -struct comp_op_rgba_contrast { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - long_type dr = p[Order::R]; - long_type dg = p[Order::G]; - long_type db = p[Order::B]; - int da = p[Order::A]; - long_type d2a = da >> 1; - unsigned s2a = sa >> 1; - - int r = (int)((((dr - d2a) * int((sr - s2a) * 2 + base_mask)) >> base_shift) + d2a); - int g = (int)((((dg - d2a) * int((sg - s2a) * 2 + base_mask)) >> base_shift) + d2a); - int b = (int)((((db - d2a) * int((sb - s2a) * 2 + base_mask)) >> base_shift) + d2a); - - r = (r < 0) ? 0 : r; - g = (g < 0) ? 0 : g; - b = (b < 0) ? 0 : b; - - p[Order::R] = (value_type)((r > da) ? da : r); - p[Order::G] = (value_type)((g > da) ? da : g); - p[Order::B] = (value_type)((b > da) ? da : b); - } -}; - -//=====================================================comp_op_rgba_invert -template -struct comp_op_rgba_invert { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = (Da - Dca) * Sa + Dca.(1 - Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - sa = (sa * cover + 255) >> 8; - if(sa) { - calc_type da = p[Order::A]; - calc_type dr = ((da - p[Order::R]) * sa + base_mask) >> base_shift; - calc_type dg = ((da - p[Order::G]) * sa + base_mask) >> base_shift; - calc_type db = ((da - p[Order::B]) * sa + base_mask) >> base_shift; - calc_type s1a = base_mask - sa; - p[Order::R] = (value_type)(dr + ((p[Order::R] * s1a + base_mask) >> base_shift)); - p[Order::G] = (value_type)(dg + ((p[Order::G] * s1a + base_mask) >> base_shift)); - p[Order::B] = (value_type)(db + ((p[Order::B] * s1a + base_mask) >> base_shift)); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//=================================================comp_op_rgba_invert_rgb -template -struct comp_op_rgba_invert_rgb { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // Dca' = (Da - Dca) * Sca + Dca.(1 - Sa) - // Da' = Sa + Da - Sa.Da - static AGG_INLINE void blend_pix(value_type *p, - unsigned sr, unsigned sg, unsigned sb, - unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - if(sa) { - calc_type da = p[Order::A]; - calc_type dr = ((da - p[Order::R]) * sr + base_mask) >> base_shift; - calc_type dg = ((da - p[Order::G]) * sg + base_mask) >> base_shift; - calc_type db = ((da - p[Order::B]) * sb + base_mask) >> base_shift; - calc_type s1a = base_mask - sa; - p[Order::R] = (value_type)(dr + ((p[Order::R] * s1a + base_mask) >> base_shift)); - p[Order::G] = (value_type)(dg + ((p[Order::G] * s1a + base_mask) >> base_shift)); - p[Order::B] = (value_type)(db + ((p[Order::B] * s1a + base_mask) >> base_shift)); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -// Addition custom ops: -template -struct comp_op_rgba_plus_darker { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // The docs for NSCompositingMode are wrong for plus darker. - // D = S + D -1 - static AGG_INLINE void blend_pix(value_type *p, unsigned sr, unsigned sg, unsigned sb, unsigned sa, unsigned cover) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - calc_type da = p[Order::A]; - p[Order::R] = max(0, (int)sr + (int)dr - (int)base_mask); - p[Order::G] = max(0, (int)sg + (int)dg - (int)base_mask); - p[Order::B] = max(0, (int)sb + (int)db - (int)base_mask); - p[Order::A] = max(0, (int)sa + (int)da - (int)base_mask); - } -}; - -static inline void RGBToHSL(float r, float g, float b, float *h, float *s, float *l) { - float x, y, z; - float fmin = MIN(MIN(r, g), b); //Min. value of RGB - float fmax = MAX(MAX(r, g), b); //Max. value of RGB - float delta = fmax - fmin; //Delta RGB value - - z = (fmax + fmin) / 2.0; // Luminance - - if(delta == 0.0) { - //This is a gray, no chroma... - x = 0.0; // Hue - y = 0.0; // Saturation - } else { - if(s) { - //Chromatic data... - if(z < 0.5) { - y = delta / (fmax + fmin); // Saturation - } else { - y = delta / (2.0 - fmax - fmin); // Saturation - } - } - if(h) { - float deltaR = (((fmax - r) / 6.0) + (delta / 2.0)) / delta; - float deltaG = (((fmax - g) / 6.0) + (delta / 2.0)) / delta; - float deltaB = (((fmax - b) / 6.0) + (delta / 2.0)) / delta; - - if(r == fmax) { - x = deltaB - deltaG; // Hue - } else if(g == fmax) { - x = (1.0 / 3.0) + deltaR - deltaB; // Hue - } else if(b == fmax) { - x = (2.0 / 3.0) + deltaG - deltaR; // Hue - } - if(x < 0.0) { - x += 1.0; // Hue - } else if(x > 1.0) { - x -= 1.0; // Hue - } - } - } - if(h) { - *h = x; - } - if(s) { - *s = y; - } - if(l) { - *l = z; - } -} - -static inline float HueToRGBComponent(float f1, float f2, float hue) { - if(hue < 0.0) { - hue += 1.0; - } else if(hue > 1.0) { - hue -= 1.0; - } - float res; - if((6.0 * hue) < 1.0) { - res = f1 + (f2 - f1) * 6.0 * hue; - } else if((2.0 * hue) < 1.0) { - res = f2; - } else if((3.0 * hue) < 2.0) { - res = f1 + (f2 - f1) * ((2.0 / 3.0) - hue) * 6.0; - } else { - res = f1; - } - return res; -} - -static inline void HSLToRGB(float x, float y, float z, float *r, float *g, float *b) { - if(y == 0.0) { - *r = *g = *b = z; // Luminance - } else { - float f2; - - if(z < 0.5) { - f2 = z * (1.0 + y); - } else { - f2 = (z + y) - (y * z); - } - float f1 = 2.0 * z - f2; - - *r = HueToRGBComponent(f1, f2, x + (1.0 / 3.0)); - *g = HueToRGBComponent(f1, f2, x); - *b = HueToRGBComponent(f1, f2, x - (1.0 / 3.0)); - } -} - -// kCGBlendModeColor -template -struct comp_op_rgba_color { - typedef ColorT color_type; - typedef Order order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - // kCGBlendModeColor : - // "Uses the luminance values of the background with the hue and saturation values of the source image". - static AGG_INLINE void blend_pix(value_type *p, unsigned sr, unsigned sg, unsigned sb, unsigned sa, unsigned cover) { - // Nothing to do if the source is fully transparent - if(sa) { - if(cover < 255) { - sr = (sr * cover + 255) >> 8; - sg = (sg * cover + 255) >> 8; - sb = (sb * cover + 255) >> 8; - sa = (sa * cover + 255) >> 8; - } - calc_type da = p[Order::A]; - calc_type dr = p[Order::R]; - calc_type dg = p[Order::G]; - calc_type db = p[Order::B]; - - // Nothing to blend to if the destination is fully transparent - if(da) { - float sh, ss; - RGBToHSL(sr / (float)sa, sg / (float)sa, sb / (float)sa, &sh, &ss, NULL); - float dl; - RGBToHSL(dr / (float)da, dg / (float)da, db / (float)da, NULL, NULL, &dl); - float r, g, b, a; - HSLToRGB(sh, ss, dl, &r, &g, &b); - a = sa; - sr = roundf(r * a); - sg = roundf(g * a); - sb = roundf(b * a); - } - // Add (src_over) the colored pixel to the destination - calc_type s1a = base_mask - sa; - p[Order::R] = (value_type)(sr + ((dr * s1a + base_mask) >> base_shift)); - p[Order::G] = (value_type)(sg + ((dg * s1a + base_mask) >> base_shift)); - p[Order::B] = (value_type)(sb + ((db * s1a + base_mask) >> base_shift)); - p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift)); - } - } -}; - -//======================================================comp_op_table_rgba -template -struct comp_op_table_rgba { - typedef typename ColorT::value_type value_type; - typedef void (*comp_op_func_type)(value_type *p, - unsigned cr, - unsigned cg, - unsigned cb, - unsigned ca, - unsigned cover); - static comp_op_func_type g_comp_op_func[]; -}; - -//==========================================================g_comp_op_func -template -typename comp_op_table_rgba::comp_op_func_type - comp_op_table_rgba::g_comp_op_func[] = - { - comp_op_rgba_clear::blend_pix, - comp_op_rgba_src::blend_pix, - comp_op_rgba_dst::blend_pix, - comp_op_rgba_src_over::blend_pix, - comp_op_rgba_dst_over::blend_pix, - comp_op_rgba_src_in::blend_pix, - comp_op_rgba_dst_in::blend_pix, - comp_op_rgba_src_out::blend_pix, - comp_op_rgba_dst_out::blend_pix, - comp_op_rgba_src_atop::blend_pix, - comp_op_rgba_dst_atop::blend_pix, - comp_op_rgba_xor::blend_pix, - comp_op_rgba_plus::blend_pix, - comp_op_rgba_minus::blend_pix, - comp_op_rgba_multiply::blend_pix, - comp_op_rgba_screen::blend_pix, - comp_op_rgba_overlay::blend_pix, - comp_op_rgba_darken::blend_pix, - comp_op_rgba_lighten::blend_pix, - comp_op_rgba_color_dodge::blend_pix, - comp_op_rgba_color_burn::blend_pix, - comp_op_rgba_hard_light::blend_pix, - comp_op_rgba_soft_light::blend_pix, - comp_op_rgba_difference::blend_pix, - comp_op_rgba_exclusion::blend_pix, - comp_op_rgba_contrast::blend_pix, - comp_op_rgba_invert::blend_pix, - comp_op_rgba_invert_rgb::blend_pix, - comp_op_rgba_plus_darker::blend_pix, - comp_op_rgba_color::blend_pix, - 0}; - -//==============================================================comp_op_e -enum comp_op_e { - comp_op_clear, //----comp_op_clear - comp_op_src, //----comp_op_src - comp_op_dst, //----comp_op_dst - comp_op_src_over, //----comp_op_src_over - comp_op_dst_over, //----comp_op_dst_over - comp_op_src_in, //----comp_op_src_in - comp_op_dst_in, //----comp_op_dst_in - comp_op_src_out, //----comp_op_src_out - comp_op_dst_out, //----comp_op_dst_out - comp_op_src_atop, //----comp_op_src_atop - comp_op_dst_atop, //----comp_op_dst_atop - comp_op_xor, //----comp_op_xor - comp_op_plus, //----comp_op_plus - comp_op_minus, //----comp_op_minus - comp_op_multiply, //----comp_op_multiply - comp_op_screen, //----comp_op_screen - comp_op_overlay, //----comp_op_overlay - comp_op_darken, //----comp_op_darken - comp_op_lighten, //----comp_op_lighten - comp_op_color_dodge, //----comp_op_color_dodge - comp_op_color_burn, //----comp_op_color_burn - comp_op_hard_light, //----comp_op_hard_light - comp_op_soft_light, //----comp_op_soft_light - comp_op_difference, //----comp_op_difference - comp_op_exclusion, //----comp_op_exclusion - comp_op_contrast, //----comp_op_contrast - comp_op_invert, //----comp_op_invert - comp_op_invert_rgb, //----comp_op_invert_rgb - comp_op_plus_darker, //----comp_op_plus_darker - comp_op_color, //----comp_op_color - - end_of_comp_op_e -}; - -//====================================================comp_op_adaptor_rgba -template -struct comp_op_adaptor_rgba { - typedef Order order_type; - typedef ColorT color_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(unsigned op, value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned ca, - unsigned cover) { - comp_op_table_rgba::g_comp_op_func[op](p, (cr * ca + base_mask) >> base_shift, - (cg * ca + base_mask) >> base_shift, - (cb * ca + base_mask) >> base_shift, - ca, cover); - } -}; - -//=========================================comp_op_adaptor_clip_to_dst_rgba -template -struct comp_op_adaptor_clip_to_dst_rgba { - typedef Order order_type; - typedef ColorT color_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(unsigned op, value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned ca, - unsigned cover) { - cr = (cr * ca + base_mask) >> base_shift; - cg = (cg * ca + base_mask) >> base_shift; - cb = (cb * ca + base_mask) >> base_shift; - unsigned da = p[Order::A]; - comp_op_table_rgba::g_comp_op_func[op](p, (cr * da + base_mask) >> base_shift, - (cg * da + base_mask) >> base_shift, - (cb * da + base_mask) >> base_shift, - (ca * da + base_mask) >> base_shift, - cover); - } -}; - -//================================================comp_op_adaptor_rgba_pre -template -struct comp_op_adaptor_rgba_pre { - typedef Order order_type; - typedef ColorT color_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(unsigned op, value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned ca, - unsigned cover) { - comp_op_table_rgba::g_comp_op_func[op](p, cr, cg, cb, ca, cover); - } -}; - -//=====================================comp_op_adaptor_clip_to_dst_rgba_pre -template -struct comp_op_adaptor_clip_to_dst_rgba_pre { - typedef Order order_type; - typedef ColorT color_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(unsigned op, value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned ca, - unsigned cover) { - unsigned da = p[Order::A]; - comp_op_table_rgba::g_comp_op_func[op](p, (cr * da + base_mask) >> base_shift, - (cg * da + base_mask) >> base_shift, - (cb * da + base_mask) >> base_shift, - (ca * da + base_mask) >> base_shift, - cover); - } -}; - -//=======================================================comp_adaptor_rgba -template -struct comp_adaptor_rgba { - typedef typename BlenderPre::order_type order_type; - typedef typename BlenderPre::color_type color_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(unsigned op, value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned ca, - unsigned cover) { - BlenderPre::blend_pix(p, - (cr * ca + base_mask) >> base_shift, - (cg * ca + base_mask) >> base_shift, - (cb * ca + base_mask) >> base_shift, - ca, cover); - } -}; - -//==========================================comp_adaptor_clip_to_dst_rgba -template -struct comp_adaptor_clip_to_dst_rgba { - typedef typename BlenderPre::order_type order_type; - typedef typename BlenderPre::color_type color_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(unsigned op, value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned ca, - unsigned cover) { - cr = (cr * ca + base_mask) >> base_shift; - cg = (cg * ca + base_mask) >> base_shift; - cb = (cb * ca + base_mask) >> base_shift; - unsigned da = p[order_type::A]; - BlenderPre::blend_pix(p, - (cr * da + base_mask) >> base_shift, - (cg * da + base_mask) >> base_shift, - (cb * da + base_mask) >> base_shift, - (ca * da + base_mask) >> base_shift, - cover); - } -}; - -//======================================comp_adaptor_clip_to_dst_rgba_pre -template -struct comp_adaptor_clip_to_dst_rgba_pre { - typedef typename BlenderPre::order_type order_type; - typedef typename BlenderPre::color_type color_type; - typedef typename color_type::value_type value_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask - }; - - static AGG_INLINE void blend_pix(unsigned op, value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned ca, - unsigned cover) { - unsigned da = p[order_type::A]; - BlenderPre::blend_pix(p, - (cr * da + base_mask) >> base_shift, - (cg * da + base_mask) >> base_shift, - (cb * da + base_mask) >> base_shift, - (ca * da + base_mask) >> base_shift, - cover); - } -}; - -//===============================================copy_or_blend_rgba_wrapper -template -struct copy_or_blend_rgba_wrapper { - typedef typename Blender::color_type color_type; - typedef typename Blender::order_type order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_scale = color_type::base_scale, - base_mask = color_type::base_mask - }; - - //-------------------------------------------------------------------- - static AGG_INLINE void copy_or_blend_pix(value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned alpha) { - if(alpha) { - if(alpha == base_mask) { - p[order_type::R] = cr; - p[order_type::G] = cg; - p[order_type::B] = cb; - p[order_type::A] = base_mask; - } else { - Blender::blend_pix(p, cr, cg, cb, alpha); - } - } - } - - //-------------------------------------------------------------------- - static AGG_INLINE void copy_or_blend_pix(value_type *p, - unsigned cr, unsigned cg, unsigned cb, - unsigned alpha, - unsigned cover) { - if(cover == 255) { - copy_or_blend_pix(p, cr, cg, cb, alpha); - } else { - if(alpha) { - alpha = (alpha * (cover + 1)) >> 8; - if(alpha == base_mask) { - p[order_type::R] = cr; - p[order_type::G] = cg; - p[order_type::B] = cb; - p[order_type::A] = base_mask; - } else { - Blender::blend_pix(p, cr, cg, cb, alpha, cover); - } - } - } - } -}; - -//=================================================pixfmt_alpha_blend_rgba -template -class pixfmt_alpha_blend_rgba { - public: - typedef RenBuf rbuf_type; - typedef typename rbuf_type::row_data row_data; - typedef PixelT pixel_type; - typedef Blender blender_type; - typedef typename blender_type::color_type color_type; - typedef typename blender_type::order_type order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef copy_or_blend_rgba_wrapper cob_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_scale = color_type::base_scale, - base_mask = color_type::base_mask, - pix_width = sizeof(pixel_type) - }; - - //-------------------------------------------------------------------- - pixfmt_alpha_blend_rgba() - : m_rbuf(0) { - } - explicit pixfmt_alpha_blend_rgba(rbuf_type &rb) - : m_rbuf(&rb) { - } - void attach(rbuf_type &rb) { - m_rbuf = &rb; - } - - //-------------------------------------------------------------------- - template - bool attach(PixFmt &pixf, int x1, int y1, int x2, int y2) { - rect_i r(x1, y1, x2, y2); - if(r.clip(rect_i(0, 0, pixf.width() - 1, pixf.height() - 1))) { - int stride = pixf.stride(); - m_rbuf->attach(pixf.pix_ptr(r.x1, stride < 0 ? r.y2 : r.y1), - (r.x2 - r.x1) + 1, - (r.y2 - r.y1) + 1, - stride); - return true; - } - return false; - } - - //-------------------------------------------------------------------- - AGG_INLINE unsigned width() const { - return m_rbuf->width(); - } - AGG_INLINE unsigned height() const { - return m_rbuf->height(); - } - AGG_INLINE int stride() const { - return m_rbuf->stride(); - } - - //-------------------------------------------------------------------- - AGG_INLINE int8u *row_ptr(int y) { - return m_rbuf->row_ptr(y); - } - AGG_INLINE const int8u *row_ptr(int y) const { - return m_rbuf->row_ptr(y); - } - AGG_INLINE row_data row(int y) const { - return m_rbuf->row(y); - } - - //-------------------------------------------------------------------- - AGG_INLINE int8u *pix_ptr(int x, int y) { - return m_rbuf->row_ptr(y) + x * pix_width; - } - - AGG_INLINE const int8u *pix_ptr(int x, int y) const { - return m_rbuf->row_ptr(y) + x * pix_width; - } - - //-------------------------------------------------------------------- - AGG_INLINE static void make_pix(int8u *p, const color_type &c) { - ((value_type *)p)[order_type::R] = c.r; - ((value_type *)p)[order_type::G] = c.g; - ((value_type *)p)[order_type::B] = c.b; - ((value_type *)p)[order_type::A] = c.a; - } - - //-------------------------------------------------------------------- - AGG_INLINE color_type pixel(int x, int y) const { - const value_type *p = (const value_type *)m_rbuf->row_ptr(y); - if(p) { - p += x << 2; - return color_type(p[order_type::R], - p[order_type::G], - p[order_type::B], - p[order_type::A]); - } - return color_type::no_color(); - } - - //-------------------------------------------------------------------- - AGG_INLINE void copy_pixel(int x, int y, const color_type &c) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, 1) + (x << 2); - p[order_type::R] = c.r; - p[order_type::G] = c.g; - p[order_type::B] = c.b; - p[order_type::A] = c.a; - } - - //-------------------------------------------------------------------- - AGG_INLINE void blend_pixel(int x, int y, const color_type &c, int8u cover) { - cob_type::copy_or_blend_pix( - (value_type *)m_rbuf->row_ptr(x, y, 1) + (x << 2), - c.r, c.g, c.b, c.a, - cover); - } - - //-------------------------------------------------------------------- - AGG_INLINE void copy_hline(int x, int y, - unsigned len, - const color_type &c) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - pixel_type v; - ((value_type *)&v)[order_type::R] = c.r; - ((value_type *)&v)[order_type::G] = c.g; - ((value_type *)&v)[order_type::B] = c.b; - ((value_type *)&v)[order_type::A] = c.a; - if(!hasSSE2 || sizeof(pixel_type) != 4) { - do { - *(pixel_type *)p = v; - p += 4; - } while(--len); - } else { - copy_color_sse(len, (uint32_t *)p, v); - } - } - - //-------------------------------------------------------------------- - AGG_INLINE void copy_vline(int x, int y, - unsigned len, - const color_type &c) { - pixel_type v; - ((value_type *)&v)[order_type::R] = c.r; - ((value_type *)&v)[order_type::G] = c.g; - ((value_type *)&v)[order_type::B] = c.b; - ((value_type *)&v)[order_type::A] = c.a; - do { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - *(pixel_type *)p = v; - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_hline(int x, int y, - unsigned len, - const color_type &c, - int8u cover) { - if(c.a) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8; - if(alpha == base_mask) { - pixel_type v; - ((value_type *)&v)[order_type::R] = c.r; - ((value_type *)&v)[order_type::G] = c.g; - ((value_type *)&v)[order_type::B] = c.b; - ((value_type *)&v)[order_type::A] = c.a; - if(!hasSSE2 || sizeof(pixel_type) != 4) { - int chunks = len >> 2; - int rem = len & 3; - while(chunks--) { - *(pixel_type *)p = v; - *(pixel_type *)(p + 4) = v; - *(pixel_type *)(p + 8) = v; - *(pixel_type *)(p + 12) = v; - p += 16; - } - while(rem--) { - *(pixel_type *)p = v; - p += 4; - } - } else { - copy_color_sse(len, (uint32_t *)p, v); - } - } else { - if(cover == 255) { - do { - blender_type::blend_pix(p, c.r, c.g, c.b, alpha); - p += 4; - } while(--len); - } else { - do { - blender_type::blend_pix(p, c.r, c.g, c.b, alpha, cover); - p += 4; - } while(--len); - } - } - } - } - - //-------------------------------------------------------------------- - void blend_vline(int x, int y, - unsigned len, - const color_type &c, - int8u cover) { - if(c.a) { - value_type *p; - calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8; - if(alpha == base_mask) { - pixel_type v; - ((value_type *)&v)[order_type::R] = c.r; - ((value_type *)&v)[order_type::G] = c.g; - ((value_type *)&v)[order_type::B] = c.b; - ((value_type *)&v)[order_type::A] = c.a; - do { - p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - *(pixel_type *)p = v; - } while(--len); - } else { - if(cover == 255) { - do { - p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - blender_type::blend_pix(p, c.r, c.g, c.b, alpha); - } while(--len); - } else { - do { - p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - blender_type::blend_pix(p, c.r, c.g, c.b, alpha, cover); - } while(--len); - } - } - } - } - - //-------------------------------------------------------------------- - void blend_solid_hspan(int x, int y, - unsigned len, - const color_type &c, - const int8u *covers) { - if(c.a) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - do { - calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8; - if(alpha == base_mask) { - p[order_type::R] = c.r; - p[order_type::G] = c.g; - p[order_type::B] = c.b; - p[order_type::A] = base_mask; - } else { - blender_type::blend_pix(p, c.r, c.g, c.b, alpha, *covers); - } - p += 4; - ++covers; - } while(--len); - } - } - - //-------------------------------------------------------------------- - void blend_solid_vspan(int x, int y, - unsigned len, - const color_type &c, - const int8u *covers) { - if(c.a) { - do { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8; - if(alpha == base_mask) { - p[order_type::R] = c.r; - p[order_type::G] = c.g; - p[order_type::B] = c.b; - p[order_type::A] = base_mask; - } else { - blender_type::blend_pix(p, c.r, c.g, c.b, alpha, *covers); - } - ++covers; - } while(--len); - } - } - - //-------------------------------------------------------------------- - void copy_color_hspan(int x, int y, - unsigned len, - const color_type *colors) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - do { - p[order_type::R] = colors->r; - p[order_type::G] = colors->g; - p[order_type::B] = colors->b; - p[order_type::A] = colors->a; - ++colors; - p += 4; - } while(--len); - } - - //-------------------------------------------------------------------- - void copy_color_vspan(int x, int y, - unsigned len, - const color_type *colors) { - do { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - p[order_type::R] = colors->r; - p[order_type::G] = colors->g; - p[order_type::B] = colors->b; - p[order_type::A] = colors->a; - ++colors; - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_color_hspan(int x, int y, - unsigned len, - const color_type *colors, - const int8u *covers, - int8u cover) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - if(covers) { - do { - cob_type::copy_or_blend_pix(p, - colors->r, - colors->g, - colors->b, - colors->a, - *covers++); - p += 4; - ++colors; - } while(--len); - } else { - if(cover == 255) { - do { - cob_type::copy_or_blend_pix(p, - colors->r, - colors->g, - colors->b, - colors->a); - p += 4; - ++colors; - } while(--len); - } else { - do { - cob_type::copy_or_blend_pix(p, - colors->r, - colors->g, - colors->b, - colors->a, - cover); - p += 4; - ++colors; - } while(--len); - } - } - } - - //-------------------------------------------------------------------- - void blend_color_vspan(int x, int y, - unsigned len, - const color_type *colors, - const int8u *covers, - int8u cover) { - value_type *p; - if(covers) { - do { - p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - cob_type::copy_or_blend_pix(p, - colors->r, - colors->g, - colors->b, - colors->a, - *covers++); - ++colors; - } while(--len); - } else { - if(cover == 255) { - do { - p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - cob_type::copy_or_blend_pix(p, - colors->r, - colors->g, - colors->b, - colors->a); - ++colors; - } while(--len); - } else { - do { - p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - cob_type::copy_or_blend_pix(p, - colors->r, - colors->g, - colors->b, - colors->a, - cover); - ++colors; - } while(--len); - } - } - } - - //-------------------------------------------------------------------- - template - void for_each_pixel(Function f) { - unsigned y; - for(y = 0; y < height(); ++y) { - row_data r = m_rbuf->row(y); - if(r.ptr) { - unsigned len = r.x2 - r.x1 + 1; - value_type *p = - (value_type *)m_rbuf->row_ptr(r.x1, y, len) + (r.x1 << 2); - do { - f(p); - p += 4; - } while(--len); - } - } - } - - //-------------------------------------------------------------------- - void premultiply() { - for_each_pixel(multiplier_rgba::premultiply); - } - - //-------------------------------------------------------------------- - void demultiply() { - for_each_pixel(multiplier_rgba::demultiply); - } - - //-------------------------------------------------------------------- - template - void apply_gamma_dir(const GammaLut &g) { - for_each_pixel(apply_gamma_dir_rgba(g)); - } - - //-------------------------------------------------------------------- - template - void apply_gamma_inv(const GammaLut &g) { - for_each_pixel(apply_gamma_inv_rgba(g)); - } - - //-------------------------------------------------------------------- - template - void copy_from(const RenBuf2 &from, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len) { - const int8u *p = from.row_ptr(ysrc); - if(p) { - memmove(m_rbuf->row_ptr(xdst, ydst, len) + xdst * pix_width, - p + xsrc * pix_width, - len * pix_width); - } - } - - //-------------------------------------------------------------------- - template - void blend_from(const SrcPixelFormatRenderer &from, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len, - int8u cover) { - typedef typename SrcPixelFormatRenderer::order_type src_order; - const value_type *psrc = (value_type *)from.row_ptr(ysrc); - if(psrc) { - psrc += xsrc << 2; - value_type *pdst = - (value_type *)m_rbuf->row_ptr(xdst, ydst, len) + (xdst << 2); - int incp = 4; - if(xdst > xsrc) { - psrc += (len - 1) << 2; - pdst += (len - 1) << 2; - incp = -4; - } - - if(cover == 255) { - do { - cob_type::copy_or_blend_pix(pdst, - psrc[src_order::R], - psrc[src_order::G], - psrc[src_order::B], - psrc[src_order::A]); - psrc += incp; - pdst += incp; - } while(--len); - } else { - do { - cob_type::copy_or_blend_pix(pdst, - psrc[src_order::R], - psrc[src_order::G], - psrc[src_order::B], - psrc[src_order::A], - cover); - psrc += incp; - pdst += incp; - } while(--len); - } - } - } - - //-------------------------------------------------------------------- - template - void blend_from_color(const SrcPixelFormatRenderer &from, - const color_type &color, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len, - int8u cover) { - typedef typename SrcPixelFormatRenderer::value_type src_value_type; - const src_value_type *psrc = (src_value_type *)from.row_ptr(ysrc); - if(psrc) { - value_type *pdst = - (value_type *)m_rbuf->row_ptr(xdst, ydst, len) + (xdst << 2); - do { - cob_type::copy_or_blend_pix(pdst, - color.r, color.g, color.b, color.a, - (*psrc * cover + base_mask) >> base_shift); - ++psrc; - pdst += 4; - } while(--len); - } - } - - //-------------------------------------------------------------------- - template - void blend_from_lut(const SrcPixelFormatRenderer &from, - const color_type *color_lut, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len, - int8u cover) { - typedef typename SrcPixelFormatRenderer::value_type src_value_type; - const src_value_type *psrc = (src_value_type *)from.row_ptr(ysrc); - if(psrc) { - value_type *pdst = - (value_type *)m_rbuf->row_ptr(xdst, ydst, len) + (xdst << 2); - - if(cover == 255) { - do { - const color_type &color = color_lut[*psrc]; - cob_type::copy_or_blend_pix(pdst, - color.r, color.g, color.b, color.a); - ++psrc; - pdst += 4; - } while(--len); - } else { - do { - const color_type &color = color_lut[*psrc]; - cob_type::copy_or_blend_pix(pdst, - color.r, color.g, color.b, color.a, - cover); - ++psrc; - pdst += 4; - } while(--len); - } - } - } - - private: - rbuf_type *m_rbuf; -}; - -//================================================pixfmt_custom_blend_rgba -template -class pixfmt_custom_blend_rgba { - public: - typedef RenBuf rbuf_type; - typedef typename rbuf_type::row_data row_data; - typedef Blender blender_type; - typedef typename blender_type::color_type color_type; - typedef typename blender_type::order_type order_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - enum base_scale_e { - base_shift = color_type::base_shift, - base_scale = color_type::base_scale, - base_mask = color_type::base_mask, - pix_width = sizeof(value_type) * 4 - }; - - //-------------------------------------------------------------------- - pixfmt_custom_blend_rgba() - : m_rbuf(0), m_comp_op(3) { - } - explicit pixfmt_custom_blend_rgba(rbuf_type &rb, unsigned comp_op = 3) - : m_rbuf(&rb), - m_comp_op(comp_op) { - } - void attach(rbuf_type &rb) { - m_rbuf = &rb; - } - - //-------------------------------------------------------------------- - template - bool attach(PixFmt &pixf, int x1, int y1, int x2, int y2) { - rect_i r(x1, y1, x2, y2); - if(r.clip(rect_i(0, 0, pixf.width() - 1, pixf.height() - 1))) { - int stride = pixf.stride(); - m_rbuf->attach(pixf.pix_ptr(r.x1, stride < 0 ? r.y2 : r.y1), - (r.x2 - r.x1) + 1, - (r.y2 - r.y1) + 1, - stride); - return true; - } - return false; - } - - //-------------------------------------------------------------------- - AGG_INLINE unsigned width() const { - return m_rbuf->width(); - } - AGG_INLINE unsigned height() const { - return m_rbuf->height(); - } - AGG_INLINE int stride() const { - return m_rbuf->stride(); - } - - //-------------------------------------------------------------------- - AGG_INLINE int8u *row_ptr(int y) { - return m_rbuf->row_ptr(y); - } - AGG_INLINE const int8u *row_ptr(int y) const { - return m_rbuf->row_ptr(y); - } - AGG_INLINE row_data row(int y) const { - return m_rbuf->row(y); - } - - //-------------------------------------------------------------------- - AGG_INLINE int8u *pix_ptr(int x, int y) { - return m_rbuf->row_ptr(y) + x * pix_width; - } - - AGG_INLINE const int8u *pix_ptr(int x, int y) const { - return m_rbuf->row_ptr(y) + x * pix_width; - } - - //-------------------------------------------------------------------- - void comp_op(unsigned op) { - m_comp_op = op; - } - unsigned comp_op() const { - return m_comp_op; - } - - //-------------------------------------------------------------------- - AGG_INLINE static void make_pix(int8u *p, const color_type &c) { - ((value_type *)p)[order_type::R] = c.r; - ((value_type *)p)[order_type::G] = c.g; - ((value_type *)p)[order_type::B] = c.b; - ((value_type *)p)[order_type::A] = c.a; - } - - //-------------------------------------------------------------------- - color_type pixel(int x, int y) const { - const value_type *p = (value_type *)m_rbuf->row_ptr(y) + (x << 2); - return color_type(p[order_type::R], - p[order_type::G], - p[order_type::B], - p[order_type::A]); - } - - //-------------------------------------------------------------------- - void copy_pixel(int x, int y, const color_type &c) { - blender_type::blend_pix( - m_comp_op, - (value_type *)m_rbuf->row_ptr(x, y, 1) + (x << 2), - c.r, c.g, c.b, c.a, 255); - } - - //-------------------------------------------------------------------- - void blend_pixel(int x, int y, const color_type &c, int8u cover) { - blender_type::blend_pix( - m_comp_op, - (value_type *)m_rbuf->row_ptr(x, y, 1) + (x << 2), - c.r, c.g, c.b, c.a, - cover); - } - - //-------------------------------------------------------------------- - void copy_hline(int x, int y, unsigned len, const color_type &c) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - ; - do { - blender_type::blend_pix(m_comp_op, p, c.r, c.g, c.b, c.a, 255); - p += 4; - } while(--len); - } - - //-------------------------------------------------------------------- - void copy_vline(int x, int y, unsigned len, const color_type &c) { - do { - blender_type::blend_pix( - m_comp_op, - (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2), - c.r, c.g, c.b, c.a, 255); - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_hline(int x, int y, unsigned len, - const color_type &c, int8u cover) { - if(m_comp_op == comp_op_src_over && c.a == 0) { - return; - } - if(m_comp_op == comp_op_src_over || m_comp_op == comp_op_src) { - if(cover == 255) { - // Fast path for opaque drawing - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - bool use_fast_copy = true; - if(use_fast_copy && (m_comp_op == comp_op_src_over)) { - use_fast_copy = c.a == base_mask; - } - if(use_fast_copy) { - color_type v; - ((value_type *)&v)[order_type::R] = c.r; - ((value_type *)&v)[order_type::G] = c.g; - ((value_type *)&v)[order_type::B] = c.b; - ((value_type *)&v)[order_type::A] = c.a; - if(!hasSSE2 || sizeof(color_type) != 4) { - int chunks = len >> 2; - int rem = len & 3; - while(chunks--) { - *(color_type *)p = v; - *(color_type *)(p + 4) = v; - *(color_type *)(p + 8) = v; - *(color_type *)(p + 12) = v; - p += 16; - } - while(rem--) { - *(color_type *)p = v; - p += 4; - } - } else { - copy_color_sse(len, (uint32_t *)p, *(uint32_t *)&v); - } - return; - } - } - } - - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - do { - blender_type::blend_pix(m_comp_op, p, c.r, c.g, c.b, c.a, cover); - p += 4; - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_vline(int x, int y, unsigned len, - const color_type &c, int8u cover) { - - do { - blender_type::blend_pix( - m_comp_op, - (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2), - c.r, c.g, c.b, c.a, - cover); - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_solid_hspan(int x, int y, unsigned len, - const color_type &c, const int8u *covers) { - if(c.a == 0) { - return; - } - // optimize for full opaque, full transparent & full covers - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - if((m_comp_op == comp_op_src_over && c.a == base_mask) || m_comp_op == comp_op_src) { - // Optimize full opaque or transparent src_over transfers - that's what we're mostly doing - - // Ensure we have a color var using the same color order as the destination - color_type v; - ((value_type *)&v)[order_type::R] = c.r; - ((value_type *)&v)[order_type::G] = c.g; - ((value_type *)&v)[order_type::B] = c.b; - ((value_type *)&v)[order_type::A] = c.a; - - do { - // skip transparent pixels and group fully opaque ones - if(*covers != 0) { - int i = 0; - for(; i < len; ++i) { - if(covers[i] != 255) { - break; - } - } - if(i > 0) { - // Copy the opaque block - if(!hasSSE2 || len < 16 || sizeof(color_type) != 4) { - int chunks = i >> 2; - int rem = i & 3; - while(chunks--) { - *(color_type *)p = v; - *(color_type *)(p + 4) = v; - *(color_type *)(p + 8) = v; - *(color_type *)(p + 12) = v; - p += 16; - } - while(rem--) { - *(color_type *)p = v; - p += 4; - } - } else { - copy_color_sse(i, (uint32_t *)p, *(uint32_t *)&v); - p += i * sizeof(color_type); - } - len -= i; - if(len == 0) { - return; - } - covers += i; - } - if(*covers != 0) { - comp_op_rgba_src_over::blend_pix( - p, - c.r, - c.g, - c.b, - c.a, - *covers); - } - } - p += 4; - ++covers; - } while(--len); - return; - } - - do { - blender_type::blend_pix(m_comp_op, - p, c.r, c.g, c.b, c.a, - *covers++); - p += 4; - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_solid_vspan(int x, int y, unsigned len, - const color_type &c, const int8u *covers) { - do { - blender_type::blend_pix( - m_comp_op, - (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2), - c.r, c.g, c.b, c.a, - *covers++); - } while(--len); - } - - //-------------------------------------------------------------------- - void copy_color_hspan(int x, int y, - unsigned len, - const color_type *colors) { - - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - do { - p[order_type::R] = colors->r; - p[order_type::G] = colors->g; - p[order_type::B] = colors->b; - p[order_type::A] = colors->a; - ++colors; - p += 4; - } while(--len); - } - - //-------------------------------------------------------------------- - void copy_color_vspan(int x, int y, - unsigned len, - const color_type *colors) { - do { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2); - p[order_type::R] = colors->r; - p[order_type::G] = colors->g; - p[order_type::B] = colors->b; - p[order_type::A] = colors->a; - ++colors; - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_color_hspan(int x, int y, unsigned len, - const color_type *colors, - const int8u *covers, - int8u cover) { - value_type *p = (value_type *)m_rbuf->row_ptr(x, y, len) + (x << 2); - if(m_comp_op == comp_op_src_over && (covers || cover == 255)) { - // Optimize full opaque or transparent src_over transfers - that's what we're mostly doing - do { - // skip transparent pixels and group fully opaque ones - if(colors->a != 0 && (covers == NULL || *covers != 0)) { - int i = 0; - for(; i < len; ++i) { - if(colors[i].a != base_mask || (covers != NULL && covers[i] != 255)) { - break; - } - } - if(i > 0) { - // Copy the opaque block - bool sameOrder = sizeof(value_type) * (order_type::R) == offsetof(color_type, r) && sizeof(value_type) * (order_type::G) == offsetof(color_type, g) && sizeof(value_type) * (order_type::B) == offsetof(color_type, b) && sizeof(value_type) * (order_type::A) == offsetof(color_type, a); - - if(sameOrder) { - if(!hasSSE2) { - int chunks = i >> 2; - int rem = i & 3; - while(chunks--) { - *(color_type *)p = colors[0]; - *(color_type *)(p + 4) = colors[1]; - *(color_type *)(p + 8) = colors[2]; - *(color_type *)(p + 12) = colors[3]; - p += 16; - colors += 4; - } - while(rem--) { - *(color_type *)p = *colors++; - p += 4; - } - } else { - memmove_sse(i * sizeof(color_type), (uint8_t *)p, (const uint8_t *)colors); - p += i * sizeof(color_type); - colors += i; - } - } else { - int rem = i; - while(rem--) { - p[order_type::R] = colors->r; - p[order_type::G] = colors->g; - p[order_type::B] = colors->b; - p[order_type::A] = base_mask; - - colors++; - p += 4; - } - } - len -= i; - if(len == 0) { - return; - } - if(covers) - covers += i; - } - if(colors->a != 0 && (covers == NULL || *covers != 0)) { - comp_op_rgba_src_over::blend_pix( - p, - colors->r, - colors->g, - colors->b, - colors->a, - covers ? *covers : cover); - } - } - p += 4; - if(covers) - ++covers; - ++colors; - } while(--len); - return; - } - do { - blender_type::blend_pix(m_comp_op, - p, - colors->r, - colors->g, - colors->b, - colors->a, - covers ? *covers++ : cover); - p += 4; - ++colors; - } while(--len); - } - - //-------------------------------------------------------------------- - void blend_color_vspan(int x, int y, unsigned len, - const color_type *colors, - const int8u *covers, - int8u cover) { - do { - blender_type::blend_pix( - m_comp_op, - (value_type *)m_rbuf->row_ptr(x, y++, 1) + (x << 2), - colors->r, - colors->g, - colors->b, - colors->a, - covers ? *covers++ : cover); - ++colors; - } while(--len); - } - - //-------------------------------------------------------------------- - template - void for_each_pixel(Function f) { - unsigned y; - for(y = 0; y < height(); ++y) { - row_data r = m_rbuf->row(y); - if(r.ptr) { - unsigned len = r.x2 - r.x1 + 1; - value_type *p = - (value_type *)m_rbuf->row_ptr(r.x1, y, len) + (r.x1 << 2); - do { - f(p); - p += 4; - } while(--len); - } - } - } - - //-------------------------------------------------------------------- - void premultiply() { - for_each_pixel(multiplier_rgba::premultiply); - } - - //-------------------------------------------------------------------- - void demultiply() { - for_each_pixel(multiplier_rgba::demultiply); - } - - //-------------------------------------------------------------------- - template - void apply_gamma_dir(const GammaLut &g) { - for_each_pixel(apply_gamma_dir_rgba(g)); - } - - //-------------------------------------------------------------------- - template - void apply_gamma_inv(const GammaLut &g) { - for_each_pixel(apply_gamma_inv_rgba(g)); - } - - //-------------------------------------------------------------------- - template - void copy_from(const RenBuf2 &from, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len) { - const int8u *p = from.row_ptr(ysrc); - if(p) { - memmove(m_rbuf->row_ptr(xdst, ydst, len) + xdst * pix_width, - p + xsrc * pix_width, - len * pix_width); - } - } - - //-------------------------------------------------------------------- - template - void blend_from(const SrcPixelFormatRenderer &from, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len, - int8u cover) { - typedef typename SrcPixelFormatRenderer::order_type src_order; - const value_type *psrc = (const value_type *)from.row_ptr(ysrc); - if(psrc) { - psrc += xsrc << 2; - value_type *pdst = - (value_type *)m_rbuf->row_ptr(xdst, ydst, len) + (xdst << 2); - - int incp = 4; - if(xdst > xsrc) { - psrc += (len - 1) << 2; - pdst += (len - 1) << 2; - incp = -4; - } - - do { - blender_type::blend_pix(m_comp_op, - pdst, - psrc[src_order::R], - psrc[src_order::G], - psrc[src_order::B], - psrc[src_order::A], - cover); - psrc += incp; - pdst += incp; - } while(--len); - } - } - - //-------------------------------------------------------------------- - template - void blend_from_color(const SrcPixelFormatRenderer &from, - const color_type &color, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len, - int8u cover) { - typedef typename SrcPixelFormatRenderer::value_type src_value_type; - const src_value_type *psrc = (src_value_type *)from.row_ptr(ysrc); - if(psrc) { - value_type *pdst = - (value_type *)m_rbuf->row_ptr(xdst, ydst, len) + (xdst << 2); - do { - blender_type::blend_pix(m_comp_op, - pdst, - color.r, color.g, color.b, color.a, - (*psrc * cover + base_mask) >> base_shift); - ++psrc; - pdst += 4; - } while(--len); - } - } - - //-------------------------------------------------------------------- - template - void blend_from_lut(const SrcPixelFormatRenderer &from, - const color_type *color_lut, - int xdst, int ydst, - int xsrc, int ysrc, - unsigned len, - int8u cover) { - typedef typename SrcPixelFormatRenderer::value_type src_value_type; - const src_value_type *psrc = (src_value_type *)from.row_ptr(ysrc); - if(psrc) { - value_type *pdst = - (value_type *)m_rbuf->row_ptr(xdst, ydst, len) + (xdst << 2); - do { - const color_type &color = color_lut[*psrc]; - blender_type::blend_pix(m_comp_op, - pdst, - color.r, color.g, color.b, color.a, - cover); - ++psrc; - pdst += 4; - } while(--len); - } - } - - private: - rbuf_type *m_rbuf; - unsigned m_comp_op; -}; - -//----------------------------------------------------------------------- -typedef blender_rgba blender_rgba32; //----blender_rgba32 -typedef blender_rgba blender_argb32; //----blender_argb32 -typedef blender_rgba blender_abgr32; //----blender_abgr32 -typedef blender_rgba blender_bgra32; //----blender_bgra32 - -typedef blender_rgba_pre blender_rgba32_pre; //----blender_rgba32_pre -typedef blender_rgba_pre blender_argb32_pre; //----blender_argb32_pre -typedef blender_rgba_pre blender_abgr32_pre; //----blender_abgr32_pre -typedef blender_rgba_pre blender_bgra32_pre; //----blender_bgra32_pre - -typedef blender_rgba_plain blender_rgba32_plain; //----blender_rgba32_plain -typedef blender_rgba_plain blender_argb32_plain; //----blender_argb32_plain -typedef blender_rgba_plain blender_abgr32_plain; //----blender_abgr32_plain -typedef blender_rgba_plain blender_bgra32_plain; //----blender_bgra32_plain - -typedef blender_rgba blender_rgba64; //----blender_rgba64 -typedef blender_rgba blender_argb64; //----blender_argb64 -typedef blender_rgba blender_abgr64; //----blender_abgr64 -typedef blender_rgba blender_bgra64; //----blender_bgra64 - -typedef blender_rgba_pre blender_rgba64_pre; //----blender_rgba64_pre -typedef blender_rgba_pre blender_argb64_pre; //----blender_argb64_pre -typedef blender_rgba_pre blender_abgr64_pre; //----blender_abgr64_pre -typedef blender_rgba_pre blender_bgra64_pre; //----blender_bgra64_pre - -//----------------------------------------------------------------------- -typedef int32u pixel32_type; -typedef pixfmt_alpha_blend_rgba pixfmt_rgba32; //----pixfmt_rgba32 -typedef pixfmt_alpha_blend_rgba pixfmt_argb32; //----pixfmt_argb32 -typedef pixfmt_alpha_blend_rgba pixfmt_abgr32; //----pixfmt_abgr32 -typedef pixfmt_alpha_blend_rgba pixfmt_bgra32; //----pixfmt_bgra32 - -typedef pixfmt_alpha_blend_rgba pixfmt_rgba32_pre; //----pixfmt_rgba32_pre -typedef pixfmt_alpha_blend_rgba pixfmt_argb32_pre; //----pixfmt_argb32_pre -typedef pixfmt_alpha_blend_rgba pixfmt_abgr32_pre; //----pixfmt_abgr32_pre -typedef pixfmt_alpha_blend_rgba pixfmt_bgra32_pre; //----pixfmt_bgra32_pre - -typedef pixfmt_alpha_blend_rgba pixfmt_rgba32_plain; //----pixfmt_rgba32_plain -typedef pixfmt_alpha_blend_rgba pixfmt_argb32_plain; //----pixfmt_argb32_plain -typedef pixfmt_alpha_blend_rgba pixfmt_abgr32_plain; //----pixfmt_abgr32_plain -typedef pixfmt_alpha_blend_rgba pixfmt_bgra32_plain; //----pixfmt_bgra32_plain - -struct pixel64_type { - int16u c[4]; -}; -typedef pixfmt_alpha_blend_rgba pixfmt_rgba64; //----pixfmt_rgba64 -typedef pixfmt_alpha_blend_rgba pixfmt_argb64; //----pixfmt_argb64 -typedef pixfmt_alpha_blend_rgba pixfmt_abgr64; //----pixfmt_abgr64 -typedef pixfmt_alpha_blend_rgba pixfmt_bgra64; //----pixfmt_bgra64 - -typedef pixfmt_alpha_blend_rgba pixfmt_rgba64_pre; //----pixfmt_rgba64_pre -typedef pixfmt_alpha_blend_rgba pixfmt_argb64_pre; //----pixfmt_argb64_pre -typedef pixfmt_alpha_blend_rgba pixfmt_abgr64_pre; //----pixfmt_abgr64_pre -typedef pixfmt_alpha_blend_rgba pixfmt_bgra64_pre; //----pixfmt_bgra64_pre -} // namespace o2agg - -#endif diff --git a/O2Context_AntiGrain/o2agg_span_image_filter_rgba.h b/O2Context_AntiGrain/o2agg_span_image_filter_rgba.h deleted file mode 100644 index 9ecbd4d9..00000000 --- a/O2Context_AntiGrain/o2agg_span_image_filter_rgba.h +++ /dev/null @@ -1,608 +0,0 @@ -// Resample affine filter optimized for non rotated image drawing -// Based on the AGG 2.4 one - -//---------------------------------------------------------------------------- -// Anti-Grain Geometry - Version 2.4 -// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com) -// -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. -// -//---------------------------------------------------------------------------- -// Contact: mcseem@antigrain.com -// mcseemagg@yahoo.com -// http://www.antigrain.com -//---------------------------------------------------------------------------- -// -// Adaptation for high precision colors has been sponsored by -// Liberty Technology Systems, Inc., visit http://lib-sys.com -// -// Liberty Technology Systems, Inc. is the provider of -// PostScript and PDF technology for software developers. -// -//---------------------------------------------------------------------------- -#ifndef O2AGG_SPAN_IMAGE_FILTER_RGBA_INCLUDED -#define O2AGG_SPAN_IMAGE_FILTER_RGBA_INCLUDED - -#include -#include -#include -#include - -#ifdef __SSE2__ -#include -#endif - -namespace o2agg { -using namespace agg; - -#ifdef __SSE2__ -static inline __m128i muly(const __m128i &a, const __m128i &b) { - __m128i tmp1 = _mm_mul_epu32(a, b); /* mul 2,0*/ - __m128i tmp2 = _mm_mul_epu32(_mm_srli_si128(a, 4), _mm_srli_si128(b, 4)); /* mul 3,1 */ - return _mm_unpacklo_epi32(_mm_shuffle_epi32(tmp1, _MM_SHUFFLE(0, 0, 2, 0)), _mm_shuffle_epi32(tmp2, _MM_SHUFFLE(0, 0, 2, 0))); /* shuffle results to [63..0] and pack */ -} -#endif - -//========================================span_image_resample_rgba_affine -// The idea here is that when we resample a image rendered horizontally, because the renderer works line by line, -// because the resampling algorithm needs to average a few lines, we keep resampling the same lines again and again -// So we keep a buffer of already resampled lines so we process them only once (usually instead of twice) -template -class span_image_resample_rgba_affine : public span_image_resample_affine { - public: - typedef Source source_type; - typedef typename source_type::color_type color_type; - typedef typename source_type::order_type order_type; - typedef span_image_resample_affine base_type; - typedef typename base_type::interpolator_type interpolator_type; - typedef typename color_type::value_type value_type; - typedef typename color_type::calc_type calc_type; - typedef typename color_type::long_type long_type; - - typedef span_image_filter type; - - // just because we can't create a pod_array of pod_array of value_type[4] - typedef struct { - value_type c[4]; - } pixel_type; - - enum base_scale_e { - base_shift = color_type::base_shift, - base_mask = color_type::base_mask, - downscale_shift = image_filter_shift - }; - - //-------------------------------------------------------------------- - span_image_resample_rgba_affine() { - } - - span_image_resample_rgba_affine(source_type &src, - interpolator_type &inter, - const image_filter_lut &filter) - : base_type(src, inter, filter), m_straight(false) { - } - - protected: - bool m_straight; // true if the transform doesn't rotate the image - needed for the optimized path - pod_array> m_lines; // scanlines of resampled lines - only on x axis - pod_array m_linesIdx; // lines idx for the cache line - // We can use the optimized path only we we're being called with a span with the same x, a y+1 and the same len as - // the one we used previously - indexed by y%(array size) where y is the line idx in the original image - int m_baseX; // latest span x received - int m_idx; // the line to resample - int m_len; - - public: - //-------------------------------------------------------------------- - void prepare() { - - span_image_resample_affine::prepare(); - - int diameter = base_type::filter().diameter(); - int ry = diameter * base_type::m_ry; - int radius_y = (diameter * ry) >> 1; - int len_y_lr = (diameter * base_type::m_ry + image_subpixel_mask) >> image_subpixel_shift; - int history_size = len_y_lr * 2; - - m_baseX = -1; - m_idx = 0; - // The temp buffers for horizontally resampled lines - m_lines.resize(history_size); - // The line number of the original image corresponding to the cached line - m_linesIdx.resize(history_size); - for(int i = 0; i < history_size; ++i) { - m_linesIdx[i] = INT_MIN; - } - - base_type::interpolator().begin(0, 0, 1); - int x, y; - base_type::interpolator().coordinates(&x, &y); - base_type::interpolator().begin(100, 0, 1); - int x2, y2; - base_type::interpolator().coordinates(&x2, &y2); - - m_straight = y == y2; - - m_len = 0; - } - - void generate(color_type *span, int x, int y, unsigned len) __attribute__((force_align_arg_pointer)) { - const int kWeightMin = 0; - - // Generate pixels values from (x,y) to (x+len, y) - int lenOrg = len; - // Check if we can use our history - bool useFastPath = m_straight; - - if(useFastPath) { - int history_size = m_lines.size(); - - if(x != m_baseX) { - // reset things - m_baseX = x; - for(int i = 0; i < history_size; ++i) { - m_linesIdx[i] = INT_MIN; - } - } - if(len != m_len) { - // reset things - m_len = len; - for(int i = 0; i < history_size; ++i) { - m_linesIdx[i] = INT_MIN; - } - } - const int16 *weight_array = base_type::filter().weight_array(); - - // Build the missing resampled lines we'll need - int len2 = len; - int xOrg = x; - int yOrg = y; - int y_lrs[len]; - int y_hrs[len]; - int x_lrs[len]; - int x_hrs[len]; - - // First pass to build the missing lines - { - base_type::interpolator().begin(xOrg + base_type::filter_dx_dbl(), - yOrg + base_type::filter_dy_dbl(), len); - - int diameter = base_type::filter().diameter(); - int filter_scale = diameter << image_subpixel_shift; - int radius_x = (diameter * base_type::m_rx) >> 1; - int radius_y = (diameter * base_type::m_ry) >> 1; - int len_x_lr = (diameter * base_type::m_rx + image_subpixel_mask) >> image_subpixel_shift; - int len_y_lr = (diameter * base_type::m_ry + image_subpixel_mask) >> image_subpixel_shift; - - int len2 = len; - - for(int idx = 0; idx < len; ++idx) { - base_type::interpolator().coordinates(&x, &y); - - x += base_type::filter_dx_int() - radius_x; - y += base_type::filter_dy_int() - radius_y; - - y_lrs[idx] = y >> image_subpixel_shift; - y_hrs[idx] = ((image_subpixel_mask - (y & image_subpixel_mask)) * base_type::m_ry_inv) >> image_subpixel_shift; - // Note : if y_lrs/y_hrs is changing during this loop, then we can't run the next for(;;) loop - // we could add a check for that - then we should fall back to the slow path - if(idx > 0) { - y_lrs[idx] = y_lrs[0]; - y_hrs[idx] = y_hrs[0]; - } - x_lrs[idx] = x >> image_subpixel_shift; - x_hrs[idx] = ((image_subpixel_mask - (x & image_subpixel_mask)) * base_type::m_rx_inv) >> image_subpixel_shift; - ++base_type::interpolator(); - } - int y_hr = y_hrs[0]; - int y_lr = y_lrs[0]; - for(;;) { - // build a resampled cache of y_lr if needed - int weight_y = weight_array[y_hr]; - if(weight_y > kWeightMin) { - int y = y_lr; - if(y < 0) { - y = 0; - } - - int lineIdx = (y % history_size + history_size) % history_size; - if(y != m_linesIdx[lineIdx]) { - if(m_lines[lineIdx].size() != lenOrg) { - m_lines[lineIdx].resize(lenOrg); - } - pixel_type *line = m_lines[lineIdx].data(); - for(int i = 0; i < len; ++i) { - int x_hr = x_hrs[i]; - int x_lr = x_lrs[i]; - - const value_type *fg_ptr = (const value_type *)base_type::source().span(x_lr, y_lr, len_x_lr); -#if !defined(__SSE2__) - if(0) { -#else - if(o2agg::hasSSE2 && sizeof(color_type) == 4) { - // SSE2 2 RGBA at a time - limited precision on weights but good enough - int total_weight2 = 0; - const __m128i zero = _mm_setzero_si128(); - __m128i fg2 = zero; - int x_hr2 = x_hr + base_type::m_rx_inv; - - for(;;) { - unsigned weight = weight_array[x_hr]; - unsigned weight2 = 0; - if(x_hr2 < filter_scale) { - weight2 = weight_array[x_hr2]; - } - // to do : be sure we're aligned, that we have 2 pixels to deal with, and use the right weights for the two pixels - if(weight > kWeightMin || weight2 > kWeightMin) { - weight >>= 12; - weight2 >>= 12; - if(weight2 > 0) { - uint32_t pix = *(uint32_t *)fg_ptr; - fg_ptr = (const value_type *)base_type::source().next_x(); - uint32_t pix2 = *(uint32_t *)fg_ptr; - __m128i p = _mm_set_epi32(pix2, pix, pix2, pix); - // Extent the RGBA components to 16 bits by inserting 0 bytes - __m128i rgba = _mm_unpackhi_epi8(p, zero); - - __m128i w = _mm_set_epi16(weight2, weight2, weight2, weight2, weight, weight, weight, weight); - // M = RGBA*W - keep the low bytes - __m128i m = _mm_mullo_epi16(rgba, w); - // FG2 = FG2 + RGBA*W - fg2 = _mm_adds_epi16(fg2, m); - total_weight2 += weight2; - total_weight2 += weight; - } else { - uint32_t pix = *(uint32_t *)fg_ptr; - __m128i p = _mm_set_epi32(pix, pix, pix, pix); - // Extent the RGBA components to 16 bits by inserting 0 bytes - __m128i rgba = _mm_unpacklo_epi8(p, zero); - - __m128i w = _mm_set_epi16(0, 0, 0, 0, weight, weight, weight, weight); - // M = RGBA*W - __m128i m = _mm_mullo_epi16(rgba, w); - // FG2 = FG2 + RGBA*W - fg2 = _mm_adds_epi16(fg2, m); - fg_ptr = (const value_type *)base_type::source().next_x(); // we've used a second pixel - total_weight2 += weight; - } - } - - if(x_hr2 >= filter_scale) - break; - // We just processed two pixels - x_hr += 2 * base_type::m_rx_inv; - if(x_hr >= filter_scale) - break; - x_hr2 += 2 * base_type::m_rx_inv; - fg_ptr = (const value_type *)base_type::source().next_x(); - } - if(total_weight2 == 0) { - // Just so the world doesn't crash - total_weight2 = 1; - } - // = add the two halves of fg2 (the two halves are partial sums for RGBA) - __m128i shifted = _mm_srli_si128(fg2, 8); - fg2 = _mm_adds_epi16(fg2, shifted); - - uint16_t f[8]; - _mm_storeu_si128((__m128i *)f, fg2); - int f0 = f[0] / total_weight2; - int f1 = f[1] / total_weight2; - int f2 = f[2] / total_weight2; - int f3 = f[3] / total_weight2; - - // Store in the y_lr cache line, without the "y" weight so we can reuse it width different weights - line->c[0] = (value_type)f0; - line->c[1] = (value_type)f1; - line->c[2] = (value_type)f2; - line->c[3] = (value_type)f3; - line++; -#endif - } else { - int total_weight2 = 0; - long_type fg2[4] = {0, 0, 0, 0}; - for(;;) { - int weight = weight_array[x_hr]; - if(weight > kWeightMin) { - fg2[0] += weight * fg_ptr[0]; - fg2[1] += weight * fg_ptr[1]; - fg2[2] += weight * fg_ptr[2]; - fg2[3] += weight * fg_ptr[3]; - total_weight2 += weight; - } - x_hr += base_type::m_rx_inv; - if(x_hr >= filter_scale) - break; - fg_ptr = (const value_type *)base_type::source().next_x(); - } - fg2[0] /= total_weight2; - fg2[1] /= total_weight2; - fg2[2] /= total_weight2; - fg2[3] /= total_weight2; - - // Store in the y_lr cache line, without the "y" weight so we can reuse it width different weights - line->c[0] = (value_type)fg2[0]; - line->c[1] = (value_type)fg2[1]; - line->c[2] = (value_type)fg2[2]; - line->c[3] = (value_type)fg2[3]; - line++; - } - } - m_linesIdx[lineIdx] = y; - } - } - // and move to next line - y_hr += base_type::m_ry_inv; - - if(y_hr >= filter_scale) - break; - y_lr++; - } - } - - // Pass two : do the vertical resampling using the cached lines - { - int diameter = base_type::filter().diameter(); - int filter_scale = diameter << image_subpixel_shift; - int radius_x = (diameter * base_type::m_rx) >> 1; - int radius_y = (diameter * base_type::m_ry) >> 1; - int len_x_lr = (diameter * base_type::m_rx + image_subpixel_mask) >> image_subpixel_shift; - int len_y_lr = (diameter * base_type::m_ry + image_subpixel_mask) >> image_subpixel_shift; - - int y_hr = y_hrs[0]; - // The total weight will be the same for all of the pixels - just compute it once - int total_weight = 0; - for(;;) { - // y filtering - int weight_y = weight_array[y_hr]; - if(weight_y > kWeightMin) { - total_weight += weight_y; - } - // and move to next line - y_hr += base_type::m_ry_inv; - - if(y_hr >= filter_scale) - break; - } - - int top_ylr; - int top_yhr; - for(int i = 0; i < len; ++i) { - long_type fg[4] = {0, 0, 0, 0}; - - int y_lr = y_lrs[i]; - int y_hr = y_hrs[i]; - -#if !defined(__SSE2__) - if(0) { -#else - if(o2agg::hasSSE2 && sizeof(color_type) == 4) { - // SSE2 2 RGBA at a time - limited precision on weights - total_weight = 0; - const __m128i zero = _mm_setzero_si128(); - __m128i fg2 = zero; - int y_hr2 = y_hr + base_type::m_ry_inv; - int y_lr2 = y_lr + 1; - for(;;) { - unsigned weight = weight_array[y_hr]; - unsigned weight2 = 0; - if(y_hr2 < filter_scale) { - weight2 = weight_array[y_hr2]; - } - // to do : be sure we're aligned, that we have 2 pixels to deal with, and use the right weights for the two pixels - if(weight > kWeightMin || weight2 > kWeightMin) { - weight >>= 12; - weight2 >>= 12; - // Weight the pixels on that line - int y = y_lr; - if(y < 0) { - y = 0; - } - int lineIdx = (y % history_size + history_size) % history_size; - const pixel_type *line1 = m_lines[lineIdx].data(); - if(weight2 > 0) { - y = y_lr2; - if(y < 0) { - y = 0; - } - lineIdx = (y % history_size + history_size) % history_size; - const pixel_type *line2 = m_lines[lineIdx].data(); - - uint32_t pix = *(uint32_t *)line1[i].c; - uint32_t pix2 = *(uint32_t *)line2[i].c; - __m128i p = _mm_set_epi32(pix2, pix, pix2, pix); - // Extent the RGBA components to 16 bits by inserting 0 bytes - __m128i rgba = _mm_unpackhi_epi8(p, zero); - - __m128i w = _mm_set_epi16(weight2, weight2, weight2, weight2, weight, weight, weight, weight); - // M = RGBA*W - keep the low bytes - __m128i m = _mm_mullo_epi16(rgba, w); - // FG2 = FG2 + RGBA*W - fg2 = _mm_adds_epi16(fg2, m); - total_weight += weight2; - total_weight += weight; - } else { - uint32_t pix = *(uint32_t *)line1[i].c; - __m128i p = _mm_set_epi32(pix, pix, pix, pix); - // Extent the RGBA components to 16 bits by inserting 0 bytes - __m128i rgba = _mm_unpacklo_epi8(p, zero); - - __m128i w = _mm_set_epi16(0, 0, 0, 0, weight, weight, weight, weight); - // M = RGBA*W - __m128i m = _mm_mullo_epi16(rgba, w); - // FG2 = FG2 + RGBA*W - fg2 = _mm_adds_epi16(fg2, m); - total_weight += weight; - } - } - - if(y_hr2 >= filter_scale) - break; - // We just processed two pixels - y_hr += 2 * base_type::m_ry_inv; - if(y_hr >= filter_scale) - break; - y_hr2 += 2 * base_type::m_ry_inv; - - y_lr += 2; - y_lr2 += 2; - } - if(total_weight == 0) { - // Just so the world doesn't crash - total_weight = 1; - } - - // = add the two halves of fg2 (the two halves are partial sums for RGBA) - __m128i shifted = _mm_srli_si128(fg2, 8); - fg2 = _mm_adds_epi16(fg2, shifted); - - uint16_t f[8]; - _mm_storeu_si128((__m128i *)f, fg2); - fg[0] = f[0]; - fg[1] = f[1]; - fg[2] = f[2]; - fg[3] = f[3]; -#endif - } else { - for(;;) { - // y filtering - int weight_y = weight_array[y_hr]; - if(weight_y > kWeightMin) { - // Weight the pixels on that line - int y = y_lr; - if(y < 0) { - y = 0; - } - int lineIdx = (y % history_size + history_size) % history_size; - - const pixel_type *line = m_lines[lineIdx].data(); - - // accumulate the cached value to the resampling buffer - fg[0] += (calc_type)line[i].c[0] * weight_y; - fg[1] += (calc_type)line[i].c[1] * weight_y; - fg[2] += (calc_type)line[i].c[2] * weight_y; - fg[3] += (calc_type)line[i].c[3] * weight_y; - } - // and move to next line - y_hr += base_type::m_ry_inv; - - if(y_hr >= filter_scale) - break; - y_lr++; - } - } - // All of the samples needed to build this pixel have been weighted - we're done - fg[0] /= total_weight; - fg[1] /= total_weight; - fg[2] /= total_weight; - fg[3] /= total_weight; - - if(fg[order_type::A] > base_mask) - fg[order_type::A] = base_mask; - if(fg[order_type::R] > fg[order_type::A]) - fg[order_type::R] = fg[order_type::A]; - if(fg[order_type::G] > fg[order_type::A]) - fg[order_type::G] = fg[order_type::A]; - if(fg[order_type::B] > fg[order_type::A]) - fg[order_type::B] = fg[order_type::A]; - - span->r = (value_type)fg[order_type::R]; - span->g = (value_type)fg[order_type::G]; - span->b = (value_type)fg[order_type::B]; - span->a = (value_type)fg[order_type::A]; - - // Move to next pixel - ++span; - } - } - } - slowpath: - if(useFastPath == false) { - // Slower path - that's the original resample filter code - base_type::interpolator().begin(x + base_type::filter_dx_dbl(), - y + base_type::filter_dy_dbl(), len); - - int diameter = base_type::filter().diameter(); - int filter_scale = diameter << image_subpixel_shift; - int radius_x = (diameter * base_type::m_rx) >> 1; - int radius_y = (diameter * base_type::m_ry) >> 1; - int len_x_lr = (diameter * base_type::m_rx + image_subpixel_mask) >> image_subpixel_shift; - - const int16 *weight_array = base_type::filter().weight_array(); - do { - base_type::interpolator().coordinates(&x, &y); - - x += base_type::filter_dx_int() - radius_x; - y += base_type::filter_dy_int() - radius_y; - - long_type fg[4] = {image_filter_scale / 2, image_filter_scale / 2, image_filter_scale / 2, image_filter_scale / 2}; - - int y_lr = y >> image_subpixel_shift; - int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) * base_type::m_ry_inv) >> image_subpixel_shift; - int total_weight = 0; - int x_lr = x >> image_subpixel_shift; - int x_hr = ((image_subpixel_mask - (x & image_subpixel_mask)) * base_type::m_rx_inv) >> image_subpixel_shift; - - int x_hr2 = x_hr; - const value_type *fg_ptr = (const value_type *)base_type::source().span(x_lr, y_lr, len_x_lr); - for(;;) { - int weight_y = weight_array[y_hr]; - x_hr = x_hr2; - for(;;) { - int weight = (weight_y * weight_array[x_hr] + image_filter_scale / 2) >> downscale_shift; - - fg[0] += fg_ptr[0] * weight; - fg[1] += fg_ptr[1] * weight; - fg[2] += fg_ptr[2] * weight; - fg[3] += fg_ptr[3] * weight; - total_weight += weight; - x_hr += base_type::m_rx_inv; - if(x_hr >= filter_scale) - break; - fg_ptr = (const value_type *)base_type::source().next_x(); - } - y_hr += base_type::m_ry_inv; - if(y_hr >= filter_scale) - break; - fg_ptr = (const value_type *)base_type::source().next_y(); - } - fg[0] /= total_weight; - fg[1] /= total_weight; - fg[2] /= total_weight; - fg[3] /= total_weight; - - if(fg[0] < 0) - fg[0] = 0; - if(fg[1] < 0) - fg[1] = 0; - if(fg[2] < 0) - fg[2] = 0; - if(fg[3] < 0) - fg[3] = 0; - - if(fg[order_type::A] > base_mask) - fg[order_type::A] = base_mask; - if(fg[order_type::R] > fg[order_type::A]) - fg[order_type::R] = fg[order_type::A]; - if(fg[order_type::G] > fg[order_type::A]) - fg[order_type::G] = fg[order_type::A]; - if(fg[order_type::B] > fg[order_type::A]) - fg[order_type::B] = fg[order_type::A]; - - span->r = (value_type)fg[order_type::R]; - span->g = (value_type)fg[order_type::G]; - span->b = (value_type)fg[order_type::B]; - span->a = (value_type)fg[order_type::A]; - - ++span; - ++base_type::interpolator(); - } while(--len); - } - } -}; -} // namespace o2agg - -#endif diff --git a/O2Context_AntiGrain/partial_stack_blur.h b/O2Context_AntiGrain/partial_stack_blur.h deleted file mode 100644 index 11d6466e..00000000 --- a/O2Context_AntiGrain/partial_stack_blur.h +++ /dev/null @@ -1,265 +0,0 @@ -/* - * partial_stack_blur.h - * O2Context_AntiGrain - * - * Created by Airy ANDRE on 21/06/11. - * Copyright 2011 plasq. All rights reserved. - * - */ - -#ifndef PARTIAL_BLUR_INCLUDED -#define PARTIAL_BLUR_INCLUDED - -#include - -// Adapted from stack_blur_rgba32 to allow partial blurring - blame the original for the lack of comments -// Actually just use the alpha value since this function is used to cast shadows -// So we blur the alpha channel of the image, and applied the blured alpha to the "r,g,b,a" color parameter -namespace agg { -//======================================================= partial_stack_blur_rgba32 -template -void partial_stack_blur_rgba32(Img &img, unsigned radius, unsigned startX, unsigned endX, unsigned startY, unsigned endY, float r, float g, float b, float globalalpha) { - if(startX >= endX || startY >= endY) { - // Nothing to do - return; - } - - // Clip the rect to the img bounds - unsigned imgW = img.width(); - unsigned imgH = img.height(); - startX = max(0, startX); - startY = max(0, startY); - endX = min(endX, imgW); - endY = min(endY, imgH); - - typedef typename Img::color_type color_type; - typedef typename Img::order_type order_type; - typedef typename Img::value_type value_type; - typedef typename Img::calc_type calc_type; - - enum order_e { - R = order_type::R, - G = order_type::G, - B = order_type::B, - A = order_type::A - }; - - unsigned x, y, xp, yp, i; - unsigned stack_ptr; - unsigned stack_start; - - const int8u *src_pix_ptr; - int8u *dst_pix_ptr; - value_type *stack_pix_ptr; - - unsigned sum_a; - unsigned sum_in_a; - unsigned sum_out_a; - - unsigned w = endX; - unsigned h = endY; - unsigned wm = w - 1; - unsigned hm = h - 1; - - unsigned div; - unsigned mul_sum; - unsigned shr_sum; - - pod_vector stack; - - if(radius > 0) { - const color_type fillColor = color_type(color_type::base_mask * r, color_type::base_mask * g, color_type::base_mask * b, color_type::base_mask * globalalpha).premultiply(); - const color_type clearColor(0, 0, 0, 0); - - calc_type sr = fillColor.r; - calc_type sg = fillColor.g; - calc_type sb = fillColor.b; - calc_type sa = fillColor.a; - - if(radius > 254) - radius = 254; - div = radius * 2 + 1; // center pixels + radius blur on both side - mul_sum = stack_blur_tables::g_stack_blur8_mul[radius]; - shr_sum = stack_blur_tables::g_stack_blur8_shr[radius]; - stack.allocate(div); - - // Horizontal bluring - for(y = startY; y < endY; y++) { - sum_a = - sum_in_a = - sum_out_a = 0; - - src_pix_ptr = img.pix_ptr(startX, y); - for(i = 0; i <= radius; i++) { - stack_pix_ptr = &stack[i]; - value_type a = src_pix_ptr[A]; - *stack_pix_ptr = a; - sum_out_a += a; - sum_a += a * (i + 1); - } - for(i = 1; i <= radius; i++) { - if(i <= wm) - src_pix_ptr += Img::pix_width; - stack_pix_ptr = &stack[i + radius]; - value_type a = src_pix_ptr[A]; - *stack_pix_ptr = a; - sum_in_a += a; - sum_a += a * (radius + 1 - i); - } - - stack_ptr = radius; - xp = radius + startX; - if(xp > wm) - xp = wm; - src_pix_ptr = img.pix_ptr(xp, y); - dst_pix_ptr = img.pix_ptr(startX, y); - for(x = startX; x < endX; x++) { - value_type alpha = (sum_a * mul_sum) >> shr_sum; - - // If we are going to push more A with the same currently blurred value, we won't change - // anything - just go to the next one - if(alpha == src_pix_ptr[A]) { - if(xp >= wm) { - break; - } - if((src_pix_ptr + Img::pix_width)[A] == alpha) { - src_pix_ptr += Img::pix_width; - dst_pix_ptr += Img::pix_width; - ++xp; - continue; - } - } - // We just need to store the alpha blured horizontally - // The final vertical bluring will store the final value - dst_pix_ptr[A] = alpha; - - dst_pix_ptr += Img::pix_width; - - sum_a -= sum_out_a; - - stack_start = stack_ptr + div - radius; - if(stack_start >= div) - stack_start -= div; - stack_pix_ptr = &stack[stack_start]; - - sum_out_a -= *stack_pix_ptr; - - if(xp < wm) { - src_pix_ptr += Img::pix_width; - ++xp; - } - - value_type a = src_pix_ptr[A]; - - *stack_pix_ptr = a; - - sum_in_a += a; - sum_a += sum_in_a; - - ++stack_ptr; - if(stack_ptr >= div) - stack_ptr = 0; - stack_pix_ptr = &stack[stack_ptr]; - - a = *stack_pix_ptr; - sum_out_a += a; - sum_in_a -= a; - } - } - - int stride = img.stride(); - - // Vertical bluring - for(x = startX; x < w; x++) { - sum_a = - sum_in_a = - sum_out_a = 0; - - src_pix_ptr = img.pix_ptr(x, startY); - for(i = 0; i <= radius; i++) { - stack_pix_ptr = &stack[i]; - *stack_pix_ptr = src_pix_ptr[A]; - sum_a += src_pix_ptr[A] * (i + 1); - sum_out_a += src_pix_ptr[A]; - } - for(i = 1; i <= radius; i++) { - if(i <= hm) - src_pix_ptr += stride; - stack_pix_ptr = &stack[i + radius]; - *stack_pix_ptr = src_pix_ptr[A]; - sum_a += src_pix_ptr[A] * (radius + 1 - i); - sum_in_a += src_pix_ptr[A]; - } - - stack_ptr = radius; - yp = startY + radius; - if(yp > hm) - yp = hm; - src_pix_ptr = img.pix_ptr(x, yp); - dst_pix_ptr = img.pix_ptr(x, startY); - for(y = startY; y < h; y++) { - // Store the final color - calc_type alpha = ((sum_a * mul_sum) >> shr_sum); - if(alpha == color_type::base_mask) { - *(color_type *)dst_pix_ptr = fillColor; - } else if(alpha == 0) { - *(color_type *)dst_pix_ptr = clearColor; - } else { - dst_pix_ptr[R] = (sr * alpha + color_type::base_mask) >> color_type::base_shift; - dst_pix_ptr[G] = (sg * alpha + color_type::base_mask) >> color_type::base_shift; - dst_pix_ptr[B] = (sb * alpha + color_type::base_mask) >> color_type::base_shift; - dst_pix_ptr[A] = (sa * alpha + color_type::base_mask) >> color_type::base_shift; - } - // If we are going to push more A with the same currently blurred value, we won't change - // anything - just go to the next one - if(alpha == src_pix_ptr[A]) { - if(yp >= hm) { - dst_pix_ptr += stride; - continue; - } - if((src_pix_ptr + stride)[A] == alpha) { - src_pix_ptr += stride; - ++yp; - dst_pix_ptr += stride; - continue; - } - } - - dst_pix_ptr += stride; - - sum_a -= sum_out_a; - - stack_start = stack_ptr + div - radius; - if(stack_start >= div) - stack_start -= div; - - stack_pix_ptr = &stack[stack_start]; - sum_out_a -= *stack_pix_ptr; - - if(yp < hm) { - src_pix_ptr += stride; - ++yp; - } - - value_type a = src_pix_ptr[A]; - *stack_pix_ptr = a; - - sum_in_a += a; - sum_a += sum_in_a; - - ++stack_ptr; - if(stack_ptr >= div) - stack_ptr = 0; - stack_pix_ptr = &stack[stack_ptr]; - - a = *stack_pix_ptr; - sum_out_a += a; - sum_in_a -= a; - } - } - } -} - -} // namespace agg - -#endif diff --git a/Onyx2D/Onyx2D.xcodeproj/project.pbxproj b/Onyx2D/Onyx2D.xcodeproj/project.pbxproj deleted file mode 100644 index d0caec3a..00000000 --- a/Onyx2D/Onyx2D.xcodeproj/project.pbxproj +++ /dev/null @@ -1,993 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 4970823C13FC0FAE008AE26B /* O2Encoder_JPG.h in Headers */ = {isa = PBXBuildFile; fileRef = 4970823A13FC0FAE008AE26B /* O2Encoder_JPG.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 5AD0CB5014F2E5C6002F0A2B /* O2Defines_libjpeg.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AD0CB4F14F2E5C6002F0A2B /* O2Defines_libjpeg.h */; }; - FE051C6D1221A7440097BA92 /* O2Font_freetype.h in Headers */ = {isa = PBXBuildFile; fileRef = FE051C6C1221A7440097BA92 /* O2Font_freetype.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE06A0131245A9270040F165 /* O2GlyphStencil.h in Headers */ = {isa = PBXBuildFile; fileRef = FE069F501245A9260040F165 /* O2GlyphStencil.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE2759401234039700BD6643 /* O2Context_distill.h in Headers */ = {isa = PBXBuildFile; fileRef = FE27593E1234039700BD6643 /* O2Context_distill.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE39C1EF1202829900A80A71 /* O2ClipState.h in Headers */ = {isa = PBXBuildFile; fileRef = FE39C1ED1202829900A80A71 /* O2ClipState.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE43BE7411FFBAD200119833 /* O2PDFBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43BE7211FFBAD200119833 /* O2PDFBlock.h */; }; - FE44BDB311EBA03700762BF1 /* O2ImageSource_ICNS.h in Headers */ = {isa = PBXBuildFile; fileRef = FE44BDB111EBA03700762BF1 /* O2ImageSource_ICNS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE46535B155B574C0015EF21 /* O2ImageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE465359155B574C0015EF21 /* O2ImageDecoder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE587852126949AA009B9EDF /* O2argb8u.h in Headers */ = {isa = PBXBuildFile; fileRef = FE587851126949AA009B9EDF /* O2argb8u.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE58789412694AE4009B9EDF /* O2argb32f.h in Headers */ = {isa = PBXBuildFile; fileRef = FE58789312694AE4009B9EDF /* O2argb32f.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0A4A116297FA00065D1C /* VGmath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A47116297FA00065D1C /* VGmath.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0A4B116297FA00065D1C /* VGPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A48116297FA00065D1C /* VGPath.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0ADD1162981200065D1C /* gif_lib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A4D1162981100065D1C /* gif_lib.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0ADF1162981200065D1C /* O2TIFFImageDirectory.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A4F1162981100065D1C /* O2TIFFImageDirectory.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AE11162981200065D1C /* O2AffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A511162981100065D1C /* O2AffineTransform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AE31162981200065D1C /* O2BitmapContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A531162981100065D1C /* O2BitmapContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AE51162981200065D1C /* O2Blending.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A551162981100065D1C /* O2Blending.h */; }; - FE5C0AE61162981200065D1C /* O2ClipPhase.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A561162981100065D1C /* O2ClipPhase.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AE81162981200065D1C /* O2Color.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A581162981100065D1C /* O2Color.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AEA1162981200065D1C /* O2ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A5A1162981100065D1C /* O2ColorSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AEC1162981200065D1C /* O2ColorSpace+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A5C1162981100065D1C /* O2ColorSpace+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AEE1162981200065D1C /* O2Context_builtin.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A5E1162981100065D1C /* O2Context_builtin.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AF01162981200065D1C /* O2Context.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A601162981100065D1C /* O2Context.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AF21162981200065D1C /* O2DataConsumer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A621162981100065D1C /* O2DataConsumer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AF41162981200065D1C /* O2DataProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A641162981100065D1C /* O2DataProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AF61162981200065D1C /* O2Decoder_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A661162981100065D1C /* O2Decoder_TIFF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AF81162981200065D1C /* O2Encoder_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A681162981100065D1C /* O2Encoder_TIFF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AFA1162981200065D1C /* O2Exceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A6A1162981100065D1C /* O2Exceptions.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AFB1162981200065D1C /* O2Font_ttf.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A6B1162981100065D1C /* O2Font_ttf.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0AFD1162981200065D1C /* O2Font.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A6D1162981100065D1C /* O2Font.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0AFF1162981200065D1C /* O2Font+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A6F1162981200065D1C /* O2Font+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B011162981200065D1C /* O2Function.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A711162981200065D1C /* O2Function.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B031162981200065D1C /* O2Function+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A731162981200065D1C /* O2Function+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B051162981200065D1C /* O2Geometry.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A751162981200065D1C /* O2Geometry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B071162981200065D1C /* O2GraphicsState.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A771162981200065D1C /* O2GraphicsState.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B091162981200065D1C /* O2Image.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A791162981200065D1C /* O2Image.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B0B1162981200065D1C /* O2Image+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A7B1162981200065D1C /* O2Image+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B0D1162981200065D1C /* O2ImageDestination.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A7D1162981200065D1C /* O2ImageDestination.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B0F1162981200065D1C /* O2ImageSource_BMP.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A7F1162981200065D1C /* O2ImageSource_BMP.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B111162981200065D1C /* O2ImageSource_GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A811162981200065D1C /* O2ImageSource_GIF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B131162981200065D1C /* O2ImageSource_JPEG.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A831162981200065D1C /* O2ImageSource_JPEG.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B151162981200065D1C /* O2ImageSource_PNG.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A851162981200065D1C /* O2ImageSource_PNG.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B171162981200065D1C /* O2ImageSource_TIFF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A871162981200065D1C /* O2ImageSource_TIFF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B191162981200065D1C /* O2ImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A891162981200065D1C /* O2ImageSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B1B1162981200065D1C /* O2Layer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A8B1162981200065D1C /* O2Layer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B1D1162981200065D1C /* O2LZW.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A8D1162981200065D1C /* O2LZW.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B1F1162981200065D1C /* O2MutablePath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A8F1162981200065D1C /* O2MutablePath.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B211162981200065D1C /* O2Paint_axialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A911162981200065D1C /* O2Paint_axialGradient.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B231162981200065D1C /* O2Paint_color.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A931162981200065D1C /* O2Paint_color.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B251162981200065D1C /* O2Paint_image.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A951162981200065D1C /* O2Paint_image.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B271162981200065D1C /* O2Paint_pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A971162981200065D1C /* O2Paint_pattern.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B291162981200065D1C /* O2Paint_radialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A991162981200065D1C /* O2Paint_radialGradient.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B2B1162981200065D1C /* O2Paint_ramp.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A9B1162981200065D1C /* O2Paint_ramp.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B2D1162981200065D1C /* O2Paint.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A9D1162981200065D1C /* O2Paint.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B2F1162981200065D1C /* O2Path.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0A9F1162981200065D1C /* O2Path.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B311162981200065D1C /* O2Pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AA11162981200065D1C /* O2Pattern.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B331162981200065D1C /* O2PDFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AA31162981200065D1C /* O2PDFArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B351162981200065D1C /* O2PDFContentStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AA51162981200065D1C /* O2PDFContentStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B371162981200065D1C /* O2PDFContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AA71162981200065D1C /* O2PDFContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B391162981200065D1C /* O2PDFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AA91162981200065D1C /* O2PDFDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B3B1162981200065D1C /* O2PDFDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AAB1162981200065D1C /* O2PDFDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B3D1162981200065D1C /* O2PDFFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AAD1162981200065D1C /* O2PDFFilter.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B3F1162981200065D1C /* O2PDFFunction_Type2.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AAF1162981200065D1C /* O2PDFFunction_Type2.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B411162981200065D1C /* O2PDFFunction_Type3.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AB11162981200065D1C /* O2PDFFunction_Type3.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B431162981200065D1C /* O2PDFObject_Boolean.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AB31162981200065D1C /* O2PDFObject_Boolean.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B451162981200065D1C /* O2PDFObject_const.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AB51162981200065D1C /* O2PDFObject_const.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B471162981200065D1C /* O2PDFObject_identifier.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AB71162981200065D1C /* O2PDFObject_identifier.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B491162981200065D1C /* O2PDFObject_Integer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AB91162981200065D1C /* O2PDFObject_Integer.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B4B1162981200065D1C /* O2PDFObject_Name.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0ABB1162981200065D1C /* O2PDFObject_Name.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B4D1162981200065D1C /* O2PDFObject_R.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0ABD1162981200065D1C /* O2PDFObject_R.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B4F1162981200065D1C /* O2PDFObject_Real.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0ABF1162981200065D1C /* O2PDFObject_Real.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B511162981200065D1C /* O2PDFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AC11162981200065D1C /* O2PDFObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B531162981200065D1C /* O2PDFOperators.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AC31162981200065D1C /* O2PDFOperators.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B551162981200065D1C /* O2PDFOperatorTable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AC51162981200065D1C /* O2PDFOperatorTable.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B571162981200065D1C /* O2PDFPage.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AC71162981200065D1C /* O2PDFPage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B591162981200065D1C /* O2PDFScanner.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AC91162981200065D1C /* O2PDFScanner.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B5B1162981200065D1C /* O2PDFStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0ACB1162981200065D1C /* O2PDFStream.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B5D1162981200065D1C /* O2PDFString.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0ACD1162981200065D1C /* O2PDFString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B5F1162981200065D1C /* O2PDFxref.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0ACF1162981200065D1C /* O2PDFxref.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B611162981200065D1C /* O2PDFxrefEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AD11162981200065D1C /* O2PDFxrefEntry.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B631162981200065D1C /* O2Shading.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AD31162981200065D1C /* O2Shading.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE5C0B651162981200065D1C /* O2Shading+PDF.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AD51162981200065D1C /* O2Shading+PDF.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B671162981200065D1C /* O2Surface.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AD71162981200065D1C /* O2Surface.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B691162981200065D1C /* O2TTFDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0AD91162981200065D1C /* O2TTFDecoder.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5C0B6B1162981200065D1C /* O2zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5C0ADB1162981200065D1C /* O2zlib.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5F4C7A12A853D000F5F334 /* O2Context_builtin_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4C6C12A853D000F5F334 /* O2Context_builtin_gdi.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5F4C7C12A853D000F5F334 /* O2Context_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4C6E12A853D000F5F334 /* O2Context_gdi.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5F4C7E12A853D000F5F334 /* O2DeviceContext_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4C7012A853D000F5F334 /* O2DeviceContext_gdi.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5F4C8012A853D000F5F334 /* O2DeviceContext_gdiDIBSection.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4C7212A853D000F5F334 /* O2DeviceContext_gdiDIBSection.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5F4C8212A853D000F5F334 /* O2Font_gdi.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4C7412A853D000F5F334 /* O2Font_gdi.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5F4C8412A853D000F5F334 /* O2Surface_DIBSection.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4C7612A853D000F5F334 /* O2Surface_DIBSection.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE5F4C8612A853D000F5F334 /* Win32Font.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F4C7812A853D000F5F334 /* Win32Font.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE71EDAB11FA890300E6F801 /* O2PDFFunction_Type4.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71EDA911FA890300E6F801 /* O2PDFFunction_Type4.h */; }; - FE71EF2811FBCA7E00E6F801 /* O2Encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71EF2611FBCA7E00E6F801 /* O2Encoding.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE71F0CB11FC7CD200E6F801 /* O2PDFCharWidths.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F0C911FC7CD200E6F801 /* O2PDFCharWidths.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE71F1B911FCB6DF00E6F801 /* O2PDFFunction_Type0.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F1B711FCB6DF00E6F801 /* O2PDFFunction_Type0.h */; }; - FE71F28811FD221B00E6F801 /* O2PDFFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71F28611FD221B00E6F801 /* O2PDFFont.h */; }; - FE99DB1912843F74006D789F /* O2Encoder_PNG.h in Headers */ = {isa = PBXBuildFile; fileRef = FE99DB1712843F74006D789F /* O2Encoder_PNG.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE9ACF0C155EB85C002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9ACF08155EB85C002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.h */; }; - FE9ACF0E155EB85C002AFCA9 /* O2ImageDecoder_JPEG_stb.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9ACF0A155EB85C002AFCA9 /* O2ImageDecoder_JPEG_stb.h */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE081BB7118A165F0026A20E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE081BAA118A165F0026A20E /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A7EC0C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE081BC9118A16710026A20E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE081BAA118A165F0026A20E /* Foundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A5970C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 32DBCF5E0370ADEE00C91783 /* Onyx2D_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Onyx2D_Prefix.pch; sourceTree = ""; }; - 4970823A13FC0FAE008AE26B /* O2Encoder_JPG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoder_JPG.h; sourceTree = ""; }; - 4970823B13FC0FAE008AE26B /* O2Encoder_JPG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoder_JPG.m; sourceTree = ""; }; - 5AD0CB4F14F2E5C6002F0A2B /* O2Defines_libjpeg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Defines_libjpeg.h; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* Onyx2D.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Onyx2D.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE051C6C1221A7440097BA92 /* O2Font_freetype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font_freetype.h; sourceTree = ""; }; - FE069F4E1245A9260040F165 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = InfoPlist.strings; sourceTree = ""; }; - FE069F4F1245A9260040F165 /* O2Font_freetype.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font_freetype.m; sourceTree = ""; }; - FE069F501245A9260040F165 /* O2GlyphStencil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2GlyphStencil.h; sourceTree = ""; }; - FE069F511245A9260040F165 /* O2GlyphStencil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2GlyphStencil.m; sourceTree = ""; }; - FE06B3ED1430E9150071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B3EE1430E9150071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B3EF1430E9150071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B3F01430E9150071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B3F11430E9150071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B3F21430E9150071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B3F31430E9150071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B3F41430E9150071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B3F51430E9150071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B3F61430E9150071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B3F71430E9150071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B3F81430E9150071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B3F91430E9150071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B3FA1430E9150071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B3FB1430E9150071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE081BAA118A165F0026A20E /* Foundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Foundation.xcodeproj; path = ../Foundation/Foundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE27593E1234039700BD6643 /* O2Context_distill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_distill.h; sourceTree = ""; }; - FE27593F1234039700BD6643 /* O2Context_distill.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_distill.m; sourceTree = ""; }; - FE39C1ED1202829900A80A71 /* O2ClipState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ClipState.h; sourceTree = ""; }; - FE39C1EE1202829900A80A71 /* O2ClipState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ClipState.m; sourceTree = ""; }; - FE43BE7211FFBAD200119833 /* O2PDFBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFBlock.h; sourceTree = ""; }; - FE43BE7311FFBAD200119833 /* O2PDFBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFBlock.m; sourceTree = ""; }; - FE44BDB111EBA03700762BF1 /* O2ImageSource_ICNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_ICNS.h; sourceTree = ""; }; - FE44BDB211EBA03700762BF1 /* O2ImageSource_ICNS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_ICNS.m; sourceTree = ""; }; - FE465359155B574C0015EF21 /* O2ImageDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageDecoder.h; sourceTree = ""; }; - FE46535A155B574C0015EF21 /* O2ImageDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder.m; sourceTree = ""; }; - FE587851126949AA009B9EDF /* O2argb8u.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2argb8u.h; sourceTree = ""; }; - FE58789312694AE4009B9EDF /* O2argb32f.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2argb32f.h; sourceTree = ""; }; - FE5C0A47116297FA00065D1C /* VGmath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VGmath.h; sourceTree = ""; }; - FE5C0A48116297FA00065D1C /* VGPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VGPath.h; sourceTree = ""; }; - FE5C0A49116297FA00065D1C /* VGPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VGPath.m; sourceTree = ""; }; - FE5C0A4D1162981100065D1C /* gif_lib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gif_lib.h; sourceTree = ""; }; - FE5C0A4E1162981100065D1C /* gif_lib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = gif_lib.m; sourceTree = ""; }; - FE5C0A4F1162981100065D1C /* O2TIFFImageDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2TIFFImageDirectory.h; sourceTree = ""; }; - FE5C0A501162981100065D1C /* O2TIFFImageDirectory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2TIFFImageDirectory.m; sourceTree = ""; }; - FE5C0A511162981100065D1C /* O2AffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2AffineTransform.h; sourceTree = ""; }; - FE5C0A521162981100065D1C /* O2AffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2AffineTransform.m; sourceTree = ""; }; - FE5C0A531162981100065D1C /* O2BitmapContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2BitmapContext.h; sourceTree = ""; }; - FE5C0A541162981100065D1C /* O2BitmapContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2BitmapContext.m; sourceTree = ""; }; - FE5C0A551162981100065D1C /* O2Blending.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Blending.h; sourceTree = ""; }; - FE5C0A561162981100065D1C /* O2ClipPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ClipPhase.h; sourceTree = ""; }; - FE5C0A571162981100065D1C /* O2ClipPhase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ClipPhase.m; sourceTree = ""; }; - FE5C0A581162981100065D1C /* O2Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Color.h; sourceTree = ""; }; - FE5C0A591162981100065D1C /* O2Color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Color.m; sourceTree = ""; }; - FE5C0A5A1162981100065D1C /* O2ColorSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ColorSpace.h; sourceTree = ""; }; - FE5C0A5B1162981100065D1C /* O2ColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ColorSpace.m; sourceTree = ""; }; - FE5C0A5C1162981100065D1C /* O2ColorSpace+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2ColorSpace+PDF.h"; sourceTree = ""; }; - FE5C0A5D1162981100065D1C /* O2ColorSpace+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2ColorSpace+PDF.m"; sourceTree = ""; }; - FE5C0A5E1162981100065D1C /* O2Context_builtin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_builtin.h; sourceTree = ""; }; - FE5C0A5F1162981100065D1C /* O2Context_builtin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_builtin.m; sourceTree = ""; }; - FE5C0A601162981100065D1C /* O2Context.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context.h; sourceTree = ""; }; - FE5C0A611162981100065D1C /* O2Context.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context.m; sourceTree = ""; }; - FE5C0A621162981100065D1C /* O2DataConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2DataConsumer.h; sourceTree = ""; }; - FE5C0A631162981100065D1C /* O2DataConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2DataConsumer.m; sourceTree = ""; }; - FE5C0A641162981100065D1C /* O2DataProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2DataProvider.h; sourceTree = ""; }; - FE5C0A651162981100065D1C /* O2DataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2DataProvider.m; sourceTree = ""; }; - FE5C0A661162981100065D1C /* O2Decoder_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Decoder_TIFF.h; sourceTree = ""; }; - FE5C0A671162981100065D1C /* O2Decoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Decoder_TIFF.m; sourceTree = ""; }; - FE5C0A681162981100065D1C /* O2Encoder_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoder_TIFF.h; sourceTree = ""; }; - FE5C0A691162981100065D1C /* O2Encoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoder_TIFF.m; sourceTree = ""; }; - FE5C0A6A1162981100065D1C /* O2Exceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Exceptions.h; sourceTree = ""; }; - FE5C0A6B1162981100065D1C /* O2Font_ttf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font_ttf.h; sourceTree = ""; }; - FE5C0A6C1162981100065D1C /* O2Font_ttf.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font_ttf.m; sourceTree = ""; }; - FE5C0A6D1162981100065D1C /* O2Font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font.h; sourceTree = ""; }; - FE5C0A6E1162981200065D1C /* O2Font.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font.m; sourceTree = ""; }; - FE5C0A6F1162981200065D1C /* O2Font+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Font+PDF.h"; sourceTree = ""; }; - FE5C0A701162981200065D1C /* O2Font+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Font+PDF.m"; sourceTree = ""; }; - FE5C0A711162981200065D1C /* O2Function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Function.h; sourceTree = ""; }; - FE5C0A721162981200065D1C /* O2Function.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Function.m; sourceTree = ""; }; - FE5C0A731162981200065D1C /* O2Function+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Function+PDF.h"; sourceTree = ""; }; - FE5C0A741162981200065D1C /* O2Function+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Function+PDF.m"; sourceTree = ""; }; - FE5C0A751162981200065D1C /* O2Geometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Geometry.h; sourceTree = ""; }; - FE5C0A761162981200065D1C /* O2Geometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Geometry.m; sourceTree = ""; }; - FE5C0A771162981200065D1C /* O2GraphicsState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2GraphicsState.h; sourceTree = ""; }; - FE5C0A781162981200065D1C /* O2GraphicsState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2GraphicsState.m; sourceTree = ""; }; - FE5C0A791162981200065D1C /* O2Image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Image.h; sourceTree = ""; }; - FE5C0A7A1162981200065D1C /* O2Image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Image.m; sourceTree = ""; }; - FE5C0A7B1162981200065D1C /* O2Image+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Image+PDF.h"; sourceTree = ""; }; - FE5C0A7C1162981200065D1C /* O2Image+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Image+PDF.m"; sourceTree = ""; }; - FE5C0A7D1162981200065D1C /* O2ImageDestination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageDestination.h; sourceTree = ""; }; - FE5C0A7E1162981200065D1C /* O2ImageDestination.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDestination.m; sourceTree = ""; }; - FE5C0A7F1162981200065D1C /* O2ImageSource_BMP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_BMP.h; sourceTree = ""; }; - FE5C0A801162981200065D1C /* O2ImageSource_BMP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_BMP.m; sourceTree = ""; }; - FE5C0A811162981200065D1C /* O2ImageSource_GIF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_GIF.h; sourceTree = ""; }; - FE5C0A821162981200065D1C /* O2ImageSource_GIF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_GIF.m; sourceTree = ""; }; - FE5C0A831162981200065D1C /* O2ImageSource_JPEG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_JPEG.h; sourceTree = ""; }; - FE5C0A841162981200065D1C /* O2ImageSource_JPEG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_JPEG.m; sourceTree = ""; }; - FE5C0A851162981200065D1C /* O2ImageSource_PNG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_PNG.h; sourceTree = ""; }; - FE5C0A861162981200065D1C /* O2ImageSource_PNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_PNG.m; sourceTree = ""; }; - FE5C0A871162981200065D1C /* O2ImageSource_TIFF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource_TIFF.h; sourceTree = ""; }; - FE5C0A881162981200065D1C /* O2ImageSource_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource_TIFF.m; sourceTree = ""; }; - FE5C0A891162981200065D1C /* O2ImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageSource.h; sourceTree = ""; }; - FE5C0A8A1162981200065D1C /* O2ImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageSource.m; sourceTree = ""; }; - FE5C0A8B1162981200065D1C /* O2Layer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Layer.h; sourceTree = ""; }; - FE5C0A8C1162981200065D1C /* O2Layer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Layer.m; sourceTree = ""; }; - FE5C0A8D1162981200065D1C /* O2LZW.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2LZW.h; sourceTree = ""; }; - FE5C0A8E1162981200065D1C /* O2LZW.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2LZW.m; sourceTree = ""; }; - FE5C0A8F1162981200065D1C /* O2MutablePath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2MutablePath.h; sourceTree = ""; }; - FE5C0A901162981200065D1C /* O2MutablePath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2MutablePath.m; sourceTree = ""; }; - FE5C0A911162981200065D1C /* O2Paint_axialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_axialGradient.h; sourceTree = ""; }; - FE5C0A921162981200065D1C /* O2Paint_axialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_axialGradient.m; sourceTree = ""; }; - FE5C0A931162981200065D1C /* O2Paint_color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_color.h; sourceTree = ""; }; - FE5C0A941162981200065D1C /* O2Paint_color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_color.m; sourceTree = ""; }; - FE5C0A951162981200065D1C /* O2Paint_image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_image.h; sourceTree = ""; }; - FE5C0A961162981200065D1C /* O2Paint_image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_image.m; sourceTree = ""; }; - FE5C0A971162981200065D1C /* O2Paint_pattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_pattern.h; sourceTree = ""; }; - FE5C0A981162981200065D1C /* O2Paint_pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_pattern.m; sourceTree = ""; }; - FE5C0A991162981200065D1C /* O2Paint_radialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_radialGradient.h; sourceTree = ""; }; - FE5C0A9A1162981200065D1C /* O2Paint_radialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_radialGradient.m; sourceTree = ""; }; - FE5C0A9B1162981200065D1C /* O2Paint_ramp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint_ramp.h; sourceTree = ""; }; - FE5C0A9C1162981200065D1C /* O2Paint_ramp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint_ramp.m; sourceTree = ""; }; - FE5C0A9D1162981200065D1C /* O2Paint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Paint.h; sourceTree = ""; }; - FE5C0A9E1162981200065D1C /* O2Paint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Paint.m; sourceTree = ""; }; - FE5C0A9F1162981200065D1C /* O2Path.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Path.h; sourceTree = ""; }; - FE5C0AA01162981200065D1C /* O2Path.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Path.m; sourceTree = ""; }; - FE5C0AA11162981200065D1C /* O2Pattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Pattern.h; sourceTree = ""; }; - FE5C0AA21162981200065D1C /* O2Pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Pattern.m; sourceTree = ""; }; - FE5C0AA31162981200065D1C /* O2PDFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFArray.h; sourceTree = ""; }; - FE5C0AA41162981200065D1C /* O2PDFArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFArray.m; sourceTree = ""; }; - FE5C0AA51162981200065D1C /* O2PDFContentStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFContentStream.h; sourceTree = ""; }; - FE5C0AA61162981200065D1C /* O2PDFContentStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFContentStream.m; sourceTree = ""; }; - FE5C0AA71162981200065D1C /* O2PDFContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFContext.h; sourceTree = ""; }; - FE5C0AA81162981200065D1C /* O2PDFContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFContext.m; sourceTree = ""; }; - FE5C0AA91162981200065D1C /* O2PDFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFDictionary.h; sourceTree = ""; }; - FE5C0AAA1162981200065D1C /* O2PDFDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFDictionary.m; sourceTree = ""; }; - FE5C0AAB1162981200065D1C /* O2PDFDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFDocument.h; sourceTree = ""; }; - FE5C0AAC1162981200065D1C /* O2PDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFDocument.m; sourceTree = ""; }; - FE5C0AAD1162981200065D1C /* O2PDFFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFilter.h; sourceTree = ""; }; - FE5C0AAE1162981200065D1C /* O2PDFFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFilter.m; sourceTree = ""; }; - FE5C0AAF1162981200065D1C /* O2PDFFunction_Type2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type2.h; sourceTree = ""; }; - FE5C0AB01162981200065D1C /* O2PDFFunction_Type2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type2.m; sourceTree = ""; }; - FE5C0AB11162981200065D1C /* O2PDFFunction_Type3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type3.h; sourceTree = ""; }; - FE5C0AB21162981200065D1C /* O2PDFFunction_Type3.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type3.m; sourceTree = ""; }; - FE5C0AB31162981200065D1C /* O2PDFObject_Boolean.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Boolean.h; sourceTree = ""; }; - FE5C0AB41162981200065D1C /* O2PDFObject_Boolean.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Boolean.m; sourceTree = ""; }; - FE5C0AB51162981200065D1C /* O2PDFObject_const.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_const.h; sourceTree = ""; }; - FE5C0AB61162981200065D1C /* O2PDFObject_const.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_const.m; sourceTree = ""; }; - FE5C0AB71162981200065D1C /* O2PDFObject_identifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_identifier.h; sourceTree = ""; }; - FE5C0AB81162981200065D1C /* O2PDFObject_identifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_identifier.m; sourceTree = ""; }; - FE5C0AB91162981200065D1C /* O2PDFObject_Integer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Integer.h; sourceTree = ""; }; - FE5C0ABA1162981200065D1C /* O2PDFObject_Integer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Integer.m; sourceTree = ""; }; - FE5C0ABB1162981200065D1C /* O2PDFObject_Name.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Name.h; sourceTree = ""; }; - FE5C0ABC1162981200065D1C /* O2PDFObject_Name.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Name.m; sourceTree = ""; }; - FE5C0ABD1162981200065D1C /* O2PDFObject_R.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_R.h; sourceTree = ""; }; - FE5C0ABE1162981200065D1C /* O2PDFObject_R.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_R.m; sourceTree = ""; }; - FE5C0ABF1162981200065D1C /* O2PDFObject_Real.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject_Real.h; sourceTree = ""; }; - FE5C0AC01162981200065D1C /* O2PDFObject_Real.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject_Real.m; sourceTree = ""; }; - FE5C0AC11162981200065D1C /* O2PDFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFObject.h; sourceTree = ""; }; - FE5C0AC21162981200065D1C /* O2PDFObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFObject.m; sourceTree = ""; }; - FE5C0AC31162981200065D1C /* O2PDFOperators.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFOperators.h; sourceTree = ""; }; - FE5C0AC41162981200065D1C /* O2PDFOperators.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFOperators.m; sourceTree = ""; }; - FE5C0AC51162981200065D1C /* O2PDFOperatorTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFOperatorTable.h; sourceTree = ""; }; - FE5C0AC61162981200065D1C /* O2PDFOperatorTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFOperatorTable.m; sourceTree = ""; }; - FE5C0AC71162981200065D1C /* O2PDFPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFPage.h; sourceTree = ""; }; - FE5C0AC81162981200065D1C /* O2PDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFPage.m; sourceTree = ""; }; - FE5C0AC91162981200065D1C /* O2PDFScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFScanner.h; sourceTree = ""; }; - FE5C0ACA1162981200065D1C /* O2PDFScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFScanner.m; sourceTree = ""; }; - FE5C0ACB1162981200065D1C /* O2PDFStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFStream.h; sourceTree = ""; }; - FE5C0ACC1162981200065D1C /* O2PDFStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFStream.m; sourceTree = ""; }; - FE5C0ACD1162981200065D1C /* O2PDFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFString.h; sourceTree = ""; }; - FE5C0ACE1162981200065D1C /* O2PDFString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFString.m; sourceTree = ""; }; - FE5C0ACF1162981200065D1C /* O2PDFxref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFxref.h; sourceTree = ""; }; - FE5C0AD01162981200065D1C /* O2PDFxref.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFxref.m; sourceTree = ""; }; - FE5C0AD11162981200065D1C /* O2PDFxrefEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFxrefEntry.h; sourceTree = ""; }; - FE5C0AD21162981200065D1C /* O2PDFxrefEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFxrefEntry.m; sourceTree = ""; }; - FE5C0AD31162981200065D1C /* O2Shading.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Shading.h; sourceTree = ""; }; - FE5C0AD41162981200065D1C /* O2Shading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Shading.m; sourceTree = ""; }; - FE5C0AD51162981200065D1C /* O2Shading+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "O2Shading+PDF.h"; sourceTree = ""; }; - FE5C0AD61162981200065D1C /* O2Shading+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "O2Shading+PDF.m"; sourceTree = ""; }; - FE5C0AD71162981200065D1C /* O2Surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Surface.h; sourceTree = ""; }; - FE5C0AD81162981200065D1C /* O2Surface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Surface.m; sourceTree = ""; }; - FE5C0AD91162981200065D1C /* O2TTFDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2TTFDecoder.h; sourceTree = ""; }; - FE5C0ADA1162981200065D1C /* O2TTFDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2TTFDecoder.m; sourceTree = ""; }; - FE5C0ADB1162981200065D1C /* O2zlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2zlib.h; sourceTree = ""; }; - FE5C0ADC1162981200065D1C /* O2zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2zlib.m; sourceTree = ""; }; - FE5F4C6C12A853D000F5F334 /* O2Context_builtin_gdi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_builtin_gdi.h; sourceTree = ""; }; - FE5F4C6D12A853D000F5F334 /* O2Context_builtin_gdi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_builtin_gdi.m; sourceTree = ""; }; - FE5F4C6E12A853D000F5F334 /* O2Context_gdi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Context_gdi.h; sourceTree = ""; }; - FE5F4C6F12A853D000F5F334 /* O2Context_gdi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Context_gdi.m; sourceTree = ""; }; - FE5F4C7012A853D000F5F334 /* O2DeviceContext_gdi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2DeviceContext_gdi.h; sourceTree = ""; }; - FE5F4C7112A853D000F5F334 /* O2DeviceContext_gdi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2DeviceContext_gdi.m; sourceTree = ""; }; - FE5F4C7212A853D000F5F334 /* O2DeviceContext_gdiDIBSection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2DeviceContext_gdiDIBSection.h; sourceTree = ""; }; - FE5F4C7312A853D000F5F334 /* O2DeviceContext_gdiDIBSection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2DeviceContext_gdiDIBSection.m; sourceTree = ""; }; - FE5F4C7412A853D000F5F334 /* O2Font_gdi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font_gdi.h; sourceTree = ""; }; - FE5F4C7512A853D000F5F334 /* O2Font_gdi.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font_gdi.m; sourceTree = ""; }; - FE5F4C7612A853D000F5F334 /* O2Surface_DIBSection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Surface_DIBSection.h; sourceTree = ""; }; - FE5F4C7712A853D000F5F334 /* O2Surface_DIBSection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Surface_DIBSection.m; sourceTree = ""; }; - FE5F4C7812A853D000F5F334 /* Win32Font.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Win32Font.h; sourceTree = ""; }; - FE5F4C7912A853D000F5F334 /* Win32Font.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Win32Font.m; sourceTree = ""; }; - FE7086F01431183D00B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE71EDA911FA890300E6F801 /* O2PDFFunction_Type4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type4.h; sourceTree = ""; }; - FE71EDAA11FA890300E6F801 /* O2PDFFunction_Type4.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type4.m; sourceTree = ""; }; - FE71EF2611FBCA7E00E6F801 /* O2Encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoding.h; sourceTree = ""; }; - FE71EF2711FBCA7E00E6F801 /* O2Encoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoding.m; sourceTree = ""; }; - FE71F0C911FC7CD200E6F801 /* O2PDFCharWidths.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFCharWidths.h; sourceTree = ""; }; - FE71F0CA11FC7CD200E6F801 /* O2PDFCharWidths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFCharWidths.m; sourceTree = ""; }; - FE71F1B711FCB6DF00E6F801 /* O2PDFFunction_Type0.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFunction_Type0.h; sourceTree = ""; }; - FE71F1B811FCB6DF00E6F801 /* O2PDFFunction_Type0.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFunction_Type0.m; sourceTree = ""; }; - FE71F28611FD221B00E6F801 /* O2PDFFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2PDFFont.h; sourceTree = ""; }; - FE71F28711FD221B00E6F801 /* O2PDFFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2PDFFont.m; sourceTree = ""; }; - FE7F724D12AF4DA300FDF52D /* O2argb8u.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2argb8u.m; sourceTree = ""; }; - FE7F724E12AF4DA300FDF52D /* O2argb32f.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2argb32f.m; sourceTree = ""; }; - FE99DB1712843F74006D789F /* O2Encoder_PNG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Encoder_PNG.h; sourceTree = ""; }; - FE99DB1812843F74006D789F /* O2Encoder_PNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Encoder_PNG.m; sourceTree = ""; }; - FE9ACF08155EB85C002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageDecoder_JPEG_libjpeg.h; sourceTree = ""; }; - FE9ACF09155EB85C002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder_JPEG_libjpeg.m; sourceTree = ""; }; - FE9ACF0A155EB85C002AFCA9 /* O2ImageDecoder_JPEG_stb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageDecoder_JPEG_stb.h; sourceTree = ""; }; - FE9ACF0B155EB85C002AFCA9 /* O2ImageDecoder_JPEG_stb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder_JPEG_stb.m; sourceTree = ""; }; - FEC0A427170935DE002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A428170935DE002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A429170935DE002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A42A170935DE002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A42B170935DE002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A42C170935DE002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A42D170935DE002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A42E170935DE002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* Onyx2D.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* Onyx2D */ = { - isa = PBXGroup; - children = ( - FE9ACF08155EB85C002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.h */, - FE9ACF09155EB85C002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.m */, - FE9ACF0A155EB85C002AFCA9 /* O2ImageDecoder_JPEG_stb.h */, - FE9ACF0B155EB85C002AFCA9 /* O2ImageDecoder_JPEG_stb.m */, - FE465359155B574C0015EF21 /* O2ImageDecoder.h */, - FE46535A155B574C0015EF21 /* O2ImageDecoder.m */, - FE06B3EC1430E9150071169B /* xcconfig */, - FE7F724D12AF4DA300FDF52D /* O2argb8u.m */, - FE7F724E12AF4DA300FDF52D /* O2argb32f.m */, - FE5F4C6B12A853B800F5F334 /* platform_Windows */, - FE99DB1712843F74006D789F /* O2Encoder_PNG.h */, - FE99DB1812843F74006D789F /* O2Encoder_PNG.m */, - 4970823A13FC0FAE008AE26B /* O2Encoder_JPG.h */, - 4970823B13FC0FAE008AE26B /* O2Encoder_JPG.m */, - 5AD0CB4F14F2E5C6002F0A2B /* O2Defines_libjpeg.h */, - FE58789312694AE4009B9EDF /* O2argb32f.h */, - FE587851126949AA009B9EDF /* O2argb8u.h */, - FE069F4C1245A9260040F165 /* English.lproj */, - FE069F4F1245A9260040F165 /* O2Font_freetype.m */, - FE069F501245A9260040F165 /* O2GlyphStencil.h */, - FE069F511245A9260040F165 /* O2GlyphStencil.m */, - FE27593E1234039700BD6643 /* O2Context_distill.h */, - FE27593F1234039700BD6643 /* O2Context_distill.m */, - FE051C6C1221A7440097BA92 /* O2Font_freetype.h */, - FE39C1ED1202829900A80A71 /* O2ClipState.h */, - FE39C1EE1202829900A80A71 /* O2ClipState.m */, - FE43BE7211FFBAD200119833 /* O2PDFBlock.h */, - FE43BE7311FFBAD200119833 /* O2PDFBlock.m */, - FE71F28611FD221B00E6F801 /* O2PDFFont.h */, - FE71F28711FD221B00E6F801 /* O2PDFFont.m */, - FE71F1B711FCB6DF00E6F801 /* O2PDFFunction_Type0.h */, - FE71F1B811FCB6DF00E6F801 /* O2PDFFunction_Type0.m */, - FE71F0C911FC7CD200E6F801 /* O2PDFCharWidths.h */, - FE71F0CA11FC7CD200E6F801 /* O2PDFCharWidths.m */, - FE71EF2611FBCA7E00E6F801 /* O2Encoding.h */, - FE71EF2711FBCA7E00E6F801 /* O2Encoding.m */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - FE081BAA118A165F0026A20E /* Foundation.xcodeproj */, - FE5C0A4D1162981100065D1C /* gif_lib.h */, - FE5C0A4E1162981100065D1C /* gif_lib.m */, - FE5C0A511162981100065D1C /* O2AffineTransform.h */, - FE5C0A521162981100065D1C /* O2AffineTransform.m */, - FE5C0A531162981100065D1C /* O2BitmapContext.h */, - FE5C0A541162981100065D1C /* O2BitmapContext.m */, - FE5C0A551162981100065D1C /* O2Blending.h */, - FE5C0A561162981100065D1C /* O2ClipPhase.h */, - FE5C0A571162981100065D1C /* O2ClipPhase.m */, - FE5C0A581162981100065D1C /* O2Color.h */, - FE5C0A591162981100065D1C /* O2Color.m */, - FE5C0A5C1162981100065D1C /* O2ColorSpace+PDF.h */, - FE5C0A5D1162981100065D1C /* O2ColorSpace+PDF.m */, - FE5C0A5A1162981100065D1C /* O2ColorSpace.h */, - FE5C0A5B1162981100065D1C /* O2ColorSpace.m */, - FE5C0A601162981100065D1C /* O2Context.h */, - FE5C0A611162981100065D1C /* O2Context.m */, - FE5C0A5E1162981100065D1C /* O2Context_builtin.h */, - FE5C0A5F1162981100065D1C /* O2Context_builtin.m */, - FE5C0A621162981100065D1C /* O2DataConsumer.h */, - FE5C0A631162981100065D1C /* O2DataConsumer.m */, - FE5C0A641162981100065D1C /* O2DataProvider.h */, - FE5C0A651162981100065D1C /* O2DataProvider.m */, - FE5C0A661162981100065D1C /* O2Decoder_TIFF.h */, - FE5C0A671162981100065D1C /* O2Decoder_TIFF.m */, - FE5C0A681162981100065D1C /* O2Encoder_TIFF.h */, - FE5C0A691162981100065D1C /* O2Encoder_TIFF.m */, - FE5C0A6A1162981100065D1C /* O2Exceptions.h */, - FE5C0A6F1162981200065D1C /* O2Font+PDF.h */, - FE5C0A701162981200065D1C /* O2Font+PDF.m */, - FE5C0A6D1162981100065D1C /* O2Font.h */, - FE5C0A6E1162981200065D1C /* O2Font.m */, - FE5C0A6B1162981100065D1C /* O2Font_ttf.h */, - FE5C0A6C1162981100065D1C /* O2Font_ttf.m */, - FE5C0A731162981200065D1C /* O2Function+PDF.h */, - FE5C0A741162981200065D1C /* O2Function+PDF.m */, - FE5C0A711162981200065D1C /* O2Function.h */, - FE5C0A721162981200065D1C /* O2Function.m */, - FE5C0A751162981200065D1C /* O2Geometry.h */, - FE5C0A761162981200065D1C /* O2Geometry.m */, - FE5C0A771162981200065D1C /* O2GraphicsState.h */, - FE5C0A781162981200065D1C /* O2GraphicsState.m */, - FE5C0A7B1162981200065D1C /* O2Image+PDF.h */, - FE5C0A7C1162981200065D1C /* O2Image+PDF.m */, - FE5C0A791162981200065D1C /* O2Image.h */, - FE5C0A7A1162981200065D1C /* O2Image.m */, - FE5C0A7D1162981200065D1C /* O2ImageDestination.h */, - FE5C0A7E1162981200065D1C /* O2ImageDestination.m */, - FE5C0A891162981200065D1C /* O2ImageSource.h */, - FE5C0A8A1162981200065D1C /* O2ImageSource.m */, - FE5C0A7F1162981200065D1C /* O2ImageSource_BMP.h */, - FE5C0A801162981200065D1C /* O2ImageSource_BMP.m */, - FE5C0A811162981200065D1C /* O2ImageSource_GIF.h */, - FE5C0A821162981200065D1C /* O2ImageSource_GIF.m */, - FE44BDB111EBA03700762BF1 /* O2ImageSource_ICNS.h */, - FE44BDB211EBA03700762BF1 /* O2ImageSource_ICNS.m */, - FE5C0A831162981200065D1C /* O2ImageSource_JPEG.h */, - FE5C0A841162981200065D1C /* O2ImageSource_JPEG.m */, - FE5C0A851162981200065D1C /* O2ImageSource_PNG.h */, - FE5C0A861162981200065D1C /* O2ImageSource_PNG.m */, - FE5C0A871162981200065D1C /* O2ImageSource_TIFF.h */, - FE5C0A881162981200065D1C /* O2ImageSource_TIFF.m */, - FE5C0A8B1162981200065D1C /* O2Layer.h */, - FE5C0A8C1162981200065D1C /* O2Layer.m */, - FE5C0A8D1162981200065D1C /* O2LZW.h */, - FE5C0A8E1162981200065D1C /* O2LZW.m */, - FE5C0A8F1162981200065D1C /* O2MutablePath.h */, - FE5C0A901162981200065D1C /* O2MutablePath.m */, - FE5C0A9D1162981200065D1C /* O2Paint.h */, - FE5C0A9E1162981200065D1C /* O2Paint.m */, - FE5C0A911162981200065D1C /* O2Paint_axialGradient.h */, - FE5C0A921162981200065D1C /* O2Paint_axialGradient.m */, - FE5C0A931162981200065D1C /* O2Paint_color.h */, - FE5C0A941162981200065D1C /* O2Paint_color.m */, - FE5C0A951162981200065D1C /* O2Paint_image.h */, - FE5C0A961162981200065D1C /* O2Paint_image.m */, - FE5C0A971162981200065D1C /* O2Paint_pattern.h */, - FE5C0A981162981200065D1C /* O2Paint_pattern.m */, - FE5C0A991162981200065D1C /* O2Paint_radialGradient.h */, - FE5C0A9A1162981200065D1C /* O2Paint_radialGradient.m */, - FE5C0A9B1162981200065D1C /* O2Paint_ramp.h */, - FE5C0A9C1162981200065D1C /* O2Paint_ramp.m */, - FE5C0A9F1162981200065D1C /* O2Path.h */, - FE5C0AA01162981200065D1C /* O2Path.m */, - FE5C0AA11162981200065D1C /* O2Pattern.h */, - FE5C0AA21162981200065D1C /* O2Pattern.m */, - FE5C0AA31162981200065D1C /* O2PDFArray.h */, - FE5C0AA41162981200065D1C /* O2PDFArray.m */, - FE5C0AA51162981200065D1C /* O2PDFContentStream.h */, - FE5C0AA61162981200065D1C /* O2PDFContentStream.m */, - FE5C0AA71162981200065D1C /* O2PDFContext.h */, - FE5C0AA81162981200065D1C /* O2PDFContext.m */, - FE5C0AA91162981200065D1C /* O2PDFDictionary.h */, - FE5C0AAA1162981200065D1C /* O2PDFDictionary.m */, - FE5C0AAB1162981200065D1C /* O2PDFDocument.h */, - FE5C0AAC1162981200065D1C /* O2PDFDocument.m */, - FE5C0AAD1162981200065D1C /* O2PDFFilter.h */, - FE5C0AAE1162981200065D1C /* O2PDFFilter.m */, - FE5C0AAF1162981200065D1C /* O2PDFFunction_Type2.h */, - FE5C0AB01162981200065D1C /* O2PDFFunction_Type2.m */, - FE5C0AB11162981200065D1C /* O2PDFFunction_Type3.h */, - FE5C0AB21162981200065D1C /* O2PDFFunction_Type3.m */, - FE71EDA911FA890300E6F801 /* O2PDFFunction_Type4.h */, - FE71EDAA11FA890300E6F801 /* O2PDFFunction_Type4.m */, - FE5C0AC11162981200065D1C /* O2PDFObject.h */, - FE5C0AC21162981200065D1C /* O2PDFObject.m */, - FE5C0AB31162981200065D1C /* O2PDFObject_Boolean.h */, - FE5C0AB41162981200065D1C /* O2PDFObject_Boolean.m */, - FE5C0AB51162981200065D1C /* O2PDFObject_const.h */, - FE5C0AB61162981200065D1C /* O2PDFObject_const.m */, - FE5C0AB71162981200065D1C /* O2PDFObject_identifier.h */, - FE5C0AB81162981200065D1C /* O2PDFObject_identifier.m */, - FE5C0AB91162981200065D1C /* O2PDFObject_Integer.h */, - FE5C0ABA1162981200065D1C /* O2PDFObject_Integer.m */, - FE5C0ABB1162981200065D1C /* O2PDFObject_Name.h */, - FE5C0ABC1162981200065D1C /* O2PDFObject_Name.m */, - FE5C0ABD1162981200065D1C /* O2PDFObject_R.h */, - FE5C0ABE1162981200065D1C /* O2PDFObject_R.m */, - FE5C0ABF1162981200065D1C /* O2PDFObject_Real.h */, - FE5C0AC01162981200065D1C /* O2PDFObject_Real.m */, - FE5C0AC31162981200065D1C /* O2PDFOperators.h */, - FE5C0AC41162981200065D1C /* O2PDFOperators.m */, - FE5C0AC51162981200065D1C /* O2PDFOperatorTable.h */, - FE5C0AC61162981200065D1C /* O2PDFOperatorTable.m */, - FE5C0AC71162981200065D1C /* O2PDFPage.h */, - FE5C0AC81162981200065D1C /* O2PDFPage.m */, - FE5C0AC91162981200065D1C /* O2PDFScanner.h */, - FE5C0ACA1162981200065D1C /* O2PDFScanner.m */, - FE5C0ACB1162981200065D1C /* O2PDFStream.h */, - FE5C0ACC1162981200065D1C /* O2PDFStream.m */, - FE5C0ACD1162981200065D1C /* O2PDFString.h */, - FE5C0ACE1162981200065D1C /* O2PDFString.m */, - FE5C0ACF1162981200065D1C /* O2PDFxref.h */, - FE5C0AD01162981200065D1C /* O2PDFxref.m */, - FE5C0AD11162981200065D1C /* O2PDFxrefEntry.h */, - FE5C0AD21162981200065D1C /* O2PDFxrefEntry.m */, - FE5C0AD51162981200065D1C /* O2Shading+PDF.h */, - FE5C0AD61162981200065D1C /* O2Shading+PDF.m */, - FE5C0AD31162981200065D1C /* O2Shading.h */, - FE5C0AD41162981200065D1C /* O2Shading.m */, - FE5C0AD71162981200065D1C /* O2Surface.h */, - FE5C0AD81162981200065D1C /* O2Surface.m */, - FE5C0A4F1162981100065D1C /* O2TIFFImageDirectory.h */, - FE5C0A501162981100065D1C /* O2TIFFImageDirectory.m */, - FE5C0AD91162981200065D1C /* O2TTFDecoder.h */, - FE5C0ADA1162981200065D1C /* O2TTFDecoder.m */, - FE5C0ADB1162981200065D1C /* O2zlib.h */, - FE5C0ADC1162981200065D1C /* O2zlib.m */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 034768DFFF38A50411DB9C8B /* Products */, - 089C1665FE841158C02AAC07 /* Resources */, - FE5C0A47116297FA00065D1C /* VGmath.h */, - FE5C0A48116297FA00065D1C /* VGPath.h */, - FE5C0A49116297FA00065D1C /* VGPath.m */, - ); - indentWidth = 4; - name = Onyx2D; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - 32DBCF5E0370ADEE00C91783 /* Onyx2D_Prefix.pch */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE069F4C1245A9260040F165 /* English.lproj */ = { - isa = PBXGroup; - children = ( - FE069F4D1245A9260040F165 /* InfoPlist.strings */, - ); - path = English.lproj; - sourceTree = ""; - }; - FE06B3EC1430E9150071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A427170935DE002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A428170935DE002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A429170935DE002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A42A170935DE002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A42B170935DE002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A42C170935DE002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A42D170935DE002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A42E170935DE002A60B7 /* solaris-sparc-framework.xcconfig */, - FE06B3ED1430E9150071169B /* darwin-i386.xcconfig */, - FE06B3EE1430E9150071169B /* darwin-ppc.xcconfig */, - FE06B3EF1430E9150071169B /* darwin-x86_64.xcconfig */, - FE06B3F01430E9150071169B /* darwin.xcconfig */, - FE06B3F11430E9150071169B /* freebsd-i386.xcconfig */, - FE06B3F21430E9150071169B /* freebsd.xcconfig */, - FE06B3F31430E9150071169B /* linux-arm.xcconfig */, - FE06B3F41430E9150071169B /* linux-i386.xcconfig */, - FE06B3F51430E9150071169B /* linux-ppc.xcconfig */, - FE06B3F61430E9150071169B /* linux.xcconfig */, - FE06B3F71430E9150071169B /* platform.xcconfig */, - FE06B3F81430E9150071169B /* solaris-sparc.xcconfig */, - FE06B3F91430E9150071169B /* solaris.xcconfig */, - FE06B3FA1430E9150071169B /* windows-i386.xcconfig */, - FE06B3FB1430E9150071169B /* windows.xcconfig */, - FE7086F01431183D00B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE081BAB118A165F0026A20E /* Products */ = { - isa = PBXGroup; - children = ( - FE081BB8118A165F0026A20E /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE5F4C6B12A853B800F5F334 /* platform_Windows */ = { - isa = PBXGroup; - children = ( - FE5F4C6C12A853D000F5F334 /* O2Context_builtin_gdi.h */, - FE5F4C6D12A853D000F5F334 /* O2Context_builtin_gdi.m */, - FE5F4C6E12A853D000F5F334 /* O2Context_gdi.h */, - FE5F4C6F12A853D000F5F334 /* O2Context_gdi.m */, - FE5F4C7012A853D000F5F334 /* O2DeviceContext_gdi.h */, - FE5F4C7112A853D000F5F334 /* O2DeviceContext_gdi.m */, - FE5F4C7212A853D000F5F334 /* O2DeviceContext_gdiDIBSection.h */, - FE5F4C7312A853D000F5F334 /* O2DeviceContext_gdiDIBSection.m */, - FE5F4C7412A853D000F5F334 /* O2Font_gdi.h */, - FE5F4C7512A853D000F5F334 /* O2Font_gdi.m */, - FE5F4C7612A853D000F5F334 /* O2Surface_DIBSection.h */, - FE5F4C7712A853D000F5F334 /* O2Surface_DIBSection.m */, - FE5F4C7812A853D000F5F334 /* Win32Font.h */, - FE5F4C7912A853D000F5F334 /* Win32Font.m */, - ); - path = platform_Windows; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE46535B155B574C0015EF21 /* O2ImageDecoder.h in Headers */, - FE5C0A4A116297FA00065D1C /* VGmath.h in Headers */, - FE5C0A4B116297FA00065D1C /* VGPath.h in Headers */, - FE5C0ADD1162981200065D1C /* gif_lib.h in Headers */, - FE5C0ADF1162981200065D1C /* O2TIFFImageDirectory.h in Headers */, - FE5C0AE11162981200065D1C /* O2AffineTransform.h in Headers */, - FE5C0AE31162981200065D1C /* O2BitmapContext.h in Headers */, - FE5C0AE51162981200065D1C /* O2Blending.h in Headers */, - FE5C0AE61162981200065D1C /* O2ClipPhase.h in Headers */, - FE5C0AE81162981200065D1C /* O2Color.h in Headers */, - FE5C0AEA1162981200065D1C /* O2ColorSpace.h in Headers */, - FE5C0AEC1162981200065D1C /* O2ColorSpace+PDF.h in Headers */, - FE5C0AEE1162981200065D1C /* O2Context_builtin.h in Headers */, - FE5C0AF01162981200065D1C /* O2Context.h in Headers */, - FE5C0AF21162981200065D1C /* O2DataConsumer.h in Headers */, - FE5C0AF41162981200065D1C /* O2DataProvider.h in Headers */, - FE5C0AF61162981200065D1C /* O2Decoder_TIFF.h in Headers */, - FE5C0AF81162981200065D1C /* O2Encoder_TIFF.h in Headers */, - FE5C0AFA1162981200065D1C /* O2Exceptions.h in Headers */, - FE5C0AFB1162981200065D1C /* O2Font_ttf.h in Headers */, - FE5C0AFD1162981200065D1C /* O2Font.h in Headers */, - FE5C0AFF1162981200065D1C /* O2Font+PDF.h in Headers */, - FE5C0B011162981200065D1C /* O2Function.h in Headers */, - FE5C0B031162981200065D1C /* O2Function+PDF.h in Headers */, - FE5C0B051162981200065D1C /* O2Geometry.h in Headers */, - FE5C0B071162981200065D1C /* O2GraphicsState.h in Headers */, - FE5C0B091162981200065D1C /* O2Image.h in Headers */, - FE5C0B0B1162981200065D1C /* O2Image+PDF.h in Headers */, - FE5C0B0D1162981200065D1C /* O2ImageDestination.h in Headers */, - FE5C0B0F1162981200065D1C /* O2ImageSource_BMP.h in Headers */, - FE5C0B111162981200065D1C /* O2ImageSource_GIF.h in Headers */, - FE5C0B131162981200065D1C /* O2ImageSource_JPEG.h in Headers */, - FE5C0B151162981200065D1C /* O2ImageSource_PNG.h in Headers */, - FE5C0B171162981200065D1C /* O2ImageSource_TIFF.h in Headers */, - FE5C0B191162981200065D1C /* O2ImageSource.h in Headers */, - FE5C0B1B1162981200065D1C /* O2Layer.h in Headers */, - FE5C0B1D1162981200065D1C /* O2LZW.h in Headers */, - FE5C0B1F1162981200065D1C /* O2MutablePath.h in Headers */, - FE5C0B211162981200065D1C /* O2Paint_axialGradient.h in Headers */, - FE5C0B231162981200065D1C /* O2Paint_color.h in Headers */, - FE5C0B251162981200065D1C /* O2Paint_image.h in Headers */, - FE5C0B271162981200065D1C /* O2Paint_pattern.h in Headers */, - FE5C0B291162981200065D1C /* O2Paint_radialGradient.h in Headers */, - FE5C0B2B1162981200065D1C /* O2Paint_ramp.h in Headers */, - FE5C0B2D1162981200065D1C /* O2Paint.h in Headers */, - FE5C0B2F1162981200065D1C /* O2Path.h in Headers */, - FE5C0B311162981200065D1C /* O2Pattern.h in Headers */, - FE5C0B331162981200065D1C /* O2PDFArray.h in Headers */, - FE5C0B351162981200065D1C /* O2PDFContentStream.h in Headers */, - FE5C0B371162981200065D1C /* O2PDFContext.h in Headers */, - FE5C0B391162981200065D1C /* O2PDFDictionary.h in Headers */, - FE5C0B3B1162981200065D1C /* O2PDFDocument.h in Headers */, - FE5C0B3D1162981200065D1C /* O2PDFFilter.h in Headers */, - FE5C0B3F1162981200065D1C /* O2PDFFunction_Type2.h in Headers */, - FE5C0B411162981200065D1C /* O2PDFFunction_Type3.h in Headers */, - FE5C0B431162981200065D1C /* O2PDFObject_Boolean.h in Headers */, - FE5C0B451162981200065D1C /* O2PDFObject_const.h in Headers */, - FE5C0B471162981200065D1C /* O2PDFObject_identifier.h in Headers */, - FE5C0B491162981200065D1C /* O2PDFObject_Integer.h in Headers */, - FE5C0B4B1162981200065D1C /* O2PDFObject_Name.h in Headers */, - FE5C0B4D1162981200065D1C /* O2PDFObject_R.h in Headers */, - FE5C0B4F1162981200065D1C /* O2PDFObject_Real.h in Headers */, - FE5C0B511162981200065D1C /* O2PDFObject.h in Headers */, - FE5C0B531162981200065D1C /* O2PDFOperators.h in Headers */, - FE5C0B551162981200065D1C /* O2PDFOperatorTable.h in Headers */, - FE5C0B571162981200065D1C /* O2PDFPage.h in Headers */, - FE5C0B591162981200065D1C /* O2PDFScanner.h in Headers */, - FE5C0B5B1162981200065D1C /* O2PDFStream.h in Headers */, - FE5C0B5D1162981200065D1C /* O2PDFString.h in Headers */, - FE5C0B5F1162981200065D1C /* O2PDFxref.h in Headers */, - FE5C0B611162981200065D1C /* O2PDFxrefEntry.h in Headers */, - FE5C0B631162981200065D1C /* O2Shading.h in Headers */, - FE5C0B651162981200065D1C /* O2Shading+PDF.h in Headers */, - FE5C0B671162981200065D1C /* O2Surface.h in Headers */, - FE5C0B691162981200065D1C /* O2TTFDecoder.h in Headers */, - FE5C0B6B1162981200065D1C /* O2zlib.h in Headers */, - FE44BDB311EBA03700762BF1 /* O2ImageSource_ICNS.h in Headers */, - FE71EDAB11FA890300E6F801 /* O2PDFFunction_Type4.h in Headers */, - FE71EF2811FBCA7E00E6F801 /* O2Encoding.h in Headers */, - FE71F0CB11FC7CD200E6F801 /* O2PDFCharWidths.h in Headers */, - FE71F1B911FCB6DF00E6F801 /* O2PDFFunction_Type0.h in Headers */, - FE71F28811FD221B00E6F801 /* O2PDFFont.h in Headers */, - FE43BE7411FFBAD200119833 /* O2PDFBlock.h in Headers */, - FE39C1EF1202829900A80A71 /* O2ClipState.h in Headers */, - FE051C6D1221A7440097BA92 /* O2Font_freetype.h in Headers */, - FE2759401234039700BD6643 /* O2Context_distill.h in Headers */, - FE06A0131245A9270040F165 /* O2GlyphStencil.h in Headers */, - FE587852126949AA009B9EDF /* O2argb8u.h in Headers */, - FE58789412694AE4009B9EDF /* O2argb32f.h in Headers */, - FE99DB1912843F74006D789F /* O2Encoder_PNG.h in Headers */, - FE5F4C7A12A853D000F5F334 /* O2Context_builtin_gdi.h in Headers */, - FE5F4C7C12A853D000F5F334 /* O2Context_gdi.h in Headers */, - FE5F4C7E12A853D000F5F334 /* O2DeviceContext_gdi.h in Headers */, - FE5F4C8012A853D000F5F334 /* O2DeviceContext_gdiDIBSection.h in Headers */, - FE5F4C8212A853D000F5F334 /* O2Font_gdi.h in Headers */, - FE5F4C8412A853D000F5F334 /* O2Surface_DIBSection.h in Headers */, - FE5F4C8612A853D000F5F334 /* Win32Font.h in Headers */, - 4970823C13FC0FAE008AE26B /* O2Encoder_JPG.h in Headers */, - FE9ACF0C155EB85C002AFCA9 /* O2ImageDecoder_JPEG_libjpeg.h in Headers */, - FE9ACF0E155EB85C002AFCA9 /* O2ImageDecoder_JPEG_stb.h in Headers */, - 5AD0CB5014F2E5C6002F0A2B /* O2Defines_libjpeg.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* Onyx2D */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Onyx2D" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - FE081BCA118A16710026A20E /* PBXTargetDependency */, - ); - name = Onyx2D; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = Onyx2D; - productReference = 8DC2EF5B0486A6940098B216 /* Onyx2D.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Onyx2D" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* Onyx2D */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE081BAB118A165F0026A20E /* Products */; - ProjectRef = FE081BAA118A165F0026A20E /* Foundation.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* Onyx2D */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE081BB8118A165F0026A20E /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE081BB7118A165F0026A20E /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE081BCA118A16710026A20E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Foundation-Windows-i386"; - targetProxy = FE081BC9118A16710026A20E /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - FE069F4D1245A9260040F165 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - FE069F4E1245A9260040F165 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AE08733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7086F01431183D00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Onyx2D; - }; - name = "Windows-i386"; - }; - 1DEB91AF08733DA50010E9CD /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7086F01431183D00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Onyx2D; - }; - name = "Linux-i386"; - }; - 1DEB91B208733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - 1DEB91B308733DA50010E9CD /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFF0A1671AF4741600160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFF0A1681AF4741600160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7086F01431183D00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Onyx2D; - }; - name = "FreeBSD-i386"; - }; - CFF0A16C1AF4741C00160EAA /* macosx-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "macosx-i386"; - }; - CFF0A16D1AF4741C00160EAA /* macosx-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7086F01431183D00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = Onyx2D; - }; - name = "macosx-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Onyx2D" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AE08733DA50010E9CD /* Windows-i386 */, - CFF0A16D1AF4741C00160EAA /* macosx-i386 */, - CFF0A1681AF4741600160EAA /* FreeBSD-i386 */, - 1DEB91AF08733DA50010E9CD /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Linux-i386"; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Onyx2D" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B208733DA50010E9CD /* Windows-i386 */, - CFF0A16C1AF4741C00160EAA /* macosx-i386 */, - CFF0A1671AF4741600160EAA /* FreeBSD-i386 */, - 1DEB91B308733DA50010E9CD /* Linux-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Linux-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/OpenGL/CMakeLists.txt b/OpenGL/CMakeLists.txt deleted file mode 100644 index 8025b6f5..00000000 --- a/OpenGL/CMakeLists.txt +++ /dev/null @@ -1,44 +0,0 @@ -project(OpenGL) - -include(darling_framework) - -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \ - -include math.h \ - -include stdlib.h \ - -include CoreFoundation/CoreFoundation.h \ - -include Foundation/Foundation.h \ - -Wno-nonportable-include-path \ - -Wno-deprecated-objc-isa-usage \ - -mmacosx-version-min=10.10" -) - -include_directories( - ${CMAKE_CURRENT_SOURCE_DIR}/include/OpenGL -) - -set(OpenGL_sources - OpenGL.m - - # weird, I know - ../AppKit/X11.subproj/CGLContext.m -) - -set_source_files_properties(${OpenGL_sources} LANGUAGE C) - -add_framework(OpenGL - FAT - CURRENT_VERSION - SOURCES - ${OpenGL_sources} - VERSION "A" - DEPENDENCIES - objc - system - CoreFoundation - Foundation - # native libraries - GL - X11 - CIRCULAR_DEPENDENCIES - AppKit -) diff --git a/OpenGL/Info.plist b/OpenGL/Info.plist deleted file mode 100644 index 6eb5190f..00000000 --- a/OpenGL/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.OpenGL - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleSignature - OBJC - CFBundleVersion - 1.0 - NSPrincipalClass - - - diff --git a/OpenGL/OpenGL.m b/OpenGL/OpenGL.m deleted file mode 100644 index da1684aa..00000000 --- a/OpenGL/OpenGL.m +++ /dev/null @@ -1,2 +0,0 @@ -void OpenGL() { -} diff --git a/OpenGL/OpenGL.xcodeproj/project.pbxproj b/OpenGL/OpenGL.xcodeproj/project.pbxproj deleted file mode 100644 index 74c8d389..00000000 --- a/OpenGL/OpenGL.xcodeproj/project.pbxproj +++ /dev/null @@ -1,334 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - FE3B34AA0D55939B009E0AA5 /* glext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3B34A90D55939B009E0AA5 /* glext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE92E41E1342721400919549 /* wglext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE92E41D1342721400919549 /* wglext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEFF7111E4D09900CA0912 /* glweak.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEFF7011E4D09900CA0912 /* glweak.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FED35B67104DF7F80038ED7C /* CGLCurrent.h in Headers */ = {isa = PBXBuildFile; fileRef = FED35B65104DF7F80038ED7C /* CGLCurrent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FED35B68104DF7F80038ED7C /* CGLTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = FED35B66104DF7F80038ED7C /* CGLTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEF2EB230C878C88001FC5A8 /* OpenGL.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF2EB220C878C88001FC5A8 /* OpenGL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEF2EB5E0C87B894001FC5A8 /* gl.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF2EB5D0C87B894001FC5A8 /* gl.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEF2EB680C87B8BA001FC5A8 /* glu.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF2EB670C87B8BA001FC5A8 /* glu.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* OpenGL.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenGL.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B4221430E93F0071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B4231430E93F0071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B4241430E93F0071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B4251430E93F0071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B4261430E93F0071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B4271430E93F0071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B4281430E93F0071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B4291430E93F0071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B42A1430E93F0071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B42B1430E93F0071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B42C1430E93F0071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B42D1430E93F0071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B42E1430E93F0071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B42F1430E93F0071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B4301430E93F0071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE3B34A90D55939B009E0AA5 /* glext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = glext.h; sourceTree = ""; }; - FE7087041431184D00B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE92E41D1342721400919549 /* wglext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wglext.h; sourceTree = ""; }; - FEAEFF7011E4D09900CA0912 /* glweak.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glweak.h; sourceTree = ""; }; - FEC0A3D3170935A2002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3D4170935A2002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3D5170935A2002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A3D6170935A2002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3D7170935A2002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A3D8170935A2002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3D9170935A2002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3DA170935A2002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FED35B65104DF7F80038ED7C /* CGLCurrent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGLCurrent.h; sourceTree = ""; }; - FED35B66104DF7F80038ED7C /* CGLTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGLTypes.h; sourceTree = ""; }; - FEF2EB220C878C88001FC5A8 /* OpenGL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenGL.h; sourceTree = ""; }; - FEF2EB5D0C87B894001FC5A8 /* gl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gl.h; sourceTree = ""; }; - FEF2EB670C87B8BA001FC5A8 /* glu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glu.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* OpenGL.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* OpenGL */ = { - isa = PBXGroup; - children = ( - FE06B4211430E93F0071169B /* xcconfig */, - FE92E41D1342721400919549 /* wglext.h */, - FEAEFF7011E4D09900CA0912 /* glweak.h */, - FED35B65104DF7F80038ED7C /* CGLCurrent.h */, - FED35B66104DF7F80038ED7C /* CGLTypes.h */, - FE3B34A90D55939B009E0AA5 /* glext.h */, - 08FB77AEFE84172EC02AAC07 /* Classes */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - FEF2EB220C878C88001FC5A8 /* OpenGL.h */, - FEF2EB5D0C87B894001FC5A8 /* gl.h */, - FEF2EB670C87B8BA001FC5A8 /* glu.h */, - ); - indentWidth = 4; - name = OpenGL; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AEFE84172EC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B4211430E93F0071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A3D3170935A2002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A3D4170935A2002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A3D5170935A2002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A3D6170935A2002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A3D7170935A2002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A3D8170935A2002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A3D9170935A2002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A3DA170935A2002A60B7 /* solaris-sparc-framework.xcconfig */, - FE06B4221430E93F0071169B /* darwin-i386.xcconfig */, - FE06B4231430E93F0071169B /* darwin-ppc.xcconfig */, - FE06B4241430E93F0071169B /* darwin-x86_64.xcconfig */, - FE06B4251430E93F0071169B /* darwin.xcconfig */, - FE06B4261430E93F0071169B /* freebsd-i386.xcconfig */, - FE06B4271430E93F0071169B /* freebsd.xcconfig */, - FE06B4281430E93F0071169B /* linux-arm.xcconfig */, - FE06B4291430E93F0071169B /* linux-i386.xcconfig */, - FE06B42A1430E93F0071169B /* linux-ppc.xcconfig */, - FE06B42B1430E93F0071169B /* linux.xcconfig */, - FE06B42C1430E93F0071169B /* platform.xcconfig */, - FE06B42D1430E93F0071169B /* solaris-sparc.xcconfig */, - FE06B42E1430E93F0071169B /* solaris.xcconfig */, - FE06B42F1430E93F0071169B /* windows-i386.xcconfig */, - FE06B4301430E93F0071169B /* windows.xcconfig */, - FE7087041431184D00B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF2EB230C878C88001FC5A8 /* OpenGL.h in Headers */, - FEF2EB5E0C87B894001FC5A8 /* gl.h in Headers */, - FEF2EB680C87B8BA001FC5A8 /* glu.h in Headers */, - FE3B34AA0D55939B009E0AA5 /* glext.h in Headers */, - FED35B67104DF7F80038ED7C /* CGLCurrent.h in Headers */, - FED35B68104DF7F80038ED7C /* CGLTypes.h in Headers */, - FEAEFF7111E4D09900CA0912 /* glweak.h in Headers */, - FE92E41E1342721400919549 /* wglext.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* OpenGL */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "OpenGL" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = OpenGL; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = OpenGL; - productReference = 8DC2EF5B0486A6940098B216 /* OpenGL.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "OpenGL" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* OpenGL */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* OpenGL */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AE08733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7087041431184D00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = OpenGL; - }; - name = "Windows-i386"; - }; - 1DEB91B208733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - CFF0A1431AF4723A00160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFF0A1441AF4723A00160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3D3170935A2002A60B7 /* darwin-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = OpenGL; - }; - name = "Darwin-i386"; - }; - CFF0A1481AF4724100160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFF0A1491AF4724100160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3D6170935A2002A60B7 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = OpenGL; - }; - name = "FreeBSD-i386"; - }; - CFF0A14D1AF4724A00160EAA /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFF0A14E1AF4724A00160EAA /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3D8170935A2002A60B7 /* linux-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = OpenGL; - }; - name = "Linux-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "OpenGL" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AE08733DA50010E9CD /* Windows-i386 */, - CFF0A1441AF4723A00160EAA /* Darwin-i386 */, - CFF0A14E1AF4724A00160EAA /* Linux-i386 */, - CFF0A1491AF4724100160EAA /* FreeBSD-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "OpenGL" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B208733DA50010E9CD /* Windows-i386 */, - CFF0A1431AF4723A00160EAA /* Darwin-i386 */, - CFF0A14D1AF4724A00160EAA /* Linux-i386 */, - CFF0A1481AF4724100160EAA /* FreeBSD-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/OpenGL/include/GL b/OpenGL/include/GL deleted file mode 120000 index 605d2809..00000000 --- a/OpenGL/include/GL +++ /dev/null @@ -1 +0,0 @@ -OpenGL/ \ No newline at end of file diff --git a/OpenGL/include/OpenGL/CGLCurrent.h b/OpenGL/include/OpenGL/CGLCurrent.h deleted file mode 100644 index 62493c34..00000000 --- a/OpenGL/include/OpenGL/CGLCurrent.h +++ /dev/null @@ -1,4 +0,0 @@ -#import - -CGL_EXPORT CGLContextObj CGLGetCurrentContext(void); -CGL_EXPORT CGLError CGLSetCurrentContext(CGLContextObj context); diff --git a/OpenGL/include/OpenGL/CGLTypes.h b/OpenGL/include/OpenGL/CGLTypes.h deleted file mode 100644 index 5975d646..00000000 --- a/OpenGL/include/OpenGL/CGLTypes.h +++ /dev/null @@ -1,121 +0,0 @@ - -#ifdef __clang__ -#define CGL_DLLEXPORT -#define CGL_DLLIMPORT -#else -#define CGL_DLLEXPORT __declspec(dllexport) -#define CGL_DLLIMPORT __declspec(dllimport) -#endif - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(CGL_INSIDE_BUILD) -#define CGL_EXPORT extern "C" CGL_DLLEXPORT -#else -#define CGL_EXPORT extern "C" CGL_DLLIMPORT -#endif -#else -#define CGL_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(CGL_INSIDE_BUILD) -#define CGL_EXPORT CGL_DLLEXPORT extern -#else -#define CGL_EXPORT CGL_DLLIMPORT extern -#endif -#else -#define CGL_EXPORT extern -#endif - -#endif // __cplusplus - -#import - -typedef enum { - kCGLNoError = 0, - kCGLBadAttribute = 10000, - kCGLBadProperty = 10001, - kCGLBadPixelFormat = 10002, - kCGLBadRendererInfo = 10003, - kCGLBadContext = 10004, - kCGLBadDrawable = 10005, - kCGLBadDisplay = 10006, - kCGLBadState = 10007, - kCGLBadValue = 10008, - kCGLBadMatch = 10009, - kCGLBadEnumeration = 10010, - kCGLBadOffScreen = 10011, - kCGLBadFullScreen = 10012, - kCGLBadWindow = 10013, - kCGLBadAddress = 10014, - kCGLBadCodeModule = 10015, - kCGLBadAlloc = 10016, - kCGLBadConnection = 10017, -} CGLError; - -enum { - kCGLPFAAllRenderers = 1, - kCGLPFADoubleBuffer = 5, - kCGLPFAStereo = 6, - kCGLPFAAuxBuffers = 7, - kCGLPFAColorSize = 8, - kCGLPFAAlphaSize = 11, - kCGLPFADepthSize = 12, - kCGLPFAStencilSize = 13, - kCGLPFAAccumSize = 14, - kCGLPFAMinimumPolicy = 51, - kCGLPFAMaximumPolicy = 52, - kCGLPFAOffScreen = 53, - kCGLPFAFullScreen = 54, - kCGLPFASampleBuffers = 55, - kCGLPFASamples = 56, - kCGLPFAAuxDepthStencil = 57, - kCGLPFAColorFloat = 58, - kCGLPFAMultisample = 59, - kCGLPFASupersample = 60, - kCGLPFASampleAlpha = 61, - kCGLPFARendererID = 70, - kCGLPFASingleRenderer = 71, - kCGLPFANoRecovery = 72, - kCGLPFAAccelerated = 73, - kCGLPFAClosestPolicy = 74, - kCGLPFARobust = 75, - kCGLPFABackingStore = 76, - kCGLPFAMPSafe = 78, - kCGLPFAWindow = 80, - kCGLPFAMultiScreen = 81, - kCGLPFACompliant = 83, - kCGLPFADisplayMask = 84, - kCGLPFAPBuffer = 90, - kCGLPFARemotePBuffer = 91, - kCGLPFAAllowOfflineRenderers = 96, - kCGLPFAAcceleratedCompute = 97, - kCGLPFAVirtualScreenCount = 128, -}; - -typedef uint32_t CGLPixelFormatAttribute; - -typedef enum { - kCGLCPSwapInterval = 222, - kCGLCPSurfaceOpacity = 236, - kCGLCPSurfaceBackingSize = 304, - - // internal, do not use - kCGLCPSurfaceFrame = 499, - kCGLCPSurfaceIsChildWindow = 500, - kCGLCPWindowNumber = 501, - kCGLCPOverlayPointer = 502, - - kCGLCPSurfaceBackingOrigin = 503, - kCGLCPSurfaceWindowNumber = 504, - kCGLCPSurfaceHidden = 505, - -} CGLContextParameter; - -typedef struct _CGLContextObj *CGLContextObj; -typedef struct _CGLPixelFormatObj *CGLPixelFormatObj; -typedef struct _CGLPBufferObj *CGLPBufferObj; diff --git a/OpenGL/include/OpenGL/OpenGL.h b/OpenGL/include/OpenGL/OpenGL.h deleted file mode 100644 index afbe9b75..00000000 --- a/OpenGL/include/OpenGL/OpenGL.h +++ /dev/null @@ -1,42 +0,0 @@ -#import -#ifdef WINDOWS -#import -#import -#endif - -#import -#import - -#include - -CGL_EXPORT CGLError CGLCreateContext(CGLPixelFormatObj pixelFormat, CGLContextObj share, CGLContextObj *result); - -CGL_EXPORT CGLContextObj CGLRetainContext(CGLContextObj context); -CGL_EXPORT void CGLReleaseContext(CGLContextObj context); -CGL_EXPORT GLuint CGLGetContextRetainCount(CGLContextObj context); - -CGL_EXPORT CGLError CGLDestroyContext(CGLContextObj context); - -CGL_EXPORT CGLError CGLLockContext(CGLContextObj context); -CGL_EXPORT CGLError CGLUnlockContext(CGLContextObj context); - -CGL_EXPORT CGLError CGLSetParameter(CGLContextObj context, CGLContextParameter parameter, const GLint *value); -CGL_EXPORT CGLError CGLGetParameter(CGLContextObj context, CGLContextParameter parameter, GLint *value); -CGL_EXPORT CGLError CGLFlushDrawable(CGLContextObj context); - -CGL_EXPORT CGLError CGLChoosePixelFormat(const CGLPixelFormatAttribute *attributes, CGLPixelFormatObj *pixelFormatp, GLint *numberOfScreensp); -CGL_EXPORT CGLPixelFormatObj CGLRetainPixelFormat(CGLPixelFormatObj pixelFormat); -CGL_EXPORT void CGLReleasePixelFormat(CGLPixelFormatObj pixelFormat); -CGL_EXPORT CGLError CGLDestroyPixelFormat(CGLPixelFormatObj pixelFormat); -CGL_EXPORT GLuint CGLGetPixelFormatRetainCount(CGLPixelFormatObj pixelFormat); -CGL_EXPORT CGLError CGLDescribePixelFormat(CGLPixelFormatObj pixelFormat, GLint screenNumber, CGLPixelFormatAttribute attribute, GLint *valuep); - -CGL_EXPORT CGLError CGLCreatePBuffer(GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint maxDetail, CGLPBufferObj *pbuffer); -CGL_EXPORT CGLError CGLDescribePBuffer(CGLPBufferObj pbuffer, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap); -CGL_EXPORT CGLPBufferObj CGLRetainPBuffer(CGLPBufferObj pbuffer); -CGL_EXPORT void CGLReleasePBuffer(CGLPBufferObj pbuffer); -CGL_EXPORT GLuint CGLGetPBufferRetainCount(CGLPBufferObj pbuffer); -CGL_EXPORT CGLError CGLDestroyPBuffer(CGLPBufferObj pbuffer); -CGL_EXPORT CGLError CGLGetPBuffer(CGLContextObj context, CGLPBufferObj *pbuffer, GLenum *face, GLint *level, GLint *screen); -CGL_EXPORT CGLError CGLSetPBuffer(CGLContextObj context, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen); -CGL_EXPORT CGLError CGLTexImagePBuffer(CGLContextObj context, CGLPBufferObj pbuffer, GLenum sourceBuffer); diff --git a/OpenGL/include/OpenGL/gl.h b/OpenGL/include/OpenGL/gl.h deleted file mode 100644 index a52d07e4..00000000 --- a/OpenGL/include/OpenGL/gl.h +++ /dev/null @@ -1,2982 +0,0 @@ -#ifndef __gl_h_ -#define __gl_h_ - -#if defined __gl3_h_ && !(defined GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED) -#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. -#endif - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. -*/ - -// switches to providing function pointers -//#define GL_GLEXT_FUNCTION_POINTERS 1 - -#include - -#ifndef GL_GLEXT_LEGACY -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* For compatibility with OpenGL v1.0 */ -#define GL_LOGIC_OP GL_INDEX_LOGIC_OP -#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT - -/*************************************************************/ - -/* Version */ -#define GL_VERSION_1_1 1 -#define GL_VERSION_1_2 1 -#define GL_VERSION_1_3 1 -#define GL_VERSION_1_4 1 -#define GL_VERSION_1_5 1 -#define GL_VERSION_2_0 1 -#define GL_VERSION_2_1 1 - -/* AccumOp */ -#define GL_ACCUM 0x0100 -#define GL_LOAD 0x0101 -#define GL_RETURN 0x0102 -#define GL_MULT 0x0103 -#define GL_ADD 0x0104 - -/* AlphaFunction */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 - -/* AttribMask */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000fffff - -/* BeginMode */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* BlendEquationMode */ -/* GL_LOGIC_OP */ -/* GL_FUNC_ADD */ -/* GL_MIN */ -/* GL_MAX */ -/* GL_FUNC_SUBTRACT */ -/* GL_FUNC_REVERSE_SUBTRACT */ - -/* BlendingFactorDest */ -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -/* GL_CONSTANT_COLOR */ -/* GL_ONE_MINUS_CONSTANT_COLOR */ -/* GL_CONSTANT_ALPHA */ -/* GL_ONE_MINUS_CONSTANT_ALPHA */ - -/* BlendingFactorSrc */ -/* GL_ZERO */ -/* GL_ONE */ -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -/* GL_SRC_ALPHA */ -/* GL_ONE_MINUS_SRC_ALPHA */ -/* GL_DST_ALPHA */ -/* GL_ONE_MINUS_DST_ALPHA */ -/* GL_CONSTANT_COLOR */ -/* GL_ONE_MINUS_CONSTANT_COLOR */ -/* GL_CONSTANT_ALPHA */ -/* GL_ONE_MINUS_CONSTANT_ALPHA */ - -/* Boolean */ -#define GL_TRUE 1 -#define GL_FALSE 0 - -/* ClearBufferMask */ -/* GL_COLOR_BUFFER_BIT */ -/* GL_ACCUM_BUFFER_BIT */ -/* GL_STENCIL_BUFFER_BIT */ -/* GL_DEPTH_BUFFER_BIT */ - -/* ClientArrayType */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ - -/* ClipPlaneName */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* ColorMaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* ColorMaterialParameter */ -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ -/* GL_EMISSION */ -/* GL_AMBIENT_AND_DIFFUSE */ - -/* ColorPointerType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* ColorTableParameterPName */ -/* GL_COLOR_TABLE_SCALE */ -/* GL_COLOR_TABLE_BIAS */ - -/* ColorTableTarget */ -/* GL_COLOR_TABLE */ -/* GL_POST_CONVOLUTION_COLOR_TABLE */ -/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ -/* GL_PROXY_COLOR_TABLE */ -/* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ -/* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ - -/* ConvolutionBorderMode */ -/* GL_REDUCE */ -/* GL_IGNORE_BORDER */ -/* GL_CONSTANT_BORDER */ - -/* ConvolutionParameter */ -/* GL_CONVOLUTION_BORDER_MODE */ -/* GL_CONVOLUTION_FILTER_SCALE */ -/* GL_CONVOLUTION_FILTER_BIAS */ - -/* ConvolutionTarget */ -/* GL_CONVOLUTION_1D */ -/* GL_CONVOLUTION_2D */ - -/* CullFaceMode */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* DataType */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A - -/* DepthFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* DrawBufferMode */ -#define GL_NONE 0 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C - -/* Enable */ -/* GL_FOG */ -/* GL_LIGHTING */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -/* GL_LINE_STIPPLE */ -/* GL_POLYGON_STIPPLE */ -/* GL_CULL_FACE */ -/* GL_ALPHA_TEST */ -/* GL_BLEND */ -/* GL_INDEX_LOGIC_OP */ -/* GL_COLOR_LOGIC_OP */ -/* GL_DITHER */ -/* GL_STENCIL_TEST */ -/* GL_DEPTH_TEST */ -/* GL_CLIP_PLANE0 */ -/* GL_CLIP_PLANE1 */ -/* GL_CLIP_PLANE2 */ -/* GL_CLIP_PLANE3 */ -/* GL_CLIP_PLANE4 */ -/* GL_CLIP_PLANE5 */ -/* GL_LIGHT0 */ -/* GL_LIGHT1 */ -/* GL_LIGHT2 */ -/* GL_LIGHT3 */ -/* GL_LIGHT4 */ -/* GL_LIGHT5 */ -/* GL_LIGHT6 */ -/* GL_LIGHT7 */ -/* GL_TEXTURE_GEN_S */ -/* GL_TEXTURE_GEN_T */ -/* GL_TEXTURE_GEN_R */ -/* GL_TEXTURE_GEN_Q */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_POINT_SMOOTH */ -/* GL_LINE_SMOOTH */ -/* GL_POLYGON_SMOOTH */ -/* GL_SCISSOR_TEST */ -/* GL_COLOR_MATERIAL */ -/* GL_NORMALIZE */ -/* GL_AUTO_NORMAL */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ -/* GL_POLYGON_OFFSET_POINT */ -/* GL_POLYGON_OFFSET_LINE */ -/* GL_POLYGON_OFFSET_FILL */ -/* GL_COLOR_TABLE */ -/* GL_POST_CONVOLUTION_COLOR_TABLE */ -/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ -/* GL_CONVOLUTION_1D */ -/* GL_CONVOLUTION_2D */ -/* GL_SEPARABLE_2D */ -/* GL_HISTOGRAM */ -/* GL_MINMAX */ -/* GL_RESCALE_NORMAL */ -/* GL_TEXTURE_3D */ - -/* ErrorCode */ -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 -/* GL_TABLE_TOO_LARGE */ - -/* FeedBackMode */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 - -/* FeedBackToken */ -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_LINE_RESET_TOKEN 0x0707 - -/* FogMode */ -/* GL_LINEAR */ -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - -/* FogParameter */ -/* GL_FOG_COLOR */ -/* GL_FOG_DENSITY */ -/* GL_FOG_END */ -/* GL_FOG_INDEX */ -/* GL_FOG_MODE */ -/* GL_FOG_START */ - -/* FrontFaceDirection */ -#define GL_CW 0x0900 -#define GL_CCW 0x0901 - -/* GetColorTableParameterPName */ -/* GL_COLOR_TABLE_SCALE */ -/* GL_COLOR_TABLE_BIAS */ -/* GL_COLOR_TABLE_FORMAT */ -/* GL_COLOR_TABLE_WIDTH */ -/* GL_COLOR_TABLE_RED_SIZE */ -/* GL_COLOR_TABLE_GREEN_SIZE */ -/* GL_COLOR_TABLE_BLUE_SIZE */ -/* GL_COLOR_TABLE_ALPHA_SIZE */ -/* GL_COLOR_TABLE_LUMINANCE_SIZE */ -/* GL_COLOR_TABLE_INTENSITY_SIZE */ - -/* GetConvolutionParameterPName */ -/* GL_CONVOLUTION_BORDER_COLOR */ -/* GL_CONVOLUTION_BORDER_MODE */ -/* GL_CONVOLUTION_FILTER_SCALE */ -/* GL_CONVOLUTION_FILTER_BIAS */ -/* GL_CONVOLUTION_FORMAT */ -/* GL_CONVOLUTION_WIDTH */ -/* GL_CONVOLUTION_HEIGHT */ -/* GL_MAX_CONVOLUTION_WIDTH */ -/* GL_MAX_CONVOLUTION_HEIGHT */ - -/* GetHistogramParameterPName */ -/* GL_HISTOGRAM_WIDTH */ -/* GL_HISTOGRAM_FORMAT */ -/* GL_HISTOGRAM_RED_SIZE */ -/* GL_HISTOGRAM_GREEN_SIZE */ -/* GL_HISTOGRAM_BLUE_SIZE */ -/* GL_HISTOGRAM_ALPHA_SIZE */ -/* GL_HISTOGRAM_LUMINANCE_SIZE */ -/* GL_HISTOGRAM_SINK */ - -/* GetMapTarget */ -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* GetMinmaxParameterPName */ -/* GL_MINMAX_FORMAT */ -/* GL_MINMAX_SINK */ - -/* GetPixelMap */ -/* GL_PIXEL_MAP_I_TO_I */ -/* GL_PIXEL_MAP_S_TO_S */ -/* GL_PIXEL_MAP_I_TO_R */ -/* GL_PIXEL_MAP_I_TO_G */ -/* GL_PIXEL_MAP_I_TO_B */ -/* GL_PIXEL_MAP_I_TO_A */ -/* GL_PIXEL_MAP_R_TO_R */ -/* GL_PIXEL_MAP_G_TO_G */ -/* GL_PIXEL_MAP_B_TO_B */ -/* GL_PIXEL_MAP_A_TO_A */ - -/* GetPointerTarget */ -/* GL_VERTEX_ARRAY_POINTER */ -/* GL_NORMAL_ARRAY_POINTER */ -/* GL_COLOR_ARRAY_POINTER */ -/* GL_INDEX_ARRAY_POINTER */ -/* GL_TEXTURE_COORD_ARRAY_POINTER */ -/* GL_EDGE_FLAG_ARRAY_POINTER */ - -/* GetTarget */ -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -/* GL_SMOOTH_POINT_SIZE_RANGE */ -/* GL_SMOOTH_POINT_SIZE_GRANULARITY */ -/* GL_SMOOTH_LINE_WIDTH_RANGE */ -/* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ -/* GL_ALIASED_POINT_SIZE_RANGE */ -/* GL_ALIASED_LINE_WIDTH_RANGE */ -#define GL_LIST_MODE 0x0B30 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_SHADE_MODEL 0x0B54 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_FOG 0x0B60 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_NORMALIZE 0x0BA1 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_INDEX_MODE 0x0C30 -#define GL_RGBA_MODE 0x0C31 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_RENDER_MODE 0x0C40 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_INDEX_BITS 0x0D51 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -/* GL_TEXTURE_BINDING_1D */ -/* GL_TEXTURE_BINDING_2D */ -/* GL_TEXTURE_BINDING_3D */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ -/* GL_VERTEX_ARRAY_SIZE */ -/* GL_VERTEX_ARRAY_TYPE */ -/* GL_VERTEX_ARRAY_STRIDE */ -/* GL_NORMAL_ARRAY_TYPE */ -/* GL_NORMAL_ARRAY_STRIDE */ -/* GL_COLOR_ARRAY_SIZE */ -/* GL_COLOR_ARRAY_TYPE */ -/* GL_COLOR_ARRAY_STRIDE */ -/* GL_INDEX_ARRAY_TYPE */ -/* GL_INDEX_ARRAY_STRIDE */ -/* GL_TEXTURE_COORD_ARRAY_SIZE */ -/* GL_TEXTURE_COORD_ARRAY_TYPE */ -/* GL_TEXTURE_COORD_ARRAY_STRIDE */ -/* GL_EDGE_FLAG_ARRAY_STRIDE */ -/* GL_POLYGON_OFFSET_FACTOR */ -/* GL_POLYGON_OFFSET_UNITS */ -/* GL_COLOR_TABLE */ -/* GL_POST_CONVOLUTION_COLOR_TABLE */ -/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ -/* GL_CONVOLUTION_1D */ -/* GL_CONVOLUTION_2D */ -/* GL_SEPARABLE_2D */ -/* GL_POST_CONVOLUTION_RED_SCALE */ -/* GL_POST_CONVOLUTION_GREEN_SCALE */ -/* GL_POST_CONVOLUTION_BLUE_SCALE */ -/* GL_POST_CONVOLUTION_ALPHA_SCALE */ -/* GL_POST_CONVOLUTION_RED_BIAS */ -/* GL_POST_CONVOLUTION_GREEN_BIAS */ -/* GL_POST_CONVOLUTION_BLUE_BIAS */ -/* GL_POST_CONVOLUTION_ALPHA_BIAS */ -/* GL_COLOR_MATRIX */ -/* GL_COLOR_MATRIX_STACK_DEPTH */ -/* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ -/* GL_POST_COLOR_MATRIX_RED_SCALE */ -/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ -/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ -/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ -/* GL_POST_COLOR_MATRIX_RED_BIAS */ -/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ -/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ -/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ -/* GL_HISTOGRAM */ -/* GL_MINMAX */ -/* GL_MAX_ELEMENTS_VERTICES */ -/* GL_MAX_ELEMENTS_INDICES */ -/* GL_RESCALE_NORMAL */ -/* GL_LIGHT_MODEL_COLOR_CONTROL */ -/* GL_PACK_SKIP_IMAGES */ -/* GL_PACK_IMAGE_HEIGHT */ -/* GL_UNPACK_SKIP_IMAGES */ -/* GL_UNPACK_IMAGE_HEIGHT */ -/* GL_TEXTURE_3D */ -/* GL_MAX_3D_TEXTURE_SIZE */ -/* GL_BLEND_COLOR */ -/* GL_BLEND_EQUATION */ - -/* GetTextureParameter */ -/* GL_TEXTURE_MAG_FILTER */ -/* GL_TEXTURE_MIN_FILTER */ -/* GL_TEXTURE_WRAP_S */ -/* GL_TEXTURE_WRAP_T */ -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BORDER 0x1005 -/* GL_TEXTURE_RED_SIZE */ -/* GL_TEXTURE_GREEN_SIZE */ -/* GL_TEXTURE_BLUE_SIZE */ -/* GL_TEXTURE_ALPHA_SIZE */ -/* GL_TEXTURE_LUMINANCE_SIZE */ -/* GL_TEXTURE_INTENSITY_SIZE */ -/* GL_TEXTURE_PRIORITY */ -/* GL_TEXTURE_RESIDENT */ -/* GL_TEXTURE_DEPTH */ -/* GL_TEXTURE_WRAP_R */ -/* GL_TEXTURE_MIN_LOD */ -/* GL_TEXTURE_MAX_LOD */ -/* GL_TEXTURE_BASE_LEVEL */ -/* GL_TEXTURE_MAX_LEVEL */ - -/* HintMode */ -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* HintTarget */ -/* GL_PERSPECTIVE_CORRECTION_HINT */ -/* GL_POINT_SMOOTH_HINT */ -/* GL_LINE_SMOOTH_HINT */ -/* GL_POLYGON_SMOOTH_HINT */ -/* GL_FOG_HINT */ - -/* HistogramTarget */ -/* GL_HISTOGRAM */ -/* GL_PROXY_HISTOGRAM */ - -/* IndexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* LightModelColorControl */ -/* GL_SINGLE_COLOR */ -/* GL_SEPARATE_SPECULAR_COLOR */ - -/* LightModelParameter */ -/* GL_LIGHT_MODEL_AMBIENT */ -/* GL_LIGHT_MODEL_LOCAL_VIEWER */ -/* GL_LIGHT_MODEL_TWO_SIDE */ -/* GL_LIGHT_MODEL_COLOR_CONTROL */ - -/* LightName */ -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 - -/* LightParameter */ -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 - -/* InterleavedArrays */ -/* GL_V2F */ -/* GL_V3F */ -/* GL_C4UB_V2F */ -/* GL_C4UB_V3F */ -/* GL_C3F_V3F */ -/* GL_N3F_V3F */ -/* GL_C4F_N3F_V3F */ -/* GL_T2F_V3F */ -/* GL_T4F_V4F */ -/* GL_T2F_C4UB_V3F */ -/* GL_T2F_C3F_V3F */ -/* GL_T2F_N3F_V3F */ -/* GL_T2F_C4F_N3F_V3F */ -/* GL_T4F_C4F_N3F_V4F */ - -/* ListMode */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 - -/* ListNameType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_2_BYTES */ -/* GL_3_BYTES */ -/* GL_4_BYTES */ - -/* LogicOp */ -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F - -/* MapTarget */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ - -/* MaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* MaterialParameter */ -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ - -/* MatrixMode */ -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* MeshMode1 */ -/* GL_POINT */ -/* GL_LINE */ - -/* MeshMode2 */ -/* GL_POINT */ -/* GL_LINE */ -/* GL_FILL */ - -/* MinmaxTarget */ -/* GL_MINMAX */ - -/* NormalPointerType */ -/* GL_BYTE */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* PixelCopyType */ -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 - -/* PixelFormat */ -#define GL_COLOR_INDEX 0x1900 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -/* GL_ABGR */ - -/* PixelInternalFormat */ -/* GL_ALPHA4 */ -/* GL_ALPHA8 */ -/* GL_ALPHA12 */ -/* GL_ALPHA16 */ -/* GL_LUMINANCE4 */ -/* GL_LUMINANCE8 */ -/* GL_LUMINANCE12 */ -/* GL_LUMINANCE16 */ -/* GL_LUMINANCE4_ALPHA4 */ -/* GL_LUMINANCE6_ALPHA2 */ -/* GL_LUMINANCE8_ALPHA8 */ -/* GL_LUMINANCE12_ALPHA4 */ -/* GL_LUMINANCE12_ALPHA12 */ -/* GL_LUMINANCE16_ALPHA16 */ -/* GL_INTENSITY */ -/* GL_INTENSITY4 */ -/* GL_INTENSITY8 */ -/* GL_INTENSITY12 */ -/* GL_INTENSITY16 */ -/* GL_R3_G3_B2 */ -/* GL_RGB4 */ -/* GL_RGB5 */ -/* GL_RGB8 */ -/* GL_RGB10 */ -/* GL_RGB12 */ -/* GL_RGB16 */ -/* GL_RGBA2 */ -/* GL_RGBA4 */ -/* GL_RGB5_A1 */ -/* GL_RGBA8 */ -/* GL_RGB10_A2 */ -/* GL_RGBA12 */ -/* GL_RGBA16 */ - -/* PixelMap */ -/* GL_PIXEL_MAP_I_TO_I */ -/* GL_PIXEL_MAP_S_TO_S */ -/* GL_PIXEL_MAP_I_TO_R */ -/* GL_PIXEL_MAP_I_TO_G */ -/* GL_PIXEL_MAP_I_TO_B */ -/* GL_PIXEL_MAP_I_TO_A */ -/* GL_PIXEL_MAP_R_TO_R */ -/* GL_PIXEL_MAP_G_TO_G */ -/* GL_PIXEL_MAP_B_TO_B */ -/* GL_PIXEL_MAP_A_TO_A */ - -/* PixelStore */ -/* GL_UNPACK_SWAP_BYTES */ -/* GL_UNPACK_LSB_FIRST */ -/* GL_UNPACK_ROW_LENGTH */ -/* GL_UNPACK_SKIP_ROWS */ -/* GL_UNPACK_SKIP_PIXELS */ -/* GL_UNPACK_ALIGNMENT */ -/* GL_PACK_SWAP_BYTES */ -/* GL_PACK_LSB_FIRST */ -/* GL_PACK_ROW_LENGTH */ -/* GL_PACK_SKIP_ROWS */ -/* GL_PACK_SKIP_PIXELS */ -/* GL_PACK_ALIGNMENT */ -/* GL_PACK_SKIP_IMAGES */ -/* GL_PACK_IMAGE_HEIGHT */ -/* GL_UNPACK_SKIP_IMAGES */ -/* GL_UNPACK_IMAGE_HEIGHT */ - -/* PixelTransfer */ -/* GL_MAP_COLOR */ -/* GL_MAP_STENCIL */ -/* GL_INDEX_SHIFT */ -/* GL_INDEX_OFFSET */ -/* GL_RED_SCALE */ -/* GL_RED_BIAS */ -/* GL_GREEN_SCALE */ -/* GL_GREEN_BIAS */ -/* GL_BLUE_SCALE */ -/* GL_BLUE_BIAS */ -/* GL_ALPHA_SCALE */ -/* GL_ALPHA_BIAS */ -/* GL_DEPTH_SCALE */ -/* GL_DEPTH_BIAS */ -/* GL_POST_CONVOLUTION_RED_SCALE */ -/* GL_POST_CONVOLUTION_GREEN_SCALE */ -/* GL_POST_CONVOLUTION_BLUE_SCALE */ -/* GL_POST_CONVOLUTION_ALPHA_SCALE */ -/* GL_POST_CONVOLUTION_RED_BIAS */ -/* GL_POST_CONVOLUTION_GREEN_BIAS */ -/* GL_POST_CONVOLUTION_BLUE_BIAS */ -/* GL_POST_CONVOLUTION_ALPHA_BIAS */ -/* GL_POST_COLOR_MATRIX_RED_SCALE */ -/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ -/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ -/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ -/* GL_POST_COLOR_MATRIX_RED_BIAS */ -/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ -/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ -/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ - -/* PixelType */ -#define GL_BITMAP 0x1A00 -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_BGR */ -/* GL_BGRA */ -/* GL_UNSIGNED_BYTE_3_3_2 */ -/* GL_UNSIGNED_SHORT_4_4_4_4 */ -/* GL_UNSIGNED_SHORT_5_5_5_1 */ -/* GL_UNSIGNED_INT_8_8_8_8 */ -/* GL_UNSIGNED_INT_10_10_10_2 */ -/* GL_UNSIGNED_SHORT_5_6_5 */ -/* GL_UNSIGNED_BYTE_2_3_3_REV */ -/* GL_UNSIGNED_SHORT_5_6_5_REV */ -/* GL_UNSIGNED_SHORT_4_4_4_4_REV */ -/* GL_UNSIGNED_SHORT_1_5_5_5_REV */ -/* GL_UNSIGNED_INT_8_8_8_8_REV */ -/* GL_UNSIGNED_INT_2_10_10_10_REV */ - -/* PolygonMode */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 - -/* ReadBufferMode */ -/* GL_FRONT_LEFT */ -/* GL_FRONT_RIGHT */ -/* GL_BACK_LEFT */ -/* GL_BACK_RIGHT */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_LEFT */ -/* GL_RIGHT */ -/* GL_AUX0 */ -/* GL_AUX1 */ -/* GL_AUX2 */ -/* GL_AUX3 */ - -/* RenderingMode */ -#define GL_RENDER 0x1C00 -#define GL_FEEDBACK 0x1C01 -#define GL_SELECT 0x1C02 - -/* SeparableTarget */ -/* GL_SEPARABLE_2D */ - -/* ShadingModel */ -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 - -/* StencilFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* StencilOp */ -/* GL_ZERO */ -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -/* GL_INVERT */ - -/* StringName */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* TextureCoordName */ -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 - -/* TexCoordPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* TextureEnvMode */ -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -/* GL_BLEND */ -/* GL_REPLACE */ - -/* TextureEnvParameter */ -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 - -/* TextureEnvTarget */ -#define GL_TEXTURE_ENV 0x2300 - -/* TextureGenMode */ -#define GL_EYE_LINEAR 0x2400 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_SPHERE_MAP 0x2402 - -/* TextureGenParameter */ -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_PLANE 0x2502 - -/* TextureMagFilter */ -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 - -/* TextureMinFilter */ -/* GL_NEAREST */ -/* GL_LINEAR */ -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 - -/* TextureParameterName */ -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -/* GL_TEXTURE_BORDER_COLOR */ -/* GL_TEXTURE_PRIORITY */ -/* GL_TEXTURE_WRAP_R */ -/* GL_TEXTURE_MIN_LOD */ -/* GL_TEXTURE_MAX_LOD */ -/* GL_TEXTURE_BASE_LEVEL */ -/* GL_TEXTURE_MAX_LEVEL */ - -/* TextureTarget */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -/* GL_PROXY_TEXTURE_1D */ -/* GL_PROXY_TEXTURE_2D */ -/* GL_TEXTURE_3D */ -/* GL_PROXY_TEXTURE_3D */ - -/* TextureWrapMode */ -#define GL_CLAMP 0x2900 -#define GL_REPEAT 0x2901 -/* GL_CLAMP_TO_EDGE */ - -/* VertexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* ClientAttribMask */ -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff - -/* polygon_offset */ -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* texture */ -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 - -/* texture_object */ -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_BINDING_3D 0x806A - -/* vertex_array */ -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* bgra */ -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 - -/* blend_color */ -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 - -/* blend_minmax */ -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 - -/* blend_equation_separate */ -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D - -/* blend_subtract */ -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B - -/* color_matrix */ -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB - -/* color_table */ -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF - -/* convolution */ -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 - -/* draw_range_elements */ -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 - -/* histogram */ -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 - -/* packed_pixels */ -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 - -/* rescale_normal */ -#define GL_RESCALE_NORMAL 0x803A - -/* separate_specular_color */ -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA - -/* texture3D */ -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 - -/* texture_edge_clamp */ -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_CLAMP_TO_BORDER 0x812D - -/* texture_lod */ -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D - -/* GetTarget1_2 */ -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E - -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 - -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_SUBTRACT 0x84E7 - -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_RGB 0x8582 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC1_ALPHA 0x8589 -#define GL_SRC2_ALPHA 0x858A - -/* Obsolete */ -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A - -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A - -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF - -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 - -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C - -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 - -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 - -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B - -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E - -/* occlusion_query */ -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_SAMPLES_PASSED 0x8914 - -#define GL_FOG_COORD_SRC 0x8450 -#define GL_FOG_COORD 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORD 0x8453 -#define GL_FOG_COORD_ARRAY_TYPE 0x8454 -#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORD_ARRAY_POINTER 0x8456 -#define GL_FOG_COORD_ARRAY 0x8457 - -/* Obsolete */ -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 - -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E - -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 - -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB - -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 - -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 - -#define GL_MIRRORED_REPEAT 0x8370 - -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 - -/* vertex_buffer_object */ -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -/* Obsolete */ -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D - -/* OpenGL 2.0 */ -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_SHADER_TYPE 0x8B4F -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_MAX_TEXTURE_COORDS 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 - -/* OpenGL 2.1 */ -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B - -/*************************************************************/ - -#ifdef GL_GLEXT_FUNCTION_POINTERS -typedef void (*glAccumProcPtr)(GLenum op, GLfloat value); -typedef void (*glAlphaFuncProcPtr)(GLenum func, GLclampf ref); -typedef GLboolean (*glAreTexturesResidentProcPtr)(GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (*glArrayElementProcPtr)(GLint i); -typedef void (*glBeginProcPtr)(GLenum mode); -typedef void (*glBindTextureProcPtr)(GLenum target, GLuint texture); -typedef void (*glBitmapProcPtr)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -typedef void (*glBlendColorProcPtr)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (*glBlendEquationProcPtr)(GLenum mode); -typedef void (*glBlendEquationSeparateProcPtr)(GLenum modeRGB, GLenum modeAlpha); -typedef void (*glBlendFuncProcPtr)(GLenum sfactor, GLenum dfactor); -typedef void (*glCallListProcPtr)(GLuint list); -typedef void (*glCallListsProcPtr)(GLsizei n, GLenum type, const GLvoid *lists); -typedef void (*glClearProcPtr)(GLbitfield mask); -typedef void (*glClearAccumProcPtr)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (*glClearColorProcPtr)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (*glClearDepthProcPtr)(GLclampd depth); -typedef void (*glClearIndexProcPtr)(GLfloat c); -typedef void (*glClearStencilProcPtr)(GLint s); -typedef void (*glClipPlaneProcPtr)(GLenum plane, const GLdouble *equation); -typedef void (*glColor3bProcPtr)(GLbyte red, GLbyte green, GLbyte blue); -typedef void (*glColor3bvProcPtr)(const GLbyte *v); -typedef void (*glColor3dProcPtr)(GLdouble red, GLdouble green, GLdouble blue); -typedef void (*glColor3dvProcPtr)(const GLdouble *v); -typedef void (*glColor3fProcPtr)(GLfloat red, GLfloat green, GLfloat blue); -typedef void (*glColor3fvProcPtr)(const GLfloat *v); -typedef void (*glColor3iProcPtr)(GLint red, GLint green, GLint blue); -typedef void (*glColor3ivProcPtr)(const GLint *v); -typedef void (*glColor3sProcPtr)(GLshort red, GLshort green, GLshort blue); -typedef void (*glColor3svProcPtr)(const GLshort *v); -typedef void (*glColor3ubProcPtr)(GLubyte red, GLubyte green, GLubyte blue); -typedef void (*glColor3ubvProcPtr)(const GLubyte *v); -typedef void (*glColor3uiProcPtr)(GLuint red, GLuint green, GLuint blue); -typedef void (*glColor3uivProcPtr)(const GLuint *v); -typedef void (*glColor3usProcPtr)(GLushort red, GLushort green, GLushort blue); -typedef void (*glColor3usvProcPtr)(const GLushort *v); -typedef void (*glColor4bProcPtr)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -typedef void (*glColor4bvProcPtr)(const GLbyte *v); -typedef void (*glColor4dProcPtr)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -typedef void (*glColor4dvProcPtr)(const GLdouble *v); -typedef void (*glColor4fProcPtr)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void (*glColor4fvProcPtr)(const GLfloat *v); -typedef void (*glColor4iProcPtr)(GLint red, GLint green, GLint blue, GLint alpha); -typedef void (*glColor4ivProcPtr)(const GLint *v); -typedef void (*glColor4sProcPtr)(GLshort red, GLshort green, GLshort blue, GLshort alpha); -typedef void (*glColor4svProcPtr)(const GLshort *v); -typedef void (*glColor4ubProcPtr)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -typedef void (*glColor4ubvProcPtr)(const GLubyte *v); -typedef void (*glColor4uiProcPtr)(GLuint red, GLuint green, GLuint blue, GLuint alpha); -typedef void (*glColor4uivProcPtr)(const GLuint *v); -typedef void (*glColor4usProcPtr)(GLushort red, GLushort green, GLushort blue, GLushort alpha); -typedef void (*glColor4usvProcPtr)(const GLushort *v); -typedef void (*glColorMaskProcPtr)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void (*glColorMaterialProcPtr)(GLenum face, GLenum mode); -typedef void (*glColorPointerProcPtr)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (*glColorSubTableProcPtr)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (*glColorTableProcPtr)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (*glColorTableParameterfvProcPtr)(GLenum target, GLenum pname, const GLfloat *params); -typedef void (*glColorTableParameterivProcPtr)(GLenum target, GLenum pname, const GLint *params); -typedef void (*glConvolutionFilter1DProcPtr)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (*glConvolutionFilter2DProcPtr)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (*glConvolutionParameterfProcPtr)(GLenum target, GLenum pname, GLfloat params); -typedef void (*glConvolutionParameterfvProcPtr)(GLenum target, GLenum pname, const GLfloat *params); -typedef void (*glConvolutionParameteriProcPtr)(GLenum target, GLenum pname, GLint params); -typedef void (*glConvolutionParameterivProcPtr)(GLenum target, GLenum pname, const GLint *params); -typedef void (*glCopyColorSubTableProcPtr)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (*glCopyColorTableProcPtr)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (*glCopyConvolutionFilter1DProcPtr)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (*glCopyConvolutionFilter2DProcPtr)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (*glCopyPixelsProcPtr)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -typedef void (*glCopyTexImage1DProcPtr)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (*glCopyTexImage2DProcPtr)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (*glCopyTexSubImage1DProcPtr)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (*glCopyTexSubImage2DProcPtr)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (*glCopyTexSubImage3DProcPtr)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (*glCullFaceProcPtr)(GLenum mode); -typedef void (*glDeleteListsProcPtr)(GLuint list, GLsizei range); -typedef void (*glDeleteTexturesProcPtr)(GLsizei n, const GLuint *textures); -typedef void (*glDepthFuncProcPtr)(GLenum func); -typedef void (*glDepthMaskProcPtr)(GLboolean flag); -typedef void (*glDepthRangeProcPtr)(GLclampd zNear, GLclampd zFar); -typedef void (*glDisableProcPtr)(GLenum cap); -typedef void (*glDisableClientStateProcPtr)(GLenum array); -typedef void (*glDrawArraysProcPtr)(GLenum mode, GLint first, GLsizei count); -typedef void (*glDrawBufferProcPtr)(GLenum mode); -typedef void (*glDrawElementsProcPtr)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (*glDrawPixelsProcPtr)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (*glDrawRangeElementsProcPtr)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (*glEdgeFlagProcPtr)(GLboolean flag); -typedef void (*glEdgeFlagPointerProcPtr)(GLsizei stride, const GLvoid *pointer); -typedef void (*glEdgeFlagvProcPtr)(const GLboolean *flag); -typedef void (*glEnableProcPtr)(GLenum cap); -typedef void (*glEnableClientStateProcPtr)(GLenum array); -typedef void (*glEndProcPtr)(void); -typedef void (*glEndListProcPtr)(void); -typedef void (*glEvalCoord1dProcPtr)(GLdouble u); -typedef void (*glEvalCoord1dvProcPtr)(const GLdouble *u); -typedef void (*glEvalCoord1fProcPtr)(GLfloat u); -typedef void (*glEvalCoord1fvProcPtr)(const GLfloat *u); -typedef void (*glEvalCoord2dProcPtr)(GLdouble u, GLdouble v); -typedef void (*glEvalCoord2dvProcPtr)(const GLdouble *u); -typedef void (*glEvalCoord2fProcPtr)(GLfloat u, GLfloat v); -typedef void (*glEvalCoord2fvProcPtr)(const GLfloat *u); -typedef void (*glEvalMesh1ProcPtr)(GLenum mode, GLint i1, GLint i2); -typedef void (*glEvalMesh2ProcPtr)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -typedef void (*glEvalPoint1ProcPtr)(GLint i); -typedef void (*glEvalPoint2ProcPtr)(GLint i, GLint j); -typedef void (*glFeedbackBufferProcPtr)(GLsizei size, GLenum type, GLfloat *buffer); -typedef void (*glFinishProcPtr)(void); -typedef void (*glFlushProcPtr)(void); -typedef void (*glFogfProcPtr)(GLenum pname, GLfloat param); -typedef void (*glFogfvProcPtr)(GLenum pname, const GLfloat *params); -typedef void (*glFogiProcPtr)(GLenum pname, GLint param); -typedef void (*glFogivProcPtr)(GLenum pname, const GLint *params); -typedef void (*glFrontFaceProcPtr)(GLenum mode); -typedef void (*glFrustumProcPtr)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef GLuint (*glGenListsProcPtr)(GLsizei range); -typedef void (*glGenTexturesProcPtr)(GLsizei n, GLuint *textures); -typedef void (*glGetBooleanvProcPtr)(GLenum pname, GLboolean *params); -typedef void (*glGetClipPlaneProcPtr)(GLenum plane, GLdouble *equation); -typedef void (*glGetColorTableProcPtr)(GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (*glGetColorTableParameterfvProcPtr)(GLenum target, GLenum pname, GLfloat *params); -typedef void (*glGetColorTableParameterivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glGetConvolutionFilterProcPtr)(GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (*glGetConvolutionParameterfvProcPtr)(GLenum target, GLenum pname, GLfloat *params); -typedef void (*glGetConvolutionParameterivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glGetDoublevProcPtr)(GLenum pname, GLdouble *params); -typedef GLenum (*glGetErrorProcPtr)(void); -typedef void (*glGetFloatvProcPtr)(GLenum pname, GLfloat *params); -typedef void (*glGetHistogramProcPtr)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (*glGetHistogramParameterfvProcPtr)(GLenum target, GLenum pname, GLfloat *params); -typedef void (*glGetHistogramParameterivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glGetIntegervProcPtr)(GLenum pname, GLint *params); -typedef void (*glGetLightfvProcPtr)(GLenum light, GLenum pname, GLfloat *params); -typedef void (*glGetLightivProcPtr)(GLenum light, GLenum pname, GLint *params); -typedef void (*glGetMapdvProcPtr)(GLenum target, GLenum query, GLdouble *v); -typedef void (*glGetMapfvProcPtr)(GLenum target, GLenum query, GLfloat *v); -typedef void (*glGetMapivProcPtr)(GLenum target, GLenum query, GLint *v); -typedef void (*glGetMaterialfvProcPtr)(GLenum face, GLenum pname, GLfloat *params); -typedef void (*glGetMaterialivProcPtr)(GLenum face, GLenum pname, GLint *params); -typedef void (*glGetMinmaxProcPtr)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (*glGetMinmaxParameterfvProcPtr)(GLenum target, GLenum pname, GLfloat *params); -typedef void (*glGetMinmaxParameterivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glGetPixelMapfvProcPtr)(GLenum map, GLfloat *values); -typedef void (*glGetPixelMapuivProcPtr)(GLenum map, GLuint *values); -typedef void (*glGetPixelMapusvProcPtr)(GLenum map, GLushort *values); -typedef void (*glGetPointervProcPtr)(GLenum pname, GLvoid **params); -typedef void (*glGetPolygonStippleProcPtr)(GLubyte *mask); -typedef void (*glGetSeparableFilterProcPtr)(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef const GLubyte *(*glGetStringProcPtr)(GLenum name); -typedef void (*glGetTexEnvfvProcPtr)(GLenum target, GLenum pname, GLfloat *params); -typedef void (*glGetTexEnvivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glGetTexGendvProcPtr)(GLenum coord, GLenum pname, GLdouble *params); -typedef void (*glGetTexGenfvProcPtr)(GLenum coord, GLenum pname, GLfloat *params); -typedef void (*glGetTexGenivProcPtr)(GLenum coord, GLenum pname, GLint *params); -typedef void (*glGetTexImageProcPtr)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void (*glGetTexLevelParameterfvProcPtr)(GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (*glGetTexLevelParameterivProcPtr)(GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (*glGetTexParameterfvProcPtr)(GLenum target, GLenum pname, GLfloat *params); -typedef void (*glGetTexParameterivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glHintProcPtr)(GLenum target, GLenum mode); -typedef void (*glHistogramProcPtr)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (*glIndexMaskProcPtr)(GLuint mask); -typedef void (*glIndexPointerProcPtr)(GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (*glIndexdProcPtr)(GLdouble c); -typedef void (*glIndexdvProcPtr)(const GLdouble *c); -typedef void (*glIndexfProcPtr)(GLfloat c); -typedef void (*glIndexfvProcPtr)(const GLfloat *c); -typedef void (*glIndexiProcPtr)(GLint c); -typedef void (*glIndexivProcPtr)(const GLint *c); -typedef void (*glIndexsProcPtr)(GLshort c); -typedef void (*glIndexsvProcPtr)(const GLshort *c); -typedef void (*glIndexubProcPtr)(GLubyte c); -typedef void (*glIndexubvProcPtr)(const GLubyte *c); -typedef void (*glInitNamesProcPtr)(void); -typedef void (*glInterleavedArraysProcPtr)(GLenum format, GLsizei stride, const GLvoid *pointer); -typedef GLboolean (*glIsEnabledProcPtr)(GLenum cap); -typedef GLboolean (*glIsListProcPtr)(GLuint list); -typedef GLboolean (*glIsTextureProcPtr)(GLuint texture); -typedef void (*glLightModelfProcPtr)(GLenum pname, GLfloat param); -typedef void (*glLightModelfvProcPtr)(GLenum pname, const GLfloat *params); -typedef void (*glLightModeliProcPtr)(GLenum pname, GLint param); -typedef void (*glLightModelivProcPtr)(GLenum pname, const GLint *params); -typedef void (*glLightfProcPtr)(GLenum light, GLenum pname, GLfloat param); -typedef void (*glLightfvProcPtr)(GLenum light, GLenum pname, const GLfloat *params); -typedef void (*glLightiProcPtr)(GLenum light, GLenum pname, GLint param); -typedef void (*glLightivProcPtr)(GLenum light, GLenum pname, const GLint *params); -typedef void (*glLineStippleProcPtr)(GLint factor, GLushort pattern); -typedef void (*glLineWidthProcPtr)(GLfloat width); -typedef void (*glListBaseProcPtr)(GLuint base); -typedef void (*glLoadIdentityProcPtr)(void); -typedef void (*glLoadMatrixdProcPtr)(const GLdouble *m); -typedef void (*glLoadMatrixfProcPtr)(const GLfloat *m); -typedef void (*glLoadNameProcPtr)(GLuint name); -typedef void (*glLogicOpProcPtr)(GLenum opcode); -typedef void (*glMap1dProcPtr)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -typedef void (*glMap1fProcPtr)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -typedef void (*glMap2dProcPtr)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -typedef void (*glMap2fProcPtr)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -typedef void (*glMapGrid1dProcPtr)(GLint un, GLdouble u1, GLdouble u2); -typedef void (*glMapGrid1fProcPtr)(GLint un, GLfloat u1, GLfloat u2); -typedef void (*glMapGrid2dProcPtr)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -typedef void (*glMapGrid2fProcPtr)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -typedef void (*glMaterialfProcPtr)(GLenum face, GLenum pname, GLfloat param); -typedef void (*glMaterialfvProcPtr)(GLenum face, GLenum pname, const GLfloat *params); -typedef void (*glMaterialiProcPtr)(GLenum face, GLenum pname, GLint param); -typedef void (*glMaterialivProcPtr)(GLenum face, GLenum pname, const GLint *params); -typedef void (*glMatrixModeProcPtr)(GLenum mode); -typedef void (*glMinmaxProcPtr)(GLenum target, GLenum internalformat, GLboolean sink); -typedef void (*glMultMatrixdProcPtr)(const GLdouble *m); -typedef void (*glMultMatrixfProcPtr)(const GLfloat *m); -typedef void (*glNewListProcPtr)(GLuint list, GLenum mode); -typedef void (*glNormal3bProcPtr)(GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (*glNormal3bvProcPtr)(const GLbyte *v); -typedef void (*glNormal3dProcPtr)(GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (*glNormal3dvProcPtr)(const GLdouble *v); -typedef void (*glNormal3fProcPtr)(GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (*glNormal3fvProcPtr)(const GLfloat *v); -typedef void (*glNormal3iProcPtr)(GLint nx, GLint ny, GLint nz); -typedef void (*glNormal3ivProcPtr)(const GLint *v); -typedef void (*glNormal3sProcPtr)(GLshort nx, GLshort ny, GLshort nz); -typedef void (*glNormal3svProcPtr)(const GLshort *v); -typedef void (*glNormalPointerProcPtr)(GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (*glOrthoProcPtr)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (*glPassThroughProcPtr)(GLfloat token); -typedef void (*glPixelMapfvProcPtr)(GLenum map, GLint mapsize, const GLfloat *values); -typedef void (*glPixelMapuivProcPtr)(GLenum map, GLint mapsize, const GLuint *values); -typedef void (*glPixelMapusvProcPtr)(GLenum map, GLint mapsize, const GLushort *values); -typedef void (*glPixelStorefProcPtr)(GLenum pname, GLfloat param); -typedef void (*glPixelStoreiProcPtr)(GLenum pname, GLint param); -typedef void (*glPixelTransferfProcPtr)(GLenum pname, GLfloat param); -typedef void (*glPixelTransferiProcPtr)(GLenum pname, GLint param); -typedef void (*glPixelZoomProcPtr)(GLfloat xfactor, GLfloat yfactor); -typedef void (*glPointSizeProcPtr)(GLfloat size); -typedef void (*glPolygonModeProcPtr)(GLenum face, GLenum mode); -typedef void (*glPolygonOffsetProcPtr)(GLfloat factor, GLfloat units); -typedef void (*glPolygonStippleProcPtr)(const GLubyte *mask); -typedef void (*glPopAttribProcPtr)(void); -typedef void (*glPopClientAttribProcPtr)(void); -typedef void (*glPopMatrixProcPtr)(void); -typedef void (*glPopNameProcPtr)(void); -typedef void (*glPrioritizeTexturesProcPtr)(GLsizei n, const GLuint *textures, const GLclampf *priorities); -typedef void (*glPushAttribProcPtr)(GLbitfield mask); -typedef void (*glPushClientAttribProcPtr)(GLbitfield mask); -typedef void (*glPushMatrixProcPtr)(void); -typedef void (*glPushNameProcPtr)(GLuint name); -typedef void (*glRasterPos2dProcPtr)(GLdouble x, GLdouble y); -typedef void (*glRasterPos2dvProcPtr)(const GLdouble *v); -typedef void (*glRasterPos2fProcPtr)(GLfloat x, GLfloat y); -typedef void (*glRasterPos2fvProcPtr)(const GLfloat *v); -typedef void (*glRasterPos2iProcPtr)(GLint x, GLint y); -typedef void (*glRasterPos2ivProcPtr)(const GLint *v); -typedef void (*glRasterPos2sProcPtr)(GLshort x, GLshort y); -typedef void (*glRasterPos2svProcPtr)(const GLshort *v); -typedef void (*glRasterPos3dProcPtr)(GLdouble x, GLdouble y, GLdouble z); -typedef void (*glRasterPos3dvProcPtr)(const GLdouble *v); -typedef void (*glRasterPos3fProcPtr)(GLfloat x, GLfloat y, GLfloat z); -typedef void (*glRasterPos3fvProcPtr)(const GLfloat *v); -typedef void (*glRasterPos3iProcPtr)(GLint x, GLint y, GLint z); -typedef void (*glRasterPos3ivProcPtr)(const GLint *v); -typedef void (*glRasterPos3sProcPtr)(GLshort x, GLshort y, GLshort z); -typedef void (*glRasterPos3svProcPtr)(const GLshort *v); -typedef void (*glRasterPos4dProcPtr)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (*glRasterPos4dvProcPtr)(const GLdouble *v); -typedef void (*glRasterPos4fProcPtr)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (*glRasterPos4fvProcPtr)(const GLfloat *v); -typedef void (*glRasterPos4iProcPtr)(GLint x, GLint y, GLint z, GLint w); -typedef void (*glRasterPos4ivProcPtr)(const GLint *v); -typedef void (*glRasterPos4sProcPtr)(GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (*glRasterPos4svProcPtr)(const GLshort *v); -typedef void (*glReadBufferProcPtr)(GLenum mode); -typedef void (*glReadPixelsProcPtr)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -typedef void (*glRectdProcPtr)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -typedef void (*glRectdvProcPtr)(const GLdouble *v1, const GLdouble *v2); -typedef void (*glRectfProcPtr)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -typedef void (*glRectfvProcPtr)(const GLfloat *v1, const GLfloat *v2); -typedef void (*glRectiProcPtr)(GLint x1, GLint y1, GLint x2, GLint y2); -typedef void (*glRectivProcPtr)(const GLint *v1, const GLint *v2); -typedef void (*glRectsProcPtr)(GLshort x1, GLshort y1, GLshort x2, GLshort y2); -typedef void (*glRectsvProcPtr)(const GLshort *v1, const GLshort *v2); -typedef GLint (*glRenderModeProcPtr)(GLenum mode); -typedef void (*glResetHistogramProcPtr)(GLenum target); -typedef void (*glResetMinmaxProcPtr)(GLenum target); -typedef void (*glRotatedProcPtr)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (*glRotatefProcPtr)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (*glScaledProcPtr)(GLdouble x, GLdouble y, GLdouble z); -typedef void (*glScalefProcPtr)(GLfloat x, GLfloat y, GLfloat z); -typedef void (*glScissorProcPtr)(GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (*glSelectBufferProcPtr)(GLsizei size, GLuint *buffer); -typedef void (*glSeparableFilter2DProcPtr)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (*glShadeModelProcPtr)(GLenum mode); -typedef void (*glStencilFuncProcPtr)(GLenum func, GLint ref, GLuint mask); -typedef void (*glStencilMaskProcPtr)(GLuint mask); -typedef void (*glStencilOpProcPtr)(GLenum fail, GLenum zfail, GLenum zpass); -typedef void (*glTexCoord1dProcPtr)(GLdouble s); -typedef void (*glTexCoord1dvProcPtr)(const GLdouble *v); -typedef void (*glTexCoord1fProcPtr)(GLfloat s); -typedef void (*glTexCoord1fvProcPtr)(const GLfloat *v); -typedef void (*glTexCoord1iProcPtr)(GLint s); -typedef void (*glTexCoord1ivProcPtr)(const GLint *v); -typedef void (*glTexCoord1sProcPtr)(GLshort s); -typedef void (*glTexCoord1svProcPtr)(const GLshort *v); -typedef void (*glTexCoord2dProcPtr)(GLdouble s, GLdouble t); -typedef void (*glTexCoord2dvProcPtr)(const GLdouble *v); -typedef void (*glTexCoord2fProcPtr)(GLfloat s, GLfloat t); -typedef void (*glTexCoord2fvProcPtr)(const GLfloat *v); -typedef void (*glTexCoord2iProcPtr)(GLint s, GLint t); -typedef void (*glTexCoord2ivProcPtr)(const GLint *v); -typedef void (*glTexCoord2sProcPtr)(GLshort s, GLshort t); -typedef void (*glTexCoord2svProcPtr)(const GLshort *v); -typedef void (*glTexCoord3dProcPtr)(GLdouble s, GLdouble t, GLdouble r); -typedef void (*glTexCoord3dvProcPtr)(const GLdouble *v); -typedef void (*glTexCoord3fProcPtr)(GLfloat s, GLfloat t, GLfloat r); -typedef void (*glTexCoord3fvProcPtr)(const GLfloat *v); -typedef void (*glTexCoord3iProcPtr)(GLint s, GLint t, GLint r); -typedef void (*glTexCoord3ivProcPtr)(const GLint *v); -typedef void (*glTexCoord3sProcPtr)(GLshort s, GLshort t, GLshort r); -typedef void (*glTexCoord3svProcPtr)(const GLshort *v); -typedef void (*glTexCoord4dProcPtr)(GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (*glTexCoord4dvProcPtr)(const GLdouble *v); -typedef void (*glTexCoord4fProcPtr)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (*glTexCoord4fvProcPtr)(const GLfloat *v); -typedef void (*glTexCoord4iProcPtr)(GLint s, GLint t, GLint r, GLint q); -typedef void (*glTexCoord4ivProcPtr)(const GLint *v); -typedef void (*glTexCoord4sProcPtr)(GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (*glTexCoord4svProcPtr)(const GLshort *v); -typedef void (*glTexCoordPointerProcPtr)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (*glTexEnvfProcPtr)(GLenum target, GLenum pname, GLfloat param); -typedef void (*glTexEnvfvProcPtr)(GLenum target, GLenum pname, const GLfloat *params); -typedef void (*glTexEnviProcPtr)(GLenum target, GLenum pname, GLint param); -typedef void (*glTexEnvivProcPtr)(GLenum target, GLenum pname, const GLint *params); -typedef void (*glTexGendProcPtr)(GLenum coord, GLenum pname, GLdouble param); -typedef void (*glTexGendvProcPtr)(GLenum coord, GLenum pname, const GLdouble *params); -typedef void (*glTexGenfProcPtr)(GLenum coord, GLenum pname, GLfloat param); -typedef void (*glTexGenfvProcPtr)(GLenum coord, GLenum pname, const GLfloat *params); -typedef void (*glTexGeniProcPtr)(GLenum coord, GLenum pname, GLint param); -typedef void (*glTexGenivProcPtr)(GLenum coord, GLenum pname, const GLint *params); -typedef void (*glTexImage1DProcPtr)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (*glTexImage2DProcPtr)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (*glTexImage3DProcPtr)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (*glTexParameterfProcPtr)(GLenum target, GLenum pname, GLfloat param); -typedef void (*glTexParameterfvProcPtr)(GLenum target, GLenum pname, const GLfloat *params); -typedef void (*glTexParameteriProcPtr)(GLenum target, GLenum pname, GLint param); -typedef void (*glTexParameterivProcPtr)(GLenum target, GLenum pname, const GLint *params); -typedef void (*glTexSubImage1DProcPtr)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (*glTexSubImage2DProcPtr)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (*glTexSubImage3DProcPtr)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (*glTranslatedProcPtr)(GLdouble x, GLdouble y, GLdouble z); -typedef void (*glTranslatefProcPtr)(GLfloat x, GLfloat y, GLfloat z); -typedef void (*glVertex2dProcPtr)(GLdouble x, GLdouble y); -typedef void (*glVertex2dvProcPtr)(const GLdouble *v); -typedef void (*glVertex2fProcPtr)(GLfloat x, GLfloat y); -typedef void (*glVertex2fvProcPtr)(const GLfloat *v); -typedef void (*glVertex2iProcPtr)(GLint x, GLint y); -typedef void (*glVertex2ivProcPtr)(const GLint *v); -typedef void (*glVertex2sProcPtr)(GLshort x, GLshort y); -typedef void (*glVertex2svProcPtr)(const GLshort *v); -typedef void (*glVertex3dProcPtr)(GLdouble x, GLdouble y, GLdouble z); -typedef void (*glVertex3dvProcPtr)(const GLdouble *v); -typedef void (*glVertex3fProcPtr)(GLfloat x, GLfloat y, GLfloat z); -typedef void (*glVertex3fvProcPtr)(const GLfloat *v); -typedef void (*glVertex3iProcPtr)(GLint x, GLint y, GLint z); -typedef void (*glVertex3ivProcPtr)(const GLint *v); -typedef void (*glVertex3sProcPtr)(GLshort x, GLshort y, GLshort z); -typedef void (*glVertex3svProcPtr)(const GLshort *v); -typedef void (*glVertex4dProcPtr)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (*glVertex4dvProcPtr)(const GLdouble *v); -typedef void (*glVertex4fProcPtr)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (*glVertex4fvProcPtr)(const GLfloat *v); -typedef void (*glVertex4iProcPtr)(GLint x, GLint y, GLint z, GLint w); -typedef void (*glVertex4ivProcPtr)(const GLint *v); -typedef void (*glVertex4sProcPtr)(GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (*glVertex4svProcPtr)(const GLshort *v); -typedef void (*glVertexPointerProcPtr)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (*glViewportProcPtr)(GLint x, GLint y, GLsizei width, GLsizei height); - -typedef void (*glSampleCoverageProcPtr)(GLclampf value, GLboolean invert); - -typedef void (*glLoadTransposeMatrixfProcPtr)(const GLfloat *m); -typedef void (*glLoadTransposeMatrixdProcPtr)(const GLdouble *m); -typedef void (*glMultTransposeMatrixfProcPtr)(const GLfloat *m); -typedef void (*glMultTransposeMatrixdProcPtr)(const GLdouble *m); - -typedef void (*glCompressedTexImage3DProcPtr)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (*glCompressedTexImage2DProcPtr)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (*glCompressedTexImage1DProcPtr)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (*glCompressedTexSubImage3DProcPtr)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (*glCompressedTexSubImage2DProcPtr)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (*glCompressedTexSubImage1DProcPtr)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (*glGetCompressedTexImageProcPtr)(GLenum target, GLint lod, GLvoid *img); - -typedef void (*glActiveTextureProcPtr)(GLenum texture); -typedef void (*glClientActiveTextureProcPtr)(GLenum texture); -typedef void (*glMultiTexCoord1dProcPtr)(GLenum target, GLdouble s); -typedef void (*glMultiTexCoord1dvProcPtr)(GLenum target, const GLdouble *v); -typedef void (*glMultiTexCoord1fProcPtr)(GLenum target, GLfloat s); -typedef void (*glMultiTexCoord1fvProcPtr)(GLenum target, const GLfloat *v); -typedef void (*glMultiTexCoord1iProcPtr)(GLenum target, GLint s); -typedef void (*glMultiTexCoord1ivProcPtr)(GLenum target, const GLint *v); -typedef void (*glMultiTexCoord1sProcPtr)(GLenum target, GLshort s); -typedef void (*glMultiTexCoord1svProcPtr)(GLenum target, const GLshort *v); -typedef void (*glMultiTexCoord2dProcPtr)(GLenum target, GLdouble s, GLdouble t); -typedef void (*glMultiTexCoord2dvProcPtr)(GLenum target, const GLdouble *v); -typedef void (*glMultiTexCoord2fProcPtr)(GLenum target, GLfloat s, GLfloat t); -typedef void (*glMultiTexCoord2fvProcPtr)(GLenum target, const GLfloat *v); -typedef void (*glMultiTexCoord2iProcPtr)(GLenum target, GLint s, GLint t); -typedef void (*glMultiTexCoord2ivProcPtr)(GLenum target, const GLint *v); -typedef void (*glMultiTexCoord2sProcPtr)(GLenum target, GLshort s, GLshort t); -typedef void (*glMultiTexCoord2svProcPtr)(GLenum target, const GLshort *v); -typedef void (*glMultiTexCoord3dProcPtr)(GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (*glMultiTexCoord3dvProcPtr)(GLenum target, const GLdouble *v); -typedef void (*glMultiTexCoord3fProcPtr)(GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (*glMultiTexCoord3fvProcPtr)(GLenum target, const GLfloat *v); -typedef void (*glMultiTexCoord3iProcPtr)(GLenum target, GLint s, GLint t, GLint r); -typedef void (*glMultiTexCoord3ivProcPtr)(GLenum target, const GLint *v); -typedef void (*glMultiTexCoord3sProcPtr)(GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (*glMultiTexCoord3svProcPtr)(GLenum target, const GLshort *v); -typedef void (*glMultiTexCoord4dProcPtr)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (*glMultiTexCoord4dvProcPtr)(GLenum target, const GLdouble *v); -typedef void (*glMultiTexCoord4fProcPtr)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (*glMultiTexCoord4fvProcPtr)(GLenum target, const GLfloat *v); -typedef void (*glMultiTexCoord4iProcPtr)(GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (*glMultiTexCoord4ivProcPtr)(GLenum target, const GLint *v); -typedef void (*glMultiTexCoord4sProcPtr)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (*glMultiTexCoord4svProcPtr)(GLenum target, const GLshort *v); - -typedef void (*glFogCoordfProcPtr)(GLfloat coord); -typedef void (*glFogCoordfvProcPtr)(const GLfloat *coord); -typedef void (*glFogCoorddProcPtr)(GLdouble coord); -typedef void (*glFogCoorddvProcPtr)(const GLdouble *coord); -typedef void (*glFogCoordPointerProcPtr)(GLenum type, GLsizei stride, const GLvoid *pointer); - -typedef void (*glSecondaryColor3bProcPtr)(GLbyte red, GLbyte green, GLbyte blue); -typedef void (*glSecondaryColor3bvProcPtr)(const GLbyte *v); -typedef void (*glSecondaryColor3dProcPtr)(GLdouble red, GLdouble green, GLdouble blue); -typedef void (*glSecondaryColor3dvProcPtr)(const GLdouble *v); -typedef void (*glSecondaryColor3fProcPtr)(GLfloat red, GLfloat green, GLfloat blue); -typedef void (*glSecondaryColor3fvProcPtr)(const GLfloat *v); -typedef void (*glSecondaryColor3iProcPtr)(GLint red, GLint green, GLint blue); -typedef void (*glSecondaryColor3ivProcPtr)(const GLint *v); -typedef void (*glSecondaryColor3sProcPtr)(GLshort red, GLshort green, GLshort blue); -typedef void (*glSecondaryColor3svProcPtr)(const GLshort *v); -typedef void (*glSecondaryColor3ubProcPtr)(GLubyte red, GLubyte green, GLubyte blue); -typedef void (*glSecondaryColor3ubvProcPtr)(const GLubyte *v); -typedef void (*glSecondaryColor3uiProcPtr)(GLuint red, GLuint green, GLuint blue); -typedef void (*glSecondaryColor3uivProcPtr)(const GLuint *v); -typedef void (*glSecondaryColor3usProcPtr)(GLushort red, GLushort green, GLushort blue); -typedef void (*glSecondaryColor3usvProcPtr)(const GLushort *v); -typedef void (*glSecondaryColorPointerProcPtr)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - -typedef void (*glPointParameterfProcPtr)(GLenum pname, GLfloat param); -typedef void (*glPointParameterfvProcPtr)(GLenum pname, const GLfloat *params); -typedef void (*glPointParameteriProcPtr)(GLenum pname, GLint param); -typedef void (*glPointParameterivProcPtr)(GLenum pname, const GLint *params); - -typedef void (*glBlendFuncSeparateProcPtr)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); - -typedef void (*glMultiDrawArraysProcPtr)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (*glMultiDrawElementsProcPtr)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid *const *indices, GLsizei primcount); - -typedef void (*glWindowPos2dProcPtr)(GLdouble x, GLdouble y); -typedef void (*glWindowPos2dvProcPtr)(const GLdouble *v); -typedef void (*glWindowPos2fProcPtr)(GLfloat x, GLfloat y); -typedef void (*glWindowPos2fvProcPtr)(const GLfloat *v); -typedef void (*glWindowPos2iProcPtr)(GLint x, GLint y); -typedef void (*glWindowPos2ivProcPtr)(const GLint *v); -typedef void (*glWindowPos2sProcPtr)(GLshort x, GLshort y); -typedef void (*glWindowPos2svProcPtr)(const GLshort *v); -typedef void (*glWindowPos3dProcPtr)(GLdouble x, GLdouble y, GLdouble z); -typedef void (*glWindowPos3dvProcPtr)(const GLdouble *v); -typedef void (*glWindowPos3fProcPtr)(GLfloat x, GLfloat y, GLfloat z); -typedef void (*glWindowPos3fvProcPtr)(const GLfloat *v); -typedef void (*glWindowPos3iProcPtr)(GLint x, GLint y, GLint z); -typedef void (*glWindowPos3ivProcPtr)(const GLint *v); -typedef void (*glWindowPos3sProcPtr)(GLshort x, GLshort y, GLshort z); -typedef void (*glWindowPos3svProcPtr)(const GLshort *v); - -typedef void (*glGenQueriesProcPtr)(GLsizei n, GLuint *ids); -typedef void (*glDeleteQueriesProcPtr)(GLsizei n, const GLuint *ids); -typedef GLboolean (*glIsQueryProcPtr)(GLuint id); -typedef void (*glBeginQueryProcPtr)(GLenum target, GLuint id); -typedef void (*glEndQueryProcPtr)(GLenum target); -typedef void (*glGetQueryivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glGetQueryObjectivProcPtr)(GLuint id, GLenum pname, GLint *params); -typedef void (*glGetQueryObjectuivProcPtr)(GLuint id, GLenum pname, GLuint *params); - -typedef void (*glBindBufferProcPtr)(GLenum target, GLuint buffer); -typedef void (*glDeleteBuffersProcPtr)(GLsizei n, const GLuint *buffers); -typedef void (*glGenBuffersProcPtr)(GLsizei n, GLuint *buffers); -typedef GLboolean (*glIsBufferProcPtr)(GLuint buffer); -typedef void (*glBufferDataProcPtr)(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (*glBufferSubDataProcPtr)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef void (*glGetBufferSubDataProcPtr)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef GLvoid *(*glMapBufferProcPtr)(GLenum target, GLenum access); -typedef GLboolean (*glUnmapBufferProcPtr)(GLenum target); -typedef void (*glGetBufferParameterivProcPtr)(GLenum target, GLenum pname, GLint *params); -typedef void (*glGetBufferPointervProcPtr)(GLenum target, GLenum pname, GLvoid **params); - -typedef void (*glDrawBuffersProcPtr)(GLsizei n, const GLenum *bufs); -typedef void (*glVertexAttrib1dProcPtr)(GLuint index, GLdouble x); -typedef void (*glVertexAttrib1dvProcPtr)(GLuint index, const GLdouble *v); -typedef void (*glVertexAttrib1fProcPtr)(GLuint index, GLfloat x); -typedef void (*glVertexAttrib1fvProcPtr)(GLuint index, const GLfloat *v); -typedef void (*glVertexAttrib1sProcPtr)(GLuint index, GLshort x); -typedef void (*glVertexAttrib1svProcPtr)(GLuint index, const GLshort *v); -typedef void (*glVertexAttrib2dProcPtr)(GLuint index, GLdouble x, GLdouble y); -typedef void (*glVertexAttrib2dvProcPtr)(GLuint index, const GLdouble *v); -typedef void (*glVertexAttrib2fProcPtr)(GLuint index, GLfloat x, GLfloat y); -typedef void (*glVertexAttrib2fvProcPtr)(GLuint index, const GLfloat *v); -typedef void (*glVertexAttrib2sProcPtr)(GLuint index, GLshort x, GLshort y); -typedef void (*glVertexAttrib2svProcPtr)(GLuint index, const GLshort *v); -typedef void (*glVertexAttrib3dProcPtr)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (*glVertexAttrib3dvProcPtr)(GLuint index, const GLdouble *v); -typedef void (*glVertexAttrib3fProcPtr)(GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (*glVertexAttrib3fvProcPtr)(GLuint index, const GLfloat *v); -typedef void (*glVertexAttrib3sProcPtr)(GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (*glVertexAttrib3svProcPtr)(GLuint index, const GLshort *v); -typedef void (*glVertexAttrib4NbvProcPtr)(GLuint index, const GLbyte *v); -typedef void (*glVertexAttrib4NivProcPtr)(GLuint index, const GLint *v); -typedef void (*glVertexAttrib4NsvProcPtr)(GLuint index, const GLshort *v); -typedef void (*glVertexAttrib4NubProcPtr)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (*glVertexAttrib4NubvProcPtr)(GLuint index, const GLubyte *v); -typedef void (*glVertexAttrib4NuivProcPtr)(GLuint index, const GLuint *v); -typedef void (*glVertexAttrib4NusvProcPtr)(GLuint index, const GLushort *v); -typedef void (*glVertexAttrib4bvProcPtr)(GLuint index, const GLbyte *v); -typedef void (*glVertexAttrib4dProcPtr)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (*glVertexAttrib4dvProcPtr)(GLuint index, const GLdouble *v); -typedef void (*glVertexAttrib4fProcPtr)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (*glVertexAttrib4fvProcPtr)(GLuint index, const GLfloat *v); -typedef void (*glVertexAttrib4ivProcPtr)(GLuint index, const GLint *v); -typedef void (*glVertexAttrib4sProcPtr)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (*glVertexAttrib4svProcPtr)(GLuint index, const GLshort *v); -typedef void (*glVertexAttrib4ubvProcPtr)(GLuint index, const GLubyte *v); -typedef void (*glVertexAttrib4uivProcPtr)(GLuint index, const GLuint *v); -typedef void (*glVertexAttrib4usvProcPtr)(GLuint index, const GLushort *v); -typedef void (*glVertexAttribPointerProcPtr)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -typedef void (*glEnableVertexAttribArrayProcPtr)(GLuint index); -typedef void (*glDisableVertexAttribArrayProcPtr)(GLuint index); -typedef void (*glGetVertexAttribdvProcPtr)(GLuint index, GLenum pname, GLdouble *params); -typedef void (*glGetVertexAttribfvProcPtr)(GLuint index, GLenum pname, GLfloat *params); -typedef void (*glGetVertexAttribivProcPtr)(GLuint index, GLenum pname, GLint *params); -typedef void (*glGetVertexAttribPointervProcPtr)(GLuint index, GLenum pname, GLvoid **pointer); -typedef void (*glDeleteShaderProcPtr)(GLuint shader); -typedef void (*glDetachShaderProcPtr)(GLuint program, GLuint shader); -typedef GLuint (*glCreateShaderProcPtr)(GLenum type); -typedef void (*glShaderSourceProcPtr)(GLuint shader, GLsizei count, const GLchar *const *string, const GLint *length); -typedef void (*glCompileShaderProcPtr)(GLuint shader); -typedef GLuint (*glCreateProgramProcPtr)(void); -typedef void (*glAttachShaderProcPtr)(GLuint program, GLuint shader); -typedef void (*glLinkProgramProcPtr)(GLuint program); -typedef void (*glUseProgramProcPtr)(GLuint program); -typedef void (*glDeleteProgramProcPtr)(GLuint program); -typedef void (*glValidateProgramProcPtr)(GLuint program); -typedef void (*glUniform1fProcPtr)(GLint location, GLfloat v0); -typedef void (*glUniform2fProcPtr)(GLint location, GLfloat v0, GLfloat v1); -typedef void (*glUniform3fProcPtr)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (*glUniform4fProcPtr)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (*glUniform1iProcPtr)(GLint location, GLint v0); -typedef void (*glUniform2iProcPtr)(GLint location, GLint v0, GLint v1); -typedef void (*glUniform3iProcPtr)(GLint location, GLint v0, GLint v1, GLint v2); -typedef void (*glUniform4iProcPtr)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (*glUniform1fvProcPtr)(GLint location, GLsizei count, const GLfloat *value); -typedef void (*glUniform2fvProcPtr)(GLint location, GLsizei count, const GLfloat *value); -typedef void (*glUniform3fvProcPtr)(GLint location, GLsizei count, const GLfloat *value); -typedef void (*glUniform4fvProcPtr)(GLint location, GLsizei count, const GLfloat *value); -typedef void (*glUniform1ivProcPtr)(GLint location, GLsizei count, const GLint *value); -typedef void (*glUniform2ivProcPtr)(GLint location, GLsizei count, const GLint *value); -typedef void (*glUniform3ivProcPtr)(GLint location, GLsizei count, const GLint *value); -typedef void (*glUniform4ivProcPtr)(GLint location, GLsizei count, const GLint *value); -typedef void (*glUniformMatrix2fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (*glUniformMatrix3fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (*glUniformMatrix4fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef GLboolean (*glIsShaderProcPtr)(GLuint shader); -typedef GLboolean (*glIsProgramProcPtr)(GLuint program); -typedef void (*glGetShaderivProcPtr)(GLuint shader, GLenum pname, GLint *params); -typedef void (*glGetProgramivProcPtr)(GLuint program, GLenum pname, GLint *params); -typedef void (*glGetAttachedShadersProcPtr)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef void (*glGetShaderInfoLogProcPtr)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (*glGetProgramInfoLogProcPtr)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef GLint (*glGetUniformLocationProcPtr)(GLuint program, const GLchar *name); -typedef void (*glGetActiveUniformProcPtr)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (*glGetUniformfvProcPtr)(GLuint program, GLint location, GLfloat *params); -typedef void (*glGetUniformivProcPtr)(GLuint program, GLint location, GLint *params); -typedef void (*glGetShaderSourceProcPtr)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef void (*glBindAttribLocationProcPtr)(GLuint program, GLuint index, const GLchar *name); -typedef void (*glGetActiveAttribProcPtr)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef GLint (*glGetAttribLocationProcPtr)(GLuint program, const GLchar *name); -typedef void (*glStencilFuncSeparateProcPtr)(GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (*glStencilOpSeparateProcPtr)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); -typedef void (*glStencilMaskSeparateProcPtr)(GLenum face, GLuint mask); - -typedef void (*glUniformMatrix2x3fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (*glUniformMatrix3x2fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (*glUniformMatrix2x4fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (*glUniformMatrix4x2fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (*glUniformMatrix3x4fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (*glUniformMatrix4x3fvProcPtr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -#else /* GL_GLEXT_FUNCTION_POINTERS */ - -extern void glAccum(GLenum op, GLfloat value); -extern void glAlphaFunc(GLenum func, GLclampf ref); -extern GLboolean glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences); -extern void glArrayElement(GLint i); -extern void glBegin(GLenum mode); -extern void glBindTexture(GLenum target, GLuint texture); -extern void glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -extern void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -extern void glBlendEquation(GLenum mode); -extern void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); -extern void glBlendFunc(GLenum sfactor, GLenum dfactor); -extern void glCallList(GLuint list); -extern void glCallLists(GLsizei n, GLenum type, const GLvoid *lists); -extern void glClear(GLbitfield mask); -extern void glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -extern void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -extern void glClearDepth(GLclampd depth); -extern void glClearIndex(GLfloat c); -extern void glClearStencil(GLint s); -extern void glClipPlane(GLenum plane, const GLdouble *equation); -extern void glColor3b(GLbyte red, GLbyte green, GLbyte blue); -extern void glColor3bv(const GLbyte *v); -extern void glColor3d(GLdouble red, GLdouble green, GLdouble blue); -extern void glColor3dv(const GLdouble *v); -extern void glColor3f(GLfloat red, GLfloat green, GLfloat blue); -extern void glColor3fv(const GLfloat *v); -extern void glColor3i(GLint red, GLint green, GLint blue); -extern void glColor3iv(const GLint *v); -extern void glColor3s(GLshort red, GLshort green, GLshort blue); -extern void glColor3sv(const GLshort *v); -extern void glColor3ub(GLubyte red, GLubyte green, GLubyte blue); -extern void glColor3ubv(const GLubyte *v); -extern void glColor3ui(GLuint red, GLuint green, GLuint blue); -extern void glColor3uiv(const GLuint *v); -extern void glColor3us(GLushort red, GLushort green, GLushort blue); -extern void glColor3usv(const GLushort *v); -extern void glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -extern void glColor4bv(const GLbyte *v); -extern void glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -extern void glColor4dv(const GLdouble *v); -extern void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -extern void glColor4fv(const GLfloat *v); -extern void glColor4i(GLint red, GLint green, GLint blue, GLint alpha); -extern void glColor4iv(const GLint *v); -extern void glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha); -extern void glColor4sv(const GLshort *v); -extern void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -extern void glColor4ubv(const GLubyte *v); -extern void glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha); -extern void glColor4uiv(const GLuint *v); -extern void glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha); -extern void glColor4usv(const GLushort *v); -extern void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -extern void glColorMaterial(GLenum face, GLenum mode); -extern void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -extern void glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -extern void glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -extern void glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params); -extern void glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params); -extern void glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -extern void glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -extern void glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params); -extern void glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params); -extern void glConvolutionParameteri(GLenum target, GLenum pname, GLint params); -extern void glConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params); -extern void glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -extern void glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -extern void glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -extern void glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -extern void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -extern void glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -extern void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -extern void glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -extern void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -extern void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -extern void glCullFace(GLenum mode); -extern void glDeleteLists(GLuint list, GLsizei range); -extern void glDeleteTextures(GLsizei n, const GLuint *textures); -extern void glDepthFunc(GLenum func); -extern void glDepthMask(GLboolean flag); -extern void glDepthRange(GLclampd zNear, GLclampd zFar); -extern void glDisable(GLenum cap); -extern void glDisableClientState(GLenum array); -extern void glDrawArrays(GLenum mode, GLint first, GLsizei count); -extern void glDrawBuffer(GLenum mode); -extern void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -extern void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -extern void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -extern void glEdgeFlag(GLboolean flag); -extern void glEdgeFlagPointer(GLsizei stride, const GLvoid *pointer); -extern void glEdgeFlagv(const GLboolean *flag); -extern void glEnable(GLenum cap); -extern void glEnableClientState(GLenum array); -extern void glEnd(void); -extern void glEndList(void); -extern void glEvalCoord1d(GLdouble u); -extern void glEvalCoord1dv(const GLdouble *u); -extern void glEvalCoord1f(GLfloat u); -extern void glEvalCoord1fv(const GLfloat *u); -extern void glEvalCoord2d(GLdouble u, GLdouble v); -extern void glEvalCoord2dv(const GLdouble *u); -extern void glEvalCoord2f(GLfloat u, GLfloat v); -extern void glEvalCoord2fv(const GLfloat *u); -extern void glEvalMesh1(GLenum mode, GLint i1, GLint i2); -extern void glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -extern void glEvalPoint1(GLint i); -extern void glEvalPoint2(GLint i, GLint j); -extern void glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer); -extern void glFinish(void); -extern void glFlush(void); -extern void glFogf(GLenum pname, GLfloat param); -extern void glFogfv(GLenum pname, const GLfloat *params); -extern void glFogi(GLenum pname, GLint param); -extern void glFogiv(GLenum pname, const GLint *params); -extern void glFrontFace(GLenum mode); -extern void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -extern GLuint glGenLists(GLsizei range); -extern void glGenTextures(GLsizei n, GLuint *textures); -extern void glGetBooleanv(GLenum pname, GLboolean *params); -extern void glGetClipPlane(GLenum plane, GLdouble *equation); -extern void glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table); -extern void glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params); -extern void glGetColorTableParameteriv(GLenum target, GLenum pname, GLint *params); -extern void glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image); -extern void glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params); -extern void glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params); -extern void glGetDoublev(GLenum pname, GLdouble *params); -extern GLenum glGetError(void); -extern void glGetFloatv(GLenum pname, GLfloat *params); -extern void glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -extern void glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params); -extern void glGetHistogramParameteriv(GLenum target, GLenum pname, GLint *params); -extern void glGetIntegerv(GLenum pname, GLint *params); -extern void glGetLightfv(GLenum light, GLenum pname, GLfloat *params); -extern void glGetLightiv(GLenum light, GLenum pname, GLint *params); -extern void glGetMapdv(GLenum target, GLenum query, GLdouble *v); -extern void glGetMapfv(GLenum target, GLenum query, GLfloat *v); -extern void glGetMapiv(GLenum target, GLenum query, GLint *v); -extern void glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params); -extern void glGetMaterialiv(GLenum face, GLenum pname, GLint *params); -extern void glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -extern void glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params); -extern void glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params); -extern void glGetPixelMapfv(GLenum map, GLfloat *values); -extern void glGetPixelMapuiv(GLenum map, GLuint *values); -extern void glGetPixelMapusv(GLenum map, GLushort *values); -extern void glGetPointerv(GLenum pname, GLvoid **params); -extern void glGetPolygonStipple(GLubyte *mask); -extern void glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -extern const GLubyte *glGetString(GLenum name); -extern void glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params); -extern void glGetTexEnviv(GLenum target, GLenum pname, GLint *params); -extern void glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params); -extern void glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params); -extern void glGetTexGeniv(GLenum coord, GLenum pname, GLint *params); -extern void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -extern void glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params); -extern void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params); -extern void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params); -extern void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params); -extern void glHint(GLenum target, GLenum mode); -extern void glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -extern void glIndexMask(GLuint mask); -extern void glIndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer); -extern void glIndexd(GLdouble c); -extern void glIndexdv(const GLdouble *c); -extern void glIndexf(GLfloat c); -extern void glIndexfv(const GLfloat *c); -extern void glIndexi(GLint c); -extern void glIndexiv(const GLint *c); -extern void glIndexs(GLshort c); -extern void glIndexsv(const GLshort *c); -extern void glIndexub(GLubyte c); -extern void glIndexubv(const GLubyte *c); -extern void glInitNames(void); -extern void glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer); -extern GLboolean glIsEnabled(GLenum cap); -extern GLboolean glIsList(GLuint list); -extern GLboolean glIsTexture(GLuint texture); -extern void glLightModelf(GLenum pname, GLfloat param); -extern void glLightModelfv(GLenum pname, const GLfloat *params); -extern void glLightModeli(GLenum pname, GLint param); -extern void glLightModeliv(GLenum pname, const GLint *params); -extern void glLightf(GLenum light, GLenum pname, GLfloat param); -extern void glLightfv(GLenum light, GLenum pname, const GLfloat *params); -extern void glLighti(GLenum light, GLenum pname, GLint param); -extern void glLightiv(GLenum light, GLenum pname, const GLint *params); -extern void glLineStipple(GLint factor, GLushort pattern); -extern void glLineWidth(GLfloat width); -extern void glListBase(GLuint base); -extern void glLoadIdentity(void); -extern void glLoadMatrixd(const GLdouble *m); -extern void glLoadMatrixf(const GLfloat *m); -extern void glLoadName(GLuint name); -extern void glLogicOp(GLenum opcode); -extern void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -extern void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -extern void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -extern void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -extern void glMapGrid1d(GLint un, GLdouble u1, GLdouble u2); -extern void glMapGrid1f(GLint un, GLfloat u1, GLfloat u2); -extern void glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -extern void glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -extern void glMaterialf(GLenum face, GLenum pname, GLfloat param); -extern void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params); -extern void glMateriali(GLenum face, GLenum pname, GLint param); -extern void glMaterialiv(GLenum face, GLenum pname, const GLint *params); -extern void glMatrixMode(GLenum mode); -extern void glMinmax(GLenum target, GLenum internalformat, GLboolean sink); -extern void glMultMatrixd(const GLdouble *m); -extern void glMultMatrixf(const GLfloat *m); -extern void glNewList(GLuint list, GLenum mode); -extern void glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz); -extern void glNormal3bv(const GLbyte *v); -extern void glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz); -extern void glNormal3dv(const GLdouble *v); -extern void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz); -extern void glNormal3fv(const GLfloat *v); -extern void glNormal3i(GLint nx, GLint ny, GLint nz); -extern void glNormal3iv(const GLint *v); -extern void glNormal3s(GLshort nx, GLshort ny, GLshort nz); -extern void glNormal3sv(const GLshort *v); -extern void glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer); -extern void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -extern void glPassThrough(GLfloat token); -extern void glPixelMapfv(GLenum map, GLint mapsize, const GLfloat *values); -extern void glPixelMapuiv(GLenum map, GLint mapsize, const GLuint *values); -extern void glPixelMapusv(GLenum map, GLint mapsize, const GLushort *values); -extern void glPixelStoref(GLenum pname, GLfloat param); -extern void glPixelStorei(GLenum pname, GLint param); -extern void glPixelTransferf(GLenum pname, GLfloat param); -extern void glPixelTransferi(GLenum pname, GLint param); -extern void glPixelZoom(GLfloat xfactor, GLfloat yfactor); -extern void glPointSize(GLfloat size); -extern void glPolygonMode(GLenum face, GLenum mode); -extern void glPolygonOffset(GLfloat factor, GLfloat units); -extern void glPolygonStipple(const GLubyte *mask); -extern void glPopAttrib(void); -extern void glPopClientAttrib(void); -extern void glPopMatrix(void); -extern void glPopName(void); -extern void glPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities); -extern void glPushAttrib(GLbitfield mask); -extern void glPushClientAttrib(GLbitfield mask); -extern void glPushMatrix(void); -extern void glPushName(GLuint name); -extern void glRasterPos2d(GLdouble x, GLdouble y); -extern void glRasterPos2dv(const GLdouble *v); -extern void glRasterPos2f(GLfloat x, GLfloat y); -extern void glRasterPos2fv(const GLfloat *v); -extern void glRasterPos2i(GLint x, GLint y); -extern void glRasterPos2iv(const GLint *v); -extern void glRasterPos2s(GLshort x, GLshort y); -extern void glRasterPos2sv(const GLshort *v); -extern void glRasterPos3d(GLdouble x, GLdouble y, GLdouble z); -extern void glRasterPos3dv(const GLdouble *v); -extern void glRasterPos3f(GLfloat x, GLfloat y, GLfloat z); -extern void glRasterPos3fv(const GLfloat *v); -extern void glRasterPos3i(GLint x, GLint y, GLint z); -extern void glRasterPos3iv(const GLint *v); -extern void glRasterPos3s(GLshort x, GLshort y, GLshort z); -extern void glRasterPos3sv(const GLshort *v); -extern void glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern void glRasterPos4dv(const GLdouble *v); -extern void glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern void glRasterPos4fv(const GLfloat *v); -extern void glRasterPos4i(GLint x, GLint y, GLint z, GLint w); -extern void glRasterPos4iv(const GLint *v); -extern void glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w); -extern void glRasterPos4sv(const GLshort *v); -extern void glReadBuffer(GLenum mode); -extern void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -extern void glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -extern void glRectdv(const GLdouble *v1, const GLdouble *v2); -extern void glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -extern void glRectfv(const GLfloat *v1, const GLfloat *v2); -extern void glRecti(GLint x1, GLint y1, GLint x2, GLint y2); -extern void glRectiv(const GLint *v1, const GLint *v2); -extern void glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); -extern void glRectsv(const GLshort *v1, const GLshort *v2); -extern GLint glRenderMode(GLenum mode); -extern void glResetHistogram(GLenum target); -extern void glResetMinmax(GLenum target); -extern void glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -extern void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -extern void glScaled(GLdouble x, GLdouble y, GLdouble z); -extern void glScalef(GLfloat x, GLfloat y, GLfloat z); -extern void glScissor(GLint x, GLint y, GLsizei width, GLsizei height); -extern void glSelectBuffer(GLsizei size, GLuint *buffer); -extern void glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -extern void glShadeModel(GLenum mode); -extern void glStencilFunc(GLenum func, GLint ref, GLuint mask); -extern void glStencilMask(GLuint mask); -extern void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); -extern void glTexCoord1d(GLdouble s); -extern void glTexCoord1dv(const GLdouble *v); -extern void glTexCoord1f(GLfloat s); -extern void glTexCoord1fv(const GLfloat *v); -extern void glTexCoord1i(GLint s); -extern void glTexCoord1iv(const GLint *v); -extern void glTexCoord1s(GLshort s); -extern void glTexCoord1sv(const GLshort *v); -extern void glTexCoord2d(GLdouble s, GLdouble t); -extern void glTexCoord2dv(const GLdouble *v); -extern void glTexCoord2f(GLfloat s, GLfloat t); -extern void glTexCoord2fv(const GLfloat *v); -extern void glTexCoord2i(GLint s, GLint t); -extern void glTexCoord2iv(const GLint *v); -extern void glTexCoord2s(GLshort s, GLshort t); -extern void glTexCoord2sv(const GLshort *v); -extern void glTexCoord3d(GLdouble s, GLdouble t, GLdouble r); -extern void glTexCoord3dv(const GLdouble *v); -extern void glTexCoord3f(GLfloat s, GLfloat t, GLfloat r); -extern void glTexCoord3fv(const GLfloat *v); -extern void glTexCoord3i(GLint s, GLint t, GLint r); -extern void glTexCoord3iv(const GLint *v); -extern void glTexCoord3s(GLshort s, GLshort t, GLshort r); -extern void glTexCoord3sv(const GLshort *v); -extern void glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q); -extern void glTexCoord4dv(const GLdouble *v); -extern void glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q); -extern void glTexCoord4fv(const GLfloat *v); -extern void glTexCoord4i(GLint s, GLint t, GLint r, GLint q); -extern void glTexCoord4iv(const GLint *v); -extern void glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q); -extern void glTexCoord4sv(const GLshort *v); -extern void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -extern void glTexEnvf(GLenum target, GLenum pname, GLfloat param); -extern void glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params); -extern void glTexEnvi(GLenum target, GLenum pname, GLint param); -extern void glTexEnviv(GLenum target, GLenum pname, const GLint *params); -extern void glTexGend(GLenum coord, GLenum pname, GLdouble param); -extern void glTexGendv(GLenum coord, GLenum pname, const GLdouble *params); -extern void glTexGenf(GLenum coord, GLenum pname, GLfloat param); -extern void glTexGenfv(GLenum coord, GLenum pname, const GLfloat *params); -extern void glTexGeni(GLenum coord, GLenum pname, GLint param); -extern void glTexGeniv(GLenum coord, GLenum pname, const GLint *params); -extern void glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -extern void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -extern void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -extern void glTexParameterf(GLenum target, GLenum pname, GLfloat param); -extern void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params); -extern void glTexParameteri(GLenum target, GLenum pname, GLint param); -extern void glTexParameteriv(GLenum target, GLenum pname, const GLint *params); -extern void glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -extern void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -extern void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -extern void glTranslated(GLdouble x, GLdouble y, GLdouble z); -extern void glTranslatef(GLfloat x, GLfloat y, GLfloat z); -extern void glVertex2d(GLdouble x, GLdouble y); -extern void glVertex2dv(const GLdouble *v); -extern void glVertex2f(GLfloat x, GLfloat y); -extern void glVertex2fv(const GLfloat *v); -extern void glVertex2i(GLint x, GLint y); -extern void glVertex2iv(const GLint *v); -extern void glVertex2s(GLshort x, GLshort y); -extern void glVertex2sv(const GLshort *v); -extern void glVertex3d(GLdouble x, GLdouble y, GLdouble z); -extern void glVertex3dv(const GLdouble *v); -extern void glVertex3f(GLfloat x, GLfloat y, GLfloat z); -extern void glVertex3fv(const GLfloat *v); -extern void glVertex3i(GLint x, GLint y, GLint z); -extern void glVertex3iv(const GLint *v); -extern void glVertex3s(GLshort x, GLshort y, GLshort z); -extern void glVertex3sv(const GLshort *v); -extern void glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern void glVertex4dv(const GLdouble *v); -extern void glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern void glVertex4fv(const GLfloat *v); -extern void glVertex4i(GLint x, GLint y, GLint z, GLint w); -extern void glVertex4iv(const GLint *v); -extern void glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w); -extern void glVertex4sv(const GLshort *v); -extern void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -extern void glViewport(GLint x, GLint y, GLsizei width, GLsizei height); - -extern void glSampleCoverage(GLclampf value, GLboolean invert); - -extern void glLoadTransposeMatrixf(const GLfloat *m); -extern void glLoadTransposeMatrixd(const GLdouble *m); -extern void glMultTransposeMatrixf(const GLfloat *m); -extern void glMultTransposeMatrixd(const GLdouble *m); - -extern void glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -extern void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -extern void glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -extern void glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -extern void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -extern void glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -extern void glGetCompressedTexImage(GLenum target, GLint lod, GLvoid *img); - -extern void glActiveTexture(GLenum texture); -extern void glClientActiveTexture(GLenum texture); -extern void glMultiTexCoord1d(GLenum target, GLdouble s); -extern void glMultiTexCoord1dv(GLenum target, const GLdouble *v); -extern void glMultiTexCoord1f(GLenum target, GLfloat s); -extern void glMultiTexCoord1fv(GLenum target, const GLfloat *v); -extern void glMultiTexCoord1i(GLenum target, GLint s); -extern void glMultiTexCoord1iv(GLenum target, const GLint *v); -extern void glMultiTexCoord1s(GLenum target, GLshort s); -extern void glMultiTexCoord1sv(GLenum target, const GLshort *v); -extern void glMultiTexCoord2d(GLenum target, GLdouble s, GLdouble t); -extern void glMultiTexCoord2dv(GLenum target, const GLdouble *v); -extern void glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t); -extern void glMultiTexCoord2fv(GLenum target, const GLfloat *v); -extern void glMultiTexCoord2i(GLenum target, GLint s, GLint t); -extern void glMultiTexCoord2iv(GLenum target, const GLint *v); -extern void glMultiTexCoord2s(GLenum target, GLshort s, GLshort t); -extern void glMultiTexCoord2sv(GLenum target, const GLshort *v); -extern void glMultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r); -extern void glMultiTexCoord3dv(GLenum target, const GLdouble *v); -extern void glMultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r); -extern void glMultiTexCoord3fv(GLenum target, const GLfloat *v); -extern void glMultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r); -extern void glMultiTexCoord3iv(GLenum target, const GLint *v); -extern void glMultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r); -extern void glMultiTexCoord3sv(GLenum target, const GLshort *v); -extern void glMultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -extern void glMultiTexCoord4dv(GLenum target, const GLdouble *v); -extern void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -extern void glMultiTexCoord4fv(GLenum target, const GLfloat *v); -extern void glMultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q); -extern void glMultiTexCoord4iv(GLenum target, const GLint *v); -extern void glMultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -extern void glMultiTexCoord4sv(GLenum target, const GLshort *v); - -extern void glFogCoordf(GLfloat coord); -extern void glFogCoordfv(const GLfloat *coord); -extern void glFogCoordd(GLdouble coord); -extern void glFogCoorddv(const GLdouble *coord); -extern void glFogCoordPointer(GLenum type, GLsizei stride, const GLvoid *pointer); - -extern void glSecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue); -extern void glSecondaryColor3bv(const GLbyte *v); -extern void glSecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue); -extern void glSecondaryColor3dv(const GLdouble *v); -extern void glSecondaryColor3f(GLfloat red, GLfloat green, GLfloat blue); -extern void glSecondaryColor3fv(const GLfloat *v); -extern void glSecondaryColor3i(GLint red, GLint green, GLint blue); -extern void glSecondaryColor3iv(const GLint *v); -extern void glSecondaryColor3s(GLshort red, GLshort green, GLshort blue); -extern void glSecondaryColor3sv(const GLshort *v); -extern void glSecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue); -extern void glSecondaryColor3ubv(const GLubyte *v); -extern void glSecondaryColor3ui(GLuint red, GLuint green, GLuint blue); -extern void glSecondaryColor3uiv(const GLuint *v); -extern void glSecondaryColor3us(GLushort red, GLushort green, GLushort blue); -extern void glSecondaryColor3usv(const GLushort *v); -extern void glSecondaryColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - -extern void glPointParameterf(GLenum pname, GLfloat param); -extern void glPointParameterfv(GLenum pname, const GLfloat *params); -extern void glPointParameteri(GLenum pname, GLint param); -extern void glPointParameteriv(GLenum pname, const GLint *params); - -extern void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); - -extern void glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -extern void glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); - -extern void glWindowPos2d(GLdouble x, GLdouble y); -extern void glWindowPos2dv(const GLdouble *v); -extern void glWindowPos2f(GLfloat x, GLfloat y); -extern void glWindowPos2fv(const GLfloat *v); -extern void glWindowPos2i(GLint x, GLint y); -extern void glWindowPos2iv(const GLint *v); -extern void glWindowPos2s(GLshort x, GLshort y); -extern void glWindowPos2sv(const GLshort *v); -extern void glWindowPos3d(GLdouble x, GLdouble y, GLdouble z); -extern void glWindowPos3dv(const GLdouble *v); -extern void glWindowPos3f(GLfloat x, GLfloat y, GLfloat z); -extern void glWindowPos3fv(const GLfloat *v); -extern void glWindowPos3i(GLint x, GLint y, GLint z); -extern void glWindowPos3iv(const GLint *v); -extern void glWindowPos3s(GLshort x, GLshort y, GLshort z); -extern void glWindowPos3sv(const GLshort *v); - -extern void glGenQueries(GLsizei n, GLuint *ids); -extern void glDeleteQueries(GLsizei n, const GLuint *ids); -extern GLboolean glIsQuery(GLuint id); -extern void glBeginQuery(GLenum target, GLuint id); -extern void glEndQuery(GLenum target); -extern void glGetQueryiv(GLenum target, GLenum pname, GLint *params); -extern void glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params); -extern void glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params); - -extern void glBindBuffer(GLenum target, GLuint buffer); -extern void glDeleteBuffers(GLsizei n, const GLuint *buffers); -extern void glGenBuffers(GLsizei n, GLuint *buffers); -extern GLboolean glIsBuffer(GLuint buffer); -extern void glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -extern void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -extern void glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -extern GLvoid *glMapBuffer(GLenum target, GLenum access); -extern GLboolean glUnmapBuffer(GLenum target); -extern void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params); -extern void glGetBufferPointerv(GLenum target, GLenum pname, GLvoid **params); - -extern void glDrawBuffers(GLsizei n, const GLenum *bufs); -extern void glVertexAttrib1d(GLuint index, GLdouble x); -extern void glVertexAttrib1dv(GLuint index, const GLdouble *v); -extern void glVertexAttrib1f(GLuint index, GLfloat x); -extern void glVertexAttrib1fv(GLuint index, const GLfloat *v); -extern void glVertexAttrib1s(GLuint index, GLshort x); -extern void glVertexAttrib1sv(GLuint index, const GLshort *v); -extern void glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y); -extern void glVertexAttrib2dv(GLuint index, const GLdouble *v); -extern void glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y); -extern void glVertexAttrib2fv(GLuint index, const GLfloat *v); -extern void glVertexAttrib2s(GLuint index, GLshort x, GLshort y); -extern void glVertexAttrib2sv(GLuint index, const GLshort *v); -extern void glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z); -extern void glVertexAttrib3dv(GLuint index, const GLdouble *v); -extern void glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z); -extern void glVertexAttrib3fv(GLuint index, const GLfloat *v); -extern void glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z); -extern void glVertexAttrib3sv(GLuint index, const GLshort *v); -extern void glVertexAttrib4Nbv(GLuint index, const GLbyte *v); -extern void glVertexAttrib4Niv(GLuint index, const GLint *v); -extern void glVertexAttrib4Nsv(GLuint index, const GLshort *v); -extern void glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -extern void glVertexAttrib4Nubv(GLuint index, const GLubyte *v); -extern void glVertexAttrib4Nuiv(GLuint index, const GLuint *v); -extern void glVertexAttrib4Nusv(GLuint index, const GLushort *v); -extern void glVertexAttrib4bv(GLuint index, const GLbyte *v); -extern void glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern void glVertexAttrib4dv(GLuint index, const GLdouble *v); -extern void glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern void glVertexAttrib4fv(GLuint index, const GLfloat *v); -extern void glVertexAttrib4iv(GLuint index, const GLint *v); -extern void glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -extern void glVertexAttrib4sv(GLuint index, const GLshort *v); -extern void glVertexAttrib4ubv(GLuint index, const GLubyte *v); -extern void glVertexAttrib4uiv(GLuint index, const GLuint *v); -extern void glVertexAttrib4usv(GLuint index, const GLushort *v); -extern void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -extern void glEnableVertexAttribArray(GLuint index); -extern void glDisableVertexAttribArray(GLuint index); -extern void glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params); -extern void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params); -extern void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params); -extern void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer); -extern void glDeleteShader(GLuint shader); -extern void glDetachShader(GLuint program, GLuint shader); -extern GLuint glCreateShader(GLenum type); -extern void glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length); -extern void glCompileShader(GLuint shader); -extern GLuint glCreateProgram(void); -extern void glAttachShader(GLuint program, GLuint shader); -extern void glLinkProgram(GLuint program); -extern void glUseProgram(GLuint program); -extern void glDeleteProgram(GLuint program); -extern void glValidateProgram(GLuint program); -extern void glUniform1f(GLint location, GLfloat v0); -extern void glUniform2f(GLint location, GLfloat v0, GLfloat v1); -extern void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -extern void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -extern void glUniform1i(GLint location, GLint v0); -extern void glUniform2i(GLint location, GLint v0, GLint v1); -extern void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2); -extern void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -extern void glUniform1fv(GLint location, GLsizei count, const GLfloat *value); -extern void glUniform2fv(GLint location, GLsizei count, const GLfloat *value); -extern void glUniform3fv(GLint location, GLsizei count, const GLfloat *value); -extern void glUniform4fv(GLint location, GLsizei count, const GLfloat *value); -extern void glUniform1iv(GLint location, GLsizei count, const GLint *value); -extern void glUniform2iv(GLint location, GLsizei count, const GLint *value); -extern void glUniform3iv(GLint location, GLsizei count, const GLint *value); -extern void glUniform4iv(GLint location, GLsizei count, const GLint *value); -extern void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern GLboolean glIsShader(GLuint shader); -extern GLboolean glIsProgram(GLuint program); -extern void glGetShaderiv(GLuint shader, GLenum pname, GLint *params); -extern void glGetProgramiv(GLuint program, GLenum pname, GLint *params); -extern void glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -extern void glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -extern void glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -extern GLint glGetUniformLocation(GLuint program, const GLchar *name); -extern void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -extern void glGetUniformfv(GLuint program, GLint location, GLfloat *params); -extern void glGetUniformiv(GLuint program, GLint location, GLint *params); -extern void glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -extern void glBindAttribLocation(GLuint program, GLuint index, const GLchar *name); -extern void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -extern GLint glGetAttribLocation(GLuint program, const GLchar *name); -extern void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); -extern void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); -extern void glStencilMaskSeparate(GLenum face, GLuint mask); - -extern void glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern void glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern void glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern void glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern void glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -extern void glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -#endif /* GL_GLEXT_FUNCTION_POINTERS */ - -#ifdef __cplusplus -} -#endif - -#endif /* __gl_h_ */ diff --git a/OpenGL/include/OpenGL/glext.h b/OpenGL/include/OpenGL/glext.h deleted file mode 100644 index d877d771..00000000 --- a/OpenGL/include/OpenGL/glext.h +++ /dev/null @@ -1,11486 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007-2011 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glext.h last updated $Date: 2011-10-02 22:22:16 -0700 (Sun, 02 Oct 2011) $ */ -/* Current version at http://www.opengl.org/registry/ */ -#define GL_GLEXT_VERSION 73 -/* Function declaration macros - to move into glplatform.h */ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -#ifndef GL_VERSION_1_2 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#endif - -#ifndef GL_VERSION_1_2_DEPRECATED -#define GL_RESCALE_NORMAL 0x803A -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#endif - -#ifndef GL_ARB_imaging -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#endif - -#ifndef GL_ARB_imaging_DEPRECATED -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#endif - -#ifndef GL_VERSION_1_3 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#endif - -#ifndef GL_VERSION_1_3_DEPRECATED -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#endif - -#ifndef GL_VERSION_1_4 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#endif - -#ifndef GL_VERSION_1_4_DEPRECATED -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#endif - -#ifndef GL_VERSION_1_5 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#endif - -#ifndef GL_VERSION_1_5_DEPRECATED -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_FOG_COORD_SRC 0x8450 -#define GL_FOG_COORD 0x8451 -#define GL_CURRENT_FOG_COORD 0x8453 -#define GL_FOG_COORD_ARRAY_TYPE 0x8454 -#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORD_ARRAY_POINTER 0x8456 -#define GL_FOG_COORD_ARRAY 0x8457 -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_RGB 0x8582 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC1_ALPHA 0x8589 -#define GL_SRC2_ALPHA 0x858A -#endif - -#ifndef GL_VERSION_2_0 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#endif - -#ifndef GL_VERSION_2_0_DEPRECATED -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_TEXTURE_COORDS 0x8871 -#endif - -#ifndef GL_VERSION_2_1 -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#endif - -#ifndef GL_VERSION_2_1_DEPRECATED -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -#endif - -#ifndef GL_VERSION_3_0 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_CLIP_DISTANCE0 0x3000 -#define GL_CLIP_DISTANCE1 0x3001 -#define GL_CLIP_DISTANCE2 0x3002 -#define GL_CLIP_DISTANCE3 0x3003 -#define GL_CLIP_DISTANCE4 0x3004 -#define GL_CLIP_DISTANCE5 0x3005 -#define GL_CLIP_DISTANCE6 0x3006 -#define GL_CLIP_DISTANCE7 0x3007 -#define GL_MAX_CLIP_DISTANCES 0x0D32 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -/* Reuse tokens from ARB_depth_buffer_float */ -/* reuse GL_DEPTH_COMPONENT32F */ -/* reuse GL_DEPTH32F_STENCIL8 */ -/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ -/* Reuse tokens from ARB_framebuffer_object */ -/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_DEFAULT */ -/* reuse GL_FRAMEBUFFER_UNDEFINED */ -/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ -/* reuse GL_INDEX */ -/* reuse GL_MAX_RENDERBUFFER_SIZE */ -/* reuse GL_DEPTH_STENCIL */ -/* reuse GL_UNSIGNED_INT_24_8 */ -/* reuse GL_DEPTH24_STENCIL8 */ -/* reuse GL_TEXTURE_STENCIL_SIZE */ -/* reuse GL_TEXTURE_RED_TYPE */ -/* reuse GL_TEXTURE_GREEN_TYPE */ -/* reuse GL_TEXTURE_BLUE_TYPE */ -/* reuse GL_TEXTURE_ALPHA_TYPE */ -/* reuse GL_TEXTURE_DEPTH_TYPE */ -/* reuse GL_UNSIGNED_NORMALIZED */ -/* reuse GL_FRAMEBUFFER_BINDING */ -/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_BINDING */ -/* reuse GL_READ_FRAMEBUFFER */ -/* reuse GL_DRAW_FRAMEBUFFER */ -/* reuse GL_READ_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_SAMPLES */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -/* reuse GL_FRAMEBUFFER_COMPLETE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ -/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ -/* reuse GL_MAX_COLOR_ATTACHMENTS */ -/* reuse GL_COLOR_ATTACHMENT0 */ -/* reuse GL_COLOR_ATTACHMENT1 */ -/* reuse GL_COLOR_ATTACHMENT2 */ -/* reuse GL_COLOR_ATTACHMENT3 */ -/* reuse GL_COLOR_ATTACHMENT4 */ -/* reuse GL_COLOR_ATTACHMENT5 */ -/* reuse GL_COLOR_ATTACHMENT6 */ -/* reuse GL_COLOR_ATTACHMENT7 */ -/* reuse GL_COLOR_ATTACHMENT8 */ -/* reuse GL_COLOR_ATTACHMENT9 */ -/* reuse GL_COLOR_ATTACHMENT10 */ -/* reuse GL_COLOR_ATTACHMENT11 */ -/* reuse GL_COLOR_ATTACHMENT12 */ -/* reuse GL_COLOR_ATTACHMENT13 */ -/* reuse GL_COLOR_ATTACHMENT14 */ -/* reuse GL_COLOR_ATTACHMENT15 */ -/* reuse GL_DEPTH_ATTACHMENT */ -/* reuse GL_STENCIL_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER */ -/* reuse GL_RENDERBUFFER */ -/* reuse GL_RENDERBUFFER_WIDTH */ -/* reuse GL_RENDERBUFFER_HEIGHT */ -/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ -/* reuse GL_STENCIL_INDEX1 */ -/* reuse GL_STENCIL_INDEX4 */ -/* reuse GL_STENCIL_INDEX8 */ -/* reuse GL_STENCIL_INDEX16 */ -/* reuse GL_RENDERBUFFER_RED_SIZE */ -/* reuse GL_RENDERBUFFER_GREEN_SIZE */ -/* reuse GL_RENDERBUFFER_BLUE_SIZE */ -/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ -/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ -/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ -/* reuse GL_MAX_SAMPLES */ -/* Reuse tokens from ARB_framebuffer_sRGB */ -/* reuse GL_FRAMEBUFFER_SRGB */ -/* Reuse tokens from ARB_half_float_vertex */ -/* reuse GL_HALF_FLOAT */ -/* Reuse tokens from ARB_map_buffer_range */ -/* reuse GL_MAP_READ_BIT */ -/* reuse GL_MAP_WRITE_BIT */ -/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ -/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ -/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ -/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ -/* Reuse tokens from ARB_texture_compression_rgtc */ -/* reuse GL_COMPRESSED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_RG_RGTC2 */ -/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ -/* Reuse tokens from ARB_texture_rg */ -/* reuse GL_RG */ -/* reuse GL_RG_INTEGER */ -/* reuse GL_R8 */ -/* reuse GL_R16 */ -/* reuse GL_RG8 */ -/* reuse GL_RG16 */ -/* reuse GL_R16F */ -/* reuse GL_R32F */ -/* reuse GL_RG16F */ -/* reuse GL_RG32F */ -/* reuse GL_R8I */ -/* reuse GL_R8UI */ -/* reuse GL_R16I */ -/* reuse GL_R16UI */ -/* reuse GL_R32I */ -/* reuse GL_R32UI */ -/* reuse GL_RG8I */ -/* reuse GL_RG8UI */ -/* reuse GL_RG16I */ -/* reuse GL_RG16UI */ -/* reuse GL_RG32I */ -/* reuse GL_RG32UI */ -/* Reuse tokens from ARB_vertex_array_object */ -/* reuse GL_VERTEX_ARRAY_BINDING */ -#endif - -#ifndef GL_VERSION_3_0_DEPRECATED -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_ALPHA_INTEGER 0x8D97 -/* Reuse tokens from ARB_framebuffer_object */ -/* reuse GL_TEXTURE_LUMINANCE_TYPE */ -/* reuse GL_TEXTURE_INTENSITY_TYPE */ -#endif - -#ifndef GL_VERSION_3_1 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -/* Reuse tokens from ARB_copy_buffer */ -/* reuse GL_COPY_READ_BUFFER */ -/* reuse GL_COPY_WRITE_BUFFER */ -/* Reuse tokens from ARB_draw_instanced (none) */ -/* Reuse tokens from ARB_uniform_buffer_object */ -/* reuse GL_UNIFORM_BUFFER */ -/* reuse GL_UNIFORM_BUFFER_BINDING */ -/* reuse GL_UNIFORM_BUFFER_START */ -/* reuse GL_UNIFORM_BUFFER_SIZE */ -/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */ -/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ -/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */ -/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */ -/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */ -/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ -/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ -/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ -/* reuse GL_ACTIVE_UNIFORM_BLOCKS */ -/* reuse GL_UNIFORM_TYPE */ -/* reuse GL_UNIFORM_SIZE */ -/* reuse GL_UNIFORM_NAME_LENGTH */ -/* reuse GL_UNIFORM_BLOCK_INDEX */ -/* reuse GL_UNIFORM_OFFSET */ -/* reuse GL_UNIFORM_ARRAY_STRIDE */ -/* reuse GL_UNIFORM_MATRIX_STRIDE */ -/* reuse GL_UNIFORM_IS_ROW_MAJOR */ -/* reuse GL_UNIFORM_BLOCK_BINDING */ -/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */ -/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */ -/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ -/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ -/* reuse GL_INVALID_INDEX */ -#endif - -#ifndef GL_VERSION_3_2 -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -/* reuse GL_MAX_VARYING_COMPONENTS */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -/* Reuse tokens from ARB_depth_clamp */ -/* reuse GL_DEPTH_CLAMP */ -/* Reuse tokens from ARB_draw_elements_base_vertex (none) */ -/* Reuse tokens from ARB_fragment_coord_conventions (none) */ -/* Reuse tokens from ARB_provoking_vertex */ -/* reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ -/* reuse GL_FIRST_VERTEX_CONVENTION */ -/* reuse GL_LAST_VERTEX_CONVENTION */ -/* reuse GL_PROVOKING_VERTEX */ -/* Reuse tokens from ARB_seamless_cube_map */ -/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ -/* Reuse tokens from ARB_sync */ -/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */ -/* reuse GL_OBJECT_TYPE */ -/* reuse GL_SYNC_CONDITION */ -/* reuse GL_SYNC_STATUS */ -/* reuse GL_SYNC_FLAGS */ -/* reuse GL_SYNC_FENCE */ -/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */ -/* reuse GL_UNSIGNALED */ -/* reuse GL_SIGNALED */ -/* reuse GL_ALREADY_SIGNALED */ -/* reuse GL_TIMEOUT_EXPIRED */ -/* reuse GL_CONDITION_SATISFIED */ -/* reuse GL_WAIT_FAILED */ -/* reuse GL_TIMEOUT_IGNORED */ -/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */ -/* reuse GL_TIMEOUT_IGNORED */ -/* Reuse tokens from ARB_texture_multisample */ -/* reuse GL_SAMPLE_POSITION */ -/* reuse GL_SAMPLE_MASK */ -/* reuse GL_SAMPLE_MASK_VALUE */ -/* reuse GL_MAX_SAMPLE_MASK_WORDS */ -/* reuse GL_TEXTURE_2D_MULTISAMPLE */ -/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */ -/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */ -/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_TEXTURE_SAMPLES */ -/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ -/* reuse GL_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */ -/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */ -/* reuse GL_MAX_INTEGER_SAMPLES */ -/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ -#endif - -#ifndef GL_VERSION_3_3 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -/* Reuse tokens from ARB_blend_func_extended */ -/* reuse GL_SRC1_COLOR */ -/* reuse GL_ONE_MINUS_SRC1_COLOR */ -/* reuse GL_ONE_MINUS_SRC1_ALPHA */ -/* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ -/* Reuse tokens from ARB_explicit_attrib_location (none) */ -/* Reuse tokens from ARB_occlusion_query2 */ -/* reuse GL_ANY_SAMPLES_PASSED */ -/* Reuse tokens from ARB_sampler_objects */ -/* reuse GL_SAMPLER_BINDING */ -/* Reuse tokens from ARB_shader_bit_encoding (none) */ -/* Reuse tokens from ARB_texture_rgb10_a2ui */ -/* reuse GL_RGB10_A2UI */ -/* Reuse tokens from ARB_texture_swizzle */ -/* reuse GL_TEXTURE_SWIZZLE_R */ -/* reuse GL_TEXTURE_SWIZZLE_G */ -/* reuse GL_TEXTURE_SWIZZLE_B */ -/* reuse GL_TEXTURE_SWIZZLE_A */ -/* reuse GL_TEXTURE_SWIZZLE_RGBA */ -/* Reuse tokens from ARB_timer_query */ -/* reuse GL_TIME_ELAPSED */ -/* reuse GL_TIMESTAMP */ -/* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */ -/* reuse GL_INT_2_10_10_10_REV */ -#endif - -#ifndef GL_VERSION_4_0 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -/* Reuse tokens from ARB_texture_query_lod (none) */ -/* Reuse tokens from ARB_draw_buffers_blend (none) */ -/* Reuse tokens from ARB_draw_indirect */ -/* reuse GL_DRAW_INDIRECT_BUFFER */ -/* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */ -/* Reuse tokens from ARB_gpu_shader5 */ -/* reuse GL_GEOMETRY_SHADER_INVOCATIONS */ -/* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ -/* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ -/* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ -/* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ -/* reuse GL_MAX_VERTEX_STREAMS */ -/* Reuse tokens from ARB_gpu_shader_fp64 */ -/* reuse GL_DOUBLE_VEC2 */ -/* reuse GL_DOUBLE_VEC3 */ -/* reuse GL_DOUBLE_VEC4 */ -/* reuse GL_DOUBLE_MAT2 */ -/* reuse GL_DOUBLE_MAT3 */ -/* reuse GL_DOUBLE_MAT4 */ -/* reuse GL_DOUBLE_MAT2x3 */ -/* reuse GL_DOUBLE_MAT2x4 */ -/* reuse GL_DOUBLE_MAT3x2 */ -/* reuse GL_DOUBLE_MAT3x4 */ -/* reuse GL_DOUBLE_MAT4x2 */ -/* reuse GL_DOUBLE_MAT4x3 */ -/* Reuse tokens from ARB_shader_subroutine */ -/* reuse GL_ACTIVE_SUBROUTINES */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ -/* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ -/* reuse GL_MAX_SUBROUTINES */ -/* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ -/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */ -/* reuse GL_COMPATIBLE_SUBROUTINES */ -/* Reuse tokens from ARB_tessellation_shader */ -/* reuse GL_PATCHES */ -/* reuse GL_PATCH_VERTICES */ -/* reuse GL_PATCH_DEFAULT_INNER_LEVEL */ -/* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */ -/* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */ -/* reuse GL_TESS_GEN_MODE */ -/* reuse GL_TESS_GEN_SPACING */ -/* reuse GL_TESS_GEN_VERTEX_ORDER */ -/* reuse GL_TESS_GEN_POINT_MODE */ -/* reuse GL_ISOLINES */ -/* reuse GL_FRACTIONAL_ODD */ -/* reuse GL_FRACTIONAL_EVEN */ -/* reuse GL_MAX_PATCH_VERTICES */ -/* reuse GL_MAX_TESS_GEN_LEVEL */ -/* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ -/* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ -/* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_PATCH_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ -/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ -/* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ -/* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ -/* reuse GL_TESS_EVALUATION_SHADER */ -/* reuse GL_TESS_CONTROL_SHADER */ -/* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */ -/* Reuse tokens from ARB_transform_feedback2 */ -/* reuse GL_TRANSFORM_FEEDBACK */ -/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ -/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ -/* reuse GL_TRANSFORM_FEEDBACK_BINDING */ -/* Reuse tokens from ARB_transform_feedback3 */ -/* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ -/* reuse GL_MAX_VERTEX_STREAMS */ -#endif - -#ifndef GL_VERSION_4_1 -/* Reuse tokens from ARB_ES2_compatibility */ -/* reuse GL_FIXED */ -/* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */ -/* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */ -/* reuse GL_LOW_FLOAT */ -/* reuse GL_MEDIUM_FLOAT */ -/* reuse GL_HIGH_FLOAT */ -/* reuse GL_LOW_INT */ -/* reuse GL_MEDIUM_INT */ -/* reuse GL_HIGH_INT */ -/* reuse GL_SHADER_COMPILER */ -/* reuse GL_NUM_SHADER_BINARY_FORMATS */ -/* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */ -/* reuse GL_MAX_VARYING_VECTORS */ -/* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */ -/* Reuse tokens from ARB_get_program_binary */ -/* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ -/* reuse GL_PROGRAM_BINARY_LENGTH */ -/* reuse GL_NUM_PROGRAM_BINARY_FORMATS */ -/* reuse GL_PROGRAM_BINARY_FORMATS */ -/* Reuse tokens from ARB_separate_shader_objects */ -/* reuse GL_VERTEX_SHADER_BIT */ -/* reuse GL_FRAGMENT_SHADER_BIT */ -/* reuse GL_GEOMETRY_SHADER_BIT */ -/* reuse GL_TESS_CONTROL_SHADER_BIT */ -/* reuse GL_TESS_EVALUATION_SHADER_BIT */ -/* reuse GL_ALL_SHADER_BITS */ -/* reuse GL_PROGRAM_SEPARABLE */ -/* reuse GL_ACTIVE_PROGRAM */ -/* reuse GL_PROGRAM_PIPELINE_BINDING */ -/* Reuse tokens from ARB_shader_precision (none) */ -/* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */ -/* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */ -/* reuse GL_MAX_VIEWPORTS */ -/* reuse GL_VIEWPORT_SUBPIXEL_BITS */ -/* reuse GL_VIEWPORT_BOUNDS_RANGE */ -/* reuse GL_LAYER_PROVOKING_VERTEX */ -/* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ -/* reuse GL_UNDEFINED_VERTEX */ -#endif - -#ifndef GL_VERSION_4_2 -/* Reuse tokens from ARB_base_instance (none) */ -/* Reuse tokens from ARB_shading_language_420pack (none) */ -/* Reuse tokens from ARB_transform_feedback_instanced (none) */ -/* Reuse tokens from ARB_compressed_texture_pixel_storage */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE */ -/* reuse GL_PACK_COMPRESSED_BLOCK_WIDTH */ -/* reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT */ -/* reuse GL_PACK_COMPRESSED_BLOCK_DEPTH */ -/* reuse GL_PACK_COMPRESSED_BLOCK_SIZE */ -/* Reuse tokens from ARB_conservative_depth (none) */ -/* Reuse tokens from ARB_internalformat_query */ -/* reuse GL_NUM_SAMPLE_COUNTS */ -/* Reuse tokens from ARB_map_buffer_alignment */ -/* reuse GL_MIN_MAP_BUFFER_ALIGNMENT */ -/* Reuse tokens from ARB_shader_atomic_counters */ -/* reuse GL_ATOMIC_COUNTER_BUFFER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_BINDING */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_START */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_SIZE */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER */ -/* reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_VERTEX_ATOMIC_COUNTERS */ -/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS */ -/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS */ -/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS */ -/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS */ -/* reuse GL_MAX_COMBINED_ATOMIC_COUNTERS */ -/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE */ -/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS */ -/* reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX */ -/* reuse GL_UNSIGNED_INT_ATOMIC_COUNTER */ -/* Reuse tokens from ARB_shader_image_load_store */ -/* reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT */ -/* reuse GL_ELEMENT_ARRAY_BARRIER_BIT */ -/* reuse GL_UNIFORM_BARRIER_BIT */ -/* reuse GL_TEXTURE_FETCH_BARRIER_BIT */ -/* reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT */ -/* reuse GL_COMMAND_BARRIER_BIT */ -/* reuse GL_PIXEL_BUFFER_BARRIER_BIT */ -/* reuse GL_TEXTURE_UPDATE_BARRIER_BIT */ -/* reuse GL_BUFFER_UPDATE_BARRIER_BIT */ -/* reuse GL_FRAMEBUFFER_BARRIER_BIT */ -/* reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT */ -/* reuse GL_ATOMIC_COUNTER_BARRIER_BIT */ -/* reuse GL_ALL_BARRIER_BITS */ -/* reuse GL_MAX_IMAGE_UNITS */ -/* reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS */ -/* reuse GL_IMAGE_BINDING_NAME */ -/* reuse GL_IMAGE_BINDING_LEVEL */ -/* reuse GL_IMAGE_BINDING_LAYERED */ -/* reuse GL_IMAGE_BINDING_LAYER */ -/* reuse GL_IMAGE_BINDING_ACCESS */ -/* reuse GL_IMAGE_1D */ -/* reuse GL_IMAGE_2D */ -/* reuse GL_IMAGE_3D */ -/* reuse GL_IMAGE_2D_RECT */ -/* reuse GL_IMAGE_CUBE */ -/* reuse GL_IMAGE_BUFFER */ -/* reuse GL_IMAGE_1D_ARRAY */ -/* reuse GL_IMAGE_2D_ARRAY */ -/* reuse GL_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_INT_IMAGE_1D */ -/* reuse GL_INT_IMAGE_2D */ -/* reuse GL_INT_IMAGE_3D */ -/* reuse GL_INT_IMAGE_2D_RECT */ -/* reuse GL_INT_IMAGE_CUBE */ -/* reuse GL_INT_IMAGE_BUFFER */ -/* reuse GL_INT_IMAGE_1D_ARRAY */ -/* reuse GL_INT_IMAGE_2D_ARRAY */ -/* reuse GL_INT_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_INT_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_1D */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D */ -/* reuse GL_UNSIGNED_INT_IMAGE_3D */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_RECT */ -/* reuse GL_UNSIGNED_INT_IMAGE_CUBE */ -/* reuse GL_UNSIGNED_INT_IMAGE_BUFFER */ -/* reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_MAX_IMAGE_SAMPLES */ -/* reuse GL_IMAGE_BINDING_FORMAT */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS */ -/* reuse GL_MAX_VERTEX_IMAGE_UNIFORMS */ -/* reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS */ -/* reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS */ -/* reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS */ -/* reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS */ -/* reuse GL_MAX_COMBINED_IMAGE_UNIFORMS */ -/* Reuse tokens from ARB_shading_language_packing (none) */ -/* Reuse tokens from ARB_texture_storage */ -/* reuse GL_TEXTURE_IMMUTABLE_FORMAT */ -#endif - -#ifndef GL_ARB_multitexture -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#endif - -#ifndef GL_ARB_multisample -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#endif - -#ifndef GL_ARB_texture_env_add -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif - -#ifndef GL_ARB_texture_compression -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif - -#ifndef GL_ARB_point_parameters -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif - -#ifndef GL_ARB_shadow -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif - -#ifndef GL_ARB_window_pos -#endif - -#ifndef GL_ARB_vertex_program -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -#endif - -#ifndef GL_ARB_fragment_program -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -#endif - -#ifndef GL_ARB_shader_objects -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#endif - -#ifndef GL_ARB_point_sprite -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_HALF_FLOAT_ARB 0x140B -#endif - -#ifndef GL_ARB_texture_float -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#endif - -#ifndef GL_ARB_draw_instanced -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#endif - -#ifndef GL_ARB_framebuffer_object_DEPRECATED -#define GL_INDEX 0x8222 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_LINES_ADJACENCY_ARB 0x000A -#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B -#define GL_TRIANGLES_ADJACENCY_ARB 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -/* reuse GL_MAX_VARYING_COMPONENTS */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_HALF_FLOAT 0x140B -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#endif - -#ifndef GL_ARB_texture_rg -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#endif - -#ifndef GL_ARB_uniform_buffer_object -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#endif - -#ifndef GL_ARB_compatibility -/* ARB_compatibility just defines tokens from core 3.0 */ -#endif - -#ifndef GL_ARB_copy_buffer -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#endif - -#ifndef GL_ARB_shader_texture_lod -#endif - -#ifndef GL_ARB_depth_clamp -#define GL_DEPTH_CLAMP 0x864F -#endif - -#ifndef GL_ARB_draw_elements_base_vertex -#endif - -#ifndef GL_ARB_fragment_coord_conventions -#endif - -#ifndef GL_ARB_provoking_vertex -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F -#endif - -#ifndef GL_ARB_seamless_cube_map -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F -#endif - -#ifndef GL_ARB_sync -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#endif - -#ifndef GL_ARB_texture_multisample -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#endif - -#ifndef GL_ARB_vertex_array_bgra -/* reuse GL_BGRA */ -#endif - -#ifndef GL_ARB_draw_buffers_blend -#endif - -#ifndef GL_ARB_sample_shading -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 -#endif - -#ifndef GL_ARB_texture_cube_map_array -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F -#endif - -#ifndef GL_ARB_texture_gather -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#endif - -#ifndef GL_ARB_texture_query_lod -#endif - -#ifndef GL_ARB_shading_language_include -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA -#endif - -#ifndef GL_ARB_texture_compression_bptc -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F -#endif - -#ifndef GL_ARB_blend_func_extended -#define GL_SRC1_COLOR 0x88F9 -/* reuse GL_SRC1_ALPHA */ -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -#endif - -#ifndef GL_ARB_explicit_attrib_location -#endif - -#ifndef GL_ARB_occlusion_query2 -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#endif - -#ifndef GL_ARB_sampler_objects -#define GL_SAMPLER_BINDING 0x8919 -#endif - -#ifndef GL_ARB_shader_bit_encoding -#endif - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_RGB10_A2UI 0x906F -#endif - -#ifndef GL_ARB_texture_swizzle -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#endif - -#ifndef GL_ARB_timer_query -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 -#endif - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -/* reuse GL_UNSIGNED_INT_2_10_10_10_REV */ -#define GL_INT_2_10_10_10_REV 0x8D9F -#endif - -#ifndef GL_ARB_draw_indirect -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#endif - -#ifndef GL_ARB_gpu_shader5 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -/* reuse GL_MAX_VERTEX_STREAMS */ -#endif - -#ifndef GL_ARB_gpu_shader_fp64 -/* reuse GL_DOUBLE */ -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#endif - -#ifndef GL_ARB_shader_subroutine -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B -/* reuse GL_UNIFORM_SIZE */ -/* reuse GL_UNIFORM_NAME_LENGTH */ -#endif - -#ifndef GL_ARB_tessellation_shader -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -/* reuse GL_TRIANGLES */ -/* reuse GL_QUADS */ -#define GL_ISOLINES 0x8E7A -/* reuse GL_EQUAL */ -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -/* reuse GL_CCW */ -/* reuse GL_CW */ -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#endif - -#ifndef GL_ARB_texture_buffer_object_rgb32 -/* reuse GL_RGB32F */ -/* reuse GL_RGB32UI */ -/* reuse GL_RGB32I */ -#endif - -#ifndef GL_ARB_transform_feedback2 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#endif - -#ifndef GL_ARB_transform_feedback3 -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -#define GL_MAX_VERTEX_STREAMS 0x8E71 -#endif - -#ifndef GL_ARB_ES2_compatibility -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#endif - -#ifndef GL_ARB_get_program_binary -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#endif - -#ifndef GL_ARB_separate_shader_objects -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#endif - -#ifndef GL_ARB_shader_precision -#endif - -#ifndef GL_ARB_vertex_attrib_64bit -/* reuse GL_RGB32I */ -/* reuse GL_DOUBLE_VEC2 */ -/* reuse GL_DOUBLE_VEC3 */ -/* reuse GL_DOUBLE_VEC4 */ -/* reuse GL_DOUBLE_MAT2 */ -/* reuse GL_DOUBLE_MAT3 */ -/* reuse GL_DOUBLE_MAT4 */ -/* reuse GL_DOUBLE_MAT2x3 */ -/* reuse GL_DOUBLE_MAT2x4 */ -/* reuse GL_DOUBLE_MAT3x2 */ -/* reuse GL_DOUBLE_MAT3x4 */ -/* reuse GL_DOUBLE_MAT4x2 */ -/* reuse GL_DOUBLE_MAT4x3 */ -#endif - -#ifndef GL_ARB_viewport_array -/* reuse GL_SCISSOR_BOX */ -/* reuse GL_VIEWPORT */ -/* reuse GL_DEPTH_RANGE */ -/* reuse GL_SCISSOR_TEST */ -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -/* reuse GL_FIRST_VERTEX_CONVENTION */ -/* reuse GL_LAST_VERTEX_CONVENTION */ -/* reuse GL_PROVOKING_VERTEX */ -#endif - -#ifndef GL_ARB_cl_event -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 -#endif - -#ifndef GL_ARB_debug_output -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 -#endif - -#ifndef GL_ARB_robustness -/* reuse GL_NO_ERROR */ -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 -#endif - -#ifndef GL_ARB_shader_stencil_export -#endif - -#ifndef GL_ARB_base_instance -#endif - -#ifndef GL_ARB_shading_language_420pack -#endif - -#ifndef GL_ARB_transform_feedback_instanced -#endif - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E -#endif - -#ifndef GL_ARB_conservative_depth -#endif - -#ifndef GL_ARB_internalformat_query -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#endif - -#ifndef GL_ARB_map_buffer_alignment -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC -#endif - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#endif - -#ifndef GL_ARB_shader_image_load_store -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#endif - -#ifndef GL_ARB_shading_language_packing -#endif - -#ifndef GL_ARB_texture_storage -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#endif - -#ifndef GL_EXT_abgr -#define GL_ABGR_EXT 0x8000 -#endif - -#ifndef GL_EXT_blend_color -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#endif - -#ifndef GL_EXT_texture -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif - -#ifndef GL_EXT_texture3D -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -#endif - -#ifndef GL_EXT_subtexture -#endif - -#ifndef GL_EXT_copy_texture -#endif - -#ifndef GL_EXT_histogram -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -#endif - -#ifndef GL_EXT_convolution -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#endif - -#ifndef GL_SGI_color_matrix -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif - -#ifndef GL_SGI_color_table -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -#endif - -#ifndef GL_SGIS_texture4D -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif - -#ifndef GL_EXT_cmyka -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif - -#ifndef GL_EXT_texture_object -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif - -#ifndef GL_SGIS_multisample -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif - -#ifndef GL_EXT_vertex_array -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#endif - -#ifndef GL_EXT_misc_attribute -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif - -#ifndef GL_SGIX_shadow -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif - -#ifndef GL_EXT_blend_logic_op -#endif - -#ifndef GL_SGIX_interlace -#define GL_INTERLACE_SGIX 0x8094 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif - -#ifndef GL_SGIS_texture_select -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif - -#ifndef GL_EXT_point_parameters -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -#endif - -#ifndef GL_SGIX_instruments -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif - -#ifndef GL_SGIX_framezoom -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#endif - -#ifndef GL_FfdMaskSGIX -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -#endif - -#ifndef GL_SGIX_flush_raster -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif - -#ifndef GL_HP_image_transform -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif - -#ifndef GL_INGR_palette_buffer -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif - -#ifndef GL_EXT_color_subtable -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_LIST_PRIORITY_SGIX 0x8182 -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif - -#ifndef GL_EXT_index_texture -#endif - -#ifndef GL_EXT_index_material -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -#endif - -#ifndef GL_EXT_index_func -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -#endif - -#ifndef GL_WIN_phong_shading -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif - -#ifndef GL_WIN_specular_fog -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif - -#ifndef GL_EXT_light_texture -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -/* reuse GL_FRAGMENT_DEPTH_EXT */ -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif - -#ifndef GL_SGIX_impact_pixel_texture -#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 -#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 -#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 -#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 -#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 -#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 -#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A -#endif - -#ifndef GL_EXT_bgra -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif - -#ifndef GL_SGIX_async -#define GL_ASYNC_MARKER_SGIX 0x8329 -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif - -#ifndef GL_INTEL_texture_scissor -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#endif - -#ifndef GL_HP_occlusion_test -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif - -#ifndef GL_EXT_secondary_color -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -#endif - -#ifndef GL_EXT_multi_draw_arrays -#endif - -#ifndef GL_EXT_fog_coord -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_FOG_SCALE_SGIX 0x81FC -#define GL_FOG_SCALE_VALUE_SGIX 0x81FD -#endif - -#ifndef GL_SUNX_constant_data -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#endif - -#ifndef GL_SUN_global_alpha -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#endif - -#ifndef GL_SUN_triangle_list -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#endif - -#ifndef GL_SUN_vertex -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#endif - -#ifndef GL_INGR_color_clamp -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INTERLACE_READ_INGR 0x8568 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif - -#ifndef GL_EXT_texture_cube_map -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif - -#ifndef GL_EXT_texture_env_add -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT GL_MODELVIEW -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#endif - -#ifndef GL_NV_register_combiners -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -/* reuse GL_TEXTURE0_ARB */ -/* reuse GL_TEXTURE1_ARB */ -/* reuse GL_ZERO */ -/* reuse GL_NONE */ -/* reuse GL_FOG */ -#endif - -#ifndef GL_NV_fog_distance -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -/* reuse GL_EYE_PLANE */ -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif - -#ifndef GL_NV_blend_square -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif - -#ifndef GL_MESA_resize_buffers -#endif - -#ifndef GL_MESA_window_pos -#endif - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_CULL_VERTEX_IBM 103050 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#endif - -#ifndef GL_SGIX_subsample -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif - -#ifndef GL_SGI_depth_pass_instrument -#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 -#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 -#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif - -#ifndef GL_3DFX_tbuffer -#endif - -#ifndef GL_EXT_multisample -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif - -#ifndef GL_SGIX_resample -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif - -#ifndef GL_NV_fence -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -#endif - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif - -#ifndef GL_NV_evaluators -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -#endif - -#ifndef GL_NV_texture_compression_vtc -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif - -#ifndef GL_NV_texture_shader -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV -#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV -#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif - -#ifndef GL_NV_vertex_program -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif - -#ifndef GL_OML_interlace -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif - -#ifndef GL_OML_subsample -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif - -#ifndef GL_OML_resample -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -#endif - -#ifndef GL_ATI_element_array -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#endif - -#ifndef GL_SUN_mesh_array -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_DEPTH_CLAMP_NV 0x864F -#endif - -#ifndef GL_NV_occlusion_query -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -#endif - -#ifndef GL_NV_point_sprite -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif - -#ifndef GL_NV_vertex_program1_1 -#endif - -#ifndef GL_EXT_shadow_funcs -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif - -#ifndef GL_APPLE_element_array -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E -#endif - -#ifndef GL_APPLE_fence -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#endif - -#ifndef GL_S3_s3tc -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif - -#ifndef GL_ATI_texture_float -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif - -#ifndef GL_NV_float_buffer -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif - -#ifndef GL_NV_fragment_program -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -#endif - -#ifndef GL_NV_half_float -#define GL_HALF_FLOAT_NV 0x140B -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -#endif - -#ifndef GL_NV_primitive_restart -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif - -#ifndef GL_NV_vertex_program2 -#endif - -#ifndef GL_ATI_map_object_buffer -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#endif - -#ifndef GL_OES_read_format -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#endif - -#ifndef GL_MESA_pack_invert -#define GL_PACK_INVERT_MESA 0x8758 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif - -#ifndef GL_NV_fragment_program_option -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif - -#ifndef GL_NV_vertex_program2_option -/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ -/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ -#endif - -#ifndef GL_NV_vertex_program3 -/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -#endif - -#ifndef GL_GREMEDY_string_marker -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#endif - -#ifndef GL_EXT_timer_query -#define GL_TIME_ELAPSED_EXT 0x88BF -#endif - -#ifndef GL_EXT_gpu_program_parameters -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ -/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ -/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ -/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -/* reuse GL_LINES_ADJACENCY_EXT */ -/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ -/* reuse GL_TRIANGLES_ADJACENCY_EXT */ -/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -/* reuse GL_PROGRAM_POINT_SIZE_EXT */ -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#endif - -#ifndef GL_EXT_draw_instanced -#endif - -#ifndef GL_EXT_packed_float -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C -#endif - -#ifndef GL_EXT_texture_array -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -#endif - -#ifndef GL_NV_fragment_program4 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#endif - -#ifndef GL_NV_geometry_shader4 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -#endif - -#ifndef GL_EXT_draw_buffers2 -#endif - -#ifndef GL_NV_transform_feedback -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -#define GL_LAYER_NV 0x8DAA -#define GL_NEXT_BUFFER_NV -2 -#define GL_SKIP_COMPONENTS4_NV -3 -#define GL_SKIP_COMPONENTS3_NV -4 -#define GL_SKIP_COMPONENTS2_NV -5 -#define GL_SKIP_COMPONENTS1_NV -6 -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -#endif - -#ifndef GL_EXT_texture_integer -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -#endif - -#ifndef GL_GREMEDY_frame_terminator -#endif - -#ifndef GL_NV_conditional_render -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -#endif - -#ifndef GL_NV_present_video -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F -#endif - -#ifndef GL_EXT_vertex_array_bgra -/* reuse GL_BGRA */ -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 -#endif - -#ifndef GL_ATI_meminfo -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD -#endif - -#ifndef GL_AMD_performance_monitor -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -#endif - -#ifndef GL_AMD_texture_texture4 -#endif - -#ifndef GL_AMD_vertex_shader_tesselator -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 -#endif - -#ifndef GL_EXT_provoking_vertex -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F -#endif - -#ifndef GL_EXT_texture_snorm -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B -/* reuse GL_RED_SNORM */ -/* reuse GL_RG_SNORM */ -/* reuse GL_RGB_SNORM */ -/* reuse GL_RGBA_SNORM */ -/* reuse GL_R8_SNORM */ -/* reuse GL_RG8_SNORM */ -/* reuse GL_RGB8_SNORM */ -/* reuse GL_RGBA8_SNORM */ -/* reuse GL_R16_SNORM */ -/* reuse GL_RG16_SNORM */ -/* reuse GL_RGB16_SNORM */ -/* reuse GL_RGBA16_SNORM */ -/* reuse GL_SIGNED_NORMALIZED */ -#endif - -#ifndef GL_AMD_draw_buffers_blend -#endif - -#ifndef GL_APPLE_texture_range -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -/* reuse GL_STORAGE_CACHED_APPLE */ -/* reuse GL_STORAGE_SHARED_APPLE */ -#endif - -#ifndef GL_APPLE_float_pixels -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F -#endif - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 -#endif - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 -#endif - -#ifndef GL_APPLE_object_purgeable -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D -#endif - -#ifndef GL_APPLE_row_bytes -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 -#endif - -#ifndef GL_APPLE_rgb_422 -#define GL_RGB_422_APPLE 0x8A1F -/* reuse GL_UNSIGNED_SHORT_8_8_APPLE */ -/* reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE */ -#endif - -#ifndef GL_NV_video_capture -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C -#endif - -#ifndef GL_NV_copy_image -#endif - -#ifndef GL_EXT_separate_shader_objects -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D -#endif - -#ifndef GL_NV_parameter_buffer_object2 -#endif - -#ifndef GL_NV_shader_buffer_load -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 -#endif - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 -#endif - -#ifndef GL_NV_texture_barrier -#endif - -#ifndef GL_AMD_shader_stencil_export -#endif - -#ifndef GL_AMD_seamless_cubemap_per_texture -/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ -#endif - -#ifndef GL_AMD_conservative_depth -#endif - -#ifndef GL_EXT_shader_image_load_store -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF -#endif - -#ifndef GL_EXT_vertex_attrib_64bit -/* reuse GL_DOUBLE */ -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -#endif - -#ifndef GL_NV_gpu_program5 -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F -#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 -#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 -#endif - -#ifndef GL_NV_gpu_shader5 -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB -/* reuse GL_PATCHES */ -#endif - -#ifndef GL_NV_shader_buffer_store -#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 -/* reuse GL_READ_WRITE */ -/* reuse GL_WRITE_ONLY */ -#endif - -#ifndef GL_NV_tessellation_program5 -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 -#endif - -#ifndef GL_NV_vertex_attrib_integer_64bit -/* reuse GL_INT64_NV */ -/* reuse GL_UNSIGNED_INT64_NV */ -#endif - -#ifndef GL_NV_multisample_coverage -#define GL_COVERAGE_SAMPLES_NV 0x80A9 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#endif - -#ifndef GL_AMD_name_gen_delete -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 -#endif - -#ifndef GL_AMD_debug_output -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 -#endif - -#ifndef GL_NV_vdpau_interop -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE -#endif - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#endif - -#ifndef GL_AMD_depth_clamp_separate -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F -#endif - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif - -#ifndef GL_NV_texture_multisample -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 -#endif - -#ifndef GL_AMD_blend_minmax_factor -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D -#endif - -#ifndef GL_AMD_sample_positions -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F -#endif - -#ifndef GL_EXT_x11_sync_object -#define GL_SYNC_X11_FENCE_EXT 0x90E1 -#endif - -#ifndef GL_AMD_multi_draw_indirect -#endif - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB -#endif - -/*************************************************************/ - -#include -#ifndef GL_VERSION_2_0 -/* GL type for program/shader text */ -typedef char GLchar; -#endif - -#ifndef GL_VERSION_1_5 -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; -#endif - -#ifndef GL_ARB_vertex_buffer_object -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -#endif - -#ifndef GL_ARB_shader_objects -/* GL types for program/shader text and shader object handles */ -typedef char GLcharARB; -typedef unsigned int GLhandleARB; -#endif - -/* GL type for "half" precision (s10e5) float data in host memory */ -#ifndef GL_ARB_half_float_pixel -typedef unsigned short GLhalfARB; -#endif - -#ifndef GL_NV_half_float -typedef unsigned short GLhalfNV; -#endif - -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined(__VMS) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -/* Fallback if nothing above works */ -#include -#endif -#endif - -#ifndef GL_EXT_timer_query -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif - -#ifndef GL_ARB_sync -typedef int64_t GLint64; -typedef uint64_t GLuint64; -typedef struct __GLsync *GLsync; -#endif - -#ifndef GL_ARB_cl_event -/* These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event */ -struct _cl_context; -struct _cl_event; -#endif - -#ifndef GL_ARB_debug_output -typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, GLvoid *userParam); -#endif - -#ifndef GL_AMD_debug_output -typedef void(APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar *message, GLvoid *userParam); -#endif - -#ifndef GL_NV_vdpau_interop -typedef GLintptr GLvdpauSurfaceNV; -#endif - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GLAPI void APIENTRY glBlendEquation(GLenum mode); -GLAPI void APIENTRY glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -GLAPI void APIENTRY glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void(APIENTRYP PFNGLBLENDEQUATIONPROC)(GLenum mode); -typedef void(APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void(APIENTRYP PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_VERSION_1_2_DEPRECATED -#define GL_VERSION_1_2_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table); -GLAPI void APIENTRY glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameteriv(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -GLAPI void APIENTRY glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteri(GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image); -GLAPI void APIENTRY glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -GLAPI void APIENTRY glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameteriv(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmax(GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogram(GLenum target); -GLAPI void APIENTRY glResetMinmax(GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void(APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLCOPYCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLGETCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void(APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void(APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat params); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC)(GLenum target, GLenum pname, GLint params); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void(APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void(APIENTRYP PFNGLSEPARABLEFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void(APIENTRYP PFNGLGETHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void(APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void(APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLHISTOGRAMPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void(APIENTRYP PFNGLMINMAXPROC)(GLenum target, GLenum internalformat, GLboolean sink); -typedef void(APIENTRYP PFNGLRESETHISTOGRAMPROC)(GLenum target); -typedef void(APIENTRYP PFNGLRESETMINMAXPROC)(GLenum target); -#endif - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture(GLenum texture); -GLAPI void APIENTRY glSampleCoverage(GLclampf value, GLboolean invert); -GLAPI void APIENTRY glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glGetCompressedTexImage(GLenum target, GLint level, GLvoid *img); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture); -typedef void(APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLclampf value, GLboolean invert); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_VERSION_1_3_DEPRECATED -#define GL_VERSION_1_3_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClientActiveTexture(GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1d(GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dv(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1f(GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fv(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1i(GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1iv(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1s(GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1sv(GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2d(GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dv(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fv(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2i(GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2iv(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2s(GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2sv(GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dv(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fv(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3iv(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3sv(GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dv(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fv(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4iv(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4sv(GLenum target, const GLshort *v); -GLAPI void APIENTRY glLoadTransposeMatrixf(const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixd(const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixf(const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixd(const GLdouble *m); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort *v); -typedef void(APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat *m); -typedef void(APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble *m); -typedef void(APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat *m); -typedef void(APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble *m); -#endif - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI void APIENTRY glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -GLAPI void APIENTRY glPointParameterf(GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfv(GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glPointParameteri(GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameteriv(GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void(APIENTRYP PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void(APIENTRYP PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -typedef void(APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params); -#endif - -#ifndef GL_VERSION_1_4_DEPRECATED -#define GL_VERSION_1_4_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordf(GLfloat coord); -GLAPI void APIENTRY glFogCoordfv(const GLfloat *coord); -GLAPI void APIENTRY glFogCoordd(GLdouble coord); -GLAPI void APIENTRY glFogCoorddv(const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointer(GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glSecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bv(const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dv(const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3f(GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fv(const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3i(GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3iv(const GLint *v); -GLAPI void APIENTRY glSecondaryColor3s(GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3sv(const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubv(const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3ui(GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uiv(const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3us(GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usv(const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glWindowPos2d(GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dv(const GLdouble *v); -GLAPI void APIENTRY glWindowPos2f(GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fv(const GLfloat *v); -GLAPI void APIENTRY glWindowPos2i(GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2iv(const GLint *v); -GLAPI void APIENTRY glWindowPos2s(GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2sv(const GLshort *v); -GLAPI void APIENTRY glWindowPos3d(GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dv(const GLdouble *v); -GLAPI void APIENTRY glWindowPos3f(GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fv(const GLfloat *v); -GLAPI void APIENTRY glWindowPos3i(GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3iv(const GLint *v); -GLAPI void APIENTRY glWindowPos3s(GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3sv(const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFOGCOORDFPROC)(GLfloat coord); -typedef void(APIENTRYP PFNGLFOGCOORDFVPROC)(const GLfloat *coord); -typedef void(APIENTRYP PFNGLFOGCOORDDPROC)(GLdouble coord); -typedef void(APIENTRYP PFNGLFOGCOORDDVPROC)(const GLdouble *coord); -typedef void(APIENTRYP PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3IVPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3SVPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3USVPROC)(const GLushort *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLWINDOWPOS2DVPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLWINDOWPOS2FVPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2IPROC)(GLint x, GLint y); -typedef void(APIENTRYP PFNGLWINDOWPOS2IVPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y); -typedef void(APIENTRYP PFNGLWINDOWPOS2SVPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLWINDOWPOS3DVPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLWINDOWPOS3FVPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z); -typedef void(APIENTRYP PFNGLWINDOWPOS3IVPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z); -typedef void(APIENTRYP PFNGLWINDOWPOS3SVPROC)(const GLshort *v); -#endif - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries(GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueries(GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQuery(GLuint id); -GLAPI void APIENTRY glBeginQuery(GLenum target, GLuint id); -GLAPI void APIENTRY glEndQuery(GLenum target); -GLAPI void APIENTRY glGetQueryiv(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params); -GLAPI void APIENTRY glBindBuffer(GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffers(GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffers(GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBuffer(GLuint buffer); -GLAPI void APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -GLAPI void APIENTRY glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -GLAPI GLvoid *APIENTRY glMapBuffer(GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBuffer(GLenum target); -GLAPI void APIENTRY glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointerv(GLenum target, GLenum pname, GLvoid **params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids); -typedef void(APIENTRYP PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids); -typedef GLboolean(APIENTRYP PFNGLISQUERYPROC)(GLuint id); -typedef void(APIENTRYP PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); -typedef void(APIENTRYP PFNGLENDQUERYPROC)(GLenum target); -typedef void(APIENTRYP PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params); -typedef void(APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); -typedef void(APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers); -typedef void(APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers); -typedef GLboolean(APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer); -typedef void(APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void(APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef void(APIENTRYP PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef GLvoid *(APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); -typedef GLboolean(APIENTRYP PFNGLUNMAPBUFFERPROC)(GLenum target); -typedef void(APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, GLvoid **params); -#endif - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glDrawBuffers(GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); -GLAPI void APIENTRY glStencilMaskSeparate(GLenum face, GLuint mask); -GLAPI void APIENTRY glAttachShader(GLuint program, GLuint shader); -GLAPI void APIENTRY glBindAttribLocation(GLuint program, GLuint index, const GLchar *name); -GLAPI void APIENTRY glCompileShader(GLuint shader); -GLAPI GLuint APIENTRY glCreateProgram(void); -GLAPI GLuint APIENTRY glCreateShader(GLenum type); -GLAPI void APIENTRY glDeleteProgram(GLuint program); -GLAPI void APIENTRY glDeleteShader(GLuint shader); -GLAPI void APIENTRY glDetachShader(GLuint program, GLuint shader); -GLAPI void APIENTRY glDisableVertexAttribArray(GLuint index); -GLAPI void APIENTRY glEnableVertexAttribArray(GLuint index); -GLAPI void APIENTRY glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -GLAPI GLint APIENTRY glGetAttribLocation(GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderiv(GLuint shader, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GLAPI GLint APIENTRY glGetUniformLocation(GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetUniformfv(GLuint program, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformiv(GLuint program, GLint location, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer); -GLAPI GLboolean APIENTRY glIsProgram(GLuint program); -GLAPI GLboolean APIENTRY glIsShader(GLuint shader); -GLAPI void APIENTRY glLinkProgram(GLuint program); -GLAPI void APIENTRY glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length); -GLAPI void APIENTRY glUseProgram(GLuint program); -GLAPI void APIENTRY glUniform1f(GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2f(GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1i(GLint location, GLint v0); -GLAPI void APIENTRY glUniform2i(GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3i(GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fv(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fv(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fv(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fv(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1iv(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2iv(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3iv(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4iv(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glValidateProgram(GLuint program); -GLAPI void APIENTRY glVertexAttrib1d(GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1f(GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fv(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1s(GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1sv(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fv(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2s(GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2sv(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fv(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3sv(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nbv(GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4Niv(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4Nsv(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4Nubv(GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4Nuiv(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4Nusv(GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bv(GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fv(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4iv(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4sv(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubv(GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uiv(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usv(GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); -typedef void(APIENTRYP PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs); -typedef void(APIENTRYP PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void(APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void(APIENTRYP PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask); -typedef void(APIENTRYP PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); -typedef void(APIENTRYP PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name); -typedef void(APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader); -typedef GLuint(APIENTRYP PFNGLCREATEPROGRAMPROC)(void); -typedef GLuint(APIENTRYP PFNGLCREATESHADERPROC)(GLenum type); -typedef void(APIENTRYP PFNGLDELETEPROGRAMPROC)(GLuint program); -typedef void(APIENTRYP PFNGLDELETESHADERPROC)(GLuint shader); -typedef void(APIENTRYP PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); -typedef void(APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); -typedef void(APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); -typedef void(APIENTRYP PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void(APIENTRYP PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void(APIENTRYP PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -typedef GLint(APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name); -typedef void(APIENTRYP PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void(APIENTRYP PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void(APIENTRYP PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef GLint(APIENTRYP PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name); -typedef void(APIENTRYP PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params); -typedef void(APIENTRYP PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, GLvoid **pointer); -typedef GLboolean(APIENTRYP PFNGLISPROGRAMPROC)(GLuint program); -typedef GLboolean(APIENTRYP PFNGLISSHADERPROC)(GLuint shader); -typedef void(APIENTRYP PFNGLLINKPROGRAMPROC)(GLuint program); -typedef void(APIENTRYP PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar **string, const GLint *length); -typedef void(APIENTRYP PFNGLUSEPROGRAMPROC)(GLuint program); -typedef void(APIENTRYP PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); -typedef void(APIENTRYP PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); -typedef void(APIENTRYP PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void(APIENTRYP PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void(APIENTRYP PFNGLUNIFORM1IPROC)(GLint location, GLint v0); -typedef void(APIENTRYP PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); -typedef void(APIENTRYP PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); -typedef void(APIENTRYP PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void(APIENTRYP PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLVALIDATEPROGRAMPROC)(GLuint program); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -/* OpenGL 3.0 also reuses entry points from these extensions: */ -/* ARB_framebuffer_object */ -/* ARB_map_buffer_range */ -/* ARB_vertex_array_object */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleani_v(GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegeri_v(GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnablei(GLenum target, GLuint index); -GLAPI void APIENTRY glDisablei(GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledi(GLenum target, GLuint index); -GLAPI void APIENTRY glBeginTransformFeedback(GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedback(void); -GLAPI void APIENTRY glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferBase(GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar **varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glClampColor(GLenum target, GLenum clamp); -GLAPI void APIENTRY glBeginConditionalRender(GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRender(void); -GLAPI void APIENTRY glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params); -GLAPI void APIENTRY glVertexAttribI1i(GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2i(GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1ui(GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2ui(GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1iv(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2iv(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3iv(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4iv(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uiv(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uiv(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uiv(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uiv(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bv(GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4sv(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubv(GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usv(GLuint index, const GLushort *v); -GLAPI void APIENTRY glGetUniformuiv(GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocation(GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocation(GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1ui(GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2ui(GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uiv(GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uiv(GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uiv(GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uiv(GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glTexParameterIiv(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value); -GLAPI void APIENTRY glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value); -GLAPI void APIENTRY glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value); -GLAPI void APIENTRY glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GLAPI const GLubyte *APIENTRY glGetStringi(GLenum name, GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void(APIENTRYP PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data); -typedef void(APIENTRYP PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data); -typedef void(APIENTRYP PFNGLENABLEIPROC)(GLenum target, GLuint index); -typedef void(APIENTRYP PFNGLDISABLEIPROC)(GLenum target, GLuint index); -typedef GLboolean(APIENTRYP PFNGLISENABLEDIPROC)(GLenum target, GLuint index); -typedef void(APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); -typedef void(APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(void); -typedef void(APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void(APIENTRYP PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); -typedef void(APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar **varyings, GLenum bufferMode); -typedef void(APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void(APIENTRYP PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp); -typedef void(APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); -typedef void(APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(void); -typedef void(APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint *params); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v); -typedef void(APIENTRYP PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params); -typedef void(APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar *name); -typedef GLint(APIENTRYP PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name); -typedef void(APIENTRYP PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); -typedef void(APIENTRYP PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); -typedef void(APIENTRYP PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void(APIENTRYP PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void(APIENTRYP PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint *params); -typedef void(APIENTRYP PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint *params); -typedef void(APIENTRYP PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void(APIENTRYP PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void(APIENTRYP PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void(APIENTRYP PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLuint index); -#endif - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 -/* OpenGL 3.1 also reuses entry points from these extensions: */ -/* ARB_copy_buffer */ -/* ARB_uniform_buffer_object */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -GLAPI void APIENTRY glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glPrimitiveRestartIndex(GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void(APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -typedef void(APIENTRYP PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); -typedef void(APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); -#endif - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 -/* OpenGL 3.2 also reuses entry points from these extensions: */ -/* ARB_draw_elements_base_vertex */ -/* ARB_provoking_vertex */ -/* ARB_sync */ -/* ARB_texture_multisample */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data); -GLAPI void APIENTRY glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data); -typedef void(APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 *params); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 -/* OpenGL 3.3 also reuses entry points from these extensions: */ -/* ARB_blend_func_extended */ -/* ARB_sampler_objects */ -/* ARB_explicit_attrib_location, but it has none */ -/* ARB_occlusion_query2 (no entry points) */ -/* ARB_shader_bit_encoding (no entry points) */ -/* ARB_texture_rgb10_a2ui (no entry points) */ -/* ARB_texture_swizzle (no entry points) */ -/* ARB_timer_query */ -/* ARB_vertex_type_2_10_10_10_rev */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisor(GLuint index, GLuint divisor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); -#endif - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 -/* OpenGL 4.0 also reuses entry points from these extensions: */ -/* ARB_texture_query_lod (no entry points) */ -/* ARB_draw_indirect */ -/* ARB_gpu_shader5 (no entry points) */ -/* ARB_gpu_shader_fp64 */ -/* ARB_shader_subroutine */ -/* ARB_tessellation_shader */ -/* ARB_texture_buffer_object_rgb32 (no entry points) */ -/* ARB_texture_cube_map_array (no entry points) */ -/* ARB_texture_gather (no entry points) */ -/* ARB_transform_feedback2 */ -/* ARB_transform_feedback3 */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShading(GLclampf value); -GLAPI void APIENTRY glBlendEquationi(GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunci(GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLMINSAMPLESHADINGPROC)(GLclampf value); -typedef void(APIENTRYP PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode); -typedef void(APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void(APIENTRYP PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst); -typedef void(APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 -/* OpenGL 4.1 reuses entry points from these extensions: */ -/* ARB_ES2_compatibility */ -/* ARB_get_program_binary */ -/* ARB_separate_shader_objects */ -/* ARB_shader_precision (no entry points) */ -/* ARB_vertex_attrib_64bit */ -/* ARB_viewport_array */ -#endif - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 -/* OpenGL 4.2 reuses entry points from these extensions: */ -/* ARB_base_instance */ -/* ARB_shading_language_420pack (no entry points) */ -/* ARB_transform_feedback_instanced */ -/* ARB_compressed_texture_pixel_storage (no entry points) */ -/* ARB_conservative_depth (no entry points) */ -/* ARB_internalformat_query */ -/* ARB_map_buffer_alignment (no entry points) */ -/* ARB_shader_atomic_counters */ -/* ARB_shader_image_load_store */ -/* ARB_shading_language_packing (no entry points) */ -/* ARB_texture_storage */ -#endif - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB(GLenum texture); -GLAPI void APIENTRY glClientActiveTextureARB(GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLACTIVETEXTUREARBPROC)(GLenum texture); -typedef void(APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort *v); -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB(const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixdARB(const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixfARB(const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixdARB(const GLdouble *m); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat *m); -typedef void(APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble *m); -typedef void(APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat *m); -typedef void(APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble *m); -#endif - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB(GLclampf value, GLboolean invert); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSAMPLECOVERAGEARBPROC)(GLclampf value, GLboolean invert); -#endif - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#endif - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glGetCompressedTexImageARB(GLenum target, GLint level, GLvoid *img); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void(APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#endif - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB(GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvARB(GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPOINTPARAMETERFARBPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLPOINTPARAMETERFVARBPROC)(GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB(GLint size, const GLbyte *weights); -GLAPI void APIENTRY glWeightsvARB(GLint size, const GLshort *weights); -GLAPI void APIENTRY glWeightivARB(GLint size, const GLint *weights); -GLAPI void APIENTRY glWeightfvARB(GLint size, const GLfloat *weights); -GLAPI void APIENTRY glWeightdvARB(GLint size, const GLdouble *weights); -GLAPI void APIENTRY glWeightubvARB(GLint size, const GLubyte *weights); -GLAPI void APIENTRY glWeightusvARB(GLint size, const GLushort *weights); -GLAPI void APIENTRY glWeightuivARB(GLint size, const GLuint *weights); -GLAPI void APIENTRY glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glVertexBlendARB(GLint count); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLWEIGHTBVARBPROC)(GLint size, const GLbyte *weights); -typedef void(APIENTRYP PFNGLWEIGHTSVARBPROC)(GLint size, const GLshort *weights); -typedef void(APIENTRYP PFNGLWEIGHTIVARBPROC)(GLint size, const GLint *weights); -typedef void(APIENTRYP PFNGLWEIGHTFVARBPROC)(GLint size, const GLfloat *weights); -typedef void(APIENTRYP PFNGLWEIGHTDVARBPROC)(GLint size, const GLdouble *weights); -typedef void(APIENTRYP PFNGLWEIGHTUBVARBPROC)(GLint size, const GLubyte *weights); -typedef void(APIENTRYP PFNGLWEIGHTUSVARBPROC)(GLint size, const GLushort *weights); -typedef void(APIENTRYP PFNGLWEIGHTUIVARBPROC)(GLint size, const GLuint *weights); -typedef void(APIENTRYP PFNGLWEIGHTPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLVERTEXBLENDARBPROC)(GLint count); -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB(GLint index); -GLAPI void APIENTRY glMatrixIndexubvARB(GLint size, const GLubyte *indices); -GLAPI void APIENTRY glMatrixIndexusvARB(GLint size, const GLushort *indices); -GLAPI void APIENTRY glMatrixIndexuivARB(GLint size, const GLuint *indices); -GLAPI void APIENTRY glMatrixIndexPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC)(GLint index); -typedef void(APIENTRYP PFNGLMATRIXINDEXUBVARBPROC)(GLint size, const GLubyte *indices); -typedef void(APIENTRYP PFNGLMATRIXINDEXUSVARBPROC)(GLint size, const GLushort *indices); -typedef void(APIENTRYP PFNGLMATRIXINDEXUIVARBPROC)(GLint size, const GLuint *indices); -typedef void(APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#endif - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#endif - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB(GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvARB(const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fARB(GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvARB(const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iARB(GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivARB(const GLint *v); -GLAPI void APIENTRY glWindowPos2sARB(GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svARB(const GLshort *v); -GLAPI void APIENTRY glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvARB(const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvARB(const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iARB(GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivARB(const GLint *v); -GLAPI void APIENTRY glWindowPos3sARB(GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svARB(const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLWINDOWPOS2DARBPROC)(GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLWINDOWPOS2DVARBPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2FARBPROC)(GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLWINDOWPOS2FVARBPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2IARBPROC)(GLint x, GLint y); -typedef void(APIENTRYP PFNGLWINDOWPOS2IVARBPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2SARBPROC)(GLshort x, GLshort y); -typedef void(APIENTRYP PFNGLWINDOWPOS2SVARBPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3DARBPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLWINDOWPOS3DVARBPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3FARBPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLWINDOWPOS3FVARBPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3IARBPROC)(GLint x, GLint y, GLint z); -typedef void(APIENTRYP PFNGLWINDOWPOS3IVARBPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3SARBPROC)(GLshort x, GLshort y, GLshort z); -typedef void(APIENTRYP PFNGLWINDOWPOS3SVARBPROC)(const GLshort *v); -#endif - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB(GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvARB(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fARB(GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvARB(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sARB(GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svARB(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvARB(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvARB(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svARB(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvARB(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvARB(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svARB(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NbvARB(GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4NivARB(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4NsvARB(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4NubvARB(GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4NuivARB(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4NusvARB(GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bvARB(GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvARB(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvARB(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4ivARB(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svARB(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubvARB(GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uivARB(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usvARB(GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glEnableVertexAttribArrayARB(GLuint index); -GLAPI void APIENTRY glDisableVertexAttribArrayARB(GLuint index); -GLAPI void APIENTRY glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid *string); -GLAPI void APIENTRY glBindProgramARB(GLenum target, GLuint program); -GLAPI void APIENTRY glDeleteProgramsARB(GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glGenProgramsARB(GLsizei n, GLuint *programs); -GLAPI void APIENTRY glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramivARB(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringARB(GLenum target, GLenum pname, GLvoid *string); -GLAPI void APIENTRY glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivARB(GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid **pointer); -GLAPI GLboolean APIENTRY glIsProgramARB(GLuint program); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); -typedef void(APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); -typedef void(APIENTRYP PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void(APIENTRYP PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program); -typedef void(APIENTRYP PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint *programs); -typedef void(APIENTRYP PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint *programs); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params); -typedef void(APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params); -typedef void(APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params); -typedef void(APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params); -typedef void(APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params); -typedef void(APIENTRYP PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, GLvoid *string); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, GLvoid **pointer); -typedef GLboolean(APIENTRYP PFNGLISPROGRAMARBPROC)(GLuint program); -#endif - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB(GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffersARB(GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffersARB(GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBufferARB(GLuint buffer); -GLAPI void APIENTRY glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -GLAPI void APIENTRY glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -GLAPI GLvoid *APIENTRY glMapBufferARB(GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBufferARB(GLenum target); -GLAPI void APIENTRY glGetBufferParameterivARB(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer); -typedef void(APIENTRYP PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint *buffers); -typedef void(APIENTRYP PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint *buffers); -typedef GLboolean(APIENTRYP PFNGLISBUFFERARBPROC)(GLuint buffer); -typedef void(APIENTRYP PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -typedef void(APIENTRYP PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -typedef void(APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -typedef GLvoid *(APIENTRYP PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access); -typedef GLboolean(APIENTRYP PFNGLUNMAPBUFFERARBPROC)(GLenum target); -typedef void(APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, GLvoid **params); -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB(GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueriesARB(GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQueryARB(GLuint id); -GLAPI void APIENTRY glBeginQueryARB(GLenum target, GLuint id); -GLAPI void APIENTRY glEndQueryARB(GLenum target); -GLAPI void APIENTRY glGetQueryivARB(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint *ids); -typedef void(APIENTRYP PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint *ids); -typedef GLboolean(APIENTRYP PFNGLISQUERYARBPROC)(GLuint id); -typedef void(APIENTRYP PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id); -typedef void(APIENTRYP PFNGLENDQUERYARBPROC)(GLenum target); -typedef void(APIENTRYP PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB(GLhandleARB obj); -GLAPI GLhandleARB APIENTRY glGetHandleARB(GLenum pname); -GLAPI void APIENTRY glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB(GLenum shaderType); -GLAPI void APIENTRY glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); -GLAPI void APIENTRY glCompileShaderARB(GLhandleARB shaderObj); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB(void); -GLAPI void APIENTRY glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj); -GLAPI void APIENTRY glLinkProgramARB(GLhandleARB programObj); -GLAPI void APIENTRY glUseProgramObjectARB(GLhandleARB programObj); -GLAPI void APIENTRY glValidateProgramARB(GLhandleARB programObj); -GLAPI void APIENTRY glUniform1fARB(GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2fARB(GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1iARB(GLint location, GLint v0); -GLAPI void APIENTRY glUniform2iARB(GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fvARB(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fvARB(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fvARB(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fvARB(GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1ivARB(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2ivARB(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3ivARB(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4ivARB(GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -GLAPI void APIENTRY glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -GLAPI GLint APIENTRY glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI void APIENTRY glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformivARB(GLhandleARB programObj, GLint location, GLint *params); -GLAPI void APIENTRY glGetShaderSourceARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj); -typedef GLhandleARB(APIENTRYP PFNGLGETHANDLEARBPROC)(GLenum pname); -typedef void(APIENTRYP PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB(APIENTRYP PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType); -typedef void(APIENTRYP PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); -typedef void(APIENTRYP PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj); -typedef GLhandleARB(APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC)(void); -typedef void(APIENTRYP PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj); -typedef void(APIENTRYP PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj); -typedef void(APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj); -typedef void(APIENTRYP PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj); -typedef void(APIENTRYP PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0); -typedef void(APIENTRYP PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1); -typedef void(APIENTRYP PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void(APIENTRYP PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void(APIENTRYP PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0); -typedef void(APIENTRYP PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1); -typedef void(APIENTRYP PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2); -typedef void(APIENTRYP PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void(APIENTRYP PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void(APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint(APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name); -typedef void(APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void(APIENTRYP PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat *params); -typedef void(APIENTRYP PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint *params); -typedef void(APIENTRYP PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI GLint APIENTRY glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void(APIENTRYP PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint(APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name); -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersARB(GLsizei n, const GLenum *bufs); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClampColorARB(GLenum target, GLenum clamp); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp); -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 -#endif - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 -#endif - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedARB(GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void(APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbuffer(GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffers(GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebuffer(GLuint framebuffer); -GLAPI void APIENTRY glBindFramebuffer(GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffers(GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatus(GLenum target); -GLAPI void APIENTRY glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmap(GLenum target); -GLAPI void APIENTRY glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI void APIENTRY glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean(APIENTRYP PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); -typedef void(APIENTRYP PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); -typedef void(APIENTRYP PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers); -typedef void(APIENTRYP PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); -typedef void(APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef GLboolean(APIENTRYP PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); -typedef void(APIENTRYP PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); -typedef void(APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers); -typedef void(APIENTRYP PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); -typedef GLenum(APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void(APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void(APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGENERATEMIPMAPPROC)(GLenum target); -typedef void(APIENTRYP PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void(APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriARB(GLuint program, GLenum pname, GLint value); -GLAPI void APIENTRY glFramebufferTextureARB(GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisorARB(GLuint index, GLuint divisor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor); -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid *APIENTRY glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid *(APIENTRYP PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void(APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferARB(GLenum target, GLenum internalformat, GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXBUFFERARBPROC)(GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 -#endif - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArray(GLuint array); -GLAPI void APIENTRY glDeleteVertexArrays(GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArrays(GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArray(GLuint array); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDVERTEXARRAYPROC)(GLuint array); -typedef void(APIENTRYP PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays); -typedef void(APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); -typedef GLboolean(APIENTRYP PFNGLISVERTEXARRAYPROC)(GLuint array); -#endif - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar **uniformNames, GLuint *uniformIndices); -GLAPI void APIENTRY glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -GLAPI GLuint APIENTRY glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName); -GLAPI void APIENTRY glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GLAPI void APIENTRY glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar **uniformNames, GLuint *uniformIndices); -typedef void(APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -typedef GLuint(APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar *uniformBlockName); -typedef void(APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void(APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 -#endif - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 -#endif - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 -#endif - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -GLAPI void APIENTRY glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); -GLAPI void APIENTRY glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount, const GLint *basevertex); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -typedef void(APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -typedef void(APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); -typedef void(APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount, const GLint *basevertex); -#endif - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 -#endif - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertex(GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROVOKINGVERTEXPROC)(GLenum mode); -#endif - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 -#endif - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glFenceSync(GLenum condition, GLbitfield flags); -GLAPI GLboolean APIENTRY glIsSync(GLsync sync); -GLAPI void APIENTRY glDeleteSync(GLsync sync); -GLAPI GLenum APIENTRY glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glGetInteger64v(GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync(APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); -typedef GLboolean(APIENTRYP PFNGLISSYNCPROC)(GLsync sync); -typedef void(APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync); -typedef GLenum(APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void(APIENTRYP PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void(APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *params); -typedef void(APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaski(GLuint index, GLbitfield mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void(APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void(APIENTRYP PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val); -typedef void(APIENTRYP PFNGLSAMPLEMASKIPROC)(GLuint index, GLbitfield mask); -#endif - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 -#endif - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationiARB(GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateiARB(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunciARB(GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateiARB(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode); -typedef void(APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void(APIENTRYP PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst); -typedef void(APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShadingARB(GLclampf value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLMINSAMPLESHADINGARBPROC)(GLclampf value); -#endif - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 -#endif - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 -#endif - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 -#endif - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glNamedStringARB(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -GLAPI void APIENTRY glDeleteNamedStringARB(GLint namelen, const GLchar *name); -GLAPI void APIENTRY glCompileShaderIncludeARB(GLuint shader, GLsizei count, const GLchar **path, const GLint *length); -GLAPI GLboolean APIENTRY glIsNamedStringARB(GLint namelen, const GLchar *name); -GLAPI void APIENTRY glGetNamedStringARB(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -GLAPI void APIENTRY glGetNamedStringivARB(GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -typedef void(APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name); -typedef void(APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count, const GLchar **path, const GLint *length); -typedef GLboolean(APIENTRYP PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name); -typedef void(APIENTRYP PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -typedef void(APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 -#endif - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataIndex(GLuint program, const GLchar *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef GLint(APIENTRYP PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name); -#endif - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 -#endif - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 -#endif - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenSamplers(GLsizei count, GLuint *samplers); -GLAPI void APIENTRY glDeleteSamplers(GLsizei count, const GLuint *samplers); -GLAPI GLboolean APIENTRY glIsSampler(GLuint sampler); -GLAPI void APIENTRY glBindSampler(GLuint unit, GLuint sampler); -GLAPI void APIENTRY glSamplerParameteri(GLuint sampler, GLenum pname, GLint param); -GLAPI void APIENTRY glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param); -GLAPI void APIENTRY glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param); -GLAPI void APIENTRY glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers); -typedef void(APIENTRYP PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers); -typedef GLboolean(APIENTRYP PFNGLISSAMPLERPROC)(GLuint sampler); -typedef void(APIENTRYP PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); -typedef void(APIENTRYP PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint *param); -typedef void(APIENTRYP PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat *param); -typedef void(APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint *param); -typedef void(APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint *param); -typedef void(APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 -#endif - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 -#endif - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 -#endif - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glQueryCounter(GLuint id, GLenum target); -GLAPI void APIENTRY glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); -typedef void(APIENTRYP PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params); -typedef void(APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params); -#endif - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexP2ui(GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP2uiv(GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP3ui(GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP3uiv(GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP4ui(GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP4uiv(GLenum type, const GLuint *value); -GLAPI void APIENTRY glTexCoordP1ui(GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP1uiv(GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP2ui(GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP2uiv(GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP3ui(GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP3uiv(GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP4ui(GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP4uiv(GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP1ui(GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP1uiv(GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP2ui(GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP2uiv(GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP3ui(GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP3uiv(GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP4ui(GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP4uiv(GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glNormalP3ui(GLenum type, GLuint coords); -GLAPI void APIENTRY glNormalP3uiv(GLenum type, const GLuint *coords); -GLAPI void APIENTRY glColorP3ui(GLenum type, GLuint color); -GLAPI void APIENTRY glColorP3uiv(GLenum type, const GLuint *color); -GLAPI void APIENTRY glColorP4ui(GLenum type, GLuint color); -GLAPI void APIENTRY glColorP4uiv(GLenum type, const GLuint *color); -GLAPI void APIENTRY glSecondaryColorP3ui(GLenum type, GLuint color); -GLAPI void APIENTRY glSecondaryColorP3uiv(GLenum type, const GLuint *color); -GLAPI void APIENTRY glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value); -typedef void(APIENTRYP PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint *value); -typedef void(APIENTRYP PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value); -typedef void(APIENTRYP PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint *value); -typedef void(APIENTRYP PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value); -typedef void(APIENTRYP PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint *value); -typedef void(APIENTRYP PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords); -typedef void(APIENTRYP PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint *coords); -typedef void(APIENTRYP PFNGLCOLORP3UIPROC)(GLenum type, GLuint color); -typedef void(APIENTRYP PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint *color); -typedef void(APIENTRYP PFNGLCOLORP4UIPROC)(GLenum type, GLuint color); -typedef void(APIENTRYP PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint *color); -typedef void(APIENTRYP PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color); -typedef void(APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint *color); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -#endif - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysIndirect(GLenum mode, const GLvoid *indirect); -GLAPI void APIENTRY glDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const GLvoid *indirect); -typedef void(APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const GLvoid *indirect); -#endif - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 -#endif - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1d(GLint location, GLdouble x); -GLAPI void APIENTRY glUniform2d(GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glUniform1dv(GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform2dv(GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform3dv(GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform4dv(GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glGetUniformdv(GLuint program, GLint location, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLUNIFORM1DPROC)(GLint location, GLdouble x); -typedef void(APIENTRYP PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble *params); -#endif - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetSubroutineUniformLocation(GLuint program, GLenum shadertype, const GLchar *name); -GLAPI GLuint APIENTRY glGetSubroutineIndex(GLuint program, GLenum shadertype, const GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -GLAPI void APIENTRY glGetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glUniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint *indices); -GLAPI void APIENTRY glGetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint *params); -GLAPI void APIENTRY glGetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint(APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar *name); -typedef GLuint(APIENTRYP PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar *name); -typedef void(APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -typedef void(APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void(APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void(APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint *indices); -typedef void(APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint *values); -#endif - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPatchParameteri(GLenum pname, GLint value); -GLAPI void APIENTRY glPatchParameterfv(GLenum pname, const GLfloat *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value); -typedef void(APIENTRYP PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat *values); -#endif - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 -#endif - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedback(GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacks(GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedback(GLuint id); -GLAPI void APIENTRY glPauseTransformFeedback(void); -GLAPI void APIENTRY glResumeTransformFeedback(void); -GLAPI void APIENTRY glDrawTransformFeedback(GLenum mode, GLuint id); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id); -typedef void(APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint *ids); -typedef void(APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids); -typedef GLboolean(APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id); -typedef void(APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC)(void); -typedef void(APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC)(void); -typedef void(APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id); -#endif - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream); -GLAPI void APIENTRY glBeginQueryIndexed(GLenum target, GLuint index, GLuint id); -GLAPI void APIENTRY glEndQueryIndexed(GLenum target, GLuint index); -GLAPI void APIENTRY glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream); -typedef void(APIENTRYP PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id); -typedef void(APIENTRYP PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index); -typedef void(APIENTRYP PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReleaseShaderCompiler(void); -GLAPI void APIENTRY glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); -GLAPI void APIENTRY glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GLAPI void APIENTRY glDepthRangef(GLclampf n, GLclampf f); -GLAPI void APIENTRY glClearDepthf(GLclampf d); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLRELEASESHADERCOMPILERPROC)(void); -typedef void(APIENTRYP PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); -typedef void(APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void(APIENTRYP PFNGLDEPTHRANGEFPROC)(GLclampf n, GLclampf f); -typedef void(APIENTRYP PFNGLCLEARDEPTHFPROC)(GLclampf d); -#endif - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -GLAPI void APIENTRY glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); -GLAPI void APIENTRY glProgramParameteri(GLuint program, GLenum pname, GLint value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -typedef void(APIENTRYP PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); -typedef void(APIENTRYP PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program); -GLAPI void APIENTRY glActiveShaderProgram(GLuint pipeline, GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar **strings); -GLAPI void APIENTRY glBindProgramPipeline(GLuint pipeline); -GLAPI void APIENTRY glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines); -GLAPI void APIENTRY glGenProgramPipelines(GLsizei n, GLuint *pipelines); -GLAPI GLboolean APIENTRY glIsProgramPipeline(GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params); -GLAPI void APIENTRY glProgramUniform1i(GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform1f(GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1d(GLuint program, GLint location, GLdouble v0); -GLAPI void APIENTRY glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform1ui(GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1); -GLAPI void APIENTRY glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -GLAPI void APIENTRY glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -GLAPI void APIENTRY glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glValidateProgramPipeline(GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program); -typedef void(APIENTRYP PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program); -typedef GLuint(APIENTRYP PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar **strings); -typedef void(APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline); -typedef void(APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint *pipelines); -typedef void(APIENTRYP PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines); -typedef GLboolean(APIENTRYP PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline); -typedef void(APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline); -typedef void(APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1d(GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dv(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble *params); -#endif - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glViewportArrayv(GLuint first, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GLAPI void APIENTRY glViewportIndexedfv(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glScissorArrayv(GLuint first, GLsizei count, const GLint *v); -GLAPI void APIENTRY glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GLAPI void APIENTRY glScissorIndexedv(GLuint index, const GLint *v); -GLAPI void APIENTRY glDepthRangeArrayv(GLuint first, GLsizei count, const GLclampd *v); -GLAPI void APIENTRY glDepthRangeIndexed(GLuint index, GLclampd n, GLclampd f); -GLAPI void APIENTRY glGetFloati_v(GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoublei_v(GLenum target, GLuint index, GLdouble *data); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat *v); -typedef void(APIENTRYP PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void(APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint *v); -typedef void(APIENTRYP PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLclampd *v); -typedef void(APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLclampd n, GLclampd f); -typedef void(APIENTRYP PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat *data); -typedef void(APIENTRYP PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble *data); -#endif - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB(struct _cl_context *context, struct _cl_event *event, GLbitfield flags); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync(APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC)(struct _cl_context *context, struct _cl_event *event, GLbitfield flags); -#endif - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageControlARB(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertARB(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackARB(GLDEBUGPROCARB callback, const GLvoid *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogARB(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void(APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void(APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback, const GLvoid *userParam); -typedef GLuint(APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB(void); -GLAPI void APIENTRY glGetnMapdvARB(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -GLAPI void APIENTRY glGetnMapfvARB(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -GLAPI void APIENTRY glGetnMapivARB(GLenum target, GLenum query, GLsizei bufSize, GLint *v); -GLAPI void APIENTRY glGetnPixelMapfvARB(GLenum map, GLsizei bufSize, GLfloat *values); -GLAPI void APIENTRY glGetnPixelMapuivARB(GLenum map, GLsizei bufSize, GLuint *values); -GLAPI void APIENTRY glGetnPixelMapusvARB(GLenum map, GLsizei bufSize, GLushort *values); -GLAPI void APIENTRY glGetnPolygonStippleARB(GLsizei bufSize, GLubyte *pattern); -GLAPI void APIENTRY glGetnColorTableARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table); -GLAPI void APIENTRY glGetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image); -GLAPI void APIENTRY glGetnSeparableFilterARB(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glGetnHistogramARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -GLAPI void APIENTRY glGetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -GLAPI void APIENTRY glGetnTexImageARB(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img); -GLAPI void APIENTRY glReadnPixelsARB(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -GLAPI void APIENTRY glGetnCompressedTexImageARB(GLenum target, GLint lod, GLsizei bufSize, GLvoid *img); -GLAPI void APIENTRY glGetnUniformfvARB(GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GLAPI void APIENTRY glGetnUniformivARB(GLuint program, GLint location, GLsizei bufSize, GLint *params); -GLAPI void APIENTRY glGetnUniformuivARB(GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GLAPI void APIENTRY glGetnUniformdvARB(GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLenum(APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC)(void); -typedef void(APIENTRYP PFNGLGETNMAPDVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -typedef void(APIENTRYP PFNGLGETNMAPFVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -typedef void(APIENTRYP PFNGLGETNMAPIVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint *v); -typedef void(APIENTRYP PFNGLGETNPIXELMAPFVARBPROC)(GLenum map, GLsizei bufSize, GLfloat *values); -typedef void(APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC)(GLenum map, GLsizei bufSize, GLuint *values); -typedef void(APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC)(GLenum map, GLsizei bufSize, GLushort *values); -typedef void(APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC)(GLsizei bufSize, GLubyte *pattern); -typedef void(APIENTRYP PFNGLGETNCOLORTABLEARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table); -typedef void(APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image); -typedef void(APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span); -typedef void(APIENTRYP PFNGLGETNHISTOGRAMARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -typedef void(APIENTRYP PFNGLGETNMINMAXARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -typedef void(APIENTRYP PFNGLGETNTEXIMAGEARBPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img); -typedef void(APIENTRYP PFNGLREADNPIXELSARBPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -typedef void(APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, GLsizei bufSize, GLvoid *img); -typedef void(APIENTRYP PFNGLGETNUNIFORMFVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void(APIENTRYP PFNGLGETNUNIFORMIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void(APIENTRYP PFNGLGETNUNIFORMUIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void(APIENTRYP PFNGLGETNUNIFORMDVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -#endif - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 -#endif - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -typedef void(APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); -typedef void(APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); -#endif - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 -#endif - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei primcount); -GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei primcount); -typedef void(APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei primcount); -#endif - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 -#endif - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 -#endif - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 -#endif - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GLAPI void APIENTRY glMemoryBarrier(GLbitfield barriers); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void(APIENTRYP PFNGLMEMORYBARRIERPROC)(GLbitfield barriers); -#endif - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 -#endif - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void(APIENTRYP PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void(APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void(APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#endif - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDCOLOREXTPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT(GLfloat factor, GLfloat bias); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPOLYGONOFFSETEXTPROC)(GLfloat factor, GLfloat bias); -#endif - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#endif - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS(GLenum target, GLenum filter, GLfloat *weights); -GLAPI void APIENTRY glTexFilterFuncSGIS(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLfloat *weights); -typedef void(APIENTRYP PFNGLTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTexImage2DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glCopyTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void(APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void(APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetHistogramParameterfvEXT(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameterivEXT(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmaxEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameterivEXT(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogramEXT(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmaxEXT(GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogramEXT(GLenum target); -GLAPI void APIENTRY glResetMinmaxEXT(GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETHISTOGRAMEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void(APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETMINMAXEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void(APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLHISTOGRAMEXTPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void(APIENTRYP PFNGLMINMAXEXTPROC)(GLenum target, GLenum internalformat, GLboolean sink); -typedef void(APIENTRYP PFNGLRESETHISTOGRAMEXTPROC)(GLenum target); -typedef void(APIENTRYP PFNGLRESETMINMAXEXTPROC)(GLenum target); -#endif - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionParameterfEXT(GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteriEXT(GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameterivEXT(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *image); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameterivEXT(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glSeparableFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void(APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC)(GLenum target, GLenum pname, GLfloat params); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC)(GLenum target, GLenum pname, GLint params); -typedef void(APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void(APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void(APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 -#endif - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glColorTableParameterfvSGI(GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameterivSGI(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTableSGI(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTableSGI(GLenum target, GLenum format, GLenum type, GLvoid *table); -GLAPI void APIENTRY glGetColorTableParameterfvSGI(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameterivSGI(GLenum target, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void(APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLCOPYCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLGETCOLORTABLESGIPROC)(GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void(APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX(GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPIXELTEXGENSGIXPROC)(GLenum mode); -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS(GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS(GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS(GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS(GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS(GLenum pname, GLint *params); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS(GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage4DSGIS(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXIMAGE4DSGISPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#endif - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#endif - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT(GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void APIENTRY glBindTextureEXT(GLenum target, GLuint texture); -GLAPI void APIENTRY glDeleteTexturesEXT(GLsizei n, const GLuint *textures); -GLAPI void APIENTRY glGenTexturesEXT(GLsizei n, GLuint *textures); -GLAPI GLboolean APIENTRY glIsTextureEXT(GLuint texture); -GLAPI void APIENTRY glPrioritizeTexturesEXT(GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean(APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void(APIENTRYP PFNGLBINDTEXTUREEXTPROC)(GLenum target, GLuint texture); -typedef void(APIENTRYP PFNGLDELETETEXTURESEXTPROC)(GLsizei n, const GLuint *textures); -typedef void(APIENTRYP PFNGLGENTEXTURESEXTPROC)(GLsizei n, GLuint *textures); -typedef GLboolean(APIENTRYP PFNGLISTEXTUREEXTPROC)(GLuint texture); -typedef void(APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC)(GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetDetailTexFuncSGIS(GLenum target, GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDETAILTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat *points); -typedef void(APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC)(GLenum target, GLfloat *points); -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS(GLenum target, GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat *points); -typedef void(APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC)(GLenum target, GLfloat *points); -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#endif - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS(GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternSGIS(GLenum pattern); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSAMPLEMASKSGISPROC)(GLclampf value, GLboolean invert); -typedef void(APIENTRYP PFNGLSAMPLEPATTERNSGISPROC)(GLenum pattern); -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#endif - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT(GLint i); -GLAPI void APIENTRY glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glDrawArraysEXT(GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer); -GLAPI void APIENTRY glGetPointervEXT(GLenum pname, GLvoid **params); -GLAPI void APIENTRY glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLARRAYELEMENTEXTPROC)(GLint i); -typedef void(APIENTRYP PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count); -typedef void(APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void(APIENTRYP PFNGLGETPOINTERVEXTPROC)(GLenum pname, GLvoid **params); -typedef void(APIENTRYP PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#endif - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT(GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDEQUATIONEXTPROC)(GLenum mode); -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#endif - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#endif - -#ifndef GL_SGIX_texture_select -#define GL_SGIX_texture_select 1 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX(GLenum pname, GLfloat param); -GLAPI void APIENTRY glSpriteParameterfvSGIX(GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glSpriteParameteriSGIX(GLenum pname, GLint param); -GLAPI void APIENTRY glSpriteParameterivSGIX(GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC)(GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC)(GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#endif - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT(GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvEXT(GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPOINTPARAMETERFEXTPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS(GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvSGIS(GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPOINTPARAMETERFSGISPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC)(GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX(void); -GLAPI void APIENTRY glInstrumentsBufferSGIX(GLsizei size, GLint *buffer); -GLAPI GLint APIENTRY glPollInstrumentsSGIX(GLint *marker_p); -GLAPI void APIENTRY glReadInstrumentsSGIX(GLint marker); -GLAPI void APIENTRY glStartInstrumentsSGIX(void); -GLAPI void APIENTRY glStopInstrumentsSGIX(GLint marker); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint(APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC)(void); -typedef void(APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC)(GLsizei size, GLint *buffer); -typedef GLint(APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC)(GLint *marker_p); -typedef void(APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC)(GLint marker); -typedef void(APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC)(void); -typedef void(APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC)(GLint marker); -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#endif - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX(GLint factor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFRAMEZOOMSGIXPROC)(GLint factor); -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC)(void); -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -GLAPI void APIENTRY glDeformationMap3fSGIX(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -GLAPI void APIENTRY glDeformSGIX(GLbitfield mask); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX(GLbitfield mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void(APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void(APIENTRYP PFNGLDEFORMSGIXPROC)(GLbitfield mask); -typedef void(APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)(GLbitfield mask); -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX(const GLdouble *equation); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLREFERENCEPLANESGIXPROC)(const GLdouble *equation); -#endif - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFLUSHRASTERSGIXPROC)(void); -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS(GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetFogFuncSGIS(GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFOGFUNCSGISPROC)(GLsizei n, const GLfloat *points); -typedef void(APIENTRYP PFNGLGETFOGFUNCSGISPROC)(GLfloat *points); -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#endif - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP(GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glImageTransformParameterfHP(GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glImageTransformParameterivHP(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glImageTransformParameterfvHP(GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetImageTransformParameterivHP(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetImageTransformParameterfvHP(GLenum target, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC)(GLenum target, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC)(GLenum target, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#endif - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -GLAPI void APIENTRY glCopyColorSubTableEXT(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void(APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI(GLenum target, GLint mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLHINTPGIPROC)(GLenum target, GLint mode); -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *data); -GLAPI void APIENTRY glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLORTABLEEXTPROC)(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void(APIENTRYP PFNGLGETCOLORTABLEEXTPROC)(GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void(APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX(GLuint list, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetListParameterivSGIX(GLuint list, GLenum pname, GLint *params); -GLAPI void APIENTRY glListParameterfSGIX(GLuint list, GLenum pname, GLfloat param); -GLAPI void APIENTRY glListParameterfvSGIX(GLuint list, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glListParameteriSGIX(GLuint list, GLenum pname, GLint param); -GLAPI void APIENTRY glListParameterivSGIX(GLuint list, GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLLISTPARAMETERFSGIXPROC)(GLuint list, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLLISTPARAMETERISGIXPROC)(GLuint list, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#endif - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT(GLenum face, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLINDEXMATERIALEXTPROC)(GLenum face, GLenum mode); -#endif - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT(GLenum func, GLclampf ref); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLINDEXFUNCEXTPROC)(GLenum func, GLclampf ref); -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT(GLint first, GLsizei count); -GLAPI void APIENTRY glUnlockArraysEXT(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLLOCKARRAYSEXTPROC)(GLint first, GLsizei count); -typedef void(APIENTRYP PFNGLUNLOCKARRAYSEXTPROC)(void); -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT(GLenum pname, GLdouble *params); -GLAPI void APIENTRY glCullParameterfvEXT(GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCULLPARAMETERDVEXTPROC)(GLenum pname, GLdouble *params); -typedef void(APIENTRYP PFNGLCULLPARAMETERFVEXTPROC)(GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX(GLenum face, GLenum mode); -GLAPI void APIENTRY glFragmentLightfSGIX(GLenum light, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightfvSGIX(GLenum light, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightiSGIX(GLenum light, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightivSGIX(GLenum light, GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentLightModelfSGIX(GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightModelfvSGIX(GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightModeliSGIX(GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightModelivSGIX(GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentMaterialfSGIX(GLenum face, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentMaterialfvSGIX(GLenum face, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentMaterialiSGIX(GLenum face, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentMaterialivSGIX(GLenum face, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetFragmentLightfvSGIX(GLenum light, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentLightivSGIX(GLenum light, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX(GLenum face, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX(GLenum face, GLenum pname, GLint *params); -GLAPI void APIENTRY glLightEnviSGIX(GLenum pname, GLint param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC)(GLenum face, GLenum mode); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC)(GLenum light, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC)(GLenum light, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC)(GLenum face, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC)(GLenum face, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLLIGHTENVISGIXPROC)(GLenum pname, GLint param); -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#endif - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#endif - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT(GLenum mode); -GLAPI void APIENTRY glTextureLightEXT(GLenum pname); -GLAPI void APIENTRY glTextureMaterialEXT(GLenum face, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLAPPLYTEXTUREEXTPROC)(GLenum mode); -typedef void(APIENTRYP PFNGLTEXTURELIGHTEXTPROC)(GLenum pname); -typedef void(APIENTRYP PFNGLTEXTUREMATERIALEXTPROC)(GLenum face, GLenum mode); -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#endif - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#endif - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX(GLuint marker); -GLAPI GLint APIENTRY glFinishAsyncSGIX(GLuint *markerp); -GLAPI GLint APIENTRY glPollAsyncSGIX(GLuint *markerp); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX(GLsizei range); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX(GLuint marker, GLsizei range); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX(GLuint marker); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLASYNCMARKERSGIXPROC)(GLuint marker); -typedef GLint(APIENTRYP PFNGLFINISHASYNCSGIXPROC)(GLuint *markerp); -typedef GLint(APIENTRYP PFNGLPOLLASYNCSGIXPROC)(GLuint *markerp); -typedef GLuint(APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC)(GLsizei range); -typedef void(APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC)(GLuint marker, GLsizei range); -typedef GLboolean(APIENTRYP PFNGLISASYNCMARKERSGIXPROC)(GLuint marker); -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL(GLint size, GLenum type, const GLvoid **pointer); -GLAPI void APIENTRY glNormalPointervINTEL(GLenum type, const GLvoid **pointer); -GLAPI void APIENTRY glColorPointervINTEL(GLint size, GLenum type, const GLvoid **pointer); -GLAPI void APIENTRY glTexCoordPointervINTEL(GLint size, GLenum type, const GLvoid **pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXPOINTERVINTELPROC)(GLint size, GLenum type, const GLvoid **pointer); -typedef void(APIENTRYP PFNGLNORMALPOINTERVINTELPROC)(GLenum type, const GLvoid **pointer); -typedef void(APIENTRYP PFNGLCOLORPOINTERVINTELPROC)(GLint size, GLenum type, const GLvoid **pointer); -typedef void(APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC)(GLint size, GLenum type, const GLvoid **pointer); -#endif - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT(GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTransformParameterfEXT(GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)(GLenum target, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)(GLenum target, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#endif - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bvEXT(const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dvEXT(const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fvEXT(const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3iEXT(GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3ivEXT(const GLint *v); -GLAPI void APIENTRY glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3svEXT(const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubvEXT(const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uivEXT(const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usvEXT(const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC)(GLbyte red, GLbyte green, GLbyte blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC)(const GLbyte *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC)(GLdouble red, GLdouble green, GLdouble blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC)(GLfloat red, GLfloat green, GLfloat blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC)(GLint red, GLint green, GLint blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC)(GLshort red, GLshort green, GLshort blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte red, GLubyte green, GLubyte blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC)(GLuint red, GLuint green, GLuint blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC)(const GLuint *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC)(GLushort red, GLushort green, GLushort blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC)(const GLushort *v); -typedef void(APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT(GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXTURENORMALEXTPROC)(GLenum mode); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void(APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT(GLfloat coord); -GLAPI void APIENTRY glFogCoordfvEXT(const GLfloat *coord); -GLAPI void APIENTRY glFogCoorddEXT(GLdouble coord); -GLAPI void APIENTRY glFogCoorddvEXT(const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFOGCOORDFEXTPROC)(GLfloat coord); -typedef void(APIENTRYP PFNGLFOGCOORDFVEXTPROC)(const GLfloat *coord); -typedef void(APIENTRYP PFNGLFOGCOORDDEXTPROC)(GLdouble coord); -typedef void(APIENTRYP PFNGLFOGCOORDDVEXTPROC)(const GLdouble *coord); -typedef void(APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT(GLbyte tx, GLbyte ty, GLbyte tz); -GLAPI void APIENTRY glTangent3bvEXT(const GLbyte *v); -GLAPI void APIENTRY glTangent3dEXT(GLdouble tx, GLdouble ty, GLdouble tz); -GLAPI void APIENTRY glTangent3dvEXT(const GLdouble *v); -GLAPI void APIENTRY glTangent3fEXT(GLfloat tx, GLfloat ty, GLfloat tz); -GLAPI void APIENTRY glTangent3fvEXT(const GLfloat *v); -GLAPI void APIENTRY glTangent3iEXT(GLint tx, GLint ty, GLint tz); -GLAPI void APIENTRY glTangent3ivEXT(const GLint *v); -GLAPI void APIENTRY glTangent3sEXT(GLshort tx, GLshort ty, GLshort tz); -GLAPI void APIENTRY glTangent3svEXT(const GLshort *v); -GLAPI void APIENTRY glBinormal3bEXT(GLbyte bx, GLbyte by, GLbyte bz); -GLAPI void APIENTRY glBinormal3bvEXT(const GLbyte *v); -GLAPI void APIENTRY glBinormal3dEXT(GLdouble bx, GLdouble by, GLdouble bz); -GLAPI void APIENTRY glBinormal3dvEXT(const GLdouble *v); -GLAPI void APIENTRY glBinormal3fEXT(GLfloat bx, GLfloat by, GLfloat bz); -GLAPI void APIENTRY glBinormal3fvEXT(const GLfloat *v); -GLAPI void APIENTRY glBinormal3iEXT(GLint bx, GLint by, GLint bz); -GLAPI void APIENTRY glBinormal3ivEXT(const GLint *v); -GLAPI void APIENTRY glBinormal3sEXT(GLshort bx, GLshort by, GLshort bz); -GLAPI void APIENTRY glBinormal3svEXT(const GLshort *v); -GLAPI void APIENTRY glTangentPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glBinormalPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTANGENT3BEXTPROC)(GLbyte tx, GLbyte ty, GLbyte tz); -typedef void(APIENTRYP PFNGLTANGENT3BVEXTPROC)(const GLbyte *v); -typedef void(APIENTRYP PFNGLTANGENT3DEXTPROC)(GLdouble tx, GLdouble ty, GLdouble tz); -typedef void(APIENTRYP PFNGLTANGENT3DVEXTPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLTANGENT3FEXTPROC)(GLfloat tx, GLfloat ty, GLfloat tz); -typedef void(APIENTRYP PFNGLTANGENT3FVEXTPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLTANGENT3IEXTPROC)(GLint tx, GLint ty, GLint tz); -typedef void(APIENTRYP PFNGLTANGENT3IVEXTPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLTANGENT3SEXTPROC)(GLshort tx, GLshort ty, GLshort tz); -typedef void(APIENTRYP PFNGLTANGENT3SVEXTPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLBINORMAL3BEXTPROC)(GLbyte bx, GLbyte by, GLbyte bz); -typedef void(APIENTRYP PFNGLBINORMAL3BVEXTPROC)(const GLbyte *v); -typedef void(APIENTRYP PFNGLBINORMAL3DEXTPROC)(GLdouble bx, GLdouble by, GLdouble bz); -typedef void(APIENTRYP PFNGLBINORMAL3DVEXTPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLBINORMAL3FEXTPROC)(GLfloat bx, GLfloat by, GLfloat bz); -typedef void(APIENTRYP PFNGLBINORMAL3FVEXTPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLBINORMAL3IEXTPROC)(GLint bx, GLint by, GLint bz); -typedef void(APIENTRYP PFNGLBINORMAL3IVEXTPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLBINORMAL3SEXTPROC)(GLshort bx, GLshort by, GLshort bz); -typedef void(APIENTRYP PFNGLBINORMAL3SVEXTPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLTANGENTPOINTEREXTPROC)(GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLBINORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_SGIX_fog_scale 1 -#endif - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFINISHTEXTURESUNXPROC)(void); -#endif - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN(GLbyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN(GLshort factor); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN(GLint factor); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN(GLfloat factor); -GLAPI void APIENTRY glGlobalAlphaFactordSUN(GLdouble factor); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN(GLubyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN(GLushort factor); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN(GLuint factor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC)(GLbyte factor); -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC)(GLshort factor); -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC)(GLint factor); -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC)(GLfloat factor); -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC)(GLdouble factor); -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC)(GLubyte factor); -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC)(GLushort factor); -typedef void(APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC)(GLuint factor); -#endif - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN(GLuint code); -GLAPI void APIENTRY glReplacementCodeusSUN(GLushort code); -GLAPI void APIENTRY glReplacementCodeubSUN(GLubyte code); -GLAPI void APIENTRY glReplacementCodeuivSUN(const GLuint *code); -GLAPI void APIENTRY glReplacementCodeusvSUN(const GLushort *code); -GLAPI void APIENTRY glReplacementCodeubvSUN(const GLubyte *code); -GLAPI void APIENTRY glReplacementCodePointerSUN(GLenum type, GLsizei stride, const GLvoid **pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC)(GLuint code); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC)(GLushort code); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC)(GLubyte code); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC)(const GLuint *code); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC)(const GLushort *code); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC)(const GLubyte *code); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC)(GLenum type, GLsizei stride, const GLvoid **pointer); -#endif - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -GLAPI void APIENTRY glColor4ubVertex2fvSUN(const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor4ubVertex3fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4ubVertex3fvSUN(const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor3fVertex3fvSUN(const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glNormal3fVertex3fSUN(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glNormal3fVertex3fvSUN(const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN(const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN(const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN(const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN(const GLfloat *tc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN(const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN(GLuint rc, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN(const GLuint *rc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN(const GLuint *rc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN(const GLuint *rc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC)(const GLubyte *c, const GLfloat *v); -typedef void(APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC)(const GLubyte *c, const GLfloat *v); -typedef void(APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *v); -typedef void(APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC)(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *v); -typedef void(APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC)(const GLfloat *tc, const GLfloat *v); -typedef void(APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)(const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void(APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void(APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)(GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)(const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#endif - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT(GLfloat weight); -GLAPI void APIENTRY glVertexWeightfvEXT(const GLfloat *weight); -GLAPI void APIENTRY glVertexWeightPointerEXT(GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC)(GLfloat weight); -typedef void(APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC)(const GLfloat *weight); -typedef void(APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC)(GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV(void); -GLAPI void APIENTRY glVertexArrayRangeNV(GLsizei length, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC)(void); -typedef void(APIENTRYP PFNGLVERTEXARRAYRANGENVPROC)(GLsizei length, const GLvoid *pointer); -#endif - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV(GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glCombinerParameterfNV(GLenum pname, GLfloat param); -GLAPI void APIENTRY glCombinerParameterivNV(GLenum pname, const GLint *params); -GLAPI void APIENTRY glCombinerParameteriNV(GLenum pname, GLint param); -GLAPI void APIENTRY glCombinerInputNV(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glCombinerOutputNV(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -GLAPI void APIENTRY glFinalCombinerInputNV(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerInputParameterivNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV(GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV(GLenum stage, GLenum portion, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV(GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV(GLenum variable, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC)(GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC)(GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC)(GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLCOMBINERPARAMETERINVPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLCOMBINERINPUTNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void(APIENTRYP PFNGLCOMBINEROUTPUTNVPROC)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void(APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void(APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)(GLenum variable, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)(GLenum variable, GLenum pname, GLint *params); -#endif - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#endif - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#endif - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLRESIZEBUFFERSMESAPROC)(void); -#endif - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA(GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvMESA(const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fMESA(GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvMESA(const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iMESA(GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivMESA(const GLint *v); -GLAPI void APIENTRY glWindowPos2sMESA(GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svMESA(const GLshort *v); -GLAPI void APIENTRY glWindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvMESA(const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvMESA(const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iMESA(GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivMESA(const GLint *v); -GLAPI void APIENTRY glWindowPos3sMESA(GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svMESA(const GLshort *v); -GLAPI void APIENTRY glWindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glWindowPos4dvMESA(const GLdouble *v); -GLAPI void APIENTRY glWindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glWindowPos4fvMESA(const GLfloat *v); -GLAPI void APIENTRY glWindowPos4iMESA(GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glWindowPos4ivMESA(const GLint *v); -GLAPI void APIENTRY glWindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glWindowPos4svMESA(const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLWINDOWPOS2DMESAPROC)(GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLWINDOWPOS2DVMESAPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2FMESAPROC)(GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLWINDOWPOS2FVMESAPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2IMESAPROC)(GLint x, GLint y); -typedef void(APIENTRYP PFNGLWINDOWPOS2IVMESAPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLWINDOWPOS2SMESAPROC)(GLshort x, GLshort y); -typedef void(APIENTRYP PFNGLWINDOWPOS2SVMESAPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3DMESAPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLWINDOWPOS3DVMESAPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3FMESAPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLWINDOWPOS3FVMESAPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3IMESAPROC)(GLint x, GLint y, GLint z); -typedef void(APIENTRYP PFNGLWINDOWPOS3IVMESAPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLWINDOWPOS3SMESAPROC)(GLshort x, GLshort y, GLshort z); -typedef void(APIENTRYP PFNGLWINDOWPOS3SVMESAPROC)(const GLshort *v); -typedef void(APIENTRYP PFNGLWINDOWPOS4DMESAPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLWINDOWPOS4DVMESAPROC)(const GLdouble *v); -typedef void(APIENTRYP PFNGLWINDOWPOS4FMESAPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLWINDOWPOS4FVMESAPROC)(const GLfloat *v); -typedef void(APIENTRYP PFNGLWINDOWPOS4IMESAPROC)(GLint x, GLint y, GLint z, GLint w); -typedef void(APIENTRYP PFNGLWINDOWPOS4IVMESAPROC)(const GLint *v); -typedef void(APIENTRYP PFNGLWINDOWPOS4SMESAPROC)(GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(APIENTRYP PFNGLWINDOWPOS4SVMESAPROC)(const GLshort *v); -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM(const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -GLAPI void APIENTRY glMultiModeDrawElementsIBM(const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid *const *indices, GLsizei primcount, GLint modestride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC)(const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void(APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC)(const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid *const *indices, GLsizei primcount, GLint modestride); -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -GLAPI void APIENTRY glSecondaryColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -GLAPI void APIENTRY glEdgeFlagPointerListIBM(GLint stride, const GLboolean **pointer, GLint ptrstride); -GLAPI void APIENTRY glFogCoordPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -GLAPI void APIENTRY glIndexPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -GLAPI void APIENTRY glNormalPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -GLAPI void APIENTRY glTexCoordPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -GLAPI void APIENTRY glVertexPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -typedef void(APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -typedef void(APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC)(GLint stride, const GLboolean **pointer, GLint ptrstride); -typedef void(APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -typedef void(APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -typedef void(APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -typedef void(APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -typedef void(APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride); -#endif - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#endif - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX(GLuint mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTBUFFERMASK3DFXPROC)(GLuint mask); -#endif - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT(GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternEXT(GLenum pattern); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSAMPLEMASKEXTPROC)(GLclampf value, GLboolean invert); -typedef void(APIENTRYP PFNGLSAMPLEPATTERNEXTPROC)(GLenum pattern); -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#endif - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX(GLenum pname, const GLvoid *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLIGLOOINTERFACESGIXPROC)(GLenum pname, const GLvoid *params); -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#endif - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV(GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glGenFencesNV(GLsizei n, GLuint *fences); -GLAPI GLboolean APIENTRY glIsFenceNV(GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceNV(GLuint fence); -GLAPI void APIENTRY glGetFenceivNV(GLuint fence, GLenum pname, GLint *params); -GLAPI void APIENTRY glFinishFenceNV(GLuint fence); -GLAPI void APIENTRY glSetFenceNV(GLuint fence, GLenum condition); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDELETEFENCESNVPROC)(GLsizei n, const GLuint *fences); -typedef void(APIENTRYP PFNGLGENFENCESNVPROC)(GLsizei n, GLuint *fences); -typedef GLboolean(APIENTRYP PFNGLISFENCENVPROC)(GLuint fence); -typedef GLboolean(APIENTRYP PFNGLTESTFENCENVPROC)(GLuint fence); -typedef void(APIENTRYP PFNGLGETFENCEIVNVPROC)(GLuint fence, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLFINISHFENCENVPROC)(GLuint fence); -typedef void(APIENTRYP PFNGLSETFENCENVPROC)(GLuint fence, GLenum condition); -#endif - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -GLAPI void APIENTRY glMapParameterivNV(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMapParameterfvNV(GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -GLAPI void APIENTRY glGetMapParameterivNV(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapParameterfvNV(GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMapAttribParameterivNV(GLenum target, GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapAttribParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glEvalMapsNV(GLenum target, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -typedef void(APIENTRYP PFNGLMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -typedef void(APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC)(GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLEVALMAPSNVPROC)(GLenum target, GLenum mode); -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV(GLenum stage, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV(GLenum stage, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#endif - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#endif - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV(GLsizei n, const GLuint *programs, GLboolean *residences); -GLAPI void APIENTRY glBindProgramNV(GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteProgramsNV(GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params); -GLAPI void APIENTRY glGenProgramsNV(GLsizei n, GLuint *programs); -GLAPI void APIENTRY glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetProgramivNV(GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program); -GLAPI void APIENTRY glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivNV(GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer); -GLAPI GLboolean APIENTRY glIsProgramNV(GLuint id); -GLAPI void APIENTRY glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program); -GLAPI void APIENTRY glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble *v); -GLAPI void APIENTRY glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat *v); -GLAPI void APIENTRY glProgramParameters4dvNV(GLenum target, GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glProgramParameters4fvNV(GLenum target, GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glRequestResidentProgramsNV(GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform); -GLAPI void APIENTRY glVertexAttribPointerNV(GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glVertexAttrib1dNV(GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvNV(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fNV(GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvNV(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sNV(GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svNV(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvNV(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvNV(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svNV(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvNV(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvNV(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svNV(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvNV(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvNV(GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svNV(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4ubvNV(GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribs1dvNV(GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs1fvNV(GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs1svNV(GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs2dvNV(GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs2fvNV(GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs2svNV(GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs3dvNV(GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs3fvNV(GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs3svNV(GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4dvNV(GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs4fvNV(GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs4svNV(GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4ubvNV(GLuint index, GLsizei count, const GLubyte *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean(APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void(APIENTRYP PFNGLBINDPROGRAMNVPROC)(GLenum target, GLuint id); -typedef void(APIENTRYP PFNGLDELETEPROGRAMSNVPROC)(GLsizei n, const GLuint *programs); -typedef void(APIENTRYP PFNGLEXECUTEPROGRAMNVPROC)(GLenum target, GLuint id, const GLfloat *params); -typedef void(APIENTRYP PFNGLGENPROGRAMSNVPROC)(GLsizei n, GLuint *programs); -typedef void(APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC)(GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void(APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETPROGRAMIVNVPROC)(GLuint id, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC)(GLuint id, GLenum pname, GLubyte *program); -typedef void(APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC)(GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC)(GLuint index, GLenum pname, GLdouble *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC)(GLuint index, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC)(GLuint index, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC)(GLuint index, GLenum pname, GLvoid **pointer); -typedef GLboolean(APIENTRYP PFNGLISPROGRAMNVPROC)(GLuint id); -typedef void(APIENTRYP PFNGLLOADPROGRAMNVPROC)(GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void(APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC)(GLenum target, GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC)(GLenum target, GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLdouble *v); -typedef void(APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat *v); -typedef void(APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC)(GLsizei n, const GLuint *programs); -typedef void(APIENTRYP PFNGLTRACKMATRIXNVPROC)(GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void(APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC)(GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1DNVPROC)(GLuint index, GLdouble x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1FNVPROC)(GLuint index, GLfloat x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1SNVPROC)(GLuint index, GLshort x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2DNVPROC)(GLuint index, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2FNVPROC)(GLuint index, GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2SNVPROC)(GLuint index, GLshort x, GLshort y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC)(GLuint index, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC)(GLuint index, const GLubyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC)(GLuint index, GLsizei count, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC)(GLuint index, GLsizei count, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC)(GLuint index, GLsizei count, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC)(GLuint index, GLsizei count, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC)(GLuint index, GLsizei count, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC)(GLuint index, GLsizei count, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC)(GLuint index, GLsizei count, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC)(GLuint index, GLsizei count, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC)(GLuint index, GLsizei count, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC)(GLuint index, GLsizei count, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC)(GLuint index, GLsizei count, const GLfloat *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC)(GLuint index, GLsizei count, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC)(GLuint index, GLsizei count, const GLubyte *v); -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#endif - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#endif - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#endif - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI(GLenum pname, const GLint *param); -GLAPI void APIENTRY glTexBumpParameterfvATI(GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glGetTexBumpParameterivATI(GLenum pname, GLint *param); -GLAPI void APIENTRY glGetTexBumpParameterfvATI(GLenum pname, GLfloat *param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC)(GLenum pname, const GLint *param); -typedef void(APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC)(GLenum pname, const GLfloat *param); -typedef void(APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC)(GLenum pname, GLint *param); -typedef void(APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC)(GLenum pname, GLfloat *param); -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI(GLuint range); -GLAPI void APIENTRY glBindFragmentShaderATI(GLuint id); -GLAPI void APIENTRY glDeleteFragmentShaderATI(GLuint id); -GLAPI void APIENTRY glBeginFragmentShaderATI(void); -GLAPI void APIENTRY glEndFragmentShaderATI(void); -GLAPI void APIENTRY glPassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle); -GLAPI void APIENTRY glSampleMapATI(GLuint dst, GLuint interp, GLenum swizzle); -GLAPI void APIENTRY glColorFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glColorFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glColorFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glAlphaFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glAlphaFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glAlphaFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glSetFragmentShaderConstantATI(GLuint dst, const GLfloat *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint(APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range); -typedef void(APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id); -typedef void(APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id); -typedef void(APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC)(void); -typedef void(APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC)(void); -typedef void(APIENTRYP PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle); -typedef void(APIENTRYP PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle); -typedef void(APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void(APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void(APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void(APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void(APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void(APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void(APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat *value); -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI(GLenum pname, GLint param); -GLAPI void APIENTRY glPNTrianglesfATI(GLenum pname, GLfloat param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI(GLsizei size, const GLvoid *pointer, GLenum usage); -GLAPI GLboolean APIENTRY glIsObjectBufferATI(GLuint buffer); -GLAPI void APIENTRY glUpdateObjectBufferATI(GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -GLAPI void APIENTRY glGetObjectBufferfvATI(GLuint buffer, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectBufferivATI(GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glFreeObjectBufferATI(GLuint buffer); -GLAPI void APIENTRY glArrayObjectATI(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetArrayObjectfvATI(GLenum array, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetArrayObjectivATI(GLenum array, GLenum pname, GLint *params); -GLAPI void APIENTRY glVariantArrayObjectATI(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI(GLuint id, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVariantArrayObjectivATI(GLuint id, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint(APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const GLvoid *pointer, GLenum usage); -typedef GLboolean(APIENTRYP PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer); -typedef void(APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -typedef void(APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer); -typedef void(APIENTRYP PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void(APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void(APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname, GLint *params); -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT(void); -GLAPI void APIENTRY glEndVertexShaderEXT(void); -GLAPI void APIENTRY glBindVertexShaderEXT(GLuint id); -GLAPI GLuint APIENTRY glGenVertexShadersEXT(GLuint range); -GLAPI void APIENTRY glDeleteVertexShaderEXT(GLuint id); -GLAPI void APIENTRY glShaderOp1EXT(GLenum op, GLuint res, GLuint arg1); -GLAPI void APIENTRY glShaderOp2EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2); -GLAPI void APIENTRY glShaderOp3EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -GLAPI void APIENTRY glSwizzleEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glWriteMaskEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glInsertComponentEXT(GLuint res, GLuint src, GLuint num); -GLAPI void APIENTRY glExtractComponentEXT(GLuint res, GLuint src, GLuint num); -GLAPI GLuint APIENTRY glGenSymbolsEXT(GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -GLAPI void APIENTRY glSetInvariantEXT(GLuint id, GLenum type, const GLvoid *addr); -GLAPI void APIENTRY glSetLocalConstantEXT(GLuint id, GLenum type, const GLvoid *addr); -GLAPI void APIENTRY glVariantbvEXT(GLuint id, const GLbyte *addr); -GLAPI void APIENTRY glVariantsvEXT(GLuint id, const GLshort *addr); -GLAPI void APIENTRY glVariantivEXT(GLuint id, const GLint *addr); -GLAPI void APIENTRY glVariantfvEXT(GLuint id, const GLfloat *addr); -GLAPI void APIENTRY glVariantdvEXT(GLuint id, const GLdouble *addr); -GLAPI void APIENTRY glVariantubvEXT(GLuint id, const GLubyte *addr); -GLAPI void APIENTRY glVariantusvEXT(GLuint id, const GLushort *addr); -GLAPI void APIENTRY glVariantuivEXT(GLuint id, const GLuint *addr); -GLAPI void APIENTRY glVariantPointerEXT(GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -GLAPI void APIENTRY glEnableVariantClientStateEXT(GLuint id); -GLAPI void APIENTRY glDisableVariantClientStateEXT(GLuint id); -GLAPI GLuint APIENTRY glBindLightParameterEXT(GLenum light, GLenum value); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT(GLenum face, GLenum value); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT(GLenum unit, GLenum coord, GLenum value); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT(GLenum unit, GLenum value); -GLAPI GLuint APIENTRY glBindParameterEXT(GLenum value); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT(GLuint id, GLenum cap); -GLAPI void APIENTRY glGetVariantBooleanvEXT(GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetVariantIntegervEXT(GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetVariantFloatvEXT(GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetVariantPointervEXT(GLuint id, GLenum value, GLvoid **data); -GLAPI void APIENTRY glGetInvariantBooleanvEXT(GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetInvariantIntegervEXT(GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetInvariantFloatvEXT(GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT(GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT(GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT(GLuint id, GLenum value, GLfloat *data); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC)(void); -typedef void(APIENTRYP PFNGLENDVERTEXSHADEREXTPROC)(void); -typedef void(APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id); -typedef GLuint(APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range); -typedef void(APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id); -typedef void(APIENTRYP PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1); -typedef void(APIENTRYP PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void(APIENTRYP PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void(APIENTRYP PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void(APIENTRYP PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void(APIENTRYP PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num); -typedef void(APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num); -typedef GLuint(APIENTRYP PFNGLGENSYMBOLSEXTPROC)(GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void(APIENTRYP PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, const GLvoid *addr); -typedef void(APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, const GLvoid *addr); -typedef void(APIENTRYP PFNGLVARIANTBVEXTPROC)(GLuint id, const GLbyte *addr); -typedef void(APIENTRYP PFNGLVARIANTSVEXTPROC)(GLuint id, const GLshort *addr); -typedef void(APIENTRYP PFNGLVARIANTIVEXTPROC)(GLuint id, const GLint *addr); -typedef void(APIENTRYP PFNGLVARIANTFVEXTPROC)(GLuint id, const GLfloat *addr); -typedef void(APIENTRYP PFNGLVARIANTDVEXTPROC)(GLuint id, const GLdouble *addr); -typedef void(APIENTRYP PFNGLVARIANTUBVEXTPROC)(GLuint id, const GLubyte *addr); -typedef void(APIENTRYP PFNGLVARIANTUSVEXTPROC)(GLuint id, const GLushort *addr); -typedef void(APIENTRYP PFNGLVARIANTUIVEXTPROC)(GLuint id, const GLuint *addr); -typedef void(APIENTRYP PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -typedef void(APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id); -typedef void(APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id); -typedef GLuint(APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value); -typedef GLuint(APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value); -typedef GLuint(APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord, GLenum value); -typedef GLuint(APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value); -typedef GLuint(APIENTRYP PFNGLBINDPARAMETEREXTPROC)(GLenum value); -typedef GLboolean(APIENTRYP PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap); -typedef void(APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean *data); -typedef void(APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data); -typedef void(APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data); -typedef void(APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, GLvoid **data); -typedef void(APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean *data); -typedef void(APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data); -typedef void(APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data); -typedef void(APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean *data); -typedef void(APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data); -typedef void(APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data); -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI(GLenum stream, GLshort x); -GLAPI void APIENTRY glVertexStream1svATI(GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream1iATI(GLenum stream, GLint x); -GLAPI void APIENTRY glVertexStream1ivATI(GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream1fATI(GLenum stream, GLfloat x); -GLAPI void APIENTRY glVertexStream1fvATI(GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream1dATI(GLenum stream, GLdouble x); -GLAPI void APIENTRY glVertexStream1dvATI(GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream2sATI(GLenum stream, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexStream2svATI(GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream2iATI(GLenum stream, GLint x, GLint y); -GLAPI void APIENTRY glVertexStream2ivATI(GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream2fATI(GLenum stream, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexStream2fvATI(GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream2dATI(GLenum stream, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexStream2dvATI(GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream3sATI(GLenum stream, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexStream3svATI(GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream3iATI(GLenum stream, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexStream3ivATI(GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream3fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexStream3fvATI(GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream3dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexStream3dvATI(GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream4sATI(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexStream4svATI(GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream4iATI(GLenum stream, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexStream4ivATI(GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream4fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexStream4fvATI(GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream4dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexStream4dvATI(GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glNormalStream3bATI(GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void APIENTRY glNormalStream3bvATI(GLenum stream, const GLbyte *coords); -GLAPI void APIENTRY glNormalStream3sATI(GLenum stream, GLshort nx, GLshort ny, GLshort nz); -GLAPI void APIENTRY glNormalStream3svATI(GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glNormalStream3iATI(GLenum stream, GLint nx, GLint ny, GLint nz); -GLAPI void APIENTRY glNormalStream3ivATI(GLenum stream, const GLint *coords); -GLAPI void APIENTRY glNormalStream3fATI(GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void APIENTRY glNormalStream3fvATI(GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glNormalStream3dATI(GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void APIENTRY glNormalStream3dvATI(GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glClientActiveVertexStreamATI(GLenum stream); -GLAPI void APIENTRY glVertexBlendEnviATI(GLenum pname, GLint param); -GLAPI void APIENTRY glVertexBlendEnvfATI(GLenum pname, GLfloat param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXSTREAM1SATIPROC)(GLenum stream, GLshort x); -typedef void(APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC)(GLenum stream, const GLshort *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM1IATIPROC)(GLenum stream, GLint x); -typedef void(APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC)(GLenum stream, const GLint *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM1FATIPROC)(GLenum stream, GLfloat x); -typedef void(APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC)(GLenum stream, const GLfloat *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM1DATIPROC)(GLenum stream, GLdouble x); -typedef void(APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC)(GLenum stream, const GLdouble *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2SATIPROC)(GLenum stream, GLshort x, GLshort y); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC)(GLenum stream, const GLshort *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2IATIPROC)(GLenum stream, GLint x, GLint y); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC)(GLenum stream, const GLint *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2FATIPROC)(GLenum stream, GLfloat x, GLfloat y); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC)(GLenum stream, const GLfloat *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2DATIPROC)(GLenum stream, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC)(GLenum stream, const GLdouble *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC)(GLenum stream, const GLint *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC)(GLenum stream, const GLshort *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4IATIPROC)(GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC)(GLenum stream, const GLint *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC)(GLenum stream, const GLfloat *coords); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC)(GLenum stream, const GLdouble *coords); -typedef void(APIENTRYP PFNGLNORMALSTREAM3BATIPROC)(GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void(APIENTRYP PFNGLNORMALSTREAM3BVATIPROC)(GLenum stream, const GLbyte *coords); -typedef void(APIENTRYP PFNGLNORMALSTREAM3SATIPROC)(GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void(APIENTRYP PFNGLNORMALSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords); -typedef void(APIENTRYP PFNGLNORMALSTREAM3IATIPROC)(GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void(APIENTRYP PFNGLNORMALSTREAM3IVATIPROC)(GLenum stream, const GLint *coords); -typedef void(APIENTRYP PFNGLNORMALSTREAM3FATIPROC)(GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void(APIENTRYP PFNGLNORMALSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords); -typedef void(APIENTRYP PFNGLNORMALSTREAM3DATIPROC)(GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void(APIENTRYP PFNGLNORMALSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords); -typedef void(APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)(GLenum stream); -typedef void(APIENTRYP PFNGLVERTEXBLENDENVIATIPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLVERTEXBLENDENVFATIPROC)(GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI(GLenum type, const GLvoid *pointer); -GLAPI void APIENTRY glDrawElementArrayATI(GLenum mode, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayATI(GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLELEMENTPOINTERATIPROC)(GLenum type, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count); -typedef void(APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN(GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC)(GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#endif - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV(GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV(GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV(GLuint id); -GLAPI void APIENTRY glBeginOcclusionQueryNV(GLuint id); -GLAPI void APIENTRY glEndOcclusionQueryNV(void); -GLAPI void APIENTRY glGetOcclusionQueryivNV(GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetOcclusionQueryuivNV(GLuint id, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC)(GLsizei n, GLuint *ids); -typedef void(APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC)(GLsizei n, const GLuint *ids); -typedef GLboolean(APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC)(GLuint id); -typedef void(APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC)(GLuint id); -typedef void(APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC)(void); -typedef void(APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC)(GLuint id, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC)(GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV(GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameterivNV(GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPOINTPARAMETERINVPROC)(GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLPOINTPARAMETERIVNVPROC)(GLenum pname, const GLint *params); -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#endif - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT(GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC)(GLenum face); -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#endif - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE(GLenum type, const GLvoid *pointer); -GLAPI void APIENTRY glDrawElementArrayAPPLE(GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC)(GLenum type, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, GLint first, GLsizei count); -typedef void(APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void(APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void(APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE(GLsizei n, GLuint *fences); -GLAPI void APIENTRY glDeleteFencesAPPLE(GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glSetFenceAPPLE(GLuint fence); -GLAPI GLboolean APIENTRY glIsFenceAPPLE(GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceAPPLE(GLuint fence); -GLAPI void APIENTRY glFinishFenceAPPLE(GLuint fence); -GLAPI GLboolean APIENTRY glTestObjectAPPLE(GLenum object, GLuint name); -GLAPI void APIENTRY glFinishObjectAPPLE(GLenum object, GLint name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGENFENCESAPPLEPROC)(GLsizei n, GLuint *fences); -typedef void(APIENTRYP PFNGLDELETEFENCESAPPLEPROC)(GLsizei n, const GLuint *fences); -typedef void(APIENTRYP PFNGLSETFENCEAPPLEPROC)(GLuint fence); -typedef GLboolean(APIENTRYP PFNGLISFENCEAPPLEPROC)(GLuint fence); -typedef GLboolean(APIENTRYP PFNGLTESTFENCEAPPLEPROC)(GLuint fence); -typedef void(APIENTRYP PFNGLFINISHFENCEAPPLEPROC)(GLuint fence); -typedef GLboolean(APIENTRYP PFNGLTESTOBJECTAPPLEPROC)(GLenum object, GLuint name); -typedef void(APIENTRYP PFNGLFINISHOBJECTAPPLEPROC)(GLenum object, GLint name); -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE(GLuint array); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE(GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArraysAPPLE(GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE(GLuint array); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC)(GLuint array); -typedef void(APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC)(GLsizei n, const GLuint *arrays); -typedef void(APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC)(GLsizei n, GLuint *arrays); -typedef GLboolean(APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC)(GLuint array); -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE(GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE(GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE(GLenum pname, GLint param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, GLvoid *pointer); -typedef void(APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, GLvoid *pointer); -typedef void(APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)(GLenum pname, GLint param); -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#endif - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI(GLsizei n, const GLenum *bufs); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWBUFFERSATIPROC)(GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_ATI_pixel_format_float 1 -/* This is really a WGL extension, but defines some associated GL enums. - * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. - */ -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#endif - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#endif - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#endif - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -GLAPI void APIENTRY glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void(APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void(APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void(APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV(GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertex2hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glVertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertex3hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glVertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertex4hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glNormal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -GLAPI void APIENTRY glNormal3hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glColor3hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glColor4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -GLAPI void APIENTRY glColor4hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord1hNV(GLhalfNV s); -GLAPI void APIENTRY glTexCoord1hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord2hNV(GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glTexCoord2hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glTexCoord3hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glTexCoord4hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord1hNV(GLenum target, GLhalfNV s); -GLAPI void APIENTRY glMultiTexCoord1hvNV(GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glMultiTexCoord2hvNV(GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glMultiTexCoord3hvNV(GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glMultiTexCoord4hvNV(GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glFogCoordhNV(GLhalfNV fog); -GLAPI void APIENTRY glFogCoordhvNV(const GLhalfNV *fog); -GLAPI void APIENTRY glSecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glSecondaryColor3hvNV(const GLhalfNV *v); -GLAPI void APIENTRY glVertexWeighthNV(GLhalfNV weight); -GLAPI void APIENTRY glVertexWeighthvNV(const GLhalfNV *weight); -GLAPI void APIENTRY glVertexAttrib1hNV(GLuint index, GLhalfNV x); -GLAPI void APIENTRY glVertexAttrib1hvNV(GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertexAttrib2hvNV(GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertexAttrib3hvNV(GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertexAttrib4hvNV(GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs1hvNV(GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs2hvNV(GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs3hvNV(GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs4hvNV(GLuint index, GLsizei n, const GLhalfNV *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEX2HNVPROC)(GLhalfNV x, GLhalfNV y); -typedef void(APIENTRYP PFNGLVERTEX2HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEX3HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void(APIENTRYP PFNGLVERTEX3HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEX4HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void(APIENTRYP PFNGLVERTEX4HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLNORMAL3HNVPROC)(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void(APIENTRYP PFNGLNORMAL3HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void(APIENTRYP PFNGLCOLOR3HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLCOLOR4HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void(APIENTRYP PFNGLCOLOR4HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLTEXCOORD1HNVPROC)(GLhalfNV s); -typedef void(APIENTRYP PFNGLTEXCOORD1HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLTEXCOORD2HNVPROC)(GLhalfNV s, GLhalfNV t); -typedef void(APIENTRYP PFNGLTEXCOORD2HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLTEXCOORD3HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void(APIENTRYP PFNGLTEXCOORD3HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLTEXCOORD4HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void(APIENTRYP PFNGLTEXCOORD4HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1HNVPROC)(GLenum target, GLhalfNV s); -typedef void(APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC)(GLenum target, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t); -typedef void(APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC)(GLenum target, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void(APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC)(GLenum target, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void(APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC)(GLenum target, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLFOGCOORDHNVPROC)(GLhalfNV fog); -typedef void(APIENTRYP PFNGLFOGCOORDHVNVPROC)(const GLhalfNV *fog); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void(APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC)(const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXWEIGHTHNVPROC)(GLhalfNV weight); -typedef void(APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC)(const GLhalfNV *weight); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1HNVPROC)(GLuint index, GLhalfNV x); -typedef void(APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC)(GLuint index, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y); -typedef void(APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC)(GLuint index, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void(APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC)(GLuint index, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void(APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC)(GLuint index, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV *v); -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV(GLenum target, GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glFlushPixelDataRangeNV(GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPIXELDATARANGENVPROC)(GLenum target, GLsizei length, GLvoid *pointer); -typedef void(APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC)(GLenum target); -#endif - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV(void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV(GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPRIMITIVERESTARTNVPROC)(void); -typedef void(APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC)(GLuint index); -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#endif - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid *APIENTRY glMapObjectBufferATI(GLuint buffer); -GLAPI void APIENTRY glUnmapObjectBufferATI(GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer); -typedef void(APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer); -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void(APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI(GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI(GLuint index, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT(GLclampd zmin, GLclampd zmax); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDEPTHBOUNDSEXTPROC)(GLclampd zmin, GLclampd zmax); -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#endif - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#endif - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbufferEXT(GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbufferEXT(GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebufferEXT(GLuint framebuffer); -GLAPI void APIENTRY glBindFramebufferEXT(GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT(GLenum target); -GLAPI void APIENTRY glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmapEXT(GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean(APIENTRYP PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer); -typedef void(APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer); -typedef void(APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers); -typedef void(APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers); -typedef void(APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params); -typedef GLboolean(APIENTRYP PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer); -typedef void(APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer); -typedef void(APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers); -typedef void(APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers); -typedef GLenum(APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void(APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void(APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGENERATEMIPMAPEXTPROC)(GLenum target); -#endif - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStringMarkerGREMEDY(GLsizei len, const GLvoid *string); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC)(GLsizei len, const GLvoid *string); -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilClearTagEXT(GLsizei stencilTagBits, GLuint stencilClearTag); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC)(GLsizei stencilTagBits, GLuint stencilClearTag); -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 -#endif - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC)(GLuint id, GLenum pname, GLint64EXT *params); -typedef void(APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC)(GLuint id, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferParameteriAPPLE(GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE(GLenum target, GLintptr offset, GLsizeiptr size); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC)(GLenum target, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)(GLenum target, GLintptr offset, GLsizeiptr size); -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramLocalParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramLocalParameterI4ivNV(GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramLocalParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramLocalParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramLocalParameterI4uivNV(GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramLocalParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramEnvParameterI4ivNV(GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramEnvParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramEnvParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramEnvParameterI4uivNV(GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIivNV(GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIuivNV(GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIivNV(GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIuivNV(GLenum target, GLuint index, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint *params); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint *params); -typedef void(APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint *params); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint *params); -typedef void(APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC)(GLenum target, GLuint index, GLint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC)(GLenum target, GLuint index, GLuint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC)(GLenum target, GLuint index, GLint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC)(GLenum target, GLuint index, GLuint *params); -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramVertexLimitNV(GLenum target, GLint limit); -GLAPI void APIENTRY glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC)(GLenum target, GLint limit); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void(APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriEXT(GLuint program, GLenum pname, GLint value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC)(GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribI1iEXT(GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2iEXT(GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1uiEXT(GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1ivEXT(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2ivEXT(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3ivEXT(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4ivEXT(GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uivEXT(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uivEXT(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uivEXT(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uivEXT(GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bvEXT(GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4svEXT(GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubvEXT(GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usvEXT(GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC)(GLuint index, GLint x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC)(GLuint index, GLint x, GLint y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC)(GLuint index, GLint x, GLint y, GLint z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC)(GLuint index, GLuint x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC)(GLuint index, GLuint x, GLuint y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC)(GLuint index, const GLint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC)(GLuint index, const GLuint *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC)(GLuint index, const GLbyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC)(GLuint index, const GLshort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC)(GLuint index, const GLubyte *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC)(GLuint index, const GLushort *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC)(GLuint index, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC)(GLuint index, GLenum pname, GLuint *params); -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformuivEXT(GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocationEXT(GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1uiEXT(GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2uiEXT(GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uivEXT(GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uivEXT(GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uivEXT(GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uivEXT(GLint location, GLsizei count, const GLuint *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETUNIFORMUIVEXTPROC)(GLuint program, GLint location, GLuint *params); -typedef void(APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC)(GLuint program, GLuint color, const GLchar *name); -typedef GLint(APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC)(GLuint program, const GLchar *name); -typedef void(APIENTRYP PFNGLUNIFORM1UIEXTPROC)(GLint location, GLuint v0); -typedef void(APIENTRYP PFNGLUNIFORM2UIEXTPROC)(GLint location, GLuint v0, GLuint v1); -typedef void(APIENTRYP PFNGLUNIFORM3UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void(APIENTRYP PFNGLUNIFORM4UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void(APIENTRYP PFNGLUNIFORM1UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLUNIFORM2UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLUNIFORM3UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLUNIFORM4UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value); -#endif - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC)(GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void(APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 -#endif - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferEXT(GLenum target, GLenum internalformat, GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXBUFFEREXTPROC)(GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangedNV(GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glClearDepthdNV(GLdouble depth); -GLAPI void APIENTRY glDepthBoundsdNV(GLdouble zmin, GLdouble zmax); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDEPTHRANGEDNVPROC)(GLdouble zNear, GLdouble zFar); -typedef void(APIENTRYP PFNGLCLEARDEPTHDNVPROC)(GLdouble depth); -typedef void(APIENTRYP PFNGLDEPTHBOUNDSDNVPROC)(GLdouble zmin, GLdouble zmax); -#endif - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -#endif - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramBufferParametersfvNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramBufferParametersIivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramBufferParametersIuivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -typedef void(APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void(APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaskIndexedEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleanIndexedvEXT(GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegerIndexedvEXT(GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnableIndexedEXT(GLenum target, GLuint index); -GLAPI void APIENTRY glDisableIndexedEXT(GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT(GLenum target, GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void(APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC)(GLenum target, GLuint index, GLboolean *data); -typedef void(APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC)(GLenum target, GLuint index, GLint *data); -typedef void(APIENTRYP PFNGLENABLEINDEXEDEXTPROC)(GLenum target, GLuint index); -typedef void(APIENTRYP PFNGLDISABLEINDEXEDEXTPROC)(GLenum target, GLuint index); -typedef GLboolean(APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC)(GLenum target, GLuint index); -#endif - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackNV(GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackNV(void); -GLAPI void APIENTRY glTransformFeedbackAttribsNV(GLuint count, const GLint *attribs, GLenum bufferMode); -GLAPI void APIENTRY glBindBufferRangeNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseNV(GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV(GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -GLAPI void APIENTRY glActiveVaryingNV(GLuint program, const GLchar *name); -GLAPI GLint APIENTRY glGetVaryingLocationNV(GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetActiveVaryingNV(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetTransformFeedbackVaryingNV(GLuint program, GLuint index, GLint *location); -GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV(GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC)(GLenum primitiveMode); -typedef void(APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC)(void); -typedef void(APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)(GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void(APIENTRYP PFNGLBINDBUFFERRANGENVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void(APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void(APIENTRYP PFNGLBINDBUFFERBASENVPROC)(GLenum target, GLuint index, GLuint buffer); -typedef void(APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)(GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void(APIENTRYP PFNGLACTIVEVARYINGNVPROC)(GLuint program, const GLchar *name); -typedef GLint(APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC)(GLuint program, const GLchar *name); -typedef void(APIENTRYP PFNGLGETACTIVEVARYINGNVPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void(APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)(GLuint program, GLuint index, GLint *location); -typedef void(APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC)(GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformBufferEXT(GLuint program, GLint location, GLuint buffer); -GLAPI GLint APIENTRY glGetUniformBufferSizeEXT(GLuint program, GLint location); -GLAPI GLintptr APIENTRY glGetUniformOffsetEXT(GLuint program, GLint location); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLUNIFORMBUFFEREXTPROC)(GLuint program, GLint location, GLuint buffer); -typedef GLint(APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC)(GLuint program, GLint location); -typedef GLintptr(APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC)(GLuint program, GLint location); -#endif - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexParameterIivEXT(GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuivEXT(GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIivEXT(GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuivEXT(GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearColorIiEXT(GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void APIENTRY glClearColorIuiEXT(GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, const GLuint *params); -typedef void(APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, GLuint *params); -typedef void(APIENTRYP PFNGLCLEARCOLORIIEXTPROC)(GLint red, GLint green, GLint blue, GLint alpha); -typedef void(APIENTRYP PFNGLCLEARCOLORIUIEXTPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameTerminatorGREMEDY(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC)(void); -#endif - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNV(GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRenderNV(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC)(GLuint id, GLenum mode); -typedef void(APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC)(void); -#endif - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPresentFrameKeyedNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -GLAPI void APIENTRY glPresentFrameDualFillNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -GLAPI void APIENTRY glGetVideoivNV(GLuint video_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideouivNV(GLuint video_slot, GLenum pname, GLuint *params); -GLAPI void APIENTRY glGetVideoi64vNV(GLuint video_slot, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVideoui64vNV(GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -typedef void(APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void(APIENTRYP PFNGLGETVIDEOIVNVPROC)(GLuint video_slot, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVIDEOUIVNVPROC)(GLuint video_slot, GLenum pname, GLuint *params); -typedef void(APIENTRYP PFNGLGETVIDEOI64VNVPROC)(GLuint video_slot, GLenum pname, GLint64EXT *params); -typedef void(APIENTRYP PFNGLGETVIDEOUI64VNVPROC)(GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackEXT(GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackEXT(void); -GLAPI void APIENTRY glBindBufferRangeEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseEXT(GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsEXT(GLuint program, GLsizei count, const GLchar **varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)(GLenum primitiveMode); -typedef void(APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC)(void); -typedef void(APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void(APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void(APIENTRYP PFNGLBINDBUFFERBASEEXTPROC)(GLenum target, GLuint index, GLuint buffer); -typedef void(APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)(GLuint program, GLsizei count, const GLchar **varyings, GLenum bufferMode); -typedef void(APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClientAttribDefaultEXT(GLbitfield mask); -GLAPI void APIENTRY glPushClientAttribDefaultEXT(GLbitfield mask); -GLAPI void APIENTRY glMatrixLoadfEXT(GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoaddEXT(GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultfEXT(GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultdEXT(GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixLoadIdentityEXT(GLenum mode); -GLAPI void APIENTRY glMatrixRotatefEXT(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixRotatedEXT(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixScalefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixScaledEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixTranslatefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixTranslatedEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixFrustumEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixOrthoEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixPopEXT(GLenum mode); -GLAPI void APIENTRY glMatrixPushEXT(GLenum mode); -GLAPI void APIENTRY glMatrixLoadTransposefEXT(GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoadTransposedEXT(GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultTransposefEXT(GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultTransposedEXT(GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void APIENTRY glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void APIENTRY glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture); -GLAPI void APIENTRY glEnableClientStateIndexedEXT(GLenum array, GLuint index); -GLAPI void APIENTRY glDisableClientStateIndexedEXT(GLenum array, GLuint index); -GLAPI void APIENTRY glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -GLAPI void APIENTRY glMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void APIENTRY glMultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFloatIndexedvEXT(GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoubleIndexedvEXT(GLenum target, GLuint index, GLdouble *data); -GLAPI void APIENTRY glGetPointerIndexedvEXT(GLenum target, GLuint index, GLvoid **data); -GLAPI void APIENTRY glCompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint lod, GLvoid *img); -GLAPI void APIENTRY glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint lod, GLvoid *img); -GLAPI void APIENTRY glNamedProgramStringEXT(GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); -GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, GLvoid *string); -GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT(GLuint program, GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT(GLuint program, GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT(GLuint program, GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT(GLuint program, GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glProgramUniform1fEXT(GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform2fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform3fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform4fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform1iEXT(GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform2iEXT(GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform3iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform4iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1uiEXT(GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform2uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform3uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform4uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform1uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); -GLAPI GLvoid *APIENTRY glMapNamedBufferEXT(GLuint buffer, GLenum access); -GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT(GLuint buffer); -GLAPI GLvoid *APIENTRY glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedBufferPointervEXT(GLuint buffer, GLenum pname, GLvoid **params); -GLAPI void APIENTRY glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); -GLAPI void APIENTRY glTextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glMultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint *params); -GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target); -GLAPI void APIENTRY glNamedFramebufferTexture1DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture3DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateTextureMipmapEXT(GLuint texture, GLenum target); -GLAPI void APIENTRY glGenerateMultiTexMipmapEXT(GLenum texunit, GLenum target); -GLAPI void APIENTRY glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glFramebufferReadBufferEXT(GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glGetFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -GLAPI void APIENTRY glTextureRenderbufferEXT(GLuint texture, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glMultiTexRenderbufferEXT(GLenum texunit, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glProgramUniform1dEXT(GLuint program, GLint location, GLdouble x); -GLAPI void APIENTRY glProgramUniform2dEXT(GLuint program, GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glProgramUniform3dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glProgramUniform4dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramUniform1dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask); -typedef void(APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask); -typedef void(APIENTRYP PFNGLMATRIXLOADFEXTPROC)(GLenum mode, const GLfloat *m); -typedef void(APIENTRYP PFNGLMATRIXLOADDEXTPROC)(GLenum mode, const GLdouble *m); -typedef void(APIENTRYP PFNGLMATRIXMULTFEXTPROC)(GLenum mode, const GLfloat *m); -typedef void(APIENTRYP PFNGLMATRIXMULTDEXTPROC)(GLenum mode, const GLdouble *m); -typedef void(APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum mode); -typedef void(APIENTRYP PFNGLMATRIXROTATEFEXTPROC)(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLMATRIXROTATEDEXTPROC)(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLMATRIXSCALEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLMATRIXSCALEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void(APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void(APIENTRYP PFNGLMATRIXORTHOEXTPROC)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void(APIENTRYP PFNGLMATRIXPOPEXTPROC)(GLenum mode); -typedef void(APIENTRYP PFNGLMATRIXPUSHEXTPROC)(GLenum mode); -typedef void(APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m); -typedef void(APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m); -typedef void(APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m); -typedef void(APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m); -typedef void(APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void(APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void(APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void(APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void(APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void(APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void(APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void(APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void(APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC)(GLenum texunit, GLenum target, GLuint texture); -typedef void(APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index); -typedef void(APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index); -typedef void(APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC)(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLMULTITEXENVFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLMULTITEXENVIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLMULTITEXGENDEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void(APIENTRYP PFNGLMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -typedef void(APIENTRYP PFNGLMULTITEXGENFEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void(APIENTRYP PFNGLMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLMULTITEXGENIEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void(APIENTRYP PFNGLMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -typedef void(APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC)(GLenum target, GLuint index, GLfloat *data); -typedef void(APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC)(GLenum target, GLuint index, GLdouble *data); -typedef void(APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC)(GLenum target, GLuint index, GLvoid **data); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint lod, GLvoid *img); -typedef void(APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void(APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint lod, GLvoid *img); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLdouble *params); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLfloat *params); -typedef void(APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble *params); -typedef void(APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat *params); -typedef void(APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC)(GLuint program, GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum pname, GLvoid *string); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLint *params); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLuint *params); -typedef void(APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void(APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLint *params); -typedef void(APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint *params); -typedef void(APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLuint *params); -typedef void(APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLuint *params); -typedef void(APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -typedef void(APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLuint *params); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC)(GLuint program, GLint location, GLfloat v0); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC)(GLuint program, GLint location, GLint v0); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC)(GLuint program, GLint location, GLuint v0); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void(APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef GLvoid *(APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC)(GLuint buffer, GLenum access); -typedef GLboolean(APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC)(GLuint buffer); -typedef GLvoid *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void(APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void(APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void(APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)(GLuint buffer, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)(GLuint buffer, GLenum pname, GLvoid **params); -typedef void(APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef void(APIENTRYP PFNGLTEXTUREBUFFEREXTPROC)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void(APIENTRYP PFNGLMULTITEXBUFFEREXTPROC)(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void(APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)(GLuint renderbuffer, GLenum pname, GLint *params); -typedef GLenum(APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)(GLuint framebuffer, GLenum target); -typedef void(APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void(APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void(APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC)(GLuint texture, GLenum target); -typedef void(APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC)(GLenum texunit, GLenum target); -typedef void(APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)(GLuint framebuffer, GLenum mode); -typedef void(APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)(GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void(APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC)(GLuint framebuffer, GLenum mode); -typedef void(APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void(APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void(APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void(APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC)(GLuint texture, GLenum target, GLuint renderbuffer); -typedef void(APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC)(GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC)(GLuint program, GLint location, GLdouble x); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -#endif - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetMultisamplefvNV(GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaskIndexedNV(GLuint index, GLbitfield mask); -GLAPI void APIENTRY glTexRenderbufferNV(GLenum target, GLuint renderbuffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC)(GLenum pname, GLuint index, GLfloat *val); -typedef void(APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC)(GLuint index, GLbitfield mask); -typedef void(APIENTRYP PFNGLTEXRENDERBUFFERNVPROC)(GLenum target, GLuint renderbuffer); -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedbackNV(GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacksNV(GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacksNV(GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedbackNV(GLuint id); -GLAPI void APIENTRY glPauseTransformFeedbackNV(void); -GLAPI void APIENTRY glResumeTransformFeedbackNV(void); -GLAPI void APIENTRY glDrawTransformFeedbackNV(GLenum mode, GLuint id); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC)(GLenum target, GLuint id); -typedef void(APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC)(GLsizei n, const GLuint *ids); -typedef void(APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC)(GLsizei n, GLuint *ids); -typedef GLboolean(APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC)(GLuint id); -typedef void(APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC)(void); -typedef void(APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC)(void); -typedef void(APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC)(GLenum mode, GLuint id); -#endif - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 -#endif - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GLAPI void APIENTRY glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data); -GLAPI void APIENTRY glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GLAPI void APIENTRY glBeginPerfMonitorAMD(GLuint monitor); -GLAPI void APIENTRY glEndPerfMonitorAMD(GLuint monitor); -GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC)(GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void(APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC)(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void(APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void(APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void(APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)(GLuint group, GLuint counter, GLenum pname, GLvoid *data); -typedef void(APIENTRYP PFNGLGENPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors); -typedef void(APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors); -typedef void(APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void(APIENTRYP PFNGLBEGINPERFMONITORAMDPROC)(GLuint monitor); -typedef void(APIENTRYP PFNGLENDPERFMONITORAMDPROC)(GLuint monitor); -typedef void(APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 -#endif - -#ifndef GL_AMD_vertex_shader_tesselator -#define GL_AMD_vertex_shader_tesselator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTessellationFactorAMD(GLfloat factor); -GLAPI void APIENTRY glTessellationModeAMD(GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC)(GLfloat factor); -typedef void(APIENTRYP PFNGLTESSELLATIONMODEAMDPROC)(GLenum mode); -#endif - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertexEXT(GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode); -#endif - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 -#endif - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncIndexedAMD(GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI void APIENTRY glBlendEquationIndexedAMD(GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC)(GLuint buf, GLenum src, GLenum dst); -typedef void(APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void(APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC)(GLuint buf, GLenum mode); -typedef void(APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid *pointer); -GLAPI void APIENTRY glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, GLvoid **params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXTURERANGEAPPLEPROC)(GLenum target, GLsizei length, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)(GLenum target, GLenum pname, GLvoid **params); -#endif - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 -#endif - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEnableVertexAttribAPPLE(GLuint index, GLenum pname); -GLAPI void APIENTRY glDisableVertexAttribAPPLE(GLuint index, GLenum pname); -GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE(GLuint index, GLenum pname); -GLAPI void APIENTRY glMapVertexAttrib1dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib1fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void APIENTRY glMapVertexAttrib2dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib2fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname); -typedef void(APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname); -typedef GLboolean(APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)(GLuint index, GLenum pname); -typedef void(APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -typedef void(APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -typedef void(APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -typedef void(APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 -#endif - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); -GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); -GLAPI void APIENTRY glGetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLenum(APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option); -typedef GLenum(APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option); -typedef void(APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC)(GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 -#endif - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#endif - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVideoCaptureNV(GLuint video_capture_slot); -GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -GLAPI void APIENTRY glEndVideoCaptureNV(GLuint video_capture_slot); -GLAPI void APIENTRY glGetVideoCaptureivNV(GLuint video_capture_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVideoCaptureStreamdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -GLAPI GLenum APIENTRY glVideoCaptureNV(GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -GLAPI void APIENTRY glVideoCaptureStreamParameterivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC)(GLuint video_capture_slot); -typedef void(APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void(APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void(APIENTRYP PFNGLENDVIDEOCAPTURENVPROC)(GLuint video_capture_slot); -typedef void(APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC)(GLuint video_capture_slot, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -typedef void(APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -typedef void(APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -typedef GLenum(APIENTRYP PFNGLVIDEOCAPTURENVPROC)(GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -typedef void(APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -typedef void(APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -typedef void(APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyImageSubDataNV(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseShaderProgramEXT(GLenum type, GLuint program); -GLAPI void APIENTRY glActiveProgramEXT(GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramEXT(GLenum type, const GLchar *string); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC)(GLenum type, GLuint program); -typedef void(APIENTRYP PFNGLACTIVEPROGRAMEXTPROC)(GLuint program); -typedef GLuint(APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC)(GLenum type, const GLchar *string); -#endif - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 -#endif - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMakeBufferResidentNV(GLenum target, GLenum access); -GLAPI void APIENTRY glMakeBufferNonResidentNV(GLenum target); -GLAPI GLboolean APIENTRY glIsBufferResidentNV(GLenum target); -GLAPI void APIENTRY glMakeNamedBufferResidentNV(GLuint buffer, GLenum access); -GLAPI void APIENTRY glMakeNamedBufferNonResidentNV(GLuint buffer); -GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV(GLuint buffer); -GLAPI void APIENTRY glGetBufferParameterui64vNV(GLenum target, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetNamedBufferParameterui64vNV(GLuint buffer, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetIntegerui64vNV(GLenum value, GLuint64EXT *result); -GLAPI void APIENTRY glUniformui64NV(GLint location, GLuint64EXT value); -GLAPI void APIENTRY glUniformui64vNV(GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformui64vNV(GLuint program, GLint location, GLuint64EXT *params); -GLAPI void APIENTRY glProgramUniformui64NV(GLuint program, GLint location, GLuint64EXT value); -GLAPI void APIENTRY glProgramUniformui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC)(GLenum target, GLenum access); -typedef void(APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC)(GLenum target); -typedef GLboolean(APIENTRYP PFNGLISBUFFERRESIDENTNVPROC)(GLenum target); -typedef void(APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)(GLuint buffer, GLenum access); -typedef void(APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)(GLuint buffer); -typedef GLboolean(APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC)(GLuint buffer); -typedef void(APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC)(GLenum target, GLenum pname, GLuint64EXT *params); -typedef void(APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)(GLuint buffer, GLenum pname, GLuint64EXT *params); -typedef void(APIENTRYP PFNGLGETINTEGERUI64VNVPROC)(GLenum value, GLuint64EXT *result); -typedef void(APIENTRYP PFNGLUNIFORMUI64NVPROC)(GLint location, GLuint64EXT value); -typedef void(APIENTRYP PFNGLUNIFORMUI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLGETUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLuint64EXT *params); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC)(GLuint program, GLint location, GLuint64EXT value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferAddressRangeNV(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -GLAPI void APIENTRY glVertexFormatNV(GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glNormalFormatNV(GLenum type, GLsizei stride); -GLAPI void APIENTRY glColorFormatNV(GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glIndexFormatNV(GLenum type, GLsizei stride); -GLAPI void APIENTRY glTexCoordFormatNV(GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glEdgeFlagFormatNV(GLsizei stride); -GLAPI void APIENTRY glSecondaryColorFormatNV(GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glFogCoordFormatNV(GLenum type, GLsizei stride); -GLAPI void APIENTRY glVertexAttribFormatNV(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -GLAPI void APIENTRY glVertexAttribIFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glGetIntegerui64i_vNV(GLenum value, GLuint index, GLuint64EXT *result); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC)(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void(APIENTRYP PFNGLVERTEXFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLNORMALFORMATNVPROC)(GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLINDEXFORMATNVPROC)(GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLTEXCOORDFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLEDGEFLAGFORMATNVPROC)(GLsizei stride); -typedef void(APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLFOGCOORDFORMATNVPROC)(GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void(APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void(APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC)(GLenum value, GLuint index, GLuint64EXT *result); -#endif - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureBarrierNV(void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXTUREBARRIERNVPROC)(void); -#endif - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 -#endif - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 -#endif - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 -#endif - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -GLAPI void APIENTRY glMemoryBarrierEXT(GLbitfield barriers); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC)(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void(APIENTRYP PFNGLMEMORYBARRIEREXTPROC)(GLbitfield barriers); -#endif - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1dEXT(GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2dEXT(GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dvEXT(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dvEXT(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dvEXT(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dvEXT(GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribLdvEXT(GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC)(GLuint index, GLdouble x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC)(GLuint index, GLdouble x, GLdouble y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC)(GLuint index, const GLdouble *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC)(GLuint index, GLenum pname, GLdouble *params); -typedef void(APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -#endif - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramSubroutineParametersuivNV(GLenum target, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV(GLenum target, GLuint index, GLuint *param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC)(GLenum target, GLsizei count, const GLuint *params); -typedef void(APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC)(GLenum target, GLuint index, GLuint *param); -#endif - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1i64NV(GLint location, GLint64EXT x); -GLAPI void APIENTRY glUniform2i64NV(GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glUniform3i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glUniform4i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glUniform1i64vNV(GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform2i64vNV(GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform3i64vNV(GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform4i64vNV(GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform1ui64NV(GLint location, GLuint64EXT x); -GLAPI void APIENTRY glUniform2ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glUniform3ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glUniform4ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glUniform1ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform2ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform3ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform4ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformi64vNV(GLuint program, GLint location, GLint64EXT *params); -GLAPI void APIENTRY glProgramUniform1i64NV(GLuint program, GLint location, GLint64EXT x); -GLAPI void APIENTRY glProgramUniform2i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glProgramUniform3i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glProgramUniform4i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glProgramUniform1i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform2i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform3i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform4i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform1ui64NV(GLuint program, GLint location, GLuint64EXT x); -GLAPI void APIENTRY glProgramUniform2ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glProgramUniform3ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glProgramUniform4ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glProgramUniform1ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform2ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform3ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform4ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLUNIFORM1I64NVPROC)(GLint location, GLint64EXT x); -typedef void(APIENTRYP PFNGLUNIFORM2I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y); -typedef void(APIENTRYP PFNGLUNIFORM3I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void(APIENTRYP PFNGLUNIFORM4I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void(APIENTRYP PFNGLUNIFORM1I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLUNIFORM2I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLUNIFORM3I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLUNIFORM4I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLUNIFORM1UI64NVPROC)(GLint location, GLuint64EXT x); -typedef void(APIENTRYP PFNGLUNIFORM2UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void(APIENTRYP PFNGLUNIFORM3UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void(APIENTRYP PFNGLUNIFORM4UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void(APIENTRYP PFNGLUNIFORM1UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLUNIFORM2UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLUNIFORM3UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLUNIFORM4UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLGETUNIFORMI64VNVPROC)(GLuint program, GLint location, GLint64EXT *params); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC)(GLuint program, GLint location, GLint64EXT x); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void(APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif - -#ifndef GL_NV_shader_buffer_store -#define GL_NV_shader_buffer_store 1 -#endif - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 -#endif - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1i64NV(GLuint index, GLint64EXT x); -GLAPI void APIENTRY glVertexAttribL2i64NV(GLuint index, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glVertexAttribL3i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glVertexAttribL4i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glVertexAttribL1i64vNV(GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2i64vNV(GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3i64vNV(GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4i64vNV(GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL1ui64NV(GLuint index, GLuint64EXT x); -GLAPI void APIENTRY glVertexAttribL2ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glVertexAttribL3ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glVertexAttribL4ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glVertexAttribL1ui64vNV(GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2ui64vNV(GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3ui64vNV(GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4ui64vNV(GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glGetVertexAttribLi64vNV(GLuint index, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVertexAttribLui64vNV(GLuint index, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glVertexAttribLFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC)(GLuint index, GLint64EXT x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC)(GLuint index, const GLint64EXT *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC)(GLuint index, const GLint64EXT *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC)(GLuint index, const GLint64EXT *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC)(GLuint index, const GLint64EXT *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC)(GLuint index, GLuint64EXT x); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC)(GLuint index, const GLuint64EXT *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC)(GLuint index, const GLuint64EXT *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC)(GLuint index, const GLuint64EXT *v); -typedef void(APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC)(GLuint index, const GLuint64EXT *v); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC)(GLuint index, GLenum pname, GLint64EXT *params); -typedef void(APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC)(GLuint index, GLenum pname, GLuint64EXT *params); -typedef void(APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride); -#endif - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 -#endif - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenNamesAMD(GLenum identifier, GLuint num, GLuint *names); -GLAPI void APIENTRY glDeleteNamesAMD(GLenum identifier, GLuint num, const GLuint *names); -GLAPI GLboolean APIENTRY glIsNameAMD(GLenum identifier, GLuint name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLGENNAMESAMDPROC)(GLenum identifier, GLuint num, GLuint *names); -typedef void(APIENTRYP PFNGLDELETENAMESAMDPROC)(GLenum identifier, GLuint num, const GLuint *names); -typedef GLboolean(APIENTRYP PFNGLISNAMEAMDPROC)(GLenum identifier, GLuint name); -#endif - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageEnableAMD(GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertAMD(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackAMD(GLDEBUGPROCAMD callback, GLvoid *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogAMD(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void(APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -typedef void(APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback, GLvoid *userParam); -typedef GLuint(APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVDPAUInitNV(const GLvoid *vdpDevice, const GLvoid *getProcAddress); -GLAPI void APIENTRY glVDPAUFiniNV(void); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV(GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV(GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI void APIENTRY glVDPAUIsSurfaceNV(GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV(GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUGetSurfaceivNV(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GLAPI void APIENTRY glVDPAUSurfaceAccessNV(GLvdpauSurfaceNV surface, GLenum access); -GLAPI void APIENTRY glVDPAUMapSurfacesNV(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -GLAPI void APIENTRY glVDPAUUnmapSurfacesNV(GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLVDPAUINITNVPROC)(const GLvoid *vdpDevice, const GLvoid *getProcAddress); -typedef void(APIENTRYP PFNGLVDPAUFININVPROC)(void); -typedef GLvdpauSurfaceNV(APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)(GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV(APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)(GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef void(APIENTRYP PFNGLVDPAUISSURFACENVPROC)(GLvdpauSurfaceNV surface); -typedef void(APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC)(GLvdpauSurfaceNV surface); -typedef void(APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC)(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void(APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC)(GLvdpauSurfaceNV surface, GLenum access); -typedef void(APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC)(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -typedef void(APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC)(GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 -#endif - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 -#endif - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#endif - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void(APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void(APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void(APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void(APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void(APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 -#endif - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSetMultisamplefvAMD(GLenum pname, GLuint index, const GLfloat *val); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC)(GLenum pname, GLuint index, const GLfloat *val); -#endif - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glImportSyncEXT(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync(APIENTRYP PFNGLIMPORTSYNCEXTPROC)(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectAMD(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectAMD(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void(APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -typedef void(APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -#endif - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/OpenGL/include/OpenGL/gltypes.h b/OpenGL/include/OpenGL/gltypes.h deleted file mode 100644 index e0750f53..00000000 --- a/OpenGL/include/OpenGL/gltypes.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _OPENGL_GLTYPES_H_ -#define _OPENGL_GLTYPES_H_ - -#include - -typedef uint32_t GLbitfield; -typedef uint8_t GLboolean; -typedef int8_t GLbyte; -typedef float GLclampf; -typedef uint32_t GLenum; -typedef float GLfloat; -typedef int32_t GLint; -typedef int16_t GLshort; -typedef int32_t GLsizei; -typedef uint8_t GLubyte; -typedef uint32_t GLuint; -typedef uint16_t GLushort; -typedef void GLvoid; - -typedef double GLdouble; -typedef double GLclampd; - -#endif diff --git a/OpenGL/include/OpenGL/glu.h b/OpenGL/include/OpenGL/glu.h deleted file mode 100644 index 8b783d47..00000000 --- a/OpenGL/include/OpenGL/glu.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifdef WINDOWS -#import -#endif diff --git a/OpenGL/include/OpenGL/glweak.h b/OpenGL/include/OpenGL/glweak.h deleted file mode 100644 index 3d92e04b..00000000 --- a/OpenGL/include/OpenGL/glweak.h +++ /dev/null @@ -1,16 +0,0 @@ -#import -#import -#import - -CGL_EXPORT void CGLBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -CGL_EXPORT void CGLGenBuffers(GLsizei n, GLuint *buffers); -CGL_EXPORT void CGLDeleteBuffers(GLsizei n, const GLuint *buffers); -CGL_EXPORT void CGLBindBuffer(GLenum target, GLuint buffer); -CGL_EXPORT void CGLBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -CGL_EXPORT void *CGLMapBuffer(GLenum target, GLenum access); -CGL_EXPORT GLboolean CGLUnmapBuffer(GLenum target); - -#define glBufferData(_1, _2, _3, _4) CGLBufferData(_1, _2, _3, _4) -#define glGenBuffers(_1, _2) CGLGenBuffers(_1, _2) -#define glBindBuffer(_1, _2) CGLBindBuffer(_1, _2) -#define glBufferSubData(_1, _2, _3, _4) CGLBufferSubData(_1, _2, _3, _4) diff --git a/OpenGL/include/OpenGL/wglext.h b/OpenGL/include/OpenGL/wglext.h deleted file mode 100644 index eaa910ee..00000000 --- a/OpenGL/include/OpenGL/wglext.h +++ /dev/null @@ -1,899 +0,0 @@ -#ifndef __wglext_h_ -#define __wglext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007-2010 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Function declaration macros - to move into glplatform.h */ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -/* Header file version number */ -/* wglext.h last updated 2010/08/06 */ -/* Current version at http://www.opengl.org/registry/ */ -#define WGL_WGLEXT_VERSION 22 - -#ifndef WGL_ARB_buffer_region -#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 -#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 -#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 -#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 -#endif - -#ifndef WGL_ARB_multisample -#define WGL_SAMPLE_BUFFERS_ARB 0x2041 -#define WGL_SAMPLES_ARB 0x2042 -#endif - -#ifndef WGL_ARB_extensions_string -#endif - -#ifndef WGL_ARB_pixel_format -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -#endif - -#ifndef WGL_ARB_make_current_read -#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 -#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 -#endif - -#ifndef WGL_ARB_pbuffer -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E -#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 -#define WGL_PBUFFER_LARGEST_ARB 0x2033 -#define WGL_PBUFFER_WIDTH_ARB 0x2034 -#define WGL_PBUFFER_HEIGHT_ARB 0x2035 -#define WGL_PBUFFER_LOST_ARB 0x2036 -#endif - -#ifndef WGL_ARB_render_texture -#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 -#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 -#define WGL_TEXTURE_FORMAT_ARB 0x2072 -#define WGL_TEXTURE_TARGET_ARB 0x2073 -#define WGL_MIPMAP_TEXTURE_ARB 0x2074 -#define WGL_TEXTURE_RGB_ARB 0x2075 -#define WGL_TEXTURE_RGBA_ARB 0x2076 -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 -#define WGL_TEXTURE_1D_ARB 0x2079 -#define WGL_TEXTURE_2D_ARB 0x207A -#define WGL_MIPMAP_LEVEL_ARB 0x207B -#define WGL_CUBE_MAP_FACE_ARB 0x207C -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 -#define WGL_FRONT_LEFT_ARB 0x2083 -#define WGL_FRONT_RIGHT_ARB 0x2084 -#define WGL_BACK_LEFT_ARB 0x2085 -#define WGL_BACK_RIGHT_ARB 0x2086 -#define WGL_AUX0_ARB 0x2087 -#define WGL_AUX1_ARB 0x2088 -#define WGL_AUX2_ARB 0x2089 -#define WGL_AUX3_ARB 0x208A -#define WGL_AUX4_ARB 0x208B -#define WGL_AUX5_ARB 0x208C -#define WGL_AUX6_ARB 0x208D -#define WGL_AUX7_ARB 0x208E -#define WGL_AUX8_ARB 0x208F -#define WGL_AUX9_ARB 0x2090 -#endif - -#ifndef WGL_ARB_pixel_format_float -#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 -#endif - -#ifndef WGL_ARB_framebuffer_sRGB -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 -#endif - -#ifndef WGL_ARB_create_context -#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001 -#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 -#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 -#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 -#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 -#define WGL_CONTEXT_FLAGS_ARB 0x2094 -#define ERROR_INVALID_VERSION_ARB 0x2095 -#endif - -#ifndef WGL_ARB_create_context_profile -#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 -#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 -#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 -#define ERROR_INVALID_PROFILE_ARB 0x2096 -#endif - -#ifndef WGL_ARB_create_context_robustness -#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 -#endif - -#ifndef WGL_EXT_make_current_read -#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 -#endif - -#ifndef WGL_EXT_pixel_format -#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 -#define WGL_DRAW_TO_WINDOW_EXT 0x2001 -#define WGL_DRAW_TO_BITMAP_EXT 0x2002 -#define WGL_ACCELERATION_EXT 0x2003 -#define WGL_NEED_PALETTE_EXT 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 -#define WGL_SWAP_METHOD_EXT 0x2007 -#define WGL_NUMBER_OVERLAYS_EXT 0x2008 -#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 -#define WGL_TRANSPARENT_EXT 0x200A -#define WGL_TRANSPARENT_VALUE_EXT 0x200B -#define WGL_SHARE_DEPTH_EXT 0x200C -#define WGL_SHARE_STENCIL_EXT 0x200D -#define WGL_SHARE_ACCUM_EXT 0x200E -#define WGL_SUPPORT_GDI_EXT 0x200F -#define WGL_SUPPORT_OPENGL_EXT 0x2010 -#define WGL_DOUBLE_BUFFER_EXT 0x2011 -#define WGL_STEREO_EXT 0x2012 -#define WGL_PIXEL_TYPE_EXT 0x2013 -#define WGL_COLOR_BITS_EXT 0x2014 -#define WGL_RED_BITS_EXT 0x2015 -#define WGL_RED_SHIFT_EXT 0x2016 -#define WGL_GREEN_BITS_EXT 0x2017 -#define WGL_GREEN_SHIFT_EXT 0x2018 -#define WGL_BLUE_BITS_EXT 0x2019 -#define WGL_BLUE_SHIFT_EXT 0x201A -#define WGL_ALPHA_BITS_EXT 0x201B -#define WGL_ALPHA_SHIFT_EXT 0x201C -#define WGL_ACCUM_BITS_EXT 0x201D -#define WGL_ACCUM_RED_BITS_EXT 0x201E -#define WGL_ACCUM_GREEN_BITS_EXT 0x201F -#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 -#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 -#define WGL_DEPTH_BITS_EXT 0x2022 -#define WGL_STENCIL_BITS_EXT 0x2023 -#define WGL_AUX_BUFFERS_EXT 0x2024 -#define WGL_NO_ACCELERATION_EXT 0x2025 -#define WGL_GENERIC_ACCELERATION_EXT 0x2026 -#define WGL_FULL_ACCELERATION_EXT 0x2027 -#define WGL_SWAP_EXCHANGE_EXT 0x2028 -#define WGL_SWAP_COPY_EXT 0x2029 -#define WGL_SWAP_UNDEFINED_EXT 0x202A -#define WGL_TYPE_RGBA_EXT 0x202B -#define WGL_TYPE_COLORINDEX_EXT 0x202C -#endif - -#ifndef WGL_EXT_pbuffer -#define WGL_DRAW_TO_PBUFFER_EXT 0x202D -#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E -#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 -#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 -#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 -#define WGL_PBUFFER_LARGEST_EXT 0x2033 -#define WGL_PBUFFER_WIDTH_EXT 0x2034 -#define WGL_PBUFFER_HEIGHT_EXT 0x2035 -#endif - -#ifndef WGL_EXT_depth_float -#define WGL_DEPTH_FLOAT_EXT 0x2040 -#endif - -#ifndef WGL_3DFX_multisample -#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 -#define WGL_SAMPLES_3DFX 0x2061 -#endif - -#ifndef WGL_EXT_multisample -#define WGL_SAMPLE_BUFFERS_EXT 0x2041 -#define WGL_SAMPLES_EXT 0x2042 -#endif - -#ifndef WGL_I3D_digital_video_control -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 -#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 -#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 -#endif - -#ifndef WGL_I3D_gamma -#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E -#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F -#endif - -#ifndef WGL_I3D_genlock -#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 -#define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045 -#define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046 -#define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047 -#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 -#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 -#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A -#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B -#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C -#endif - -#ifndef WGL_I3D_image_buffer -#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 -#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 -#endif - -#ifndef WGL_I3D_swap_frame_lock -#endif - -#ifndef WGL_NV_render_depth_texture -#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 -#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 -#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 -#define WGL_DEPTH_COMPONENT_NV 0x20A7 -#endif - -#ifndef WGL_NV_render_texture_rectangle -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 -#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 -#endif - -#ifndef WGL_ATI_pixel_format_float -#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 -#endif - -#ifndef WGL_NV_float_buffer -#define WGL_FLOAT_COMPONENTS_NV 0x20B0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 -#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 -#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 -#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 -#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 -#endif - -#ifndef WGL_3DL_stereo_control -#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 -#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 -#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 -#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 -#endif - -#ifndef WGL_EXT_pixel_format_packed_float -#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 -#endif - -#ifndef WGL_EXT_framebuffer_sRGB -#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 -#endif - -#ifndef WGL_NV_present_video -#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 -#endif - -#ifndef WGL_NV_video_out -#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 -#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 -#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 -#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 -#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 -#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 -#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 -#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 -#define WGL_VIDEO_OUT_FRAME 0x20C8 -#define WGL_VIDEO_OUT_FIELD_1 0x20C9 -#define WGL_VIDEO_OUT_FIELD_2 0x20CA -#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB -#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC -#endif - -#ifndef WGL_NV_swap_group -#endif - -#ifndef WGL_NV_gpu_affinity -#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 -#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 -#endif - -#ifndef WGL_AMD_gpu_association -#define WGL_GPU_VENDOR_AMD 0x1F00 -#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 -#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 -#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 -#define WGL_GPU_RAM_AMD 0x21A3 -#define WGL_GPU_CLOCK_AMD 0x21A4 -#define WGL_GPU_NUM_PIPES_AMD 0x21A5 -#define WGL_GPU_NUM_SIMD_AMD 0x21A6 -#define WGL_GPU_NUM_RB_AMD 0x21A7 -#define WGL_GPU_NUM_SPI_AMD 0x21A8 -#endif - -#ifndef WGL_NV_video_capture -#define WGL_UNIQUE_ID_NV 0x20CE -#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF -#endif - -#ifndef WGL_NV_copy_image -#endif - -#ifndef WGL_NV_multisample_coverage -#define WGL_COVERAGE_SAMPLES_NV 0x2042 -#define WGL_COLOR_SAMPLES_NV 0x20B9 -#endif - -#ifndef WGL_EXT_create_context_es2_profile -#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 -#endif - -/*************************************************************/ - -#ifndef WGL_ARB_pbuffer -DECLARE_HANDLE(HPBUFFERARB); -#endif -#ifndef WGL_EXT_pbuffer -DECLARE_HANDLE(HPBUFFEREXT); -#endif -#ifndef WGL_NV_present_video -DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); -#endif -#ifndef WGL_NV_video_output -DECLARE_HANDLE(HPVIDEODEV); -#endif -#ifndef WGL_NV_gpu_affinity -DECLARE_HANDLE(HPGPUNV); -DECLARE_HANDLE(HGPUNV); - -typedef struct _GPU_DEVICE { - DWORD cb; - CHAR DeviceName[32]; - CHAR DeviceString[128]; - DWORD Flags; - RECT rcVirtualScreen; -} GPU_DEVICE, *PGPU_DEVICE; -#endif -#ifndef WGL_NV_video_capture -DECLARE_HANDLE(HVIDEOINPUTDEVICENV); -#endif - -#ifndef WGL_ARB_buffer_region -#define WGL_ARB_buffer_region 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern HANDLE WINAPI wglCreateBufferRegionARB(HDC hDC, int iLayerPlane, UINT uType); -extern VOID WINAPI wglDeleteBufferRegionARB(HANDLE hRegion); -extern BOOL WINAPI wglSaveBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height); -extern BOOL WINAPI wglRestoreBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef HANDLE(WINAPI *PFNWGLCREATEBUFFERREGIONARBPROC)(HDC hDC, int iLayerPlane, UINT uType); -typedef VOID(WINAPI *PFNWGLDELETEBUFFERREGIONARBPROC)(HANDLE hRegion); -typedef BOOL(WINAPI *PFNWGLSAVEBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width, int height); -typedef BOOL(WINAPI *PFNWGLRESTOREBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -#endif - -#ifndef WGL_ARB_multisample -#define WGL_ARB_multisample 1 -#endif - -#ifndef WGL_ARB_extensions_string -#define WGL_ARB_extensions_string 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern const char *WINAPI wglGetExtensionsStringARB(HDC hdc); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef const char *(WINAPI *PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc); -#endif - -#ifndef WGL_ARB_pixel_format -#define WGL_ARB_pixel_format 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetPixelFormatAttribivARB(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); -extern BOOL WINAPI wglGetPixelFormatAttribfvARB(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); -extern BOOL WINAPI wglChoosePixelFormatARB(HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLGETPIXELFORMATATTRIBIVARBPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); -typedef BOOL(WINAPI *PFNWGLGETPIXELFORMATATTRIBFVARBPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); -typedef BOOL(WINAPI *PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif - -#ifndef WGL_ARB_make_current_read -#define WGL_ARB_make_current_read 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglMakeContextCurrentARB(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -extern HDC WINAPI wglGetCurrentReadDCARB(void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -typedef HDC(WINAPI *PFNWGLGETCURRENTREADDCARBPROC)(void); -#endif - -#ifndef WGL_ARB_pbuffer -#define WGL_ARB_pbuffer 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern HPBUFFERARB WINAPI wglCreatePbufferARB(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -extern HDC WINAPI wglGetPbufferDCARB(HPBUFFERARB hPbuffer); -extern int WINAPI wglReleasePbufferDCARB(HPBUFFERARB hPbuffer, HDC hDC); -extern BOOL WINAPI wglDestroyPbufferARB(HPBUFFERARB hPbuffer); -extern BOOL WINAPI wglQueryPbufferARB(HPBUFFERARB hPbuffer, int iAttribute, int *piValue); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef HPBUFFERARB(WINAPI *PFNWGLCREATEPBUFFERARBPROC)(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -typedef HDC(WINAPI *PFNWGLGETPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer); -typedef int(WINAPI *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer, HDC hDC); -typedef BOOL(WINAPI *PFNWGLDESTROYPBUFFERARBPROC)(HPBUFFERARB hPbuffer); -typedef BOOL(WINAPI *PFNWGLQUERYPBUFFERARBPROC)(HPBUFFERARB hPbuffer, int iAttribute, int *piValue); -#endif - -#ifndef WGL_ARB_render_texture -#define WGL_ARB_render_texture 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglBindTexImageARB(HPBUFFERARB hPbuffer, int iBuffer); -extern BOOL WINAPI wglReleaseTexImageARB(HPBUFFERARB hPbuffer, int iBuffer); -extern BOOL WINAPI wglSetPbufferAttribARB(HPBUFFERARB hPbuffer, const int *piAttribList); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLBINDTEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL(WINAPI *PFNWGLRELEASETEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL(WINAPI *PFNWGLSETPBUFFERATTRIBARBPROC)(HPBUFFERARB hPbuffer, const int *piAttribList); -#endif - -#ifndef WGL_ARB_pixel_format_float -#define WGL_ARB_pixel_format_float 1 -#endif - -#ifndef WGL_ARB_framebuffer_sRGB -#define WGL_ARB_framebuffer_sRGB 1 -#endif - -#ifndef WGL_ARB_create_context -#define WGL_ARB_create_context 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern HGLRC WINAPI wglCreateContextAttribsARB(HDC hDC, HGLRC hShareContext, const int *attribList); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef HGLRC(WINAPI *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hDC, HGLRC hShareContext, const int *attribList); -#endif - -#ifndef WGL_ARB_create_context_profile -#define WGL_ARB_create_context_profile 1 -#endif - -#ifndef WGL_ARB_create_context_robustness -#define WGL_ARB_create_context_robustness 1 -#endif - -#ifndef WGL_EXT_display_color_table -#define WGL_EXT_display_color_table 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern GLboolean WINAPI wglCreateDisplayColorTableEXT(GLushort id); -extern GLboolean WINAPI wglLoadDisplayColorTableEXT(const GLushort *table, GLuint length); -extern GLboolean WINAPI wglBindDisplayColorTableEXT(GLushort id); -extern VOID WINAPI wglDestroyDisplayColorTableEXT(GLushort id); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef GLboolean(WINAPI *PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC)(GLushort id); -typedef GLboolean(WINAPI *PFNWGLLOADDISPLAYCOLORTABLEEXTPROC)(const GLushort *table, GLuint length); -typedef GLboolean(WINAPI *PFNWGLBINDDISPLAYCOLORTABLEEXTPROC)(GLushort id); -typedef VOID(WINAPI *PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC)(GLushort id); -#endif - -#ifndef WGL_EXT_extensions_string -#define WGL_EXT_extensions_string 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern const char *WINAPI wglGetExtensionsStringEXT(void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef const char *(WINAPI *PFNWGLGETEXTENSIONSSTRINGEXTPROC)(void); -#endif - -#ifndef WGL_EXT_make_current_read -#define WGL_EXT_make_current_read 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglMakeContextCurrentEXT(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -extern HDC WINAPI wglGetCurrentReadDCEXT(void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -typedef HDC(WINAPI *PFNWGLGETCURRENTREADDCEXTPROC)(void); -#endif - -#ifndef WGL_EXT_pbuffer -#define WGL_EXT_pbuffer 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern HPBUFFEREXT WINAPI wglCreatePbufferEXT(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -extern HDC WINAPI wglGetPbufferDCEXT(HPBUFFEREXT hPbuffer); -extern int WINAPI wglReleasePbufferDCEXT(HPBUFFEREXT hPbuffer, HDC hDC); -extern BOOL WINAPI wglDestroyPbufferEXT(HPBUFFEREXT hPbuffer); -extern BOOL WINAPI wglQueryPbufferEXT(HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef HPBUFFEREXT(WINAPI *PFNWGLCREATEPBUFFEREXTPROC)(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -typedef HDC(WINAPI *PFNWGLGETPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer); -typedef int(WINAPI *PFNWGLRELEASEPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer, HDC hDC); -typedef BOOL(WINAPI *PFNWGLDESTROYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer); -typedef BOOL(WINAPI *PFNWGLQUERYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); -#endif - -#ifndef WGL_EXT_pixel_format -#define WGL_EXT_pixel_format 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetPixelFormatAttribivEXT(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); -extern BOOL WINAPI wglGetPixelFormatAttribfvEXT(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); -extern BOOL WINAPI wglChoosePixelFormatEXT(HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLGETPIXELFORMATATTRIBIVEXTPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); -typedef BOOL(WINAPI *PFNWGLGETPIXELFORMATATTRIBFVEXTPROC)(HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); -typedef BOOL(WINAPI *PFNWGLCHOOSEPIXELFORMATEXTPROC)(HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif - -#ifndef WGL_EXT_swap_control -#define WGL_EXT_swap_control 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglSwapIntervalEXT(int interval); -extern int WINAPI wglGetSwapIntervalEXT(void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLSWAPINTERVALEXTPROC)(int interval); -typedef int(WINAPI *PFNWGLGETSWAPINTERVALEXTPROC)(void); -#endif - -#ifndef WGL_EXT_depth_float -#define WGL_EXT_depth_float 1 -#endif - -#ifndef WGL_NV_vertex_array_range -#define WGL_NV_vertex_array_range 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern void *WINAPI wglAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -extern void WINAPI wglFreeMemoryNV(void *pointer); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef void *(WINAPI *PFNWGLALLOCATEMEMORYNVPROC)(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -typedef void(WINAPI *PFNWGLFREEMEMORYNVPROC)(void *pointer); -#endif - -#ifndef WGL_3DFX_multisample -#define WGL_3DFX_multisample 1 -#endif - -#ifndef WGL_EXT_multisample -#define WGL_EXT_multisample 1 -#endif - -#ifndef WGL_OML_sync_control -#define WGL_OML_sync_control 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetSyncValuesOML(HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); -extern BOOL WINAPI wglGetMscRateOML(HDC hdc, INT32 *numerator, INT32 *denominator); -extern INT64 WINAPI wglSwapBuffersMscOML(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -extern INT64 WINAPI wglSwapLayerBuffersMscOML(HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -extern BOOL WINAPI wglWaitForMscOML(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); -extern BOOL WINAPI wglWaitForSbcOML(HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLGETSYNCVALUESOMLPROC)(HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); -typedef BOOL(WINAPI *PFNWGLGETMSCRATEOMLPROC)(HDC hdc, INT32 *numerator, INT32 *denominator); -typedef INT64(WINAPI *PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef INT64(WINAPI *PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)(HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL(WINAPI *PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); -typedef BOOL(WINAPI *PFNWGLWAITFORSBCOMLPROC)(HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); -#endif - -#ifndef WGL_I3D_digital_video_control -#define WGL_I3D_digital_video_control 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetDigitalVideoParametersI3D(HDC hDC, int iAttribute, int *piValue); -extern BOOL WINAPI wglSetDigitalVideoParametersI3D(HDC hDC, int iAttribute, const int *piValue); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute, int *piValue); -typedef BOOL(WINAPI *PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute, const int *piValue); -#endif - -#ifndef WGL_I3D_gamma -#define WGL_I3D_gamma 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetGammaTableParametersI3D(HDC hDC, int iAttribute, int *piValue); -extern BOOL WINAPI wglSetGammaTableParametersI3D(HDC hDC, int iAttribute, const int *piValue); -extern BOOL WINAPI wglGetGammaTableI3D(HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); -extern BOOL WINAPI wglSetGammaTableI3D(HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLGETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute, int *piValue); -typedef BOOL(WINAPI *PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute, const int *piValue); -typedef BOOL(WINAPI *PFNWGLGETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); -typedef BOOL(WINAPI *PFNWGLSETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); -#endif - -#ifndef WGL_I3D_genlock -#define WGL_I3D_genlock 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglEnableGenlockI3D(HDC hDC); -extern BOOL WINAPI wglDisableGenlockI3D(HDC hDC); -extern BOOL WINAPI wglIsEnabledGenlockI3D(HDC hDC, BOOL *pFlag); -extern BOOL WINAPI wglGenlockSourceI3D(HDC hDC, UINT uSource); -extern BOOL WINAPI wglGetGenlockSourceI3D(HDC hDC, UINT *uSource); -extern BOOL WINAPI wglGenlockSourceEdgeI3D(HDC hDC, UINT uEdge); -extern BOOL WINAPI wglGetGenlockSourceEdgeI3D(HDC hDC, UINT *uEdge); -extern BOOL WINAPI wglGenlockSampleRateI3D(HDC hDC, UINT uRate); -extern BOOL WINAPI wglGetGenlockSampleRateI3D(HDC hDC, UINT *uRate); -extern BOOL WINAPI wglGenlockSourceDelayI3D(HDC hDC, UINT uDelay); -extern BOOL WINAPI wglGetGenlockSourceDelayI3D(HDC hDC, UINT *uDelay); -extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D(HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLENABLEGENLOCKI3DPROC)(HDC hDC); -typedef BOOL(WINAPI *PFNWGLDISABLEGENLOCKI3DPROC)(HDC hDC); -typedef BOOL(WINAPI *PFNWGLISENABLEDGENLOCKI3DPROC)(HDC hDC, BOOL *pFlag); -typedef BOOL(WINAPI *PFNWGLGENLOCKSOURCEI3DPROC)(HDC hDC, UINT uSource); -typedef BOOL(WINAPI *PFNWGLGETGENLOCKSOURCEI3DPROC)(HDC hDC, UINT *uSource); -typedef BOOL(WINAPI *PFNWGLGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT uEdge); -typedef BOOL(WINAPI *PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT *uEdge); -typedef BOOL(WINAPI *PFNWGLGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT uRate); -typedef BOOL(WINAPI *PFNWGLGETGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT *uRate); -typedef BOOL(WINAPI *PFNWGLGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT uDelay); -typedef BOOL(WINAPI *PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT *uDelay); -typedef BOOL(WINAPI *PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)(HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); -#endif - -#ifndef WGL_I3D_image_buffer -#define WGL_I3D_image_buffer 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern LPVOID WINAPI wglCreateImageBufferI3D(HDC hDC, DWORD dwSize, UINT uFlags); -extern BOOL WINAPI wglDestroyImageBufferI3D(HDC hDC, LPVOID pAddress); -extern BOOL WINAPI wglAssociateImageBufferEventsI3D(HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); -extern BOOL WINAPI wglReleaseImageBufferEventsI3D(HDC hDC, const LPVOID *pAddress, UINT count); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef LPVOID(WINAPI *PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC, DWORD dwSize, UINT uFlags); -typedef BOOL(WINAPI *PFNWGLDESTROYIMAGEBUFFERI3DPROC)(HDC hDC, LPVOID pAddress); -typedef BOOL(WINAPI *PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); -typedef BOOL(WINAPI *PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const LPVOID *pAddress, UINT count); -#endif - -#ifndef WGL_I3D_swap_frame_lock -#define WGL_I3D_swap_frame_lock 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglEnableFrameLockI3D(void); -extern BOOL WINAPI wglDisableFrameLockI3D(void); -extern BOOL WINAPI wglIsEnabledFrameLockI3D(BOOL *pFlag); -extern BOOL WINAPI wglQueryFrameLockMasterI3D(BOOL *pFlag); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLENABLEFRAMELOCKI3DPROC)(void); -typedef BOOL(WINAPI *PFNWGLDISABLEFRAMELOCKI3DPROC)(void); -typedef BOOL(WINAPI *PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL *pFlag); -typedef BOOL(WINAPI *PFNWGLQUERYFRAMELOCKMASTERI3DPROC)(BOOL *pFlag); -#endif - -#ifndef WGL_I3D_swap_frame_usage -#define WGL_I3D_swap_frame_usage 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetFrameUsageI3D(float *pUsage); -extern BOOL WINAPI wglBeginFrameTrackingI3D(void); -extern BOOL WINAPI wglEndFrameTrackingI3D(void); -extern BOOL WINAPI wglQueryFrameTrackingI3D(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLGETFRAMEUSAGEI3DPROC)(float *pUsage); -typedef BOOL(WINAPI *PFNWGLBEGINFRAMETRACKINGI3DPROC)(void); -typedef BOOL(WINAPI *PFNWGLENDFRAMETRACKINGI3DPROC)(void); -typedef BOOL(WINAPI *PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); -#endif - -#ifndef WGL_ATI_pixel_format_float -#define WGL_ATI_pixel_format_float 1 -#endif - -#ifndef WGL_NV_float_buffer -#define WGL_NV_float_buffer 1 -#endif - -#ifndef WGL_3DL_stereo_control -#define WGL_3DL_stereo_control 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglSetStereoEmitterState3DL(HDC hDC, UINT uState); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC, UINT uState); -#endif - -#ifndef WGL_EXT_pixel_format_packed_float -#define WGL_EXT_pixel_format_packed_float 1 -#endif - -#ifndef WGL_EXT_framebuffer_sRGB -#define WGL_EXT_framebuffer_sRGB 1 -#endif - -#ifndef WGL_NV_present_video -#define WGL_NV_present_video 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern int WINAPI wglEnumerateVideoDevicesNV(HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); -extern BOOL WINAPI wglBindVideoDeviceNV(HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); -extern BOOL WINAPI wglQueryCurrentContextNV(int iAttribute, int *piValue); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef int(WINAPI *PFNWGLENUMERATEVIDEODEVICESNVPROC)(HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); -typedef BOOL(WINAPI *PFNWGLBINDVIDEODEVICENVPROC)(HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); -typedef BOOL(WINAPI *PFNWGLQUERYCURRENTCONTEXTNVPROC)(int iAttribute, int *piValue); -#endif - -#ifndef WGL_NV_video_output -#define WGL_NV_video_output 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetVideoDeviceNV(HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); -extern BOOL WINAPI wglReleaseVideoDeviceNV(HPVIDEODEV hVideoDevice); -extern BOOL WINAPI wglBindVideoImageNV(HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -extern BOOL WINAPI wglReleaseVideoImageNV(HPBUFFERARB hPbuffer, int iVideoBuffer); -extern BOOL WINAPI wglSendPbufferToVideoNV(HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); -extern BOOL WINAPI wglGetVideoInfoNV(HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLGETVIDEODEVICENVPROC)(HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice); -typedef BOOL(WINAPI *PFNWGLRELEASEVIDEODEVICENVPROC)(HPVIDEODEV hVideoDevice); -typedef BOOL(WINAPI *PFNWGLBINDVIDEOIMAGENVPROC)(HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL(WINAPI *PFNWGLRELEASEVIDEOIMAGENVPROC)(HPBUFFERARB hPbuffer, int iVideoBuffer); -typedef BOOL(WINAPI *PFNWGLSENDPBUFFERTOVIDEONVPROC)(HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock); -typedef BOOL(WINAPI *PFNWGLGETVIDEOINFONVPROC)(HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); -#endif - -#ifndef WGL_NV_swap_group -#define WGL_NV_swap_group 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglJoinSwapGroupNV(HDC hDC, GLuint group); -extern BOOL WINAPI wglBindSwapBarrierNV(GLuint group, GLuint barrier); -extern BOOL WINAPI wglQuerySwapGroupNV(HDC hDC, GLuint *group, GLuint *barrier); -extern BOOL WINAPI wglQueryMaxSwapGroupsNV(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); -extern BOOL WINAPI wglQueryFrameCountNV(HDC hDC, GLuint *count); -extern BOOL WINAPI wglResetFrameCountNV(HDC hDC); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLJOINSWAPGROUPNVPROC)(HDC hDC, GLuint group); -typedef BOOL(WINAPI *PFNWGLBINDSWAPBARRIERNVPROC)(GLuint group, GLuint barrier); -typedef BOOL(WINAPI *PFNWGLQUERYSWAPGROUPNVPROC)(HDC hDC, GLuint *group, GLuint *barrier); -typedef BOOL(WINAPI *PFNWGLQUERYMAXSWAPGROUPSNVPROC)(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); -typedef BOOL(WINAPI *PFNWGLQUERYFRAMECOUNTNVPROC)(HDC hDC, GLuint *count); -typedef BOOL(WINAPI *PFNWGLRESETFRAMECOUNTNVPROC)(HDC hDC); -#endif - -#ifndef WGL_NV_gpu_affinity -#define WGL_NV_gpu_affinity 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglEnumGpusNV(UINT iGpuIndex, HGPUNV *phGpu); -extern BOOL WINAPI wglEnumGpuDevicesNV(HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -extern HDC WINAPI wglCreateAffinityDCNV(const HGPUNV *phGpuList); -extern BOOL WINAPI wglEnumGpusFromAffinityDCNV(HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -extern BOOL WINAPI wglDeleteDCNV(HDC hdc); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLENUMGPUSNVPROC)(UINT iGpuIndex, HGPUNV *phGpu); -typedef BOOL(WINAPI *PFNWGLENUMGPUDEVICESNVPROC)(HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); -typedef HDC(WINAPI *PFNWGLCREATEAFFINITYDCNVPROC)(const HGPUNV *phGpuList); -typedef BOOL(WINAPI *PFNWGLENUMGPUSFROMAFFINITYDCNVPROC)(HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); -typedef BOOL(WINAPI *PFNWGLDELETEDCNVPROC)(HDC hdc); -#endif - -#ifndef WGL_AMD_gpu_association -#define WGL_AMD_gpu_association 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern UINT WINAPI wglGetGPUIDsAMD(UINT maxCount, UINT *ids); -extern INT WINAPI wglGetGPUInfoAMD(UINT id, int property, GLenum dataType, UINT size, void *data); -extern UINT WINAPI wglGetContextGPUIDAMD(HGLRC hglrc); -extern HGLRC WINAPI wglCreateAssociatedContextAMD(UINT id); -extern HGLRC WINAPI wglCreateAssociatedContextAttribsAMD(UINT id, HGLRC hShareContext, const int *attribList); -extern BOOL WINAPI wglDeleteAssociatedContextAMD(HGLRC hglrc); -extern BOOL WINAPI wglMakeAssociatedContextCurrentAMD(HGLRC hglrc); -extern HGLRC WINAPI wglGetCurrentAssociatedContextAMD(void); -extern VOID WINAPI wglBlitContextFramebufferAMD(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef UINT(WINAPI *PFNWGLGETGPUIDSAMDPROC)(UINT maxCount, UINT *ids); -typedef INT(WINAPI *PFNWGLGETGPUINFOAMDPROC)(UINT id, int property, GLenum dataType, UINT size, void *data); -typedef UINT(WINAPI *PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc); -typedef HGLRC(WINAPI *PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC)(UINT id); -typedef HGLRC(WINAPI *PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(UINT id, HGLRC hShareContext, const int *attribList); -typedef BOOL(WINAPI *PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC)(HGLRC hglrc); -typedef BOOL(WINAPI *PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc); -typedef HGLRC(WINAPI *PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void); -typedef VOID(WINAPI *PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -#ifndef WGL_NV_video_capture -#define WGL_NV_video_capture 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglBindVideoCaptureDeviceNV(UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -extern UINT WINAPI wglEnumerateVideoCaptureDevicesNV(HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); -extern BOOL WINAPI wglLockVideoCaptureDeviceNV(HDC hDc, HVIDEOINPUTDEVICENV hDevice); -extern BOOL WINAPI wglQueryVideoCaptureDeviceNV(HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); -extern BOOL WINAPI wglReleaseVideoCaptureDeviceNV(HDC hDc, HVIDEOINPUTDEVICENV hDevice); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLBINDVIDEOCAPTUREDEVICENVPROC)(UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); -typedef UINT(WINAPI *PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC)(HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList); -typedef BOOL(WINAPI *PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC)(HDC hDc, HVIDEOINPUTDEVICENV hDevice); -typedef BOOL(WINAPI *PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC)(HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue); -typedef BOOL(WINAPI *PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC)(HDC hDc, HVIDEOINPUTDEVICENV hDevice); -#endif - -#ifndef WGL_NV_copy_image -#define WGL_NV_copy_image 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglCopyImageSubDataNV(HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL(WINAPI *PFNWGLCOPYIMAGESUBDATANVPROC)(HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef WGL_NV_multisample_coverage -#define WGL_NV_multisample_coverage 1 -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/PDFKit/English.lproj/InfoPlist.strings b/PDFKit/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/PDFKit/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/PDFKit/Info.plist b/PDFKit/Info.plist deleted file mode 100644 index 49168a1f..00000000 --- a/PDFKit/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleName - ${PRODUCT_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1 - CFBundleShortVersionString - 1.0 - NSPrincipalClass - - - diff --git a/PDFKit/PDFDocument.h b/PDFKit/PDFDocument.h deleted file mode 100644 index eece352d..00000000 --- a/PDFKit/PDFDocument.h +++ /dev/null @@ -1,58 +0,0 @@ -#import -#import -#import - -@class NSURL, NSArray, NSMutableArray, PDFPage, PDFSelection, NSTimer, - NSNotification; - -PDFKIT_EXPORT NSString *const PDFDocumentDidEndFindNotification; -PDFKIT_EXPORT NSString *const PDFDocumentDidFindMatchNotification; - -@interface PDFDocument : NSObject { - NSURL *_documentURL; - id _delegate; - CGPDFDocumentRef _documentRef; - NSMutableArray *_pages; - - NSUInteger _findOptions; - NSUInteger _findPatternLength; - unichar *_findPattern; - NSInteger *_findNext; - NSInteger _findPosition; - NSInteger _findPageIndex; - NSTimer *_findTimer; -} - -- initWithData: (NSData *) data; -- initWithURL: (NSURL *) url; - -- (NSURL *) documentURL; - -- (void) setDelegate: object; - -- (Class) pageClass; - -- (NSUInteger) pageCount; -- (PDFPage *) pageAtIndex: (NSUInteger) index; -- (NSUInteger) indexForPage: (PDFPage *) page; - -- (BOOL) isFinding; -- (void) cancelFindString; -- (void) beginFindString: (NSString *) string withOptions: (NSUInteger) options; -- (NSArray *) findString: (NSString *) string withOptions: (NSUInteger) options; - -@end - -@interface NSObject (PDFDocumentDelegate) -- (void) didMatchString: (PDFSelection *) selection; - -- (void) documentDidBeginDocumentFind: (NSNotification *) note; -- (void) documentDidEndDocumentFind: (NSNotification *) note; - -- (void) documentDidBeginPageFind: (NSNotification *) note; -- (void) documentDidEndPageFind: (NSNotification *) note; - -- (void) documentDidFindMatch: (NSNotification *) note; - -- (void) documentDidUnlock: (NSNotification *) note; -@end diff --git a/PDFKit/PDFDocument.m b/PDFKit/PDFDocument.m deleted file mode 100644 index 89cca62d..00000000 --- a/PDFKit/PDFDocument.m +++ /dev/null @@ -1,292 +0,0 @@ -#import "PDFSelectedRange.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -NSString *const PDFDocumentDidEndFindNotification = - @"PDFDocumentDidEndFindNotification"; -NSString *const PDFDocumentDidFindMatchNotification = - @"PDFDocumentDidFindMatchNotification"; - -@implementation PDFDocument - -- initWithData: (NSData *) data { - CGDataProviderRef provider = CGDataProviderCreateWithCFData(data); - _documentRef = CGPDFDocumentCreateWithProvider(provider); - CGDataProviderRelease(provider); - _pages = [[NSMutableArray alloc] init]; - - NSInteger i, count = CGPDFDocumentGetNumberOfPages(_documentRef); - - for (i = 0; i < count; i++) { - CGPDFPageRef pageRef = CGPDFDocumentGetPage(_documentRef, i + 1); - PDFPage *page = [[[self pageClass] alloc] init]; - - [page setPageRef: pageRef]; - [page setDocument: self]; - [page setLabel: [NSString stringWithFormat: @"%d", i + 1]]; - [_pages addObject: page]; - } - - return self; -} - -- initWithURL: (NSURL *) url { - NSData *data = [NSData dataWithContentsOfURL: url]; - - if (data == nil) { - [self dealloc]; - return nil; - } - - if ([self initWithData: data] == nil) - return nil; - - _documentURL = [url copy]; - return self; -} - -- (void) dealloc { - [_documentURL release]; - CGPDFDocumentRelease(_documentRef); - [super dealloc]; -} - -- (NSURL *) documentURL { - return _documentURL; -} - -- (void) setDelegate: object { - _delegate = object; -} - -- (NSUInteger) pageCount { - return [_pages count]; -} - -- (Class) pageClass { - return [PDFPage class]; -} - -- (PDFPage *) pageAtIndex: (NSUInteger) index { - return [_pages objectAtIndex: index]; -} - -- (NSUInteger) indexForPage: (PDFPage *) page { - return [_pages indexOfObjectIdenticalTo: page]; -} - -- (BOOL) isFinding { - return (_findTimer != nil) ? YES : NO; -} - -- (void) cancelFindString { - [_findTimer invalidate]; - [_findTimer release]; - _findTimer = nil; -} - -- (NSArray *) findOnCurrentPage { - NSMutableArray *result = [NSMutableArray array]; - NSString *text = [[_pages objectAtIndex: _findPageIndex] string]; - NSInteger i, textLength = [text length]; - unichar textBuffer[textLength]; - - if (_findOptions & NSCaseInsensitiveSearch) - text = [text uppercaseString]; - - [text getCharacters: textBuffer]; - - for (i = 0; i < textLength;) { - for (; i < textLength && _findPosition < _findPatternLength; - i++, _findPosition++) { - while ((_findPosition > -1) && - (textBuffer[i] != _findPattern[_findPosition])) - _findPosition = _findNext[_findPosition]; - - if (_findPosition <= 0) { - // start - } - } - - if (_findPosition >= _findPatternLength) { - NSInteger maxRange = i; - NSInteger rangeLocation = maxRange - _findPatternLength; - NSInteger pageForRange = _findPageIndex; - NSMutableArray *selectionRanges = [NSMutableArray array]; - - do { - PDFPage *page = [_pages objectAtIndex: pageForRange]; - NSInteger pageRangeLocation = MAX(0, rangeLocation); - NSInteger pageRangeLength = maxRange - pageRangeLocation; - PDFSelectedRange *selectedRange = [[[PDFSelectedRange alloc] - initWithPage: page - range: NSMakeRange(pageRangeLocation, - pageRangeLength)] - autorelease]; - - [selectionRanges addObject: selectedRange]; - - maxRange = pageRangeLocation; - - if (maxRange <= 0) { - pageForRange--; - if (pageForRange < 0) - break; - - maxRange = [[[_pages objectAtIndex: pageForRange] string] - length]; - rangeLocation = maxRange - pageRangeLength; - } - - } while (maxRange > rangeLocation); - - PDFSelection *selection = - [[[PDFSelection alloc] initWithDocument: self] autorelease]; - - [selection _setSelectedRanges: selectionRanges]; - - [result addObject: selection]; - - _findPosition = 0; - } - } - - return result; -} - -- (void) _findOnCurrentPage: (NSTimer *) timer { - - if (_findPageIndex < [_pages count]) { - NSArray *selections = [self findOnCurrentPage]; - NSInteger i, count = [selections count]; - - for (i = 0; i < count && [self isFinding]; i++) { - PDFSelection *selection = [selections objectAtIndex: i]; - - if ([_delegate respondsToSelector: @selector(didMatchString:)]) - [_delegate didMatchString: selection]; - - [[NSNotificationCenter defaultCenter] - postNotificationName: PDFDocumentDidFindMatchNotification - object: self - userInfo: - [NSDictionary - dictionaryWithObject: selection - forKey: @"PDFDocu" - @"mentFou" - @"ndSel" - @"ectio" - @"n"]]; - } - - _findPageIndex++; - } else { - [_findTimer invalidate]; - [_findTimer release]; - _findTimer = nil; - - [[NSNotificationCenter defaultCenter] - postNotificationName: PDFDocumentDidEndFindNotification - object: self - userInfo: nil]; - } -} - -- (void) _setupFindString: (NSString *) string - withOptions: (NSUInteger) options -{ - NSInteger i, pos; - - _findOptions = options; - - if (_findOptions & NSCaseInsensitiveSearch) - string = [string uppercaseString]; - - _findPatternLength = [string length]; - - if (_findPatternLength == 0) { - _findPattern = NULL; - _findNext = NULL; - _findPosition = 0; - _findPageIndex = [_pages count]; - return; - } - - _findPattern = NSZoneMalloc(NULL, _findPatternLength * sizeof(unichar)); - - [string getCharacters: _findPattern]; - -#if 0 -// backwards isnt completely implemented, but first thing you do is reverse the pattern -// (then process the text stream in reverse) - if(options&NSBackwardsSearch){ - for(pos=0;pos<_findPatternLength/2;pos++){ - unichar tmp=_findPattern[pos]; - _findPattern[pos]=_findPattern[_findPatternLength-pos-1]; - _findPattern[_findPatternLength-pos-1]=tmp; - } - } -#endif - - _findNext = NSZoneMalloc(NULL, _findPatternLength * sizeof(NSInteger)); - - // Modified Knuth-Morris-Pratt sequential search. - - pos = 0; - _findNext[0] = -1; - i = -1; - while (pos < _findPatternLength - 1) { - while (i > -1 && _findPattern[pos] != _findPattern[i]) - i = _findNext[i]; - pos++; - i++; - if (_findPattern[pos] == _findPattern[i]) - _findNext[pos] = _findNext[i]; - else - _findNext[pos] = i; - } - - _findPosition = 0; - - _findPageIndex = 0; -} - -- (void) beginFindString: (NSString *) string - withOptions: (NSUInteger) options -{ - [self _setupFindString: string withOptions: options]; - - _findTimer = [[NSTimer - scheduledTimerWithTimeInterval: 0.001 - target: self - selector: @selector(_findOnCurrentPage:) - userInfo: nil - repeats: YES] retain]; -} - -- (NSArray *) findString: (NSString *) string - withOptions: (NSUInteger) options -{ - NSMutableArray *result = [NSMutableArray array]; - - [self _setupFindString: string withOptions: options]; - while (_findPageIndex < [_pages count]) { - NSArray *batch = [self findOnCurrentPage]; - - [result addObjectsFromArray: batch]; - - _findPageIndex++; - } - - return result; -} - -@end diff --git a/PDFKit/PDFDocumentView.h b/PDFKit/PDFDocumentView.h deleted file mode 100644 index 72bc2852..00000000 --- a/PDFKit/PDFDocumentView.h +++ /dev/null @@ -1,22 +0,0 @@ -#import - -@class PDFDocument, PDFSelection; - -@interface PDFDocumentView : NSView { - PDFDocument *_document; - NSMutableArray *_pageViews; - float _scaleFactor; -} - -- (void) setDocument: (PDFDocument *) document; - -- (void) layoutDocumentView; - -- (void) pageUp: sender; -- (void) pageDown: sender; - -- (void) goToPageAtIndex: (NSUInteger) pageIndex; - -- (void) setCurrentSelection: (PDFSelection *) selection; - -@end diff --git a/PDFKit/PDFDocumentView.m b/PDFKit/PDFDocumentView.m deleted file mode 100644 index fb2d6475..00000000 --- a/PDFKit/PDFDocumentView.m +++ /dev/null @@ -1,143 +0,0 @@ -#import "PDFDocumentView.h" -#import "PDFDocument.h" -#import "PDFPage.h" -#import "PDFPageView.h" -#import - -@implementation PDFDocumentView - -- initWithFrame: (NSRect) rect { - [super initWithFrame: rect]; - _pageViews = [[NSMutableArray alloc] init]; - return self; -} - -- (BOOL) isFlipped { - return YES; -} - -- (void) setDocument: (PDFDocument *) document { - document = [document retain]; - [_document release]; - _document = document; -} - -- (void) layoutDocumentView { - NSInteger i, count = [_document pageCount]; - - for (i = 0; i < count; i++) { - PDFPage *page = [_document pageAtIndex: i]; - - if (i >= [_pageViews count]) { - PDFPageView *view = [[PDFPageView alloc] init]; - [_pageViews addObject: view]; - [self addSubview: view]; - } - [[_pageViews objectAtIndex: i] setPage: page]; - } - - while ([_pageViews count] > count) { - PDFPageView *view = [_pageViews lastObject]; - [view removeFromSuperview]; - [_pageViews removeLastObject]; - } - - // autoscale - - float maxPageWidth = 0; - - for (i = 0; i < count; i++) { - PDFPageView *view = [_pageViews objectAtIndex: i]; - PDFPage *page = [view page]; - NSRect pageBounds = [page boundsForBox: kPDFDisplayBoxMediaBox]; - - maxPageWidth = MAX(pageBounds.size.width, maxPageWidth); - } - - // clipview bounds, this is wrong, need to translate - float availableWidth = - [[self superview] bounds].size.width - - ([PDFPageView leftMargin] + [PDFPageView rightMargin]); - - _scaleFactor = availableWidth / maxPageWidth; - - CGFloat currentY = [PDFPageView topMargin]; - - for (i = 0; i < count; i++) { - PDFPageView *view = [_pageViews objectAtIndex: i]; - PDFPage *page = [view page]; - NSRect pageBounds = [page boundsForBox: kPDFDisplayBoxMediaBox]; - NSRect viewFrame; - - viewFrame.origin.x = [PDFPageView leftMargin]; - viewFrame.origin.y = currentY; - viewFrame.size.width = pageBounds.size.width * _scaleFactor; - viewFrame.size.height = pageBounds.size.height * _scaleFactor; - - [view setFrame: viewFrame]; - - currentY += viewFrame.size.height; - currentY += [PDFPageView bottomMargin]; - } - - NSSize frameSize = [self frame].size; - - NSPoint scrollTo = [[self superview] bounds].origin; - float percentage = scrollTo.y / frameSize.height; - - frameSize.width = [[self superview] bounds].size.width; - frameSize.height = currentY; - - scrollTo.y = frameSize.height * percentage; - - [self setFrameSize: frameSize]; - [(NSClipView *) [self superview] scrollToPoint: scrollTo]; - - [self setNeedsDisplay: YES]; -} - -- (void) resizeWithOldSuperviewSize: (NSSize) oldSize { - [self layoutDocumentView]; -} - -- (BOOL) acceptsFirstResponder { - return YES; -} - -- (BOOL) becomeFirstResponder { - return YES; -} - -- (void) keyDown: (NSEvent *) event { - [self interpretKeyEvents: [NSArray arrayWithObject: event]]; -} - -- (void) pageUp: sender { - NSRect rect = [self visibleRect]; - - rect.origin.y -= rect.size.height; - [self scrollPoint: rect.origin]; -} - -- (void) pageDown: sender { - NSRect rect = [self visibleRect]; - - rect.origin.y += rect.size.height; - [self scrollPoint: rect.origin]; -} - -- (void) goToPageAtIndex: (NSUInteger) pageIndex { - NSView *pageView = [_pageViews objectAtIndex: pageIndex]; - NSRect frame = [pageView frame]; - - [self scrollRectToVisible: frame]; -} - -- (void) setCurrentSelection: (PDFSelection *) selection { - [_pageViews makeObjectsPerformSelector: _cmd withObject: selection]; -} - -- (void) drawRect: (NSRect) rect { -} - -@end diff --git a/PDFKit/PDFKit.h b/PDFKit/PDFKit.h deleted file mode 100644 index daf8e3de..00000000 --- a/PDFKit/PDFKit.h +++ /dev/null @@ -1,3 +0,0 @@ -#import -#import -#import diff --git a/PDFKit/PDFKit.xcodeproj/project.pbxproj b/PDFKit/PDFKit.xcodeproj/project.pbxproj deleted file mode 100644 index 3c7ba9a2..00000000 --- a/PDFKit/PDFKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,432 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - FE1FBF9E11E769D300A9A87A /* PDFPage.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1FBF9C11E769D300A9A87A /* PDFPage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE1FBF9F11E769D300A9A87A /* PDFPage.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1FBF9D11E769D300A9A87A /* PDFPage.m */; }; - FE2758F91233FE7A00BD6643 /* PDFSelectedRange.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2758F71233FE7A00BD6643 /* PDFSelectedRange.h */; }; - FE2758FA1233FE7A00BD6643 /* PDFSelectedRange.m in Sources */ = {isa = PBXBuildFile; fileRef = FE2758F81233FE7A00BD6643 /* PDFSelectedRange.m */; }; - FE43024F11E259EE00EBDD56 /* PDFKit.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43024E11E259EE00EBDD56 /* PDFKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4302B511E2637A00EBDD56 /* PDFDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4302AF11E2637A00EBDD56 /* PDFDocument.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4302B611E2637A00EBDD56 /* PDFDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4302B011E2637A00EBDD56 /* PDFDocument.m */; }; - FE4302B711E2637A00EBDD56 /* PDFSelection.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4302B111E2637A00EBDD56 /* PDFSelection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4302B811E2637A00EBDD56 /* PDFSelection.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4302B211E2637A00EBDD56 /* PDFSelection.m */; }; - FE4302B911E2637A00EBDD56 /* PDFView.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4302B311E2637A00EBDD56 /* PDFView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4302BA11E2637A00EBDD56 /* PDFView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4302B411E2637A00EBDD56 /* PDFView.m */; }; - FE4302C511E2648300EBDD56 /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4302C411E2648300EBDD56 /* dllmain.m */; }; - FE4302CA11E264B400EBDD56 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - FE4302CE11E264C000EBDD56 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE4302CD11E264C000EBDD56 /* AppKit.framework */; }; - FE71DB3111F748CE00E6F801 /* PDFKit_Framework.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71DB3011F748CE00E6F801 /* PDFKit_Framework.m */; }; - FE71DE3011F87E8200E6F801 /* PDFDocumentView.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71DE2E11F87E8200E6F801 /* PDFDocumentView.h */; }; - FE71DE3111F87E8200E6F801 /* PDFDocumentView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71DE2F11F87E8200E6F801 /* PDFDocumentView.m */; }; - FE71DEBD11F89E2A00E6F801 /* PDFPageView.h in Headers */ = {isa = PBXBuildFile; fileRef = FE71DEBB11F89E2A00E6F801 /* PDFPageView.h */; }; - FE71DEBE11F89E2A00E6F801 /* PDFPageView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE71DEBC11F89E2A00E6F801 /* PDFPageView.m */; }; - FEAD497311E90D0500063B34 /* PDFKitExport.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAD497211E90D0500063B34 /* PDFKitExport.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE386EB915269311007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AAC10C5D9BCB00AEA51A; - remoteInfo = "AppKit-Windows-i386"; - }; - FE386EBB15269311007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C889770C0EA0BF3100D0A0A2; - remoteInfo = "AppKit-Linux-i386"; - }; - FE386EBD15269311007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C8A2E5730F07EA1F0054397C; - remoteInfo = "AppKit-Darwin-i386"; - }; - FE386EC115269311007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5A8BE310C6F50E005E348A; - remoteInfo = "AppKit-FreeBSD-i386"; - }; - FE386ECC15269320007CC8C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A8070C5D9BCB00AEA51A; - remoteInfo = "AppKit-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* PDFKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PDFKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B4551430E9600071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B4561430E9600071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B4571430E9600071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B4581430E9600071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B4591430E9600071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B45A1430E9600071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B45B1430E9600071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B45C1430E9600071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B45D1430E9600071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B45E1430E9600071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B45F1430E9600071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B4601430E9600071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B4611430E9600071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B4621430E9600071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B4631430E9600071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE1FBF9C11E769D300A9A87A /* PDFPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFPage.h; sourceTree = ""; }; - FE1FBF9D11E769D300A9A87A /* PDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFPage.m; sourceTree = ""; }; - FE2758F71233FE7A00BD6643 /* PDFSelectedRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFSelectedRange.h; sourceTree = ""; }; - FE2758F81233FE7A00BD6643 /* PDFSelectedRange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFSelectedRange.m; sourceTree = ""; }; - FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AppKit.xcodeproj; path = ../AppKit/AppKit.xcodeproj; sourceTree = ""; }; - FE43024E11E259EE00EBDD56 /* PDFKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFKit.h; sourceTree = ""; }; - FE4302AF11E2637A00EBDD56 /* PDFDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFDocument.h; sourceTree = ""; }; - FE4302B011E2637A00EBDD56 /* PDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFDocument.m; sourceTree = ""; }; - FE4302B111E2637A00EBDD56 /* PDFSelection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFSelection.h; sourceTree = ""; }; - FE4302B211E2637A00EBDD56 /* PDFSelection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFSelection.m; sourceTree = ""; }; - FE4302B311E2637A00EBDD56 /* PDFView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFView.h; sourceTree = ""; }; - FE4302B411E2637A00EBDD56 /* PDFView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFView.m; sourceTree = ""; }; - FE4302C411E2648300EBDD56 /* dllmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = dllmain.m; path = ../AppKit/Win32.subproj/dllmain.m; sourceTree = SOURCE_ROOT; }; - FE4302CD11E264C000EBDD56 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - FE7087151431186A00B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE71DB3011F748CE00E6F801 /* PDFKit_Framework.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFKit_Framework.m; sourceTree = ""; }; - FE71DE2E11F87E8200E6F801 /* PDFDocumentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFDocumentView.h; sourceTree = ""; }; - FE71DE2F11F87E8200E6F801 /* PDFDocumentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFDocumentView.m; sourceTree = ""; }; - FE71DEBB11F89E2A00E6F801 /* PDFPageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFPageView.h; sourceTree = ""; }; - FE71DEBC11F89E2A00E6F801 /* PDFPageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFPageView.m; sourceTree = ""; }; - FEAD497211E90D0500063B34 /* PDFKitExport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFKitExport.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4302CA11E264B400EBDD56 /* Foundation.framework in Frameworks */, - FE4302CE11E264C000EBDD56 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* PDFKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* PDFKit */ = { - isa = PBXGroup; - children = ( - FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */, - FE06B4541430E9600071169B /* xcconfig */, - FE2758F71233FE7A00BD6643 /* PDFSelectedRange.h */, - FE2758F81233FE7A00BD6643 /* PDFSelectedRange.m */, - FE4302AF11E2637A00EBDD56 /* PDFDocument.h */, - FE4302B011E2637A00EBDD56 /* PDFDocument.m */, - FE71DE2E11F87E8200E6F801 /* PDFDocumentView.h */, - FE71DE2F11F87E8200E6F801 /* PDFDocumentView.m */, - FE43024E11E259EE00EBDD56 /* PDFKit.h */, - FE71DB3011F748CE00E6F801 /* PDFKit_Framework.m */, - FEAD497211E90D0500063B34 /* PDFKitExport.h */, - FE1FBF9C11E769D300A9A87A /* PDFPage.h */, - FE1FBF9D11E769D300A9A87A /* PDFPage.m */, - FE71DEBB11F89E2A00E6F801 /* PDFPageView.h */, - FE71DEBC11F89E2A00E6F801 /* PDFPageView.m */, - FE4302B111E2637A00EBDD56 /* PDFSelection.h */, - FE4302B211E2637A00EBDD56 /* PDFSelection.m */, - FE4302B311E2637A00EBDD56 /* PDFView.h */, - FE4302B411E2637A00EBDD56 /* PDFView.m */, - FE4302C411E2648300EBDD56 /* dllmain.m */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - 089C1665FE841158C02AAC07 /* Resources */, - ); - indentWidth = 4; - name = PDFKit; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - FE4302CD11E264C000EBDD56 /* AppKit.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - FE06B4541430E9600071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE06B4551430E9600071169B /* darwin-i386.xcconfig */, - FE06B4561430E9600071169B /* darwin-ppc.xcconfig */, - FE06B4571430E9600071169B /* darwin-x86_64.xcconfig */, - FE06B4581430E9600071169B /* darwin.xcconfig */, - FE06B4591430E9600071169B /* freebsd-i386.xcconfig */, - FE06B45A1430E9600071169B /* freebsd.xcconfig */, - FE06B45B1430E9600071169B /* linux-arm.xcconfig */, - FE06B45C1430E9600071169B /* linux-i386.xcconfig */, - FE06B45D1430E9600071169B /* linux-ppc.xcconfig */, - FE06B45E1430E9600071169B /* linux.xcconfig */, - FE06B45F1430E9600071169B /* platform.xcconfig */, - FE06B4601430E9600071169B /* solaris-sparc.xcconfig */, - FE06B4611430E9600071169B /* solaris.xcconfig */, - FE06B4621430E9600071169B /* windows-i386.xcconfig */, - FE06B4631430E9600071169B /* windows.xcconfig */, - FE7087151431186A00B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE386E6D1526930D007CC8C7 /* Products */ = { - isa = PBXGroup; - children = ( - FE386EBA15269311007CC8C7 /* AppKit.framework */, - FE386EBC15269311007CC8C7 /* AppKit.framework */, - FE386EBE15269311007CC8C7 /* AppKit.framework */, - FE386EC215269311007CC8C7 /* AppKit.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE43024F11E259EE00EBDD56 /* PDFKit.h in Headers */, - FE4302B511E2637A00EBDD56 /* PDFDocument.h in Headers */, - FE4302B711E2637A00EBDD56 /* PDFSelection.h in Headers */, - FE4302B911E2637A00EBDD56 /* PDFView.h in Headers */, - FE1FBF9E11E769D300A9A87A /* PDFPage.h in Headers */, - FEAD497311E90D0500063B34 /* PDFKitExport.h in Headers */, - FE71DE3011F87E8200E6F801 /* PDFDocumentView.h in Headers */, - FE71DEBD11F89E2A00E6F801 /* PDFPageView.h in Headers */, - FE2758F91233FE7A00BD6643 /* PDFSelectedRange.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* PDFKit-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "PDFKit-Windows-i386" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - FE386ECD15269320007CC8C7 /* PBXTargetDependency */, - ); - name = "PDFKit-Windows-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = PDFKit; - productReference = 8DC2EF5B0486A6940098B216 /* PDFKit.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "PDFKit" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* PDFKit */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE386E6D1526930D007CC8C7 /* Products */; - ProjectRef = FE386E6C1526930D007CC8C7 /* AppKit.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* PDFKit-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE386EBA15269311007CC8C7 /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = FE386EB915269311007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386EBC15269311007CC8C7 /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = FE386EBB15269311007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386EBE15269311007CC8C7 /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = FE386EBD15269311007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE386EC215269311007CC8C7 /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = FE386EC115269311007CC8C7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4302B611E2637A00EBDD56 /* PDFDocument.m in Sources */, - FE4302B811E2637A00EBDD56 /* PDFSelection.m in Sources */, - FE4302BA11E2637A00EBDD56 /* PDFView.m in Sources */, - FE4302C511E2648300EBDD56 /* dllmain.m in Sources */, - FE1FBF9F11E769D300A9A87A /* PDFPage.m in Sources */, - FE71DB3111F748CE00E6F801 /* PDFKit_Framework.m in Sources */, - FE71DE3111F87E8200E6F801 /* PDFDocumentView.m in Sources */, - FE71DEBE11F89E2A00E6F801 /* PDFPageView.m in Sources */, - FE2758FA1233FE7A00BD6643 /* PDFSelectedRange.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE386ECD15269320007CC8C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "AppKit-Windows-i386"; - targetProxy = FE386ECC15269320007CC8C7 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7087151431186A00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-D__LITTLE_ENDIAN__", - "-DPDFKIT_INSIDE_BUILD=1", - ); - PRODUCT_NAME = PDFKit; - }; - name = Release; - }; - 1DEB91B308733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "PDFKit-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "PDFKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/PDFKit/PDFKit.xcodeproj/xcshareddata/xcschemes/PDFKit-Windows-i386.xcscheme b/PDFKit/PDFKit.xcodeproj/xcshareddata/xcschemes/PDFKit-Windows-i386.xcscheme deleted file mode 100644 index 8a3a24d2..00000000 --- a/PDFKit/PDFKit.xcodeproj/xcshareddata/xcschemes/PDFKit-Windows-i386.xcscheme +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PDFKit/PDFKitExport.h b/PDFKit/PDFKitExport.h deleted file mode 100644 index 1dbea21b..00000000 --- a/PDFKit/PDFKitExport.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(PDFKIT_INSIDE_BUILD) -#define PDFKIT_EXPORT extern "C" __declspec(dllexport) -#else -#define PDFKIT_EXPORT extern "C" __declspec(dllimport) -#endif -#else -#define PDFKIT_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(PDFKIT_INSIDE_BUILD) -#define PDFKIT_EXPORT __declspec(dllexport) extern -#else -#define PDFKIT_EXPORT __declspec(dllimport) extern -#endif -#else -#define PDFKIT_EXPORT extern -#endif - -#endif diff --git a/PDFKit/PDFKit_Framework.m b/PDFKit/PDFKit_Framework.m deleted file mode 100644 index a744ccc4..00000000 --- a/PDFKit/PDFKit_Framework.m +++ /dev/null @@ -1,12 +0,0 @@ -// -// BGHUDAppKit_Framework.m -// BGHUDAppKit -// -// Created by Christopher Lloyd on 7/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -__declspec(dllexport) void PDFKit_Framework(); - -__declspec(dllexport) void PDFKit_Framework() { -} diff --git a/PDFKit/PDFPage.h b/PDFKit/PDFPage.h deleted file mode 100644 index f69d8f98..00000000 --- a/PDFKit/PDFPage.h +++ /dev/null @@ -1,47 +0,0 @@ -#import -#import -#import - -@class PDFDocument; - -typedef enum { - kPDFDisplayBoxMediaBox = kCGPDFMediaBox, - kPDFDisplayBoxCropBox = kCGPDFCropBox, - kPDFDisplayBoxBleedBox = kCGPDFBleedBox, - kPDFDisplayBoxTrimBox = kCGPDFTrimBox, - kPDFDisplayBoxArtBox = kCGPDFArtBox, -} PDFDisplayBox; - -@interface PDFPage : NSObject { - PDFDocument *_document; - CGPDFPageRef _pageRef; - NSString *_label; - - BOOL _hasBeenDistilled; - NSInteger _capacityOfCharacters; - NSInteger _numberOfCharacters; - unichar *_characters; - NSRect *_characterRects; -} - -- (PDFDocument *) document; -- (CGPDFPageRef) pageRef; -- (NSString *) label; - -- (NSUInteger) numberOfCharacters; -- (NSString *) string; - -- (NSRect) boundsForBox: (PDFDisplayBox) box; - -- (void) transformContextForBox: (PDFDisplayBox) box; - -- (void) drawWithBox: (PDFDisplayBox) box; - -@end - -@interface PDFPage (private) -- (void) _getRects: (NSRect *) rects range: (NSRange) range; -- (void) setPageRef: (CGPDFPageRef) pageRef; -- (void) setDocument: (PDFDocument *) document; -- (void) setLabel: (NSString *) value; -@end diff --git a/PDFKit/PDFPage.m b/PDFKit/PDFPage.m deleted file mode 100644 index ec46b731..00000000 --- a/PDFKit/PDFPage.m +++ /dev/null @@ -1,139 +0,0 @@ -#import -#import -#import -#import - -@implementation PDFPage - -/* init is the designated initializer for this class */ -- init { - _capacityOfCharacters = 128; - _characters = NSZoneMalloc(NULL, sizeof(unichar) * _capacityOfCharacters); - _characterRects = - NSZoneMalloc(NULL, sizeof(NSRect) * _capacityOfCharacters); - - return self; -} - -- (void) dealloc { - CGPDFPageRelease(_pageRef); - [_label release]; - NSZoneFree(NULL, _characters); - NSZoneFree(NULL, _characterRects); - [super dealloc]; -} - -- (void) setPageRef: (CGPDFPageRef) pageRef { - pageRef = CGPDFPageRetain(pageRef); - CGPDFPageRelease(_pageRef); - _pageRef = pageRef; - _hasBeenDistilled = NO; -} - -- (void) setDocument: (PDFDocument *) document { - _document = document; -} - -- (void) setLabel: (NSString *) value { - value = [value copy]; - [_label release]; - _label = value; -} - -- (PDFDocument *) document { - return _document; -} - -- (CGPDFPageRef) pageRef { - return _pageRef; -} - -- (NSString *) label { - return _label; -} - -- (void) distiller: (O2Context_distill *) distiller - unicode: (unichar *) unicode - rects: (O2Rect *) rects - count: (NSUInteger) count -{ - if (_capacityOfCharacters < _numberOfCharacters + count) { - while (_capacityOfCharacters < _numberOfCharacters + count) - _capacityOfCharacters *= 2; - - _characters = NSZoneRealloc(NULL, _characters, - _capacityOfCharacters * sizeof(unichar)); - _characterRects = NSZoneRealloc(NULL, _characterRects, - _capacityOfCharacters * sizeof(NSRect)); - } - - NSUInteger i; - - for (i = 0; i < count; i++) { - _characters[_numberOfCharacters] = unicode[i]; - _characterRects[_numberOfCharacters] = - NSMakeRect(rects[i].origin.x, rects[i].origin.y, - rects[i].size.width, rects[i].size.height); - _numberOfCharacters++; - } -} - -- (void) distillIfNeeded { - if (!_hasBeenDistilled) { - _hasBeenDistilled = YES; - - _numberOfCharacters = 0; - - O2Context_distill *distiller = [[O2Context_distill alloc] init]; - - [(O2Context_distill *) distiller setDelegate: self]; - - CGContextDrawPDFPage(distiller, _pageRef); - - CGContextRelease(distiller); - } -} - -- (NSUInteger) numberOfCharacters { - [self distillIfNeeded]; - - return _numberOfCharacters; -} - -- (NSString *) string { - [self distillIfNeeded]; - - return [[[NSString alloc] initWithCharactersNoCopy: _characters - length: _numberOfCharacters - freeWhenDone: NO] autorelease]; -} - -- (void) _getRects: (NSRect *) rects range: (NSRange) range { - NSInteger i; - - for (i = 0; i < range.length; i++) - rects[i] = _characterRects[range.location + i]; -} - -- (NSRect) boundsForBox: (PDFDisplayBox) box { - return CGPDFPageGetBoxRect(_pageRef, box); -} - -- (void) transformContextForBox: (PDFDisplayBox) box { -#if 0 - CGContextRef context=[[NSGraphicsContext currentContext] graphicsPort]; - - CGAffineTransform xform=CGPDFPageGetDrawingTransform(_pageRef,box,0,TRUE); - - CGContextConcatCTM(context,xform); -#endif -} - -- (void) drawWithBox: (PDFDisplayBox) box { - CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; - - [self transformContextForBox: box]; - CGContextDrawPDFPage(context, _pageRef); -} - -@end diff --git a/PDFKit/PDFPageView.h b/PDFKit/PDFPageView.h deleted file mode 100644 index bf90dd55..00000000 --- a/PDFKit/PDFPageView.h +++ /dev/null @@ -1,21 +0,0 @@ -#import -#import - -@class PDFPage, PDFSelection; - -@interface PDFPageView : NSView { - PDFPage *_page; - PDFSelection *_selection; -} - -+ (float) leftMargin; -+ (float) rightMargin; -+ (float) topMargin; -+ (float) bottomMargin; - -- (PDFPage *) page; -- (void) setPage: (PDFPage *) page; - -- (void) setCurrentSelection: (PDFSelection *) selection; - -@end diff --git a/PDFKit/PDFPageView.m b/PDFKit/PDFPageView.m deleted file mode 100644 index 47e4b903..00000000 --- a/PDFKit/PDFPageView.m +++ /dev/null @@ -1,71 +0,0 @@ -#import "PDFPageView.h" -#import -#import -#import -#import - -@implementation PDFPageView - -+ (float) leftMargin { - return 4; -} - -+ (float) rightMargin { - return 4; -} - -+ (float) topMargin { - return 1; -} - -+ (float) bottomMargin { - return 4; -} - -- (PDFPage *) page { - return _page; -} - -- (void) setPage: (PDFPage *) page { - page = [page retain]; - [_page release]; - _page = page; -} - -- (void) setCurrentSelection: (PDFSelection *) selection { - selection = [selection retain]; - [_selection release]; - _selection = selection; - [self setNeedsDisplay: YES]; -} - -- (void) drawRect: (NSRect) rect { - CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; - CGPDFPageRef page = [_page pageRef]; - NSRect bounds = [self bounds]; - - [[NSColor darkGrayColor] set]; - NSRectFill(bounds); - - bounds.origin.x += [[self class] leftMargin]; - bounds.size.width -= [[self class] leftMargin] + [isa rightMargin]; - bounds.size.height -= [[self class] topMargin] + [isa bottomMargin]; - bounds.origin.y += [[self class] bottomMargin]; - [[NSColor whiteColor] set]; - NSRectFill(bounds); - - CGContextSaveGState(context); - - CGAffineTransform xform = - CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, bounds, 0, NO); - - CGContextConcatCTM(context, xform); - - [_selection drawForPage: _page withBox: kCGPDFMediaBox active: YES]; - - CGContextDrawPDFPage(context, page); - - CGContextRestoreGState(context); -} - -@end diff --git a/PDFKit/PDFSelectedRange.h b/PDFKit/PDFSelectedRange.h deleted file mode 100644 index 60e59413..00000000 --- a/PDFKit/PDFSelectedRange.h +++ /dev/null @@ -1,16 +0,0 @@ -#import -#import - -@class PDFPage; - -@interface PDFSelectedRange : NSObject { - PDFPage *_page; - NSRange _range; -} - -- initWithPage: (PDFPage *) page range: (NSRange) range; - -- (PDFPage *) page; -- (NSRange) range; - -@end diff --git a/PDFKit/PDFSelectedRange.m b/PDFKit/PDFSelectedRange.m deleted file mode 100644 index b7b9e139..00000000 --- a/PDFKit/PDFSelectedRange.m +++ /dev/null @@ -1,28 +0,0 @@ -#import "PDFSelectedRange.h" - -@implementation PDFSelectedRange - -- initWithPage: (PDFPage *) page range: (NSRange) range { - _page = [page retain]; - _range = range; - return self; -} - -- (void) dealloc { - [_page release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - return [self retain]; -} - -- (PDFPage *) page { - return _page; -} - -- (NSRange) range { - return _range; -} - -@end diff --git a/PDFKit/PDFSelection.h b/PDFKit/PDFSelection.h deleted file mode 100644 index 28d7a704..00000000 --- a/PDFKit/PDFSelection.h +++ /dev/null @@ -1,43 +0,0 @@ -#import -#import -#import - -@class PDFDocument, NSColor, NSArray, NSMutableArray, NSAttributedString, - PDFPage; - -@interface PDFSelection : NSObject { - PDFDocument *_document; - NSColor *_color; - NSArray *_ranges; -} - -- initWithDocument: (PDFDocument *) document; - -- (NSColor *) color; -- (void) setColor: (NSColor *) value; - -- (NSArray *) pages; -- (NSString *) string; -- (NSAttributedString *) attributedString; - -- (void) addSelection: (PDFSelection *) selection; -- (void) addSelections: (NSArray *) selections; - -- (NSArray *) selectionsByLine; - -- (void) extendSelectionAtEnd: (NSInteger) delta; -- (void) extendSelectionAtStart: (NSInteger) delta; - -- (NSRect) boundsForPage: (PDFPage *) page; - -- (void) drawForPage: (PDFPage *) page active: (BOOL) active; -- (void) drawForPage: (PDFPage *) page - withBox: (PDFDisplayBox) box - active: (BOOL) active; - -@end - -@interface PDFSelection (private) -- (NSArray *) _selectedRanges; -- (void) _setSelectedRanges: (NSArray *) ranges; -@end diff --git a/PDFKit/PDFSelection.m b/PDFKit/PDFSelection.m deleted file mode 100644 index a54b3509..00000000 --- a/PDFKit/PDFSelection.m +++ /dev/null @@ -1,190 +0,0 @@ -#import "PDFSelectedRange.h" -#import -#import -#import -#import -#import - -@implementation PDFSelection - -- initWithDocument: (PDFDocument *) document { - _document = [document retain]; - _color = nil; - _ranges = nil; - return self; -} - -- (void) dealloc { - [_document release]; - [_color release]; - [_ranges release]; - [super dealloc]; -} - -- copyWithZone: (NSZone *) zone { - PDFSelection *result = NSCopyObject(self, 0, zone); - - result->_document = [_document retain]; - result->_color = [_color copy]; - result->_ranges = [_ranges copy]; - - return result; -} - -- (NSColor *) color { - return _color; -} - -- (void) setColor: (NSColor *) value { - value = [value copy]; - [_color release]; - _color = value; -} - -- (NSArray *) _selectedRanges { - return _ranges; -} - -- (void) _setSelectedRanges: (NSArray *) ranges { - ranges = [ranges copy]; - [_ranges release]; - _ranges = ranges; -} - -- (NSArray *) pages { - NSMutableArray *result = [NSMutableArray array]; - NSInteger i, count = [_ranges count]; - - for (i = 0; i < count; i++) { - PDFSelectedRange *selectedRange = [_ranges objectAtIndex: i]; - PDFPage *page = [selectedRange page]; - - if (![result containsObject: page]) - [result addObject: page]; - } - - return result; -} - -- (NSString *) string { - NSMutableString *result = [NSMutableString string]; - NSInteger i, count = [_ranges count]; - - for (i = 0; i < count; i++) { - PDFSelectedRange *selectedRange = [_ranges objectAtIndex: i]; - PDFPage *page = [selectedRange page]; - NSString *string = [page string]; - NSRange range = [selectedRange range]; - - [result appendString: [string substringWithRange: range]]; - } - - return result; -} - -- (NSAttributedString *) attributedString { - return [[[NSAttributedString alloc] initWithString: [self string]] - autorelease]; -} - -- (void) addSelection: (PDFSelection *) selection { - NSMutableArray *result = [NSMutableArray array]; - - [result addObjectsFromArray: _ranges]; - [result addObjectsFromArray: [selection _selectedRanges]]; - [self _setSelectedRanges: result]; -} - -- (void) addSelections: (NSArray *) selections { - for (PDFSelection *selection in selections) - [self addSelection: selection]; -} - -- (NSArray *) selectionsByLine { -} - -- (void) extendSelectionAtEnd: (NSInteger) delta { - // FIXME: This method should extend through page boundries, and what do - // negative deltas mean? - PDFSelectedRange *lastRange = [_ranges lastObject]; - PDFPage *page = [lastRange page]; - NSRange range = [lastRange range]; - - if (delta > 0) { - NSInteger location = NSMaxRange(range); - NSInteger length = delta; - - if (location + length > [page numberOfCharacters]) - length = [page numberOfCharacters] - location; - - if (length > 0) { - PDFSelectedRange *extendRange = [[[PDFSelectedRange alloc] - initWithPage: page - range: NSMakeRange(location, length)] autorelease]; - NSMutableArray *changes = [[_ranges mutableCopy] autorelease]; - [changes addObject: extendRange]; - [self _setSelectedRanges: changes]; - } - } -} - -- (void) extendSelectionAtStart: (NSInteger) delta { - // FIXME: This method should extend through page boundries, and what do - // negative deltas mean? - PDFSelectedRange *firstRange = [_ranges objectAtIndex: 0]; - PDFPage *page = [firstRange page]; - NSRange range = [firstRange range]; - - if (delta > 0) { - NSInteger location = range.location; - location -= delta; - if (location < 0) - location = 0; - NSInteger length = range.location - location; - - PDFSelectedRange *extendRange = [[[PDFSelectedRange alloc] - initWithPage: page - range: NSMakeRange(location, length)] autorelease]; - NSMutableArray *changes = [[_ranges mutableCopy] autorelease]; - [changes insertObject: extendRange atIndex: 0]; - [self _setSelectedRanges: changes]; - } -} - -- (NSRect) boundsForPage: (PDFPage *) page { -} - -- (void) drawForPage: (PDFPage *) page active: (BOOL) active { - [self drawForPage: page withBox: kPDFDisplayBoxCropBox active: active]; -} - -- (void) drawForPage: (PDFPage *) page - withBox: (PDFDisplayBox) box - active: (BOOL) active -{ - if (_color != nil) - [_color set]; - else if (active) - [[NSColor selectedTextBackgroundColor] set]; - else - [[NSColor secondarySelectedControlColor] set]; - - NSInteger i, count = [_ranges count]; - - for (i = 0; i < count; i++) { - PDFSelectedRange *selected = [_ranges objectAtIndex: i]; - - if ([selected page] == page) { - NSRange range = [selected range]; - NSRect *rects = malloc(range.length * sizeof(NSRect)); - - [page _getRects: rects range: range]; - - NSRectFillList(rects, range.length); - - free(rects); - } - } -} - -@end diff --git a/PDFKit/PDFView.h b/PDFKit/PDFView.h deleted file mode 100644 index b168eef6..00000000 --- a/PDFKit/PDFView.h +++ /dev/null @@ -1,34 +0,0 @@ -#import - -@class PDFSelection, PDFDocument, NSScrollView, PDFPage; - -typedef enum { - kPDFDisplaySinglePage, - kPDFDisplaySinglePageContinuous, - kPDFDisplayTwoUp, - kPDFDisplayTwoUpContinuous, -} PDFDisplayMode; - -@interface PDFView : NSView { - PDFDocument *_document; - PDFDisplayMode _displayMode; - BOOL _pageBreaks; - float _scaleFactor; - BOOL _autoScale; - PDFSelection *_currentSelection; - NSScrollView *_scrollView; - id _documentView; -} - -- (PDFDocument *) document; -- (void) setDocument: (PDFDocument *) document; - -- (void) layoutDocumentView; - -- (PDFSelection *) currentSelection; -- (void) setCurrentSelection: (PDFSelection *) selection; -- (void) scrollSelectionToVisible: sender; - -- (void) goToPage: (PDFPage *) page; - -@end diff --git a/PDFKit/PDFView.m b/PDFKit/PDFView.m deleted file mode 100644 index 262c90c1..00000000 --- a/PDFKit/PDFView.m +++ /dev/null @@ -1,97 +0,0 @@ -#import "PDFDocumentView.h" -#import -#import -#import -#import -#import - -@implementation PDFView - -- initWithCoder: (NSCoder *) coder { - [super initWithCoder: coder]; - - if ([coder allowsKeyedCoding]) { - _displayMode = [coder decodeIntegerForKey: @"DisplayMode"]; - _pageBreaks = [coder decodeBoolForKey: @"PageBreaks"]; - _scaleFactor = [coder decodeFloatForKey: @"ScaleFactor"]; - _autoScale = [coder decodeBoolForKey: @"AutoScale"]; - } else - [NSException raise: NSInvalidArgumentException - format: @"-[%@ %s] only implements keyed coding", - [self class], _cmd]; - - _scrollView = [[NSScrollView alloc] initWithFrame: [self bounds]]; - [_scrollView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; - [_scrollView setAutohidesScrollers: YES]; - [_scrollView setHasVerticalScroller: YES]; - [_scrollView setDrawsBackground: YES]; - [_scrollView setBackgroundColor: [NSColor lightGrayColor]]; - [_scrollView setBorderType: NSNoBorder]; - - NSRect documentRect; - documentRect.size = [_scrollView contentSize]; - _documentView = [[PDFDocumentView alloc] initWithFrame: documentRect]; - [_documentView - setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable]; - [_scrollView setDocumentView: _documentView]; - - [self addSubview: _scrollView]; - - return self; -} - -- (PDFDocument *) document { - return _document; -} - -- (void) setDocument: (PDFDocument *) document { - document = [document retain]; - [_document release]; - _document = document; - [_documentView setDocument: document]; - [self layoutDocumentView]; - [self setNeedsDisplay: YES]; -} - -- (void) layoutDocumentView { - [_documentView layoutDocumentView]; -} - -- (PDFSelection *) currentSelection { - return _currentSelection; -} - -- (void) setCurrentSelection: (PDFSelection *) selection { - selection = [selection retain]; - [_currentSelection release]; - _currentSelection = selection; - - [_documentView setCurrentSelection: _currentSelection]; -} - -- (void) pageDown: sender { - [_documentView pageDown: sender]; -} - -- (void) pageUp: sender { - [_documentView pageUp: sender]; -} - -- (void) scrollSelectionToVisible: sender { - NSUnimplementedMethod(); -} - -- (void) goToPage: (PDFPage *) page { - NSUInteger pageIndex = [_document indexForPage: page]; - - [_documentView goToPageAtIndex: pageIndex]; -} - -- (BOOL) isOpaque { - return YES; -} - -- (void) drawRect: (NSRect) rect { -} - -@end diff --git a/QuartzCore/QuartzCore.xcodeproj/project.pbxproj b/QuartzCore/QuartzCore.xcodeproj/project.pbxproj deleted file mode 100644 index 09a7791d..00000000 --- a/QuartzCore/QuartzCore.xcodeproj/project.pbxproj +++ /dev/null @@ -1,630 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - CFF0A1951AF4771300160EAA /* darwin-i386-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A18A1AF4771300160EAA /* darwin-i386-framework.xcconfig */; }; - CFF0A1961AF4771300160EAA /* darwin-ppc-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A18B1AF4771300160EAA /* darwin-ppc-framework.xcconfig */; }; - CFF0A1971AF4771300160EAA /* darwin-x86_64-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A18C1AF4771300160EAA /* darwin-x86_64-framework.xcconfig */; }; - CFF0A1981AF4771300160EAA /* freebsd-i386-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A18D1AF4771300160EAA /* freebsd-i386-framework.xcconfig */; }; - CFF0A1991AF4771300160EAA /* linux-arm-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A18E1AF4771300160EAA /* linux-arm-framework.xcconfig */; }; - CFF0A19A1AF4771300160EAA /* linux-i386-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A18F1AF4771300160EAA /* linux-i386-framework.xcconfig */; }; - CFF0A19B1AF4771300160EAA /* linux-ppc-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A1901AF4771300160EAA /* linux-ppc-framework.xcconfig */; }; - CFF0A19C1AF4771300160EAA /* platform-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A1911AF4771300160EAA /* platform-framework.xcconfig */; }; - CFF0A19D1AF4771300160EAA /* solaris-sparc-framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A1921AF4771300160EAA /* solaris-sparc-framework.xcconfig */; }; - CFF0A19E1AF4771300160EAA /* windows-i386-bundle.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A1931AF4771300160EAA /* windows-i386-bundle.xcconfig */; }; - CFF0A19F1AF4771300160EAA /* windows-i386-clang.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = CFF0A1941AF4771300160EAA /* windows-i386-clang.xcconfig */; }; - FE0FB9AE10F9814400EBA597 /* CoreImage.h in Headers */ = {isa = PBXBuildFile; fileRef = FE255FEF10F10397005CE23E /* CoreImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE0FB9C410F9815300EBA597 /* CIColor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE0FB9B010F9815300EBA597 /* CIColor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE0FB9C510F9815300EBA597 /* CIContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE0FB9B210F9815300EBA597 /* CIContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE0FB9C610F9815300EBA597 /* CIFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE0FB9B410F9815300EBA597 /* CIFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE0FB9C710F9815300EBA597 /* CIImage.h in Headers */ = {isa = PBXBuildFile; fileRef = FE0FB9B610F9815300EBA597 /* CIImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE0FB9C810F9815300EBA597 /* CIVector.h in Headers */ = {isa = PBXBuildFile; fileRef = FE0FB9B810F9815300EBA597 /* CIVector.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE41B88B12BEA2EE00ED6C10 /* CATransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = FE41B88812BEA2EE00ED6C10 /* CATransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE4301AE11E255A500EBDD56 /* CoreVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4301AB11E255A500EBDD56 /* CoreVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE7AA0EF10F97A6700FEDD9C /* CAWindowOpenGLContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FE7AA0EC10F97A6700FEDD9C /* CAWindowOpenGLContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEA3F2151133089500690AA2 /* CIAffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA3F2121133089500690AA2 /* CIAffineTransform.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEAEF7FB11E3AAD000CA0912 /* CAAnimationGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF7E011E3AAD000CA0912 /* CAAnimationGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEF7FD11E3AAD000CA0912 /* CABasicAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF7E211E3AAD000CA0912 /* CABasicAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEF7FF11E3AAD000CA0912 /* CAPropertyAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF7E411E3AAD000CA0912 /* CAPropertyAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEF80111E3AAD000CA0912 /* CATransition.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF7E611E3AAD000CA0912 /* CATransition.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEF82511E3AB6A00CA0912 /* CoreAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF82211E3AB6A00CA0912 /* CoreAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEF86011E3AFEF00CA0912 /* CAMediaTiming.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF85D11E3AFEF00CA0912 /* CAMediaTiming.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEAEF8C711E3B3FF00CA0912 /* CAMediaTimingFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = FEAEF8C111E3B3FF00CA0912 /* CAMediaTimingFunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECA819810EBB231003472F1 /* CAAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF88C2B100CC45B00B15FD7 /* CAAnimation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECA819910EBB231003472F1 /* CALayer.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF88C2C100CC45B00B15FD7 /* CALayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECA819A10EBB231003472F1 /* CATransform3D.h in Headers */ = {isa = PBXBuildFile; fileRef = FEF88C2D100CC45B00B15FD7 /* CATransform3D.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECA819B10EBB231003472F1 /* QuartzCore.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4477BF1039EECB00ECD6A6 /* QuartzCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECA819C10EBB231003472F1 /* CARenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = FED38BEA10E12BAB00A2A651 /* CARenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FECA819D10EBB231003472F1 /* CABase.h in Headers */ = {isa = PBXBuildFile; fileRef = FED38C8D10E13FCC00A2A651 /* CABase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDEAA6C12C2608F008E5A59 /* CAValueFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDEAA6612C2608F008E5A59 /* CAValueFunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDEABC312C98F59008E5A59 /* CALayerContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDEABC012C98F59008E5A59 /* CALayerContext.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FEDEB74212D2378C008E5A59 /* CAAction.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDEB73F12D2378C008E5A59 /* CAAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 0DCD878415B0366D006F9320 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43019D11E2556B00EBDD56 /* CoreVideo.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 0DCD877115B03618006F9320; - remoteInfo = "CoreVideo-Linux-i386"; - }; - FE2A2CE412D2C7410028C06D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE2A2CDE12D2C7410028C06D /* OpenGL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "OpenGL-Windows-i386"; - }; - FE2A2CED12D2C74E0028C06D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE2A2CDE12D2C7410028C06D /* OpenGL.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "OpenGL-Windows-i386"; - }; - FE4301A111E2556B00EBDD56 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43019D11E2556B00EBDD56 /* CoreVideo.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreVideo-Windows-i386"; - }; - FE4301A311E2557400EBDD56 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43019D11E2556B00EBDD56 /* CoreVideo.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CoreVideo-Windows-i386"; - }; - FECA81AD10EBB2AC003472F1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEF88C1D100CC41C00B15FD7 /* CoreGraphics.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = "CoreGraphics-Windows-i386"; - }; - FEF88C23100CC41C00B15FD7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FEF88C1D100CC41C00B15FD7 /* CoreGraphics.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "CoreGraphics-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - CFF0A18A1AF4771300160EAA /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - CFF0A18B1AF4771300160EAA /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - CFF0A18C1AF4771300160EAA /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - CFF0A18D1AF4771300160EAA /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - CFF0A18E1AF4771300160EAA /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - CFF0A18F1AF4771300160EAA /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - CFF0A1901AF4771300160EAA /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - CFF0A1911AF4771300160EAA /* platform-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "platform-framework.xcconfig"; sourceTree = ""; }; - CFF0A1921AF4771300160EAA /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - CFF0A1931AF4771300160EAA /* windows-i386-bundle.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-bundle.xcconfig"; sourceTree = ""; }; - CFF0A1941AF4771300160EAA /* windows-i386-clang.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-clang.xcconfig"; sourceTree = ""; }; - FE06B4F31430E9A30071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B4F41430E9A30071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B4F51430E9A30071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B4F61430E9A30071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B4F71430E9A30071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B4F81430E9A30071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B4F91430E9A30071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B4FA1430E9A30071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B4FB1430E9A30071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B4FC1430E9A30071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B4FD1430E9A30071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B4FE1430E9A30071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B4FF1430E9A30071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B5001430E9A30071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B5011430E9A30071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE0FB9B010F9815300EBA597 /* CIColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIColor.h; sourceTree = ""; }; - FE0FB9B110F9815300EBA597 /* CIColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIColor.m; sourceTree = ""; }; - FE0FB9B210F9815300EBA597 /* CIContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIContext.h; sourceTree = ""; }; - FE0FB9B310F9815300EBA597 /* CIContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIContext.m; sourceTree = ""; }; - FE0FB9B410F9815300EBA597 /* CIFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIFilter.h; sourceTree = ""; }; - FE0FB9B510F9815300EBA597 /* CIFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIFilter.m; sourceTree = ""; }; - FE0FB9B610F9815300EBA597 /* CIImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIImage.h; sourceTree = ""; }; - FE0FB9B710F9815300EBA597 /* CIImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIImage.m; sourceTree = ""; }; - FE0FB9B810F9815300EBA597 /* CIVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIVector.h; sourceTree = ""; }; - FE0FB9B910F9815300EBA597 /* CIVector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIVector.m; sourceTree = ""; }; - FE255FEF10F10397005CE23E /* CoreImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreImage.h; sourceTree = ""; }; - FE2A2CDE12D2C7410028C06D /* OpenGL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OpenGL.xcodeproj; path = ../OpenGL/OpenGL.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE41B88812BEA2EE00ED6C10 /* CATransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATransaction.h; sourceTree = ""; }; - FE43019D11E2556B00EBDD56 /* CoreVideo.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreVideo.xcodeproj; path = ../CoreVideo/CoreVideo.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE4301AB11E255A500EBDD56 /* CoreVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreVideo.h; sourceTree = ""; }; - FE4477BF1039EECB00ECD6A6 /* QuartzCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuartzCore.h; sourceTree = ""; }; - FE7087621431189F00B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE7AA0EB10F97A2A00FEDD9C /* CAWindowOpenGLContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAWindowOpenGLContext.m; sourceTree = ""; }; - FE7AA0EC10F97A6700FEDD9C /* CAWindowOpenGLContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAWindowOpenGLContext.h; sourceTree = ""; }; - FEA3F2121133089500690AA2 /* CIAffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CIAffineTransform.h; sourceTree = ""; }; - FEAEF7E011E3AAD000CA0912 /* CAAnimationGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAnimationGroup.h; sourceTree = ""; }; - FEAEF7E111E3AAD000CA0912 /* CAAnimationGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAAnimationGroup.m; sourceTree = ""; }; - FEAEF7E211E3AAD000CA0912 /* CABasicAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABasicAnimation.h; sourceTree = ""; }; - FEAEF7E311E3AAD000CA0912 /* CABasicAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CABasicAnimation.m; sourceTree = ""; }; - FEAEF7E411E3AAD000CA0912 /* CAPropertyAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAnimation.h; sourceTree = ""; }; - FEAEF7E511E3AAD000CA0912 /* CAPropertyAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAPropertyAnimation.m; sourceTree = ""; }; - FEAEF7E611E3AAD000CA0912 /* CATransition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATransition.h; sourceTree = ""; }; - FEAEF7E711E3AAD000CA0912 /* CATransition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CATransition.m; sourceTree = ""; }; - FEAEF7E811E3AAD000CA0912 /* CIAffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIAffineTransform.m; sourceTree = ""; }; - FEAEF82211E3AB6A00CA0912 /* CoreAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreAnimation.h; sourceTree = ""; }; - FEAEF85D11E3AFEF00CA0912 /* CAMediaTiming.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMediaTiming.h; sourceTree = ""; }; - FEAEF8C111E3B3FF00CA0912 /* CAMediaTimingFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMediaTimingFunction.h; sourceTree = ""; }; - FEAEF8C211E3B3FF00CA0912 /* CAMediaTimingFunction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAMediaTimingFunction.m; sourceTree = ""; }; - FEC3ED7710E1270C00511C18 /* CARenderer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CARenderer.m; sourceTree = ""; }; - FECA81A110EBB231003472F1 /* QuartzCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = QuartzCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FED38BEA10E12BAB00A2A651 /* CARenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARenderer.h; sourceTree = ""; }; - FED38C8D10E13FCC00A2A651 /* CABase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABase.h; sourceTree = ""; }; - FEDEAA6612C2608F008E5A59 /* CAValueFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAValueFunction.h; sourceTree = ""; }; - FEDEAA6712C2608F008E5A59 /* CAValueFunction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAValueFunction.m; sourceTree = ""; }; - FEDEABC012C98F59008E5A59 /* CALayerContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALayerContext.h; sourceTree = ""; }; - FEDEB73F12D2378C008E5A59 /* CAAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAction.h; sourceTree = ""; }; - FEF88C1D100CC41C00B15FD7 /* CoreGraphics.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CoreGraphics.xcodeproj; path = ../CoreGraphics/CoreGraphics.xcodeproj; sourceTree = SOURCE_ROOT; }; - FEF88C2B100CC45B00B15FD7 /* CAAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAnimation.h; sourceTree = ""; }; - FEF88C2C100CC45B00B15FD7 /* CALayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALayer.h; sourceTree = ""; }; - FEF88C2D100CC45B00B15FD7 /* CATransform3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATransform3D.h; sourceTree = ""; }; - FEF88C35100CC62400B15FD7 /* CAAnimation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAAnimation.m; sourceTree = ""; }; - FEF88C36100CC62400B15FD7 /* CALayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CALayer.m; sourceTree = ""; }; - FEF88C37100CC62400B15FD7 /* CATransform3D.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CATransform3D.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - FECA81A110EBB231003472F1 /* QuartzCore.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* QuartzCore */ = { - isa = PBXGroup; - children = ( - FE06B4F21430E9A30071169B /* xcconfig */, - FE2A2CDE12D2C7410028C06D /* OpenGL.xcodeproj */, - FEDEB73F12D2378C008E5A59 /* CAAction.h */, - FEDEABC012C98F59008E5A59 /* CALayerContext.h */, - FEDEAA6612C2608F008E5A59 /* CAValueFunction.h */, - FEDEAA6712C2608F008E5A59 /* CAValueFunction.m */, - FE41B88812BEA2EE00ED6C10 /* CATransaction.h */, - FEAEF8C111E3B3FF00CA0912 /* CAMediaTimingFunction.h */, - FEAEF8C211E3B3FF00CA0912 /* CAMediaTimingFunction.m */, - FEF88C2B100CC45B00B15FD7 /* CAAnimation.h */, - FEF88C35100CC62400B15FD7 /* CAAnimation.m */, - FEAEF7E011E3AAD000CA0912 /* CAAnimationGroup.h */, - FEAEF7E111E3AAD000CA0912 /* CAAnimationGroup.m */, - FED38C8D10E13FCC00A2A651 /* CABase.h */, - FEAEF7E211E3AAD000CA0912 /* CABasicAnimation.h */, - FEAEF7E311E3AAD000CA0912 /* CABasicAnimation.m */, - FEF88C2C100CC45B00B15FD7 /* CALayer.h */, - FEF88C36100CC62400B15FD7 /* CALayer.m */, - FEAEF85D11E3AFEF00CA0912 /* CAMediaTiming.h */, - FEAEF7E411E3AAD000CA0912 /* CAPropertyAnimation.h */, - FEAEF7E511E3AAD000CA0912 /* CAPropertyAnimation.m */, - FED38BEA10E12BAB00A2A651 /* CARenderer.h */, - FEC3ED7710E1270C00511C18 /* CARenderer.m */, - FEF88C2D100CC45B00B15FD7 /* CATransform3D.h */, - FEF88C37100CC62400B15FD7 /* CATransform3D.m */, - FEAEF7E611E3AAD000CA0912 /* CATransition.h */, - FEAEF7E711E3AAD000CA0912 /* CATransition.m */, - FE7AA0EC10F97A6700FEDD9C /* CAWindowOpenGLContext.h */, - FE7AA0EB10F97A2A00FEDD9C /* CAWindowOpenGLContext.m */, - FEA3F2121133089500690AA2 /* CIAffineTransform.h */, - FEAEF7E811E3AAD000CA0912 /* CIAffineTransform.m */, - FE0FB9B010F9815300EBA597 /* CIColor.h */, - FE0FB9B110F9815300EBA597 /* CIColor.m */, - FE0FB9B210F9815300EBA597 /* CIContext.h */, - FE0FB9B310F9815300EBA597 /* CIContext.m */, - FE0FB9B410F9815300EBA597 /* CIFilter.h */, - FE0FB9B510F9815300EBA597 /* CIFilter.m */, - FE0FB9B610F9815300EBA597 /* CIImage.h */, - FE0FB9B710F9815300EBA597 /* CIImage.m */, - FE0FB9B810F9815300EBA597 /* CIVector.h */, - FE0FB9B910F9815300EBA597 /* CIVector.m */, - 08FB77AEFE84172EC02AAC07 /* Classes */, - FEAEF82211E3AB6A00CA0912 /* CoreAnimation.h */, - FEF88C1D100CC41C00B15FD7 /* CoreGraphics.xcodeproj */, - FE255FEF10F10397005CE23E /* CoreImage.h */, - FE4301AB11E255A500EBDD56 /* CoreVideo.h */, - FE43019D11E2556B00EBDD56 /* CoreVideo.xcodeproj */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 034768DFFF38A50411DB9C8B /* Products */, - FE4477BF1039EECB00ECD6A6 /* QuartzCore.h */, - 089C1665FE841158C02AAC07 /* Resources */, - ); - indentWidth = 4; - name = QuartzCore; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AEFE84172EC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B4F21430E9A30071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - CFF0A18A1AF4771300160EAA /* darwin-i386-framework.xcconfig */, - CFF0A18B1AF4771300160EAA /* darwin-ppc-framework.xcconfig */, - CFF0A18C1AF4771300160EAA /* darwin-x86_64-framework.xcconfig */, - CFF0A18D1AF4771300160EAA /* freebsd-i386-framework.xcconfig */, - CFF0A18E1AF4771300160EAA /* linux-arm-framework.xcconfig */, - CFF0A18F1AF4771300160EAA /* linux-i386-framework.xcconfig */, - CFF0A1901AF4771300160EAA /* linux-ppc-framework.xcconfig */, - CFF0A1911AF4771300160EAA /* platform-framework.xcconfig */, - CFF0A1921AF4771300160EAA /* solaris-sparc-framework.xcconfig */, - CFF0A1931AF4771300160EAA /* windows-i386-bundle.xcconfig */, - CFF0A1941AF4771300160EAA /* windows-i386-clang.xcconfig */, - FE06B4F31430E9A30071169B /* darwin-i386.xcconfig */, - FE06B4F41430E9A30071169B /* darwin-ppc.xcconfig */, - FE06B4F51430E9A30071169B /* darwin-x86_64.xcconfig */, - FE06B4F61430E9A30071169B /* darwin.xcconfig */, - FE06B4F71430E9A30071169B /* freebsd-i386.xcconfig */, - FE06B4F81430E9A30071169B /* freebsd.xcconfig */, - FE06B4F91430E9A30071169B /* linux-arm.xcconfig */, - FE06B4FA1430E9A30071169B /* linux-i386.xcconfig */, - FE06B4FB1430E9A30071169B /* linux-ppc.xcconfig */, - FE06B4FC1430E9A30071169B /* linux.xcconfig */, - FE06B4FD1430E9A30071169B /* platform.xcconfig */, - FE06B4FE1430E9A30071169B /* solaris-sparc.xcconfig */, - FE06B4FF1430E9A30071169B /* solaris.xcconfig */, - FE06B5001430E9A30071169B /* windows-i386.xcconfig */, - FE06B5011430E9A30071169B /* windows.xcconfig */, - FE7087621431189F00B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; - FE2A2CDF12D2C7410028C06D /* Products */ = { - isa = PBXGroup; - children = ( - FE2A2CE512D2C7410028C06D /* OpenGL.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE43019E11E2556B00EBDD56 /* Products */ = { - isa = PBXGroup; - children = ( - FE4301A211E2556B00EBDD56 /* CoreVideo.framework */, - 0DCD878515B0366D006F9320 /* CoreVideo.framework */, - ); - name = Products; - sourceTree = ""; - }; - FEF88C1E100CC41C00B15FD7 /* Products */ = { - isa = PBXGroup; - children = ( - FEF88C24100CC41C00B15FD7 /* CoreGraphics.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - FECA819710EBB231003472F1 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FECA819810EBB231003472F1 /* CAAnimation.h in Headers */, - FECA819910EBB231003472F1 /* CALayer.h in Headers */, - FECA819A10EBB231003472F1 /* CATransform3D.h in Headers */, - FECA819B10EBB231003472F1 /* QuartzCore.h in Headers */, - FECA819C10EBB231003472F1 /* CARenderer.h in Headers */, - FECA819D10EBB231003472F1 /* CABase.h in Headers */, - FE7AA0EF10F97A6700FEDD9C /* CAWindowOpenGLContext.h in Headers */, - FE0FB9AE10F9814400EBA597 /* CoreImage.h in Headers */, - FE0FB9C410F9815300EBA597 /* CIColor.h in Headers */, - FE0FB9C510F9815300EBA597 /* CIContext.h in Headers */, - FE0FB9C610F9815300EBA597 /* CIFilter.h in Headers */, - FE0FB9C710F9815300EBA597 /* CIImage.h in Headers */, - FE0FB9C810F9815300EBA597 /* CIVector.h in Headers */, - FEA3F2151133089500690AA2 /* CIAffineTransform.h in Headers */, - FE4301AE11E255A500EBDD56 /* CoreVideo.h in Headers */, - FEAEF7FB11E3AAD000CA0912 /* CAAnimationGroup.h in Headers */, - FEAEF7FD11E3AAD000CA0912 /* CABasicAnimation.h in Headers */, - FEAEF7FF11E3AAD000CA0912 /* CAPropertyAnimation.h in Headers */, - FEAEF80111E3AAD000CA0912 /* CATransition.h in Headers */, - FEAEF82511E3AB6A00CA0912 /* CoreAnimation.h in Headers */, - FEAEF86011E3AFEF00CA0912 /* CAMediaTiming.h in Headers */, - FEAEF8C711E3B3FF00CA0912 /* CAMediaTimingFunction.h in Headers */, - FE41B88B12BEA2EE00ED6C10 /* CATransaction.h in Headers */, - FEDEAA6C12C2608F008E5A59 /* CAValueFunction.h in Headers */, - FEDEABC312C98F59008E5A59 /* CALayerContext.h in Headers */, - FEDEB74212D2378C008E5A59 /* CAAction.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - FECA819410EBB231003472F1 /* QuartzCore */ = { - isa = PBXNativeTarget; - buildConfigurationList = FECA819F10EBB231003472F1 /* Build configuration list for PBXNativeTarget "QuartzCore" */; - buildPhases = ( - FECA819710EBB231003472F1 /* Headers */, - FE2BFB1810FB6DCE00D3E136 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - FECA81AE10EBB2AC003472F1 /* PBXTargetDependency */, - FE4301A411E2557400EBDD56 /* PBXTargetDependency */, - FE2A2CEE12D2C74E0028C06D /* PBXTargetDependency */, - ); - name = QuartzCore; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = QuartzCore; - productReference = FECA81A110EBB231003472F1 /* QuartzCore.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "QuartzCore" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* QuartzCore */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FEF88C1E100CC41C00B15FD7 /* Products */; - ProjectRef = FEF88C1D100CC41C00B15FD7 /* CoreGraphics.xcodeproj */; - }, - { - ProductGroup = FE43019E11E2556B00EBDD56 /* Products */; - ProjectRef = FE43019D11E2556B00EBDD56 /* CoreVideo.xcodeproj */; - }, - { - ProductGroup = FE2A2CDF12D2C7410028C06D /* Products */; - ProjectRef = FE2A2CDE12D2C7410028C06D /* OpenGL.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - FECA819410EBB231003472F1 /* QuartzCore */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 0DCD878515B0366D006F9320 /* CoreVideo.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreVideo.framework; - remoteRef = 0DCD878415B0366D006F9320 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE2A2CE512D2C7410028C06D /* OpenGL.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = OpenGL.framework; - remoteRef = FE2A2CE412D2C7410028C06D /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE4301A211E2556B00EBDD56 /* CoreVideo.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreVideo.framework; - remoteRef = FE4301A111E2556B00EBDD56 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FEF88C24100CC41C00B15FD7 /* CoreGraphics.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = CoreGraphics.framework; - remoteRef = FEF88C23100CC41C00B15FD7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - FE2BFB1810FB6DCE00D3E136 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CFF0A1961AF4771300160EAA /* darwin-ppc-framework.xcconfig in Resources */, - CFF0A1971AF4771300160EAA /* darwin-x86_64-framework.xcconfig in Resources */, - CFF0A19C1AF4771300160EAA /* platform-framework.xcconfig in Resources */, - CFF0A19A1AF4771300160EAA /* linux-i386-framework.xcconfig in Resources */, - CFF0A19B1AF4771300160EAA /* linux-ppc-framework.xcconfig in Resources */, - CFF0A19F1AF4771300160EAA /* windows-i386-clang.xcconfig in Resources */, - CFF0A1991AF4771300160EAA /* linux-arm-framework.xcconfig in Resources */, - CFF0A19E1AF4771300160EAA /* windows-i386-bundle.xcconfig in Resources */, - CFF0A19D1AF4771300160EAA /* solaris-sparc-framework.xcconfig in Resources */, - CFF0A1951AF4771300160EAA /* darwin-i386-framework.xcconfig in Resources */, - CFF0A1981AF4771300160EAA /* freebsd-i386-framework.xcconfig in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE2A2CEE12D2C74E0028C06D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "OpenGL-Windows-i386"; - targetProxy = FE2A2CED12D2C74E0028C06D /* PBXContainerItemProxy */; - }; - FE4301A411E2557400EBDD56 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CoreVideo-Windows-i386"; - targetProxy = FE4301A311E2557400EBDD56 /* PBXContainerItemProxy */; - }; - FECA81AE10EBB2AC003472F1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CoreGraphics-Windows-i386"; - targetProxy = FECA81AD10EBB2AC003472F1 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91B308733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - CFF0A17B1AF475FB00160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFF0A17C1AF475FB00160EAA /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFF0A18D1AF4771300160EAA /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = QuartzCore; - }; - name = "FreeBSD-i386"; - }; - CFF0A1801AF4760400160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFF0A1811AF4760400160EAA /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFF0A18A1AF4771300160EAA /* darwin-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = QuartzCore; - }; - name = "Darwin-i386"; - }; - CFF0A1851AF4767E00160EAA /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFF0A1861AF4767E00160EAA /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CFF0A18F1AF4771300160EAA /* linux-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = QuartzCore; - }; - name = "Linux-i386"; - }; - FECA81A010EBB231003472F1 /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7087621431189F00B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = QuartzCore; - }; - name = "Windows-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "QuartzCore" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Windows-i386 */, - CFF0A1851AF4767E00160EAA /* Linux-i386 */, - CFF0A1801AF4760400160EAA /* Darwin-i386 */, - CFF0A17B1AF475FB00160EAA /* FreeBSD-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - FECA819F10EBB231003472F1 /* Build configuration list for PBXNativeTarget "QuartzCore" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FECA81A010EBB231003472F1 /* Windows-i386 */, - CFF0A1861AF4767E00160EAA /* Linux-i386 */, - CFF0A1811AF4760400160EAA /* Darwin-i386 */, - CFF0A17C1AF475FB00160EAA /* FreeBSD-i386 */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/ScriptingBridge/English.lproj/InfoPlist.strings b/ScriptingBridge/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/ScriptingBridge/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/ScriptingBridge/Info.plist b/ScriptingBridge/Info.plist deleted file mode 100644 index 49168a1f..00000000 --- a/ScriptingBridge/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleName - ${PRODUCT_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1 - CFBundleShortVersionString - 1.0 - NSPrincipalClass - - - diff --git a/ScriptingBridge/SBApplication.h b/ScriptingBridge/SBApplication.h deleted file mode 100644 index 72b3444f..00000000 --- a/ScriptingBridge/SBApplication.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -@interface SBApplication : NSObject - -+ applicationWithBundleIdentifier: (NSString *) identifier; - -- (void) activate; -- (Class) classForScriptingClass: (NSString *) className; - -@end diff --git a/ScriptingBridge/SBApplication.m b/ScriptingBridge/SBApplication.m deleted file mode 100644 index 1658ebe6..00000000 --- a/ScriptingBridge/SBApplication.m +++ /dev/null @@ -1,20 +0,0 @@ -#import -#import - -@implementation SBApplication - -+ applicationWithBundleIdentifier: (NSString *) identifier { - NSUnimplementedMethod(); - return nil; -} - -- (void) activate { - NSUnimplementedMethod(); -} - -- (Class) classForScriptingClass: (NSString *) className { - NSUnimplementedMethod(); - return 0; -} - -@end diff --git a/ScriptingBridge/SBElementArray.h b/ScriptingBridge/SBElementArray.h deleted file mode 100644 index 17514de8..00000000 --- a/ScriptingBridge/SBElementArray.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface SBElementArray : NSMutableArray - -@end diff --git a/ScriptingBridge/SBElementArray.m b/ScriptingBridge/SBElementArray.m deleted file mode 100644 index c08ff70e..00000000 --- a/ScriptingBridge/SBElementArray.m +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@implementation SBElementArray - -@end diff --git a/ScriptingBridge/SBObject.h b/ScriptingBridge/SBObject.h deleted file mode 100644 index afb6cb00..00000000 --- a/ScriptingBridge/SBObject.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -@interface SBObject : NSObject { - NSDictionary *_properties; -} - -- initWithProperties: (NSDictionary *) properties; - -@end diff --git a/ScriptingBridge/SBObject.m b/ScriptingBridge/SBObject.m deleted file mode 100644 index 25d35b58..00000000 --- a/ScriptingBridge/SBObject.m +++ /dev/null @@ -1,16 +0,0 @@ -#import -#import - -@implementation SBObject - -- initWithProperties: (NSDictionary *) properties { - _properties = [properties copy]; - return self; -} - -- (void) dealloc { - [_properties release]; - [super dealloc]; -} - -@end diff --git a/ScriptingBridge/ScriptingBridge.h b/ScriptingBridge/ScriptingBridge.h deleted file mode 100644 index 0586097a..00000000 --- a/ScriptingBridge/ScriptingBridge.h +++ /dev/null @@ -1,3 +0,0 @@ -#import -#import -#import diff --git a/ScriptingBridge/ScriptingBridge.xcodeproj/project.pbxproj b/ScriptingBridge/ScriptingBridge.xcodeproj/project.pbxproj deleted file mode 100644 index bf99a668..00000000 --- a/ScriptingBridge/ScriptingBridge.xcodeproj/project.pbxproj +++ /dev/null @@ -1,313 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; }; - FE43050A11E3716B00EBDD56 /* ScriptingBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43050911E3716B00EBDD56 /* ScriptingBridge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE43050E11E3719A00EBDD56 /* SBApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43050B11E3719A00EBDD56 /* SBApplication.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE43050F11E3719A00EBDD56 /* SBElementArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43050C11E3719A00EBDD56 /* SBElementArray.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE43051011E3719A00EBDD56 /* SBObject.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43050D11E3719A00EBDD56 /* SBObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE7AEF2811EFC22B0094448C /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7AEF2711EFC22B0094448C /* dllmain.m */; }; - FEAEFD6711E41C7E00CA0912 /* SBApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAEFD6411E41C7E00CA0912 /* SBApplication.m */; }; - FEAEFD6811E41C7E00CA0912 /* SBElementArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAEFD6511E41C7E00CA0912 /* SBElementArray.m */; }; - FEAEFD6911E41C7E00CA0912 /* SBObject.m in Sources */ = {isa = PBXBuildFile; fileRef = FEAEFD6611E41C7E00CA0912 /* SBObject.m */; }; - FEAEFD6F11E41CBB00CA0912 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 32DBCF5E0370ADEE00C91783 /* ScriptingBridge_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptingBridge_Prefix.pch; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* ScriptingBridge.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ScriptingBridge.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; - FE06B52A1430E9D30071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B52B1430E9D30071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B52C1430E9D30071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B52D1430E9D30071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B52E1430E9D30071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B52F1430E9D30071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B5301430E9D30071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B5311430E9D30071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B5321430E9D30071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B5331430E9D30071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B5341430E9D30071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B5351430E9D30071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B5361430E9D30071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B5371430E9D30071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B5381430E9D30071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE43050911E3716B00EBDD56 /* ScriptingBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptingBridge.h; sourceTree = ""; }; - FE43050B11E3719A00EBDD56 /* SBApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBApplication.h; sourceTree = ""; }; - FE43050C11E3719A00EBDD56 /* SBElementArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBElementArray.h; sourceTree = ""; }; - FE43050D11E3719A00EBDD56 /* SBObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBObject.h; sourceTree = ""; }; - FE708774143118B200B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE7AEF2711EFC22B0094448C /* dllmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = dllmain.m; sourceTree = ""; }; - FEAEFD6411E41C7E00CA0912 /* SBApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBApplication.m; sourceTree = ""; }; - FEAEFD6511E41C7E00CA0912 /* SBElementArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBElementArray.m; sourceTree = ""; }; - FEAEFD6611E41C7E00CA0912 /* SBObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBObject.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */, - FEAEFD6F11E41CBB00CA0912 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* ScriptingBridge.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* ScriptingBridge */ = { - isa = PBXGroup; - children = ( - FE06B5291430E9D30071169B /* xcconfig */, - FE7AEF2711EFC22B0094448C /* dllmain.m */, - FEAEFD6411E41C7E00CA0912 /* SBApplication.m */, - FEAEFD6511E41C7E00CA0912 /* SBElementArray.m */, - FEAEFD6611E41C7E00CA0912 /* SBObject.m */, - FE43050B11E3719A00EBDD56 /* SBApplication.h */, - FE43050C11E3719A00EBDD56 /* SBElementArray.h */, - FE43050D11E3719A00EBDD56 /* SBObject.h */, - FE43050911E3716B00EBDD56 /* ScriptingBridge.h */, - 08FB77AEFE84172EC02AAC07 /* Classes */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = ScriptingBridge; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AEFE84172EC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D6A5FE840307C02AAC07 /* AppKit.framework */, - D2F7E79907B2D74100F64583 /* CoreData.framework */, - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - 32DBCF5E0370ADEE00C91783 /* ScriptingBridge_Prefix.pch */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - FE06B5291430E9D30071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE06B52A1430E9D30071169B /* darwin-i386.xcconfig */, - FE06B52B1430E9D30071169B /* darwin-ppc.xcconfig */, - FE06B52C1430E9D30071169B /* darwin-x86_64.xcconfig */, - FE06B52D1430E9D30071169B /* darwin.xcconfig */, - FE06B52E1430E9D30071169B /* freebsd-i386.xcconfig */, - FE06B52F1430E9D30071169B /* freebsd.xcconfig */, - FE06B5301430E9D30071169B /* linux-arm.xcconfig */, - FE06B5311430E9D30071169B /* linux-i386.xcconfig */, - FE06B5321430E9D30071169B /* linux-ppc.xcconfig */, - FE06B5331430E9D30071169B /* linux.xcconfig */, - FE06B5341430E9D30071169B /* platform.xcconfig */, - FE06B5351430E9D30071169B /* solaris-sparc.xcconfig */, - FE06B5361430E9D30071169B /* solaris.xcconfig */, - FE06B5371430E9D30071169B /* windows-i386.xcconfig */, - FE06B5381430E9D30071169B /* windows.xcconfig */, - FE708774143118B200B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE43050A11E3716B00EBDD56 /* ScriptingBridge.h in Headers */, - FE43050E11E3719A00EBDD56 /* SBApplication.h in Headers */, - FE43050F11E3719A00EBDD56 /* SBElementArray.h in Headers */, - FE43051011E3719A00EBDD56 /* SBObject.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* ScriptingBridge-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "ScriptingBridge-Windows-i386" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "ScriptingBridge-Windows-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = ScriptingBridge; - productReference = 8DC2EF5B0486A6940098B216 /* ScriptingBridge.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "ScriptingBridge" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* ScriptingBridge */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* ScriptingBridge-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEAEFD6711E41C7E00CA0912 /* SBApplication.m in Sources */, - FEAEFD6811E41C7E00CA0912 /* SBElementArray.m in Sources */, - FEAEFD6911E41C7E00CA0912 /* SBObject.m in Sources */, - FE7AEF2811EFC22B0094448C /* dllmain.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE708774143118B200B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = ScriptingBridge; - }; - name = Release; - }; - 1DEB91B308733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "ScriptingBridge-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "ScriptingBridge" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/ScriptingBridge/dllmain.m b/ScriptingBridge/dllmain.m deleted file mode 100644 index 562b3458..00000000 --- a/ScriptingBridge/dllmain.m +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -__declspec(dllimport) int OBJCRegisterDLL(HINSTANCE handle); - -int APIENTRY DllMain(HINSTANCE handle, DWORD reason, LPVOID _reserved) { - - if (reason == DLL_PROCESS_ATTACH) - return OBJCRegisterDLL(handle); - - return TRUE; -} diff --git a/Security/English.lproj/InfoPlist.strings b/Security/English.lproj/InfoPlist.strings deleted file mode 100644 index 88f65cf6..00000000 --- a/Security/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/Security/Info.plist b/Security/Info.plist deleted file mode 100644 index 80419f4e..00000000 --- a/Security/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.${PRODUCT_NAME:rfc1034Identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - OBJC - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/Security/SecAccess.h b/Security/SecAccess.h deleted file mode 100644 index 27deff07..00000000 --- a/Security/SecAccess.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SecAccess.h -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -@interface SecAccess : NSObject { - CFStringRef _descriptor; - CFArrayRef _trustedList; -} - -- initWithDescriptor: (CFStringRef) descriptor - trustedList: (CFArrayRef) trustedList; - -@end diff --git a/Security/SecAccess.m b/Security/SecAccess.m deleted file mode 100644 index c18f8e02..00000000 --- a/Security/SecAccess.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// SecAccess.m -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "SecAccess.h" - -@implementation SecAccess - -- initWithDescriptor: (CFStringRef) descriptor - trustedList: (CFArrayRef) trustedList -{ - _descriptor = CFRetain(descriptor); - _trustedList = (CFArrayRef) CFRetain(trustedList); - return self; -} - -- (void) dealloc { - CFRelease(_descriptor); - CFRelease(_trustedList); - [super dealloc]; -} - -@end diff --git a/Security/SecBase.h b/Security/SecBase.h deleted file mode 100644 index b3ec98e0..00000000 --- a/Security/SecBase.h +++ /dev/null @@ -1,126 +0,0 @@ -#import - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(SECURITY_INSIDE_BUILD) -#define SECURITY_EXPORT extern "C" __declspec(dllexport) -#else -#define SECURITY_EXPORT extern "C" __declspec(dllimport) -#endif -#else -#define SECURITY_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(SECURITY_INSIDE_BUILD) -#define SECURITY_EXPORT __declspec(dllexport) extern -#else -#define SECURITY_EXPORT __declspec(dllimport) extern -#endif -#else -#define SECURITY_EXPORT extern -#endif - -#endif - -typedef OSType SecKeychainAttrType; - -typedef struct SecKeychainAttribute { - SecKeychainAttrType tag; - UInt32 length; - void *data; -} SecKeychainAttribute; - -typedef struct SecKeychainAttributeList { - UInt32 count; - SecKeychainAttribute *attr; -} SecKeychainAttributeList; - -typedef struct SecKeychainAttributeInfo { - UInt32 count; - UInt32 *tag; - UInt32 *format; -} SecKeychainAttributeInfo; - -// objc for now -@class SecKeychainItem, SecKeychainSearch, SecAccess, SecKeychain, - SecTrustedApplication; - -typedef SecKeychainItem *SecKeychainItemRef; -typedef SecKeychainSearch *SecKeychainSearchRef; -typedef SecAccess *SecAccessRef; -typedef SecKeychain *SecKeychainRef; -typedef SecTrustedApplication *SecTrustedApplicationRef; - -// Keychain Item Attributes -typedef OSType SecItemClass; - -enum { - kSecDescriptionItemAttr = /* 'desc' */ 1684370275, - kSecCreatorItemAttr = /* 'crtr' */ 1668445298, - kSecTypeItemAttr = /* 'type' */ 1954115685, - kSecLabelItemAttr = /* 'labl' */ 1818321516, - kSecCustomIconItemAttr = /* 'cusi' */ 1668641641, - kSecAccountItemAttr = /* 'acct' */ 1633903476, - kSecServerItemAttr = /* 'srvr' */ 1936881266, - kSecProtocolItemAttr = /* 'ptcl' */ 1886675820, - kSecServiceItemAttr = /* 'svce' */ 1937138533, - kSecGenericPasswordItemClass = /* 'genp' */ 1734700656 -}; - -// Keychain Item Class -enum { - kSecInternetPasswordItemClass = 'inet', -}; - -enum { errSecItemNotFound = -25300 }; - -SECURITY_EXPORT OSStatus SecKeychainFindGenericPassword( - CFTypeRef keychainOrArray, UInt32 serviceNameLength, - const char *serviceName, UInt32 accountNameLength, - const char *accountName, UInt32 *passwordLength, void **passwordData, - SecKeychainItemRef *itemRef); -SECURITY_EXPORT OSStatus -SecKeychainAddGenericPassword(SecKeychainRef keychain, UInt32 serviceNameLength, - const char *serviceName, UInt32 accountNameLength, - const char *accountName, UInt32 passwordLength, - void *passwordData, SecKeychainItemRef *itemRef); - -SECURITY_EXPORT OSStatus SecKeychainSearchCreateFromAttributes( - CFTypeRef keychainOrArray, SecItemClass itemClass, - const SecKeychainAttributeList *attributeList, - SecKeychainSearchRef *resultSearch); -SECURITY_EXPORT OSStatus SecKeychainSearchCopyNext( - SecKeychainSearchRef search, SecKeychainItemRef *resultItem); - -SECURITY_EXPORT OSStatus SecKeychainItemCopyAttributesAndData( - SecKeychainItemRef item, SecKeychainAttributeInfo *info, - SecItemClass *itemClass, SecKeychainAttributeList **attributeList, - UInt32 *length, void **resultBytes); -SECURITY_EXPORT OSStatus SecKeychainItemModifyAttributesAndData( - SecKeychainItemRef item, const SecKeychainAttributeList *attributeList, - UInt32 length, const void *bytes); -SECURITY_EXPORT OSStatus SecKeychainItemFreeAttributesAndData( - SecKeychainAttributeList *attributeList, void *data); -SECURITY_EXPORT OSStatus -SecKeychainItemFreeContent(SecKeychainAttributeList *attributeList, void *data); - -SECURITY_EXPORT OSStatus SecTrustedApplicationCreateFromPath( - const char *path, SecTrustedApplicationRef *resultApplication); -SECURITY_EXPORT OSStatus SecAccessCreate(CFStringRef descriptor, - CFArrayRef trustedlist, - SecAccessRef *resultAccess); -SECURITY_EXPORT OSStatus SecKeychainItemCreateFromContent( - SecItemClass itemClass, SecKeychainAttributeList *attributeList, - UInt32 length, const void *bytes, SecKeychainRef keychain, - SecAccessRef initialAccess, SecKeychainItemRef *resultItem); -SECURITY_EXPORT OSStatus SecKeychainItemDelete(SecKeychainItemRef item); - -// Internal, do not use -void SecByteCopy(const void *srcVoid, void *dstVoid, size_t length); -void SecFreeAttributeList(SecKeychainAttributeList *list); -SecKeychainAttributeList * -SecCopyAttributeList(const SecKeychainAttributeList *attributeList); diff --git a/Security/SecBase.m b/Security/SecBase.m deleted file mode 100644 index abd291a8..00000000 --- a/Security/SecBase.m +++ /dev/null @@ -1,228 +0,0 @@ -#import "SecAccess.h" -#import "SecKeychain.h" -#import "SecKeychainItem.h" -#import "SecKeychainSearch.h" -#import "SecTrustedApplication.h" -#import - -OSStatus SecKeychainFindGenericPassword( - CFTypeRef keychainOrArray, UInt32 serviceNameLength, - const char *serviceName, UInt32 accountNameLength, - const char *accountName, UInt32 *passwordLength, void **passwordData, - SecKeychainItemRef *itemRef) -{ - SecKeychainAttributeList attributeList; - attributeList.count = 2; - attributeList.attr = - malloc(sizeof(SecKeychainAttribute) * attributeList.count); - attributeList.attr[0].tag = kSecAccountItemAttr; - attributeList.attr[0].length = accountNameLength; - attributeList.attr[0].data = (void *) accountName; - attributeList.attr[1].tag = kSecServiceItemAttr; - attributeList.attr[1].length = serviceNameLength; - attributeList.attr[1].data = (void *) serviceName; - - SecKeychainSearchRef search; - OSStatus status = SecKeychainSearchCreateFromAttributes( - NULL, kSecGenericPasswordItemClass, &attributeList, &search); - if (status != 0) { - free(attributeList.attr); - return status; - } - - status = SecKeychainSearchCopyNext(search, itemRef); - if (status == 0 && *itemRef) { - status = SecKeychainItemCopyAttributesAndData( - *itemRef, NULL, NULL, NULL, passwordLength, passwordData); - } else { - status = errSecItemNotFound; - *itemRef = NULL; - *passwordData = NULL; - *passwordLength = 0; - } - - free(attributeList.attr); - return status; -} - -OSStatus -SecKeychainAddGenericPassword(SecKeychainRef keychain, UInt32 serviceNameLength, - const char *serviceName, UInt32 accountNameLength, - const char *accountName, UInt32 passwordLength, - void *passwordData, SecKeychainItemRef *itemRef) -{ - SecKeychainAttributeList attributeList; - attributeList.count = 2; - attributeList.attr = - malloc(sizeof(SecKeychainAttribute) * attributeList.count); - attributeList.attr[0].tag = kSecAccountItemAttr; - attributeList.attr[0].length = accountNameLength; - attributeList.attr[0].data = (void *) accountName; - attributeList.attr[1].tag = kSecServiceItemAttr; - attributeList.attr[1].length = serviceNameLength; - attributeList.attr[1].data = (void *) serviceName; - - OSStatus status = SecKeychainItemCreateFromContent( - kSecGenericPasswordItemClass, &attributeList, passwordLength, - passwordData, keychain, NULL, itemRef); - free(attributeList.attr); - return status; -} - -OSStatus SecKeychainSearchCreateFromAttributes( - CFTypeRef keychainOrArray, SecItemClass itemClass, - const SecKeychainAttributeList *attributeList, - SecKeychainSearchRef *resultSearch) -{ - *resultSearch = - [[SecKeychainSearch alloc] initWithKeychainOrArray: keychainOrArray - itemClass: itemClass - attributeList: attributeList]; - return 0; -} - -OSStatus SecKeychainSearchCopyNext(SecKeychainSearchRef search, - SecKeychainItemRef *resultItem) -{ - *resultItem = [search copyNextItem]; - return 0; -} - -OSStatus SecKeychainItemCopyAttributesAndData( - SecKeychainItemRef item, SecKeychainAttributeInfo *info, - SecItemClass *itemClass, SecKeychainAttributeList **attributeList, - UInt32 *length, void **resultBytes) -{ - [item copyAttributeInfo: info - itemClass: itemClass - attributeList: attributeList - length: length - bytes: resultBytes]; - return 0; -} - -OSStatus SecKeychainItemModifyAttributesAndData( - SecKeychainItemRef item, const SecKeychainAttributeList *attributeList, - UInt32 length, const void *bytes) -{ - [item modifyAttributeList: attributeList length: length bytes: bytes]; - [[item keychain] modifyKeychainItem: item]; - return 0; -} - -OSStatus -SecKeychainItemFreeAttributesAndData(SecKeychainAttributeList *attributeList, - void *data) -{ - SecFreeAttributeList(attributeList); - - if (data != NULL) - NSZoneFree(NULL, data); - - return 0; -} - -OSStatus SecKeychainItemFreeContent(SecKeychainAttributeList *attributeList, - void *data) -{ - SecFreeAttributeList(attributeList); - - if (data != NULL) - NSZoneFree(NULL, data); - - return 0; -} - -OSStatus -SecTrustedApplicationCreateFromPath(const char *path, - SecTrustedApplicationRef *resultApplication) -{ - *resultApplication = [[SecTrustedApplication alloc] init]; - return 0; -} - -OSStatus SecAccessCreate(CFStringRef descriptor, CFArrayRef trustedList, - SecAccessRef *resultAccess) -{ - *resultAccess = [[SecAccess alloc] initWithDescriptor: descriptor - trustedList: trustedList]; - return 0; -} - -OSStatus SecKeychainItemCreateFromContent( - SecItemClass itemClass, SecKeychainAttributeList *attributeList, - UInt32 length, const void *bytes, SecKeychainRef keychain, - SecAccessRef initialAccess, SecKeychainItemRef *resultItem) -{ - SecKeychainItemRef item = - [[SecKeychainItem alloc] initWithItemClass: itemClass - attributeList: attributeList - length: length - bytes: bytes]; - - if (keychain == NULL) - keychain = [SecKeychain defaultUserKeychain]; - - [item setGUID: [keychain createGUID]]; - [item setKeychain: keychain]; - [item setAccess: initialAccess]; - - [keychain addKeychainItem: item]; - - if (resultItem != NULL) - *resultItem = item; - - return 0; -} - -OSStatus SecKeychainItemDelete(SecKeychainItemRef item) { - [[item keychain] removeKeychainItem: item]; - return 0; -} - -void SecByteCopy(const void *srcVoid, void *dstVoid, size_t length) { - const uint8_t *src = srcVoid; - uint8_t *dst = dstVoid; - size_t i; - - for (i = 0; i < length; i++) - dst[i] = src[i]; -} - -SecKeychainAttributeList * -SecCopyAttributeList(const SecKeychainAttributeList *attributeList) -{ - SecKeychainAttributeList *result = - NSZoneMalloc(NULL, sizeof(SecKeychainAttributeList)); - - result->count = attributeList->count; - result->attr = - NSZoneMalloc(NULL, sizeof(SecKeychainAttribute) * result->count); - - int i; - for (i = 0; i < result->count; i++) { - result->attr[i].tag = attributeList->attr[i].tag; - result->attr[i].length = attributeList->attr[i].length; - result->attr[i].data = NSZoneMalloc(NULL, result->attr[i].length); - SecByteCopy(attributeList->attr[i].data, result->attr[i].data, - result->attr[i].length); - } - - return result; -} - -void SecFreeAttributeList(SecKeychainAttributeList *list) { - if (list != NULL) { - int i; - - if (list->attr != NULL) { - for (i = 0; i < list->count; i++) - if (list->attr[i].data != NULL) - NSZoneFree(NULL, list->attr[i].data); - - NSZoneFree(NULL, list->attr); - } - - NSZoneFree(NULL, list); - } -} diff --git a/Security/SecKeychain.h b/Security/SecKeychain.h deleted file mode 100644 index 4c9d44ba..00000000 --- a/Security/SecKeychain.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// SecKeychain.h -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// -#import -#import - -@class SecKeychainCursor; - -@interface SecKeychain : NSObject { - NSArray *_registryPath; -} - -+ (SecKeychain *) defaultUserKeychain; - -- (NSString *) createGUID; - -- (SecKeychainCursor *) createCursorForItemClass: (SecItemClass) itemClass; - -- (SecKeychainItemRef) createNextItemAtCursor: (SecKeychainCursor *) cursor - attributeList: - (const SecKeychainAttributeList *) - attributeList; - -- (void) addKeychainItem: (SecKeychainItemRef) item; -- (void) removeKeychainItem: (SecKeychainItemRef) item; -- (void) modifyKeychainItem: (SecKeychainItemRef) item; - -@end diff --git a/Security/SecKeychain.m b/Security/SecKeychain.m deleted file mode 100644 index da59d0e6..00000000 --- a/Security/SecKeychain.m +++ /dev/null @@ -1,512 +0,0 @@ -// -// SecKeychain.m -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "SecKeychain.h" -#import "SecKeychainCursor.h" -#import "SecKeychainItem.h" -#import -#import -#import - -#define PERFORM_CRYPT 1 - -/* - Keychain items are stored in the registry under - HKEY_CURRENT_USER/Software/Cocotron/Keychains/login// - - Each entry under the GUID has all the attribute values and data. - - There is no index, so to find an item you have to scan down the list of - GUID's. - */ - -@implementation SecKeychain - -- initWithRegistryPath: (NSArray *) path { - _registryPath = [path copy]; - return self; -} - -- (void) dealloc { - [_registryPath release]; - [super dealloc]; -} - -+ (SecKeychain *) defaultUserKeychain { - NSArray *path = [NSArray arrayWithObjects: @"Software", @"Cocotron", - @"Keychains", @"login", nil]; - - return [[[SecKeychain alloc] initWithRegistryPath: path] autorelease]; -} - -static inline int unicodeLength(const unichar *unicode) { - int result; - - for (result = 0; unicode[result] != 0; result++) - ; - - return result; -} - -- (NSString *) createGUID { - UUID guid; - unsigned short *uString; - - UuidCreate(&guid); - - RPC_STATUS error; - if ((error = UuidToStringW(&guid, &uString)) != RPC_S_OK) - NSLog(@"UuidToStringW failed with %d", error); - - NSString *result = [NSString stringWithCharacters: uString - length: unicodeLength(uString)]; - - RpcStringFreeW(&uString); - - return result; -} - -static const unichar *ZeroTerminatedString(NSString *string) { - NSInteger length = [string length]; - unichar buffer[length + 1]; - - [string getCharacters: buffer]; - buffer[length] = 0; - - return [[NSData dataWithBytes: buffer length: (length + 1) * 2] bytes]; -} - -static NSString *stringForFourCharCode(uint32_t value) { - unichar buffer[4]; - int i; - - for (i = 0; i < 4; i++) { - buffer[3 - i] = value & 0xFF; - value >>= 8; - } - - return [NSString stringWithCharacters: buffer length: 4]; -} - -static HKEY handleToPath(NSArray *path) { - NSInteger i, count = [path count]; - HKEY previous = HKEY_CURRENT_USER; - HKEY current = NULL; - LONG error; - unichar zero = {0}; - - for (i = 0; i < count; i++) { - error = RegCreateKeyExW(previous, - ZeroTerminatedString([path objectAtIndex: i]), - 0, &zero, REG_OPTION_NON_VOLATILE, - KEY_ALL_ACCESS, NULL, ¤t, NULL); - - if (error != ERROR_SUCCESS) - NSLog(@"RegCreateKeyExW failed at index %d in path=%@", i, path); - - if (previous != HKEY_CURRENT_USER) - RegCloseKey(previous); - - previous = current; - } - - return current; -} - -- (SecKeychainCursor *) createCursorForItemClass: (SecItemClass) itemClass { - NSMutableArray *path = [NSMutableArray array]; - - [path addObjectsFromArray: _registryPath]; - [path addObject: stringForFourCharCode(itemClass)]; - - HKEY handle = handleToPath(path); - SecKeychainCursor *result = - [[SecKeychainCursor alloc] initWithRegistryPath: path - itemClass: itemClass - handle: handle]; - - return result; -} - -static uint32_t fourByteCodeFromUnicode(unichar *unicode) { - uint32_t result = 0; - - result = unicode[0]; - result <<= 8; - result |= unicode[1]; - result <<= 8; - result |= unicode[2]; - result <<= 8; - result |= unicode[3]; - - return result; -} - -static uint32_t *createFourByteCodeFromString(NSString *string) { - uint32_t *result = NSZoneMalloc(NULL, 4); - unichar unicode[4]; - - [string getCharacters: unicode range: NSMakeRange(0, 4)]; - - *result = fourByteCodeFromUnicode(unicode); - - return result; -} - -static BOOL is_BLOB_(unichar *buffer, DWORD length) { - if (length != 6) - return NO; - if (buffer[0] != '_') - return NO; - if (buffer[1] != 'B') - return NO; - if (buffer[2] != 'L') - return NO; - if (buffer[3] != 'O') - return NO; - if (buffer[4] != 'B') - return NO; - if (buffer[5] != '_') - return NO; - - return YES; -} - -static void *encryptData(void *bytes, unsigned length, unsigned *resultLength) { -#ifndef PERFORM_CRYPT - *resultLength = length; - void *result = NSZoneMalloc(NULL, *resultLength); - SecByteCopy(bytes, result, length); - return result; -#else - DATA_BLOB plaintext; - DATA_BLOB crypted; - - plaintext.pbData = bytes; - plaintext.cbData = length; - - if (!CryptProtectData(&plaintext, L"Keychain encrypted data", NULL, NULL, - NULL, 0, &crypted)) { - *resultLength = 0; - return NULL; - } - - *resultLength = crypted.cbData; - void *result = NSZoneMalloc(NULL, *resultLength); - - SecByteCopy(crypted.pbData, result, *resultLength); - LocalFree(crypted.pbData); - - return result; -#endif -} - -static void *decryptData(void *bytes, unsigned length, unsigned *resultLength) { -#ifndef PERFORM_CRYPT - *resultLength = length; - void *result = NSZoneMalloc(NULL, *resultLength); - SecByteCopy(bytes, result, length); - return result; -#else - DATA_BLOB crypted; - unichar *description; - DATA_BLOB plaintext; - - crypted.pbData = bytes; - crypted.cbData = length; - - if (!CryptUnprotectData(&crypted, &description, NULL, NULL, NULL, 0, - &plaintext)) { - NSLog(@"CryptUnprotectData failed"); - *resultLength = 0; - return NULL; - } - - *resultLength = plaintext.cbData; - void *result = NSZoneMalloc(NULL, *resultLength); - - SecByteCopy(plaintext.pbData, result, plaintext.cbData); - LocalFree(plaintext.pbData); - LocalFree(description); - - return result; -#endif -} - -- (SecKeychainItemRef) createItemAtHandle: (HKEY) handle - itemClass: (SecItemClass) itemClass -{ - SecKeychainAttributeList *list = - NSZoneMalloc(NULL, sizeof(SecKeychainAttributeList)); - UInt32 blobLength = 0; - void *blobBytes = NULL; - int i, listCapacity = 1; - - list->count = 0; - list->attr = - NSZoneMalloc(NULL, sizeof(SecKeychainAttribute) * listCapacity); - - for (i = 0;; i++) { - unichar nameBuffer[256]; - DWORD nameLength = 256; - DWORD type; - BYTE *data; - DWORD dataLength = 0; - DWORD error; - - error = RegEnumValueW(handle, i, nameBuffer, &nameLength, NULL, &type, - NULL, &dataLength); - if (error == ERROR_NO_MORE_ITEMS) - break; - - if (!(error == ERROR_MORE_DATA || error == ERROR_SUCCESS)) { - SecKeychainItemFreeAttributesAndData(list, blobBytes); - - return nil; - } - - data = __builtin_alloca(dataLength); - nameLength = 256; - if (RegEnumValueW(handle, i, nameBuffer, &nameLength, NULL, &type, data, - &dataLength) != ERROR_SUCCESS) { - SecKeychainItemFreeAttributesAndData(list, blobBytes); - return nil; - } - - if (nameLength == 4 && type == REG_SZ && (dataLength % 2 == 0)) { - SecKeychainAttrType tag = fourByteCodeFromUnicode(nameBuffer); - NSString *string = - [NSString stringWithCharacters: (unichar *) data - length: dataLength / 2 - 1]; - - if (list->count + 1 >= listCapacity) { - listCapacity *= 2; - list->attr = NSZoneRealloc(NULL, list->attr, - sizeof(SecKeychainAttribute) * - listCapacity); - } - - list->attr[list->count].tag = tag; - list->attr[list->count].length = 0; - list->attr[list->count].data = NULL; - - switch (tag) { - case kSecDescriptionItemAttr: // utf8 - case kSecLabelItemAttr: // utf8 - case kSecAccountItemAttr: // utf8 - case kSecServerItemAttr: // utf8 - case kSecServiceItemAttr: // utf8 - ; - const char *utf8 = [string UTF8String]; - - list->attr[list->count].length = strlen(utf8); - list->attr[list->count].data = - NSZoneMalloc(NULL, list->attr[list->count].length); - SecByteCopy(utf8, list->attr[list->count].data, - list->attr[list->count].length); - break; - - case kSecCreatorItemAttr: // four byte code - case kSecTypeItemAttr: // four byte code - case kSecProtocolItemAttr: // four byte code - ; - if (dataLength == 10) { // four byte code stored as unicode with - // terminating zero - list->attr[list->count].length = 4; - list->attr[list->count].data = - createFourByteCodeFromString(string); - } - break; - - case kSecCustomIconItemAttr: // ignore - break; - - default: - SecKeychainItemFreeAttributesAndData(list, blobBytes); - return nil; - } - list->count++; - - } else if (is_BLOB_(nameBuffer, nameLength) && type == REG_BINARY) { - blobLength = 0; - blobBytes = decryptData(data, dataLength, &blobLength); - } else { - SecKeychainItemFreeAttributesAndData(list, blobBytes); - return nil; - } - } - - SecKeychainItem *result = - [[SecKeychainItem alloc] initWithItemClass: itemClass - attributeList: list - length: blobLength - bytes: blobBytes]; - - [result setKeychain: self]; - - SecKeychainItemFreeAttributesAndData(list, blobBytes); - - return result; -} - -- (SecKeychainItemRef) - createNextItemAtCursor: (SecKeychainCursor *) cursor - attributeList: (const SecKeychainAttributeList *) attributeList -{ - SecKeychainItemRef result = nil; - - while (result == nil) { - unichar nameBuffer[1024]; - DWORD nameBufferLength = 1024; - - if (RegEnumKeyExW([cursor handle], [cursor index], nameBuffer, - &nameBufferLength, NULL, NULL, NULL, - NULL) != ERROR_SUCCESS) - return nil; - - [cursor incrementIndex]; - NSString *guid = [NSString stringWithCharacters: nameBuffer - length: nameBufferLength]; - NSMutableArray *path = [NSMutableArray array]; - - [path addObjectsFromArray: [cursor registryPath]]; - [path addObject: guid]; - - HKEY checkHandle = handleToPath(path); - - SecKeychainItemRef item = [self createItemAtHandle: checkHandle - itemClass: [cursor itemClass]]; - - [item setGUID: guid]; - - if (item == nil) - return nil; - - if ([item isMatchToAttributeList: attributeList]) - result = item; - else - [item release]; - } - - return result; -} - -- (void) _writeItem: (SecKeychainItemRef) item handle: (HKEY) handle { - SecKeychainAttributeList *attributeList = [item attributeList]; - LONG error; - int i; - - for (i = 0; i < attributeList->count; i++) { - SecKeychainAttrType tag = attributeList->attr[i].tag; - const unichar *key = ZeroTerminatedString(stringForFourCharCode(tag)); - UInt32 length = attributeList->attr[i].length; - void *data = attributeList->attr[i].data; - - switch (tag) { - case kSecDescriptionItemAttr: // utf8 - case kSecLabelItemAttr: // utf8 - case kSecAccountItemAttr: // utf8 - case kSecServerItemAttr: // utf8 - case kSecServiceItemAttr: // utf8 - ; - NSString *string = - [[NSString alloc] initWithBytes: data - length: length - encoding: NSUTF8StringEncoding]; - const unichar *unicode = ZeroTerminatedString(string); - - if ((error = RegSetValueExW( - handle, key, 0, REG_SZ, (const BYTE *) unicode, - ([string length] + 1) * 2)) != ERROR_SUCCESS) - NSLog(@"RegSetValueExW failed with %d", error); - - [string release]; - break; - - case kSecCreatorItemAttr: // four byte code - case kSecTypeItemAttr: // four byte code - case kSecProtocolItemAttr: // four byte code - ; - if (length == 4) { - NSString *string = stringForFourCharCode(*(uint32_t *) data); - const unichar *unicode = ZeroTerminatedString(string); - - if ((error = RegSetValueExW( - handle, key, 0, REG_SZ, (const BYTE *) unicode, - ([string length] + 1) * 2)) != ERROR_SUCCESS) - NSLog(@"RegSetValueExW failed with %d", error); - } - break; - - case kSecCustomIconItemAttr: // ignore - break; - - default: - break; - } - } - - const unichar *key = ZeroTerminatedString(@"_BLOB_"); - unsigned encryptedLength = 0; - void *encrypted = - encryptData([item blobBytes], [item blobLength], &encryptedLength); - - if ((error = RegSetValueExW(handle, key, 0, REG_BINARY, encrypted, - encryptedLength)) != ERROR_SUCCESS) - NSLog(@"RegSetValueExW failed with %d", error); -} - -- (void) addKeychainItem: (SecKeychainItemRef) item { - NSMutableArray *path = [NSMutableArray array]; - - [path addObjectsFromArray: _registryPath]; - [path addObject: stringForFourCharCode([item itemClass])]; - [path addObject: [item GUID]]; - - HKEY handle = handleToPath(path); - - [self _writeItem: item handle: handle]; - - RegFlushKey(handle); - RegCloseKey(handle); -} - -- (void) removeKeychainItem: (SecKeychainItemRef) item { - NSString *guid = [item GUID]; - - if (guid != nil) { - NSMutableArray *path = [NSMutableArray array]; - - [path addObjectsFromArray: _registryPath]; - [path addObject: stringForFourCharCode([item itemClass])]; - - HKEY handle = handleToPath(path); - - RegDeleteKeyW(handle, ZeroTerminatedString(guid)); - - RegFlushKey(handle); - RegCloseKey(handle); - } -} - -- (void) modifyKeychainItem: (SecKeychainItemRef) item { - NSMutableArray *path = [NSMutableArray array]; - - [path addObjectsFromArray: _registryPath]; - [path addObject: stringForFourCharCode([item itemClass])]; - [path addObject: [item GUID]]; - - HKEY handle = handleToPath(path); - - [self _writeItem: item handle: handle]; - - RegFlushKey(handle); - RegCloseKey(handle); -} - -@end diff --git a/Security/SecKeychainCursor.h b/Security/SecKeychainCursor.h deleted file mode 100644 index af06ee12..00000000 --- a/Security/SecKeychainCursor.h +++ /dev/null @@ -1,24 +0,0 @@ -#import -#import -#import - -@class NSArray; - -@interface SecKeychainCursor : NSObject { - NSArray *_path; - SecItemClass _itemClass; - HKEY _handle; - int _index; -} - -- initWithRegistryPath: (NSArray *) path - itemClass: (SecItemClass) itemClass - handle: (HKEY) handle; - -- (NSArray *) registryPath; -- (SecItemClass) itemClass; -- (HKEY) handle; -- (int) index; -- (void) incrementIndex; - -@end diff --git a/Security/SecKeychainCursor.m b/Security/SecKeychainCursor.m deleted file mode 100644 index 16855d6b..00000000 --- a/Security/SecKeychainCursor.m +++ /dev/null @@ -1,42 +0,0 @@ -#import "SecKeychainCursor.h" - -@implementation SecKeychainCursor - -- initWithRegistryPath: (NSArray *) path - itemClass: (SecItemClass) itemClass - handle: (HKEY) handle -{ - _path = [path copy]; - _itemClass = itemClass; - _handle = handle; - _index = 0; - return self; -} - -- (void) dealloc { - [_path release]; - RegCloseKey(_handle); - [super dealloc]; -} - -- (NSArray *) registryPath { - return _path; -} - -- (SecItemClass) itemClass { - return _itemClass; -} - -- (HKEY) handle { - return _handle; -} - -- (int) index { - return _index; -} - -- (void) incrementIndex { - _index++; -} - -@end diff --git a/Security/SecKeychainItem.h b/Security/SecKeychainItem.h deleted file mode 100644 index 988752f2..00000000 --- a/Security/SecKeychainItem.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// SecKeychainItem.h -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import -#import - -@interface SecKeychainItem : NSObject { - SecItemClass _itemClass; - SecKeychainAttributeList *_attributeList; - UInt32 _length; - void *_bytes; - NSString *_guid; - SecKeychainRef _keychain; - SecAccessRef _access; -} - -- initWithItemClass: (SecItemClass) itemClass - attributeList: (SecKeychainAttributeList *) attributeList - length: (UInt32) length - bytes: (const void *) bytes; - -- (SecItemClass) itemClass; -- (SecKeychainAttributeList *) attributeList; -- (UInt32) blobLength; -- (void *) blobBytes; - -- (NSString *) GUID; -- (SecKeychainRef) keychain; -- (SecAccessRef) access; - -- (void) setGUID: (NSString *) value; -- (void) setKeychain: (SecKeychainRef) keychain; -- (void) setAccess: (SecAccessRef) access; - -- (BOOL) isMatchToAttributeList: (const SecKeychainAttributeList *) other; - -- (void) modifyAttributeList: (const SecKeychainAttributeList *) attributeList - length: (UInt32) length - bytes: (const void *) bytes; - -- (void) copyAttributeInfo: (SecKeychainAttributeInfo *) info - itemClass: (SecItemClass *) itemClass - attributeList: (SecKeychainAttributeList **) attributeList - length: (UInt32 *) length - bytes: (void **) bytes; - -@end diff --git a/Security/SecKeychainItem.m b/Security/SecKeychainItem.m deleted file mode 100644 index 70097ea4..00000000 --- a/Security/SecKeychainItem.m +++ /dev/null @@ -1,160 +0,0 @@ -// -// SecKeychainItem.m -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "SecKeychainItem.h" - -@implementation SecKeychainItem - -- initWithItemClass: (SecItemClass) itemClass - attributeList: (SecKeychainAttributeList *) attributeList - length: (UInt32) length - bytes: (const void *) bytes -{ - _itemClass = itemClass; - _attributeList = SecCopyAttributeList(attributeList); - _length = length; - _bytes = NSZoneMalloc(NULL, _length); - SecByteCopy(bytes, _bytes, _length); - return self; -} - -- (void) dealloc { - SecFreeAttributeList(_attributeList); - NSZoneFree(NULL, _bytes); - [super dealloc]; -} - -- (SecItemClass) itemClass { - return _itemClass; -} - -- (SecKeychainAttributeList *) attributeList { - return _attributeList; -} - -- (UInt32) blobLength { - return _length; -} - -- (void *) blobBytes { - return _bytes; -} - -- (NSString *) GUID { - return _guid; -} - -- (void) setGUID: (NSString *) value { - value = [value copy]; - [_guid release]; - _guid = value; -} - -- (SecKeychainRef) keychain { - return _keychain; -} - -- (SecAccessRef) access { - return _access; -} - -- (void) setKeychain: (SecKeychainRef) keychain { - _keychain = [keychain retain]; -} - -- (void) setAccess: (SecAccessRef) access { - _access = [access retain]; -} - -static BOOL bytesAreEqual(uint8_t *bytes1, uint8_t *bytes2, UInt32 length) { - UInt32 i; - - for (i = 0; i < length; i++) - if (bytes1[i] != bytes2[i]) - return NO; - - return YES; -} - -- (BOOL) isMatchToAttributeList: (const SecKeychainAttributeList *) other { - int i; - - if (other == NULL) - return YES; - - for (i = 0; i < other->count; i++) { - UInt32 tag = other->attr[i].tag; - int j; - - for (j = 0; j < _attributeList->count; j++) { - if (_attributeList->attr[j].tag == tag) { - - if (other->attr[i].length != _attributeList->attr[j].length) { - return NO; - } - - if (!bytesAreEqual(other->attr[i].data, - _attributeList->attr[j].data, - other->attr[i].length)) { - return NO; - } - break; - } - } - - if (j >= _attributeList->count) { // didn't find tag in self - return NO; - } - } - - return YES; -} - -- (void) modifyAttributeList: (const SecKeychainAttributeList *) attributeList - length: (UInt32) length - bytes: (const void *) bytes -{ - if (attributeList != NULL) { - // FIXME: implement - } - - if (bytes != NULL) { - NSZoneFree(NULL, _bytes); - - _length = length; - _bytes = NSZoneMalloc(NULL, _length); - SecByteCopy(bytes, _bytes, _length); - } -} - -- (void) copyAttributeInfo: (SecKeychainAttributeInfo *) info - itemClass: (SecItemClass *) itemClass - attributeList: (SecKeychainAttributeList **) attributeList - length: (UInt32 *) length - bytes: (void **) bytes -{ - if (info != NULL) { - // FIXME: implement - } - - if (itemClass != NULL) - *itemClass = _itemClass; - - if (attributeList != NULL) - *attributeList = SecCopyAttributeList(_attributeList); - - if (length != NULL) - *length = _length; - - if (bytes != NULL) { - *bytes = NSZoneMalloc(NULL, _length); - SecByteCopy(_bytes, *bytes, _length); - } -} - -@end diff --git a/Security/SecKeychainSearch.h b/Security/SecKeychainSearch.h deleted file mode 100644 index 1bb50084..00000000 --- a/Security/SecKeychainSearch.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// SecKeychainSearch.h -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import -#import - -@class SecKeychainCursor; - -@interface SecKeychainSearch : NSObject { - CFArrayRef _array; - SecItemClass _itemClass; - SecKeychainAttributeList *_attributeList; - - int _arrayCursor; - SecKeychainCursor *_keychainCursor; -} - -- initWithKeychainOrArray: (CFTypeRef) keychainOrArray - itemClass: (SecItemClass) itemClass - attributeList: (const SecKeychainAttributeList *) attributeList; - -- (SecKeychainItemRef) copyNextItem; - -@end diff --git a/Security/SecKeychainSearch.m b/Security/SecKeychainSearch.m deleted file mode 100644 index 8aac40a8..00000000 --- a/Security/SecKeychainSearch.m +++ /dev/null @@ -1,69 +0,0 @@ -// -// SecKeychainSearch.m -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "SecKeychainSearch.h" -#import "SecKeychain.h" - -@implementation SecKeychainSearch - -- initWithKeychainOrArray: (CFTypeRef) keychainOrArray - itemClass: (SecItemClass) itemClass - attributeList: (const SecKeychainAttributeList *) attributeList -{ - if (keychainOrArray == NULL) - keychainOrArray = [SecKeychain defaultUserKeychain]; - - if (![(id) keychainOrArray isKindOfClass: [NSArray class]]) - keychainOrArray = [NSArray arrayWithObject: (id) keychainOrArray]; - - _array = (CFArrayRef) CFRetain(keychainOrArray); - _itemClass = itemClass; - _attributeList = SecCopyAttributeList(attributeList); - - _arrayCursor = 0; - _keychainCursor = nil; - return self; -} - -- (void) dealloc { - CFRelease(_array); - SecFreeAttributeList(_attributeList); - [_keychainCursor release]; - [super dealloc]; -} - -- (SecKeychainItemRef) copyNextItem { - ("%s %d", __FUNCTION__, __LINE__); - - while (_arrayCursor < CFArrayGetCount(_array)) { - SecKeychainRef keychain = - (id) CFArrayGetValueAtIndex(_array, _arrayCursor); - ("%s %d", __FUNCTION__, __LINE__); - - if (_keychainCursor == nil) - _keychainCursor = [keychain createCursorForItemClass: _itemClass]; - ("%s %d", __FUNCTION__, __LINE__); - - SecKeychainItemRef check = nil; - - if (_keychainCursor != nil) - check = [keychain createNextItemAtCursor: _keychainCursor - attributeList: _attributeList]; - - if (check != nil) - return check; - - _arrayCursor++; - [_keychainCursor release]; - _keychainCursor = nil; - } - ("%s %d", __FUNCTION__, __LINE__); - return nil; -} - -@end diff --git a/Security/SecTrustedApplication.h b/Security/SecTrustedApplication.h deleted file mode 100644 index a08a1258..00000000 --- a/Security/SecTrustedApplication.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// SecTrustedApplication.h -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -@interface SecTrustedApplication : NSObject { -} - -@end diff --git a/Security/SecTrustedApplication.m b/Security/SecTrustedApplication.m deleted file mode 100644 index dad15ec9..00000000 --- a/Security/SecTrustedApplication.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// SecTrustedApplication.m -// Security -// -// Created by Christopher Lloyd on 2/12/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "SecTrustedApplication.h" - -@implementation SecTrustedApplication - -@end diff --git a/Security/Security.h b/Security/Security.h deleted file mode 100644 index b85eee35..00000000 --- a/Security/Security.h +++ /dev/null @@ -1 +0,0 @@ -#import diff --git a/Security/Security.xcodeproj/project.pbxproj b/Security/Security.xcodeproj/project.pbxproj deleted file mode 100644 index c1649a86..00000000 --- a/Security/Security.xcodeproj/project.pbxproj +++ /dev/null @@ -1,557 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - FE3C420D1129AB3B0099DAB8 /* SecKeychainCursor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3C420B1129AB3B0099DAB8 /* SecKeychainCursor.h */; }; - FE3C420E1129AB3B0099DAB8 /* SecKeychainCursor.m in Sources */ = {isa = PBXBuildFile; fileRef = FE3C420C1129AB3B0099DAB8 /* SecKeychainCursor.m */; }; - FE9C1C191125B9CD002DA20B /* SecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1C181125B9CD002DA20B /* SecBase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE9C1C2A1125BC26002DA20B /* Security.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1C291125BC26002DA20B /* Security.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE9C1C351125BC3E002DA20B /* SecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1C341125BC3E002DA20B /* SecBase.m */; }; - FE9C1C6E1125BE5E002DA20B /* dllmain.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1C6D1125BE5E002DA20B /* dllmain.m */; }; - FE9C1CA21125BF39002DA20B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - FE9C1DEC1125DF57002DA20B /* SecKeychainItem.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1DEA1125DF57002DA20B /* SecKeychainItem.h */; }; - FE9C1DED1125DF57002DA20B /* SecKeychainItem.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1DEB1125DF57002DA20B /* SecKeychainItem.m */; }; - FE9C1DF21125DF66002DA20B /* SecKeychainSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1DF01125DF66002DA20B /* SecKeychainSearch.h */; }; - FE9C1DF31125DF66002DA20B /* SecKeychainSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1DF11125DF66002DA20B /* SecKeychainSearch.m */; }; - FE9C1DF81125DF71002DA20B /* SecAccess.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1DF61125DF71002DA20B /* SecAccess.h */; }; - FE9C1DF91125DF71002DA20B /* SecAccess.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1DF71125DF71002DA20B /* SecAccess.m */; }; - FE9C1E001125DF9F002DA20B /* SecKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1DFE1125DF9F002DA20B /* SecKeychain.h */; }; - FE9C1E011125DF9F002DA20B /* SecKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1DFF1125DF9F002DA20B /* SecKeychain.m */; }; - FE9C1E061125DFAD002DA20B /* SecTrustedApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = FE9C1E041125DFAD002DA20B /* SecTrustedApplication.h */; }; - FE9C1E071125DFAD002DA20B /* SecTrustedApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9C1E051125DFAD002DA20B /* SecTrustedApplication.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 508B1C39113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A7EC0C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - 508B1C3B113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 6EA04A7709E57D5F0067589C; - remoteInfo = "Foundation-Linux-i386"; - }; - 508B1C3D113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 6E4D932B0A2642BD003D335C; - remoteInfo = "Foundation-Solaris-sparc"; - }; - 508B1C3F113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FED70A6B0C3B3D2C000CBE5B; - remoteInfo = "Foundation-Darwin-i386"; - }; - 508B1C41113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FED70FB70C3C09C7000CBE5B; - remoteInfo = "Foundation-Darwin-ppc"; - }; - 508B1C43113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE651A870FBC844C00464BFD; - remoteInfo = "Foundation-Darwin-x86_64"; - }; - 508B1C45113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 28D487A90FE04E7100DC03EF; - remoteInfo = "Foundation-Linux-ppc"; - }; - 508B1C47113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 15D921C0105E918000171406; - remoteInfo = "Foundation-Linux-arm"; - }; - 508B1C49113E3519009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE30A2FF10C6ED6F00A1BF7F; - remoteInfo = "Foundation-FreeBSD-i386"; - }; - 508B1C5A113E3522009D8909 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE01A5970C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Foundation.xcodeproj; path = ../Foundation/Foundation.xcodeproj; sourceTree = SOURCE_ROOT; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* Security.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Security.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE06B5771430EA000071169B /* darwin-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386.xcconfig"; sourceTree = ""; }; - FE06B5781430EA000071169B /* darwin-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc.xcconfig"; sourceTree = ""; }; - FE06B5791430EA000071169B /* darwin-x86_64.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64.xcconfig"; sourceTree = ""; }; - FE06B57A1430EA000071169B /* darwin.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = darwin.xcconfig; sourceTree = ""; }; - FE06B57B1430EA000071169B /* freebsd-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386.xcconfig"; sourceTree = ""; }; - FE06B57C1430EA000071169B /* freebsd.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = freebsd.xcconfig; sourceTree = ""; }; - FE06B57D1430EA000071169B /* linux-arm.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm.xcconfig"; sourceTree = ""; }; - FE06B57E1430EA000071169B /* linux-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386.xcconfig"; sourceTree = ""; }; - FE06B57F1430EA000071169B /* linux-ppc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc.xcconfig"; sourceTree = ""; }; - FE06B5801430EA000071169B /* linux.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = linux.xcconfig; sourceTree = ""; }; - FE06B5811430EA000071169B /* platform.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = platform.xcconfig; sourceTree = ""; }; - FE06B5821430EA000071169B /* solaris-sparc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc.xcconfig"; sourceTree = ""; }; - FE06B5831430EA000071169B /* solaris.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = solaris.xcconfig; sourceTree = ""; }; - FE06B5841430EA000071169B /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE06B5851430EA000071169B /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE3C420B1129AB3B0099DAB8 /* SecKeychainCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecKeychainCursor.h; sourceTree = ""; }; - FE3C420C1129AB3B0099DAB8 /* SecKeychainCursor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecKeychainCursor.m; sourceTree = ""; }; - FE70879F143118C000B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE9C1C181125B9CD002DA20B /* SecBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecBase.h; sourceTree = ""; }; - FE9C1C291125BC26002DA20B /* Security.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Security.h; sourceTree = ""; }; - FE9C1C341125BC3E002DA20B /* SecBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecBase.m; sourceTree = ""; }; - FE9C1C6D1125BE5E002DA20B /* dllmain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = dllmain.m; path = ../Foundation/platform_windows/dllmain.m; sourceTree = SOURCE_ROOT; }; - FE9C1DEA1125DF57002DA20B /* SecKeychainItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecKeychainItem.h; sourceTree = ""; }; - FE9C1DEB1125DF57002DA20B /* SecKeychainItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecKeychainItem.m; sourceTree = ""; }; - FE9C1DF01125DF66002DA20B /* SecKeychainSearch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecKeychainSearch.h; sourceTree = ""; }; - FE9C1DF11125DF66002DA20B /* SecKeychainSearch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecKeychainSearch.m; sourceTree = ""; }; - FE9C1DF61125DF71002DA20B /* SecAccess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecAccess.h; sourceTree = ""; }; - FE9C1DF71125DF71002DA20B /* SecAccess.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecAccess.m; sourceTree = ""; }; - FE9C1DFE1125DF9F002DA20B /* SecKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecKeychain.h; sourceTree = ""; }; - FE9C1DFF1125DF9F002DA20B /* SecKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecKeychain.m; sourceTree = ""; }; - FE9C1E041125DFAD002DA20B /* SecTrustedApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecTrustedApplication.h; sourceTree = ""; }; - FE9C1E051125DFAD002DA20B /* SecTrustedApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SecTrustedApplication.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE9C1CA21125BF39002DA20B /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* Security.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* Security */ = { - isa = PBXGroup; - children = ( - FE06B5761430EA000071169B /* xcconfig */, - 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */, - FE3C420B1129AB3B0099DAB8 /* SecKeychainCursor.h */, - FE3C420C1129AB3B0099DAB8 /* SecKeychainCursor.m */, - FE9C1C6D1125BE5E002DA20B /* dllmain.m */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - 034768DFFF38A50411DB9C8B /* Products */, - 089C1665FE841158C02AAC07 /* Resources */, - FE9C1DF61125DF71002DA20B /* SecAccess.h */, - FE9C1DF71125DF71002DA20B /* SecAccess.m */, - FE9C1C181125B9CD002DA20B /* SecBase.h */, - FE9C1C341125BC3E002DA20B /* SecBase.m */, - FE9C1DFE1125DF9F002DA20B /* SecKeychain.h */, - FE9C1DFF1125DF9F002DA20B /* SecKeychain.m */, - FE9C1DEA1125DF57002DA20B /* SecKeychainItem.h */, - FE9C1DEB1125DF57002DA20B /* SecKeychainItem.m */, - FE9C1DF01125DF66002DA20B /* SecKeychainSearch.h */, - FE9C1DF11125DF66002DA20B /* SecKeychainSearch.m */, - FE9C1E041125DFAD002DA20B /* SecTrustedApplication.h */, - FE9C1E051125DFAD002DA20B /* SecTrustedApplication.m */, - FE9C1C291125BC26002DA20B /* Security.h */, - ); - indentWidth = 4; - name = Security; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 508B1C2D113E3519009D8909 /* Products */ = { - isa = PBXGroup; - children = ( - 508B1C3A113E3519009D8909 /* Foundation.framework */, - 508B1C3C113E3519009D8909 /* Foundation.framework */, - 508B1C3E113E3519009D8909 /* Foundation.framework */, - 508B1C40113E3519009D8909 /* Foundation.framework */, - 508B1C42113E3519009D8909 /* Foundation.framework */, - 508B1C44113E3519009D8909 /* Foundation.framework */, - 508B1C46113E3519009D8909 /* Foundation.framework */, - 508B1C48113E3519009D8909 /* Foundation.framework */, - 508B1C4A113E3519009D8909 /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE06B5761430EA000071169B /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE06B5771430EA000071169B /* darwin-i386.xcconfig */, - FE06B5781430EA000071169B /* darwin-ppc.xcconfig */, - FE06B5791430EA000071169B /* darwin-x86_64.xcconfig */, - FE06B57A1430EA000071169B /* darwin.xcconfig */, - FE06B57B1430EA000071169B /* freebsd-i386.xcconfig */, - FE06B57C1430EA000071169B /* freebsd.xcconfig */, - FE06B57D1430EA000071169B /* linux-arm.xcconfig */, - FE06B57E1430EA000071169B /* linux-i386.xcconfig */, - FE06B57F1430EA000071169B /* linux-ppc.xcconfig */, - FE06B5801430EA000071169B /* linux.xcconfig */, - FE06B5811430EA000071169B /* platform.xcconfig */, - FE06B5821430EA000071169B /* solaris-sparc.xcconfig */, - FE06B5831430EA000071169B /* solaris.xcconfig */, - FE06B5841430EA000071169B /* windows-i386.xcconfig */, - FE06B5851430EA000071169B /* windows.xcconfig */, - FE70879F143118C000B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE9C1C191125B9CD002DA20B /* SecBase.h in Headers */, - FE9C1C2A1125BC26002DA20B /* Security.h in Headers */, - FE9C1DEC1125DF57002DA20B /* SecKeychainItem.h in Headers */, - FE9C1DF21125DF66002DA20B /* SecKeychainSearch.h in Headers */, - FE9C1DF81125DF71002DA20B /* SecAccess.h in Headers */, - FE9C1E001125DF9F002DA20B /* SecKeychain.h in Headers */, - FE9C1E061125DFAD002DA20B /* SecTrustedApplication.h in Headers */, - FE3C420D1129AB3B0099DAB8 /* SecKeychainCursor.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* Security-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Security-Windows-i386" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 508B1C5B113E3522009D8909 /* PBXTargetDependency */, - ); - name = "Security-Windows-i386"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = Security; - productReference = 8DC2EF5B0486A6940098B216 /* Security.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Security" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* Security */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 508B1C2D113E3519009D8909 /* Products */; - ProjectRef = 508B1C2C113E3519009D8909 /* Foundation.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* Security-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 508B1C3A113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C39113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C3C113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C3B113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C3E113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C3D113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C40113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C3F113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C42113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C41113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C44113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C43113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C46113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C45113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C48113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C47113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 508B1C4A113E3519009D8909 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = 508B1C49113E3519009D8909 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE9C1C351125BC3E002DA20B /* SecBase.m in Sources */, - FE9C1C6E1125BE5E002DA20B /* dllmain.m in Sources */, - FE9C1DED1125DF57002DA20B /* SecKeychainItem.m in Sources */, - FE9C1DF31125DF66002DA20B /* SecKeychainSearch.m in Sources */, - FE9C1DF91125DF71002DA20B /* SecAccess.m in Sources */, - FE9C1E011125DF9F002DA20B /* SecKeychain.m in Sources */, - FE9C1E071125DFAD002DA20B /* SecTrustedApplication.m in Sources */, - FE3C420E1129AB3B0099DAB8 /* SecKeychainCursor.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 508B1C5B113E3522009D8909 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Foundation-Windows-i386"; - targetProxy = 508B1C5A113E3522009D8909 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91AF08733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE70879F143118C000B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_OPTIMIZATION_LEVEL = s; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DWINVER=0x500", - "-DSECURITY_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - "-march=i686", - "$(OTHER_CFLAGS)", - ); - OTHER_LDFLAGS = ( - "-shared", - "-lrpcrt4", - "-lcrypt32", - "-Wl,--enable-auto-import", - "-Wl,--export-all-symbols", - "-Wl,--image-base=0x10000000", - "-Wl,--out-implib,$TARGET_BUILD_DIR/$(PRODUCT_NAME).framework/lib$(PRODUCT_NAME).a", - ); - PRODUCT_NAME = Security; - WARNING_CFLAGS = "-Wno-multichar"; - }; - name = Release; - }; - 1DEB91B308733DA50010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; - FE081DC1118A1B590026A20E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - FE081DC2118A1B590026A20E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE70879F143118C000B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_OPTIMIZATION_LEVEL = s; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - INFOPLIST_FILE = Info.plist; - OTHER_CFLAGS = ( - "-DWINVER=0x500", - "-DSECURITY_INSIDE_BUILD", - "-D__LITTLE_ENDIAN__", - "-march=i686", - "$(OTHER_CFLAGS)", - ); - OTHER_LDFLAGS = ( - "-shared", - "-lrpcrt4", - "-lcrypt32", - "-Wl,--enable-auto-import", - "-Wl,--export-all-symbols", - "-Wl,--image-base=0x10000000", - "-Wl,--out-implib,$TARGET_BUILD_DIR/$(PRODUCT_NAME).framework/lib$(PRODUCT_NAME).a", - ); - PRODUCT_NAME = Security; - WARNING_CFLAGS = "-Wno-multichar"; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Security-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91AF08733DA50010E9CD /* Release */, - FE081DC2118A1B590026A20E /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Security" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Release */, - FE081DC1118A1B590026A20E /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/Security/version.plist b/Security/version.plist deleted file mode 100644 index c9c8853c..00000000 --- a/Security/version.plist +++ /dev/null @@ -1,16 +0,0 @@ - - - - - BuildVersion - 2 - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - ProjectName - DevToolsWizardTemplates - SourceVersion - 15920000 - - diff --git a/examples/CGShadingCreate/CMakeLists.txt b/examples/CGShadingCreate/CMakeLists.txt new file mode 100644 index 00000000..47490de6 --- /dev/null +++ b/examples/CGShadingCreate/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.1) + +project(CGShadingCreate) + +file(GLOB_RECURSE RES_SOURCES "${PROJECT_SOURCE_DIR}/Resources/*") + +add_executable(CGShadingCreate MACOSX_BUNDLE GradientView.m main.m ${RES_SOURCES}) + +set_target_properties(CGShadingCreate PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/Info.plist" MACOSX_BUNDLE_BUNDLE_NAME "CGShadingCreate") + +foreach(RES_FILE ${RES_SOURCES}) + file(RELATIVE_PATH RES_PATH "${PROJECT_SOURCE_DIR}/Resources" ${RES_FILE}) + get_filename_component(REAL_RES_PATH "${RES_PATH}" DIRECTORY) + set_property(SOURCE ${RES_FILE} PROPERTY MACOSX_PACKAGE_LOCATION "Resources/${REAL_RES_PATH}") +endforeach(RES_FILE) + +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit") diff --git a/Examples/CGShadingCreate/GradientView.h b/examples/CGShadingCreate/GradientView.h similarity index 100% rename from Examples/CGShadingCreate/GradientView.h rename to examples/CGShadingCreate/GradientView.h diff --git a/Examples/CGShadingCreate/GradientView.m b/examples/CGShadingCreate/GradientView.m similarity index 97% rename from Examples/CGShadingCreate/GradientView.m rename to examples/CGShadingCreate/GradientView.m index 2ca422bb..4fab5b98 100644 --- a/Examples/CGShadingCreate/GradientView.m +++ b/examples/CGShadingCreate/GradientView.m @@ -48,8 +48,9 @@ void evaluate(void *info, const CGFloat *in, CGFloat *output) { GradientView *self = info; int i; - for (i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { output[i] = self->_C0[i] + x * (self->_C1[i] - self->_C0[i]); + } } - (void) drawRect: (NSRect) rect { @@ -65,18 +66,19 @@ void evaluate(void *info, const CGFloat *in, CGFloat *output) { function = CGFunctionCreate(self, 1, domain, 4, range, &callbacks); - if ([_shadingType selectedTag] == 0) + if ([_shadingType selectedTag] == 0) { shading = CGShadingCreateAxial(CGColorSpaceCreateDeviceRGB(), CGPointMake(_startPoint.x, _startPoint.y), CGPointMake(_endPoint.x, _endPoint.y), function, _extendStart, _extendEnd); - else + } else { shading = CGShadingCreateRadial( CGColorSpaceCreateDeviceRGB(), CGPointMake(_startPoint.x, _startPoint.y), _startRadius, CGPointMake(_endPoint.x, _endPoint.y), _endRadius, function, _extendStart, _extendEnd); + } CGContextDrawShading(context, shading); diff --git a/testing/Examples/CGShadingCreate/Info.plist b/examples/CGShadingCreate/Info.plist similarity index 88% rename from testing/Examples/CGShadingCreate/Info.plist rename to examples/CGShadingCreate/Info.plist index 982fb096..a2a52fd8 100644 --- a/testing/Examples/CGShadingCreate/Info.plist +++ b/examples/CGShadingCreate/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleExecutable - ${EXECUTABLE_NAME} + ${MACOSX_BUNDLE_EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${PRODUCT_NAME} + ${MACOSX_BUNDLE_BUNDLE_NAME} CFBundlePackageType APPL CFBundleSignature diff --git a/Examples/CGShadingCreate/English.lproj/InfoPlist.strings b/examples/CGShadingCreate/Resources/English.lproj/InfoPlist.strings similarity index 100% rename from Examples/CGShadingCreate/English.lproj/InfoPlist.strings rename to examples/CGShadingCreate/Resources/English.lproj/InfoPlist.strings diff --git a/Examples/CGShadingCreate/English.lproj/MainMenu.nib/classes.nib b/examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/classes.nib similarity index 100% rename from Examples/CGShadingCreate/English.lproj/MainMenu.nib/classes.nib rename to examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/classes.nib diff --git a/testing/Examples/CGShadingCreate/English.lproj/MainMenu.nib/info.nib b/examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/info.nib similarity index 93% rename from testing/Examples/CGShadingCreate/English.lproj/MainMenu.nib/info.nib rename to examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/info.nib index 83fee3e3..fa525046 100644 --- a/testing/Examples/CGShadingCreate/English.lproj/MainMenu.nib/info.nib +++ b/examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/info.nib @@ -18,7 +18,5 @@ IBSystem Version 8L2127 - IBUsesTextArchiving - diff --git a/examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/keyedobjects.nib b/examples/CGShadingCreate/Resources/English.lproj/MainMenu.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..851e8b6b6ced36773c3f6c384c9a6509be510070 GIT binary patch literal 30226 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 z%0A^i>E^Ub&$Bs9aQjQhru` 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 literal 0 HcmV?d00001 diff --git a/Examples/CGShadingCreate/main.m b/examples/CGShadingCreate/main.m similarity index 100% rename from Examples/CGShadingCreate/main.m rename to examples/CGShadingCreate/main.m diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 00000000..709a17e8 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.1) + +project(examples) + +add_subdirectory(TextEditor) +add_subdirectory(NSOpenGLView) +add_subdirectory(CGShadingCreate) diff --git a/examples/NSOpenGLView/CMakeLists.txt b/examples/NSOpenGLView/CMakeLists.txt new file mode 100644 index 00000000..51c66584 --- /dev/null +++ b/examples/NSOpenGLView/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.1) + +project(NSOpenGLView) + +file(GLOB_RECURSE RES_SOURCES "${PROJECT_SOURCE_DIR}/Resources/*") + +add_executable(NSOpenGLView MACOSX_BUNDLE main.m MyOpenGLView.m ${RES_SOURCES}) + +set_target_properties(NSOpenGLView PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/Info.plist" MACOSX_BUNDLE_BUNDLE_NAME "NSOpenGLView") + +foreach(RES_FILE ${RES_SOURCES}) + file(RELATIVE_PATH RES_PATH "${PROJECT_SOURCE_DIR}/Resources" ${RES_FILE}) + get_filename_component(REAL_RES_PATH "${RES_PATH}" DIRECTORY) + set_property(SOURCE ${RES_FILE} PROPERTY MACOSX_PACKAGE_LOCATION "Resources/${REAL_RES_PATH}") +endforeach(RES_FILE) + +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit -framework OpenGL") diff --git a/Examples/NSOpenGLView/Info.plist b/examples/NSOpenGLView/Info.plist similarity index 88% rename from Examples/NSOpenGLView/Info.plist rename to examples/NSOpenGLView/Info.plist index 4a38d5c2..2f1b79a5 100644 --- a/Examples/NSOpenGLView/Info.plist +++ b/examples/NSOpenGLView/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleExecutable - ${EXECUTABLE_NAME} + ${MACOSX_BUNDLE_EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${PRODUCT_NAME} + ${MACOSX_BUNDLE_BUNDLE_NAME} CFBundlePackageType APPL CFBundleSignature diff --git a/Examples/NSOpenGLView/MyOpenGLView.h b/examples/NSOpenGLView/MyOpenGLView.h similarity index 100% rename from Examples/NSOpenGLView/MyOpenGLView.h rename to examples/NSOpenGLView/MyOpenGLView.h diff --git a/Examples/NSOpenGLView/MyOpenGLView.m b/examples/NSOpenGLView/MyOpenGLView.m similarity index 99% rename from Examples/NSOpenGLView/MyOpenGLView.m rename to examples/NSOpenGLView/MyOpenGLView.m index 0be3ae52..bcd79316 100644 --- a/Examples/NSOpenGLView/MyOpenGLView.m +++ b/examples/NSOpenGLView/MyOpenGLView.m @@ -137,8 +137,9 @@ static void drawCocotron() { - (void) timer: (NSTimer *) timer { _angleX -= 1; - if (_angleX < 0) + if (_angleX < 0) { _angleX = 360; + } [self setNeedsDisplay: YES]; } diff --git a/Examples/NSOpenGLView/English.lproj/InfoPlist.strings b/examples/NSOpenGLView/Resources/English.lproj/InfoPlist.strings similarity index 100% rename from Examples/NSOpenGLView/English.lproj/InfoPlist.strings rename to examples/NSOpenGLView/Resources/English.lproj/InfoPlist.strings diff --git a/Examples/NSOpenGLView/English.lproj/Localizable-windows.strings b/examples/NSOpenGLView/Resources/English.lproj/Localizable-windows.strings similarity index 100% rename from Examples/NSOpenGLView/English.lproj/Localizable-windows.strings rename to examples/NSOpenGLView/Resources/English.lproj/Localizable-windows.strings diff --git a/Examples/NSOpenGLView/English.lproj/Localizable.strings b/examples/NSOpenGLView/Resources/English.lproj/Localizable.strings similarity index 100% rename from Examples/NSOpenGLView/English.lproj/Localizable.strings rename to examples/NSOpenGLView/Resources/English.lproj/Localizable.strings diff --git a/Examples/NSOpenGLView/English.lproj/MainMenu.nib/classes.nib b/examples/NSOpenGLView/Resources/English.lproj/MainMenu.nib/classes.nib similarity index 100% rename from Examples/NSOpenGLView/English.lproj/MainMenu.nib/classes.nib rename to examples/NSOpenGLView/Resources/English.lproj/MainMenu.nib/classes.nib diff --git a/Examples/NSOpenGLView/English.lproj/MainMenu.nib/info.nib b/examples/NSOpenGLView/Resources/English.lproj/MainMenu.nib/info.nib similarity index 100% rename from Examples/NSOpenGLView/English.lproj/MainMenu.nib/info.nib rename to examples/NSOpenGLView/Resources/English.lproj/MainMenu.nib/info.nib diff --git a/Examples/NSOpenGLView/English.lproj/MainMenu.nib/keyedobjects.nib b/examples/NSOpenGLView/Resources/English.lproj/MainMenu.nib/keyedobjects.nib similarity index 100% rename from Examples/NSOpenGLView/English.lproj/MainMenu.nib/keyedobjects.nib rename to examples/NSOpenGLView/Resources/English.lproj/MainMenu.nib/keyedobjects.nib diff --git a/Examples/NSOpenGLView/main.m b/examples/NSOpenGLView/main.m similarity index 100% rename from Examples/NSOpenGLView/main.m rename to examples/NSOpenGLView/main.m diff --git a/examples/TextEditor/CMakeLists.txt b/examples/TextEditor/CMakeLists.txt new file mode 100644 index 00000000..5b1442ee --- /dev/null +++ b/examples/TextEditor/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.1) + +project(TextEditor) + +file(GLOB_RECURSE RES_SOURCES "${PROJECT_SOURCE_DIR}/Resources/*") + +add_executable(TextEditor MACOSX_BUNDLE main.m MyDocument.m ${RES_SOURCES}) + +set_target_properties(TextEditor PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/Info.plist" MACOSX_BUNDLE_BUNDLE_NAME "Text Editor") + +foreach(RES_FILE ${RES_SOURCES}) + file(RELATIVE_PATH RES_PATH "${PROJECT_SOURCE_DIR}/Resources" ${RES_FILE}) + get_filename_component(REAL_RES_PATH "${RES_PATH}" DIRECTORY) + set_property(SOURCE ${RES_FILE} PROPERTY MACOSX_PACKAGE_LOCATION "Resources/${REAL_RES_PATH}") +endforeach(RES_FILE) + +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit") diff --git a/Examples/TextEditor/Info.plist b/examples/TextEditor/Info.plist similarity index 94% rename from Examples/TextEditor/Info.plist rename to examples/TextEditor/Info.plist index 1ff3250d..11d70397 100644 --- a/Examples/TextEditor/Info.plist +++ b/examples/TextEditor/Info.plist @@ -48,7 +48,7 @@ CFBundleExecutable - ${EXECUTABLE_NAME} + ${MACOSX_BUNDLE_EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier @@ -56,7 +56,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${PRODUCT_NAME} + ${MACOSX_BUNDLE_BUNDLE_NAME} CFBundlePackageType APPL CFBundleSignature diff --git a/Examples/TextEditor/MyDocument.h b/examples/TextEditor/MyDocument.h similarity index 100% rename from Examples/TextEditor/MyDocument.h rename to examples/TextEditor/MyDocument.h diff --git a/Examples/TextEditor/MyDocument.m b/examples/TextEditor/MyDocument.m similarity index 51% rename from Examples/TextEditor/MyDocument.m rename to examples/TextEditor/MyDocument.m index 6efdecaa..310a932a 100644 --- a/Examples/TextEditor/MyDocument.m +++ b/examples/TextEditor/MyDocument.m @@ -1,21 +1,22 @@ /* Copyright (c) 2006 Christopher J. W. Lloyd -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. */ #import "MyDocument.h" diff --git a/Examples/TextEditor/English.lproj/Credits.rtf b/examples/TextEditor/Resources/English.lproj/Credits.rtf similarity index 100% rename from Examples/TextEditor/English.lproj/Credits.rtf rename to examples/TextEditor/Resources/English.lproj/Credits.rtf diff --git a/Examples/TextEditor/English.lproj/MainMenu.nib/designable.nib b/examples/TextEditor/Resources/English.lproj/MainMenu.nib/designable.nib similarity index 100% rename from Examples/TextEditor/English.lproj/MainMenu.nib/designable.nib rename to examples/TextEditor/Resources/English.lproj/MainMenu.nib/designable.nib diff --git a/Examples/TextEditor/English.lproj/MainMenu.nib/keyedobjects.nib b/examples/TextEditor/Resources/English.lproj/MainMenu.nib/keyedobjects.nib similarity index 100% rename from Examples/TextEditor/English.lproj/MainMenu.nib/keyedobjects.nib rename to examples/TextEditor/Resources/English.lproj/MainMenu.nib/keyedobjects.nib diff --git a/Examples/TextEditor/English.lproj/MyDocument.nib/designable.nib b/examples/TextEditor/Resources/English.lproj/MyDocument.nib/designable.nib similarity index 100% rename from Examples/TextEditor/English.lproj/MyDocument.nib/designable.nib rename to examples/TextEditor/Resources/English.lproj/MyDocument.nib/designable.nib diff --git a/Examples/TextEditor/English.lproj/MyDocument.nib/keyedobjects.nib b/examples/TextEditor/Resources/English.lproj/MyDocument.nib/keyedobjects.nib similarity index 100% rename from Examples/TextEditor/English.lproj/MyDocument.nib/keyedobjects.nib rename to examples/TextEditor/Resources/English.lproj/MyDocument.nib/keyedobjects.nib diff --git a/examples/TextEditor/main.m b/examples/TextEditor/main.m new file mode 100644 index 00000000..150b3519 --- /dev/null +++ b/examples/TextEditor/main.m @@ -0,0 +1,25 @@ +/* Copyright (c) 2006 Christopher J. W. Lloyd + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. */ + +#import + +int main(int argc, char *argv[]) { + return NSApplicationMain(argc, (const char **) argv); +} diff --git a/makefiles/Foundation/Makefile b/makefiles/Foundation/Makefile deleted file mode 100644 index 34d7c6d7..00000000 --- a/makefiles/Foundation/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -NAME = Foundation - -link_files = rm -rf $(1);\ - mkdir -p $(1);\ - (\ - cd $(1);\ - ln -s ../../../Foundation/NS*.$(2) .;\ - ln -s ../../../Foundation/NS**/CF*.$(2) .;\ - ln -s ../../../Foundation/NS**/NS*.$(2) .;\ - ln -s ../../../Foundation/xml/NS*.$(2) .;\ - ln -s ../../../Foundation/platform_posix/NS*.$(2) .;\ - ln -s ../../../Foundation/platform_linux/NS*.$(2) .;\ - ln -s ../../../Foundation/NSException/debugHelpers.$(2) .;\ - ln -s ../../../Foundation/NSString/unibuffer.$(2) .;\ - ln -s ../../../Foundation/NSObject/objc_size_alignment.$(2) .;\ - ln -s ../../../Foundation/NSObject/forwarding.$(2) .;\ - ln -s ../../../Foundation/NSNetService/bonjour.$(2) .;\ - ln -s ../../../CoreFoundation/CF*.$(2) .;\ - ln -s ../../../CFNetwork/CF*.$(2) .;\ - );\ - -provide_src_files = ${shell (\ - test -f .srcFiles || (\ - $(call link_files,$(SRC_DIR),m)\ - (\ - cd $(SRC_DIR);\ - test `uname -m` = "i686" && (\ - ln -s ../../../Foundation/NSObject/platform_linux/msgSendv-linux.s .;\ - );\ - test `uname -m` = "x86_64" && (\ - ln -s ../../../Foundation/NSObject/platform_linux/msgSendv-x64.s .;\ - );\ - );\ - $(call link_files,$(INCLUDE_DIR),h)\ - (\ - cd $(INCLUDE_DIR);\ - ln -s ../../../Foundation/Foundation*.h .;\ - ln -s ../../../Foundation/NSCharacterSet/bitmapRepresentation.h .;\ - ln -s ../../../CoreFoundation/CoreFoundation.h .;\ - ln -s ../../../CoreServices/CoreServices.h .;\ - ln -s . Foundation;\ - ln -s . CoreFoundation;\ - ln -s . CoreServices;\ - ln -s . CFNetwork;\ - );\ - touch .srcFiles;\ - );\ -) > /dev/null} - - -STATIC_LIBS = $(GCC_LIB_DIR)/libobjc.a - -include ../Makefiles/Makefile.framework diff --git a/makefiles/Foundation/rsc/NSTimeZoneAbbreviations.plist b/makefiles/Foundation/rsc/NSTimeZoneAbbreviations.plist deleted file mode 120000 index 0c126493..00000000 --- a/makefiles/Foundation/rsc/NSTimeZoneAbbreviations.plist +++ /dev/null @@ -1 +0,0 @@ -../../../Foundation/NSTimeZone/NSTimeZoneAbbreviations.plist \ No newline at end of file diff --git a/makefiles/Foundation/rsc/NSUserDefaults.plist b/makefiles/Foundation/rsc/NSUserDefaults.plist deleted file mode 120000 index 64d0b993..00000000 --- a/makefiles/Foundation/rsc/NSUserDefaults.plist +++ /dev/null @@ -1 +0,0 @@ -../../../Foundation/English.lproj/NSUserDefaults.plist \ No newline at end of file diff --git a/makefiles/Makefile b/makefiles/Makefile deleted file mode 100644 index 2ca7e2ae..00000000 --- a/makefiles/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -PROJECTS = test Foundation - - -.PHONY: all -all: $(PROJECTS) - - -.PHONY: $(PROJECTS) -$(PROJECTS): - @$(MAKE) -C $@ - -test: Foundation - -.PHONY: clean -clean: - @$(foreach project,$(PROJECTS),$(MAKE) -C $(project) clean;) diff --git a/makefiles/Makefiles/Makefile.app b/makefiles/Makefiles/Makefile.app deleted file mode 100644 index 8cca1a0c..00000000 --- a/makefiles/Makefiles/Makefile.app +++ /dev/null @@ -1,31 +0,0 @@ -TYPE := app - -include $(dir $(lastword $(MAKEFILE_LIST)))/Makefile.common - -TARGET := $(TARGET_DIR)/Contents/Linux/$(NAME).bin -TARGET_WRAPPER := $(basename $(TARGET)) - -CFLAGS += $(addprefix -I../,$(addsuffix /$(INCLUDE_DIR),$(FRAMEWORKS))) -LDFLAGS += $(foreach framework,$(FRAMEWORKS),\ - -L../$(framework)/$(BUILD_DIR)/$(framework).framework/Versions/Current\ - -l$(framework)\ -) -SPACE = $(EMPTY) $(EMPTY) -LD_PATH = $(subst $(SPACE),:,$(strip $(foreach framework,$(FRAMEWORKS),\ - $(CURDIR)/../$(framework)/$(BUILD_DIR)/$(framework).framework/Versions/Current))) - - -$(TARGET): $(O_FILES) - @echo "$(GREEN)[LD]$(NORMAL)" $@ - @mkdir -p $(dir $@) - @$(OCC) -o $@ $< $(LDFLAGS) - -$(TARGET_WRAPPER): $(TARGET) - @echo "$(YELLOW)[GN]$(NORMAL)" $@ - @echo '#/bin/sh' > $@ - @echo 'export LD_LIBRARY_PATH=$${LD_LIBRARY_PATH}:$(LD_PATH)' >> $@ - @echo '`dirname $$0`/$(notdir $<) $$@' >> $@ - @chmod +x $@ - -$(TARGET_DIR): $(TARGET_WRAPPER) - diff --git a/makefiles/Makefiles/Makefile.common b/makefiles/Makefiles/Makefile.common deleted file mode 100644 index ec35c91e..00000000 --- a/makefiles/Makefiles/Makefile.common +++ /dev/null @@ -1,105 +0,0 @@ -ifndef NAME -$(error NAME undefined) -endif -ifndef TYPE -$(error TYPE undefined) -endif - -INCLUDE_DIR := include -BUILD_DIR := build -SRC_DIR := src -RESOURCES_DIR := rsc -TARGET_DIR := $(BUILD_DIR)/$(NAME).$(TYPE) - -GCC_DIR = /usr/ -ifeq ($(shell uname -m),x86_64) -GCC_LIB_DIR = /usr/local/lib -else -GCC_LIB_DIR = /usr/local/lib -endif - -CFLAGS = -I $(INCLUDE_DIR) -CFLAGS += -fobjc-exceptions -fconstant-string-class=NSConstantString -fgnu-runtime -fPIC -CFLAGS += -g -O2 -Wall -std=gnu99 -CFLAGS += -Wno-unknown-pragmas -CFLAGS += -DOBJC_EXPORT= -CFLAGS += -DLINUX -D_GNU_SOURCE -D__LITTLE_ENDIAN__ -DGCC_RUNTIME_3 -D_FORTIFY_SOURCE=1 - -LDFLAGS += -Wl,--no-undefined -fPIC -LDFLAGS += -lc -lgcc_s -lm -ldl -lpthread - - -GCC = $(GCC_DIR)/bin/gcc -USE_CLANG=1 -ifdef USE_CLANG -OCC = /usr/bin/clang -CFLAGS += -I $(GCC_LIB_DIR)/gcc/$(shell $(GCC) -dumpmachine)/$(shell $(GCC) -dumpversion)/include -# make sure your clang works with '#include ' and blocks -# see http://sources.redhat.com/bugzilla/show_bug.cgi?id=11157 -CFLAGS += -fblocks -# make sure you have the BlocksRuntime -# (http://stackoverflow.com/questions/2297765/which-libraries-do-you-need-to-link-against-for-a-clang-program-using-blocks) -# If your clang does not need it, comment it out. -LDFLAGS += -lBlocksRuntime -else -OCC = $(GCC) -endif - - -ESC := `echo -en '\033'` -GRAY := $(ESC)[1;30m -RED := $(ESC)[1;31m -GREEN := $(ESC)[1;32m -YELLOW := $(ESC)[1;33m -BLUE := $(ESC)[1;34m -PURPLE := $(ESC)[1;35m -CYAN := $(ESC)[1;36m -WHITE := $(ESC)[1;37m -NORMAL := $(ESC)`echo -en '[m\017'` -RIGHT := `echo -en '\015'`$(ESC)[500C$(ESC)[6D - - - -compute_build_files = $(patsubst $(SRC_DIR)/%,$(BUILD_DIR)/%,$(patsubst %.$(1),%.$(2),$(wildcard $(SRC_DIR)/*.$(1)))) - -link = echo "$(CYAN)[LN]$(NORMAL) $(2)"; ln -sf $(1) $(2); -copy = echo "$(CYAN)[CP]$(NORMAL) $(2)"; cp $(1) $(2); - - -O_FILES := $(call provide_src_files)$(call compute_build_files,m,o) -ASM_O_FILES := $(call compute_build_files,s,s.o) -DEP_FILES := $(patsubst %.o,%.dep,$(O_FILES)) - - -.PHONY: all -all: _all - -$(BUILD_DIR)/%.o: $(SRC_DIR)/%.m $(BUILD_DIR)/%.dep - @echo "$(BLUE)[CC]$(NORMAL)" $@ - @mkdir -p $(dir $@) - @#$(OCC) -E $(CFLAGS) -o $@.ccc $< - @$(OCC) -c $(CFLAGS) -o $@ $< - -$(BUILD_DIR)/%.s.o: $(SRC_DIR)/%.s - @echo "$(BLUE)[AS]$(NORMAL)" $@ - @mkdir -p $(dir $@) - @$(OCC) -c -o $@ $< - -$(BUILD_DIR)/%.dep: $(SRC_DIR)/%.m - @echo "$(RED)[MM]$($NORMAL)$(NORMAL)" $@ - @mkdir -p $(dir $@) - @$(OCC) -MM -o $@ -MT $(patsubst %.dep,%.o,$@) $(CFLAGS) $< - - - -.PHONY: clean -clean: - rm -rf $(BUILD_DIR) - -.PHONY: _all -_all: $(TARGET_DIR) - - -ifneq (clean,$(MAKECMDGOALS)) --include $(DEP_FILES) -endif diff --git a/makefiles/Makefiles/Makefile.framework b/makefiles/Makefiles/Makefile.framework deleted file mode 100644 index 9d31cded..00000000 --- a/makefiles/Makefiles/Makefile.framework +++ /dev/null @@ -1,37 +0,0 @@ -TYPE := framework - -include $(dir $(lastword $(MAKEFILE_LIST)))/Makefile.common - -VERSIONS_DIR := $(TARGET_DIR)/Versions -ACTUAL_VERSION_DIR := $(VERSIONS_DIR)/A -CURRENT_VERSION_DIR := $(VERSIONS_DIR)/Current -TARGET := $(ACTUAL_VERSION_DIR)/lib$(NAME).so -TARGET_WRAPPER := $(ACTUAL_VERSION_DIR)/$(NAME) -TARGET_SHORTCUT := $(TARGET_DIR)/$(NAME) -RESOURCES := $(TARGET_DIR)/Resources - - - -$(TARGET): $(O_FILES) $(ASM_O_FILES) - @echo "$(GREEN)[LD]$(NORMAL)" $@ - @mkdir -p $(@D) - @$(OCC) -rdynamic -shared -o $@ $^ $(STATIC_LIBS) $(LDFLAGS) - -$(TARGET_WRAPPER): $(TARGET) - @$(call link,$(notdir $<),$@) - -$(ACTUAL_VERSION_DIR): $(TARGET_WRAPPER) - -$(CURRENT_VERSION_DIR): $(ACTUAL_VERSION_DIR) - @$(call link,$(notdir $<),$@) - -$(TARGET_SHORTCUT): $(CURRENT_VERSION_DIR) - @$(call link,Versions/Current/$(NAME),$@) - -$(RESOURCES)/%: $(RESOURCES_DIR)/% - @mkdir -p $(dir $@) - @$(call copy,$<,$@) - -$(RESOURCES): $(addprefix $(RESOURCES)/,$(notdir $(wildcard $(RESOURCES_DIR)/*))) - -$(TARGET_DIR): $(TARGET_SHORTCUT) $(RESOURCES) diff --git a/makefiles/README.txt b/makefiles/README.txt deleted file mode 100644 index 664ff96e..00000000 --- a/makefiles/README.txt +++ /dev/null @@ -1,27 +0,0 @@ - -Tested on Ubuntu 12.04 Desktop 64-bit - -cd cocotron/makefiles -make - -This will compile cocotron's Foundation using the libobjc2 runtime provided below into a .so and compile a test program against it in test. - - -PRE-REQUIREMENTS: - -sudo apt-get install mercurial -y -sudo apt-get install clang -sudo apt-get install libblocksruntime-dev -y -sudo apt-get install git -y -sudo apt-get install g++ - - -git clone https://github.com/timburks/gnustep-libobjc2.git -echo Installing libobjc2 -export CC=clang - -cd gnustep-libobjc2 -make clean -make -sudo make install - diff --git a/makefiles/test/Makefile b/makefiles/test/Makefile deleted file mode 100644 index 05413838..00000000 --- a/makefiles/test/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -NAME = test -FRAMEWORKS = Foundation - -include ../Makefiles/Makefile.app diff --git a/makefiles/test/src/test.m b/makefiles/test/src/test.m deleted file mode 100644 index 10880339..00000000 --- a/makefiles/test/src/test.m +++ /dev/null @@ -1,136 +0,0 @@ -#include "Foundation/Foundation.h" - -@interface Hello : NSObject { -} - -+ world; - -- (void) greetz; - -@end - -@implementation Hello : NSObject - -+ world { - return [[[self alloc] init] autorelease]; -} - -- (void) greetz { - printf("Hallo Welt!\n"); -} - -- (long long) forwardTest { - return 123456789012LL; -} - -//- forwardSelector: (SEL)sel arguments: (void *)args -//{ -// IMP imp = class_getMethodImplementation([self class], -// @selector(forwardTest)); //(id)((int)[self forwardTest]); return imp(self, -// @selector(forwardTest)); -//} - -- (int) invocation: (char) a1 test: (char *) a2 method: (long long) a3 { - fprintf(stdout, "original with %c, %s, %lld\n", a1, a2, a3); - return 123456789; -} - -- (long long) iinvocation: (char) a1 test: (char *) a2 method: (long long) a3 { - fprintf(stdout, "original with %c, %s, %lld\n", a1, a2, a3); - return 123456789012345678LL; -} - -@end - -@interface Dummy : NSObject - -- (id) foo; - -@end - -@implementation Dummy : NSObject - -- (id) foo { - return nil; -} - -- (char) bar { - return 0; -} - -- (long long) huh { - return 0; -} - -- (int) invocation: (char) a1 test: (char *) a2 method: (long long) a3 { - fprintf(stdout, "dummy with %c, %s, %lld\n", a1, a2, a3); - return 987654321; -} - -- (long long) iinvocation: (char) a1 test: (char *) a2 method: (long long) a3 { - fprintf(stdout, "dummy with %c, %s, %lld\n", a1, a2, a3); - return 987654321098765432LL; -} - -@end - -#ifdef __clang__ -@interface Blocker : NSObject - -+ (NSString *) doSomethingWith: (NSString * (^)(NSString *) ) block; - -@end - -@implementation Blocker - -+ (NSString *) doSomethingWith: (NSString * (^)(NSString *) ) block { - return [NSString stringWithFormat: @"The block output: %@", - block(@"the block argument")]; -} - -@end -#endif - -int main(int argc, char **argv) { - id pool = [[NSAutoreleasePool alloc] init]; - [[Hello world] greetz]; - NSLog(@"Hallo echte Welt!"); - // NSLog(@"-- %lld --", [[Hello world] bar]); - // NSLog(@"-- %lld --", [[Hello world] foo]); - // NSLog(@"-- %lld --", [[Hello world] huh]); - // NSLog(@"-- %lld --", [[Hello world] performSelector: - // NSSelectorFromString(@"nix")]); NSLog(@"-- %lld --", [[Hello world] - // performSelector: NSSelectorFromString(@"bar")]); - SEL sel = @selector(iinvocation:test:method:); - NSInvocation *i = [NSInvocation - invocationWithMethodSignature: - [[Hello world] methodSignatureForSelector: sel]]; - // int r; - long long r = 1; - char a1 = 'x'; - char *a2 = "Hallo du"; - long long a3 = 1234567890123456LL; - [i setSelector: sel]; - [i setArgument: &a1 atIndex: 2]; - [i setArgument: &a2 atIndex: 3]; - [i setArgument: &a3 atIndex: 4]; - //[i invokeWithTarget: [Hello world]]; - [i invokeWithTarget: [[[Dummy alloc] init] autorelease]]; - [i getReturnValue: &r]; - // NSLog(@"invocation returned %d", r); - printf("invocation returned %lld\n", r); - -#ifdef __clang__ - NSLog(@"Lucky you! Now I will try something with blocks …"); - NSLog(@"The call with block output: %@", - [Blocker doSomethingWith: ^(NSString *arg) { - return [NSString stringWithFormat: @"The block got: %@", arg]; - }]); -#else - NSLog(@"You did not compile with clang … be assured that you are missing " - @"something."); -#endif - - [pool release]; - return 0; -} diff --git a/objc/Info.plist b/objc/Info.plist deleted file mode 100644 index 01cb47da..00000000 --- a/objc/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.objc - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleSignature - OBJC - CFBundleVersion - 1.0 - NSPrincipalClass - - - diff --git a/objc/ObjCArray.c b/objc/ObjCArray.c deleted file mode 100644 index fd69337c..00000000 --- a/objc/ObjCArray.c +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "ObjCArray.h" -#import "objc_log.h" -#import "objc_malloc.h" - -OBJCArray *OBJCArrayNew() { - OBJCArray *result = objc_calloc(1, sizeof(OBJCArray)); - - result->data = NULL; - result->count = 0; - result->size = 0; - - return result; -} - -void OBJCArrayDealloc(OBJCArray *array) { - if(array->data != NULL) - objc_free(array->data); - objc_free(array); -} - -void OBJCArrayAdd(OBJCArray *array, void *item) { - if(array->count >= array->size) { - if(array->data == NULL) - array->data = objc_calloc(1, sizeof(void *)); - else - array->data = objc_realloc(array->data, (array->size * sizeof(void *)) + sizeof(void *)); - array->size++; - } - - array->data[array->count++] = item; -} - -unsigned long OBJCArrayCount(OBJCArray *array) { - return array->count; -} - -void *OBJCArrayItemAtIndex(OBJCArray *array, unsigned long index) { - if(index > array->count) - OBJCRaiseException("OBJCArrayIndexBeyondBounds", "OBJCArrayItemAtIndex index (%d) beyond bounds (%d)", index, array->count); - - return array->data[index]; -} - -void OBJCArrayRemoveItemAtIndex(OBJCArray *array, unsigned long index) { - if(index > array->count) - OBJCRaiseException("OBJCArrayIndexBeyondBounds", "OBJCArrayItemAtIndex index (%d) beyond bounds (%d)", index, array->count); - - while(index < array->count - 1) { - array->data[index] = array->data[index + 1]; - index++; - } - array->count--; -} - -void *OBJCArrayEnumerate(OBJCArray *array, unsigned long *enumerator) { - if(*enumerator < array->count) - return array->data[(*enumerator)++]; - - return NULL; -} diff --git a/objc/ObjCArray.h b/objc/ObjCArray.h deleted file mode 100755 index 808a752f..00000000 --- a/objc/ObjCArray.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef struct { - void **data; - unsigned long size; - unsigned long count; -} OBJCArray; - -OBJCArray *OBJCArrayNew(void); -void OBJCArrayDealloc(OBJCArray *array); - -OBJC_EXPORT void OBJCArrayAdd(OBJCArray *vector, void *item); -OBJC_EXPORT unsigned long OBJCArrayCount(OBJCArray *array); -OBJC_EXPORT void *OBJCArrayItemAtIndex(OBJCArray *vector, unsigned long index); - -OBJC_EXPORT void OBJCArrayRemoveItemAtIndex(OBJCArray *vector, unsigned long index); - -OBJC_EXPORT void *OBJCArrayEnumerate(OBJCArray *vector, unsigned long *enumerator); diff --git a/objc/ObjCDynamicModule.c b/objc/ObjCDynamicModule.c deleted file mode 100755 index 0ad76e7a..00000000 --- a/objc/ObjCDynamicModule.c +++ /dev/null @@ -1,10 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "ObjCDynamicModule.h" -#import "ObjCModule.h" -#import "objc_log.h" diff --git a/objc/ObjCDynamicModule.h b/objc/ObjCDynamicModule.h deleted file mode 100755 index 8f6c6e35..00000000 --- a/objc/ObjCDynamicModule.h +++ /dev/null @@ -1,9 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import diff --git a/objc/ObjCHashTable.c b/objc/ObjCHashTable.c deleted file mode 100644 index 3585ebae..00000000 --- a/objc/ObjCHashTable.c +++ /dev/null @@ -1,112 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "ObjCHashTable.h" -#import "objc_malloc.h" - -OBJCHashTable *OBJCCreateHashTable(unsigned capacity) { - OBJCHashTable *result = objc_calloc(1, sizeof(OBJCHashTable)); - - result->count = 0; - result->nBuckets = 10; - result->buckets = objc_calloc(result->nBuckets, sizeof(OBJCHashBucket *)); - - return result; -} - -const void *OBJCHashInsertValueForKey(OBJCHashTable *table, const char *key, const void *value) { - unsigned hash = OBJCHashString(key); - int i = hash % table->nBuckets; - OBJCHashBucket *j; - - for(j = table->buckets[i]; j != NULL; j = j->next) - if(OBJCIsStringEqual(j->key, key)) { - j->key = key; - j->value = value; - return value; - } - - if(table->count >= table->nBuckets) { - int nBuckets = table->nBuckets; - OBJCHashBucket **buckets = table->buckets, *next; - - table->nBuckets = nBuckets * 2; - table->buckets = objc_calloc(table->nBuckets, sizeof(OBJCHashBucket *)); - - for(i = 0; i < nBuckets; i++) - for(j = buckets[i]; j != NULL; j = next) { - int newi = OBJCHashString(j->key) % table->nBuckets; - - next = j->next; - j->next = table->buckets[newi]; - table->buckets[newi] = j; - } - objc_free(buckets); - i = hash % table->nBuckets; - } - - j = objc_malloc(sizeof(OBJCHashBucket)); - j->key = key; - j->value = value; - j->next = table->buckets[i]; - table->buckets[i] = j; - table->count++; - - return value; -} - -OBJCHashEnumerator OBJCEnumerateHashTable(OBJCHashTable *table) { - OBJCHashEnumerator state; - - state.table = table; - for(state.i = 0; state.i < table->nBuckets; state.i++) - if(table->buckets[state.i] != NULL) - break; - state.j = (state.i < table->nBuckets) ? table->buckets[state.i] : NULL; - - return state; -} - -const char *OBJCNextHashEnumeratorKey(OBJCHashEnumerator *state) { - const char *key; - - if(state->j == NULL) - return NULL; - - key = state->j->key; - - if((state->j = state->j->next) != NULL) - return key; - - for(state->i++; state->i < state->table->nBuckets; state->i++) - if((state->j = state->table->buckets[state->i]) != NULL) - return key; - - state->j = NULL; - - return key; -} - -const void *OBJCNextHashEnumeratorValue(OBJCHashEnumerator *state) { - const void *value; - - if(state->j == NULL) - return NULL; - - value = state->j->value; - - if((state->j = state->j->next) != NULL) - return value; - - for(state->i++; state->i < state->table->nBuckets; state->i++) - if((state->j = state->table->buckets[state->i]) != NULL) - return value; - - state->j = NULL; - - return value; -} diff --git a/objc/ObjCHashTable.h b/objc/ObjCHashTable.h deleted file mode 100644 index 817606e3..00000000 --- a/objc/ObjCHashTable.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#import - -typedef struct { - unsigned long count; - unsigned long nBuckets; - struct OBJCHashBucket **buckets; -} OBJCHashTable; - -typedef struct OBJCHashBucket { - struct OBJCHashBucket *next; - const char *key; - const void *value; -} OBJCHashBucket; - -typedef struct { - OBJCHashTable *table; - long i; - struct OBJCHashBucket *j; -} OBJCHashEnumerator; - -OBJCHashTable *OBJCCreateHashTable(unsigned capacity); -const void *OBJCHashInsertValueForKey(OBJCHashTable *table, const char *key, const void *value); -OBJCHashEnumerator OBJCEnumerateHashTable(OBJCHashTable *table); -const char *OBJCNextHashEnumeratorKey(OBJCHashEnumerator *enumerator); -const void *OBJCNextHashEnumeratorValue(OBJCHashEnumerator *enumerator); - -static inline unsigned OBJCHashString(const void *data) { - const unsigned char *s = data; - unsigned result = 0, i; - - if(s != NULL) { - result = 5381; - - for(i = 0; s[i] != '\0'; i++) - result = (((result << 5) | (result >> 27)) + result) + s[i]; // hash*33 % (2^32-1) + c (barring overflow during additions) - } - - return result; -}; - -static inline int OBJCIsStringEqual(const void *data1, const void *data2) { - - return (strcmp((char *)data1, (char *)data2)) ? NO : YES; -}; - -static inline const void *OBJCHashValueForKey(OBJCHashTable *table, const char *key) { - int i = OBJCHashString(key) % table->nBuckets; - OBJCHashBucket *j; - - for(j = table->buckets[i]; j != NULL; j = j->next) - if(OBJCIsStringEqual(j->key, key)) - return j->value; - - return NULL; -} diff --git a/objc/ObjCModule.c b/objc/ObjCModule.c deleted file mode 100644 index d7dcaf9b..00000000 --- a/objc/ObjCModule.c +++ /dev/null @@ -1,514 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "ObjCModule.h" -#import "objc_class.h" -#import "objc_log.h" -#import "objc_malloc.h" -#import "objc_protocol.h" -#import "objc_sel.h" -#if defined(__APPLE__) -#import "OBJCRegisterModule_Darwin.h" -#endif - -#import - -#define INITIAL_CLASS_ARRAY_SIZE 512 - -#ifdef SOLARIS -#import -#define PATH_MAX 1024 -#endif - -#ifdef WIN32 -// #import -#else -#define __USE_GNU // for dladdr() -#import -#import -#import -#import -#endif -#ifdef BSD -#import -#endif - -static Class *unresolvedClasses = NULL; -static int unresolvedClassesSize = 0; -static Class *sentLoadMessageClasses = NULL; -static int sentLoadMessageClassesSize = 0; - -static OBJCArray *OBJCObjectFileImageArray(void) { - static OBJCArray *objectFileImageArray = NULL; - - if(objectFileImageArray == NULL) - objectFileImageArray = OBJCArrayNew(); - - return objectFileImageArray; -} - -static OBJCObjectFile *OBJCObjectFileWithPath(const char *path) { - OBJCObjectFile *result = objc_calloc(1, sizeof(OBJCObjectFile)); - - result->path = objc_calloc(strlen(path) + 1, sizeof(char)); - strcpy(result->path, path); - result->moduleArray = OBJCArrayNew(); - - return result; -} - -OBJCObjectFile *OBJCUniqueObjectFileWithPath(const char *path) { - OBJCObjectFile *result; - OBJCArray *array = OBJCObjectFileImageArray(); - unsigned long arrayIndex = 0; - - while((result = OBJCArrayEnumerate(array, &arrayIndex)) != NULL) { - if(strcmp(result->path, path) == 0) - return result; - } - - result = OBJCObjectFileWithPath(path); - - OBJCArrayAdd(array, result); - - return result; -} - -OBJCObjectFile *OBJCObjectFileForPointer(void *ptr) { -#ifdef WIN32 - // GetModuleHandleEx would work here, but it is only available on XP and above - return NULL; -#else - Dl_info info; - - if(!dladdr(ptr, &info)) { - OBJCRaiseException("OBJCInternalInconsistencyException", "Can't resolve object file image for module"); - return NULL; - } - - return OBJCUniqueObjectFileWithPath(info.dli_fname); -#endif -} - -void OBJCInitializeProcess() { -#if defined(__APPLE__) - OBJCRegisterModule_Darwin(NULL); -#endif -} - -OBJCObjectFile *OBJCMainObjectFile() { - static OBJCObjectFile *mainObjectFile = NULL; - - if(mainObjectFile == NULL) { - uint32_t length = 0; - - _NSGetExecutablePath(NULL, &length); - - char path[length + 1]; - - if(_NSGetExecutablePath(path, &length) < 0) - path[0] = '\0'; - else - path[length] = '\0'; - - mainObjectFile = OBJCUniqueObjectFileWithPath(path); - } - - return mainObjectFile; -} - -void OBJCLinkModuleToActiveObjectFile(OBJCModule *module) { - OBJCObjectFile *objectFile = OBJCObjectFileForPointer(module); - - if(objectFile == NULL) - objectFile = OBJCMainObjectFile(); - - if(objectFile != NULL) - OBJCArrayAdd(objectFile->moduleArray, module); -} - -static OBJCArray *OBJCModuleQueueWithReset(BOOL reset) { - static OBJCArray *ownershipQueue = NULL; - OBJCArray *result; - - if(ownershipQueue == NULL) - ownershipQueue = OBJCArrayNew(); - - result = ownershipQueue; - - if(reset) - ownershipQueue = NULL; - - return result; -} - -static OBJCArray *OBJCModuleQueue() { - return OBJCModuleQueueWithReset(NO); -} - -static void OBJCSymbolTableRegisterSelectors(OBJCSymbolTable *symbolTable) { - objc_selector_internal *selectorReferences = symbolTable->selectorReferences; - - if(selectorReferences != NULL) { - while(objc_getSelectorReferenceName(selectorReferences) != NULL) { - objc_setSelectorReferenceName(&selectorReferences, sel_registerNameNoCopy(objc_getSelectorReferenceName(selectorReferences))); - selectorReferences++; - } - } -} - -void OBJCAddToUnResolvedClasses(Class class) { - Class superClass = class->super_class; - - //check for root object - if(superClass) { - for(int i = 0; i < unresolvedClassesSize; i++) { - Class currentClass = unresolvedClasses[i]; - if(currentClass == NULL || currentClass == (Class)-1) { - unresolvedClasses[i] = class; - return; - } - } - int newCSize = 0; - if(unresolvedClassesSize == 0) { - newCSize = INITIAL_CLASS_ARRAY_SIZE; - } else { - newCSize = 2 * unresolvedClassesSize; - } - unresolvedClasses = (Class *)realloc(unresolvedClasses, newCSize * sizeof(Class)); - - for(int i = unresolvedClassesSize; i < newCSize; i++) { - unresolvedClasses[i] = NULL; - } - unresolvedClasses[unresolvedClassesSize] = class; - - unresolvedClassesSize = newCSize; - } -} - -BOOL OBJCCheckClassIsResolved(Class class) { - if(class->super_class == 0) { - //root object - return YES; - } - - Class superClass; - if(!(class->info & CLASS_INFO_LINKED)) { - return NO; - } else { - superClass = class_getSuperclass(class); - } - - if(superClass != Nil) { - return OBJCCheckClassIsResolved(superClass); - } else { - return NO; - } -} -void OBJCSendLoadMessage(Class class) { - - int i = 0; - - for(; i < sentLoadMessageClassesSize; i++) { - if(sentLoadMessageClasses[i] == NULL) { - break; - } else if(sentLoadMessageClasses[i] == class) { - //message already sent - return; - } - } - - if(class->super_class != 0) { - //send load first to the superclass - OBJCSendLoadMessage(class->super_class); - } - - //check for space and increase size if neeeded - if(i == sentLoadMessageClassesSize) { - int newCSize = 0; - if(sentLoadMessageClassesSize == 0) { - newCSize = INITIAL_CLASS_ARRAY_SIZE; - } else { - newCSize = 2 * sentLoadMessageClassesSize; - } - sentLoadMessageClasses = (Class *)realloc(sentLoadMessageClasses, newCSize * sizeof(Class)); - for(int j = sentLoadMessageClassesSize; j < newCSize; j++) { - sentLoadMessageClasses[j] = NULL; - } - sentLoadMessageClasses[sentLoadMessageClassesSize] = class; - sentLoadMessageClassesSize = newCSize; - } else { - sentLoadMessageClasses[i] = class; - } - - SEL loadSelector = sel_registerName("load"); - Method m = class_getClassMethod(class, loadSelector); - if(m) { - IMP imp = method_getImplementation(m); - if(imp) { - (*imp)((id) class, loadSelector); - } - } -} -void OBJCSendLoadMessages() { - - //until NSObject is not in runtime we don't need to check - if(objc_lookUpClass("NSObject") == Nil) { - return; - } - - for(int i = 0; i < unresolvedClassesSize; i++) { - Class class = unresolvedClasses[i]; - if(class == NULL) { - continue; - } - - if(OBJCCheckClassIsResolved(class) == YES) { - //remove it from unresolved - unresolvedClasses[i] = NULL; - } else { - //still unresolved classes, wait for more classes - return; - } - } - - int i, capacity = objc_getClassList(NULL, 0); - Class list[capacity]; - - objc_getClassList(list, capacity); - - for(i = 0; i < capacity; i++) { - - OBJCSendLoadMessage(list[i]); - } -} - -static void OBJCSymbolTableRegisterClasses(OBJCSymbolTable *symbolTable) { - unsigned i, count = symbolTable->classCount; - - for(i = 0; i < count; i++) { - struct objc_class *class = (struct objc_class *)symbolTable->definitions[i]; - - // mark class and metaclass as having a direct method list pointer - class->info |= CLASS_NO_METHOD_ARRAY; - class->isa->info |= CLASS_NO_METHOD_ARRAY; - - OBJCRegisterClass(class); - OBJCAddToUnResolvedClasses(class); - - if(strcmp(class_getName(class), "Protocol") == 0) { - // Fix protocol classes where isa is not yet set. This is the case for all - // classes loaded before Protocol class is loaded. - int i, capacity = objc_getClassList(NULL, 0); - Class list[capacity]; - - objc_getClassList(list, capacity); - - for(i = 0; i < capacity; i++) { - Class class = list[i]; - struct objc_protocol_list *protocols; - - for(protocols = class->protocols; protocols != NULL; protocols = protocols->next) { - unsigned i; - - for(i = 0; i < protocols->count; i++) { - OBJCProtocolTemplate *template = (OBJCProtocolTemplate *)protocols->list[i]; - - OBJCRegisterProtocol(template); - } - } - } - } - } -} - -static void OBJCSymbolTableRegisterCategories(OBJCSymbolTable *symbolTable) { - static OBJCArray *unlinkedCategories = NULL; - - unsigned offset = symbolTable->classCount; - unsigned i, count = symbolTable->categoryCount; - - if(unlinkedCategories != NULL && objc_lookUpClass("Protocol") != Nil) { - int unlinkedIndex = unlinkedCategories->count; - - while(--unlinkedIndex >= 0) { - Category category = OBJCArrayItemAtIndex(unlinkedCategories, unlinkedIndex); - Class class = (Class)objc_lookUpClass(category->className); - - if(class != Nil) { - OBJCRegisterCategoryInClass(category, class); - OBJCArrayRemoveItemAtIndex(unlinkedCategories, unlinkedIndex); - } - } - } - - for(i = 0; i < count; i++) { - Category category = (Category)symbolTable->definitions[offset + i]; - Class class = (Class)objc_lookUpClass(category->className); - - if(class != Nil && objc_lookUpClass("Protocol") != Nil) - OBJCRegisterCategoryInClass(category, class); - else { - if(unlinkedCategories == NULL) - unlinkedCategories = OBJCArrayNew(); - - OBJCArrayAdd(unlinkedCategories, category); - } - } -} - -// GNU style for now -static void OBJCSymbolTableRegisterStringsIfNeeded(OBJCSymbolTable *symbolTable) { - static OBJCArray *unlinkedObjects = NULL; - - unsigned long offset = symbolTable->classCount + symbolTable->categoryCount; - OBJCStaticInstanceList **listOfLists = symbolTable->definitions[offset]; - - if(unlinkedObjects != NULL) { - int count = unlinkedObjects->count; - - while(--count >= 0) { - OBJCStaticInstanceList *staticInstances = OBJCArrayItemAtIndex(unlinkedObjects, count); - Class class = (Class)objc_lookUpClass(staticInstances->name); - - if(class != Nil) { - unsigned i; - - for(i = 0; staticInstances->instances[i] != nil; i++) - object_setClass(staticInstances->instances[i], class); - - OBJCArrayRemoveItemAtIndex(unlinkedObjects, count); - } - } - } - - if(listOfLists != NULL) { - for(; *listOfLists != NULL; listOfLists++) { - OBJCStaticInstanceList *staticInstances = *listOfLists; - Class class = (Class)objc_lookUpClass(staticInstances->name); - unsigned i; - - if(class != Nil) { - for(i = 0; staticInstances->instances[i] != nil; i++) - object_setClass(staticInstances->instances[i], class); - } else { - if(unlinkedObjects == NULL) - unlinkedObjects = OBJCArrayNew(); - - OBJCArrayAdd(unlinkedObjects, staticInstances); - } - } - } -} - -static void OBJCSymbolTableRegisterProtocolsIfNeeded(OBJCSymbolTable *symbolTable) { -// FIX or address issue -#if 0 -// this needs to handle unknown protocol class - unsigned offset=symbolTable->classCount+symbolTable->categoryCount+symbolTable->objectDefCount; - unsigned i,count=symbolTable->protocolDefCount; - - for(i=0;idefinitions[offset+i]; - OBJCRegisterProtocol(template); - } -#endif -} - -void OBJCQueueModule(OBJCModule *module) { - if(module->symbolTable != NULL) { - OBJCArrayAdd(OBJCModuleQueue(), module); - OBJCLinkModuleToActiveObjectFile(module); - OBJCSymbolTableRegisterSelectors(module->symbolTable); - OBJCSymbolTableRegisterClasses(module->symbolTable); - OBJCSymbolTableRegisterCategories(module->symbolTable); -#if !defined(__APPLE__) - OBJCSymbolTableRegisterStringsIfNeeded(module->symbolTable); - OBJCSymbolTableRegisterProtocolsIfNeeded(module->symbolTable); -#endif - OBJCLinkClassTable(); - -#if !defined(__APPLE__) - OBJCSendLoadMessages(); -#endif - } -} - -void OBJCResetModuleQueue(void) { - OBJCArray *queue = OBJCModuleQueueWithReset(YES); - - OBJCArrayDealloc(queue); -} - -void OBJCLinkQueuedModulesToObjectFileWithPath(const char *path) { - OBJCObjectFile *objectFile = OBJCUniqueObjectFileWithPath(path); - OBJCArray *queue = OBJCModuleQueueWithReset(YES); - OBJCModule *module; - unsigned long state = 0; - - while((module = OBJCArrayEnumerate(queue, &state)) != NULL) - OBJCArrayAdd(objectFile->moduleArray, module); - - OBJCArrayDealloc(queue); -} - -OBJCObjectFile *OBJCObjectFileFromClass(Class class) { - OBJCArray *array = OBJCObjectFileImageArray(); - int count = array->count; - - while(--count >= 0) { - OBJCObjectFile *objectFile = OBJCArrayItemAtIndex(array, count); - OBJCModule *module; - unsigned long moduleIndex = 0; - - while((module = OBJCArrayEnumerate(objectFile->moduleArray, &moduleIndex)) != NULL) { - unsigned classIndex; - - if(module->symbolTable != NULL) { - for(classIndex = 0; classIndex < module->symbolTable->classCount; classIndex++) { - if(module->symbolTable->definitions[classIndex] == class) { - return objectFile; - } - } - } - } - } - - return NULL; -} - -const char *class_getImageName(Class cls) { - OBJCObjectFile *file = OBJCObjectFileFromClass(cls); - - if(file) - return file->path; - - return NULL; -} - -const char *objc_mainImageName() { - OBJCObjectFile *file = OBJCMainObjectFile(); - - if(file != NULL) - return file->path; - - return NULL; -} - -const char **objc_copyImageNames(unsigned *countp) { - OBJCArray *array = OBJCObjectFileImageArray(); - unsigned long arrayIndex = 0, count = OBJCArrayCount(array); - const char **result = malloc(count * sizeof(char *)); - OBJCObjectFile *objectFile; - - while((objectFile = OBJCArrayEnumerate(array, &arrayIndex)) != NULL) - result[arrayIndex - 1] = objectFile->path; - - *countp = count; - - return result; -} diff --git a/objc/ObjCModule.h b/objc/ObjCModule.h deleted file mode 100755 index 90872b6f..00000000 --- a/objc/ObjCModule.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "ObjCArray.h" -#import "objc_sel.h" - -typedef struct { - unsigned long selectorCount; - objc_selector_internal *selectorReferences; - unsigned short classCount; - unsigned short categoryCount; - void *definitions[0]; -} OBJCSymbolTable; - -typedef struct { - unsigned long version; - unsigned long size; - const char *name; - OBJCSymbolTable *symbolTable; -} OBJCModule; - -typedef struct { - char *name; - id instances[0]; -} OBJCStaticInstanceList; - -typedef struct { - char *path; - OBJCArray *moduleArray; -} OBJCObjectFile; - -OBJC_EXPORT void OBJCQueueModule(OBJCModule *module); -OBJC_EXPORT void OBJCSendLoadMessages(); \ No newline at end of file diff --git a/objc/Object.h b/objc/Object.h deleted file mode 100644 index 7386a529..00000000 --- a/objc/Object.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef void *marg_list; - -#ifdef __clang -__attribute__((objc_root_class)) -#endif -@interface Object { - Class isa; -} - -+ (void) initialize; - -- (void) doesNotRecognizeSelector: (SEL) selector; - -- (id) forwardSelector: (SEL) selector arguments: (void *) arguments; - -@end diff --git a/objc/Object.m b/objc/Object.m deleted file mode 100644 index 309512a1..00000000 --- a/objc/Object.m +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import - -@implementation Object - -+ (void) initialize { -} - -- (void) doesNotRecognizeSelector: (SEL) selector { -} - -- (id) forwardSelector: (SEL) selector arguments: (void *) arguments { - return nil; -} - -- (unsigned int) _frameLengthForSelector: (SEL) selector { - return 0; -} - -@end diff --git a/objc/Protocol.h b/objc/Protocol.h deleted file mode 100644 index 297ff793..00000000 --- a/objc/Protocol.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface Protocol : Object { - const char *nameCString; - struct objc_protocol_list *childProtocols; - struct OBJCMethodDescriptionList *instanceMethods; - struct OBJCMethodDescriptionList *classMethods; -} - -- (BOOL) conformsTo: (Protocol *) other; - -@end diff --git a/objc/Protocol.m b/objc/Protocol.m deleted file mode 100644 index 8e0b862c..00000000 --- a/objc/Protocol.m +++ /dev/null @@ -1,149 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "objc_protocol.h" -#import - -#import "ObjCHashTable.h" -#import "objc_class.h" -#import "objc_sel.h" - -#define PROTOCOL_CLASS "Protocol" - -static SEL OBJCRegisterMethodDescription(struct objc_method_description *method) -{ - return sel_registerNameNoCopy((const char *) method->name); -} - -static void OBJCRegisterMethodList(OBJCMethodDescriptionList *list) { - unsigned i; - - for (i = 0; i < list->count; i++) - list->list[i].name = OBJCRegisterMethodDescription(list->list + i); -} - -void OBJCRegisterProtocol(OBJCProtocolTemplate *template) { - unsigned i; - struct objc_protocol_list *subprotos; - Class class = objc_lookUpClass(PROTOCOL_CLASS); - - if (template->isa == class) - return; // already registered - - template->isa = class; - - if (template->instanceMethods != NULL) - OBJCRegisterMethodList(template->instanceMethods); - - if (template->classMethods != NULL) - OBJCRegisterMethodList(template->classMethods); - for (subprotos = template->childProtocols; subprotos != NULL; - subprotos = subprotos->next) { - for (i = 0; i < subprotos->count; i++) - OBJCRegisterProtocol((OBJCProtocolTemplate *) subprotos->list[i]); - } -} - -@implementation Protocol - -- (const char *) name { - return nameCString; -} - -- (struct objc_method_description *) descriptionForInstanceMethod: - (SEL) selector -{ - struct objc_protocol_list *list; - unsigned i; - - if (instanceMethods != NULL) - for (i = 0; i < instanceMethods->count; i++) - if (instanceMethods->list[i].name == sel_getSelector(selector)) - return &instanceMethods->list[i]; - - list = childProtocols; - while (list != NULL) { - unsigned j; - - for (j = 0; j < list->count; j++) { - unsigned k; - - for (k = 0; k < list->list[j]->instanceMethods->count; k++) - if (list->list[j]->instanceMethods->list[k].name == - sel_getSelector(selector)) - return &list->list[j]->instanceMethods->list[k]; - } - list = list->next; - } - - return NULL; -} - -- (struct objc_method_description *) descriptionForClassMethod: (SEL) selector { - struct objc_protocol_list *list; - unsigned i; - - if (classMethods != NULL) - for (i = 0; i < classMethods->count; i++) - if (classMethods->list[i].name == sel_getSelector(selector)) - return &classMethods->list[i]; - - list = childProtocols; - while (list != NULL) { - unsigned j; - - for (j = 0; j < list->count; j++) { - unsigned k; - - for (k = 0; k < list->list[j]->classMethods->count; k++) - if (list->list[j]->classMethods->list[k].name == - sel_getSelector(selector)) - return &list->list[j]->classMethods->list[k]; - } - list = list->next; - } - - return NULL; -} - -- (BOOL) conformsTo: (Protocol *) other { - - if (other == nil) - return NO; - - if (strcmp(other->nameCString, nameCString) == 0) - return YES; - else if (childProtocols == NULL) - return NO; - else { - int i; - - for (i = 0; i < childProtocols->count; i++) { - Protocol *proto = childProtocols->list[i]; - - if (strcmp(other->nameCString, proto->nameCString) == 0) - return YES; - - if ([proto conformsTo: other]) - return YES; - } - return NO; - } -} - -@end diff --git a/objc/deprecated.h b/objc/deprecated.h deleted file mode 100644 index 02949cf3..00000000 --- a/objc/deprecated.h +++ /dev/null @@ -1,7 +0,0 @@ -#import - -#define SELNAME sel_getName - -OBJC_EXPORT void class_addMethods(Class class, struct objc_method_list *methodList); -OBJC_EXPORT struct objc_method_list *class_nextMethodList(Class class, void **iterator); -OBJC_EXPORT BOOL sel_isMapped(SEL selector); diff --git a/objc/dyld.c b/objc/dyld.c deleted file mode 100644 index f5d37154..00000000 --- a/objc/dyld.c +++ /dev/null @@ -1,112 +0,0 @@ -#import - -#ifndef MAXPATHLEN -#define MAXPATHLEN 8192 -#endif - -#if defined(WIN32) - -#import - -int _NSGetExecutablePath(char *path, uint32_t *capacity) { - int bufferCapacity = MAXPATHLEN; - uint16_t buffer[bufferCapacity + 1]; - DWORD i, bufferSize = GetModuleFileNameW(GetModuleHandle(NULL), buffer, bufferCapacity); - - for(i = 0; i < bufferSize; i++) - if(buffer[i] == '\\') - buffer[i] = '/'; - - int size = WideCharToMultiByte(CP_UTF8, 0, buffer, bufferSize, NULL, 0, NULL, NULL); - - if(size + 1 > *capacity) { - *capacity = size + 1; - return -1; - } - - size = WideCharToMultiByte(CP_UTF8, 0, buffer, bufferSize, path, *capacity, NULL, NULL); - path[size] = '\0'; - size++; - - *capacity = size; - - return 0; -} - -// FIXME: these implementations do not return the size needed - -#elif defined(LINUX) - -int _NSGetExecutablePath(char *path, uint32_t *capacity) { - if(*capacity < MAXPATHLEN) - return MAXPATHLEN; - - if((*capacity = readlink("/proc/self/exe", path, *capacity)) < 0) { - *capacity = 0; - return -1; - } - - return 0; -} - -#elif defined(__APPLE__) - -extern int _NSGetExecutablePath(char *path, uint32_t *capacity); - -#elif defined(BSD) - -int _NSGetExecutablePath(char *path, uint32_t *capacity) { -#if defined(FREEBSD) - if(*capacity < MAXPATHLEN) - return MAXPATHLEN; - - int mib[4]; - - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_PATHNAME; - mib[3] = -1; - - size_t cb = *capacity; - - if(sysctl(mib, 4, path, &cb, NULL, 0) < 0) { - *capacity = 0; - return -1; - } - *capacity = strlen(path); - - return 0; -#else - if(*capacity < MAXPATHLEN) - return MAXPATHLEN; - - int length; - - if((length = readlink("/proc/curproc/file", path, 1024)) < 0) { - *capacity = 0; - return -1; - } - *capacity = length; - -#endif - return 0; -} - -#elif defined(SOLARIS) - -int _NSGetExecutablePath(char *path, uint32_t *capacity) { - if(*capacity < MAXPATHLEN) - return MAXPATHLEN; - - char probe[MAXPATHLEN + 1]; - - sprintf(probe, "/proc/%ld/path/a.out", (long)getpid()); - - if((*capacity = readlink(probe, path, *capacity)) < 0) { - *capacity = 0; - return -1; - } - - return 0; -} -#endif diff --git a/objc/dyld.h b/objc/dyld.h deleted file mode 100644 index e1b22c03..00000000 --- a/objc/dyld.h +++ /dev/null @@ -1,4 +0,0 @@ -#import -#import - -OBJC_EXPORT int _NSGetExecutablePath(char *buf, uint32_t *bufsize); diff --git a/objc/message.h b/objc/message.h deleted file mode 100644 index bb670fa6..00000000 --- a/objc/message.h +++ /dev/null @@ -1,19 +0,0 @@ -#import - -struct objc_super { - id receiver; - Class super_class; -}; - -OBJC_EXPORT id objc_msgSend(id self, SEL selector, ...); -OBJC_EXPORT id objc_msgSendSuper(struct objc_super *super, SEL op, ...); - -OBJC_EXPORT void objc_msgSend_stret(id self, SEL selector, ...); -OBJC_EXPORT void objc_msgSendSuper_stret(struct objc_super *super, SEL selector, ...); - -OBJC_EXPORT double objc_msgSend_fpret(id self, SEL selector, ...); - -// FIXME. TO BE CLEANED UP. - -OBJC_EXPORT IMP objc_msg_lookup(id self, SEL selector); -OBJC_EXPORT IMP objc_msg_lookup_super(struct objc_super *super, SEL selector); diff --git a/objc/objc-auto.h b/objc/objc-auto.h deleted file mode 100644 index e69de29b..00000000 diff --git a/objc/objc-class.h b/objc/objc-class.h deleted file mode 100644 index 4c2fbedf..00000000 --- a/objc/objc-class.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import -#import - -enum { - _C_ID = '@', - _C_CHR = 'c', - _C_UCHR = 'C', - _C_INT = 'i', - _C_UINT = 'I', - _C_FLT = 'f', - _C_DBL = 'd', - _C_VOID = 'v', - _C_UNDEF = '?', - _C_CLASS = '#', - _C_SEL = ':', - _C_CHARPTR = '*', - _C_SHT = 's', - _C_USHT = 'S', - _C_LNG = 'l', - _C_ULNG = 'L', - _C_LNGLNG = 'q', - _C_LNG_LNG = _C_LNGLNG, - _C_ULNGLNG = 'Q', - _C_ULNG_LNG = _C_ULNGLNG, - _C_BFLD = 'b', - _C_ARY_B = '[', - _C_STRUCT_B = '{', - _C_UNION_B = '(', - _C_ARY_E = ']', - _C_STRUCT_E = '}', - _C_UNION_E = ')', - _C_PTR = '^', - _C_CONST = 'r', - _C_IN = 'n', - _C_INOUT = 'N', - _C_OUT = 'o', - _C_BYCOPY = 'R', - _C_ONEWAY = 'V', -}; - -struct objc_ivar { - char *ivar_name; - char *ivar_type; - int ivar_offset; -}; - -struct objc_ivar_list { - int ivar_count; - struct objc_ivar ivar_list[1]; -}; - -struct objc_method { - SEL method_name; - char *method_types; - IMP method_imp; -}; - -struct objc_method_description { - SEL name; - char *types; -}; - -struct objc_method_list { - struct objc_method_list *obsolete; - int method_count; - struct objc_method method_list[1]; -}; - -struct objc_protocol { - Class isa; - const char *nameCString; - struct objc_protocol_list *childProtocols; - struct OBJCMethodDescriptionList *instanceMethods; - struct OBJCMethodDescriptionList *classMethods; -}; - -#ifdef __OBJC__ -@class Protocol; -#else -typedef struct objc_protocol Protocol; -#endif - -struct objc_protocol_list { - struct objc_protocol_list *next; - int count; - Protocol *list[1]; -}; - -struct objc_category { - const char *name; - const char *className; - struct objc_method_list *instanceMethods; - struct objc_method_list *classMethods; - struct objc_protocol_list *protocols; -}; - -struct objc_property { - const char *const name; - const char *const attributes; -}; - -struct objc_prop_list_t { - uint32_t size; - uint32_t prop_count; - struct objc_property prop_list[1]; -}; - -struct objc_class_extension { - uint32_t size; - const char *weak_ivar_layout; - struct objc_prop_list_t *properties; -}; - -struct objc_class { - struct objc_class *isa; - struct objc_class *super_class; - const char *name; - long version; - long info; - long instance_size; - struct objc_ivar_list *ivars; - struct objc_method_list **methodLists; - struct objc_cache *cache; - struct objc_protocol_list *protocols; - const char *ivar_layout; - struct objc_class_extension *ext; -}; diff --git a/objc/objc-export.h b/objc/objc-export.h deleted file mode 100644 index 39bab9a1..00000000 --- a/objc/objc-export.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -#ifdef __clang__ -#define OBJC_DLLEXPORT -#define OBJC_DLLIMPORT - -#ifndef __APPLE__ -#define OBJC_TYPED_SELECTORS 1 -#endif - -#else -#define OBJC_DLLEXPORT __declspec(dllexport) -#define OBJC_DLLIMPORT __declspec(dllimport) -#endif - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(OBJC_INSIDE_BUILD) -#define OBJC_EXPORT extern "C" OBJC_DLLEXPORT -#else -#define OBJC_EXPORT extern "C" OBJC_DLLEXPORT -#endif -#else -#define OBJC_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(OBJC_INSIDE_BUILD) -#define OBJC_EXPORT OBJC_DLLEXPORT extern -#else -#define OBJC_EXPORT OBJC_DLLIMPORT extern -#endif -#else -#define OBJC_EXPORT extern -#endif - -#endif diff --git a/objc/objc-runtime.h b/objc/objc-runtime.h deleted file mode 100644 index dad85100..00000000 --- a/objc/objc-runtime.h +++ /dev/null @@ -1,11 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import -#import -#import -#import diff --git a/objc/objc.h b/objc/objc.h deleted file mode 100644 index 72a67a57..00000000 --- a/objc/objc.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -typedef struct objc_class *Class; -typedef struct objc_object { - Class isa; -} * id; - -typedef void *SEL; -typedef id (*IMP)(id, SEL, ...); -typedef signed char BOOL; - -#define YES ((BOOL)1) -#define NO ((BOOL)0) - -#define Nil 0 -#define nil 0 - -OBJC_EXPORT const char *sel_getName(SEL selector); diff --git a/objc/objc.m b/objc/objc.m deleted file mode 100644 index ee0b9df1..00000000 --- a/objc/objc.m +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright (c) 2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/objc/objc.xcodeproj/project.pbxproj b/objc/objc.xcodeproj/project.pbxproj deleted file mode 100644 index e55c4eb7..00000000 --- a/objc/objc.xcodeproj/project.pbxproj +++ /dev/null @@ -1,477 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - CF652CFB1B116D6A0090D2FE /* objc_arc.h in Headers */ = {isa = PBXBuildFile; fileRef = CF652CFA1B116D6A0090D2FE /* objc_arc.h */; settings = {ATTRIBUTES = (Private, ); }; }; - CF7FA2021B1800C600840DB1 /* dyld.h in Headers */ = {isa = PBXBuildFile; fileRef = CF7FA2011B1800C600840DB1 /* dyld.h */; settings = {ATTRIBUTES = (Private, ); }; }; - FE01A5810C5D9B3100AEA51A /* objc-class.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4034B90B42F24C00CEC41A /* objc-class.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5820C5D9B3100AEA51A /* objc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4034CE0B42F2C400CEC41A /* objc.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5830C5D9B3100AEA51A /* objc-export.h in Headers */ = {isa = PBXBuildFile; fileRef = FEB6CBF90B4A1584004FADF2 /* objc-export.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE01A5840C5D9B3100AEA51A /* objc-runtime.h in Headers */ = {isa = PBXBuildFile; fileRef = FE85F6AA0BBF51D400E9C25C /* objc-runtime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE13449A1151B89600404745 /* objc_cache.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344481151B89600404745 /* objc_cache.h */; }; - FE13449B1151B89600404745 /* objc_class.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344491151B89600404745 /* objc_class.h */; }; - FE13449C1151B89600404745 /* objc_debugHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = FE13444B1151B89600404745 /* objc_debugHelpers.h */; }; - FE13449D1151B89600404745 /* objc_object.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344511151B89600404745 /* objc_object.h */; }; - FE13449E1151B89600404745 /* objc_protocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344541151B89600404745 /* objc_protocol.h */; }; - FE13449F1151B89600404745 /* objc_sel.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344561151B89600404745 /* objc_sel.h */; }; - FE1344A01151B89600404745 /* ObjCArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344591151B89600404745 /* ObjCArray.h */; }; - FE1344A11151B89600404745 /* ObjCDynamicModule.h in Headers */ = {isa = PBXBuildFile; fileRef = FE13445B1151B89600404745 /* ObjCDynamicModule.h */; }; - FE1344A31151B89600404745 /* ObjCHashTable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE13445F1151B89600404745 /* ObjCHashTable.h */; }; - FE1344A41151B89600404745 /* ObjCModule.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1344611151B89600404745 /* ObjCModule.h */; }; - FE6CF83011526D3000B6D893 /* objc_malloc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE6CF82A11526D3000B6D893 /* objc_malloc.h */; }; - FE74346310A8A61B004CDF00 /* objc-auto.h in Headers */ = {isa = PBXBuildFile; fileRef = FE74345E10A8A61B004CDF00 /* objc-auto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE88A1DA0F88F8D00081CFC1 /* runtime.h in Headers */ = {isa = PBXBuildFile; fileRef = FE88A1D90F88F8D00081CFC1 /* runtime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE88A1EC0F891B440081CFC1 /* message.h in Headers */ = {isa = PBXBuildFile; fileRef = FE88A1EB0F891B440081CFC1 /* message.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE88A1F60F891D970081CFC1 /* deprecated.h in Headers */ = {isa = PBXBuildFile; fileRef = FE88A1F50F891D970081CFC1 /* deprecated.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDB75C70F8A9EFE00AC545D /* Object.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDB75C50F8A9EFE00AC545D /* Object.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FEDB75C80F8A9EFE00AC545D /* Protocol.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDB75C60F8A9EFE00AC545D /* Protocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 7E5E81C21B78382100E03F1E /* objc_exception.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = objc_exception.m; sourceTree = ""; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - C6065BB0163575CC0007217E /* objc_association.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc_association.m; sourceTree = ""; }; - CF652CFA1B116D6A0090D2FE /* objc_arc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_arc.h; sourceTree = ""; }; - CF7FA2011B1800C600840DB1 /* dyld.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dyld.h; sourceTree = ""; }; - FE01A5890C5D9B3100AEA51A /* objc.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = objc.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FE1344481151B89600404745 /* objc_cache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_cache.h; sourceTree = ""; }; - FE1344491151B89600404745 /* objc_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_class.h; sourceTree = ""; }; - FE13444A1151B89600404745 /* objc_class.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_class.c; sourceTree = ""; }; - FE13444B1151B89600404745 /* objc_debugHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_debugHelpers.h; sourceTree = ""; }; - FE13444C1151B89600404745 /* objc_debugHelpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc_debugHelpers.m; sourceTree = ""; }; - FE13444D1151B89600404745 /* objc_functions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_functions.c; sourceTree = ""; }; - FE13444E1151B89600404745 /* objc_ivar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_ivar.c; sourceTree = ""; }; - FE13444F1151B89600404745 /* objc_method.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_method.c; sourceTree = ""; }; - FE1344501151B89600404745 /* objc_msg_lookup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_msg_lookup.c; sourceTree = ""; }; - FE1344511151B89600404745 /* objc_object.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_object.h; sourceTree = ""; }; - FE1344521151B89600404745 /* objc_object.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_object.c; sourceTree = ""; }; - FE1344531151B89600404745 /* objc_property.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_property.c; sourceTree = ""; }; - FE1344541151B89600404745 /* objc_protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_protocol.h; sourceTree = ""; }; - FE1344551151B89600404745 /* objc_protocol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_protocol.c; sourceTree = ""; }; - FE1344561151B89600404745 /* objc_sel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_sel.h; sourceTree = ""; }; - FE1344571151B89600404745 /* objc_sel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_sel.c; sourceTree = ""; }; - FE1344581151B89600404745 /* objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = objc.m; sourceTree = ""; }; - FE1344591151B89600404745 /* ObjCArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCArray.h; sourceTree = ""; }; - FE13445A1151B89600404745 /* ObjCArray.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ObjCArray.c; sourceTree = ""; }; - FE13445B1151B89600404745 /* ObjCDynamicModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCDynamicModule.h; sourceTree = ""; }; - FE13445C1151B89600404745 /* ObjCDynamicModule.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ObjCDynamicModule.c; sourceTree = ""; }; - FE13445F1151B89600404745 /* ObjCHashTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCHashTable.h; sourceTree = ""; }; - FE1344601151B89600404745 /* ObjCHashTable.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ObjCHashTable.c; sourceTree = ""; }; - FE1344611151B89600404745 /* ObjCModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCModule.h; sourceTree = ""; }; - FE1344621151B89600404745 /* ObjCModule.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ObjCModule.c; sourceTree = ""; }; - FE1344631151B89600404745 /* Object.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Object.m; sourceTree = ""; }; - FE1344651151B89600404745 /* objc_msgSend-darwin-i386.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "objc_msgSend-darwin-i386.s"; sourceTree = ""; }; - FE1344661151B89600404745 /* objc_msgSend-darwin-ppc.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "objc_msgSend-darwin-ppc.s"; sourceTree = ""; }; - FE1344691151B89600404745 /* objc-msgsend.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "objc-msgsend.s"; sourceTree = ""; }; - FE13446C1151B89600404745 /* objc-msgsend.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "objc-msgsend.s"; sourceTree = ""; }; - FE13446D1151B89600404745 /* Protocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Protocol.m; sourceTree = ""; }; - FE4034B90B42F24C00CEC41A /* objc-class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "objc-class.h"; sourceTree = ""; }; - FE4034CE0B42F2C400CEC41A /* objc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc.h; sourceTree = ""; }; - FE6CF82A11526D3000B6D893 /* objc_malloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objc_malloc.h; sourceTree = ""; }; - FE6CF82B11526D3000B6D893 /* objc_malloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = objc_malloc.c; sourceTree = ""; }; - FE7086CF1431182900B99A95 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE74345E10A8A61B004CDF00 /* objc-auto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "objc-auto.h"; sourceTree = ""; }; - FE85F6AA0BBF51D400E9C25C /* objc-runtime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "objc-runtime.h"; sourceTree = ""; }; - FE88A1D90F88F8D00081CFC1 /* runtime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = runtime.h; sourceTree = ""; }; - FE88A1EB0F891B440081CFC1 /* message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = message.h; sourceTree = ""; }; - FE88A1F50F891D970081CFC1 /* deprecated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = deprecated.h; sourceTree = ""; }; - FEB6CBF90B4A1584004FADF2 /* objc-export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "objc-export.h"; sourceTree = ""; }; - FEC0A3C117093597002A60B7 /* darwin-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3C217093597002A60B7 /* darwin-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3C317093597002A60B7 /* darwin-x86_64-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "darwin-x86_64-framework.xcconfig"; sourceTree = ""; }; - FEC0A3C417093597002A60B7 /* freebsd-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "freebsd-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3C517093597002A60B7 /* linux-arm-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-arm-framework.xcconfig"; sourceTree = ""; }; - FEC0A3C617093597002A60B7 /* linux-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-i386-framework.xcconfig"; sourceTree = ""; }; - FEC0A3C717093597002A60B7 /* linux-ppc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "linux-ppc-framework.xcconfig"; sourceTree = ""; }; - FEC0A3C917093597002A60B7 /* solaris-sparc-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "solaris-sparc-framework.xcconfig"; sourceTree = ""; }; - FEDB75C50F8A9EFE00AC545D /* Object.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Object.h; sourceTree = ""; }; - FEDB75C60F8A9EFE00AC545D /* Protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Protocol.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - FE01A5890C5D9B3100AEA51A /* objc.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* objc */ = { - isa = PBXGroup; - children = ( - CF7FA2011B1800C600840DB1 /* dyld.h */, - C6065BB0163575CC0007217E /* objc_association.m */, - FE1E53B4143029F7000D60A1 /* xcconfig */, - FE6CF82A11526D3000B6D893 /* objc_malloc.h */, - FE6CF82B11526D3000B6D893 /* objc_malloc.c */, - FE88A1F50F891D970081CFC1 /* deprecated.h */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - FE88A1EB0F891B440081CFC1 /* message.h */, - FE74345E10A8A61B004CDF00 /* objc-auto.h */, - FE4034B90B42F24C00CEC41A /* objc-class.h */, - CF652CFA1B116D6A0090D2FE /* objc_arc.h */, - FEB6CBF90B4A1584004FADF2 /* objc-export.h */, - FE85F6AA0BBF51D400E9C25C /* objc-runtime.h */, - FE4034CE0B42F2C400CEC41A /* objc.h */, - FE1344581151B89600404745 /* objc.m */, - FE1344481151B89600404745 /* objc_cache.h */, - FE1344491151B89600404745 /* objc_class.h */, - FE13444A1151B89600404745 /* objc_class.c */, - FE13444B1151B89600404745 /* objc_debugHelpers.h */, - FE13444C1151B89600404745 /* objc_debugHelpers.m */, - 7E5E81C21B78382100E03F1E /* objc_exception.m */, - FE13444D1151B89600404745 /* objc_functions.c */, - FE13444E1151B89600404745 /* objc_ivar.c */, - FE13444F1151B89600404745 /* objc_method.c */, - FE1344501151B89600404745 /* objc_msg_lookup.c */, - FE1344511151B89600404745 /* objc_object.h */, - FE1344521151B89600404745 /* objc_object.c */, - FE1344531151B89600404745 /* objc_property.c */, - FE1344541151B89600404745 /* objc_protocol.h */, - FE1344551151B89600404745 /* objc_protocol.c */, - FE1344561151B89600404745 /* objc_sel.h */, - FE1344571151B89600404745 /* objc_sel.c */, - FE1344591151B89600404745 /* ObjCArray.h */, - FE13445A1151B89600404745 /* ObjCArray.c */, - FE13445B1151B89600404745 /* ObjCDynamicModule.h */, - FE13445C1151B89600404745 /* ObjCDynamicModule.c */, - FE13445F1151B89600404745 /* ObjCHashTable.h */, - FE1344601151B89600404745 /* ObjCHashTable.c */, - FE1344611151B89600404745 /* ObjCModule.h */, - FE1344621151B89600404745 /* ObjCModule.c */, - FEDB75C50F8A9EFE00AC545D /* Object.h */, - FE1344631151B89600404745 /* Object.m */, - FE1344641151B89600404745 /* platform_darwin */, - FE1344681151B89600404745 /* platform_linux */, - FE13446A1151B89600404745 /* platform_solaris */, - FE13446B1151B89600404745 /* platform_windows */, - 034768DFFF38A50411DB9C8B /* Products */, - FEDB75C60F8A9EFE00AC545D /* Protocol.h */, - FE13446D1151B89600404745 /* Protocol.m */, - 089C1665FE841158C02AAC07 /* Resources */, - FE88A1D90F88F8D00081CFC1 /* runtime.h */, - ); - indentWidth = 4; - name = objc; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 8DC2EF5A0486A6940098B216 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - FE1344641151B89600404745 /* platform_darwin */ = { - isa = PBXGroup; - children = ( - FE1344651151B89600404745 /* objc_msgSend-darwin-i386.s */, - FE1344661151B89600404745 /* objc_msgSend-darwin-ppc.s */, - ); - path = platform_darwin; - sourceTree = ""; - }; - FE1344681151B89600404745 /* platform_linux */ = { - isa = PBXGroup; - children = ( - FE1344691151B89600404745 /* objc-msgsend.s */, - ); - path = platform_linux; - sourceTree = ""; - }; - FE13446A1151B89600404745 /* platform_solaris */ = { - isa = PBXGroup; - children = ( - ); - path = platform_solaris; - sourceTree = ""; - }; - FE13446B1151B89600404745 /* platform_windows */ = { - isa = PBXGroup; - children = ( - FE13446C1151B89600404745 /* objc-msgsend.s */, - ); - path = platform_windows; - sourceTree = ""; - }; - FE1E53B4143029F7000D60A1 /* xcconfig */ = { - isa = PBXGroup; - children = ( - FEC0A3C117093597002A60B7 /* darwin-i386-framework.xcconfig */, - FEC0A3C217093597002A60B7 /* darwin-ppc-framework.xcconfig */, - FEC0A3C317093597002A60B7 /* darwin-x86_64-framework.xcconfig */, - FEC0A3C417093597002A60B7 /* freebsd-i386-framework.xcconfig */, - FEC0A3C517093597002A60B7 /* linux-arm-framework.xcconfig */, - FEC0A3C617093597002A60B7 /* linux-i386-framework.xcconfig */, - FEC0A3C717093597002A60B7 /* linux-ppc-framework.xcconfig */, - FEC0A3C917093597002A60B7 /* solaris-sparc-framework.xcconfig */, - FE7086CF1431182900B99A95 /* windows-i386-framework.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - FE01A5800C5D9B3100AEA51A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE01A5810C5D9B3100AEA51A /* objc-class.h in Headers */, - CF7FA2021B1800C600840DB1 /* dyld.h in Headers */, - FE01A5820C5D9B3100AEA51A /* objc.h in Headers */, - FE01A5830C5D9B3100AEA51A /* objc-export.h in Headers */, - FE01A5840C5D9B3100AEA51A /* objc-runtime.h in Headers */, - FE88A1DA0F88F8D00081CFC1 /* runtime.h in Headers */, - FE88A1EC0F891B440081CFC1 /* message.h in Headers */, - FE88A1F60F891D970081CFC1 /* deprecated.h in Headers */, - FEDB75C70F8A9EFE00AC545D /* Object.h in Headers */, - FEDB75C80F8A9EFE00AC545D /* Protocol.h in Headers */, - FE74346310A8A61B004CDF00 /* objc-auto.h in Headers */, - CF652CFB1B116D6A0090D2FE /* objc_arc.h in Headers */, - FE13449A1151B89600404745 /* objc_cache.h in Headers */, - FE13449B1151B89600404745 /* objc_class.h in Headers */, - FE13449C1151B89600404745 /* objc_debugHelpers.h in Headers */, - FE13449D1151B89600404745 /* objc_object.h in Headers */, - FE13449E1151B89600404745 /* objc_protocol.h in Headers */, - FE13449F1151B89600404745 /* objc_sel.h in Headers */, - FE1344A01151B89600404745 /* ObjCArray.h in Headers */, - FE1344A11151B89600404745 /* ObjCDynamicModule.h in Headers */, - FE1344A31151B89600404745 /* ObjCHashTable.h in Headers */, - FE1344A41151B89600404745 /* ObjCModule.h in Headers */, - FE6CF83011526D3000B6D893 /* objc_malloc.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - FE01A57F0C5D9B3100AEA51A /* objc */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE01A5870C5D9B3100AEA51A /* Build configuration list for PBXNativeTarget "objc" */; - buildPhases = ( - FE01A5800C5D9B3100AEA51A /* Headers */, - FE01A5850C5D9B3100AEA51A /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = objc; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = objc; - productReference = FE01A5890C5D9B3100AEA51A /* objc.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "objc" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* objc */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FE01A57F0C5D9B3100AEA51A /* objc */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - FE01A5850C5D9B3100AEA51A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1DEB91B308733DA50010E9CD /* Windows-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Windows-i386"; - }; - 7E891EBB0D4961EA008150D3 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3C617093597002A60B7 /* linux-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = objc; - }; - name = "Linux-i386"; - }; - 7E891EBC0D4961EA008150D3 /* Linux-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-i386"; - }; - CFC5B3CA1AF464BC00FBB52A /* Solaris-sparc */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Solaris-sparc"; - }; - CFC5B3CB1AF464BC00FBB52A /* Solaris-sparc */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3C917093597002A60B7 /* solaris-sparc-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = objc; - }; - name = "Solaris-sparc"; - }; - CFC5B3D51AF464C300FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-i386"; - }; - CFC5B3D61AF464C300FBB52A /* Darwin-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3C117093597002A60B7 /* darwin-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = objc; - }; - name = "Darwin-i386"; - }; - CFC5B3E01AF464D500FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Darwin-x86_64"; - }; - CFC5B3E11AF464D500FBB52A /* Darwin-x86_64 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3C317093597002A60B7 /* darwin-x86_64-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = objc; - }; - name = "Darwin-x86_64"; - }; - CFC5B3EB1AF464E900FBB52A /* Linux-arm */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "Linux-arm"; - }; - CFC5B3EC1AF464E900FBB52A /* Linux-arm */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3C517093597002A60B7 /* linux-arm-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = objc; - }; - name = "Linux-arm"; - }; - CFC5B3F61AF464F600FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = "FreeBSD-i386"; - }; - CFC5B3F71AF464F600FBB52A /* FreeBSD-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FEC0A3C417093597002A60B7 /* freebsd-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = objc; - }; - name = "FreeBSD-i386"; - }; - FE01A5880C5D9B3100AEA51A /* Windows-i386 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE7086CF1431182900B99A95 /* windows-i386-framework.xcconfig */; - buildSettings = { - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = objc; - }; - name = "Windows-i386"; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "objc" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB91B308733DA50010E9CD /* Windows-i386 */, - CFC5B3F61AF464F600FBB52A /* FreeBSD-i386 */, - CFC5B3D51AF464C300FBB52A /* Darwin-i386 */, - CFC5B3E01AF464D500FBB52A /* Darwin-x86_64 */, - 7E891EBC0D4961EA008150D3 /* Linux-i386 */, - CFC5B3EB1AF464E900FBB52A /* Linux-arm */, - CFC5B3CA1AF464BC00FBB52A /* Solaris-sparc */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; - FE01A5870C5D9B3100AEA51A /* Build configuration list for PBXNativeTarget "objc" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE01A5880C5D9B3100AEA51A /* Windows-i386 */, - CFC5B3F71AF464F600FBB52A /* FreeBSD-i386 */, - CFC5B3D61AF464C300FBB52A /* Darwin-i386 */, - CFC5B3E11AF464D500FBB52A /* Darwin-x86_64 */, - 7E891EBB0D4961EA008150D3 /* Linux-i386 */, - CFC5B3EC1AF464E900FBB52A /* Linux-arm */, - CFC5B3CB1AF464BC00FBB52A /* Solaris-sparc */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Windows-i386"; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/objc/objc_arc.c b/objc/objc_arc.c deleted file mode 100644 index 923c0086..00000000 --- a/objc/objc_arc.c +++ /dev/null @@ -1,278 +0,0 @@ -#import "objc_lock.h" -#import "objc_tls.h" -#import -#import -#import - -typedef unsigned long objc_uinteger; -typedef signed long objc_integer; - -typedef struct RefCountBucket { - struct RefCountBucket *next; - void *object; - objc_uinteger count; -} RefCountBucket; - -typedef struct { - objc_uinteger count; - objc_uinteger nBuckets; - RefCountBucket **buckets; -} RefCountTable; - -static objc_lock RefCountLock = 0; - -static inline RefCountTable *CreateRefCountTable() { - RefCountTable *table; - - table = malloc(sizeof(RefCountTable)); - table->count = 0; - table->nBuckets = 1024; - table->buckets = calloc(table->nBuckets, sizeof(RefCountBucket *)); - - return table; -} - -static inline RefCountBucket *AllocBucketFromTable(RefCountTable *table) { - return malloc(sizeof(RefCountBucket)); -} - -static inline void FreeBucketFromTable(RefCountTable *table, RefCountBucket *bucket) { - free(bucket); -} - -static inline objc_uinteger hashObject(id ptr) { - return (objc_uinteger)ptr >> 4; -} - -static inline RefCountBucket *XXHashGet(RefCountTable *table, id object) { - objc_uinteger i = hashObject(object) % table->nBuckets; - RefCountBucket *check; - - for(check = table->buckets[i]; check != NULL; check = check->next) - if(check->object == object) - return check; - - return NULL; -} - -static inline void XXHashInsert(RefCountTable *table, RefCountBucket *insert) { - objc_uinteger hash = hashObject(insert->object); - objc_uinteger i = hash % table->nBuckets; - - if(table->count >= table->nBuckets) { - objc_integer oldnBuckets = table->nBuckets; - RefCountBucket **buckets = table->buckets; - - table->nBuckets = oldnBuckets * 2; - table->buckets = calloc(table->nBuckets, sizeof(RefCountBucket *)); - for(i = 0; i < oldnBuckets; i++) { - RefCountBucket *check, *next; - - for(check = buckets[i]; check != NULL; check = next) { - objc_uinteger newi = hashObject(check->object) % table->nBuckets; - next = check->next; - check->next = table->buckets[newi]; - table->buckets[newi] = check; - } - } - free(buckets); - i = hash % table->nBuckets; - } - - insert->next = table->buckets[i]; - table->buckets[i] = insert; - table->count++; -} - -static inline void XXHashRemove(RefCountTable *table, RefCountBucket *remove) { - objc_uinteger i = hashObject(remove->object) % table->nBuckets; - RefCountBucket *check = table->buckets[i], *prev = check; - - for(; check != NULL; check = check->next) { - if(check == remove) { - if(prev == check) - table->buckets[i] = check->next; - else - prev->next = check->next; - - FreeBucketFromTable(table, check); - table->count--; - return; - } - prev = check; - } -} - -static inline RefCountTable *refTable(void) { - static RefCountTable *refCountTable = NULL; - - if(refCountTable == NULL) - refCountTable = CreateRefCountTable(); - - return refCountTable; -} - -void objc_IncrementExtraRefCount(id object) { - RefCountBucket *refCount; - RefCountTable *table = refTable(); - - objc_lock_lock(&RefCountLock); - if((refCount = XXHashGet(table, object)) == NULL) { - refCount = AllocBucketFromTable(table); - refCount->object = object; - refCount->count = 1; - XXHashInsert(refTable(), refCount); - } - refCount->count++; - objc_lock_unlock(&RefCountLock); -} - -bool objc_DecrementExtraRefCountWasZero(id object) { - bool result = false; - RefCountBucket *refCount; - - objc_lock_lock(&RefCountLock); - if((refCount = XXHashGet(refTable(), object)) == NULL) - result = true; - else { - refCount->count--; - if(refCount->count == 1) - XXHashRemove(refTable(), refCount); - } - objc_lock_unlock(&RefCountLock); - - return result; -} - -objc_uinteger objc_ExtraRefCount(id object) { - objc_uinteger result = 1; - RefCountBucket *refCount; - - objc_lock_lock(&RefCountLock); - if((refCount = XXHashGet(refTable(), object)) != NULL) - result = refCount->count; - objc_lock_unlock(&RefCountLock); - - return result; -} - -void object_incrementExternalRefCount(id value) { - objc_IncrementExtraRefCount(value); -} - -bool object_decrementExternalRefCount(id value) { - return objc_DecrementExtraRefCountWasZero(value); -} - -unsigned long object_externalRefCount(id value) { - return objc_ExtraRefCount(value); -} - -id objc_retain(id value) { - objc_IncrementExtraRefCount(value); - return value; -} - -void objc_release(id value) { - if(objc_DecrementExtraRefCountWasZero(value)) { - static SEL selector = NULL; - - if(selector == NULL) - selector = sel_registerName("dealloc"); - - IMP dealloc = objc_msg_lookup(value, selector); - - dealloc(value, selector); - } -} - -static objc_autoreleasepool *objc_autoreleaseCurrentPool() { - return objc_tlsCurrent()->pool; -} - -static void objc_autoreleaseSetCurrentPool(objc_autoreleasepool *pool) { - objc_tlsCurrent()->pool = pool; -} - -#define PAGESIZE 1024 - -void *objc_autoreleasePoolPush() { - objc_autoreleasepool *current = objc_autoreleaseCurrentPool(); - objc_autoreleasepool *pool = malloc(sizeof(objc_autoreleasepool)); - - pool->_parent = current; - - pool->_pageCount = 1; - pool->_pages = malloc(pool->_pageCount * sizeof(id *)); - pool->_pages[0] = malloc(PAGESIZE * sizeof(id)); - pool->_nextSlot = 0; - - if(current != NULL) - current->_childPool = pool; - pool->_childPool = NULL; - - objc_autoreleaseSetCurrentPool(pool); - - return pool; -} - -void objc_autoreleasePoolPop(void *poolX) { - objc_autoreleasepool *pool = poolX; - int i; - - if(pool == NULL) - return; - - objc_autoreleasePoolPop(pool->_childPool); - - for(i = 0; i < pool->_nextSlot; i++) { - // NS_DURING - id object = pool->_pages[i / PAGESIZE][i % PAGESIZE]; - - objc_release(object); - - // NS_HANDLER - // NSLog("Exception while autoreleasing %@",localException); - // NS_ENDHANDLER - } - - for(i = 0; i < pool->_pageCount; i++) - free(pool->_pages[i]); - - free(pool->_pages); - - objc_autoreleaseSetCurrentPool(pool->_parent); - - if(pool->_parent != NULL) - pool->_parent->_childPool = NULL; - - free(pool); -} - -void objc_autoreleaseNoPool(id object) { - // NSCLog("autorelease pool is nil, leaking %x %s",object,object_getClassName(object)); -} - -void objc_autoreleasePoolAdd(objc_autoreleasepool *pool, id object) { - if(pool->_nextSlot >= pool->_pageCount * PAGESIZE) { - pool->_pageCount++; - pool->_pages = realloc(pool->_pages, pool->_pageCount * sizeof(id *)); - pool->_pages[pool->_pageCount - 1] = malloc(PAGESIZE * sizeof(id)); - } - - pool->_pages[pool->_nextSlot / PAGESIZE][pool->_nextSlot % PAGESIZE] = object; - pool->_nextSlot++; -} - -id objc_autorelease(id object) { - objc_autoreleasepool *pool = objc_autoreleaseCurrentPool(); - - if(pool == NULL) { - objc_autoreleaseNoPool(object); - return object; - } - - objc_autoreleasePoolAdd(pool, object); - - return object; -} diff --git a/objc/objc_arc.h b/objc/objc_arc.h deleted file mode 100644 index c0ad37f0..00000000 --- a/objc/objc_arc.h +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import - -OBJC_EXPORT id objc_retain(id value); -OBJC_EXPORT void objc_release(id value); - -// Private to CF/Foundation/objc -OBJC_EXPORT void object_incrementExternalRefCount(id value); -OBJC_EXPORT bool object_decrementExternalRefCount(id value); -OBJC_EXPORT unsigned long object_externalRefCount(id value); diff --git a/objc/objc_association.m b/objc/objc_association.m deleted file mode 100644 index bb070583..00000000 --- a/objc/objc_association.m +++ /dev/null @@ -1,363 +0,0 @@ -#import -#import -#ifdef WIN32 -#include -#else -#include -#endif - -// the cache entry size must be a power of 2 -typedef struct { - void *nextEntry; - const void *key; - id object; - objc_AssociationPolicy policy; -} AssociationObjectEntry; - -#define BucketsInitialSize \ - 509 // Some prime size (and as a bonus, next three n*2+1 are prime too) -#define AssociationObjectEntrySize 5 - -#define HASHPTR(p) (((unsigned int) p) >> 5) - -typedef struct AssociationHashBucket { - struct AssociationHashBucket *next; - id key; - AssociationObjectEntry *value; -} AssociationHashBucket; - -typedef struct AssociationTable { - unsigned int count; - unsigned int nBuckets; - AssociationHashBucket **buckets; -} AssociationTable; - -AssociationTable *CreateAssociationTable(unsigned int capacity) { - AssociationTable *table = malloc(sizeof(AssociationTable)); - - table->count = 0; - table->nBuckets = (capacity < 5) ? 5 : capacity; - table->buckets = calloc(table->nBuckets, sizeof(AssociationHashBucket *)); - - return table; -} - -AssociationObjectEntry *AssociationTableGet(AssociationTable *table, id key) { - unsigned int i = HASHPTR(key) % table->nBuckets; - AssociationHashBucket *j; - - for (j = table->buckets[i]; j != NULL; j = j->next) - if (j->key == key) - return j->value; - - return NULL; -} - -void AssociationTableInsert(AssociationTable *table, id key, - AssociationObjectEntry *value) -{ - unsigned int hash = HASHPTR(key); - unsigned int i = hash % table->nBuckets; - AssociationHashBucket *j; - - for (j = table->buckets[i]; j != NULL; j = j->next) { - if (j->key == key) { - AssociationObjectEntry *oldValue = j->value; - - j->value = value; - - free(oldValue); - return; - } - } - int newSize = 0; - if (table->count >= table->nBuckets) { - // Expand the buckets size to limit collisions - newSize = table->nBuckets * 2 + 1; // Let"s use odd size - } else if (table->count > BucketsInitialSize && - table->count < table->nBuckets / 2) { - // Compact the table - plenty of free room - newSize = table->nBuckets / 2; - if (newSize % 2) { - // Let"s use odd size - newSize += 1; - } - } - if (newSize != 0) { - unsigned int nBuckets = table->nBuckets; - AssociationHashBucket **buckets = table->buckets; - - table->nBuckets = newSize; - table->buckets = - calloc(table->nBuckets, sizeof(AssociationHashBucket *)); - - // Get all of the existing buckets and place them into the new list - for (i = 0; i < nBuckets; i++) { - j = buckets[i]; - while (j) { - unsigned int newi = HASHPTR(j->key) % table->nBuckets; - - AssociationHashBucket *next = j->next; - j->next = table->buckets[newi]; - table->buckets[newi] = j; - - j = next; - } - } - free(buckets); - i = hash % table->nBuckets; - } - - j = malloc(sizeof(AssociationHashBucket)); - j->key = key; - j->value = value; - j->next = table->buckets[i]; - table->buckets[i] = j; - table->count++; -} - -void *AssociationTableInsertIfAbsent(AssociationTable *table, id key, - AssociationObjectEntry *value) -{ - void *old = AssociationTableGet(table, key); - - if (old != NULL) - return old; - AssociationTableInsert(table, key, value); - return NULL; -} - -typedef unsigned int AssociationSpinLock; - -void AssociationSpinLockLock(volatile AssociationSpinLock *__lock) { - while (!__sync_bool_compare_and_swap(__lock, 0, 1)) { -#ifdef WIN32 - Sleep(0); -#else - usleep(1); -#endif - } -} - -void AssociationSpinLockUnlock(volatile AssociationSpinLock *__lock) { - __sync_bool_compare_and_swap(__lock, 1, 0); -} - -static AssociationSpinLock AssociationLock = 0; -static AssociationTable *associationTable = NULL; - -void AssociationTableRemove(AssociationTable *table, id key) { - AssociationSpinLockLock(&AssociationLock); - - unsigned int i = HASHPTR(key) % table->nBuckets; - AssociationHashBucket *j = table->buckets[i], *prev = j; - - for (; j != NULL; j = j->next) { - if (j->key == key) { - // array to keep track of the objects to release - that must be done - // outside of the lock since the release can trigger more - // association changes - int releaseCount = 0; - int releaseTableSize = 0; - id *objectsToRelease = NULL; - - if (prev == j) - table->buckets[i] = j->next; - else - prev->next = j->next; - - AssociationObjectEntry *entry = j->value; - - for (int i = 0; i < AssociationObjectEntrySize; i++) { - AssociationObjectEntry *e = entry + i; - while (e) { - switch (e->policy) { - case OBJC_ASSOCIATION_ASSIGN: - break; - case OBJC_ASSOCIATION_RETAIN_NONATOMIC: - case OBJC_ASSOCIATION_RETAIN: - case OBJC_ASSOCIATION_COPY_NONATOMIC: - case OBJC_ASSOCIATION_COPY: - if (releaseCount >= releaseTableSize) { - if (releaseTableSize == 0) { - releaseTableSize = 8; - } else { - releaseTableSize *= 2; - } - objectsToRelease = - realloc(objectsToRelease, - sizeof(id) * releaseTableSize); - } - objectsToRelease[releaseCount++] = e->object; - break; - } - AssociationObjectEntry *currentEntry = e; - e = e->nextEntry; - // Don't free the first entry of the list - it's part of the - // "entry" block that will be freed after the loop - if (currentEntry != entry + i) { - free(currentEntry); - } - } - } - - free(entry); - free(j); - table->count--; - - AssociationSpinLockUnlock(&AssociationLock); - - // Do the cleaning outside of the lock since it might trigger more - // association playing - for (int i = 0; i < releaseCount; ++i) { - [objectsToRelease[i] release]; - } - free(objectsToRelease); - - return; - } - prev = j; - } - AssociationSpinLockUnlock(&AssociationLock); -} - -void objc_removeAssociatedObjects(id object) { - if (associationTable == NULL) { - return; - } - AssociationTableRemove(associationTable, object); -} - -void objc_setAssociatedObject(id object, const void *key, id value, - objc_AssociationPolicy policy) -{ - AssociationSpinLockLock(&AssociationLock); - - if (associationTable == NULL) { - associationTable = CreateAssociationTable(BucketsInitialSize); - } - - AssociationObjectEntry *objectTable = - AssociationTableGet(associationTable, object); - if (objectTable == NULL) { - objectTable = calloc(sizeof(AssociationObjectEntry), - AssociationObjectEntrySize); - AssociationTableInsert(associationTable, object, objectTable); - } - - uintptr_t index = HASHPTR(key) % AssociationObjectEntrySize; - AssociationObjectEntry *entry = - ((AssociationObjectEntry *) objectTable) + index; - if (entry->object == nil) { - entry->policy = policy; - entry->key = key; - switch (policy) { - case OBJC_ASSOCIATION_ASSIGN: - entry->object = value; - break; - case OBJC_ASSOCIATION_RETAIN_NONATOMIC: - case OBJC_ASSOCIATION_RETAIN: - entry->object = [value retain]; - break; - case OBJC_ASSOCIATION_COPY_NONATOMIC: - case OBJC_ASSOCIATION_COPY: - entry->object = [value copy]; - break; - } - } else { - AssociationObjectEntry *newEntry; - do { - if (entry->key == key) { - id objectToRelease = nil; - - switch (entry->policy) { - case OBJC_ASSOCIATION_ASSIGN: - break; - case OBJC_ASSOCIATION_RETAIN_NONATOMIC: - case OBJC_ASSOCIATION_RETAIN: - case OBJC_ASSOCIATION_COPY_NONATOMIC: - case OBJC_ASSOCIATION_COPY: - objectToRelease = entry->object; - break; - } - entry->policy = policy; - switch (policy) { - case OBJC_ASSOCIATION_ASSIGN: - entry->object = value; - break; - case OBJC_ASSOCIATION_RETAIN_NONATOMIC: - case OBJC_ASSOCIATION_RETAIN: - entry->object = [value retain]; - break; - case OBJC_ASSOCIATION_COPY_NONATOMIC: - case OBJC_ASSOCIATION_COPY: - entry->object = [value copy]; - break; - } - AssociationSpinLockUnlock(&AssociationLock); - - // Do the cleaning outside of the lock since it might trigger - // more association playing - [objectToRelease release]; - - return; - } - if (entry->nextEntry != nil) { - entry = entry->nextEntry; - } - } while (entry->nextEntry != nil); - - newEntry = malloc(sizeof(AssociationObjectEntry)); - newEntry->policy = policy; - newEntry->key = key; - switch (policy) { - case OBJC_ASSOCIATION_ASSIGN: - newEntry->object = value; - break; - case OBJC_ASSOCIATION_RETAIN_NONATOMIC: - case OBJC_ASSOCIATION_RETAIN: - newEntry->object = [value retain]; - break; - case OBJC_ASSOCIATION_COPY_NONATOMIC: - case OBJC_ASSOCIATION_COPY: - newEntry->object = [value copy]; - break; - } - newEntry->nextEntry = NULL; - entry->nextEntry = newEntry; - } - - AssociationSpinLockUnlock(&AssociationLock); -} - -id objc_getAssociatedObject(id object, const void *key) { - - if (associationTable == NULL) { - return nil; - } - - AssociationSpinLockLock(&AssociationLock); - - AssociationObjectEntry *objectTable = - AssociationTableGet(associationTable, object); - if (objectTable == NULL) { - AssociationSpinLockUnlock(&AssociationLock); - return nil; - } - - uintptr_t index = HASHPTR(key) % AssociationObjectEntrySize; - AssociationObjectEntry *entry = - ((AssociationObjectEntry *) objectTable) + index; - while (entry) { - if (entry->key == key) { - break; - } - entry = entry->nextEntry; - } - AssociationSpinLockUnlock(&AssociationLock); - if (entry) { - return entry->object; - } else { - return nil; - } -} diff --git a/objc/objc_cache.h b/objc/objc_cache.h deleted file mode 100644 index 9ba2d393..00000000 --- a/objc/objc_cache.h +++ /dev/null @@ -1,14 +0,0 @@ -#import - -// the cache entry size must be a power of 2 -typedef struct { - intptr_t offsetToNextEntry; - struct objc_method *method; -} OBJCMethodCacheEntry; - -#define OBJCMethodCacheNumberOfEntries 64 -#define OBJCMethodCacheMask ((OBJCMethodCacheNumberOfEntries - 1) * sizeof(OBJCMethodCacheEntry)) - -typedef struct objc_cache { - OBJCMethodCacheEntry table[OBJCMethodCacheNumberOfEntries]; -} OBJCMethodCache; diff --git a/objc/objc_class.c b/objc/objc_class.c deleted file mode 100644 index 14c5c38a..00000000 --- a/objc/objc_class.c +++ /dev/null @@ -1,951 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "objc_class.h" -#import "ObjCModule.h" -#import "objc_cache.h" -#import "objc_lock.h" -#import "objc_log.h" -#import "objc_malloc.h" -#import "objc_protocol.h" -#import "objc_sel.h" -#import -#import -#import - -#ifdef SOLARIS -#import -#endif - -#ifndef WIN32 -#include -#endif - -#import - -//static pthread_mutex_t classTableLock=PTHREAD_MUTEX_INITIALIZER; - -typedef unsigned int OSSpinLock; - -#import - -static objc_lock classTableLock = 0; - -#define INITIAL_CLASS_HASHTABLE_SIZE 256 - -static inline OBJCHashTable *OBJCClassTable(void) { - static OBJCHashTable *allClasses = NULL; - - if(allClasses == NULL) - allClasses = OBJCCreateHashTable(INITIAL_CLASS_HASHTABLE_SIZE); - - return allClasses; -} - -static inline OBJCHashTable *OBJCFutureClassTable(void) { - static OBJCHashTable *allFutureClasses = NULL; - - if(allFutureClasses == NULL) - allFutureClasses = OBJCCreateHashTable(INITIAL_CLASS_HASHTABLE_SIZE); - - return allFutureClasses; -} - -id objc_lookUpClass(const char *className) { - id result; - - objc_lock_lock(&classTableLock); - result = OBJCHashValueForKey(OBJCClassTable(), className); - objc_lock_unlock(&classTableLock); - - return result; -} - -id objc_lookup_class(const char *className) { - return objc_lookUpClass(className); -} - -id objc_getClass(const char *name) { - id result; - - // technically, this should call a class lookup callback if class not found (unlike objc_lookUpClass) - objc_lock_lock(&classTableLock); - result = OBJCHashValueForKey(OBJCClassTable(), name); - objc_lock_unlock(&classTableLock); - - return result; -} - -int objc_getClassList(Class *buffer, int bufferLen) { - objc_lock_lock(&classTableLock); - OBJCHashEnumerator classes = OBJCEnumerateHashTable(OBJCClassTable()); - int i = 0; - - if(buffer != NULL) { - Class entry; - - for(; i < bufferLen && (entry = (Class)OBJCNextHashEnumeratorValue(&classes)) != Nil; i++) - buffer[i] = entry; - } - - for(; OBJCNextHashEnumeratorValue(&classes) != 0; i++) - ; - objc_lock_unlock(&classTableLock); - return i; -} - -Class objc_getFutureClass(const char *name) { - // first find if class is already defined - struct objc_class *ret = OBJCHashValueForKey(OBJCClassTable(), name); - - // maybe there's a future class - if(!ret) { - ret = OBJCHashValueForKey(OBJCFutureClassTable(), name); - } - if(!ret) { - // no future class; build one - ret = objc_calloc(1, sizeof(struct objc_class)); - ret->name = strdup(name); - OBJCHashInsertValueForKey(OBJCFutureClassTable(), ret->name, ret); - } - return ret; -} - -id objc_getMetaClass(const char *name) { - Class c = objc_getClass(name); - return object_getClass(c); -} - -id objc_getRequiredClass(const char *name) { - id result = objc_getClass(name); - - if(result == Nil) - exit(1); - - return result; -} - -Protocol *objc_getProtocol(const char *name) { - // UNIMPLEMENTED - return NULL; -} - -Protocol **objc_copyProtocolList(unsigned int *countp) { - // UNIMPLEMENTED - return NULL; -} - -void objc_addClass(Class class) { - OBJCRegisterClass(class); -} - -void objc_registerClassPair(Class new_class) { - objc_addClass(new_class); -} - -void objc_setFutureClass(Class cls, const char *name) { - OBJCHashInsertValueForKey(OBJCFutureClassTable(), strdup(name), cls); -} - -Class objc_allocateClassPair(Class super_class, const char *name, size_t extraBytes) { - struct objc_class *meta_class; - struct objc_class *new_class; - struct objc_class *root_class; - - // Ensure that the superclass exists and that someone - // hasn't already implemented a class with the same name - // - if(super_class == Nil) { - return Nil; - } - - if(objc_lookUpClass(name) != Nil) { - return Nil; - } - - // Find the root class - // - root_class = super_class; - while(root_class->super_class != nil) { - root_class = root_class->super_class; - } - - // Allocate space for the class and its metaclass - // - new_class = calloc(2, sizeof(struct objc_class) + extraBytes); - meta_class = &new_class[1]; - - // setup class - new_class->isa = meta_class; - new_class->info = CLS_CLASS; - meta_class->info = CLS_META; - - // Create a copy of the class name. - // For efficiency, we have the metaclass and the class itself - // to share this copy of the name, but this is not a requirement - // imposed by the runtime. - // - new_class->name = malloc(strlen(name) + 1); - strcpy((char *)new_class->name, name); - meta_class->name = new_class->name; - - // Connect the class definition to the class hierarchy: - // Connect the class to the superclass. - // Connect the metaclass to the metaclass of the superclass. - // Connect the metaclass of the metaclass to the metaclass of the root class. - // - new_class->super_class = super_class; - meta_class->super_class = super_class->isa; - meta_class->isa = (void *)root_class->isa; - - // Set the sizes of the class and the metaclass. - // - new_class->instance_size = super_class->instance_size; - meta_class->instance_size = meta_class->super_class->instance_size; - - // Finally, register the class with the runtime. - // - return new_class; -} - -const char *class_getName(Class cls) { - return cls->name; -} - -BOOL class_isMetaClass(Class class) { - return (class->info & CLASS_INFO_META) ? YES : NO; -} - -Class class_getSuperclass(Class class) { - struct objc_class *cls = class; - return cls->super_class; -} - -int class_getVersion(Class class) { - struct objc_class *cls = class; - return (int)(cls->version); // FIXME: NSObject uses NSInteger (long), object format uses log, API is int. wtf. am I missing something? -} - -Method class_getClassMethod(Class class, SEL selector) { - if(class == Nil) { - return NULL; - } - return class_getInstanceMethod(class->isa, selector); -} - -Ivar class_getClassVariable(Class cls, const char *name) { - // UNIMPLEMENTED - return NULL; -} - -static inline struct objc_method *OBJCLookupUniqueIdInMethodList(struct objc_method_list *list, SEL uniqueId) { - int i; - - for(i = 0; i < list->method_count; i++) { - if(((SEL)list->method_list[i].method_name) == sel_getSelector(uniqueId)) - return list->method_list + i; - } - - return NULL; -} - -struct objc_method *OBJCLookupUniqueIdInOnlyThisClass(Class class, SEL uniqueId) { - void *iterator = 0; - struct objc_method_list *check; - struct objc_method *result = NULL; - - while((check = class_nextMethodList(class, &iterator))) { - if((result = OBJCLookupUniqueIdInMethodList(check, uniqueId))) { - return result; - } - } - return NULL; -} - -struct objc_method *class_getInstanceMethod(Class class, SEL uniqueId) { - struct objc_method *result = NULL; - - for(; class != NULL; class = class->super_class) { - if((result = OBJCLookupUniqueIdInOnlyThisClass(class, uniqueId)) != NULL) - break; - } - return result; -} - -size_t class_getInstanceSize(Class class) { - struct objc_class *cls = class; - return cls->instance_size; -} - -Ivar class_getInstanceVariable(Class class, const char *variableName) { - for(;; class = class->super_class) { - if(class == Nil) - break; - struct objc_ivar_list *ivarList = class->ivars; - int i; - - for(i = 0; ivarList != NULL && i < ivarList->ivar_count; i++) { - if(strcmp(ivarList->ivar_list[i].ivar_name, variableName) == 0) - return &(ivarList->ivar_list[i]); - } - } - - return NULL; -} - -const char *class_getIvarLayout(Class cls) { - // UNIMPLEMENTED - return NULL; -} - -static inline void OBJCInitializeCacheEntryOffset(OBJCMethodCacheEntry *entry) { - entry->offsetToNextEntry = -((intptr_t)entry); -} - -// FIXME, better allocator -static inline OBJCMethodCacheEntry *allocateCacheEntry() { - OBJCMethodCacheEntry *result = objc_malloc(sizeof(OBJCMethodCacheEntry)); - - OBJCInitializeCacheEntryOffset(result); - - return result; -} - -static inline void OBJCCacheMethodInClass(Class class, struct objc_method *method) { - SEL uniqueId = method->method_name; - uintptr_t index = (uintptr_t)uniqueId & OBJCMethodCacheMask; - OBJCMethodCacheEntry *check = ((void *)class->cache->table) + index; - - if(check->method->method_name == NULL) - check->method = method; - else { - BOOL success = NO; - while(!success) { - intptr_t offset = 0; - do { - check = ((void *)check) + offset; - if(method == check->method) { - // already cached - return; - } - } while(offset = check->offsetToNextEntry, ((void *)check) + offset != NULL); - - OBJCMethodCacheEntry *entry = allocateCacheEntry(); - - entry->method = method; - - success = __sync_bool_compare_and_swap(&check->offsetToNextEntry, offset, ((void *)entry) - ((void *)check)); - } - } -} - -static struct objc_method empty_method = { - 0, NULL, NULL}; - -static int msg_tracing = 0; -static int msgLoggingCount = 0; - -OBJC_EXPORT void objc_enableMessageLoggingWithCount(int count) { - msg_tracing = 1; - msgLoggingCount = count; - - int i, capacity = objc_getClassList(NULL, 0); - Class list[capacity]; - - objc_getClassList(list, capacity); - - for(i = 0; i < capacity; i++) { - OBJCMethodCache *cache = list[i]->cache; - int j; - - // FIXME: this leaks because it does not free entries in the linked list - - for(j = 0; j < OBJCMethodCacheNumberOfEntries; j++) { - OBJCInitializeCacheEntryOffset(cache->table + j); - cache->table[j].method = &empty_method; - } - } - - OBJCLog("msg tracing ENABLED count=%d", count); -} - -void OBJCEnableMsgTracing() { - objc_enableMessageLoggingWithCount(0x7FFFFFFF); -} - -void OBJCDisableMsgTracing() { - msg_tracing = 0; - OBJCLog("msg tracing DISABLED"); -} - -void objc_logMsgSend(id object, SEL selector) { - msgLoggingCount--; - if(msgLoggingCount < 0) - msg_tracing = 0; - - objc_log_threadid(); - objc_log_format("objc_msgSend %x %s self=%p", selector, sel_getName(selector), object); - objc_log_format(" isa %x name %s", (object != nil) ? object_getClass(object) : Nil, (object != nil) ? object_getClass(object)->name : ""); - objc_log_newline(); -} - -void objc_logMsgSendSuper(struct objc_super *super, SEL selector) { - msgLoggingCount--; - if(msgLoggingCount < 0) - msg_tracing = 0; - - objc_log_threadid(); - objc_log_format("objc_msgSendSuper %x %s", selector, sel_getName(selector)); - id object = super->receiver; - objc_log_format("self=%p isa %x name %s", object, (object != nil) ? object_getClass(object) : Nil, (object != nil) ? object_getClass(object)->name : ""); - objc_log_newline(); -} - -static inline IMP OBJCLookupAndCacheUniqueIdInClass(Class class, SEL selector) { - struct objc_method *method; - - if((method = class_getInstanceMethod(class, selector)) != NULL) { - - // When msg_tracing is on we don't cache the result so there is always a cache miss - // and we always get the chance to log the msg - - if(!msg_tracing) - OBJCCacheMethodInClass(class, method); - - return method->method_imp; - } - - return NULL; -} - -void default_handler() { - printf("OBJC default handler"); - exit(1); -} - -void *objc_forwardHandler = default_handler; -void *objc_forwardHandler_stret = default_handler; - -IMP class_getMethodImplementation(Class cls, SEL selector) { - IMP result = OBJCLookupAndCacheUniqueIdInClass(cls, selector); - - if(result == NULL) - result = objc_forwardHandler; - - return result; -} - -IMP class_getMethodImplementation_stret(Class cls, SEL selector) { - IMP result = OBJCLookupAndCacheUniqueIdInClass(cls, selector); - - if(result == NULL) - result = objc_forwardHandler_stret; - - return result; -} - -objc_property_t class_getProperty(Class cls, const char *name) { - // UNIMPLEMENTED - return NULL; -} - -const char *class_getWeakIvarLayout(Class cls) { - // UNIMPLEMENTED - return NULL; -} - -Ivar *class_copyIvarList(Class cls, unsigned int *countp) { - Ivar *result = NULL; - struct objc_ivar_list *ivars = cls->ivars; - - if(countp != NULL) { - if(ivars != NULL) { - *countp = ivars->ivar_count; - } else { - *countp = 0; - } - } - - if(ivars != NULL) { - result = malloc(sizeof(Ivar) * ivars->ivar_count); - - for(int i = 0; i < ivars->ivar_count; i++) { - result[i] = &ivars->ivar_list[i]; - } - } - - return result; -} - -Method *class_copyMethodList(Class cls, unsigned int *countp) { - int methodCount = 0; - void *iterator = 0; - struct objc_method_list *list; - Method *result = NULL; - int j = 0; - - while((list = class_nextMethodList(cls, &iterator)) != NULL) { - methodCount += list->method_count; - } - - if(countp != NULL) { - *countp = methodCount; - } - - result = malloc(sizeof(Method) * methodCount); - iterator = 0; - - while((list = class_nextMethodList(cls, &iterator)) != NULL) { - int mCount = list->method_count; - for(int i = 0; i < mCount; i++) { - result[j] = &list->method_list[i]; - j++; - } - } - - return result; -} - -objc_property_t *class_copyPropertyList(Class cls, unsigned int *countp) { - struct objc_class_extension *ext = cls->ext; - - if(ext == NULL) { - *countp = 0; - return NULL; - } - if(ext->properties == NULL) { - *countp = 0; - return NULL; - } - - uint32_t i, propertyCount = ext->properties->prop_count; - - if(propertyCount == 0) { - *countp = 0; - return NULL; - } - - objc_property_t *result = malloc(sizeof(struct objc_property) * propertyCount); - - for(i = 0; i < propertyCount; i++) { - result[i] = &(ext->properties->prop_list[i]); - } - - *countp = propertyCount; - - return result; -} - -Protocol **class_copyProtocolList(Class cls, unsigned int *countp) { - *countp = 0; - OBJCLog("class_copyProtocolList unimplemented"); - // UNIMPLEMENTED - return NULL; -} - -Class class_setSuperclass(Class cls, Class parent) { - Class result = cls->super_class; - cls->super_class = parent; - return result; -} - -void class_setVersion(Class class, int version) { - struct objc_class *cls = class; - cls->version = version; -} - -void class_setIvarLayout(Class cls, const char *layout) { - // UNIMPLEMENTED -} - -void class_setWeakIvarLayout(Class cls, const char *layout) { - // UNIMPLEMENTED -} - -BOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *type) { - struct objc_ivar_list *ivars; - struct objc_ivar *ivar; - Class class; - int i, mask; - char *namecopy, *typecopy; - - if(cls->info & CLS_META) { - return NO; - } - if(objc_lookUpClass(cls->name) != Nil) { - return NO; - } - for(class = cls; (class != Nil); class = class->super_class) { - ivars = class->ivars; - if(ivars) { - for(i = 0; i < ivars->ivar_count; i++) { - if(strcmp(ivars->ivar_list[i].ivar_name, name) == 0) { - return NO; // name exists - } - } - } - } - - namecopy = malloc(strlen(name) + 1); - if(namecopy == NULL) { - return NO; - } - strcpy(namecopy, name); - typecopy = malloc(strlen(type) + 1); - if(typecopy == NULL) { - free(namecopy); - return NO; - } - ivars = cls->ivars; - - if(ivars == NULL) { - ivars = (struct objc_ivar_list *)malloc(sizeof(struct objc_ivar_list)); - if(ivars == NULL) { - free(namecopy); - free(typecopy); - return NO; - } - ivars->ivar_count = 1; - ivar = &(ivars->ivar_list[0]); - } else { - i = ivars->ivar_count; - ivars = (struct objc_ivar_list *)realloc(ivars, sizeof(struct objc_ivar_list) + (i * sizeof(struct objc_ivar))); - if(ivars == NULL) { - free(namecopy); - free(typecopy); - return NO; - } - ivars->ivar_count = i + 1; - ivar = &(ivars->ivar_list[i]); - } - ivar->ivar_name = namecopy; - ivar->ivar_type = typecopy; - mask = (1 << alignment) - 1; - i = (cls->instance_size + mask) & ~mask; - ivar->ivar_offset = i; - cls->instance_size = i + size; - cls->ivars = ivars; - - return YES; -} - -void class_addMethods(Class class, struct objc_method_list *methodList) { - struct objc_method_list **methodLists = class->methodLists; - struct objc_method_list **newLists = NULL; - int i; - - if(!methodLists) { - // no method list yet: create one - newLists = calloc(sizeof(struct objc_method_list *), 2); - newLists[0] = methodList; - } else { - // we have a method list: measure it out - for(i = 0; methodLists[i] != NULL; i++) { - } - // allocate new method list array - newLists = calloc(sizeof(struct objc_method_list *), i + 2); - // copy over - newLists[0] = methodList; - for(i = 0; methodLists[i] != NULL; i++) { - newLists[i + 1] = methodLists[i]; - } - } - // set new lists - class->methodLists = newLists; - // free old ones (FIXME: thread safety) - if(methodLists) - free(methodLists); -} - -BOOL class_addMethod(Class cls, SEL name, IMP imp, const char *types) { - struct objc_method *newMethod = calloc(sizeof(struct objc_method), 1); - struct objc_method_list *methodList = calloc(sizeof(struct objc_method_list) + sizeof(struct objc_method), 1); - char *typescopy = (char *)malloc(strlen(types) + 1); - - newMethod->method_name = sel_getSelector(name); - strcpy(typescopy, (char *)types); - newMethod->method_types = typescopy; - newMethod->method_imp = imp; - - methodList->method_count = 1; - memcpy(methodList->method_list, newMethod, sizeof(struct objc_method)); - free(newMethod); - class_addMethods(cls, methodList); - return YES; // TODO: check if method exists -} - -BOOL class_addProtocol(Class cls, Protocol *protocol) { - //TODO: check if protocol already exists - - struct objc_protocol_list *protocolList = malloc(sizeof(struct objc_protocol_list)); - protocolList->next = 0; - protocolList->list[0] = protocol; - protocolList->count = 1; - if(cls->protocols != NULL) { - struct objc_protocol_list *protoList = cls->protocols; - struct objc_protocol_list *lastList = protoList; - while((protoList = protoList->next) != NULL) { - lastList = protoList; - } - lastList->next = protocolList; - } else { - cls->protocols = protocolList; - } - - return YES; -} - -BOOL class_conformsToProtocol(Class class, Protocol *protocol) { - - if(class == Nil) { - return NO; - } - for(;; class = class->super_class) { - if(class == Nil) - break; - - struct objc_protocol_list *protoList = class->protocols; - - for(; protoList != NULL; protoList = protoList->next) { - int i; - - for(i = 0; i < protoList->count; i++) { - if(protocol_conformsToProtocol(protoList->list[i], protocol)) - return YES; - } - } - } - - return NO; -} - -id class_createInstance(Class cls, size_t extraBytes) { - if(Nil == cls) { - return nil; - } - id obj = malloc(cls->instance_size + extraBytes); - obj->isa = cls; - return obj; -} - -IMP class_replaceMethod(Class cls, SEL selector, IMP imp, const char *types) { - // UNIMPLEMENTED - return NULL; -} - -BOOL class_respondsToSelector(Class cls, SEL selector) { - return (class_getInstanceMethod(cls, selector) != NULL) ? YES : NO; -} - -static SEL OBJCRegisterMethod(struct objc_method *method) { - return sel_registerNameNoCopy((const char *)method->method_name); -} - -static void OBJCRegisterSelectorsInMethodList(struct objc_method_list *list) { - int i; - - for(i = 0; i < list->method_count; i++) - list->method_list[i].method_name = OBJCRegisterMethod(list->method_list + i); -} - -static void OBJCRegisterSelectorsInClass(Class class) { - struct objc_method_list *cur = NULL; - - if(class->info & CLASS_NO_METHOD_ARRAY) { - // we have been called by via OBJCSymbolTableRegisterClasses; the methodLists pointer really - // points to a single method list. - - // remember direct-style method lists - struct objc_method_list *methodLists = (struct objc_method_list *)class->methodLists; - - class->methodLists = NULL; - // just in case this is really an old-style method list setup with a linked list, walk it. - for(cur = methodLists; cur; cur = cur->obsolete) { - OBJCRegisterSelectorsInMethodList(cur); - class_addMethods(class, cur); - } - class->info &= ~CLASS_NO_METHOD_ARRAY; - } else { - // this is a properly setup class; just walk through all method lists and register the selectors - void *iterator = 0; - while((cur = class_nextMethodList(class, &iterator))) { - OBJCRegisterSelectorsInMethodList(cur); - } - } -} - -static void OBJCCreateCacheForClass(Class class) { - if(class->cache == NULL) { - int i; - - class->cache = objc_calloc(1, sizeof(OBJCMethodCache)); - - for(i = 0; i < OBJCMethodCacheNumberOfEntries; i++) { - OBJCMethodCacheEntry *entry = class->cache->table + i; - OBJCInitializeCacheEntryOffset(entry); - entry->method = &empty_method; - } - } -} - -void OBJCRegisterClass(Class class) { - - { - struct objc_class *futureClass = OBJCHashValueForKey(OBJCFutureClassTable(), class->name); - - if(futureClass) { - memcpy(futureClass, class, sizeof(struct objc_class)); - class = futureClass; - } - } - - objc_lock_lock(&classTableLock); - OBJCHashInsertValueForKey(OBJCClassTable(), class->name, class); - objc_lock_unlock(&classTableLock); - - OBJCRegisterSelectorsInClass(class); - OBJCRegisterSelectorsInClass(class->isa); - - { - struct objc_protocol_list *protocols; - - for(protocols = class->protocols; protocols != NULL; protocols = protocols->next) { - unsigned i; - - for(i = 0; i < protocols->count; i++) { - OBJCProtocolTemplate *template = (OBJCProtocolTemplate *)protocols->list[i]; - - OBJCRegisterProtocol(template); - } - } - } - - OBJCCreateCacheForClass(class); - OBJCCreateCacheForClass(class->isa); - - if(class->super_class == NULL) { - // Root class - class->isa->isa = class->isa; - class->isa->super_class = class; - class->info |= CLASS_INFO_LINKED; - } -} - -static void OBJCAppendMethodListToClass(Class class, struct objc_method_list *methodList) { - OBJCRegisterSelectorsInMethodList(methodList); - class_addMethods(class, methodList); -} - -void OBJCRegisterCategoryInClass(Category category, Class class) { - struct objc_protocol_list *protos; - - if(category->instanceMethods != NULL) - OBJCAppendMethodListToClass(class, category->instanceMethods); - if(category->classMethods != NULL) - OBJCAppendMethodListToClass(class->isa, category->classMethods); - - for(protos = category->protocols; protos != NULL; protos = protos->next) { - unsigned i; - - for(i = 0; i < protos->count; i++) { - OBJCRegisterProtocol((OBJCProtocolTemplate *)protos->list[i]); - //add protocols from category to class - class_addProtocol(class, protos->list[i]); - } - } -} - -static void OBJCLinkClass(Class class) { - if(!(class->info & CLASS_INFO_LINKED)) { - Class superClass = (class->super_class == NULL) ? NULL : objc_lookUpClass((const char *)class->super_class); - Class metaRoot = (class->isa->isa == NULL) ? NULL : objc_lookUpClass((const char *)class->isa->isa); - - if(superClass != NULL) { - class->super_class = superClass; - class->info |= CLASS_INFO_LINKED; - class->isa->super_class = class->super_class->isa; - class->isa->info |= CLASS_INFO_LINKED; - class->isa->isa = (metaRoot == NULL) ? NULL : metaRoot->isa; - } - } -} - -void OBJCLinkClassTable(void) { - OBJCHashTable *hashTable = OBJCClassTable(); - Class class; - OBJCHashEnumerator state = OBJCEnumerateHashTable(hashTable); - - while((class = OBJCNextHashEnumeratorValue(&state)) != Nil) - OBJCLinkClass(class); -} - -void OBJCInitializeClass(Class class) { - if(!(class->info & CLASS_INFO_INITIALIZED)) { - if(class->super_class != NULL) - OBJCInitializeClass(class->super_class); - - if(!(class->info & CLASS_INFO_INITIALIZED)) { - static SEL selector = NULL; - - if(selector == NULL) - selector = sel_getUid("initialize"); - - /* "If a particular class does not implement initialize, the initialize - method of its superclass is invoked twice, once for the superclass and - once for the non-implementing subclass." */ - struct objc_method *method = class_getClassMethod(class, selector); - - class->info |= CLASS_INFO_INITIALIZED; - class->isa->info |= CLASS_INFO_INITIALIZED; - - if(method != NULL) - method->method_imp((id) class, selector); - } - } -} - -void objc_setForwardHandler(void *handler, void *handler_stret) { - objc_forwardHandler = handler; - objc_forwardHandler_stret = handler_stret; -} - -IMP OBJCLookupAndCacheUniqueIdForSuper(struct objc_super *super, SEL selector) { - if(msg_tracing) - objc_logMsgSendSuper(super, selector); - - IMP result = class_getMethodImplementation(super->super_class, selector); - - return result; -} - -IMP OBJCInitializeLookupAndCacheUniqueIdForObject(id object, SEL selector) { - if(msg_tracing) - objc_logMsgSend(object, selector); - - Class class = object->isa; - - if(!(class->info & CLASS_INFO_INITIALIZED)) { - Class checkInit = (class->info & CLASS_INFO_META) ? (Class)object : class; - OBJCInitializeClass(checkInit); - } - - IMP result = class_getMethodImplementation(class, selector); - - return result; -} - -struct objc_method_list *class_nextMethodList(Class class, void **iterator) { - int *it = (int *)iterator; - struct objc_method_list *ret = NULL; - if(!class->methodLists) - return NULL; - - ret = class->methodLists[*it]; - *it = *it + 1; - - return ret; -} diff --git a/objc/objc_class.h b/objc/objc_class.h deleted file mode 100644 index 1854ab0a..00000000 --- a/objc/objc_class.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "ObjCHashTable.h" -#import "objc_sel.h" -#import -#import -#import - -enum { - CLASS_INFO_CLASS = 0x001, - CLS_CLASS = CLASS_INFO_CLASS, - CLASS_INFO_META = 0x002, - CLS_META = CLASS_INFO_META, - CLASS_INFO_INITIALIZED = 0x004, - CLASS_INFO_POSING = 0x008, - CLASS_INFO_LINKED = 0x100, - CLASS_HAS_CXX_STRUCTORS = 0x2000, - CLASS_NO_METHOD_ARRAY = 0x4000 -}; - -typedef struct OBJCMethodDescriptionList { - int count; - struct objc_method_description list[1]; -} OBJCMethodDescriptionList; - -OBJC_EXPORT void OBJCRegisterClass(Class class); -OBJC_EXPORT void OBJCRegisterCategoryInClass(Category category, Class class); - -struct objc_method *OBJCLookupUniqueIdInOnlyThisClass(Class class, SEL uniqueId); -OBJC_EXPORT IMP OBJCInitializeLookupAndCacheUniqueIdForObject(id object, SEL message); -OBJC_EXPORT IMP OBJCLookupAndCacheUniqueIdForSuper(struct objc_super *super, SEL selector); - -OBJC_EXPORT void OBJCLinkClassTable(void); - -BOOL object_cxxConstruct(id self, Class c); -BOOL object_cxxDestruct(id self, Class c); diff --git a/objc/objc_debugHelpers.h b/objc/objc_debugHelpers.h deleted file mode 100644 index 6d88d560..00000000 --- a/objc/objc_debugHelpers.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -// does the specified address contain a valid object? May segfault. For debugging only. -BOOL _objc_checkObject(volatile id object); diff --git a/objc/objc_debugHelpers.m b/objc/objc_debugHelpers.m deleted file mode 100644 index 494c2d8f..00000000 --- a/objc/objc_debugHelpers.m +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import -#import -#import - -#import "objc_class.h" - -static id objc_lookUpMetaClass(const char *name) { - Class c = objc_lookUpClass(name); - if (c) - return c->isa; - return nil; -} - -BOOL _objc_checkObject(volatile id object) { - // assume no objects below a certain address - if (object < (id) 0x2000) - return NO; - // objects begin at even addresses - if ((long) object % 4 != 0) - return NO; - volatile Class isa = object->isa; - - if (isa < (Class) 0x2000) - return NO; - if ((long) isa % 4 != 0) - return NO; - - // check if name is all-ascii. We can't assume that name points to a - // nul-terminated string, so only copy the first 256 characters. - char *saneName = __builtin_alloca(256); - strncpy(saneName, isa->name, 256); - saneName[255] = '\0'; - char *cur; - for (cur = saneName; *cur != '\0'; cur++) { - if (((uint8_t) *cur <= 32 || (uint8_t) *cur > 128)) { - return NO; - } - } - // name is ok; lookup class and compare with what it should be - Class accordingToName = Nil; - - if (isa->info & CLASS_INFO_META) - accordingToName = objc_lookUpMetaClass(saneName); - else - accordingToName = objc_lookUpClass(saneName); - - if (isa == accordingToName) - return YES; - - return NO; -} diff --git a/objc/objc_exception.m b/objc/objc_exception.m deleted file mode 100644 index 5dd0db4a..00000000 --- a/objc/objc_exception.m +++ /dev/null @@ -1,132 +0,0 @@ -#import "objc_tls.h" -#import - -OBJC_EXPORT NSUncaughtExceptionHandler *NSGetUncaughtExceptionHandler(void); -OBJC_EXPORT void NSSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *); - -NSUncaughtExceptionHandler *NSThreadUncaughtExceptionHandler(void); -void NSThreadSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *function); - -objc_exception_frame *NSThreadCurrentHandler(void) { - return objc_tlsCurrent()->exception_frame; -} - -void NSThreadSetCurrentHandler(objc_exception_frame *handler) { - objc_tlsCurrent()->exception_frame = handler; -} - -NSUncaughtExceptionHandler *NSThreadUncaughtExceptionHandler(void) { - return objc_tlsCurrent()->uncaught_exception_handler; -} - -void NSThreadSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *function) { - objc_tlsCurrent()->uncaught_exception_handler = function; -} - -void __NSPushExceptionFrame(objc_exception_frame *frame) { - frame->parent = NSThreadCurrentHandler(); - frame->exception = nil; - - NSThreadSetCurrentHandler(frame); -} - -void __NSPopExceptionFrame(objc_exception_frame *frame) { - NSThreadSetCurrentHandler(frame->parent); -} - -static void defaultHandler(id exception) { - __builtin_trap(); - fprintf(stderr, "*** Uncaught exception\n"); - // fprintf(stderr,"*** Uncaught exception <%s> *** %s\n",[[exception name] - // cString],[[exception reason] cString]); -} - -void _NSRaiseException(id exception) { - objc_exception_frame *top = NSThreadCurrentHandler(); - - if (top == NULL) { - NSUncaughtExceptionHandler *proc = NSGetUncaughtExceptionHandler(); - - if (proc == NULL) - defaultHandler(exception); - else - proc(exception); - } else { - NSThreadSetCurrentHandler(top->parent); - - top->exception = exception; - - longjmp(top->state, 1); - } -} - -// Enable that to put back original Cocotron behaviour, where every thread has -// its own default uncaught handler -//#define PER_THREAD_UNHANDLED_EXCEPTION_HANDLER - -#ifdef PER_THREAD_UNHANDLED_EXCEPTION_HANDLER - -NSUncaughtExceptionHandler *NSGetUncaughtExceptionHandler(void) { - return NSThreadUncaughtExceptionHandler(); -} - -void NSSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *proc) { - NSThreadSetUncaughtExceptionHandler(proc); -} -#else -static NSUncaughtExceptionHandler *uncaughtExceptionHandler = NULL; - -NSUncaughtExceptionHandler *NSGetUncaughtExceptionHandler(void) { - return uncaughtExceptionHandler; -} - -void NSSetUncaughtExceptionHandler(NSUncaughtExceptionHandler *proc) { - uncaughtExceptionHandler = proc; -} -#endif - -#if !defined(GCC_RUNTIME_3) && !defined(APPLE_RUNTIME_4) - -void __gnu_objc_personality_sj0() { - printf("shouldn't get here\n"); - abort(); -} - -void objc_exception_try_enter(void *exceptionFrame) { - __NSPushExceptionFrame((objc_exception_frame *) exceptionFrame); -} - -void objc_exception_try_exit(void *exceptionFrame) { - __NSPopExceptionFrame((objc_exception_frame *) exceptionFrame); -} - -id objc_exception_extract(void *exceptionFrame) { - objc_exception_frame *frame = (objc_exception_frame *) exceptionFrame; - return (id) frame->exception; -} - -void objc_exception_throw(id exception) { - _NSRaiseException(exception); - abort(); -} - -static BOOL isKindOfClass(id object, Class kindOf) { - Class class = object_getClass(object); - - while (object_getClass((id) object_getClass((id) class)) != class) { - - if (kindOf == class) { - return YES; - } - - class = class_getSuperclass(class); - } - - return NO; -} - -int objc_exception_match(Class exceptionClass, id exception) { - return isKindOfClass(exception, exceptionClass); -} - -#endif diff --git a/objc/objc_functions.c b/objc/objc_functions.c deleted file mode 100644 index a5247448..00000000 --- a/objc/objc_functions.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "ObjCModule.h" -#import -#import - -// Calls to these functions are generated by the compiler, so we need to use these names - -void __objc_exec_class(OBJCModule *module) { - OBJCQueueModule(module); -} - -id objc_get_class(const char *name) { - return (id)objc_lookUpClass(name); -} - -id objc_get_meta_class(const char *name) { - return (id)object_getClass((id)objc_lookUpClass(name)); -} - -// __objc_execClass is called for each module loaded; this is where we tie into the runtime. -void __objc_execClass(OBJCModule *module) { - OBJCQueueModule(module); -} diff --git a/objc/objc_ivar.c b/objc/objc_ivar.c deleted file mode 100644 index a2c1eadb..00000000 --- a/objc/objc_ivar.c +++ /dev/null @@ -1,13 +0,0 @@ -#import - -const char *ivar_getName(Ivar ivar) { - return ivar->ivar_name; -} - -size_t ivar_getOffset(Ivar ivar) { - return ivar->ivar_offset; -} - -const char *ivar_getTypeEncoding(Ivar ivar) { - return ivar->ivar_type; -} diff --git a/objc/objc_lock.h b/objc/objc_lock.h deleted file mode 100644 index 71f8b932..00000000 --- a/objc/objc_lock.h +++ /dev/null @@ -1,22 +0,0 @@ -#import -#include - -typedef unsigned int objc_lock; - -static inline bool objc_lock_try(volatile objc_lock *__lock) { - return __sync_bool_compare_and_swap(__lock, 0, 1); -} - -static inline void objc_lock_lock(volatile objc_lock *__lock) { - while(!__sync_bool_compare_and_swap(__lock, 0, 1)) { -#ifdef WIN32 - Sleep(0); -#else - usleep(1); -#endif - } -} - -static inline void objc_lock_unlock(volatile objc_lock *__lock) { - __sync_bool_compare_and_swap(__lock, 1, 0); -} diff --git a/objc/objc_log.c b/objc/objc_log.c deleted file mode 100644 index 004ce03a..00000000 --- a/objc/objc_log.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "objc_log.h" -#ifdef WINDOWS -#import -#endif -#import -#import - -void objc_log_threadid() { -#ifdef WINDOWS - fprintf(stderr, "threadId=%p:tick=%d:", GetCurrentThreadId(), GetTickCount()); -#endif -} - -void objc_logv_format(const char *format, va_list arguments) { - vfprintf(stderr, format, arguments); - fflush(stderr); -} - -void objc_log_format(const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - objc_logv_format(format, arguments); - va_end(arguments); -} - -void objc_log_newline() { - fprintf(stderr, "\n"); - fflush(stderr); -} - -void OBJCLog(const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - - fprintf(stderr, "ObjC:"); - vfprintf(stderr, format, arguments); - fprintf(stderr, "\n"); - fflush(stderr); - va_end(arguments); -} - -void OBJCPartialLog(const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - - fprintf(stderr, "ObjC:"); - vfprintf(stderr, format, arguments); - fflush(stderr); - va_end(arguments); -} - -void OBJCFinishLog(const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - - vfprintf(stderr, format, arguments); - fprintf(stderr, "\n"); - fflush(stderr); - va_end(arguments); -} - -void OBJCRaiseException(const char *name, const char *format, ...) { - va_list arguments; - - va_start(arguments, format); - - fprintf(stderr, "ObjC:%s:", name); - vfprintf(stderr, format, arguments); - fprintf(stderr, "\n"); - fflush(stderr); - va_end(arguments); -} diff --git a/objc/objc_log.h b/objc/objc_log.h deleted file mode 100755 index ac2ab4a3..00000000 --- a/objc/objc_log.h +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -void objc_log_threadid(); -void objc_log_format(const char *format, ...); -void objc_log_newline(); - -void OBJCLog(const char *format, ...); -void OBJCPartialLog(const char *format, ...); -void OBJCFinishLog(const char *format, ...); -void OBJCRaiseException(const char *name, const char *format, ...); diff --git a/objc/objc_malloc.c b/objc/objc_malloc.c deleted file mode 100644 index f243c61e..00000000 --- a/objc/objc_malloc.c +++ /dev/null @@ -1,17 +0,0 @@ -#import "objc_malloc.h" - -void *objc_malloc(size_t size) { - return malloc(size); -} - -void *objc_realloc(void *ptr, size_t size) { - return realloc(ptr, size); -} - -void *objc_calloc(size_t count, size_t size) { - return calloc(count, size); -} - -void objc_free(void *ptr) { - free(ptr); -} diff --git a/objc/objc_malloc.h b/objc/objc_malloc.h deleted file mode 100644 index 126a5497..00000000 --- a/objc/objc_malloc.h +++ /dev/null @@ -1,6 +0,0 @@ -#import - -void *objc_malloc(size_t size); -void *objc_realloc(void *ptr, size_t size); -void *objc_calloc(size_t count, size_t size); -void objc_free(void *ptr); diff --git a/objc/objc_method.c b/objc/objc_method.c deleted file mode 100644 index 48b1c8b4..00000000 --- a/objc/objc_method.c +++ /dev/null @@ -1,56 +0,0 @@ -#import - -IMP method_getImplementation(Method method) { - return method->method_imp; -} - -SEL method_getName(Method method) { - return method->method_name; -} - -unsigned method_getNumberOfArguments(Method method) { - unsigned result = 2; - const char *name = sel_getName(method->method_name); - - for(; *name != '\0'; name++) - if(*name == ':') - result++; - - return result; -} - -void method_getReturnType(Method method, char *type, size_t typeCapacity) { - // UNIMPLEMENTED -} - -void method_getArgumentType(Method method, unsigned int index, char *type, size_t typeCapacity) { - // UNIMPLEMENTED -} - -char *method_copyReturnType(Method method) { - // UNIMPLEMENTED - return NULL; -} - -char *method_copyArgumentType(Method method, unsigned int index) { - // UNIMPLEMENTED - return NULL; -} - -const char *method_getTypeEncoding(Method method) { - return (method == NULL) ? NULL : method->method_types; -} - -IMP method_setImplementation(Method method, IMP imp) { - IMP result = method->method_imp; - method->method_imp = imp; - return result; -} - -void method_exchangeImplementations(Method method, Method other) { - // FIXME: needs to be atomic - IMP tmp = method->method_imp; - - method->method_imp = other->method_imp; - other->method_imp = tmp; -} diff --git a/objc/objc_msg_lookup.c b/objc/objc_msg_lookup.c deleted file mode 100644 index 58dd0ce6..00000000 --- a/objc/objc_msg_lookup.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "objc_cache.h" -#import "objc_class.h" -#import "objc_log.h" -#import -#import - -//we must return a 64 bit type for clearing both registers (32 bit systems) -static unsigned long long nil_message(id object, SEL message, ...) { - return 0; -} - -IMP objc_msg_lookup(id object, SEL selector) { - if(object == nil) - return (IMP)nil_message; - else { - OBJCMethodCache *cache = object->isa->cache; - uintptr_t index = (uintptr_t)sel_getSelector(selector) & OBJCMethodCacheMask; - OBJCMethodCacheEntry *checkEntry = ((void *)cache->table) + index; - - do { - struct objc_method *check = checkEntry->method; - - if(((SEL)check->method_name) == sel_getSelector(selector)) - return check->method_imp; - - checkEntry = ((void *)checkEntry) + checkEntry->offsetToNextEntry; - } while(checkEntry != NULL); - } - - return OBJCInitializeLookupAndCacheUniqueIdForObject(object, selector); -} - -IMP objc_msg_lookup_super(struct objc_super *super, SEL selector) { - uintptr_t index = (uintptr_t)sel_getSelector(selector) & OBJCMethodCacheMask; - OBJCMethodCacheEntry *checkEntry = ((void *)super->super_class->cache->table) + index; - - do { - struct objc_method *check = checkEntry->method; - - if(((SEL)check->method_name) == sel_getSelector(selector)) - return check->method_imp; - - checkEntry = ((void *)checkEntry) + checkEntry->offsetToNextEntry; - } while(checkEntry != NULL); - - return OBJCLookupAndCacheUniqueIdForSuper(super, selector); -} diff --git a/objc/objc_object.c b/objc/objc_object.c deleted file mode 100644 index 53935f45..00000000 --- a/objc/objc_object.c +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright (c) 2006-2009 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "objc_class.h" -#import - -Class object_getClass(id object) { - if(object == nil) { - return Nil; - } - return object->isa; -} - -const char *object_getClassName(id object) { - return class_getName(object_getClass(object)); -} - -Ivar object_getInstanceVariable(id object, const char *name, void **ptrToValuep) { - Ivar result = class_getInstanceVariable(object_getClass(object), name); - - *ptrToValuep = (char *)object + result->ivar_offset; - - return result; -} - -id object_getIvar(id object, Ivar ivar) { - if(object == nil) - return nil; - - return *(id *)((char *)object + ivar->ivar_offset); -} - -void *object_getIndexedIvars(id object) { - return (char *)object + object_getClass(object)->instance_size; -} - -Class object_setClass(id object, Class cls) { - if(object == nil) - return Nil; - - Class result = object->isa; - - object->isa = cls; - - return result; -} - -static void ivarCopy(void *vdst, unsigned offset, void *vsrc, size_t length) { - uint8_t *dst = vdst; - uint8_t *src = vsrc; - size_t i; - - for(i = 0; i < length; i++) - dst[offset + i] = src[i]; -} - -// FIXME: This only works for 'id' ivars -Ivar object_setInstanceVariable(id object, const char *name, void *value) { - Ivar ivar = class_getInstanceVariable(object_getClass(object), name); - - if(ivar != NULL) - ivarCopy(object, ivar->ivar_offset, value, sizeof(id)); - - return ivar; -} - -void object_setIvar(id object, Ivar ivar, id value) { - ivarCopy(object, ivar->ivar_offset, &value, sizeof(id)); -} - -id object_copy(id object, size_t size) { - // UNIMPLEMENTED - return nil; -} - -id object_dispose(id object) { - free(object); - return nil; -} - -static inline BOOL OBJCCallCXXSelector(id self, Class class, SEL selector) { - struct objc_method *result = NULL; - if(!class->super_class) - return YES; - - if(!OBJCCallCXXSelector(self, class->super_class, selector)) - return NO; - - if((result = OBJCLookupUniqueIdInOnlyThisClass(class, selector)) != NULL) { - if(result->method_imp(self, selector)) { - return YES; - } else { - object_cxxDestruct(self, class->super_class); - return NO; - } - } - return YES; -} - -BOOL object_cxxConstruct(id self, Class class) { - static SEL cxx_constructor = 0; - if(!cxx_constructor) - cxx_constructor = sel_registerName(".cxx_construct"); - - if(!self) - return YES; - if(class->info & CLASS_HAS_CXX_STRUCTORS) - return OBJCCallCXXSelector(self, class, cxx_constructor); - return YES; -} - -BOOL object_cxxDestruct(id self, Class class) { - static SEL cxx_destructor = 0; - if(!cxx_destructor) - cxx_destructor = sel_registerName(".cxx_destruct"); - - if(!self) - return YES; - if(class->info & CLASS_HAS_CXX_STRUCTORS) - return OBJCCallCXXSelector(self, class, cxx_destructor); - return YES; -} diff --git a/objc/objc_object.h b/objc/objc_object.h deleted file mode 100644 index e69de29b..00000000 diff --git a/objc/objc_property.c b/objc/objc_property.c deleted file mode 100644 index 31ac6bb5..00000000 --- a/objc/objc_property.c +++ /dev/null @@ -1,68 +0,0 @@ -#import -#import -#import -#import -#import - -const char *property_getAttributes(objc_property_t property) { - return property->attributes; -} - -const char *property_getName(objc_property_t property) { - return property->name; -} - -id objc_assign_ivar(id self, id value, unsigned int offset) { - // NSCLog("objc_assign_ivar(%x,%s,%x,%s,%d)",self,(self!=nil)?self->isa->name:"nil",value,(value!=nil)?value->isa->name:"nil",offset); - id *ivar = (id *)(((uint8_t *)self) + offset); - return *ivar = value; -} - -void objc_copyStruct(void *dest, const void *src, size_t size, BOOL atomic, BOOL hasStrong) { - int i; - - for(i = 0; i < size; i++) - ((uint8_t *)dest)[i] = ((uint8_t *)src)[i]; -} - -void objc_setProperty(id self, SEL _cmd, size_t offset, id value, BOOL isAtomic, BOOL shouldCopy) { - if(isAtomic) { - // NSUnimplementedFunction(); - } - void *buffer = (void *)self + offset; - id oldValue = *(id *)buffer; - - static SEL copySelector = NULL; - static SEL retainSelector = NULL; - static SEL releaseSelector = NULL; - - if(copySelector == NULL) - copySelector = sel_getUid("copy"); - if(retainSelector == NULL) - retainSelector = sel_getUid("retain"); - if(releaseSelector == NULL) - releaseSelector = sel_getUid("releaseSelector"); - - SEL useSelector = shouldCopy ? copySelector : retainSelector; - struct objc_method *assignMethod = class_getClassMethod(object_getClass(value), useSelector); - - if(assignMethod != NULL) - value = assignMethod->method_imp(value, useSelector); - - *(id *)buffer = value; - - struct objc_method *releaseMethod = class_getClassMethod(object_getClass(oldValue), releaseSelector); - if(releaseMethod != NULL) - releaseMethod->method_imp(oldValue, releaseSelector); -} - -id objc_getProperty(id self, SEL _cmd, size_t offset, BOOL isAtomic) { - if(isAtomic) { - // NSUnimplementedFunction(); - } - - void *buffer = (void *)self + offset; - id value = *(id *)buffer; - - return value; -} diff --git a/objc/objc_protocol.c b/objc/objc_protocol.c deleted file mode 100644 index 011fa8f1..00000000 --- a/objc/objc_protocol.c +++ /dev/null @@ -1,62 +0,0 @@ -#import "objc_protocol.h" -#import - -const char *protocol_getName(Protocol *protocol) { - return protocol->nameCString; -} - -objc_property_t protocol_getProperty(Protocol *protocol, const char *name, BOOL isRequired, BOOL isInstance) { - // UNIMPLEMENTED - return NULL; -} - -objc_property_t *protocol_copyPropertyList(Protocol *protocol, unsigned int *countp) { - // UNIMPLEMENTED - return NULL; -} - -Protocol **protocol_copyProtocolList(Protocol *protocol, unsigned int *countp) { - // UNIMPLEMENTED - return NULL; -} - -struct objc_method_description *protocol_copyMethodDescriptionList(Protocol *protocol, BOOL isRequired, BOOL isInstance, unsigned int *countp) { - // UNIMPLEMENTED - return NULL; -} - -struct objc_method_description protocol_getMethodDescription(Protocol *protocol, SEL selector, BOOL isRequired, BOOL isInstance) { - struct objc_method_description result = {0, 0}; - // UNIMPLEMENTED - return result; -} - -BOOL protocol_conformsToProtocol(Protocol *protocol, Protocol *other) { - - if(other == nil) - return NO; - - if(strcmp(other->nameCString, protocol->nameCString) == 0) - return YES; - else if(protocol->childProtocols == NULL) - return NO; - else { - int i; - - for(i = 0; i < protocol->childProtocols->count; i++) { - Protocol *proto = protocol->childProtocols->list[i]; - - if(strcmp(other->nameCString, proto->nameCString) == 0) - return YES; - - if(protocol_conformsToProtocol(proto, other)) - return YES; - } - return NO; - } -} - -BOOL protocol_isEqual(Protocol *protocol, Protocol *other) { - // UNIMPLEMENTED - return NO; -} diff --git a/objc/objc_protocol.h b/objc/objc_protocol.h deleted file mode 100644 index fadc4049..00000000 --- a/objc/objc_protocol.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -typedef struct { - Class isa; - const char *nameCString; - struct objc_protocol_list *childProtocols; - struct OBJCMethodDescriptionList *instanceMethods; - struct OBJCMethodDescriptionList *classMethods; -} OBJCProtocolTemplate; - -OBJC_EXPORT void OBJCRegisterProtocol(OBJCProtocolTemplate *protocolTemplate); diff --git a/objc/objc_sel.c b/objc/objc_sel.c deleted file mode 100644 index 15dc0d6e..00000000 --- a/objc/objc_sel.c +++ /dev/null @@ -1,117 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "objc_sel.h" -#import "ObjCHashTable.h" -#import "objc_cache.h" -#import "objc_class.h" -#import "objc_log.h" -#import "objc_malloc.h" - -#define INITIAL_SELECTOR_TABLE_SIZE 4096 // Big System has about 3700 selectors - -static OBJCHashTable *nameToNumber = NULL; -static OBJCHashTable *nameToSelector = NULL; - -const char *sel_registerNameNoCopy(const char *name) { - const char *result; - - if(nameToNumber == NULL) - nameToNumber = OBJCCreateHashTable(INITIAL_SELECTOR_TABLE_SIZE); - - result = OBJCHashValueForKey(nameToNumber, name); - - if(result == NULL) { - result = OBJCHashInsertValueForKey(nameToNumber, name, name); - } - - return result; -} - -SEL sel_registerSelectorNoCopyName(const char *name) { -#ifndef OBJC_TYPED_SELECTORS - return sel_registerNameNoCopy(name); -#else - SEL result; - - if(nameToSelector == NULL) - nameToSelector = OBJCCreateHashTable(INITIAL_SELECTOR_TABLE_SIZE); - - result = (SEL)OBJCHashValueForKey(nameToSelector, name); - - if(result == NULL) { - objc_selector_internal *ughp; - - ughp = objc_malloc(sizeof(objc_selector_internal)); - ughp->name = sel_registerNameNoCopy(name); - - result = (SEL)OBJCHashInsertValueForKey(nameToSelector, (char *)name, ughp); - } - - return result; -#endif -} - -const char *sel_getName(SEL selector) { - if(selector == NULL) - return NULL; - - if(nameToNumber == NULL) - return NULL; - - selector = sel_getSelector(selector); - - return (const char *)OBJCHashValueForKey(nameToNumber, selector); -} - -SEL sel_getUid(const char *selectorName) { - SEL result; - -#ifndef OBJC_TYPED_SELECTORS - if(nameToNumber == NULL) - result = NULL; - else - result = (SEL)OBJCHashValueForKey(nameToNumber, selectorName); - - if(result == NULL) { - char *copy = objc_malloc(sizeof(char) * (strlen(selectorName) + 1)); - - strcpy(copy, selectorName); - result = (SEL)sel_registerNameNoCopy(copy); - } -#else - if(nameToSelector == NULL) - result = NULL; - else - result = (SEL)OBJCHashValueForKey(nameToSelector, selectorName); - - if(result == NULL) { - char *copy = objc_malloc(sizeof(char) * (strlen(selectorName) + 1)); - - strcpy(copy, selectorName); - - result = sel_registerSelectorNoCopyName(copy); - } -#endif - - return result; -} - -BOOL sel_isEqual(SEL selector, SEL other) { - selector = sel_getSelector(selector); - other = sel_getSelector(other); - - return (selector == other) ? YES : NO; -} - -SEL sel_registerName(const char *cString) { - return sel_getUid(cString); -} - -BOOL sel_isMapped(SEL selector) { - return (sel_getName(selector) != NULL) ? YES : NO; -} diff --git a/objc/objc_sel.h b/objc/objc_sel.h deleted file mode 100644 index 8c99c1d5..00000000 --- a/objc/objc_sel.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright (c) 2006-2007 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -OBJC_EXPORT const char *sel_registerNameNoCopy(const char *name); - -OBJC_EXPORT SEL sel_registerSelectorNoCopyName(const char *name); - -#ifdef OBJC_TYPED_SELECTORS - -typedef struct { - const char *name; - const char *types; -} objc_selector_internal; - -static inline const char *objc_getSelectorReferenceName(objc_selector_internal *ref) { - return ref->name; -} - -static inline void objc_setSelectorReferenceName(objc_selector_internal **ref, const char *name) { - (*ref)->name = name; -} - -static inline SEL sel_getSelector(SEL selector) { - if(selector == NULL) - return selector; - - struct { - SEL selector; - } *typed = (void *)selector; - - return typed->selector; -} - -#else - -typedef SEL objc_selector_internal; - -static inline const char *objc_getSelectorReferenceName(objc_selector_internal *ref) { - return (const char *)(*ref); -} - -static inline void objc_setSelectorReferenceName(objc_selector_internal **ref, const char *name) { - **ref = (objc_selector_internal)name; -} - -static inline SEL sel_getSelector(SEL selector) { - return selector; -} - -#endif diff --git a/objc/objc_tls.c b/objc/objc_tls.c deleted file mode 100644 index fdc508a1..00000000 --- a/objc/objc_tls.c +++ /dev/null @@ -1,24 +0,0 @@ -#import "objc_tls.h" -#import -#import - -static void objc_tls_free(void *tls) { -} - -static pthread_key_t objc_tls_key; - -static void createKey() { - pthread_key_create(&objc_tls_key, objc_tls_free); - - objc_tls *tls = calloc(1, sizeof(objc_tls)); - - pthread_setspecific(objc_tls_key, tls); -} - -objc_tls *objc_tlsCurrent() { - static pthread_once_t createKeyOnce = PTHREAD_ONCE_INIT; - - pthread_once(&createKeyOnce, createKey); - - return pthread_getspecific(objc_tls_key); -} diff --git a/objc/objc_tls.h b/objc/objc_tls.h deleted file mode 100644 index 43eff1b7..00000000 --- a/objc/objc_tls.h +++ /dev/null @@ -1,26 +0,0 @@ -#import -#include - -typedef struct objc_autoreleasepool { - struct objc_autoreleasepool *_parent; - unsigned long _pageCount; - id **_pages; - unsigned long _nextSlot; - struct objc_autoreleasepool *_childPool; -} objc_autoreleasepool; - -typedef struct objc_exception_frame { - jmp_buf state; - struct objc_exception_frame *parent; - id exception; -} objc_exception_frame; - -typedef void NSUncaughtExceptionHandler(id exception); - -typedef struct objc_tls { - objc_autoreleasepool *pool; - objc_exception_frame *exception_frame; - NSUncaughtExceptionHandler *uncaught_exception_handler; -} objc_tls; - -objc_tls *objc_tlsCurrent(); diff --git a/objc/platform_darwin/OBJCRegisterModule_Darwin.h b/objc/platform_darwin/OBJCRegisterModule_Darwin.h deleted file mode 100644 index 0a2ac48a..00000000 --- a/objc/platform_darwin/OBJCRegisterModule_Darwin.h +++ /dev/null @@ -1,9 +0,0 @@ -/* Copyright (c) 2010 Glenn Ganz - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -//if name is NULL, all module in binary will be registered -void OBJCRegisterModule_Darwin(const char *name); \ No newline at end of file diff --git a/objc/platform_darwin/OBJCRegisterModule_Darwin.m b/objc/platform_darwin/OBJCRegisterModule_Darwin.m deleted file mode 100644 index 54589cf0..00000000 --- a/objc/platform_darwin/OBJCRegisterModule_Darwin.m +++ /dev/null @@ -1,165 +0,0 @@ -/* Copyright (c) 2007 Matteo Ceruti (matteo@ceruti.org) -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#ifdef __APPLE__ -#import "ObjCException.h" -#import "ObjCModule.h" -#import "objc_class.h" -#import "objc_sel.h" -#import -#import -#import -#import -#import - -/* - * Fetches all Objective-C-Modules via the mach-o/dyld.h interface and - * initializes them. - */ -void OBJCRegisterModule_Darwin(const char *name) { - int i; - int count = _dyld_image_count(); - - // Fix up sel references - - for (i = 0; i < count; i++) { - - if (name != NULL) { - const char *dylibname = _dyld_get_image_name(i); - if (strcmp(dylibname, name) != 0) { - continue; - } - } -#ifdef __LP64__ - const struct mach_header_64 *head = - (struct mach_header_64 *) _dyld_get_image_header(i); - - uint64_t size; - char *section = getsectdatafromheader_64(head, "__OBJC", - "__message_refs", &size); -#else - const struct mach_header *head = _dyld_get_image_header(i); - - uint32_t size; - char *section = - getsectdatafromheader(head, "__OBJC", "__message_refs", &size); -#endif - section += _dyld_get_image_vmaddr_slide(i); - - long nmess = size / sizeof(SEL); - - SEL *sels = (SEL *) section; - - int j; - for (j = 0; j < nmess; j++) { - sels[j] = sel_registerNameNoCopy((const char *) sels[j]); - ; - } - } // iterate mach_headers - - // queue each module. - - for (i = 0; i < count; i++) { - - if (name != NULL) { - const char *dylibname = _dyld_get_image_name(i); - if (strcmp(dylibname, name) != 0) { - continue; - } - } - long nmodules = 0; - - OBJCModule *mods = 0; - char *section = 0; - -#ifdef __LP64__ - const struct mach_header_64 *head = - (struct mach_header_64 *) _dyld_get_image_header(i); - - uint64_t size = 0; - section = getsectdatafromheader_64(head, "__OBJC", "__module_info", - &size); -#else - const struct mach_header *head = _dyld_get_image_header(i); - - uint32_t size = 0; - section = getsectdatafromheader(head, "__OBJC", "__module_info", &size); -#endif - - section += _dyld_get_image_vmaddr_slide(i); - - mods = (OBJCModule *) section; - - nmodules = size / sizeof(OBJCModule); - - long j; - for (j = 0; j < nmodules; j++) { - OBJCModule *m = &mods[j]; - OBJCQueueModule(m); - } - } // iterate mach_headers - - /* - * Now all classes should have been seen. Now fix class references. - */ - - for (i = 0; i < count; i++) { - - if (name != NULL) { - const char *dylibname = _dyld_get_image_name(i); - if (strcmp(dylibname, name) != 0) { - continue; - } - } -#ifdef __LP64__ - const struct mach_header_64 *head = - (struct mach_header_64 *) _dyld_get_image_header(i); - - uint64_t size = 0; - char *section = - getsectdatafromheader_64(head, "__OBJC", "__cls_refs", &size); -#else - const struct mach_header *head = _dyld_get_image_header(i); - - uint32_t size = 0; - char *section = - getsectdatafromheader(head, "__OBJC", "__cls_refs", &size); -#endif - typeof(size) nrefs = size / sizeof(struct objc_class *); - - section += _dyld_get_image_vmaddr_slide(i); - - Class *refs = (Class *) section; - long j; - for (j = 0; j < nrefs; j++) { - const char *aref = - (const char *) refs[j]; // yes these are strings ! - - Class c = objc_lookUpClass(aref); - if (c) { - refs[j] = c; // replace with actual Class - } else { - // when could this happen? - NSCLog("%s does not exist yet!? Is it a ref?\n", aref); - } - } - } // iterate mach_headers - - OBJCSendLoadMessages(); -} -#endif diff --git a/objc/platform_darwin/objc_msgSend-darwin-i386.s b/objc/platform_darwin/objc_msgSend-darwin-i386.s deleted file mode 100644 index 3eb1af1c..00000000 --- a/objc/platform_darwin/objc_msgSend-darwin-i386.s +++ /dev/null @@ -1,110 +0,0 @@ - .text -.globl _objc_msgSend -_objc_msgSend: - pushl %ebp - movl %esp, %ebp - subl $16, %esp - pushl 12(%ebp) - pushl 8(%ebp) - call L_objc_msg_lookup$stub - mov %ebp, %esp - - pop %ebp - jmp *%eax -.globl _objc_msgSendSuper -_objc_msgSendSuper: - pushl %ebp - movl %esp, %ebp - - pushl %edi - pushl %esi - subl $16, %esp - movl 8(%ebp), %edi - movl 12(%ebp), %esi - movl %esi, 4(%esp) - movl %edi, (%esp) - call L_objc_msg_lookup_super$stub - // TODO: incomprehensible. rewrite using %eax for temp value - movl (%edi), %esi - movl %esi, 8(%ebp) - - addl $16, %esp - popl %esi - popl %edi - mov %ebp, %esp - pop %ebp - jmp *%eax -.globl _objc_msgSend_fpret -_objc_msgSend_fpret: - pushl %ebp - movl %esp, %ebp - subl $16, %esp - pushl 12(%ebp) - pushl 8(%ebp) - - call L_objc_msg_lookup$stub - mov %ebp, %esp - pop %ebp - - jmp *%eax -.globl _objc_msgSend_stret -_objc_msgSend_stret: - pushl %ebp - movl %esp, %ebp - movl 12(%ebp), %eax - testl %eax, %eax -// nil receiver, go to workaround - je stretNilReceiver - - subl $16, %esp - pushl 16(%ebp) - pushl 12(%ebp) - - - call L_objc_msg_lookup$stub - mov %ebp, %esp - pop %ebp - - jmp *%eax - -stretNilReceiver: -// Modelled after what gcc outputs for a struct-return function - pushl %ebx - call abiHack -abiHack: - popl %ebx - popl %ebx - leave - ret $4 - -.globl _objc_msgSendSuper_stret -_objc_msgSendSuper_stret: - pushl %ebp - movl %esp, %ebp - pushl %edi - pushl %esi - subl $32, %esp - movl 12(%ebp), %edi - movl 16(%ebp), %esi - movl %esi, 4(%esp) - movl %edi, (%esp) - call L_objc_msg_lookup_super$stub - movl (%edi), %esi - movl %esi, 8(%ebp) - - addl $32, %esp - popl %esi - popl %edi - mov %ebp, %esp - pop %ebp - jmp *%eax - - .section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5 -L_objc_msg_lookup_super$stub: - .indirect_symbol _objc_msg_lookup_super - hlt ; hlt ; hlt ; hlt ; hlt -L_objc_msg_lookup$stub: - .indirect_symbol _objc_msg_lookup - hlt ; hlt ; hlt ; hlt ; hlt - .subsections_via_symbols - diff --git a/objc/platform_darwin/objc_msgSend-darwin-ppc.s b/objc/platform_darwin/objc_msgSend-darwin-ppc.s deleted file mode 100644 index 4063116b..00000000 --- a/objc/platform_darwin/objc_msgSend-darwin-ppc.s +++ /dev/null @@ -1,147 +0,0 @@ - .section __TEXT,__text,regular,pure_instructions - .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 - .machine ppc - .text - .align 2 - .globl _objc_msgSend -_objc_msgSend: - mflr r0 - stmw r28,-16(r1) - mr r29,r3 - mr r28,r4 - stw r0,8(r1) - stwu r1,-80(r1) - stw r5,112(r1) - stw r6,116(r1) - stw r7,120(r1) - stw r8,124(r1) - stw r9,128(r1) - stw r10,132(r1) - bl L_objc_msg_lookup$stub - lwz r5,112(r1) - lwz r6,116(r1) - lwz r7,120(r1) - lwz r8,124(r1) - lwz r9,128(r1) - lwz r10,132(r1) - mr r12,r3 - mr r4,r28 - mr r3,r29 - mtctr r12 - bctrl - addi r1,r1,80 - lwz r0,8(r1) - lmw r28,-16(r1) - mtlr r0 - blr - .align 2 - .globl _objc_msgSendSuper -_objc_msgSendSuper: - mflr r0 - stmw r28,-16(r1) - mr r29,r3 - mr r28,r4 - stw r0,8(r1) - stwu r1,-80(r1) - stw r5,112(r1) - stw r6,116(r1) - stw r7,120(r1) - stw r8,124(r1) - stw r9,128(r1) - stw r10,132(r1) - bl L_objc_msg_lookup_super$stub - lwz r5,112(r1) - lwz r6,116(r1) - lwz r7,120(r1) - lwz r8,124(r1) - lwz r9,128(r1) - lwz r10,132(r1) - mr r12,r3 - mr r4,r28 - lwz r3,0(r29) - mtctr r12 - bctrl - addi r1,r1,80 - lwz r0,8(r1) - lmw r28,-16(r1) - mtlr r0 - blr - .align 2 - .globl _objc_msgSend_stret -_objc_msgSend_stret: - mflr r0 - stmw r27,-20(r1) - mr r28,r4 - mr r29,r3 - mr r4,r5 - mr r3,r28 - mr r27,r5 - stw r0,8(r1) - stwu r1,-112(r1) - stw r9,160(r1) - stw r6,148(r1) - stw r7,152(r1) - stw r8,156(r1) - stw r10,164(r1) - bl L_objc_msg_lookup$stub - lwz r9,160(r1) - lwz r6,148(r1) - lwz r7,152(r1) - lwz r8,156(r1) - lwz r10,164(r1) - mr r4,r28 - mr r12,r3 - mr r5,r27 - addi r3,r1,64 - mtctr r12 - bctrl - lwz r0,64(r1) - lwz r2,68(r1) - mr r3,r29 - lwz r9,72(r1) - lwz r11,76(r1) - addi r1,r1,112 - stw r0,0(r29) - stw r2,4(r29) - stw r9,8(r29) - stw r11,12(r29) - lwz r0,8(r1) - nop - lmw r27,-20(r1) - mtlr r0 - blr - .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 - .align 5 -L_objc_msg_lookup_super$stub: - .indirect_symbol _objc_msg_lookup_super - mflr r0 - bcl 20,31,"L00000000001$spb" -"L00000000001$spb": - mflr r11 - addis r11,r11,ha16(L_objc_msg_lookup_super$lazy_ptr-"L00000000001$spb") - mtlr r0 - lwzu r12,lo16(L_objc_msg_lookup_super$lazy_ptr-"L00000000001$spb")(r11) - mtctr r12 - bctr - .lazy_symbol_pointer -L_objc_msg_lookup_super$lazy_ptr: - .indirect_symbol _objc_msg_lookup_super - .long dyld_stub_binding_helper - .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 - .align 5 -L_objc_msg_lookup$stub: - .indirect_symbol _objc_msg_lookup - mflr r0 - bcl 20,31,"L00000000002$spb" -"L00000000002$spb": - mflr r11 - addis r11,r11,ha16(L_objc_msg_lookup$lazy_ptr-"L00000000002$spb") - mtlr r0 - lwzu r12,lo16(L_objc_msg_lookup$lazy_ptr-"L00000000002$spb")(r11) - mtctr r12 - bctr - .lazy_symbol_pointer -L_objc_msg_lookup$lazy_ptr: - .indirect_symbol _objc_msg_lookup - .long dyld_stub_binding_helper - .subsections_via_symbols diff --git a/objc/platform_linux/objc-msgsend-x86_64.s b/objc/platform_linux/objc-msgsend-x86_64.s deleted file mode 100755 index 968230d1..00000000 --- a/objc/platform_linux/objc-msgsend-x86_64.s +++ /dev/null @@ -1,129 +0,0 @@ -.globl _objc_msgSend_fpret - .type _objc_msgSend_fpret, @function -_objc_msgSend_fpret: - -.globl _objc_msgSend - .type _objc_msgSend, @function -_objc_msgSend: - -/* - # this just calls objc_msg_lookup, then jumps to the returned method - pushl %ebp - movl %esp, %ebp - subl $16, %esp - pushl 12(%ebp) - pushl 8(%ebp) - call objc_msg_lookup - mov %ebp, %esp - pop %ebp - jmp *%eax -*/ - - pushq %rbp - movq %rsp, %rbp - pushq %rsi - pushq %rbx - movq 16(%rbp), %rsi # self - movq 24(%rbp), %rbx # _cmd - testq %rsi, %rsi - jne L8 - xorq %rax, %rax # self == nil, bail - leaq -16(%rbp), %rsp - popq %rbx - popq %rsi - leave - ret -L8: - movq (%rsi), %rax - movq %rbx, %rdx - andq $504, %rdx # OBJCMethodCacheMask - addq 64(%rax), %rdx -L11: - movq 8(%rdx), %rax - cmpq %rbx, (%rax) - jne L9 - movq 16(%rax), %rax - jmp L10 # found selector in cache -L9: - addq (%rdx), %rdx - jne L11 - pushq %rdx # not in cache; traditional lookup - pushq %rdx - pushq %rbx - pushq %rsi - call OBJCInitializeLookupAndCacheUniqueIdForObject@PLT - addq $32, %rsp -L10: - movq %rbx, 24(%rbp) - movq %rsi, 16(%rbp) - leaq -16(%rbp), %rsp - popq %rbx - popq %rsi - leave - jmp *%rax - - -.globl _objc_msgSendSuper - .type _objc_msgSendSuper, @function -_objc_msgSendSuper: - pushq %rbp - movq %rsp, %rbp - pushq %rdi - pushq %rsi - subq $32, %rsp - movq 16(%rbp), %rdi - movq 24(%rbp), %rsi - movq %rsi, 8(%rsp) - movq %rdi, (%rsp) - - call objc_msg_lookup_super@PLT - - movq (%rdi), %rsi - movq %rsi, 16(%rbp) - - addq $32, %rsp - popq %rsi - popq %rdi - movq %rbp, %rsp - popq %rbp - jmp *%rax - - -.globl _objc_msgSend_stret - .type _objc_msgSend_stret, @function -_objc_msgSend_stret: - pushq %rbp - movq %rsp, %rbp - subq $64, %rsp - pushq 32(%rbp) - pushq 24(%rbp) - call objc_msg_lookup@PLT - movq %rbp, %rsp - popq %rbp - jmp *%rax - -.globl _objc_msgSendSuper_stret - .type _objc_msgSendSuper_stret, @function -_objc_msgSendSuper_stret: - pushq %rbp - movq %rsp, %rbp - pushq %rdi - pushq %rsi - subq $64, %rsp - movq 24(%rbp), %rdi - movq 32(%rbp), %rsi - movq %rsi, 8(%rsp) - movq %rdi, (%rsp) - - call objc_msg_lookup_super@PLT - - movq (%rdi), %rsi - movq %rsi, 16(%rbp) - - addq $64, %rsp - popq %rsi - popq %rdi - movq %rbp, %rsp - popq %rbp - jmp *%rax - diff --git a/objc/platform_linux/objc-msgsend.s b/objc/platform_linux/objc-msgsend.s deleted file mode 100755 index 85c4402f..00000000 --- a/objc/platform_linux/objc-msgsend.s +++ /dev/null @@ -1,129 +0,0 @@ -.globl _objc_msgSend_fpret - .type _objc_msgSend_fpret, @function -_objc_msgSend_fpret: - -.globl _objc_msgSend - .type _objc_msgSend, @function -_objc_msgSend: - -/* - # this just calls objc_msg_lookup, then jumps to the returned method - pushl %ebp - movl %esp, %ebp - subl $16, %esp - pushl 12(%ebp) - pushl 8(%ebp) - call objc_msg_lookup - mov %ebp, %esp - pop %ebp - jmp *%eax -*/ - - pushl %ebp - movl %esp, %ebp - pushl %esi - pushl %ebx - movl 8(%ebp), %esi # self - movl 12(%ebp), %ebx # _cmd - testl %esi, %esi - jne L8 - xorl %eax, %eax # self == nil, bail - leal -8(%ebp), %esp - popl %ebx - popl %esi - leave - ret -L8: - movl (%esi), %eax - movl %ebx, %edx - andl $504, %edx # OBJCMethodCacheMask - addl 32(%eax), %edx -L11: - movl 4(%edx), %eax - cmpl %ebx, (%eax) - jne L9 - movl 8(%eax), %eax - jmp L10 # found selector in cache -L9: - addl (%edx), %edx - jne L11 - pushl %edx # not in cache; traditional lookup - pushl %edx - pushl %ebx - pushl %esi - call OBJCInitializeLookupAndCacheUniqueIdForObject - addl $16, %esp -L10: - movl %ebx, 12(%ebp) - movl %esi, 8(%ebp) - leal -8(%ebp), %esp - popl %ebx - popl %esi - leave - jmp *%eax - - -.globl _objc_msgSendSuper - .type _objc_msgSendSuper, @function -_objc_msgSendSuper: - pushl %ebp - movl %esp, %ebp - pushl %edi - pushl %esi - subl $16, %esp - movl 8(%ebp), %edi - movl 12(%ebp), %esi - movl %esi, 4(%esp) - movl %edi, (%esp) - - call objc_msg_lookup_super - - movl (%edi), %esi - movl %esi, 8(%ebp) - - addl $16, %esp - popl %esi - popl %edi - mov %ebp, %esp - pop %ebp - jmp *%eax - - -.globl _objc_msgSend_stret - .type _objc_msgSend_stret, @function -_objc_msgSend_stret: - pushl %ebp - movl %esp, %ebp - subl $32, %esp - pushl 16(%ebp) - pushl 12(%ebp) - call objc_msg_lookup - mov %ebp, %esp - pop %ebp - jmp *%eax - -.globl _objc_msgSendSuper_stret - .type _objc_msgSendSuper_stret, @function -_objc_msgSendSuper_stret: - pushl %ebp - movl %esp, %ebp - pushl %edi - pushl %esi - subl $32, %esp - movl 12(%ebp), %edi - movl 16(%ebp), %esi - movl %esi, 4(%esp) - movl %edi, (%esp) - - call objc_msg_lookup_super - - movl (%edi), %esi - movl %esi, 8(%ebp) - - addl $32, %esp - popl %esi - popl %edi - mov %ebp, %esp - pop %ebp - jmp *%eax - diff --git a/objc/platform_windows/objc-msgsend.s b/objc/platform_windows/objc-msgsend.s deleted file mode 100755 index 043a7179..00000000 --- a/objc/platform_windows/objc-msgsend.s +++ /dev/null @@ -1,139 +0,0 @@ -#ifdef WINDOWS - -.globl _objc_msgSend - .def _objc_msgSend; .scl 2; .type 32; .endef -_objc_msgSend: - pushl %ebp - movl %esp, %ebp - subl $16, %esp - pushl 12(%ebp) - pushl 8(%ebp) - call _objc_msg_lookup - mov %ebp, %esp - pop %ebp - jmp *%eax - - - pushl %ebp - movl %esp, %ebp - pushl %esi - pushl %ebx - movl 8(%ebp), %esi # self - movl 12(%ebp), %ebx # _cmd - testl %esi, %esi - jne L8 - xorl %eax, %eax # self == nil, bail - leal -8(%ebp), %esp - popl %ebx - popl %esi - leave - ret -L8: - movl (%esi), %eax - movl %ebx, %edx - andl $504, %edx # OBJCMethodCacheMask - addl 32(%eax), %edx -L11: - movl 4(%edx), %eax - cmpl %ebx, (%eax) - jne L9 - movl 8(%eax), %eax - jmp L10 # found selector in cache -L9: - addl (%edx), %edx - jne L11 - pushl %edx # not in cache; traditional lookup - pushl %edx - pushl %ebx - pushl %esi - call _OBJCInitializeLookupAndCacheUniqueIdForObject - addl $16, %esp -L10: - movl %ebx, 12(%ebp) - movl %esi, 8(%ebp) - leal -8(%ebp), %esp - popl %ebx - popl %esi - leave - jmp *%eax - - -.globl _objc_msgSendSuper - .def _objc_msgSendSuper; .scl 2; .type 32; .endef -_objc_msgSendSuper: - pushl %ebp - movl %esp, %ebp - pushl %edi - pushl %esi - subl $16, %esp - movl 8(%ebp), %edi - movl 12(%ebp), %esi - movl %esi, 4(%esp) - movl %edi, (%esp) - - call _objc_msg_lookup_super - - movl (%edi), %esi - movl %esi, 8(%ebp) - - addl $16, %esp - popl %esi - popl %edi - mov %ebp, %esp - pop %ebp - jmp *%eax - - -.globl _objc_msgSend_stret - .def _objc_msgSend_stret; .scl 2; .type 32; .endef -_objc_msgSend_stret: - pushl %ebp - movl %esp, %ebp - subl $32, %esp - pushl 16(%ebp) - pushl 12(%ebp) - call _objc_msg_lookup - mov %ebp, %esp - pop %ebp - jmp *%eax - -.globl _objc_msgSendSuper_stret - .def _objc_msgSendSuper_stret; .scl 2; .type 32; .endef -_objc_msgSendSuper_stret: - pushl %ebp - movl %esp, %ebp - pushl %edi - pushl %esi - subl $32, %esp - movl 12(%ebp), %edi - movl 16(%ebp), %esi - movl %esi, 4(%esp) - movl %edi, (%esp) - - call _objc_msg_lookup_super - - movl (%edi), %esi - movl %esi, 8(%ebp) - - addl $32, %esp - popl %esi - popl %edi - mov %ebp, %esp - pop %ebp - jmp *%eax - - -.globl _objc_msgSend_fpret - .def _objc_msgSend_fpret; .scl 2; .type 32; .endef -_objc_msgSend_fpret: - pushl %ebp - movl %esp, %ebp - subl $16, %esp - pushl 12(%ebp) - pushl 8(%ebp) - call _objc_msg_lookup - mov %ebp, %esp - pop %ebp - jmp *%eax - -#endif diff --git a/objc/runtime.h b/objc/runtime.h deleted file mode 100644 index 4f441ee2..00000000 --- a/objc/runtime.h +++ /dev/null @@ -1,127 +0,0 @@ -#import -#import -#import - -typedef struct objc_method *Method; -typedef struct objc_ivar *Ivar; -typedef struct objc_category *Category; -typedef struct objc_property *objc_property_t; - -OBJC_EXPORT id objc_lookUpClass(const char *name); -OBJC_EXPORT id objc_getClass(const char *name); -OBJC_EXPORT int objc_getClassList(Class *list, int listCapacity); -OBJC_EXPORT Class objc_getFutureClass(const char *name); -OBJC_EXPORT id objc_getMetaClass(const char *name); -OBJC_EXPORT id objc_getRequiredClass(const char *name); -OBJC_EXPORT Protocol *objc_getProtocol(const char *name); -OBJC_EXPORT Protocol **objc_copyProtocolList(unsigned int *countp); -OBJC_EXPORT void objc_addClass(Class cls); -OBJC_EXPORT void objc_registerClassPair(Class cls); -OBJC_EXPORT void objc_setFutureClass(Class cls, const char *name); -OBJC_EXPORT Class objc_allocateClassPair(Class parent, const char *name, size_t extraBytes); -OBJC_EXPORT void objc_setForwardHandler(void *handler, void *handler_stret); -OBJC_EXPORT const char **objc_copyImageNames(unsigned *count); // free the ptr but not the strings - -OBJC_EXPORT const char *class_getName(Class cls); -OBJC_EXPORT BOOL class_isMetaClass(Class cls); -OBJC_EXPORT Class class_getSuperclass(Class cls); -OBJC_EXPORT int class_getVersion(Class cls); -OBJC_EXPORT Method class_getClassMethod(Class cls, SEL selector); -OBJC_EXPORT Ivar class_getClassVariable(Class cls, const char *name); -OBJC_EXPORT Method class_getInstanceMethod(Class cls, SEL selector); -OBJC_EXPORT size_t class_getInstanceSize(Class cls); -OBJC_EXPORT Ivar class_getInstanceVariable(Class cls, const char *name); -OBJC_EXPORT const char *class_getIvarLayout(Class cls); -OBJC_EXPORT IMP class_getMethodImplementation(Class cls, SEL selector); -OBJC_EXPORT IMP class_getMethodImplementation_stret(Class cls, SEL selector); -OBJC_EXPORT objc_property_t class_getProperty(Class cls, const char *name); -OBJC_EXPORT const char *class_getWeakIvarLayout(Class cls); -OBJC_EXPORT Ivar *class_copyIvarList(Class cls, unsigned int *countp); -OBJC_EXPORT Method *class_copyMethodList(Class cls, unsigned int *countp); -OBJC_EXPORT objc_property_t *class_copyPropertyList(Class cls, unsigned int *countp); -OBJC_EXPORT Protocol **class_copyProtocolList(Class cls, unsigned int *countp); - -OBJC_EXPORT Class class_setSuperclass(Class cls, Class parent); -OBJC_EXPORT void class_setVersion(Class cls, int version); -OBJC_EXPORT void class_setIvarLayout(Class cls, const char *layout); -OBJC_EXPORT void class_setWeakIvarLayout(Class cls, const char *layout); - -OBJC_EXPORT BOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *type); -OBJC_EXPORT BOOL class_addMethod(Class cls, SEL selector, IMP imp, const char *types); -OBJC_EXPORT BOOL class_addProtocol(Class cls, Protocol *protocol); -OBJC_EXPORT BOOL class_conformsToProtocol(Class cls, Protocol *protocol); -OBJC_EXPORT id class_createInstance(Class cls, size_t extraBytes); -OBJC_EXPORT IMP class_replaceMethod(Class cls, SEL selector, IMP imp, const char *types); -OBJC_EXPORT BOOL class_respondsToSelector(Class cls, SEL selector); -OBJC_EXPORT const char *class_getImageName(Class cls); - -OBJC_EXPORT const char *protocol_getName(Protocol *protocol); -OBJC_EXPORT objc_property_t protocol_getProperty(Protocol *protocol, const char *name, BOOL isRequired, BOOL isInstance); -OBJC_EXPORT objc_property_t *protocol_copyPropertyList(Protocol *protocol, unsigned int *countp); -OBJC_EXPORT Protocol **protocol_copyProtocolList(Protocol *protocol, unsigned int *countp); -OBJC_EXPORT struct objc_method_description *protocol_copyMethodDescriptionList(Protocol *protocol, BOOL isRequired, BOOL isInstance, unsigned int *countp); -OBJC_EXPORT struct objc_method_description protocol_getMethodDescription(Protocol *protocol, SEL selector, BOOL isRequired, BOOL isInstance); -OBJC_EXPORT BOOL protocol_conformsToProtocol(Protocol *protocol, Protocol *other); -OBJC_EXPORT BOOL protocol_isEqual(Protocol *protocol, Protocol *other); - -OBJC_EXPORT const char *sel_getName(SEL selector); -OBJC_EXPORT SEL sel_getUid(const char *name); -OBJC_EXPORT BOOL sel_isEqual(SEL selector, SEL other); -OBJC_EXPORT SEL sel_registerName(const char *name); - -OBJC_EXPORT const char *property_getAttributes(objc_property_t property); -OBJC_EXPORT const char *property_getName(objc_property_t property); - -OBJC_EXPORT const char *ivar_getName(Ivar ivar); -OBJC_EXPORT size_t ivar_getOffset(Ivar ivar); -OBJC_EXPORT const char *ivar_getTypeEncoding(Ivar ivar); - -OBJC_EXPORT IMP method_getImplementation(Method method); -OBJC_EXPORT SEL method_getName(Method method); -OBJC_EXPORT unsigned method_getNumberOfArguments(Method method); -OBJC_EXPORT void method_getReturnType(Method method, char *type, size_t typeCapacity); -OBJC_EXPORT void method_getArgumentType(Method method, unsigned int index, char *type, size_t typeCapacity); -OBJC_EXPORT char *method_copyReturnType(Method method); -OBJC_EXPORT char *method_copyArgumentType(Method method, unsigned int index); -OBJC_EXPORT const char *method_getTypeEncoding(Method method); -OBJC_EXPORT IMP method_setImplementation(Method method, IMP imp); -OBJC_EXPORT void method_exchangeImplementations(Method method, Method other); - -OBJC_EXPORT Class object_getClass(id object); -OBJC_EXPORT const char *object_getClassName(id object); -OBJC_EXPORT Ivar object_getInstanceVariable(id object, const char *name, void **ptrToValuep); -OBJC_EXPORT id object_getIvar(id object, Ivar ivar); -OBJC_EXPORT void *object_getIndexedIvars(id object); -OBJC_EXPORT Class object_setClass(id object, Class cls); -OBJC_EXPORT Ivar object_setInstanceVariable(id object, const char *name, void *ptrToValue); -OBJC_EXPORT void object_setIvar(id object, Ivar ivar, id value); - -OBJC_EXPORT id object_copy(id object, size_t size); -OBJC_EXPORT id object_dispose(id object); - -typedef enum { - OBJC_ASSOCIATION_ASSIGN = 0, - OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, - OBJC_ASSOCIATION_COPY_NONATOMIC = 3, - OBJC_ASSOCIATION_RETAIN = 01401, - OBJC_ASSOCIATION_COPY = 01403 -} objc_AssociationPolicy; - -OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy); -OBJC_EXPORT id objc_getAssociatedObject(id object, const void *key); -OBJC_EXPORT void objc_removeAssociatedObjects(id object); - -// FIXME. Non-compliant API. TO BE CLEANED UP. - -OBJC_EXPORT const char *objc_mainImageName(); -OBJC_EXPORT void OBJCResetModuleQueue(void); -OBJC_EXPORT void OBJCLinkQueuedModulesToObjectFileWithPath(const char *path); - -OBJC_EXPORT void objc_enableMessageLoggingWithCount(int count); -OBJC_EXPORT void OBJCEnableMsgTracing(); -OBJC_EXPORT void OBJCDisableMsgTracing(); - -OBJC_EXPORT void OBJCInitializeProcess(); - -OBJC_EXPORT BOOL object_cxxConstruct(id self, Class c); -OBJC_EXPORT BOOL object_cxxDestruct(id self, Class c); diff --git a/pthread/pthread.h b/pthread/pthread.h deleted file mode 100644 index 1cc59a2d..00000000 --- a/pthread/pthread.h +++ /dev/null @@ -1,120 +0,0 @@ -#ifndef WINDOWS -#include_next < pthread.h > -#else -#ifndef PTHREAD_H -#define PTHREAD_H - -#ifdef __clang__ -#define PTHREAD_DLLEXPORT -#define PTHREAD_DLLIMPORT -#else -#define PTHREAD_DLLEXPORT __declspec(dllexport) -#define PTHREAD_DLLIMPORT __declspec(dllimport) -#endif - -#ifdef __cplusplus - -#if defined(__WIN32__) -#if defined(PTHREAD_INSIDE_BUILD) -#define PTHREAD_EXPORT extern "C" PTHREAD_DLLEXPORT -#else -#define PTHREAD_EXPORT extern "C" PTHREAD_DLLIMPORT -#endif -#else -#define PTHREAD_EXPORT extern "C" -#endif - -#else - -#if defined(__WIN32__) -#if defined(PTHREAD_INSIDE_BUILD) -#define PTHREAD_EXPORT PTHREAD_DLLEXPORT extern -#else -#define PTHREAD_EXPORT PTHREAD_DLLIMPORT extern -#endif -#else -#define PTHREAD_EXPORT extern -#endif - -#endif - -#import -#import -#import - -#ifndef ETIMEDOUT -#define ETIMEDOUT 60 -#endif - -struct timespec { - time_t tv_sec; - long tv_nsec; -}; - -typedef void *pthread_t; -typedef uint32_t pthread_key_t; -typedef void *pthread_mutex_t; - -typedef struct { - pthread_mutex_t mutex; - int state; -} pthread_once_t; - -typedef void *pthread_cond_t; -typedef void *pthread_condattr_t; -typedef void *pthread_attr_t; -typedef void *pthread_mutexattr_t; - -#define PTHREAD_ONCE_INIT \ - { \ - 0, 0 \ - } -#define PTHREAD_MUTEX_INITIALIZER NULL - -enum { - PTHREAD_CREATE_JOINABLE = 0, - PTHREAD_CREATE_DETACHED = 1 -}; - -PTHREAD_EXPORT int pthread_key_create(pthread_key_t *key, void (*destructor)(void *)); -PTHREAD_EXPORT int pthread_key_delete(pthread_key_t key); - -PTHREAD_EXPORT int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); - -PTHREAD_EXPORT pthread_t pthread_self(void); -PTHREAD_EXPORT int pthread_join(pthread_t thread, void **value_ptr); -PTHREAD_EXPORT int pthread_detach(pthread_t thread); -PTHREAD_EXPORT void *pthread_getw32threadhandle_np(pthread_t thread); -PTHREAD_EXPORT void pthread_exit(void *value_ptr); - -PTHREAD_EXPORT int pthread_attr_init(pthread_attr_t *attr); -PTHREAD_EXPORT int pthread_attr_destroy(pthread_attr_t *attr); -PTHREAD_EXPORT int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate); -PTHREAD_EXPORT int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate); - -PTHREAD_EXPORT int pthread_getschedparam(pthread_t thread, int *policy, struct sched_param *scheduling); -PTHREAD_EXPORT int pthread_setschedparam(pthread_t thread, int policy, const struct sched_param *scheduling); - -PTHREAD_EXPORT void *pthread_getspecific(pthread_key_t key); -PTHREAD_EXPORT int pthread_setspecific(pthread_key_t key, const void *value); - -PTHREAD_EXPORT int pthread_equal(pthread_t t1, pthread_t t2); - -PTHREAD_EXPORT int pthread_once(pthread_once_t *once, void (*function)(void)); - -PTHREAD_EXPORT int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr); -PTHREAD_EXPORT int pthread_mutex_destroy(pthread_mutex_t *mutex); - -PTHREAD_EXPORT int pthread_mutex_lock(volatile pthread_mutex_t *mutex); -PTHREAD_EXPORT int pthread_mutex_trylock(volatile pthread_mutex_t *mutex); -PTHREAD_EXPORT int pthread_mutex_unlock(volatile pthread_mutex_t *mutex); - -PTHREAD_EXPORT int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr); -PTHREAD_EXPORT int pthread_cond_destroy(pthread_cond_t *cond); -PTHREAD_EXPORT int pthread_cond_signal(pthread_cond_t *cond); -PTHREAD_EXPORT int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); -PTHREAD_EXPORT int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime); -PTHREAD_EXPORT int pthread_cond_broadcast(pthread_cond_t *cond); - -#endif -#endif diff --git a/pthread/pthread.m b/pthread/pthread.m deleted file mode 100644 index 8542c556..00000000 --- a/pthread/pthread.m +++ /dev/null @@ -1,423 +0,0 @@ -#ifdef WINDOWS -#import "pthread.h" -#import -#import -#import - -int sched_yield(void) { - SwitchToThread(); - return 0; -} - -int sched_get_priority_min(int policy) { - return 0; -} - -int sched_get_priority_max(int policy) { - return 100; -} - -int pthread_getschedparam(pthread_t thread, int *policy, - struct sched_param *scheduling) -{ - return 0; -} - -int pthread_setschedparam(pthread_t thread, int policy, - const struct sched_param *scheduling) -{ - return 0; -} - -pthread_t pthread_self(void) { - return NULL; -} - -static void pthread_mutex_init_win32(pthread_mutex_t volatile *mutex) { - LPCRITICAL_SECTION *pcs = (LPCRITICAL_SECTION *) mutex; - *pcs = (LPCRITICAL_SECTION) malloc(sizeof(CRITICAL_SECTION)); - InitializeCriticalSection(*pcs); -} - -int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr) -{ - if (!mutex) - return EINVAL; - pthread_mutex_init_win32(mutex); - return 0; -} - -int pthread_mutex_destroy(pthread_mutex_t *mutex) { - LPCRITICAL_SECTION *pcs = (LPCRITICAL_SECTION *) mutex; - if (pcs && *pcs) { - DeleteCriticalSection(*pcs); - free(*pcs); - } - return 0; -} - -int pthread_mutex_lock(pthread_mutex_t volatile *mutex) { - if (!mutex) - return EINVAL; - if (*mutex == NULL) - pthread_mutex_init_win32(mutex); - - LPCRITICAL_SECTION *pcs = (LPCRITICAL_SECTION *) mutex; - EnterCriticalSection(*pcs); - return 0; -} - -int pthread_mutex_trylock(pthread_mutex_t volatile *mutex) { - if (!mutex) - return EINVAL; - if (*mutex == NULL) - pthread_mutex_init_win32(mutex); - - LPCRITICAL_SECTION *pcs = (LPCRITICAL_SECTION *) mutex; - if (TryEnterCriticalSection(*pcs) == 0) - return EBUSY; - return 0; -} - -int pthread_mutex_unlock(pthread_mutex_t volatile *mutex) { - if (!mutex) - return EINVAL; - LPCRITICAL_SECTION *pcs = (LPCRITICAL_SECTION *) mutex; - LeaveCriticalSection(*pcs); - return 0; -} - -int pthread_once(pthread_once_t *once, void (*function)(void)) { - pthread_mutex_lock(&(once->mutex)); - if (once->state == 0) { - function(); - once->state = 1; - } - pthread_mutex_unlock(&(once->mutex)); - return 0; -} - -void *pthread_getspecific(pthread_key_t key) { - if (key == TLS_OUT_OF_INDEXES) - return NULL; - - void *result = TlsGetValue(key); - if (result == NULL) { - if (GetLastError() == 0) - ; // no error - else - ; // error - } - return result; -} - -int pthread_setspecific(pthread_key_t key, const void *value) { - - if (TlsSetValue(key, (void *) value) == 0) { - return EINVAL; - } - - return 0; -} - -int pthread_key_create(pthread_key_t *key, void (*destructor)(void *)) { - // FIXME: implement destructor - if ((*key = TlsAlloc()) == TLS_OUT_OF_INDEXES) - return EAGAIN; - - return 0; -} - -enum { condEvent_signal = 0, condEvent_broadcast = 1, condEventCount = 2 }; - -typedef struct pthread_cond_impl_win32 { - volatile LONG waitersCount; - HANDLE events[condEventCount]; -} pthread_cond_impl; - -int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr) { - if (!cond) - return EINVAL; - pthread_cond_impl *impl = - (pthread_cond_impl *) calloc(1, sizeof(pthread_cond_impl)); - - impl->events[condEvent_signal] = CreateEvent(0, FALSE, FALSE, 0); - impl->events[condEvent_broadcast] = CreateEvent(0, TRUE, FALSE, 0); - - *cond = impl; - return 0; -} - -int pthread_cond_destroy(pthread_cond_t *cond) { - if (!cond) - return EINVAL; - pthread_cond_impl *impl = *((pthread_cond_impl **) cond); - - CloseHandle(impl->events[condEvent_signal]); - CloseHandle(impl->events[condEvent_broadcast]); - - free(impl); - *cond = NULL; - return 0; -} - -int pthread_cond_signal(pthread_cond_t *cond) { - if (!cond) - return EINVAL; - pthread_cond_impl *impl = *((pthread_cond_impl **) cond); - if (!impl) - return EINVAL; - - _Bool haveWaiters = impl->waitersCount > 0; - - if (haveWaiters) - SetEvent(impl->events[condEvent_signal]); - - return 0; -} - -int pthread_cond_broadcast(pthread_cond_t *cond) { - if (!cond) - return EINVAL; - pthread_cond_impl *impl = *((pthread_cond_impl **) cond); - if (!impl) - return EINVAL; - - _Bool haveWaiters = impl->waitersCount > 0; - - if (haveWaiters) - SetEvent(impl->events[condEvent_broadcast]); - - return 0; -} - -// struct timespec is expressed in Unix epoch (seconds from 1970-01-01); -// win32 FILETIME is expressed in units of 100 nanoseconds from 1601-01-01. -// -#define UNIX_EPOCH_START_AS_FILETIME 116444736000000000LL - -static inline void timespec_to_filetime(struct timespec *ts, FILETIME *ft) { - LONGLONG ftime = ts->tv_sec * 10000000 + (ts->tv_nsec + 50) / 100 + - UNIX_EPOCH_START_AS_FILETIME; - *((LONGLONG *) ft) = ftime; -} - -static inline void filetime_to_timespec(FILETIME *ft, struct timespec *ts) { - LONGLONG ftime = *((LONGLONG *) ft); - ftime -= UNIX_EPOCH_START_AS_FILETIME; - - ts->tv_sec = (int) (ftime / 10000000); - ts->tv_nsec = (int) ((ftime - (LONGLONG) ts->tv_sec * 10000000LL) * 100); -} - -static inline DWORD -abstime_to_win32_millisec_timeout(const struct timespec *abstime) -{ - FILETIME ft; - GetSystemTimeAsFileTime(&ft); - - struct timespec curtime; - filetime_to_timespec(&ft, &curtime); - - double t0 = - (double) curtime.tv_sec + ((double) curtime.tv_nsec / 1000000000.0); - double t1 = (double) abstime->tv_sec + - ((double) abstime->tv_nsec / 1000000000.0); - - if (t1 <= t0) - return 0; - - return (DWORD)((t1 - t0) * 1000.0); -} - -static int impl_win32_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex, - const struct timespec *abstime) -{ - if (!cond) - return EINVAL; - pthread_cond_impl *impl = *((pthread_cond_impl **) cond); - if (!impl) - return EINVAL; - - DWORD timeout = INFINITE; - if (abstime) { - timeout = abstime_to_win32_millisec_timeout(abstime); - } - - InterlockedIncrement(&impl->waitersCount); - - pthread_mutex_unlock(mutex); - - int result = WaitForMultipleObjects(condEventCount, impl->events, FALSE, - timeout); - - LONG newWaitersCount = InterlockedDecrement(&impl->waitersCount); - _Bool lastWaiter = (result != WAIT_TIMEOUT) && - (result == WAIT_OBJECT_0 + condEvent_broadcast) && - (0 == newWaitersCount); - - if (lastWaiter) - ResetEvent(impl->events[condEvent_broadcast]); - - pthread_mutex_lock(mutex); - - return (result == WAIT_TIMEOUT) ? ETIMEDOUT : 0; -} - -int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) { - return impl_win32_cond_wait(cond, mutex, NULL); -} - -int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, - const struct timespec *abstime) -{ - if (!abstime) - return EINVAL; - - return impl_win32_cond_wait(cond, mutex, abstime); -} - -typedef struct pthread_attr_impl_win32 { - int detachstate; -} pthread_attr_impl; - -int pthread_attr_init(pthread_attr_t *attr) { - if (!attr) - return EINVAL; - pthread_attr_impl *impl = - (pthread_attr_impl *) calloc(1, sizeof(pthread_attr_impl)); - *attr = impl; - return 0; -} - -int pthread_attr_destroy(pthread_attr_t *attr) { - pthread_attr_impl *impl = *((pthread_attr_impl **) attr); - free(impl); - *attr = NULL; - return 0; -} - -int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate) { - if (!attr || !detachstate) - return EINVAL; - pthread_attr_impl *impl = *((pthread_attr_impl **) attr); - if (!impl) - return EINVAL; - - *detachstate = impl->detachstate; - return 0; -} - -int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate) { - if (!attr || !detachstate) - return EINVAL; - pthread_attr_impl *impl = *((pthread_attr_impl **) attr); - if (!impl) - return EINVAL; - - impl->detachstate = detachstate; - return 0; -} - -typedef struct pthread_impl_win32 { - uint32_t threadId; - HANDLE win32Handle; -} pthread_impl; - -typedef struct pthread_start_routine_args_win32 { - void *(*pthreadStyleFunc)(void *); - void *arg; -} pthread_start_routine_args; - -#ifdef WINDOWS -// Be sure the stack is aligned in case the thread wants to do exotic things -// like SSE2 -unsigned - __attribute__((force_align_arg_pointer)) __stdcall startroutine_thunk_for_win32_beginthreadex( - void *arg) -#else -unsigned __stdcall startroutine_thunk_for_win32_beginthreadex(void *arg) -#endif -{ - pthread_start_routine_args *threadArgs = (pthread_start_routine_args *) arg; - - threadArgs->pthreadStyleFunc(threadArgs->arg); - - free(threadArgs); - return 0; -} - -int pthread_create(pthread_t *thread, const pthread_attr_t *attr, - void *(*start_routine)(void *), void *arg) -{ - if (!thread) - return EINVAL; - - // Win32 requires that a thread's start function uses the stdcall calling - // convention, so we need a thunk to wrap the given start_routine. this - // object holds the function and its arguments. the thread thunk function - // will release this object when the real start_routine finishes. - pthread_start_routine_args *threadArgs = - (pthread_start_routine_args *) malloc( - sizeof(pthread_start_routine_args)); - threadArgs->pthreadStyleFunc = start_routine; - threadArgs->arg = arg; - - uint32_t threadId = 0; - HANDLE win32Handle = (HANDLE) _beginthreadex( - NULL, 0, startroutine_thunk_for_win32_beginthreadex, threadArgs, 0, - &threadId); - if (!win32Handle) { - free(threadArgs); - return EAGAIN; - } - - pthread_impl *impl = (pthread_impl *) calloc(1, sizeof(pthread_impl)); - impl->threadId = threadId; - impl->win32Handle = win32Handle; - - *thread = impl; - return 0; -} - -void pthread_exit(void *value_ptr) { -} - -void *pthread_getw32threadhandle_np(pthread_t thread) { - if (!thread) - return NULL; - pthread_impl *impl = (pthread_impl *) thread; - return impl->win32Handle; -} - -int pthread_join(pthread_t thread, void **value_ptr) { - if (!thread) - return EINVAL; - pthread_impl *impl = (pthread_impl *) thread; - - if (!impl->win32Handle) - return 0; - - WaitForSingleObject(impl->win32Handle, INFINITE); - - CloseHandle(impl->win32Handle); - impl->win32Handle = NULL; - - return 0; -} - -int pthread_detach(pthread_t thread) { - if (!thread) - return EINVAL; - pthread_impl *impl = (pthread_impl *) thread; - - if (!impl->win32Handle) - return 0; - - CloseHandle(impl->win32Handle); - impl->win32Handle = NULL; - - return 0; -} - -#endif diff --git a/pthread/pthread.xcodeproj/project.pbxproj b/pthread/pthread.xcodeproj/project.pbxproj deleted file mode 100644 index 1c2b3bc8..00000000 --- a/pthread/pthread.xcodeproj/project.pbxproj +++ /dev/null @@ -1,176 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - FE678391143386160009A0A0 /* pthread.h in Headers */ = {isa = PBXBuildFile; fileRef = FE67838E143386160009A0A0 /* pthread.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FE678393143386160009A0A0 /* sched.h in Headers */ = {isa = PBXBuildFile; fileRef = FE678390143386160009A0A0 /* sched.h */; settings = {ATTRIBUTES = (Public, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - FE67838B143385CD0009A0A0 /* windows-i386-framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386-framework.xcconfig"; sourceTree = ""; }; - FE67838C143385CD0009A0A0 /* windows-i386.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "windows-i386.xcconfig"; sourceTree = ""; }; - FE67838D143385CD0009A0A0 /* windows.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = windows.xcconfig; sourceTree = ""; }; - FE67838E143386160009A0A0 /* pthread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pthread.h; sourceTree = ""; }; - FE67838F143386160009A0A0 /* pthread.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = pthread.m; sourceTree = ""; }; - FE678390143386160009A0A0 /* sched.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sched.h; sourceTree = ""; }; - FE6786871433A2530009A0A0 /* pthread.1.0.dll */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = pthread.1.0.dll; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - FE6786871433A2530009A0A0 /* pthread.1.0.dll */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* pthread */ = { - isa = PBXGroup; - children = ( - FE67838E143386160009A0A0 /* pthread.h */, - FE67838F143386160009A0A0 /* pthread.m */, - FE678390143386160009A0A0 /* sched.h */, - FE67837D143385CD0009A0A0 /* xcconfig */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - indentWidth = 4; - name = pthread; - sourceTree = ""; - tabWidth = 4; - usesTabs = 0; - }; - FE67837D143385CD0009A0A0 /* xcconfig */ = { - isa = PBXGroup; - children = ( - FE67838B143385CD0009A0A0 /* windows-i386-framework.xcconfig */, - FE67838C143385CD0009A0A0 /* windows-i386.xcconfig */, - FE67838D143385CD0009A0A0 /* windows.xcconfig */, - ); - name = xcconfig; - path = ../xcconfig; - sourceTree = SOURCE_ROOT; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D2AAC0C305546C1D00DB518D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FE678391143386160009A0A0 /* pthread.h in Headers */, - FE678393143386160009A0A0 /* sched.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D2AAC0C605546C1D00DB518D /* pthread */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB917D08733D990010E9CD /* Build configuration list for PBXNativeTarget "pthread" */; - buildPhases = ( - D2AAC0C305546C1D00DB518D /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = pthread; - productName = pthread; - productReference = FE6786871433A2530009A0A0 /* pthread.1.0.dll */; - productType = "com.apple.product-type.library.dynamic"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - }; - buildConfigurationList = 1DEB918108733D990010E9CD /* Build configuration list for PBXProject "pthread" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 0867D691FE84028FC02AAC07 /* pthread */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D2AAC0C605546C1D00DB518D /* pthread */, - ); - }; -/* End PBXProject section */ - -/* Begin XCBuildConfiguration section */ - 1DEB917E08733D990010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE67838B143385CD0009A0A0 /* windows-i386-framework.xcconfig */; - buildSettings = { - INSTALL_PATH = /; - PRIVATE_HEADERS_FOLDER_PATH = /include; - PRODUCT_NAME = pthread; - PUBLIC_HEADERS_FOLDER_PATH = /include; - }; - name = Debug; - }; - 1DEB917F08733D990010E9CD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FE67838B143385CD0009A0A0 /* windows-i386-framework.xcconfig */; - buildSettings = { - INSTALL_PATH = /; - PRIVATE_HEADERS_FOLDER_PATH = /include; - PRODUCT_NAME = pthread; - PUBLIC_HEADERS_FOLDER_PATH = /include; - }; - name = Release; - }; - 1DEB918208733D990010E9CD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Debug; - }; - 1DEB918308733D990010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB917D08733D990010E9CD /* Build configuration list for PBXNativeTarget "pthread" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB917E08733D990010E9CD /* Debug */, - 1DEB917F08733D990010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB918108733D990010E9CD /* Build configuration list for PBXProject "pthread" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB918208733D990010E9CD /* Debug */, - 1DEB918308733D990010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/pthread/sched.h b/pthread/sched.h deleted file mode 100644 index b2d4e714..00000000 --- a/pthread/sched.h +++ /dev/null @@ -1,8 +0,0 @@ - -struct sched_param { - int sched_priority; -}; - -int sched_yield(void); -int sched_get_priority_min(int policy); -int sched_get_priority_max(int policy); diff --git a/testing/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj b/testing/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj deleted file mode 100644 index bbfa10cf..00000000 --- a/testing/Examples/CGShadingCreate/CGShadingCreate.xcodeproj/project.pbxproj +++ /dev/null @@ -1,414 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXAggregateTarget section */ - FEFC49140BB219B3006628BF /* CGShadingCreate */ = { - isa = PBXAggregateTarget; - buildConfigurationList = FEFC49210BB21A04006628BF /* Build configuration list for PBXAggregateTarget "CGShadingCreate" */; - buildPhases = ( - ); - dependencies = ( - FEFC49160BB219B7006628BF /* PBXTargetDependency */, - FEFC49180BB219BA006628BF /* PBXTargetDependency */, - ); - name = CGShadingCreate; - productName = CGShadingCreate; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FEFC48F00BB21906006628BF /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - FEFC48F10BB21906006628BF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - FEFC48F30BB21906006628BF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - FEFC48F50BB21906006628BF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FEFC49240BB21A07006628BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; - FEFC49250BB21A08006628BF /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; - FEFC492A0BB21B1D006628BF /* GradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFC49290BB21B1D006628BF /* GradientView.m */; }; - FEFC492B0BB21B1D006628BF /* GradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFC49290BB21B1D006628BF /* GradientView.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FEFC49150BB219B7006628BF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8D1107260486CEB800E47090; - remoteInfo = "CGShadingCreate-Mac"; - }; - FEFC49170BB219BA006628BF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = FEFC48EE0BB21906006628BF; - remoteInfo = "CGShadingCreate-Windows"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* CGShadingCreate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CGShadingCreate.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEFC48F90BB21906006628BF /* CGShadingCreate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CGShadingCreate.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEFC49280BB21B1D006628BF /* GradientView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GradientView.h; sourceTree = ""; }; - FEFC49290BB21B1D006628BF /* GradientView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = GradientView.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48F40BB21906006628BF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F50BB21906006628BF /* Cocoa.framework in Frameworks */, - FEFC49240BB21A07006628BF /* Foundation.framework in Frameworks */, - FEFC49250BB21A08006628BF /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* CGShadingCreate.app */, - FEFC48F90BB21906006628BF /* CGShadingCreate.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* CGShadingCreate */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = CGShadingCreate; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 29B97316FDCFA39411CA2CEA /* main.m */, - FEFC49280BB21B1D006628BF /* GradientView.h */, - FEFC49290BB21B1D006628BF /* GradientView.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* CGShadingCreate-Mac */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "CGShadingCreate-Mac" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "CGShadingCreate-Mac"; - productInstallPath = "$(HOME)/Applications"; - productName = CGShadingCreate; - productReference = 8D1107320486CEB800E47090 /* CGShadingCreate.app */; - productType = "com.apple.product-type.application"; - }; - FEFC48EE0BB21906006628BF /* CGShadingCreate-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = FEFC48F60BB21906006628BF /* Build configuration list for PBXNativeTarget "CGShadingCreate-Windows" */; - buildPhases = ( - FEFC48EF0BB21906006628BF /* Resources */, - FEFC48F20BB21906006628BF /* Sources */, - FEFC48F40BB21906006628BF /* Frameworks */, - FEB8F1150D3DB75D00754380 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "CGShadingCreate-Windows"; - productInstallPath = "$(HOME)/Applications"; - productName = CGShadingCreate; - productReference = FEFC48F90BB21906006628BF /* CGShadingCreate.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CGShadingCreate" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CGShadingCreate */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* CGShadingCreate-Mac */, - FEFC48EE0BB21906006628BF /* CGShadingCreate-Windows */, - FEFC49140BB219B3006628BF /* CGShadingCreate */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */, - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48EF0BB21906006628BF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F00BB21906006628BF /* MainMenu.nib in Resources */, - FEFC48F10BB21906006628BF /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FEB8F1150D3DB75D00754380 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - FEFC492A0BB21B1D006628BF /* GradientView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48F20BB21906006628BF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F30BB21906006628BF /* main.m in Sources */, - FEFC492B0BB21B1D006628BF /* GradientView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FEFC49160BB219B7006628BF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8D1107260486CEB800E47090 /* CGShadingCreate-Mac */; - targetProxy = FEFC49150BB219B7006628BF /* PBXContainerItemProxy */; - }; - FEFC49180BB219BA006628BF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = FEFC48EE0BB21906006628BF /* CGShadingCreate-Windows */; - targetProxy = FEFC49170BB219BA006628BF /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 29B97319FDCFA39411CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CGShadingCreate; - SYMROOT = build/Mac; - WRAPPER_EXTENSION = app; - }; - name = Deployment; - }; - C01FCF5008A954540054247B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - }; - name = Deployment; - }; - FEFC48F80BB21906006628BF /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INFOPLIST_FILE = Info.plist; - OTHER_LDFLAGS = ( - "-Wl,--enable-auto-import", - "-mwindows", - ); - PREBINDING = NO; - PRODUCT_NAME = CGShadingCreate; - SYMROOT = build/Windows; - }; - name = Deployment; - }; - FEFC49220BB21A04006628BF /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - PRODUCT_NAME = CGShadingCreate; - ZERO_LINK = NO; - }; - name = Deployment; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "CGShadingCreate-Mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CGShadingCreate" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FEFC48F60BB21906006628BF /* Build configuration list for PBXNativeTarget "CGShadingCreate-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEFC48F80BB21906006628BF /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FEFC49210BB21A04006628BF /* Build configuration list for PBXAggregateTarget "CGShadingCreate" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEFC49220BB21A04006628BF /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/testing/Examples/CGShadingCreate/English.lproj/InfoPlist.strings b/testing/Examples/CGShadingCreate/English.lproj/InfoPlist.strings deleted file mode 100644 index 997688e2fd53fd8d44166a1895730ea43ed42f47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmW-ZOAf&R6h+V2DjLH^R7?!S$b{#$5lbf^EkLAW3{7RTh oDE+A9pSg65nVdc!``%jXwyDfqOK2p - - - - $archiver - NSKeyedArchiver - $objects - - $null - - $class - - CF$UID - 642 - - NSAccessibilityConnectors - - CF$UID - 639 - - NSAccessibilityOidsKeys - - CF$UID - 640 - - NSAccessibilityOidsValues - - CF$UID - 641 - - NSClassesKeys - - CF$UID - 491 - - NSClassesValues - - CF$UID - 492 - - NSConnections - - CF$UID - 152 - - NSFontManager - - CF$UID - 0 - - NSFramework - - CF$UID - 6 - - NSNamesKeys - - CF$UID - 436 - - NSNamesValues - - CF$UID - 437 - - NSNextOid - 295 - NSObjectsKeys - - CF$UID - 356 - - NSObjectsValues - - CF$UID - 435 - - NSOidsKeys - - CF$UID - 493 - - NSOidsValues - - CF$UID - 494 - - NSRoot - - CF$UID - 2 - - NSVisibleWindows - - CF$UID - 7 - - - - $class - - CF$UID - 5 - - NSClassName - - CF$UID - 3 - - - - $class - - CF$UID - 4 - - NS.string - NSApplication - - - $classes - - NSMutableString - NSString - NSObject - - $classname - NSMutableString - - - $classes - - NSCustomObject - NSObject - - $classname - NSCustomObject - - - $class - - CF$UID - 4 - - NS.string - IBCocoaFramework - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 8 - - - - - $class - - CF$UID - 151 - - NSMaxSize - - CF$UID - 150 - - NSMinSize - - CF$UID - 149 - - NSScreenRect - - CF$UID - 148 - - NSViewClass - - CF$UID - 12 - - NSWTFlags - 1886912512 - NSWindowBacking - 2 - NSWindowClass - - CF$UID - 11 - - NSWindowRect - - CF$UID - 9 - - NSWindowStyleMask - 14 - NSWindowTitle - - CF$UID - 10 - - NSWindowView - - CF$UID - 13 - - - {{415, 268}, {600, 573}} - Window - NSWindow - - $class - - CF$UID - 4 - - NS.string - View - - - $class - - CF$UID - 147 - - NSFrame - - CF$UID - 146 - - NSNextResponder - - CF$UID - 0 - - NSSubviews - - CF$UID - 14 - - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 15 - - - CF$UID - 20 - - - CF$UID - 28 - - - CF$UID - 41 - - - CF$UID - 68 - - - CF$UID - 76 - - - CF$UID - 83 - - - CF$UID - 87 - - - CF$UID - 90 - - - CF$UID - 94 - - - CF$UID - 99 - - - CF$UID - 102 - - - CF$UID - 106 - - - CF$UID - 109 - - - CF$UID - 112 - - - CF$UID - 115 - - - CF$UID - 118 - - - CF$UID - 126 - - - CF$UID - 130 - - - - - $class - - CF$UID - 19 - - NSClassName - - CF$UID - 17 - - NSExtension - - CF$UID - 18 - - NSFrameSize - - CF$UID - 16 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 18 - - {600, 480} - GradientView - NSView - - $classes - - NSCustomView - NSView - NSResponder - NSObject - - $classname - NSCustomView - - - $class - - CF$UID - 27 - - NSColor - - CF$UID - 25 - - NSDragTypes - - CF$UID - 21 - - NSEnabled - - NSFrame - - CF$UID - 24 - - NSIsBordered - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 22 - - - - - $class - - CF$UID - 4 - - NS.string - NSColor pasteboard type - - - $classes - - NSMutableSet - NSSet - NSObject - - $classname - NSMutableSet - - {{229, 505}, {52, 20}} - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSWhite - - MAA= - - - - $classes - - NSColor - NSObject - - $classname - NSColor - - - $classes - - NSColorWell - NSControl - NSView - NSResponder - NSObject - - $classname - NSColorWell - - - $class - - CF$UID - 40 - - NSCell - - CF$UID - 30 - - NSEnabled - - NSFrame - - CF$UID - 29 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{285, 507}, {58, 18}} - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 38 - - NSAlternateImage - - CF$UID - 35 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 2 - NSCellFlags - 67239424 - NSCellFlags2 - 262144 - NSContents - - CF$UID - 31 - - NSControlView - - CF$UID - 28 - - NSKeyEquivalent - - CF$UID - 38 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 32 - - - Extend - - $class - - CF$UID - 34 - - NSName - - CF$UID - 33 - - NSSize - 9 - NSfFlags - 3614 - - LucidaGrande - - $classes - - NSFont - NSObject - - $classname - NSFont - - - $class - - CF$UID - 37 - - NSImageName - - CF$UID - 36 - - - NSSwitch - - $classes - - NSButtonImageSource - NSObject - - $classname - NSButtonImageSource - - - - $classes - - NSButtonCell - %NSButtonCell - NSActionCell - NSCell - NSObject - - $classname - NSButtonCell - - - $classes - - NSButton - NSControl - NSView - NSResponder - NSObject - - $classname - NSButton - - - $class - - CF$UID - 67 - - NSBackgroundColor - - CF$UID - 61 - - NSCellBackgroundColor - - CF$UID - 65 - - NSCellClass - - CF$UID - 57 - - NSCellSize - - CF$UID - 55 - - NSCells - - CF$UID - 43 - - NSEnabled - - NSFont - - CF$UID - 66 - - NSFrame - - CF$UID - 42 - - NSIntercellSpacing - - CF$UID - 56 - - NSMatrixFlags - 67633152 - NSNextResponder - - CF$UID - 13 - - NSNumCols - 1 - NSNumRows - 2 - NSProtoCell - - CF$UID - 58 - - NSSelectedCol - -1 - NSSelectedRow - -1 - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{349, 484}, {138, 40}} - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 44 - - - CF$UID - 50 - - - - - $class - - CF$UID - 49 - - NSCellFlags - 343014977 - NSCellFlags2 - 205521920 - NSContents - - CF$UID - 45 - - NSControlView - - CF$UID - 41 - - NSSupport - - CF$UID - 32 - - NSTitleCell - - CF$UID - 46 - - NSTitleWidth - 64 - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 48 - - NSCellFlags - 67239424 - NSCellFlags2 - 67108864 - NSContents - - CF$UID - 47 - - NSSupport - - CF$UID - 32 - - - Inner Radius: - - $classes - - NSCell - NSObject - - $classname - NSCell - - - $classes - - NSFormCell - NSActionCell - NSCell - NSObject - - $classname - NSFormCell - - - $class - - CF$UID - 49 - - NSCellFlags - 343014977 - NSCellFlags2 - 205521920 - NSContents - - CF$UID - 51 - - NSControlView - - CF$UID - 41 - - NSSupport - - CF$UID - 32 - - NSTag - 1 - NSTitleCell - - CF$UID - 52 - - NSTitleWidth - 64 - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 48 - - NSCellFlags - 67239424 - NSCellFlags2 - 67108864 - NSContents - - CF$UID - 53 - - NSSupport - - CF$UID - 32 - - - Outer Radius: - - $classes - - NSMutableArray - NSArray - NSObject - - $classname - NSMutableArray - - {138, 16} - {0, 6} - NSActionCell - - $class - - CF$UID - 49 - - NSCellFlags - 343014976 - NSCellFlags2 - 205521920 - NSContents - - CF$UID - 38 - - NSSupport - - CF$UID - 32 - - NSTitleCell - - CF$UID - 59 - - NSTitleWidth - 64 - - - $class - - CF$UID - 48 - - NSCellFlags - 67239424 - NSCellFlags2 - 67108864 - NSContents - - CF$UID - 60 - - NSSupport - - CF$UID - 32 - - - Field: - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 64 - - NSColorName - - CF$UID - 63 - - NSColorSpace - 6 - - System - controlColor - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSWhite - - MC42NjY2NjY2OQA= - - - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSWhite - - MQA= - - - - $class - - CF$UID - 34 - - NSName - - CF$UID - 33 - - NSSize - 13 - NSfFlags - 1044 - - - $classes - - NSForm - NSMatrix - %NSMatrix - NSControl - NSView - NSResponder - NSObject - - $classname - NSForm - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 70 - - NSEnabled - - NSFrame - - CF$UID - 69 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{17, 511}, {31, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 272629760 - NSContents - - CF$UID - 71 - - NSControlView - - CF$UID - 68 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - Start - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 25 - - NSColorName - - CF$UID - 73 - - NSColorSpace - 6 - - controlTextColor - - $classes - - NSTextFieldCell - NSActionCell - NSCell - NSObject - - $classname - NSTextFieldCell - - - $classes - - NSTextField - %NSTextField - NSControl - NSView - NSResponder - NSObject - - $classname - NSTextField - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 78 - - NSEnabled - - NSFrame - - CF$UID - 77 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{65, 507}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 76 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 65 - - NSColorName - - CF$UID - 80 - - NSColorSpace - 6 - - textBackgroundColor - - $class - - CF$UID - 26 - - NSCatalogName - - CF$UID - 62 - - NSColor - - CF$UID - 25 - - NSColorName - - CF$UID - 82 - - NSColorSpace - 6 - - textColor - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 85 - - NSEnabled - - NSFrame - - CF$UID - 84 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{40, 511}, {20, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 86 - - NSControlView - - CF$UID - 83 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - X: - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 89 - - NSEnabled - - NSFrame - - CF$UID - 88 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{154, 507}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 87 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 92 - - NSEnabled - - NSFrame - - CF$UID - 91 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{131, 511}, {18, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 93 - - NSControlView - - CF$UID - 90 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - Y: - - $class - - CF$UID - 27 - - NSColor - - CF$UID - 98 - - NSDragTypes - - CF$UID - 95 - - NSEnabled - - NSFrame - - CF$UID - 97 - - NSIsBordered - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 96 - - - - - $class - - CF$UID - 4 - - NS.string - NSColor pasteboard type - - {{229, 483}, {52, 20}} - - $class - - CF$UID - 26 - - NSColorSpace - 1 - NSRGB - - MSAwIDAA - - - - $class - - CF$UID - 40 - - NSCell - - CF$UID - 101 - - NSEnabled - - NSFrame - - CF$UID - 100 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{285, 485}, {58, 18}} - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 38 - - NSAlternateImage - - CF$UID - 35 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 2 - NSCellFlags - 67239424 - NSCellFlags2 - 262144 - NSContents - - CF$UID - 31 - - NSControlView - - CF$UID - 99 - - NSKeyEquivalent - - CF$UID - 38 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 32 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 104 - - NSEnabled - - NSFrame - - CF$UID - 103 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{17, 489}, {31, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 272629760 - NSContents - - CF$UID - 105 - - NSControlView - - CF$UID - 102 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - End - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 108 - - NSEnabled - - NSFrame - - CF$UID - 107 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{65, 485}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 106 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 111 - - NSEnabled - - NSFrame - - CF$UID - 110 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{40, 489}, {20, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 86 - - NSControlView - - CF$UID - 109 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 114 - - NSEnabled - - NSFrame - - CF$UID - 113 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{154, 485}, {67, 16}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 79 - - NSCellFlags - -1804468671 - NSCellFlags2 - 272892928 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 112 - - NSDrawsBackground - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 81 - - - - $class - - CF$UID - 75 - - NSCell - - CF$UID - 117 - - NSEnabled - - NSFrame - - CF$UID - 116 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{131, 489}, {18, 11}} - - $class - - CF$UID - 74 - - NSBackgroundColor - - CF$UID - 61 - - NSCellFlags - 67239424 - NSCellFlags2 - 71303168 - NSContents - - CF$UID - 93 - - NSControlView - - CF$UID - 115 - - NSSupport - - CF$UID - 32 - - NSTextColor - - CF$UID - 72 - - - - $class - - CF$UID - 125 - - NSCell - - CF$UID - 120 - - NSEnabled - - NSFrame - - CF$UID - 119 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 266 - - {{493, 507}, {98, 21}} - - $class - - CF$UID - 124 - - NSAllowsTickMarkValuesOnly - - NSAltIncValue - 0.0 - NSCellFlags - 67501824 - NSCellFlags2 - 0 - NSContents - - CF$UID - 121 - - NSControlView - - CF$UID - 118 - - NSMaxValue - 500 - NSMinValue - 0.0 - NSNumberOfTickMarks - 0 - NSSupport - - CF$UID - 122 - - NSTickMarkPosition - 1 - NSValue - 50 - NSVertical - - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 34 - - NSName - - CF$UID - 123 - - NSSize - 12 - NSfFlags - 16 - - Helvetica - - $classes - - NSSliderCell - NSActionCell - NSCell - NSObject - - $classname - NSSliderCell - - - $classes - - NSSlider - NSControl - NSView - NSResponder - NSObject - - $classname - NSSlider - - - $class - - CF$UID - 125 - - NSCell - - CF$UID - 128 - - NSEnabled - - NSFrame - - CF$UID - 127 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 266 - - {{493, 484}, {98, 21}} - - $class - - CF$UID - 124 - - NSAllowsTickMarkValuesOnly - - NSAltIncValue - 0.0 - NSCellFlags - 67501824 - NSCellFlags2 - 0 - NSContents - - CF$UID - 129 - - NSControlView - - CF$UID - 126 - - NSMaxValue - 500 - NSMinValue - 0.0 - NSNumberOfTickMarks - 0 - NSSupport - - CF$UID - 122 - - NSTickMarkPosition - 1 - NSValue - 50 - NSVertical - - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 145 - - NSBackgroundColor - - CF$UID - 61 - - NSCellBackgroundColor - - CF$UID - 65 - - NSCellClass - - CF$UID - 142 - - NSCellSize - - CF$UID - 140 - - NSCells - - CF$UID - 132 - - NSEnabled - - NSFont - - CF$UID - 66 - - NSFrame - - CF$UID - 131 - - NSIntercellSpacing - - CF$UID - 141 - - NSMatrixFlags - 1143472128 - NSNextResponder - - CF$UID - 13 - - NSNumCols - 2 - NSNumRows - 1 - NSProtoCell - - CF$UID - 143 - - NSSelectedCell - - CF$UID - 133 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 268 - - {{18, 536}, {130, 18}} - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 133 - - - CF$UID - 138 - - - - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 137 - - NSAlternateImage - - CF$UID - 135 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 0 - NSCellFlags - -2080244224 - NSCellFlags2 - 0 - NSContents - - CF$UID - 134 - - NSControlView - - CF$UID - 130 - - NSKeyEquivalent - - CF$UID - 137 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 66 - - - Axial - - $class - - CF$UID - 37 - - NSImageName - - CF$UID - 136 - - - NSRadioButton - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 39 - - NSAlternateContents - - CF$UID - 38 - - NSAlternateImage - - CF$UID - 135 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 0 - NSCellFlags - 67239424 - NSCellFlags2 - 0 - NSContents - - CF$UID - 139 - - NSControlView - - CF$UID - 130 - - NSKeyEquivalent - - CF$UID - 38 - - NSPeriodicDelay - 400 - NSPeriodicInterval - 75 - NSSupport - - CF$UID - 66 - - NSTag - 1 - - Radial - {63, 18} - {4, 2} - NSActionCell - - $class - - CF$UID - 39 - - NSAlternateImage - - CF$UID - 135 - - NSButtonFlags - 1211650559 - NSButtonFlags2 - 0 - NSCellFlags - 67239424 - NSCellFlags2 - 0 - NSContents - - CF$UID - 144 - - NSPeriodicDelay - 400 - NSPeriodicInterval - 75 - NSSupport - - CF$UID - 66 - - - Radio - - $classes - - NSMatrix - %NSMatrix - NSControl - NSView - NSResponder - NSObject - - $classname - NSMatrix - - {{1, 9}, {600, 573}} - - $classes - - NSView - NSResponder - NSObject - - $classname - NSView - - {{0, 0}, {1680, 1028}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - $classes - - NSWindowTemplate - NSObject - - $classname - NSWindowTemplate - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 153 - - - CF$UID - 167 - - - CF$UID - 171 - - - CF$UID - 177 - - - CF$UID - 182 - - - CF$UID - 188 - - - CF$UID - 193 - - - CF$UID - 199 - - - CF$UID - 203 - - - CF$UID - 208 - - - CF$UID - 212 - - - CF$UID - 216 - - - CF$UID - 222 - - - CF$UID - 227 - - - CF$UID - 232 - - - CF$UID - 237 - - - CF$UID - 242 - - - CF$UID - 247 - - - CF$UID - 253 - - - CF$UID - 258 - - - CF$UID - 262 - - - CF$UID - 267 - - - CF$UID - 271 - - - CF$UID - 275 - - - CF$UID - 281 - - - CF$UID - 285 - - - CF$UID - 289 - - - CF$UID - 293 - - - CF$UID - 298 - - - CF$UID - 303 - - - CF$UID - 305 - - - CF$UID - 307 - - - CF$UID - 309 - - - CF$UID - 311 - - - CF$UID - 314 - - - CF$UID - 316 - - - CF$UID - 318 - - - CF$UID - 320 - - - CF$UID - 322 - - - CF$UID - 324 - - - CF$UID - 326 - - - CF$UID - 328 - - - CF$UID - 330 - - - CF$UID - 332 - - - CF$UID - 334 - - - CF$UID - 336 - - - CF$UID - 338 - - - CF$UID - 340 - - - CF$UID - 342 - - - CF$UID - 344 - - - CF$UID - 346 - - - CF$UID - 348 - - - CF$UID - 350 - - - CF$UID - 352 - - - CF$UID - 354 - - - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 165 - - NSSource - - CF$UID - 154 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 157 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 156 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 426 - - NSName - - CF$UID - 428 - - NSTitle - - CF$UID - 425 - - - Minimize - m - - $class - - CF$UID - 161 - - NSClassName - - CF$UID - 159 - - NSResourceName - - CF$UID - 160 - - - NSImage - NSMenuCheckmark - - $classes - - NSCustomResource - %NSCustomResource - NSObject - - $classname - NSCustomResource - - - $class - - CF$UID - 161 - - NSClassName - - CF$UID - 159 - - NSResourceName - - CF$UID - 163 - - - NSMenuMixedState - - $classes - - NSMenuItem - NSObject - - $classname - NSMenuItem - - - $class - - CF$UID - 4 - - NS.string - performMiniaturize: - - - $classes - - NSNibControlConnector - NSNibConnector - NSObject - - $classname - NSNibControlConnector - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 170 - - NSSource - - CF$UID - 168 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 169 - - - Bring All to Front - - $class - - CF$UID - 4 - - NS.string - arrangeInFront: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 176 - - NSSource - - CF$UID - 172 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 175 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 174 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 384 - - NSTitle - - CF$UID - 383 - - - Print… - p - - $class - - CF$UID - 4 - - NS.string - print: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 181 - - NSSource - - CF$UID - 178 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 180 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 179 - - - Page Setup… - P - - $class - - CF$UID - 4 - - NS.string - runPageLayout: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 187 - - NSSource - - CF$UID - 183 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 186 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 184 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 185 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 432 - - NSTitle - - CF$UID - 430 - - - NewApplication Help - ? - - $class - - CF$UID - 4 - - NS.string - showHelp: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 192 - - NSSource - - CF$UID - 189 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 190 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 191 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 395 - - NSName - - CF$UID - 396 - - NSTitle - - CF$UID - 394 - - - Clear Menu - - $class - - CF$UID - 4 - - NS.string - clearRecentDocuments: - - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 198 - - NSSource - - CF$UID - 194 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 197 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 196 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 363 - - NSName - - CF$UID - 379 - - NSTitle - - CF$UID - 361 - - - Quit CGShadingCreate - q - - $class - - CF$UID - 4 - - NS.string - terminate: - - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 202 - - NSSource - - CF$UID - 200 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 201 - - - About CGShadingCreate - - $class - - CF$UID - 4 - - NS.string - orderFrontStandardAboutPanel: - - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 207 - - NSSource - - CF$UID - 204 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 206 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 205 - - - Hide Others - h - hideOtherApplications: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 211 - - NSSource - - CF$UID - 209 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 206 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 210 - - - Hide CGShadingCreate - hide: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 215 - - NSSource - - CF$UID - 213 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 214 - - - Show All - unhideAllApplications: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 221 - - NSSource - - CF$UID - 217 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 220 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 219 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 411 - - NSTitle - - CF$UID - 410 - - - Cut - x - - $class - - CF$UID - 4 - - NS.string - cut: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 226 - - NSSource - - CF$UID - 223 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 225 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 224 - - - Paste - v - - $class - - CF$UID - 4 - - NS.string - paste: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 231 - - NSSource - - CF$UID - 228 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 230 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 229 - - - Redo - Z - - $class - - CF$UID - 4 - - NS.string - redo: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 236 - - NSSource - - CF$UID - 233 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 235 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 234 - - - Select All - a - - $class - - CF$UID - 4 - - NS.string - selectAll: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 241 - - NSSource - - CF$UID - 238 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 240 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 239 - - - Undo - z - - $class - - CF$UID - 4 - - NS.string - undo: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 246 - - NSSource - - CF$UID - 243 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 245 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 244 - - - Copy - c - - $class - - CF$UID - 4 - - NS.string - copy: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 252 - - NSSource - - CF$UID - 248 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 251 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 249 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 250 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 422 - - NSTitle - - CF$UID - 420 - - - Spelling… - : - - $class - - CF$UID - 4 - - NS.string - showGuessPanel: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 257 - - NSSource - - CF$UID - 254 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 256 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 249 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 255 - - - Check Spelling - ; - - $class - - CF$UID - 4 - - NS.string - checkSpelling: - - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 261 - - NSSource - - CF$UID - 259 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 249 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 260 - - - Check Spelling as You Type - toggleContinuousSpellChecking: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 266 - - NSSource - - CF$UID - 263 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 265 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 264 - - - Close - w - performClose: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 270 - - NSSource - - CF$UID - 268 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 269 - - - Delete - delete: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 274 - - NSSource - - CF$UID - 272 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 273 - - - Zoom - performZoom: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 276 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 279 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 1 - NSTitle - - CF$UID - 278 - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 418 - - NSTitle - - CF$UID - 417 - - - Find… - f - performFindPanelAction: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 282 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 284 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 2 - NSTitle - - CF$UID - 283 - - - Find Next - g - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 286 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 288 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 3 - NSTitle - - CF$UID - 287 - - - Find Previous - G - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 280 - - NSSource - - CF$UID - 290 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 292 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTag - 7 - NSTitle - - CF$UID - 291 - - - Use Selection for Find - e - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 297 - - NSSource - - CF$UID - 294 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 296 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 277 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 295 - - - Jump to Selection - j - centerSelectionInVisibleArea: - - $class - - CF$UID - 166 - - NSLabel - - CF$UID - 302 - - NSSource - - CF$UID - 299 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 301 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 300 - - - Paste and Match Style - V - pasteAsPlainText: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 304 - - NSSource - - CF$UID - 20 - - - takeStartColorFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 306 - - NSSource - - CF$UID - 28 - - - takeExtendStartFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 308 - - NSSource - - CF$UID - 94 - - - takeEndColorFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 310 - - NSSource - - CF$UID - 99 - - - takeExtendEndFromSender: - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 76 - - NSLabel - - CF$UID - 312 - - NSSource - - CF$UID - 15 - - - _startXTextField - - $classes - - NSNibOutletConnector - NSNibConnector - NSObject - - $classname - NSNibOutletConnector - - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 94 - - NSLabel - - CF$UID - 315 - - NSSource - - CF$UID - 15 - - - _endColor - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 99 - - NSLabel - - CF$UID - 317 - - NSSource - - CF$UID - 15 - - - _endExtend - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 50 - - NSLabel - - CF$UID - 319 - - NSSource - - CF$UID - 15 - - - _outerRadius - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 44 - - NSLabel - - CF$UID - 321 - - NSSource - - CF$UID - 15 - - - _innerRadius - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 112 - - NSLabel - - CF$UID - 323 - - NSSource - - CF$UID - 15 - - - _endYTextField - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 106 - - NSLabel - - CF$UID - 325 - - NSSource - - CF$UID - 15 - - - _endXTextField - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 20 - - NSLabel - - CF$UID - 327 - - NSSource - - CF$UID - 15 - - - _startColor - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 28 - - NSLabel - - CF$UID - 329 - - NSSource - - CF$UID - 15 - - - _startExtend - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 87 - - NSLabel - - CF$UID - 331 - - NSSource - - CF$UID - 15 - - - _startYTextField - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 333 - - NSSource - - CF$UID - 130 - - - selectType: - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 130 - - NSLabel - - CF$UID - 335 - - NSSource - - CF$UID - 15 - - - _shadingType - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 337 - - NSSource - - CF$UID - 44 - - - takeInnerRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 339 - - NSSource - - CF$UID - 50 - - - takeOuterRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 341 - - NSSource - - CF$UID - 118 - - - takeInnerRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 343 - - NSSource - - CF$UID - 126 - - - takeOuterRadiusFromSender: - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 345 - - NSSource - - CF$UID - 76 - - - takeStartXFromSender - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 347 - - NSSource - - CF$UID - 87 - - - takeStartYFromSender - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 349 - - NSSource - - CF$UID - 106 - - - takeEndXFromSender - - $class - - CF$UID - 166 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 351 - - NSSource - - CF$UID - 112 - - - takeEndYFromSender - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 118 - - NSLabel - - CF$UID - 353 - - NSSource - - CF$UID - 15 - - - _innerRadiusSlider - - $class - - CF$UID - 313 - - NSDestination - - CF$UID - 126 - - NSLabel - - CF$UID - 355 - - NSSource - - CF$UID - 15 - - - _outerRadiusSlider - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 299 - - - CF$UID - 357 - - - CF$UID - 213 - - - CF$UID - 388 - - - CF$UID - 115 - - - CF$UID - 290 - - - CF$UID - 419 - - - CF$UID - 372 - - - CF$UID - 8 - - - CF$UID - 228 - - - CF$UID - 106 - - - CF$UID - 249 - - - CF$UID - 83 - - - CF$UID - 126 - - - CF$UID - 385 - - - CF$UID - 272 - - - CF$UID - 248 - - - CF$UID - 406 - - - CF$UID - 243 - - - CF$UID - 44 - - - CF$UID - 209 - - - CF$UID - 204 - - - CF$UID - 401 - - - CF$UID - 282 - - - CF$UID - 133 - - - CF$UID - 238 - - - CF$UID - 168 - - - CF$UID - 360 - - - CF$UID - 397 - - - CF$UID - 87 - - - CF$UID - 413 - - - CF$UID - 41 - - - CF$UID - 429 - - - CF$UID - 368 - - - CF$UID - 50 - - - CF$UID - 276 - - - CF$UID - 414 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 189 - - - CF$UID - 195 - - - CF$UID - 90 - - - CF$UID - 263 - - - CF$UID - 190 - - - CF$UID - 294 - - - CF$UID - 138 - - - CF$UID - 112 - - - CF$UID - 15 - - - CF$UID - 217 - - - CF$UID - 99 - - - CF$UID - 391 - - - CF$UID - 277 - - - CF$UID - 20 - - - CF$UID - 109 - - - CF$UID - 173 - - - CF$UID - 178 - - - CF$UID - 412 - - - CF$UID - 118 - - - CF$UID - 102 - - - CF$UID - 218 - - - CF$UID - 268 - - - CF$UID - 378 - - - CF$UID - 404 - - - CF$UID - 94 - - - CF$UID - 377 - - - CF$UID - 183 - - - CF$UID - 13 - - - CF$UID - 380 - - - CF$UID - 223 - - - CF$UID - 233 - - - CF$UID - 398 - - - CF$UID - 427 - - - CF$UID - 172 - - - CF$UID - 254 - - - CF$UID - 365 - - - CF$UID - 76 - - - CF$UID - 184 - - - CF$UID - 200 - - - CF$UID - 423 - - - CF$UID - 68 - - - CF$UID - 259 - - - CF$UID - 28 - - - CF$UID - 286 - - - CF$UID - 364 - - - CF$UID - 130 - - - CF$UID - 194 - - - CF$UID - 407 - - - CF$UID - 369 - - - - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 359 - - NSName - - CF$UID - 433 - - NSTitle - - CF$UID - 358 - - - MainMenu - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 360 - - - CF$UID - 380 - - - CF$UID - 407 - - - CF$UID - 423 - - - CF$UID - 429 - - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 362 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 195 - - NSTitle - - CF$UID - 361 - - - CGShadingCreate - submenuAction: - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 200 - - - CF$UID - 364 - - - CF$UID - 365 - - - CF$UID - 368 - - - CF$UID - 369 - - - CF$UID - 377 - - - CF$UID - 209 - - - CF$UID - 204 - - - CF$UID - 213 - - - CF$UID - 378 - - - CF$UID - 194 - - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 367 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 366 - - - Preferences… - , - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 371 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 372 - - NSTitle - - CF$UID - 370 - - - Services - submenuAction: - - $class - - CF$UID - 376 - - NSMenuItems - - CF$UID - 374 - - NSName - - CF$UID - 375 - - NSTitle - - CF$UID - 373 - - - - $class - - CF$UID - 4 - - NS.string - Services - - - $class - - CF$UID - 54 - - NS.objects - - - _NSServicesMenu - - $classes - - NSMenu - NSObject - - $classname - NSMenu - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 195 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - _NSAppleMenu - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 382 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 173 - - NSTitle - - CF$UID - 381 - - - File - submenuAction: - - $class - - CF$UID - 4 - - NS.string - File - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 385 - - - CF$UID - 388 - - - CF$UID - 391 - - - CF$UID - 397 - - - CF$UID - 263 - - - CF$UID - 398 - - - CF$UID - 401 - - - CF$UID - 404 - - - CF$UID - 406 - - - CF$UID - 178 - - - CF$UID - 172 - - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 387 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 386 - - - New - n - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 390 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 389 - - - Open... - o - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 393 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 190 - - NSTitle - - CF$UID - 392 - - - Open Recent - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Open Recent - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 189 - - - - _NSRecentDocumentsMenu - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 400 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 399 - - - Save - s - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 403 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 402 - - - Save As… - S - - $class - - CF$UID - 164 - - NSKeyEquiv - - CF$UID - 38 - - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 405 - - - Revert - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 173 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 409 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 218 - - NSTitle - - CF$UID - 408 - - - Edit - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Edit - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 238 - - - CF$UID - 228 - - - CF$UID - 412 - - - CF$UID - 217 - - - CF$UID - 243 - - - CF$UID - 223 - - - CF$UID - 299 - - - CF$UID - 268 - - - CF$UID - 233 - - - CF$UID - 413 - - - CF$UID - 414 - - - CF$UID - 419 - - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 416 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 277 - - NSTitle - - CF$UID - 415 - - - Find - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Find - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 276 - - - CF$UID - 282 - - - CF$UID - 286 - - - CF$UID - 290 - - - CF$UID - 294 - - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 421 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 218 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 249 - - NSTitle - - CF$UID - 420 - - - Spelling - submenuAction: - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 248 - - - CF$UID - 254 - - - CF$UID - 259 - - - - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 424 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 155 - - NSTitle - - CF$UID - 10 - - - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Window - - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 154 - - - CF$UID - 272 - - - CF$UID - 427 - - - CF$UID - 168 - - - - - $class - - CF$UID - 164 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 155 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSTitle - - CF$UID - 38 - - - _NSWindowsMenu - - $class - - CF$UID - 164 - - NSAction - - CF$UID - 431 - - NSKeyEquiv - - CF$UID - 38 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 357 - - NSMixedImage - - CF$UID - 162 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 158 - - NSSubmenu - - CF$UID - 184 - - NSTitle - - CF$UID - 430 - - - Help - submenuAction: - - $class - - CF$UID - 54 - - NS.objects - - - CF$UID - 183 - - - - _NSMainMenu - - $classes - - NSArray - NSObject - - $classname - NSArray - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 218 - - - CF$UID - 2 - - - CF$UID - 195 - - - CF$UID - 173 - - - CF$UID - 13 - - - CF$UID - 277 - - - CF$UID - 218 - - - CF$UID - 369 - - - CF$UID - 2 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 419 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 173 - - - CF$UID - 155 - - - CF$UID - 249 - - - CF$UID - 173 - - - CF$UID - 218 - - - CF$UID - 41 - - - CF$UID - 195 - - - CF$UID - 195 - - - CF$UID - 173 - - - CF$UID - 277 - - - CF$UID - 130 - - - CF$UID - 218 - - - CF$UID - 155 - - - CF$UID - 357 - - - CF$UID - 173 - - - CF$UID - 13 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 357 - - - CF$UID - 195 - - - CF$UID - 41 - - - CF$UID - 277 - - - CF$UID - 218 - - - CF$UID - 155 - - - CF$UID - 423 - - - CF$UID - 190 - - - CF$UID - 360 - - - CF$UID - 13 - - - CF$UID - 173 - - - CF$UID - 391 - - - CF$UID - 277 - - - CF$UID - 130 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 173 - - - CF$UID - 414 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 380 - - - CF$UID - 173 - - - CF$UID - 218 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 407 - - - CF$UID - 218 - - - CF$UID - 195 - - - CF$UID - 173 - - - CF$UID - 13 - - - CF$UID - 195 - - - CF$UID - 184 - - - CF$UID - 8 - - - CF$UID - 357 - - - CF$UID - 218 - - - CF$UID - 218 - - - CF$UID - 173 - - - CF$UID - 155 - - - CF$UID - 173 - - - CF$UID - 249 - - - CF$UID - 195 - - - CF$UID - 13 - - - CF$UID - 429 - - - CF$UID - 195 - - - CF$UID - 357 - - - CF$UID - 13 - - - CF$UID - 249 - - - CF$UID - 13 - - - CF$UID - 277 - - - CF$UID - 195 - - - CF$UID - 13 - - - CF$UID - 195 - - - CF$UID - 357 - - - CF$UID - 195 - - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 268 - - - CF$UID - 15 - - - CF$UID - 94 - - - CF$UID - 76 - - - CF$UID - 50 - - - CF$UID - 83 - - - CF$UID - 183 - - - CF$UID - 109 - - - CF$UID - 427 - - - CF$UID - 238 - - - CF$UID - 126 - - - CF$UID - 217 - - - CF$UID - 115 - - - CF$UID - 20 - - - CF$UID - 276 - - - CF$UID - 184 - - - CF$UID - 41 - - - CF$UID - 248 - - - CF$UID - 412 - - - CF$UID - 290 - - - CF$UID - 28 - - - CF$UID - 218 - - - CF$UID - 8 - - - CF$UID - 112 - - - CF$UID - 90 - - - CF$UID - 233 - - - CF$UID - 401 - - - CF$UID - 44 - - - CF$UID - 357 - - - CF$UID - 254 - - - CF$UID - 429 - - - CF$UID - 380 - - - CF$UID - 2 - - - CF$UID - 406 - - - CF$UID - 419 - - - CF$UID - 178 - - - CF$UID - 263 - - - CF$UID - 194 - - - CF$UID - 102 - - - CF$UID - 259 - - - CF$UID - 172 - - - CF$UID - 404 - - - CF$UID - 414 - - - CF$UID - 223 - - - CF$UID - 228 - - - CF$UID - 99 - - - CF$UID - 282 - - - CF$UID - 249 - - - CF$UID - 385 - - - CF$UID - 388 - - - CF$UID - 155 - - - CF$UID - 294 - - - CF$UID - 68 - - - CF$UID - 407 - - - CF$UID - 365 - - - CF$UID - 106 - - - CF$UID - 243 - - - CF$UID - 286 - - - CF$UID - 398 - - - CF$UID - 277 - - - CF$UID - 173 - - - CF$UID - 413 - - - CF$UID - 397 - - - CF$UID - 130 - - - CF$UID - 118 - - - CF$UID - 87 - - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 438 - - - CF$UID - 439 - - - CF$UID - 440 - - - CF$UID - 441 - - - CF$UID - 442 - - - CF$UID - 443 - - - CF$UID - 444 - - - CF$UID - 445 - - - CF$UID - 444 - - - CF$UID - 446 - - - CF$UID - 447 - - - CF$UID - 448 - - - CF$UID - 449 - - - CF$UID - 450 - - - CF$UID - 451 - - - CF$UID - 452 - - - CF$UID - 453 - - - CF$UID - 454 - - - CF$UID - 451 - - - CF$UID - 446 - - - CF$UID - 455 - - - CF$UID - 456 - - - CF$UID - 10 - - - CF$UID - 457 - - - CF$UID - 458 - - - CF$UID - 459 - - - CF$UID - 460 - - - CF$UID - 461 - - - CF$UID - 462 - - - CF$UID - 463 - - - CF$UID - 464 - - - CF$UID - 444 - - - CF$UID - 465 - - - CF$UID - 466 - - - CF$UID - 467 - - - CF$UID - 468 - - - CF$UID - 469 - - - CF$UID - 470 - - - CF$UID - 471 - - - CF$UID - 451 - - - CF$UID - 472 - - - CF$UID - 473 - - - CF$UID - 474 - - - CF$UID - 475 - - - CF$UID - 476 - - - CF$UID - 477 - - - CF$UID - 438 - - - CF$UID - 456 - - - CF$UID - 478 - - - CF$UID - 444 - - - CF$UID - 479 - - - CF$UID - 481 - - - CF$UID - 482 - - - CF$UID - 451 - - - CF$UID - 483 - - - CF$UID - 484 - - - CF$UID - 481 - - - CF$UID - 448 - - - CF$UID - 485 - - - CF$UID - 456 - - - CF$UID - 444 - - - CF$UID - 486 - - - CF$UID - 487 - - - CF$UID - 488 - - - CF$UID - 489 - - - CF$UID - 490 - - - - NSMenuItem4 - View - 22 - NSTextField - NSFormCell1 - NSTextField1111 - - $class - - CF$UID - 4 - - NS.string - - - NSTextField11112 - NSMenuItem2 - NSSlider21 - NSMenuItem3 - NSTextField111111 - 2 - NSMenuItem - - $class - - CF$UID - 4 - - NS.string - 2 - - NSForm12 - NSMenuItem6 - NSButton41 - NSMenu - NSTextField11 - NSTextField11111 - NSMenuItem10 - - $class - - CF$UID - 4 - - NS.string - 8 - - NSFormCell - - $class - - CF$UID - 4 - - NS.string - MainMenu - - NSMenuItem8 - - $class - - CF$UID - 4 - - NS.string - 1 - - - $class - - CF$UID - 4 - - NS.string - File's Owner - - - $class - - CF$UID - 4 - - NS.string - 2 - - NSMenuItem13 - - $class - - CF$UID - 4 - - NS.string - 5 - - - $class - - CF$UID - 4 - - NS.string - 1 - - 1111 - NSTextField1112 - - $class - - CF$UID - 4 - - NS.string - 6 - - - $class - - CF$UID - 4 - - NS.string - 10 - - NSMenuItem7 - NSMenuItem9 - NSMenuItem11 - NSButton411 - - $class - - CF$UID - 4 - - NS.string - 9 - - - $class - - CF$UID - 480 - - - - $classes - - NSNull - %NSNull - NSObject - - $classname - NSNull - - NSMenuItem1 - NSTextField111 - 121 - NSTextField2 - - $class - - CF$UID - 4 - - NS.string - 3 - - NSMenuItem12 - - $class - - CF$UID - 4 - - NS.string - 7 - - NSMatrix11 - NSSlider2 - NSTextField1 - - $class - - CF$UID - 434 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 328 - - - CF$UID - 213 - - - CF$UID - 309 - - - CF$UID - 153 - - - CF$UID - 218 - - - CF$UID - 130 - - - CF$UID - 378 - - - CF$UID - 330 - - - CF$UID - 354 - - - CF$UID - 414 - - - CF$UID - 263 - - - CF$UID - 259 - - - CF$UID - 178 - - - CF$UID - 364 - - - CF$UID - 332 - - - CF$UID - 90 - - - CF$UID - 171 - - - CF$UID - 423 - - - CF$UID - 272 - - - CF$UID - 177 - - - CF$UID - 13 - - - CF$UID - 172 - - - CF$UID - 380 - - - CF$UID - 190 - - - CF$UID - 368 - - - CF$UID - 293 - - - CF$UID - 99 - - - CF$UID - 28 - - - CF$UID - 188 - - - CF$UID - 112 - - - CF$UID - 109 - - - CF$UID - 298 - - - CF$UID - 289 - - - CF$UID - 155 - - - CF$UID - 133 - - - CF$UID - 365 - - - CF$UID - 267 - - - CF$UID - 237 - - - CF$UID - 271 - - - CF$UID - 303 - - - CF$UID - 350 - - - CF$UID - 83 - - - CF$UID - 223 - - - CF$UID - 338 - - - CF$UID - 334 - - - CF$UID - 282 - - - CF$UID - 346 - - - CF$UID - 68 - - - CF$UID - 299 - - - CF$UID - 203 - - - CF$UID - 427 - - - CF$UID - 126 - - - CF$UID - 286 - - - CF$UID - 336 - - - CF$UID - 406 - - - CF$UID - 194 - - - CF$UID - 344 - - - CF$UID - 247 - - - CF$UID - 168 - - - CF$UID - 391 - - - CF$UID - 102 - - - CF$UID - 248 - - - CF$UID - 277 - - - CF$UID - 311 - - - CF$UID - 253 - - - CF$UID - 419 - - - CF$UID - 385 - - - CF$UID - 15 - - - CF$UID - 193 - - - CF$UID - 281 - - - CF$UID - 87 - - - CF$UID - 2 - - - CF$UID - 20 - - - CF$UID - 314 - - - CF$UID - 106 - - - CF$UID - 118 - - - CF$UID - 262 - - - CF$UID - 238 - - - CF$UID - 316 - - - CF$UID - 232 - - - CF$UID - 285 - - - CF$UID - 183 - - - CF$UID - 222 - - - CF$UID - 412 - - - CF$UID - 115 - - - CF$UID - 404 - - - CF$UID - 318 - - - CF$UID - 357 - - - CF$UID - 320 - - - CF$UID - 249 - - - CF$UID - 388 - - - CF$UID - 209 - - - CF$UID - 217 - - - CF$UID - 348 - - - CF$UID - 228 - - - CF$UID - 276 - - - CF$UID - 243 - - - CF$UID - 138 - - - CF$UID - 322 - - - CF$UID - 290 - - - CF$UID - 305 - - - CF$UID - 377 - - - CF$UID - 167 - - - CF$UID - 195 - - - CF$UID - 352 - - - CF$UID - 369 - - - CF$UID - 340 - - - CF$UID - 324 - - - CF$UID - 307 - - - CF$UID - 189 - - - CF$UID - 184 - - - CF$UID - 173 - - - CF$UID - 199 - - - CF$UID - 8 - - - CF$UID - 182 - - - CF$UID - 242 - - - CF$UID - 275 - - - CF$UID - 413 - - - CF$UID - 208 - - - CF$UID - 258 - - - CF$UID - 233 - - - CF$UID - 397 - - - CF$UID - 227 - - - CF$UID - 50 - - - CF$UID - 429 - - - CF$UID - 398 - - - CF$UID - 360 - - - CF$UID - 294 - - - CF$UID - 212 - - - CF$UID - 216 - - - CF$UID - 254 - - - CF$UID - 200 - - - CF$UID - 407 - - - CF$UID - 154 - - - CF$UID - 268 - - - CF$UID - 94 - - - CF$UID - 204 - - - CF$UID - 372 - - - CF$UID - 326 - - - CF$UID - 401 - - - CF$UID - 41 - - - CF$UID - 44 - - - CF$UID - 342 - - - CF$UID - 76 - - - - - $class - - CF$UID - 434 - - NS.objects - - - CF$UID - 495 - - - CF$UID - 496 - - - CF$UID - 497 - - - CF$UID - 498 - - - CF$UID - 499 - - - CF$UID - 500 - - - CF$UID - 501 - - - CF$UID - 502 - - - CF$UID - 503 - - - CF$UID - 504 - - - CF$UID - 505 - - - CF$UID - 506 - - - CF$UID - 507 - - - CF$UID - 508 - - - CF$UID - 509 - - - CF$UID - 510 - - - CF$UID - 511 - - - CF$UID - 512 - - - CF$UID - 513 - - - CF$UID - 514 - - - CF$UID - 515 - - - CF$UID - 516 - - - CF$UID - 517 - - - CF$UID - 518 - - - CF$UID - 519 - - - CF$UID - 520 - - - CF$UID - 521 - - - CF$UID - 522 - - - CF$UID - 523 - - - CF$UID - 524 - - - CF$UID - 525 - - - CF$UID - 526 - - - CF$UID - 527 - - - CF$UID - 528 - - - CF$UID - 529 - - - CF$UID - 530 - - - CF$UID - 531 - - - CF$UID - 532 - - - CF$UID - 533 - - - CF$UID - 534 - - - CF$UID - 535 - - - CF$UID - 536 - - - CF$UID - 537 - - - CF$UID - 538 - - - CF$UID - 539 - - - CF$UID - 540 - - - CF$UID - 541 - - - CF$UID - 542 - - - CF$UID - 543 - - - CF$UID - 544 - - - CF$UID - 545 - - - CF$UID - 546 - - - CF$UID - 547 - - - CF$UID - 548 - - - CF$UID - 549 - - - CF$UID - 550 - - - CF$UID - 551 - - - CF$UID - 552 - - - CF$UID - 553 - - - CF$UID - 554 - - - CF$UID - 555 - - - CF$UID - 556 - - - CF$UID - 557 - - - CF$UID - 558 - - - CF$UID - 559 - - - CF$UID - 560 - - - CF$UID - 561 - - - CF$UID - 562 - - - CF$UID - 563 - - - CF$UID - 564 - - - CF$UID - 565 - - - CF$UID - 566 - - - CF$UID - 567 - - - CF$UID - 568 - - - CF$UID - 569 - - - CF$UID - 570 - - - CF$UID - 571 - - - CF$UID - 572 - - - CF$UID - 573 - - - CF$UID - 574 - - - CF$UID - 575 - - - CF$UID - 576 - - - CF$UID - 577 - - - CF$UID - 578 - - - CF$UID - 579 - - - CF$UID - 580 - - - CF$UID - 581 - - - CF$UID - 582 - - - CF$UID - 583 - - - CF$UID - 584 - - - CF$UID - 585 - - - CF$UID - 586 - - - CF$UID - 587 - - - CF$UID - 588 - - - CF$UID - 589 - - - CF$UID - 590 - - - CF$UID - 591 - - - CF$UID - 592 - - - CF$UID - 593 - - - CF$UID - 594 - - - CF$UID - 595 - - - CF$UID - 596 - - - CF$UID - 597 - - - CF$UID - 598 - - - CF$UID - 599 - - - CF$UID - 600 - - - CF$UID - 601 - - - CF$UID - 602 - - - CF$UID - 603 - - - CF$UID - 604 - - - CF$UID - 605 - - - CF$UID - 606 - - - CF$UID - 607 - - - CF$UID - 608 - - - CF$UID - 609 - - - CF$UID - 610 - - - CF$UID - 611 - - - CF$UID - 612 - - - CF$UID - 613 - - - CF$UID - 614 - - - CF$UID - 615 - - - CF$UID - 616 - - - CF$UID - 617 - - - CF$UID - 618 - - - CF$UID - 619 - - - CF$UID - 620 - - - CF$UID - 621 - - - CF$UID - 622 - - - CF$UID - 623 - - - CF$UID - 624 - - - CF$UID - 625 - - - CF$UID - 626 - - - CF$UID - 627 - - - CF$UID - 628 - - - CF$UID - 629 - - - CF$UID - 630 - - - CF$UID - 631 - - - CF$UID - 632 - - - CF$UID - 633 - - - CF$UID - 634 - - - CF$UID - 635 - - - CF$UID - 636 - - - CF$UID - 637 - - - CF$UID - 638 - - - - 264 - 150 - 251 - 37 - 169 - 274 - 149 - 265 - 294 - 168 - 73 - 191 - 77 - 196 - 283 - 242 - 86 - 19 - 197 - 87 - 2 - 78 - 83 - 125 - 143 - 203 - 244 - 218 - 127 - 248 - 247 - 205 - 202 - 24 - 281 - 129 - 195 - 180 - 198 - 210 - 292 - 240 - 171 - 286 - 284 - 167 - 290 - 238 - 204 - 146 - 92 - 254 - 162 - 285 - 74 - 136 - 289 - 188 - 5 - 124 - 245 - 187 - 159 - 252 - 190 - 184 - 82 - 206 - 139 - 200 - 241 - 1 - 207 - 257 - 246 - 253 - 193 - 158 - 258 - 179 - 201 - 111 - 176 - 156 - 249 - 112 - 259 - 29 - 260 - 185 - 72 - 134 - 160 - 291 - 173 - 154 - 157 - 282 - 261 - 161 - 219 - 144 - 39 - 57 - 293 - 131 - 287 - 262 - 250 - 126 - 106 - 81 - 142 - 21 - 122 - 181 - 199 - 174 - 152 - 192 - 172 - 79 - 178 - 236 - 103 - 75 - 56 - 155 - 153 - 175 - 189 - 58 - 163 - 23 - 164 - 243 - 145 - 130 - 263 - 80 - 235 - 237 - 288 - 239 - - $class - - CF$UID - 54 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - - $class - - CF$UID - 434 - - NS.objects - - - - $classes - - NSIBObjectData - NSObject - - $classname - NSIBObjectData - - - $top - - IB.objectdata - - CF$UID - 1 - - - $version - 100000 - - diff --git a/testing/Examples/CGShadingCreate/GradientView.h b/testing/Examples/CGShadingCreate/GradientView.h deleted file mode 100644 index b2708cf2..00000000 --- a/testing/Examples/CGShadingCreate/GradientView.h +++ /dev/null @@ -1,49 +0,0 @@ -/* GradientView, not exactly MVC but you get the idea */ - -#import - -@interface GradientView : NSView { - float _C0[4]; - float _C1[4]; - NSPoint _startPoint; - NSPoint _endPoint; - BOOL _extendStart; - BOOL _extendEnd; - float _startRadius; - float _endRadius; - BOOL _mouseFirst; - - IBOutlet NSMatrix *_shadingType; - IBOutlet NSTextField *_startXTextField; - IBOutlet NSTextField *_startYTextField; - IBOutlet NSColorWell *_startColor; - IBOutlet NSButton *_startExtend; - - IBOutlet NSTextField *_endXTextField; - IBOutlet NSTextField *_endYTextField; - IBOutlet NSColorWell *_endColor; - IBOutlet NSButton *_endExtend; - - IBOutlet NSFormCell *_innerRadius; - IBOutlet NSSlider *_innerRadiusSlider; - IBOutlet NSFormCell *_outerRadius; - IBOutlet NSSlider *_outerRadiusSlider; -} - -- (IBAction) selectType: sender; - -- (IBAction) takeStartXFromSender: sender; -- (IBAction) takeStartYFromSender: sender; -- (IBAction) takeEndXFromSender: sender; -- (IBAction) takeEndYFromSender: sender; - -- (IBAction) takeStartColorFromSender: sender; -- (IBAction) takeEndColorFromSender: sender; - -- (IBAction) takeExtendStartFromSender: sender; -- (IBAction) takeExtendEndFromSender: sender; - -- (IBAction) takeInnerRadiusFromSender: sender; -- (IBAction) takeOuterRadiusFromSender: sender; - -@end diff --git a/testing/Examples/CGShadingCreate/GradientView.m b/testing/Examples/CGShadingCreate/GradientView.m deleted file mode 100644 index c7d5a733..00000000 --- a/testing/Examples/CGShadingCreate/GradientView.m +++ /dev/null @@ -1,167 +0,0 @@ -#import "GradientView.h" -#import - -@implementation GradientView - -- initWithFrame: (NSRect) frame { - [super initWithFrame: frame]; - _C0[0] = 0; - _C0[1] = 0; - _C0[2] = 0; - _C0[3] = 1; - - _C1[0] = 1; - _C1[1] = 0; - _C1[2] = 0; - _C1[3] = 1; - _startPoint = NSMakePoint(0, 0); - _endPoint = NSMakePoint(frame.size.width, frame.size.height); - _extendStart = NO; - _extendEnd = NO; - _startRadius = 10; - _endRadius = 100; - _mouseFirst = YES; - return self; -} - -- (void) updateRadius { - [_innerRadius setFloatValue: _startRadius]; - [_innerRadiusSlider setFloatValue: _startRadius]; - [_outerRadius setFloatValue: _endRadius]; - [_outerRadiusSlider setFloatValue: _endRadius]; -} - -- (void) updatePointFields { - [_startXTextField setFloatValue: _startPoint.x]; - [_startYTextField setFloatValue: _startPoint.y]; - [_endXTextField setFloatValue: _endPoint.x]; - [_endYTextField setFloatValue: _endPoint.y]; -} - -- (void) awakeFromNib { - [self updatePointFields]; - [self updateRadius]; -} - -void evaluate(void *info, const float *in, float *output) { - float x = in[0]; - GradientView *self = info; - int i; - - for (i = 0; i < 4; i++) - output[i] = self->_C0[i] + x * (self->_C1[i] - self->_C0[i]); -} - -- (void) drawRect: (NSRect) rect { - CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; - CGFunctionRef function; - CGShadingRef shading; - float domain[2] = {0, 1}; - float range[8] = {0, 1, 0, 1, 0, 1, 0, 1}; - CGFunctionCallbacks callbacks = {0, evaluate, NULL}; - - [[NSColor whiteColor] set]; - NSRectFill([self bounds]); - - function = CGFunctionCreate(self, 1, domain, 4, range, &callbacks); - - if ([_shadingType selectedTag] == 0) - shading = - CGShadingCreateAxial(CGColorSpaceCreateDeviceRGB(), - CGPointMake(_startPoint.x, _startPoint.y), - CGPointMake(_endPoint.x, _endPoint.y), - function, _extendStart, _extendEnd); - else - shading = CGShadingCreateRadial( - CGColorSpaceCreateDeviceRGB(), - CGPointMake(_startPoint.x, _startPoint.y), _startRadius, - CGPointMake(_endPoint.x, _endPoint.y), _endRadius, function, - _extendStart, _extendEnd); - - CGContextDrawShading(context, shading); - - CGFunctionRelease(function); - CGShadingRelease(shading); -} - -- (void) mouseDown: (NSEvent *) event { - NSPoint *dest = (_mouseFirst) ? &_startPoint : &_endPoint; - - do { - NSPoint point = [self convertPoint: [event locationInWindow] - fromView: nil]; - - *dest = point; - - [self updatePointFields]; - [self setNeedsDisplay: YES]; - event = [[self window] nextEventMatchingMask: NSLeftMouseUpMask | - NSLeftMouseDraggedMask]; - } while ([event type] != NSLeftMouseUp); - - _mouseFirst = !_mouseFirst; -} - -- (IBAction) selectType: sender { - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeStartXFromSender: sender { - _startPoint.x = [sender floatValue]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeStartYFromSender: sender { - _startPoint.y = [sender floatValue]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeEndXFromSender: sender { - _endPoint.x = [sender floatValue]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeEndYFromSender: sender { - _endPoint.y = [sender floatValue]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeStartColorFromSender: sender { - NSColor *color = [[sender color] - colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; - - [color getRed: _C0 green: _C0 + 1 blue: _C0 + 2 alpha: _C0 + 3]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeEndColorFromSender: sender { - NSColor *color = [[sender color] - colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; - - [color getRed: _C1 green: _C1 + 1 blue: _C1 + 2 alpha: _C1 + 3]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeExtendStartFromSender: sender { - _extendStart = [sender intValue] ? YES : NO; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeExtendEndFromSender: sender { - _extendEnd = [sender intValue] ? YES : NO; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeInnerRadiusFromSender: sender { - _startRadius = [sender floatValue]; - [self updateRadius]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeOuterRadiusFromSender: sender { - _endRadius = [sender floatValue]; - [self updateRadius]; - [self setNeedsDisplay: YES]; -} - -@end diff --git a/testing/Examples/CGShadingCreate/main.m b/testing/Examples/CGShadingCreate/main.m deleted file mode 100644 index 8faad9ed..00000000 --- a/testing/Examples/CGShadingCreate/main.m +++ /dev/null @@ -1,5 +0,0 @@ -#import - -int main(int argc, char *argv[]) { - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/testing/Examples/CGShadingCreateAxial/CGShadingCreateAxial.xcodeproj/project.pbxproj b/testing/Examples/CGShadingCreateAxial/CGShadingCreateAxial.xcodeproj/project.pbxproj deleted file mode 100644 index 4ea7bfac..00000000 --- a/testing/Examples/CGShadingCreateAxial/CGShadingCreateAxial.xcodeproj/project.pbxproj +++ /dev/null @@ -1,414 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXAggregateTarget section */ - FEFC49140BB219B3006628BF /* CGShadingCreateAxial */ = { - isa = PBXAggregateTarget; - buildConfigurationList = FEFC49210BB21A04006628BF /* Build configuration list for PBXAggregateTarget "CGShadingCreateAxial" */; - buildPhases = ( - ); - dependencies = ( - FEFC49160BB219B7006628BF /* PBXTargetDependency */, - FEFC49180BB219BA006628BF /* PBXTargetDependency */, - ); - name = CGShadingCreateAxial; - productName = CGShadingCreateAxial; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FEFC48F00BB21906006628BF /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - FEFC48F10BB21906006628BF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - FEFC48F30BB21906006628BF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - FEFC48F50BB21906006628BF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FEFC49240BB21A07006628BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; - FEFC49250BB21A08006628BF /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; - FEFC492A0BB21B1D006628BF /* GradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFC49290BB21B1D006628BF /* GradientView.m */; }; - FEFC492B0BB21B1D006628BF /* GradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = FEFC49290BB21B1D006628BF /* GradientView.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FEFC49150BB219B7006628BF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8D1107260486CEB800E47090; - remoteInfo = "CGShadingCreateAxial-Mac"; - }; - FEFC49170BB219BA006628BF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = FEFC48EE0BB21906006628BF; - remoteInfo = "CGShadingCreateAxial-Windows"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* CGShadingCreateAxial.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CGShadingCreateAxial.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEFC48F90BB21906006628BF /* CGShadingCreateAxial.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CGShadingCreateAxial.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEFC49280BB21B1D006628BF /* GradientView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GradientView.h; sourceTree = ""; }; - FEFC49290BB21B1D006628BF /* GradientView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = GradientView.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48F40BB21906006628BF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F50BB21906006628BF /* Cocoa.framework in Frameworks */, - FEFC49240BB21A07006628BF /* Foundation.framework in Frameworks */, - FEFC49250BB21A08006628BF /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* CGShadingCreateAxial.app */, - FEFC48F90BB21906006628BF /* CGShadingCreateAxial.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* CGShadingCreateAxial */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = CGShadingCreateAxial; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 29B97316FDCFA39411CA2CEA /* main.m */, - FEFC49280BB21B1D006628BF /* GradientView.h */, - FEFC49290BB21B1D006628BF /* GradientView.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* CGShadingCreateAxial-Mac */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "CGShadingCreateAxial-Mac" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "CGShadingCreateAxial-Mac"; - productInstallPath = "$(HOME)/Applications"; - productName = CGShadingCreateAxial; - productReference = 8D1107320486CEB800E47090 /* CGShadingCreateAxial.app */; - productType = "com.apple.product-type.application"; - }; - FEFC48EE0BB21906006628BF /* CGShadingCreateAxial-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = FEFC48F60BB21906006628BF /* Build configuration list for PBXNativeTarget "CGShadingCreateAxial-Windows" */; - buildPhases = ( - FEFC48EF0BB21906006628BF /* Resources */, - FEFC48F20BB21906006628BF /* Sources */, - FEFC48F40BB21906006628BF /* Frameworks */, - FEB8F1280D3DB78C00754380 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "CGShadingCreateAxial-Windows"; - productInstallPath = "$(HOME)/Applications"; - productName = CGShadingCreateAxial; - productReference = FEFC48F90BB21906006628BF /* CGShadingCreateAxial.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CGShadingCreateAxial" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CGShadingCreateAxial */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* CGShadingCreateAxial-Mac */, - FEFC48EE0BB21906006628BF /* CGShadingCreateAxial-Windows */, - FEFC49140BB219B3006628BF /* CGShadingCreateAxial */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */, - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48EF0BB21906006628BF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F00BB21906006628BF /* MainMenu.nib in Resources */, - FEFC48F10BB21906006628BF /* InfoPlist.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FEB8F1280D3DB78C00754380 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - FEFC492A0BB21B1D006628BF /* GradientView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEFC48F20BB21906006628BF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEFC48F30BB21906006628BF /* main.m in Sources */, - FEFC492B0BB21B1D006628BF /* GradientView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FEFC49160BB219B7006628BF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8D1107260486CEB800E47090 /* CGShadingCreateAxial-Mac */; - targetProxy = FEFC49150BB219B7006628BF /* PBXContainerItemProxy */; - }; - FEFC49180BB219BA006628BF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = FEFC48EE0BB21906006628BF /* CGShadingCreateAxial-Windows */; - targetProxy = FEFC49170BB219BA006628BF /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 29B97319FDCFA39411CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - INFOPLIST_FILE = Info.plist; - PRODUCT_NAME = CGShadingCreateAxial; - SYMROOT = build/Mac; - WRAPPER_EXTENSION = app; - }; - name = Deployment; - }; - C01FCF5008A954540054247B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - }; - name = Deployment; - }; - FEFC48F80BB21906006628BF /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INFOPLIST_FILE = Info.plist; - OTHER_LDFLAGS = ( - "-Wl,--enable-auto-import", - "-mwindows", - ); - PREBINDING = NO; - PRODUCT_NAME = CGShadingCreateAxial; - SYMROOT = build/Windows; - }; - name = Deployment; - }; - FEFC49220BB21A04006628BF /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - PRODUCT_NAME = CGShadingCreateAxial; - ZERO_LINK = NO; - }; - name = Deployment; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "CGShadingCreateAxial-Mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "CGShadingCreateAxial" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FEFC48F60BB21906006628BF /* Build configuration list for PBXNativeTarget "CGShadingCreateAxial-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEFC48F80BB21906006628BF /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FEFC49210BB21A04006628BF /* Build configuration list for PBXAggregateTarget "CGShadingCreateAxial" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEFC49220BB21A04006628BF /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/testing/Examples/CGShadingCreateAxial/English.lproj/InfoPlist.strings b/testing/Examples/CGShadingCreateAxial/English.lproj/InfoPlist.strings deleted file mode 100644 index 997688e2fd53fd8d44166a1895730ea43ed42f47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmW-ZOAf&R6h+V2DjLH^R7?!S$b{#$5lbf^EkLAW3{7RTh oDE+A9pSg65nVdc!``%jXwyDfqOK2p - - - - IBDocumentLocation - 135 107 356 240 0 0 1680 1028 - IBEditorPositions - - 29 - 132 352 338 44 0 0 1680 1028 - - IBFramework Version - 446.1 - IBOpenObjects - - 29 - 21 - - IBSystem Version - 8L2127 - IBUsesTextArchiving - - - diff --git a/testing/Examples/CGShadingCreateAxial/English.lproj/MainMenu.nib/keyedobjects.nib b/testing/Examples/CGShadingCreateAxial/English.lproj/MainMenu.nib/keyedobjects.nib deleted file mode 100644 index eae048ab..00000000 --- a/testing/Examples/CGShadingCreateAxial/English.lproj/MainMenu.nib/keyedobjects.nib +++ /dev/null @@ -1,6659 +0,0 @@ - - - - - $archiver - NSKeyedArchiver - $objects - - $null - - $class - - CF$UID - 448 - - NSAccessibilityConnectors - - CF$UID - 445 - - NSAccessibilityOidsKeys - - CF$UID - 446 - - NSAccessibilityOidsValues - - CF$UID - 447 - - NSClassesKeys - - CF$UID - 337 - - NSClassesValues - - CF$UID - 338 - - NSConnections - - CF$UID - 59 - - NSFontManager - - CF$UID - 0 - - NSFramework - - CF$UID - 6 - - NSNamesKeys - - CF$UID - 298 - - NSNamesValues - - CF$UID - 299 - - NSNextOid - 221 - NSObjectsKeys - - CF$UID - 218 - - NSObjectsValues - - CF$UID - 297 - - NSOidsKeys - - CF$UID - 339 - - NSOidsValues - - CF$UID - 340 - - NSRoot - - CF$UID - 2 - - NSVisibleWindows - - CF$UID - 7 - - - - $class - - CF$UID - 5 - - NSClassName - - CF$UID - 3 - - - - $class - - CF$UID - 4 - - NS.string - NSApplication - - - $classes - - NSMutableString - NSString - NSObject - - $classname - NSMutableString - - - $classes - - NSCustomObject - NSObject - - $classname - NSCustomObject - - - $class - - CF$UID - 4 - - NS.string - IBCocoaFramework - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 8 - - - - - $class - - CF$UID - 58 - - NSMaxSize - - CF$UID - 57 - - NSMinSize - - CF$UID - 56 - - NSScreenRect - - CF$UID - 55 - - NSViewClass - - CF$UID - 12 - - NSWTFlags - 1886912512 - NSWindowBacking - 2 - NSWindowClass - - CF$UID - 11 - - NSWindowRect - - CF$UID - 9 - - NSWindowStyleMask - 14 - NSWindowTitle - - CF$UID - 10 - - NSWindowView - - CF$UID - 13 - - - {{529, 371}, {596, 523}} - Window - NSWindow - - $class - - CF$UID - 4 - - NS.string - View - - - $class - - CF$UID - 54 - - NSFrame - - CF$UID - 53 - - NSNextResponder - - CF$UID - 0 - - NSSubviews - - CF$UID - 14 - - - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 15 - - - CF$UID - 20 - - - CF$UID - 28 - - - CF$UID - 35 - - - CF$UID - 48 - - - - - $class - - CF$UID - 19 - - NSClassName - - CF$UID - 17 - - NSExtension - - CF$UID - 18 - - NSFrame - - CF$UID - 16 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 18 - - {{0, 68}, {616, 455}} - GradientView - NSView - - $classes - - NSCustomView - NSView - NSResponder - NSObject - - $classname - NSCustomView - - - $class - - CF$UID - 27 - - NSColor - - CF$UID - 25 - - NSDragTypes - - CF$UID - 21 - - NSEnabled - - NSFrame - - CF$UID - 24 - - NSIsBordered - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 292 - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 22 - - - - - $class - - CF$UID - 4 - - NS.string - NSColor pasteboard type - - - $classes - - NSMutableSet - NSSet - NSObject - - $classname - NSMutableSet - - {{106, 20}, {52, 24}} - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSWhite - - MAA= - - - - $classes - - NSColor - NSObject - - $classname - NSColor - - - $classes - - NSColorWell - NSControl - NSView - NSResponder - NSObject - - $classname - NSColorWell - - - $class - - CF$UID - 27 - - NSColor - - CF$UID - 32 - - NSDragTypes - - CF$UID - 29 - - NSEnabled - - NSFrame - - CF$UID - 31 - - NSIsBordered - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 289 - - - $class - - CF$UID - 23 - - NS.objects - - - CF$UID - 30 - - - - - $class - - CF$UID - 4 - - NS.string - NSColor pasteboard type - - {{438, 20}, {52, 24}} - - $class - - CF$UID - 26 - - NSColorSpace - 3 - NSCustomColorSpace - - CF$UID - 33 - - NSWhite - - MQA= - - - - $class - - CF$UID - 34 - - NSID - 2 - - - $classes - - NSColorSpace - NSObject - - $classname - NSColorSpace - - - $class - - CF$UID - 47 - - NSCell - - CF$UID - 37 - - NSEnabled - - NSFrame - - CF$UID - 36 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 289 - - {{496, 23}, {82, 18}} - - $class - - CF$UID - 46 - - NSAlternateContents - - CF$UID - 45 - - NSAlternateImage - - CF$UID - 42 - - NSButtonFlags - 1211912703 - NSButtonFlags2 - 2 - NSCellFlags - 67239424 - NSCellFlags2 - 0 - NSContents - - CF$UID - 38 - - NSControlView - - CF$UID - 35 - - NSKeyEquivalent - - CF$UID - 45 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 39 - - - Extend - - $class - - CF$UID - 41 - - NSName - - CF$UID - 40 - - NSSize - 13 - NSfFlags - 1044 - - LucidaGrande - - $classes - - NSFont - NSObject - - $classname - NSFont - - - $class - - CF$UID - 44 - - NSImageName - - CF$UID - 43 - - - NSSwitch - - $classes - - NSButtonImageSource - NSObject - - $classname - NSButtonImageSource - - - - $classes - - NSButtonCell - %NSButtonCell - NSActionCell - NSCell - NSObject - - $classname - NSButtonCell - - - $classes - - NSButton - NSControl - NSView - NSResponder - NSObject - - $classname - NSButton - - - $class - - CF$UID - 47 - - NSCell - - CF$UID - 50 - - NSEnabled - - NSFrame - - CF$UID - 49 - - NSNextResponder - - CF$UID - 13 - - NSSuperview - - CF$UID - 13 - - NSvFlags - 292 - - {{18, 23}, {82, 18}} - - $class - - CF$UID - 46 - - NSAlternateContents - - CF$UID - 45 - - NSAlternateImage - - CF$UID - 42 - - NSButtonFlags - 1210864127 - NSButtonFlags2 - 2 - NSCellFlags - 67239424 - NSCellFlags2 - 67108864 - NSContents - - CF$UID - 51 - - NSControlView - - CF$UID - 48 - - NSKeyEquivalent - - CF$UID - 45 - - NSPeriodicDelay - 200 - NSPeriodicInterval - 25 - NSSupport - - CF$UID - 39 - - - Extend - - $classes - - NSMutableArray - NSArray - NSObject - - $classname - NSMutableArray - - {{1, 9}, {596, 523}} - - $classes - - NSView - NSResponder - NSObject - - $classname - NSView - - {{0, 0}, {1680, 1028}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - $classes - - NSWindowTemplate - NSObject - - $classname - NSWindowTemplate - - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 60 - - - CF$UID - 74 - - - CF$UID - 78 - - - CF$UID - 84 - - - CF$UID - 89 - - - CF$UID - 95 - - - CF$UID - 100 - - - CF$UID - 106 - - - CF$UID - 110 - - - CF$UID - 115 - - - CF$UID - 119 - - - CF$UID - 123 - - - CF$UID - 129 - - - CF$UID - 134 - - - CF$UID - 139 - - - CF$UID - 144 - - - CF$UID - 149 - - - CF$UID - 154 - - - CF$UID - 160 - - - CF$UID - 165 - - - CF$UID - 169 - - - CF$UID - 174 - - - CF$UID - 178 - - - CF$UID - 182 - - - CF$UID - 188 - - - CF$UID - 192 - - - CF$UID - 196 - - - CF$UID - 200 - - - CF$UID - 205 - - - CF$UID - 210 - - - CF$UID - 212 - - - CF$UID - 214 - - - CF$UID - 216 - - - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 72 - - NSSource - - CF$UID - 61 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 64 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 62 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 63 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 288 - - NSName - - CF$UID - 290 - - NSTitle - - CF$UID - 287 - - - Minimize - m - - $class - - CF$UID - 68 - - NSClassName - - CF$UID - 66 - - NSResourceName - - CF$UID - 67 - - - NSImage - NSMenuCheckmark - - $classes - - NSCustomResource - %NSCustomResource - NSObject - - $classname - NSCustomResource - - - $class - - CF$UID - 68 - - NSClassName - - CF$UID - 66 - - NSResourceName - - CF$UID - 70 - - - NSMenuMixedState - - $classes - - NSMenuItem - NSObject - - $classname - NSMenuItem - - - $class - - CF$UID - 4 - - NS.string - performMiniaturize: - - - $classes - - NSNibControlConnector - NSNibConnector - NSObject - - $classname - NSNibControlConnector - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 77 - - NSSource - - CF$UID - 75 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 62 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 76 - - - Bring All to Front - - $class - - CF$UID - 4 - - NS.string - arrangeInFront: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 83 - - NSSource - - CF$UID - 79 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 82 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 81 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 252 - - NSTitle - - CF$UID - 251 - - - Print… - p - - $class - - CF$UID - 4 - - NS.string - print: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 88 - - NSSource - - CF$UID - 85 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 87 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 86 - - - Page Setup… - P - - $class - - CF$UID - 4 - - NS.string - runPageLayout: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 94 - - NSSource - - CF$UID - 90 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 93 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 91 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 92 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 294 - - NSTitle - - CF$UID - 292 - - - NewApplication Help - ? - - $class - - CF$UID - 4 - - NS.string - showHelp: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 99 - - NSSource - - CF$UID - 96 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 97 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 98 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 260 - - NSName - - CF$UID - 261 - - NSTitle - - CF$UID - 259 - - - Clear Menu - - $class - - CF$UID - 4 - - NS.string - clearRecentDocuments: - - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 105 - - NSSource - - CF$UID - 101 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 104 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 103 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 233 - - NSName - - CF$UID - 247 - - NSTitle - - CF$UID - 231 - - - Quit NewApplication - q - - $class - - CF$UID - 4 - - NS.string - terminate: - - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 109 - - NSSource - - CF$UID - 107 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 108 - - - About NewApplication - - $class - - CF$UID - 4 - - NS.string - orderFrontStandardAboutPanel: - - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 114 - - NSSource - - CF$UID - 111 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 113 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 112 - - - Hide Others - h - hideOtherApplications: - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 118 - - NSSource - - CF$UID - 116 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 113 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 117 - - - Hide NewApplication - hide: - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 122 - - NSSource - - CF$UID - 120 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 121 - - - Show All - unhideAllApplications: - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 128 - - NSSource - - CF$UID - 124 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 127 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 126 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 276 - - NSTitle - - CF$UID - 275 - - - Cut - x - - $class - - CF$UID - 4 - - NS.string - cut: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 133 - - NSSource - - CF$UID - 130 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 132 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 131 - - - Paste - v - - $class - - CF$UID - 4 - - NS.string - paste: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 138 - - NSSource - - CF$UID - 135 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 137 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 136 - - - Redo - Z - - $class - - CF$UID - 4 - - NS.string - redo: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 143 - - NSSource - - CF$UID - 140 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 142 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 141 - - - Select All - a - - $class - - CF$UID - 4 - - NS.string - selectAll: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 148 - - NSSource - - CF$UID - 145 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 147 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 146 - - - Undo - z - - $class - - CF$UID - 4 - - NS.string - undo: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 153 - - NSSource - - CF$UID - 150 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 152 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 151 - - - Copy - c - - $class - - CF$UID - 4 - - NS.string - copy: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 159 - - NSSource - - CF$UID - 155 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 158 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 156 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 157 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 220 - - NSTitle - - CF$UID - 219 - - - Spelling… - : - - $class - - CF$UID - 4 - - NS.string - showGuessPanel: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 164 - - NSSource - - CF$UID - 161 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 163 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 156 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 162 - - - Check Spelling - ; - - $class - - CF$UID - 4 - - NS.string - checkSpelling: - - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 168 - - NSSource - - CF$UID - 166 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 156 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 167 - - - Check Spelling as You Type - toggleContinuousSpellChecking: - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 173 - - NSSource - - CF$UID - 170 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 172 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 171 - - - Close - w - performClose: - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 177 - - NSSource - - CF$UID - 175 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 176 - - - Delete - delete: - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 181 - - NSSource - - CF$UID - 179 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 62 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 180 - - - Zoom - performZoom: - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 187 - - NSSource - - CF$UID - 183 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 186 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 184 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTag - 1 - NSTitle - - CF$UID - 185 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 282 - - NSTitle - - CF$UID - 281 - - - Find… - f - performFindPanelAction: - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 187 - - NSSource - - CF$UID - 189 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 191 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 184 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTag - 2 - NSTitle - - CF$UID - 190 - - - Find Next - g - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 187 - - NSSource - - CF$UID - 193 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 195 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 184 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTag - 3 - NSTitle - - CF$UID - 194 - - - Find Previous - G - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 187 - - NSSource - - CF$UID - 197 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 199 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 184 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTag - 7 - NSTitle - - CF$UID - 198 - - - Use Selection for Find - e - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 204 - - NSSource - - CF$UID - 201 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 203 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 184 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 202 - - - Jump to Selection - j - centerSelectionInVisibleArea: - - $class - - CF$UID - 73 - - NSLabel - - CF$UID - 209 - - NSSource - - CF$UID - 206 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 208 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 207 - - - Paste and Match Style - V - pasteAsPlainText: - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 211 - - NSSource - - CF$UID - 20 - - - takeStartColorFromSender: - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 213 - - NSSource - - CF$UID - 28 - - - takeEndColorFromSender: - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 215 - - NSSource - - CF$UID - 48 - - - takeExtendStartFromSender - - $class - - CF$UID - 73 - - NSDestination - - CF$UID - 15 - - NSLabel - - CF$UID - 217 - - NSSource - - CF$UID - 35 - - - takeExtendEndFromSender - - $class - - CF$UID - 296 - - NS.objects - - - CF$UID - 156 - - - CF$UID - 222 - - - CF$UID - 223 - - - CF$UID - 226 - - - CF$UID - 130 - - - CF$UID - 227 - - - CF$UID - 285 - - - CF$UID - 91 - - - CF$UID - 85 - - - CF$UID - 263 - - - CF$UID - 120 - - - CF$UID - 166 - - - CF$UID - 145 - - - CF$UID - 183 - - - CF$UID - 201 - - - CF$UID - 75 - - - CF$UID - 61 - - - CF$UID - 278 - - - CF$UID - 256 - - - CF$UID - 135 - - - CF$UID - 238 - - - CF$UID - 101 - - - CF$UID - 206 - - - CF$UID - 230 - - - CF$UID - 48 - - - CF$UID - 272 - - - CF$UID - 266 - - - CF$UID - 246 - - - CF$UID - 107 - - - CF$UID - 189 - - - CF$UID - 245 - - - CF$UID - 8 - - - CF$UID - 102 - - - CF$UID - 62 - - - CF$UID - 79 - - - CF$UID - 184 - - - CF$UID - 97 - - - CF$UID - 96 - - - CF$UID - 15 - - - CF$UID - 277 - - - CF$UID - 175 - - - CF$UID - 241 - - - CF$UID - 234 - - - CF$UID - 155 - - - CF$UID - 269 - - - CF$UID - 80 - - - CF$UID - 116 - - - CF$UID - 193 - - - CF$UID - 262 - - - CF$UID - 124 - - - CF$UID - 20 - - - CF$UID - 35 - - - CF$UID - 291 - - - CF$UID - 140 - - - CF$UID - 150 - - - CF$UID - 13 - - - CF$UID - 235 - - - CF$UID - 179 - - - CF$UID - 90 - - - CF$UID - 125 - - - CF$UID - 271 - - - CF$UID - 170 - - - CF$UID - 111 - - - CF$UID - 161 - - - CF$UID - 253 - - - CF$UID - 197 - - - CF$UID - 283 - - - CF$UID - 28 - - - CF$UID - 248 - - - CF$UID - 289 - - - - Spelling - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 155 - - - CF$UID - 161 - - - CF$UID - 166 - - - - - $classes - - NSMenu - NSObject - - $classname - NSMenu - - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 225 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 224 - - - Open... - o - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 229 - - NSName - - CF$UID - 295 - - NSTitle - - CF$UID - 228 - - - MainMenu - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 230 - - - CF$UID - 248 - - - CF$UID - 272 - - - CF$UID - 285 - - - CF$UID - 291 - - - - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 232 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 227 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 102 - - NSTitle - - CF$UID - 231 - - - NewApplication - submenuAction: - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 107 - - - CF$UID - 234 - - - CF$UID - 235 - - - CF$UID - 226 - - - CF$UID - 238 - - - CF$UID - 245 - - - CF$UID - 116 - - - CF$UID - 111 - - - CF$UID - 120 - - - CF$UID - 246 - - - CF$UID - 101 - - - - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 237 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 236 - - - Preferences… - , - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 240 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 241 - - NSTitle - - CF$UID - 239 - - - Services - submenuAction: - - $class - - CF$UID - 221 - - NSMenuItems - - CF$UID - 243 - - NSName - - CF$UID - 244 - - NSTitle - - CF$UID - 242 - - - - $class - - CF$UID - 4 - - NS.string - Services - - - $class - - CF$UID - 52 - - NS.objects - - - _NSServicesMenu - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - _NSAppleMenu - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 250 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 227 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 80 - - NSTitle - - CF$UID - 249 - - - File - submenuAction: - - $class - - CF$UID - 4 - - NS.string - File - - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 253 - - - CF$UID - 223 - - - CF$UID - 256 - - - CF$UID - 262 - - - CF$UID - 170 - - - CF$UID - 263 - - - CF$UID - 266 - - - CF$UID - 269 - - - CF$UID - 271 - - - CF$UID - 85 - - - CF$UID - 79 - - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 255 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 254 - - - New - n - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 258 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 97 - - NSTitle - - CF$UID - 257 - - - Open Recent - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Open Recent - - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 96 - - - - _NSRecentDocumentsMenu - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 265 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 264 - - - Save - s - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 268 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 267 - - - Save As… - S - - $class - - CF$UID - 71 - - NSKeyEquiv - - CF$UID - 45 - - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 270 - - - Revert - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 80 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 274 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 227 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 125 - - NSTitle - - CF$UID - 273 - - - Edit - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Edit - - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 145 - - - CF$UID - 135 - - - CF$UID - 277 - - - CF$UID - 124 - - - CF$UID - 150 - - - CF$UID - 130 - - - CF$UID - 206 - - - CF$UID - 175 - - - CF$UID - 140 - - - CF$UID - 222 - - - CF$UID - 278 - - - CF$UID - 283 - - - - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 280 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 184 - - NSTitle - - CF$UID - 279 - - - Find - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Find - - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 183 - - - CF$UID - 189 - - - CF$UID - 193 - - - CF$UID - 197 - - - CF$UID - 201 - - - - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 284 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 125 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 156 - - NSTitle - - CF$UID - 219 - - - submenuAction: - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 286 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 227 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 62 - - NSTitle - - CF$UID - 10 - - - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Window - - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 61 - - - CF$UID - 179 - - - CF$UID - 289 - - - CF$UID - 75 - - - - - $class - - CF$UID - 71 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 62 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSTitle - - CF$UID - 45 - - - _NSWindowsMenu - - $class - - CF$UID - 71 - - NSAction - - CF$UID - 293 - - NSKeyEquiv - - CF$UID - 45 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 227 - - NSMixedImage - - CF$UID - 69 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 65 - - NSSubmenu - - CF$UID - 91 - - NSTitle - - CF$UID - 292 - - - Help - submenuAction: - - $class - - CF$UID - 52 - - NS.objects - - - CF$UID - 90 - - - - _NSMainMenu - - $classes - - NSArray - NSObject - - $classname - NSArray - - - $class - - CF$UID - 296 - - NS.objects - - - CF$UID - 283 - - - CF$UID - 125 - - - CF$UID - 80 - - - CF$UID - 102 - - - CF$UID - 125 - - - CF$UID - 2 - - - CF$UID - 227 - - - CF$UID - 291 - - - CF$UID - 80 - - - CF$UID - 80 - - - CF$UID - 102 - - - CF$UID - 156 - - - CF$UID - 125 - - - CF$UID - 184 - - - CF$UID - 184 - - - CF$UID - 62 - - - CF$UID - 62 - - - CF$UID - 125 - - - CF$UID - 80 - - - CF$UID - 125 - - - CF$UID - 102 - - - CF$UID - 102 - - - CF$UID - 125 - - - CF$UID - 227 - - - CF$UID - 13 - - - CF$UID - 227 - - - CF$UID - 80 - - - CF$UID - 102 - - - CF$UID - 102 - - - CF$UID - 184 - - - CF$UID - 102 - - - CF$UID - 2 - - - CF$UID - 230 - - - CF$UID - 285 - - - CF$UID - 80 - - - CF$UID - 278 - - - CF$UID - 256 - - - CF$UID - 97 - - - CF$UID - 13 - - - CF$UID - 125 - - - CF$UID - 125 - - - CF$UID - 238 - - - CF$UID - 102 - - - CF$UID - 156 - - - CF$UID - 80 - - - CF$UID - 248 - - - CF$UID - 102 - - - CF$UID - 184 - - - CF$UID - 80 - - - CF$UID - 125 - - - CF$UID - 13 - - - CF$UID - 13 - - - CF$UID - 227 - - - CF$UID - 125 - - - CF$UID - 125 - - - CF$UID - 8 - - - CF$UID - 102 - - - CF$UID - 62 - - - CF$UID - 91 - - - CF$UID - 272 - - - CF$UID - 80 - - - CF$UID - 80 - - - CF$UID - 102 - - - CF$UID - 156 - - - CF$UID - 80 - - - CF$UID - 184 - - - CF$UID - 125 - - - CF$UID - 13 - - - CF$UID - 227 - - - CF$UID - 62 - - - - - $class - - CF$UID - 296 - - NS.objects - - - CF$UID - 156 - - - CF$UID - 222 - - - CF$UID - 223 - - - CF$UID - 130 - - - CF$UID - 227 - - - CF$UID - 91 - - - CF$UID - 85 - - - CF$UID - 263 - - - CF$UID - 166 - - - CF$UID - 145 - - - CF$UID - 183 - - - CF$UID - 201 - - - CF$UID - 278 - - - CF$UID - 135 - - - CF$UID - 101 - - - CF$UID - 2 - - - CF$UID - 48 - - - CF$UID - 272 - - - CF$UID - 266 - - - CF$UID - 189 - - - CF$UID - 8 - - - CF$UID - 62 - - - CF$UID - 79 - - - CF$UID - 184 - - - CF$UID - 175 - - - CF$UID - 277 - - - CF$UID - 15 - - - CF$UID - 155 - - - CF$UID - 269 - - - CF$UID - 80 - - - CF$UID - 193 - - - CF$UID - 262 - - - CF$UID - 124 - - - CF$UID - 20 - - - CF$UID - 35 - - - CF$UID - 291 - - - CF$UID - 140 - - - CF$UID - 150 - - - CF$UID - 235 - - - CF$UID - 90 - - - CF$UID - 125 - - - CF$UID - 271 - - - CF$UID - 170 - - - CF$UID - 283 - - - CF$UID - 161 - - - CF$UID - 253 - - - CF$UID - 197 - - - CF$UID - 248 - - - CF$UID - 28 - - - CF$UID - 289 - - - - - $class - - CF$UID - 296 - - NS.objects - - - CF$UID - 300 - - - CF$UID - 301 - - - CF$UID - 302 - - - CF$UID - 303 - - - CF$UID - 304 - - - CF$UID - 305 - - - CF$UID - 306 - - - CF$UID - 307 - - - CF$UID - 308 - - - CF$UID - 309 - - - CF$UID - 308 - - - CF$UID - 310 - - - CF$UID - 311 - - - CF$UID - 312 - - - CF$UID - 313 - - - CF$UID - 314 - - - CF$UID - 315 - - - CF$UID - 308 - - - CF$UID - 316 - - - CF$UID - 317 - - - CF$UID - 10 - - - CF$UID - 318 - - - CF$UID - 320 - - - CF$UID - 300 - - - CF$UID - 317 - - - CF$UID - 308 - - - CF$UID - 321 - - - CF$UID - 322 - - - CF$UID - 323 - - - CF$UID - 302 - - - CF$UID - 324 - - - CF$UID - 325 - - - CF$UID - 324 - - - CF$UID - 326 - - - CF$UID - 327 - - - CF$UID - 328 - - - CF$UID - 329 - - - CF$UID - 310 - - - CF$UID - 330 - - - CF$UID - 302 - - - CF$UID - 300 - - - CF$UID - 331 - - - CF$UID - 332 - - - CF$UID - 333 - - - CF$UID - 334 - - - CF$UID - 335 - - - CF$UID - 309 - - - CF$UID - 302 - - - CF$UID - 336 - - - CF$UID - 302 - - - - NSMenu - NSMenuItem12 - - $class - - CF$UID - 4 - - NS.string - - - NSMenuItem9 - - $class - - CF$UID - 4 - - NS.string - MainMenu - - - $class - - CF$UID - 4 - - NS.string - 2 - - - $class - - CF$UID - 4 - - NS.string - 5 - - - $class - - CF$UID - 4 - - NS.string - 3 - - NSMenuItem - NSMenuItem2 - NSMenuItem1 - NSMenuItem7 - NSMenuItem11 - 1111 - - $class - - CF$UID - 4 - - NS.string - File's Owner - - NSButton41 - - $class - - CF$UID - 4 - - NS.string - 8 - - NSMenuItem4 - - $class - - CF$UID - 319 - - - - $classes - - NSNull - %NSNull - NSObject - - $classname - NSNull - - - $class - - CF$UID - 4 - - NS.string - 6 - - View - NSMenuItem6 - - $class - - CF$UID - 4 - - NS.string - 10 - - NSMenuItem3 - - $class - - CF$UID - 4 - - NS.string - 7 - - 2 - NSButton4 - - $class - - CF$UID - 4 - - NS.string - 1 - - NSMenuItem10 - 121 - - $class - - CF$UID - 4 - - NS.string - 2 - - - $class - - CF$UID - 4 - - NS.string - 1 - - NSMenuItem13 - NSMenuItem8 - - $class - - CF$UID - 4 - - NS.string - 9 - - 21 - - $class - - CF$UID - 296 - - NS.objects - - - - $class - - CF$UID - 296 - - NS.objects - - - - $class - - CF$UID - 296 - - NS.objects - - - CF$UID - 129 - - - CF$UID - 140 - - - CF$UID - 174 - - - CF$UID - 95 - - - CF$UID - 154 - - - CF$UID - 101 - - - CF$UID - 85 - - - CF$UID - 223 - - - CF$UID - 13 - - - CF$UID - 179 - - - CF$UID - 178 - - - CF$UID - 161 - - - CF$UID - 214 - - - CF$UID - 241 - - - CF$UID - 245 - - - CF$UID - 278 - - - CF$UID - 183 - - - CF$UID - 111 - - - CF$UID - 291 - - - CF$UID - 182 - - - CF$UID - 144 - - - CF$UID - 97 - - - CF$UID - 277 - - - CF$UID - 28 - - - CF$UID - 170 - - - CF$UID - 188 - - - CF$UID - 115 - - - CF$UID - 100 - - - CF$UID - 193 - - - CF$UID - 79 - - - CF$UID - 246 - - - CF$UID - 272 - - - CF$UID - 134 - - - CF$UID - 216 - - - CF$UID - 145 - - - CF$UID - 130 - - - CF$UID - 192 - - - CF$UID - 110 - - - CF$UID - 119 - - - CF$UID - 62 - - - CF$UID - 155 - - - CF$UID - 102 - - - CF$UID - 266 - - - CF$UID - 201 - - - CF$UID - 289 - - - CF$UID - 196 - - - CF$UID - 235 - - - CF$UID - 123 - - - CF$UID - 175 - - - CF$UID - 160 - - - CF$UID - 200 - - - CF$UID - 60 - - - CF$UID - 20 - - - CF$UID - 271 - - - CF$UID - 124 - - - CF$UID - 84 - - - CF$UID - 35 - - - CF$UID - 107 - - - CF$UID - 238 - - - CF$UID - 91 - - - CF$UID - 222 - - - CF$UID - 205 - - - CF$UID - 149 - - - CF$UID - 248 - - - CF$UID - 80 - - - CF$UID - 116 - - - CF$UID - 8 - - - CF$UID - 106 - - - CF$UID - 256 - - - CF$UID - 135 - - - CF$UID - 166 - - - CF$UID - 210 - - - CF$UID - 283 - - - CF$UID - 184 - - - CF$UID - 2 - - - CF$UID - 189 - - - CF$UID - 139 - - - CF$UID - 120 - - - CF$UID - 212 - - - CF$UID - 253 - - - CF$UID - 150 - - - CF$UID - 15 - - - CF$UID - 61 - - - CF$UID - 48 - - - CF$UID - 263 - - - CF$UID - 78 - - - CF$UID - 227 - - - CF$UID - 197 - - - CF$UID - 125 - - - CF$UID - 262 - - - CF$UID - 165 - - - CF$UID - 234 - - - CF$UID - 206 - - - CF$UID - 285 - - - CF$UID - 89 - - - CF$UID - 169 - - - CF$UID - 269 - - - CF$UID - 96 - - - CF$UID - 230 - - - CF$UID - 75 - - - CF$UID - 226 - - - CF$UID - 74 - - - CF$UID - 156 - - - CF$UID - 90 - - - - - $class - - CF$UID - 296 - - NS.objects - - - CF$UID - 341 - - - CF$UID - 342 - - - CF$UID - 343 - - - CF$UID - 344 - - - CF$UID - 345 - - - CF$UID - 346 - - - CF$UID - 347 - - - CF$UID - 348 - - - CF$UID - 349 - - - CF$UID - 350 - - - CF$UID - 351 - - - CF$UID - 352 - - - CF$UID - 353 - - - CF$UID - 354 - - - CF$UID - 355 - - - CF$UID - 356 - - - CF$UID - 357 - - - CF$UID - 358 - - - CF$UID - 359 - - - CF$UID - 360 - - - CF$UID - 361 - - - CF$UID - 362 - - - CF$UID - 363 - - - CF$UID - 364 - - - CF$UID - 365 - - - CF$UID - 366 - - - CF$UID - 367 - - - CF$UID - 368 - - - CF$UID - 369 - - - CF$UID - 370 - - - CF$UID - 371 - - - CF$UID - 372 - - - CF$UID - 373 - - - CF$UID - 374 - - - CF$UID - 375 - - - CF$UID - 376 - - - CF$UID - 377 - - - CF$UID - 378 - - - CF$UID - 379 - - - CF$UID - 380 - - - CF$UID - 381 - - - CF$UID - 382 - - - CF$UID - 383 - - - CF$UID - 384 - - - CF$UID - 385 - - - CF$UID - 386 - - - CF$UID - 387 - - - CF$UID - 388 - - - CF$UID - 389 - - - CF$UID - 390 - - - CF$UID - 391 - - - CF$UID - 392 - - - CF$UID - 393 - - - CF$UID - 394 - - - CF$UID - 395 - - - CF$UID - 396 - - - CF$UID - 397 - - - CF$UID - 398 - - - CF$UID - 399 - - - CF$UID - 400 - - - CF$UID - 401 - - - CF$UID - 402 - - - CF$UID - 403 - - - CF$UID - 404 - - - CF$UID - 405 - - - CF$UID - 406 - - - CF$UID - 407 - - - CF$UID - 408 - - - CF$UID - 409 - - - CF$UID - 410 - - - CF$UID - 411 - - - CF$UID - 412 - - - CF$UID - 413 - - - CF$UID - 414 - - - CF$UID - 415 - - - CF$UID - 416 - - - CF$UID - 417 - - - CF$UID - 418 - - - CF$UID - 419 - - - CF$UID - 420 - - - CF$UID - 421 - - - CF$UID - 422 - - - CF$UID - 423 - - - CF$UID - 424 - - - CF$UID - 425 - - - CF$UID - 426 - - - CF$UID - 427 - - - CF$UID - 428 - - - CF$UID - 429 - - - CF$UID - 430 - - - CF$UID - 431 - - - CF$UID - 432 - - - CF$UID - 433 - - - CF$UID - 434 - - - CF$UID - 435 - - - CF$UID - 436 - - - CF$UID - 437 - - - CF$UID - 438 - - - CF$UID - 439 - - - CF$UID - 440 - - - CF$UID - 441 - - - CF$UID - 442 - - - CF$UID - 443 - - - CF$UID - 444 - - - - 176 - 172 - 195 - 127 - 188 - 136 - 77 - 72 - 2 - 197 - 198 - 189 - 219 - 130 - 144 - 168 - 154 - 145 - 103 - 199 - 180 - 125 - 156 - 208 - 73 - 200 - 152 - 139 - 162 - 78 - 149 - 163 - 178 - 220 - 158 - 171 - 201 - 146 - 153 - 24 - 187 - 57 - 80 - 155 - 92 - 202 - 129 - 175 - 164 - 190 - 203 - 37 - 207 - 74 - 160 - 87 - 217 - 58 - 131 - 106 - 174 - 205 - 181 - 83 - 81 - 134 - 21 - 142 - 124 - 173 - 191 - 210 - 184 - 159 - 1 - 167 - 179 - 150 - 211 - 82 - 157 - 206 - 23 - 218 - 75 - 86 - 29 - 161 - 169 - 79 - 192 - 196 - 204 - 19 - 122 - 193 - 112 - 126 - 56 - 5 - 143 - 39 - 185 - 111 - - $class - - CF$UID - 52 - - NS.objects - - - - $class - - CF$UID - 296 - - NS.objects - - - - $class - - CF$UID - 296 - - NS.objects - - - - $classes - - NSIBObjectData - NSObject - - $classname - NSIBObjectData - - - $top - - IB.objectdata - - CF$UID - 1 - - - $version - 100000 - - diff --git a/testing/Examples/CGShadingCreateAxial/GradientView.h b/testing/Examples/CGShadingCreateAxial/GradientView.h deleted file mode 100644 index 2df0a7ce..00000000 --- a/testing/Examples/CGShadingCreateAxial/GradientView.h +++ /dev/null @@ -1,21 +0,0 @@ -/* GradientView */ - -#import - -@interface GradientView : NSView { - float _C0[4]; - float _C1[4]; - NSPoint _startPoint; - NSPoint _endPoint; - BOOL _extendStart; - BOOL _extendEnd; - BOOL _mouseFirst; -} - -- (IBAction) takeStartColorFromSender: sender; -- (IBAction) takeEndColorFromSender: sender; - -- (IBAction) takeExtendStartFromSender: sender; -- (IBAction) takeExtendEndFromSender: sender; - -@end diff --git a/testing/Examples/CGShadingCreateAxial/GradientView.m b/testing/Examples/CGShadingCreateAxial/GradientView.m deleted file mode 100644 index 653fd45e..00000000 --- a/testing/Examples/CGShadingCreateAxial/GradientView.m +++ /dev/null @@ -1,100 +0,0 @@ -#import "GradientView.h" -#import - -@implementation GradientView - -- initWithFrame: (NSRect) frame { - [super initWithFrame: frame]; - _C0[0] = 0; - _C0[1] = 0; - _C0[2] = 0; - _C0[3] = 1; - - _C1[0] = 1; - _C1[1] = 1; - _C1[2] = 1; - _C1[3] = 1; - _startPoint = NSMakePoint(0, 0); - _endPoint = NSMakePoint(frame.size.width, frame.size.height); - _extendStart = NO; - _extendEnd = NO; - _mouseFirst = YES; - return self; -} - -void evaluate(void *info, const float *in, float *output) { - float x = in[0]; - GradientView *self = info; - int i; - - for (i = 0; i < 4; i++) - output[i] = self->_C0[i] + x * (self->_C1[i] - self->_C0[i]); -} - -- (void) drawRect: (NSRect) rect { - CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; - CGFunctionRef function; - CGShadingRef shading; - float domain[2] = {0, 1}; - float range[8] = {0, 1, 0, 1, 0, 1, 0, 1}; - CGFunctionCallbacks callbacks = {0, evaluate, NULL}; - - [[NSColor whiteColor] set]; - NSRectFill([self bounds]); - - function = CGFunctionCreate(self, 1, domain, 4, range, &callbacks); - shading = CGShadingCreateAxial(CGColorSpaceCreateDeviceRGB(), - CGPointMake(_startPoint.x, _startPoint.y), - CGPointMake(_endPoint.x, _endPoint.y), - function, _extendStart, _extendEnd); - - CGContextDrawShading(context, shading); - - CGFunctionRelease(function); - CGShadingRelease(shading); -} - -- (void) mouseDown: (NSEvent *) event { - NSPoint *dest = (_mouseFirst) ? &_startPoint : &_endPoint; - - do { - NSPoint point = [self convertPoint: [event locationInWindow] - fromView: nil]; - - *dest = point; - - [self setNeedsDisplay: YES]; - event = [[self window] nextEventMatchingMask: NSLeftMouseUpMask | - NSLeftMouseDraggedMask]; - } while ([event type] != NSLeftMouseUp); - - _mouseFirst = !_mouseFirst; -} - -- (IBAction) takeStartColorFromSender: sender { - NSColor *color = [[sender color] - colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; - - [color getRed: _C0 green: _C0 + 1 blue: _C0 + 2 alpha: _C0 + 3]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeEndColorFromSender: sender { - NSColor *color = [[sender color] - colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; - - [color getRed: _C1 green: _C1 + 1 blue: _C1 + 2 alpha: _C1 + 3]; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeExtendStartFromSender: sender { - _extendStart = [sender intValue] ? YES : NO; - [self setNeedsDisplay: YES]; -} - -- (IBAction) takeExtendEndFromSender: sender { - _extendEnd = [sender intValue] ? YES : NO; - [self setNeedsDisplay: YES]; -} - -@end diff --git a/testing/Examples/CGShadingCreateAxial/Info.plist b/testing/Examples/CGShadingCreateAxial/Info.plist deleted file mode 100644 index 982fb096..00000000 --- a/testing/Examples/CGShadingCreateAxial/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.CGShadingCreateAxial - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - OBJC - CFBundleVersion - 1.0 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/testing/Examples/CGShadingCreateAxial/main.m b/testing/Examples/CGShadingCreateAxial/main.m deleted file mode 100644 index d469b939..00000000 --- a/testing/Examples/CGShadingCreateAxial/main.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// main.m -// Gradientivity -// -// Created by Christopher Lloyd on 3/21/07. -// Copyright __MyCompanyName__ 2007. All rights reserved. -// - -#import - -int main(int argc, char *argv[]) { - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/testing/Examples/NSOpenGLView/English.lproj/InfoPlist.strings b/testing/Examples/NSOpenGLView/English.lproj/InfoPlist.strings deleted file mode 100644 index 997688e2fd53fd8d44166a1895730ea43ed42f47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmW-ZOAf&R6h+V2DjLH^R7?!S$b{#$5lbf^EkLAW3{7RTh oDE+A9pSg65nVdc!``%jXwyDfqOK2p - - - - IBDocumentLocation - 135 107 356 240 0 0 1680 1028 - IBEditorPositions - - 29 - 132 352 338 44 0 0 1680 1028 - - IBFramework Version - 446.1 - IBOpenObjects - - 29 - 21 - - IBSystem Version - 8S2167 - - diff --git a/testing/Examples/NSOpenGLView/English.lproj/MainMenu.nib/keyedobjects.nib b/testing/Examples/NSOpenGLView/English.lproj/MainMenu.nib/keyedobjects.nib deleted file mode 100644 index 6c13f89bed56ec4569d8320a815f5a058776c156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14114 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

TqwGbj>KA3+64Ay#L{!itk{ulbd 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 diff --git a/testing/Examples/NSOpenGLView/Info.plist b/testing/Examples/NSOpenGLView/Info.plist deleted file mode 100644 index 4a38d5c2..00000000 --- a/testing/Examples/NSOpenGLView/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.NSOpenGLView - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/testing/Examples/NSOpenGLView/MyOpenGLView.h b/testing/Examples/NSOpenGLView/MyOpenGLView.h deleted file mode 100644 index 84082bb6..00000000 --- a/testing/Examples/NSOpenGLView/MyOpenGLView.h +++ /dev/null @@ -1,10 +0,0 @@ -/* MyOpenGLView */ - -#import - -@interface MyOpenGLView : NSOpenGLView { - NSTimer *_timer; - float _angleX; -} - -@end diff --git a/testing/Examples/NSOpenGLView/MyOpenGLView.m b/testing/Examples/NSOpenGLView/MyOpenGLView.m deleted file mode 100644 index 0be3ae52..00000000 --- a/testing/Examples/NSOpenGLView/MyOpenGLView.m +++ /dev/null @@ -1,146 +0,0 @@ -#import "MyOpenGLView.h" -#import -#import -#import - -@implementation MyOpenGLView - -- (void) awakeFromNib { - _angleX = 360; - _timer = [[NSTimer scheduledTimerWithTimeInterval: 0.01 - target: self - selector: @selector(timer:) - userInfo: nil - repeats: YES] retain]; - [[self window] setTitle: NSLocalizedString(@"WindowTitle", @"")]; -} - -static void drawArcWithDepth(float beginAngle, float endAngle, - float innerRadius, float outerRadius, float z) -{ - for (; beginAngle <= endAngle; beginAngle += 1) { - CGAffineTransform matrix = - CGAffineTransformMakeRotation(M_PI * beginAngle / 180.0); - CGPoint innerPoint = CGPointMake(innerRadius, 0); - CGPoint outerPoint = CGPointMake(outerRadius, 0); - - innerPoint = CGPointApplyAffineTransform(innerPoint, matrix); - outerPoint = CGPointApplyAffineTransform(outerPoint, matrix); - - glVertex3f(innerPoint.x, innerPoint.y, z); - glVertex3f(outerPoint.x, outerPoint.y, z); - } -} - -static void drawEdge(float beginAngle, float endAngle, float radius, - float zclose, float zfar) -{ - for (; beginAngle <= endAngle; beginAngle += 1) { - CGAffineTransform matrix = - CGAffineTransformMakeRotation(M_PI * beginAngle / 180.0); - CGPoint point = CGPointMake(radius, 0); - CGPoint normal = CGPointMake(1, 0); - - point = CGPointApplyAffineTransform(point, matrix); - normal = CGPointApplyAffineTransform(normal, matrix); - - glNormal3f(normal.x, normal.y, 0); - glVertex3f(point.x, point.y, zclose); - glVertex3f(point.x, point.y, zfar); - } -} - -static void capAtAngle(float angle, float innerRadius, float outerRadius, - float depth) -{ - CGAffineTransform matrix = - CGAffineTransformMakeRotation(M_PI * angle / 180.0); - CGPoint innerPoint = CGPointMake(innerRadius, 0); - CGPoint outerPoint = CGPointMake(outerRadius, 0); - CGPoint normal = CGPointMake(1, 0); - - innerPoint = CGPointApplyAffineTransform(innerPoint, matrix); - outerPoint = CGPointApplyAffineTransform(outerPoint, matrix); - normal = CGPointApplyAffineTransform(normal, matrix); - - glNormal3f(normal.x, normal.y, 0); - - glVertex3f(innerPoint.x, innerPoint.y, depth / 2); - glVertex3f(outerPoint.x, outerPoint.y, depth / 2); - glVertex3f(outerPoint.x, outerPoint.y, -depth / 2); - glVertex3f(innerPoint.x, innerPoint.y, -depth / 2); -} - -static void drawArc(float beginAngle, float endAngle, float innerRadius, - float outerRadius, float depth) -{ - glNormal3f(1, 0, 0); - glBegin(GL_QUAD_STRIP); - drawArcWithDepth(beginAngle, endAngle, innerRadius, outerRadius, depth / 2); - glEnd(); - - glNormal3f(-1, 0, 0); - glBegin(GL_QUAD_STRIP); - drawArcWithDepth(beginAngle, endAngle, innerRadius, outerRadius, - -depth / 2); - glEnd(); - - glColor3f(.2, .2, .2); - - glBegin(GL_QUAD_STRIP); - drawEdge(beginAngle, endAngle, outerRadius, depth / 2, -depth / 2); - glEnd(); - - glBegin(GL_QUAD_STRIP); - drawEdge(beginAngle, endAngle, innerRadius, depth / 2, -depth / 2); - glEnd(); - - glBegin(GL_QUADS); - capAtAngle(beginAngle, innerRadius, outerRadius, depth); - capAtAngle(endAngle, innerRadius, outerRadius, depth); - glEnd(); -} - -static void drawCocotron() { - glColor3f(0, 0, 0); - drawArc(0, 60, .5, 1, .3); - - glColor3f(0, 0, 0); - drawArc(120, 180, .5, 1, .3); - - glColor3f(0, 0, 0); - drawArc(240, 300, .5, 1, .3); - - glColor3f(.5, .5, 0); - drawArc(30, 330, .2, .4, .3); -} - -- (void) drawRect: (NSRect) bounds { - glClearColor(.3, 0, .3, 1); - glLoadIdentity(); - glClear(GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT + GL_STENCIL_BUFFER_BIT); - glRotatef(_angleX, 0, 1, 0); - drawCocotron(); - glFlush(); - [[self openGLContext] flushBuffer]; -} - -- (void) prepareOpenGL { - glEnable(GL_DEPTH_TEST); - glShadeModel(GL_SMOOTH); -} - -- (void) reshape { - glViewport(0, 0, [self bounds].size.width, [self bounds].size.height); -} - -- (void) timer: (NSTimer *) timer { - _angleX -= 1; - - if (_angleX < 0) - _angleX = 360; - - [self setNeedsDisplay: YES]; -} - -@end diff --git a/testing/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj b/testing/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj deleted file mode 100644 index 5d821a8e..00000000 --- a/testing/Examples/NSOpenGLView/NSOpenGLView.xcodeproj/project.pbxproj +++ /dev/null @@ -1,455 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXAggregateTarget section */ - FEF2EAD40C8782A4001FC5A8 /* NSOpenGLView */ = { - isa = PBXAggregateTarget; - buildConfigurationList = FEF2EADA0C8782CE001FC5A8 /* Build configuration list for PBXAggregateTarget "NSOpenGLView" */; - buildPhases = ( - ); - dependencies = ( - FEF2EAD60C8782A9001FC5A8 /* PBXTargetDependency */, - FEF2EAD80C8782AC001FC5A8 /* PBXTargetDependency */, - ); - name = NSOpenGLView; - productName = NSOpenGLView; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FE472DAE0C85A959002B72EF /* MyOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE472DAD0C85A959002B72EF /* MyOpenGLView.m */; }; - FE472DC90C85AAA1002B72EF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE472DC80C85AAA1002B72EF /* OpenGL.framework */; }; - FE4733530C876FA1002B72EF /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - FE4733540C876FA1002B72EF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - FE4733560C876FA1002B72EF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - FE4733570C876FA1002B72EF /* MyOpenGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE472DAD0C85A959002B72EF /* MyOpenGLView.m */; }; - FE4733590C876FA1002B72EF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FEBEB04E0C96D3EE002C9F50 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */; }; - FEBEB04F0C96D3EE002C9F50 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */; }; - FEBEB0520C96D3FD002C9F50 /* Localizable-windows.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */; }; - FEBEB0530C96D3FD002C9F50 /* Localizable-windows.strings in Resources */ = {isa = PBXBuildFile; fileRef = FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */; }; - FEF2EB7D0C87B952001FC5A8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; - FEF2EB7E0C87B959001FC5A8 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FEF2EAD50C8782A9001FC5A8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8D1107260486CEB800E47090; - remoteInfo = "NSOpenGLView-MacOS"; - }; - FEF2EAD70C8782AC001FC5A8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = FE4733510C876FA1002B72EF; - remoteInfo = "NSOpenGLView-Windows"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* NSOpenGLView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NSOpenGLView.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FE472DAC0C85A959002B72EF /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MyOpenGLView.h; sourceTree = ""; }; - FE472DAD0C85A959002B72EF /* MyOpenGLView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = MyOpenGLView.m; sourceTree = ""; }; - FE472DC80C85AAA1002B72EF /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; - FE47335D0C876FA1002B72EF /* NSOpenGLView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NSOpenGLView.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEBEB00E0C96D208002C9F50 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; - FEBEB0160C96D228002C9F50 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = English; path = "English.lproj/Localizable-windows.strings"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - FE472DC90C85AAA1002B72EF /* OpenGL.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE4733580C876FA1002B72EF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4733590C876FA1002B72EF /* Cocoa.framework in Frameworks */, - FEF2EB7D0C87B952001FC5A8 /* Foundation.framework in Frameworks */, - FEF2EB7E0C87B959001FC5A8 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* NSOpenGLView.app */, - FE47335D0C876FA1002B72EF /* NSOpenGLView.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* NSOpenGLView */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */, - FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */, - ); - name = NSOpenGLView; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 29B97316FDCFA39411CA2CEA /* main.m */, - FE472DAC0C85A959002B72EF /* MyOpenGLView.h */, - FE472DAD0C85A959002B72EF /* MyOpenGLView.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - FE472DC80C85AAA1002B72EF /* OpenGL.framework */, - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* NSOpenGLView-MacOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "NSOpenGLView-MacOS" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "NSOpenGLView-MacOS"; - productInstallPath = "$(HOME)/Applications"; - productName = NSOpenGLView; - productReference = 8D1107320486CEB800E47090 /* NSOpenGLView.app */; - productType = "com.apple.product-type.application"; - }; - FE4733510C876FA1002B72EF /* NSOpenGLView-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE47335B0C876FA1002B72EF /* Build configuration list for PBXNativeTarget "NSOpenGLView-Windows" */; - buildPhases = ( - FE4733520C876FA1002B72EF /* Resources */, - FE4733550C876FA1002B72EF /* Sources */, - FE4733580C876FA1002B72EF /* Frameworks */, - FE2D932D0D491258005B7813 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "NSOpenGLView-Windows"; - productInstallPath = "$(HOME)/Applications"; - productName = NSOpenGLView; - productReference = FE47335D0C876FA1002B72EF /* NSOpenGLView.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "NSOpenGLView" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* NSOpenGLView */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* NSOpenGLView-MacOS */, - FE4733510C876FA1002B72EF /* NSOpenGLView-Windows */, - FEF2EAD40C8782A4001FC5A8 /* NSOpenGLView */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */, - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - FEBEB04E0C96D3EE002C9F50 /* Localizable.strings in Resources */, - FEBEB0520C96D3FD002C9F50 /* Localizable-windows.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE4733520C876FA1002B72EF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4733530C876FA1002B72EF /* MainMenu.nib in Resources */, - FE4733540C876FA1002B72EF /* InfoPlist.strings in Resources */, - FEBEB04F0C96D3EE002C9F50 /* Localizable.strings in Resources */, - FEBEB0530C96D3FD002C9F50 /* Localizable-windows.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FE2D932D0D491258005B7813 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - FE472DAE0C85A959002B72EF /* MyOpenGLView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE4733550C876FA1002B72EF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE4733560C876FA1002B72EF /* main.m in Sources */, - FE4733570C876FA1002B72EF /* MyOpenGLView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FEF2EAD60C8782A9001FC5A8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8D1107260486CEB800E47090 /* NSOpenGLView-MacOS */; - targetProxy = FEF2EAD50C8782A9001FC5A8 /* PBXContainerItemProxy */; - }; - FEF2EAD80C8782AC001FC5A8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = FE4733510C876FA1002B72EF /* NSOpenGLView-Windows */; - targetProxy = FEF2EAD70C8782AC001FC5A8 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 29B97319FDCFA39411CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; - FEBEB04D0C96D3EE002C9F50 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - FEBEB00E0C96D208002C9F50 /* English */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - FEBEB0510C96D3FD002C9F50 /* Localizable-windows.strings */ = { - isa = PBXVariantGroup; - children = ( - FEBEB0160C96D228002C9F50 /* English */, - ); - name = "Localizable-windows.strings"; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 1; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - PRODUCT_NAME = NSOpenGLView; - SYMROOT = build/Mac; - WRAPPER_EXTENSION = app; - }; - name = Deployment; - }; - C01FCF5008A954540054247B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - }; - name = Deployment; - }; - FE47335C0C876FA1002B72EF /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-Wl,--enable-auto-import", - "-mwindows", - "-lopengl32", - ); - PREBINDING = NO; - PRODUCT_NAME = NSOpenGLView; - SYMROOT = build/Windows; - }; - name = Deployment; - }; - FEF2EADB0C8782CE001FC5A8 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - PRODUCT_NAME = NSOpenGLView; - ZERO_LINK = NO; - }; - name = Deployment; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "NSOpenGLView-MacOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "NSOpenGLView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FE47335B0C876FA1002B72EF /* Build configuration list for PBXNativeTarget "NSOpenGLView-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE47335C0C876FA1002B72EF /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FEF2EADA0C8782CE001FC5A8 /* Build configuration list for PBXAggregateTarget "NSOpenGLView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEF2EADB0C8782CE001FC5A8 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/testing/Examples/NSOpenGLView/main.m b/testing/Examples/NSOpenGLView/main.m deleted file mode 100644 index 70fc8a66..00000000 --- a/testing/Examples/NSOpenGLView/main.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// main.m -// OpenGLView -// -// Created by Christopher Lloyd on 8/29/07. -// Copyright __MyCompanyName__ 2007. All rights reserved. -// - -#import - -int main(int argc, char *argv[]) { - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/testing/Examples/Quartz2D/Demo.h b/testing/Examples/Quartz2D/Demo.h deleted file mode 100644 index 5a1c6d79..00000000 --- a/testing/Examples/Quartz2D/Demo.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// Demo.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -// all demos draw in a 1x1 box. - -@interface Demo : NSObject { -} - -- (CGImageRef) createImageWithName: (NSString *) name; - -- (void) renderInContext: (CGContextRef) context; - -- (NSString *) title; - -@end diff --git a/testing/Examples/Quartz2D/Demo.m b/testing/Examples/Quartz2D/Demo.m deleted file mode 100644 index fee87033..00000000 --- a/testing/Examples/Quartz2D/Demo.m +++ /dev/null @@ -1,38 +0,0 @@ -// -// Demo.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@implementation Demo - -- (CGImageRef) createImageWithName: (NSString *) name { - CGImageRef result; - - NSString *path = - [[NSBundle bundleForClass: [self class]] pathForResource: name - ofType: @"png"]; - NSData *data = [NSData dataWithContentsOfFile: path]; - - CGImageSourceRef source = - CGImageSourceCreateWithData((CFDataRef) data, nil); - - result = CGImageSourceCreateImageAtIndex(source, 0, nil); - - CFRelease(source); - - return result; -} - -- (void) renderInContext: (CGContextRef) context { -} - -- (NSString *) title { - return [self description]; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoAffineImages.h b/testing/Examples/Quartz2D/DemoAffineImages.h deleted file mode 100644 index 9523e67e..00000000 --- a/testing/Examples/Quartz2D/DemoAffineImages.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// DemoAffineImages.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoAffineImages : Demo { - CGImageRef _image; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoAffineImages.m b/testing/Examples/Quartz2D/DemoAffineImages.m deleted file mode 100644 index d5616af6..00000000 --- a/testing/Examples/Quartz2D/DemoAffineImages.m +++ /dev/null @@ -1,53 +0,0 @@ -// -// DemoAffineImages.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoAffineImages.h" - -@implementation DemoAffineImages - -- init { - _image = [self createImageWithName: @"pattern"]; - - return self; -} - -- (void) renderInContext: (CGContextRef) context { - CGContextTranslateCTM(context, 0.5, 0.5); - int i, numberOfImages = 11; - CGBlendMode modes[] = { - kCGBlendModeNormal, - kCGBlendModeClear, - kCGBlendModeCopy, - kCGBlendModeSourceIn, - kCGBlendModeSourceOut, - kCGBlendModeSourceAtop, - kCGBlendModeDestinationOver, - kCGBlendModeDestinationIn, - kCGBlendModeDestinationOut, - kCGBlendModeDestinationAtop, - kCGBlendModeXOR, - }; - - for (i = 0; i < numberOfImages; i++) { - CGRect rect = CGRectMake(0.1, 0.1, 0.25 + i * 0.01, 0.25 - i * 0.01); - - CGContextSetBlendMode(context, kCGBlendModeNormal); - CGContextRotateCTM(context, (M_PI * 2) / numberOfImages); - CGContextSetRGBFillColor(context, i / (CGFloat) numberOfImages, 0.7, 1, - 0.5); - CGContextFillRect(context, rect); - rect = CGRectInset(rect, 0.02, 0.02); - CGContextDrawImage(context, rect, _image); - } -} - -- (NSString *) description { - return @"Affine Images"; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoAntialias.h b/testing/Examples/Quartz2D/DemoAntialias.h deleted file mode 100644 index 3e1af208..00000000 --- a/testing/Examples/Quartz2D/DemoAntialias.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// DemoAntialias.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoAntialias : Demo { -} - -@end diff --git a/testing/Examples/Quartz2D/DemoAntialias.m b/testing/Examples/Quartz2D/DemoAntialias.m deleted file mode 100644 index 3b612e7c..00000000 --- a/testing/Examples/Quartz2D/DemoAntialias.m +++ /dev/null @@ -1,34 +0,0 @@ -// -// DemoAntialias.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoAntialias.h" - -@implementation DemoAntialias - -- (void) renderInContext: (CGContextRef) context { - CGContextTranslateCTM(context, 0.5, 0.5); - - int i, numberOfRays = 256; - - for (i = 0; i < numberOfRays; i++) { - CGFloat fraction = i / (CGFloat) numberOfRays; - - CGContextRotateCTM(context, (M_PI * 2) / numberOfRays); - CGContextSetRGBStrokeColor(context, 0, 0, 0, 1); - CGContextSetLineWidth(context, 0.001); - CGContextMoveToPoint(context, 0, 0); - CGContextAddLineToPoint(context, 0.5, 1); - CGContextStrokePath(context); - } -} - -- (NSString *) description { - return @"Antialias Radial Pattern"; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoGradient.h b/testing/Examples/Quartz2D/DemoGradient.h deleted file mode 100644 index c01fe24f..00000000 --- a/testing/Examples/Quartz2D/DemoGradient.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// DemoGradient.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoGradient : Demo { -} - -@end diff --git a/testing/Examples/Quartz2D/DemoGradient.m b/testing/Examples/Quartz2D/DemoGradient.m deleted file mode 100644 index f33f99bd..00000000 --- a/testing/Examples/Quartz2D/DemoGradient.m +++ /dev/null @@ -1,65 +0,0 @@ -// -// DemoGradient.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoGradient.h" - -@implementation DemoGradient - -void blackToRed(void *info, const float *in, float *output) { - float C0[4] = {0, 0, 0, 1}; - float C1[4] = {1, 0, 0, 1}; - float x = in[0]; - int i; - - for (i = 0; i < 4; i++) - output[i] = C0[i] + x * (C1[i] - C0[i]); -} - -void blackToGreen(void *info, const float *in, float *output) { - float C0[4] = {00, 0, 1, 0.9}; - float C1[4] = {0, 1, 0, 0.1}; - float x = in[0]; - int i; - - for (i = 0; i < 4; i++) - output[i] = C0[i] + x * (C1[i] - C0[i]); -} - -- (void) renderInContext: (CGContextRef) context { - float domain[2] = {0, 1}; - float range[8] = {0, 1, 0, 1, 0, 1, 0, 1}; - CGFunctionCallbacks axialCallbacks = {0, blackToRed, NULL}; - CGFunctionCallbacks radialCallbacks = {0, blackToGreen, NULL}; - CGFunctionRef axialFunction = - CGFunctionCreate(self, 1, domain, 4, range, &axialCallbacks); - CGFunctionRef radialFunction = - CGFunctionCreate(self, 1, domain, 4, range, &radialCallbacks); - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - - CGShadingRef axial = - CGShadingCreateAxial(colorSpace, CGPointMake(0, 0), - CGPointMake(1, 1), axialFunction, YES, YES); - CGShadingRef radial = CGShadingCreateRadial( - colorSpace, CGPointMake(0.5, 0.75), 0, CGPointMake(0.5, 0.5), 0.3, - radialFunction, YES, YES); - - CGContextDrawShading(context, axial); - CGContextDrawShading(context, radial); - - CGFunctionRelease(axialFunction); - CGFunctionRelease(radialFunction); - CGColorSpaceRelease(colorSpace); - CGShadingRelease(radial); - CGShadingRelease(axial); -} - -- (NSString *) description { - return @"Gradients"; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoJoinCapDash.h b/testing/Examples/Quartz2D/DemoJoinCapDash.h deleted file mode 100644 index 763d5942..00000000 --- a/testing/Examples/Quartz2D/DemoJoinCapDash.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// DemoJoinCapDash.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoJoinCapDash : Demo { -} - -@end diff --git a/testing/Examples/Quartz2D/DemoJoinCapDash.m b/testing/Examples/Quartz2D/DemoJoinCapDash.m deleted file mode 100644 index 35614bfc..00000000 --- a/testing/Examples/Quartz2D/DemoJoinCapDash.m +++ /dev/null @@ -1,64 +0,0 @@ -// -// DemoJoinCapDash.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoJoinCapDash.h" - -@implementation DemoJoinCapDash - -static void drawLine(CGContextRef context) { - CGContextSetRGBStrokeColor(context, 0, 0, 0, 1); - CGContextSetLineWidth(context, 0.05); - CGContextMoveToPoint(context, 0.1, 0.1); - CGContextAddLineToPoint(context, 0.5, 0.5); - CGContextAddLineToPoint(context, 0.9, 0.1); - CGContextStrokePath(context); - - CGContextSetRGBStrokeColor(context, 1, 0, 0, 1); - CGContextSetLineWidth(context, 0.005); - CGContextSetLineCap(context, kCGLineCapButt); - CGContextSetLineJoin(context, kCGLineJoinMiter); - CGContextMoveToPoint(context, 0.1, 0.1); - CGContextAddLineToPoint(context, 0.5, 0.5); - CGContextAddLineToPoint(context, 0.9, 0.1); - CGContextStrokePath(context); -} - -- (void) renderInContext: (CGContextRef) context { - - drawLine(context); - CGContextTranslateCTM(context, 0, 0.1); - - CGContextSetLineCap(context, kCGLineCapRound); - CGContextSetLineJoin(context, kCGLineJoinRound); - drawLine(context); - - CGContextTranslateCTM(context, 0, 0.1); - CGContextSetLineCap(context, kCGLineJoinBevel); - CGContextSetLineJoin(context, kCGLineCapSquare); - drawLine(context); - - CGContextTranslateCTM(context, 0, 0.1); - CGFloat lengths[20]; - CGFloat delta = 0.01; - int i; - - for (i = 0; i < 20; i += 2) { - lengths[i] = delta / 2; - lengths[i + 1] = delta; - delta += 0.005; - } - - CGContextSetLineDash(context, 0, lengths, 20); - drawLine(context); -} - -- (NSString *) description { - return @"Join Cap Dash"; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoPaths.h b/testing/Examples/Quartz2D/DemoPaths.h deleted file mode 100644 index c07be1c7..00000000 --- a/testing/Examples/Quartz2D/DemoPaths.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// DemoPaths.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -@interface DemoPaths : NSObject { -} - -@end diff --git a/testing/Examples/Quartz2D/DemoPaths.m b/testing/Examples/Quartz2D/DemoPaths.m deleted file mode 100644 index f36c8541..00000000 --- a/testing/Examples/Quartz2D/DemoPaths.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// DemoPaths.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoPaths.h" - -@implementation DemoPaths - -@end diff --git a/testing/Examples/Quartz2D/DemoPattern.h b/testing/Examples/Quartz2D/DemoPattern.h deleted file mode 100644 index 3a47cc32..00000000 --- a/testing/Examples/Quartz2D/DemoPattern.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// DemoPattern.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoPattern : Demo { - CGImageRef _image; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoPattern.m b/testing/Examples/Quartz2D/DemoPattern.m deleted file mode 100644 index d01ab48e..00000000 --- a/testing/Examples/Quartz2D/DemoPattern.m +++ /dev/null @@ -1,62 +0,0 @@ -// -// DemoPattern.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/9/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoPattern.h" - -@implementation DemoPattern - -- init { - _image = [self createImageWithName: @"stankard"]; - - return self; -} - -static void drawPattern(void *info, CGContextRef ctxt) { - DemoPattern *self = (DemoPattern *) info; - - CGContextSetRGBFillColor(ctxt, 1, 0, 0, 0.5); - CGContextFillEllipseInRect(ctxt, CGRectMake(0, 0, .5, .5)); - CGContextSetRGBFillColor(ctxt, 1, 0, 1, 0.5); - CGContextFillEllipseInRect(ctxt, CGRectMake(0.5, 0.5, 0.3, 0.3)); - CGContextSetRGBFillColor(ctxt, 0, 0, 1, 0.5); - CGContextFillEllipseInRect(ctxt, CGRectMake(0.2, 0.2, 0.6, 0.6)); - CGContextSetRGBFillColor(ctxt, 0, 1, 1, 0.5); - CGContextFillEllipseInRect(ctxt, CGRectMake(0, 0.6, 0.4, 0.4)); - CGContextDrawImage(ctxt, CGRectMake(0.25, 0.25, 0.5, 0.5), self->_image); -} - -- (void) renderInContext: (CGContextRef) context { - CGPatternCallbacks callbacks = {0, drawPattern, NULL}; - CGPatternRef pattern = CGPatternCreate( - self, CGRectMake(0, 0, 1, 1), CGAffineTransformMakeScale(100, 100), - 0.5, 0.5, kCGPatternTilingNoDistortion, YES, &callbacks); - CGColorSpaceRef colorSpace = CGColorSpaceCreatePattern(NULL); - CGFloat components[1] = {1}; - CGColorRef color = - CGColorCreateWithPattern(colorSpace, pattern, components); - - CGContextSaveGState(context); - - CGContextSetFillColorWithColor(context, color); - CGContextFillRect(context, CGRectMake(0, 0, 1, 1)); - CGContextRestoreGState(context); - - CGColorRelease(color); - CGColorSpaceRelease(colorSpace); - CGPatternRelease(pattern); -} - -- (NSString *) title { - return @"CGPattern"; -} - -- (NSString *) description { - return @"Overlapping function based pattern composed of ellipses and image"; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoPorterDuff.h b/testing/Examples/Quartz2D/DemoPorterDuff.h deleted file mode 100644 index c86e3df2..00000000 --- a/testing/Examples/Quartz2D/DemoPorterDuff.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// DemoPorterDuff.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoPorterDuff : Demo { -} - -@end diff --git a/testing/Examples/Quartz2D/DemoPorterDuff.m b/testing/Examples/Quartz2D/DemoPorterDuff.m deleted file mode 100644 index 0582c4ee..00000000 --- a/testing/Examples/Quartz2D/DemoPorterDuff.m +++ /dev/null @@ -1,63 +0,0 @@ -// -// DemoPorterDuff.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoPorterDuff.h" - -@implementation DemoPorterDuff - -- (void) renderInContext: (CGContextRef) context { - int i, numberOfModes = 11; - CGBlendMode modes[] = { - kCGBlendModeNormal, - kCGBlendModeClear, - kCGBlendModeCopy, - kCGBlendModeSourceIn, - kCGBlendModeSourceOut, - kCGBlendModeSourceAtop, - kCGBlendModeDestinationOver, - kCGBlendModeDestinationIn, - kCGBlendModeDestinationOut, - kCGBlendModeDestinationAtop, - kCGBlendModeXOR, - }; - - CGFloat height = 1.0 / numberOfModes; - - CGContextClearRect(context, CGRectMake(0, 0, 1, 1)); - - for (i = 0; i < numberOfModes; i++) { - - CGFloat j, numberOfBars = 10; - CGFloat barHeight = height / numberOfBars; - CGFloat barWidth = 1.0 / numberOfBars; - - CGContextSetBlendMode(context, kCGBlendModeCopy); - for (j = 0; j < numberOfBars; j++) { - CGContextSetRGBFillColor(context, j / numberOfBars * 0.7, - j / numberOfBars * 0.8, - j / numberOfBars * 0.9, j / numberOfBars); - CGContextFillRect(context, CGRectMake(0, i * height + j * barHeight, - 1, barHeight)); - } - - CGContextSetBlendMode(context, modes[i]); - for (j = 0; j < numberOfBars; j++) { - CGContextSetRGBFillColor(context, j / numberOfBars * 0.9, - j / numberOfBars * 0.7, - j / numberOfBars * 0.8, j / numberOfBars); - CGContextFillRect(context, CGRectMake(j * barWidth, i * height, - barWidth, height)); - } - } -} - -- (NSString *) description { - return @"Porter Duff"; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoSoftMask.h b/testing/Examples/Quartz2D/DemoSoftMask.h deleted file mode 100644 index d59c90e3..00000000 --- a/testing/Examples/Quartz2D/DemoSoftMask.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// DemoSoftMask.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/10/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoSoftMask : Demo { - CGImageRef _image; - CGImageRef _mask; - CGImageRef _maskedImage; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoSoftMask.m b/testing/Examples/Quartz2D/DemoSoftMask.m deleted file mode 100644 index bd1b5a41..00000000 --- a/testing/Examples/Quartz2D/DemoSoftMask.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// DemoSoftMask.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/10/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoSoftMask.h" - -@implementation DemoSoftMask - -- init { - _image = [self createImageWithName: @"stankard"]; - uint8_t *bytes = malloc(1); - - bytes[0] = 128; - - CGDataProviderRef provider = - CGDataProviderCreateWithData(NULL, bytes, 1, NULL); - _mask = CGImageMaskCreate(1, 1, 8, 8, 1, provider, NULL, YES); - _maskedImage = CGImageCreateWithMask(_image, _mask); - - return self; -} - -- (void) renderInContext: (CGContextRef) context { - CGContextSetInterpolationQuality(context, kCGInterpolationHigh); - CGContextDrawImage(context, CGRectMake(0, 0, 0.5, 1), _image); - CGContextDrawImage(context, CGRectMake(0.5, 0, 0.5, 1), _maskedImage); -} - -- (NSString *) description { - return @"Image with Soft Mask"; -} - -@end diff --git a/testing/Examples/Quartz2D/DemoView.h b/testing/Examples/Quartz2D/DemoView.h deleted file mode 100644 index 295a030f..00000000 --- a/testing/Examples/Quartz2D/DemoView.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// DemoView.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -@class Demo; - -@interface DemoView : NSView { - Demo *_demo; -} - -- (void) setDemo: (Demo *) value; - -@end diff --git a/testing/Examples/Quartz2D/DemoView.m b/testing/Examples/Quartz2D/DemoView.m deleted file mode 100644 index 8f8b179f..00000000 --- a/testing/Examples/Quartz2D/DemoView.m +++ /dev/null @@ -1,43 +0,0 @@ -// -// DemoView.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoView.h" -#import "Demo.h" - -@implementation DemoView - -- (id) initWithFrame: (NSRect) frame { - self = [super initWithFrame: frame]; - if (self) { - // Initialization code here. - } - return self; -} - -- (void) setDemo: (Demo *) value { - value = [value retain]; - [_demo release]; - _demo = value; - [self setNeedsDisplay: YES]; -} - -- (void) drawRect: (NSRect) dirtyRect { - CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; - NSRect bounds = [self bounds]; - - [[NSColor whiteColor] set]; - NSRectFill([self bounds]); - - CGContextSaveGState(context); - - CGContextScaleCTM(context, bounds.size.width, bounds.size.height); - [_demo renderInContext: context]; - CGContextRestoreGState(context); -} - -@end diff --git a/testing/Examples/Quartz2D/DemoWindingRules.h b/testing/Examples/Quartz2D/DemoWindingRules.h deleted file mode 100644 index 1cb98f40..00000000 --- a/testing/Examples/Quartz2D/DemoWindingRules.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// DemoWindingRules.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/10/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Demo.h" - -@interface DemoWindingRules : Demo { -} - -@end diff --git a/testing/Examples/Quartz2D/DemoWindingRules.m b/testing/Examples/Quartz2D/DemoWindingRules.m deleted file mode 100644 index 8f6305a3..00000000 --- a/testing/Examples/Quartz2D/DemoWindingRules.m +++ /dev/null @@ -1,42 +0,0 @@ -// -// DemoWindingRules.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/10/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "DemoWindingRules.h" - -@implementation DemoWindingRules - -- (void) renderInContext: (CGContextRef) context { - int i, numberOfCircles = 6; - - CGContextScaleCTM(context, 1.5, 1); - - CGFloat y = 0, yDelta = 1.0 / (kCGPathEOFillStroke + 1); - CGPathDrawingMode mode; - - for (mode = kCGPathFill; mode <= kCGPathEOFillStroke; mode++) { - CGFloat x = 0.1, delta = 0.1; - - CGContextSetRGBFillColor(context, 0.25, 0.5, 0, 1); - CGContextSetRGBStrokeColor(context, 0.4, 0.4, 0.4, 0.5); - CGContextSetLineWidth(context, 0.01); - for (i = 0; i < numberOfCircles; i++) { - CGContextAddEllipseInRect( - context, CGRectMake(x, y, delta, yDelta - yDelta * 0.1)); - x += delta / 1.5; - } - CGContextDrawPath(context, mode); - - y += yDelta; - } -} - -- (NSString *) description { - return @"Winding Rules"; -} - -@end diff --git a/testing/Examples/Quartz2D/English.lproj/InfoPlist.strings b/testing/Examples/Quartz2D/English.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff..00000000 --- a/testing/Examples/Quartz2D/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/testing/Examples/Quartz2D/English.lproj/MainMenu.xib b/testing/Examples/Quartz2D/English.lproj/MainMenu.xib deleted file mode 100644 index 56d7c194..00000000 --- a/testing/Examples/Quartz2D/English.lproj/MainMenu.xib +++ /dev/null @@ -1,4480 +0,0 @@ - - - - 1060 - 10D2101a - 804 - 1038.29 - 460.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 804 - - - YES - - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - NSApplication - - - FirstResponder - - - NSApplication - - - AMainMenu - - YES - - - Quartz2D - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - Quartz2D - - YES - - - About Quartz2D - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences… - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide Quartz2D - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit Quartz2D - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - File - - YES - - - New - n - 1048576 - 2147483647 - - - - - - Open… - o - 1048576 - 2147483647 - - - - - - Open Recent - - 1048576 - 2147483647 - - - submenuAction: - - Open Recent - - YES - - - Clear Menu - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Close - w - 1048576 - 2147483647 - - - - - - Save - s - 1048576 - 2147483647 - - - - - - Save As… - S - 1179648 - 2147483647 - - - - - - Revert to Saved - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup... - P - 1179648 - 2147483647 - - - - - - - Print… - p - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - Edit - - YES - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1179648 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Paste and Match Style - V - 1572864 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Find - - 1048576 - 2147483647 - - - submenuAction: - - Find - - YES - - - Find… - f - 1048576 - 2147483647 - - - 1 - - - - Find Next - g - 1048576 - 2147483647 - - - 2 - - - - Find Previous - G - 1179648 - 2147483647 - - - 3 - - - - Use Selection for Find - e - 1048576 - 2147483647 - - - 7 - - - - Jump to Selection - j - 1048576 - 2147483647 - - - - - - - - - Spelling and Grammar - - 1048576 - 2147483647 - - - submenuAction: - - Spelling and Grammar - - YES - - - Show Spelling and Grammar - : - 1048576 - 2147483647 - - - - - - Check Document Now - ; - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Check Spelling While Typing - - 1048576 - 2147483647 - - - - - - Check Grammar With Spelling - - 1048576 - 2147483647 - - - - - - Correct Spelling Automatically - - 2147483647 - - - - - - - - - Substitutions - - 1048576 - 2147483647 - - - submenuAction: - - Substitutions - - YES - - - Show Substitutions - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Smart Copy/Paste - f - 1048576 - 2147483647 - - - 1 - - - - Smart Quotes - g - 1048576 - 2147483647 - - - 2 - - - - Smart Dashes - - 2147483647 - - - - - - Smart Links - G - 1179648 - 2147483647 - - - 3 - - - - Text Replacement - - 2147483647 - - - - - - - - - Transformations - - 2147483647 - - - submenuAction: - - Transformations - - YES - - - Make Upper Case - - 2147483647 - - - - - - Make Lower Case - - 2147483647 - - - - - - Capitalize - - 2147483647 - - - - - - - - - Speech - - 1048576 - 2147483647 - - - submenuAction: - - Speech - - YES - - - Start Speaking - - 1048576 - 2147483647 - - - - - - Stop Speaking - - 1048576 - 2147483647 - - - - - - - - - - - - Format - - 2147483647 - - - submenuAction: - - Format - - YES - - - Font - - 2147483647 - - - submenuAction: - - Font - - YES - - - Show Fonts - t - 1048576 - 2147483647 - - - - - - Bold - b - 1048576 - 2147483647 - - - 2 - - - - Italic - i - 1048576 - 2147483647 - - - 1 - - - - Underline - u - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Bigger - + - 1048576 - 2147483647 - - - 3 - - - - Smaller - - - 1048576 - 2147483647 - - - 4 - - - - YES - YES - - - 2147483647 - - - - - - Kern - - 2147483647 - - - submenuAction: - - Kern - - YES - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Tighten - - 2147483647 - - - - - - Loosen - - 2147483647 - - - - - - - - - Ligature - - 2147483647 - - - submenuAction: - - Ligature - - YES - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Use All - - 2147483647 - - - - - - - - - Baseline - - 2147483647 - - - submenuAction: - - Baseline - - YES - - - Use Default - - 2147483647 - - - - - - Superscript - - 2147483647 - - - - - - Subscript - - 2147483647 - - - - - - Raise - - 2147483647 - - - - - - Lower - - 2147483647 - - - - - - - - - YES - YES - - - 2147483647 - - - - - - Show Colors - C - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Copy Style - c - 1572864 - 2147483647 - - - - - - Paste Style - v - 1572864 - 2147483647 - - - - - _NSFontMenu - - - - - Text - - 2147483647 - - - submenuAction: - - Text - - YES - - - Align Left - { - 1048576 - 2147483647 - - - - - - Center - | - 1048576 - 2147483647 - - - - - - Justify - - 2147483647 - - - - - - Align Right - } - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Writing Direction - - 2147483647 - - - submenuAction: - - Writing Direction - - YES - - - YES - Paragraph - - 2147483647 - - - - - - CURlZmF1bHQ - - 2147483647 - - - - - - CUxlZnQgdG8gUmlnaHQ - - 2147483647 - - - - - - CVJpZ2h0IHRvIExlZnQ - - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - YES - Selection - - 2147483647 - - - - - - CURlZmF1bHQ - - 2147483647 - - - - - - CUxlZnQgdG8gUmlnaHQ - - 2147483647 - - - - - - CVJpZ2h0IHRvIExlZnQ - - 2147483647 - - - - - - - - - YES - YES - - - 2147483647 - - - - - - Show Ruler - - 2147483647 - - - - - - Copy Ruler - c - 1310720 - 2147483647 - - - - - - Paste Ruler - v - 1310720 - 2147483647 - - - - - - - - - - - - View - - 1048576 - 2147483647 - - - submenuAction: - - View - - YES - - - Show Toolbar - t - 1572864 - 2147483647 - - - - - - Customize Toolbar… - - 1048576 - 2147483647 - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - Window - - YES - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 2147483647 - - - submenuAction: - - Help - - YES - - - Quartz2D Help - ? - 1048576 - 2147483647 - - - - - _NSHelpMenu - - - - _NSMainMenu - - - 15 - 2 - {{335, 158}, {550, 592}} - 1954021376 - Quartz2D - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 274 - {{18, 20}, {512, 512}} - - DemoView - - - - 266 - {{18, 548}, {512, 26}} - - YES - - -2076049856 - 2048 - - LucidaGrande - 13 - 1044 - - - 109199615 - 129 - - - 400 - 75 - - - Item 1 - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Item 2 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Item 3 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 1 - YES - YES - 2 - - - - {550, 592} - - - {{0, 0}, {1920, 1178}} - {1.79769e+308, 1.79769e+308} - - - Quartz2DAppDelegate - - - NSFontManager - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - print: - - - - 86 - - - - runPageLayout: - - - - 87 - - - - clearRecentDocuments: - - - - 127 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - performClose: - - - - 193 - - - - toggleContinuousSpellChecking: - - - - 222 - - - - undo: - - - - 223 - - - - copy: - - - - 224 - - - - checkSpelling: - - - - 225 - - - - paste: - - - - 226 - - - - stopSpeaking: - - - - 227 - - - - cut: - - - - 228 - - - - showGuessPanel: - - - - 230 - - - - redo: - - - - 231 - - - - selectAll: - - - - 232 - - - - startSpeaking: - - - - 233 - - - - delete: - - - - 235 - - - - performZoom: - - - - 240 - - - - performFindPanelAction: - - - - 241 - - - - centerSelectionInVisibleArea: - - - - 245 - - - - toggleGrammarChecking: - - - - 347 - - - - toggleSmartInsertDelete: - - - - 355 - - - - toggleAutomaticQuoteSubstitution: - - - - 356 - - - - toggleAutomaticLinkDetection: - - - - 357 - - - - saveDocument: - - - - 362 - - - - saveDocumentAs: - - - - 363 - - - - revertDocumentToSaved: - - - - 364 - - - - runToolbarCustomizationPalette: - - - - 365 - - - - toggleToolbarShown: - - - - 366 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - newDocument: - - - - 373 - - - - openDocument: - - - - 374 - - - - addFontTrait: - - - - 421 - - - - addFontTrait: - - - - 422 - - - - modifyFont: - - - - 423 - - - - orderFrontFontPanel: - - - - 424 - - - - modifyFont: - - - - 425 - - - - raiseBaseline: - - - - 426 - - - - lowerBaseline: - - - - 427 - - - - copyFont: - - - - 428 - - - - subscript: - - - - 429 - - - - superscript: - - - - 430 - - - - tightenKerning: - - - - 431 - - - - underline: - - - - 432 - - - - orderFrontColorPanel: - - - - 433 - - - - useAllLigatures: - - - - 434 - - - - loosenKerning: - - - - 435 - - - - pasteFont: - - - - 436 - - - - unscript: - - - - 437 - - - - useStandardKerning: - - - - 438 - - - - useStandardLigatures: - - - - 439 - - - - turnOffLigatures: - - - - 440 - - - - turnOffKerning: - - - - 441 - - - - terminate: - - - - 449 - - - - toggleAutomaticSpellingCorrection: - - - - 456 - - - - orderFrontSubstitutionsPanel: - - - - 458 - - - - toggleAutomaticDashSubstitution: - - - - 461 - - - - toggleAutomaticTextReplacement: - - - - 463 - - - - uppercaseWord: - - - - 464 - - - - capitalizeWord: - - - - 467 - - - - lowercaseWord: - - - - 468 - - - - pasteAsPlainText: - - - - 486 - - - - performFindPanelAction: - - - - 487 - - - - performFindPanelAction: - - - - 488 - - - - performFindPanelAction: - - - - 489 - - - - showHelp: - - - - 493 - - - - delegate - - - - 495 - - - - alignCenter: - - - - 518 - - - - pasteRuler: - - - - 519 - - - - toggleRuler: - - - - 520 - - - - alignRight: - - - - 521 - - - - copyRuler: - - - - 522 - - - - alignJustified: - - - - 523 - - - - alignLeft: - - - - 524 - - - - makeBaseWritingDirectionNatural: - - - - 525 - - - - makeBaseWritingDirectionLeftToRight: - - - - 526 - - - - makeBaseWritingDirectionRightToLeft: - - - - 527 - - - - makeTextWritingDirectionNatural: - - - - 528 - - - - makeTextWritingDirectionLeftToRight: - - - - 529 - - - - makeTextWritingDirectionRightToLeft: - - - - 530 - - - - window - - - - 532 - - - - _popupButton - - - - 549 - - - - selectDemo: - - - - 551 - - - - _demoView - - - - 552 - - - - - YES - - 0 - - YES - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - - - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 217 - - - YES - - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - 75 - - - - - 80 - - - - - 78 - - - - - 72 - - - - - 82 - - - - - 124 - - - YES - - - - - - 77 - - - - - 73 - - - - - 79 - - - - - 112 - - - - - 74 - - - - - 125 - - - YES - - - - - - 126 - - - - - 205 - - - YES - - - - - - - - - - - - - - - - - - - - 202 - - - - - 198 - - - - - 207 - - - - - 214 - - - - - 199 - - - - - 203 - - - - - 197 - - - - - 206 - - - - - 215 - - - - - 218 - - - YES - - - - - - 216 - - - YES - - - - - - 200 - - - YES - - - - - - - - - - - 219 - - - - - 201 - - - - - 204 - - - - - 220 - - - YES - - - - - - - - - - 213 - - - - - 210 - - - - - 221 - - - - - 208 - - - - - 209 - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - - - 144 - - - - - 129 - - - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 24 - - - YES - - - - - - - - - 92 - - - - - 5 - - - - - 239 - - - - - 23 - - - - - 295 - - - YES - - - - - - 296 - - - YES - - - - - - - 297 - - - - - 298 - - - - - 211 - - - YES - - - - - - 212 - - - YES - - - - - - - 195 - - - - - 196 - - - - - 346 - - - - - 348 - - - YES - - - - - - 349 - - - YES - - - - - - - - - - - - 350 - - - - - 351 - - - - - 354 - - - - - 371 - - - YES - - - - - - 372 - - - YES - - - - - - - 375 - - - YES - - - - - - 376 - - - YES - - - - - - - 377 - - - YES - - - - - - 388 - - - YES - - - - - - - - - - - - - - - - - - - - - 389 - - - - - 390 - - - - - 391 - - - - - 392 - - - - - 393 - - - - - 394 - - - - - 395 - - - - - 396 - - - - - 397 - - - YES - - - - - - 398 - - - YES - - - - - - 399 - - - YES - - - - - - 400 - - - - - 401 - - - - - 402 - - - - - 403 - - - - - 404 - - - - - 405 - - - YES - - - - - - - - - - 406 - - - - - 407 - - - - - 408 - - - - - 409 - - - - - 410 - - - - - 411 - - - YES - - - - - - - - 412 - - - - - 413 - - - - - 414 - - - - - 415 - - - YES - - - - - - - - - 416 - - - - - 417 - - - - - 418 - - - - - 419 - - - - - 420 - - - - - 450 - - - YES - - - - - - 451 - - - YES - - - - - - - - 452 - - - - - 453 - - - - - 454 - - - - - 457 - - - - - 459 - - - - - 460 - - - - - 462 - - - - - 465 - - - - - 466 - - - - - 485 - - - - - 490 - - - YES - - - - - - 491 - - - YES - - - - - - 492 - - - - - 494 - - - - - 496 - - - YES - - - - - - 497 - - - YES - - - - - - - - - - - - - - - 498 - - - - - 499 - - - - - 500 - - - - - 501 - - - - - 502 - - - - - 503 - - - YES - - - - - - 504 - - - - - 505 - - - - - 506 - - - - - 507 - - - - - 508 - - - YES - - - - - - - - - - - - - - 509 - - - - - 510 - - - - - 511 - - - - - 512 - - - - - 513 - - - - - 514 - - - - - 515 - - - - - 516 - - - - - 517 - - - - - 542 - - - - - 543 - - - YES - - - - - - 544 - - - YES - - - - - - 545 - - - YES - - - - - - - - 546 - - - - - 547 - - - - - 548 - - - - - - - YES - - YES - -3.IBPluginDependency - 112.IBPluginDependency - 112.ImportedFromIB2 - 124.IBPluginDependency - 124.ImportedFromIB2 - 125.IBPluginDependency - 125.ImportedFromIB2 - 125.editorWindowContentRectSynchronizationRect - 126.IBPluginDependency - 126.ImportedFromIB2 - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBPluginDependency - 130.ImportedFromIB2 - 130.editorWindowContentRectSynchronizationRect - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 195.IBPluginDependency - 195.ImportedFromIB2 - 196.IBPluginDependency - 196.ImportedFromIB2 - 197.IBPluginDependency - 197.ImportedFromIB2 - 198.IBPluginDependency - 198.ImportedFromIB2 - 199.IBPluginDependency - 199.ImportedFromIB2 - 200.IBEditorWindowLastContentRect - 200.IBPluginDependency - 200.ImportedFromIB2 - 200.editorWindowContentRectSynchronizationRect - 201.IBPluginDependency - 201.ImportedFromIB2 - 202.IBPluginDependency - 202.ImportedFromIB2 - 203.IBPluginDependency - 203.ImportedFromIB2 - 204.IBPluginDependency - 204.ImportedFromIB2 - 205.IBEditorWindowLastContentRect - 205.IBPluginDependency - 205.ImportedFromIB2 - 205.editorWindowContentRectSynchronizationRect - 206.IBPluginDependency - 206.ImportedFromIB2 - 207.IBPluginDependency - 207.ImportedFromIB2 - 208.IBPluginDependency - 208.ImportedFromIB2 - 209.IBPluginDependency - 209.ImportedFromIB2 - 210.IBPluginDependency - 210.ImportedFromIB2 - 211.IBPluginDependency - 211.ImportedFromIB2 - 212.IBPluginDependency - 212.ImportedFromIB2 - 212.editorWindowContentRectSynchronizationRect - 213.IBPluginDependency - 213.ImportedFromIB2 - 214.IBPluginDependency - 214.ImportedFromIB2 - 215.IBPluginDependency - 215.ImportedFromIB2 - 216.IBPluginDependency - 216.ImportedFromIB2 - 217.IBPluginDependency - 217.ImportedFromIB2 - 218.IBPluginDependency - 218.ImportedFromIB2 - 219.IBPluginDependency - 219.ImportedFromIB2 - 220.IBEditorWindowLastContentRect - 220.IBPluginDependency - 220.ImportedFromIB2 - 220.editorWindowContentRectSynchronizationRect - 221.IBPluginDependency - 221.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 236.IBPluginDependency - 236.ImportedFromIB2 - 239.IBPluginDependency - 239.ImportedFromIB2 - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.WindowOrigin - 29.editorWindowContentRectSynchronizationRect - 295.IBPluginDependency - 296.IBEditorWindowLastContentRect - 296.IBPluginDependency - 296.editorWindowContentRectSynchronizationRect - 297.IBPluginDependency - 298.IBPluginDependency - 346.IBPluginDependency - 346.ImportedFromIB2 - 348.IBPluginDependency - 348.ImportedFromIB2 - 349.IBEditorWindowLastContentRect - 349.IBPluginDependency - 349.ImportedFromIB2 - 349.editorWindowContentRectSynchronizationRect - 350.IBPluginDependency - 350.ImportedFromIB2 - 351.IBPluginDependency - 351.ImportedFromIB2 - 354.IBPluginDependency - 354.ImportedFromIB2 - 371.IBEditorWindowLastContentRect - 371.IBPluginDependency - 371.IBWindowTemplateEditedContentRect - 371.NSWindowTemplate.visibleAtLaunch - 371.editorWindowContentRectSynchronizationRect - 371.windowTemplate.maxSize - 372.IBPluginDependency - 375.IBPluginDependency - 376.IBEditorWindowLastContentRect - 376.IBPluginDependency - 377.IBPluginDependency - 388.IBEditorWindowLastContentRect - 388.IBPluginDependency - 389.IBPluginDependency - 390.IBPluginDependency - 391.IBPluginDependency - 392.IBPluginDependency - 393.IBPluginDependency - 394.IBPluginDependency - 395.IBPluginDependency - 396.IBPluginDependency - 397.IBPluginDependency - 398.IBPluginDependency - 399.IBPluginDependency - 400.IBPluginDependency - 401.IBPluginDependency - 402.IBPluginDependency - 403.IBPluginDependency - 404.IBPluginDependency - 405.IBPluginDependency - 406.IBPluginDependency - 407.IBPluginDependency - 408.IBPluginDependency - 409.IBPluginDependency - 410.IBPluginDependency - 411.IBPluginDependency - 412.IBPluginDependency - 413.IBPluginDependency - 414.IBPluginDependency - 415.IBPluginDependency - 416.IBPluginDependency - 417.IBPluginDependency - 418.IBPluginDependency - 419.IBPluginDependency - 450.IBPluginDependency - 451.IBEditorWindowLastContentRect - 451.IBPluginDependency - 452.IBPluginDependency - 453.IBPluginDependency - 454.IBPluginDependency - 457.IBPluginDependency - 459.IBPluginDependency - 460.IBPluginDependency - 462.IBPluginDependency - 465.IBPluginDependency - 466.IBPluginDependency - 485.IBPluginDependency - 490.IBPluginDependency - 491.IBEditorWindowLastContentRect - 491.IBPluginDependency - 492.IBPluginDependency - 496.IBPluginDependency - 497.IBEditorWindowLastContentRect - 497.IBPluginDependency - 498.IBPluginDependency - 499.IBPluginDependency - 5.IBPluginDependency - 5.ImportedFromIB2 - 500.IBPluginDependency - 501.IBPluginDependency - 502.IBPluginDependency - 503.IBPluginDependency - 504.IBPluginDependency - 505.IBPluginDependency - 506.IBPluginDependency - 507.IBPluginDependency - 508.IBEditorWindowLastContentRect - 508.IBPluginDependency - 509.IBPluginDependency - 510.IBPluginDependency - 511.IBPluginDependency - 512.IBPluginDependency - 513.IBPluginDependency - 514.IBPluginDependency - 515.IBPluginDependency - 516.IBPluginDependency - 517.IBPluginDependency - 542.IBPluginDependency - 542.IBViewBoundsToFrameTransform - 543.IBPluginDependency - 544.IBPluginDependency - 545.IBPluginDependency - 546.IBPluginDependency - 547.IBPluginDependency - 548.IBPluginDependency - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 58.IBPluginDependency - 58.ImportedFromIB2 - 72.IBPluginDependency - 72.ImportedFromIB2 - 73.IBPluginDependency - 73.ImportedFromIB2 - 74.IBPluginDependency - 74.ImportedFromIB2 - 75.IBPluginDependency - 75.ImportedFromIB2 - 77.IBPluginDependency - 77.ImportedFromIB2 - 78.IBPluginDependency - 78.ImportedFromIB2 - 79.IBPluginDependency - 79.ImportedFromIB2 - 80.IBPluginDependency - 80.ImportedFromIB2 - 81.IBEditorWindowLastContentRect - 81.IBPluginDependency - 81.ImportedFromIB2 - 81.editorWindowContentRectSynchronizationRect - 82.IBPluginDependency - 82.ImportedFromIB2 - 83.IBPluginDependency - 83.ImportedFromIB2 - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{522, 812}, {146, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{436, 809}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{753, 187}, {275, 113}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {275, 83}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{547, 180}, {254, 283}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{187, 434}, {243, 243}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {167, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{753, 217}, {238, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {241, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{654, 239}, {194, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 802}, {197, 73}} - {{380, 836}, {434, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - {74, 862} - {{6, 978}, {478, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - {{604, 269}, {231, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - {{475, 832}, {234, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{746, 287}, {220, 133}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {215, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{504, 414}, {550, 592}} - com.apple.InterfaceBuilder.CocoaPlugin - {{504, 414}, {550, 592}} - - {{33, 99}, {480, 360}} - {3.40282e+38, 3.40282e+38} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{591, 420}, {83, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{523, 2}, {178, 283}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{753, 197}, {170, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{725, 289}, {246, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{674, 260}, {204, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{878, 180}, {164, 173}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - AUGgAABD8wAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{286, 129}, {275, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{23, 794}, {245, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{452, 109}, {196, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{145, 474}, {199, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - - YES - - - - - YES - - - YES - - - - 552 - - - - YES - - DemoView - NSView - - IBProjectSource - DemoView.h - - - - Quartz2DAppDelegate - NSObject - - selectDemo: - id - - - selectDemo: - - selectDemo: - id - - - - YES - - YES - _demoView - _popupButton - window - - - YES - DemoView - NSPopUpButton - NSWindow - - - - YES - - YES - _demoView - _popupButton - window - - - YES - - _demoView - DemoView - - - _popupButton - NSPopUpButton - - - window - NSWindow - - - - - IBProjectSource - Quartz2DAppDelegate.h - - - - - YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSBrowser - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSBrowser.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSDocument - NSObject - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - id - id - id - id - id - id - - - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocument.h - - - - NSDocument - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentScripting.h - - - - NSDocumentController - NSObject - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - id - id - id - id - - - - YES - - YES - clearRecentDocuments: - newDocument: - openDocument: - saveAllDocuments: - - - YES - - clearRecentDocuments: - id - - - newDocument: - id - - - openDocument: - id - - - saveAllDocuments: - id - - - - - IBFrameworkSource - AppKit.framework/Headers/NSDocumentController.h - - - - NSFontManager - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSMatrix - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSMatrix.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMenuItemCell - NSButtonCell - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItemCell.h - - - - NSMovieView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMovieView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSPopUpButton - NSButton - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButton.h - - - - NSPopUpButtonCell - NSMenuItemCell - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButtonCell.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSTableView - NSControl - - - - NSText - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSText.h - - - - NSTextView - NSText - - IBFrameworkSource - AppKit.framework/Headers/NSTextView.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../Quartz2D.xcodeproj - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - - - YES - {9, 8} - {7, 2} - - - - diff --git a/testing/Examples/Quartz2D/Quartz2D-Info.plist b/testing/Examples/Quartz2D/Quartz2D-Info.plist deleted file mode 100644 index f696cb23..00000000 --- a/testing/Examples/Quartz2D/Quartz2D-Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/testing/Examples/Quartz2D/Quartz2D.xcodeproj/project.pbxproj b/testing/Examples/Quartz2D/Quartz2D.xcodeproj/project.pbxproj deleted file mode 100644 index 61ad5b79..00000000 --- a/testing/Examples/Quartz2D/Quartz2D.xcodeproj/project.pbxproj +++ /dev/null @@ -1,450 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; - 256AC3DA0F4B6AC300CF3369 /* Quartz2DAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* Quartz2DAppDelegate.m */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FE0B970A12B1923E00034CC9 /* DemoAntialias.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0B970912B1923E00034CC9 /* DemoAntialias.m */; }; - FE0B973212B1A9B100034CC9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - FE0B973312B1A9B100034CC9 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; - FE0B973412B1A9B100034CC9 /* pattern.png in Resources */ = {isa = PBXBuildFile; fileRef = FE7F752812B03B5B00FDF52D /* pattern.png */; }; - FE0B973612B1A9B100034CC9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - FE0B973712B1A9B100034CC9 /* Quartz2DAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* Quartz2DAppDelegate.m */; }; - FE0B973812B1A9B100034CC9 /* Demo.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F72BF12B0131A00FDF52D /* Demo.m */; }; - FE0B973912B1A9B100034CC9 /* DemoPorterDuff.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F72C612B013C400FDF52D /* DemoPorterDuff.m */; }; - FE0B973A12B1A9B100034CC9 /* DemoView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F72CE12B014A600FDF52D /* DemoView.m */; }; - FE0B973B12B1A9B100034CC9 /* DemoAffineImages.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F750D12B0351C00FDF52D /* DemoAffineImages.m */; }; - FE0B973C12B1A9B100034CC9 /* DemoGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F75A012B0862D00FDF52D /* DemoGradient.m */; }; - FE0B973D12B1A9B100034CC9 /* DemoPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F765112B0905700FDF52D /* DemoPaths.m */; }; - FE0B973E12B1A9B100034CC9 /* DemoAntialias.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0B970912B1923E00034CC9 /* DemoAntialias.m */; }; - FE0B97F712B1C8FB00034CC9 /* DemoPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0B97F612B1C8FB00034CC9 /* DemoPattern.m */; }; - FE0B99BC12B1DE0400034CC9 /* stankard.png in Resources */ = {isa = PBXBuildFile; fileRef = FE0B99BB12B1DE0400034CC9 /* stankard.png */; }; - FE0B99BD12B1DE0400034CC9 /* stankard.png in Resources */ = {isa = PBXBuildFile; fileRef = FE0B99BB12B1DE0400034CC9 /* stankard.png */; }; - FE0B99F712B1E42200034CC9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97325FDCFA39411CA2CEA /* Foundation.framework */; }; - FE0B99F812B1E42300034CC9 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B97324FDCFA39411CA2CEA /* AppKit.framework */; }; - FE0B9AA712B1E62000034CC9 /* DemoPattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0B97F612B1C8FB00034CC9 /* DemoPattern.m */; }; - FE0B9B0112B1E7BF00034CC9 /* DemoJoinCapDash.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0B9B0012B1E7BF00034CC9 /* DemoJoinCapDash.m */; }; - FE0B9B0212B1E7BF00034CC9 /* DemoJoinCapDash.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0B9B0012B1E7BF00034CC9 /* DemoJoinCapDash.m */; }; - FE7F72C012B0131A00FDF52D /* Demo.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F72BF12B0131A00FDF52D /* Demo.m */; }; - FE7F72C712B013C400FDF52D /* DemoPorterDuff.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F72C612B013C400FDF52D /* DemoPorterDuff.m */; }; - FE7F72CF12B014A600FDF52D /* DemoView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F72CE12B014A600FDF52D /* DemoView.m */; }; - FE7F750E12B0351C00FDF52D /* DemoAffineImages.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F750D12B0351C00FDF52D /* DemoAffineImages.m */; }; - FE7F752912B03B5B00FDF52D /* pattern.png in Resources */ = {isa = PBXBuildFile; fileRef = FE7F752812B03B5B00FDF52D /* pattern.png */; }; - FE7F75A112B0862D00FDF52D /* DemoGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F75A012B0862D00FDF52D /* DemoGradient.m */; }; - FE7F765212B0905700FDF52D /* DemoPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F765112B0905700FDF52D /* DemoPaths.m */; }; - FE9F240712B28E41007FB405 /* DemoWindingRules.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9F240612B28E41007FB405 /* DemoWindingRules.m */; }; - FE9F240812B28E41007FB405 /* DemoWindingRules.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9F240612B28E41007FB405 /* DemoWindingRules.m */; }; - FE9F275C12B2E203007FB405 /* DemoSoftMask.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9F275B12B2E203007FB405 /* DemoSoftMask.m */; }; - FE9F275D12B2E203007FB405 /* DemoSoftMask.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9F275B12B2E203007FB405 /* DemoSoftMask.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; - 256AC3D80F4B6AC300CF3369 /* Quartz2DAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Quartz2DAppDelegate.h; sourceTree = ""; }; - 256AC3D90F4B6AC300CF3369 /* Quartz2DAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Quartz2DAppDelegate.m; sourceTree = ""; }; - 256AC3F00F4B6AF500CF3369 /* Quartz2D_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Quartz2D_Prefix.pch; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Quartz2D-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Quartz2D-Info.plist"; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* Quartz2D.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Quartz2D.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FE0B970812B1923E00034CC9 /* DemoAntialias.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoAntialias.h; sourceTree = ""; }; - FE0B970912B1923E00034CC9 /* DemoAntialias.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoAntialias.m; sourceTree = ""; }; - FE0B974312B1A9B100034CC9 /* Quartz2D.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Quartz2D.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FE0B97F512B1C8FB00034CC9 /* DemoPattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoPattern.h; sourceTree = ""; }; - FE0B97F612B1C8FB00034CC9 /* DemoPattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoPattern.m; sourceTree = ""; }; - FE0B99BB12B1DE0400034CC9 /* stankard.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = stankard.png; sourceTree = ""; }; - FE0B9AFF12B1E7BF00034CC9 /* DemoJoinCapDash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoJoinCapDash.h; sourceTree = ""; }; - FE0B9B0012B1E7BF00034CC9 /* DemoJoinCapDash.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoJoinCapDash.m; sourceTree = ""; }; - FE7F72BE12B0131A00FDF52D /* Demo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Demo.h; sourceTree = ""; }; - FE7F72BF12B0131A00FDF52D /* Demo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Demo.m; sourceTree = ""; }; - FE7F72C512B013C400FDF52D /* DemoPorterDuff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoPorterDuff.h; sourceTree = ""; }; - FE7F72C612B013C400FDF52D /* DemoPorterDuff.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoPorterDuff.m; sourceTree = ""; }; - FE7F72CD12B014A600FDF52D /* DemoView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoView.h; sourceTree = ""; }; - FE7F72CE12B014A600FDF52D /* DemoView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoView.m; sourceTree = ""; }; - FE7F750C12B0351C00FDF52D /* DemoAffineImages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoAffineImages.h; sourceTree = ""; }; - FE7F750D12B0351C00FDF52D /* DemoAffineImages.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoAffineImages.m; sourceTree = ""; }; - FE7F752812B03B5B00FDF52D /* pattern.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pattern.png; sourceTree = ""; }; - FE7F759F12B0862D00FDF52D /* DemoGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoGradient.h; sourceTree = ""; }; - FE7F75A012B0862D00FDF52D /* DemoGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoGradient.m; sourceTree = ""; }; - FE7F765012B0905700FDF52D /* DemoPaths.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoPaths.h; sourceTree = ""; }; - FE7F765112B0905700FDF52D /* DemoPaths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoPaths.m; sourceTree = ""; }; - FE9F240512B28E41007FB405 /* DemoWindingRules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoWindingRules.h; sourceTree = ""; }; - FE9F240612B28E41007FB405 /* DemoWindingRules.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoWindingRules.m; sourceTree = ""; }; - FE9F275A12B2E203007FB405 /* DemoSoftMask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoSoftMask.h; sourceTree = ""; }; - FE9F275B12B2E203007FB405 /* DemoSoftMask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoSoftMask.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE0B973F12B1A9B100034CC9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FE0B99F712B1E42200034CC9 /* Foundation.framework in Frameworks */, - FE0B99F812B1E42300034CC9 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - FE0B97F512B1C8FB00034CC9 /* DemoPattern.h */, - FE0B97F612B1C8FB00034CC9 /* DemoPattern.m */, - 256AC3D80F4B6AC300CF3369 /* Quartz2DAppDelegate.h */, - 256AC3D90F4B6AC300CF3369 /* Quartz2DAppDelegate.m */, - FE7F72BE12B0131A00FDF52D /* Demo.h */, - FE7F72BF12B0131A00FDF52D /* Demo.m */, - FE7F72C512B013C400FDF52D /* DemoPorterDuff.h */, - FE7F72C612B013C400FDF52D /* DemoPorterDuff.m */, - FE7F759F12B0862D00FDF52D /* DemoGradient.h */, - FE7F75A012B0862D00FDF52D /* DemoGradient.m */, - FE7F72CD12B014A600FDF52D /* DemoView.h */, - FE7F72CE12B014A600FDF52D /* DemoView.m */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - FE7F750C12B0351C00FDF52D /* DemoAffineImages.h */, - FE7F750D12B0351C00FDF52D /* DemoAffineImages.m */, - FE7F765012B0905700FDF52D /* DemoPaths.h */, - FE7F765112B0905700FDF52D /* DemoPaths.m */, - FE0B970812B1923E00034CC9 /* DemoAntialias.h */, - FE0B970912B1923E00034CC9 /* DemoAntialias.m */, - FE0B9AFF12B1E7BF00034CC9 /* DemoJoinCapDash.h */, - FE0B9B0012B1E7BF00034CC9 /* DemoJoinCapDash.m */, - FE9F275A12B2E203007FB405 /* DemoSoftMask.h */, - FE9F275B12B2E203007FB405 /* DemoSoftMask.m */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* Quartz2D.app */, - FE0B974312B1A9B100034CC9 /* Quartz2D.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* Quartz2D */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 19C28FACFE9D520D11CA2CBB /* Products */, - FE9F240512B28E41007FB405 /* DemoWindingRules.h */, - FE9F240612B28E41007FB405 /* DemoWindingRules.m */, - ); - name = Quartz2D; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 256AC3F00F4B6AF500CF3369 /* Quartz2D_Prefix.pch */, - 29B97316FDCFA39411CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - FE0B99BB12B1DE0400034CC9 /* stankard.png */, - FE7F752812B03B5B00FDF52D /* pattern.png */, - 8D1107310486CEB800E47090 /* Quartz2D-Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* Quartz2D */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Quartz2D" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Quartz2D; - productInstallPath = "$(HOME)/Applications"; - productName = Quartz2D; - productReference = 8D1107320486CEB800E47090 /* Quartz2D.app */; - productType = "com.apple.product-type.application"; - }; - FE0B973012B1A9B100034CC9 /* Quartz2D-Windows-i386 */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE0B974112B1A9B100034CC9 /* Build configuration list for PBXNativeTarget "Quartz2D-Windows-i386" */; - buildPhases = ( - FE0B973112B1A9B100034CC9 /* Resources */, - FE0B973512B1A9B100034CC9 /* Sources */, - FE0B973F12B1A9B100034CC9 /* Frameworks */, - FE0B9A1412B1E4B500034CC9 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Quartz2D-Windows-i386"; - productInstallPath = "$(HOME)/Applications"; - productName = Quartz2D; - productReference = FE0B974312B1A9B100034CC9 /* Quartz2D.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Quartz2D" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* Quartz2D */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* Quartz2D */, - FE0B973012B1A9B100034CC9 /* Quartz2D-Windows-i386 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, - FE7F752912B03B5B00FDF52D /* pattern.png in Resources */, - FE0B99BC12B1DE0400034CC9 /* stankard.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE0B973112B1A9B100034CC9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE0B973212B1A9B100034CC9 /* InfoPlist.strings in Resources */, - FE0B973312B1A9B100034CC9 /* MainMenu.xib in Resources */, - FE0B973412B1A9B100034CC9 /* pattern.png in Resources */, - FE0B99BD12B1DE0400034CC9 /* stankard.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FE0B9A1412B1E4B500034CC9 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -framework CoreData -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - 256AC3DA0F4B6AC300CF3369 /* Quartz2DAppDelegate.m in Sources */, - FE7F72C012B0131A00FDF52D /* Demo.m in Sources */, - FE7F72C712B013C400FDF52D /* DemoPorterDuff.m in Sources */, - FE7F72CF12B014A600FDF52D /* DemoView.m in Sources */, - FE7F750E12B0351C00FDF52D /* DemoAffineImages.m in Sources */, - FE7F75A112B0862D00FDF52D /* DemoGradient.m in Sources */, - FE7F765212B0905700FDF52D /* DemoPaths.m in Sources */, - FE0B970A12B1923E00034CC9 /* DemoAntialias.m in Sources */, - FE0B97F712B1C8FB00034CC9 /* DemoPattern.m in Sources */, - FE0B9B0112B1E7BF00034CC9 /* DemoJoinCapDash.m in Sources */, - FE9F240712B28E41007FB405 /* DemoWindingRules.m in Sources */, - FE9F275C12B2E203007FB405 /* DemoSoftMask.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FE0B973512B1A9B100034CC9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE0B973612B1A9B100034CC9 /* main.m in Sources */, - FE0B973712B1A9B100034CC9 /* Quartz2DAppDelegate.m in Sources */, - FE0B973812B1A9B100034CC9 /* Demo.m in Sources */, - FE0B973912B1A9B100034CC9 /* DemoPorterDuff.m in Sources */, - FE0B973A12B1A9B100034CC9 /* DemoView.m in Sources */, - FE0B973B12B1A9B100034CC9 /* DemoAffineImages.m in Sources */, - FE0B973C12B1A9B100034CC9 /* DemoGradient.m in Sources */, - FE0B973D12B1A9B100034CC9 /* DemoPaths.m in Sources */, - FE0B973E12B1A9B100034CC9 /* DemoAntialias.m in Sources */, - FE0B9AA712B1E62000034CC9 /* DemoPattern.m in Sources */, - FE0B9B0212B1E7BF00034CC9 /* DemoJoinCapDash.m in Sources */, - FE9F240812B28E41007FB405 /* DemoWindingRules.m in Sources */, - FE9F275D12B2E203007FB405 /* DemoSoftMask.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 1DDD58150DA1D0A300B32029 /* English */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INFOPLIST_FILE = "Quartz2D-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - PRODUCT_NAME = Quartz2D; - }; - name = Release; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Release; - }; - FE0B974212B1A9B100034CC9 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INFOPLIST_FILE = "Quartz2D-Info.plist"; - OTHER_LDFLAGS = ( - "-Wl,--enable-auto-import", - "-mwindows", - "-mconsole", - ); - PREBINDING = NO; - PRODUCT_NAME = Quartz2D; - SYMROOT = build/Windows; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Quartz2D" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Quartz2D" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FE0B974112B1A9B100034CC9 /* Build configuration list for PBXNativeTarget "Quartz2D-Windows-i386" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE0B974212B1A9B100034CC9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/testing/Examples/Quartz2D/Quartz2DAppDelegate.h b/testing/Examples/Quartz2D/Quartz2DAppDelegate.h deleted file mode 100644 index a16e7095..00000000 --- a/testing/Examples/Quartz2D/Quartz2DAppDelegate.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// Quartz2DAppDelegate.h -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -@class DemoView; - -@interface Quartz2DAppDelegate : NSObject { - NSWindow *window; - NSArray *_allDemos; - IBOutlet NSPopUpButton *_popupButton; - IBOutlet DemoView *_demoView; -} - -@property(assign) IBOutlet NSWindow *window; - -- (void) selectDemo: sender; - -@end diff --git a/testing/Examples/Quartz2D/Quartz2DAppDelegate.m b/testing/Examples/Quartz2D/Quartz2DAppDelegate.m deleted file mode 100644 index 01154b68..00000000 --- a/testing/Examples/Quartz2D/Quartz2DAppDelegate.m +++ /dev/null @@ -1,74 +0,0 @@ -// -// Quartz2DAppDelegate.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "Quartz2DAppDelegate.h" -#import "Demo.h" -#import "DemoView.h" -#import - -@implementation Quartz2DAppDelegate - -@synthesize window; - -NSArray *ClassGetSubclasses(Class parentClass) { - int numClasses = objc_getClassList(NULL, 0); - Class *classes = NULL; - - classes = malloc(sizeof(Class) * numClasses); - numClasses = objc_getClassList(classes, numClasses); - - NSMutableArray *result = [NSMutableArray array]; - NSInteger i; - - for (i = 0; i < numClasses; i++) { - Class superClass = classes[i]; - do { - superClass = class_getSuperclass(superClass); - } while (superClass && superClass != parentClass); - - if (superClass == nil) { - continue; - } - - [result addObject: classes[i]]; - } - - free(classes); - - return result; -} - -- (void) applicationDidFinishLaunching: (NSNotification *) aNotification { - - [_popupButton removeAllItems]; - - NSArray *demoClasses = ClassGetSubclasses([Demo class]); - - NSMutableArray *demoInstances = [NSMutableArray array]; - - for (Class demoClass in demoClasses) - [demoInstances addObject: [[demoClass alloc] init]]; - - _allDemos = [demoInstances copy]; - - for (Demo *demo in _allDemos) { - [_popupButton addItemWithTitle: [demo title]]; - } - - [_demoView setDemo: [demoInstances objectAtIndex: 0]]; -} - -- (void) selectDemo: sender { - NSString *title = [sender titleOfSelectedItem]; - - for (Demo *check in _allDemos) - if ([[check title] isEqual: title]) - [_demoView setDemo: check]; -} - -@end diff --git a/testing/Examples/Quartz2D/Quartz2D_Prefix.pch b/testing/Examples/Quartz2D/Quartz2D_Prefix.pch deleted file mode 100644 index f48b88dd..00000000 --- a/testing/Examples/Quartz2D/Quartz2D_Prefix.pch +++ /dev/null @@ -1,7 +0,0 @@ -// -// Prefix header for all source files of the 'Quartz2D' target in the 'Quartz2D' project -// - -#ifdef __OBJC__ - #import -#endif diff --git a/testing/Examples/Quartz2D/main.m b/testing/Examples/Quartz2D/main.m deleted file mode 100644 index 07efbf9c..00000000 --- a/testing/Examples/Quartz2D/main.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// main.m -// Quartz2D -// -// Created by Christopher Lloyd on 12/8/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -int main(int argc, char *argv[]) { - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/testing/Examples/Quartz2D/pattern.png b/testing/Examples/Quartz2D/pattern.png deleted file mode 100644 index 968e3891b2511f3ec7c4cfac5b04b7daaf72143f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652274 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°!YMCa? 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%0A>^mfX_)pKm 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

01Pxe2mO(1V$yZtM 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 z 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ǯxYBvtbY4hJwD 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

O{;v_=bydj5iy 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%0A>?Y5sv#2XB^ZM*t-`;Y#{ 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�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

yqT6j!f6kH6hS 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


{ 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 H&D8(d(DNM$ diff --git a/testing/SWRender/redLZWSquare.tif b/testing/SWRender/redLZWSquare.tif deleted file mode 100644 index 7b3838da3c3106f09d3363831e74336e32d3fc3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3588 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 diff --git a/testing/UnitTests/Array.h b/testing/UnitTests/Array.h deleted file mode 100644 index a2e4eed3..00000000 --- a/testing/UnitTests/Array.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface Array : SenTestCase { -} - -@end diff --git a/testing/UnitTests/Array.m b/testing/UnitTests/Array.m deleted file mode 100644 index 2de192e3..00000000 --- a/testing/UnitTests/Array.m +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "Array.h" - -@interface NSArray (HiddenStuff) -- (void) _insertObject: (id) obj inArraySortedByDescriptors: (id) desc; -@end - -@implementation Array -- (void) testMutableArray { - id array = [NSMutableArray array]; - for (int i = 0; i < 1000; i++) { - [array addObject: [NSNumber numberWithInt: i]]; - } - array = [array copy]; - id otherArray = [array mutableCopy]; - id yetAnotherArray = [array mutableCopy]; - for (id i in array) { - [otherArray removeObject: i]; - - [yetAnotherArray addObject: i]; - } - - STAssertEquals((unsigned) [otherArray count], (unsigned) 0, nil); - STAssertEquals((unsigned) [yetAnotherArray count], (unsigned) 2000, nil); - - [array release]; - [otherArray release]; - [yetAnotherArray release]; -} - -- (void) testPrivateSortedInsert { - id sortDesc = [[[NSSortDescriptor alloc] initWithKey: @"self" - ascending: NO] autorelease]; - id descArray = [NSArray arrayWithObject: sortDesc]; - NSMutableArray *array = [NSMutableArray new]; - - for (int i = 0; i < 100; i++) { - [array _insertObject: [NSNumber numberWithInt: rand()] - inArraySortedByDescriptors: descArray]; - id other = [array mutableCopy]; - [other sortUsingDescriptors: descArray]; - - STAssertEqualObjects( - array, other, - @"sorted array not equal to array after insertion"); - - [other release]; - } - - [array release]; -} - -@end diff --git a/testing/UnitTests/Bindings/NibBasedTest.h b/testing/UnitTests/Bindings/NibBasedTest.h deleted file mode 100644 index af5f846b..00000000 --- a/testing/UnitTests/Bindings/NibBasedTest.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import - -@interface NibBasedTest : SenTestCase { - NSArray *_topLevelObjects; -} - -@end diff --git a/testing/UnitTests/Bindings/NibBasedTest.m b/testing/UnitTests/Bindings/NibBasedTest.m deleted file mode 100644 index be5bb07b..00000000 --- a/testing/UnitTests/Bindings/NibBasedTest.m +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NibBasedTest.h" -#import - -@implementation NibBasedTest - -- (void) dealloc { - [_topLevelObjects release]; - [super dealloc]; -} - -- (void) setUp { - id nib = [[NSNib alloc] - initWithNibNamed: [self className] - bundle: [NSBundle bundleForClass: [self class]]]; - - [nib instantiateNibWithOwner: self topLevelObjects: &_topLevelObjects]; - [_topLevelObjects retain]; - - [nib release]; -} - -- (void) tearDown { - [_topLevelObjects release]; - _topLevelObjects = nil; -} - -@end diff --git a/testing/UnitTests/Bindings/ObjectController.h b/testing/UnitTests/Bindings/ObjectController.h deleted file mode 100644 index ebce9972..00000000 --- a/testing/UnitTests/Bindings/ObjectController.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NibBasedTest.h" - -@interface ObjectController : NibBasedTest { - float _floatValue; - NSObjectController *_objectController; - NSSlider *_slider; -} - -@end diff --git a/testing/UnitTests/Bindings/ObjectController.m b/testing/UnitTests/Bindings/ObjectController.m deleted file mode 100644 index 130c5d56..00000000 --- a/testing/UnitTests/Bindings/ObjectController.m +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "ObjectController.h" - -@implementation ObjectController - -- (void) testSetting { - [self setValue: [NSNumber numberWithFloat: 20.0f] forKey: @"floatValue"]; - STAssertEquals([_slider floatValue], 20.0f, nil); - STAssertEquals(_floatValue, 20.0f, nil); -} - -- (void) testGetting { - [_slider setFloatValue: 40.0]; - STAssertEquals([_slider floatValue], 40.0f, nil); - STAssertEquals(_floatValue, 40.0f, nil); -} - -@end diff --git a/testing/UnitTests/Bindings/ObjectController.xib b/testing/UnitTests/Bindings/ObjectController.xib deleted file mode 100644 index 4a52150b..00000000 --- a/testing/UnitTests/Bindings/ObjectController.xib +++ /dev/null @@ -1,313 +0,0 @@ - - - - 1050 - 9G55 - 677 - 949.43 - 353.00 - - YES - - - YES - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES - - ObjectController - - - FirstResponder - - - NSApplication - - - - YES - radius - value - floatValue - - YES - - - - 15 - 2 - {{196, 353}, {275, 157}} - 603979776 - Window - NSWindow - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - {{46, 104}, {96, 21}} - - YES - - 67239424 - 0 - - - Helvetica - 1.200000e+01 - 16 - - - 1.000000e+02 - 0.000000e+00 - 0.000000e+00 - 0.000000e+00 - 0 - 1 - NO - NO - - - - {275, 157} - - {{0, 0}, {1440, 878}} - {3.40282e+38, 3.40282e+38} - - - - - YES - - - _slider - - - - 6 - - - - _objectController - - - - 7 - - - - contentObject: self - - - - - - contentObject: self - contentObject - self - 2 - - - 8 - - - - value: selection.floatValue - - - - - - value: selection.floatValue - value - selection.floatValue - 2 - - - 12 - - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - 2 - - - YES - - - - - - 3 - - - YES - - - - - - 4 - - - YES - - - - - - 5 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 1.IBPluginDependency - 2.IBEditorWindowLastContentRect - 2.IBPluginDependency - 2.IBWindowTemplateEditedContentRect - 2.NSWindowTemplate.visibleAtLaunch - 3.IBPluginDependency - 4.IBPluginDependency - 5.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilder.CocoaPlugin - {{0, 688}, {275, 157}} - com.apple.InterfaceBuilder.CocoaPlugin - {{0, 688}, {275, 157}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 12 - - - - YES - - NibBasedTest - SenTestCase - - IBProjectSource - Bindings/NibBasedTest.h - - - - ObjectController - NibBasedTest - - IBProjectSource - Bindings/ObjectController.h - - - - ObjectController - NibBasedTest - - YES - - YES - _objectController - _slider - - - YES - id - id - - - - IBUserSource - - - - - - 0 - ../UnitTests.xcodeproj - 3 - - diff --git a/testing/UnitTests/Bindings/ObservableArray.h b/testing/UnitTests/Bindings/ObservableArray.h deleted file mode 100644 index dc8da56e..00000000 --- a/testing/UnitTests/Bindings/ObservableArray.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface _NSObservableArray : NSMutableArray -- (void) setROI: (id) roi; -@end - -@interface ObservableArray : SenTestCase { - _NSObservableArray *_array; - id _lastObservedKey; -} -@property(copy) NSString *lastObservedKey; -@end diff --git a/testing/UnitTests/Bindings/ObservableArray.m b/testing/UnitTests/Bindings/ObservableArray.m deleted file mode 100644 index e2892fe7..00000000 --- a/testing/UnitTests/Bindings/ObservableArray.m +++ /dev/null @@ -1,234 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "ObservableArray.h" - -#define AssertLastKeyWas(a) \ - STAssertEqualObjects(self.lastObservedKey, a, nil); \ - self.lastObservedKey = nil; - -void *ObservableArrayTestContext; - -@implementation ObservableArray -@synthesize lastObservedKey = _lastObservedKey; - -- (void) setUp { - _array = [[NSClassFromString(@"_NSObservableArray") alloc] init]; - if (!_array) - return; - - [_array addObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"First", @"name", - [NSNumber numberWithInt: 10], @"value", - nil]]; - [_array addObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Second", @"name", - [NSNumber numberWithInt: 20], @"value", - nil]]; - [_array addObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Third", @"name", - [NSNumber numberWithInt: 30], @"value", - nil]]; - [_array addObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Fourth", @"name", - [NSNumber numberWithInt: 40], @"value", - nil]]; - [_array addObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Fifth", @"name", - [NSNumber numberWithInt: 50], @"value", - nil]]; -} - -- (void) testArrayMutation { - if (!_array) - return; - - [_array addObserver: self - forKeyPath: @"@count" - options: 0 - context: &ObservableArrayTestContext]; - - [_array addObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Sixth", @"name", - [NSNumber numberWithInt: 60], @"value", - nil]]; - AssertLastKeyWas(@"@count"); - - [_array removeLastObject]; - - AssertLastKeyWas(@"@count"); - - [_array replaceObjectAtIndex: 3 - withObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Sixth", @"name", - [NSNumber numberWithInt: 60], - @"value", nil]]; - AssertLastKeyWas(@"@count"); - - [_array removeObserver: self forKeyPath: @"@count"]; -} - -- (void) testArrayOperatorMutation { - if (!_array) - return; - - [_array addObserver: self - forKeyPath: @"@avg.value" - options: 0 - context: &ObservableArrayTestContext]; - - [_array addObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Sixth", @"name", - [NSNumber numberWithInt: 60], @"value", - nil]]; - - AssertLastKeyWas(@"@avg.value"); - - [[_array objectAtIndex: 0] setValue: [NSNumber numberWithInt: 0] - forKey: @"value"]; - - AssertLastKeyWas(@"@avg.value"); - - [_array removeObserver: self forKeyPath: @"@avg.value"]; -} - -- (void) testArraySimpleMutation { - if (!_array) - return; - - [_array addObserver: self - forKeyPath: @"value" - options: 0 - context: &ObservableArrayTestContext]; - - [[_array objectAtIndex: 0] setValue: [NSNumber numberWithInt: 0] - forKey: @"value"]; - - AssertLastKeyWas(@"value"); - - [_array removeObserver: self forKeyPath: @"value"]; -} - -- (void) testROI { - if (!_array) - return; - - [_array addObserver: self - forKeyPath: @"value" - options: 0 - context: &ObservableArrayTestContext]; - id indexes = [NSIndexSet indexSetWithIndexesInRange: NSMakeRange(2, 2)]; - id irrelevant = - [NSMutableIndexSet indexSetWithIndexesInRange: NSMakeRange(0, 2)]; - [irrelevant addIndexesInRange: NSMakeRange(4, [_array count] - 4)]; - - [_array setROI: indexes]; - - for (int i = [indexes firstIndex]; i != NSNotFound; - i = [indexes indexGreaterThanIndex: i]) { - [[_array objectAtIndex: i] setValue: [NSNumber numberWithInt: 0] - forKey: @"value"]; - AssertLastKeyWas(@"value"); - } - - for (int i = [irrelevant firstIndex]; i != NSNotFound; - i = [irrelevant indexGreaterThanIndex: i]) { - [[_array objectAtIndex: i] setValue: [NSNumber numberWithInt: 0] - forKey: @"value"]; - AssertLastKeyWas(nil); - } - - [_array removeObjectAtIndex: 1]; - [_array insertObject: [NSMutableDictionary - dictionaryWithObjectsAndKeys: - @"Sixth", @"name", - [NSNumber numberWithInt: 60], - @"value", nil] - atIndex: 1]; - - for (int i = [indexes firstIndex]; i != NSNotFound; - i = [indexes indexGreaterThanIndex: i]) { - [[_array objectAtIndex: i] setValue: [NSNumber numberWithInt: 0] - forKey: @"value"]; - AssertLastKeyWas(@"value"); - } - - for (int i = [irrelevant firstIndex]; i != NSNotFound; - i = [irrelevant indexGreaterThanIndex: i]) { - [[_array objectAtIndex: i] setValue: [NSNumber numberWithInt: 0] - forKey: @"value"]; - AssertLastKeyWas(nil); - } - - [_array addObserver: self - forKeyPath: @"@max.value" - options: 0 - context: &ObservableArrayTestContext]; - [_array removeObserver: self forKeyPath: @"value"]; - - indexes = [NSIndexSet - indexSetWithIndexesInRange: NSMakeRange(0, [_array count])]; - for (int i = [irrelevant firstIndex]; i != NSNotFound; - i = [irrelevant indexGreaterThanIndex: i]) { - [[_array objectAtIndex: i] setValue: [NSNumber numberWithInt: 0] - forKey: @"value"]; - AssertLastKeyWas(@"@max.value"); - } - - [_array removeObserver: self forKeyPath: @"@max.value"]; -} - -- (void) observeValueForKeyPath: (NSString *) keyPath - ofObject: (id) object - change: (NSDictionary *) change - context: (void *) context -{ - if (context == &ObservableArrayTestContext) { - self.lastObservedKey = keyPath; - } else { - [super observeValueForKeyPath: keyPath - ofObject: object - change: change - context: context]; - } -} - -- (void) tearDown { - self.lastObservedKey = nil; - - if (!_array) - return; - - for (id item in _array) { - STAssertEqualObjects([item observationInfo], nil, nil); - } - - [_array release]; -} - -@end diff --git a/testing/UnitTests/Bindings/TableViewTest.h b/testing/UnitTests/Bindings/TableViewTest.h deleted file mode 100644 index 3c5460e6..00000000 --- a/testing/UnitTests/Bindings/TableViewTest.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NibBasedTest.h" -#import - -@interface TableViewTest : NibBasedTest { - NSTableView *IBOutlet _tableView; - NSArrayController *IBOutlet _arrayController; - NSArray *_table; -} -@property(copy) NSArray *table; - -@end diff --git a/testing/UnitTests/Bindings/TableViewTest.m b/testing/UnitTests/Bindings/TableViewTest.m deleted file mode 100644 index c7ec69f4..00000000 --- a/testing/UnitTests/Bindings/TableViewTest.m +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "TableViewTest.h" - -@implementation TableViewTest -@synthesize table = _table; - -- (void) dealloc { - [_table release]; - [super dealloc]; -} - -- (void) setUp { - [super setUp]; - [_arrayController bind: @"contentArray" - toObject: self - withKeyPath: @"table" - options: nil]; - - id table = [NSMutableArray array]; - - [table addObject: [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"Test", @"name", - [NSNumber numberWithInt: 10], - @"value", nil]]; - [table addObject: [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"Something", @"name", - [NSNumber numberWithInt: 20], - @"value", nil]]; - [table addObject: [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"Ultimate", @"name", - [NSNumber numberWithInt: 30], - @"value", nil]]; - [table addObject: [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"Nothing", @"name", - [NSNumber numberWithInt: 40], - @"value", nil]]; - [table addObject: [NSMutableDictionary dictionaryWithObjectsAndKeys: - @"Abcdefg", @"name", - [NSNumber numberWithInt: 50], - @"value", nil]]; - - self.table = table; -} - -- (void) testBindings { - STAssertEquals((int) [_tableView numberOfRows], (int) [_table count], nil); - - NSCell *cell = [_tableView preparedCellAtColumn: 0 row: 0]; - STAssertEqualObjects([cell objectValue], @"Test", nil); - - [_tableView - setSortDescriptors: - [NSArray - arrayWithObject: [[[_tableView tableColumns] - objectAtIndex: 0] - sortDescriptorPrototype]]]; - - cell = [_tableView preparedCellAtColumn: 0 row: 0]; - STAssertEqualObjects([cell objectValue], @"Abcdefg", nil); - - [_arrayController - setFilterPredicate: - [NSPredicate predicateWithFormat: @"name endswith %@", - @"thing"]]; - - cell = [_tableView preparedCellAtColumn: 0 row: 0]; - STAssertEqualObjects([cell objectValue], @"Nothing", nil); -} - -@end diff --git a/testing/UnitTests/Bindings/TableViewTest.xib b/testing/UnitTests/Bindings/TableViewTest.xib deleted file mode 100644 index 6a8afedb..00000000 --- a/testing/UnitTests/Bindings/TableViewTest.xib +++ /dev/null @@ -1,608 +0,0 @@ - - - - 1050 - 9G55 - 677 - 949.43 - 353.00 - - YES - - - - YES - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES - - TableViewTest - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{196, 109}, {489, 401}} - 603979776 - Window - NSWindow - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - - YES - - - 2304 - - YES - - - 256 - {417, 328} - - YES - - - 256 - {417, 17} - - - - - - 256 - {{418, 0}, {16, 17}} - - - - YES - - 1.340000e+02 - 4.000000e+01 - 1.000000e+03 - - 75628032 - 0 - - - LucidaGrande - 1.100000e+01 - 3100 - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - 3 - MAA - - - - - 337772096 - 2048 - Text Cell - - LucidaGrande - 1.300000e+01 - 1044 - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2OQA - - - - 6 - System - controlTextColor - - - - 3 - YES - YES - - - - 2.770000e+02 - 4.000000e+01 - 1.000000e+03 - - 75628032 - 0 - - - - - - - -2080244224 - 131072 - - - - 1.000000e+02 - 0.000000e+00 - 5.000000e+01 - 0.000000e+00 - 0 - 1 - NO - NO - - 3 - YES - YES - - - - 3.000000e+00 - 2.000000e+00 - - 3 - MQA - - - 6 - System - gridColor - - 3 - MC41AA - - - 1.700000e+01 - -700448768 - 4 - 15 - 0 - YES - - - {{1, 17}, {417, 328}} - - - - - 4 - - - - 256 - {{418, 17}, {15, 328}} - - - _doScroller: - 3.700000e+01 - 1.947368e-01 - - - - 256 - {{1, 345}, {417, 15}} - - 1 - - _doScroller: - 9.936306e-01 - - - - 2304 - - YES - - - {{1, 0}, {417, 17}} - - - - - 4 - - - - {{20, 20}, {434, 361}} - - - 50 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - {489, 401} - - - {{0, 0}, {1440, 878}} - {3.40282e+38, 3.40282e+38} - - - - YES - name - image - value - - YES - - YES - YES - YES - YES - YES - - - - - YES - - - value: arrangedObjects.name - - - - - - value: arrangedObjects.name - value - arrangedObjects.name - 2 - - - 15 - - - - value: arrangedObjects.value - - - - - - value: arrangedObjects.value - value - arrangedObjects.value - 2 - - - 19 - - - - _tableView - - - - 35 - - - - _arrayController - - - - 36 - - - - content: arrangedObjects - - - - - - content: arrangedObjects - content - arrangedObjects - 2 - - - 37 - - - - selectionIndexes: selectionIndexes - - - - - - selectionIndexes: selectionIndexes - selectionIndexes - selectionIndexes - - 2 - - - 39 - - - - sortDescriptors: sortDescriptors - - - - - - sortDescriptors: sortDescriptors - sortDescriptors - sortDescriptors - - 2 - - - 40 - - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - YES - - - - - - 2 - - - YES - - - - - - 3 - - - YES - - - - - - - - - 4 - - - - - 5 - - - - - 6 - - - YES - - - - - - - 7 - - - - - 8 - - - YES - - - - - - 9 - - - YES - - - - - - 11 - - - - - 13 - - - - - 18 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 1.IBEditorWindowLastContentRect - 1.IBPluginDependency - 1.IBWindowTemplateEditedContentRect - 1.NSWindowTemplate.visibleAtLaunch - 11.IBPluginDependency - 13.IBPluginDependency - 18.IBPluginDependency - 2.IBPluginDependency - 3.IBPluginDependency - 4.IBPluginDependency - 5.IBPluginDependency - 6.IBPluginDependency - 7.IBPluginDependency - 8.IBPluginDependency - 9.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilderKit - {{253, 386}, {489, 401}} - com.apple.InterfaceBuilder.CocoaPlugin - {{253, 386}, {489, 401}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 44 - - - - YES - - NibBasedTest - SenTestCase - - IBProjectSource - Bindings/NibBasedTest.h - - - - TableViewTest - NibBasedTest - - IBProjectSource - Bindings/TableViewTest.h - - - - TableViewTest - NibBasedTest - - YES - - YES - _arrayController - _tableView - - - YES - id - id - - - - IBUserSource - - - - - - 0 - ../UnitTests.xcodeproj - 3 - - diff --git a/testing/UnitTests/Bindings/TextFieldBindings.h b/testing/UnitTests/Bindings/TextFieldBindings.h deleted file mode 100644 index dda9e70d..00000000 --- a/testing/UnitTests/Bindings/TextFieldBindings.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NibBasedTest.h" -#import - -@interface TextFieldBindings : NibBasedTest { - id IBOutlet _textField; - id _textFieldContents; -} -@property(copy) NSString *textFieldContents; - -@end diff --git a/testing/UnitTests/Bindings/TextFieldBindings.m b/testing/UnitTests/Bindings/TextFieldBindings.m deleted file mode 100644 index e84dbc1d..00000000 --- a/testing/UnitTests/Bindings/TextFieldBindings.m +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "TextFieldBindings.h" - -@implementation TextFieldBindings -@synthesize textFieldContents = _textFieldContents; - -- (void) setTextFieldContents: (NSString *) value { - if (value != _textFieldContents) { - NSLog(@"set to %@", value); - [_textFieldContents release]; - _textFieldContents = [value retain]; - } -} - -- (void) dealloc { - [_textFieldContents release]; - [super dealloc]; -} - -- (void) testManualSetting { - self.textFieldContents = @"Test"; - [_textField setStringValue: @"NotTest"]; - - STAssertEqualObjects([_textField objectValue], @"NotTest", nil); -} - -- (void) testBindingSetting { - self.textFieldContents = @"Test2"; - - STAssertEqualObjects([_textField stringValue], @"Test2blah", nil); - STAssertEqualObjects(_textFieldContents, @"Test2", nil); -} - -@end diff --git a/testing/UnitTests/Bindings/TextFieldBindings.xib b/testing/UnitTests/Bindings/TextFieldBindings.xib deleted file mode 100644 index b7bb6d7c..00000000 --- a/testing/UnitTests/Bindings/TextFieldBindings.xib +++ /dev/null @@ -1,280 +0,0 @@ - - - - 1050 - 9G55 - 677 - 949.43 - 353.00 - - YES - - - - YES - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - YES - - - YES - - - - YES - - TextFieldBindings - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{196, 298}, {450, 212}} - 603979776 - Window - NSWindow - - {3.40282e+38, 3.40282e+38} - - - 256 - - YES - - - 268 - {{20, 170}, {96, 22}} - - YES - - -1804468671 - 272630784 - - - LucidaGrande - 1.300000e+01 - 1044 - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - 3 - MAA - - - - - - {450, 212} - - - {{0, 0}, {1440, 878}} - {3.40282e+38, 3.40282e+38} - - - - - YES - - - _textField - - - - 5 - - - - displayPatternValue1: textFieldContents - - - - - - displayPatternValue1: textFieldContents - displayPatternValue1 - textFieldContents - - NSDisplayPattern - %{value1}@blah - - 2 - - - 21 - - - - initialFirstResponder - - - - 22 - - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - YES - - - - - - 2 - - - YES - - - - - - 3 - - - YES - - - - - - 4 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - -3.IBPluginDependency - 1.IBEditorWindowLastContentRect - 1.IBPluginDependency - 1.IBWindowTemplateEditedContentRect - 1.NSWindowTemplate.visibleAtLaunch - 2.IBPluginDependency - 3.IBPluginDependency - 4.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilderKit - com.apple.InterfaceBuilderKit - {{130, 185}, {450, 212}} - com.apple.InterfaceBuilder.CocoaPlugin - {{130, 185}, {450, 212}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 22 - - - - YES - - TextFieldBindings - SenTestCase - - IBProjectSource - Bindings/TextFieldBindings.h - - - - TextFieldBindings - SenTestCase - - _textField - id - - - IBUserSource - - - - - - 0 - ../UnitTests.xcodeproj - 3 - - diff --git a/testing/UnitTests/Cocotron.keyedArchive b/testing/UnitTests/Cocotron.keyedArchive deleted file mode 100644 index 5feda07b81f6b67c0d52d13d4d7ffc46a9df7d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1306 zcmcIkT~ER=6!n>3Q5zm*1wW!OWd!+1hy<4~9(*iYg=txru8PF?-|gBByNv{Suutv1 z_ne;Io)-5$Hw=7Gkw!f3!j991fW`q2qj=SY3xC|YgFUx_&xcO~|JfUXghi3=gmL`!(p(MMr`6J!Yu)nX!;})7PUuhsy z8%%^CIg#Ea2Q}k&#xSxeboy6Mw#53?pbVY@G zjZrbxCn<_Bs#9w%FN_m;fE5c$nA^E^ZrbI6kd+HahDqmWj!N*?%XJ9fJ-Ky}?|AB%jSYQ&gq=%HrilFSn!OGXFAwl(dRw=lAv zh%vk5iN#*AxG52wSFKa2J8l_V_`Y-CitOts&Gk2te -#import - -static void print_error() { - fprintf(stderr, "error: testing host crashed\n"); - exit(70); -} - -__attribute__((constructor)) static void installHooks() { - // print error message on crash -#ifdef SIGSEGV - signal(SIGSEGV, print_error); -#endif -#ifdef SIGILL - signal(SIGILL, print_error); -#endif -#ifdef SIGBUS - signal(SIGBUS, print_error); -#endif -#ifdef SIGABRT - signal(SIGABRT, print_error); -#endif -#ifdef SIGFPE - signal(SIGFPE, print_error); -#endif -} \ No newline at end of file diff --git a/testing/UnitTests/English.lproj/InfoPlist.strings b/testing/UnitTests/English.lproj/InfoPlist.strings deleted file mode 100644 index 5e45963c382ba690b781b953a00585212b898ac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmW-XQ3`+{5C!MkQ~2$No+IcIkqMDxWCV8j>LCj|yTg2Mz+o9F%uHlf9u}h9EuK`F a!Y*1dX%G66ZqL#C$|bw0ZoP5@jOGW1ArT7z diff --git a/testing/UnitTests/FileHandle.h b/testing/UnitTests/FileHandle.h deleted file mode 100644 index 2be2dc84..00000000 --- a/testing/UnitTests/FileHandle.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (c) 2008 Tobias Platen - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface FileHandle : SenTestCase { - NSData *data; -} - -@end \ No newline at end of file diff --git a/testing/UnitTests/FileHandle.m b/testing/UnitTests/FileHandle.m deleted file mode 100644 index 0f7e6fd0..00000000 --- a/testing/UnitTests/FileHandle.m +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (c) 2008 Tobias Platen - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "FileHandle.h" - -@implementation FileHandle -- (void) testReadingFromPipe4k { - char buffer[4096]; - NSPipe *p = [NSPipe new]; - NSFileHandle *w = [p fileHandleForWriting]; - NSFileHandle *r = [p fileHandleForReading]; - data = [NSData dataWithBytes: &buffer length: sizeof(buffer)]; - [NSThread detachNewThreadSelector: @selector(writingThead:) - toTarget: self - withObject: w]; - STAssertEqualObjects([r availableData], data, - @"read data should match to buffer"); -} -- (void) testReadingFromPipe4kLess1 { - char buffer[4095]; - NSPipe *p = [NSPipe new]; - NSFileHandle *w = [p fileHandleForWriting]; - NSFileHandle *r = [p fileHandleForReading]; - data = [NSData dataWithBytes: &buffer length: sizeof(buffer)]; - [NSThread detachNewThreadSelector: @selector(writingThead:) - toTarget: self - withObject: w]; - STAssertEqualObjects([r availableData], data, - @"read data should match to buffer"); -} -- (void) testReadingFromPipeToEnd8k { - char buffer[8 * 1024]; - NSPipe *p = [NSPipe new]; - NSFileHandle *w = [p fileHandleForWriting]; - NSFileHandle *r = [p fileHandleForReading]; - data = [NSData dataWithBytes: &buffer length: sizeof(buffer)]; - [NSThread detachNewThreadSelector: @selector(writingTheadClosesHandle:) - toTarget: self - withObject: w]; - STAssertEqualObjects([r readDataToEndOfFile], data, - @"read data should match to buffer"); -} -- (void) testReadingFromPipeToEnd1k { - char buffer[1024]; - NSPipe *p = [NSPipe new]; - NSFileHandle *w = [p fileHandleForWriting]; - NSFileHandle *r = [p fileHandleForReading]; - data = [NSData dataWithBytes: &buffer length: sizeof(buffer)]; - [NSThread detachNewThreadSelector: @selector(writingTheadClosesHandle:) - toTarget: self - withObject: w]; - STAssertEqualObjects([r readDataToEndOfFile], data, - @"read data should match to buffer"); -} - -- (void) writingThead: (NSFileHandle *) w { - [w writeData: data]; -} -- (void) writingTheadClosesHandle: (NSFileHandle *) w { - [w writeData: data]; - [w closeFile]; -} - -@end diff --git a/testing/UnitTests/ForEach.h b/testing/UnitTests/ForEach.h deleted file mode 100644 index 8c177195..00000000 --- a/testing/UnitTests/ForEach.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// ForEach.h -// UnitTests -// -// Created by Johannes Fortmann on 18.04.08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import - -@interface ForEach : SenTestCase { -} - -@end diff --git a/testing/UnitTests/ForEach.m b/testing/UnitTests/ForEach.m deleted file mode 100644 index e6503d65..00000000 --- a/testing/UnitTests/ForEach.m +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "ForEach.h" - -@implementation ForEach -- (void) testMutableArray { - NSMutableArray *array = [NSMutableArray new]; - NSMutableArray *array2 = [NSMutableArray new]; - for (int i = 0; i < 1000; i++) { - [array addObject: [NSNumber numberWithInt: rand()]]; - } - - for (id object in array) { - [array2 addObject: object]; - } - - STAssertEqualObjects(array, array2, nil); -} - -- (void) mutateArray: (id) array { - for (id object in array) { - [array addObject: object]; - } -} - -- (void) testArrayMutation { - NSMutableArray *array = [NSMutableArray new]; - for (int i = 0; i < 1000; i++) { - [array addObject: [NSNumber numberWithInt: rand()]]; - } - STAssertThrows([self mutateArray: array], nil); -} - -- (void) testArray { - NSMutableArray *array = [NSMutableArray new]; - NSMutableArray *array2 = [NSMutableArray new]; - for (int i = 0; i < 1000; i++) { - [array addObject: [NSNumber numberWithInt: rand()]]; - } - - array = [[array copy] autorelease]; - - for (id object in array) { - [array2 addObject: object]; - } - - STAssertEqualObjects(array, array2, nil); -} - -- (void) testSmall { - NSMutableArray *array = [NSMutableArray new]; - NSMutableArray *array2 = [NSMutableArray new]; - for (int i = 0; i < 12; i++) { - [array addObject: [NSNumber numberWithInt: rand()]]; - } - - for (id object in array) { - [array2 addObject: object]; - } - - STAssertEqualObjects(array, array2, nil); -} - -- (void) testSet { - NSMutableSet *set = [NSMutableSet new]; - NSMutableSet *set2 = [NSMutableSet new]; - for (int i = 0; i < 1000; i++) { - [set addObject: [NSNumber numberWithInt: rand()]]; - } - - for (id object in set) { - [set2 addObject: object]; - } - - STAssertEqualObjects(set, set2, nil); -} - -- (void) testCountedSet { - NSMutableSet *set = [NSCountedSet new]; - NSMutableSet *set2 = [NSCountedSet new]; - for (int i = 0; i < 1000; i++) { - [set addObject: [NSNumber numberWithInt: rand() % 999]]; - } - - for (id object in set) { - [set2 addObject: object]; - } - - STAssertFalse([set isEqual: set2], @"should enumerate distinct objects"); - STAssertEquals([set count], [set2 count], - @"number of distinct objects should be the same"); -} -@end diff --git a/testing/UnitTests/Forwarding.h b/testing/UnitTests/Forwarding.h deleted file mode 100644 index eed831cc..00000000 --- a/testing/UnitTests/Forwarding.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -typedef struct { - float a; - long long b; - char padding[27]; - char c; - struct { - float d; - double e; - }; -} TestingStruct; - -@interface Forwarding : SenTestCase { - BOOL beenInMethodFlag; -} -- (id) makeStringFromStructs: (NSSize) - size: (char) c - :(NSRange) range - :(NSRect) rect - :(double) d - :(long long) l; -- (TestingStruct) returnTestingStructWithParam: (float) x; -@end diff --git a/testing/UnitTests/Forwarding.m b/testing/UnitTests/Forwarding.m deleted file mode 100644 index 1ccccf46..00000000 --- a/testing/UnitTests/Forwarding.m +++ /dev/null @@ -1,197 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "Forwarding.h" - -@interface Forwarding (UnimplementedMethods) -- (float) doStuffWithFloats: (float) first: (float) second:(float) third; -- (int) doStuffWithInts: (int) first: (int) second:(int) third; -- (NSString *) doStuffWithObjects: (NSString *) - first: (NSString *) second - :(NSString *) third; -- (id) doStuffWithStructs: (NSSize) - size: (char) c - :(NSRange) range - :(NSRect) rect - :(double) d - :(long long) l; -- (TestingStruct) testingStructWithParam: (float) x; -@end - -@implementation Forwarding -- (void) forwardInvocation: (NSInvocation *) inv { - if ([inv selector] == @selector(doStuffWithObjects:::)) { - [inv setSelector: @selector(concatObjects:::)]; - [inv invoke]; - return; - } - if ([inv selector] == @selector(doStuffWithInts:::)) { - [inv setSelector: @selector(addInts:::)]; - [inv invoke]; - return; - } - if ([inv selector] == @selector(doStuffWithFloats:::)) { - - [inv setSelector: @selector(addFloats:::)]; - - [inv invoke]; - return; - } - if ([inv selector] == @selector(doStuffWithStructs:: :: ::)) { - [inv setSelector: @selector(makeStringFromStructs:: :: ::)]; - [inv invoke]; - return; - } - if ([inv selector] == @selector(testingStructWithParam:)) { - [inv setSelector: @selector(returnTestingStructWithParam:)]; - [inv invoke]; - return; - } - - [super forwardInvocation: inv]; -} - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) sel { - if (sel == @selector(doStuffWithObjects:::)) - return [self methodSignatureForSelector: @selector(concatObjects:::)]; - - if (sel == @selector(doStuffWithInts:::)) - return [self methodSignatureForSelector: @selector(addInts:::)]; - - if (sel == @selector(doStuffWithFloats:::)) - return [self methodSignatureForSelector: @selector(addFloats:::)]; - - if (sel == @selector(doStuffWithStructs:: :: ::)) - return [self methodSignatureForSelector: @selector - (makeStringFromStructs:: :: ::)]; - - if (sel == @selector(testingStructWithParam:)) - return [self methodSignatureForSelector: @selector - (returnTestingStructWithParam:)]; - - return [super methodSignatureForSelector: sel]; -} - -- (NSString *) concatObjects: (NSString *) - first: (NSString *) second - :(NSString *) third -{ - beenInMethodFlag = YES; - return [NSString stringWithFormat: @"%@%@%@", first, second, third]; -} - -- (int) addInts: (int) first: (int) second:(int) third { - beenInMethodFlag = YES; - return first + second + third; -} - -- (float) addFloats: (float) first: (float) second:(float) third { - beenInMethodFlag = YES; - return first + second + third; -} - -- (id) makeStringFromStructs: (NSSize) - size: (char) c - :(NSRange) range - :(NSRect) rect - :(double) d - :(long long) l -{ - beenInMethodFlag = YES; - return [NSString - stringWithFormat: @"%i %i %i %i %i %i %i %i %i %i %i", - (int) size.width, (int) size.height, c, - range.location, range.length, (int) rect.origin.x, - (int) rect.origin.y, (int) rect.size.width, - (int) rect.size.height, (int) d, (int) l]; -} - -- (TestingStruct) returnTestingStructWithParam: (float) x { - beenInMethodFlag = YES; - TestingStruct ret = {0}; - ret.a = x; - ret.b = x + 1; - ret.c = x + 2; - ret.d = x + 3; - ret.e = x + 4; - return ret; -} - -- (void) testForwardStructs { - beenInMethodFlag = NO; - id retObj = [self doStuffWithStructs: NSMakeSize(1, 2): 3 - :NSMakeRange(4, 5 - ): NSMakeRect(6, 7, 8, 9 - ): 10:11]; - - STAssertTrue(beenInMethodFlag, nil); - STAssertEqualObjects(@"1 2 3 4 5 6 7 8 9 10 11", retObj, nil); -} - -- (void) testStructReturn { - beenInMethodFlag = NO; - int x = 12; - struct stuff { - int guard; - TestingStruct ret; - int guard2; - } stuff; - stuff.guard = 0xdeadbeef; - stuff.guard2 = 0xdeadbeef; - - stuff.ret = [self testingStructWithParam: x]; - if (stuff.guard != 0xdeadbeef) - NSLog(@"error: guard overwritten, will probably crash"); - if (stuff.guard2 != 0xdeadbeef) - NSLog(@"error: guard 2 overwritten, will probably crash"); - TestingStruct cmp = {0}; - cmp.a = x; - cmp.b = x + 1; - cmp.c = x + 2; - cmp.d = x + 3; - cmp.e = x + 4; - - STAssertTrue(beenInMethodFlag, nil); - STAssertEquals(stuff.ret, cmp, nil); -} - -- (void) testForwardSimple { - beenInMethodFlag = NO; - id retObj = [self doStuffWithObjects: @"First": @"Second":@"Third"]; - - STAssertTrue(beenInMethodFlag, nil); - STAssertEqualObjects(@"FirstSecondThird", retObj, nil); - - beenInMethodFlag = NO; - int retInt = [self doStuffWithInts: 1: 2:3]; - - STAssertTrue(beenInMethodFlag, nil); - STAssertEquals(6, retInt, nil); -} - -- (void) testFloatReturn { - beenInMethodFlag = NO; - float ret = [self doStuffWithFloats: 1.: 2.:3.]; - ret = [self doStuffWithFloats: 1.: 2.:3.]; - STAssertTrue(beenInMethodFlag, nil); - STAssertEqualsWithAccuracy(6.0f, ret, 0.001, nil); -} - -@end diff --git a/testing/UnitTests/Info.plist b/testing/UnitTests/Info.plist deleted file mode 100644 index 5025a9db..00000000 --- a/testing/UnitTests/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - UnitTests - CFBundleName - ${PRODUCT_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.yourcocoabundle - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - BNDL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - NSPrincipalClass - - - diff --git a/testing/UnitTests/KVC.h b/testing/UnitTests/KVC.h deleted file mode 100644 index 67db5789..00000000 --- a/testing/UnitTests/KVC.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface KVC : SenTestCase { - id _objectInstanceVariable; - BOOL _inDirectTest; -} - -@end - -@interface KVCArrayContainer : NSObject { - NSMutableArray *_contents; -} - -@end \ No newline at end of file diff --git a/testing/UnitTests/KVC.m b/testing/UnitTests/KVC.m deleted file mode 100644 index ca2ce545..00000000 --- a/testing/UnitTests/KVC.m +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "KVC.h" - -@interface RetainLogger : NSObject { - int _loggedRetainCount; - BOOL _logsRetains; -} -@property int loggedRetainCount; -@end - -@implementation RetainLogger - -@synthesize loggedRetainCount = _loggedRetainCount; - -- (id) retain { - _loggedRetainCount++; - return [super retain]; -} - -- (void) release { - _loggedRetainCount--; - [super release]; -} -@end - -@implementation KVC - -- (BOOL) accessInstanceVariablesDirectly { - return _inDirectTest; -} - -- (void) cleanUp { - _inDirectTest = NO; -} - -- (void) testDirectSetting { - RetainLogger *logger = [[[RetainLogger alloc] init] autorelease]; - _inDirectTest = YES; - - logger.loggedRetainCount = 0; - id pool = [NSAutoreleasePool new]; - - [self setValue: logger forKey: @"objectInstanceVariable"]; - - [pool drain]; - - STAssertEquals(logger.loggedRetainCount, 1, - @"Direct setting retains object value"); - STAssertEqualObjects(_objectInstanceVariable, logger, - @"Direct setting sets object value"); - - RetainLogger *logger2 = [[RetainLogger alloc] init]; - - pool = [NSAutoreleasePool new]; - - [self setValue: logger2 forKey: @"objectInstanceVariable"]; - - [pool drain]; - - STAssertEquals(logger.loggedRetainCount, 0, - @"Direct setting releases old object value"); - - [logger2 release]; - [logger2 release]; -} - -- (void) testKVC { - NSMutableDictionary *dict = [NSMutableDictionary dictionary]; - - [dict setValue: @"value" forKey: @"key"]; - - STAssertEqualObjects([dict valueForKey: @"key"], @"value", nil); -} - -- (void) testMutableArray { - id container = [KVCArrayContainer new]; - - id array = [container mutableArrayValueForKey: @"contents"]; - - [array addObject: @"SomeObject"]; - [array insertObject: @"Stuff" atIndex: 0]; - [array removeObject: @"SomeObject"]; - - [container release]; -} - -- (void) testDescription { - STAssertNotNil([self valueForKeyPath: @"description"], nil); -} -@end - -@implementation KVCArrayContainer - -- (void) _setContents: (id) contents { - if (_contents != contents) { - [_contents release]; - _contents = [contents retain]; - } -} - -- (id) contents { - return _contents; -} - -- (id) init { - if (self = [super init]) { - _contents = [NSMutableArray new]; - } - return self; -} - -- (void) dealloc { - [_contents release]; - [super dealloc]; -} -@end \ No newline at end of file diff --git a/testing/UnitTests/KVO.h b/testing/UnitTests/KVO.h deleted file mode 100644 index fa4a8ff0..00000000 --- a/testing/UnitTests/KVO.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface KVO : SenTestCase { - NSString *someKey; - NSString *otherKey; - NSString *propertyWithBadDependencies; - NSMutableDictionary *dict; - NSString *lastObserved; - NSUInteger observerCalled; -} -@property(copy) NSString *someKey; -@property(copy) NSString *otherKey; -@property(copy) NSString *propertyWithBadDependencies; -@property(copy) NSString *lastObserved; -@property(retain) NSMutableDictionary *dict; -@property(readonly) NSString *derived; -@property(readonly) NSString *newStyleDerived; -@end diff --git a/testing/UnitTests/KVO.m b/testing/UnitTests/KVO.m deleted file mode 100644 index 332077e9..00000000 --- a/testing/UnitTests/KVO.m +++ /dev/null @@ -1,212 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "KVO.h" - -@implementation KVO - -@synthesize someKey; -@synthesize otherKey; -@synthesize dict; -@synthesize lastObserved; -@synthesize propertyWithBadDependencies; - -+ (NSSet *) keyPathsForValuesAffectingNewStyleDerived { - return [NSSet setWithObject: @"dict.derivedProperty"]; -} - -+ (NSSet *) keyPathsForValuesAffectingPropertyWithBadDependencies { - return [NSSet setWithObjects: @"dict.derivedProperty", - @"path.which.doesnt.exist", nil]; -} - -- (void) setUp { - [[self class] setKeys: [NSArray arrayWithObjects: @"someKey", - @"someOtherKey", nil] - triggerChangeNotificationsForDependentKey: @"derived"]; - dict = [NSMutableDictionary new]; -} - -- (void) dealloc { - [someKey release]; - [otherKey release]; - [dict release]; - [lastObserved release]; - [super dealloc]; -} - -- (void) observeValueForKeyPath: (NSString *) keyPath - ofObject: (id) object - change: (NSDictionary *) change - context: (void *) context -{ - if (context == 0) { - observerCalled++; - self.lastObserved = keyPath; - } else { - [super observeValueForKeyPath: keyPath - ofObject: object - change: change - context: context]; - } -} - -- (void) testDependencyKVOException { - observerCalled = 0; - STAssertThrowsSpecificNamed( - [self addObserver: self - forKeyPath: @"propertyWithBadDependencies" - options: 0 - context: nil], - NSException, NSUndefinedKeyException, nil); - STAssertTrue([self observationInfo] == nil, nil); - - STAssertThrows([self removeObserver: self - forKeyPath: @"propertyWithBadDependencies"], - nil); - - STAssertTrue([self observationInfo] == nil, nil); -} - -- (void) testDeepKVOException { - observerCalled = 0; - - STAssertThrowsSpecificNamed([self addObserver: self - forKeyPath: @"nonExisting.other" - options: 0 - context: nil], - NSException, NSUndefinedKeyException, nil); - STAssertTrue([self observationInfo] == nil, nil); - - STAssertNoThrowSpecificNamed([self addObserver: self - forKeyPath: @"nonExisting" - options: 0 - context: nil], - NSException, NSUndefinedKeyException, nil); - - STAssertNoThrow([self removeObserver: self forKeyPath: @"nonExisting"], - nil); - STAssertThrows([self removeObserver: self forKeyPath: @"nonExisting.other"], - nil); - STAssertTrue([self observationInfo] == nil, nil); -} - -- (void) testMultiKVO { - observerCalled = 0; - [self addObserver: self forKeyPath: @"someKey" options: 0 context: nil]; - [self addObserver: self forKeyPath: @"otherKey" options: 0 context: nil]; - - self.otherKey = @"SomeValue"; - STAssertTrue(observerCalled == 1, nil); - observerCalled = 0; - - self.someKey = @"SomeValue"; - STAssertTrue(observerCalled == 1, nil); - observerCalled = 0; - - STAssertEqualObjects(lastObserved, @"someKey", nil); - - [self removeObserver: self forKeyPath: @"otherKey"]; - [self removeObserver: self forKeyPath: @"someKey"]; - STAssertTrue([self observationInfo] == nil, nil); -} - -- (void) testKVO { - observerCalled = 0; - [self addObserver: self forKeyPath: @"someKey" options: 0 context: nil]; - - self.someKey = @"SomeValue"; - - [self removeObserver: self forKeyPath: @"someKey"]; - STAssertTrue(observerCalled == 1, nil); - STAssertEqualObjects(lastObserved, @"someKey", nil); - STAssertTrue([self observationInfo] == nil, nil); -} - -- (void) testDeepKVO { - [self addObserver: self - forKeyPath: @"dict.someKey" - options: 0 - context: nil]; - - observerCalled = 0; - [dict setObject: @"val1" forKey: @"someKey"]; - STAssertTrue(observerCalled == 1, nil); - STAssertEqualObjects([dict valueForKey: @"someKey"], @"val1", nil); - STAssertEqualObjects(lastObserved, @"dict.someKey", nil); - - observerCalled = 0; - [dict setValue: @"val2" forKey: @"someKey"]; - STAssertTrue(observerCalled == 1, nil); - STAssertEqualObjects([dict valueForKey: @"someKey"], @"val2", nil); - STAssertEqualObjects(lastObserved, @"dict.someKey", nil); - - observerCalled = 0; - [self setValue: @"val3" forKeyPath: @"dict.someKey"]; - STAssertTrue(observerCalled == 1, nil); - STAssertEqualObjects([dict valueForKey: @"someKey"], @"val3", nil); - STAssertEqualObjects(lastObserved, @"dict.someKey", nil); - - [self removeObserver: self forKeyPath: @"dict.someKey"]; -} - -- (void) testDeps { - [self addObserver: self forKeyPath: @"derived" options: 0 context: nil]; - - observerCalled = 0; - [self setValue: @"val3" forKeyPath: @"someKey"]; - STAssertTrue(observerCalled == 1, nil); - STAssertEqualObjects(lastObserved, @"derived", nil); - - [self removeObserver: self forKeyPath: @"derived"]; - - [self addObserver: self - forKeyPath: @"newStyleDerived" - options: 0 - context: nil]; - - observerCalled = 0; - [self setValue: @"val3" forKeyPath: @"dict.derivedProperty"]; - STAssertTrue(observerCalled == 1, nil); - STAssertEqualObjects(lastObserved, @"newStyleDerived", nil); - - [self removeObserver: self forKeyPath: @"newStyleDerived"]; - STAssertTrue([self observationInfo] == nil, nil); -} - -- (void) testNameAndClass { - [self addObserver: self forKeyPath: @"someKey" options: 0 context: nil]; - - STAssertEqualObjects([self className], @"KVO", nil); - - STAssertEqualObjects([self class], [KVO class], nil); - STAssertEqualObjects([self classForCoder], [KVO class], nil); - - [self removeObserver: self forKeyPath: @"someKey"]; -} - -- (NSString *) derived { - return someKey; -} - -- (NSString *) newStyleDerived { - return [dict objectForKey: @"derivedProperty"]; -} -@end diff --git a/testing/UnitTests/KeyedArchiving.h b/testing/UnitTests/KeyedArchiving.h deleted file mode 100644 index 6a3f1069..00000000 --- a/testing/UnitTests/KeyedArchiving.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface KeyedArchiving : SenTestCase { -} - -@end diff --git a/testing/UnitTests/KeyedArchiving.m b/testing/UnitTests/KeyedArchiving.m deleted file mode 100644 index 3c205abc..00000000 --- a/testing/UnitTests/KeyedArchiving.m +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "KeyedArchiving.h" - -@interface ArchivableClass : NSObject { -} - -@end - -@implementation ArchivableClass - -- (void) encodeWithCoder: (NSCoder *) encoder { - if ([encoder allowsKeyedCoding]) { - NSKeyedArchiver *coder = (NSKeyedArchiver *) encoder; - [coder encodeObject: @"string" forKey: @"string"]; - [coder encodeFloat: 17.5 forKey: @"float"]; - [coder encodeRect: NSMakeRect(0, 0, 100, 100) forKey: @"rect"]; - } else { - [NSException raise: NSInternalInconsistencyException - format: @"%@ only supports keyed coding", [self className]]; - } -} - -- (id) initWithCoder: (NSCoder *) decoder { - if ([decoder allowsKeyedCoding]) { - NSKeyedUnarchiver *coder = (NSKeyedUnarchiver *) decoder; - - NSAssert([[coder decodeObjectForKey: @"string"] isEqual: @"string"], - @"keyed string decoding"); - NSAssert([coder decodeFloatForKey: @"float"] == 17.5, - @"keyed string decoding"); - NSRect rect = [coder decodeRectForKey: @"rect"]; - NSAssert(NSEqualRects(rect, NSMakeRect(0, 0, 100, 100)), nil); - } else { - [NSException raise: NSInternalInconsistencyException - format: @"%@ only supports keyed coding", [self className]]; - } - return self; -} - -@end - -@implementation KeyedArchiving - -- (void) testOwnCoding { - id object = [[ArchivableClass new] autorelease]; - id data = [NSKeyedArchiver archivedDataWithRootObject: object]; - - // if you change the encoding of ArchivableClass, you need to uncomment the - // line below, run on Apple-Darwin, then copy the resulting data file - [data writeToFile: [@"~/ArchivableClass.keyedArchive" - stringByExpandingTildeInPath] - atomically: NO]; - - object = [NSKeyedUnarchiver unarchiveObjectWithData: data]; -} - -- (void) testForeignDecoding { - id paths = [[NSBundle bundleForClass: [self class]] - pathsForResourcesOfType: @"keyedArchive" - inDirectory: @""]; - for (id archiveName in paths) { - id data = [NSData dataWithContentsOfFile: archiveName]; - STAssertNotNil(data, @"Data file couldn't be opened"); - - STAssertNoThrow([NSKeyedUnarchiver unarchiveObjectWithData: data], - @"unarchiving %@", archiveName); - } -} - -@end diff --git a/testing/UnitTests/MessageBenchmark.h b/testing/UnitTests/MessageBenchmark.h deleted file mode 100644 index 0e511e4c..00000000 --- a/testing/UnitTests/MessageBenchmark.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface MessageBenchmark : SenTestCase { - int count; - id object; -} - -- (int) testStuff: (id) string; -@end diff --git a/testing/UnitTests/MessageBenchmark.m b/testing/UnitTests/MessageBenchmark.m deleted file mode 100644 index 3cef8ea1..00000000 --- a/testing/UnitTests/MessageBenchmark.m +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "MessageBenchmark.h" - -@implementation MessageBenchmark - -- (void) setUp { - object = @"Test"; - count = 50000000; -} - -- (void) testLookup { - int ret = 1; - for (int i = 0; i < count; i++) { - ret |= [self testStuff: object]; - } - STAssertEquals(ret, 1, nil); -} - -- (int) testStuff: (id) string { - if (string == object) { - return 1; - } - return 0; -} -@end diff --git a/testing/UnitTests/MessageSend.m b/testing/UnitTests/MessageSend.m deleted file mode 100644 index b0a2da93..00000000 --- a/testing/UnitTests/MessageSend.m +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "Forwarding.h" -#import "MessageBenchmark.h" - -@implementation MessageBenchmark (MessageSend) - -- (void) testMessageSend { - int ret = 1; - for (int i = 0; i < count; i++) { - ret |= [self testStuff: object]; - } - STAssertEquals(ret, 1, nil); -} - -+ (int) classMethod { - return 1; -} - -- (void) testClassMethod { - STAssertEquals([MessageBenchmark classMethod], 1, nil); -} - -- (void) testSuperMethod { - STAssertTrue([[super self] isKindOfClass: [MessageBenchmark class]], nil); -} - -- (float) floatReturn { - return 1.0; -} - -- (void) testMessageSendFloatReturn { - STAssertTrue([self floatReturn] == 1.0, nil); -} - -@end - -@implementation Forwarding (MessageSend) - -- (void) testRegularStructs { - beenInMethodFlag = NO; - id retObj = [self makeStringFromStructs: NSMakeSize(1, 2): 3 - :NSMakeRange(4, 5 - ): NSMakeRect(6, 7, 8, 9 - ): 10:11]; - - STAssertTrue(beenInMethodFlag, nil); - STAssertEqualObjects(@"1 2 3 4 5 6 7 8 9 10 11", retObj, nil); -} - -- (void) testRegularStructReturn { - beenInMethodFlag = NO; - int x = 12; - struct stuff { - int guard; - TestingStruct ret; - int guard2; - } stuff; - stuff.guard = 0xdeadbeef; - stuff.guard2 = 0xdeadbeef; - - stuff.ret = [self returnTestingStructWithParam: x]; - TestingStruct cmp = {0}; - cmp.a = x; - cmp.b = x + 1; - cmp.c = x + 2; - cmp.d = x + 3; - cmp.e = x + 4; - - STAssertTrue(beenInMethodFlag, nil); - STAssertEquals(stuff.ret, cmp, nil); -} -@end \ No newline at end of file diff --git a/testing/UnitTests/MessageSendTorture.h b/testing/UnitTests/MessageSendTorture.h deleted file mode 100644 index cec47447..00000000 --- a/testing/UnitTests/MessageSendTorture.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// MessageSendTorture.h -// UnitTests -// -// Created by Johannes Fortmann on 23.09.08. -// Copyright 2008 -. All rights reserved. -// - -#import - -@interface MessageSendTorture : SenTestCase { - int _numFailures; - int _numSuccesses; -} -- (void) callSelectors: (BOOL) msgSend; -@end diff --git a/testing/UnitTests/MessageSendTorture.m b/testing/UnitTests/MessageSendTorture.m deleted file mode 100644 index 1fec5f1a..00000000 --- a/testing/UnitTests/MessageSendTorture.m +++ /dev/null @@ -1,115 +0,0 @@ -// -// MessageSendTorture.m -// UnitTests -// -// Created by Johannes Fortmann on 23.09.08. -// Copyright 2008 -. All rights reserved. -// - -#import "MessageSendTorture.h" -#import -#import -#import -#import - -#define SEL_PREFIX "_torture_" -#define NUM_SELECTORS 5000 - -extern id objc_msgSend(id self, SEL op, ...); - -@interface MessageSendTortureThread : NSThread { - id _delegate; - BOOL _msgSend; -} -@property(retain) id delegate; -@property(assign) BOOL useMsgSend; - -@end - -@implementation MessageSendTortureThread -@synthesize useMsgSend = _msgSend; -@synthesize delegate = _delegate; -- (void) main { - [_delegate callSelectors: _msgSend]; -} -@end - -@implementation MessageSendTorture - -- (int) _torture_ { - const char *name = sel_getName(_cmd); - name += strlen(SEL_PREFIX); - return atoi(name); -} - -+ (void) initialize { - BOOL didInit = NO; - if (!didInit) { - didInit = YES; - - struct objc_method_list *list = - calloc(sizeof(struct objc_method_list) + - NUM_SELECTORS * sizeof(struct objc_method), - 1); - list->method_count = NUM_SELECTORS; - Method torture = - class_getInstanceMethod([self class], @selector(_torture_)); - - for (int currentMethod = 0; currentMethod < NUM_SELECTORS; - currentMethod++) { - struct objc_method *newMethod = &list->method_list[currentMethod]; - char buf[strlen(SEL_PREFIX) + 10]; - - sprintf(buf, "%s%i", SEL_PREFIX, currentMethod); - - newMethod->method_name = sel_registerName(buf); - newMethod->method_types = strdup(torture->method_types); - newMethod->method_imp = torture->method_imp; - } - class_addMethods(self, list); - } -} - -- (void) callSelectors: (BOOL) useMsgSend { - typedef int (*TestImp)(id, SEL, ...); - - for (int i = 0; i < 1000; i++) { - char buf[strlen(SEL_PREFIX) + 10]; - int ret = 0; - int currentMethod = rand() % NUM_SELECTORS; - sprintf(buf, "%s%i", SEL_PREFIX, currentMethod); - SEL sel = sel_getUid(buf); - - if (useMsgSend) { - TestImp send = (TestImp) objc_msgSend; - ret = send(self, sel); - } else { - TestImp imp = (TestImp) objc_msg_lookup(self, sel); - if (imp) - ret = imp(self, sel); - } - - if (ret != currentMethod) { - __sync_add_and_fetch(&_numFailures, 1); - } else { - __sync_add_and_fetch(&_numSuccesses, 1); - } - } -} - -- (void) testMessageSendTorture { - for (int i = 0; i < 12; i++) { - MessageSendTortureThread *thread = [MessageSendTortureThread new]; - thread.delegate = self; - thread.useMsgSend = rand() % 2; - [thread start]; - [thread release]; - } - [self callSelectors: YES]; - [self callSelectors: YES]; - - NSLog(@"%i iterations run", _numSuccesses); - STAssertTrue(_numFailures == 0, nil); -} - -@end diff --git a/testing/UnitTests/NewStyleExceptions.h b/testing/UnitTests/NewStyleExceptions.h deleted file mode 100644 index f633cd4d..00000000 --- a/testing/UnitTests/NewStyleExceptions.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface NewStyleExceptions : SenTestCase { -} - -@end diff --git a/testing/UnitTests/NewStyleExceptions.m b/testing/UnitTests/NewStyleExceptions.m deleted file mode 100644 index c8d5696e..00000000 --- a/testing/UnitTests/NewStyleExceptions.m +++ /dev/null @@ -1,149 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "NewStyleExceptions.h" - -@implementation NewStyleExceptions -- (void) doNothing { -} - -- (void) setUp { - [NSThread detachNewThreadSelector: @selector(doNothing) - toTarget: self - withObject: nil]; -} - -- (void) raiseException { - [NSException raise: NSInvalidArgumentException format: nil]; -} - -- (void) throwString { - @throw(@"SomeString"); -} - -- (void) testReraise { - id test = nil; - @try { - @try { - [self raiseException]; - } @catch (NSException *a) { - [a raise]; - } - } @catch (NSException *b) { - test = b; - } - - STAssertNotNil(test, nil); -} - -- (void) testMixedReraise { - id test = nil; - NS_DURING - @try { - [self raiseException]; - } @catch (NSException *a) { - [a raise]; - } - NS_HANDLER - test = localException; - NS_ENDHANDLER - - STAssertNotNil(test, nil); -} - -- (void) testTryCatch { - id test = nil; - @try { - [self raiseException]; - } @catch (NSException *a) { - test = a; - } - - STAssertNotNil(test, nil); -} - -- (void) testFinally { - id test = nil; - @try { - [self raiseException]; - } @catch (NSException *a) { - test = a; - } @finally { - test = @"Test"; - } - - STAssertEqualObjects(test, @"Test", nil); -} - -- (void) testMatch { - id test = nil; - @try { - [self throwString]; - } @catch (NSException *a) { - } @catch (NSString *a) { - test = a; - } @catch (id a) { - STFail(nil); - } - STAssertEqualObjects(test, @"SomeString", nil); -} - -- (void) testJumpOut { - id test = @"Test"; - BOOL loop = YES; - while (loop) { - @try { - if (loop) { - loop = NO; - continue; - } - } @catch (NSException *a) { - } @catch (NSString *a) { - test = a; - } @finally { - test = nil; - } - - STAssertTrue(test == nil, nil); - } -} - -- (void) recurse: (int) i { - @synchronized([NSNumber numberWithInt: i]) { - if (i < 10) - [self recurse: i + 1]; - [NSException raise: NSInvalidArgumentException format: @""]; - } -} - -- (void) testSynchronized { - @try { - @synchronized(self) { - [self recurse: 0]; - } - - } @catch (NSException *a) { - - } @ - synchronized(self) { - } -} - -@end diff --git a/testing/UnitTests/ObjCXXExceptions.h b/testing/UnitTests/ObjCXXExceptions.h deleted file mode 100644 index 4f998292..00000000 --- a/testing/UnitTests/ObjCXXExceptions.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface ObjCXXExceptions : SenTestCase { -} - -@end diff --git a/testing/UnitTests/ObjCXXExceptions.mm b/testing/UnitTests/ObjCXXExceptions.mm deleted file mode 100644 index e3c87dcd..00000000 --- a/testing/UnitTests/ObjCXXExceptions.mm +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#include -#include - -#import "ObjCXXExceptions.h" - -@implementation ObjCXXExceptions -- (void) throwObjCException { - [NSException raise: NSInvalidArgumentException format: nil]; -} - -- (void) throwCXXException { - throw(std::string("c++ exception")); -} - -- (void) testCXXThrow { - try { - @try { - [self throwCXXException]; - } @catch (id e) { - STFail(@"objc exception caught"); - } - } catch (std::vector vec) { - STFail(@"wrong type caught"); - } catch (std::string str) { - STAssertTrue(str == std::string("c++ exception"), nil); - return; - } - STFail(@"nothing caught"); -} - -- (void) testObjCThrow { - @try { - try { - [self throwObjCException]; - } catch (void *ex) { - STFail(@"C++ exception caught"); - } - } @catch (NSString *str) { - STFail(@"wrong type caught"); - } @catch (NSException *ex) { - return; - } - STFail(@"nothing caught"); -} - -@end diff --git a/testing/UnitTests/OperationQueueTests.h b/testing/UnitTests/OperationQueueTests.h deleted file mode 100644 index 82caf8d1..00000000 --- a/testing/UnitTests/OperationQueueTests.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// OperationQueueTests.h -// NSOperationQueueTestCase -// -// Created by Sven Weidauer on 08.03.10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -@class TestOperation; - -@interface OperationQueueTests : SenTestCase { - NSOperationQueue *queue; - TestOperation *operation; - NSUInteger observationCount; -} - -@end diff --git a/testing/UnitTests/OperationQueueTests.m b/testing/UnitTests/OperationQueueTests.m deleted file mode 100644 index 4acf664c..00000000 --- a/testing/UnitTests/OperationQueueTests.m +++ /dev/null @@ -1,221 +0,0 @@ -// -// OperationQueueTests.m -// NSOperationQueueTestCase -// -// Created by Sven Weidauer on 08.03.10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "OperationQueueTests.h" - -#ifdef WINDOWS -#include -#define sleep(x) \ - do { \ - Sleep(1000 * (x)); \ - } while (0) -#endif - -@interface TestOperation : NSOperation { -} - -@end - -@implementation TestOperation - -- (void) main; { - sleep(2); -} - -@end - -@implementation OperationQueueTests - -- (void) setUp; { - [super setUp]; - queue = [[NSOperationQueue alloc] init]; - operation = [[TestOperation alloc] init]; - observationCount = 0; -} - -- (void) tearDown; { - [operation release], operation = nil; - [queue release], queue = nil; - [super tearDown]; -} - -- (void) testSuspending; { - STAssertFalse([queue isSuspended], - @"Queue should not be suspended initially"); - [queue setSuspended: YES]; - STAssertTrue([queue isSuspended], - @"Queue should be suspended after setSuspended: YES"); - [queue setSuspended: NO]; - STAssertFalse([queue isSuspended], - @"Queue should not be suspended after setSuspended: NO"); -} - -- (void) testMaximumOperationCount; { - STAssertEquals([queue maxConcurrentOperationCount], - NSOperationQueueDefaultMaxConcurrentOperationCount, - @"Queue should initially have default max conncurrent " - @"operation count"); - int i; - for (i = 1; i < 32; i++) { - [queue setMaxConcurrentOperationCount: i]; - STAssertEquals(i, [queue maxConcurrentOperationCount], - @"Setting maxConcurrentOperationCount to %d should work", - i); - } -} - -- (void) testCancelAll; { - [queue addOperation: operation]; - [queue cancelAllOperations]; - STAssertTrue( - [operation isCancelled], - @"Operation should be cancelled after Queue cancelAllOperations"); -} - -- (void) watchRunningOperation; { - sleep(1); - STAssertTrue([operation isExecuting], - @"Operation should have been started"); - sleep(2); - STAssertTrue([operation isFinished], - @"Operation should have been finnished"); - STAssertFalse([operation isExecuting], - @"Finished operation should not say it is executing"); - STAssertEquals( - (NSUInteger) 1, [operation retainCount], - @"Operation should have a retain count of 1 after it is done"); -} - -- (void) testRunning; { - [queue addOperation: operation]; - [self watchRunningOperation]; -} - -- (void) testOperationsArray; { - NSArray *array = [queue operations]; - STAssertEquals((NSUInteger) 0, [array count], - @"Initially there should be 0 operations in the array"); - [queue addOperation: operation]; - array = [queue operations]; - STAssertEquals((NSUInteger) 1, [array count], - @"After adding an operation there should be 1 operation in " - @"the array"); - STAssertEquals(operation, [array objectAtIndex: 0], - @"The object in the array should be my operation object"); - sleep(3); - array = [queue operations]; - STAssertEquals((NSUInteger) 0, [array count], - @"Array should be empty after the operation is finnished"); -} - -- (void) testRunningFromArray; { - NSArray *array = [[NSArray alloc] initWithObjects: operation, nil]; - [queue addOperations: array waitUntilFinished: NO]; - [array release]; - [self watchRunningOperation]; -} - -- (void) testRunningFromArrayWaiting; { - [queue addOperations: [NSArray arrayWithObject: operation] - waitUntilFinished: YES]; - STAssertTrue([operation isFinished], - @"Operation should have been finnished"); -} - -- (void) testWaiting; { - [queue addOperation: operation]; - [queue waitUntilAllOperationsAreFinished]; - STAssertTrue([operation isFinished], - @"Operation should have been finnished"); -} - -static NSString *const MyQueueName = @"MyQueueName"; - -- (void) testName; { - [queue setName: MyQueueName]; - STAssertEqualObjects(MyQueueName, [queue name], - @"Queue should return the name that was set"); -} - -- (void) testAddingWhileSuspended; { - [queue setSuspended: YES]; - [queue addOperation: operation]; - - STAssertFalse([operation isExecuting], - @"Operation should not be started while queue is suspended"); - - [queue setSuspended: NO]; - [self watchRunningOperation]; -} - -- (void) testOperationReady; { - STAssertTrue([operation isReady], @"Operation should be ready"); -} - -- (void) testOperationPriority; { - STAssertEquals( - NSOperationQueuePriorityNormal, [operation queuePriority], - @"Standard priority should be NSOperationQueuePriorityNormal"); -} - -static NSString *const observationContext = @"observationContext"; - -static void SleepWithRunloop(NSTimeInterval seconds) { - [[NSRunLoop currentRunLoop] - runUntilDate: [NSDate dateWithTimeIntervalSinceNow: seconds]]; -} - -- (void) testOperationExecutingKVO; { - [operation addObserver: self - forKeyPath: @"isExecuting" - options: 0 - context: observationContext]; - - [queue addOperation: operation]; - - SleepWithRunloop(1); - STAssertEquals( - (NSUInteger) 1, observationCount, - @"Object added to queue, should have received 1 KVO notification"); - SleepWithRunloop(2); - STAssertEquals((NSUInteger) 2, observationCount, - @"Should have received 2 KVO notification after done"); -} - -- (void) testOperationFinishedKVO; { - [operation addObserver: self - forKeyPath: @"isFinished" - options: 0 - context: observationContext]; - - [queue addOperation: operation]; - - SleepWithRunloop(1); - STAssertEquals((NSUInteger) 0, observationCount, - @"Should not have received isFinished notification yet"); - SleepWithRunloop(2); - STAssertEquals((NSUInteger) 1, observationCount, - @"Should have received one isFinished notification"); -} - -- (void) observeValueForKeyPath: (NSString *) keyPath - ofObject: (id) object - change: (NSDictionary *) change - context: (void *) context; -{ - if (context == observationContext) { - ++observationCount; - } else { - [super observeValueForKeyPath: keyPath - ofObject: object - change: change - context: context]; - } -} - -@end diff --git a/testing/UnitTests/Predicate.h b/testing/UnitTests/Predicate.h deleted file mode 100644 index d8f79a86..00000000 --- a/testing/UnitTests/Predicate.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface Predicate : SenTestCase { -} - -@end diff --git a/testing/UnitTests/Predicate.m b/testing/UnitTests/Predicate.m deleted file mode 100644 index dea30390..00000000 --- a/testing/UnitTests/Predicate.m +++ /dev/null @@ -1,98 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "Predicate.h" - -@implementation Predicate -- (void) testPredicateParsing { - id dict = [NSDictionary - dictionaryWithObjectsAndKeys: @"Something", @"name", - [NSNumber numberWithDouble: 17.5], - @"value", nil]; - - STAssertTrueNoThrow( - ([[NSPredicate predicateWithFormat: @"name contains %@", @"Some"] - evaluateWithObject: dict]), - nil); - - STAssertTrueNoThrow( - ([[NSPredicate predicateWithFormat: @"name beginswith %@", @"Some"] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow( - ([[NSPredicate predicateWithFormat: @"name endswith %@", @"thing"] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow( - (![[NSPredicate predicateWithFormat: @"name beginswith %@", @"None"] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow( - (![[NSPredicate predicateWithFormat: @"name endswith %@", @"None"] - evaluateWithObject: dict]), - nil); - - STAssertTrueNoThrow( - (![[NSPredicate predicateWithFormat: @"name contains %@", @"None"] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow( - (![[NSPredicate - predicateWithFormat: @"unavailable like %@", @"None"] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow(([[NSPredicate predicateWithFormat: @"value < %f", 20.0] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow(([[NSPredicate predicateWithFormat: @"value > %f", 17.3] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow( - ([[NSPredicate - predicateWithFormat: @"value between {%f, %f}", 15.0, 20.0] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow( - (![[NSPredicate - predicateWithFormat: @"value between {%f, %f}", 20.0, 25.0] - evaluateWithObject: dict]), - nil); - STAssertTrueNoThrow( - ([[NSPredicate predicateWithFormat: @"self == %@", @"Hello"] - evaluateWithObject: @"Hello"]), - nil); - STAssertTrueNoThrow( - (![[NSPredicate predicateWithFormat: @"self != %@", @"Hello"] - evaluateWithObject: @"Hello"]), - nil); - STAssertTrueNoThrow( - ([[NSPredicate predicateWithFormat: @"self like %@", @"H?llo"] - evaluateWithObject: @"Hello"]), - nil); - STAssertTrueNoThrow( - ([[NSPredicate predicateWithFormat: @"NOT (self == %@)", @"Hello"] - evaluateWithObject: @"Jello"]), - nil); - STAssertTrueNoThrow( - ([[NSPredicate predicateWithFormat: @"self == \"Hello\""] - evaluateWithObject: @"Hello"]), - nil); -} -@end diff --git a/testing/UnitTests/Properties.h b/testing/UnitTests/Properties.h deleted file mode 100644 index e3bfb431..00000000 --- a/testing/UnitTests/Properties.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface Properties : SenTestCase { - NSString *firstName; - NSString *lastName; -} - -@property(copy) NSString *firstName; -@property(copy) NSString *lastName; -@property(readonly) NSString *fullName; - -@end diff --git a/testing/UnitTests/Properties.m b/testing/UnitTests/Properties.m deleted file mode 100644 index b3323529..00000000 --- a/testing/UnitTests/Properties.m +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "Properties.h" - -@implementation Properties -@synthesize firstName; -@synthesize lastName; -@dynamic fullName; - -- (NSMethodSignature *) methodSignatureForSelector: (SEL) aSelector { - if (aSelector == @selector(fullName)) { - return [self - methodSignatureForSelector: @selector(replacementFullName)]; - } - return [super methodSignatureForSelector: aSelector]; -} - -- (void) forwardInvocation: (NSInvocation *) anInvocation { - if ([anInvocation selector] == @selector(fullName)) { - [anInvocation setSelector: @selector(replacementFullName)]; - [anInvocation invoke]; - } else - [super forwardInvocation: anInvocation]; -} - -- (NSString *) replacementFullName { - return [NSString stringWithFormat: @"%@ %@", firstName, lastName]; -} - -- (void) testSetting { - self.firstName = @"Johannes"; - self.lastName = @"Fortmann"; - - STAssertEqualObjects(@"Johannes", firstName, nil); - STAssertEqualObjects(@"Fortmann", lastName, nil); -} - -- (void) testGetting { - self.firstName = @"Johannes"; - self.lastName = @"Fortmann"; - - STAssertEqualObjects(self.firstName, firstName, nil); - STAssertEqualObjects(self.lastName, lastName, nil); -} - -- (void) testDynamic { - self.firstName = @"Johannes"; - self.lastName = @"Fortmann"; - - STAssertEqualObjects(self.fullName, @"Johannes Fortmann", nil); -} - -- (void) tearDown { - self.firstName = nil; - self.lastName = nil; -} -@end diff --git a/testing/UnitTests/PropertyListUnarchiving.h b/testing/UnitTests/PropertyListUnarchiving.h deleted file mode 100644 index 923e70e6..00000000 --- a/testing/UnitTests/PropertyListUnarchiving.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface PropertyListUnarchiving : SenTestCase { -} - -@end diff --git a/testing/UnitTests/PropertyListUnarchiving.m b/testing/UnitTests/PropertyListUnarchiving.m deleted file mode 100644 index f4403136..00000000 --- a/testing/UnitTests/PropertyListUnarchiving.m +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "PropertyListUnarchiving.h" - -@implementation PropertyListUnarchiving -+ (id) sampleList { - id plistDict; - plistDict = [NSMutableDictionary dictionary]; - [plistDict setObject: @"string" forKey: @"string"]; - [plistDict setObject: [NSNumber numberWithFloat: 17.5] forKey: @"float"]; - [plistDict setObject: [NSNumber numberWithBool: YES] forKey: @"boolean"]; - [plistDict setObject: [NSArray arrayWithObjects: @"first", @"second", - @"third", nil] - forKey: @"array"]; - [plistDict setObject: [NSDate dateWithTimeIntervalSince1970: 20] - forKey: @"date"]; - - char data[] = {1, 2, 3, 4, 5}; - [plistDict setObject: [NSData dataWithBytes: data length: 5] - forKey: @"data"]; - - return plistDict; -} - -- (void) testBinary { - id error = nil; - NSInteger format = NSPropertyListBinaryFormat_v1_0; - id path = - [[NSBundle bundleForClass: [self class]] pathForResource: @"Binary" - ofType: @"plist"]; - STAssertNotNil(path, @"Data file not found"); - id data = [NSData dataWithContentsOfFile: path]; - STAssertNotNil(data, @"Data file couldn't be opened"); - - id plist = [NSPropertyListSerialization - propertyListFromData: data - mutabilityOption: NSPropertyListImmutable - format: (NSUInteger *) &format - errorDescription: &error]; - STAssertNotNil(plist, error); - STAssertEquals(format, NSPropertyListBinaryFormat_v1_0, nil); - - STAssertEqualObjects( - [[self class] sampleList], plist, - @"Property list unarchived but doesn't match sample list"); -} - -- (void) testFailureCase { - char data[] = {1, 2, 3, 4, 5}; - id error = nil; - NSInteger format = 0; - id plist = nil; - STAssertNoThrow(plist = [NSPropertyListSerialization - propertyListFromData: [NSData dataWithBytes: data - length: 5] - mutabilityOption: NSPropertyListImmutable - format: (NSUInteger *) &format - errorDescription: &error], - nil); - STAssertTrue(plist == nil, nil); -} - -- (void) testXML { - id error = nil; - NSInteger format = 0; - id data = [NSData - dataWithContentsOfFile: [[NSBundle bundleForClass: [self class]] - pathForResource: @"XML" - ofType: @"plist"]]; - STAssertNotNil(data, @"Data file not found"); - id plist = [NSPropertyListSerialization - propertyListFromData: data - mutabilityOption: NSPropertyListImmutable - format: (NSUInteger *) &format - errorDescription: &error]; - STAssertNotNil(plist, error); - STAssertEquals(format, NSPropertyListXMLFormat_v1_0, nil); - - STAssertEqualObjects( - plist, [[self class] sampleList], - @"Property list unarchived but doesn't match sample list"); -} - -@end diff --git a/testing/UnitTests/README b/testing/UnitTests/README deleted file mode 100644 index 444e3a6f..00000000 --- a/testing/UnitTests/README +++ /dev/null @@ -1 +0,0 @@ -To run the tests, youÕll need to build the TestingHarness project first, then copy local_server_config_example.sh to local_server_config.sh and edit it to contain the correct values for your system. \ No newline at end of file diff --git a/testing/UnitTests/Resources/Binary.plist b/testing/UnitTests/Resources/Binary.plist deleted file mode 100644 index e6366082fb121ef3c69ec8cb42b81c6e91da99d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmYc)$jK}&F)+Bs$i&RT%Er#Y$->1KnwFEFSQ4I;pP!SOm=}_gSdti4TvC*ommZo} zRFqf=5=m8Z>|tQwbOq~M%+13anwD8qToP8Cnw+1P5?YdxS(IXY@T~e1GX@3*4pC`k c4SiE9dj~hKfbdwL2oNwbLTCnlC=H|10C&eDZ~y=R diff --git a/testing/UnitTests/Resources/XML.plist b/testing/UnitTests/Resources/XML.plist deleted file mode 100644 index 25fc4a1c..00000000 --- a/testing/UnitTests/Resources/XML.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - array - - first - second - third - - boolean - - data - AQIDBAU= - date - 1970-01-01T00:00:20Z - float - 17.5 - string - string - - diff --git a/testing/UnitTests/RetainRelease.h b/testing/UnitTests/RetainRelease.h deleted file mode 100644 index 38895086..00000000 --- a/testing/UnitTests/RetainRelease.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface RetainRelease : SenTestCase { - BOOL deallocCalled; -} -- (void) testRetainRelease; -- (void) testAutoreleasePool; -- (void) didCallDealloc; -@end diff --git a/testing/UnitTests/RetainRelease.m b/testing/UnitTests/RetainRelease.m deleted file mode 100644 index 6d787027..00000000 --- a/testing/UnitTests/RetainRelease.m +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "RetainRelease.h" - -@interface RetainReleaseTestHelperObject : NSObject { - @public - RetainRelease *delegate; -} -@end - -@implementation RetainReleaseTestHelperObject -- (void) dealloc { - [delegate didCallDealloc]; - [super dealloc]; -} -@end - -@implementation RetainRelease -- (void) testRetainRelease; { - deallocCalled = NO; - RetainReleaseTestHelperObject *helper = [RetainReleaseTestHelperObject new]; - - helper->delegate = self; - - [helper release]; - - STAssertTrue(deallocCalled, nil); -} - -- (void) didCallDealloc { - deallocCalled = YES; -} - -- (void) testAutoreleasePool; { - deallocCalled = NO; - RetainReleaseTestHelperObject *helper = [RetainReleaseTestHelperObject new]; - - helper->delegate = self; - - id pool = [NSAutoreleasePool new]; - [helper autorelease]; - - STAssertFalse(deallocCalled, nil); - [pool drain]; - STAssertTrue(deallocCalled, nil); -} -@end diff --git a/testing/UnitTests/Runloop.h b/testing/UnitTests/Runloop.h deleted file mode 100644 index 17a2ab86..00000000 --- a/testing/UnitTests/Runloop.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -@class WorkerThread; - -@interface Runloop : SenTestCase { - WorkerThread *_workerThread; - NSMutableArray *_jobs; - BOOL _wrongThread; -} - -@end diff --git a/testing/UnitTests/Runloop.m b/testing/UnitTests/Runloop.m deleted file mode 100644 index b394905b..00000000 --- a/testing/UnitTests/Runloop.m +++ /dev/null @@ -1,163 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "Runloop.h" - -#define NUM_ITERATIONS 1000 - -@interface WorkerThread : NSThread { - int _loopCount; - NSConditionLock *_condition; -} - -@end - -@implementation WorkerThread -- (id) init { - if (self = [super init]) { - _condition = [[NSConditionLock alloc] initWithCondition: 0]; - } - return self; -} - -- (void) dealloc { - [_condition release]; - [super dealloc]; -} - -- (void) main { - id pool = [NSAutoreleasePool new]; - NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; - [_condition lockWhenCondition: 0]; - [_condition unlockWithCondition: 1]; - while (![self isCancelled]) { - id pool2 = [NSAutoreleasePool new]; - [runLoop runMode: NSDefaultRunLoopMode - beforeDate: [NSDate distantFuture]]; - __sync_add_and_fetch(&_loopCount, 1); - [pool2 drain]; - } - [pool drain]; - [_condition lockWhenCondition: 1]; - [_condition unlockWithCondition: 0]; -} - -- (void) waitUntilRunning { - [_condition lockWhenCondition: 1]; - [_condition unlock]; -} - -- (void) waitUntilStopped { - [_condition lockWhenCondition: 0]; - [_condition unlock]; -} - -- (int) loopCount { - return _loopCount; -} -@end - -@implementation Runloop -- (void) setUp { - _workerThread = [WorkerThread new]; - [_workerThread start]; - _jobs = [NSMutableArray new]; - [_workerThread waitUntilRunning]; -} - -- (void) tearDown { - [_workerThread cancel]; - [self performSelector: @selector(self) - onThread: _workerThread - withObject: nil - waitUntilDone: NO]; - [_workerThread waitUntilStopped]; - [_workerThread release]; - [_jobs release]; - _jobs = nil; -} - -- (void) doJobOnThread: (id) job { - @synchronized(_jobs) { - [_jobs removeObject: job]; - } - if ([NSThread currentThread] != _workerThread) - _wrongThread = YES; -} - -- (void) doNothing { -} - -- (void) testPerformOnThread { - STAssertEquals([_workerThread loopCount], 0, nil); - for (int i = 0; i < NUM_ITERATIONS; i++) { - @synchronized(_jobs) { - [_jobs addObject: [NSNumber numberWithInt: i]]; - } - [self performSelector: @selector(doJobOnThread:) - onThread: _workerThread - withObject: [NSNumber numberWithInt: i] - waitUntilDone: NO]; - } - - [self performSelector: @selector(doNothing) - onThread: _workerThread - withObject: nil - waitUntilDone: YES]; - - STAssertEquals(_wrongThread, NO, nil); - @synchronized(_jobs) { - STAssertTrue([_jobs count] == 0, nil); - } -} - -- (void) testPerformOnThreadWait { - for (int i = 0; i < NUM_ITERATIONS; i++) { - @synchronized(_jobs) { - [_jobs addObject: [NSNumber numberWithInt: i]]; - } - [self performSelector: @selector(doJobOnThread:) - onThread: _workerThread - withObject: [NSNumber numberWithInt: i] - waitUntilDone: YES]; - STAssertTrue([_jobs count] == 0, nil); - } - - [self performSelector: @selector(doNothing) - onThread: _workerThread - withObject: nil - waitUntilDone: YES]; - STAssertEquals(_wrongThread, NO, nil); - STAssertTrue([_jobs count] == 0, nil); -} - -- (void) testRunloopSpinning { - int countBeforeWait = [_workerThread loopCount]; - - [self performSelector: @selector(self) - onThread: _workerThread - withObject: nil - waitUntilDone: YES]; - [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.5]]; - STAssertEqualsWithAccuracy([_workerThread loopCount], countBeforeWait, 5, - nil); -} - -@end diff --git a/testing/UnitTests/SenTestingKit-Projects/SenTestingKit.xcodeproj/project.pbxproj b/testing/UnitTests/SenTestingKit-Projects/SenTestingKit.xcodeproj/project.pbxproj deleted file mode 100644 index d5dabb4e..00000000 --- a/testing/UnitTests/SenTestingKit-Projects/SenTestingKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1280 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 3D6DC268054FE90B00091E74 /* NSException_SenTestFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC24E054FE90A00091E74 /* NSException_SenTestFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC269054FE90B00091E74 /* NSException_SenTestFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC24F054FE90A00091E74 /* NSException_SenTestFailure.m */; }; - 3D6DC26A054FE90B00091E74 /* NSInvocation_SenTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC250054FE90A00091E74 /* NSInvocation_SenTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC26B054FE90B00091E74 /* NSInvocation_SenTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC251054FE90A00091E74 /* NSInvocation_SenTesting.m */; }; - 3D6DC26C054FE90B00091E74 /* SenInterfaceTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC252054FE90A00091E74 /* SenInterfaceTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC26D054FE90B00091E74 /* SenInterfaceTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC253054FE90A00091E74 /* SenInterfaceTestCase.m */; }; - 3D6DC26E054FE90B00091E74 /* SenTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC254054FE90A00091E74 /* SenTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC26F054FE90B00091E74 /* SenTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC255054FE90A00091E74 /* SenTest.m */; }; - 3D6DC270054FE90B00091E74 /* SenTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC256054FE90A00091E74 /* SenTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC271054FE90B00091E74 /* SenTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC257054FE90A00091E74 /* SenTestCase.m */; }; - 3D6DC272054FE90B00091E74 /* SenTestCaseRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC258054FE90A00091E74 /* SenTestCaseRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC273054FE90B00091E74 /* SenTestCaseRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC259054FE90A00091E74 /* SenTestCaseRun.m */; }; - 3D6DC274054FE90B00091E74 /* SenTestDistributedNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25A054FE90A00091E74 /* SenTestDistributedNotifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC275054FE90B00091E74 /* SenTestDistributedNotifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25B054FE90A00091E74 /* SenTestDistributedNotifier.m */; }; - 3D6DC276054FE90B00091E74 /* SenTestLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25C054FE90A00091E74 /* SenTestLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC277054FE90B00091E74 /* SenTestLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25D054FE90A00091E74 /* SenTestLog.m */; }; - 3D6DC278054FE90B00091E74 /* SenTestObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25E054FE90A00091E74 /* SenTestObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC279054FE90B00091E74 /* SenTestObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25F054FE90A00091E74 /* SenTestObserver.m */; }; - 3D6DC27A054FE90B00091E74 /* SenTestProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC260054FE90A00091E74 /* SenTestProbe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC27B054FE90B00091E74 /* SenTestProbe.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC261054FE90A00091E74 /* SenTestProbe.m */; }; - 3D6DC27C054FE90B00091E74 /* SenTestRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC262054FE90A00091E74 /* SenTestRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC27D054FE90B00091E74 /* SenTestRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC263054FE90A00091E74 /* SenTestRun.m */; }; - 3D6DC27E054FE90B00091E74 /* SenTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC264054FE90A00091E74 /* SenTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC27F054FE90B00091E74 /* SenTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC265054FE90A00091E74 /* SenTestSuite.m */; }; - 3D6DC280054FE90B00091E74 /* SenTestSuiteRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC266054FE90B00091E74 /* SenTestSuiteRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC281054FE90B00091E74 /* SenTestSuiteRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC267054FE90B00091E74 /* SenTestSuiteRun.m */; }; - 3D6DC287054FE9BC00091E74 /* CustomInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC285054FE9BC00091E74 /* CustomInfo.plist */; }; - 3D6DC2A3054FEA7300091E74 /* IntroSenTestingKit.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC291054FEA7300091E74 /* IntroSenTestingKit.html */; }; - 3D6DC2A4054FEA7300091E74 /* NSException_SenTestFailure.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC292054FEA7300091E74 /* NSException_SenTestFailure.html */; }; - 3D6DC2A5054FEA7400091E74 /* NSInvocation_SenTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC293054FEA7300091E74 /* NSInvocation_SenTesting.html */; }; - 3D6DC2A6054FEA7400091E74 /* SenInterfaceTestCase.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC294054FEA7300091E74 /* SenInterfaceTestCase.html */; }; - 3D6DC2A7054FEA7400091E74 /* SenTest.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC295054FEA7300091E74 /* SenTest.html */; }; - 3D6DC2A8054FEA7400091E74 /* SenTestCase.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC296054FEA7300091E74 /* SenTestCase.html */; }; - 3D6DC2A9054FEA7400091E74 /* SenTestCaseRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC297054FEA7300091E74 /* SenTestCaseRun.html */; }; - 3D6DC2AA054FEA7400091E74 /* SenTestCase_Macros.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC298054FEA7300091E74 /* SenTestCase_Macros.html */; }; - 3D6DC2AB054FEA7400091E74 /* SenTestDefines.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC299054FEA7300091E74 /* SenTestDefines.html */; }; - 3D6DC2AC054FEA7400091E74 /* SenTestDistributedNotifier.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29A054FEA7300091E74 /* SenTestDistributedNotifier.html */; }; - 3D6DC2AD054FEA7400091E74 /* SenTestLog.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29B054FEA7300091E74 /* SenTestLog.html */; }; - 3D6DC2AE054FEA7400091E74 /* SenTestObserver.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29C054FEA7300091E74 /* SenTestObserver.html */; }; - 3D6DC2AF054FEA7400091E74 /* SenTestProbe.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29D054FEA7300091E74 /* SenTestProbe.html */; }; - 3D6DC2B0054FEA7400091E74 /* SenTestRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29E054FEA7300091E74 /* SenTestRun.html */; }; - 3D6DC2B1054FEA7400091E74 /* SenTestSuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29F054FEA7300091E74 /* SenTestSuite.html */; }; - 3D6DC2B2054FEA7400091E74 /* SenTestSuiteRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2A0054FEA7300091E74 /* SenTestSuiteRun.html */; }; - 3D6DC2B3054FEA7400091E74 /* SenTestingKitTOC.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2A1054FEA7300091E74 /* SenTestingKitTOC.html */; }; - 3D6DC2D6054FEBA400091E74 /* SenTestContinueOrRaiseTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CC054FEBA400091E74 /* SenTestContinueOrRaiseTesting.html */; }; - 3D6DC2D7054FEBA400091E74 /* SenTestEmptySuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CD054FEBA400091E74 /* SenTestEmptySuite.html */; }; - 3D6DC2D8054FEBA400091E74 /* SenTestErrorTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CE054FEBA400091E74 /* SenTestErrorTesting.html */; }; - 3D6DC2D9054FEBA400091E74 /* SenTestFail.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CF054FEBA400091E74 /* SenTestFail.html */; }; - 3D6DC2DA054FEBA400091E74 /* SenTestMacroTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D0054FEBA400091E74 /* SenTestMacroTesting.html */; }; - 3D6DC2DB054FEBA400091E74 /* SenTestPerformance.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D1054FEBA400091E74 /* SenTestPerformance.html */; }; - 3D6DC2DC054FEBA400091E74 /* SenTestShould.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D2054FEBA400091E74 /* SenTestShould.html */; }; - 3D6DC2DD054FEBA400091E74 /* SenTestShouldBeEqual.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D3054FEBA400091E74 /* SenTestShouldBeEqual.html */; }; - 3D6DC2DE054FEBA400091E74 /* SenTestShouldRaise.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D4054FEBA400091E74 /* SenTestShouldRaise.html */; }; - 3D6DC2DF054FEBA400091E74 /* SenTestTestSuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D5054FEBA400091E74 /* SenTestTestSuite.html */; }; - 3D6DC2E3054FEBDC00091E74 /* NoSourceDirectoryExtensions.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2E2054FEBDC00091E74 /* NoSourceDirectoryExtensions.plist */; }; - 3D6DC2E7054FEC0600091E74 /* OpenSourceLicense.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2E6054FEC0600091E74 /* OpenSourceLicense.html */; }; - 3D6DC2ED054FEC3100091E74 /* SenTestCase_Macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EA054FEC3100091E74 /* SenTestCase_Macros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC2EE054FEC3100091E74 /* SenTestDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EB054FEC3100091E74 /* SenTestDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D6DC2EF054FEC3100091E74 /* SenTestingKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EC054FEC3100091E74 /* SenTestingKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3DB0931206133A8D003C502B /* SenTestNewStyleMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DB0931006133A8D003C502B /* SenTestNewStyleMacros.h */; }; - 3DB0931306133A8D003C502B /* SenTestNewStyleMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DB0931106133A8D003C502B /* SenTestNewStyleMacros.m */; }; - 8DC2EF510486A6940098B216 /* SenTestingKit_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 32DBCF5E0370ADEE00C91783 /* SenTestingKit_Prefix.pch */; }; - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - C813716F0F38FE98001D4AFB /* SenTestingKit_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 32DBCF5E0370ADEE00C91783 /* SenTestingKit_Prefix.pch */; }; - C81371700F38FE98001D4AFB /* NSException_SenTestFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC24E054FE90A00091E74 /* NSException_SenTestFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371710F38FE98001D4AFB /* NSInvocation_SenTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC250054FE90A00091E74 /* NSInvocation_SenTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371720F38FE98001D4AFB /* SenInterfaceTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC252054FE90A00091E74 /* SenInterfaceTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371730F38FE98001D4AFB /* SenTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC254054FE90A00091E74 /* SenTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371740F38FE98001D4AFB /* SenTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC256054FE90A00091E74 /* SenTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371750F38FE98001D4AFB /* SenTestCaseRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC258054FE90A00091E74 /* SenTestCaseRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371760F38FE98001D4AFB /* SenTestDistributedNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25A054FE90A00091E74 /* SenTestDistributedNotifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371770F38FE98001D4AFB /* SenTestLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25C054FE90A00091E74 /* SenTestLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371780F38FE98001D4AFB /* SenTestObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25E054FE90A00091E74 /* SenTestObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371790F38FE98001D4AFB /* SenTestProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC260054FE90A00091E74 /* SenTestProbe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C813717A0F38FE98001D4AFB /* SenTestRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC262054FE90A00091E74 /* SenTestRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C813717B0F38FE98001D4AFB /* SenTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC264054FE90A00091E74 /* SenTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C813717C0F38FE98001D4AFB /* SenTestSuiteRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC266054FE90B00091E74 /* SenTestSuiteRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C813717D0F38FE98001D4AFB /* SenTestCase_Macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EA054FEC3100091E74 /* SenTestCase_Macros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C813717E0F38FE98001D4AFB /* SenTestDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EB054FEC3100091E74 /* SenTestDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C813717F0F38FE98001D4AFB /* SenTestingKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EC054FEC3100091E74 /* SenTestingKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371800F38FE98001D4AFB /* SenTestingUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3AC605A9886A0078AC3E /* SenTestingUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C81371810F38FE98001D4AFB /* NSObject_SenTestRuntimeUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDA05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.h */; }; - C81371820F38FE98001D4AFB /* SenTestClassEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDC05A99B590078AC3E /* SenTestClassEnumerator.h */; }; - C81371830F38FE98001D4AFB /* SenTestInvocationEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDE05A99B590078AC3E /* SenTestInvocationEnumerator.h */; }; - C81371850F38FE98001D4AFB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - C81371860F38FE98001D4AFB /* CustomInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC285054FE9BC00091E74 /* CustomInfo.plist */; }; - C81371870F38FE98001D4AFB /* IntroSenTestingKit.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC291054FEA7300091E74 /* IntroSenTestingKit.html */; }; - C81371880F38FE98001D4AFB /* NSException_SenTestFailure.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC292054FEA7300091E74 /* NSException_SenTestFailure.html */; }; - C81371890F38FE98001D4AFB /* NSInvocation_SenTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC293054FEA7300091E74 /* NSInvocation_SenTesting.html */; }; - C813718A0F38FE98001D4AFB /* SenInterfaceTestCase.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC294054FEA7300091E74 /* SenInterfaceTestCase.html */; }; - C813718B0F38FE98001D4AFB /* SenTest.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC295054FEA7300091E74 /* SenTest.html */; }; - C813718C0F38FE98001D4AFB /* SenTestCase.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC296054FEA7300091E74 /* SenTestCase.html */; }; - C813718D0F38FE98001D4AFB /* SenTestCaseRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC297054FEA7300091E74 /* SenTestCaseRun.html */; }; - C813718E0F38FE98001D4AFB /* SenTestCase_Macros.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC298054FEA7300091E74 /* SenTestCase_Macros.html */; }; - C813718F0F38FE98001D4AFB /* SenTestDefines.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC299054FEA7300091E74 /* SenTestDefines.html */; }; - C81371900F38FE98001D4AFB /* SenTestDistributedNotifier.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29A054FEA7300091E74 /* SenTestDistributedNotifier.html */; }; - C81371910F38FE98001D4AFB /* SenTestLog.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29B054FEA7300091E74 /* SenTestLog.html */; }; - C81371920F38FE98001D4AFB /* SenTestObserver.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29C054FEA7300091E74 /* SenTestObserver.html */; }; - C81371930F38FE98001D4AFB /* SenTestProbe.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29D054FEA7300091E74 /* SenTestProbe.html */; }; - C81371940F38FE98001D4AFB /* SenTestRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29E054FEA7300091E74 /* SenTestRun.html */; }; - C81371950F38FE98001D4AFB /* SenTestSuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29F054FEA7300091E74 /* SenTestSuite.html */; }; - C81371960F38FE98001D4AFB /* SenTestSuiteRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2A0054FEA7300091E74 /* SenTestSuiteRun.html */; }; - C81371970F38FE98001D4AFB /* SenTestingKitTOC.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2A1054FEA7300091E74 /* SenTestingKitTOC.html */; }; - C81371980F38FE98001D4AFB /* SenTestContinueOrRaiseTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CC054FEBA400091E74 /* SenTestContinueOrRaiseTesting.html */; }; - C81371990F38FE98001D4AFB /* SenTestEmptySuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CD054FEBA400091E74 /* SenTestEmptySuite.html */; }; - C813719A0F38FE98001D4AFB /* SenTestErrorTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CE054FEBA400091E74 /* SenTestErrorTesting.html */; }; - C813719B0F38FE98001D4AFB /* SenTestFail.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CF054FEBA400091E74 /* SenTestFail.html */; }; - C813719C0F38FE98001D4AFB /* SenTestMacroTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D0054FEBA400091E74 /* SenTestMacroTesting.html */; }; - C813719D0F38FE98001D4AFB /* SenTestPerformance.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D1054FEBA400091E74 /* SenTestPerformance.html */; }; - C813719E0F38FE98001D4AFB /* SenTestShould.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D2054FEBA400091E74 /* SenTestShould.html */; }; - C813719F0F38FE98001D4AFB /* SenTestShouldBeEqual.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D3054FEBA400091E74 /* SenTestShouldBeEqual.html */; }; - C81371A00F38FE98001D4AFB /* SenTestShouldRaise.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D4054FEBA400091E74 /* SenTestShouldRaise.html */; }; - C81371A10F38FE98001D4AFB /* SenTestTestSuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D5054FEBA400091E74 /* SenTestTestSuite.html */; }; - C81371A20F38FE98001D4AFB /* NoSourceDirectoryExtensions.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2E2054FEBDC00091E74 /* NoSourceDirectoryExtensions.plist */; }; - C81371A30F38FE98001D4AFB /* OpenSourceLicense.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2E6054FEC0600091E74 /* OpenSourceLicense.html */; }; - C81371A40F38FE98001D4AFB /* ApplicationWrapperExtensions.plist in Resources */ = {isa = PBXBuildFile; fileRef = E97D6D85056E371F0087F969 /* ApplicationWrapperExtensions.plist */; }; - C81371A60F38FE98001D4AFB /* NSException_SenTestFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC24F054FE90A00091E74 /* NSException_SenTestFailure.m */; }; - C81371A70F38FE98001D4AFB /* NSInvocation_SenTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC251054FE90A00091E74 /* NSInvocation_SenTesting.m */; }; - C81371A80F38FE98001D4AFB /* SenInterfaceTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC253054FE90A00091E74 /* SenInterfaceTestCase.m */; }; - C81371A90F38FE98001D4AFB /* SenTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC255054FE90A00091E74 /* SenTest.m */; }; - C81371AA0F38FE98001D4AFB /* SenTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC257054FE90A00091E74 /* SenTestCase.m */; }; - C81371AB0F38FE98001D4AFB /* SenTestCaseRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC259054FE90A00091E74 /* SenTestCaseRun.m */; }; - C81371AC0F38FE98001D4AFB /* SenTestDistributedNotifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25B054FE90A00091E74 /* SenTestDistributedNotifier.m */; }; - C81371AD0F38FE98001D4AFB /* SenTestLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25D054FE90A00091E74 /* SenTestLog.m */; }; - C81371AE0F38FE98001D4AFB /* SenTestObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25F054FE90A00091E74 /* SenTestObserver.m */; }; - C81371AF0F38FE98001D4AFB /* SenTestProbe.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC261054FE90A00091E74 /* SenTestProbe.m */; }; - C81371B00F38FE98001D4AFB /* SenTestRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC263054FE90A00091E74 /* SenTestRun.m */; }; - C81371B10F38FE98001D4AFB /* SenTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC265054FE90A00091E74 /* SenTestSuite.m */; }; - C81371B20F38FE98001D4AFB /* SenTestSuiteRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC267054FE90B00091E74 /* SenTestSuiteRun.m */; }; - C81371B30F38FE98001D4AFB /* SenTestingUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3AC705A9886A0078AC3E /* SenTestingUtilities.m */; }; - C81371B40F38FE98001D4AFB /* NSObject_SenTestRuntimeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDB05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.m */; }; - C81371B50F38FE98001D4AFB /* SenTestClassEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDD05A99B590078AC3E /* SenTestClassEnumerator.m */; }; - C81371B60F38FE98001D4AFB /* SenTestInvocationEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDF05A99B590078AC3E /* SenTestInvocationEnumerator.m */; }; - C81371B80F38FE98001D4AFB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - C8978F180ECA1BBA00C3E5EE /* SenTestingKit_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 32DBCF5E0370ADEE00C91783 /* SenTestingKit_Prefix.pch */; }; - C8978F190ECA1BBA00C3E5EE /* NSException_SenTestFailure.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC24E054FE90A00091E74 /* NSException_SenTestFailure.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F1A0ECA1BBA00C3E5EE /* NSInvocation_SenTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC250054FE90A00091E74 /* NSInvocation_SenTesting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F1B0ECA1BBA00C3E5EE /* SenInterfaceTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC252054FE90A00091E74 /* SenInterfaceTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F1C0ECA1BBA00C3E5EE /* SenTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC254054FE90A00091E74 /* SenTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F1D0ECA1BBA00C3E5EE /* SenTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC256054FE90A00091E74 /* SenTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F1E0ECA1BBA00C3E5EE /* SenTestCaseRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC258054FE90A00091E74 /* SenTestCaseRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F1F0ECA1BBA00C3E5EE /* SenTestDistributedNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25A054FE90A00091E74 /* SenTestDistributedNotifier.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F200ECA1BBA00C3E5EE /* SenTestLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25C054FE90A00091E74 /* SenTestLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F210ECA1BBA00C3E5EE /* SenTestObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC25E054FE90A00091E74 /* SenTestObserver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F220ECA1BBA00C3E5EE /* SenTestProbe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC260054FE90A00091E74 /* SenTestProbe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F230ECA1BBA00C3E5EE /* SenTestRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC262054FE90A00091E74 /* SenTestRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F240ECA1BBA00C3E5EE /* SenTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC264054FE90A00091E74 /* SenTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F250ECA1BBA00C3E5EE /* SenTestSuiteRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC266054FE90B00091E74 /* SenTestSuiteRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F260ECA1BBA00C3E5EE /* SenTestCase_Macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EA054FEC3100091E74 /* SenTestCase_Macros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F270ECA1BBA00C3E5EE /* SenTestDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EB054FEC3100091E74 /* SenTestDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F280ECA1BBA00C3E5EE /* SenTestingKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D6DC2EC054FEC3100091E74 /* SenTestingKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F290ECA1BBA00C3E5EE /* SenTestingUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3AC605A9886A0078AC3E /* SenTestingUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8978F2A0ECA1BBA00C3E5EE /* NSObject_SenTestRuntimeUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDA05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.h */; }; - C8978F2B0ECA1BBA00C3E5EE /* SenTestClassEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDC05A99B590078AC3E /* SenTestClassEnumerator.h */; }; - C8978F2C0ECA1BBA00C3E5EE /* SenTestInvocationEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDE05A99B590078AC3E /* SenTestInvocationEnumerator.h */; }; - C8978F2E0ECA1BBA00C3E5EE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; - C8978F2F0ECA1BBA00C3E5EE /* CustomInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC285054FE9BC00091E74 /* CustomInfo.plist */; }; - C8978F300ECA1BBA00C3E5EE /* IntroSenTestingKit.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC291054FEA7300091E74 /* IntroSenTestingKit.html */; }; - C8978F310ECA1BBA00C3E5EE /* NSException_SenTestFailure.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC292054FEA7300091E74 /* NSException_SenTestFailure.html */; }; - C8978F320ECA1BBA00C3E5EE /* NSInvocation_SenTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC293054FEA7300091E74 /* NSInvocation_SenTesting.html */; }; - C8978F330ECA1BBA00C3E5EE /* SenInterfaceTestCase.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC294054FEA7300091E74 /* SenInterfaceTestCase.html */; }; - C8978F340ECA1BBA00C3E5EE /* SenTest.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC295054FEA7300091E74 /* SenTest.html */; }; - C8978F350ECA1BBA00C3E5EE /* SenTestCase.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC296054FEA7300091E74 /* SenTestCase.html */; }; - C8978F360ECA1BBA00C3E5EE /* SenTestCaseRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC297054FEA7300091E74 /* SenTestCaseRun.html */; }; - C8978F370ECA1BBA00C3E5EE /* SenTestCase_Macros.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC298054FEA7300091E74 /* SenTestCase_Macros.html */; }; - C8978F380ECA1BBA00C3E5EE /* SenTestDefines.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC299054FEA7300091E74 /* SenTestDefines.html */; }; - C8978F390ECA1BBA00C3E5EE /* SenTestDistributedNotifier.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29A054FEA7300091E74 /* SenTestDistributedNotifier.html */; }; - C8978F3A0ECA1BBA00C3E5EE /* SenTestLog.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29B054FEA7300091E74 /* SenTestLog.html */; }; - C8978F3B0ECA1BBA00C3E5EE /* SenTestObserver.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29C054FEA7300091E74 /* SenTestObserver.html */; }; - C8978F3C0ECA1BBA00C3E5EE /* SenTestProbe.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29D054FEA7300091E74 /* SenTestProbe.html */; }; - C8978F3D0ECA1BBA00C3E5EE /* SenTestRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29E054FEA7300091E74 /* SenTestRun.html */; }; - C8978F3E0ECA1BBA00C3E5EE /* SenTestSuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC29F054FEA7300091E74 /* SenTestSuite.html */; }; - C8978F3F0ECA1BBA00C3E5EE /* SenTestSuiteRun.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2A0054FEA7300091E74 /* SenTestSuiteRun.html */; }; - C8978F400ECA1BBA00C3E5EE /* SenTestingKitTOC.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2A1054FEA7300091E74 /* SenTestingKitTOC.html */; }; - C8978F410ECA1BBA00C3E5EE /* SenTestContinueOrRaiseTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CC054FEBA400091E74 /* SenTestContinueOrRaiseTesting.html */; }; - C8978F420ECA1BBA00C3E5EE /* SenTestEmptySuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CD054FEBA400091E74 /* SenTestEmptySuite.html */; }; - C8978F430ECA1BBA00C3E5EE /* SenTestErrorTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CE054FEBA400091E74 /* SenTestErrorTesting.html */; }; - C8978F440ECA1BBA00C3E5EE /* SenTestFail.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2CF054FEBA400091E74 /* SenTestFail.html */; }; - C8978F450ECA1BBA00C3E5EE /* SenTestMacroTesting.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D0054FEBA400091E74 /* SenTestMacroTesting.html */; }; - C8978F460ECA1BBA00C3E5EE /* SenTestPerformance.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D1054FEBA400091E74 /* SenTestPerformance.html */; }; - C8978F470ECA1BBA00C3E5EE /* SenTestShould.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D2054FEBA400091E74 /* SenTestShould.html */; }; - C8978F480ECA1BBA00C3E5EE /* SenTestShouldBeEqual.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D3054FEBA400091E74 /* SenTestShouldBeEqual.html */; }; - C8978F490ECA1BBA00C3E5EE /* SenTestShouldRaise.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D4054FEBA400091E74 /* SenTestShouldRaise.html */; }; - C8978F4A0ECA1BBA00C3E5EE /* SenTestTestSuite.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2D5054FEBA400091E74 /* SenTestTestSuite.html */; }; - C8978F4B0ECA1BBA00C3E5EE /* NoSourceDirectoryExtensions.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2E2054FEBDC00091E74 /* NoSourceDirectoryExtensions.plist */; }; - C8978F4C0ECA1BBA00C3E5EE /* OpenSourceLicense.html in Resources */ = {isa = PBXBuildFile; fileRef = 3D6DC2E6054FEC0600091E74 /* OpenSourceLicense.html */; }; - C8978F4D0ECA1BBA00C3E5EE /* ApplicationWrapperExtensions.plist in Resources */ = {isa = PBXBuildFile; fileRef = E97D6D85056E371F0087F969 /* ApplicationWrapperExtensions.plist */; }; - C8978F4F0ECA1BBA00C3E5EE /* NSException_SenTestFailure.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC24F054FE90A00091E74 /* NSException_SenTestFailure.m */; }; - C8978F500ECA1BBA00C3E5EE /* NSInvocation_SenTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC251054FE90A00091E74 /* NSInvocation_SenTesting.m */; }; - C8978F510ECA1BBA00C3E5EE /* SenInterfaceTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC253054FE90A00091E74 /* SenInterfaceTestCase.m */; }; - C8978F520ECA1BBA00C3E5EE /* SenTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC255054FE90A00091E74 /* SenTest.m */; }; - C8978F530ECA1BBA00C3E5EE /* SenTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC257054FE90A00091E74 /* SenTestCase.m */; }; - C8978F540ECA1BBA00C3E5EE /* SenTestCaseRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC259054FE90A00091E74 /* SenTestCaseRun.m */; }; - C8978F550ECA1BBA00C3E5EE /* SenTestDistributedNotifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25B054FE90A00091E74 /* SenTestDistributedNotifier.m */; }; - C8978F560ECA1BBA00C3E5EE /* SenTestLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25D054FE90A00091E74 /* SenTestLog.m */; }; - C8978F570ECA1BBA00C3E5EE /* SenTestObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC25F054FE90A00091E74 /* SenTestObserver.m */; }; - C8978F580ECA1BBA00C3E5EE /* SenTestProbe.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC261054FE90A00091E74 /* SenTestProbe.m */; }; - C8978F590ECA1BBA00C3E5EE /* SenTestRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC263054FE90A00091E74 /* SenTestRun.m */; }; - C8978F5A0ECA1BBA00C3E5EE /* SenTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC265054FE90A00091E74 /* SenTestSuite.m */; }; - C8978F5B0ECA1BBA00C3E5EE /* SenTestSuiteRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D6DC267054FE90B00091E74 /* SenTestSuiteRun.m */; }; - C8978F5C0ECA1BBA00C3E5EE /* SenTestingUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3AC705A9886A0078AC3E /* SenTestingUtilities.m */; }; - C8978F5D0ECA1BBA00C3E5EE /* NSObject_SenTestRuntimeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDB05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.m */; }; - C8978F5E0ECA1BBA00C3E5EE /* SenTestClassEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDD05A99B590078AC3E /* SenTestClassEnumerator.m */; }; - C8978F5F0ECA1BBA00C3E5EE /* SenTestInvocationEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDF05A99B590078AC3E /* SenTestInvocationEnumerator.m */; }; - C8978F610ECA1BBA00C3E5EE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - E97D6D86056E371F0087F969 /* ApplicationWrapperExtensions.plist in Resources */ = {isa = PBXBuildFile; fileRef = E97D6D85056E371F0087F969 /* ApplicationWrapperExtensions.plist */; }; - E9831F010563D1A9000B981F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - E98E64C0056D17B90033599A /* SenTestContinueOrRaiseTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64AC056D17B90033599A /* SenTestContinueOrRaiseTesting.h */; }; - E98E64C1056D17B90033599A /* SenTestContinueOrRaiseTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64AD056D17B90033599A /* SenTestContinueOrRaiseTesting.m */; }; - E98E64C2056D17B90033599A /* SenTestEmptySuite.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64AE056D17B90033599A /* SenTestEmptySuite.h */; }; - E98E64C3056D17B90033599A /* SenTestEmptySuite.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64AF056D17B90033599A /* SenTestEmptySuite.m */; }; - E98E64C4056D17B90033599A /* SenTestErrorTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64B0056D17B90033599A /* SenTestErrorTesting.h */; }; - E98E64C5056D17B90033599A /* SenTestErrorTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64B1056D17B90033599A /* SenTestErrorTesting.m */; }; - E98E64C6056D17B90033599A /* SenTestFail.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64B2056D17B90033599A /* SenTestFail.h */; }; - E98E64C7056D17B90033599A /* SenTestFail.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64B3056D17B90033599A /* SenTestFail.m */; }; - E98E64C8056D17B90033599A /* SenTestMacroTesting.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64B4056D17B90033599A /* SenTestMacroTesting.h */; }; - E98E64C9056D17B90033599A /* SenTestMacroTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64B5056D17B90033599A /* SenTestMacroTesting.m */; }; - E98E64CA056D17B90033599A /* SenTestPerformance.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64B6056D17B90033599A /* SenTestPerformance.h */; }; - E98E64CB056D17B90033599A /* SenTestPerformance.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64B7056D17B90033599A /* SenTestPerformance.m */; }; - E98E64CC056D17B90033599A /* SenTestShould.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64B8056D17B90033599A /* SenTestShould.h */; }; - E98E64CD056D17B90033599A /* SenTestShould.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64B9056D17B90033599A /* SenTestShould.m */; }; - E98E64CE056D17B90033599A /* SenTestShouldBeEqual.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64BA056D17B90033599A /* SenTestShouldBeEqual.h */; }; - E98E64CF056D17B90033599A /* SenTestShouldBeEqual.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64BB056D17B90033599A /* SenTestShouldBeEqual.m */; }; - E98E64D0056D17B90033599A /* SenTestShouldRaise.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64BC056D17B90033599A /* SenTestShouldRaise.h */; }; - E98E64D1056D17B90033599A /* SenTestShouldRaise.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64BD056D17B90033599A /* SenTestShouldRaise.m */; }; - E98E64D2056D17B90033599A /* SenTestTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = E98E64BE056D17B90033599A /* SenTestTestSuite.h */; }; - E98E64D3056D17B90033599A /* SenTestTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = E98E64BF056D17B90033599A /* SenTestTestSuite.m */; }; - E98E650F056D188E0033599A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0867D69BFE84028FC02AAC07 /* Foundation.framework */; }; - E98E657F056D18950033599A /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* SenTestingKit.framework */; }; - E9CD3AC805A9886A0078AC3E /* SenTestingUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3AC605A9886A0078AC3E /* SenTestingUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9CD3AC905A9886A0078AC3E /* SenTestingUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3AC705A9886A0078AC3E /* SenTestingUtilities.m */; }; - E9CD3BE005A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDA05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.h */; }; - E9CD3BE105A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDB05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.m */; }; - E9CD3BE205A99B590078AC3E /* SenTestClassEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDC05A99B590078AC3E /* SenTestClassEnumerator.h */; }; - E9CD3BE305A99B590078AC3E /* SenTestClassEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDD05A99B590078AC3E /* SenTestClassEnumerator.m */; }; - E9CD3BE405A99B590078AC3E /* SenTestInvocationEnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CD3BDE05A99B590078AC3E /* SenTestInvocationEnumerator.h */; }; - E9CD3BE505A99B590078AC3E /* SenTestInvocationEnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = E9CD3BDF05A99B590078AC3E /* SenTestInvocationEnumerator.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXBuildRule section */ - C8978F620ECA1BBA00C3E5EE /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; - C8C8019D0DB515D20089C0D7 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; - E916C27507F5738400ABA046 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = com.apple.compilers.gcc; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; -/* End PBXBuildRule section */ - -/* Begin PBXContainerItemProxy section */ - E98E64D7056D17F70033599A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8DC2EF4F0486A6940098B216; - remoteInfo = Framework; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C1667FE841158C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 32DBCF5E0370ADEE00C91783 /* SenTestingKit_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SenTestingKit_Prefix.pch; sourceTree = ""; }; - 3D6DC24E054FE90A00091E74 /* NSException_SenTestFailure.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSException_SenTestFailure.h; sourceTree = ""; }; - 3D6DC24F054FE90A00091E74 /* NSException_SenTestFailure.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSException_SenTestFailure.m; sourceTree = ""; }; - 3D6DC250054FE90A00091E74 /* NSInvocation_SenTesting.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSInvocation_SenTesting.h; sourceTree = ""; }; - 3D6DC251054FE90A00091E74 /* NSInvocation_SenTesting.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSInvocation_SenTesting.m; sourceTree = ""; }; - 3D6DC252054FE90A00091E74 /* SenInterfaceTestCase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenInterfaceTestCase.h; sourceTree = ""; }; - 3D6DC253054FE90A00091E74 /* SenInterfaceTestCase.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenInterfaceTestCase.m; sourceTree = ""; }; - 3D6DC254054FE90A00091E74 /* SenTest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTest.h; sourceTree = ""; }; - 3D6DC255054FE90A00091E74 /* SenTest.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTest.m; sourceTree = ""; }; - 3D6DC256054FE90A00091E74 /* SenTestCase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestCase.h; sourceTree = ""; }; - 3D6DC257054FE90A00091E74 /* SenTestCase.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestCase.m; sourceTree = ""; }; - 3D6DC258054FE90A00091E74 /* SenTestCaseRun.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestCaseRun.h; sourceTree = ""; }; - 3D6DC259054FE90A00091E74 /* SenTestCaseRun.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestCaseRun.m; sourceTree = ""; }; - 3D6DC25A054FE90A00091E74 /* SenTestDistributedNotifier.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestDistributedNotifier.h; sourceTree = ""; }; - 3D6DC25B054FE90A00091E74 /* SenTestDistributedNotifier.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestDistributedNotifier.m; sourceTree = ""; }; - 3D6DC25C054FE90A00091E74 /* SenTestLog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestLog.h; sourceTree = ""; }; - 3D6DC25D054FE90A00091E74 /* SenTestLog.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestLog.m; sourceTree = ""; }; - 3D6DC25E054FE90A00091E74 /* SenTestObserver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestObserver.h; sourceTree = ""; }; - 3D6DC25F054FE90A00091E74 /* SenTestObserver.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestObserver.m; sourceTree = ""; }; - 3D6DC260054FE90A00091E74 /* SenTestProbe.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestProbe.h; sourceTree = ""; }; - 3D6DC261054FE90A00091E74 /* SenTestProbe.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestProbe.m; sourceTree = ""; }; - 3D6DC262054FE90A00091E74 /* SenTestRun.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestRun.h; sourceTree = ""; }; - 3D6DC263054FE90A00091E74 /* SenTestRun.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestRun.m; sourceTree = ""; }; - 3D6DC264054FE90A00091E74 /* SenTestSuite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestSuite.h; sourceTree = ""; }; - 3D6DC265054FE90A00091E74 /* SenTestSuite.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestSuite.m; sourceTree = ""; }; - 3D6DC266054FE90B00091E74 /* SenTestSuiteRun.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestSuiteRun.h; sourceTree = ""; }; - 3D6DC267054FE90B00091E74 /* SenTestSuiteRun.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestSuiteRun.m; sourceTree = ""; }; - 3D6DC285054FE9BC00091E74 /* CustomInfo.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist; path = CustomInfo.plist; sourceTree = ""; }; - 3D6DC291054FEA7300091E74 /* IntroSenTestingKit.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = IntroSenTestingKit.html; sourceTree = ""; }; - 3D6DC292054FEA7300091E74 /* NSException_SenTestFailure.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = NSException_SenTestFailure.html; sourceTree = ""; }; - 3D6DC293054FEA7300091E74 /* NSInvocation_SenTesting.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = NSInvocation_SenTesting.html; sourceTree = ""; }; - 3D6DC294054FEA7300091E74 /* SenInterfaceTestCase.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenInterfaceTestCase.html; sourceTree = ""; }; - 3D6DC295054FEA7300091E74 /* SenTest.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTest.html; sourceTree = ""; }; - 3D6DC296054FEA7300091E74 /* SenTestCase.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestCase.html; sourceTree = ""; }; - 3D6DC297054FEA7300091E74 /* SenTestCaseRun.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestCaseRun.html; sourceTree = ""; }; - 3D6DC298054FEA7300091E74 /* SenTestCase_Macros.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestCase_Macros.html; sourceTree = ""; }; - 3D6DC299054FEA7300091E74 /* SenTestDefines.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestDefines.html; sourceTree = ""; }; - 3D6DC29A054FEA7300091E74 /* SenTestDistributedNotifier.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestDistributedNotifier.html; sourceTree = ""; }; - 3D6DC29B054FEA7300091E74 /* SenTestLog.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestLog.html; sourceTree = ""; }; - 3D6DC29C054FEA7300091E74 /* SenTestObserver.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestObserver.html; sourceTree = ""; }; - 3D6DC29D054FEA7300091E74 /* SenTestProbe.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestProbe.html; sourceTree = ""; }; - 3D6DC29E054FEA7300091E74 /* SenTestRun.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestRun.html; sourceTree = ""; }; - 3D6DC29F054FEA7300091E74 /* SenTestSuite.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestSuite.html; sourceTree = ""; }; - 3D6DC2A0054FEA7300091E74 /* SenTestSuiteRun.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestSuiteRun.html; sourceTree = ""; }; - 3D6DC2A1054FEA7300091E74 /* SenTestingKitTOC.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; path = SenTestingKitTOC.html; sourceTree = ""; }; - 3D6DC2CC054FEBA400091E74 /* SenTestContinueOrRaiseTesting.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestContinueOrRaiseTesting.html; path = Tests.subproj/SenTestContinueOrRaiseTesting.html; sourceTree = ""; }; - 3D6DC2CD054FEBA400091E74 /* SenTestEmptySuite.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestEmptySuite.html; path = Tests.subproj/SenTestEmptySuite.html; sourceTree = ""; }; - 3D6DC2CE054FEBA400091E74 /* SenTestErrorTesting.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestErrorTesting.html; path = Tests.subproj/SenTestErrorTesting.html; sourceTree = ""; }; - 3D6DC2CF054FEBA400091E74 /* SenTestFail.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestFail.html; path = Tests.subproj/SenTestFail.html; sourceTree = ""; }; - 3D6DC2D0054FEBA400091E74 /* SenTestMacroTesting.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestMacroTesting.html; path = Tests.subproj/SenTestMacroTesting.html; sourceTree = ""; }; - 3D6DC2D1054FEBA400091E74 /* SenTestPerformance.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestPerformance.html; path = Tests.subproj/SenTestPerformance.html; sourceTree = ""; }; - 3D6DC2D2054FEBA400091E74 /* SenTestShould.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestShould.html; path = Tests.subproj/SenTestShould.html; sourceTree = ""; }; - 3D6DC2D3054FEBA400091E74 /* SenTestShouldBeEqual.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestShouldBeEqual.html; path = Tests.subproj/SenTestShouldBeEqual.html; sourceTree = ""; }; - 3D6DC2D4054FEBA400091E74 /* SenTestShouldRaise.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestShouldRaise.html; path = Tests.subproj/SenTestShouldRaise.html; sourceTree = ""; }; - 3D6DC2D5054FEBA400091E74 /* SenTestTestSuite.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html.documentation; name = SenTestTestSuite.html; path = Tests.subproj/SenTestTestSuite.html; sourceTree = ""; }; - 3D6DC2E2054FEBDC00091E74 /* NoSourceDirectoryExtensions.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist; path = NoSourceDirectoryExtensions.plist; sourceTree = ""; }; - 3D6DC2E6054FEC0600091E74 /* OpenSourceLicense.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = OpenSourceLicense.html; path = ../OpenSourceLicense.html; sourceTree = ""; }; - 3D6DC2EA054FEC3100091E74 /* SenTestCase_Macros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestCase_Macros.h; sourceTree = ""; }; - 3D6DC2EB054FEC3100091E74 /* SenTestDefines.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestDefines.h; sourceTree = ""; }; - 3D6DC2EC054FEC3100091E74 /* SenTestingKit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestingKit.h; sourceTree = ""; }; - 3DB0931006133A8D003C502B /* SenTestNewStyleMacros.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestNewStyleMacros.h; path = Tests.subproj/SenTestNewStyleMacros.h; sourceTree = SOURCE_ROOT; }; - 3DB0931106133A8D003C502B /* SenTestNewStyleMacros.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestNewStyleMacros.m; path = Tests.subproj/SenTestNewStyleMacros.m; sourceTree = SOURCE_ROOT; }; - 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8DC2EF5B0486A6940098B216 /* SenTestingKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SenTestingKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C81371BC0F38FE98001D4AFB /* SenTestingKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SenTestingKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C81371BD0F38FE98001D4AFB /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info copy.plist"; sourceTree = ""; }; - C8978F650ECA1BBA00C3E5EE /* SenTestingKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SenTestingKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C8978F660ECA1BBA00C3E5EE /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info copy.plist"; sourceTree = ""; }; - E97D6D85056E371F0087F969 /* ApplicationWrapperExtensions.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist; path = ApplicationWrapperExtensions.plist; sourceTree = ""; }; - E98E64A5056D17830033599A /* SenTestingKit_UnitTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SenTestingKit_UnitTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E98E64AC056D17B90033599A /* SenTestContinueOrRaiseTesting.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestContinueOrRaiseTesting.h; path = Tests.subproj/SenTestContinueOrRaiseTesting.h; sourceTree = SOURCE_ROOT; }; - E98E64AD056D17B90033599A /* SenTestContinueOrRaiseTesting.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestContinueOrRaiseTesting.m; path = Tests.subproj/SenTestContinueOrRaiseTesting.m; sourceTree = SOURCE_ROOT; }; - E98E64AE056D17B90033599A /* SenTestEmptySuite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestEmptySuite.h; path = Tests.subproj/SenTestEmptySuite.h; sourceTree = SOURCE_ROOT; }; - E98E64AF056D17B90033599A /* SenTestEmptySuite.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestEmptySuite.m; path = Tests.subproj/SenTestEmptySuite.m; sourceTree = SOURCE_ROOT; }; - E98E64B0056D17B90033599A /* SenTestErrorTesting.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestErrorTesting.h; path = Tests.subproj/SenTestErrorTesting.h; sourceTree = SOURCE_ROOT; }; - E98E64B1056D17B90033599A /* SenTestErrorTesting.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestErrorTesting.m; path = Tests.subproj/SenTestErrorTesting.m; sourceTree = SOURCE_ROOT; }; - E98E64B2056D17B90033599A /* SenTestFail.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestFail.h; path = Tests.subproj/SenTestFail.h; sourceTree = SOURCE_ROOT; }; - E98E64B3056D17B90033599A /* SenTestFail.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestFail.m; path = Tests.subproj/SenTestFail.m; sourceTree = SOURCE_ROOT; }; - E98E64B4056D17B90033599A /* SenTestMacroTesting.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestMacroTesting.h; path = Tests.subproj/SenTestMacroTesting.h; sourceTree = SOURCE_ROOT; }; - E98E64B5056D17B90033599A /* SenTestMacroTesting.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestMacroTesting.m; path = Tests.subproj/SenTestMacroTesting.m; sourceTree = SOURCE_ROOT; }; - E98E64B6056D17B90033599A /* SenTestPerformance.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestPerformance.h; path = Tests.subproj/SenTestPerformance.h; sourceTree = SOURCE_ROOT; }; - E98E64B7056D17B90033599A /* SenTestPerformance.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestPerformance.m; path = Tests.subproj/SenTestPerformance.m; sourceTree = SOURCE_ROOT; }; - E98E64B8056D17B90033599A /* SenTestShould.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestShould.h; path = Tests.subproj/SenTestShould.h; sourceTree = SOURCE_ROOT; }; - E98E64B9056D17B90033599A /* SenTestShould.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestShould.m; path = Tests.subproj/SenTestShould.m; sourceTree = SOURCE_ROOT; }; - E98E64BA056D17B90033599A /* SenTestShouldBeEqual.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestShouldBeEqual.h; path = Tests.subproj/SenTestShouldBeEqual.h; sourceTree = SOURCE_ROOT; }; - E98E64BB056D17B90033599A /* SenTestShouldBeEqual.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestShouldBeEqual.m; path = Tests.subproj/SenTestShouldBeEqual.m; sourceTree = SOURCE_ROOT; }; - E98E64BC056D17B90033599A /* SenTestShouldRaise.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestShouldRaise.h; path = Tests.subproj/SenTestShouldRaise.h; sourceTree = SOURCE_ROOT; }; - E98E64BD056D17B90033599A /* SenTestShouldRaise.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestShouldRaise.m; path = Tests.subproj/SenTestShouldRaise.m; sourceTree = SOURCE_ROOT; }; - E98E64BE056D17B90033599A /* SenTestTestSuite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SenTestTestSuite.h; path = Tests.subproj/SenTestTestSuite.h; sourceTree = SOURCE_ROOT; }; - E98E64BF056D17B90033599A /* SenTestTestSuite.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SenTestTestSuite.m; path = Tests.subproj/SenTestTestSuite.m; sourceTree = SOURCE_ROOT; }; - E9CD3AC605A9886A0078AC3E /* SenTestingUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SenTestingUtilities.h; sourceTree = ""; }; - E9CD3AC705A9886A0078AC3E /* SenTestingUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SenTestingUtilities.m; sourceTree = ""; }; - E9CD3BDA05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSObject_SenTestRuntimeUtilities.h; sourceTree = ""; }; - E9CD3BDB05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSObject_SenTestRuntimeUtilities.m; sourceTree = ""; }; - E9CD3BDC05A99B590078AC3E /* SenTestClassEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestClassEnumerator.h; sourceTree = ""; }; - E9CD3BDD05A99B590078AC3E /* SenTestClassEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestClassEnumerator.m; sourceTree = ""; }; - E9CD3BDE05A99B590078AC3E /* SenTestInvocationEnumerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestInvocationEnumerator.h; sourceTree = ""; }; - E9CD3BDF05A99B590078AC3E /* SenTestInvocationEnumerator.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestInvocationEnumerator.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DC2EF560486A6940098B216 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E9831F010563D1A9000B981F /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C81371B70F38FE98001D4AFB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C81371B80F38FE98001D4AFB /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C8978F600ECA1BBA00C3E5EE /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C8978F610ECA1BBA00C3E5EE /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E98E64A3056D17830033599A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E98E650F056D188E0033599A /* Foundation.framework in Frameworks */, - E98E657F056D18950033599A /* SenTestingKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 034768DFFF38A50411DB9C8B /* Products */ = { - isa = PBXGroup; - children = ( - 8DC2EF5B0486A6940098B216 /* SenTestingKit.framework */, - E98E64A5056D17830033599A /* SenTestingKit_UnitTests.framework */, - C8978F650ECA1BBA00C3E5EE /* SenTestingKit.framework */, - C81371BC0F38FE98001D4AFB /* SenTestingKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - 0867D691FE84028FC02AAC07 /* SenTestingKitxx */ = { - isa = PBXGroup; - children = ( - 08FB77AEFE84172EC02AAC07 /* Classes */, - 3D6DC2FB054FEC8300091E74 /* Utility Classes */, - 3D6DC2F2054FEC3900091E74 /* Other Headers */, - 32C88DFF0371C24200C91783 /* Other Sources */, - 089C1665FE841158C02AAC07 /* Resources */, - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, - E98E64A9056D178C0033599A /* Unit Tests */, - 3D6DC290054FEA7300091E74 /* Documentation */, - 034768DFFF38A50411DB9C8B /* Products */, - ); - name = SenTestingKitxx; - sourceTree = ""; - }; - 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 089C1665FE841158C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 3D6DC285054FE9BC00091E74 /* CustomInfo.plist */, - E97D6D85056E371F0087F969 /* ApplicationWrapperExtensions.plist */, - 8DC2EF5A0486A6940098B216 /* Info.plist */, - 3D6DC2E2054FEBDC00091E74 /* NoSourceDirectoryExtensions.plist */, - 089C1666FE841158C02AAC07 /* InfoPlist.strings */, - C8978F660ECA1BBA00C3E5EE /* Info copy.plist */, - C81371BD0F38FE98001D4AFB /* Info copy.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 08FB77AEFE84172EC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - 3D6DC252054FE90A00091E74 /* SenInterfaceTestCase.h */, - 3D6DC253054FE90A00091E74 /* SenInterfaceTestCase.m */, - 3D6DC254054FE90A00091E74 /* SenTest.h */, - 3D6DC255054FE90A00091E74 /* SenTest.m */, - 3D6DC256054FE90A00091E74 /* SenTestCase.h */, - 3D6DC257054FE90A00091E74 /* SenTestCase.m */, - 3D6DC258054FE90A00091E74 /* SenTestCaseRun.h */, - 3D6DC259054FE90A00091E74 /* SenTestCaseRun.m */, - 3D6DC25A054FE90A00091E74 /* SenTestDistributedNotifier.h */, - 3D6DC25B054FE90A00091E74 /* SenTestDistributedNotifier.m */, - 3D6DC25C054FE90A00091E74 /* SenTestLog.h */, - 3D6DC25D054FE90A00091E74 /* SenTestLog.m */, - 3D6DC25E054FE90A00091E74 /* SenTestObserver.h */, - 3D6DC25F054FE90A00091E74 /* SenTestObserver.m */, - 3D6DC260054FE90A00091E74 /* SenTestProbe.h */, - 3D6DC261054FE90A00091E74 /* SenTestProbe.m */, - 3D6DC262054FE90A00091E74 /* SenTestRun.h */, - 3D6DC263054FE90A00091E74 /* SenTestRun.m */, - 3D6DC264054FE90A00091E74 /* SenTestSuite.h */, - 3D6DC265054FE90A00091E74 /* SenTestSuite.m */, - 3D6DC266054FE90B00091E74 /* SenTestSuiteRun.h */, - 3D6DC267054FE90B00091E74 /* SenTestSuiteRun.m */, - 3D6DC24E054FE90A00091E74 /* NSException_SenTestFailure.h */, - 3D6DC24F054FE90A00091E74 /* NSException_SenTestFailure.m */, - 3D6DC250054FE90A00091E74 /* NSInvocation_SenTesting.h */, - 3D6DC251054FE90A00091E74 /* NSInvocation_SenTesting.m */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 0867D69BFE84028FC02AAC07 /* Foundation.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 32C88DFF0371C24200C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - 32DBCF5E0370ADEE00C91783 /* SenTestingKit_Prefix.pch */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 3D6DC290054FEA7300091E74 /* Documentation */ = { - isa = PBXGroup; - children = ( - 3D6DC291054FEA7300091E74 /* IntroSenTestingKit.html */, - 3D6DC292054FEA7300091E74 /* NSException_SenTestFailure.html */, - 3D6DC293054FEA7300091E74 /* NSInvocation_SenTesting.html */, - 3D6DC2E6054FEC0600091E74 /* OpenSourceLicense.html */, - 3D6DC294054FEA7300091E74 /* SenInterfaceTestCase.html */, - 3D6DC295054FEA7300091E74 /* SenTest.html */, - 3D6DC296054FEA7300091E74 /* SenTestCase.html */, - 3D6DC298054FEA7300091E74 /* SenTestCase_Macros.html */, - 3D6DC297054FEA7300091E74 /* SenTestCaseRun.html */, - 3D6DC299054FEA7300091E74 /* SenTestDefines.html */, - 3D6DC29A054FEA7300091E74 /* SenTestDistributedNotifier.html */, - 3D6DC2A1054FEA7300091E74 /* SenTestingKitTOC.html */, - 3D6DC29B054FEA7300091E74 /* SenTestLog.html */, - 3D6DC29C054FEA7300091E74 /* SenTestObserver.html */, - 3D6DC29D054FEA7300091E74 /* SenTestProbe.html */, - 3D6DC29E054FEA7300091E74 /* SenTestRun.html */, - 3D6DC29F054FEA7300091E74 /* SenTestSuite.html */, - 3D6DC2A0054FEA7300091E74 /* SenTestSuiteRun.html */, - 3D6DC2C9054FEB8300091E74 /* Tests */, - ); - path = Documentation; - sourceTree = ""; - }; - 3D6DC2C9054FEB8300091E74 /* Tests */ = { - isa = PBXGroup; - children = ( - 3D6DC2CC054FEBA400091E74 /* SenTestContinueOrRaiseTesting.html */, - 3D6DC2CD054FEBA400091E74 /* SenTestEmptySuite.html */, - 3D6DC2CE054FEBA400091E74 /* SenTestErrorTesting.html */, - 3D6DC2CF054FEBA400091E74 /* SenTestFail.html */, - 3D6DC2D0054FEBA400091E74 /* SenTestMacroTesting.html */, - 3D6DC2D1054FEBA400091E74 /* SenTestPerformance.html */, - 3D6DC2D2054FEBA400091E74 /* SenTestShould.html */, - 3D6DC2D3054FEBA400091E74 /* SenTestShouldBeEqual.html */, - 3D6DC2D4054FEBA400091E74 /* SenTestShouldRaise.html */, - 3D6DC2D5054FEBA400091E74 /* SenTestTestSuite.html */, - ); - name = Tests; - sourceTree = ""; - }; - 3D6DC2F2054FEC3900091E74 /* Other Headers */ = { - isa = PBXGroup; - children = ( - 3D6DC2EA054FEC3100091E74 /* SenTestCase_Macros.h */, - 3D6DC2EB054FEC3100091E74 /* SenTestDefines.h */, - 3D6DC2EC054FEC3100091E74 /* SenTestingKit.h */, - ); - name = "Other Headers"; - sourceTree = ""; - }; - 3D6DC2FB054FEC8300091E74 /* Utility Classes */ = { - isa = PBXGroup; - children = ( - E9CD3AC605A9886A0078AC3E /* SenTestingUtilities.h */, - E9CD3AC705A9886A0078AC3E /* SenTestingUtilities.m */, - E9CD3BDA05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.h */, - E9CD3BDB05A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.m */, - E9CD3BDC05A99B590078AC3E /* SenTestClassEnumerator.h */, - E9CD3BDD05A99B590078AC3E /* SenTestClassEnumerator.m */, - E9CD3BDE05A99B590078AC3E /* SenTestInvocationEnumerator.h */, - E9CD3BDF05A99B590078AC3E /* SenTestInvocationEnumerator.m */, - ); - name = "Utility Classes"; - sourceTree = ""; - }; - E98E64A9056D178C0033599A /* Unit Tests */ = { - isa = PBXGroup; - children = ( - 3DB0931006133A8D003C502B /* SenTestNewStyleMacros.h */, - 3DB0931106133A8D003C502B /* SenTestNewStyleMacros.m */, - E98E64AC056D17B90033599A /* SenTestContinueOrRaiseTesting.h */, - E98E64AD056D17B90033599A /* SenTestContinueOrRaiseTesting.m */, - E98E64AE056D17B90033599A /* SenTestEmptySuite.h */, - E98E64AF056D17B90033599A /* SenTestEmptySuite.m */, - E98E64B0056D17B90033599A /* SenTestErrorTesting.h */, - E98E64B1056D17B90033599A /* SenTestErrorTesting.m */, - E98E64B2056D17B90033599A /* SenTestFail.h */, - E98E64B3056D17B90033599A /* SenTestFail.m */, - E98E64B4056D17B90033599A /* SenTestMacroTesting.h */, - E98E64B5056D17B90033599A /* SenTestMacroTesting.m */, - E98E64B6056D17B90033599A /* SenTestPerformance.h */, - E98E64B7056D17B90033599A /* SenTestPerformance.m */, - E98E64B8056D17B90033599A /* SenTestShould.h */, - E98E64B9056D17B90033599A /* SenTestShould.m */, - E98E64BA056D17B90033599A /* SenTestShouldBeEqual.h */, - E98E64BB056D17B90033599A /* SenTestShouldBeEqual.m */, - E98E64BC056D17B90033599A /* SenTestShouldRaise.h */, - E98E64BD056D17B90033599A /* SenTestShouldRaise.m */, - E98E64BE056D17B90033599A /* SenTestTestSuite.h */, - E98E64BF056D17B90033599A /* SenTestTestSuite.m */, - ); - name = "Unit Tests"; - path = Documentation; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DC2EF500486A6940098B216 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF510486A6940098B216 /* SenTestingKit_Prefix.pch in Headers */, - 3D6DC268054FE90B00091E74 /* NSException_SenTestFailure.h in Headers */, - 3D6DC26A054FE90B00091E74 /* NSInvocation_SenTesting.h in Headers */, - 3D6DC26C054FE90B00091E74 /* SenInterfaceTestCase.h in Headers */, - 3D6DC26E054FE90B00091E74 /* SenTest.h in Headers */, - 3D6DC270054FE90B00091E74 /* SenTestCase.h in Headers */, - 3D6DC272054FE90B00091E74 /* SenTestCaseRun.h in Headers */, - 3D6DC274054FE90B00091E74 /* SenTestDistributedNotifier.h in Headers */, - 3D6DC276054FE90B00091E74 /* SenTestLog.h in Headers */, - 3D6DC278054FE90B00091E74 /* SenTestObserver.h in Headers */, - 3D6DC27A054FE90B00091E74 /* SenTestProbe.h in Headers */, - 3D6DC27C054FE90B00091E74 /* SenTestRun.h in Headers */, - 3D6DC27E054FE90B00091E74 /* SenTestSuite.h in Headers */, - 3D6DC280054FE90B00091E74 /* SenTestSuiteRun.h in Headers */, - 3D6DC2ED054FEC3100091E74 /* SenTestCase_Macros.h in Headers */, - 3D6DC2EE054FEC3100091E74 /* SenTestDefines.h in Headers */, - 3D6DC2EF054FEC3100091E74 /* SenTestingKit.h in Headers */, - E9CD3AC805A9886A0078AC3E /* SenTestingUtilities.h in Headers */, - E9CD3BE005A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.h in Headers */, - E9CD3BE205A99B590078AC3E /* SenTestClassEnumerator.h in Headers */, - E9CD3BE405A99B590078AC3E /* SenTestInvocationEnumerator.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C813716E0F38FE98001D4AFB /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C813716F0F38FE98001D4AFB /* SenTestingKit_Prefix.pch in Headers */, - C81371700F38FE98001D4AFB /* NSException_SenTestFailure.h in Headers */, - C81371710F38FE98001D4AFB /* NSInvocation_SenTesting.h in Headers */, - C81371720F38FE98001D4AFB /* SenInterfaceTestCase.h in Headers */, - C81371730F38FE98001D4AFB /* SenTest.h in Headers */, - C81371740F38FE98001D4AFB /* SenTestCase.h in Headers */, - C81371750F38FE98001D4AFB /* SenTestCaseRun.h in Headers */, - C81371760F38FE98001D4AFB /* SenTestDistributedNotifier.h in Headers */, - C81371770F38FE98001D4AFB /* SenTestLog.h in Headers */, - C81371780F38FE98001D4AFB /* SenTestObserver.h in Headers */, - C81371790F38FE98001D4AFB /* SenTestProbe.h in Headers */, - C813717A0F38FE98001D4AFB /* SenTestRun.h in Headers */, - C813717B0F38FE98001D4AFB /* SenTestSuite.h in Headers */, - C813717C0F38FE98001D4AFB /* SenTestSuiteRun.h in Headers */, - C813717D0F38FE98001D4AFB /* SenTestCase_Macros.h in Headers */, - C813717E0F38FE98001D4AFB /* SenTestDefines.h in Headers */, - C813717F0F38FE98001D4AFB /* SenTestingKit.h in Headers */, - C81371800F38FE98001D4AFB /* SenTestingUtilities.h in Headers */, - C81371810F38FE98001D4AFB /* NSObject_SenTestRuntimeUtilities.h in Headers */, - C81371820F38FE98001D4AFB /* SenTestClassEnumerator.h in Headers */, - C81371830F38FE98001D4AFB /* SenTestInvocationEnumerator.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C8978F170ECA1BBA00C3E5EE /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C8978F180ECA1BBA00C3E5EE /* SenTestingKit_Prefix.pch in Headers */, - C8978F190ECA1BBA00C3E5EE /* NSException_SenTestFailure.h in Headers */, - C8978F1A0ECA1BBA00C3E5EE /* NSInvocation_SenTesting.h in Headers */, - C8978F1B0ECA1BBA00C3E5EE /* SenInterfaceTestCase.h in Headers */, - C8978F1C0ECA1BBA00C3E5EE /* SenTest.h in Headers */, - C8978F1D0ECA1BBA00C3E5EE /* SenTestCase.h in Headers */, - C8978F1E0ECA1BBA00C3E5EE /* SenTestCaseRun.h in Headers */, - C8978F1F0ECA1BBA00C3E5EE /* SenTestDistributedNotifier.h in Headers */, - C8978F200ECA1BBA00C3E5EE /* SenTestLog.h in Headers */, - C8978F210ECA1BBA00C3E5EE /* SenTestObserver.h in Headers */, - C8978F220ECA1BBA00C3E5EE /* SenTestProbe.h in Headers */, - C8978F230ECA1BBA00C3E5EE /* SenTestRun.h in Headers */, - C8978F240ECA1BBA00C3E5EE /* SenTestSuite.h in Headers */, - C8978F250ECA1BBA00C3E5EE /* SenTestSuiteRun.h in Headers */, - C8978F260ECA1BBA00C3E5EE /* SenTestCase_Macros.h in Headers */, - C8978F270ECA1BBA00C3E5EE /* SenTestDefines.h in Headers */, - C8978F280ECA1BBA00C3E5EE /* SenTestingKit.h in Headers */, - C8978F290ECA1BBA00C3E5EE /* SenTestingUtilities.h in Headers */, - C8978F2A0ECA1BBA00C3E5EE /* NSObject_SenTestRuntimeUtilities.h in Headers */, - C8978F2B0ECA1BBA00C3E5EE /* SenTestClassEnumerator.h in Headers */, - C8978F2C0ECA1BBA00C3E5EE /* SenTestInvocationEnumerator.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E98E64A0056D17830033599A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - E98E64C0056D17B90033599A /* SenTestContinueOrRaiseTesting.h in Headers */, - E98E64C2056D17B90033599A /* SenTestEmptySuite.h in Headers */, - E98E64C4056D17B90033599A /* SenTestErrorTesting.h in Headers */, - E98E64C6056D17B90033599A /* SenTestFail.h in Headers */, - E98E64C8056D17B90033599A /* SenTestMacroTesting.h in Headers */, - E98E64CA056D17B90033599A /* SenTestPerformance.h in Headers */, - E98E64CC056D17B90033599A /* SenTestShould.h in Headers */, - E98E64CE056D17B90033599A /* SenTestShouldBeEqual.h in Headers */, - E98E64D0056D17B90033599A /* SenTestShouldRaise.h in Headers */, - E98E64D2056D17B90033599A /* SenTestTestSuite.h in Headers */, - 3DB0931206133A8D003C502B /* SenTestNewStyleMacros.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DC2EF4F0486A6940098B216 /* SenTestingKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = C8C8018C0DB514CB0089C0D7 /* Build configuration list for PBXNativeTarget "SenTestingKit" */; - buildPhases = ( - 8DC2EF500486A6940098B216 /* Headers */, - 8DC2EF520486A6940098B216 /* Resources */, - 8DC2EF540486A6940098B216 /* Sources */, - 8DC2EF560486A6940098B216 /* Frameworks */, - ); - buildRules = ( - C8C8019D0DB515D20089C0D7 /* PBXBuildRule */, - ); - dependencies = ( - ); - name = SenTestingKit; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = SenTestingKit; - productReference = 8DC2EF5B0486A6940098B216 /* SenTestingKit.framework */; - productType = "com.apple.product-type.framework"; - }; - C813716D0F38FE98001D4AFB /* SenTestingKit-Darwin */ = { - isa = PBXNativeTarget; - buildConfigurationList = C81371BA0F38FE98001D4AFB /* Build configuration list for PBXNativeTarget "SenTestingKit-Darwin" */; - buildPhases = ( - C813716E0F38FE98001D4AFB /* Headers */, - C81371840F38FE98001D4AFB /* Resources */, - C81371A50F38FE98001D4AFB /* Sources */, - C81371B70F38FE98001D4AFB /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "SenTestingKit-Darwin"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = SenTestingKit; - productReference = C81371BC0F38FE98001D4AFB /* SenTestingKit.framework */; - productType = "com.apple.product-type.framework"; - }; - C8978F160ECA1BBA00C3E5EE /* SenTestingKit-Linux */ = { - isa = PBXNativeTarget; - buildConfigurationList = C8978F630ECA1BBA00C3E5EE /* Build configuration list for PBXNativeTarget "SenTestingKit-Linux" */; - buildPhases = ( - C8978F170ECA1BBA00C3E5EE /* Headers */, - C8978F2D0ECA1BBA00C3E5EE /* Resources */, - C8978F4E0ECA1BBA00C3E5EE /* Sources */, - C8978F600ECA1BBA00C3E5EE /* Frameworks */, - ); - buildRules = ( - C8978F620ECA1BBA00C3E5EE /* PBXBuildRule */, - ); - dependencies = ( - ); - name = "SenTestingKit-Linux"; - productInstallPath = "$(HOME)/Library/Frameworks"; - productName = SenTestingKit; - productReference = C8978F650ECA1BBA00C3E5EE /* SenTestingKit.framework */; - productType = "com.apple.product-type.framework"; - }; - E98E64A4056D17830033599A /* SenTestingKit_UnitTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = C8C8018D0DB514CB0089C0D7 /* Build configuration list for PBXNativeTarget "SenTestingKit_UnitTests" */; - buildPhases = ( - E98E64A0056D17830033599A /* Headers */, - E98E64A1056D17830033599A /* Resources */, - E98E64A2056D17830033599A /* Sources */, - E98E64A3056D17830033599A /* Frameworks */, - E98E64D6056D17CB0033599A /* ShellScript */, - ); - buildRules = ( - E916C27507F5738400ABA046 /* PBXBuildRule */, - ); - dependencies = ( - E98E64D8056D17F70033599A /* PBXTargetDependency */, - ); - name = SenTestingKit_UnitTests; - productName = UnitTests; - productReference = E98E64A5056D17830033599A /* SenTestingKit_UnitTests.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0867D690FE84028FC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C8C8018B0DB514CB0089C0D7 /* Build configuration list for PBXProject "SenTestingKit" */; - compatibilityVersion = "Xcode 2.4"; - hasScannedForEncodings = 1; - mainGroup = 0867D691FE84028FC02AAC07 /* SenTestingKitxx */; - productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DC2EF4F0486A6940098B216 /* SenTestingKit */, - E98E64A4056D17830033599A /* SenTestingKit_UnitTests */, - C8978F160ECA1BBA00C3E5EE /* SenTestingKit-Linux */, - C813716D0F38FE98001D4AFB /* SenTestingKit-Darwin */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8DC2EF520486A6940098B216 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */, - 3D6DC287054FE9BC00091E74 /* CustomInfo.plist in Resources */, - 3D6DC2A3054FEA7300091E74 /* IntroSenTestingKit.html in Resources */, - 3D6DC2A4054FEA7300091E74 /* NSException_SenTestFailure.html in Resources */, - 3D6DC2A5054FEA7400091E74 /* NSInvocation_SenTesting.html in Resources */, - 3D6DC2A6054FEA7400091E74 /* SenInterfaceTestCase.html in Resources */, - 3D6DC2A7054FEA7400091E74 /* SenTest.html in Resources */, - 3D6DC2A8054FEA7400091E74 /* SenTestCase.html in Resources */, - 3D6DC2A9054FEA7400091E74 /* SenTestCaseRun.html in Resources */, - 3D6DC2AA054FEA7400091E74 /* SenTestCase_Macros.html in Resources */, - 3D6DC2AB054FEA7400091E74 /* SenTestDefines.html in Resources */, - 3D6DC2AC054FEA7400091E74 /* SenTestDistributedNotifier.html in Resources */, - 3D6DC2AD054FEA7400091E74 /* SenTestLog.html in Resources */, - 3D6DC2AE054FEA7400091E74 /* SenTestObserver.html in Resources */, - 3D6DC2AF054FEA7400091E74 /* SenTestProbe.html in Resources */, - 3D6DC2B0054FEA7400091E74 /* SenTestRun.html in Resources */, - 3D6DC2B1054FEA7400091E74 /* SenTestSuite.html in Resources */, - 3D6DC2B2054FEA7400091E74 /* SenTestSuiteRun.html in Resources */, - 3D6DC2B3054FEA7400091E74 /* SenTestingKitTOC.html in Resources */, - 3D6DC2D6054FEBA400091E74 /* SenTestContinueOrRaiseTesting.html in Resources */, - 3D6DC2D7054FEBA400091E74 /* SenTestEmptySuite.html in Resources */, - 3D6DC2D8054FEBA400091E74 /* SenTestErrorTesting.html in Resources */, - 3D6DC2D9054FEBA400091E74 /* SenTestFail.html in Resources */, - 3D6DC2DA054FEBA400091E74 /* SenTestMacroTesting.html in Resources */, - 3D6DC2DB054FEBA400091E74 /* SenTestPerformance.html in Resources */, - 3D6DC2DC054FEBA400091E74 /* SenTestShould.html in Resources */, - 3D6DC2DD054FEBA400091E74 /* SenTestShouldBeEqual.html in Resources */, - 3D6DC2DE054FEBA400091E74 /* SenTestShouldRaise.html in Resources */, - 3D6DC2DF054FEBA400091E74 /* SenTestTestSuite.html in Resources */, - 3D6DC2E3054FEBDC00091E74 /* NoSourceDirectoryExtensions.plist in Resources */, - 3D6DC2E7054FEC0600091E74 /* OpenSourceLicense.html in Resources */, - E97D6D86056E371F0087F969 /* ApplicationWrapperExtensions.plist in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C81371840F38FE98001D4AFB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C81371850F38FE98001D4AFB /* InfoPlist.strings in Resources */, - C81371860F38FE98001D4AFB /* CustomInfo.plist in Resources */, - C81371870F38FE98001D4AFB /* IntroSenTestingKit.html in Resources */, - C81371880F38FE98001D4AFB /* NSException_SenTestFailure.html in Resources */, - C81371890F38FE98001D4AFB /* NSInvocation_SenTesting.html in Resources */, - C813718A0F38FE98001D4AFB /* SenInterfaceTestCase.html in Resources */, - C813718B0F38FE98001D4AFB /* SenTest.html in Resources */, - C813718C0F38FE98001D4AFB /* SenTestCase.html in Resources */, - C813718D0F38FE98001D4AFB /* SenTestCaseRun.html in Resources */, - C813718E0F38FE98001D4AFB /* SenTestCase_Macros.html in Resources */, - C813718F0F38FE98001D4AFB /* SenTestDefines.html in Resources */, - C81371900F38FE98001D4AFB /* SenTestDistributedNotifier.html in Resources */, - C81371910F38FE98001D4AFB /* SenTestLog.html in Resources */, - C81371920F38FE98001D4AFB /* SenTestObserver.html in Resources */, - C81371930F38FE98001D4AFB /* SenTestProbe.html in Resources */, - C81371940F38FE98001D4AFB /* SenTestRun.html in Resources */, - C81371950F38FE98001D4AFB /* SenTestSuite.html in Resources */, - C81371960F38FE98001D4AFB /* SenTestSuiteRun.html in Resources */, - C81371970F38FE98001D4AFB /* SenTestingKitTOC.html in Resources */, - C81371980F38FE98001D4AFB /* SenTestContinueOrRaiseTesting.html in Resources */, - C81371990F38FE98001D4AFB /* SenTestEmptySuite.html in Resources */, - C813719A0F38FE98001D4AFB /* SenTestErrorTesting.html in Resources */, - C813719B0F38FE98001D4AFB /* SenTestFail.html in Resources */, - C813719C0F38FE98001D4AFB /* SenTestMacroTesting.html in Resources */, - C813719D0F38FE98001D4AFB /* SenTestPerformance.html in Resources */, - C813719E0F38FE98001D4AFB /* SenTestShould.html in Resources */, - C813719F0F38FE98001D4AFB /* SenTestShouldBeEqual.html in Resources */, - C81371A00F38FE98001D4AFB /* SenTestShouldRaise.html in Resources */, - C81371A10F38FE98001D4AFB /* SenTestTestSuite.html in Resources */, - C81371A20F38FE98001D4AFB /* NoSourceDirectoryExtensions.plist in Resources */, - C81371A30F38FE98001D4AFB /* OpenSourceLicense.html in Resources */, - C81371A40F38FE98001D4AFB /* ApplicationWrapperExtensions.plist in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C8978F2D0ECA1BBA00C3E5EE /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C8978F2E0ECA1BBA00C3E5EE /* InfoPlist.strings in Resources */, - C8978F2F0ECA1BBA00C3E5EE /* CustomInfo.plist in Resources */, - C8978F300ECA1BBA00C3E5EE /* IntroSenTestingKit.html in Resources */, - C8978F310ECA1BBA00C3E5EE /* NSException_SenTestFailure.html in Resources */, - C8978F320ECA1BBA00C3E5EE /* NSInvocation_SenTesting.html in Resources */, - C8978F330ECA1BBA00C3E5EE /* SenInterfaceTestCase.html in Resources */, - C8978F340ECA1BBA00C3E5EE /* SenTest.html in Resources */, - C8978F350ECA1BBA00C3E5EE /* SenTestCase.html in Resources */, - C8978F360ECA1BBA00C3E5EE /* SenTestCaseRun.html in Resources */, - C8978F370ECA1BBA00C3E5EE /* SenTestCase_Macros.html in Resources */, - C8978F380ECA1BBA00C3E5EE /* SenTestDefines.html in Resources */, - C8978F390ECA1BBA00C3E5EE /* SenTestDistributedNotifier.html in Resources */, - C8978F3A0ECA1BBA00C3E5EE /* SenTestLog.html in Resources */, - C8978F3B0ECA1BBA00C3E5EE /* SenTestObserver.html in Resources */, - C8978F3C0ECA1BBA00C3E5EE /* SenTestProbe.html in Resources */, - C8978F3D0ECA1BBA00C3E5EE /* SenTestRun.html in Resources */, - C8978F3E0ECA1BBA00C3E5EE /* SenTestSuite.html in Resources */, - C8978F3F0ECA1BBA00C3E5EE /* SenTestSuiteRun.html in Resources */, - C8978F400ECA1BBA00C3E5EE /* SenTestingKitTOC.html in Resources */, - C8978F410ECA1BBA00C3E5EE /* SenTestContinueOrRaiseTesting.html in Resources */, - C8978F420ECA1BBA00C3E5EE /* SenTestEmptySuite.html in Resources */, - C8978F430ECA1BBA00C3E5EE /* SenTestErrorTesting.html in Resources */, - C8978F440ECA1BBA00C3E5EE /* SenTestFail.html in Resources */, - C8978F450ECA1BBA00C3E5EE /* SenTestMacroTesting.html in Resources */, - C8978F460ECA1BBA00C3E5EE /* SenTestPerformance.html in Resources */, - C8978F470ECA1BBA00C3E5EE /* SenTestShould.html in Resources */, - C8978F480ECA1BBA00C3E5EE /* SenTestShouldBeEqual.html in Resources */, - C8978F490ECA1BBA00C3E5EE /* SenTestShouldRaise.html in Resources */, - C8978F4A0ECA1BBA00C3E5EE /* SenTestTestSuite.html in Resources */, - C8978F4B0ECA1BBA00C3E5EE /* NoSourceDirectoryExtensions.plist in Resources */, - C8978F4C0ECA1BBA00C3E5EE /* OpenSourceLicense.html in Resources */, - C8978F4D0ECA1BBA00C3E5EE /* ApplicationWrapperExtensions.plist in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E98E64A1056D17830033599A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - E98E64D6056D17CB0033599A /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "~/Developer/Tools/RunTargetUnitTests"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DC2EF540486A6940098B216 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3D6DC269054FE90B00091E74 /* NSException_SenTestFailure.m in Sources */, - 3D6DC26B054FE90B00091E74 /* NSInvocation_SenTesting.m in Sources */, - 3D6DC26D054FE90B00091E74 /* SenInterfaceTestCase.m in Sources */, - 3D6DC26F054FE90B00091E74 /* SenTest.m in Sources */, - 3D6DC271054FE90B00091E74 /* SenTestCase.m in Sources */, - 3D6DC273054FE90B00091E74 /* SenTestCaseRun.m in Sources */, - 3D6DC275054FE90B00091E74 /* SenTestDistributedNotifier.m in Sources */, - 3D6DC277054FE90B00091E74 /* SenTestLog.m in Sources */, - 3D6DC279054FE90B00091E74 /* SenTestObserver.m in Sources */, - 3D6DC27B054FE90B00091E74 /* SenTestProbe.m in Sources */, - 3D6DC27D054FE90B00091E74 /* SenTestRun.m in Sources */, - 3D6DC27F054FE90B00091E74 /* SenTestSuite.m in Sources */, - 3D6DC281054FE90B00091E74 /* SenTestSuiteRun.m in Sources */, - E9CD3AC905A9886A0078AC3E /* SenTestingUtilities.m in Sources */, - E9CD3BE105A99B590078AC3E /* NSObject_SenTestRuntimeUtilities.m in Sources */, - E9CD3BE305A99B590078AC3E /* SenTestClassEnumerator.m in Sources */, - E9CD3BE505A99B590078AC3E /* SenTestInvocationEnumerator.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C81371A50F38FE98001D4AFB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C81371A60F38FE98001D4AFB /* NSException_SenTestFailure.m in Sources */, - C81371A70F38FE98001D4AFB /* NSInvocation_SenTesting.m in Sources */, - C81371A80F38FE98001D4AFB /* SenInterfaceTestCase.m in Sources */, - C81371A90F38FE98001D4AFB /* SenTest.m in Sources */, - C81371AA0F38FE98001D4AFB /* SenTestCase.m in Sources */, - C81371AB0F38FE98001D4AFB /* SenTestCaseRun.m in Sources */, - C81371AC0F38FE98001D4AFB /* SenTestDistributedNotifier.m in Sources */, - C81371AD0F38FE98001D4AFB /* SenTestLog.m in Sources */, - C81371AE0F38FE98001D4AFB /* SenTestObserver.m in Sources */, - C81371AF0F38FE98001D4AFB /* SenTestProbe.m in Sources */, - C81371B00F38FE98001D4AFB /* SenTestRun.m in Sources */, - C81371B10F38FE98001D4AFB /* SenTestSuite.m in Sources */, - C81371B20F38FE98001D4AFB /* SenTestSuiteRun.m in Sources */, - C81371B30F38FE98001D4AFB /* SenTestingUtilities.m in Sources */, - C81371B40F38FE98001D4AFB /* NSObject_SenTestRuntimeUtilities.m in Sources */, - C81371B50F38FE98001D4AFB /* SenTestClassEnumerator.m in Sources */, - C81371B60F38FE98001D4AFB /* SenTestInvocationEnumerator.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C8978F4E0ECA1BBA00C3E5EE /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C8978F4F0ECA1BBA00C3E5EE /* NSException_SenTestFailure.m in Sources */, - C8978F500ECA1BBA00C3E5EE /* NSInvocation_SenTesting.m in Sources */, - C8978F510ECA1BBA00C3E5EE /* SenInterfaceTestCase.m in Sources */, - C8978F520ECA1BBA00C3E5EE /* SenTest.m in Sources */, - C8978F530ECA1BBA00C3E5EE /* SenTestCase.m in Sources */, - C8978F540ECA1BBA00C3E5EE /* SenTestCaseRun.m in Sources */, - C8978F550ECA1BBA00C3E5EE /* SenTestDistributedNotifier.m in Sources */, - C8978F560ECA1BBA00C3E5EE /* SenTestLog.m in Sources */, - C8978F570ECA1BBA00C3E5EE /* SenTestObserver.m in Sources */, - C8978F580ECA1BBA00C3E5EE /* SenTestProbe.m in Sources */, - C8978F590ECA1BBA00C3E5EE /* SenTestRun.m in Sources */, - C8978F5A0ECA1BBA00C3E5EE /* SenTestSuite.m in Sources */, - C8978F5B0ECA1BBA00C3E5EE /* SenTestSuiteRun.m in Sources */, - C8978F5C0ECA1BBA00C3E5EE /* SenTestingUtilities.m in Sources */, - C8978F5D0ECA1BBA00C3E5EE /* NSObject_SenTestRuntimeUtilities.m in Sources */, - C8978F5E0ECA1BBA00C3E5EE /* SenTestClassEnumerator.m in Sources */, - C8978F5F0ECA1BBA00C3E5EE /* SenTestInvocationEnumerator.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E98E64A2056D17830033599A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E98E64C1056D17B90033599A /* SenTestContinueOrRaiseTesting.m in Sources */, - E98E64C3056D17B90033599A /* SenTestEmptySuite.m in Sources */, - E98E64C5056D17B90033599A /* SenTestErrorTesting.m in Sources */, - E98E64C7056D17B90033599A /* SenTestFail.m in Sources */, - E98E64C9056D17B90033599A /* SenTestMacroTesting.m in Sources */, - E98E64CB056D17B90033599A /* SenTestPerformance.m in Sources */, - E98E64CD056D17B90033599A /* SenTestShould.m in Sources */, - E98E64CF056D17B90033599A /* SenTestShouldBeEqual.m in Sources */, - E98E64D1056D17B90033599A /* SenTestShouldRaise.m in Sources */, - E98E64D3056D17B90033599A /* SenTestTestSuite.m in Sources */, - 3DB0931306133A8D003C502B /* SenTestNewStyleMacros.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - E98E64D8056D17F70033599A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8DC2EF4F0486A6940098B216 /* SenTestingKit */; - targetProxy = E98E64D7056D17F70033599A /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C1666FE841158C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C1667FE841158C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C81371BB0F38FE98001D4AFB /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DSTROOT = /; - "Enable trigraphs" = NO; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Darwin/i386/Frameworks; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - "Header search paths" = ""; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Developer/Cocotron/1.0/Darwin/i386/Frameworks; - LIBRARY_SEARCH_PATHS = ""; - MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DBUILDINGSENTEST", - "-DDARWIN", - ); - OTHER_LDFLAGS = "-shared"; - PREBINDING = NO; - PRODUCT_NAME = SenTestingKit; - "Precompile prefix header" = YES; - "Prefix Header" = SenTestingKit_Prefix.pch; - SECTORDER_FLAGS = ""; - SYMROOT = build/Darwin/i386; - WRAPPER_EXTENSION = framework; - }; - name = Default; - }; - C8978F640ECA1BBA00C3E5EE /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DSTROOT = /; - EXECUTABLE_PREFIX = lib; - EXECUTABLE_SUFFIX = .so; - "Enable trigraphs" = NO; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Linux/i386/Frameworks; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - "Header search paths" = ""; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Developer/Cocotron/1.0/Linux/i386/Frameworks; - LIBRARY_SEARCH_PATHS = ""; - MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DBUILDINGSENTEST", - "-DLINUX", - ); - OTHER_LDFLAGS = "-shared"; - PREBINDING = NO; - PRODUCT_NAME = SenTestingKit; - "Precompile prefix header" = YES; - "Prefix Header" = SenTestingKit_Prefix.pch; - SECTORDER_FLAGS = ""; - SYMROOT = build/Linux/i386; - WRAPPER_EXTENSION = framework; - }; - name = Default; - }; - C8C801820DB514CB0089C0D7 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Default; - }; - C8C801860DB514CB0089C0D7 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DSTROOT = /; - EXECUTABLE_SUFFIX = .1.0.dll; - "Enable trigraphs" = NO; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - "Header search paths" = ""; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - LIBRARY_SEARCH_PATHS = ""; - MACH_O_TYPE = mh_dylib; - OTHER_CFLAGS = ( - "-DBUILDINGSENTEST", - "-DWIN32", - ); - OTHER_LDFLAGS = ( - "-shared", - "-Wl,--enable-auto-import", - "-Wl,--export-all-symbols", - "-Wl,--out-implib,$TARGET_BUILD_DIR/SenTestingKit.framework/libSenTestingKit.a", - ); - PREBINDING = NO; - PRODUCT_NAME = SenTestingKit; - "Precompile prefix header" = YES; - "Prefix Header" = SenTestingKit_Prefix.pch; - SECTORDER_FLAGS = ""; - SYMROOT = build/Windows/i386; - WRAPPER_EXTENSION = framework; - }; - name = Default; - }; - C8C8018A0DB514CB0089C0D7 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - FRAMEWORK_VERSION = A; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - INFOPLIST_FILE = "UnitTests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = SenTestingKit_UnitTests; - SECTORDER_FLAGS = ""; - TEST_AFTER_BUILD = YES; - WARNING_CFLAGS = "-Wmost"; - WRAPPER_EXTENSION = framework; - }; - name = Default; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C81371BA0F38FE98001D4AFB /* Build configuration list for PBXNativeTarget "SenTestingKit-Darwin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C81371BB0F38FE98001D4AFB /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - C8978F630ECA1BBA00C3E5EE /* Build configuration list for PBXNativeTarget "SenTestingKit-Linux" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8978F640ECA1BBA00C3E5EE /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - C8C8018B0DB514CB0089C0D7 /* Build configuration list for PBXProject "SenTestingKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8C801820DB514CB0089C0D7 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - C8C8018C0DB514CB0089C0D7 /* Build configuration list for PBXNativeTarget "SenTestingKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8C801860DB514CB0089C0D7 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - C8C8018D0DB514CB0089C0D7 /* Build configuration list for PBXNativeTarget "SenTestingKit_UnitTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8C8018A0DB514CB0089C0D7 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0867D690FE84028FC02AAC07 /* Project object */; -} diff --git a/testing/UnitTests/SenTestingKit-Projects/otest.xcodeproj/project.pbxproj b/testing/UnitTests/SenTestingKit-Projects/otest.xcodeproj/project.pbxproj deleted file mode 100644 index 1c926dc3..00000000 --- a/testing/UnitTests/SenTestingKit-Projects/otest.xcodeproj/project.pbxproj +++ /dev/null @@ -1,227 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; }; - 8DD76F9F0486AA7600D96B5E /* otest.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6859EA3029092ED04C91782 /* otest.1 */; }; - E980ED060563BF55006C3836 /* otest_main.m in Sources */ = {isa = PBXBuildFile; fileRef = E980ED050563BF55006C3836 /* otest_main.m */; }; - E980ED0E0563BF7A006C3836 /* SenTestTool.m in Sources */ = {isa = PBXBuildFile; fileRef = E980ED0C0563BF7A006C3836 /* SenTestTool.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXBuildRule section */ - C8C802640DB51D940089C0D7 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; -/* End PBXBuildRule section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F9E0486AA7600D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstPath = /usr/local/man/man1/; - dstSubfolderSpec = 0; - files = ( - 8DD76F9F0486AA7600D96B5E /* otest.1 in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 32A70AAB03705E1F00C91783 /* otest_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = otest_Prefix.pch; sourceTree = ""; }; - 8DD76FA10486AA7600D96B5E /* otest.exe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = otest.exe; sourceTree = BUILT_PRODUCTS_DIR; }; - C6859EA3029092ED04C91782 /* otest.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = otest.1; sourceTree = ""; }; - E980ED050563BF55006C3836 /* otest_main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = otest_main.m; sourceTree = ""; }; - E980ED0B0563BF7A006C3836 /* SenTestTool.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SenTestTool.h; sourceTree = ""; }; - E980ED0C0563BF7A006C3836 /* SenTestTool.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SenTestTool.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F9B0486AA7600D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* otest */ = { - isa = PBXGroup; - children = ( - 08FB7795FE84155DC02AAC07 /* Source */, - C6859EA2029092E104C91782 /* Documentation */, - 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = otest; - sourceTree = ""; - }; - 08FB7795FE84155DC02AAC07 /* Source */ = { - isa = PBXGroup; - children = ( - 32A70AAB03705E1F00C91783 /* otest_Prefix.pch */, - E980ED050563BF55006C3836 /* otest_main.m */, - E980ED0B0563BF7A006C3836 /* SenTestTool.h */, - E980ED0C0563BF7A006C3836 /* SenTestTool.m */, - ); - name = Source; - sourceTree = ""; - }; - 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 08FB779EFE84155DC02AAC07 /* Foundation.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76FA10486AA7600D96B5E /* otest.exe */, - ); - name = Products; - sourceTree = ""; - }; - C6859EA2029092E104C91782 /* Documentation */ = { - isa = PBXGroup; - children = ( - C6859EA3029092ED04C91782 /* otest.1 */, - ); - name = Documentation; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8DD76F970486AA7600D96B5E /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8DD76F960486AA7600D96B5E /* otest */ = { - isa = PBXNativeTarget; - buildConfigurationList = C8C802400DB51CF20089C0D7 /* Build configuration list for PBXNativeTarget "otest" */; - buildPhases = ( - 8DD76F970486AA7600D96B5E /* Headers */, - 8DD76F990486AA7600D96B5E /* Sources */, - 8DD76F9B0486AA7600D96B5E /* Frameworks */, - 8DD76F9E0486AA7600D96B5E /* CopyFiles */, - ); - buildRules = ( - C8C802640DB51D940089C0D7 /* PBXBuildRule */, - ); - dependencies = ( - ); - name = otest; - productInstallPath = "$(HOME)/bin"; - productName = otest; - productReference = 8DD76FA10486AA7600D96B5E /* otest.exe */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C8C8023F0DB51CF20089C0D7 /* Build configuration list for PBXProject "otest" */; - compatibilityVersion = "Xcode 2.4"; - hasScannedForEncodings = 1; - mainGroup = 08FB7794FE84155DC02AAC07 /* otest */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8DD76F960486AA7600D96B5E /* otest */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F990486AA7600D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E980ED060563BF55006C3836 /* otest_main.m in Sources */, - E980ED0E0563BF7A006C3836 /* SenTestTool.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - C8C802370DB51CF20089C0D7 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Default; - }; - C8C8023B0DB51CF20089C0D7 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = stabs; - DEPLOYMENT_LOCATION = YES; - DSTROOT = /; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_TRIGRAPHS = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = otest_Prefix.pch; - GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - HEADER_SEARCH_PATHS = ""; - INSTALL_PATH = /Developer/Cocotron/1.0/Windows/i386/; - LIBRARY_SEARCH_PATHS = ""; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-mconsole"; - PRODUCT_NAME = otest; - SECTORDER_FLAGS = ""; - }; - name = Default; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C8C8023F0DB51CF20089C0D7 /* Build configuration list for PBXProject "otest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8C802370DB51CF20089C0D7 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - C8C802400DB51CF20089C0D7 /* Build configuration list for PBXNativeTarget "otest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8C8023B0DB51CF20089C0D7 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/testing/UnitTests/SizeAndAlignment.h b/testing/UnitTests/SizeAndAlignment.h deleted file mode 100644 index aeeac599..00000000 --- a/testing/UnitTests/SizeAndAlignment.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import - -@interface SizeAndAlignment : SenTestCase { -} - -@end diff --git a/testing/UnitTests/SizeAndAlignment.m b/testing/UnitTests/SizeAndAlignment.m deleted file mode 100644 index 130dc56f..00000000 --- a/testing/UnitTests/SizeAndAlignment.m +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (c) 2008 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import "SizeAndAlignment.h" -#import "Forwarding.h" - -#define TEST_TYPE(type) { \ - size_t size, alignment; \ - NSGetSizeAndAlignment(@encode(type), &size, &alignment); \ - STAssertEquals(size, sizeof(type), \ - @"size of type %s: %s is %i, should be %i", #type, \ - @encode(type), size, sizeof(type)); \ - STAssertEquals(alignment, __alignof__(type), \ - @"alignment of type %s: %s is %i, should be %i", #type, \ - @encode(type), alignment, __alignof__(type)); \ - } - -typedef struct { - float a; - union { - long long b; - char c; - } blah; - TestingStruct str; - TestingStruct *strPtr; - NSArray *array; - union { - float d; - double e; - }; -} TestingStruct2; - -@implementation SizeAndAlignment -- (void) testPrimitives { - TEST_TYPE(float); - TEST_TYPE(double); - TEST_TYPE(long); - TEST_TYPE(int); - TEST_TYPE(char); - TEST_TYPE(void *); - TEST_TYPE(SEL); - TEST_TYPE(id); -} - -- (void) testComposites { - TEST_TYPE(TestingStruct); - TEST_TYPE(TestingStruct2); -} -@end diff --git a/testing/UnitTests/TestingHarness.xcodeproj/project.pbxproj b/testing/UnitTests/TestingHarness.xcodeproj/project.pbxproj deleted file mode 100644 index 43e95d91..00000000 --- a/testing/UnitTests/TestingHarness.xcodeproj/project.pbxproj +++ /dev/null @@ -1,123 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXAggregateTarget section */ - C8A3916D0E48A4F100A9C289 /* Download and build OCUnit */ = { - isa = PBXAggregateTarget; - buildConfigurationList = C8A391700E48A51000A9C289 /* Build configuration list for PBXAggregateTarget "Download and build OCUnit" */; - buildPhases = ( - C8A3916C0E48A4F100A9C289 /* ShellScript */, - ); - dependencies = ( - ); - name = "Download and build OCUnit"; - productName = "Download OCUnit"; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXGroup section */ - C8A391550E48A49900A9C289 = { - isa = PBXGroup; - children = ( - ); - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXProject section */ - C8A391570E48A49900A9C289 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C8A3915A0E48A49900A9C289 /* Build configuration list for PBXProject "TestingHarness" */; - compatibilityVersion = "Xcode 2.4"; - hasScannedForEncodings = 0; - mainGroup = C8A391550E48A49900A9C289; - projectDirPath = ""; - projectRoot = ""; - targets = ( - C8A3916D0E48A4F100A9C289 /* Download and build OCUnit */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXShellScriptBuildPhase section */ - C8A3916C0E48A4F100A9C289 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "cd SenTestingKit-Projects\n\nif [ ! -e OCUnitHome-v41.tgz ]; then\n\tcurl -O http://www.sente.ch/pub/software/OCUnit/OCUnitHome-v41.tgz\nfi\n\nif [ ! -d OCUnitHome ]; then\n\ttar -zxf OCUnitHome-v41.tgz\n\tcp -r otest.xcodeproj OCUnitHome/OCUnit/SourceCode/otest/\n\tcp -r SenTestingKit.xcodeproj OCUnitHome/OCUnit/SourceCode/SenTestingKit/\nfi\n\nxcodebuild -project OCUnitHome/OCUnit/SourceCode/SenTestingKit/SenTestingKit.xcodeproj\nxcodebuild -project OCUnitHome/OCUnit/SourceCode/otest/otest.xcodeproj\n\ncd .."; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - C8A391580E48A49900A9C289 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - }; - name = Debug; - }; - C8A391590E48A49900A9C289 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - }; - name = Release; - }; - C8A3916E0E48A4F200A9C289 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - PRODUCT_NAME = "Download OCUnit"; - }; - name = Debug; - }; - C8A3916F0E48A4F200A9C289 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - PRODUCT_NAME = "Download OCUnit"; - ZERO_LINK = NO; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C8A3915A0E48A49900A9C289 /* Build configuration list for PBXProject "TestingHarness" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8A391580E48A49900A9C289 /* Debug */, - C8A391590E48A49900A9C289 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C8A391700E48A51000A9C289 /* Build configuration list for PBXAggregateTarget "Download and build OCUnit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C8A3916E0E48A4F200A9C289 /* Debug */, - C8A3916F0E48A4F200A9C289 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = C8A391570E48A49900A9C289 /* Project object */; -} diff --git a/testing/UnitTests/URLTest.h b/testing/UnitTests/URLTest.h deleted file mode 100644 index 90fa335c..00000000 --- a/testing/UnitTests/URLTest.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// URLTest.h -// NSURLTests -// -// Created by Sven Weidauer on 07.02.10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -@class NSURL; - -@interface URLTest : SenTestCase { - NSURL *baseUrl; -} - -@end diff --git a/testing/UnitTests/URLTest.m b/testing/UnitTests/URLTest.m deleted file mode 100644 index 8aeb053c..00000000 --- a/testing/UnitTests/URLTest.m +++ /dev/null @@ -1,87 +0,0 @@ -// -// URLTest.m -// NSURLTests -// -// Created by Sven Weidauer on 07.02.10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "URLTest.h" - -@implementation URLTest - -- (void) setUp; { - baseUrl = [[NSURL URLWithString: @"http://a/b/c/d;p?q#f"] retain]; -} - -- (void) tearDown; { - [baseUrl release]; - baseUrl = nil; -} - -- (void) testParsing; { - NSURL *url = [NSURL URLWithString: @"http://us:pw@a:42/b/c/d;p?q#f"]; - STAssertEqualObjects([url scheme], @"http", nil); - STAssertEqualObjects([url host], @"a", nil); - STAssertEqualObjects([url path], @"/b/c/d", nil); - STAssertEqualObjects([url query], @"q", nil); - STAssertEqualObjects([url fragment], @"f", nil); - STAssertEqualObjects([url parameterString], @"p", nil); - STAssertEqualObjects([url user], @"us", nil); - STAssertEqualObjects([url password], @"pw", nil); - STAssertEquals([[url port] intValue], 42, nil); -} - -#define TEST_URL(rel, abs) \ - do { \ - NSURL *relative = [NSURL URLWithString: rel relativeToURL: baseUrl]; \ - STAssertEqualObjects([relative absoluteString], abs, \ - @"URL %@ relative to %@ should resolve to %@", \ - rel, baseUrl, abs); \ - } while (0) - -- (void) testSimpleRelative; { - TEST_URL(@"g:h", @"g:h"); - TEST_URL(@"g", @"http://a/b/c/g"); - TEST_URL(@"./g", @"http://a/b/c/g"); - TEST_URL(@"g/", @"http://a/b/c/g/"); - TEST_URL(@"/g", @"http://a/g"); - TEST_URL(@"//g", @"http://g"); - TEST_URL(@"?y", @"http://a/b/c/d;p?y"); - TEST_URL(@"g?y", @"http://a/b/c/g?y"); - TEST_URL(@"g?y/./x", @"http://a/b/c/g?y/./x"); - TEST_URL(@"#s", @"http://a/b/c/d;p?q#s"); - TEST_URL(@"g#s/./x", @"http://a/b/c/g#s/./x"); - TEST_URL(@"g?y#s", @"http://a/b/c/g?y#s"); - TEST_URL(@";x", @"http://a/b/c/d;x"); - TEST_URL(@"g;x", @"http://a/b/c/g;x"); - TEST_URL(@"g;x?y#s", @"http://a/b/c/g;x?y#s"); - TEST_URL(@".", @"http://a/b/c/"); - TEST_URL(@"./", @"http://a/b/c/"); - TEST_URL(@"..", @"http://a/b/"); - TEST_URL(@"../", @"http://a/b/"); - TEST_URL(@"../g", @"http://a/b/g"); - TEST_URL(@"../..", @"http://a/"); - TEST_URL(@"../../", @"http://a/"); - TEST_URL(@"../../g", @"http://a/g"); -} - -- (void) testAbnormalRelative; { - TEST_URL(@"", @"http://a/b/c/d;p?q#f"); - TEST_URL(@"../../../g", @"http://a/../g"); - TEST_URL(@"../../../../g", @"http://a/../../g"); - TEST_URL(@"/./g", @"http://a/./g"); - TEST_URL(@"/../g", @"http://a/../g"); - TEST_URL(@"g.", @"http://a/b/c/g."); - TEST_URL(@".g", @"http://a/b/c/.g"); - TEST_URL(@"g..", @"http://a/b/c/g.."); - TEST_URL(@"..g", @"http://a/b/c/..g"); - TEST_URL(@"./../g", @"http://a/b/g"); - TEST_URL(@"./g/.", @"http://a/b/c/g/"); - TEST_URL(@"g/./h", @"http://a/b/c/g/h"); - TEST_URL(@"g/../h", @"http://a/b/c/h"); - TEST_URL(@"http:g", @"http:g"); - TEST_URL(@"http:", @"http:"); -} - -@end diff --git a/testing/UnitTests/UnitTests-i386-Darwin-Info.plist b/testing/UnitTests/UnitTests-i386-Darwin-Info.plist deleted file mode 100644 index 2da151bb..00000000 --- a/testing/UnitTests/UnitTests-i386-Darwin-Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/testing/UnitTests/UnitTests.xcodeproj/project.pbxproj b/testing/UnitTests/UnitTests.xcodeproj/project.pbxproj deleted file mode 100644 index d7b38cb1..00000000 --- a/testing/UnitTests/UnitTests.xcodeproj/project.pbxproj +++ /dev/null @@ -1,975 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 26BD3B2B111EEE2F000F56AE /* URLTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 26BD3B2A111EEE2F000F56AE /* URLTest.m */; }; - 26BD3B2C111EEE2F000F56AE /* URLTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 26BD3B2A111EEE2F000F56AE /* URLTest.m */; }; - 26BD3B2D111EEE2F000F56AE /* URLTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 26BD3B2A111EEE2F000F56AE /* URLTest.m */; }; - 26BD3B2E111EEE2F000F56AE /* URLTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 26BD3B2A111EEE2F000F56AE /* URLTest.m */; }; - 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; }; - C80F9D180E59E45100ECD487 /* CrashCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C80F9D160E59E45100ECD487 /* CrashCatcher.m */; }; - C80F9D190E59E45100ECD487 /* CrashCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C80F9D160E59E45100ECD487 /* CrashCatcher.m */; }; - C8104F960ECCCC0600CEC3A3 /* PropertyListUnarchiving.m in Sources */ = {isa = PBXBuildFile; fileRef = C8A3931D0E48B72300A9C289 /* PropertyListUnarchiving.m */; }; - C813714E0F38FA61001D4AFB /* KeyedArchiving.m in Sources */ = {isa = PBXBuildFile; fileRef = C813714C0F38FA61001D4AFB /* KeyedArchiving.m */; }; - C813714F0F38FA61001D4AFB /* KeyedArchiving.m in Sources */ = {isa = PBXBuildFile; fileRef = C813714C0F38FA61001D4AFB /* KeyedArchiving.m */; }; - C81371500F38FA61001D4AFB /* KeyedArchiving.m in Sources */ = {isa = PBXBuildFile; fileRef = C813714C0F38FA61001D4AFB /* KeyedArchiving.m */; }; - C81371EB0F38FF93001D4AFB /* XML.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392C90E48B20F00A9C289 /* XML.plist */; }; - C81371EC0F38FF93001D4AFB /* Binary.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392D70E48B26200A9C289 /* Binary.plist */; }; - C81371ED0F38FF93001D4AFB /* TextFieldBindings.xib in Resources */ = {isa = PBXBuildFile; fileRef = C82950000F2CC4AA00F0DAF2 /* TextFieldBindings.xib */; }; - C81371EE0F38FF9A001D4AFB /* CrashCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C80F9D160E59E45100ECD487 /* CrashCatcher.m */; }; - C81371F10F38FF9A001D4AFB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C897902B0ECA1E5400C3E5EE /* main.m */; }; - C81373B60F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373B50F3A15D2001D4AFB /* Apple.bplist.keyedArchive */; }; - C81373B70F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373B50F3A15D2001D4AFB /* Apple.bplist.keyedArchive */; }; - C81373B80F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373B50F3A15D2001D4AFB /* Apple.bplist.keyedArchive */; }; - C81373B90F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373B50F3A15D2001D4AFB /* Apple.bplist.keyedArchive */; }; - C81373E00F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373DF0F3A165C001D4AFB /* Cocotron.keyedArchive */; }; - C81373E10F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373DF0F3A165C001D4AFB /* Cocotron.keyedArchive */; }; - C81373E20F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373DF0F3A165C001D4AFB /* Cocotron.keyedArchive */; }; - C81373E30F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */ = {isa = PBXBuildFile; fileRef = C81373DF0F3A165C001D4AFB /* Cocotron.keyedArchive */; }; - C8294FE70F2CC3BC00F0DAF2 /* FileHandle.m in Sources */ = {isa = PBXBuildFile; fileRef = 998CA8480E6C3741009B2664 /* FileHandle.m */; }; - C8294FE80F2CC3BC00F0DAF2 /* KVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C8C802800DB51FEF0089C0D7 /* KVC.m */; }; - C82950010F2CC4AA00F0DAF2 /* TextFieldBindings.xib in Resources */ = {isa = PBXBuildFile; fileRef = C82950000F2CC4AA00F0DAF2 /* TextFieldBindings.xib */; }; - C82950030F2CC4AA00F0DAF2 /* TextFieldBindings.xib in Resources */ = {isa = PBXBuildFile; fileRef = C82950000F2CC4AA00F0DAF2 /* TextFieldBindings.xib */; }; - C82950040F2CC4AA00F0DAF2 /* TextFieldBindings.xib in Resources */ = {isa = PBXBuildFile; fileRef = C82950000F2CC4AA00F0DAF2 /* TextFieldBindings.xib */; }; - C84DA1BE0DB8D896000CD913 /* README in Resources */ = {isa = PBXBuildFile; fileRef = C84DA1BD0DB8D896000CD913 /* README */; }; - C84DA1BF0DB8D896000CD913 /* README in Resources */ = {isa = PBXBuildFile; fileRef = C84DA1BD0DB8D896000CD913 /* README */; }; - C858DFFC0F1506CE00129AC1 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 089C167FFE841241C02AAC07 /* AppKit.framework */; }; - C85D1F800DBBBAD7005A5FD6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; }; - C85D1F810DBBBAD7005A5FD6 /* README in Resources */ = {isa = PBXBuildFile; fileRef = C84DA1BD0DB8D896000CD913 /* README */; }; - C85D1F8C0DBBBAD7005A5FD6 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C827EA560DB62A9200360D99 /* SenTestingKit.framework */; }; - C8711E600EE5DE5600EB06FD /* KVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C8C802800DB51FEF0089C0D7 /* KVC.m */; }; - C87948740EDDC87A00539601 /* RetainRelease.m in Sources */ = {isa = PBXBuildFile; fileRef = C8EA0F860E85665B0051F4DF /* RetainRelease.m */; }; - C8794B900EE4727C00539601 /* KVC.m in Sources */ = {isa = PBXBuildFile; fileRef = C8C802800DB51FEF0089C0D7 /* KVC.m */; }; - C8794B910EE4727C00539601 /* Properties.m in Sources */ = {isa = PBXBuildFile; fileRef = C827EB3A0DB63FFA00360D99 /* Properties.m */; }; - C8794B920EE4727C00539601 /* ForEach.m in Sources */ = {isa = PBXBuildFile; fileRef = C88B859B0DB90282000A8500 /* ForEach.m */; }; - C88255850F419397002ED1DA /* ObservableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = C88255840F419397002ED1DA /* ObservableArray.m */; }; - C88255870F419397002ED1DA /* ObservableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = C88255840F419397002ED1DA /* ObservableArray.m */; }; - C88255880F419397002ED1DA /* ObservableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = C88255840F419397002ED1DA /* ObservableArray.m */; }; - C88257A40F42D053002ED1DA /* NibBasedTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D2C0F40757F006E73E9 /* NibBasedTest.m */; }; - C897902C0ECA1E5400C3E5EE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C897902B0ECA1E5400C3E5EE /* main.m */; }; - C897902E0ECA1E5400C3E5EE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C897902B0ECA1E5400C3E5EE /* main.m */; }; - C89790710ECA202F00C3E5EE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 089C1672FE841209C02AAC07 /* Foundation.framework */; }; - C89C703C0F3F165300670992 /* MessageSendTorture.m in Sources */ = {isa = PBXBuildFile; fileRef = C8EA12250E893B1F0051F4DF /* MessageSendTorture.m */; }; - C89C70750F3F18E400670992 /* SizeAndAlignment.m in Sources */ = {isa = PBXBuildFile; fileRef = C8C031A30DBB4F7D00558D7B /* SizeAndAlignment.m */; }; - C89C70760F3F18EA00670992 /* ForEach.m in Sources */ = {isa = PBXBuildFile; fileRef = C88B859B0DB90282000A8500 /* ForEach.m */; }; - C89C70770F3F18F100670992 /* Properties.m in Sources */ = {isa = PBXBuildFile; fileRef = C827EB3A0DB63FFA00360D99 /* Properties.m */; }; - C89C70780F3F18F100670992 /* ObjCXXExceptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = C84F02C20E1F8F17000C03D6 /* ObjCXXExceptions.mm */; }; - C89C70790F3F18F100670992 /* Forwarding.m in Sources */ = {isa = PBXBuildFile; fileRef = C88B86D90DBA0305000A8500 /* Forwarding.m */; }; - C8A392CA0E48B20F00A9C289 /* XML.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392C90E48B20F00A9C289 /* XML.plist */; }; - C8A392CB0E48B20F00A9C289 /* XML.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392C90E48B20F00A9C289 /* XML.plist */; }; - C8A392CC0E48B20F00A9C289 /* XML.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392C90E48B20F00A9C289 /* XML.plist */; }; - C8A392D80E48B26200A9C289 /* Binary.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392D70E48B26200A9C289 /* Binary.plist */; }; - C8A392DA0E48B26200A9C289 /* Binary.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392D70E48B26200A9C289 /* Binary.plist */; }; - C8C0144B0EEB13DB0057F3FB /* NewStyleExceptions.m in Sources */ = {isa = PBXBuildFile; fileRef = C8A24EBB0DDB468700953459 /* NewStyleExceptions.m */; }; - C8C014DB0EEBF1920057F3FB /* KVO.m in Sources */ = {isa = PBXBuildFile; fileRef = C88470DA0DD3A9F600853747 /* KVO.m */; }; - C8C8030F0DB52A010089C0D7 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 089C167FFE841241C02AAC07 /* AppKit.framework */; }; - C8C803100DB52A010089C0D7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 089C1672FE841209C02AAC07 /* Foundation.framework */; }; - C8D197020ECCD487005B24B1 /* Runloop.m in Sources */ = {isa = PBXBuildFile; fileRef = C81F5A3F0DD22B94006F82C7 /* Runloop.m */; }; - C8DA2D100F4074E3006E73E9 /* TextFieldBindings.m in Sources */ = {isa = PBXBuildFile; fileRef = C8294FF50F2CC47700F0DAF2 /* TextFieldBindings.m */; }; - C8DA2D220F407516006E73E9 /* TableViewTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D210F407516006E73E9 /* TableViewTest.m */; }; - C8DA2D230F407516006E73E9 /* TableViewTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D210F407516006E73E9 /* TableViewTest.m */; }; - C8DA2D250F407516006E73E9 /* TableViewTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D210F407516006E73E9 /* TableViewTest.m */; }; - C8DA2D2D0F40757F006E73E9 /* NibBasedTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D2C0F40757F006E73E9 /* NibBasedTest.m */; }; - C8DA2D2E0F40757F006E73E9 /* NibBasedTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D2C0F40757F006E73E9 /* NibBasedTest.m */; }; - C8DA2D300F40757F006E73E9 /* NibBasedTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D2C0F40757F006E73E9 /* NibBasedTest.m */; }; - C8DA2D530F40761B006E73E9 /* TableViewTest.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8DA2D520F40761B006E73E9 /* TableViewTest.xib */; }; - C8DA2D540F40761B006E73E9 /* TableViewTest.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8DA2D520F40761B006E73E9 /* TableViewTest.xib */; }; - C8DA2D550F40761B006E73E9 /* TableViewTest.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8DA2D520F40761B006E73E9 /* TableViewTest.xib */; }; - C8DA2D560F40761B006E73E9 /* TableViewTest.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8DA2D520F40761B006E73E9 /* TableViewTest.xib */; }; - C8DA2EC30F408EAB006E73E9 /* Predicate.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2EC20F408EAB006E73E9 /* Predicate.m */; }; - C8DA2EC40F408EAB006E73E9 /* Predicate.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2EC20F408EAB006E73E9 /* Predicate.m */; }; - C8DA2EC60F408EAB006E73E9 /* Predicate.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2EC20F408EAB006E73E9 /* Predicate.m */; }; - C8E2B7AC0F48C69000C070F5 /* ObjectController.m in Sources */ = {isa = PBXBuildFile; fileRef = C8E2B7AB0F48C69000C070F5 /* ObjectController.m */; }; - C8E2B7AD0F48C69000C070F5 /* ObjectController.m in Sources */ = {isa = PBXBuildFile; fileRef = C8E2B7AB0F48C69000C070F5 /* ObjectController.m */; }; - C8E2B7AE0F48C69000C070F5 /* ObjectController.m in Sources */ = {isa = PBXBuildFile; fileRef = C8E2B7AB0F48C69000C070F5 /* ObjectController.m */; }; - C8E2B7AF0F48C69000C070F5 /* ObjectController.m in Sources */ = {isa = PBXBuildFile; fileRef = C8E2B7AB0F48C69000C070F5 /* ObjectController.m */; }; - C8E2B7B40F48C6AE00C070F5 /* ObjectController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8E2B7B30F48C6AE00C070F5 /* ObjectController.xib */; }; - C8E2B7B50F48C6AE00C070F5 /* ObjectController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8E2B7B30F48C6AE00C070F5 /* ObjectController.xib */; }; - C8E2B7B60F48C6AE00C070F5 /* ObjectController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8E2B7B30F48C6AE00C070F5 /* ObjectController.xib */; }; - C8E2B7B70F48C6AE00C070F5 /* ObjectController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C8E2B7B30F48C6AE00C070F5 /* ObjectController.xib */; }; - C8E2B8360F48CEAA00C070F5 /* TableViewTest.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DA2D210F407516006E73E9 /* TableViewTest.m */; }; - C8E2B8370F48CEB100C070F5 /* TextFieldBindings.m in Sources */ = {isa = PBXBuildFile; fileRef = C8294FF50F2CC47700F0DAF2 /* TextFieldBindings.m */; }; - C8E2B8380F48CEB100C070F5 /* ObservableArray.m in Sources */ = {isa = PBXBuildFile; fileRef = C88255840F419397002ED1DA /* ObservableArray.m */; }; - C8EA126C0E8941490051F4DF /* CrashCatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C80F9D160E59E45100ECD487 /* CrashCatcher.m */; }; - C8EA126E0E89414E0051F4DF /* Binary.plist in Resources */ = {isa = PBXBuildFile; fileRef = C8A392D70E48B26200A9C289 /* Binary.plist */; }; - C8EA126F0E8941580051F4DF /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C827EA560DB62A9200360D99 /* SenTestingKit.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXBuildRule section */ - C80F9AD10E58BADF00ECD487 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.asm; - isEditable = 1; - outputFiles = ( - ); - }; - C85D1F8E0DBBBAD7005A5FD6 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.linux.i386.gcc.4.3.1; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; - C8C8027E0DB51FE60089C0D7 /* PBXBuildRule */ = { - isa = PBXBuildRule; - compilerSpec = org.cocotron.1.0.windows.i386.gcc.default; - fileType = sourcecode.c; - isEditable = 1; - outputFiles = ( - ); - }; -/* End PBXBuildRule section */ - -/* Begin PBXContainerItemProxy section */ - 26BD3B22111EEDE2000F56AE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FEA3164C0FD5667D00F480D4 /* AppKit.framework */; - remoteInfo = "AppKit-MacOS-i386"; - }; - 26BD3B24111EEDE2000F56AE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5A8BE310C6F50E005E348A /* AppKit.framework */; - remoteInfo = "AppKit-FreeBSD-i386"; - }; - C88257E90F42D7E7002ED1DA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01AAC10C5D9BCB00AEA51A; - remoteInfo = "AppKit-Windows-i386"; - }; - C88257EB0F42D7E7002ED1DA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C889770C0EA0BF3100D0A0A2; - remoteInfo = "AppKit-Linux-i386"; - }; - C88257ED0F42D7E7002ED1DA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = C8A2E5730F07EA1F0054397C; - remoteInfo = "AppKit-Darwin-i386"; - }; - C8A3926C0E48AE3700A9C289 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C8A392530E48AD9000A9C289 /* TestingHarness.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = C8A3916D0E48A4F100A9C289; - remoteInfo = "Download and build OCUnit"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 089C167EFE841241C02AAC07 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = ../English.lproj/InfoPlist.strings; sourceTree = ""; }; - 089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 26BD3B29111EEE2F000F56AE /* URLTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = URLTest.h; sourceTree = ""; }; - 26BD3B2A111EEE2F000F56AE /* URLTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = URLTest.m; sourceTree = ""; }; - 32DBCF630370AF2F00C91783 /* UnitTests_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnitTests_Prefix.pch; sourceTree = ""; }; - 8D5B49B6048680CD000E48DA /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 998CA8470E6C3741009B2664 /* FileHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileHandle.h; sourceTree = ""; }; - 998CA8480E6C3741009B2664 /* FileHandle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FileHandle.m; sourceTree = ""; }; - C80F9AE40E58BD7E00ECD487 /* MessageBenchmark.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageBenchmark.h; sourceTree = ""; }; - C80F9AE50E58BD7E00ECD487 /* MessageBenchmark.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageBenchmark.m; sourceTree = ""; }; - C80F9B7A0E58C93800ECD487 /* MessageSend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageSend.m; sourceTree = ""; }; - C80F9D160E59E45100ECD487 /* CrashCatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CrashCatcher.m; sourceTree = ""; }; - C813714B0F38FA61001D4AFB /* KeyedArchiving.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyedArchiving.h; sourceTree = ""; }; - C813714C0F38FA61001D4AFB /* KeyedArchiving.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeyedArchiving.m; sourceTree = ""; }; - C81371E60F38FF82001D4AFB /* UnitTests-i386-Darwin.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "UnitTests-i386-Darwin.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - C81371E80F38FF82001D4AFB /* UnitTests-i386-Darwin-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "UnitTests-i386-Darwin-Info.plist"; sourceTree = ""; }; - C81373B50F3A15D2001D4AFB /* Apple.bplist.keyedArchive */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = Apple.bplist.keyedArchive; sourceTree = ""; }; - C81373DF0F3A165C001D4AFB /* Cocotron.keyedArchive */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cocotron.keyedArchive; sourceTree = ""; }; - C81F5A3E0DD22B94006F82C7 /* Runloop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Runloop.h; sourceTree = ""; }; - C81F5A3F0DD22B94006F82C7 /* Runloop.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Runloop.m; sourceTree = ""; }; - C827EA560DB62A9200360D99 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = /System/Library/Frameworks/SenTestingKit.framework; sourceTree = ""; }; - C827EA6F0DB630BB00360D99 /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; - C827EB390DB63FFA00360D99 /* Properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Properties.h; sourceTree = ""; }; - C827EB3A0DB63FFA00360D99 /* Properties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Properties.m; sourceTree = ""; }; - C8294FAD0F2CC2D400F0DAF2 /* Info copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info copy.plist"; sourceTree = ""; }; - C8294FF40F2CC47700F0DAF2 /* TextFieldBindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextFieldBindings.h; sourceTree = ""; }; - C8294FF50F2CC47700F0DAF2 /* TextFieldBindings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextFieldBindings.m; sourceTree = ""; }; - C82950000F2CC4AA00F0DAF2 /* TextFieldBindings.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TextFieldBindings.xib; sourceTree = ""; }; - C84D62830DB61BEB000E722B /* local_server_config.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = local_server_config.sh; sourceTree = ""; }; - C84DA1BD0DB8D896000CD913 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; - C84F02C10E1F8F17000C03D6 /* ObjCXXExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjCXXExceptions.h; sourceTree = ""; }; - C84F02C20E1F8F17000C03D6 /* ObjCXXExceptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ObjCXXExceptions.mm; sourceTree = ""; }; - C85D1F910DBBBAD7005A5FD6 /* UnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; - C88255830F419397002ED1DA /* ObservableArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObservableArray.h; sourceTree = ""; }; - C88255840F419397002ED1DA /* ObservableArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObservableArray.m; sourceTree = ""; }; - C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AppKit.xcodeproj; path = ../../AppKit/AppKit.xcodeproj; sourceTree = SOURCE_ROOT; }; - C88470D90DD3A9F600853747 /* KVO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KVO.h; sourceTree = ""; }; - C88470DA0DD3A9F600853747 /* KVO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KVO.m; sourceTree = ""; }; - C88B859A0DB90282000A8500 /* ForEach.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ForEach.h; sourceTree = ""; }; - C88B859B0DB90282000A8500 /* ForEach.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ForEach.m; sourceTree = ""; }; - C88B86D80DBA0305000A8500 /* Forwarding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Forwarding.h; sourceTree = ""; }; - C88B86D90DBA0305000A8500 /* Forwarding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Forwarding.m; sourceTree = ""; }; - C897902B0ECA1E5400C3E5EE /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - C8A24EBB0DDB468700953459 /* NewStyleExceptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewStyleExceptions.m; sourceTree = ""; }; - C8A24EBC0DDB468800953459 /* NewStyleExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewStyleExceptions.h; sourceTree = ""; }; - C8A392530E48AD9000A9C289 /* TestingHarness.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = TestingHarness.xcodeproj; sourceTree = ""; }; - C8A392C90E48B20F00A9C289 /* XML.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = XML.plist; sourceTree = ""; }; - C8A392D70E48B26200A9C289 /* Binary.plist */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = Binary.plist; sourceTree = ""; }; - C8A3931C0E48B72300A9C289 /* PropertyListUnarchiving.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PropertyListUnarchiving.h; sourceTree = ""; }; - C8A3931D0E48B72300A9C289 /* PropertyListUnarchiving.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PropertyListUnarchiving.m; sourceTree = ""; }; - C8C031A20DBB4F7D00558D7B /* SizeAndAlignment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SizeAndAlignment.h; sourceTree = ""; }; - C8C031A30DBB4F7D00558D7B /* SizeAndAlignment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SizeAndAlignment.m; sourceTree = ""; }; - C8C8027F0DB51FEF0089C0D7 /* KVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KVC.h; sourceTree = ""; }; - C8C802800DB51FEF0089C0D7 /* KVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KVC.m; sourceTree = ""; }; - C8CB8CAD0DD34DA6005C1BAC /* Array.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Array.h; sourceTree = ""; }; - C8CB8CAE0DD34DA6005C1BAC /* Array.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Array.m; sourceTree = ""; }; - C8DA2D200F407516006E73E9 /* TableViewTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewTest.h; sourceTree = ""; }; - C8DA2D210F407516006E73E9 /* TableViewTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewTest.m; sourceTree = ""; }; - C8DA2D2B0F40757F006E73E9 /* NibBasedTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NibBasedTest.h; sourceTree = ""; }; - C8DA2D2C0F40757F006E73E9 /* NibBasedTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NibBasedTest.m; sourceTree = ""; }; - C8DA2D520F40761B006E73E9 /* TableViewTest.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TableViewTest.xib; sourceTree = ""; }; - C8DA2EC10F408EAB006E73E9 /* Predicate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Predicate.h; sourceTree = ""; }; - C8DA2EC20F408EAB006E73E9 /* Predicate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Predicate.m; sourceTree = ""; }; - C8E2B7AA0F48C69000C070F5 /* ObjectController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjectController.h; sourceTree = ""; }; - C8E2B7AB0F48C69000C070F5 /* ObjectController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjectController.m; sourceTree = ""; }; - C8E2B7B30F48C6AE00C070F5 /* ObjectController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ObjectController.xib; sourceTree = ""; }; - C8EA0F850E85665B0051F4DF /* RetainRelease.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RetainRelease.h; sourceTree = ""; }; - C8EA0F860E85665B0051F4DF /* RetainRelease.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RetainRelease.m; sourceTree = ""; }; - C8EA12240E893B1F0051F4DF /* MessageSendTorture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageSendTorture.h; sourceTree = ""; }; - C8EA12250E893B1F0051F4DF /* MessageSendTorture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageSendTorture.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D5B49B3048680CD000E48DA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C8C8030F0DB52A010089C0D7 /* AppKit.framework in Frameworks */, - C8C803100DB52A010089C0D7 /* Foundation.framework in Frameworks */, - C8EA126F0E8941580051F4DF /* SenTestingKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C81371E40F38FF82001D4AFB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C827EA6C0DB630BB00360D99 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C85D1F890DBBBAD7005A5FD6 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C89790710ECA202F00C3E5EE /* Foundation.framework in Frameworks */, - C85D1F8C0DBBBAD7005A5FD6 /* SenTestingKit.framework in Frameworks */, - C858DFFC0F1506CE00129AC1 /* AppKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* UnitTests */ = { - isa = PBXGroup; - children = ( - C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */, - C84DA1BD0DB8D896000CD913 /* README */, - 08FB77AFFE84173DC02AAC07 /* Classes */, - 32C88E010371C26100C91783 /* Other Sources */, - 089C167CFE841241C02AAC07 /* Resources */, - 8D5B49B7048680CD000E48DA /* Info.plist */, - 089C167DFE841241C02AAC07 /* InfoPlist.strings */, - 089C1671FE841209C02AAC07 /* Frameworks and Libraries */, - 19C28FB8FE9D52D311CA2CBB /* Products */, - C8294FAD0F2CC2D400F0DAF2 /* Info copy.plist */, - C81371E80F38FF82001D4AFB /* UnitTests-i386-Darwin-Info.plist */, - ); - name = UnitTests; - sourceTree = ""; - }; - 089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - C8A392530E48AD9000A9C289 /* TestingHarness.xcodeproj */, - 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */, - 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */, - ); - name = "Frameworks and Libraries"; - sourceTree = ""; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - C8A392D70E48B26200A9C289 /* Binary.plist */, - C8A392C90E48B20F00A9C289 /* XML.plist */, - ); - path = Resources; - sourceTree = ""; - }; - 08FB77AFFE84173DC02AAC07 /* Classes */ = { - isa = PBXGroup; - children = ( - 26BD3B29111EEE2F000F56AE /* URLTest.h */, - 26BD3B2A111EEE2F000F56AE /* URLTest.m */, - 998CA8470E6C3741009B2664 /* FileHandle.h */, - 998CA8480E6C3741009B2664 /* FileHandle.m */, - C8C8027F0DB51FEF0089C0D7 /* KVC.h */, - C8C802800DB51FEF0089C0D7 /* KVC.m */, - C827EB390DB63FFA00360D99 /* Properties.h */, - C827EB3A0DB63FFA00360D99 /* Properties.m */, - C88B859A0DB90282000A8500 /* ForEach.h */, - C88B859B0DB90282000A8500 /* ForEach.m */, - C8A24EBC0DDB468800953459 /* NewStyleExceptions.h */, - C8A24EBB0DDB468700953459 /* NewStyleExceptions.m */, - C84F02C10E1F8F17000C03D6 /* ObjCXXExceptions.h */, - C84F02C20E1F8F17000C03D6 /* ObjCXXExceptions.mm */, - C88B86D80DBA0305000A8500 /* Forwarding.h */, - C88B86D90DBA0305000A8500 /* Forwarding.m */, - C8C031A20DBB4F7D00558D7B /* SizeAndAlignment.h */, - C8C031A30DBB4F7D00558D7B /* SizeAndAlignment.m */, - C88470D90DD3A9F600853747 /* KVO.h */, - C88470DA0DD3A9F600853747 /* KVO.m */, - C81F5A3E0DD22B94006F82C7 /* Runloop.h */, - C81F5A3F0DD22B94006F82C7 /* Runloop.m */, - C8EA12240E893B1F0051F4DF /* MessageSendTorture.h */, - C8EA12250E893B1F0051F4DF /* MessageSendTorture.m */, - C8CB8CAD0DD34DA6005C1BAC /* Array.h */, - C8CB8CAE0DD34DA6005C1BAC /* Array.m */, - C8A3931C0E48B72300A9C289 /* PropertyListUnarchiving.h */, - C8A3931D0E48B72300A9C289 /* PropertyListUnarchiving.m */, - C81373770F3A1152001D4AFB /* KeyedArchiving */, - C80F9AE40E58BD7E00ECD487 /* MessageBenchmark.h */, - C80F9AE50E58BD7E00ECD487 /* MessageBenchmark.m */, - C80F9B7A0E58C93800ECD487 /* MessageSend.m */, - C80F9D160E59E45100ECD487 /* CrashCatcher.m */, - C8EA0F850E85665B0051F4DF /* RetainRelease.h */, - C8EA0F860E85665B0051F4DF /* RetainRelease.m */, - C8DA2EC10F408EAB006E73E9 /* Predicate.h */, - C8DA2EC20F408EAB006E73E9 /* Predicate.m */, - C8294FFB0F2CC47D00F0DAF2 /* Bindings */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - C827EA560DB62A9200360D99 /* SenTestingKit.framework */, - 089C167FFE841241C02AAC07 /* AppKit.framework */, - 089C1672FE841209C02AAC07 /* Foundation.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FB8FE9D52D311CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D5B49B6048680CD000E48DA /* UnitTests.octest */, - C827EA6F0DB630BB00360D99 /* UnitTests.octest */, - C85D1F910DBBBAD7005A5FD6 /* UnitTests.octest */, - C81371E60F38FF82001D4AFB /* UnitTests-i386-Darwin.app */, - ); - name = Products; - sourceTree = ""; - }; - 32C88E010371C26100C91783 /* Other Sources */ = { - isa = PBXGroup; - children = ( - C897902B0ECA1E5400C3E5EE /* main.m */, - C84D62830DB61BEB000E722B /* local_server_config.sh */, - 32DBCF630370AF2F00C91783 /* UnitTests_Prefix.pch */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - C81373770F3A1152001D4AFB /* KeyedArchiving */ = { - isa = PBXGroup; - children = ( - C81373DF0F3A165C001D4AFB /* Cocotron.keyedArchive */, - C81373B50F3A15D2001D4AFB /* Apple.bplist.keyedArchive */, - C813714B0F38FA61001D4AFB /* KeyedArchiving.h */, - C813714C0F38FA61001D4AFB /* KeyedArchiving.m */, - ); - name = KeyedArchiving; - sourceTree = ""; - }; - C8294FFB0F2CC47D00F0DAF2 /* Bindings */ = { - isa = PBXGroup; - children = ( - C8294FF40F2CC47700F0DAF2 /* TextFieldBindings.h */, - C8294FF50F2CC47700F0DAF2 /* TextFieldBindings.m */, - C82950000F2CC4AA00F0DAF2 /* TextFieldBindings.xib */, - C8DA2D200F407516006E73E9 /* TableViewTest.h */, - C8DA2D210F407516006E73E9 /* TableViewTest.m */, - C8DA2D520F40761B006E73E9 /* TableViewTest.xib */, - C8DA2D2B0F40757F006E73E9 /* NibBasedTest.h */, - C8DA2D2C0F40757F006E73E9 /* NibBasedTest.m */, - C88255830F419397002ED1DA /* ObservableArray.h */, - C88255840F419397002ED1DA /* ObservableArray.m */, - C8E2B7AA0F48C69000C070F5 /* ObjectController.h */, - C8E2B7AB0F48C69000C070F5 /* ObjectController.m */, - C8E2B7B30F48C6AE00C070F5 /* ObjectController.xib */, - ); - path = Bindings; - sourceTree = ""; - }; - C88257E40F42D7E7002ED1DA /* Products */ = { - isa = PBXGroup; - children = ( - C88257EA0F42D7E7002ED1DA /* AppKit.framework */, - C88257EC0F42D7E7002ED1DA /* AppKit.framework */, - C88257EE0F42D7E7002ED1DA /* AppKit.framework */, - 26BD3B23111EEDE2000F56AE /* AppKit.framework */, - 26BD3B25111EEDE2000F56AE /* AppKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - C8A392540E48AD9000A9C289 /* Products */ = { - isa = PBXGroup; - children = ( - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D5B49AC048680CD000E48DA /* UnitTests-i386-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "UnitTests-i386-Windows" */; - buildPhases = ( - 8D5B49AF048680CD000E48DA /* Resources */, - 8D5B49B1048680CD000E48DA /* Sources */, - 8D5B49B3048680CD000E48DA /* Frameworks */, - C8C803EA0DB53B5C0089C0D7 /* ShellScript */, - ); - buildRules = ( - C80F9AD10E58BADF00ECD487 /* PBXBuildRule */, - C8C8027E0DB51FE60089C0D7 /* PBXBuildRule */, - ); - dependencies = ( - C8A3926D0E48AE3700A9C289 /* PBXTargetDependency */, - ); - name = "UnitTests-i386-Windows"; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = UnitTests; - productReference = 8D5B49B6048680CD000E48DA /* UnitTests.octest */; - productType = "com.apple.product-type.bundle"; - }; - C81371E50F38FF82001D4AFB /* UnitTests-i386-Darwin */ = { - isa = PBXNativeTarget; - buildConfigurationList = C81371EA0F38FF83001D4AFB /* Build configuration list for PBXNativeTarget "UnitTests-i386-Darwin" */; - buildPhases = ( - C81371E20F38FF82001D4AFB /* Resources */, - C81371E30F38FF82001D4AFB /* Sources */, - C81371E40F38FF82001D4AFB /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "UnitTests-i386-Darwin"; - productName = "UnitTests-i386-Darwin"; - productReference = C81371E60F38FF82001D4AFB /* UnitTests-i386-Darwin.app */; - productType = "com.apple.product-type.application"; - }; - C827EA6E0DB630BB00360D99 /* UnitTests-Apple */ = { - isa = PBXNativeTarget; - buildConfigurationList = C827EA720DB630BB00360D99 /* Build configuration list for PBXNativeTarget "UnitTests-Apple" */; - buildPhases = ( - C827EA6A0DB630BB00360D99 /* Resources */, - C827EA6B0DB630BB00360D99 /* Sources */, - C827EA6C0DB630BB00360D99 /* Frameworks */, - C827EA6D0DB630BB00360D99 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "UnitTests-Apple"; - productName = UnitTests; - productReference = C827EA6F0DB630BB00360D99 /* UnitTests.octest */; - productType = "com.apple.product-type.bundle"; - }; - C85D1F7E0DBBBAD7005A5FD6 /* UnitTests-i386-Linux */ = { - isa = PBXNativeTarget; - buildConfigurationList = C85D1F8F0DBBBAD7005A5FD6 /* Build configuration list for PBXNativeTarget "UnitTests-i386-Linux" */; - buildPhases = ( - C85D1F7F0DBBBAD7005A5FD6 /* Resources */, - C85D1F820DBBBAD7005A5FD6 /* Sources */, - C85D1F890DBBBAD7005A5FD6 /* Frameworks */, - C85D1F8D0DBBBAD7005A5FD6 /* ShellScript */, - ); - buildRules = ( - C85D1F8E0DBBBAD7005A5FD6 /* PBXBuildRule */, - ); - dependencies = ( - ); - name = "UnitTests-i386-Linux"; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = UnitTests; - productReference = C85D1F910DBBBAD7005A5FD6 /* UnitTests.octest */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "UnitTests" */; - compatibilityVersion = "Xcode 3.1"; - hasScannedForEncodings = 1; - mainGroup = 089C166AFE841209C02AAC07 /* UnitTests */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = C88257E40F42D7E7002ED1DA /* Products */; - ProjectRef = C88257E30F42D7E7002ED1DA /* AppKit.xcodeproj */; - }, - { - ProductGroup = C8A392540E48AD9000A9C289 /* Products */; - ProjectRef = C8A392530E48AD9000A9C289 /* TestingHarness.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D5B49AC048680CD000E48DA /* UnitTests-i386-Windows */, - C85D1F7E0DBBBAD7005A5FD6 /* UnitTests-i386-Linux */, - C827EA6E0DB630BB00360D99 /* UnitTests-Apple */, - C81371E50F38FF82001D4AFB /* UnitTests-i386-Darwin */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 26BD3B23111EEDE2000F56AE /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = 26BD3B22111EEDE2000F56AE /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 26BD3B25111EEDE2000F56AE /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = 26BD3B24111EEDE2000F56AE /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - C88257EA0F42D7E7002ED1DA /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = C88257E90F42D7E7002ED1DA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - C88257EC0F42D7E7002ED1DA /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = C88257EB0F42D7E7002ED1DA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - C88257EE0F42D7E7002ED1DA /* AppKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AppKit.framework; - remoteRef = C88257ED0F42D7E7002ED1DA /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D5B49AF048680CD000E48DA /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */, - C84DA1BF0DB8D896000CD913 /* README in Resources */, - C8A392CB0E48B20F00A9C289 /* XML.plist in Resources */, - C8EA126E0E89414E0051F4DF /* Binary.plist in Resources */, - C82950030F2CC4AA00F0DAF2 /* TextFieldBindings.xib in Resources */, - C81373B80F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */, - C81373E20F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */, - C8DA2D530F40761B006E73E9 /* TableViewTest.xib in Resources */, - C8E2B7B50F48C6AE00C070F5 /* ObjectController.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C81371E20F38FF82001D4AFB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C81371EB0F38FF93001D4AFB /* XML.plist in Resources */, - C81371EC0F38FF93001D4AFB /* Binary.plist in Resources */, - C81371ED0F38FF93001D4AFB /* TextFieldBindings.xib in Resources */, - C81373B90F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */, - C81373E30F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */, - C8DA2D550F40761B006E73E9 /* TableViewTest.xib in Resources */, - C8E2B7B70F48C6AE00C070F5 /* ObjectController.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C827EA6A0DB630BB00360D99 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C84DA1BE0DB8D896000CD913 /* README in Resources */, - C8A392CC0E48B20F00A9C289 /* XML.plist in Resources */, - C8A392DA0E48B26200A9C289 /* Binary.plist in Resources */, - C82950040F2CC4AA00F0DAF2 /* TextFieldBindings.xib in Resources */, - C81373B60F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */, - C81373E00F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */, - C8DA2D560F40761B006E73E9 /* TableViewTest.xib in Resources */, - C8E2B7B60F48C6AE00C070F5 /* ObjectController.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C85D1F7F0DBBBAD7005A5FD6 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C85D1F800DBBBAD7005A5FD6 /* InfoPlist.strings in Resources */, - C85D1F810DBBBAD7005A5FD6 /* README in Resources */, - C8A392CA0E48B20F00A9C289 /* XML.plist in Resources */, - C8A392D80E48B26200A9C289 /* Binary.plist in Resources */, - C82950010F2CC4AA00F0DAF2 /* TextFieldBindings.xib in Resources */, - C81373B70F3A15D2001D4AFB /* Apple.bplist.keyedArchive in Resources */, - C81373E10F3A165C001D4AFB /* Cocotron.keyedArchive in Resources */, - C8DA2D540F40761B006E73E9 /* TableViewTest.xib in Resources */, - C8E2B7B40F48C6AE00C070F5 /* ObjectController.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - C827EA6D0DB630BB00360D99 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; - }; - C85D1F8D0DBBBAD7005A5FD6 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 8; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 1; - shellPath = /bin/sh; - shellScript = "mkdir $TARGET_BUILD_DIR/TestHarness\n\nif [ -f $SOURCE_ROOT/local_server_config.sh ];then\n\t. $SOURCE_ROOT/local_server_config.sh\nfi\n\nif [ \"\"$TESTING_LINK_FILES\"\" = \"YES\" ];then\n\t/Developer/Cocotron/1.0/bin/retargetBundle -link -framework Foundation -framework SenTestingKit -destination $TARGET_BUILD_DIR/TestHarness\n\tln -s /Developer/Cocotron/1.0/Linux/i386/otest $TARGET_BUILD_DIR/TestHarness/otest\nelse\n\t/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework SenTestingKit -destination $TARGET_BUILD_DIR/TestHarness\n\tcp /Developer/Cocotron/1.0/Linux/i386/otest.exe $TARGET_BUILD_DIR/TestHarness/otest\nfi\n\nif [ \"\"$TESTING_SERVER\"\" = \"\" ];then\n\techo \"error: TESTING_SERVER not set; create a local_server_config.sh in source directory\"\n\texit 1\nfi\n\nif [ \"\"$TESTING_DIR\"\" = \"\" ];then\n\techo \"error: TESTING_DIR not set; create a local_server_config.sh in source directory\"\n\texit 1\nfi\n\necho \"#!/bin/sh\" > $TARGET_BUILD_DIR/TestHarness/run_tests.sh\necho \"cd $TESTING_DIR/TestHarness\" >> $TARGET_BUILD_DIR/TestHarness/run_tests.sh\necho \"export LD_LIBRARY_PATH=\\\"\\$LD_LIBRARY_PATH:$TESTING_DIR/TestHarness\\\"\" >> $TARGET_BUILD_DIR/TestHarness/run_tests.sh\necho \"./otest -SenTest All ../$WRAPPER_NAME\" >> $TARGET_BUILD_DIR/TestHarness/run_tests.sh\n\nssh $TESTING_SERVER -- sh $TESTING_DIR/TestHarness/run_tests.sh "; - }; - C8C803EA0DB53B5C0089C0D7 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [ -e $SOURCE_ROOT/local_server_config.sh ];then\n\t. $SOURCE_ROOT/local_server_config.sh\nfi\n\nif [ \"\"$TESTING_LINK_FILES\"\" = \"YES\" ];then\n\t/Developer/Cocotron/1.0/bin/retargetBundle -link -framework AppKit -framework Foundation -framework SenTestingKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\nelse\n\t/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework SenTestingKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\nfi\n\nif [ \"\"$TESTING_SERVER\"\" = \"\" ];then\n\techo \"error: TESTING_SERVER not set; create a local_server_config.sh in source directory\"\n\texit 1\nfi\n\nif [ \"\"$TESTING_DIR\"\" = \"\" ];then\n\techo \"error: TESTING_DIR not set; create a local_server_config.sh in source directory\"\n\texit 1\nfi\n\necho \"#!/bin/sh\" > $TARGET_BUILD_DIR/run_tests.sh\necho \"cd $TESTING_DIR/$EXECUTABLE_FOLDER_PATH\" >> $TARGET_BUILD_DIR/run_tests.sh\necho \"./$EXECUTABLE_NAME\" >> $TARGET_BUILD_DIR/run_tests.sh\n\necho \"note: Running tests on $TESTING_SERVER...\"\n\nssh $TESTING_SERVER -- sh $TESTING_DIR/run_tests.sh \n\necho \"note: Finished.\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D5B49B1048680CD000E48DA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C8EA126C0E8941490051F4DF /* CrashCatcher.m in Sources */, - C897902C0ECA1E5400C3E5EE /* main.m in Sources */, - C87948740EDDC87A00539601 /* RetainRelease.m in Sources */, - C8711E600EE5DE5600EB06FD /* KVC.m in Sources */, - C8C0144B0EEB13DB0057F3FB /* NewStyleExceptions.m in Sources */, - C8C014DB0EEBF1920057F3FB /* KVO.m in Sources */, - C81371500F38FA61001D4AFB /* KeyedArchiving.m in Sources */, - C89C703C0F3F165300670992 /* MessageSendTorture.m in Sources */, - C89C70750F3F18E400670992 /* SizeAndAlignment.m in Sources */, - C89C70760F3F18EA00670992 /* ForEach.m in Sources */, - C89C70770F3F18F100670992 /* Properties.m in Sources */, - C89C70780F3F18F100670992 /* ObjCXXExceptions.mm in Sources */, - C89C70790F3F18F100670992 /* Forwarding.m in Sources */, - C8DA2D220F407516006E73E9 /* TableViewTest.m in Sources */, - C8DA2D2D0F40757F006E73E9 /* NibBasedTest.m in Sources */, - C8DA2EC30F408EAB006E73E9 /* Predicate.m in Sources */, - C88255870F419397002ED1DA /* ObservableArray.m in Sources */, - C8E2B7AD0F48C69000C070F5 /* ObjectController.m in Sources */, - 26BD3B2B111EEE2F000F56AE /* URLTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C81371E30F38FF82001D4AFB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C81371EE0F38FF9A001D4AFB /* CrashCatcher.m in Sources */, - C81371F10F38FF9A001D4AFB /* main.m in Sources */, - C88257A40F42D053002ED1DA /* NibBasedTest.m in Sources */, - C8E2B7AF0F48C69000C070F5 /* ObjectController.m in Sources */, - C8E2B8360F48CEAA00C070F5 /* TableViewTest.m in Sources */, - C8E2B8370F48CEB100C070F5 /* TextFieldBindings.m in Sources */, - C8E2B8380F48CEB100C070F5 /* ObservableArray.m in Sources */, - 26BD3B2C111EEE2F000F56AE /* URLTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C827EA6B0DB630BB00360D99 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C80F9D180E59E45100ECD487 /* CrashCatcher.m in Sources */, - C8294FE70F2CC3BC00F0DAF2 /* FileHandle.m in Sources */, - C8294FE80F2CC3BC00F0DAF2 /* KVC.m in Sources */, - C813714E0F38FA61001D4AFB /* KeyedArchiving.m in Sources */, - C8DA2D100F4074E3006E73E9 /* TextFieldBindings.m in Sources */, - C8DA2D250F407516006E73E9 /* TableViewTest.m in Sources */, - C8DA2D300F40757F006E73E9 /* NibBasedTest.m in Sources */, - C8DA2EC60F408EAB006E73E9 /* Predicate.m in Sources */, - C88255880F419397002ED1DA /* ObservableArray.m in Sources */, - C8E2B7AE0F48C69000C070F5 /* ObjectController.m in Sources */, - 26BD3B2D111EEE2F000F56AE /* URLTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C85D1F820DBBBAD7005A5FD6 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C80F9D190E59E45100ECD487 /* CrashCatcher.m in Sources */, - C897902E0ECA1E5400C3E5EE /* main.m in Sources */, - C8104F960ECCCC0600CEC3A3 /* PropertyListUnarchiving.m in Sources */, - C8D197020ECCD487005B24B1 /* Runloop.m in Sources */, - C8794B900EE4727C00539601 /* KVC.m in Sources */, - C8794B910EE4727C00539601 /* Properties.m in Sources */, - C8794B920EE4727C00539601 /* ForEach.m in Sources */, - C813714F0F38FA61001D4AFB /* KeyedArchiving.m in Sources */, - C8DA2D230F407516006E73E9 /* TableViewTest.m in Sources */, - C8DA2D2E0F40757F006E73E9 /* NibBasedTest.m in Sources */, - C8DA2EC40F408EAB006E73E9 /* Predicate.m in Sources */, - C88255850F419397002ED1DA /* ObservableArray.m in Sources */, - C8E2B7AC0F48C69000C070F5 /* ObjectController.m in Sources */, - 26BD3B2E111EEE2F000F56AE /* URLTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - C8A3926D0E48AE3700A9C289 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Download and build OCUnit"; - targetProxy = C8A3926C0E48AE3700A9C289 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C167EFE841241C02AAC07 /* InfoPlist.strings */, - ); - name = InfoPlist.strings; - path = Resources; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1DEB913C08733D840010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(NATIVE_ARCH)"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = stabs; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DEBUGGING_SYMBOLS = full; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_SYMBOL_SEPARATION = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = UnitTests_Prefix.pch; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Library/Bundles"; - MACH_O_TYPE = mh_execute; - OTHER_CFLAGS = "-fgnu89-inline"; - OTHER_LDFLAGS = "-Wl,--export-all-symbols"; - PRODUCT_NAME = UnitTests; - SDKROOT = ""; - WRAPPER_EXTENSION = octest; - }; - name = Release; - }; - 1DEB914008733D840010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - }; - name = Release; - }; - C81371E90F38FF83001D4AFB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_DIR)/Cocotron/1.0/Darwin/i386/Frameworks"; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = "UnitTests-i386-Darwin-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - "-framework", - AppKit, - "-framework", - Foundation, - "-framework", - SenTestingKit, - ); - PREBINDING = NO; - PRODUCT_NAME = "UnitTests-i386-Darwin"; - ZERO_LINK = NO; - }; - name = Release; - }; - C827EA710DB630BB00360D99 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(NATIVE_ARCH)"; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles"; - OTHER_LDFLAGS = ( - "-framework", - Cocoa, - "-framework", - SenTestingKit, - ); - PREBINDING = NO; - PRODUCT_NAME = UnitTests; - SDKROOT = ""; - WRAPPER_EXTENSION = octest; - ZERO_LINK = NO; - }; - name = Release; - }; - C85D1F900DBBBAD7005A5FD6 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(NATIVE_ARCH)"; - COPY_PHASE_STRIP = NO; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Linux"; - FRAMEWORK_SEARCH_PATHS = ( - /Developer/Cocotron/1.0/Linux/i386/Frameworks, - "\"$(DEVELOPER_DIR)/Cocotron/1.0/Windows/i386/Frameworks\"", - ); - GCC_DYNAMIC_NO_PIC = NO; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - INFOPLIST_FILE = /Users/jobi/Projekte/cocotron/testing/UnitTests/Info.plist; - INSTALL_PATH = "$(HOME)/Library/Bundles"; - MACH_O_TYPE = mh_execute; - OTHER_CFLAGS = "-fgnu89-inline"; - PRODUCT_NAME = UnitTests; - SDKROOT = ""; - WRAPPER_EXTENSION = octest; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "UnitTests-i386-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB913C08733D840010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "UnitTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB914008733D840010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C81371EA0F38FF83001D4AFB /* Build configuration list for PBXNativeTarget "UnitTests-i386-Darwin" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C81371E90F38FF83001D4AFB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C827EA720DB630BB00360D99 /* Build configuration list for PBXNativeTarget "UnitTests-Apple" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C827EA710DB630BB00360D99 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C85D1F8F0DBBBAD7005A5FD6 /* Build configuration list for PBXNativeTarget "UnitTests-i386-Linux" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C85D1F900DBBBAD7005A5FD6 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/testing/UnitTests/UnitTests_Prefix.pch b/testing/UnitTests/UnitTests_Prefix.pch deleted file mode 100644 index 015e5575..00000000 --- a/testing/UnitTests/UnitTests_Prefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -// -// Prefix header for all source files of the 'UnitTests' target in the 'UnitTests' project. -// - -#ifdef __OBJC__ - #import - #import -#endif diff --git a/testing/UnitTests/local_server_config_example.sh b/testing/UnitTests/local_server_config_example.sh deleted file mode 100644 index 41408fe3..00000000 --- a/testing/UnitTests/local_server_config_example.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -# the name of the server on which we test -export TESTING_SERVER=192.168.2.102 - -# the directory under which our build directory is available on the _server_ -export TESTING_DIR=/Tests - -# specifies if files should be linked or copied to the test harness folder -export TESTING_LINK_FILES=YES diff --git a/testing/UnitTests/main.m b/testing/UnitTests/main.m deleted file mode 100644 index 3435f0d7..00000000 --- a/testing/UnitTests/main.m +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (c) 2009 Johannes Fortmann - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. */ - -#import -#import - -int main(int argc, const char *argv[]) { - NSInitializeProcess(argc, argv); - NSZombieEnabled = YES; - id pool = [NSAutoreleasePool new]; - [SenTestProbe runTestsAtUnitPath: [[NSBundle mainBundle] bundlePath] - scope: nil]; - [pool release]; -} \ No newline at end of file diff --git a/xcconfig/darwin-i386-Foundation.xcconfig b/xcconfig/darwin-i386-Foundation.xcconfig deleted file mode 100644 index 37e41bfe..00000000 --- a/xcconfig/darwin-i386-Foundation.xcconfig +++ /dev/null @@ -1,5 +0,0 @@ -#include "darwin-i386-framework" - -OTHER_CFLAGS = -DPTHREAD_INSIDE_BUILD -DCFNETWORK_INSIDE_BUILD -DCOREFOUNDATION_INSIDE_BUILD -DFOUNDATION_INSIDE_BUILD -DOBJC_INSIDE_BUILD -DDEBUG -D__LITTLE_ENDIAN__ -fPIC -march=i686 $(DARWIN_i386_CFLAGS) -DPLATFORM_IS_POSIX -DPLATFORM_USES_BSD_SOCKETS - -OTHER_LDFLAGS = -shared $(DARWIN_i386_FRAMEWORK_LDFLAGS) diff --git a/xcconfig/darwin-i386-framework.xcconfig b/xcconfig/darwin-i386-framework.xcconfig deleted file mode 100644 index f1b8490f..00000000 --- a/xcconfig/darwin-i386-framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "darwin-i386" -#include "platform-framework" diff --git a/xcconfig/darwin-i386.xcconfig b/xcconfig/darwin-i386.xcconfig deleted file mode 100644 index 267191d9..00000000 --- a/xcconfig/darwin-i386.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -#include "darwin" - -EFFECTIVE_PLATFORM_NAME = -darwin -INSTALL_TARGET_TRIPLE = i386-apple-darwin - -GCC_VERSION = com.apple.compilers.llvm.clang.1_0 - -ARCHS = i386 diff --git a/xcconfig/darwin-ppc-framework.xcconfig b/xcconfig/darwin-ppc-framework.xcconfig deleted file mode 100644 index 8feb22bf..00000000 --- a/xcconfig/darwin-ppc-framework.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "darwin-ppc" -#include "platform-framework" diff --git a/xcconfig/darwin-ppc.xcconfig b/xcconfig/darwin-ppc.xcconfig deleted file mode 100644 index d2ebbc88..00000000 --- a/xcconfig/darwin-ppc.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -#include "darwin" - -EFFECTIVE_PLATFORM_NAME = -darwin -INSTALL_TARGET_TRIPLE = ppc-apple-darwin - -GCC_VERSION = com.apple.compilers.llvmgcc42 - -ARCHS = ppc diff --git a/xcconfig/darwin-x86_64-Foundation.xcconfig b/xcconfig/darwin-x86_64-Foundation.xcconfig deleted file mode 100644 index 9cacb3de..00000000 --- a/xcconfig/darwin-x86_64-Foundation.xcconfig +++ /dev/null @@ -1,5 +0,0 @@ -#include "darwin-x86_64-framework" - -OTHER_CFLAGS = -DCOCOTRON_DISALLOW_FORWARDING -DPTHREAD_INSIDE_BUILD -DCFNETWORK_INSIDE_BUILD -DCOREFOUNDATION_INSIDE_BUILD -DFOUNDATION_INSIDE_BUILD -DOBJC_INSIDE_BUILD -DDEBUG -D__LITTLE_ENDIAN__ -fPIC $(DARWIN_x86_64_CFLAGS) -DPLATFORM_IS_POSIX -DPLATFORM_USES_BSD_SOCKETS - -OTHER_LDFLAGS = -shared $(DARWIN_x86_64_FRAMEWORK_LDFLAGS) diff --git a/xcconfig/darwin-x86_64-framework.xcconfig b/xcconfig/darwin-x86_64-framework.xcconfig deleted file mode 100644 index 829dde3e..00000000 --- a/xcconfig/darwin-x86_64-framework.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -#include "darwin-x86_64" -#include "platform-framework" - diff --git a/xcconfig/darwin-x86_64.xcconfig b/xcconfig/darwin-x86_64.xcconfig deleted file mode 100644 index 38348ca2..00000000 --- a/xcconfig/darwin-x86_64.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -#include "darwin" - -EFFECTIVE_PLATFORM_NAME = -darwin -INSTALL_TARGET_TRIPLE = x86_64-apple-darwin - -GCC_VERSION = com.apple.compilers.llvm.clang.1_0 - -ARCHS = x86_64 diff --git a/xcconfig/darwin.xcconfig b/xcconfig/darwin.xcconfig deleted file mode 100644 index b0ed707b..00000000 --- a/xcconfig/darwin.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "platform" - diff --git a/xcconfig/freebsd-i386-Foundation.xcconfig b/xcconfig/freebsd-i386-Foundation.xcconfig deleted file mode 100644 index dc2f2128..00000000 --- a/xcconfig/freebsd-i386-Foundation.xcconfig +++ /dev/null @@ -1,7 +0,0 @@ -#include "freebsd-i386-framework" - - -OTHER_CFLAGS = -DPTHREAD_INSIDE_BUILD -DCFNETWORK_INSIDE_BUILD -DCOREFOUNDATION_INSIDE_BUILD -DFOUNDATION_INSIDE_BUILD -DOBJC_INSIDE_BUILD -DDEBUG -D__LITTLE_ENDIAN__ -fPIC -march=i686 $(LINUX_i386_CFLAGS) -DPLATFORM_IS_POSIX -DPLATFORM_USES_BSD_SOCKETS - -OTHER_LDFLAGS = -shared -lm -lpthread - diff --git a/xcconfig/freebsd-i386-framework.xcconfig b/xcconfig/freebsd-i386-framework.xcconfig deleted file mode 100644 index 95e6d013..00000000 --- a/xcconfig/freebsd-i386-framework.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -#include "freebsd-i386" -#include "platform-framework" - -EXECUTABLE_SUFFIX = .so -EXECUTABLE_PREFIX = lib -LD_DEPENDENCY_INFO_FILE = diff --git a/xcconfig/freebsd-i386.xcconfig b/xcconfig/freebsd-i386.xcconfig deleted file mode 100644 index 9ef7ce03..00000000 --- a/xcconfig/freebsd-i386.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -#include "freebsd" - -EFFECTIVE_PLATFORM_NAME = -freebsd -INSTALL_TARGET_TRIPLE = i386-pc-freebsd - -GCC_VERSION = org.cocotron.1.0.freebsd.i386.gcc.4.3.1 - -ARCHS = i386 -VALID_ARCHS = i386 diff --git a/xcconfig/freebsd.xcconfig b/xcconfig/freebsd.xcconfig deleted file mode 100644 index b94859a8..00000000 --- a/xcconfig/freebsd.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "platform" diff --git a/xcconfig/linux-arm-Foundation.xcconfig b/xcconfig/linux-arm-Foundation.xcconfig deleted file mode 100644 index e69de29b..00000000 diff --git a/xcconfig/linux-arm-framework.xcconfig b/xcconfig/linux-arm-framework.xcconfig deleted file mode 100644 index 353e23e4..00000000 --- a/xcconfig/linux-arm-framework.xcconfig +++ /dev/null @@ -1,5 +0,0 @@ -#include "linux-arm" -#include "platform-framework" - -EXECUTABLE_SUFFIX = .so -EXECUTABLE_PREFIX = lib diff --git a/xcconfig/linux-arm.xcconfig b/xcconfig/linux-arm.xcconfig deleted file mode 100644 index 1f4b608c..00000000 --- a/xcconfig/linux-arm.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -#include "linux" - -EFFECTIVE_PLATFORM_NAME = -linux -INSTALL_TARGET_TRIPLE = arm-pc-linux - -GCC_VERSION = org.cocotron.1.0.linux.arm.gcc.4.3.1 - -ARCHS = arm diff --git a/xcconfig/linux-i386-Foundation.xcconfig b/xcconfig/linux-i386-Foundation.xcconfig deleted file mode 100644 index f2704748..00000000 --- a/xcconfig/linux-i386-Foundation.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -#include "linux-i386-framework" - - -OTHER_CFLAGS = -DPTHREAD_INSIDE_BUILD -DCFNETWORK_INSIDE_BUILD -DCOREFOUNDATION_INSIDE_BUILD -DFOUNDATION_INSIDE_BUILD -DOBJC_INSIDE_BUILD -DDEBUG -D__LITTLE_ENDIAN__ -fPIC -march=i686 $(LINUX_i386_CFLAGS) -DPLATFORM_IS_POSIX -DPLATFORM_USES_BSD_SOCKETS - -OTHER_LDFLAGS = -shared -lm -ldl -lpthread $(LINUX_i386_FRAMEWORK_LDFLAGS) - -LINUX_i386_FOUNDATION_GNU89_INDIVIDUAL_FILE_CFLAGS = -std=gnu89 diff --git a/xcconfig/linux-i386-framework.xcconfig b/xcconfig/linux-i386-framework.xcconfig deleted file mode 100644 index da416ef0..00000000 --- a/xcconfig/linux-i386-framework.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -#include "linux-i386" -#include "platform-framework" - -EXECUTABLE_SUFFIX = .so -EXECUTABLE_PREFIX = lib -LD_DEPENDENCY_INFO_FILE = diff --git a/xcconfig/linux-i386.xcconfig b/xcconfig/linux-i386.xcconfig deleted file mode 100644 index 15b493b3..00000000 --- a/xcconfig/linux-i386.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -#include "linux" - -EFFECTIVE_PLATFORM_NAME = -linux -INSTALL_TARGET_TRIPLE = i386-pc-linux - -GCC_VERSION = org.cocotron.1.0.linux.i386.gcc.4.3.1 - -ARCHS = i386 -VALID_ARCHS = i386 - diff --git a/xcconfig/linux-ppc-framework.xcconfig b/xcconfig/linux-ppc-framework.xcconfig deleted file mode 100644 index a708c57b..00000000 --- a/xcconfig/linux-ppc-framework.xcconfig +++ /dev/null @@ -1,5 +0,0 @@ -#include "linux-ppc" -#include "platform-framework" - -EXECUTABLE_SUFFIX = .so -EXECUTABLE_PREFIX = lib diff --git a/xcconfig/linux-ppc.xcconfig b/xcconfig/linux-ppc.xcconfig deleted file mode 100644 index c85d82c9..00000000 --- a/xcconfig/linux-ppc.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -#include "linux" - -EFFECTIVE_PLATFORM_NAME = -linux -INSTALL_TARGET_TRIPLE = ppc-pc-linux - -GCC_VERSION = org.cocotron.1.0.linux.ppc.gcc.4.3.1 - -ARCHS = ppc -VALID_ARCHS = ppc diff --git a/xcconfig/linux.xcconfig b/xcconfig/linux.xcconfig deleted file mode 100644 index b94859a8..00000000 --- a/xcconfig/linux.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "platform" diff --git a/xcconfig/platform-framework.xcconfig b/xcconfig/platform-framework.xcconfig deleted file mode 100644 index 76af317a..00000000 --- a/xcconfig/platform-framework.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -#include "platform" - -INSTALL_PATH = /Frameworks diff --git a/xcconfig/platform.xcconfig b/xcconfig/platform.xcconfig deleted file mode 100644 index 42291165..00000000 --- a/xcconfig/platform.xcconfig +++ /dev/null @@ -1,25 +0,0 @@ - -DSTROOT = ../system/$(INSTALL_TARGET_TRIPLE)/ - -SYMROOT = build/sym -OBJROOT = build/obj - -CONFIGURATION_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)-$(INSTALL_TARGET_TRIPLE)/$(CURRENT_ARCH) -CONFIGURATION_TEMP_DIR = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)-$(INSTALL_TARGET_TRIPLE)/$(CURRENT_ARCH) - -GCC_C_LANGUAGE_STANDARD = gnu99 - -DEPLOYMENT_LOCATION = YES -INSTALL_MODE_FLAG = og-w,a+rX -DEPLOYMENT_POSTPROCESSING = NO -STRIP_INSTALLED_PRODUCT = NO -COPY_PHASE_STRIP = NO -GCC_GENERATE_DEBUGGING_SYMBOLS = YES -GCC_OPTIMIZATION_LEVEL = 0 -GCC_ENABLE_CPP_EXCEPTIONS = NO -GCC_ENABLE_CPP_RTTI = NO - -MACOSX_DEPLOYMENT_TARGET = -LD_DEPENDENCY_INFO_FILE = - -FRAMEWORK_SEARCH_PATHS = $(DSTROOT)/Frameworks diff --git a/xcconfig/solaris-sparc-Foundation.xcconfig b/xcconfig/solaris-sparc-Foundation.xcconfig deleted file mode 100644 index 703c4b03..00000000 --- a/xcconfig/solaris-sparc-Foundation.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -#include "solaris-sparc-framework" - - -OTHER_CFLAGS = -pthread -DCOCOTRON_DISALLOW_FORWARDING -DPTHREAD_INSIDE_BUILD -DCFNETWORK_INSIDE_BUILD -DCOREFOUNDATION_INSIDE_BUILD -DFOUNDATION_INSIDE_BUILD -DOBJC_INSIDE_BUILD -DDEBUG -D__LITTLE_ENDIAN__ -fPIC -march=i686 -DPLATFORM_IS_POSIX -DPLATFORM_USES_BSD_SOCKETS - -OTHER_LDFLAGS = -shared -lm -ldl -lpthread - -LINUX_i386_FOUNDATION_GNU89_INDIVIDUAL_FILE_CFLAGS = -std=gnu89 diff --git a/xcconfig/solaris-sparc-framework.xcconfig b/xcconfig/solaris-sparc-framework.xcconfig deleted file mode 100644 index f945634f..00000000 --- a/xcconfig/solaris-sparc-framework.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -#include "solaris-sparc" -#include "platform-framework" - -EXECUTABLE_SUFFIX = .so -EXECUTABLE_PREFIX = lib -LD_DEPENDENCY_INFO_FILE = diff --git a/xcconfig/solaris-sparc.xcconfig b/xcconfig/solaris-sparc.xcconfig deleted file mode 100644 index 1f44ff7c..00000000 --- a/xcconfig/solaris-sparc.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -#include "solaris" - -EFFECTIVE_PLATFORM_NAME = -solaris -INSTALL_TARGET_TRIPLE = sparc-sun-solaris - -GCC_VERSION = org.cocotron.1.0.solaris.sparc.gcc.4.3.1 - -ARCHS = sparc -VALID_ARCHS = sparc diff --git a/xcconfig/solaris.xcconfig b/xcconfig/solaris.xcconfig deleted file mode 100644 index b0ed707b..00000000 --- a/xcconfig/solaris.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "platform" - diff --git a/xcconfig/windows-i386-AppKit.xcconfig b/xcconfig/windows-i386-AppKit.xcconfig deleted file mode 100644 index 37ec3745..00000000 --- a/xcconfig/windows-i386-AppKit.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -#include "windows-i386-framework" - - -OTHER_CFLAGS = -DQUARTZCORE_INSIDE_BUILD -DAPPKIT_INSIDE_BUILD -DCORETEXT_INSIDE_BUILD -DCOREGRAPHICS_INSIDE_BUILD -DCGL_INSIDE_BUILD -DDEBUG -march=i686 $(WINDOWS_i386_CFLAGS) - -OTHER_LDFLAGS = -lmsimg32 -lole32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lopengl32 -lwinmm $(WINDOWS_i386_FRAMEWORK_LDFLAGS) - -LIBRARY_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/libtiff/lib /Developer/Cocotron/1.0/Windows/i386/libpng/lib /Developer/Cocotron/1.0/Windows/i386/libjpeg/lib /Developer/Cocotron/1.0/Windows/i386/zlib-1.2.5/lib $(WINDOWS_i386_LIBRARY_SEARCH_PATHS) - -HEADER_SEARCH_PATHS = $(DSTROOT)/usr/include - diff --git a/xcconfig/windows-i386-Foundation.xcconfig b/xcconfig/windows-i386-Foundation.xcconfig deleted file mode 100644 index 3d4b030d..00000000 --- a/xcconfig/windows-i386-Foundation.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -#include "windows-i386-framework" - - -OTHER_CFLAGS = -DPTHREAD_INSIDE_BUILD -DCFNETWORK_INSIDE_BUILD -DCOREFOUNDATION_INSIDE_BUILD -DFOUNDATION_INSIDE_BUILD -DOBJC_INSIDE_BUILD -DDEBUG -march=i686 $(WINDOWS_i386_CFLAGS) - -OTHER_LDFLAGS = -B,static -lffi -B,dynamic -shared -lrpcrt4 -luuid -lole32 -lws2_32 $(WINDOWS_i386_FRAMEWORK_LDFLAGS) diff --git a/xcconfig/windows-i386-bundle.xcconfig b/xcconfig/windows-i386-bundle.xcconfig deleted file mode 100644 index c46a5287..00000000 --- a/xcconfig/windows-i386-bundle.xcconfig +++ /dev/null @@ -1,7 +0,0 @@ -#include "windows-i386" - -EXECUTABLE_SUFFIX = .1.0.dll - -OTHER_LDFLAGS = -shared -Wl,--enable-auto-import - -GCC_DYNAMIC_NO_PIC = NO diff --git a/xcconfig/windows-i386-clang.xcconfig b/xcconfig/windows-i386-clang.xcconfig deleted file mode 100644 index 3cc0143c..00000000 --- a/xcconfig/windows-i386-clang.xcconfig +++ /dev/null @@ -1,20 +0,0 @@ - -// -ccc-gcc-name requires that the properly named gcc is on PATH, e.g. $PATH://Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin - -// Sadly, I have not figured out a way to add to PATH for the compile/link phases in Xcode short of some dumb wrapper or -// putting binaries in system locations. -// -// So, for now, you can do: -// cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin -// ln -s /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/bin/i386-mingw32msvc-gcc . - -GCC_VERSION = com.apple.compilers.llvm.clang.1_0 - -// -fno-builtin is required to disable internal ObjC runtime prototypes which may not match ours. -// It also has other side effects like not actually using builtins like memset/memcpy for optimization -// So, we really don't want to -fno-builtin eventually. -WINDOWS_i386_COMPILER_CFLAGS = -ccc-host-triple i386-pc-mingw32msvc -ccc-gcc-name i386-mingw32msvc-gcc -DWINDOWS=1 -D__WIN32__=1 -fno-builtin -WINDOWS_i386_COMPILER_LDFLAGS = -ccc-host-triple i386-pc-mingw32msvc -ccc-gcc-name i386-mingw32msvc-gcc - -WINDOWS_i386_COMPILER_ISYSTEM = -isystem /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/i386-mingw32msvc/include/ -WINDOWS_i386_COMPILER_SYSLIB = /Developer/Cocotron/1.0/Windows/i386/gcc-4.3.1/i386-mingw32msvc/lib diff --git a/xcconfig/windows-i386-framework.xcconfig b/xcconfig/windows-i386-framework.xcconfig deleted file mode 100644 index 8d0b6ce1..00000000 --- a/xcconfig/windows-i386-framework.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -#include "windows-i386" -#include "platform-framework" - -EXECUTABLE_SUFFIX = .1.0.dll - -WINDOWS_i386_FRAMEWORK_LDFLAGS = -shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--out-implib,$TARGET_BUILD_DIR/$(PRODUCT_NAME).framework/lib$(PRODUCT_NAME).a $(WINDOWS_i386_COMPILER_LDFLAGS) - -OTHER_LDFLAGS = $(WINDOWS_i386_FRAMEWORK_LDFLAGS) - diff --git a/xcconfig/windows-i386.xcconfig b/xcconfig/windows-i386.xcconfig deleted file mode 100644 index 17978dc1..00000000 --- a/xcconfig/windows-i386.xcconfig +++ /dev/null @@ -1,22 +0,0 @@ -#include "windows" - -EFFECTIVE_PLATFORM_NAME = -windows -INSTALL_TARGET_TRIPLE = i386-mingw32msvc - -GCC_VERSION = org.cocotron.1.0.windows.i386.gcc.4.3.1 - -ARCHS = i386 - -// #include "windows-i386-clang" - -WINDOWS_i386_CFLAGS = -D__LITTLE_ENDIAN__ -DWINVER=0x500 -Wno-multichar -Wreturn-type -isystem $DSTROOT/include $(WINDOWS_i386_COMPILER_ISYSTEM) $(WINDOWS_i386_COMPILER_CFLAGS) - -WINDOWS_i386_LIBRARY_SEARCH_PATHS = $DSTROOT/lib $(WINDOWS_i386_COMPILER_SYSLIB) -LIBRARY_SEARCH_PATHS = $(WINDOWS_i386_LIBRARY_SEARCH_PATHS) - - -OTHER_CFLAGS = $(WINDOWS_i386_CFLAGS) -OTHER_LDFLAGS = $(WINDOWS_i386_COMPILER_LDFLAGS) - - - diff --git a/xcconfig/windows.xcconfig b/xcconfig/windows.xcconfig deleted file mode 100644 index 36fff3e6..00000000 --- a/xcconfig/windows.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -#include "platform" - -

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 wSyI^!8_-^^}qk9D_HmF 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 diff --git a/testing/Examples/TextEditor/English.lproj/Credits.rtf b/testing/Examples/TextEditor/English.lproj/Credits.rtf deleted file mode 100644 index 46576ef2..00000000 --- a/testing/Examples/TextEditor/English.lproj/Credits.rtf +++ /dev/null @@ -1,29 +0,0 @@ -{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} -{\colortbl;\red255\green255\blue255;} -\paperw9840\paperh8400 -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural - -\f0\b\fs24 \cf0 Engineering: -\b0 \ - Some people\ -\ - -\b Human Interface Design: -\b0 \ - Some other people\ -\ - -\b Testing: -\b0 \ - Hopefully not nobody\ -\ - -\b Documentation: -\b0 \ - Whoever\ -\ - -\b With special thanks to: -\b0 \ - Mom\ -} diff --git a/testing/Examples/TextEditor/English.lproj/MainMenu.nib/classes.nib b/testing/Examples/TextEditor/English.lproj/MainMenu.nib/classes.nib deleted file mode 100644 index b9b4b09f..00000000 --- a/testing/Examples/TextEditor/English.lproj/MainMenu.nib/classes.nib +++ /dev/null @@ -1,4 +0,0 @@ -{ - IBClasses = ({CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }); - IBVersion = 1; -} \ No newline at end of file diff --git a/testing/Examples/TextEditor/English.lproj/MainMenu.nib/info.nib b/testing/Examples/TextEditor/English.lproj/MainMenu.nib/info.nib deleted file mode 100644 index 7ab374fc..00000000 --- a/testing/Examples/TextEditor/English.lproj/MainMenu.nib/info.nib +++ /dev/null @@ -1,23 +0,0 @@ - - - - - IBDocumentLocation - 123 103 356 240 0 0 1680 1028 - IBEditorPositions - - 29 - 124 351 300 44 0 0 1680 1028 - - IBFramework Version - 446.1 - IBOpenObjects - - 29 - - IBSystem Version - 8L2127 - IBUsesTextArchiving - - - diff --git a/testing/Examples/TextEditor/English.lproj/MainMenu.nib/keyedobjects.nib b/testing/Examples/TextEditor/English.lproj/MainMenu.nib/keyedobjects.nib deleted file mode 100644 index ff0c4986..00000000 --- a/testing/Examples/TextEditor/English.lproj/MainMenu.nib/keyedobjects.nib +++ /dev/null @@ -1,9686 +0,0 @@ - - - - - $archiver - NSKeyedArchiver - $objects - - $null - - $class - - CF$UID - 638 - - NSAccessibilityConnectors - - CF$UID - 635 - - NSAccessibilityOidsKeys - - CF$UID - 636 - - NSAccessibilityOidsValues - - CF$UID - 637 - - NSClassesKeys - - CF$UID - 459 - - NSClassesValues - - CF$UID - 460 - - NSConnections - - CF$UID - 9 - - NSFontManager - - CF$UID - 204 - - NSFramework - - CF$UID - 6 - - NSNamesKeys - - CF$UID - 424 - - NSNamesValues - - CF$UID - 425 - - NSNextOid - 286 - NSObjectsKeys - - CF$UID - 319 - - NSObjectsValues - - CF$UID - 423 - - NSOidsKeys - - CF$UID - 461 - - NSOidsValues - - CF$UID - 462 - - NSRoot - - CF$UID - 2 - - NSVisibleWindows - - CF$UID - 7 - - - - $class - - CF$UID - 5 - - NSClassName - - CF$UID - 3 - - - - $class - - CF$UID - 4 - - NS.string - NSApplication - - - $classes - - NSMutableString - NSString - NSObject - - $classname - NSMutableString - - - $classes - - NSCustomObject - NSObject - - $classname - NSCustomObject - - - $class - - CF$UID - 4 - - NS.string - IBCocoaFramework - - - $class - - CF$UID - 8 - - NS.objects - - - - $classes - - NSMutableSet - NSSet - NSObject - - $classname - NSMutableSet - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 10 - - - CF$UID - 24 - - - CF$UID - 29 - - - CF$UID - 35 - - - CF$UID - 41 - - - CF$UID - 46 - - - CF$UID - 52 - - - CF$UID - 56 - - - CF$UID - 61 - - - CF$UID - 65 - - - CF$UID - 69 - - - CF$UID - 75 - - - CF$UID - 80 - - - CF$UID - 85 - - - CF$UID - 90 - - - CF$UID - 95 - - - CF$UID - 100 - - - CF$UID - 106 - - - CF$UID - 111 - - - CF$UID - 115 - - - CF$UID - 120 - - - CF$UID - 125 - - - CF$UID - 130 - - - CF$UID - 135 - - - CF$UID - 140 - - - CF$UID - 144 - - - CF$UID - 149 - - - CF$UID - 153 - - - CF$UID - 157 - - - CF$UID - 163 - - - CF$UID - 167 - - - CF$UID - 171 - - - CF$UID - 175 - - - CF$UID - 180 - - - CF$UID - 185 - - - CF$UID - 190 - - - CF$UID - 194 - - - CF$UID - 200 - - - CF$UID - 207 - - - CF$UID - 212 - - - CF$UID - 218 - - - CF$UID - 222 - - - CF$UID - 227 - - - CF$UID - 231 - - - CF$UID - 235 - - - CF$UID - 240 - - - CF$UID - 245 - - - CF$UID - 249 - - - CF$UID - 254 - - - CF$UID - 258 - - - CF$UID - 263 - - - CF$UID - 268 - - - CF$UID - 273 - - - CF$UID - 278 - - - CF$UID - 282 - - - CF$UID - 286 - - - CF$UID - 291 - - - CF$UID - 295 - - - CF$UID - 300 - - - CF$UID - 305 - - - CF$UID - 310 - - - CF$UID - 314 - - - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 22 - - NSSource - - CF$UID - 11 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 14 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 12 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 13 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 414 - - NSName - - CF$UID - 415 - - NSTitle - - CF$UID - 413 - - - Minimize - m - - $class - - CF$UID - 18 - - NSClassName - - CF$UID - 16 - - NSResourceName - - CF$UID - 17 - - - NSImage - NSMenuCheckmark - - $classes - - NSCustomResource - %NSCustomResource - NSObject - - $classname - NSCustomResource - - - $class - - CF$UID - 18 - - NSClassName - - CF$UID - 16 - - NSResourceName - - CF$UID - 20 - - - NSMenuMixedState - - $classes - - NSMenuItem - NSObject - - $classname - NSMenuItem - - - $class - - CF$UID - 4 - - NS.string - performMiniaturize: - - - $classes - - NSNibControlConnector - NSNibConnector - NSObject - - $classname - NSNibControlConnector - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 28 - - NSSource - - CF$UID - 25 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 12 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 26 - - - Bring All to Front - - - $class - - CF$UID - 4 - - NS.string - arrangeInFront: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 34 - - NSSource - - CF$UID - 30 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 33 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 32 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 370 - - NSTitle - - CF$UID - 369 - - - Page Setup… - P - - $class - - CF$UID - 4 - - NS.string - runPageLayout: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 40 - - NSSource - - CF$UID - 36 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 39 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 37 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 38 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 420 - - NSTitle - - CF$UID - 419 - - - TextEditor Help - ? - - $class - - CF$UID - 4 - - NS.string - showHelp: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 45 - - NSSource - - CF$UID - 42 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 43 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 44 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 375 - - NSName - - CF$UID - 376 - - NSTitle - - CF$UID - 374 - - - Clear Menu - - $class - - CF$UID - 4 - - NS.string - clearRecentDocuments: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 51 - - NSSource - - CF$UID - 47 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 50 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 49 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 349 - - NSName - - CF$UID - 363 - - NSTitle - - CF$UID - 347 - - - Quit TextEditor - q - - $class - - CF$UID - 4 - - NS.string - terminate: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 55 - - NSSource - - CF$UID - 53 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 54 - - - About TextEditor - - $class - - CF$UID - 4 - - NS.string - orderFrontStandardAboutPanel: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 60 - - NSSource - - CF$UID - 57 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 59 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 58 - - - Hide Others - h - hideOtherApplications: - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 64 - - NSSource - - CF$UID - 62 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 59 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 63 - - - Hide TextEditor - hide: - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 68 - - NSSource - - CF$UID - 66 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 67 - - - Show All - unhideAllApplications: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 74 - - NSSource - - CF$UID - 70 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 73 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 72 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 383 - - NSTitle - - CF$UID - 382 - - - Cut - x - - $class - - CF$UID - 4 - - NS.string - cut: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 79 - - NSSource - - CF$UID - 76 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 78 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 77 - - - Paste - v - - $class - - CF$UID - 4 - - NS.string - paste: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 84 - - NSSource - - CF$UID - 81 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 83 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 82 - - - Redo - Z - - $class - - CF$UID - 4 - - NS.string - redo: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 89 - - NSSource - - CF$UID - 86 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 88 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 87 - - - Select All - a - - $class - - CF$UID - 4 - - NS.string - selectAll: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 94 - - NSSource - - CF$UID - 91 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 93 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 92 - - - Undo - z - - $class - - CF$UID - 4 - - NS.string - undo: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 99 - - NSSource - - CF$UID - 96 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 98 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 97 - - - Copy - c - - $class - - CF$UID - 4 - - NS.string - copy: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 105 - - NSSource - - CF$UID - 101 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 104 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 103 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 394 - - NSTitle - - CF$UID - 392 - - - Spelling… - : - - $class - - CF$UID - 4 - - NS.string - showGuessPanel: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 110 - - NSSource - - CF$UID - 107 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 109 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 108 - - - Check Spelling - ; - - $class - - CF$UID - 4 - - NS.string - checkSpelling: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 114 - - NSSource - - CF$UID - 112 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 102 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 113 - - - Check Spelling as You Type - toggleContinuousSpellChecking: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 119 - - NSSource - - CF$UID - 116 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 118 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 117 - - - Close - w - performClose: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 124 - - NSSource - - CF$UID - 121 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 123 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 122 - - - New - n - newDocument: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 129 - - NSSource - - CF$UID - 126 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 128 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 127 - - - Open… - o - openDocument: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 134 - - NSSource - - CF$UID - 131 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 133 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 132 - - - Save - s - saveDocument: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 139 - - NSSource - - CF$UID - 136 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 138 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 137 - - - Save As… - S - saveDocumentAs: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 143 - - NSSource - - CF$UID - 141 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 142 - - - Revert - revertDocumentToSaved: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 148 - - NSSource - - CF$UID - 145 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 147 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 146 - - - Print… - p - printDocument: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 152 - - NSSource - - CF$UID - 150 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 151 - - - Delete - delete: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 156 - - NSSource - - CF$UID - 154 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 12 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 155 - - - Zoom - performZoom: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 162 - - NSSource - - CF$UID - 158 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 161 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 159 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 1 - NSTitle - - CF$UID - 160 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 390 - - NSTitle - - CF$UID - 389 - - - Find… - f - performFindPanelAction: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 162 - - NSSource - - CF$UID - 164 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 166 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 159 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 2 - NSTitle - - CF$UID - 165 - - - Find Next - g - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 162 - - NSSource - - CF$UID - 168 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 170 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 159 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 3 - NSTitle - - CF$UID - 169 - - - Find Previous - G - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 162 - - NSSource - - CF$UID - 172 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 174 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 159 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 7 - NSTitle - - CF$UID - 173 - - - Use Selection for Find - e - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 179 - - NSSource - - CF$UID - 176 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 178 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 159 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 177 - - - Jump to Selection - j - centerSelectionInVisibleArea: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 184 - - NSSource - - CF$UID - 181 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 183 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 182 - - - Paste and Match Style - V - pasteAsPlainText: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 189 - - NSSource - - CF$UID - 186 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 187 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 188 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 330 - - NSTitle - - CF$UID - 329 - - - Subscript - - $class - - CF$UID - 4 - - NS.string - subscript: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 193 - - NSSource - - CF$UID - 191 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 187 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 192 - - - Lower - - $class - - CF$UID - 4 - - NS.string - lowerBaseline: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 199 - - NSSource - - CF$UID - 195 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 198 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 197 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 404 - - NSName - - CF$UID - 409 - - NSTitle - - CF$UID - 403 - - - Copy Style - c - - $class - - CF$UID - 4 - - NS.string - copyFont: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 204 - - NSLabel - - CF$UID - 206 - - NSSource - - CF$UID - 201 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 203 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 202 - - - Show Fonts - t - - $class - - CF$UID - 5 - - NSClassName - - CF$UID - 205 - - - NSFontManager - - $class - - CF$UID - 4 - - NS.string - orderFrontFontPanel: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 211 - - NSSource - - CF$UID - 208 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 209 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 210 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 344 - - NSTitle - - CF$UID - 343 - - - Use All - - $class - - CF$UID - 4 - - NS.string - useAllLigatures: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 217 - - NSSource - - CF$UID - 213 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 216 - - NSKeyEquivModMask - 1310720 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 215 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 336 - - NSTitle - - CF$UID - 335 - - - Paste Ruler - v - - $class - - CF$UID - 4 - - NS.string - pasteRuler: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 221 - - NSSource - - CF$UID - 219 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 187 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 220 - - - Raise - - $class - - CF$UID - 4 - - NS.string - raiseBaseline: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 226 - - NSSource - - CF$UID - 223 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 225 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 224 - - - Center - | - - $class - - CF$UID - 4 - - NS.string - alignCenter: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 230 - - NSSource - - CF$UID - 228 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 229 - - - Justify - - $class - - CF$UID - 4 - - NS.string - alignJustified: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 234 - - NSSource - - CF$UID - 232 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 187 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 233 - - - Superscript - - $class - - CF$UID - 4 - - NS.string - superscript: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 239 - - NSSource - - CF$UID - 236 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 238 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 237 - - - Underline - u - - $class - - CF$UID - 4 - - NS.string - underline: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 204 - - NSLabel - - CF$UID - 244 - - NSSource - - CF$UID - 241 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 243 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 3 - NSTitle - - CF$UID - 242 - - - Bigger - + - modifyFont: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 248 - - NSSource - - CF$UID - 246 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 209 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 247 - - - Use None - - $class - - CF$UID - 4 - - NS.string - turnOffLigatures: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 204 - - NSLabel - - CF$UID - 253 - - NSSource - - CF$UID - 250 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 252 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 1 - NSTitle - - CF$UID - 251 - - - Italic - i - - $class - - CF$UID - 4 - - NS.string - addFontTrait: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 257 - - NSSource - - CF$UID - 255 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 187 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 256 - - - Use Default - - $class - - CF$UID - 4 - - NS.string - unscript: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 204 - - NSLabel - - CF$UID - 262 - - NSSource - - CF$UID - 259 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 261 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 4 - NSTitle - - CF$UID - 260 - - - Smaller - - - modifyFont: - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 267 - - NSSource - - CF$UID - 264 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 266 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 265 - - - Align Left - { - - $class - - CF$UID - 4 - - NS.string - alignLeft: - - - $class - - CF$UID - 23 - - NSDestination - - CF$UID - 204 - - NSLabel - - CF$UID - 272 - - NSSource - - CF$UID - 269 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 271 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTag - 2 - NSTitle - - CF$UID - 270 - - - Bold - b - - $class - - CF$UID - 4 - - NS.string - addFontTrait: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 277 - - NSSource - - CF$UID - 274 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 275 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 276 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 324 - - NSTitle - - CF$UID - 323 - - - Use Default - - $class - - CF$UID - 4 - - NS.string - useStandardKerning: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 281 - - NSSource - - CF$UID - 279 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 209 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 280 - - - Use Default - - $class - - CF$UID - 4 - - NS.string - useStandardLigatures: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 285 - - NSSource - - CF$UID - 283 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 275 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 284 - - - Use None - - $class - - CF$UID - 4 - - NS.string - turnOffKerning: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 290 - - NSSource - - CF$UID - 287 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 289 - - NSKeyEquivModMask - 1310720 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 288 - - - Copy Ruler - c - - $class - - CF$UID - 4 - - NS.string - copyRuler: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 294 - - NSSource - - CF$UID - 292 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 275 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 293 - - - Tighten - - $class - - CF$UID - 4 - - NS.string - tightenKerning: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 299 - - NSSource - - CF$UID - 296 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 298 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 297 - - - Show Colors - C - - $class - - CF$UID - 4 - - NS.string - orderFrontColorPanel: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 304 - - NSSource - - CF$UID - 301 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 303 - - NSKeyEquivModMask - 1572864 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 302 - - - Paste Style - v - - $class - - CF$UID - 4 - - NS.string - pasteFont: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 309 - - NSSource - - CF$UID - 306 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 308 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 307 - - - Align Right - } - - $class - - CF$UID - 4 - - NS.string - alignRight: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 313 - - NSSource - - CF$UID - 311 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 275 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 312 - - - Loosen - - $class - - CF$UID - 4 - - NS.string - loosenKerning: - - - $class - - CF$UID - 23 - - NSLabel - - CF$UID - 317 - - NSSource - - CF$UID - 315 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 316 - - - Show Ruler - - $class - - CF$UID - 4 - - NS.string - toggleRuler: - - - $classes - - NSMutableArray - NSArray - NSObject - - $classname - NSMutableArray - - - $class - - CF$UID - 422 - - NS.objects - - - CF$UID - 62 - - - CF$UID - 320 - - - CF$UID - 326 - - - CF$UID - 331 - - - CF$UID - 57 - - - CF$UID - 338 - - - CF$UID - 339 - - - CF$UID - 315 - - - CF$UID - 11 - - - CF$UID - 340 - - - CF$UID - 250 - - - CF$UID - 345 - - - CF$UID - 223 - - - CF$UID - 126 - - - CF$UID - 209 - - - CF$UID - 187 - - - CF$UID - 154 - - - CF$UID - 350 - - - CF$UID - 264 - - - CF$UID - 355 - - - CF$UID - 346 - - - CF$UID - 201 - - - CF$UID - 96 - - - CF$UID - 385 - - - CF$UID - 91 - - - CF$UID - 172 - - - CF$UID - 386 - - - CF$UID - 287 - - - CF$UID - 255 - - - CF$UID - 236 - - - CF$UID - 76 - - - CF$UID - 279 - - - CF$UID - 107 - - - CF$UID - 176 - - - CF$UID - 158 - - - CF$UID - 405 - - - CF$UID - 408 - - - CF$UID - 25 - - - CF$UID - 66 - - - CF$UID - 377 - - - CF$UID - 159 - - - CF$UID - 116 - - - CF$UID - 112 - - - CF$UID - 283 - - - CF$UID - 407 - - - CF$UID - 101 - - - CF$UID - 259 - - - CF$UID - 12 - - - CF$UID - 70 - - - CF$UID - 213 - - - CF$UID - 332 - - - CF$UID - 131 - - - CF$UID - 186 - - - CF$UID - 195 - - - CF$UID - 42 - - - CF$UID - 30 - - - CF$UID - 384 - - - CF$UID - 400 - - - CF$UID - 246 - - - CF$UID - 47 - - - CF$UID - 71 - - - CF$UID - 296 - - - CF$UID - 36 - - - CF$UID - 371 - - - CF$UID - 204 - - - CF$UID - 292 - - - CF$UID - 48 - - - CF$UID - 395 - - - CF$UID - 378 - - - CF$UID - 168 - - - CF$UID - 354 - - - CF$UID - 406 - - - CF$UID - 145 - - - CF$UID - 37 - - - CF$UID - 31 - - - CF$UID - 43 - - - CF$UID - 136 - - - CF$UID - 219 - - - CF$UID - 362 - - - CF$UID - 301 - - - CF$UID - 208 - - - CF$UID - 53 - - - CF$UID - 228 - - - CF$UID - 366 - - - CF$UID - 141 - - - CF$UID - 86 - - - CF$UID - 379 - - - CF$UID - 214 - - - CF$UID - 311 - - - CF$UID - 351 - - - CF$UID - 81 - - - CF$UID - 232 - - - CF$UID - 191 - - - CF$UID - 274 - - - CF$UID - 410 - - - CF$UID - 391 - - - CF$UID - 164 - - - CF$UID - 121 - - - CF$UID - 196 - - - CF$UID - 306 - - - CF$UID - 416 - - - CF$UID - 181 - - - CF$UID - 102 - - - CF$UID - 241 - - - CF$UID - 269 - - - CF$UID - 275 - - - CF$UID - 150 - - - CF$UID - 337 - - - CF$UID - 358 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 322 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 275 - - NSTitle - - CF$UID - 321 - - - Kern - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Kern - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 274 - - - CF$UID - 283 - - - CF$UID - 292 - - - CF$UID - 311 - - - - - $classes - - NSMenu - NSObject - - $classname - NSMenu - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 328 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 187 - - NSTitle - - CF$UID - 327 - - - Baseline - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Baseline - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 255 - - - CF$UID - 232 - - - CF$UID - 186 - - - CF$UID - 219 - - - CF$UID - 191 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 334 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 332 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 214 - - NSTitle - - CF$UID - 333 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 399 - - NSTitle - - CF$UID - 398 - - - Text - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Text - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 264 - - - CF$UID - 223 - - - CF$UID - 228 - - - CF$UID - 306 - - - CF$UID - 337 - - - CF$UID - 315 - - - CF$UID - 287 - - - CF$UID - 213 - - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 214 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 12 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 342 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 209 - - NSTitle - - CF$UID - 341 - - - Ligature - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Ligature - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 279 - - - CF$UID - 246 - - - CF$UID - 208 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 348 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 346 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 48 - - NSTitle - - CF$UID - 347 - - - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 365 - - NSName - - CF$UID - 421 - - NSTitle - - CF$UID - 364 - - - TextEditor - submenuAction: - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 53 - - - CF$UID - 350 - - - CF$UID - 351 - - - CF$UID - 354 - - - CF$UID - 355 - - - CF$UID - 362 - - - CF$UID - 62 - - - CF$UID - 57 - - - CF$UID - 66 - - - CF$UID - 338 - - - CF$UID - 47 - - - - - $class - - CF$UID - 21 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSKeyEquiv - - CF$UID - 353 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 352 - - - Preferences… - , - - $class - - CF$UID - 21 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 357 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 358 - - NSTitle - - CF$UID - 356 - - - Services - submenuAction: - - $class - - CF$UID - 325 - - NSMenuItems - - CF$UID - 360 - - NSName - - CF$UID - 361 - - NSTitle - - CF$UID - 359 - - - - $class - - CF$UID - 4 - - NS.string - Services - - - $class - - CF$UID - 318 - - NS.objects - - - _NSServicesMenu - - $class - - CF$UID - 21 - - NSIsDisabled - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 48 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - _NSAppleMenu - MainMenu - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 345 - - - CF$UID - 366 - - - CF$UID - 379 - - - CF$UID - 395 - - - CF$UID - 410 - - - CF$UID - 416 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 368 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 346 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 31 - - NSTitle - - CF$UID - 367 - - - File - submenuAction: - - $class - - CF$UID - 4 - - NS.string - File - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 121 - - - CF$UID - 126 - - - CF$UID - 371 - - - CF$UID - 377 - - - CF$UID - 116 - - - CF$UID - 131 - - - CF$UID - 136 - - - CF$UID - 141 - - - CF$UID - 378 - - - CF$UID - 30 - - - CF$UID - 145 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 373 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 43 - - NSTitle - - CF$UID - 372 - - - Open Recent - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Open Recent - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 42 - - - - _NSRecentDocumentsMenu - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 31 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 381 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 346 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 71 - - NSTitle - - CF$UID - 380 - - - Edit - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Edit - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 91 - - - CF$UID - 81 - - - CF$UID - 384 - - - CF$UID - 70 - - - CF$UID - 96 - - - CF$UID - 76 - - - CF$UID - 181 - - - CF$UID - 150 - - - CF$UID - 86 - - - CF$UID - 385 - - - CF$UID - 386 - - - CF$UID - 391 - - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 388 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 159 - - NSTitle - - CF$UID - 387 - - - Find - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Find - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 158 - - - CF$UID - 164 - - - CF$UID - 168 - - - CF$UID - 172 - - - CF$UID - 176 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 393 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 71 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 102 - - NSTitle - - CF$UID - 392 - - - Spelling - submenuAction: - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 101 - - - CF$UID - 107 - - - CF$UID - 112 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 397 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 346 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 332 - - NSTitle - - CF$UID - 396 - - - Format - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Format - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 400 - - - CF$UID - 331 - - - - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 402 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 332 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 196 - - NSTitle - - CF$UID - 401 - - - Font - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Font - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 201 - - - CF$UID - 269 - - - CF$UID - 250 - - - CF$UID - 236 - - - CF$UID - 405 - - - CF$UID - 241 - - - CF$UID - 259 - - - CF$UID - 406 - - - CF$UID - 320 - - - CF$UID - 340 - - - CF$UID - 326 - - - CF$UID - 407 - - - CF$UID - 296 - - - CF$UID - 408 - - - CF$UID - 195 - - - CF$UID - 301 - - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - - $class - - CF$UID - 21 - - NSIsSeparator - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 196 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSTitle - - CF$UID - 27 - - - _NSFontMenu - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 412 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 346 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 12 - - NSTitle - - CF$UID - 411 - - - Window - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Window - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 11 - - - CF$UID - 154 - - - CF$UID - 339 - - - CF$UID - 25 - - - - _NSWindowsMenu - - $class - - CF$UID - 21 - - NSAction - - CF$UID - 418 - - NSKeyEquiv - - CF$UID - 27 - - NSKeyEquivModMask - 1048576 - NSMenu - - CF$UID - 346 - - NSMixedImage - - CF$UID - 19 - - NSMnemonicLoc - 2147483647 - NSOnImage - - CF$UID - 15 - - NSSubmenu - - CF$UID - 37 - - NSTitle - - CF$UID - 417 - - - Help - submenuAction: - - $class - - CF$UID - 4 - - NS.string - Help - - - $class - - CF$UID - 318 - - NS.objects - - - CF$UID - 36 - - - - _NSMainMenu - - $classes - - NSArray - NSObject - - $classname - NSArray - - - $class - - CF$UID - 422 - - NS.objects - - - CF$UID - 48 - - - CF$UID - 196 - - - CF$UID - 196 - - - CF$UID - 332 - - - CF$UID - 48 - - - CF$UID - 48 - - - CF$UID - 12 - - - CF$UID - 214 - - - CF$UID - 12 - - - CF$UID - 196 - - - CF$UID - 196 - - - CF$UID - 346 - - - CF$UID - 214 - - - CF$UID - 31 - - - CF$UID - 340 - - - CF$UID - 326 - - - CF$UID - 12 - - - CF$UID - 48 - - - CF$UID - 214 - - - CF$UID - 48 - - - CF$UID - 2 - - - CF$UID - 196 - - - CF$UID - 71 - - - CF$UID - 71 - - - CF$UID - 71 - - - CF$UID - 159 - - - CF$UID - 71 - - - CF$UID - 214 - - - CF$UID - 187 - - - CF$UID - 196 - - - CF$UID - 71 - - - CF$UID - 209 - - - CF$UID - 102 - - - CF$UID - 159 - - - CF$UID - 159 - - - CF$UID - 196 - - - CF$UID - 196 - - - CF$UID - 12 - - - CF$UID - 48 - - - CF$UID - 31 - - - CF$UID - 386 - - - CF$UID - 31 - - - CF$UID - 102 - - - CF$UID - 275 - - - CF$UID - 196 - - - CF$UID - 102 - - - CF$UID - 196 - - - CF$UID - 410 - - - CF$UID - 71 - - - CF$UID - 214 - - - CF$UID - 395 - - - CF$UID - 31 - - - CF$UID - 187 - - - CF$UID - 196 - - - CF$UID - 43 - - - CF$UID - 31 - - - CF$UID - 71 - - - CF$UID - 332 - - - CF$UID - 209 - - - CF$UID - 48 - - - CF$UID - 379 - - - CF$UID - 196 - - - CF$UID - 37 - - - CF$UID - 31 - - - CF$UID - 2 - - - CF$UID - 275 - - - CF$UID - 345 - - - CF$UID - 346 - - - CF$UID - 31 - - - CF$UID - 159 - - - CF$UID - 48 - - - CF$UID - 196 - - - CF$UID - 31 - - - CF$UID - 416 - - - CF$UID - 366 - - - CF$UID - 371 - - - CF$UID - 31 - - - CF$UID - 187 - - - CF$UID - 48 - - - CF$UID - 196 - - - CF$UID - 209 - - - CF$UID - 48 - - - CF$UID - 214 - - - CF$UID - 346 - - - CF$UID - 31 - - - CF$UID - 71 - - - CF$UID - 346 - - - CF$UID - 331 - - - CF$UID - 275 - - - CF$UID - 48 - - - CF$UID - 71 - - - CF$UID - 187 - - - CF$UID - 187 - - - CF$UID - 275 - - - CF$UID - 346 - - - CF$UID - 71 - - - CF$UID - 159 - - - CF$UID - 31 - - - CF$UID - 400 - - - CF$UID - 214 - - - CF$UID - 346 - - - CF$UID - 71 - - - CF$UID - 391 - - - CF$UID - 196 - - - CF$UID - 196 - - - CF$UID - 320 - - - CF$UID - 71 - - - CF$UID - 214 - - - CF$UID - 355 - - - - - $class - - CF$UID - 422 - - NS.objects - - - CF$UID - 145 - - - CF$UID - 136 - - - CF$UID - 126 - - - CF$UID - 416 - - - CF$UID - 107 - - - CF$UID - 102 - - - CF$UID - 81 - - - CF$UID - 101 - - - CF$UID - 70 - - - CF$UID - 150 - - - CF$UID - 141 - - - CF$UID - 112 - - - CF$UID - 12 - - - CF$UID - 86 - - - CF$UID - 339 - - - CF$UID - 96 - - - CF$UID - 384 - - - CF$UID - 385 - - - CF$UID - 168 - - - CF$UID - 116 - - - CF$UID - 71 - - - CF$UID - 172 - - - CF$UID - 30 - - - CF$UID - 36 - - - CF$UID - 366 - - - CF$UID - 91 - - - CF$UID - 386 - - - CF$UID - 2 - - - CF$UID - 76 - - - CF$UID - 351 - - - CF$UID - 131 - - - CF$UID - 346 - - - CF$UID - 176 - - - CF$UID - 47 - - - CF$UID - 37 - - - CF$UID - 378 - - - CF$UID - 379 - - - CF$UID - 158 - - - CF$UID - 159 - - - CF$UID - 377 - - - CF$UID - 204 - - - CF$UID - 391 - - - CF$UID - 121 - - - CF$UID - 31 - - - CF$UID - 164 - - - - - $class - - CF$UID - 422 - - NS.objects - - - CF$UID - 426 - - - CF$UID - 427 - - - CF$UID - 428 - - - CF$UID - 429 - - - CF$UID - 430 - - - CF$UID - 431 - - - CF$UID - 432 - - - CF$UID - 433 - - - CF$UID - 434 - - - CF$UID - 435 - - - CF$UID - 436 - - - CF$UID - 437 - - - CF$UID - 438 - - - CF$UID - 440 - - - CF$UID - 428 - - - CF$UID - 441 - - - CF$UID - 437 - - - CF$UID - 442 - - - CF$UID - 434 - - - CF$UID - 443 - - - CF$UID - 431 - - - CF$UID - 444 - - - CF$UID - 445 - - - CF$UID - 428 - - - CF$UID - 428 - - - CF$UID - 444 - - - CF$UID - 446 - - - CF$UID - 447 - - - CF$UID - 448 - - - CF$UID - 449 - - - CF$UID - 450 - - - CF$UID - 451 - - - CF$UID - 441 - - - CF$UID - 452 - - - CF$UID - 453 - - - CF$UID - 454 - - - CF$UID - 437 - - - CF$UID - 437 - - - CF$UID - 431 - - - CF$UID - 455 - - - CF$UID - 456 - - - CF$UID - 457 - - - CF$UID - 458 - - - CF$UID - 428 - - - CF$UID - 435 - - - - - $class - - CF$UID - 4 - - NS.string - 6 - - - $class - - CF$UID - 4 - - NS.string - 8 - - - $class - - CF$UID - 4 - - NS.string - - - - $class - - CF$UID - 4 - - NS.string - 1 - - NSMenuItem8 - NSMenu - NSMenuItem11 - NSMenuItem6 - NSMenuItem3 - NSMenuItem4 - - $class - - CF$UID - 4 - - NS.string - 10 - - NSMenuItem - - $class - - CF$UID - 439 - - - - $classes - - NSNull - %NSNull - NSObject - - $classname - NSNull - - NSMenuItem10 - NSMenuItem1 - NSMenuItem12 - - $class - - CF$UID - 4 - - NS.string - 1 - - NSMenuItem2 - - $class - - CF$UID - 4 - - NS.string - 5 - - NSMenuItem7 - - $class - - CF$UID - 4 - - NS.string - File's Owner - - NSMenuItem9 - 121 - - $class - - CF$UID - 4 - - NS.string - 3 - - - $class - - CF$UID - 4 - - NS.string - MainMenu - - 1111 - - $class - - CF$UID - 4 - - NS.string - 2 - - - $class - - CF$UID - 4 - - NS.string - 2 - - - $class - - CF$UID - 4 - - NS.string - 7 - - Font Manager - NSMenuItem13 - - $class - - CF$UID - 4 - - NS.string - 9 - - - $class - - CF$UID - 422 - - NS.objects - - - - $class - - CF$UID - 422 - - NS.objects - - - - $class - - CF$UID - 422 - - NS.objects - - - CF$UID - 350 - - - CF$UID - 235 - - - CF$UID - 305 - - - CF$UID - 52 - - - CF$UID - 315 - - - CF$UID - 81 - - - CF$UID - 130 - - - CF$UID - 167 - - - CF$UID - 311 - - - CF$UID - 207 - - - CF$UID - 96 - - - CF$UID - 91 - - - CF$UID - 249 - - - CF$UID - 254 - - - CF$UID - 263 - - - CF$UID - 171 - - - CF$UID - 112 - - - CF$UID - 236 - - - CF$UID - 12 - - - CF$UID - 195 - - - CF$UID - 204 - - - CF$UID - 283 - - - CF$UID - 175 - - - CF$UID - 2 - - - CF$UID - 43 - - - CF$UID - 71 - - - CF$UID - 47 - - - CF$UID - 232 - - - CF$UID - 354 - - - CF$UID - 264 - - - CF$UID - 406 - - - CF$UID - 326 - - - CF$UID - 300 - - - CF$UID - 95 - - - CF$UID - 180 - - - CF$UID - 208 - - - CF$UID - 269 - - - CF$UID - 377 - - - CF$UID - 332 - - - CF$UID - 407 - - - CF$UID - 355 - - - CF$UID - 53 - - - CF$UID - 345 - - - CF$UID - 136 - - - CF$UID - 172 - - - CF$UID - 76 - - - CF$UID - 227 - - - CF$UID - 121 - - - CF$UID - 194 - - - CF$UID - 279 - - - CF$UID - 339 - - - CF$UID - 36 - - - CF$UID - 35 - - - CF$UID - 185 - - - CF$UID - 400 - - - CF$UID - 145 - - - CF$UID - 286 - - - CF$UID - 116 - - - CF$UID - 168 - - - CF$UID - 66 - - - CF$UID - 48 - - - CF$UID - 30 - - - CF$UID - 75 - - - CF$UID - 126 - - - CF$UID - 218 - - - CF$UID - 135 - - - CF$UID - 223 - - - CF$UID - 46 - - - CF$UID - 366 - - - CF$UID - 416 - - - CF$UID - 181 - - - CF$UID - 296 - - - CF$UID - 62 - - - CF$UID - 140 - - - CF$UID - 41 - - - CF$UID - 86 - - - CF$UID - 395 - - - CF$UID - 176 - - - CF$UID - 100 - - - CF$UID - 219 - - - CF$UID - 391 - - - CF$UID - 346 - - - CF$UID - 159 - - - CF$UID - 101 - - - CF$UID - 10 - - - CF$UID - 228 - - - CF$UID - 24 - - - CF$UID - 287 - - - CF$UID - 141 - - - CF$UID - 144 - - - CF$UID - 405 - - - CF$UID - 295 - - - CF$UID - 37 - - - CF$UID - 131 - - - CF$UID - 384 - - - CF$UID - 187 - - - CF$UID - 245 - - - CF$UID - 282 - - - CF$UID - 351 - - - CF$UID - 42 - - - CF$UID - 301 - - - CF$UID - 292 - - - CF$UID - 106 - - - CF$UID - 200 - - - CF$UID - 80 - - - CF$UID - 57 - - - CF$UID - 274 - - - CF$UID - 56 - - - CF$UID - 273 - - - CF$UID - 102 - - - CF$UID - 250 - - - CF$UID - 259 - - - CF$UID - 378 - - - CF$UID - 337 - - - CF$UID - 85 - - - CF$UID - 310 - - - CF$UID - 61 - - - CF$UID - 201 - - - CF$UID - 291 - - - CF$UID - 212 - - - CF$UID - 320 - - - CF$UID - 362 - - - CF$UID - 331 - - - CF$UID - 31 - - - CF$UID - 65 - - - CF$UID - 246 - - - CF$UID - 11 - - - CF$UID - 386 - - - CF$UID - 150 - - - CF$UID - 214 - - - CF$UID - 240 - - - CF$UID - 25 - - - CF$UID - 408 - - - CF$UID - 196 - - - CF$UID - 69 - - - CF$UID - 191 - - - CF$UID - 358 - - - CF$UID - 190 - - - CF$UID - 340 - - - CF$UID - 306 - - - CF$UID - 111 - - - CF$UID - 149 - - - CF$UID - 268 - - - CF$UID - 90 - - - CF$UID - 410 - - - CF$UID - 222 - - - CF$UID - 209 - - - CF$UID - 115 - - - CF$UID - 153 - - - CF$UID - 255 - - - CF$UID - 107 - - - CF$UID - 385 - - - CF$UID - 379 - - - CF$UID - 258 - - - CF$UID - 213 - - - CF$UID - 231 - - - CF$UID - 120 - - - CF$UID - 371 - - - CF$UID - 164 - - - CF$UID - 157 - - - CF$UID - 158 - - - CF$UID - 154 - - - CF$UID - 70 - - - CF$UID - 278 - - - CF$UID - 338 - - - CF$UID - 275 - - - CF$UID - 29 - - - CF$UID - 241 - - - CF$UID - 186 - - - CF$UID - 125 - - - CF$UID - 163 - - - CF$UID - 314 - - - - - $class - - CF$UID - 422 - - NS.objects - - - CF$UID - 463 - - - CF$UID - 464 - - - CF$UID - 465 - - - CF$UID - 466 - - - CF$UID - 467 - - - CF$UID - 468 - - - CF$UID - 469 - - - CF$UID - 470 - - - CF$UID - 471 - - - CF$UID - 472 - - - CF$UID - 473 - - - CF$UID - 474 - - - CF$UID - 475 - - - CF$UID - 476 - - - CF$UID - 477 - - - CF$UID - 478 - - - CF$UID - 479 - - - CF$UID - 480 - - - CF$UID - 481 - - - CF$UID - 482 - - - CF$UID - 483 - - - CF$UID - 484 - - - CF$UID - 485 - - - CF$UID - 486 - - - CF$UID - 487 - - - CF$UID - 488 - - - CF$UID - 489 - - - CF$UID - 490 - - - CF$UID - 491 - - - CF$UID - 492 - - - CF$UID - 493 - - - CF$UID - 494 - - - CF$UID - 495 - - - CF$UID - 496 - - - CF$UID - 497 - - - CF$UID - 498 - - - CF$UID - 499 - - - CF$UID - 500 - - - CF$UID - 501 - - - CF$UID - 502 - - - CF$UID - 503 - - - CF$UID - 504 - - - CF$UID - 505 - - - CF$UID - 506 - - - CF$UID - 507 - - - CF$UID - 508 - - - CF$UID - 509 - - - CF$UID - 510 - - - CF$UID - 511 - - - CF$UID - 512 - - - CF$UID - 513 - - - CF$UID - 514 - - - CF$UID - 515 - - - CF$UID - 516 - - - CF$UID - 517 - - - CF$UID - 518 - - - CF$UID - 519 - - - CF$UID - 520 - - - CF$UID - 521 - - - CF$UID - 522 - - - CF$UID - 523 - - - CF$UID - 524 - - - CF$UID - 525 - - - CF$UID - 526 - - - CF$UID - 527 - - - CF$UID - 528 - - - CF$UID - 529 - - - CF$UID - 530 - - - CF$UID - 531 - - - CF$UID - 532 - - - CF$UID - 533 - - - CF$UID - 534 - - - CF$UID - 535 - - - CF$UID - 536 - - - CF$UID - 537 - - - CF$UID - 538 - - - CF$UID - 539 - - - CF$UID - 540 - - - CF$UID - 541 - - - CF$UID - 542 - - - CF$UID - 543 - - - CF$UID - 544 - - - CF$UID - 545 - - - CF$UID - 546 - - - CF$UID - 547 - - - CF$UID - 548 - - - CF$UID - 549 - - - CF$UID - 550 - - - CF$UID - 551 - - - CF$UID - 552 - - - CF$UID - 553 - - - CF$UID - 554 - - - CF$UID - 555 - - - CF$UID - 556 - - - CF$UID - 557 - - - CF$UID - 558 - - - CF$UID - 559 - - - CF$UID - 560 - - - CF$UID - 561 - - - CF$UID - 562 - - - CF$UID - 563 - - - CF$UID - 564 - - - CF$UID - 565 - - - CF$UID - 566 - - - CF$UID - 567 - - - CF$UID - 568 - - - CF$UID - 569 - - - CF$UID - 570 - - - CF$UID - 571 - - - CF$UID - 572 - - - CF$UID - 573 - - - CF$UID - 574 - - - CF$UID - 575 - - - CF$UID - 576 - - - CF$UID - 577 - - - CF$UID - 578 - - - CF$UID - 579 - - - CF$UID - 580 - - - CF$UID - 581 - - - CF$UID - 582 - - - CF$UID - 583 - - - CF$UID - 584 - - - CF$UID - 585 - - - CF$UID - 586 - - - CF$UID - 587 - - - CF$UID - 588 - - - CF$UID - 589 - - - CF$UID - 590 - - - CF$UID - 591 - - - CF$UID - 592 - - - CF$UID - 593 - - - CF$UID - 594 - - - CF$UID - 595 - - - CF$UID - 596 - - - CF$UID - 597 - - - CF$UID - 598 - - - CF$UID - 599 - - - CF$UID - 600 - - - CF$UID - 601 - - - CF$UID - 602 - - - CF$UID - 603 - - - CF$UID - 604 - - - CF$UID - 605 - - - CF$UID - 606 - - - CF$UID - 607 - - - CF$UID - 608 - - - CF$UID - 609 - - - CF$UID - 610 - - - CF$UID - 611 - - - CF$UID - 612 - - - CF$UID - 613 - - - CF$UID - 614 - - - CF$UID - 615 - - - CF$UID - 616 - - - CF$UID - 617 - - - CF$UID - 618 - - - CF$UID - 619 - - - CF$UID - 620 - - - CF$UID - 621 - - - CF$UID - 622 - - - CF$UID - 623 - - - CF$UID - 624 - - - CF$UID - 625 - - - CF$UID - 626 - - - CF$UID - 627 - - - CF$UID - 628 - - - CF$UID - 629 - - - CF$UID - 630 - - - CF$UID - 631 - - - CF$UID - 632 - - - CF$UID - 633 - - - CF$UID - 634 - - - - 202 - 268 - 283 - 142 - 222 - 173 - 196 - 207 - 252 - 262 - 157 - 158 - 271 - 272 - 274 - 208 - 191 - 238 - 24 - 235 - 261 - 250 - 209 - 1 - 125 - 169 - 136 - 231 - 143 - 217 - 247 - 228 - 282 - 181 - 211 - 245 - 227 - 79 - 213 - 254 - 131 - 58 - 56 - 80 - 161 - 171 - 266 - 82 - 259 - 243 - 92 - 111 - 122 - 257 - 224 - 78 - 279 - 73 - 162 - 150 - 57 - 77 - 176 - 72 - 264 - 197 - 218 - 139 - 83 - 103 - 210 - 255 - 134 - 198 - 127 - 172 - 212 - 155 - 188 - 233 - 184 - 29 - 159 - 187 - 37 - 219 - 39 - 223 - 112 - 200 - 239 - 281 - 106 - 75 - 156 - 229 - 270 - 278 - 129 - 126 - 237 - 251 - 190 - 260 - 178 - 145 - 253 - 146 - 276 - 185 - 236 - 246 - 74 - 221 - 179 - 284 - 152 - 256 - 280 - 263 - 248 - 144 - 214 - 81 - 153 - 244 - 23 - 168 - 164 - 215 - 269 - 5 - 226 - 225 - 175 - 234 - 130 - 258 - 241 - 220 - 192 - 201 - 275 - 180 - 19 - 265 - 242 - 193 - 204 - 230 - 189 - 174 - 163 - 273 - 216 - 267 - 194 - 124 - 167 - 205 - 154 - 203 - 160 - 277 - 149 - 249 - 87 - 240 - 232 - 195 - 206 - 285 - - $class - - CF$UID - 318 - - NS.objects - - - - $class - - CF$UID - 422 - - NS.objects - - - - $class - - CF$UID - 422 - - NS.objects - - - - $classes - - NSIBObjectData - NSObject - - $classname - NSIBObjectData - - - $top - - IB.objectdata - - CF$UID - 1 - - - $version - 100000 - - diff --git a/testing/Examples/TextEditor/English.lproj/MyDocument.nib/classes.nib b/testing/Examples/TextEditor/English.lproj/MyDocument.nib/classes.nib deleted file mode 100644 index 2e887335..00000000 --- a/testing/Examples/TextEditor/English.lproj/MyDocument.nib/classes.nib +++ /dev/null @@ -1,12 +0,0 @@ -{ - IBClasses = ( - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - CLASS = MyDocument; - LANGUAGE = ObjC; - OUTLETS = {"_textView" = NSTextView; }; - SUPERCLASS = NSDocument; - } - ); - IBVersion = 1; -} \ No newline at end of file diff --git a/testing/Examples/TextEditor/English.lproj/MyDocument.nib/info.nib b/testing/Examples/TextEditor/English.lproj/MyDocument.nib/info.nib deleted file mode 100644 index fb76890c..00000000 --- a/testing/Examples/TextEditor/English.lproj/MyDocument.nib/info.nib +++ /dev/null @@ -1,18 +0,0 @@ - - - - - IBDocumentLocation - 492 77 356 240 0 0 1680 1028 - IBFramework Version - 446.1 - IBOpenObjects - - 5 - - IBSystem Version - 8L2127 - IBUsesTextArchiving - - - diff --git a/testing/Examples/TextEditor/English.lproj/MyDocument.nib/keyedobjects.nib b/testing/Examples/TextEditor/English.lproj/MyDocument.nib/keyedobjects.nib deleted file mode 100644 index 500d0473..00000000 --- a/testing/Examples/TextEditor/English.lproj/MyDocument.nib/keyedobjects.nib +++ /dev/null @@ -1,1379 +0,0 @@ - - - - - $archiver - NSKeyedArchiver - $objects - - $null - - $class - - CF$UID - 105 - - NSAccessibilityConnectors - - CF$UID - 102 - - NSAccessibilityOidsKeys - - CF$UID - 103 - - NSAccessibilityOidsValues - - CF$UID - 104 - - NSClassesKeys - - CF$UID - 90 - - NSClassesValues - - CF$UID - 91 - - NSConnections - - CF$UID - 8 - - NSFontManager - - CF$UID - 0 - - NSFramework - - CF$UID - 5 - - NSNamesKeys - - CF$UID - 84 - - NSNamesValues - - CF$UID - 85 - - NSNextOid - 25 - NSObjectsKeys - - CF$UID - 81 - - NSObjectsValues - - CF$UID - 83 - - NSOidsKeys - - CF$UID - 92 - - NSOidsValues - - CF$UID - 93 - - NSRoot - - CF$UID - 2 - - NSVisibleWindows - - CF$UID - 6 - - - - $class - - CF$UID - 4 - - NSClassName - - CF$UID - 3 - - - MyDocument - - $classes - - NSCustomObject - NSObject - - $classname - NSCustomObject - - IBCocoaFramework - - $class - - CF$UID - 7 - - NS.objects - - - - $classes - - NSMutableSet - NSSet - NSObject - - $classname - NSMutableSet - - - $class - - CF$UID - 30 - - NS.objects - - - CF$UID - 9 - - - CF$UID - 76 - - - CF$UID - 78 - - - CF$UID - 80 - - - - - $class - - CF$UID - 75 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 74 - - NSSource - - CF$UID - 10 - - - - $class - - CF$UID - 73 - - NSMinSize - - CF$UID - 72 - - NSScreenRect - - CF$UID - 71 - - NSViewClass - - CF$UID - 14 - - NSWTFlags - 1886912512 - NSWindowBacking - 2 - NSWindowClass - - CF$UID - 13 - - NSWindowRect - - CF$UID - 11 - - NSWindowStyleMask - 14 - NSWindowTitle - - CF$UID - 12 - - NSWindowView - - CF$UID - 15 - - - {{608, 357}, {489, 597}} - Window - NSWindow - View - - $class - - CF$UID - 70 - - NSFrame - - CF$UID - 69 - - NSNextResponder - - CF$UID - 0 - - NSSubviews - - CF$UID - 16 - - - - $class - - CF$UID - 30 - - NS.objects - - - CF$UID - 17 - - - - - $class - - CF$UID - 68 - - NSContentView - - CF$UID - 19 - - NSFrameSize - - CF$UID - 67 - - NSHScroller - - CF$UID - 64 - - NSNextKeyView - - CF$UID - 19 - - NSNextResponder - - CF$UID - 15 - - NSSubviews - - CF$UID - 18 - - NSSuperview - - CF$UID - 15 - - NSVScroller - - CF$UID - 60 - - NSsFlags - 18 - NSvFlags - 274 - - - $class - - CF$UID - 30 - - NS.objects - - - CF$UID - 19 - - - CF$UID - 60 - - - CF$UID - 64 - - - - - $class - - CF$UID - 59 - - NSBGColor - - CF$UID - 34 - - NSCursor - - CF$UID - 56 - - NSDocView - - CF$UID - 21 - - NSFrame - - CF$UID - 55 - - NSNextKeyView - - CF$UID - 21 - - NSNextResponder - - CF$UID - 17 - - NSSubviews - - CF$UID - 20 - - NSSuperview - - CF$UID - 17 - - NScvFlags - 4 - NSvFlags - 2304 - - - $class - - CF$UID - 30 - - NS.objects - - - CF$UID - 21 - - - - - $class - - CF$UID - 54 - - NSDelegate - - CF$UID - 0 - - NSFrameSize - - CF$UID - 22 - - NSMaxSize - - CF$UID - 52 - - NSMinize - - CF$UID - 53 - - NSNextResponder - - CF$UID - 19 - - NSSharedData - - CF$UID - 33 - - NSSuperview - - CF$UID - 19 - - NSTVFlags - 6 - NSTextContainer - - CF$UID - 23 - - NSvFlags - 2322 - - {472, 15} - - $class - - CF$UID - 32 - - NSLayoutManager - - CF$UID - 24 - - NSTCFlags - 1 - NSTextView - - CF$UID - 21 - - NSWidth - 472 - - - $class - - CF$UID - 31 - - NSDelegate - - CF$UID - 0 - - NSLMFlags - 6 - NSTextContainers - - CF$UID - 29 - - NSTextStorage - - CF$UID - 25 - - - - $class - - CF$UID - 28 - - NSDelegate - - CF$UID - 0 - - NSString - - CF$UID - 26 - - - - $class - - CF$UID - 27 - - NS.string - - - - $classes - - NSMutableString - NSString - NSObject - - $classname - NSMutableString - - - $classes - - NSTextStorage - NSMutableAttributedString - NSAttributedString - NSObject - - $classname - NSTextStorage - - - $class - - CF$UID - 30 - - NS.objects - - - CF$UID - 23 - - - - - $classes - - NSMutableArray - NSArray - NSObject - - $classname - NSMutableArray - - - $classes - - NSLayoutManager - NSObject - - $classname - NSLayoutManager - - - $classes - - NSTextContainer - NSObject - - $classname - NSTextContainer - - - $class - - CF$UID - 51 - - NSBackgroundColor - - CF$UID - 34 - - NSDefaultParagraphStyle - - CF$UID - 0 - - NSFlags - 11239 - NSInsertionColor - - CF$UID - 36 - - NSLinkAttributes - - CF$UID - 47 - - NSMarkedAttributes - - CF$UID - 0 - - NSSelectedAttributes - - CF$UID - 37 - - - - $class - - CF$UID - 35 - - NSColorSpace - 3 - NSWhite - - MQA= - - - - $classes - - NSColor - NSObject - - $classname - NSColor - - - $class - - CF$UID - 35 - - NSColorSpace - 3 - NSWhite - - MAA= - - - - $class - - CF$UID - 46 - - NS.keys - - - CF$UID - 38 - - - CF$UID - 39 - - - NS.objects - - - CF$UID - 40 - - - CF$UID - 44 - - - - NSBackgroundColor - NSColor - - $class - - CF$UID - 35 - - NSCatalogName - - CF$UID - 41 - - NSColor - - CF$UID - 43 - - NSColorName - - CF$UID - 42 - - NSColorSpace - 6 - - System - selectedTextBackgroundColor - - $class - - CF$UID - 35 - - NSColorSpace - 3 - NSWhite - - MC42NjY2NjY2OQA= - - - - $class - - CF$UID - 35 - - NSCatalogName - - CF$UID - 41 - - NSColor - - CF$UID - 36 - - NSColorName - - CF$UID - 45 - - NSColorSpace - 6 - - selectedTextColor - - $classes - - NSDictionary - NSObject - - $classname - NSDictionary - - - $class - - CF$UID - 46 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 39 - - - NS.objects - - - CF$UID - 49 - - - CF$UID - 50 - - - - NSUnderline - 1 - - $class - - CF$UID - 35 - - NSColorSpace - 1 - NSRGB - - MCAwIDEA - - - - $classes - - NSTextViewSharedData - NSObject - - $classname - NSTextViewSharedData - - {478, 1e+07} - {114, 0} - - $classes - - NSTextView - %NSTextView - NSText - NSView - NSResponder - NSObject - - $classname - NSTextView - - {{1, 1}, {472, 596}} - - $class - - CF$UID - 58 - - NSCursorType - 1 - NSHotSpot - - CF$UID - 57 - - - {4, -5} - - $classes - - NSCursor - NSObject - - $classname - NSCursor - - - $classes - - NSClipView - NSView - NSResponder - NSObject - - $classname - NSClipView - - - $class - - CF$UID - 63 - - NSAction - - CF$UID - 62 - - NSCurValue - 1 - NSFrame - - CF$UID - 61 - - NSNextResponder - - CF$UID - 17 - - NSSuperview - - CF$UID - 17 - - NSTarget - - CF$UID - 17 - - NSvFlags - 256 - - {{473, 1}, {15, 582}} - _doScroller: - - $classes - - NSScroller - NSControl - NSView - NSResponder - NSObject - - $classname - NSScroller - - - $class - - CF$UID - 63 - - NSAction - - CF$UID - 66 - - NSCurValue - 1 - NSFrame - - CF$UID - 65 - - NSNextResponder - - CF$UID - 17 - - NSPercent - 0.94565218687057495 - NSSuperview - - CF$UID - 17 - - NSTarget - - CF$UID - 17 - - NSsFlags - 1 - NSvFlags - 256 - - {{-100, -100}, {87, 18}} - _doScroller: - {489, 598} - - $classes - - NSScrollView - NSView - NSResponder - NSObject - - $classname - NSScrollView - - {{1, 9}, {489, 597}} - - $classes - - NSView - NSResponder - NSObject - - $classname - NSView - - {{0, 0}, {1680, 1028}} - {94, 108} - - $classes - - NSWindowTemplate - NSObject - - $classname - NSWindowTemplate - - delegate - - $classes - - NSNibOutletConnector - NSNibConnector - NSObject - - $classname - NSNibOutletConnector - - - $class - - CF$UID - 75 - - NSDestination - - CF$UID - 10 - - NSLabel - - CF$UID - 77 - - NSSource - - CF$UID - 2 - - - window - - $class - - CF$UID - 75 - - NSDestination - - CF$UID - 21 - - NSLabel - - CF$UID - 79 - - NSSource - - CF$UID - 2 - - - _textView - - $class - - CF$UID - 75 - - NSDestination - - CF$UID - 2 - - NSLabel - - CF$UID - 74 - - NSSource - - CF$UID - 21 - - - - $class - - CF$UID - 82 - - NS.objects - - - CF$UID - 10 - - - CF$UID - 21 - - - CF$UID - 17 - - - CF$UID - 15 - - - - - $classes - - NSArray - NSObject - - $classname - NSArray - - - $class - - CF$UID - 82 - - NS.objects - - - CF$UID - 2 - - - CF$UID - 17 - - - CF$UID - 15 - - - CF$UID - 10 - - - - - $class - - CF$UID - 82 - - NS.objects - - - CF$UID - 10 - - - CF$UID - 2 - - - CF$UID - 21 - - - CF$UID - 17 - - - CF$UID - 15 - - - - - $class - - CF$UID - 82 - - NS.objects - - - CF$UID - 12 - - - CF$UID - 86 - - - CF$UID - 87 - - - CF$UID - 88 - - - CF$UID - 89 - - - - File's Owner - NSTextView - NSScrollView2 - - - $class - - CF$UID - 82 - - NS.objects - - - - $class - - CF$UID - 82 - - NS.objects - - - - $class - - CF$UID - 82 - - NS.objects - - - CF$UID - 2 - - - CF$UID - 80 - - - CF$UID - 17 - - - CF$UID - 76 - - - CF$UID - 15 - - - CF$UID - 9 - - - CF$UID - 10 - - - CF$UID - 21 - - - CF$UID - 78 - - - - - $class - - CF$UID - 82 - - NS.objects - - - CF$UID - 49 - - - CF$UID - 94 - - - CF$UID - 95 - - - CF$UID - 96 - - - CF$UID - 97 - - - CF$UID - 98 - - - CF$UID - 99 - - - CF$UID - 100 - - - CF$UID - 101 - - - - 24 - 21 - 18 - 6 - 17 - 5 - 22 - 23 - - $class - - CF$UID - 30 - - NS.objects - - - - $class - - CF$UID - 82 - - NS.objects - - - - $class - - CF$UID - 82 - - NS.objects - - - - $classes - - NSIBObjectData - NSObject - - $classname - NSIBObjectData - - - $top - - IB.objectdata - - CF$UID - 1 - - - $version - 100000 - - diff --git a/testing/Examples/TextEditor/Info.plist b/testing/Examples/TextEditor/Info.plist deleted file mode 100644 index 1ff3250d..00000000 --- a/testing/Examples/TextEditor/Info.plist +++ /dev/null @@ -1,71 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleDocumentTypes - - - CFBundleTypeExtensions - - txt - - CFBundleTypeName - txt file - CFBundleTypeOSTypes - - ???? - - CFBundleTypeRole - Editor - LSTypeIsPackage - - NSDocumentClass - MyDocument - NSPersistentStoreTypeKey - Binary - - - CFBundleTypeExtensions - - text - - CFBundleTypeIconFile - - CFBundleTypeName - text file - CFBundleTypeOSTypes - - ???? - - CFBundleTypeRole - Editor - LSTypeIsPackage - - NSDocumentClass - MyDocument - - - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - org.cocotron.TextEditor - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/testing/Examples/TextEditor/MyDocument.h b/testing/Examples/TextEditor/MyDocument.h deleted file mode 100644 index c7bac403..00000000 --- a/testing/Examples/TextEditor/MyDocument.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (c) 2006 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -@interface MyDocument : NSDocument { - IBOutlet NSTextView *_textView; - NSString *_string; -} -@end diff --git a/testing/Examples/TextEditor/MyDocument.m b/testing/Examples/TextEditor/MyDocument.m deleted file mode 100644 index 6efdecaa..00000000 --- a/testing/Examples/TextEditor/MyDocument.m +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (c) 2006 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "MyDocument.h" - -@implementation MyDocument - -- init { - [super init]; - _string = @""; - return self; -} - -- (NSString *) windowNibName { - return @"MyDocument"; -} - -- (void) windowControllerDidLoadNib: (NSWindowController *) aController { - [super windowControllerDidLoadNib: aController]; - [[[_textView textStorage] mutableString] setString: _string]; - [_string release]; - _string = nil; -} - -- (NSData *) dataRepresentationOfType: (NSString *) aType { - return [[[_textView textStorage] string] - dataUsingEncoding: NSISOLatin1StringEncoding]; -} - -- (BOOL) loadDataRepresentation: (NSData *) data ofType: (NSString *) aType { - _string = [[NSString alloc] initWithData: data - encoding: NSISOLatin1StringEncoding]; - - if (_textView != nil) { // for revert - [[[_textView textStorage] mutableString] setString: _string]; - [_string release]; - _string = nil; - } - - return YES; -} - -- (void) textDidChange: (NSNotification *) note { - [self updateChangeCount: NSChangeDone]; -} - -@end diff --git a/testing/Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj b/testing/Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj deleted file mode 100644 index 48c27473..00000000 --- a/testing/Examples/TextEditor/TextEditor.xcodeproj/project.pbxproj +++ /dev/null @@ -1,431 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXAggregateTarget section */ - FE7135E30B370ED7006C9493 /* TextEditor */ = { - isa = PBXAggregateTarget; - buildConfigurationList = FE7135EE0B370F3A006C9493 /* Build configuration list for PBXAggregateTarget "TextEditor" */; - buildPhases = ( - ); - dependencies = ( - FE7135E50B370EDC006C9493 /* PBXTargetDependency */, - FE7135E70B370EDF006C9493 /* PBXTargetDependency */, - ); - name = TextEditor; - productName = TextEditor; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; }; - 8D15AC2E0486D014006FF6A4 /* MyDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */; }; - 8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */; settings = {ATTRIBUTES = (); }; }; - 8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; }; - FE7CDD490B35D0450079F150 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */; }; - FE7CDD4A0B35D0460079F150 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */; }; - FEF2CA110B35153A005449C7 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; - FEF2CA120B35153A005449C7 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */; }; - FEF2CA130B35153A005449C7 /* MyDocument.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */; }; - FEF2CA160B35153A005449C7 /* MyDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */; settings = {ATTRIBUTES = (); }; }; - FEF2CA170B35153A005449C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - FEF2CA190B35153A005449C7 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE7135E40B370EDC006C9493 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8D15AC270486D014006FF6A4; - remoteInfo = "TextEditor-Mac"; - }; - FE7135E60B370EDF006C9493 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 2A37F4A9FDCFA73011CA2CEA /* Project object */; - proxyType = 1; - remoteGlobalIDString = FEF2CA0F0B35153A005449C7; - remoteInfo = "TextEditor-Windows"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyDocument.m; sourceTree = ""; }; - 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyDocument.h; sourceTree = ""; }; - 2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 2A37F4B5FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MyDocument.nib; sourceTree = ""; }; - 2A37F4B7FDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = ""; }; - 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D15AC360486D014006FF6A4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D15AC370486D014006FF6A4 /* TextEditor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TextEditor.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FEF2CA1C0B35153A005449C7 /* TextEditor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TextEditor.app; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D15AC330486D014006FF6A4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC340486D014006FF6A4 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEF2CA180B35153A005449C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF2CA190B35153A005449C7 /* Cocoa.framework in Frameworks */, - FE7CDD490B35D0450079F150 /* AppKit.framework in Frameworks */, - FE7CDD4A0B35D0460079F150 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */, - 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FB0FE9D524F11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D15AC370486D014006FF6A4 /* TextEditor.app */, - FEF2CA1C0B35153A005449C7 /* TextEditor.app */, - ); - name = Products; - sourceTree = ""; - }; - 2A37F4AAFDCFA73011CA2CEA /* TextEditor */ = { - isa = PBXGroup; - children = ( - 2A37F4ABFDCFA73011CA2CEA /* Classes */, - 2A37F4C3FDCFA73011CA2CEA /* Frameworks */, - 2A37F4AFFDCFA73011CA2CEA /* Other Sources */, - 19C28FB0FE9D524F11CA2CBB /* Products */, - 2A37F4B8FDCFA73011CA2CEA /* Resources */, - ); - name = TextEditor; - sourceTree = ""; - }; - 2A37F4ABFDCFA73011CA2CEA /* Classes */ = { - isa = PBXGroup; - children = ( - 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */, - 2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */, - ); - name = Classes; - sourceTree = ""; - }; - 2A37F4AFFDCFA73011CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 2A37F4B0FDCFA73011CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 2A37F4B8FDCFA73011CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */, - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */, - 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */, - 8D15AC360486D014006FF6A4 /* Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 2A37F4C3FDCFA73011CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */, - 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D15AC270486D014006FF6A4 /* TextEditor-Mac */ = { - isa = PBXNativeTarget; - buildConfigurationList = C05733C708A9546B00998B17 /* Build configuration list for PBXNativeTarget "TextEditor-Mac" */; - buildPhases = ( - 8D15AC2B0486D014006FF6A4 /* Resources */, - 8D15AC300486D014006FF6A4 /* Sources */, - 8D15AC330486D014006FF6A4 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "TextEditor-Mac"; - productInstallPath = "$(HOME)/Applications"; - productName = TextEditor; - productReference = 8D15AC370486D014006FF6A4 /* TextEditor.app */; - productType = "com.apple.product-type.application"; - }; - FEF2CA0F0B35153A005449C7 /* TextEditor-Windows */ = { - isa = PBXNativeTarget; - buildConfigurationList = FEF2CA1A0B35153A005449C7 /* Build configuration list for PBXNativeTarget "TextEditor-Windows" */; - buildPhases = ( - FEF2CA100B35153A005449C7 /* Resources */, - FEF2CA150B35153A005449C7 /* Sources */, - FEF2CA180B35153A005449C7 /* Frameworks */, - FEB6746C0D2F2909006EE835 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "TextEditor-Windows"; - productInstallPath = "$(HOME)/Applications"; - productName = TextEditor; - productReference = FEF2CA1C0B35153A005449C7 /* TextEditor.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 2A37F4A9FDCFA73011CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C05733CB08A9546B00998B17 /* Build configuration list for PBXProject "TextEditor" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 2A37F4AAFDCFA73011CA2CEA /* TextEditor */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - FE7135E30B370ED7006C9493 /* TextEditor */, - 8D15AC270486D014006FF6A4 /* TextEditor-Mac */, - FEF2CA0F0B35153A005449C7 /* TextEditor-Windows */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D15AC2B0486D014006FF6A4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */, - 8D15AC2D0486D014006FF6A4 /* MainMenu.nib in Resources */, - 8D15AC2E0486D014006FF6A4 /* MyDocument.nib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEF2CA100B35153A005449C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF2CA110B35153A005449C7 /* Credits.rtf in Resources */, - FEF2CA120B35153A005449C7 /* MainMenu.nib in Resources */, - FEF2CA130B35153A005449C7 /* MyDocument.nib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - FEB6746C0D2F2909006EE835 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/Developer/Cocotron/1.0/bin/retargetBundle -framework Foundation -framework AppKit -destination $TARGET_BUILD_DIR\"/\"$EXECUTABLE_FOLDER_PATH\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D15AC300486D014006FF6A4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */, - 8D15AC320486D014006FF6A4 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEF2CA150B35153A005449C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEF2CA160B35153A005449C7 /* MyDocument.m in Sources */, - FEF2CA170B35153A005449C7 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE7135E50B370EDC006C9493 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 8D15AC270486D014006FF6A4 /* TextEditor-Mac */; - targetProxy = FE7135E40B370EDC006C9493 /* PBXContainerItemProxy */; - }; - FE7135E70B370EDF006C9493 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = FEF2CA0F0B35153A005449C7 /* TextEditor-Windows */; - targetProxy = FE7135E60B370EDF006C9493 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 2A37F4B4FDCFA73011CA2CEA /* MyDocument.nib */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4B5FDCFA73011CA2CEA /* English */, - ); - name = MyDocument.nib; - sourceTree = ""; - }; - 2A37F4B6FDCFA73011CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4B7FDCFA73011CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; - 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */ = { - isa = PBXVariantGroup; - children = ( - 2A37F4BAFDCFA73011CA2CEA /* English */, - ); - name = Credits.rtf; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C05733C808A9546B00998B17 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = Info.plist; - MACOSX_DEPLOYMENT_TARGET = 10.3; - PRODUCT_NAME = TextEditor; - SYMROOT = build/Mac; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Deployment; - }; - C05733CC08A9546B00998B17 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Deployment; - }; - FE7135EF0B370F3A006C9493 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - PRODUCT_NAME = TextEditor; - ZERO_LINK = NO; - }; - name = Deployment; - }; - FEF2CA1B0B35153A005449C7 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = i386; - COPY_PHASE_STRIP = YES; - EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Windows"; - EXECUTABLE_SUFFIX = .exe; - FRAMEWORK_SEARCH_PATHS = /Developer/Cocotron/1.0/Windows/i386/Frameworks; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INFOPLIST_FILE = Info.plist; - OTHER_LDFLAGS = ( - "-Wl,--enable-auto-import", - "-mwindows", - ); - PREBINDING = NO; - PRODUCT_NAME = TextEditor; - SYMROOT = build/Windows; - }; - name = Deployment; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C05733C708A9546B00998B17 /* Build configuration list for PBXNativeTarget "TextEditor-Mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C05733C808A9546B00998B17 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - C05733CB08A9546B00998B17 /* Build configuration list for PBXProject "TextEditor" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C05733CC08A9546B00998B17 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FE7135EE0B370F3A006C9493 /* Build configuration list for PBXAggregateTarget "TextEditor" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE7135EF0B370F3A006C9493 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; - FEF2CA1A0B35153A005449C7 /* Build configuration list for PBXNativeTarget "TextEditor-Windows" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FEF2CA1B0B35153A005449C7 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Deployment; - }; -/* End XCConfigurationList section */ - }; - rootObject = 2A37F4A9FDCFA73011CA2CEA /* Project object */; -} diff --git a/testing/Examples/TextEditor/main.m b/testing/Examples/TextEditor/main.m deleted file mode 100644 index c2b25b4b..00000000 --- a/testing/Examples/TextEditor/main.m +++ /dev/null @@ -1,24 +0,0 @@ -/* Copyright (c) 2006 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import - -int main(int argc, char *argv[]) { - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/testing/FoundationTest/FoundationTest.xcodeproj/project.pbxproj b/testing/FoundationTest/FoundationTest.xcodeproj/project.pbxproj deleted file mode 100644 index a8400109..00000000 --- a/testing/FoundationTest/FoundationTest.xcodeproj/project.pbxproj +++ /dev/null @@ -1,417 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - FE62CBC3174F0A4200D54835 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FE62CBC2174F0A4200D54835 /* main.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE62CBDE174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE01A7EC0C5D9B6900AEA51A; - remoteInfo = "Foundation-Windows-i386"; - }; - FE62CBE0174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 6EA04A7709E57D5F0067589C; - remoteInfo = "Foundation-Linux-i386"; - }; - FE62CBE2174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 6E4D932B0A2642BD003D335C; - remoteInfo = "Foundation-Solaris-sparc"; - }; - FE62CBE4174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FED70A6B0C3B3D2C000CBE5B; - remoteInfo = "Foundation-Darwin-i386"; - }; - FE62CBE6174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FED70FB70C3C09C7000CBE5B; - remoteInfo = "Foundation-Darwin-ppc"; - }; - FE62CBE8174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE651A870FBC844C00464BFD; - remoteInfo = "Foundation-Darwin-x86_64"; - }; - FE62CBEA174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 28D487A90FE04E7100DC03EF; - remoteInfo = "Foundation-Linux-ppc"; - }; - FE62CBEC174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 15D921C0105E918000171406; - remoteInfo = "Foundation-Linux-arm"; - }; - FE62CBEE174F0A7A00D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE30A2FF10C6ED6F00A1BF7F; - remoteInfo = "Foundation-FreeBSD-i386"; - }; - FE62CBF6174F112500D54835 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FED7081C0C3B3D2C000CBE5B; - remoteInfo = "Foundation-Darwin-i386"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - FE62CBBA174F0A4200D54835 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - FE62CBBC174F0A4200D54835 /* FoundationTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = FoundationTest; sourceTree = BUILT_PRODUCTS_DIR; }; - FE62CBBF174F0A4200D54835 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - FE62CBC2174F0A4200D54835 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Foundation.xcodeproj; path = ../../Foundation/Foundation.xcodeproj; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - FE62CBB9174F0A4200D54835 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - FE62CBB3174F0A4200D54835 = { - isa = PBXGroup; - children = ( - FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */, - FE62CBC1174F0A4200D54835 /* FoundationTest */, - FE62CBBE174F0A4200D54835 /* Frameworks */, - FE62CBBD174F0A4200D54835 /* Products */, - ); - sourceTree = ""; - }; - FE62CBBD174F0A4200D54835 /* Products */ = { - isa = PBXGroup; - children = ( - FE62CBBC174F0A4200D54835 /* FoundationTest */, - ); - name = Products; - sourceTree = ""; - }; - FE62CBBE174F0A4200D54835 /* Frameworks */ = { - isa = PBXGroup; - children = ( - FE62CBBF174F0A4200D54835 /* Foundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - FE62CBC1174F0A4200D54835 /* FoundationTest */ = { - isa = PBXGroup; - children = ( - FE62CBC2174F0A4200D54835 /* main.m */, - ); - path = FoundationTest; - sourceTree = ""; - }; - FE62CBCE174F0A7700D54835 /* Products */ = { - isa = PBXGroup; - children = ( - FE62CBDF174F0A7A00D54835 /* Foundation.framework */, - FE62CBE1174F0A7A00D54835 /* Foundation.framework */, - FE62CBE3174F0A7A00D54835 /* Foundation.framework */, - FE62CBE5174F0A7A00D54835 /* Foundation.framework */, - FE62CBE7174F0A7A00D54835 /* Foundation.framework */, - FE62CBE9174F0A7A00D54835 /* Foundation.framework */, - FE62CBEB174F0A7A00D54835 /* Foundation.framework */, - FE62CBED174F0A7A00D54835 /* Foundation.framework */, - FE62CBEF174F0A7A00D54835 /* Foundation.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - FE62CBBB174F0A4200D54835 /* FoundationTest */ = { - isa = PBXNativeTarget; - buildConfigurationList = FE62CBCA174F0A4200D54835 /* Build configuration list for PBXNativeTarget "FoundationTest" */; - buildPhases = ( - FE62CBB8174F0A4200D54835 /* Sources */, - FE62CBB9174F0A4200D54835 /* Frameworks */, - FE62CBBA174F0A4200D54835 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - FE62CBF7174F112500D54835 /* PBXTargetDependency */, - ); - name = FoundationTest; - productName = FoundationTest; - productReference = FE62CBBC174F0A4200D54835 /* FoundationTest */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - FE62CBB4174F0A4200D54835 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0460; - ORGANIZATIONNAME = cocotron; - }; - buildConfigurationList = FE62CBB7174F0A4200D54835 /* Build configuration list for PBXProject "FoundationTest" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = FE62CBB3174F0A4200D54835; - productRefGroup = FE62CBBD174F0A4200D54835 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE62CBCE174F0A7700D54835 /* Products */; - ProjectRef = FE62CBCD174F0A7700D54835 /* Foundation.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - FE62CBBB174F0A4200D54835 /* FoundationTest */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE62CBDF174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBDE174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBE1174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBE0174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBE3174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBE2174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBE5174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBE4174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBE7174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBE6174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBE9174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBE8174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBEB174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBEA174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBED174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBEC174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE62CBEF174F0A7A00D54835 /* Foundation.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Foundation.framework; - remoteRef = FE62CBEE174F0A7A00D54835 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXSourcesBuildPhase section */ - FE62CBB8174F0A4200D54835 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FE62CBC3174F0A4200D54835 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE62CBF7174F112500D54835 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Foundation-Darwin-i386"; - targetProxy = FE62CBF6174F112500D54835 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - FE62CBC8174F0A4200D54835 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.8; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - FE62CBC9174F0A4200D54835 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_EXCEPTIONS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.8; - SDKROOT = macosx; - }; - name = Release; - }; - FE62CBCB174F0A4200D54835 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - FRAMEWORK_SEARCH_PATHS = "../../system/i386-apple-darwin/Frameworks"; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - LINK_WITH_STANDARD_LIBRARIES = NO; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-lSystem", - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - FE62CBCC174F0A4200D54835 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - FRAMEWORK_SEARCH_PATHS = "../../system/i386-apple-darwin/Frameworks"; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - LINK_WITH_STANDARD_LIBRARIES = NO; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-lSystem", - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - FE62CBB7174F0A4200D54835 /* Build configuration list for PBXProject "FoundationTest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE62CBC8174F0A4200D54835 /* Debug */, - FE62CBC9174F0A4200D54835 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FE62CBCA174F0A4200D54835 /* Build configuration list for PBXNativeTarget "FoundationTest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FE62CBCB174F0A4200D54835 /* Debug */, - FE62CBCC174F0A4200D54835 /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; -/* End XCConfigurationList section */ - }; - rootObject = FE62CBB4174F0A4200D54835 /* Project object */; -} diff --git a/testing/FoundationTest/FoundationTest/main.m b/testing/FoundationTest/FoundationTest/main.m deleted file mode 100644 index 172952dd..00000000 --- a/testing/FoundationTest/FoundationTest/main.m +++ /dev/null @@ -1,19 +0,0 @@ -// -// main.m -// FoundationTest -// -// Created by Christopher Lloyd on 5/23/13. -// Copyright (c) 2013 cocotron. All rights reserved. -// - -#import - -int main(int argc, const char *argv[]) { - - [NSAutoreleasePool new]; - - // insert code here... - NSLog(@"Hello, World! %p", argv); - - return 0; -} diff --git a/testing/OnyxPDFRasterizer/OnyxPDFRasterizer.m b/testing/OnyxPDFRasterizer/OnyxPDFRasterizer.m deleted file mode 100644 index e6880524..00000000 --- a/testing/OnyxPDFRasterizer/OnyxPDFRasterizer.m +++ /dev/null @@ -1,61 +0,0 @@ -#import -#import -#import -#import -#import - -void usage() { - NSLog(@"Usage: -Path "); - exit(1); -} - -int main(int argc, const char *argv[]) { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *path = - [[NSUserDefaults standardUserDefaults] stringForKey: @"Path"]; - - if (path == nil) - usage(); - - NSData *pdf = [NSData dataWithContentsOfFile: path]; - O2DataProviderRef provider = O2DataProviderCreateWithCFData(pdf); - O2PDFDocument *document = - [[O2PDFDocument alloc] initWithDataProvider: provider]; - int i, pageCount = [document pageCount]; - O2ColorSpaceRef rgbColor = O2ColorSpaceCreateDeviceRGB(); - - NSLog(@"Processing %@", path); - NSLog(@"Number of pages=%d", pageCount); - - for (i = 0; i < pageCount; i++) { - NSAutoreleasePool *autoPool = [NSAutoreleasePool new]; - O2PDFPage *page = [document pageAtNumber: i + 1]; - O2Rect mediaBox; - O2ContextRef context; - - NSLog(@"processing page %d", i); - - if (![page getRect: &mediaBox forBox: kO2PDFMediaBox]) { - NSLog(@"Unable to get media box"); - continue; - } - - context = O2BitmapContextCreate( - NULL, mediaBox.size.width, mediaBox.size.height, 8, 0, rgbColor, - kO2ImageAlphaPremultipliedFirst | kO2BitmapByteOrder32Host); - - if (context == NULL) { - NSLog(@"Unable to create context for media box %f %f", - mediaBox.size.width, mediaBox.size.height); - continue; - } - - O2ContextDrawPDFPage(context, page); - - O2ContextRelease(context); - [autoPool release]; - } - - [pool drain]; - return 0; -} diff --git a/testing/OnyxPDFRasterizer/OnyxPDFRasterizer.xcodeproj/project.pbxproj b/testing/OnyxPDFRasterizer/OnyxPDFRasterizer.xcodeproj/project.pbxproj deleted file mode 100644 index 353a87c8..00000000 --- a/testing/OnyxPDFRasterizer/OnyxPDFRasterizer.xcodeproj/project.pbxproj +++ /dev/null @@ -1,587 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 8DD76F9A0486AA7600D96B5E /* OnyxPDFRasterizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* OnyxPDFRasterizer.m */; settings = {ATTRIBUTES = (); }; }; - 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08FB779EFE84155DC02AAC07 /* Foundation.framework */; }; - FE43C2521200BF0C00119833 /* O2AffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C21B1200BF0C00119833 /* O2AffineTransform.m */; }; - FE43C2531200BF0C00119833 /* O2BitmapContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C21C1200BF0C00119833 /* O2BitmapContext.m */; }; - FE43C2541200BF0C00119833 /* O2Color.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C21D1200BF0C00119833 /* O2Color.m */; }; - FE43C2551200BF0C00119833 /* O2ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C21E1200BF0C00119833 /* O2ColorSpace.m */; }; - FE43C2561200BF0C00119833 /* O2ColorSpace+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C21F1200BF0C00119833 /* O2ColorSpace+PDF.m */; }; - FE43C2571200BF0C00119833 /* O2Context_builtin.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2201200BF0C00119833 /* O2Context_builtin.m */; }; - FE43C2581200BF0C00119833 /* O2Context.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2211200BF0C00119833 /* O2Context.m */; }; - FE43C2591200BF0C00119833 /* O2DataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2221200BF0C00119833 /* O2DataProvider.m */; }; - FE43C25A1200BF0C00119833 /* O2Decoder_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2231200BF0C00119833 /* O2Decoder_TIFF.m */; }; - FE43C25B1200BF0C00119833 /* O2Encoding.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2241200BF0C00119833 /* O2Encoding.m */; }; - FE43C25C1200BF0C00119833 /* O2Font.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2251200BF0C00119833 /* O2Font.m */; }; - FE43C25D1200BF0C00119833 /* O2Font+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2261200BF0C00119833 /* O2Font+PDF.m */; }; - FE43C25E1200BF0C00119833 /* O2Function.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2271200BF0C00119833 /* O2Function.m */; }; - FE43C25F1200BF0C00119833 /* O2Function+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2281200BF0C00119833 /* O2Function+PDF.m */; }; - FE43C2601200BF0C00119833 /* O2GraphicsState.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2291200BF0C00119833 /* O2GraphicsState.m */; }; - FE43C2611200BF0C00119833 /* O2Image.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C22A1200BF0C00119833 /* O2Image.m */; }; - FE43C2621200BF0C00119833 /* O2ImageSource_BMP.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C22B1200BF0C00119833 /* O2ImageSource_BMP.m */; }; - FE43C2631200BF0C00119833 /* O2ImageSource_GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C22C1200BF0C00119833 /* O2ImageSource_GIF.m */; }; - FE43C2641200BF0C00119833 /* O2ImageSource_ICNS.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C22D1200BF0C00119833 /* O2ImageSource_ICNS.m */; }; - FE43C2651200BF0C00119833 /* O2ImageSource_JPEG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C22E1200BF0C00119833 /* O2ImageSource_JPEG.m */; }; - FE43C2661200BF0C00119833 /* O2ImageSource_PNG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C22F1200BF0C00119833 /* O2ImageSource_PNG.m */; }; - FE43C2671200BF0C00119833 /* O2ImageSource_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2301200BF0C00119833 /* O2ImageSource_TIFF.m */; }; - FE43C2681200BF0C00119833 /* O2ImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2311200BF0C00119833 /* O2ImageSource.m */; }; - FE43C2691200BF0C00119833 /* O2Paint_color.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2321200BF0C00119833 /* O2Paint_color.m */; }; - FE43C26A1200BF0C00119833 /* O2Paint_image.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2331200BF0C00119833 /* O2Paint_image.m */; }; - FE43C26B1200BF0D00119833 /* O2Paint_pattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2341200BF0C00119833 /* O2Paint_pattern.m */; }; - FE43C26C1200BF0D00119833 /* O2Paint_ramp.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2351200BF0C00119833 /* O2Paint_ramp.m */; }; - FE43C26D1200BF0D00119833 /* O2Paint.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2361200BF0C00119833 /* O2Paint.m */; }; - FE43C26E1200BF0D00119833 /* O2Path.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2371200BF0C00119833 /* O2Path.m */; }; - FE43C26F1200BF0D00119833 /* O2Pattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2381200BF0C00119833 /* O2Pattern.m */; }; - FE43C2701200BF0D00119833 /* O2PDFArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2391200BF0C00119833 /* O2PDFArray.m */; }; - FE43C2711200BF0D00119833 /* O2PDFBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C23A1200BF0C00119833 /* O2PDFBlock.m */; }; - FE43C2721200BF0D00119833 /* O2PDFCharWidths.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C23B1200BF0C00119833 /* O2PDFCharWidths.m */; }; - FE43C2731200BF0D00119833 /* O2PDFContentStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C23C1200BF0C00119833 /* O2PDFContentStream.m */; }; - FE43C2741200BF0D00119833 /* O2PDFContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C23D1200BF0C00119833 /* O2PDFContext.m */; }; - FE43C2751200BF0D00119833 /* O2PDFDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C23E1200BF0C00119833 /* O2PDFDictionary.m */; }; - FE43C2761200BF0D00119833 /* O2PDFDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C23F1200BF0C00119833 /* O2PDFDocument.m */; }; - FE43C2771200BF0D00119833 /* O2PDFFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2401200BF0C00119833 /* O2PDFFilter.m */; }; - FE43C2781200BF0D00119833 /* O2PDFFunction_Type0.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2411200BF0C00119833 /* O2PDFFunction_Type0.m */; }; - FE43C2791200BF0D00119833 /* O2PDFFunction_Type2.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2421200BF0C00119833 /* O2PDFFunction_Type2.m */; }; - FE43C27A1200BF0D00119833 /* O2PDFFunction_Type3.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2431200BF0C00119833 /* O2PDFFunction_Type3.m */; }; - FE43C27B1200BF0D00119833 /* O2PDFFunction_Type4.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2441200BF0C00119833 /* O2PDFFunction_Type4.m */; }; - FE43C27C1200BF0D00119833 /* O2PDFObject_const.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2451200BF0C00119833 /* O2PDFObject_const.m */; }; - FE43C27D1200BF0D00119833 /* O2PDFObject_Name.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2461200BF0C00119833 /* O2PDFObject_Name.m */; }; - FE43C27E1200BF0D00119833 /* O2PDFObject_Real.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2471200BF0C00119833 /* O2PDFObject_Real.m */; }; - FE43C27F1200BF0D00119833 /* O2PDFObject.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2481200BF0C00119833 /* O2PDFObject.m */; }; - FE43C2801200BF0D00119833 /* O2PDFOperators.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2491200BF0C00119833 /* O2PDFOperators.m */; }; - FE43C2811200BF0D00119833 /* O2PDFOperatorTable.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C24A1200BF0C00119833 /* O2PDFOperatorTable.m */; }; - FE43C2821200BF0D00119833 /* O2PDFPage.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C24B1200BF0C00119833 /* O2PDFPage.m */; }; - FE43C2831200BF0D00119833 /* O2PDFScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C24C1200BF0C00119833 /* O2PDFScanner.m */; }; - FE43C2841200BF0D00119833 /* O2PDFStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C24D1200BF0C00119833 /* O2PDFStream.m */; }; - FE43C2851200BF0D00119833 /* O2PDFString.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C24E1200BF0C00119833 /* O2PDFString.m */; }; - FE43C2861200BF0D00119833 /* O2Shading+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C24F1200BF0C00119833 /* O2Shading+PDF.m */; }; - FE43C2871200BF0D00119833 /* O2Surface.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2501200BF0C00119833 /* O2Surface.m */; }; - FE43C2881200BF0D00119833 /* O2TTFDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2511200BF0C00119833 /* O2TTFDecoder.m */; }; - FE43C2A41200BFBA00119833 /* O2ClipPhase.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2921200BFBA00119833 /* O2ClipPhase.m */; }; - FE43C2A51200BFBA00119833 /* O2DataConsumer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2931200BFBA00119833 /* O2DataConsumer.m */; }; - FE43C2A61200BFBA00119833 /* O2Encoder_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2941200BFBA00119833 /* O2Encoder_TIFF.m */; }; - FE43C2A71200BFBA00119833 /* O2Geometry.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2951200BFBA00119833 /* O2Geometry.m */; }; - FE43C2A81200BFBA00119833 /* O2ImageDestination.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2961200BFBA00119833 /* O2ImageDestination.m */; }; - FE43C2A91200BFBA00119833 /* O2Layer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2971200BFBA00119833 /* O2Layer.m */; }; - FE43C2AA1200BFBA00119833 /* O2LZW.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2981200BFBA00119833 /* O2LZW.m */; }; - FE43C2AB1200BFBA00119833 /* O2MutablePath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2991200BFBA00119833 /* O2MutablePath.m */; }; - FE43C2AC1200BFBA00119833 /* O2Paint_axialGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C29A1200BFBA00119833 /* O2Paint_axialGradient.m */; }; - FE43C2AD1200BFBA00119833 /* O2Paint_radialGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C29B1200BFBA00119833 /* O2Paint_radialGradient.m */; }; - FE43C2AE1200BFBA00119833 /* O2PDFObject_Boolean.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C29C1200BFBA00119833 /* O2PDFObject_Boolean.m */; }; - FE43C2AF1200BFBA00119833 /* O2PDFObject_identifier.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C29D1200BFBA00119833 /* O2PDFObject_identifier.m */; }; - FE43C2B01200BFBA00119833 /* O2PDFObject_Integer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C29E1200BFBA00119833 /* O2PDFObject_Integer.m */; }; - FE43C2B11200BFBA00119833 /* O2PDFxref.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C29F1200BFBA00119833 /* O2PDFxref.m */; }; - FE43C2B21200BFBA00119833 /* O2PDFxrefEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2A01200BFBA00119833 /* O2PDFxrefEntry.m */; }; - FE43C2B31200BFBA00119833 /* O2TIFFImageDirectory.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2A11200BFBA00119833 /* O2TIFFImageDirectory.m */; }; - FE43C2B41200BFBA00119833 /* O2zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2A21200BFBA00119833 /* O2zlib.m */; }; - FE43C2B51200BFBA00119833 /* VGPath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2A31200BFBA00119833 /* VGPath.m */; }; - FE43C2B71200BFCD00119833 /* gif_lib.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2B61200BFCD00119833 /* gif_lib.m */; }; - FE43C2BB1200BFFA00119833 /* O2Shading.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2BA1200BFFA00119833 /* O2Shading.m */; }; - FE43C2BF1200C01200119833 /* O2PDFObject_R.m in Sources */ = {isa = PBXBuildFile; fileRef = FE43C2BE1200C01200119833 /* O2PDFObject_R.m */; }; - FEB468BC1200C1410028464C /* O2Image+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB468BB1200C1410028464C /* O2Image+PDF.m */; }; - FEB468C11200C1580028464C /* O2PDFFont.m in Sources */ = {isa = PBXBuildFile; fileRef = FEB468C01200C1580028464C /* O2PDFFont.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE43C08F12006CD400119833 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "Onyx2D-Windows-i386"; - }; - FE43C09112006CD400119833 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0CA61162A99A00065D1C; - remoteInfo = "Onyx2D-Linux-i386"; - }; - FE43C09312006CD400119833 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0D461162A9AB00065D1C; - remoteInfo = "Onyx2D-FreeBSD-i386"; - }; - FE43C09512006CD400119833 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0D571162A9D600065D1C; - remoteInfo = "Onyx2D-MacOS"; - }; - FE43C09912006CF500119833 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE5C0D561162A9D600065D1C; - remoteInfo = "Onyx2D-MacOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 8DD76F9E0486AA7600D96B5E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 08FB7796FE84155DC02AAC07 /* OnyxPDFRasterizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OnyxPDFRasterizer.m; sourceTree = ""; }; - 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8DD76FA10486AA7600D96B5E /* OnyxPDFRasterizer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = OnyxPDFRasterizer; sourceTree = BUILT_PRODUCTS_DIR; }; - FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Onyx2D.xcodeproj; path = ../../Onyx2D/Onyx2D.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE43C0E8120070EB00119833 /* Onyx2D.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Onyx2D.framework; path = Cocotron/MacOS/Frameworks/Onyx2D.framework; sourceTree = DEVELOPER_DIR; }; - FE43C21B1200BF0C00119833 /* O2AffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2AffineTransform.m; path = ../../Onyx2D/O2AffineTransform.m; sourceTree = SOURCE_ROOT; }; - FE43C21C1200BF0C00119833 /* O2BitmapContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2BitmapContext.m; path = ../../Onyx2D/O2BitmapContext.m; sourceTree = SOURCE_ROOT; }; - FE43C21D1200BF0C00119833 /* O2Color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Color.m; path = ../../Onyx2D/O2Color.m; sourceTree = SOURCE_ROOT; }; - FE43C21E1200BF0C00119833 /* O2ColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ColorSpace.m; path = ../../Onyx2D/O2ColorSpace.m; sourceTree = SOURCE_ROOT; }; - FE43C21F1200BF0C00119833 /* O2ColorSpace+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2ColorSpace+PDF.m"; path = "../../Onyx2D/O2ColorSpace+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE43C2201200BF0C00119833 /* O2Context_builtin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Context_builtin.m; path = ../../Onyx2D/O2Context_builtin.m; sourceTree = SOURCE_ROOT; }; - FE43C2211200BF0C00119833 /* O2Context.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Context.m; path = ../../Onyx2D/O2Context.m; sourceTree = SOURCE_ROOT; }; - FE43C2221200BF0C00119833 /* O2DataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2DataProvider.m; path = ../../Onyx2D/O2DataProvider.m; sourceTree = SOURCE_ROOT; }; - FE43C2231200BF0C00119833 /* O2Decoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Decoder_TIFF.m; path = ../../Onyx2D/O2Decoder_TIFF.m; sourceTree = SOURCE_ROOT; }; - FE43C2241200BF0C00119833 /* O2Encoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Encoding.m; path = ../../Onyx2D/O2Encoding.m; sourceTree = SOURCE_ROOT; }; - FE43C2251200BF0C00119833 /* O2Font.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Font.m; path = ../../Onyx2D/O2Font.m; sourceTree = SOURCE_ROOT; }; - FE43C2261200BF0C00119833 /* O2Font+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Font+PDF.m"; path = "../../Onyx2D/O2Font+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE43C2271200BF0C00119833 /* O2Function.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Function.m; path = ../../Onyx2D/O2Function.m; sourceTree = SOURCE_ROOT; }; - FE43C2281200BF0C00119833 /* O2Function+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Function+PDF.m"; path = "../../Onyx2D/O2Function+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE43C2291200BF0C00119833 /* O2GraphicsState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2GraphicsState.m; path = ../../Onyx2D/O2GraphicsState.m; sourceTree = SOURCE_ROOT; }; - FE43C22A1200BF0C00119833 /* O2Image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Image.m; path = ../../Onyx2D/O2Image.m; sourceTree = SOURCE_ROOT; }; - FE43C22B1200BF0C00119833 /* O2ImageSource_BMP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_BMP.m; path = ../../Onyx2D/O2ImageSource_BMP.m; sourceTree = SOURCE_ROOT; }; - FE43C22C1200BF0C00119833 /* O2ImageSource_GIF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_GIF.m; path = ../../Onyx2D/O2ImageSource_GIF.m; sourceTree = SOURCE_ROOT; }; - FE43C22D1200BF0C00119833 /* O2ImageSource_ICNS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_ICNS.m; path = ../../Onyx2D/O2ImageSource_ICNS.m; sourceTree = SOURCE_ROOT; }; - FE43C22E1200BF0C00119833 /* O2ImageSource_JPEG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_JPEG.m; path = ../../Onyx2D/O2ImageSource_JPEG.m; sourceTree = SOURCE_ROOT; }; - FE43C22F1200BF0C00119833 /* O2ImageSource_PNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_PNG.m; path = ../../Onyx2D/O2ImageSource_PNG.m; sourceTree = SOURCE_ROOT; }; - FE43C2301200BF0C00119833 /* O2ImageSource_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_TIFF.m; path = ../../Onyx2D/O2ImageSource_TIFF.m; sourceTree = SOURCE_ROOT; }; - FE43C2311200BF0C00119833 /* O2ImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource.m; path = ../../Onyx2D/O2ImageSource.m; sourceTree = SOURCE_ROOT; }; - FE43C2321200BF0C00119833 /* O2Paint_color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_color.m; path = ../../Onyx2D/O2Paint_color.m; sourceTree = SOURCE_ROOT; }; - FE43C2331200BF0C00119833 /* O2Paint_image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_image.m; path = ../../Onyx2D/O2Paint_image.m; sourceTree = SOURCE_ROOT; }; - FE43C2341200BF0C00119833 /* O2Paint_pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_pattern.m; path = ../../Onyx2D/O2Paint_pattern.m; sourceTree = SOURCE_ROOT; }; - FE43C2351200BF0C00119833 /* O2Paint_ramp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_ramp.m; path = ../../Onyx2D/O2Paint_ramp.m; sourceTree = SOURCE_ROOT; }; - FE43C2361200BF0C00119833 /* O2Paint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint.m; path = ../../Onyx2D/O2Paint.m; sourceTree = SOURCE_ROOT; }; - FE43C2371200BF0C00119833 /* O2Path.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Path.m; path = ../../Onyx2D/O2Path.m; sourceTree = SOURCE_ROOT; }; - FE43C2381200BF0C00119833 /* O2Pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Pattern.m; path = ../../Onyx2D/O2Pattern.m; sourceTree = SOURCE_ROOT; }; - FE43C2391200BF0C00119833 /* O2PDFArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFArray.m; path = ../../Onyx2D/O2PDFArray.m; sourceTree = SOURCE_ROOT; }; - FE43C23A1200BF0C00119833 /* O2PDFBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFBlock.m; path = ../../Onyx2D/O2PDFBlock.m; sourceTree = SOURCE_ROOT; }; - FE43C23B1200BF0C00119833 /* O2PDFCharWidths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFCharWidths.m; path = ../../Onyx2D/O2PDFCharWidths.m; sourceTree = SOURCE_ROOT; }; - FE43C23C1200BF0C00119833 /* O2PDFContentStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFContentStream.m; path = ../../Onyx2D/O2PDFContentStream.m; sourceTree = SOURCE_ROOT; }; - FE43C23D1200BF0C00119833 /* O2PDFContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFContext.m; path = ../../Onyx2D/O2PDFContext.m; sourceTree = SOURCE_ROOT; }; - FE43C23E1200BF0C00119833 /* O2PDFDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFDictionary.m; path = ../../Onyx2D/O2PDFDictionary.m; sourceTree = SOURCE_ROOT; }; - FE43C23F1200BF0C00119833 /* O2PDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFDocument.m; path = ../../Onyx2D/O2PDFDocument.m; sourceTree = SOURCE_ROOT; }; - FE43C2401200BF0C00119833 /* O2PDFFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFilter.m; path = ../../Onyx2D/O2PDFFilter.m; sourceTree = SOURCE_ROOT; }; - FE43C2411200BF0C00119833 /* O2PDFFunction_Type0.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type0.m; path = ../../Onyx2D/O2PDFFunction_Type0.m; sourceTree = SOURCE_ROOT; }; - FE43C2421200BF0C00119833 /* O2PDFFunction_Type2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type2.m; path = ../../Onyx2D/O2PDFFunction_Type2.m; sourceTree = SOURCE_ROOT; }; - FE43C2431200BF0C00119833 /* O2PDFFunction_Type3.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type3.m; path = ../../Onyx2D/O2PDFFunction_Type3.m; sourceTree = SOURCE_ROOT; }; - FE43C2441200BF0C00119833 /* O2PDFFunction_Type4.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type4.m; path = ../../Onyx2D/O2PDFFunction_Type4.m; sourceTree = SOURCE_ROOT; }; - FE43C2451200BF0C00119833 /* O2PDFObject_const.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_const.m; path = ../../Onyx2D/O2PDFObject_const.m; sourceTree = SOURCE_ROOT; }; - FE43C2461200BF0C00119833 /* O2PDFObject_Name.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Name.m; path = ../../Onyx2D/O2PDFObject_Name.m; sourceTree = SOURCE_ROOT; }; - FE43C2471200BF0C00119833 /* O2PDFObject_Real.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Real.m; path = ../../Onyx2D/O2PDFObject_Real.m; sourceTree = SOURCE_ROOT; }; - FE43C2481200BF0C00119833 /* O2PDFObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject.m; path = ../../Onyx2D/O2PDFObject.m; sourceTree = SOURCE_ROOT; }; - FE43C2491200BF0C00119833 /* O2PDFOperators.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFOperators.m; path = ../../Onyx2D/O2PDFOperators.m; sourceTree = SOURCE_ROOT; }; - FE43C24A1200BF0C00119833 /* O2PDFOperatorTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFOperatorTable.m; path = ../../Onyx2D/O2PDFOperatorTable.m; sourceTree = SOURCE_ROOT; }; - FE43C24B1200BF0C00119833 /* O2PDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFPage.m; path = ../../Onyx2D/O2PDFPage.m; sourceTree = SOURCE_ROOT; }; - FE43C24C1200BF0C00119833 /* O2PDFScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFScanner.m; path = ../../Onyx2D/O2PDFScanner.m; sourceTree = SOURCE_ROOT; }; - FE43C24D1200BF0C00119833 /* O2PDFStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFStream.m; path = ../../Onyx2D/O2PDFStream.m; sourceTree = SOURCE_ROOT; }; - FE43C24E1200BF0C00119833 /* O2PDFString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFString.m; path = ../../Onyx2D/O2PDFString.m; sourceTree = SOURCE_ROOT; }; - FE43C24F1200BF0C00119833 /* O2Shading+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Shading+PDF.m"; path = "../../Onyx2D/O2Shading+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE43C2501200BF0C00119833 /* O2Surface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Surface.m; path = ../../Onyx2D/O2Surface.m; sourceTree = SOURCE_ROOT; }; - FE43C2511200BF0C00119833 /* O2TTFDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2TTFDecoder.m; path = ../../Onyx2D/O2TTFDecoder.m; sourceTree = SOURCE_ROOT; }; - FE43C2921200BFBA00119833 /* O2ClipPhase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ClipPhase.m; path = ../../Onyx2D/O2ClipPhase.m; sourceTree = SOURCE_ROOT; }; - FE43C2931200BFBA00119833 /* O2DataConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2DataConsumer.m; path = ../../Onyx2D/O2DataConsumer.m; sourceTree = SOURCE_ROOT; }; - FE43C2941200BFBA00119833 /* O2Encoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Encoder_TIFF.m; path = ../../Onyx2D/O2Encoder_TIFF.m; sourceTree = SOURCE_ROOT; }; - FE43C2951200BFBA00119833 /* O2Geometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Geometry.m; path = ../../Onyx2D/O2Geometry.m; sourceTree = SOURCE_ROOT; }; - FE43C2961200BFBA00119833 /* O2ImageDestination.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageDestination.m; path = ../../Onyx2D/O2ImageDestination.m; sourceTree = SOURCE_ROOT; }; - FE43C2971200BFBA00119833 /* O2Layer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Layer.m; path = ../../Onyx2D/O2Layer.m; sourceTree = SOURCE_ROOT; }; - FE43C2981200BFBA00119833 /* O2LZW.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2LZW.m; path = ../../Onyx2D/O2LZW.m; sourceTree = SOURCE_ROOT; }; - FE43C2991200BFBA00119833 /* O2MutablePath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2MutablePath.m; path = ../../Onyx2D/O2MutablePath.m; sourceTree = SOURCE_ROOT; }; - FE43C29A1200BFBA00119833 /* O2Paint_axialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_axialGradient.m; path = ../../Onyx2D/O2Paint_axialGradient.m; sourceTree = SOURCE_ROOT; }; - FE43C29B1200BFBA00119833 /* O2Paint_radialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_radialGradient.m; path = ../../Onyx2D/O2Paint_radialGradient.m; sourceTree = SOURCE_ROOT; }; - FE43C29C1200BFBA00119833 /* O2PDFObject_Boolean.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Boolean.m; path = ../../Onyx2D/O2PDFObject_Boolean.m; sourceTree = SOURCE_ROOT; }; - FE43C29D1200BFBA00119833 /* O2PDFObject_identifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_identifier.m; path = ../../Onyx2D/O2PDFObject_identifier.m; sourceTree = SOURCE_ROOT; }; - FE43C29E1200BFBA00119833 /* O2PDFObject_Integer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Integer.m; path = ../../Onyx2D/O2PDFObject_Integer.m; sourceTree = SOURCE_ROOT; }; - FE43C29F1200BFBA00119833 /* O2PDFxref.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFxref.m; path = ../../Onyx2D/O2PDFxref.m; sourceTree = SOURCE_ROOT; }; - FE43C2A01200BFBA00119833 /* O2PDFxrefEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFxrefEntry.m; path = ../../Onyx2D/O2PDFxrefEntry.m; sourceTree = SOURCE_ROOT; }; - FE43C2A11200BFBA00119833 /* O2TIFFImageDirectory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2TIFFImageDirectory.m; path = ../../Onyx2D/O2TIFFImageDirectory.m; sourceTree = SOURCE_ROOT; }; - FE43C2A21200BFBA00119833 /* O2zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2zlib.m; path = ../../Onyx2D/O2zlib.m; sourceTree = SOURCE_ROOT; }; - FE43C2A31200BFBA00119833 /* VGPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VGPath.m; path = ../../Onyx2D/VGPath.m; sourceTree = SOURCE_ROOT; }; - FE43C2B61200BFCD00119833 /* gif_lib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = gif_lib.m; path = ../../Onyx2D/gif_lib.m; sourceTree = SOURCE_ROOT; }; - FE43C2BA1200BFFA00119833 /* O2Shading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Shading.m; path = ../../Onyx2D/O2Shading.m; sourceTree = SOURCE_ROOT; }; - FE43C2BE1200C01200119833 /* O2PDFObject_R.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_R.m; path = ../../Onyx2D/O2PDFObject_R.m; sourceTree = SOURCE_ROOT; }; - FEB468BB1200C1410028464C /* O2Image+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Image+PDF.m"; path = "../../Onyx2D/O2Image+PDF.m"; sourceTree = SOURCE_ROOT; }; - FEB468C01200C1580028464C /* O2PDFFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFont.m; path = ../../Onyx2D/O2PDFFont.m; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76F9B0486AA7600D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DD76F9C0486AA7600D96B5E /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* OnyxPDFRasterizer */ = { - isa = PBXGroup; - children = ( - FE43C21A1200BEDD00119833 /* Onyx2D */, - FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */, - 08FB7796FE84155DC02AAC07 /* OnyxPDFRasterizer.m */, - 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - name = OnyxPDFRasterizer; - sourceTree = ""; - }; - 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - FE43C0E8120070EB00119833 /* Onyx2D.framework */, - 08FB779EFE84155DC02AAC07 /* Foundation.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = ""; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8DD76FA10486AA7600D96B5E /* OnyxPDFRasterizer */, - ); - name = Products; - sourceTree = ""; - }; - FE43C06E12006CD300119833 /* Products */ = { - isa = PBXGroup; - children = ( - FE43C09012006CD400119833 /* Onyx2D.framework */, - FE43C09212006CD400119833 /* Onyx2D.framework */, - FE43C09412006CD400119833 /* Onyx2D.framework */, - FE43C09612006CD400119833 /* Onyx2D.framework */, - ); - name = Products; - sourceTree = ""; - }; - FE43C21A1200BEDD00119833 /* Onyx2D */ = { - isa = PBXGroup; - children = ( - FEB468C01200C1580028464C /* O2PDFFont.m */, - FEB468BB1200C1410028464C /* O2Image+PDF.m */, - FE43C2BE1200C01200119833 /* O2PDFObject_R.m */, - FE43C2BA1200BFFA00119833 /* O2Shading.m */, - FE43C2B61200BFCD00119833 /* gif_lib.m */, - FE43C2921200BFBA00119833 /* O2ClipPhase.m */, - FE43C2931200BFBA00119833 /* O2DataConsumer.m */, - FE43C2941200BFBA00119833 /* O2Encoder_TIFF.m */, - FE43C2951200BFBA00119833 /* O2Geometry.m */, - FE43C2961200BFBA00119833 /* O2ImageDestination.m */, - FE43C2971200BFBA00119833 /* O2Layer.m */, - FE43C2981200BFBA00119833 /* O2LZW.m */, - FE43C2991200BFBA00119833 /* O2MutablePath.m */, - FE43C29A1200BFBA00119833 /* O2Paint_axialGradient.m */, - FE43C29B1200BFBA00119833 /* O2Paint_radialGradient.m */, - FE43C29C1200BFBA00119833 /* O2PDFObject_Boolean.m */, - FE43C29D1200BFBA00119833 /* O2PDFObject_identifier.m */, - FE43C29E1200BFBA00119833 /* O2PDFObject_Integer.m */, - FE43C29F1200BFBA00119833 /* O2PDFxref.m */, - FE43C2A01200BFBA00119833 /* O2PDFxrefEntry.m */, - FE43C2A11200BFBA00119833 /* O2TIFFImageDirectory.m */, - FE43C2A21200BFBA00119833 /* O2zlib.m */, - FE43C2A31200BFBA00119833 /* VGPath.m */, - FE43C21B1200BF0C00119833 /* O2AffineTransform.m */, - FE43C21C1200BF0C00119833 /* O2BitmapContext.m */, - FE43C21D1200BF0C00119833 /* O2Color.m */, - FE43C21E1200BF0C00119833 /* O2ColorSpace.m */, - FE43C21F1200BF0C00119833 /* O2ColorSpace+PDF.m */, - FE43C2201200BF0C00119833 /* O2Context_builtin.m */, - FE43C2211200BF0C00119833 /* O2Context.m */, - FE43C2221200BF0C00119833 /* O2DataProvider.m */, - FE43C2231200BF0C00119833 /* O2Decoder_TIFF.m */, - FE43C2241200BF0C00119833 /* O2Encoding.m */, - FE43C2251200BF0C00119833 /* O2Font.m */, - FE43C2261200BF0C00119833 /* O2Font+PDF.m */, - FE43C2271200BF0C00119833 /* O2Function.m */, - FE43C2281200BF0C00119833 /* O2Function+PDF.m */, - FE43C2291200BF0C00119833 /* O2GraphicsState.m */, - FE43C22A1200BF0C00119833 /* O2Image.m */, - FE43C22B1200BF0C00119833 /* O2ImageSource_BMP.m */, - FE43C22C1200BF0C00119833 /* O2ImageSource_GIF.m */, - FE43C22D1200BF0C00119833 /* O2ImageSource_ICNS.m */, - FE43C22E1200BF0C00119833 /* O2ImageSource_JPEG.m */, - FE43C22F1200BF0C00119833 /* O2ImageSource_PNG.m */, - FE43C2301200BF0C00119833 /* O2ImageSource_TIFF.m */, - FE43C2311200BF0C00119833 /* O2ImageSource.m */, - FE43C2321200BF0C00119833 /* O2Paint_color.m */, - FE43C2331200BF0C00119833 /* O2Paint_image.m */, - FE43C2341200BF0C00119833 /* O2Paint_pattern.m */, - FE43C2351200BF0C00119833 /* O2Paint_ramp.m */, - FE43C2361200BF0C00119833 /* O2Paint.m */, - FE43C2371200BF0C00119833 /* O2Path.m */, - FE43C2381200BF0C00119833 /* O2Pattern.m */, - FE43C2391200BF0C00119833 /* O2PDFArray.m */, - FE43C23A1200BF0C00119833 /* O2PDFBlock.m */, - FE43C23B1200BF0C00119833 /* O2PDFCharWidths.m */, - FE43C23C1200BF0C00119833 /* O2PDFContentStream.m */, - FE43C23D1200BF0C00119833 /* O2PDFContext.m */, - FE43C23E1200BF0C00119833 /* O2PDFDictionary.m */, - FE43C23F1200BF0C00119833 /* O2PDFDocument.m */, - FE43C2401200BF0C00119833 /* O2PDFFilter.m */, - FE43C2411200BF0C00119833 /* O2PDFFunction_Type0.m */, - FE43C2421200BF0C00119833 /* O2PDFFunction_Type2.m */, - FE43C2431200BF0C00119833 /* O2PDFFunction_Type3.m */, - FE43C2441200BF0C00119833 /* O2PDFFunction_Type4.m */, - FE43C2451200BF0C00119833 /* O2PDFObject_const.m */, - FE43C2461200BF0C00119833 /* O2PDFObject_Name.m */, - FE43C2471200BF0C00119833 /* O2PDFObject_Real.m */, - FE43C2481200BF0C00119833 /* O2PDFObject.m */, - FE43C2491200BF0C00119833 /* O2PDFOperators.m */, - FE43C24A1200BF0C00119833 /* O2PDFOperatorTable.m */, - FE43C24B1200BF0C00119833 /* O2PDFPage.m */, - FE43C24C1200BF0C00119833 /* O2PDFScanner.m */, - FE43C24D1200BF0C00119833 /* O2PDFStream.m */, - FE43C24E1200BF0C00119833 /* O2PDFString.m */, - FE43C24F1200BF0C00119833 /* O2Shading+PDF.m */, - FE43C2501200BF0C00119833 /* O2Surface.m */, - FE43C2511200BF0C00119833 /* O2TTFDecoder.m */, - ); - name = Onyx2D; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76F960486AA7600D96B5E /* OnyxPDFRasterizer */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "OnyxPDFRasterizer" */; - buildPhases = ( - 8DD76F990486AA7600D96B5E /* Sources */, - 8DD76F9B0486AA7600D96B5E /* Frameworks */, - 8DD76F9E0486AA7600D96B5E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - FE43C09A12006CF500119833 /* PBXTargetDependency */, - ); - name = OnyxPDFRasterizer; - productInstallPath = "$(HOME)/bin"; - productName = OnyxPDFRasterizer; - productReference = 8DD76FA10486AA7600D96B5E /* OnyxPDFRasterizer */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "OnyxPDFRasterizer" */; - compatibilityVersion = "Xcode 3.1"; - hasScannedForEncodings = 1; - mainGroup = 08FB7794FE84155DC02AAC07 /* OnyxPDFRasterizer */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE43C06E12006CD300119833 /* Products */; - ProjectRef = FE43C06D12006CD300119833 /* Onyx2D.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8DD76F960486AA7600D96B5E /* OnyxPDFRasterizer */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE43C09012006CD400119833 /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE43C08F12006CD400119833 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE43C09212006CD400119833 /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE43C09112006CD400119833 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE43C09412006CD400119833 /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE43C09312006CD400119833 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE43C09612006CD400119833 /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE43C09512006CD400119833 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76F990486AA7600D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8DD76F9A0486AA7600D96B5E /* OnyxPDFRasterizer.m in Sources */, - FE43C2521200BF0C00119833 /* O2AffineTransform.m in Sources */, - FE43C2531200BF0C00119833 /* O2BitmapContext.m in Sources */, - FE43C2541200BF0C00119833 /* O2Color.m in Sources */, - FE43C2551200BF0C00119833 /* O2ColorSpace.m in Sources */, - FE43C2561200BF0C00119833 /* O2ColorSpace+PDF.m in Sources */, - FE43C2571200BF0C00119833 /* O2Context_builtin.m in Sources */, - FE43C2581200BF0C00119833 /* O2Context.m in Sources */, - FE43C2591200BF0C00119833 /* O2DataProvider.m in Sources */, - FE43C25A1200BF0C00119833 /* O2Decoder_TIFF.m in Sources */, - FE43C25B1200BF0C00119833 /* O2Encoding.m in Sources */, - FE43C25C1200BF0C00119833 /* O2Font.m in Sources */, - FE43C25D1200BF0C00119833 /* O2Font+PDF.m in Sources */, - FE43C25E1200BF0C00119833 /* O2Function.m in Sources */, - FE43C25F1200BF0C00119833 /* O2Function+PDF.m in Sources */, - FE43C2601200BF0C00119833 /* O2GraphicsState.m in Sources */, - FE43C2611200BF0C00119833 /* O2Image.m in Sources */, - FE43C2621200BF0C00119833 /* O2ImageSource_BMP.m in Sources */, - FE43C2631200BF0C00119833 /* O2ImageSource_GIF.m in Sources */, - FE43C2641200BF0C00119833 /* O2ImageSource_ICNS.m in Sources */, - FE43C2651200BF0C00119833 /* O2ImageSource_JPEG.m in Sources */, - FE43C2661200BF0C00119833 /* O2ImageSource_PNG.m in Sources */, - FE43C2671200BF0C00119833 /* O2ImageSource_TIFF.m in Sources */, - FE43C2681200BF0C00119833 /* O2ImageSource.m in Sources */, - FE43C2691200BF0C00119833 /* O2Paint_color.m in Sources */, - FE43C26A1200BF0C00119833 /* O2Paint_image.m in Sources */, - FE43C26B1200BF0D00119833 /* O2Paint_pattern.m in Sources */, - FE43C26C1200BF0D00119833 /* O2Paint_ramp.m in Sources */, - FE43C26D1200BF0D00119833 /* O2Paint.m in Sources */, - FE43C26E1200BF0D00119833 /* O2Path.m in Sources */, - FE43C26F1200BF0D00119833 /* O2Pattern.m in Sources */, - FE43C2701200BF0D00119833 /* O2PDFArray.m in Sources */, - FE43C2711200BF0D00119833 /* O2PDFBlock.m in Sources */, - FE43C2721200BF0D00119833 /* O2PDFCharWidths.m in Sources */, - FE43C2731200BF0D00119833 /* O2PDFContentStream.m in Sources */, - FE43C2741200BF0D00119833 /* O2PDFContext.m in Sources */, - FE43C2751200BF0D00119833 /* O2PDFDictionary.m in Sources */, - FE43C2761200BF0D00119833 /* O2PDFDocument.m in Sources */, - FE43C2771200BF0D00119833 /* O2PDFFilter.m in Sources */, - FE43C2781200BF0D00119833 /* O2PDFFunction_Type0.m in Sources */, - FE43C2791200BF0D00119833 /* O2PDFFunction_Type2.m in Sources */, - FE43C27A1200BF0D00119833 /* O2PDFFunction_Type3.m in Sources */, - FE43C27B1200BF0D00119833 /* O2PDFFunction_Type4.m in Sources */, - FE43C27C1200BF0D00119833 /* O2PDFObject_const.m in Sources */, - FE43C27D1200BF0D00119833 /* O2PDFObject_Name.m in Sources */, - FE43C27E1200BF0D00119833 /* O2PDFObject_Real.m in Sources */, - FE43C27F1200BF0D00119833 /* O2PDFObject.m in Sources */, - FE43C2801200BF0D00119833 /* O2PDFOperators.m in Sources */, - FE43C2811200BF0D00119833 /* O2PDFOperatorTable.m in Sources */, - FE43C2821200BF0D00119833 /* O2PDFPage.m in Sources */, - FE43C2831200BF0D00119833 /* O2PDFScanner.m in Sources */, - FE43C2841200BF0D00119833 /* O2PDFStream.m in Sources */, - FE43C2851200BF0D00119833 /* O2PDFString.m in Sources */, - FE43C2861200BF0D00119833 /* O2Shading+PDF.m in Sources */, - FE43C2871200BF0D00119833 /* O2Surface.m in Sources */, - FE43C2881200BF0D00119833 /* O2TTFDecoder.m in Sources */, - FE43C2A41200BFBA00119833 /* O2ClipPhase.m in Sources */, - FE43C2A51200BFBA00119833 /* O2DataConsumer.m in Sources */, - FE43C2A61200BFBA00119833 /* O2Encoder_TIFF.m in Sources */, - FE43C2A71200BFBA00119833 /* O2Geometry.m in Sources */, - FE43C2A81200BFBA00119833 /* O2ImageDestination.m in Sources */, - FE43C2A91200BFBA00119833 /* O2Layer.m in Sources */, - FE43C2AA1200BFBA00119833 /* O2LZW.m in Sources */, - FE43C2AB1200BFBA00119833 /* O2MutablePath.m in Sources */, - FE43C2AC1200BFBA00119833 /* O2Paint_axialGradient.m in Sources */, - FE43C2AD1200BFBA00119833 /* O2Paint_radialGradient.m in Sources */, - FE43C2AE1200BFBA00119833 /* O2PDFObject_Boolean.m in Sources */, - FE43C2AF1200BFBA00119833 /* O2PDFObject_identifier.m in Sources */, - FE43C2B01200BFBA00119833 /* O2PDFObject_Integer.m in Sources */, - FE43C2B11200BFBA00119833 /* O2PDFxref.m in Sources */, - FE43C2B21200BFBA00119833 /* O2PDFxrefEntry.m in Sources */, - FE43C2B31200BFBA00119833 /* O2TIFFImageDirectory.m in Sources */, - FE43C2B41200BFBA00119833 /* O2zlib.m in Sources */, - FE43C2B51200BFBA00119833 /* VGPath.m in Sources */, - FE43C2B71200BFCD00119833 /* gif_lib.m in Sources */, - FE43C2BB1200BFFA00119833 /* O2Shading.m in Sources */, - FE43C2BF1200C01200119833 /* O2PDFObject_R.m in Sources */, - FEB468BC1200C1410028464C /* O2Image+PDF.m in Sources */, - FEB468C11200C1580028464C /* O2PDFFont.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE43C09A12006CF500119833 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Onyx2D-MacOS"; - targetProxy = FE43C09912006CF500119833 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 1DEB927608733DD40010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = "\"$(DEVELOPER_DIR)/Cocotron/MacOS/Frameworks\""; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - INSTALL_PATH = /usr/local/bin; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = OnyxPDFRasterizer; - }; - name = Release; - }; - 1DEB927A08733DD40010E9CD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = macosx10.6; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1DEB927408733DD40010E9CD /* Build configuration list for PBXNativeTarget "OnyxPDFRasterizer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB927608733DD40010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "OnyxPDFRasterizer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1DEB927A08733DD40010E9CD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/testing/SWRender/CoreGraphics_KG.h b/testing/SWRender/CoreGraphics_KG.h deleted file mode 100644 index 07983526..00000000 --- a/testing/SWRender/CoreGraphics_KG.h +++ /dev/null @@ -1,323 +0,0 @@ -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#define ONYX2D - -#define CGFloat O2Float -#define CGRect O2Rect -#define CGPoint O2Point -#define CGSize O2Size -#define CGRectMake O2RectMake -#define CGPointMake O2PointMake -#define CGSizeMake O2SizeMake -#define CGRectGetMinX O2RectGetMinX -#define CGRectGetMaxX O2RectGetMaxX -#define CGRectGetMinY O2RectGetMinY -#define CGRectGetMaxY O2RectGetMaxY - -#define CGAffineTransform O2AffineTransform -#define CGAffineTransformIdentity O2AffineTransformIdentity -#define CGAffineTransformScale O2AffineTransformScale -#define CGAffineTransformRotate O2AffineTransformRotate -#define CGAffineTransformMakeRotation O2AffineTransformMakeRotation -#define CGAffineTransformMakeTranslation O2AffineTransformMakeTranslation -#define CGAffineTransformTranslate O2AffineTransformTranslate -#define CGAffineTransformConcat O2AffineTransformConcat -#undef CGPointApplyAffineTransform -#define CGPointApplyAffineTransform O2PointApplyAffineTransform -#define CGFunctionCallbacks O2FunctionCallbacks - -#define CGContextRef O2ContextRef -#define CGColorRef O2ColorRef -#define CGColorSpaceRef O2ColorSpaceRef -#define CGPathRef O2PathRef -#define CGMutablePathRef O2MutablePathRef -#define CGDataProviderRef O2DataProviderRef -#define CGImageRef O2ImageRef -#define CGImageSourceRef O2ImageSourceRef -#define CGPDFDocumentRef O2PDFDocument * -#define CGPDFPageRef O2PDFPage * -#define CGFunctionRef O2FunctionRef -#define CGShadingRef O2ShadingRef -#define CGFontRef O2FontRef - -#define CGContextRetain O2ContextRetain -#define CGContextRelease O2ContextRelease -#define CGContextSetAllowsAntialiasing O2ContextSetAllowsAntialiasing -#define CGContextBeginTransparencyLayer O2ContextBeginTransparencyLayer -#define CGContextEndTransparencyLayer O2ContextEndTransparencyLayer -#define CGContextIsPathEmpty O2ContextIsPathEmpty -#define CGContextGetPathCurrentPoint O2ContextGetPathCurrentPoint -#define CGContextGetPathBoundingBox O2ContextGetPathBoundingBox -#define CGContextPathContainsPoint O2ContextPathContainsPoint -#define CGContextBeginPath O2ContextBeginPath -#define CGContextClosePath O2ContextClosePath -#define CGContextMoveToPoint O2ContextMoveToPoint -#define CGContextAddLineToPoint O2ContextAddLineToPoint -#define CGContextAddCurveToPoint O2ContextAddCurveToPoint -#define CGContextAddQuadCurveToPoint O2ContextAddQuadCurveToPoint -#define CGContextAddLines O2ContextAddLines -#define CGContextAddRect O2ContextAddRect -#define CGContextAddRects O2ContextAddRects -#define CGContextAddArc O2ContextAddArc -#define CGContextAddArcToPoint O2ContextAddArcToPoint -#define CGContextAddEllipseInRect O2ContextAddEllipseInRect -#define CGContextAddPath O2ContextAddPath -#define CGContextReplacePathWithStrokedPath O2ContextReplacePathWithStrokedPath -#define CGContextSaveGState O2ContextSaveGState -#define CGContextRestoreGState O2ContextRestoreGState -#define CGContextGetUserSpaceToDeviceSpaceTransform \ - O2ContextGetUserSpaceToDeviceSpaceTransform -#define CGContextGetCTM O2ContextGetCTM -#define CGContextGetClipBoundingBox O2ContextGetClipBoundingBox -#define CGContextGetTextMatrix O2ContextGetTextMatrix -#define CGContextGetInterpolationQuality O2ContextGetInterpolationQuality -#define CGContextGetTextPosition O2ContextGetTextPosition -#define CGContextConvertPointToDeviceSpace O2ContextConvertPointToDeviceSpace -#define CGContextConvertPointToUserSpace O2ContextConvertPointToUserSpace -#define CGContextConvertSizeToDeviceSpace O2ContextConvertSizeToDeviceSpace -#define CGContextConvertSizeToUserSpace O2ContextConvertSizeToUserSpace -#define CGContextConvertRectToDeviceSpace O2ContextConvertRectToDeviceSpace -#define CGContextConvertRectToUserSpace O2ContextConvertRectToUserSpace -#define CGContextSetCTM O2ContextSetCTM -#define CGContextConcatCTM O2ContextConcatCTM -#define CGContextTranslateCTM O2ContextTranslateCTM -#define CGContextScaleCTM O2ContextScaleCTM -#define CGContextRotateCTM O2ContextRotateCTM -#define CGContextClip O2ContextClip -#define CGContextEOClip O2ContextEOClip -#define CGContextClipToMask O2ContextClipToMask -#define CGContextClipToRect O2ContextClipToRect -#define CGContextClipToRects O2ContextClipToRects -#define CGContextSetStrokeColorSpace O2ContextSetStrokeColorSpace -#define CGContextSetFillColorSpace O2ContextSetFillColorSpace -#define CGContextSetStrokeColor O2ContextSetStrokeColor -#define CGContextSetStrokeColorWithColor O2ContextSetStrokeColorWithColor -#define CGContextSetGrayStrokeColor O2ContextSetGrayStrokeColor -#define CGContextSetRGBStrokeColor O2ContextSetRGBStrokeColor -#define CGContextSetCMYKStrokeColor O2ContextSetCMYKStrokeColor -#define CGContextSetFillColor O2ContextSetFillColor -#define CGContextSetFillColorWithColor O2ContextSetFillColorWithColor -#define CGContextSetGrayFillColor O2ContextSetGrayFillColor -#define CGContextSetRGBFillColor O2ContextSetRGBFillColor -#define CGContextSetCMYKFillColor O2ContextSetCMYKFillColor -#define CGContextSetAlpha O2ContextSetAlpha -#define CGContextSetPatternPhase O2ContextSetPatternPhase -#define CGContextSetStrokePattern O2ContextSetStrokePattern -#define CGContextSetFillPattern O2ContextSetFillPattern -#define CGContextSetTextMatrix O2ContextSetTextMatrix -#define CGContextSetTextPosition O2ContextSetTextPosition -#define CGContextSetCharacterSpacing O2ContextSetCharacterSpacing -#define CGContextSetTextDrawingMode O2ContextSetTextDrawingMode -#define CGContextSetFont O2ContextSetFont -#define CGContextSetFontSize O2ContextSetFontSize -#define CGContextSelectFont O2ContextSelectFont -#define CGContextSetShouldSmoothFonts O2ContextSetShouldSmoothFonts -#define CGContextSetLineWidth O2ContextSetLineWidth -#define CGContextSetLineCap O2ContextSetLineCap -#define CGContextSetLineJoin O2ContextSetLineJoin -#define CGContextSetMiterLimit O2ContextSetMiterLimit -#define CGContextSetLineDash O2ContextSetLineDash -#define CGContextSetRenderingIntent O2ContextSetRenderingIntent -#define CGContextSetBlendMode O2ContextSetBlendMode -#define CGContextSetFlatness O2ContextSetFlatness -#define CGContextSetInterpolationQuality O2ContextSetInterpolationQuality -#define CGContextSetShadowWithColor O2ContextSetShadowWithColor -#define CGContextSetShadow O2ContextSetShadow -#define CGContextSetShouldAntialias O2ContextSetShouldAntialias -#define CGContextStrokeLineSegments O2ContextStrokeLineSegments -#define CGContextStrokeRect O2ContextStrokeRect -#define CGContextStrokeRectWithWidth O2ContextStrokeRectWithWidth -#define CGContextStrokeEllipseInRect O2ContextStrokeEllipseInRect -#define CGContextFillRect O2ContextFillRect -#define CGContextFillRects O2ContextFillRects -#define CGContextFillEllipseInRect O2ContextFillEllipseInRect -#define CGContextDrawPath O2ContextDrawPath -#define CGContextStrokePath O2ContextStrokePath -#define CGContextFillPath O2ContextFillPath -#define CGContextEOFillPath O2ContextEOFillPath -#define CGContextClearRect O2ContextClearRect -#define CGContextShowGlyphs O2ContextShowGlyphs -#define CGContextShowGlyphsAtPoint O2ContextShowGlyphsAtPoint -#define CGContextShowGlyphsWithAdvances O2ContextShowGlyphsWithAdvances -#define CGContextShowText O2ContextShowText -#define CGContextShowTextAtPoint O2ContextShowTextAtPoint -#define CGContextDrawShading O2ContextDrawShading -#define CGContextDrawImage O2ContextDrawImage -#define CGContextDrawLayerAtPoint O2ContextDrawLayerAtPoint -#define CGContextDrawLayerInRect O2ContextDrawLayerInRect -#define CGContextDrawPDFPage O2ContextDrawPDFPage -#define CGContextFlush O2ContextFlush -#define CGContextSynchronize O2ContextSynchronize -#define CGContextBeginPage O2ContextBeginPage -#define CGContextEndPage O2ContextEndPage - -// bitmap context - -#define CGBitmapContextCreate O2BitmapContextCreate -#define CGBitmapContextGetData CGBitmapContextGetData -#define CGBitmapContextGetWidth CGBitmapContextGetWidth -#define CGBitmapContextGetHeight CGBitmapContextGetHeight -#define CGBitmapContextGetBitsPerComponent CGBitmapContextGetBitsPerComponent -#define CGBitmapContextGetBytesPerRow CGBitmapContextGetBytesPerRow -#define CGBitmapContextGetColorSpace CGBitmapContextGetColorSpace -#define CGBitmapContextGetBitmapInfo CGBitmapContextGetBitmapInfo -#define CGBitmapContextGetBitsPerPixel CGBitmapContextGetBitsPerPixel -#define CGBitmapContextGetAlphaInfo CGBitmapContextGetAlphaInfo -#define CGBitmapContextCreateImage CGBitmapContextCreateImage - -// CGPath -#define CGPathRelease O2PathRelease -#define CGPathRetain O2PathRetain -#define CGPathEqualToPath O2PathEqualToPath -#define CGPathGetBoundingBox O2PathGetBoundingBox -#define CGPathGetCurrentPoint O2PathGetCurrentPoint -#define CGPathIsEmpty O2PathIsEmpty -#define CGPathIsRect O2PathIsRect -#define CGPathApply O2PathApply -#define CGPathCreateMutableCopy O2PathCreateMutableCopy -#define CGPathCreateCopy O2PathCreateCopy -#define CGPathContainsPoint O2PathContainsPoint -#define CGPathCreateMutable O2PathCreateMutable -#define CGPathMoveToPoint O2PathMoveToPoint -#define CGPathAddLineToPoint O2PathAddLineToPoint -#define CGPathAddCurveToPoint O2PathAddCurveToPoint -#define CGPathAddQuadCurveToPoint O2PathAddQuadCurveToPoint -#define CGPathCloseSubpath O2PathCloseSubpath -#define CGPathAddLines O2PathAddLines -#define CGPathAddRect O2PathAddRect -#define CGPathAddRects O2PathAddRects -#define CGPathAddArc O2PathAddArc -#define CGPathAddArcToPoint O2PathAddArcToPoint -#define CGPathAddEllipseInRect O2PathAddEllipseInRect -#define CGPathAddPath O2PathAddPath - -// CGColor - -#define CGColorRetain O2ColorRetain -#define CGColorRelease O2ColorRelease -#define CGColorCreate O2ColorCreate -#define CGColorCreateGenericGray O2ColorCreateGenericGray -#define CGColorCreateGenericRGB O2ColorCreateGenericRGB -#define CGColorCreateGenericCMYK O2ColorCreateGenericCMYK -#define CGColorCreateWithPattern O2ColorCreateWithPattern -#define CGColorCreateCopy O2ColorCreateCopy -#define CGColorCreateCopyWithAlpha O2ColorCreateCopyWithAlpha -#define CGColorEqualToColor O2ColorEqualToColor -#define CGColorGetColorSpace O2ColorGetColorSpace -#define CGColorGetNumberOfComponents O2ColorGetNumberOfComponents -#define CGColorGetComponents O2ColorGetComponents -#define CGColorGetAlpha O2ColorGetAlpha -#define CGColorGetPattern O2ColorGetPattern - -// CGPattern -#define CGPatternRef O2PatternRef -#define kCGPatternTilingNoDistortion kO2PatternTilingNoDistortion -#define CGPatternCallbacks O2PatternCallbacks - -#define CGPatternCreate O2PatternCreate -#define CGPatternRetain O2PatternRetain -#define CGPatternRelease O2PatternRelease - -// CGColorSpace - -#define CGColorSpaceCreateDeviceRGB O2ColorSpaceCreateDeviceRGB -#define CGColorSpaceCreateDeviceGray O2ColorSpaceCreateDeviceGray -#define CGColorSpaceCreateDeviceCMYK O2ColorSpaceCreateDeviceCMYK -#define CGColorSpaceCreatePattern O2ColorSpaceCreatePattern -#define CGColorSpaceRelease O2ColorSpaceRelease - -// CGImage - -#define CGImageRetain O2ImageRetain -#define CGImageRelease O2ImageRelease -#define CGImageCreate O2ImageCreate -#define CGImageMaskCreate O2ImageMaskCreate -#define CGImageCreateCopy O2ImageCreateCopy -#define CGImageCreateCopyWithColorSpace O2ImageCreateCopyWithColorSpace -#define CGImageCreateWithImageInRect O2ImageCreateWithImageInRect -#define CGImageCreateWithJPEGDataProvider O2ImageCreateWithJPEGDataProvider -#define CGImageCreateWithPNGDataProvider O2ImageCreateWithPNGDataProvider -#define CGImageCreateWithMask O2ImageCreateWithMask -#define CGImageCreateWithMaskingColors O2ImageCreateWithMaskingColors - -#define CGImageGetWidth O2ImageGetWidth -#define CGImageGetHeight O2ImageGetHeight -#define CGImageGetBitsPerComponent O2ImageGetBitsPerComponent -#define CGImageGetBitsPerPixel O2ImageGetBitsPerPixel -#define CGImageGetBytesPerRow O2ImageGetBytesPerRow -#define CGImageGetColorSpace O2ImageGetColorSpace -#define CGImageGetBitmapInfo O2ImageGetBitmapInfo -#define CGImageGetDataProvider O2ImageGetDataProvider -#define CGImageGetDecode O2ImageGetDecode -#define CGImageGetShouldInterpolate O2ImageGetShouldInterpolate -#define CGImageGetRenderingIntent O2ImageGetRenderingIntent -#define CGImageIsMask O2ImageIsMask -#define CGImageGetAlphaInfo O2ImageGetAlphaInfo - -// data provider - -#define CGDataProviderCreateWithData O2DataProviderCreateWithData -#define CGDataProviderCreateWithCFData O2DataProviderCreateWithCFData -#define CGDataProviderCreateWithURL O2DataProviderCreateWithURL - -#define CGImageDestinationRef O2ImageDestinationRef -#define CGImageDestinationCreateWithData O2ImageDestinationCreateWithData -#define CGImageDestinationAddImage O2ImageDestinationAddImage -#define CGImageDestinationFinalize O2ImageDestinationFinalize - -// image source - -#define CGImageSourceCreateWithData(data, opts) \ - [O2ImageSource newImageSourceWithData: data options: opts] - -#define CGImageSourceCreateImageAtIndex(self, index, opts) \ - [self createImageAtIndex: index options: opts] - -// pdf document - -#define CGPDFDocumentRetain(self) [self retain] - -#define CGPDFDocumentRelease(self) [self release] - -#define CGPDFDocumentCreateWithProvider(provider) \ - [[O2PDFDocument alloc] initWithDataProvider: provider] - -#define CGPDFDocumentGetNumberOfPages(self) [self pageCount] - -#define CGPDFDocumentGetPage(self, pageNumber) [self pageAtNumber: pageNumber] - -// pdf page - -#define CGPDFPageRetain(self) [self retain] - -#define CGPDFPageRelease(self) [self release] - -// shadings -#define CGFunctionCreate O2FunctionCreate - -#define CGShadingCreateAxial O2ShadingCreateAxial -#define CGShadingCreateRadial O2ShadingCreateRadial - -#define CGShadingRelease O2ShadingRelease -#define CGFunctionRelease O2FunctionRelease - -#define CGFontCreateWithDataProvider O2FontCreateWithDataProvider -#define CGFontGetGlyphWithGlyphName O2FontGetGlyphWithGlyphName - -#define CGDataProviderCreateWithFilename O2DataProviderCreateWithFilename -#define CGDataProviderRetain O2DataProviderRetain -#define CGDataProviderRelease O2DataProviderRelease diff --git a/testing/SWRender/DemoCGContext.m b/testing/SWRender/DemoCGContext.m deleted file mode 100644 index 2750ee7b..00000000 --- a/testing/SWRender/DemoCGContext.m +++ /dev/null @@ -1,3 +0,0 @@ -#define DEMONAME(x) DemoCG##x -#define USING_QUARTZ2D 1 -#import "DemosTemplate.m" diff --git a/testing/SWRender/DemoContext.h b/testing/SWRender/DemoContext.h deleted file mode 100644 index 8b5cdcf8..00000000 --- a/testing/SWRender/DemoContext.h +++ /dev/null @@ -1,41 +0,0 @@ -#import - -@interface DemoContext : NSObject - -@end - -@interface DemoContext (subclass) - -- (size_t) pixelsWide; -- (size_t) pixelsHigh; -- (size_t) bitsPerComponent; -- (size_t) bitsPerPixel; -- (size_t) bytesPerRow; -- (CGBitmapInfo) bitmapInfo; -- (void *) bytes; - -- (void) setStrokeColor: (float) r: (float) g:(float) b:(float) a; -- (void) setFillColor: (float) r: (float) g:(float) b:(float) a; -- (void) setBlendMode: (CGBlendMode) mode; -- (void) setShadowBlur: (float) value; -- (void) setShadowOffsetX: (float) value; -- (void) setShadowOffsetY: (float) value; -- (void) setShadowColor: (float) r: (float) g:(float) b:(float) a; -- (void) setPathDrawingMode: (CGPathDrawingMode) mode; -- (void) setLineWidth: (float) width; -- (void) setDashPhase: (float) phase; -- (void) setDashLength: (float) value; -- (void) setFlatness: (float) value; -- (void) setScaleX: (float) value; -- (void) setScaleY: (float) value; -- (void) setRotation: (float) value; -- (void) setShouldAntialias: (BOOL) value; -- (void) setInterpolationQuality: (CGInterpolationQuality) value; -- (void) setImageData: (NSData *) data; -- (void) setPDFData: (NSData *) data; - -- (void) drawClassic; -- (void) drawBitmapImageRep; -- (void) drawPDF; - -@end diff --git a/testing/SWRender/DemoContext.m b/testing/SWRender/DemoContext.m deleted file mode 100644 index 0bbe322f..00000000 --- a/testing/SWRender/DemoContext.m +++ /dev/null @@ -1,4 +0,0 @@ -#import "DemoContext.h" - -@implementation DemoContext -@end diff --git a/testing/SWRender/DemoKGContext.m b/testing/SWRender/DemoKGContext.m deleted file mode 100644 index 8326da43..00000000 --- a/testing/SWRender/DemoKGContext.m +++ /dev/null @@ -1,3 +0,0 @@ -#import "CoreGraphics_KG.h" -#define DEMONAME(x) DemoKG##x -#import "DemosTemplate.m" diff --git a/testing/SWRender/DemosTemplate.m b/testing/SWRender/DemosTemplate.m deleted file mode 100644 index b306108d..00000000 --- a/testing/SWRender/DemosTemplate.m +++ /dev/null @@ -1,760 +0,0 @@ -#import "DemoContext.h" - -@interface DEMONAME (Context) : DemoContext -{ - int _pixelsWide; - int _pixelsHigh; - int _bitsPerComponent; - int _bitsPerPixel; - int _bytesPerRow; - CGColorSpaceRef _colorSpace; - CGBitmapInfo _bitmapInfo; - void *_data; - CGContextRef _context; - - CGColorRef _fillColor; - CGColorRef _strokeColor; - CGPathDrawingMode _pathDrawingMode; - BOOL _shouldAntialias; - CGInterpolationQuality _interpolationQuality; - float _scalex; - float _scaley; - float _rotation; - CGBlendMode _blendMode; - CGColorRef _shadowColor; - float _shadowBlur; - CGSize _shadowOffset; - float _lineWidth; - CGLineCap _lineCap; - CGLineJoin _lineJoin; - float _miterLimit; - float _dashPhase; - unsigned _dashLengthsCount; - float *_dashLengths; - float _flatness; - - CGFontRef _font; - CGImageRef _resamplingImage; - CGPDFDocumentRef _pdfDocument; -} -@end - -@implementation DEMONAME (Context) - -static CGColorRef createCGColor(float r, float g, float b, float a) { - float rgba[4] = {r, g, b, a}; - - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGColorRef result = CGColorCreate(colorSpace, rgba); - - CGColorSpaceRelease(colorSpace); - - return result; -} - -- init { - _pixelsWide = 400; - _pixelsHigh = 400; - _bitsPerComponent = 8; - _bitsPerPixel = 32; - _bytesPerRow = (_pixelsWide * _bitsPerPixel) / 8; - _colorSpace = CGColorSpaceCreateDeviceRGB(); - _bitmapInfo = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little; - _data = NSZoneMalloc(NULL, _bytesPerRow * _pixelsHigh); - _context = CGBitmapContextCreate(_data, _pixelsWide, _pixelsHigh, - _bitsPerComponent, _bytesPerRow, - _colorSpace, _bitmapInfo); - - NSLog(@"%s %d", __FILE__, __LINE__); - _fillColor = createCGColor(0, 0, 1, 1); - _strokeColor = createCGColor(1, 0, 0, 1); - _pathDrawingMode = kCGPathStroke; - _shouldAntialias = YES; - _interpolationQuality = kCGInterpolationLow; - _scalex = 1; - _scaley = 1; - _rotation = 0; - _blendMode = kCGBlendModeNormal; - _shadowColor = createCGColor(0, 0, 0, 1); - _shadowBlur = 1; - _shadowOffset = CGSizeMake(10, 10); - _lineWidth = 1; - _lineCap = kCGLineCapButt; - _lineJoin = kCGLineJoinMiter; - _miterLimit = 1; - _dashPhase = 100; - _dashLengthsCount = 0; - _dashLengths = NSZoneMalloc([self zone], sizeof(float) * 4); - NSLog(@"%s %d", __FILE__, __LINE__); - - CGDataProviderRef provider = CGDataProviderCreateWithFilename( - "/Library/Fonts/Times New Roman.ttf"); - - if (provider == NULL) - NSLog(@"PROVIDER FAILED"); - - if ((_font = CGFontCreateWithDataProvider(provider)) == NULL) - NSLog(@"FONT FAILED"); - - CGDataProviderRelease(provider); - - NSString *path = - [[NSBundle bundleForClass: [self class]] pathForResource: @"pattern" - ofType: @"jpg"]; - // NSString *path=[[NSBundle bundleForClass:[self class]] - // pathForResource:@"redLZWSquare" ofType:@"tif"]; - NSData *data = [NSData dataWithContentsOfFile: path]; - CGImageSourceRef source = - CGImageSourceCreateWithData((CFDataRef) data, nil); - _resamplingImage = CGImageSourceCreateImageAtIndex(source, 0, nil); - NSLog(@"%s %d", __FILE__, __LINE__); - [(id) source release]; - NSMutableData *tiff = [NSMutableData data]; - CGImageDestinationRef destination = CGImageDestinationCreateWithData( - (CFMutableDataRef) tiff, (CFStringRef) @"public.tiff", 1, NULL); - CGImageDestinationAddImage(destination, _resamplingImage, NULL); -#if 0 - CGImageDestinationFinalize(destination); - NSLog(@"%s %d",__FILE__,__LINE__); - -#ifdef ONYX2D - [tiff writeToFile:@"/tmp/o2.tiff" atomically:YES]; -#else - [tiff writeToFile:@"/tmp/cg.tiff" atomically:YES]; -#endif -#endif - - NSLog(@"%s %d", __FILE__, __LINE__); - -#if 0 - if(![_resamplingImage isKindOfClass:NSClassFromString(@"O2Image")]) - NSLog(@"IMAGE data=%@",CGDataProviderCopyData(CGImageGetDataProvider(_resamplingImage))); -#endif - if (_resamplingImage == nil) - NSLog(@"no image! path=%@ %d", path, [data length]); - NSLog(@"%s %d", __FILE__, __LINE__); - return self; -} - -- (void) dealloc { - NSZoneFree(NULL, _data); - CGContextRelease(_context); - NSZoneFree(NULL, self); - [super dealloc]; -} - -- (size_t) pixelsWide { - return _pixelsWide; -} - -- (size_t) pixelsHigh { - return _pixelsHigh; -} - -- (size_t) bitsPerComponent { - return _bitsPerComponent; -} - -- (size_t) bitsPerPixel { - return _bitsPerPixel; -} - -- (size_t) bytesPerRow { - return _bytesPerRow; -} - -- (CGBitmapInfo) bitmapInfo { - return _bitmapInfo; -} - -- (void *) bytes { - return _data; -} - -- (void) setStrokeColor: (float) r: (float) g:(float) b:(float) a { - CGColorRelease(_strokeColor); - _strokeColor = createCGColor(r, g, b, a); -} - -- (void) setFillColor: (float) r: (float) g:(float) b:(float) a { - CGColorRelease(_fillColor); - _fillColor = createCGColor(r, g, b, a); -} - -- (void) setBlendMode: (CGBlendMode) mode { - _blendMode = mode; -} - -- (void) setShadowBlur: (float) value { - _shadowBlur = value; -} - -- (void) setShadowOffsetX: (float) value { - _shadowOffset.width = value; -} -- (void) setShadowOffsetY: (float) value { - _shadowOffset.height = value; -} - -- (void) setShadowColor: (float) r: (float) g:(float) b:(float) a { - CGColorRelease(_shadowColor); - _shadowColor = createCGColor(r, g, b, a); -} - -- (void) setPathDrawingMode: (CGPathDrawingMode) mode { - _pathDrawingMode = mode; -} - -- (void) setLineWidth: (float) width { - _lineWidth = width; -} - -- (void) setDashPhase: (float) phase { - _dashPhase = phase; -} - -- (void) setDashLength: (float) value { - if (value < 1) - _dashLengthsCount = 0; - else { - int i; - - _dashLengthsCount = 4; - for (i = 0; i < 4; i++) - _dashLengths[i] = value * (i + 1); - } -} - -- (void) setFlatness: (float) value { - _flatness = value; -} - -- (void) setScaleX: (float) value { - _scalex = value; -} - -- (void) setScaleY: (float) value { - _scaley = value; -} - -- (void) setRotation: (float) value { - _rotation = value; -} - -- (void) setShouldAntialias: (BOOL) value { - _shouldAntialias = value; -} - -- (void) setInterpolationQuality: (CGInterpolationQuality) value { - _interpolationQuality = value; -} - -- (void) setImageData: (NSData *) data { - CGImageSourceRef source = - CGImageSourceCreateWithData((CFDataRef) data, nil); - _resamplingImage = CGImageSourceCreateImageAtIndex(source, 0, nil); -} - -- (void) setPDFData: (NSData *) data { - if (_pdfDocument != NULL) - CGPDFDocumentRelease(_pdfDocument); - - CGDataProviderRef provider = - CGDataProviderCreateWithCFData((CFDataRef) data); - - _pdfDocument = CGPDFDocumentCreateWithProvider(provider); - CGDataProviderRelease(provider); -} - -- (CGAffineTransform) ctm { - CGAffineTransform ctm = CGAffineTransformMakeTranslation(400 / 2, 400 / 2); - - ctm = CGAffineTransformScale(ctm, _scalex, _scaley); - - return CGAffineTransformRotate(ctm, M_PI * _rotation / 180.0); -} - -- (void) establishContextState { - CGContextSetShouldAntialias(_context, _shouldAntialias); - CGContextSetBlendMode(_context, _blendMode); - CGContextSetFillColorWithColor(_context, _fillColor); - CGContextSetStrokeColorWithColor(_context, _strokeColor); - CGContextSetLineWidth(_context, _lineWidth); - CGContextSetLineCap(_context, _lineCap); - CGContextSetLineJoin(_context, _lineJoin); - CGContextSetMiterLimit(_context, _miterLimit); - CGContextSetLineDash(_context, _dashPhase, _dashLengths, _dashLengthsCount); - CGContextSetFlatness(_context, _flatness); - CGContextSetInterpolationQuality(_context, _interpolationQuality); -} - -static void addSliceToPath(CGMutablePathRef path, float innerRadius, - float outerRadius, float startAngle, float endAngle) -{ - CGPoint point; - - point = CGPointApplyAffineTransform( - CGPointMake(outerRadius, 0), - CGAffineTransformMakeRotation(startAngle)); - CGPathMoveToPoint(path, NULL, point.x, point.y); - CGPathAddArc(path, NULL, 0, 0, outerRadius, startAngle, endAngle, NO); - point = CGPointApplyAffineTransform( - CGPointMake(innerRadius, 0), - CGAffineTransformMakeRotation(endAngle)); - CGPathAddLineToPoint(path, NULL, point.x, point.y); - CGPathAddArc(path, NULL, 0, 0, innerRadius, endAngle, startAngle, YES); - CGPathCloseSubpath(path); -} - -- (void) drawClassic { - CGAffineTransform xform = [self ctm]; - CGMutablePathRef path = CGPathCreateMutable(); - - addSliceToPath(path, 50, 100, M_PI * 30 / 180.0, M_PI * 330 / 180.0); - - addSliceToPath(path, 150, 300, M_PI * 0 / 180.0, M_PI * 60 / 180.0); - addSliceToPath(path, 150, 300, M_PI * 120 / 180.0, M_PI * 180 / 180.0); - addSliceToPath(path, 150, 300, M_PI * 240 / 180.0, M_PI * 300 / 180.0); - - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextConcatCTM(_context, xform); - - [self establishContextState]; - -#if 1 - CGRect frame = CGRectMake(0, 0, 300, 50); - CGFloat radius = 50; - - CGContextBeginPath(_context); - // CGContextMoveToPoint(_context,CGRectGetMinX(frame)+radius,CGRectGetMaxY(frame)); - CGContextAddArc(_context, CGRectGetMaxX(frame) - radius, - CGRectGetMaxY(frame), radius, M_PI_2, M_PI_2 * 3, YES); - CGContextAddArc(_context, CGRectGetMinX(frame) + radius, - CGRectGetMinY(frame) + radius, radius, M_PI_2 * 3, M_PI_2, - YES); - CGContextClosePath(_context); - CGContextFillPath(_context); -#else - CGContextBeginPath(_context); - CGContextAddPath(_context, path); - - CGContextDrawPath(_context, _pathDrawingMode); -#endif - - CGContextRestoreGState(_context); -} - -- (void) drawBitmapImageRep { - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - - CGAffineTransform ctm = [self ctm]; - CGAffineTransform t = CGAffineTransformMakeTranslation( - -(int) CGImageGetWidth(_resamplingImage) / 2, - -(int) CGImageGetHeight(_resamplingImage) / 2); - - ctm = CGAffineTransformConcat(t, ctm); - // ctm=CGAffineTransformScale(ctm,2,2); - - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextConcatCTM(_context, ctm); - [self establishContextState]; - -#if 0 - CGColorRef color=CGColorCreateGenericRGB(1,0,0,1); - CGContextSetShadowWithColor(_context,CGSizeMake(-5,-5),5,color); - CGColorRelease(color); -#endif -#if 0 - CGContextAddEllipseInRect(_context,CGRectMake(0,0,CGImageGetWidth(_resamplingImage),CGImageGetHeight(_resamplingImage))); - CGContextClip(_context); -#endif - - if (_resamplingImage != NULL) - CGContextDrawImage(_context, - CGRectMake(0, 0, CGImageGetWidth(_resamplingImage), - CGImageGetHeight(_resamplingImage)), - _resamplingImage); - - CGContextRestoreGState(_context); -} - -- (void) drawStraightLines { - CGAffineTransform xform = [self ctm]; - int i, width = 200, height = 200; - - CGMutablePathRef path = CGPathCreateMutable(); - -#if 0 - CGPathMoveToPoint(path,NULL,-width,0); - CGPathAddLineToPoint(path,NULL,width,0); - CGPathMoveToPoint(path,NULL,0,-height); - CGPathAddLineToPoint(path,NULL,0,height); -#else - CGPathMoveToPoint(path, NULL, 0, 0); - for (i = 0; i < width; i += 2) { - - CGPathAddLineToPoint(path, NULL, i, 0); - CGPathAddLineToPoint(path, NULL, i, height); - } - - for (i = 0; i < height; i += 2) { - CGPathAddLineToPoint(path, NULL, 0, i); - CGPathAddLineToPoint(path, NULL, width, i); - } - -#endif - - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextConcatCTM(_context, xform); - [self establishContextState]; - - CGContextBeginPath(_context); - CGContextAddPath(_context, path); - - CGContextDrawPath(_context, _pathDrawingMode); - CGContextRestoreGState(_context); - - CGPathRelease(path); -} - -- (void) drawBlending { - int width = 400; - int height = 400; - int i, limit = 40; - CGAffineTransform ctm = [self ctm]; - - ctm = CGAffineTransformTranslate(ctm, -200, -200); - - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextConcatCTM(_context, ctm); - [self establishContextState]; - - for (i = 0; i < limit; i++) { - CGMutablePathRef path = CGPathCreateMutable(); - float g = (i + 1) / (float) limit; - float components[4] = {g, g, g, g}; - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGColorRef fillColor = CGColorCreate(colorSpace, components); - - CGPathAddRect(path, NULL, - CGRectMake(i * width / limit, 0, width / limit, height)); - - CGContextAddPath(_context, path); - - CGContextSetFillColorWithColor(_context, fillColor); - CGContextSetBlendMode(_context, kCGBlendModeCopy); - CGContextDrawPath(_context, _pathDrawingMode); - - CGColorRelease(fillColor); - CGColorSpaceRelease(colorSpace); - CGPathRelease(path); - } - - for (i = 0; i < limit; i++) { - CGMutablePathRef path = CGPathCreateMutable(); - float g = (i + 1) / (float) limit; - float components[4] = {g / 2, (1.0 - g), g, g}; - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGColorRef fillColor = CGColorCreate(colorSpace, components); - - CGPathAddRect(path, NULL, - CGRectMake(0, 0, width, height - i * height / limit)); - CGContextAddPath(_context, path); - - CGContextSetFillColorWithColor(_context, fillColor); - CGContextSetBlendMode(_context, _blendMode); - CGContextDrawPath(_context, _pathDrawingMode); - - CGColorRelease(fillColor); - CGColorSpaceRelease(colorSpace); - CGPathRelease(path); - } - - CGContextRestoreGState(_context); -} - -static void evaluate(void *info, const float *in, float *output) { - static CGFloat _C0[4] = {0, 1, 0, 1}; - static CGFloat _C1[4] = {1, 0, 0, 1}; - float x = in[0]; - int i; - - for (i = 0; i < 4; i++) - output[i] = _C0[i] + x * (_C1[i] - _C0[i]); -} - -- (void) drawAxialGradient { - CGAffineTransform ctm = [self ctm]; - CGFunctionRef function; - CGShadingRef shading; - float domain[2] = {0, 1}; - float range[8] = {0, 1, 0, 1, 0, 1, 0, 1}; - CGFunctionCallbacks callbacks = {0, evaluate, NULL}; - CGPoint _startPoint = {0, 100}; - CGPoint _endPoint = {30, 100}; - BOOL _extendStart = YES, _extendEnd = YES; - - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextSetRGBFillColor(_context, 0.5, 0.5, 0.5, 0.5); - // CGContextFillRect(_context,CGRectMake(0,0,400,400)); - CGContextConcatCTM(_context, ctm); - [self establishContextState]; - - function = CGFunctionCreate(self, 1, domain, 4, range, &callbacks); - - shading = CGShadingCreateAxial(CGColorSpaceCreateDeviceRGB(), - CGPointMake(_startPoint.x, _startPoint.y), - CGPointMake(_endPoint.x, _endPoint.y), - function, _extendStart, _extendEnd); - - CGContextBeginPath(_context); - CGContextAddArc(_context, 0, 0, 200, 0, M_PI * 2, YES); - CGContextClip(_context); - - CGContextDrawShading(_context, shading); - CGShadingRelease(shading); - - CGFunctionRelease(function); - CGContextRestoreGState(_context); -} - -- (void) drawRadialGradient { - CGAffineTransform ctm = [self ctm]; - CGFunctionRef function; - CGShadingRef shading; - float domain[2] = {0, 1}; - float range[8] = {0, 1, 0, 1, 0, 1, 0, 1}; - CGFunctionCallbacks callbacks = {0, evaluate, NULL}; - CGPoint _startPoint = {0, 0}; - CGPoint _endPoint = {0, 0}; - CGFloat _startRadius = 30, _endRadius = 100; - BOOL _extendStart = YES, _extendEnd = YES; - - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextSetRGBFillColor(_context, 0.5, 0.5, 0.5, 0.5); - CGContextFillRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextConcatCTM(_context, ctm); - [self establishContextState]; - - function = CGFunctionCreate(self, 1, domain, 4, range, &callbacks); - - shading = CGShadingCreateRadial( - CGColorSpaceCreateDeviceRGB(), - CGPointMake(_startPoint.x, _startPoint.y), _startRadius, - CGPointMake(_endPoint.x, _endPoint.y), _endRadius, function, - _extendStart, _extendEnd); - - CGContextDrawShading(_context, shading); - CGShadingRelease(shading); - - CGFunctionRelease(function); - CGContextRestoreGState(_context); -} - -- (void) drawGlyphs { - CGAffineTransform ctm = [self ctm]; - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextSetRGBFillColor(_context, 1, 1, 1, 1); - CGContextFillRect(_context, CGRectMake(0, 0, 400, 400)); - ctm = CGAffineTransformTranslate(ctm, -200, -200); - CGContextConcatCTM(_context, ctm); - - CGContextSetRGBFillColor(_context, 1, 0, 0, 1); - - NSString *string = @"Cocotron"; - int i, length = [string length]; - CGGlyph glyphs[length]; - - for (i = 0; i < length; i++) { - NSString *name = [string substringWithRange: NSMakeRange(i, 1)]; - glyphs[i] = CGFontGetGlyphWithGlyphName(_font, (CFStringRef) name); - } - - CGContextSetFont(_context, _font); - CGContextSetFontSize(_context, 200.0); - CGContextShowGlyphsAtPoint(_context, 50, 50, glyphs, length); - - CGContextRestoreGState(_context); -} - -- (void) drawPDF { - CGAffineTransform ctm = [self ctm]; - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextSetRGBFillColor(_context, 1, 1, 1, 1); - CGContextFillRect(_context, CGRectMake(0, 0, 400, 400)); - ctm = CGAffineTransformTranslate(ctm, -200, -200); - CGContextConcatCTM(_context, ctm); - - if (_pdfDocument != NULL) { - CGPDFPageRef page = CGPDFDocumentGetPage(_pdfDocument, 1); - - CGContextDrawPDFPage(_context, page); - // CGPDFPageRelease(page); - } - CGContextRestoreGState(_context); -} - -- (void) drawLayers { - // CGAffineTransform ctm=[self ctm]; - - CGContextSaveGState(_context); - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextSetRGBFillColor(_context, 1, 1, 1, 1); - CGContextFillRect(_context, CGRectMake(0, 0, 400, 400)); - CGContextSetShadowWithColor(_context, CGSizeMake(30, 30), _shadowBlur, - _shadowColor); - CGContextBeginTransparencyLayer(_context, NULL); - // CGContextConcatCTM(_context,ctm); - // CGContextSetShadow(_context,CGSizeMake(10,10),5.0); - CGContextAddEllipseInRect(_context, CGRectMake(50, 50, 100, 100)); - CGContextSetFillColorWithColor(_context, _fillColor); - CGContextFillPath(_context); - CGContextEndTransparencyLayer(_context); - CGContextRestoreGState(_context); -} - -static void drawPattern(void *info, CGContextRef ctxt) { - CGContextSetRGBFillColor(ctxt, 1, 1, 0, 1); - CGContextFillEllipseInRect(ctxt, CGRectMake(0, 0, 8, 8)); - CGContextSetRGBFillColor(ctxt, 1, 0, 1, 1); - CGContextFillEllipseInRect(ctxt, CGRectMake(0, 3, 6, 6)); - CGContextSetRGBFillColor(ctxt, 0, 0, 1, 1); - CGContextFillEllipseInRect(ctxt, CGRectMake(0, 6, 4, 6)); -} - -- (void) drawPattern { - CGPatternCallbacks callbacks = {0, drawPattern, NULL}; - CGPatternRef pattern = CGPatternCreate( - NULL, CGRectMake(0, 0, 10, 10), CGAffineTransformIdentity, 10, 10, - kCGPatternTilingNoDistortion, YES, &callbacks); - CGColorSpaceRef colorSpace = CGColorSpaceCreatePattern(NULL); - CGFloat components[4] = {1}; - CGColorRef color = - CGColorCreateWithPattern(colorSpace, pattern, components); - -#ifdef USING_QUARTZ2DX - CGContextRef save = _context; - CGRect media = CGRectMake(0, 0, 400, 400); - _context = CGPDFContextCreateWithURL( - [NSURL fileURLWithPath: @"/tmp/foo.pdf"], &media, NULL); - CGPDFContextBeginPage(_context, NULL); -#endif - CGContextSaveGState(_context); - - CGContextClearRect(_context, CGRectMake(0, 0, 400, 400)); - - CGAffineTransform ctm = [self ctm]; - ctm = CGAffineTransformTranslate(ctm, -200, -200); - CGContextConcatCTM(_context, ctm); - - CGContextSetFillColorWithColor(_context, color); - CGContextFillRect(_context, CGRectMake(0, 0, 300, 300)); - CGContextRestoreGState(_context); -#ifdef USING_QUARTZ2DX - CGPDFContextEndPage(_context); - CGPDFContextClose(_context); - CGContextRelease(_context); - - _context = save; -#endif - - CGColorRelease(color); - CGColorSpaceRelease(colorSpace); - CGPatternRelease(pattern); -} - -#if 0 - --(void)drawSampleInRender:(KGRender *)render { - float blackComponents[4]={0,0,0,1}; - CGColorRef blackColor=CGColorCreate(CGColorSpaceCreateDeviceRGB(),blackComponents); - - CGMutablePathRef path1=CGPathCreateMutable(); - CGMutablePathRef path2=CGPathCreateMutable(); - CGAffineTransform xform=CGAffineTransformMakeScale(.5,.5); -#if 1 - addSliceToPath(path1,50,100,M_PI*30/180.0,M_PI*330/180.0); - - addSliceToPath(path1,150,300,M_PI*0/180.0,M_PI*60/180.0); - addSliceToPath(path1,150,300,M_PI*120/180.0,M_PI*180/180.0); - addSliceToPath(path1,150,300,M_PI*240/180.0,M_PI*300/180.0); -#else - CGPathMoveToPoint(path1,NULL,0,0); - CGPathAddLineToPoint(path1,NULL,100,100); - CGPathAddCurveToPoint(path1,NULL,0,100,100,200,200,200); - CGPathAddLineToPoint(path1,NULL,100,100); - CGPathAddLineToPoint(path1,NULL,200,10); - CGPathCloseSubpath(path1); -#endif - - CGPathAddPath(path2,&xform,path1); - - [render clear]; - - CGAffineTransform ctm=[self ctm]; - -#if 0 - [render setShadowColor:createCGColor(gState->_shadowColor)]; - [render setShadowOffset:CGSizeMake(gState->_shadowOffset.width,gState->_shadowOffset.height)]; - [render setShadowBlur:gState->_shadowBlur]; -#endif -#if 0 - [render drawPath:path1 drawingMode:_pathDrawingMode blendMode:kCGBlendModeNormal - interpolationQuality:kCGInterpolationDefault fillColor:_destinationColor strokeColor:[NSColor blackColor] lineWidth:gState->_lineWidth lineCap:gState->_lineCap lineJoin:gState->_lineJoin miterLimit:gState->_miterLimit dashPhase:gState->_dashPhase dashLengthsCount:gState->_dashLengthsCount dashLengths:gState->_dashLengths flatness:gState->_flatness transform:ctm antialias:gState->_shouldAntialias]; -#endif -#if 1 - [render drawPath:path2 drawingMode:_pathDrawingMode blendMode:gState->_blendMode - interpolationQuality:kCGInterpolationDefault fillColor:_sourceColor strokeColor:_destinationColor lineWidth:gState->_lineWidth lineCap:gState->_lineCap lineJoin:gState->_lineJoin miterLimit:gState->_miterLimit dashPhase:gState->_dashPhase dashLengthsCount:gState->_dashLengthsCount dashLengths:gState->_dashLengths flatness:gState->_flatness transform:ctm antialias:gState->_shouldAntialias]; -#endif - -} - - - --(void)drawBlendingInRender:(KGRender *)render { - int width=400; - int height=400; - int i,limit=10; - CGAffineTransform ctm=[self ctm]; - - ctm=CGAffineTransformTranslate(ctm,-200,-200); - [render clear]; - - for(i=0;i_lineWidth lineCap:gState->_lineCap lineJoin:gState->_lineJoin miterLimit:gState->_miterLimit dashPhase:gState->_dashPhase dashLengthsCount:gState->_dashLengthsCount dashLengths:gState->_dashLengths flatness:gState->_flatness transform:ctm antialias:gState->_shouldAntialias]; - CGColorRelease(fillColor); - CGPathRelease(path); - } - - for(i=0;i_blendMode - interpolationQuality:kCGInterpolationDefault fillColor:fillColor strokeColor:NULL lineWidth:gState->_lineWidth lineCap:gState->_lineCap lineJoin:gState->_lineJoin miterLimit:gState->_miterLimit dashPhase:gState->_dashPhase dashLengthsCount:gState->_dashLengthsCount dashLengths:gState->_dashLengths flatness:gState->_flatness transform:ctm antialias:gState->_shouldAntialias]; - CGColorRelease(fillColor); - CGPathRelease(path); - } -} - -#endif -@end diff --git a/testing/SWRender/English.lproj/InfoPlist.strings b/testing/SWRender/English.lproj/InfoPlist.strings deleted file mode 100644 index cc2655a28bd02d6b4ed57c0faede6d71c70a2149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmW-ZOAf&R6h+V2DjLH^RE#8IWI}=g3y`8k=qD|b+L2A-w0X(<+g diff --git a/testing/SWRender/English.lproj/MainMenu.nib/classes.nib b/testing/SWRender/English.lproj/MainMenu.nib/classes.nib deleted file mode 100644 index 5f41d661..00000000 --- a/testing/SWRender/English.lproj/MainMenu.nib/classes.nib +++ /dev/null @@ -1,93 +0,0 @@ - - - - - IBClasses - - - CLASS - KGImageView - LANGUAGE - ObjC - SUPERCLASS - NSView - - - CLASS - FirstResponder - LANGUAGE - ObjC - SUPERCLASS - NSObject - - - ACTIONS - - selectAntialias - id - selectBlendMode - id - selectDashLength - id - selectDashPhase - id - selectDestinationColor - id - selectFlatness - id - selectInterpolationQuality - id - selectLineWidth - id - selectPDFPath - id - selectPathDrawingMode - id - selectRotation - id - selectScaleX - id - selectScaleY - id - selectShadowBlur - id - selectShadowColor - id - selectShadowOffsetX - id - selectShadowOffsetY - id - selectTest - id - setectSourceColor - id - - CLASS - KGRenderController - LANGUAGE - ObjC - OUTLETS - - _cgTime - NSTextField - _cgView - KGImageView - _diffView - KGImageView - _kgTime - NSTextField - _kgView - KGImageView - _outlineView - NSOutlineView - _testPopUp - NSPopUpButton - - SUPERCLASS - NSObject - - - IBVersion - 1 - - diff --git a/testing/SWRender/English.lproj/MainMenu.nib/designable.nib b/testing/SWRender/English.lproj/MainMenu.nib/designable.nib deleted file mode 100644 index 21f47d50..00000000 --- a/testing/SWRender/English.lproj/MainMenu.nib/designable.nib +++ /dev/null @@ -1,5764 +0,0 @@ - - - - 1050 - 11D50 - 2182 - 1138.32 - 568.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSColorWell - NSDrawer - NSMenu - NSTableHeaderView - NSButton - NSSliderCell - NSMatrix - NSCustomObject - NSSlider - NSCustomView - NSTextField - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSTableColumn - NSBox - NSPopUpButtonCell - NSOutlineView - NSView - NSScrollView - NSPopUpButton - NSScroller - NSMenuItem - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - - NSApplication - - - - FirstResponder - - - NSApplication - - - 15 - 2 - {{64, 513}, {830, 474}} - 1886912512 - Window - NSWindow - - View - - - {213, 107} - - - 317 - - - - 289 - {{740, 18}, {78, 17}} - - YES - - -2080244224 - 134348800 - Diff - - LucidaGrande-Bold - 12 - 16 - - - -1232846593 - 173 - - - 400 - 75 - - - - - 278 - {{11, 43}, {400, 400}} - - KGImageView - NSView - - - - 275 - {{418, 43}, {400, 400}} - - KGImageView - NSView - - - - 268 - {{8, 451}, {134, 13}} - - YES - - 68288064 - 272630784 - Label - - LucidaGrande - 10 - 16 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 265 - {{415, 451}, {134, 13}} - - YES - - 68288064 - 272630784 - Label - - - - - - - - - 268 - {{2, 11}, {140, 26}} - - YES - - -2076049856 - 2048 - - LucidaGrande - 13 - 1044 - - - 109199615 - 129 - - - 400 - 75 - - - 2bps - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - OtherViews - - - - 1bps - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 4bps - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 8bps - - 2147483647 - - - _popUpItemAction: - - - - - float - - 2147483647 - 1 - - - _popUpItemAction: - - - - - 4 - 1 - YES - YES - 2 - - - - - 268 - {{144, 11}, {167, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Alpha No First - - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - - - Alpha No - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Alpha PRE Last - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Alpha PRE First - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Alpha Last - - 2147483647 - - - _popUpItemAction: - - - - - Alpha First - - 2147483647 - - - _popUpItemAction: - - - - - Alpha No Last - - 2147483647 - - - _popUpItemAction: - - - - - - Alpha Only - - 2147483647 - - - _popUpItemAction: - - - - - 6 - 1 - YES - YES - 2 - - - - {830, 474} - - {{0, 0}, {1920, 1178}} - {213, 129} - {10000000000000, 10000000000000} - YES - - - MainMenu - - - - NewApplication - - 1048576 - 2147483647 - - - submenuAction: - - NewApplication - - - - About NewApplication - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences… - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - - Services - - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide NewApplication - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit NewApplication - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - - File - - - - - New - n - 1048576 - 2147483647 - - - - - - Open... - o - 1048576 - 2147483647 - - - - - - Open Recent - - 1048576 - 2147483647 - - - submenuAction: - - - Open Recent - - - - - Clear Menu - - 1048576 - 2147483647 - - - - - _NSRecentDocumentsMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Close - w - 1048576 - 2147483647 - - - - - - Save - s - 1048576 - 2147483647 - - - - - - Save As… - S - 1048576 - 2147483647 - - - - - - Revert - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup… - P - 1048576 - 2147483647 - - - - - - Print… - p - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - - Edit - - - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Paste and Match Style - V - 1572864 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Find - - 1048576 - 2147483647 - - - submenuAction: - - - Find - - - - - Find… - f - 1048576 - 2147483647 - - - 1 - - - - Find Next - g - 1048576 - 2147483647 - - - 2 - - - - Find Previous - G - 1048576 - 2147483647 - - - 3 - - - - Use Selection for Find - e - 1048576 - 2147483647 - - - 7 - - - - Jump to Selection - j - 1048576 - 2147483647 - - - - - - - - - Spelling - - 1048576 - 2147483647 - - - submenuAction: - - Spelling - - - - Spelling… - : - 1048576 - 2147483647 - - - - - - Check Spelling - ; - 1048576 - 2147483647 - - - - - - Check Spelling as You Type - - 1048576 - 2147483647 - - - - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - - Window - - - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 1048576 - 2147483647 - - - submenuAction: - - Help - - - - NewApplication Help - ? - 1048576 - 2147483647 - - - - - - - - _NSMainMenu - - - KGRenderController - - - - 256 - {400, 400} - KGImageView - - - - {400, 400} - {400, 400} - {400, 400} - 2 - 0.0 - 15 - - - - - 15 - 2 - {{196, 161}, {986, 349}} - 603979776 - Window - NSWindow - - - - - 256 - - - - 276 - - - - 2304 - - - - 256 - {175, 318} - - - - YES - - - 256 - {175, 17} - - - - - - - - 256 - {{176, 0}, {16, 17}} - - - - - - - 172 - 16 - 1000 - - 75628096 - 2048 - - - LucidaGrande - 11 - 3100 - - - 3 - MC4zMzMzMzI5ODU2AA - - - 6 - System - headerTextColor - - - - - 337772096 - 2048 - Text Cell - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - YES - - - - 3 - 2 - - 3 - MQA - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - -767557632 - - - 4 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {175, 318}} - - - - - - 4 - - - - 256 - {{176, 17}, {15, 318}} - - - - - _doScroller: - 37 - 0.13909779489040375 - - - - 256 - {{1, 335}, {175, 15}} - - - - 1 - - _doScroller: - 0.0057142856530845165 - 0.68404906988143921 - - - - 2304 - - - - {{1, 0}, {175, 17}} - - - - - - 4 - - - - {{-1, -1}, {192, 351}} - - - - 133170 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 268 - {{259, 74}, {130, 22}} - - - - YES - - -2076049856 - 133120 - - - 109199615 - 1 - - LucidaGrande - 11 - 16 - - - - - - 400 - 75 - - - Fill - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - EOFill - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - Stroke - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - Fill & Stroke - - 1048576 - 2147483647 - - - _popUpItemAction: - 3 - - - - - EOFill & Stroke - - 1048576 - 2147483647 - - - _popUpItemAction: - 4 - - - - - 3 - YES - YES - 1 - - - - - 268 - {{196, 79}, {63, 13}} - - - - YES - - 67239424 - 272629760 - UGF0aCBNb2RlOgo - - LucidaGrande - 10 - 2843 - - - - - - - - - 268 - {{196, 117}, {38, 17}} - - - - YES - - 68288064 - 272630784 - Test: - - - - - - - - - 268 - {{217, 40}, {21, 13}} - - - - YES - - 67239424 - 272629760 - RDoKA - - - - - - - - - 268 - - - NSColor pasteboard type - - - {{316, 36}, {52, 18}} - - - - YES - YES - - 1 - MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA - - - - - 268 - - - NSColor pasteboard type - - - {{234, 36}, {52, 18}} - - - - YES - YES - - 1 - MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA - - - - - 268 - {{299, 37}, {16, 13}} - - - - YES - - 67239424 - 272629760 - S: - - - - - - - - - 268 - {{459, 63}, {154, 19}} - - - - YES - - -2080244224 - 134217728 - Set PDF ... - - LucidaGrande - 12 - 16 - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{459, 43}, {154, 19}} - - - YES - - -2080244224 - 134217728 - Set Image ... - - - -2038152961 - 164 - - - 400 - 75 - - - - - 268 - {{236, 111}, {347, 26}} - - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Pattern - - 2147483647 - 1 - - - _popUpItemAction: - 9 - - - YES - - OtherViews - - - - Classic - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Straight Lines - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - Blending - - 2147483647 - - - _popUpItemAction: - 2 - - - - - Image Resampling - - 2147483647 - - - _popUpItemAction: - 3 - - - - - Linear Gradient - - 2147483647 - - - _popUpItemAction: - 4 - - - - - Radial Gradient - - 2147483647 - - - _popUpItemAction: - 5 - - - - - Glyphs - - 2147483647 - - - _popUpItemAction: - 6 - - - - - PDF - - 2147483647 - - - _popUpItemAction: - 7 - - - - - Layers & Shadows - - 2147483647 - - - _popUpItemAction: - 8 - - - - - - 9 - 1 - YES - YES - 2 - - - - - 268 - - - - 274 - - - - 268 - {{9, 79}, {66, 13}} - - - - YES - - 67239424 - 272629760 - TGluZSBXaWR0aDoKCg - - - - - - - - - 268 - {{90, 78}, {100, 15}} - - - - YES - - 67501824 - 131072 - - - - - Helvetica - 12 - 16 - - - 50 - 0.0 - 1 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{292, 77}, {50, 15}} - - - - YES - - 67501824 - 131072 - - - - - - 20 - 0.0 - 1 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{444, 77}, {50, 15}} - - - - YES - - 67501824 - 131072 - - - - - - 50 - 0.0 - 1 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{203, 79}, {74, 13}} - - - - YES - - 67239424 - 272629760 - RGFzaCBMZW5ndGg6CjoKA - - - - - - - - - 268 - {{363, 80}, {66, 13}} - - - - YES - - 67239424 - 272629760 - RGFzaCBQaGFzZToKA - - - - - - - - - 268 - {{534, 80}, {66, 13}} - - - - YES - - 67239424 - 272629760 - RmxhdG5lc3M6Cg - - - - - - - - - 268 - {{615, 78}, {100, 15}} - - - - YES - - 67501824 - 131072 - - - - - - 20 - 0.0 - 1 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{87, 151}, {130, 22}} - - - - YES - - -2076049856 - 133120 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Plus Darker - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - 26 - - - YES - - - OtherViews - - - - - Normal - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Multiply - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - Screen - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - Overlay - - 1048576 - 2147483647 - - - _popUpItemAction: - 3 - - - - - Darken - - 1048576 - 2147483647 - - - _popUpItemAction: - 4 - - - - - Lighten - - 1048576 - 2147483647 - - - _popUpItemAction: - 5 - - - - - Color Dodge - - 1048576 - 2147483647 - - - _popUpItemAction: - 6 - - - - - Color Burn - - 1048576 - 2147483647 - - - _popUpItemAction: - 7 - - - - - Hard Light - - 1048576 - 2147483647 - - - _popUpItemAction: - 8 - - - - - Soft Light - - 1048576 - 2147483647 - - - _popUpItemAction: - 9 - - - - - Difference - - 1048576 - 2147483647 - - - _popUpItemAction: - 10 - - - - - Exclusion - - 1048576 - 2147483647 - - - _popUpItemAction: - 11 - - - - - Hue - - 1048576 - 2147483647 - - - _popUpItemAction: - 12 - - - - - Saturation - - 1048576 - 2147483647 - - - _popUpItemAction: - 13 - - - - - Color - - 1048576 - 2147483647 - - - _popUpItemAction: - 14 - - - - - Luminosity - - 1048576 - 2147483647 - - - _popUpItemAction: - 15 - - - - - Clear - - 1048576 - 2147483647 - - - _popUpItemAction: - 16 - - - - - Copy - - 1048576 - 2147483647 - - - _popUpItemAction: - 17 - - - - - Source In - - 1048576 - 2147483647 - - - _popUpItemAction: - 18 - - - - - Source Out - - 1048576 - 2147483647 - - - _popUpItemAction: - 19 - - - - - Source Atop - - 1048576 - 2147483647 - - - _popUpItemAction: - 20 - - - - - Destination Over - - 1048576 - 2147483647 - - - _popUpItemAction: - 21 - - - - - Destination In - - 1048576 - 2147483647 - - - _popUpItemAction: - 22 - - - - - Destination Out - - 1048576 - 2147483647 - - - _popUpItemAction: - 23 - - - - - Destination Atop - - 1048576 - 2147483647 - - - _popUpItemAction: - 24 - - - - - XOR - - 1048576 - 2147483647 - - - _popUpItemAction: - 25 - - - - - - Plus Lighter - - 1048576 - 2147483647 - - - _popUpItemAction: - 27 - - - - - 26 - 3 - YES - YES - 1 - - - - - 268 - {{9, 155}, {84, 13}} - - - - YES - - 67239424 - 138412032 - QmxlbmQgTW9kZToKA - - - - - - - - - 268 - {{478, 132}, {275, 15}} - - - - YES - - -2079981824 - 131072 - - - - 20 - 0.01 - 1 - 0.0 - 0 - 1 - NO - NO - - - - - 292 - {{72, 130}, {344, 15}} - - - - YES - - 67501824 - 131072 - - - - - - 20 - 0.01 - 1 - 0.0 - 0 - 1 - NO - NO - - - - - 292 - {{62, 105}, {360, 15}} - - - - YES - - 67501824 - 131072 - - - - - Helvetica-Oblique - 12 - 16 - - - 360 - 0.0 - 0.0 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{512, 103}, {259, 21}} - - - - YES - - 67501824 - 0 - - - - - - 200 - 0.0 - 20 - 0.0 - 0 - 1 - NO - NO - - - - - 268 - {{404, 156}, {80, 13}} - - - - YES - - 67239424 - 272629760 - Shadow: - - - - - - - - - 268 - - - NSColor pasteboard type - - - {{449, 152}, {52, 20}} - - - - YES - YES - - 1 - MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA - - - - - 268 - {{481, 107}, {28, 13}} - - - - YES - - 67239424 - 272629760 - Blur: - - - - - - - - - 268 - {{635, 151}, {31, 22}} - - - - YES - - -1804468671 - 272630784 - - - - YES - - 6 - System - textBackgroundColor - - - - 6 - System - textColor - - - - - - - 268 - {{619, 156}, {14, 13}} - - - - YES - - 67239424 - 272629760 - X: - - - - - - - - - 268 - {{690, 151}, {31, 22}} - - - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 268 - {{674, 156}, {14, 13}} - - - - YES - - 67239424 - 272629760 - Y: - - - - - - - - - 289 - {{215, 35}, {128, 15}} - - - - YES - - -2076049856 - 264192 - - LucidaGrande - 9 - 3614 - - - 109199615 - 1 - - LucidaGrande - 9 - 16 - - - - - - 400 - 75 - - - Interp Default - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Interp None - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - Interp Low - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - - - Interp High - - 1048576 - 2147483647 - - - _popUpItemAction: - 3 - - - - - 3 - YES - YES - 1 - - - - - 289 - {{363, 34}, {78, 18}} - - - - YES - - -2080244224 - 131072 - Antialias - - - 1211912703 - 2 - - NSSwitch - - - - 200 - 25 - - - - - 268 - - NSColor pasteboard type - - {{355, 151}, {44, 23}} - - - - YES - YES - - 1 - MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA - - - - - 268 - - NSColor pasteboard type - - {{252, 150}, {44, 23}} - - - - YES - YES - - 1 - MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA - - - - - 268 - {{209, 156}, {38, 17}} - - - - YES - - 68288064 - 71304192 - Fill: - - - - - - - - - 268 - {{301, 157}, {49, 17}} - - - - YES - - 68288064 - 71304192 - Stroke: - - - - - - - - - 268 - {{421, 132}, {52, 17}} - - - - YES - - 68288064 - 272630784 - scale x: - - - - - - - - - 268 - {{15, 132}, {52, 17}} - - - - YES - - 68288064 - 272630784 - scale y: - - - - - - - - - 268 - {{15, 107}, {52, 17}} - - - - YES - - 68288064 - 272630784 - rotate: - - - - - - - - - 268 - {{12, 13}, {82, 58}} - - - - YES - 3 - 1 - - - 67239424 - 0 - Butt - - - 1 - 1211912703 - 0 - - NSRadioButton - - - - 200 - 25 - - - 67239424 - 0 - Round - - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - 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 -AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA -AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 -cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD -AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH -SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF -hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8 -vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt -7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq -Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo -aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e -n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX -2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW -FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O -Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6 -ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt -rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA -AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA -AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl -A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq -DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU -HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8 -MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v -UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/ -eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj -rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn -5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh -AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK -CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY -GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95 -MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S -UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2 -d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV -pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK -0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf// -AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw -BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA -FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H -LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh -Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ -h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp -svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb -1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX -8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE -AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg -QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - 3 - MCAwAA - - - - 400 - 75 - - - -2080244224 - 0 - Square - - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - 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 -AAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZWiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAA -AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 -cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD -AQAAAgAAAB0AZQDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7uIGMhziMx -JIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNBLkIpQyJEGkUU -RgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3VziXele8F/4YQBiCWMT -ZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7MHw3fT9+RX9KgE+BUoJV -g1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Ajz2QO5E4kjeTNpQ1lTWWNpc3mDmZO5o+m0KcRZ1JnkyfUKBU -oViiXKNfpGKlZqZpp2yob6lxqnSrdax3rXiuea95sHmxeLJ2s3S0cbVutmm3Y7hduVa6TbtDvDm9Lb4f -vxDAAMDtwdnCw8OqxI/FccZRxy/ICsjkybzKkMtkzDXNBc3Tzp/PatAz0PzRwtKH00rUDdTO1YzWStcI -18TYftk42fLaqtti3Brc0t2K3kLe+d+x4GjhIOHY4o/jR+P/5LblbeYl5tznlehP6Qrpx+qI60zsFOzi -7bfuku918F/xUfJM80/0W/Vt9of3p/jN+fj7I/xU/Yr+xP//AAAAHABiAMoBZgIoAucDzgTNBfYHNQiU -CgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4iLzswTjFd -MmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJFkn8SuRLzUy3 -TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NUZEZlOGYrZyBoFGkK -agJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/n4CWgY2Cg4N6hG+FZYZc -h1OISYlBijmLMYwqjSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPI -pMOlvqa5p7Wosamvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJ -wwHD9sTrxd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O -3fXe39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAAAWAE4AogESAakCTQL4A8cErQWoBrkH3gkXClgLoQzxDkMPjBDWEhYTThR6FZ4WuBfK -GNYZ2hraG9Yczh3DHrYfqCCXIYQibyNXJDwlHSX7JtQnqSh5KUYqDirRK5EsTi0HLbsuby8gL80weTEl -McwydDMbM8A0ZTUKNa42Uzb2N5o4PjjhOYQ6KDrLO288Ejy1PVg9+j6dP0A/40CGQSlBzUJxQxZDvERj -RQtFtEZfRwpHt0hlSRRJw0pzSyVL1kyJTTxN8E6kT1lQDlDEUXtSMlLpU6FUWlUSVcxWhVc/V/lYs1lt -Wiha4ludXFhdE13OXopfRmACYL5he2I5YvdjtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAw -cP9xz3Kgc3F0QnUVded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlN -iiqLCIvmjMSNo46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tk -peym+KgHqRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfa -yV7K9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D//wAAbmRpbgAAAAAAAAY2AACW8AAA -WOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkAAkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCw -AMkA4gD7ARQBLQFGAWEBewGWAbEBzgHrAgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTx -BS4FbQWuBfEGNQZ8BsQHDgdbB6kH+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBB -EM8RXhHwEoQTGROxFEsU5xWEFiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIkIi+yO1 -JHElLSXrJqonaigsKO8ptCp6K0EsCizULaAubi89MA4w4TG1MoszYzQ9NRk1+DbYN7o4nzmHOnA7XDxL -PTw+MD8mQB9BGkIYQxhEG0UgRidHMEg7SUhKV0tnTHhNi06gT7VQy1HjUvtUFFUuVkpXZliEWaJaw1vk -XQdeLF9SYHpho2LPY/xlKmZbZ41owWn3ay9saW2lbuNwI3Flcqpz8XU7dod31nknenx7030tfop/64FP -greEIoWShwaIf4n9i4CNCo6akDGRz5N0lSCW05iOmk+cGJ3on7+hnaOBpW2nYalbq12taK95sZGzsLXV -uAC6L7xivpjA0sMOxU3Hj8nUzBzOaNC30wjVWNel2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP5 -9YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsAhwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJV -AnkCnwLGAu8DGgNHA3cDqAPdBBMETASHBMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpN -Cr4LMwusDCoMrA0zDb0OSw7dD3IQChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzs -HageZR8kH+UgqCFtIjQi/iPKJJglaCY7Jw8n5ijAKZsqeCtXLDctGS37Lt8vxDCqMZAydzNfNEg1MjYc -Nwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0srTERNXk56T5hQtlHWUvdUGVU7 -Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99tI25pb7Fw+nJFc5B03XYqd3d4xXoS -e198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3k2OU05ZHl8CZPZq+nESdzp9coO6ihaQg -pcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB48O1xYTHUMkXytvMms5U0AvRvtNu1RvWxthw -2hjbwd1p3xHgueJi5Azltedf6Qjqsexa7gHvqPFP8vT0mPY799/5g/sm/Mf+Zv//AAAAIwBCAGcAiQCr -AM0A7wERATMBVgF6AZ8BxQHsAhYCQQJuAp4C0AMGAz4DewO7A/8ERgSSBOEFNAWKBeQGQQahBwUHbAfX -CEcIuwk0CbMKOArEC1cL8gyUDT8N8g6sD28QORELEeMSwhOmFJAVfxZzF2wYahlsGnMbgByRHacewR/g -IQEiJSNLJHIlmybEJ+4pGipIK3csqC3cLxEwSTGDMr8z/TU+NoA3xTkMOlc7ozzzPkU/m0DzQk5DrEUM -Rm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDplr2claJ1qFWuPbQpuhnAE -cYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/khOTppU5lsyYX5nym4SdFp6o -oDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8Sr2yvxvAg8Hqw1LEucYfx4bI7MpR -y7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+4j7jL+Qc5P3l2ear53roPukC6bnqcOsg -68vsd+0Y7bnuWO7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AABtbHVjAAAAAAAAAA8AAAAMbmJOTwAAABIAAADEc3ZTRQAAABAAAADWZmlGSQAAABAAAADmZGFESwAA -ABwAAAD2emhDTgAAAAwAAAESZnJGUgAAABIAAAEeamFKUAAAAA4AAAEwZW5VUwAAABIAAAE+cHRCUgAA -ABgAAAFQZXNFUwAAABIAAAFoemhUVwAAAA4AAAF6a29LUgAAAAwAAAGIZGVERQAAABAAAAGUbmxOTAAA -ABYAAAGkaXRJVAAAABQAAAG6AEYAYQByAGcAZQAtAEwAQwBEAEYA5AByAGcALQBMAEMARABWAOQAcgBp -AC0ATABDAEQATABDAEQALQBmAGEAcgB2AGUAcwBrAOYAcgBtX2mCcgAgAEwAQwBEAMkAYwByAGEAbgAg -AEwAQwBEMKsw6TD8ACAATABDAEQAQwBvAGwAbwByACAATABDAEQATABDAEQAIABjAG8AbABvAHIAaQBk -AG8ATABDAEQAIABjAG8AbABvAHJfaYJybbJmdphveTpWaM7st+wAIABMAEMARABGAGEAcgBiAC0ATABD -AEQASwBsAGUAdQByAGUAbgAtAEwAQwBEAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAA -nGEAAAAAwF3/AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAw -OAA - - - - - - - - 400 - 75 - - - {82, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 2 - - - - - - - - 268 - {{108, 14}, {82, 58}} - - - - YES - 3 - 1 - - - 67239424 - 0 - Miter - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - 67239424 - 0 - Round - - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - 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 -AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA -AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 -cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD -AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH -SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF -hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8 -vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt -7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq -Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo -aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e -n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX -2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW -FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O -Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6 -ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt -rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA -AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA -AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl -A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq -DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU -HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8 -MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v -UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/ -eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj -rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn -5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh -AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK -CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY -GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95 -MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S -UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2 -d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV -pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK -0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf// -AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw -BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA -FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H -LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh -Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ -h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp -svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb -1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX -8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE -AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg -QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA - - - - - - - - 400 - 75 - - - -2080244224 - 0 - Bevel - - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - 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 -AAAAAGEKAAA4UQAAB1hYWVogAAAAAAAAcEsAALBzAAAij1hZWiAAAAAAAAAlgQAAF1cAAKk+WFlaIAAA -AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 -cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD -AQAAAgAAAB0AZQDSAXwCSgMeBAgFIwZcB7IJJAqzDF0ODg/TEZ4TZRUsFu0YnhpEG98dax7uIGMhziMx -JIkl3ycxKH0pyCsOLFMtky7QMAkxPzJtM5c0vDXdNvY4DTkdOik7Mzw3PTo+Oj83QDNBLkIpQyJEGkUU -RgxHBEf+SPdJ70roS+FM3E3WTtFPzVDKUchSx1PHVMdVyFbKV8xYz1nTWtdb3VziXele8F/4YQBiCWMT -ZB5lKmY2Z0JoT2lbamhrdmyEbZJun2+tcLpxyHLVc+J073X8dwd4Enkceid7MHw3fT9+RX9KgE+BUoJV -g1aEV4VXhlaHVIhSiVCKTYtKjEeNQ45Ajz2QO5E4kjeTNpQ1lTWWNpc3mDmZO5o+m0KcRZ1JnkyfUKBU -oViiXKNfpGKlZqZpp2yob6lxqnSrdax3rXiuea95sHmxeLJ2s3S0cbVutmm3Y7hduVa6TbtDvDm9Lb4f -vxDAAMDtwdnCw8OqxI/FccZRxy/ICsjkybzKkMtkzDXNBc3Tzp/PatAz0PzRwtKH00rUDdTO1YzWStcI -18TYftk42fLaqtti3Brc0t2K3kLe+d+x4GjhIOHY4o/jR+P/5LblbeYl5tznlehP6Qrpx+qI60zsFOzi -7bfuku918F/xUfJM80/0W/Vt9of3p/jN+fj7I/xU/Yr+xP//AAAAHABiAMoBZgIoAucDzgTNBfYHNQiU -CgULmQ0xDtcQhxIvE9wVfRcVGKQaJxuZHQQeXR+yIP8iRyOFJMEl+ycuKF4pjSq4K+AtAy4iLzswTjFd -MmQzaDRmNWA2VjdHODY5HzoIOu870zy3PZo+fD9eQD9BIUIBQuJDw0SkRYZGaUdNSDBJFkn8SuRLzUy3 -TaNOkk+AUHBRYVJTU0VUOFUrVh5XEFgDWPZZ51rZW8tcvV2uXqBfkGCBYXJiY2NUZEZlOGYrZyBoFGkK -agJq+mv0bO5t6m7mb+Nw4XHfct1z23TZddZ203fPeMx5yHrCe7x8tn2ufqd/n4CWgY2Cg4N6hG+FZYZc -h1OISYlBijmLMYwqjSWOH48akBWREZIOkwuUCJUFlgKW/5f9mPqZ95r0m/Cc7J3onuOf36DaodSizqPI -pMOlvqa5p7Wosamvqq2rrqyvrbKut6+8sMOxy7LUs9205rXwtvi4AbkJug+7FLwYvRq+Gr8YwBXBEMIJ -wwHD9sTrxd3Gz8e/yK3JmsqFy3DMWM1AzibPC8/v0NLRs9KT03LUUdUv1g3W69fJ2KfZhdpl20bcKd0O -3fXe39/M4Lzhr+Kl457kmuWY5pnnm+if6aTqquux7Lntwe7K79Tw3vHq8vf0BPUU9iX3N/hK+WD6d/uO -/Kb9wP7d//8AAAAWAE4AogESAakCTQL4A8cErQWoBrkH3gkXClgLoQzxDkMPjBDWEhYTThR6FZ4WuBfK -GNYZ2hraG9Yczh3DHrYfqCCXIYQibyNXJDwlHSX7JtQnqSh5KUYqDirRK5EsTi0HLbsuby8gL80weTEl -McwydDMbM8A0ZTUKNa42Uzb2N5o4PjjhOYQ6KDrLO288Ejy1PVg9+j6dP0A/40CGQSlBzUJxQxZDvERj -RQtFtEZfRwpHt0hlSRRJw0pzSyVL1kyJTTxN8E6kT1lQDlDEUXtSMlLpU6FUWlUSVcxWhVc/V/lYs1lt -Wiha4ludXFhdE13OXopfRmACYL5he2I5YvdjtWR1ZTVl92a5Z31oQmkIac9qmGtibC1s+G3FbpNvYXAw -cP9xz3Kgc3F0QnUVded2uneOeGJ5N3oMeuF7uHyPfWV+PH8Uf+yAxYGdgneDUIQqhQSF3oa5h5WIcYlN -iiqLCIvmjMSNo46Dj2SQRpEokguS8JPVlLyVo5aMl3aYYJlMmjqbKJwXnQid+57wn+eg4aHdotyj36Tk -peym+KgHqRiqLKtDrFutdq6Tr7Gw0rHzsxa0OrVftoe3r7jZugS7MbxfvZC+w7/6wTXCdcO8xRDGbsfa -yV7K9MynznzQcdKM1MzXQNnY3KXfmOKz5ffpZ+zy8Hb0I/f0+/D//wAAbmRpbgAAAAAAAAY2AACW8AAA -WOgAAFMYAACKXgAAJ5cAABaoAABQDQAAVDkAAkKPAAHwowABa4UAAwEAAAIAAAAbADAASgBlAH4AlwCw -AMkA4gD7ARQBLQFGAWEBewGWAbEBzgHrAgkCKAJIAmkCjAKwAtYC/QMmA1EDfgOsA90EEARFBHwEtgTx -BS4FbQWuBfEGNQZ8BsQHDgdbB6kH+ghNCKMI/AlYCbYKGAp+CuYLUwvDDDYMrQ0nDaQOJQ6oDy4PthBB -EM8RXhHwEoQTGROxFEsU5xWEFiMWxBdmGAoYrxlVGfwapRtQG/scqR1XHgceuB9rIB4g1CGKIkIi+yO1 -JHElLSXrJqonaigsKO8ptCp6K0EsCizULaAubi89MA4w4TG1MoszYzQ9NRk1+DbYN7o4nzmHOnA7XDxL -PTw+MD8mQB9BGkIYQxhEG0UgRidHMEg7SUhKV0tnTHhNi06gT7VQy1HjUvtUFFUuVkpXZliEWaJaw1vk -XQdeLF9SYHpho2LPY/xlKmZbZ41owWn3ay9saW2lbuNwI3Flcqpz8XU7dod31nknenx7030tfop/64FP -greEIoWShwaIf4n9i4CNCo6akDGRz5N0lSCW05iOmk+cGJ3on7+hnaOBpW2nYalbq12taK95sZGzsLXV -uAC6L7xivpjA0sMOxU3Hj8nUzBzOaNC30wjVWNel2ezcKd5Z4HriieSG5nLoTuob69nti+8z8NLyafP5 -9YT3CviT+hb7lP0P/ob//wAAABwAMwBQAGsAhwChALwA1gDxAQwBJgFBAV0BeQGWAbMB0QHxAhECMgJV -AnkCnwLGAu8DGgNHA3cDqAPdBBMETASHBMQFBAVGBYoF0AYZBmQGsAcAB1EHpQf8CFYIswkUCXgJ4QpN -Cr4LMwusDCoMrA0zDb0OSw7dD3IQChClEUMR4xKHEywT1RR/FSsV2RaJFzoX7RigGVUaCxrBG3kcMhzs -HageZR8kH+UgqCFtIjQi/iPKJJglaCY7Jw8n5ijAKZsqeCtXLDctGS37Lt8vxDCqMZAydzNfNEg1MjYc -Nwk39jjlOdY6yDu9PLQ9rT6oP6VApkGoQq1DtUS+RctG2kfrSP5KE0srTERNXk56T5hQtlHWUvdUGVU7 -Vl9XhFiqWdFa+VwjXU5ee1+pYNliCmM+ZHNlq2bkaCBpXmqda99tI25pb7Fw+nJFc5B03XYqd3d4xXoS -e198rH34f0SAkYHdgyqEeIXHhxeIaom+ixWMbo3LjyuQj5H3k2OU05ZHl8CZPZq+nESdzp9coO6ihaQg -pcCnZKkNqrqsbK4ir92xnbNhtSm29LjDupS8Z747wBDB48O1xYTHUMkXytvMms5U0AvRvtNu1RvWxthw -2hjbwd1p3xHgueJi5Azltedf6Qjqsexa7gHvqPFP8vT0mPY799/5g/sm/Mf+Zv//AAAAIwBCAGcAiQCr -AM0A7wERATMBVgF6AZ8BxQHsAhYCQQJuAp4C0AMGAz4DewO7A/8ERgSSBOEFNAWKBeQGQQahBwUHbAfX -CEcIuwk0CbMKOArEC1cL8gyUDT8N8g6sD28QORELEeMSwhOmFJAVfxZzF2wYahlsGnMbgByRHacewR/g -IQEiJSNLJHIlmybEJ+4pGipIK3csqC3cLxEwSTGDMr8z/TU+NoA3xTkMOlc7ozzzPkU/m0DzQk5DrEUM -Rm5H00k5SqFMCk1zTt1QR1GxUxtUhFXuV1hYwlotW5ldBl50X+RhVWLHZDplr2claJ1qFWuPbQpuhnAE -cYRzBHSHdgt3kHkXep98KX20f0CAzYJcg+uFe4cNiJ+KMovFjViO7JB/khOTppU5lsyYX5nym4SdFp6o -oDmhyKNWpOKmbKfzqXeq+Kx2rfGvabDeslKzwrUxtp+4C7l2uuC8Sr2yvxvAg8Hqw1LEucYfx4bI7MpR -y7bNG85/z+LRQ9Ki0/7VV9ar1/rZQdqB27nc6d4M3yfgOuE+4j7jL+Qc5P3l2ear53roPukC6bnqcOsg -68vsd+0Y7bnuWO7x74rwIPCx8UPx0/Jd8ujzc/P49H31AfWE9gT2hfcF94j4CviN+Q35ifoG+oP6/Pt1 -++38Zvza/U79wv42/qj/Gv+N//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AABtbHVjAAAAAAAAAA8AAAAMbmJOTwAAABIAAADEc3ZTRQAAABAAAADWZmlGSQAAABAAAADmZGFESwAA -ABwAAAD2emhDTgAAAAwAAAESZnJGUgAAABIAAAEeamFKUAAAAA4AAAEwZW5VUwAAABIAAAE+cHRCUgAA -ABgAAAFQZXNFUwAAABIAAAFoemhUVwAAAA4AAAF6a29LUgAAAAwAAAGIZGVERQAAABAAAAGUbmxOTAAA -ABYAAAGkaXRJVAAAABQAAAG6AEYAYQByAGcAZQAtAEwAQwBEAEYA5AByAGcALQBMAEMARABWAOQAcgBp -AC0ATABDAEQATABDAEQALQBmAGEAcgB2AGUAcwBrAOYAcgBtX2mCcgAgAEwAQwBEAMkAYwByAGEAbgAg -AEwAQwBEMKsw6TD8ACAATABDAEQAQwBvAGwAbwByACAATABDAEQATABDAEQAIABjAG8AbABvAHIAaQBk -AG8ATABDAEQAIABjAG8AbABvAHJfaYJybbJmdphveTpWaM7st+wAIABMAEMARABGAGEAcgBiAC0ATABD -AEQASwBsAGUAdQByAGUAbgAtAEwAQwBEAEwAQwBEACAAYwBvAGwAbwByAGkAAG1tb2QAAAAAAAAGEAAA -nGEAAAAAwF3/AAAAAAAAAAAAAAAAAAAAAAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSwgSW5jLiwgMjAw -OAA - - - - - - - - 400 - 75 - - - {82, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw -IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ -29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 -dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA -AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG -AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ -0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ -7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ -5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ -3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD -AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns -AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ -6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ -/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ -///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl -YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA -AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD -AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu -AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB -AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES -AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS -AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - 2 - - - - - - - {{1, 1}, {771, 183}} - - - - - - {{196, 144}, {773, 199}} - - - - {0, 0} - - 67239424 - 0 - gstate - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - {986, 349} - - - - - {{0, 0}, {1920, 1178}} - {10000000000000, 10000000000000} - YES - - - - - - - delegate - - - - 861 - - - - terminate: - - - - 139 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - hideOtherApplications: - - - - 146 - - - - hide: - - - - 152 - - - - unhideAllApplications: - - - - 153 - - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - print: - - - - 86 - - - - runPageLayout: - - - - 87 - - - - showHelp: - - - - 122 - - - - clearRecentDocuments: - - - - 127 - - - - cut: - - - - 175 - - - - paste: - - - - 176 - - - - redo: - - - - 178 - - - - selectAll: - - - - 179 - - - - undo: - - - - 180 - - - - copy: - - - - 181 - - - - showGuessPanel: - - - - 188 - - - - checkSpelling: - - - - 190 - - - - toggleContinuousSpellChecking: - - - - 192 - - - - performClose: - - - - 193 - - - - delete: - - - - 195 - - - - performZoom: - - - - 198 - - - - performFindPanelAction: - - - - 199 - - - - performFindPanelAction: - - - - 200 - - - - performFindPanelAction: - - - - 201 - - - - performFindPanelAction: - - - - 202 - - - - centerSelectionInVisibleArea: - - - - 203 - - - - pasteAsPlainText: - - - - 205 - - - - selectBlendMode: - - - - 247 - - - - selectPathDrawingMode: - - - - 255 - - - - selectLineWidth: - - - - 257 - - - - selectDashPhase: - - - - 266 - - - - selectDashLength: - - - - 267 - - - - selectDestinationColor: - - - - 273 - - - - setectSourceColor: - - - - 274 - - - - selectAntialias: - - - - 288 - - - - selectInterpolationQuality: - - - - 295 - - - - selectShadowBlur: - - - - 306 - - - - selectShadowOffsetX: - - - - 307 - - - - selectShadowOffsetY: - - - - 308 - - - - selectScaleY: - - - - 345 - - - - selectScaleX: - - - - 346 - - - - selectRotation: - - - - 347 - - - - _cgView - - - - 354 - - - - _kgView - - - - 355 - - - - _testPopUp - - - - 390 - - - - selectTest: - - - - 391 - - - - _kgTime - - - - 485 - - - - _cgTime - - - - 486 - - - - selectFlatness: - - - - 525 - - - - _diffView - - - - 598 - - - - selectPDFPath: - - - - 638 - - - - _outlineView - - - - 805 - - - - selectFillColor: - - - - 859 - - - - selectShadowColor: - - - - 860 - - - - selectImagePath: - - - - 865 - - - - contentView - - - - 594 - - - - toggle: - - - - 599 - - - - parentWindow - - - - 601 - - - - dataSource - - - - 806 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 21 - - - - - - Window - - - 2 - - - - - - - - - - - - - - 350 - - - - - 351 - - - - - 420 - - - - - - - - 422 - - - - - - - - 595 - - - - - - - - 712 - - - - - - - - 722 - - - - - - - - 29 - - - - - - - - - - MainMenu - - - 19 - - - - - - - - 24 - - - - - - - - - - - 5 - - - - - 23 - - - - - 92 - - - - - 197 - - - - - 56 - - - - - - - - 57 - - - - - - - - - - - - - - - - - - 58 - - - - - 129 - - - - - 131 - - - - - - - - 130 - - - - - 134 - - - - - 136 - - - - - 143 - - - - - 144 - - - - - 145 - - - - - 149 - - - - - 150 - - - - - 196 - - - - - 83 - - - - - - - - 81 - - - - - - - - - - - - - - - - - - 72 - - - - - 73 - - - - - 74 - - - - - 75 - - - - - 77 - - - - - 78 - - - - - 79 - - - - - 80 - - - - - 82 - - - - - 112 - - - - - 124 - - - - - - - - 125 - - - - - - - - 126 - - - - - 103 - - - - - - - - 106 - - - - - - - - 111 - - - - - 163 - - - - - - - - 169 - - - - - - - - - - - - - - - - - - - 156 - - - - - 157 - - - - - 158 - - - - - 160 - - - - - 164 - - - - - 168 - - - - - - - - 159 - - - - - - - - - - - - 154 - - - - - 155 - - - - - 161 - - - - - 162 - - - - - 167 - - - - - 171 - - - - - 172 - - - - - 173 - - - - - 174 - - - - - 184 - - - - - - - - 185 - - - - - - - - - - 187 - - - - - 189 - - - - - 191 - - - - - 204 - - - - - 244 - - - KGRenderController - - - 590 - - - Drawer Content View - - - 591 - - - Drawer - - - 693 - - - - - - Window (Window) - - - 694 - - - - - - - - - - - - - - - - - - - 248 - - - - - - - - 259 - - - - - - - - 269 - - - - - 270 - - - - - 271 - - - - - - - - 272 - - - - - - - - 382 - - - - - - - - 388 - - - - - - - - 636 - - - - - - - - 695 - - - - - - - - - - - 697 - - - - - - - - 700 - - - - - - - - 701 - - - - - 735 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 810 - - - - - 811 - - - - - 812 - - - - - 813 - - - - - - - - 814 - - - - - - - - 815 - - - - - - - - 816 - - - - - 817 - - - - - 818 - - - - - 819 - - - - - - - - 820 - - - - - 821 - - - - - 714 - - - - - - - - - - - - 719 - - - - - 718 - - - - - 717 - - - - - 716 - - - - - 715 - - - - - 724 - - - - - - - - - - - - - - - 732 - - - - - 731 - - - - - 730 - - - - - 729 - - - - - 728 - - - - - 727 - - - - - 726 - - - - - 725 - - - - - 249 - - - - - - - - - - - - 254 - - - - - 253 - - - - - 252 - - - - - 251 - - - - - 250 - - - - - 384 - - - - - - - - - - - - - - - - - 635 - - - - - 557 - - - - - 455 - - - - - 386 - - - - - 385 - - - - - 851 - - - - - 852 - - - - - 853 - - - - - 260 - - - - - - - - 825 - - - - - 256 - - - - - - - - 823 - - - - - 265 - - - - - - - - 829 - - - - - 263 - - - - - - - - 827 - - - - - 264 - - - - - - - - 828 - - - - - 262 - - - - - - - - 826 - - - - - 518 - - - - - - - - 843 - - - - - 517 - - - - - - - - 842 - - - - - 207 - - - - - - - - 822 - - - - - - - - 208 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 209 - - - - - 210 - - - - - 211 - - - - - 214 - - - - - 215 - - - - - 216 - - - - - 217 - - - - - 218 - - - - - 219 - - - - - 220 - - - - - 221 - - - - - 222 - - - - - 223 - - - - - 224 - - - - - 225 - - - - - 226 - - - - - 227 - - - - - 228 - - - - - 229 - - - - - 230 - - - - - 231 - - - - - 232 - - - - - 233 - - - - - 234 - - - - - 235 - - - - - 236 - - - - - 237 - - - - - 238 - - - - - 258 - - - - - - - - 824 - - - - - 341 - - - - - - - - 841 - - - - - 339 - - - - - - - - 839 - - - - - 340 - - - - - - - - 840 - - - - - 296 - - - - - - - - 832 - - - - - 297 - - - - - - - - 833 - - - - - 298 - - - - - 299 - - - - - - - - 834 - - - - - 301 - - - - - - - - 835 - - - - - 302 - - - - - - - - 836 - - - - - 303 - - - - - - - - 837 - - - - - 304 - - - - - - - - 838 - - - - - 289 - - - - - - - - 831 - - - - - - - - 290 - - - - - - - - - - - 291 - - - - - 292 - - - - - 293 - - - - - 294 - - - - - 287 - - - - - - - - 830 - - - - - 736 - - - - - 737 - - - - - 738 - - - - - - - - 844 - - - - - 740 - - - - - - - - 845 - - - - - 742 - - - - - - - - 846 - - - - - 744 - - - - - - - - 847 - - - - - 746 - - - - - - - - 848 - - - - - 748 - - - - - - - - - - - 849 - - - - - 752 - - - - - 750 - - - - - 749 - - - - - 753 - - - - - - - - - - - 850 - - - - - 757 - - - - - 756 - - - - - 754 - - - - - 854 - - - - - 855 - - - - - 856 - - - - - 857 - - - - - 862 - - - - - - - - 863 - - - - - 866 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{128, 147}, {830, 474}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{47, 592}, {986, 349}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 866 - - - - - KGImageView - NSView - - IBProjectSource - ./Classes/KGImageView.h - - - - KGRenderController - NSObject - - NSTextField - KGImageView - KGImageView - NSTextField - KGImageView - NSOutlineView - NSPopUpButton - - - - _cgTime - NSTextField - - - _cgView - KGImageView - - - _diffView - KGImageView - - - _kgTime - NSTextField - - - _kgView - KGImageView - - - _outlineView - NSOutlineView - - - _testPopUp - NSPopUpButton - - - - IBProjectSource - ./Classes/KGRenderController.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {11, 11} - {10, 3} - - - diff --git a/testing/SWRender/English.lproj/MainMenu.nib/info.nib b/testing/SWRender/English.lproj/MainMenu.nib/info.nib deleted file mode 100644 index 5ac025bf..00000000 --- a/testing/SWRender/English.lproj/MainMenu.nib/info.nib +++ /dev/null @@ -1,21 +0,0 @@ - - - - - IBFramework Version - 677 - IBLastKnownRelativeProjectPath - ../SWRender.xcodeproj - IBOldestOS - 5 - IBOpenObjects - - 29 - 694 - - IBSystem Version - 9G55 - targetFramework - IBCocoaFramework - - diff --git a/testing/SWRender/English.lproj/MainMenu.nib/keyedobjects.nib b/testing/SWRender/English.lproj/MainMenu.nib/keyedobjects.nib deleted file mode 100644 index 72a8c6326643765b197cf933f25928f99266695d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72732 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 (ii& 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 - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.SWRender - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/testing/SWRender/KGImageView.h b/testing/SWRender/KGImageView.h deleted file mode 100644 index 8a96a6c8..00000000 --- a/testing/SWRender/KGImageView.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -@interface KGImageView : NSView { - CGImageRef _imageRef; -} - -- (void) setImageRef: (CGImageRef) imageRef; - -@end diff --git a/testing/SWRender/KGImageView.m b/testing/SWRender/KGImageView.m deleted file mode 100644 index 44d80868..00000000 --- a/testing/SWRender/KGImageView.m +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "KGImageView.h" - -@implementation KGImageView - -- (void) setImageRef: (CGImageRef) imageRef { - imageRef = CGImageRetain(imageRef); - CGImageRelease(_imageRef); - _imageRef = imageRef; - [self setNeedsDisplay: YES]; -} - -- (void) drawRect: (NSRect) rect { - CGContextRef context = - (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort]; - - [[NSColor blackColor] set]; - NSRectFill([self bounds]); - if (_imageRef != NULL) { - CGContextSaveGState(context); - CGContextSetBlendMode(context, kCGBlendModeNormal); - CGContextSetShouldAntialias(context, NO); - CGContextDrawImage(context, - CGRectMake(0, 0, CGImageGetWidth(_imageRef), - CGImageGetHeight(_imageRef)), - _imageRef); - CGContextRestoreGState(context); - } -} - -@end diff --git a/testing/SWRender/KGRender.h b/testing/SWRender/KGRender.h deleted file mode 100644 index 351b8d10..00000000 --- a/testing/SWRender/KGRender.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// KGRender.h -// SWRender -// -// Created by Christopher Lloyd on 3/5/08. -// Copyright 2008 __MyCompanyName__. All rights reserved. -// - -#import -#import - -@interface KGRender : NSObject { - int _pixelsWide; - int _pixelsHigh; - int _bitsPerComponent; - int _bitsPerPixel; - int _bytesPerRow; - CGColorSpaceRef _colorSpace; - CGBitmapInfo _bitmapInfo; - void *_data; - - CGImageRef _imageRef; -} - -- (CGImageRef) imageRef; -- (CGImageRef) imageRefOfDifferences: (KGRender *) other; - -- (void) setSize: (NSSize) size; - -- (void) clear; - -- (void) drawPath: (CGPathRef) path - drawingMode: (CGPathDrawingMode) drawingMode - blendMode: (CGBlendMode) blendMode - interpolationQuality: (CGInterpolationQuality) interpolationQuality - fillColor: (NSColor *) fillColor - strokeColor: (NSColor *) strokeColor - lineWidth: (float) lineWidth - lineCap: (CGLineCap) lineCap - lineJoin: (CGLineJoin) lineJoin - miterLimit: (float) miterLimit - dashPhase: (float) dashPhase - dashLengthsCount: (unsigned) dashLengthsCount - dashLengths: (float *) dashLengths - flatness: (float) flatness - transform: (CGAffineTransform) xform - antialias: (BOOL) antialias; - -- (void) drawBitmapImageRep: (NSBitmapImageRep *) imageRep - antialias: (BOOL) antialias - interpolationQuality: (CGInterpolationQuality) interpolationQuality - blendMode: (CGBlendMode) blendMode - fillColor: (NSColor *) fillColor - transform: (CGAffineTransform) xform; - -@end diff --git a/testing/SWRender/KGRender.m b/testing/SWRender/KGRender.m deleted file mode 100644 index 4603839b..00000000 --- a/testing/SWRender/KGRender.m +++ /dev/null @@ -1,110 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "KGRender.h" - -@implementation KGRender - -- init { - _pixelsWide = 400; - _pixelsHigh = 400; - _bitsPerComponent = 8; - _bitsPerPixel = 32; - _bytesPerRow = (_pixelsWide * _bitsPerPixel) / 8; - _colorSpace = CGColorSpaceCreateDeviceRGB(); - _bitmapInfo = kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Little; - _data = NSZoneMalloc([self zone], _bytesPerRow * _pixelsHigh); - - CGDataProviderRef provider = CGDataProviderCreateWithData( - NULL, _data, _pixelsWide * _pixelsHigh * 4, NULL); - _imageRef = CGImageCreate(_pixelsWide, _pixelsHigh, _bitsPerComponent, - _bitsPerPixel, _bytesPerRow, _colorSpace, - kCGImageAlphaPremultipliedLast | - kCGBitmapByteOrder32Little, - provider, NULL, NO, kCGRenderingIntentDefault); - return self; -} - -- (CGImageRef) imageRef { - return _imageRef; -} - -- (CGImageRef) imageRefOfDifferences: (KGRender *) other { - char *diff = NSZoneMalloc([self zone], _bytesPerRow * _pixelsHigh); - int i; - for (i = 0; i < _bytesPerRow * _pixelsHigh; i++) { - unsigned char d1 = ((unsigned char *) _data)[i]; - unsigned char d2 = ((unsigned char *) other->_data)[i]; - - diff[i] = d1 ^ d2; - } - - CGDataProviderRef provider = CGDataProviderCreateWithData( - NULL, diff, _pixelsWide * _pixelsHigh * 4, NULL); - return CGImageCreate(_pixelsWide, _pixelsHigh, _bitsPerComponent, - _bitsPerPixel, _bytesPerRow, _colorSpace, - kCGBitmapByteOrder32Little, provider, NULL, NO, - kCGRenderingIntentDefault); -} - -- (void) setSize: (NSSize) size { - _pixelsWide = size.width; - _pixelsHigh = size.height; - _bytesPerRow = (_pixelsWide * _bitsPerPixel) / 8; - _data = NSZoneRealloc([self zone], _data, _bytesPerRow * _pixelsHigh); -} - -- (void) clear { - int i; - - for (i = 0; i < _pixelsHigh * _bytesPerRow; i++) - ((char *) _data)[i] = 0; -} - -- (void) drawPath: (CGPathRef) path - drawingMode: (CGPathDrawingMode) drawingMode - blendMode: (CGBlendMode) blendMode - interpolationQuality: (CGInterpolationQuality) interpolationQuality - fillColor: (NSColor *) fillColor - strokeColor: (NSColor *) strokeColor - lineWidth: (float) lineWidth - lineCap: (CGLineCap) lineCap - lineJoin: (CGLineJoin) lineJoin - miterLimit: (float) miterLimit - dashPhase: (float) dashPhase - dashLengthsCount: (unsigned) dashLengthsCount - dashLengths: (float *) dashLengths - flatness: (float) flatness - transform: (CGAffineTransform) xform - antialias: (BOOL) antialias -{ - [self doesNotRecognizeSelector: _cmd]; -} - -- (void) drawBitmapImageRep: (NSBitmapImageRep *) imageRep - antialias: (BOOL) antialias - interpolationQuality: (CGInterpolationQuality) interpolationQuality - blendMode: (CGBlendMode) blendMode - fillColor: (NSColor *) fillColor - transform: (CGAffineTransform) xform -{ - [self doesNotRecognizeSelector: _cmd]; -} - -@end diff --git a/testing/SWRender/KGRenderController.h b/testing/SWRender/KGRenderController.h deleted file mode 100644 index 246c5d6c..00000000 --- a/testing/SWRender/KGRenderController.h +++ /dev/null @@ -1,73 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import -#import - -#import "DemoContext.h" - -@class KGImageView; - -@interface KGRenderController : NSObject { - NSDictionary *_tests; - IBOutlet NSOutlineView *_outlineView; - - IBOutlet NSPopUpButton *_testPopUp; - - DemoContext *_cgContext; - DemoContext *_kgContext; - - IBOutlet NSTextField *_cgTime; - IBOutlet NSTextField *_kgTime; - - IBOutlet KGImageView *_cgView; - IBOutlet KGImageView *_kgView; - IBOutlet KGImageView *_diffView; -} - -- (void) selectTest: sender; - -- (void) selectFillColor: sender; -- (void) setectSourceColor: sender; -- (void) selectBlendMode: sender; - -- (void) selectShadowColor: sender; -- (void) selectShadowBlur: sender; -- (void) selectShadowOffsetX: sender; -- (void) selectShadowOffsetY: sender; - -- (void) selectPathDrawingMode: sender; -- (void) selectLineWidth: sender; -- (void) selectDashPhase: sender; -- (void) selectDashLength: sender; -- (void) selectFlatness: sender; - -- (void) selectScaleX: sender; -- (void) selectScaleY: sender; -- (void) selectRotation: sender; -- (void) selectAntialias: sender; -- (void) selectInterpolationQuality: sender; - -- (void) selectImagePath: sender; -- (void) selectPDFPath: sender; - -- (void) selectFillColor: sender; -- (void) selectShadowColor: sender; - -@end diff --git a/testing/SWRender/KGRenderController.m b/testing/SWRender/KGRenderController.m deleted file mode 100644 index aeb923a2..00000000 --- a/testing/SWRender/KGRenderController.m +++ /dev/null @@ -1,396 +0,0 @@ -/* Copyright (c) 2008 Christopher J. W. Lloyd - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - -#import "KGRenderController.h" -#import "KGImageView.h" - -@implementation KGRenderController - -- init { - [[NSUserDefaults standardUserDefaults] setBool: YES - forKey: @"CGEnableBuiltin"]; - - _cgContext = [[NSClassFromString(@"DemoCGContext") alloc] init]; - _kgContext = [[NSClassFromString(@"DemoKGContext") alloc] init]; - - return self; -} - -- (void) performTest: (SEL) selector withObject: object { - double start = [NSDate timeIntervalSinceReferenceDate]; - - [_cgContext performSelector: selector withObject: object]; - [_cgTime setDoubleValue: [NSDate timeIntervalSinceReferenceDate] - start]; - start = [NSDate timeIntervalSinceReferenceDate]; - [_kgContext performSelector: selector withObject: object]; - [_kgTime setDoubleValue: [NSDate timeIntervalSinceReferenceDate] - start]; -} - -- (void) setNeedsDisplay { - - switch ([_testPopUp selectedTag]) { - case 0: - [self performTest: @selector(drawClassic) withObject: nil]; - break; - - case 1: - [self performTest: @selector(drawStraightLines) withObject: nil]; - break; - - case 2: - [self performTest: @selector(drawBlending) withObject: nil]; - break; - - case 3: - [self performTest: @selector(drawBitmapImageRep) withObject: nil]; - break; - - case 4: - [self performTest: @selector(drawAxialGradient) withObject: nil]; - - break; - - case 5: - [self performTest: @selector(drawRadialGradient) withObject: nil]; - break; - - case 6: - [self performTest: @selector(drawGlyphs) withObject: nil]; - break; - - case 7: - [self performTest: @selector(drawPDF) withObject: nil]; - break; - - case 8: - [self performTest: @selector(drawLayers) withObject: nil]; - break; - - case 9: - [self performTest: @selector(drawPattern) withObject: nil]; - break; - } - - CGDataProviderRef provider; - CGImageRef image; - - if (_cgContext != nil) { - provider = CGDataProviderCreateWithData( - NULL, [_cgContext bytes], - [_cgContext bytesPerRow] * [_cgContext pixelsHigh], NULL); - image = CGImageCreate( - [_cgContext pixelsWide], [_cgContext pixelsHigh], - [_cgContext bitsPerComponent], [_cgContext bitsPerPixel], - [_cgContext bytesPerRow], CGColorSpaceCreateDeviceRGB(), - [_cgContext bitmapInfo], provider, NULL, NO, - kCGRenderingIntentDefault); - CGDataProviderRelease(provider); - [_cgView setImageRef: image]; - CGImageRelease(image); - } - - if (_kgContext != nil) { - provider = CGDataProviderCreateWithData( - NULL, [_kgContext bytes], - [_kgContext bytesPerRow] * [_kgContext pixelsHigh], NULL); - image = CGImageCreate( - [_kgContext pixelsWide], [_kgContext pixelsHigh], - [_kgContext bitsPerComponent], [_kgContext bitsPerPixel], - [_kgContext bytesPerRow], CGColorSpaceCreateDeviceRGB(), - [_kgContext bitmapInfo], provider, NULL, NO, - kCGRenderingIntentDefault); - CGDataProviderRelease(provider); - [_kgView setImageRef: image]; - CGImageRelease(image); - } - - if (_cgContext != nil && _kgContext != nil) { - unsigned char *cgData = [_cgContext bytes]; - unsigned char *kgData = [_kgContext bytes]; - - NSMutableData *diffData = - [NSMutableData dataWithLength: [_kgContext bytesPerRow] * - [_kgContext pixelsHigh]]; - char *diff = [diffData mutableBytes]; - - int i, max = [_kgContext bytesPerRow] * [_kgContext pixelsHigh]; - - for (i = 0; i < max; i++) { - int d1 = cgData[i]; - int d2 = kgData[i]; - - if ((i + 1) % 4 == 0) - diff[i] = 0xff; - else - diff[i] = (d1 != d2) ? ABS(d1 - d2) : 00; - } - CGDataProviderRef provider = - CGDataProviderCreateWithCFData((CFDataRef) diffData); - CGImageRef diffImage = CGImageCreate( - [_cgContext pixelsWide], [_cgContext pixelsHigh], - [_cgContext bitsPerComponent], [_cgContext bitsPerPixel], - [_cgContext bytesPerRow], CGColorSpaceCreateDeviceRGB(), - [_kgContext bitmapInfo], provider, NULL, NO, - kCGRenderingIntentDefault); - [_diffView setImageRef: diffImage]; - CGDataProviderRelease(provider); - CGImageRelease(diffImage); - } -} - -- (void) awakeFromNib { - [self setNeedsDisplay]; -} - -- (void) selectTest: sender { - [self setNeedsDisplay]; -} - -- (void) setFillColor: (NSColor *) color { - [_cgContext setFillColor: [color redComponent]: [color greenComponent - ]: [color blueComponent]: [color alphaComponent]]; - [_kgContext setFillColor: [color redComponent]: [color greenComponent - ]: [color blueComponent]: [color alphaComponent]]; -} - -- (void) setSourceColor: (NSColor *) color { - [_cgContext setStrokeColor: [color redComponent]: [color greenComponent - ]: [color blueComponent]: [color alphaComponent]]; - [_kgContext setStrokeColor: [color redComponent]: [color greenComponent - ]: [color blueComponent]: [color alphaComponent]]; -} - -- (void) setBlendMode: (CGBlendMode) blendMode { - [_cgContext setBlendMode: blendMode]; - [_kgContext setBlendMode: blendMode]; -} - -- (void) setShadowBlur: (float) value { - [_cgContext setShadowBlur: value]; - [_kgContext setShadowBlur: value]; -} - -- (void) setShadowOffsetX: (float) value { - [_cgContext setShadowOffsetX: value]; - [_kgContext setShadowOffsetX: value]; -} - -- (void) setShadowOffsetY: (float) value { - [_cgContext setShadowOffsetY: value]; - [_kgContext setShadowOffsetY: value]; -} - -- (void) setShadowColor: (NSColor *) color { - [_cgContext setShadowColor: [color redComponent]: [color greenComponent - ]: [color blueComponent]: [color alphaComponent]]; - [_kgContext setShadowColor: [color redComponent]: [color greenComponent - ]: [color blueComponent]: [color alphaComponent]]; -} - -- (void) setPathDrawingMode: (CGPathDrawingMode) pathDrawingMode { - [_cgContext setPathDrawingMode: pathDrawingMode]; - [_kgContext setPathDrawingMode: pathDrawingMode]; -} - -- (void) setLineWidth: (float) width { - [_cgContext setLineWidth: width]; - [_kgContext setLineWidth: width]; -} - -- (void) setDashPhase: (float) value { - [_cgContext setDashPhase: value]; - [_kgContext setDashPhase: value]; -} - -- (void) setDashLength: (float) value { - [_cgContext setDashLength: value]; - [_kgContext setDashLength: value]; -} - -- (void) setFlatness: (float) value { - [_cgContext setFlatness: value]; - [_kgContext setFlatness: value]; -} - -- (void) setScaleX: (float) value { - [_cgContext setScaleX: value]; - [_kgContext setScaleX: value]; -} - -- (void) setScaleY: (float) value { - [_cgContext setScaleY: value]; - [_kgContext setScaleY: value]; -} - -- (void) setRotation: (float) value { - [_cgContext setRotation: value]; - [_kgContext setRotation: value]; -} - -- (void) setShouldAntialias: (BOOL) value { - [_cgContext setShouldAntialias: value]; - [_kgContext setShouldAntialias: value]; -} - -- (void) setInterpolationQuality: (CGInterpolationQuality) value { - [_cgContext setInterpolationQuality: value]; - [_kgContext setInterpolationQuality: value]; -} - -- (void) selectFillColor: sender { - [self setFillColor: [sender color]]; - [self setNeedsDisplay]; -} - -- (void) setectSourceColor: sender { - [self setSourceColor: [sender color]]; - [self setNeedsDisplay]; -} - -- (void) selectBlendMode: sender { - [self setBlendMode: (CGBlendMode)[sender selectedTag]]; - [self setNeedsDisplay]; -} - -- (void) selectShadowColor: sender { - [self setShadowColor: [sender color]]; - [self setNeedsDisplay]; -} - -- (void) selectShadowBlur: sender { - [self setShadowBlur: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectShadowOffsetX: sender { - [self setShadowOffsetX: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectShadowOffsetY: sender { - [self setShadowOffsetY: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectPathDrawingMode: sender { - [self setPathDrawingMode: (CGPathDrawingMode)[sender selectedTag]]; - [self setNeedsDisplay]; -} - -- (void) selectLineWidth: sender { - [self setLineWidth: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectDashPhase: sender { - [self setDashPhase: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectDashLength: sender { - [self setDashLength: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectFlatness: sender { - [self setFlatness: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectScaleX: sender { - [self setScaleX: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectScaleY: sender { - [self setScaleY: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectRotation: sender { - [self setRotation: [sender floatValue]]; - [self setNeedsDisplay]; -} - -- (void) selectAntialias: sender { - [self setShouldAntialias: [sender intValue]]; - [self setNeedsDisplay]; -} - -- (void) selectInterpolationQuality: sender { - [self setInterpolationQuality: (CGInterpolationQuality) - [sender selectedTag]]; - [self setNeedsDisplay]; -} - -- (void) selectImagePath: sender { - NSOpenPanel *openPanel = [NSOpenPanel openPanel]; - - if ([openPanel runModalForTypes: [NSImage imageFileTypes]]) { - NSData *data = [NSData dataWithContentsOfFile: [openPanel filename]]; - [_cgContext setImageData: data]; - [_kgContext setImageData: data]; - [self setNeedsDisplay]; - } -} - -- (void) selectPDFPath: sender { - NSOpenPanel *openPanel = [NSOpenPanel openPanel]; - - if ([openPanel runModalForTypes: [NSArray arrayWithObject: @"pdf"]]) { - NSData *data = [NSData dataWithContentsOfFile: [openPanel filename]]; - [_cgContext setPDFData: data]; - [_kgContext setPDFData: data]; - [self setNeedsDisplay]; - } -} - -- (void) applicationDidFinishLaunching: (NSNotification *) note { - [[NSColorPanel sharedColorPanel] setShowsAlpha: YES]; -} - -- (id) outlineView: (NSOutlineView *) outlineView - child: (NSInteger) index - ofItem: (id) item -{ - if ([item isEqual: @"expand"]) - return @"leaf"; - return @"expand"; -} - -- (BOOL) outlineView: (NSOutlineView *) outlineView - isItemExpandable: (id) item -{ - return [item isEqual: @"expand"]; -} - -- (NSInteger) outlineView: (NSOutlineView *) outlineView - numberOfChildrenOfItem: (id) item -{ - return 10; -} - -- (id) outlineView: (NSOutlineView *) outlineView - objectValueForTableColumn: (NSTableColumn *) tableColumn - byItem: (id) item -{ - return @"bar"; -} - -@end diff --git a/testing/SWRender/O2Font_CG.h b/testing/SWRender/O2Font_CG.h deleted file mode 100644 index d4ab1f41..00000000 --- a/testing/SWRender/O2Font_CG.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// O2Font_CG.h -// SWRender -// -// Created by Christopher Lloyd on 10/5/09. -// Copyright 2009 __MyCompanyName__. All rights reserved. -// - -#import -#import - -@interface O2Font_CG : O2Font_ttf { - CGFontRef _cgFont; -} - -@end diff --git a/testing/SWRender/O2Font_CG.m b/testing/SWRender/O2Font_CG.m deleted file mode 100644 index 6e1e09ff..00000000 --- a/testing/SWRender/O2Font_CG.m +++ /dev/null @@ -1,33 +0,0 @@ -// -// O2Font_CG.m -// SWRender -// -// Created by Christopher Lloyd on 10/5/09. -// Copyright 2009 __MyCompanyName__. All rights reserved. -// - -#import "O2Font_CG.h" - -@implementation O2Font (CG) - -+ allocWithZone: (NSZone *) zone { - return NSAllocateObject([O2Font_CG class], 0, zone); -} - -@end - -@implementation O2Font_CG - -- initWithDataProvider: (O2DataProviderRef) provider { - [super initWithDataProvider: provider]; - CFDataRef cfData = O2DataProviderCopyData(provider); - CGDataProviderRef cgProvider = CGDataProviderCreateWithCFData(cfData); - CFRelease(cfData); - - _cgFont = CGFontCreateWithDataProvider(cgProvider); - CGDataProviderRelease(cgProvider); - - return self; -} - -@end diff --git a/testing/SWRender/README.txt b/testing/SWRender/README.txt deleted file mode 100644 index ccfe57df..00000000 --- a/testing/SWRender/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -SWRender is an in-development software renderer for Cocotron. It is based on the OpenVG reference implementation. - -It is not currently integrated into Cocotron. diff --git a/testing/SWRender/SWRender.xcodeproj/project.pbxproj b/testing/SWRender/SWRender.xcodeproj/project.pbxproj deleted file mode 100644 index a496bef3..00000000 --- a/testing/SWRender/SWRender.xcodeproj/project.pbxproj +++ /dev/null @@ -1,775 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - FE0997430D87095000033630 /* overlay.png in Resources */ = {isa = PBXBuildFile; fileRef = FE0997420D87095000033630 /* overlay.png */; }; - FE14CD00106934D700B0FFAF /* pattern.jpg in Resources */ = {isa = PBXBuildFile; fileRef = FE14CCFF106934D700B0FFAF /* pattern.jpg */; }; - FE14EC4B0DBD9BF00070928C /* DemoCGContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE14EC490DBD9BF00070928C /* DemoCGContext.m */; }; - FE14EC4C0DBD9BF00070928C /* DemoKGContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE14EC4A0DBD9BF00070928C /* DemoKGContext.m */; }; - FE14EC960DBDA5420070928C /* DemoContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE14EC950DBDA5420070928C /* DemoContext.m */; }; - FE1F93630D7EF19900969491 /* KGImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1F93620D7EF19900969491 /* KGImageView.m */; }; - FE1F937A0D7EF1F800969491 /* KGRenderController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1F93790D7EF1F800969491 /* KGRenderController.m */; }; - FE39C17D1202727200A80A71 /* gif_lib.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1301202727200A80A71 /* gif_lib.m */; }; - FE39C17E1202727200A80A71 /* O2AffineTransform.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1311202727200A80A71 /* O2AffineTransform.m */; }; - FE39C17F1202727200A80A71 /* O2BitmapContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1321202727200A80A71 /* O2BitmapContext.m */; }; - FE39C1801202727200A80A71 /* O2ClipPhase.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1331202727200A80A71 /* O2ClipPhase.m */; }; - FE39C1811202727200A80A71 /* O2Color.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1341202727200A80A71 /* O2Color.m */; }; - FE39C1821202727200A80A71 /* O2ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1351202727200A80A71 /* O2ColorSpace.m */; }; - FE39C1831202727200A80A71 /* O2ColorSpace+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1361202727200A80A71 /* O2ColorSpace+PDF.m */; }; - FE39C1841202727200A80A71 /* O2Context_builtin.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1371202727200A80A71 /* O2Context_builtin.m */; }; - FE39C1851202727200A80A71 /* O2Context.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1381202727200A80A71 /* O2Context.m */; }; - FE39C1861202727200A80A71 /* O2DataConsumer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1391202727200A80A71 /* O2DataConsumer.m */; }; - FE39C1871202727200A80A71 /* O2DataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C13A1202727200A80A71 /* O2DataProvider.m */; }; - FE39C1881202727200A80A71 /* O2Decoder_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C13B1202727200A80A71 /* O2Decoder_TIFF.m */; }; - FE39C1891202727200A80A71 /* O2Encoder_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C13C1202727200A80A71 /* O2Encoder_TIFF.m */; }; - FE39C18A1202727200A80A71 /* O2Encoding.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C13D1202727200A80A71 /* O2Encoding.m */; }; - FE39C18B1202727200A80A71 /* O2Font_ttf.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C13E1202727200A80A71 /* O2Font_ttf.m */; }; - FE39C18C1202727200A80A71 /* O2Font.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C13F1202727200A80A71 /* O2Font.m */; }; - FE39C18D1202727200A80A71 /* O2Font+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1401202727200A80A71 /* O2Font+PDF.m */; }; - FE39C18E1202727200A80A71 /* O2Function.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1411202727200A80A71 /* O2Function.m */; }; - FE39C18F1202727200A80A71 /* O2Function+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1421202727200A80A71 /* O2Function+PDF.m */; }; - FE39C1901202727200A80A71 /* O2Geometry.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1431202727200A80A71 /* O2Geometry.m */; }; - FE39C1911202727200A80A71 /* O2GraphicsState.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1441202727200A80A71 /* O2GraphicsState.m */; }; - FE39C1921202727200A80A71 /* O2Image.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1451202727200A80A71 /* O2Image.m */; }; - FE39C1931202727200A80A71 /* O2Image+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1461202727200A80A71 /* O2Image+PDF.m */; }; - FE39C1941202727200A80A71 /* O2ImageDestination.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1471202727200A80A71 /* O2ImageDestination.m */; }; - FE39C1951202727200A80A71 /* O2ImageSource_BMP.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1481202727200A80A71 /* O2ImageSource_BMP.m */; }; - FE39C1961202727200A80A71 /* O2ImageSource_GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1491202727200A80A71 /* O2ImageSource_GIF.m */; }; - FE39C1971202727200A80A71 /* O2ImageSource_ICNS.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C14A1202727200A80A71 /* O2ImageSource_ICNS.m */; }; - FE39C1981202727200A80A71 /* O2ImageSource_JPEG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C14B1202727200A80A71 /* O2ImageSource_JPEG.m */; }; - FE39C1991202727200A80A71 /* O2ImageSource_PNG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C14C1202727200A80A71 /* O2ImageSource_PNG.m */; }; - FE39C19A1202727200A80A71 /* O2ImageSource_TIFF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C14D1202727200A80A71 /* O2ImageSource_TIFF.m */; }; - FE39C19B1202727200A80A71 /* O2ImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C14E1202727200A80A71 /* O2ImageSource.m */; }; - FE39C19C1202727200A80A71 /* O2Layer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C14F1202727200A80A71 /* O2Layer.m */; }; - FE39C19D1202727200A80A71 /* O2LZW.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1501202727200A80A71 /* O2LZW.m */; }; - FE39C19E1202727200A80A71 /* O2MutablePath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1511202727200A80A71 /* O2MutablePath.m */; }; - FE39C19F1202727200A80A71 /* O2Paint_axialGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1521202727200A80A71 /* O2Paint_axialGradient.m */; }; - FE39C1A01202727200A80A71 /* O2Paint_color.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1531202727200A80A71 /* O2Paint_color.m */; }; - FE39C1A11202727200A80A71 /* O2Paint_image.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1541202727200A80A71 /* O2Paint_image.m */; }; - FE39C1A21202727200A80A71 /* O2Paint_pattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1551202727200A80A71 /* O2Paint_pattern.m */; }; - FE39C1A31202727200A80A71 /* O2Paint_radialGradient.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1561202727200A80A71 /* O2Paint_radialGradient.m */; }; - FE39C1A41202727200A80A71 /* O2Paint_ramp.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1571202727200A80A71 /* O2Paint_ramp.m */; }; - FE39C1A51202727200A80A71 /* O2Paint.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1581202727200A80A71 /* O2Paint.m */; }; - FE39C1A61202727200A80A71 /* O2Path.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1591202727200A80A71 /* O2Path.m */; }; - FE39C1A71202727200A80A71 /* O2Pattern.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C15A1202727200A80A71 /* O2Pattern.m */; }; - FE39C1A81202727200A80A71 /* O2PDFArray.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C15B1202727200A80A71 /* O2PDFArray.m */; }; - FE39C1A91202727200A80A71 /* O2PDFCharWidths.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C15C1202727200A80A71 /* O2PDFCharWidths.m */; }; - FE39C1AA1202727200A80A71 /* O2PDFContentStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C15D1202727200A80A71 /* O2PDFContentStream.m */; }; - FE39C1AB1202727200A80A71 /* O2PDFContext.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C15E1202727200A80A71 /* O2PDFContext.m */; }; - FE39C1AC1202727200A80A71 /* O2PDFDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C15F1202727200A80A71 /* O2PDFDictionary.m */; }; - FE39C1AD1202727200A80A71 /* O2PDFDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1601202727200A80A71 /* O2PDFDocument.m */; }; - FE39C1AE1202727200A80A71 /* O2PDFFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1611202727200A80A71 /* O2PDFFilter.m */; }; - FE39C1AF1202727200A80A71 /* O2PDFFunction_Type0.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1621202727200A80A71 /* O2PDFFunction_Type0.m */; }; - FE39C1B01202727200A80A71 /* O2PDFFunction_Type2.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1631202727200A80A71 /* O2PDFFunction_Type2.m */; }; - FE39C1B11202727200A80A71 /* O2PDFFunction_Type3.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1641202727200A80A71 /* O2PDFFunction_Type3.m */; }; - FE39C1B21202727200A80A71 /* O2PDFFunction_Type4.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1651202727200A80A71 /* O2PDFFunction_Type4.m */; }; - FE39C1B31202727200A80A71 /* O2PDFObject_Boolean.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1661202727200A80A71 /* O2PDFObject_Boolean.m */; }; - FE39C1B41202727200A80A71 /* O2PDFObject_const.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1671202727200A80A71 /* O2PDFObject_const.m */; }; - FE39C1B51202727200A80A71 /* O2PDFObject_identifier.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1681202727200A80A71 /* O2PDFObject_identifier.m */; }; - FE39C1B61202727200A80A71 /* O2PDFObject_Integer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1691202727200A80A71 /* O2PDFObject_Integer.m */; }; - FE39C1B71202727200A80A71 /* O2PDFObject_Name.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C16A1202727200A80A71 /* O2PDFObject_Name.m */; }; - FE39C1B81202727200A80A71 /* O2PDFObject_R.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C16B1202727200A80A71 /* O2PDFObject_R.m */; }; - FE39C1B91202727200A80A71 /* O2PDFObject_Real.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C16C1202727200A80A71 /* O2PDFObject_Real.m */; }; - FE39C1BA1202727200A80A71 /* O2PDFObject.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C16D1202727200A80A71 /* O2PDFObject.m */; }; - FE39C1BB1202727200A80A71 /* O2PDFOperators.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C16E1202727200A80A71 /* O2PDFOperators.m */; }; - FE39C1BC1202727200A80A71 /* O2PDFOperatorTable.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C16F1202727200A80A71 /* O2PDFOperatorTable.m */; }; - FE39C1BD1202727200A80A71 /* O2PDFPage.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1701202727200A80A71 /* O2PDFPage.m */; }; - FE39C1BE1202727200A80A71 /* O2PDFScanner.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1711202727200A80A71 /* O2PDFScanner.m */; }; - FE39C1BF1202727200A80A71 /* O2PDFStream.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1721202727200A80A71 /* O2PDFStream.m */; }; - FE39C1C01202727200A80A71 /* O2PDFString.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1731202727200A80A71 /* O2PDFString.m */; }; - FE39C1C11202727200A80A71 /* O2PDFxref.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1741202727200A80A71 /* O2PDFxref.m */; }; - FE39C1C21202727200A80A71 /* O2PDFxrefEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1751202727200A80A71 /* O2PDFxrefEntry.m */; }; - FE39C1C31202727200A80A71 /* O2Shading.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1761202727200A80A71 /* O2Shading.m */; }; - FE39C1C41202727200A80A71 /* O2Shading+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1771202727200A80A71 /* O2Shading+PDF.m */; }; - FE39C1C51202727200A80A71 /* O2Surface.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1781202727200A80A71 /* O2Surface.m */; }; - FE39C1C61202727200A80A71 /* O2TIFFImageDirectory.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1791202727200A80A71 /* O2TIFFImageDirectory.m */; }; - FE39C1C71202727200A80A71 /* O2TTFDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C17A1202727200A80A71 /* O2TTFDecoder.m */; }; - FE39C1C81202727200A80A71 /* O2zlib.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C17B1202727200A80A71 /* O2zlib.m */; }; - FE39C1C91202727200A80A71 /* VGPath.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C17C1202727200A80A71 /* VGPath.m */; }; - FE39C1DB120278EC00A80A71 /* O2PDFFont.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1DA120278EC00A80A71 /* O2PDFFont.m */; }; - FE39C1DD120278F100A80A71 /* O2PDFBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1DC120278F100A80A71 /* O2PDFBlock.m */; }; - FE39C1E61202828A00A80A71 /* O2ClipState.m in Sources */ = {isa = PBXBuildFile; fileRef = FE39C1E51202828A00A80A71 /* O2ClipState.m */; }; - FE45EE650DC254C700F49290 /* overlay.jpg in Resources */ = {isa = PBXBuildFile; fileRef = FE45EE640DC254C700F49290 /* overlay.jpg */; }; - FE619A32107A56A100807E7E /* O2Font_CG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE619A31107A56A100807E7E /* O2Font_CG.m */; }; - FE7F725A12AF4DC400FDF52D /* O2argb8u.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F725812AF4DC400FDF52D /* O2argb8u.m */; }; - FE7F725B12AF4DC400FDF52D /* O2argb32f.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F725912AF4DC400FDF52D /* O2argb32f.m */; }; - FE7F725F12AFFB0900FDF52D /* O2Encoder_PNG.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7F725E12AFFB0900FDF52D /* O2Encoder_PNG.m */; }; - FE9ACF4B155EFB9C002AFCA9 /* O2ImageDecoder_JPEG_stb.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9ACF48155EFB9C002AFCA9 /* O2ImageDecoder_JPEG_stb.m */; }; - FE9ACF4C155EFB9C002AFCA9 /* O2ImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = FE9ACF4A155EFB9C002AFCA9 /* O2ImageDecoder.m */; }; - FEA47EC2101E44CD005820F3 /* redLZWSquare.tif in Resources */ = {isa = PBXBuildFile; fileRef = FEA47EC1101E44CD005820F3 /* redLZWSquare.tif */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - FE5C0E351162E81000065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8DC2EF5B0486A6940098B216; - remoteInfo = "Onyx2D-Windows-i386"; - }; - FE5C0E371162E81000065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0CA61162A99A00065D1C; - remoteInfo = "Onyx2D-Linux-i386"; - }; - FE5C0E391162E81000065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0D461162A9AB00065D1C; - remoteInfo = "Onyx2D-FreeBSD-i386"; - }; - FE5C0E3B1162E81000065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = FE5C0D571162A9D600065D1C; - remoteInfo = "Onyx2D-MacOS"; - }; - FE5C0E3D1162E81800065D1C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = FE5C0D561162A9D600065D1C; - remoteInfo = "Onyx2D-MacOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 32CA4F630368D1EE00C91783 /* SWRender_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SWRender_Prefix.pch; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* SWRender.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SWRender.app; sourceTree = BUILT_PRODUCTS_DIR; }; - FE0997420D87095000033630 /* overlay.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = overlay.png; sourceTree = ""; }; - FE14CCFF106934D700B0FFAF /* pattern.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = pattern.jpg; sourceTree = ""; }; - FE14EC480DBD9BF00070928C /* DemoContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoContext.h; sourceTree = ""; }; - FE14EC490DBD9BF00070928C /* DemoCGContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoCGContext.m; sourceTree = ""; }; - FE14EC4A0DBD9BF00070928C /* DemoKGContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoKGContext.m; sourceTree = ""; }; - FE14EC950DBDA5420070928C /* DemoContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemoContext.m; sourceTree = ""; }; - FE1F93610D7EF19900969491 /* KGImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KGImageView.h; sourceTree = ""; }; - FE1F93620D7EF19900969491 /* KGImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KGImageView.m; sourceTree = ""; }; - FE1F93780D7EF1F800969491 /* KGRenderController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KGRenderController.h; sourceTree = ""; }; - FE1F93790D7EF1F800969491 /* KGRenderController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KGRenderController.m; sourceTree = ""; }; - FE3396000DBA8CF7009AB3E0 /* CoreGraphics_KG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreGraphics_KG.h; sourceTree = ""; }; - FE33964B0DBAE733009AB3E0 /* DemosTemplate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DemosTemplate.m; sourceTree = ""; }; - FE39C1301202727200A80A71 /* gif_lib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = gif_lib.m; path = ../../Onyx2D/gif_lib.m; sourceTree = SOURCE_ROOT; }; - FE39C1311202727200A80A71 /* O2AffineTransform.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2AffineTransform.m; path = ../../Onyx2D/O2AffineTransform.m; sourceTree = SOURCE_ROOT; }; - FE39C1321202727200A80A71 /* O2BitmapContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2BitmapContext.m; path = ../../Onyx2D/O2BitmapContext.m; sourceTree = SOURCE_ROOT; }; - FE39C1331202727200A80A71 /* O2ClipPhase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ClipPhase.m; path = ../../Onyx2D/O2ClipPhase.m; sourceTree = SOURCE_ROOT; }; - FE39C1341202727200A80A71 /* O2Color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Color.m; path = ../../Onyx2D/O2Color.m; sourceTree = SOURCE_ROOT; }; - FE39C1351202727200A80A71 /* O2ColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ColorSpace.m; path = ../../Onyx2D/O2ColorSpace.m; sourceTree = SOURCE_ROOT; }; - FE39C1361202727200A80A71 /* O2ColorSpace+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2ColorSpace+PDF.m"; path = "../../Onyx2D/O2ColorSpace+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE39C1371202727200A80A71 /* O2Context_builtin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Context_builtin.m; path = ../../Onyx2D/O2Context_builtin.m; sourceTree = SOURCE_ROOT; }; - FE39C1381202727200A80A71 /* O2Context.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Context.m; path = ../../Onyx2D/O2Context.m; sourceTree = SOURCE_ROOT; }; - FE39C1391202727200A80A71 /* O2DataConsumer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2DataConsumer.m; path = ../../Onyx2D/O2DataConsumer.m; sourceTree = SOURCE_ROOT; }; - FE39C13A1202727200A80A71 /* O2DataProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2DataProvider.m; path = ../../Onyx2D/O2DataProvider.m; sourceTree = SOURCE_ROOT; }; - FE39C13B1202727200A80A71 /* O2Decoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Decoder_TIFF.m; path = ../../Onyx2D/O2Decoder_TIFF.m; sourceTree = SOURCE_ROOT; }; - FE39C13C1202727200A80A71 /* O2Encoder_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Encoder_TIFF.m; path = ../../Onyx2D/O2Encoder_TIFF.m; sourceTree = SOURCE_ROOT; }; - FE39C13D1202727200A80A71 /* O2Encoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Encoding.m; path = ../../Onyx2D/O2Encoding.m; sourceTree = SOURCE_ROOT; }; - FE39C13E1202727200A80A71 /* O2Font_ttf.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Font_ttf.m; path = ../../Onyx2D/O2Font_ttf.m; sourceTree = SOURCE_ROOT; }; - FE39C13F1202727200A80A71 /* O2Font.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Font.m; path = ../../Onyx2D/O2Font.m; sourceTree = SOURCE_ROOT; }; - FE39C1401202727200A80A71 /* O2Font+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Font+PDF.m"; path = "../../Onyx2D/O2Font+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE39C1411202727200A80A71 /* O2Function.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Function.m; path = ../../Onyx2D/O2Function.m; sourceTree = SOURCE_ROOT; }; - FE39C1421202727200A80A71 /* O2Function+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Function+PDF.m"; path = "../../Onyx2D/O2Function+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE39C1431202727200A80A71 /* O2Geometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Geometry.m; path = ../../Onyx2D/O2Geometry.m; sourceTree = SOURCE_ROOT; }; - FE39C1441202727200A80A71 /* O2GraphicsState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2GraphicsState.m; path = ../../Onyx2D/O2GraphicsState.m; sourceTree = SOURCE_ROOT; }; - FE39C1451202727200A80A71 /* O2Image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Image.m; path = ../../Onyx2D/O2Image.m; sourceTree = SOURCE_ROOT; }; - FE39C1461202727200A80A71 /* O2Image+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Image+PDF.m"; path = "../../Onyx2D/O2Image+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE39C1471202727200A80A71 /* O2ImageDestination.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageDestination.m; path = ../../Onyx2D/O2ImageDestination.m; sourceTree = SOURCE_ROOT; }; - FE39C1481202727200A80A71 /* O2ImageSource_BMP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_BMP.m; path = ../../Onyx2D/O2ImageSource_BMP.m; sourceTree = SOURCE_ROOT; }; - FE39C1491202727200A80A71 /* O2ImageSource_GIF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_GIF.m; path = ../../Onyx2D/O2ImageSource_GIF.m; sourceTree = SOURCE_ROOT; }; - FE39C14A1202727200A80A71 /* O2ImageSource_ICNS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_ICNS.m; path = ../../Onyx2D/O2ImageSource_ICNS.m; sourceTree = SOURCE_ROOT; }; - FE39C14B1202727200A80A71 /* O2ImageSource_JPEG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_JPEG.m; path = ../../Onyx2D/O2ImageSource_JPEG.m; sourceTree = SOURCE_ROOT; }; - FE39C14C1202727200A80A71 /* O2ImageSource_PNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_PNG.m; path = ../../Onyx2D/O2ImageSource_PNG.m; sourceTree = SOURCE_ROOT; }; - FE39C14D1202727200A80A71 /* O2ImageSource_TIFF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource_TIFF.m; path = ../../Onyx2D/O2ImageSource_TIFF.m; sourceTree = SOURCE_ROOT; }; - FE39C14E1202727200A80A71 /* O2ImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ImageSource.m; path = ../../Onyx2D/O2ImageSource.m; sourceTree = SOURCE_ROOT; }; - FE39C14F1202727200A80A71 /* O2Layer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Layer.m; path = ../../Onyx2D/O2Layer.m; sourceTree = SOURCE_ROOT; }; - FE39C1501202727200A80A71 /* O2LZW.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2LZW.m; path = ../../Onyx2D/O2LZW.m; sourceTree = SOURCE_ROOT; }; - FE39C1511202727200A80A71 /* O2MutablePath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2MutablePath.m; path = ../../Onyx2D/O2MutablePath.m; sourceTree = SOURCE_ROOT; }; - FE39C1521202727200A80A71 /* O2Paint_axialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_axialGradient.m; path = ../../Onyx2D/O2Paint_axialGradient.m; sourceTree = SOURCE_ROOT; }; - FE39C1531202727200A80A71 /* O2Paint_color.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_color.m; path = ../../Onyx2D/O2Paint_color.m; sourceTree = SOURCE_ROOT; }; - FE39C1541202727200A80A71 /* O2Paint_image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_image.m; path = ../../Onyx2D/O2Paint_image.m; sourceTree = SOURCE_ROOT; }; - FE39C1551202727200A80A71 /* O2Paint_pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_pattern.m; path = ../../Onyx2D/O2Paint_pattern.m; sourceTree = SOURCE_ROOT; }; - FE39C1561202727200A80A71 /* O2Paint_radialGradient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_radialGradient.m; path = ../../Onyx2D/O2Paint_radialGradient.m; sourceTree = SOURCE_ROOT; }; - FE39C1571202727200A80A71 /* O2Paint_ramp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint_ramp.m; path = ../../Onyx2D/O2Paint_ramp.m; sourceTree = SOURCE_ROOT; }; - FE39C1581202727200A80A71 /* O2Paint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Paint.m; path = ../../Onyx2D/O2Paint.m; sourceTree = SOURCE_ROOT; }; - FE39C1591202727200A80A71 /* O2Path.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Path.m; path = ../../Onyx2D/O2Path.m; sourceTree = SOURCE_ROOT; }; - FE39C15A1202727200A80A71 /* O2Pattern.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Pattern.m; path = ../../Onyx2D/O2Pattern.m; sourceTree = SOURCE_ROOT; }; - FE39C15B1202727200A80A71 /* O2PDFArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFArray.m; path = ../../Onyx2D/O2PDFArray.m; sourceTree = SOURCE_ROOT; }; - FE39C15C1202727200A80A71 /* O2PDFCharWidths.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFCharWidths.m; path = ../../Onyx2D/O2PDFCharWidths.m; sourceTree = SOURCE_ROOT; }; - FE39C15D1202727200A80A71 /* O2PDFContentStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFContentStream.m; path = ../../Onyx2D/O2PDFContentStream.m; sourceTree = SOURCE_ROOT; }; - FE39C15E1202727200A80A71 /* O2PDFContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFContext.m; path = ../../Onyx2D/O2PDFContext.m; sourceTree = SOURCE_ROOT; }; - FE39C15F1202727200A80A71 /* O2PDFDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFDictionary.m; path = ../../Onyx2D/O2PDFDictionary.m; sourceTree = SOURCE_ROOT; }; - FE39C1601202727200A80A71 /* O2PDFDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFDocument.m; path = ../../Onyx2D/O2PDFDocument.m; sourceTree = SOURCE_ROOT; }; - FE39C1611202727200A80A71 /* O2PDFFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFilter.m; path = ../../Onyx2D/O2PDFFilter.m; sourceTree = SOURCE_ROOT; }; - FE39C1621202727200A80A71 /* O2PDFFunction_Type0.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type0.m; path = ../../Onyx2D/O2PDFFunction_Type0.m; sourceTree = SOURCE_ROOT; }; - FE39C1631202727200A80A71 /* O2PDFFunction_Type2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type2.m; path = ../../Onyx2D/O2PDFFunction_Type2.m; sourceTree = SOURCE_ROOT; }; - FE39C1641202727200A80A71 /* O2PDFFunction_Type3.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type3.m; path = ../../Onyx2D/O2PDFFunction_Type3.m; sourceTree = SOURCE_ROOT; }; - FE39C1651202727200A80A71 /* O2PDFFunction_Type4.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFunction_Type4.m; path = ../../Onyx2D/O2PDFFunction_Type4.m; sourceTree = SOURCE_ROOT; }; - FE39C1661202727200A80A71 /* O2PDFObject_Boolean.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Boolean.m; path = ../../Onyx2D/O2PDFObject_Boolean.m; sourceTree = SOURCE_ROOT; }; - FE39C1671202727200A80A71 /* O2PDFObject_const.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_const.m; path = ../../Onyx2D/O2PDFObject_const.m; sourceTree = SOURCE_ROOT; }; - FE39C1681202727200A80A71 /* O2PDFObject_identifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_identifier.m; path = ../../Onyx2D/O2PDFObject_identifier.m; sourceTree = SOURCE_ROOT; }; - FE39C1691202727200A80A71 /* O2PDFObject_Integer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Integer.m; path = ../../Onyx2D/O2PDFObject_Integer.m; sourceTree = SOURCE_ROOT; }; - FE39C16A1202727200A80A71 /* O2PDFObject_Name.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Name.m; path = ../../Onyx2D/O2PDFObject_Name.m; sourceTree = SOURCE_ROOT; }; - FE39C16B1202727200A80A71 /* O2PDFObject_R.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_R.m; path = ../../Onyx2D/O2PDFObject_R.m; sourceTree = SOURCE_ROOT; }; - FE39C16C1202727200A80A71 /* O2PDFObject_Real.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject_Real.m; path = ../../Onyx2D/O2PDFObject_Real.m; sourceTree = SOURCE_ROOT; }; - FE39C16D1202727200A80A71 /* O2PDFObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFObject.m; path = ../../Onyx2D/O2PDFObject.m; sourceTree = SOURCE_ROOT; }; - FE39C16E1202727200A80A71 /* O2PDFOperators.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFOperators.m; path = ../../Onyx2D/O2PDFOperators.m; sourceTree = SOURCE_ROOT; }; - FE39C16F1202727200A80A71 /* O2PDFOperatorTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFOperatorTable.m; path = ../../Onyx2D/O2PDFOperatorTable.m; sourceTree = SOURCE_ROOT; }; - FE39C1701202727200A80A71 /* O2PDFPage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFPage.m; path = ../../Onyx2D/O2PDFPage.m; sourceTree = SOURCE_ROOT; }; - FE39C1711202727200A80A71 /* O2PDFScanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFScanner.m; path = ../../Onyx2D/O2PDFScanner.m; sourceTree = SOURCE_ROOT; }; - FE39C1721202727200A80A71 /* O2PDFStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFStream.m; path = ../../Onyx2D/O2PDFStream.m; sourceTree = SOURCE_ROOT; }; - FE39C1731202727200A80A71 /* O2PDFString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFString.m; path = ../../Onyx2D/O2PDFString.m; sourceTree = SOURCE_ROOT; }; - FE39C1741202727200A80A71 /* O2PDFxref.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFxref.m; path = ../../Onyx2D/O2PDFxref.m; sourceTree = SOURCE_ROOT; }; - FE39C1751202727200A80A71 /* O2PDFxrefEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFxrefEntry.m; path = ../../Onyx2D/O2PDFxrefEntry.m; sourceTree = SOURCE_ROOT; }; - FE39C1761202727200A80A71 /* O2Shading.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Shading.m; path = ../../Onyx2D/O2Shading.m; sourceTree = SOURCE_ROOT; }; - FE39C1771202727200A80A71 /* O2Shading+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "O2Shading+PDF.m"; path = "../../Onyx2D/O2Shading+PDF.m"; sourceTree = SOURCE_ROOT; }; - FE39C1781202727200A80A71 /* O2Surface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Surface.m; path = ../../Onyx2D/O2Surface.m; sourceTree = SOURCE_ROOT; }; - FE39C1791202727200A80A71 /* O2TIFFImageDirectory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2TIFFImageDirectory.m; path = ../../Onyx2D/O2TIFFImageDirectory.m; sourceTree = SOURCE_ROOT; }; - FE39C17A1202727200A80A71 /* O2TTFDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2TTFDecoder.m; path = ../../Onyx2D/O2TTFDecoder.m; sourceTree = SOURCE_ROOT; }; - FE39C17B1202727200A80A71 /* O2zlib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2zlib.m; path = ../../Onyx2D/O2zlib.m; sourceTree = SOURCE_ROOT; }; - FE39C17C1202727200A80A71 /* VGPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VGPath.m; path = ../../Onyx2D/VGPath.m; sourceTree = SOURCE_ROOT; }; - FE39C1DA120278EC00A80A71 /* O2PDFFont.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFFont.m; path = ../../Onyx2D/O2PDFFont.m; sourceTree = SOURCE_ROOT; }; - FE39C1DC120278F100A80A71 /* O2PDFBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2PDFBlock.m; path = ../../Onyx2D/O2PDFBlock.m; sourceTree = SOURCE_ROOT; }; - FE39C1E51202828A00A80A71 /* O2ClipState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2ClipState.m; path = ../../Onyx2D/O2ClipState.m; sourceTree = SOURCE_ROOT; }; - FE45EE640DC254C700F49290 /* overlay.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = overlay.jpg; sourceTree = ""; }; - FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Onyx2D.xcodeproj; path = ../../Onyx2D/Onyx2D.xcodeproj; sourceTree = SOURCE_ROOT; }; - FE5C0E55116387FA00065D1C /* Onyx2D.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Onyx2D.framework; path = Cocotron/MacOS/Frameworks/Onyx2D.framework; sourceTree = DEVELOPER_DIR; }; - FE619A30107A56A100807E7E /* O2Font_CG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2Font_CG.h; sourceTree = ""; }; - FE619A31107A56A100807E7E /* O2Font_CG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2Font_CG.m; sourceTree = ""; }; - FE7F725812AF4DC400FDF52D /* O2argb8u.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2argb8u.m; path = ../../Onyx2D/O2argb8u.m; sourceTree = SOURCE_ROOT; }; - FE7F725912AF4DC400FDF52D /* O2argb32f.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2argb32f.m; path = ../../Onyx2D/O2argb32f.m; sourceTree = SOURCE_ROOT; }; - FE7F725E12AFFB0900FDF52D /* O2Encoder_PNG.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = O2Encoder_PNG.m; path = ../../Onyx2D/O2Encoder_PNG.m; sourceTree = SOURCE_ROOT; }; - FE9ACF47155EFB9C002AFCA9 /* O2ImageDecoder_JPEG_stb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = O2ImageDecoder_JPEG_stb.h; sourceTree = ""; }; - FE9ACF48155EFB9C002AFCA9 /* O2ImageDecoder_JPEG_stb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder_JPEG_stb.m; sourceTree = ""; }; - FE9ACF4A155EFB9C002AFCA9 /* O2ImageDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = O2ImageDecoder.m; sourceTree = ""; }; - FEA47EC1101E44CD005820F3 /* redLZWSquare.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = redLZWSquare.tif; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* SWRender.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* SWRender */ = { - isa = PBXGroup; - children = ( - FE39C12F1202721A00A80A71 /* Onyx2D */, - FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */, - FE14EC950DBDA5420070928C /* DemoContext.m */, - FE619A30107A56A100807E7E /* O2Font_CG.h */, - FE619A31107A56A100807E7E /* O2Font_CG.m */, - FE14EC480DBD9BF00070928C /* DemoContext.h */, - FE14EC490DBD9BF00070928C /* DemoCGContext.m */, - FE14EC4A0DBD9BF00070928C /* DemoKGContext.m */, - FE33964B0DBAE733009AB3E0 /* DemosTemplate.m */, - FE3396000DBA8CF7009AB3E0 /* CoreGraphics_KG.h */, - FE1F93780D7EF1F800969491 /* KGRenderController.h */, - FE1F93790D7EF1F800969491 /* KGRenderController.m */, - FE1F93610D7EF19900969491 /* KGImageView.h */, - FE1F93620D7EF19900969491 /* KGImageView.m */, - 19C28FACFE9D520D11CA2CBB /* Products */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - ); - name = SWRender; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 32CA4F630368D1EE00C91783 /* SWRender_Prefix.pch */, - 29B97316FDCFA39411CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - FE14CCFF106934D700B0FFAF /* pattern.jpg */, - FEA47EC1101E44CD005820F3 /* redLZWSquare.tif */, - FE45EE640DC254C700F49290 /* overlay.jpg */, - FE0997420D87095000033630 /* overlay.png */, - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - FE5C0E55116387FA00065D1C /* Onyx2D.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - FE39C12F1202721A00A80A71 /* Onyx2D */ = { - isa = PBXGroup; - children = ( - FE9ACF47155EFB9C002AFCA9 /* O2ImageDecoder_JPEG_stb.h */, - FE9ACF48155EFB9C002AFCA9 /* O2ImageDecoder_JPEG_stb.m */, - FE9ACF4A155EFB9C002AFCA9 /* O2ImageDecoder.m */, - FE7F725E12AFFB0900FDF52D /* O2Encoder_PNG.m */, - FE7F725812AF4DC400FDF52D /* O2argb8u.m */, - FE7F725912AF4DC400FDF52D /* O2argb32f.m */, - FE39C1E51202828A00A80A71 /* O2ClipState.m */, - FE39C1DC120278F100A80A71 /* O2PDFBlock.m */, - FE39C1DA120278EC00A80A71 /* O2PDFFont.m */, - FE39C1301202727200A80A71 /* gif_lib.m */, - FE39C1311202727200A80A71 /* O2AffineTransform.m */, - FE39C1321202727200A80A71 /* O2BitmapContext.m */, - FE39C1331202727200A80A71 /* O2ClipPhase.m */, - FE39C1341202727200A80A71 /* O2Color.m */, - FE39C1351202727200A80A71 /* O2ColorSpace.m */, - FE39C1361202727200A80A71 /* O2ColorSpace+PDF.m */, - FE39C1371202727200A80A71 /* O2Context_builtin.m */, - FE39C1381202727200A80A71 /* O2Context.m */, - FE39C1391202727200A80A71 /* O2DataConsumer.m */, - FE39C13A1202727200A80A71 /* O2DataProvider.m */, - FE39C13B1202727200A80A71 /* O2Decoder_TIFF.m */, - FE39C13C1202727200A80A71 /* O2Encoder_TIFF.m */, - FE39C13D1202727200A80A71 /* O2Encoding.m */, - FE39C13E1202727200A80A71 /* O2Font_ttf.m */, - FE39C13F1202727200A80A71 /* O2Font.m */, - FE39C1401202727200A80A71 /* O2Font+PDF.m */, - FE39C1411202727200A80A71 /* O2Function.m */, - FE39C1421202727200A80A71 /* O2Function+PDF.m */, - FE39C1431202727200A80A71 /* O2Geometry.m */, - FE39C1441202727200A80A71 /* O2GraphicsState.m */, - FE39C1451202727200A80A71 /* O2Image.m */, - FE39C1461202727200A80A71 /* O2Image+PDF.m */, - FE39C1471202727200A80A71 /* O2ImageDestination.m */, - FE39C1481202727200A80A71 /* O2ImageSource_BMP.m */, - FE39C1491202727200A80A71 /* O2ImageSource_GIF.m */, - FE39C14A1202727200A80A71 /* O2ImageSource_ICNS.m */, - FE39C14B1202727200A80A71 /* O2ImageSource_JPEG.m */, - FE39C14C1202727200A80A71 /* O2ImageSource_PNG.m */, - FE39C14D1202727200A80A71 /* O2ImageSource_TIFF.m */, - FE39C14E1202727200A80A71 /* O2ImageSource.m */, - FE39C14F1202727200A80A71 /* O2Layer.m */, - FE39C1501202727200A80A71 /* O2LZW.m */, - FE39C1511202727200A80A71 /* O2MutablePath.m */, - FE39C1521202727200A80A71 /* O2Paint_axialGradient.m */, - FE39C1531202727200A80A71 /* O2Paint_color.m */, - FE39C1541202727200A80A71 /* O2Paint_image.m */, - FE39C1551202727200A80A71 /* O2Paint_pattern.m */, - FE39C1561202727200A80A71 /* O2Paint_radialGradient.m */, - FE39C1571202727200A80A71 /* O2Paint_ramp.m */, - FE39C1581202727200A80A71 /* O2Paint.m */, - FE39C1591202727200A80A71 /* O2Path.m */, - FE39C15A1202727200A80A71 /* O2Pattern.m */, - FE39C15B1202727200A80A71 /* O2PDFArray.m */, - FE39C15C1202727200A80A71 /* O2PDFCharWidths.m */, - FE39C15D1202727200A80A71 /* O2PDFContentStream.m */, - FE39C15E1202727200A80A71 /* O2PDFContext.m */, - FE39C15F1202727200A80A71 /* O2PDFDictionary.m */, - FE39C1601202727200A80A71 /* O2PDFDocument.m */, - FE39C1611202727200A80A71 /* O2PDFFilter.m */, - FE39C1621202727200A80A71 /* O2PDFFunction_Type0.m */, - FE39C1631202727200A80A71 /* O2PDFFunction_Type2.m */, - FE39C1641202727200A80A71 /* O2PDFFunction_Type3.m */, - FE39C1651202727200A80A71 /* O2PDFFunction_Type4.m */, - FE39C1661202727200A80A71 /* O2PDFObject_Boolean.m */, - FE39C1671202727200A80A71 /* O2PDFObject_const.m */, - FE39C1681202727200A80A71 /* O2PDFObject_identifier.m */, - FE39C1691202727200A80A71 /* O2PDFObject_Integer.m */, - FE39C16A1202727200A80A71 /* O2PDFObject_Name.m */, - FE39C16B1202727200A80A71 /* O2PDFObject_R.m */, - FE39C16C1202727200A80A71 /* O2PDFObject_Real.m */, - FE39C16D1202727200A80A71 /* O2PDFObject.m */, - FE39C16E1202727200A80A71 /* O2PDFOperators.m */, - FE39C16F1202727200A80A71 /* O2PDFOperatorTable.m */, - FE39C1701202727200A80A71 /* O2PDFPage.m */, - FE39C1711202727200A80A71 /* O2PDFScanner.m */, - FE39C1721202727200A80A71 /* O2PDFStream.m */, - FE39C1731202727200A80A71 /* O2PDFString.m */, - FE39C1741202727200A80A71 /* O2PDFxref.m */, - FE39C1751202727200A80A71 /* O2PDFxrefEntry.m */, - FE39C1761202727200A80A71 /* O2Shading.m */, - FE39C1771202727200A80A71 /* O2Shading+PDF.m */, - FE39C1781202727200A80A71 /* O2Surface.m */, - FE39C1791202727200A80A71 /* O2TIFFImageDirectory.m */, - FE39C17A1202727200A80A71 /* O2TTFDecoder.m */, - FE39C17B1202727200A80A71 /* O2zlib.m */, - FE39C17C1202727200A80A71 /* VGPath.m */, - ); - name = Onyx2D; - path = ../../Onyx2D; - sourceTree = ""; - }; - FE5C0E2F1162E81000065D1C /* Products */ = { - isa = PBXGroup; - children = ( - FE5C0E361162E81000065D1C /* Onyx2D.framework */, - FE5C0E381162E81000065D1C /* Onyx2D.framework */, - FE5C0E3A1162E81000065D1C /* Onyx2D.framework */, - FE5C0E3C1162E81000065D1C /* Onyx2D.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* SWRender */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SWRender" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - FE5C0E3E1162E81800065D1C /* PBXTargetDependency */, - ); - name = SWRender; - productInstallPath = "$(HOME)/Applications"; - productName = SWRender; - productReference = 8D1107320486CEB800E47090 /* SWRender.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0430; - }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SWRender" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* SWRender */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = FE5C0E2F1162E81000065D1C /* Products */; - ProjectRef = FE5C0E2E1162E81000065D1C /* Onyx2D.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* SWRender */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - FE5C0E361162E81000065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0E351162E81000065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE5C0E381162E81000065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0E371162E81000065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE5C0E3A1162E81000065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0E391162E81000065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - FE5C0E3C1162E81000065D1C /* Onyx2D.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Onyx2D.framework; - remoteRef = FE5C0E3B1162E81000065D1C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072A0486CEB800E47090 /* MainMenu.nib in Resources */, - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - FE0997430D87095000033630 /* overlay.png in Resources */, - FE45EE650DC254C700F49290 /* overlay.jpg in Resources */, - FEA47EC2101E44CD005820F3 /* redLZWSquare.tif in Resources */, - FE14CD00106934D700B0FFAF /* pattern.jpg in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - FE1F93630D7EF19900969491 /* KGImageView.m in Sources */, - FE1F937A0D7EF1F800969491 /* KGRenderController.m in Sources */, - FE14EC4B0DBD9BF00070928C /* DemoCGContext.m in Sources */, - FE14EC4C0DBD9BF00070928C /* DemoKGContext.m in Sources */, - FE14EC960DBDA5420070928C /* DemoContext.m in Sources */, - FE619A32107A56A100807E7E /* O2Font_CG.m in Sources */, - FE39C17D1202727200A80A71 /* gif_lib.m in Sources */, - FE39C17E1202727200A80A71 /* O2AffineTransform.m in Sources */, - FE39C17F1202727200A80A71 /* O2BitmapContext.m in Sources */, - FE39C1801202727200A80A71 /* O2ClipPhase.m in Sources */, - FE39C1811202727200A80A71 /* O2Color.m in Sources */, - FE39C1821202727200A80A71 /* O2ColorSpace.m in Sources */, - FE39C1831202727200A80A71 /* O2ColorSpace+PDF.m in Sources */, - FE39C1841202727200A80A71 /* O2Context_builtin.m in Sources */, - FE39C1851202727200A80A71 /* O2Context.m in Sources */, - FE39C1861202727200A80A71 /* O2DataConsumer.m in Sources */, - FE39C1871202727200A80A71 /* O2DataProvider.m in Sources */, - FE39C1881202727200A80A71 /* O2Decoder_TIFF.m in Sources */, - FE39C1891202727200A80A71 /* O2Encoder_TIFF.m in Sources */, - FE39C18A1202727200A80A71 /* O2Encoding.m in Sources */, - FE39C18B1202727200A80A71 /* O2Font_ttf.m in Sources */, - FE39C18C1202727200A80A71 /* O2Font.m in Sources */, - FE39C18D1202727200A80A71 /* O2Font+PDF.m in Sources */, - FE39C18E1202727200A80A71 /* O2Function.m in Sources */, - FE39C18F1202727200A80A71 /* O2Function+PDF.m in Sources */, - FE39C1901202727200A80A71 /* O2Geometry.m in Sources */, - FE39C1911202727200A80A71 /* O2GraphicsState.m in Sources */, - FE39C1921202727200A80A71 /* O2Image.m in Sources */, - FE39C1931202727200A80A71 /* O2Image+PDF.m in Sources */, - FE39C1941202727200A80A71 /* O2ImageDestination.m in Sources */, - FE39C1951202727200A80A71 /* O2ImageSource_BMP.m in Sources */, - FE39C1961202727200A80A71 /* O2ImageSource_GIF.m in Sources */, - FE39C1971202727200A80A71 /* O2ImageSource_ICNS.m in Sources */, - FE39C1981202727200A80A71 /* O2ImageSource_JPEG.m in Sources */, - FE39C1991202727200A80A71 /* O2ImageSource_PNG.m in Sources */, - FE39C19A1202727200A80A71 /* O2ImageSource_TIFF.m in Sources */, - FE39C19B1202727200A80A71 /* O2ImageSource.m in Sources */, - FE39C19C1202727200A80A71 /* O2Layer.m in Sources */, - FE39C19D1202727200A80A71 /* O2LZW.m in Sources */, - FE39C19E1202727200A80A71 /* O2MutablePath.m in Sources */, - FE39C19F1202727200A80A71 /* O2Paint_axialGradient.m in Sources */, - FE39C1A01202727200A80A71 /* O2Paint_color.m in Sources */, - FE39C1A11202727200A80A71 /* O2Paint_image.m in Sources */, - FE39C1A21202727200A80A71 /* O2Paint_pattern.m in Sources */, - FE39C1A31202727200A80A71 /* O2Paint_radialGradient.m in Sources */, - FE39C1A41202727200A80A71 /* O2Paint_ramp.m in Sources */, - FE39C1A51202727200A80A71 /* O2Paint.m in Sources */, - FE39C1A61202727200A80A71 /* O2Path.m in Sources */, - FE39C1A71202727200A80A71 /* O2Pattern.m in Sources */, - FE39C1A81202727200A80A71 /* O2PDFArray.m in Sources */, - FE39C1A91202727200A80A71 /* O2PDFCharWidths.m in Sources */, - FE39C1AA1202727200A80A71 /* O2PDFContentStream.m in Sources */, - FE39C1AB1202727200A80A71 /* O2PDFContext.m in Sources */, - FE39C1AC1202727200A80A71 /* O2PDFDictionary.m in Sources */, - FE39C1AD1202727200A80A71 /* O2PDFDocument.m in Sources */, - FE39C1AE1202727200A80A71 /* O2PDFFilter.m in Sources */, - FE39C1AF1202727200A80A71 /* O2PDFFunction_Type0.m in Sources */, - FE39C1B01202727200A80A71 /* O2PDFFunction_Type2.m in Sources */, - FE39C1B11202727200A80A71 /* O2PDFFunction_Type3.m in Sources */, - FE39C1B21202727200A80A71 /* O2PDFFunction_Type4.m in Sources */, - FE39C1B31202727200A80A71 /* O2PDFObject_Boolean.m in Sources */, - FE39C1B41202727200A80A71 /* O2PDFObject_const.m in Sources */, - FE39C1B51202727200A80A71 /* O2PDFObject_identifier.m in Sources */, - FE39C1B61202727200A80A71 /* O2PDFObject_Integer.m in Sources */, - FE39C1B71202727200A80A71 /* O2PDFObject_Name.m in Sources */, - FE39C1B81202727200A80A71 /* O2PDFObject_R.m in Sources */, - FE39C1B91202727200A80A71 /* O2PDFObject_Real.m in Sources */, - FE39C1BA1202727200A80A71 /* O2PDFObject.m in Sources */, - FE39C1BB1202727200A80A71 /* O2PDFOperators.m in Sources */, - FE39C1BC1202727200A80A71 /* O2PDFOperatorTable.m in Sources */, - FE39C1BD1202727200A80A71 /* O2PDFPage.m in Sources */, - FE39C1BE1202727200A80A71 /* O2PDFScanner.m in Sources */, - FE39C1BF1202727200A80A71 /* O2PDFStream.m in Sources */, - FE39C1C01202727200A80A71 /* O2PDFString.m in Sources */, - FE39C1C11202727200A80A71 /* O2PDFxref.m in Sources */, - FE39C1C21202727200A80A71 /* O2PDFxrefEntry.m in Sources */, - FE39C1C31202727200A80A71 /* O2Shading.m in Sources */, - FE39C1C41202727200A80A71 /* O2Shading+PDF.m in Sources */, - FE39C1C51202727200A80A71 /* O2Surface.m in Sources */, - FE39C1C61202727200A80A71 /* O2TIFFImageDirectory.m in Sources */, - FE39C1C71202727200A80A71 /* O2TTFDecoder.m in Sources */, - FE39C1C81202727200A80A71 /* O2zlib.m in Sources */, - FE39C1C91202727200A80A71 /* VGPath.m in Sources */, - FE39C1DB120278EC00A80A71 /* O2PDFFont.m in Sources */, - FE39C1DD120278F100A80A71 /* O2PDFBlock.m in Sources */, - FE39C1E61202828A00A80A71 /* O2ClipState.m in Sources */, - FE7F725A12AF4DC400FDF52D /* O2argb8u.m in Sources */, - FE7F725B12AF4DC400FDF52D /* O2argb32f.m in Sources */, - FE7F725F12AFFB0900FDF52D /* O2Encoder_PNG.m in Sources */, - FE9ACF4B155EFB9C002AFCA9 /* O2ImageDecoder_JPEG_stb.m in Sources */, - FE9ACF4C155EFB9C002AFCA9 /* O2ImageDecoder.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - FE5C0E3E1162E81800065D1C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Onyx2D-MacOS"; - targetProxy = FE5C0E3D1162E81800065D1C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 29B97319FDCFA39411CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(NATIVE_ARCH)"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - /System/Library/Frameworks/ApplicationServices.framework/Frameworks, - "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - ); - FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "/Developer/Cocotron/MacOS/Frameworks\""; - FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(DEVELOPER_DIR)/Cocotron/MacOS/Frameworks\""; - GCC_AUTO_VECTORIZATION = YES; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_ENABLE_SSE3_EXTENSIONS = NO; - GCC_ENABLE_SSE41_EXTENSIONS = NO; - GCC_ENABLE_SSE42_EXTENSIONS = NO; - GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = NO; - GCC_FAST_MATH = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_MODEL_PPC64 = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = s; - GCC_STRICT_ALIASING = YES; - GCC_UNROLL_LOOPS = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - GCC_WARN_SHADOW = NO; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_PARAMETER = NO; - GCC_WARN_UNUSED_VALUE = YES; - GENERATE_PROFILING_CODE = NO; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_CFLAGS = "-DSWRENDER=1"; - PRODUCT_NAME = SWRender; - SDKROOT = ""; - VALID_ARCHS = "i386 ppc ppc64 ppc7400 ppc970 x86_64"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - SDKROOT = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "SWRender" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SWRender" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/testing/SWRender/main.m b/testing/SWRender/main.m deleted file mode 100644 index 2a13c785..00000000 --- a/testing/SWRender/main.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// main.m -// SWRender -// -// Created by Christopher Lloyd on 2/29/08. -// Copyright __MyCompanyName__ 2008. All rights reserved. -// - -#import - -int main(int argc, char *argv[]) { - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/testing/SWRender/overlay.jpg b/testing/SWRender/overlay.jpg deleted file mode 100644 index 8abe5ddb9fc0b5d1f03137fd3a5be60b779d0f27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11283 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 G``-Yf#EiQD diff --git a/testing/SWRender/overlay.png b/testing/SWRender/overlay.png deleted file mode 100644 index e54336649fb257362db55ae1563125b8db50a7b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37005 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 G6!UhS19}`?)i>U+ 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